Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control...

36
Central Process Unit Architettura degli elabor atori 1 - A. Memo 1 2.6 Parte di controllo 2.6 Parte di controllo (control path) (control path) ha il compito di generare i segnali di comando sincronizzando le varie unità che compongono la parte operativa (data path) è un enorme automa sequenziale che ha come ingressi l’istruzione in corso e lo stato attuale della CPU, e come uscite i comandi alla parte operativa e lo stato successivo

Transcript of Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control...

Page 1: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

1

2.6 Parte di controllo 2.6 Parte di controllo (control path)(control path)

ha il compito di generare i segnali di comando sincronizzando le varie unità che compongono la parte operativa (data path)

è un enorme automa sequenziale che ha come ingressi l’istruzione in corso e lo stato attuale della CPU, e come uscite i comandi alla parte operativa e lo stato successivo

Page 2: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

2

2.6 Parte di controllo2.6 Parte di controlloi comandi del datapathi comandi del datapath

IP

Temp

de

mu

x

mu

x

IP INIPOUT

A

B B

A

0 = A1 = B

0 = A1 = BIP 1 = load

T 1 1 = loadI/D

0 = dec1 = inc

inc/ dec

piccola sezione di datapath con evidenziatii comandi di sincronizzazione

Page 3: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

3

2.6 Parte di controllo2.6 Parte di controllodiagramma degli statidiagramma degli stati

Fetch 1 IPO UT =0. . .

. . .

Readm em ory ID=1

IPO UT =1

T 1=1^

Fetch 2IP IN=1

IP=1^. . .

emettere IP nell’Address Bus:• demux IPOUT emette dati in uscita A

in attesa del dato dalla memoria:• demux IPOUT emette dati in uscita B• impostare inc/dec a incremento• memorizzare il risultato in T1

aggiorna IP:• mux IPIN legge dati da ingresso B•memorizza il dato in registro IP

Page 4: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

4

2.6 Parte di controllo2.6 Parte di controllohardwiredhardwired

implementazione tradizionale

partendo dall’automa a stati finiti

logicadi

controllo

stato della CPU

ai d

isp

osi

tivi

del

da

tap

ath

istr

uzi

on

e

da

eseg

uir

e

Page 5: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

5

2.6 Parte di controllo2.6 Parte di controllomicroprogrammazione 1microprogrammazione 1

La tendenza è quella di avere istruzioni sempre più complesse, il che comporta: semplificare la programmazione diminuire il numero di istruzioni per programma ridurre lo spazio in memoria complicare enormemente la logica di controllo

La soluzione è adottare la microprogrammazione

Page 6: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

6

2.6 Parte di controllo2.6 Parte di controllomicroprogrammazione 2microprogrammazione 2

Individuare per ogni istruzione (macro instruction) i comandi (micro code) da emettere, raggrupparli in blocchi eseguibili in parallelo (micro instruction), e implementarli in una struttura interna alla CPU simile ad un piccolo elaboratore, con la sua memoria programmi (microprogrammed ROM)

Page 7: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

7

2.6 Parte di controllo2.6 Parte di controllomicroprogrammazione 3microprogrammazione 3

linguaggioA ssem bler

linguaggiom acchina

m icroprogram m azione

ADD AL,BLM O V AX,0

IPOU T=0ID =1 , T1=1^IP IN =1, IP=1^

00 B835 00 00

ogni macro instruction punta ad unasequenza di micro instruction

Page 8: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

8

2.6 Parte di controllo2.6 Parte di controllomicroprogrammazione 4microprogrammazione 4

La microprogrammazione ... è facile da progettare ed implementare è flessibile negli sviluppi futuri rende poco influente l’architettura interna permette ottimizzazioni distinte è più lenta dell’implementazione hardwired

Page 9: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

9

2.7 Set di istruzioni2.7 Set di istruzioni

Il set di istruzioni di una CPU specifica

quali sono le istruzioni previste quali operandi sono ammessi il formato con cui vengono codificate la loro durata in cicli di clock

Page 10: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

10

2.7 Set di istruzioni2.7 Set di istruzioniclassificazioniclassificazioni

in base alla localizzazione interna degli operandi– stack– accumulatore– registro (reg/mem)– registro (reg/reg)– ad accesso diretto (mem/mem)

in base alle tecniche di indirizzamento in base alla complessità delle istruzioni

Page 11: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

11

2.7 Set di istruzioni2.7 Set di istruzionia stacka stack

gli operandi sono posti nella

parte alta dello stack istruzioni molto corte codice poco efficiente valutatori delle espressioni semplificati

(notazione polacca inversa) lo stack diventa un collo di bottiglia

stackPUSH XPUSH YADDPOP Z

Page 12: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

12

2.7 Set di istruzioni2.7 Set di istruzioniad accumulatoread accumulatore

l’ALU utilizza l’accumulatore

come registro predefinito istruzioni corte semplifica il control path ed il data path frequenti spostamenti da/per altri registri poco efficente

accumulatoreLOAD XADD YSTORE Z

Page 13: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

13

2.7 Set di istruzioni2.7 Set di istruzionia registro (reg/mem)a registro (reg/mem)

in presenza di due operandi,

almeno uno è un registro istruzioni lunghe buona efficienza di programmazione riduzione degli accessi alla memoria scarso bilanciamento delle istruzioni

registro (r/m)LOAD R1,XADD R1,YSTORE Z, R1

Page 14: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

14

2.7 Set di istruzioni2.7 Set di istruzionia registro (reg/reg)a registro (reg/reg)

gli operandi delle operazioni sono solo registri e quindi gli accessi alla memoria devono avvenire precedentemente tramite un registro (qualsiasi)

codifica a lunghezza fissa istruzioni a durata bilanciata

registro (reg/reg)LOAD R1,XLOAD R2,YADD R3,R1,R2STORE Z, R3

Page 15: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

15

2.7 Set di istruzioni2.7 Set di istruzioniad accessi diretti (mem/mem)ad accessi diretti (mem/mem)

uso delle locazioni di

memoria come operandi massima semplicità di programmazione lunghezza delle istruzioni molto variabile alto sbilanciamento delle istruzioni l’accesso alla memoria diventa un collo di

bottiglia

memoria/memoriaADD Z,X,Y

Page 16: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

16

2.7 Set di istruzioni2.7 Set di istruzionievoluzione commercialeevoluzione commerciale

Accumulatore singolo (EDVAC) [1950]

Accumulatore + registri indice (Mark 1, IBM 700) [1953]

registri General Purpose

RISC (Mips, Spark, IBM)

Load/Store (CDC 6600, Cray 1)CISC (VAX, Intel)

Page 17: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

17

2.7 Set di istruzioni2.7 Set di istruzioniaccesso alla memoria 1accesso alla memoria 1

la memoria viene vista (quasi) sempre dal programmatore in L.M. come un vettore lineare di elementi ad 8 bit

ad ogni accesso alla memoria, alla CPU arriva un multiplo di byte (dimensione DB)– memoria allineata– memoria non allineata

Page 18: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

18

2.7 Set di istruzioni2.7 Set di istruzioniaccesso alla memoria 2accesso alla memoria 2

1000

AddressBus

Data Bus

38

39

3A

3B

0FFF

1000

1001

1002

m em oria

39 3A

1000 1001

Page 19: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

19

2.7 Set di istruzioni2.7 Set di istruzioniaccesso alla memoria 3accesso alla memoria 3

1001

AddressBus Data Bus

39 3A

1000 1001

Data Bus

3A 3B

1001 1002

Data Bus

3B 3C

1002 1003

m em oria a llineata

m em orianon allineata

Page 20: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

20

2.7 Set di istruzioni2.7 Set di istruzioniaccesso alla memoria 4accesso alla memoria 4

memoria non allineata (Intel x86)– accessi ottimizzati– hardware più complesso

memoria allineata (Motorola 68000)– lettura più lenta dei dati disallineati– con l’uso di compilatori adeguati i dati possono

essere memorizzati opportunamente

Page 21: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

21

2.7 Set di istruzioni2.7 Set di istruzionitecniche di indirizzamento 1tecniche di indirizzamento 1

modalità esempio significato

registro MOV AL,BL AL AL+1

immediato MOV AL,10 AL 10

diretto MOV AL,[0123] AL Mem[0123]

indicizzato MOV AL,[SI] AL Mem[SI]

con base MOV AL,[BX+30] AL Mem[BX+30]

index+base MOV AL,[SI+BX] AL Mem[SI+BX]

Page 22: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

22

2.7 Set di istruzioni2.7 Set di istruzionitecniche di indirizzamento 2tecniche di indirizzamento 2

modalità esempio significato

indiretto MOV AL,@RX AL Mem[Mem[RX]]

fatt. scala MOV AL,[BX +SI*d]

AL Mem[BX+SI*d]

auto inc. MOV RX,[RY]+ AL Mem[RY]

RY = RY + d

auto dec. MOV RX,-[RY] RY = RY - d

AL Mem[RY]

Page 23: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

23

W.P.

CAD

C

media

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%

Frequenza delle modalità di indirizzamento

W.P.

CAD

C

media

Tip

o d

i pro

gra

mm

aIndirizzamenti (Hennessy-Patterson)

altri

Indiretto

Scala

Registro

Immediato

Base

2.7 Set di istruzioni2.7 Set di istruzioni indirizzamenti indirizzamenti

Page 24: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

24

2.7 Set di istruzioni2.7 Set di istruzionitecniche di indirizzamento 4tecniche di indirizzamento 4

più indirizzamenti ci sono e più semplice è la programmazione diretta

più indirizzamenti ci sono e più complicati e difficilmente ottimizzati sono i compilatori

più indirizzamenti ci sono e più complessa risulta la parte di controllo

statisticamente sono pochi gli indirizzamen-ti utilizzati

Page 25: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

25

2.7 Set di istruzioni2.7 Set di istruzionitipi di operazionitipi di operazioni

Le istruzioni si possono dividere in trasferimento dati (*) aritmetiche e logiche (*) salto, ripetizione e controllo (*) gestione stack per dati specifici (FP, stringa) I/O

Page 26: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

26

2.7 Set di istruzioni2.7 Set di istruzionitrasferimento datitrasferimento dati

da registro a registro MOV AL,BL da memoria a registro MOV AL,[0123] da registro a memoria MOV [0123],AL distinto tra lettura e scrittura

LOAD R1,0123

STORE 0123,R1

Page 27: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

27

2.7 Set di istruzioni2.7 Set di istruzioniaritmetiche e logichearitmetiche e logiche

somma/sottrazione ADD AL,BL SUB CX,AX confronto CMP AL,33 TEST AH,CH moltiplic./divis. MUL BL DIV AX logiche OR AL,AH NEG AL spostamento bit ROL AH,2 SHR AL,1 sui bit di flag CLC STI

Page 28: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

28

2.7 Set di istruzioni2.7 Set di istruzionisalto, ripetizione e controllosalto, ripetizione e controllo

salto incondizionato JMP 0456 salto condizionato JZ 0100 JNC 2211

JNA 1234 JG 0101 ciclo di ripetizione LOOP 0345 salto a/da procedure CALL 0123 RET interruzione INT 21 IRET sistema HLT NOP

Page 29: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

29

2.7 Set di istruzioni2.7 Set di istruzionigestione stack 1gestione stack 1

lo stack è una coda LIFO che permette di salvare e recuperare dati senza curarsi del loro indirizzo

è una tecnica a lettura distruttiva viene usato per

– salvataggio contesto durante le interruzioni o le chiamate a procedure

– passaggio parametri

Page 30: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

30

2.7 Set di istruzioni2.7 Set di istruzionigestione stack 2gestione stack 2

PUSH AX• DEC SP• MOV [SP],AXhigh

• DEC SP• MOV [SP], AXlow

00

00

00

XXF F E E

F F E C

F F E D

F F E B

SP

prima

00

34

12

XXF F E E

F F E C

F F E D

F F E BSP

MOV AX,1234PUSH AX

dopo

Page 31: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

31

2.7 Set di istruzioni2.7 Set di istruzionigestione stack 3gestione stack 3

POP AX• MOV AXlow,[SP]• INC SP• MOV AXhigh,[SP]• INC SP

prima

00

34

12

XXF F E E

F F E C

F F E D

F F E BSP

POP AX

dopo

00

34

12

XXF F E E

F F E C

F F E D

F F E B

SP

Page 32: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

32

2.7 Set di istruzioni2.7 Set di istruzioniper dati specificiper dati specifici

per stringa LODSB CMPSW

(implicito AL, sorgente DS:SI, destinazione ES:DI) ripetizione di stringa REPZ CMPSW Floating Point FADD ST, ST[2] BCD Packed DAA

Page 33: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

33

2.7 Set di istruzioni2.7 Set di istruzioniI/OI/O

ingresso dati IN AL,DX emissione dati OUT DX,AL

Page 34: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

34

2.7 Set di istruzioni2.7 Set di istruzioniformato delle istruzioni 1formato delle istruzioni 1

è il codice con cui vengono rappresentate le varie istruzioni

dipende dal set di istruzioni e dall’architet-tura interna adottata

può essere a lunghezza fissa o variabile (Intel da 1 a 12 byte)

compatibilità verso il basso

Page 35: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

35

2.7 Set di istruzioni2.7 Set di istruzioniformato delle istruzioni 2formato delle istruzioni 2

T T T T T T T T

mod TTT r/m

ss_index

displacemen

immediate

T T T T T T T T codice operativo (1 byte)

codice operativo (eventuale secondo byte)

modalità di indirizzamento (ed altri b.c.o.)

fattore di scala, reg. indice e reg. base (1)

spiazzamento, 0, 1, 2 o 4 byte

dato immediato, 0, 1, 2 o 4 byte

Page 36: Central Process Unit Architettura degli elaboratori 1 - A. Memo 64 2.6 Parte di controllo (control path) l ha il compito di generare i segnali di comando.

Central Process Unit Architettura degli elaboratori 1 - A. Memo

36

2.7 Set di istruzioni2.7 Set di istruzioniformato delle istruzioni 3formato delle istruzioni 3

Ad esempio ADD AL, BL codifica: 00 D8formato reg1 to reg2 = 00TTT00w 11 reg1 reg2

oper. TTTADD 000ADC 010AND 100OR 001SUB 101SBB 011XOR 110

reg codAL 000CL 001DL 010BL 011AH 100CH 101DH 110BH 111

dimensione operandi8 bit w=016/32 bit w=1

TTT = 000 (ADD)w = 0 (8 bit)reg1 = 011 (BL)reg2 = 000 (AL)codifica = 00000000 11011000