バスについて学ぶ(1): はじめに

1-AMBA の概要

AMBA (Advanced Microcontroller Bus Architecture) アドバンスト マイクロプロセッサ バス アーキテクチャ

高性能組み込みマイクロコントローラの通信規格を定義し、RISC プロセッサ (縮小命令セット プロセッサ) を他の IP コアおよび周辺機器に統合できます。これは、IP コアを効果的に接続する「デジタル接着剤」であり、ARM の再利用戦略の重要なコンポーネントです。 ;

これは、チップと周辺機器間のインターフェイスではなく、ARM コアとチップ上の他のコンポーネント間のインターフェイスです。たとえば、Xilinx の Zynq チップは ARM と FPGA 間の接続パスであり、主に次のものが含まれます。

  • AHB (Advanced High-performance Bus) アドバンストハイパフォーマンスバス

  • ASB (Advanced System Bus) Advanced System Bus - ほとんど使用されない

  • APB (Advanced Peripheral Bus) アドバンスド ペリフェラル バス

  • AXI (Advanced eXtensible Interface) 高度な拡張可能インターフェイス

これらのコンテンツは、高性能 SoC 向けに設計されたオンチップ通信の一連の標準を定義します。

AHBは主に、高効率、高帯域幅、高速システムモジュール用に設計されたバスで、マイクロプロセッサ、オンチップまたはオフチップメモリ​​モジュール、DMAなどの高効率モジュールを接続できます。

APB は主に低速で低電力の周辺機器で使用され、電力消費と周辺機器の複雑なインターフェイスを最適化できます; APB は AHB と低帯域幅周辺機器間の通信ブリッジを提供するため、APB は AHB または ASB セカンダリ拡張バスです;

AXI: 高速、高帯域幅、パイプライン化された相互接続、一方向チャネル、最初のアドレスのみが必要、並列での読み取りと書き込み、アウトオブオーダーのサポート、アライメントされていない操作のサポート、初期遅延の大きいペリフェラルの効果的なサポート、たくさんのつながりがあります

複数の AMBA バスのパフォーマンス比較分析:

ここに画像の説明を挿入

2-AHB、AXI、APBの違いとつながり

AHB は高度な高性能バスAXI は高度なスケーラブル インターフェイス、APB は高度な周辺バスです。

AHB と APB はどちらもシングル チャネル バスで、並列読み取りと書き込みをサポートしていませんが、 AXIはマルチチャネル バスで、合計 5 つのチャネルに分割され、並列読み取りと書き込みを実現できます

AHB と AXI はどちらもマルチマスター/スレーブ デバイスであり、バス制御権の割り当てはアービトレーション メカニズムによって実現されます

APB は複数のスレーブ デバイスを持つシングル マスター デバイスであり、そのマスター デバイスは APB ブリッジであり調停メカニズムはありません

データ操作に関しては、AHB と AXI はバースト送信をサポートしていますが、APB はサポートしていません。さらに、AXI はデータの非整列操作をサポートしていますが、AHB はサポートしていません。

3-AHB バス (マルチマスター/スレーブ調停機構)

AHB バスのパワーは、マイクロコントローラ (CPU)高帯域幅オンチップ RAM高帯域幅外部メモリ インターフェイスDMA バス コントローラー、およびさまざまな AHB インターフェイス コントローラーを接続して、独立した完全な SOC システムを形成できることです。また、AHB-APB ブリッジを介して APB バス システムに接続します。主に次の 4 つの部分で構成されます。

マスター AHB メイン コントローラー: メイン コントローラーは、アドレスおよび制御情報を介して初期化、読み取り、書き込みを行うことができ、同時にアクティブになるマスターは 1 つだけです。

スレーブ AHB スレーブ デバイス: スレーブ デバイスは通常、そのアドレス空間でマスター コントローラーによって発行された読み取りおよび書き込み制御操作に応答し、成功、失敗、または待機ステータスをマスターに返し、データ送信制御を完了するパッシブ デバイスを指します。 ;

アービター AHB アービター: アービターは、ユーザーの構成に従って、同時に 1 つのマスター コントローラーのみがバス上でバス制御権限を持つようにし、一度に 1 つのマスターのみがバス上で動作するようにします。 AHB バス上の 1 つのアービターになります。

デコーダー AHB デコーダー: アドレスのデコードと各スレーブへのチップ選択信号の提供を担当; AHB バスは 1 つのデコーダーのみを持つことができます。

各 AHB には 1 つのアービターと 1 つの中央デコーダーが必要ですが、それは 1 つだけです!

ここに画像の説明を挿入

1-AHB 基本信号

HADDR: 32 ビット システム アドレス バス。

HTRANS: M は送信ステータス、NONSEQ、SEQ、IDLE、BUSY を示します。

HWRITE: 送信方向 1-書き込み、0-読み取り。

HSIZE: 送信ユニット;

HBURST: 送信のバースト タイプ。

HWDATA: データ バスの書き込み、M から S への書き込み。

HREADY: S は M に読み取りおよび書き込み操作の送信が完了したかどうかを応答します。1 - 送信が完了し、0 - 送信サイクルを延長する必要があります。HREADY はバス上の信号であり、M と S の入力であり、同時に各 S は HREADY から出力される必要があることに注意してください。したがって、S には 2 つの HREADY 信号があり、1 つはバスからの入力、もう 1 つはマルチプレクサ自体への出力です。

HRESP: S は、現在の送信ステータス、OKAY、ERROR、RETRY、SPLIT に応答します。

HRDATA: データ バスの読み取り、S から M への読み取り。

2-AHB 基本輸送

1 - 2 段階

アドレス サイクル (AP)、1 サイクルのみ

データ サイクル (DP)、HREADY 信号に応じて必要なサイクル数

2-パイプライン伝送

アドレス サイクルとそれに続くデータ サイクル

AHBバースト送信とAXIバースト送信の特徴

AHB プロトコルでは、バースト転送のすべてのアドレス、およびアドレスとデータ ロック間の対応関係が必要です。次のバースト転送は、前の転送の前に完了する必要があります。

AXIはバーストの最初のアドレスのみを必要とし、前のバースト送信の完了を待たずに複数のバースト送信の最初のアドレスを連続して送信でき、複数のデータをインターリーブできるため、バスの使用率が大幅に向上します。

AHB バスと AXI バスはどちらも高性能で高帯域幅の SoC システムに適していますが、AXI の方が柔軟性が高く、互いに影響を与えることなくチャネルの読み取りと書き込みを並行して行うことができます

さらに重要なことに、AXI バスはアウトオブオーダー伝送をサポートしているため、バスの帯域幅を効果的に使用し、内部システムのバランスを取ることができます。したがって、SoC システムでは、AXI バスがメイン バスとして使用され、AHB バスと APB バスがブリッジを介して接続されます。これにより、SoC システムの柔軟性が高まり、さまざまな機能の IP をより合理的にバスに割り当てることができます。 ;

ここに画像の説明を挿入

4-APB バス (単一のマスターと複数のスレーブ)

APB は、さまざまな低速周辺機器をサポートできる、最適化された低電力の合理化されたインターフェイス バスです

主に UART や I2C などの低帯域幅ペリフェラルで使用されます. そのアーキテクチャはマルチマスター アーキテクチャである AHB バスとは異なります. APB バスの唯一のマスターは APB ブリッジです (AXI または APB に接続されています) )、アービトレーションは必要ありません. いくつかの要求/許可信号.

ここに画像の説明を挿入
**APB バス プロトコルには APB ブリッジ**が含まれています。これは、AHB および ASB バス上の制御信号を APB スレーブ デバイス コントローラで使用可能な信号に変換するために使用されます。APB バス上のすべてのペリフェラルはスレーブ デバイスであり、これらのスレーブ デバイスには次の特性があります。

  • a 有効なアドレスを受け取り、アクセスを制御する
  • b APB 上の周辺機器が非アクティブの場合、これらの周辺機器は 0 電源状態にすることができます
  • c デコーダーは、ストローブ信号 (非ロック インターフェイス) を介して出力タイミングを提供できます。
  • d アクセス時の実行可能データの書き込み

APB のプロトコルも非常に単純で、パイプライン操作でもなく固定の 2 クロック サイクルで読み取りまたは書き込み操作が完了します

その特徴としては、2 クロック サイクルの送信、待機期間と応答信号が不要、シンプルな制御ロジック、4 つの制御信号のみです。

APB での送信は、次の図に示す状態図で表すことができます。

ここに画像の説明を挿入

  • 1. システムは IDLE 状態に初期化されます。このとき、送信動作はなく、スレーブ モジュールは選択されていません。

  • 2. 実行する送信があり、PSELx=1、PENABLE=0 の場合、システムは SETUP ステートに入り、1 サイクルだけ SETUP ステートに留まります。PCLK の次の立ち上がりエッジが到着すると、システムは ENABLE 状態に入ります。

  • 3. システムが ENABLE ステートに入ったら、SETUP ステートの PADDR、PSEL、および PWRITE を変更せず、PENABLE を 1 に設定します。送信は ENABLE ステートで 1 サイクルだけ維持され、SETUP ステートと ENABLE ステートを経て送信が完了します。その後、送信するものがなければ IDLE 状態で待機し、連続送信があれば SETUP 状態になり、
    ここに画像の説明を挿入

  • 書き込み転送

  • 読み取り転送

ここに画像の説明を挿入

5-ASB バス

ASB バスは、主に高性能システム モジュールに使用されます。

ASB は、AHB が必要としない高性能機能に使用できるオプションのシステム バス オン チップ設計です

ASB は、高性能プロセッサ、オンチップ メモリ、およびオフチップ メモリもサポートして、インターフェイスと低速のペリフェラルを提供します。高性能、データ伝送、マルチバス マスター コントローラー、バーストおよび連続伝送。ASB バスは、APB バス アーキテクチャ上にある高性能バス プロトコルで、次の特徴があります。

  • a バースト連続送信
  • b シングル パイプライン データ転送
  • c マルチバスマスターコントローラー

6-AXI プロトコルの紹介

AXI は、ARM の標準インターフェイス プロトコルとして、主にオンチップ システムの相互接続設計に使用されます。異なる IP 間の相互作用は、標準の相互接続バスを介して実現できます。チップ内の各プロトコル間で便利なプロトコル変換を実現し、システム内のすべてのIP通信を完結させることができます。

ここに画像の説明を挿入

ここに画像の説明を挿入

  • AXI は、AR、R、AW、W、および B チャネルという 5 つの独立した伝送チャネルに分割されます。
  • AR は読み取りアドレス チャネルで、読み取り操作のアドレスと対応する制御情報を送信します。
  • R は読み取りデータ チャネルであり、AR チャネルに対応するリードバック データを送信し、スレーブの応答情報も送信します。
  • AW は書き込みアドレス チャネルで、書き込み操作のアドレスと対応する制御情報を送信します。
  • W は書き込みアドレス チャネルで、書き込みデータに関連する情報を送信します。
  • B は書き込み応答チャネルで、スレーブから返された書き込み応答情報を送信します。

5 つのチャネルは独立したチャネルであり、システムの伝送パフォーマンスを大幅に向上させることができます。読み取り操作には 2 つのチャネルがあり、書き込み操作には 3 つのチャネルがあることに注意してください. 読み取りチャネルには別の応答チャネルはありません. 読み取り応答と読み取りデータは、送信用のチャネルを共有します. 両方ともスレーブによって返され、そこにそれらを分離する必要はありません。

7- AMBA ベースのシステムオンチップ

ここに画像の説明を挿入
バス上にぶら下がっているほとんどのモジュール (プロセッサーを含む) は、単一の属性 (マスター モジュールまたはスレーブ モジュール) を持つ機能モジュールのみですメイン モジュールは、CPU、DSP などのスレーブ モジュールに読み取りおよび書き込み操作を送信するモジュールであり、スレーブモジュールは、オンチップ RAM、AHB/APB ブリッジ、また、2 つの属性を同時に持つモジュールもあります.たとえば、ダイレクト メモリ アクセス (DMA) は、プログラムされているときはスレーブ モジュールですが、システムがデータを読み込んで転送するときはマスター モジュールでなければなりません

バス上に複数のマスター モジュールがある場合、さまざまなマスター モジュールのバスへのアクセスを制御する方法を決定するアービターが必要ですアービトレーション仕様は AMBA バス仕様の一部ですが、使用される特定のアルゴリズムは RTL 設計エンジニアによって決定されます。最も一般的に使用される 2 つのアルゴリズムは、固定優先度アルゴリズムとラウンド ロビン アルゴリズムですAHB バスには最大 16 個のマスター モジュールと任意の数のスレーブ モジュールを配置できます. マスター モジュールの数が 16 を超える場合は、構造の追加レイヤーが必要です (詳細については、導入されたマルチレイヤー AHB 仕様を参照してください)アームによる)。

APB ブリッジは、APB バス上の唯一のマスター モジュールであるだけでなくAHB システム バス上のスレーブ モジュールでもありますその主な機能は、AHB システム バスからのアドレス、データ、および制御信号をラッチし、2 レベルのデコードを提供して APB 周辺機器の選択信号を生成し、AHB プロトコルから APB プロトコルへの変換を実現することです。 .

AMBA、AHB、APB、AXI バスの紹介と比較

続いてバスの種類ごと、バスシリーズ全体を見ていきましょう!! !

8-AMBA AHB プロトコルと AXI プロトコルの違いは何ですか

  • AHB : 高度な高性能バス

  • AXI : 高度な拡張可能インターフェイス

AHB は AMBA のプロトコルの 1 つですが、AMBA プロトコルの進化の歴史を見ると、このような独自のものが現在でも人気があることに驚かされます。

AMBA AHB プロトコルと AXI プロトコルの違いは何ですか?

しかし、明らかに、プロセッサーや SoC の研究開発に携わりたいのであれば、AHB を理解するだけでは十分ではありません。情報化社会におけるチップ コンピューティング機能に対する需要の増加に伴い、AHB プロトコルは、これらの実際のサービスの帯域幅要件を満たすことができなくなりました。

この時点で、AXI プロトコルが誕生しました。その主な機能は、「未処理」のトランザクション、つまり、1 つのトランザクションが完了していないときに別のトランザクションを開始する機能をサポートすることですAHB プロトコルは「分割」送信をサポートしていますが、その効果は AXI の「優れた」能力ほどではありません。

比較のために、AMBA AHB プロトコルと AXI プロトコルの相違点をいくつか示します。

  • 1、

    • AHB には、1 つのアドレス チャネル、1 つの読み取りデータ チャネル、および 1 つの書き込みデータ チャネルがあります。
    • AXI には、1 つの読み出しアドレス チャネル、1 つの書き込みアドレス チャネル、1 つの読み出しデータ チャネル、および 1 つの書き込みデータ チャネルがあります。合計 5 つの並列チャネルを持つ 1 つの書き込み応答チャネル。
  • 2、

    • AHB は「未処理」をサポートしていません。
    • AXI のサポートは「優れている」
  • 3、

    • AHB でタイミングを合わせることができない場合、合意で打ち負かすことはできません。
    • AXI では、これらの 5 つのレーンのいずれかのパスをタップできるため、より高いクロック周波数が容易になります。
  • 4、

    • AHB マスターとスレーブ間の接続が少なくなります。
    • AXI には 5 つのパラレル レーンがあるため、より多くのワイヤがあり、バックエンドの配線が混雑する可能性があります。
  • 5、

    • AHB はサイドバンドをサポートしていません。
    • AXI はサイドバンドをサポート (AXI の AxUSER フィールドを使用)
  • 6、

    • AHB は QoS をサポートしていません。
    • AXI は QoS をサポート
  • 7、

    • AHB バースト長は、4K 境界を超えない限り、固定 (INCR タイプを除く 1/2/4/8) です。
    • AXI のバースト長は1 16 の任意の値にすることができます (AXI4 の incr タイプは 1 256 をサポートできます)。
  • 8、

    • AHB「INCR」タイプは任意の長さを持つことができ、バースト送信の開始時に指定する必要はありません。
    • AXI INCR タイプの送信では、バースト送信の開始時に AxLEN を指定する必要があります
  • 9、

    • AHB プロトコルでは、一度に 1 つの読み取り/書き込みトランザクション要求しか実行されないため、AHB は順序を保持します (応答を受け取り、読み取りと書き込みを開始する順序は同じです)。
    • AXI は複数の「未処理」をサポートしており、異なる AxID 要求は順不同である可能性がありますが、同じ AxID 要求はまだ順不同です。
  • 10. AHB は AXI よりも消費電力が少ない

  • 11、

    • AHB は書き込みストローブをサポートしていません。
    • AXI はライト ストローブをサポート
  • 12、

    • AHB はロック送信をサポートしています。
    • AXI3 は Lock 送信をサポートします。AXI4 は Lock 送信をサポートしません。
  • 13、

    • AHB は排他的送信をサポートしていません。
    • AXIは排他的送信をサポート

参考内容:
AMBA、AHB、APB、AXIバスの紹介と比較

AMBA AHB プロトコルと AXI プロトコルの違いは何ですか?

おすすめ

転載: blog.csdn.net/weixin_45264425/article/details/130116191