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

コンパイラが命令セットをつくるCPU 58

ストーリー by Oliver
ハードモーフィング 部門より

Jadawin 曰く、 "CNET Japan記事によると、Stretch社がRISC CPUとプログラマブルロジックを組み合わせたプロセッサS5000を発表した。これまでも、NECのDRPや、富士通のDPGAなどのアナウンスがあったが、今回のS5000では同時に開発したC/C++コンパイラが重点的に計算すべきところを検出して、そのための命令を追加するという。また、単なる研究発表ではなく、Windows XPおよびLinux用の環境も用意されているところも魅力的だ。現在は300MHz動作だが、暗号化やビデオ処理では2GHzのCPUと同等だと言う。"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by bsdworld (10030) on 2004年04月27日 17時03分 (#538830)
    デバッグできない。と言うかコンパイラに絶対の信頼を置かなければ使用できない。
    極端な話、デバッグ中に問題を突き止めようとソースを変える度にマシン命令が変わる可能性があり、脳内の想定とマシン挙動が何時までたっても一致しない可能性もあるなぁ(^_^;
    う~む…
    • Re:C/C++言語レベルでしか (スコア:2, おもしろおかしい)

      by nekopon (1483) on 2004年04月27日 17時28分 (#538841) 日記
      コンパイラ「そこでデバッグ用命令を生成するのですよー」
      親コメント
    • by gm300 (14617) on 2004年04月27日 18時27分 (#538877) ホームページ 日記
      CPUがコンパイルしたりアセンブリコードを吐き出すわけでないので、そんなことはないでしょう。今の普通のPen4 でも命令の実行順序は微妙に変化しうるし、thread 使っていれば、大幅に変化します。その意味でアプリのコードとマシンの詳細な挙動の関係はすでに崩れています。広い意味で正しいコードを入れれば、ある保証された範囲内で正しい答えが得られるハズです。この類の構造では、保証された範囲を超えた、たとえばあるサイクル数内で必ず実行されるとか、ハードウエアの特定部分で実行されるとかは期待してはいけないです。thread の実行順序に勝手な仮定を置くのと同様にそれは間抜けな考えなのです。
      親コメント
      • by BIWYFI (11941) on 2004年04月27日 23時03分 (#538984) 日記
        ちょっと考えが狭いようで。

        >あるサイクル数内で必ず実行されるとか、ハードウエアの特定部分で実行されるとかは期待してはいけないです。

         これじゃ、ハードリアルタイムは実現不能になりますね。

        >thread の実行順序に勝手な仮定を置くのと同様にそれは間抜けな考えなのです。

         RTOSなら、スレッドの実行順序は、絶対的なプライオリティで決められます。
         第一、メモリへの書き込み順序すら指定できないなら、セマフォの類が実装できません。
         実際問題として、Athlonのデータシートを見た限りでは(思いっきり面倒そうだが)例外開始からの実行クロック数は計算可能みたいでした。(Lockプレフィックスとかが絡むと、如実に必要クロックが増えます)
        // HTなP4だとどうなるかは知らない

         今回のCPUは、組み込み用途を想定しているので、ハードリアルタイム性は必須。実際に、最適化が完了した時点で、静的な解析は可能みたいですね。
         
        --
        -- Buy It When You Found It --
        親コメント
    • コンピュータの気持ちになろうと修行しているのに、
      途中でコンピュータがこころ変わりするという…。
      「電脳心と秋の空」ですな…。
  • by Ryo.F (3896) on 2004年04月27日 16時03分 (#538799) 日記
    って、開発環境のことなのね。このCPUの上でWindows XPが動くわけじゃない、と。
    Linuxの方は、MontaVista LinuxがこのCPU上で動作する、と。
    • by Anonymous Coward on 2004年04月27日 16時36分 (#538814)
        >Linuxの方は、MontaVista LinuxがこのCPU上で動作する、と。

      MontaVista [mvista.com]
      組み込みLinuxとかやってる会社ですね

      # ポインタのみなのでAC
      親コメント
    • こういうプロセッサで動く GCC や Linux がどんなもんなのか、興味ありますな。

      コアは Xtensa というプロセッサらしいですが、 これ [gnu.org]によれば、コンフィギュレーションを変えると gcc から作り直さないといけない、ということなんでしょうか? あれ、GCC 3.4 [gnu.org] だとまた違うのかな。

      MontaVista Linux でもいろいろややこしいことをしてるみたい? (プレスリリース [tensilica.co.jp])

      親コメント
      • あ、ななめよみしすぎて勘違いしました。すいません。

        The compiler's default options can be set to match a particular Xtensa configuration by copying a configuration file into the GCC sources when building GCC. The options below may be used to override the default options.

        単にデフォルトのオプション指定を変えられるってだけですね、これは…。configuration file というのはどこから出てくるんだろう?

        親コメント
  • by Pen2 (18210) on 2004年04月27日 16時37分 (#538815)
    S5000 Product Brief
    http://www.stretchinc.com/products_s5000.php
    の構成図では

    softwareconfigurable data path で

    system designers extend the processor instruction set and define the new instructions using only their C/C++ code.

    構成を切り替える頻度、速度は?

    比較:東芝 MeP は稼動中はしないようだ。
    • 想像でものを言うのだが、
      ISEFのコンフィギュレーションは静的に構成されたものを複数個持て、
      ISEFに対する命令の起動ごとにコンフィギュレーションが切り替わると思われる。
      つまり数クロックから数十クロックくらいの頻度、速度だろう。

      コンフィギュレーションを動的に構成することは無理っぽい。
  • by tmiura (6268) on 2004年04月27日 17時59分 (#538859) 日記

    S5000 Product Brief [stretchinc.com]を見るとテンシリカ [tensilica.co.jp]のXtensa [tensilica.co.jp]-basedとありますな。 大量データ処理向けの所謂メディアプロセッサですか。

    これを念頭にS5000のProduct Briefを見てわかることは、

    • 機器に組み込まれた状態でプログラム可能ではあるようだが、JTAGポートからの書き込みだし、動作中に回路を書き換えることまでは考えてないようだ
    • ホットスポットの検出は多数回実行されるところを検知とあり、開発サイクルの絵にはプロファイルを取ってホットスポットを指定し直すという繰り返しが描かれている
    • たぶん、アノテーション付コードを生成してシミュレータで走らせて実行回数のプロファイルを取ってホットスポットを見つけるんだろう
  • by messo (7339) on 2004年04月27日 19時14分 (#538899) ホームページ 日記
    これに使えそうな気がする。携帯という限られた環境で
    いろいろな事をこなそうとすると自ずと限界に達するが
    このようなチップを使えば他目的に使える道具となる。

    表示方法と操作方法さえ改善すればパソコン並みの道具になるかもしれないよ。

    #機能はネットで買うビジネスモデルになるだろうか?
  • リコンフィギュラブルプロセッサの原理は単純です。 プロセッサの処理ステージにプログラマブルロジックを置くだけですので。 現に、中~大規模FPGAでは、ロジックの構成部はSRAM相当のセルです。

    # NECの発表したモノは、CPUコアそのものの構成は変更しないモノかな?

    従来のFPGAでは、Verilog/VHDLなどの論理記述言語を用いなければならず、ソフトウェア側とハードウェア側で記述はともかく、設計方針すら切り替えないといけないものでした。 ソフト、ハード(この場合は論理回路)双方とも精通した技術者は、最近こそ増えてきましたが決して普遍的にいるのもではありません。

    一方、合成(synthesis)技術の方は、より高い抽象化/効率的で確実な検証をめざして研究が続けられ、Handel-C, System C++をはじめとした、高級言語を用いた論理記述も最近はようやく現場で使われるようになりました。 高級言語を用いることにより、ソフトウェア屋にもある程度の論理記述ができるようになるだけでなく、検証もfunction単位でソフトウェアとして行えてしまうというメリットもあります。

    # しかしどの処理系も値段が高すぎて日曜工作には適さない, sigh.

    Stretchの供給するコンパイラは、ソフトウェアのコンパイラ/論理回路のシンセサイザが、とてもおもしろい(しかし技術的には難しい)ポイントで遭遇したような感じを受けます。コンパイラ技術の進歩の賜と言えましょう。

    この方向性を民生用のプロセッサに持ってくるためには、より柔軟な再構成性を実現するために、プログラマブルロジックのSRAMセルを、プロセッサのメモリキャッシュのごとくバスの近くに持ってきてしまい、マルチスレッドでも論理を高速に入れ替えられるようにするといいのかなー、ってのは個人的な妄想。

    # 師匠にタコ殴りにされそうな素人意見だけど日曜HDL遊びは好きなのでID

  • by cloudy (1160) on 2004年04月27日 18時44分 (#538883)
    社名のStretchってやっぱりあのIBMのStretch [wikipedia.org]からとったんでしょうかね?
  • たとえば (スコア:1, おもしろおかしい)

    by Anonymous Coward on 2004年04月27日 21時43分 (#538952)
    道理でウィルスが検出できないと思ったら、ウィルス自身が1つのインストラクションになってるじゃないかー!。なんとかしろー!

    # とか。
  • by Matthew (12158) on 2004年04月27日 21時57分 (#538957) 日記
    とかやると面白そう。 多重の層をもつものでも反応早くなりそう。
  • by Anonymous Coward on 2004年04月27日 16時28分 (#538809)
    エロゲする人用の「エロゲ命令」とかがあったりするわけですね。
  • by Anonymous Coward on 2004年04月27日 16時36分 (#538813)
    コンパイル時に「プログラム中で重点的な計算が必要な箇所を自動検出」ってどうやるんでしょう?
    複雑な計算が必要な処理でも一度しか実行しない処理とか、単純な処理でも大量のデータを流す必要のある処理とかいろいろあると思うんですけど。
    (プログラマが指定すればいいのかな?)
  • by Anonymous Coward on 2004年04月27日 16時40分 (#538817)
    ハード関係の大企業に採用されて単価が下がり、個人でもM/B含めて手が出るようになってくると大化けするかもしれませんね。

    現状ではPen4の2GHzを買った方がはるかに安いわけですから、よほどの物好き以外は手を出さないでしょう。


    このプロセッサは当初ビデオ、ネットワーク、通信、医療、セキュリティ用のアプリケーション向けとして、2004年中に複数の構成で発売になる予定。価格は大量購入の場合で35~100ドルとなる見込み。

    このスペックで$20程度、DualやQuod対応でM/B込み$250くらいになれば十分競争できると思います。

    また別の面を見ると、この技術が評価されてIntel/AMD等に吸収されるとこれまた面白いことになりそうです。2GHzオーバーのクロックに耐えられなそうなので、いろいろと技術的課題もあるんでしょうけど…。
    • by takenoko (9775) on 2004年04月27日 16時59分 (#538826)
      汎用コンピュータ向けじゃないでしょう。
      従来のPLDとかFPGAとかの置き換えを狙ってるんじゃない?
      普通の人には縁なさそう。

      # ロボットな人にはおもしろいかも。
      親コメント
    • by Anonymous Coward
      すいません、Quodではなく4チップ構成はQuadですね。
    • by Anonymous Coward
      むしろ組み込み用とか特殊な処理装置とか、
      OSに使うにしてもコ・プロセッサ向けじゃないかと思いますが。

      あえてWindowsとかUNIXを動かす必要はないのでは。
      • by Anonymous Coward on 2004年04月27日 16時58分 (#538824)
        リンク先にも書かれているように、当面狙いはビデオ処理ボード(XVDやMPEGxボードのような)や高機能・高性能ルータなんでしょうかね。SSL暗号化ボード等でも需要がありそうです。

        既存ソフトのリコンパイルが必要になってしまいますので、確かにOSをそのまま動かす意味は薄いですね。拡張ボードとして挿して専用コンパイルされたソフトを使わせる廉価版高密度FPGAの代替という使い道が出来れば面白いな、と思います。
        親コメント
  • by Anonymous Coward on 2004年04月27日 16時40分 (#538818)
    すごいなぁ。

    なんか、記事とか読んでると、GPUに取って代わるかもしれないって気がするけど、それは気のせいかな?

    #っていうか、今のパソコンのCPU+GPUという組合せを、複数のこのプロセッサに置き換えるなんて妄想も浮かんだり。
    #処理に応じて、例えばプロセッサ3個のシステムなら、動作中にCPU担当部を2個、GPU担当部を1個での処理から、CPU担当部を1個、GPU担当部を2個での処理に置き換えたり。
    • by Anonymous Coward on 2004年04月27日 17時36分 (#538845)
      しかし、構造を変えられる分でロスしているところは確実に有るはずで、特に固定ロジックのGPUですら発熱で大変なことになってるのに、同じパフォーマンスを実現しつつ動的なプロセッサに置き換えたら大変なことに。。

      もちろん、命令を自由に作成できるからパフォーマンス的にはある程度のアドバンテージが有るかもしれないけど、異なる処理を同時に行う場合とかを考えるとあまり実用的ではない気がする。

      PCというよりはゲーム機とかかね。メーカーは作りっぱなしでよくなるし、ソフトウェアのベンダもハードウェアの違いを気にする必要は無くなるし。
      親コメント
      • by chapuni (1170) on 2004年04月28日 12時56分 (#539192) ホームページ 日記
        しかし、構造を変えられる分でロスしているところは確実に有るはずで、特に固定ロジックのGPUですら発熱で大変なことになってるのに、同じパフォーマンスを実現しつつ動的なプロセッサに置き換えたら大変なことに。。

        そのとおりです。 たとえば昨今のFPGAで主流の最小構成単位は、4入力-ルックアップテーブル(ROMのようなもの)-F/F です。 面積は確実に食います。

        配線も自由度を増すためにやや冗長な構成となっています。 面積を喰うだけではなく、遅延(いわゆるクリティカルパス)の最大の要因ともなっています。

        FPGA/CPLDで単価の安い製品はありますが、量産時のコストパフォーマンス、および最大処理能力パフォーマンスではとうていASICに敵いません。ていうか棲み分けはかなりできてると思う。

        参考までに、高集積・高速で定評のあるA社のSという石を内部160MHzでブンまわしてみましたが、熱くて触れません。放熱機構つけてないけど。

        親コメント
    • GPUというより後から仕様を変えられる物向きなんじゃないかな。

      たとえば、無線LANとか。11a,b,gと乱立したけどモード切替で対応できると。
      親コメント
  • by Anonymous Coward on 2004年04月27日 18時08分 (#538866)
    モフッフフィー・ネオを作れますか?
  • by Anonymous Coward on 2004年04月27日 18時56分 (#538889)
    よく分からないけど、CPU自体が変化する(そんなことありえない・・・)わけじゃないくて
    >>プログラム中で重点的な計算が必要な箇所を自動検出し・・・
    はつまるところコンパイル時にプログラマが書いたソースから、まとめられる命令部分を自動でまとめてくれるだけ??
    あまり画期的とは言いがたいような・・・?
    • Re:良くわからない・・・ (スコア:2, おもしろおかしい)

      by Anonymous Coward on 2004年04月27日 21時19分 (#538941)
      私もハード関係はさっぱりですが、タレコミ文の「プログラマブルロジック」ってのがCPU自体が変化するための技術っぽいです。

      学研の電子ブロックをすごく小さくして、自動的に取り替えてくれるロボットアームをつけたようなものかな??
      親コメント
    • 仮に関数を1つの命令にまとめるのだとしても、ソフトウェアとハードウェアの違いはあるのではないかと…
      少なくとも命令をデコードする必要はなくなりますし、ランタイムでのレジスタリネーミングや見込み実行に掛かるコストが飛躍的に減少しそうな気がします。
      それに、実行パイプラインの無駄を最小に抑えることも可能であるように思えます。
      素人なのであくまで想像ですが…
      親コメント
    • by Anonymous Coward on 2004年04月27日 21時15分 (#538937)
      >CPU自体が変化する(そんなことありえない・・・)

      ありえます.今までにもいくつか出てますし.
      で,今回のもそういったものの一種なのでは?
      親コメント
    • by osha (15408) on 2004年04月29日 0時33分 (#539434)
      >>よく分からないけど、CPU自体が変化する(そんなことありえない・・・)わけじゃないくて

      例えばFPGA(Field Programmable Gate Array)はその名の通り,現場で再構成可能なゲートアレイです.
      汎用的なプロセッサの上で走らせた場合に時間がかかるような処理をFPGAに乗っけてやれば,
      じゃまなソフトウェアなしにハードウェアだけで計算が突っ走るので,高速処理が可能になります.
      いわば特定用途に限った専用計算機みたいなものがFPGAを使えば作れるわけです.

      今回のプロセッサはその延長線上にあるようなもので,用途(ソフトウェア)にあわせて
      (ある程度)最適化できるハードウェア(プロセッサ)といったようなものだと思います.
      もっと大胆に,動作中に回路を再構成してやろうとか,用途に応じて進化するハードウェアなんてのを
      研究している人たちもいます.このあたりの話題は星野力先生が著書が参考になると思います.

      親コメント
  • by Anonymous Coward on 2004年04月28日 1時20分 (#539047)
    昔(今も?),Mainframeの場合,
    全く同じハードなんだけど支払う金額によって処理性能に制限をかけておく,
    っていう習慣がありましたよね.
    お金を払うとチョコッとスイッチを切り替えてくれる,みたいな.

    とりあえず安価にセットを購入してもらって,
    お金を払うと「とてつもなくビデオのエンコードが早くなる」とか,
    「WebサーバでSSLの処理を気にしなくてよくなる」とか,
    「主に利用するDRM毎に適当な処理が早くなる」なんてのは一つかも.

    PCやWS, Server的な製品形態なら,
    それほど魅力的な選択肢にならないかもしれないけど,
    アプライアンス的な箱で選択ができるのだったら,
    それはそれで(市場へアピールとして)良いかもしれないなあ.
typodupeerror

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

読み込み中...