Architetture di elaborazione

Documenti analoghi
L architettura di riferimento

L architettura di riferimento

L architettura di riferimento

L architettura di riferimento

La CPU a singolo ciclo

La CPU a singolo ciclo

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

Architettura degli elaboratori CPU a ciclo singolo

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

Architettura degli elaboratori CPU a ciclo singolo

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

Architettura del set di istruzioni (ISA)

L unità di controllo di CPU a singolo ciclo. Sommario

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione

ISA e linguaggio assembler

Il Linguaggio Assembly: Gestione della memoria e controllo

ISA (Instruction Set Architecture) della CPU MIPS

Progetto CPU a singolo ciclo

Architettura di un calcolatore: Introduzione parte 2

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

ISA (Instruction Set Architecture) della CPU MIPS32

Architettura dell elaboratore

Architettura dell elaboratore

Architettura e funzionamento del calcolatore

Calcolatore: sottosistemi

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Progetto CPU a singolo ciclo

Scopo della lezione. Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato

21 March : ESERCITAZIONE 01 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA. I. Frosio

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Architettura di un calcolatore: primi cenni introduttivi. Calcolatore: sottosistemi

Capitolo 5 Elementi architetturali di base

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)

Architettura degli Elaboratori

Struttura di un elaboratore

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Macchina di Riferimento: argomenti

Richiami sull architettura del processore MIPS a 32 bit

architettura degli elaboratori Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

La memoria - tecnologie

Calcolatori Elettronici

Architettura del calcolatore (Seconda parte)

Architettura di una CPU

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di von Neumann

Sistemi e reti CPU Concetti di base

Cenni sull architettura del calcolatore

Architettura di un calcolatore: primi cenni introduttivi

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Linguaggio Assembly e linguaggio macchina

Architettura degli Elaboratori e delle Reti Introduzione alle architetture dei calcolatori

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale

Richiami sull architettura del processore MIPS a 32 bit

Linguaggio Assembly e linguaggio macchina

Fondamenti di Informatica A. A / 1 9

Architettura del Calcolatore

Linguaggio Assembly e linguaggio macchina

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Lezione 2. Architetture HW e SW

Architettura dei calcolatori

Architettura hardware

Memoria centrale (RAM) Registri della CPU. Definizioni. Architettura considerata in CPUSim. Programma in linguaggio macchina

Architettura degli Elaboratori

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore

Architettura dell elaboratore

CPU a ciclo multiplo

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione

La macchina di Von Neumann. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI "PROGRAMMAZIONE I"

Architettura degli elaboratori - II Introduzione

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus

Architettura degli elaboratori - II Introduzione

Architettura e funzionamento del calcolatore

L unità di controllo di CPU a singolo ciclo

Architettura di un elaboratore. Il modello di von Neumann

Architettura del calcolatore

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Architettura dei Calcolatori elettronici

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

FONDAMENTI DI INFORMATICA Lezione n. 10

Architettura del Set di Istruzioni (ISA)

FONDAMENTI DI INFORMATICA Lezione n. 10

Linguaggio macchina e register file

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Transcript:

Architetture degli elaboratori e delle reti Lezione 10 Architetture di elaborazione Architettura di Von Neumann Architetture moderne Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Uniersità degli Studi di Milano L 10 1 Architetture di tipo CISC Che cos è un elaboratore? È una macchina che automaticamente esegue una sequenza di istruzioni di elaborazione di informazioni Architettura (struttura hardware) di un elaboratore: sono necessari: Un modulo in grado di elaborare informazioni (ALU) Un posto doe memorizzare le istruzioni da eseguire à MEMORIA Un posto doe memorizzare i le informazioni da elaborare Un meccanismo per trasferire informazioni da/erso l esterno (IN/OUT) L 10 2

Architettura di Von Neumann Architettura di VON NEUMANN: Dati e Istruzioni sono contenute in una memoria leggibile e scriibile Accesso al contenuto della memoria aiene in base alla posizione (indirizzo) Esecuzione sequenziale: da un istruzione alla seguente I risultati di un operazione sono sempre contenuti nell unico registro della CPU chiamato accumulatore Architettura di Von Neumann: (architettura ad accumulatore) Memoria ALU e UC contenute nella CPU un solo registro: accumulatore Unità di controllo Unità logicoaritmetica (ALU) Input CPU Accumulatore Output L 10 3 Architetture di tipo CISC Architetture moderne: CISC: Complex Instruction Set Computer Eleata complessità delle istruzioni eseguibili Eleato numero di istruzioni disponibili Numerose modalità di indirizzamento per gli operandi dell ALU possono proenire da registri oppure da memoria Indirizzamento diretto, indiretto, con registro base, ecc. Ricchezza del set di istruzioni è istruzioni con tanti formati differenti, a seconda della modalità di indirizzamento di ogni operando complessità di gestione della fase di prelieo o fetch in quanto a priori non è nota la lunghezza dell istruzione da caricare. Eleata complessità della CPU Rallentano i tempi di esecuzione delle operazioni. Eleata profondità dell albero delle porte logiche, utilizzato per la decodifica. L 10 4

CISC s. RISC Statistica di utilizzo delle istruzioni: La maggior parte del tempo di elaborazione iene impiegato per eseguire poche istruzioni semplici. IDEA: à Ottimizzo le istruzioni semplici, trascuro il resto à Set di istruzioni ridotto, solo istruzioni semplici RISC Rank Instruction Aerage Execution Frequency (%) 1 load 22% 2 conditional branch 20% 3 compare 16% 4 store 12% add 8% 6 and 6% 7 sub % 8 moe register-register 4% 9 call 1% 10 return 1% Total 96% L 10 Architetture RISC Architetture moderne: RISC: Reduced Instruction Set Computer IDEA: eseguire soltanto istruzioni semplici Operazioni complesse scomposte in serie di istruzioni semplici da eseguire in un ciclo-base ridotto, ma ottimizzato. CPU semplice à si riducono i tempi di esecuzione delle singole istruzioni Risultato: poche istruzioni, ma molto eloci! à raggiungo / supero approccio CISC Esempi RISC: Architettura semplice: ad esempio, Load-Store gli operandi dell ALU possono proenire solo dai registri, non dalla memoria Dimensione fissa delle istruzioni à semplice gestione della fase di prelieo (fetch) e della decodifica delle istruzioni L 10 6

Tipi di architetture Esempi di architetture moderne di CPU: Accumulator (1 register = 1 indirizzo di memoria) 1 address add A acc ß acc + mem[a] 1+x address add x A acc ß acc + mem[a + x] Stack (posso operare solo sui dati in cima allo stack) 0 address add Mem[ToS] ß Mem[ToS] + Mem[ToS 1] Register-addressed Memory (tanti indirizzi di memoria quanti sono i registri: indirizzamento indiretto) 2 address add A B Mem(A) ß Mem(A) + Mem(B) 3 address add A B C Mem(A) ß Mem(B) + Mem(C) Load/Store (posso operare solamente sui dati contenuti nei registri. Deo prima caricarli dalla memoria). 3 address: add Ra Rb Rc Ra ß Rb + Rc load Ra [Rb] Ra ß Mem[Rb] store Ra [Rb] Mem[Rb] ß Ra L 10 7 Architetture LOAD/STORE I registri ad uso generale in una CPU sono insufficienti a memorizzare tutte le ariabili di un programma Quando un registro dee essere utilizzato per contenere un altra informazione (es. un altra ariabile), si può trasferire l informazione precedente in memoria. Architetture LOAD/STORE: Simili all architettura di Von Neumann, solo con più registri (Register File) Gli operandi dell ALU possono proenire soltanto dai registri contenuti nella CPU e non possono proenire direttamente dalla memoria. Sono necessarie apposite istruzioni di: caricamento (LOAD) dei dati da memoria ai registri; memorizzazione (STORE) dei dati dai registri alla memoria. L 10 8

Architettura load/store elementi principali Architettura load/store la CPU contiene: Registri: Banco di registri di uso generale (Register File) Memoria ad accesso rapido, in cui memorizzare i dati di utilizzo più frequente Program Counter (PC) Contiene l indirizzo dell istruzione corrente da aggiornare durante l eoluzione del programma, in modo da preleare dalla memoria la corretta sequenza di istruzione Instruction Register (IR) Contiene l istruzione in corso di esecuzione. Arithmetic Logic Unit (ALU) Effettua le operazioni aritmetico-logiche fra registri Unità di controllo Cerello della CPU Coordina i flussi di informazione, in funzione dell istruzione in corso Seleziona l operazione opportuna della ALU. Unità di controllo CPU indirizzo Memoria DATI indirizzo PC Register File istruzione ALU IR dato Memoria ISTRUZIONI L 10 9 Sommario Architettura di Von Neumann e architetture moderne. La CPU il ciclo di esecuzione di un istruzione. L 10 10

Unità centrale di elaborazione (CPU) Compito della CPU: eseguire in sequenza le istruzioni che costituiscono il programma assegnato all elaboratore. ciclo di esecuzione di istruzioni Eseguire un istruzione significa: acquisire l istruzione da eseguire: FETCH interpretare l istruzione e i dati a disposizione: DECODIFICA eseguire calcoli / scelte / trasferimenti informazione ESECUZIONE L 10 11 Ciclo esecuzione istruzione Prelieo istruzione: Fase di Fetch Istruzioni e dati risiedono nella memoria principale Decodifica Esecuzione Accesso a memoria Write Back Esecuzione L esecuzione di un programma inizia quando il registro PC punta alla prima istruzione del programma MIPS: suddiisione dell esecuzione in tre sottofasi L 10 12

Lettura istruzione (Fetch) Fase di FETCH Il segnale di controllo per la lettura iene iniato alla memoria Trascorso il tempo necessario Memoria DATI all accesso in memoria, la parola indirizzata (istruzione) iene letta dalla memoria e trasferita nel Register File registro IR Unità di controllo CPU ALU Prelieo istruzione: Fase di Fetch Decodifica Esecuzione Accesso a memoria PC IR Write Back Memoria PROGRAMMA L 10 13 Decodifica dell istruzione DECODIFICA: l istruzione contenuta nel registro IR iene decodificata per essere eseguita Predisposizione della CPU all esecuzione dell istruzione: Se l istruzione è aritmetico-logica, è necessario recuperare gli operandi Apertura delle ie di comunicazione appropriate Lettura/scrittura di registri Lettura/scrittura erso memoria Lettura/scrittura dall esterno (I/O) Prelieo istruzione: Fase di Fetch Decodifica Esecuzione Accesso a memoria Write Back L 10 14

Write-back: Riscrittura risultato Esecuzione: Vengono selezionati i circuiti combinatori appropriati per l esecuzione dell istruzione e determinate in fase di decodifica. Accesso a MEMORIA: SCRITTURA: se il risultato dell operazione dee essere posto in memoria, esso iene iniato al bus dati. L indirizzo iene posto sul bus indirizzi e si comanda una scrittura (WRITE) in memoria. LETTURA: se il dato a preleato dalla memoria, l indirizzo iene posto sul bus indirizzi e si attia una lettura (READ), che porta la parola sul bus dati. Write-back: Il risultato dell operazione può essere memorizzato in un registro. Chiusura ciclo: Mentre iene eseguita un istruzione, il contenuto del PC iene incrementato in modo da puntare alla prossima istruzione da eseguire. L 10 1 Ciclo di esecuzione di un istruzione Prelieo istruzione: Fase di Fetch Il normale flusso di esecuzione di un programma può essere interrotto da Eccezioni: Decodifica Esecuzione Accesso a memoria Eccezioni ESTERNE: un segnale di interruzione esterno (INTERRUPT) per una richiesta di interento. INTERNE: Un segnale di errore di calcolo (es. diisione per 0) Write Back L 10 16

Registri della CPU: Register File Register file: elemento di una CPU che contiene tutti i registri di uso generale (general purpose registers) Banco di registri: 2 K registri da N bit ciascuno Solitamente, 2 porte di uscita, 1 in ingresso Operazioni: SELEZIONE: fornendo in ingresso il numero del registro (#reg) LETTURA: non modifica il contenuto del registro selezionato SCRITTURA: Inserisce <ContenutoWrite> nel registro selezionato (comando: W) #Reg read 1 K #Reg read 2 Contenuto 1 K #Reg write K Register File MIPS: N W 2 K registri da N bit Contenuto 2 Contenuto Write N N L 10 17 Register file (CPU MIPS) Register File: famiglia di CPU MIPS : 32 registri da 32 bit 1 linea di ingresso 2 linee di uscita #Reg read 1 #Reg read 2 Contenuto 1 #Reg write Register File MIPS: 32 W 32 registri da 32 bit Contenuto 2 Contenuto Write 32 32 L 10 18

Register File MIPS: Porta di LETTURA Doppia porta di lettura 2 MUX di selezione registro 2 registri possono essere letti contemporaneamente 32 L 10 19 Register file MIPS: Porta di SCRITTURA Porta di scrittura Sugli ingressi di ogni registro fornisco: Ingresso C: ( decoder(i) AND W ) Se no ad ogni impulso su W scrierei in tutti i registri Ingresso D: Dato da scriere nel registro (32 bit) W #reg write Dato 32 L 10 20

Indirizzi nella memoria principale MEMORIA La memoria è organizzata in 2 K parole (word) di N bit N: ampiezza della memoria 2 K : altezza della memoria In genere, la dimensione della parola di memoria coincide con la dimensione dei registri della CPU (CPU word) Le operazioni di load/store aengono in un singolo ciclo Capacità della memoria = (N.words) x (dim.word [bytes]) k = 32 (2 32 = 4 Gwords) x (32 bit = 4 bytes) = 16 Gbytes Random Access Memory RAM Il tempo di accesso alla memoria è fisso e indipendente dalla posizione della parola alla quale si uole accedere. L 10 21 Indirizzi nella memoria principale bus dati A = 2 k -1 bus indirizzi Altezza della memoria (numero di parole) parole indirizzi A = 1 b 0 b 1.. b n-1 A = 0 Ampiezza della memoria (dimensione della parola) L 10 22

La memoria nel MIPS MEMORIA La memoria è ista come un grande array uni-dimensionale di bytes array uni-dimensionale di words Indirizzo di memoria unioco per ciascun byte Indirizzamento al byte l indice punta ad un byte di memoria Indirizzamento alla parola La memoria è ista come un array di PAROLE 32 bit: gli indirizzi di parole consecutie differiscono di un fattore 4 Alignment (allineamento) L indirizzamento al byte mi permette di scriere a caallo tra 2 parole Le parole deono aere indirizzi MULTIPLI della loro dimensione Aligned Not Aligned 8 7 6 4 3 2 1 0 byte word word byte 0 1 2 3 L 10 23 Endianess e alignment MEMORIA Endianess: come si rappresenta un dato su più bytes Big Endian: Word address = address of MSB (most significant byte) Motorola 68k, PowerPC, MIPS, Sparc, HP-PA byte addresses word addresses 9 8 7 6 4 3 2 1 0 MSB LSB LSB MSB little endian big endian Little Endian: Word address = address of LSB (least significant byte) Intel x86, DEC Vax, DEC Alpha word address little endian: MSB bytes: 0 1 2 3 big endian: MSB L 10 24

Disposizione Big-Endian Big-endian I byte sono numerati partendo dalla posizione più significatia; Sono big-endian: MIPS, PowerPC, ARM Indirizzo di parola è indirizzo del suo byte più significatio Indirizzo di byte Parola: 0 0 1 2 3 Parola: 4 4 6 7 Parola: 8 8 9 10 11 Parola: 2 k 4 2 k -4 2 k -3 2 k -2 2 k -1 IEEE 74 L 10 2 Disposizione Little-Endian Little-endian: I byte sono numerati partendo dalla posizione meno significatia; Sono little-endian: famiglia INTEL Indirizzo di parola è indirizzo del suo byte meno significatio Indirizzo di byte Parola: 0 3 2 1 0 Parola: 4 7 6 4 Parola: 8 11 10 9 8 Parola: 2 k 4 2 k -1 2 k -2 2 k -3 2 k -4 IEEE 74 L 10 26

Indirizzamento della memoria: MIPS MIPS32 memory: 32-bit words big-endian Indirizzo word 0 1 2 Indirizzo byte 0 4 8 0 1 2 3 4 6 7 8 9 10 11 2 k /4 2 k 2 K 2 K + 1 2 K + 2 2 K +3 L 10 27