FAQ despre CompactPCI
# Ce factori determină rapiditatea bus-urilor PCI şi CompactPCI?
Sunt trei factori principali care determină ca bus-urile PCI şi CompactPCI să fie atât de rapide. În primul rând bus-ul de date este de 32 sau 64 de biţi, ceea ce înseamnă că poate muta patru sau opt bytes într-un singur ciclu. În al doilea rând, ceasul bus-ului este de 33 MHz, ceea ce face ca un ciclu de bază să fie de 33 de nanosecunde. În al treilea rând, transferul de date este bazat pe syncronous burst transfer, unde adresa este dată o singură dată la începutul unui ciclu de citire sau scriere, urmată de un şir de date continue.
# Care este viteza maximă a PCI şi CompactPCI?
Viteza maximă teoretică a PCI şi CompactPCI este de 133 Mbytes/s folosind date pe 32 de biţi sau 266 Mbytes/s folosind date de 64 de biţi. De notat că ultimele variante de specificaţii PCI permit tactul bus-ului de 66 MHz, ceea ce implică 266 şi 533 Mbytes/s, dar aceste versiuni rapide nu sunt parte a specificaţiilor CompactPCI.
Viteza maximă de 133 Mbytes/s (date pe 32 de biţi) poate fi obţinută în cazul transferului de blocuri de date foarte mari, cu procesor şi memorie suficient de rapide pentru a suporta un astfel de transfer continuu. Practic, memoria sau CPU nu sunt întotdeauna disponibile în acelaşi timp cu bus-ul pentru transfer de date, iar încărcarea necesară pentru a iniţia un ciclu de transfer nu este întotdeauna neglijabil. Astfel, o cifră reală pentru viteza PCI sau CompactPCI este între 80 şi 100 Mbytes/s (date pe 32 de biţi), ceea ce este de câteva ori mai mare decât a altor bus-uri performante.
# De ce numărul de sloturi este limitat?
Pentru realizarea unei viteze mari cu un consum mic de putere, bus-ul PCI este în gol, ceea ce înseamnă că reflexiile nu sunt eliminate, dar şi că acestea sunt folosite de driverele de bus. Mai mult, toate temporizările bus-ului au toleranţe foarte mici, de ordinul a două nanosecunde. Combinarea toleranţelor mici ale temporizărilor cu caracteristicile reflexiilor impune limite mici pentru perioade şi pentru impedanţele de sarcină. Un driver de bus PCI este proiectat numai pentru 10 sarcini. Un conector reprezintă o sarcină, iar cipul periferic PCI este încă o sarcină. Astfel pot fi numai patru sloturi PCI pentru un sistem tipic desktop PC. CompactPCI permite backplanes cu până la opt sloturi.
# Câte sloturi poate avea un sistem CompactPCI?
Cardurile CompactPCI folosesc un conector de înaltă performanţă de tip DIN cu cinci rânduri de 47 de pini plus învelişul metalic care reprezintă ecranul. Această proiectare permite caracteristici de impedanţă excepţionale conectorului şi o capacitate de 2 pF faţă de 10 pF pentru un conector tipic de desktop PCI. Driverul bus-ului CompactPCI, cardul, conectorul şi ansamblul backplane au fost determinaţi folosind o simulare detaliată şi s-a dovedit că pot suporta până la opt sloturi (faţă de patru pentru alte implementări PCI).
# Cum se pot adăuga mai multe sloturi la sistemele CompactPCI?
Sistemele CompactPCI (şi sistemele de bus-uri PCI în general) pot fi duse dincolo de limita de opt sloturi (patru sloturi pentru standard PCI) folosind punţi PCI -to- PCI. Aceste punţi sunt dispozitive care se conectează la un capăt cu bus-ul PCI şi pot pune la dispoziţie la celălalt capăt un alt set de opt (sau patru) sloturi PCI. Ele acţionează ca repetoare, “repetând” ceea ce “văd” la bus-ul principal PCI. Punţile PCI pot fi adăugate, teoretic, la infinit pentru a construi sisteme foarte mari.
# Există neajunsuri pentru mărirea sistemelor PCI folosind punţi?
Practic nu. În timpul fazei de iniţializare, punţile PCI-to-PCI trebuie configurate astfel încât toate dispozitivele de pe bus-uri să poată fi mapate. Odată ce acest lucru este realizat, CPU nu mai trebuie să fie accesat de punţi şi poate accesa un dispozitiv aflat cu trei punţi mai jos ca şi cum dispozitivul ar fi pe bus-ul principal PCI. Fiecare punte adaugă un ciclu de ceas (33 ns) la transferul unui bloc de date. Dacă mărimea blocurilor de date transferate este mică (unul sau doi bytes), acest ciclu suplimentar poate fi semnificativ. Dacă este transferat un bloc de 100 bytes, adăugarea acestui ciclu suplimentar reprezintă o pierdere de performanţă de mai puţin de 1%.
# Cât de bine manipulează CompactPCI sau PCI transferurile simple de I/O?
CompactPCI este, din punct de vedere tehnic, capabil să acceseze dispozitive simple şi lente de I/O cum ar fi un port paralel sau un convertor A/D. Transferul nu ar fi foarte eficient deoarece asemenea dispozitive trasferă 8 sau 16 biţi pe ciclu şi nu beneficiază de viteza bus-ului PCI, dar un ciclu complet de scriere poate fi realizat în aproximativ 100 ns, ceea ce este rapid pentru bus-urile I/O actuale. Practic, Compact PCI şi PCI introduc un nivel de complexitate (configurarea registrelor, FIFO, identificarea registrelor, etc.) care poate duce la creşterea nejustificată a complexităţii, iar costul perifericelor I/O este mic. Iată de ce, într-un sistem tipic, este folosit un bus PCI -to- I/O. La desktop PC bus-ul de I/O este un bus ISA. În sistemele CompactPCI bus-ul I/O poate fi PC/104, G-64, STD sau VME.
# CompactPCI suportă multiprocesare?
Da. Sunt posibile plăci cu procesoare pe un backplane CompactPCI (sau PCI). Aceste plăci pot prelua controlul bus-ului PCI şi pot trimite date direct către alt periferic PCI de pe bus. Bus-ul PCI al procesorului gazdă (controlerul sistemului) arbitrează accesul la bus-ul PCI dacă există periferice inteligente (slaves) care încearcă să preia controlul bus-ului PCI în acelaşi timp. Acest tip de multiprocesare este de obicei proiectat pentru a permite perifericelor inteligente să realizeze sarcini dedicate.
# Poate exista mai mult de un master într-un sistem CompactPCI?
Da. PCI suportă administrarea de masters periferici care au acces la bus şi pot realiza transferuri directe. Master-ul sistemului CompactPCI este responsabil pentru administrarea serviciilor pentru masters periferici. Masters periferici sunt plăci, ca interfeţe SCSI sau interfeţe Ethernet, care au nevoie de lărgime mare de bandă pentru accesarea memoriei. Masters periferici pot de asemenea include plăci inteligente cu microcontrolere sau microprocesoare.
# Cum sunt manipulate întreruperile în PCI sau CompactPCI?
PCI suportă întreruperi partajate atunci când mai multe dispozitive pot genera o întrerupere folosind aceeaşi linie şi care sunt diferenţiate folosind un interrupt acknowledge cycle. Acest lucru rezolvă o limitare importantă a arhitecturii tradiţionale PC, acolo unde trebuie folosită o singură linie de întrerupere pentru fiecare periferic, limitând astfel numărul de dispozitive şi permiţând conflicte periculoase. Acest suport pentru întreruperi partajate face ca PCI şi CompactPCI să fie mult mai bune pentru aplicaţii în timp real intensive de I/O decât bus-ul ISA.
# Care sunt diferenţele între Compact PCI şi VME?
Privind superficial există foarte puţine diferenţe. Ambele folosesc acelaşi format Eurocard. Ambele sunt disponibile în versiunile 3U şi 6U. CompactPCI foloseşte un singur conector de 220 de pini de 2 mm pentru a îndeplini specificaţia pentru 64 de biţi. VME necesită doi conectori şi un card 6U pentru implementarea pe 32 de biţi. CompactPCI are o rată de 266 Mbytes/s faţă de 40 a specificaţiei originale VME.
O extensie recentă pentru specificaţiile VME la 64 de biţi (VME 64) a micşorat diferenţa, dar CompactPCI este campion la viteză atunci când este vorba de transfer de date. Mai mult, VME este un bus foarte strâns legat de familia de microprocesoare 68000. El nu este foarte potrivit pentru procesoarele Pentium. De exemplu, nu sunt posibile funcţiuni la nivel de sistem PC (VGA, reţea, controler de disc) pe bus VME. Procesoarele PowerPC folosesc pentru funcţii periferice un bus PCI pentru integrarea BIOS cu sistemul de operare. Pe măsură ce familia 68000 devine din ce în ce mai puţin prezentă pe piaţă, PCI şi CompactPCI vor fi mult mai potrivite pentru extensii de înaltă viteză la nivel de sistem.
# CompactPCI va înlocui VME?
Anumite aplicaţii pot folosi în continuare arhitectura VME datorită cerinţelor interfeţelor specializate.
# Care sunt diferenţele dintre Compact PCI şi PMC?
PMC este un concept de bus bazat pe specificaţia PCI bus. Cardurile PMC sunt proiectate pentru plăcile CPU VME şi pot fi montate mai mult de două PMC pe un CPU 6U. Prin contrast, pot fi montate până la opt carduri CompactPCI pe acelaşi backplane. PMC pot fi instalate şi deconectate doar prin scoaterea plăcii carrier de pe backplane.
Ing. Aurelian Blejan