ICDロゴ

CISC (Complex Instruction Set Computer)

【シスク】

最終更新日: 2002/11/09

 高度な機能を持つ命令セットやアドレッシング・モードなどをサポートしたコンピュータ・システム。もともとはRISC推進派がCISCアーキテクチャの複雑さや過剰な機能、パフォーマンスの低さなどを象徴するために付けた言葉であり、RISCに対する反語として、やや侮蔑的な意味で使われることが多い。だが現在のコンピュータでは、従来のCISC的な命令セット・アーキテクチャを踏襲しながらも、内部的なアーキテクチャはRISCコンピュータと同じ技術が取り入れられているので、性能的には大差はないといえる。

 1980年代までのコンピュータは、内部的にはマイクロコードを使って各部の制御を行い、命令コードを解釈、実行するのが普通であった。この方式では、コンピュータが処理する命令を、プロセッサ内部に用意されたマイクロシーケンサ(制御回路)で逐次解釈実行していた。つまり、与えられたプログラムを解釈・実行するために、プロセッサの中にさらに小型のコンピュータ(ナノコンピュータ)が用意されていたのである。

 この方式では高機能な命令を実装しやすく、プログラミングを行いやすくしたり、オペレーティング・システムの実装を助けるために、高度な機能を持つ命令や、多彩なデータ型、アドレッシング・モードが実装されていた。例えば典型的なCISC型コンピュータであるDEC社のVAX-11では、単純な整数や浮動小数点型数値以外に、10進数や文字列、ビット・フィールド、ベクトル、スタック/キューなどのデータ型をサポートし、加減乗除/論理演算のほかに、10進演算や文字列操作、インデックス計算、ビット・フィールド操作、多項式演算、CRC計算、ベクトル演算などもサポートしていた。アドレッシング・モードも、レジスタ直接やレジスタ間接のほか、自動インクリメントや自動デクリメント(データ・アクセス後に自動的にポインタを進める)、インデックス・モード(データのサイズに合わせて自動的にアドレスを補正する)など、高機能なものが用意されている。ただし単純な命令では命令コードは短いが、複雑な機能を利用すると命令コードは複雑化し、場合によっては1命令が数10bytesにもなることもあった。

 このような高機能な命令は、うまく使えばプログラムのサイズを抑えるのに有効だが、実際にはコンパイラなどで自動的に生成するのは困難であり、しばしばアセンブリ言語による手動コーディングが必要とされた。また機能が多くなった分、内部構造が複雑になり、性能を上げにくくなってしまった。そのため現在では、命令セットや機能を限定して構造を単純化し、クロック周波数を上げてパフォーマンスを向上させるという、RISC的なアーキテクチャのコンピュータが主流となっている。

Copyright (C) 2000-2007 Digital Advantage Corp.

アイティメディアの提供サービス

キャリアアップ