自分のコンピューターがハーバードアーキテクチャかフォンノイマンアーキテクチャかをどのように確認できますか?


12

2つのアーキテクチャの違いは、ハーバードアーキテクチャの命令とデータの分離であることを理解しています。しかし、どのタイプのシステムを使用しているかをどのようにして知ることができますか?システムがフォン・ノイマンかハーバードかを決定するようなプログラムを書くことは可能ですか?別のアーキテクチャがありますか、またはこれらのアーキテクチャのみが知られていますか?


3
ハーバードアーキテクチャの現代使用。通常使用される他のすべてはフォンノイマンです。
ロバートハーヴェイ

1
現代のシステムも厳密にはフォン・ノイマンではありません。GPUやその他すべてのことについて考える:)
ヨハネス

1
他の種類のアーキテクチャがあります。データフローアーキテクチャは私のお気に入りです。しかし、あなたは野生でそれを見ることはほとんどありません。
マーティンヨーク

1
あなたが本当に本当に低レベルの何かをしているのでなければ、なぜ違いを知る必要があるのか​​わかりません(自己修正コードを書いていますか?)。最新のマシンのほとんどはvon-Neumannですが、OSは通常、コードページへの誤った(悪意のある)変更を防ぐためにデータページとは異なるコードページをマークします。
マーティンヨーク

回答:


13

お使いのコンピューターはフォンノイマンマシンです。 すべての汎用コンピューターがあります。唯一の例外は、GPUなどの特殊なコプロセッサーです。ハーバードマシン(またはその他のアーキテクチャ)を使用できないわけではありません。誰もそれらを構築しない、特に非売品だ(モジュロコプロセッサ、もちろん)。


3
これは確かに定義に依存します。かなり時代遅れの二分法を分法に置き換えると、現在のほとんどの汎用コンピューターは修正ハーバードアーキテクチャです。
maaartinus

3
多くの組み込みマイクロコントローラはハーバードアーキテクチャを使用しています。通常、これらは何らかの種類のコードまたはROMまたはフラッシュメモリからコードを実行しますが、コードとデータに共通のバスを使用してもほとんど得られません。
supercat

6

現在のほとんどの汎用CPUは、Modified Harvard Architectureを使用しています。CPUコアは、個別のL1キャッシュでプログラムとデータに個別にアクセスできます。外部には、個別のプログラムメモリとデータメモリはありません(他のキャッシュレベルも分離されていません)。

別のアーキテクチャがありますか、またはこれらのアーキテクチャのみが知られていますか?

他のすべてのアーキテクチャは、使用がかなり制限されています。プロセッサの開発に伴う極端な複雑さとコストのために、誰も再び真剣に試すとは思わない。

ただし、最新のCPUは基本的にフォンノイマンですが、内部にはDataflow Architectureなどの多くのアイデアが組み込まれています。


4

フォンノイマンとハーバードの両方のアーキテクチャは、制御フローパラダイムに属します。

別のパラダイム、データフローがあります。

データフローコンピューティングの一般的な例は、制御フローコンピューターに実装されていますが、スプレッドシート(VisicalcおよびMultiplanからExcelまで)です。

ニューラルネットワークもこのカテゴリに属します。

FPGAは、データフローアーキテクチャのもう1つの例です。VHDLなどのハードウェア記述言語でプログラムされています


3

ハーバードアーキテクチャは通常、プログラムがオンボードeepromメモリに格納されている組み込みマイクロプロセッサでのみ使用されます。表示される可能性があるのは、Arduinoで使用されているAtmel AVRのみです


1

プログラムするとき:メモリ領域を変更し、そこにジャンプして実行します。

Havardの場合はできません。


または、W ^ Xメモリマネージャを備えたVon Neumannマシンの場合があります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.