RapidIO

A RapidIO  egy nagy teljesítményű adatinterfész chipek egyetlen nyomtatott áramköri lapon belüli csatlakoztatására, valamint több nyomtatott áramköri kártya összekapcsolására. Ezt az interfészt beágyazott rendszerekben való használatra tervezték .

A RapidIO fő versenytársai a HyperTransport , az Infiniband és a PCI Express , amelyeket azonban más célokra terveztek.

A RapidIO interfészt a Mercury Computer Systems és a Motorola ma már Freescale Semiconductor ) fejlesztette ki a Mercury többprocesszoros digitális jelfeldolgozó rendszereiben használt busz továbbfejlesztéseként.

A RapidIO interfész specifikációit a RapidIO Trade Association fejlesztette ki [1] . Jelenleg a specifikáció legújabb verziója a 4.

Történelem

A protokollt eredetileg a Mercury Computer Systems és a Motorola ( Freescale ) fejlesztette ki a Mercury szabadalmaztatott RACEway buszának és a Freescale PowerPC buszának [2] helyettesítésére . A RapidIO Trade Assosiation 2000 februárjában alakult, és távközlési és tárolóeszközök gyártóit, valamint processzorok és kapcsolók gyártóit foglalja magában. A protokollt a következő célok teljesítésére fejlesztették ki:

A 2001-ben kiadott RapidIO specifikáció 1.1-es változata nagy sávszélességű párhuzamos buszt határozott meg. Ez a specifikáció nem nyert széles körű kereskedelmi alkalmazást.

A RapidIO specifikáció 2002-ben kiadott 1.2-es változata [3] soros buszt definiált a belső kapcsolatokhoz a XAUI fizikai rétegen alapulóan . Az ezen a specifikáción alapuló eszközök jelentős kereskedelmi sikereket értek el a vezeték nélküli hálózati eszközök [4] , a képfeldolgozó technológiák és a katonai számítástechnika [5] területén .

A 2008-ban kiadott RapidIO revision 2.0 specifikáció [6] új portszélességeket adott (2x, 8x és 16x), és 6,25 Gbaud / 5 Gbps-ra növelte a maximális egyvonalas sebességet. A 2.1-es változat megismételte és kiterjesztette az 1.2-es specifikáció kereskedelmi sikerét [7] .

A RapidIO specifikáció 2013-ban kiadott 3.0-s verziója [8] a következő változtatásokat és fejlesztéseket hajtotta végre a 2.x specifikációkhoz képest:

A RapidIO specifikáció 4.0-s verziója 2016-ban jelent meg [9] . A 3.x specifikációi óta a következő változtatásokat és fejlesztéseket hajtotta végre:

Terminológia

csatorna partner

A RapidIO csatorna egyik vége. végcsomópont Csomagok átvitelének elindítására vagy fogadására (befejezésére) alkalmas eszköz. feldolgozó elem Olyan eszköz, amely legalább egy RapidIO porttal rendelkezik. Kapcsoló RapidIO-csomagok terjesztésére alkalmas eszköz.

A szabvány leírása

A RapidIO specifikációk meghatározzák a fizikai ( az OSI modell fizikai és kapcsolati rétegének megfelelő), a szállítási ( az OSI modell hálózati rétegének megfelelő) és a logikai ( az OSI modell szállítási rétegének megfelelő) rétegeket.

Két fizikai réteg specifikációja van:

Protokoll áttekintés

A RapidIO protokollt egy háromrétegű specifikáció határozza meg:

A rendszer specifikációi a következőket tartalmazzák:

Fizikai réteg

A RapidIO elektromos specifikációja az ipari szabvány Ethernet és Optical Interconnect Forum szabványokon alapul :

A PCS/PMA RapidIO réteg a kódolás/keretezés két formáját támogatja:

Minden részt vevő RapidIO-elem háromféle adatot küld és fogad: sorozatfelvételeket, vezérlőkaraktereket és tétlen sorozatot.

Csomagok

Minden csomag két értéket tartalmaz, amelyek a csomag fizikai szintű cseréjét szabályozzák. Ezek közül az első a nyugtázási azonosító (ackID), egy 5, 6 vagy 12 bites egyedi szám a csatornán belül, amely a csatornán továbbított csomagok nyomon követésére szolgál. A csomagok továbbítása egymás után növekvő ackID értékekkel történik. Mivel az ackID csatornafüggő, nem az ellenőrző összegben tárolódik, hanem protokoll szinten. Ez lehetővé teszi, hogy az ackID minden egyes csatornán megváltozzon, amelyen a csomag áthalad, miközben a csomag ellenőrző összege állandó marad a végétől a végéig, és a csomag integritásának ellenőrzésére szolgál. Ha egy csomagot sikeresen fogadunk, a rendszer az ackID szerint nyugtázza. Az adó köteles tárolni a csomagot mindaddig, amíg a másik végén a sikeres vételét vissza nem igazolják.

A második érték a csomag fizikai prioritása. A fizikai prioritás a Virtual Circuit (VC) azonosító bitből, a prioritásbitekből és a CRF (Request Flow Critical) bitből áll. A VC bit határozza meg, hogy a fennmaradó biteket a virtuális csatorna 1-től 8-ig történő számozására, vagy a null virtuális csatornán belüli prioritás meghatározására használják-e. A virtuális áramkörökhöz hozzá van rendelve a megfelelő minimális garantált sávszélesség. A 0 virtuális áramkörön belül a magas prioritású csomagok az alacsony prioritású csomagok előtt küldhetők el. A válaszcsomagoknak magasabb fizikai prioritásúaknak kell lenniük, mint a kéréscsomagoknak, hogy elkerüljék a holtpontot.

A RapidIO fizikai réteg egy kétbájtos fejlécet ad a csomagokhoz az egyes csomagok elején, beleértve az ackID-t és a fizikai prioritást, valamint egy kétbájtos ellenőrző összeget a végén, hogy ellenőrizze a csomag integritását. A 80 bájtnál nagyobb csomagoknak az első 80 bájt után köztes ellenőrző összegük is van. Egy kivétellel a csomag-ellenőrző összeg a csomag integritásának ellenőrzésére szolgál a kapcsolat végén.

Vezérlőkarakterek

A RapidIO vezérlőkarakterek bármikor elküldhetők, akár csomagon belül is. Ez lehetővé teszi, hogy a RapidIO a lehető legalacsonyabb vezérlési késleltetéssel rendelkezzen, és a többi protokollhoz képest kisebb pufferekkel nagy átviteli sebességet érjen el.

A vezérlőkarakterek a csomagok egymástól való elválasztására (Csomag eleje, Csomag vége, Stomp), a csomagok fogadásának nyugtázására (Csomag nyugtázása, Csomag nem nyugtázva), visszaállítására (Eszköz visszaállítása, Port alaphelyzetbe állítása) és események terjesztésére szolgálnak a RapidIO-n belül. rendszer (Multicast Event Control Symbol). A vezérlőkarakterek az áramlásvezérléshez (Újrapróbálkozás, Pufferállapot, Virtuális kimeneti sor ellennyomás) és hibaelhárításhoz is használhatók.

A hibaelhárítási eljárás nagyon gyors. Amint a vevő átviteli hibát észlel a vett adatfolyamban, a hozzá tartozó adót egy Packet Not Accepted vezérlőkarakter küldésére készteti. Amint a másik végén egy Packet Not Accepted vezérlőkarakter érkezik, az új csomagok átvitele leáll, és egy Link Request/Port Status vezérlőkarakter kerül elküldésre. A következő átvitelnél használandó ackID-t a Link Response vezérlőkarakter jelzi. Az átvitel ezután folytatódik.

Idle Sequence

Az üresjárati sorrendet a kapcsolat inicializálása során használják a jelminőség optimalizálása érdekében. Akkor is elküldésre kerül, ha nincs más csomag vagy vezérlőkarakter.

Szállítási réteg

A RapidIO minden végcsomópontját egyedi eszközazonosító (deviceID) azonosítja. Minden RapidIO-csomag két eszközazonosítót tartalmaz. Ezek közül az első a célazonosító (destID), amely jelzi, hová kell küldeni a csomagot. A második az eredetazonosító (srcID), amely jelzi, honnan származik a csomag. Amikor egy végcsomópont RapidIO-csomagot kap egy választ igénylő kéréssel, a válaszcsomag az srcID és a destID cseréjéből áll össze.

A RapidIO kapcsolók a fogadott csomagok destID-jét használják annak meghatározására, hogy melyik kimeneti portot vagy portokat kell használni a csomag továbbításához. A destID általában a vezérlőértékek tömbjének indexeként használatos. Az indexelési művelet gyors és olcsó. Az útválasztási táblázat RapidIO kapcsolói szabványos programozási modellt támogatnak, ami leegyszerűsíti a rendszerkezelést.

A RapidIO szállítási réteg bármilyen hálózati topológiát támogat, az egyszerű fáktól és mesh-hálózatoktól az n-dimenziós hiperkockákig , többdimenziós toroidokig és kevésbé ismert struktúrákig, például mesh-hálózatokig.

A RapidIO szállítási réteg lehetővé teszi a virtualizáció használatát (például egy RapidIO végcsomópont több eszközazonosítót is támogathat). Az egyes csomagok célazonosítójának részei a csomóponton belüli konkrét virtuális eszközök azonosítására használhatók.

Logikai szint

A RapidIO logikai réteg több specifikációból áll, amelyek mindegyike csomagformátumokat és protokollokat biztosít a különböző szemantikával rendelkező átvitelekhez.

Logikai I/O

A logikai I/O réteg csomagformátumokat határoz meg az olvasáshoz, íráshoz, válaszadáshoz való íráshoz és különféle atomi műveletekhez. Példák az atomi műveletekre: beállítás, törlés, növelés, csökkentés, csere, ellenőrzés és csere, valamint összehasonlítás és csere.

Üzenet átadása

Az üzenettovábbítási specifikáció határozza meg az ajtócsengőket és az üzeneteket. Az ajtócsengő 16 bites eseménykódot továbbít. Az üzenetek legfeljebb 4 kilobájtnyi adatot hordoznak 16 csomagra osztva, amelyek mindegyike maximum 256 bájtot hordozhat. Válaszcsomagokat kell küldeni minden ajtócsengő vagy üzenetkéréshez. A válaszcsomagban lévő állapotérték futást, hibát vagy újrapróbálkozást jelent. Az „újrapróbálkozás” válaszállapot arra kéri a kérés feladóját, hogy küldje el újra a csomagot. A logikai szintű „újrapróbálkozás” válasz lehetővé teszi, hogy sok küldő hozzáférjen néhány megosztott vevőhöz, ami nagy átviteli sebességet eredményez kis teljesítmény mellett.

Flow control

A Flow Control specifikáció csomagformátumokat és protokollokat határoz meg az egyszerű üzemkész/foglaltsági folyamatvezérlési műveletekhez. Az áramlásvezérlő csomagok származhatnak egy kapcsolat végéről és kapcsolókról . A "foglalt" áramlásvezérlő csomag fogadása leállítja az adatfolyam vagy adatfolyamok átvitelét mindaddig, amíg egy "kész" áramlásvezérlő csomag nem érkezik, vagy időkorlát be nem következik . Az áramlásvezérlő csomagok a rendszererőforrások kezelésének általános mechanizmusaként is használhatók.

CC-NUMA

A Global Shared Memory specifikáció határozza meg a RapidIO hálózat csatolt megosztott memória gyorsítótárának kezeléséhez szükséges csomagformátumokat és protokollokat.

Adatfolyamok

Az adatfolyam-specifikáció támogatja az üzenetek továbbítását az üzenettovábbítási specifikációtól eltérő csomagformátumú és szemantikával. A Streaming Packet Format akár 64 kilobájtnyi adat átvitelét támogatja több csomagra osztva. Minden átvitel egy szolgáltatási osztályhoz és egy adatfolyam-azonosítóhoz van társítva, amely több ezer egyedi adatfolyamot tesz lehetővé a végcsomópontok között.

Az adatfolyam-specifikáció csomagformátumokat és szemantikát is meghatároz a kiterjesztett fejléc áramlásvezérléséhez, hogy szabályozza a teljesítményt a kliens/szerver rendszeren belül. Minden kliens kiterjesztett fejléccel rendelkező áramlásvezérlő csomagokat használ, hogy tájékoztassa a szervert a kiszolgálónak elküldött munka mennyiségéről. A kiszolgáló kiterjesztett fejlécekkel rendelkező folyamvezérlő csomagokkal válaszol, amelyek a rendelkezésre állás/elfoglaltság, besorolás vagy hitelezés szerinti protokollokat használják annak szabályozására, hogy az ügyfelek milyen gyorsan és mennyi munkát küldjenek a szervernek.

Rendszer inicializálása

Az ismert topológiájú rendszerek inicializálhatók a rendszernek megfelelő módszerrel a kompatibilitás befolyásolása nélkül. A RapidIO rendszerinicializálási specifikáció olyan rendszerek inicializálását támogatja, ahol a topológia ismeretlen vagy dinamikus. A rendszerinicializálási algoritmusok támogatják a tartalék gazdagépek jelenlétét, így az inicializálásnak egyetlen hibapontja sem lehet.

Minden rendszergazda rekurzív módon bejárja a teljes RapidIO hálózatot, átveszi az eszközök tulajdonjogát, hozzárendeli az eszközazonosítókat a végcsomópontokhoz, és frissíti a kapcsolókon lévő útválasztási táblázatokat. Tulajdonosi ütközés esetén a legmagasabb eszközazonosítóval rendelkező gazdagép nyer. A vesztes gazdagép felszabadítja az eszközöket, és visszavonul, a győztes gazdagépre várva. A győztes házigazda folytatja a passzt, beleértve a vesztes házigazda birtokbavételét is. Ezután a vesztes gazdagép megvizsgálja a rendszert a kapcsoló-útválasztási táblák és az egyes végcsomópontokhoz tartozó regiszterek elolvasásával, hogy megtudja a rendszerkonfigurációkat. Ha a nyertes házigazda nem hajtja végre a bejárást egy ismert időn belül, a vesztes fogadó úgy tekinti, hogy a nyertes házigazda megbukott, és maga fejezi be a bejárást.

A rendszermegkerülést Linuxon a RapidIO alrendszer támogatja.

Hibakezelés

A RapidIO-t úgy tervezték, hogy hibatűrő, magas rendelkezésre állású és üzem közben csatlakoztatható legyen. Meghatározott feltételek a hibák észleléséhez és szabványos regiszterek a hibaállapot és információk jelentéséhez. Egy konfigurálható elkülönítési mechanizmus is meghatározásra került, így ha egy linken nem lehet csomagokat cserélni, akkor a csomagok eldobhatók a torlódások elkerülése, valamint a diagnosztika és a javító intézkedések megtétele érdekében. Meg vannak határozva a sávon belüli (portonkénti csomagírás) és a sávon kívüli (megszakítási) értesítési mechanizmusok.

Forma tényezők

A RapidIO specifikáció nem írja le az alaktényezőket és a csatlakozókat, a megvalósítás részleteit az alkalmazási problémákon dolgozó közösségekre bízza. A RapidIO a következő formában támogatott:

Szoftver

A RapidIO processzorfüggetlen támogatása a Linux kernelben található.

Alkalmazások

A RapidIO kapcsolatokat széles körben használják a következő alkalmazásokban:

Versengő protokollok

PCI Express . A RapidIO-val ellentétben a PCIe nincs optimalizálva peer-to-peer többprocesszoros hálózatokhoz. A PCIe ideális a gazdagép és a periféria közötti kommunikációhoz. A PCIe nem skálázható jól a nagy, többprocesszoros peer-to-peer rendszerekhez, mivel a PCIe „gyökérkomplexum” alapfeltevése hibatűrési és kezelési problémákat vet fel.

Egy másik alternatíva az Ethernet lenne . Az Ethernet jó megoldás, ha nagy területeken csatlakoztatják a számítógépeket, ahol a hálózati topológia váratlanul megváltozhat, a használt protokollok inkonzisztensek és a késések nagyok. E problémák megoldásához az Ethernet-alapú rendszereknek jelentős feldolgozási teljesítményre, memóriára és nagy mennyiségű szoftverre van szükségük az áramlásvezérlési, adatátviteli és csomagútválasztási protokollok megvalósításához. A RapidIO-t alacsony késleltetésű, alacsony késleltetésű processzorok közötti kommunikációra optimalizálták hibatűrő rendszerekben, amelyek egy kilométernél nem nagyobb területekre terjednek ki.

A SpaceFibre az űralkalmazások versengő protokollja [10] .

Lásd még

Jegyzetek

  1. RapidIO.org I Open Standard Interconnect Architecture . Letöltve: 2009. március 13. Az eredetiből archiválva : 2008. március 13..
  2. RapidIO: a beágyazott rendszer összekapcsolása . – Wiley, 2005. 01. 01. — ISBN 0470092912 .
  3. RapidIO  specifikációk , RapidIO.org . Az eredetiből archiválva : 2016. december 24. Letöltve: 2016. december 24.
  4. "Integrated Device Technology 2011 Annual Report" Archivált 2016. március 3-án a Wayback Machine -nél  (PDF). www.idt.com . Integrated Device Technology Inc. 2011. június 6.p. négy.
  5. A Linley Group – RapidIO eléri a felhőket . www.linleygroup.com Letöltve: 2016. december 24. Az eredetiből archiválva : 2016. december 24..
  6. "RapidIO Standard Revision 2.0" archiválva 2016. december 2-án a Wayback Machine -nél . www.rapidio.org . RapidIO Kereskedelmi Szövetség. 2005. február 23.
  7. "Integrated Device Technology 2014 Annual Report" Archivált 2016. március 3-án a Wayback Machine -nél  (PDF). www.idt.com . Integrated Device Technology Inc. 2014. május 28.pp. 5, 35.
  8. RapidIO  specifikációk , RapidIO.org . Az eredetiből archiválva : 2016. december 24. Letöltve: 2016. december 24.
  9. RapidIO  specifikációk , RapidIO.org . Az eredetiből archiválva : 2016. december 24. Letöltve: 2016. december 24.
  10. "SpaceFibre Overview" Archivált : 2014. október 22.  (PDF). SZTÁR Dundee.

Linkek