La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni.

Presentazioni simili


Presentazione sul tema: "1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni."— Transcript della presentazione:

1 1 Architettura di una CPU

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

3 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 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 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: t CPU Il valore 1/t CPU è la frequenza di clock della CPU, misurato in megahertz/Gigahertz (MHz/GHz) Es: frequenza di clock = 1GHz t CPU = 1 ns (nanosecondi).

6 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 7 Comportamento di una CPU fetch cycle execution cycle ci sono richieste di interrupt ? N trasferisce il controllo all’interrupt handler S

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

9 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 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 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 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 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 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 15 Interfaccia con la memoria Memoria CPU DBUS ABUS R/W# READY

16 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 17 Control Bus R/W#, Read/Write (attivo basso): 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 18 Ciclo di Lettura CLOCK ABUS DBUS R/W# READY T1T2T3T4 Indirizzo Valido Lettura Dati OK

19 19 Ciclo di Scrittura CLOCK ABUS DBUS R/W# READY T1T2T3T4 Indirizzo Valido OK Dati Validi Scrittura

20 20 Ciclo di Wait CLOCK ABUS DBUS R/W# READY T1T2T3Tw Indirizzo Valido Lettura Dati OK T4

21 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: ADDAC, adx Somma il contenuto dell’accumulatore con il dato memorizzato in Memoria all’indirizzo adx.

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

23 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 DR <= M[AR] AC <= AC + DR PC <= PC + 1 La CPU identifica l’istruzione da eseguire.

24 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 DR <= M[AR] AC <= AC + DR PC <= PC + 1 La CPU preleva gli operandi.

25 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 DR <= M[AR] AC <= AC + DR PC <= PC + 1 La CPU esegue l’istruzione.

26 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 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 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 29 Esempio ADD AC, 1024 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 JUMP 256 AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 decodifica IR AR <= PC DR <= M[AR] PC <= DR

30 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-codeOperando 1Operando 2

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

32 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 33 Esempio AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 decodifica IR AR <= PC DR <= M[AR]; legge l’immediato AC <= AC + DR PC <= PC + 1

34 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 35 Esempio ADD AC, 05F88 AC <= AC + 25 Memoria 2505F88

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

37 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 38 Esempio ADD AC, [05F88] AC <= AC + 74 Memoria F020005F88 74F0200

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

40 40 Tipi di indirizzo Assoluto: 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 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 42 Esempio Indirizzamento indiretto relativo; Indirizzo di base contenuto in AR. MOV AC, [+25] Memoria 05F FAD 05F88 AR 25 AC <= 63

43 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 44 Esempio MOV AC, BP[BI] Memoria 05F FAD 05F88 BP 25 AC <= BI

45 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 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 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 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 49 Esempio 0xA0: CALL sort 0xE0: sort: 0xEF:RET PC = 0xA0 PC = 0xE0 PC = 0xE1.. PC = 0xEF PC = 0xA1 CALL RET L’indirizzo della procedura viene messo nel PC. L’indirizzo della prossima istruzione da eseguire viene messo nel PC. È necessario memorizzare l’indirizzo di ritorno!

50 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 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 52 Esempio 0xA0: CALL sort 0xE0: sort: 0xEF:RET PC <= PC + 1 PUSH PC PC <= 0xE0 POP PC STACK SP = 0 SP = 1 0xA1 SP = 0 CALL RET

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

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


Scaricare ppt "1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni."

Presentazioni simili


Annunci Google