質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.12%

RISCとCISCアーキテクチャ

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 2,161

strike1217

score 583

RISCとCISCについて確認事項があります。

まず、CISCから!
intel x86シリーズなどは、こちらかと思います。
ワイヤードロジックとマイクロプログラム方式のハイブリッドだと思います。

CPU内部にあるデコーダによりアセンブルされた2進数のコードがさらに細かくされるんですよね?(マイクロコード)
それがナノプロセッサに流れていき、命令を処理すると思うのですが・・・
このマイクロコードとは、一般的に公開さているんですか?
マイクロコードは、cpu内のROMか何か書かれているものですかね?

しかし、考えてみるとすごい大変ですよね?
intel x86 の命令が何個あるのか分からないのですが、各命令の対となるマイクロコードが存在するという事ですよね?
かなりの個数のマイクロコードが存在することになるのではないでしょうか?

このあたりの理解があやふやです。

続いて、RISCですね。
組み込み系・・・ARM などですかね。

RISCも同じくワイヤードロジックとマイクロプログラム方式のハイブリッドだと思います。
アセンブルされた命令とマイクロコードが1対1になっていると思います。
つまり、RISCにはデコーダユニットがないという事ですよね・・・

CISCはアセンブリ言語から作られるコードの大きさがバラバラですが、RISCは全て同じサイズのコードが生成されるんですよね?

RISCの方はあまり詳しくないのです。
ちょっと不安なの間違いがあったら教えてください。

「追記」
どちらのアーキテクチャもPLA(programmable logic array)で作られているんですよね?
PAL(programmable array logic)で作られているCPUってなにがあるんですか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • jm1156

    2017/06/22 12:01

    質問事項が多すぎかと思います。1つに絞ったほうが回答が付きやすいかと。

    キャンセル

  • strike1217

    2017/06/22 12:33

    では、CISCの方だけでも大丈夫です!

    キャンセル

回答 2

check解決した方法

+1

マイクロコードがどこに保存されているのか分からないのですが、調べた結果を書きます。
ソフトウェア同様、CPUにもバグはある
マイクロコード
BIOSとマイクロコード

CPU内にBIOSみたいなROMがあり、そこに保存さている可能性があるかもしれないです。

調べてみてCPUの話なのになんでBOISが出てくるんだろうと思ったのですが、CPUとBIOSの関係が自分が考えていた以上に複雑な物のようですね・・・
もしかしたら、CPUのマイクロコードがBIOSに保存さている??
いや、、、流石にそれは考えにくいかな・・・・?

デコードユニットから先はマイクロコードがワイヤードロジックによって組まれたハード線を通っていくだけなので、RISCの本を読めばわかるのですが、アセンブリ言語によって生成される機械語をどうやってマイクロコードへ変換しているかちょっとまだわからないです。

CPU内部のマイクロコードがアップデート可能だったのは、初めて知りました・・・・

「追記」
x86を高速化する切り札技術「命令変換」の仕組み
CPUはどのようにして命令を認識しているのでしょうか?

「CISC = デコーダ + RISC」

というのは、分かるのですが、なーーんか上記のサイトを見ると・・・
今度はROMに書かれているようでは、ないっぽい・・・かな??

んーー。まだよくわからないですね。

[追記2]
ようやく分かりました。
命令をマイクロコードに変換するためのROMがCPUの中に内臓されているようです。
イメージ説明

CPU内のハードの配線を変更せずともマイクロコードを変更するだけであたかも配線を変えたのと同じ効果を期待できるという特徴があるようです。
BIOSのアップデートの際に、複数回再起動しますよね?
あれは、BIOS ROMの中にパッチを入れておいて、再起動する際にCPU内のROMを書き換えているようです。
CPU内のマイクロコードの更新の際にBIOSが必要なようです。最近はUEFIですが。

CISC用のマイクロコードデコーダのあとはRISCと同じようにマイクロコードを先頭から何ビットか分割するようにハードの配線が組まれているようです。
それを一般的にデコーダと呼んでいるそうです。

イメージ説明

RISCの中にもデコーダと呼ばれているものが入っているようですね・・・
つまり、
「CISC = マイクロコード変換ユニット + RISC」が正しいですね!!

アセンブリ言語によって生成されたコードをどのようにマイクロコードに変換しているかは難しいので、ここでは省きます。
ただそれ専用のユニットがCPU内に内臓されているようですね。

「参考にした本」
コンピュータの構成と設計 上
コンピュータの構成と設計 下
コンピュータアーキテクチャ技術入門

とても良い本でした!!

「参考サイト」
マイクロコードとは?
Intel 8051

一般的に、
CISC = マイクロコード方式
RISC = ワイヤードロジック方式

最近のintel CPU はマイクロコード部分を減らし、ワイヤードロジック部分の増やしているそうです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/26 12:52

    daiveさんの方にも+評価を入れておきますね。
    以後、質問の際には気を付けます。

    キャンセル

+1

具体的に、ピンポイントで、質問が掲示できると、その筋の方からの
書込みがあるかもしれません。ぼやけた質問では、望み薄。

コンピュータの歴史も長くなって、
消え失せた物や、日本語の資料がネットにない物があったり、
それなりに、時代は過ぎています。

いきなり、RISC/CISC、8086からやらないで、
8080、Z80 もしくは、4004 からやってみたらどうでしょうか?

8080、Z80などは、機械語の16進数を、8進数か、2進数で表記しなおすと、
機械語の、ビットが、内部のロジックに対応している事が解ると思います。

Z80命令説明書
http://userweb.alles.or.jp/chunichidenko/nd3setumeisyo/nd3_z80meirei.pdf
8ビット CPU Z80命令セット
http://www.yamamo10.jp/yamamoto/comp/Z80/instructions/index.php
Z80 Code Refference
http://www.geocities.jp/submarine600/html/p6/z80ref.html

Z80を作ろう
http://tomocyan.net/~kagurazaka/html/z80_cpu_00.html
このサイト以外でも、有ったような記憶ですが、検索上位に挙がってこなかったので。
1980年代においては、Z80のフルロジックバージョンを実習用に作ったところもあります。

CPUのエミュを1つ、2つ書いてみるとか。
インテル系、モトローラ系、

当時は、ちょっとした用途(CPUを使うまでも無い)では、ROMシーケンスが使われていた分野もありました。

ビジコン 嶋
で、検索されると、マイクロプロセッサー黎明期の記事が検索できるはずです。

コンピュータ 博物館
http://museum.ipsj.or.jp/

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る