GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • メインページ
  • コミュニティ・ポータル
  • 最近の出来事
  • 新しいページ
  • 最近の更新
  • おまかせ表示
  • 練習用ページ
  • アップロード (ウィキメディア・コモンズ)
  • 特別ページ
  • ヘルプ
  • 利用案内
  • 井戸端
  • お知らせ
  • バグの報告

This view

  • Original page
  • New address

GeezerVison is showing ja.wikipedia.org — CISC - Wikipedia

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "CISC" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL
(2011年12月)

CISC(しすく、英: complex instruction set computer)は、コンピュータの命令セットアーキテクチャ(ISA)の設計の方向性の一つである。単純な命令を指向したRISCが考案されたときに、対比して(レトロニム)従来のISAは複雑であるとして、"Complex" の語を用いた "CISC" と呼ばれる様になった。典型的なCISCのISAはしばしば、単一の命令で複数の処理を行う、可変長命令である、直交性がある、演算命令のオペランドにメモリを指定できる[1]、などで特徴づけられる。

概要

VAXが典型的なCISCであり、マイクロプロセッサでは68000がある。CISCは一般に、命令語長が可変長であるため、ある一つの命令のデコードが終わらなければ次の命令の語の位置が判らず、複数の命令を同時にデコードするのが困難という欠点がある[2][注 1]。

プログラミングでアセンブラ言語が用いられていた頃には豊富なアドレッシングモードを備えて、命令の直交性を備えることが良いと考えられていた。すなわち任意の演算で、どのアドレッシングモードでも使えるのが良いとされた。演算はレジスターレジスタ間演算のほかに、レジスターメモリ演算、メモリ-メモリ演算を備えているのが普通で、オペランドは2オペランドまたは3オペランドまで指定できるタイプが多い。つまり、メモリ1の内容とメモリ2の内容を論理積を取ってメモリ3に格納するというようなことが1命令でできる。C言語の条件演算子 "?:"は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は当初から単純なマイクロアーキテクチャで豊富な機能を実現するためにマイクロプログラム方式を使っていた(マイクロプロセッサにおけるマイクロプログラム方式の採用は16ビットプロセッサとだいたい同タイミングである[注 2])。実行ステージの処理に時間がかかるのでメモリレイテンシは問題ではなかった。メモリ間演算は理にかなっていた。

半導体の集積度が向上し、単一CPUの実行パイプラインが1/8語、1/4語、1/2語、1語実行ユニットと向上したときにRISCコンセプトが標榜された。RISCは1チップに集積されたCMOSマイクロプロセッサが32bit 1ワード実行ユニットで固定されるという前提に立って、単純化した構造で最適化すればCISCに勝てると考えていたようである。しかしCMOS半導体の集積度は向上し続け、スケーリング則により内部クロックは高速化し続けた。相対的にオンチップキャッシュのメモリレイテンシは増え続け、前提はすぐに崩れた。

CISCは引き続きCMOS半導体の集積度の向上に伴って、単一CPUのパイプラインを2語、3語、4語同時実行ユニットに向上した。複数実行ユニットにする方法がスーパースカラーであり、更にその実行ユニット数を向上させる手法がアウトオブオーダ実行、投機的実行である。これらは増加したメモリレイテンシの時間を有効利用して、複数可変長パイプライン実行ユニットに対してレジスタリネーミングを割り当てる複雑な内部構造になる。

また、マイクロプログラム方式ではなくワイヤードロジック方式を採用し、いわゆる「内部RISC」と言われるようなマイクロアーキテクチャとするなど、命令セットアーキテクチャ以外はRISCと変わらないものも増えた。

このように、CISCは半導体の集積度の向上に伴い多数の実行ユニットに自動的に命令パイプラインを割り当てるマイクロアーキテクチャを発達させ、ソフトウェアを書き換えることなく性能の向上を実現してきたが、2004年ごろにはCISCのマイクロアーキテクチャが過度に複雑化したことで演算性能向上は限界に達し、マイクロプロセッサの高速化はマルチコア、同時マルチスレッディング、SIMDによる性能向上に舵を切っている。これらの並列化手法による性能向上を享受するには、ソフトウェアの書き換えが必要になる。

現状

→「RISC § 現在のRISC」も参照

1990年代には「CISCはRISCに置き換わる」との予測もあった[3]が、実際にはCISCプロセッサの多くは内部的にRISCの技術を採用[4]し、一方でRISCプロセッサの多くは命令数の追加を続けたため、2000年代には技術的な相違はほぼ消滅した。このため現在の「CISC」や「RISC」は、技術的な用語よりも、各プロセッサの歴史的な総称として使われているにすぎない。とはいえ、「RISC的」「CISC的」という方向性は現在でも有効であるし、RISC-Vの最小セットはRISC的であり、x64はCISC的である、といったことは言える。

以下の記述では「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互換機およびIntel CPU搭載Macintosh)では、CISC(x86)がほぼ独占している(PowerPCやARMを搭載したパソコンも存在するが、シェアは極めて小さい。ただ、2020年以降はMacintoshにARMベースのApple Siliconが搭載され、PC向け性能が上がってきており若干シェアが広がっている)。
  • UNIXサーバー市場は、ローエンドはCISC(x86)、ハイエンドは各社RISC(SPARC、POWERなど)が比較的多い。
  • メインフレーム市場は、CISC(z/Architecture、ACOS、IA-64、x86など)が大多数である。
  • スーパーコンピュータ市場は、CISC(x86)が約9割、RISC(POWERなど)が約1割であり[5]、ベクトルプロセッサ搭載のシステムも若干ある(NEC SX)。
  • 組み込み市場では、RISCが優勢である。チップサイズ及びフットプリントが小型で、省電力かつ高性能なプロセッサが強く求められるため、32bit以上の比較的高性能なプロセッサではRISCに強みがある。
  • 携帯電話市場はRISC(主にARM)がほぼ独占しているが、スマートフォンには x86 SoCを採用した製品もある。
  • ゲーム機市場は2013年にRISCの独占は破れて PlayStation 4 と Xbox One がx86に切り替わった。携帯型ゲームは2014年現在も全てRISCである。

主なプロセッサ

現行

(命令セットアーキテクチャ(ISA)が同じ、ないしその派生のプロセッサが生産されているもの。初代モデルなど代表を挙げる)

  • x86 (IA-32)
  • System/360
    • IBMのz/Architectureプロセッサ - IBM z10など
    • 富士通のGS21/PRIMEFORCE用プロセッサ(独自開発を継続中)
    • 日立のAPシリーズ用プロセッサ(IBMと共同開発し供給を受けている)
  • 680x0 (Coldfire)
  • NEC Vシリーズ - V800シリーズはRISC
  • M16C
  • R8C/Tiny
  • H8

生産終了

  • VAX
  • Z8000
  • TRONCHIP

脚注

注釈

  1. ↑ フェッチしたコードにつき、全てのワードやバイトごとにそれぞれ命令の先頭であるとみなしてデコードをすすめ、その中から有効なデコード結果の組み合わせを選択するという方式が1995年頃に確立したことから、回路規模を大きくするデメリットがあるものの可変命令長であっても1クロックサイクルで複数の命令をデコードできる。近年のプロセッサは5命令から20命令を一度にデコードできる。
  2. ↑ 8086や68000など。Z8000が例外でワイヤードロジック方式。

出典

  1. ↑ Hisa Ando 2011, p. 83.
  2. ↑ Hisa Ando 2011, p. 125.
  3. ↑ Hisa Ando 2011, p. 127.
  4. ↑ Hisa Ando 2011, p. 84.
  5. ↑ スパコンTOP500 - ORNLのJaguarがRoadrunnerを破りトップに躍り出る - マイコミジャーナル

参考文献

  • Hisa Ando『プロセッサを支える技術 : 果てしなくスピードを追求する世界』技術評論社、2011年1月25日。ISBN 978-4-7741-4521-1。 

関連項目

  • ビットスライス
  • マイクロプログラム方式
  • CPU年表
  • VLIW
  • EPICアーキテクチャ
  • CPU設計

外部リンク

  • コンピュータアーキテクチャの話・CISCアーキテクチャとRISCアーキテクチャ - マイコミジャーナル
  • 頭脳放談・第27回 RISCの敗因、CISCの勝因 - @IT
CPUテクノロジー
アーキテクチャ
  • ISA: CISC
  • EDGE
  • EPIC
  • MISC
  • OISC
  • RISC
  • VLIW
  • ZISC
  • ハーバード・アーキテクチャ
  • ノイマン型
  • 4ビット
  • 8ビット
  • 12ビット
  • 16ビット
  • 18ビット
  • 24ビット
  • 31ビット
  • 32ビット
  • 36ビット
  • 48ビット
  • 60ビット
  • 64ビット
  • 128ビット
並列処理
パイプライン
  • 命令パイプライン
  • イン・オーダー&アウト・オブ・オーダー
  • レジスタ・リネーミング
  • 投機的実行
レベル
  • ビット
  • 命令
  • スーパースカラー
  • データ
  • タスク
スレッド
  • マルチスレッディング
  • 同時マルチスレッディング
  • ハイパースレッディング
  • スーパースレッディング
コア
  • シングルコア
  • マルチコア
    • ホモジニアスマルチコア
    • ヘテロジニアスマルチコア
フリンの分類
  • SISD
  • SIMD
  • MISD
  • MIMD
タイプ
  • マイクロプロセッサ
  • DSP
  • マイクロコントローラ
  • System-on-a-chip
  • ベクトルプロセッサ
コンポーネント
  • 演算装置
  • Back-side bus
  • マルチプレクサ
  • デマルチプレクサ
  • レジスタ
  • MMU
  • TLB
  • キャッシュ
  • レジスタファイル
  • マイクロコード
  • 制御装置
  • CPUクロック
電源管理
  • APM
  • ACPI
  • Dynamic frequency scaling(英語版)
  • Dynamic voltage scaling(英語版)
  • Clock gating(英語版)
スタブアイコン

この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。

  • 表示
  • 編集
「https://ja.wikipedia.org/w/index.php?title=CISC&oldid=108690431」から取得
カテゴリ:
  • CPU
  • 命令セットアーキテクチャ
  • レトロニム
隠しカテゴリ:
  • 出典を必要とする記事/2011年12月
  • 出典を必要とする記述のある記事/2023年8月
  • 言葉を濁した記述のある記事 (いつ)/2025年9月-10月
  • 出典を必要とする記述のある記事/2025年10月
  • すべてのスタブ記事
  • コンピュータ関連のスタブ項目
  • ISBNマジックリンクを使用しているページ
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.