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.â