un controller presiede alla comunicazione fra il sistema CPU+memoria e
dispositivi periferici di uno stesso tipo (ad es., stampanti, dischi,
monitor etc.)
usualmente è una scheda alloggiata
in una slot della scheda madre
(ingl. motherboard ),
attraverso cui accede al bus
spesso dispone di propria memoria e unità di controllo
(progettata ad hoc per il tipo di
dispositivo periferico)
memory-mapped I/O :comunicazione CPU-controller mediante istruzioni
di trasferimento dati a indirizzi riservati
(porte di I/O )
STORE: CPU → controller
LOAD: controller → CPU
DMA (direct memory access):
trasferimento di blocchi di dati
fra memoria e controller senza intervento della CPU
velocità di trasferimento dei bit fra due dispositivi
multipli usuali: Kbps, Mbps, Gbps, etc.
capacità o larghezza di banda (bandwidth) di un canale di comunicazione:
massima velocità di trasferimento dei bit
fra due dispositivi attraverso il canale
tipi di canale di comunicazione:
seriale:
trasferimento sequenziale, un bit alla volta (più semplice, più lenta)
parallela:
trasferimento simultaneo di più bit su linee fisiche distinte
(più complessa, più rapida)
modem
(modulatore-demodulatore):
dispositivo di conversione e riconoscimento dei bit nella/dalla
rappresentazione in toni di frequenza in uso nei canali telefonici
si accelera l'esecuzione di un programma sequenziale sfruttando
l'alternanza, nel ciclo macchina, di:
fasi in cui la CPU accede al bus: prelievo, esecuzione di un'istruzione
di trasferimento dati
fasi in cui la CPU non accede al bus: decodifica, esecuzione di un'istruzione
logico/aritmetica
con due processori in pipeline
("incanalati") si anticipa il prelievo dell'istruzione successiva
(pre-fetch ) da parte di
uno dei due, mentre l'altro decodifica
l'istruzione corrente
ciò è sempre efficace, tranne quando
l'istruzione corrente è un'istruzione di controllo, la cui esecuzione altera
la sequenza di esecuzione rispetto a quella di memorizzazione
la limitata capacità del bus ne fa il
collo di bottiglia dell'architettura Von Neumann
le architetture multiprocessore risultano
efficaci all'accelerazione dell'esecuzione di algoritmi paralleli, grazie
anche alla disponibilità di più canali di comunicazione delle istruzioni e/o dei dati
architetture sincrone:
SIMD :Single Instruction, Multiple Data
MIMD :Multiple Instruction, Multiple Data
architetture asincrone:
cluster ("grappolo")
di processori, ciascuno con propria memoria locale, che cooperano attraverso opportuni
protocolli, ad es. MPI: Message Passing Interface
Architettura di calcolo e dissipazione termica
La complessità dell'architettura di una CPU spesso, ma non
sempre, comporta maggiore consumo energetico e dissipazione
termica. Può essere interessante approfondire le cause principali
di inefficienza energetica di un'architettura di calcolo.
Microprogrammazione e RISC
La tecnica della microprogrammazione è stata inizialmente proposta già
nel 1957, da Maurice Wilkes, ma non risultò di impiego pratico con le
tecnologie dell'epoca. In seguito, invece, già dagli anni '60, l'idea
trovò largo impiego, nel progetto di architetture CISC come pure di
controller sofisticati.
Si può indagare ulteriormente l'argomento per approfondire,
ad esempio, perché la microprogrammazione non
sia adatta alle architetture RISC, e quali siano le tecniche
impiegate con più vantaggio in queste architetture.
Bus di comunicazione con dispositivi periferici
La crescente varietà di dispositivi periferici per le funzioni più
disparate ha fatto emergere l'esigenza di una standardizzazione
dei canali di comunicazione fra controller
e dispositivi periferici. Una ricognizione sugli standard più diffusi,
quali SCSI, IDE, USB, può essere utile.
Supercomputers
Questo termine designa sistemi di calcolo di altissime prestazioni.
Naturalmente, le cifre prestazionali sono relative al periodo storico: le
prestazioni di un supercomputer degli
anni '60 non distano molto da quelle di un PC odierno, mentre i
supercomputer attuali possono constare
di decine di migliaia di processori operanti in parallelo. Può essere
interessante esplorare lo stato dell'arte nel settore e alcune
applicazioni di questi "mostri".