頭脳放談

第38回 オンチップ・バスの標準規格「AMBA」とは?

Massa POP Izumida
2003/07/19

 「AMBA」という規格を聞いたことがある人はあまりいないかもしれない。AMBAは、バスに関する規格である。すでに多くの製品が、AMBA規格を採用している、というと意外に感じるかもしれない。PCIバスなら使っているとか、周辺装置をつなぐUSBもバスの一種だろうとか、PCで一般的なバスは多くの人に認知されている。ところが、広く採用されている割に一般のユーザーに知られていないのがAMBAなのである。なぜかというとAMBAは、SoC(System On Chip)といわれるようなシステムLSI内部で各種ブロックを結合するために使われる「オンチップ・バス」の規格であり、通常、LSIの外側に出てくるものではないからだ。

 「Advanced Microcontroller Bus Architecture」略してAMBAは、ARM社のオンチップ・バス規格である。「アンバ」と発音するのが一般的だ。ARMについては、「第12回 キミはARMを知っているかい?」「第15回 ARMプロセッサを知らずに暮らせない」でも取り上げたが、ハードディスクなどのストレージのコントローラから、ネットワーク、各種周辺機器、そして一番の牙城である携帯電話に至る組み込み分野で業界標準化している。現在、ほとんどのARMコア・ベースの設計が、オンチップ・バスとしてAMBAを採用している。

 それにAMBAは、いまやARMだけのものでもない。ARM社は、高いライセンス料を取るARMコアと異なり、AMBAを普及させるために無償で簡単にライセンスする戦略を採用した。この結果、サードベンダのデザイン・ハウスでAMBA向けに半導体IP(Intellectual Property:半導体の設計データやシミュレーション・モデルなど)を開発して販売するところが増え、非常に広範囲の周辺チップがAMBA向けとして提供されるようになってきた。そうなるとARMとはライバル関係にあるほかのプロセッサ・コア・ベンダも、AMBAを無視することはできなくなってしまった。いまやAMBAを採用したり、異なる種類のバスをAMBAに接続するためのバス・ブリッジを開発したりしている。ちなみにプロセッサ・コア・ベンダの老舗中の老舗ともいえるMIPS Technologies社も大々的にAMBAを採用している。

 このように業界標準といえる地位にまで登りつめたAMBAであるが、先ごろARM社よりリビジョン・アップの発表があった。AMBA 3.0規格である。本稿ではその新規格を簡単に紹介しようと思うが、その前にAMBA 3.0に至る履歴を簡単に振り返っておこう。

AMBAの歴史

 AMBAの普及は、ARMコアの成功に多くを負っているが、その初期を見ればコアと歩調が合っていたとはとてもいえない。初期のARMコアには、これがオンチップ・バス規格といえるような規範はなく、ARMコアを導入した各社は、各種周辺チップを集積するのに自社規格のオンチップ・バスを作って対応していたのが実状なのだ。このような状況は危ない、とARM社は見抜いたようだ。このまま放置すれば、同じARMコアといっても、各社は独自の進化を遂げることになり、ARM社の影響力はコアのみに留まってしまうからだ。そこでARM社は、ARMコアのための最初のバス規格であるAMBA 1.0を提唱した。AMBA 1.0は、システム・バスであるASB(Advanced System Bus)と、低速の周辺バスであるAPB(Advanced Peripheral Bus)の2つから構成される規格である。

 しかし結論からいえばAMBA 1.0はそれほど普及しなかった。すでに自社のバスを開発していた各半導体ベンダは、容易に新しい規格に移りたがらなかったし、ARM社も移行を強制しようとはしなかったからだ(強制しようにもできなかったと思うが)。それにAMBA 1.0の中心であるASB自体にも問題があった。フルカスタム設計ではあまり問題がなかったのだが、ASICなどを中心にしている半導体ベンダからすると一般的な設計フローに載せにくいという欠点があった。そのためASBに対応したのは、ARMのフルカスタム・コアの一部と、そのコア向けの設計の一部だけであったようだ。ただし、オンチップ・バスを標準化し、それをARMコアのSoCの集積基盤にする、というARMの強い意志だけは、多くの人が感じた。

 ASBの欠点を補正し、半導体ベンダの一般的なASICの設計フローに載せやすくしたのがAHB(Advanced High-Performance Bus)である。そして、AHBと改良されたAPBから構成されたのがAMBA 2.0規格である。これが業界標準化した規格だ。AMBA 1.0が普及しなかった原因を分析し、改善を施したARM社のAMBA 2.0普及戦略は、あまり取り上げられていないが、見事なものだ。ARMの強みは、自分が半導体IPベンダであるにもかかわらず、自社開発のIPだけにこだわらないところかもしれない。市場の主導権を握るために、他社からもAMBA 2.0規格をサポートする半導体IPを集めて提供した。この戦略により、急増していたARMライセンシーの中でも新参の半導体ベンダは、ARMコア向けに社内の設計蓄積がない(自社規格のバスを抱えていない)ことからAMBA 2.0を次々と採用していったのだ。その結果、サードパーティのデザイン・ハウスもよい市場になるとみて次々参入した。そうなると、古くからのARMライセンシーも、古い自社規格から乗り換え、ついにはMIPS Technologiesなどのほかのプロセッサ・コア・ベンダまで相乗りを始め、ついには業界標準となった。

設計の自由度を高めたAMBA 3.0

 現状のAMBA 2.0の中心は、AHBをマルチレイヤ化した、バスといいつつバス・マスタの複数の出入り口にそれぞれ1本ずつバスを配したような構成だ。マスタによっては複数のレイヤを使うこともある。例えば、プロセッサの命令フェッチとデータ読み書きは別レイヤ、DMAコントローラはまた別、画像アクセラレータも別という具合だ。これにより、プロセッサがROMからフェッチしているのと並行に、画像アクセラレータがRAMの中の画像を展開する、といった仕事が並列に実行できる。非常に多くのバス線が入り乱れることになるので、昔ながらの「バス」のイメージからは程遠いのだが、現状のLSI設計ツールとその運用フロー上は、どうせ分離しなければならない信号をそのとおりに使っただけの「自然な」構成となるので、設計上の抵抗はない。ただし、このバスにはスレーブ側で要求を裁かないとならない面倒さがあった。またマスタが1つの場合でも、スレーブの中に遅いスレーブが1個あればバスはずっと占有される。

 AMBA 3.0は、AMBA 2.0の信号を生かしつつ、新たな定義を加えて再構成したAXI(Advanced eXtensible Interface)と呼ぶバスで、AHBを置き換えている。AHBの信号はそのまま残っているのだが、AMBA 2.0ではピッタリと結合していたアドレスと制御とデータを、バラバラに動作できるようにした。AMBA 2.0ならアドレスを出し、読み出しなり、書き込みなりを制御して、結果が戻るまでの処理が一連であったため、中断しない限り別のバス・サイクルが途中に入ることはなかった。これを、アドレスを出せばそれに対する結果が戻らなくても、アドレス・バスには無関係な次のバス・サイクルが処理できるようになった。それどころか、後から入ったサイクルの結果が、前に戻ってきてもよい、というアウトオブオーダを許している。制御は面倒くさそうだが、AMBA 2.0で問題になるようなボトルネックはなくなった。

 アウトオブオーダ化により、反応の遅いサイクルが混ざっても速いサイクルの足を引っ張ることがなくなったためか、従来のAHB-APBブリッジなどとは別の「バスの継ぎ足し」ともいうべき機構も許されている。配線遅延が問題になる大規模なSoCに適用できるのはもちろん、もしかするとオンチップ・バスであるAMBAがとうとうチップの外に飛び出すことになるかもしれない。とはいえ、チップの外へ出てもSiP(System in Package:システムとして機能する複数の半導体チップを1つのパッケージに収めたもの)という形で、同じパッケージ内の別チップに入るだけでだろうから、一般ユーザーに認識されないのは従来と変らないだろう。

 発表されたばかりなので、このAMBA 3.0を使ってARM社が何を仕掛けてくるのかは分からない。しかし、SoC設計者すべてにとって、注意してウオッチするべき対象であるのは間違いない。一般ユーザーが無意識のうちに使っている存在であり続けるのが、ちょっとマトリックスのようで不気味ではあるが。記事の終わり


Massa POP Izumida
日本では数少ないx86プロセッサのアーキテクト。某米国半導体メーカーで8bitと16bitの、日本のベンチャー企業でx86互換プロセッサの設計に従事する。その後、出版社の半導体事業部を経て、現在は某半導体メーカーでRISCプロセッサを中心とした開発を行っている。
 
  関連記事 
第12回 キミはARMを知っているかい?
第15回 ARMプロセッサを知らずに暮らせない
 
 
     
「連載:頭脳放談」

@IT Special

- PR -

TechTargetジャパン

System Insider フォーラム 新着記事
  • Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
     Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
  • 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
     最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
  • IoT実用化への号砲は鳴った (2017/4/27)
     スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
  • スパコンの新しい潮流は人工知能にあり? (2017/3/29)
     スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

System Insider 記事ランキング

本日 月間
ソリューションFLASH