Sunteți pe pagina 1din 21

25

3. MAGISTRALE DE SISTEM

3.1. DEFINI!IE, CLASIFICARE, STRUCTUR

O magistral (bus) define!te setul de reguli dup care informa"ia circul n
interiorul unui sistem de calcul, ntre mai multe sisteme de calcul sau ntre sisteme de
calcul !i echipamente specializate. Un standard de magistral con"ine mai multe tipuri de
specifica"ii:

mecanice - conectorii, cablurile, topologia de cuplare;
electrice - nivelele de tensiunie, curen"ii impedan"e;
func"ionale - descrierea semnalelor.
Unele calculatoare au impus un standard de magistral prin popularitatea lor (PC AT au
impus magistrala ISA, apoi PCI). Uneori standardele sunt create de grupuri de productori
care au interese comune. Un astfel de standard este SCSI (Small Computer Interface
System). Unele standarde sunt adoptate de organisme ca IEEE.

Magistralele realizeaz legtura electric ntre procesor, memorie, dispozitive I/O !i
definesc cel mai jos nivel pentru un protocol de comunica"ie. Magistrala este o cale de
comunica"ie folosit n comun de mai multe blocuri func"ionale !i este realizat fizic de un
set de fire conductoare.

O magistral trebuie s fie versatil !i s aib un pre" sczut. Datorit versatilit"ii, odat
definit o schem de conexiuni, este foarte u!or s se adauge noi dispozitive n sistem sau
acestea s poat fi u!or mutate dintr-un calculator n altul, dac cele dou calculatoare sunt
construite cu acela!i tip de magistral.
Pe de alt parte, folosirea unei magistrale poate fi dezavantajoas datorit limitrilor de
vitez de transfer a datelor (throughput) pe care aceasta le poate crea. Viteza la care poate
lucra o magistral este impus n primul rnd de factori fizici ca: lungimea traseelor !i
numrul dispozitivelor ata!ate (acestea din urm aduc constrngeri att ca numr efectiv
ct !i ca diversitate din punct de vedere al ratelor de transfer !i a timpilor de ntrziere).

O magistral este organizat n grupe de semnale care au aceea!i func"ionalitate:

un set de semnale de control;
un set de semnale de date.
Semnalele de control sunt folosite pentru a indica cereri, acceptri sau pentru a indica tipul
informa"iei de pe liniile de date. Setul semnalelor de date este folosit pentru a transporta
informa"ia ntre blocurile func"ionale ale calculatorului de la surs la destina"ie (de la
ini"iator la "int). Informa"ia poate fi date, comenzi sau adrese. Adesea magistralele de date
sunt despr"ite n dou seturi pentru a separa informa"ia ce reprezint adrese. Astfel exist
!i o magistral de adrese pentru ca datele !i adresele s poat fi vehiculate ntr-o singur
tranzac"ie de la surs la destina"ie. Dup# func"ionalitatea semnalelor magistralele pot fi
magistrale de control, magistrale de date !i magistrale de adrese.

O clasificare a magistralelor poate fi fcut dup blocurile care se conecteaz la aceasta.
Conform acestui criteriu magistralele pot fi:

magistrale procesor- memorie;
magistrale I/O;
magistrale de fundal.

26
Magistrala procesor memorie este scurt !i de mare vitez. Dup cum i spune numele, este
conceput pentru a lega procesoarele de memorie.
Magistralele I/O sunt n primul rnd mai lungi !i suport o gam larg de rate de transfer ca
o necesitate a conectrii unei game largi de dispozitive I/O la sistem. De obicei
magistralele I/O nu sunt conectate direct la procesor, ci folosesc fie o magistral procesor
memorie, fie o magistral de fundal.

Magistralele de fundal sunt proiectate astfel nct att procesorul, memoria ct !i
dispozitivele I/O s foloseasc aceea!i cale de comunica"ie. La acest tip de magistral se
face un compromis pentru a satisface att necesit"ile comunica"iei ntre procesor !i
memorie ct !i ale comunica"iei dintre dispozitivele I/O, sacrificnd desigur performan"a
sistemului.

Magistralele I/O !i magistralele de fundal sunt definite prin specifica"ii, deseori publice, iar
magistralele procesor memorie sunt specifice (proprietatea productorului).

O alt clasificare a magistralelor se poate face dup metoda de comunica"ie folosit:

magistrale sincrone;
magistrale asincrone.
Magistrale sincrone dispun de o linie de tact n liniile de control, condus de un oscilator
cu cuar", ntre 5-$33MHz. Toate transferurile au loc dup un protocol fix care este raportat
la semnalul de tact, ntr-un numr ntreg de cicluri, numite cicluri de bus. Pentru c
protocolul este predeterminat !i logica implicat este simpl, magistralele sincrone pot fi
foarte rapide. Avantajul magistralelor sincrone este simplitatea deoarece nu exist un
dialog (protocoalele pot fi implementate prin automate finite simple). Dezavantajul este c
dac un transfer este mai scurt el trebuie totu!i s dureze un numr ntreg de cicluri de bus,
ca urmare mbunt"irile tehnologice ale plcilor I/O nu duc la mrirea vitezei. ntr-un
cuvnt, dac avem plci lente !i rapide pe o magistral sincron, transferurile au loc la
viteza celei mai lente. Un alt dezavantaj este c, din cauza deformrii semnalului de ceas,
liniile magistralei nu pot fi foarte lungi !i nici forte ncrcate.

La magistrale asincrone transferurile pot dura orict, motiv pentru care acestea se poate
adapta u!or la o mare varietate de dispozitive conectate. Coordonarea transferurilor de la
surs la destina"ie se face pe baza unui protocol de dialog conversa"ional (handshaking).
Un astfel de protocol const ntr-o serie de pa!i parcur!i de surs !i destina"ie astfel nct
trecerea la pasul urmtor se face numai cu acordul ambelor pr"i. Pentru implementarea
unui astfel de protocol sunt necesare linii de control suplimentare (DATA REQUEST, DATA
READY etc.).

Fie mai multe unit"i centrale !i echipamente periferice EP cuplate la o magistral, Fig. 3.$.








B - Buffer
Fig. 3.1. Elemente interconectate prin magistral
UC EP EP
B B
B

27
Fiecare sistem are o parte de emisie !i una de recep"ie. Pentru ca magistrala s fie ncrcat
optim, fiecare sistem trebuie s con"in cte un buffer. Aceste sisteme trebuie s fie
explorate ciclic sau transferul poate fi realizat printr-o logic de priorit"i.
Pentru o magistral asincron, dac fiecare sistem poate transfera date cu viteza medie de
transfer v
i
, atunci:

V
max
= max V
i
, i=$-n
Viteza magistralei trebuie s fie mai mare dect cea mai mare vitez de transfer:

V
bus
= k V
max

La o magistral sincron, viteza de transfer este fix, corespunztor celui mai lent
echipament periferic. Pentru a urm#ri viteza magistralei, pentru echipamente periferice
lente se introduc stri de WAIT. De exemplu la magistrala ISA exist semnalul IOCHRDY
care, atunci cnd este activat de un echipament periferic, introduce pn la 8 stri de WAIT.
Introducerea unui numr mai mare de stri de WAIT poate perturba remprosptarea
memoriei sistemului.

A!a cum este firesc, cel pu"in dou blocuri sunt conectate la o magistral. Pentru a evita
haosul pe magistral, controlul acesteia este fcut de un MASTER de magistral. Un
MASTER trebuie s poat s ini"ieze cereri pentru acces la magistral !i s poat s
controleze toate tranzac"iile. Un procesor este capabil s fie MASTER pe cnd memoria
poate fi numai SLAVE. Cel mai simplu sistem este un sistem cu un singur MASTER,
acesta fiind procesorul. Implicarea procesorului n toate tranzac"iile este ineficient, de
aceea exist alternativa de magistral cu mai mul"i MASTER. ntr-o astfel de magistral
fiecare MASTER este capabil s ini"ieze un transfer. n aceste condi"ii trebuie s existe un
mecanism de arbitrare a accesului la magistral ce decide care MASTER va prelua
controlul. Arbitrul prime!te cererea de administrare a magistralei (BUS REQUEST) pe care o
onoreaz sau nu (GRANT) n urma unei analize. O magistral cu mai mul"i MASTER
con"ine linii speciale pentru arbitrare. Exist mai multe metode de arbitrare. Toate
metodele respect principiul priorit"ii !i al corectitudinii (fairness).

Pentru cuplarea diferitelor subsisteme la magistrale trebuie "inut cont de diafonie, de
reflexii, de impedan"ele liniilor etc. Pentru legarea semnalelor la liniile de transmisie se
folosesc circuite driver, a!a cum sunt de exemplu 74HCxxx sau 74AHCxxx pentru CMOS
!i 74ABTxxx pentru TTL. Aceste circuite se pot folosi fr terminator de linie pentru c au
o impedan" apropiat de impedan"a caracteristic a liniei, dar se vor folosi cu o diod
pentru eliminarea vrfurilor negative sau/!i cu un divizor rezistiv ($80, 220 la mas)
(Fig. 3.2.).












5V
220
5V
$80
Z=30
$80
220
Z=30
Fig. 3.2. Cuplarea la mijloc a unui driver de magistral

28
Circuitele driver la capetele magistralei sau n mijloc. (Fig. 3.2. ilustreaz# conectare la
mijloc) Se poate observa c circuitul driver din Fig. 3.2. are ca sarcin 2 linii de 30 n
paralel, ceea ce este o sarcin mare. Este posibil ca circuitul s nu poat asigura nivelele
logice corecte. La familia IWS (Incident Wave Switching), de exemplu SN74ABT25xxx,
este asigurat o impedan" de ie!ire de sub 2 !i curen"i I
OH
=-80mA, I
OL
=$88mA, ceea ce
asigur nivelele corecte !i n cazul Fig.2.2.

Unele magistrale moderne, cum ar fi noua magistral VME64 trebuie s permit cuplarea
subansamblelor pe magistral n timpul func"ionrii. Capacit"ile care apar la fiecare pin n
momentul conectrii modific nivelele logice. Familia ETL (Enhanced Transceiver Logic),
de exemplu SN74ABTExxxxx, remediaz acest inconvenient, asigurnd un poten"ial
determinat !i o capacitate fix fiecrui pin neconectat.

O alt solu"ie pentru transmisia pe linii lungi este folosirea circuitelor driver cu colectorul
n gol, de exemplu SN74BCTxxx. Aceast solu"ie nu asigur viteze mari de transfer.

Structura tipic a unei unit"i centrale (Fig. 3.3.) arat c magistrala este ierarhizat, n
func"ie de vitez, pe dou nivele; unul de vitez mare (PCI) !i unul de vitez mic (ISA).
La magistrala de vitez mare se conecteaz echipamente periferice rapide (hard disc, re"ea
Ethernet, video, SCSI etc.) iar la cea de vitez mic se conecteaz echipamente periferice
lente (unitatea de disc flexibil, canalele seriale, canalul paralel, etc.)





















3.2. CANALE I/O

Legtura ntre procesor !i EP (Echipamente Periferice) se realizeaz prin canale I/O
(de intrare/ie!ire) prin intermediul magistralei. Evolu"ia n timp a canalelor I/O este n
acela!i timp o evolu"ie a cre!terii complexit"ii !i performan"elor. Pot fi enumerate
urmtoarele etape:

Magistral# sistem
Magistral# I/O
PROCESOR
CACHE
Dispozitive I/O locale Separare
Controller de
magistral lent
Controller de
magistral rapid
Magistral# procesor
Floppy, seriale, paralel
HDD, CD ROM, video,
SCSI
Fig. 3.3. Structura tipic a unei unit!i centrale

29
$. CPU controleaz direct EP;
2. Este adugat un modul I/O (o interfa" serial sau paralel, programabile). CPU
comand EP prin transfer programat (direct sau prin interogare);
3. Aceea!i configura"ie ca la 2, dar transferul are loc prin ntreruperi;
4. Modulul I/O are acces direct la memorie prin DMA. Modulul poate muta
informa"ia direct n memorie, accesul CPU fiind necesar doar la nceputul !i
sfr!itul transferului;
5. Modulul I/O folose!te un microcalculator sau un microcontroller, cu instruc"iuni
proprii. CPU programeaz procesorul I/O pentru un transfer, pe care acesta l
execut folosind instruc"iunile proprii. Cnd transferul se termin, procesorul I/O
ntrerupe CPU pentru a comunica rezultatele transferului;
6. Microcontrollerul are memorie local. El poate controla astfel mai multe EP cu o
interven"ie minim din partea CPU. Memoria local poate fi folosit !i ca buffer
de date, realiznd astfel o rat de transfer mare.

Evolu"ia microcontrollerelor integrate a fost paralel cu cea a procesoarelor. Dac la
procesoare s-a urmrit o cre!tere a vitezei de prelucrare prin cre!terea tactului (n jurul a
500MHz), cre!terea mrimii memoriei CACHE (uzual 256K integrat), lrgimea busului de
date !i adrese, la microcontrollere s-a urmrit integrarea de ct mai multe subsisteme utile
(memorie EPROM, RAM, convertoare AD !i DA). Dac pre"ul unui procesor nu a sczut
sub cteva zeci de dolari (PII/450MHz), pre"ul unui microcontroller poate ajunge la c"iva
dolari, ceea ce ncurajeaz eforturile proiectan"ilor de a realiza module I/O inteligente cu
microcontroller, sau alte aplica"ii cu microcontroller.

Conexiunea ntre un modul I/O !i unitatea central poate fi:

$. Punct-la-punct; linii dedicate pentru transferul de date (de exemplu la un PC AT
tastatura, RS232 etc.);
2. Multipunct; la liniile de interfa" se pot lega mai multe EP (module I/O; ca la
SCSI)
Dac o legtur punct cu punct se nume!te indiscutabil interfa", o legtur multipunct se
poate numi att interfa" ct !i magistral. Interfa"a serial multipunct USB (Universal
Serial Bus) con"ine n numele ei denumirea de magistral.

3.3. MAGISTRALE PC

3.3.1. Magistrala ISA (Industry Standard Architecture)

3.3.1.1. Prezentare general

ISA este un standard de magistral care s-a impus prin produs; a fost magistrala
primelor calculatoare PC construite de IBM. Ini"ial magistrala de date era de 8 bi"i iar cea
de adrese de 20 de bi"i. Ulterior, cnd a aprut calculatorul AT (Advanced Technology),
magistrala de date s-a extins la $6 bi"i iar cea de adrese la 24 de bi"i. Sistemul AT a pstrat
compatibilitatea cu prima variant; cnd se face referire la magistrala ISA se subn"elege
ISA-$6. Destul de trziu, n anul $990, IEEE a prevzut reglementri pentru magistral
prin standardul IEEE P996.

n sistem sunt prevzute 8 canale DMA !i $6 nivele de ntreruperi. Parte din canalele DMA
!i din ntreruperile disponibile sunt alocate prin standard unor echipamente ce fac parte din

30
configura"ia calculatorului PC, celelalte sunt libere, la dispozi"ia utilizatorului pentru
aplica"ii particulare. Magistrala poate fi controlat de procesor sau de controllerul DMA.

Magistrala este conceput pentru tranzac"ii I/O unice cu periferia. Tranzac"iile cu memoria
se fac prin magistral. Nu este prevzut modul de exploatare multiutilizator real.

Acest magistral este ntlnit n toate calculatoarele compatibile PC IBM-PC/AT !i n
calculatoarele construite cu microprocesor 386SX, 386DX, 486SX, 486DX.
n Fig. 3.4. este prezentat structura unei plci de baz cu magistral ISA.























3.3.1.2. Semnalele magistralei ISA

RESET DRV - Reset Driver - ie!ire
Semnalul apare la pornirea general sau la ac"ionarea Resetului logic.
BCLK - ie!ire
Ini"ial acest semnal a fost tactul tuturor opera"iilor de pe cartelele de extensie. Este un
semnal ntre 6 MHz !i $2.5 MHz .
OSC - ie!ire
Semnal cu frecven"a $4.3$8$8 MHz disponibil cartelei CGA. Poate fi ignorat n
dezvoltarea altor cartele.
IRQ3 - IRQ15 - Interrupt Request - intrri
Linii conectate la intrrile controlerului de ntreruperi. Transport cererile de ntrerupere
venite de la periferice.
UCP
BUFFER
BUFFER
BUFFER
BUFFER
CACHE
Interfa"
CPU
Interfa"
DATE
DRAM
BUFFER
Ctr.
tastatur
ROM
BIOS
Ctr.
periferice
M
A
G
I
S
T
R
A
L
A


I

S

A
adrese procesor
date procesor
date

i
adrese

i
date
periferice
adrese
periferice
Fig. 3.4. Sistem cu magistral ISA
adrese sistem
date sistem
comenzi
comenzi

3$
REFRESH# - intrare/ie!ire
Marcheaz un ciclu refresh activ. Ciclul refresh se poate prelungi cu semanlul IOCHRDY,
nu se poate scurta. Semnalul este produs prin canalul $ al timerului la fiecare $5.6 s.
DRQ0 -DRQ7 - DMA request - intrri
Cerere de ini"iere a unui ciclu DMA trimis prin magistral controlerului DMA.
DACK0-DACK7 - DMA Acknowledge - ie!iri
Onorarea unei cereri de transfer DMA. Semnalul este generat de controlerul DMA.
AEN - Address Enable - ie!ire
Semnal generat de controlerul DMA, activ (HIGH) pe toat durata unui ciclu DMA.
Serve!te la diferen"ierea acceselor DMA de accesele I/O. Din acest motiv, toate modulele
de extensie trebuie s foloseasc validarea adreselor cu AEN pentru ca s nu apar
decodificare fals n timpul unui ciclu DMA.
TC - Terminal Count- ie!ire
Indic sfr!itul unui transfer DMA.
SMEMW# - Small Address Memory Write - ie!ire
Indic accesul procesorului sau al controlerului DMA pentru scriere n memorie.
SMEMR# - Small Address Memory Read - ie!ire
Indic accesul procesorului sau al controlerului DMA pentru citire din memorie.
MEMW# - Memory Write - intrare/ie!ire
Indic accesul procesorului sau al controlerului DMA pentru scriere n memorie.
Condi"ioneaz apari"ia semnalului SMEMW# .
MEMR# - Memory Read - intrare/ie!ire
Indic accesul procesorului sau al controlerului DMA pentru citire din memorie.
Condi"ioneaz apari"ia semnalului SMEMR.
IOW# - I/O Write - intrare/ie!ire
Indic accesul procesorului sau al controlerului DMA pentru sciere la periferic.
IOR# - I/O Read - intrare/ie!ire
Indic accesul procesorului sau al controlerului DMA pentru citire de la periferic.
BALE - Bus Address Latch Enable - ie!ire
Valideaz cu frontul su negativ semanlele SA0-SA$9, BHE, AEN.
SD0-SD15 - System Data - intrare/ie!ire
Reprezint liniile magistralei de date.
SA1-SA19 - Small Address - intrare/ie!ire
Semnalele magistralei de adrese compatibile cu prima variant ISA.
BHE# - Bus High Enable - intrare/ie!ire
Particip la generarea selec"iei de Byte pentru a se !ti cu care jumtate de byte se lucreaz.
SA0- System Address bit 0 - intrare/ie!ire
mpreun cu semnalul BHE realizeaz semnalul de selec"ie Byte.

SA0 BHE
0 0 SD0-SD$5
$ 0 SD0-SD$5
0 $ SD0-SD7
$ $ nepermis

LA17-LA23 - Large Address - intrare/ie!ire
Reprezint adresele superioare. mpreun cu Small Address pot adresa spa"iul 000000h-
FFFFFFh.
IOCHRDY - I/O Channel Ready - intrare

32
Serve!te la prelungirea ciclurilor I/O la transferuri cu periferice lente. Ciclul se poate
prelungi pn la $5.6 s.
IOCHCK# - I/O Channel Check - intrare
D posibilitatea tuturor modulelor de extensie s fie verificate la erori interne de ctre
unitatea central gazd.
MEMCS16# - Memory Chip Select 16 bit - intrare/ie!ire
Modulele de extensie de memorie pot activa acest semnal pentru a indica desf!urarea unui
transfer pe $6 bi"i.
IOCS16# - I/O Chip Select 16 bit - intrare
Modulele I/O activeaz acest semnal atunci cnd fac transferuri pe $6 bi"i.
OWS# - Zero Wait State - intrare
Un modul I/O sau un modul de extensie de memorie poate scurta durata unui acces prin
nlturarea strilor Wait activnd acest semnal.
MASTER# - Master Request - intrare
Semnal cu care controlul magistralei poate fi preluat de un procesor extern.

3.3.1.3. Interfa!a I/O

O interfa" I/O pentru magistrala ISA are o structur destul de simpl. Spa"iul de
adresare este 000h-3FFh. n acest spa"iu exist pozi"ii rezervate echipamentelor din
configuta"ia standard a unui calculator PC. La adresele lsate libere de standardului PC
utilizatorul poate configura sistemul dup necesit"ile particulare.

Ciclurile I/O se desf!oar conform diagramelor de semnal prezentate in Fig. 3.5.





















AEN
A0-A9
IOR IOW
D0-D7
CITIRE DE LA PORT
Adres port valid
Date valide
ca.$00 ns
ca. 500ns
SCRIERE LA PORT
Adres port valid
Date valide
ca.$00 ns
ca. 500ns
Fig. 3.5. Cicluri I/O

33
3.3.2. Magistrala PCI (Peripheral Component Interconnect)

3.3.2.1. Structura magistralei PCI

Magistrala PCI a fost realizat n $990 de INTEL pentru procesoarele PENTIUM.
INTEL a cedat specifica"iile domeniului public, ceea ce explic rspndirea acestei
magistrale. PCI este o magistral sincron care poate lucra cu 32 sau 64 de bi"i de date, la o
vitez de maximum 2,$$2 GBps. Sructura unui sistem cu magistralei PCI este dat n
Fig. 3.6.





















Magistrala PCI are o arhitectur de tip "mezanin", din cauza apropierii de procesor. n Fig.
3.6. au fost notate !i frecven"ele de tact la care func"ioneaz cele dou magistrale, pentru a
se putea observa cre!terea de vitez la PCI. Magistrala ISA a fost pstrat n configura"ie
din considerente de compatibilitate cu echipamentele existente nc n utilizare.

3.3.2.2. Semnalele magistralei PCI

Semnalele magistralei PCI sunt:

Linii generale
CLK - tactul de magistral PCI, 33MHz-$33MHz;
RST - semnal de RESET, for"eaz toate modulele de I/O !i semnalele la o stare ini"ial;
AD 0-31 - 32 linii multiplexate pentru adrese !i date;
C/BE 0-3 - linii multiplexate pentru comenzi de bus sau Byte Enable. n timpul fazei de
date arat care din cei 4 octe"i de date poart date semnificative;
PAR - con"ine bitul de paritate pentru liniile AD !i C/BE la un un tact de magistral dup
ce datele sau adresele au fost puse pe magistral. Dispozitivul MASTER genereaz PAR
pentru fazele de adresare !i scriere date !i dispozitivul "int pentru faza de citire date;
PCI (33, 66, 100, 133MHz)
PROCESOR
CACHE
Dispozitive I/O locale
Controller de
magistral ISA
Magistral# procesor
FDD, COM, PRN
HDD, video, SCSI
Fig. 3.6. Structura unui sistem cu magistral PCI
Controller de memorie
ISA (14,3181MHz)
Bridge pentru PCI (buffer)
I/O locale
RAM

34
FRAME - generat de MASTER-ul curent (ini"iator) ca s indice startul unui transfer. Este
dezactivat cnd ini"iatorul ncepe faza final de date;
IRDY - ini"iator pregtit, generat de MASTER-ul curent. La citire indic faptul c
MASTER-ul este gata s accepte date, iar la scriere, pe AD sunt prezente date valide;
TRDY - "int pregtit, generat de modulul selectat ("int). La citire, pe AD sunt prezente
date valide, la scriere indic faptul c "inta este gata s accepte date;
STOP - "inta curent dore!te ca ini"iatorul s termine transferul curent;
LOCK - indic o opera"ie care poate consta n mai multe transferuri;
IDSEL - se folose!te ca Chip Select pe durata ini"ializrilor pentru citire/scriere;
DEVSEL - activat de "int cnd !i recunoa!te adresa;
REQ - indic arbitrului c un dispozitiv solicit utilizarea magistralei. Este o linie punct cu
punct specific fiecrui slot PCI;
GNT - indic dispozitivului care a cerut magistrala c a primit accesul. Este o linie punct
cu punct specific fiecrui slot PCI;
PERR - eroare de paritate detectat de "int la o scriere de date sau de ini"iator la o citire
de date;
SERR - eroare de sistem, poate fi generat de orice dispozitiv pentru a raporta o eroare de
paritate la adresare sau un alt tip de eroare;
INTA - cerere de ntrerupere;
INTB, INTC, INTD - cereri de ntrerupere de la un dispozitiv multifunc"ional;
SBO - indic o modificare n CACHE;
SDONE - indic terminarea unui transfer cu CACHE-ul.

Linii pentru extensia la 64 de bi"i:
AD 32-63 - 32 de linii de date !i adrese multiplexate;
C/BE 4-7 - la adresare liniile con"in date despre tipul de ciclu de bus. n faza de date indic
care din cei 4 octe"i de date poart date semnificative;
REQ64 - indic o cerere de transfer pe 64 de bi"i;
ACK64 - indic faptul c "inta va face un transfer pe 64 de bi"i;
PAR64 - bitul de paritate pe liniile AD 32-64 !i C/BE un tact mai trziu.

Linii pentru testarea JTAG conform standardului IEEE 149.1:
TCK - Test Clock, ceas pentru testare cu date seriale de intrare sau de ie!ire n/din
dispozitiv;
TDI - Test Input, date de intrare seriale n dispozitiv;
TDO - Test Output, date seriale de ie!ire din dispozitiv;
TMS - Test Mode Select, folosit pentru controlul testrii;
TRST - Test Reset, se ini"ializeaz portul de test.

3.3.2.3. Cicluri de magistral

Activitatea magistralei se manifest sub forma unor transferuri ntre un ini"iator sau
MASTER !i o "int. Dup ce un MASTER a ob"inut controlul magistralei, determin tipul
transferului care va urma. n timpul fazei de adresare liniile C/BE informeaz despre tipul
ciclului de magistral.
Ciclurile de magistral sunt:
1.Acceptare ntrerupere; este un ciclu de citire conceput pentru dispozitivele care
func"ioneaz ca !i controler de ntreruperi pe PCI. Liniile de adres nu sunt folosite n faza
de adresare, iar n faza de date este indicat vectorul de ntrerupere.

35
2.Ciclu special; este folosit de ini"iator pentru a emite mesaje ctre una sau mai multe
"inte.
3.Citire I/O; este un ciclu de transfer de date ntre ini"iator !i un dispozitiv I/O. Fiecare
dispozitiv I/ O are alocat un spa"iu propriu de adresare.
4.Scriere I/O
5.Citire din memorie; citirile din memorie se pot executa n salv, pe blocuri, func"ie de
modul n care controlerul de memorie gestioneaz transferurile ntre memorie !i CACHE.
Se cite!te o jumtate de linie de CACHE sau mai pu"in, n salv sunt unul sau dou cicluri
de citire.
6.Citire o linie din memorie; se cite!te mai mult de o jumtate de linie de CACHE dar
mai pu"in de trei linii, n salv sunt ntre 3 !i $2 cicluri de citire.
7.Citire multipl din memorie; se citesc mai mult de 3 linii de CACHE, n salv sunt mai
mult de $2 cicluri de citire.
8.Scriere n memorie
9.Scriere n memorie #i invalidare; scrierea se poate face de asemenea n salv. Se
respect modul WRITE BACK pentru scrierea din CACHE n memorie;
10.Citire configura"ie; fiecare dispozitiv PCI include un set de 256 de registre interne care
se folosesc n faza de configurare. n acest tip de ciclu, dispozitivul MASTER poate citi
registrele de configurare.
11.Scriere configura"ie; n acest tip de ciclu, dispozitivul MASTER poate modifica
registrele de configurare.
12.Ciclu de adresare dual; este folosit de ini"iator pentru a arta c este o adresare pe 64
de bi"i.

Orice transfer de date pe PCI const ntr-o faz de adresare !i una sau mai multe faze de
date. n Fig. 3.7. este artat un transfer de citire.
























i
h
g
f
e
d
c
b
a
BYTE ENABLE BYTE ENABLE
BYTE ENABLE
BUS CMD
D D D
A
$ 2 3 4 5 6 7 8 9
CLK
FRAME
AD
C/BE
IRDY
TRDY
DEVSEL
Faza de
adresare
Faza de date Faza de date Faza de date
Transfer pe magistral
Fig. 3.7. Ciclu de citire PCI

36
a Dendat ce MASTER-ul are controlul magistralei el poate ncepe transferul activnd
FRAME. Linia rmne activ pn ini"iatorul termin ultima faz de date. Ini"iatorul pune
adresa pe AD !i comanda de citire pe liniile C/BE.
b %inta !i recunoa!te adresa pe liniile AD.
c Ini"iatorul cedeaz bus-ul "intei (ncepnd cu tactul 3). Ini"iatorul schimb informa"ia pe
liniile C/BE pentru a indica pe care dintre liniile AD se vor transmite datele de la "int ($
pn la 4 octe"i)
d %inta selectat activeaz DEVSEL pentru a semnaliza c !i-a recunoscut adresa, apoi
pune datele pe liniile AD (primul octet) !i activeaz TRDY.
e n acest exemplu "inta are nevoie de timp pentru a pregti urmtorul octet de date.
f %inta dezactiveaz TRDY pentru a informa ini"iatorul c pe urmtorul tact nu vor exista
date valide. Ca urmare, ini"iatorul nu va citi datele la nceputul tactului 5 ci la nceputul
tactului 6. S-a inserat astfel o stare de WAIT.
g Dup tactul 6 "inta pune pe bus al treilea octet de date. Presupunem de data aceasta c
ini"iatorul nu este gata s preia datele (are de exemplu bufferul plin). Ini"iatorul
dezactiveaz IRDY, ceea ce are ca efect men"inerea datelor de ctre "int un tact
suplimentar (datele nu se citesc la nceptul tactului 7 ci la nceputul tactului 8).
h ini"iatorul dezactiveaz semnalul FRAME !i activeaz semnalul IRDY, pentru a semnala
c este gata s finalizeze transferul.
I Ini"iatorul dezactiveaz IRDY, perm"nd busului s treac n starea ini"ial. %inta a
detectat dezactivarea semnalului FRAME !i dezactiveaz TRDY !i DEVSEL.


3.3.2.4. Arbitrarea magistralei


Pentru a arbitra gestionarea magistralei, PCI folose!te un arbitru central ntr-o
configura"ie asincron, cu cereri (REQ) !i confirmri (GNT) dedicate, ca n Fig. 3.8.













Observa!ie: din cauza liniilor dedicate pentru arbitrarea accesului la magistral, pozi"ia
plcilor n sloturile PCI nu este indiferent, a!a cum era la magistrala ISA. n func"ie de
pozi"ia slotului, plcii i se ata!eaz un nivel de prioritate.
n Fig. 3.9. se exemplific mecanismul de arbitrare a dou dispozitive A !i B de ctre un
arbitru.




Arbitru
PCI
GNT REQ
Dispozitiv PCI
GNT REQ
Dispozitiv PCI
GNT REQ
Dispozitiv PCI
Fig. 3.8. Arbitrarea magistralei PCI

37




















a nainte de tactul $ A a activat cererea de bus REQ A.
b B solicit busul cu REQ B.
c n acela!i timp arbitrul cedeaz busul dispozitivului A (GNT A activ).
d MASTER-ul A, odat ce i este indicat prin GNT A c are acces la bus, verific IRDY !i
TRDY. Acestea fiind inactive, deci nu exist un transfer pe bus, activeaz semnalul
FRAME !i ncepe un transfer prin stabilirea adresei etc.
e n tactul 3 arbitrul de bus gse!te 2 cereri active, de la A !i de la B. !i decide cedarea
busului dispozitivului B pentru urmtorul transfer. Activeaz GNT B !i dezactiveaz GNT
A. B nu poate folosi busul pn acesta nu trece n stare inactiv, IRDY !i TRDY inactive.
f A dezactiveaz FRAME indicnd c transferul este ultimul transfer. Pune datele pe bus !i
semnalizeaz cu IRDY. %inta cite!te datele.
g La nceputul tactului 5, B gse!te IRDY, FRAME !i TRDY inactive !i preia controlul
busului genernd semnalul FRAME. B dezactiveaz linia REQ B pentru c avea nevoie de
un singur transfer. Controlul busului este din nou cedat dispozitivului A, care !i-a men"inut
cererea REQ A.

Ca urmare a necesit"ii arbitrrii magistralei !i a stabilirii pe liniile C/BE a unor coduri n
diferitele faze ale transferului, o plac ce se conecteaz pe PCI nu poate fi att de simpl ca
!i o plac ISA.

O schem bloc a unui circuit de interfa" PCI echipat cu controllerul de magistral PCI,
PCI9060 (furnizor PLX Technology, http://www.plx-tech.com) este dat n Fig. 3.$0. O
schem complet este dat n bibliografie.

PCI9060 are rolul de a rezolva problema aceesului la magistral cu REQ !i GNT, de a
asigura semnalele de dialog la transfer C/BE, FRAME, IRDY, TRDY etc., poate lucra n
mod DMA cu DRQ !i DACK, de a demultiplexa cele 32 de linii de adrese !i date AD 0-3$.
Datele de configurare sunt nscrise n controller de un EEPROM serial n faza de RESET a
calculatorului. PCI 9060 furnizeaz tactul de citire EECLK pentru linia de date citite EEDI.
g
f
e
d
c
b
a
$ 2 3 4 5 6 7
CLK
IRDY
TRDY
Fig. 3.9.Mecanism de arbitrare PCI
REQ A
REQ B
GNT A
GNT B
FRAME

38


















PCI9060 poate gestiona o memorie proprie, cu rolul de memorie tampon ntre EP care se
conecteaz pe magistrala PCI !i UC.

3.3.3. Magistrala VME

VME este o magistral asincron de 32 (64) bi"i de date care permite lucrul
multiprocesor. Adresarea poate fi de asemenea pe 32 de bi"i. 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 pu"in la noi dar n societ"ile dezvoltate
industrial exist multe calculatoare cu VME n domeniul msurrilor !i automatizrilor sau
n domeniul avia"iei. VME a fost realizat de MOTOROLA n $98$ !i a fost standardizat
ca IEC 82$ BUS !i IEEE $0$4-$987.

Dintre caracteristicile generale ale acestei magistrale se pot aminti:

transferul datelor pe 8, $6, 24, 32, sau 32 bi"i;
magistrala de adrese de $6, 24, 32, 40 sau 64 bi"i;
arhitectur master/slave, multiprocesor cu $-2$ procesoare;
mecanism de transfer asincron (multiplexat !i nemultiplexat);
7 nivele de ntrerupere;
rata de transfer de la 40 MBps la 500 MBps, n fuc"ie de vesiunea magistralei;
2$ sloturi.

3.3.3.1. 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 mpr"irea magistralei ntre
mai mul"i stpni;
Interrupt Bus (magistrala de ntreruperi);
ADRESE 0-3$
Bus PCI
AD0-3$
Comenzi,
stri
PCI9060
DATE 0-3$
EEPROM
serial
EECLK EEDI
RAM
Fig. 3.10. Schema bloc a unui circuit de interfa! PCI

39
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.$$. prezint structura unui sistem cu magistral VME.

1.Nivelul de acces la magistrala de fundal 2. Nivelul de transfer de date.


































3.3.3.2. Magistrala de date

Semnalele de transfer de date realizeaz interfa"a ntre un MASTER !i un SLAVE.
Controlerul de sistem, care este o plac situat n slotul $ al unui sistem VME, comand
transferurile !i arbitreaz subsistemele MASTER pentru controlul magistralei. La un
moment dat, pe magistral poate avea loc o singur tranzac"ie MASTER-SLAVE.

DATA

INTERRUPT

ARBITRATION
UTILITY

Unitatea de procesare
Monitor
de
alocare
Intre-
ruptor
Solicitare
DTB

Master
Tratare
IR
Solicitar
e
DTB
Logica interfetei de fundal (LIF)
Unitate de
stocare

Slave
LIF
Logica interfe"ei de fundal ( LIF )

Bus
timer

Driver
IACK
Monitori-
zarea
alimentar
Driver
ceas de
sistem
Driver
ceas
serial

Arbitru
Placa controller a sistemului
Plac# procesor CPU
Plac# memorie
Unitate
I/O

Slave
Intre-
ruptor
LIF
Plac# I/O
Fig. 3.11. Structura unui sistem cu magistral VME .

40
Magistrala admite conectarea procesoarelor pe 8, $6, 32 !i 64 de bi"i (revizia D). Linia de
adres A0 formeaz strob-urile de date DS0 !i DS$ care indic un transfer pe 8 sau pe $6
bi"i. Pentru transferul pe 32 de bi"i se activeaz semnalul LWORD (Long Word).

Cnd adresa este pus pe bus se activeaz AS (Adress Strobe) (Fig. 3.$2.). Dispozitivul
SLAVE rspunde cu DTACK c a preluat datele. Dac apare o eroare, ciclul este
abandonat prin activarea semnalului BERR. Dac BERR sau DTACK nu sunt activate,
sistemul fiind asinron se blocheaz. Din acest motiv se adaug un ceas de gard care
activeaz BERR dup un anumit timp.

Dup adres se trimite un cod pe liniile AM0-AM4 care specific tipul tranzac"iei, c"i bi"i
se folosesc din adres etc. Semnalul WRITE specific dac este un ciclu de scriere sau de
citire.






















Exist posibilitatea unui ciclu de citire/modificare/scriere (ciclu indivizibil). Semnalul AS
rmne valid n timp ce WRITE trece n 0 pentru a permite o citire., iar un alt set de date
este pozi"ionat pe bus. Ciclul se termin prin apari"ia DTACK !i BERR.

Stabilind un anumit cod pe liniile AM0-AM4 se poate face transfer pe blocuri, de
maximum 256 de octe"i. Primul octet se transfer n mod obi!nuit, dar apoi magistrala de
adrese este lsat la dispozi"ia dispozitivului SLAVE care o incrementeaz (cu numrul de
octe"i transfera"i ntr-un ciclu).

VME permite un pipeline al adreselor, adic adresa urmtoare poate fi plasat n timp ce pe
liniile de date mai sunt datele precedentului transfer.

Exist posibilitatea realizrii unui ciclu de adresare, la care nu se face nici un transfer de
date !i nu se verific DTACK sau BERR folosit pentru a ini"ia diferite comenzi ntr-un
subsistem VME.
BERR (apare dac a survenit o eroare)
DTACK (apare dac transferul a fost corect)
Bus de adrese A0-A31
AM0-AM4
AS
WRITE
Bus de date D0-D31
Fig. 3.12.Transfer de date pe magistrala VME

4$
3.3.3.3. Magistrala de arbitraj

Semnalele de arbitrare a bus-ului de date sunt necesare pentru c bus-ul fiind
multiprocesor, trebuie s existe garan"ia c numai un MASTER acceseaz bus-ul la un
anumit moment. Un dispozitiv MASTER solicit magistrala cu unul din semnalele BR0-
BR3 !i a!teapt ca arbitrul de bus situat n slotul $ s rspund. Dac bus-ul este vacant,
arbitrul rspunde cu semnalul BGINi (i=0-3) corespunztor. Semnalele BGINi !i BGOUTi
sunt cuplate n topologie daisy chain. Aceasta nseamn c ierarhia este bazat pe pozi"ia n
slot. MASTER-ul pozi"ioneaz linia BBSY care indic faptul c bus-ul este ocupat !i
dezactiveaz cererea de bus. Arbitrul dezactiveaz permisiunea de preluare a bus-ului.
Dup ce MASTER-ul termin transferul dezactiveaz linia BBSY, magistrala devenind
liber. Este important ca lan"ul de priorit"i s fie nentrerupt, de aceea se folosesc jumperi
pentru a lega BGIN cu BGOUT acolo unde nu sunt plci.

3.3.3.4. Magistrala de ntreruperi

Gestionarea ntreruperilor se poate realiza pentru 7 nivele de ntrerupere. Se
solicit o ntrerupere pe liniile IRQ$-IRQ7 (IRQ7 are cea mai mare prioritate). Se face o
citire a liniei care a cerut ntreruperea (bi"ii $-3 de adres). Ca !i la arbitrarea magistralei se
face un daisy chain prin semnalele IACKIN !i IACKOUT (Fig. 3.$3.).










Placa care a cerut ntreruperea recunoa!te codul de 3 bi"i din adres !i blocheaz prin
IACKOUT calea de ntrerupere. MASTER-ul execut transferul !i termin prin activarea
semnalului DTACK care dezactiveaz IACKOUT.

3.3.3.5. Magistrala utilitar

Semnalele magistralei utilitare sunt:

alimentare +5V, +$2V, -$2V;
ceasul de magistral SYSCLK;
SYSFAIL indic o eroare de sistem;
ACFAIL indic o cdere a sursei de alimentare;
SYSRESET semnal de RESET pentru toate plcile.





PLACA $
IACKIN IACKOUT
PLACA 2
IACKIN IACKOUT
PLACA 3
IACKIN IACKOUT
IRQi
INT
A$-A3 A$-A3 A$-A3
Fig. 3.13.Gestionarea ntreruperilor n magistrala VME

42
3.3.4. SCSI (Small Computer System Interface)

SCSI este o interfa" paralel multipunct cu 8, $6 sau 32 linii de date. Ea poate fi
privit ca un bus, dar practic dispozitivele SCSI sunt legate prin daisy chain , fiecare avnd
un conector de intrare !i unul de ie!ire. Din punctul de vedere al sincronizrii, SCSI este un
bus asincron. Orice dispozitiv poate transfera date cu orice alt dispozitiv sau cu
dispozitivul MASTER. Standardul actual este SCSI 2 care permite transfer pe maximum
32 de linii de date la o vitez de transfer de maximum 20-40MBps. Orice transfer SCSI are
un ini"iator !i o "int. De obicei ini"iatorul este dispozitivul MASTER. Fazele unui transfer
sunt:
Bus liber - indic faptul c bus-ul nu este ocupat !i poate fi folosit;
Arbitrare - valideaz dispozitivul SCSI s c!tige controlul bus-ului, astfel nct
s poat ini"ia un transfer;
Selec"ie - valideaz dispozitivul ini"iator pentru a selecta o "int, spre care s
fac un transfer I/O de READ sau WRITE;
Reselec"ie - permite ca "inta s se reconecteze la ini"iator pentru a continua o
opera"ie suspendat de "int;
Comenzi - valideaz dispozitivul ini"iator s trimit comenzi "intei;
Date - valideaz transferul spre ini"iator (DATA IN) sau spre "int (DATA
OUT);
Stri - valideaz comunicarea strii "intei ctre ini"iator;
Mesaje - valideaz transferul de mesaje spre ini"iator (MESSAGE IN) sau spre
"int (MESSAGE OUT).

Semnalele interfe"ei SCSI sunt:
BSY - setat de orice dispozitiv pentru a indica c bus-ul este ocupat;
SEL - folosit de ini"iator pentru a selecta o "int, sau de "int pentru a reselecta ini"iatorul;
C/D - indic dac este un transfer de comenzi, stri, mesaje sau de date;
MSG - indic un transfer de mesaje;
REQ - cerere de transfer de la "int la ini"iator;
ACK - ini"iatorul rspunde cu ACK la cererea de transfer REQ a "intei !i confirm faptul
c ini"iatorul a pus informa"ia pe liniile de date sau a citit-o de pe liniile de date;
ATN - folosit de ini"iator pentru a informa c exist un mesaj pentru a fi transferat;
RST - RESET;
D0-D31 - liniile de date;
P - linie (linii) de paritate.

Diagrama de timp pentru un transfer SCSI - arbitrare, selec"ie, transfer de comenzi, de date,
de stri !i de mesaje este dat n Fig. 3.$4.
Fazele distincte $, 2, 3, 4, 5 sunt explicate n continuare:

$. Ini"iatorul pune BSY=$ !i selecteaz "inta cu SEL=$. Pe linia de date se transmite codul
opera"iei de arbitrare apoi adresa "intei.

2. Linia C/D=$ indic un transfer de comenzi. n exemplul din figur se transmit 2 cuvinte
pe liniile de date. Sicronizarea transferului se face cu semnalele REQ !i ACK. Linia BSY
este pus n $ de ctre "int.
43

























BSY
SEL
C/D
I/O
REQ
ACK
D0-D31
BUS LIBER 1 2 3 4 5
MSG
Fig. 3.14. Diagrama de timp a unui transfer SCSI
$
3. Transferul efectiv de date se face sincronizat cu REQ !i ACK, linia C/D=0
indicnd un transfer de date. Primul cuvnt este citit (linia I/O=$) iar al doilea
este scris (linia C/D=$).

4. Se comunic# starea (linia C/D=$) privind rezultatele transferului.

5. Se transfer# un mesaj indicnd linia MSG=$.

3.4. ALTE MAGISTRALE

FUTUREBUS+

Este un bus asincron de mare performan". Suport cuvinte de date de 32, 64, $28 !i
256 bi"i. FUTUREBUS+ suport dou modele de arbitrare a bus-ului, unul centralizat !i
unul distribuit. Un grup de 3 linii permite fiecrui modul s anun"e modul de transfer
suportat. Realizatorii bus-ului sus"in 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 toleran"a la erori.

CEBus

Se bazeaz pe transmisia de date prin re"eaua industrial de curent alternativ ($20V,
60Hz), (Standard Powerline Carrier Technology) pentru conectarea echipamentelor de
electronic casnic ntre ele. n aceast tehnologie se folose!te mpr!tierea spectrului
pentru a evita pericolul perturbrilor produse de re"ea. Pe durata fiecrui bit de informa"ie
spectrul variaz ntre $00Hz !i 400Hz.

CAN (Cotroller Area Network) #i J1850

Este o magistral introdus de Bosch !i Intel pentru autovehicule. J$850 a fost
introdus n SUA de SAE (Society of Automotive Engineers) !i este aplicat tot la
autovehicule. Cele dou standarde nu pot coexista, deoarece nivelele de tensiuni !i
protocoalele sunt diferite. Ambele variante sunt magistrale seriale, cu linii multiplexate cu
care se poate lucra la fel la nivelul superior (software). Arbitrarea magistralei se realizeaz,
la ambele, prin trimiterea unui identificator de 29 bi"i. Microcontrollerele construite pentru
utilizarea n domeniul auto sunt echipate cu astfel de bus-uri.

MICROWIRE/PLUS

Este o magistral serial, sincron, bidirec"ional, introdus de National
Semiconductor Corporation. Compania echipeaz cu acest bus microcontrollere,
convertoare, display-uri, EEPROM etc.

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