Alfredo Navarra, Ph.D. [email protected] tel: 075 585 5046 URL : www.dmi.unipg.it/navarra/LabArch.htm ORARIO LEZIONI: MARTEDI MERCOLEDI 14:00-16:00 A2 09:00-11:00 A2 MODALITA’ D’ESAME: Prova scritta Gli esercizi / domande aperte verteranno su: - Conversione di codifica dei numeri - Programmazione nel Linguaggio Macchina di riferimento (PDP8) - strategie architetturali PORTARE SOLTANTO PENNA E CALCOLATRICE Architettura degli Elaboratori Con Laboratorio, modulo II Libri Consigliati: 1. C. Hamacher, Z. Vranesic, S. Zaky: Introduzione all'architettura dei calcolatori s.e. McGraw-Hill, II ed. 2. F. Barsi: Architettura degli elaboratori, parte seconda: struttura dei sistemi. Margiacchi-Galeno 3. D. Patterson, J. Hennessy: Struttura e Progetto dei Calcolatori. Zanichelli Altro materiale: 1. Emulatore Automi cellulari 2. Emulatore PDP8 Slides 3. Introduzione al Calcolatore Dall’Abaco… … al Linguaggio Macchina Codifiche e programmazione Memoria Pipelining ATTENZIONE: LE SLIDES NON SONO SUFFICIENTI PER UNA PREPARAZIONE ADEGUATA AL CORSO D1: Le conoscenze preliminari possedute sono risultate sufficienti per la comprensione degli argomenti previsti nel programma di esame? D2: Il carico di studio di questo insegnamento è proporzionato ai crediti assegnati? D3: Il materiale didattico (indicato e disponibile) è adeguato per lo studio della materia? 10 D4: Le modalità di esame sono state definite in modo chiaro? 10 D5:Gli orari di svolgimento di lezioni, di esercitazioni e altre eventuali attività didattiche sono rispettati? (solo per frequentanti) 10 D6: Il docente stimola / motiva l’interesse verso la disciplina? (solo per frequentanti) D7: Il docente espone gli argomenti in modo chiaro? (solo per frequentanti) D8: Le attività didattiche integrative (esercitazioni, laboratori, seminari, ecc.) sono utili all’apprendimento della materia? (solo per frequentanti) D9: L’insegnamento è stato svolto in maniera coerente con quanto dichiarato sul sito web del corso di studio? (solo per frequentanti) 10 D10: Il docente è reperibile per chiarimenti e spiegazioni? 10 D11: Le lezioni sono svolte dal/dai docente/ti titolare/ri? (solo per frequentanti) 10 D12: E’ interessato/a agli argomenti trattati nell’insegnamento? D13: Complessivamente, valuta in maniera positiva l’insegnamento? D14: L’organizzazione del tirocinio nel suo complesso è risultata positiva? (domanda riferita al solo tirocinio) Che cos'è un Calcolatore Un calcolatore è una macchina / dispositivo in grado di eseguire calcoli in modo automatico: ú prende in ingresso informazioni / dati ú elabora le informazioni / dati secondo le regole stabilite da una lista predefinita di istruzioni macchina (programma) ú manda in uscita i risultati dell’elaborazione, come informazioni / dati La lista di istruzioni macchina che guida tutto quanto il processo è il programma, e si trova nella memoria La struttura di un calcolatore varia a seconda della dimensione, costo, potenza di calcolo e scopo per cui è progettato Hardware e Software L'architettura di un elaboratore, e più in generale di un sistema di elaborazione è costituita da due componenti fondamentali mutuamente dipendenti: Hardware: insieme delle componenti fisiche ed elettroniche che compongono l’elaboratore Software: insieme dei programmi. Fisicamente intangibile ma indispensabile per compiere operazioni con l’hardware Trovare il giusto compromesso (tradeoff) trà complessità HW e complessità SW significa ottimizzare parametri quali tempo di elaborazione, velocità, ampiezza di mercato Firmware: Componenti hardware pre-programmate atte a realizzare specifiche funzionalità (Es: ROM, Read Only Memories; PLA, Programmable Logic Array). Organizzazione di un Calcolatore Organizzazione di un Calcolatore • Riguarda le relazioni strutturali tra le unità funzionali e il modo in cui esse realizzano una data architettura •È tendenzialmente non visibile al programmatore: • la tecnologia impiegata • frequenza di clock • modalità di esecuzione di una istruzione • Decidere se l’istruzione di moltiplicazione farà parte del repertorio di istruzioni è una questione architetturale • Decidere se per l’esecuzione di questa istruzione è prevista una specifica unità di moltiplicazione o se è ottenuta attraverso l’impiego dell’unità di somma comunque presente nella macchina è una decisione organizzativa Rappresentazione per Astrazione • Nelle scienze la realtà è rappresentata attraverso modelli • Poiché un calcolatore costituisce un sistema estremamente complesso, risulta conveniente una rappresentazione per livelli di astrazione • Ad ogni livello si evidenziano gli aspetti di interesse tralasciando quelli non necessari (astrazione) • Ciò consente di affrontare l’analisi e il progetto in modo ordinato: ogni livello, sfruttando quello inferiore, costruisce l’insieme di astrazioni rilevanti per il livello superiore • Più precisamente, ogni livello è costituito da un insieme di componenti e un insieme di modi per combinarli in strutture • Tali strutture costituiscono le componenti di partenza del livello superiore Livelli di Astrazione *RTL: register transfer language Esempio: Il Mouse • L’architettura di un mouse ne determina : • Prestazioni (velocità/precisione) • Modalità acquisizione dati • Costo Il Mouse Il Mouse 1- Led 2- Specchio 3- Light detector chip 4- Scroll wheel 5 - Tasto 6 - Connessione Il Mouse: connessioni Porta seriale PS2 USB Il Mouse Unità Funzionali del Calcolatore Unità di I/O § Ingresso § Uscita •TASTIERA • MONITOR • MOUSE / PUNTATORE • STAMPANTE • TRACKBALL • PLOTTER • JOYSTICK / CLOCHE • CASSE ACUSTICHE • MICROFONO • … • SCANNER • TELECAMERA / WEBCAM •… FAX, TOUCH-SCREEN, MULTIFUNZIONI, DISPOSITIVI REALTA' VIRTUALE, … Unità di Memoria: centrale o primaria • La memoria centrale ha il compito principale di mantenere a disposizione del processore i dati necessari per l'esecuzione di un programma, compreso il programma stesso • La memoria centrale è attualmente formata da un numero molto grande di celle di memoria elementari realizzate tramite transistor a semiconduttore ú Ogni singola cella è capace di contenere 1 bit di informazione (si dice cella di memoria anche l'insieme di bit che costituiscono una parola di memoria, word) ú Ogni parola è identificata in modo univoco da un numero chiamato indirizzo (address) ú Il numero di bit che costituiscono una parola è detto lunghezza della parola (tipicamente potenza di 2) ú Il numero di parole costituenti la memoria centrale è detto capacità della memoria Unità di Memoria: centrale o primaria • La tecnologia microelettronica che permette di accedere rapidamente ad una qualsiasi parola (per operazioni di lettura e scrittura) indipendentemente dall'indirizzo e' chiamata: Memoria ad accesso casuale, RAM •L'intervallo di tempo necessario per individuare ed accedere ad una parola è chiamato: tempo di accesso alla memoria ú I tempi tipici delle RAM moderne sono dell'ordine dei nano-secondi, ovvero 10-9 s • Gerarchia della memoria primaria ú Cache ú memoria centrale Unità di Memoria: di massa o secondaria •Caratteristica principale è la persistenza • nastro magnetico • disco magnetico • disco ottico (CD, DVD, BD) • memoria flash (USBKEY) • Cloud •… Unità Aritmetico-Logica, ALU • La maggior parte delle operazioni svolte dal calcolatore viene eseguita dalla ALU • Supponiamo di voler addizionare due parole: • i due numeri vanno letti / caricati nel processore • la ALU effettua l'addizione • la somma viene scritta / memorizzata • All'interno del processore, i dati di input o intermedi possono essere memorizzati / registrati in speciali celle di memoria, i registri Unità di Controllo • Si occupa della coordinazione, gestione e sincronizzazione delle varie attività / richieste generate dalle altre unità funzionali • Generico flusso di coordinazione: 1. Vengono acquisiti istruzioni (programma) e informazioni (dati) tramite l'unità di ingresso 2. Le istruzioni vengono prelevate dalla memoria e messe in esecuzione 3. Sotto la guida delle istruzioni, i dati vengono letti, elaborati (tramite la ALU) e scritti in memoria 4. I risultati finali sono inviati all'unità d'uscita Rappresentazione dell'Informazione • La componente elettronica elementare degli attuali calcolatori è il transistore che intuitivamente è un interruttore solido (cioè senza parti meccaniche) • Il transistore ha due stadi di funzionamento: • Interdizione (off) e conduzione (on) • Ciò implica che il sistema di codifica di tutte le informazioni necessarie che ne deriva è in modo naturale quello binario, ovvero, si hanno a disposizione due valori, comunemente indicati con 0 e 1. • Ogni numero, carattere, istruzione sarà codificato con una stringa o successione di cifre binarie. La cifra binaria viene comunemente chiamata bit. • A seconda delle operazioni che il calcolatore sta effettuando, deve interpretare correttamente le stringhe binarie Esempi di codifica • Codifica binaria • BCD (Binary-Coded Decimal): Ogni cifra decimale viene codificata attraverso 4 bit • ASCII (American Standard Code for Information Interchange): Ogni carattere (lettere, cifre, punteggiatura, etc.) viene codificato attraverso 7 bit • EBCDIC (Extended Binary-Coded Decimal Interchange Code): Stesso scopo del codice ASCII ma utilizza 8 bit • Standard IEEE 754: rappresentazione dei numeri frazionari nel formato detto a virgola mobile (es. 1 bit di segno (s), 8 bit esponente (e), 23 bit mantissa (M) -> (-1)s x 2E x M dove E è ottenuto dalla differenza di e con k=(28-2)/2=127, in modo da adibire metà esponenti positivi e metà negativi) Codice ASCII Rappresentazione dell'informazione 110110011000011100010 • Decimale: 110.110.011.000.011.100.010 • Binario:2+32+64+128+4096+8192+65536+131072+ +524288+1048576 = 1.781.986 • BCD: 1|1011|0011|0000|1110|0010 = 1?30?2 • ASCII: 1001100|1100001|1100010 = lab • EBCDIC: 1.1011|0011.0000|1110.0010 = 1B.30.E2=ESC.0.â