Sunteți pe pagina 1din 29

O INTRODUCERE N FILOSOFIA MICROSISTEMELOR

DE CALCUL. TRECUT, PREZENT I VIITOR


SCHEMA BLOC A UNUI MICROSISTEM. ROLUL
BLOCURILOR COMPONENTE, FUNCIONARE DE
ANSAMBLU.
I think its fair to say that personal computers have become the most
empowering tool weve ever created. Theyre tools of communication, theyre tools
of creativity, and they can be shaped by their user.
Bill Gates, February 24, 2004

n tehnologia calculatoarelor s-au realizat progrese incredibile n ultimii 67 de


ani de la apariia primului calculator electronic comercial de success (ENIAC
1946).
n ziua de azi, cu mai puin de 500$ se poate cumpra un calculator mai
performant, cu mai mult memorie principal (intern) i cu dispozitive de
stocare (memorie extern) de o capacitate mai mare dect a sistemului de
calcul care n 1985 valora 1 milion de dolari.
Aceast mbuntire rapid s-a datorat att progreselor pe linie tehnologic
(vezi Legea lui Moore) ct i inovaiilor arhitecturale n proiectare.

Creterea performanei procesoarelor de la sfritul anilor 1970


Computer Science and Automation Control
Adrian FLOREA

Cronologie privind creterea performanei microprocesoarelor:


1978 1986 creterea performanei procesoarelor relativ la sistemul VAX
11/780 a fost de aprox. 25%/pe an, n mare parte datorat progreselor
tehnologice
1986 2003 creterea relativ a performanei a fost de 52%/pe an i s-a
datorat n principal inovaiilor arhitecturale i ideilor de organizare /
proiectare (cercetorii susin c cca. 65% din aceast cretere se datoreaz
mbuntirilor arhitecturale i doar cca. 35% celor de natur
tehnologic).
ncepnd cu anul 2003, creterea densitii de putere consumat / cm2 n cip,
limitrii paralelismului la nivelul instruciunii, i creterea decalajului de vitez
dintre procesor i sistemul ierarhic de memorie
(Power Wall + Memory Wall + ILP Wall = Brick Wall)
au ncetinit performana sistemelor uniprocesor la cel mult 22%/pe an
conducnd la apariia procesoarelor multicore (cu mai multe nuclee pe acelai
cip).
Uniprocessor performance now 2X / 5(?) yrs
Sea change in chip design: multiple cores: (2X processors per chip / ~ 2 years)
More simpler processors are more power efficient
Calculatoarele personale sunt cele mai populare i sunt destinate utilizatorilor celor mai
obinuii, toate categoriile profesionale. La nivelul anului 2000 s-au produs cca. 150 milioane de
desktop-uri. Exemple: Intel Pentium 4, AMD Athlon XP.

Computer Science and Automation Control


Adrian FLOREA

100.8 milioane de PC vndute n prima jumtate a anului 2005 (cretere cu 10.5% faa
de 2004). Perhaps 200 million desktop computers were sold in 2005.
14.2 milioane de PC vndute n Japonia n 2006 (cu 3.3% mai puine dect n 2005)
61.1 milioane de PC vndute n sfertul al doilea Q2 (aprilie-iunie) a anului 2007.
Estimarea la nivelul anului 2007 era de 255.7 milioane de PC vndute.
350 milioane de PC vndute n anul 2010.
Numrul utilizatorilor n 2003 era de 670 milioane de PC, iar tendina pentru anul 2010
era de 1 miliard de utilizatori.
Serverele sunt destinate s ofere servicii tot mai sofisticate de reea, inclusiv ca noduri de
Internet. Serverele absorb cca. 4 milioane de microprocesoare pe an (2000). Vnzrile la nivel
global de servere n primul sfert al anului 2007 (Q1) au fost de 2.1 milioane (cretere cu 6%
faa de 2006).
o Perhaps 10 million servers were sold in 2005.
o 20 milioane de servere vndute n anul 2010.
o Aplicabilitate:
- n domeniul comercial: Database, transaction processing, search engines. Exemple:
Sun Fire 15K, IBM p690, Google Cluster.
- n domeniul tiinific: calcul ADN (1994), prognoze meteorologice, analiza seismica,
climaterica la nivel global, Bioinformatic, calcule i simulri diferite necesare
domeniului militar, sisteme radar si sonar, sisteme control trafic feroviar si aviatic,
modelarea rezervoarelor de petrol. Exemple: IBM DeepBlue, IBM CELL BEA1,
BlueGene, Cray T3E.
o Caracteristicile lor cele mai importante se focalizeaz pe:
- Vitez de procesare: the overall performance of the serverin terms of transactions per
minute or web pages served per secondis what is crucial.
- Fiabilitate (probabilitatea ca, n condiii de mediu specificate, obiectul s funcioneze
adecvat, meninndu-i parametrii prestabilii n intervalul de timp): Server downtime
could cost a brokerage company more than $6,450,000 / hour.
- Disponibilitate: Consider the servers running Yahoo!, taking orders for Cisco, or
running auctions (licitaii) on EBay. Obviously such systems must be operating seven
days a week, 24 hours a day. Failure of such a server system is far more catastrophic
than failure of a single desktop.
- Scalabilitate: abilitatea de a mri corespunztor capacitatea (puterea) de calcul, memoria
intern / extern i numrul de porturi de I/O (perifericele ce pot fi ataate unui server).

MareNostrum Blade centers has 31 racks dedicated to calculate. These racks have a total of 10240 processors
PowerPC 970 with a frequency of 2,3 GHz and 20TB of total memory. Each rack is formed by 6 Blade Centers. In total,
each rack has a total of 336 processors and 672 Gb of memory. Each one has a rough peak performance of 3.1 Tflops.
Computer Science and Automation Control
Adrian FLOREA

Sistemele dedicate (Embedded Systems) au dezvoltarea cea mai dinamic, s-au produs cca.
300 milioane (2001) respectiv 3 miliarde (2005) de astfel de sisteme pe an. Ele acoper
aplicaiile cele mai frecvente (aparate foto i camere video, comand aparate electrocasnice,
telefoane mobile, imprimante, comenzi auto, jocuri electronice, switch-uri pentru reele etc.) i
au costuri cuprinse ntre 10$ i 100.000$. Multe dintre aceste sisteme au softurile scrise de
productor avnd un grad de programabilitate relativ redus. Performana se focalizeaz pe
ndeplinirea cerinelor de timp real ale aplicaiei. Au consumuri reduse de putere i
memorii de capaciti relativ reduse. Aceste sisteme sunt / vor fi integrate practic n toate
dispozitivele folosite de om i interconectate prin reeaua global de tip Internet, conducnd la
conceptul de calculator omniprezent (ubiquitous computing). According to Sun Microsystems
[Gos07], there were more than 5 billion java enabled devices (desktops, phones, cards, settop
boxes, etc), from among 2.1 billions are phone handsets or PDA.
A number of standard communication and data exchange protocols had been
developed and refined through widespread deployment (6 June 2012 - World IPv62 Launch
Unites Industry Leaders to Redefine the Global Internet).
Digital telephony was firmly established, and many people were carrying lightweight,
network-connected computers in the form of mobile phones.

Today, MIPS Technologies powers some of the world's most popular products
for the digital entertainment, home networking, wireless, and portable media
markets-including broadband devices from Linksys, DTVs and digital consumer
devices from Sony, DVD recordable devices from Pioneer, digital set-top boxes
from Motorola, network routers from Cisco, 32-bit microcontrollers from
Microchip Technology and laser printers from Hewlett-Packard.

Dispozitive mobile cu caracter personal / multimedia (PMD telefoane celulare, tablete de


tip IPad)
o 1.8 miliarde de PMD (90% fiind telefoane mobile) s-au vndut n anul 2010.

Sistemele dedicate i aplicaiile software specifice lor au nceput s domine modul de interaciune
dintre om i calculator (sistem de calcul) n viaa de zi cu zi. Computers are no longer isolated entities
2

Protocol de nivel internet TCP/IP (respectiv nivel reea din Modelul OSI)
Computer Science and Automation Control
Adrian FLOREA

sitting on our desks. Instead, they are nicely woven and integrated into our everyday lives via the gadgets we
directly or indirectly usemobile phones, washing machines, microwaves, automotive control, and flight control.
Indeed, embedded systems are so pervasive, that they perform the bulk of the computation today - putting forward
embedded computing as a new paradigm to study. Not all embedded systems are safety-critical. On one hand,
there are the safetycritical embedded systems such as automobiles, transportation (train) control, flight control,
nuclear power plants, and medical devices. On the other hand, there are the more vanilla, or less safety-critical,
embedded systems such as mobile phones, HDTV, controllers for household devices (such as washing machines,
microwaves, and air conditioners), smart shirts, and so on. Irrespective of whether an embedded system is safetycritical or not, the need for integrating validation into every stage of the design flow is clearly paramount. Of
course, for safety-critical embedded systems, there is need for more stringent validationso much so that formal
analysis methods, which give mathematical guarantees about functionality/timing properties of the system, may be
called for at least in certain stages of the design.

Caracteristici
Preul
sistemului

Preul
unui
microprocesor
component
al
sistemului
Microprocessors
sold per year
(estimates for
2000)
Critical system
design issues

Personal
Desktop
Server
Clusters/warehouse Embedded
mobile devices
- scale computers
(PMD)
$100 $1,000 $300
$5,000
$100,000
$10

$2,500
$10,000,000 $200,000,000
$100,000
(including
network
routers at the
high end)
$10 $100
$50 $500
$200
$50 $250 (per
$0.01 $100
(per
$2,000
processor)
(per
processor)
(per
processor)
processor)
150,000,000 4,000,000
300,000,000
(32-bit and
64-bit
processors
only)
Cost, energy, PriceThroughput, Price-performance,
Price, power
media
performance, availability, throughput, energy consumption,
performance,
energy,
scalability,
proportionality
energy,
3
responsiveness graphics
energy
applicationperformance
specific
performance

Figura 1.0. Un rezumat al principalelor cinci clase de sisteme de calcul i caracteristicile lor

Note the wide range in system price for servers and embedded systems, which go from USB keys
to network routers.. For servers, this range arises from the need for very large-scale multiprocessor
systems for high-end transaction processing and Web server applications. The total number of
embedded processors sold in 2005 is estimated to exceed 3 billion if you include 8-bit and 16-bit
microprocessors.
More than 10 billion embedded processor have been sold in 2008 and more than 10.75 billion in
2009. The total number of embedded processors sold was nearly 19 billion (6.1 billion ARMtechnology based chips were shipped in 2010).
3

receptivitate
Computer Science and Automation Control
Adrian FLOREA

nelegerea tendinelor tehnologice i a celor arhitecturale.


Prin arhitectura unui microprocesor se nelege nu numai setul de instruciuni i modurile de
adresare (ISA Instruction Set Arhitecture) ci i structura organizatoric a procesorului, respectiv
implementarea hardware. Arhitectura Setului de Instruciuni (ISA) reprezint interfaa dintre
software (programele de aplicaie / sistem de operare) i hardware-ul care l execut. ISA specific
modul de organizare a memoriei (zon de date statice i dinamice, de cod, de stiv, zon rezervat
nucleului sistemului de operare), setul de regitri, setul de instruciuni, formatul instruciunii,
tipurile de date utilizate i modurile de adresare (mecanismul prin care calculatorul / procesorul
localizeaz operanzii).
Tendine tehnologice:
n cazul microprocesoarelor, gradul de integrare al tranzistorilor pe cip crete cu cca. 55% pe
an, dimensiunea tehnologiei reducndu-se de la 10 microni (1971) la 0,18 microni (2001),
respectiv 0,032m n 2008. Frecvena ceasului crete si ea cu cca. 50% pe an. Corelaie
tehnologie de integrare numr de tranzistori integrai frecvena procesor (vezi
tabelul Procesorul Intel tendine tehnologice 19712008).
Din punct de vedere al complexitii microprocesoarelor se poate spune c numrul
tranzistorilor integrai ntr-un cip se dubleaz la fiecare 18 luni. Afirmaia aparine lui Gordon
Moore i dateaz de la mijlocul anilor 60. Dup cum se poate observa din urmtorul tabel afirmaia
este pe deplin justificat de implementrile comerciale.

Computer Science and Automation Control


Adrian FLOREA

Anul lansrii pe
pia

Denumire
procesor

Numr de
tranzistori
ncorporai /
Tehnologia
de integrare

Frecvena
procesorului

Magistrala de date

1971
1972
1974
1978

Intel 4004
Intel 8008
Intel 8080
Intel 8086 /
8088

2300 / 10m
3500 / 10m
6000 / 6m
29000 / 3m

108KHz
200KHz
2MHz
4.77-10MHz

1982

Intel 80286

12.5-20MHz

1985

Intel
80386DX
Intel
80486DX

134000 /
1.5m
275,000 /
1m
1200000 /
0.8m

4-bii
8-bii
8-bii
16-bii. Implementat n
primul calculator
personal IBM.
16-bii

33MHz

32-bii

25-100MHz

3100000/
0.5m
5500000 /
0.35m
7500000 /
0.35m
28000000 /
0.18m
42000000 /
0.18m

60-133MHz

32-bii. Primul procesor


care ncorporeaz o
memorie de tip cache.
32-bii

200MHz

32-bii

233-333MHz

32-bii

733MHz1.2GHz
1.6GHz

32-bii

1989
1993

Intel Pentium

1995

Intel Pentium
Pro
Intel Pentium
II
Intel Pentium
III
Intel Pentium
4 ver.
Northwood
Intel Pentium
4 ver.
Northwood
Hyperthread
Intel Pentium
4 ver. Extrem
Edition
Hyperthread
Intel Core2
Penryn

1997
2000
2001
2003

2004

The second half


of 2007

Tukwila is
targeted for
production
towards the end
of 2008.

Intel

Itanium
Tukwil
a
/

Intel
Core
i7980X
deskto
p
proces
sor

55000000 /
0.13m

2 3.4GHz

32-bii (din 2000 apare


versiunea Itanium pe 64
de bii)
32-bii

178000000 /
0.09m

2.8 3.4GHz

32-bii

400.000.000
dual-core
800.000.000
quad-core
0.045m
2mld /
0.032m

3.4 4GHz

32-64 de bii

4GHz

32-64 de bii

6 cores

Computer Science and Automation Control


Adrian FLOREA

Extre
me
Editio
n
Tabelul 1.1 Procesorul Intel tendine tehnologice

Cum sunt ntrebuinai aceti tranzistori?


Mai mult funcionalitate pe un singur cip
nceputurile anilor 1980 microprocesoare pe 32 de bii ( paralelismul la nivel de date)
Sfritul anilor 1980 Integrarea cache-urilor de nivel 1 n cipul de microprocesor
nceputul i mijlocul anilor 1990 microprocesoare pe 64 de bii, superscalare (ILP)
Sfritul anilor 1990 Integrarea i a cache-urilor de nivel 2 n cipul de microprocesor
nceputul i mijlocul anilor 2000 Mai multe nuclee de procesare pe acelai cip,
Integrarea cache-urilor de nivel 3 n cipul de microprocesor
Ce va urma?
Ct de mult cache se va putea integra ntr-un singur cip ? Memorii inteligente (procesoare
cu rol de memorie) IRAM
Cte nuclee de procesare se vor putea integra ntr-un singur cip ? procesoare Piranha, etc

Ce s-ar mai putea integra pe cip ?

In 2020 such a CMP would contain 625 cores, and when running on the maximum possible
frequency of 73 GHz would consume 7 kW, while the power budget is predicted to be 198 W.
Can soon put more transistors on a chip than can afford to turn on! - D. Patterson 2007
Nuclear Reactor 200W/cm2
Rocket Nozzle 1000W/cm2
Primele microprocesoare consumau zeci de watts n timp ce un Intel Pentium 4 Extreme Edition
la 3.2 GHz consum 135 watts Pd C Vdd2 a f .
Dac f Pd densitatea de putere din chip (sute de W/cm2) disipatie termic
foarte mare (>>83C fierbe Siliciul) scade durata de via P cresterea frecventei de
tact nu mai este posibil, perfomana putnd crete doar prin inovaii arhitecturale.

Computer Science and Automation Control


Adrian FLOREA

n cazul memoriilor DRAM, densitatea de integrare crete cu 40-60 % pe an, n timp ce timpul
de acces aferent scade cu 33% pe decad. TaccesDRAM = 540ns (2008) vezi referine mai jos n
document la calculul timpului de execuie al unei instruciuni.

Variaia n timp a ratei de mbuntire a capacitii memoriei principale DRAM [Hen11]

n cazul memoriilor Flash, densitatea de integrare crete cu 50-60 % pe an


o ntre 15-20 de ori mai ieftin preul per bit memorat dect n cazul memorie DRAM
n ultima perioada (> 2010) densitatea informaiei scrise pe hard-disc-uri crete cu cca. 40% pe
an, n timp ce timpul de acces aferent scade cu cca. 33% pe decad. Anterior s-au atins i rate de
cretere de 100%.
o ntre 15-25 de ori mai ieftin preul per bit memorat dect n cazul memoriei Flash
o ntre 300-500 de ori mai ieftin preul per bit memorat dect n cazul memorie DRAM
Costurile scad simitor n timp (la aceeai putere de calcul ori capacitate de memorare).
Tendine arhitecturale :
Exploatarea paralelismului la nivelul instruciunilor i firelor de execuie, att prin tehnici
statice (soft), ct i dinamice (hard) sau chiar hibride (cazul arhitecturii IA-64, procesorul Intel
Ithanium)

Computer Science and Automation Control


Adrian FLOREA

Ierarhizare a sistemului de memorie, prin utilizarea unor arhitecturi evoluate de memorie tip
cache
Reducerea latenei cii critice de program, inclusiv prin tehnici de reutilizare dinamic a
instruciunilor i predicie a valorilor instruciunilor
Utilizarea multiprocesoarelor (shared memory), n cadrul arhitecturilor serverelor i staiilor
grafice. Dezvoltare a sistemelor distribuite de procesare a informaiei (message passing)
Since 2002, processor performance improvement has dropped to about 20% per year due
to the triple hurdles of maximum power dissipation of air-cooled chips, little instructionlevel parallelism left to exploit efficiently, and almost unchanged memory latency. Indeed,
in 2004 Intel canceled its high-performance uniprocessor projects and joined IBM and Sun in
declaring that the road to higher performance would be via multiple processors per chip rather
than via faster uniprocessors. Whereas the compiler and hardware conspire to exploit ILP
implicitly without the programmer's attention, TLP and DLP are explicitly parallel, requiring
the programmer to write parallel code to gain performance.
Complexitatea din ce in ce mai greu de testat/stapanit (2Mld tranz) a condus la apariia inclusiv
pe pia a arhitecturilor cu mai multe procesoare integrate pe aceeai pastil de Si. Pot fi
procesoare identice (Intel Core 2 Duo, Intel, AMD dual/quad/six core) sau diferite (IBM Cell
9 procesoare: 1 de uz general+8 specializate) dar neexploatate nc eficient.
Cell BE is the best high-performance embedded processor of 2005 because of its innovative
design and future potential.
Cell could power hundreds of new apps, create a new videoprocessing industry and fuel a
multibillion-dollar build out of tech hardware over ten years. Forbes
It was originally conceived as the microprocessor to power Sony's but it is expected to find a
home in lots of other broadbandconnected consumer items and in servers too. -- IEEE
Spectrum
Tratarea complexitii microarhitecturale prin Abstractizare
Ca i architect de microprocesoare scopul principal l constituie realizarea unor
compromisuri ntre urmtoarele: Performan de procesare, Putere disipat, Arie de
integrare, Complexitate, Suportul oferit aplicaiei, Funcionalitate, Compatibilitate ntre
modele aparinnd aceleai clase, Fiabilitate, etc.

Tendine tehnologice i la nivelul aplicaiilor software dezvoltate. Cum vor fi implementate


noile arhitecturi pentru a respecta sus-amintitele compromisuri ?
-

bazndu-ne pe Abstractizare i focalizarea pe urmtoarele metricile: Performan de


procesare, Cost, Putere disipat, Disponibilitate

Computer Science and Automation Control


Adrian FLOREA

Figura 1.1. Schema bloc a unui microsistem (Microprocesor, amplificatoare de magistrale,


magistrale de adrese, date comenzi i stri, module memorie ROM i RAM, porturi I/O
lente, porturi I/O rapide interfee DMA, program incarcator - POST, programe BIOS)

Microprocesorul (CPU - central processing unit) este elementul central al structurii,


responsabil cu:
aducerea din memorie, decodificarea i execuia instruciunilor main, codificate binar. n
conformitate cu aceste instruciuni, microprocesorul genereaz secveniat toate semnalele
(adrese, date, comenzi) necesare memoriilor i interfeelor pe care le gestioneaz.
Dispune de o memorie proprie, foarte mic i foarte rapid (Regitri 32, 64 de uz general,
PC, SP, RA, de stare / flaguri).
Conine uniti de execuie, o unitate de comand cablat sau microprogramat, bus-uri
interne de interconectare etc. n general este integrat pe un singur circuit. n sfera
comercial, primul microprocesor, pe doar 4 bii (bus date), instruciuni pe 8 bi i i un
bus de adrese pe 12 bii, s-a realizat n anul 1971 la compania Intel i a fost proiectat de
ctre inginerul Tedd Hoff. S-a numit Intel 4004. (n domeniul militar existau pare-se mai
demult asemenea circuite integrate complexe; spre ex. n comanda avioanelor militare
americane F14A a existat un microsistem pe 20 de bii, cu procesare pipeline a
instruciunilor v. http://www.microcomputerhistory.com/).
Execut:
o Operaii aritmetice (add/sub/mul/div/deplasri/rotiri)
o Operaii logice (and/or/xor/not)
o Teste de comparaie / salturi condiionate
o Repetat anumite secvene de instruciuni
Comand citirea / scrierea din / n memorie, porturi I/O
Comand trecerea n stare nedeterminat (tristate) a busului de date ntre procesor i
memorie n cazul DMA.
Este caracterizat de vitez mare de procesare

Computer Science and Automation Control


Adrian FLOREA

Ceasul procesorului circuit electronic ce conine un cristal de cuar. Acesta genereaz


impulsuri la intervale regulate stabilindu-se astfel tactul de lucru al procesorului
o f=100 MHz ntr-o secund (1s) sunt generate 100 de milioane de impulsuri de
tact.

Bus (magistral) interconecteaz CPU cu memoria i dispozitivele periferice. Este format


dintr-o mulime de fire paralele prin care sunt transmise adrese, date, semnale de comand i control
(Read / Write, INTerupt Acknowledge), stri ale memoriei sau ale perifericelor (Cereri de
ntrerupere semnalul INT, cereri de transfer DMA, Ready / Busy dac este activ semnific
faptul c Memoria / Dispozitivele de Intrare-iEeire sunt pregtite / sau nu pentru transferul de date
cu CPU). Magistrala reprezint practic un set de reguli i mijloace de a realiza transferul ntrun sistem de calcul. Constituie o cale de a transporta informaii ntre dou dispozitive /
echipamente numite surs i destinaie. Din punct de vedere al dialogului pe magistral (al
coordonrii transferului de informaii) modulele implicate se pot afla ntr-una din urmtoarele
stri:
Master
Slave
Bus-ul de adrese este unidirecional de tip tree state (TS). Prin intermediul acestui bus
microprocesorul pune adresa de acces la memorie sau la porturile I/O (Input/Output). Lumea
extern a microprocesorului este constituit exclusiv din memorie i interfeele de intrare ieire.
Acestea sunt resursele care pot fi accesate (scrise respectiv citite) de ctre microprocesor. Aadar,
acesta nu vede n mod direct perifericele ci doar prin intermediul interfeelor de I/O.
Bus-ul de date este de tip bidirecional TS. Prin intermediul acestui bus microprocesorul
aduce din memorie instruciunea, respectiv citete data (operandul) din memorie sau dintr-un port
de intrare (arhitectura Princeton de memorie):
- La scriere microprocesorul plaseaz pe bus-ul de date rezultatul pe care dorete s-l
scrie n memorie sau ntr-un port de ieire.
- La citire, rezultatul este preluat prin intermediul acestui bus din memorie sau dintr-un
port de intrare.
n ambele cazuri, microprocesorul activeaz adresa respectiv pe bus-ul de adrese mpreun cu
semnalele de comand aferente (Read, Write, Memorie, Interfa etc.) pe bus-ul de comenzi. Pe
bus-ul de stri, dispozitivele slave (memorii, interfee) comunic informaii referitoare la modul
de desfurare al transferului (Ex. semnalul ateapt - Wait, emis spre microprocesor, cu
semnificaia c transferul de date comandat nu este nc ncheiat).
Dispozitivele periferice intermediaz comunicaia calculatorului cu mediul nconjurtor.
Dispozitivele periferice sunt caracterizate de: comportament i respectiv rat de transfer. n ce
privete comportamentul se disting urmtoarele clase:
a) Dispozitive de Intrare tastatur, mouse, scanner, microfon, motion detector (sensor, camer
de luat vederi), interfa de reea, dispozitive biometrice, interfee haptice.
b) Dispozitive de Ieire monitor, imprimant, plotter, difuzor, interfa de reea.
c) Memorii externe cu caracter nevolatil: hard-disk, floppy disk, CD-ROM, CD-RW. Sunt mai
lente dect memoria intern ns sunt mai ieftine per bit memorat.
Referitor la rata de transfer dispozitivele periferice sunt:
a) Dispozitive lente tastatur (100 bytes/sec).

Computer Science and Automation Control


Adrian FLOREA

b) Dispozitive rapide4 disc (30 MB/s), interfa de reea (1 Mb/s - 1 Gb/s).


Referitor la interfaa de programare a dispozitivelor periferice se pun urmtoarele ntrebri:
Q1: Cum sunt identificai regitrii dispozitivelor periferice?
mapai n memorie (memory-mapped) vs. instruciuni speciale.
Q2: Cum este gestionat transferul datelor ntre periferic i CPU din punct de vedere al
apariiei sale n timp?
asincron vs. sincron
Q3: Cine controleaz transferul?
Procesorul (interogare polling) vs. dispozitivul periferic (ntrerupere)
Q4: Tipuri de intreruperi:
Hardware vs. software
Regitri mapai n memorie (memory-mapped) vs. instruciuni speciale (I/O)
Instruciunile speciale:
sunt proiectate n ISA fiecrui procesor asignndu-se un cod de operaie pentru fiecare
ntrerupere
regitrii i codul operaiei sunt codificate n instruciune

Regitri mapai n memorie:


fiecare registru aferent dispozitivelor periferice (tastatur, monitor) are asignat o adres de
memorie (unic). De regul sunt utilizate dou locaii care caracterizeaz starea perifericului i
data transferat spre / dinspre periferic.
transferul datelor este controlat prin intermediul instruciunilor cu referire la memorie (LD/ST)

Gestionarea transferului datelor ntre periferic i CPU din punct de vedere al apariiei sale n
timp
Evenimentele (cererile de ntrerupere) generate de dispozitivele periferice (I/O) apar n general cu o
frecven mult mai mic dect frecvena procesorului (sporadic n timp fa de ceea ce execut
procesorul ciclu de ciclu).
Transferul datelor se realizeaz n mod sincron dac:
datele sunt transmise la un interval de timp fix (vitez de transfer predictibil / cunoscut)
La ora actual dispozitivele USB 3.0 ating rate de transfer de 5 Gbit/s (640MB/s) iar magistralele seriale
bidirecionale de tip PCI-Express 3.0 ating o vitez de transfer de 8 Gbit/s (1GB/s) [EDA11].
De exemplu, a doua generaie de stick-uri Kingston (DataTraveler Ultimate 3.0 G2 USB Flash Drive care
folosete un controller USB 3.0) avnd capaciti de stocare de 16, 32 i 64GB, permit o citire a datelor la o
vitez de pn la 100MB/s i o scriere cu o vitez de cea pn la 70 MB/s.
4

Computer Science and Automation Control


Adrian FLOREA

CPU citete/scrie la fiecare X ciclii de tact processor


Transferul datelor se realizeaz n mod asincron dac:
vitez de transfer nu este predictibil / cunoscut (nu se cunoate exact intervalul de timp pn
la viitorul transfer)
CPU trebuie s se sincronizeze cu dispozitivul periferic pentru a nu pierde date sau pentru a nu
le scrie prea repede (i redundant)
Cine controleaz transferul? Cine determin cnd apare urmtorul transfer de date?
n cazul INTEROGRII (polling) CPU verific permanent starea perifericului pn cnd
procesorul recepioneaz o nou dat sau pn cnd perifericul este disponibil pentru
primirea unei noi date. Are we there yet? Are we there yet? Are we there yet?
n cazul NTRERUPERII perifericul trimite un semnal special spre procesor (cerere de
ntrerupere) cnd perifericul dorete un nou transfer de date.
Prin ntrerupere se nelege oprirea programului n curs de execuie i transferul controlului la o
nou adres de program. La aceast adres se afl rutina de tratare a ntreruperii, dedicat
soluionrii cererii de ntrerupere. Mecanismul de realizare a transferului este de tipul apel funcie /
revenire, astfel nct ultima instruciune din rutina de tratare trebuie s fie una de revenire (return)
care s faciliteze ntoarcerea n programul principal (cel aflat n execuie n momentul apariiei
ntreruperii), n general5 pe prima instruciune de dup cea pe care a aprut ntreruperea.
ntre dou cereri succesive de transfer CPU poate executa propriile sale sarcini (instruciuni
neimplicate n vreun transfer). Wake me when we get there.
Tipuri de ntreruperi:
Din punct de vedere al generrii lor, ntreruperile se clasific n hardware i software.
A. ntreruperile iniiate hardware apar ca rspuns la un semnal extern, fiind de dou tipuri:
mascabile (ele pot fi dezactivate sau activate n mod selectiv, prin setarea sau resetarea
biilor corespunztori din registrul IMR Interrupt Mask Register al interfetei (controlerului
de intrerupere). Sunt mai puin prioritare decat ntreruperile nemascabile. La
microcontrolerul Philips 80C51 validarea sau invalidarea surselor de ntrerupere poate fi
fcut individual prin setarea sau tergerea unui bit n registrul IE din SFR (spatiul
registrilor cu functii speciale). Registrul conine un bit de dezactivare global IE.7, care
ters, poate dezactiva toate sursele de ntrerupere. Un exemplu de intrerupere care poate fi
mascabila este intreruperea de Timer).
nemascabile (sau nedezactivabile)
ntreruperile hardware sunt frecvent folosite n calculul de timp real din sistemele
multitasking (preluarea controlului de ctre procesor n anumite situaii critice. Pentru astfel de
situatii este recomandat ca intreruperile sa fie nemascabile. De ex. intreruperea la scaderea
tensiunii de alimentare ACLOW, apariia unei erori la memorie, o excepie de operare). Cererea
de ntrerupere nemascabil este formulat pe un terminal dedicat numit n general NMI. Are
prioritatea imediat urmtoare cererii DMA (vezi mai jos subcapitolul 1.2.3). Dupa terminarea
instruciunii n curs de desfurare se sare la rutina de deservire aferenta intreruperii
nemascabile care are o localizare prestabilit, definit de fabricant, rspunsul fiind unic
indiferent de perifericul care solicit aceast ntrerupere.
5

n general revenirea din rutina de tratare a ntreruperii se face pe instruciunea imediat urmtoare celei care a cauzat
ntreruperea. Pot ns aprea instruciuni de genul Load Adres care s cauzeze o excepie de tip Page Fault. n aceast
situaie va fi tratat excepia dup care se va relua execuia programului cu aceeai instruciune de acces la memorie
(Load Adresa).
Computer Science and Automation Control
Adrian FLOREA

B. ntreruperile software sunt de regul implementate ca i instruciuni n setul de instruciuni al


fiecrui procesor. Se cunosc dou tipuri de ntreruperi software:
o Excepii, deoarece ntreruperea apare numai dac exist o condiie de eroare, care nu
permite execuia corespunztoare a unei instruciuni (mprire cu zero, depire de
domeniu, etc). Un tip special de excepie l reprezint excepia de depanare, care permite
execuia unui program instruciune cu instruciune (pas cu pas).
o ntreruperi generate la fiecare execuie a instruciunii TRAP n (unde n(0255)).
Din punct de vedere al sincronizrii cu ceasul procesorului, ntreruperile software sunt
evenimente sincrone, reprezentnd rspunsuri ale procesorului la anumite evenimente detectate n
timpul execuiei unei instruciuni, n timp ce ntreruperile hardware sunt evenimente asincrone,
fiind generate de dispozitive externe. ntreruperile software sunt ntotdeauna reproductibile prin
reexecuia programului n aceleai condiii de intrare, n timp ce ntreruperile hardware sunt de
obicei independente de execuia procesului curent.

Memoria intern realizeaz stocarea programelor i datelor necesare acestora, de capacitate mai
mare dect regitrii procesorului dar mai lent dect acetia.
Unitatea de msur elementar a memoriei este bitul (Binary Digit). Definiia bitului:
probabilitatea unui element cu dou stri s ia una dintre ele. Un bit6 este cantitatea de
informaie necesar reducerii la jumatte a incertitudinii. O succesiune de bii din memoria
intern poate corespunde unei instruciuni, unei date reprezentnd valori numerice, text,
diverse coduri (imagini, sunet, text).
Este organizat n diviziuni (locaii sau cuvinte) de o mrime egal cu cea a numrului de
bii ce poate fi procesat simultan de procesor. O locaie de memorie este caracterizat de
adres i de coninut. Un cuvnt de adres pe m bii poate indexa un spaiu de 2 m locaii de
memorie.
Poate fi static sau dinamic caz n care un condensator va reprezenta celula iniial de
memorare, necesitnd rencrcarea sa periodic (regenerare).
Memoria poate fi vzut intr-o prim abordare ca o stiv de locaii binare (cuvinte), fiecare
cuvnt fiind caracterizat de o adres binar unic.

Un computer obinuit stocheaz un bit de informaie n aproximativ 1 milion de atomi. Cercettorii IBM au reuit s
stocheze un bit n doar 12 atomi! Avantaj reducerea dimensiunii circuitelor i propriet i superioare circuitelor din
Siliciu. Dezavantaj: Dezvoltat prin magnetizare (la temperaturi apropiate de 0 absolut), o radiaie (o schimbare de
temperatur) poate transforma un 0 n 1 i invers pierderea informaiei (de exemplu: durata de via a unui disk
magnetic este de 100 de ani, cea a unui stick USB de aproximativ 7-10 ani).
Computer Science and Automation Control
Adrian FLOREA

Figura 1.2. Schem generic de memorie

n general M=8,16,32,64<=> largime bus date microprocesor (microsistem pe M biti)


Memoria este caracterizat prin 2 parametri de baz:
- capacitatea (nr. de locaii pe care le conine)
- latena (timpul de acces) care este o caracteristic intrinsec a circuitului de memorie si
reprezint in principiu timpul scurs din momentul furnizrii adresei de ctre microprocesor pn
in momentul in care memoria a ncheiat operaia comandat (citire sau scriere).
Fireste, se doresc capaciti ct mai mari si latente ct mai mici, cerine n general
contradictorii.

Figura 1.3. Un ciclu (faz) extern de citire din memorie

ntre busul de adrese si memorie exista un decodificator N:2N ca n figur:

Computer Science and Automation Control


Adrian FLOREA

Figura 1.4. Decodificator N:2N (a)

Sel 0 NADR0 * NADR1 * ... * NADR(2 N 1)

Sel (2 N 2) ADR0 * ADR1 * ... * ADR(2 N 2) * NADR(2 N 1)

Sel (2 N 1) ADR0 * ADR1 * ... * ADR(2 N 1)

Cu 10 bii de adrese => 210 cuvinte = 1k cuvnt (kilo)


Cu 20 bii de adrese => 220 cuvinte = 210 k cuvnt = 1M cuvnt (mega)
Cu 30 bii de adrese => 230 cuvinte = 210 M cuvnt = 1G cuvnt (giga)
Cu 40 bii de adrese => 240 cuvinte = 210 G cuvnt = 1T cuvnt (terra)
M = 8 => 1 cuvnt = 1 octet

Figura 1.4. Decodificatorul - reprezentare cu pori logice (b)

n general au n intrri i 2n ieiri. Decodificatorul furnizeaz la o singur ieire 1 iar la restul 0.


Ieirea i va avea valoarea logic 1 dac numrul reprezentat n binar pe intrare este chiar 1.
Funcia decodificatorului este de interpretare a unui pattern de bii. Utilitatea sa se regsete n faza

Computer Science and Automation Control


Adrian FLOREA

de decodificare a instruciunilor (vezi modelul von Neumann) cnd cmpul opcode parte
component a oricrei instruciuni va specifica ce operaie trebuie efectuat (adunare / scdere /
nmulire / mprire / acces la memorie / ramificaie a programului). Decodificatorul este utilizat i
pentru identificarea regitrilor surs / destinaie sau a modurilor de adresare n cazul instruciunilor
cu referire la memorie tot pe baza pattern-urilor de bii din corpul instruciunilor. De asemenea, este
folosit la selecia adreselor de memorie.
Din punct de vedere tehnologic se cunosc urmtoarele tipuri de memorii:
ROM (memorie cu caracter permanent folosit doar n citire). Memorie fix, nevolatil, n
care informaia se pstreaz i dup ntreruperea alimentrii. Circuitele ROM sunt circuite pur
combinaionale, celula de memorie fiind un tranzistor programat sau nu, amplasat la intersecia
unei linii cu a unei coloane, din matricea de memorie. n ele se nscrie softul de baz al unui
sistem de calcul: sistemul de operare, BIOS (rutina de iniializare a sistemului de calcul imediat
dup alimentarea cu energie teste de memorie, verificare periferice). Memoriile ROM pot fi
doar citite nu scrise (scrierea se face o singur dat n momentul fabricrii).
o PROM (programmable ROM) poate fi programat de productor sau utilizator la prima
folosire a dispozitivului.
o UVEPROM (Ultraviolet Erasable PROM) sunt identice cu memoriile PROM cu
deosebirea c ofer posibilitatea de tergere i reprogramare prin expunerea la raze
ultraviolete. Necesit un echipament special pentru programare.
o EEPROM (Electrical Erasable PROM) sunt identice cu memoriile UVEPROM cu
deosebirea c tergerea se face prin aplicarea unor semnale electrice speciale de tensiune
ridicat (30V).
o FLASH ROM este o memorie special de tip EEPROM care poate fi tears sau programat
n timpul funcionrii n circuit (aplicaii cu microcontrollere n care se ncarc un cod obiect
gata de execuie). Odat programat coninutul rmne nemodificat chiar i dup eventuale
anomalii datorate cderii tensiunii de alimentare.
Memoriile EPROM sunt reprogramabile n sensul n care pot fi terse prin expunere la
raze ultraviolete i renscrise pe baza unui dispozitiv special numit programator de EPROM uri.
EPROM-urile pstreaz aa numitul program monitor nscris de ctre fabricant care este primul
program procesat de ctre sistem imediat dup alimentarea (resetarea) sa. Acest lucru este
absolut necesar ntruct coninutul memoriilor RAM este neprecizabil imediat dup alimentare.
Prin urmare, imediat dup RESET coninutul PC-ului este iniializat i va pointa spre prima
instruciune din programul monitor rezident n EPROM. Rolul programului monitor este de a
efectua o testare sumar a microprocesorului i a celorlalte componente ale microsistemului,
dup care va iniia ncrcarea sistemului de operare (Linux, Windows etc.) de pe disc n
memoria RAM. Dup aceasta programul monitor d controlul sistemului de operare rezident
acum n RAM.
RAM (memorie cu acces aleator) - are caracter dinamic volatil. Este o memorie care poate fi
scris sau citit (atta timp ct este alimentat cu energie). Informaia se pierde dup oprirea
alimentrii. Accesul la memorie se permite numai n anumite momente de timp validate de un
semnal de tip acces la memorie (memory request). Exist dou tipuri majore de memorii RAM:
o SRAM (Static RAM) sunt memorii deosebit de rapide, timp de acces de t0 = 1 ns 4 ns
(2008), avnd capacitate de integrare redus (circuite de memorie avnd capaciti ntre
1Mbit i 16Mbii). Mai rapide, mai fiabile dar mai scumpe per unitate de octet memorat.
Uzual sunt folosite la implementarea memoriilor cache. De asemenea, consum mai mult
energie. Folosesc tranzistorii pentru memorarea biilor de informaie (ntre 4 i 6
tranzistori per bit).
o DRAM (Dynamic RAM) lent i necesit regenerare (celula de memorie o reprezint un
condensator care se descarc n timp; memoria DRAM trebuie regenerat la fiecare
Computer Science and Automation Control
Adrian FLOREA

aproximativ 2-8 ms); ieftin per unitate de octet memorat. Memoria principal este de tip
DRAM. Din punct de vedere al evoluiei n timp a memoriilor DRAM se cunosc urmtoarele
etape:
EDO (Extended Data Out RAM) cu 10% pn la 20% mai rapid dect primele memorii
DRAM.
SDRAM (Synchronous DRAM) mai rapide cu aproape 25% dect memoriile EDO
RAM.
DDR sau SDRAM II (Double Data Rate SDRAM) de dou ori mai rapide dect
memoriile SDRAM.
RDRAM (Rambus DRAM) dezvoltate de ctre firma Rambus Inc., sunt de aproape zece
ori mai rapide dect memoriile DRAM.
SLDRAM (Synclink DRAM) este principalul competitor din punct de vedere tehnologic
al memoriilor RDRAM.
NVRAM (nonvolatile RAM FLASH) reine informaiile i n absena alimentrii cu
energie (Avantaj fa de memoriile cache de tip SRAM). Se cunosc dou alternative de
proiectare:
1) cu pori logice fundamentale NOR, utilizat n principal pentru cod deoarece ofer
un timp foarte bun pentru citiri (100ns) i un timp mai puin bun pentru scrieri
(10s), repectiv
2) cu pori logice fundamentale NAND, utilizat n principal pentru date ntruct
ofer un timp echilibrat att pentru citiri ct i pentru scrieri (1s). Referitor
la comparatia cu memoria cache se observ Dezavantajul memoriilor Flash care
realizeaz operaia de scriere ntr-un timp mai ndelungat dect o scriere n
cache. Se cunoate o plaj larg de aplicaii bazate pe acest tip de memorii:
playere MP3, MP4, aparate foto, camere video statice, i probabil n curnd vor
nlocui harddisk-urile.
DRAM: constituie peste 90 % din memoria oricrui sistem de calcul datorit faptului c
ofer densiti mari de integrare (64 Mbii 256 Mbii / chip) i timpi de acces relativ rezonabili
t0=30 ns 60 ns. Totui, decalajul ntre timpul de acces ridicat al acestor memorii i viteza
mare de execuie a microprocesorului, constituie una dintre marile probleme tehnologice i
arhitecturale n ingineria calculatoarelor (MEMORY WALL). Fiind realizate n tehnologie
CMOS puterea absorbit este redus. Din pcate au 2 mari dezavantaje:
1. Accesare ( citire / scriere ) complicat. Circuitele DRAM sunt organizate sub o form
matricial, pe linii i coloane. Bitul ce se dorete a fi accesat se afl la intersecia liniei cu coloana
selectat.
Un circuit DRAM are urmtoarele terminale (pini):

Computer Science and Automation Control


Adrian FLOREA

Figura 1.5. Circuit DRAM

RAS (Row Address Strobe strob adres rnd), CAS (Column Address Strobe strob adres
coloan)

Figura 1.6. Ciclul de citire din DRAM

Pentru o citire corect este necesar ca frontul cztor al lui RAS s strobeze perfect adresa de
rnd (o memoreaz ntr-un registru intern al circuitului) iar frontul cztor al lui CAS s strobeze
perfect adresa de coloan. n momentul memorrii adresei de coloan (cztorul lui CAS) memoria
are toate elementele necesare furnizrii bitului de ieire Dout, dup un timp precizat n catalog (de
cca. 20 ns la memoriile 4164). Rezult deci c interfaa ntre microprocesor i DRAM este
complicat ntruct din semnalele pe care le furnizeaz microprocesorul (adres de memorie i
comand), interfaa trebuie s fabrice protocolul mai sus expus (secvena ADR, RAS, CAS).
2. Necesitatea regenerrii memoriei DRAM.
Bitul de informaie DRAM este implementat sub forma unui condensator. Din pcate
acest condensator se descarc n timp i prin urmare cu timpul poate s piard informaia pe
care o memoreaz => deci c periodic el trebuie rencrcat (refresh, regenerare).
Regenerarea se face pe ntreg rndul din matricea de memorare. Conform catalogului
un anumit rnd ine minte informaia circa 2 ms. Dup acest interval, ntreg rndul trebuie
regenerat. Algoritmul de regenerare va trebui s fie unul de tip secvenial care s regenereze
rnd dup rnd n mod ordonat.
Rezult c rata de regenerare a 2 rnduri succesive i respectiv (i+1) trebuie s se fac la
un interval de maxim 2 ms/N, unde N=nr. de rnduri al circuitului de memorie DRAM.

Computer Science and Automation Control


Adrian FLOREA

De exemplu, considernd N=128 rnduri (DRAM 4116, 4164)


=> rata de regenerare 2 ms/128 ~ 15,6 s.
Prin urmare vom avea accese la DRAM din 2 pri:
din partea procesorului care citete / scrie conform programului pe care l execut
din partea unui automat de regenerare care regenereaz periodic, rnd dup rnd,
memoria DRAM.
Posibilele conflicte la memoria DRAM ntre microprocesor i automatul de regenerare
vor trebui gestionate corespunztor, eventual acceptnd chiar prin blocaje reciproce,
rezultnd scderea performanei. Ar fi util implementarea unei "regenerari transparente"
(care sa nu blocheze deloc procesorul).
Standardizarea bus-urilor i a protocoalelor aferente a condus la conceptul de microsistem de
dezvoltare. ntr-un asemenea microsistem, prin simpla conectare la bus-ul comun (date, adrese,
comenzi, stri) standard a unor noi module compatibile (memorii, interfee) se permite o dezvoltare
n timp a microsistemului iniial.
Cam ct timp dureaz procesarea unei instruciuni ?
Exemplu: instruciunea ADD reg1,(reg2)200, codificat pe un singur cuvnt egal cu lrgimea
de band a interfeei procesor memorie.
reg1 (reg1) + cuv. mem| adr.(reg2)+200

fCLK 2 GHz TCLK

500 ps 0.5 ns

fCLK
Timpul de acces DRAM : TaDRAM 10 ns

Specificaiile legate de timpul de acces la DRAM au fost preluate din urmtoarele dou referine, n
care se consider identic (dar n mod independent unul de cellalt) c TaDRAM=5ns40ns pentru
circuite de memorie avnd capaciti ntre 64 Mbii i 1Gbit.
Nikkei Electronics Asia July 2008 (IBM Develops Ultra-Dense Magnetic Memory,
http://techon.nikkeibp.co.jp/article/HONSHI/20080625/153878/)
Department of Electrical Engineering, Stanford University (Lecture 5 Main Memory Systems:
EE282 Fall2008, http://eeclass.stanford.edu/ee282)
Aceast instruciune se proceseaz, conform modelului secvenial clasic (atribuit marelui
matematician american John von Neumann autorul primului document referitor la un calculator
electronic numeric pe deplin funcional), n faze succesive, dup cum urmeaz:
Faza IF (instruction fetch): ciclu de citire din memorie de la adresa dat de PC (program
counter) dureaz aproximativ, spre ex., 20 TCLK (conform protocolului unui ciclu mediu de acces la
memorie) = 10 ns.
Faza ID (instruction decode): n aceast faz microprocesorul decodific instruciunea
(nelege ce trebuie s fac n continuare) i ca urmare aduce ntr-un registru temporar intern,
situat la intrarea ALU, operandul din reg1. Decodificarea instruciunii consum uzual 1TCLK=0.5 ns.
Calcul adres memorie a celui de-al doilea operand (reg2) + 200 ADR(BUS) atac
memoria: ~ 1 TCLK=0.5 ns.
Declanare ciclu de aducere a operandului din memorie de la adresa anterior calculat.
Dureaz, ca i IF, ~ 20 TCLK = 10 ns.

Computer Science and Automation Control


Adrian FLOREA

Faza EX: execuia propriu-zis a instruciunii, adunarea celor 2 operanzi, dureaz ~ 1 T CLK =
0.5 ns => timpul de procesare aferent acestei instruciuni T~21.5 ns => nr. de instruciuni pe
secund:~ 46511628 instruciuni (performana 46.5 MIPS) (Pentium I ~ 15 MIPS)
De remarcat faptul c o instruciune se proceseaz sub forma unei nlnuiri de cicli
main (faze). Un ciclu main reprezint o nlnuire de aciuni sincronizate cu un impuls de
tact. Ciclul main este unitatea atomic de procesare, cea care nu poate fi ntrerupt de nici o
cerere extern. CICLUL INSTRUCIUNII (totalitatea fazelor de procesare care compun
instruciunea) este neinteruptibil de ctre cererile de ntrerupere hardware (externe), ns el poate fi
ntrerupt la nivelul unei faze de procesare (la finele acesteia Fetch, Decode, ...) de ctre o cerere
DMA (acces direct la memorie) din partea unui periferic foarte rapid.
Obs.: Utilitatea modurilor de adresare indirecte prin registru i indexate (adresa operand din
memorie = R+index) este dat de facilitatea scrierii compacte a programelor (bucle), adresrii
elegante a unor structuri de date de tip tablou situate n memorie etc. Astfel de structuri de date se
ntlnesc implementate att n cadrul limbajelor de nivel nalt (ex. n limbajul C, stiva de date
asociat unei funcii i care trebuie accesat n vederea transmiterii de parametri respectiv revenire
dintr-un apel) ct i al aplicaiilor scrise n aceste limbaje.
Creterea decalajului dintre viteza procesoarelor i timpul de acces la memorie a impus
introducerea unui sistem ierarhic de memorie (vezi figura 1.7), pentru a nu face simit la
nivelul performanei globale a sistemului ncetineala cu care se acceseaz memoria. Practic, cu
ct capacitatea memoriei crete, cu att crete timpul de acces la memorie i se ieftinete
preul per unitate de octet memorat. Memoria cache este o memorie situat din punct de
vedere logic ntre CPU (unitatea central de procesare) i memoria principal, mai mic, mai
rapid i mai scump (per byte) dect aceasta i gestionat n general prin hardware astfel
nct s existe o ct mai mare probabilitate statistic de gsire a datei accesate de ctre CPU, n
cache. Aadar, cache-ul este adresat de ctre CPU n paralel cu memoria principal (MP): dac data
dorit a fi accesat se gsete n cache, accesul la MP se aborteaz, dac nu, se acceseaz MP cu
penalizrile de timp impuse de latena mai mare a acesteia, relativ ridicat n comparaie cu
frecvena de tact a CPU. Oricum, data accesat din MP se va introduce i n cache.

Figura 1.7. Ierarhizarea memoriei ntr-un sistem de calcul

Computer Science and Automation Control


Adrian FLOREA

Caracteristicile de vitez i capacitate de stocare aferente fiecrui nivel din ierarhia de memorie[Hen12]

Computer Science and Automation Control


Adrian FLOREA

1.2. MODURI DE LUCRU NTRE MICROPROCESOR I


INTERFEELE I/O
1.2.1. MODUL DE LUCRU PRIN INTEROGARE (POLLING)
Se bazeaz pe testarea de ctre microprocesor a unui bit de stare asociat dispozitivului
periferic. Microprocesorul nu va iniializa transferul cu perifericul dect n momentul n care
bitul de stare semnific faptul c perifericul este pregtit pentru transfer (nu lucreaz la un
transfer iniiat anterior). S considerm de exemplu interfaa cu o tastatur. Aceast interfa
trebuie s conin minimum 2 registre.

RBuff va memora un octet care reprezint codul ASCII (Unicode) al tastei apsate de ctre
utilizator.
Exemple:
A = 41h 0100.0001
a = 61h 0110.0001
0 = 30h
= 20h
Bitul Ready din registrul de stare este un bit de tip Read Only cu urmtoarea semnificaie:
dac registrul RBuff se ncarc cu un octet (utilizatorul a apsat o tast) atunci Ready se pune
automat pe 1 artnd microprocesorului c poate s preia codul din RBuff. Bitul Ready se
va reseta automat odat cu preluarea codului din Rbuff de ctre microprocesor. Un program absolut principial - de gestiune a tastaturii s-ar scrie ca mai jos:

Q5: Credei c modul de lucru prin interogare reprezint o bun abordare pentru celelalte
periferice (mai rapide) cum ar fi memoriile externe (disk) sau interfeele de reea?
Dezavantajul acestei metode const n faptul c microprocesorul ateapt un timp T,
neacceptabil de mare la nivelul vitezei sale, pentru a inspecta dac perifericul este sau nu este
pregtit. Considernd c utilizatorul apas o tast la interval de 250 ms i c o instruciune a
microprocesorului dureaz cca. 21.5 ns => c pierde 250 ms / 21.5 ns 11.6 milioane
Computer Science and Automation Control
Adrian FLOREA

instruciuni n bucla de ateptare n loc s execute instruciuni utile. Acest dezavantaj este
eliminat de metoda urmtoare de comunicare procesor-interfa.

1.2.2. MODUL DE LUCRU PRIN NTRERUPERI HARDWARE (MASCABILE)


Se bazeaz pe generarea unui semnal de ntrerupere INT de la interfa (port) spre
microprocesor ori de cte ori acesta dorete un serviciu de la microprocesor. Ca urmare a
recepionrii semnalului INT microprocesorul va abandona programul principal (PP)
urmnd s intre intr-o aa numit rutin tratare a ntreruperii n care va satisface cererea
interfeei. La finele rutinei de tratare a ntreruperii printr-o instruciune de tip RETURN,
microprocesorul va reveni in PP, in general dar nu ntotdeauna, pe instruciunea imediat
urmtoare ultimei instruciuni din PP executate. In cazul exemplului cu tastatura anterior
considerat, interfaa va genera ntreruperea INT ori de cte ori utilizatorul a apsat o tast, adic
registrul RBuff este plin, deci conine codul (ASCII, Unicode etc.) al caracterului tastat.

Figura 1.8. Modelul de lucru prin ntreruperi

Aadar RTI dup ce execut serviciul necesar perifericului (n cazul acesta preluare i
depozitare caracter n memorie) revine n PP, unde pn cnd perifericul cere un nou serviciu (de
ex. se apas din nou o tast), microprocesorul va executa instruciuni utile din PP (sistem de
operare, program utilizator etc.) si deci nu mai este necesar s mai atepte inutil ca in cazul 1.
Totalitatea aciunilor executate de ctre microprocesor din momentul apariiei
semnalului de ntrerupere INT pn n momentul procesrii primei instruciuni din RTI
formeaz aa numitul protocol hardware de acceptare a ntreruperii (sgeile 1 i 3 din figur).
n principiu acest protocol se desfoar n urmtoarele etape succesive:
1.) Odat sesizat ntreruperea INT de ctre microprocesor acesta i va termina instruciunea
in curs de execuie dup care, dac anumite condiii sunt ndeplinite (nu exist activat o cerere de
ntrerupere sau de bus mai prioritare etc.), va trece la pasul 2. n general, microprocesoarele
examineaz activarea ntreruperilor la finele ultimului ciclu aferent instruciunii n curs de
execuie.
2.) Recunoaterea ntreruperii: microprocesorul va iniializa aa numitul ciclu de achitare a
ntreruperii. Pe parcursul acestui ciclu extern va genera un semnal de rspuns (achitare) a
ntreruperii INTACK (interrupt acknowledge) spre toate interfeele de intrare - ieire. Ca urmare a
recepionrii INTACK interfaa care a ntrerupt va furniza microprocesorului prin intermediul busului de date un aa numit octet vector de ntrerupere (VI). Acest VI este diferit pentru fiecare
periferic n parte, individualizndu-l deci ntr-un mod unic. Pe baza acestui VI i conform unui
algoritm care difer de la microprocesor la microprocesor, acesta va determina adresa de nceput a

Computer Science and Automation Control


Adrian FLOREA

RTI, adres ce va urma s o introduc in PC. Firete, la VI diferii vor corespunde adrese de nceput
diferite.
3.) Microprocesorul va salva ntr-o zon special de program numit memorie stiv, PC-ul
aferent instruciunii imediat urmtoare instruciunii executate de ctre microprocesor din PP
(PCrev), pentru a putea ti la finele RTI unde s revin exact n PP.
Memoria stiv este o zon de memorie RAM caracterizat la un moment dat de aa numitul
vrf al stivei adic de ultima locaie ocupat din stiv.
Acest vrf al stivei este pointat (adresat) permanent de coninutul unui registru special
dedicat, existent n orice microprocesor modern, numit SP (stack pointer).
n memoria stiv sunt posibile 2 tipuri de operaii:
operaia PUSH Reg care se desfoar astfel:
operaia POP Reg:

SP (SP) (cuvnt octet )

(Reg) Mem | adr. SP

(Reg) Mem | adr. SP

SP (SP)

Figura 1.9. Modul de lucru al stivei la microprocesorul MIPS


Stiva este o memorie de tip LIFO (last in first out) si care spre deosebire de PC n procesarea
secvenial, "crete" (PUSH) de obicei nspre adrese descresctoare evitndu-se astfel suprapunerea
zonelor de program (cod) cu cele de stiva.
4.) Intrarea n RTI se face simplu prin introducerea adresei de nceput a RTI calculat in pasul
2, in registrul PC. Normal n continuare microprocesorul va aduce i executa prima instruciune din
RTI protocolul de tratare fiind n acest moment ncheiat i controlul fiind preluat de RTI a
perifericului care a fost ntrerupt.
Dup cum s-a observat protocolul de tratare salveaz in stiva doar PC-ul de revenire (la
anumite microprocesoare se mai salveaz registrul de stri - flags). Acest fapt se poate dovedi
insuficient avnd n vedere c in cadrul RTI pot fi alterai anumii regitri interni ai
microprocesorului. Aceast alterare a regitrilor poate fi chiar catastrofal la revenirea n PP. Din
acest motiv cade in sarcina celui care scrie RTI s salveze (instruciuni PUSH) respectiv s
returneze corespunztor (instruciuni POP) aceti regitri.

Computer Science and Automation Control


Adrian FLOREA

Figura 1.10. Efectul RTI asupra stivei

Aciunea instruciunii RETURN este echivalent cu o operaie de tip POP PC.

a)PC Mem | adrSP


RET :
b)SP SP 1

Acum devine evident de ce instruciunea RETURN implementeaz revenirea n PP pe


instruciunea imediat urmtoare celei ntrerupte.
Obs.: Prin mecanismul de stiv se pot gestiona perfect i ntreruperile de tip imbricat
(apariia unei ntreruperi INT n chiar rutina de tratare a altei ntreruperi, cnd este permis).

1.2.3. MODUL DE LUCRU PRIN TRANSFER DMA (DIRECT MEMORY ACCESS)


Exist dispozitive periferice a cror rat de transfer (octei /secund) este att de
ridicat nct, din motive de timing, face imposibil modul de lucru prin ntreruperi. Astfel de
exemplu discurile magnetice i interfeele video, impun rate de transfer de 20-40 MBytes /s
rezultnd 1 octet la aproximativ 50 ns pn la 25 ns. Este evident c, fr un buffer FIFO (First
In First Out) ntre periferic i memorie, transferul prin ntreruperi este imposibil n acest caz
ntruct rata de transfer este comparabil (chiar mai rapid!) cu durata unei instruciuni a
microprocesorului. Aadar, n aceste cazuri durata RTI ar fi mult mai mare dect rata de
transfer a perifericului (octei per secund). Un monitor video este un alt periferic rapid de vreme
ce, pe durata unei curse directe a baleiajului pe orizontal a spotului de cteva zeci de
microsecunde, trebuie afiate zeci sau chiar sute de octei (caractere). De aceea n aceste cazuri se
impune un transfer direct ntre memorie i dispozitivul periferic.
Cererea DMA este luat n calcul de procesor la finele unui ciclu main (Fetch, Decode
sau altul aflat n execuie).

Figura 1.11. Modul de lucru prin transfer DMA

Atunci cnd se dorete prin program transferul unor octei din memorie pe disc sau citirea
de pe disc n memorie microprocesorul va scrie n interfaa DMA aferent (prin instruciuni de
tip OUT succesive) urmtoarele informaii:
- adresa de nceput de pe disc (nr. cilindru, nr. cap, nr. sector). Header reprezint adresa de
nceput sector, deci un identificator al sectorului care se scrie la formatarea fizic a discului

Computer Science and Automation Control


Adrian FLOREA

Figura 1.12. Structura discului magnetic

- adresa de nceput a zonei de memorie (RAM) utilizat n transfer


- nr. octei (sectoare) care trebuiesc transferate
- sens transfer (Write sau Read pe / de pe disc)
n urma recepionrii acestor informaii interfaa DMA va activa un semnal numit cerere
de bus (HOLD) spre microprocesor. Ca urmare a recepionrii semnalului HOLD, la finele
ciclului main n curs microprocesorul i va pune bus-urile de adrese date i comenzi in TS
permind astfel controlul acestora de ctre DMA (EN1=1, microprocesor master pe bus,
EN2=1, DMA master pe bus).

Simultan microprocesorul va activa semnalul de rspuns la HOLD numit semnal de


achitare a cererii (HLDA). Ca urmare a recepionrii achitrii HLDA (Hold Acknowledge), DMAul va starta transferul efectiv ntre disc i memorie avnd toate informaiile necesare pentru
aceasta. Spre exemplu, dac s-a comandat citire de pe disc (scriere n memorie) DMA-ul va adresa
memoria pe bus-ul de adrese simultan cu punerea pe bus-ul de date a cuvntului (octetului) scris n
memorie. La finele transferului DMA interfaa va dezactiva semnalul HOLD, ca urmare
microprocesorul, dezactivnd i el semnalul HLDA, i va continua activitatea ntrerupt prin
procesarea urmtorului ciclu main. O cerere de bus (HOLD) este prioritar fa de o cerere
de ntrerupere (INT).
De remarcat c diferena de principiu ntre transferurile prin interogare - ntreruperi i
respectiv transferul DMA const n faptul c n cazul primelor dou transferul se face
programat, prin intermediul microprocesorului care servete perifericul n cadrul rutinei de
tratare, pe cnd n cazul DMA se face fr intervenia microprocesorului, direct ntre
memorie i interfaa DMA. Pe timpul HLDA=1, microprocesorul i ntrerupe orice activitate
extern, master pe bus fiind DMA-ul. Un sistem de calcul cu DMA este un arhetip al sistemelor
multiprocesor.

Computer Science and Automation Control


Adrian FLOREA

Figura 1.13. Cronograma unui transfer DMA

Modul de lucru prin transfer DMA apare n cadrul procesorului de tip multicore IBM-CELL
(compus dintr-un element puternic de procesare PowerPC pe 64 de bii i 8 procesoare specializate
SIMD single instruction multiple data). Procesoarele SIMD acceseaz memoria comun i
partajat de ctre toate cele 9 nuclee de procesare prin comenzi DMA asincrone. Prin DMA se
transfer date i instruciuni ntre memoria comun i memoriile locale (private fiecrui procesor
SIMD). Scopul este de a exploata paralelismul de calcul din sistemul multicore, avnd n vedere c
timpul petrecut cu setarea parametrilor transferului DMA este incomparabil mai mic dect
memory wall-ul dintr-un sistem monocore. n cadrul sistemelor multicore sau multiprocesor,
singurele instruciuni care nu pot fi ntrerupte de o cerere DMA sunt instruciunile atomice
(read/modify/write) care ajut la pstrarea coerenei i consistenei datelor din memoria partajat.
Bibliografie
[EDA11]
http://eda360insider.wordpress.com/2011/12/06/fast-serial-io-whats-its-future-in-theembedded-world/
[Hen07] Hennessey J., Patterson D. Elsevier, Computer Architecture: A Quantitative Approach,
fourth edition, Elsevier, 2007.
[Hen11] Hennessey J., Patterson D. Elsevier, Computer Architecture: A Quantitative Approach, fifth
edition, Elsevier, 2011.

Computer Science and Automation Control


Adrian FLOREA

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