Calcolatori Elettronici B a.a. 2006/2007 INTRODUZIONE AL CORSO Modalità e Note Organizzative Massimiliano Giacomin 1 PRECEDENZE E PROPEDEUTICITA’ Corso di laurea primo livello Ing. Informazione PRECEDENZE: - Fondamenti di Informatica A - Fondamenti di Informatica B Fortemente consigliati PROPEDEUTICITA’: - Calcolatori Elettronici A - Fondamenti di Informatica C Corso di laurea specialistica Ing. Informatica e Ing. Elettronica per l’Automaz. PRECEDENZA: - Calcolatori Elettronici A 2 Materiale di studio Sito Internet del Corso: http://zeus.ing.unibs.it/calcb/ • Lucidi del corso • Links, informazioni varie, eventuale software da scaricare • News, risultati degli esami, ecc. • Ogni altra cosa dovesse risultare utile! Libro • Patterson & Hennessy: Computer Organization and Design [Third Edition] [Morgan Kaufmann - Elsevier] anche in italiano: “Struttura e progetto dei calcolatori” – seconda edizione Zanichelli condotta sulla terza edizione americana Lo stesso di Calcolatori A 3 Libri per la consultazione: • Hamacher, Vranesic, Zaky: Introduzione all’architettura dei calcolatori – seconda edizione [Mc Graw-Hill] •Giacomo Bucci: Architettura e organizzazione dei calcolatori elettronici [Fondamenti – Strutture Avanzate] [Mc Graw-Hill] • A. Tanenbaum: Structured Computer Organization [Prentice Hall] NB: in ogni caso, il programma è costituito da tutti e soli gli argomenti trattati a lezione!!! 4 Contattarmi Ufficio n. 27 del DEA E-mail: [email protected] Orario di ricevimento: MERCOLEDI’ DALLE 10.00 alle 13.00 • Garantito in periodo di lezione [eventi speciali - p.es. sedute di laurea - a parte] (e di norma anche dopo, ma si consiglia appuntamento via mail per sicurezza) • Per particolari esigenze (es. NO per chiedere quando escono i risultati!): si consiglia di usare l’e-mail • Eventuali variazioni di orario/giorno indicate nel sito internet del corso. 5 Modalità di Esame PROCEDURA “TRADIZIONALE”: ESAME SCRITTO ELABORATO PROVA ORALE Principi di progettazione suggeriti dal Patterson: - rendere veloce l’evento più frequente - un buon progetto è frutto di buoni compromessi USEREMO LA MODALITA’ SEGUENTE… [la comprensione delle istruzioni è propedeutica allo svolgimento dell’esame] 6 Voto ≥ 18 ma valutazione non adeguata alla preparazione SCRITTO ORALE PRESENTAZ. (DI NORMA BREVE!) Voto ≥ 18 ma ELABORATO Gradito un “ritocco” non gradito Voto < 18 o non gradito NB: sarà difficile ma non impossibile prendere 30 direttamente allo scritto OK Voto ≥ 18 e gradito Eventuale discussione scritto REGISTR. VOTO Evento più frequente: solo scritto, pretese di voto non eccessive Compromesso: elaborato per appassionati (NO COPIA E INCOLLA!!!) 7 TIPOLOGIA DI ESAME SCRITTO - Lungo e quanto più possibile ampio - Tempo di svolgimento ampio e adeguato (2-3 ore) - Teoria + esercizi - modalità articolate (domande a risposta aperta, a crocette, esercizi, ecc.) TIPOLOGIA DI ORALE - Breve e “di aggiustamento” - Discussione dello scritto TIPOLOGIE DI ELABORATI - Argomenti particolari proposti dal docente - Argomenti particolarmente interessanti proposti dallo studente - Casi concreti di applicazione di argomenti teorici visti a lezione su processori e architetture attuali - Sviluppo in linguaggio VHDL o Verilog - max 2-3 persone - per tutti è richiesta interazione/discussione che sarà determinante ai fini della valutazione [intervallo ampio di valutazione!] 8 Programma (di massima) del Corso NB: il corso approfondisce ed estende i concetti trattati nel corso di Calcolatori A (conviene averlo già superato!) 1. Brevi richiami su reti logiche (richiami dal corso di Calcolatori A) 2. Tecniche di specifica e realizzazione del controllo (singolo ciclo, multi-ciclo a stato esplicito e microprogrammato) 3. La struttura a pipeline e gestione delle criticità, prestazioni vs. realizzazione multi-ciclo. 4. Pipeline superscalari e dinamiche. 5. Il linguaggio Assembler Intel (con esercizi di programmazione). 6. Memoria virtuale e gerarchia di memorie. 7. Gestione dell’Input/Output e bus. Il prossimo anno tutto potrebbe cambiare… 9 Nuovi Argomenti trattati nel corso di Calcolatori B Calcolatori A Calcolatori B Assembler MIPS Assembler Intel CPU: Multi-Ciclo Pipeline Memoria Cache Memoria virtuale I/O Bus sincroni e asincroni 10 Architetture descrivono il calcolatore a diversi livelli di astrazione Livello del linguaggio specializzato Ls Traduzione (compilatore) o interpretazione da parte di un interprete che lavora su una macchina di livello inferiore 5. Livello del linguaggio orientato ai problemi Ln Traduzione (compilatore) o interpretazione da parte di un interprete che lavora su una macchina di livello inferiore 4. Livello del linguaggio assemblatore Traduzione (assemblatore) Livello di SO: ISA + altre istruzioni che vengono interpretate da un programma di livello 2 3. Livello del sistema operativo Interpretazione parziale Livello dei programmi in linguaggio macchina 2. Livello ISA* Interpretazione (microprogramma) o esecuzione diretta Livello del microprogramma, che interpreta le istruzioni dei programmi di livello 2 e genera i controlli per il data path Livello delle porte (gates) che eseguono i programmi di livello 1 (o 2) 0. 1. Livello microarchitettura hardware Livello della logica digitale *ISA: Instruction Set Architecture 11 Il calcolatore è progettato come una sequenza di macchine a diversi livelli, ognuna costruita sulle macchine definite ai livelli sottostanti. Ogni livello rappresenta una distinta astrazione, caratterizzata da differenti oggetti e operazioni. I tipi di dati, le operazioni e le caratteristiche di ogni livello sono chiamate architettura. • Dal livello 5 i linguaggi in cui esprimere i programmi sono chiamati linguaggi di alto livello: forniscono dati e operazioni per descrivere soluzioni di problemi in termini comprensibili per persone esperte in un certo campo. • I programmi del livello 4 sono in forma simbolica; vengono generalmente tradotti (o a volte interpretati) da altri programmi. • I programmi ai livelli 1, 2 e 3 sono sempre interpretati; la forma interpretata dalla macchina è sempre numerica. I confini tra hardware e software sono sfumati: Hardware and and software are logically equivalent (Tanenbaum ) Hardware is just petrified software (K: Panetta Lenz) ma “dovendo scegliere”: E' vero che il software non potrebbe esercitare i poteri della sua leggerezza se non mediante la pesantezza dell’hardware; ma è il software che comanda, che agisce sul mondo esterno e sulle macchine, le quali esistono solo in funzione del software, si evolvono in modo d'elaborare programmi sempre più complessi. (Italo Calvino) 12 Applicazioni (es. browser) Compilatori Sistemi Operativi Assemblatori Processore Memoria Sistema I/O Reti Logiche (Datapath e Controllo) Progettazione di chip Circuiti – El. digitale Microelettronica NB: Anche se si lavora ad un livello, è importante conoscere gli altri! Si richiede il coordinamento di molti livelli di astrazione, mai completamente indipendenti! Esempi: Sistema Operativo richiede di conoscere organizzazione del calcolatore Compilatore può produrre software “ottimizzato” per l’hw sottostante Prestazioni influenzate da architettura, organizzazione e livelli bassi 13