Sei sulla pagina 1di 7

Definizione e ambito della disciplina

ARCHITETTURA DEI
CALCOLATORI
La struttura gerarchica dei sistemi di elaborazione

I sistemi di elaborazione sono dei tipici esempi di sistemi gerarchici, sistemi, cioè,
in cui sono presenti contemporaneamente molti livelli di macchina interagenti fra
loro. In questo tipo di sistemi, un partizionamento in componenti è dettato, oltre che
da motivi funzionali, anche dall’esigenza di stabilire diversi livelli di efficienza e, al
tempo stesso, di efficacia e di flessibilità nella risoluzione dei problemi.
Infatti, ogni sovrastruttura implica necessariamente una perdita di efficienza. Così,
nei sistemi di elaborazione, più basso è il livello a cui viene risolto il problema, più
difficile è la sua rappresentazione, ma più efficiente ne risulta l’elaborazione.
Ognuno dei livelli di macchina (virtuale o reale) costiuisce un sottosistema a sé che
deve essere studiato ed analizzato nei suoi componenti e nelle connessioni che
legano tali componenti. Ogni livello, però, è in relazione nella struttura gerarchica,
con il livello sovrastante e con quello sottostante. Al livello superiore fornisce
“servizi”, mentre utilizza quello inferiore. Anzi, si può dire che, per ogni livello, è
quello immediatamente sottostante che ne rende possibile il funzionamento, sino a
giungere all’ultimo livello, quello di macchina reale, che rende possibile il
funzionamento di tutti quelli sovrastanti.
I livelli di un sistema di elaborazione
Instruction Set Architecture

Col termine “architettura” si intende la definizione del confine fra due livelli di
macchina nell’ottica gerarchica dei sistemi di elaborazione.
Esistono, così, diverse architetture, tante quante sono i livelli di macchina.
Fra queste, l’architettura di calcolatore definisce il confine fra il complesso di
hardware e firmware da un canto e il livello di linguaggio di macchina dall’altro.
Di conseguenza, per molti anni l’architettura di calcolatore è stata considerata la
macchina così come appare al programmatore in linguaggio di macchina (ISA –
Instruction Set Architecture); dunque, include tutte le caratteristiche e i dettagli
che si possono manipolare a questo livello.
Seguendo questa definizione, non fanno parte della disciplina i dettagli che
riguardano l’implementazione né le caratteristiche strutturali, come per esempio
la rete logica di flusso dei dati (data path), la microprogrammazione e le
partizioni di progetto VLSI.
Architettura di calcolatore
La definizione precedente era valida finché l’organizzazione dei calcolatori non ha
subito fortemente l’influenza dei sistemi operativi e dei compilatori dei linguaggi
ad alto livello.
Entrambi sono, infatti, degli “utenti” importanti di architetture di calcolatore, e in
quanto tali, devono essere presi in considerazione quando si tratta di specificare il
confine con l’hardware e il firmware del calcolatore.
Le esigenze dei compilatori e del sistema operativo sono di natura diversa rispetto a
quelle che risultavano dai programmatori in linguaggio assemblativo o di
macchina. Tuttavia, questi contribuiscono tutti oggi all’elaborazione di una
definizione dell’architettura di calcolatore.
Sebbene il concetto di implementazione sia diverso da quello di architettura, ciò
nonostante influisce sulla sua definizione. E’ del tutto irrealistico, e sicuramente
fuorviante, definire un’architettura di calcolatore senza considerare le sue
possibilità di implementazione, cioè, in altre parole, senza sfruttare al massimo le
tecnologie attuali.
Architettura di calcolatore

Perciò, benchè l’architettura non comprenda i particolari dell’implementazione, ne


risente l’influenza, così come risente l’influenza dei compilatori dei linguaggi ad alto
livello e dei sistemi operativi. L’implementazione costituisce un altro “vicino”
dell’architettura di calcolatore.
Se l’ambito di una disciplina deve comprendere tutta la quantità di conoscenze
necessarie per una sua definizione completa, allora l’architettura di calcolatore
dovrebbe aprire i suoi confini in modo da incorporare tutte quelle caratteristiche dei
compilatori dei linguaggi ad alto livello, dei sistemi operativi e
dell’implementazione che si trovano esposte direttamente alle prestazioni
dell’hardware e del firmware.
Testi consigliati
1. M.De Blasi. Architettura dei calcolatori. Fratelli Laterza, Bari.
2. John L. Hennessy, David A. Patterson, Architettura degli
elaboratori, Apogeo.