Architettura di un elaboratore Il modello di von Neumann
4(5) componenti fondamentali unita di elaborazione: CPU memoria centrale: RAM periferiche (memoria di massa) bus di sistema
bus di sistema CPU RAM
CPU elettronica interpreta le istruzioni del linguaggio macchina accede alle locazioni di memoria della memoria centrale una delle componenti piu importanti è la ALU (Arithmetic Logic Unit)... è il processore (Intel Core i7, Penthium, G4, Celeron, Athlon, Centrino, ecc.)
Memoria centrale contiene le informazioni che servono durante la computazione è elettronica è ad accesso casuale (random) contiene i programmi e i dati durante l elaborazione Esempio: come sto usando la RAM del mio pc adesso?
Periferiche memorie di massa: dischi, cd-rom, floppy, nastri, ecc. Servono a memorizzare i dati da una sessione all altra. video tastiere, mouse, trackpad, ecc. stampanti scanner ecc.
Il funzionamento della macchina di von Neumann CPU estrae i le istruzioni e i dati dalla RAM CPU decodifica ed esegue le istruzioni istruzioni di calcolo: CPU scrive i risultati istruzioni di trasferimento: CPU coordina il trasferimento dalle periferiche
Sincronizzazione Le operazioni della CPU devono essere sincronizzate con le operazioni delle altre componenti: Clock di sistema determina la durata dell intervallo di tempo necessario per una singola operazione Esempio: determiniamo il clock di questo computer
Codifica dei dati e delle istruzioni Tutte le informazioni vengono rappresentate mediante sequenze di 0 e di 1 (bit: Binary DigiT) Altra unita di misura utilizzata: byte (sequenza di otto bit)
Quanti bit mi servono? 1 bit: due informazioni 2 bit: quattro informazioni 3 bit: otto informazioni... 8 bit (un byte): 256 informazioni
Kilo byte 2 10 (1024) B Mega byte 2 10 (1024) K Giga byte 2 10 (1024) M Tera byte 2 10 (1024) G Quasi tutte le dimensioni si esprimono in bytes. Esempio: dimensioni della RAM e del disco di questo calcolatore. RAM 2048 MB (perche?) disco 47 + 24 GB
Kilo byte 2 10 (1024) B Mega byte 2 10 (1024) K Giga byte 2 10 (1024) M Tera byte 2 10 (1024) G Quasi tutte le dimensioni si esprimono in bytes. Esempio: dimensioni della RAM e del disco di questo calcolatore. RAM 2048 MB (perchè?) disco 47 + 24 GB
Rappresentazione dell informazione numerica Numeri naturali: (semplice) rappresentazione binaria Numeri interi: uso il primo bit per il segno Numeri reali: virgola fissa: un intero (parte intera) e un razionale (parte decimale) virgola mobile: mantissa ed esponente
Rappresentazione dei caratteri Codice ASCII (American Standard Code for Information Interchange) 7 bit, 128 combinazioni, codifico lettere maiuscole, minuscole e digit da 0 a 9... non e l unico ma gli altri differiscono di poco.
Istruzioni sequenze di bit costituite di due parti: Codice operativo Operando
Organizzazione della RAM Parola (word) del calcolatore La RAM e una sequenza di word (più sono meglio è)............... bit1 bit2 bit3 bit32 prima parola seconda parola terza parola... parole da 32 bit
registro degli indirizzi (AR) k bit indirizzano 2 k parole l indirizzamento permette la lettura/scrittura di celle di memoria i dati vengono mantenuti nel registro dei dati (DR) lettura: loading scrittura: storing
0 AR... k = 10... 32 bit 32 bit... RAM... DR lett. scritt.... 1023
Bus di sistema Serve (essenzialmente all unità di elaborazione, CPU) per comunicare In generale comunicano un master e uno slave È composto di piu (sotto)bus: bus di dati (trasferisce dati) bus di indirizzi (trasferisce...) bus di controlli (...)
Esempio: operazione di lettura dalla RAM master: CPU slave: RAM quattro fasi: la CPU carica l indirizzo della parola da leggere in AR e lo manda sul bus degli indirizzi richiesta di lettura: la CPU manda l istruzione di lettura sul bus dei controlli
a questo punto la RAM diventa master e la CPU slave e la RAM mette sul bus dei dati il contenuto della parola indirizzata e la spedisce in DR la RAM mette sul bus dei controlli l istruzione che segnala il termine... è necessario sincronizzare le operazioni
Componenti della CPU Unità di controllo Orologio di sistema Unità aritmetico logica (ALU) Registri (per l accesso veloce) DR (h bit), AR (k bit) Registro Istruzione corrente (CIR) (h bit) Program counter (PC) (k bit) Registo delle interruzioni (INTR) Registri operandi ALU: A e B Registri di lavoro e registro di stato (SR)
SR ALU A PC INTR B CIR working clock U.di Controllo working DR AR
Periferiche e loro interfacce Per comunicare con le periferiche si usano piccole CPU dedicate: interfacce (intelligenti) Le interfacce sono dotate di unità di controllo proprie e di registri
Registri per le interfacce I/O Registro dati della periferica (PDR) manda i dati sul bus dei controlli Registro comando della periferica (PCR) manda i valori sul bus dei controlli Registro di stato della periferica (PSR) contiene informazioni sullo stato della periferica e può essere collegato direttamente al registro INTR
Esecuzione: tre fasi per ogni istruzione fetch: carico l istruzione interpretazione: determino il tipo di istruzione e gli operandi esecuzione: eseguo l istruzione sugli operandi determinati al passo precedente... ciclo della CPU
Esempio Programma per il calcolo dell espressione (a+b)*(c+d) k = 10, h = 16, a, b, c, d letti dallo standard I Fetch della prima istruzione: PC 00 0000 0000 AR 00 0000 0000 carica l istruzione all indirizzo 0 nei registri
0 DR 0100 0000 0001 0000 0100 0000 0001 0000... 16 bit CIR 0100 0000 0001 0000 1023 RAM...... a questo punto e finita la fase di fetch e devo interpretare: 0100 00 (i primi 6 bit nel CIR) corrispondono a leggi 00 0001 0000 (gli ultimi 10 bit nel CIR) corrispondono alla cella numero 16 esecuzione
AR 0 0100 0000 0001 0000 00 0001 0000... DR 16 0000 0001 0001 1111 0001 0000 0001 1111 RAM...... PDR 0001 0000 0001 1111 1023
Esercizi Completare l esempio Seguire un esempio che faccia uso di istruzioni di branching (i.e. che modificano il contenuto del PC) Come si implementano le istruzioni iterative?