Sei sulla pagina 1di 68

Che cos’è

Che

cosè l’informatica

linformatica 11

Informatica :: fusione delle parole informazione

Informatica

informazione e automatica

automatica

L’informatica

Linformatica

èè

lala

scienza

scienza

della

della

dell’elaborazione dell’informazione

dell’elaborazione

dell’informazione

rappresentazione

rappresentazione

ee

11

Che cos’è

Che

cosè l’informatica

linformatica 22

L’informatica non è la scienza dei calcolatori elettronici: il

calcolatore è lo strumento che la rende “operativa”

L’elaboratore

elaboratore

(computer, calcolatore) è un’apparecchiatura

ed

automatica

automatica

capace di effettuare

digitale digitale, elettronica elettronica

trasformazioni sui dati:

22

Analisi

Analisi ee programmazione

programmazione 11

Per analisi analisi ee programmazione programmazione si intende l’insieme delle

attività preliminari atte a risolvere problemi utilizzando

un elaboratore, dalla formulazione del problema fino

alla predisposizione dell’elaboratore

programmazione definire un programma

dellanalisi definire un algoritmo

della programmazione

  • Scopo dell’analisi

  • Scopo della

programma

algoritmo

Scopo

Scopo

33

Analisi

Analisi ee programmazione

programmazione 22

Algoritmo:

Algoritmo: elenco finito di istruzioni, che specificano le

operazioni eseguendo le quali si risolve una classe di

problemi

  • Un particolare problema della classe viene risolto tramite l’apposito algoritmo sui dati che lo caratterizzano

  • UnUn

algoritmo

algoritmo non

non

dall’elaboratore

dall’elaboratore

può

può essere

essere eseguito

eseguito direttamente

direttamente

Programma:

Programma:

direttamente

ricetta

che

traduce

l’algoritmo

ed

comprensibile,

pertanto

eseguibile,

parte di un elaboratore

è

da

Linguaggio Linguaggio di di programmazione: programmazione: linguaggio rigoroso che

permette la formalizzazione di un algoritmo in un

programma

44

LeLe fasi fasi del del procedimento procedimento di di analisi analisi ee programmazione programmazione Problema Problema
LeLe fasi
fasi del
del procedimento
procedimento di di
analisi
analisi ee programmazione
programmazione
Problema
Problema
ANALISI
ANALISI
Algoritmo
Algoritmo
PROGRAMMAZIONE
PROGRAMMAZIONE
Programma
Programma
ELABORAZIONE
ELABORAZIONE
Dati
Dati
Risultati
Risultati
55
Gli Gli algoritmi algoritmi 66
Gli
Gli algoritmi
algoritmi
66
Definizione Definizione di di algoritmo algoritmo • Algoritmo Algoritmo deriva dal nome del matematico uzbeco Mohammed
Definizione
Definizione di di algoritmo
algoritmo
Algoritmo
Algoritmo
deriva dal nome del matematico uzbeco Mohammed
Mohammed
ibn
ibn Musa
Musa Al Al Khuwarizmi
Khuwarizmi,
vissuto nel IX secolo d.C. (dalla cui
opera è nata l’algebra moderna), e significa procedimento
procedimento di di
calcolo calcolo
Una
Una procedura
procedura per
per risolvere
risolvere matematicamente
matematicamente unun problema
problema
Una procedura per risolvere matematicamente un
InIn unun numero
numero finito
finito di di passi,
passi, che
che spesso
spesso comprende
comprende ripetizioni
ripetizioni
problema in un numero finito di passi, che spesso
Di
Di una
una operazione.
operazione.
InIn generale
generale unun metodo
metodo passo-passo
passo-passo per
per eseguire
eseguire unun dato
dato
compito
compito
77 77
Anno
Anno accademico
accademico 2010-2011
2010-2011

Cominciamo

Cominciamo con

con l'analisi

l'analisi della

della struttura

struttura di di unun

calcolatore ...

calcolatore ...

Anno accademico

Anno

accademico 2010-2011

2010-2011

88

Cenni Cenni storici storici 11 Wilhelm Wilhelm Schickard Schickard (1592-1635) (1592-1635) • La presenza “invasiva” dell’informatica
Cenni
Cenni storici
storici
11
Wilhelm
Wilhelm Schickard
Schickard (1592-1635)
(1592-1635)
La presenza “invasiva” dell’informatica nella vita di tutti i giorni è
un fenomeno relativamente recente; non recente è invece la
necessità di avere a disposizione strumenti e metodi per contare
rapidamente, elaborare dati, “calcolare”
Le prime testimonianze di strumenti per contare risalgono a 30.000
anni fa
I primi esempi di algoritmi
procedure di calcolo “automatico”
sono stati scoperti in Mesopotamia su tavolette babilonesi risalenti al
1800 1600 a.C.
Macchina
Macchina moltiplicatrice
moltiplicatrice (1624)
(1624)
• Il sogno di costruire macchine capaci di effettuare
calcoli automatici affonda le radici nel pensiero
filosofico del ‘600:
Wilhelm Schickard introdusse la prima macchina
moltiplicatrice dotata di accumulatori cilindrici
99
Anno
Anno accademico
accademico 2010-2011
2010-2011
Cenni Cenni storici storici 22 Blaise Blaise Pascal Pascal (1623-1662) (1623-1662) Gottfried Gottfried Leibnitz Leibnitz (1646-1716)
Cenni
Cenni storici
storici
22
Blaise
Blaise Pascal
Pascal (1623-1662)
(1623-1662)
Gottfried
Gottfried Leibnitz
Leibnitz (1646-1716)
(1646-1716)
Pascal e Leibnitz non solo affrontarono il problema, già studiato
da Cartesio, di automatizzare il ragionamento logico matematico,
ma si cimentarono anche nella realizzazione di semplici macchine
per calcolare (capaci di effettuare somme e sottrazioni)
Macchina
Macchina addizionatrice
addizionatrice lala Pascalina
Pascalina (B.
(B. Pascal)
Pascal)
Macchina
Macchina computazionale
computazionale (G.
(G. Leibnitz)
Leibnitz)
1010
Anno
Anno accademico
accademico 2010-2011
2010-2011
Cenni Cenni storici storici 33 Charles Charles Babbage Babbage (1791-1871) (1791-1871) • La macchina macchina alle
Cenni
Cenni storici
storici
33
Charles
Charles Babbage
Babbage (1791-1871)
(1791-1871)
La macchina
macchina alle
alle differenze
differenze, concepita da
Babbage nel 1833, rappresenta il primo
esempio di macchina programmabile di
utilità generale
In seguito, lo stesso Babbage progetta la
macchina
macchina analitica
analitica (mai realizzata, troppo
complessa e critica la sua costruzione per le
tecnologie meccaniche dell’epoca)
La
prima
programmatrice
nella
storia
dell’informatica è Ada
Augusta
Byron,
contessa di Lovelace
Macchina
Macchina
alle
alle
differenze:
differenze:
modello
modello
ricostruito
ricostruito presso
presso ilil Museo
Museo della
della Scienza
Scienza
di
di Londra
Londra seguendo
seguendo ilil progetto
progetto del
del 1849
1849
1111
Anno
Anno accademico
accademico 2010-2011
2010-2011
Cenni Cenni storici storici 44 Herman Herman Hollerith Hollerith (1860-1929) (1860-1929) • Fu Herman Hollerith, nel
Cenni
Cenni storici
storici
44
Herman
Herman Hollerith
Hollerith (1860-1929)
(1860-1929)
Fu Herman Hollerith, nel 1890, a sviluppare
la
macchina
macchina
aa
schede
schede
perforate
perforate,
per
compiere le
statistiche
del
censimento
decennale degli Stati Uniti
I dati venivano immessi
su
schede di
cartone opportunamente perforate, le stesse
schede che sono state usate fino a due
decenni or sono
Le schede venivano successivamente
“contate” da una sorta di pantografo che
permetteva diversi tipi di elaborazioni (totali,
medie, statistiche, etc.)
Census
Census Tabulator
Tabulator (1890)
(1890)
Si impiegarono due
anni
e
mezzo
ad
analizzare i
dati (contro
i
sette
anni
del
censimento
del
1880),
nonostante
l’incremento di popolazione
da
50
a
63
milioni
1212
Anno
Anno accademico
accademico 2010-2011
2010-2011
Cenni Cenni storici storici 55 Konrad Konrad Zuse Zuse (1910-1995) (1910-1995) • Successivamente la macchina a
Cenni
Cenni storici
storici
55
Konrad
Konrad Zuse
Zuse (1910-1995)
(1910-1995)
• Successivamente la macchina a schede
perforate venne utilizzata con successo
per i censimenti in Austria, Norvegia e
Russia, tanto che Hollerith decise di
fondare
una
società:
la
Computing
Computing
Tabulating
Tabulating Recording
Recording Company
Company che, nel
1923, divenne l’International International Business Business
Machine Machine, o IBMIBM
• Nel 1932, il tedesco Konrad Zuse realizza
una macchina elettromeccanica in grado
di eseguire calcoli con controllo
IlIl calcolatore
calcolatore Z1Z1 (1939)
(1939)
programmato, ed introduce il sistema di
numerazione binario (la cui algebra era
stata definita da Leibnitz e da Boole)
1313
Anno
Anno accademico
accademico 2010-2011
2010-2011
Cenni Cenni storici storici 66 Alan Alan Turing Turing (1912-1954) (1912-1954) • Durante la seconda guerra
Cenni
Cenni storici
storici
66
Alan
Alan Turing
Turing (1912-1954)
(1912-1954)
• Durante
la
seconda guerra mondiale, fioriscono
i
progetti di
elaboratori da utilizzarsi per scopi bellici
Enigma Enigma, realizzata dai tedeschi (A.
Scherbius) per codificare le comunicazioni
militari
Red
Red Purple
Purple, di costruzione giapponese
Computer
Computer Colossus
Colossus, costruito dagli inglesi
per la decifrazione dei messaggi tedeschi,
alla cui progettazione e realizzazione
LaLa macchina
macchina Enigma
Enigma
collaborò Alan Alan Turing Turing, permise la vittoria
anglo americana sull’Atlantico
1414
Anno
Anno accademico
accademico 2010-2011
2010-2011

Cenni

Cenni storici

storici

77

• Con l’invenzione del tubo tubo aa vuoto vuoto (1904), del transistor transistor (1947) e, infine,
Con l’invenzione del tubo
tubo aa vuoto
vuoto (1904), del transistor
transistor (1947) e,
infine, dei
circuiti
circuiti integrati
integrati (1969), l’evoluzione dei computer
divenne inarrestabile
Finora la potenza di calcolo degli elaboratori si è decuplicata ogni
5
6 anni (…ma non può durare, almeno con le tecnologie in uso)
1515
Anno
Anno accademico
accademico 2010-2011
2010-2011
Cenni Cenni storici storici 88 John John Von Von Neumann Neumann (1903-1957) (1903-1957) • La costruzione
Cenni
Cenni storici
storici
88
John
John Von
Von Neumann
Neumann (1903-1957)
(1903-1957)
• La costruzione dei primi calcolatori risale all’inizio degli anni ‘40,
grazie alla tecnologia elettronica; i primi esemplari venivano
programmati mediante connessioni elettriche e commutatori
(ENIAC ENIAC, Mark Mark II)
• Il nome di Von Neumann è legato invece ai primi calcolatori a
programma memorizzato realizzati alla fine degli anni ‘40 (EDSAC EDSAC,
Whirlwind
Whirlwind, IAS
IAS, UNIVAC
UNIVAC)
Per la prima volta, vige il principio di unitarietà
unitarietà di di rappresentazione
rappresentazione di di
dati
dati ee istruzioni
istruzioni, che vengono codificati, all’interno dell’elaboratore, in
maniera indistinguibile
La
diffusione
dei
calcolatori a
livello
mondiale è avvenuta nei
decenni ‘60 e ‘70
1616
Anno
Anno accademico
accademico 2010-2011
2010-2011
Cenni Cenni storici storici 99 ENIAC ENIAC (1946) (1946) Mark Mark II (1948) (1948) EDSAC EDSAC
Cenni
Cenni storici
storici
99
ENIAC
ENIAC (1946)
(1946)
Mark
Mark II (1948)
(1948)
EDSAC
EDSAC (1949)
(1949)
Whirlwind
Whirlwind (1949)
(1949)
IAS
IAS (1952)
(1952)
UNIVAC
UNIVAC (1952)
(1952)
1717
Anno
Anno accademico
accademico 2010-2011
2010-2011

Cenni

Cenni storici

storici

1010

Tuttavia, l’esplosione dell’informatica come fenomeno di massa è

datata 1981, anno in cui l’IBM introdusse un tipo particolare di

elaboratore: il Personal

Personal Computer

Computer (PC)

La particolarità dei PC consisteva nell’essere “assemblati” con

componenti facilmente reperibili sul mercato (e quindi a basso

costo)

Possibilità per qualsiasi casa produttrice di costruire “cloni”

Attualmente i PC, o meglio il loro componente fondamentale il

microprocessore microprocessore è utilizzato in tutti i settori applicativi (non

solo per elaborare dati):

Telefoni cellulari, ricevitori satellitari digitali, GPS

Bancomat e carte di credito

Lavatrici e forni a micro onde

Computer di bordo e ABS

...

Anno accademico

Anno

accademico 2010-2011

2010-2011

1818

Frasi celebri

Frasi

celebri eded altro…

altro

“Penso che ci sia mercato nel mondo per non più di cinque computer.” (Thomas Watson,

Presidente di IBM, 1943)

“Ho girato in lungo e in largo questo paese e ho parlato con le migliori menti e posso

assicurarvi che questa moda dell’elaborazione automatica è un capriccio che non vedrà la

fine dell’anno.” (Editor di libri scientifici di Prentice Hall, 1947)

“Una unità di calcolo sull’ENIAC è dotata di 18.000 tubi elettronici a vuoto e pesa 30

tonnellate, ma è possibile che in futuro i computer abbiano soltanto 1000 tubi e pesino

soltanto una tonnellata e mezzo.” (Popular Mechanics, 1949)

“Abbiamo un computer qui a Cambridge, ce n’è uno a Manchester e uno al laboratorio

nazionale di fisica. Immagino che sarebbe giusto averne uno anche in Scozia, ma non di

più.” (Douglas Hartree, fisico inglese, 1951)

“Ma

...

a che serve?” (Un ingegnere della Advanced Computing Systems, Divisione dell’IBM,

commentando il microchip, 1965).

Nel 1976, il New New York York Times Times pubblicò un libro dal titolo LaLa scienza scienza nel nel ventesimo ventesimo secolo secolo,

nel quale il calcolatore veniva menzionato una sola volta e indirettamente, in relazione al

calcolo delle orbite dei pianeti

“Non c’è ragione perché qualcuno possa volere un computer a casa sua.” (Ken Olson,

fondatore di Digital, 1977)

“640 Kbytes should be enough for anybody.” (Bill Gates, 1981)

Anno accademico

Anno

accademico 2010-2011

2010-2011

1919 1919

L’architettura di di Von

L’architettura

Von Neumann

Neumann

La capacità dell’elaboratore di eseguire successioni di

operazioni in modo automatico è determinata dalla presenza

di un dispositivo di memoria memoria

  • Nella memoria sono registrati i dati

dati e ...

  • le

...

operazioni da eseguire su di essi (nell’ordine secondo cui

programma

programma,

la “ricetta” usata

devono essere eseguite): il

dall’elaboratore per svolgere il proprio compito

Il programma viene interpretato dall’unità

unità di di controllo

controllo

Modello di di Von

Modello

Von Neumann

Neumann

Anno accademico

Anno

accademico 2010-2011

2010-2011

  • 2020 2020

LaLa macchina

macchina universale

universale

Programma: Programma:

sequenza di operazioni

atte a predisporre

l’elaboratore alla soluzione di una determinata classe di

problemi

  • Il programma è la descrizione di un algoritmo comprensibile all’elaboratore

algoritmo in una forma

L’elaboratore è una macchina macchina universale universale: cambiando il

programma residente in memoria, è in grado di risolvere

problemi di natura diversa (una classe di problemi per ogni

programma)

Anno accademico

Anno

accademico 2010-2011

2010-2011

  • 2121 2121

LaLa struttura struttura del del calcolatore calcolatore • Si possono considerare diversi livelli di astrazione: 
LaLa struttura
struttura del
del calcolatore
calcolatore
Si possono considerare diversi livelli di astrazione:
Circuiti elettronici (hardware)
Architettura e linguaggio macchina
Sistema operativo (software di sistema)
Linguaggi di programmazione
Silicon
Silicon Graphics
Graphics
Programmi applicativi
Il calcolatore è basato su circuiti
elettronici digitali, ovvero modellabili con
l’algebra di Boole; i circuiti elettronici
implementano le funzioni logiche AND,
OR, NOT, permettono di memorizzare il
valore di variabili booleane, di effettuare
calcoli, etc.
2222
2222
Anno
Anno accademico
accademico 2010-2011
2010-2011
LaLa macchina macchina di di Von Von Neumann Neumann 11 • Tutti i calcolatori attuali si
LaLa macchina
macchina di di Von
Von Neumann
Neumann
11
Tutti i calcolatori attuali si rifanno all’architettura di Von Neumann,
costituita dalle quattro componenti:
CPU
CPU (Central
(Central Processing
Processing Unit)
Unit)
CPU
CPU
Memoria
Memoria
Memoria
Memoria centrale
centrale
centrale
centrale
Bus
Bus di
di sistema
sistema
Periferiche
Periferiche
BUS
BUS di
di sistema
sistema
memoria
memoria di di
tastiera
tastiera
mouse
mouse
massa massa monitor monitor
2323
2323
Periferiche
Periferiche
Anno
Anno accademico
accademico 2010-2011
2010-2011
L'architettura di Von Neumann LaLa macchina macchina di di Von Von Neumann Neumann Memoria Memoria CPU
L'architettura di Von Neumann
LaLa macchina
macchina di di Von
Von Neumann
Neumann
Memoria
Memoria
CPU
I/O
centrale
secondaria
BUS
2424
Anno
Anno accademico
accademico 2010-2011
2010-2011
Architettura Architettura aa BUS BUS • L’architettura più consolidata per il calcolatore prevede quindi unità funzionali
Architettura
Architettura aa BUS
BUS
L’architettura più consolidata per il calcolatore prevede quindi
unità funzionali fra loro collegate attraverso un unico canale di
comunicazione, il bus
bus
Il bus è fisicamente realizzato mediante un insieme di connettori
elettrici
Dispositivi di Input/Output
Memoria
CPU
I/O
I/O
I/O
principale
BUS
Indirizzi
Dati
Controllo
2525
2525
Anno
Anno accademico
accademico 2010-2011
2010-2011
L'architettura di Von Neumann Memoria CPU RAM I/O secondaria BUS 2626 Anno Anno accademico accademico 2010-2011
L'architettura di Von Neumann
Memoria
CPU
RAM
I/O
secondaria
BUS
2626
Anno
Anno accademico
accademico 2010-2011
2010-2011
LaLa CPU CPU 11 • La Central Central Processing Processing Unit Unit è l’unità centrale di
LaLa CPU
CPU
11
• La Central Central Processing Processing Unit Unit è l’unità
centrale di elaborazione: esegue le
istruzioni dei programmi e ne
regola il flusso, esegue i calcoli
• La CPU è un dispositivo sincrono sincrono,
cioè può cambiare stato solo
quando riceve un impulso di clock clock,
Intel
Intel Pentium
Pentium
l’orologio
orologio del
del
sistema
sistema che
fornisce al
computer un
battito regolare
La CPU lavora a N GHz: segue un ritmo di N miliardi di
impulsi al secondo (es., una CPU con un clock a 3 GHz è
temporizzata da tre miliardi di impulsi al secondo)
2727
2727
Anno
Anno accademico
accademico 2010-2011
2010-2011

LaLa CPU

CPU

22

La

frequenza

di

clock

determina

la

velocità

di

elaborazione del computer: più alta è la frequenza di

clock, maggiore è la velocità di elaborazione

 

La velocità e la potenza di un computer dipendono

però anche dalla larghezza del bus, ovvero dal numero

di bit (ampiezza del singolo dato) che il processore è

in grado di ricevere e di elaborare simultaneamente

  • Attualmente, i processori sono in grado di elaborare dati

rappresentati con 64 bit

Anno accademico

Anno

accademico 2010-2011

2010-2011

  • 2828 2828

LaLa CPU CPU 33 • La CPU è costituita da tre elementi fondamentali:  Unità Unità
LaLa CPU
CPU
33
La CPU è costituita da tre elementi fondamentali:
 Unità
Unità Aritmetico
Aritmetico Logica
Logica (ALU)
(ALU)
}
EU
 Registri
Registri
Execution Unit
 Unità
Unità di
di Controllo
Controllo (CU)
(CU)
BIU
registri
registri
Bus Interface
PCPC
Contatore di programma
Unit
(Program
Program Counter
Counter) <P>
ALU
ALU
CUCU
Registro Istruzione
IRIR
(Instruction
BUS
Instruction Register
Register) <IP>
BUS
2929
2929
Anno
Anno accademico
accademico 2010-2011
2010-2011

LaLa CPU

CPU

44

A livello “macroscopico”, ad ogni impulso di clock, la CPU:

  • “legge” il suo stato interno (determinato dal contenuto dei

registri di stato) e la sequenza di ingresso (determinata dal

contenuto dei registri istruzione e dati)

  • produce un nuovo stato “dipendente” dallo stato in cui si

trovava originariamente

In pratica, la CPU realizza una complessa funzione logica,

con decine di ingressi e di uscite

la

corrispondente tabella di verità avrebbe un numero

enorme di righe (miliardi di miliardi)

Anno accademico

Anno

accademico 2010-2011

2010-2011

  • 3030 3030

LaLa CPU

CPU

55

Lo

stato

della

CPU

è

costituito

da

informazioni

(memorizzate negli opportuni registri) su:

  • dati da elaborare (contenuti nei registri

registri dati

dati)

  • istruzione da eseguire (nel registro

registro istruzioni

istruzioni)

  • indirizzo in memoria della prossima istruzione da eseguire (nel program

program counter

counter)

  • eventuali

anomalie

o

eventi

l’elaborazione (nei registri

registri flag

flag)

verificatisi durante

Anno accademico

Anno

accademico 2010-2011

2010-2011

  • 3131 3131

LaLa CPU

CPU

66

Set di istruzioni di base:

  • somma (da cui sottrazione)

  • scorrimento (shift)

  • operazioni logiche

} (da cui moltiplicazione e divisione)

  • operazioni di accesso alla memoria

    • trasferimento di un dato da una locazione di memoria ad un’altra

    • trasferimento da memoria a un registro della CPU

    • trasferimento da un registro della CPU a memoria

  • operazioni di confronto

Le operazioni (eccetto quelle di accesso alla memoria) sono

eseguite all’interno della ALU e “coordinate” dall’unità di controllo

Anno accademico

Anno

accademico 2010-2011

2010-2011

  • 3232 3232

L’Unità L’Unità Aritmetico Aritmetico Logica Logica ALU operation • L’ALU ALU (Arithmetic Arithmetic Logic Logic Unit
L’Unità
L’Unità Aritmetico
Aritmetico Logica
Logica
ALU operation
L’ALU
ALU (Arithmetic
Arithmetic Logic
Logic Unit
Unit) è un circuito
in grado di eseguire operazioni aritmetiche
a
Zero
e logiche su 2 operandi, rappresentati su n
ALU
Result
bit (es. 32/64 bit); oltre al risultato
Overflow
dell’operazione può produrre informazioni
b
ulteriori su linee specifiche (il risultato è
CarryOut
zero, si è verificato un overflow, etc.)
Il tipo di operazione selezionata, in un dato istante, dipende dallo
stato di alcune linee di controllo provenienti dalla CU
Le operazioni logiche (es. AND) vengono eseguite bit a bit fra i due
operandi
• Esiste una unità specializzata per le operazioni in virgola mobile (FPU FPU)
3333
3333
Anno
Anno accademico
accademico 2010-2011
2010-2011
II registri registri Name Use 31 0 Registri Registri del del Pentium Pentium EAX GPR 0
II registri
registri
Name
Use
31
0
Registri
Registri del
del Pentium
Pentium
EAX
GPR 0
CS
ECX
GPR 1
SS
EDX
GPR 2
DS
EBX
GPR 3
ES
Code segment pointer
Stack segment pointer (top of stack)
Data segment pointer 0
Data segment pointer 1
ESP
GPR 4
EIP
FS
EBP
GPR 5
Data segment pointer 2
Data segment pointer 3
EFLAGS
Instruction pointer (PC)
Condition codes
GS
ESI
GPR 6
EDI
GPR 7
I registri sono dispositivi di memorizzazione che consentono un
accesso molto veloce ai dati che contengono; hanno dimensioni
prefissate (es. 32/64 bit)
Alcuni
registri
hanno
funzioni
specifiche
(es.
contatore di
programma)
Nella maggior parte delle architetture, le operazioni della ALU si
possono effettuare solo fra dati presenti nei registri ed anche il
risultato viene momentaneamente memorizzato in un registro
3434
3434
Anno
Anno accademico
accademico 2010-2011
2010-2011
L’unità L’unità di di controllo controllo BUS Segnali di controllo memoria P CU (ALU, Registri, etc.)
L’unità
L’unità di di controllo
controllo
BUS
Segnali di controllo
memoria
P
CU
(ALU, Registri, etc.)
C
Istruzione 1
02AD77F2
Istruzione 2
Istruzione 3
IR
02AD77F2
Esegue le istruzioni prelevandole dalla memoria nella fase di access
access
La prossima istruzione da eseguire è individuata dall’indirizzo presente nel
registro
registro contatore
contatore di
di programma
programma (PC)
L’istruzione in esecuzione è memorizzata nel registro registro istruzione istruzione (IR)
L’istruzione è un codice binario che deve essere decodificato
decodificato dalla CU;
specifica il tipo di operazione, gli eventuali operandi, etc.
Normalmente le istruzioni sono eseguite in sequenza: dopo l'access, il PCPC
viene
viene incrementato
incrementato, per fare riferimento all’istruzione successiva
3535
3535
Anno
Anno accademico
accademico 2010-2011
2010-2011

Come

Come si si eseguono

eseguono ii programmi

programmi 11

Il processore esegue le istruzioni di un programma una

una

alla volta

alla

volta in sequenza: estrae le istruzioni dalla memoria,

le interpreta e le esegue una dopo l’altra

  • Un programma indica la sequenza di istruzioni da eseguire per ottenere la soluzione ad un data classe di problemi

Il

processore

esegue

ogni

istruzione

mediante

una

sequenza ben definita di operazioni detta ciclo ciclo di di

istruzione istruzione o ciclo ciclo macchina macchina

  • Estrazione di una istruzione: fase

fase di di access

access

Decodifica di una istruzione: fase

fase di di decode

decode

  • Esecuzione dell’istruzione: fase

fase di di execute

execute

Anno accademico

Anno

accademico 2010-2011

2010-2011

3636 3636

SCHEMA DELLA CPU CI CI CI 1 2 k .... R0 PC .... IR Rn ALU
SCHEMA DELLA CPU
CI
CI
CI
1
2
k
....
R0
PC
....
IR
Rn
ALU
ALU
ALU
RAM
RC
c
BUS
3737
Anno accademico 2010-2011
Anno accademico 2010-2011

Ciclo

Ciclo ADE

ADE della

della CPU

CPU (10-

(10- 99 sec)

sec)

Reperimento dell’istruzione

Reperimento

dell’istruzione ((access

access):):

lettura della cella di RAM il cui indirizzo e’

contenuto nel contatore di programma

caricamento del registro istruzione con

l’istruzione

Incremento del contatore programma

Decodifica

Decodifica dell’istruzione

dell’istruzione (decode):

(decode):

Trova gli operandi a seconda del codice operativo

Modifica contatore programma se istruzione di salto

Esecuzione

Esecuzione dell’istruzione

dell’istruzione (execute):

(execute):

Attiva i circuiti necessari

Anno accademico

Anno

accademico 2010-2011

2010-2011

3838

ACCESS In IR viene messa l’istruzione da eseguire (contenuta nella CI CI CI RAM all’indirizzo specificato
ACCESS
In IR viene messa l’istruzione
da eseguire (contenuta nella
CI
CI
CI
RAM all’indirizzo specificato
1
2
k
....
all’inteno del registro PC)
In PC viene messo l’indirizzo
R0
della RAM dove è contenuta
PC
la
....
prossima istruzione da
eseguire.
IR
Rn
ALU
ALU
ALU
RAM
RC
c
BUS
3939
Anno accademico 2010-2011
Anno accademico 2010-2011
DECODE La ALU riconosce l’istruzione come una CI CI CI delle istruzioni 1 2 k ....
DECODE
La ALU riconosce
l’istruzione come una
CI
CI
CI
delle istruzioni
1
2
k
....
macchina I1, ...
,
Ik
possibili
R0
PC
....
IR
Rn
ALU
ALU
ALU
RAM
RC
c
BUS
4040
Anno accademico 2010-2011
Anno accademico 2010-2011
EXECUTE La ALU attiva la corrispondente CI CI CI 1 2 k componente (ad .... esempio
EXECUTE
La ALU attiva la
corrispondente
CI
CI
CI
1
2
k
componente (ad
....
esempio
CI2 che esegue
R0
l’istruzione richiesta)
PC
....
IR
Rn
ALU
ALU
ALU
RAM
RC
c
BUS
4141
Anno accademico 2010-2011
Anno accademico 2010-2011
Esempio Esempio di di esecuzione esecuzione di di istruzioni istruzioni 1. 1. Carica Carica nel nel
Esempio
Esempio di
di esecuzione
esecuzione di
di istruzioni
istruzioni
1.
1.
Carica
Carica nel
nel registro
registro R3R3 ilil contenuto
contenuto della
della cella
cella di di
memoria
memoria 1010
2.
2.
Carica
Carica nel
nel registro
registro R4R4 ilil contenuto
contenuto della
della cella
cella di di
memoria
memoria 1111
3.
3.
Somma
Somma di
di interi
interi sul
sul contenuto
contenuto dei
dei registri
registri R3R3 ee R4,
R4,
risultato
risultato nel
nel registro
registro R0R0
4.
4.
Trasferisci
Trasferisci ilil contenuto
contenuto del
del registro
registro R0R0 nella
nella cella
cella 1212
5.
5.
STOP STOP
4242
Anno
Anno accademico
accademico 2010-2011
2010-2011
L'architettura di Von Neumann Memoria CPU RAM I/O secondaria BUS 4343 Anno Anno accademico accademico 2010-2011
L'architettura di Von Neumann
Memoria
CPU
RAM
I/O
secondaria
BUS
4343
Anno
Anno accademico
accademico 2010-2011
2010-2011

LeLe memorie

memorie

11

Le memorie sono dispositivi per “lo stoccaggio” delle

informazioni

Ogni memoria è costituita da celle, a cui si accede

tramite un indirizzo

In ogni elaboratore vi sono tre tipi di memorie:

  • Registri: Registri: contengono informazioni necessarie alla elaborazione della singola istruzione

  • Memoria Memoria centrale: centrale: contiene dati e istruzioni attualmente elaborati dal processore

  • Memorie Memorie di di massa: massa: contengono dati e programmi che non sono oggetto di elaborazione immediata

Anno accademico

Anno

accademico 2010-2011

2010-2011

  • 4444 4444

LeLe memorie

memorie

22

I parametri fondamentali che definiscono una memoria sono:

  • Dimensione Dimensione della

della parola

parola (locazione di memoria)

  • Capacità (numero di locazioni disponibili), espressa in KB, MB, GB,

accesso (diretto o sequenziale)

Permanenza oo volatilità

  • Permanenza

  • Modalità di

volatilità dei

di accesso

Capacità

Modalità

dei dati

dati

etc.

  • Tempo Tempo di di accesso accesso, necessario per accedere ad una locazione di

memoria per un’operazione di lettura o scrittura, espresso in

nanosec, millisec, sec

In base agli ultimi due parametri, le memorie si collocano a

diversi livelli di una gerarchia, che va da memorie più capaci ma

più lente (memorie di

(registri)

massa) a

memorie piccole e veloci

4545 4545

Anno accademico

Anno

accademico 2010-2011

2010-2011

Gerarchia Gerarchia di di memorie memorie Gbyte Tbyte Anno Anno accademico accademico 2010-2011 2010-2011
Gerarchia
Gerarchia di di memorie
memorie
Gbyte
Tbyte
Anno
Anno accademico
accademico 2010-2011
2010-2011

LaLa memoria

memoria centrale

centrale

11

La memoria centrale o memoria principale, detta anche

RAM RAM (Random

Random Access

Access Memory

Memory,

ovvero memoria ad

accesso casuale, perché qualsiasi cella può essere

letta/scritta in un tempo, mediamente, costante), è la

memoria in linea con il processore, che contiene i dati

e i programmi che sono attualmente utilizzati/in

esecuzione

Un programma, quando non è oggetto di elaborazione,

è memorizzato su memoria di massa (dischi)

Quando deve essere eseguito, viene caricato tutto o in

parte, in memoria centrale (memoria virtuale)

Anno accademico

Anno

accademico 2010-2011

2010-2011

4747

LaLa memoria

memoria centrale

centrale

22

Le caratteristiche fondamentali della memoria centrale

sono:

  • velocità elevata

  • accesso diretto

alle informazioni

informazioni

diretto alle

accesso

velocità

elevata

computer viene spento, i

  • volatilità:

quando il

volatilità

dati

e

i

programmi presenti in memoria vengono cancellati

La tecnologia utilizzata per la

memoria centrale è

quella dei dispositivi a semiconduttori, che la fanno

apparire come una matrice di bit

  • Ogni bit è presente come stato (alto o basso) di tensione

e viene rappresentato con le cifre binarie 0/1

Anno accademico

Anno

accademico 2010-2011

2010-2011

4848 4848

LaLa memoria

memoria centrale

centrale

33

La memoria principale è un insieme di locazioni o celle

L’unità di memorizzazione, la dimensione della singola

cella, è il byte (sequenza di 8 bit)

Ciascun

byte

memoria

nella

 

è

individuato

da

un

indirizzo che lo distingue da tutti gli altri, costituito da

indirizzo

un numero

variabile da

0

a

2 N 1,

dove

N

è

la

dimensione in bit dell’indirizzo (es. numero di bit/fili sul

bus indirizzi)

Anno accademico

Anno

accademico 2010-2011

2010-2011

4949 4949

Unità Unità di di misura misura della della RAM RAM (e(e della della memoria memoria inin
Unità
Unità di
di misura
misura della
della RAM
RAM
(e(e della
della memoria
memoria inin generale)
generale)
1
KiloByte (KB)
= 2 10 byte = 1.024
byte; circa 1.000 byte
1
MegaByte (MB) = 2 20 byte = 1.024
KB; circa 1.000.000 byte
1
GigaByte (GB)
= 2 30 byte = 1.024
MB; circa 1.000.000.000 byte
1
TeraByte (TB)
= 2 40 byte = 1.024
GB; circa 1.000.000.000.000 byte
5050
Anno
Anno accademico
accademico 2010-2011
2010-2011
Indirizzi di memoria Indirizzo Byte Ind. parola Ind. decimale Indirizzo binario 0 0 000000 00 0
Indirizzi di memoria
Indirizzo Byte
Ind. parola Ind. decimale
Indirizzo binario
0
0
000000 00
0
1
000000 01
0
2
000000 10
0
3
000000 11
1
4
000001 00
v
1
5
000001 01
1
6
000001 10
1
7
000001 11
2
8
000010 00
2
9
000010 01
2
10
000010 10
5151
Anno
Anno accademico
2
11
000010 11
accademico 2010-2011
2010-2011

Processore ee RAM

Processore

RAM

La connessione tra memoria e processore rappresenta un

limite degli elaboratori di Von Neumann

  • Limite architetturale: il bus permette l’accesso ad una sola informazione per volta (“collo di bottiglia”)

  • Limite tecnologico: la velocità con cui il processore ottiene le informazioni dalla memoria centrale (velocità di accesso della RAM) è inferiore alla velocità con cui è in grado di elaborarle

Soluzioni

Soluzioni

  • Allargamento del bus

dati,

istruzioni e/o dati per volta

in

modo da

poter estrarre più

  • Superamento del limite tecnologico mediante introduzione

una memoria

una

memoria intermedia

intermedia tratra memoria

memoria

centrale

che che approssimi

approssimi lala velocità

velocità del

introduzione di di

centrale ee processore

processore

del processore

processore

Anno accademico

Anno

accademico 2010-2011

2010-2011

5252 5252

LaLa memoria memoria cache cache • Piccola RAM molto veloce, interposta tra CPU e memoria principale,
LaLa memoria
memoria cache
cache
Piccola RAM molto veloce, interposta tra CPU e memoria
principale, per migliorare le prestazioni del sistema
Quando viene indirizzata una parola, quella parola e alcune di
quelle vicine vengono trasferite dalla lenta memoria centrale
nella più piccola e veloce memoria cache, in modo che la
parola successiva sia accessibile più velocemente (principio principio di di
località
località spazio
spazio temporale
temporale del
del software
software)
5353
5353
Anno
Anno accademico
accademico 2010-2011
2010-2011

LaLa memoria

memoria ROM

ROM

Una parte della memoria centrale è la ROM

ROM

Memory

Memory

),

una

memoria a

sola lettura,

contenere informazioni non variabili

(Read

Read Only

Only

destinata a

Caratteristiche delle memorie ROM:

elevata (inferiore alle RAM)

  • accesso casuale

  • velocità elevata

alle informazioni

informazioni

casuale alle

accesso

velocità

La ROM viene scritta in modo permanente in fase

costruttiva: le celle della ROM

possono essere

successivamente lette, ma mai riscritte

Viene usata per memorizzare programmi di sistema

Anno accademico

Anno

accademico 2010-2011

2010-2011

5454 5454

IlIl software

software della

della ROM

ROM

11

La

ROM

contiene il

software

e

i

dati necessari ad

inizializzare il computer ed a far funzionare i dispositivi

periferici

• Il nucleo del software della ROM è costituito dalle

routine routine di di avviamento avviamento che comprendono il caricatore caricatore di di

boot boot strap strap ed il ROM ROM BIOS BIOS

Le routine

routine di di avviamento

avviamento realizzano l’inizializzazione del

calcolatore:

  • Ne

effettuano un

che

rapido controllo di affidabilità, per

le

componenti

hardware siano

accertare

tutte

perfettamente funzionanti

  • Caricano il sistema operativo dal disco (caricatore di boot strap)

Anno accademico

Anno

accademico 2010-2011

2010-2011

5555 5555

IlIl software

software della

della ROM

ROM

22

• Il caricatore caricatore di di boot boot strap strap ha la funzione di leggere un

programma di lancio dal disco, detto

bootstrap

bootstrap,

e di

trasferire ad esso il controllo: il boostrap carica il nucleo

del sistema operativo e lo manda in esecuzione

Il ROM

ROM BIOS

BIOS

Binary

Binary Input

Input Output

Output System

System

è la

parte della ROM attiva quando il computer è al lavoro:

il suo ruolo è quello di fornire un insieme di servizi di

base richiesti per il funzionamento delle periferiche

Anno accademico

Anno

accademico 2010-2011

2010-2011

  • 5656 5656

Operazioni sulla

Operazioni

sulla memoria

memoria centrale

centrale

Le operazioni che si effettuano sulla memoria sono

operazioni di lettura

lettura e scrittura

scrittura

Entrambe presuppongono l’utilizzo di un indirizzo che

identifica univocamente la

all’operazione

cella interessata

L’operazione di scrittura è distruttiva

distruttiva, cioè cancella

l’informazione precedentemente contenuta nella cella

L’operazione di lettura preserva il contenuto della cella

indirizzata: all’esterno della memoria centrale viene

trasferita copia dell’informazione

Anno accademico

Anno

accademico 2010-2011

2010-2011

  • 5757 5757

L'architettura di Von Neumann Memoria CPU RAM I/O secondaria BUS 5858 Anno Anno accademico accademico 2010-2011
L'architettura di Von Neumann
Memoria
CPU
RAM
I/O
secondaria
BUS
5858
Anno
Anno accademico
accademico 2010-2011
2010-2011
LaLa memoria memoria secondaria secondaria • Esistono diversi dispositivi di memoria secondaria: dischi magnetici (hard disk),
LaLa memoria
memoria secondaria
secondaria
• Esistono diversi dispositivi di memoria
secondaria: dischi magnetici (hard disk),
dischi ottici (CD, DVD), dispositivi USB,
memorie flash
• Memoria non volatile ad alta capacità
Il disco fisso è costituito da uno o più
piatti
metallici
ricoperti
di
materiale
magnetico su entrambe le facce
Ciascuna superficie è associata ad una o
più testine di lettura/scrittura che si
muovono radialmente per leggere/
scrivere l’informazione organizzata in
Dischi
Dischi magnetici
magnetici
tracce concentriche
5959
5959
Anno
Anno accademico
accademico 2010-2011
2010-2011

II dischi

dischi magnetici

magnetici

11

• I dischi dischi magnetici magnetici rappresentano il mezzo fondamentale per la memorizzazione di massa 
I dischi
dischi magnetici
magnetici rappresentano il mezzo fondamentale per la
memorizzazione di massa
I dischi ruotano ad una velocità (costante) compresa tra i 60 e i
200 giri al secondo
6060
6060
Anno
Anno accademico
accademico 2010-2011
2010-2011

II dischi

dischi magnetici

magnetici

22

I I dischi magnetici 2 2 • L’informazione è disposta sul Platters disco in tracce tracce,
• L’informazione è disposta sul Platters disco in tracce tracce, ovvero in cerchi concentrici Tracks Platter
• L’informazione è disposta sul
Platters
disco in tracce tracce, ovvero in
cerchi concentrici
Tracks
Platter
La
densità
dei
bit
decresce
Sectors
dalle
tracce
interne
alle
più
esterne per mantenere
Track
costante la quantità di dati che
passano
sotto
le
testine
nell’unità di tempo
• Le tracce sono divise in settori
settori
La
capacità
di memorizzazione dei
dischi
cresce in
conseguenza allo sviluppo tecnologico
6161
6161
Anno
Anno accademico
accademico 2010-2011
2010-2011

II dischi

dischi magnetici

magnetici

33

Il numero di bit contenuti in una traccia è dell’ordine

delle centinaia di migliaia (512/4096 byte a settore)

Centinaia di settori (512/1024 per traccia)

Decine

di

migliaia

di

cilindri

(tracce

concentriche

disposte sulle diverse facce dei diversi dischi)

Per leggere (o scrivere)

sul disco,

la testina

deve

si

posizionare sulla traccia

contiene

che

dato

il

ed

attendere che il dato passi sotto di essa

  • Le operazioni di lettura/scrittura si basano sulla proprietà del campo magnetico di indurre/essere indotto il/dal passaggio di corrente in una bobina

Anno accademico

Anno

accademico 2010-2011

2010-2011

  • 6262 6262

II dischi

dischi magnetici

magnetici 44

La magnetizzazione avviene infatti mediante la testina

testina

magnetica (una piccola bobina racchiusa in un involucro

magnetica

di metallo dotato di una minuscola fessura, il traferro

traferro)

Facendo passare corrente nella bobina si induce un

campo magnetico nel traferro (invertendo la corrente si

inverte anche il campo)

Quando si fa passare corrente attraverso la testina

alternandone la direzione, le aree del disco al di sotto

della testina si magnetizzano in una delle due direzioni:

questo procedimento rappresenta la scrittura scrittura susu disco disco

Anno accademico

Anno

accademico 2010-2011

2010-2011

6363

II dischi

dischi magnetici

magnetici

55

II dati

dati binari

binari che

che l’unità

lunità scrive

scrive sul

sul disco

disco sono

sono tradotti

tradotti inin

unun formato

formato costituito

costituito dada una

una serie

serie di di aree

aree magnetizzate

magnetizzate

inin unun senso

senso oo nell'altro

nell'altro

Lettura Lettura dada disco disco: poiché le particelle magnetizzate sono

circondate da un campo magnetico, quando il traferro

passa sul disco le variazioni del campo inducono sulla

testina una corrente che si manifesta con variazioni di

voltaggio alle estremità della bobina; i circuiti di lettura

decodificano le variazioni nell’andamento dell’intensità di

corrente riconducendole a 0/1

Anno accademico

Anno

accademico 2010-2011

2010-2011

6464

II dischi

dischi ottici

ottici

11

Sui

dischi

dischi ottici

ottici

si

utilizza

la

tecnologia

laser

per

realizzare le operazioni di lettura/scrittura

Densità dei bit uniforme

  • Un’unica traccia elicoidale o…

  • …tracce più lontane dal centro del disco sono più lunghe e

contengono un maggior numero di settori (fino al 40% in

più rispetto alle tracce vicine al centro di rotazione)

Anno accademico

Anno

accademico 2010-2011

2010-2011

  • 6565 6565

II dischi

dischi ottici

ottici

22

Sui dischi di lettura/scrittura

i

dati

possono essere

modificati più e più volte (dischi

dischi aa cambio

cambio di di fase

fase)

I dischi WORM

WORM, Write

Write Once

Once Read

Read Many

Many, si possono

scrivere una sola volta

La

tecnologia

originale

per

dischi

WORM

consiste

nell’inserire una pellicola di alluminio tra due piatti di

plastica o di vetro (o un pigmento polimerico)

Per

scrivere un

bit,

l’unità

usa

un

raggio

laser per

praticare un piccolo foro nell’alluminio (o opacizzare il

pigmento): l’informazione può venir distrutta ma non

alterata

Anno accademico

Anno

accademico 2010-2011

2010-2011

  • 6666 6666

L'architettura di Von Neumann Memoria CPU RAM I/O secondaria BUS 6767 Anno Anno accademico accademico 2010-2011
L'architettura di Von Neumann
Memoria
CPU
RAM
I/O
secondaria
BUS
6767
Anno
Anno accademico
accademico 2010-2011
2010-2011
II dispositivi dispositivi di di Input Input Output Output • Insieme di dispositivi che consentono l’acquisizione
II
dispositivi
dispositivi di di Input
Input Output
Output
• Insieme di dispositivi che consentono l’acquisizione di dati (input input), la
loro archiviazione (storage storage) e la loro presentazione verso il mondo
esterno (output output)
Si possono classificare in base a tre diverse caratteristiche:
Comportamento:
Comportamento:
Input
(read
once),
output
(write
only),
memoria (rilettura/riscrittura)
 Partner: Partner: uomo o macchina
Velocità
Velocità del
del flusso
flusso dei
dei dati:
dati: quantità di dati trasferiti nell’unità di
tempo da o verso la CPU o la memoria centrale
1010 22 KB/s
KB/s
Tastiera Tastiera input input uomo uomo
Mouse
Mouse
input
input
uomo
uomo
++
1010 44 KB/s
KB/s
6868
Rete
Rete
input/output
input/output
macchina
macchina
Anno
Anno accademico
accademico 2010-2011
2010-2011
velocità
velocità