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

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

新規登録して質問してみよう
ただいま回答率
85.50%
アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

Q&A

解決済

2回答

4559閲覧

RISCとCISCアーキテクチャ

strike1217

総合スコア651

アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

0グッド

2クリップ

投稿2017/06/22 02:39

編集2017/06/22 02:46

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ってなにがあるんですか?

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jm1156

2017/06/22 03:01

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

2017/06/22 03:33

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

回答2

0

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

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

いきなり、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/

投稿2017/06/26 03:23

daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

マイクロコードがどこに保存されているのか分からないのですが、調べた結果を書きます。
ソフトウェア同様、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/23 12:29

編集2017/06/26 04:01
strike1217

総合スコア651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

strike1217

2017/06/26 03:52

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問