Sunteți pe pagina 1din 50

Cap.

3 Arhitectura unui
calculator

PC
Smartphone
Sistem de dezvoltare cu Linux
(Raspberry, …)
• Un calculator PC conţine trei componente majore:
-unitatea centrală de prelucrare (UCP) sau procesorul
-memoria (primară şi secundară)
-echipamentele de intrare-ieşire

Toate sunt conectate printr-una sau mai multe magistrale


(bus). O magistrală este o modalitate de a conecta
împreună diferite componente sau sisteme.

2
• Cele trei categorii de componente precizate
anterior se conectează fizic folosind diferite
tipuri de conectori în aşa numita placă de
bază (mother board)
• În plus, placa de bază este echipată cu setul de
cipuri (chipset); acesta conţine diferite circuite
şi face posibilă interconectarea celor trei
componente principale ale PC-ului.

3
Unitatea de sistem:
Placa de bază (cipset, procesor, memorie)
Sursa de alimentare
Hard disc
Unitate optică

Placă video
Placa sunet
Placă reţea

Monitor
Tastatură, mouse
• Echipamentele sau circuitele de intrare-ieşire sunt în:
-interiorul unităţii de sistem
-exterior
• Altfel:
-obligatorii
-opţionale.
• Teoretic, printre acestea, se consideră şi memoria,
chiar dacă uzual ea nu este inclusă între dispozitivele
de intrare-ieşire.

5
• Conectarea între UCP şi celelalte echipamente se face
prin intermediul magistralelor (bus în engleză).
• Regulile care stabilesc funcţionarea magistralei
alcătuiesc protocolul de magistrală.
• Ele conţin specificaţii mecanice şi electrice
-Plăcile (echipamentele) proiectate de diferiţii
producători trebuie să încapă în carcasa
calculatorului, să existe conectori potriviţi.
-Semnificaţia semnalelor electrice disponibile în
conectoare trebuie respectată de toţi producătorii
pentru ca echipamentele să funcţioneze.

6
Porturile de intrare-ieşire disponibile în exterior (prin
conectoare), la care se pot conecta echipamente obligatorii
sau opţionale

Porturi video: VGA, HDMI, DVI, mini DP (Display Port) -


calculatoare notebook
Conectorul plăcii de reţea (LAN)

USB 2.0, USB 3.0


Conectoarele plăcii de sunet
Cititor de card calculatoare notebook

PS/2, (2 conectori) * Portul serial (COM)*, portul paralel*

Magistrale pentru conexiune fără fir:


WiFi (802.11), BlueTooth (la calculatoare notebook)
7
• Intefeţele disponibile în interiorul PC-ului :
Magistralele PCI, PCI Express. În aceşti conectori
se pot introduce aşa numitele plăci de extensie, care
la rândul lor au alţi conectori accesibili pe panoul din
spatele PC-ului (rețea, video, ...); recent hard discuri
SSD

Magistralele IDE* (ATA), SATA, pentru conectarea


hard discurilor sau a dispozitivelor optice.

Conectori pentru memorie

8
Structura hardware a plăcii de bază

9
10
Sistemul Rapberry Pi 1, Model B

Circuitul (chip-ul) CPU/GPU BCM2835 conține:


ARM11, 700 MHz procesor
VideoCore IV GPU
512 MB RAM

11
Raspberry Pi 1 Model B

Conector Cameră
Video (CSI, Camera
Serial Interface)

26 pini

12
Conexiuni hardware posibile

13
Raspberry Pi 3 Model B

4 USB

General Purpose I/O


40 pini

Wireless Lan (WiFi)


/Bluetooth Low
Energy

14
Raspberry Pi 4,
procesor Broadcom BCM2711, Quad core Cortex-
A72 (ARM v8) 64-bit SoC f=1,5GHz

15
3.1. Procesorul

a) Istoric.Parametri.
b) Structura unui procesor. Unitatea aritmetică şi
logică. Registre mai importante
c) Alte caracteristici ale procesoarelor
d) Limbaje de programare.

16
a) Istoric.Parametri.
Calculatoarele PC: procesoare fabricate de Intel, dar şi AMD (Advanced
Micro Devices).
Procesorul Frecv. Lăţimea Lăţimea Milioane de Anul
de tact magistralei de magistralei instrucţiuni apariţiei
date/registre de adrese pe secundă

8088 5 MHz 8 biţi 16 biţi 20 biţi 0,33 1979


80286 6 MHz 16 biţi 16 biţi 24 biţi 1 1982
80386 16 MHz 32 biţi 32 biţi 24 biţi 5 1985
80486 25 MHz 32 biţi 32 biţi 32 biţi 20 1989
Pentium 60 MHz 64 biţi 32 biţi 32 biţi 100 1993
Pentium II 233 MHz 64 biţi 32 biţi 36 biţi ~300 1997
Pentium III 450 MHz 64 biţi 32 biţi 36 biţi ~510 1999
Pentium 4 1,5 GHz 64 biţi 32 biţi 36 biţi ~1700 2000
Itanium 1 GHz 64 biţi 64 biţi 44 biţi ~2500 2001

17
Observaţie:
• Pentru frecvenţa de tact este dată valoarea minimă,
corespunzătoare primei variante a fiecărui procesor.
În majoritatea cazurilor au fost create variante
funcţionând la frecvenţe mai mari (aproape duble).

18
• Celelalte componente de pe placa de bază
funcţionează la o frecvenţă mai mică decât
procesorul.
• Magistrala FSB (Front Side Bus) care face
legătura între procesor şi aşa numita punte de
nord (North Bridge) lucrează la o frecvenţă
fFSB.
• fprocesor= fFSB × cm; unde cm este clock multiplier
• Exemplu: fFSB=800 MHz, cm=4, rezultă
fprocesor= 3200 MHz.
19
• Idea de overclocking, adică practica de a face
procesorul de a funcţiona peste performanţele
pentru care a fost proiectat (clock multiplier
crește, fprocesor creste )
• Se poate face prin modificări în programul
BIOS (CMOS setup) sau modificări ale unor
comutatoare de pe placa de bază.
• Această practică poate duce însă la o
funcţionare anormală a calculatorului sau chiar
la defectare.

20
• Frecvenţa de tact este o caracteristică a unui semnal
(generat de un oscilator cu cuarţ) care este aplicat
procesorului

Frecvenţa se exprimă în MHz (106 Hz) sau GHz (109


Hz).

21
tensiune

timp
T

O perioadă, T, (ciclu) a semnalului cu frecvenţa de tact este


unitatea de timp elementară în funcţionarea procesorului.

Procesoarele originale aveau nevoie de 12 cicluri pentru o


instrucţiune.

Apoi, numărul de cicluri s-a redus:


-486 avea nevoie de 2 cicluri pentru o instructiune,
-începând cu generaţia Pentium II se pot executa 1 sau
mai multe instrucţiuni pe un ciclu.

22
• În ultimul timp au apărut procesoarele de tip
dual core şi quad core (core=nucleu).
Acestea au frecvenţa de tact de până la 3 GHz.
• În acest caz, în aceeaşi capsulă (chip) există un
număr de 2 sau 4 nuclee (chiar 6 sau 8; un
nucleu conţine partea cea mai importantă a
unui procesor, adică UAL şi registrele)
• Fiecare nucleu poate executa o porţiune (fir,
thread) a unui program, astfel se face o
procesare paralelă reală (multithreading,
multifir)
23
• Nucleele pot comunica între ele mai rapid şi mai
eficient decât dacă ar fi două procesoare diferite.
• Pentru a utiliza aceste procesoare, sistemul de operare
trebuie să recunoască structura multithreading şi să
conţină partea de cod care să permită lucrul în
tehnologia multithreading. Un astfel de procesor
îmbunătăţeşte viteza de execuţie a programului.
• Există aplicații (programe) care se pretează a fi rulate
în paralel (multifir)

24
În diagrama prezentată mai jos cele 4 nuclee ale lui Raspberry Pi
lucrează în paralel; fiecare dintre ele preia o poză (Picture) pe care
o transformă într-una cu rezoluție mai mică (Thumb), iar în final
cele 4 poze sunt unite într-un colaj.

25
• Tehnologia de fabricaţie (10 nm, actualmente)
reprezintă dimensiunea depunerilor de material
semiconductor din tranzistorii existenţi în
procesor.
• Reducerea dimensiunii permite integrarea unui
mai mare de tranzistori într-un procesor,
necesitând o tensiune de alimentare mai mică
şi un consum mai redus.

26
• Memoria intermediară (cache)
În general, procesoarele pot lucra la viteze mult mai
mari în raport cu memoriile.
Memoria intermediară sau cache (de la franţuzescul
cacher, a ascunde) este o memorie de capacitate mai
mică dar foarte rapidă, în capsula procesorului.
Memoria principală a calculatorului (RAM), pe placa
de bază, are o capacitate foarte mare dar este mai
lentă.
Ideea de bază a memoriei intermediare: cuvintele de
memorie cele mai frecvent utilizate sunt păstrate în
memoria intermediară; doar când UCP nu găseşte un
cuvânt, îl caută în memoria principală. 27
• Controler de memorie cache
• Raportul dintre cache hit şi numărul total de accesări.
• Termenul de cache miss.
• Procesorul Core i5 (4 nuclee/4 fire de execuție)
(Level 1-nivelul 1): 4 × 32 KB pentru instrucţiuni şi 4
× 32 KB pentru date, chiar în cipul UCP
(Level 2-nivelul doi): 4 × 256 KB.
Ambele memorii rulează la frecvenţa cu care lucrează
şi procesorul, adică 1,2 GHz.
(Level 3-nivelul 3) 6 MB: pentru toate nucleele

28
Generații Intel : Sandy Bridge (2), Ivy Bridge
(3), Haswell (4), Broadwell (5), 6, 7, 8,...,11
În fiecare generație: 3 sau 4 categorii de
procesoare (Core i3, i5, i7, i9)
Diferențe între generații: tehnologia (45 nm-10
nm), tipurile (L1, L2, L3) și mărimea
memoriei cache, suport pentru memorie RAM
(DDR2,..., DDR4), socluri (conectori), etc.
Aceste procesoare conţin şi o parte grafică
integrată (cip grafic)

29
Procesoare actuale (desktop)
Nr. Frecv. Memoria Memoria Puterea Tehno
Denumire Nuclee/ de tact cache-L2 cache-L3 (W) logia
fire de (MHz) (KB) (MB) (nm)
exec.
Intel Core i7 - 8/16 3600 8 x 1024 12 140 14
7830x

Intel Core i5- 4/4 3800 4 x 256 8 65 14


7600K
AMD Ryzen 7 8/16 3000 8 x 512 16 65 14
1700
Intel Celeron 2/2 2500 2 x 256 2 65 32
G540

30
Procesoare actuale (notebook)

Nr. Frecv. Memoria Memori Puterea Tehn


Denumire Nuclee de tact cache-L2 a cache- (W) o-
/fire de (MHz) (KB) L3 (MB) logia
exec. (nm)
Intel Core i7 - 4/8 1600 1024 6 15 14
8250U

Intel Core i5- 2/4 1800 512 3 15 14


6260U

AMD A12- 4/4 2200 2048 - 35 28


9700P

31
Structura internă a unui procesor
(Haswell)

32
Caracteristici procesoare Haswell (gener. 4)

Unlocked Multiplier: conțin K la sfârșitul codului, adică acceptă tehnica


overclock, selectabilă din BIOS. 33
Caracteristici procesoare (gener. 9 și 8)

34
Procesoare pentru smartphone-uri
Samsung Exynos:
4 nuclee Cortex A15 1,8 GHz
4 nuclee Cortex A7 1,3 GHz
Cip grafic cu 6 nuclee
Intel: Atom X (pentru tablete şi smartphone-uri), 4 sau
8 nuclee.
Alţi producători de procesoare pentru smartphone-uri:
Qualcomm, Nvidia, ST Microelectronics.
Toate acese procesoare se bazează pe arhitectura ARM
35
Tabel cu performanțe ale diferitelor procesoare

Nume Mil.Instr.PS (pe secundă) Instr. Instr./ Anul


și frecvență /per per/nucl
.
ARM Cortex A7 2 850 MIPS la 1.5 GHz 1.9 1.9 2011
Samsung
Exynos 5250
14 000 MIPS la 2.0 GHz 7,0 3,5 2011
(Cortex-A15-
like Dual core)
Intel Core i7
Extreme Edition
176 170 MIPS la 3.3 GHz 53,38 8,89 2011
3960X (Hex
core)
Intel Core i7
238 310 MIPS la 3.0 GHz 79,4 9,92 2014
5960X
Intel Core i7
317900 MIPS la 3.0 GHz 106 10,6 2016
6950X
Raspberry Pi 2 4 744 MIPS la 1.0 GHz 4,744 1,186 2014
36
În concluzie, creşterea numărului de
instrucţiuni/unitatea de timp se poate face:
-brut, prin mărirea frecvenţei de tact;
-printr-o proiectare avansată care să
permită mai multe instrucţiuni într-un ciclu (a
se vedea tehnica Pipeline, mai târziu în acest
capitol);
-prin creșterea numărului de nuclee.
37
• Magistralele sunt folosite de procesor pentru accesarea
memoriei
Memoria este un dispozitiv care conţine mai multe
locaţii, fiecare putând memora un octet. Fiecare locaţie
are o adresă.
• Magistrala de date este „poarta” pe care intră sau iasă
informaţia propriuzisă în/din procesor de la sau către
memorie. Caracteristica sa principală este numărul de
biţi (lărgimea). Iniţial, 8, apoi, 16, 32 sau 64 de biţi.
• Prin magistrala de adrese, procesorul precizează adresa
octetului care urmează să fie citit sau scris (selectează
locația de memorie respectivă). Numărul de biţi a
evoluat în timp: 16, 20, 32, 36, 44 biţi. Mărimea acestei
magistrale determină dimensiunea maximă a memoriei
pe care procesorul o poate adresa.

38
• Un procesor cu n biţi în magistrala de adrese poate
adresa 2n locaţii de memorie.
• Un procesor cu m biţi pe magistrala de date poate citi
sau scrie într-o singură instrucţiune cuvinte de m biţi.
• De exemplu, un procesor Pentium II are:
-magistrala de adrese cu 36 de biţi, ceea ce înseamnă
că poate adresa 236 = 26 ·230 = 64 GB locaţii de
memorie.
-magistrala de date de 64 biţi; deoarece memoriile au
locaţii de câte 8 biţi, înseamnă că la fiecare transfer se
scriu sau se citesc 8 locaţii consecutive de memorie,
iar adresele sunt divizibile cu 8.
39
• Un registru este o locaţie specială de mare
viteză pentru memorarea datelor din interiorul
procesorului
-toate datele trebuie introduse în registre
înainte de prelucrare.
-fiecare procesor are mai multe registre, unele
având funcţii dedicate, altele de uz general.
-în general, lăţimea, în biţi a registrelor
procesorului este aceeaşi cu cea a magistralei
de date.

40
• Totuşi, prin magistralele de adrese şi date se poate
accesa şi altceva în afară de locaţii de memorie: spaţiul
porturilor de intrare/ieşire (I/O, input-output) al PC-
ului. Indiferent câte linii de adrese are procesorul în
total, pentru porturile de intrare-ieşire sunt folosite doar
16.

• Exemple de porturi de intrare-ieşire (I/O): adaptor video,


controler hard disc, controler USB, etc.

41
b) Structura unui procesor. Unitatea
aritmetică şi logică. Registre mai importante

• Procesorul este format în principal din unitatea


aritmetică şi logică (UAL) şi mai multe registre.
• UAL execută operaţii aritmetice (adunări, scăderi,
înmulţiri, împărţiri), operaţii logice (ŞI, SAU) şi alte
operaţii simple.
• Registre mai importante:
- registrul numărător de program (program counter,
PC), conţine adresa instrucţinunii care se execută;
- registrul de instrucţiuni, care păstrează instrucţiunea
în curs de execuţie;
-registre de uz general.
42
„Calea de date von
Neumann” (o parte a
UCP)
Realizarea unei adunări de către
această structură.

1. Cei doi operanzi, O1 şi O2, se află


în registrele de uz general, A şi B.

2. Operanzii sunt transferaţi în cele


două registre de intrare ale UAL.

3. UAL calculează rezultatul adunării,


depune rezultatul în registrul de
ieşire.

4. Rezultatul este mutat în alt registru


de uz general al UCP, C.

43
În general, paşii pe care îi realizează procesorul la execuţia
unei instrucţiuni sunt următorii:
1. Transferă instrucţiunea din memorie în registrul de
instrucţiuni (extrage instrucţiunea).
2. Schimbă numărătorul de program încât acesta să indice
adresa următoarei instrucţiuni.
3. Determină tipul instrucţiunii proaspăt extrase (decodifică).
4. Dacă instrucţiunea are nevoie de un operand (cuvânt) din
memorie, determină unde se găseşte acesta.
5. Extrage (aduce) cuvântul respectiv în unul dintre registrele
UCP, dacă este cazul.
6. Execută instrucţiunea.
7. Salt la pasul 1 pentru a începe execuţia instrucţiunii
următoare.
Această secvenţă de paşi este denumită ciclul extrage-
decodifică-execută. Programul poate conţine ramificaţii sau
salturi.
44
c)Alte caracteristici ale procesoarelor

Tehnica pipeline (bandă de


asamblare) permite executarea mai
multor instrucțiuni în același timp
Ex: bandă de asamblare cu 4 unităţi
S1 pentru extragere instrucţiune,
S2 pentru decodificare,
S3 pentru extragere operanzi
S4 pentru execuţie.
I1, I2,...,I5: instrucţiuni
Începând cu momentul t=4, se
execută 4 instrucțiuni în același timp,
dar fiecare este în altă fază.
Exemplu: procesoarele Intel
(Haswell) au 14 unităţi (stagii)
pipeline 45
d) limbaje de programare.
Un program reprezintă o listă secvenţială de
instrucţiuni.
Un procesor poate să facă în principal următoarele
trei tipuri de instrucţiuni:
-operaţii aritmetice şi logice pe baza UAL
-poate transfera un operand dintr-o locaţie de
memorie în alta
- poate testa rezultatul operaţiilor efectuate şi apoi,
funcţie de rezultatul testului, poate face salturi în
program.

46
Clasificare a limbajelor de programare:

Limbaje scriptice (Python, Perl, Java script,


MATLAB),

Limbaje care necesită compilare (Java, C, C++).

47
Performanțe obținute prin rularea unui “benchmark”
(timpul necesar pentru rularea algoritmului de calcul pentru
aceeași aplicație), cu diferite limbaje de programare, și diferite
resurse hardware: 2 variante de Raspberry, respectiv PC
(sistem de operare Debian-distribuție Linux)

Limbajul Raspb. Pi 3 la Raspb. Pi 2 DEBIAN 64-


1,2 GHz la 1 GHz bit, PC, i7
3,5 GHz
C++ 6,5 s 9,3 s 0,61 s
Java 9,94 s 13,4 s 0,83 s
Perl 601 s 756 s 50 s
Python 616 s 834 s 54 s

48
Altă clasificare a limbajelor de programare:

Limbaje de nivel înalt (C, Pascal, Basic)


Limbaje de nivel coborât, numite limbaje de
asamblare.
Orice program trebuie translatat într-un limbaj
maşină (o succesiune de numere-octeţi) pe care îl
înţelege procesorul. Acest lucru este realizat de
programe numite complilatoare, interpretoare sau
asambloare.

49
Exemple de instrucţiuni în limbaj de asamblare:
LOADA mem – Încarcă registrul A cu conţinutul
locaţiei de memorie de la adresa mem.
LOADB con – Încarcă registrul B cu constanta con.
SAVEB mem – Salvează registrul B în locaţia de
memorie de la adresa mem.
ADD – Adună registrele A şi B şi depune rezultatul
în registrul C.
SUB – Scade registrele A şi B şi depune rezultatul în
registrul C.
JUMP addr – Salt la adresa addr
JNEQ addr – Salt, la adresa addr, dacă operandul A
nu este egal cu B.

50

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