architettura degli elaboratori - intranet · architettura degli elaboratori l’elaoratore (o...
TRANSCRIPT
Architettura degli Elaboratori
a.a. 2014/15
Classe 3: matricole congrue 2 modulo 3
Presentazioni
• Marcella Anselmo
• Info: http://www.di.unisa.it/professori/anselmo/
• Orario ricevimento: • Lunedì 14:30 – 16:30 • Giovedì 11 – 12
• Il mio studio è il n° 57 al 4° piano (ultimo livello) della Stecca 7 (fra l'aula F8 e la sede di Farmacia).
Pagina corso • Pagina personale del corso:
http://www.di.unisa.it/professori/anselmo/archi1415.htm
Troverete: orario lezioni, ricevimento, programma, avvisi generali, syllabus …
• Piattaforma e-learning:
http://www.scienzemfn.unisa.it/el-platform/
quando ci sarete anche voi
Troverete: avvisi per chi è iscritto/segue il corso, calendario aggiornato via via, slides (parziali), esercizi, …
Svolgimento del corso
• Il corso consiste di 10 CFU per un totale di 80 ore di corso, di cui: 56 ore di lezione frontale 24 ore di esercitazione
• Orario lezioni
– Lunedì 11-13, Aula P3 – Mercoledì 9 - 12, Aula P3 – Giovedì 9 - 11, Aula P3
• Inoltre eventuali ore di recupero saranno svolte il Giovedì dalle 14 alle 16.
• Ultima lezione prevista: 17 dicembre 2013, a meno di…
Prerequisiti
• Non vi sono propedeuticità formali.
• Allo studente non e' richiesta nessuna particolare conoscenza informatica. Una buona conoscenza da utente di personal computer può aiutare nell'inquadramento di alcune parti del corso. Una conoscenza (anche approssimativa) di programmazione può aiutare nella parte relativa alla programmazione assembler.
• Meglio seguire/studiare anche Programmazione 1
Modalità di frequenza
Lo svolgimento delle esercitazioni e la frequenza del corso sono fortemente consigliate.
Gli studenti devono essere preparati a trascorrere una congrua quantità di tempo nello studio al di fuori delle lezioni.
Come studiare?
• Lezioni (domande «stupide» non esistono)
• Slides, appunti, ma… libri!
• Esercizi (da soli, a gruppi,…)
• Ricevimento
• Organizzare gli esami dei vari corsi (e prenotarsi in tempo)
• Puntare in alto/ non perdere mai di vista motivazioni e obiettivi
Libri di testo
I libri di testo sono:
• [PH] D. A. Patterson , J. L. Hennessy, “Struttura e progetto dei calcolatori”, III ed. con cd rom, 2010, Zanichelli, ISBN: 9788808062796
(parte dei primi 5 capitoli e
delle Appendici C e D sul CD)
• [P] F. Preparata, “Introduzione alla organizzazione e progettazione di un elaboratore elettronico”, Ed. Franco Angeli 2012, ISBN: 9788820474157
Esami (!) • L’esame consiste di una prova scritta e di una orale (cui si accede solo dopo
il superamento di quella scritta).
• Sono inoltre previste due prove intercorso, la prima a metà novembre e la seconda alla fine del corso. Gli studenti che supereranno le due prove potranno sostenere direttamente la prova orale.
• Gli studenti interessati alle prove di esame devono prenotarsi su Esse3 entro il termine utile. Ricordo inoltre che è possibile e doveroso cancellare la propria prenotazione qualora si decida di non partecipare, per evitare un inutile spreco di risorse.
• Durante lo svolgimento del compito scritto NON è consentito consultare libri, appunti o altro materiale di nessun tipo.
• Faremo poi dei brevi test in aula per verifica l’apprendimento degli argomenti studiati
Date esami
1. Pre-appello nel periodo 7 - 16 Gennaio 2015: 14 gennaio ore 15 aula P4. 2. Primo appello nel periodo 19 Gennaio 2015 - 6 Febbraio 2015: 28 gennaio ore 15 aula P4. 3. Secondo appello nel periodo 9 - 27 Febbraio 2015: 18 febbraio ore 15 aula P4. 4. Appello straordinario nel periodo 8 – 21 Aprile 2015. Attenzione: l’appello è riservato esclusivamente agli studenti che abbiano conseguito almeno 135 CFU e tutti gli studenti di ordinamenti disattivati (matr. diverse da 05121). 5. Primo appello nel periodo 22 Giugno 2014 –10 Luglio 2015. 6. Secondo appello nel periodo 13 – 31 Luglio 2015. 7. Appello nel periodo 1 - 19 Settembre 2015. 8. Appello straordinario in Novembre 2015.
Tantissime…
• Prima prova intercorso: lunedì 10 novembre ore 9 Aula P3
• Seconda prova intercorso: 13 gennaio 2015 ore 9 aula P4
Architettura degli elaboratori
Architetti? Di cosa? Avete sbagliato aula?
Elaboratori, calcolatori?
Architettura, struttura, progetto, organizzazione?
Architettura degli Elaboratori
L’Elaboratore (o calcolatore, o computer) è una macchina in grado di eseguire autonomamente sequenze di operazioni logiche-aritmetiche sui dati in ingresso (input) e restituire i risultati di tali operazioni in uscita (output)
L’ Architettura (informatica) è l’insieme dei criteri in base ai quali e’ progettato e realizzato un sistema informatico.
Calcolare…. Perche’ i calcolatori?
Evitare compiti noiosi e ripetitivi
“I computer sono incredibilmente veloci, accurati e … stupidi.
Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
Insieme sono una potenza che supera l'immaginazione.”
Albert Einstein
Un po’ di (prei)storia
• (Abaco) • 1642 - Pascal: Pascalina (somme e sottrazioni di numeri ad 8 cifre) • 1674 - Leibniz: Perfezionamento della Pascalina: anche moltiplicazioni e divisioni • 1790 - Jaquard: telai meccanici che usavano schede perforate (sistema programmabile!) • 1822 – Babbage (e Ada Lovelace): Analytical Engine (Non riuscì a realizzarla) • 1889 - Hollerith: Macchina per il censimento degli americani (basata sulle idee di Babbage) • 1920 -’30 - Stibitz: computer con relè telefonici e lampadine
La storia comincia….
• 1945 – Turing, Von Neumann: ENIAC (primo computer elettronico, non programmabile) • 1947 Bardeen, Brattley Shotky: il transistor • 1948 - Shannon: Teoria dell’informazione • 1975 - il microprocessore • 1976 – il primo personal computer (Apple)
Turing e Von Neumann
Tutto ha inizio con un lavoro scritto da Alan Turing nel 1936 in cui veniva descritta la
“Macchina di Turing Universale”
Turing e Von Neumann
Negli anni che seguirono Turing e Von Neumann contribuirono entrambi alla
reduction to practice dei concetti di base della Macchina di Turing Universale… … ma noi ricordiamo il risultato finale di questo lavoro come la
Architettura di Von Neumann
Architettura di Von Neumann
Achitettura Harward
La memoria è suddivisa in: Memoria dati e Memoria istruzioni
Studieremo il processore MIPS
• Un processore vero
• Sarà il nostro esempio di riferimento per studiare i principi di progettazione di un processore
Architettura Harward Modificata (Pipeline)
Alla fine: il processore MIPS Alla fine del corso di Architettura dovete sapere come funziona una versione semplificata del processore MIPS
Obiettivi del corso
Oggi
Incremento delle prestazioni:
• la densità dei circuiti integrati raddoppia ogni 1.5 anni (20%/anno)
• la velocità migliora del 50% ogni anno
• la densità delle memorie migliora del 60% ogni anno
Contenuti del corso Il corso si propone di introdurre l’architettura dei calcolatori ed i principi che sono alla base della loro progettazione. Verranno presentate struttura e funzionalità dell’architettura di un calcolatore moderno.
Principali argomenti trattati durante il corso:
1) rappresentazione dell'informazione: - rappresentazione degli interi e algoritmi di conversione per interi (dec-bin, bin-dec)) - rappresentazione e aritmetica in complemento a due - rappresentazione in virgola mobile - codifica ASCII
2) logica digitale: - algebra booleana - reti combinatorie e ALU - elementi di memorizzazione: flip-flop, register file e moduli combinatori
3) linguaggio assembler di una macchina RISC
4) implementazione della unità di elaborazione
5) misura delle prestazioni, miglioramento delle prestazioni mediante pipeline e gerarchie di memoria
Cosa imparerete in questo corso? Lo studente acquisira’ le seguenti capacita’ applicative:
- esecuzione e comprensione del processo di traduzione nell’assembler di una architettura RISC dei costrutti di base del linguaggio C, scelto come esemplificativo dei linguaggi procedurali di livello utente;
- analisi di una rete combinatoria e determinazione della relativa funzione booleana implementata;
- esecuzione delle conversioni in notazione decimale dei principali formati di rappresentazione interna dei numeri interi e frazionari;
- esecuzione di semplici calcoli di valutazione delle prestazioni hardware in funzione sia del ciclo che della frequenza di clock.
Mediante le conoscenze acquisite attraverso lo studio di una architettura RISC sui principi di base della progettazione di un linguaggio assembler e sulle scelte architetturali da affrontare nella relativa implementazione hardware, lo studente sara’ in grado di orientarsi in successivi processi di apprendimento di ulteriori linguaggi assembler e delle relative architetture hardware.
Electronic Numerical Integrator and Computer
Evoluzione
• Un Campo in evoluzione rapida:
– Valvole -> transistor -> Circuiti Integrati -> VLSI
– Ogni 1.5 anni raddoppia:
la capacità di memoria
Velocità di elaborazione (merito di progressi
tecnologici e di organizzazione)
Progettazione per raffinamenti successivi
Registers
Register #
Data
Register #
Data
memory
Address
Data
Register #
PC Instruction ALU
Instruction
memory
Address
Primo livello di progettazione
Progettazione per raffinamenti successivi
PC
Instruction
memory
Instruction address
Instruction
a. Instruction memory b. Program counter
Add Sum
c. Adder
Secondo livello di progettazione
Progettazione per raffinamenti successivi
ALU control
RegWrite
RegistersWrite register
Read data 1
Read data 2
Read register 1
Read register 2
Write data
ALU result
ALU
Data
Data
Register
numbers
a. Registers b. ALU
Zero5
5
5 3
Secondo livello di progettazione
Aritmetica
32
32
32
operation
result
a
b
ALU
Terzo livello di progettazione
Implementazione della ALU a 32 bit
b
0
2
Result
Operation
a
1
CarryIn
CarryOutResult31
a31
b31
Result0
CarryIn
a0
b0
Result1
a1
b1
Result2
a2
b2
Operation
ALU0
CarryIn
CarryOut
ALU1
CarryIn
CarryOut
ALU2
CarryIn
CarryOut
ALU31
CarryIn
Terzo livello di progettazione
E per finire
Una buona notizia!
Domani Giovedì 25/9 lezione 9-10 (1 ora anziché 2)
Rappresentazione in binario
00 = 0
01 = 1
10 = 2
11 = 3
000 = 0
001 = 1
010 = 2
011
100
101
110
111 0
1 0 = 2
1 = 3
0 = 0
1 = 1
0
0 1
1
00 = 4
01 = 5
10 = 6
11 = 7
0
0
0
0 1
1
1
1
000
001
010
011
100
101 = 13
110 = 14
111 = 15
0
0
0
0
0
0
0
0 1
1
1
1
1
1
1
1
Quali/ quanti interi posso rappresentare con una sequenza di n bit?
n = 1 n = 2 n = 3 n = 4
.
.
.
.
.
.
.