Sunteți pe pagina 1din 28

ARHITECTURA CALCULATOARELOR

Capitolul 3

UNITATEA CENTRALĂ DE PRELUCRARE


ARHITECTURA CALCULATOARELOR

Regitre generale
Controlul
funcţionării SC
UAL

3.1. Structura de bază a UCP


3.2. Organizarea stivei
3.3. Funcţionarea UCP. Execuţia programelor
3.4. Microprocesorul
3.5. Multiprocesare
ARHITECTURA CALCULATOARELOR
3.1.1. UCP. Registre generale
au rolul unor locații rapide de memorie
se identifică intern prin adresă – cod adresă registru
registrele pot fi accesate simultan; locațiile din memoria principală
sunt accesate individual (o singură locație la un moment dat)

FUNCȚII:
1. STOCARE/TRANSFER DATE
stochează date utilizate de programul curent, rezultate intermediare,
operanzi, alte informații;
datele sunt citite din memoria principală SAU urmează să se transfere
în memoria principală;
pentru registrele I/O, datele sunt transferate dinspre/înspre un
periferic – prin intermediul interfețelor I/O;
numărul RG și funcția fiecăruia diferă după tipul de UCP
2. EXECUTĂ OPERAȚII A/L
efectuează operații elementare – micro-operații;
e.g. registrele de adresă și registrele de index efectuează operații
de incrementare/decrementare ȘI numărare;
ARHITECTURA CALCULATOARELOR
3.1.1. UCP. Registre generale

DR Data register reţine un operand memorat


AR Address register reţine o adresă de memorie
AC Accumulator registru de prelucrare specializat în
operații la nivelul UAL
IR Instruction register reţine codul instrucţiunii în curs de
execuție
PC Program counter reţine adresa din memoria
principală a următoarei instrucțiuni
de executat
TR Temporary register reţine date intermediare
InR Input register reţine date de intrare
OutR Output register reţine date de ieşire
ARHITECTURA CALCULATOARELOR

3.1.2. UCP. Unitatea aritmetică și logică

execută operațiile aritmetice și logice specificate de


codul instrucțiunii curente;
este un CLC care se interpune între două sau mai
multe registre și care modifică datele în timpul
transferului corespunzător cu operația de efectuat;
în funcție de locul operanzilor, avem operații:
registru-registru, registru-memorie, memorie-
memorie
ARHITECTURA CALCULATOARELOR

3.1.2. UCP. Unitatea aritmetică și logică

SCHEMA BLOC:
n n

R A

n n

UAL
n
ARHITECTURA CALCULATOARELOR
3.1. Structura de bază a UCP
3.1.3. Unitatea de comandă şi control
Structura:
IR registru de instrucţiune (Instruction Register)
- păstrează codul instrucţiunii în curs de execuţie
PC registru numărător de program (Program Counter)
- păstrează adresa următoarei instrucţiuni de executat a
FR registru de stare (Flag Register)
- păstrează în fiecare bit (flag) o informaţie predefinită despre contextul curent de lucru al
procesorului
DI decodificatorul de instrucțiuni
BCC Blocul Circuitelor de Comandă
- generează semnalele de comandă necesare execuţiei instrucţiunilor conform tipului de instrucţiune,
fazei curente, informaţiilor din FR;
- toate microoperaţiile şi operaţiile elementare care concură la execuţia instrucţiunii curente sunt
comandate prin semnale (microcomenzi) generate de BCC;
- toate microoperaţiile care se execută în acelaşi timp definesc o stare în execuţia unei instrucţiuni,
numită fază
GT Generatorul de Tact
- generează semnalul de tact pentru funcţionarea sincronă a tuturor componentelor calculatorului;
- frecvenţa generatorului de tact determină viteza de lucru a calculatorului;
- cadenţa schimbării de stare pentru toate circuitele secvenţiale sincrone din structura calculatorului
este dată de GT
GF Generatorul de Faze
- crează succesiunea specifică de faze care compun o instrucţiune;
- faza următoare depinde de faza curentă, de tipul instrucţiunii şi de informaţiile de stare din FR
ARHITECTURA CALCULATOARELOR
3.1.3. UCP. Unitatea de comandă şi control
UCC execută secvențial instrucțiunile programului curent prin
ciclul extrage – decodifică – execută:
1. din memorie (v. segmentul de cod), de la adresa indicată de
PC, extrage în IR codul următoarei instrucțiuni de executat
2. modifică conținutul registrului PC pentru a indica următoarea
instrucțiune de executat
3. decodifică codul instucțiunii extrase în IR
4. dacă codul instrucțiunii curente solicită date/operanzi din
memorie atunci determină adresele acestora (v. modurile de
adresare a memoriei)
5. extrage operanzii solicitați și îi transferă în registrele generale
6. execută instrucțiunea
7. încarcă rezultatele execuției în locația destinatar indicată de
codul de instrucțiune.
ARHITECTURA CALCULATOARELOR
3.1. Structura de bază a UCP
3.1.3. Unitatea de comandă şi control IN RAM
UAL UCC
1. UCC emite semnale de comandă către dispozitivul
periferic de intrare pentru transferul de instrucţiuni şi RAM
de date către memoria RAM; UAL UCC

2. UCC extrage instrucţiunile din memoria internă şi le


interpretează (decodifică); RAM
UAL UCC
3. în funcţie de interpretarea făcută, UCC emite semnale de
comandă către UAL şi RAM;
4. datele auxiliare solicitate din RAM sunt transferate în RAM

UAL, unde se execută, sub supravegherea UCC, UAL UCC

operaţia aritmetică sau logică decodificată;


5. rezultatele obţinute în UAL sunt dirijate de UCC către RAM
RAM; UAL UCC

6. se repetă etapele de la 1. la 5. pentru fiecare


instrucţiune;
7. după executarea tuturor instrucţiunilor, UCC RAM OUT

direcţionează RAM să transfere rezultatele către un UAL UCC

dispozitiv periferic de ieşire.


ARHITECTURA CALCULATOARELOR
3.1. Structura de bază a UCP
Input
3.1.4. Calea datelor (DataPath)
R1
R2
R3
R4
R5
R6
R7

Load MUX A MUX B


(7 linii) SELA SELB

3x8 Bus A Bus B


Decodor

Unitatea aritmetico – logică


SELD OPR
UAL

Output
ARHITECTURA CALCULATOARELOR

Registre generale
Controlul
funcţionării SC
UAL

3.1. Structura de bază a UCP


3.2. Organizarea stivei
3.3. Funcţionarea UCP. Execuţia programelor
3.4. Microprocesorul
3.5. Multiprocesare
ARHITECTURA CALCULATOARELOR
3.2. Organizarea stivei
push
Adresa
(SP) <— (SP) + 1
[SP] <— (DR) 63
FULL EMPTY
IF (SP) = 0 THEN FULL <— 1
EMTY <— 0

SP C
pop 3
B 2
(DR) <— [SP]
A 1
(SP) <— (SP) – 1
0
IF (SP) = 0 THEN EMTY <— 1
FULL <— 0
DR

ATENȚIE! Dacă stiva este organizată ca o structură de date care crește adresele
de memorie de sus în jos (sens opus față de ordinea adreselor fizice) atunci
operația push determină decrementarea conținutului registrului SP.
ARHITECTURA CALCULATOARELOR

Registre generale
Controlul
funcţionării SC
UAL

3.1. Structura de bază a UCP


3.2. Organizarea stivei
3.3. Funcţionarea UCP. Execuţia programelor
3.4. Microprocesorul
3.5. Multiprocesare
ARHITECTURA CALCULATOARELOR
3.3. Funcţionarea UCP. Execuţia programelor
O microoperaţie este o operaţie elementară (executată la nivel
de registru).
O instrucţiune este un cod binar care precizează o secvenţă de
microoperaţii de executat de către calculator.
Din p.v. al execuției, o instrucțiune este dată de succesiunea de
microoperații care o compun.
e.g. Instrucțiunile recunoscute de un SC general purpose
conține: i. de transfer, i. aritmetice, i. logice, i. de salt, i.
de apel și i. de oprire.
Toate microoperațiile care se execută în același timp definesc o
stare în execuția instrucțiunii, numită fază.
Un program este un set de instrucţiuni care precizează
operaţiile, operanzii şi legăturile dintre aceste elemente în
execuţie.
ARHITECTURA CALCULATOARELOR
3.3. Funcţionarea UCP. Execuţia programelor
Programele scrise pentru un calculator pot fi:
cod binar, dat de o secvenţă de instrucţiuni şi operanzi binari care
reproduce exact modul de reprezentare în memorie a secvenţei
respective. Un astfel de program se va numi program în cod maşină
sau program în limbaj maşină; mulțimea de instrucțiuni disponibile
unui programator pentru un anumit nivel mașină formează setul
de instrucțiuni de bază al acelei mașini;
cod octal, hexazecimal, dat de o conversie a codului binar în octal
sau hexa;
cod simbolic, dat de o reprezentare cu simboluri a codurilor
instrucţiunilor. Fiecare instrucţiune dată prin simboluri poate fi
translatată
într-o instrucţiune în cod binar. Această translatare este făcută de
un program special, numit assembler. Deoarece un assembler
traduce simboluri, aceste programe simbolice se numesc programe
în limbaj de asamblare;
limbaje de programare de nivel înalt. Un program care traduce un
astfel de program în binar se numeşte compilator.
ARHITECTURA CALCULATOARELOR

3.3. Funcţionarea UCP. Execuţia programelor

Memory
Codul de instrucţiune 4096 x 16

15 12 11 0
OpCode Address
Instructions
Instruction Format (program)

15 0 Operands
Binary Operand (data)

Processor Register
AC
ARHITECTURA CALCULATOARELOR
3.3. Funcţionarea UCP. Execuţia programelor
Moduri de adresare
(A) adresare fără adresă
adresare implicită
adresare imediată (prin valoare)
(B) adresare cu adresă
adresare directă (absolută) – cu memoria
adresare directă (absolută) – cu registru (adresare
registru)
adresare indirectă
(C) adresare cu registru de calcul
adresare relativă
adresare indexată
adresare cu registru de bază
ARHITECTURA CALCULATOARELOR

Registre generale
Controlul
funcţionării SC
UAL

3.1. Structura de bază a UCP


3.2. Organizarea stivei
3.3. Funcţionarea UCP. Execuţia programelor
3.4. Microprocesorul
3.5. Multiprocesare
ARHITECTURA CALCULATOARELOR

3.4. Microprocesorul

UCP = procesoare

 modul de realizare a UCP:


la supercalculatoare şi la calculatoarele medii-mari, UCP
poate fi construită prin circuite structurate pe un cadru
principal, numit mainframe
la microcalculatoare, UCP este construită din circuite
integrate structurate pe pastile de siliciu care formează
microprocesoarele

Un microprocesor este o UCP realizată într-un singur circuit


integrat.
ARHITECTURA CALCULATOARELOR

3.4. Microprocesorul

Caracteristici:

viteza de execuţie a instrucţiunilor


lungimea cuvântului
frecvenţa de tact (Hz)

capacitatea memoriei cu acces direct


ARHITECTURA CALCULATOARELOR
3.4. Microprocesorul
 setul de bază de instrucţiuni
CISC – Complex Instruction Set Computer
număr mare de instrucţiuni (100 – 250);
unele instrucţiuni execută acţiuni care se apelează rar;
număr mare de moduri de adresare a memoriei (5 – 20);
Intel – Pentium
formatul instrucţiunilor nu are lungime fixă; Motorola - Mxxxxx
există instrucţiuni care prelucrează operanzi direct în memorie
RISC – Reduced Instruction Set Computer
relativ puţine instrucţiuni;
relativ puţine moduri de adresare a memoriei;
toate operaţiile se efectuează în regiştrii UCP    fără memorie suplimentară;
instrucţiunile au format fix    sunt uşor de decodificat;
control bazat pe circuite    preferabil ctrl microprogramat
MIPS* – Microprocessor without Interlocked Pipeline Stages
caz particular de RISC
folosite pentru staţiile grafice

* MIPS = MegaInstructions Per Second


ARHITECTURA CALCULATOARELOR
3.4. Microprocesorul

Modelarea funcţionării unui procesor

Maşina cu trei adrese

organizarea memoriei: date, instrucţiuni


formatul instrucţiunilor:
nume: cod adr1 adr2 adr3
adr3 := (adr1) cod (adr2)
Maşina cu o adresă
organizarea memoriei: regiştrii generali, program, date, stivă
formatul instrucţiunilor:
nume: cod adr
(A) := (A) cod (adr)
ARHITECTURA CALCULATOARELOR
3.4. Microprocesorul

Structura internă de bază

Registre de Interfata cu
segment Sumator memoria interna
Registre 20 biti
Contor de adrese
generale
program
16 biti

Magistrala interna de 16 biti

Comanda de
16 biti
magistrala
Registre
temporare

Registru 6
UAL Comanda UAL 8 biti
Bytes

Registru de
stare
ARHITECTURA CALCULATOARELOR

Registre generale
Controlul
funcţionării SC
UAL

3.1. Structura de bază a UCP


3.2. Organizarea stivei
3.3. Funcţionarea UCP. Execuţia programelor
3.4. Microprocesorul
3.5. Multiprocesare
ARHITECTURA CALCULATOARELOR
3.5. Multiprocesare
Clasificarea lui Flynn
SISD – sisteme von Neumann, sisteme uniprocesor, sisteme mainframe
SIMD – sisteme cu procesoare scalare (engl., array processors), sisteme
GPU/VPU (engl., Graphics/Visual Processing Unit)
MISD
MISD – sisteme în timp real, sisteme pentru controlul proceselor, sisteme
pipeline, sisteme cu prelucrare paralelă (engl., parallel computing
architecture)
MIMD – sisteme multiprocesor, sisteme distribuite
MIMD = paralelism + concurență
ARHITECTURA CALCULATOARELOR

3.5. Multiprocesare

• paralelism
Sisteme specifice: • real, efectiv
• simulat
• concurenţă
Sistem distribuit
Sistem multicalculator. Reţea de calculatoare
Sistem multiprocesor
este controlat de un acelaşi SO care asigură
interconexiunea între procesoare şi toate componentelor
care concură la realizarea sarcinilor;
procesoare + memorii + IOS
ARHITECTURA CALCULATOARELOR

3.5. Multiprocesare
Proprietăţile sistemelor cu multiprocesare:

Schimbul de informaţii

Partajarea resurselor

Siguranţă mărită în funcţionare

Performanţe mărite

Specializarea nodurilor
ARHITECTURA CALCULATOARELOR

3.5. Multiprocesare

Multiprogramare = modul de exploatare a unui SC cu un


singur procesor central, dar care presupune existenţa în
memoria internă a mai multor programe care se execută
concurent

Concepte specifice:
multitasking
multiprelucrare