Il funzionamento dei calcolatori moderni
Come è fatto un calcolatore moderno?
Hardware
Software
componenti concrete,
fisiche
componenti concettuali,
metafisiche
Le caratteristiche fondamentali delle apparecchiature dei
moderni computer sono derivati dal modello di Von Neumann
Memoria principale o centrale o RAM
Unità centrale o processore o CPU
Unità di ingresso e di uscita
- la CPU (Central Processor Unit)
carica le istruzioni del programma
e le esegue;
- la memoria ROM (Read Only
Memory) che è di sola lettura;
- la memoria centrale o RAM
(Random Access Memory);
- le unità di ingresso e uscita (I/O) forniscono funzionalità specifiche
relative al trattamento di informazione;
Tre differenti canali di collegamento:
- data bus o bus dati per la trasmissione dei dati (valori numerici o codici
e istruzioni). Questo canale è bidirezionale;
- address bus o bus indirizzi per la trasmissione degli indirizzi (memoria
o I/O). Questo canale è unidirezionale (da CPU agli altri);
- control bus o bus controlli permette di avere attivi sullo stesso canale
solo le due unità interessate. Questo bus è bidirezionale;
memoria centrale, interna al calcolatore, direttamente accessibile dalla CPU,
contiene i programmi e i dati necessari all'esecuzione dei programmi
la memoria secondaria o di massa, esterna al calcolatore. Viene utilizzata per
memorizzare grandi quantità di informazioni, è persistente (conserva le
informazioni), ma l’accesso all’informazione è meno rapida rispetto alla memoria
centrale
MEMORIA CENTRALE
- un insieme finito di locazioni (celle o registri)
di uguali dimensioni (struttura a matrice);
- si chiama indirizzo di una locazione la
posizione che questa occupa nella memoria
rispetto alla prima locazione che ha indirizzo zero;
- ogni locazione è caratterizzata da un indirizzo e dal contenuto;
- il contenuto di una locazione ovvero l'informazione in essa registrata si chiama
parola di memoria (stessa lunghezza);
- una cella di memoria è la più piccola quantità di memoria accessibile pertanto
rappresenta l'unità di informazione scambiata tra i vari elementi funzionali ;
- l’accesso all’informazione è casuale (tempo di accesso sempre uguale,
dell'ordine di nanosecondi, cioè 10-9);
- operazioni di lettura o scrittura, un segnale di controllo apposito R/W
(Read/Write) indica quale operazione;
Lettura
(trasferimento fisico dei byte contenuti
nella locazione dalla memoria all’unità
centrale di processamento)
1) si scrive in un apposito registro di memoria (MAR) l'indirizzo della locazione;
2) indirizzo trasferito al bus degli indirizzi che lo trasporta in memoria;
3) attesa per l'accesso, si scrive sul bus dati il contenuto della locazione letta;
4) contenuto caricato (load) nel regitro dei dati (MDR) a disposizione della CPU.
Scrittura
(trasferimento fisico del contenuto del
registro dei dati (MDR) nella locazione di
memoria)
1) e 2) uguali
2.1) si scrive sul registro MDR il dato da memorizzare (store);
2.2) il dato trasferito al data bus che lo trasporta in memoria;
3) Attesa per l’accesso, si scrive il dato nella locazione selezionata;
4) NO.
Non c’è solo la RAM…
Una porzione di memoria centrale, è realizzata con diversa tecnologia
e viene identificata con il termine ROM (Read Only Memory). Serve
per memorizzare in modo permanente informazioni necessarie per
l’avviamento del sistema.
Esistono altresì
ROM programmabili (PROM, Programmable ROM)
ROM programmabili e cancellabili (EPROM Erasable PROM,
EAROM Electrical Alterable ROM).
CPU
CU (Control Unit), interpreta e
attiva le risorse necessarie alla
esecuzione. E’ la rete logica che
gestisce e coordina il
funzionamento del processore:
gestisce le fasi di indirizzamento e
di accesso ai bus e regola il flusso
dei dati all’interno del processore
(sequenzializzazione)
ALU (Arithmetic Logic Unit), costituita da alcuni registri interni e da
dispositivi circuitali che consentono di eseguire le operazioni sugli operandi
memorizzati nei registri interni all’ALU
- registro accumulatore (A), per un operando e risultato operazione;
- registro operando (OP), per un altro operando coinvolto;
- registro di stato (PSW - Processor Status Word) per l'esito dell’operazione
eseguita (Flag). La CU interpreta i flag e intraprende azioni differenziate
IR
PSW
PC
ALU
CU
A
MAR
OP
MDR
I/O
Memoria centrale
Registri
un registro è un insieme di n circuiti logici, detti FLIP-FLOP. I registri
fondamentali sono:
- il registro degli indirizzi di memoria (MAR Memory Address Register)
indica l'indirizzo della locazione di memoria che si vuole selezionare;
- il registro dei dati di memoria (MDR Memory Data Register) contiene il dato
proveniente dalla locazione di memoria selezionata o il dato che si vuole
memorizzare nella locazione di memoria selezionata;
- il contatore di programma (PC Program Counter) ha la funzione di guidare
il flusso della esecuzione di un programma, infatti il suo contenuto indica
l'indirizzo della prossima istruzione da eseguire;
- il registro della istruzione corrente (IR Instruction Register) contiene
l'istruzione da decodificare e eseguire;
Altro registro è quello delle interruzioni (INTR Interrupt Register) contiene
informazioni sullo stato di funzionamento delle periferiche.
IR
PSW
PC
ALU
CU
A
MAR
OP
MDR
I/O
Memoria centrale
I dispositivi circuitali implementano il set di istruzioni eseguibili dall’elaboratore
Istruzione = codice operativo + operandi
Suddivisione elaboratori: CISC (Complex Instruction Set Computer) e
RISC (Reduced Instruction Set Computer)
CISC: programmazione più semplice e veloce – elevato tempo di decodifica e
alto spazio occupato dai circuiti per la decodifica
RISC: basso tempo di decodifica delle istruzioni e piccolo spazio occupato dai
Circuiti per la decodifica – programmazione più lunga e meno ottimizzata
Dispositivi di Input/Output
periferiche per l'input (per passare informazioni al calcolatore)
periferiche per l'output (per ricevere informazioni dal calcolatore)
I dispositivi (interfacce) di I/O permettono la comunicazione, il trasferimento dei
dati tra calcolatore e unità periferiche e viceversa. Hanno dei registri:
- un registro dati RDP, per scambiare dati tra la periferica e la CPU
- un registro comandi RCP, contiene il comando che la periferica deve eseguire
- un registro di stato, per lo stato della periferica: spenta, accesa, fuori uso, …
La funzione fondamentale di un’interfaccia è la traduzione tra formato esterno e
formato interno dei dati:
dati in input  interfaccia:
convertiti nel formato interno del
computer
dati in memoria  interfaccia:
convertiti nel formato della
periferica  dati di output
Le fasi dell’elaborazione
PC  1° istruzione
Fetch (reperimento e caricamento
dell’istruzione da eseguire)
Fase di decode (decodifica del codice
operativo a carico dell'unità di
controllo)
Fase di execute (esecuzione vera e
propria della istruzione; prima della
esecuzione viene comunque eseguita la
fase di fetch degli operandi)
Le fasi di elaborazione sono scandite
da un segnale (detto orologio di
sistema o clock) emesso appositamente
per mantenere la sincronizzare tra le
varie unità.
MAR  PC
PC  PC + 1
o salto
MDR  mem[MAR]
IR  MDR
EXEC
DECODE
ALT
SI
NO
Stato di un sistema
Esecuzione di un’istruzione: attraverso una sequenza di cambiamenti di stato del
processore, scandita da un segnale periodico (clock)
Stato = l’insieme degli stati fisici di ogni filo elettrico del sistema
Il segnale è trasportato da un filo per tutto il chip contenente il processore
clock della CPU = orologio interno, definisce tempo di esecuzione di
un’istruzione
La frequenza del clock si misura in MHz (MegaHertz): numero di operazioni
elementari eseguite in un secondo (velocità)
Es.: un processore a 800 MHz  cambia stato 800 milioni di volte al secondo
Intel (Pentium), Amd (Athlon), stesso IS, parlano la stessa lingua chiamata x86
Ibm (PowerPC), altro IS per i computer Macintosh
…architettura a 32 bits
potenza di un processore  frequenza, architettura interna
Architetture CISC e RISC
CISC (Complex Instruction Set Computer): molte istruzioni complesse di
formato variabile
V programmazione più semplice e veloce;
SV elevato tempo di decodifica delle istruzioni e molto spazio occupato dai
circuiti per la decodifica; molte fasi abbastanza complesse
RISC (Reduced Instruction Set Computer): poche istruzioni semplici di
formato fisso
V basso tempo di decodifica delle istruzioni e poco spazio occupato dai circuiti
per la decodifica; poche fasi molto semplici per ogni istruzione
SV programmazione più lunga e meno ottimizzata
Velocità di esecuzione di un’istruzione determina la velocità della CPU
CISC: le istruzioni richiedono più periodi di clock  macchine più potenti;
RISC: ogni istruzione in un solo ciclo periodo di clock  sistema più veloce
CISC anni '70 e '80 – RISC fino ad oggi
… fattori di mercato e fattori tecnologici …
EVOLUZIONI dell’architettura di Von Neumann
limite principale: operazioni eseguite in stretta sequenza
CPU più veloci: spesso non sufficiente
…varie forme di parallelismo…
Estensioni all'architettura di Von Neumann
- processori dedicati, co-processori (processore aritmetico, processore
grafico) che lavorano parallelamente alla CPU o per particolari operazioni
- possibilità di eseguire alcune istruzioni parzialmente in parallelo
- uso di gerarchie di memorie con prestazioni e costi decrescenti (es.:
cache, per tenere copia di parte dei dati della memoria centrale con accesso
più rapido)
- macchine con diverse CPU che agiscono contemporaneamente (macchine
parallele o multiprocessore)
Architettura interna (CPU superscalare)
Nella CPU  più unità di controllo e più unità
logico-aritmetiche
ALU 1
CU 1
ALU 3
CU 3
ALU 2
ALU 1
CU 2
CU 1
ALU 4
CU 4
Architettura parallela
Centrale di calcolo  molte CPU
- più processori ed una sola memoria (Symmetric Multiprocessing o
SMP) con bus unico
Architettura semplice da costruire ma con “problemi di traffico” (ad es.:
server di rete nei sistemi gestionali)
- Supercomputer: più processori ciascuno con propria memoria
(Massively Parallel Processing o MPP)
Architettura complessa, molto potente (necessario in calcoli molto complessi
come reazioni nucleari, calcoli metereologici, ecc.)
Le componenti principali di un personal computer
Scheda madre (motherboard)
il processore (CPU)
la memoria RAM
il BIOS
controller per unità a dischetti e dischi fissi: per comunicare con altre unità di
memoria di massa (tecnologie IDE, EIDE, SCSI)
gli slot (alloggiamenti delle schede di espansione) a 16 e 32 bit: per installare
le espansioni di capacità elaborative (tecnologie AGP, PCI, ISA), ovvero ulteriori
processori
il Chipset: gruppo di elementi che gestisce e coordina il funzionamento degli
altri componenti. Controllo dell' I/O (Input/Output), dell' I/O del bus e elettronica
di gestione dei dischi fissi e CD-ROM
porte di comunicazione: seriale (1 bit alla volta), parallela (8 bit alla volta),
USB (Universal Serial Bus, seriale con alta velocità di trasferimento,
connessione e configurazione rapida delle periferiche, possibilità di connettere
fino a 127 dispositivi in sequenza)
Scheda Video
BIOS
Processori
Pentium II Intel
Parallela
Seriali
socket
USB
Porte seriali
Porte USB
Porte parallele
AGP slot (Accelerated
Graphic Port)
Porte IDE:
Hard disk
CD-ROM
Floppy
RAM
Chipset
Slot
processore
Alimentazione
PCI slot (Periferals Communication
Interface) – modem, audio, video
BIOS
ISA slot (Industrial
Standard Architecture)
vecchia connessione
Start
Impostazioni
Pannello di
controllo
Sistema
Generale
Gestione
periferiche
Le periferiche
Monitor - per visualizzare il responso in real time; costituito da
una griglia di lampadine (pixels – picture element) che possono
assumere diversi colori; standard: 14 pollici (1024  768
pixels) e 17 pollici (1280  1024 pixels); risoluzione è di 72 
72 dpi (dot per inch = pixel per inch).
Tastiera - converte la digitazione di un carattere in un
parola del codice ASCII
Mouse - per puntare e selezionare oggetti sul monitor, SO con una GUI
(Graphical User Interface); puntatori video alternativi: trackball (due
tasti e una sfera), touchpad (computer portatili) e il joystick (giochi
elettronici)
Hard Disk e Hard disk drive - per la memorizzazione, lettura e
scrittura dei dati
Lettori CD/DVD - per leggere i dati su CD/DVD; velocità
espressa in n (Data Transfer Rate, quantità di dati inviata al pc);
standard 50 (1x = 150 MB/s)
Masterizzatore - per scrivere dati su un CD; standard 8 - 12
Floppy disk drive - per leggere e scrivere dati su un floppy disk
Modem - per trasmettere dati sulla linea telefonica; standard 56Kbps
Scanner - per acquisire digitalmente immagini stampate;
funzione tipica è anche quella di leggere parti scritte di
documenti (OCR = Optical Character Reader)
Stampante - a getto d’inchiostro o inkjet (getto di
minuscole gocce di inchiostro) e laser (laser agisce su un
tamburo rivestito di materiale fotosensibile; l’inchiostro
aderisce e poi trasferito su carta)
Telecamera web - per acquisire sequenze video o immagini
fotografiche da memorizzare e/o trasmettere in real time
Tavoletta grafica (digitizer) - per rilevare le
coordinate dei punti di un disegno
Plotter - tracciatore di disegni
costituito da una tavoletta o rullo e
una penna collegata ad un braccio
meccanico che disegna il grafico
I tipi attuali di computer
Supercomputer- notevole capacità
computazionale, per lo più macchine
parallele fino a qualche migliaio di
processori, che occupano diversi metri
cubi di spazio, per grandi progetti; molto
specializzati, per lo più con poca dotazione
di software e progettati per svolgere
operazioni matematiche molto
velocemente
Mainframe - di elevata capacità, occupano
lo spazio di pochi metri cubi; utilizzati per
collegare molti utenti con terminali ad
interfaccia grafica semplice; attualmente si
tende ad utilizzarli per gestire grosse basi di
dati
Minicalcolatori - gestiscono un certo numero di
utenti (10 -100); per lo più utilizzati come server e
utenti con interfaccia grafica più raffinata
Workstation - di elevata capacità computazionale;
minicalcolatori dedicati ad un solo utente e dotati
di un’interfaccia grafica ad alte prestazioni
Personal computers - i comuni PC; calcolatori
simili alle workstation ma con prestazioni ridotte
Lap-top computers - computer
portatili; prestazioni simili ai pc
Palm-top computers - computer palmari