変わった
マッカー
渡邊鼎の!言いたい放談!
 

84 読者(WS氏)の考えた604eのお話。

読者の方:wxxxsxxxx@wxxxxx.mxxxxx.com さんから、以下の文章が送られてきました。
これをネタに一文書けば?てな感じですが。
まずは、ご紹介。次回、書いてみます。

以下、転載可な(笑)、604eのお話。

PowerPC 604eといえば、出た当時は、押しも押されぬ高性能MPUでしたが、今は、G3(PowerPC 750)に押されて、すっかり人気が無くなったように見えます。この、一般的には話題性に乏しい(^^; )604eチップを、Macに搭載した場合の高速化方法に付いて、色々と考えてみました。

604eは、Macに搭載されているものとしては、350MHzの物が最高ですが、
350〜400MHz程度の速度をターゲットにして、考えてみます。

まず、形態としては、PowerMac7300〜9600用のCPUボードで考えます。もちろん、互換機も同じソケットが有れば対象になります。これは、予想されるユーザー層から考えれば、一番無難でしょう。

また、シングルプロセッサよりも、デュアルプロセッサを主体にします。これは、シングルで350MHzoverの物を、ボードに仕立てたとしても、G3ボードに対して優位性があまり無い事が考えられるからです。(ただし、一応、シングルも考慮に入れます。)

肝心の構成としては、例をあげると、
・CPU : 604e/350MHz x 2
・2次キャッシュ : 1〜2MB
・その他 : 2次キャッシュコントローラなど
と言った所ですが、今までの604系(mach5系除く)のボードと違うのは、2次キャッシュがボードに載っている所です。Appleも、9600/350などで採用していましたね。

これを、Apple Inline Cacheと同じ構成でやっても面白く無いので、もう少し工夫してみます。
(ここから先は、本当に実現できるのか、あまり自信は無いです。(笑))


方法としては....
750が、高速だと言われる理由の一つに、バックサイドキャッシュの存在があります。
これに近い事を、604eでやってやろうと言う訳です。

750と比べ、604eが不利なのは、2次キャッシュにアクセスする時は、システムバスにアクセスできない(同じバスを使っている)と言う事があると思うのですが、CPUバスを、できる限り高速にして、2次キャッシュコントローラ側で、システムバスへのアクセスと、2次キャッシュへのアクセスを、上手く処理してやれば良いのでは無いか?と考えました。

例えば、750/300MHzで、2次キャッシュが150MHz、システムバスが50MHzの場合、2次キャッシュバスが64bit、システムバス(メインメモリまで)が64bitだとして、理屈上は、(おおざっぱですが)1200+400=1600MB/sec のデータを流せます。(このへんのスループットの計算方法が全然違ったら、笑ってやって下さい。)

現状のApple Inline Cache搭載の604e/300では、CPUバスが100MHzになります。
これでは、(2次キャッシュ+メインメモリ合計で)800MB/secになってしまいます。

ここで、CPUバスを200MHzに上げられれば、1600MB/secで、同じになりますね?

また、2次キャッシュアクセス時にシステムバスにアクセスできない問題をかわすために、2次キャッシュコントローラで、キャッシュアクセスとシステムバスアクセスを、交互に割り振ってやります。(ただし、1対1である必要は無い)今の例では、200MHzでキャッシュを動かして、4回に一回だけ、システムバスに主導権を(強制的に)引き渡します。

これでシステムバスは、50MHz相当のアクセスタイミング、2次キャッシュバスは、実質150MHz相当のアクセスタイミングになりますね。(システムバスの方は、上手くバッファリングしてやらないと、ダメでしょうけどね。)

ただし、このままだと、ちょっとコストパフォーマンスが悪くなりそうですね。(^^;

そこで、ちょっと数値を調整すると....
CPU内部クロック = 350MHz
CPUバスクロック = 175MHz (1:2)
2次キャッシュクロック = 175MHz (実質131.25MHz相当)
システムバスクロック = 43.75MHz (4回に一回...1/4)
ピーク時のスループット = 1400MB/sec

とか、

CPU内部クロック = 375MHz (ちょっとオーバークロック(笑))
CPUバスクロック = 150MHz (1:2.5)
2次キャッシュクロック = 150MHz (実質100MHz相当)
システムバスクロック = 50MHz (1/3)
ピーク時のスループット = 1200MB/sec

と言った感じになります。
2次キャッシュの速度を抑えたのは、コストの問題です。(笑)
これでも、同等の構成のG3ボードより「安い!」とは行かないでしょうし、2次キャッシュコントローラー(兼システムバスコントローラー?!)を、新規に設計して、どこまでコストが掛かるのか?と言った点は、考えていませんが。(^^;;

わたしは、PowerMacでのデュアルプロセッサの(ハード的な)構造を良く知らないので、特に「デュアルプロセッサならでは」と言う所は挙げませんでしたが、上の例は、シングルでも、デュアルでも、そのまま適用して良いと思っています。(2次キャッシュは、各プロセッサごとにあれば、パフォーマンス的には有利ですが、それぞれのキャッシュの整合性の問題もあるので、難しいと思います。)

ただし、2次キャッシュコントローラについては、マルチCPUに対して、ちょっと考えないと、結局ボトルネックになりますね。デュアルならともかく、3,4CPU辺りでは、すでにスループットが頭打ちで、結局あまり速くならないような気もしますし。(....2次キャッシュをそれぞれに持たせるとか、考えないとダメかも。)


シングルであれば、浮動小数点演算バリバリでもない限り、素直に750を使った方がコストパフォーマンスは高いですからねえ。やはり、デュアルの方が面白いんじゃないかと。

コスト度外視で、
CPU内部クロック = 450MHz (当然、まだ出ていませんが近日でしょう)
CPUバスクロック = 300MHz (1:1.5)
2次キャッシュクロック = 300MHz(実質250MHz相当)
システムバスクロック = 50 MHz (1/6)

なーんて、凄いだろうな。でも、604eだと、1:1.5の分周比は無いよな。と思って、データシートを見たら.....
   あっ、1:1.5の分周比もあるけど、外部バスの周波数が追い付かないなぁ。
うーん。野望が.....(笑)

あとは、IBM & Motorola様に期待するしかないなぁ。604e(mach5)自体の問題だから。
単に、外部バスの許容周波数を引き上げるだけなんだけど。
やらないかなぁ?(笑) mach6とか。(爆)

Photoshop関連や、Mandelbrotあたりは、かなり凄まじい速度が出ると思うんだけど。
とくに、マルチプロセッサ対応だったら。どうです?>Appleさん、IBMさん、Motrolaさん。(笑)

なんか、これならBeOSも速そうだなとか、233MHzを4発というのも面白いかな?とか、いろいろ興味は尽きない訳で....(笑)

そうか...250MHz x 4で、1GHz相当.......うふふふふ(爆)

システムバスへのアクセスも、毎回割り振るのではなく、必要な時だけ割りふれれば、2次キャッシュのアクセス効率も上がるだろうか?とかとか。(笑)

技術と金が(豪快に)あれば、やってみたいですね。RC5-64、解読レート稼ぎたいし。(爆)
ちゃんちゃん。(オチは、それかい!)


では。


 

以下次号

 


[Home] [Linkし放題] [Fleamarket]