「半導体がムーアの法則なら、プロマネの進化は牛歩」

http://itpro.nikkeibp.co.jp/article/MAG/20070925/282891/
http://d.hatena.ne.jp/akon/20070926#1190760205 経由
いかにも的はずれな記事に見える.

ハードウエアもソフトウエアも、作るのは同じ人間である。なのに、半導体ムーアの法則のスピードで猛烈に集積度を上げていくのと比べると、業務アプリケーションを開発するためのプロジェクトマネジメントのレベルアップは、ムーアの法則に遠く及ばない。牛のような歩みだ。この違いは、一体どこから生じるのだろうか。

集積度を上げていくのはプロセスの微細化.
プロセスの微細化はそれを作る『製造装置』や『工場』に依存するものでしょ?*1 *2


ならばソフトウエアにおいて比較すべきなのはコンパイラやパソコンの性能UPで,「何十万行,何千万行のコードでも問題なくビルド出来るようになった」とか「ビルドにかかる時間が短縮された」とかいう話ではないかな.
http://www.biwa.ne.jp/~mmura/SoftwareDevelopment/WhatIsSoftwareDesignJ.html

今年から半導体技術者として働くことになった新人の前には、クアッドコアのプロセッサを設計する技術ノウハウが蓄積されている。新人は、この高い土台からスタートして、8コアや16コアのプロセッサ開発に参画することになる。5年後の新人は、32コアくらいの設計技術を土台にスタートするかもしれない。

この手のノウハウは,ほとんどがIntelとかAMDとかの限られた企業に押さえられてるのは取りあえず無視するとしよう.1コアから2コアでは決定的に設計が異なるけど*3,4コアから8コアだと1コアから2コアの時ほどには大きな違いは出ないだろう*4.いずれにせよ,マルチコアプロセッサの設計が新人にできるレベルものとは思えない.


たとえ結論が正しかったとしても,元の記事で引用されている例は的はずれでしょうね.

*1:設計支援ツールもバージョンアップしてるだろうね.容量はともかく,計算量が単純にn^3〜n^5オーダー辺りで増え続けると現実的な時間で設計が終わらなくなる.

*2:集積度はあがっても,それを設計する人間の側は膨大な論理回路を埋め尽くせるほどのネタがない.そこで出てきた(安易な)解決策が,二次キャッシュ統合だったりマルチコアだったりするわけだ.これだと同じ物を並べるだけなので設計者への負担は比較的小さくなる.

*3:マルチコア対応の設計変更が入るから.

*4:一度マルチコア対応すると,あとは同じ設計のコアを複数並べる単純作業になる.もちろんマスク設計などにはそれなりの手間はかかるだろうけど,新アーキテクチャを作るのにくらべれば比較的簡単.