京がいつのまにやらTOP500の二連覇をしている。なんだかんだで我が国の技術はたいしたもんだ。
ということで私のフィールドワークであるエンベディッド分野を計算機科学の観点で再考してみる。
計算機科学が単独での成立が難しい学問なのは多分そうなんだろうが、とりあえず一般的な指標で考えてみる。プロセッサを語る場合、もっともよく語られる重要要素は3つ、「演算性能」、「コスト」、「電力」である。
で、各社なにかしらの指標でTOPを狙ってチューニングしてくるわけである。
「演算性能」一本勝負
とにかく最高性能が欲しいという分野である。組み込み機器にもWindowsやLinuxがどんどん入ってきており、性能があるほどサクサク動く。
Core i7 とか、PowerPC とか比較的この路線のプロセッサではなかろうか。
「演算性能」/「コスト」
これも割りと需要の多いレンジ。いわゆるコスパの一番いいプロセッサである。PC系に多い気がしますね。
今だと Core i5 のレンジかな。
「演算性能」/「電力」
MIPS/W を追求する世界。やっぱARMとかが筆頭なきがする。モバイルで重要な指標な指標。
挙げていないが、「互換性」というパラメータを引き合いに出すと、ATOMとかVIAの互換チップとかいろいろ。
「コスト」一本勝負
我々が良く使うマイコンはまさにこのレンジが多い(爆死)。やりたい事ができる最低限の
性能があれば、後はとにかく安いやつを選択というパターン。
PICやAVRのような小型のものから、各社の16bit~32bitの下位グレードあたりがこの指標で勝負している気がする。
もっとも先にあげた「やりたい事ができる最低限」のバリエーションが多いため、マイクロプロセッサもバリエーション豊富。
「電力」一本勝負
電力のためなら高くついてもかまわない!。という分野。
腕時計とかそういう用途なので、もはや汎用プロセッサでなくて専用ASIC作るのが正解な分野なのかな。あまり汎用プロセッサとして存在し得ない気がする。
汎用計算機/専用計算機の話を始めるとHPC分野含めていろいろ話が脱線するので割愛。でもLINPAK専用計算機なんて作ればTOP500的には(間違った意味で)面白いかもしれない(笑)。
と、いろいろ見てきてなんか気づいたのだが、何が「必須」で何が「ベストエフォート」なのかが求めるプロセッサによって変わってきている気がする。
近年組み込み機器のPC化が進んでいるが、性能がベストエフォートな世界って本当に組み込み分野なのだろうか???
たとえばリアルタイムOSなんてのは、「時間内にやらなければいけない処理を確実にできるプロセッサ」の限界値を引き下げる技術である。スケジューリング理論を逆手にとって、「どんなアホなスケジューリングをしてもREADYタスクがあるのにSLEEPするなんてことさえしなければ、これだけパフォーマンスがあるプロセッサなら絶対に間に合う」というリミットが(多分)ある。
逆に賢いスケジューラを搭載すれば、プロセッサに要求される加減値は下がる。下げれば下げるほど、コストなり電力なりのより良いプロセッサが選択可能になり、商品価値を上げる。
これは「必要な性能」が、「ベストエフォート」ではなく「事前に計算された規定値」だからだ。だからこそ工夫すればするほど別軸でメリットが出る。
対して、必要な性能」が「ベストエフォート」な分野って本当に組み込み分野なのか? ってのはまさに疑問である。PC化ってそういう意味でも見れるんじゃないかな?
我々組み込み屋はどこに行くのか…
コメント