Architettura Harvard
|
Alcuni tra i primi sistemi di elaborazione dati sono stati realizzati secondo le teorie fondate da
Neumann
(1903 - 1957), detta architettura di von
Neumann. |
|
Essa prevede che le varie componenti del sistema siano
interconnesse tra di loro attraverso un bus.
Questo bus potrà essere comune a dati e indirizzi, ma anche
suddiviso in due parti, una certa quantità di linee per i dati e altre
linee per gli indirizzi; e comprendere anche bus o sezioni di bus
contenenti i segnali di controllo e sincronismo del colloquio tra le
varie componenti.
Questa struttura è comune a gran parte dei sistemi a
microprocessore. |
Gli elementi fondamentali dell' architettura di von Neumann sono:
- l' unità centrale, o CPU (Central Processor Unit) di cui fanno
parte
- L' ALU (Aritmethic Logic Unit) preposta all' esecuzione delle
operazioni logico-aritmetiche
- il sistema di controllo che gestisce il flusso delle operazioni
(sincronismi, Program Counter, ecc)
- Una unità di memoria, che può comprendere la memoria di lavoro
(RAM - Random Access Memory), la memoria programmai, eventuali firmware su
chip (ad esempio i BIOS), memoria non vaolatile, ecc
- Unità periferiche che permettono la ricezione di dati dall'
esterno (input) e l' emissione dei risultati dell' elaborazione (output) e
di cui fanno parte anche le memorie di massa (dischi, nastri, ottici, ecc)
- Il BUS, ovvero il sistema di interconnessioni che unisce le varie
parti
Questa architettura ha la caratteristica di immagazzinare all'interno
dell'unità di memoria sia i dati sia il codice dei programmi in esecuzione.
Il fatto di dovere accedere alla memoria programma e a quella dati su un unico
canale di interconnessione può costituire un collo di bottiglia: l'
esecuzione di una istruzione richiede almeno due cicli macchina.
Questa schematizzazione è molto sintetica, in quanto il modello originale,
risalente agli anni '30 è stato soggetto di ampi sviluppi: anche i moderni personal
computer sono progettati secondo l'architettura Von Neumann.
|
Nei microcontrollori, e in particolare nei PIC, invece, è
stata scelta una differente struttura, quella elaborata alla Harvard
University. |
|
L'architettura è di tipo Harvard dispone di bus separati per dati e
periferiche e un' altro per le istruzioni.
Quindi, la gestione della memoria dati e delle istruzioni avviene su
circuiti separati. L' unità centrale può effettuare un accesso ai due
bus contemporaneamente e, sfruttando sistemi di pipeline, si può
eseguire una istruzione per ogni ciclo macchina.
I due bus possono avere ampiezze diverse: ad esempio, nei PIC con bus
dati a 8 bit, il bus istruzioni può essere ampio 12, 14 o 16 bit.
Questa struttura si presenta come la più adeguata a macchine RISC. |
Però, l'aumento di velocità viene
compensato dalla presenza di circuiti più complessi all'interno del processore.
Risulta quindi adatta a sistemi embedded, dove le interconnessioni e le
logiche di controllo fanno parte di un unico substrato, più che a sistemi a
schede inseriti su bus esterni.
Una nota particolare va fatta a riguardo dell' architettura RISC: la struttura
di una istruzione RISC contiene oltre al significato dell' istruzione stessa
anche l'indirizzo di memorizzazione o di salto o il dato.
In queste condizioni,
onde non far crescere l'ampiezza del bus istruzioni (costo e complessità), la
memoria può essere segmentata in pagine e banchi. Per cambiare segmento o banco
in uso occorre agire su appositi registri, fatto che complica la programmazione
dei PIC nell' uso di linguaggio Assembly.
Questo problema è meno sentito nel caso di impiego di linguaggi di alto livello,
che possono integrare meccanismi automatici di gestione delle pagine e dei
banchi, oppure di Macro Assembler che permettono di implementare meccanismi
analoghi.
Questo problema pagine/banchi è presente nei PIC delle famigli
Base-line e Mid-range, mentre è attenuato o irrilevante in quelle successive.
E questa è una ragione per cui consigliamo di iniziare la sperimentazione sui
PIC partendo dai PIC18F e non dai PIC16F.
|