Architettura di una CPU

Slides:



Advertisements
Presentazioni simili
A. FERRARI MATERIALE DALLA DISPENSA DI P. OLLARI
Advertisements

La struttura fisica e logica di un elaboratore
Architettura di un sistema informatico Hardware
CdL Ingegneria Informatica n.o. Anno Accademico 2007/08 Fondamenti di Informatica I – corso A Giacomo Piscitellipag. 1/30 Architettura dei calcolatori.
2. Architettura di un calcolatore
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A Architettura di un calcolatore Ing. Simona Colucci.
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Il processore PD32.
Il livello Microarchitetturale
Il Linguaggio Macchina
Com’è fatto un elaboratore?
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Architettura di un calcolatore
EVOLUZIONE DEL PC Legge di Moore: La potenza dei calcolatori raddoppia ogni 18 mesi Metà anni 80 (Personal Computer IBM AT) Architettura 16 bit interna,
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Il calcolatore Stefano Cagnoni e Monica Mordonini Dipartimento.
BUS DI CPU M. Mezzalama - M. Rebaudengo Politecnico di Torino
1 Prof. Marco Mezzalama CICLO DI BUS CON DATA BUS A 32 BIT (ciclo scrittura con wait) Verifica Segnale di READY: nel primo caso La memoria NON è pronta,
L’Architettura del Sistema di Elaborazione
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Architettura dell’elaboratore
Microprocessore Intel 8086
L' ARCHITETTURA DI VON NEUMANN
I blocchi fondamentali dell’elaborazione Componenti e funzionamento del calcolatore I blocchi fondamentali dell’elaborazione.
Architettura degli elaboratori
I vettore interruzioni
Architetture dei Calcolatori (Lettere j-z ) Il Processore
Architettura del calcolatore
Dimitri Caruso Classe 2^ Beat ISIS G. Meroni Anno Scolastico 2007/08
Introduzione al linguaggio assembly del microprocessore a parte
ARCHITETTURA DI UN ELABORATORE
BUS DI CPU M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Unità centrale di processo

Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.
Arch. Elab. - S. Orlando 1 Progetto del processore e supporto del processore al SO (interruzioni – eccezioni) Salvatore Orlando.
Architettura del calcolatore
Il µP Intel 8086 Marco Lettieri 3 C Informatica A.S. 2009/2010 All’attenzione del Professor Claudio Gatto.
3  Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione  elaborazione dati  memorizzazione dati 
Calcolatori Elettronici Il Processore
Luglio 2004Generalità Hardware1 Luglio Generalità Hardware2 MACCHINA DI VON NEUMAN (1947) BUS Processore Elaborazione Controllo Memoria Ingresso.
Architettura IA - 16 M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Calcolatori Elettronici Il Processore (2)
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
Gestione dei dispositivi di I/O:
Architettura di un calcolatore e linguaggio macchina.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Il calcolatore Stefano Cagnoni e Monica Mordonini
Architettura IA - 16 M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Informatica Lezione 4 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 15 Maggio.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 20 Maggio.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Riassunto INIZIO LEGGI DATO1 SOMMA DATO2 SCRIVI RISUL DATO1 DEFB 5 DATO2 DEFW 7 RISULT DEFB ? FINE ;trasferisce il contenuto della locazione di indirizzo.
Dalla macchina di Von Neumann …
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Elementi fondamentali dell’ Architettura di di un elaboratore elettronico.
Architettura e funzionalità
Transcript della presentazione:

Architettura di una CPU

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

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.

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.

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).

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.

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

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

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.

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.

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);

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.

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.

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).

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

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

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.

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

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

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

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.

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

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.

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.

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.

Linguaggio macchina Istruzioni che la CPU è in grado di eseguire; Due forme equivalenti: Codice macchina: 10100101 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.

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.

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.

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

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

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

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

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

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.

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

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

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.

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

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

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

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.

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

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.

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

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

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.

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.

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.

È 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.

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.

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.

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

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

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