SL-C700はなぜ遅い?……XScaleに内包されたバグが原因か 49
ストーリー by GetSet
リスク承知で封印解除してみる? 部門より
リスク承知で封印解除してみる? 部門より
kuchiki曰く、"ついに発売になったSL-C700(編者註:VGA液晶を搭載したLinux Zaurusのことである。念のため)。我らがOliver氏も購入してうはうはなようだが、一方で「遅い」「電池持たない」という批判の声も大きいようだ。タレコミ人もガワと液晶的には欲しい気いっぱいなのだが、その辺が気になって手を出していない。で、さっき見つけたのがこの記事。Xscaleプロセッサのバグで、データキャッシュが常にwrite-throughになってるって、マジかよっ?! これって組み込み屋さんたちには超既出ネタだったりします?"
次のStepping (C0)はPXA260と呼称されるという話もある。今回の話は石自体が持つバグの話のようだが、これが全体のパフォーマンスにどの程度の影響を与えているのか、興味深いところだ。
CPUのエラッタって (スコア:4, 参考になる)
しかも、ステッピングごと・S-SPECごとに細かく。
チップセットでも同様。
たとえばi820チップセットは当初RIMM3スロットをサポートする予定でしたが、高負荷時にデータが壊れる事を理由に2スロットサポートに変更されました。
で、SDRAM-RDRAMプロトコル変換チップ(MTH)の方は同様の問題を解決する方法がなかったためリコールされました。
CPUのパフォーマンスなんてのは"as is"で提供されるもんであって、遅くてイヤなら使わなきゃいいんです。
「いや本来の設計ではライトバックキャッシュが実装されているから…」なんて文句は、「3GHz以前のPentium4にもHyperThreadingが実装されてるのに有効化されてない or できない。不良品だ」って文句と変わりません。
# そもそも、なぜこの話がなぜZaurus限定なんでしょ?
# XScaleのエラッタつーたらPocketPC2002が全て巻き込まれるわけですが。
Re:CPUのエラッタって (スコア:4, 興味深い)
オープンソースの弊害(?)でしょうか。
現状、Errata を一般に公開しているメーカーは少ないので、あまり責めすぎないで欲しい気もします。NDA を結ばないと Errata を見せなくなってしまうというような流れにはなって欲しくありません。 今でも使っています>i820 の MTH 搭載マザーボード(CC820)。
私独自のエージングに耐え切ってくれたので特に問題にしていません。
2ヶ月に一度位、謎のリセットが掛かりますが(w。
Mc.N
Re:CPUのエラッタって (スコア:2, 興味深い)
ここは「エラッタを一般に公開しているインテルえらい」というべきかな,と思います. 例えば NEC や Alchemy(AMD) は「登録が必要」とか「代理店経由」だったりして,誰でも気軽に見れるようにはなっていません.
CPU や周辺デバイスなんかの場合は,単なる電子部品と違って,ボードメーカだけが不具合を知っていればいい,というものではなく,ソフトの開発者もやはりその不具合を知る必要があります. が,ソフト開発者が CPU メーカと直接取り引きのない場合,その情報がうまく入手できない,ということもよくあることです.
以前,某社の CPU 開発の担当者とここらの話をしたことがあったのですが,「私としても web で公開すべきだとは思うんだけど,営業がね…」ということでした.
余談ですが,Intel のエラッタといえば StrongARM SA1110 で「エラッタに上がってる内容によると,この設定では DMA が動かないはずなのに動いてしまっている」という謎の現象に遭遇したことがあります. この石の Intel 製の評価ボードがあまり出来が良くなかったらしいので,実はそっちも絡んでるのではないか,という気もするのだが,ホントは何だったんだろう. 結局この件は追ってなかったりします.
Re:CPUのエラッタって (スコア:1)
これは、動いちゃうけど保証できない、という程度のものだと思います。
(「程度」なんて言ってもこれでハングして業務アプリ等でデータを失うと
まずいからこそ無保証になってしまうのですが)
今回話題にされているライトバックも、ちゃんとレジスタがあって設定ができて、
その機能自体はある程度は動くけど問題があるからwrite-throughにしてね、に
なっているようで.
Re:CPUのエラッタって (スコア:0)
いやいや、「動いているように見えるけど、その条件にさらに別の
要因が加わると誤動作する」というものかもしれません。
Re:CPUのエラッタって (スコア:0)
細かい話をゴチャゴチャとすると相手が余計に不安がるので、どうせ使えないのなら「この機能丸ごとだめ」ってやつですね。
#この前ASICでそういうバグをだしたのでAC(^^;
(CPLDで暫定パッチを当てましたが・・・)
Re:CPUのエラッタって (スコア:0)
そうそう。
でも、こんだけ動くならちょっとくらいは使ってしまえとか
無茶をやると、思わぬところで凶悪なバグが顔を出すんですよねぇ。
Re:CPUのエラッタって (スコア:1, 興味深い)
「必要のない人は見なくて結構」なのでしょう。
その製品を使ってもいない人が、揚げ足取りのようにして騒ぎを
大きくすることを望んでいるメーカはないはずです。
ただ、エラッタって「物も作っちまったし仕様書も刷っちまった」という
状況で、両者に不整合があったとき、整合を取るまでの暫定的な
説明を仕様書に添付するようなものです。
つまり、公開している仕様書と同レベルのものです。
> ソフト開発者が CPU メーカと直接取り引きのない場合,その情報が
> うまく入手できない,ということもよくあることです。
プログラム上で注意しなければならないエラッタの場合は、
プログラミングマニュアルに対してエラッタが付くはずで、
そのマニュアルを参照しているプログラマに対して出さないと
いうのは、そのメーカが腐っているのでしょう。
(エラッタに反するプログラムを書かれても構わないのだろうか?)
基本的に、問題のマニュアルを参照出来る人は、関連するエラッタを
無条件に参照出来るべきです。
(逆に、ハードウェアマニュアルを参照できないプログラマが、ソフトから
見えない部分のエラッタを参照できない状況というのは、あると思う)
> 「私としても web で公開すべきだとは思うんだけど,営業がね…」
どうしても障害情報というマイナスイメージが付きまといますからね。
エラッタによる注意が必要な情報の持ち主「だけ」に伝えたい
というところが難しいですね。
Re:CPUのエラッタって (スコア:1)
なるほど、ってことは (スコア:2, 興味深い)
>
次のSteppingが市場に出れば、PocketPC2002がドカン!と速くなるのですね。
#それまで買い控え…
Re:なるほど、ってことは (スコア:1)
# でもh5450は見送ろうかしら…
Re:なるほど、ってことは (スコア:0)
Re:CPUのエラッタって (スコア:2, 参考になる)
そうですね。今出ているPocketPC2002のPDAで,"最新CPU:XScale搭載"とうたっているものすべて、
ライトスルーのはずです。
で、ベンチマークテストの項目によっては、SA-1110より遅い場合も...(もごもご)
ライトスルー以前に、いまPocketPCのコードはXScaleの専用命令を全然使っていないので
XScaleの能力を全く生かし切れていないという現状があります。
但し、一部PDAメーカーがWebで公開し初めているパッチで、"MediaPlayerで動画の再生がより高速に…"とあれば、
この部分だけはXScale専用命令を使っている可能性大です。
write-backできる版は、名称は 260よりちょっと小さい番号になると思われ。
ちなみに PXA26x という名称は、Flashメモリをワンパッケージに内蔵したシリーズで
もうWebに情報あがっています。(ここ) [intel.com]誤解無きよう.
#confidentialなのでACで
となると、 (スコア:1)
それだけでPocketPCよりアドバンテージがあることになるし。
Re:CPUのエラッタって (スコア:1, 興味深い)
とありますが。WB/WT よりこっちのほうが影響大きいのでは?
i486DX4 は WB/WT 切替えてもそれほど大きな差はなかった気がする。
少なくとも狂喜する程じゃないような。
68k みたいなバスじゃあるまいし。(知らんけど)
Re:CPUのエラッタって (スコア:2, 参考になる)
擬似LRUにしてみたり、いろいろ回避策を取ります。
少ないwayでちゃんとしたLRUと、多いwayでround-robinとで
性能とゲート数と電力消費のトレードオフでどうなるのかは
僕はよく知りませんが、単純な問題ではないでしょう。
「そういう設計になったのは何か理由がある」のです。
ところで、XScaleのキャッシュが32wayのround-robinって
TLBが32way fully-assoc.だということがゆがんで伝わってません?
ざっくり資料を見ただけでの印象なので詳細は分かりませんが。
100MHzのi486DX4とメモリの速度差と、400MHzのXScale (スコア:1)
i486DX4が100MHzで、そこに繋がるメモリが50MHz。比率は2:1。
XScaleが400MHzで、そこに繋がるメモリが100MHz。比率は4:1。
キャッシュが働かなければ、i486DX4は2分の一(以下)の速度になり、
XScaleは4分の一以下の速度になる。
メモリウエイトを考慮に入れて、メモリの実働スピードを考えると、
XScaleの方は、もっともっとCPUとメモリの速度差が開くはずなので、
かなり辛いと思うです。
XScaleは、組み込み用CPUだから、
1次キャッシュが効かなければ、即、CPU外部のメモリバスが繋がるので。
googleで検索したら、XScaleのキャッシュシステムを分かりやすく解説されているページが有りました。
http://www.kumikomi.net/article/column/0001mpi/014.html [kumikomi.net]
Re:CPUのエラッタって (スコア:0)
どちらが良いか教えてください。
CPUのエラッタは (スコア:1, 参考になる)
CPUベンダから治ったやつが出てくるのには時間がかかるし、待ってると商機を逃がしたりするから、止むを得ず何とか逃げてパフォーマンス悪くてもそのまま出しちゃうという事はままある。
それで「リコールだ!」って言われてモナー
# 結局最後まで治らなかったElanSC400のエラッタに悩まされたのでAC
Re:CPUのエラッタは (スコア:5, 興味深い)
こういうのは、CPUに限らずいろいろなチップでもおきているのではないかと。
ESができあがって、さて最終的な実機を使ってのバグチェック。すでにシミュレーターでほとんどのバグはつぶしてあるので、多分確実に動くはず。
でも、シミュレーターだと実機の1/100000(回路全部をシミュレータにかけたとしたら、もっともっと0は多いかな)ぐらいの速度でしか動かないので、どうしてもチェックが甘くなってるところがある。でもって、えてしてそういう場所で致命的なエラーが見つかる(苦笑)。
さあどうしよう。HDLレベルで確実になおすと言う方法もあるが、それだとHDLがゲートレベルになったときには修正場所があちこちに広がり、マスクを何枚も作り直しということになる。マスク一枚起こすとなると、ン千万円+一ヶ月コース。修正箇所があちこちに出てくれば、マスクも何枚も作り直さないといけない。ということは、、、、
てなわけで、納期と資金が辛い場合はゲートレベルの修正をすることになる。でもそれだと単純な修正しか出来ないので、完璧に問題点をなおせるかと言うとまず無理。それに、なんだかんだ言って、マスクを一枚は作り変えないといけない。とはいえ、動かないとどうしようもない致命的なバグをとりあえず回避するにはこの方法が一番である。
そういうわけで、最後の手段は「そんな機能はなかったことにする」である。PentiumやSparcみたいに、一個数万円で売れるチップならともかく、数千円とか数百円しないチップでは大抵こういうことになる。
バグが見つかったときにどういう対応をするかもまた難しい。バグではなく仕様です、といえるかどうかとか。
今回もIntelは多分、ぎりぎりのところで判断した結果、こういうことになったんでしょう。まあ、しかたないとはいえ・・・
-- Takehiro TOMINAGA // may the source be with you!
Re:CPUのエラッタは (スコア:1)
なんてことも多いような気がしますです。
メモリとか複数ベンダーとの組合せがどうしてもはいるようなもので相性問題がからむとなおさら。
Re:CPUのエラッタは (スコア:1)
errataをエラッタとカタカナ表記するのって、誰が始めたんでしょうね...って話が某所でありまして。イラータ、エラータ、イレイタあたりになるはずなんですよ。エラータが一番、日本人に馴染みやすいかな。
# オフトピですが、あえて...
...芸というものは一生勉強だと思っています...
Re:CPUのエラッタは (スコア:0)
「バグラッタ!」
Re:CPUのエラッタは (スコア:0)
他にもいろいろありますからねえ。
#いずれミシンとマシン、メリケン粉、同様に「日本語」として
#定着しそうな予感。
Re:CPUのエラッタは (スコア:2)
ぼこぼこ出てきますね。
Re:CPUのエラッタは (スコア:1)
locale[loukae'l]だそうだから(英辞郎)、「ロケール」はまだましでは?
#個人的には、自分でも言っていただけにwidth「ウィドゥス」が気になる。
あと「ディ(ティ)」←→「ダイ(タイ)」はどっちもありだと思うんですが。
#「マルタイミィーディア」といったら、「ハムの親戚かよ!」と突っ込まれそうな。
Re:CPUのエラッタは (スコア:1)
#ちなみに、ピングーはペンギン。
Re:CPUのエラッタは (スコア:0)
Re:CPUのエラッタは (スコア:0)
いつ買っていいのか迷いますねぇ。店先でなか分けるわけにもいかんし。
Re:CPUのエラッタは (スコア:0)
その方が消費者にとって分かりやすいのは事実ですしね。
で、「さらなるパフォーマンスの増進を実現」とかなんとかゆーコピーが踊る訳ですが。
その実態が単なるキャッシュのライトバック化だ、なんて事はジョジョにも言えぬ秘密よ…
Re:CPUのエラッタは (スコア:0)
シリアルポートの割り込み発生に関するバグかな。
一般的認識 (スコア:1, 興味深い)
なんか、遅いのはOSのせいだと思いこまされているらしい。
Re:一般的認識 (スコア:2, 参考になる)
-----
[Pocket PC 2002とXScaleの相性はイマイチ?]
http://www.zdnet.co.jp/news/0206/26/ne00_xscale.html
-----
Mc.N
Re:一般的認識 (スコア:0)
Re:一般的認識 (スコア:0)
>どちらかと言えば 後者の方が大きいはず。
古の68k Mac用68040アクセラレータは大半がWriteThrough/WriteBackをアプリケーションごとに切り替え可能でした。
#自己書き換えで高速化してるようなコードが動かないため
WTモードは68030と大差なし、WBにすると大幅な
5%! (スコア:1, 興味深い)
もっとも、ターミナルでコマンドライン操作してみた感蝕はMacOSXのターミナル弄ったときより快適だったけど。
tshよりbashになれてるってこともあるんだろうけど、キビキビ動いてなかなかよさげだったけど。
重たい処理やらせるときはつらいのかなあ。
Zauにはテキストモードってないの?
ランレベル1で起動できればほとんど問題にならないと思うけど。
絵がでなくったってデカい電卓だと思えば不自由しないし。
Re:5%! (スコア:0)
BootプロセスでQt叩いている所をスルーしてしまえばいいのかな?
SL-A300ユーザーの私には、不便な選択・・・。
これが自動車なら (スコア:0)
これが自動車でも (スコア:2, すばらしい洞察)
でも、車(ザウルス)のカタログには5%減った燃費で記載されていたんですから、何の問題も無いのでは?
Re:これが自動車でも (スコア:2, 興味深い)
少なくとも、宣言してるスペックに偽りはないんだから、ウソツキとか汚いとか
いう話にはならないはずだわ。
「Linuxザウルス開発メモ/ハードウェア」の作者さんも気がついて頭冷やしてる
みたいだし、とりあえず落ち着こうや。
#ちょっと買う気が減ったのは確かだけどね‥‥
「仕様です」で済む話かどうかという問題 (スコア:1)
その「譲れない」問題を問題視する、つまりリコールなりなんなりをする、というパターンは
多いようですね。
安全などのように、どうしても譲歩できない部分は、
メーカーが仕様だなんだとほざこうが(というかほざいたら違法だったりする…んでしょうか?)
直さないとならん、ようですね。
パソコンとかの分野では、そういう意味での直し必須な部分ってのが
あんまりないってのは事実であるように思います。
それが喜ぶべき事かどうかはよく判りませんが。
Re:「仕様です」で済む話かどうかという問題 (スコア:0)
#法整備が遅れている場合もあるようですが…
なので、「仕様だ」などと言おうものなら問題を認めたことになりますから、即アウトです。
PC単体で安全にからむ部分ってのはあまりあり
Re:これが自動車なら (スコア:0)
う~ん (スコア:0)
わけではないだろうから、そんなに遅くならないと思うけど。
遅いのはまだXScaleのネイティブ命令に最適化されてないのが
原因じゃないでしょうかねえ。
#確認してません。推測だす。
Re:う~ん (スコア:0)
やりようはあるとは思う.
# ライトスルーといえば X68030 は互換性的にほぼライトスルーで使ってたなぁ
# バスが足引っ張りすぎなマシンの場合はやっぱりこの類の
# 機構が使えないと辛いよね.SL-C700 とか PocketPC が
# どうなのかは知らんので識者の情(ry
Re:う~ん (スコア:0)
040turboや060turbo搭載ってことでしょうか。
Re:う~ん (スコア:0)
今の御時世、ハードウェアの性能をしゃぶりつくしてやろう!という風潮はなく、高クロックの CPU、速いメモリを
Re:う~ん (スコア:2, 興味深い)
のが一番怖いみたいです。
だから、某家電メーカでは、必要な機能をインプリメントするのに
必要なROMの数が少し増えたくらいでは、気にせず出荷してしまう
らしい。
製品の原価よりも、開発TATを上げて的確な時期に商品投入が必要、
という話。
遅くてもいいじゃん (スコア:0)