最初に、従来のバス方式(シングルバス)とバスマトリクスを比較してみよう。図3の左側にシングルバスであるSTの汎用8ビットマイコン「STM8Sシリーズ」のブロック図を、右側にSTM32F4シリーズのバスマトリクスのブロック図をそれぞれ示す。
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に順次転送していく場合は、この経路を使うことになる。青色の経路と紫色の経路は、ハードウェアが独立しているため、同時に動作可能だ。
このように、バスマトリクスのメリットは、データ転送経路のバスが重ならない限り、複数のデータ転送を同時に行える点にある。
一方で、ハードウェアが重くなるというデメリットもある。ブロック図を比較すれば一目瞭然だが、シングルバスの場合バスは1本で済むが、バスマトリクスの場合は複数のバスが必要となる。バスの配線領域を多く必要とするので、その分マイコンのコストも高くなる。そのため、バスマトリクスは性能重視のマイコンで多く採用されている。
Copyright © ITmedia, Inc. All Rights Reserved.