Reti Logiche e Architettura dei Calcolatori Luciano Gualà email [email protected] home page http://www.mat.uniroma2.it/~guala/ Corso annuale (12 crediti): Durata: da ottobre 2009 a giugno 2010 2 moduli: Reti Logiche (6 crediti) Architettura dei calcolatori (6 crediti) Calcolatore, programma, linguaggio macchina Cosa è un calcolatore? Cosa è un programma? una macchina che può risolvere problemi eseguendo le istruzioni che le vengono assegnate sequenza di istruzioni che descrive come portare a termine un dato compito Cosa è il linguaggio macchina? insieme di istruzioni che i circuiti elettronici di un calcolatore può riconoscere e eseguire direttamente Vi siete mai chiesti cosa effettivamente sa fare un calcolatore? Raramente le istruzioni elementari sono più complesse delle seguenti: sommare due numeri controllare se un numero vale zero copiare una porzione di dati da una parte all’altra della memoria I linguaggi macchina, poiché troppo elementari, sono difficili e tediosi da utilizzare approccio strutturale problema differenza fra ciò che è adatto agli utenti e ciò che lo è per i computer gli utenti vogliono fare X, ma i calcolatori sanno fare solo Y Idea: definire nuove istruzioni (linguaggio L1) più facili da utilizzare e poi ricondurle a quelle elementari (linguaggio L0) Due soluzioni: Traduzione: trasformare un programma scritto in L1 in uno scritto in L0. La trasformazione la esegue un programma in L0. Interpretazione: scrivere un programma in L0 che sa eseguire ogni istruzione di L1 Un altro modo di vederla: definire una macchina virtuale il cui linguaggio elementare è L1 approccio strutturale: linguaggi, livelli e macchine virtuali Livello n calcolatore reale Mn, con linguaggio macchina Ln . . . Livello 2 Livello 1 Livello 0 calcolatore virtuale M2, con linguaggio macchina L2 calcolatore vituale M1, con linguaggio macchina L1 calcolatore reale M0, con linguaggio macchina L0 I programmi in Ln sono interpretati da un interprete eseguito da una macchina inferiore oppure tradotti nel linguaggio macchina di una macchina inferiore I programmi in L2 sono interpretati da un interprete eseguito da M0 o M1 oppure tradotti in L0 o L1 I programmi in L1 sono interpretati da un interprete eseguito da M0 oppure tradotti in L0 I programmi in L0 possono essere eseguiti direttamente dai circuiti digitale …un tipico esempio… Livello 4 Livello del linguaggio orientato al problema Traduzione (compilatore) Livello 3 Livello del linguaggio assemblativo Traduzione (assemblatore) Livello 2 Livello di architettura dell’insieme di istruzioni Interpretazione (microprogramma) o esecuzione diretta Livello 1 Livello di microarchitettura Hardware Livello 0 Livello logico digitale perché studiare i “livelli bassi” Le persone che scoprono la potenza e la bellezza di idee di alto livello di astrazione spesso commettono l'errore di credere che le idee concrete a livelli inferiori di astrazione sono tutto sommato inutili e possono essere dimenticate. Al contrario, i migliori informatici sono sempre saldamente radicati nei concetti basilari che governano il funzionamento dei calcolatori, ed in verità l'essenza dell'informatica è l'abilità di comprendere e governare molti livelli di astrazione contemporaneamente. Donald E. Knuth Reti Logiche (Modulo I) Cos’è una rete logica? Oggetto che modella un componente hardware digitale l’aggettivo digitale viene dall’inglese digit (cifra), che viene dal latino digitus (dito) Sistemi hadware digitali: tipologia di sistemi di elaborazione (sistemi dedicati o annegati) che svolgono specifici compiti in altri sistemi digitale: ingressi e uscite assumono valori finiti e discreti (binari o booleani o logici: 0 o 1) Descrizione dei sistemi hardware digitali: tre livelli Comportamentale Logico descrizione astratta di ingressi, uscite, relazioni fra essi funzionalità del sistema interconnessione (la rete) degli elementi logici di base (porte logiche) porte logiche: componenti elementari Circuitale dispositivi elettronici (formati da transistor) che implementano i componenti logici per studiare il funzionamento di un transistor bisogna entrare nel campo della fisica dello stato solido …un esempio di rete logica… X0 X1 X2 X3 WE SE D Din D Q Ck D Q D Q Ck Ck Q Ck (SE.Ck)+ (WE.Ck) RE Y0 Y1 Y2 Y3 Cosa si studia Prima parte: Reti logiche reti combinatorie reti sequenziali uscite sono funzione dei soli ingressi Strumento: algebra booleana concetto di stato uscite sono funzione di ingressi e stato Strumento: automi a stati finiti Seconda parte: (qualcosa) sul calcolatore Aritmetica del calcolatore rappresentazione dell’informazione algoritmi per le operazioni di base Memoria interna Motivazioni Sistemi hardware digitali sono ovunque dispositivi mobili (palmari, cellulari) macchine fotografiche digitali elettronica per applicazioni automobilistiche apparecchiature biomedicali processori Indispensabile per comprendere il funzionamento di un calcolatore Concetti appresi nel corso costituiscono un patrimonio culturale importante trovano applicazione in altri corsi …una motivazione meno ortodossa… …progettare reti logiche è divertente! Informazioni utili Orario lezioni Martedì: 9,15 – 11,00 Venerdì: 9,15 – 12,00 Orario ricevimento Giovedì: 14,30 – 16,00 Ufficio: dip. di matematica, piano 0, corridoio B0, stanza 206 Informazioni utili Libri di testo M. Morris Mano, Charles R. Kime Reti Logiche (quarta edizione) Prentice Hall William Stallings Architettura e organizzazione dei Calcolatori Addison Wesley Slide e materiale didattico (in inglese) http://www.mat.uniroma2.it/~guala/ …altri testi utili… C. Bolchini, C. Brandolese, F. Salice, D. Sciuto Reti Logiche Apogeo F. Fumi, M. Sami, C. Silvano Progettazione Digitale McGraw-Hill Franco P. Preparata Introduzione alla oraganizzazione e progettazione di un elaboratore eletronico FrancoAngeli …esame… 4 appelli (Reti Logiche e Architettura dei Calcolatori) prove parziali 2 giugno-luglio 2010 1 settembre 2010 1 gennaio-febbraio 2011 1 esonero gennaio-febbraio 2010 modalità d’esame prova scritta in alcuni casi prova orale