Documente Academic
Documente Profesional
Documente Cultură
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)
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
BCLK
LA17-23
BALE
SA0-19
SBHE\
MRDC\
SD0-15
BCLK
LA17-23
BALE
SA0-19
SBHE\
MWTC\
SD0-15
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.
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)
CLK
FRAME
IRDY
TRDY
DEVSEL
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.