CPU. Maurizio Palesi



Documenti analoghi
Architettura del calcolatore

Struttura del calcolatore

Introduzione all'architettura dei Calcolatori

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Architettura hardware

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Lezione 3: Architettura del calcolatore

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

C. P. U. MEMORIA CENTRALE

Architettura di un calcolatore: introduzione

Laboratorio di Informatica

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Il Processore: i registri

L architettura di riferimento

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

ARCHITETTURA DELL ELABORATORE

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann

Esercitazione sulle CPU pipeline

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

L architettura del calcolatore (Prima parte)

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Architettura di un calcolatore

CALCOLATORI ELETTRONICI 29 giugno 2011

Von Neumann. John Von Neumann ( )

Esame di INFORMATICA

ARCHITETTURA DI UN PERSONAL COMPUTER

Elementi di informatica

Calcolo numerico e programmazione Architettura dei calcolatori

Architettura di tipo registro-registro (load/store)

L Architettura di un Calcolatore

23/02/2014. Dalla scorsa lezione. La Macchina di Von Neumann. Uomo come esecutore di algoritmi

Parte II.2 Elaboratore

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Ing. Paolo Domenici PREFAZIONE

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Dispensa di Informatica I.1

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

CALCOLATORI ELETTRONICI 29 giugno 2010

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

Architettura dei calcolatori I parte Introduzione, CPU

Architettura di un computer

Funzionalità di un calcolatore

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Lezione 8. La macchina universale

Programma ARCHITETTURA DI UN ELABORATORE MACCHINA DI VON NEUMANN CPU & MEMORIA UNITÀ DI ELABORAZIONE (CPU) Questa settimana:

Lezione n.19 Processori RISC e CISC

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

CALCOLATORI ELETTRONICI

Unità Periferiche. Rete Di Controllo

Prelievo di un istruzione. Istruzioni macchina. Tipi di istruzioni. Registri principali della CPU e loro ruolo

Il processore - CPU (CENTRAL PROCESSING UNIT)

Corso di Laurea in Informatica Architetture degli Elaboratori

La macchina programmata Instruction Set Architecture (1)

Calcolatori Elettronici

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

che vengano generati nell ordine corretto i sistema (es., la memoria, l unità aritmetico-

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico pagina 1

Architettura dei computer

Fondamenti di informatica: un po di storia

Linguaggi di programmazione

Architettura dei calcolatori

Calcolatori Elettronici

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

CALCOLATORI ELETTRONICI 15 aprile 2014

Il Sistema Operativo

Il processore - CPU. PDF created with pdffactory trial version

DMA Accesso Diretto alla Memoria

La Macchina Virtuale

Anatomia e fisiologia del computer: l architettura del calcolatore

Interpreti e compilatori La macchina di Von Neumann

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Elaborazione dei dati

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

Architettura degli elaboratori (A)

Architettura dei calcolatori II parte Memorie

Lezione n.9. Introduzione al linguaggio macchina

I componenti di un Sistema di elaborazione. CPU (central process unit)

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

CPU pipeline 4: le CPU moderne

Gestione della memoria centrale

Vari tipi di computer

Transcript:

CPU Central Processing Unit 1

Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2

L'Esecutore Un calcolatore basato sull architettura di Von Neumann esegue un programma sulla base dei seguenti principi Dati e istruzioni sono memorizzati in una memoria unica che permette sia la scrittura che la lettura I contenuti della memoria sono indirizzati in base alla loro posizione, indipendentemente dal tipo di dato o istruzione contenuto Le istruzioni vengono eseguite in modo sequenziale Il linguaggio per cui la CPU si comporta da esecutore è detto linguaggio macchina. Le istruzioni scritte in linguaggio macchina sono piuttosto rudimentali Il concetto di tipo di dato è quasi assente Il numero di operandi è limitato (in genere non più di due) Il numero di operazioni previste è ridotto Struttura istruzione codice operativo dest src1 src2 Linguaggio assemblatore add R01 R02 R03 Linguaggio macchina 000000 00000 100000 00001 00010 00011 3

Ciclo Fetch-Decode-Execute Fetch Decode Execute 4

Componenti della CPU Data path (o percorso dei dati) E' la parte che si occupa dell effettiva elaborazione dei dati Comprende dispositivi diversi Una o più unità aritmetico-logiche, dette ALU (Arithmetic Logic Unit) Alcune unità di memorizzazione temporanea, i registri, memoria ad alta velocità usata per risultati temporanei e informazioni di controllo (il valore massimo memorizzabile in un registro è determinato dalle dimensioni del registro) Unità di controllo Coordina le operazioni di tutto il processore (anche quelle del data path) Regola il flusso dei dati e indica quali registri debbano essere collegati agli ingressi e all uscita dell ALU Invia all ALU il codice dell operazione da eseguire Riceve indicazioni sull esito dell operazione appena eseguita dall ALU e gestisce opportunamente queste informazioni Comprende alcuni registri di uso specifico Program Counter (PC) qual è l istruzione successiva Instruction Register (IR) istruzione in corso d esecuzione 5

Data Path Registri R00 R01 R02 R03 X X + Y Y Registri ingresso ALU X add esito Registro uscita ALU A L U X + Y Y 6

PSW Bus indirizzi Data path Unità di controllo Bus dati CPU Bus controllo Unità di Controllo IR PC Memoria 7

CPU In grado di eseguire solo istruzioni codificate in linguaggio macchina Ciclo Fetch - Decode - Execute Prendi l istruzione corrente dalla memoria (quella individuata dal contenuto del PC) e mettila nell IR (Instruction Register), contemporaneamente incrementa il Program Counter (PC) in modo che contenga l indirizzo dell istruzione successiva (fetch) Determina il tipo di istruzione da eseguire (decode) Se l istruzione usa dei dati presenti in memoria, determinane la posizione Carica la parola, se necessario, in un registro della CPU Esegui l istruzione (execute) Torna al primo punto e inizia a eseguire l istruzione successiva 8

Tre Tipologie di Istruzioni Istruzioni aritmetico-logiche (Elaborazione dati) Somma, Sottrazione, Divisione, And, Or, Xor, Maggiore, Minore, Uguale, Minore o uguale, Controllo del flusso delle istruzioni Sequenza Selezione semplice, a due vie, a n vie, Ciclo a condizione iniziale, ciclo a condizione finale, Trasferimento di informazione Trasferimento dati e istruzioni tra CPU e memoria Trasferimento dati e istruzioni tra CPU e dispositivi di ingresso/ uscita (attraverso le relative interfacce) 9

Tipologie di Istruzioni Architettura di riferimento: load/store Le operazioni aritmetico-logiche possono essere eseguite solo su dati che siano già stati caricati nei registri Le operazioni di caricamento dei dati dalla memoria nei registri (load) e di archiviazione dei risultati dai registri nella memoria (store) devono essere previste esplicitamente Un processore in architettura load/store dovrà quindi essere in grado di eseguire le seguenti categorie di istruzioni: Istruzioni aritmetico-logiche (Elaborazione dati) Somma, Sottrazione, Divisione, And, Or, Xor, Maggiore, Minore, Uguale, Minore o uguale, Controllo del flusso delle istruzioni Sequenza Salto condizionato o non condizionato (per realizzare selezioni e cicli) Trasferimento di informazione Trasferimento dati e istruzioni tra CPU e memoria Trasferimento dati e istruzioni tra CPU e dispositivi di ingresso/uscita (attraverso le relative interfacce) 10

Esempi di Istruzioni 11

Istruzioni Aritmetico-Logiche Un istruzione aritmetico-logica, ad esempio add RZ, RX, RY viene eseguita in quattro passi L istruzione viene prelevata dalla memoria e scritta nell IR mentre il PC viene incrementato (si tratta della fase di fetch già descritta in precedenza) Viene letto il contenuto dei due registri RX e RY (in pratica l unità di controllo attiva i collegamenti tra i registri RX e RY, individuati dal contenuto dell IR, e i registri di ingresso all ALU e provvede a effettuare il trasferimento dei dati) La ALU opera sui dati letti dal banco dei registri, eseguendo l operazione indicata dal codice compreso nell istruzione (l unità di controllo attiva il collegamento di un pezzo dell IR con l ingresso di controllo dell ALU) Il risultato calcolato dall ALU viene scritto nel registro RZ (anche il registro destinazione viene individuato a partire dal contenuto dell IR) 12

Istruzioni di Trasferimento Un istruzione di trasferimento, ad esempio lw RY, RX, base viene eseguita in cinque passi L istruzione viene prelevata dalla memoria e scritta nell IR mentre il PC viene incrementato Viene letto il contenuto del registro RX La ALU opera sui dati letti dal banco dei registri e sulla base scritta nell IR Il risultato calcolato dall ALU viene utilizzato come indirizzo per la memoria dati Il dato proveniente dalla memoria viene scritto nel registro RY 13

Istruzioni di Controllo Un istruzione di trasferimento, ad esempio beq RX, RY, target salto, viene eseguita in quattro passi L istruzione viene prelevata dalla memoria e scritta nell IR mentre il PC viene incrementato Viene letto il contenuto dei due registri RX e RY La ALU opera sui dati letti dal banco dei registri, eseguendo l operazione indicata dal codice compreso nell istruzione (nel caso dell esempio si tratta di una sottrazione, per verificare poi se il risultato è uguale o diverso da zero); contemporaneamente il contenuto del PC viene sommato al valore del salto per calcolare l eventuale destinazione del salto L esito dell operazione viene utilizzato per decidere quale valore debba essere memorizzato nel PC 14

Unità Funzionali Richieste 15

Durata Indicativa 16

Esempio Esecuzione di una successione di quattro istruzioni per il caricamento di due dati dalla memoria nei registri R01 e R02, la loro somma e la registrazione in memoria del risultato 17

Architettura di una CPU Obiettivo: definire l architettura complessiva di un processore Metodo: partiamo dai componenti che servono per completare l esecuzione delle diverse fasi di ciascuna istruzione Ipotesi semplificativa: assumiamo di avere a disposizione due memorie distinte, una per le istruzioni e una per i dati 18

Fetch Fase di fetch Prelievo istruzione corrente (da PC) Caricamento nell IR Incremento PC Elementi necessari I due registri (PC e IR) Memoria per le istruzioni Sommatore (per incrementare il PC senza l intervento dell ALU) 19

Istruzioni Aritmetico-Logiche Sequenza Lettura di due registri (a meno che uno dei due operandi non sia diretto) Esecuzione di un operazione che coinvolge l ALU Scrittura del risultato in un registro Elementi necessari Registri Ogni lettura richiede un ingresso (il numero del registro) e un uscita (il valore letto) Una scrittura richiede due ingressi (il numero del registro e il valore da scriverci) Servono quindi quattro ingressi (due per la lettura di due registri sorgenti e due per la scrittura) e due uscite (per le due letture) ALU Unità di controllo Indica all ALU quale operazione eseguire Indica ai registri quando leggere/scrivere i dati Attiva le opportune linee di collegamento 20

Trasferimento Dati da Memoria (load) Sequenza Legge un registro perché contiene parte dell indirizzo Usa l ALU per calcolare l indirizzo effettivo della cella di memoria cui si vuole accedere Manda il risultato alla memoria dati Legge dalla memoria dati il valore da scrivere nei registri Elementi Registri Lettura per calcolare l indirizzo Scrittura per salvare il dato trasferito ALU Calcola l indirizzo effettivo Memoria dati Unità di controllo 21

Trasferimento Dati da Memoria (store) Sequenza Legge due registri (uno contiene parte dell indirizzo l altro il dato da scrivere in memoria) Usa l ALU per calcolare l indirizzo effettivo della cella di memoria cui si vuole accedere Manda il risultato alla memoria dati insieme al dato da scrivere Elementi Registri Lettura per calcolare l indirizzo Lettura del dato da trasferire ALU Calcola l indirizzo effettivo Memoria dati Unità di controllo 22

Salti Salti condizionati Calcolo dell indirizzo di destinazione del salto Valutazione della condizione (per capire se saltare o no) Elementi necessari Sommatore aggiuntivo Registri solo in lettura (il risultato non deve essere salvato ma solo esaminato per valutare l esito dell operazione) ALU Unità di controllo Salti non condizionati Sostituire una parte del PC con alcuni dei bit contenuti nell IR Elementi necessari nulla in più 23

Datapath 24

Migliorare le Prestazioni della CPU Frequenza di clock Parallelismo 25

Aumentare la Frequenza di Clock La frequenza di clock Influenza direttamente il tempo di ciclo del data path e quindi le prestazioni di un calcolatore E' limitata dalla tecnologia disponibile 26

Migliorare il Parallelismo Il parallelismo permette di migliorare le prestazioni senza modificare la frequenza di clock Due forme di parallelismo Parallelismo a livello delle istruzioni Architetture pipeline o architetture superscalari Parallelismo a livello di processori Array computer, multiprocessori o multicomputer 27

Architettura Pipeline Organizzazione della CPU come una catena di montaggio La CPU viene suddivisa in stadi, ognuno dedicato all esecuzione di un compito specifico L esecuzione di un istruzione richiede il passaggio attraverso (tutti o quasi tutti) gli stadi della pipeline In un determinato istante, ogni stadio esegue la parte di sua competenza di una istruzione In un determinato istante, esistono diverse istruzioni contemporaneamente in esecuzione, una per ogni stadio 28

Esempio di Pipeline Pipeline in cinque stadi S1 [MI] lettura istruzioni dalla memoria, caricamento IR e incremento PC S2 [LR] lettura dai registri degli operandi richiesti S3 [AL] esecuzione delle operazioni aritmeticologiche necessarie S4 [MD] accesso alla memoria dati (per lettura/load o scrittura/store) S5 [SR] scrittura nei registri dei risultati Stadio 1 Stadio 2 Stadio 3 Stadio 4 Stadio 5 Memoria Istruzioni (MI) Lettura Registri (LR) ALU Memoria Dati (MD) Scrittura Registri (SR) 10 ns 5 ns (AL) 10 ns 10 ns 5 ns 29

Con e Senza Pipeline Esempio a ds Senza pipeline T = 145 Con pipeline T = 80 Rapporto 145/80 = 1.81 Con 1M istruzioni Senza pipeline T 30ms Con pipeline T = 10ms+40ns Rapporto 30/10.00004 = 2.99998 30

Prestazioni di una Pipeline Il tempo di esecuzione (latenza) della singola istruzione non diminuisce, anzi aumenta Il tempo di attraversamento (latenza) della pipeline corrisponde al numero degli stadi (N) moltiplicato per il tempo di ciclo (T) Il tempo di ciclo è limitato dallo stadio più lento! Aumenta il numero di istruzioni completate nell unità di tempo (throughput) Si completa un istruzione a ogni ciclo di clock L incremento di throughput è quasi proporzionale al numero degli stadi! 31

Esecuzione in Pipeline Stadi Stadio 5 (SR) Stadio 4 (MD) Stadio 3 (AL) Stadio 2 (LR) Stadio 1 (MI) Istruzione 1 Istruzione 2 10 ns Istruzione 3 20 ns Istruzione 4 30 ns Istruzione 5 40 ns Istruzione 6 50 ns 60 ns Tempo 32

Esecuzione in Pipeline Stadi Stadio 5 (SR) Istruzione 1 Istruzione 2 Istruzione 1 Istruzione 2 Istruzione 3 Istruzione 1 Istruzione 2 Istruzione 3 Istruzione 4 Istruzione 1 Istruzione 2 Istruzione 3 Istruzione 4 Istruzione 5 Istruzione 2 Istruzione 3 Istruzione 4 Istruzione 5 Istruzione 6 Stadio 4 (MD) Stadio 3 (AL) Stadio 2 (LR) Stadio 1 (MI) Istruzione 1 10 ns 20 ns 30 ns 40 ns 50 ns 60 ns Tempo 33

Esecuzione in Pipeline S1 S2 S3 S4 S5 tempo t1 Istr. 1 t2 Istr. 2 Istr. 1 t3 Istr. 3 Istr. 2 Istr. 1 t4 Istr. 4 Istr. 3 Istr. 2 Istr. 1 t5 Istr. 5 Istr. 4 Istr. 3 Istr. 2 Istr. 1 t6 Istr. 6 Istr. 5 Istr. 4 Istr. 3 Istr. 2 34

Esecuzione in Pipeline Stadi Stadio 5 (SR) Istr. N 4 Istr. N 3 Istr. N 2 Istr. N 1 Istr. N Istr. N+1 Stadio 4 (MD) Istr. N 3 Istr. N 2 Istr. N 1 Istr. N Istr. N+1 Istr. N+2 Stadio 3 (AL) Istr. N 2 Istr. N 1 Istr. N Istr. N+1 Istr. N+2 Istr. N+3 Stadio 2 (LR) Istr. N 1 Istr. N Istr. N+1 Istr. N+2 Istr. N+3 Istr. N+4 Stadio 1 (MI) Istr. N Istr. N+1 Istr. N+2 Istr. N+3 Istr. N+4 Istr. N+5 t1 t2 t3 t4 t5 t6 Tempo In ogni istante ci sono 5 istruzioni in esecuzione 35