PCI

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 22. april 2020; checks kræver 20 redigeringer .
PCI
Historie
Udvikler Intel
Udviklede sig 1992
fordrevet ISA og mikrokanalarkitektur
Fordrevet PCI Express
 Mediefiler på Wikimedia Commons

PCI ( eng.  Peripheral component interconnect "sammenkobling af perifere komponenter") er en input - output bus til tilslutning af perifere enheder til et computerbundkort .

PCI-busstandarden definerer:

PCI-standarden udvikles af PCI Special Interest Group .

Interfacet blev meget brugt i forbrugercomputere i perioden 1995-2005 [1] [2] . Derefter blev den afløst af den nyere PCI Express -standard , delvist kompatibel med PCI med hensyn til softwaremodellen, og, for en række applikationer, forskellige varianter af USB -bussen .

Oprettelseshistorie

I foråret 1991 færdiggjorde Intel udviklingen af ​​den første breadboard-version af PCI-bussen. Ingeniørerne fik til opgave at udvikle en billig og højtydende løsning, der ville gøre det muligt at realisere funktionerne i 486 , Pentium og Pentium Pro processorerne . Derudover var det nødvendigt at tage højde for de fejl, som VESA begået ved design af VLB -bussen (den elektriske belastning tillod ikke tilslutning af mere end 3 udvidelseskort), samt at implementere autokonfiguration af enheder efter eksemplet med Autoconfig -protokollen til Amiga -computere . MCA 's markedsføringsfejl blev også taget i betragtning , hvilket førte til "banden på ni" -konfrontationen med EISA .

I juni 1992 dukker den første version af PCI-bussen op, Intel annoncerer, at busstandarden vil være åben, og skaber PCI Special Interest Group. Takket være dette får enhver interesseret udvikler mulighed for at oprette enheder til PCI-bussen uden at skulle købe en licens. Den første version af bussen havde en clockhastighed på 33 MHz, kunne være 32- eller 64-bit, og enheder kunne arbejde med signaler på 5 V eller 3,3 V. Teoretisk var busgennemstrømningen 133 MB/s, men i virkeligheden gennemstrømningen var omkring 90 MB/s Det eneste chipsæt til at understøtte PCI 1.0-bussen var Intels 420TX (kodenavn Saturn), udgivet i november 1992.

I midten af ​​1993 forlod Intel VESA-foreningen og begyndte at tage aktive skridt for at fremme PCI-bussen på markedet. PCI 2.0 var et svar på kritik fra specialister fra Usenet -konferencer og konkurrerende virksomheder (bussens egenskaber lignede stort set, f.eks. Zorro III , artikler blev offentliggjort om bussens fejlagtige design) blev til PCI 2.0.

I 1995 dukkede PCI 2.1-versionen op (et andet navn er den "parallelle PCI-bus"), som leverede dataoverførsel over bussen med en frekvens på 66 MHz og en maksimal overførselshastighed på 533 MB/s (for en 64-bit version) med en frekvens på 66 MHz). Derudover er denne bus allerede blevet understøttet på niveau med Windows 95 ( Plug and Play -teknologi ). PCI 2.1-busversionen viste sig at være så populær, at den snart blev porteret til platforme med Alpha , MIPS , PowerPC , SPARC og andre processorer.

I 1997 , i forbindelse med udviklingen af ​​computergrafik og udviklingen af ​​AGP -bussen, ophørte PCI-bussen med at opfylde de nye, øgede krav til videokort og blev ikke længere brugt til at installere videokort.

I slutningen af ​​2000'erne [2]  - begyndelsen af ​​2010'erne blev PCI-grænsefladen gradvist erstattet af PCI Express- og USB-grænseflader . På forbrugerbundkort er antallet af PCI-slots [3] faldet , de er ikke installeret mere end 1-2 i stedet for 3-4 eller flere, brugt i begyndelsen af ​​2000'erne [4] . På nogle bundkort (især kompakte mATX -formfaktorer osv.) er der slet ikke installeret et PCI-stik [3] [4] .

Arkitektur

I første omgang 32 adresse-/dataledere ved 33 MHz. Senere versioner dukkede op med 64 ledere (en ekstra stikblok bruges) og en frekvens på 66 MHz.

Bussen er decentral, der er ingen masterenhed, enhver enhed kan starte en transaktion. Voldgift med en separat arbiterlogik bruges til at vælge initiatoren . Voldgift er "skjult", tager ikke tid - valget af en ny initiativtager sker under transaktionen udført af den tidligere initiativtager.

En transaktion består af 1 eller 2 adressecyklusser (2 adressecyklusser bruges til at overføre 64-bit adresser, understøttes ikke af alle enheder, understøtter DMA på hukommelse større end 4 GB) og en eller flere datacyklusser. En transaktion med mange datacyklusser kaldes en "burst", det forstås som læsning / skrivning af fortløbende adresser og giver højere hastighed - en adressecyklus for flere, og ikke for hver datacyklus, og ingen nedetid (for at "dæmpe" ledere ) mellem transaktioner.

Særlige transaktionstyper bruges til at få adgang til en enheds konfigurationsrum.

En "batch"-transaktion kan midlertidigt suspenderes af begge enheder på grund af manglende data i bufferen eller dens overløb.

"Split"-transaktioner understøttes, hvor målenheden svarer med status "i gang", og initiativtageren skal frigive bussen for andre enheder, gribe den igen via voldgift og forsøge transaktionen igen. Dette gøres, indtil målenheden svarer med "færdig". Bruges til at forbinde busser med forskellige hastigheder (selve PCI'en og CPU'ens frontsidebus ) og til at forhindre dødvande i et multi-bus-broscenarie.

Rig støtte til samleskinnebroer. Rig support til caching-tilstande såsom:

Interrupts understøttes enten som Message Signaled Interrupts (nye) eller på klassisk vis ved hjælp af INTA-D# ledninger. Interrupt-ledere fungerer uafhængigt af resten af ​​bussen, det er muligt at dele en leder med mange enheder.

Konfiguration

PCI-enheder er plug and play fra brugerens synspunkt . Når computeren er startet, undersøger systemsoftwaren PCI-konfigurationsområdet for hver enhed, der er tilsluttet bussen, og allokerer ressourcer.

Hver enhed kan anmode om op til seks områder i PCI-hukommelsesadresserummet eller i PCI I/O-adresserummet.

Derudover kan enheder have en ROM , der indeholder eksekverbar kode til x86- eller PA-RISC-processorer , Open Firmware (systemsoftware til SPARC- og PowerPC -baserede computere) eller en EFI -driver .

Afbrydelser konfigureres også af systemsoftwaren (i modsætning til ISA-bussen , hvor afbrydelser blev konfigureret af switches på kortet). En afbrydelsesanmodning på PCI-bussen transmitteres ved at ændre signalniveauet på en af ​​IRQ -linjerne , så det er muligt for flere enheder at arbejde med en afbrydelsesanmodningslinje; normalt forsøger systemsoftware at tildele en separat afbrydelse til hver enhed for at øge ydeevnen.

Specifikation

Standard ændringer

PCI 1.0

Den første specifikation blev godkendt i juni 1992. Det eneste frigivne chipsæt med understøttelse af denne version af PCI-bussen er Intel 420TX (Saturn). Bundkort til 486 processorer baseret på dette chipset blev produceret fra slutningen af ​​1992 til 1994 og blev ikke udbredt. Understøtter PCI 1.0 og 2.0 perifere kort (PCI 2.1 kort introduceret i 1996 understøttes ikke længere). Voldgift er centraliseret.

PCI 2.0

Den første version af den grundlæggende standard, som blev bredt vedtaget, brugte både kort og slots med en signalspænding på kun 5 volt. Maksimal gennemstrømning er 133 MB/s. Bundkort baseret på PCI 2.0-chipsæt understøtter PCI 2.0 og 2.1 perifere kort (PCI 2.2-kort introduceret i 1998 understøttes ikke længere). Det første chipsæt, der understøttede denne specifikation, Intel 430LX (Mercury), dukkede op i 1993 og blev designet til Socket 4-bundkort, der understøtter de første Pentium-processorer, klokket til 60MHz og 66MHz. Voldgift er centraliseret.

PCI 2.1 - 3.0

De adskilte sig fra version 2.0 i muligheden for samtidig drift af flere busmastere ( eng.  bus-master , den såkaldte konkurrencetilstand), såvel som udseendet af universelle udvidelseskort, der er i stand til at fungere både i slots ved hjælp af en spænding på 5 volt og i slots ved brug af 3,3 volt (med en frekvens på henholdsvis 33 og 66 MHz). Maksimal gennemstrømning for 33 MHz er 133 MB/s og for 66 MHz er 266 MB/s. Voldgift er decentraliseret.

PCI 64

En udvidelse til kerne-PCI-standarden introduceret i version 2.1, der fordobler antallet af databaner og dermed båndbredden. PCI 64 slot er en udvidet version af den almindelige PCI slot. Formelt er kompatibiliteten af ​​32-bit kort med 64-bit slots (forudsat at der er en fælles understøttet signalspænding) fuldstændig, mens kompatibiliteten af ​​et 64-bit kort med 32-bit slots er begrænset (under alle omstændigheder vil der være et præstationstab). Fungerer ved en clockfrekvens på 33 MHz. Maksimal gennemstrømning er 266 MB/s. Voldgift er decentraliseret.

PCI 66

PCI 66 er en 66 MHz udvikling af PCI 64; bruger en spænding på 3,3 volt i spalten; kort har en universal eller 3,3 V formfaktor.Pak gennemstrømning er 533 MB/s. Voldgift er decentraliseret.

PCI 64/66

Kombinationen af ​​PCI 64 og PCI 66 tillader fire gange dataoverførselshastigheden sammenlignet med basis-PCI-standarden; bruger 64-bit 3,3-volt slots kun kompatible med universelle, og 3,3-volt 32-bit udvidelseskort. PCI64/66-kort har enten universal (men begrænset kompatibilitet med 32-bit slots) eller 3,3-volt formfaktor (sidstnævnte mulighed er grundlæggende inkompatibel med 32-bit 33 MHz slots af populære standarder). Spidsbåndbredde - 533 MB/s. Voldgift er decentraliseret.

PCI-X

Udvikling af versionen PCI 64. For alle busmuligheder er der følgende begrænsninger på antallet af enheder tilsluttet hver bus: 66 MHz - 4, 100 MHz - 2, 133 MHz - 1 (eller 2, hvis en eller begge enheder er ikke på udvidelseskort, men allerede integreret på samme kort med controlleren), 266, 533 MHz og højere - 1.

Version 1.0 - introducerede to nye driftsfrekvenser: 100 og 133 MHz, samt en separat transaktionsmekanisme for at forbedre ydeevnen, når flere enheder arbejder samtidigt. Generelt bagudkompatibel med alle 3,3V og universelle PCI-kort. Kort er normalt lavet i 64-bit format ved 3,3 V og har begrænset bagudkompatibilitet med PCI64/66 slots, og nogle kort er i universelt format og kan fungere (selvom dette næsten ikke har nogen praktisk værdi) i almindelig PCI 2.2/2.3. Maksimal gennemstrømning er 1024 MB/s.

Version 2.0 - to nye driftsfrekvenser er blevet introduceret: 266 og 533 MHz, samt paritetsfejlkorrektion under datatransmission ( ECC ). Udvider PCI-konfigurationspladsen til 4096 bytes og tillader opdeling i 4 uafhængige 16-bit busser, som udelukkende bruges i indlejrede og industrielle systemer, signalspændingen er reduceret til 1,5 V, men stikkene er bagudkompatible med alle kort, der bruger signalspænding 3, 3 V. Topgennemstrømning - 4096 MB/s. Voldgift er decentraliseret.

Mini PCI

Formfaktor PCI 2.2, beregnet til primært brug i bærbare computere .

CardBus

PCMCIA  er en formfaktor for 32-bit kort, 33 MHz PCI.

CompactPCI

Der anvendes moduler i størrelsen Eurocard, der er inkluderet i PCI -bagpladen .

PC/104 Plus

En industribus, der bruger PCI-signalsættet, men med et andet stik.

StackPC

En industribus, der bruger PCI-E signalsættet.

PMC

PCI Mezzanine Card , en mezzaninbus , der overholder IEEE P1386.1-standarden.

AdvancedTCA (ATCA)

Næste generations bus til telekommunikationsindustrien baseret på PCI Express -grænsefladen . [5] [6]

Andre muligheder

PCI Express (tidligere kendt som 3GI0 og Arapaho) er en seriel grænseflade, der bruger PCI-softwaremodellen, men har et mere kraftfuldt fysisk lag (ved hjælp af LVDS og nye stik) [6] .

Noter

  1. John Williams (2014). Digital VLSI Design med Verilog: En lærebog fra Silicon Valley Technical Institute. Springer. s. 96 "5.1.3 Introduktion til SerDes og PCI Express" Arkiveret 22. juli 2015 på Wayback Machine . ISBN 9783319047898 .
  2. 12 John Williams . Digital VLSI Design med Verilog: En lærebog fra Silicon Valley Technical Institute . Springer  , 2008. - S. 67. - ISBN 978-1-4020-8446-1 .
  3. 1 2 Scott Mueller, Opgradering og reparation af pc'er, side 247 Arkiveret 22. juli 2015 på Wayback Machine "Lokale busser (VESA, PCI, PCI Express, AGP)" - QUE, 2014 ISBN 9780133105360
  4. 1 2 Definition af:  PCI . PCMag Encyclopedia . Computersprogfirmaet. - "Der er generelt tre eller fire slots på bundkortet." Hentet 22. juli 2015. Arkiveret fra originalen 22. juli 2015.
  5. Slyusar V. I. Nye standarder for industrielle computersystemer. //Elektronik: videnskab, teknologi, forretning. - 2005. - Nr. 6. - S. 52 - 53. [https://web.archive.org/web/20160304093819/http://www.electronics.ru/files/article_pdf/0/article_938_218.pdf Arkiv kopi den 4. marts 2016 på Wayback Machine ]
  6. 1 2 Slyusar V.I. PCI Express. Standardens ansigt.// Automatiseringens verden. - 2006. - Nr. 1. - C. 38 - 41. [1] Arkivkopi af 27. august 2018 på Wayback Machine

Litteratur

Links