開発者 | ジョン・ヘネシー、デイビッド・パターソン |
---|---|
ビット数 | 32ビット |
発表 | 1990年代 |
バージョン | 1.0 |
デザイン | RISC |
タイプ | レジスタ-レジスタ & ロード-ストア |
エンコード | 固定 |
ブランチ | 条件レジスタ |
エンディアン | バイエンディアン |
拡張 | なし。ただし、MIPS用のMDMXとMIPS-3Dを使用可能。 |
オープン | Yes |
レジスタ | |
汎用 | 31本 (R0=0) |
浮動小数点 | 32本 (paired DP for 32-bit) |
DLX(「デラックス」と発音)は、ジョン・ヘネシーとデイビッド・パターソンが設計したRISCアーキテクチャ。ヘネシーはMIPS、パターソンは バークレーRISC の設計者である。
DLXは基本的にMIPSアーキテクチャを現代的に整理して単純化したものである。単純な32ビットのロード/ストア・アーキテクチャであり、現代の実際の MIPS CPU とはあまり似ていない。DLXは教育用を第一に意図しており、そのデザインは大学レベルのコンピュータアーキテクチャの教育に広く採用されている。
DLXをそのまま実装したハードウェアは存在しないし、DLX向けの最適化コンパイラも存在しない。DLXをハードウェアで実装した場合、現代の MIPS CPU と遜色ない性能を発揮するだろうと予想されている。しかし、アーキテクチャを集中管理する者がおらず、このCPUコアを実装したVHDLステートマシンも存在しない。
本来のMIPSアーキテクチャでは、性能向上のために全命令を1クロックサイクルで実行するという手法を採用した。そのため、命令が1クロックサイクルで終わらない場合にコンパイラが "NOP" を挿入しなければならない。したがって入出力(メモリアクセスなど)では特にNOPが必要とされ、結果的にプログラムが肥大化する。一般にMIPS用プログラムは無駄なNOP命令を多数含んでいたが、これは意図した結果ではない。DLXアーキテクチャでは1クロックサイクルでの命令実行を強制しないので、この問題は生じない。
DLXでは長くかかる命令を許容するため、より現代的な技法であるデータフォワーディングと命令並べ替えを採用している。長い命令は機能ユニット内で「ストール」し、完了時に命令ストリームに再挿入される。外から見ると、命令実行が逐次的に行われているように見える。
DLXの命令は、R-type、I-type、J-type の3種類に分類される。R-type 命令は純粋な「レジスタ」命令であり、32ビットワード内に3つのレジスタを指定するフィールドがある。I-type 命令では2つのレジスタを指定し、32ビットワードのうち16ビットを即値に使用する。最後に J-type 命令はジャンプ用であり、26ビットのアドレスを含む。
命令コードは6ビットで、全部で64種類の基本命令を指定できる。32本あるレジスタの指定には5ビットを必要とする。
DLXはMIPSと同様、命令パイプラインの効率的使用を性能向上の基本としている。DLXは概念的には単純な古典的RISCを意図して設計されている。パイプラインは以下のような5段で構成されている。