Bus (výpočetní) - Bus (computing)

Čtyři sloty pro karty PCI Express sběrnice (shora až 2. dole: × 4, × 16, × 1 a × 16), ve srovnání s 32bitovým konvenčním slotem pro kartu sběrnice PCI (úplně dole)

V počítačové architektuře je sběrnice (zkrácená forma latinského omnibusu a historicky také nazývaná datová dálnice ) komunikační systém, který přenáší data mezi součástmi uvnitř počítače nebo mezi počítači. Tento výraz zahrnuje všechny související hardwarové komponenty (kabely, optická vlákna atd.) A software , včetně komunikačních protokolů .

Rané počítačové sběrnice byly paralelní elektrické vodiče s více hardwarovými připojeními, ale termín je nyní používán pro jakékoli fyzické uspořádání, které poskytuje stejnou logickou funkci jako paralelní elektrická sběrnice . Moderní počítačové sběrnice mohou využívat paralelní i bitová sériová připojení a mohou být zapojeny buď v topologii multidrop (elektrická paralelní) nebo řetězová , nebo propojeny pomocí přepínaných rozbočovačů, jako v případě USB .

Pozadí a nomenklatura

Počítačové systémy se obecně skládají ze tří hlavních částí:

Starší počítač mohl obsahovat ručně zapojený CPU z elektronek , magnetický buben pro hlavní paměť a děrovací pásku a tiskárnu pro čtení a zápis dat. Moderní systém může mít vícejádrový procesor , paměť DDR4 SDRAM pro paměť, jednotku SSD pro sekundární úložiště , grafickou kartu a displej LCD jako zobrazovací systém, myš a klávesnici pro interakci a připojení Wi-Fi pro připojení k síti . V obou případech počítačové sběrnice té či oné formy přesouvají data mezi všemi těmito zařízeními.

Ve většině tradičních počítačových architektur bývají CPU a hlavní paměť úzce propojeny. Mikroprocesor konvenčně je jediný čip, který má celou řadu elektrických přípojek na svých kolíků , které lze použít k výběru „adresu“ v hlavní paměti a další sadu kolíků číst a zapisovat data uložená na tomto místě. Ve většině případů CPU a paměť sdílejí signalizační charakteristiky a pracují synchronně . Sběrnice spojující CPU a paměť je jednou z definujících charakteristik systému a je často označována jednoduše jako systémová sběrnice .

Je možné povolit periferním zařízením komunikovat s pamětí stejným způsobem, připojením adaptérů ve formě rozšiřujících karet přímo k systémové sběrnici. Toho se běžně dosahuje prostřednictvím nějakého standardizovaného elektrického konektoru, z nichž několik tvoří expanzní sběrnici nebo místní sběrnici . Protože se však rozdíly ve výkonu mezi CPU a periferiemi značně liší, je obecně potřeba nějaké řešení, které zajistí, že periferie nezpomalí celkový výkon systému. Mnoho CPU má druhou sadu pinů podobných těm pro komunikaci s pamětí, ale je schopno pracovat s velmi odlišnými rychlostmi a pomocí různých protokolů. Jiní používají inteligentní ovladače k ​​umístění dat přímo do paměti, což je koncept známý jako přímý přístup do paměti . Většina moderních systémů kombinuje obě řešení, je -li to vhodné.

Jak rostl počet potenciálních periferií, používání rozšiřující karty pro každé periferie bylo stále neudržitelnější. To vedlo k zavedení sběrnicových systémů navržených speciálně pro podporu více periferií. Běžnými příklady jsou porty SATA v moderních počítačích, které umožňují připojení řady pevných disků bez potřeby karty. Tyto vysoce výkonné systémy jsou však obecně příliš drahé na implementaci v zařízeních nižší třídy, jako je myš. To vedlo k paralelnímu vývoji řady nízko výkonných sběrnicových systémů pro tato řešení, nejběžnějším příkladem je standardizovaná Universal Serial Bus (USB). Všechny tyto příklady lze označit jako periferní sběrnice , přestože tato terminologie není univerzální.

V moderních systémech výkonnostní rozdíl mezi CPU a hlavní pamětí narostl natolik, že rostoucí množství vysokorychlostní paměti je zabudováno přímo do CPU, známého jako cache . V takových systémech CPU komunikují pomocí vysoce výkonných sběrnic, které pracují rychlostí mnohem větší než paměť, a komunikují s pamětí pomocí protokolů podobných těm, které se v minulosti používaly výhradně pro periferie. Tyto systémové sběrnice se také používají ke komunikaci s většinou (nebo všemi) jinými periferiemi prostřednictvím adaptérů, které zase hovoří s jinými periferiemi a řadiči. Takové systémy jsou architektonicky více podobné vícepočítačům , komunikují spíše po sběrnici než po síti. V těchto případech jsou rozšiřující sběrnice zcela oddělené a již nesdílejí žádnou architekturu se svým hostitelským CPU (a ve skutečnosti mohou podporovat mnoho různých CPU, jako je tomu u PCI ). To, co by dříve bylo systémovou sběrnicí, je nyní často známé jako autobus na přední straně .

Vzhledem k těmto změnám již klasické termíny „systém“, „expanze“ a „periferní“ nemají stejné konotace. Další běžné kategorizační systémy jsou založeny na primární roli sběrnice, připojují zařízení interně nebo externě, například PCI vs. SCSI . Pro oba však lze použít mnoho běžných moderních sběrnicových systémů; SATA a související eSATA jsou jedním příkladem systému, který by dříve byl popsán jako interní, zatímco některé automobilové aplikace používají primárně externí IEEE 1394 podobnějším způsobem jako systémová sběrnice. Jiné příklady, jako InfiniBand a I²C, byly od začátku navrženy pro použití interně i externě.

Interní autobusy

Interní sběrnice, známá také jako interní datová sběrnice, paměťová sběrnice , systémová sběrnice nebo sběrnice na přední straně , spojuje všechny základní součásti počítače, jako je CPU a paměť, se základní deskou. Interní datové sběrnice jsou také označovány jako místní sběrnice, protože jsou určeny k připojení k místním zařízením. Tato sběrnice je obvykle poměrně rychlá a je nezávislá na zbývajících operacích počítače.

Externí autobusy

Externí sběrnice nebo rozšiřující sběrnice se skládá z elektronických cest, které spojují různá externí zařízení, jako je tiskárna atd., S počítačem.

Adresní sběrnice

Adresovou sběrnici je sběrnice, která se používá k určení fyzické adresy . Když procesor nebo zařízení s povolenou DMA potřebuje číst nebo zapisovat do paměťového umístění, určuje toto paměťové místo na adresové sběrnici (hodnota, která se má číst nebo zapisovat, je odeslána na datovou sběrnici). Šířka sběrnice adres určuje velikost paměti, kterou může systém adresovat. Například systém s 32bitovou sběrnicí adres může adresovat 2 32 (4 294 967 296) paměťových míst. Pokud každé paměťové místo obsahuje jeden bajt, je adresovatelný paměťový prostor 4 GiB.

Multiplexování adres

Dřívější procesory používaly drát pro každý bit šířky adresy. Například 16bitová adresová sběrnice měla 16 fyzických vodičů tvořících sběrnici. Jak se autobusy rozšiřovaly a prodlužovaly, tento přístup se stal nákladným, pokud jde o počet čipových kolíků a stopy desek. Počínaje DRAM Mostek 4096 se stalo běžným multiplexování adres implementované multiplexery . Ve schématu multiplexované adresy je adresa odeslána ve dvou stejných částech na střídavé cykly sběrnice. Tím se sníží na polovinu počet signálů adresové sběrnice potřebných pro připojení k paměti. Například sběrnici 32bitových adres lze implementovat pomocí 16 řádků a odesláním první poloviny adresy paměti, za kterou bezprostředně následuje adresa druhé poloviny paměti.

Obvykle 2 další piny v řídicí sběrnici-strobo adresy adresy (RAS) a strobo-adresa stroboskopu (CAS)-se používají k informování paměti DRAM, zda adresová sběrnice aktuálně odesílá první polovinu adresy paměti nebo druhá polovina.

Implementace

Přístup k jednotlivému bajtu často vyžaduje čtení nebo zápis celé šířky sběrnice ( slovo ) najednou. V těchto případech dokonce nemusí být implementovány nejméně významné bity adresové sběrnice - místo toho je odpovědností řídicího zařízení izolovat jednotlivý požadovaný bajt od celého přeneseného slova. To je například případ místní sběrnice VESA, která postrádá dva nejméně významné bity, což tuto sběrnici omezuje na zarovnané 32bitové přenosy.

Historicky existovalo také několik příkladů počítačů, které dokázaly oslovit pouze slova - stroje na slova .

Paměťová sběrnice

Paměťové sběrnice je sběrnice, která spojuje hlavní paměti do paměťového řadiče v počítačových systémech . Původně se používaly sběrnice pro všeobecné použití jako VMEbus a S-100 , ale aby se snížila latence , byly moderní paměťové sběrnice navrženy tak, aby se připojovaly přímo k čipům DRAM , a proto je navrhovaly orgány pro standardy čipů, jako je JEDEC . Příkladem jsou různé generace SDRAM a sériové sběrnice point-to-point jako SLDRAM a RDRAM . Výjimkou je modul DIMM s plně vyrovnávací pamětí, který, přestože byl pečlivě navržen tak, aby minimalizoval účinek, byl kritizován kvůli vyšší latenci.

Podrobnosti o implementaci

Autobusy mohou být paralelní sběrnice , které přenášejí datová slova paralelně na více vodičích, nebo sériové sběrnice , které přenášejí data v bitové sériové podobě. Přidání přídavných napájecích a ovládacích připojení, rozdílových ovladačů a datových připojení v každém směru obvykle znamená, že většina sériových sběrnic má více vodičů, než je minimální počet vodičů použitých v 1-Wire a UNI/O . Se zvyšováním datových rychlostí je stále obtížnější obejít problémy se zkreslením časování , spotřebou energie, elektromagnetickým rušením a přeslechy napříč paralelními sběrnicemi. Jedním z dílčích řešení tohoto problému bylo zdvojené čerpání autobusu. Sériovou sběrnici lze často provozovat s vyššími celkovými datovými rychlostmi než paralelní sběrnici, přestože má méně elektrických připojení, protože sériová sběrnice ve své podstatě nemá žádné časové zkosení ani přeslechy. USB , FireWire a Serial ATA jsou toho příkladem. Připojení Multidrop nefunguje dobře u rychlých sériových sběrnic, takže většina moderních sériových sběrnic používá návrhy řetězových nebo rozbočovačů.

Síťová připojení, jako je ethernet, nejsou obecně považována za sběrnice, i když rozdíl je do značné míry koncepční než praktický. Atributem obecně používaným k charakterizaci sběrnice je to, že sběrnice poskytuje energii pro připojený hardware. To klade důraz na přípojnice původ sběrnicové architektuře jsou přiváděni zapnutý nebo distribuované energie. To vylučuje, jako sběrnice, schémata jako sériový RS-232 , paralelní Centronics , rozhraní IEEE 1284 a ethernet, protože tato zařízení také potřebovala samostatné napájecí zdroje. Zařízení Universal Serial Bus mohou využívat napájení ze sběrnice, ale často používají samostatný zdroj napájení. Toto rozlišení je doloženo telefonním systémem s připojeným modemem , kde připojení RJ11 a související schéma modulované signalizace není považováno za sběrnici a je analogické s ethernetovým připojením. Schéma připojení telefonní linka není považována za autobus s ohledem na signály, ale centrální úřad používá autobusy s příčka přepínačů pro připojení mezi telefony.

Toto rozlišení ‍, které je zajištěno sběrnicí‍, však není v mnoha avionických systémech , kde jsou datová připojení jako ARINC 429 , ARINC 629 , MIL-STD-1553B (STANAG 3838) a EFABus ( STANAG 3910 ) běžně označované jako „datové sběrnice“ nebo někdy „databáze“. Takové avionické datové sběrnice se obvykle vyznačují tím, že je několik zařízení nebo linkově vyměnitelných položek/jednotek (LRI/LRU) připojeno ke společnému sdílenému médiu . Mohou být, stejně jako u ARINC 429, simplexní , tj. Mohou mít jediný zdroj LRI/LRU nebo, jako u ARINC 629, MIL-STD-1553B a STANAG 3910, duplexní , umožňující všem připojeným LRI/LRU jednat různé časy ( poloviční duplex ), jako vysílače a přijímače dat.

Multiplexování sběrnice

Nejjednodušší systémová sběrnice má zcela oddělené vstupní datové řádky, výstupní datové řádky a adresní řádky. Aby se snížily náklady, většina mikropočítačů má obousměrnou datovou sběrnici, která znovu používá stejné vodiče pro vstup a výstup v různých časech.

Některé procesory používají vyhrazený vodič pro každý bit adresové sběrnice, datové sběrnice a řídicí sběrnice. Například 64kolíkový STEbus se skládá z 8 fyzických vodičů vyhrazených pro 8bitovou datovou sběrnici, 20 fyzických vodičů určených pro 20bitovou adresovou sběrnici, 21 fyzických vodičů vyhrazených pro řídicí sběrnici a 15 fyzických vodičů určených pro různé energetické autobusy.

Multiplexování sběrnice vyžaduje méně vodičů, což snižuje náklady u mnoha raných mikroprocesorů a čipů DRAM. Jedno společné schéma multiplexování , multiplexování adres , již bylo zmíněno. Další schéma multiplexování znovu používá piny adresové sběrnice jako piny datové sběrnice, což je přístup používaný konvenčním PCI a 8086 . Různé „sériové sběrnice“ lze považovat za konečný limit multiplexování, odesílání každého z bitů adresy a každého z datových bitů, jeden po druhém, prostřednictvím jednoho pinu (nebo jednoho diferenciálního páru).

Dějiny

Postupem času několik skupin lidí pracovalo na různých standardech počítačové sběrnice, včetně výboru IEEE Bus Architecture Standards Committee (BASC), studijní skupiny IEEE „Superbus“, otevřené iniciativy mikroprocesorů (OMI), iniciativy otevřených mikrosystémů (OMI), „Gang devíti“, který vyvinul EISA atd.

První generace

Počáteční počítačové autobusy byly svazky drátu, které připojovaly počítačovou paměť a periferie. Anekdoticky se jim říkalo „ číslicový kufr “ a byly pojmenovány podle elektrických napájecích autobusů nebo přípojnic . Téměř vždy existovala jedna sběrnice pro paměť a jedna nebo více samostatných sběrnic pro periferní zařízení. K nim se přistupovalo pomocí samostatných pokynů se zcela odlišným časováním a protokoly.

Jednou z prvních komplikací bylo používání přerušení . Rané počítačové programy prováděny I / O tím čekání ve smyčce pro periferní, aby se stal připraven. Byla to ztráta času pro programy, které měly jiné úkoly. Pokud se program pokusil provést tyto další úkoly, může trvat příliš dlouho, než se program znovu zkontroluje, což má za následek ztrátu dat. Inženýři tak zařídili, aby periferie přerušily CPU. Přerušení muselo být upřednostněno, protože procesor může současně spouštět kód pouze pro jedno periferie a některá zařízení jsou časově kritičtější než jiná.

Špičkové systémy zavedly myšlenku kanálových řadičů , což byly v podstatě malé počítače určené pro zpracování vstupu a výstupu dané sběrnice. IBM je představila na IBM 709 v roce 1958 a staly se běžným rysem jejich platforem. Podobný design implementovali i další vysoce výkonní prodejci, jako je Control Data Corporation . Obecně by kanálové řadiče udělaly maximum pro interní provozování všech sběrnicových operací, přesunutí dat, pokud by CPU bylo známo, že je zaneprázdněno jinde, pokud je to možné, a použití přerušení pouze v případě potřeby. To výrazně snížilo zatížení procesoru a zajistilo lepší celkový výkon systému.

Aby byla zajištěna modularita, lze paměťové a I/O sběrnice kombinovat do jednotné systémové sběrnice . V tomto případě lze použít jeden mechanický a elektrický systém k propojení mnoha součástí systému nebo v některých případech všech.

Později počítačové programy začaly sdílet paměť společnou několika CPU. Rovněž bylo nutné upřednostnit přístup k této paměťové sběrnici. Jednoduchý způsob, jak upřednostnit přerušení nebo přístup na sběrnici, byl pomocí řetězového zapojení . V tomto případě budou signály přirozeně procházet sběrnicí ve fyzickém nebo logickém pořadí, což eliminuje potřebu komplexního plánování.

Mini a mikro

Digital Equipment Corporation (DEC) dále snížila náklady na sériově vyráběné minipočítače a mapovala periferie do paměťové sběrnice, takže se zdálo, že vstupní a výstupní zařízení jsou paměťová místa. To byl realizován v Unibus na PDP-11 kolem roku 1969.

Rané mikropočítačové sběrnicové systémy byly v podstatě pasivní backplane připojené přímo nebo přes zesilovače vyrovnávací paměti k pinům CPU . Paměť a další zařízení by byla přidána na sběrnici pomocí stejné adresy a datových pinů, jaké používá samotný CPU, zapojené paralelně. Komunikace byla řízena procesorem, který četl a zapisoval data ze zařízení, jako by to byly bloky paměti, podle stejných pokynů, všechny časované centrálními hodinami ovládajícími rychlost CPU. Přesto zařízení přerušila CPU signalizací na samostatných pinech CPU.

Například disk regulátor bude signalizovat CPU, že nová data byla připravená být čten, na kterém místě CPU by přesunout data čtení „místo v paměti“, který odpovídal disku. Tímto způsobem byly postaveny téměř všechny rané mikropočítače, počínaje sběrnicí S-100 v počítačovém systému Altair 8800 .

V některých případech, zejména v IBM PC , ačkoli lze použít podobnou fyzickou architekturu, pokyny pro přístup k periferiím ( ina out) a paměti ( mova dalším) nebyly vůbec jednotné a stále generovaly odlišné signály CPU, což by mohlo být slouží k implementaci samostatné I/O sběrnice.

Tyto jednoduché sběrnicové systémy měly vážnou nevýhodu, když byly použity pro počítače pro všeobecné použití. Veškeré vybavení v autobuse muselo mluvit stejnou rychlostí, protože sdílelo jediné hodiny.

Zvýšení rychlosti CPU se stává obtížnějším, protože se musí zvýšit také rychlost všech zařízení. Když není praktické nebo ekonomické mít všechna zařízení tak rychlá jako CPU, musí CPU buď přejít do stavu čekání , nebo dočasně pracovat na pomalejší taktovací frekvenci, aby mohl mluvit s jinými zařízeními v počítači. I když je to u vestavěných systémů přijatelné , tento problém nebyl v počítačích s obecným určením a uživatelem rozšiřitelný dlouho tolerován.

Takové sběrnicové systémy jsou také obtížně konfigurovatelné, pokud jsou konstruovány z běžného běžného vybavení. Každá přidaná rozšiřující karta obvykle vyžaduje mnoho propojek , aby bylo možné nastavit adresy paměti, I/O adresy, priority přerušení a čísla přerušení.

Druhá generace

Sběrnicové systémy „druhé generace“ jako NuBus řešily některé z těchto problémů. Obvykle dělili počítač na dva „světy“, CPU a paměť na jedné straně a různá zařízení na straně druhé. A řadič sběrnice přijaté údaje ze strany CPU, které mají být přesunuta na straně periferií, a posune tedy komunikační protokol zátěž ze samotného procesoru. To umožnilo straně CPU a paměti vyvíjet se odděleně od sběrnice zařízení, nebo jen „sběrnice“. Zařízení v autobusu spolu mohla komunikovat bez zásahu CPU. To vedlo k mnohem lepšímu výkonu „v reálném světě“, ale také to vyžadovalo, aby karty byly mnohem složitější. Tyto sběrnice také často řešily problémy s rychlostí tím, že byly „větší“, pokud jde o velikost datové cesty, přecházely z 8bitových paralelních sběrnic v první generaci na 16 nebo 32bitové ve druhé a také přidaly nastavení softwaru (nyní standardizováno jako Plug-n-play ) k nahrazení nebo výměně propojek.

Tyto novější systémy však sdílely se svými dřívějšími bratranci jednu vlastnost, a to v tom, že všichni v autobuse museli mluvit stejnou rychlostí. Zatímco procesor byl nyní izolován a mohl zvýšit rychlost, procesory a paměť pokračovaly ve zvyšování rychlosti mnohem rychleji než autobusy, se kterými mluvili. Výsledkem bylo, že rychlosti sběrnice byly nyní mnohem nižší než to, co moderní systém potřeboval, a stroje zůstaly vyhladovělé po datech. Obzvláště častým příkladem tohoto problému bylo, že grafické karty rychle překonaly i novější sběrnicové systémy, jako je PCI , a počítače začaly zahrnovat AGP jen pro řízení grafické karty. V roce 2004 byl AGP opět přerosten špičkovými grafickými kartami a dalšími periferiemi a byl nahrazen novou sběrnicí PCI Express .

Stále více externích zařízení začalo využívat také vlastní sběrnicové systémy. Když byly poprvé představeny diskové jednotky, přidaly by se do stroje s kartou zapojenou do sběrnice, a proto mají počítače na sběrnici tolik slotů. Ale v 80. a 90. letech byly zavedeny nové systémy jako SCSI a IDE, které sloužily této potřebě, takže většina slotů v moderních systémech zůstala prázdná. Dnes je v typickém stroji pravděpodobně pět různých autobusů podporujících různá zařízení.

Třetí generace

Autobusy „třetí generace“ se objevují na trhu přibližně od roku 2001, včetně HyperTransport a InfiniBand . Mají také tendenci být velmi flexibilní, pokud jde o jejich fyzická připojení, což jim umožňuje používat je jako interní sběrnice i jako propojení různých strojů dohromady. To může vést ke složitým problémům při pokusu obsluhovat různé požadavky, takže většina práce na těchto systémech se týká návrhu softwaru, na rozdíl od samotného hardwaru. Obecně platí, že tyto sběrnice třetí generace mají tendenci vypadat více jako síť než původní koncept sběrnice, přičemž je zapotřebí vyšší režie protokolu než u raných systémů, a zároveň umožňuje použití sběrnice více zařízení najednou.

Autobusy jako Wishbone byly vyvinuty hnutím open source hardwaru ve snaze dále odstranit právní a patentová omezení z počítačového designu.

Čtvrtá generace

Compute Express Link (CXL) je otevřený standard propojení pro vysokorychlostní CPU -to-zařízení a CPU do paměti, který je určen k urychlení nové generace datových center výkon.

Příklady interních počítačových sběrnic

Paralelní

Seriál

Příklady externích počítačových sběrnic

Paralelní

  • Vysoce výkonné paralelní rozhraní HIPPI
  • IEEE-488 (také známý jako GPIB, General-Purpose Interface Bus a HPIB, Hewlett-Packard Instrumentation Bus)
  • Karta PC , dříve známá jako PCMCIA , se často používá v přenosných počítačích a jiných přenosných zařízeních, ale mizí se zavedením USB a vestavěného připojení k síti a modemu

Seriál

Příklady interních/externích počítačových sběrnic

Viz také

Reference

externí odkazy