La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Architettura di una CPU

Presentazioni simili


Presentazione sul tema: "Architettura di una CPU"— Transcript della presentazione:

1 Architettura di una CPU

2 Sommario Organizzazione di un processore Linguaggio macchina
Modi di indirizzamento Tipi di istruzioni.

3 Organizzazione Un processore, CPU, esegue una sequenza di istruzioni (programma) prelevate da una memoria La memoria è esterna alla CPU La sequenza di operazioni per elaborare una singola istruzione prende il nome di instruction cycle.

4 Instruction cycle È suddiviso in due cicli: Fetch cycle:
Execution cycle Fetch cycle: La CPU legge dalla memoria l’istruzione che deve essere eseguita Execution cycle: Riconoscimento dell’istruzione da eseguire Lettura degli operandi dell’istruzione Esecuzione dell’operazione.

5 Unità di misura L’instruction cycle è composto da una sequenza di micro-operazioni eseguite dalla CPU La durata di una micro-operazione prende il nome di cycle time: tCPU Il valore 1/tCPU è la frequenza di clock della CPU, misurato in megahertz/Gigahertz (MHz/GHz) Es: frequenza di clock = 1GHz tCPU = 1 ns (nanosecondi).

6 Interrupt Evento che interrompe il normale funzionamento della CPU
In risposta la CPU: Sospende l’esecuzione del programma corrente Esegue il programma di gestione dell’interrupt: interrupt handler al termine del quale Riprende l’esecuzione del programma interrotto La presenza di un interrupt viene identificata alla fine di ogni instruction cycle.

7 Comportamento di una CPU
fetch cycle execution cycle ci sono richieste di interrupt ? N S trasferisce il controllo all’interrupt handler

8 Architettura di una CPU
SR ALU DR AC Memoria Control Unit AR PC IR

9 Architettura di una CPU (cont.)
DR, Data Register: memorizza i dati provenienti: dalla memoria e diretti alla CPU; dalla CPU e diretti alla memoria; AR, Address Register: memorizza gli indirizzi per gli accessi in memoria; PC, Program Counter: memorizza l’indirizzo della prossima istruzione da eseguire AC, Accumulatore: memorizza i dati in ingresso ed in uscita dall’ALU.

10 Architettura di una CPU (cont.)
SR, Status Register: memorizza lo stato del processore; IR, Instruction Register: memorizza il codice operativo dell’istruzione da eseguire, op-code, in base al quale, la control unit capisce quale operazione deve essere eseguita e ne comanda l’esecuzione; Control unit: controlla le operazioni della CPU; ALU, Arithmetic Logic Unit: esegue le operazioni aritmetiche e logiche.

11 Registro di stato Memorizza lo stato del processore;
I suoi bit assumono valore 0 o 1 in base al risultato delle operazioni svolte dal processore; Esempio, Intel 8086: Processor Status Word (PSW): registro a 16 bit; 9 bit di stato: flag di stato (6 bit); flag di controllo (3 bit);

12 Intel 8086: flag di stato Indicano lo stato dell’8086 in seguito ad una istruzione: Carry flag: va a 1 se l’operazione ha prodotto un riporto od un prestito; Parity flag: va a 1 se il numero di bit a 1 nel byte meno significativo del risultato è un numero pari; Auxiliary flag: usato per operazioni aritmetiche su numeri espressi in BCD.

13 Intel 8086: flag di stato (cont.)
Zero flag: va a 1 se il risultato dell’operazione è zero; Sign flag: coincide con il bit più significativo di un’operazione; Overflow flag: va a 1 se l’operazione corrente ha dato luogo ad overflow.

14 Intel 8086: flag di controllo
Modificano il comportamento delle istruzioni che verranno eseguite; Direction flag: utilizzata dalle operazioni di manipolazione delle stringhe; Interrupt flag: quando è 1 vengono servite le eventuali richieste di interrupt; Trap flag: se è 1 viene eseguito un interrupt alla fine dell’esecuzione di ogni operazione (serve per realizzare i debugger).

15 Interfaccia con la memoria
ABUS DBUS Memoria CPU R/W# READY

16 Address e Data Bus ABUS, Address Bus: insieme di linee sulle cui la CPU scrive l’indirizzo della cella di Memoria a cui vuole accedere (in lettura o in scrittura) DBUS, Data Bus: insieme di linee su cui la CPU o la Memoria scrivono il dato che deve essere trasferito: da CPU a Memoria: la CPU scrive il DBUS, la Memoria legge il DBUS da Memoria e CPU: la Memoria scrive il DBUS, la CPU legge il DBUS

17 Control Bus R/W#, Read/Write (attivo basso): READY:
R/W# = 1: la CPU legge un dato dalla Memoria, trasferimento da Memoria a CPU R/W# = 0: la CPU scrive un dato nella Memoria, trasferimento da CPU a Memoria READY: READY = 1: la Memoria ha completato l’operazione, la CPU può continuare il suo lavoro READY = 0: la Memoria non ha ancora completato l’operazione, la CPU deve attendere.

18 Ciclo di Lettura T1 T2 T3 T4 Indirizzo Valido Dati Lettura OK CLOCK
ABUS Dati DBUS Lettura R/W# OK READY

19 Ciclo di Scrittura T1 T2 T3 T4 Indirizzo Valido Dati Validi Scrittura
CLOCK Indirizzo Valido ABUS Dati Validi DBUS R/W# Scrittura OK READY

20 Ciclo di Wait T1 T2 T3 Tw T4 Indirizzo Valido Dati Lettura OK CLOCK
ABUS Dati DBUS Lettura R/W# OK READY

21 Esempio di funzionamento
Ogni istruzione è composta da 2 byte: 1 byte contenente l’op-code 1 byte contenente il dato su cui operare Istruzione: ADD AC, adx Somma il contenuto dell’accumulatore con il dato memorizzato in Memoria all’indirizzo adx.

22 Micro-operazioni fetch cycle: execution cycle: AR <= PC
DR <= M[AR] IR <= DR PC <= PC+1 execution cycle: decodifica IR AR <= PC DR <= M[AR] AR <= DR AC <= AC + DR PC <= PC + 1

23 Micro-operazioni (cont.)
fetch cycle: AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 execution cycle: decodifica IR AR <= PC DR <= M[AR] AR <= DR AC <= AC + DR PC <= PC + 1 La CPU identifica l’istruzione da eseguire.

24 Micro-operazioni (cont.)
fetch cycle: AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 execution cycle: decodifica IR AR <= PC DR <= M[AR] AR <= DR AC <= AC + DR PC <= PC + 1 La CPU preleva gli operandi.

25 Micro-operazioni (cont.)
fetch cycle: AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 execution cycle: decodifica IR AR <= PC DR <= M[AR] AR <= DR AC <= AC + DR PC <= PC + 1 La CPU esegue l’istruzione.

26 Linguaggio macchina Istruzioni che la CPU è in grado di eseguire;
Due forme equivalenti: Codice macchina: Codice mnemonico: MOV A, B L’insieme dei codici mnemonici di tutte le istruzioni prende il nome di linguaggio assembler; L’assemblatore è un programma che traduce il codice mnemonico nel corrispondente codice macchina.

27 Istruzioni macchina Ogni istruzione specifica:
l’operazione da svolgere; gli operandi coinvolti; La posizione della prossima istruzione è (salvo nelle istruzioni di salto) implicita; Il programma è eseguito in sequenza L’indirizzo della prossima istruzione è pari all’indirizzo della prima istruzione successiva alla istruzione corrente.

28 Istruzioni macchina (cont.)
Il Program Counter (PC) memorizza l’indirizzo della prossima istruzione da eseguire; Il PC può essere: incrementato automaticamente, durante le normali operazioni; inizializzato ad un particolare valore dalle istruzioni di salto.

29 Esempio ADD AC, 1024 JUMP 256 AR <= PC DR <= M[AR] IR <= DR
PC <= PC+1 decodifica IR AR <= DR AC <= AC + DR PC <= PC + 1 JUMP 256 AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 decodifica IR PC <= DR

30 Istruzioni macchina (cont.)
Ogni CPU ha un suo formato per il codice macchina: Esempio: codice operativo: ADD operando 1: A operando 2: B. op-code Operando 1 Operando 2

31 Modi di indirizzamento
Specificano la posizione degli operandi su cui una istruzione deve essere eseguita Possono essere: Immediato Diretto Indiretto.

32 Immediato Il dato è contenuto nell’istruzione stessa;
Per esempio: ADD AC, #99; L’istruzione somma il numero 99 al contenuto del registro AC.

33 Esempio AR <= PC DR <= M[AR] IR <= DR PC <= PC+1
decodifica IR DR <= M[AR] ; legge l’immediato AC <= AC + DR PC <= PC + 1

34 Diretto L’istruzione specifica l’indirizzo del dato su cui si deve eseguire l’operazione; Per esempio: ADD AC, X; Il simbolo X può essere: l’indirizzo della cella di Memoria che contiene il dato; il registro che contiene il dato.

35 Esempio Memoria ADD AC, 05F88 AC <= AC + 25 25 05F88

36 Esempio (cont.) AR <= PC DR <= M[AR] IR <= DR PC <= PC+1
decodifica IR DR <= M[AR] ; legge l’indirizzo AR <= DR ; del dato DR <= M[AR] ; legge il dato AC <= AC + DR PC <= PC + 1

37 Indiretto L’istruzione contiene l’indirizzo della locazione di memoria in cui è contenuto l’indirizzo del dato su cui l’istruzione deve operare; Per esempio: ADD AC, [X] Il simbolo X può essere: l’indirizzo della cella di memoria che contiene l’indirizzo del dato; il registro che contiene l’indirizzo del dato.

38 Esempio Memoria ADD AC, [05F88] AC <= AC + 74 F0200 05F88 74 F0200

39 Esempio (cont.) AR <= PC DR <= M[AR] IR <= DR PC <= PC+1
decodifica IR DR <= M[AR] ; 1 AR <= DR DR <= M[AR] ; 2 AR <= DR DR <= M[AR] ; 3 AC <= AC + DR PC <= PC + 1

40 Tipi di indirizzo Assoluto: Relativo:
L’istruzione specifica l’indirizzo completo Viene prodotto un codice macchina lungo Relativo: L’istruzione specifica lo spiazzamento rispetto ad un indirizzo di partenza

41 Tipi di indirizzo (cont.)
Lo spiazzamento può essere: espresso su un byte: +127, -128 Non permette di accedere a qualunque dato in memoria Produce codice macchina compatto.

42 Esempio Indirizzamento indiretto relativo;
Indirizzo di base contenuto in AR. Memoria MOV AC, [+25] AR 05F88 05F88 25 63 05FAD AC <= 63

43 Registro base e registro indice
Si estende il concetto di indirizzo relativo utilizzando due registri: BP, base pointer: contiene l’indirizzo di partenza di un’area di memoria BI, base index: contiene la posizione rispetto al registro base in un area di memoria.

44 Esempio MOV AC, BP[BI] Memoria BP 05F88 05F88 AC <= 63 25 BI 00025
05FAD

45 Tipi di istruzioni Data transfer: trasferiscono dati:
Dalla memoria alla CPU: MOV AC, [0x25] Dalla CPU alla memoria: MOV 0x33, AC Tra registri della CPU: MOV DR, AC Aritmetiche: ADD AC, 0x9B Logiche: eseguono operazioni logiche: XOR AC, AC CMP AC, 0x0

46 Tipi di istruzioni (cont.)
Controllo di flusso: modificano la sequenza delle istruzioni: In modo assoluto: JMP 0xF0 In base ad una condizione: JNZ 0x1A Chiamata/ritorno da procedura: CALL sort/RET Input/Output: istruzioni per il trasferimento di dati: Dalla CPU ad un dispositivo di output: OUT 0xAA Da un dispositivo di input alla CPU: IN 0xAB.

47 Controllo di flusso condizionato
Vengono utilizzate per modificare il flusso di esecuzione di un programma in base ad una condizione; Esempio: CMP AC, #0x0A JNZ loop Esegue AC-0x0A. Se il risultato è zero, lo zero-flag in SR viene messo ad 1. Se lo zero-flag in SR è 0, viene eseguito il salto all’indirizzo loop.

48 Chiamata/ritorno da procedura
Procedura: gruppo di istruzioni che eseguono un compito specifico È memorizzata una sola volta Può essere eseguita un numero qualsiasi di volte Vantaggi: Risparmio di spazio in memoria; Modularità del programma; Svantaggio: tempo di elaborazione per eseguire le operazioni di chiamata e ritorno.

49 È necessario memorizzare l’indirizzo di ritorno!
Esempio L’indirizzo della procedura viene messo nel PC. PC = 0xA0 PC = 0xE0 PC = 0xE1 .. PC = 0xEF PC = 0xA1 0xE0: sort: 0xEF: RET CALL 0xA0: CALL sort RET È necessario memorizzare l’indirizzo di ritorno! L’indirizzo della prossima istruzione da eseguire viene messo nel PC.

50 Lo stack Lo stack è una zona di memoria dove i dati vengono scritti/letti secondo una strategia Last-In-First-Out (LIFO); Operazione di scrittura sullo stack: push; Operazione di lettura dallo stack: pop; La locazione di memoria contenente l’ultimo dato inserito (corrispondente al primo che verrà letto) è detto cima dello stack; La cima dello stack è memorizzata in uno speciale registro: Stack Pointer, SP.

51 Uso dello stack Dal meccanismo di chiamata a procedura per:
Memorizzazione dell’indirizzo di ritorno Salvataggio dei registri Passaggio di parametri alla procedura Per il salvataggio di variabili temporanee.

52 Esempio STACK PC <= PC + 1 PUSH PC PC <= 0xE0 SP = 0 0xE0: sort:
0xEF: RET CALL 0xA0: CALL sort SP = 1 0xA1 RET POP PC SP = 0

53 Vantaggi dello stack Permette chiamate di procedure annidate. STACK
SP = 0 0xA0: call sort CALL SP = 1 0xA1 0xB0: sort: 0xB1: call intcmp CALL 0xB2 SP = 2 0xA1

54 Architettura completa di una CPU
SR ALU DR AC Memoria Control Unit AR PC IR SP


Scaricare ppt "Architettura di una CPU"

Presentazioni simili


Annunci Google