PCI | |
---|---|
Berättelse | |
Utvecklaren | Intel |
Tagit fram | 1992 |
avsatt | ISA och mikrokanalarkitektur |
Förskjuten | PCI Express |
Mediafiler på Wikimedia Commons |
PCI ( eng. Peripheral component interconnect "sammankoppling av periferiska komponenter") är en ingångs- utgångsbuss för att ansluta kringutrustning till ett datormoderkort .
PCI-bussstandarden definierar:
PCI-standarden utvecklas av PCI Special Interest Group .
Gränssnittet användes flitigt i konsumentdatorer under perioden 1995-2005 [1] [2] . Sedan ersattes den av den nyare PCI Express -standarden , delvis kompatibel med PCI när det gäller mjukvarumodellen, och, för ett antal tillämpningar, olika varianter av USB -bussen .
Under våren 1991 slutförde Intel utvecklingen av den första breadboard-versionen av PCI-bussen. Ingenjörerna fick i uppdrag att utveckla en låg kostnad och högpresterande lösning som skulle göra det möjligt för processorerna 486 , Pentium och Pentium Pro att förverkligas . Dessutom var det nödvändigt att ta hänsyn till de misstag som gjordes av VESA vid utformningen av VLB -bussen (den elektriska belastningen tillät inte anslutning av fler än 3 expansionskort), samt att implementera autokonfiguration av enheter enligt exemplet med Autoconfig- protokollet för Amiga -datorer . MCA :s marknadsföringsmisstag togs också med i beräkningen , vilket ledde till att "gänget av nio" konfronterades med EISA .
I juni 1992 dyker den första versionen av PCI-bussen upp, Intel meddelar att bussstandarden kommer att vara öppen och skapar PCI Special Interest Group. Tack vare detta får alla intresserade utvecklare möjlighet att skapa enheter för PCI-bussen utan att behöva köpa en licens. Den första versionen av bussen hade en klockhastighet på 33 MHz, kunde vara 32- eller 64-bitars, och enheter kunde arbeta med signaler på 5 V eller 3,3 V. Teoretiskt var bussgenomströmningen 133 MB/s, men i verkligheten genomströmningen var cirka 90 MB/s Den enda styrkretsen som stödde PCI 1.0-bussen var Intels 420TX (kodnamn Saturn), som släpptes i november 1992.
I mitten av 1993 lämnade Intel VESA-föreningen och började ta aktiva åtgärder för att marknadsföra PCI-bussen på marknaden. PCI 2.0 var ett svar på kritik från specialister från Usenet- konferenser och konkurrerande företag (bussens egenskaper var i stort sett lika, till exempel Zorro III , artiklar publicerades om bussens felaktiga design) blev PCI 2.0.
1995 dök PCI 2.1-versionen upp (ett annat namn är den "parallella PCI-bussen"), som gav dataöverföring över bussen med en frekvens på 66 MHz och en maximal överföringshastighet på 533 MB/s (för en 64-bitarsversion med en frekvens på 66 MHz). Dessutom har denna buss redan stöds på nivån för Windows 95 ( Plug and Play -teknik ). PCI 2.1-bussversionen visade sig vara så populär att den snart portades till plattformar med Alpha , MIPS , PowerPC , SPARC och andra processorer.
1997 , i samband med utvecklingen av datorgrafik och utvecklingen av AGP -bussen, upphörde PCI-bussen att uppfylla de nya, ökade kraven på grafikkort och användes inte längre för att installera grafikkort.
I slutet av 2000-talet [2] - början av 2010-talet ersattes PCI-gränssnittet gradvis av PCI Express och USB-gränssnitt . På konsumentmoderkort har antalet PCI-kortplatser [3] minskat , de installeras inte mer än 1-2, istället för 3-4 eller fler, som användes i början av 2000-talet [4] . På vissa moderkort (särskilt kompakta mATX- formfaktorer, etc.) är en PCI-kontakt inte installerad alls [3] [4] .
Initialt 32 adress/dataledare vid 33 MHz. Senare versioner dök upp med 64 ledare (ett extra kontaktblock används) och en frekvens på 66 MHz.
Bussen är decentraliserad, det finns ingen masterenhet, vilken enhet som helst kan initiera en transaktion. Skiljedom med en separat arbiterlogik används för att välja initiator . Skiljedom är "dold", tar inte tid - valet av en ny initiativtagare sker under transaktionen utförd av den tidigare initiativtagaren.
En transaktion består av 1 eller 2 adresscykler (2 adresscykler används för att överföra 64-bitars adresser, stöds inte av alla enheter, stöder DMA på minne som är större än 4 GB) och en eller flera datacykler. En transaktion med många datacykler kallas en "burst", det förstås som att läsa / skriva på varandra följande adresser och ger högre hastighet - en adresscykel för flera, och inte för varje datacykel, och ingen stilleståndstid (för att "lugna ner" ledare ) mellan transaktioner.
Särskilda transaktionstyper används för att komma åt konfigurationsutrymmet för en enhet.
En "batch"-transaktion kan tillfälligt avbrytas av båda enheterna på grund av brist på data i bufferten eller dess spill.
"Delade" transaktioner stöds, där målenheten svarar med statusen "pågår" och initiatorn måste släppa bussen för andra enheter, gripa den igen via skiljedom och försöka transaktionen igen. Detta görs tills målenheten svarar med "klar". Används för att koppla ihop bussar med olika hastigheter (PCI själv och CPU:ns främre sidobuss ) och för att förhindra dödläge i ett scenario med flera bussar.
Riktigt stöd för skenbroar. Riktigt stöd för cachningslägen som:
Avbrott stöds antingen som meddelandesignalerade avbrott (nya) eller på klassiskt sätt med INTA-D#-ledningar. Avbrottsledare fungerar oberoende av resten av bussen, det är möjligt att dela en ledare med många enheter.
PCI-enheter är plug and play ur användarens synvinkel . När datorn startar undersöker systemprogramvaran PCI-konfigurationsutrymmet för varje enhet som är ansluten till bussen och allokerar resurser.
Varje enhet kan begära upp till sex intervall i PCI-minnets adressutrymme eller i PCI I/O-adressutrymmet.
Dessutom kan enheter ha ett ROM som innehåller körbar kod för x86- eller PA-RISC-processorer , Open Firmware (systemprogramvara för SPARC- och PowerPC -baserade datorer) eller en EFI- drivrutin .
Avbrott konfigureras också av systemmjukvaran (till skillnad från ISA-bussen , där avbrott konfigurerades av omkopplare på kortet). En avbrottsbegäran på PCI-bussen sänds genom att ändra signalnivån på en av IRQ- linjerna , så det är möjligt för flera enheter att arbeta med en avbrottsbegäranlinje; vanligtvis försöker systemprogramvaran att tilldela ett separat avbrott till varje enhet för att öka prestandan.
Den första specifikationen godkändes i juni 1992. Den enda släppta styrkretsen med stöd för denna version av PCI-bussen är Intel 420TX (Saturn). Moderkort för 486 processorer baserade på denna styrkrets tillverkades från slutet av 1992 till 1994 och användes inte i stor utsträckning. Stöder PCI 1.0 och 2.0 kringutrustningskort (PCI 2.1-kort som introducerades 1996 stöds inte längre). Skiljeförfarande är centraliserat.
Den första versionen av grundstandarden, som antogs allmänt, använde både kort och kortplatser med en signalspänning på endast 5 volt. Toppkapaciteten är 133 MB/s. Moderkort baserade på PCI 2.0-kretsuppsättningar stöder PCI 2.0 och 2.1 kringutrustningskort (PCI 2.2-kort som introducerades 1998 stöds inte längre). Den första styrkretsen som stöder denna specifikation, Intel 430LX (Mercury), dök upp 1993 och designades för Socket 4-moderkort som stöder de första Pentium-processorerna, klockade till 60MHz och 66MHz. Skiljeförfarande är centraliserat.
De skilde sig från version 2.0 i möjligheten till samtidig drift av flera bussmaster ( eng. bus-master , det så kallade konkurrensläget), såväl som utseendet på universella expansionskort som kan fungera både i kortplatser med en spänning på 5 volt och i kortplatser som använder 3,3 volt (med en frekvens på 33 respektive 66 MHz). Toppkapaciteten för 33 MHz är 133 MB/s och för 66 MHz är 266 MB/s. Skiljeförfarandet är decentraliserat.
En utökning av PCI-standarden som introducerades i version 2.1 som fördubblar antalet databanor och därmed bandbredden. PCI 64-kortplatsen är en utökad version av den vanliga PCI-platsen. Formellt är kompatibiliteten för 32-bitarskort med 64-bitarsplatser (förutsatt att det finns en gemensam signalspänning) fullständig, medan kompatibiliteten för ett 64-bitarskort med 32-bitarsplatser är begränsad (i alla fall kommer det att vara en prestationsförlust). Fungerar med en klockfrekvens på 33 MHz. Toppkapaciteten är 266 MB/s. Skiljeförfarandet är decentraliserat.
PCI 66 är en 66 MHz utveckling av PCI 64; använder en spänning på 3,3 volt i kortplatsen; kort har en universal eller 3,3 V formfaktor. Toppkapaciteten är 533 MB/s. Skiljeförfarandet är decentraliserat.
Kombinationen av PCI 64 och PCI 66 tillåter fyra gånger dataöverföringshastigheten jämfört med bas-PCI-standarden; använder 64-bitars 3,3-volts kortplatser som endast är kompatibla med universella och 3,3-volts 32-bitars expansionskort. PCI64/66-kort har antingen universella (men begränsad kompatibilitet med 32-bitars kortplatser) eller 3,3-volts formfaktor (det senare alternativet är i grunden inkompatibelt med 32-bitars 33 MHz-kortplatser av populära standarder). Toppbandbredd - 533 MB/s. Skiljeförfarandet är decentraliserat.
Utveckling av versionen PCI 64. För alla bussalternativ finns följande begränsningar för antalet enheter anslutna till varje buss: 66 MHz - 4, 100 MHz - 2, 133 MHz - 1 (eller 2, om en eller båda enheterna är inte på expansionskort, men redan integrerade på samma kort med styrenheten), 266, 533 MHz och högre - 1.
Version 1.0 - introducerade två nya driftsfrekvenser: 100 och 133 MHz, samt en separat transaktionsmekanism för att förbättra prestandan när flera enheter arbetar samtidigt. Generellt bakåtkompatibel med alla 3,3V och universella PCI-kort. Kort görs vanligtvis i 64-bitars format vid 3,3 V och har begränsad bakåtkompatibilitet med PCI64/66-platser, och vissa kort är i universalformat och kan fungera (även om detta nästan inte har något praktiskt värde) i vanlig PCI 2.2/2.3. Toppkapaciteten är 1024 MB/s.
Version 2.0 - två nya driftfrekvenser har introducerats: 266 och 533 MHz, samt paritetsfelkorrigering vid dataöverföring ( ECC ). Utökar PCI-konfigurationsutrymmet till 4096 byte och tillåter uppdelning i 4 oberoende 16-bitars bussar, som används uteslutande i inbyggda och industriella system, signalspänningen reduceras till 1,5 V, men kontakterna är bakåtkompatibla med alla kort som använder signalspänning 3, 3 V. Toppkapacitet - 4096 MB/s. Skiljeförfarandet är decentraliserat.
Formfaktor PCI 2.2, avsedd för användning främst i bärbara datorer .
PCMCIA är en formfaktor för 32-bitarskort, 33 MHz PCI.
Eurocard-storleksmoduler som ingår i PCI -bakplanet används .
En industribuss som använder PCI-signaluppsättningen, men med en annan kontakt.
En industribuss som använder PCI-E-signaluppsättningen.
PCI Mezzanine Card , en mezzaninbuss som överensstämmer med IEEE P1386.1-standarden.
Nästa generations buss för telekommunikationsindustrin baserad på PCI Express -gränssnittet . [5] [6]
PCI Express (tidigare känt som 3GI0 och Arapaho) är ett seriellt gränssnitt som använder PCI-mjukvarumodellen, men har ett kraftfullare fysiskt lager (med LVDS och nya kontakter) [6] .
Datorbussar och gränssnitt | |
---|---|
Grundläggande koncept | |
Processorer | |
Inre | |
Anteckningsböcker | |
Driver | |
Periferi | |
Utrustningshantering | |
Universell | |
Videogränssnitt | |
Inbyggda system |