PA-RISC

PA-RISC（ぴーえーりすく）は、ヒューレット・パッカード社 (HP) のSystems & VLSI Technology Operationが開発したマイクロプロセッサ アーキテクチャである。

その名前にも含まれているようにRISCアーキテクチャの実装であり、PAはPrecision Architecture（精密なアーキテクチャ）の略である。また、HP/PAつまりHewlett Packard Precision Architectureと呼ばれることもある。

1986年2月26日、PA-RISCの最初の実装であるTS1を採用した HP 3000 Series 930 と HP 9000 Model 840 が発表された"One Year Ago". (26 February 1987). Computer Business Review.Hewlett-Packard Company (September 1987). Hewlett-Packard Journal 38 (9): p. 3.。

HPとインテルは Itanium（IA-64 ISA）を共同開発し、PA-RISCはItaniumに取って代わられたPA-RISCの歴史に幕、HPが最後の製品リリースでItaniumへの移行を完了 マイナビ、2005年6月1日。2008年末にはPA-RISCベースの HP 9000 システムの販売を終了したが、サポートは2013年まで継続予定であるHow long will HP continue to support HP 9000 systems?。

 背景 
サムネイル|PA-RISCロゴ
1980年代後半、HPはCISCのCPUを使った4つのコンピュータシリーズを製造していた。1つは80286ベースのPC/AT互換機 Vectra シリーズだが、残る3つはインテルベースではない。1つはアポロコンピュータ社を買収した際に得たモトローラの68000ファミリを使ったUNIXワークステーション HP Series 300 で、残る2つは Silicon-on-sapphire (SOS) 技術を使ったHP独自設計の 16ビットCPUのHP3000シリーズと、独自設計のマイクロプロセッサを使ったUNIXワークステーションの HP 9000 シリーズ（16ビットおよび32ビット）である。HPはこれらPC互換機以外のマシンをPA-RISCを用いてひとつの RISC CPU ファミリに統合しようとしていた。

Precision Architecture は1986年に登場した。当初、32ビットの整数レジスタを32本と64ビットの浮動小数点レジスタを16本持っていた。浮動小数点レジスタが16本では性能に悪影響があることがわかり、バージョン1.1で倍の32本にしている。設計を行ったアーキテクトは、Allen Baum、Hans Jeans、Michael J. Mahon、Ruby Bei-Loh Lee、Russel Kao、Steve Muchnick、Terrence C. Miller、David Fotland、William S. Worley らであるSmotherman, Mark (2 July 2009). Recent Processor Architects.。

 PA-7000シリーズ 
初期のPA-RISCチップは32ビットであった。最初の実装TS1は、TTL (74F) チップを組合わせてCPUを構成したものである。その後、VLSIを使ったマルチチップ方式となり、NMOSプロセス（NS1とNS2）とCMOSプロセスのもの（CS1とPCX）が作られた。1980年代終盤、そういった初期のPA-RISCチップがHP3000シリーズの新しいマシン930と950に使われた。これらのマシンは当時、開発した研究所の名前をとってSpectrumと呼ばれた。OSはMPE/iXが動作した。HP 9000シリーズもすぐにPA-RISCプロセッサを導入し、OSはHP製UNIXのHP-UXであった。

PA-RISCプロセッサ上に移植された他のオペレーティング・システムとしては、Mach、Linux、OpenBSD、NetBSD、NEXTSTEP、そしてリリースされなかったWindows NTがある。

PA-RISCの興味深い点は、そのシリーズのほとんどがL2キャッシュを持たなかったことである。その代わり大きな一次キャッシュを使っているが、以前は別チップをバスで接続していたが、現在は内蔵している。PA-7100LCとPA-7300LCだけがL2キャッシュを持つ。もうひとつPA-RISC独自と言えるのは7100LCで初めて導入された"Multimedia Acceleration eXtensions (MAX)"形式のマルチメディア命令 (SIMD) である。

 PA-8000シリーズ 
1996年、ISAが64ビットに拡張され、PA-RISC 2.0 と名付けられた。積和演算も追加されており、浮動小数点を多用するアルゴリズムで役立つ。MAX SIMD 拡張も備えており、マルチメディア・アプリケーションで役立つ命令を提供している。最初の PA-RISC 2.0 の実装は1996年1月、 としてリリースされた。PA-8000は10個の機能ユニットを持ち、先進的なパイプラインシステムを搭載していた。また、命令キャッシュをふたつに分け、長期保持のキャッシュと短期保持のキャッシュを設けた。1997年にリリースされたPA-8200はPA-8000とほぼ同じであるが、分岐予測機能が改善され、TLBミス率が低減され、大容量高速キャッシュを持っていた。

PA-8500では1.5Mバイトの一次キャッシュをチップ上に組み込み、大きな性能向上を実現した。また、同時にDDRバスを導入し、最大2GB/sのメモリ転送速度を実現した。分岐予測のための履歴テーブルは2倍の2048エントリとなり、TLBは120エントリから160エントリに拡張された。

8600は8500の高クロック版であり、"quasi-LRU instruction cache eviction policy"（擬似LRU命令キャッシュ入れ替えポリシー）を採用している。8700は8600をさらに高クロックにして、2.25MBの一次キャッシュを持っている。また、擬似LRU命令キャッシュ入れ替えポリシー（命令キャッシュの中で最も使われていないエントリを見つけて入れ替える方式。本当に使用頻度を記録するのは至難なので「擬似」的に使用頻度を決める）とデータプリフェッチ機能（ロード命令を実行する前に、メモリから読み込んでくる）を備えている。一次キャッシュは大容量であるもののあまり速くなく、性能の足かせとなった。しかし、プロセスのサイズを考慮するとHPが内蔵したキャッシュのサイズは印象的である。

PA-8800（コードネームMako）は2つの独立したマクロプロセッサをひとつのダイに組み込んでいる。そして、ひとつのチップで2ウェイのSMPを構成する。8800内の各プロセッサは1.5Mバイトの一次キャッシュを持つが、HPは一次キャッシュのみというポリシーをやめて32MBの外部L2キャッシュをサポートした。外部バスは6.4GB/sのItanium2のバスを採用し、PA-RISCとItaniumに共通のサーバデザインを採用した。

PA-8900は8800によく似ているが、L2キャッシュを64MBまで拡張し、キャッシュエラー検出や訂正などの機能を強化した。噂されていたような8800のダイ縮小版ではない。これがPA-RISCシリーズの最後のマイクロプロセッサである。

HP社の方針と思われるが、PA-RISCは高性能であるものの周辺を含めたシステムとしての販売のみを行ってきたため、MIPSのように広く使われることはなかった。PA-RISCは既にその役目を終え、MIPSのように組み込みプロセッサとして残ることはない。

 モデルの変遷 
 モデル別名登場年周波数[MHz]メモリバス[MB/s]プロセス[μm]トランジスタ[百万個]ダイサイズ[mm2]電力[W]Dキャッシュ[kB]Iキャッシュ[kB]L2キャッシュ[MB]ISA備考 TS-1 ?19868??——???—1.0 CS-1 ?19878?1.60.16472.931—0.25—1.0Marston, A. et al. (1987). "A 32b CMOS single-chip RISC type processor". ISSCC Digest of Technical Papers. pp. 28–29. NS-1 ?198725/30?1.50.14470.56???—1.0Yetter, J. et al. (1987). "A 15 MIPS 32b Microprocessor". ISSCC Digest of Technical Papers. NS-2 ?198927.5/30?1.50.18319627512512—1.0Boschma, Brian D. et al. (1989). "A 30 MIPS VLSI CPU". ISSCC Digest of Technical Papers. pp. 82–83, 299 PCX  ?1990?????????1.0 PCX-S  PA-7000 199166?1.00.58201.6?256256—1.1a PCX-T   199233–100?0.80.85196?20481024—1.1b PCX-T  PA-7150 1994125?0.80.85196?20481024—1.1b PCX-T'   19941209600.551.262103010242048—1.1c PCX-L   199460–100?0.750.9201.67–11—121.1d PCX-L2  PA-7300LC 1996132–180?0.59.2260.1?64640–81.1e PCX-U   1996160–1809600.53.8337.68?10241024—2.0 PCX-U+  PA-8200 1997200–2409600.53.8337.68?20482048—2.0 PCX-W   PA-8500 1998300–44019200.25140467?1024512—2.0HP L1000 & L2000 (rp5400/5450) Servers OpenPA.net PCX-W+  PA-8600 2000360–55019200.25140467?1024512—2.0 PCX-W2  PA-8700(+) 2001625–87519200.18186304<7.1@1.5 V1536768—2.0 Mako  PA-8800 2003800–100064000.13300361?768/core768/core322.0 Shortfin  PA-8900 2005800–110064000.13???768/core768/core642.0

 脚注・出典 

 外部リンク 
 OpenPA.net 分かりやすいPA-RISCチップとコンパイラに関する情報
 PA-RISC Linux PA-RISC向けLinux移植に関するサイト
 PA8800 Risc Processor の概要 LostCircuits
 各種PA-RISCプロセッサの画像 chipdb.org

Category:マイクロプロセッサ
Category:ヒューレット・パッカードの製品
Category:命令セットアーキテクチャ