Documente Academic
Documente Profesional
Documente Cultură
1|Page
Arhitectura sistemelor de calcul – Recapitulare
2|Page
Arhitectura sistemelor de calcul – Recapitulare
3|Page
Arhitectura sistemelor de calcul – Recapitulare
4|Page
Arhitectura sistemelor de calcul – Recapitulare
5|Page
Arhitectura sistemelor de calcul – Recapitulare
6|Page
Arhitectura sistemelor de calcul – Recapitulare
7|Page
Arhitectura sistemelor de calcul – Recapitulare
Ciclul mașină
Fetch
Store Increment
Execute Decode
Load
8|Page
Arhitectura sistemelor de calcul – Recapitulare
Operații aritmetico-logice:
❖ Logice
• CMP – compare [<,=,>],
• AND, OR, XOR,
• RL/RR – Rotate left/right cu/fără carry,
• CM -complement
o între doi regiștrii A, Rx sau
o un reg. A și o val de la adresa de memorie
o sau un reg. A și o val. byte;
❖ Aritmetice
• ADD – adunare cu/fără carry,
• SUB – scădere,
• INC – incrementare,
• DEC – decrementare
❖ Instrucțiuni transfer date:
• dintr-un registru in altul
• într-un registru o valoare de la o adresa memorie sau
• într-un registru o valoare (1,2 bytes) din memorie
• IN – citire valoare byte de la un periferic (adresa)
• OUT – scriere valoare byte la un periferic (adresa)
• PUSH – salvare regiștrii in stiva
• POP – restaurare regiștrii din stiva
❖ Instrucțiuni salt:
• JMP – salt necondiționat
• JC,JNC,JZ,... – salt condiționat de valoarea unui flag
(in urma rezultatului unei operații ALU)
• CALL – apel subrutina necondiționat
• CC,CNC,CZ,... – apel subrutina condiționată de un flag
• RET – reîntoarcere necondiționată din subrutină
9|Page
Arhitectura sistemelor de calcul – Recapitulare
Fetch
Execute Decode
10 | P a g e
Arhitectura sistemelor de calcul – Recapitulare
Memoria cache
Este un tip de memorie relativ mică, dar mai rapidă pentru stocarea temporară a
datelor în mod transparent pentru utilizator.
Cache este de tip SRAM (~6 tranzistori per bit), mai rapidă decât RAM (și mai mică),
dar mai lentă decât regiștrii (mai mare decât aceștia). Este un tip de memorie
scumpă/capacitate, la fel ca regiștrii.
Folosește diverse nivele ale ierarhiei memoriei și principiul localității datelor.
Memoria cache se împarte pe mai multe nivele:
▪ L1 – separate pentru date și instrucțiuni (L1D+L1I);
▪ L2 – unificat date și instrucțiuni;
▪ L3 – partajată cu alte core-uri;
▪ L4 (posibil la i7-5775G) – separată pe cip.
Dacă sunt prea multe nivele scade latența.
Funcționarea memoriei
Procesorul în sine lucrează cu regiștrii și cache, implicit datele ce sunt pe hard trebuie
aduse cumva pentru a fii interpretate și procesate. Astfel, toată informația ce afirmă ca
fiind stocată pe dispozitiv de memorie secundară (HDD, SSD etc.) sau terțiară (flash,
floppy, CD, m-tape etc.) trebuie adusă (parțial, doar ce se cere + bloc adiacent) în RAM, de
unde iar se transferă (tot parțial, doar ce se cere + bloc adiacent) în cache, de unde poate fi
preluată prin comenzi de regiștrii și efectuate operațiile necesare.
Când se cere o anumită informație din memorie, aceasta este căutată mai întâi în cache.
Dacă:
▪ Informația există în cache → cache hit (este folosită rapid, latență infimă);
▪ Informația nu se află în cache → cache miss (datele trebuie aduse, latența crește).
Cache miss: trebuie aduse datele din RAM, puse în cache (trebuie eliberată zona de
memorie, verificat dacă ce era deja trebuie rescris în memorie), iar apoi anunțat
procesorul că informația pledează a exista în cache.
𝑛𝑜. ℎ𝑖𝑡𝑠
Hit ratio: 𝐻𝑅 = = 1 − 𝑀𝑅
𝑛𝑜. 𝑎𝑐𝑐𝑒𝑠𝑠𝑒𝑠
𝑛𝑜. 𝑚𝑖𝑠𝑠𝑒𝑠
Miss ratio: 𝑀𝑅 = = 1 − 𝐻𝑅
𝑛𝑜. 𝑎𝑐𝑐𝑒𝑠𝑠𝑒𝑠
11 | P a g e
Arhitectura sistemelor de calcul – Recapitulare
Pipeline
Un set de procese conectate în serie, ieșirea unui element este intrarea următorului.
Poate fi pentru date, operații, instrucțiuni (se divizează instrucțiunea în operații ce
se efectuează în paralel).
Principiul este următorul: în timp ce o instrucțiune este preluată din memorie, o alta
poate fi decodată, iar o alta executată în același interval de timp (clock cycle) → se
triplează numărul de operații executate.
Drawbacks: dependența instrucțiunilor (pentru a contraveni, procesorul trebuie să
verifice înainte dacă există aceste dependențe și dacă da, să oprească paralelizarea;
procesoarele performate pot modifica dinamic secvența instrucțiunilor astfel încât dacă
există dependențe ele să fie în număr minim pentru a evita halt-ul paralelizarării).
Procesoarele de tipul RISC suportă pipelining de instrucțiuni.
12 | P a g e
Arhitectura sistemelor de calcul – Recapitulare
13 | P a g e
Arhitectura sistemelor de calcul – Recapitulare
Memoria
Memoria se împarte în:
➔ Memorie primară
• Direct accesibilă de CPU;
• Ex.: regiștrii, RAM, ROM, flash, cache.
➔ Memorie secundară
• Trebuie adusă în ram pentru acces;
• Nevolatilă;
• Inclus în sistemul de clacul (disk, dhh, ssd, flash).
➔ Memorie terțiară
• Folosită ocazional (flash, CD, DVD, tape);
• În general pentru backup sau transfer între calculatoare.
Memoria RAM
Random access memory = se poate accesa în mod direct orice adresă din memorie
(timpul este același), este volatilă.
SRAM = Static RAM, are cost ridicat (~6 tranzistori/bit), folosită în special de regiștrii
interni CPU și cache (ex. circuitul de memorare pe 1 bit).
DRAM = Dynamic RAM, cost redus (1 tranzistor/bit), necesită refresh periodic (datorată
utilizării capacitorilor), memoria este mai lentă.
14 | P a g e
Arhitectura sistemelor de calcul – Recapitulare
Memoria ROM
Este un tip de memorie non-volatilă (se poate șterge/rescrie dar nu direct:
optic/electric), implicit zona de memorie nu se schimbă (sau doar foarte rar).
Ex. PROM, EPROM, EEPROM (Electric Programmable Memory), BIOS (Basic I/O System)
Periferice I/O
Fiecare dispozitiv I/O este conectat la CPU printr-o interfață I/O (este necesar câte un
controller pentru fiecare dispozitiv) și fiecare dispozitiv de acest tip este diferit variind în
funcție de:
– Tip – intrare/ieșire
– Date – informația schimbată între periferic și CPU
– Protocol – formatul de transfer al datelor
– Format – reprezentarea datelor
– Viteza acces
– Volum de date
– Erori – detecție, corecție
Procesorul are instrucțiuni speciale pentru acces I/O (ex. 8085 instrucțiuni IN și OUT).
Fiecare dispozitiv are o adresă:
- Port special – PIO (port I/O, vezi 8085)
- În memorie – MMIO (memory mapped I/O)
Fiecare dispozitiv se accesează diferit:
- Prin magistrală separată – I/O bus
- Prin partajare cu magistrala de memorie (vezi 8085)
Interrupt I/O
Este un pic mai efiecientă deât cea prezentată anterior, dispozitivul anunțând CPU
când are ceva de trimis.
Funcționare:
- Când dispozitivul are ceva de trimis, anunță CPU printr-o întrerupere (CPU nu mai
face pooling periodic)
- Se salvează starea curentă (ca un apel de subrutină), după care se execută subrutina
de tratare a întreruperii (interrupt handler – aici se face transferul PIO/MMIO)
- După încheierea transferului, se reia execuția programului aferent
- Se transferă câte un octet sau blocuri mici de date
Pot exista mai multe întreruperi (câte una ptr. fiecare periferic), adică câte o
subrutină asociată → adrese de întrerupere (IRQ – interrupt request). Există un controller
special de întreruperi, denumit PIC – Programmable Interrupt Handler, care generează
adresa corespunzătoare de întrerupere.
16 | P a g e
Arhitectura sistemelor de calcul – Recapitulare
DMA
Direct memory access, adică acces direct la memorie al dispozitivului. La
DMA, CPU doar inițiază transferul, după care își continuă programul curent, fiind
anunțat printr-o întrerupere de terminarea transferului.
Astfel, CPU nu mai este ocupat cu execuția transferului, deci transferul și execuția
programului se efectuează în paralel, implicit este necesar un dispozitiv special pentru
transferul și controlul memoriei, adică de un DMA controller.
Funcționare:
- CPU inițiază transferul (adder memorie, periferic, directe R/W, bytes transfer)
- DMA execută operația de transfer MEM ↔ I/O, sau chiar MEM ↔ MEM
- DMA anunță CPU printr-o întrerupere că a finalizat transfer
- Se transferă blocuri de date (bun pentru transferuri mari de date)
DMA este folosit la:
➢ Transferurile cu disk-ul, network, video
➢ Transferul de date în memorie
➢ Transferul de memorie între mai multe core-uri dintr-un singur procesor
Sistemul este mai complex cu DMA, de aici și costurile ridicate. Unele sisteme
embedded nu au nevoie. (OBS! Atenție la memoria cache)
Totodată DMA are mai multe moduri de lucru:
❖ Burst → DMA preia control complet asupra memory bus pe toată durata
transferului, CPU nu are acces la memorie
❖ Cycle stealing → DMA face periodic cerere la memory bus, CPU având prioritate în a
accesa memoria
❖ Transparent → DMA folosește memory bus doar când CPU nu execută instrucțiuni
de acces la memorie
Channel I/O
Aici există procesoare specializate pentru transfer, denumite IOP. Acestea pot efectua
transferuri de grupuri de fișiere independent de CPU. Utilizate îndeosebi la servere.
Funcționare:
- CPU creează programul de transfer, ce va fi rulat de procesorul IOP
- IOP se ocupă de inițializarea transferului, de protocolul folosit, de comenzile care
trebuie executate
- Se transferă blocuri mari de date, izolat de CPU
Magistrale (bus)
Magistralele reprezintă metoda de comunicare cu exteriorul al procesorului.
Acestea sunt de mai multe tipuri:
- De adresă (transf. adresă de la CPU la alte comp – unidirecțională)
- De date (transf. date dintre CPU și alte comp – bidirecțională)
- De control (transf. instrucțiuni de control de la CPU la alte comp – unidirecțională)
Exerciții
Se dă numărul -156 în baza zece. Care este reprezentarea numărului în baza
2 în complement față de 2 pe 16 biți. Să se reprezinte același număr în baza 16, în
complement față de 2 pe 16 biți.
Nr 2048 1024 512 256 128 64 32 16 8 4 2 1
-156 0 0 0 0 1 0 0 1 1 1 0 0
156-128=28-16=12-8=4-4=0
Binary no
0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0
NOT 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1
2’nd signed
+1
Binary 1 1 1 1 1 1 1 1 0 1 1 0 0 1 0 0
Hexa F F 6 4
Conversia inversă
Binary no
0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 0
NOT 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 1
2’nd signed
+1
Binary 1 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0
Hexa F A 4 2
1024+256+128+32+16+8+4+2=-1470
Hexa:10=A, 11=B, 12=C, 13=D, 14=E, 15=F
Se dă numărul 1023 în baza zece. Care este reprezentarea numărului în
baza 2 în complement față de 2 pe 16 biți. Să se reprezinte același număr în baza
16, în complement față de 2 pe 16 biți.
Nr 2048 1024 512 256 128 64 32 16 8 4 2 1
1023 0 0 1 1 1 1 1 1 1 1 1 1
Binary no
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
Hexa 0 3 F F
19 | P a g e
Arhitectura sistemelor de calcul – Recapitulare
0,23*2=0,46*2=0,92*2=1,84[0,84]*2=1,68[0,68]*2=1,36[0,36]*2=0,72*2=1,44[0,44]*
2=0,88*2=1,76[0,76]*2=1,52[0,52]*2=1,04[0,04]*2=0,08*2=0,16*2=0,32*2=0,64*2=1
,28[0,28]*2=0,56*2=1,12[0,12]
20 | P a g e
Arhitectura sistemelor de calcul – Recapitulare
A’B’ 00 1 1 0 1
1 2 4 3
A’B 01 1 1 1 0
5 6 8 7
AB 11 1 1 1 1
13 14 16 15
AB’ 10 1 1 1 0
9 10 12 11
0
21 | P a g e
Arhitectura sistemelor de calcul – Recapitulare
1KB=1000/1024byts
1MB=1000/1024KB
1GB=1000/1024MB
1TB=1000/1024GB
1PB=1000/1024TB
8TB=?bytes
8*1000*1000*1000*1000=8*e+12bytes
8*1024*1024*1024*1024=~8*e+12bytes=~8*1, 099, 511, 627, 776
22 | P a g e
Arhitectura sistemelor de calcul – Recapitulare
Referințe
How a CPU Works
How Computers Calculate - the ALU #5
Registers and RAM #6
The Central Processing Unit (CPU) #7
Instructions & Programs #8
Advanced CPU Designs #9
Polling/Interrupt/DMA differences explained easily
8085 Architecture
What Is Machine Cycle ?
Learn Computer Science
The Basic Principles of Computers «PDF»
23 | P a g e
Arhitectura sistemelor de calcul – Recapitulare
Cuprins
Sistemul de calcul generalizat ...................................................................................... 1
Arhitectura von Neumann ......................................................................................... 1
Ciclul mașină .................................................................................................................. 8
Operații aritmetico-logice: .......................................................................................... 9
Cicul mașină simplificat pentru calculatoarele cu arhitectura von Neumann .... 10
Memoria cache .............................................................................................................. 11
Funcționarea memoriei ............................................................................................ 11
Principiul localității datelor ..................................................................................... 12
Pipeline ......................................................................................................................... 12
Memoria ........................................................................................................................ 14
Memoria RAM ........................................................................................................... 14
Memoria ROM .......................................................................................................... 15
Periferice I/O................................................................................................................. 15
Metode de control I/O: .................................................................................................. 15
Progammed I/O ......................................................................................................... 15
Interrupt I/O ............................................................................................................. 16
DMA ........................................................................................................................... 17
Channel I/O ............................................................................................................... 18
Magistrale (bus) ........................................................................................................... 18
Exerciții ......................................................................................................................... 19
Referințe ........................................................................................................................ 23
24 | P a g e