Architettura dei calcolatori

Slides:



Advertisements
Presentazioni simili
La struttura fisica e logica di un elaboratore
Advertisements

Architettura di un sistema informatico Hardware
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 7 - Tabelle hash Alberto Montresor Università di Trento This work is licensed under the Creative.
Algoritmi e Strutture Dati
Com’è fatto un elaboratore?
3. Architettura Vengono descritte le principali componenti hardware 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,
L’Architettura del Sistema di Elaborazione
Architettura dell’elaboratore
Informatica: il trattamento automatico dell’informazione
ARCHITETTURA DEGLI ELABORATORI
Appunti di Informatica
Architettura del calcolatore
ARCHITETTURA DI UN ELABORATORE
Unità centrale di processo
Hardware e software Hardware Software
Architettura di una CPU
Architettura del calcolatore
Corsi di Laurea in Biotecnologie
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
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.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
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.
Architettura degli elaboratori
LA MEMORIA CENTRALE. La memoria nella struttura generale del calcolatore MEMORIA CONTROLLO INGRESSO E USCITA ARITMETICA E LOGICA CPU Dispositivi esterni.
IL PROCESSORE I MICROPROCESSORI INTEL Il microprocessore è un circuito integrato dotato di una struttura circuitale in grado di effettuare un determinato.
HARDWARE  HARDWAREHARDWARE  FUNZIONAMENTOFUNZIONAMENTO  INDICE DISPOSITIVIINDICE DISPOSITIVI.
Elementi fondamentali dell’ Architettura di di un elaboratore elettronico.
Informatica - CDL in Scienze Politiche e delle Relazioni Internazionali A.A Architettura di un calcolatore Ing. Simona Colucci.
Rappresentazione dell’ Informazione Digitale e Binario
Gestione della memoria
Sistemi e Applicazioni per l’Amministrazione Digitale
PRESENTAZIONE di RICCARDO
Introduzione all’Informatica
Architettura e funzionalità
LE ARCHITETTURE NON VON NEUMANN
Microcontrollori e microprocessori
Logica binaria Moreno Marzolla
I microprocessori Il microprocessore è un circuito integrato costituito da silicio. Il microprocessore svolge fondamentalmente due funzioni: sovraintende.
Cammino dei Dati (Datapath)
Organizzazione fisica
STRUTTURA GENERALE DI UN ELABORATORE
I BUS È un insieme di fili conduttori che permette il passaggio di dati tra le varie periferiche del pc.
Architetture non Von Neumann
Architettura del Calcolatore
Architettura dei calcolatori
componenti di un computer Roma – ATA “E. Sereni” – 1 agosto 2016
L’architettura dei calcolatori
ALU (Arithmetic Logic Unit)
Architettura del calcolatore
Informatica per laurea triennale facoltà di medicina LEZIONE 3 Il processore, la memoria e l’esecuzione dei programmi AA 2002/2003 ©Morpurgo,, Zanaboni.
IL MODELLO DI VON NEUMANN
Controllo e microprogrammazione
Classe III A A.s – 2012 Programma di Informatica
Azione delle istruzioni
LOGICA DI FUNZIONAMENTO
Azione delle istruzioni
Parti interne del computer
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Relazioni tra CPU e Memoria e Dispositivi I/O
Programmazione Procedurale
Transcript della presentazione:

Architettura dei calcolatori Moreno Marzolla Dipartimento di Informatica—Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/

Architettura dei calcolatori Copyright © 2016, 2017, Moreno Marzolla, Università di Bologna, Italy (http://www.moreno.marzolla.name/teaching/FINFA/) This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. Architettura dei calcolatori

Architettura dei calcolatori Cos'è un computer? Dal punto di vista tecnologico è quasi impossibile dare una definizione La tecnologia evolve rapidamente I computer di oggi sono molto diversi da quelli degli anni '60 I computer di domani saranno quasi sicuramente molto diversi da quelli di oggi Nonostante questo, dal punto di vista funzionale ci sono delle caratteristiche comuni Architettura dei calcolatori

Architettura dei calcolatori Cos'è un computer? E' un dispositivo in grado di Elaborare dati Memorizzare dati Trasferire dati da e verso l'esterno Eseguire operazioni di controllo e coordinamento tra le parti di cui è composto Controllo I/O Ambiente Esterno Elaborazione Memoria Architettura dei calcolatori

Architettura di Von Neumann Dati e programmi sono rappresentati allo stesso modo (da sequenze di bit) e contenuti nella stessa memoria János Lajos Margittai Neumann, 1903—1957, nato in Ungheria e naturalizzato americano col nome di John Von Neumann Architettura dei calcolatori

Struttura di un calcolatore: Architettura di Von Neumann Processore (CPU) Memoria Sottosistema di interfaccia (I/O) Bus di sistema Esegue le istruzioni elementari richieste dai programmi Mantiene Dati e Programmi Permette di comunicare dati e programmi alla macchina e di ottenere i risultati (tastiera, scheda audio, stampante, schermo, mouse...) Memorizzazione Elaborazione + Controllo Trasferimento dati da/verso l'esterno Architettura dei calcolatori

Architettura dei calcolatori Architettura a Bus Semplicità Una sola linea di connessione cui è possibile collegare più dispositivi, anziché un nuovo collegamento per ogni coppia di dispositivi che devono interagire tra loro Estensibilità Nuovi dispositivi possono essere aggiunti in modo semplice Standardizzazione E' possibile definire normative che consentono a dispositivi di produttori diversi di interagire correttamente Limitata capacità Al crescere del numero dei dispositivi, il bus diventa un fattore limitante (collo di bottiglia) delle prestazioni del sistema Architettura dei calcolatori

Architettura dei calcolatori Memoria Processore (CPU) Memoria Sottosistema di interfaccia Bus di sistema Architettura dei calcolatori

Architettura dei calcolatori Memoria e CPU Bus Dati Indirizzi Controllo Memoria R1 R2 ALU Rn PC Controllo IR PSW Architettura dei calcolatori

Architettura dei calcolatori RAM 8 bit Indirizzo Parola 1 2 3 La RAM è una sequenza di Byte Ogni Byte è identificato dalla sua posizione (indirizzo di memoria) Byte 0, Byte 1, Byte 2, ... Alcune CPU sono in grado di accedere ai singoli byte; altre accedono a parole (es., gruppi di 4 Byte) 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Architettura dei calcolatori

Architettura dei calcolatori Unità di misura 1 Kilo Byte (1KB) 210 = 1024 ≈1000 Byte 1 Mega Byte (1MB) 220 = 1.048.576 ≈1000000 Byte 1 Giga Byte (1GB) 230 = 1.073.741.824 ≈109 Byte 1 Tera Byte (1TB) 240 = 1.099.511.627.776 ≈1012 Byte Architettura dei calcolatori

Funzionamento della RAM Linee di selezione 16 celle di memoria da 8 bit ciascuna linea 0 0 linea 1 0 linea 2 0 linea 3 0 linea 4 0 linea 5 0 linea 6 1 linea 7 0 linea 8 0 linea 9 0 linea 10 0 linea 11 0 linea 12 0 linea 13 0 linea 14 0 linea 15 0 Byte selezionato 1 1 1 1 01102 Bus indirizzi Bus di controllo Leggi/Scrivi Decodificatore 1 1 1 1 Bus Dati Architettura dei calcolatori

Esempio: lettura byte all'indirizzo 01102 Bus Dati Indirizzi = 0110 Controllo = Read Memoria R1 Indirizzo Contenuto 0 00001010 1 10101000 2 00000000 3 00000000 4 01010010 5 11110000 6 01011010 … ... R2 ALU Rn PC Controllo IR PSW Architettura dei calcolatori

Esempio: lettura byte all'indirizzo 01102 Bus Dati = 01011010 Indirizzi = 0110 Controllo = Read Memoria R1 Indirizzo Contenuto 0 00001010 1 10101000 2 00000000 3 00000000 4 01010010 5 11110000 6 01011010 … ... R2 ALU Rn PC Controllo IR PSW Architettura dei calcolatori

Esempio: scrittura di 000001012 all'indirizzo 01102 Bus Dati = 00000101 Indirizzi = 0110 Controllo = Read Memoria R1 Indirizzo Contenuto 0 00001010 1 10101000 2 00000000 3 00000000 4 01010010 5 11110000 6 00000101 … ... R2 ALU Rn PC Controllo IR PSW Architettura dei calcolatori

Architettura dei calcolatori Vari tipi di memoria Accesso lento/molto lento Costo basso Vastissima capacità Accesso molto veloce Costo elevato Limitata capacità Accesso veloce Costo contenuto Ampia capacità Hard Disk CD/ DVD RAM CPU Cache I/O I/O La memoria cache contiene una copia del contenuto delle locazioni di memoria accedute recentemente I programmi tendono a dimostrare località spaziale e località temporale nell'accesso alla memoria Località spaziale: se in un certo momento accedo alla locazione di memoria x, è molto probabile che in seguito accederà a locazioni “vicine” (es., x + 1) Località temporale: se in un certo momento accedo alla locazione di memoria x, è molto probabile che a breve distanza di tempo accederò nuovamente a x Bus di sistema Architettura dei calcolatori

Architettura dei calcolatori Hard Disk meccanici Asse di rotazione Movimento delle testine By Eric Gaba, Wikimedia Commons user Sting, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=11278668 Negli hard disk meccanici i dati vengono memorizzati in tracce concentriche sulle superfici di dischi magnetici rotanti Un blocco composto da testine di lettura/scrittura "sorvola" tutte le superfici per accedere ai dati richiesti Architettura dei calcolatori

Architettura di Von Neumann Processore (CPU) Memoria Sottosistema di interfaccia (I/O) Bus di sistema Architettura dei calcolatori

Architettura dei calcolatori CPU Bus Dati Indirizzi Controllo Memoria R1 R2 ALU Rn PC Controllo IR PSW Architettura dei calcolatori

Architettura dei calcolatori Componenti della CPU N registri di uso generale R1...RN Di solito, ma non necessariamente, un registro contiene 32 bit (1 parola) PC (Program Counter) Indica l'indirizzo di memoria che contiene la prossima istruzione da eseguire IR (Instruction Register) Contiene il codice numerico dell'istruzione che deve essere eseguita PSW (Program Status Word) Informazioni sullo stato del programma (es: se l'ultima operazione aritmetica ha causato overflow, se l'ultima operazione aritmetica ha dato zero come risultato, ...) Architettura dei calcolatori

Ciclo Fetch-Decode-Execute Preleva dalla memoria l'istruzione da eseguire; l'istruzione viene letta dall'indirizzo di memoria che si trova in PC; il contenuto viene posto in IR Decode Esamina l'istruzione memorizzata in IR per decidere quali operazioni richiede Esegue l'istruzione memorizzata in IR, incluso il recupero dalla memoria degli eventuali parametri necessari ad eseguirla, e deposito del risultato. Aggiorna il PC per la prossima istruzione. Execute Architettura dei calcolatori

Architettura dei calcolatori Tipi di istruzioni Istruzioni Aritmetico-Logiche Esempio: Somma due valori contenuti in due registri; salva il risultato in un terzo registro Istruzioni di controllo del flusso di esecuzione Esempio: Salta ad eseguire l'istruzione il cui codice è contenuto nella cella di memoria all'indirizzo X Istruzioni di letture/scrittura di memoria Esempio: Copia il valore contenuto nella cella di memoria all'indirizzo X all'interno del registro Ry Istruzioni di Input/Output Esempio: Invia il contenuto del registro Rx al dispositivo di I/O numero y Architettura dei calcolatori

Formato di una istruzione Le istruzioni sono rappresentate da sequenze di bit In alcuni processori ogni istruzione è codificata con 4 Byte = 32 bit = 1 parola Altri (es., Intel x86) usano codifiche con numero variabile di Byte Se le istruzioni sono codificate con 32 bit, l'IR deve essere ampio esattamente 32 bit All'interno dei 32 bit, occorre indicare: Il tipo di istruzione da eseguire (somma, prodotto, salto, confronto, copia da memoria...) Gli eventuali parametri dell'istruzione (quali registri sono coinvolti, quali locazioni di memoria sono coinvolte, ecc.) Architettura dei calcolatori

Architettura dei calcolatori Esempio Una ipotetica istruzione di somma “Somma i valori contenuti nei registri Ri e Rj; poni il risultato nel registro Rk” Supponiamo di avere 256 possibili registri Una possibile codifica dell'istruzione è la seguente: ADD Ri, Rj, Rk 00000001 8 bit 8 bit 8 bit Codice istruzione i j k Architettura dei calcolatori

Architettura dei calcolatori Esempio Esempio: 1 parola = 4 Byte 1 Byte 1 Byte 1 Byte 1 Byte 00000001 00011100 00000010 10000000 Istruzione= ADD Primo Addendo: Registro 28 Secondo Addendo: Registro 2 Risultato va in Registro 128 Architettura dei calcolatori

Architettura dei calcolatori Esempio Indirizzo Contenuto 32 bit = 1 parola Memoria R2 3710 100010 000000012 R28 2110 ALU 100110 000111002 100210 000000102 R128 100310 100000002 100410 000001102 PC 100010 100510 001001102 Controllo IR 100610 010001102 100710 101101102 PSW Architettura dei calcolatori

Architettura dei calcolatori Fetch Indirizzo Contenuto 32 bit = 1 parola Memoria R2 3710 100010 000000012 R28 2110 ALU 100110 000111002 100210 000000102 R128 100310 100000002 100410 000001102 PC 100010 Supponiamo che i registri siano tutti a 32 bit, incluso l'IR Il PC contiene l'indirizzo dell'inizio della parola (= sequenza di 4 byte contigui) contenente il codice dell'istruzione da eseguire. In questo caso i 4 byte sono quelli che si trovano agli indirizzi 1000, 1001, 1002, e 1003 100510 001001102 Controllo IR 100610 010001102 100710 101101102 PSW Architettura dei calcolatori

Architettura dei calcolatori Fetch Indirizzo Contenuto 32 bit = 1 parola Memoria R2 3710 100010 000000012 R28 2110 ALU 100110 000111002 100210 000000102 R128 100310 100000002 100410 000001102 PC 100010 Il contenuto della word puntata da PC viene ricopiato nell'IR 100510 001001102 Controllo IR 00000001000111000000001010000000 100610 010001102 100710 101101102 PSW Architettura dei calcolatori

Architettura dei calcolatori Decode Indirizzo Contenuto 32 bit = 1 parola Memoria R2 3710 100010 000000012 R28 2110 ALU 100110 000111002 100210 000000102 R128 100310 100000002 100410 000001102 PC 100010 ADD Il contenuto della word puntata da PC viene ricopiato nell'IR 100510 001001102 Controllo IR 00000001000111000000001010000000 100610 010001102 100710 101101102 PSW Architettura dei calcolatori

Architettura dei calcolatori Execute Indirizzo Contenuto 32 bit = 1 parola Memoria R2 3710 100010 000000012 R28 2110 ALU 100110 000111002 100210 000000102 R128 5810 100310 100000002 100410 000001102 PC 100010 ADD L'unità di controllo decodifica l'istruzione, e capisce che si tratta di una operazione di somma. Istruisce quindi la ALU di eseguire una somma tra i registri indicati nel codice dell'istruzione, e memorizzare il risultato nel registro destinazione. Nel caso si verifichino situazioni anomale (esempio, overflow) il registro PSW viene aggiornato di conseguenza. In questo caso non ci sono modifiche in quanto l'operazione viene eseguita correttamente. 100510 001001102 Controllo IR 00000001000111000000001010000000 100610 010001102 100710 101101102 PSW Architettura dei calcolatori

Architettura dei calcolatori Fetch Indirizzo Contenuto 32 bit = 1 parola Memoria R2 3710 100010 000000012 R28 2110 ALU 100110 000111002 100210 000000102 R128 5810 100310 100000002 100410 000001102 PC 100410 L'unità di controllo incrementa il PC per puntare all'istruzione successiva. Dato che stiamo assumendo che tutte le istruzioni richiedano 32 bit (1 word), l'istruzione successiva si trova all'indirizzo di memoria 1000+4. Si noti che non è detto che l'istruzione successiva da eseguire si trovi nella word successiva. Ad esempio, l'istruzione eseguita potrebbe ordinare al processore di saltare (JUMP) ad eseguire l'istruzione contenuta in un indirizzo di memoria diverso, indicato nel codice dell'istruzione. In tal caso il PC verrà modificato per contenere l'indirizzo a cui saltare. 100510 001001102 Controllo IR 00000001000111000000001010000000 100610 010001102 100710 101101102 PSW Architettura dei calcolatori

Architettura dei calcolatori Esempio Ipotetica istruzione di trasferimento registro → memoria “Copia il contenuto del registro Ri nella cella di memoria di indirizzo m” Una possibile codifica STORE Ri, m 00000010 8 bit 16 bit Codice istruzione i m Architettura dei calcolatori

Architettura dei calcolatori Domanda 00000010 8 bit 16 bit Codice istruzione i m Considerando l'istruzione STORE Ri,m rappresentata come sopra, quanto grande può essere la memoria accessibile all'istruzione? Risposta L'indirizzo m della destinazione è espresso con 16 bit L'intero più grande rappresentabile con 16 bit è 216-1 = 65535 Quindi la memoria massima indirizzabile con l'istruzione STORE è di 65536 bytes (numerati da 0 a 65535) Architettura dei calcolatori

Architettura dei calcolatori Domanda La CPU di un computer ha il registro PC di 20 bit e una memoria RAM di un Mbyte (=220 Byte). E' possibile aumentare la sua memoria RAM destinata all'esecuzione dei programmi senza cambiare la CPU? Architettura dei calcolatori