Magistrală (calculator)
Magistrală în informatică reprezintă calea prin care circulă datele în interiorul unui calculator, între două sau mai multe elemente ale acestuia. Magistrala permite componentelor și perifericelor unui sistem de calcul să interconecteze reciproc schimbând informații sau date de sistem prin transmiterea semnalelor. Noțiunea de magistrală definește nu numai traseul fizic respectiv, ci și regulile care guvernează transmisia de date și comenzi între componentele sistemului, precum și modul de interconectare a perifericelor de pe placa de bază. Fiecare componentă din sistem este conectată la una din magistrale, unele dintre ele funcționând ca punți între magistrale. Magistrala este cu atât mai rapidă cu cât pe ea se pot emite simultan mai multe semnale, deci transferă mai multe date într-un interval dat de timp.[1]Digital Equipment Corporation (DEC), a lansat pe piață la sfârșitul anilor ’60 primul calculator (PDP 11), construit în jurul unei magistrale, magistrala Unibus.
Introducerea conceptului de magistrală a revoluționat modul de concepere și proiectare a noilor sisteme de calcul. Modelul de calculator bazat pe magistrală a fost preluat mai ales de familiile de calculatoare mini și micro. Prin standardizarea magistralelor, sistemele de calcul au devenit deschise, în sensul că un număr mai mare de producători au realizat componente pentru o anumită structură de calculator (module de memorie, interfețe de intrare/ieșire, echipamente periferice), bazându-se pe specificațiile magistralei. Ulterior, au fost dezvoltate diferite standarde de magistrală în paralel cu evoluția procesoarelor, sau magistrale specializate pentru anumite tipuri de echipamente periferice. Prima magistrală IBM a fost PC/XT bus și lucra pe 8 biți la o frecvență de 4,77 MHz.
Apariția și evolutia ulterioară a microprocesoarelor a consacrat modelul de calculator bazat pe magistrală. Configurația semnalelor unui microprocesor este astfel concepută încât să permită conectarea ușoară la o magistrală de sistem. În general, fiecare familie de procesoare a impus o anumită structură și un anumit standard de magistrală. Există însă anumite trăsături comune pentru toate aceste magistrale (principii de transfer, tipuri de semnale), astfel încât modulele proiectate pentru un anumit tip de magistrală pot fi ușor modificate pentru a putea fi conectate pe o altă magistrală. În ultima perioadă au apărut o serie de noi standarde de magistrală, care încearcă să țină pasul cu cerințele de comunicare ale noilor generații de procesoare.
Majoritatea computerelor PC moderne au cel puțin trei magistrale aranjate ieharhic, magistrala mai lentă este conectată la cea mai rapidă de deasupra ei. Fiecare dispozitiv din sistem este conectat la una dintre magistrale, iar unele dispozitive (în principal chipset) acționează ca punți de legătură între diferitele magistrale.
În cadrul unui sistem de calcul pot să coexiste mai multe tipuri de standarde, specializate pe transferul de date între anumite tipuri de componente de sistem. Astfel se poate utiliza o magistrală de mare viteză pentru transferul între procesor și memorie, o magistrală cu acces multiplu (multimaster) pentru conectarea unor periferice de mare viteză (disc optic, interfață video) și o magistrală de mică viteza pentru periferice lente. În aplicațiile de control se mai poate adăuga și o magistrală de instrumentație, adaptată pentru culegerea de date de proces.
Caracteristici
modificareCaracteristicile constructive ale unei magistrale sunt influențate de cerințele și particularitățile funcționale ale procesorului pentru care a fost concepută.
Magistralele sunt reprezentate fizic prin trasee de cupru cablate pe placa de bază sau pe plăcile utilizator, în interiorul microprocesorului prin trasee microscopice, iar între plăci prin cabluri panglică sau cabluri multifilare ecranate, partea vizibilă fiind reprezentată de sloturi.
Atunci când se referă la semnalul transportat trebuie precizată lățimea magistralei, care se exprimă în număr de biți și reprezintă numărul de linii care compun magistrala, fiind egală cu numărul de biți ce pot fi transmiși simultan prin magistrală. Magistralele, în funcție de tipul lor, pot avea lățimi de 8, 16, 32, 64 biți, sau chiar mai mult pentru sistemele deosebit de performante.
Magistralele lucrează la o anumită frecvență de tact dată de controlerele de magistrală. Frecvența de tact este obținută prin divizarea sau multiplicarea frecvenței dată de un circuit de ceas.
Frecvențele de lucru ale microprocesorului, magistralelor și memoriei trebuie sincronizate. Cu cât frecvența este mai mare cu atât va crește viteza de transfer a magistralei. Aceste frecvențe au valori, în funcție de standardul de magistrală între 5 și 133 MHz.
Creșterea peste anumite limite a frecvenței de tact întâmpină dificultăți datorită unor eventuale incompatibilități cu plăci de extensie care nu permit viteze mari de recepție.
Elemente ale magistralei
modificareO magistrală se compune dintr-un set de reguli constituite într-un protocol care guvernează transferul de informații și accesul la mediul de comunicație și tipuri de semnale.
Protocol
- caracteristicile mecanice: tip de conectori, număr de conectori alocați pentru un slot, formatul modulelor de extensie atașabile, sertar și fund de sertar (rack și cablajul din spatele acestuia – această structură fiind specifică magistralelor industriale)
- caracteristicile electrice ale componentelor conectate pe magistrală: nivele de tensiune, curenți, încărcare, frecvență de lucru, rată de transfer
- secvența de generare a semnalelor necesare pentru efectuarea unui transfer
- timpii limită pentru diferitele faze ale unui transfer și timpii de menținere a unui anumit semnal
- intercondiționările funcționale și temporale între diferitele tipuri de semnale.
Tipuri de semnale
- semnale de date: sunt semnale bidirecționale utilizate pentru transferul de date și instrucțiuni. La un moment dat doar un singur dispozitiv poate să emită pe liniile de date; numărul liniilor de date (8, 16, 32, 64) determină dimensiunea maximă a cuvântului de date care poate fi transferat la un moment dat și, implicit, viteza medie de transfer a magistralei.
- semnale de adresă: utilizate pentru specificarea adresei modulului destinație sau sursă de date, numărul de linii de adresă determinând spațiul maxim de adresare permis de magistrală
- semnale de comandă: semnale unidirecționale generate de CPU (sau de către alt dispozitiv master), utilizate pentru specificarea direcției de transfer (semnale de citire sau scriere pentru CPU) și a tipului de modul adresat (de memorie sau modul I/O, memorie program, controler de întrerupere etc.).
- semnale de control: sunt semnale utilizate pentru reglarea condițiilor de transfer a datelor (temporizarea deschiderii și închiderii amplificatoarelor de magistrală pentru semnalele vehiculate pe aceasta).
- semnale de întrerupere: generate de un controler dedicat, permit semnalizarea unor evenimente interne sau externe și implicit determină întreruperea execuției programului curent.
- semnale de tact (de ceas): sunt generate de un oscilator cu cuarț, fiind folosite pentru sincronizare și pentru generarea unor semnale de frecvență programabilă.
- semnale de alimentare: generate de sursa de tensiune a sistemului și folosite pentru alimentarea modulelor sistemului.
- semnale de control a accesului: sunt utilizate pentru arbitrarea și controlul accesului pe magistrală (în cazul magistralelor multimaster), generate de un circuit specializat (arbitru de magistrală).
Numărul și semnificația particulară a semnalelor depinde de tipul și destinația magistralei. Anumite grupe de semnale noi pot fi adaugate (semnale de eroare, semnale de control a lățimii datelor transferate, etc.).
Tipuri de magistrale
modificareÎn funcție de arhitectura lor, pot fi identificate următoarele tipuri de magistrale:
Magistrale interne (magistrale locale)
modificareMagistrala procesorului
modificareMagistrala procesorului sau magistrala de sistem este cea mai rapidă și face parte din nucleul setului de cipuri și al plăcii de bază. Magistrala procesorului este calea de comunicare între CPU și cipurile cu care lucrează direct. Această magistrală este folosită pentru a transfera date între CPU și magistrala memorie RAM. Magistrala este compusă din circuite electrice pentru date, adrese și comenzi.
Magistrala memoriei
modificareEste magistrala principală a sistemului utilizată la transferul informațiilor între CPU și memoria RAM. Această magistrală este mai lentă față de magistrala procesorului, deoarece informația care circulă prin magistrala memoriei este transferată la o viteză mult mai mică decât viteza de transfer a informației pe magistrala procesorului, având mai puține linii de date, iar cipurile de memorie nu pot să manipuleze date la fel de repede cum o face procesorul. Magistrala memoriei este o parte a magistralei procesorului, sau de cele mai multe ori este implementată separat cu un set de cipuri responsabil cu transferul informațiilor între magistrala procesorului și memorie. Acest set de cipuri este în general același cu setul de cipuri responsabil cu gestionarea I/O. În sistemele a căror frecvență este mai mare decât posibilitățile cipurilor de memorie, se utilizează un set de cipuri numit controler de memorie care realizează interfața între magistrala rapidă a procesorului și cea a memoriei principale, mai lentă.
Soclurile cipurilor sau conectorii modulelor SIMM sunt conectați la magistrala memoriei la fel cum sunt cuplați conectorii de extensie la magistrala I/O. Pentru ca un sistem să funcționeze în condiții optime, trebuie ca dimensiunea magistralei de memorie să fie corespunzătoare posibilităților CPU (un sistem care are un procesor pe 64 biți), trebuie o magistrală a memoriei de 64 biți). Dimensiune magistralei de memorie determină mărimea memoriei pe care unitatea centrală o poate accesa direct.
Magistrale de sistem
modificareSunt destinate pentru conectarea componentele majore ale unui sistem informatic (procesorul, memoria principală, controlere periferice). Magistrala de sistem conține trei magistrale mai mici:
Magistrala de date: Transferă date între componentele principale ale computerului sau între diferite computere. Magistrala de date este bidirecțională. Lățimea magistralei de date (numărul de linii de date) și frecvența cu care se pot transmite datele determină viteza maximă de transmitere a datelor.
Magistrala de adrese: Are rolul de a indica adresa de memorie sau adresa de pe magistrala sistemului care va fi utilizată în transferul datelor. Magistrala de adrese indică precis locul în care va avea loc următorul transfer în memorie sau pe magistrală. Magistrala de adrese este o magistrală unidirecțională care transmite numai adrese de memorie.
Magistrala de control: Este formată din grupul liniilor de control și este utilizată pentru a controla accesul datelor și generarea adreselor precum și pentru a transporta informația de stare către CPU. Este o magistrală mixtă, conține comenzi și informație de stare.
Semnalele magistralei de control determină realizarea operațiunilor specifice stării în care se găsește magistrala. Acestea pot fi:
- sincronizarea transferurilor
- scriere/citire
- stabilirea mărimii magistralei de date utilizate de placile adaptoare
- utilizate de sistemul de intreruperi
- sincronizarea transferurilor DMA
- utilizate în scopuri diverse.
Operațiile de bază (cicluri de magistrală) pe care le poate realiza magistrala de control sunt:
- citirea unei date din memorie (memory read)
- scrierea unei date în memorie (memory write)
- citirea unei date din porturile de Intrare/Ieșire (I/O) (I/O read)
- scrierea unei date în porturile de Intrare/Ieșire (I/O) (I/O write)
- recunoașterea unei întreruperi (bus request)
- închidere (shut down).
Stările în care se poate afla magistrala la un moment dat sunt dependente de ceea ce face microprocesorul iar fiecare stare durează câte o perioadă a semnalul PCLK, corespunzând unui subciclu a microprocesorului.
Exemple de magistrale interne
modificareParalele
- CAMAC (Computer Automated Measurement And Control)
- ISA
- EISA
- LPC bus (Low Pin Count)
- MBus (SPARC)
- MCA
- Multibus
- NuBus (IEEE 1196)
- PCI
- Parallel ATA
- SBus (SPARC)
- VESA Local Bus
- Zorro II, Zorro III (sistemele Amiga)
Seriale
- 1-Wire
- HyperTransport
- I²C
- PCI Express
- Serial ATA (SATA)
Magistrale externe
modificareMagistralele externe sau magistrale de intrare-ieșire (I/O) sunt alcătuite din sloturile de extensie care conectează diferite dispozitive externe, și permit procesorului să comunice cu aceste dispozitive periferice. Principalele tipuri de magistrale I/O sunt :
- Multibus: Magistrală dezvoltată de Intel și ulterior adoptată ca standarde IEEE 796. Versiunea Multibus II (MB II) este o magistrală standard de 32 biți, frecvența ceasului este de 10 Mhz, rata de vârf a datelor de 40 MB/s. Intel a dezvoltat sistemul de operare RMX/80 în timp real în 1976 și RMX/86 în 1980 pentru a sprijini cererea pentru procesoarele sale Multibus și platformele de sistem. Sun Microsystems a utilizat Multibus în stațiile de lucru Sun-1 și Sun-2.
- ISA (Industrial Standard Architecture): a fost magistrala de sistem a primelor calculatoare personale compatibile IBM PC de 8 biți din computerul original IBM din 1981. Prima arhitectură de magistrală pe 16 biți a fost ISA sau AT Bus. S-a păstrat compatibilitatea cu magistrala PC Bus, putând fi cuplată o placă pe 8 biți (XT). Sloturile ISA sunt formate din două părți, una lungă cu 62 de pini pentru plăcile XT și una scurtă cu 36 de pini pentru extensia la 16 biți. ISA a stat la baza computerului personal modern și a fost arhitectura primară folosită în majoritatea calculatoarelor până la sfârșitul anilor '90.
- EISA: varianta extinsa a magistralei ISA reprezintă o reproiectare a standardului ISA, prin care s-a trecut la lățimea de 32 de biți. Acest standard este compatibil cu standardele ISA și PC Bus. Controlul magistralelor de tip ISA sau EISA este realizat prin intermediul unui controler de magistrală pe 16/32 de biți. Controllerul IDE (Integrated Device Electronics) este un controller al mediilor de stocare (standard de harddisc), iar controllerul SCSI (Small Computer System Interface) este tot o interfață universală spre medii de stocare a datelor sau periferice. Pentru ușurarea cuplării plăcilor ISA s-a dezvoltat magistrala ISA Plug and Play care transferă configurarea către sistemul de calcul.
- MCA: a fost o magistrală de date paralelă de 16-bit sau 32-bit, dezvoltată de IBM. Magistrala a fost introdusă în 1987 cu noua familie de computere personale PS/2 și a fost folosită până în anul 1992 când a fost înlocuită de magistrala PCI. În 1988, Intel a dezvoltat versiunea proprie de chip MCA, cunoscută sub numele de "i82310". MCA a fost utilizată exclusiv în sistemele lansate de IBM: PS/2, RS/6000, AS/400 și System/370. Modelele 50Z, 55SX și 60 ale calculatoarelor PS/2 utilizează o versiune de 16 biți a acestei magistrale, iar modelele 70, 80 utilizează o versiune de 32 de biți pentru adrese și date. Acest tip de magistrală nu a fost utilizat pentru mult timp datorită faptului că plăcile adaptoare pentru sisteme ISA nu funcționează în sisteme MCA.
- PCI (Peripheral Component Interconnect): a fost dezvolatată pentru a asigura necesarul de cerințe pentru microprocesoarele Intel Pentium I ... IV. Are o lățime de bandă de 32 de biți și lucrează la o frecvență de 33 Mhz, rata de transfer la această frecvență poate ajunge la 132 MB/sec, iar magistralele PCI de 64 de biți la 264 MB/sec. Acest standard este compatibil cu standardele mai vechi, asigurând prin arhitectura sa și o independență de componentele cuplate la magistrală (microprocesoare, controllere, plăci), indiferent de tipul acestora sau de firma care le produce. Spre deosebire de majoritatea magistralelor mai vechi, la conectarea unei plăci PCI procesorul prin regiștrii de configurare împreună cu software-ul va realiza autosetarea optimă. Arhitectura PCI poate recunoaște orice protocol utilizat de standardele anterioare. Arhitectura PCI permite conectarea a zece periferice fără conflicte de acces, acest lucru fiind posibil datorită modului în care perifericele lucrează cu memoria, prin intermediul controlerului PCI.
- VL-Bus: a fost proiectată VESA (Video Electronics Standard Association) inițial pentru accelerarea transferului între procesor și interfața video/grafică, s-a dovedit utilă și pentru alte tipuri de interfețe de mare viteză. Începând cu anul 1992, VL-Bus a fost cel mai raspândit model de magistrală locală. VL-Bus oferă accesul direct la memoria sistemului cu viteza procesorului. Magistrala VL-Bus transferă 32 biți de date simultan, deci permite ca transferul datelor intre CPU și un hard disc să se facă pe lungimea întreagă de 32 biți. Rata maximă de transfer este de 128 MB/s până la 132 MB/s.
- SCSI (Small Computer System Interface): magistrală pentru conectarea și transferul de date între un calculator electronic și dispozitivele sale periferice. SCSI este destinată în special stațiilor de lucru și serverelor cu performanțe ridicate. Utilizarea sa cea mai întâlnită este pentru hard-diskuri, și unități optice (dispozitive de citire/scriere pe CD, DVD sau Blu-ray). Standardele acoperă și alte tipuri de dispozitive cum ar fi discuri magnetice, unități de bandă magnetică, scanere, imprimante.
- AGP: magistrală de comunicație de mare viteză pentru atașarea unei plăci video la placa de bază, cu scopul principal de a ajuta la accelerarea afișării grafice 3D. Începând cu anul 2004, AGP a fost progresiv înlocuită cu magistrala PCI Express (PCIe). [2][3][4]
Exemple de magistrale externe
modificareParalele
Seriale
Alte clasificări ale magistralelor
modificareMagistralele mai pot fi clasificate în funcție și de alte criterii:
Modul de lucru (în raport cu semnalul de tact):
- magistrale sincrone: ciclurile de transfer sunt direct corelate cu semnalul de tact. Viteza de transfer este mai mare, însă rata de transfer a magistralei este limitată de frecvența tactului.
- magistrale asincrone: la care nu există o legătură directă între evoluția în timp a unui ciclu de transfer și tactul sistemului. Majoritatea magistralelor actuale lucrează pe acest principiu (de exemplu, ISA, EISA, MultiBus).
Numărul de module master conectate pe magistrală:
- magistrale unimaster: cu un singur modul master pe magistrală. Un modul master poate iniția un ciclu de transfer, pe când un modul slave poate fi comandat în timpul unui ciclu de transfer
- magistrale multimaster: permit conectarea mai multor module master. Magistrala trebuie să conțină semnale de arbitrare și un protocol de transfer al controlului pe magistrală (de exemplu, MultiBus, VME).
Modul de realizare al transferului de date:
- magistrale cu transfer prin cicluri (magistrale secvențiale): ciclurile de transfer se desfășoară secvențial, cel mult un ciclu de transfer fiind în curs de desfășurare. Majoritatea magistralelor folosesc acest principiu de transfer. În funcție de direcția de transfer se disting: cicluri de citire (respectiv scriere) din/în memorie, cicluri de citire (respectiv scriere) de la/la un port intrare-ieșire, cicluri de acces direct la memorie (citire/scriere).
- magistrale cu transfer prin tranzacții (magistrale tranzacționale): transferul de date se efectuează prin tranzacții. O tranzacție este divizată în mai multe faze. Mai multe tranzacții se pot desfășura simultan. La aceste magistrale factorul de creștere a vitezei (în comparație cu o magistrală secvențială) este egal cu numărul de faze în care se divide o tranzacție (de exemplu, magistrala procesorului Pentium).
Numărul semnalelor utilizate în transferul de date:
- magistrale seriale: se utilizează ca mijloc de comunicație între componentele de bază ale unui calculator (CPU, memorie, interfețe de I/O etc.)
- magistrale paralele: sunt cele mai răspândite.
Familii și standarde de magistrală
modificareFirmele dominante în domeniul construcției de calculatoare și-au dezvoltat propriile standarde de magistrală adaptate familiilor de procesoare pe care le produc.
Unele din aceste magistrale sunt deschise, în sensul că standardul este accesibil și utilizabil liber de orice producător; altele au fost patentate și au restricții de utilizare cum este magistrala MicroChannel (MCA), folosită în calculatoarele PS/2 și standarde dezvoltate de grupuri de producători cu interese apropiate (Camac, FastBus, FutureBus).
În prezent există mai multe astfel de familii de magistrale:
- pentru calculatoare DEC: UniBus, Qbus, Massbus, VAXBI Bus
- pentru procesoarele Intel: MultiBus I, MultiBus II și extensii ale acestora
- pentru seria de procesoare Motorola: VMEbus
- magistrale de instrumentație: familia GPIB (dezvoltată de Hewlett Packard), IEEE488 și Camac.
- IBM: PC Bus, MicroChannel (MCA).[5]
Standardizare
modificareCele mai cunoscute foruri internaționale de standardizare care au activitate în domeniul magistralelor sunt IEEE, ANSI și IEC.
Vezi și
modificareReferințe și note
modificare- ^ What is a Bus? techopedia.com
- ^ Standard computer I/O Buses and Interfaces Arhivat în , la Wayback Machine. web.njit.edu
- ^ Principii și metodologii de testare pentru magistrale Arhivat în , la Wayback Machine. easy-learning.neuro.pub.ro:8888
- ^ Laborator 7. Magistrale și standarde de magistrală users.utcluj.ro
- ^ Personal Computer Buses interfacebus.com
Legături externe
modificareBibliografie
modificareScott Mueller: Upgrading and Repairing PCs’’, 20th Edition, Pearson Education, Inc., 2012, ISBN: 978-0-7897-4710-3