Sunteți pe pagina 1din 24

Arhitectura sistemelor de calcul – Recapitulare

Sistemul de calcul generalizat Control unit = Unitate de control (as


Arhitectura von Neumann in neuro: cerebrum bt brainstem);
ALU = Unitate aritmetico-logică
(efectuează operațiile aritmetice +,-
,*,/ si logice OR, AND, NOT, XOR,
Bitwise op.);
Registers = regiștrii operaționali
(memorează datele pe care le primesc
cu o viteză foarte mare; sunt: AC –
acumulator, PC – program counter,
regiștrii de stocare a operațiunilor A,
B, C, D, IR – instr. Reg., MAB –
mem. adress buffer, regiștrii
FIGURĂ 1 – SCHEMA SIMPLIFICATĂ temporari, de ++/--, de adresare etc.);
Memory Unit = unitatea de memorie
(RAM) de unde se încarcă
programele (succesiunea de blocuri
de date) din alte spații de stocare
(vezi HDD/SSD/flash etc.);
Input/Output devices =
sistemele de I/O unde se
gestionează datele de intrare,
respectiv ieșire.

Procesorul – unitatea centrală de prelucrare, ce se ocupă cu interpretarea și


prelucrarea datelor din memorie. Este format din:
₪ Ceas (clock), adică un cristal de cuarț ce vibrează cu o frecvență specifică
(măsurată în Hz, unde 1Hz = 1 ciclu/secundă aka clock speed ). Acesta trimite
impulsuri electrice sincronizând toate unitățile să funcționeze la unison;
₪ Decodor de instucțiuni;
₪ ALU;
₪ CU (aceasta leagă memoria aka northbridge, intrările și ieșirile de procesor).
₪ Regiștrii (spații volatile, super rapide de stocare);
₪ Cache (spații volatile, rapide de stocare, de capacități mai mari).

1|Page
Arhitectura sistemelor de calcul – Recapitulare

FIGURĂ 2 – SCHEMA INTERACȚIUNII CU MEMORIA

FIGURĂ 3 – SCHEMA GENERALĂ

2|Page
Arhitectura sistemelor de calcul – Recapitulare

FIGURĂ 4 – UNITATEA DE CONTROL – OPERAȚII

FIGURĂ 5 – UNITATEA DE CONTROL ȘI ALU

3|Page
Arhitectura sistemelor de calcul – Recapitulare

FIGURĂ 6 – PROCESORUL PE PLACA DE B AZĂ

FIGURĂ 7 – INTEL 4004 CPU

4|Page
Arhitectura sistemelor de calcul – Recapitulare

FIGURĂ 8 – INTEL 8085 – SCHEMĂ GENERALĂ

5|Page
Arhitectura sistemelor de calcul – Recapitulare

FIGURĂ 9 – INTEL 8085 – SCHEMĂ SIMPLIFICATĂ

6|Page
Arhitectura sistemelor de calcul – Recapitulare

FIGURĂ 10 – MEMORIA CACHE – DISTRIBUȚIA PE CPU

FIGURĂ 11 – IERARHIA MEMORIEI ÎN FUNCȚIE DE VITEZĂ

7|Page
Arhitectura sistemelor de calcul – Recapitulare

Ciclul mașină
Fetch

Store Increment

Execute Decode

Load

Programul stocat în memorie este executat instrucțiune cu instrucțiune (secvențial) »


PC – Progam counter = un fel de iterație care îmi oferă adresa următoarei instrucțiuni.
Fetch → Se citește valoarea curentă din registrul PC și se accesează memoria (căutare
cache » fail – cătare și aducere din RAM; adress bus → MAB=PC adress// control bus →
read memory signal) conform adresei indicate de PC. Se copiază codul instr. din memorie
(data bus) în registrul de instr. IR=DB.
Increment → Se incrementează reg. PC (care va indica adresa urm. instr. SAU posibile
valori ptr. instr. în curs de desfășurare; instr. au lungimi diferite)
Decode → Se decodifică instrucțiunea în fcț. de opcode, se pregătesc datele ptr instr. și se
selectează circuitul corespunzător ptr. a putea executa instrucțiunea (op. Aritm/Logice)
Load → Dacă instr. necesită date din memorie, acestea tb. aduse în regiștrii CPU pentru a
putea fi utlizate
Execute → Se execută instrucțiunea, activându-se circuitul logic corespunzător
Store →
➢ Instrucțiunile aritm-logice – se stochează val. rez. în memorie sau registru,
➢ Instr de salt – se modifică registrul PC dacă este cazul,
➢ Instr de transfer – se modifică doar regiștrii sau date memorie

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

• RC,RNC,RZ,... – reîntoarcere condiționată din subrutină


• RST – reset -> salt la adresa zero
❖ Instrucțiuni control:
• NOP – no operation
• HLT – oprire execuție instrucțiuni
• DI – dezactivare întreruperi
• EI – activare întreruperi

Cicul mașină simplificat pentru calculatoarele cu arhitectura von Neumann

Fetch

Execute Decode

Acest mecanism este tipic calculatoarelor cu arhitectura von Neumann


– atât datele cât și programele (instrucțiunile) se afla in același spațiu de memorie → nu
pot fi accesate simultan în memorie (poate citi o singura val)
– exista un singur procesor care executa instrucțiuni una câte una
– ciclul mașina pentru fiecare instrucțiune este cel prezentat (fetch-decode-execute)
– sistem cu ALU si regiștrii pentru operații

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 − 𝐻𝑅
𝑛𝑜. 𝑎𝑐𝑐𝑒𝑠𝑠𝑒𝑠

AMAT (avg. mem. access time): 𝐴𝑀𝐴𝑇 = 𝐻𝑖𝑡𝑇𝑖𝑚𝑒 + 𝑀𝑅 ∗ 𝑀𝑖𝑠𝑠𝑇𝑖𝑚𝑒


Se dorește hit ratio cât mai mare (>90-95%).

11 | P a g e
Arhitectura sistemelor de calcul – Recapitulare

Memoria cache se utilizează și în alte componente precum discul de memorie (ca o


zonă buffer între RAM și acesta, păstrând cele mai recente sate folosite sau blocuri
adiacente), comunicare între Hardware și Software prin buffer transfer serial, buffer
transfer Ethernet, cache web browser, cache sistemul de fișiere/de operare.

Principiul localității datelor


Când se aduc din memorie datele necesare, se transferă și date din zonele adiacente
(bloc de memorie);
Este mai eficient a aduce un bloc de memorie de N bytes, decât a se aduce de N ori
câte un byte – controllere de memorie optimizate;
În detrimentul instrucțiunilor este foarte probabil ca următoarea instrucțiune ce va
fi executată să existe imediat în memorie după instrucțiunea curentă.

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.

FIGURĂ 12 – INSTRUCȚIUNI SECVENȚIALE

12 | P a g e
Arhitectura sistemelor de calcul – Recapitulare

FIGURĂ 13 – PARALELIZAREA INSTRUCȚIUNILOR – PIPELINING

FIGURĂ 14 – PARALELIZAREA DUALĂ (MAI MULTE UNITĂȚI ALU)

13 | P a g e
Arhitectura sistemelor de calcul – Recapitulare

FIGURĂ 15 – PARALELIZARE DUALĂ PE MAI MULTE CORES

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)

Metode de control I/O:


Progammed I/O
Este cea mai consumatoare de resurse dintre toate, deoarece CPU verifică
permanent starea perifericului. Este folosită în general pentru volum mic de date de
transfer.
Funcționare:
- CPU verifică permanent (instr. de IN) starea dispozitivului; consum CPU mare
- Operațiile I/O sunt inițiate de CPU → pooling (adică se verifică statusul disp.)
- Se transferă câte un octet (este bună pentru un transfer mic de date)
15 | P a g e
Arhitectura sistemelor de calcul – Recapitulare

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.

FIGURĂ 16 – SCHEMĂ PIC

FIGURĂ 17 – SCHEMĂ FUNCȚIONARE INTERRUPT I/O

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

FIGURĂ 18 – SCHEMĂ DMA


17 | P a g e
Arhitectura sistemelor de calcul – Recapitulare

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

FIGURĂ 19 – SCHEMĂ CHANNEL I/O

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ă)

FIGURĂ 20 – SCHEMĂ MAGISTRALĂ


18 | P a g e
Arhitectura sistemelor de calcul – Recapitulare

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

Să se reprezinte numărul real 410,23 în format cu virgulă mobilă IEEE 754


pe 32 biți (1 bit semn, 8 biți exponent, 23 biți mantisa).

Nr parte 2048 1024 512 256 128 64 32 16 8 4 2 1


înt
410 0 0 0 1 1 0 0 1 1 0 1 0

Numărul binar al părții întregi


| Numărul binar al părții zecimale
110011010 , 00111010111000010

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]

Partea întreagă Numărul binar Exponent


0, 11001101000111010111000010 *E+ 9

Partea Numărul binar Exponent


întreagă
0, 11001101000111010111000010 *E+ 9

Conversia exponentului în standardul IEEE 754


126 + 9 = 135

Nr convr 2048 1024 512 256 128 64 32 16 8 4 2 1


135 0 0 0 0 1 0 0 0 0 1 1 1

Sign Expo Mantisa


0 10000111 1001101000111010111000010

20 | P a g e
Arhitectura sistemelor de calcul – Recapitulare

Se dă tabela de adevăr de mai jos (A,B,C,D intrări X,Y ieșiri). Să se


construiască un circuit logic combinațional care implementează logica descrisă în
tabel folosind forma normală disjunctivă sau conjunctivă. Să se simplifice folosind
diagramele Karnaugh. Se pot folosi porți logice de tip: NOT, AND, OR, XOR,
NAND cu oricâte intrări.

Nr A B C D X Y FND (output X):


1 1 1 1 1 0 1 ABC’D+AB’C’D’+A’BC’D’+A’B’CD
2 1 1 1 0 0 1
3 1 1 0 1 1 1
4 1 1 0 0 0 0 FNC (output Y):
5 1 0 1 1 0 1 (A’+B’+C+D)(A’+B+C+D’)(A+B’+C+D’)
6 1 0 1 0 0 1
7 1 0 0 1 0 0
8 K-map
1 0 0 0 1 1
9 0 1 1 1 0 1 C’D’
10 0 1 1 0 0 1 C’D
11 0 1 0 1 0 0 AB
12 0 1 0 0 1 1
13
A’BCD+ABCD=BCD
0 0 1 1 1 1
14 0 0 1 0 0 1 AB’C’D+AB’CD=A’B’C’
15 0 0 0 1 0 1 A’B’CD’
16 0 0 0 0 0 1 ===C+AB+BCD+A’B’C’+A’B’CD’

CD C’D’ C’D CD CD’


AB SD 00 01 11 10

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

FIGURĂ 21 – CIRCUIT FND PENTRU EX DE MAI SUS

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

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