Sunteți pe pagina 1din 11

Magistrale si standarde de magistrala

1. Scopul lucrarii : prezentarea principiilor si mecanismelor care guverneaza transferul de


informatii intre componentele unui sistem de calcul pe diferite tipuri de magistrale.

2. Consideratii teoretice :
2.1 Scurt istoric
Un sistem de calcul se compune dintr-un set de componente (unitate centrala, memorie,
interfete de intrare/iesire si dispozitive periferice) care schimba informatii intre ele. In
modelul de calculator propus de J. Von Neumann comunicatia dintre componentele sistemului
se realizeaza prin legaturi dedicate intre perechi de componente. Aceasta abordare este relativ
rigida, limitind in mare masura scalabilitatea sistemului. Adaugarea de noi componente este
dificila si implica modificarea componentelor deja existente. De asemenea proiectarea unei
noi componente presupune cunoasterea in amanuntime a functionarii celorlalte componente.
Solutionarea acestei probleme a venit din partea firmei Digital Equipment Corporation (DEC)
care, la sfirsitul anilor 60, a lansat pe piata primul calculator (PDP 11), construit in jurul unei
magistrale - magistrala Unibus.
Din punc de vedere conceptual, magistrala este un mediu comun de comunicatie intre
componentele unui sistem de calcul; fizic este alcatuit dintr-un set de semnale care faciliteaza
transferul de date si sincronizarea intre componentele sistemului
Introducerea conceptului de magistrala a revolutionat modul de concepere si proiectare a
noilor sisteme de calcul. Modelul de calculator bazat pe magistrala a fost preluat mai ales de
familiile de calculatoare mini si micro. Prin standardizarea magistralelor, sistemele de calcul
au devenit deschise, in sensul ca un numar mai mare de producatori au putut sa realizeze
componente pentru o anumita structura de calculator (module de memorie, interfete de
intrare/iesire, echipamente periferice), bazindu-se numai pe specificatiile magistralei.
In decursul timpului au fost dezvoltate diferite standarde de magistrala care au urmarit
evolutia procesoarelor (a unitatilor centrale) si a necesitatilor de comunicatie ale acestora
(viteza, mod de transfer, necesitati de sincronizare si control, etc.). S-au dezvoltat de
asemenea magistrale specializate pentru anumite tipuri de echipamente periferice (ex : unitati
de disc, console grafice, interfete de masura si control, etc.). Din acest punct de vedere in
momentul de fata se pot distinge doua clase de magistrale : magistrale de sistem dezvoltate
mai ales pentru conectarea unitatii centrale la celelalte componente ale sistemului (ex :
MULTIBUS, ISA, EISA, PCI) si magistrale specializate, care incearca sa optimizeze
transferul de date cu un anumit tip de echipamente periferice ( ex : VESA, SCSI, GPIB).
Aparitia si evolutia ulterioara a microprocesoarelor a consacrat modelul de calculator
bazat pe magistrala. Configuratia semnalelor unui microprocesor este astfel conceputa incit sa
permita conectarea usoara la o magistrala de sistem. In general fiecare familie de procesoare
(vezi I8080, Z80, MC68000, etc.) a impus o anumita structura si un anumit standard de
magistrala. Exista insa anumite trasaturi comune pentru toate aceste magistrale (ex : principii
de transfer, tipuri de semnale), astfel incit modulele proiectate pentru un anumit tip de
magistrala pot fi usor modificate pentru a putea fi conectate pe o alta magistrala.
In ultima perioada au aparut o serie de noi standarde de magistrala, care incearca sa tina
pasul cu cerintele de comunicare ale noilor generatii de procesoare. S-au introdus noi principii
de transfer (ex : transfer paralel prin tranzactii, prelucrare pipeline a cererilor de transfer), care
contracareaza intr-o oarecare masura limitarile de viteza impuse de legile fizice de transmisie
a semnalului electric.
2.2 Elementele definitorii ale unei magistrale
O magistrala se compune dintr-un set de semnale si un set de reguli care guverneaza
transferul de informatii si accesul la mediul de comunicatie. Informatiile transferate pot fi :
date, instructiuni si informatii de control si sincronizare.
Regulile se refera la :
- caracteristicile fizice si electrice ale componentelor conectate pe magistrala (ex :
nivele de tensiune, curenti, incarcare, tip conectori, etc.)
- secventa de generare a semnalelor necesare pentru efectuarea unui transfer
- timpi limita pentru diferitele faze ale unui transfer si timpi de mentinerea unui anumit
semnal
- interconditionarile functionale si temporale intre diferitele tipuri de semnale
Functie de numarul semnalelor utilizate pentru transferul de date, magistralele pot fi de
doua tipuri: magistrale paralele si magistrale seriale. Magistralele seriale se utilizeaza rar ca
mijloc de comunicatie intre componentele de baza ale unui calculator (unitate centrala,
memorie, interfete de intrare/iesire) datorita vitezei de transfer relativ scazute. Se utilizeaza
totusi in anumite sisteme dedicate bazate pe microcontroloare, la care costul si dimensiunea
redusa sunt parametri definitorii. In continuarea acestei lucrari ne vom referi la magistralele
paralele.
In acceptiunea clasica, o magistrala se compune din urmatoarele tipuri de semnale :
- semnale de date semnale bidirectionale utilizate pentru transferul de date si
instructiuni ; la un moment dat o singura unitate poate sa emita pe liniile de date ;
numarul de linii de date (ex : 8, 16, 32, 64) determina dimensiunea maxima a
cuvintului de date care poate fi transferat la un moment dat si implicit viteza medie de
transfer a magistralei ;
- semnale de adresa utilizate pentru specificarea adresei modulului destinatie sau
sursa ; numarul de linii de adresa determina spatiul maxim de adresare permis de
magistrala (ex : 24 linii de adresa determina un spatiu de adresare de 2^24=16
Mlocatii)
- semnale de comanda utilizate pentru specificarea directiei de transfer (ex : dinspre
procesor sau catre procesor) si a tipului de modul adresat ( ex : modul de memorie,
modul de intrare/iesire, modul de memorie program, controlor de intrerupere, etc.)
- semnale de control utilizate pentru reglarea conditiilor de transferare a datelor (ex :
temporizarea deschiderii/inchiderii amplificatoarelor de magistrala)
- semnale de intrerupere permit semnalizarea unor evenimente interne sau externe si
impicit determina intreruperea executiei programului curent
- semnale de ceas folosite pentru sincronizare si pentru generarea unor semnale de
frecventa programabila
- semnale de alimentare folosite pentru alimentarea modulelor sistemului
- semnale de control al accesului folosite pentru arbitrarea si controlul accesului pe
magistrala ( in cazul magistralelor multimaster)
Numarul si semnificatia particulara a semnalelor depinde de tipul si destinatia magistralei.
Anumite grupe de semnale din cele prezentate pot sa lipseasca (ex : semnale de control) sau
altele noi pot fi adaugate (ex : semnale de eroare, semnale de control al latimii datelor
transferate, etc.).
Magistralele pot fi clasificate dupa mai multe criterii :
a. dupa modul de lucru (in raport cu semnalul de ceas):
- magistrale sincrone la care ciclurile de transfer sunt direct corelate cu semnalul de
ceas (vezi magistrala Pentium) ; viteza de transfer este mai mare insa dimensiunea
magistralei este limitata de frecventa ceasului; datorita vitezei limitate de propagare a
semnalului electric, cresterea dimensiunii magistralei ar putea duce la diferente de faza
la capetele magistralei.
- magistrale asincrone - la care nu exista o legatura directa intre evolutia in timp a unui
ciclu de transfer si ceasul sistemului ; majoritatea magistralelor actuale lucreaza pe
acest principiu (ex : ISA, EISA, MULTIBUS, etc.)
b. dupa numarul de unitati master conectate pe magistrala
- magistrale unimaster exista un singur modul master pe magistrala ; nu necesita
mecanisme de arbitrare a magistralei (modul master care poate sa initieze un ciclu de
transfer ; modul slave care poate fi accesat in timpul unui ciclu de transfer)
- magistrale multimaster permit conectarea mai multor unitati master pe acelasi
tronson de magistrala ; magistrala trebuie sa contina semnale de arbitrare si un
protocol de transfer al controlului pe magistrala (ex : MULTIBUS)
c. dupa modul de realizare a transferului de date
- magistrale cu transfer prin cicluri (magistrale secventiale) regula de baza : ciclurile
de transfer se desfasoara secvential, la un moment dat cel mult un ciclude transfer este
in curs de desfasurare ; majoritatea magistralelor clasice folosesc acest principiu de
transfer
- magistrale tranzactionale transferul de date se efectueaza prin tranzactii ; o tranzactie
este divizata in mai multe faze si mai multe tranzactii se pot desfasura simultan cu
conditia ca tranzactiile sa fie in faze diferite ; aceasta restrictie provine din faptul ca
fiecare faza a unei tranzactii foloseste un subset din multimea semnalelor magistralei ;
teoretic, la aceste magistrale factorul de crestere a vitezei (in comparatie cu o
magistrala clasica) este egal cu numarul de faze in care se divide o tranzactie (ex :
magistrala procesorului Pentium)

2.3 Familii si standarde de magistrala


Caracteristicile constructive ale unei magistrale sunt direct influentate de cerintele si
particularitatile functionale ale procesoarelor pentru care au fost concepute. Acest fapt vine in
contradictie cu ideea de sistem deschis, conform careia mediul de comunicatie intre
componentele unui sistem trebuie sa fie independent de producator. Firmele dominante in
domeniul constructiei de calculatoare si-au dezvoltat propriile standarde de magistrala
adaptate familiilor de procesoare pe care le produc (ex : DEC - Unibus, Intel - Multibus ,
Hewlet-Packard - GPIB, IBM PC-bus, etc.). Unele din aceste magistrale sunt deschise, in
sensul ca standardul este accesibil si utilizabil liber de orice producator, in schimb altele au
fost patentate si au restrictii de utilizare (ex : magistrala Microchannal a firmei IBM, folosita
in constructia calculatoarelor PS 2). Exista si standarde dezvoltate de grupuri de producatori
cu interese apropiate ; astfel au aparut standardele CAMAC, Fastbus, Futurebus. In cazul
acestor magistrale se pune problema asigurarii interoperabilitatii intre module realizate de
diversi producatori ; de multe ori, din considerente de economie, nu se implementeaza numai
o parte din specificatiile standardului, sau exista extensii specifice numai pentru un anumit
producator. Metoda de eliminare a unor astfel de probleme este supunerea componentelor la
teste de conformanta. Cele mai cunoscute foruri internationale de standardizare care au
activitate in domeniul magistralelor sunt IEEE, ANSI si IEC. In tabelul 1 sunt prezentate cele
mai utilizate magistrale, din care nu toate sunt formal standardizate.
Tabelul 1
Standard Nume popular Domenii de utilizare
IEEE
488 GPIB Magistrala pentru instrumente de laborator
583,596,683 CAMAC Magistrala pentru achizitie de date si instrumentatie
696 S 100 Microsisteme de dimensiune medie
796, P1296 MULTIBIS I, II Microsisteme de dimensiune medie
P896 Futurebus Sisteme multiprocesor
P996 PC bus Pentru calculatoare personale
P1014 VME bus Sisteme microprocesor performante ( bazate pe familia
Motorola 68000)
P1196 Nubus Sisteme multiprocesor
Unibus Minicalculatoare , PDP 11
QBus Minicalculatoare, VAX
SCSI Magistrala pentru periferice (disc, banda)

In cadrul unui sistem de calcul pot sa coexiste mai multe tipuri de standarde, specializate
pe transferul de date intre anumite tipuri de componente de sistem. Astfel se poate utiliza o
magistrala de mare viteza pentru transferul intre procesor si memorie, o magistrala cu acces
multiplu (multimaster) pentru conecatrea unor periferice de mare viteza ( disc, interfata video)
si o magistrala de mica viteza pentru periferice lente. In aplicatiile de control se mai poate
adauga si o magistrala de instrumentatie, adaptata pentru culegerea de date de proces. Pentru a
satisface o gama larga de cerinte, s-au dezvoltat familii de magistrale, care cuprind mai multe
variante ale unei magistrale de baza si sunt compatibile intre ele intr-o oarecare masura
(interfetele dezvoltate pentru aceste variante necesita modificari minore pentru
compatibilizare) . In prezent exista mai multe astfel de familii de magistrale :
- magistrale dezvoltate pentru calculatoarele DEC Unibus, Qbus si VAXBI
- magistrale dezvoltata pentru procesoarele Intel MULTIBUS I, MULTIBUS II si
extensii ale acestora
- magistrale inspirate de structura seriei de procesoare Motorola magistralele VME
- magistrale de instrumentatie - familia GPIB (dezvoltata de Hewlet Packard), IEEE 488
si Camac.
In domeniul calculatoarelor personale s-au dezvoltat mai multe magistrale care au devenit
standarde de facto inainte ca ele sa fie propuse pentru standardizare formala. Dintre acestea se
pot aminti :
- ISA (Industrial Standard Architecture) magistrala de sistem a primelor calculatoare
personale compatibile IBM PC si care se regaseste inca in majoritatea calculatoarelor
personale actuale
- EISA (Extended ISA) - varianta extinsa a magistralei ISA
- VESA Local Bus (Video Electrinics Standard Association) magistrala proiectata
initial pentru accelerarea transferului intre procesor si interfata video-grafica, s-a
dovedit utila si pentru alte tipuri de interfete de mare viteza (disc rigid)
- SCSI (Small Computer System Interface) magistrala pentru conectarea
dispozitivelor de stocare externa a datelor (disc, banda magnetica)
- PCI magistrala de mare viteza adaptata cerintelor noilor procesoare din familia Intel

2.4 Caracteristici functionale ale magistralei ISA( Industry Standard


Architecture)
Magistrala ISA a fost definita pentru calculatoarele personale compatibile IBM PC XT si
AY. Ea se utilizeaza pentru conectarea in sistem a interfetelor de intrare/iesire specifice unui
calculator personal : interfata de disc, interfata video, interfata de sunet, interfete utilizator,
etc. Este o magistrala asincrona, care poate sa transfere date pe 8 si respectiv 16 biti.
Semnalele magistralei se regasesc pe sloturile de extensie ale calculatorului personal . Un slot
se compune din doi conectori, de 64 si respectiv 36 de pini.
In Anexa 2 sunt prezentate semnalele care alcatuiesc magistrala ISA si pozitia lor in
conectori.
Pe o magistrala ISA transferul de date se realizeaza pe baza de cicluri. Functie de
directia de transfer se disting 5 tipuri de cicluri :
- ciclu de citire memorie
- ciclu de scriere memorie
- ciclu de citire port de intrare
- ciclu de scriere port de iesire
- ciclu de achitare a intreruperii (identificare a sursei de intrerupere)
Tipul de ciclu este indicat prin activarea semnalului de comanda corespunzator : MRDC\
(Memory Read Command), MWTC\ (Memory Write Command), IORC\ (Input Output Read
Command), IOWC\ (Input Output Write Command) sau INTA\ (Interrupt Acknowlidge). Un
ciclu de transfer presupune activarea si dezactivarea unor semnale conform unei diagrame de
timp. In figura 1 s-a reprezentat diagrama de timp pentru un ciclu de citire memorie, iar in
figura 2 pentru un ciclu de scriere memorie.

BCLK

LA17-23

BALE

SA0-19
SBHE\

MRDC\

MWTC\, IORC\, IOWC\

SD0-15

Figura 1 Ciclu de citire memorie

BCLK

LA17-23

BALE

SA0-19
SBHE\
MWTC\

MRDC\, IORC\, IOWC\

SD0-15

Figura 2 Ciclu de scriere memorie

Diferenta dintre cele doua diagrame consta in faptul ca la un ciclu de citire, intii se
activeaza semnalul de comanda (MRDC\) si apoi data citita apare pe liniile de date, pe cind la
un ciclu de scriere la inceput procesorul pune data pe liniile de date si abia apoi activeaza
semnalul de scriere. In ambele cazuri semnalele de adresa trebuie sa fie valide pe toata durata
ciclului de transfer.
Ciclurile de citire si scriere a porturilor de intrare/iesire au diagrame de timp similare,
cu diferenta ca in locul semnalelor de comanda pentru memorie (MRDC\ si MWTC\) se
activeaza semnalele corespunzatoare pentru interfetele de intrare/iesire (IORC\ si IOWC\).
Pentru modulele mai lente ciclul de transfer se poate prelungi prin dezactivarea
temporara a semnalului CHRDY ; in acest caz ciclul se prelungeste cu un numar intreg de
perioade de ceas.

2.5 Magistrala EISA(Extended Industry Standard Architecture)

Magistrala EISA este o extensie a magistralei ISA, proiectata cu scopul de a satisface


cerintele de viteza ale procesarelor pe 32 de biti. Fata de varianta ISA s-au facut urmatoarele
modificari :
- s-au adaugat 55 de semnale noi, fara a modifica spatiul ocupat de conectori
- magistrala de date s-a extins la 32 de biti
- frecventa de transmisie a datelor este de 8,33 MHz
- s-au introdus facilitati de lucru in regim multimaster
Controlul accesului la magistrala se realizeaza de catre un circuit specializat de
arbitrare. Atribuirea dreptului de acces se face pe baza de prioritati ; ordinea de prioritati este :
- reimprospatarea memoriei
- transferuri DMA
- procesor
- placi master
Performantele acestei magistrale au fost depasite de cele ale magistralelor mai noi cum ar fi
VESA si PCI.

2.6 Magistrala VESA(Video Electronics Standards Association)

Interfata video a unui calculator personal necesita un transfer rapid al unor blocuri
mari de date intre procesor si memoria video. Schimbarea in timp real a imaginilor afisate pe
terminalul video impune utilizarea unor viteze de transfer pe magistrala peste posibilitatile
unei magistrale ISA sua EISA. Din aceasta cauza mai multe firme producatoare de interfete
video au elaborat un nou standard de magistrala, denumit VESA Local Bus (pe scurt VL
Bus).
Este o magistrala pe 32 de biti, cu rata maxima de transfer de 128Mo. Din pacate insa
standardul are o serie de limitari importante cum ar fi :
- dependenta de structura procesorului I486
- numar relativ mic de module conectabile pe magistrala (2-3, uneori chiar un singur
modul)

2.7 Magistrala PCI (Peripheral Component Interconnect)


PCI este o magistrala de mare performanta si cost redus, adaptata cerintelor actuale de
viteza ale noilor procesoare. Standardul a fost initiat de firma Intel, dar curind a fost adoptata
si de alte firme importante in domeniul calculatoarelor cum ar fi Machintosh sau SUN.
Magistrala dispune de 32 de linii de date (varianta extinsa 64) si 32 de linii de adresa ;
frecventa de lucru este de 33MHz. Astfel se obtine o viteza maxima de transfer de 132 Mbps
(264 pentru varianta pe 64 de biti). Liniile de adresa si date sunt multiplexate cu scopul de a
reduce spatiul ocupat de conector si implicit pentru a reduce costurile.
Modul uzual de lucru al magistralei este in rafala (burst) speculind in acest fel
posibilitatile mai rapide de transfer pentru circuitele de memorie dinamica. In acest mod, la
inceputul unui transfer, se precizeaza adresa de inceput a blocului de date, dupa care datele
sunt transferate de la adrese consecutive fara precizarea adresei. Nu exista limita privind
lungimea ciclului de transfer in rafala.
Magistrala permite specificarea a trei tipuri de adrese (spatii de adresare) : memorie,
intare/iesire si configurare. Spatiul de configurare al unui dispozitiv PCI contine informatii
referitoare la tipul dispozitivului, producator, caracteristici constructive, registru pentru adresa
de baza, pentru latenta, etc. Aceste informatii sunt utilizate la initializarea sitemului pentru
configurarea automata a placilor PCI (tehnica plug-and-play). La initializare fiecare placa
primeste o adresa de baza si eventual un nivel de intrerupere. Placile pot contine o memorie
ROM cu programe pentru initializarea si utilizarea eficienta a placii.
In Anexa 3 sunt prezentate semnalele magistralei PCI si structura spatiului de configurare
al unui dispozitiv PCI.
Magistrala permite cuplarea mai multor unitati master. Arbitrarea se realizeaza centralizat,
de obicei de catre unitatea care face legatura dintre magistrala PCI si magistrala procesorului
gazda. Fiecare dispozitiv master PCI primeste la initializare un timp de latenta. Acest
parametru indica timpul maxim de pastrare a controlului magistralei de catre dispozitivul
respectiv.
Magistrala PCI se poate adapta usor la magistralele noilor variante de procesoare ; in acest
scop se utilizeaza un circuit specializat de tip bridge care face legatura intre cele doua
magistrale.
Datorita performantelor ridicate, magistrala PCI a fost adoptata ca standard de multe firme
producatoare de componente si are sanse mari de a se mentine si in viitor in topul
magistralelor.
In figura 3 s-a reprezentat un ciclu tipic de transfer in rafala.

CLK

FRAME

AD Adresa Data1 Data2 Data3 Data4

C/BE Comanda Validare date

IRDY

TRDY

DEVSEL

Figura 3. Ciclu de transfer pe magistrala PCI


Magistrala VME(Versa Module Eurocard)
VME este o magistral asincron de 32 (64) bii de date care permite lucrul
multiprocesor. Adresarea poate fi de asemenea pe 32 de bii. Pe aceast magistral se pot
conecta mai multe subsisteme cu procesoare i memorii proprii (cu lungime diferit a
cuvntului de date). VME s-a rspndit mai puin la noi dar n societile dezvoltate
industrial exist multe calculatoare cu VME n domeniul msurrilor i automatizrilor
sau n domeniul aviaiei. VME a fost realizat de MOTOROLA n 1981 i a fost
standardizat ca IEC 821 BUS i IEEE 1014-1987.

Dintre caracteristicile generale ale acestei magistrale se pot aminti:


transferul datelor pe 8, 16, 24, 32, sau 32 bii;
magistrala de adrese de 16, 24, 32, 40 sau 64 bii;
arhitectur master/slave, multiprocesor cu 1-21 procesoare;
mecanism de transfer asincron (multiplexat i nemultiplexat);
7 nivele de ntrerupere;
rata de transfer de la 40 MBps la 500 MBps, n fucie de vesiunea
magistralei;
21 sloturi.
Structura magistralei VME

Magistrala VME lucreaz cu 4 grupri de semnale:

Data Transfer Bus (magistrala de date) DTB - faciliteaz schimbul


de date dintre stpnul i sclavii subsistemului;
Arbitration Bus (magistrala de arbitraj) - realizeaz mprirea
magistralei ntre mai muli stpni;
Interrupt Bus (magistrala de ntreruperi);
Utility Bus - (magistral utilitar) distribuie elementelor
din sistem alimentarea, semnale de tact, resetarea,
indicarea scderii unei tensiuni de alimentare sub valoarea
minim, indicarea erorilor de subsistem.

Fig. 3.11. prezint structura unui sistem cu magistral VME.


ALTE MAGISTRALE

FUTUREBUS+

Este un bus asincron de mare performan. Suport cuvinte de date de 32, 64, 128 i
256 bii. FUTUREBUS+ suport dou modele de arbitrare a bus-ului, unul centralizat i
unul distribuit. Un grup de 3 linii permite fiecrui modul s anune modul de transfer
suportat. Realizatorii bus-ului susin c este independent de arhitectura sistemului de
calcul, de tipul procesorului i de tehnologia de realizare a sistemului. La bus se pot
conecta plci cu memorie cache proprie, utilizat n comun. Ofer de asemenea i suport
pentru tolerana la erori.
CEBus
Se bazeaz pe transmisia de date prin reeaua industrial de curent alternativ (120V,
60Hz), (Standard Powerline Carrier Technology) pentru conectarea echipamentelor de
electronic casnic ntre ele. n aceast tehnologie se folosete mprtierea spectrului
pentru a evita pericolul perturbrilor produse de reea. Pe durata fiecrui bit de informaie
spectrul variaz ntre 100Hz i 400Hz.
MICROWIRE/PLUS
Este o magistral serial, sincron, bidirecional, introdus de National
Semiconductor Corporation. Compania echipeaz cu acest bus microcontrollere, convertoare,
display-uri, EEPROM etc.

S-ar putea să vă placă și