ARCHITETTURA DEL CALCOLATORE Modello di Von Neumann Tempo totale 180 min. Inserire esercitazione (es. glossario termini, scheda componenti, ….)
Sommario Hardware e software Cenni di algebra di Boole Struttura CPU MEMORIA CENTRALE INTERFACCIA DI I/O BUS Hardware e software
Cenni di algebra di Boole Il bit Premettiamo che per bit si intende un simbolo che può assumere solo due valori, spesso indicati sulla carta : con 0/1, vero/falso, on/off, mentre a livello circuitale dal livello di tensione 0V oppure 5V, corrente 0 mA oppure 20 mA
Cenni di algebra di Boole Oggetti rappresentabili Con 1 bit si possono individuare due oggetti (0, 1), con 2 bit 4 oggetti (00, 01, 10, 11) con n bit 2n oggetti.
Cenni di algebra di Boole registro Dal punto di vista realizzativo, un dispositivo elettronico in grado di memorizzare n bit si dice registro a n bit. Es. registro ad 8 bit: 1
Cenni di algebra di Boole Gruppi di bit e multipli 8 bit = 1 Byte Il bit è abbreviato con la b il Byte con la B 1 KB = 1 KByte = 210 Byte = 1024 Byte 1 MB = 220 Byte = circa 1000 000 Byte 1 GB = 230 Byte = circa 1000 000 000 Byte 1 TB = 240 Byte = circa 1000 000 000 000 B 1 Kb = 1 Kbit = 210 bit = 1024 bit ….
Struttura John Von Neumann Negli anni Cinquanta John Von Neumann ideò un computer: molto semplice se paragonato a quelli attuali decisamente innovativo all'epoca, chiamato Macchina di Von Neumann
Struttura Descrizione Componenti Esecutore (CPU) Memoria Interfacce di I/O BUS
Struttura Descrizione Esecutore Memoria Si tratta di una macchina dotata di un esecutore (la CPU Central Processing Unit) in grado di: scandire (leggere, capire ed eseguire) un elenco di istruzioni (programmi) e accedere a dati memorizzati in un organo di memoria: MC memoria centrale;
Struttura Descrizione Esecutore I/O l'esecutore è in grado anche di scambiare dati con delle locazioni di memoria presenti su particolari dispositivi, dette interfacce di I/O (Input/Output), che provvedono ai trasferimenti con i dispositivi periferici che consentono lo scambio di informazioni con l'esterno, quali tastiera, monitor e stampanti.
Struttura Descrizione istruzioni macchina In relazione alla specifica realizzazione della CPU, è definito un insieme di sequenze binarie (set istruzioni), normalmente di lunghezza multipla di 8 bit, dette istruzioni macchina, che specificano precise azioni da eseguire. Esempio set istruzioni 00000011 IN leggere un valore da tastiera 00000010 OUT inviare un valore sul monitor 00000100 ADD sommare il contenuto dei registri A e B 00000101 SET B copiare il valore contenuto in A in B
Struttura Descrizione bus CPU, MC, interfacce di I/O sono collegate attraverso un sistema strutturato di conduttori detto bus
Struttura Schema Ricapitolare i componenti e descrivere il funzionamento della Cpu (prelievo istruzione, decodifica, esecuzione) ed eventuale lettura scrittura su memoria o I/O
Struttura Evoluzione L'evoluzione tecnologica e quella delle architetture non hanno mantenuto lo stesso passo. Attualmente ci troviamo nella situazione in cui la quasi totalità dei sistemi di elaborazione ha un tipo di architettura che fa riferimento a quella di Von Neumann
Struttura Esempio Vediamo ora, con un semplice esempio, di capire come funziona la macchina di Von Neumann. Ci occuperemo solo della parte di esecuzione
Struttura Esempio Voglio che la mia macchina di Von Neumann esegua la somma di due numeri prelevati da tastiera e visualizzi a video risultato Devo: predisporre un algoritmo risolutivo - programmatore tradurlo in un linguaggio (sequenza di istruzioni) comprensibile al mio esecutore (CPU) – programma compilatore caricarlo in memoria centrale (MC) – prg.caricatore farlo eseguire all’esecutore - CPU
Struttura Esempio Soluzione p.to 3-4 Uso Simulazione I punti 3 (caricamento) e 4 (esecuzione) li simuleremo tramite il modello riportato nelle slide che seguono
Struttura Esempio Soluzione p.to 3 Caricamento Illustrare a parole il funzionamento
Struttura Esempio Soluzione p.to 4 Esecuzione IN
Struttura Esempio Soluzione p.to 4 Esecuzione SET B
Struttura Esempio Soluzione p.to 4 Esecuzione IN
Struttura Esempio Soluzione p.to 4 Esecuzione ADD
Struttura Esempio Soluzione p.to 4 Esecuzione OUT
Struttura Componenti CPU MEMORIA CENTRALE INTERFACCIA DI I/O BUS (Dati, Indirizzi, Controllo) Esaminiamo nel dettaglio i componenti fondamentali.
CPU Ha il compito di eseguire il ciclo istruzione; in pratica, intesa come black box, è in grado di effettuare operazioni di lettura/scrittura della memoria centrale o dei registri di I/O e di interpretare i codici delle istruzioni generando tutti i segnali elettrici necessari a svolgere l'operazione richiesta. L'attività della CPU è scandita da un segnale impulsivo periodico detto clock.
CPU sottosistemi Al suo interno abbiamo diversi sottosistemi. UG (UNITA DI GOVERNO). ALU (UNITA ARITMETICO LOGICA). BUFFER REGISTRI BUS
CPU sottosistemi BUFFER MDR (BUFFER DATI) MAR (BUFFER INDIRIZZI) REGISTRI IR (INSTRUCTION REGISTER). PC (PROGRAM COUNTER). ACC (REGISTRO ACCUMULATORE).
CPU sottosistemi la logica di interruzione la logica di controllo del bus
UG (UNITA DI GOVERNO). CLOCK È l'unità di governo dell'intera CPU; riceve in ingresso dal registro IR, che in seguito assumeremo a 8 bit, il codice dell'istruzione macchina; in base a esso vengono generati tutti i segnali di temporizzazione dei dispositivi interni ed esterni. Si tratta di un sistema le cui transizioni sono cadenzate dal clock
ALU (UNITA ARITMETICO LOGICA). All'ALU è demandato il compito di effettuare le operazioni logiche e aritmetiche sulle sequenze binarie lette dalla memoria centrale o dai registri di I/O. È importante capire che la ALU è un sistema combinatorio ed è caratterizzata da quanti bit può elaborare simultaneamente; si definisce così il grado di parallelismo della CPU.
ACC (REGISTRO ACCUMULATORE). Tipico dei primi elaboratori, è il registro sempre coinvolto nelle operazioni di ALU, ovvero che fornisce uno (o l'unico) operando e memorizza il risultato.
B (REGISTRO GENERALI DATI). Un secondo registro (ma potrebbe essere anche più di uno) che memorizza temporaneamente i dati nella CPU, eventualmente inviandoli alla ALU come secondo operando.
MEMORIA CENTRALE La memoria centrale (MC) è un dispositivo contenente un elevato numero di registri (chiamati locazioni di memoria o celle di memoria) in cui la CPU può leggere o scrivere dei valori. La dimensione di ogni cella è normalmente 8 bit = 1 byte Ogni locazione è identificata da un indirizzo (un numero binario che identifica univocamente la cella).
MEMORIA CENTRALE
MEMORIA CENTRALE esempio memoria da 8 byte Indirizzo (3 bit) Contenuto (8 bit) 000 00000000 001 01001000 010 01110111 011 00010000 100 11110011 101 10010000 110 00010011 111 11111100
MEMORIA CENTRALE Oggi le MC sono realizzate con dispositivi a semiconduttore. Esse possono scambiare con la CPU un byte per volta, in lettura o scrittura; la scelta del byte da scambiare è determinata da un secondo tipo di informazione, che deve essere fornita dalla CPU: l'indirizzo trasmesso sul bus, parte indirizzi. Ipotizziamo che la nostra CPU emetta indirizzi a 16 bit e pertanto possa indirizzare fino 216 re- gistri di memoria centrale (65536); gli indirizzi partono quindi da 0 e arrivano a 65535.
MEMORIA CENTRALE BUS INDIRIZZI Memoria centrale CPU BUS DATI BUS CONTROLLO
MEMORIA CENTRALE MEMORIA CENTRALE Che dimensioni in bit hanno i due bus? Ind. Contenuto 000 00000000 001 01001000 010 01110111 011 00010000 100 11110011 101 10010000 110 00010011 111 11111100 BUS INDIRIZZI 3 bit CPU BUS DATI 8 bit BUS CONTROLLO
MEMORIA CENTRALE caratteristiche La memoria centrale ha due caratteristiche fondamentali : che il tempo per trasferire un dato è dello stesso ordine di quello tipico di lavoro della CPU; che l'accesso è casuale: ciò significa che l'ordine di accesso può essere uno qualunque
MEMORIA CENTRALE tipologie RAM la parte di memoria centrale su cui è possibile sia leggere sia scrivere, ma che è volatile, ovvero perde i dati se non alimentata. ROM: la parte di MC non volatile ma su cui la CPU può solo leggere si chiama ROM (Read Only Memory).
MEMORIA CENTRALE ROM Si tratta di un tipo di memoria fondamentale, in cui i valori dei dati memorizzati sono predisposti in fase di fabbricazione; all'avvio la CPU carica un valore predefinito nel program counter e a quell'indirizzo deve trovare una serie di istruzioni valide: bisogna quindi utilizzare una ROM almeno per il programma di avvio.
INTERFACCIA DI I/O Input/Output Ogni dispositivo aggiuntivo (unità di ingresso, di uscita, dischi ecc.) interagisce autonomamente con il resto del sistema mediante un'interfaccia (circuito di raccordo) connessa al bus di sistema. L'aggiunta di una nuova interfaccia connessa al bus permette quindi di aggiungere dispositivi inizialmente non previsti nel sistema, senza modificare quelli esistenti. Queste interfacce mostrano alla CPU almeno due registri su cui appoggiare i dati in ingresso e in uscita; essi sono accessibili con specifiche istruzioni macchina.
INTERFACCIA DI I/O INPUT (UNITA DI INGRESSO). Permette all'utente di interagire con la macchina (per esempio utilizzando una tastiera numerica) per introdurre informazioni codificate con uno o più byte. OUTPUT (UNITA DI USCITA). Permette alla macchina di trasferire a una periferica uno o più byte che codificano informazioni (es. monitor)
INTERFACCIA DI I/O
BUS Il bus è il sistema di interconnessione strutturato che fornisce i percorsi per il trasferimento dei dati, degli indirizzi e dei segnali di controllo necessari allo scambio dei dati tra gli altri moduli. Fisicamente consiste in piste tracciate su circuito stampato e alcuni componenti elettronici per mantenere la correttezza delle forme d'onda dei segnali trasmessi.
BUS suddivisione Il bus è diviso in almeno quattro sezioni: dati, indirizzi, controlli e alimentazioni.
bus dati Il bus dati è bidirezionale e condiviso da tutti i moduli, quindi sono previste regole per evitare conflitti. Tramite i segnali di controllo si decide chi debba assumere la gestione del bus (come vedremo in seguito potrebbe non essere solo la CPU a poter pilotare il bus); successivamente viene abilitata solo la memoria o la periferica interessata tramite un segnale specifico chip select derivato dagli indirizzi emessi.
bus indirizzi Il bus indirizzi è unidirezionale (da chi pilota, di norma la CPU, alle memorie o le interfacce di I/O). Se il bus indirizzi ha n bit, si possono indirizzare 2n locazioni di memoria centrale.
bus controlli Il bus controlli ha diversi segnali, tra cui certamente gli strobe (impulsi) di comando della lettura o della scrittura, i segnali per l'acquisizione del controllo del bus, i segnali di interruzione che consentono a un'interfaccia di I/O di chiedere servizio alla CPU, i chip select, il reset e i clock.
bus alimentazioni Il bus alimentazioni distribuisce la massa e le tensioni di alimentazioni positive e negative.
Hardware e software La Macchina di Von Neumann ci consente di capire bene la differenza tra hardware e software.
Hardware Esiste una componentistica tangibile di tipo elettronico, elettrico e meccanico: questa è chiamata hardware. Sono hardware l'unità centrale, il monitor, la tastiera, l'alimentatore, il disco, i microprocessori, i chip di memoria.
Software Affinchè la Macchina di Von Neumann funzioni, però, è necessario che le celle della memoria centrale riportino sequenze binarie opportune, dette istruzioni macchina codificanti, operazioni significative della CPU tramite le quali realizziamo un programma, ovvero in ultima analisi la codifica di un algoritmo di risoluzione di un problema.