K6-2とK6-IIIの能力差は、どんなもんだろう、と思い実験してみました。586RVにPL/54C-MMXをもちいてK6-III-400MHz版(コア2.4V IO3.3V)を、360MHz駆動(コア2.2V IO3.3V供給)とし、K6-2のかわりにK6-IIIのL2をカットして実験してみました。Super_PIの104万桁演算にて評価しました。すると、
+000時間 13分 21秒:K6-III-360
+000時間 18分 50秒:K6-2-360相当(K6-III-360のL2カット)
+000時間 17分 58秒:MMX-Pentium-210MHz(参考)
+000時間 38分 34秒:Pentium-60MHz(参考)
以上のように、K6-IIIのオンダイ2次キャッシュが、速度の大きく解離したマザーボードとCPUコアに仲立ち、全体的な速度向上に貢献していると言えます。キャッシュがCPU一次、CPU二次、MB三次の様に三段構えになっていることが問題なのではなく、高速で動作するキャッシュがCPU側に大量にあることが、重要になっているのかもしれません。と、言うのも586RAやRXでの、WinChip系への載せ換え動作報告で、体感的にはクロック数の割に、より大きな速度差を生じているためです。
K6-2相当で、MMX-Pentiumよりも振るわない値がでていますが、HDBENCHで計測するとMemoryの値が、K6-III-360:14000台、MMX-Pentium-210MHz:12000台をコンスタントに出すのに対して、K6-2相当では9700程度でした。コアの割に、メモリアクセス値が低いのは、互換プロセッサがIntelとの著作権絡みの係争を避けるためにメモリアクセスタイミングを換えてあると聞いたことがあるので、そのためかもしれません。
- re: Kim さん
投稿日:1999年09月20日(月) 14時32分37秒
TO:NaOさん
>>互換プロセッサがIntelとの著作権絡みの係争を避けるためにメモリアクセス
>>タイミングを換えてあると聞いたことがあるので
これは、CyrixのCPUでの話です。
特許クリアのためIntelバーストに対して1+4バーストもしくはリニアバーストを
採用しています。
しかし、AMDについてはIntelバーストを使うことはライセンス的にクリアして
おり、K5 K6共Intelバーストを使っていたと記憶してます。
故に、AMDのK6の方がIntelとの互換性が高いと言われるのです。
- re: NaO さん
投稿日:1999年09月21日(火) 01時46分11秒
Kimさん>
ツッコミ&フォローどうも有難うございます。
ところで、HDBENCH上でK6系のメモリアクセス値が振るわないのは、どのような理由が考えられますでしょうか。K6開発の際、Nx686の独自プロセッサバスをPentium系互換のプロセッサバスに載せ換えたことが原因なのでしょうか。HDBENCH添付のデータを見ても、K6のMemory値が振るわないのは、K6化PC-586RV/MVだけの問題ではないと考えられるので。
それとも、トータルの性能が問われるSuper_PIでは、メモリアクセス以外に何かファクターがあるのでしょうか。クロック半分のMMX-ODP-180MHzでも104万桁計算を19分 07秒ですまします。K6-IIIのオンチップL2を有効にした場合に速度向上が見られること、K6自体のL1はMMX-Pentiumの2倍搭載、という点から、マザーボードの性能だけの問題ではないと、考えられますから。
- re: Kim さん
投稿日:1999年09月21日(火) 10時29分48秒
HDBENCHは良くわかりませんが
Super_PIの場合はIntelCPUの方がFPUのパイプライン化で有利ってのは有りますね
マシンのメモリーアクセスが遅いのがPentiumだと丁度最適だが、K6だと逆に
ウェイトかかりすぎて遅くなっているのかも
K6-2/400だとベース66MHzでEDO-RAM使用でもSuper_PIが10分程度、ベース
100MHzでSD-RAM使用だと8分台(うちのATマシンでの計測)出ますから
ちなみにSuper_PIはK6シリーズの64KB程度のL1 Cacheだと話にならないくらい
メモリー喰います。
あと、K6シリーズでWA設定をONにすると逆にSuper_PIが遅くなるという事象
も有名な話ですね。
- re: NaO さん
投稿日:1999年09月21日(火) 23時17分21秒
Kim さん>
その辺は、分っております。だからこそ、1次キャッシュに計測部分が乗ってしまうHDBENCHの整数演算値や浮動小数点値は、はなから有効な計測方法だとは思ってません(でもDOSのCPUBENCHだと大分違いますが(^^;)。それにSuper_PIはK6-IIIの256KBのL2 Cacheでも話にならないくらいメモリー喰うでしょう。
あとは、ゲタにIOウェイトがかかってるか、ですかねぇ。でもそれだとK6-IIIが速いことの説明がつかないですし。
WA設定すると遅くなるのは、バーストリード/ライトサイクルがSuper_PIの処理に合わないからかもしれません。普通はまとめて読み出された部分にキャッシュがヒットして効率よく動作しますが、Super_PIでは、巨大なデータを扱う分、プログラムの局所性も少ないでしょうし、キャッシュのヒットの頻度は少ないと考えられます。キャッシュヒットしていないデータ書き込みは、いちいちメモリから改めてキャッシュにまとめて読み出されるぶん要らない部分まで読み出し、ライトアロケートしてなければヒットしていたキャッシング内容まで、キャッシュから押し出される可能性があります。
- re: Kim さん
投稿日:1999年09月22日(水) 10時26分25秒
TO:NaOさん
K6-IIIの内蔵2nd Cacheは1st Cacheとパラで動かせる事
又、本来の外部2nd Cacheはバス上に載っているので遅いチップセット周り影響
をもろに受けるのに対して、K6-IIIの内蔵2nd Cacheは高速なCPU内部バスに載って
いるので、本来の高速なバッファーとして機能しているのかと
として
- re: Kim さん
投稿日:1999年09月22日(水) 10時27分12秒
ゴミが残った(^^;A
上のレスの最後の1行「として」は無視してください
- re: NaO さん
投稿日:1999年09月23日(木) 01時03分16秒
いえいえ、私が言ってるのは、L1、L2というレベルの話ではなくて、オンチップキャッシュとしての話です。オンチップであれば、L1,L2かどうかというのはシリコン上の動作の違いにすぎないので。そういえば、IDTがWinChip3を計画していた頃、128KBのオンチップL1は、256KBのオンチップL2のキャッシュ効率に相当する、なんて言ってました。VIAがどうするかは分りませんけど、これが事実なら出て欲しいですよねぇ。うちは586RVだけじゃなくて586RAもあるので。
- re: Kim さん
投稿日:1999年09月24日(金) 11時09分47秒
TO:NaOさん
オンチップでも、2nd Cacheが有ると無いとでかなり速度差が出るけど
セレロンの2nd Cache無しタイプと128KBオンダイタイプで2nd chachがオーバー
フローするでかいサイズのベンチでも速度差出ているのと同じじゃないの?
同じかと。
- re: NaO さん
投稿日:1999年09月24日(金) 22時28分21秒
L2の存在が、K6-IIIが(ベンチ上)速いことの説明にはなるのですが、64KBのL1キャッシュを持つK6-2相当と、32KBのL1キャッシュを持つMMX-Pentiumとの間で、それに輪を掛けて倍近いクロック差があるにも関わらず、結果が変わらないのが不思議なのです。32KBと比べて、256KB、128KBでは大きなキャッシュによるアドバンテージがあるのに、64KBではそれがない、という結果になってるわけですから。
浮動小数点演算コアに限って言えば、MMX-Pentiumの方が優秀な浮動小数点演算ユニットを持つとは言え、明らかにK6の方がクロックで引っ張れていることは、L1キャッシュにすっぽり収まるようなHDBENCH等で分ります。
自分としては、「586シリーズでは、多少奮発してもキャッシュの大きなCPUに載せ換えた方が、マザーボードのフォローになって良い」と結論付けたかったのですが、一部にそれと反する結果になってしまってるので、それの原因が分からないのです(しつこいようですけど(^^;)。
- re: Kim さん
投稿日:1999年09月27日(月) 10時28分19秒
TO:NaOさん
6-IIIのSuper_PIの結果がうちのAT互換機で使ったK6-2の結果に比べて
遅すぎるのがやっぱり気になりますね。
- re: NaO さん
投稿日:1999年09月27日(月) 23時29分34秒
もし、Kimさんが比較対象とされているAT互換機が、NeptuneベースのマザーやMercuryベースのマザー、あるいはDeskPro 560XEのような初期のPentium機にゲタを咬ませてK6-2を乗せて、この結果を見て遅いというのなら、問題視するのは分ります。しかし、Super7対応マザーで比べているのでしたら、それにかなわないのは当然のことです。
私がこのスレッドで話題にしているのは「速いEPSON98互換機」であり「速いWindowsマシン」では無いのです。
- re: Kim さん
投稿日:1999年09月28日(火) 08時59分29秒
TO:NaOさん
σ(^^;は、K6シリーズの方だけEPSON98機でデータ転送が遅いね〜ってってことを
気にしているのですが
- re: NaO さん
投稿日:1999年09月28日(火) 23時46分11秒
Kim さん>
ええ、ですから私も、K6-IIIやMMX-Pentiumと比べて、これは何ででしょうねー、という問題提起をしているわけです。さすがにWinChip2-240MHzよりは速かったのですが。
- re: Kim さん
投稿日:1999年09月29日(水) 09時50分44秒
TO:NaOさん
>>K6-IIIやMMX-Pentiumと比べて、これは何ででしょうねー、という
>>問題提起をしているわけです。
この件については
>>マシンのメモリーアクセスが遅いのがPentiumだと丁度最適だが、K6だと逆に
>>ウェイトかかりすぎて遅くなっているのかも
って、コメントしておりますが。(^^;A
- re: NaO さん
投稿日:1999年09月29日(水) 23時27分55秒
Kim さん>
WAに関する書き込みで頭が一杯で書き込むのを忘れていました。申しわけありません。
ウェイトが大きくなる、というのはあくまでプロセッサコアの速度に対する相対的なものであり、メモリアクセスにかかるウェイトの絶対値は同じであると考えられます。また、もしウェイトを動的に可変させるには、何処かで決定してやらなければならないわけです。そして、ゲタ、マザー、CPUくらいしか決定できる場所は考えられません。要素ごとに考えると、以下のようになります。
・K6-2XTコア以後のは6倍速モードでは、PL/54C-MMX発売当初はこの設定で2倍速動作する物しかなかったので、ゲタによるウェイトは考えられません。
・マザーボードは、元来1倍速のCPUしか考えられていないチップセットであり、ODP対応といっても、BIOS上も、さすがにここまで当時とかけ離れたプロセッサが乗ることは考慮されていないはず(当時の技術を考えればせいぜい2 3倍まで)なので、ここでウェイトがK6とP55Cで変わるとは考えられません。
・プロセッサの動作上では、「ウェイト」では無くて「空回り」です。空回りしてることで待ってるには違いないですけど、これはマザーボードのレスポンス次第、つまり先にも申し上げたとおり、ウェイトの絶対値は同じです。
- re: Kim さん
投稿日:1999年09月30日(木) 10時28分31秒
TO:NaOさん
結局のところ、K6-2相当がMMX PentiumにSuper_PIで振るわない理由は
メモリー周りが遅すぎてCPUコアの周波数を上げても処理速度にデータ転送
速度が全然追いつかない。従って周波数を上げても待ち時間が増えるだけで
そんなに速度の向上は得られない。
一方でMMX Pentiumの方は同じくメモリー転送がネックになっているが、
処理速度自体はFPUのパイプライン化によりK6-2相当よりピーク帯域が広い
ので同じデータ量当たりの連続処理速度はK6-2相当よりも速くなっている。
従って、K6-2相当よりMMX Pentiumの方がSuper_PIの実行時間が速かった
という風に推測出来ます。
ここで、K6-IIIとしてオンダイのL2を活かすとL2がデータバッファーとなり
メモリーの転送速度が緩和されるので、待ち時間が少なくなって、結果的に
Super_PIの処理速度が速くなったのかと推測できますね。
ということから、メモリー転送速度の遅いシステムで大きなプログラムを
動かす場合の速度改善には、Cacheサイズではなくて、結果的に如何にメモリー
とCPUとの実効帯域を上げるかということかと
今回の場合はK6-IIIのオンダイ256KB L2が実効帯域を稼いだのでしょう
WinChip3についてはCacheサイズよりもその大容量L1 Cacheで実効帯域の
改善が出来るかが高速化のキーになると考えます。