メディア

マイコンのAXIプロトコルって何?Q&Aで学ぶマイコン講座(103)(3/4 ページ)

» 2025年05月22日 10時00分 公開

AXIプロトコルの機能

 AXIの主な機能を箇条書きにまとめます。

アンアラインドデータの転送サポートはバイト単位で実施

 アンアラインドデータとはデータサイズでアライメントされていないデータです。32ビットマイコンの場合、データは32ビット毎にアライメント、すなわち32ビットの境界線にそろえられています。この境界線をまたいだデータをアンアラインドデータと呼びます。AXIプロトコルでアンアラインドデータを扱う場合は、バイト(8ビット)単位で行われます。

読み出し/書き込みデータチャネルにはDMAを適用可能

 DMAの仕様をAXIプロトコルに合わせれば、DMAの適用が可能です。次の章「実際のAXI」で紹介するSTM32MP1ではAXIのインタフェースにDMA(名称はMDMA)を接続しています。

アウトオブオーダー(順番に無関係)転送をサポート

 アウトオブオーダーとは、順番に無関係に転送が行われるという意味です。すなわち、最初のアドレスを発行し、その転送が完了する前に、複数のアドレスを発行でき、後から発行したアドレスの転送の方が、先に発行したアドレスの転送よりも早く完了することがあるということです。最終的には、発行されたアドレスの転送は全て完了しますが、最も効率の良い転送順序で実施されるので、タイムロスを最小限に防げます。

実際のAXI

(1)STM32F7シリーズ

 ここでは、実際にSTM32F7シリーズで使われているAIXを紹介します。図4にSTM32F765BGT6のバスアーキテクチャを示します。

<strong>図4:STM32F7シリーズのAXI</strong> 図4:STM32F7シリーズのAXI[クリックで拡大]
STM32F76xxx and STM32F77xxxReference manualから抜粋

 STM32ファミリーの内部バスはバスマトリックスで構成されています。STM32F7シリーズもバスマトリックス構成を踏襲しています。バスマトリックスは、従来の製品と互換性を維持するために、AXIとはプロトコルが異なります。そのため、Cortex-M7のAXIを直接バスマトリックスに接続することはできません。そこで、Cortex-M7のAXIとバスマトリックスの間にコンバーターが入っています。Cortex-M7がマスターインタフェースになり、コンバーターがスレーブインタフェースになります。

 AXIはコンバーターからAHBブリッジを経由して、外部メモリFMC、外部メモリQuad SPI、内部SRAM(SRAM1とSRAM2)および内蔵フラッシュメモリにつながっています。そのため、これらのメモリは、AXIのコンバーター経由になります。そのため、見かけ上AXIのチャネル上に存在することになります。いずれも、命令コードとデータの転送が可能です。

 バスマトリクスにはDMA1とDMA2がつながっているので、AXIのチャネル上の外部メモリFMC、外部メモリQuad SPI、内部SRAM(SRAM1とSRAM2)および内蔵フラッシュメモリにDMAでアクセスできます。

 一方で、Cortex-M7は、従来のAXIを持たないCortex-Mシリーズとのバス互換性を維持するためITCMバスインタフェース、DTCMバスインタフェース、AHBSバスインタフェースも搭載しています。ITCMはフラッシュメモリの命令フェッチ、データアクセスに使われます。DTCMはRAMのデータアクセスまたは命令フェッチに使われます。

 AHBSバスはRAM上のデータ転送に使われます。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.