Il computer
Architettura
i precursori
1600 - Pascal realizza la prima macchina programmata
meccanicamente per eseguire addizioni e sottrazioni. E’ la Pascalina.
1671 – Leibniz realizza una macchina per eseguire le quattro
operazioni e la radice quadrata.
1804 – Joseph Jacquard realizza un telaio controllato da schede
perforate.
1833 Charlers Babbage progetta la “Analytical Engine”. I dati erano
immessi in memoria tramite schede perforate.
1945 - A Princeton von Neuman sviluppa
un calcolatore “a memoria programmata”.
La macchina immagazzina nella memoria
non solo i dati da elaborare ma anche
le istruzioni del programma.
L’ architettura di von Neuman e’ quella
usata ancora oggi.
Architettura di Von Neuman
Dati
Unità
Memoria
Aritmetica
B
U
S
Stato
Istruzioni
di
Unità
Controllo
Indirizzi
Istruzioni
Interfaccia
periferica
Unità funzionali
UNITA’ CENTRALE
il
processore (CPU)
la ALU
la memoria principale (RAM)
Le interfacce verso i dispositivi di input/output
Le varie componenti comunicano attraverso collegamenti,
detti bus, con porte bidirezionali per utilizzare lo stesso
filo per collegare, in istanti diversi, vari componenti
Nei PC:
un collegamento dedicato - bus di sistema - per la
comunicazione tra cpu e memoria principale
collegamenti per le periferiche - bus locali9
CPU
(Central Processing Unit)
Contiene
Dati
ingresso
c
l
o
c
k
UO
comandi
istruzioni
Dati uscita
condizioni
UC
comandi
Unità di controllo
e Unità operativa
La UC comanda la UO a
compiere operazioni
UC interpreta il codice
operativo e produce
comandi per UO
Componente essenziale
della
UO è la ALU
Nella UO ci sono diversi
registri
ALU
Registro accumulatore
Dalle
Registro dati
comandi
tabelle di verità delle
funzioni aritmetiche, alla
rete logica che le realizza
Circuiti che fanno le
operazioni aritmetiche, la
complementazione, lo shift,
il controllo con lo zero, …
Talvolta contiene la FPU
(Floating Point unit)
Schema
memoria
CPU
clock
Logica
di
controllo
RIC
RD
ALU
PC
A
RIM
dati
indirizzi
comandi
I registri
Registro = un insieme di n identici elementi di memoria
(flip-flop) tutti comandati dallo stesso clock
RIC = Registro Istruzione Corrente,
RD= Registro Dato,
RIM = Registro Indirizzamento Memoria,
PC = Program Counter,
A = Accumulatore
Alcuni registri hanno funzioni aggiuntive (ad esempio lo
scorrimento)
00000100 = 4
shiftando verso destra di un bit
00000010 = 2 (divisione per 2)
schiftando verso sinistra di un bit
00001000 = 8 (moltiplicazione per 2)
RAM
– memoria di lavoro
la
memoria principale è detta RAM (Random
Access Memory)
significa che il tempo di accesso ad una cella è lo stesso
indipendentemente dalla posizione della cella
La RAM è usata per la memoria di lavoro e per la memoria cache.
È volatile
Le
operazioni che un Processore può effettuare sulla
memoria sono
lettura
scrittura
di informazioni nelle celle
0
1
2
3
4
n
La memoria
Ciascuna
cella è caratterizzata
da un indirizzo
Gli indirizzi corrispondono
all’ordinamento delle celle
nella sequenza
Gli indirizzi sono interi positivi
Gli indirizzi non sono scritti da
nessuna parte, sono solo
determinati dall’ordinamento
consecutivo delle parole
Memoria
indirizzabile
Se RI è di n bits, 2n sono le parole di memoria direttamente
indirizzabili.
il numero di bit destinati all’indirizzo determina il numero di
celle indirizzabili = spazio di indirizzamento
Se n=10, 1024 byte sono indizzabili (1 KB).
Se n=20, 1048576 byte sono indizzabili (1 MB)
Se n= 32, 232 byte = 4GB
Nei computer attuali le dimensioni
vanno da 32MB a 4GB
(1GB
della memoria principale
= 230 byte ~ 1.000.000.000 byte)
Quindi sono
disponibili
indirizzabili anche più bytes di quelli fisicamente
Parola di memoria
Una parola di memoria di solito contiene due,
quattro o otto byte, su cui si può operare
(leggere
e
scrivere)
come
su
un
blocco
unico
Per eseguire le operazioni di lettura e scrittura
sulla memoria, si deve specificare l’indirizzo
della
parola
su
cui
si
vuole
operare
Gli indirizzi delle parole devono essere multipli
del numero di byte che le compongono
Altre caratteristiche
La parola è l’unità massima di memoria che è
possibile leggere e scrivere mediante un’unica
istruzione
La memoria è caratterizzata dal tempo di accesso
(per leggere o scrivere un’informazione)
pochi nanosecondi
secondo)
(= 10-9 sec, un miliardesimo di
Le memorie principali sono relativamente costose
La memoria principale perde ogni contenuto quando
si interrompe l’alimentazione elettrica - volatilità
È quindi necessario conservare le informazioni
(programmi e dati) su altri tipi di memoria (memoria
secondaria o di massa) che conservano il contenuto anche
senza alimentazione
Memoria
Cache
Memoria molto veloce intermedia tra RAM
e CPU
i dati di uso piu’ frequente sono mantenuti
nella memoria Cache per minimizzare i
trasferimenti tra RAM e CPU
interna
al processore (~256KB)
esterna al processore (~2MB)
Memoria ROM
Tutti i computer contengono un chip di
memoria elettronica permanente non
modificabile
(ROM=Read Only Memory)
EPROM erasable ROM, se riscrivibile
Contiene un programma (detto Basic Input
Output System) per l’avviamento del
computer e per altre operazioni fondamentali
Il bus di sistema
Il bus consente modularità del sistema (schede
diverse per CPU e memoria) ed estendibilità
(attaccare diverse periferiche)
Oggi il bus di sistema si compone di 3 livelli
gerarchici:
in
alto il bus che collega CPU e memoria (bus host),
poi quello per le periferiche veloci (bus locale),
poi quello per le periferiche lente (bus di espansione).
Diversi standard per i vari livelli
Collegamento
su
bus
aperto
DATA BUS
ADDRESS BUS
CONTROL BUS
•
I/O
memoria
ROM
CPU
Interfaccia
verso
periferiche
Nell’interfaccia ci sono
registri per dati, comandi
alla periferica, stato
Ogni registro ha un
indirizzo (come la
memoria) per essere
Registro
dati
Registro
stato
Registro
comandi
letto e
scritto
Dispositivo IO
Le periferiche sono gestite
a “controllo di
programma”, a “interrupt”,
a “DMA”
Interfacce di I/O
Interfacce
classiche
Porta
seriale:
modem, mouse, ecc...
Porta
parallela:
stampante
PS/2
mouse, tastiera
Interfacce
attuali
USB
(Universal Serial
Bus)
Firewire
USB e firewire
USB (Universal Serial
Bus); trasmissione
seriale ad alta velocità
e permette di
connettere in cascata
fino
a 127 periferiche.
Per dispositivi
portatili micro-USB e
mini-USB
Interfaccia seriale per PC
per trasferimento in tempo
reale
Supporta hot-plugging
(cioè si può connettere e
disconnettere il dispositivo
a PC acceso)
Audio/Video, Lettori MP3
(iPod), Hard disk esterni
Memoria di massa
La
memoria
di
massa
è:
Hard
disk
Dischi rimovibili
Penna ….
E’ permanente
E’ di
grandi capacita’
E’ più lenta della RAM
Scheda madre di un PC
Tecnologia e integrazione
Anni
Tecnologia
Densita`=Num.
comp./unita`vol.
1959-60 Valvole
3
1960-70 Transistors
3
1970-80 LSI–LargeScale
53
Integration
1980-90 VLSI–VeryLargeScale
Integration
83
1comp./10cm
1-10comp./cm
10comp./cm
10comp./cm
Due approcci per la UC
UC e' una rete sequenziale sincrona avente come
uscite i segnali di controllo e come ingressi i segnali
utilizzati come condizioni nella sequenza di controllo.
cablata = la sequenza di controllo e' rappresentata dalla
struttura del circuito.
microprogrammata = la sequenza di controllo e'
memorizzata in una memoria (memoria di controllo) ed i
segnali di controllo
sono prodotti eseguendo
il
microprogramma.
E’ difficile definire il confine fra hardware (le
componenti fisiche) e software (programmi che
realizzano le varie funzionalita’).
Velocità e prestazioni
MIPS (Milioni istruzioni per secondo)=
#istruzioni/(tempo_esecuzione x 106)
MIPS dipende dal repertorio istruzioni CPU, da
programma…
MFLOPS )Milioni di istruzioni floating point per
secondo), che usa invece #istruzioni floating
point
Velocita` di elaborazione dei PC - qualche
centinaio di MFLOPS
LA
PROGETTAZIONE
DI
COMPUTER RISC
RISC (Reduced Instruction Set Computer) in
opposizione a CISC (Complete Instruction Set
Computer).
E'
caratterizzata da una architettura semplificata
- poche istruzioni (meno di 100)
- pochi modi di indirizzamento (max 4)
-accesso alla memoria solo da parte di poche
istruzioni; esistono invece molti registri generali
nella CPU in modo che la maggior parte delle
istruzioni opera tra registri.
La progettazione RISC e' sorta per facilitare
l'integrazione a larga scala per la realizzazione di
CPU su un unico chip