FONDAMENTI DI INFORMATICA Prof. Lorenzo Mezzalira

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "FONDAMENTI DI INFORMATICA Prof. Lorenzo Mezzalira"

Transcript

1 FONDAMENTI DI INFORMATICA Prof. Lorenzo Mezzalira Appunti del corso di Fondamenti di informatica Fascicolo integrativo Architettura e funzionalità del calcolatore Architettura tipica dei calcolatori Bus di sistema Memoria di lavoro Struttura interna di CPU Istruzioni macchina e loro esecuzione Linguaggio macchina ed esempi di programmi in Assembler 1 / 50

2 Esecutore calcolatore: requisiti funzionali Che cosa deve saper fare un calcolatore per eseguire i programmi? Ricordiamo che un programma rappresenta un algoritmo, cioè descrive la sequenza di operazioni da compiere per risolvere un problema. Le operazioni sono rappresentate da istruzioni che sono codificate con opportune sequenze di bit contenuti nelle parole della memoria di lavoro. Quindi le funzioni da svolgere e le unità funzionali di un calcolatore sono: mantenere e rendere accessibili istruzioni e dati, compito dellamemoria di lavoro Prelevare da memoria di lavoro, capire ed eseguire le istruzioni, compito dell unità centrale di elaborazione, detta anche CPU - Central Processing Unit interagire (scambiare informazioni) con il mondo esterno compito della CPU con l esecuzione di istruzioni e programmi che gestiscono le interfacce di ingresso/uscita, dette anche I/O Input/Output. Architettura di Eckert - Mauchly - Von Neumann L architettura comunemente detta di Von Neumann può essere considerato un modello tipico dell architettura interna di un calcolatore. L architettura che consideriamo è costituita da 3 blocchi funzionali collegati tra loro tramite un BUS (insieme di collegamenti elettrici) che consente il trasferimento di informazioni tra i blocchi funzionali stessi. 2 / 50

3 Schema dell architettura tipica di Calcolatore MEMORIA DI LAVORO UNITA CENTRALE DI ELABORAZIONE CPU RAM ROM BUS INDIRIZZI BUS DATI BUS BUS CONTROLLO IN/OUT INPUT INPUT OUTPUT OUTPUT INTERFACCE VIDEO UNITA DISCO MOUSE TASTIERA STAMPANTE UNITA PERIFERICHE 3 / 50

4 FUNZIONALITÀ GENERALE DEL CALCOLATORE Esecuzione dei programmi La funzionalità tipica dei calcolatori consiste nell eseguire i programmi che sono descrizioni di algoritmi. L esecuzione dei programmi consiste nell esecuzione sequenziale, secondo un flusso di esecuzione, di istruzioni macchina. In base al tipo di istruzione da eseguire il calcolatore, passo dopo passo, acquisirà informazioni dal mondo esterno, eseguirà operazioni sui dati memorizzati internamente, effettuerà variazioni del flusso di esecuzione rispetto alla normale sequenza ed emetterà delle informazioni verso il mondo esterno. Questa esecuzione avviene con elevata velocità, così da mascherare talvolta la sequenzialità e dare l impressione dello svolgimento di più attività contemporaneamente. per poter eseguire un programma è necessario che questo sia caricato (in formato eseguibile) nella memoria di lavoro. la CPU legge da memoria di lavoro, interpreta ed esegue le istruzioni del programma operando sulle variabili (dati), anch esse allocate nella memoria di lavoro. La CPU può essere considerata l unità attiva del calcolatore. La CPU nell esecuzione delle istruzioni procede normalmente secondo indirizzi sequenziali crescenti nella memoria di lavoro, salvo quando esegue istruzioni di modifica del flusso di controllo (istruzioni di salto o JUMP) la CPU per leggere ed eseguire le istruzioni gestisce, controlla e temporizza il funzionamento delle altre unità (memoria di lavoro e interfacce) tramite i segnali del bus. le istruzioni devono essere espresse in codice macchina, cioè nel formato direttamente interpretabile dalla CPU. Ogni istruzione in codice macchina è quindi rappresentata da una sequenza di 0 e 1 che la identifica in modo univoco. le variabili devono essere accessibili alla CPU: il riferimento ad una variabile è rappresentato da un indirizzo della memoria di lavoro. Il valore della variabile è contenuto nella parola di memoria associata all indirizzo ed è rappresentato tramite una codifica binaria opportuna, dipendente dal tipo di variabile. 4 / 50

5 Bus di sistema Il BUS è il mezzo di comunicazione che consente il trasferimento delle informazioni dalla memoria di lavoro e dalle interfacce di I/O alla CPU e viceversa. E costituito da un numero adeguato di conduttori che trasportano ognuno il segnale elettrico relativo ad un bit. I bit possono essere di selezione (indirizzi) per specificare il partner di ogni transazione di informazione (istruzioni e dati) che rappresentano l informazione di volta in volta trasferita di controllo (comandi) che specificano modalità e temporizzazione delle transazioni. Ogni trasferimento di informazione costituisce una transazione, normalmente basata su un singolo ciclo di bus. Per ogni transazione sul bus esiste una e una sola unità funzionale che gioca il ruolo di master (cioè controllore, solitamente la CPU), mentre le altre unità sono nel ruolo di slave (elementi asserviti; tipicamente la memoria di lavoro e le interfacce verso le periferiche e il mondo esterno). I conduttori del bus collegano in parallelo i vari elementi che possono generare il segnale corrispondente e/o ricevere tale segnale. Per i segnali generabili da diversi dispositivi occorre un appropriata gestione del pilotaggio (significa: generazione del segnale) che eviti i possibili conflitti elettrici, che si verificherebbero qualora diversi dispositivi tentassero contemporaneamente di imporre livelli alti e bassi su uno stesso segnale. Nota - Importanza della struttura a bus Una struttura a bus è molto regolare e quindi si presta a sfruttare le interessanti caratteristiche della modularità, se si realizzano le varie unità funzionali come moduli fisici inseribili nei connettori del bus: Riconfigurabilità Estendibilità Facilità di manutenzione Lungo ciclo di vita degli elementi costituenti l architettura Per godere di questi vantaggi un bus deve essere standardizzato, cioè corredato di specifiche chiare e complete sulle caratteristiche fisiche, sul comportamento temporale e sul significato dei vari segnali. Queste specifiche devono essere seguite dai costruttori dei moduli. Sono stati proposti diversi bus di sistema per calcolatori, con diversi gradi di complessità e corrispondenti diversi livelli di prestazioni e diverse finalità. Poiché la modularità completa ottimizza la riconfigurabilità a scapito dell economicità, spesso si adottano soluzioni di compromesso nella struttura fisica dei calcolatori, con l adozione di piastre madre (motherboard) contenenti la porzione fissa dell architettura del calcolatore e dotate di bus di espansione per i moduli fisici aggiuntivi, per i quali è importante la possibilità di riconfigurazione ed estensione. 5 / 50

6 Principali tipi di cicli di bus I trasferimenti di informazioni sul bus hanno come protagoniste l unità funzionale che in quel momento gioca il ruolo di master e un unità slave Il master è in genere la CPU, ma occasionalmente può essere anche un controllore di DMA (Direct Memory Access). L unità slave può essere una memoria o un interfaccia di ingresso/uscita (I/O) o un unità di servizio, ad es. un timer. La direzione del trasferimento tra master e slave determina la classificazione nelle due seguenti categorie di operazioni. Ciclo di lettura: l elemento slave è la sorgente dell informazione e il master ne è la destinazione. Ciclo di scrittura: il master è la sorgente dell informazione destinata all elemento slave. Una seconda classificazione distingue i cicli di bus riferiti alla memoria di lavoro o ad un interfaccia. Quindi i cicli di trasferimento sono classificabili nei seguenti tipi: Lettura da memoria (memory read) Scrittura in memoria (memory write) Lettura da porta di ingresso (I/O read o IN) Scrittura su porta d uscita (I/O write o OUT) Sono inoltre previsti particolari cicli di gestione dei meccanismi di Interruzione e di DMA, sinteticamente presentati nel seguito. Fasi di un ciclo di bus Un ciclo di trasferimento si può generalmente scomporre nelle seguenti fasi. Selezione del partner Eventuale attesa (con unità lente) Trasferimento dei dati Conclusione (ritorno allo stato di riposo dei segnali) Selezione In questa fase il master seleziona l elemento slave coinvolto dal trasferimento, precisando il tipo di elemento (memoria o I/O) e la direzione (lettura o scrittura). Eventuale attesa Questa fase viene eseguita solo se l elemento slave coinvolto è relativamente lento e quindi richiede per il corretto trasferimento che venga concesso (con l inserimento di stati di wait) un tempo di accesso maggiore di quello dei normali cicli del bus. Trasferimento dei dati In questa fase l informazione viene emessa dalla sorgente e l unità destinazione del trasferimento cattura (cioè memorizza localmente in un registro) tale informazione. Conclusione In questa fase tutti i segnali sono ordinatamente riportati nello stato di riposo. 6 / 50

7 Tipi di circuiti di pilotaggio Poichè la maggior parte dei segnali di un bus devono poter essere comandati (pilotati) da diversi dispositivi, occorre prevedere diversi tipi di circuiti di pilotaggio dei segnali in uscita, adatti per i vari casi e che consentono di evitare conflitti elettrici. Invece i morsetti di ingresso dei segnali presentano normalmente un basso assorbimento (cioè alta impedenza) e quindi il collegamento di più ingressi (fino ad un numero massimo specificato) ad uno stesso segnale del bus non pone problemi. +Vcc è la tensione di alimentazione dei circuiti integrati che generano i segnali logici (digitali). GND = Ground = massa è il potenziale a zero Volt dell alimentazione, che fa da riferimento di zero per i segnali elettrici. Cortocircuito dell alimentazione è il fenomeno che si verifica quando venga a formarsi un percorso a bassa impedenza tra +Vcc e GND. In caso di cortocircuito si ha un conflitto elettrico che da luogo a correnti elevate (più del valore nominale) rendendo non significativo il livello di tensione del segnale e danneggiando, anche definitivamente, i circuiti che generano il segnale. I tipi di circuiti di pilotaggio che consideriamo sono: totem-pole, tree-state e open-collector. Totem-pole Sono circuiti modellabili con un contatto a scambio, in grado di forzare (pilotare con bassa impedenza) o un livello alto o un livello basso. +Vcc U Conduttore Del BUS Questi circuiti vanno usati solo per i segnali che sono sempre comandati da uno stesso unico circuito. GND Infatti se uno stesso segnale venisse comandato da più circuiti di tipo totem-pole si verificherebbero conflitti elettrici nel caso di discordanza dei valori logici generati dai vari circuiti. Tri-state Sono circuiti modellabili con un contatto in grado di forzare (pilotare con bassa impedenza) o un livello alto o un livello basso, in serie con un contatto che quando è aperto consente di lasciare libero (alta impedenza high-z) il segnale. +Vcc GND U OE R U Conduttore Del BUS Questi circuiti vanno usati per i segnali che possono essere comandati da diversi circuiti durante intervalli di tempo diversi, cioè in mutua esclusione. Talvolta per questi segnali è previsto un resistore collegato all alimentazione (+Vcc), detto resistenza di pull-up, che porta al livello alto il segnale nel caso che tutti i circuiti che lo pilotano siano nello stato di alta impedenza. 7 / 50

8 I circuiti con uscita tri-state prevedono anche un ingresso di controllo, detto Output Enable (OE), che al livello di riposo forza lo stato di alta impedenza, mentre al livello attivo impone in uscita il livello logico (alto o basso) del circuito. In molti circuiti integrati disponibili in commercio il comando di OE è attivo basso. I circuiti di tipo tri-state, con i relativi comandi OE, si trovano tipicamente nei circuiti di memoria e delle porte di I/O, per pilotare i morsetti che producono i dati da immettere nel bus dati. Open-collector Sono circuiti modellabili con un contatto chiuso a massa oppure aperto, in grado di forzare (pilotare con bassa impedenza) solo un livello basso oppure di lasciare libero (alta impedenza high-z) il segnale. Per questi segnali è previsto in generale un resistore collegato all alimentazione (+Vcc), detto resistenza di pull-up, che porta al livello alto il segnale quando l uscita è nello stato di alta impedenza. Il livello basso è quindi dominante su quello alto, nel senso che quando si hanno due circuiti che pilotano una stessa linea del bus con pilotaggio open-collector, se uno propone un livello alto e l altro impone un livello basso prevale quest ultimo e sulla linea del bus si avrà un segnale logico a livello basso, senza conflitti elettrici. +Vcc U R Conduttore Del BUS Questi circuiti vanno usati per i segnali che possono essere comandati da diversi circuiti, anche contemporaneamente. GND Tra i circuiti open-collector collegati ad uno stesso conduttore si realizza una funzione logica cablata : Iin logica positiva si ottiene la funzione Wired-AND rispetto al livello dominato, che è quello alto. Infatti per avere segnale alto in uscita occorre che tutti i circuiti propongano un livello alto. In logica negativa si ottiene la funzione Wired-OR rispetto al livello dominante, che è quello basso Infatti per avere un segnale basso in uscita basta che almeno uno dei circuiti proponga un livello basso. Spesso si opera in logica negativa per effettuare la funzione OR tra più richieste concomitanti, come ad es. per i segnali di richiesta di interruzione alla CPU provenienti da diversi richiedenti, anche contemporaneamente. 8 / 50

9 Le parti di un bus di sistema L insieme dei conduttori dei bus di sistema può essere scomposto in diversi sottoinsiemi ognuno dedicato a specifiche funzionalità. Bus Dati I segnali sono destinati a rappresentare la codifica binaria delle informazioni (istruzioni o dati) da trasferire da una unità all altra, e sono comandati dal dispositivo sorgente. Il contenuto può essere fornito dalla memoria o da una porta di ingresso (ciclo di lettura), oppure dalla CPU (ciclo di scrittura). I conduttori sono 8, 16, 32 a seconda della lunghezza di parola del sistema. Al termine del trasferimento, in caso di lettura, il contenuto del bus dati è memorizzato in un registro d appoggio della CPU (registro dati). In caso di scrittura, la CPU utilizza il registro dati per presentare la configurazione sul bus, che verrà inserita nella parola di memoria o nella porta di uscita indirizzata. Bus Indirizzi I segnali sono usati dal dispositivo master per rappresentare con codifica binaria pesata l indirizzo che identifica il modulo slave e il suo registro interno (o la cella di memoria) interessato dal trasferimento. Si hanno bus con 10, 16, 20, 24, 32 bit di indirizzo, a seconda dell estensione dell area di indirizzamento prevista. Con k bit (conduttori) di indirizzo, le parole di memoria indirizzabili sono 2 k L indirizzo è in genere fornito dalla CPU che utilizza un suo registro interno d appoggio (registro indirizzi) per presentare la configurazione sul bus.. In genere k = Bus di Controllo I segnali hanno lo scopo di qualificare il tipo di trasferimento (lettura o scrittura, memoria o I/O) e di temporizzare la validità di indirizzi e dati e sono per lo più gestiti dal dispositivo master, ad eccezione dei segnali di richiesta (wait, interrupt, DMA) che sono gestiti dalle unità slave richiedenti. La CPU gestisce i segnali del bus di controllo mediante la sua unità di controllo. I segnali del bus di controllo possono essere anche molto diversi tra i vari tipi di bus adottati per i diversi calcolatori, anche se le operazioni di trasferimento sono concettualmente le stesse. Bus Servizi Sono segnali ausiliari come, ad esempio, di Reset e Clock di sistema. Bus Alimentazioni Non si tratta di segnali ma di conduttori per la massa e le varie tensioni di alimentazione usate dai moduli del sistema. Spesso +5V, +12V, -5V e GND 9 / 50

10 Un esempio di semplice bus Il bus MMS-8 Progettato a metà anni 70 per i microprocessori a 8 bit con i seguenti obiettivi: semplice ed economico, ma adatto per i tipici processori a 8 bit chiaro significato dei segnali per una standardizzazione adatto anche per scopi didattici concettuali e/o applicativi sperimentali Bus Dati Prevede i segnali DB7.. DB0 comandati da circuiti tri-state 8 bit Bus Indirizzi Prevede i segnali AB15.. AB0 comandati da circuiti tri-state 16 bit Con 16 bit lo spazio di indirizzamento è di 64k (2 16 ) Bus di controllo MMS8 ADMEM (ADdress for MEMory) Tri-state Attivo basso indica che l indirizzo presente sui bit di indirizzo è indirizzo valido per accessi a memoria. Rimane attivo basso per tutto il ciclo di accesso alla memoria e poi torna a riposo a livello alto. ADPER (ADdress for PERipheral) Tri-state Attivo basso indica che l indirizzo presente sui bit di indirizzo è indirizzo valido per accessi a periferica. Rimane attivo basso per tutto il ciclo di accesso alla periferica e poi torna a riposo a livello alto WRITE Tri-state Rimane attivo a livello basso per tutta la durata di un ciclo di scrittura scrittura, mentre rimane a riposo a livello alto e nei cicli di lettura DATEN (DAta Transfer ENable) Tri-state Attivo a livello basso indica l intervallo di tempo destinato al trasferimento dei dati. NOTYET Open-collector Attivo basso comandato dai moduli slave che richiedono un prolungamento del ciclo di bus, con inserzione di stati di attesa (wait). Se la transazione avviene indirizzando un elemento veloce, che non richiede stati di wait, questo segnale rimane a riposo a livello alto. INTREQ (INTerrupt REQuest) Open-collector Attivo basso comandato dai moduli che vogliono inoltrare alla CPU una richiesta di interruzione INTACK (INTerrupt ACKnowledge) Totem-pole Attivo basso comandato dalla CPU quando accetta una richiesta di interruzione HOLDREQ (HOLD REQuest) Open-collector Attivo basso comandato dai moduli DMA Controller, che vogliono inoltrare alla CPU la richiesta di gestire trasferimenti con DMA con la CPU che si sospende dal ruolo di master. HOLDACK (HOLD ACKnowledge) Totem-pole Attivo basso comandato dalla CPU quando ha rilasciato (cioè posto in condizione tri-state) il controllo del bus accettando una richiesta da un controllore di DMA Bus servizi RESET CLOCK - MMS8 Bus alimentazioni MMS8 +5V +12V -5V GND Riferimento comune di massa a 0V 10 / 50

11 Forme d onda di segnali di bus Con il termine forma d onda di segnali digitali si intende la descrizione grafica schematizzata dell andamento temporale di tali segnali. La descrizione è su un piano cartesiano con l asse delle ascisse che rappresenta il tempo e l asse delle ordinate rappresenta i livelli dei segnali. La scala dei tempi è spesso molto dilatata (i centimetri possono corrispondere a poche decine di nanosecondi) e le commutazioni dei segnali sono rappresentate con segmenti non perfettamente verticali, ma con una leggera inclinazione, per evidenziare che le commutazioni non sono istantanee ma che richiedono un certo tempo (in genere pochi ns). Per i segnali aggregati a rappresentare un unica informazione (come quelli degli indirizzi o quelli dei dati) si indicano contemporaneamente i livelli alto e basso, per rappresentare il fatto che alcuni di essi possono assumere un livello e altri l altro livello. I momenti di commutazione sono rappresentati con uno o più incroci ad X. Nelle forme d onda dei segnali digitali sono rappresentate in modo significativo le correlazioni temporali tra le commutazioni e gli intervalli di stabilità dei vari segnali. Sono invece rappresentati in modo schematico e semplificato i livelli dei segnali. Per i segnali analogici, invece, anche il livello del segnale è rappresentato con accuratezza nell andamento temporale del suo valore. 11 / 50

12 Esempi di forme d onda di cicli di bus MMS-8 Scrittura in Memoria Sorgente CPU AB0..AB15 Indirizzo impostato dal master ADMEM Indirizzo valido per accesso a memoria ADPER WRITE Operazione di scrittura DB0..DB7 Dati da master DATEN Dati validi NOTYET Eventuale richiesta di wait T Accesso a memoria CPU Deco difica tore MEMORIA PAROLA 0 PAROLA 1 PAROLA 2 PAROLA 3 R. dati Unità di controllo R. indirizzi BUS INDIRIZZI WM RM BUS DATI BUS CONTROLLO WM è il segnale Write Memory = scrittura memoria WM =!ADMEM and!write and!daten RM è il segnale Read Memory = lettura memoria RM =!ADMEM and WRITE and!daten 12 / 50

13 Lettura da periferica Destinazione CPU AB0..AB15 Indirizzo impostato dal master ADMEM ADPER Indirizzo valido per accesso a periferica WRITE Operazione di lettura DB0..DB7 Dati da periferica DATEN Dati validi NOTYET Eventuale richiesta di wait Caricamento da bus dati a registro dati della CPU T Accesso a unità periferica CPU R. dati Unità di controllo R. indirizzi BUS INDIRIZZI BUS DATI BUS CONTROLLO WO Deco difica tore PORTA OUT (RDP) RI PORTA IN (RDP) PERIFERICA DI USCITA PERIFERICA DI INGRESSO WO è il segnale Write Output = scrittura su porta WO =!ADPER and!write and!daten RI è il segnale Read Input = lettura da porta RI =!ADPER and WRITE and!daten 13 / 50

14 Esempio di banco di memoria di 4 Kbyte interfacciato sul bus VCC AB15 AB14 AB13 AB12 Comparatore = Selezione indirizzo di un modulo 1 = APERTO AB11 AB0 A A0 Chip di Memoria da 4K Byte ADMEM CS WRITE WR DATEN OE D D0 Timer OE OE NOTYET DB7 DB0 A15.. A0 bit di indirizzamento I 4 bit più significativi (A15.. A12) sono usati in questo esempio per selezionare un banco di 4K. Un banco di memoria viene attivato solo se la configurazione di questi bit corrisponde all indirizzo del banco, così come è impostato tramite i 4 interruttori (microswitch). I 12 bit meno significativi dell indirizzo (AB11.. AB0) selezionano la cella di memoria voluta all interno del banco di 4K CS Chip Select attivo basso abilita la memoria E tipico dei circuiti di memoria essere dotati di un bit di comando, il Chip Select, che deve essere attivato (basso) quando si devono eseguire operazioni con quella memoria. Con il bit CS a livello alto la memoria rimane inattiva qualunque siano i valori degli altri bit di comando e di indirizzamento. WR Write attivo basso comanda la scrittura (memorizzazione) A livello alto viene comandata la lettura OE Output Enable attivo basso attiva le uscite dei bit A livello alto le uscite sono ad alta impedenza. I segnali di comando Output Enable si trovano in genere nei circuiti di memoria e nei registri dotati di uscite con circuito di pilotaggio tri-state. D7.. D0 bit dei dati 14 / 50

15 Memoria di lavoro La memoria di lavoro è un insieme ordinato di parole (o celle) che possono contenere (memorizzare) informazioni, e cioè le istruzioni e i dati La memoria di lavoro può essere pensata come una tabella monodimensionale, nella quale gli elementi sono le parole di memoria. Ogni parola di memoria è costituita da h elementi di memoria binari (ad es. h = 8, 16, 32, 64 bit). Una parola di memoria è come un registro. Tutte le parole di una memoria hanno lo stesso numero di bit. Esempio di parola da 16 bit: La posizione di ogni parola nella memoria è identificata in modo univoco da un numero intero positivo, detto indirizzo della parola di memoria, codificato in binario pesato senza segno Per accedere ad una generica parola di memoria è necessario fornire all unità di memoria l indirizzo di tale parola (che la identifica in modo univoco) e attivare il comando di lettura o quello di scrittura. lettura estrae una copia del contenuto della cella che rimane immutato scrittura inserisce nella cella un valore che sostituisce il precedente La memoria di lavoro è l unica memoria direttamente accessibile dalla CPU per leggere o scrivere singole informazioni. se k è il numero di bit disponibili per specificare l indirizzo, allora 2 k è l area di memoria fisica indirizzabile. Ad esempio, con 23 bit di indirizzo lo spazio di indirizzamento è di 8Mega parole. Naturalmente la parte di memoria effettivamente presente avrà un numero di celle minore o uguale allo spazio indirizzabile. Gli indirizzi corrispondenti ad aree prive di memoria non producono alcuna funzionalità. 15 / 50

16 La memoria di lavoro è detta ad accesso casuale, perché il meccanismo di indirizzamento di cui è dotata consente di accedere direttamente e con gli stessi tempi ad una qualsiasi parola, senza obbligare a procedere per indirizzi sequenziali. Si noti che la proprietà di essere ad accesso casuale, in tutta l area di indirizzamento, è una caratteristica fondamentale per consentire una elevata velocità di esecuzione dei programmi, che nel loro svolgimento comportano accessi a diverse informazioni (istruzioni e dati) collocati in posizioni non sequenziali. La memoria di lavoro è, in generale, composta da due tipi di memorie: la memoria RAM (Random Access Memory) la memoria ROM (Read Only Memory). Le parole di memoria RAM sono modificabili, cioè leggibili e scrivibili. La memoria RAM è in genere volatile. La memoria ROM è solo leggibile: le informazioni vengono scritte in modo permanente di solito dal costruttore, prima dell installazione nel calcolatore. Anche la memoria ROM è ad accesso casuale. Caratteristiche tecnologiche delle memorie di lavoro: sono realizzate con circuiti integrati a semiconduttori (transistori) la memoria RAM con le attuali tecnologie elettroniche è volatile e quindi mantiene le informazioni solo quando è alimentata. Ma la volatilità NON è una caratteristica necessaria. all accensione il contenuto delle parole di memoria RAM è non significativo, cioè non ha alcuna correlazione col contenuto che aveva al momento dello spegnimento nella memoria ROM le informazioni sono permanentemente scritte e non modificabili (quindi non volatili) i tempi di accesso alla singola parola di memoria sono dell ordine delle decine o centinaia di nanosecondi la memoria di lavoro è una memoria ad accesso veloce rispetto alla memoria di massa (che ha tempi di accesso dell ordine delle decine di millisecondi e quindi per un accesso singolo è circa 1 milione di volte più lenta) ma ha in genere un numero di parole inferiore a quello della memoria di massa. 16 / 50

17 Schema funzionale della memoria di lavoro (RAM) Evidenziato il caso di lettura della parola di indirizzo 577 Indirizzo = D e c o d i f i c a BUS indirizzi READ = 1 WRITE = 0 Registro lettura / scrittura BUS Dati BUS Controllo OUT = 0 INPUT = 0 Nell esempio sopra riportatosi ha: BUS Indirizzi di 12 bit (da 0 a 4095) I circuiti di decodifica ricevono in ingresso i 12 bit di indirizzo ed emettono in uscita i 4096 bit di attivazione delle singole celle. Naturalmente dei bit di uscita sarà attivato uno soltanto, cioè quello che corrisponde all indirizzo rappresentato dai bit di indirizzamento. BUS Dati e parole di memoria di 8 bit Nello schema di esempio è evidenziato il caso di lettura da memoria all indirizzo 577 che in binario su 12 bit è (HEX 0241h) il cui contenuto letto è (HEX 02Dh) 17 / 50

18 Una possibile partizione della memoria di lavoro 0000 INDIRIZZI RAM Area per dati di sistema R A M RAM Area codice RAM Area dati Area di lavoro per i programmi applicativi 2 K - 1 R O M RAM Area codice e dati di Sistema ROM Area codice e tabelle Sistema Operativo Area indirizzabile libera per eventuali espansioni di memoria Area indirizzabile Area di lavoro del Sistema Operativo 18 / 50

19 Struttura della CPU Per presentare la funzionalità tipica dei calcolatori programmabili, ed in particolare dell unità centrale (CPU = Central Processing Unit) ricorriamo ad un esempio estremamente semplificato e ridotto agli aspetti fondamentali. Un semplificato esempio didattico si rende necessario perchè le CPU degli attuali calcolatori, anche dei più semplici microcontrollori, hanno complessità non compatibili con un insegnamento di Fondamenti di informatica. I meccanismi di base della funzionalità sono però gli stessi e quindi ben esemplificati. Consideriamo le caratteristiche di un programma in codice macchina che derivano dall architettura tipica dei calcolatori, e in particolare dalla struttura della CPU presentata nelle pagine seguenti. Relativamente alle istruzioni: consideriamo il caso semplice in cui ogni istruzione in linguaggio macchina occupa una sola parola di memoria. le istruzioni di un programma da eseguire sono caricate in parole di memoria di lavoro contigue. L indirizzo della parola di memoria che contiene la prima istruzione (del sistema operativo) da eseguire all accensione è noto (cablato) alla CPU. Questo significa che le CPU sono realizzate in modo che all accensione, o dopo ogni reset, iniziano a leggere la prima istruzione da eseguire generando sempre un certo indirizzo che è tipico di ogni modello di CPU. Naturalmente nel progettare un sistema di calcolo si dovrà fare in modo che a tale indirizzo sia collocata la prima istruzione da eseguire. Questa sarà l inizio del Sistema Operativo (S.O.), eventualmente molto semplice se si tratta di microcontrollori embedded, cioè inglobati in un dispositivo. L inizio dei programmi applicativi è noto al Sistema Operativo. Nei sistemi che devono eseguire applicazioni scelte da un operatore (come per i Personal Computer) il S.O. acquisisce questo indirizzo da comandi dell operatore, mentre nelle applicazioni autonome questo indirizzo è ricavato automaticamente. Relativamente alle variabili: Consideriamo il caso semplice in cui ogni variabile occupa una sola parola di memoria. Nel caricamento del programma da eseguire vengono riservate le parole di memoria di lavoro adeguate a contenere i valori delle variabili (dati). lo spazio di memoria riservato per le variabili è distinto da quello che contiene le istruzioni. In linguaggio macchina le variabili sono identificate in modo univoco dall indirizzo della parola di memoria corrispondente. Il nome simbolico di una variabile (che appare nel programma sorgente) è ad uso umano, e può essere considerato rappresentativo dell indirizzo (che appare nel programma eseguibile) della parola di memoria riservata ad essa. Il contenuto della parola di memoria riservata ad una variabile è costituito dalla configurazione dei bit che rappresenta la codifica del valore della variabile. Il valore delle variabili sarà determinato ed utilizzato dall esecuzione del programma (con operazioni di lettura e assegnamento). Poichè l esecuzione è sequenziale, la CPU preleva da memoria di lavoro un istruzione alla volta. A tal fine nella CPU è presente un registro contatore di programma PC (Program Counter) che viene man mano incrementato in modo da contenere l indirizzo della parola di memoria in cui è presente la prossima istruzione da eseguire. 19 / 50

20 L istruzione da eseguire, una volta prelevata dalla memoria con un operazione di lettura, viene memorizzata all interno della CPU nel registro istruzione RI e decodificata (interpretata) dall unità di controllo. L esecuzione di un istruzione comporta l esecuzione di un insieme di micro passi elementari. Questi possono comportare la generazione di segnali del bus di controllo per l accesso a memoria o a porta di I/O, e la generazione di segnali di controllo interni alla CPU per l esecuzione di operazioni aritmetiche o logiche e per il trasferimento interno e caricamento di dati nei registri. 20 / 50

21 Struttura della CPU OPERANDO 1 OPERANDO 2 UNITA LOGICA - ARITMETICA ALU ACCUMULATORE E REGISTRI DI LAVORO REGISTRO DI STATO CPU STACK POINTER PROGRAM COUNTER c.op. operando REG. ISTRUZIONE REGISTRO DATI UNITA DI CONTROLLO REGISTRO INDIRIZZI BUS DATI BUS CONTROLLO BUS INDIRIZZI Le frecce indicano i possibili trasferimenti di informazioni La freccia tratteggiata indica i segnali di controllo per l ALU, mentre sono sottintesi i comandi dell unità di controllo che abilitano i trasferimenti di informazioni tra i registri interni della CPU. Si noti che nello schema a blocchi dell interno della CPU sono sottintesi i bit di comando di cui sono dotati tutti i registri, e speficamente: OE Output Enable bit che comanda l emissione del contenuto del registro tramite i circuiti di uscita tristate LD Load bit che comanda il caricamento del registro con il valore che si presenta ai suoi ingressi. Questi bit di comando sono attivati dall unità di controllo con le sequenze e temporizzazioni necessarie per l esecuzione delle istruzioni macchina. 21 / 50

22 Componenti della CPU Registro indirizzi: registro di appoggio tra la CPU e il bus indirizzi. La codifica binaria dell indirizzo di memoria o della porta di I/O cui si accede viene caricata dalla CPU in questo registro. La sua dimensione (in numero di bit) è pari a quella del bus indirizzi. Registro dati: registro bidirezionale di appoggio tra la CPU e il bus dati. In lettura da memoria o da porta di ingresso, il contenuto del bus dati viene memorizzato in questo registro, prima di essere trasferito internamente in un qualsiasi altro elemento della CPU. In scrittura, la codifica binaria da presentare sul bus dati viene caricata dalla CPU in questo registro che si affaccia sul bus dati tramite circuiti tri-state. La dimensione di questo registro è pari a quella del bus dati. (in genere 8, 16 o 32 bit) Unità di controllo: genera la sequenza di (micro)passi elementari necessari all esecuzione di ogni specifica istruzione macchina. L unità di controllo costituisce l unità attiva che imprime l evoluzione del funzionamento della CPU e dell intero calcolatore. Svolge questa funzione generando i segnali di controllo che comandano i vari elementi interni della CPU e i segnali di controllo del bus. Ogni passo elementare per l esecuzione delle istruzioni è composto da una serie di comandi elementari che possono essere esterni (segnali sul bus di controllo) o interni (segnali per l ALU e per i trasferimenti tra registri). I comandi consistono nell attivazione di appositi bit. Il livello attivo dei comandi può essere il livello alto o, più spesso, il livello basso. Ad es. la ricopiatura del contenuto di un registro in un altro registro è ottenuta attivando il comando Output Enable (OE) del primo registro e il comando Load (LD) del secondo registro. La sequenza di passi elementari che viene attivata ciclicamente dall unità di controllo può essere schematizzata in tre fasi distinte: fase di fetch: Il registro Program Counter viene usato per fornire l indirizzo di lettura che viene copiato nel registro indirizzi e quindi presentato nel bus indirizzi. L acquisizione dalla memoria di lavoro dell istruzione da eseguire è ottenuta presentando sui bit del bus di controllo i segnali che comandano la lettura da memoria. Il Program Counter viene incrementato, in modo che il suo contenuto sia l indirizzo dell istruzione seguente. L informazione letta dalla memoria è l istruzione che proviene dal bus dati, passa nel registro dati e infine viene caricata nel registro istruzione. fase di decodifica: in questa fase avviene l interpretazione del codice operativo dell istruzione contenuta nel registro istruzione fase di esecuzione: Questa fase si svolge in modo diverso per le diverse istruzioni macchina. A seconda del codice operativo, l unità di controllo attiva la successione di passi elementari che effettuano le operazioni pertinenti all istruzione in esecuzione Il ritmo temporale dei vari passi è imposto dal segnale di clock che è attivato da un oscillatore che impone un andamento periodico. 22 / 50

23 Tensione del segnale CLOCK 5 V 0 V Tempo istanti di attivazioni dei passi elementari Registro contatore di programma (Program Counter - PC): registro che contiene l indirizzo della prossima istruzione da eseguire. E collegato al registro indirizzi per la lettura da memoria di lavoro (fase di fetch) dell istruzione da eseguire. E dotato di un comando di incremento che viene attivato dopo ogni lettura di istruzione (fetch), ma può anche ricevere e caricare valori da altri registri della CPU. La sua dimensione è pari a quella del bus indirizzi. Il flusso di esecuzione di un programma in esecuzione è scandito dai valori assunti dal registro program counter PC. In caso di normale esecuzione in sequenza, il registro PC viene ogni volta incrementato di 1. In caso di esecuzione di istruzioni di salto, nel registro PC viene forzato (scritto) l indirizzo dell istruzione destinazione del salto, che sarà quindi quella prelevata nella prossima fase di fetch. Registro puntatore alla pila (Stack Pointer): è un importante registro usato per contenere e gestire l indirizzo corrente nell ambito di una porzione della memoria di lavoro, chiamata stack (pila). L uso delle parole di memoria di quest area è gestito secondo la modalità LIFO (Last In First Out) e cioè l ultima informazione che viene scritta è la prima disponibile per la lettura. E come se le informazioni fossero collocate una sopra l altra, in una pila appunto, in cui è accessibile solo l informazione in cima alla pila. Lo stack pointer contiene l indirizzo della prima parola di memoria leggibile nello stack. L inserimento (push) di una informazione nello stack comporta: incremento dello Stack Pointer scrittura dell informazione all indirizzo di memoria contenuto nello Stack Pointer L estrazione (pop) di una informazione dallo stack comporta: lettura dell informazione indirizzata dallo Stack Pointer decremento dello Stack Pointer La possibilità di gestire un area di memoria a stack, cioè con modalità LIFO, è di importanza fondamentale per la chiamata di sottoprogrammi e per il ritorno al programma chiamante. La chiamata di un sottoprogramma comporta infatti di 1. salvare il valore del Program Counter in cima alla pila (push). Il valore del PC è l indirizzo dell istruzione successiva a quella di chiamata, e quindi è l istruzione da eseguire al termine dell esecuzione del sottoprogramma (sarà usato come indirizzo di ritorno) 2. forzare nel Program Counter l indirizzo della prima istruzione del sottoprogramma da eseguire 23 / 50

24 Il ritorno da sottoprogramma comporta invece di 1. estrarre dalla cima della pila (pop) e forzare nel Program Counter l indirizzo di ritorno salvato nella pila al momento della chiamata Registro Istruzione: contiene l istruzione (in linguaggio macchina) correntemente in esecuzione. Il contenuto del Registro Istruzione viene caricato tramite il bus dati ad ogni lettura (fetch), dalla memoria di lavoro, di una nuova istruzione da eseguire. In linguaggio macchina, nel nostro esempio semplificato, il formato di un istruzione è costituito da 2 campi: campo codice operativo: una sequenza di bit che identifica univocamente il tipo di istruzione (codifica enumerativa) campo operando: una sequenza di bit che contiene il riferimento all eventuale operando su cui l istruzione agisce. L operando di una istruzione può essere un dato, e allora il riferimento è (generalmente) l indirizzo della parola di memoria riservata per il dato. L operando di una istruzione può essere anche un altra istruzione (la prossima da eseguire con un salto jump ), e allora il riferimento è l indirizzo della parola di memoria che contiene quest altra istruzione (alla quale saltare). Il campo codice operativo del registro istruzione è presentato in ingresso all unità di controllo che, in base alla configurazione dei bit di tale campo, interpreta ed esegue l istruzione corrente, generando con opportune temporizzazioni i necessari segnali di controllo interni ed esterni alla CPU. Il campo operando (che è in generale un indirizzo) è collegato sia al registro indirizzi che al registro PC. La dimensione del registro istruzione è (nel nostro esempio) quella del bus dati. 24 / 50

25 Registri di lavoro: sono dei registri di supporto alle operazioni da eseguire all interno della CPU. La loro dimensione è generalmente quella del bus dati, ma può essere anche maggiore. In vari tipi di CPU troviamo registri di 8, 16 o 32 bit. Anche il numero di tali registri dipende dal tipo di CPU. I registri di lavoro sono identificati (in linguaggio Assembler) ognuno da un suo nome simbolico e referenziabili con codifica binaria enumerativa (in linguaggio macchina) direttamente dalle istruzioni in linguaggio macchina (o ASSEMBLER). Accumulatore (A): è il principale (e nel nostro esempio l unico) tra i registri di lavoro e, per convenzione, è quello in cui viene memorizzato il risultato di ogni operazione eseguita dall unità aritmetico-logica. Unità aritmetico-logica (ALU): esegue le operazioni aritmetiche e logiche elementari. Le operazioni eseguibili dipendono dalla complessità dell ALU. Le operazioni fondamentali sono somma, sottrazione, AND, OR, NOT alle quali possono ricondursi operazioni più complesse quali, moltiplicazione, divisione, confronto, ecc.. L unità aritmetico logica è a 2 operandi in ingresso e fornisce 1 risultato in uscita. I valori degli operandi sono presentati all ALU tramite i registri di appoggio e il risultato viene memorizzato generalmente nell accumulatore. I diversi tipi di operazioni vengono abilitati dall unità di controllo tramite opportuni segnali. Sono previsti inoltre: Registri di appoggio (non referenziabili dalle istruzioni in linguaggio macchina o ASSEMBLER): per l unità aritmetico logica (operando1 e operando2): necessari per presentare all ALU gli operandi su cui eseguire l operazione. Circuiti per il calcolo degli indirizzi: necessario per consentire il calcolo dell indirizzo dell operando in presenza delle diverse modalità di indirizzamento. Registro di stato: è un registro che raggruppa dei bit che hanno significato singolarmente per rappresentare delle condizioni. Ogni bit riporta indicazioni relative all esito dell operazione aritmetica o logica eseguita dall ALU (viene quindi scritto dall ALU al termine di ogni operazione eseguita). I bit di stato (flag) più significativi sono: Carry: viene posto a 1 quando l operazione aritmetica di somma (o sottrazione) tra due operandi genera riporto (o prestito) Zero: viene posto a 1 quando il risultato dell operazione eseguita dall ALU vale zero (e quindi il contenuto dell accumulatore è tutti zeri) Segno: viene posto a 1 quando il risultato dell operazione eseguita dall ALU è negativo (il bit più significativo del risultato è 1) Overflow: viene posto a 1 quando, dopo una somma o sottrazione tra interi in complemento a 2, il risultato è di segno discorde rispetto a quello concorde tra loro degli operandi (operandi di segno discorde 25 / 50

26 non possono dare overflow). Questo indica che il valore numerico ottenuto non è rappresentabile con il numero di bit a disposizione. I bit del registro di stato vengono interpretati dall unità di controllo nell esecuzione di istruzioni di salto condizionato come verrà descritto nel seguito Linguaggio macchina Ogni tipo di CPU ha un suo proprio linguaggio macchina che comprende un insieme di istruzioni (set di istruzioni) codificate in forma binaria e direttamente interpretabili ed eseguibili dalla CPU stessa. Ogni programma, per poter essere eseguito da una CPU deve quindi essere disponibile (eventualmente tradotto) nel linguaggio macchina specifico del tipo di CPU. Ogni istruzione in linguaggio macchina è rappresentata da bit e quindi è costituita da una sequenza di 0 e 1. Ogni istruzione è costituita logicamente da due campi: il campo codice operativo è costituito dalla configurazione binaria che identifica univocamente il tipo di istruzione il campo operando contiene la configurazione binaria che consente di identificare il dato su cui opera l istruzione, e generalmente rappresenta un indirizzo di memoria di lavoro in cui è contenuto il valore da utilizzare. Classi di istruzioni tipiche in linguaggio macchina: istruzioni di trasferimento dati da e in memoria. Usate per leggere il valore di variabili o per assegnare loro un nuovo valore istruzioni di trasferimento dati da e in periferica. Usate per acquisire informazioni dal mondo esterno tramite porte di ingresso o per emettere informazioni tramite porte d uscita. istruzioni aritmetico-logiche. Eseguono il calcolo di operazioni aritmetiche o logiche tra i valori predisposti come operandi. istruzioni di modifica del flusso di esecuzione. Sono i salti (jump) a istruzioni non sequenziali e chiamate (call) di attivazione di sottoprogrammi. istruzioni ausiliarie Consideriamo un set di istruzioni molto semplificato e congruente con la struttura della CPU, della memoria e delle interfacce di I/O considerata fino ad ora. In particolare sono drasticamente semplificate le operazioni di ingresso e uscita che, con esempi più realistici, con la loro macchinosità renderebbero molto meno comprensibili gli aspetti di base che qui si vogliono presentare. Per motivi di chiarezza, rappresenteremo il codice operativo di ogni istruzione anche con una sigla mnemonica (linguaggio simbolico ASSEMBLER). Nell esempio considereremo istruzioni di 16 bit in cui il codice operativo è di 4 bit e il campo operando è di 12 bit. Si noti che questa scelta consente di codificare 2 4 = 16 diverse istruzioni ed un campo di indirizzamento nella memoria di lavoro di 2 12 = 4096 parole per istruzioni e dati. 26 / 50

27 cod. operativo operando Significato (semantica) 0000 (LDA) indirizzo operando mem(indirizzo) ACC lettura 0001 (STA) indirizzo operando ACC mem(indirizzo) scrittura 0010 (ADD) indirizzo operando ACC + mem(indirizzo) ACC somma 0011 (SUB) indirizzo operando ACC - mem(indirizzo) ACC sottrazione 0100 (JMP) indirizzo istruzione istruzione di salto incondizionato indirizzo PC (salta a indirizzo) 0101 (JZ) indirizzo istruzione istruzione di salto condizionato se bit di stato zero =1 indirizzo PC 0110 (IN) indirizzo porta porta (indirizzo) ACC 0111 (OUT) indirizzo porta ACC porta(indirizzo) 1000 (CALL) indirizzo istruzione chiamata a sottoprogramma PC stack(stack Pointer) push indirizzo PC 1001 (RET) ritorno da sottoprogramma stack(stack Pointer) PC pop 1010 (LDI) indirizzo operando mem(indirizzo) IX (Jcond) 1011 (JC) 1100 (JS) 1101 (JO) 1110 (LDAI) 1111 (STAI) indirizzo istruzione indirizzo istruzione indirizzo istruzione indirizzo istruzione istruzioni di salto condizionato dove cond è uno dei bit di stato (C=carry, S=segno, O=overflow) se bit di stato cond =1 indirizzo PC mem(reg.indice) ACC ACC mem(reg.indice) mem(indirizzo): porta (indirizzo): stack(stack Pointer): ACC: IX: parola di memoria specificata (indirizzata) da indirizzo porta specificata (indirizzata) da indirizzo parola di memoria dello stack indirizzata dallo Stack Pointer Accumulatore Registro Indice 27 / 50

28 Prodotto per somme ripetute in linguaggio macchina (forma simbolica e indirizzi scritti in forma decimale ) indirizzo di memoria descrizione simbolica del contenuto della parola di memoria programma in C IN 1 leggi w; 131 STA IN 1 leggi y; 133 STA LDA 151 sp = 0; 135 STA LDA 154 ns = y; 137 STA LDA 157 while (ns!= 0) 139 JZ LDA 156 sp = sp + w; 141 ADD STA LDA 157 ns = ns -1; 144 SUB STA JMP LDA 156 z = sp; 148 STA OUT 2 scrivi z; 150 JMP const int zero=0; const int uno=1; 153 int w; 154 int y; 155 int z; 156 int sp; 157 int ns; gli indirizzi in questo esempio sono rappresentati in decimale In questo esempio: 1 è l indirizzo della porta di ingresso associata alla tastiera 2 è l indirizzo della porta di uscita associata al terminale video 2000 è l indirizzo di ritorno a Sistema Operativo 28 / 50

29 Prodotto per somme ripetute in linguaggio macchina binario indirizzo di memoria di 12 bit contenuto della parola di memoria parole di 16 bit C.Op operando xxxx xxxxxxxxxxxx xxxx xxxxxxxxxxxx xxxx xxxxxxxxxxxx xxxx xxxxxxxxxxxx xxxx xxxxxxxxxxxx In questo esempio si suppone di avere: Parole di memoria da 16 bit. Memoria di lavoro da 4k parole (12 bit per specificare l indirizzo) 29 / 50

30 Passi elementari per l esecuzione delle istruzioni fase di fetch (comune per tutte le istruzioni): PC Registro Indirizzi mem(registro Indirizzi) Registro Dati ciclo di lettura sul bus Registro Dati Registro Istruzione PC+1 PC Esempi di fase di esecuzione per alcune istruzioni fase di esecuzione di LDA: Registro Istruzione operando Registro Indirizzi mem(registro Indirizzi) Registro Dati ciclo di lettura sul bus Registro Dati Accumulatore fase di esecuzione di ADD: Accumulatore Operando 1 Registro Istruzione operando Registro Indirizzi mem(registro Indirizzi) Registro Dati ciclo di lettura sul bus Registro Dati Operando 2 somma Accumulatore fase di esecuzione di JZ: se (bit di stato zero = 1) Registro Istruzione operando PC fase di esecuzione di OUT: Registro Istruzione operando Registro Indirizzi Accumulatore Registro Dati Registro Dati porta(registro Indirizzi) ciclo di scrittura sul bus fase di esecuzione di STAI: IX Registro indirizzi Accumulatore Registro Dati Registro Dati mem(registro Indirizzi) ciclo di scrittura sul bus 30 / 50

31 FASE DI FETCH OPERANDO 1 OPERANDO 2 CPU UNITA LOGICA - ARITMETICA ALU ACCUMULATORE E REGISTRI DI LAVORO REGISTRO DI STATO STACK POINTER 3 4 PROGRAM COUNTER c.op. operando REG. ISTRUZIONE 1 REGISTRO DATI UNITA DI CONTROLLO REGISTRO INDIRIZZI BUS DATI BUS CONTROLLO BUS INDIRIZZI MEMORIA DI LAVORO * 1 - PC Registro Indirizzi 2 - mem(registro Indirizzi) Registro Dati 3 - Registro Dati Registro Istruzione 4 - PC+1 PC 31 / 50

32 Fase di esecuzione di LDA OPERANDO 1 OPERANDO 2 UNITA LOGICA - ARITMETICA ALU ACCUMULATORE E REGISTRI DI LAVORO REGISTRO DI STATO CPU STACK POINTER 3 PROGRAM COUNTER c.op. operando REG. ISTRUZIONE 1 REGISTRO DATI UNITA DI CONTROLLO REGISTRO INDIRIZZI BUS DATI BUS CONTROLLO BUS INDIRIZZI MEMORIA DI LAVORO 1 - Registro Istruzione operando Registro Indirizzi 2 - mem(registro Indirizzi) Registro Dati 3 - Registro Dati Accumulatore 32 / 50

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Lezione 3: Architettura del calcolatore

Lezione 3: Architettura del calcolatore Lezione 3: Architettura del calcolatore Architettura di Von Neumann BUS, CPU e Memoria centrale Ciclo di esecuzione delle istruzioni Architettura del calcolatore Il calcolatore è: uno strumento programmabile

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Informatica - A.A. 2010/11

Informatica - A.A. 2010/11 Ripasso lezione precedente Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Esercizio: Convertire

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Introduzione all'architettura dei Calcolatori

Introduzione all'architettura dei Calcolatori Introduzione all'architettura dei Calcolatori Introduzione Che cos è un calcolatore? Come funziona un calcolatore? è possibile rispondere a queste domande in molti modi, ciascuno relativo a un diverso

Dettagli

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Il calcolatore elettronico Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Introduzione Un calcolatore elettronico è un sistema elettronico digitale programmabile Sistema: composto da

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Architettura di un calcolatore: introduzione

Architettura di un calcolatore: introduzione Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO DI SISTEMI ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 1 LABORATORIO DI SISTEMI OGGETTO: Progettare e collaudare un circuito digitale capace di copiare le informazioni di una memoria PROM in

Dettagli

Calcolo numerico e programmazione Architettura dei calcolatori

Calcolo numerico e programmazione Architettura dei calcolatori Calcolo numerico e programmazione Architettura dei calcolatori Tullio Facchinetti 30 marzo 2012 08:57 http://robot.unipv.it/toolleeo Il calcolatore tre funzionalità essenziali:

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore

Dettagli

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica I componenti di un Sistema di elaborazione. Memoria centrale Memorizza : istruzioni dati In forma BINARIA : 10001010101000110101... È costituita da una serie di CHIP disposti su una scheda elettronica

Dettagli

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN ALGORITMI E MACCHINA DI VON NEUMANN 1 COMPUTER= ELABORATORE NON CERVELLO ELETTRONICO CERVELLO: Capacità decisionali ELABORATORE: Incapacità di effettuare scelte autonome di fronte a situazioni impreviste

Dettagli

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore Contenuti Introduzione 1 Introduzione 2 3 4 5 71/104 Il Calcolatore Introduzione Un computer...... è una macchina in grado di 1 acquisire informazioni (input) dall esterno 2 manipolare tali informazioni

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4 ARCHITETTURE MICROPROGRAMMATE. 1 Necessità di un architettura microprogrammata 1 Cos è un architettura microprogrammata? 4 Struttura di una microistruzione. 5 Esempi di microprogrammi 9 Esempio 1 9 Esempio

Dettagli

introduzione I MICROCONTROLLORI

introduzione I MICROCONTROLLORI introduzione I MICROCONTROLLORI Definizione Un microcontrollore è un dispositivo elettronico programmabile Può svolgere autonomamente diverse funzioni in base al programma in esso implementato Non è la

Dettagli

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: martedì, 12.00-13.00. Dip. Di Matematica Modalità esame: scritto + tesina facoltativa 1

Dettagli

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM Il computer è un apparecchio elettronico che riceve dati di ingresso (input), li memorizza e gli elabora e fornisce in uscita i risultati (output). Il computer è quindi un sistema per elaborare informazioni

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli

Dettagli

Architettura dei calcolatori II parte Memorie

Architettura dei calcolatori II parte Memorie Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica ed Elementi di Statistica 3 c.f.u. Anno Accademico 2010/2011 Docente: ing. Salvatore Sorce Architettura dei calcolatori

Dettagli

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 : Un Sistema Operativo è un insieme complesso di programmi che, interagendo tra loro, devono svolgere una serie di funzioni per gestire il comportamento del computer e per agire come intermediario consentendo

Dettagli

L architettura di riferimento

L architettura di riferimento Architetture degli elaboratori e delle reti Lezione 10 L architettura di riferimento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 10 1/27

Dettagli

Parte II.2 Elaboratore

Parte II.2 Elaboratore Parte II.2 Elaboratore Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 1, 2015 Elisabetta Elisabetta Ronchieri II Software Argomenti

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18

Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18 Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Calcolatore: sottosistemi Processore o CPU (Central Processing

Dettagli

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

Dettagli

Funzionalità di un calcolatore

Funzionalità di un calcolatore Funzionalità di un calcolatore Il calcolatore: modello concettuale 1. Elaborazione 2. Memorizzazione Interconnessione 3. Comunicazione (interfaccia) Architettura di un computer componenti per elaborare

Dettagli

Vari tipi di computer

Vari tipi di computer Hardware Cos è un computer? Un computer è un elaboratore di informazione. Un computer: riceve informazione in ingresso (input) elabora questa informazione Può memorizzare (in modo temporaneo o permanente)

Dettagli

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica prof. ing. Corrado Santoro Schema a blocchi di una CPU Arithmetic Logic Unit Control Unit Register File BUS Control

Dettagli

Organizzazione della memoria

Organizzazione della memoria Memorizzazione dati La fase di codifica permette di esprimere qualsiasi informazione (numeri, testo, immagini, ecc) come stringhe di bit: Es: di immagine 00001001100110010010001100110010011001010010100010

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli

Architettura del computer (C.Busso)

Architettura del computer (C.Busso) Architettura del computer (C.Busso) Il computer nacque quando fu possibile costruire circuiti abbastanza complessi in logica programmata da una parte e, dall altra, pensare, ( questo è dovuto a Von Neumann)

Dettagli

PLC Programmable Logic Controller

PLC Programmable Logic Controller PLC Programmable Logic Controller Sistema elettronico, a funzionamento digitale, destinato all uso in ambito industriale, che utilizza una memoria programmabile per l archiviazione di istruzioni orientate

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Architettura hw. La memoria e la cpu

Architettura hw. La memoria e la cpu Architettura hw La memoria e la cpu La memoria centrale e la CPU Bus controllo Bus indirizzi Bus dati Bus di collegamento con la cpu indirizzi controllo dati Bus Indirizzi 11 Bus controllo Leggi/scrivi

Dettagli

Il Processore: i registri

Il Processore: i registri Il Processore: i registri Il processore contiene al suo interno un certo numero di registri (unità di memoria estremamente veloci) Le dimensioni di un registro sono di pochi byte (4, 8) I registri contengono

Dettagli

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione RCHITETTUR DI UN ELORTORE MCCHIN DI VON NEUMNN Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for dvanced Study, anni 40). UNITÀ FUNZIONLI fondamentali Processore (CPU) Centrale

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

ARCHITETTURA DELL ELABORATORE

ARCHITETTURA DELL ELABORATORE 1 ISTITUTO DI ISTRUZIONE SUPERIORE ANGIOY ARCHITETTURA DELL ELABORATORE Prof. G. Ciaschetti 1. Tipi di computer Nella vita di tutti giorni, abbiamo a che fare con tanti tipi di computer, da piccoli o piccolissimi

Dettagli

FONDAMENTI DI INFORMATICA Prof. Lorenzo Mezzalira

FONDAMENTI DI INFORMATICA Prof. Lorenzo Mezzalira FONDAMENTI DI INFORMATICA Prof. Lorenzo Mezzalira Appunti del corso 3 Architettura e linguaggio del calcolatore Indice 1. Funzioni logiche e circuiti logici 2. Circuiti di memoria 3. Unità funzionali del

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

clock DATA BUS ADDRESS BUS CONTROL BUS In realtà il bus del microprocessore si compone di 3 bus diversi: Bus indirizzi Bus di controllo

clock DATA BUS ADDRESS BUS CONTROL BUS In realtà il bus del microprocessore si compone di 3 bus diversi: Bus indirizzi Bus di controllo Schede a microprocessore Seconda parte Mondo esterno clock MEMORIA CPU PERIFERICA ADATTATORE DATA BUS ADDRESS BUS CONTROL BUS In realtà il bus del microprocessore si compone di 3 bus diversi: Bus dati

Dettagli

Architettura dei calcolatori I parte Introduzione, CPU

Architettura dei calcolatori I parte Introduzione, CPU Università degli Studi di Palermo Dipartimento di Ingegneria Informatica C.I. 1 Informatica ed Elementi di Statistica 2 c.f.u. Anno Accademico 2009/2010 Docente: ing. Salvatore Sorce Architettura dei calcolatori

Dettagli

Von Neumann. John Von Neumann (1903-1957)

Von Neumann. John Von Neumann (1903-1957) Linguaggio macchina Von Neumann John Von Neumann (1903-1957) Inventore dell EDVAC (Electronic Discrete Variables AutomaFc Computer), la prima macchina digitale programmabile tramite un soiware basata su

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

ARCHITETTURA DEL CALCOLATORE

ARCHITETTURA DEL CALCOLATORE Orologio di sistema (Clock) UNITÀ UNITÀ DI DI INGRESSO Schema a blocchi di un calcolatore REGISTRI CONTROLLO BUS DEL SISTEMA MEMORIA DI DI MASSA Hard Hard Disk Disk MEMORIA CENTRALE Ram Ram ALU CPU UNITÀ

Dettagli

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch.

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch. Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE Comunicazione importante dalla prossima settimana, la lezione del venerdì si terrà: dalle 15:00 alle 17.15 in aula 311 l orario

Dettagli

Architettura di un computer

Architettura di un computer Architettura di un computer Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36 La tecnologia Cerchiamo di capire alcuni concetti su

Dettagli

Circuiti sequenziali e elementi di memoria

Circuiti sequenziali e elementi di memoria Il Livello Logicoigitale I circuiti sequenziali Corso ACSO prof. Cristina SILVANO Politecnico di Milano Sommario Circuiti sequenziali e elementi di memoria Bistabile SR asincrono Temporizzazione e clock

Dettagli

CONCETTI BASE dell'informatica Cose che non si possono non sapere!

CONCETTI BASE dell'informatica Cose che non si possono non sapere! CONCETTI BASE dell'informatica Cose che non si possono non sapere! Pablo Genova I. I. S. Angelo Omodeo Mortara A. S. 2015 2016 COS'E' UN COMPUTER? È una macchina elettronica programmabile costituita da

Dettagli

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE CORSO INTRODUTTIVO DI INFORMATICA NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE Dott. Paolo Righetto 1 CORSO INTRODUTTIVO DI INFORMATICA Percorso dell incontro: 1) Alcuni elementi della configurazione hardware

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

Memorie ROM (Read Only Memory)

Memorie ROM (Read Only Memory) Memorie ROM (Read Only Memory) Considerando la prima forma canonica, la realizzazione di qualsiasi funzione di m variabili richiede un numero di porte AND pari al numero dei suoi mintermini e di prolungare

Dettagli

Tecnologia dell Informazione

Tecnologia dell Informazione Tecnologia dell Informazione Concetti di base della tecnologia dell informazione Materiale Didattico a cura di Marco Musolesi Università degli Studi di Bologna Sede di Ravenna Facoltà di Giurisprudenza

Dettagli

Struttura del Calcolatore Corso di Abilità Informatiche Laurea in Fisica. prof. Corrado Santoro

Struttura del Calcolatore Corso di Abilità Informatiche Laurea in Fisica. prof. Corrado Santoro Struttura del Calcolatore Corso di Abilità Informatiche Laurea in Fisica prof. Corrado Santoro La prima macchina programmabile Conoscete queste macchine? Telai Jacquard (primi anni del 1800) Macchina per

Dettagli

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6 Ciclo di Istruzione Può essere suddiviso in 4 tipi di sequenze di microoperazioni (cioè attività di calcolo aritmetico/logico, trasferimento e memorizzazione dei dati), non tutte necessariamente da realizzare

Dettagli

PROGRAMMA DI SISTEMI TERZA AET 2014/2015

PROGRAMMA DI SISTEMI TERZA AET 2014/2015 PROGRAMMA DI SISTEMI TERZA AET 2014/2015 Docente: Gamerra Giuseppe, Porta Giovanni Testo : manuali originali dello Z80, appunti in classe, dispense sulla intranet, simulatore OSHONSOFT A) Non sono state

Dettagli

23/02/2014. Dalla scorsa lezione. La Macchina di Von Neumann. Uomo come esecutore di algoritmi

23/02/2014. Dalla scorsa lezione. La Macchina di Von Neumann. Uomo come esecutore di algoritmi Dalla scorsa lezione LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica LA MACCHINA DI VON NEUMANN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico

Dettagli

1.1.3.1. Conoscere i diversi tipi di memoria centrale presenti nel computer, quali: RAM (randomaccess memory), ROM (read-only memory)

1.1.3.1. Conoscere i diversi tipi di memoria centrale presenti nel computer, quali: RAM (randomaccess memory), ROM (read-only memory) 1.1.3.1 Conoscere i diversi tipi di memoria centrale presenti nel computer, quali: RAM (randomaccess memory), ROM (read-only memory) Se non fosse in grado di ricordare l uomo non sarebbe capace di eseguire

Dettagli

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

Unità Periferiche. Rete Di Controllo

Unità Periferiche. Rete Di Controllo MODELLO LOGICO-FUNZIONALE DI UN ELABORATORE Centrale di canale Periferiche CPU Memoria centrale ALU CU Memoria Locale ALU = Aritmetic Logic Unit CU = Registri CU ISTRUZIONE Decodificatore Rete Di Controllo

Dettagli

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

Gerarchia delle memorie

Gerarchia delle memorie Memorie Gerarchia delle memorie Cache CPU Centrale Massa Distanza Capacità Tempi di accesso Costo 2 1 Le memorie centrali Nella macchina di Von Neumann, le istruzioni e i dati sono contenute in una memoria

Dettagli

Appunti di Sistemi Elettronici

Appunti di Sistemi Elettronici Prof.ssa Maria Rosa Malizia 1 LA PROGRAMMAZIONE La programmazione costituisce una parte fondamentale dell informatica. Infatti solo attraverso di essa si apprende la logica che ci permette di comunicare

Dettagli

Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2

Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2 Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2 1 Dott. Pasquale De Michele Dipartimento di Matematica e Applicazioni Università di Napoli Federico II Compl. Univ. Monte S.Angelo Via

Dettagli

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1 La microarchitettura. anno accademico 2006 2007 pagina 1 Integer Java virtual machine Ogni microprocessore può avere una microarchitettura diversa, ma la modalità di funzionamento per certi aspetti è generale.

Dettagli

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

Modulo 1 Le memorie. Si possono raggruppare i sistemi di elaborazione nelle seguenti categorie in base alle possibilità di utilizzazione:

Modulo 1 Le memorie. Si possono raggruppare i sistemi di elaborazione nelle seguenti categorie in base alle possibilità di utilizzazione: Modulo 1 Le memorie Le Memorie 4 ETA Capitolo 1 Struttura di un elaboratore Un elaboratore elettronico è un sistema capace di elaborare dei dati in ingresso seguendo opportune istruzioni e li elabora fornendo

Dettagli

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati Il Livello LogicoDigitale i Blocchi funzionali combinatori Circuiti integrati Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni LEZIONE 2 (HARDWARE) a.a. 2011/2012 Francesco Fontanella Tre concetti Fondamentali Algoritmo; Automa (o anche macchina); Calcolo; 2 Calcolatore MACCHINA

Dettagli

L unità di elaborazione pipeline L unità Pipelining

L unità di elaborazione pipeline L unità Pipelining Struttura del processore L unità di elaborazione pipeline Corso ACSO prof. Cristina SILVANO Politecnico di Milano Incremento delle Per migliorare ulteriormente le si può: ridurre il periodo di clock aumentare

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Architettura dei calcolatori Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Capitolo. Interfacciamento di periferiche I/O con il PC. 1.1 Il BUS di espansione del PC

Capitolo. Interfacciamento di periferiche I/O con il PC. 1.1 Il BUS di espansione del PC Capitolo 1 Interfacciamento di periferiche I/O con il PC 1.1 Il BUS di espansione del PC 1.2 Interfacciamento di periferiche I/O con il PC, con dispositivi non programmabili 1.3 Istruzioni per leggere

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Informatica di base. Hardware: CPU SCHEDA MADRE. Informatica Hardware di un PC Prof. Corrado Lai

Informatica di base. Hardware: CPU SCHEDA MADRE. Informatica Hardware di un PC Prof. Corrado Lai Informatica di base Hardware: CPU SCHEDA MADRE HARDWARE DI UN PC 2 Hardware (parti fisiche) Sono le parti fisiche di un Personal Computer (processore, scheda madre, tastiera, mouse, monitor, memorie,..).

Dettagli

Scuola Secondaria di Primo Grado Anna Frank Nome Cognome classe anno sc. 2008/09 INFORMATICA

Scuola Secondaria di Primo Grado Anna Frank Nome Cognome classe anno sc. 2008/09 INFORMATICA Scuola Secondaria di Primo Grado Anna Frank Nome Cognome classe anno sc. 2008/09 INFORMATICA Il termine informatica riassume due parole, informazione automatica, e si occupa dei sistemi per l elaborazione

Dettagli

L organizzazione interna della memoria e del banco di registri prevedono generalmente che le uscite di 2 o più componenti

L organizzazione interna della memoria e del banco di registri prevedono generalmente che le uscite di 2 o più componenti Banco di registri e memoria Corso ACSO prof. Cristina SILVANO Politecnico di Milano Componenti di memoria e circuiti di pilotaggio L organizzazione interna della memoria e del banco di registri prevedono

Dettagli

che vengano generati nell ordine corretto i sistema (es., la memoria, l unità aritmetico-

che vengano generati nell ordine corretto i sistema (es., la memoria, l unità aritmetico- Principi di architetture dei calcolatori: l unità di controllo Mariagiovanna Sami L unità di controllo Per eseguire le istruzioni di macchina, occorre che vengano generati nell ordine corretto i segnali

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

Dettagli

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Hardware, software e periferiche Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Riepilogo - Concetti di base dell informatica L'informatica è quel settore scientifico disciplinare

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it La memoria principale 2 izzazione della memoria principale ria principale è organizzata come

Dettagli

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO 1 Domanda [1 punto] Dato il formato in virgola mobile su 32 bit così definito (precisione singola): o 1

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

Programmazione dello Z80

Programmazione dello Z80 Il microprocessore si incarica di: gestire il programma e i suoi dati di eseguire i calcoli richiesti. Le azioni appena elencate rendono necessario che il microprocessore abbia da qualche parte, al suo

Dettagli

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore Dispensa di Fondamenti di Informatica Architettura di un calcolatore Hardware e software La prima decomposizione di un calcolatore è relativa ai seguenti macro-componenti hardware la struttura fisica del

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli