検索
連載

【徹底解説】バスマトリクスとはハイレベルマイコン講座【バスマトリクス編】(2/4 ページ)

すでにマイコンを使い込まれている上級者向けの技術解説の連載「ハイレベルマイコン講座」。今回は、2017年03月22日公開の「Q&Aで学ぶマイコン講座(36):ハーバードアーキテクチャって何?」で言及されている「バスマトリクス」に着目し、詳しく解説していく。

Share
Tweet
LINE
Hatena

バスマトリクスとは

 最初に、従来のバス方式(シングルバス)とバスマトリクスを比較してみよう。図3の左側にシングルバスであるSTの汎用8ビットマイコン「STM8Sシリーズ」のブロック図を、右側にSTM32F4シリーズのバスマトリクスのブロック図をそれぞれ示す。


図3:従来のバス方式(シングルバス)とバスマトリクスの比較[クリックで拡大]
左=STM8S207xx STM8S208xxデータシートから抜粋/右=STM32F4シリーズ リファレンスマニュアルRM0090 図2から抜粋

 STM8Sシリーズでは、バスは1本しかなく、その1本のバスに全てのバスマスターとバススレーブが接続されている。全てのバスマスターが全てのバススレーブにアクセスできるが、バスが1本しかないため、データ転送は1つのバスマスターと1つのバススレーブ間でしか行うことができない。

 一方、STM32F4シリーズのバスマトリクスでは、図中に丸の付いたバスの交差点でデータのやりとりができる。例えば、Arm Cortex-M4プロセッサはD-バス経由でフラッシュメモリのDCODEとSRAM1とやりとりでき、S-バス経由でSRAM1/SRAM2/SRAM3などのバススレーブとデータのやりとりができる。理想は、バスマトリクス中の全ての交差点で、全てのバスマスターと全てのバススレーブがデータのやりとりができることだが、この場合ハードウェアが重くなる。そのため、最も効率的にデータ転送をできるように交差点の場所を最適化している。

 一般的に、複数のバスマスターを搭載しているマイコンでバスマトリクスを採用している製品が多い。これは、複数のバスマスターが複数のバススレーブを同時にアクセスできるからである。次の章で詳細に解説する。

バスマトリクスのメリット/デメリット

 図4に実際のデータ経路を示す。青色の線はArm Cortex-M4プロセッサがフラッシュメモリのDCODEからデータを読み出して、SRAM1に転送する経路を示す。また、紫の線は、DMA2*1)がAHB2ペリフェラルから得たデータを、Arm Cortex-M4プロセッサを介さずに直接SRAM3へ転送する経路を示す。AHB2ペリフェラルは、タイマーや通信機能やアナログ機能などのペリフェラル機能とつながっている。例えば、通信機能が外部から取り込んだデータを、DMA2がSRAM3に順次転送していく場合は、この経路を使うことになる。青色の経路と紫色の経路は、ハードウェアが独立しているため、同時に動作可能だ。


図4:バスマトリクス状での複数のデータ転送[クリックで拡大]
STM32F4シリーズリファレンス マニュアルRM0090 図2から抜粋

 このように、バスマトリクスのメリットは、データ転送経路のバスが重ならない限り、複数のデータ転送を同時に行える点にある。

 一方で、ハードウェアが重くなるというデメリットもある。ブロック図を比較すれば一目瞭然だが、シングルバスの場合バスは1本で済むが、バスマトリクスの場合は複数のバスが必要となる。バスの配線領域を多く必要とするので、その分マイコンのコストも高くなる。そのため、バスマトリクスは性能重視のマイコンで多く採用されている。

*1)参考:Q&Aで学ぶマイコン講座(29):DMAのメリットって何?

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る