# data[].attributes.headline
SCHEMA SPIEGAZIONE E DIFFERENZE ARCHITETTURE VON NEUMANN E HARVARD 

# data[].attributes.subject
SCHEMA SPIEGAZIONE E DIFFERENZE ARCHITETTURE VON NEUMANN E HARVARD 

# data[].attributes.body
il link porta ad una pagina di prezi con uno schema interattivo sulle due architetture:
http://prezi.com/coqlhxnzek4t/?utm_campaign=share&utm_medium=copy&rc=ex0share

# data[].attributes.headline
Confronto tra architetture Harvard e Von Neumann

# data[].attributes.subject
Confronto tra architetture Harvard e Von Neumann

# data[].attributes.body
Di Francesco Antonio Vicedomini

1. L'architettura
L'architettura è un insieme di regole che servono a progettare e realizzare un sistema informatico.
L'architettura si divide in architettura hardware e software, ci si focalizzerà sull'architettura hardware;
Per architettura hardware si intende un insieme di regole secondo le quali viene progettato un computer, che spiega le relazioni fra le parti interne.

2. L'architettura Harvard
In informatica l'architettura Harvard è un tipo di architettura hardware in cui vi è la separazione tra la memoria dati e la memoria delle istruzioni. Il termine inizialmente indica l'architettura del computer Harvard Mark I, un computer basato su relè che memorizzava le istruzioni su un nastro perforato mentre i dati venivano memorizzati in un contatore elettromeccanico a 23 cifre. Questa macchina non era dotata di un'unità di immagazzinamento dei dati, questi erano interamente memorizzati dalla CPU e il loro caricamento e salvataggio era un processo eseguito in modo manuale agendo sui contatori.
In un'architettura Harvard le memorie dati e quelle delle istruzioni possono essere anche differenti, con tecnologie d'implementazione e timing diversi.
Negli ultimi anni la velocità dei processori è aumentata in modo considerevole, ma lo stesso non è accaduto al tempo di accesso delle memorie.
Le memorie oramai sono decine di volte più lente dei processori. Se il microprocessore dovesse accedere per ogni istruzione alla memoria si avrebbe un notevole calo delle prestazioni. Per evitare questo i processori integrano al loro interno una memoria molto veloce chiamata cache. Dentro la cache vengono copiati i dati e le istruzioni utilizzate più di frequente in modo da ridurre in modo determinante gli accessi alla memoria principale. Praticamente tutti i moderni processori internamente seguono l'architettura Harvard dividendo la cache in cache dati e cache istruzioni in modo da poter accedere in parallelo alle due cache e migliorare le prestazioni. Esternamente comunque i processori accedono con un solo bus alla memoria principale e quindi si comportano come la classica architettura di von Neumann.

3. L'architettura Von Neumann
Quella di Von Neumann è un'architettura hardware per computer digitali progammabili a programma memorizzato, la cui peculiarità principale è quella di condividere memoria dati e memoria istruzioni.
Per questo motivo l'architettura di Von Neumann può, però, essere considerata opposta a quella di Harvard, nella quale invece istruzioni e dati vengono salvate in due memorie separate.

I componenti fondamentali dell'architettura sono cinque, ovvero:

CPU, che si divide a sua volta in

Unità operativa, nella quale uno dei sottosistemi più rilevanti è l'unità aritmetica e logica (o ALU)

Unità di controllo

Unità di memoria, intesa come memoria di lavoro o memoria principale (RAM, Random Access Memory)

Unità di input, tramite la quale i dati vengono inseriti nel calcolatore per essere elaborati

Unità di output, necessaria affinché i dati elaborati possano essere restituiti all'operatore

Bus, un canale che collega tutti i componenti fra loro

All'interno dell'ALU è presente un registro detto accumulatore, che fa da ponte tra input e output grazie a una speciale istruzione che carica una parola dalla memoria all'accumulatore e viceversa.

Questa architettura si differenzia per la caratteristica di immagazzinamento all'interno dell'unità di memoria sia per i dati dei programmi in esecuzione che per le istruzioni di questi ultimi.

# data[].attributes.headline
ARCHITETTURA VON NEUMANN E ARCHITETTURA HARVARD

# data[].attributes.subject
ARCHITETTURA VON NEUMANN E ARCHITETTURA HARVARD

# data[].attributes.body
ARCHITETTURA VON NEUMANN:

L’architettura di von Neumann 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; 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 programmi, 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.

ARCHITETTURA HARVARD

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.
Inoltre, 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.
LAVORO DI BELLONIA MARZIO

# data[].attributes.headline
Architettura Von Neumann e Harvard (Annalisa Fiorda, Lorenzo Mille)

# data[].attributes.subject
Architettura Von Neumann e Harvard (Annalisa Fiorda, Lorenzo Mille)

# data[].attributes.body
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 può essere comune a dati e indirizzi, ma anche suddiviso in due parti. Questa struttura è comune a gran parte dei sistemi a microprocessore.

Gli elementi fondamentali dell' architettura di von Neumann sono:

1  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)

2  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

3   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)

4    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.

L'architettura 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.  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.

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, la memoria può essere segmentata in pagine e banchi.

# data[].attributes.headline
ARCHITETTURA HARVARD & ARCHITETTURA VON NEUMANN 

# data[].attributes.subject
ARCHITETTURA HARVARD & ARCHITETTURA VON NEUMANN 

# data[].attributes.body
(by Leonardo Forcina 3°BI)
La differenza sostanziale che c’è tra le due architetture è la seguente: nell’architettura di Von Neumann c’è un unico banco di memoria che racchiude Program memory e Data memory, quindi la CPU è costretta a fare la fase di fetch-exec in modo sequenziale. Nell’architettura Harvard possiamo invece distinguere i due banchi di memoria in modo tale che la fase di fetch può sovrapporsi a quella di exec e viceversa.

L’architettura Harvard si può trovare in dispositivi nei quali si sa all’incirca qual è la grandezza del programma e qual è quella dei dati.
Nei nostri computer c'è una CPU con architettura Von Neumann, dato che, il processore è general purpose e quindi la dimensione del programma o dei dati che esso andrà ad utilizzare può variare.

ARCHITETTURA HARVARD
In un un'architettura Harvard le memorie per i dati e per le istruzioni possono essere differenti, con timing differenti per esempio. In un'architettura di von Neumann la CPU legge le istruzioni e i dati dalla memoria utilizzando lo stesso bus, quindi quando la CPU carica un'istruzione non può contemporaneamente caricare anche un dato. Mentre in un'architettura Harvard il processore è in grado di accedere in modo indipendente a dati e istruzioni dato che questi sono memorizzati in memorie separate. Quest'architettura quindi può eseguire più compiti contemporaneamente dato che può parallelizzare le operazioni di lettura e scrittura della memoria. Negli ultimi anni la velocità dei processori è aumentata considerevolmente ma le memorie oramai sono decine di volte più lente rispetto ai processori. I processori integrano una memoria molto veloce chiamata cache. Per non dover accedere alla memoria per ogni istruzione. Tutti i processori moderni internamente seguono l'architettura Harvard dividendo la cache, in cache dati e cache istruzioni in modo da poter accedere in parallelo alle due per migliorare le prestazioni. L'architettura Harvard viene spesso utilizzata in processori specializzati. Quindi l'architettura Harvard è un tipo di architettura hardware per computer digitali in cui vi è separazione tra la memoria contenente i dati e quella contenente le istruzioni.

ARCHITETTURA VON NEUMANN
L'architettura di von Neumann è una tipologia di architettura hardware per computer digitali programmabili a programma memorizzato la quale condivide i dati del programma e le istruzioni del programma nello stesso spazio di memoria. Per questo l'architettura di von Neumann si contrappone all'architettura Harvard nella quale i dati del programma e le istruzioni del programma sono memorizzati in spazi di memoria distinti. L'importanza dell'architettura di von Neumann è notevole in quanto è l'architettura hardware su cui è basata la maggior parte dei moderni computer programmabili. Un computer basato sull'architettura di von Neumann è detto "modello di von Neumann" oppure come la chiamò lui stessio "stored-program computer " ovvero computer con programma memorizzato.
Lo schema si basa su cinque componenti fondamentali:
1.    CPU che si divide a sua volta in:

ALU

Unità di controllo;

2.    RAM;
3.    Unità di input, tramite la quale i dati vengono inseriti nel calcolatore per essere elaborati;
4.    Unità di output, necessaria affinché i dati elaborati possano essere restituiti all'operatore;
5.    Bus, un canale che collega tutti i componenti fra loro.

È importante sottolineare che questa architettura si distingue per la caratteristica di immagazzinare all'interno dell'unità di memoria, sia i dati dei programmi in esecuzione che il codice di questi ultimi. Basti pensare che i moderni computer di uso comune sono progettati secondo l'architettura Von Neumann. Difatti essa regola non solo gli insiemi, ma l'intera architettura logica interna, ovvero la disposizione delle porte logiche che sono circuiti integrali in grado di implementare una particolare operazione logica.

# data[].attributes.body
MODELLO VON NEUMANN

Il modello  di Von Neumann è una tipologia di architettura hardware per computer digitali programmabili a programma memorizzato la quale condivide i dati del programma e le istruzioni del programma nello stesso spazio di memoria. Per tale caratteristica l'architettura di Von Neumann si contrappone all'architettura Harvard nella quale invece i dati del programma e le istruzioni del programma sono memorizzati in spazi di memoria distinti.
L'importanza dell'architettura di Von Neumann è notevole in quanto è l'architettura hardware su cui sono basati la maggior parte dei moderni computer programmabili. E se si pensa che è stata sviluppata più di settant'anni fa si può comprendere quanto erano notevoli anche le capacità di chi l'ha concepita. Primi fra tutti J. Presper Eckert e John Mauchly, principali progettisti anche dell'ENIAC.

MODELLO HARVARD

Il modello Harvard è un tipo di architettura hardware per computer digitali in cui vi è separazione tra la memoria contenente i dati e quella contenente le istruzioni. Il termine inizialmente indicava l'architettura del computer Harvard Mark I, un computer basato su relè che memorizzava le istruzioni su un nastro perforato mentre i dati venivano memorizzati in un contatore elettromeccanico a 23 cifre. Questa macchina non era dotata di un'unità di immagazzinamento dei dati, questi erano interamente memorizzati dalla CPU e il loro caricamento e salvataggio era un processo eseguito in modo manuale agendo sui contatori.

# data[].attributes.body
Qui potete scrivere la differenza e i vantaggi svantaggi delle architetture.

# data[].attributes.headline
Le differenze tra l'architettura di Von Neumann e Harvard

# data[].attributes.subject
Le differenze tra l'architettura di Von Neumann e Harvard

# data[].attributes.body
La differenza sostanziale che c’è tra le due architetture è la seguente: Nell’architettura di Von Neumann c’è un unico banco di memoria che racchiude Program memory e Data memory, di conseguenza la CPU è costretta a fare la fase di fetch-execute(la prima delle tre fasi fondamentali dell'elaborazione sequenziale di un programma per calcolatori elettronici.) in modo sequenziale; Nell’architettura Harvard possiamo invece distinguere i due banchi di memoria in modo tale che la fase di fetch può sovrapporsi a quella di exec e viceversa.

Comunemente l’architettura Harvard possiamo trovarla in dispositivi nei quali sappiamo all’incirca qual è la grandezza del programma e qual è quella dei dati.

Nei nostri computer vi è una CPU con architettura Von Neumann, dato che, il nostro processore è general purpose e quindi la dimensione del programma o dei dati che esso andrà ad utilizzare può variare.

{DMNM}