Note sull architettura del calcolatore

Documenti analoghi
Note sull architettura del calcolatore

Architettura dei calcolatori

Componenti e connessioni. Capitolo 3

Esame di INFORMATICA Lezione 4

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

Informatica giuridica

Architettura dei calcolatori

Struttura hw del computer

Corso di Informatica

Memoria Secondaria o di Massa

Architettura hardware

Architettura dei computer

o studiare l architettura del calcolatore significa:

Le Memorie. Si distinguono per: Supporti sui quali le informazioni vengono fisicamente memorizzate.

Informatica. Informazione L Informazione è un dato, o un insieme di dati, interpretati in un determinato contesto.

Architettura di un calcolatore

Architettura dei calcolatori I parte Introduzione, CPU

Abilità Informa/che. capitolo 3. Prof. Fabio Calefato a.a Giurisprudenza

Corso di Informatica

LEZIONE 2 Il processore e la memoria centrale

Il computer P R O F. L O R E N Z O P A R I S I

Il computer P R O F. L O R E N Z O P A R I S I

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Dal sistema operativo all' hardware

ARCHITETTURA DI UN ELABORATORE

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

Pipeline. Esempio pipeline lineare a 5 stadi. Tempificazione S1 S2 S3 S4 S5. Istruzioni. Istruzione 4. Istruzione 3. Istruzione 2. tempo.

Organizzata secondo il modello della macchina di von Neumann definita nei tardi anni 40 all Institute for Advanced Study di Princeton.

Struttura dell elaboratore elettronico

Modulo: Elementi di Informatica

I dispositivi di input/output: il mouse

Elementi di base del calcolatore

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

Lezione 15. L elaboratore Elettronico

Informatica e Bioinformatica anno 2013/2014

Architettura del calcolatore

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Il processore. Istituzionii di Informatica -- Rossano Gaeta

LA MEMORIA NEL CALCOLATORE

19/11/2013 HARDWARE INTRODUZIONE: COSA E COME COMPRIAMO?

Personal Computer: introduzione

L architettura del calcolatore

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

La memoria principale

Porte Input/Output (I/O Connectors)

La macchina di Von Neumann

Come è fatto un computer

Elaborazione dell informazione

Architettura di Von Neumann

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

SISTEMI INFORMATIVI AZIENDALI

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Lo scanner. Informatica di Base A e B -- Rossano Gaeta 82

Componenti del Sistema di Elaborazione

Introduzione al funzionamento di un calcolatore elettronico

LA STRUTTURA DEL COMPUTER

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Note sull architettura del calcolatore

Come funzionano i computer

Architettura del Calcolatore. Danilo Ardagna Politecnico di Milano

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Architettura del Calcolatore

Informatica di Base. Ancora su numeri. La struttura dei sistemi informatici.

Il Modello di von Neumann (2) Prevede 3 entità logiche:

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

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Corso di Informatica - Lez.1

Componenti di un processore

Architettura del calcolatore. L Hardware. A.A Informatica 56

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Fondamenti di informatica: un po di storia

Il bus. Bus di sistema: insieme di collegamenti (solitamente in rame) che connette tutti i componenti di un architettura

Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:

Informatica. Il calcolatore: concetti di base. Vibo Valentia, 24 ottobre 2005 Ercole Colonese IBM S/360

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

Programma del corso. Architettura del calcolatore. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Elementi di Programmazione

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1

Corso Programmazione

MEMORIA CENTRALE MEMORIA CENTRALE INTERAZIONE CPU-MEMORIA CENTRALE

Il Processore: l unità di controllo

Fondamenti di Informatica

Lezione 1: L hardware

Che cos è l informatica?

LA STRUTTURA DEL COMPUTER. Enrico Terrone A. S: 2014/2015

ARCHITETTURA DI UN CALCOLATORE ELETTRONICO

Le fasi classiche. Informatica di Base -- R.Gaeta 1

Informatica: Lez. 1. Andrea Payaro. (European Logistics Association)

Sottosistemi ed Architetture Memorie

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

Sistemi informatici in ambito radiologico. Introduzione al corso. Programma del corso. Dott. Ing. Andrea Badaloni A.A

Computer e Programmazione

Architettura dei computer

Corso: Informatica+ Andrea Cremonini. Lezione del 20/10/2014

Memoria Secondaria o di Massa

- Dispensa II - LA CODIFICA DELL INFORMAZIONE E L ARCHITETTURA DEL CALCOLATORE

ARCHITETTURA DEL CALCOLATORE

Informatica e Bioinformatica

Fondamenti d Informatica 1

Transcript:

Note sull architettura del calcolatore Ultima modifica: 26/09/2008 1 Informatica Scienza che studia la rappresentazione e l elaborazione dell informazione L informatica ha a che vedere con I calcolatori non di piu di quanto l astronomia abbia a che vedere coi telescopi 2

Algoritmo Problema Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo Sequenza ordinata di istruzioni che risolve il problema specifico PASSO 1: Fai qualcosa PASSO 2: Fai qualcosa PASSO n: Fermati, hai finito 3 Problema: consumo medio (km/l) PASSO 1: ACQUISISCI i valori per litri utilizzati, km alla partenza e km all arrivo PASSO 2: PONI il valore di distanza percorsa a (km all arrivo km alla partenza) PASSO 3: PONI il valore di km al litro a (distanza percorsa / litri utilizzati) PASSO 4: STAMPA il valore di km al litro PASSO 5: FERMATI 4

Problema: Equazioni di II o grado ax 2 + bx + c = 0 5 Algoritmo: Equazioni di II o grado PASSO 1: ACQUISISCI i valori per a, b e c PASSO 2: PONI il valore di Δ a b 2 4ac PASSO 3: SE il valore di Δ è minore di zero allora PASSO 4: STAMPA Non esistono soluzioni reali ALTRIMENTI PASSO 5: SE il valore di Δ è uguale a zero allora PASSO 6: STAMPA Due soluzioni reali coincidenti PASSO 7: PONI il valore di x a ( b/2a) PASSO 8: STAMPA il valore di x ALTRIMENTI PASSO 9: STAMPA Due soluzioni reali distinte PASSO 10: PONI il valore di x 1 a ( b Δ ) 2a PASSO 11: PONI il valore di x 2 a ( b+ Δ ) 2 a PASSO 12: STAMPA il valore di x 1 e di x 2 PASSO 13: FERMATI 6

Problema: Test di Primalità Il numero n è primo? 7 Algoritmo: Test di Primalità PASSO 1: ACQUISISCI il valore per n PASSO 2: PONI il valore di primo a 1 PASSO 3: PONI il valore di d a 2 PASSO 4: RIPETI i passi da 5 a 7 fintanto che primo è uguale a 1 e d è minore di n PASSO 5: SE n è divisibile per d PASSO 6: PONI il valore di primo a 0 ALTRIMENTI PASSO 7: PONI il valore di d a (d+1) PASSO 8: SE il valore di primo è uguale a 1 PASSO 9: STAMPA È primo! ALTRIMENTI PASSO 10: STAMPA Non è primo! PASSO 11: FERMATI 8

Istruzioni (I) Istruzioni di elaborazione PONI il valore della variabile a espressione aritmetica Istruzioni di trasferimento ingresso ACQUISISCI il valore della variabile, uscita STAMPA il valore di variabile, STAMPA il messaggio 9 Istruzioni (II) Istruzioni di controllo Istruzioni alternative (condizionali)» SE una condizione è vera allora» sequenza di istruzioni» ALTRIMENTI» sequenza di istruzioni Istruzioni ripetitive (cicliche)» RIPETI finché una condizione èvera» sequenza di istruzioni 10

Algoritmo ed Automazione Se siamo capaci di specificare un algoritmo per risolvere un problema, allora siamo in grado di automatizzare la soluzione Bisogna saper costruire una macchina capace di effettuare i passi dell algoritmo 11 Algoritmo e calcolatore Calcolatore: macchina complessa in grado di elaborare informazioni in forma codificata Un calcolatore è un esecutore di algoritmi in cui un algoritmo viene descritto per mezzo di un programma ed il programma è una sequenza di istruzioni espresse in un linguaggio comprensibile al calcolatore (linguaggio di programmazione) 12

Hardware e Software All interno di un calcolatore distinguiamo: Hardware: tutto ciò che si tocca, circuiti, chip etc.» Il corpo del calcolatore Software: tutto ciò che non si tocca : programmi, dati, etc.» L intelligenza del calcolatore Un calcolatore è un sistema congiunto hardware/software 13 Calcolatore e periferiche 14

Calcolatore e periferiche schermo modem scanner tastiera Calcolatore stampante mouse hard disk floppy disk lettore di CD-ROM 15 Struttura logica Architettura di von Neumann (1946) rete di interconnessione (bus di sistema) processore memoria interfacce di I/O periferiche 16

Funzionamento (schema) La memoria contiene dati ed i programmi (istruzioni) Il processore ripete all infinito le seguenti azioni: preleva una nuova istruzione dalla memoria la decodifica (capisce cosa deve fare!) la esegue (lo fa!) L esecuzione di un istruzione può comportare» Elaborazione e/o Trasferimento (memoria processore, I/O processore) Le periferiche permettono al calcolatore di interagire con il mondo esterno 17 Calcolatore e Informazione In un calcolatore i dati e le istruzioni sono codificati in forma binaria testo disegni immagini numeri musica IN OUT sequenze di bit Calcolatore dispositivi di conversione bit {0, 1} 18

Perché i bit (I) Tom vuole trasmettere a Ralph un informazione numerica {0..9} 9 0 1 8 2 7 3 6 5 4 Ralph Tom Tom e Ralph lavorano in base dieci 19 Perché i bit (II) Una soluzione migliore 0 Linea 0 1 0 Linea 1 1 Tom 0 1 Linea 5 Ralph 0 Linea 9 1 20

Perché i bit (III) Una soluzione ancora migliore Cifra 0 Linea 3 2 1 0 1 0 10 Linea 0 Linea 1 2 3 Tom 10 10 Linea 2 Linea 3 Ralph 4 5 1 6 7 8 9 21 Rappresentazione Naturali (I) BASE DIECI Cifre: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Rappresentazione posizionale (123) dieci significa 1 10 2 + 2 10 1 + 3 10 0 BASE DUE Cifre: 0, 1 Rappresentazione posizionale (11001) due significa 1 2 4 + 1 2 3 + 0 2 2 + 0 2 1 + 1 2 0 (= 25) dieci 22

Rappresentazione Naturali (II) ESPRESSIONE DI UN NUMERO NATURALE IN BASE DUE Esempio: n = 47 inizio fine div 2 div 2 div 2 div 2 div 2 div 2 Algoritmo del mod e div QUOZIENTE RESTO 47 1 23 1 11 1 5 1 2 0 1 1 0 (101111) due 23 Rappresentazione Naturali (III) ALCUNE PROPRIETÀ Potenza della Base: 2 p (100 00) due p Intervallo di rappresentabilità con p bit 0 1 2 p -1 N 00 00 p 00 01 p p Intervallo 8 [0, 255] 16 [0, 65535] 32 [0, 4294967295] 11 11 p 24

Il problema del riporto IL CALCOLATORE LAVORA CON NUMERO FINITO DI BIT p = 16 bit A = 0111011011010101 (30421) B = 1010100001110111 (43127) A + B è maggiore di 2 p -1(65535) quindi non è rappresentabile su p bit, allora si dice che la somma ha dato luogo ad un riporto (carry) In generale, ci vogliono p+1 bit per rappresentare la somma di due numeri di p bit 25 Rappresentazione del testo tastiera C a 1000011 1100001 schermo Simboli > Sequenze di bit stampante r o 1110010 1101111 Simboli < Sequenze di bit 26

Rappresentazione Testo (ASCII) Simbolo 0 1 2 9 A B C a b ~ N. 48 49 50 58 65 66 67 97 98 126 127 Sequenze di bit 0110000 0110001 0110010 0111001 1000001 1000010 1000011 1100001 1100010 1111110 1111111 1000011 1100001 1110010 1101111 0100000 1100001 1101110 1101001 1100011 1101111 0101101 Caro amico, 27 Rappresentazione dell informazione Ogni informazione viene codificata con un numero naturale, rappresentato in forma binaria all interno del calcolatore Num. naturali, interi, razionali (con un n. finito di decimali) Caratteri stampabili Colore dei pixel sullo schermo Ampiezza del volume dell altoparlante Lunedi Martedi Mercoledi Giovedi Venerdi Sabato Domenica codifica 1 0 2 5 3 6 4 28

Architettura di von Neumann (ripresa) rete di interconnessione (bus di sistema) processore memoria interfacce di I/O periferiche 29 Trasferimento dell informazione Il bus è un insieme di fili conduttori, su ciascuno dei quali può essere impostata una tensione Su ciascun filo del bus, le tensioni lecite sono soltanto due Tensione alta (5V, 3.3V) Tensione bassa (0V) A ciascuna di queste tensioni è associato un valore binario (ad esempio: 5V=1, 0V=0) Possiamo quindi dire che, in un dato istante, su ciascuno dei fili del bus è presente un bit 30

Struttura logica della memoria (I) indirizzi h bit controllo dati k bit Sinonimi: Cella, word, parola, locazione di memoria 2 h celle di k bit ognuna Ogni cella ha un indirizzo 0 1 2 2 h -2 2 h -1 k bit OPERAZIONI 1. LETTURA di UNA cella 2. SCRITTURA di UNA cella 31 Struttura logica della memoria (II) indirizzi h bit controllo dati k bit scegli cella 0 1 2 k bit lettura scrittura 2 h -2 2 h -1 32

Dimensione massima della memoria Valori tipici per k (in bit): 8 (byte), 16, 32 h bit per gli indirizzi 2 h celle h Numero massimo di celle (2 h ) 16 65 536 64K 20 1 048 576 1M 22 4 194 304 4M 24 16 777 216 16M 32 4 294 967 296 4G 2 10 = 1024 = 1K (kilo) 2 20 = 1 048 576 = 1 M (mega) 2 30 = 1 073 741 824 = 1G (giga) 2 40 = 1 099 511 627 776 = 1T (tera) 33 tanto per fissare le idee Dimensione Ordine di Informazione memoria grandezza testuale 1 byte 10 0 un carattere 1 kilobyte 10 3 una pagina scritta 1 megabyte 10 6 due o tre racconti 1 gigabyte 10 9 una biblioteca dipartimentale 1 terabyte 10 12 la biblioteca di una università 34

RAM e ROM Random Access Memory (RAM) Ogni cella può essere acceduta indipendentemente dalle altre Il tempo di accesso è costante (5-10 ns) Volatile Costi: ~40 euro per Gbyte (sett. 2008) Read-Only Memory (ROM): unità RAM su cui si può solo leggere Memoria protetta e permanente EROM, PROM, EPROM 35 Struttura logica dello spazio di I/O indirizzi h bit controllo dati k bit scegli interfaccia lettura scrittura periferiche 36

Struttura logica del processore indirizzi h bit registro indirizzi controllo Registro di stato dati k bit registro dati registri generali contatore di programma registro istruzioni Clock Arithmetic Logic Unit R0 R1 R15 37 Struttura logica del Bus bus indirizzi bus controllo bus dati CPU Memoria I/O 38

Le linee del bus BUS DATI. Fili su cui vengono trasferiti i dati tra il processore e le altre componenti BUS INDIRIZZI. Fili che specificano l indirizzo della sorgente o della destinazione dei dati che si trovano sul Bus Dati. BUS CONTROLLO. Fili che specificano l accesso e l uso del Bus Dati e del Bus Indirizzi. Esempi: Lavora: filo che indica che bisogna lavorare Memoria - I/O: filo che indica chi deve lavorare Leggi - Scrivi: filo che indica cosa bisogna fare Fatto: filo che indica che il lavoro è stato fatto Clock, Alimentazione 39 Esempio di Temporizzazione (lettura in memoria) clock lavora indirizzo lett./scritt. mem./io. dati fatto tempo 40

Programmi ed Istruzioni La funzione principale di un calcolatore consiste nell esecuzione da parte del processore di un programma memorizzato in memoria Un programma è una sequenza di istruzioni Un istruzione è un informazione codificata che specifica cosa fare e dove farlo codice operativo Stringa di bit operandi TIPI DI ISTRUZIONE Trasferimento Elaborazione Controllo 41 Ciclo della CPU Accensione Inizio Fase di Fetch (prelievo) Carica la prossima istruzione dalla memoria Esegui l istruzione Fase di esecuzione Fine 42

Fase di Esecuzione La fase di Esecuzione consiste in due sottofasi: 1. Per prima cosa la CPU decodifica l istruzione, cioè capisce cosa deve fare e dove deve farlo. 2. Poi la CPU esegue l istruzione, cioè fa quello che ha capito al passo precedente. Il passaggio dalla Fase di Esecuzione alla Fase Fine viene effettuato eseguendo un istruzione particolare. 43 Processore di esempio Quello visto nei precedenti lucidi, con 16 registri generali R0, R1,, R15 Il processore sa eseguire 16 operazioni diverse Inserito in un sistema in cui c è una memoria RAM di 256 celle, ciascuna di 16 bit h=8, k=16 Ogni istruzione (che sta in una cella di memoria) è una sequenza di 16 bit 44

Esempio di Istruzione Un istruzione specifica: cosa fare e dove farlo Codice Operativo Operandi 0000 0001 00110011 Load Registro 1 Cella 51 Carica (load) il contenuto della cella di indirizzo 51 nel registro R1 45 Tipi di Istruzioni 16 Istruzioni; 16 Registri; 256 Parole di memoria codice operativo TRASFERIMENTO LOAD Reg Mem (M CPU) STORE Reg Mem (M CPU) IN Reg IO (I/O CPU) OUT Reg IO (I/O CPU) ELABORAZIONE ADD Reg_dest Reg_sorg SUB Reg_dest Reg_sorg SET Reg_dest Numero CONTROLLO JMP Mem JZ Mem JC Mem nome registro indirizzo di memoria o di registro di I/O codice operativo nome registro nome registro unused numero nome registro codice operativo codice operativo unused indirizzo di memoria 46

Programma (I) memoria ACQUISISCI il valore di a ACQUISISCI il valore di b PONI il valore di c a (a + b) STAMPA il valore di c memoria cpu bus 00110010 (50) 00110011 (51) 00110100 (52) I/O a b c Spazio di I/O 00000000 (0) 00000001 (1) 47 Programma (II) ACQUISISCI il valore di a ACQUISISCI il valore di b PONI il valore di c a (a + b) STAMPA il valore di c IN MEMORIA MNEMONICO 0100 0001 00000000 IN R1 0 0001 0001 00110010 STORE R1 50 0100 0010 00000000 IN R2 0 0001 0010 00110011 STORE R2 51 0110 0010 0001xxxx ADD R2 R1 0001 0010 00110100 STORE R2 52 0101 0010 00000001 OUT R2 1 48

Programma (III) memoria 00110010 (50) 00110011 (51) 00110100 (52) a b c cpu bus I/O 01100100 (100) 01100101 (101) 01100110 (102) 0100000100000000 0001000100110010 0100001000000000 0001001000110011 0110001000010000 0001001000110100 0101001000000001 49 Fase di fetch 100 101 102 0100000100000000 0001000100110010 0100001000000000 0001001000110011 0110001000010000 0001001000110100 0101001000000001 100 101 102 0100000100000000 0001000100110010 0100001000000000 0001001000110011 0110001000010000 0001001000110100 0101001000000001 101 Contatore di programma 102 Contatore di programma ##### Registro istruzioni STORE R1 50 Registro istruzioni CPU CPU 50

Fase di esecuzione Esecuzione di STORE R1 50 1. Il processore esegue un operazione di scrittura in memoria all indirizzo 50 (0011 0010) 2. I contenuti scritti nella cella di memoria 50 sono letti dal registro generale R1 50 R1 51 Ciclo della CPU (ripreso) Carica la prossima istruzione dalla memoria Esegui l istruzione 1. Copia nel registro istruzioni il contenuto della cella puntata dal contatore di programma 2. Incrementa il contatore di programma 1. Decodifica l istruzione 2. Esegui l istruzione 52

Istruzioni di controllo PRIMA DELLA FASE DI FETCH 100 JMP 104 101 ADD R1 R2 102 SUB R3 R2 103 LOAD R4 0x20 104 STORE R2 0x30 DOPO LA FASE DI FETCH 100 JMP 104 101 ADD R1 R2 102 SUB R3 R2 103 LOAD R4 0x20 104 STORE R2 0x30 DOPO LA FASE DI ESECUZIONE 100 JMP 104 101 ADD R1 R2 102 SUB R3 R2 103 LOAD R4 0x20 104 STORE R2 0x30 CP [100] RI [XXX XXX] CP [101] RI [JMP 104] CP [104] RI [JMP 104] 53 Registro di stato Z C Alcune istruzioni di elaborazione modificano i bit del Registro di stato Se l ultima istruzione di elaborazione che è stata eseguita ha prodotto un valore pari a zero, allora il bit Z vale 1; altrimenti vale 0 Il bit C riporta il valore del carry (riporto/prestito) dell ultima istruzione di elaborazione che è stata eseguita Alcune istruzioni di controllo (salti condizionati) eseguono il salto se i bit del registro di controllo assumono certi valori JZ = salta se il bit Z vale 1 JC = salta se il bit C vale 1 54

Salto: Esempio I (Supponiamo per ipotesi a>0) SE b è divisibile per a PONI il valore di c a 1 ALTRIMENTI PONI il valore di c a 0 Variabile Indirizzo a 48 b 49 c 50 INDIRIZZO ISTRUZIONE 100 LOAD R0 48 101 LOAD R1 49 102 SUB R1 R0 103 JZ 106 104 JC 108 105 JMP 102 106 SET R2 #1 107 JMP 109 108 SET R2 #0 109 STORE R2 50 55 Salto: Esempio II (Supponiamo per ipotesi b>0) 1. ACQUISISCI il valore di a 2. ACQUISISCI il valore di b 3. RIPETI i passi 4-5 finché b>0 4. PONI il valore di a ad (a + 1) 5. PONI il valore di b a (b 1) 6. PONI il valore di c ad a Variabile Indirizzo a 48 b 49 c 50 INDIRIZZO ISTRUZIONE 100 IN R1 0 101 STORE R1 48 102 IN R2 0 103 STORE R2 49 104 SET R3 #1 105 ADD R1 R3 106 SUB R2 R3 107 JZ 109 108 JMP 105 109 STORE R1 50 110 OUT R1 1 56

Linguaggi ad alto livello Esempio di programma in linguaggio C++: test di primalità #include <iostream.h> void main() { int n; int primo = 1; int d = 2; cin >> n; // numero da testare // indica se n è primo // divisore corrente // ACQUISISCI while ( (d < n) && // RIPETI ( primo == 1) ) if ( n % d == 0 ) // SE primo = 0; // PONI else // ALTRIMENTI d = d+1; if ( primo == 1) cout << "E' PRIMO"; // STAMPA else cout << "NON E' PRIMO!"; } 57 I processori moderni - pipeline Costituiti da un insieme di blocchi indipendenti (stadi di pipeline) che possono lavorare in parallelo Pentium 4: 20 stadi di pipeline, quindi un massimo di 20 istruzioni in esecuzione contemporaneamente a regime Non e sempre possibile sfruttare tutti gli stadi in parallelo 58

Trasferimento dell informazione memoria interfacce I/O processore periferiche 59 Gerarchie di Bus Se un bus viene collegato a molti dispositivi si avrà un calo delle prestazioni a causa dei seguenti motivi: Aumenta la lunghezza del bus e quindi aumenta il tempo di propagazione delle informazioni lungo il bus La domanda totale dei dati da trasferire tende ad avvicinarsi alla capacità del bus M C Bus di SISTEMA Interfaccia al bus di espansione (controller) Bus di ESPANSIONE I/O I/O I/O I/O Rete, Modem, stampante 60

Bus di espansione e slot Interfaccia (scheda) slot 61 Bus di espansione e slot (2) 62

Volatilità della memoria La memoria RAM immagazzina le informazioni sotto forma di carica di un condensatore In assenza di tensione, le informazioni vanno perse Volatilità della memoria Sono necessari dispositivi che mantengano l informazione anche in assenza di tensione (memorie di massa, permanenti, non-volatili) Il fenomeno fisico con il quale l informazione viene memorizzata sarà necessariamente diverso da quello della RAM» Floppy disk, hard disk: dischi magnetici» CD-ROM, DVD dischi ottici» Compact Flash memorie a stato solido 63 Struttura logica del disco indirizzi dati controllo cpu memoria I/O Cella Gbyte Volatile Molto veloce Settore 100 Gbyte Permanente Molto lenta 64

Struttura fisica del disco (I) traccia testina settore rotazione traccia byte indirizzo dati settore 65 Struttura fisica del disco (II) superficie 7 superficie 6 superficie 1 superficie 0 cilindro capello gap testina polvere impronta digitale particella di fumo superficie del disco 66

Tempo di accesso al disco TRE COMPONENTI tempo di ricerca: tempo per posizionare la testina sulla traccia latenza: tempo necessario affinché il settore cominci a ruotare sotto la testina tempo di trasferimento: tempo necessario affinché l intero settore passi sotto la testina Il tempo di accesso è variabile e dipende dal settore scelto e dallo stato corrente del disco 67 Tempo di accesso al disco: Esempio Velocità di rotazione = 7200 giri/min 8.33 ms/giro Tempo di spostamento (del braccio sulla traccia adiacente) = 0.02 ms Numero tracce = 1000 Settori/traccia = 50 Byte/settore = 512 Tempo di accesso Migliore (ms) Peggiore (ms) Medio (ms) Tempo di ricerca 0 999 0.02 = 19.98 500 0.02 = 10 Latenza 0 8.33 8.33/2 = 4.17 Trasferimento 8.33/50 = 0.17 8.33/50 = 0.17 8.33/50 = 0.17 Totale 0.17 28.48 14.34 68

Memoria RAM vs. Hard Disk MEMORIA RAM DISCO Unità di accesso cella (8, 16, 32 bit) settore (512 byte) In un PC 1-2 Gbyte 80-500 Gbyte Volatile/permanente Volatile Permanente Tempo di accesso 5 10 ns 0.2-20 ms Costo 50-100 /Gbyte 0.1-0.5 /Gbyte 69 CDROM avvallamento (1) pit (0) superficie del disco prisma diodo laser 70

CDROM, DVD, BLU-RAY L informazione è memorizzata sfruttando il medesimo principio Rispetto al CDROM, un DVD ha tracce più vicine ed avvallamenti/pit di dimensione minore Maggior capacità a parità di superficie Necessaria maggior precisione nella lettura CDROM: 650/800 Mbyte (74-90m di musica) DVD: 4.7/9.6 Gbyte (1,5h di filmato hi-def) HD-DVD: 15/30 Gbyte Blu-ray: 25/50 Gbyte (gia prodotte versioni a 200Gb) 71 Memorie Compact Flash Strutturalmente simili a memorie ROM, con possibilità di cancellare blocchi di memoria (Flash-EPROM) Connesse tramite bus plug-and-play USB (Universal Serial Bus) Capacita : 1-10GB (oggi) Tempi di accesso paragonabili a quelli di un HD Asimmetrici: lettura (veloce) e scrittura (lenta) Costo contenuto (10-20 euro/gb) 72

Dispositivi ad Accesso Sequenziale Un settore non è più identificato da un indirizzo Lettura/scrittura: i settori sono acceduti in sequenza testina + settore + dati byte 73 Aumentare le prestazioni del sistema Il tempo di accesso alla RAM è di ~5-10 ns Un processore con clock a 3Ghz potrebbe eseguire fino ad un massimo di 3 istruzioni per ns Se un processore deve accedere alla memoria, si blocca per molto tempo in attesa dei dati La velocità effettiva del sistema computer è quella della memoria, non quella della CPU La memoria è un collo di bottiglia per le prestazioni del sistema computer Migliorare la velocità di accesso alla memoria significa migliorare notevolmente le prestazioni d insieme 74

Principio di località (I) PRINCIPIO DI LOCALITÀ Ricerca sugli autori italiani del 900 Località temporale. Se lo studente ha portato un libro sulla scrivania per guardarlo, probabilmente ne avrà nuovamente bisogno non molto tempo dopo. Località spaziale. Se uno studente ha preso un testo su Pasolini, è probabile che gli servirà un testo su Pavese (che nello scaffale si trova vicino al precedente) 75 Gerarchie di memoria PRINCIPIO DI LOCALITÀ Località temporale. È probabile che un oggetto (dato, istruzione) a cui si è fatto riferimento venga nuovamente richiesto in tempi brevi. Località spaziale. È probabile che oggetti che si trovano vicini ad un oggetto a cui si è fatto riferimento vengano richiesti in tempi brevi. velocità CPU capacità costo ($/bit) alta registri bassa alto RAM bassa Hard-Disk alta basso 76

Memoria Cache RAM CPU CACHE memoria piccola (~pochi Mbyte), veloce (< 1ns) e costosa memoria grande, lenta ed economica 77 Cache rete di interconnessione (bus di sistema) cache processore memoria interfacce di I/O Cache on-chip o Cache di livello 1 (L1) periferiche 78

Esempio di organizzazione registro indirizzi indirizzi cache controllo BUS dati registro dati 79 Importanza della cache La presenza di una memoria cache efficiente (che, cioè, risponde al posto della RAM nel 95-98% dei casi) è fondamentale per le prestazioni del sistema computer La presenza della cache complica notevolmente l architettura di un sistema di elaborazione Problema del rimpiazzo Problema della scrittura (coerenza dei dati) 80