パスワードを忘れた? アカウント作成
4577 story

SL-C700はなぜ遅い?……XScaleに内包されたバグが原因か 49

ストーリー by GetSet
リスク承知で封印解除してみる? 部門より

kuchiki曰く、"ついに発売になったSL-C700(編者註:VGA液晶を搭載したLinux Zaurusのことである。念のため)。我らがOliver氏も購入してうはうはなようだが、一方で「遅い」「電池持たない」という批判の声も大きいようだ。タレコミ人もガワと液晶的には欲しい気いっぱいなのだが、その辺が気になって手を出していない。で、さっき見つけたのがこの記事。Xscaleプロセッサのバグで、データキャッシュが常にwrite-throughになってるって、マジかよっ?! これって組み込み屋さんたちには超既出ネタだったりします?"

次のStepping (C0)はPXA260と呼称されるという話もある。今回の話は石自体が持つバグの話のようだが、これが全体のパフォーマンスにどの程度の影響を与えているのか、興味深いところだ。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2002年12月21日 22時07分 (#222661)
    intel specification updateに全部書いてあると思いますが。
    しかも、ステッピングごと・S-SPECごとに細かく。
    チップセットでも同様。

    たとえばi820チップセットは当初RIMM3スロットをサポートする予定でしたが、高負荷時にデータが壊れる事を理由に2スロットサポートに変更されました。
    で、SDRAM-RDRAMプロトコル変換チップ(MTH)の方は同様の問題を解決する方法がなかったためリコールされました。

    CPUのパフォーマンスなんてのは"as is"で提供されるもんであって、遅くてイヤなら使わなきゃいいんです。
    「いや本来の設計ではライトバックキャッシュが実装されているから…」なんて文句は、「3GHz以前のPentium4にもHyperThreadingが実装されてるのに有効化されてない or できない。不良品だ」って文句と変わりません。

    # そもそも、なぜこの話がなぜZaurus限定なんでしょ?
    # XScaleのエラッタつーたらPocketPC2002が全て巻き込まれるわけですが。
    • by Mc.N (3705) on 2002年12月22日 0時48分 (#222720) 日記
      # そもそも、なぜこの話がなぜZaurus限定なんでしょ?
      # XScaleのエラッタつーたらPocketPC2002が全て巻き込まれるわけですが。
      Linux Kernel より状況が暴露してしまったからでしょう。PocketPC2002 では誰も今の現状を正しく指摘出来なかったでしょうし。

      オープンソースの弊害(?)でしょうか。

      現状、Errata を一般に公開しているメーカーは少ないので、あまり責めすぎないで欲しい気もします。NDA を結ばないと Errata を見せなくなってしまうというような流れにはなって欲しくありません。
      で、SDRAM-RDRAMプロトコル変換チップ(MTH)の方は同様の問題を解決する方法がなかったためリコールされました。
      今でも使っています>i820 の MTH 搭載マザーボード(CC820)。
      私独自のエージングに耐え切ってくれたので特に問題にしていません。
      2ヶ月に一度位、謎のリセットが掛かりますが(w。
      --
      Mc.N
      親コメント
      • 現状、Errata を一般に公開しているメーカーは少ないので、あまり責めすぎないで欲しい気もします。

        ここは「エラッタを一般に公開しているインテルえらい」というべきかな,と思います. 例えば NEC や Alchemy(AMD) は「登録が必要」とか「代理店経由」だったりして,誰でも気軽に見れるようにはなっていません.

        CPU や周辺デバイスなんかの場合は,単なる電子部品と違って,ボードメーカだけが不具合を知っていればいい,というものではなく,ソフトの開発者もやはりその不具合を知る必要があります. が,ソフト開発者が CPU メーカと直接取り引きのない場合,その情報がうまく入手できない,ということもよくあることです.

        以前,某社の CPU 開発の担当者とここらの話をしたことがあったのですが,「私としても web で公開すべきだとは思うんだけど,営業がね…」ということでした.

        余談ですが,Intel のエラッタといえば StrongARM SA1110 で「エラッタに上がってる内容によると,この設定では DMA が動かないはずなのに動いてしまっている」という謎の現象に遭遇したことがあります. この石の Intel 製の評価ボードがあまり出来が良くなかったらしいので,実はそっちも絡んでるのではないか,という気もするのだが,ホントは何だったんだろう. 結局この件は追ってなかったりします.

        親コメント
        • >この設定では DMA が動かないはずなのに動いてしまっている

          これは、動いちゃうけど保証できない、という程度のものだと思います。
          (「程度」なんて言ってもこれでハングして業務アプリ等でデータを失うと
            まずいからこそ無保証になってしまうのですが)

          今回話題にされているライトバックも、ちゃんとレジスタがあって設定ができて、
          その機能自体はある程度は動くけど問題があるからwrite-throughにしてね、に
          なっているようで.
          親コメント
          • > これは、動いちゃうけど保証できない、という程度のものだと思います。

            いやいや、「動いているように見えるけど、その条件にさらに別の
            要因が加わると誤動作する」というものかもしれません。
            • 複数動作があるタイミングで起きると・・・って、ありがちですね。
              細かい話をゴチャゴチャとすると相手が余計に不安がるので、どうせ使えないのなら「この機能丸ごとだめ」ってやつですね。

              #この前ASICでそういうバグをだしたのでAC(^^;
               (CPLDで暫定パッチを当てましたが・・・)
              • > どうせ使えないのなら「この機能丸ごとだめ」ってやつですね。

                そうそう。

                でも、こんだけ動くならちょっとくらいは使ってしまえとか
                無茶をやると、思わぬところで凶悪なバグが顔を出すんですよねぇ。
        • by Anonymous Coward on 2002年12月22日 11時38分 (#222831)
          > 「登録が必要」とか「代理店経由」だったりして,誰でも気軽に見れるようにはなっていません.

          「必要のない人は見なくて結構」なのでしょう。
          その製品を使ってもいない人が、揚げ足取りのようにして騒ぎを
          大きくすることを望んでいるメーカはないはずです。

          ただ、エラッタって「物も作っちまったし仕様書も刷っちまった」という
          状況で、両者に不整合があったとき、整合を取るまでの暫定的な
          説明を仕様書に添付するようなものです。
          つまり、公開している仕様書と同レベルのものです。

          > ソフト開発者が CPU メーカと直接取り引きのない場合,その情報が
          > うまく入手できない,ということもよくあることです。

          プログラム上で注意しなければならないエラッタの場合は、
          プログラミングマニュアルに対してエラッタが付くはずで、
          そのマニュアルを参照しているプログラマに対して出さないと
          いうのは、そのメーカが腐っているのでしょう。
          (エラッタに反するプログラムを書かれても構わないのだろうか?)

          基本的に、問題のマニュアルを参照出来る人は、関連するエラッタを
          無条件に参照出来るべきです。
          (逆に、ハードウェアマニュアルを参照できないプログラマが、ソフトから
           見えない部分のエラッタを参照できない状況というのは、あると思う)

          > 「私としても web で公開すべきだとは思うんだけど,営業がね…」

          どうしても障害情報というマイナスイメージが付きまといますからね。
          エラッタによる注意が必要な情報の持ち主「だけ」に伝えたい
          というところが難しいですね。
          親コメント
      • 現状、Errata を一般に公開しているメーカーは少ないので、
        少ないのかしら?私が気にしているメーカ MOTOROLA, IBM, HITACHI はWEBに出ているなあ。Errata公開しているメーカは決して少なくないと思う。
        親コメント
    • by Anonymous Coward on 2002年12月21日 22時13分 (#222663)
      ># XScaleのエラッタつーたらPocketPC2002が全て巻き込まれるわけですが。
      >
      次のSteppingが市場に出れば、PocketPC2002がドカン!と速くなるのですね。
      #それまで買い控え…
      親コメント
    • by Anonymous Coward on 2002年12月22日 9時25分 (#222801)
      ># XScaleのエラッタつーたらPocketPC2002が全て巻き込まれるわけですが。

      そうですね。今出ているPocketPC2002のPDAで,"最新CPU:XScale搭載"とうたっているものすべて、
      ライトスルーのはずです。
      で、ベンチマークテストの項目によっては、SA-1110より遅い場合も...(もごもご)

      ライトスルー以前に、いまPocketPCのコードはXScaleの専用命令を全然使っていないので
      XScaleの能力を全く生かし切れていないという現状があります。
      但し、一部PDAメーカーがWebで公開し初めているパッチで、"MediaPlayerで動画の再生がより高速に…"とあれば、
      この部分だけはXScale専用命令を使っている可能性大です。

      write-backできる版は、名称は 260よりちょっと小さい番号になると思われ。
      ちなみに PXA26x という名称は、Flashメモリをワンパッケージに内蔵したシリーズで
      もうWebに情報あがっています。(ここ) [intel.com]誤解無きよう.

      #confidentialなのでACで
      親コメント
    • by Anonymous Coward on 2002年12月22日 3時09分 (#222761)
      リンク先には"キャッシュアルゴリズムが LRU でなく、ラウンドロビンだ"
      とありますが。WB/WT よりこっちのほうが影響大きいのでは?
      i486DX4 は WB/WT 切替えてもそれほど大きな差はなかった気がする。
      少なくとも狂喜する程じゃないような。
      68k みたいなバスじゃあるまいし。(知らんけど)
      親コメント
      • by Anonymous Coward on 2002年12月22日 7時10分 (#222785)
        LRUをちゃんとやろうとするとむちゃくちゃゲート数を喰うので
        擬似LRUにしてみたり、いろいろ回避策を取ります。
        少ないwayでちゃんとしたLRUと、多いwayでround-robinとで
        性能とゲート数と電力消費のトレードオフでどうなるのかは
        僕はよく知りませんが、単純な問題ではないでしょう。
        「そういう設計になったのは何か理由がある」のです。

        ところで、XScaleのキャッシュが32wayのround-robinって
        TLBが32way fully-assoc.だということがゆがんで伝わってません?
        ざっくり資料を見ただけでの印象なので詳細は分かりませんが。
        親コメント
      • メモリウエイトを考慮に入れずに、クロック数だけで考えても、
        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]
        親コメント
      • それでは、LRUの4way-set assoc.とround robinの32way-set assoc.の
        どちらが良いか教えてください。
  • CPUのエラッタは (スコア:1, 参考になる)

    by Anonymous Coward on 2002年12月21日 21時21分 (#222641)
    結構良くある事なんだよね。
    CPUベンダから治ったやつが出てくるのには時間がかかるし、待ってると商機を逃がしたりするから、止むを得ず何とか逃げてパフォーマンス悪くてもそのまま出しちゃうという事はままある。
    それで「リコールだ!」って言われてモナー

    # 結局最後まで治らなかったElanSC400のエラッタに悩まされたのでAC

    • by tt (2867) on 2002年12月21日 23時54分 (#222705) 日記
      初期のPentium4にはMMXが遅いというバグ(?)があったし、これまた初期のUltraSparcには64bitモードの動作がおかしいという問題があった。

      こういうのは、CPUに限らずいろいろなチップでもおきているのではないかと。

      ESができあがって、さて最終的な実機を使ってのバグチェック。すでにシミュレーターでほとんどのバグはつぶしてあるので、多分確実に動くはず。

      でも、シミュレーターだと実機の1/100000(回路全部をシミュレータにかけたとしたら、もっともっと0は多いかな)ぐらいの速度でしか動かないので、どうしてもチェックが甘くなってるところがある。でもって、えてしてそういう場所で致命的なエラーが見つかる(苦笑)。

      さあどうしよう。HDLレベルで確実になおすと言う方法もあるが、それだとHDLがゲートレベルになったときには修正場所があちこちに広がり、マスクを何枚も作り直しということになる。マスク一枚起こすとなると、ン千万円+一ヶ月コース。修正箇所があちこちに出てくれば、マスクも何枚も作り直さないといけない。ということは、、、、

      てなわけで、納期と資金が辛い場合はゲートレベルの修正をすることになる。でもそれだと単純な修正しか出来ないので、完璧に問題点をなおせるかと言うとまず無理。それに、なんだかんだ言って、マスクを一枚は作り変えないといけない。とはいえ、動かないとどうしようもない致命的なバグをとりあえず回避するにはこの方法が一番である。

      そういうわけで、最後の手段は「そんな機能はなかったことにする」である。PentiumやSparcみたいに、一個数万円で売れるチップならともかく、数千円とか数百円しないチップでは大抵こういうことになる。

      バグが見つかったときにどういう対応をするかもまた難しい。バグではなく仕様です、といえるかどうかとか。

      今回もIntelは多分、ぎりぎりのところで判断した結果、こういうことになったんでしょう。まあ、しかたないとはいえ・・・

      --
      -- Takehiro TOMINAGA // may the source be with you!
      親コメント
      • by otiak (11469) on 2002年12月23日 16時41分 (#223506) 日記
        一応動作はするけどマージンが少なくて(その機能を使った場合)保証できないからないことにする。
        なんてことも多いような気がしますです。

        メモリとか複数ベンダーとの組合せがどうしてもはいるようなもので相性問題がからむとなおさら。
        親コメント
    • by Circlive (12651) on 2002年12月22日 7時24分 (#222787) 日記

      errataをエラッタとカタカナ表記するのって、誰が始めたんでしょうね...って話が某所でありまして。イラータ、エラータ、イレイタあたりになるはずなんですよ。エラータが一番、日本人に馴染みやすいかな。

      # オフトピですが、あえて...

      --
      ...芸というものは一生勉強だと思っています...
      親コメント
    • by Anonymous Coward
      つまり「今買ったらいかん!」わけですか。
      • by Anonymous Coward
        新しい石ならOKだ、って言われても(言うかどうかもわからんけど)、
        いつ買っていいのか迷いますねぇ。店先でなか分けるわけにもいかんし。
        • by Anonymous Coward
          そういう混乱を避けるために、インテルはC steppingの名称を変えることにしようと。
          その方が消費者にとって分かりやすいのは事実ですしね。

          で、「さらなるパフォーマンスの増進を実現」とかなんとかゆーコピーが踊る訳ですが。
          その実態が単なるキャッシュのライトバック化だ、なんて事はジョジョにも言えぬ秘密よ…
    • by Anonymous Coward
      > 結局最後まで治らなかったElanSC400のエラッタに悩まされたのでAC

      シリアルポートの割り込み発生に関するバグかな。
  • 一般的認識 (スコア:1, 興味深い)

    by Anonymous Coward on 2002年12月21日 22時06分 (#222660)
    http://pc3.2ch.net/test/read.cgi/mobile/1024745676/31
    なんか、遅いのはOSのせいだと思いこまされているらしい。
    • Re:一般的認識 (スコア:2, 参考になる)

      by Mc.N (3705) on 2002年12月22日 0時15分 (#222713) 日記
      実際、Pocket PC 2002 では XScale 用にチューンされていない、という記事もあるようです。
      -----
      [Pocket PC 2002とXScaleの相性はイマイチ?]
      http://www.zdnet.co.jp/news/0206/26/ne00_xscale.html
      -----
      --
      Mc.N
      親コメント
    • by Anonymous Coward
      いや、実際にOSのせいというのはそれほど的を外して いないように思います。write-through になっている 影響と、OSのチューンアップの影響、どちらかと言えば 後者の方が大きいはず。
      • by Anonymous Coward
        >write-through になっている 影響と、OSのチューンアップの影響、
        >どちらかと言えば 後者の方が大きいはず。

        古の68k Mac用68040アクセラレータは大半がWriteThrough/WriteBackをアプリケーションごとに切り替え可能でした。

        #自己書き換えで高速化してるようなコードが動かないため

        WTモードは68030と大差なし、WBにすると大幅な
  • 5%! (スコア:1, 興味深い)

    by Anonymous Coward on 2002年12月22日 12時33分 (#222845)
    ただでさえリソース厳しいのに5%は痛い。
    もっとも、ターミナルでコマンドライン操作してみた感蝕はMacOSXのターミナル弄ったときより快適だったけど。
    tshよりbashになれてるってこともあるんだろうけど、キビキビ動いてなかなかよさげだったけど。
    重たい処理やらせるときはつらいのかなあ。
    Zauにはテキストモードってないの?
    ランレベル1で起動できればほとんど問題にならないと思うけど。
    絵がでなくったってデカい電卓だと思えば不自由しないし。
    • by Anonymous Coward
      SL-C700やSL-B500だからテキストモードもありですね。
      BootプロセスでQt叩いている所をスルーしてしまえばいいのかな?

      SL-A300ユーザーの私には、不便な選択・・・。
  • by Genn_toh (11649) on 2002年12月21日 23時47分 (#222704)
    リコールされて当然と言うレベルなのでしょうか? ここはいま一番儲けているインテルだからこそ、将来の健全な市場育成の願いも込めて、勇気をもってリコールして欲しい。
    • これが自動車でも (スコア:2, すばらしい洞察)

      by kota128 (6016) on 2002年12月22日 1時05分 (#222730)
      他所から買ったエンジン(CPU)の不良が見つかって、燃費(性能)が開発時の想定よりも5%落ちてしまったって感じかな?
      でも、車(ザウルス)のカタログには5%減った燃費で記載されていたんですから、何の問題も無いのでは?
      親コメント
      • by nyankoh (5373) on 2002年12月22日 2時18分 (#222754) ホームページ
        そだね。
        少なくとも、宣言してるスペックに偽りはないんだから、ウソツキとか汚いとか
        いう話にはならないはずだわ。
        「Linuxザウルス開発メモ/ハードウェア」の作者さんも気がついて頭冷やしてる
        みたいだし、とりあえず落ち着こうや。

        #ちょっと買う気が減ったのは確かだけどね‥‥
        親コメント
      • 車だと、例えば「安全」面に問題(どのレベルを問題と呼ぶかはさておき)があれば
        その「譲れない」問題を問題視する、つまりリコールなりなんなりをする、というパターンは
        多いようですね。

        安全などのように、どうしても譲歩できない部分は、
        メーカーが仕様だなんだとほざこうが(というかほざいたら違法だったりする…んでしょうか?)
        直さないとならん、ようですね。

        パソコンとかの分野では、そういう意味での直し必須な部分ってのが
        あんまりないってのは事実であるように思います。

        それが喜ぶべき事かどうかはよく判りませんが。
        親コメント
        • 「安全」がからむような問題に対する対処というのは、大抵の場合法律で決められています。
          #法整備が遅れている場合もあるようですが…
          なので、「仕様だ」などと言おうものなら問題を認めたことになりますから、即アウトです。

          PC単体で安全にからむ部分ってのはあまりあり
    • ちっとも「リコールされて当然」というレベルじゃありません。
  • by Anonymous Coward on 2002年12月22日 0時32分 (#222716)
    ライトスルーだからって、ずっとキャッシュ内だけで回っている
    わけではないだろうから、そんなに遅くならないと思うけど。

    遅いのはまだXScaleのネイティブ命令に最適化されてないのが
    原因じゃないでしょうかねえ。

    #確認してません。推測だす。
    • by Anonymous Coward
      本来(藁)より遅くなってるのは事実なんだろうけど,
      やりようはあるとは思う.

      # ライトスルーといえば X68030 は互換性的にほぼライトスルーで使ってたなぁ
      # バスが足引っ張りすぎなマシンの場合はやっぱりこの類の
      # 機構が使えないと辛いよね.SL-C700 とか PocketPC が
      # どうなのかは知らんので識者の情(ry
      • by Anonymous Coward
        68030はライトスルーだけかと思いましたが。
        040turboや060turbo搭載ってことでしょうか。
    • by Anonymous Coward
      ウチの場合、SH-3 の 60MHzで Readキャッシュがあるよ!って大喜び、基本的に Write はスルーで使用してます。
      今の御時世、ハードウェアの性能をしゃぶりつくしてやろう!という風潮はなく、高クロックの CPU、速いメモリを
      • Re:う~ん (スコア:2, 興味深い)

        by Anonymous Coward on 2002年12月23日 0時29分 (#223163)
        最近の製品開発の場合、チューニングに時間を掛けて出荷時期を逃す
        のが一番怖いみたいです。

        だから、某家電メーカでは、必要な機能をインプリメントするのに
        必要なROMの数が少し増えたくらいでは、気にせず出荷してしまう
        らしい。

        製品の原価よりも、開発TATを上げて的確な時期に商品投入が必要、
        という話。
        親コメント
  • by Anonymous Coward on 2002年12月24日 11時21分 (#223923)
    「変な臭い」がするよりはじゅっとマシだろ?
typodupeerror

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

読み込み中...