ハーバード・アーキテクチャー
読み:ハーバード-アーキテクチャー
外語:harvard architecture

 命令用とデータ用でアドレス空間が完全に分離されているコンピューターのアーキテクチャー。ノイマン型と対比される。
目次

概要
 現在主流で対抗となるノイマン型のCPUは、一つのアドレス空間を共有するメモリーを読み書きする。命令とデータは同じアドレス空間に存在し、このため同時にアクセスすることはできない。
 対してハーバード・アーキテクチャーでは、命令とデータは別の空間にあり、両者の同時アクセスが可能である。命令の実行を終え、その結果を書いている間に次の命令を読み込むことが可能なことから、高速な処理が実現できる。その代わり、二つのアドレスバスを持つことになるため回路が複雑になる。

特徴

設計
 現在のパーソナルコンピューターなどの場合、ハードディスクドライブからRAMにプログラムとデータを読み込み実行するスタイルが一般的である。
 これがノイマン型の特徴であるが、この機構からプログラムとデータを完全に分離することができない。
 対して、組み込み用のCPUなど、一度読み込まれたプログラムを書き換える必要がないような需要では命令とデータを完全に分離しても問題なく、この方針で設計されたものにマイクロチップ・テクノロジー社のPICなどがある。

利点
 ノイマン型電子計算機では、データ領域に置かれたプログラムを実行してしまうセキュリティホールが頻発する欠点がある。この解決のために、現在では様々な技術が投入されている。
 しかしハーバード・アーキテクチャーでは、このようなことは理論上起こりえない。

欠点
 「文字列」のようなものは、ノイマン型では一般にプログラム領域内に定数の列として持ち、それを命令でプログラム領域からデータ領域に複写するなどして用いることができる。
 一方ハーバード・アーキテクチャーでは、プログラム領域に文字列を用意するようなことができない。プログラム領域にアクセスするための命令がなく、しかもプログラム領域とデータ領域でバイトサイズが異なることも珍しくないためである。
 従って、文字列を書き出すためには、1文字ずつデータ領域に書き込む命令を並べる必要がある。

再検索