Sei sulla pagina 1di 78

Lezione 5

Architettura degli elaboratori

Mauro Piccolo
piccolo@di.unito.it

   
Esecutore
● Un elaboratore elettronico `e una esecutore “general purpose” (ossia 
con finalita generiche e non predeterminate).
● Le componenti principali, che analizzeremo nel seguito, sono:
● Hardware
● Software, d’ambiente ed applicativo
● Il funzionamento del PC `e basato su due elementi fondamentali:
● Istruzioni da eseguire
Dati da elaborare

   
HW & SW
● Hardware (HW): componenti fisici di sistema.
● Unita' di elaborazione, memoria centrale, memoria di massa, bus di sistema, stampanti, 
scanner, lettori CD/DVD, monitor, mouse, …
● Software (SW) ­programmi che vengono eseguiti dal sistema
● Software di sistema: dedicato alla gestione dell’elaboratore. Controlla il comportamento del 
sistema (il pi`u importante dei software di sistema `e il sistema operativo, che controlla le 
risorse del sistema e fornisce la base su cui costruire tutti gli altri programmi).
– Es. di OS: MS­DOS, Windows, Unix, Linux, Mac OS, Android …
● Software applicativo: `e dedicato alla realizzazione di specifiche esigenze applicative degli 
utenti, si appoggia sullo strato fornito dal sistema operativo.
– Es. di software applicativo: Word, Excel, Firefox, Safari, Explorer, …
● Vedrete nel corso di Sistemi di Elaborazione delle Informazioni I

   
Tipologie di elaboratore (1)
● Un palmare (PDA) e' computer di dimensioni contenute, tali 
da essere portato sul palmo di una mano. Spesso e' dotato di 
uno schermo touchscreen. Hanno programmi e sistemi operativi 
realizzati su misura. Un palmare integrato con il telefono `e 
chiamato smartphone.
● Un laptop o notebook o semplicemente portatile e' un 
piccolo computer progettato per la portabilita'. Solitamente tutti i 
componenti hardware sono incorporati in una singola unita'. E' 
caratterizzato dalla presenza di una batteria ricaricabile.

   
Tipologie di elaboratore (2)
● Un netbook e' un portatile progettato e commercializzato con l’accento 
sulla portabilit`a (piccole dimensioni, peso ridotto e spesso maggiore 
durata della batteria) con prestazioni un poco piu limitate di un notebook 
standard. Ma per ottenere la riduzione del peso e delle dimensione, 
possiede poche porte, impiega costosi componenti ed inoltre nella 
maggior parte dei subnotebook viene omessa l’unita ottica (CD/DVD).
● Un tablet e' un computer dotato di un monitor touchscreen come 
principale dispositivo di input. Il touchscreen consente all’utente di 
utilizzare il computer con una stilo digitale o con un dito, invece di una 
tastiera o mouse. E' caratterizzato da una lunga durata della batteria, 
possiede poche porte e ha prestazioni limitate ancor piu del netbook.

   
Tipologie di elaboratore (3)
● Un desktop e' un computer destinato ad essere usato 
esclusivamente in un posto fisso. Il desktop `e caratterizzato da 
una notevole espandibilit`a e modularit`a e da prestazioni quasi 
sempre superiori rispetto ad un comune computer portatile.
● Una workstation e' un desktop di fascia alta progettato 
principalmente per applicazioni tecniche e scientifiche e altri 
compiti altamente professionali. E caratterizzato da prestazioni 
elevatissime rispetto ai normali desktop.

   
Tipologie di elaboratore (4)
● Infine i mainframe e supercomputer sono macchine 
costruite apposta per certe finalita ed alloggiate in strutture 
costruite su richiesta dall’acquirente. I supercomputer vengono 
utilizzati per realizzare processi di calcolo intensivi come le analisi 
meteorologiche (incluse le analisi sull’incidenza dell’inquinamento 
sull’ambiente), le analisi molecolari (calcolo della struttura 
tridimensionale e del loro ripiegamento, delle propriet`a chimiche, 
ecc) simulazioni fisiche (simulazioni di fluidodinamica, simulazioni 
di detonazioni nucleari, di astrofisica, di fisica nucleare ecc), 
criptoanalisi e altro. I militari e le agenzie governative di tutte le 
nazioni ne fanno un uso molto intenso.
   
Architettura di Von Neumann

CPU Memoria  Memoria  Dispositivi 


Principale Secondaria di I/O

BUS
   
Macchina astratta
● La maggior parte dei calcolatori dei calcolatori sono accomunati dalla 
medesima architettura, schematizzata dal modello di Von Neumann.
● Il processore estrae le istruzioni dalla memoria e le esegue, le istruzioni possono 
comportare:
– manipolazione dei dati;
– movimentazione dei dati;
– individuazione della prossima istruzione.
● I trasferimenti di dati attraverso elementi funzionali diversi avvengono attraverso il 
bus di sistema
● Tutte le componenti del calcolatore sono sincronizzate da un orologio di sistema 
(clock)..

   
Bus di sistema (1)
● Il bus di sistema e' composto da fili in rame, ad esse sono connessi 
sia i moduli di memoria che le periferiferiche di I/O. Ogni filo e' una 
connessione elettrica che pu`o trasmettere cifre binarie (0 o 1). 
Normalmente, solo una coppia di dispositivi alla volta puo utilizzare il 
bus: un master ed uno slave. Il prima attiva la comunicazione ed 
il secondo la subisce. Semplificando, possiamo immaginare che sia 
sempre la CPU ad agire come master, ossia ad iniziare una 
comunicazione con un’altra componente del calcolatore.

   
Bus di sistema (2)
● Linee dati. E' il sub­bus sul quale transitano le informazioni. E' utilizzato da tutti i 
componenti del sistema, in scrittura ed in lettura.
● Linee indirizzi. E' il sub­bus attraverso il quale la CPU decide in quale indirizzo andare a 
scrivere o a leggere informazioni. Sia le celle di memoria (RAM) sia le periferiche di I/O 
(Input/Output) espongono uno o piu celle di memoria, ognuno dei quali accessibile tramite 
indirizzo. Talune possono essere solo scrivibili o solo leggibili. Lo slave (ossia il dispositivo 
che subisce la comunicazione) rende la cella di memoria corrispondente all’indirizzo 
accessibile sul bus dei dati per la lettura e/o la scrittura.
● Linee di controllo. Lo scopo dei controlli `e coordinare le attivita' del sistema; tramite 
esso, la CPU pu`o decidere con quale dispositivo comunicare, cioe' quale dispositivo deve 
leggere l’indirizzo sul bus indirizzi, se deve essere eseguita una lettura od una scrittura, ed 
altro.

   
Riepilogando (1)
● Il calcolatore e' composto da alcuni elementi funzionali interagenti e cooperanti che 
colloquiano tramite il bus. Le operazioni di elaborazione si susseguono sincronizzate con 
una scansione temporale dettata da un orologio di sistema (clock).
● Il processore o CPU (Central Processing Unit) e' il modulo che svolge effettivamente 
le elaborazioni e coordina il flusso dei dati all’interno del computer. Compito principale di 
questa unita' di elaborazione `e quello di far girare i programmi, eseguendo le singole 
istruzioni che li compongono.
● La memoria centrale (RAM) e' utilizzata per memorizzare il programma in 
esecuzione sulla macchina e i dati utili al loro funzionamento. La sua capacita' di 
memorizzazione e' limitata e, normalmente, e' volatile (le informazioni vengono perse in 
caso di mancata alimentazione del PC). La sua caratteristica principale e' quella di 
permettere un accesso veloce alle informazioni in essa contenute.

   
Riepilogando (2)
● La memoria secondaria (o di massa) consente, invece, lo 
stoccaggio di enormi quantita' di dati in modo permanente sfruttando 
propriet`a magnetiche od ottiche; lo svantaggio dell’utilizzo di tali 
tecnologie di realizzazione risiede nel tempo di accesso, notevolmente 
maggiore rispetto a quello della memoria centrale. In un computer tutte 
le componenti sopra elencate trovano normalmente posto in un unico 
contenitore detto box o case.
● Le unita' periferiche sono dispositivi utilizzati per fornire i dati da 
elaborare al computer e per ottenere da esso i risultati; esse fungono 
quindi da interfaccia fisica tra l’elaboratore e l’utilizzatore. Esempi di 
periferiche sono tastiera, mouse, il monitor, lastampante, modem ...
   
Motherboard
● I calcolatori tipicamente sono realizzati connettendo tutte le 
componenti ad una scheda­madre. Su di essa viene realizzato 
il bus che connette gli slot predisposti per ospitare la CPU, la 
RAM, la memoria secondaria e gli altri dispositivi. Oggi, le 
schede madre sono realizzate utilizzando i chip (chipset) di un 
unico produttore (INTEL, ASUS, ...) in maniera piuttosto 
standard.
● Tutti i chipset includono due chip cruciali: il northbridge ed il 
southbridge.

   
Chipset
● Con il termine chipset in generale, si indica un insieme di circuiti 
integrati (chip) che svolgono una specifica funzione. Viene utilizzato 
per indicare l’insieme di chip di una scheda madre che si occupano 
di smistare e dirigere il traffico di informazioni passante attraverso il 
bus di sistema, fra CPU, memoria RAM e controller delle periferiche 
di input/output. In generale, uno specifico chipset e' progettato per 
una determinata famiglia di processori. Il socket, anche chiamato 
zoccolo, e' lo slot (il connettore) destinato ad ospitare la CPU.

   
CPU (1)
● La CPU `e l’elemento dedicato all’esecuzione dei programmi: si occupa di 
eseguire tutte le operazioni richieste dal sistema operativo e dal software 
applicativo.
● Una CU (Control Unit) che legge dalla memoria le istruzioni. Se occorre legge 
anche i dati necessari all’esecuzione dell’istruzione letta. Quindi, esegue l’istruzione e 
(eventualmente) memorizza il risultato, scrivendolo in memoria o in un registro della CPU.
● Una ALU (Arithmetic Logic Unit) che si occupa di eseguire le operazioni logiche 
e aritmetiche.
● I registri sono le speciali locazioni di memoria interne alla CPU, molto veloci, a cui e' 
possibile accedere molto piu' rapidamente che alla memoria.
● Per rendere pi`u veloci le fasi di trasferimento dei dati vi e' anche una memoria 
superveloce detta CACHE che immagazzina provvisoriamente i dati piu' recenti letti dalla 
CPU. Nel caso la CPU dovesse richiederli nuovamente per un’ulteriore elaborazione il loro 
trasferimento da questa memoria risultera' molto pi`u rapido che dalla RAM.
   
CPU (2)
● Riassumendo, per poter svolgere il suo compito deve 
essere in grado di:
● leggere e scrivere i dati nella memoria del computer (RAM)
● riconoscere ed eseguire i comandi e le istruzioni fornite dai 
programmi
●  indicare alle altre componenti del computer cosa fare, in modo 
da
● organizzare e sincronizzare le varie operazioni da svolgere

   
Memoria principale
● Memoria RAM (Random Access Memory)
● Accesso diretto alle celle
● Il tempo di accesso alle celle e' sempre il medesimo 
indipendentemente dalla posizione della cella
● Random (tradotto in italiano con casuale)
● Memoria volatile (finche' c'e' energia)

   
Indirizzamento delle celle

   
Spazio di indirizzamento
● Utilizzando 16 bit si possono indirizzare
● 216 = 64 KB di memoria
● Utilizzando 32 bit si possono indirizzare
● 232 = 4 GB di memoria
● Gli indirizzi a 32 bit sono lo standard nella maggior parte 
dei calcolatori, anche se oggi alcuni processori utilizzano 
indirizzi di 64 bit

   
Concetto di programma memorizzato

Un programma puo' essere codificato come sequenza di bit e 
memorizzato in memoria principale. Da qui, la CPU puo' 
estrarre le istruzioni ed eseguirle. In questo modo il 
programma da eseguire puo' essere alterato piu' facilmente, 
favorendo la flessibilita'.

   
Il principio di funzionamento
● Programmi e dati risiedono in memoria secondaria
● Per essere eseguiti (i programmi) ed usati (i dati) vengono 
copiati nella memoria principale
● La CPU (Central Processing Unit) e' in grado di eseguire 
le istruzioni che compongono i programmi

   
Memoria Principale
Le memorie SRAM (RAM statiche), dette anche
flash-RAM, hanno costi elevati, tempi di accesso
inferiori ai 2 nanosecondi e sono generalmente usate
per la memoria cache .
Le memorie DRAM (RAM dinamiche) hanno tempi di
accesso pari a 40-60 nanosecondi e sono utilizzate
per la memoria principale degli elaboratori.
Le memorie VRAM (RAM video) hanno caratteristiche
molto particolari e sono usate dagli adattatori video
per la gestione delle immagini. Sono più costose delle
DRAM.

   
Word
La parola (word) di una architettura:
quanti bit possono essere letti/scritti/usati
dalla cpu con un unico accesso alla memoria
(16, 32, 64, 128 bit)
Piu’ grande e la word, maggiore e’ la
potenza del computer.
Attenzione – non influisce sullo spazio di
indirizzamento - l’unità indirizzabile rimane
sempre il byte.
   
Memoria ROM
ROM = Read Only Memory (Memoria di sola
lettura)
• Non può essere modificata
• A differenza della RAM non è volatile
• Veloce come la RAM
• Usata per memorizzare programmi e istruzioni
di uso particolare
– programmi di boot (accensione)
– configurazione del sistema
   
Il processore e la memoria principale

   
I registri
All’interno del processore ci sono due tipi di
registri:
Registri speciali usati dall'unità di controllo per
scopi particolari, ad esempio il registro Program
Counter, il Registro Istruzioni, il Registro di Stato e
i registri di comunicazione con la memoria;
Registri generali (o aritmetici) usati per salvare
risultati parziali durante il corso dell'elaborazione.

   
I registri (P.C.)
Il Program Counter (PC)
Come abbiamo già detto il processore esegue, ad
ogni ciclo, un'istruzione prelevata dalla memoria
principale. Il problema diventa quello di conoscere
l'indirizzo della cella di memoria in cui si trova la
prossima istruzione da eseguire: questo
indirizzo è memorizzato nel registro Program
Counter (PC).

   
Registri (RI e RS)
Registro Istruzioni (RI) contiene l'istruzione
attualmente in esecuzione.
Ad ogni ciclo di clock l'istruzione letta dalla memoria
principale viene scritta nel registro istruzioni RI.  
Il Registro di Stato (PS) contiene le informazioni sullo
stato di esecuzione del processore e può segnalare
eventuali errori avvenuti durante l'esecuzione. Vi
sono diversi tipi di errori che possono avvenire nel
corso dell'esecuzione di un programma. Ad esempio
overflow.

   
Registri generali
Registri generali - sono in genere sedici o
trentadue e servono come memoria temporanea
per le operazioni interne del processore.

Le dimensioni dei registri coincidono con quelle


delle parole di memoria.

   
Registri (RIM,RDM e RC)
Registro Indirizzi Memoria (RIM), mediante il quale il
processore può specificare l'indirizzo della cella
su cui vuole operare
Registro Dati Memoria che contiene
(RDM)
l'informazione letta dalla memoria o quella che
deve essere scritta nella memoria
Registro di Controllo (RC) mediante il quale il
processore specifica l'operazione che deve
essere eseguita e che, al termine dell'operazione,
viene utilizzato per segnalare eventuali errori
che possono essere avvenuti
   
Collegamento memoria- processore

RC

RIM

MEMORIA RDM
Circuito di
decodifica

   
Il processore (l'ALU)
L'Unità Aritmetico-Logica (ALU) è costituita
da un insieme di circuiti in grado di svolgere
le operazioni di tipo aritmetico e logico.
La ALU legge i dati contenuti all'interno dei
registri generali, esegue le operazioni e
memorizza il risultato in uno dei registri
generali.
I processori oggi in commercio hanno anche un particolare modulo
integrato all’interno del processore chiamato FPU (Floating Point
Unit) o NPU (Numerical Processing Unit) che si occupa di potenziare e
supportare la ALU nelle operazioni matematiche complesse.
   
Il processore (la MMU)
Unità di gestione della memoria (MMU)

Questo modulo, interno alla CPU e gestito


direttamente dall’unità di controllo, si
occupa di tutte le operazioni di
indirizzamento da e verso la memoria.

   
Memoria cache
memoria cache serve per conservare i dati di uso
molto frequente nel transito fra CPU e Memoria
principale. Ha solitamente dimensioni abbastanza ridotte (qualche
centinaio di KB) ed è molto più veloce della RAM. (usa tecnologia
statica)

• Cache interna – o primaria, chiamata cache


L1, realizzata all’interno del circuito della CPU (su
bus veloce)
• Cache esterna – o secondaria, chiamata
cache L2, situata sulla scheda madre, più lenta
ma espandibile.
   
Memoria cache
L’efficacia della cache dipende dai criteri
funzionali adottati.
locality of reference Statisticamente, se il
processore ha letto un dato in memoria, molto
probabilmente avrà bisogno anche di quello
successivo
cache di tipo associativo ossia basate su una
tecnica di accesso alle informazioni logica e non
fisica.

   
Ciclo macchina

   
Ciclo di esecuzione
1) Leggi dalla memoria principale la
prossima istruzione da eseguire

2) Esegui l’istruzione

3)Torna a 1.

   
Terminologia
● Istruzione macchina
● Un'istruzione (o un comando) codificato come una sequenza di 
bit, riconoscibile dalla CPU
● Linguaggio macchina
● L'insieme di tutte le istruzioni macchina

   
Instruction set
● Reduced Instruction Set Computing (RISC)
● Poche, semplici, veloci ed efficenti istruzioni macchina 
disponibili
● Esempi: PowerPC da Apple/IBM/Motorola e SPARK da Sun 
Microsystem
● Complex Instruction Set Computing (CISC)
● Molte, comode e potenti  istruzioni macchina disponibili
● Esempio: Pentium da Intel

   
Tipologia di istruzioni macchina (1)
Istruzioni di lettura dalla memoria. Solitamente
con due argomenti: uno specifica l'indirizzo della
cella di memoria da cui si deve leggere
un'informazione; l'altro il registro in cui
l'informazione deve essere scritta.
Istruzioni di scrittura in memoria. Solitamente
con due argomenti: uno specifica il registro da cui
l'informazione deve essere prelevata; l'altro
l'indirizzo della cella di memoria in cui
l'informazione deve essere scritta.

   
Tipologia di istruzioni macchina (2)
Istruzioni aritmetiche. Permettono di eseguire le
operazioni aritmetiche operando sui dati contenuti nei
registri. Di solito con due o tre argomenti: due specificano
i registri in cui si trovano gli operandi, il terzo specifica il
registro in cui deve essere scritto il risultato. In assenza
del terzo argomento, il risultato viene scritto in uno dei
registri prec edenti.
Istruzioni logiche. Permettono di eseguire le operazioni
logiche sugli operandi contenuti nei registri specificati
come argomenti dell'istruzione. Esempi di operazioni
logiche sono il confronto o l'inversione di bit.

   
Tipologia di istruzioni macchina (3)
Istruzioni di spostamento. Permettono di
spostare le informazioni da una cella di
memoria ad un'altra; gli indirizzi delle due
celle sono gli argomenti dell'istruzione.
Istruzioni di salto. Per spostare il flusso
del programma da un’istruzione ad un’altra
non immediatamente successiva

   
Esempio 1

   
Esempio 2

   
Un esempio di linguaggio macchina

   
Parti di una istruzione macchina
● Campo codice operativo
● Specifica quale operazione eseguire
● Campo operando
● Da' informazioni piu' dettagliate sul tipo di operazione
– Quali sono i valori coivolti
– Dove salvare il risultato

   
Composizione di una istruzione macchina

   
Un semplice linguaggio macchina
Codice Operando Descrizione
operativo
1 RXY Carica nel registro R il valore memorizzato nella cella
XY
2 RXY Carica nel registro R la configurazione di bit XY

3 RXY Memorizza nella cella di memoria il cui indirizzo e'


XY il valore presente nel registro R

4 0RS Copia nel registro S il valore del registro R


5 RST Somma in complemento a 2 le configurazioni di bit
presenti nei registri S e T e pone il risultato in R

6 RST Somma in virgola mobile le configurazioni bit presenti


 
nei registri S e
 
T e pone il risultato in R
Un semplice linguaggio macchina
Codice Operando Descrizione
operativo
7 RST Fai l'OR bit a bit delle configurazioni presenti nei
registri S e T e poni il risultato in R
8 RST Fai l'AND bit a bit delle configurazioni presenti nei
registri S e T e poni il risultato in R
9 RST Fai lo XOR bit a bit delle configurazioni presenti nei
registri S e T e poni il risultato in R

A R0X Ruota X volte la configurazione di bit nel registro R


B RXY Salta all'istruzione contenuta nella cella di memoria
XY se la configurazione di bit in R e' uguale a quella
del registro 0
C 000 Termina l'operazione
   
Decodifica dell'istruzione 35A7

   
Versione codificata dell'esempio  1

   
Istruzioni di salto

   
Esecuzione di un programma
Ad ogni ciclo di clock
- si legge dalla memoria principale l'istruzione che si trova all'indirizzo indicato dal registro PC;
- l'istruzione viene scritta all'interno del registro RI;
- si modifica il valore del PC aumentandolo di 1;
- la UC decodifica l'istruzione e individua la sequenza di azioni che devono essere svolte all'interno del
processore;
- si eseguono le azioni specificate dall'istruzione, e cioè:
5.1 in corrispondenza di istruzioni di lettura dalla memoria, la UC attiva i meccanismi di lettura;
5.2 in corrispondenza di istruzioni di scrittura in memoria, la UC attiva i meccanismi di scrittura;
5.3 in corrispondenza di istruzioni aritmetiche o logiche la UC attiva la ALU per eseguire l'operazione;
5.4 in corrispondenza di istruzioni di salto si modifica il valore del registro PC scrivendo l'indirizzo della
istruzione cui si deve saltare

   
Esecuzione del linguaggio macchina

   
Esecuzione del linguaggio macchina

   
Esecuzione del linguaggio macchina

   
Dischi rigidi (1)
● Il disco rigido e' il componente dove vengono memorizzate in 
modo permanente le informazioni elaborate. Le informazioni 
sono magnetizzate sulla superficie del disco e pertanto 
rimangono memorizzate anche se viene a mancare la corrente. 
Oggi vengono anche usati i cosidetti dischi a stato solido, essi 
non contengono alcun disco sono merie flash (non volatili).

   
Dischi rigidi (2)
● I dati memorizzati su disco rigido segueno uno schema di 
allocazione fisica ben definito in base al quale si puo' 
indirizzare la zona dove leggere/scrivere i dati sul disco. 
Uno schema diffuso e' il cosiddetto CHS acronimo per il 
termine inglese Cylinder/Head/Sector 
(Cilindro/Testina/Settore); in questa struttura i dati sono 
memorizzati avendo come indirizzo fisico un numero per 
ciascuna delle seguenti entita' fisiche.

   
Dischi rigidi (3)
● Piatto: un disco rigido si 
compone di uno o piu' 
dischi paralleli, di cui ogni 
superficie, detta ”piatto” e 
identificata da un numero 
univoco, `e destinata alla 
memorizzazione dei dati.

   
Dischi rigidi (4)
● Traccia: ogni piatto si 
compone di numerosi 
anelli concentrici numerati, 
detti tracce, ciascuna 
identificata da un numero 
univoco. (Indicato A 
nell’immagine).

   
Dischi rigidi (5)
● Cilindro: l’insieme di 
tracce alla stessa distanza 
dal centro presenti su tutti i 
dischi e' detto cilindro. 
Corrisponde a tutte le 
tracce aventi il medesimo 
numero, ma diverso piatto.

   
Dischi rigidi (6)
● Settore: ogni piatto `e 
suddiviso in settori 
circolari, ovvero in 
”spicchi” radiali uguali 
ciascuno identificato da un 
numero univoco. 
(Nell’immagine B individua 
un settore).

   
Dischi rigidi (7)
● Blocco: L’insieme di 
settori posti nella stessa 
posizione in tutti i piatti

   
Dischi rigidi (8)
● Testina: Su ogni piatto `e presente una 
testina per accedere in scrittura o in 
lettura ai dati memorizzati sul piatto; la 
posizione di tale testina e' solidale con 
tutte le altre sugli altri piatti. In altre parole, 
se una testina `e posizionata sopra una 
traccia, tutte le testine saranno 
posizionate nel cilindro a cui la traccia 
appartiene.

   
Dischi rigidi (9)
● Cluster: 
raggruppamento di settori 
contigui.

   
Comunicare con altri dispositivi
● Controller: un apparato intermedio che gestisce le 
comunicazioni tra la CPU e il dispositivo
● Controller specializzati per dispositivi specifici
● Controller in grado di gestire piu' dispositivi (es. USB o 
FireWire)
● Porta: il punto in cui il dispositivo e' connesso al computer
● Memory­mapped I/O: dispositivi I/O gestiti come celle di 
memoria

   
Controller allacciati al bus

   
Memory mapped I/O

porta

   
Comunicare con altri dispositivi
● Direct Memory Access (DMA): la memoria 
principale e' acceduta direttamente dal controller 
attraverso il bus
● Collo di bottiglia di Von Neumann: 
competizione tra i dispositivi per accedere al bus
● Handshake: il processo di coordinamento tra vari 
dispositivi che si scambiano tra loro dati

   
Comunicazione con altri dispositivi
● Comunicazione parallela: diversi bit vengono 
trasferiti contemporaneamente su linee separate
● Comunicazione seriale: trasefrimento di un singolo 
bit per volta

   
Controller
● Controller onboard dispositivi periferici (oppure onchip per dispositivi mobili).
● I dischi rigidi e dischi ottici (CD/DVD ...) vengono pilotati tramite un controller posto 
sulla scheda madre di tipo SCSI, EIDE, PATA o SATA, . . .
● La scheda video oggigiorno non e' piu pilotata da un controller, ma a `e sua volta dotata di 
una CPU dedicata (chiamata GPU, i.e. processore grafico), di memoria ram e di un suo bus.
● Negli smartphone il chipset, include il contoller del modem GPRS (2G) e/o un modem 
HDSPA/HSUPA (3G)
● Il controller ethernet per la connessione di rete via cavo
● I controller Wifi oppure Bluetooth connessione di rete senza fili. La prima consuma di piu 
ma fornisce maggior banda e copertura (area di azione). Il bluetooth `e sostanzialmente stato 
crato per piccoli dispostivi con limitata autonomia energetica.

   
Connettori esterni
● I connettori esterni consentono la connessione di molti dispositivi esterni
● Le uscite VGA, DVI, HDMI servono a connettere monitor (o televisori) 
controllandoli con segnali analogici e/o digitali e risoluzioni differenti, ossia con un 
differente protocollo.
● Le porte USB sono le porte fondamentali che permettono di connettere tastiere, 
mouse, stick­memory, modem HDSPA, bluetooth­extension, scanner, stampanti, 
ecc... Attenzione, ci sono vari standard USB con caratteristiche diverse.
● La porta FireWire fornisce concettualmente le stesse funzionalita della porta 
USB, sebbene sia piu performante.
● La porta RJ­45 e' lo standard per la connessione di rete, le porte PS/2 (oggi 
spesso sostituite da porte USB) permettono la connessione a mouse e tastiera.
● In passato erano diffuse anche le porte seriali per il mouse e parallela per la 
stampante.
   
Video (1)
● La scelta del monitor dipende da: consumo, ingombro, fedelta nella 
riproduzione, costo, tipo di utilizzo, …
● In principio vi erano i monitor CRT (tubo a raggi catodici): per intenderci, quegli 
scatoloni, ingombranti e pesanti. Un cannone elettronico ”sparava” fasci di elettroni 
(3 per pixel, uno per ciascun colore RGB) sullo schermo, in modo da “dipingere”, 
passata dopo passata (con “pennellate” davvero veloci), l’intera superficie dello 
schermo. Il fascio veniva deviato da magneti, iniziando dal bordo superiore dello 
schermo e procedendo riga per riga, fino a riprodurre tutti i pixel. I CRT sono 
analogici, e non sono quindi predisposti per connessioni digitali come HDMI o DVI, 
presente invece nei televisori LCD o al plasma.

   
Video (2)
● La scelta del monitor dipende da: consumo, ingombro, fedelta 
nella riproduzione, costo, tipo di utilizzo, …
● In seguito, sono arrivati i display LCD (a cristalli liquidi), 
contenenti appunto uno strato di cristalli liquidi che possono diventare 
piu' o meno trasparenti a seconda della corrente elettrica applicata a 
ciascun punto. Anche in questo caso per formare il colore si parte dai 
tre colori di base (rosso, verde, blu ! RGB), ma qui non vi `e un fascio 
che percorre lo schermo. I pixel non si illuminano da soli: `e 
necessario uno strato di illuminazione posto dietro lo strato di cristalli 
liquidi (per questo si parla di retroilluminazione).

   
Video (3)
● La scelta del monitor dipende da: consumo, ingombro, 
fedelta nella riproduzione, costo, tipo di utilizzo, …
● Nei televisori al plasma (utilizzati, appunto, solo come 
televisori, non monitor per pc) i colori derivano ancora dalla 
combinazione di celle dei tre colori di base, ma in questo caso 
non vi sono cristalli liquidi quanto celle contenenti il plasma, un 
gas che si illumina quando alla sua cella viene applicata una 
corrente elettrica. Hanno una diagonale minima di 32 pollici.

   
Video (4)
● La scelta del monitor dipende da: consumo, ingombro, fedelta 
nella riproduzione, costo, tipo di utilizzo, …
● Gli schermi OLED, dotati di piccoli diodi luminosi che emettono 
direttamente la luce (non necessitano di retroilluminazione) 
riproducendo immagini nitide e ben contrastate, oppure i SED, che 
utilizzano milioni di celle che, sottoposte all’azione di una tensione 
elettrica, emettono particelle elettricamente cariche. In entrambi i 
casi, le minuscole celle producono “luci” RGB per comporre ciascun 
pixel dell’immagine finale.

   
Tastiera