RISC型CPUについて
タイトル嘘!バーか、それろり
バナー作ってやるからあプロだおしえれ! >>2
わかった、今からRISC MPUについて語る
削除依頼出さないで ゚・(ノД`)・゚・。
||,...
/;;;(*。;-。)>>2
/.:;∪∨∨
(/┃J
┃
@
∧_∧ ┃ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ・∀・)┃ < age
( ⊃ \_______________
│ │ │ ┃
(__)_)
NetBSD hitati SH4/DC(小さいし動かん,配布が中止されとるみたい)
http://www.dcemulation.com/soft-netbsd.htm
Linux SH4/DC 10MB ver と 200MB がある
メモリのマウントでvi,gccがつかえる
http://www.m17n.org/linux-sh/index.ja.html UNIX番キタ━━━━━━(゚∀゚)━━━━━━━!!!!
12キタ━━━( ´∀`)・ω・) ゚Д゚)・∀・) ̄ー ̄)´_ゝ`)━━━!!!!
OOPキタキタキタキタ━━━(゚∀゚≡(゚∀゚≡゚∀゚)≡゚∀゚)━━━━!!!!!!!!!!
日下部ーキタ─wwヘ√レvv~(゚∀゚)─wwヘ√レvv~─!!!
糞擦れキタ━━━( ´∀`)・ω・) ゚Д゚)・∀・) ̄ー ̄)´_ゝ`)━━━!!!!
身らのキタ━━━(゚∀゚)━( ゚∀)━( ゚)━( )━( )━(゚ )━(∀゚ )━(゚∀゚)━━━!!!!!
大陸帰化━━━< `Д´>━< `Д>━< `>━< >━( ` )>━(∀`)>━<(´∀` )>━━━!!!!!
飛行機キタ━ε(゚∀゚)з━(ε゚∀)━(ε゚)━ε( )з━(゚ з)━(∀゚ з)━ε(゚∀゚)з━!!!!!
iso9660キ.…(-_-)キ(_- )キ!(- )キッ!( )キタ(. ゚)キタ!( ゚∀)キタ!!( ゚∀゚ )キタ━━━
。 。
\ /
dat落ちキタ━---------( ∀ )━━━━━━!!!! なぁ、Pentium4のハイパースレッドの話だが、一つのマイクロプロセッサで
2つのスレッドが動くとか、Pentium4には出荷時に回路が入ってて・・とか、
1CPUなのに2CPUだとか言う話になってるけど、なんかチョット違うよな・・・
って思てた奴いる? >>13 烈しく同意
いったいに何に使うんじゃ?メモリ空間をファンクションコードレジスタ
見たいなんで沸けるんか?
>>14
意味不明
スレッドレベルならアドレス空間をわけんでもいいだろ
ファンクションコードレジスタでどうやってわけるんだ
いや、元々ハイパースレッドっていうのはスーパースカラのパイプラインを
ブン回すための一つの方法だよな。Crusorはそれを動的Compilerで
行おうとして、Intelはハイパースレッドで行おうというわけでしょ? 68kのころに似たようなのがあったな。FCレジスタで
メモリを分割してプロテクションするっての。オーバ/アンダ風呂攻撃には絶大だわな。
でハイパースレッドってさー、一つのCPUで同時に2つ以上のOSが回せるって
ほんま? もう、RISCもCISCもない。適材適所。
議論自体がもう意味がなくなった存在。むしろ、やりたいこと
できんの?って研究者の方に怒られました。
んー。アセンブリやコンパイラ技術レベルでは区別の意味おおありだと思うけどね。
とりあえずGCCはi386以外、特にRISC系archではまだまだへぼい。 >>19
> とりあえずGCCはi386以外、特にRISC系archではまだまだへぼい。
それは RISC/CISC 関係あるの? P4のハイパースレッドは、ALUを時分割(というか交互?)して使って
トランジスタ当たりのCPI (clock per instruction)を向上させるのだと
理解している。この方式は遠くはAppoloのPRISMアーキテクチャで実装
されていたと思う。
P4の場合にはスレッドというよりはALUが共用されたCPUが物理的に2個あ
るように見えるので、本当に2CPUのマルチプロセッサとして動作する(
と理解している)。間違っていたら乞指摘。 >>25 した。
逆数なんだから同じものだし、「向上」っていうと数字が増えた方がピンとくるなあ、と思った次第で。
計算機科学的にはCPIの方が由緒正しい用語っぽいですか?
>>26
単に1を境に主流が入れ替わっただけと感じてる。
昔の世界ではIPC 0.25よりCPI 4の方が直感的だったわけで。 >>27 なるほど!
歴史を肌で感じていないと出てこないお言葉です。
自分が若者だということがわかりました。ヽ(´▽`)ノ ご指摘のとおり、 CPIを低減させる という表現のほうが正しいですね。
CPIは少ないほど良いです。すみません。 (RISCのCPI戦争は10年昔の
話だから、ボケちゃったよ)
お前ら何しゃべってんのかわかんねーけど、
なんかカコイイぞ!! 丶 l /
こんなのイヤ〜っ!! >>32
. // l ヽ
/ l )
/ ノ
W∠ /
_ -‐-、 (⌒) く
__ - ~ -‐- ヽ/ /
,. -‐ ~ 丿ノハ )) /
( ( ( / | | (>)(<)|/
( __(⌒)゙、⊂つ/ヾ、
/`|\ /ヽ、| ヾヽヾ )ノ
~「 /\__| )ノ
|/ / /
いとしの林檎ちゃんを射止めるのは、RISC、CISCどっちかな? >34
x86 は内部は RISC みたいなもんでしょ? >>13
ハイパースレッド≠ダイ内マルチプロセッサ
でOK? >>38
ダイ内TSSと考えた方がよい
>>40
68030 間違えた。
ワラタのは >>36 じゃなくて >>37 ですた・・・。 >>40
RISCじゃ無いけど、H8。
なぜか目の前に転がってるので、遊んでます。
>>34
「x86, RISCの勝因、(x86以外の)CISCの敗因」だな。
特に鋭いことは言ってない。 固定命令長のRISC型CPUの方がCISC型にくらべて
2倍ぐらい実行速度が速いって認識でいいの?
そいで完全CISC型CPUは現場にはもう存在してないと、、 >>45
なんか日経なんとかの丸写しっぽいね。5点。
ごめん、間違った。「DOS/Vマガジンあたりにありそうな
薄っぺらな記事」だった。
> x86 は内部は RISC みたいなもんでしょ?
この話はよく出てくるけど、具体的な内部構造とか、X86 命令がどう内部的に
処理されてるかがわかりやすく書いてあるとこはないのかな?
レジスタが足りないせいで、やたらとメモリにアクセスする X86 命令を内部の
レジスタアクセスに置き換えていてステートが必要なときに初めてキャッシュにかく
みたいな事をやってるんだろうか?それとも、その辺は高いクロックとでかい
キャッシュで吸収ってことになってるんだろうか?
その内部に持ってる RISC を直接使えるようにしてくれれば、RISC でないと
できないようなオプティマイズの恩恵も受けられそうな気がするんだけど
そういうのは無理なのかな?それで Itanium のように X86 命令も実行
できるようにしておいて、直せるところから RISC ベースのコードにかえて
いけば OS, アプリももっと速くなると思うんだが... (Big Endian で)
それとも X86 命令をデコードして実行する内部回路はそんな必要もないほど
速いのかな? 内部の RISC 化で何とかしようとしたけど X86 アーキテクチャが足を引っ張って
パイプラインや実行ユニットの利用効率が低いからハイパースレッティングで
他のものを走らせる余地があるってことか... 幸いレジスタコンテキストは小さいので
複数のものを切り替えるのもオーバーヘッドがちいさいと。 >>51
Itanium の X86 命令は後方互換性のためだけにあるんじゃ?
同じように持ってるPA-RISC の命令セットもそう。
Itanium では実用に程遠いほど遅いって聞いたぞ。
McKinley ではどうだろう。使ってみたヤシはいないのか? > Itanium の X86 命令は後方互換性のためだけにあるんじゃ?
それはそう。仕組みはよくわからんが、Pen* ほどはこってないのかも。
こっても意味ないし。486 とかの回路が入ってたりして。遅いって、
どの程度おそいんだろ?
Itanium は PA-RISC の命令も持っていると思ってたけど、そうではなくて、
PA-RISC のコードはソフトウェア変換で実行してる。IA64 HP-UX だと、
これはインタープリタとトランスレータの2段がまえで最初のうちはインタープリタ
で動かして、統計をとってよく呼ばれる部分は(オプティマイズをかけて)IA64 の
命令に変換してる。このオプティマイズのときに Itanium 特有のオプティマイズの
恩恵もうけられる。Java の HotSpot によく似てる。PA-RISC 版の Java を
動かすと HotSpot で byte code -> PA-RISC 変換をやって動くことになる
けど、その自体が PA -> IA64 インタープリタ、トランスレータの上で動くと
いうややこしいことになる。さすがに native な IA64 コードにはかなわないが、
その数分の1程度の実行速度は出るらしい。X 周りとか、PA のままの
プログラムも残ってるけど、気になるほど遅いということはない。
Itanium2 は実行ユニットの追加、パイプライン、メモリ、キャッシュ周りの
改良が効いたのか、ベンチマークではいい数字出してるみたい。 ま、思ったのは x86 命令を変換実行して、他のプロセッサにもパフォーマンスで
負けない Pentium* の内部 RISC を直接動かせれば足かせがなくなって最速
プロセッサってことにならないかなということ。 その内部 RISC ってのも x86
アーキテクチャに依存していてとても汎用プロセッサにはできないってところかな? レジスタリネーミングやアウトオブオーダーというのをご存知ですか?
P4は内部に128本の汎用レジスタを持ち、これをリネーミングして使う
ことで、メモリアクセス回数を減らしています。
P6のときは内部32本でした。
レジスタリネーミングはパイプラインのハザードを低減させる技術であって、
メモリアクセス回数を減らす技術はキャッシュとかライトバッファと思うが
如何。
>>55
Transmetaはどうなんだろう。今はやっぱりx86特化してるのかな?
(専門外なのでテキトー書いてます) > レジスタリネーミングやアウトオブオーダーというのをご存知ですか?
> P4は内部に128本の汎用レジスタを持ち、これをリネーミングして使う
> ことで、メモリアクセス回数を減らしています。
Sparc の in/local/out とか Itanium の gr32~127 を使いまわすようなことを
言うのかなといった程度の理解です。似たようなことを完全に内部で
やってるのかな?オーバーフローしたときはバッキングストアに書く代わりに
x86 レベルにさかのぼってメモリに書くってこと?メモリアクセスをレジスタ
リネーミングで解決しているとするとアドレスを保存するためにもう1つレジスタが
必要になりそう。
アウトオブオーダー実行はどの範囲でやるんだろ?ブランチが多いと効果も
小さいかも。
x86 でメモリ上の値を変更する命令と変更後の値を使う命令をメモリアクセス
なしに内部のレジスタで済まして x86 のコンテキストを確定するまでメモリに
書き出しもしないということであればスゴイ。
> Transmetaはどうなんだろう。今はやっぱりx86特化してるのかな?
http://www.geocities.co.jp/SiliconValley-Cupertino/6209/#Transmeta%20Crusoe
の解説によると x86 依存のハードを持っているみたい。
Transmeta の Midori Linux はひょっとして Crusoe ネイティブかと思ったんですが、
x86 モードのようですね... >>60
マルチプロセッサ構成のことを考えると、ストア命令が発行されたら、
値をキャッシュに書かなければダメなんでないかい?内部レジスタが
たくさんあったとしてもこの操作ははしょれないと思う。
>>61
そうですね。
128個もレジスタを持つ CPU コアを 3G over で出せるのなら、そのまま RISC として
出せばよいと思うんだが... それよりも互換性ってことが。 x86 アーキテクチャって
あとどれくらい生き延びるんだろ?