
R4000は、MIPSコンピュータシステムズ社が開発したMIPS III命令セットアーキテクチャ(ISA)を実装したマイクロプロセッサです。1991年10月1日に正式に発表され、最初の64ビットマイクロプロセッサの1つであり、MIPS IIIを初めて実装したマイクロプロセッサでした。1990年代初頭、RISCマイクロプロセッサがIntel i486などのCISCマイクロプロセッサに取って代わると予想されていた頃、R4000は共通のRISCプラットフォームを定義することを目的とした業界標準であるAdvanced Computing Environment (ACE)のマイクロプロセッサとして選定されました。ACEは最終的にいくつかの理由により失敗に終わりましたが、R4000はワークステーションおよびサーバー市場で成功を収めました。
R4000 には、二次キャッシュをサポートしないエントリーレベルのモデルの R4000PC、二次キャッシュを備えているがマルチプロセッサ機能を備えていないモデルの R4000SC、および二次キャッシュを備え、マルチプロセッサ システムに必要なキャッシュ コヒーレンシ プロトコルをサポートするモデルの R4000MC の 3 つの構成があります。
R4000は、8段整数パイプラインを備えたスカラー・スーパーパイプライン方式のマイクロプロセッサです。第1ステージ(IF)では、命令の仮想アドレスが生成され、命令変換ルックアサイドバッファ(TLB)がアドレスから物理アドレスへの変換を開始します。第2ステージ(IS)では、変換が完了し、内部の8KB命令キャッシュから命令がフェッチされます。命令キャッシュはダイレクトマップ方式で、仮想インデックスと物理タグが付与されています。ラインサイズは16バイトまたは32バイトです。アーキテクチャ的には、32KBまで拡張可能です。
第3ステージ(RF)では、命令がデコードされ、レジスタファイルが読み込まれます。MIPS IIIでは、整数ユニット用と浮動小数点ユニット用の2つのレジスタファイルが定義されています。各レジスタファイルは64ビット幅で、32エントリを格納します。整数レジスタファイルには2つの読み出しポートと1つの書き込みポートがあり、浮動小数点レジスタファイルには2つの読み出しポートと2つの書き込みポートがあります。整数命令と浮動小数点命令の両方において、実行は第4ステージ(EX)から開始され、第8ステージ(WB)で完了するとレジスタファイルに書き戻されます。結果は可能な場合はバイパスされます。
R4000 には、整数命令を実行するための算術論理ユニット(ALU)、シフタ、乗算器、除算器、ロード アライナがあります。ALU は、64 ビットのキャリー選択加算器と論理ユニットで構成され、パイプライン化されています。シフタは 32 ビットのバレル シフタです。64 ビットのシフトを 2 サイクルで実行するため、結果としてパイプラインがストールします。この設計は、ダイ領域を節約するために選択されました。乗算器と除算器はパイプライン化されておらず、大きなレイテンシがあります。乗算は 32 ビットまたは 64 ビットの整数に対してそれぞれ 10 または 20 サイクルのレイテンシがあります。一方、除算は 32 ビットまたは 64 ビットの整数に対してそれぞれ 69 または 133 サイクルのレイテンシがあります。ほとんどの命令のレイテンシは 1 サイクルです。ALU 加算器は、ロード、ストア、および分岐の仮想アドレスの計算にも使用されます。
ロード命令とストア命令は整数パイプラインによって実行され、オンチップの 8 KB データ キャッシュにアクセスします。
R4000には、R4010と呼ばれるIEEE 754-1985準拠の浮動小数点ユニット(FPU)がオンダイで搭載されている。FPUはCP1 [ 1 ]で示されるコプロセッサである(MIPS ISAではCP0からCP3までと示される4つのコプロセッサが定義されている)。FPUは32ビットまたは64ビットの2つのモードで動作することができ、CPUステータスレジスタのFRビットを設定することで選択される。32ビットモードでは、単精度浮動小数点数を保持する場合、32個の浮動小数点レジスタは32ビット幅になる。倍精度数を保持する場合、16個の浮動小数点レジスタ(レジスタはペアになっている)が存在する。
FPUは、データまたはリソースの依存関係(ストールの原因となる)がない限り、ALUと並列に動作できます。FPUは、加算器、乗算器、除算器の3つのサブユニットで構成されています。乗算器と除算器は加算器と並列に命令を実行できますが、実行の最終段階で加算器を使用するため、重複実行には制限があります。そのため、特定の条件下では、各ユニットで1つずつ、最大3つの命令を同時に実行できます。FPUは、1サイクルごとに1つの命令をリタイアできます。
加算器と乗算器はパイプライン化されています。乗算器は4段の乗算パイプラインを備えています。十分な性能を得るために、マイクロプロセッサのクロック周波数の2倍で動作し、この高いクロック周波数を実現するためにダイナミックロジックを使用しています。除算は単精度または倍精度演算で23サイクルまたは36サイクルのレイテンシを持ち、平方根演算は54サイクルまたは112サイクルのレイテンシを持ちます。除算と平方根演算にはSRTアルゴリズムが使用されます。
メモリ管理ユニット(MMU)は、48エントリのトランスレーション・ルックアサイド・バッファ(TLO)を使用して仮想アドレスを変換します。R4000は64ビットの仮想アドレスを使用しますが、64ビットのうち40ビットのみを実装しているため、1TBの仮想メモリを使用できます。残りのビットは、ゼロが含まれているかどうかがチェックされます。R4000は36ビットの物理アドレスを使用するため、64GBの物理メモリをアドレス指定できます。
R4000(SCおよびMC構成のみ)は、128KB~4MBの容量を持つ外部二次キャッシュをサポートしています。キャッシュへのアクセスは専用の128ビットデータバスを介して行われます。二次キャッシュは、統合キャッシュ、または命令キャッシュとデータキャッシュを分割した構成にすることができます。後者の構成では、各キャッシュの容量は128KB~2MBです。[ 2 ]二次キャッシュは物理的にインデックス付けされ、物理的にタグ付けされており、128、256、512、または1,024バイトのプログラム可能なラインサイズを備えています。キャッシュコントローラはオンダイです。キャッシュは標準のスタティックランダムアクセスメモリ(SRAM)で構成されています。データバスとタグバスはECC保護されています。
R4000は、SysADバスと呼ばれる64ビットのシステムバスを採用しています。SysADバスはアドレスとデータが多重化されたバスで、データとアドレスの転送に同じ配線を使用していました。これにより帯域幅は減少しますが、ピン数が増えシステムの複雑さが増す個別のアドレスバスを用意するよりもコストが低くなります。SysADバスは、内部クロック周波数の1/2、1/3、または1/4で動作するように設定できます。SysADバスは、動作周波数を分周することでクロック信号を生成します。
R4000は120万個のトランジスタを搭載している。[ 3 ] 1.0μmの2層メタルCMOS(相補型金属酸化膜半導体)プロセスで設計された。MIPSはファブレス企業であったため、R4000はパートナー企業によって独自のプロセスで製造され、最小加工寸法は0.8μmであった。[ 4 ]
R4000は、外部で生成されたマスタークロック信号から様々なクロック信号を生成します。動作周波数については、R4000はオンダイ位相同期回路(PLL)を用いてマスタークロック信号を2倍に逓倍します。
R4000PCは179ピンのセラミックピングリッドアレイ(CPGA)パッケージに収められています。R4000SCとR4000MCは447ピンのセラミックスタッガードピングリッドアレイ(SPGA)パッケージに収められています。R4000MCのピン配置はR4000SCとは異なり、R4000SCでは使用されていない一部のピンは、 R4000MCのキャッシュコヒーレンシを実現するための信号として使用されます。R4000PCのピン配置は、PGAパッケージのR4200およびR4600マイクロプロセッサのピン配置と類似しています。この特性により、適切に設計されたシステムであれば、3つのマイクロプロセッサのいずれでも使用できます。


R4400はR4000のさらなる発展型です。1992年11月初旬に発表されました。このマイクロプロセッサのサンプルはそれ以前に一部の顧客に出荷されており、一般販売は1993年1月に開始されました。R4400は、100、133、150、200、250MHzのクロック周波数で動作します。R4000からの唯一の大きな改良点は、一次キャッシュの容量が8KBから16KBに倍増したことです。230万個のトランジスタを搭載していました。
R4400は、 Integrated Device Technology (IDT)、LSI Logic、NEC、Performance Semiconductor、Siemens AG、東芝によってライセンス供与されました。IDT、NEC、Siemens、東芝は、このマイクロプロセッサを製造・販売しました。LSI Logicは、カスタム製品にR4400を使用しました。Performance Semiconductorはロジック部門をCypress Semiconductorに売却し、MIPSマイクロプロセッサ製品はCypress Semiconductorで製造中止となりました 。
NECは自社製をVR4400として販売した。最初のバージョンである150MHzの製品は1992年11月に発表された。初期バージョンは0.6μmプロセスで製造された。[ 5 ] 1995年半ばには、250MHzの製品のサンプル出荷が開始された。これは0.35μmの4層メタルプロセスで製造された。[ 6 ] NECは、1MBの二次キャッシュを実装した10個の1MビットSRAMチップを搭載したVR4400SCを搭載したセラミックマルチチップモジュール(MCM)であるMR4401も生産した。このMCMはR4x00PCとピン互換であった。最初のバージョンである150MHzの製品は1994年に発表された。1995年には200MHzの製品が発表された。
東芝は自社版をTC86R4400として販売した。230万個のトランジスタを搭載し、面積134 mm 2 、動作周波数200 MHzのこの製品は、0.3 μmプロセスで製造され、1994年半ばに発売された。R4400PCは1,600ドル、R4400SCは1,950ドル、R4400MCは10,000個ロットで2,150ドルであった。 [ 7 ]
R4400 は次の用途に使用されます:
R4000およびR4400マイクロプロセッサは、カスタムASICまたは市販のチップセットを介してシステムに接続されました。SGIなどのシステムベンダーは、自社システム向けに独自のASICを開発しました。市販のチップセットは、i486互換バスを備えたTiger Sharkチップセットを搭載した東芝などの企業によって開発、製造、販売されました。[ 13 ]