ハーバード・アーキテクチャ

ハーバード・アーキテクチャとは



ハーバード・アーキテクチャは、コンピュータの設計における重要な概念の一つで、命令とデータを物理的に分離した記憶装置と信号経路を持つ構造を指します。具体的には、プログラムの命令を格納するメモリ領域と、データを格納するメモリ領域がそれぞれ独立して存在し、異なるアドレス空間を持つ点が特徴です。このアーキテクチャは、ノイマン型アーキテクチャとは対照的な設計思想に基づいており、それぞれの特徴が異なる用途に適しています。

起源



ハーバード・アーキテクチャという名前は、初期のコンピュータであるHarvard Mark Iに由来します。このマシンでは、プログラムの命令は穿孔テープから読み込まれ、データはリレーのON/OFFによって記録されていました。命令とデータが異なる媒体に格納されていたことが、このアーキテクチャの原型となっています。

ハーバード・アーキテクチャの利点



ハーバード・アーキテクチャの最大の利点は、命令とデータの同時アクセスが可能であるという点です。ノイマン型アーキテクチャでは、CPUが主記憶から命令とデータを同じ信号経路で読み書きするため、メモリへのアクセスがボトルネックとなり、CPUの高速化を妨げる要因となっていました。これに対して、ハーバード・アーキテクチャでは、命令とデータの読み込みを並行して行うことができるため、処理速度の向上が期待できます。特に、組み込みシステムやデジタル信号処理などの分野で、高速な処理が求められる場合に有効です。

ハーバード・アーキテクチャの活用例



現在では、ユーザーがプログラムを頻繁に変更する必要がない、あるいはアクセスを制限したいコンピュータで、ハーバード・アーキテクチャが採用されることが多くなっています。具体的には、マイクロコントローラが代表例で、Atmel社のAVRシリーズやマイクロチップ・テクノロジー社のPICなどが挙げられます。これらのプロセッサでは、プログラムメモリにフラッシュメモリ、ワーキングメモリにSRAMを使用し、それぞれの特性を活かしています。
また、デジタルシグナルプロセッサ(DSP)などの特殊用途プロセッサでも、ハーバード・アーキテクチャは広く採用されています。TIのTMS32010やAnalog Devices社のBlackfinなどがその例です。

キャッシュメモリにおけるハーバード・アーキテクチャ



興味深いことに、ノイマン型アーキテクチャにおいても、キャッシュメモリの実装においてハーバード・アーキテクチャの考え方が取り入れられています。最近の高性能プロセッサでは、命令キャッシュとデータキャッシュを分離することで、CPU内部ではハーバード・アーキテクチャに近い動作を実現しています。ただし、CPU全体として見た場合は、外部の主記憶との接続は従来通りのノイマン型アーキテクチャとなっています。

命令/データ分離キャッシュの問題点



命令キャッシュとデータキャッシュを分離した際には、いくつかの問題点も生じます。特に、プログラムの動的ローディングや自己書き換えコードを実行する場合に、キャッシュの一貫性(コヒーレンシ)が問題となることがあります。これらの技術は、プログラム自身が命令を書き換えるというノイマン型アーキテクチャの特徴を利用しているため、単純に命令用とデータ用のキャッシュを分離しただけでは、予期せぬ動作を引き起こす可能性があります。そのため、キャッシュコヒーレンシを維持するための特別な対策が必要となります。

まとめ



ハーバード・アーキテクチャは、命令とデータを分離することで、コンピュータの処理速度を向上させるための有効な手段です。初期のコンピュータから現在まで、様々な分野で活用されており、その設計思想は現代のプロセッサにも影響を与え続けています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。