Organizarea sistemelor de calcul
Un sistem de calcul este caracterizat in primul
rand de structura sa. Aceasta desemneaza totalitatea componentelor individuale
ce sunt necesare asigurarii functiilor specificate. In principiu elementele de
structura se identifica prin elementele fizice la nivelul calculatorului.
Ex: Circuitele integrate, cai de transmitere a
semnalului, sursa de alimentare, etc.
Spre deosebire de structura unui calculator,
arhitectura lui se defineste ca fiind totalitatea elementelor pe care sistemul
de calcul le pune la dispozitia programatorului. In principiu aceste asa numite
atribute de arhitectura sunt orientate catre componenta logica a
calculatorului.
Ex: microprocesorul, memoria, instructiuni ale limbajelor de programare, etc...
Definitie 1: Calculatorul, in acest context, este un sistem electronic ce primeste
informatie de la utilizator, o prelucreaza conform unui algoritm programat si
furnizeaza catre utilizator rezultatele acestor prelucrari.
Definitie 2: Calculatorul este un sistem capabil sa rezolve probleme pe baza
programelor memorate.
O caracterizare generala a sistemelor cu
microprocesor:
-
Magistralele sunt cai de
comunicatie intre memorie, microprocesor, dispozitive de I/O...
-
Structura principiala a unui
sistem de calcul este redata in figura 1, fiind puse in evidenta
cele 3 entitati fundamentale ce sunt prezente in orice calculator si anume:
unitatea centrala de prelucrare (microprocesorul); memoria si dispozitivele de
I/O, toate acestea fiind interconectate la nivel de magistrala.
Se remarca faptul ca la nivelul subsistemului
memorie se realizeaza o distinctie logica intre tipurile de informatie stocata
(memorie de date, memorie de programe), la nivel fizic insa, memoria este
unitara, neexistand astfel de diviziuni din punct de vedere al dialogului cu
mediul exterior, acesta este asigurat de dispozitivele de I/O.
Dispozitivele de intrare au rolul de a prelua
informatii de la utilizator intr-un format accesibil lui, sunete, texte,
valori, etc. Si de a o converti sub forma de coduri numerice ce pot fi intelese
si prelucrate de catre calculator.
Reciproc, dispozitivele de iesire preiau
rezultatele prelucrarilor sub forma de coduri numerice si le convertesc intr-o
forma accesibila utilizatorului.
In ceea ce priveste comunicarea interna in PC,
ea este asigurata de prezenta asa numitelor magistrale de comunicatie. In afara
de datele ce sunt transportate de la un bloc functional la altul, magistralele
transporta si informatii de localizare a datelor ( adrese ) , respectiv semnale
de sincronizare a activitatilor din calculator. ( informatii de control ).
Functii indeplinite la nivelul
calculatorului
La modul general un calculator indeplineste 5
functii:
1.
> Intrare – ce permite
stabilirea unui flux informational de la mediul exterior catre sistemul de
calcul.
2.
> Iesire – ce permite generarea
unui flux reciproc de la sistemul de calcul catre mediul exterior.
3.
> Memorare – ce asigura
pastrarea datelor si a programelor.
4.
> Operationala – ce permite
efectuarea de operatii aritmetice si logice asupra datelor din memorie.
5.
> Supervizare si comanda – ce
permite functionarea coerenta si sincronizata a tuturor subansamblurilor
sistemelor de calcul.
Caracterizarea informationala a sistemelor
de calcul.
BCC – Bloc comanda-control
UAL – unitatea aritmetico-logica
-
In stransa legatura cu cele 5
functii anterior mentionate la nivelul calculatorului se stabileste un flux
informational complex reprezentat in figura 2. Uzual, informatia
reprezentata de date si instructiuni este preluata din exterior prin
intermediul subsistemelor de intrare fiind depusa in memoria sistemului. De
aici informatia este citita, decodificata si prelucrata de catre microprocesor
prin executia efectiva a programului. Se observa faptul ca datele intermediare
si rezultatele prelucrarilor circula in permanenta intre procesor si memorie.
La finalul prelucrarilor, rezultatele sunt preluate din memorie si transmise in
exterior prin intermediul subsistemului de iesire.
Tot in figura 2 se
remarca faptul ca la nivelul microprocesorului sunt puse in evidenta 2 sectiuni
fundamentale:
1.
Blocul
unitatea aritmetico-logica (UAL) – ce reprezinta o colectie de circuite
complexe capabile sa efectueze prelucrari aritmetice si logice simple pe baza
instructiunilor programelor.
2.
Blocul
de comanda si control (BCC) – el, pe baza decodificarii programului genereaza
si sincronizeaza toate semnalele necesare atat pentru procesarea datelor cat si
pentru functionarea coerenta a intregului sistem.
Caracterizarea Temporal secventiala a
calculatorului numeric
Modul de interconectare a elementelor
componente ale unui calculator corespunde unei arhitecturi ce presupune o
executie strict secventiala a programelor. Acest mod de executie exclude
practic orice paralelism in activitatea calculatorului astfel incat programele
stocate in memorie se executa strict succesiv.
La sistemele actuale au fost insa introduse asa
numitele tehnici de procesare paralela prin intermediul carora sistemul de
calcul poate executa simultan mai multe aplicatii. Desfasurarea in timp a
operatiilor efectuate de diversele grupuri functionale ale calculatorului este
supervizata de catre sectiunea de control astfel functiile generale ale
sistemului sunt activate intr-o succesiune bine stabilita, determinata de
specificul operatiei executate.
In figura 3 este prezentata o diagrama
simplificata ce surprinde modul in care blocurile functionale ale
calculatorului sunt activate in timp.
Se remarca faptul ca in perioada in perioada T1
(etapa de citire a informatiilor) datele ce vor fi supuse prelucrarii sunt
preluate din exterior fiind memorate din acest motiv subsistemele. „Intrare”,
„memorie” sunt active.
In perioada T2 (corespunzatoare efectuarii
calculelor) sunt active sectiunea „memorie” si „UAL” pentru ca prelucrarile se
efectueaza asupra datelor prelucrate.
In perioada T3 rezultatele prelucrarilor sunt
furnizate in exterior fiind activate subsistemele „memorie” , „iesire”.
Toate aceste proceduri de activare si dezactivare
a blocurilor functionale ale calculatorului sunt sincronizate si repartizate in
timp in concordanta cu asa numitul semnal de ceas al sistemului. Acest semnal
este reprezentat de o succesiune de impulsuri a caror frecventa este strict
controlata de un cristal de quartz, practic, orice schimbare a starii
calculatorului se poate produce doar in momentul aparitiei unui impuls.
Caracterizarea executiva:
Avand in vedere faptul ca atributele
functionale, informationale, temporal secventiale sunt complementare,
sistemelor de calcul le este asociata si asa numita dimensiune executiva.
Notiunea de executie semnificand efectuarea
sarcinilor formulate de catre utilizator este strans legata de notiunea de
program. In acest context un program este o succesiune organizata de
instructiuni aferente unui limbaj ce respecta reguli de sintaxa si semantica si
are asociat ca scop rezolvarea unei probleme pusa de utilizator.
Magistrale de sistem
Magistrala reprezinta o grupare de linii de
semnal carora li se asociaza functii similare avand rolul de a interconecta
elementele componente ale unui sistem de calcul.
Din punct de vedere topologic la nivelul
calculatorului exista 2 tipuri de magistrale.
1.
Magistrale interne – ce realizeaza
interconectarea globurilor functionale ale calculatorului.
2.
Magistrale externe – ce permit
realizarea de legaturi intre calculator si mediul extern.
Observatie:
Aceasta separare poate fi extinsa de la nivelul
calculatorului la nivelul microprocesorului astfel caile de comunicatie din
interiorul microprocesorului sunt asimilate unor magistrale interne acestuia,
in timp ce legaturile cu restul sistemului de calcul se efectueaza prin
intermediul magistralelor externe ale microprocesorului ( ce sunt in acelasi
timp magistrale interne ale sistemului de calcul ).
Din punctul de vedere al modului in care sunt
transmise informatiile, magistralele pot fi de 2 tipuri.
In cazul in care magistrala are mai multe linii
de semnal permitand astfel transferul simultan al unui asa numit „cuvant de
date” (8 bits, 16 bits, 32 bits), magistrala este de tip paralel.
Reciproc, atunci cand magistrala de comunicatie
permite trecerea la un moment dat al unui singur bit al cuvantului de date,
aceasta magistrala este de tip serial.
In consecinta o magistrala seriala are in principiu
o singura linie de semnal, iar transportul bitilor din cuvantul de date se face
in mod secvential (succesiv).
Avantajul magistralelor paralele este
reprezentat de viteza mare ce caracterizeaza comunicatiile.
Dezavantajul principal al acestor magistrale
este dat de distantele scurte pe care acestea le pot deservii.
In schimb, magistralele seriale au avantajul de
a putea opera distante mari, fiind caracterizate insa de viteze reduse.
In general magistralele de tip paralel sunt
magistrale interne (interconectand astfel elemente ale calculatorului ce
functioneaza la viteze ridicate) in timp ce magistralele seriale sunt folosite
pentru asigurarea comunicatiei mai lente dintre calculator si mediul extern.
In figura 4 este
prezentata conectarea principiala a subsitemelor calculatorului la nivelul
magistralelor.
Magistrala de date
Destinatia aceste magistrale este reprezentata
atat de intermedierea transferului dintre memorie si procesor (din timpul
citirii instructiunilor programului) cat si a transferului dintre memorie,
unitatea centrala si interfetele I/O.
Fiind o magistrala bidirectionala, sensul
transferului pe aceasta este determinat prin exercitarea functiei de control a
microprocesorului (acesta este cel ce stabileste sensul comunicatiei pe
magistrala.
Numarul liniilor de semnal asociate magistralei
de date este regula egal cu lungimea cuvantului de date acceptat de
microprocesor.
Magistrala de adrese
Rolul acestei magistrale unidirectionale este
acela de a transporta adrese de memorie pt identificarea locatiilor ce contin
memorate instructiuni de program sau date cu care acesta opereaza.
Numarul liniilor de semnal asociate magistralei
de adrese determina asa numita adresabilitate a sistemului de calcul
(capacitatea maxima a memoriei ce poate fi instalata in sistem). Astfel pentru
o magistrala de adrese cu n linii de semnal, avand in vedere faptul ca fiecare
linie transporta doar 2 valori logice (0 si 1) numarul de combinatii binare
distincte ce pot fi alcatuite este de 2n .
In consecinta, capacitatea maxima a memoriei ce
poate fi accesata de sistemul respectiv este de 2n locatii.
Magistrala de Control
Transporta in sistem o serie de informatii
necesare pentru sincronizarea si coordonarea activitatii in calculator. In plus
la nivelul magistralei de control sunt transmise o serie de informatii necesare
executiei intructiunei curente. Numarul si tipul semnalelor transportate depind
in mod direct de caracteristicile microprocesorului. In mod tipic la nivelul
magistralei de control se regasesc:
-
Semnalul de ceas al sistemului
-
Semnalele de citire din memorie
-
Semnalele de scriere in memorie
-
Semnalele de citire / scriere la
nivelul porturilor de I/O.
Microprocesoare
Asa cum s-a aratat, microprocesorul este o
unitate centrala de prelucrare realizata fizic sub forma unui singur circuit
integrat. Din acest motiv, microprocesorul asigura totalitatea functiilor de
calcul si comanda la nivelul sistemului de calcul.
Observatie:
Vom considera un procesor standard a carui structura
este prezentata in figura 6.
Functia de supervizare a microprocesorului
Asa cum a fost anterior precizat,
microprocesorul opereaza in mod secvential sub rezidenta unui program memorat.
Totusi, doar programul in sine nu este
suficient pentru ca sistemul de calcul sa functioneze corespunzator. De exemplu
microprocesorul trebuie sa cunoasca adresa primei locatii de memorie de la care
programuls se afla stocat.
Observatie:
Un anumit program nu poate comunica microprocesorului
o astfel de adresa pentru ca incarcarea sa in memorie se face de catre sistemul
de operare, in plus, o serie de semnale de control necesita o activare
corespunzatoare intr-o succesiune bine determinata (de exemplu inaintea citirii
unei valori dintr-o locatie de memorie, trebuie activate semnale de ocupare a
magistralelor, semnalele de adresa, semnalul de specificare a modului de
transfer, etc...)
Toate aceste cerinte sunt indeplinite de catre
sectiunea de decodificare, timing si control. Practic, la nivelul acestuia se
asigura in integralitate functiie de secventializare a actiunilor, de
decodificare a instructiunilor, respectiv de activare a blocurilor functionale,
dedicate efectuarii operatiilor impuse.
Ciclul micropocesorului
Actiunile microprocesorului au loc in mod
ciclic secvential in sincronism cu semnalul de ceas al sistemului. In acest
context se defineste asa numitul „ciclu instructiune al microprocesorului ca
fiind secventa de operatii efectuate in vederea extragerii, decodificarii si
executiei unei instructiuni din memorie.
Un ciclu instructiune are o durata variabila in
functie de complexitatea instructiunii respective.
In plus, cele 3 subetape ale ciclului
(extragere cod instructiune, decodificare-instructiune si executie
instrunctiune) se constituie in subciclul specific ciclului instructiune.
La randul lui fiecare subciclu permite la
randul sau alte instructiuni individuale ce trebuiesc executate.
In principiu exista 3 subcicluri fundamentale:
-
Extragere instructiune
-
Decodificare instructiune si
incarcare date pentru executie
-
Executie instructiune
O reprezentare principiala a unui ciclu
instructiune este data in figura 7 si figura 8.
Functia de memorare
Microprocesorul contine de regula, o serie de
resurse proprii de memorare a informatiei, avand insa capacitatea redusa fata
de memoria principala a sistemului. In general memoria integrata la nivelul
microprocesorului are rol de memorie tampon, ea continand date si instructiuni
pe care microprocesorul le utilizeaza frecvent (ce au fost copiate din memoria
principala a sistemului). Totusi elementul caracteristic tuturor procesoarelor
este reprezentat de prezenta unor resurse specifice de memorare a informatiei,
resurse numite registre. Asa cum s-a aratat, un registru
este practic o locatie de memorie integrata la nivelul microprocesorului,
locatie ce este identificata, nu printr-o adresa, ci printr-un nume. Acest nume
este definit de fabricantul microprocesorului si are semnificatia doar in
contextul microprocesorului respectiv.
Practic, registrele sunt
memoria de lucru a microprocesorului.
Acest nivel de memorie are
cea mai mare viteza ( daca ne raportam la celalalte niveluri de memorie :
- cache – principala – dispozitivele de memorie
externe.
Exista 2 categorii de registre:
1.
Registre de uz general (aflate la
dispozitia utilizatorului)
2.
Registre speciale (ce au in
general doar rolul functional pentru sectiunile microprocesorului)
Registrele sunt folosite la stocarea
diferitelor informatii utilizate atat in cadrul programelor cat si in
exercitarea functiei de control a microprocesorului.
De exemplu registrele generale contin date
folosite des in cadrul programelor, ceea ce conduce la cresterea vitezei de
lucru a sistemului (pt ca timpii de acces la registre sunt mult mai mici decat
timpp de acces la memoria conventionala a sitemului).
Aceste registre sunt conectate atat la alte
registre interne ale microprocesorului, cat si la magistralele externe, prin
intermediul magistralelor externe. Iar prin magistralele interne prin
circuitele tampon.
Orice registru de acest tip este accesibil
programatorului (astfel el reprezentand element de arhitectura a
microprocesorului).
Pe de alta parte, registrele speciale au
functii predefinite in cadrul microprocesorului, iar acestea nu pot fi
schimbate de catre programator. In general aceste registre desi fac parte din
structura microprocesorului, ele nu reprezinta elemente de arhitectura, pentru
ca programatorul nu le poate utiliza explicit in programele sale.
Functia aritmetico-logica
Sectiunea care efectueaza operatii aritmetice
si logice, este compusa dintr-un element executiv (unitatea aritmetico-logica)
si o serie de registre ce servesc la manipularea si memorarea temporara a
manipulantilor ( figura 11 )
UAL – La nivelul unitatea
aritmetico-logica se remarca prezenta celor 2 intrari de date ce furnizeaza
valorile operanzilor.
Cea de-a treia intrare este
reprezentata de selectia functiei (operatia ce o sa fie efectuata de UAL) la
iesirea unitatii aritmetico-logice se regasesc rezultatul, precum si o serie de
indicatori ce arata modul in care s-a efectuat ultima operatie. Acesti
indicatori sunt de fapt biti individuali grupati intr-un asa numit registru de
stare.
Valorile acestor biti indica
eventual aparitia unor evenimente in functionarea UAL (depasire aritmecica ,
rezultat nul, existenta transportului la operatia de adunare...)
Registrele prezente atat la
intrari cat si la iesirea UAL, au rolul de a memora temporal valorile
operanzilor, respectiv rezultatele operatiilor facute.
Cel mai important registru
din acest grup este un registru de uz general, numit registru acumulator. El o
sa contina un operant (inainte de efectuarea operatiei) respectiv rezultatul
(dupa efectuarea operatiei).
Functia de I/O.
In general asa cum s-a aratat, sectiunea de I/O
este reprezentata intr-o mai mica masura la nivelul microprocesorului, exceptie
facand acele componente structurale ce permit izolarea fizica a circuitului
integrat de mediul exterior reprezentat de magistrale.
Accesul microprocesorului la aceste cai de
comunicatie se face prin intermediul unor structuri ce au rolul de elemente
tampon. (figura
12)
Practic, aceste circuite de
tip buffer (tampon) sunt circuite avand 3 stari logice posibile pentru fiecare
dintre caile de semnal.
Aceste circuite transfera la
iesire valoarea binara aplicata la intrare doar in conditiile aplicarii unui
semnal de validare pe intrarea de selectie.
Atunci cand nu sunt activate
iesirile acestor circuite se afla intr-o stare flotanta numita „ stare de
inalta impedanta”. Aceasta stare este echivalenta functional cu decuplarae
fizica a microprocesorului de la caile de semnal la care el este conectat. Prin
intermediul acestui mecanism este permis accesul concurent al mai multor
circuite pe magistralele sistemului. Prin selectarea unui singur buffer
circuitul integrat respectiv preia controlul magistralei, plasand astfel
semanle pe liniile acesteia.
In cazul microprocesorului,
conectarea si deconectarea acestuia de la magistrale sunt dictate de propria
sectiune de control. In timp ce pentru alte circuite exista un „supervizor”
extern.
Microprogramarea la nivelul unitatii
centrale de prelucrare
Asa cum s-a aratat, la nivelul
microprocesorului fiecare instructiune a unui program este descompusa intr-o
succesiune de operatii interne de-a lungul asa numitului ciclu instructiune.
La nivelul microprocesorului operatiile
fundamentale se pot incadra in una din urmatoarele cateogrii:
1.
Extragerea codului numeric al
instructiunii
2.
Decodificarea instructiunii
(microprocesorul isi stabileste succesiunea de prelucrari interne asociate
instructiunii primite)
3.
Extragerea eventualilor operanzi
necesari executiei instructiunilor.
4.
Executia efectiva a instructiunii.
Pentru fiecare dintre aceste etape,
microprocesorul executa un numar de operatii elementare numite
microinstructiuni astfel incat se obtine executia instructiunii complexe.
a) Aceste
microinstructiuni sunt memorate in circuitele decodificatorului de instructiune
asociat microprocesorului si nu sunt acesibile utilizatorului.
b) Implementarea
efectiva a microinstructiunii este o caracteristica specifica fiecarui procesor
in parte.
c) Exista
insa o serie de microprocese speciale pentru care setul de microinstructiuni
este accesibil utilizatorului astfel incat acesta isi poate definii propriile
instructiuni pe baza microinstructiunilor disponibile.
Aceste procese speciale prezinta avantajul
posibilitatii programarii dar sunt inferioare din punct de vedere al
performantelor, pentru ca implementarea la nivel software al instructinuii
reduce drastic viteza de lucru (comparativ cu microprocesorul standard la care
setul de instructiuni este implementat hardware.
CISC – Complex Instructions Set Computer
RISC – Reduced Instructions Set Computer
Sistemul memorie asociat calculatoarelor
numerice
Memoria calculatorului numeric, numita memorie
interna sau memorie principala, este utilizata pentru stocarea programelor,
respectiv a datelor pe care acesta le prelucreaza. Din punct de vedere
topologic si functional, memoria se situeaza intr-un raport de directa
interactiune cu procesorul si din acest motiv se poate spune ca performantele
de ansamblu ale calculatorului depind intr-o mare masura de performantele
subsistemului memorie.
Elemente de carcateristici generale
Principal unitatea indivizibila a oricarui
circuit de memorie este reprezentat de celula elementara ce memoreaza
informatia de 1 bit. Prin gruparea celulelor elementare se formeaza locatii
individuale ce au uzual dimensiunea de 8 biti ( 1 byte , 1 octet ).
Fiecarei locatie de memorie ii sunt asociate 2
elemente informationale si anume:
-
O adresa unica reprezentand
numarul de ordine dupa care se poate identifica locatia.
-
Cuvantul memorie ce reprezinta
combinatia binara stocata in locatia respectiva.
Numarul total al locatiilor de memorie
reprezinta capacitatea memoriei, in timp ce intervalul valid al adreselor
reprezinta spatiul de adresare al memoriei.
Din punct de vedere fizic memoriile sunt
realizate sub forma circutelor semconductuare specializate, aceste circuite
deosebindu-se printr-o serie de elemente definitori dupa cum urmeaza:
1.
Geometria sau modul de organizare
– aceste notinui incluzand numarul de biti ai unui cuvand in memorie,
dispunerea locatiilor de memorie, modalitatea de identificare a locatei de
memorie, etc...
2.
Capacitatea memoriei exprimata in
nr de locatii continute de aceasta.
3.
Timpul de acces definit ca
intervalul de timp ce se scurge intre momentul comunicarii adresei si momentul
in care la iesirile circuitului de memorie se obtin datele memorate.
4.
Ciclul memoriei definit ca timpul
necesar pentru scrierea sau citirea unei locatii de memorie.
5.
Puterea consumata specifica
exprimata de regula in μW/bit.
6.
Volatilitatea ce desemneaza
capacitatea circuitului de a retine sau nu, informatia memorata la disparitia
tensiunii de alimentare.
7.
Tehnologia de realizare.
Din punct de vedere operational, asupra unui
circuit de memorie se pot executa in general proceduri de citire, scriere,
programare si regenerare a continutului. Evident, tipul acestor operatii
acceptate de un circuit, este dependent de caracteristicile constructive
functionale ale circuitului respectiv.
Astfel, circuitele care accepta atat citirea
cat si scrierea continutului se numesc memorii RAM. Ele pot fi la randul lor de
tip dinamic (DRAM) sau static (SRAM).
Spre deosebire de memoriile SRAM, circuitele
DRAM necesita refresh-ul periodic al continutului printr-o succesiune de citiri
si scrieri interne.
In figura 14 este
prezenta o structura principiala pentru un circuit de memorie RAM static.
Adresa preluata de pe
magistrala este preluata de decodificatorul intern de adrese care „calculeaza”
linia, respectiv coloana din matricea locatiilor de memorie la intersectia
carora se regaseste locatia de interes. Atunci cand se doreste scrierea in
memorie, datele sunt preluate de pe magistrala prin intermediul unui circuit
tampon si plasate in matricea de memorie, in locatia anterior determinata.
Reciproc, daca se doreste citirea continutului memoriei, datele memorate in
locatia determinata initial vor fi prezente la iesirile circuitului de memorie.
Prezenta blocului de control
asigura pe de o parte stabilirea regimului de functionare a circuitului de
memorie (scriere sau citire) si pe de alta parte si sincronizarea circuitelor
de memorie.
Modul principal in care pe
baza adresei primite de pe magistrala se determina linia, respectiv coloana din
matricea de memorie, este ilustrat in figura 15.
In ceea ce proveste
memoriile RAM dinamice, structura lor interna este in principiu similara cu cea
asociata memoriei RAM statice, fiind utilizat acelasi mod de utilizare
inidividuala a celulelor de memorie individuala.
Spre deosebire insa de
memoria RAM statica, memoria RAM dinamica permite asa numita adresare in grup
(ASOCIATIVA) a locatiilor situate pe aceeasi linie a matricilor.
Aceasta adresare asociativa
este necesara in timpul procedurii de REFRESH, deoarece refresh-ul pe grupuri
de locatii este mai avantajos din punct de vedere al timpului consumat.
Memorii ROM
In functie de modalitatea de inscriere si de
posibilitatea de modificare ale continutului, memoriile pot fi:
-
ROM (Read Only Memory) –
circuitele ROM sunt fabricate avand deja inscris continutul dorit ( acesta nu
se poate modifica sub nicio forma)
-
PROM (Programable Read Only
Memory) – aceste circuite pot fi programate o singura data prin conectarea lor
la un dispozitiv special numit programator.
Programarea
circuitelor se face prin distrugerea unor conexiuni interne ( acolo unde se
inscrie valoarea 0 logic) respectiv mentinerea acestora (acolo unde se inscrie
valoarea 1 logic).
-
EPROM (Erasable Programable Read
Only Memory) – aceste memorii permit stergerea si reinscrierea continutului. In
functie de procedura folosita pentru stergerea memoriei EPROM, ele sunt de 2
feluri:
o
EEPROM ( Electrically Erasable
Programable Read Only Memory)
o
UVEPROM ( Ultra-Violet Erasable
Programable Read Only Memory)
Dupa cum se observa in figura 17 structura principala a unui circuit ROM este similara cu cea a
unui circuit RAM, deosebirea fiind aceea ca legatura cu magistrala de date este
unidirectionala.
Oranizarea subsistemului memorie in sistemul
de calcul
Din punct de vedere fizic, memoria unui sistem
de calcul este compusa atat din memorii operative (memorii RAM) cat si din
memorii fixe (ROM).
Combinarea coerenta a acestor circuite
independente in sensul formarii unui ansamblu unitar este posibila datorita
existentei unui bloc functional special numit decodificator global de adrese.
El primeste la intrare semnale preluate de pe
magistralele de adrese si control si formeaza la iesire semnale de selectie si
validare pentru fiecare dintre circuitele independente de memorie (figura 18).
Din punct de vedere
functional, decodificatorul de adrese preia de pe magistrala care circuit de
memorie din cele m+n trebuie activat (pentru ca el contine locatia de memorie
diferita) astfel, un singur circuit integrat o sa fie activ la un moment dat (
prin aplicarea unui semnal de selectie si validate corespunzator), in timp ce
toate celelalte m+n-1 circuite raman inactive (neselectate).
Din punct de vedere practic
dispunerea in spatiul de memorie a memoriilor ROM si RAM respectiv cantitatea
de memorie corespunzatoare fiecarui tip sunt elementele stabilite de
proiectantul sistemului de calcul.
Observatie: La sistemul de
calcul ce se conformeaza unor standarde (IBMPC-AT) atat cantitatea de memorie
ROM cat si RAM respectiv dispunerea acestora in spatiul global de memorie
respecta reguli fixe.
Interactiunea sistemului de calcul cu mediul extern.
(operatii de I/O)
(operatii de I/O)
Asa cum s-a aratat, functionarea unui sistem de
calcul prespune nu doar efectuarea sarcinilor interne de procesare ci si
schimbul de informatie cu mediul extern pentru asigurarea acestui acces la
nivel interactional, sistemele de calcul sunt dotate cu circuite speciale de
interfata care asigura compatibilizarea semnalelor asociate mediului extern cu
semnalele ce pot fi transformate si prelucrate la nivelul calculatorului
numeric.
Aceste interfete permit un transfer selectiv al
datelor in functie de comenzile permite de la microprocesor. Modul selectiv de
transfer al datelor este impus de seturi de reguli ce sunt asociate fiecarei
interfete in parte (uzual, aceste seturi de reguli poarta numele de protocoale
de comunicatii).
In procesul de comunicatie dintre microprocesor
si echipamentele externe se pot distinge 2 etape functionale succesive
reprezentate de transferul intre microprocesor si interfata respectiv de
dialogul dintre interfata si periferice. In timp ce prima etapa reprezinta in
principal operatii de I/O (pentru ca este implicat microprocesorul). Cea de-a
doua etapa este asociata transferului efectiv al informatiei.
Modalitatea concreta prin care aceste 2 etape
sunt implementate depinde de configurarea calculatorului si de cerintele
aplicatiei software implicate.
In principiu din punct de vedere al sistemului
de calcul exista 3 modalitati principiale de lucru cu dispozitivele de I/O ce
permit controlul si sincronizarea transferului de date:
1. Operatii de I/O efectuate sub control software.
2. Operatii de I/O efectuate prin tehnica intreruperilor.
3. Operatii de I/O efectuate prin acces direct la memorie.
1. Operatii de I/O efectuate sub control programat
In acest caz sarcina declansarii operatia de
transfer revine in mod nemijlocit programului ce se afla in executie. El
contine instructiuni specifice prin care microprocesorul este instruit in
efectuarea transferului de date cu interfetele. In principiu exista 4 tipuri de
instructiuni ce pot fi folosite in aceasta situatie:
a)
Instructiune pentru trimiterea
datelor catre interfete
b)
Instructiune pentru citirea
datelor de la interfete
c)
Instructiune pentru configurarea
interfetelor
d)
Instructiune pentru citirea starii
interfetelor
2. Operatii de I/O efectuate
prin intreruperi:
Intreruperea se refera in acest context la
oprirea temporara a activitatii curente a procesorului in vederea luarii la
cunostinta a unor evenimente interne sau externe calculatorului (si eventual a
tratarii situatiei aparute) prin tehnica intreruperii se utilizeaza semnale de
control specifice lansate de la nivelul perifericelor catre microprocesor,
aceste semnale anuntand producerea unor evenimente semnificative (prezenta unor
date disponibile pentru transfer, acorduri de acceptare de catre periferice a
datelor de la procesor, etc...). Practic, prin tehnica intreruperilor,
echipamentele periferice isi anunta prezenta in cadrul sistemului de calcul,
solicitand efectuarea transferurilor.
3. Operatii de I/O efectuate
prin acces direct la memorie:
In acest caz sarcina dialogului cu perifericele
este alocata unor dispozitive speciale (numite controller-e), practic, acestea
degreveaza microprocesorul de intermedierea transferurilor de date permitand
astfel transferul direct al informatiei dintre echipamentele periferice si
memoria sistemului.
Observatie:
Deoarece de regula exista cai de comunicatie
dedicate intre controller-ele cu acces direct la memorie si sistemul de calcul
(DMA – Direct Memory Access) , viteza de transfer a datelor este considerabil
crescuta fata de sistemele anterioare.