編集この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。Computer)は、コンピュータの命令セットアーキテクチャ(ISA)の設計の方向性の一つである。典型的なCISCのISAはしばしば、単一の命令で複数の処理を行う、可変長命令である、直交性がある、演算命令のオペランドにメモリを指定できる、などで特徴づけられる。CISCを採用したプロセッサ(CPU)をCISCプロセッサと呼ぶ。CISCプロセッサに分類されるプロセッサとしては、マイクロプログラム方式を採用したSystem/360、PDP-11、VAXなどや、マイクロプロセッサの680x0、x86などがある。1]もCISCで特徴付けられる性格を持つ。系プロセッサもCISCの系譜に含められる。プログラミングでアセンブラ言語が用いられていた頃には豊富なアドレッシングモードを備えて、命令の直交性を備えることが良いと考えられていた。任意の演算で、どのアドレッシングモードでも使えるのが良いとされた。演算はレジスターレジスタ間演算のほかに、レジスターメモリ演算、メモリ-メモリ演算を備えているのが普通で、オペランドは2オペランドまたは3オペランドまで指定できるタイプが多い。メモリ1の内容とメモリ2の内容を論理積を取ってメモリ3に格納するというようなことが1命令でできる。"?:"はCISCであったPDP-11が備えていた命令の名残りとされる。インデックスアドレッシング時のオフセットも命令で指定されるデータ語長に合わせてスケーリングされることが多い。データ語長の異なるデータ間の演算でも演算前に自動的に符号拡張などが行なわれるため、データ長を揃える命令を省略できる場合が多い。データの境界をメモリ上の何処にでも置ける。1命令中で行なう処理が複雑なため、マイクロプログラム方式で実装されることが多い。実行ユニットの演算器の幅を1/8語、1/4語、1/2語、1語、2語、3語、4語・・・と、実行速度と回路資源のトレードオフを図りながら自在に構成することが可能で柔軟性を持つ。マイクロプログラム方式にすることで同じインストラクションセットを維持したまま、内部マイクロアーキテクチャを増強していくことができる。マイクロプログラミング方式とはマイクロアーキテクチャたる内部CPUが万能チューリングマシンとして外部CPUをシミュレートすることである。その時点の実装技術で最も有効な内部CPUが外部CPUをシミュレートして後方互換性を維持する。このようにCISCは後方互換性を維持したまま持続的に性能と機能を向上できるアーキテクチャである。初期のCPUは半導体の集積度が低いため、内部の演算器や実行ユニットのbit長がワード長より大幅に短かった。典型的には32bit=1ワードに対して演算器は4bitで8回の演算を繰り返して32bit同士の計算を実行していた。この繰り返し演算が命令における実行ステージを複数のステートに分けて処理していた。このようなアーキテクチャをビットスライスプロセッサと呼び、実行ユニットが4bitの場合に16進アーキテクチャと呼ばれた。半導体の集積度が向上するにしたがって演算器のビット幅は増加し、CPUの内部構造は変更される。インストラクションセットの互換性を保ったまま内部アーキテクチャを容易に更新するためにマイクロプログラム方式が採用された。CISCは当初から単純なマイクロアーキテクチャで豊富な機能を実現するためにマイクロプログラム方式を使っていた。実行ステージの処理に時間がかかるのでメモリレイテンシは問題ではなかった。メモリ間演算は理にかなっていた。半導体の集積度が向上し、単一CPUの実行パイプラインが1/8語、1/4語、1/2語、1語実行ユニットと向上したときにRISCコンセプトが標榜された。1ワード実行ユニットで固定されるという前提に立って、単純化した構造で最適化すればCISCに勝てると考えていたようである。CMOS半導体の集積度は向上し続け、スケーリング則により内部クロックは高速化し続けた。相対的にオンチップキャッシュのメモリレイテンシは増え続け、前提はすぐに崩れた。CISCは引き続きCMOS半導体の集積度の向上に伴って、単一CPUのパイプラインを2語、3語、4語同時実行ユニットに向上した。複数実行ユニットにする方法がスーパースケーラであり、更にその実行ユニット数を向上させる手法がアウトオブオーダ実行、投機的実行である。これらは増加したメモリレイテンシの時間を有効利用して、複数可変長パイプライン実行ユニットに対してレジスタリネーミングを割り当てる複雑な内部構造になる。このように、CISCは半導体の集積度の向上に伴い多数の実行ユニットに自動的に命令パイプラインを割り当てるマイクロアーキテクチャを発達させ、ソフトウェアを書き換えることなく性能の向上を実現してきたが、2004年ごろにはCISCのマイクロアーキテクチャが過度に複雑化したことで演算性能向上は限界に達し、マイクロプロセッサの高速化はマルチコア、同時マルチスレッディング、SIMDによる性能向上に舵を切っている。これらの並列化手法による性能向上を享受するには、ソフトウェアの書き換えが必要になる。「RISC#現在のRISC」も参照1990年代には「CISCはRISCに置き換わる」との予測もあったが、実際にはCISCプロセッサの多くは内部的にRISCの技術を採用し、一方でRISCプロセッサの多くは命令数の追加を続けたため、2000年代には技術的な相違はほぼ消滅した。このため現在の「CISC」や「RISC」は、技術的な用語よりも、各プロセッサの歴史的な総称として使われているにすぎない。「CISC」は「x86およびx64や、伝統的なメインフレームやミニコンピュータの各専用プロセッサなど」、「RISC」は「SPARC、MIPS、ARM、PA-RISC、POWERなどのマイクロプロセッサ」の意味で使われる場合が多い。IA-64はPA-RISCの後継でもあるが、EPICアーキテクチャという独自のアーキテクチャを採用しており、RISCには分類しない場合が多い。32ビットARM(64ビットARMは典型的なRISCに近い)や、POWER・PowerPCはRISCの典型からは外れたアーキテクチャだが、一般的にはどちらもRISCに分類される。2015年現在の各市場での採用傾向は以下である。パーソナルコンピュータ市場(PC/AT互換機およびMacintosh)では、CISC(x86)がほぼ独占している(PowerPCやARMを搭載したパソコンも存在するが、シェアは極めて小さい)。UNIXサーバー市場は、ローエンドはCISC(x86)、ハイエンドは各社RISC(SPARC、POWERなど)が比較的多い。メインフレーム市場は、CISC(z/Architecture、ACOS、IA-64、x86など)が大多数である。SX、演算プロセッサはRISC風の命令セット)搭載のシステムも若干ある。組み込み市場では、RISCが優勢である。チップサイズ及びフットプリントが小型で、省電力かつ高性能なプロセッサが強く求められるため、32bit以上の比較的高性能なプロセッサではRISCに強みがある。SoCを採用した製品もある。x86に切り替わった。携帯型ゲームは2014年現在も全てRISCである。現行編集(命令セットアーキテクチャ(ISA)が同じ、ないしその派生のプロセッサが生産されているもの。RISCに分類されることが多いが、可変長の命令、バンク切り替えなどCISC風の特徴を持つ。フェッチしたコードにつき、全てのワードやバイトごとにそれぞれ命令の先頭であるとみなしてデコードをすすめ、その中から有効なデコード結果の組み合わせを選択するという方式が1995年頃に確立したことから、回路規模を大きくするデメリットがあるものの可変命令長であっても1クロックサイクルで複数の命令をデコードできる。近年のプロセッサは5命令から20命令を一度にデコードできる。@ITこの項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。3.0のもとで利用可能です。プライバシーデスクトップ。