雑誌無償購読申込み 最新号 バックナンバー 広告資料請求 EDN Japanについて お問合せ
雑誌無償購読申し込み
メールニュースレター登録
登録内容変更
アナログ IC/ディスクリート
電源/電池/コントローラー
PLD / メモリー
組み込みシステム
コンピュータ&ボード
EDA/IP/CAE/ソフトウェア
電子部品
計測器
ディスプレイ
デジタル家電
通信・ネットワーク
カーエレクトロニクス/産業機器
EDN Japan 記事検索
検索方法の詳細
雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
microprocessorreport
2004年2月号
英アーム社が携帯電話以外の
組み込み用途に本腰


英アーム社は、ARMアーキテクチャーの32ビットRISCプロセッサー・コア「ARM1156T2-S」を開発した。ハード・ディスク装置やデジタル・スチル・カメラ、車載用機器などの制御用途を狙った製品である。ARMプロセッサー・コアとしては初めて、処理性能の高いコード圧縮命令セット「Thumb(サム)-2」を搭載するとともに、C言語処理に特化した分岐予測機構を備えた。 (本誌)

マーカス・レヴィ 米マイクロプロセッサー・レポート誌* シニア・エディター
Markus Levy Microprocessor Report Senior Editor
Microprocessor Reportとは
プロセッサー技術の専門ニュースメディア
 米Microprocessor Report誌(英文)は、EDN Japanと同じリード・エレクトロニクス・グループが発行しているプロセッサー技術の専門ニュースメディアです。米Microprocessor Report誌のご好意により、同誌のニュース解説記事をEDN Japanは毎月独占翻訳掲載しています。
 このほどEDN Japanは、Microprocessor Report誌のご購読受け付け業務を日本国内在住の皆さまに向けて開始しました。プロセッサー技術の詳細を誰よりも早く入手できる専門メディアをこの機会にお試しください。
詳細はこちら
 英アーム社*が開発した新しいプロセッサー・コア「ARM1156T2-S」は、同社が携帯電話機用のマイクロプロセッサー市場をほぼ占領したとの宣言に違いない。最近の同社の課題は、ライセンス先企業を増やすことにあった。このため、ネットワーク機器や外部記憶装置、車載用電子機器、画像処理機器などの市場を積極的に狙ってきている。これらの機器がマイクロプロセッサーに要求する性能仕様は、携帯電話機向けプロセッサーとは大きく異なる。そこでARM1156T2-Sを開発したのである。同社はこのプロセッサー・コアの概要を、2003年のマイクロプロセッサー・フォーラム*で公表した。
 ARM1156T2-Sは、ARMプロセッサー・コアの最新世代である「ARM11」ファミリーに所属する*1)。同ファミリーの初代製品で前品種でもある「ARM1136J-S」が搭載している機能の多くを継承した。いずれのコアも、ARM v6命令セット・アーキテクチャー*TCM*、TCMにロードするためのDMA*、遅延時間の短い割り込みモードをサポートする。いずれも、論理合成可能な(シンセサイザブル)コアである。そのパイプライン構成は、メモリー・アクセスの遅延時間として2クロック・サイクルを許容する。両品種とも、最大動作周波数は550MHz(0.13μmの製造技術による最悪値)である。オプションで、ベクトル浮動小数点プロセッサー・コアを用意する*2)
 ただしARM1136J-SとARM1156T2-Sは、ここからが大きく違う。型名に含まれる「J」と「T2」が、違いの大半を示す。記号「J」は、ジャバ(Java)言語プログラム処理用アクセラレーター技術「Jazelle(ジャゼール)」の搭載を意味する。ARM1156T2-S(以降は「ARM1156」と表記)では外されている。2002年初めに登場した「ARM966E-S」以降、「ジャバ言語をサポートしない」プロセッサー・コアの投入は久しぶりである。
 ジャバ言語をサポートしないというアーム社の決断は、ARM1156が狙う応用分野を明確に示している。ジャバ言語のサポートが必須とも言える携帯電話機市場には、興味がないという意味だ。Jazelleを搭載しないことによる論理ゲート数の削減量はわずかに過ぎない。むしろ、Jazelle用のパイプライン段がなくなることによって、C/C++言語プログラム処理における分岐予測の効率を高められるという利点の方が大きい。もちろんARM1156コア自体には、Jazelleの追加が問題となるような理由はない。
 もう1つの大きな違いは、ARM1156の記号「T2」が示す。32ビットと16ビットが混在する命令セット・アーキテクチャー「Thumb(サム)-2」の内蔵である*3)。Thumb-2の内容は、アーム社が2003年のエンベデッド・プロセッサー・フォーラム*で公表した。ARM1156は、Thumb-2を実装した最初のプロセッサー・コアになる。また、最新のオンチップ・バスAMBA*バージョン3.0(AXIバス)をサポートする。

C言語処理に特化した分岐予測

 前世代である「ARM10」ファミリーが登場するまでは、ARMプロセッサー・コアは分岐予測*機構を搭載していなかった。同ファミリーである「ARM1020」と「ARM1026」は、静的分岐予測機構を実装した。後方には分岐し、前方には分岐しないと予測する単純なアルゴリズムである。予測の確度は65〜70%程度だった。
Advertisement
 ARM11ファミリーでは初めて、動的分岐予測機構を組み込んだ。その最初の製品であるARM1136J-S(以降は「ARM1136」と表記)では、128エントリーの4状態分岐先アドレス・キャッシュ(BTAC*)を利用した動的分岐予測機構を搭載した。さらに、BTACでは見つけられなかった分岐を扱う、静的分岐予測機構を組み込んでいた。この静的分岐予測機構はARM10ファミリーと同様の仕組みであり、後方への分岐はループと想定して予測し、前方へは分岐しないと予測するというものだった。これらの分岐予測機構によって85%の予測確度を達成していた。
 ARM1136のBTACの場合、パイプラインのデコード段においてすべての分岐が検出される。これが分岐を検出する最初の機会となる。分岐先アドレスはパイプラインの発行段(すなわち次段)で生成される。言い換えると、最初に検出された分岐は、ARM1136では必ず予測が外れる。ただし分岐先アドレスが一度BTACに格納されてしまえば、パイプラインのフェッチ段で分岐予測されるようになる。
 これに対してARM1156の分岐予測機構では、256エントリーの分岐履歴テーブル(BHT*)を使用してローカルな予測の履歴を格納する。そしてパイプラインの第3フェッチ段ですべての分岐を予測可能にしている(図1)。デコード段で最初に分岐を検出する作業は不要であり、初めての分岐も第3フェッチ段で予測できる。この技術によって90%以上の予測確度が得られるとアーム社は主張している。
 前品種であるARM1136でBTACが適切だったのは、ジャバ言語プログラムが必要とする分岐予測手法と一致していたからである。BTACは分岐命令のアドレスを調べ、キャッシュから分岐先を得る。分岐を識別するために、命令ストリームを調べる必要はない。このため、ジャバ言語プログラムでの分岐予測を単純化できる。
 一方、ARM1156のBHTはフリップフロップで構成できるほど回路規模が小さい。また信頼性に優れる。BTACと違い、誤り訂正コードのサポートは不要である。不正な分岐先アドレスが発生した場合、BTACではプログラムがクラッシュする原因となりかねない。これに対してBHTでは、最悪でも分岐の予測外れにとどまる。

パイプラインは9段に

 ARM1156のパイプライン構成は、第3フェッチ段を追加してある以外は、ARM1136と同じである(図1)。この追加段によってパイプラインの段数は9段となり、米ミップス・テクノロジーズ社の最新32ビットRISCアーキテクチャー「MIPS 24K」と同様の長さを備えることになった。
 パイプライン段数の増加からは通常、2つの結果が推測できる。1つは、動作周波数が高まるということ。もう1つは、1命令の処理に必要なクロック数が増えるということである。
 ところが、これらの推測はいずれも正しくなかった。なぜなのだろうか。パイプラインにおける第3フェッチ段の機能は、分岐予測、分岐のフォールディング、Thumb-2命令のアラインメント*だけである。ほかの各段は本質的にはARM1136と変わらない。同じ作業負荷を実行している。従ってクロック周波数は変わらないのである。
 プリフェッチ・バッファーで実行するThumb-2命令のアラインメントは、性能を高めるための機能である。アラインメントなしでは、16ビット命令と32ビット命令が混在する。デコーダーが命令を読み込むために1クロック・サイクルではなく、2クロック・サイクルが必要になってしまう。
 ARM1156のプリフェッチ・バッファーは5エントリーの深さがある。ARM1136では3エントリーだった。このため、ARM1156では分岐フォールディングの効果が大きい。プリフェッチ・バッファーはアラインメントに加え、パイプラインの残りからフェッチ・ユニットを分離するのにも使われている。
 ARM1156は、ARM1136と同じエントリー数である3エントリーのリターン・スタックを搭載している。ただしARM1136では、リターン・スタックをデコード段の後に配置していた。リターン・スタックからポップした命令は、第1フェッチ段と第2フェッチ段を通って戻る。このため、4クロック・サイクルを余分に消費していた。そこでARM1156では第3フェッチ段にリターン・スタックを配置し、余分なクロック・サイクルを不要にした。
 ARM1156のような長大なパイプラインでは通常、分岐予測が外れたときのペナルティーが大きくなってしまう。ARM1136の6クロック・サイクルに対し、ARM1156では7クロック・サイクルのペナルティーが生じる。しかしEEMBC*ベンチマークを使った事前の解析によると、前述のような改善策による、1命令の処理に必要なクロック数の低減が功を奏し、分岐予測の外れによる処理性能の低下は発生していない。実際、平均では12%の性能向上をマークした。いくつかのベンチマークでは20%の向上を示している。実際のプロセッサーではこういった数値に対して±5%の変動があり得る。それでもARM1156の長大なパイプラインが、処理性能に悪影響を及ぼさなかったことは明らかだ。

ソフト・エラー対策の搭載

 トランジスタの寸法を小さくすることは、高速化と低コスト化、低消費電力化に結びつく。しかし加工寸法が0.13μm以下になると、逆に消費電力が増え、また設計の複雑度が著しく上昇する。
 さらに、アルファー線などの放射線によってオンチップ・メモリーがソフト・エラーを起こすという問題が無視できなくなる。そこでARM1156ではARMコアとしては初めて、オプションで誤り訂正(ECC*)付きの高信頼性メモリーを用意した。これまでも「ARM 1026EJ-S」では、パリティー生成論理を搭載していた。ただしパリティー・チェック機能はサポートしていない。
 ARM1156プロセッサー・コアが狙う高信頼の組み込み機器市場は、ビット誤りに対する耐性を求める。これはARM11ファミリー全体への要求ではなく、ARM1156の応用分野に特有の要求なのである。
 ARM1156はまたオプションで、キャッシュRAM用のパリティーを用意した。命令キャッシュの場合、誤りビットを含む命令キャッシュ・ラインをハードウエアで無効にできる。キャッシュ・ミス信号を送ることによって処理を一時停止し、命令コードを強制的に再ロードさせる。データ・キャッシュでソフト・エラーが発生した場合は、プロセッサーが例外処理を実行する。ソフトウエアが誤りの大きさを評価し、必要に応じて書き込み済みキャッシュの内容を再生可能にするためである。ただしデータの完全性を求めるのであれば、ライトスルー・キャッシュを採用した方が良いだろう。
 このほか、TCMにパリティーと誤り訂正機能を用意するオプションもある。ただしこの機能は、プロセッサーの動作をメモリー・アクセスの第2サイクル(第2フェッチ段あるいは第2データ段)までストールさせる。この段階まで、データが正しいかどうかを確認する方法がないからだ。

リアルタイム処理を究める

 組み込み機器市場に食い込むため、ARM1156ではリアルタイム処理向けの機能を強化している。まず、メモリー保護ユニット(MPU*)の保護単位を細かくし、32バイト単位とした。メモリー保護ユニットそのものは「ARM946」やARM1026と同じであるが、従来は保護単位が4Kバイトと大きかった。また割り込みロックアウトのような状態を防ぐため、マスク不可割り込みをサポートした。Thumb-2拡張により、ARM命令の状態でもThumb命令の状態でも割り込み処理を受けられるようになった。例外処理からの戻りが若干改善されるかもしれない。
 ARM1156は、ARM v6アーキテクチャーで導入した、メトリクス(Metrics)・ユニットと呼ぶイベント・カウンターを搭載している。このカウンターは、命令キャッシュ・ミスやデータ・キャッシュ・ミス、レジスターの依存関係によるストール、分岐予測のミスなどのプロセッサー・イベントをモニターする。この機能はマスク不可割り込みと連動して動く。タスク処理時間と割り込み処理時間を制限するためである。
 ARM1156では、ARM1136とは異なる利用モデルを基にして階層メモリー・システムのレベル1メモリーを改良した。以前のARMプロセッサー・コアでは、負荷の重いリアルタイム・タスクをTCMに置いていた。キャッシュ・メモリーに置くよりもプログラムの挙動を確定的にできたからだ。ただし、命令TCMからデータにアクセスすることに対するペナルティーが存在する(例えばコンパイラーがインライン定数を生成する場合)。
 このことは、前品種であるARM1136が狙った応用分野では大きな問題とはならない。しかし今回のARM1156が狙う応用分野では問題となる。ARM1156のThumb-2命令セットがその解決策である。Thumb-2命令セットは、コード空間におけるデータの使用を最小化する命令と、メモリー・システムの変更を最小限に抑える命令を備えている。このため、アクセスに対するペナルティーを改善できる。
 分岐予測の存在は、リアルタイム処理では予測しづらい要素を加えてしまう。そこでARM1156では、プログラムから動的分岐予測を止める機能を持たせることにより、リアルタイム応答性を高めている。ただし、いくつかのアプリケーション・プログラムとベンチマーク・テストにおけるBHTの挙動を解析した結果、アーム社は予測の不確定な状態が、安定した状態に非常に早く収束するとの知見を得ている。
 アーム社のプロセッサー・コアはこれまで、携帯電話機市場で成功を収めてきた。マイクロプロセッサー・レポート誌はARM1156が、携帯電話機以外の組み込み機器市場で成功すると考える。

用語解説 / 会社情報
以下の説明はEDN Japanが作成した。
米マイクロプロセッサー・レポート誌*
リード・エレクトロニクス・グループの米In-Stat/MDR社が発行するマイクロプロセッサー技術専門誌。ホームページ・アドレスは下記の通り。
http://www.mdronline.com/mpr/
▲本文へ戻る
【英アーム社】
ARM Ltd.
日本法人はアーム。同社のホームページ・アドレスは下記の通り。
http://www.arm.com/jp/
▲本文へ戻る
【マイクロプロセッサー・フォーラム】
Microprocessor Forum
マイクロプロセッサー技術に関する講演会。毎年秋に米国で開催される。米マイクロプロセッサー・レポート誌の発行元である米In-Stat/ MDR社が主催している。同フォーラムのホームページ・アドレスは下記の通り。
http://www.mdronline.com/mpf/
▲本文へ戻る
*1)
ARM11ファミリーの概要はEDN Japan、2002年9月号、p.73に既報。
▲本文へ戻る
【ARM v6アーキテクチャー】
アーム社が開発した最新世代のプロセッサー・アーキテクチャー。
▲本文へ戻る
【TCM】
tightly coupled memory
▲本文へ戻る
【DMA】
direct memory access
▲本文へ戻る
*2)
ARM1156T2-Sの動作周波数は333M〜550MHz(0.13μm製造技術での最悪値)。処理性能は1.35MIPS(Dhrystone2.1)/MHz、消費電力は0.75mW/MHz。基本構成の論理ゲート数は24万ゲート(キャッシュを除く)。回路面積は7.0mm2(0.13μm製造技術)。出荷予定時期は2004年第2四半期である。ベクトル浮動小数点コプロセッサーを内蔵したARM1156T2F-Sも同じ時期に出荷の予定。
▲本文へ戻る
*3)
Thumb-2の概要は、EDN Japan、2003年8月号、p.19に既報。
▲本文へ戻る
【エンベデッド・プロセッサー・フォーラム】
Embedded Processor Forum
組み込み用プロセッサー技術に関する講演会。毎年春に米国で開催される。マイクロプロセッサー・レポート誌の発行元である米In-Stat/ MDR社が主催している。同フォーラムのホームページ・アドレスは下記の通り。
http://www.mdronline.com/epf/
▲本文へ戻る
【AMBA】
Advanced Microcontroller Bus Architecture
▲本文へ戻る
【分岐予測】
branch prediction
パイプライン処理において、分岐命令の結果をあらかじめ予測して次の命令を継続して実行すること。コンパイラーがプログラムを解析するときに分岐予測を実行して予測した情報を埋め込む静的分岐予測と、コンパイラーは分岐予測せず、プログラムの実行時に分岐を予測する動的分岐予測がある。
▲本文へ戻る
【BTAC】
branch-target address cache
▲本文へ戻る
【BHT】
branch-history table
▲本文へ戻る
【アラインメント】
alignment
命令デコーダーに入力する前に、演算コードの先頭部をそろえること。Thumb-2命令セットでは32ビット命令と16ビット命令が混在するので、アラインメントが必要になる。
▲本文へ戻る
【EEMBC】
Embedded Microprocessor Benchmark Consortium, Inc.
組み込み機器用マイクロプロセッサーの性能をテストする業界団体。ホームページ・アドレスは下記の通り。
http://www.eembc.org/
▲本文へ戻る
【ECC】
error correction code
誤り訂正符号
▲本文へ戻る
【MPU】
memory-protection unit
メモリー保護ユニット
▲本文へ戻る
雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
Reed Electronics Group
Electronic BUSINESS Japan | Design News Japan | Semiconductor INTERNATIONAL | DETAIL JAPAN
EDN Japanについて | 広告掲載について | サイトマップ | お問合せ
 Copyright (C) 2000-2007 Reed Business Information Japan K.K. 
個人情報に関する方針 | 著作権・リンクについて | 会社情報