理学ではなく,工学であるということ.

私がやっているコンピュータを使ったシステムの構築は数学などの理学に近い分野だと
思っていたけど,物性屋さんなどの工学に近いんだなということにいまさらながら気がついた.
どうも「コンピュータサイエンス」という言葉にだまされていたようだ.


私の前々職は外資半導体メーカのチップデザインにおけるソフトウェアサポートで,
チップの設計を行う人(デザイナさん)の使うソフトウェアの導入やカスタマイズが主な仕事だった.


チップがどういうプロセスで作成されているかについてはチップの種類によって
ぜんぜん違うんだけど,ASICのような少量多品目でガンガン設計→引き渡し
しないとビジネス的になりたたないタイプのチップの設計フローはざっとこんな感じだった
(もう10年くらい前の話なので今は大分違ってるはず)


1. VHDLやVerilogHDLなどのハードウェア記述言語でチップを記述
2. シリコンコンパイラで上記データを論理回路(ネットリスト)にコンパイル
3. テストを入念に行って問題ないことが確認できたら,レイアウトツールにかけて半導体のレイアウトデータに変換
4. レイアウターさんがさらに人間の手でチューニング&レイアウト
5. 最終テストを行って,工場にレイアウトのマスクデータを渡して量産


3のレイアウトツールはプロセスライブラリと呼ばれるいろいろなパターンの特性
(サイズや応答速度やコストなど)をもった半導体素子のカタログリストから,コンパイル
された論理回路に最適なパターンを当てはめていき,全体的なレイアウトデータを作成していく.


半導体素子は様々な条件下で製造されるため,原子レベルに於いてはどれ一つとして
同じものはできない.よって工業的にはある一定以上のマージンを持たせることによって
「同じもの」として利用することになる.


話に聞くと工場によってプロセスの特性は違ってくるらしく,
さらに天候や季節によっても影響を受けるという話で,条件によっては
すばらしくマージン特性が高いチップが出来るということだった.


Celeron 300Aがオーバクロック耐性が高く,
「○○工場の第××週のロットでは△△Mhzでも動いた」
みたいな話はつまりは上記のような事情だったわけだ.


...大分話が逸れたが本題に移ろう.

今までのエントリで述べてきた,

  • パラレルよりシリアル

http://d.hatena.ne.jp/yamaz/20061013
http://d.hatena.ne.jp/yamaz/20061014

  • open(2)は結構遅い

http://d.hatena.ne.jp/yamaz/20061026

  • データのローカリティを大事に

http://d.hatena.ne.jp/yamaz/20060426
http://d.hatena.ne.jp/yamaz/20060508
http://d.hatena.ne.jp/yamaz/20060509
http://d.hatena.ne.jp/yamaz/20061026

  • ポーリングよりもイベントドリブン

http://d.hatena.ne.jp/yamaz/20061106


みたいな話は数学などの理学的分野から導かれる不変的な結論ではなく,
どちらかというと経験やデータから導かれた*ある状況下での*コンピュータの
特性なので,パラメタの変化や今後のコンピュータの進化に伴って変わって
いく可能性のある特徴ということになる.


物性工学は物質のある特徴に着目して工学的/工業的な利用を考える学問だけど,
そういう勉強をして自動車会社とかに就職した友人の話とか聞いていると,
材料の特性の理解やマージンに対する考え方が非常に深く、「コンピュータは
十分速いからまぁ適当に並べとけばOK」とかそういう甘い話はなく非常に参考になった.


高効率なシステムを作るという話はずっと考え続けていることだけれど,
チューリングやアタナソフ&ベリーが真空管でコンピュータを作ったように,
サーバやプロセスを1つの素子ととらえて,それらの特性を肌で理解しながら
システム全体を考えていくようにすれば,もっと高効率なシステムを作れる
のではないかと思った.

(おしまい)

あわせて読みたい.

http://www.chienowa.co.jp/frame1/ijinden2/Alan_Turing.html

http://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BF%E3%83%8A%E3%82%BD%E3%83%95&%E3%83%99%E3%83%AA%E3%83%BC%E3%83%BB%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF

ブレインズ―コンピュータに賭けた男たち

ブレインズ―コンピュータに賭けた男たち (1) (ヤングジャンプ・コミックスBJ)

ブレインズ―コンピュータに賭けた男たち (1) (ヤングジャンプ・コミックスBJ)

ブレインズ―コンピュータに賭けた男たち (2) (ヤングジャンプ・コミックスBJ)

ブレインズ―コンピュータに賭けた男たち (2) (ヤングジャンプ・コミックスBJ)

バベッジチューリングやアタナソフ&ベリーなどのコンピュータ史に
名を残した男達のドラマを描ききった名作.
と思ったらすでに絶版でマーケットプレイスではプレミアまでついてる.
コンピュータエンジニアは全員読むべきなのにこれはひどい...

yamaz的日常

「DB設計のブレストしましょう」
舞波からお誘いがあったので,大急ぎで作業部屋を片付けて,
ルンルン気分で待ち合わせ場所のドトールに行ったら,
なんだかイカついホタテマン3人が待機してて,それなんて美人局?
逃げるまもなくそのまま渋谷ホテル街のマンションの一室(=yamazの作業部屋)
に連行され,DB設計のブレストのはずなのにいきなり「存在とは?」とか
「事実は上書きできない」とかメタな話から始まる討論(オフ会)を4時間半とか.


もうちょっと詳しい内容はこちらをご覧ください(舞波乙).
あと第 6 回 Rails 勉強会@関西でも話するようです(明日だけど).