RapidIO

RapidIO  on korkean suorituskyvyn dataliitäntä sirujen yhdistämiseen yhdellä painetulla piirilevyllä sekä useiden painettujen piirilevyjen yhdistämiseen. Tämä käyttöliittymä on suunniteltu käytettäväksi sulautetuissa järjestelmissä .

RapidIO:n pääkilpailijat ovat HyperTransport , Infiniband ja PCI Express , jotka on kuitenkin suunniteltu muihin tarkoituksiin.

RapidIO-liitännän ovat kehittäneet Mercury Computer Systems ja Motorola nykyisin Freescale Semiconductor ) Mercuryn moniprosessorin digitaalisissa signaalinkäsittelyjärjestelmissä käytetyn väylän evoluutiona .

RapidIO- rajapinnan spesifikaatiot on kehittänyt RapidIO Trade Association [1] . Tällä hetkellä uusin versio spesifikaatiosta on 4.

Historia

Protokollan kehittivät alun perin Mercury Computer Systems ja Motorola ( Freescale ) korvaamaan Mercuryn RACEway- väylän ja Freescalen PowerPC-väylän [2] . RapidIO Trade Assosiation perustettiin helmikuussa 2000, ja siihen kuuluvat tietoliikenne- ja tallennuslaitteiden valmistajat sekä prosessorien ja kytkimien valmistajat. Protokolla kehitettiin täyttämään seuraavat tavoitteet:

Vuonna 2001 julkaistu RapidIO-spesifikaatioversio 1.1 määritteli suuren kaistanleveyden rinnakkaisväylän. Tämä eritelmä ei ole saanut laajaa kaupallista käyttöä.

Vuonna 2002 julkaistu RapidIO-spesifikaatioversio 1.2 [3] määritteli XAUI- fyysiseen kerrokseen perustuvan sarjaväylän sisäisille yhteyksille . Tähän spesifikaatioon perustuvat laitteet ovat saavuttaneet merkittävää kaupallista menestystä langattomien verkkolaitteiden [4] , kuvankäsittelyteknologioiden ja sotilaallisen tietojenkäsittelyn alalla [5] .

Vuonna 2008 julkaistu RapidIO-versio 2.0 -spesifikaatio [6] lisäsi uusia porttien leveyksiä (2x, 8x ja 16x) ja nosti yhden linjan enimmäisnopeuden 6,25 Gbaudiin / 5 Gbps:iin. Versio 2.1 toisti ja laajensi spesifikaation 1.2 kaupallista menestystä [7] .

Vuonna 2013 julkaistu RapidIO-spesifikaatioversio 3.0 [8] teki seuraavat muutokset ja parannukset 2.x-spesifikaatioista:

RapidIO-spesifikaatioversio 4.0 julkaistiin vuonna 2016 [9] . Se on tehnyt seuraavat muutokset ja parannukset 3.x-spesifikaatioiden jälkeen:

Terminologia

kanavakumppani

Yksi RapidIO-kanavan päistä. loppusolmu Laite, joka pystyy aloittamaan tai vastaanottamaan (lopettamaan) pakettien lähetyksen. käsittelyelementti Laite, jossa on vähintään yksi RapidIO-portti. Vaihtaa Laite, joka pystyy jakamaan RapidIO-paketteja.

Standardin kuvaus

RapidIO -spesifikaatiot määrittelevät fyysiset (vastaa OSI-mallin fyysistä ja linkkikerrosta ), siirtokerrokset (vastaa OSI-mallin verkkokerrosta ) ja loogiset (vastaten OSI-mallin kuljetuskerrosta ) kerroksen.

Fyysisiä kerroksia on kaksi:

Protokollan yleiskatsaus

RapidIO-protokolla määritellään kolmikerroksisella spesifikaatiolla:

Järjestelmän tekniset tiedot sisältävät:

Fyysinen kerros

RapidIO-sähköspesifikaatio perustuu alan standardien Ethernet- ja Optical Interconnect Forum -standardeihin :

PCS/PMA RapidIO-kerros tukee kahta koodaus-/kehystysmuotoa:

Jokainen RapidIO-elementti, joka osallistuu, lähettää ja vastaanottaa kolmenlaisia ​​tietoja: purskeita, ohjausmerkkejä ja joutojaksoa.

Paketit

Jokainen paketti sisältää kaksi arvoa, jotka ohjaavat tämän paketin vaihtoa fyysisellä tasolla. Ensimmäinen näistä on kuittaustunnus (ackID), 5-, 6- tai 12-bittinen yksilöllinen numero kanavassa, jota käytetään kanavalla lähetettyjen pakettien kirjaamiseen. Paketit lähetetään peräkkäin kasvavilla ackID-arvoilla. Koska ackID on kanavariippuvainen, sitä ei tallenneta tarkistussummaan, vaan protokollatasolle. Tämä sallii ackID:n muuttua jokaisella kanavalla, jonka läpi paketti kulkee, kun taas paketin tarkistussumma pysyy vakiona päästä päähän ja varmistaa paketin eheyden. Kun paketti on vastaanotettu onnistuneesti, se kuitataan ackID:n mukaisesti. Lähettimen on säilytettävä paketti, kunnes sen onnistunut vastaanotto on kuitattu toisessa päässä.

Toinen arvo on paketin fyysinen prioriteetti. Fyysinen prioriteetti koostuu Virtual Circuit (VC) -tunnistebitistä, prioriteettibitistä ja Request Flow Critical (CRF) -bitistä. VC-bitti määrittää, käytetäänkö jäljellä olevia bittejä virtuaalikanavan numeroimiseen 1:stä 8:aan vai prioriteetin määrittämiseen nollavirtuaalikanavan sisällä. Virtuaalipiireille osoitetaan vastaavat vähimmäistaatut kaistanleveydet. Virtuaalipiirissä 0 korkean prioriteetin paketteja voidaan lähettää ennen matalan prioriteetin paketteja. Vastauspakettien fyysinen prioriteetti on oltava korkeampi kuin pyyntöpakettien lukkiutumisen välttämiseksi.

RapidIO-fyysinen kerros lisää kaksitavuisen otsikon paketteihin jokaisen paketin alussa, mukaan lukien ackID ja fyysinen prioriteetti, sekä kaksitavuisen tarkistussumman lopussa paketin eheyden tarkistamiseksi. Yli 80 tavua suuremmilla paketeilla on myös välitarkistussumma ensimmäisen 80 tavun jälkeen. Yhtä poikkeusta lukuun ottamatta paketin tarkistussumma varmistaa paketin eheyden yhteyden päissä.

Ohjausmerkit

RapidIO-ohjausmerkkejä voidaan lähettää milloin tahansa, jopa paketin sisällä. Tämän ansiosta RapidIO:lla on pienin mahdollinen ohjausviive ja korkea suorituskyky pienemmällä puskurilla kuin muilla protokollilla.

Ohjausmerkkejä käytetään pakettien erottamiseen toisistaan ​​(Paketin aloitus, Paketin loppu, Stomp), pakettien vastaanottamisen kuittaamiseen (Paketin kuittaus, Pakettia ei kuitata), nollaukseen (Reset Device, Reset Port) ja tapahtumien levittämiseen RapidIO:ssa. järjestelmä (Multicast Event Control Symbol). Ohjausmerkkejä käytetään myös vuon ohjaamiseen (Uudelleenyritys, Puskurin tila, Virtual Output Queue Backpressure) ja virheiden palautukseen.

Virheiden palautusprosessi on erittäin nopea. Heti kun vastaanotin huomaa lähetysvirheen vastaanotetussa datavirrassa, se saa siihen liittyvän lähettimen lähettämään Packet Not Accepted -ohjausmerkin. Heti kun toisessa päässä vastaanotetaan Packet Not Accepted -ohjausmerkki, uusien pakettien lähetys lopetetaan ja Link Request/Port Status -ohjausmerkki lähetetään. Seuraavassa lähetyksessä käytettävä ackID osoitetaan Link Response -ohjausmerkillä. Sen jälkeen lähetys jatkuu.

Idle Sequence

Idle-sekvenssiä käytetään linkin alustuksen aikana signaalin laadun optimoimiseksi. Se lähetetään myös silloin, kun muita paketteja tai ohjausmerkkejä ei lähetetä.

Kuljetuskerros

Jokainen RapidIO:n päätesolmu tunnistetaan yksilöllisellä laitetunnuksella (deviceID). Jokainen RapidIO-paketti sisältää kaksi laitetunnusta. Ensimmäinen näistä on kohdetunniste (destID), joka osoittaa minne paketti tulee lähettää. Toinen on alkuperätunniste (srcID), joka osoittaa, mistä paketti on peräisin. Kun päätesolmu vastaanottaa RapidIO-paketin, jossa on vastausta vaativa pyyntö, vastauspaketti muodostetaan vaihtamalla srcID ja destID.

RapidIO-kytkimet käyttävät vastaanotettujen pakettien destID-tunnusta määrittääkseen lähtöportin tai portit, joita paketin välittämiseen tulee käyttää. Tyypillisesti destID:tä käytetään indeksinä ohjausarvojen joukolle. Indeksointi on nopeaa ja edullista. Reititystaulukon RapidIO-kytkimet tukevat vakioohjelmointimallia, mikä yksinkertaistaa järjestelmän hallintaa.

RapidIO-kuljetuskerros tukee mitä tahansa verkkotopologiaa yksinkertaisista puista ja mesh-verkoista n-ulotteisiin hyperkuutioihin , moniulotteisiin toroideihin ja vähemmän tunnettuihin rakenteisiin, kuten mesh-verkkoihin.

RapidIO-siirtokerros mahdollistaa virtualisoinnin käytön (esimerkiksi RapidIO-pääsolmu voi tukea useita laitetunnuksia). Kunkin paketin kohdetunnisteen osia voidaan käyttää tiettyjen virtuaalisten laitteiden tunnistamiseen solmun sisällä.

Logiikkataso

RapidIO-looginen kerros koostuu useista spesifikaatioista, joista jokainen tarjoaa pakettiformaatteja ja protokollia siirtoja varten, joilla on erilainen semantiikka.

Logic I/O

Looginen I/O-kerros määrittelee pakettimuodot lukemista, kirjoittamista, vastauksen kirjoittamista ja erilaisia ​​atomioperaatioita varten. Esimerkkejä atomioperaatioista ovat asetus, tyhjennys, lisääminen, pienentäminen, swap, tarkista ja swap sekä vertailu ja swap.

Viesti kulkee

Viestinvälitysmääritykset määrittelevät ovikellot ja viestit. Ovikellot lähettävät 16-bittistä tapahtumakoodia. Viestit kuljettavat jopa 4 kilotavua dataa jaettuna 16 pakettiin, joista kukin voi kuljettaa enintään 256 tavua. Jokaisesta ovikello- tai viestipyynnöstä on lähetettävä vastauspaketit. Vastauspaketin tila-arvo tarkoittaa suoritusta, virhettä tai uudelleenyritystä. "Yritä uudelleen" -vastaustila pyytää pyynnön lähettäjää lähettämään paketin uudelleen. "Yritä uudelleen" -vastaus loogisella tasolla mahdollistaa sen, että monet lähettäjät voivat käyttää pientä määrää jaettuja vastaanottimia, mikä johtaa korkeaan suorituskykyyn pienellä teholla.

Virtauksen ohjaus

Flow Control -spesifikaatio määrittelee pakettimuodot ja protokollat ​​yksinkertaisia ​​valmius-/varattu-virranhallintatoimintoja varten. Vuonohjauspaketit voivat olla peräisin yhteyden päistä ja kytkimistä . "Varatun" vuonohjauspaketin vastaanotto pysäyttää virran tai virtojen lähetyksen, kunnes "valmis" vuonohjauspaketti vastaanotetaan tai aikakatkaisu tapahtuu . Vuonohjauspaketteja voidaan käyttää myös yleisenä mekanismina järjestelmäresurssien hallintaan.

CC-NUMA

Global Shared Memory -määritykset määrittelevät pakettimuodot ja protokollat ​​linkitetyn jaetun muistin välimuistin käsittelyä varten RapidIO-verkossa.

Suoratoistodata

Data Streaming Specification tukee viestien lähettämistä, joiden pakettimuoto ja semantiikka ovat muita kuin Message Passing Specification -määrityksiä. Streaming Packet Format tukee jopa 64 kilotavun tiedon siirtoa useisiin paketteihin jaettuna. Jokainen siirto liittyy palveluluokkaan ja stream ID:hen, mikä mahdollistaa tuhansia ainutlaatuisia virtoja päätesolmujen välillä.

Data Streaming Specification määrittelee myös pakettimuodot ja semantiikan laajennetun otsikon vuoohjaukselle asiakas-/palvelinjärjestelmän suorituskyvyn ohjaamiseksi. Jokainen asiakas käyttää vuonohjauspaketteja, joissa on laajennettu otsikko, ilmoittaakseen palvelimelle palvelimelle lähetettävän työn määrän. Palvelin vastaa vuonohjauspaketeilla, joissa on laajennetut otsikot, jotka käyttävät saatavuuteen/varattuihin, luokitukseen tai luottotietoihin perustuvia protokollia hallitakseen, kuinka nopeasti ja kuinka paljon asiakkaat lähettävät työtä palvelimelle.

Järjestelmän alustus

Järjestelmät, joilla on tunnettu topologia, voidaan alustaa järjestelmään sopivalla menetelmällä vaikuttamatta yhteensopivuuteen. RapidIO-järjestelmän alustusmääritys tukee sellaisten järjestelmien alustusta, joissa topologia on tuntematon tai dynaaminen. Järjestelmän alustusalgoritmit tukevat varaisäntien läsnäoloa, joten alustuksissa ei voi olla yhtä vikakohtaa.

Jokainen järjestelmäisäntä kulkee rekursiivisesti koko RapidIO-verkon läpi ottamalla laitteiden omistukseensa, osoittamalla laitetunnukset päätesolmuille ja päivittämällä kytkimien reititystaulukoita. Kun omistajuusristiriita ilmenee, isäntä, jolla on suurin laitetunnus, voittaa. Häviävä isäntä vapauttaa laitteet ja vetäytyy odottamaan voittajaa. Voittava isäntä jatkaa syöttöä, mukaan lukien häviävän isännän haltuunotto. Tämän jälkeen häviäjä isäntä tutkii järjestelmän lukemalla kytkimien reititystaulukot ja rekisteröityy kuhunkin päätesolmuun selvittääkseen järjestelmän kokoonpanot. Jos voittava isäntä ei suorita läpikulkua tunnetun ajan kuluessa, hävinnyt isäntä katsoo, että voittaja isäntä on epäonnistunut ja suorittaa läpikäynnin itse.

RapidIO-alijärjestelmä tukee järjestelmän ohitusta Linuxissa.

Virheiden käsittely

RapidIO on suunniteltu vikasietoiseksi, korkean käytettävyyden ja kuumakytkettäväksi. Määritellyt ehdot havaittaville virheille ja standardirekisterit virhetilanteen ja -tietojen raportoimiseksi. Konfiguroitava eristysmekanismi on myös määritelty siten, että jos paketteja ei voida vaihtaa linkissä, paketit voidaan pudottaa ruuhkautumisen välttämiseksi ja diagnosoinnin ja korjaavien toimien mahdollistamiseksi. Kaistan sisäiset (pakettien kirjoitus porttia kohti) ja kaistan ulkopuoliset (keskeytys) ilmoitusmekanismit määritellään.

Muototekijät

RapidIO-spesifikaatiossa ei kuvata muototekijöitä ja liittimiä, vaan toteutuksen yksityiskohdat jätetään tietyille sovellusongelmia käsitteleville yhteisöille. RapidIOa tuetaan seuraavissa muototekijöissä:

Ohjelmisto

Prosessorista riippumaton tuki RapidIO:lle löytyy Linux-ytimestä.

Sovellukset

RapidIO-yhteyksiä käytetään laajalti seuraavissa sovelluksissa:

Kilpailevat protokollat

PCI Express . Toisin kuin RapidIO, PCIe:tä ei ole optimoitu moniprosessoriverkoille. PCIe on ihanteellinen isäntä-oheislaitteiden väliseen viestintään. PCIe ei skaalaudu hyvin suuriin moniprosessoreihin peer-to-peer-järjestelmiin, koska PCIe:n perusoletus "juurikompleksista" tuo esiin vikasieto- ja hallintaongelmia.

Toinen vaihtoehto olisi Ethernet . Ethernet on hyvä tapa kytkeä tietokoneita suurilla alueilla, joilla verkon topologia voi muuttua odottamattomasti, käytetyt protokollat ​​ovat epäjohdonmukaisia ​​ja viiveet ovat suuria. Näiden ongelmien ratkaisemiseksi Ethernet-pohjaiset järjestelmät vaativat huomattavan prosessointitehon, muistin ja suuren määrän ohjelmistoja vuonhallinnan, tiedonsiirron ja pakettien reitityksen protokollien toteuttamiseksi. RapidIO on optimoitu alhaisen viiveen ja matalan viiveen prosessorien väliseen tietoliikenteeseen virheensietoisissa järjestelmissä, jotka ulottuvat enintään kilometrin pituisille alueille.

SpaceFibre on kilpaileva protokolla avaruussovelluksista [10] .

Katso myös

Muistiinpanot

  1. RapidIO.org I Open Standard Interconnect Architecture . Haettu 13. maaliskuuta 2009. Arkistoitu alkuperäisestä 13. maaliskuuta 2008.
  2. RapidIO: sulautetun järjestelmän välinen yhteys . - Wiley, 2005-01-01. — ISBN 0470092912 .
  3. RapidIO  Specifications , RapidIO.org . Arkistoitu alkuperäisestä 24. joulukuuta 2016. Haettu 24. joulukuuta 2016.
  4. "Integrated Device Technology 2011 Annual Report" Arkistoitu 3. maaliskuuta 2016 Wayback Machinessa  (PDF). www.idt.com . Integrated Device Technology Inc. 6. kesäkuuta 2011.s. neljä.
  5. Linley Group - RapidIO tavoittaa pilvet . www.linleygroup.com Haettu 24. joulukuuta 2016. Arkistoitu alkuperäisestä 24. joulukuuta 2016.
  6. "RapidIO Standard Revision 2.0" Arkistoitu 2. joulukuuta 2016 Wayback Machinessa . www.rapidio.org . RapidIO Trade Association. 23. helmikuuta 2005.
  7. "Integrated Device Technology 2014 Annual Report" Arkistoitu 3. maaliskuuta 2016 Wayback Machinessa  (PDF). www.idt.com . Integrated Device Technology Inc. 28. toukokuuta 2014.ss. 5, 35.
  8. RapidIO  Specifications , RapidIO.org . Arkistoitu alkuperäisestä 24. joulukuuta 2016. Haettu 24. joulukuuta 2016.
  9. RapidIO  Specifications , RapidIO.org . Arkistoitu alkuperäisestä 24. joulukuuta 2016. Haettu 24. joulukuuta 2016.
  10. "SpaceFibre Overview" Arkistoitu 22. lokakuuta 2014.  (PDF). TÄHTI Dundee.

Linkit