|
CISC(しすく、)は、コンピュータの命令セットアーキテクチャ(ISA)の設計の方向性の一つである。単純な命令を指向したRISCが考案されたときに、対比して従来のISAは複雑であるとして、"Complex" の語を用いた "CISC" とレトロニムとして呼ばれる様になった。典型的なCISCのISAはしばしば、単一の命令で複数の処理を行う、可変長命令である、直交性がある、演算命令のオペランドにメモリを指定できる、などで特徴づけられる。 CISCを採用したプロセッサ(CPU)をCISCプロセッサと呼ぶ。CISCプロセッサに分類されるプロセッサとしては、マイクロプログラム方式を採用したSystem/360、PDP-11、VAXなどや、マイクロプロセッサの680x0、x86などがある。 == 概要 == 現在は、x86互換プロセッサがCISCに分類されるが、ARMアーキテクチャ〔RISCに分類されることが多いが、可変長の命令、バンク切り替えなどCISC風の特徴を持つ。〕もCISCで特徴付けられる性格を持つ。古くに設計されたミニコンピュータやメインフレームもCISCに分類されるほか、米モトローラ社のMC 680x0 (68K) 系プロセッサもCISCの系譜に含められる。命令語長が可変長であるため、ある一つの命令のデコードが終わらなければ次の命令の語の位置が判らず、複数の命令を同時にデコードするのが困難という欠点が指摘された〔フェッチしたコードにつき、全てのワードやバイトごとにそれぞれ命令の先頭であるとみなしてデコードをすすめ、その中から有効なデコード結果の組み合わせを選択するという方式が1995年頃に確立したことから、回路規模を大きくするデメリットがあるものの可変命令長であっても1クロックサイクルで複数の命令をデコードできる。近年のプロセッサは5命令から20命令を一度にデコードできる。〕。 プログラミングでアセンブラ言語が用いられていた頃には豊富なアドレッシングモードを備えて、命令の直交性を備えることが良いと考えられていた。すなわち任意の演算で、どのアドレッシングモードでも使えるのが良いとされた。演算はレジスターレジスタ間演算のほかに、レジスターメモリ演算、メモリ-メモリ演算を備えているのが普通で、オペランドは2オペランドまたは3オペランドまで指定できるタイプが多い。つまり、メモリ1の内容とメモリ2の内容を論理積を取ってメモリ3に格納するというようなことが1命令でできる。C言語の条件演算子 "?:"はCISCであったPDP-11が備えていた命令の名残りとされる。 インデックスアドレッシング時のオフセットも命令で指定されるデータ語長に合わせてスケーリングされることが多い。また、データ語長の異なるデータ間の演算でも演算前に自動的に符号拡張などが行なわれるため、データ長を揃える命令を省略できる場合が多い。データの境界をメモリ上の何処にでも置ける。1命令中で行なう処理が複雑なため、マイクロプログラム方式で実装されることが多い。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「CISC」の詳細全文を読む スポンサード リンク
|