Come posso sapere se il mio computer è l'architettura Harvard o von Neumann?


12

Comprendo che la differenza tra le due architetture è la separazione delle istruzioni dai dati nell'architettura di Harvard. Ma come faccio a sapere su quale tipo di sistema sono attivo? È possibile scrivere un programma in modo tale che il programma determini se il sistema è von Neumann o Harvard? Potrebbe esserci un'altra architettura o queste architetture sono le uniche conosciute?


3
Usi moderni dell'architettura di Harvard . Tutto il resto nell'uso tipico è Von Neumann.
Robert Harvey,

1
Mentre i sistemi moderni non sono nemmeno strettamente von-Neumann. pensando alle GPU e tutte quelle altre cose :)
johannes il

1
Esistono altri tipi di architettura. L'architettura del flusso di dati è la mia preferita. Ma è improbabile che tu lo veda allo stato brado.
Martin York,

1
A meno che tu non stia facendo qualcosa di veramente basso livello, non sono sicuro del motivo per cui dovresti conoscere la differenza (stai scrivendo un codice che si modifica da solo?). Anche se la maggior parte delle macchine moderne sono von-Neumann, il sistema operativo di solito segna le pagine di codice in modo diverso dalle pagine di dati per impedire modifiche accidentali (dannose) al codice.
Martin York,

Risposte:


13

Il tuo computer è una macchina von Neumann. Tutti i computer per scopi generici lo sono. Le uniche eccezioni sono i co-processori specializzati come le GPU. Non è che non puoi avere una macchina Harvard (o qualsiasi altra architettura). È solo che nessuno li costruisce, soprattutto non in vendita (co-processori modulo, ovviamente).


3
Questo sicuramente dipende dalla definizione. Se si sostituisce la dicotomia piuttosto obsoleta con una tricotomia , la maggior parte dei computer per scopi generici attuali sono l'architettura di Harvard modificata.
maaartinus,

3
Molti microcontrollori incorporati utilizzano architetture Harvard. Generalmente eseguono codice da qualche tipo o ROM o memoria flash, e poco si otterrebbe usando un bus comune per codice e dati.
supercat

6

La maggior parte delle attuali CPU per usi generici utilizza l'architettura Harvard modificata . I core della CPU possono accedere al programma e ai dati in modo indipendente nelle loro cache L1 separate. All'esterno, non ci sono memorie separate di programma e dati (né gli altri livelli di cache sono separati).

Potrebbe esserci un'altra architettura o queste architetture sono le uniche conosciute?

Tutte le altre architetture sono piuttosto limitate nel loro uso. A causa dell'estrema complessità e dei costi associati allo sviluppo del processore, non credo che nessuno ci proverebbe di nuovo seriamente.

Tuttavia, mentre le moderne CPU sono fondamentalmente von Neumann, incorporano molte idee come Dataflow Architecture internamente.


4

Le architetture di Von Neumann e Harvard appartengono al paradigma del flusso di controllo.

C'è un altro paradigma, che è il flusso di dati .

Un esempio comune di elaborazione del flusso di dati, sebbene implementato nei computer con flusso di controllo, è il foglio di calcolo (da Visicalc e Multiplan a Excel).

Anche le reti neurali appartengono a questa categoria.

FPGA sono un altro esempio di architettura del flusso di dati. Sono programmati con linguaggi di descrizione hardware come VHDL .


3

L'architettura di Harvard viene in genere utilizzata solo nei microprocessori incorporati in cui il programma è archiviato nella memoria eeprom integrata. L'unico che potresti vedere è un AVR Atmel usato nell'Arduino


1

Quando lo si programma: modificare un'area di memoria, quindi saltare lì ed eseguirla.

Se è Havard non puoi farlo.


Oppure potrebbe essere una macchina Von Neumann con un gestore di memoria W ^ X.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.