Sei sulla pagina 1di 26

ALU e Control Unit

ALU e Control Unit ALU e Control Unit

Massimo VIOLANTE
Politecnico di Torino Dipartimento di Automatica e Informatica

Sommario
Unit aritmentica/logica Unit di controllo.

ALU e Control Unit

M. Violante

1.1

ALU e Control Unit

Unit aritmetica/logica
Contiene tutti i circuiti necessari per lesecuzione di operazioni artimetiche e logiche. ALU ALU fixed-point FPU floating-point unit

ALU e Control Unit

Fixed-point unit
Dati di input/output

AC

DR

Sommatore Operatori parallelo logici


carry flag parity flag zero flag sign flag overflow flag

SR
Istruzione da eseguire.
ALU e Control Unit

Sommatore parallelo: ADD: AC <= AC+DR SUB: AC <= AC-DR MUL: AC <= AC*DR DIV: AC <= AC/DR Operatori logici: AND: AC <= AC&DR OR : AC <= AC+DR XOR: AC <= ACDR NOT: AC <= #AC

M. Violante

1.2

ALU e Control Unit

Fixed-point unit (cont.)


AC DR
La control unit scrive su queste linee il codice delloperazione da eseguire. Per esempio: ADD 000 AND 100 SUB 001 OR 101 MUL 010 XOR 110 DIV 011 NOT 111

Sommatore Operatori parallelo logici

SR
Istruzione da eseguire.
ALU e Control Unit

Floating-point unit
Due possibilit: la FPU integrata nel processore la FPU risiede nel coprocessore matematico.

ALU e Control Unit

M. Violante

1.3

ALU e Control Unit

Coprocessore matematico
Esegue istruzioni in virgola mobile; un modulo separato dalla CPU; Nella famiglia Intel, fino allintroduzione dell80486 il coprocessore era fisicamente staccato dalla CPU e connesso al bus di sistema; Per ogni CPU era disponibile un coprocessore adhoc: 8086/8087; 80386/80387.
ALU e Control Unit 7

Schema concettuale
Decoder

CPU

Coprocessore

Bus di sistema
ALU e Control Unit 8

M. Violante

1.4

ALU e Control Unit

Formato istruzioni
Le istruzioni del coprocessore matematico fanno parte dellinsieme di istruzioni della CPU; Sono composte da: identificatore di istruzione per il coprocessore; indirizzo coprocessore; tipo di istruzione; operandi.

ALU e Control Unit

Interazione CPU/coprocessore
Meccanismo 1: la CPU riconosce coprocessore; una istruzione per il

programma il coprocessore; si mette in attesa finch il coprocessore non segnala di aver terminato loperazione; Meccanismo 2: il coprocessore decodifica tutte le istruzioni ed esegue solo le sue; CPU e coprocessore lavorano in parallelo.
ALU e Control Unit 10

M. Violante

1.5

ALU e Control Unit

Unit di controllo
lunit che si occupa di controllare tutti i moduli della CPU ALU attraverso segnali di controllo. AC DR SR CPU

Memoria

AR

PC SP

IR

Control Unit

ALU e Control Unit

11

Unit di controllo (cont.)


Compiti della controllo unit: stabilire quale instruction sequencing: istruzione deve essere prelevata dalla memoria instruction interpretation: attivare i segnali di controllo necessari per lesecuzione di una istruzione.

ALU e Control Unit

12

M. Violante

1.6

ALU e Control Unit

Instruction sequencing
Lindirizzo della prossima istruzione da prelevare memorizzato in PC; La control unit: normale funzionamento: incrementa il PC salto/chiamata a procedura: carica un nuovo valore nel PC.

ALU e Control Unit

13

Instruction sequencing (cont.)


ADX SR CPU

PC
Memoria ADX DR

UP LOAD

ALU

AC Control Unit

AR

PC SP

IR

ALU e Control Unit

14

M. Violante

1.7

ALU e Control Unit

Instruction interpretation
La control unit analizza il contenuto di IR; La control unit attiva i segnali di controllo necessari per eseguire: fetch cycle execution cycle Esistono segnali di controllo per: i registri che compongono la CPU; i moduli interni (ALU) ed esterni (Memoria); i collegamenti tra i moduli della CPU.
ALU e Control Unit 15

Segnali di controllo
C11 C12 C13 C7 C20 C14

ALU
C18 C9 C10 C15

SR

C5

Memoria

DR
C3 C8

AC

AR
C19

PC
C16

IR
C21

Control Unit

SP
C0 C1 C2
ALU e Control Unit

C4C6 C23

C17 C22

C0 - C23
16

M. Violante

1.8

ALU e Control Unit

Segnali di controllo (cont.)


C0: M[AR] <= DR, scrittura in memoria; C1, C20: DR <= M[AR], lettura da memoria; C2: segnale di READY C3, C19: AR <= DR C4, C19: AR <= PC C6, C19: AR <= SP C7, C20: DR <= AC C8, C15: PC <= DR C14 , C20 : DR <= PC

ALU e Control Unit

17

Segnali di controllo (cont.)


C9, C18: AC <= DR C10, C21: IR <= DR C11, C12, C13, C18: operazioni ALU 000: AC <= AC + DR 001: AC <= AC - DR 010: AC <= AC * DR 011: AC <= AC / DR 100: AC <= AC & DR 101: AC <= AC + DR 110: AC <= AC DR 111: AC <= #AC
ALU e Control Unit 18

M. Violante

1.9

ALU e Control Unit

Segnali di controllo (cont.)


C5: SR <= 0 C16: PC <= PC + 1 C22: SP <= SP+1 C23: SP <= SP-1

ALU e Control Unit

19

Attenzione
L'instruction cycle e' composto da una sequenza di micro-operazioni Ogni micro-operazione viene eseguita in un colpo di clock.

ALU e Control Unit

20

M. Violante

1.10

ALU e Control Unit

Esempio: ADD AC, adx


AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 decodifica IR AR <= PC DR <= M[AR] AR <= DR DR <= M[AR] AC <= AC + DR PC <= PC + 1
ALU e Control Unit

C4, C19 C1, C20 C10, C21 C16 C4, C19 C1, C20 C3, C19 C1, C20 C11, C12, C13, C18 C16
21

Esempio: PUSH PC
AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 decodifica IR DR <= PC SP <= SP+1 AR <= SP M[AR] <= DR C14, C20 C22 C6, C19 C0 C4, C19 C1, C20 C10, C21 C16

ALU e Control Unit

22

M. Violante

1.11

ALU e Control Unit

Osservazione
Istruzioni diverse hanno in generale instruction cycle diversi; Istruzione ADD AC, adx: fetch cycle: 4 colpi di clock; execution cycle: 7 colpi di clock; Istruzione PUSH PC: fetch cycle: 4 colpi di clock; execution cycle: 6 colpi di clock.

ALU e Control Unit

23

Progetto della control unit


Controllo hardwired: la control unit progettata come un circuito sequenziale Controllo microprogrammato: ogni istruzione composta da una sequenza di azioni: microistruzioni; le microistruzioni sono memorizzate in una memoria; la control unit gestisce il sequenza di microistruzioni. controllo della

ALU e Control Unit

24

M. Violante

1.12

ALU e Control Unit

Controllo hardwired
C10 C19 C20 C21 C16 C1 C4

S0 S1 S2 S3

SR IR Comb

C0 - C23

0000100000000000000100000

Fetch cycle

0100000000000000000010000

0000000000100000000001000

FF

0000000000000000100000000
25

ALU e Control Unit

Controllo microprogrammato
Unistruzione composta da una sequenza di micro operazioni; Ad ogni micro operazione corrisponde configurazione dei segnali di controllo; una

La configurazione dei segnali di controllo si chiama microistruzione; Ogni istruzione corrisponde ad una sequenza di microistruzioni: microprogramma.

ALU e Control Unit

26

M. Violante

1.13

ALU e Control Unit

Controllo microprogrammato (cont.)


I microprogrammi sono memorizzati in una memoria allinterno della CPU: control memory; Una volta definiti i segnali di controllo, i microprogrammi possono essere progettati in modo indipendente dal sistema che controlleranno.

ALU e Control Unit

27

Principio di funzionamento
Ad ogni istruzione I associato un indirizzo nella control memory corrispondente alla prima microistruzione del microprogramma per I; Ogni microistruzione contiene il valore dei segnali di controllo e lindirizzo della microistruzione successiva; provenienti dallesterno possono Segnali condizionare la scelta della microistruzione successiva.

ALU e Control Unit

28

M. Violante

1.14

ALU e Control Unit

Formato microistruzione
Tre campi: Condition Select: specifica quali segnali esterni (di condizione) considerare; Branch Address: indirizzo a cui saltare se la condizione selezionata soddisfatta; Control Fields: segnali di controllo da attivare.

ALU e Control Unit

29

Architettura
Branch Address Load Condizioni Esterne Indirizzo iniziale Increment

PC

MUX Control Memory

Condition Select

IR
Control Fields C0 - C23
ALU e Control Unit 30

M. Violante

1.15

ALU e Control Unit

Control memory per ADD AC, [adx]


0000 AR <= PC 0001 DR <= M[AR] 0010 IR <= DR 0011 PC <= PC+1 0100 decode IR 0101 AR <= PC 0110 DR <= M[AR] 0111 AR <= DR 1000 DR <= M[AR] Control fields Branch adx. 000010000000000000010000 0001 010000000000000000001000 0010 000000000010000000000100 0011 000000000000000010000000 0100 000000000000000000000000 0101 000010000000000000010000 0110 010000000000000000001000 0111 000000000100000000100000 1000 010000000000000000001000 1001

1001 AC <= AC + DR 000000000000000000100000 1010 1010 PC <= PC + 1 000000000000000010000000 1111


ALU e Control Unit 31

Architettura (cont.)
PC: contiene lindirizzo nella control memory della prossima microistruzione da eseguire IR: contiene la microistruzione corrente, composta dai segnali di controllo verso il resto della CPU e dal indirizzo della prossima microistruzione da eseguire Vantaggio: flessibilit; Svantaggio: ridotta velocit; alto costo.
ALU e Control Unit 32

M. Violante

1.16

ALU e Control Unit

Flessibilit
Il set delle istruzioni facilmente modificabile; Modificare una istruzione significa modificare il contenuto della control memory; Aggiungere una istruzione significa aggiungere un microprogramma In ogni caso non mai necessario modificare il circuito che realizza la control unit.

ALU e Control Unit

33

Velocit
Ogni microistruzione deve essere letta dalla control memory; Accedere alla control memory una operazione lenta; velocit di una unit di controllo La microprogrammata minore rispetto ad una unit hardwired.

ALU e Control Unit

34

M. Violante

1.17

ALU e Control Unit

Costo
La control memory un dispositivo costoso; La control memory necessit di una logica accessoria che ne permette il funzionamento; Il costo hardware di una unit di controllo microprogrammata generalmente maggiore rispetto ad una unit hardwired.

ALU e Control Unit

35

Codifica microistruzioni
Stabilisce cosa scrivere nella control memory; Due possibilit: Microistruzioni orizzontali; Microistruzioni verticali.

ALU e Control Unit

36

M. Violante

1.18

ALU e Control Unit

Microistruzioni orizzontali
Nella microistruzione viene espresso in modo esplicito il valore di ogni segnale di controllo; Ad ogni segnale di controllo corrisponde un bit nella microistruzione;

ALU e Control Unit

37

Esempio
Fetch istruzione: microistruzione: PC <= PC + 1

000000000000000010000000

ALU e Control Unit

38

M. Violante

1.19

ALU e Control Unit

Analisi
Vantaggi: massimo parallelismo: possono essere attivate contemporaneamente tutte le funzioni desiderate; massima velocit: non necessario interpretare le microistruzioni per produrre i segnali di controllo; Svantaggi: occupazione di memoria: molti controllo richiedono molti bit.
ALU e Control Unit

segnali

di

39

Osservazione
Non tutte le configurazione dei bit di controllo sono valide. 2 configurazioni C1 C7 C20 valide su 8! AC
C7 C1

Memoria

C20

DR

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1
40

ALU e Control Unit

M. Violante

1.20

ALU e Control Unit

Microistruzioni verticali
Per ridurre la dimensione della control memory si codificano li microistruzioni: ad ogni configurazione dei segnali di controllo associato un codice nella control memory sono memorizzati i codici associati ad ogni microistruzione ogni codice deve essere decodificato per ottenere la corrispondente configurazione dei segnali di controllo.

ALU e Control Unit

41

Microistruzioni (cont.)
Vantaggio: richiesto un minore numero di bit per ogni microistruzione; Svantaggi: richiesto un circuito per decodificare le microistruzioni e generare i segnali di controllo; si riduce il parallelismo.

ALU e Control Unit

42

M. Violante

1.21

ALU e Control Unit

Architettura
Branch Address Load Condizioni Esterne Indirizzo iniziale Increment

PC

MUX Control Memory

Condition Select

IR Decoder
ALU e Control Unit

C0 - C23

43

Alternativa
Microistruzioni ibride: i segnali di controllo sono codificati a gruppi; Si coniugano parallelismo e minimizzazione della control memory.

ALU e Control Unit

44

M. Violante

1.22

ALU e Control Unit

Osservazione
Per ridurre il costo dellunit di controllo si opera su: lunghezza delle microistruzioni: W; numero di microistruzioni: N.

ALU e Control Unit

45

Nanoprogrammazione
I microprogrammi necessari per realizzare un set di istruzioni hanno delle componenti comuni.
AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 decodifica IR AR <= PC DR <= M[AR] AR <= DR DR <= M[AR] AC <= AC + DR PC <= PC + 1 AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 decodifica IR AR <= PC DR <= M[AR] AR <= DR DR <= M[AR] AC <= DR PC <= PC + 1
46

ALU e Control Unit

M. Violante

ADD AC, [adx]

MOV AC, [adx]

1.23

ALU e Control Unit

Nanoprogrammazione (cont.)
Per non ripetere le componenti comuni si utilizza una memoria di nanoprogramma; La memoria di nanoprogramma istruzioni elementari: nanoistruzioni; contiene le

Una microistruzione composta da una sequenze di nanoistruzioni.

ALU e Control Unit

47

Architettura

Memoria di programma

Memoria di nano programma

nPC

PC

ALU e Control Unit

IR

48

M. Violante

nIR

1.24

ALU e Control Unit

Alcuni numeri
Hm = numero di istruzioni; Hn = numero di nanoistruzioni; N = numero di segnai di controllo; S1 = dimensione memoria di una unit di controllo microprogrammata; S2 = dimensione memoria di una unit di controllo nanoprogrammata.

ALU e Control Unit

49

Alcuni numeri (cont.)


Unit microprogrammata: S1 = Hm(log2Hm + N) Unit nanoprogrammata: S2 = Hm(log2Hm + log2Hn) + NHn

ALU e Control Unit

50

M. Violante

1.25

ALU e Control Unit

Alcuni numeri (cont.)


Motorola MC68000: Hm = 650; Hn = 260; N = 7; S1 = 52450 bit; S2 = 30550 bit; = 42% di riduzione.

ALU e Control Unit

51

M. Violante

1.26

Potrebbero piacerti anche