StrongARM(ストロングアーム)は、ARM V4 命令セットアーキテクチャ (ISA) に基づいてDECが開発したマイクロプロセッサファミリである。後にインテルへ売却され、最終的にはXScaleに取って代わられた。

## 歴史

StrongARMは ARMとDECの共同プロジェクトとして、既存のARMシリーズよりも高速なCPU(ただし完全互換ではない)を開発することから始まった。StrongARMは低消費電力の組み込み市場の中でも従来のARMシリーズでは性能が足りなかったハイエンド市場を目指して設計された。ターゲットはPDAやセットトップボックスである。

DECはマサチューセッツ州を半導体部門の拠点としていたが、シリコンバレーの才能ある人材を獲得しやすくするためカリフォルニア州パロアルトにデザインセンターを開設した。ここがStrongARMプロジェクトの拠点となった。また、DECからAppleやモトローラに一旦移籍して戻った技術者らが作ったテキサス州オースティンの設計拠点もプロジェクトに関わっている。プロジェクトは1995年に始まり、まもなく最初の設計である SA-110 が完成した。

訴訟問題の結果として1997年、DECの StrongARM を含む半導体部門は後にインテルに売却された。インテルは不振だった同社のRISCプロセッサ(i860, i960)の代わりにStrongARMを使った。2000年、その設計はインテルのXScaleに取って代わられた。なお、そのXScaleも2006年にマーベル・テクノロジー・グループに売却された。

DECの半導体部門がインテルに売却された際、パロアルトの技術者の多くはMIPSアーキテクチャの通信向け System-on-a-chip (SoC) を設計していたベンチャー SiByte(後にブロードコムが買収)へ移籍した。オースティンの設計グループもMIPSの携帯機器向け SoC を設計するベンチャー Alchemy Semiconductor に参加した。

## SA-110

SA-110は StrongARM ファミリの最初のマイクロプロセッサである。当初 100MHz、160MHz、200MHz で動作するバージョンが1996年2月5日に発表された。発表時点でサンプルが用意されていたが、量産品が出荷されたのは1996年中ごろである。より高速な166MHz版と233MHz版が1996年9月12日に発表された。こちらも発表時点でサンプルが用意されており、量産品は1996年12月に出荷となった。1996年時点で、携帯機器向けマイクロプロセッサではSA-110が最高性能を誇っていた。SA-110はApple Newtonの後期に発表されたメッセージパッド2000/2100で採用され、他にもエイコーン社のRisc PCなど多数の製品で使われた。SA-110は、Daniel W. Dobberpuhl、Gregory W. Hoeppner、Liam Madden、Richard T. Witek らが設計した。

### 詳細

SA-110のマイクロアーキテクチャは単純である。スカラー設計であり、5段の典型的な命令パイプラインで命令をイン・オーダー実行する。内部は、IBOX, EBOX, IMMU, DMMU, BIU, WB, PLL というブロックで構成されている。IBOXはパイプラインの最初の2段を処理するブロックで、命令をフェッチし、デコードし、発行する。命令フェッチは1段目で行われ、デコードと発行は2段目で行われる。ARM命令セットには単純に実行できない複雑な命令もあり、IBOXではそれを単純な命令の列に変換する。IBOXは分岐命令も扱う。SA-110には分岐予測機能はないが、分岐命令自体が高速に処理される。

命令の実行は3段目から開始される。このステージはEBOXで処理され、その中にレジスタファイル、ALU、バレルシフタ、乗算器、条件処理ロジックなどが含まれる。レジスタファイルには3つのリードポートと2つのライトポートがある。ALUとバレルシフタは1サイクルで命令を実行する。乗算器はパイプライン化されておらず、実行には複数サイクルを要する。

IMMUとDMMUはそれぞれ、命令とデータのメモリ管理ユニットである。各MMUには32エントリのフルアソシアティブTLBがあり、1エントリで4KB、64KB、1MBのいずれかをマッピングできる(可変ページサイズ)。ライトバッファ (WB) は1エントリ16バイトで8エントリある。それによってストア動作をパイプライン化できる。バスインタフェースユニット (BIU) はSA-110と外部とのインタフェースである。

PLLは外部から供給される3.68MHzのクロック信号から内部クロック信号を生成する。これはDECが設計したものではなく、スイスのヌーシャテルにある Centre Suisse d'Electronique et de Microtechnique (CSEM) が設計を請け負った。

命令キャッシュとデータキャッシュはそれぞれ16KBで、32ウェイ・セットアソシアティブで仮想インデックスである。StrongARMは遅い(それゆえに単純で安価な)メモリと使うことを念頭に設計されている。したがって、セットアソシアティブ数を高くすることでキャッシュヒット率を実現し、仮想インデックスにすることでキャッシュを通すメモリアクセスとキャッシュを通さないメモリアクセスを同時に扱えるようにしている。キャッシュはトランジスタ数を多く費やすため、ダイの半分をキャッシュで占めている。

SA-110は250万個のトランジスタを集積しており、大きさは 7.8mm×6.4mm (49.92mm) である。DECがマサチューセッツ州ハドソンにあるファブ-6で、同社独自の CMOS-6 プロセスで製造した。CMOS-6 はDECの第6世代CMOSプロセスで、機能サイズ0.35μm、実効チャネル長0.25μmだが、SA-110ではアルミニウム配線層を3層しか使っていない。電源電圧は1.2Vから2.2Vの可変であり、電力消費量と性能のバランスを調整できるようになっている(電圧が高いほど高周波数で駆動できる)。パッケージは144ピンの薄型QFP (TQFP) である。

## SA-1100

SA-1100はSA-110の派生品でDECが開発した。1997年発表。PDAをターゲットとしており、SA-110との違いはそういった市場にふさわしい機能を組み込んだ点である。データキャッシュの大きさは8KBに減らしている。

追加機能としては、メモリコントローラ、PCMCIAコントローラ、カラーLCDコントローラをダイ上のシステムバスに接続する形で内蔵し、システムバスに接続した周辺バスにシリアルI/Oチャネルを5つ装備した。メモリコントローラは、FPM、EDO DRAM、SRAM、フラッシュメモリ、ROMをサポートしている。PCMCIAコントローラは2スロットをサポートしている。メモリアドレスおよびデータバスはPCMCIAインタフェースと共有される。シリアルI/Oチャネルはスレーブ側USBインタフェース、SDLC、UART×2、IrDAインタフェース、MCP、同期シリアルポートを実装している。

SA-1100には周辺チップであるSA-1101があり、インテルが1998年10月7日にリリースした。SA-1101は、SA-1100に内蔵された周辺回路を補う周辺機能を提供するもので、ビデオ出力ポート、PS/2ポート×2、SA-1100上のものを置換するUSBコントローラとPCMCIAコントローラがある。このデバイスの設計はDECが始めたが、インテルが取得した際には完了しておらず、インテルが設計を引き継いで完成させた。DECから引き継いだハドソン工場で製造している。

SA-11000は250万個のトランジスタを集積し、大きさは8.24mm×9.12mm (75.15 mm) である。0.35 μm CMOSプロセスで、アルミニウム配線層は3層であり、208ピンTQFPPでパッケージされている。

## SA-1110

SA-1110はSA-110からの派生品で、インテルが開発した。1999年3月31日、SA-1100の代替品として発表された。発表では、サンプル出荷を1999年6月、量産出荷を同年末としていた。SA-1110は2003年初めごろまで販売された。133MHz版と206MHz版がある。SA-1100との違いは、66MHz(133MHz版)または103MHz(206MHz版)のSDRAMをサポートした点である。周辺チップとしてSA-1111もリリース。SA-1110は256ピンのMBGAでパッケージされている。携帯電話、PDA(コンパック iPAQ、HP Jornada、シャープ SL-5x00)、シンピュータなどに採用された。

## SA-1500

SA-1500はSA-110の派生品で、DECがセットトップボックス向けに開発した。DECが設計し少量だけ生産したが、インテルでは生産しなかった。200から300MHzで駆動できる。SA-110に対する改良点は、Attached Media Processor (AMP) と呼ばれるコプロセッサとSDRAMおよびI/Oバスのコントローラを内蔵した点である。SDRAMコントローラは100MHzのSDRAMをサポートし、I/Oコントローラは最高50MHzで動作する32ビットI/Oバスを実装し、各種周辺機器や周辺チップ SA-1501 を接続できる。

AMPはマルチメディア向けに設計された命令を実装しており、整数および浮動小数点数の積和演算やSIMD演算を行う。命令語長は64ビットで、演算命令以外に分岐命令やロード/ストア命令もある。36ビット64本のレジスタファイルと一連の制御レジスタがある。SA-110コアとはチップ上のバスでやりとりし、データキャッシュを共有している。AMPにはALU、シフタ、分岐ユニット、ロード/ストアユニット、積和ユニット、単精度FPUが含まれる。また、AMPには書き換え可能な512エントリのコントロールストアがあり、ユーザー定義命令をサポート可能である。

周辺チップのSA-1501は動画・音声処理機能とPS/2ポート、パラレルポートなど各種周辺機器を接続可能なI/O機能を有する。

SA-1500は330万個のトランジスタを集積しており、チップ面積は 60 mm である。0.28 μm CMOS プロセスで製造されている。内部ロジックは1.5から2.0Vで駆動し、I/Oは3.3V。消費電力は100MHzで0.5W、300MHzで2.5Wである。240ピンMQFPまたは256ピンPBGAでパッケージされている。