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