| 
 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-aritmeticheil 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, eccUnità 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.
 
 |