【CISC】CPUアーキテクチャと論理合成方法【RISC】

このエントリーをはてなブックマークに追加
272774ワット発電中さん
x86という圧縮された命令 (記事後半)
http://www.ne.jp/asahi/comp/tarusan/main124.htm
x86命令セットは解凍(可変長命令デコード)の手間が増える反面、
圧縮された命令で記憶されているためキャッシュの利用効率は高い
273774ワット発電中さん:2007/05/10(木) 22:11:34 ID:J5pEHdLr
RISCはCISCの5倍の性能
274掲示板初心者です。:2007/05/10(木) 23:32:24 ID:qeGNAw7h
皆様
ご回答・ご見解ありがとうございます。

もともとは、RISCという響きがなんかかっこいいので、てごろに実装できるSHを触ってみました。
ところが自分なり深く勉強するうち明確な境界が判らなくなり、おもわず聞いてみた次第です。

世間知らずで恐縮ですが、10年前の感覚、ということは結構あたりまえに議論されていることのようですね。
その議論されている状態を認識した上で各メーカは製品郡を分けているのでしょうか?
私は言葉に弱いので、すぐ食いついちゃいますね。RISCはなんか新しくていいんだろうと。

では、失礼します。
275774ワット発電中さん:2007/05/11(金) 00:51:42 ID:C0UKY+yY
>>274
SHは…いつぞやのHotchipで発表された時、パターソンだかヘネシーだか忘れたが大御所に
「それRISCじゃないだろ?」と突っ込まれた経歴があるのだ(w
もっとも、命令密度の低さ、コードサイズの肥大化は当時は誰もが気にしていた訳で
その後、ARM ThumbやMIPS16等、組み込み向けが16bit化コードを取り込んだ訳だが。

>私は言葉に弱いので、すぐ食いついちゃいますね。

歴史的意義は大きいけれど、既にイメージ狙いのマーケティングトーク化してる。
なんとか2.0と言う奴と一緒で、言った物勝ちって事だな。
276774ワット発電中さん:2007/05/11(金) 09:39:04 ID:qrZYWMi+
国がが軍隊ではない!といえばそれは軍隊ではないのだ。
そして集団的自衛権の定義はトートロジ的に拡大していくのだ。

MIPSやPowerPCなどが出てきて広く注目されただけで、非武装憲法と
自衛隊の違憲問題と同様、RISC/CISC論争は、それ以前からあった。

> 歴史的意義は大きいけれど、既にイメージ狙いのマーケティングトーク化してる。
> なんとか2.0と言う奴と一緒で、言った物勝ちって事だな。

ファジー制御とか、遠赤外線とか、マイナスイオンとか、トルマリン
なんかと似たようなモンだな。
277774ワット発電中さん:2007/05/11(金) 10:12:21 ID:R3CrbXMB
SPARCを忘れんでください。
278774ワット発電中さん:2007/05/12(土) 06:28:13 ID:mD63B/xR
まんまな名前のPA-RISCは、忘れてください。
279774ワット発電中さん:2007/05/12(土) 16:02:14 ID:Dg6vK3Ln
Alphaも思い出してあげてください。
280774ワット発電中さん:2007/05/12(土) 20:32:04 ID:zW7lUk7O
つ FRV400
281774ワット発電中さん:2007/05/13(日) 20:57:42 ID:bNwvEOSd
>>272
それ、たるさんが考えたように書いてあるけれど、嶋正利氏によると
命令セットの設計で当然考慮することらしいよ。

ところで、なんでRISC風の命令セットを圧縮したものを直接実行する
プロセッサがないんだろう。ハフマン圧縮一族なんて所詮テーブル参照だから
x86のデコードよりもずっと展開しやすいはずだし内部コードが
既知である分コンパイラの最適化が直接効きやすいと思うんだけど。
282774ワット発電中さん:2007/05/13(日) 22:52:01 ID:xSW7FwRL
テーブル参照に時間がかかるからだろ。
283774ワット発電中さん:2007/05/14(月) 13:20:11 ID:roSyploX
>>281
RISCとCISCの本質を理解していたら、RISC風の命令セットを圧縮したもの
なんて馬鹿な発想は出てこないはずだ。

>>281 の言う「RISC風の命令セット」って具体的にどんな命令セットだ?

RISCの特徴として、パイプライン処理の効率化とバスアクセスの単純化の
ため、固定命令長を採用している場合が多く、また関数を呼び出しの際に、
コンパイラが多くの引数をレジスタを渡しにできるよう、汎用レジスタを
多くしているため、命令コード中に占めるレジスタを指定するビットフィ
ールドが多くなり、CISCに比べ命令長が長くなる傾向がある。

それに比べ、x86は頻繁に登場するMOV系の命令を中心に、多くは2バイト
命令で、1バイトや3バイトといった奇数バイトの命令もある。

レジスタの少なさと、汎用性のなさ(特定の命令は特定のレジスタを使う)
が欠点と言われてきたが、一次キャッシュの大容量化と、レジスタリマップ
など内部の改良でこれらの欠点は克服されてきた。

CISCの代表である、Z80のブロック転送命令やx86系のストリング系の命令
を採用せず、それらは複数の単純な命令として実行するという発想が本来の
RISCの考え方で、 >>272 は、RISCなら複数命令に展開されるこれらのCISC
固有の命令を「圧縮された命令」と称している。

RISCには存在しないのだから、圧縮のしようがない。

ハフマン圧縮は「圧縮された命令」の比喩であり、ハフマン圧縮それ自体
の処理速度や速度比較ではない点をまったく理解していない、 >>281
理解力のなさだけが、とても痛い。
284774ワット発電中さん:2007/05/14(月) 20:10:53 ID:i9+hUirJ
いいこと言った
285774ワット発電中さん:2007/05/14(月) 20:45:16 ID:CUA1YjoY
今日一番感動した
286774ワット発電中さん:2007/05/14(月) 22:46:03 ID:+AcSXl4N
パイプライン25段
287774ワット発電中さん:2007/05/14(月) 23:36:10 ID:RidDS4TS
それくらい深ければクロックは5GHzくらいいけるかのう。
288281:2007/05/15(火) 00:19:53 ID:Z9YeJ4I2
 x86 に限らず最近のプロセッサでは内部でより小さな(RISC風)命令に
変換されて実行されていることを>>283 は知らないようだが大丈夫
だろうか。>>272 の引用先に詳しく書いてあるので参照しておくれ。

 >>281 は、仮に x86 内部で使用されているμOPをコンパイラで直接
合成してしまい、それを例えばハフマン圧縮したものを直接プロセッサに
食わせたらどうだろうかという話なんだよね。もちろんそのまんまだと
ジャンプ命令などで問題が出て来るけれど、その辺はおいとくとして、
メモリ上のバイナリが x86 デコーダを経由してμOPに変換されるのと、
ハフマンデコーダを経由してμOPに変換されるのとではどっちが効率が
いいだろう。

 試したわけではないので単なる推定だけれど、ロジックの規模は
「所詮テーブル参照」であるハフマンデコーダの方が小さいだろう。
最適化はどうかというと、最終行に書いたようにハードで動的に最適化
するよりもソフトで最適化した方が一般的には効率がいいだろう。
メモリの使用効率はというと、「圧縮された命令セット」とはいっても
専用の圧縮アルゴリズムにはかなわないだろう。

 にもかかわらずそんなプロセッサが実験的にも存在しないということは
これらのメリットを全く帳消しにしてしまうような大きなデメリットが
あるからで、それは何だろうというお話なんだよね。分かってもらえた?
289774ワット発電中さん:2007/05/15(火) 00:41:19 ID:OYf3720i
>>288
RISC的にしろなんにしろ、高速に実行可能な命令セットを下手に人の手等でx86の様に纏めず、
何らかの数学的圧縮するというアイデア自体は悪くないと思うのだが…

一つだけ。
そこでx86を持ち出すのは意味が無い。
x86のメリットは、x86である事、その事実に尽きるから。
290774ワット発電中さん:2007/05/15(火) 01:21:50 ID:WLF5bRq8
どうでもいいが、レジスタリネーミングは
x86の恥ずかしい部分だと思ってるぞ。
論理レジスタがたくさんあれば、そもそも必要ないという意味でね。
291774ワット発電中さん:2007/05/15(火) 01:57:25 ID:pqsNKtyv
別に恥ずかしくなんかないじゃん。
過去の資産を活かす現実的な解でしょ。
もちろんRISC系の命令セットだったら
もっと有意義なことにリソース使えるのにというもったいない感はあるが。
292774ワット発電中さん:2007/05/15(火) 02:19:29 ID:WLF5bRq8
>>291
いや、それは分かっているんだが、
これのせいでトランジスタとある程度のクロック数
(レジスタリネーミングそのものを行うクロック数ね)
が犠牲になることを考えると、
なんだかなぁ、という感じ。

命令セットの関係で論理レジスタが増やせないとか、
過去の負債を引きずってるだけだろ。
もちろん、それが現実的な解決策だってことは十分分かっているんだが
「命令セットのせいで、それくらいしか解決方法が無いんだろ」
と、いつも思ってしまう。
293774ワット発電中さん:2007/05/15(火) 03:17:00 ID:sjZ/R4br
CPUとプログラムまとめて論理合成しちゃってFPGAに食わせる
294774ワット発電中さん:2007/05/15(火) 08:04:31 ID:pqsNKtyv
普通にCPUとプログラム入りメモリが合成される悪寒
295281:2007/05/15(火) 09:09:46 ID:Z9YeJ4I2
>>290-292
 確かに x86 の場合は設計の悪さをカバーするためのテクニックという印象が
強いけれど、レジスタが腐るほどたくさんある IA-64 みたいなプロセッサでも
レジスタリネーミングは有効な場合があるよ。例えばレジスタ r1 を使用する
場所に複数の所からジャンプしてくる場合において、ジャンプ元で r1 を使って
いる可能性がある、
  move r1,address1・・・*1
  jump L1
〜〜〜〜
  move r2,address2・・・*2
  jump L1
〜〜〜〜
L1: move address3,r1・・・*3
  move r1,address4
というようなコードがあった場合、*2 と *3 は並列実行が可能だが、*1 と *3 は
レジスタリネーミングがないと並列実行は出来ない。*3 の直前に実行されるのが
*1 か *2 かは実行時にならないと分からないのでコンパイラでの最適化はあまり
期待できない。(jump は遅延分機命令で *1,2 と *3 はパイプライン上で隣接して
いると思ってください)

P.S.
>>282 テーブル参照にかかる時間は一時キャッシュの読み書きにかかる時間と
同程度だからデコードと参照にそれぞれ 1〜2 クロックぐらいのレイテンシが
つくぐらいだと思うんだけどどうだろう。

>>289 確かに x86 のメリットは x86 だから、ということに尽きるんだけど、
>>272 の参照先で x86 の圧縮された云々という解説をしていたもので…。
296774ワット発電中さん:2007/05/15(火) 11:21:46 ID:WLF5bRq8
>>281
そういったコードで、本当にレジスタが腐るほどあるなら、
最近のコンパイラではほぼ間違いなく
L1: move address3,r1・・・*3
  move r3, address4
というふうにコンパイルされるから、
あまり問題にはならないはず。
(8つの論理レジスタを適切にレジスタ割付すようような
コンパイラがこんなコードを生成するはずがない)

もちろん、インラインアセンブラで書いてるとかなら別だけど、
その効果はほんとにわずかなものだと思う。
その証拠にIA-64では実際にレジスタリネーミングをしない。
297774ワット発電中さん:2007/05/15(火) 11:29:29 ID:WLF5bRq8
>>281
あと、デコードのテーブル参照にそれぞれ1〜2クロックのペナルティがつくのは
addのレイテンシが1〜2、movが1〜3だということを考えると
全然話にならないと数字だと思う。
298774ワット発電中さん:2007/05/15(火) 14:23:00 ID:OYf3720i
>>296
一度にコンパイルするならそうだろうけれど、分割コンパイルやライブラリ化されてると無理なんじゃ?
リンクする時に入れ替える手もあるけど、それじゃ静的な物に留まる訳で…
OSがロードする時にレジスタ再割付でもしてくれるなら…
299774ワット発電中さん:2007/05/15(火) 20:01:25 ID:01pmFmSu
>>295の言うテーブルって例えばコンテキストごとに異なる動的なテーブル?
だとしたらコンテキストスイッチ遅そうだね。
静的なテーブルだったらマイクロプログラムみたいなもんだし。
300774ワット発電中さん:2007/05/15(火) 23:32:31 ID:Sjc0fKyM
301774ワット発電中さん:2007/05/15(火) 23:39:18 ID:WLF5bRq8
>>298
IA-64だとレジスタスタックなるものを用意して、
関数の呼び出し元と関数本体で
レジスタ名がバッティングしないような工夫がされているらしいです。

>>300
> レジスタリネーミングを行うCPUは物理レジスタを、
> プログラミングモデルが提供する論理レジスタよりたくさん用意することによって、
> 積極的なレジスタ名の変更を可能にします。
x86の場合、この比が 8 : 128 とかだよ。
ちょっと積極的すぎやしないかい?
302774ワット発電中さん:2007/05/16(水) 00:18:41 ID:XrMEISjt
>>296-298
 自分で書いといてなんだけど、
>その効果はほんとにわずかなものだと思う。
これはそう思う。静的に解析できるものは可能な限りコンパイラで
やるべきだと思うけれど静的解析が出来ない一例ということで。
>>297
 デコードはパイプラインハザードを発生しないのでレイテンシは
キャッシュミスと分岐予測ミス時にしか見えないと思う。
>>299
 圧縮率を上げようとするとキャッシュのラインごととか、もっと
細かい単位になると思う。コンテキストスイッチに限らず遠くへ
分岐した際にテーブルのリフィルにはコストがかかる(>>288
置いといた問題)。これをどの程度まで低減できるかはよく分から
ないが、合計したコードサイズが減るのなら収支は黒字のはず?(怪)。
 もっとも期待はコードサイズ削減よりもスケジューリングを
コンパイラでやることによるパイプラインの簡素化なんだけどね。
303774ワット発電中さん:2007/05/16(水) 00:23:23 ID:XrMEISjt
>>301
 リネーミングのロジックにかかる負担をレジスタの多さでカバー
しているのかも(根拠なし)。
 RISC のレジスタ数はコストのかかるメモリアクセスを避けるために
ローカル変数をほぼ十分割り付けられる数が根拠になっているので
レジスタを無駄なく使うと余りまくると思う。
304774ワット発電中さん:2007/05/16(水) 00:32:26 ID:/peIxzf2
MIPSの32個程度じゃローカル変数全部入れるには足りないと思うが。
規約で実質半分ぐらいしか汎用に使えないし。
305774ワット発電中さん:2007/05/16(水) 12:04:51 ID:fv5I7Ou9
>>302
論旨をあまり理解していないのでこれは的外れかもしれないが、
>>288でいっているような、
> μOPをコンパイラで直接合成してしまい、
> それを例えばハフマン圧縮したものを直接プロセッサに
> 食わせたらどうだろうかという話なんだよね。
という話だったら、それは間違いなく愚か。
μOPの仕様はIntelのプロセッサによっても違うし、
当然AMDやTransmetaのCPUとは互換性はない。
すべてのCPUを識別して、適切な命令を合成するの?

>>303
演算に使えるのは実質4〜5程度なので、
それ以上の値を同時に扱おうとするとL1様に登場して頂くしか無くなる。
これはレジスタリネーミングが無力化するいい例だと思う。
レジスタは、足りないよりは余った方がいいに決まっている。
306283:2007/05/17(木) 10:32:56 ID:AxPVNF9k
ムダに論理レジスタ数が多いRISCアーキテクチャは、命令コードに占める
レジスタ指定のビットフィールドが広くなり、固定命令長にこだわるため
CISCなら1バイトや2バイトで済む命令コードが4バイトになる。

CISCもRISCも一時キャッシュや二次キャッシュの容量は、大差ないので、
命令長が短いCISCの方が、より多くの命令数(プログラムステップ数)を
キャッシュに格納でき、その分ヒット率も上がり、RISCに比べてキャッ
シュの利用効率が高い。

外部バスへのアクセスで比較しても、バスの転送レートはRISC/CISCに関係
なく、メモリアーキテクチャに依存し、同じメモリならRISCもCISCも、バス
の転送レートは同等なので、命令長が短いCISCの方が、少ないバスアクセス
で、効率よく命令を取り込むことができる。

どこまで将来のことを考えていたかは不明だが、x86はよくできたCPUだよ。

>>305
途中が欠損したLZHファイルから、欠損ブロック以降のデータを復元でき
ないのと同様、任意の場所から復元可能な効率の良い圧縮方法など存在し
ない。

それに、出現度の高い命令のコードが短くなるようにOPコードマップを設計
するのはごく当たり前。だから、最適化されたOPコードをハフマンごときで
圧縮する効果はない。

それは、複数の圧縮方法を組み合わせるLZHやZIPを使ってさえも、EXEファ
イルは圧縮後のサイズが小さくならないことからも明らか。
307774ワット発電中さん:2007/05/17(木) 12:40:32 ID:kubNFVy7
>>306
今のx86は内部でCISCなコードをRISCなコードに展開して(例外的に展開しない場合もありますが^^)
つまり固定長バイトの命令として実行&キャッシュに保存しています。
これはいいですよね?

RISCのレジスタがなぜ多いかというと、アウトオブオーダー実行や
並列実行させやすくなるためというのが主な理由だと思うのですが、
当然x86も内部ではそれと同じことをしているわけです。
つまり、「RISC=レジスタ数が多い方がいい」という説を信じるのであれば
今のx86でも論理レジスタ数は多い方が自然だと考えるのでは無いでしょうか?
命令のバイト数が少し増えてもデコーダの拡張により将来的な速度アップが期待できますが
命令フォーマットの関係でレジスタ数が制限されてしまうと、どうしようもありません。
また、物理レジスタの数がいかに多くても、
論理レジスタ:物理レジスタが8:128のようないびつな環境では
>>305のようにレジスタリネーミングだけでは対応できない場面というのが当然出てきます。

また、x86も内部では固定長バイトとして命令をキャッシュしているため
特に命令1次キャッシュの効率は他のRISCプロセッサと大して変わりません。

あと、ちょっと気になったのですが、
lzhやzipは圧縮方法としてはかなり効率が悪い方です。
実際にupxなどを使えば実行ファイルでもある程度は圧縮できますよ。
308774ワット発電中さん:2007/05/17(木) 15:07:05 ID:F8P3eH8Q
>>306
>EXEファイルは圧縮後のサイズが小さくならないことからも明らか。

UPXとか既に使われてるんじゃ?
DOS時代だとDIETとかLZEXEとかそれなりに使われていたし
x86でも一定の効果はあるよ?

それはともかく、今利用されているARMとかは、レジスタ数とか命令セットの制限をした上で圧縮してる訳だから
利用可能なレジスタ数等を制限せずに圧縮できるのなら意味はあるんじゃないかな?

>>307
>つまり固定長バイトの命令として実行&キャッシュに保存しています。

x86だと展開した命令をキャッシュに保存してるのは、トランスメタを除けば
トレースキャッシュを公言していたネットバースト系アーキテクチャだけじゃないかな。
309283:2007/05/17(木) 15:26:20 ID:AxPVNF9k
RISC優位論者が、あくまでRISC優位という方向に論点を持っていきたい
だけの気がするなぁ。

「古臭い」「時代遅れ」「いびつ」などというx86アーキテクチャを超える
RISCプロセッサが出現しないことが、RISCこそが「古臭い」「時代遅れ」
の考え方だということを証明している。

RISCのレジスタが多いのは、今ほどコンパイラの最適化が進んでいなかった
時代に、てんこもりの汎用レジスタを用意すれば、コンパイラによる最適化
なしでも高速化できるだろうという安易な発想が原点にある。

論理レジスタ数は、CPUアーキテクチャに依存する。32bitモードの導入で
レジスタ自体の汎用化は進んだが、バイナリ互換のx86は、論理レジスタ数
は今も昔も変わっていない。

x86で固定長なのは命令デコーダを通った実行ユニットのパイプラインの
中だけ。命令キャッシュや二次キャッシュは、x86のコードのままのはずだ。
そうでなければ、キャッシュのヒット率や利用効率が大幅に下がる。

FPU命令を除外しても、x86の命令は最小で1バイト、プリフィックスを含め
れば最大で10バイト以上になるんだが、命令キャッシュに固定長で記憶され
ていると言うなら、何バイトだと?

整数系の命令だと、たぶん32bitのイミディエイト値を、オフセット付きで
レジスタ間接参照されるメモリに書き込んだり、演算したりする命令あたり
が一番長くなるはず。
310283:2007/05/17(木) 15:39:36 ID:AxPVNF9k
308
> DOS時代だとDIETとかLZEXEとかそれなりに使われていたし

DIETや、LZEXEが効くのは ...

static int buf[3000];

のように、スタティックに大量のデータ領域を宣言した場合、昔のリンカ
は、0x00で埋めつくされたデータ領域を含むEXEファイルを吐いていたので、
そうした領域が多いプログラムが圧縮できただけ。

純粋な実行コードに対しては、ほとんど圧縮は効きません。

初期化してない変数にアクセスしても、初期値は0x00と保証されていると
勘違いしているプログラマもいたな。今でも居そうだが。
311774ワット発電中さん:2007/05/17(木) 20:58:55 ID:+iSrtZHz
>>309
x86アーキが生き残って、のさばっているのはx86アーキがすばらしいからじゃない。
IBM-PCからのソフト資産の問題でしょ。
312283:2007/05/17(木) 22:49:39 ID:AxPVNF9k
RISCの数を揃えた汎用レジスタって、まるで社員数ばかり多けど能無し
揃いで、上から指示された単純命令しかこなせない、日本の大企業みたい。

社員あたりの生産性の低さを数でカバー?

エミュの技術も進歩した現在、x86を超えるアーキテクチャのRISCが出現
しないのはなぜ? それに、IBM-PCのハードに依存するようなソフト
なんて、今じゃほとんど使われていないでしょ。
313281:2007/05/18(金) 00:08:54 ID:IdCkByK1
>>312
 まあ、落ち着けって。

 まず、x86 のファイルをさらに圧縮して実行なんて話はしていないぞ。
μOP を持ち出したから混乱したのかなあ。じゃあ例えば SPARC のコードを
L2 cache までは圧縮して格納し、L1 からは元の SPARC コードに展開して
実行するといったら分かるかな。NetBurst と同じ構造だ。SPARC の
コードは x86 よりも圧縮が効くということに同意していただければ
キャッシュに圧縮したまま格納することによるキャッシュやバスの有効
利用にも同意してもらえると思う。

 それから、>>306 の任意の場所から復元できる圧縮方法なら存在するぞ。
完全に任意ではないが。例えば 100 個のファイルを tar してから gzip
すると任意のファイルをそのまま復元することは出来ないが、100 個の
ファイルを圧縮してから tar でまとめると任意のファイルを復元できる。
圧縮率は悪くなるが分割単位を大きく取ればとてつもなく悪くなるわけ
ではない。簡単に実験できるので色々試してみればよい。だから >>302
キャッシュのラインごととか、と書いたわけ。

 あと、>>309
>RISCのレジスタが多いのは、今ほどコンパイラの最適化が進んでいなかった
    :
>なしでも高速化できるだろうという安易な発想が原点にある。
ちがいます。
314774ワット発電中さん:2007/05/18(金) 00:09:42 ID:3dbdPcuJ
なんかx86マンセーなのが多いな(あるいは声がでかいだけか)
先祖の遺産があったから巨額の投資ができてまだ生き残ってるってだけでしょ
たぶんまだかなり生き続けると思うけど
315307:2007/05/18(金) 00:37:13 ID:DqGnMCjI
>>309
自分には、x86優位論者がx86は他のRISCプロセッサよりもすばらしいという
結論に持って行きたいだけのように見えます。

> RISC優位論者が、あくまでRISC優位という方向に論点を持っていきたい
> だけの気がするなぁ。
そもそも、今のx86が内部で命令をμOP単位で実行していることから見ても
多くの技術者がRISCの優位性をある程度認めているということでは?
少なくともx86自体は、決してすばらしいといえるものではないと思うのですが。

> 「古臭い」「時代遅れ」「いびつ」などというx86アーキテクチャを超える
> RISCプロセッサが出現しないことが、RISCこそが「古臭い」「時代遅れ」
> の考え方だということを証明している。
二つ言いたいことがあります。
まず一つ目は、今のx86はほぼRISCみたいなものなので、
言っていることが微妙に的外れということです。
IntelやAMDがRISC的なものを取り入れたことから考えても、
RISCにはある程度の優位性があるのでは無いでしょうか?
またもう一つは、例えば最近作られたCELLはRISC型プロセッサですし
IBMが作っているPower6もクロック数4〜5GHzで動くRISC型アーキテクチャです。
これらが完全にx86系CPU(x86が動くどのCPUでも構いません)に
劣っているという根拠はいったいどこから出てくるのでしょうか?
x86の場合だって過去のソフトウェア資産があったからこそ今があるようなものですし、
一般PC市場を席捲しなければその実力が認められない、と言った見方はあまりにも狭量です。

> RISCのレジスタが多いのは、今ほどコンパイラの最適化が進んでいなかった
> 時代に、てんこもりの汎用レジスタを用意すれば、コンパイラによる最適化
> なしでも高速化できるだろうという安易な発想が原点にある。
Intel自身でさえも、これから新規アーキテクチャを作る場合は
レジスタ数を8などにはしないでしょう。
実際、IA-64のレジスタ数は128です。
CELLのレジスタ数も同じです。
それはいったい何故なのでしょうか?
コンパイラ技術のせいなのでしょうか?

> x86で固定長なのは命令デコーダを通った実行ユニットのパイプラインの
> 中だけ。命令キャッシュや二次キャッシュは、x86のコードのままのはずだ。
> そうでなければ、キャッシュのヒット率や利用効率が大幅に下がる。
ネットバースト系のアーキテクチャを調べてみてください。
「トレースキャッシュ」という単語が出てくるはずです。
キャッシュ効率が下がるのは事実ですが、
2回目以降の実行ではデコードの必要が無くなります。

> FPU命令を除外しても、x86の命令は最小で1バイト、プリフィックスを含め
> れば最大で10バイト以上になるんだが、命令キャッシュに固定長で記憶され
> ていると言うなら、何バイトだと?
それ、自分も書こうと思ったのですが10バイト以上の命令はかなり稀なものなので
例外的に扱って構わないと思います。
というか、Intelの次期CPU,Penrynでもフェッチ帯域は16バイト/クロックなので
そんな命令が頻発されたら、キャッシュ能力の如何にかかわらずほとんど性能が出ません。
(Pentium4のμOPのサイズは、調べたのですが分かりませんでした。すいません)
316774ワット発電中さん:2007/05/18(金) 21:45:21 ID:xPDjw37w
IA-64とかCELLとかのゴミを例に出さんも
317774ワット発電中さん:2007/05/22(火) 14:18:45 ID:nnjGd0MX
CELLはともかく、IA-64って駄目CPUなんですか?
なんかRadeonHD 2900もVLIW採用でイマイチらしいので、
VLIW技術自体が無謀なんでしょうか?
318774ワット発電中さん:2007/05/22(火) 14:35:03 ID:YqqED/TX
>>317
IA64自体はダメって訳じゃ無い。
最初のモデルはIA32代替としては期待外れな性能だったがFPU性能は強力。
数値演算目的だったら強力なCPUだ。

古いIA32ソフトが高速に動くCPUでは無いから、
単純なIA32の置き換え、という目的には意味無いけど…。

VLIWだからダメ、というのは意味が薄い議論だ。
319774ワット発電中さん:2007/05/22(火) 15:00:14 ID:ahLNNs0X
まだ周辺技術がこなれてないというのはあるんでないかい。

命令詰め込むための静的解析とか。
320774ワット発電中さん:2007/05/22(火) 22:42:21 ID:veeq69b4
>>317
 おそらく >>319 が正しい。ハードが楽するのならその分ソフトが
苦労しなければなりません。VLIW は RISC よりもハードの負担を
減らした方式だからコンパイラの最適化が極めて重要だが数値計算の
ようなある程度決まりきったパターンの命令列ではない一般アプリの
場合まだ十分な最適化技術が確立していないと聞いています。その点
GPU などの用途では比較的性能を出しやすいでしょう。
 またコンパイラの最適化がしやすい命令セットというのもありますから、
将来最適化の技術が進んだ場合 IA-64 の命令セットに不満が出てくる
可能性は十分あります。
321774ワット発電中さん:2007/06/02(土) 01:43:26 ID:c18zxe0J
論理合成前のシミュレーションでは正常に動作したのですが
その後のはまともに動かないんじゃあ
誰かボスケテ
322774ワット発電中さん:2007/06/02(土) 10:21:39 ID:mWo8wnm3
あるある。
323774ワット発電中さん:2007/06/03(日) 01:51:50 ID:Chch4jRG
>>321
 クロック周波数を落としても大丈夫な回路なら(DRAM などはクロックを
落とすとリフレッシュ間隔がのびて×)ぎりぎりまでクロックを落として
みたら? それで動くならタイミングシミュレーションで何か見落としが
あるか、バスが重すぎてシミュレートした仮定条件を満たしていないなどを
疑う。クロックを落としても動かないならそもそもボードにバグや配線
ミスなどがあるとか。
324774ワット発電中さん:2007/06/03(日) 10:53:33 ID:t5Sknsdk
さんくす
がんばってみます
325774ワット発電中さん:2007/06/03(日) 12:39:24 ID:u6qWAFtb
やっとMIPS I命令真似た自作CPUがFPGAで動かせたよ
このスレのレベルからしたら低レベルだけど
嬉しかったので記念カキコw
326774ワット発電中さん:2007/06/03(日) 17:07:17 ID:byo3CY96
いまならV850が200円
327774ワット発電中さん:2007/06/03(日) 17:56:33 ID:FsFXhfPb
タダでもいらね
328774ワット発電中さん:2007/06/05(火) 00:26:30 ID:rh0fsHvK
>>326
kwsk
329774ワット発電中さん:2007/06/17(日) 08:15:48 ID:IY/NSsrS
ハードウェアシミュレータをハード化すると現物より速いのか?
330774ワット発電中さん:2007/06/17(日) 15:34:06 ID:RfqkRkZS
最適化次第
331774ワット発電中さん:2007/06/18(月) 00:46:11 ID:ytLpJcpy
>>329
そいつは用途次第じゃないかな。
ソフト書き直しじゃ不味いって用途向けに実装する場合は、
速度だけじゃなくて実行タイミングなんかも現物と一緒じゃないと不味いって場合も多いだろう。
332774ワット発電中さん:2007/06/20(水) 21:59:39 ID:f/bdPXTW
名前が思い出せないのでソースが提示できませんが、算術的に圧縮された
命令ストリームを読み取って、内部的に元の命令ストリームに展開しつつ実行する
MPUは過去に存在しました。
333774ワット発電中さん:2007/12/06(木) 00:30:21 ID:mnJ1bQ/x
すごいな
334774ワット発電中さん:2008/01/02(水) 15:26:42 ID:FtIUkHRq
遅延分岐がパイプライン処理にとってどういう利益があるのかよくわからないのですが
どなたか解説お願いします。

JUMP a
LOAD b,x

こんな場合、JUMPを実行する前にLOADを実行しちゃうんでしょうか?
335774ワット発電中さん:2008/01/02(水) 16:16:48 ID:lD5rgf1/
無条件分岐なら遅延分岐はしない。
条件付JUMPなら、分岐するって解ったらLOAD命令の実行を途中で中止する。
336774ワット発電中さん:2008/01/02(水) 22:02:18 ID:iENYucSX
ともかく実行しちゃうタイプのCPUもあるよねぇ。
337774ワット発電中さん:2008/01/02(水) 22:43:59 ID:wUn1hq/e
>>334
JUMP命令のデコードをした時点で、既にLOAD命令が実行にとりかかっている
んで、待った!をかけるよりも
「やりかけた仕事は最後までやってしまえ」というほうが設計上楽ができるわけ
338774ワット発電中さん:2008/01/02(水) 23:00:12 ID:fUTL/Fei
>>334
利益???それは思考の順序が違う。

パイプライン動作を導入すると遅延分岐動作になる実装設計があり、
その場合、遅延分岐にならないようするには追加の回路が必要になるので
回路規模が大きくなって、ついでに速度が落ちるかもね、という事。

(遅延分岐にならないようにする回路を用意せず)遅延分岐をそのままにしておいても、
遅延分岐動作そのものは不都合にならないケースが多いので
追加回路を入れるか入れないかはトレードオフであり心情の問題でもある。
339774ワット発電中さん:2008/01/02(水) 23:03:48 ID:A3YfTf6+
>追加回路を入れるか入れないかはトレードオフ

つまり、何らかの不利益と引き換えに何らかの利益があるわけだな。
340334:2008/01/03(木) 01:16:35 ID:xJxcwfVZ
皆さんどうもです
ソフトから入ってきてるんで順序が逆だったみたいですね
有益<回路が楽
と考えると自ずと答えが出るわけですかw

要するに遅延分岐はパイプラインバブルの有益な解決方法じゃなく設計が楽になるだけで
エレガントに実行したい場合は分岐予測なんかと組み合わせなさい ってことなんでしょうか
341774ワット発電中さん:2008/01/03(木) 09:12:05 ID:yVUvjynW
そもそも、そのあたりはコンパイラとセットであって、アセンブラで書く
ことは二の次なんよ。
ハードウェアは単純化して性能/コスト(ロジックの量)がなるべく
大きくなるようにして、その単純なハードウェアをうまく動かすように
コード生成する(遅延分岐もそうだし、実行順序の入れ替えなんかも)
というのがコンパイラのお仕事。
342774ワット発電中さん:2008/01/03(木) 09:30:20 ID:zjXX5Jlf
そもそも分岐なんかいらんわ
343774ワット発電中さん:2008/01/03(木) 11:53:31 ID:SnHs+vOu
>>339
>つまり、何らかの不利益と引き換えに何らかの利益があるわけだな。

遅延分岐動作をさせない、最大のメリットはアセンブラソースが見やすくなる事でしょう。
大抵の人は普通の動作に慣れてる訳だから。
344774ワット発電中さん:2008/02/22(金) 00:37:15 ID:1Rmd0nBc
ソースっか
345774ワット発電中さん:2008/03/03(月) 22:42:45 ID:d4k8lxHr
346774ワット発電中さん:2008/03/08(土) 09:52:27 ID:NMeVVLjw
ソースっと?
347774ワット発電中さん:2008/03/23(日) 15:35:45 ID:SqkXOMDK
しょうゆうこと。
ttp://www.opensparc.net/
348774ワット発電中さん:2008/07/02(水) 00:19:57 ID:K59V/ILw
CPUは、分岐時、分岐先の命令がCPUに到着するまで、
パイプラインが停止(ストール)しちゃうのね。
このCPUストールの無駄時間がもったいないから、
この間、なにか命令を実行しちゃえってのが遅延分岐の考え。

でも昨今のCPUは優柔な分岐予測を備えてるから、
遅延分岐はもはやアーキテクチャ的な盲腸ともいえる。

遅延分岐なしのCPU
(1)分岐命令を実行
(2)CPUストール
(3)分岐ターゲット命令を実行

遅延分岐ありのCPU
(1)分岐命令を実行
(2)遅延分岐スロットの命令を実行
(3)分岐ターゲット命令を実行
349774ワット発電中さん:2008/11/16(日) 01:21:41 ID:VXvLORe/
ninja
350774ワット発電中さん:2008/12/03(水) 23:37:52 ID:mDp8HpOR
nanja
351774ワット発電中さん:2008/12/04(木) 03:40:01 ID:RD0mOhz4
monjya
352774ワット発電中さん:2008/12/04(木) 08:15:21 ID:OBD5hm4T
× monjya
○ monja
353774ワット発電中さん:2008/12/22(月) 00:36:08 ID:tygeOOUc
monja-yaki
354774ワット発電中さん:2009/02/08(日) 23:44:21 ID:C4j1cRZz
おまえらopensparcのソース読んだりするの??
355774ワット発電中さん:2009/02/09(月) 00:09:42 ID:RcS9ALNs
役目を終えたCPUに用は無い
356774ワット発電中さん:2009/06/22(月) 01:31:59 ID:aKHCzjsU
Oh, is the CPU it in your brain?
357774ワット発電中さん:2009/07/17(金) 11:35:54 ID:aqJzqrcL
学習の為に16bit固定長命令(OPコード5bitオペランド11bit)のCPU作ってみようと思うんだけど、
普通のCPUの命令セットってどの辺揃えておけばいいのかな?
x86みたいにごっちゃごちゃにはしたくないし。

レジスタ間コピー、加減算、AND、OR、XOR、NOT、
左右論理シフト、左右算術シフト、即値格納、メモリ読み書き、
レジスタ間比較、条件ジャンプ(A>B,A<B,ZFlag=1,ZFlag=0)、無条件ジャンプ、停止

あと何か必要?
それと、符号付演算って必要だと思う?
358774ワット発電中さん:2009/07/17(金) 11:41:30 ID:aqJzqrcL
現段階の案では正確に言うと左右算術シフトじゃなくてキャリー付き左右論理シフト
だった
359774ワット発電中さん:2009/07/17(金) 14:15:48 ID:MBwsqnAF
call return は?
360774ワット発電中さん:2009/07/17(金) 16:26:39 ID:Y2mVppeT
PCが汎用レジスタ扱いなのかどうか、
スタックポインタやリンクレジスタがあるのかどうか、など
プログラミングモデルの構想も聞きたい。
分岐命令やメモりアクセス命令は
プログラミングモデルと合わせて考える必要があると思う。
361774ワット発電中さん:2009/07/17(金) 23:31:06 ID:93UQFpT1
割り込み
362774ワット発電中さん:2009/07/18(土) 03:56:22 ID:CjKPcqG1
命令体系を単純化してオペコードを縮小するには、
PCとSPも汎用レジスタにするのが良いんじゃないの。

レジスタ間コピーとかロード命令でジャンプできる。

もっとも、条件分岐命令に関しては逆に深刻な制限になってしまうから
むしろ薦めにくいのかも。

数ビットの小さなオフセットだけ対応の近距離条件分岐しか条件分岐を装備しないなら良いが。

って、PICの条件分岐命令がこんな感じだっけ?

SPが汎用レジスタ、ってのは結構いろいろあった気はする。68kもそれに近い。
363774ワット発電中さん:2009/07/18(土) 07:43:07 ID:y+panK5c
条件成立したら次の命令をスキップする命令てのがあって
無条件分岐と組み合わせると条件分岐できます

てのがどこかにあったな。

364774ワット発電中さん:2009/07/18(土) 09:35:12 ID:0Mpt1R4o
>362
H8もそーだお
365774ワット発電中さん:2009/07/18(土) 12:12:11 ID:fi5mXdUS
いっそ、みんな条件付実行にしちゃえ、っていうARMみたいなのもある。
366774ワット発電中さん:2009/07/18(土) 13:58:02 ID:GJb8xnbZ
16ビットじゃきついだろw
367774ワット発電中さん:2009/07/18(土) 14:14:09 ID:fi5mXdUS
脱線スマソw
368774ワット発電中さん:2009/07/18(土) 16:42:21 ID:SKB/dBhA
条件付き実行するかしないか指定するだけなら
1ビットで足りるから、命令長16ビットでも実現可能。
369774ワット発電中さん:2009/07/19(日) 00:41:52 ID:ozqqB7nQ
>365-366
それ、ARMの基本命令セットが32ビット固定だったから可能になったんだよな。
16ビットに縮小したThumb命令セットでは条件分岐命令以外の命令は条件判断しないよ。

>368
どういうフラグの組み合わせで実行するかどうかを決める関係上、条件フィールドは4ビットぐらい使うのが普通だし。
370774ワット発電中さん:2009/07/19(日) 02:20:43 ID:dwgW/0BC
>>369
SHみたく比較の方にフラグ立てる条件をいれてしまえば、
判断する方は1ビットですむべ。

371774ワット発電中さん:2009/07/19(日) 10:47:31 ID:/mLe3aWQ
>>369
>>368
>どういうフラグの組み合わせで実行するかどうかを決める関係上、条件フィールドは4ビット
>ぐらい使うのが普通だし。

コンディションコードがNZCVあるARMだからそうなのであって
1ビットコンディションフラグで済ませれば条件フィールドは不要。

372774ワット発電中さん:2009/07/19(日) 18:07:24 ID:ozqqB7nQ
>370-371
俺が知ってる限られた数のCPUアーキテクチャでは、
どれも4〜5ビットぐらいのフラグがあったから、それが普通だと思ってたよ。

だが確かに、370の考え方なら1ビットのフラグでも足りそうだな。

今までは俺の世界が狭く、頭が固かったってことか、dクス
373774ワット発電中さん:2009/07/19(日) 19:15:00 ID:JJ+aiuKz
>>357はどこに行ったんだろう。
374774ワット発電中さん:2009/07/20(月) 01:54:54 ID:oQ5VRvbl
じゃあほっといて、学習用16bitアーキテクチャ作ってみないか
375774ワット発電中さん:2009/07/20(月) 02:04:55 ID:ByKPgXOG
40ピンにこだわる?
376774ワット発電中さん:2009/08/01(土) 19:47:22 ID:pQvma67S
今日日の学習用なら多少リッチなほうがいいんじゃないか
>>360みたいなのは最適化の第一歩くらい
377774ワット発電中さん:2009/08/02(日) 13:21:15 ID:i7ADDGkN
>>357から半月近くも経っているし
RTLが既に完成していてもおかしくないわけだが

378774ワット発電中さん:2009/08/14(金) 00:20:52 ID:C3ZvFA+F
このスレ、初めて来たんだが、誰か実際に作った人はいるの?
シミュレーションだけでも良いから。
379774ワット発電中さん:2009/08/14(金) 10:46:58 ID:C9/4WfEp
>>378
RTLシミュレーションとFPGAで動作検証して
チップもかれこれ5種類くらい作りましたよ
180nと90nで。

CPU作ること自体は大したことではないです。
どちらかというとソフト開発環境を整備する方が手間。

380774ワット発電中さん:2009/09/05(土) 01:39:53 ID:SSedFLo2
勉強になる。
381774ワット発電中さん:2009/09/06(日) 15:59:51 ID:oSsg07bJ
>>379
GNU のアセンブラー・デバッガー (gas, gdb) なんかは、
カスタム CPU 対応が可能です。「GNU gas custom CPU」とかで Web 検索。
そこまで進めたら gcc も、もう一息かな?
一人で全部やるのはスゲたいへんそう。何人かのグループでやれば可能だろうね。

アセンブラーだけならゼロから作ってもいいし、
awk なんかの力も借りて、それでは困難な部分は pre-process, post-process
する方法もアリかなぁ。
382774ワット発電中さん:2009/09/06(日) 20:44:51 ID:HR94i4IK
まっ,>381ががんばることに期待しておく
383379:2009/09/08(火) 10:06:24 ID:1CexsLJf
>>381
もちろんGNUの開発ツール群をカスタマイズして使っています。
eclipseにも対応させました。
384774ワット発電中さん:2009/09/08(火) 15:05:03 ID:/muNiN+/
>>383
じゃあ、さしあたって、なにが困っているの? それを聞きたい。
385774ワット発電中さん:2009/09/15(火) 16:06:19 ID:6T8L9u8d
もしか「し」 (shi) て「早く動かない」のかなー。
バカすぎて、とてもごめん。でもいちおうは、一応はレスしておく。
386774ワット発電中さん:2009/09/15(火) 16:22:42 ID:oHG/WZ3F
>>384
383=379 は困っているとは一言も書いていないのだが。
378 の呼びかけに答えただけで。
387774ワット発電中さん:2009/09/15(火) 20:19:44 ID:jc/i8Gze
CPU造ってみたい。
どうやるのかな。
リスクはレジスタたくさん作るの?
388774ワット発電中さん:2009/09/15(火) 21:11:40 ID:MyiupAqo
実用性考えないなら、レジスタ4個ぐらいでも動くんじゃない?
389774ワット発電中さん:2009/09/16(水) 00:10:53 ID:z2pPcRC9
レジスタ無しでも制御系には十分使える。
390774ワット発電中さん:2009/09/16(水) 03:50:51 ID:c6ST0QLd
金銭登録機無しでも商売はできる。ホンと、だじゃれが多いな。
391774ワット発電中さん:2009/09/16(水) 03:57:43 ID:c6ST0QLd
なぜレジスターを一本二本とか数えるのだろうか。その起源を知ってる人、ぜひ教えて下さい。
392774ワット発電中さん:2009/09/16(水) 09:21:02 ID:Dmxenum6
長いからじゃね?
393774ワット発電中さん:2009/09/16(水) 09:47:59 ID:GyPmWSpN
>>389
387はRISCって言ってるからな。レジスタ無しはちょっと
394774ワット発電中さん:2009/09/16(水) 11:45:34 ID:ds+ksuMa
>393
レジスターはメモリー割り付ける。何が困るの。

その昔、N 社の次期 CPU の概念図を見せられたことがあった。
当人はすげー革新的だと思ったんだろうが、
この板的には、異論がごうごうだろな。
395774ワット発電中さん:2009/09/16(水) 11:50:29 ID:7Ok3kkNN
>>394
なんとなくわかるような。命令デコーダーをどうするか。
多段パイプラインを使えば、どーでもよくなるような。もっとぶってね。
396774ワット発電中さん:2009/09/16(水) 13:34:14 ID:+gzV8ygA
>>レジスターはメモリー割り付ける。何が困るの。

それをRISCと呼ぶと苦情が殺到して困るんだろう。
多分だけどな。
397774ワット発電中さん:2009/09/17(木) 00:17:39 ID:alkuQMJh
>>391
そろばんのイメージかね
398774ワット発電中さん:2009/09/17(木) 22:59:12 ID:alkuQMJh
もっと単純に、マニュアルに棒で描かれてたからか
399774ワット発電中さん:2009/09/17(木) 23:16:06 ID:2Uvv7Dgt
>394
レジスタをメモリとして実装する。

古く懐かしい、「縮小命令コンピュータ」(と呼ぶのかね? 命令体系ではなく。)たる、
初期の組み込み用CPUの典型じゃないの。

たとえば、256バイトぐらいのオンチップメモリを積んで、その先頭もしくは末尾の数バイトがレジスタ。
アーキテクチャによっては、裏レジスタを実装してる例もあった。

もちろん、あくまでもローカルメモリであるから、インデックスレジスタを用いた間接アドレシングでのアクセスもできる。

今でも、小規模向けのマイコンの中には、そういうローカルメモリが付いてるヤツが残ってるかも。
400774ワット発電中さん:2009/09/18(金) 00:31:42 ID:3wTbfZ/0
 現役バリバリの AVRは 基本CPI=1 の RISCで、汎用レジスタ32本が
データメモリ先頭 0x0000-0x001F にも割り付けられてるから、
LD/ST命令で間接アクセスできるよ
401774ワット発電中さん:2009/09/18(金) 04:46:46 ID:j+7Wqv/w
>>399
それもうEDSAC/Manchester Mark Iあたりからのデザイン
402774ワット発電中さん:2009/09/18(金) 05:26:38 ID:wpTtAB1O
>>399
>今でも、小規模向けのマイコンの中には、そういうローカルメモリが付いてるヤツが残ってるかも。

8051は未だに改良品が作られ新規採用される現役です。
403774ワット発電中さん:2009/09/18(金) 12:39:53 ID:HuLFLbLd
誰かデータフローマシンについて詳しい奴はいないか?
原理的に最高の並列性が出せるらしいが、古い研究なのであまり資料がない。
特に欠点について知りたい。
404774ワット発電中さん:2009/09/18(金) 12:53:13 ID:I33QNA28
>>399
> レジスタをメモリとして実装する。

そもそも、ミニコンのPDP-11あたりとか、データゼネラルとか、そうでは
なかったかと。 マイコンの世界でもTIの初期のTMS9900だったかの16bit
なんかも。 あと、昔AMDが得意だったビットスライスとか。

>>402
> 8051は未だに改良品が作られ新規採用される現役です。

昔は12MHzそこらで、1命令実行するのに、最低でも4クロックくらい掛かっ
ていたのが、今じゃ100MHzで1クロックだもんな。 あくまでバイナリ互換
ってだけで中身はまったく別物。

所詮、最新マイクロプロセッサに実装される技術の多くは、大型やミニコン
で実用化されていた技術をシリコン上に取り込んでいるだけでそ。
405774ワット発電中さん:2009/09/18(金) 12:57:41 ID:fmI2GZd/
>>404
当たっているのは、TIだけですねw
406774ワット発電中さん:2009/09/18(金) 14:44:52 ID:u4ryLd0O
>>403
弓場敏嗣 山口喜教 「データ駆動型並列計算機」

説明すんのメンドクサイから↑でも読め。
それで足りなきゃ、巻末のリファレンスから文献拾え。
407774ワット発電中さん:2009/09/18(金) 16:54:36 ID:j+7Wqv/w
>>405
これだけ外しているのも珍しいよな

>>403
>>406の人たちの作ったものでいうと
演算ユニット→ネットワーク→演算ユニットとデータが回るわけだが、ネットワークの遅延が大きい
マッチングストアというレジスタと命令キューを兼ねたようなユニットがあるんだが、高コストにつく
基本的に副作用のない関数型言語を動かすことしか考えていなくて、
Cのように自由にメモリに書き込みを出来る言語では制御トークンを用いて逐次化しないといけない。これならPCで制御したほうがいいじゃんとなる
使用済みのリソースを解放するのにやっぱり制御トークンを用いて逐次化する。これならPCで以下略
基本的に例外処理ができない

そのままでは欠点だらけで到底実用的ではないけど、今のスーパースカラプロセッサはデータフローマシンにとても近いよ
408774ワット発電中さん:2009/09/18(金) 17:06:26 ID:j+7Wqv/w
> 所詮、最新マイクロプロセッサに実装される技術の多くは、大型やミニコン
> で実用化されていた技術をシリコン上に取り込んでいるだけでそ。

大型機由来の技術はいろいろあるが、ミニコン由来のってなんかあったかな
貧弱なバスくらいか

なんにしろ「取り込んでいるだけ」ってこたぁない
409403:2009/09/18(金) 17:46:14 ID:e2pw7NAm
>>406
サンクス。
でもちょっと古い本だな。
410774ワット発電中さん:2009/09/18(金) 18:21:36 ID:u4ryLd0O
だが、データフローマシンに関してまとまった内容の日本語の成書は多分それしかない。
基本的に著者が関わった機械についての簡単な解説なんだが、DFMとしてそんなに癖の
あるアーキテクチャじゃないから理解するのにそれほど苦労しないと思うし、(NECの画像
処理用LSIは酷かったw)、自分たちの機械に関連してDF全体についても触れてるから、
最初に読むには今のところそれが一番いいと思う。で、興味を持ったら巻末の書誌からCiNii
ででも論文をあさればいいと思う。

つか、多分この本が出て以降DFについてはあまり進展が無いと思う。まあ、アマチュアだし
サーベイをちゃんとしてるわけじゃないから確約は出来ないが。

411774ワット発電中さん:2009/09/18(金) 18:26:03 ID:j+7Wqv/w
だって(狭義の)データフローなんて80年代で滅びたんだもん
マルチスレッドに移行してこれも滅びた

>>410
馬場先生のがある
洋書はGaoとGaudiotのくらい
412774ワット発電中さん:2009/09/18(金) 19:16:09 ID:u4ryLd0O
俺にアンカーつけられても困る。
つか、>>403にその本紹介してやれよ。
413774ワット発電中さん:2009/09/18(金) 19:26:16 ID:SQvb44ye
その昔、タイトルに"データフロー"と付いた本を読んだ記憶があるが、
ざっと検索するにたぶん
曽和将容『データフローマシンと言語』
かな。 >406より古い本だ。
414774ワット発電中さん:2009/09/18(金) 19:28:28 ID:j+7Wqv/w
>>412
お、何か気に障ったか?ww
415774ワット発電中さん:2009/09/18(金) 20:00:43 ID:HuLFLbLd
>>413
東大の坂井先生に、その著者は癖があるので気をつけろと
言われたことがある。過去に何かあったんだろうか?
416774ワット発電中さん:2009/09/19(土) 01:25:26 ID:kfJkxr3h
曽和先生は変人という話だが、実物は見たことない(←小ネタ)のでわからない
417774ワット発電中さん:2009/09/19(土) 15:17:46 ID:oOkTRHIN
【質問1】

 RTL compiler で論理合成をしています。
 クロックラインへのバッファー挿入ケアが全くされず
 に困っています。クロックラインへファンアウト調整
 用のバッファーを挿入させたネットリストを生成する
 にはどのようにすればよいでしょうか?

 勝手にset_dont_touck_network clock がかかっていて
 どうしても解除できません。

 不可能であるなら、design compiler へ移行いたします。

 
【質問2】

 RTL compiler で論理合成をしています。
 データラインへのホールド調整を行うにはどのように
 すればよいでしょうか。

 set_fix_hold ができません。

 不可能であるなら、design compiler へ移行いたします。
418774ワット発電中さん:2009/09/19(土) 22:38:27 ID:+3dxIZrN
なぜサポート窓口に質問しないのか不思議だ。
そのために馬鹿高い保守料払ってるのに。
419774ワット発電中さん:2009/09/19(土) 23:20:38 ID:hka0vg5/
何か不自由な人の可能性が高い
420774ワット発電中さん:2009/09/21(月) 06:24:23 ID:ipFuEa9F
【質問1】

 RTL compiler で論理合成をしています。
 クロックラインへのバッファー挿入ケアが全くされず
 に困っています。クロックラインへファンアウト調整
 用のバッファーを挿入させたネットリストを生成する
 にはどのようにすればよいでしょうか?

 勝手にset_dont_touck_network clock がかかっていて
 どうしても解除できません。

 不可能であるなら、design compiler へ移行いたします。

 
【質問2】

 RTL compiler で論理合成をしています。
 データラインへのホールド調整を行うにはどのように
 すればよいでしょうか。

 set_fix_hold ができません。

 不可能であるなら、design compiler へ移行いたします。
421774ワット発電中さん:2009/09/21(月) 06:26:27 ID:ipFuEa9F
【質問1】

 RTL compiler で論理合成をしています。
 クロックラインへのバッファー挿入ケアが全くされず
 に困っています。クロックラインへファンアウト調整
 用のバッファーを挿入させたネットリストを生成する
 にはどのようにすればよいでしょうか?

 勝手にset_dont_touck_network clock がかかっていて
 どうしても解除できません。

 不可能であるなら、design compiler へ移行いたします。

 
【質問2】

 RTL compiler で論理合成をしています。
 データラインへのホールド調整を行うにはどのように
 すればよいでしょうか。

 set_fix_hold ができません。

 不可能であるなら、design compiler へ移行いたします。
422774ワット発電中さん:2009/09/21(月) 06:27:52 ID:ipFuEa9F
【質問1】

 RTL compiler で論理合成をしています。
 クロックラインへのバッファー挿入ケアが全くされず
 に困っています。クロックラインへファンアウト調整
 用のバッファーを挿入させたネットリストを生成する
 にはどのようにすればよいでしょうか?

 勝手にset_dont_touck_network clock がかかっていて
 どうしても解除できません。

 不可能であるなら、design compiler へ移行いたします。

 
【質問2】

 RTL compiler で論理合成をしています。
 データラインへのホールド調整を行うにはどのように
 すればよいでしょうか。

 set_fix_hold ができません。

 不可能であるなら、design compiler へ移行いたします。
423774ワット発電中さん:2009/09/21(月) 06:29:18 ID:ipFuEa9F
【質問1】

 RTL compiler で論理合成をしています。
 クロックラインへのバッファー挿入ケアが全くされず
 に困っています。クロックラインへファンアウト調整
 用のバッファーを挿入させたネットリストを生成する
 にはどのようにすればよいでしょうか?

 勝手にset_dont_touck_network clock がかかっていて
 どうしても解除できません。

 不可能であるなら、design compiler へ移行いたします。

 
【質問2】

 RTL compiler で論理合成をしています。
 データラインへのホールド調整を行うにはどのように
 すればよいでしょうか。

 set_fix_hold ができません。

 不可能であるなら、design compiler へ移行いたします。
424774ワット発電中さん:2009/09/21(月) 06:32:25 ID:ipFuEa9F
【質問1】

 RTL compiler で論理合成をしています。
 クロックラインへのバッファー挿入ケアが全くされず
 に困っています。クロックラインへファンアウト調整
 用のバッファーを挿入させたネットリストを生成する
 にはどのようにすればよいでしょうか?

 勝手にset_dont_touck_network clock がかかっていて
 どうしても解除できません。

 不可能であるなら、design compiler へ移行いたします。

 
【質問2】

 RTL compiler で論理合成をしています。
 データラインへのホールド調整を行うにはどのように
 すればよいでしょうか。

 set_fix_hold ができません。

 不可能であるなら、design compiler へ移行いたします。
425774ワット発電中さん:2009/09/21(月) 14:43:36 ID:ipFuEa9F
【質問1】

 RTL compiler で論理合成をしています。
 クロックラインへのバッファー挿入ケアが全くされず
 に困っています。クロックラインへファンアウト調整
 用のバッファーを挿入させたネットリストを生成する
 にはどのようにすればよいでしょうか?

 勝手にset_dont_touck_network clock がかかっていて
 どうしても解除できません。

 不可能であるなら、design compiler へ移行いたします。

 
【質問2】

 RTL compiler で論理合成をしています。
 データラインへのホールド調整を行うにはどのように
 すればよいでしょうか。

 set_fix_hold ができません。

 不可能であるなら、design compiler へ移行いたします。
426774ワット発電中さん:2009/09/21(月) 19:34:21 ID:IktI31G6
貼ると幸せになるコピペか?
おれも貼ってみよ

【質問1】

 RTL compiler で論理合成をしています。
 クロックラインへのバッファー挿入ケアが全くされず
 に困っています。クロックラインへファンアウト調整
 用のバッファーを挿入させたネットリストを生成する
 にはどのようにすればよいでしょうか?

 勝手にset_dont_touck_network clock がかかっていて
 どうしても解除できません。

 不可能であるなら、design compiler へ移行いたします。

 
【質問2】

 RTL compiler で論理合成をしています。
 データラインへのホールド調整を行うにはどのように
 すればよいでしょうか。

 set_fix_hold ができません。

 不可能であるなら、design compiler へ移行いたします。
427774ワット発電中さん:2009/09/22(火) 19:13:56 ID:mONUpANN
コピペしてたくさんレスすれば、声がデカイと思っている人がいるようだ。
同じ2chでも、ある種の板ではそんな気もする。さあね。
428774ワット発電中さん:2009/09/25(金) 20:58:14 ID:kxjWlsCD
>>417
質問1へのコメント
うろ覚えで恐縮だけど、
Cadenceはバッファー挿入は配置配線段階でケアする思想とか営業ゆーてた希ガス。
配置配線の状況次第で決まってくるし、合成段階で精度追求してもという考えからだろう。
まあ、微細化傾向では妥当性のある考えではある。

質問2へのコメント
質問1と同様だった希ガス。

(やっとアク禁解除なってコメント遅くなった)
429774ワット発電中さん:2009/09/30(水) 17:17:04 ID:t4iKF6Ya
でんす でんす けいでんす
これじゃベリ・ベリ・ドント・ケア
430774ワット発電中さん:2009/10/01(木) 10:34:05 ID:AQ/At+wK
最近はマグマばっかだな
431774ワット発電中さん:2009/10/02(金) 01:36:46 ID:e8junr5O
けいでんすマンボ、自信作だったのにしくしく
432774ワット発電中さん:2009/10/02(金) 10:19:40 ID:nLCX4PSZ
ビルドゲイツは好きだったよ、
おやじギャグっぽいネーミングにはひいたが。
433774ワット発電中さん:2010/04/26(月) 01:52:16 ID:QLKvB6o/
Jobs が 仕事 をする。
Bill gates は 金を取る。

機械翻訳するとbill gatesは請求門になるから。
434774ワット発電中さん:2010/06/11(金) 15:18:20 ID:Ac7/sAi4
>>433
遅レスだが、おもしろい!
435774ワット発電中さん
ビルドベースを思い出すやつはおっさん確定保守