DLX

DLX（「デラックス」と発音）は、ジョン・ヘネシーとデイビッド・パターソンが設計したRISCアーキテクチャ。ヘネシーはMIPS、パターソンは の設計者である。
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はMIPSと同様、命令パイプラインの効率的使用を性能向上の基本としている。DLXは概念的には単純な古典的RISCを意図して設計されている。パイプラインは以下のような5段で構成されている。