Como posso saber se meu computador é da arquitetura Harvard ou von Neumann?

12

Entendo que a diferença entre as duas arquiteturas é a separação de instruções dos dados na arquitetura de Harvard. Mas como sei em que tipo de sistema estou? É possível escrever um programa para que ele determine se o sistema é von Neumann ou Harvard? Poderia haver outra arquitetura ou essas arquiteturas são as únicas conhecidas?

Niklas
fonte
3
Usos modernos da arquitetura de Harvard . Tudo o mais em uso típico é Von Neumann.
Robert Harvey
1
Embora os sistemas modernos também não sejam estritamente von-Neumann. pensamento sobre GPUs e todas essas outras coisas :)
Johannes
1
Existem outros tipos de arquitetura. A arquitetura de fluxo de dados é a minha favorita. Mas é improvável que você o veja na natureza.
Martin York
1
A menos que você esteja fazendo algo realmente muito baixo, não sei por que você precisaria saber a diferença (você está escrevendo um código de modificação automática?). Embora a maioria das máquinas modernas seja von-Neumann, o sistema operacional normalmente marca as páginas de código de maneira diferente das páginas de dados para impedir modificações acidentais (maliciosas) no código.
Martin York

Respostas:

13

Seu computador é uma máquina von Neumann. Todos os computadores de uso geral são. As únicas exceções são co-processadores especializados, como GPUs. Não é que você não possa ter uma máquina de Harvard (ou qualquer outra arquitetura). Só que ninguém as constrói, principalmente para venda (co-processadores de módulo, é claro).

Ross Patterson
fonte
3
Isso certamente depende da definição. Se você substituir a dicotomia bastante obsoleta por uma tricotomia , a maioria dos computadores de uso geral atuais é a Arquitetura de Harvard Modificada.
Maaartinus 20/12/12
3
Muitos microcontroladores incorporados usam arquiteturas de Harvard. Eles geralmente executam código de algum tipo ou ROM ou memória flash e pouco se ganha usando um barramento comum para código e dados.
Supercat 24/12
6

As CPUs de uso geral mais atuais usam a Arquitetura Harvard Modificada . Os núcleos da CPU podem acessar o programa e os dados independentemente em seus caches L1 separados. Externamente, não há programa e memória de dados separados (nem os outros níveis de cache são separados).

Poderia haver outra arquitetura ou essas arquiteturas são as únicas conhecidas?

Todas as outras arquiteturas são bastante restritas em seu uso. Devido à extrema complexidade e custos associados ao desenvolvimento do processador, acho que ninguém tentaria a sério novamente.

No entanto, embora as CPUs modernas sejam basicamente von Neumann, elas incorporam muitas idéias como a Dataflow Architecture internamente.

maaartinus
fonte
4

As arquiteturas de Von Neumann e Harvard pertencem ao paradigma de fluxo de Controle.

Há outro paradigma, que é o fluxo de dados .

Um exemplo comum de computação de fluxo de dados, embora implementado em computadores de controle de fluxo, é a planilha (do Visicalc e Multiplan ao Excel).

As redes neurais também pertencem a esta categoria.

FPGA são outro exemplo de arquitetura de fluxo de dados. Eles são programados com linguagens de descrição de hardware, como VHDL .

mouviciel
fonte
3

A Harvard Architecture é normalmente usada apenas em microprocessadores incorporados, onde o programa é armazenado na memória eeprom integrada. O único que você provavelmente verá é o Atmel AVR , usado no Arduino

Martin Beckett
fonte
1

Quando você o programa: Modifique uma região de memória e, em seguida, vá para lá e execute-a.

Se é Havard, você não pode fazê-lo.

Do utilizador
fonte
Ou pode ser uma máquina Von Neumann com um gerenciador de memória W ^ X.