はじめに
パソコンの中には、いろんな部品が入っています。
CPU,GPU,DMA,RAM..など!
各部品が何を介して通信を行っているのかについて書いていきます。
結論!
CPUやGPU、メモリなどのIPは、BUSと呼ばれる通信インターフェースで接続されています。
ARMベースのSoCでは、AMBAという規格が広く使われています。
BUS規格はAMBA以外にも存在しますが、現在よく使われているAMBA規格について書いていきます。
AMBA規格について
ARM社が策定した、Soc内部の通信インターフェース規格です。
#仕様書が無償公開されています。
BUS規格リンク:
(https://www.arm.com/ja/architecture/system-architectures/amba/amba-specifications)
3種類のBUSを知っておけばいいです。
AXI、AHB、APB!
AXIは高速通信、APBは低速通信可能なBUSです。
設計仕様に応じて使い分けています。
用途に関して、簡単に比較してみました。
ハイエンド製品であれば、以下のようなイメージです。
BUS規格 | 主な用途 |
---|---|
AXI | 高速通信(CPU ↔ メモリ、DMA、GPUなど) |
AHB | 中速通信(CPU ↔ GPIO、ペリフェラル) |
APB | 低速通信(UART、GPIO、タイマなどの制御系) |
AXIもいいところばかりではありません..!設計コストや消費電力の違いがあります。
簡単に比較してみました。
BUS規格 | 設計コスト | 消費電力 |
---|---|---|
AXI | 大 | 大 |
AHB | 中 | 中 |
APB | 小 | 小 |
AXIは強いけど設計コストが高く、APBは弱いけど設計コストを抑えることができます。
※AXIを乗せるだけでは設計コストは高くなりませんね...AXIを使用する場合、DDRやPCIeなど高速IFであることが多いです。そのため、AXI使っている場合設計コストが高い傾向にある程度のイメージです。
まとめ
CPUとRAMなど、IP間が何で繋がっているのか、少しでもイメージが湧けば嬉しいです。