マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「ハーバードアーキテクチャって何?」です。
素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。
今回は、初級者から多く寄せられる質問です。
マイコンのカタログや雑誌のアーキテクチャの欄に「ハーバードアーキテクチャ」と書かれていますが、「ハーバードアーキテクチャ」とは何を指しているのですか? アーキテクチャにはどのような種類があり、ハーバードアーキテクチャには、どのような特長があるのでしょうか、教えてください。
マイコンでは命令とデータを取り扱いますが、ひと昔前のマイコンですと、1つのバスを命令とデータで共有していました。この場合、CPUが命令をフェッチしている間はバスが使用されていますので、データにアクセスできず、命令フェッチが終わった後にデータへのアクセスを行っていました。この方式のバス構成を用いたコンピュータアーキテクチャを「ノイマン型アーキテクチャ(Von Neumann architecture)」(以下、ノイマン型)と呼びます。
一方、バスを命令とデータで分けて、独立させるバス構成方式があります。この方式であればCPUが命令をフェッチしている間でも、データバスを使って、データにアクセスできます。したがって、ノイマン型よりもマイコンの性能を高めることができます(図1参照)。こうしたバス構成を用いたコンピュータアーキテクチャが「ハーバードアーキテクチャ(Harvard architecture)」(以下、ハーバード型)です。
しかし、ハーバード型はバスを2本内蔵するので、マイコンのハードウェアの規模がノイマン型より大きくなり、コストが高くなるというデメリットがあります。
注意:バスだけでなく、命令とデータのアドレス空間が異なる場合もハーバードアーキテクチャと呼ぶ文献もあります。
Copyright © ITmedia, Inc. All Rights Reserved.