ハーバード vs. フォン・ノイマン・アーキテクチャ

ハーバード vs. フォン・ノイマン・アーキテクチャ

先生は、ハーバード アーキテクチャは、現在および将来に向けて最も進化し、最も生産されているアーキテクチャであると教えてくれました。しかし、x86 およびフォン ノイマン ベースの ARM システムのオーバーヘッドが大きいため、実際にはフォン ノイマンが現在最も使用されているアーキテクチャであると私は考えています。

はい、ハーバード搭載の MCU はさらに多く生産されていますが、それらはすべて (x86 および ARM ベースと比較して) あまり用途がないため、実際にはフォン ノイマンが重要です。それとも、本当にハーバードなのでしょうか?

2 番目に、これは奇妙な質問だとは思いますが、両方を組み合わせたアーキテクチャは存在するのでしょうか。データとプログラムに別々のメモリを用意し、命令処理を高速化しながらも、これらをフォン ノイマンとして動作できるようにするのでしょうか。プログラムをプログラム メモリにオンザフライでロードおよびアンロードできるようにするのでしょうか。これは x86 が進むべき道ではないでしょうか。それとも、純粋なフォン ノイマンで解決できるボトルネックがあるのでしょうか。ありがとうございます。

答え1

x86 は、その両方を組み合わせたものです。最新のプロセッサの L1 キャッシュを見ると、データ用と命令用に別々のキャッシュがあることに気付くでしょう。また、x86 について Wikipedia で調べてみてください。最新の x86 プロセッサは実際には x86 ではありません。代わりに、x86 命令を独自の内部マイクロコードに変換することで、x86 プロセッサをエミュレートします。実際、Intel のプロセッサの一部では、システムの実行中にマイクロコードを変更することができます。

どちらがより多く生産されているかといえば、PIC や類似のマイクロコントローラのおかげで、ハーバード型だと思います。私が知る限り、フォン ノイマン型の方がプログラミングが簡単なので、内部的にはハーバード型プロセッサ (x86 や一部の PIC など) がフォン ノイマン型として世間に知られることは珍しくありません。

関連情報