ハーバード型アーキテクチャとは、プログラム命令用のメモリとデータ用のメモリを物理的または論理的に独立して配置する計算機構造のことです。命令の読み込みとデータの読み書きを同時に処理できるため処理効率が高く、高速化が求められるDSPや最新のAIアクセラレータなど幅広いプロセッサ設計で応用されています。
ハーバード型アーキテクチャとは
ハーバード型アーキテクチャは、プログラム命令用とデータ用でメモリおよび伝送路(メモリバス)を分離することで、並列処理性能を高めるプロセッサの基本設計構造です。
詳しく解説
ハーバード型アーキテクチャは、命令とデータを同じメモリ領域に混在させるノイマン型アーキテクチャのボトルネックを解消するために開発されました。命令用とデータ用でそれぞれ独立したメモリバスを持つため、CPUなどのプロセッサは「次の命令をフェッチする動作」と「データの読み書き」を同時に実行できます。これにより、パイプライン処理の効率が上がり、データの処理待ち時間が短縮されます。近代的なAIアクセラレータやマイクロコントローラでは、内部キャッシュやローカルメモリ層においてハーバード型アーキテクチャの概念を取り入れ、ディープラーニング処理の高速化を実現しています。
具体例・使われ方
デジタル信号処理に特化したDSPや、高効率な組込み用マイクロコントローラで広く採用されています。また、現代の高性能プロセッサやAIアクセラレータでは、CPU内部の1次キャッシュ(L1キャッシュ)を命令用とデータ用に分離する「モディファイド・ハーバード型アーキテクチャ」として応用され、大量の行列演算を効率的に実行するために活用されています。
似た用語との違い
主な比較対象はノイマン型アーキテクチャです。ノイマン型アーキテクチャは命令とデータを単一のメモリと共有バスで取り扱うため回路設計がシンプルですが、転送能力が制約されるノイマン・ボトルネックが生じます。一方、ハーバード型アーキテクチャはメモリバスを分離するため転送速度に優れますが、配線やハードウェアの構成が複雑になる点が異なります。
注意点
物理的なハードウェア構成を複雑にするため、開発コストやチップ面積が増大しやすいデメリットがあります。また、命令領域を動的にデータとして書き換えるような自己書き換えプログラムの実行が困難になる場合もあります。現代のプロセッサでは純粋なハーバード型ではなく、外部メモリは共通化しつつ内部キャッシュのみを分離する方式が一般的である点に注意が必要です。