5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

[x86]CPUアーキテクチャについて語れ![RISC]

1 :Socket774:04/04/19 15:59 ID:xbBch3+r
お前らいい加減、無能なAMD房・Intel房に振りまわされず、
エンコ時間がどうとかPIがどうとかじゃなく、
CPUコアのアーキテクチャについて語りましょう。

x86/RISC/CISC/スーパースカラ/VLIW/MIMD/SIMD
等について語ってもよし、

フリップフラップ回路が小さいPentium Mマンセー、
CISCなのに内部はRISCなPentium 4マンセー、
x86なのに32/64bitコンパチなOpteronマンセー、
昔々8086の時代は(以下略・・・等もよし。

さあ、不毛な争いを止めてCPUアーキテクチャについて語ろう!

155 :・良く分かるパイプライン:04/04/26 17:20 ID:B6tZVOSS
「おしっこをして手をあらってでてくる」。
トイレが一室しかないと混雑時は長蛇の列ができます。

1.おしっこをする
2.手を洗う。

二段のパイプにすると、手を洗ってる間に別の人が用を足せるようになります。
トイレ一室で二人が気持ちよくなれて、効率が倍になります。

もうすこし深くしてみましょう。

1.ジッパーを下げる
2.ちんちんとりだす
3.放尿する
4.しずくを切ってちんちんしまう。
5.ジッパーをあげる
6.手を洗う
7.紙を使って手をふく

7ステージに分解すると、なんと 7人が同時に処理できます。
これがパイプラインです。


156 :・良く分かるスーパスケーラ:04/04/26 17:21 ID:B6tZVOSS
トイレの利用はおしっこだけではありません。
うんこもします。どういう手順でしょうか。

1.ジッパーを下げる
2.ズボンとパンツを下ろす
3.便器に座ってふんばる(出す)
4.汚れた尻を拭く
5.ズボンとパンツをあげる
6.ジッパーを上げる
7.手を洗う
8.紙を使って手を拭く

前半と後半は同じ処理ですが、途中がおしっことは別処理です。
ということは、小便器と大便器をわけると、途中は並列に処理ができそうです。

うんちとおしっこは処理時間が異なるので、手を洗ったりする所でどっちかが
待たされる事もありえますが、理想的には効率は倍になります。

これがスーパスケーラです。

157 :・良く分かるスーパパイプライン:04/04/26 17:22 ID:B6tZVOSS
うんこする時間と、ズボンとパンツを脱ぐ時間は同じでしょうか。
いいえ、うんこする時間のほうが圧倒的に長いです。

ということは、前の人がうんこしてる間パンツを下ろす人は尻をだしたまま
ぼ〜とまっていなくてはいけません。かかる時間を考慮してみましょう。
括弧内は、実際に処理に必要な時間です。

1.ジッパーを下げる(5秒)
2.ズボンとパンツを下ろす(20秒)
3.便器に座ってふんばる(60秒)
4.汚れた尻を拭く(30秒)
5.ズボンとパンツをあげる(20秒)
6.ジッパーを上げる(5秒)
7.手を洗う(60秒)
8.紙を使って手を拭く(30秒)

パイプラインは、一ステージ毎タイミングを合わせて処理をします。
一番時間がかかる処理は、例では60秒ですから、トイレにはいってから出てくる
まで60秒x8回、480秒の時間がかかります。



158 :・スーパーパイプライン(続き):04/04/26 17:23 ID:B6tZVOSS
ちょっと発想を広げ、時間のかかる処理を分解してみましょう。

1.ジッパーを下げる(5秒)
2.ズボンとパンツを下ろす(20秒)
3.便器に座る(10秒)
4.一回目ふんばる(30秒)
5.二回目ふんばる(30秒)
6.汚れた尻を拭く(30秒)
7.ズボンとパンツをあげる(20秒)
8.ジッパーを上げる(5秒)
9.手に石鹸をつけて泡立てる(30秒)
10.泡を洗い流す(30秒)
11.紙を使って手を拭く(30秒)

ステージ数は増えてしまいましたが、1ステージにかかる時間は30秒と半分に
なりました。クロックでいうと倍のクロックに出来ることになります。

トータルでかかる時間はどうでしょう。30秒x11で 330秒ですね。
前より早く処理が完了しました。しかしクロックが倍になったけどトイレに
かかる時間は半分にはなりません。

これが、スーパパイプラインです。

159 :・緊急事態発生:04/04/26 17:24 ID:B6tZVOSS
あなたは今、これから迎えるであろう至福の時を迎える為にパンツをおろし、
あとは出すだけという所です。しかし!あろうことか神の声が轟きます。

「なにをしている、ここは女子便所だぞ」

条件判断ミスです。あなたの後ろには、つられて入って来てしまった数人の男性が、
ジッパーをさげズボンを降ろし、尻をだしたまま待っています。
しかし、ここで用を足すわけにいきません。あなたは数名の男性と共に廊下に
ほうりだされます。

あなたはもう一度、正しいトイレにいってジッパーを降ろす所から始めなくては
いけません。

一方女子トイレはというと、あなた達がほうりだされた事により三つの席が
空いてしまいました。ステージは規則正しく順番に進みますから、この席は
もう埋まりません。三つ分の埋まっていない席の為、女子トイレは利用される
ことなく無駄な時間が経過するでしょう。

その分、女子トイレの利用率は下がります。
これがハザードです。


160 :・その他の危険:04/04/26 17:25 ID:B6tZVOSS
トイレの危険はまだまだいっぱいあります。
トイレットペーパーが無くなったらどうでしょうか。尻を拭くことが出来ず、
それ以降のステージは凍結してしまいます。

手拭きのペーパータオルが無くなる危険もあるし、汲み取り式のトイレだと
肥溜めがいっぱいになってしまう事もあるでしょう。

その度にあなたは、本来やりたかった放尿を一時中断し、紙をとってきたり
汲み取ったりしないといけません。

本来は放尿や脱糞だけできればどんなに気持ちの良いことか。
そこで、トイレ掃除の人を雇って紙の補充をしてもらったり、汲み取り業者
を雇って定期的に組み上げてもらいます。お金がかかりますが知っちゃこっちゃ
ありません。それで本来の目的が気持ちよく遂行できるなら安いものです。

そう思うでしょう?


161 :・依存関係:04/04/26 17:26 ID:B6tZVOSS
トイレが汚いとあまり気持ち言いものじゃありません。
知った人が前にすましてたら、そのトイレがきれいかどうか聞いてみるといい
ですね。でも、その人がトイレから出てくるまで聞けませんから、待ってる事に
なります。

折角11ステージにも増えて、同時に11人処理できるトイレも、入って来て
くれなければ利用率は下がります。

あなたと連れが二人います。
一人がトイレに行きました。あなたともう一人の連れは入りたいけど綺麗か
気になります。

この時、全体にあかる時間は

1.一人目の連れがトイレに入って出てくるまで 330秒。
2.トイレがきれいか確認してあなたが入って出てくるまで更に 330秒。
3.もう一人の連れは、あなたに続いて入れるので出てくるはあなたから30秒遅れ。

聞かずに入れば330+30+30で390秒で済む所が、トータルで690秒もかかって
しまいました。

これが依存関係です。


162 :・リオーダ:04/04/26 17:27 ID:B6tZVOSS
そこで、トイレがきれいか同か聞かなくてもいい人を先に通してみると
どうでしょう。どうせあなたは10ステージ分経過するまでトイレには
入れないんです。

丁度バスツアーの観光バスがサービスエリアに到着しました。あなたと、もう
一人の連れとの間に並んでます。おばはんは男トイレでも気にしません。

処理時間はどれだけでしょうか。

1.一人目の連れがトイレに入って出てくるまで 330秒。
2.トイレがきれいか確認してあなたが入って出てくるまで更に 330秒。
3.あなたの後ろに並んでしまったおばはんが10人。入りきるで300秒。
4.もう一人の連れはその30秒後にトイレに入れるので、入れるのは
あなたが入ってから330秒遅れ、さらに330秒の処理時間。

あなたのグループはトータル 990秒かかります。
おばはんは、あなたが入った後にしか入れませんから、330+30で360秒後に
トイレにはいって、全員がでてくるのは330秒後ですから、690秒後です。

先におばはんをいれてみたらどうなるでしょう?

1.一人目の連れがトイレに入って出てくるまで 330秒。
2.一人目が入って30秒後におばはんが入り始めて10人入るのに300秒。
3.トイレがきれいか確認してあなたが入って出てくるまで更に 330秒。
4.もう一人の連れは、あなたにつづいて入れるので出てくるのはあなたから30秒遅れ。

あなたのグループは、トータル690秒で済みます。
おばはんは30秒後にははいってますから、なんと360秒後には全員でてきています。

処理を入れ換えてあげると、トイレの利用率はあがり全体の処理時間が短縮
されることがあります。これがリオーダです。


163 :・いろんな工夫:04/04/26 17:28 ID:B6tZVOSS
大勢が素早く滞り無く気持ちよくなる工夫はいろいろあります。

トイレを二部屋用意するとか(Dualトイレ)、使用中のトイレに行列ができない
ように振り分けて上げるとか(Threadコントロール)、トイレに待合室とかつくっ
ておくと(Cache)、すれ違え無い程廊下が狭くてもまとめて入室させたり退室さ
せれば(WriteBack)混乱は減りますね。


とここまで書いておいて、トイレを流すのを忘れていたことに気がつきました。
くさいです。ちゃんと流しましょう。


164 :Socket774:04/04/26 17:35 ID:dagIouhn
ワロタ
他にまともなたとえはないのか・・・

165 :Socket774:04/04/26 17:39 ID:awEMNttN
しかもさらっと流し読みした感じ、言ってること正しいし・・・w


166 :Socket774:04/04/26 17:39 ID:odrGp1l3
スカラ

防御魔法のひとつ
仲間1人の守備力を50%上げることができる
使用するとMP(マジックポイント)2ポイント消費される

167 :Socket774:04/04/26 17:41 ID:MDVdwW/y
俺もクチを突っ込もうとして、ざっと読んだ感じでは一箇所も破綻が無いのに感心した。

もう少し人に気軽に見せられる例えか、萌えられる例えだったら友人に見せたいくらいだw

168 :Socket774:04/04/26 21:02 ID:86GpYuw3
>>150
それをえらい良い効率でやっているのがHTその他なんだな。
すでにアウトオブオーダ出来てるんで大した物量かけずにね。

固定でコンテキストを切り替えるのは前にも書いたけどネットワーク
プロセッサで使ってるのがある。スループット重視でレイテンシはあ
きらめるわけだな。

169 :Socket774:04/04/26 21:24 ID:IIA5aNqb
HT は入口は別々でも中では一つの便器しかない男女兼用トイレみたいなものか。


170 :Socket774:04/04/26 23:37 ID:QCdidARo
B6tZVOSSの偉業に拍手・・・パチ パチ パチ
こんなもの2ちゃんでしか読めない

171 :Socket774:04/04/27 05:27 ID:t15Y+NkR
    彡ミミミヽ ノ彡ミミ)
   ((彡ミミミミ))彡彡)))彡)
   彡彡゙゙゙゙゙"゙゙""""""ヾ彡彡)
   ミ彡゙          ミミミ彡
  ((ミ彡 jニニコ iニニコ. ,|ミミ))
  ミ彡  fエ:エi   fエエ) .|ミミ彡
  ミ彡|  ) ) | | `( ( |ミ彡
  ((ミ彡|  ( ( -し`) ) )|ミミミ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ゞ|  ) )  、,! 」( ( |ソ   < B6tZVOSSよ 感動したぞ
     ヽ( ( ̄ ̄ ̄' ) )/      \__________
     ,.|\、)    ' ( /|、 
   ̄ ̄| `\.`──'´/ | ̄ ̄`
      \ ~\,,/~  /
       \/▽\/

172 :Socket774:04/04/27 10:21 ID:EZAjmzxt
>>169
ついでに紙は別々、といったところかw

173 :Socket774:04/04/27 12:08 ID:l28nHlEW
米新興メーカー、稼働中に新命令を追加できるチップを開発
http://japan.cnet.com/news/ent/story/0,2000047623,20065688,00.htm
どうですか?


174 :Socket774:04/04/27 14:04 ID:Y/apR8OO
プレスコは30人が1つのトイレに入れるっつーことだな。

175 :Socket774:04/04/27 14:23 ID:PxKlASst
>>174
という事は最初の一人が早速つまずくと、30人目はそのうち
我慢できなくなってお漏らししてしまう罠(w

CPUもあまり待たされた命令はスキップしてしまったらどうだ
ろうか。(ヲイヲイ)

176 :Socket774:04/04/27 14:26 ID:dlsf7sWb
P6 はオシリからうんこの頭が見えた人からトイレに入るように
改良した。これがアウトオブオーダだよ。


177 :Socket774 :04/04/27 15:11 ID:ky1zUeX2
>>174
プレスコット、というより、NetBurstの偉大な点は、排泄行為をまったく別のものに
置き換えた点にあります。

高性能な人工透析器を別途配することにより、腎臓->膀胱->放尿といった
古来よりつづく非効率的なプロセスを、連続的な透析により完全にカバーし
かつ(局所的な時間帯に限って言えば)滞る事無く処理が可能となります。

また、人工透析器に繋がっている間は新しく体内で尿毒素が発生しても
ちんちんをだしたりしまったりという放尿に伴う予備作業を行わずして
処理を繰り返すことも可能となり、ここでもさらに効率が上がります。

また人工透析器をより高性能なものに交換することや、人工透析器への接続
方法を改良することはまったく独立して行えますので、将来の改良も容易に
なるという利点も生みます。

通院し人工透析器に繋がるまでは若干の労力と時間を要しますが、それは些細な問題です。

NetBurstにおける目的はあくまで体内から尿毒素を排出することにあり、
効率的に排出できるのであれば、それは目的に対し完全な勝利だからです。


178 :Socket774:04/04/27 18:03 ID:dlsf7sWb
>>177

それでも昔ながらのやり方が好きな人の為に普通の便器も置いてあって
実はそっちの方が人気があるのは秘密だよ.


179 :Socket774:04/04/27 23:25 ID:0ekE0vnA
話の途中でスマンが、
アホな漏れにはSIMDとベクトルプロセッサの違いがわからん。
どちらも複数のデータを同時に処理するぐらいにしか書かれてない。
この二つの違いを教えて>エロイ人。

あとDSPとかゆう物について
漏れは今持ってるサターンについてるらしいことしか知らんが
決まった計算しかしない代わりに高速と聞いてる。
これは単にクロックが高いのか、それともSIMDみたく複数のデータを同時に処理できるからなのか
どっちなんだ。

180 :Socket774:04/04/27 23:48 ID:fmarAkfQ
ベクトルプロセッサはSIMDの特殊系っていうか一部。

行列計算にとにかく強烈に特化したもの。
もっと単純化すると、積和算を延々と行うだけになる
(減算、除算は加算、積算で代用できるから)。

DSPは、ある入力に対し一意に出力が決まるという条件で特化されたもの。
別にSIMDでなくてもいい。極端な話、メモリ素子で構成できる:-)

181 :Socket774:04/04/28 00:28 ID:/L1toHMn
DSP=マイコンと考えて問題ない。少なくとも今は。
メーカーがそういう名前で読んでるから。別にPCのCPUと比べて速いわけ
ではない。

182 :179:04/04/28 01:05 ID:ery2fJwX
>180
>181
サンクス。
SIMDとベクトルプロセッサは元は同じなのね。
自動車に例えるなら普通車がスカラプロセッサ、
サーキットしか走らんF3000がSIMDで
F1マシンがベクトルプロセッサってとこか。

あとDSPの性能はCPUの16倍ってな話を見ただけなんで
それもCPUが25Mhzしか無い頃の話だしな
高速には出来るんだけど今でも必要十分で進歩してないってことか。

PCではRIVAなんかのの古いビデオチップやサウンドブラスターに乗ってる奴なんか
は固定の機能しかもっとらんからDSPに近いのかな。
(TNTクラスになると内部に積和算ユニットを備えているらしい。)



ま、こんな夜中にレスありがと!。


183 :Socket774:04/04/28 02:14 ID:KP5ISNId
>>182
なんか違う。
SIMDの実装の一つがベクトルプロセッサ。
例えるならレースマシンがSIMDでF1マシンがベクトル。


DSPは名前の通りデジタル信号処理に特化したプロセッサ。
命令体系のほとんどがMMXみたいな専門命令なので
そういう処理をうまくやらせると同クロック・同規模のCPUよりは速くなる。
MMXみたいな専門命令とは要するに並列SIMDだったり積和演算が1命令だったりするってこと。
最近はCPUがそんな拡張命令を持ったり、CPUの演算速度がDSP並になったりして形無しぎみ。


ついでに外から見て固定の機能を持ってるかどうかと内部の実装はあまり関係ない。
たとえばキーボードはCPU(マイコン)入ってるけど固定の機能しかしないのと同じ。


184 :Socket774:04/04/28 02:54 ID:NaDmXs7w
クレイは別に SIMD とか意識して作ったわけではないので
分類方法としてあまりふさわしくないような。
SIMD っていう用語が人気なのは MMX命令のおかげ?

ベクトル長レジスタの中身で処理する要素数がかわるあたり
102さんの主張に近いような。

DSP は使える回路量が少ない頃に積和演算だけ豪華にしたというような。

P4 も得意なのはエンコード位じゃあ、DSP とかわらんような。

インテルが無理に詰めれば子供4人なら同時に便器に座れることを
発見して SSE 命令を作り、最近大人4人も座らせようとしてるが
これはさすがに評判がわるかったり、のような。


185 :Socket774:04/04/29 18:00 ID:8Gb1mD9D
>>184
作った人の意識なんて関係ないけど。

DSPはディジタル信号処理を目的としている(た)けど、マイコンとそれほど違うわけじゃない。
メーカの商品に対する考え方の違いで、DSPとかマイコンとかに分類してるだけ。


あと、車にたとえるのはやめろ。


186 :Socket774:04/04/30 15:48 ID:8NnvVvfM
>>185
ここまできて例えをやめろはないだろうw

SIMDがトイレで、ベクトルが和式便器みたいなもんか。

187 :Socket774:04/04/30 19:09 ID:q6Sa36I+
>>186
dirty na tatoe ha YAMERO

188 :Socket774:04/04/30 21:08 ID:v8Aw6YIc
実際にプログラム組むと普通のDSPの3倍ぐらいの命令ステップが必要なんだよな

何考えてSSEやMMXのアーキテクチャ決めてるんだか

189 :Socket774:04/04/30 23:10 ID:2ysmugKd
>>186
SISD/SIMD/MIMDはFlynnによる分類で、ベクトルはSIMDになる。
この分類法が適切かどうかは別だが、この分類によればSIMD以外に成り得ない。

SIMDが便器で、ベクトルが和式便器と言うべきだろう。


190 :Socket774:04/04/30 23:11 ID:3+kQfAoN
>>188
汎用性

191 :Socket774:04/04/30 23:15 ID:2ysmugKd
>>190
MPEGとか3D処理とかじゃないの? MMXの頃はそんなことを言っていたような気がする。

>>188
3倍かかったプログラムってどんな処理?

192 :Socket774:04/05/02 23:41 ID:aE118Gvj
Itanium2 1.5GHz → 64bit Windows Server2003
Opteron 248 → WindowsXP 64bit Edition
Athlon 64 FX-53 → WindowsXP 64bit Edition
Pentium4 HT Extreme Edition 3.4GHz → WindowsXP
Alpha21364 → Tru64 UNIX V5.1b
POWER4+ 1.9GHz → AIX 5L
SPARC64 V 1.3GHz → Solaris9 Operating Environment/SPARC

高パフォーマンスのCPUといえば
この辺が比較対象になるといえよう
あとのはちょっとアレ

193 :Socket774:04/05/05 22:01 ID:cweZVLZ+
PC向けCPUじゃなくてすまんが、EmotionEngineはVUに14個浮動少数点
演算器があるけどあの演算器全てに効率よく命令を送れるの?
VU同様Vliwアーキテクチャのia64でもコンパイラによる命令の並列化には
限度があるというし。

194 :Socket774:04/05/05 22:54 ID:v98DSjGN
ここはハイレベルなインターネットですね。

195 :Socket774:04/05/05 23:51 ID:Mpff1ykE
>>193
送れるか?でなくて送れるようなアプリを多用するからそのようなアーキになる。
IA64の問題は、こちらの方がアプリの幅が広いと言う事だな。


196 :Socket774:04/05/07 12:55 ID:/uDZzM+v
>>191
1.MMXをONにする。
2.MMX命令を実行する。
3.MMXをOFFにする。

実装当時は浮動小数レジスタと切り替えだったんで。まあ、命令数が3倍になるわけじゃないが
ロクでもないのは確か。 割り込み絡めばもうパフォーマンスの低下は必至なわけで。

197 :Socket774:04/05/07 13:19 ID:3UDtaLP6
MMXの最大の欠点は固定小数点で1.0を表現できないこと
SSE,SSE2,SSE3の最大の欠点はベクトル処理が加減算しかできないこと

198 :Socket774:04/05/07 15:31 ID:wqleEWhS
>>197
>ベクトル処理が加減算しかできないこと

mulps、divps・・・

199 :Socket774:04/05/07 17:18 ID:sRmSBz+D
>>197
おまい固定小数点知らないだろ。

200 :Socket774:04/05/09 13:16 ID:e5HKg1JZ
ここは話が難しいねえ

201 :Socket774:04/05/09 13:37 ID:6BObo0hG
SSEを誉めるヤツ==アセンブラでSSEコードを書いたこと無いヤツ

202 :Socket774:04/05/09 15:06 ID:qQijBS4j
>>201
コンパイラで性能がでれば良いのです。

…どういうふうに嫌なのか書いてくれないと話がつながらない。

203 :Socket774:04/05/10 02:54 ID:XvOmvoWQ
そろそろあげとくか…。

>>197
「積和算」ができなきゃ「ベクトル(行列)演算」にならんだろーが。
数学やりなおしてこいな ^^

>>196
いいんだよ、本来は2.のステップを延々と何千回も繰り返すんだから、
前後の手続きなんて小さい小さい。
DSP単体利用なら言うとおりだけど、CPU外部にベクトル演算器つけてた
時とくらべたら、ベクトルレジスタいじるステップが入るんだから
騒ぐほどのもんじゃないだろ。



それよりもだ、余計なレジスタ増えるわモードの保存もしなくちゃだわで、
例外処理発生時のペナルティが痛いンだYO!


204 :Socket774:04/05/10 11:14 ID:6LDexDUM
>>203
その積和の性能が低すぎるんだよSSEは
FPUの1.5倍くらいじゃバカ杉

205 :Socket774:04/05/12 09:18 ID:3HEqsI+h
>>196
ON(?)にする命令なんかねーぞw

206 :Socket774:04/05/13 10:45 ID:5X6lzPUn
ここ好きなんでAge


207 :Socket774:04/05/13 13:35 ID:AmDTVr8Q
>>203
DX5.0以前ならMMXの使い道もいろいろあったけど、いまじゃな・・・。
サウンドとムービーエンコードくらいか?

>>205
あれ、そのままレジスタ叩いたら使えるんだっけか。FloatとMMXの切り替え命令が
あったと思ってたけど勘違いかな。


208 :Socket774:04/05/13 14:30 ID:h7dbnL5x
>>207
OFFにする時のみEMMS命令を実行だったかも。

209 :Socket774:04/05/13 14:35 ID:s0wmqZPp
拡張命令云々よりもCPU自体、コンピューターの中では
一個の演算ユニット何だから色々と騒いでもしょうがない。

それよりチップセット、マザーボード、OSの進歩の遅さの方が問題。
現状メモリ帯域6.4GBと言っても実帯域はその数分の一で
x86CPUは一般OSじゃ4GBしかまともにメモリー扱えないし、
OSの方もXPじゃ、アプリ3GB制限あるので
自分的にはCPU性能よりそっちの方が気になる。

特に重い処理の大半が遅い大半がメモリー関係だと思うし、
FSBを現行4倍以上にし、メモリーも32GBぐらいにしないと
CPUは遊んでいる状態だと言ってみる。
・・・・ただし、それを上げる方がCPU性能上げるより遥かに面倒と言う罠


210 :Socket774:04/05/13 15:35 ID:htrFI+Vl
>>209
ちと、無い物ねだり杉

211 :DNS未登録さん:04/05/13 17:50 ID:P/kfZItN
メモリの量は処理内容によって変わりすぎるからあれだけど、
バス幅はほんとにイタイよね。

リニアなメモリ空間マンセーになって久しいけど、そろそろ利用者側も
意識変える必要があるかも。

たとえばだけど、アドレスレジスタ毎に異なるメモリバスが存在していたら
どうだ?利用データによってメモリセットを選択できれば、今ほどのバス幅
は要求しなくても高速にデータアクセス可能にはなりそう。

212 :Socket774:04/05/13 18:06 ID:65MPdUBe
>>211
実際動いてるバスは1本か2本になると思うのは気のせい?

213 :Socket774:04/05/13 18:15 ID:/KJv91m1
>>211
メモリインタリーブ・・・

214 :DNS未登録さん:04/05/13 18:32 ID:P/kfZItN
>>212
そこが味噌。

どうあがいてもメモリはCPUの速度においつけないから、メモリアクセスしにいったら
放置して別処理させるのよ。

大型機やHighEndなWSだと昔からやっている技術なんだけど、RDRAMでPCにようやく
導入か?っておもったら市場に受け入れられず消えたw

>>213
メモリアクセス待ちでバスを開放しないと、いくらインターリーブしてもダメ。
また、メモリデバイスが一つだと、バスを開放しても次のメモリリクエストだせないから
やっぱりダメ。


で、実はAm29000はインストラクションバスとデータバスを個別にもってて、
直線性のあるインストラクションバスはVRAMのシリアルポートにつないじゃえ
って発想なんだけど、ある意味、二つのアドレスレジスタに対し二つのバスを
用意した一例。

215 :Socket774:04/05/13 20:14 ID:M3vKFOJY
>>208
3DNow!の解説には無くても動くけど最初のMMX命令でEMMSと同様の処理が発生するから
FEMMSではさんだ方が速いと書いてあったな

216 :Socket774:04/05/13 20:23 ID:ehtTaVxF
CQから出てる中森章の「マイクロプロセッサ・アーキテクチャ入門」は
このスレ的に面白いと思うのでおすすめ

217 :Socket774:04/05/13 21:19 ID:6sJvDktR
そういや本棚の奥にその手の解説書があったんだった。
いいことを思い出させてくれたよ、サンクス>>216


218 :Socket774:04/05/13 21:44 ID:70c4u7x3
>>214
I/D分離するのはバーバードアーキテクチャと言ってそーとー昔からある。


219 :Socket774:04/05/13 23:11 ID:i50LLaWw
>最初のMMX命令でEMMSと同様の処理が発生するから

いい加減なこと書くなよ。

EMMS命令は8つあるFPUレジスタのタグワードをすべて有効にする(11)にする命令。
MMX命令によってレジスタに書き込まれると、タグワードは無効(00)になるんだよ。

220 :Socket774:04/05/13 23:39 ID:HI8n14Yq
>>218

そーなんだよなー。

で、I/D別にメモリバスを用意できないからってんでキャッシュだけ
分離して妥協したのが486/Pentinum。
キャッシュからの命令取り込みと実メモリとの並列動作を実現
(BSB/FSBの分離)したのがPentinumPro系バス。
で、メモリからキャッシュへの転送ってのはある程度まとめて
転送したほうが便利(メモリアクセスの局所性、キャッシュのラインフィル動作)。
そういう目的向けの機能が用意されたのがPB-SRAMであり、SD/DDR-DRAM。
FastPageなDRAMもそういう目的には便利に活用できる。

で、214が言う機能の壁はマルチタスク動作じゃないかな?

221 :Socket774:04/05/13 23:52 ID:M3vKFOJY
>>219
物理的なレジスタは別物だから切り替えにものすごく時間がかかるんだが
MMX>FPUは遅いけどFPU>MMXは速いのか
知らんかったよサンクス

222 :Socket774:04/05/14 00:06 ID:hING/Zqo
>>219
君も間違っているし。
EMMS使うとタグは8つすべて「空」11になる。
EMMS以外のMMX命令を使うとタグはすべて「有効」00になる。
ちなみに無効は10。

あと、やろうと思えばEMMSを呼ばずにMMXとx87を混在させることができる。
遅いか速いかは分からないけど。

223 :211,214:04/05/14 00:12 ID:8DUXxRQD
MPUの世界でハーバードアーキテクチャを歌ったのはMC68000あたりからなんだが、
残念ながらメモリデバイスに伸びるまずまで分離できてなかったんだよね。
けど、肉まんを例にだしたのはちょっと失敗だったかも。反省。

で、ノンリニアなメモリ空間の実装は以前からありはしたのだが、当時メモリは
高速かつ高価なデバイスでありCPUと同期動作が可能だったけど大量実装は出来なかった。
Z8000、MC68000あたりはインストラクションとデータ、スタックで明確に
アドレス空間を分離していた(68kにいたってはスーパバイザモードとユーザモード
も分けられた)けど、わざわざ分ける事はされなかった(した実装ってあるのかな?)

さて、211での問題点はなにかっていうと、各メモリバスにつながれたメモリデバイスに
相当の無駄がでるあたり。それと、PMMUの実装が面倒な点。そして、アプリケーションと
OSがメモリの実装状況によって最適化しないと効果が出ない点。
マルチタスク動作に支障はでないよ ^^

今やるとすると、、
・CPU内部
 CPUコア各部に独立したAGを搭載し、各Function毎にデータキャッシュへ
 同時アクセスさせる。排他アクセスにしないとイタイけどそれはブロック単位で制御

・外部バス
 データキャッシュをブロック単位で複数に分割し、個別にバスコントロール。
 もしくはRDRAMのようにメモリリクエストとデータをパケットにまとめてやり取り
 するようにし、リクエスト出したら一旦開放するとか。

かなぁ。

いまのメモリ帯域の狭さは、メモリバスがその名の通り「バス」動作している点にあって、
クロック倍にしても倍にしか速くならないのがイタイ。
どうせ外部記憶装置並みに遅いデバイスなら、外部記憶装置としてつかう事考えてもいいかもね。

224 :211,214:04/05/14 00:15 ID:8DUXxRQD
あ、それと、
・シーケンシャルにしか動作できない
・片方向でしかデータをながせない
のもイタイ点。

225 :Socket774:04/05/14 00:37 ID:GDn0NZGE
>>223
>マルチタスク動作に支障はでないよ ^^

コンテキストスイッチ時のペナルティが大きくならねぇか?って話。

226 :Socket774:04/05/14 00:43 ID:cIqAF+Kl
CPU性能=命令セット×マイクロアーキテクチャ×製造技術
結局のところ設計や工場に投資できる金のあるところが勝つ。
金がある=CPUが売れてる=普及した古い命令セット=汚い命令セット
かくしてAlphaやTRONのような美しい命令セットは滅び
x86やPowerPCのような汚い命令セットが世界を席巻する訳だ。

227 :Socket774:04/05/14 00:44 ID:Ka+SpH6I
>>223
当時はパッケージング等の問題もあったと思われ。

ハーバードアーキテクチャが完璧かと言えばそうでは
ないよね…データテーブルとか面倒だし。

228 :211,214:04/05/14 00:54 ID:8DUXxRQD
>>225
メモリ待ちになるのはどっちも同じ話だし、メモリリクエスト後待ち状態に
なったらその時点でもコンテキストの切り替えしてもいいから、むしろ
ペナルティは小さくならないか?

メモリ側は状態管理しないといけないからインテリジェンスになる必要はあるけど。

見落としてる点があったら指摘よろしく ^^

229 :Socket774:04/05/14 01:25 ID:J/pnPbXn
保守

230 :Socket774:04/05/14 01:28 ID:gKKyzkl5
なんとなくわかったような気もするが、かなり複雑な回路になりそうやな
そこまでやると、かえってレイテンシが増えてしまいそうな気もする
単純にL3キャッシュをアホみたいに積むほうが速くなりそうな

231 :Socket774:04/05/14 01:32 ID:VYbIjOI2
>>227
パッケージングの問題は過去のものでは無い気が。
ついでにCPUコア内部のバス引き廻しも爆発的に増えちゃって
クロック上げられなくならないかな。

ちょっと違うけど、漏れは10年位前に命令を分類して、種類毎に
別々のメモリバスにつながったメモリからプロセッサに供給する
っつーCPUの試作なんてのをやってたけど、やはりLSIデザインが
破綻しちゃった思い出が・・・


232 :Socket774:04/05/14 01:33 ID:iEAKJs0O
>>226
>かくしてAlphaやTRONのような美しい命令セットは滅び

TRONってTRONプロセッサってヤツ?

233 :Socket774:04/05/14 01:45 ID:Ka+SpH6I
>>231
今時のは半分くらい電源用ピンのようなw

234 :Socket774:04/05/14 01:46 ID:TwuHrATU
>226
美しい、汚いってのは?トーシロにもわかるように説明きぼん

無理(理解することが)?

235 :Socket774:04/05/14 02:30 ID:7jY5RAAU
>>226
キャッシュが内蔵する様になったからねぇ(´ー`)y─┛~~

236 :Socket774:04/05/14 04:17 ID:o8pcTKwR
x86の有利な点を無理に言えと言われれば、レジスタが少ないので
コンテクストスイッチが少し速くなる可能性がある事かいな。

x86-64なんかでは、増えたレジスタをスイッチの度に全部待避する
んだろうか?

237 :211,214:04/05/14 07:10 ID:8DUXxRQD
>>230
うん、メモリコントロール部分の回路もメモリ側も相当複雑になるだろうし、
コストも相当かかるようになっちゃうだろうね。実際 RDRAMって高くて市場に
受け入れられなかったわけだし。

>>231
やったんだw
内外のデータバスを双方向シリアルにして、外部数GHzでまわしたらどうなるかなぁ。


238 :某スレの5:04/05/14 07:42 ID:6QTclobL
もうワイヤードロジックだのCRISPなどといった言葉は出てこないのね。
初期のCISC vs RISCで散々使われた言葉なんだけどさ。


239 :Socket774:04/05/14 09:26 ID:VYbIjOI2
>>237
今だったらそうするだろうねぇ。
しかし、高性能プロセッサ設計の仕事自体が漏れの周辺では殆ど
なくなっちゃったw

>>238
CISC RISC論争はもうほとんど意味無いと思う。強いて今からやるなら
これからは VLIW だよ派 vs スーパースカラまだ無敵だよ派
かな?

240 :Socket774:04/05/14 10:31 ID:fbKCb2R/
>>236
そりゃやらなきゃまずいでせう。
プロセス間でレジスタの中身を共有するなら、
その分はなにもしなくてもいいけど。


241 :Socket774:04/05/14 12:36 ID:a9fVobXs
>>234
無理・・・じゃないかな。
アセンブラレベルを理解できれば、分かると思う。

そんな漏れはZ80→8086で泣きそうになった男・・・。


242 :Socket774:04/05/14 12:40 ID:wflXmd8a
今どきのメモリは連続アクセスする分には充分速いから(プリフェッチとかできる)、
レジスタ退避みたいに連続したアクセスなら比較的性能を出し易いのでは。

243 :Socket774:04/05/14 12:54 ID:wflXmd8a
>>239
IA-64も2006年のTukwilaで動的命令スケジューリングが入るらしい。
http://pc.watch.impress.co.jp/docs/2004/0305/kaigai070.htm
コンパイラの生成した順序とは違う順序で命令を実行できるCPUをVLIWって呼ぶの?

Any sufficiently advanced VLIW is indistinguishable from Superscalar.
(c) Arthur C. Clarke

244 :Socket774:04/05/14 14:14 ID:nRcYMjIn
http://pc5.2ch.net/test/read.cgi/jisaku/1083865295/542-549
でも書いたけど、Intelって

IA64コード -> μOps -> スーパースカラプロセッサ (out-of-order)

なんちゅうことをやろうとしてたみたいだからねぇ。
Tukwilaもバンドルあたり3つの命令を一度バラして、バンドルを超えて
out-of-order で発行するとかいう構造になるのかもね。

ついでにEfficeonは http://pcweb.mycom.co.jp/news/2003/10/16/19_10.jpg
見る限り、実行ユニットは in-orderだけど、CMSが命令スケジューリング
してるみたいだから

x86コード -> CMS (out-of-order発行) -> VLIWプロセッサ (in-order)

ですな。

245 :Socket774:04/05/14 22:08 ID:geXAPL4r
これからは,スーパースカラプロセッサにしても,
VLIW プロセッサにしても,マルチスレッド化 (特にSMT) に向かうのでは?
などと最近勉強しはじめた新米の戯言をお許しください。
でもマルチスレッド VLIW って,初心者からみるとよさそうなんだけどなあ...。

246 :Socket774:04/05/14 22:10 ID:2mpM2oWG
>>223
68000はハーバードアーキじゃねー。

メモリスループットを増やしたかったら、インターリーブしたり、
リクエストをアウトスタンディングに発行できるようにする方が素直。
(互換性、汎用性、性能重視の場合)

>>243
VLIWはDelayed Branchやインターロック無し実行と同じように盲腸になった
ようだな。(性能を重視するプロセッサにおいては)

247 :Socket774:04/05/14 23:03 ID:GDn0NZGE
>>246

盲腸っつーか、当初からVLIWが抱えてる問題。
バイナリコンパチを捨てるなら簡単だが、
IA-64の場合はそこまでハイエンドにはなれないからね。

その点直接ネイティブを見せないEfficeonは上手くやった。

248 :Socket774:04/05/14 23:23 ID:8DUXxRQD
>>246
研究者方面での意見はしらんがMC68000はモトローラいわくハーバードアーキテクチャを
特徴の一つとしたMPU。内部バス構造がその所以。

インターリーブはバスを100%近く活用するための手段であって、100%をこえるための手段でもない。
パラレルにするかビット幅増やす方が素直。それができないからこその代替手段がインターリーブ。

アウトスタンディングにメモリリクエストを発行するってのが何を指してるかゴメン、わからん。
WriteBackなどの、コア側の要求に対し非同期にメモリ操作を行うものを指してるのなら、これも
100%近く活用するための工夫。

>>209が「メモリおせぇ、FSB速くしろ(帯域増やせ)」と叫んでるから、その解決を考えてるんだよね。
現行のメモリ帯域を有効活用する手段の、さらに次。


うーん、期待してた突っ込みはそういう常識的な部分じゃなくて、、>>225的なのが欲しいなぁ^^
おそらくだけど、メモリ空間を細分化させた場合、その構造に特化されたデータ構造のプログラムは
劇的に速くなるけど、それから外れる場合はメモリマネージメントに恐ろしい手間がかかるはずなんだよね。

SunFireやSGI Originなんかは、システムとして非常に大きなメモリをもつことが可能なのだけど、
蓋を開けてみると実は2〜4CPUに通常の構造で共有されるメモリをのせたSMPシステムを一単位にして、
それを数十〜数百単位のせ、さらに相互にメモリ参照できるようにしてる。

ある程度以上は分散アーキテクチャにしちゃったほうがいいっていう割り切りなんだろうなぁ、って
僕は思ってみてるけど、どうだろう。

249 :247:04/05/15 00:44 ID:uIlRQr+q
がーん。
間違えた〜。

VLIWが抱えてる問題じゃなくて「バイナリコンパチが抱えてる問題」だった…。

IA-64はバイナリコンパチのまま命令拡張が出来る改良型VLIWだから
動的スケジューリングを載せる必要性が出てくるのね…。


250 :Socket774:04/05/15 01:33 ID:zfRjET+x
IA-64はVLIWとは言わず、EPICと言ってるな・・・。

Itanium→Itanium2で中身変わったけど、バイナリコンパチ。
ただし、どっちに最適化するかで、パフォーマンスは多少変わる。

251 :Socket774:04/05/15 02:33 ID:/jNN/fIw
>>248
内部バス分離でハーバードアーキかよ。マーケティング用語だな。

100%越えたら動かんだろ。チットは考えろ。

だいたいバスバス言っているけど、バスに拘ってる段階でダメなんだよ。
CPUにメモリコントローラ内蔵は安価で効果がありそうじゃないか。

Originは知らんがSunFireはSMP(厳密には違うだろう)で、分散アーキじゃねー。
どのCPUからも全メモリにアクセスできるだろうが。分散マシンとか言ったら
設計者泣くぞ。(多分パーティションは切れるだろうがそれは話が別)

252 :Socket774:04/05/15 04:48 ID:z7Ahfmcu
うーん、煽りたいだけの半可通は放置したほうがいいのかな?

SunFireの場合SMP構造を持っているのはCPUモジュール単位で4CPUは一組になります。
これをクロスバスイッチ式のデータパスで相互に接続し、別モジュールに搭載された
メモリを直接操作できるようになっていますが、アクセス速度には相当のペナルティが
課せられます。

モジュールを一つのプロセッサとみなした場合、モジュール間は対称構造をもちますので、
その意味ではシンメトリックかもしれませんが、メモリを内包してるのでちょっとそれは
乱暴でしょう。

実際のプロセッサから見た場合、対称構造になるのは同一モジュール内に存在するプロセッサ
だけですから、別モジュールに存在するCPUはSMPとはいえません。

ソフトウェア的に見た場合にも、すべてのプロセッサをSMPとしてコントロールすると、
あるプロセッサがスレッドを実行しようとした場合、そのインストラクションおよび
データが自モジュール内に存在するとは限らず(むしろない場合のほうが多くなる)、
前述のメモリアクセスのペナルティが課せられることとなります。

残念ながら私もSunOSのソースを見たことはないんで、SunFireにおけるタスクスケジューラが
どのようになっているかはわかりませんので、ペナルティを甘んじて受けてるのか、素直に
スレッドを各モジュールごとにばら撒いてるかは想像の範囲を出ません。


253 :Socket774:04/05/15 10:34 ID:joOkFrti
そのクラスのマシンはNUMAでしょ。
Origin は cc-NUMA と明記してたと思うけど、SunFire はどうなんだろう。

254 :半可通:04/05/15 13:08 ID:/jNN/fIw
>>252
SUNはSMPと言ってるがな。
Cacheを付けた段階で厳密な意味でのSMPなんて存在しないよ。
1つの保守単位となるボード上に複数のCPUを載せ、かつ複数ボードを搭載できる
製品をSMPと言っているのはたくさんある。もちろん厳密な意味ではSMPでは
ないが、それを気にしているのか? キャッシュ無しバス結合マルチプロセッサ
以外はSMPになり得なくなる。

どこのメモリに載っているかより、どこのタグにヒットするかの方がレイテンシの
差が大きい場合もあると言っておこう。

あと、SunOSのソースを見なくても『Solaris Internal』に載っているかも知れん。
読んでみれ。

255 :Socket774:04/05/15 14:33 ID:idS32bh0
キャッシュがあってもSMPって普通は言うと思う。もし「キャッシュがあったらSMPではない」なんて言うのが
SMPの定義だったら「世の中にはSMPなんて存在しない」ということになってしまうからね。だから厳密な意味の
SMPの定義は「どのCPUから見てもどのメインメモリも等latency・等Bandwidthに見える」だと思う。
この条件に合うのは、いまだにシェアードバスにこだわっているIntelのXeon/Itanium2でシェアードバス結合が
使える4way以下のシステムとIBMのメインフレームだけでしょう。それ以外は全てccNUMAと言っても良いと思う。
(2coreのCPUを使った2wayのシステムも厳密な意味でSMPだけど)厳密なSMPを実現するには非常にコストがかかるので、
無理して厳密なSMPなんてやらないで、ある程度ccNUMA的なシステムを作って、あとはソフトウェアの使いこなしに任せる、
というのが現在の技術の流れだと思う。Linux kernelだって一生懸命NUMAサポートを入れているし。

256 :Socket774:04/05/15 16:15 ID:/jNN/fIw
255の主張ではSunFireはccNUMAになってしまいますが、そういう意味?
あと、SMPマシンにLatencyの違うDIMMを差すだけでSMPじゃなくなると言う
主張にも見えますが?
普通はそんな厳密な事は気にしていなくて、SunFireはSMPに分類するだろう。

ところでSunFireのボード内/ボード間Latency/バンド幅の差は公表されてる?

257 :Socket774:04/05/15 23:40 ID:idS32bh0
広義に言えばSunFireでもIBMのRegattaでもHPのSuperdomeでも大規模SMPはもうccNUMAと言えると思う。
たぶん、80年代だったらああいう構成ならccNUMAと呼んだと思う。(Opteronもそう)
ただ現実には昔のccNUMAと比べてローカルメモリとリモートメモリのアクセスタイムの差が大分小さいから、
あまり性能のことをうるさく言わなければ、普通のSMPとして使えるんだと思う。
だた、性能をうるさく言うとソフトウェアがローカルメモリとリモートメモリを意識した処理をする必要が
あって、今やLinux kernelだってそれを意識したCPU/メモリ割当てとかをやろうとしている。
Linuxがやろうとしている位だから、各ベンダーのUnix(Solaris/AIX/HP-UX)は既に絶対やっていると思う。

258 :Socket774:04/05/16 00:42 ID:CQeyOTcj
SunはSunFireをSMPとしか呼んでいないし、少なくともSolaris7はSMPにしか
対応していない。(『Solaris Internal』)

『Solaris Internal』では、システムインターコネクト(ボード間インター
コネクト)が均一なアクセスタイムを実現するために十分なバンド幅
があるものがSMPであるとしている。


259 :257:04/05/16 01:04 ID:aqoCpppm
だからSunFire/SolarisはSingle imangeでは性能が悪くて、パーティショニングして使うんだ。
Bandwidthが確保されていても、レイテンシの差は絶対あるんだから、それを意識した制御は
OS側でやるべきだと思うよ。

260 :Socket774:04/05/16 01:11 ID:aqoCpppm
だいたいSunFire(SPARC)みたいな時代遅れの性能の悪いシステムの話がなんでされているんだろう。
元々SunFireもCrayが設計していたのをSunが買ったんだと思うから、Sunはもう何年も自分で
まともなハイエンドのハードウェアを開発していないんじゃないかな。
UltraSPARCWだって、結局UltraSPRACVのデュアルコア版にすぎないし。

261 :Socket774:04/05/16 01:25 ID:CQeyOTcj
パーティション切らない時にローカルボードのメモリアクセスが遅くならない
ことを言わないとSMPで無い事を言えません。

> ところでSunFireのボード内/ボード間Latency/バンド幅の差は公表されてる?

257は知ってるのだろうが、知らなければSunはSMPだと言ってる以外何も言えません。
(というより何が言いたいのかさっぱり分からない)

262 :Socket774:04/05/16 02:25 ID:aqoCpppm
パーティションを使わない場合、SunFireの構成ならローカルメモリとリモートメモリのレイテンシの差が
あるのはハードウェアの構成上明らか、という考察では不足?
Bandwidthはわからないけど、レイテンシは絶対違うでしょう。
でもSunのSMPの定義と私の"厳密な意味の"SMPの定義は違っていて、Sunの定義だとレイテンシが違っても
Bandwidthが違わなければSMPと言って良いから、SunのSMPの定義に従えばSunFireはSMPかもしれない。
でもどうせSunFireのBandwidthなんて激低だろうから、どうでもいいのでは。

263 :Socket774:04/05/16 12:55 ID:CQeyOTcj
あなたの定義だとSMPマザーボードにレイテンシの違うDIMMを差すとccNUMAに
なるんですね?

根拠もなくSunFireをccNUMAと主張するよりは現実的。
レイテンシは絶対違うという考察なんてどこにも出て来てない。まずSunFire
のキャッシュコヒーレンシプロトコルの説明から始めた方がいいですよ。

>>260
このスレは思い付きとか言い合って楽しんでる(?)んだから古くてもいいじゃん。
新しい方が良ければネタ振ってよ。

264 :Socket774:04/05/16 12:59 ID:Vg9ZZwCy
Efficeonマンセー

265 :1:04/05/16 17:51 ID:PFVC4Hwa
だんだんとスレが生きてきましたね。
一瞬削除願い出そうかと思ったが、出さなくてよかった。

266 :Socket774:04/05/16 23:16 ID:D2lGqmDh
またかなり話が難しくなってきました。
初心者を置いていかないように適度にトイレで例を示してください。お願いします

267 :Socket774:04/05/17 00:40 ID:jg7lrt0d
少なくとも性能対消費電力が重要視される分野ex)Embeddedなど)以外では、
Hardwareの仮想化ってのはここ数年来大分注目されてる分野だと思うけれど?

例えばIA64の性能向上がムーアの法則を上回るなんて言われてるのも、
それ遺体は眉唾だけど、IA32で同じ事を言うよりは信憑性があるように、
今後は最新プロセスと高度な論理設計技術を持ってるメーカーは
益々VLIW(CMS?)的なアプローチの方が有効になると思うんですがどうでしょう。

268 :Socket774:04/05/17 00:41 ID:jg7lrt0d
あ、>>267>>247に対してス。

269 :Socket774:04/05/18 04:51 ID:xBtH3Tra

http://www.idg.co.jp/sw/back/series/200005_01_kernel.html
----
サン・マイクロシステムズが出荷しているマルチプロセッサ・システムは「SMP」と
呼ばれるアーキテクチャを実装している。これは、「Symmetric Multi Processor
(対称型マルチプロセッサ)」と「Shared Memory MultiProcessor(共有メモリ型
マルチプロセッサ)」という2つの用語の頭文字をとったものである。サンのシス
テムは、どちらの用語にも当てはまる設計がなされている。
----

もはや、SunFire15Kあたりは、前者の意味でSMPと言っているだけという気がする。
これなら、NUMAとSMPは直交する概念だ。


270 :Socket774:04/05/18 05:35 ID:xBtH3Tra
すまん、>269の補足。

リンク先を読めばわかるが、ここでいう「対称型」は、どのプロセッサも同じOSの
機能を処理できる構成を指していて、プロセッサからメモリが等距離とかいう
構成ではない。


271 :Socket774:04/05/18 10:52 ID:dCU2dMFp
しばらく見られんかった…age。

>>270
SunFireのSMPは、ある程度ハードウェア構造をさしてはいるけど、
どっちかっていうとSoftware(OS) Parspective な言い方だよね。
それで性能がでるかは別の話。

ただ、無駄にコストかけるよりは、こういう割り切りをある程度行って
アプリケーションチューニングするのが、今のトレンドなきがする。

スパコン方面のアーキテクチャは知らないのでごめん明るい人よろしく。

>>266
SMPやバス構造を便所で説明するのムズカシイんだよな ^^;
考えてみるけどできなかったらゴメン

272 :Socket774:04/05/18 11:48 ID:H5clhrf8
┌────┐        ┌────┐
│  部屋  │        │  部屋  │ 
│       │        │       .│
└─┐┌─┘        └─┐┌─┘ 
    ││                ││
    │└─────────-┘│
    │┌─────────-┐│
    ││                ││
┌─┘└─┐        ┌─┘└─┐
│. トイレ . │        │. トイレ  .|
└────┘        └────┘ 

┌────┐        ┌────┐
│  部屋  │        │  部屋  │ 
│       │        │       .│
└─┐┌─┘        └─┐┌─┘ 
    ││                ││
    │└─────────-┘│
    └─────┐┌───-─┘
                ││
        ┌───┘└───┐
        │    トイレ    .│
        └────────┘


273 :Socket774:04/05/18 12:43 ID:x7lPfqA+
>>272
上手い!

274 :Socket774:04/05/18 15:30 ID:QyCi5Mrf
またトイレかよ!w

275 :Socket774:04/05/18 19:33 ID:nxT5sLq6
これだとトイレがメモリで部屋がプロセッサになるのですか?

276 :Socket774:04/05/18 23:33 ID:WbQKRzbK
>274
266ですが、初心者にはこれが一番わかりやすいんですよ(・∀・)

277 :Socket774:04/05/19 12:02 ID:SuXTd04W
>>275
排泄要求を出すのは部屋側だけど処理するのはトイレだし、
データ(人)の流れは部屋からトイレだから、プロセッサとメモリの関係と
ちょと反しちゃう希ガス…。


278 :Socket774:04/05/21 14:34 ID:6AX3fDuH
SunFireのメモリ管理について、ちょっと調べてました。
Sun Technical Bulletin 10/2002、「SunFire 3800-6800 動的再編成」、
Sun Technical Bulletin 7/2002、「SunFire V880サーバアーキテクチャ」他
テクニカルブリテンからの理解です。

少し古いんで、SunFireE25000などでは変更されてる可能性はあります。

まず、UltraSparcIII(IV)は、物理メモリのコントロールは8GB(16GB)まで
しか行えません。ここは大きなポイントで、これはシステム全体に存在する
32GB〜576GBという、大きなメモリ空間を透過的に扱うことができない事を
示します。

さて、この問題を解決するため、OSにおけるメモリ管理では、各CPUボード毎に
スワップを禁止した常駐エリア設け、ここに各CPU毎のリソースを動的に管理する、
OSの基礎部分を常駐させます。

それ以外の非常駐エリアはページ管理され、リソースの動的管理機構とvmのページング
機構により、必要に応じマップを行い、アプリケーション側に対し完全に隠蔽します。

こうして、アプリケーションから見た場合、SunFireのシステムはSMPシステムとされますが、
OSレベルではメモリ(以外にも、各リソース)配置を意識したものとなっています。

はしょった説明だけど、こんなとこで、どかな?
つっこみ訂正よろ。

279 :Socket774:04/05/21 15:11 ID:NPMsAeqI
>リソースの動的管理機構とvmのページング機構により、必要に応じマップを行い、
ここ良く分らない
物理メモリが8/16GBしか扱えないんなら"必要に応じマップ"ってできるの?
テクニカルブリテンのURL貼って

280 :Socket774:04/05/21 21:06 ID:ED1yKCoz
>>279
一度に扱える物理アドレス空間が8/16GBってことちゃうの?これ。
何かにこんな仕組みがあった・・・。
あー名前が思い出せねえ・・・。


281 :Socket774:04/05/21 22:29 ID:NPMsAeqI
「マップを行う」っていうのはCPUが仮想記憶でVirtual→realの変換を行うことじゃないの?
そしてCPUの扱えるrealメモリの容量が8/16GBだとしたら、それ以上のメモリ空間をどうやって
マップするのかな? と言う質問。

282 :Socket774:04/05/22 02:14 ID:v63PcT5s
おそなりました。
TechnocalBulletinは紙媒体で保守会社(CTCとか)からもらってるので、
URLはゴメン。

かわりにこのあたり、かな?
http://jp.sun.com/products/wp/

アクセスできないはずのメモリにどうやってアクセスしてるのか、私もそれ
疑問です。

今WhitePaper読み漁り中ですが、SplitExpanderというのが各CPU/メモリボードと
バスの間に存在しており、ドメインの分離や合体をコントロールしてますので、
もしかするとここでバンク切り替え的に、同一ドメインに属したCPU/メモリボードの
メモリ空間を写してる、、のかなぁ?

283 :Socket774:04/05/22 02:32 ID:v63PcT5s
…。
よく考えたらさぁ、核となるシステムプログラムが各CPU毎に独立して
存在してるなら、擬似SMPするのに別に他のCPUが占有するメモリにアクセス
しにいく必要、ないじゃん。

元々いまどきのvmは物理メモリなんてただの仮想空間のためのキャッシュに
過ぎないわけで、仮想メモリ空間のマップ情報だけ各CPUごとに共有していれば
いいわけ。

特にtextは thread 毎に各CPUに割り当てられた際に page-in すればいいわけで。

問題は data 領域なんだけど、これはキャッシュと一緒でコヒーレンシさえ
保っておけば、まったく同じコピーがあちこちに存在してても問題なく、実際
Sunのインターコネクトにはその機構が備わってる。

SunFireが実際そうかは、まだ理解できてないけど、vmの機構をうまく使って
隠しちゃえば、ユーザは簡単に騙せそう ;-)

遅くていいなら、Ethernet越しにだってできるよ。

284 :Socket774:04/05/22 14:11 ID:dPkAriVy
遅かったらダメなんです。

285 :Socket774:04/05/23 06:40 ID:lgnIZbX8

http://www.diku.dk/undervisning/2004f/303/SunFireplane.pdf
"The Sun Fireplane System Interconnect"の6〜7ページを見る限り、
CPUからは全てのメモリ空間がアクセスできるようにみえる。

CPUが要求するアドレスをアドレスバスに出せば、Fireplane経由で
全部のCPU(メモリコントローラ)まで届いて、該当アドレスを持つ奴が
(それが自CPUのメモリコントローラか他CPUのメモリコントローラかに
かかわらず)データバスにデータを流してくれる。


286 :285:04/05/23 07:14 ID:lgnIZbX8

小さいマシンの場合だとどうかと思ったが、UltraSPARC III Cu User's Manual
http://www.sun.com/processors/manuals/USIIIv2.pdf のpage2-14の2cpu
構成を見ると、あまり動きに違いはなさそう。アドレスバスにアドレスを流せば
データを持ってる奴がデータバスにデータを流すと。

>278
>まず、UltraSparcIII(IV)は、物理メモリのコントロールは8GB(16GB)まで
>しか行えません。ここは大きなポイントで、これはシステム全体に存在する
>32GB〜576GBという、大きなメモリ空間を透過的に扱うことができない事を
>示します。

メモリ空間を透過的に扱えないというのがわからないなぁ。アクセスを透過
的に扱う仕掛けはあるのだから(と俺は思ってる)、別の何かがあるのか?

>さて、この問題を解決するため、OSにおけるメモリ管理では、各CPUボード毎に
>スワップを禁止した常駐エリア設け、ここに各CPU毎のリソースを動的に管理する、
>OSの基礎部分を常駐させます。

常駐エリアを設けるのはCPU毎ではなくてCPUボード毎?CPUの制限を回避
するためならCPU毎に持ちそうなものだが。それとも、CPUボード=1CPUの
モジュール?

では、そろそろ寝るわ。


287 :Socket774:04/05/23 14:04 ID:+nQGBcYR
UltraSPARC IIIはアドレスバスがあるのか?
初代UltraSPARCはUPAだったが。

288 :Socket774:04/05/23 22:13 ID:9ZpK2pdG
http://jp.sun.com/products/wp/server/WP_V440.pdf
こいつなんかは、CPUとメモリが1:1で載って、JBusで合計4つが載るから、
CPU毎に常駐エリアが存在するのだろうな。

一方で、
http://jp.sun.com/products/wp/UEarch/docs/UEARC03.html
は、メモリボードごとに複数のCPUが載り、一つのメモリモジュールを共有
するため、ここに限っては純SMP構造をとって、ボード毎に常駐エリアを持つん
だろう。

で、各CPU/Memoryボードにはアドレスコントローラが載っているようだが、
こいつが搭載されたメモリの他FirePlaneを解したメモリリクエストを行っ
ているみたいで、UPA(たぶんFirePlaneも)に出力されるアドレスビット数が
42bit(=4096GB)分ある。これはUltraSparcIII(IV)の33bit(34bit)を大きく上回る。

このアドレスコントローラが、いわゆるページマップ方式のアドレス拡張機なんじゃ
ないかと思う。

>>285のいうメモリアクセスは、おそらくこの部分からのアクセスなんじゃ
ないかな。


289 :Socket774:04/05/23 22:59 ID:+nQGBcYR
>>288
UltraSPARCIIIはJBUSとか言ってるからもうUPAなんか使ってないんだ。

UltraSPARCIIIはわからんけど、IIIiはメモリコントローラ内蔵のようだから、
CPUあたりの「物理」メモリ容量が少なく決まっているんじゃないの?
CPUを沢山つないでしまえば、どのCPUからも全領域にアクセスできるんじゃない?


290 :Socket774:04/05/24 01:18 ID:JMc6meLB
>>289
>CPUを沢山つないでしまえば、どのCPUからも全領域にアクセスできるんじゃない?

?? どうやって?

291 :Socket774:04/05/24 07:17 ID:pPLmWHvK
UltraIIIiならOpteronのようにCPU直結でSMPができた気がする。
もっともCPU内部にはHyperTransportみたいなものやメモリコントローラは
入っているだろうから、表現にちょっと困るが。

ウソの記憶かもしれんので、まあ話半分で

292 :Socket774:04/05/24 23:17 ID:Jk317rbi
CPU直結のSMPアーキテクチャって速度的にはデメリットはないの?
近例のOpteronだとHyperTransport使って他CPUに直結されたメモリにアクセスする際は、
大体4CPUで2ns、それ以上の構成だと最大で5nsのレイテンシがあるとか言ってたけれど。

それでもメモリコントローラ外付けの場合より速度的にメリットがあるのだろうか・・・?

293 :Socket774:04/05/27 17:13 ID:WI22mjw6
>>292
自前のメモリーが(MC外付けより)速い

294 :Socket774:04/05/29 03:26 ID:YA5x7Ciz
ttp://pc.watch.impress.co.jp/docs/2004/link/epfs.htm

反映されていないリンク分。
ttp://pc.watch.impress.co.jp/docs/2004/0528/epf05.htm


気になったこと。

NEC、VRどーすんだ?ラインナップを全部そろえとくってだけ?
UD3000って…1個のFPGAで実装できるのかな?本番はHardCopyなんだろうけど。

295 :Socket774:04/06/05 00:46 ID:0A4c3ZXM
hosyu

296 :Socket774:04/06/11 11:17 ID:qAncoI7C
トイレまだ?

297 :Socket774:04/06/11 18:36 ID:n8gZer4n
>>296
もうトイレネタは要らない。

298 :Socket774:04/06/12 04:56 ID:yc4CL6xt
一部屋に1つトイレがあって、他のトイレにいきたい場合は、行きたいトイレが
ある部屋の主に話つけるって感じか。

遠いとお漏らししそうだのう。

299 :Socket774:04/06/14 03:22 ID:+lTul21Y
初めて見たが凄いスレだな。ブックマークしますた。


300 :Socket774:04/06/18 21:23 ID:Ip0QAfHs
保守age

301 :Socket774:04/06/19 00:05 ID:L4/Zo8AJ
Sun、暗号化プロセッサ搭載の8コア“Niagara”発表へ
http://www.itmedia.co.jp/news/articles/0406/18/news021.html

> Niagaraは8個のプロセッサコアを備え、それぞれが4個の独立した
>プロセッシングタスク(スレッド)を同時に実行できる。

> Niagaraの各プロセッサコアには暗号化専用のコプロセッサがそれぞれ1個、
>プロセッサには浮動小数点演算プロセッサ、3MバイトのL2キャッシュが含まれる。
32スレッド/チップなので、1スレッド当たり100KB以下しかL2キャッシュが無い。
いくら「スレッド毎のデータは共通部分がある」と言っても、小さ過ぎる
(OpteronのL1キャッシュより小さい)。

> Sunは取材に対しコメントを控えたが、Niagaraベースの出荷は2006年初めを予定している。
2006!
「このchipは製品にならない」に500ペリカ。

302 :Socket774:04/06/19 13:14 ID:VFaiJX2+
>>301
Niagara随分前に聞いた記憶がありますな。本当に出るのね。
でも32スレッド同時実行で3MB L2キャッシュが適合する
アプリって殆ど無いんじゃないかなぁ。
staticなコンテンツを配信するhttpd?でもそんなんだったら
激安IA-32数台並べりゃ良い訳で・・・うーん。

303 :Socket774:04/06/19 13:38 ID:UUkjUigc
ブレードサーバー用だぞ。数台並べられるところにはいらんだろうな。

304 :Socket774:04/06/27 14:37 ID:MfqVzHxJ
良スレage

305 :age:04/06/27 15:50 ID:Pcpt/2l6
CPU換装したらここで試せや。
http://www5e.biglobe.ne.jp/~liquor/raytrace/


306 :Socket774:04/07/05 02:44 ID:PVQoYaly
>>292
Pen4では

CPU
|
北橋-RAM
|
PCIとか

てな感じ(ややこしいのでAGPは省略)

Opの場合、たとえばうちにあるK8T-Master2だと

CPU2
|
CPU1-RAM
|
AGPトンネル-グラボ
|
PCIとか

と従来の北橋がCPUに入れ替わった感じになってる


この場合、CPU2から見たら北橋がCPU1に変わっただけで、
速度的なデメリットはないと思われ。
むしろ、RAMコントローラが1.6GHz稼動してるわけで、
その意味での速度的メリットが少しあるかも(あくまで推測)

CPU1から見たらRAMが手元にあるわけで、
レイテンシの削減というメリットは大きい。
雷K8Wとかの二つのOp両方にRAMが刺さるタイプだと、
もっとメリットは大きいと思う、、たぶん

307 :Socket774:04/07/07 11:08 ID:p8LealN5
>1.6GHz稼動
メモリコントローラは1/2じゃなかったっけ?

308 :Socket774:04/07/07 12:48 ID:evw/G0Jo
OpとAth64のメモリコントローラはCPUクロックと等速です。

http://www.amd.com/jp-ja/Processors/ProductInformation/0,,30_118_4699_7980%5E7983,00.html

AMD Athlon 64 プロセッサとAMD Opteron プロセッサは、プロセッサ内部にDDRメモリ・コントローラを
内蔵することによって、そうしたボトルネックを直接解消し、x86ベース・プロセッサのメイン・メモリへの
アクセス方法を一新しました。プロセッサのコア周波数で動作する内蔵メモリ・コントローラは、プロセッサ
が直接使用可能なバンド幅を大幅に拡大し、しかもレイテンシは著しく短縮します。

309 :Socket774:04/07/07 19:58 ID:kURPYufX
と思いきやクロスバスイッチがHT接続な為HTの速度=メモリの最高アクセススピード

310 :Socket774 :04/07/08 19:11 ID:cYHko0fo
Pen4
ハイパースルー
ttp://k.m-page.jp/m.asp?u=haraj

311 :Socket774:04/07/08 20:38 ID:u90VlAop
>>310 は広告。
スルーでおけ。

312 :Socket774:04/07/10 19:44 ID:97UiBQfx
しかしあれだよな、Opteron、Athlon 64、そしてPentium Mに比べると、
Pentium 4の非効率さといったらとんでもないよな。
エンコード等、限られた用途にしか使えないCPU、Pentium 4。
NetBurst以外の部分は、色々と興味深いCPUだったんだが、
売りだったアーキテクチャが一番の足かせとなった良い例。

313 :Socket774:04/07/10 19:59 ID:VSYhW7AP
んだけど、普通の人にとってCPUパワーが必要なのはエンコードくらいじゃない?
だから、エンコードが速いというのは、いいと思う。

ただね、ハードウェア・エンコーダに比べてコスト高いね。ソフトのほうが柔軟だけど。

314 :Socket774:04/07/10 20:05 ID:zdlE4Nq4
でも、な・ぜ・か
ソフトエンコーダのほうが、他で再生できないとかのトラブル多いんだよね。

315 :Socket774:04/07/10 20:22 ID:8Qjiamjj
柔軟性が高い分デコーダにとってイレギュラーなストリームを作りやすいんだろ

316 :Socket774:04/07/10 21:53 ID:ar6r2g4F
>>314
ハードウェアで再生できなかったら対処の使用もないな。

317 :Socket774:04/07/10 22:01 ID:MRDgUCZY
>>316
1:事実に対して仮定を持ち出す


318 :Socket774:04/07/11 23:40 ID:C48OxO/a
漏れみたいな画質厨が求めるエンコーダーとなると
ソフトウェアエンコーダーしかないけど、
消費電力比で考えるととんでもなく効率が悪いよなあ。

319 :Socket774:04/07/14 14:49 ID:XRGlXgx+
RISCネタなのでこっちにも貼っておきましょう。

POWER5の性能 http://pc5.2ch.net/test/read.cgi/jisaku/1078614189/577n-585

320 :まるちぽすとさん:04/07/16 22:00 ID:ia6knFPU
記念カキコ

321 :Socket774:04/07/17 17:31 ID:G0iYtPMK
>>318
それ言い出したらPCなんて使えなくなるさ。

既に一定以上のコンピューティングパワーがあるから
効率とかの愚痴も言えるわけで、今更GHz以前のCPUも使えないし、
PCクラスタのスパコンの効率とか見たら、全てがどうでも良くなってきたよ。

322 :Socket774:04/07/17 17:43 ID:MvJhd5LQ
MPEG4のエンコード、ハードウェアでやるとリアルタイムで、しかも消費電力は数Wですよ。

323 :Socket774:04/07/19 17:28 ID:tkZS0uyg
>>322
しかし、チップによって計算結果が異なる罠。

324 :Socket774:04/07/19 18:39 ID:n4RlYz6Q
>>323
ソフトでもエンジンによって違うんだから、
その指摘にどんな意味が?

325 :Socket774:04/07/19 20:19 ID:npozr/Ui
いっそのことUSB接続のハードウェアエンコーダーとか出ても良さそうな気がするが…
キャプチャーじゃなくて動画ファイルを専用チップでエンコードしてくれる物。
PCIボードのヤツはあるけどUSBタイプって無いよね?

326 :Socket774:04/07/19 20:42 ID:Y1PneaHn
USBもあるけど、ビデオ入力端子からの映像をエンコードしてUSB経由でPCに渡すもの。
みんなが欲しいのは、PCから映像を渡して、エンコード結果を受け取れるものだよね。

327 :Socket774:04/07/20 10:36 ID:ZwOhqJff
画質厨はパラメーターを弄れれば弄れるほど有り難がるからな。
ソフトエンコードに流れるのは致し方あるまいて。

俺は簡単操作で速いハードエンコードの方が好きだけど。

>>322
リアルタイムエンコードは普通に出来るようになったけど、
PC上にある動画データを実時間よりも速い速度でエンコー
ドする事って今のチップで可能なんですかね?

倍速になっただけでも実時間の半分になるのになぁ。


328 :Socket774:04/07/20 10:46 ID:W8A0rSW/
7倍速エンコチップとか民生用にさえ普通にあるじゃん

つか、なんでかんでも無意味に厨付けるのはやめれ。

329 :Socket774:04/07/20 11:30 ID:4Og/giE7
エンコエンコってそんなに映像溜め込んでどうすんの?

330 :Socket774:04/07/20 12:03 ID:ZwOhqJff
>>328
ああ、>>318って付けた方がよかったかの? たかが10レス
前の話だから、ちゃんと流れ読んでれば理解できると思った
からさ。まぁあれだ。彼が「画質厨」と名乗ってるから、
それを受けたまでの事っす。

それはさて置き、チップがあってもチップの応用製品がなきゃ
意味無いんだよな。PC向けの民生用ボードはないの?


331 :Socket774:04/07/20 16:50 ID:+9aIQOfl
>>329
同意。素直に"スゴ録"でも買っとけ。

332 :Socket774:04/07/20 20:28 ID:qPlsSXno
http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20040715/147310/

この記事って既出?内容が噴飯ものなんですが・・・

333 :Socket774:04/07/20 23:05 ID:tR3LNKh4
>332
時代についてこれていない人がいるようですね > 日経

(P4 系を Intel がキャンセルした理由が全然分かっていないって感じ)

334 :Socket774:04/07/20 23:41 ID:OCLO6cTr
>>332, 333
どこが変なの?
詳しく教えて。

335 :Socket774:04/07/21 00:36 ID:ZXD6WNRH
たるさんのパソコンフィールドとかDOS/V POWERREPORTとか適当に読めば分かる。

336 :Socket774:04/07/21 01:54 ID:Ih84qeqy
そこでたる某を持ち出すなよって気はする。

337 :Socket774:04/07/21 11:57 ID:tgChnllu
>>335
わかんねーよ

338 :Socket774:04/07/21 13:56 ID:BbvRjwEm
つまり記者は最後の一行が言いたかったんだな

339 :Socket774:04/07/21 14:24 ID:tgChnllu
たる坊のページ見てたら洗脳されそうになりました

340 :Socket774:04/07/27 01:53 ID:w+F4Vn47
たる坊はかなり素人だからなぁ…

341 :Socket774:04/07/28 12:45 ID:lIlyCSCb
たるさんは結構数字を持ち出してくるので何だか納得してしまう。
>>332
も既出でしょとか思いながら普通に読んだ。
これってトイレ話でいうとどういうこと?



342 :Socket774:04/07/30 01:24 ID:rDP16y2V
あえていおう。 

  日本にCPUの専門家はいましぇん。

日本では専門家だったとしても、世界的にみれば研究生レベルだったりするorz

343 :Socket774:04/07/30 08:28 ID:tJt8cRox
スーパースカラ機とベクトルパラレル機の違いって結局何なん?
どちらも命令を並列実行することには変わりないけど。

344 :Socket774:04/07/30 09:02 ID:IPdhyEx+
MIMDとSIMD

345 :Socket774:04/07/30 13:08 ID:V1aMKXGE
>>342 それは学問的にって事?
日立のSHとか東芝のエモーションエンジンとか作ってる人間は専門家の範疇じゃないのか?

346 :Socket774:04/07/30 14:59 ID:+PBTWc59
日立やNECはいいCPUつくるよなぁ

347 :Socket774:04/07/30 15:14 ID:+PBTWc59
>>343
スーパスケーラやVLIWはパラレルプロセッサの一部。MIMD。
ただ、スーパスケーラやVLIWはプロセッサ内の命令単位の並列処理に、
パラレルプロセッサはタスク毎の並列処理に言い分けられるコトが多い。
誰が、どのレベルでスケジューリングしてるかの差なんだけどね。

ベクトルプロセッサは大量のデータを単一の演算でまとめて処理するもの。SIMD
行列計算に向くけど、最近はストリームの処理で良く使ってる。
y=f(x)っていう演算で、xが100万件の集合ならば、答えであるyも100万件の
集合なんだけど、それを一度に計算する。

348 :Socket774:04/07/30 15:39 ID:tJt8cRox
なるほどな。しかもよく読んだら概出だった。すまん。
で、疑問な点が、(どこぞにかかれていたわけだがw)
スーパスケーラはメモリレイテンシの影響を受けやすい
アーキテクチャだということ。そうなのか?
結局ベクトルだろうが、スーパスケーラだろうが、同じように影響してきそうな
気がしてしょうがないんだが。

349 :Socket774:04/07/30 17:17 ID:+PBTWc59
それは同じだと思うけどなぁ。

ただ、プログラム生成時にあらかじめ実行順を決めてしまい、
あとは淡々とこなしていくVLIWに比べ、
スーパスケーラは実行時に依存関係の抽出や実行順の変更を行うので、
インストラクションキューに対する要求は高いかもしれない。

スーパパイプラインとかと勘違いしてね?
こっちだと、無効になったパイプを埋めなおすのにメモリ(キャッシュ)から
再ロードするわけだけど、そのレイテンシが大きいとパイプは空いたままで
実行効率は落ちまくる。

350 :Socket774:04/07/30 20:41 ID:tJt8cRox
だよなw
変だなと思って、その某・・・を読み返してみた。

「しかし、ベクトルプロセッサではベクトル演算機構に時系列で連続に
多くのデータを送り込む必要がある。そうしないと、せっかくの
ベクトルパイプラインがストールしてしまうのである。そのため、
ベクトルプロセッサではスカラプロセッサと異なり、 レイテンシより
むしろバンド幅がボトルネックになっている。 つまり、ベクトル型スパコンでは
まさにバンド幅こそ生命線なのである。」

なるほどな。相対的に、レイテンシが重要ってことか。


351 :Socket774:04/08/01 20:40 ID:cbUNtz/t
またトイレの話を使うと

・内部に便器が2つあるトイレが2軒ある。
・入ってくる人間は全て同じ時間で排便して出ていくと仮定する
・一方のトイレにはドアが2つ、もう一方には1つだけついていて
それぞれのドアの前に人が並んでいる

このとき
・ドアが一つのトイレでは列をなるべく早く進めることが重要(=レイテンシ)
・ドアが二つのトイレでは二つの入口を常に埋めておくことが重要(=バス幅)
ということでいいんでないか

352 :Socket774:04/08/02 00:35 ID:5GOWQfc9
>>351
ちがうちがう。別モノなのに同列で説明しちゃダメ。

いいか?
うんこしてケツ拭くのにかかる時間は>>157によると3,4のステージで合計90秒だ。
4のステージ後に水でうんこを流したとしても、次のFlush要求は90秒後だから、
90秒かけてタンクに水を貯めても間に合う。レイテンシは90秒でOkだ。

大便器と小便器が分けられてる分けられてるのに水タンクが一つだとうどうなる
だろう。おそらくFlush要求は90秒より短い。同時に要求があったときはあきらめる
としても、少なくとも半分の45秒以内で貯められないと、理想状態である二倍の
処理には追いつかない。

脱糞や放尿する、という「行為そのものを滞りなく処理しつづける」ためには、
滞る要因を極力排除しなくてはいけないわけで、レイテンシが重要になる。

ただし、うんこをきちんと流すためには、一回分の水が時間内で流れてくるだけの、
必要にして十分な管の太さが必要なことは、言うまでもないことだ。

353 :Socket774:04/08/02 01:06 ID:5GOWQfc9
一方、「大量のうんこをとにかく早く流したい」という要求も世の中には存在する。
>>157のように一連の脱糞行為をこなすわけではなく、ただひたすら溜まったうんこを
流し続けるという非常に限定された条件だが、これが可能になると例えばイベント会場
で何万人という人間が脱糞したうんこを、瞬時に会場外へ流せるためすっきり感が違う。

>>157のトイレでは、千人にうんこをさせて、そのすべてを流すには 480秒x1,000で
なんと480,000秒という気の長い時間がかかってしまう。実に5日半だ。
「うんこする」のが目的ではなく「うんこを流す」のが目的なんだから、
パンツ下ろしたりする時間ははっきりいって無駄である。無駄な時間がつもると
こんな非現実的なことになってしまうわけだ。

そこで、一人分のうんこを5秒で流す装置を導入してみよう。
なんと5,000秒、つまり一時間半ですべてのうんこを流すことが可能になる。

実際には流す水をためなくてはいけない。何せ千人分のうんこをながす水だ。
そのレイテンシたるや膨大で、一人分に90秒として 90,000秒かかってしまう。
しかし!すべての時間は合計でわずか95,000秒。わずか一日ちょっと、
一人一人処理する時間とくらべ 1/5で済んでしまう。

気をつけなくてはいけないのは、管の太さだ。
一人一人寄りする場合、90秒で流しきれればそれほど困らなかったのに対し、
今回は僅か 5秒で、一回分のうんこと水を流さないとあふれてしまう。
実に18倍の太さが必要となるわけである。

354 :Socket774:04/08/02 01:13 ID:5GOWQfc9
j=x[0];k=z[0];i=j*k;y[0]=i;/*xとzの要素をメモリから読み出して*/
j=x[1];k=z[1];i=j*k;y[1]=i;/*掛け算して、メモリに書き出すのを*/
   :
j=x[999];k=z[999];i=j*k;y[999]=i;/*1000回繰り返す。ループが展開されたと思いねぇ*/

っていうプログラムを >>352

y[0..999] = x[0..999]*z[0..999]/*xの要素列とzの要素列をかけてyの要素列に書き出す*/

っていうベクトル利用を>>353って思いねぇ。

355 :Socket774:04/08/02 14:12 ID:JB9HnLDD
ウンコ━━━━(゚∀゚)━━━━ッ!!

356 :Socket774:04/08/02 14:14 ID:oXy0XYZ0
クサ〜

357 :Socket774:04/08/05 09:05 ID:V5S8lmJ3
ager

358 :Socket774:04/08/05 20:11 ID:1/kEU5PD
これだけウンコの話しててクソスレにならないところが萌え

359 :Socket774:04/08/06 00:59 ID:eUXVXQI1
今月のDesignWaveに載ってたリコンフィギャブルデバイスってどうよ?
CPU+再構成可能演算機アレイって構成で、
内部にコンフィグメモリが3バンクくらい積んであって、1クロックで切り替えられるらしい。

360 :Socket774:04/08/06 23:26 ID:pd9a7C0L
V33Aマンセー

361 :Socket774:04/08/07 15:57 ID:Xmy33krg
>>358
稀にみる良スレだな。

362 :Socket774:04/08/08 15:16 ID:9p/RiywZ
>>359
アイピーフレックスのヤツかい?
FPGA使いから見ると、ツールまだちと高いような。
ASIC屋さんはどう見ているのかな?


363 :Socket774:04/08/10 11:59 ID:vOMNnOXy
Ajinomoto
General
Foods

364 :Socket774:04/08/10 12:25 ID:xN1qsjqi
まじかよ。

365 :Socket774:04/08/11 02:15 ID:+SPZev7A
CPU換装したら、ここで試せや↓
http://www5e.biglobe.ne.jp/~liquor/raytrace/

366 :Socket774:04/08/14 06:10 ID:mMLpMC6b
644 名前: 名無しさん@初回限定 投稿日: 04/08/10 19:29 ID:Hi629IqC

・ゴーストうんこ  出たと思って下を見ると、便器には落ちてない。でも紙にはちゃんと付くうんこ。
・クリーンうんこ  出たと思って下を見ると、確かに出ている。でも紙はよごれないうんこ。
・ウェットうんこ  50回ふいても、まだ付いている気がするうんこ。万一のことを考えて、パンツにトイレットペーパーをあてがってトイレを出ることも。
・セカンドうんこ  終わってパンツを上げかけたところで、再びもよおすうんこ。試してみると、確かにまだ出る。
・ヘビーうんこ   食べ過ぎ飲み過ぎの翌日のうんこ。重くて流れにくい。
・ロケットうんこ  すごい速度で出てくるので、パンツをすばやくおろさなくてはならない、そんなうんこ。
・パワーうんこ   勢いがあるので、水がピチョンとはねかえってくるうんこ。広範囲を拭かなくてはならない。
・リキッドうんこ  液状で、一般に痛みと音がすさまじいうんこ。3日たっても肛門が痛いことがある。
・ショッキングうんこ  においが強烈なため、便後1時間は誰もそのトイレに入れない、そんなうんこ。
・アフターハネムーンうんこ  すぐそばに他の人がいても、平気で音とともに出せるようになる、そんなうんこ。
・711うんこ
・ボイスうんこ  あまりにも固くて切れないので、出すのにかけ声が必要なうんこ。
・ブレイクうんこ  量が多すぎるため、休憩をとっていったん水を流さないとあふれてしまううんこ。
・バック・トゥ・ネイチャーうんこ  森の中や田舎のあぜ道、時にはビルの地下などにナチュラルにしてあるうんこ。
・インポッシブルうんこ  絶対にトイレに行けない状況のときにもよおすうんこ。すべてをあきらめるか、バック・トゥ・ネイチャーうんこしかない。
・エアーうんこ  出そうな気はするのに、何回やっても屁しか出てこない仮そめのうんこ。
・ダイナマイト☆うんこ
・ノーエアーうんこ  屁だと思って軽く力を入れたら、出てきてしまったうんこ。多くの場合、取り返しのつかないことになる。
・ホップステップうんこ  徐々にでてくるうんこがでかくなってくるうんこ。
・フェイクうんこ  最初はクリーンうんこだったのに、その後リキッドうんこがでてくる、そんなうんこ。

367 :Socket774:04/08/16 23:03 ID:rx5TavvH
>366
それ、このスレでは凄く浮いてるから、キミが恥ずかしいだけだよ。

368 :Socket774:04/08/17 13:14 ID:7p8oACMw
場違い晒し上げ

369 :Socket774:04/08/17 13:33 ID:yCIX7Q0D
エアーうんこ、にはテネスムスという立派な別称があります。

370 :Socket774:04/08/19 11:51 ID:eX0mtTLR
それ、このスレでは凄く浮いてるから、キミが恥ずかしいだけだよ

371 :Socket774:04/08/20 12:29 ID:81pT+Eka
おまいら、Pentium Mのアーキテクチャについてはどう思う?
節電機構なんかはかなりの優れものだが・・・

372 :Socket774:04/08/20 21:15 ID:F6uHPlZf
それよりプロセッサーナンバーをどうにかしてくれないか?
周波数がイヤならせめてベンチマークと数字を比例にしてくれよ。

373 :Socket774:04/08/23 11:11 ID:tP6UC3m0
 アプリケーション(プログラムって言うべきか)によって大きくパフォーマンスに
差が出てくるから、性能指標って結構難しいよね。
 新命令関係って用途が限られてくるから、マルチ演算みたいなものを排除した
平均CPIとクロックを掛けたものを表示してくれるだけでも良い感じ。

 まぁそんなことしたら差別化が難しくなってしまうわけですが・・・。

374 :373:04/08/23 12:27 ID:tP6UC3m0
 CPIじゃない、IPCだよ・・・。脳内変換よろ・・・


375 : ◆FVWM2/q5JM :04/08/23 12:53 ID:40LCTY2w
ところでだ。
いま現在新品パーツでPCなりワークステーションなりを自作(自組み)する場合に、
x86とその上位互換のCPU以外に選択枝はあるのか?

376 :Socket774:04/08/23 13:55 ID:040lVBB5
>>375
これはx86以外のATXフォームファクタのマザーはあるかという質問だと思っていい?
ttp://www.simtec.co.uk/products/EB110ATX/
ここあたりのARMとかだとATXだし楽。値段も...まぁぎりぎり許容範囲だろう。
中古ならSPARCとかAlphaとかあるがねぇ。新品だとこの辺ぐらいしか知らん。

ATXでなくていいならSBCの類がいくらでもあると思うぞ。

377 : ◆FVWM2/q5JM :04/08/23 15:48 ID:40LCTY2w
StrongARMの存在を忘れてた、すまぬ。
この板がSBCを扱う所かどうかが判らないからSBCの類は考えに入れてなかった。
スレタイトルの[]の中が自作PC板的におかしい気がしたから聞いてみただけなんだ(´・ω・`)

Alphaは今でも欲しいと思うことがある。



378 :Socket774:04/08/26 13:21 ID:yhrfzxlk
 

379 :Socket774:04/08/27 10:00 ID:qOPjfjJW
http://www.sbc21.co.jp/
ここの事かな?いや、やけにローカルすぎる。
http://www.sbc.co.jp/
こっちだな。

380 :Socket774:04/08/27 12:57 ID:pullVH6E
>>379
マジレスするとPICMGやPC104でぐぐれ>SBC
VMEやCompactPCIでもいいぞ。

381 :Socket774:04/08/29 00:25 ID:umLfm0vh
>>371
極めて効果の高い節電機構は素晴らしいが、実行アーキテクチャについては陳腐の一言に尽きる。

大容量キャッシュとQDR、そしてSSE2を採用しただけで、本質的にはP6コア。
P6コア自体は間違いなく傑作だが、十年ほども前に開発したアーキテクチャに今でもすがるのは
名実ともに業界のリーダーであるIntelにあるまじき恥ずかしい状況。

特に今は、AMD64やメモリコントローラの統合、デュアルコアを見据えたバス設計などの
革命的に斬新なK8アーキテクチャがあるからこそ、よけいにIntelの不甲斐なさが際立ってしまう。

P6以来のIntelはP6コアのマイナーチェンジと
クロックのみ優先のNetBurstなんかにすがり続けた数年だったから
IPC向上技術についてAMDに差を付けられている感が拭えないが…

とはいえ技術力と資金力のある会社だから、もう少しAMDにシェアでも技術力でも煽られて
今度こそP6の後継となるような新しいコアアーキテクチャの開発に取り組むことを期待したい。

382 :Socket774:04/08/29 00:34 ID:+yz4YUd/
K8って、K7を64ビットに拡張して、メモリコントローラを内蔵して、HTを持っただけでは?
外側は変わったけど、中身については変わってないと思う・・・。

383 :Socket774:04/08/29 01:04 ID:VNLQVreR
確かにP6->Netburst程のインパクトはないね>K7->K8
もっともNetburstが成功したかというとあれなわけだが

384 :Socket774:04/08/29 09:09 ID:jWv4IfcD
>381
陳腐で使えるものと、革命的に発熱するばかりの斬新なDSPモドキとが
あれば堅実に使えるものを選ぶのが人の道です。

Hammer の設計は好きだけど、挙げられている機構は
大体 Alpha のパクリ(というか Alpha 人を買った)なわけだし、
"革命的に斬新" は AMD厨の私から見てもちょっと...

>382
そもそもそんなに各社のプロセッサがモデルチェンジする度に
設計を全面変更できるほど学術レベルでもネタはないんじゃ?

385 :Socket774:04/08/29 09:10 ID:jWv4IfcD
あ >384 の最初の2行は P-M と P4 の話で、hammer の話はまた別ね。

386 :Socket774:04/08/29 10:04 ID:ovkMCnKK
>>382
演算機の数は変わってないが、かなり手が加えられてるぞ。
少なくともP6→PentiumM程度には。

387 :Socket774:04/08/29 12:37 ID:V/4R365a
>>382
64に拡張すること自体、Pen4のNBみたいなアーキテクチャじゃない限り
けっこう大掛かりだと思うが。

388 :Socket774:04/08/29 13:22 ID:fQYHd/KX
転んだら会社が消えるくらいには大がかりだったかも>64bit拡張
Intelが3GHz超えて北森>プへの移行をスムーズに、64bit対応を独自で前倒ししてたら、
今頃AMDはどっかに身売りしてたかもしれん。それくらいスレスレのタイミングで濱は出てたと
思う。

389 :Socket774:04/08/29 13:53 ID:F2fIx1ZB
ある意味、Athlon64を出せたAMDは経営哲学の神。

390 :Socket774:04/08/29 14:27 ID:YZSpsLCr
結局1コアだと消費電力は上がるのにクロックも性能も思うように上がらないので
断念してマルチコアへ移行するんでしょ?
そうすると性能はOSが重要な役割を演じるようになるの?

AMD って一時期倒産の危機に見舞われなかったっけ?

391 :Socket774:04/08/29 14:31 ID:jWv4IfcD
>387
一応 hammer は x86-64 がコケても 高速 IA32 としての道は
十分にあると踏んでいたし、HPC 市場向けには勝算はあったはず。
64bit 化によるダイの拡張は10%以下(5%だったかな?)だったし、
3DNow! みたいなもんと言えなくもない。

x86-64 がなければ Intel も IA64 以外の IA32e 64bit を
やろうとは思わなかっただろうし、その場合は(じり貧かもしれないけど)
32bit 世界で戦っていただろう。

予想以上の成功なのは確かだが、そこまで博打だったわけではない。

392 :Socket774:04/08/29 14:38 ID:V/4R365a
>>391
それは388へのレスではないの?

393 :Socket774:04/08/29 15:01 ID:WA+VPb3j
【AMDが倒産しかけた日】

>>388よ。お前みたいな奴をみると、あの日のことを思い出すよ。
2002年。AMDが本格的に倒産になりかけた日だよ。
CPUの研究費が多すぎて、費用が月700万ドルもかかってるって発表されて
「数日中に倒産」って予告されてさ、 その日のうちにあっちこっちの
部署がリストラされてた日だよ。
あのときのドレスデンの人、カッコよかったんだぜ。「総力を結集」 ってのはまさにああいう状態だよ。
CPUを64bitにしないと倒産ってもんだから、新しい設計組んでさ、 そしたらほんの何時間かで完成したんだよ。
それが聞いてくれよ、目標は64bitCPU開発だったのに Intelを倒すことに成功しやがったんだよ。
職人技なんてもんじゃねえよ、神技だよ。
でもよ、そうやって頑張る人がいた一方で、「ボクの肛門も64bit化されそうです」
とか駄スレ立ててたバカも いたわけだよ。ちょうど、今のお前みたいにな。
だからよ、俺たちは総力を結集して、お前のIQを64bitにしようと思うよ。

394 :Socket774:04/08/29 15:08 ID:4SKDwGwR
> そしたらほんの何時間かで完成したんだよ。
ワロタ

395 :Socket774:04/08/29 18:42 ID:2RPffUe+
Athlon64は妥協に妥協を重ねて現在の形になったのも事実なわけで。

396 :Socket774:04/08/29 18:46 ID:MjcYfcg5
「ボクの肛門も64bit化されそうです」

皺が増えるのか

397 :Socket774:04/08/29 18:50 ID:jWv4IfcD
>392
あ、そうかも。まあここ最近の数レスへのレスということで勘弁してくれぃ。

398 :Socket774:04/08/30 03:22 ID:/Hee1n2G
 でもさ、64bit化は遅かれ早かれ来るとして、AMDが取った方法は最も安易で
あることは間違いない。
 Ia32の限界を見越して、無理を承知で命令セットアーキテクチャを刷新するってのも
また必要な考えなんじゃないかと思う。x86を作ってきたIntelとしては、当然やらなくちゃ
いけないことだったんじゃないかと思うんだよね。x86命令って、無駄にデコード
時間がかかるのは避けられないみたいだし。

 まぁつまりだ、AMDはIntelの築いた土俵で強くなってきた、でも、Intelの敵は
他の土俵を作り上げようとしている者達なんだよ。ってのはいいすぎ?。
そういう意味では、内にも外にも敵を抱えて大変だよな・・・。

399 :Socket774:04/08/30 04:09 ID:UN1/dBVI
まぁでも・・・

IntelがIA-64に最新プロセスを使ってないにしても、
IA-32を捨てた割にはIA-64の性能が悪いと思う。

Itanium2は浮動小数点の演算は速いけど、それはx87が、あまりに古いため。
Intelのコンパイラは、x87の代わりにSSE2を使ったコードを吐けて、それは速いから。

400 :Socket774:04/08/30 04:21 ID:LNuK72wn
しかし、いままでIntelがIA32以外のアーキで作った石は(Xscaleは別として)
ことごとくこけているのだよねぇ。iAPX然り、i860然り。
#後者はI/Oプロセサとして生き残ってはいるが...
さらにIA64もその後を追おうとしているわけで...

401 :Socket774:04/08/30 04:54 ID:UN1/dBVI
いやいや、隠れた名作のMCS-48がありますよ。
キーボードに内蔵されているので、セカンドソースやカスタムを含めると、
もっとも売れている・・・かもしれない。

ちなみに、iAPXはIntelのアーキテクチャにつく冠なので、
iAPX-432まで書かないと、何のことだかわからないよ。

i860はモノが悪すぎたのだと思う。
マイクロソフトがWindowsNTを最初にi860で実装しようとしたけど、
あまりにダメダメなので、やめてしまったのは有名な話だよね。
某国内メーカーが、i860でUNIXワークステーションを作ってたけど、
ほとんど売れなかったようで、在庫を社内にバラまいて撤退したよ・・・。
i860で唯一ちゃんと使われたのは、SGIのグラフィック用マシンかな。
筐体に何枚も刺された基板にi860がびっしり積まれた写真を見たような気がします。


402 :Socket774:04/08/30 09:58 ID:38mAy+qE
>396
でも long mode って IA32 と全く同じじゃなくて
IA32 の癌(は言いすぎ?)のいくつかの命令は外してあるんじゃなかった?

デコードの負担とは言うけど、似たような事情で初期の
RISC 陣営が過去の互換性を気にせずにパフォーマンスで優位に立ったが
時間経過と共に RISC サイドも互換性問題等で結局身軽ではなくなった、
ということもあるし、ダイに関しては対した負担じゃなし、
x86-64 というのは今考えても現実的な選択なんじゃないかな。


403 :Socket774:04/08/30 10:34 ID:g/fhuBAp
>>402
再取得したほういいぞ。

404 :Socket774:04/08/30 14:18 ID:1HCJJfTu
>>400
>#後者はI/Oプロセサとして生き残ってはいるが...
そりはi960でi860とはまったくの別物であ。

>>401
>某国内メーカーが、i860でUNIXワークステーションを作ってたけど、
○kiか?○kiのコトだなっ!?
K〓〓はちがうぞ、○kiのOEMだからなっ

PC・WS市場ではIA-32以外確かに不発で終わってるけど、
i960等の組み込み系は強いよ。PXA系とか。


405 :400:04/08/30 17:45 ID:LNuK72wn
>>404
むむぅ。i860/i960と一緒くたに語られることが多いので全然別アーキとは知らなかった。
#しかしPXA=Xscaleでわ。

あとi960のアプリケーションってIOP以外に何があるの?
#他で使われているのは見ないので。


406 :Socket774:04/08/30 19:05 ID:UN1/dBVI
>>404
OKIの社史の205ページで、7300のことがちろっと書かれてますね。
ttp://www.oki.com/en/profile/120y/pdf/OkiHe7.pdf

クボタのTITAN VISTRAですか。中の人は、
ttp://search.luky.org/fol.1998/msg01256.html
うーん。よっぽど黒歴史だったんでしょう。

407 :Socket774:04/08/30 19:16 ID:UN1/dBVI
しかし、わらかないのはi860のどこが悪かったのか。
マイクロソフトは使いこなせなかったけど、SGIやOKIは使いこなしていたわけで・・・。

408 :Socket774:04/08/31 11:29 ID:H3044GhQ
>>405

>あとi960のアプリケーションってIOP以外に何があるの?

レーザービームプリンタ。
90年代前半はi960とAMDの29000がこの市場で争っておった。
Weitekなんていう会社もここに参戦してたな。
ちなみに、i860が出現する前は高速浮動小数点演算の雄と言えば
Weitekであった。

409 :Socket774:04/08/31 12:19 ID:HsBhDRvw
>>400
Xscaleの基本設計はDECだったような。
ロジックはIntelで再設計された様だが。

>>401
生き残っているのは51じゃないすか?
まあ似たような物だが。

>>407
性能が問題外とか、バグバグだったとか色々あったようですが…
MSにi860マシンを開発するだけの技術が無かっただけかもしれんが。


410 :Socket774:04/08/31 12:46 ID:Z8vyTGdg
>>407、408
性能は悪くなかったんです。
IntegerUnitと独立してFloatingAdderとFloatingMultiplierが同時に動いたんで、
40MHz駆動で120MOPSとかいうてました。VLIWです。籍和算最強。
当時ベクタ演算といえば>>408氏も言われてるWeitekのチップをCPUと別に載せて
実現してたけど、これを単独で行えました。LINPACKで7〜10MFlopsくらい。

問題は、コンパイラの最適化が追いつかなかったことと、
DataStoreに2clockかかって折角の演算性能が生かせなかったこと。

Intelの発表では、i860は後にi860XPと改名し、ClockUpとStoreを1clockで
こなす高速版のi860XRを出す予定だったんですが、こけました。

それが出てればなぁ、出てればなぁぁぁっ

AstaVistra, Baby.

411 :Socket774:04/08/31 13:58 ID:83gWJ8lh
>>408
コ」サ、ホLBP、テ、ニツ酘MIPS、ォPowerPC、「、ソ、熙タ、ネサラ、ヲ、ア、ノ。」
コ」、ヌ、稱960、ャLBP、ヒニ、テ、ニ、、ホ。ゥ・オ・ヨ・ラ・・サ・テ・オ、ォ、ハ。」


412 :Socket774:04/08/31 14:01 ID:83gWJ8lh
うぅ。化けた。
>>408
今時のLBPって大体MIPSかPowerPCあたりだと思うけど。
今でもi960がLBPにのってるの?サブプロセッサかな。

413 :Socket774:04/08/31 14:31 ID:H3044GhQ
>>412

うーん、今はi960がメインに載っているLBPはあるのかなぁ?
流石になくなっているかもね。
インテルのWeb見てもi960はもう売る気ないみたいだし。
408で書いたのはあくまでIOPとして延命される前の話ということで。

414 :Socket774:04/08/31 18:15 ID:0NXm1Dap
クロック非同期型CPU・・。
どうなったんでしょうね?

最近トンと噂すら聞こえてこないですね。


415 :Socket774:04/08/31 18:45 ID:Wkl2QNPe
i960
最近はRAIDカードでも見なくなってきた。
そろそろ消滅かな。
最近のレーザープリンターはMIPSかPowerPCしか見ない。
NECのは無論自社のVRばかり。
本体はゼロックスそのものですが。

416 :Socket774:04/09/01 00:03 ID:z2LUhw73
XScaleってARMじゃないの?

417 :Socket774:04/09/01 03:14 ID:VJKRHjr+
>>416
ARMの定義による。
ARM社は自分のところのコアをほかにいじらせない(→だからICEなど開発環境の互換性が極めて高い)
のだけどIntel(というか元DEC)だけにはコア自体をいじるライセンスを与えている。
#だから命令セットもびみょーに違う。

ARM純正コアをARMと呼ぶとするならXscaleはARMではなくARM互換プロセッサと呼ぶんじゃないかと。

418 :416:04/09/01 05:37 ID:z2LUhw73
>>417
なるほど。

419 :Socket774:04/09/03 01:17 ID:XJG7T0Lj
>>407
カトラーが怒ってたのは例外まわりだったかな。
まあ例外関係は88000もクソだったわけだが。
ほかのRISCはどうだったっけ。

420 :419:04/09/03 04:32 ID:XJG7T0Lj
ちなみのどのようにクソかというと、
・すべての割り込みと例外が単一のハンドラに飛ぶので、ハンドラ内で
要因を特定しないといけない
・TLBミスでもミスした命令のアドレスしかわからないので、ハンドラ内で
命令のinterpretをしないといけない
・分岐遅延スロットで起きた例外の扱いも面倒で死ぬる

421 :Socket774:04/09/03 04:58 ID:4sWY4bAU
>>420
数値演算プロセッサとして使ったSGIはともかく、
SystemVを移植したOKIって根性あったんだ。
報われない努力だったのが、OKIらしいな・・・。

422 :Socket774:04/09/03 18:15 ID:qjhyz21W
>>421

根性っていうより趣味の問題でしょ。
あの程度の例外仕様でプログラム書けないんじゃOSなんてとても書けないよ。
結局嫌いだというのを誇張するために色々と言ってみる訳だ。
CPUアーキテクトから見るとあの程度のプログラムかけない方がクソなのかも。

423 :Socket774:04/09/03 19:00 ID:QbilWP5O
960はゲーセン基板で使われてた
FinalLapやModel2がこれだったな

424 :Socket774:04/09/04 13:04 ID:RKwC18hI
>>422
1回こっきりしか使わないハードにそんなCPU乗せられたら切れるだろ。
1タイトル作ったらもう全部のソースは必要なくなるんだよ。

425 :419:04/09/04 17:16 ID:+s683niz
>>422
しかし例外ハンドラが重いと性能にひびくからな。

426 :Socket774:04/09/04 20:42 ID:TmMJWbnP
>>422
>あの程度の例外仕様でプログラム書けないんじゃOSなんてとても書けないよ。

>>420の2番目の
>・TLBミスでもミスした命令のアドレスしかわからないので、ハンドラ内で
>命令のinterpretをしないといけない
なんかは明らかにアーキテクチャ設計不良だと思う。
だってハードウェアはミスしたアドレスを知っているはずで、それをソフトウェアに
知らせられれば例外処理が簡単で速くなるのが明らかなのに、アーキテクチャとして
そういうインターフェースを作っていないんだから。ミスしたアドレスを知らせる
仕組みを入れても、それでダイサイズが増えるようなことは無いだろうし。

「チーフアーキテクト逝ってよし」だな。

427 :Socket774:04/09/04 22:00 ID:950Nqkmv
って言うかさ、割り込み&例外が一箇所に全部集まっちゃったら
多重割り込みとかの優先順位付けが楽になるかも知れないけど、
どー考えてもオーバーヘッドでかいだろ。
さっさと処理する必要があるハードウェア割り込みとかどーすんだ?

>・TLBミスでもミスした命令のアドレスしかわからないので、ハンドラ内で
>命令のinterpretをしないといけない

特権命令例外とかだって大変だろ、これだと。

428 :426:04/09/05 00:13 ID:f6V9eir4
エントリポイントが1個でも、割り込みコードみたいなものを読めば、簡単に割り込み要因の
解析ができるなら、それほど問題ではないような。
しかし、このヘボ チーフアーキテクトのデザインだとそう簡単ではなくて、あっちこっちの
レジスタを見ないと割り込み要因解析ができないような悪寒。

429 :Socket774:04/09/05 07:29 ID:dnRFUBMq
センスねーな・・・

430 :Socket774:04/09/05 12:45 ID:09BSM4m+
Intelの設計したアーキテクチャで、これはきれいだと言えるのはあるのか?


431 :Socket774:04/09/06 01:23 ID:Nh4BEd0z
インテルのCPU設計の創始者は、化学屋さんだから・・・とか言ってみる。

432 :419:04/09/06 01:52 ID:yWtbIdnA
Jargon Fileに
The Intel i860's exception handling is extraordinarily funky.
とか書かれてるな。

それはともかく80286は美しいと思うぞ。
設計思想は明確だしよく練られているし性能も悪くない。

433 :Socket774:04/09/06 05:30 ID:Du4KACJg
俺、歴代のIntelCPUだと486とPentiumProが好きなんだけど
最近知ったんだがどっちも同じチームの開発らしいな。

ちなみにPentiumProは好きだが、L2を外に出してるのとL2が無いのは好かん。

434 :Socket774:04/09/06 08:02 ID:QUDpzw67
IA-64はどうよ?
VLIWという一時期の流行に過ぎないものを採用してしまった悲劇のアーキテクチャに思える。



435 :Socket774:04/09/06 09:45 ID:pXFaeZn5
>>432
286の設計時点で386のような拡張を視野にいれてたんでしょうか?

436 :Socket774:04/09/06 10:01 ID:29DSCack
286は386までの繋ぎだったような
最初から386を作ることを想定していたようなリザーブが多々ある

437 :Socket774:04/09/06 14:43 ID:EkPBJ60D
>>426

>だってハードウェアはミスしたアドレスを知っているはずで、それをソフトウェアに
>知らせられれば例外処理が簡単で速くなるのが明らかなのに

ん? アドレスは知らせているのだよ。

>>・TLBミスでもミスした命令のアドレスしかわからないので

ほらね。

438 :Socket774:04/09/06 16:54 ID:7BfCoKcT
iAPX432>430

439 :Socket774:04/09/06 18:02 ID:M/5QBTW7
486は良かったな…DX4であっという間に処理速度3倍になったんだから…

440 :Socket774:04/09/06 18:09 ID:LwKXJQFt
Cyrixの方が好き。

441 :Socket774:04/09/06 19:14 ID:QUDpzw67
Cyrix5x86は速かったよね。

442 :Socket774:04/09/06 20:06 ID:mWDJq+ya
>>434
今、「一から作った」ハイ・ミドルエンドCPUでVLIWじゃないのあるか?

IA-64はむしろバイナリ互換性にこだわってEPICなんて作ったのが(ry

443 :Socket774:04/09/06 20:52 ID:ApdYXlYs
しかしそれをいうなら
「今、「一から作った」ハイ・ミドルエンドCPU」
ってIA64以外にあるのか?

ちなみに普通にVLIWで作っちゃうとnopのスロットばかりでバスを食っちゃう
ので適当につめる仕組みを作るのが普通。EPICなしで全部並べたらコード
スカスカになると思うよ。

444 :Socket774:04/09/07 01:30 ID:hdYC+WGc
>>443
NOPばかりだとバスも食うしI-Cacheも無駄が多くてダメだもんな。

445 :Socket774:04/09/07 01:31 ID:hdYC+WGc
>>437
ミスした命令のアドレスと、TLBミスしたアドレスは全然違うぞ。

446 :Socket774:04/09/07 11:01 ID:UYDswsck
>>445

そっか、命令フェッチのミスじゃなくてデータフェッチのミスなのね。
理解した、ありがとう。
もっとも80860はTLBミスは勝手に処理してくれるみたいよ。
詳しい資料が手元にないのだけど、例外が発生するのはページフォールトの時。
それなら性能に対するインパクトはあまりないと思う。

447 :Socket774:04/09/07 11:04 ID:UYDswsck
>>443

>IA64以外にあるのか?

CELLとか言ってみる。

448 :Socket774:04/09/07 12:48 ID:yT5MtAO7
>447
ベースは MIPS 流れじゃネーノ?

449 :Socket774:04/09/07 17:55 ID:UK0KxO3e
TLBミス時の処理はハードウェアで自動処理なのに、
ページフォルトはアクセスアドレスすら返さないというのは
ずいぶん偏った実装だな。>i860

450 :Socket774:04/09/07 21:23 ID:Aknnr0GD
Transmetaもあるし

451 :419:04/09/07 23:20 ID:wmyD89qy
>>435,436
まあ、拡張の余地を残した設計ではあるけど、
アーキテクチャとしては完成形ではないか。
386以降の拡張はあまり美しいとはいえんじゃろ。

452 :419:04/09/07 23:32 ID:wmyD89qy
まあ、x86のセグメントと非直交性をこよなく愛する68k嫌いの意見なので
割り引いてくだされ。

68kはどうも小学生の考えたドリームチップみたいで嫌いなんだよ。

453 :Socket774:04/09/07 23:44 ID:Aknnr0GD
86も小学生が考えてればもうちょっとマシになっただろうになあ
こんなもんが普及してしまったせいで世界中の人が苦労した

454 :Socket774:04/09/07 23:45 ID:yuHgD+b2
>>448
powerPCだったりする。

455 :419:04/09/08 00:13 ID:NlRhmE2Z
俺はx86で苦労した覚えはないのだが、世界中の人はどこで苦労したんだろ。

456 :Socket774:04/09/08 00:18 ID:YavkA8vf
64KBの壁は面倒くさかった。

457 :Socket774:04/09/08 00:23 ID:vS4tLqkk
Cを使った時nearとかfarとかhugeとかウザかった。

458 :Socket774:04/09/08 00:41 ID:A9FCnzkN
NECの中の人はバンク切り替え(プで苦労したんだろうし、
EMSだのXMSだので苦労した香具師も多かろう。

459 :Socket774:04/09/08 00:42 ID:PUnJeEmy
セグメントで苦労しなかったやつなんているのかね
まあ419は実際にはさわったこともないんだろうけど
プログラム組まない人でもUMBとかEMSとかムダに苦労しただろうな

460 :Socket774:04/09/08 00:59 ID:Rvuemb+H
プログラムが組みづらい=汚くなるだけでなく、遅くなるし。

461 :419:04/09/08 01:03 ID:NlRhmE2Z
EMSだのXMSだので苦労するのははゲイツの糞DOSのせいだろ。
Macなんて32KBの壁があったしな。


462 :Socket774:04/09/08 01:04 ID:PUnJeEmy
セグメントに触れないのは認めたからかw

463 :419:04/09/08 01:07 ID:NlRhmE2Z
8086で64KBを越えるデータ構造を扱うのは面倒くさいが、
それはそういう使い方をするほうが間違いだろう。

464 :Socket774:04/09/08 01:08 ID:PUnJeEmy
ついでにいっとくがEMSで苦労するのはべつにMSのせいではない
8086が1Mbytesのアドレッシング空間しか持ってなくてしかも将来の
拡張を見越した仕様になってなかったから

465 :Socket774:04/09/08 01:10 ID:PUnJeEmy
8086では64KBをこえるデータはアクセスしてはいけないそうです
グラフィック画面とか実装するのは間違いってことだな

466 :419:04/09/08 01:15 ID:NlRhmE2Z
>>465
そうだよ。知らないかったのかい?

467 :Socket774:04/09/08 01:16 ID:YavkA8vf
おぃおぃ。

468 :Socket774:04/09/08 01:22 ID:A9FCnzkN
そっかー。
MSのせいにしていいんだったら、セグメント使いにくいのも
MSのせいだよな、うん。

469 :Socket774:04/09/08 01:23 ID:PUnJeEmy
しかしINTELもよくこんなクソなもん作ったよなあ
8086はあくまでその場しのぎの急ごしらえで本命は8800だったらしいが

470 :Socket774:04/09/08 01:23 ID:YavkA8vf
8086に1MB以上積もうとするのは、明らかに間違ってたと思う。
ただ、セグメントサイズそのままに16MBに広げた286はどうかと思うよ。


471 :419:04/09/08 01:24 ID:NlRhmE2Z
セグメントには正しい使い方というのがあって、
DOSはそれに外れた使い方をしていたというだけのこと。

472 :Socket774:04/09/08 01:30 ID:A9FCnzkN
>>469

よくよく考えると、Intelが狙った方向にはちっとも行かないのね。
なんか、本業はミュージシャンのつもりなのに、人生相談の人として
評価されている…みたいな感じがするw

473 :Socket774:04/09/08 01:33 ID:PUnJeEmy
>>472
他の優れたアーキテクチャにつぶされることもなく主流をいく
X86にはCPU運とでもいうべきものがあるのかもしれんな
おかげでダーティなアーキテクチャに苦労させられるわけだが

474 :Socket774:04/09/08 04:32 ID:o7D4llaJ
>>452
V60〜V80はもっと嫌だろ?

475 :474:04/09/08 04:36 ID:o7D4llaJ
メアド前のが残ってた_| ̄|〇

IBM360とスーパーファミコンでアセンブラプログラミングしたことがあると、
8086の命令体系は、まだ綺麗な方だと思えるようになってくるぞ。

476 :Socket774:04/09/08 05:46 ID:GACCjdwQ
べつに汚くは無いよ。美しくはないが。>8086
MMU内蔵8080だよ。インテルも制御用を主目的に作った。
あれでモダンなOSを走らせることなど想定してないし、
また実際走らなかった。
68000はメモリ効率が悪い。冗長性に腹が立ってくる。
トランジスタを浪費してる割に速くもない。
パクリ元のVAX自体からしてウンコ。設計思想がオナニー。
x86にはマイコン的楽しさがあるね。

477 :Socket774:04/09/08 06:03 ID:o44r1P9B
そーかぁ
68000は乱暴な言い方だけど、とりあえずメモリとかくっつければ動くから
ワンボードなんか作るのは結構楽だった
配線は多いけど

まぁ、x86と68000 どっちがマイコン的に楽しいかは、趣味の問題だろう

478 :Socket774:04/09/08 08:56 ID:XvMmZypX
ワンボード作りやすいかどうかは寧ろ、バス設計によると思われ。
確かに68Kは作りやすかった。
当時8086と違って特権モードをサポートしてたので、格好良い印象はあったね。
実際はバグがあって、仮想メモリ実装できなかった記憶があるが・・・

479 :Socket774:04/09/08 09:20 ID:vS4tLqkk
68000の仮想記憶サポートのバグ説は微妙っぽ。
ttp://www.st.rim.or.jp/~nkomatsu/mc68kperipheral/MC68451.html

480 :Socket774:04/09/08 10:05 ID:5edH0+2G
スーパールカニ

481 :Socket774:04/09/08 10:06 ID:tQq3gE9z
分かっている奴にはウザイ話だろうけど・・・
CPUのアーキテクチャなんてぇものはその時に使える半導体関連技術によって
最適点は変わるのよ。
68000なんて見た目はすっきりしているけど、32bitのPCに対してバスは16bit
しかないからサブルーチンコールする度に2回バスサイクルを起こしてPCを
チンタラ退避してた。だけど、PGAが使えるようになった68020ではその問題は解消。
だけど、将来の半導体関連技術に頼るアーキテクチャは大抵はビジネス的に失敗するね。

482 :Socket774:04/09/08 12:51 ID:dHcpU5cR
>>479
命令の再実行に必要なパラメタが、スタックフレーム上に全部積まれていない。
ってのが原因...でこれは010で修正。おかげで例外時のスタックの構成に互換性
が無くなるわけだが。

まぁ、仕様と呼ぶかバグと呼ぶかは立場によって異なるだろうねぇ。

483 :Socket774:04/09/08 13:15 ID:gFW+g4tM
仕様書に無い実装はバグ

484 :Socket774:04/09/08 13:57 ID:8qfac62g
8086以外の当時の16ビットCPUって64kB越えられなかったんだぞ?
Z8000も、NS32016も。1Page64kBでアドレッシングが16ビット。
それから考えたら、遅いなりにも1MBまでアクセスできた8086って偉大だろう?

糞なのは80286採用時に8088互換としてつかったIBMだろ。
挙句に脳障害呼ばわりしやがった。

485 :Socket774:04/09/08 13:58 ID:Vg8YcNpb
メモリアドレスが64bit化される前のアーキテクチャはだいたいアドレス空間不足が
ネックで死んでいった(ないしは64bit化された)。組み込み用でない今残っている
アーキテクチャ(AMD64/EM64T,IA-64,PowerPC,SPARC,IBM Z series,Alpha)は全て
64bit化された訳だが、次にアーキテクチャのネックになるのは何だと思う?
単純に命令を足せば実現できる機能は必要だと思えば、そういう命令を足せば
いいのでネックにはならないとすれば、何が次のネックだと思う?
Virtual Machineを実現する機能なんか必要だと思うが(IBMのにはもう入っているようだし)、
アーキテクチャ全体を考え直すような必要は無さそうだし、ちょっと思いつかない。
とすると、今のアーキテクチャをあと何10年も使い続けるのだろうか?

486 :485:04/09/08 14:17 ID:Vg8YcNpb
>>484
8086が1MBまでアクセスできたのは面白いアイデアだったけど、中途半端だった。
結果論だけど当時のDRAMの進歩の速度を考えれば、「4bitシフトで1MBまで」にしないで、
「8bitシフトで16MBまで」にしておけば、あまりストレス無く、32bitアーキテクチャである
80386までつなげられたと思う。
(ちょっと遅れて出て来た68000は24bitリニアアドレスだった訳だし)

一度Protect modeになると命令でReal modeに戻れないのは『脳障害』級のアーキテクチャバグだと思う。

80286時代に80286用のプログラムをみんなが書いていたら、80386が出た時にまた書き直す必要が出て、
無駄な努力になっていたと思う。80286は単に高速な8086として使っておいて、OSのAPIを変えるのは
80386 nativeのWindows95(実はWindows386というのもあったが)まで待ったのは正解だと思う。

まあ、俺もExtended MemoryだのExpanded Memoryだの、near/far/hugeだので苦労したことがあるから、
8086/80286のことをあまりよく言いたくけど。

487 :Socket774:04/09/08 14:21 ID:vI6/Yu+k
問題の本質は1Mbytesのメモリ空間に64Kbytes単位でしか
アクセスできないことにあるわけで
どういいわけしようと汚いアーキテクチャ

488 :Socket774:04/09/08 14:57 ID:gFW+g4tM
たかが64KBの壁に悩まされるのは三流
8bit時代は64KBすら自由に扱えなかったわけだが

489 :Socket774:04/09/08 15:07 ID:vI6/Yu+k
64Kbytesのメモリ空間に64Kbytes単位でしかアクセスできなくても誰も文句はいわんよ

490 :485:04/09/08 15:19 ID:Vg8YcNpb
半導体技術(CPUを作るロジックもメモリを作るDRAMも)の限界があるので、適当なところで
手を打つ必要があるのは明らか。この限界を超えてしまうと設計はしたけど生産できなかったり、
ほとんどの人は想定したメモリ量のはるか下で使ったりしちゃうから。
で、8086の時代内部演算16bitというのはOKだったけど、メモリアドレッシングが16bitでは
耐えられなかった。その前の世代が内部演算8bit・メモリアドレッシング16bitだったし。
ただし単純に24bitとかにアドレスを拡張してしまうと、アドレス計算を行う演算を特別に
用意しないといけなくなる。Intelの中の人はそれがきっと嫌だったんだと思う。
そこで16bit演算の枠組み内でメモリアドレッシングを拡張する仕組みを考える必要があって
「セグメントレジスタを4bitシフトして足す」というコンピュータアーキテクチャ史上初の
アイデアが投入された。仮想記憶をサポートしたOSがout of rangeだった当時を考えれば
それ程悪いアイデアではなかったのかもしれないけど、4bitシフトは少な過ぎた。
せめて8bitシフトしていれば…

問題は64KBの壁があることより、セグメントレジスタを使ってもアクセスできる範囲が
1MBしかなかったことでは。

491 :Socket774:04/09/08 16:03 ID:YavkA8vf
そうだね。
4ビットシフトなんてセコいこと言わずに、8ビットシフトしても良かったね。
セグメントの区切りが16バイト毎が256バイト毎かで、そう変らないものね。

でも、1MB以上のメモリがあるなら、32ビットでアドレッシングしたない。




492 :491:04/09/08 16:04 ID:YavkA8vf
× 32ビットでアドレッシングしたない。
○ 32ビットでアドレッシングしたいな。

493 :Socket774:04/09/08 16:15 ID:vI6/Yu+k
8086は8800の遅れで急遽間に合わせで作られたCPUなんよ
結局1チップにまとめられなかったAPXや1年遅れで出てきた68000
みればわかるとおり、8086のときには既に16bitをこえるアドレッシングや
仮想記憶は眼中に入ってた
8086はあくまで8800が出るまでの繋ぎで8bitの8080との互換性を最大限に
考慮して作られたCPUでセグメント、直交性のない命令体系もここからきている
アーキテクチャの汚さは互換のためだからしょうがないとはいえるが

494 :485:04/09/08 16:39 ID:Vg8YcNpb
むしゃくしゃしてやった
64KBを超えるメモリさえアクセスできれば何でもよかった
まさかこんなに長く使われるアーキテクチャになるとは思わなかった
今は反省している

495 :485:04/09/08 16:44 ID:Vg8YcNpb
>>493
8800って何?
i860、i960、iAPX432以外にまだIntelはCPUを開発していたのですか?
(88000はMotorolaだし)

496 :Socket774:04/09/08 17:28 ID:vgnD2JTu
つーか80386以降はほとんど別物だろ。
以前の互換性ももちろん残してはいるが。むしろ残したのが成功の原因。

497 :Socket774:04/09/08 17:31 ID:8qfac62g
>>486
>一度Protect modeになると命令でReal modeに戻れないのは『脳障害』級のアーキテクチャバグだと思う。
それ、必ず言われることだけど、なぜわざわざRealModeに戻る必要がある?といいたい。
まさに互換のためなんだけどね。でも互換ならRealModeからProtectModeに移る必要はない。
結局、そのためだけに80386なんて仮想86モードなんて小汚いモード追加されちゃうわけで、
僕からいわせてもらうと「狂ったメモリ管理しか思いつかなかったIBMの尻拭い」させられた格好。

ソフト開発の手間を指摘しているけど、早期にProtectModeのプログラミングに慣れていれば、
自己書き換えなどのような乱暴なソフトなんて早期に駆逐されただろうし、いまさら保護ビット
なんて追加しなくてもメモリ保護はできたろうし、セグメント管理による仮想空間に世間が
慣れていれば、80386時代にはとっくに16Tのメモリ空間が手に入っていた。
PentiumProの36ビット物理アドレスも有効活用されてたろうに。

80286のProtectModeを最大限に発揮するはずだったOS/2が遅れたのが敗因だとはおもう。
実際、FarやNearポインタで苦しんだのって、MS-DOS2.x以降、1983年よりあとだよね。
MS-DOS2.11ならすでに1984年だ。

8080の互換(もどき)CPUとして1978年につくられた8086、
それを1984年にもなって時代は1MBドコロじゃなくなっていたにもかかわらず、
過去の互換性を堅持したがったIBMが、腐った互換パソコンなんて出したのが、
未だ互換に苦しんでる元凶におもえる。

1985年にはPMMUと4GBのセグメントをぶら下げて80386も登場してるわけで、
(でも、1992年のWindows3.1までは、それは日の目をみられなかった)
時代背景的にはIntelの歩んだ道はまぁ、それほど酷くないかな、とおもうわけ。


498 :Socket774:04/09/08 17:33 ID:8qfac62g
うへ、長すぎた、ごめん。

499 :Socket774:04/09/08 19:12 ID:nEv31wfV
そうなんだよね。
保護したいからプロテクトモードなのに、リアルモードに戻れちゃったら
やりたい放題されて保護の意味が無い訳で…。

また8086が登場した当時は確かに1MBytesあれば十分に思えた。
9801初代が、128kBytesで出てきたのは有名な話だし、
9801VM世代でも384kBytesしか標準実装して無かった。

1984年のIBM PC-AT(80286)で512kBytesだったのだから、
640kBytes実装されるまでには286世代への移行は可能だったと思うけど…。

500 :485:04/09/08 19:43 ID:Vg8YcNpb
>>497
>でも互換ならRealModeからProtectModeに移る必要はない。
これ理由がわかりません。
MS-DOS用に書かれたReal mode向けプログラムをどうやって80286のProtect modeで動かすのですか?
Real mode向けプログラムは「アドレス計算時はセグメントレジスタの内容が4bitシフトされて
足される」というのを前提に書かれているのがほとんどだったと思います。

>「狂ったメモリ管理しか思いつかなかったIBMの尻拭い」
IBM-PCのメモリ管理がまずいのは、MS-DOSを作ったMicrosoftではなく、IBMの責任なのですか?
(「MicrosoftではなくSeatle Computer Productsだ」という話は置いといて)

>>499
>保護したいからプロテクトモードなのに、リアルモードに戻れちゃったら
>やりたい放題されて保護の意味が無い訳で…。
80286では既に特権mode(RING)がサポートされていたので,Protect mode→Real modeへ
移行する命令はRING=0でだけ実行できるようにすれば保護が破られるような問題は
発生しないし、80386はそうなっています。
80286に移行命令を付けない理由にはならないでしょう。

501 :497:04/09/08 19:56 ID:iIG2ZipU
>>500
>MS-DOS用に書かれたReal mode向けプログラムをどうやって80286のProtect modeで動かすのですか?
80286も80386も、電源投入時はRealModeですから、ProtectModeに移らなければいいだけです。

>IBM-PCのメモリ管理がまずいのは、MS-DOSを作ったMicrosoftではなく、IBMの責任なのですか?
8088時代、1MBのメモリ空間をIBMは640kBのメモリエリアと384kBのシステムエリアにわけました。
で、空間をぱんぱんに使い切ったとき、16MBの物理メモリをもつ80286を前にとあるBadScientist。。
じゃない、エンジニアが気がついたのです。

「Baseレジスタを1MBぎりぎり最後にしてやれば、1MBをこえて60kBが余計にアクセスできるぞ!」

さらに気がつきました。

「一度ProtectModeにはいって1+α部分を、別のメモリにマップしてやれば、
任意の16MBのエリアから60kBを切り出してこれるぞ!?」

これがEMMでありHIMEMの仕組みです。
これがやりたいために、ProtectModeに移ってからRealModeに移る、という
無茶な運用設計をする羽目になり「なんで稼動状態で移動できないんだ!」
とわけわからん文句を言うはめになったわけです。

>>499
初代IBM ThePC なんて 64kBでしたもんね>メインメモリ

502 :497:04/09/08 20:06 ID:iIG2ZipU
あと、80386も同様にProtectModeからRealModeへの移行は出来ないはずです。
>>500さんがおっしゃってるのは仮想86モードとProtectModeの切り替えであり、
仮想86モードはProtectModeで設定された保護化にあって、メモリ保護違反等は
トラップされてProtectModeに引き戻されます。

RealModeは、メモリ保護などの保護機能は一切ありません。

503 :Socket774:04/09/08 20:22 ID:5aWOtKOG
>>495
8800=APX

504 :Socket774:04/09/08 20:40 ID:YavkA8vf
ええい、APX432と書かんか!

iAPX86つーのがあるんだよ。中身はみんなのよく知ってるものだけど。

505 :419:04/09/08 21:31 ID:wD97lzFB
>>479
しかし中途半端に積む例外コンテクストを見るにつけ、
設計ミスを仕様と強弁しているだけなんじゃないかという気もする。

506 :419:04/09/08 21:46 ID:wD97lzFB
>>474
うん。あんまり好きじゃない。
頑張ったとは思うんだが。

>>493
セグメントは物理アドレス空間の拡張(と将来的な保護機構)のため、
直交性のない命令セットはコード密度をあげるためだよ。

507 :Socket774:04/09/08 22:09 ID:5aWOtKOG
直交性のない命令だと余分な命令増えてコードサイズは肥大するし遅くなるしでいいことないんだが

508 :419:04/09/08 22:20 ID:wD97lzFB
>>507
それはキミが3流だからだ。

509 :Socket774:04/09/08 22:25 ID:5aWOtKOG
三流といえばなんでも解決かw
オマエは8086で実際にプログラム組んだことが一度でもあるのか?

510 :419:04/09/08 22:28 ID:wD97lzFB
DSPのコードを書くときに、命令に直交性がないよウァァァンと泣きを入れるのかねキミは。

511 :Socket774:04/09/08 22:32 ID:5aWOtKOG
予想通りさわったことすらなしか

512 :Socket774:04/09/08 22:32 ID:dHcpU5cR
レジスタが少ないものコードデンシティをあげるためなんだよね!

513 :419:04/09/08 22:34 ID:wD97lzFB
アセンブラでごりごり書くことはあんまりなかったな。
いいコンパイラあったし。

86で深く考えずにコードを書くと直交性のなさに腹が立つかもしれんが、
コツがあるんだよ。

514 :419:04/09/08 22:36 ID:wD97lzFB
>>512
プロセスコンテクストの軽量化

515 :Socket774:04/09/08 22:38 ID:5aWOtKOG
アセンブラで書いてないのにコツがわかるのか
本当にさわったことないのがバレバレ
ためしにそのコツとやらを語ってみろ

516 :Socket774:04/09/08 22:40 ID:4DxEpjQV
結局これから先、インテルは軸足を IA-64 からIA-32にバックするの?
いつまでx86を引きずる事になるの?

517 :Socket774:04/09/08 22:45 ID:5aWOtKOG
少なくともPCに関してはIA64は完全にあきらめたっぽいが
AMD64でレジスタも増えたし(まだ足りないが)このままX86は残り続けるだろうな

518 :419:04/09/08 22:54 ID:wD97lzFB
>>515
レジスタの役割が決っているのでそれに反するような使い方をしなけりゃいいんだよ。
PL/Mコンパイラの出力が参考になる。

68厨のコードなんて見てるとなあ、なんでもかんでもレジスタに載せようとしたり、
ループの外でガリガリに最適化しても無駄だっつの。

519 :Socket774:04/09/08 22:59 ID:vS4tLqkk
( ゚д゚)ポカーン

520 :485:04/09/08 23:09 ID:4i3c4vYf
>>501
>ProtectModeに移らなければいいだけです。
当時MS-DOSの1MB/640KBの壁を破るためのExpanded Memoryのようなバンク切り替え式
メモリがほぼ一般化していました。アプリケーションソフトウェアの互換性を保って
80286の大容量メモリを利用するには、over 1MBのメモリをEMSとしてアプリに見せる
必要があったので、「ずっとReadl modeのままで行け」というのは現実的な解では
ないと思います。

>8088時代、1MBのメモリ空間をIBMは640kBのメモリエリアと384kBのシステムエリアにわけました。
8086の1MBメモリからまったくメモリの拡張の余地がなかったハードウェアだったのが
問題のようです。これはIBMの問題というよりは8086の問題で、それを前提に多くの
アプリが開発されてしまい、80286が出てきても、もう対応しようが無かった、という
話ではないですか?

>「一度ProtectModeにはいって1+α部分を、別のメモリにマップしてやれば、
>任意の16MBのエリアから60kBを切り出してこれるぞ!?」
上にも書きましたが、EMSというバンクメモリの仕掛けは8086時代からあって、対応した
アプリもそれなりにあったと思います。それの実現方法として、80286のProtect modeを
使うのは、それ程トリッキーなアイデアではないでしょう。
HIMEMの最後60KBのおまけは、トリッキーなアイデアだと言うのには同感です。

521 :485:04/09/08 23:10 ID:4i3c4vYf
>>502
>あと、80386も同様にProtectModeからRealModeへの移行は出来ないはずです。
80386のアーキテクチャマニュアルはさすがにもう無いのですが、最新のPentium4の
IA-32 Intel Architecture Software Developer's Manual Volume 3: System Programming Guide
ftp://download.intel.com/design/Pentium4/manuals/25366814.pdf
の2-7ページのFigure2-2を見ればわかるように、Protect modeからReal modeへは
PE=0で移行できるようになっています。このPE(Protection Enable)はCR0のbit0にあります.
ここのところの仕様は80386から変わっていないと思います。

また、以下の記事はEMS等の話も含めて、このあたりの経緯が詳しく書いてあります。
http://www.atmarkit.co.jp/fwin2k/special/win9xorwin2k/column_winhistory.html
>80386では、以上の2つのモードや16bitプロテクト モード、およびリアル モードを
>混在させて、自由に切り替えて使用することができ(80286と違って、リアル モードとの
>切り替えは自由にできる)、

522 :485:04/09/08 23:12 ID:4i3c4vYf
>>507
>直交性のない命令だと余分な命令増えてコードサイズは肥大するし遅くなるしでいいことないんだが
命令フェッチ用の必要メモリ帯域はデータ用に比べれば少ないし、キャッシュは分離されて
いるので、コードサイズの肥大化は、最近のCPUではほとんど問題にはならないと思います。
それに命令数は増えても命令長自体は短くなっているので、影響はそんなに無いのでは。
まさか「アセンブリ言語で書いたプログラムの行数が増えるのが問題」とか言ってないですよね。

直行性が無くても必要ならレジスタ間MOVE命令を出せばいいし、最近のCPUは多少レジスタ間
MOVE命令が増えたところでほとんど実行速度に影響ないでしょう(スーパスカラの空きスロットで
実行される)。それにコンパイラがうまいレジスタ割付をすれば、意外とレジスタ間MOVEも
減らせるような気がします。

>>513 >>515
最近のCPUを使うのにアセンブラ言語を前提してはまずいかと。
マルチメディア系処理のタイトループでも無い限りは、コンパイラのコード生成品質が重要だと
思います。

>>518
>レジスタの役割が決っているのでそれに反するような使い方をしなけりゃいいんだよ。
それだとコンパイラのコード生成アルゴリズムに勝てないと思います。
それで最新のiccとかのコードにでも勝てそうですか?

523 :Socket774:04/09/08 23:23 ID:dI66YWro
>>522
8086の話だぞ
最近のCPUで問題なのはレジスタの少なさによる煩雑なスタック操作だな
AMDがレジスタ増やしたが32個になってればよかったんだがなあ

524 :497:04/09/08 23:39 ID:iIG2ZipU
>>520
>「ずっとReadl modeのままで行け」というのは現実的な解ではないと思います。
いえ、単に「高速な8088」として使いたいのであれば、という意味です。
バンクメモリの機構に関しては80286でもほぼ同様の仕組みで互換は保てたはずで、
しかしながらソフトウェアでの解決をIBMは選択しました。
結果として、ソフトウェアからハードウェアリセットを行う、という無茶なハードウェアの
追加が余儀なくされます。

1MBというメモリ空間の狭さは8086/8088の制限ですが、80286が発表され
二年も経ってから出された IBM PC/ATで「わざわざ」1MBの制限をIBMは
選択したのです。EMSはそのまま使えたにもかかわらず、です。

さらにいうと、EMS対応のアプリは多数ありましたが、80286で追加された
EMMを用いる場合は、ソフトウェア側で若干の手直しが必要でした。HIMEMに
至ってはまったくの新規であり、過去の互換性は皆無です。

まぁ、当時の「パソコン」事情からするとそういうトリッキーな処理も
「アリ」だったとは思いますが、未だ引きずってる悪しき文化の原点は
この辺にあるんじゃないかと、私は思ってます。

あと、80386の件は、私の勘違いかもしれません。詳しい説明ありがとう。

525 :419:04/09/09 00:13 ID:gNeS/NRJ
特権レベル0からリアルモードに戻れたとして、
リアルモードで動くプロセスは他の(プロテクトモードの)プロセスの
メモリを触り放題、I/Oポート叩き放題なわけで、
プロテクトモードの意義が事実上無くなる。

526 :Socket774:04/09/09 03:59 ID:o0OO2upz
>>514
なんでレジスタをアキュムレータ一本にしなかったんだろうね?
そうすればコンテキストスイッチすごく速いはずなのに

フラグレジスタもいらないね。PCとSPぐらいはほしいかな?


527 :Socket774:04/09/09 04:02 ID:o0OO2upz
>>520
>501で言いたかったのは(realmodeで動く必要のある)DOSと過去のソフト資産
を捨てちまえば常にprotectmodeで動けるよーってことだと思うけどね。

1MB以上メモリを使いたければprotectmodeで動くOSとソフトを走らせればいい。
そゆこと。

528 ::04/09/09 04:37 ID:75kfLHY0
センスアンプについて誰か情報を持っていませんか?


529 :Socket774:04/09/09 07:30 ID:Ig+QPpBv
センスアンプはDRAMの技術・・・。

CPUのキャッシュと言えばSRAMだというのは過去の話なんだよね。
hpのmx2のL4キャッシュはDRAMなんだよね。

530 :Socket774:04/09/09 10:27 ID:uYa6zei0
>>522

>命令フェッチ用の必要メモリ帯域はデータ用に比べれば少ないし

そんなバカな?と思ったが、キャッシュ前提の話ね。

>キャッシュは分離されて
>いるので、コードサイズの肥大化は、最近のCPUではほとんど問題にはならないと思います。

えっとね、コードサイズが大きくなるとキャッシュのヒット率は下がるのよ。
だから命令セット考える時は結構気になるよ。

531 :Socket774:04/09/09 19:55 ID:CR9Ihssg
>>526
 ネタ?。
 レジスタ少ないと、猛烈にメモリアクセスせにゃならんと思うんだが・・・。退避する量が
減っても、1タスク内でのメモリ転送量が爆発的に増えるだろ、と。最終的に、大量の
キャッシュメモリで回避できないこともないだろうけどね。

 アーキテクチャ上の汎用レジスタは32本位、で、レジスタバンクが各特権モードにつき
2〜3段位、ってのが一番無難なんじゃないかと思うけど。いや、へたれ日曜プログラマの
俺からしたらレジスタなんて8本もありゃ足りそうだけどね・・・。

 正直、高級言語のコンパイラのほうがよっぽどきちんと資源を使ってくれるよ・・・。

532 :Socket774:04/09/09 22:34 ID:iWdKW4/M
質問。スレ違いかもしれないけど。
規模にも依りますが、CPUに最低限必要な機能は?



533 :Socket774:04/09/09 22:48 ID:kX2AD1Bh
加減算と条件分岐か?

534 :Socket774:04/09/09 23:08 ID:MDpe1y+y
>>532

チューリングマシンとかでぐぐってみたら?


535 :Socket774:04/09/10 01:25 ID:AQa/Ux3s
計算万能性か
XORあれば十分じゃね?

536 :Socket774:04/09/10 01:29 ID:JfFVXCGn
>>532
必須なのは次の3点
フェッチ、デコード、エクスキュート

537 :Socket774:04/09/10 01:43 ID:JfFVXCGn
世の中のプログラムをすべて理論的に作れるという意味で必要な命令は、
ロード、ストア、加算、AND、OR、NOTくらいか

538 :Socket774:04/09/10 01:44 ID:JfFVXCGn
あとフラグ、フラグに応じたジャンプ

539 :Socket774:04/09/10 02:02 ID:CMdjbP9n
このスレ楽しいな。
けなしあいにならない議論が素敵だ。
6502vsSC/MPを思い出してしまった(w


540 :Socket774:04/09/10 02:47 ID:Ws2l0g3C
>>532
アキュムレータ(Acc) 1個
命令1 Memory ← Acc - Memory
命令2 if(Acc < 0) then branch to Memory
だけで全てのことはできるような話を昔聞いたことがあったような気がする。

541 :Socket774:04/09/10 04:47 ID:EFM+PZm4
>>524
> 80286が発表され
> 二年も経ってから出された IBM PC/ATで「わざわざ」1MBの制限をIBMは
> 選択したのです。

コストと供給量考えたら、8088は1981年当時、
まさにそれしかありえない選択肢だったと思うが。

>>539
6502は抜群に速かった。
アップルとアタリはいつもベンチマーク最速。98さえ圧倒してた。
BASICが軽量だったこともあるが。
厨房の時、マイコン仲間で一番出来るヤシが
「6502は本当に組みにくい。Aレジスタ1本だけではきつい」と言っておった。
漏れはアドレッシングの考えは苦手で、
Z80に比べればスカスカの6502の命令表見ても理解できなかった。

542 :Socket774:04/09/10 10:16 ID:wvY9KXKW
>>541
>コストと供給量考えたら、8088は1981年当時、
>まさにそれしかありえない選択肢だったと思うが。

1981年のThePC発表当時は8086/8088しかなかったわけで1MBっていうのは
選択じゃなくて必然。

>>524の話は1984年、ThePC,PC/XTと互換を残しつつ、
大幅な拡張且つまったく新しい機能を携えて登場したPC/ATの話。

その一年後の1895年。80386が登場する(80286は1982年)。
まぁ、21世紀にもなってえらく目の肥えた僕等が、今の知識を元に20年も前の
技術を批判してもしょうがないんだけどね。

そういえば、80386がでてしばらく後、IntelのセカンドソーサだったAMDは
Intel80286の12MHzを大幅に上回る16MHz・20MHzの80286を押し出し
「80386なんかいらない」キャンペーンを展開してたのを思い出した。
ちょとわらた。

543 :Socket774:04/09/10 12:50 ID:EjK5N3nx
NECのV33も、16ビットで使うなら80386はいらない、と言ってたような。

544 :543:04/09/10 13:15 ID:EjK5N3nx
しかし、V33はエグイCPUだったよ。
486同様に主要な命令をワイヤードロジックで実行するんだけど、キャッシュを積んでない!

キャッシュがないので、メモリアクセスをノーウェイトにしないと、本来の性能が出ない。
ところが、メモリアクセスが速すぎて、ノーウェイトにするには高速SRAMが必要という。

メインメモリを全部高速SRAMにする豪勢なマシンなんて、そうそう作れるわけもなく、
結局メモリウェイトによってV33は本来の性能を発揮することなく、ちょっと速いV30で終わってしまった。

545 :Socket774:04/09/10 20:10:24 ID:l/kLr2u1
>>531
512→514→526という流れを見れば、ネタ...というか皮肉以外の解釈はできないと思うが。
こーなんか417ってびみょーに変な人なんだよなぁ。
>506とかポカーンって感じだし

546 :419:04/09/10 21:04:41 ID:p6oxj5Op
いや、皮肉にもなってないし。

547 :532:04/09/10 21:53:55 ID:lYJ9WLcT
有難うございます。勉強になります。

548 :Socket774:04/09/10 23:07:43 ID:ftREefJe
419って偏っているなぁ…主張は理解できるが古臭い組み込み屋の視点を前面に出しすぎじゃねーの。


549 :Socket774:04/09/10 23:23:25 ID:5NlxKzg1
>>548

どーかな。
旧RISC勢のコード効率の悪さがARMのThumbやSH等を読んだのだから
一概にどうこう言う事は出来ないと思うけど。

68kは16bitCPUで32bitCPUをエミュレーションしてるようなちょっと極端な
CISCだと思うし、複雑なアドレッシングモード等、アセンブラでは結局
使いこなせなかった人も多いのでは??
レジスタが汎用だと言っても、その場その場で場当たり的に用途を決めてたら
混乱するのは当然で、r0〜1はテンポラリに使うとか自分なりに定石?を
持ってないとアセンブラではデバッグ等困難になってくる訳で…。

550 :Socket774:04/09/11 00:16:35 ID:63HNIcH+
色々使って来たけど68kは楽だったよ。

551 :Socket774:04/09/11 00:20:12 ID:B/LYeYQq
アーケードゲームメーカーやWSがこぞって68K採用してる事実が
なによりも68Kの使いやすさを物語ってると思うが
セグメントは論外にしても86の汎用性のないレジスタとレジスタの少なさに
なかされたプログラマは多かったんじゃないかな

552 :Socket774:04/09/11 00:22:29 ID:pRJUUK+V
>>548

古臭い組み込み屋はZ80命でしょう。

553 :Socket774:04/09/11 00:50:54 ID:hRLCt2uY
>>551

WSがこぞってってのはど〜だろう??
SUN1が68kってのは有名だけど、当時はNSやZ8000を採用した所もある。
UNIX系OSを移植するなら絶対的なメモリ空間の広さやCコンパイラの出来が
問題なのだから、当時の8086が力不足なのは当たり前だと思うのだがどうか?

554 :419:04/09/11 01:32:37 ID:kSrdGVrr
>>552
Z80は好きだよ。
さすがに命令コード表は忘れてしまったけど。

>>551,553
ゲーム屋の事情は知らんが、WSメーカーは他に選択肢なかったしなあ。

ハイエンド応用には68kのほうが8086より向いているのは否定しないよ。
8086がハイエンドに向いていない→クソ、という評価に抵抗しているだけ。

555 :Socket774:04/09/11 02:14:00 ID:B/LYeYQq
オマエが68Kをクソといってるだけでダレも86をクソなんていってない
自分の過去ログ読み返してみろ

556 :Socket774:04/09/11 02:29:57 ID:I/OfjCDb
>>549
シンボルをレジスタに割り振る議事命令とかあったよ<68kアセンブラ
まぁそんなのなくてもどのレジスタを何に使ってるかコメントに書いておけば大丈夫。

アドレッシングモードは豊富だったけど、直行性のある命令セットのおかげ
で複雑と感じたことはなかったな。

それよりもaレジスタとdレジスタに分かれているほうが煩雑だった。
この辺は直行性にかけるとも言う。
aレジスタは余ってたのに、dレジスタは足りないってことがあって少々
もったいなかった。


557 :Socket774:04/09/11 12:05:39 ID:oDSPMfSM
419は
「8086がクソ」という評価に抵抗しているのか「8086がハイエンドに向いていない」という
評価に抵抗しているのかはっきりさせろよ。

558 :Socket774:04/09/11 15:06:21 ID:XR0PW5Uo
昔はアセンブラ言語でプログラムを書くケースも結構多かったし、コンパイラの
コード生成技術も未熟だったので、直交性とか重要だったけど、今や直交性なんて
無くたってコンパイラはちゃんとコード生成できるからな。

だいたいPentium Proあたりで、x86は名実ともにRISCを追い抜いたのかな?
これはPentium Proの設計の良さ(実行ステージはRISCと同じ)やIntelのプロセス
技術が当然効いているだろうけど、x86の非直交命令セットでもうまくコード生成が
できるようになった、というコンパイラ技術の進歩もあるような気がする。

559 :Socket774:04/09/11 15:34:55 ID:oDSPMfSM
>>558
「直交性がない」ってのは「方言がある」程度の意味でいいと思う。
それが酷くなければ「慣れちまえば関係ない」となる。でも、エンジニアを
育てるとか再利用とか考えるとクソと評価されても仕方がないな。

> x86の非直交命令セットでもうまくコード生成ができるようになった、という
> コンパイラ技術の進歩もあるような気がする。

これは古典的な技術で十分。

正直言ってレジスタが少ない&直交性がないってのはアセンブラレベルで
デバッグをする身にとっては「クソ」と言いたい。条件がちょっと変わるだけ
で同じようなロジックのアセンブラコードがコロコロ変わる。

560 :Socket774:04/09/11 17:34:24 ID:YlqwDKyq
誰もツッコミ入れないの?

>>542
>その一年後の1895年。80386が登場する(80286は1982年)。

(´-`).。oO(1895年?)

561 :Socket774 :04/09/11 22:55:03 ID:z0s2n0Mu
>>560
このスレではそんなわかりきったTYPOに突っ込みいれたり
自分の意見も添えられずにただ煽ったりするような奴は
子供しかいないから、一々反応してると恥ずかしい思い
するんで流すのがいいんだよ ^^

562 :Socket774:04/09/11 23:59:05 ID:mt71QWdv
>558
PentiumPro の時代はまだ Alpha などと比べたらカスだった。
PIII vs. Athlon で 1GHz 競争とか言っていた辺りで整数系で互角くらいになったはず。

FP系は結局今は Itanium2 or Power が最強だから抜いたとは言えないだろ。
(性能を値段で割るってのは、なしね)


563 :Socket774:04/09/12 21:38:51 ID:czud0i4h
80186ってどこ行ったの?

564 :Socket774:04/09/12 23:13:41 ID:5FJ2ULmo
なんか昔のPC板みたいな流れだな。

565 :Socket774:04/09/13 03:15:37 ID:WQcwLxty
>>563
 8086と大差ない。人によっては8086のバグフィックス版、って言う人もいる。
かまってみたいならワンダースワンがお勧めさ。正確にはV30MZだけどね。

566 :Socket774:04/09/13 04:33:21 ID:tGLizChj
>>563
ちょっと前の一般向けルーターにも入ってたよ。

567 :Socket774:04/09/13 04:42:51 ID:9zyYjghv
まぁ、CPUコアとして見ればそうだろうけどね。
周辺を内蔵してるのがイイ!訳だが、PCとの互換性なんてはなから考えてない
漢の設計(V50/V40もそうだが)が嫌われてPCでの採用例が無いってのが
不人気の理由だろうか?

Netgenesis DualあたりでAMD製?を見たりとか、最近でも高速化した互換品が
意外と使われている(x86のライセンス関係の事情もあるだろうけど)かも。

ttp://bb.watch.impress.co.jp/column/review/2003/09/10/

とかね〜。

568 :567:04/09/13 05:00:10 ID:9zyYjghv
80186系、PCでの採用例がないわけじゃないんだよね、それでも…。
国内でもFM16とか…コンパックもあった気が…HP-100LXもそうだね。


569 :Socket774:04/09/13 06:43:53 ID:/3ZbF6eP
V30が186+αじゃなかった?

570 :Socket774:04/09/13 06:57:01 ID:+utJeY8Z
>569
V30は周辺なし。V50が周辺あり。という意味では8086/80186の関係に近いかと思う。



571 :Socket774:04/09/13 13:08:07 ID:nOq3/WjR
Intergraph社製のCLIPPERプロセッサを搭載したワークステーションが
あったが、オプションのDOS互換ボードに80186が載っていると
マニュアルに書いてあった。


572 :Socket774:04/09/13 13:25:43 ID:yf9/vtn/
>>567
まあ組込み用途向けだからな。
命令追加したのも、コードサイズを抑えるためだろう。

しかし、8080→8085みたいな流れだな。


573 :Socket774:04/09/13 19:42:49 ID:Bg3waNjS
手元に何かのボードからはずした80186が数個あるが、
そんなに多くのボードをばらした記憶も無いので
結構使われていたんじゃないかな?


574 :Socket774:04/09/13 22:30:00 ID:CZ5NxiQN
アセンブラ使うと186命令は重宝した。多ビットシフトとか定数乗算とか。
186命令を使っていたせいでJ3100で動かなかったソフトがあった。


575 :Socket774:04/09/13 23:58:30 ID:fweF/tj5
V50といえばNECのPC98系で
採用されてた記憶が……と、ぐぐってみたら
PC9801シリーズとは微妙に違う
HANDY98だったか。

98完全互換で無かった所為か全然売れてなかった希ガス
生まれるには早過ぎたポータブルか。

576 :Socket774:04/09/14 00:49:55 ID:15ibWB3u
186命令懐かしいな…
PC98のソフトで186命令を使用しているのでV30以上でないと動かないってあったよね。

577 :Socket774:04/09/14 05:05:49 ID:gatsmbdc
V30は186命令取り込んでいて、故にPC-98系では186を使った機種がなく、
故に>>567のような感想(採用例なし)になったりする訳ですね。
漏れも186と言えば16βくらいしか思い浮かばず、なんでかなーと
一瞬思ったわけですが。

578 :Socket774:04/09/14 08:25:40 ID:aqKeiNTp
PUSHA と POPA でちょっと感動した経験有り

579 :Socket774:04/09/16 21:04:20 ID:QWiTltXX
68kのmovepみたいなもん?
あれはホントに感動だった。

580 :Socket774:04/09/17 12:36:31 ID:sF2kyzpD
>>579
関数の入り口で、

PUSH AX
PUSH BX
  …

って書くところで

PUSHA

でレジスタ全待避してくれる。待避してくれなくてもいいレジスタまで
待避するから今は使わないだろうね・・・
っていうか、32bitで使えるかどうか知らない PTL

581 :Socket774:04/09/17 14:13:03 ID:f+Ht0yZ1
>>579
movemでは?
これを対スタックに限定した物ですな。

>>580
PUSHADという同機能の命令がありやんす。



582 :Socket774:04/09/17 14:27:11 ID:cLaxocCx
1命令で退避しようとn命令使って退避しようと、Pentium4だと複数のμOPに分解されて
トレースキャッシュに格納されるでしょうから、実行時間は全然変わらないのでしょうね。
x86は【互換性命】 だから、こんな命令が多いのでしょうね。

583 :Socket774:04/09/17 14:57:09 ID:hk0ZpF+5
まぁコード効率は上がるし<582
もともとのPUSHAだって何サイクルもかかるから、実行時間が変わらなくても
べつにかまわんともいう。

584 :Socket774:04/09/17 17:42:36 ID:9Vq/a4sY
>>582
>>582
トレースキャッシュに格納される命令は数μOPからなる簡単な命令だけで、
複雑な命令はトレースキャッシュには格納されずマイクロコードROMから
チンタラとμOPが発行されます。

http://www.intel.co.jp/jp/developer/technology/itj/2001/q12001/articles/p05_microarchitecture.htm
> 複雑な命令が現れると、トレース・キャッシュからマイクロコード ROM に処理が移り、
> 演算の実行に必要な μop はマイクロコード ROM が発行します。
> マイクロコード ROM による μop の発行が完了すると、プロセッサのフロント・エンドは
> 再びトレース・キャッシュから μop のフェッチを行います。

http://www.intel.co.jp/jp/developer/technology/itj/2002/volume06issue01/art01_hyper/p05_front_end.htm
> 複雑な命令が現れると、トレース・キャッシュはマイクロコード ROM に対してマイクロコード命令ポインタを送ります。
> するとマイクロコード ROM コントローラが必要なμop をフェッチして、再び制御をトレース・キャッシュに返します。

585 :Socket774:04/09/17 21:23:22 ID:+MsruEPt
x87はいつ滅ぶんだろうなぁ・・・

586 :Socket774:04/09/17 22:19:10 ID:HgezzR66
486以降はPUSHAみたいな多機能命令は使わない方が速くなると聞いた事がある。
GCCでは386最適化を指定するとコードがコンパクトになる。

Pentium4最適化を指定するとPentiumPro向けと違ってrep movsとか使うよう
になっているみたいなんで、Pentium4以降は傾向が違って来てるかも。


587 :Socket774:04/09/17 22:56:33 ID:gF+1+zu2
x86命令をμOPにデコードするからなぁ。ICCが吐くコードとGCCが吐くコードの違いはそのあたりのチューニングでしょ?

588 :Socket774:04/09/17 23:01:44 ID:EKU+7kZ/
>585
x86-64はx87非推奨

>586
最近のCPUはいくつかのストリング命令を特殊なモードで実行するらしいね

589 :Socket774:04/09/18 00:34:51 ID:VHjR9dF3
x87は時代遅れとかいってても実はキチガイなデコーダの所為で
SSE2 Scalarとほとんど実行速度は変わらないという事実。
まあレジスタが倍増した分の効果はあります。
アセンブリも人間が読めるようになったし。


590 :Socket774:04/09/18 00:39:22 ID:7VPlpoff
意味もなくスタックアーキテクチャになってるのは罪だと思う

591 :Socket774:04/09/18 02:15:20 ID:Bjn9XUOk
当時使えるトランジスタ数で安くすませるためにスタックアーキテクチャが採用されたそうです。

592 :Socket774:04/09/18 11:40:26 ID:oddnnU/h
次に作る時はスタックは無くして欲しい。

593 :Socket774:04/09/18 12:37:45 ID:/v/5Zj5I
>>592
その次が、IA-64のはずだったが・・・。

IA-64はスタックではないし、レジスタは128本。
単に128本と言うと大いに誤解があるけど・・・。

594 :Socket774:04/09/18 12:49:41 ID:hAt3bd/f
x64のFP計算は確かSSE推奨だよね。

595 :Socket774:04/09/18 14:43:44 ID:RLjzPDdl
>359
>アイピーフレックスのヤツかい?
>FPGA使いから見ると、ツールまだちと高いような。
>ASIC屋さんはどう見ているのかな?

最初は脅威に思ったが、まだまだ消費電力やチップサイズを考えると
ASICからとってかわる事は無いんじゃないかなと思う。
棲み分けが出来てASICは生き残るんじゃないかな。
または、ASICの中で柔軟性を持たせるところだけを
採用する事があるかも。

596 :Socket774:04/09/18 16:03:51 ID:7VPlpoff
>593
IA-64のレジスタは基本的にスタックとしても使う(スタックじゃないものもあるけど)
スタックオーバーフローをOSが処理できるのでx87の時代より洗練されてる

597 :Socket774:04/09/18 17:43:38 ID:oddnnU/h
>>593
しかし、そのIA-64は既存のx86との互換(ry

598 :Socket774:04/09/18 21:35:43 ID:RLjzPDdl
>359
>アイピーフレックスのヤツかい?
>FPGA使いから見ると、ツールまだちと高いような。
>ASIC屋さんはどう見ているのかな?

ツールが高いかは置いといて、
RTLを介さずにC言語から直接にコンフィグデータが作れるのと、
(動的な再配置)
ツール自体にかなりのノウハウがあるのではと考えられる。

599 :419:04/09/19 00:05:44 ID:eZPQAXaG
>>590
使える命令フィールドがなかったらしい。
コード密度のためだね!

600 :Socket774:04/09/19 02:19:59 ID:80A6fq0D
 スタックに積むのって、FPU積んでないCPUもあったからだと聞いてるけど。
FPU積んでないのは未実装命令例外かなんかでFPUをエミュレーション
してたんでしょ?。そうなるとスタック、というかメモリに積むしか方法が無い。
当時としては当然の方法だったと思われ。


601 :Socket774:04/09/19 02:20:52 ID:2wAzpiCZ
>600は何か勘違いしてる希ガス

602 :600:04/09/19 02:48:55 ID:80A6fq0D
 ??、ってそうか。スタックを使用するアーキテクチャって事か。スマ・・・。

 その辺についてはあまりわからない。でも、みんなそうだった訳で、当時は
それが一番現実的だったんじゃないかな?とは思う。
プロセッサとメモリの動作速度の差が今ほど無かった頃の話だし。

 いまはメモリにアクセスするハメになったら負け、って感じだから、スタック
なんて言語道断、VLIWって形でCISC的高密度(?)命令を取り込む方向に
トレンドが移ってるのかな。まぁ今のアーキテクチャではレジスタをスタックに
退避なんてしてたら何クロックかかるのやら、って話もあるな。

  って、あんま書くとボロが出そうだ。勘違い、話の腰折スマソ。



603 :Socket774:04/09/19 11:46:22 ID:8xgG6k9w
>>602
ここで言うスタックとはメモリスタックの事ではない。
レジスタの指定方法がスタック方式になっているということ。
http://www.nk.rim.or.jp/~jun/lxasm/asm11.html

604 :Socket774:04/09/19 17:50:49 ID:tI4Glb09
携帯端末でデファクトになっている、ARMコアって
何がそんなに良いのかな?

605 :Socket774:04/09/19 18:07:30 ID:CpqrWXo6
>>604
ttp://www.atmarkit.co.jp/fpc/rensai/zunouhoudan015/whats_arm_01.html

606 :Socket774:04/09/19 18:09:32 ID:+pAiMsPL
>>604

最大のメリットは基本的にはIPでの提供だったと言う事。
携帯電話屋が自社の設計に取り込む為には必要な特徴だった。
当初ヨーロッパでちょうど良い処理能力を持ち、尚且つ入手性が良く
低消費電力なCPUはARMしか無かった…という事情も大きいらしい。

そして、IPでの提供だったという点が多くのベンダからの製品提供を呼び
それがコストダウンに繋がり、安価かつ多様な半導体製品が採用例を
増やし…以下ループ。

607 :名無しさん◎書き込み中:04/09/19 19:02:15 ID:GdO1j6Bn
時代遅れになったら直ぐに製造を中止して実用的で格安な1G以上程度のCPUを大量に作らないメーカーが最大の悪だとユタ州率大のマイケル教授は語った。

608 :Socket774:04/09/19 19:33:49 ID:R18RmbAe
>>605の記事を書いた人
Massa POP Izumida氏の紹介が面白いぞ。
> 日本では数少ないx86プロセッサのアーキテクト。
> 某米国半導体メーカーで8bitと16bitの、
> 日本のベンチャー企業でx86互換プロセッサの設計に従事する。
> その後、出版社の半導体事業部を経て、
> 現在は某半導体メーカーでRISCプロセッサを中心とした開発を行っている。

Zilog→VMテクノロジー→ASCII→?
というバレバレの経歴。

609 :Socket774:04/09/19 23:18:05 ID:LqThNtPF
>>608

最後が?じゃ「バレバレ」とは言えないべ。

610 :602:04/09/20 21:11:45 ID:6teIU8bc
>>603

 おーThx。知ったかぶりして書いて恥じ書いちゃった。x86命令ってあんま知らない
んだよね。昔x86アセンブラの解説書をちょと読んだだけです。

 なるほど、こんな面倒な構造をしてたのか・・・。こうしてみると、なるべくして
なったとはいえ、x86は命令アーキテクチャを変えたほうが将来の為になる
様な・・・。


611 :Socket774:04/09/20 21:34:17 ID:9zE9eQxt
>>610
既にSSE2命令が定義されています。
AMD64やEM64Tなど64bit環境では、x87ではなく、SSE2の使用が推奨されており、
スタックアーキテクチャとはお別れの方向の予定。

612 :Socket774:04/09/21 00:15:38 ID:RZKg3XgF
>>600
MC68000 でも、例外で飛ばしてエミュレーションしてたよ?だから別の理由だ
と思う。Inside Intel に、x87 のスタック方式は後悔してる、みたいな設計
者の話がのってたような気がするが、別の本かも。
昔はコンパイラの最適化技術がスタック用のが進んでいた、という話も聞いた。


613 :Socket774:04/09/21 00:17:43 ID:T8slowDw
ワロタ。
もっさりとしたCPUはどこのメーカー製ですか?
http://labs.nttrd.com/cgi-bin/index.cgi?m=q&q=%A4%E2%A4%C3%A4%B5%A4%EA%A4%C8%A4%B7%A4%BFCPU%A4%CF%A4%C9%A4%B3%A4%CE%A5%E1%A1%BC%A5%AB%A1%BC%C0%BD%A4%C7%A4%B9%A4%AB%A1%A9

614 :Socket774:04/09/21 00:53:20 ID:Hta44XLl
もうハンドアセンブルは無理ですかね・・・

615 :Socket774:04/09/21 04:43:12 ID:Ixnzc4S4
>>610
まてよ、スタックアーキテクチャなのは x87 命令であって、
x86 の問題じゃない...

こゆのは無粋なツッコミとして処理されるのかな

616 :Socket774:04/09/21 06:03:03 ID:LS1WY01+
x87も広義のx86に含まれるということで。


617 :Socket774:04/09/21 17:59:27 ID:Ixnzc4S4
んじゃ、ついでに SSE2 も広義の x86 に含めてクレ

618 :Socket774:04/09/21 19:44:45 ID:LS1WY01+
>>617
おk
でも「標準」の浮動小数点演算命令はx87命令のままだけどな。
AMD64ではSSEが標準といっていいだろうけど。

619 :Socket774:04/09/21 21:23:10 ID:ZPXQ4vsd
x87がスタック式なのは、コードサイズ(=メインメモリ使用量)をケチるためと予想してみる

620 :Socket774:04/09/22 01:13:42 ID:cvFsrgYS
スタック式によって回路規模を小さくできた
と何かで読んだ。

621 :Socket774:04/09/22 03:36:37 ID:NFeryBLt
80287持ってた。
浮動小数点演算使った月の満ち欠けの計算を
486SX/33と80286/12+80287で動かしたら、
後者の方が断然速くてびっくりした。

622 :Socket774:04/09/22 13:38:27 ID:7g7QV6t7
>621
たしか486SXって浮動小数点演算ユニットが殺してあるんじゃなかったっけ?

623 :Socket774:04/09/22 14:27:25 ID:GLxgRS2W
そして、i487を買わせて2重に儲けるという仕組み。
しかも、ODPが出て悔しい思いをさせるという、憎さ。

624 :Socket774:04/09/22 16:57:52 ID:a7y3h9BM
>>622
487を差すと、486SXは殺されて代わりに487がCPUとして動き出すという仕組み
でしたね。集積技術がこの頃はかなり上がって、FPUを内蔵してしまった方が
速度が上がったからでしょう。私は初めから486DXだった年代ですけど、すぐに
速度に不満が出て486DX2を差しました。

これはFSB : コアクロック=1 : 2 という可愛いものでしたが、今では 1 : 10 とか
平気でやってますよね。その代わりL2キャッシュを大容量化してできるだけ
レイテンシを隠蔽してますが。Dual Channelメモリにしたり、コアから見たメモリ
バンド幅の復権に現在は力が入れられているようです。

625 :Socket774:04/09/22 19:59:02 ID:cvFsrgYS
幅よりレイテンシが大きいな

626 :419:04/09/23 01:06:07 ID:rFSERpUd
所詮最後はバンド幅

627 :Socket774:04/09/23 16:20:02 ID:Uy3fQGsg
486のキャッシュは(一部を除いて)ライトスルーだから、
クロックの倍率を上げても性能が伸びないんだよね。

同じFSBで、2倍、3倍、4倍、6倍を試したけど、3倍以上は体感速度が変らなかった。

628 :Socket774:04/09/23 16:27:08 ID:RMHy9rtN
486 に FSB/BSB があるのか。

まあ、K8 の HTL が FSB とか呼ばれるような時代だしな

629 :Socket774:04/09/24 22:42:43 ID:1FW1Zl1z
BX時代まではベースクロック=FSB=メモリクロックと勘違いしてたヤツも珍しくなかったしね。

815の頃からメモリクロックは非同期も当たり前になったが
今でもベースクロック=FSBと考えてるやつは珍しくない。

そういうヤツはFSBという言葉の意味とか、あまり深く考えないタイプなんだろうなと思う。

630 :Socket774:04/09/24 22:50:34 ID:H4wMli5r
BX か、よい響きだ。

631 :419:04/09/25 00:34:16 ID:4W9VVvsr
モーリス・ウィルクス賞のCall for Nominationがきたが
欲しい人いる?

632 :Socket774:04/09/25 04:36:08 ID:GSo5dmkf
>>629
おまいもあまり考えていないように「見える」が。

633 :KOCA:04/09/25 11:34:49 ID:sRwB8juP
ど素人でごめんなさい。今勉強中の身です。
気になったことがあるので教えて下さい!
CPUアーキテクチャが異なると同じMacintoshでも互いのプログラムは本来動きませんよね?
でも、Apple社は1994年にCISCからRISCに変更してこの2つの異なるアーキテクチャマシンを同時に販売していたように思います。
Apple社はどのようにしてこの問題に対処したのですか?
教えて下さい!お願いします!

634 :Socket774:04/09/25 11:48:10 ID:2TqPhdVN
>>629
EDO DRAMまでは普通に非同期だった
SDRAMになってから、ようやくFSB=メモリクロックとなったわけだが(シンクロナスだからな)
そのときは既にCPUクロック≠FSBだった。あと長い間FSB=メモリクロックだったのは
Intel系のチップセットで、VIAなんかはPC133が出る頃にはFSB≠メモリクロック
だった気がする。

635 :Socket774:04/09/25 12:17:11 ID:jZDnAtqw
>>633
68kからPowerPCだっけ?OSがエミュレートしていたと思ったが?
どっちにしてもx86では無いですな…MACはさっぱりワカラン

636 :Socket774:04/09/25 12:20:32 ID:N5wMW86u
エミュだとは聞いたが・・・
結果動かないのも出てきて、
古くからのマックファンが離脱する理由の1つとかも聞いた。
本当のところはしらんが。

637 :Socket774:04/09/25 12:28:18 ID:fH/ps6eZ
>>633
680x0からPowerPCへの移行はエミュレーションで行った。
しかしエミュレーションの出来はそんなによくなかった。
Appleは性能向上のためには、互換性を大きく犠牲にするメーカー。
それでもMacを支持し続けるユーザーは、よほど好きなのか、単なる馬鹿なのか。

638 :Socket774:04/09/25 13:32:18 ID:GSo5dmkf
>>637
単なるバカだと思う。
持っているだけでうっとりしているような。

639 :Socket774:04/09/25 13:56:11 ID:2TqPhdVN
>>637
性能向上以外でも機能追加のたびに互換性がなくなっていたりもするし
あの会社には互換性を維持する考えが、これっぽちもないんだろうね

640 :Socket774:04/09/25 14:24:03 ID:SWXEwn+6
>>639
それはItaniumのことか?

641 :Socket774:04/09/25 16:01:49 ID:BrdwxjqG
 MACユーザーではないが、ある程度は仕方が無いんじゃないかと思う。


 68k系MACからPowerMACへはエミュレーション。ただ、エミュの出来が悪いと
いうか、エミュムログラムがPPC???(最初に出た奴。なんだったか忘れた)の
キャッシュ容量に徹底的に最適化されていたから、その後出た
603(キャッシュが半分)搭載のMACではぜんぜん性能が出なかったらしい。
で、キャッシュ倍増のPPC603eとか言うのが出たって話。(識者詳細PLZ)


 どこかでダイエットしなくてはならないわけで、そのサイクルの問題だと
思う。MACの場合宗教的、選民的思想を持っているユーザーも少なくない、
つまり「MACでは」許される行為だと思う。


642 :Socket774:04/09/25 16:44:33 ID:EIxVo6E7
>>640
速度はともあれ、Itaniumは互換性を維持してたよ。
ソフトウェアによるエミュレーションではなく、
ハードウェアによるエミュレーションなのだから。

命令セットを変えちゃった、という点では互換性は維持してないけど、それはx64でも同じこと。

Itaniumで、MS-DOSが動いた時には、その無意味な努力に感動しちゃったよ。
もう、MS-DOSなんて動かなくてもいいのに・・・。

643 :Socket774:04/09/25 17:45:30 ID:ife9KiJU
>>642
そこまでされると、逆になあ。
一度ぶっこわして0から新しいアーキテクチャにしてくれと言いたくなる

644 :Socket774:04/09/25 17:52:26 ID:uDgy/gs8
>>637
Sunも68k(〜Sun3)→SPARC(Sun4〜)と「互換性を大きく犠牲」にしたわけだが。
Sunユーザもアホですか?宗教的選民的思想の持ち主ですか?


645 :Socket774:04/09/25 18:10:35 ID:GSo5dmkf
>>644
それでもサンはすばらしい!
とか言っちゃう香具師はアホじゃないの?

646 :Socket774:04/09/25 18:44:14 ID:2TqPhdVN
>>644
知らんかったのか? Sunもたいがい互換性無視な会社だぜ
CPU変更以外にもSunOS 1.x→Solaris 2.xへの強引な移行
Javaのバージョンアップ時の非互換なんてのは結構酷い

647 :Socket774:04/09/25 18:56:16 ID:jZDnAtqw
winユーザーだからよくワカランがwinはバイナリ配布が当たり前だけど
Sun とかそこら辺はソース配布もしていて互換を重視するぐらいだったら
パフォーマンスを重視して再コンパイルした方が良いって感じだったんじゃないの?

648 :Socket774:04/09/25 19:01:12 ID:CR2KkQoe
unix WS だってバイナリ互換は重要ですよ。
特に商用ソフトなんかが絡むと基本的にバイナリだし。
OS も商用のやつはソース配布じゃないでしょ。

まあ windows よりも "なんとか乗りきる" ユーザーが多いのは事実だが。

649 :Socket774:04/09/25 21:34:25 ID:f+FCT6BL
>>628
だね。

FSB:バックサイドバス=二次キャッシュ専用のローカルバスに対比する、
 フロントサイドバス。
チップセット経由で二次キャッシュアクセスするという486では、
バックサイドバスなど実在しないからFSBという呼び方は不的確。

まあ、HTとメモリバスの二つしか持たないアスロン64でも、やはり
FSBという呼び方そのものが現実離れか。

フロントサイドバスは、CPUとチップセットの間のデータ転送だったが
(二次キャッシュ内蔵タイプのCPUでは)...

バックサイドバスを持たなかったPPC604は、それゆえに、
本来の性能と搭載機(Mac)の性能がかけ離れて不幸だった。
アポーが、CPUボード側に二次キャッシュを積んでやってたら、
G3>604なんて性能にならなかったろうに。
(PPCはスレ違いだけど。スマン。)

650 :Socket774:04/09/25 21:43:52 ID:f+FCT6BL
>>633
>>635 の言うとおり、
MacOSの内部に、68kエミュレータを積んでたわけ。
いちおう、68kエミュ自体は、PPCの二次キャッシュに収まってしまう程度のサイズだったが、
どうしても速度低下は避けられなかったため、
エミュレーションが必要な動作に限っては、
「68kと同等の速度を発揮するためには、2〜3倍のクロックのPPCが必須」
だった。つまり、PPCの高速性を活かすには、PPCネイティブのアプリが不可欠だった。

当初は、MacOS本体ですら、内部の大半が68kコードで書かれていたようで、
OS本体ですらエミュ上で動作していた。

完全にPPCネイティブになったのは、MacOSXが最初。
もっとも、最高クロックの68kに比べて3倍以上のクロックを持つPPCが
わりと早くに普及したため、
「PPCより、古い68kの方が速い」という逆転現象はすぐに(数年で)解消した。

互換性問題は、わりと多発してはいる。
MacOS7世代になるときにも、互換性問題はあったし。
ま、Winでも、ノートンやら、MacDrive(マイナーなアプリだが)やら、
一部の特殊なアプリに限っては互換性問題がよく起きたものだったが。

Winにおける16ビットコード残留問題と、
Macにおける、68kコード残留問題は、
質的な差はあんまりないと思う。
どっちも解決に要した時間が長すぎることも含めて。

651 :Socket774:04/09/25 21:57:21 ID:f+FCT6BL
>>641
最初のPPCは601。
マイクロアーキテクチャの世代が486に近い(?)
命令/データ混在の32kbの1次キャッシュを持ち、バックサイドバスはない。
コアクロックと外部クロックの比は2〜3倍程度。

次の603は、キャッシュ容量が小さいことや
消費電力低減機構を持つこと以外は、601と大差がない。
1次キャッシュが、命令・データそれぞれに8kbずつとなったこと、
実行ユニットのうち、整数演算部分とメモリ制御部分が
分離されたことぐらいの違い。かな。

が、データキャッシュとして使えるサイズが、601と比べて格段に小さくなったのが弱点か。

なお、601や603搭載のMacは、大多数が2次キャッシュを持たなかった。
特に、603搭載型では、2次キャッシュをオプションとしてすら用意しない機種が主流で、
あまりにも冷遇されすぎていた。

いちおう、Pentiumなみの世代と思うんだけどなあ。

604:命令実行の並列度では、PentiumProよりは
アスロンに近いと思う。
ただ、内部構成が複雑すぎてクロック向上に手間取ったか。
68040と同様の苦労に陥ったかも?
初期モデルでは、命令・データとも16kbずつだったが、
68kエミュの動作速度を考えたか、すぐに32kbずつに拡張された。

652 :Socket774:04/09/25 22:02:19 ID:f+FCT6BL
はじめてバックサイドバスを持ったPPC G3が出るまで、
アポーはCPUボードに2次キャッシュを載せず、
チップセット経由(?)での2次キャッシュにこだわり続けた。
MacのCPUバスが最大でも50MHzにとどまっていたうえ、
メインメモリがFP-DRAM止まりだったため、
メモリアクセスの遅さゆえ、CPU性能が遊び続けていた。
603+バックサイドバスにすぎなかったG3で、
命令の並列実行度が非常に高いはずの604を大きく上回る性能が出た原因は、
アポーの設計の稚拙さにすべての原因があった。

しかし、この状況を見た設計者が、
604ベースのG3プロセッサを撤回してしまったため、
並列実効性能の高いタイプのPPCは大きく先送りされることとなった。

653 :Socket774:04/09/25 22:05:15 ID:f+FCT6BL
>>642
いっそ、「互換性はCMSを使って維持」にとどめたってヨサゲ。
(インテル製品ではないけど>CMS)
互換性維持のための労力が過剰だったから普及が遅れてるんでは?

654 :Socket774:04/09/25 22:22:39 ID:IpXPNBRZ
>>653
まぁ、互換性がある商品を出しつづけてるから売れてるPentium系がある訳で。
実際の所、過剰なまでの互換性維持にこだわってるのはMSだろう…
ttp://www.radiumsoftware.com/0406.html#040624


655 :Socket774:04/09/25 23:26:29 ID:KWWnupwu
>>654
これは知らんかった…。ま、こんなことをしているから重く大きくなるわけだが。

656 :Socket774:04/09/26 00:15:54 ID:1ATu1q0c
>653
いまはIA32-LEをつかってソフトウエアでエミュレーション
する方向に向かってるよ


657 :Socket774:04/09/26 00:35:49 ID:o828CwJp
>>654
互換性は大切でしょう。
IA-64がコケたのは、リリースが遅れることにより、
MercedのIA-32の実行速度が同時期のPentium!!!に並べなかったこと。

広義の互換性には、ユーザが何のデメリットもなく移行できること、というのも含まれると思う。

658 :Socket774:04/09/26 01:27:42 ID:TzIf8Hdh
>>646
>知らんかったのか? Sunもたいがい互換性無視な会社だぜ
んなことはどうでもよくて、聞きたいのはこっち。
> Sunユーザもアホですか?宗教的選民的思想の持ち主ですか?

>641でいうところの「(宗教的選民的思想の持ち主であるところの)MACでは許された行為」
はその遥か前にSunがやっていたことなのだがねぇ。
Sunのユーザも同じように「宗教的選民的思想の持ち主」であったか聞いてみたいわけよ?

>CPU変更以外にもSunOS 1.x→Solaris 2.xへの強引な移行
強引ってほどじゃないでそ。Solarisが2.5.1か2.6ぐらいになるまでは
平気でSunOS4.xつかっている連中は山のようにいたし、OSも出荷されていた。
Solaris2.xへの移行ガイドもまめに作っていたし、ツールも用意していた。

おまけにSolaris2.xでもSunOS4.xバイナリはふつーに動くしな。
#おかげでうちのサイトではSolaris9でSunOS4.0.3時代にコンパイルした
#NEmacsやらkterm 3.xやらがそのまま動いてたりする(w

まぁさすがに68kバイナリはSPARCでは動かないわけだが。

659 :Socket774:04/09/26 12:01:21 ID:uF1pe2q6
ISAの互換性とAPIの互換性をごっちゃにしちゃいかんだろう。

Win32APIが糞な事とプログラマが馬鹿な事がIA-64への移行の
障害になっていると考えられなくもないんだけどね。

Win16→Win32で苦労したはずなのにその経験が無駄になって
いるとも言えるよなぁ…

660 :Socket774:04/09/26 18:05:21 ID:E/W8AFEf
>>659
では具体例をあげてみてください。

661 :Socket774:04/09/26 18:49:20 ID:gTHu4fD8
>>660
タダで安易に有用なデータが得られると思うなヴォケ。
自分でぐぐれ。このクレクレ厨が。

662 :Socket774:04/09/26 18:57:56 ID:teRRQG+y
>>656
しかし初めからソフトでx86互換にする予定じゃなかったからIA32-ELはOS付属にするしかない罠
でアポーと違ってIA-64CPUはIA32-ELがないOSでもとりあえずx86動くように
もうほとんど使わないx86ハード切れない悪寒
盲腸としてこれからもかなり残るっぽい
互換性より性能とったはずのIA-64に早くもお荷物がw

663 :Socket774:04/09/26 19:04:17 ID:teRRQG+y
>>657
いっそのことMercedキャンセルしてMcKinley(←スペルあってる?)勝負の方が
「IA-64は遅い」「期待外れ」とかの悪いイメージつかなかったような

664 :Socket774:04/09/26 19:25:54 ID:E/W8AFEf
>>661
いや、なんか出任せっぽいと思って

665 :Socket774:04/09/26 21:47:45 ID:GZTDokdN
今更ながら >>654 のリンク先を読んだ。simcityのバグを回避するコードを埋め込んでまで
互換性を重視したというのはビックリした。

666 :Socket774:04/09/26 22:44:10 ID:SlYAI/kx
>>662
いっそBIOSに潜り込ませてしまったら?>IA32-EL
んで、必要ならOS側で、より良いエミュに置き換えて使う。


667 :Socket774:04/09/26 23:18:25 ID:mocftnbN
Mercedは本当に短命だったね。

当初の量産出荷の予定が1999年だったのに、
1999年にはサンプルしか出ず、
ようやく発表されたのが2001年の5月末。

そして、McKinleyが2002年4月末に発表され、7月上旬には量産出荷開始。
同月下旬にはMerced搭載機がどこかで廃棄処分になり、
ジャンク屋の店頭に並んだのを2ちゃんねらーが捕獲。

Mercedを発表してから11ヶ月でMcKinleyを発表だもんな。
しかも、クロックが速いとかバスが速いというだけでなく、演算ユニット数が違う。
もちろん、コンパイラの最適化コードも違う。
McKinley以降は演算ユニット数など内部構造には手をつけてないから、
なおさらMercedはプロトタイプ臭いよね。

668 :Socket774:04/09/27 00:08:05 ID:aaGDR2Us
Itanium、Itanium2はVLIWだと言われている。Intelもそう言っている。
しかし、とうとう鯖メーカーはItaniumを使うのをやめだしたようだ。

ttp://www.geocities.co.jp/SiliconValley-Cupertino/6209/wadai04/20040925.htm

そんなにx86-64にこだわるんですかぁ?って感じ。

669 :Socket774:04/09/27 00:20:17 ID:YiuCP6Gd
>>650
> Winにおける16ビットコード残留問題と、
> Macにおける、68kコード残留問題は、
> 質的な差はあんまりないと思う。
> どっちも解決に要した時間が長すぎることも含めて。

そうかな?
それに、Win3.1 -> Win95 ではメモリー管理やプロセス管理が大幅に改善された。
Mac では 68k -> PPC では基本的に CPU が変わっただけだし。
Win における 16bit コードは一応ネイティブだしね。
当時 Office アプリのベンチで Mac と Win95 では数倍速度差があった。
MS Office はおろか、Loutus、クラリスのも含めて。

670 :Socket774:04/09/27 00:25:04 ID:YiuCP6Gd
>>668
ちょっと文意が不明。
Itanium、Itanium2 は VLIW なのはまちがいないよ。


671 :Socket774:04/09/27 00:35:33 ID:NNRK0oga
VLIWとはいってもItaniumは変わり種。
もしかしたらVLIWの定義からはずれるかも。

672 :Socket774:04/09/27 00:40:03 ID:YiuCP6Gd
>>669
> >>650
> > Winにおける16ビットコード残留問題と、
> > Macにおける、68kコード残留問題は、
> > 質的な差はあんまりないと思う。
> > どっちも解決に要した時間が長すぎることも含めて。

WinNT は Win95 より前に発売されていたね。

673 :Socket774:04/09/27 00:42:38 ID:YiuCP6Gd
>>671
VLIW の定義とは?
一つの WORD に 沢山の命令を並べるって点で VLIW してるんじゃ?
バンドルって概念を使ったら VLIW じゃなくなるとでも?

674 :Socket774:04/09/27 01:13:58 ID:ZP6SLty6
>>667
それ俺だ。

むしゃくしゃして買った。
64ビットなら何でもよかった
今は後悔している

初代Itaniumがヤバい代物だとは承知してたけど、
どれくらいヤバいのか経験してみたかったんだ。
もう飽きたので暖房として使ってます。はい。

675 :---:04/09/27 01:15:04 ID:VQw7zfps
EPICは純粋なVLIWとはかなり違うかと。。
VLIWは、超長命令語(IA-64でいうバンドル)内に格納できる命令の種類(FP Int etc.)と位置が固定されいまつ。
EPICは、バンドル内に多種の命令の組み合わせが存在できまつ。といっても完全に自由ではないけど。
それから、EPICは複数のバンドルをスーパースカラ的に実行できる拡張性ももっていまつ。

676 :---:04/09/27 01:16:30 ID:VQw7zfps
うわっ、IPFの話が続いてたんでItaniumスレと間違えますた( ノ∀ノ)

677 :Socket774:04/09/27 01:28:59 ID:epv2+ACM
>>668
>Itanium、Itanium2はVLIWだと言われている。Intelもそう言っている。
VLIWだろ。それにだ、仮にVLIWじゃないとしても、

>しかし、とうとう鯖メーカーはItaniumを使うのをやめだしたようだ。
の理由にはならないだろ?
鯖メーカがどのCPUを使うか判断する基準が
VLIWか否かだとでも云いたいのか・・・

678 :Socket774:04/09/27 01:46:37 ID:oy4Ou2mO
>>675
それを言うなら「純粋なVLIW」なんて存在しないといえるかも。
適当に空きスロットを詰めてやる機構が無いとコード効率悪くてしょうがないからなぁ<VLIW
バスやキャッシュも無駄に食いつぶされちゃうしね。

いまどきのVLIW(…といってもEPICとFRVしかしらんが)ではごくごく当たり前の機構だよ<空きスロットを詰める

679 :Socket774:04/09/27 02:04:45 ID:oy4Ou2mO
>>668
そうそう。
x86-64 = AMD64 ≠ EPIC な。

680 :Socket774:04/09/27 07:49:12 ID:I7DC2aRJ
>679
>668 がゆんゆんしてると思ったらそんな勘違いをしていたのか!?

681 :Socket774:04/09/27 08:53:48 ID:epv2+ACM
>>668
お前にこのスレは早すぎたようだ。
1年ROMってろ。

682 :Socket774:04/09/27 13:15:47 ID:EcSsMMXp
>>658
おっと失礼。方向の違うレス返してたんだな

で、俺の認識でしかないけど、好んでSun使ってマンセーしてる奴はやっぱ
どこかおかしいと思う。とくにマクネリが好きなんていったら相当やばいだろう。
ただパソコンとちがってサーバ/WS系だから、好きで使ってるわけではない、
他に選択肢がなかったという理由でSunユーザになってる奴のほうが大多数だろう。
なのでバカばっかりではないと思われる。

683 :Socket774:04/09/27 14:01:58 ID:aaGDR2Us
>>677
>>しかし、とうとう鯖メーカーはItaniumを使うのをやめだしたようだ。
>の理由にはならないだろ?

別に理由にはしてません。しかしは、独立語のつもりで使いました。前の文に
係っているわけではない。

>>681
お前に命令される筋合いはない。

684 :Socket774:04/09/27 15:02:12 ID:oy4Ou2mO
>>682
>で、俺の認識でしかないけど、好んでSun使ってマンセーしてる奴はやっぱ
>どこかおかしいと思う。とくにマクネリが好きなんていったら相当やばいだろう。
あっち方面のマンセーは会社でなくて人につくから。

>ただパソコンとちがってサーバ/WS系だから、好きで使ってるわけではない、
>他に選択肢がなかったという理由でSunユーザになってる奴のほうが大多数だろう。
>なのでバカばっかりではないと思われる。
そういう環境でもCPU変更というアーキテクチャ変更は可能なのだから、
CPU変更という大規模なアーキテクチャ変更が可能かどうかは信者イパーイかどうかと関係ない。
Macが特別なんてことはまったくない(=>641の否定)

ということでオーケー?

685 :Socket774:04/09/27 15:04:36 ID:oy4Ou2mO
>683たん
x86-64 ≠ Itanium
ってのは理解してくれたかな?

686 :Socket774:04/09/27 15:18:43 ID:+lgnGf9n
>>685
当然理解してます。というかItanium鯖も触ってます。
Itaniumは内部にx86エミュレーション機能を内蔵してますが(80386以降の
仮想86モードのような感じ)、P4になってからのいくつかの重要な命令を
サポートしてないのと、エミュレーション速度も遅いのとで、ネイティブでしか
使われてないようです。

VLIWという事でコンパイラも複雑に高価になりがちだし、Itanium(2)も発熱量
がすごく大きく単価も高いのでなかなか拡がらなかったようですね。

その点x86-64はレジスタが大幅に増えたものの基本的な命令セットはx86と
よく似ており、PUSH/POP命令をREXプリフィックスに置き換えた以外はその
まま使えるので(とは言うもののレジスタが増えたのでメモリ-レジスタ間のmove
はかなり減ると思う)コンパイラ作成者にとっても楽なんでしょう。Athlon64なら
単価も大幅に安いし。

687 :Socket774:04/09/27 15:21:00 ID:EcSsMMXp
>>684
当時のSUNの場合はリコンパイルすればOK、全く問題なしって文化だからな
コンパイルもできないような奴がSUNを使ってるわけがない時代だったし

なのでSUNがそういう状況だったからという理由で、
Appleの場合もそうではないとはいえないと思うぞ

688 :Socket774:04/09/27 15:57:28 ID:oy4Ou2mO
>>687
あー、要するに信者多いとか関係ないぢゃん。っていいたいだけ。
Macの話をすると必ずMacは特別って言いたがる奴が出てくるんで。
それってどうなのよと。

どうも件の人そういう過去に行われたCPU変更例を知らないようだし。
WS界ではあの時期に大体のマシンが68k→RISCっていう変化を経験しているんだけどね。


689 :Socket774:04/09/27 16:01:38 ID:oy4Ou2mO
>>686
てーことは>668は全部の行がそれぞれまったく関係ないってことなのか?
そりゃいくらなんでも支離滅裂だろう。

やっぱり>681だな。

690 :Socket774:04/09/27 16:27:26 ID:+lgnGf9n
>>689
だから貴様のようなどこの馬の骨とも知れない香具師に命令される筋合い(ry

691 :Socket774:04/09/27 16:40:25 ID:ZP6SLty6
IA-64の性能がブッチギリに良ければ、色々我慢して使うんだけどねぇ。

692 :Socket774:04/09/27 17:09:40 ID:VQw7zfps
恐れながら私も>>668の文意が未だに読みとれないのですが…( ノ∀ノ)
できれば、もう一度わかりやすく書き直して欲しいでつ。
それから、IntelがIA-64がVLIWって公言してたことありましたっけ?

693 :Socket774:04/09/27 17:20:24 ID:2kpZk5qk
Itanium、Itanium2はVLIWだと言われている。Intelもそう言っている。
しかし、とうとう携帯に移植されたようだ。

http://www.itmedia.co.jp/mobile/articles/0409/24/news093.html

694 :Socket774:04/09/27 17:29:28 ID:+lgnGf9n
>>692
Intelのホームページを隅から隅まで探したまえ。もちろん本家の英語の方な。

695 :Socket774:04/09/27 17:41:16 ID:VQw7zfps
http://www.intel.com/intelpress/chapter-scientific.pdf
ちょっと検索してみましたけど、EPICはRISCとVLIWのおいしいところをくっつけた
新しいアーキテクチャ、というのがIntelの主張みたいですが…。

ちなみに、私もItaniumはVLIWの延長上にある技術に基づいたアーキではあるが、
VLIWプロセッサではないと思っていまつ。
EPICと古典的VLIWには>>675にも書いた通り、大きな違いがありまつ。

696 :Socket774:04/09/27 17:55:10 ID:+lgnGf9n
>>695
誰も"古典的"VLIWとは言ってない。細かく突っ込みすぎでしつこいよ。

697 :Socket774:04/09/27 18:03:35 ID:8+DOEKBL
はいはい

698 :Socket774:04/09/27 19:09:22 ID:ALTOOQ5m
痛ニウムのは、コンパイラの支援があって初めて
性能が出るものだっけ。
そういう意味でただのVLIWとは違うと。

699 :Socket774:04/09/27 19:12:16 ID:9EdkjjM1
>698
VLIWってコンパイラでの最適化を前提としたアーキテクチャだYO

700 :Socket774:04/09/27 20:05:38 ID:ALTOOQ5m
>>699
結局、痛ニウムとただのVLIWは同じってことか?

701 :Socket774:04/09/27 20:17:43 ID:9EdkjjM1
>700
普通のVLIWは、演算器とかの構成が変わるとバイナリの互換性が
無くなって、コンパイルしなおさなきゃいけないけど、Itaniumはバンドル
っていう概念を導入して世代間の互換性を維持できるようにした
改良型VLIW。


702 :Socket774:04/09/27 20:33:24 ID:ALTOOQ5m
>>701
フーン、んじゃ基本的なところは同じなのね
事前に最適化できるところはコンパイラがオペランドレベルで
埋め込んでしまえるとかってのを見たキオークがあるような気がするが、俺の妄想か

703 :Socket774:04/09/27 20:49:00 ID:SeHgeAj4
> 事前に最適化できるところはコンパイラがオペランドレベルで
> 埋め込んでしまえるとかってのを見たキオークがあるような気がするが、俺の妄想か

これと VLIW かどうかとどう関係するの?

704 :Socket774:04/09/27 20:57:50 ID:ALTOOQ5m
VLIWかどうかじゃなくて、板にウムの特徴として
コンパイラと連携してそんな感じというのってこと

705 :Socket774:04/09/27 21:18:00 ID:ZP6SLty6
Itanium→Itanium2で演算ユニットの数が変わったけど、今後どうなるのかな。
いまのところ、マルチスレッド化で性能を稼ぐようだから、しばらくは変らない気がする。

706 :Socket774:04/09/28 00:08:17 ID:KpZOdY1Z
+lgnGf9nが香ばしいな。
>>686
>Itaniumは内部にx86エミュレーション機能を内蔵してます。

エミュレーションじゃない。
偉そうな態度をとる前に用語は正しく使え。

707 :Socket774:04/09/28 00:31:38 ID:bTnFiFy5
>>706
そんな事どうでもいいじゃん。別に論文出そうとしているわけじゃないし。
所詮2chなんだし。君に用語は正しく使えなんて言われる筋合いはないよ。

708 :Socket774:04/09/28 00:33:23 ID:bTnFiFy5
>>706
つーか、はっきり言わせてもらうと君の態度の方がよっぽど偉そうだよ。
自分の納得しない意見は片っ端から排除するって雰囲気が伝わってくる。

709 :Socket774:04/09/28 01:07:31 ID:l2WpxPgU
> というかItanium鯖も触ってます。
というのが香ばしいんだよね。
触ってるから、なんだというの。
鼻にかけることではないよ。

CPUの中身なんて全く興味のないDB屋だってItanium2サーバいじってるよ。
エロゲー趣味の人だって、Itanium2ワークステーションいじってるよ。

710 :Socket774:04/09/28 01:18:42 ID:bTnFiFy5
>>709
香ばしいと受け取るのはそちらの勝手だが、それをネタに俺を誹謗中傷するのが
そもそも間違っている。削除依頼出そうか?

711 :Socket774:04/09/28 01:31:30 ID:qEvvsYPi
(´-`).。oO(どこをどう読めば>>709が誹謗中傷に見えるのだろう?)

ま、削除依頼を出すならご自由にどうぞ。

712 :Socket774:04/09/28 01:42:10 ID:bTnFiFy5
(´-`).。oO(どこをどう読めば>>709が誹謗中傷ではなく見えるのだろう?)

713 :419:04/09/28 01:57:10 ID:4T0Uapjv
EPICとVLIWの違いについては
ttp://www.cs.clemson.edu/~mark/464/acmse_epic.pdf

714 :Socket774:04/09/28 04:13:45 ID:MCE3uKca
>>710 >>712
だせぇよ。あんた。

715 :Socket774:04/09/28 04:45:11 ID:Q1DnICRv
Itaniumデ鯖ヤイテ(゚д゚)ウマー

716 :Socket774:04/09/28 08:49:56 ID:BO3P/CQ2
>bTnFiFy5
大変恐縮ながら、もうレスを少し控えて頂ければ幸いです。

それはそうと、トランスメタはどうよ?
最近は結構搭載ラップトップも増えてきて、
私の周りでも使っている人が多いのだが。

717 :Socket774:04/09/28 13:23:16 ID:KpZOdY1Z
>>bTnFiFy5
> 所詮2chなんだし。君に用語は正しく使えなんて言われる筋合いはないよ。

間違った情報を垂れ流して開き直るとは…厨房。もっと謙虚になれ。

718 :Socket774:04/09/28 14:07:14 ID:FfZIpqNX
藻前らどうでもいいから少しは便所行って頭冷やせ。腹は冷やすな。

719 :Socket774:04/09/28 15:17:59 ID:KpZOdY1Z
>>718
録音、503クラスかもしれんから少しぐらい遊ばせてくれよ。

720 :Socket774:04/09/28 19:17:31 ID:OFTG1WSg
無知なやつに限ってプライド高いんだよな
プライドだけは高いから間違いを認められない

721 :Socket774:04/09/28 19:26:30 ID:RMR4IG2S
>>686
>PUSH/POP命令をREXプリフィックスに置き換えた
INC/DEC(0x4a-0x4f)の間違いだろ

722 :Socket774:04/09/28 23:06:26 ID:gQpbpee5
今時、コンパイラの最適化前提で当然だと思う。

だいたい、VLIW て一度に沢山命令をフェッチして、実行して速度を上げようって
んだから、できるだけ上手いことバンドルに命令を詰め込まないと話になるわ
けない。

スカスカで性能がでないとかそういう話でないの?


723 :Socket774:04/09/28 23:09:38 ID:B1xmB8tr
痛ニウムはますます遠い存在に
http://www.excite.co.jp/News/computers/20040927142303/JAPAN-158078-1_story.html

724 :Socket774:04/09/30 08:15:27 ID:mERC0N7P
不思議なのがAH,ALはあるのに16ビット、32ビットだと上位と下位がないこと。
余ってる部分もったいないんだけどなんでこうなの?

725 :Socket774:04/09/30 10:14:08 ID:Gx5tcgNw
>>724
Googleでパーシャルレジスタストールで検索してみな

726 :Socket774:04/09/30 12:11:21 ID:gAA4Qa04
>>725
それはP6以降の問題であって386開発時の32bit拡張とは関係ないと思われ。
単純に互換性をなくしてまで上位・下位で分けて半分の長さのレジスタを使う
メリットがないからでしょう。

例としては、
既存の32bit OSで64bitレジスタの上位半分の退避領域なんて存在しない。
32bitアプリケーションで16bitレジスタが倍の数使えたってうれしくない。
って感じですね。

727 :Socket774:04/09/30 12:57:50 ID:Gx5tcgNw
>>726
P6ほど大きいペナルティではないが、
386でもパーシャルレジスタストールは起こるんだけど。
要はパーシャルレジスタアクセスに対応すると
処理が複雑になってしまう。

728 :Socket774:04/09/30 13:38:45 ID:gAA4Qa04
>>727
x86に触れたのはP5以降だから386で発生するとは知らんかったなぁ。
どっかにソースない?

> 要はパーシャルレジスタアクセスに対応すると
> 処理が複雑になってしまう。

複雑というより面倒な事はしたくないから待つってのが正しい解釈だと
思われる。

729 :Socket774:04/09/30 15:27:48 ID:HOgqVMU7
複数のレジスタとして使いたいわけじゃないんだけど、
上位16ビット分と下位16ビット分が別々なところにあって、
それをくっつけたいときに、シフトしてORするのが面倒だなぁ、と。

mov AL, [foo]
mov AH, [bar]
で済まさせてほしい。

って、いまさらアセンブラで書かないか。



730 :Socket774:04/09/30 18:01:03 ID:w2lRlQAw
>>729
コンパイラの中の小人さん? いつもお世話になってます

731 :419:04/10/01 00:28:47 ID:qsJwahyJ
68kもワード以下のサイズはパーシャルライトだっけ。

732 :Socket774:04/10/01 00:53:46 ID:9e+VVbid
>>729
DEC AlphaのようにBYTEもWORDもなかったことにすればいいのよ、オホホ

733 :419:04/10/01 01:59:21 ID:qsJwahyJ
>>732
復活したけどな

734 :Socket774:04/10/01 06:32:01 ID:KXYTRkk4
>>725
テンポラリレジスタが使われてたんですね。たしかに
mov AH, AL
なんてのはどうやってるのかと不思議に思ったこともありましたが
そういうことだったのか。

ただ、それほど多くない回数のループを多重で作るときにレジスタ
足りなくて歯がゆいことってないですか

735 :Socket774:04/10/02 13:45:09 ID:qjETo2bg


|   △   |
|  〔(゚ε゚)〕  | ←>>709
(⌒⌒⌒⌒⌒⌒⌒)
|⌒⌒⌒ <⌒ヽ o 。
|      <_  ヽ。
|      o とノ ノつ
|       。 | 〜つ


736 :Socket774:04/10/02 17:48:18 ID:z7N0AWTX
>>686が何も言えなくなってAA荒らしですかwww

737 :419:04/10/02 20:01:01 ID:lHzixQG5
>>734
あと1つ欲しいかなと思うことはあるが、あんまり気にしたことはない。

738 :Socket774:04/10/02 23:45:09 ID:pHgR2yVL
IA64 ならループ回し放題。ヤッホー!

739 :Socket774:04/10/03 01:24:51 ID:dhVBUKIX
何も言えなくて、夏

740 :Socket774:04/10/03 01:42:49 ID:Mx9I6Hil
みんな意外とアセンブラ使ってプログラム書いてんだね
このスレの特殊性かもしれないけど びっくり

741 :419:04/10/03 04:32:14 ID:B8IFMANF
>>740
コンパイラの出力とにらめっこはするが、直接アセンブラで書くことはあんまりないよ。

たまにインラインアセンブラ使うくらい。

742 :Socket774:04/10/03 20:02:39 ID:EERtRZrt
>>740
まあ、なんだ、
アセンブラでどう表現されるかを意識してコードを書くと速かった時代があった(過去形)
i++より++iのほうがイイ!とかな。
今そんなことしても、100の労力で、0.00001の利益、100000の非保守性が手に入るだけ。
そういうわけで、現在進行形で書いてるやつはそうはいない

743 :Socket774:04/10/03 20:20:35 ID:kYnl8Jo/
ただC++のテンプレートを駆使した場合とかコンパイラの出力を確認したくなる時もある
デバッグビルドすると全然インライン展開してくんなくてうぎゃーみたいな

744 :Socket774:04/10/03 20:28:48 ID:s5NrcAjs
キャリーフラグを使うと手っ取り早いこともちょくちょくある

745 :Socket774:04/10/03 20:40:12 ID:utsr78fJ
インラインアセンブラを使うと最適化が阻害される場合があるので、
基本的には使わないな。
組み込みコントローラのしょぼいメーカー製コンパイラってそんなもん。
>>742
ところが組み込み現場だとそうも行かなくてなぁ(苦笑
ある程度コンパイラのコード出力の癖を知った上で書かなくてはならないことも
まだまだ多いよ。


746 :Socket774:04/10/03 21:52:42 ID:rNoNaUgg
コンパイラの出力コードをチェックしてない馬鹿がテンプレート使いまくって、
異様にオブジェクトサイズが大きくなって性能が低下したことがあったよ。

そいつは、関数の中でテンプレート使って一時的なクラスを作りまくるの。
文法的には合ってるけど、
各関数・スコープ毎に別個のオブジェクトが生成されてて無駄無駄無駄。

テンプレートをその場限りで使って良いのは、非常に軽い奴だけだって。

747 :746:04/10/03 21:54:30 ID:rNoNaUgg
ごめん。スレの趣旨無視して、愚痴ってしまった。

748 :Socket774:04/10/07 09:32:42 ID:vd2XyT7y
CPU温度を最大限大きくするCコードってどんなコードでしょうか。
Pentium4プレスコットの評価をしていまして、
同じCPU100%でもコードによりCPU温度に差が出てきます。
そこでCPU温度を可能な限り上昇させるコードってどうなるのでしょうか。

749 :419:04/10/07 13:20:19 ID:o5XF8S1z
>>748
FPUぶんまわし。
今だとSSE?

750 :Socket774:04/10/07 16:25:06 ID:4/Dp50rs
>>748
Cでやるのは難しい。
依存が無い演算を小さいループでメモリアクセスしないでひたすら
やらせるのがいいんだけど、最適化で処理をあぼーんされてしまうし
最適化しないと変数を毎回スタックにアクセスしに行くコードになって
しまう。

アセンブラで書け。

751 :Socket774:04/10/07 18:44:29 ID:+ZjDBXmy
Cで十分。
演算結果を捨てないで次の演算で使うコードにすれば
コードが消されることなんか無いし、その状態でも
相互に依存関係の無い演算なんかいくらでも混ぜられるし。
スタックだって、L1にヒットしてればメモリアクセスのような
長い待ち時間は発生しないよ?
ツッコミどころはこんだけ?

752 :Socket774:04/10/07 18:59:16 ID:oghEbeiC
そもそも演算性能が必要な処理は現在では Cで書くのが
事実上の標準なわけだから必要な物は Cで実現できるようになっている


753 :Socket774:04/10/07 20:20:15 ID:/MV7YxeE
良スレ!情報工の学生には参考になる内容だ・・・
まだ前半しか読んでないけどOTL

754 :Socket774:04/10/08 00:08:24 ID:mCEQTihK
>>751
そう思うなら実際にそういうコードを書いてみてVTuneでも使ってみれば?
お前さんの考えがいかに甘いかわかるから。

755 :Socket774:04/10/08 00:30:37 ID:x3HXNV+8
どうでもいいが、キャッシュにアクセスしない方が本当に熱くなるのか?
RAMやCAMは電力食うぞ。

しかし温度を上げるだけなら、PWMレジスタを書き換えれば(ry

756 :Socket774:04/10/08 00:52:02 ID:/CsJIgJs
FP演算と整数演算を別スレッドで同時実行して、キャッシュを最大限使いつつもメモリアクセスは最小限、というコードが良いんだろう。たぶんね。

757 :Socket774:04/10/08 00:56:43 ID:mCEQTihK
FPよりもSSE

758 :Socket774:04/10/08 01:46:38 ID:Q5Da3Vsk
>>748
Prescottの32bitだよね。SSE2/3を使って乗算器と加算器を
使い潰したいのでしたら、

double a[4], b[4], c[LEN];
for(i=0;i<LEN;i++) for(k=0;j<4;j++) a[k] += b[k] * c[i];

なんてどうでしょう?
必要なメモリバンドはっと、、、
1 loopに4 cycle、3.2GHzのプだと6.4GB/s ・・・_| ̄|○

a, bの長さを4から8にするとメモリバンドは半分ですんで
Loadユニットに負荷かかると思います。L1零点死おっきな
プでまともに回るかな、、、

誰かiccのコード晒してくれると嬉しいっす

759 :Socket774:04/10/08 08:05:42 ID:mCEQTihK
>>758
変数修正&ループ回数1024にしたやつ。
メモリアクセス大杉

LOOP:
movapd xmm0, xmm2
movddup xmm3, QWORD PTR [esp+eax*8]
mulpd xmm0, xmm3
mulpd xmm3, xmm
addpd xmm0, XMMWORD PTR [esp+8736]
addpd xmm3, XMMWORD PTR [esp+8752]
movapd XMMWORD PTR [esp+8736], xmm0
movapd XMMWORD PTR [esp+8752], xmm3
add eax, 1
cmp eax, 1024
jl LOOP

760 :Socket774:04/10/08 14:25:27 ID:NUEi17ja
いまさらな感があるけどさ、
alphaAXPって、32bitか64bit境界のメモリアクセスじゃないと、性能が落ちるって言うけど
なんで?
例外に、ALIGNというのがあって、境界整列アクセスじゃ無いとこれが発生するかららしいけど、
別に、レジスタにメモリから、値を持ってくるだけなら、どのアドレスからはじめても
変わらなさそうだれけど。最適なアクセスを実現するのに、データアドレスが関係してくるのか
いまいち分からん。

761 :Socket774:04/10/08 15:01:39 ID:eBWgst8b
アラインされて無いアドレスのデータは一回のメモリアクセスでアクセスできないから遅くなる
これはほぼすべてのプロセッサに当てはまる

762 :Socket774:04/10/08 15:02:22 ID:+b9K+8oU
>>760
Alphaのようなモダーンなプロセッサよりx86を引き合いにしたほうがいいと思うが。
#そもそもアライメント不整合なアクセスはできんし。

アライメントを跨ぐアクセスをおこなうとメモリアクセスが2回発生するから遅い。
当然1回より2回の方が時間かかるよな。

課題:どうしてアクセスが2回発生するか考えて見ましょう。

763 :760:04/10/08 15:57:50 ID:NUEi17ja
>>761-762
レスありがとう。
自分が考えたのは、メモリからレジスタにデータを取って来るときの、アドレス指定が
例えば、32ビットの場合、4の倍数でしか指定できないように、回路が組まれている。
だから、境界をまたぐ時(アドレス2から5を読む時)は、アドレス0から4バイトを読んで、
上2バイトを生かし(このときトラップ発生)、次にアドレス4から4バイトを読んで、下2バイトを生かし、
で、最終的に、アドレス2から5までの4バイトのデータを得る。だから2回ということかな?
化石のようなVAXから持ってきたプログラムなんだから、CPUの性能差を考えれば、
alphaで最適処理でなくても、十分VAXより早いよと思ってはいるのだが、説明しろ。
という人が居るので、あれこれ調べてます。
#alphaももうミイラ化しているという話もあるけど。

764 :758:04/10/09 00:23:37 ID:3KzlCTYB
>>759
あり、summationレジスタ内でとってくれない....OTL
俺の脳内コンパイラはこんなの吐いてたのね。

xorps xmm0. xmm0 #a[0] = a[1] = 0;
xorps xmm1, xmm1 # a[2] = a[3] = 0;
movapd xmm2, b[0]
movapd xmm3, b[2]
for(k=0;k<LEN;k++){
movddup xmm4, c[k]
movapd xmm5, xmm4
mulpd xmm4, xmm2
addpd xmm0, xmm4
mulpd xmm5, xmm3
addpd xmm1, xmm5
}
movapd a[0], xmm0
movapd a[1], xmm1

ループ内改良?
movapd xmm5, xmm3
{
movddup xmm4, c[k]
mulpd xmm5, xmm4
addpd xmm1, xmm5
mulpd xmm4, xmm2
addpd xmm0 xmm4
movapd xmm5, xmm3
}

765 :Socket774:04/10/09 11:47:06 ID:xxq7eQXN
なんつーか、最近のレスを読むとやっぱりCPUのアーキテクチャと
ソフトのトレンドは切り離せないって感じか
プログラミングのトレンドによって良いアーキテクチャってのは変わってくる?

766 :Socket774:04/10/09 11:51:42 ID:lvadbde6
変わらん。ここの住人が特殊なだけ

767 :Socket774:04/10/09 12:12:32 ID:NJ7eoUK6
>>764
最適化レベル下げてある。
上げるとメモリアクセス減るけどunloop & 巴*cがb把になる。
長いので貼れん。

>>765
何がプログラミングのトレンドで何が良いアーキテクチャだと思っているの?

768 :Socket774:04/10/09 15:23:47 ID:C6L16bIw
ソフトとハードのトレンドは密接に関連してるよ。
CPUアーキテクチャは微妙だと思うけど。

769 :Socket774:04/10/09 18:37:06 ID:LlCEb8Iv
>>763
一度のメモリアクセスで読めるのは、
アドレスバスが同一のメモリ領域だけ。
(バースト転送を使えば、その4倍ぐらい)

アラインメントがそろっていない=アドレスバスの内容が違う複数アドレスにまたがったデータ。

原理的にどのようなアーキテクチャでも、
そういうメモリエリアを一度にまとめては読めない。

ただし、アーキテクチャによって、
4の倍数だったり8の倍数だったり2の倍数だったりすることはあるはず。

なお、pentium以後のCPUが一度に読めるメモリは8バイト。
8の倍数境界を越えなければ、
実は密かに1度のメモリアクセスでデータを読めたりする。(ハズ)

770 :765:04/10/09 19:06:05 ID:xxq7eQXN
>>767
んー、例えばJAVAとか
JAVAのバイトコードが直接実行できるハードってあるじゃん
ARMのJazelleとか
んでJAVAの仮想マシンってスタックベースだし、命令に直交性ないし可変長だし
507辺りや590辺りで叩かれてるような仕様な訳で
ttp://www.netgene.co.jp/java/docs/javaPressVol15.html

ソフトとハードはちょっと流れが違うなーと思ってさ

771 :Socket774:04/10/09 20:20:03 ID:Q2gGIHXJ
>>770

当初からハードウェア関係者からは叩かれてる > JAVA仮想マシン
Hotchipsでパターソンとかに突っ込まれてたよ〜な〜。


772 :Socket774:04/10/10 02:00:25 ID:goVuYUBB
以前、FJでもバトルがあった。>>JAVA仮想マシン


773 :Socket774:04/10/10 14:17:58 ID:CFas174f
>>753
印刷して参考書片手にがんばれ。

774 :760:04/10/10 23:09:30 ID:KdUhMv6D
調べてみた(はじめて読むpentiumを参照)。
x86の場合アドレスバス(32本)の仕様は、1、2、4byteのデータを読むための
アドレスを流す。これから、1byteの時は、1の倍数、2byteの時は2の倍数、
4の時は、4の倍数アドレスしか流れない。>>762さんが、言った
「そもそもアライメント不整合なアクセスはできんし」はこれが理由だと思う。

流されたアドレスから、データを読むときデータバスは64本なので、一度に8byte読める。
さらにデータバスの一部だけを使うってことも出来るそうな。
だから、8byte以内ならば一回のアクセスですむ。
8byte境界をまたぐような、変なデータの並びになっていると、
アドレスバスに、流れるアドレスを変えなくてはいけない。
alphaは、データバスの一部だけを使うっていうのが、無いのかもしれん。
これは調べて見る。>>732さんの発言がそれを匂わせているような気もするし。
VAXだと、データの並びなんかお構いなしだったんだけど、何か秘密がありそうだな。
VAXのアドレスバスと、データバスの関係も知りたい!
やばい、仕事より面白くなってる。

775 :Socket774:04/10/11 19:20:00 ID:oDxJf8d2
>>774
アドレスバスは、搭載されたメモリチップ全部が共有している。
従って、アドレスバスの内容を、一部のチップだけ変更するような形で
複数のアドレスを一気にアクセスすることは不可能。
これは基本的に、CPUのアーキテクチャとは無関係。

で、アドレスバスの内容が同じであっても、
そのうち一部分のメモリ内容だけを取り出して、
特定レジスタと値を授受するためのハードウェアは、
x86などには搭載されているが、アルファには搭載されておらず、
アルファの場合は読み込んだデータを
シフタやアンド命令によって加工する必要がある。

最新マイクロプロセッサテクノロジって本の旧版(増補版でない方、96年頃発行)
なんか参考になるかも?

いやきっと不十分だ。
まあ、このレスの内容ぐらいまでならば、その本でも充分だけど。

776 :Socket774:04/10/12 12:26:23 ID:Z6vs1tf/
Windowsのタスクマネージャで見るCPU使用率ってなんでしょうか。

CPU使用率100%の場合、CPU内部のどの箇所が限界に達しているのでしょうか。演算ユニット?内部バス?

777 :Socket774:04/10/12 12:43:45 ID:oD0Rwg/B
>>776
アイドルプロセスが動いて「いない」時間の割合っていうだけで、
実はCPUが忙しいとは限らない罠

778 :760:04/10/13 15:49:49 ID:J3pNhcNh
「AlphaAXPアーキテクチャ概要」をみつけた。
"Alpha Architecture Handbook"
http://ftp.digital.com/pub/Digital/info/semiconductor/literature/alphaahb.pdf
の訳本。
訳者序文に、夢いっぱいなのが、いまとなっては哀しい。
で、775さんの言っている通り、バイト操作に関する命令が無い、回路も無い。
もう、32、64bitアクセスに命をかけるといった思想のようだ。
VAXの文献は、会社の書庫から、
"VAX11 ARCHTECTURE HANDBOOK"、"VAX HARDWARE HANDBOOK"というのを
引っ張りだしてきた。
VAXには、バイト、ワードムーブ命令がある。命令コードも定義されている。
ということは回路があるってことだな。あーすっきりした。
しかし、もうこれは、トリビアの世界だな。
ありがとう、レスくれた皆様。

最新マイクロプロセッサテクノロジの旧版、アマゾンで注文しました。
送料込みで680円だったし。

779 :Socket774:04/10/13 16:45:58 ID:95rBu0jN
きてみたら話がおわっていた。
>>778
そうなんだけど、それはトリビアではなくてAXPの本質なのでは。

780 :760:04/10/13 17:48:08 ID:J3pNhcNh
勝手に、話終わらしてごめん。
トリビアといったのは、VAXといいalphaといい、フェーズアウトしていったCPUの
知識って、自分以外には無駄知識なのかもと感じたから。

でも、ソフトを組む上で、それを知っているかいないかでは、設計に違いがでるよね。
この仕事が終わったら、次はSUNねと言われた。もう、SPARCしそう。

781 :Socket774:04/10/13 19:27:27 ID:oss1MRNb
>>778
その本は 21064 つう最初の chip が出た時の本で、
21264 つう2世代後の chip ではバイトアクセスも
できるようになってしまいました。
ワードアクセスしかできないのは CRAY-1 とかでは
よかったけど、WS だと雑用が多いのでしょうね。


782 :Socket774:04/10/13 21:24:56 ID:Jj1iFqtc
雑用と言うか文字操作。バイトロードなんて大した事無いんだから無いのが
おかしい。ストアが面倒なのは理解できる。

いつの間にかバイトロードストアの話になっているが、もともとはアラインの
話だったよな。さすがにミスアラインのロードストアはできないだろ。

783 :Socket774:04/10/13 22:03:52 ID:oss1MRNb
たいしたことないからコンパイラが吐いて毎回実行すれば
いいはずだった。

VAXのマイクロコードを納めたメモリのサイズが cache の何倍も
あって気持悪いから RISC したのに元の黙阿弥。


784 :Socket774:04/10/13 22:51:18 ID:Jj1iFqtc
バイトロードをハードで作るのが大した事無いんだって。
Cのコードだといちいち符号拡張するようなコードを付加しないといけない。
最適化で大体消せるはずだが。

785 :Socket774:04/10/13 23:14:20 ID:oss1MRNb
現実は、そうなったのでそうなのでしょうね。

アラインの問題は、cache からのロードでもペナルティがあるんでしょうね。

alpha は今の複数CPU を突っ込むところまで生き残ったらおもしろかったと思う。
(韓国の景気後退がなければサムソンが頑張ったのに)


786 :Socket774:04/10/13 23:35:56 ID:ADqpHTYb
> アラインの問題は、cache からのロードでもペナルティがあるんでしょうね。

むしろメモリからのロードはキャッシュライン分ごっそり行われるから、
ほとんどアラインもくそも...と思う。
キャッシュラインは Athlon や III が 64bytes で 4 が 128bytes だっけ?

787 :419:04/10/14 10:33:54 ID:LmGtZ9oi
>>784
どうだろう。結構クリティカルパスになりそうだが。

788 :Socket774:04/10/14 14:34:22 ID:PzdkVdRV
>>785
三星さんは買ってきて放置して腐らすのが得意だから
どっちにしろだめぽだったんじゃないかなぁ・・・


789 :Socket774:04/10/14 14:54:32 ID:FonGE7bN
>>788
低価格Alphaでは一応三菱と組んでいたのですけどね。
その忘れ形見の21164PCマシンがうちに一台落ちてますけど。

790 :Socket774:04/10/14 15:55:17 ID:4AS9JSw4
たしかAMD-761チプセトのAlphaマシンを出してたよな。非常に欲しかった覚えが。

791 :Socket774:04/10/14 22:48:55 ID:WsiXxSR4
AMD761はそれほど速くないワナ。

792 :Socket774:04/10/14 23:18:42 ID:FonGE7bN
Tsunamiに比べてメモリバスが圧倒的に細いからな<irongate
AGPが使えるぐらいしかメリットないだろうね。

793 :Socket774:04/10/15 00:16:48 ID:Z5vnizRS
速いかどうかなど問題ではない。
Alpha + AMD chipset(=PC世界) という組合わせが
コレクター魂をくすぐるわけですよ

794 :Socket774:04/10/15 02:30:22 ID:Of3xFiVo
コレクトするならただで配っていたときに手に入れればよかったのにね。

795 :760:04/10/15 08:52:28 ID:pyc0WhD/
>>781
alphaでも世代によって、命令コードが追加されてるのね。
自分が個人所有しているのは、multiaで、alpha21066, 166MHz だったりする。
今、FreeBSD alphaをいれているけど、OpenVMSのHobbyistに挑戦しようかなと
思ってたりする。

アラインの話、蒸し返すようで悪いんだけど、
BYTE、WORDという順番で、データをならべたら、OpenVMSのフォートランコンパイラが、
ミスアラインだよと警告してくる。メモリ上の並びが、
アドレス:データ と表現すると。
00   :Byte
01   :WORD(下位)
02   :WORD(上位)
となっていて、WORDがミスアライン。
WORDをアクセスする時にアドレスバスに、流すのは、00、02の二回流さなきゃならない。
バイトアクセスできたとしても、01、02の二回必要なのは代わりが無い。
そこで、新たな疑問が湧いた、
「WORDをアクセスする時にアドレスバスに01を流さない(流せない?)のはなんでだろ」
>>782氏のいう「さすがにミスアラインのロードストアはできないだろ」
この、理由を調べてみることにする。

796 :Socket774:04/10/15 10:47:42 ID:bxctSld4
>>795
x86あたりだと健気にバスサイクルを分けてロードストアするけど。
今時のプロセッサだとアドレス下位ビット叩き落して適当にロードストアする。
例えば0x000C番地からワードストアしようと思ったら、
適当に下位2bitを落として0x0008番地からワードストアしてしまう。
構造体などを無理やりキャストしてアクセスするお行儀の悪いプログラムはこれではまる。

「さすがにミスアラインのロードストアはできないだろ」はこれを指してると思われ。

797 :Socket774:04/10/15 11:25:13 ID:BHMCWHLc
各種プロトコルで、バイト単位で詰め込んであるのを、構造体でダイレクトにアクセスする
っていうコードは、Alphaの人はどうするの?

798 :Socket774:04/10/15 12:04:54 ID:WYweqiDt
>>796
今時のプロセッサとは具体的に言うとどういう種類?

799 :760:04/10/15 12:59:44 ID:pyc0WhD/
>>797
今まさに、それで困っている。
VAXの構造体のデータがバイト単位で詰め込まれている。それを、alpha側で、
読もうとすると、同じ定義の構造体でも、メモリ上の格納位置が違うため、
データがずれる。アライメントをあわせるために、未使用域が追加されてしまうから。
で、自分の主張は、ミスアラインでも良いから、バイトで詰め込んであるのだから、
そのまま読みましょうよと提案したんだけど、ミスアラインも嫌、VAX側のデータ
構造も変えたくない、何とかしろ、などと無理なわがままをいう人がいるので、
それは無理ですというために、いろいろ調べている。

異ベンダーのマシンとの通信で、メモリデータの転送をするのを組んだ時は、
alpha側で、双方の構造体の構造を定義したデータ(データタイプは何で、オフセットはどこからで)を持って、
その定義をみながら、向こう側のこのデータは、alpha側では、このオフセットから何バイト書き込み、
とかひとつひとつやっていた。エンディアンも考慮して、バイト反転が必要な場合は並べ変えるという
処理をアプリケーションでやってた。今はどうか知らないけど、当時のDigitalUNIXは、
ミスアラインアクセスが起こるたびに、メッセージが表示されてた記憶がある。


800 :760:04/10/15 13:30:20 ID:pyc0WhD/
>>796
0x000C番地->0x000B番地 ですよね。
強制2bit落としだと、確かに、ミスアラインは無しですね。

プログラムリスト上の定義と、実際のメモリ上の配置、そのデータがCPUで
どういったルールで処理されるか、を知らないと、
お行儀の悪いプログラムははまりますね。

801 :Socket774:04/10/15 13:32:22 ID:TdzRlBpX
すんごい手間になってるのね。
日本語と英語の翻訳解釈に通訳が苦労するみたいな感じに思える。

802 :Socket774:04/10/15 13:36:28 ID:p6lBA9kT
アンパックの部分だけアセンブラで書けばいいんじゃないの?

803 :797:04/10/15 14:55:16 ID:BHMCWHLc
Cコンパイラはアライメントのことを隠蔽してくれないの?

x86でVC使いなんだけど、
その手の構造体の宣言の部分だけ、アライメントの単位を1バイトに変更するよ。
そうすれば、あとはコンパイラが適当にやってくれる。

Alpha用のCコンパイラでは、部分的にアライメントの単位を1バイトに変更する機能ないの?

804 :sage:04/10/15 17:39:18 ID:d0nblsDW
>>787

>どうだろう。結構クリティカルパスになりそうだが。

正解。アライナを抜けるのは結構時間がかかるのよ。
しかも、キャッシュから読んだ後にここを通るから厳しい。
パイプを深くすれば周波数は上げられるけど、後続
命令で使っていたらストールしちゃってCPIは下がる。
性能命のCPUだったらバイトだろうがなんだろうが、
32bitなり64bitなりにアラインしている方がいい。

ちなみに、ワードのミスアラインで自動的にバスサイクルを
2回起こすチップも作ったことあるが、これはそんなに
クリティカルだった記憶はないっす。
昔のことだから単に忘れているだけかも知れないが。
あっ、でもダイナミックバスサイジングまでやると厳しい。

805 :Socket774:04/10/15 19:16:07 ID:YiSRPipH
いつまでも、バイトが基本の Unix が生き続けたのが誤算だったか


806 :Socket774:04/10/15 21:18:50 ID:xQC3vXkh
>>805

っていうか、0〜255とか限られた範囲しか取らないデータに32bi使ったりするのは
抵抗があるからだ。
ちょっと使うだけならともかく、構造体とかは検索とかに使う事が多いから
なるべるオンメモリでやる事を願って節約したくなる物でしょ…。

807 :Socket774:04/10/15 23:04:52 ID:pWQQYIzz
バイトロードって、ワードロード+8nBit Shift+符号拡張だけですけど、
それほど問題になりますか?


808 :760:04/10/16 07:19:56 ID:lDHTptZA
797さん
自分が今まで調べた知識からの推理なんだけと、VCの「アライメントのことを隠蔽」とは、
ワードを読むのに、バイトバウンダリで1インストラクションで読むのではなく、
バイトアクセス2回でやっているのだと思う。使う側からすれば、ワードが
読めればよいのだから、表面上はわからない。これを隠蔽と解釈した。
X86の場合、バイトロード命令があるから、まだましだけど、alphaには(初期チップだが)無い
から、また余計に手間がかかる。
alphaの場合、隠蔽するのを良しとしなくて、「性能を上げれるよ」ということを、
積極的にユーザに通知すべしという考えなんだと思う。
コンパイラでの警告は、まだ許せるが、実行イメージ(実際に出しているのはOS?)だろうが、
メッセージを出すのは勘弁してほしかった。
>Alpha用のCコンパイラでは、部分的にアライメントの単位を1バイトに変更する機能ないの?
部分的にというのはわからないが、構造体のデータ並びを最適化しないオプションがあったと思う。
かなり怪しい記憶だが。
ちなみに、今やっているのはFORTRANだったりする。
>>802さん
当時の自分にはスキルがなかった。(今でも無いが、当時に比べたらもっとエレガントな実装も思いつくかも)


809 :Socket774:04/10/16 13:05:46 ID:m6c2LfvK
>>808
/nomember_alignment

810 :Socket774:04/10/16 13:20:11 ID:FN9qq5Mu
>>803
特になにもしなくても32bitアラインでパディングしてくれてた記憶が・・・

811 :Socket774:04/10/16 13:58:56 ID:qhj0QclY
>>808

アラインミスのアクセスをすると例外になって OS まで行って
OS がごていねいにデータをちゃんと設定して戻してくれるけど
すごいオーバヘッドだからコンソールメッセージ位は出しても
よさそう。


812 :Socket774:04/10/16 15:01:24 ID:XmrTG1Tu
>>758
遅レスだけど、ICC8.1の出力(オプション /QxP /O3)

;;; for(i=0;i<LEN;i++) for(j=0;j<4;j++) a[j] += b[j] * c[i];

movapd xmm1, XMMWORD PTR [esp+48] ;8.46
movapd xmm0, XMMWORD PTR [esp+64] ;8.46
xor eax, eax ;8.6
ALIGN 4
; LOE eax ebx esi edi xmm0 xmm1
$B1$2: ; Preds $B1$2 $B1$1
movapd xmm2, xmm1 ;8.53
movddup xmm3, QWORD PTR [esp+eax*8+80] ;8.53
mulpd xmm2, xmm3 ;8.53
mulpd xmm3, xmm0 ;8.53
addpd xmm2, XMMWORD PTR [esp+16] ;8.38
addpd xmm3, XMMWORD PTR [esp+32] ;8.38
movapd XMMWORD PTR [esp+16], xmm2 ;8.38
movapd XMMWORD PTR [esp+32], xmm3 ;8.38
add eax, 1 ;8.16
cmp eax, 100 ;8.2
jl $B1$2 ; Prob 99% ;8.2


813 :Socket774:04/10/19 07:04:21 ID:9FRhqip2
Alphaの話はもう無いのか。

814 :760:04/10/19 15:59:22 ID:er9bye1p
>>809
OpenVMS alpha Cだと、そのオプションでOKですね。
OpenVMS alpha FORTRANだと、
/ALIGNMENT=(COMMONS=(PACKED,NOMULTILANGUAGE),RECORDS=PACKED)
で、コンパイルワーニングは出るけど、境界整列しないでバイト詰になる。
Tru64 のCでは、 -misalign を付けると、バイト詰にはならないが、
実行時のミスアラインメッセージを抑制してくれる!
今ごろ発見かよ...onz
当時の俺に教えてあげたい。知ってれば誤魔化せたのに。
コンパイルオプションを良く調べなかった俺が悪いのか。
でも、最適な速度でアプリが実行されているぜ。と自分を慰めてみる。
ちなみに実行時ミスアラインのメッセージは、こんな感じです。
Unaligned access pid=20985 <a.out> va=11ffffd29 pc=120001238 ra=1200011a0 type=ldl
こんなのが、ワサワサでると、原因突き止めて直せといわれるわな。

815 :Socket774:04/10/19 19:05:36 ID:+fDI/84X
質問です。
なぜ、CPUのクロックスピードに2.93GHzといった
端数が出てくる場合があるのでしょうか?

816 :Socket774:04/10/19 19:11:57 ID:57y0X7uY
>>815
CPUのクロックはベースクロックを数倍にしたものだから。
例えばベースクロック166、倍率が11倍のCPU(AthlonXP2500+)だと
166 x 11 ≒ 1.83GHz
みたいな感じになる。

817 :Socket774:04/10/19 19:18:03 ID:VAd/TNzn
>>815
ワインの樽みたいに少量のクロックが内部で蒸発するんだよ。

818 :Socket774:04/10/19 19:24:28 ID:gbaP58lA
>817
天使の分け前かw

819 :Socket774:04/10/19 19:27:00 ID:S7AsMwbG
おまえらあたまいいなぁ
ドリキャスでここみてるおれにはさっぱりだ

820 :Socket774:04/10/19 19:41:32 ID:+fDI/84X
815です。
816さんありがとうございました。

821 :Socket774:04/10/19 21:04:34 ID:TUoOo7kp
>>819
ドリキャスはSH4だよね。
記憶が正しければ、さらに音楽専用に68HC000を積んでる。

822 :Socket774:04/10/19 21:23:39 ID:M3DxeXp9
ついでだからSH4の話に移行すれ

823 :Socket774:04/10/19 21:48:40 ID:afJfzYzs
SH4は渾身の力作

824 :味ぽん使い:04/10/19 22:09:48 ID:+DF6/E69
SH-MobileイイYO!


825 :Socket774:04/10/19 22:12:41 ID:DmLLMSA9
Athlon64 4000+はいつ発売されますか?

826 :Socket774:04/10/20 00:01:18 ID:lOQSBd+v
SH4がPS2のEEにかなわなかったことを考えると
ゲーム機では汎用のCPUが主役になりえないという証拠だろうな
ルータで復活してほしいが、どうも省電力化に成功してない。
PDAもARMに押されて……

827 :Socket774:04/10/20 00:13:46 ID:oRWff7jw
ARMときたら任天堂DS

828 :Socket774:04/10/20 00:58:59 ID:60W+zsTJ
SH2はどえりゃー割り切った設計のCPUだと思った覚えがあるが
SH4はどんなだっけな・・・

829 :Socket774:04/10/20 01:10:15 ID:UWricYZP
ISA的にはふつーのチップだったと思うけど<SH2
16bit固定長命令、基本はop8-r4-r4の命令フィールド。

830 :Socket774:04/10/20 01:23:17 ID:yOKHgbxz
ブロードバンドルータのOPTにSH4が使われてるけど、
CPUの善し悪しは関係ないからなぁ。

もちろん、熱暴走したりするような論外な奴とは次元が違うよ。

831 :Socket774:04/10/20 08:40:12 ID:eXYigKL3
ゲーム機に使われているCPUか。SH4、面白そうだな。
ちょっと調べてみたら、マザーもあるじゃないか。
http://www.interface.co.jp/catalog/prdc.asp?name=mpc-sh02
自作できるな。いくらするんだろう。
X86系以外で、自作できそうなCPUの話題が出てきたのは初めて?


832 :Socket774:04/10/20 08:49:57 ID:I2cVvMFf
>>831
凄く高いよ。普通のPC用マザーと同じ値段では買えない。
組み込み向けのシステムの評価に使うくらいだと思う。
SH4でLinuxを試すなら,IOデータのNASを買うのが安い。

833 :Socket774:04/10/20 12:40:37 ID:QZuGC0aR
ルータはCPU性能が低いとパフォーマンスがでない。
この分野ではMipsが多いような気がする。
SH-4はMipsやARMがライバルだと思うけどPDAでもルータでも勝てない
携帯は型落ちの設計を流用しているので単価を高くできない。
いったいSHは何をしたいんだか……

834 :Socket774:04/10/20 13:50:20 ID:yOKHgbxz
家庭用ブロードバンドルータで最高速を出すSuperOPTは、SH4ですよ。

835 :834:04/10/20 13:51:47 ID:yOKHgbxz
あーでも、SuperOPTは日本で設計してるからSH4なのかも。
海外で設計してる、他のほとんどのルータではSH4使わないからなぁ。

836 :Socket774:04/10/20 14:37:57 ID:eXYigKL3
>>832
一瞬、本気で問い合わせようと思ったがやめた。FA用は良い部品使っている
かわりに、高価だからな。高いのもしかたないか。
手軽にSH4いじれる方法ないかな。
ドリキャス改造とかやっているところあるみたいだから、プログラム書き込んだり
できるような気がする。


837 :Socket774:04/10/20 14:46:58 ID:oRWff7jw
>>836
各種エミュプレーヤにしたり、
かなりいじっているみたいよ。

838 :Socket774:04/10/20 14:49:17 ID:6K8QHtS8
VAIO type XはSH搭載。
富士通はEden搭載。

839 :Socket774:04/10/20 14:56:35 ID:I2cVvMFf
>>836
この会社のボードは値段が結構手頃だと思うよ。

ttp://www.embedded-sys.co.jp/shop104/ms104sh4.htm
>MS104-SH4 は、32bitRISC_SH4CPU を搭載した組込みシステム用途の小型ボード(PC/104 規格準拠)です。
>10/100baseT, CF, RS232c, RTC, SDRAM,Flash 等の機能を搭載しています。

□CPU :SH7750R 240MHz品

□RAM :32MByte SDRAM
□ROM :16MByte Flash メモリ
□Ethernet :10/100BASE-TX(RJ45) 1Port LAN91C111
□CompactFlash :メモリカードモード対応/I/O カードモード対応可能
 ホットスワップ対応, 3.3V カードが使用可能, Type1(カード厚3.3mm), 1Port
□外部バス:PC/104 サブセット
 16bitバス幅
□RS232C :2Port ( COM1:TXD,RXD,GND COM2:TXD,RXD,RTS,CTS,GND)
□RTC:キャパシタによるバックアップ(170h)
□電源:+5V 単一電源
□基板サイズ:95.9×90.2×1.6mm Layer6層,両面実装
□H-UDI/JTAG 14pinインタフェース

44,940円

840 :Socket774:04/10/20 16:21:42 ID:Q1woW76O
SH-4のFIPR命令はベクトルの内積をスループット1で実行するありがたい命令
Intelはこういう命令を絶対に実装してくれない

841 :833:04/10/20 18:08:42 ID:QZuGC0aR
>>834
SuperOPTの事をよく知らずに恥ずかしい書き込みをしてしまった……
だけどこれだけの性能でシェアが取れない営業力は……

842 :Socket774:04/10/20 18:24:29 ID:oRWff7jw
セガと運命を共にしたような状況が哀愁を感じさせる。

843 :Socket774:04/10/21 01:30:24 ID:6q4ry6AK
SH-4がEEに敵わないのは単純にトランジスタ数や外部バスの数の差じゃないかなあ・・・

844 :Socket774:04/10/21 02:13:16 ID:uUBKtuij
トランジスタ数って言ったらどうしようもないだろ。
それより特化した方がいいんじゃないのか?価格か性能か省電力かとか。
どっちつかずだとセールスもしにくいだろ。

んで完全にスレ違いになってる気がするのでちと聞きたいのだけど
未だにムーアの法則って成り立ってるの?
4GHzを越える気配無しじゃない?

845 :Socket774:04/10/21 02:20:48 ID:jcRYRD/d
ムーアの法則は周波数のことを言ってるのではなくて
半導体の集積度のことを言っているだけ

846 :Socket774:04/10/21 11:26:52 ID:PTIUztj1
>>841
海外の設計屋が採用しやすいように、技術サポート体制を充実させるしか。

847 :Socket774:04/10/21 12:16:58 ID:2fkui46U
SH系はASICに特化してて縁遠い…。
標準品がイマイチだし…。

848 :Socket774:04/10/21 18:48:06 ID:ALQWD/au
ところで今のCPU業界がx86を捨てるのはいつになるのだろう・・・

849 :Socket774:04/10/21 18:50:49 ID:jcRYRD/d
ソフト資産が膨大すぎて無理

850 :Socket774:04/10/21 21:03:51 ID:RtDG7/Oh
インテルとAMDが火事になって全生産プラントと設計資料が燃えたらあるいは……

851 :Socket774:04/10/21 22:43:06 ID:6V+hrhDj
>>850
そしてどこかが車輪の再発明をすると。(x86互換として)

852 :Socket774:04/10/22 00:21:59 ID:OGVL6ucV
>>849
IA-64デスクトップ全面展開でこの先x86フリーの可能性があると思えた日々が懐かしい(遠い目)

853 :Socket774:04/10/22 00:30:29 ID:wOYC2LI5
Alpha 互換機や PowerPC 互換機(CHRP)に夢を馳せた日々は遥か彼方...

854 :Socket774:04/10/22 00:44:09 ID:muX/EacO
気がつけばSunが♪を採用してる時代とは…

855 :Socket774:04/10/22 01:15:15 ID:YYO4ROXr
なぁ、今はもうマルチコアな時代に突入ですよ。
なので、GPLで過去にある全プロセッサを
搭載したマルチコアなGNU Processorを出すのだ。

856 :Socket774:04/10/22 02:04:39 ID:3HTbYyi6
>841
SH4+Routing処理専用ASIC搭載だったりする罠
CPU自体の性能はそれほどではないと思うけど。。。

857 :833:04/10/22 03:33:46 ID:UbodeLIA
>>856
じゃあ、やっぱだめじゃん
と思ったけど、知らない間にSH-4Aが出てるのか。どうなんだろ。

858 :Socket774:04/10/22 08:25:39 ID:YHe+Q9Sk
SHって、SuperHの略で、やっぱりHはHitachiのHなんだろうな。
「スーパーひたち」か、
http://www.katomodels.com/product/images/651kei/651kei_1.jpg
651系は485系の後継らしいが、これ見る限り古さを感じさせるな。

859 :Socket774:04/10/22 11:22:39 ID:MejLQBYZ
>>856
専用ASIC積んでないですよ。
少なくとも、OPT100とOPT G5の基板の写真を見る限り。

860 :Socket774:04/10/22 16:33:06 ID:Si8E+Ozi
>>859
ひょっとすると、
専用ASIC上にSH-4が搭載されてるとか?

いや、現物見てないのでわからんけど、
SH-4はASIC上に(ASICの内部に)実装するようになったんでしょ?たしか。

861 :Socket774:04/10/22 18:07:25 ID:MejLQBYZ
>>860
チップの刻印は↓です。
http://bb.watch.impress.co.jp/column/review/2003/09/17/ph08.jpg

これってASICなのかな・・・。

862 :Socket774:04/10/22 18:15:51 ID:TMSpY5mH
>>861

そいつは標準品。
ttp://www.renesas.com/jpn/products/mpumcu/32bit/sh/sh7751r/index.html

863 :Socket774:04/10/23 20:04:02 ID:gI5k8ZY5
凶箱はPen3(セレとも言えるけど)だしなぁ...
海外じゃ1.2GHz位のセレに換装した代物が売られてたりする(もち非純正

ドリキャスはSH4を240MHzにOCして遊んだなぁ。今でも元気に動く。
セガラリー2とか首都高バトル2の処理落ちが結構改善できたり。
冷却系をいじらないとオーバーヒートでフリーズするけど。

864 :Socket774:04/10/23 22:25:23 ID:zDqw+NEO
民衆のマシン クラスタは
安くて速くてよいマシン

ベクトル機では高すぎる
専用機では品がない

民衆のマシン クラスタは
安くて速くてよいマシン

865 :Socket774:04/10/25 11:57:10 ID:uIJpv0o8
結局SHシリーズがリテールパッケージでPC店に並ぶのは無いってことね。



866 :Socket774:04/10/26 14:24:54 ID:h2JVbMIa
強いて言えば秋月通商か若松半導体部

867 :Socket774:04/10/26 14:33:16 ID:1OxuJ1UU
リテールパッケージで店頭に並んじゃうCPUのほうが稀有だけど、
昔の若松みたいにCPU単体を扱う店はへったよなぁ…。

SH4使うならOSはOS-9な、約束だよっ(嘘

868 :Socket774:04/10/28 14:26:52 ID:9D0HtQTd
ハドオフにドリキャスのジャンクを探しにいったが、3000円だった。
ゲームできなくてもいいから、500円ぐらいでないものか。
セガサタなら、あったのだが。
SH4の記事が、インターフェース増刊号で発刊されていた。
買うかどうか迷う。

869 :Socket774:04/10/28 15:55:29 ID:bZag8Haz
>>868
3000で状態よければいいじゃない?
音源から全部コミコミセットでいろいろ遊べるみたいなのだし

870 :Socket774:04/10/28 18:47:09 ID:p8BHdZM1
DCで遊ぶならBBAと対戦ケーブルの有無が重要ですな。
無いといまひとつ面白くない。


871 :419:04/10/28 22:12:28 ID:6BvQkiwG
>>870
カニチップのBBAを未開封で腐らせているおれ

872 :Socket774:04/10/29 09:08:48 ID:zpoIlmXJ
ところで419は何のためにいつまで数字コテハンを名乗っているんだ?

873 :419:04/10/31 01:54:23 ID:n5iothS3
たんにフォームに残ってるだけなんだが。

874 :Socket774:04/10/31 06:40:39 ID:mMulVRkA
419のネタをひっぱりたいのかもしれない

875 :Socket774:04/10/31 17:14:03 ID:6luX6/MX
消せないの?<フォーム
ただの目立ちたがり?

876 :Socket774:04/11/04 09:13:18 ID:NrhPngoa
電車の中で若い女性がプーと屁をこいたらしい。
すると、その女性は突然、隣りに座ってるおじさんに話しかけた。「おじさん、お腹の具合でも悪いのですか?」
そのおじさんは、でかい声で言い返した。「わしが腹の具合が悪いのと、あんたが屁をこくのと、何の関係があるんだ。」
その女性は次の駅で降りたのは言うまでもない。


877 :hosyu:04/11/04 11:26:12 ID:L035XQR8
>>870
>>871
★ドリキャスをPC経由でネットにつなぐ★
http://pc5.2ch.net/test/read.cgi/network/966240838/


878 :Socket774:04/11/06 16:58:18 ID:DoU/t8h9
名前欄消しといた。
Tru64とOpenVMS買ったので遊んでみる。

879 :Socket774:04/11/07 00:07:30 ID:X7ut1Yr3
AMDが気張り過ぎた。
x86は20世紀の過去の遺物と化す予定だったのに。

880 :Socket774:04/11/07 00:50:21 ID:GWSThY0E
>>879
しかしSPECintの結果を見るにつけ、x86 ISA(FP除く)は実はかなり優れていたのではないか
という疑念が頭から離れん。

881 :Socket774:04/11/07 01:20:52 ID:N66xzmYh
>>880
x86が速いのはシングルだけ。スケーラビリティが低いのは何とかして欲しい。

882 :Socket774:04/11/07 01:58:06 ID:I3Kmiolb
>>881
それはISAのせいではなかろう。

883 :Socket774:04/11/08 20:09:50 ID:6wnKO2rA
>>882
じゃ何のせい?この辺をうまく考察できた奴はいままでどのスレにもいない。

884 :Socket774:04/11/08 21:37:05 ID:84dX9uzH
x86のメモリモデルってどうなってるの?
SPARCでいうところのTSOとかRMO見たいな奴。

885 :Socket774:04/11/09 01:21:38 ID:KVy6YkPR
>>880
ISAって命令セットのこと?

886 :Socket774:04/11/09 11:32:28 ID:jqac19FW
>>885
命令セットアーキテクチャ

887 :Socket774:04/11/09 17:25:59 ID:9qel9ZgF
>>883
ほかの事が原因であることを説明しても、ISAが起因していないということは
説明できないからなぁ。
まず 881 or 883 が x86のスケーラビリティの低さがISAに起因していることを
説明すればよいと思うだが。どうだろうか?


888 :Socket774:04/11/09 18:23:05 ID:B4G/Mm2o
スケーラビリティが低いって具体的に何の事を言っているの?

889 :Socket774:04/11/10 00:10:50 ID:0rOLHbbP
>>888拡張性
いろんな使い方するけどこのスレ的にCPU限定だと
CPUを2個→4個→8個→いっぱいに増やした時に単純合計性能から実性能がどれぐらい減ったか
いくらCPU数増やしても実性能があんまり上がらない=スケーラビリティが低い
# とするとPowerPC440カスタムチップ数万個のBlueGene/Lは(Linpack限定で)そこそこスケーラビリティあることになる・・・w







ところで久しぶりに読み直したけど
>Prescottは10年に1度の大きなアーキテクチャ変革
http://pc.watch.impress.co.jp/docs/2004/0209/kaigai062.htm
そういえば386も性能的には?なCPUだったっけ
http://www.atmarkit.co.jp/fsys/pcencyclopedia/007procs_hist01/procs_hist02.html
淫照ってアーキテクチャ大変革した直後は力使い果たして性能=放置なのかもw

890 :Socket774:04/11/10 00:35:56 ID:y+nBg67M
Prescottはマイクロアーキテクチャの変更だけど、80386は命令セットアーキテクチャの
変更なのでちょっと違うと思うけど。
それにPrescottnの性能が出ないのは、90nmCMOSテクノロジがリーク電流が多過ぎて
予定どおりにクロックを上げられなかったのが原因で、マイクロアーキテクチャの変更
とは関係無いのでは。

891 :Socket774:04/11/10 00:42:35 ID:fGX3oJmH
90nmなら消費電力減るから電気食い回路でも大丈夫。更にクロックもageられる
 ↓
前提崩れてもうだめぽ

でなかったっけ?

892 :890:04/11/10 00:53:43 ID:y+nBg67M
>>891 そうだと思う。

90nmテクノロジで消費電力が減る

Tr数を激増させてパイプライン段数を増やしテクノロジの性能向上以上のクロック向上を狙う

90nmテクノロジの問題でリーク電流が多く予想どおりに消費電力が減らない

クロックを上げると消費電力が激増するのでクロックが上げられず

性能が思ったより上がらない

893 :Socket774:04/11/10 00:53:44 ID:K8p5GVIn
>>889

SPARCの"S"はScalableであったな。
881が何をいいたいのかチトわからんが。

894 :Socket774:04/11/10 01:45:13 ID:eds+FQlF
>>892
でも、AMDは90nmでも結構うまくいってるんだよな〜CPUの構造の違いなんだろうか?

895 :890:04/11/10 01:52:45 ID:y+nBg67M
>>894 IBMから技術導入したSOIの威力、という説があるけど。

896 :Socket774:04/11/10 09:44:37 ID:OsqQs8Ug
P4に比べてクロックが低めってのも効いてそうだ。>90nmのAthlon 64

897 :Socket774:04/11/10 12:23:40 ID:ySY+4H38
>>895
IBMのSOIが特に優れてるわけではないかもしれんぞ
Intelの90nmだってクソなのはプレスコであってPenMは消費電力削減に成功してるしな


898 :Socket774:04/11/10 14:38:01 ID:XvoXd0h3
NetBurstは倍速ALU積んでて、一部のゲート速度は表記クロック以上だし。
加えてPrescottはそれ以前のと比較してパイプライン1.5倍、キャッシュ2倍、
64ビット拡張用のロジックとレジスタファイルっててんこ盛りだから、
そりゃ消費電力尋常じゃないでしょ。

899 :Socket774:04/11/10 21:39:30 ID:Nfw56ToE
ぜんぜん命令セットの問題じゃないじゃんw
バス、メモリアーキテクチャの問題だったりネットワークや
プログラミングモデルの問題ならわかるけど。

単にIPCの限界が命令セットにあるといいたいのかな?
スーパースカラになっちゃうと(VLIWとかは別として)
どこも変わんない気もするんだけどね。

900 :Socket774:04/11/10 22:26:23 ID:LtJhg/0r
Blue GeneとかスパコンってCPUいっぱい使って高速化してるじゃん
今の技術でZ80を1ダイに1万個くらい乗っけたら速くなんないかな


901 :Socket774:04/11/10 22:46:41 ID:PoeVMlYH
制御する方にパワー喰われてショボンヌに1000ガバス

902 :Socket774:04/11/11 00:12:33 ID:5ZT3VkZB
>>900
スパコンって並列処理で高速化してるように見えてるだけでしょ。
直列処理やらせても大して速くならんが。

903 :Socket774:04/11/11 06:30:33 ID:aLp7Yr78
亀レスだが
>>878
Tru64ならまだしも、OpenVMSに挑戦するとは漢だな。
Itanium2用の評価判を持っているが、ハードを持ってない。
一時は、VMSも生き長らえるかなと思ってたんだけど、
HPは、もうIta2用のワークステーション出さないっていっているし、
HP-UX11iv2も、PA用に対応させる動きもある。Itanium2失敗の動きが加速してるね。
なんかもう、全てx86に収斂して行きそうな気がする。つまらんなー。



904 :Socket774:04/11/11 09:18:04 ID:9RLGpEcH
>>903


CPU大統一時代の到来だよ。

905 :Socket774:04/11/11 10:01:46 ID:hMm4txTe
>903
HPはアーキテクチャクラッシャーになってる(継子どころか実子まで処刑)が、
IBM の POWER は可愛い子に育ってます。
SUN の SPARC はグレ気味か。

906 :Socket774:04/11/11 18:07:44 ID:vsgH1abz
>>898
それだけ高クロックで動作してるというのに、
圧倒的にクロックの低いアスロンやPentiumMと同等性能って、
クロック上げる意義が失われている。

倍速ALUのクロックが最高速モデルなら7.6GHzだとして、
実クロック2.4GHz程度のAthlon64と性能の差がほとんど無いなんて、
以下に無駄な高クロックであるか...

907 :Socket774:04/11/11 21:36:08 ID:+eWUmD4C
>>900
どっちかっちゅーとその方向で考えられたのがCELLかな
実行性能は現物がでてこないとわからんが

908 :Socket774:04/11/11 23:01:51 ID:hMm4txTe
>906
結果的にその倍速クロック部分が熱湯クロック向上の足枷になったという
分析をしている人(サイト)も多いよね。
つーか intel 自身が認めたんだっけ?


909 :881:04/11/12 04:08:32 ID:y8U13TKu
http://www.aceshardware.com/SPECmine/top.jsp
スケーラビリティが低いっていうのはCPUの数を増やしたときに性能が伸びにくいということ。
x86はIA-64やRISC系のCPUと比較してスケーラビリティが伝統的に低い。
よくバスの問題とかいってる人もいるけど、
歴代x86がスケーラビリティでRISC陣営より劣り続けている事実さ、
IA-64のスケーラビリティの高さを見る限り、
ISAに起因している要素が何かあるという可能性も否定できないのでは?

910 :Socket774:04/11/12 06:23:03 ID:NUsPl3D6
スケーラビリティの高さは、なにによって決まるのですか?

911 :910:04/11/12 06:24:41 ID:NUsPl3D6
ごめんなさい。聞き方が悪かったです。

CPUの数を増やしたときに性能が伸びるようにするためには、何が必要なのですか?
具体的に、x86は何が悪くて、CPUの数を増やしたときに性能が伸びにくいのですか?

912 :Socket774:04/11/12 06:38:57 ID:1KAJ9YuN
>>909
最初からそうやって具体的にデータを挙げてくれないと。
性能と言ったって何の性能かも分からないし。

その表のSPECint_rate2000では、上位のRISC陣はデュアルコアチップで
倍のコア乗せてるから成績が良いだけ。
実質的にXeonMPがRISC勢に負けている感じはしない。

Itanium2のFSBは128bit400MHz。
XeonMPのFSBは64bit400MHz。
FSB帯域が倍違う。
それとItanium2は大容量の高速オンチップキャッシュ乗せてるし。

913 :Socket774:04/11/12 07:24:29 ID:EBRzFR0N
>>909
「可能性は否定できない」ねぇ。
それで何か説明したつもりなの?

914 :881:04/11/12 07:46:46 ID:y8U13TKu
>>912
漏れにはx86はスケーラビリティが低いように見えるけど。
HPC分野でx86があまり使われないのはスケーラビリティが低いから
っていうのが一つの原因だと思うけどね。
あと、具体的にデータを提示できないのが残念だけど、
昔のスペックでもx86はスケーラビリティがRISCに対して悪かった。
ま、結局原因不明ってことでこのネタはいいや。

915 :881:04/11/12 07:49:57 ID:y8U13TKu
>>913
漏れは何も説明・解説する気はさらさらない。
何故x86はスケーラビリティが低いのか?
ISAとスケーラビリティの関連性はどの程度有るのか?
識者がこのスレにいたら説明して欲しかっただけだよ。

916 :Socket774:04/11/12 09:22:55 ID:uKpMGfxg
> HPC分野でx86があまり使われないのはスケーラビリティが低いから
> っていうのが一つの原因だと思うけどね。

う〜ん、SMPでの鯖アプリならともかくHPCでの並列化効率にゃ
内部の命令セットなんて関係ないのは間違いない。

> ま、結局原因不明ってことでこのネタはいいや。

何勝手に決め付けて一人で納得してるんだ?
なんか聞きかじった知識で偉そうに(←これ重大)理屈こねてる
だけのようにみえるが・・・・・・


917 :Socket774:04/11/12 09:50:35 ID:y8U13TKu
>>916
別に素人だし聞きかじった知識しかないが、そんな偉そうにしてるつもりないけどなぁ。
ただ、ISAの出来とスケーラビリティの相関性について知りたかっただけなんだけど。

918 :Socket774:04/11/12 10:35:50 ID:H1wwL8L/
>909
基本的に x86 プロセッサは desktop PC 向けの設計だったから
というのが本質でそ。

AMD Hammer(Opteron)は設計当初からスケーラビリティの点を
大きく意識して設計してあるから RISC 系と比べても互角だし、
Intel Xeon ですらチップセット(などと呼べる代物ではないが)側を
頑張ればスパコンに使われているわけで。

919 :Socket774:04/11/12 15:29:00 ID:EBRzFR0N
>>917
だからどこからISAがスケーラビリティに悪影響を及ぼしているという電波を受けたんだよ?
わかんないならISAが関係しているとか言わなきゃいいのに。

920 :Socket774:04/11/12 15:31:02 ID:EBRzFR0N
そうそう。
「関係してない」というのを証明しろってのは悪魔の証明だからな。
そんなもん要求するな。と付け足しておく。

921 :Socket774:04/11/12 15:50:26 ID:y8U13TKu
>>919->>920
もっとも簡単な例でいくと
レジスタが少ない
     ↓
メモリアクセスが頻発
     ↓
バストラフィックが増大してスケーラビリティが低下

というパターンが考えられると思いますが。

>「関係してない」というのを証明しろってのは悪魔の証明だからな。
全く関係ないと思っているのは今のところこのスレではあなただけでは?

922 :921:04/11/12 15:54:54 ID:y8U13TKu
付け足し
http://ascii24.com/news/i/tech/article/1999/05/27/602463-000.html
>注)EPIC:和訳は明示的並列命令コンピューティング技術。
>インテルが提唱する、スペキュレイティブ実行、条件タグ付き命令、
>明示的並列実行といった技術を組み合わせることで、より高い並列実行性
>やスケーラビリティを実現するというテクノロジー。

厳密なISAからは外れますが、EPICはスケーラビリティの高いアーキテクチャ
だとIntelは宣伝しているようですが。

923 :921:04/11/12 15:56:40 ID:y8U13TKu
と、この辺のISAの質とスケーラビリティの関連について語れる人の
レスを期待していたのですが、期待はずれだったのでこのネタやめようかと…。

924 :Socket774:04/11/12 16:50:41 ID:TRnBWNIi
>>921
キャッシュの存在は無視ですか?

925 :Socket774:04/11/12 16:51:38 ID:EBRzFR0N
>>921
x86プロセッサの汎用レジスタは本当に(物理的に)8個しかないと思ってるの?
レジスタリネーミングって言葉きいたことない?

そもそも内部でμOpに分解されて全然別のコードが走るんだからISAなんて関係ないと思うけどな。

926 :921:04/11/12 17:01:35 ID:y8U13TKu
>キャッシュの存在は無視ですか?
レジスタにないデータが全てキャッシュに全てヒットするわけないでしょ。

>x86プロセッサの汎用レジスタは本当に(物理的に)8個しかないと思ってるの?
何で物理レジスタやレジスタリネーミングの話がここででてくるのかが理解できません。
>>921で書いたのはあくまでも例であって特にx86意識した書き込みでもないし、
一貫してスケーラビリティとISAの関係の話をしているので、ここでレジスタリネーミングの効果
がどの程度有るのかなどの話題に興味はありません。

>μOpに分解されて全然別のコードが走るんだからISAなんて関係ないと思う
そうですか。


927 :Socket774:04/11/12 17:02:34 ID:EBRzFR0N
む。レジスタリネーミングは意味合いが違うか。この場合。

なんにせよいまどきのIA32プロセッサなんてIA32->内部RISC命令のトランスレータ
をかぶせたRISCプロセッサでしかないんで、ISAの優劣なんざもはや関係ないと思う
のですよ。

928 :Socket774:04/11/12 17:03:48 ID:EBRzFR0N
>>926
>>μOpに分解されて全然別のコードが走るんだからISAなんて関係ないと思う
>そうですか。
ISAは関係ないということで終了ですね。


929 :Socket774:04/11/12 17:39:15 ID:H1wwL8L/
なんか ゆんゆん してますねぇ (´д`)

関係のないものの関係を語っている奴が、
他のものがどう関係するかについては >926 "興味がありません" だってさ…


930 :Socket774:04/11/12 17:43:42 ID:y8U13TKu
ISAによってメモリモデルが違うって時点で関係ないわけないでしょw
もはやどうでもいいがw

931 :Socket774:04/11/12 17:54:19 ID:iWF+JPy5
>>922
> >注)EPIC:和訳は明示的並列命令コンピューティング技術。
> >インテルが提唱する、スペキュレイティブ実行、条件タグ付き命令、
> >明示的並列実行といった技術を組み合わせることで、より高い並列実行性
> >やスケーラビリティを実現するというテクノロジー。
> 厳密なISAからは外れますが、EPICはスケーラビリティの高いアーキテクチャ
> だとIntelは宣伝しているようですが。
元記事みてもよくわかんないけど、Intelは
・スペキュレイティブ実行
・条件タグ付き命令
・明示的並列実行
でスケーラビリティがあがるっていってるの?
並列実行性しかあがんなそうだけど。

932 :Socket774:04/11/12 18:15:44 ID:+RDbIFMB
>>903
そうか?互換性なんてつまらん部分をx86レベルに押し付ければいいから中身はなんでもあり
・クロック最優先(部分的に7Ghz超が家レベル・・・とんでもない時代になったもんだ!)の熱湯
・IPC優先の浜(というか製造技術勝負になったら淫にかないっこないから?)
・P6アーキテクチャーの正統後継者PenM
・内部VLIWのEfficeon

本家UltraSPARCにOutOfOrderがつかない(で不時通SPARC64Vに先越された)のは
互換性とるためにレジスタウインドウを捨てられないからだってこの板のどっかで見た

933 :Socket774:04/11/12 20:17:37 ID:dRCOGQET
>>930
relaxedなメモリアクセス命令を増設

934 :Socket774:04/11/12 22:22:39 ID:67WnTC+M
>>926
キャッシュにヒットしてもコヒーレンシの維持とかいろいろ必要だしね。
制御プロトコルを簡単にしてコストを減らす(レイテンシも減るかも)か、
スケーラビリティを大きくするかといったトレードオフもあるんじゃないかな。


935 :Socket774:04/11/12 22:53:42 ID:NUsPl3D6
レジスタ数の大小とキャッシュ外のメモリへのアクセス頻度は関係ないですよ。
本質的にはレジスタもキャッシュなんですから。

で、ID:y8U13TKuさんは知ったかぶりだと思うよ。
Webで公開されている、たった1つの文を根拠に色々推測するのは、よく知らない証拠。

とくに断りなく言う場合の広義のスケーラビリティというのは、
同一のアーキテクチャで小さいものから大きなものまでカバーできますよ、
というくらいの意味しかない。
「スケールアップ」「スケールアウト」という言葉を聞いたことない?

Itanium2のその話に関しては、
スループットが出る力強いプロセッサでハイエンドのアプリに対応できるよ、
というような意味でスケーラビリティがあると言ってると思う。「スケールアップ」だね。

もちろん、Itanium2には多数のCPUを並列にする機能もあるけどね。これは「スケールアウト」だね。

936 :Socket774:04/11/12 23:15:20 ID:y8U13TKu
>Webで公開されている、たった1つの文を根拠に色々推測するのは、よく知らない証拠。
EPIC云々の文章は今日適当に検索して見つけただけです。
漏れはSPECベンチの歴代スコアの方から純粋にISAがスケーラビリティに
大きく影響しているのかなと妄想していたのです。
漏れの考えは的はずれだったということですね。

937 :Socket774:04/11/13 06:02:46 ID:5YOnW29T
>>934
キャッシュヒットする場合、そのキャッシュラインが
他のプロセッサと共有されてない限り
コヒーレンシ維持の為に外部バスにアクセスすることはないと思うけど。
レジスタの代わりにメモリ(普通はスタック)に確保した変数は
他のプロセッサと共有しないから。

938 :Socket774:04/11/13 11:25:24 ID:d8R0GXfk
>>936
妄想が当たると何がいいことがあるの?

939 :Socket774:04/11/13 11:41:03 ID:jazcn/5Z
>>937
まあそうだけど、キャッシュラインに変数が1つしかないわけではないから。
コンパイラは載らないようにするんだろうけど。
実際キャッシュ制御の違いによる差ってどれくらいなのかな?

(あと、共有していなくてもストアするとステートが変わって、ディレクトリ
へに書きにいくアクセスがある。ディレクトリって無い奴もあるのかな?)

940 :Socket774:04/11/13 16:43:20 ID:gJbrXyeL
そういえばx86=x86-64(AMD64&互換EM64T)に自動脳内変換してスケーラビリティ話を>>930まで読んでたw
でもx86だけだと普通x86-32だよな(x86-64的言い方すれば)
そりゃ基本的に最大4GBを小細工してカバーじゃオーバーヘッドでスケーラビリティ低くなるのは当然だw




y8U13TKuたんって実は超級釣り師なんじゃ?

941 :Socket774:04/11/13 16:54:54 ID:f/9jgwPs
いや、ただの引きこもりだろう

942 :Socket774:04/11/13 18:22:57 ID:0Ie+LGnH
正解w

943 :Socket774:04/11/14 05:19:48 ID:MdY6S3ep
知ったかの集まるスレ

944 :Socket774:04/11/14 17:18:39 ID:FEdZJu/1
>940
みな釣りなの分かってて戯れてるだけなんだから
"超級"ってのはないっす

945 :Socket774:04/11/17 01:23:29 ID:JjRaQZhA
それはともかく、
論理レジスタは何個が最適なんだろう?

946 :Socket774:04/11/17 02:07:47 ID:Jk0Sv8Mu
用途にもよるし、誰も知らない。

947 :Socket774:04/11/17 06:04:48 ID:2uhghwfq
基本的には命令コード長とご相談。ってところじゃない?


948 :Socket774:04/11/17 10:28:19 ID:bU8B5PaG
おかげでインラインアセンブラが使いやすい
PPCじゃこうはいかない

949 :Socket774:04/11/17 14:01:06 ID:KPyEM9+r
もうすぐ次スレか?
うんこはどこいった?

950 :MACオタ>948 さん:04/11/19 20:08:28 ID:OnGaBo2C
>>948
演算ごとに使えるレジスタに制限があるx86のアセンブラが使いやすいとわ初耳す。
RISCのアセンブラわ、メモリからレジスタへのロード命令をいちいち記述しなければいけない分「手間」わ
かかるすけど、命令の直交性が良いすから記述わ楽だと思うす。固定長命令なので、逆アセンブルも
楽だし(笑)

951 :Socket774:04/11/19 22:14:57 ID:CJblZy2t
その変な日本語を直せ

952 :Socket774:04/11/19 22:36:07 ID:uAkH3Uug
>>950
 >>948では無いけど、制限があることで逆に使用パターンとか
クセとかが固定されて使いやすい&読みやすいと感じることはある。
PPCのアセンブラは知らないけど68kではレジスタをどう使おうかと
結構悩んだ。

953 :Socket774:04/11/19 23:38:39 ID:Ptm3WVGK
>>952
管理教育の弊害がこんなところに。

954 :Socket774:04/11/19 23:42:49 ID:tcssRwU5
>>952
68kはアドレスレジスタとデータレジスタがあるから使いづらい。
そしてアドレスレジスタは余り、データレジスタは足りなくなる。

955 :Socket774:04/11/20 00:26:31 ID:Hu8K097i
x86は不思議な良さがある気がするんだが。慣れてるだけかね
プロテクトモードのアフォみたいな複雑さにはひたすら閉口するのみだが。

956 :Socket774:04/11/20 00:50:16 ID:vuXZ6tIE
日本人って限定された環境で力を発揮するのが得意じゃん。
ヘタに自由度が高いとどうしていいのか分からなくなる人が
多いんじゃないかとオモタ。

957 :Socket774:04/11/20 00:58:31 ID:T38GWFtB
俳句みたいなもん?

958 :952:04/11/20 01:19:27 ID:b2SsY6rH
>>954
あ、やっぱり?そして効率的な使用法でまた悩むことに。

>>956
俺まさにそのタイプだな。

959 :Socket774:04/11/20 02:03:37 ID:7Uz6mvgw
128個〜512個のレジスタを効率的にスケジューリングして
必要最小限のロードストアになるコードはどれほど大変なことやら。
r317とr28の和をr34に入れてr17と差分を取り....

960 :MACオタ>958 さん:04/11/20 09:11:09 ID:hOmEPib6
>>959
  ----------------------
  128個〜512個のレジスタを効率的にスケジューリングして
  ----------------------
私の知る限り、主要なRISC ISAのレジスタ数わ、こんなもんす。脳内プログラマの方すか?
 ・PowerPC, Alpha, MIPS, PA-RISC: 32(int)/32(fp)
 ・SPARC: 136(int, ただし、一つのプロセスから見えるのわ32)/32(fp)

961 :Socket774:04/11/20 11:54:57 ID:urZvIgER
959は多分物理レジスタのスケジューリングまで考えているのだろう。

あとSPARCは1プロセス32じゃ無いよ。
それとレジスタウインドウの事を考えて132と言っているのだろうけど、
実装によって異なる。

962 :Socket774:04/11/20 12:06:15 ID:pLn1v+1N
512個もレジスタを扱えるようにしたら、命令コードのうち9bitx3=27bitも
オペランドに食われちゃうわけで。32bit命令長だと相当きついと思うがな。
というか無謀。

しかし64bit命令長というのもそれはそれで、コードデンシティが相当低く
なりそうだ。
#まぁあるけどな。64bit命令長のプロセッサ。

963 :Socket774:04/11/20 12:56:40 ID:/hwWxTx8
32bit命令長ってなに?

964 :Socket774:04/11/20 13:09:34 ID:AR/o9K8R
>>963
恐らく1命令が32bit単位のコード体系の事だろうかと邪推してみる。

965 :Socket774:04/11/20 22:16:01 ID:KlQLVi+D
素人考えだけど、そんなレジスタ増やすと、コンテクスト切り替えのときに
保存・復元しなくちゃならない情報が多くなって遅くならない?

966 :Socket774:04/11/20 22:46:27 ID:Sh0QTF+h
MACオタも脳内プログラマにしか見えん。
自ら使った生の感想プリーズ。

967 :Socket774:04/11/20 22:55:57 ID:s63qmXGr
>>965
レジスタが多いISAだとコンテクスト切り替えのときに
バストラフィックが増大してスケーラビリティが低下します

968 :Socket774:04/11/21 00:36:04 ID:b3bD2HfK
レジスタリネームは?

969 :Socket774:04/11/21 00:39:07 ID:z+YuR4Tk
クロックがGHzの時代でも秒60回程度のタスク切り替えのコストが響きますか?

970 :Socket774:04/11/21 01:33:12 ID:uCh8ERjI
おまいら、レジスタ数が増えて問題になるのはコンテキストスイッチだけじゃなく、
むしろ通常のコードだぞ。インライン展開されない限り全ての関数呼出しで
レジスタの待避、復帰が行われることになる。

現実的にはgcc程度にまともなコンパイラを使うことを前提とすると、プログ
ラムから見える論理レジスタ数は16個から32個の間程度で十分。それ以
上はどうせ使われない。

971 :Socket774:04/11/21 02:36:37 ID:1Suksgpd
そこでレジスタウィンドウですよ

972 :Socket774:04/11/21 03:58:11 ID:uCh8ERjI
>>971
SPARCみたいなレジスタウィンドウは結局企画倒れじゃね?
物理レジスタ数を越える境界では復帰、待避が必要になるし。
それが、プログラムから見えなくても有り難みはなさげ。
マイクロアーキテクチャレベルのレジスタリネーミングなんかとも
相性悪そうだし。

973 :MACオタ>670 さん:04/11/21 04:53:37 ID:UivSGDNJ
>>970
  ---------------------------
  インライン展開されない限り全ての関数呼出しで
  レジスタの待避、復帰が行われることになる。
  ---------------------------
自分でコンパイラの出力を眺めてみれば判ると思うすけど、今時のOSで実際に関数呼び出し時に退避する
レジスタわ全体の極一部す。残りわ必要に応じて呼ばれた側で退避、復帰を行うす。

974 :Socket774:04/11/21 05:38:06 ID:uCh8ERjI
>>973
もう少し考えてみ。呼ぶ側で待避、復帰するのと呼ばれた側で
待避、復帰するってのは本質的にトレードオフなので大差ない。
どちらにせよ、calleeで使われない、もしくは、callerで使われて
いないということを知らない限り、自分で必要な分だけにせよ、
盲目的に待避、復帰することになる。これを避けるためには、
極力使うレジスタの数を減らす方向で最適化することになる。
この場合、ISAで馬鹿みたいに論理レジスタの数を増やすこと
は、何の助けにもならないばかりか、>>962が書いているよう
に命令のデコーディングにも悪影響を与えることになる。

975 :Socket774:04/11/21 05:38:18 ID:6OkCsAGH
>>969
それは昔のBSDの話かな?

Windowsなんて、ものすごい数のスレッドが蠢いているから、かなりの回数だよ。
パフォーマンスモニタでSystemのContext Switches/secを見てくださいな。

976 :975:04/11/21 05:40:28 ID:6OkCsAGH
ちなみに、自分のマシンを見たら、だいたい毎秒5000〜10000回ですね。

977 :Socket774:04/11/21 06:08:35 ID:uCh8ERjI
>>974
間違えた。デコーディングじゃなくてエンコーディングな。

978 :MACオタ>674 さん:04/11/21 06:18:25 ID:UivSGDNJ
>>974
OSごとに規定があるすけど、callerが退避するレジスタわ決まっているすよ。
その範囲でcalleeわ退避無しで自由にレジスタを使えるすけど、その範囲を越えてレジスタを使用する場合わ
自前で退避を行うす。
もちろんcalleeわ自分が使用するレジスタの範囲わ理解しているす。

更に最適化の具合によってわ、コンパイラで退避するレジスタを削ってる模様す。
一例としてPPC Linuxの話す。 http://www.denx.de/twiki/bin/view/DULG/LinuxKernelRegisterUsage
32個の整数レジスタのうち、GPR13-31がcalleeが退避の有無を選択できるレジスタに相当するす。

979 :Socket774:04/11/21 07:55:09 ID:uCh8ERjI
>>978
一般に関数呼び出しってのは連鎖するんだぞ。つまりcallerであり、
同時にcalleeでもある。caller saveと規定されたレジスタはその関数
内で閉じている限り待避なしで使えるが、更に別の関数を呼び出す
場合には、必要であるかぎり必ず盲目的に待避する必要がある。
同じ構造はcallee saveのレジスタにも存在する。

コンパイラの最適化の方針の一つとして、レジスタの待避、復帰を
避けるようにレジスタ割りつけを行うことは当然可能だが、それ自体
は本質的に使用レジスタ数を削減するという方針であり、命令スケ
ジューリングなどとしばしば矛盾する。もっとも、Out of Order実行を
するスーパスカラな最近のマイクロアーキテクチャを相手にする場合
は、レジスタプレッシャを下げることをメインに命令スケジューリング
したほうが高性能が期待できるという話もある。

いずれにせよISA的なレジスタ数が増えても旨味はないという話題な
のだが?

980 :MACオタ>879 さん:04/11/21 08:03:16 ID:UivSGDNJ
>>979
Caller - Calleeの連鎖の中で、各段階ごとに
 ・上書きが行われるレジスタ (OS規定の暗黙のセットを含む) -> 退避
 ・上書きされないレジスタ -> 放置
ってだけなんすけどね。まあ、騙されたと思ってあなたのコードでコンパイラの出力結果を眺めてみると
良いと思うす。まさかx86の環境しかなくて語ってるんじゃないすよね?

981 :素人965:04/11/21 12:27:33 ID:2HUks886
>>975
それに、ハードウェア割り込みの応答速度を考えると、必要以上に大量のデータを
退避・復帰されるのって意味無いですよね。
昔Fast interruptと通常のinterruptで保存レジスタが違うMPUがありましたけど、今はそういう
仕組み持ってるプロセッサってないのかな?

>>980
それは理解してるんだけど、多くのプログラムの関数呼び出しの頻度を考えると、
退避されないレジスタが大量にあっても、使い道がある場面って限られそうに思います。

退避されるレジスタ(ある関数内の状態情報)と、退避されないレジスタ(スクラッチパッド)と、
どれくらいあるのが適当なのか、なんか論文とかあったら示してもらえませんか?

982 :Socket774:04/11/21 12:49:22 ID:z+YuR4Tk
必ず退避するってのはローカルスコープを支えるフレームポインタ一個で
それ以外は使用する分だけ退避するでしょ。
関数の返り値の分は宣言見れば分かるから呼び出し側、
それ以外は全部呼ばれた側。

983 :Socket774:04/11/21 13:24:39 ID:ROtKKL/v
次スレまだ〜〜〜?

984 :Socket774:04/11/21 14:50:15 ID:4/4rCCqw
とりあえず…
関数コールでのレジスタの退避ポリシーをOSごとの規定ってのはちょっと抵抗があるな。
それ以外はまあまともな事を書いているか。

985 :Socket774:04/11/21 14:57:01 ID:yn5tgO7z
>>976
その数値はSleep中のも入っていて実際のスイッチは秒1000回くらいでは?
昔Windows2000でチェックしたときは秒800回くらい処理が途中で切られてた

986 :MACオタ>984 さん:04/11/21 15:06:55 ID:UivSGDNJ
>>984
そういう時には正しい表現を書かないと只の煽りさんにしか見えないかと思うす。
確かにPEFやらELFやらMach-Oやらのアプリのランタイム・アーキテクチャごとの規定というのが正しいすね。

987 :MACオタ:04/11/21 15:16:53 ID:UivSGDNJ
ちょっと元の話に戻すと、レジスタのサイズが大きいSIMD命令セットにおいてわ、流石に割り込み時のレジスタ
の退避にわ多少の対策が考えられているす。

Apple/IBM/MotorolaのAltiVec搭載プロセッサにわ、VRSAVEレジスタってのがあって使用中のレジスタを登録
しておくようになっているす。割り込み時にわ、このレジスタの中身を見て退避と復帰を行うす。
IntelのMMXわレジスタ退避のコストを避けてFPレジスタを使用するようになっているす。

988 :Socket774:04/11/21 16:03:07 ID:vK8Jl+jP
>>981
ARMが高速割り込みもってますな。
保存じゃなくてレジスタバンクの切替えだったような気がしますが。


989 :976:04/11/21 16:09:49 ID:h0APC+0k
>>985
Sleep中のも入っている、というのはどういうことですか?

このマシンはCPU中心ではなくI/O中心の処理をしているし、
WindowsはOS自体がマルチスレッドで書かれているので、
APIを呼んで戻ってくるまでにコンテキストスイッチがバンバン発生しますよ。

990 :Socket774:04/11/21 17:00:36 ID:nkhAKqXY
Ahlon64にはコンテクスト・スイッチングを高速化するための独自の拡張があったような……。

991 :Socket774:04/11/21 17:56:15 ID:U7SPZ3SV
そもそも>>960にあるようなRISCプロセッサの汎用レジスタ数32個って
どんな事情から出てきたものなんだろ。なんか理論的(統計的なものでも
いいけど)な根拠があるのかな?

>>986
そういう話はABIと一言でいえばいい話と違いますか?
ELFやMach-Oなどのバイナリフォーマットの話は関係ないでしょ。
http://www.caldera.com/developers/devspecs/abi386-4.pdf
http://www.caldera.com/developers/devspecs/mipsabi.pdf

992 :MACオタ>991 さん:04/11/21 18:32:51 ID:UivSGDNJ
>>991
  --------------------------
  そういう話はABIと一言でいえばいい話と違いますか?
  --------------------------
サブルーチンの呼び出し方をABIとわ言わないす(笑)

993 :Socket774:04/11/21 18:36:39 ID:U7SPZ3SV
>>992
>サブルーチンの呼び出し方をABIとわ言わないす(笑)

へぇーそうなんだ。なるほど。
じゃあELFやMach-Oは何が言いたくて出てきた話なのかな?
これらのドキュメントのどこに「サブルーチンの呼び出し方」が
載ってるのかな?

994 :MACオタ>993 さん:04/11/21 18:44:00 ID:UivSGDNJ
>>993
資料を探したければ"runtime architecture"で探すと良い筈す。>>986に挙げたのわ、一般的なPowerPCの
runtime architectureす。

995 :Socket774:04/11/21 20:03:55 ID:1Suksgpd
レジスタが少ないとき:
レジスタに収まりきらない変数はスタックに退避
レジスタが多いとき:
コンテキストスイッチの時にはレジスタの中身をスタックに退避

多くて特に損することは無い気がするんですが・・・

次スレ案
【SIMD】CPUアーキテクチャについて語れ!第2世代【VLIW】

996 :MACオタ>995 さん:04/11/21 20:22:22 ID:UivSGDNJ
>>995
  ---------------------------
  コンテキストスイッチの時にはレジスタの中身をスタックに退避
  ---------------------------
このコストがレジスタが多くてレジスタの幅が広い場合にはバカにならないすよ。

997 :Socket774:04/11/21 20:30:31 ID:1Suksgpd
>>996
馬鹿にはならないけどレジスタ少ないよりは多いほうがいいということ。

簡単のため16個の変数を使うプログラムがあるとして、
レジスタが8本しかなければ、
 普段から8個はスタックに退避
 スイッチの際にレジスタ中の8個も退避
レジスタが16本あると
 普段はレジスタ中で全部処理できる
 スイッチの際は16個ともスタックに退避

使い切れないぐらいレジスタがあって、しかも使ってないレジスタも
機械的に退避させるような状況では確かに不幸なことが起こりますね。

998 :Socket774:04/11/21 20:45:56 ID:8zNQDovo
>>991
レジスタ数の根拠はヘネパタ当たりにも書いてあるんじゃないかなあ。
ヘネパタ本は、定量評価と言う所がミソだしね。

>>992
サブルーチンの呼び方はABIとは言いませんが、ABIにサブルーチンの
呼び方は含まれていますがねえ。
(わざと話を逸している?)

>>995
レジスタを使い切っていない時もOSはそれを判断できませんので、
全てのレジスタを退避します。使っていないレジスタの退避分が
無駄になります。
SPARCのレジスタウィンドウも似た意味で無駄があります。


999 :Socket774:04/11/21 20:55:45 ID:rIT4W/vH
.

1000 :Socket774:04/11/21 20:57:18 ID:vO47Ay3x
1000


1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

322 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)