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.