ハーバードアーキテクチャって何?:Q&Aで学ぶマイコン講座(36)(3/3 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「ハーバードアーキテクチャって何?」です。
Cortex-M3のブロック図で確認
図3にCortex-M3のブロック図を示します。
Cortex-M3プロセッサのブロック図の下の方に命令を取り込む「コードインタフェース」とデータのインタフェースの「SRAM&周辺インタフェース」回路があり、さらにそれらの上部にバスマトリックスがあって、命令とデータを処理するようになっています。また、Cortex-M3コアのブロック図の下の方に「命令インタフェース」と「データインタフェース」があり、これらはそれぞれ32ビット構成回路になります。
以前はコストの制限からノイマン型を用いたマイコンが主流でしたが、近年、マイコンの製造プロセスが微細化されたことによって、随分とマイコンの論理回路を小さく作れるようになりました*1)。そのためバス面積が増えるハーバード型を用いてもマイコン全体の面積に大きな影響を与えなくなりました。最近では多くのマイコンでハーバード型が採用されています。
*1)参考記事:マイコン入門!! 必携用語集(11):90nmプロセスの“90nm”ってどこの長さ?――マイコンの作り方
実際のハーバードアーキテクチャ
ここでは、STM32F1シリーズの「STM32F103」を例にとって説明します。
図4にSTM32F103のバス構成を示します。
図左側のCortex-M3とDMA(Direct Memory Access)がバスマスターです。Cortex-M3の命令バスはICodeバスです。そしてデータバスとしてDCodeバスとシステムインタフェースバスの2種類をもっています。STM32F103のデータバスはバスマトリックス構成になっていますので、バスマスター側は、Cortex-M3のDcodeバスとシステムインタフェースバスとDMAのデータバスが接続されています。バススレーブ側のデータバスは、全てバスマトリックスにつながっています。フラッシュメモリにデータを保存する場合もありますので、フラッシュメモリからもバスマトリックスにつながっています。Cortex-M3のICodeバスはフラッシュメモリインタフェース回路経由で内蔵フラッシュメモリにつながっていて、バスマトリックスにはつながっていません。
この図だけ見ると、命令はフラッシュメモリからしか実行できないように見えますが、Cortex-M3の場合、データバスからでも実行できますので、RAM*2)や周辺機能経由で接続されている外部メモリからも実行できます。
*2)参考記事:Q&Aで学ぶマイコン講座(34):RAMで命令を実行する方法
筆者プロフィール
菅井 賢(すがい まさる)
(STマイクロエレクトロニクス マイクロコントローラ製品部 アプリケーション・マネージャー)
日系半導体メーカーにて、25年以上にわたりマイコンの設計業務に携わる。その後、STマイクロエレクトロニクスに入社し、現在までARM Cortex-Mプロセッサを搭載したSTM32ファミリの技術サポート業務に従事。ARMマイコン以外にも精通しており、一般的な4ビットマイコンから32ビットマイコンまで幅広い知識を有する。業務の傍らマイコンに関する技術論文や記事の執筆を行っており、複雑な技術を誰にでも分かりやすい文章で解説することがモットー。
(次の記事を読む)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- CISCとRISC、何が違う?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。記念すべき1回目は、マイコン初心者の方からよく質問される「CISCとRISCの違い」についてです。 - DMAのメリットって何?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級〜中級者の方からよく質問される「DMA(Direct Memory Access)のメリットって何?」です。 - RAMで命令を実行する方法
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「RAMで命令を実行する方法」です。 - 90nmプロセスの“90nm”ってどこの長さ?――マイコンの作り方
マイコンを作る工程をプロセスと呼びます。マイコンは多くのMOSトランジスタで構成されています。MOSトランジスタは、厳密にはMOSFET(Metal Oxide Semiconductor Field Effect Transistor)ですが、ここでは省略してMOSと呼びます。具体的には、シリコン(元素記号Si)上にMOSを作る工程がプロセスの主な工程になります。MOSの詳しい説明はいろいろな記事が既にありますので、今回はマイコンを使うエンジニアが必要とする知識で、プロセスに関係するものを説明します。 - CPUの中枢「ALU」を作ってみよう
CPUはマイコンの中枢ですが、さらにその中で演算を行うユニットがALU(Arithmetic and Logic Unit)です。マイコンの核に相当するといってもよいでしょう。実際の算術演算、論理演算はALUで行われます。今回は、ALUの中身がどうなっているかを説明します。 - スタックの役割
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「スタックの役割」です。