VR3000A

RISCアーキテクチャコンピュータの源流は1975年のIBMワトソン研究所の801プロジェクトから始まります。その後、1980年ごろからカリフォルニア大学バークレイ校のPattersonグループやスタンフォード大学のHennessyグループによってRISC CPU研究が広がり、産業化されていきます。HennessyらはMicroprocessor without Interlocked Pipeline Stageと呼ばれるRISCプロセッサの研究を行っています。略称はMIPSで、もちろんコンピュータの命令実行速度の評価単位であるMillion Instruction Per Second (MIPS)にかけてあるわけですよね。Hennessyらは1984年8月にMIPS社を設立し、MIPS系列のプロセッサを開発していきます。

VR3000A, VR3010A
V3000AをNECが製造したuPD30310と、その浮動小数点アクセラレータV3010AのuPD30311。共に33 MHzクロックで1992年製。

ここに示すプロセッサの原形のR3000プロセッサは1988年に発表されています。その後、1989年2月にNECがCMOS半導体パートナーと呼ばれる実際のチップの製造メーカに加わり、1989年9月にはVR3000 (uPD30300)とVR3010 (uPD30301)のサンプル出荷を開始しています。MIPS社は1990年10月にR3000の改良版であるR3000Aを発表し、それをNECが形にしたものが、上の写真のVR3000A (uPD30310)とVR3010A (uPD30311)です。
なお、MIPS社自身は製造工場を持たず、設計したものを半導体パートナー各社に渡し、パートナーが製品を製造するという形態ですから、このVR3000AはMIPS社の製品のセカンドソースではなくてファーストソースということになります。

MIPSの設計指針というのは、命令やアドレッシングモードを簡略化しておいて、布線論理と多段パイプラインを利用して1命令を1クロックで実行できるようにし、速度階層化されたメモリシステムでメモリのアクセス速度問題を解決し、パイプラインが詰まらないように最適化したコードを生成する高級言語の最適化コンパイラを利用して、全体で高性能コンピュータを低価格で実現しようというものです。
その結果、すべての機械命令は32 bit幅で、演算命令はレジスタレジスタ間あるいは16 bitイミディエート値とレジスタ間のみに限定されています。レジスタメモリ間の操作はロードとストア系の命令しかありません。そのメモリを指定するアドレッシングモードは1種類のみで、ベースレジスタに16 bitの定数を加算してアドレス生成するものしかありません。絶対アドレッシングとか相対アドレッシングとかオートインクリメントの類はありません。命令は5段パイプラインで実行され、ロードストア命令を含め、1クロックで1命令に近い実行速度が得られるようになっています。しかし、ロードストア命令が連続したり、ある演算命令で得られる値を直後の演算命令の対象にしようとすると、パイプラインがうまく流れずに待ち合わせが生じてしまいます。そのため、パイプラインの状態を意識して命令の順番を入れ換えたりとか、独立した複数の数式の計算を交互に行うように命令を並べたりして、パイプラインが停止しないようにプログラムを書かないと性能を発揮することができません。2次元配列をアクセスするような場合でも、アドレッシングモードが単純ですから、アドレス計算を多数の命令に分解して実行しないとできないかもしれません。そんなわけでアセンブリ言語でプログラムを書くのは手間がかかりますし、よほど頭を使わないと遅いプログラムになってしまいます。それを解決するため、高度な最適化機能を備えた高級言語コンパイラをMIPS社が提供しています。マイクロプロセッサの開発というと回路設計の方ばかりに注目しがちですが、コンパイラなどに労力をつぎ込んでトータルで性能を引き出そうとしたのがMIPSアーキテクチャの特徴といえるでしょう。

CPUに内蔵されるレジスタセットは、32 bit幅の汎用レジスタがr0 - r31の32本用意されています。ただし、r0はゼロレジスタといって、読み出される値は常に0となっています。また、r31はリンクレジスタとも呼ばれ、JAL命令によるサブルーチン呼び出し時に戻りアドレスが格納されるしくみになっています。ほかはハードウェアや命令体系的な特別扱いはありません。
さらに乗算除算レジスタとしてHIとLOのふたつの32 bitレジスタがあります。乗除算命令の結果を格納するのに利用されます。
あと32 bit幅のプログラムカウンタが1本だけ。
フラグレジスタ類やスタックポインタのようなものも、ハードウェア的には用意されていません。

続く...かな。

Return to IC Collection