Architettura dei calcolatori
Paolo Bison
Fondamenti di Informatica 1 A.A. 2004/05
Universit`a di Padova
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.1/27
Architettura
struttura e funzionalità di un calcolatore
hardware
software
Hardware
macchina di von Neumann
aI M O
CC CA
R R
CA central arithmetic I input CC central control O output
C CA+CC R outside recording medium M memory
aJ. von Neumann, First Draft of a Report on the EDVAC, 1945.
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.3/27
Neumann rivista
memoria centrale
memoria secondaria o ausiliaria
Central
Input Output
...
Memoria
dispositivo per la memorizzazione di informazione
programmi
dati in ingresso
dati intermedi
risultati
struttura e modalità di accesso
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.5/27
Struttura della memoria
insieme di M elementi di memoria (celle, parole)
rappresentazione binaria bit (0,1)
dimensione elemento di memoria
4 (nibble), 8 (byte), 16, 32, 64, ..., 1024, ...
dimensione M della memoria
kilobyte KB 1024 1 1024
megabyte MB 1024 2 1.048.576
gigabyte GB 1024 3 1.073.741.824
terabyte TB 1024 4 1.099.511.627.776
Modalità di accesso
lettura/scrittura delle celle
ad accesso casuale
indirizzo associato ad ogni cella
RAM (Random Access Memory)
tempo di accesso costante
sequenziale
per accedere al n-esima cella, si deve accedere alle n-1
precedenti
tempo di accesso variabile M−1 M−2
0 1 2
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.7/27
Memoria centrale
primaria
tecnologia al silicio
tipo RAM
accesso veloce
memorizzazione temporanea
Memoria secondaria
memorizzazione permanente
accesso lento
differenti tecnologie
magnetica (disco rigido, nastro)
ottica (disco)
accesso
ad indirizzo (disco)
sequenziale (nastro)
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.9/27
Disco rigido
Nastro
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.11/27
Centrale vs. secondaria
centrale secondaria
accesso veloce lento
costo alto basso
dimensione bassa elevata
memorizzazione temporanea permanente
CPU
individua ed esegue le istruzioni del programma
moduli funzionali
Control Unit (CU)
Arithmetic and Logic Unit (ALU)
Floating Point Unit (FPU)
Cache
Clock
registri
celle di memoria per funzioni particolari
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.13/27
Istruzioni macchina
repertorio di istruzioni che la CPU sa eseguire
specifico per ogni tipo di CPU
categorie
trasferimento dati
operazioni aritmetiche e logiche
salti
codifica binaria
programma eseguibile
sequenza finita di istruzioni macchina
Control Unit
governa il funzionamento della CPU
registri
Program Counter (PC)
Instruction Register (IR)
ciclo di esecuzione
fetch
decode
execute
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.15/27
Unità di calcolo
ALU
esegue calcoli aritmetici e logici
FPU
esegue calcoli su numeri in formato floating point
registri
data registers
address registers
status registers
Cache e Clock
cache
memoria tampone veloce interna alla CPU
memoria
centrale cache CPU
clock
modulo per la temporizzazione e sincronizzazione del calcolatore
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.17/27
Input/Output
dispositivi di interfaccia tra il calcolatore ed l’esterno
input
tastiera
mouse
output
video
stampante
Software
sistema operativo
software di base
software utente
UTENTE BASE
HW OS
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.19/27
Sistema operativo
software per la gestione del calcolatore
funzionalità
astrazione ed indipendenza dai dispositivi fisici
gestione risorse
• processore
• memoria centrale
• memoria secondaria
esecuzione dei programmi (processi)
Gestione risorse
processore
multiprogrammazione
memoria centrale
spazio di memoria per il singolo processo
memoria virtuale
memoria secondaria
file system
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.21/27
Software base
software per facilitare l’uso del calcolatore
programmi
interfaccia utente (UI)
editor
assembler
compilatori e interpreti
comandi file system
rete
librerie
matematiche
Assembler (ASM)
assembly
istruzioni macchina espresse in forma mnemonica
LOAD
STORE
ADD
JUMP
converte codice assembly in istruzioni macchina
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.23/27
High Level Languages (HLL)
astrazione del modello di calcolo
indipendenza dalla piattaforma hardware
maggiore leggibilità e comprensibilità
traduzione in linguaggio macchina
programma sorgente −→ programma eseguibile
Compilatore vs. interprete
compilatore
converte l’intero programma sorgente nel corrispondente programma eseguibile
interprete
converte ed esegue immediatamente una ad una le istruzioni del programma sorgente
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.25/27
Virtual Machine (VM)
combinazione di compilazione ed interpretazione
si compila in un codice intermedio che poi viene interpretato
Java Virtual Machine
emulazione di CPU
Software utente
software (programmi/librerie) sviluppato dall’utente
basato sulle funzionalità fornite dal sistema operativo e dal software di base
ciclo di sviluppo
→ scrittura/modifica
↑ ⇓
← compilazione
↑ ⇓
← esecuzione
Architettura dei calcolatori, Paolo Bison, A.A. 2004-05, 2004-10-29 – p.27/27