You can read this blog in any language using google translate as follows:

Goto http://translate.google.com/
Paste URL in the box and select "Japanese for From Language" and "To Language". Then click "Translate".

English translated pages are here:
http://bit.ly/xPuXoy

你可以閱讀這個博客,在任何使用“Google”的語言翻譯

本ブログのアクセス統計: 60万アクセスを達成しました。ご訪問ありがとうございました。

60万アクセスまでの経過

2009年12月に始めた本blog。2011年7月ごろに10万アクセスを達成し、2011年12月13日には15万アクセスを達成。
その後、私も更新しておらず、アクセスは少し減りましたが、3月1日には18万アクセス。2012/4/18に20万アクセス、2012/8/21に25万アクセス、2013/1/18に30万アクセス、2013/12/17に40万アクセスを達成しました。しばらく見ていなかったら、2015/5/1に50万2584アクセスになっていました。またまた、しばらく更新しないうちに、2017/6/11に60万7197アクセスになっていました。2018/7/7 .. おお七夕 .. には63万0656アクセスになっていました。久しぶりに更新しました。

2012年5月20日日曜日

知識は仕事を通して得る


私は大会社にいるので、なかなか新技術が伝わらないのがもどかしい。それでもあきらめず改革したいのは、昔から夢であった、コンピュータを自分で全部作れるようになりたい。という夢が、大学や、主に会社生活を通じて、かなったからである。

おそらく、LSI設計から、OS、言語、アプリ開発に至るまで、自分で完結してやれると思う。車なら、F1 GPXのマシン設計者のような境地であろう。

昔の話であるし、もはや機密になるほどの情報はない。が、ITビジネスに関する興味深い知見も含んでいるので、自分史にもなるし、まとめておく。

PCに関する経歴)
昔はPCの黎明期であり、変化に富んでいて楽しかった。もう少し目先が利けばビジネスを立ち上げていて、Steve Jobsみたいになれた。。とは、思えないが。。。


  1. 小学校時代) 小学校3年頃に親戚の家でみた、電子ブロックが電子工作へのとっかかり。どうしても欲しくて、1箱に5個ぐらいのブロックが入った、電子ボードを少しずつ小遣いで買い集めた。
  2. が、電子ボードを作り尽くすと満足がいかない。子供の科学、模型とラジオ、ラジオの製作、初歩のラジオ等の雑誌を書店で立ち読みし、欲しい号を買っては、ゲルマニュームラジオ、2SC372を使った光電センサ、電子ルーレット、等を自作。
  3. 中学に入ると、行き着けのパーツ屋に、コモドールPET、Tandayが入荷した。毎日のように触っていた。
  4. 「つくるコンピュータ」http://amba.to/KKRb2x という本を見付け。


    ボロボロになるまで読んだ。結果、uPD751というNECの4bitマイコン (4040のようなもの、独自命令セット、アドレス12bit, データ4bit)で、自作することにした。親を説得して、地元から秋葉原に買い出しに行った。主な材料は、若松通商で買った。

     関連記事: https://electrelic.com/electrelic/node/739 パーソナルなコンピュータのプロセッサ事情 (第1回: 4ビットの頃)

    同時に、秋月通商(当時は、信越通商だった)で、プラスマイナスが取れる可変電源のキット等を購入。当時の秋葉原は、週末には、道でコンピュータのジャンクなどを売っていた。リードリレー式のキーボード、タイプライターのようなインパクトしきの数字プリンタ。コアメモリーなどがあったので、買ってきた。

    uPD756のマイコンはフルスクラッチから自作。データ入力はトグルスイッチ。
     NiCd電池で、CMOSのRAMのバックアップを作ったが、いつもデータが消える。RAMはチンチンに熱くなる。今考えると、RAMの電源に入れたダイオードの電圧降下によりVddが信号線よりも低くなり、Pad トランジスタが、ラッチアップを起こしたのだと思う。
  5. 高校時代の夏休みに、専務さんと仲良しだった、行きつけのパーツ屋でバイトをした。レジがお客に渡すレシートと、店に残るレシートと2枚になっていて、店を閉めてから現金と帳尻あわせをすることを知った。時々お金が数千円単位で会わない。私のポカかと、何度も計算した。お店の人曰く、「あのバイトの子がいるといつも会わないんだよ。」私の性ではなかったらしい。ともあれ、お客にいろいろ聞かれたり、レジを売ったり、パーツ(抵抗とか、コンデンサとか)を皿から計算してレジをうつだけでも、大変なスキルがいるのだとよく分かった。店の人の付添でオーディオやTVの納品にもいった。箱をあけて新品のオーディオを設置するのは楽しかった。結構良いバイト代をくれたと思う。結局、13万円ぐらいのトリオの30MHz 2現象のオシロスコープをその店で買った。結構まけてくれたので、バイト代でちょうど足りた。
    そのオシロスコープを使って、拾ってきたカラーテレビを修理して使った。パーツ屋さんと顔なじみなので、回路図をコピーさせてもらい、部品を取り寄せて修理した。また、大学でも1台修理したが、オシロスコープ代が取り戻せたとも思えない。
  6. 高校時代に行った大学際で、ベクタースキャンディスプレィによるStar Trekを観た。
  7. 大学に入り、教養の学生時代にMC6809のマイコンを自作した。これも、上記のオシロスコープが頼りだった。大学院にいって、ロジアナという便利なものがあるのを知ったのは、後の話。

    2012年5月20日日曜日:  昔はPCを自作したものである

    に書いた。
  8. 学部4年のとき、電子工学科の学園祭で、自動演奏の展示を企画。知り合いをたどり、ヤマハからMIDIのシンセサイザーを4台ほど調達。
    マイクの音を、リアルタイムに楽譜に変換し・和音の伴奏をつけるというシステムを作った。
    マイクの音は、飽和したアンプで、矩形波に変換し、カウンタで周期を計測。FM-7に入れて、楽譜抽出をした。2台めのFM-7が、和音追加を担当(たしかBasic言語)し、MIDI信号を作成し、同時伴奏を掛けた。
    結構音を外したり、テンポを外したりもしたが、わりとまともな伴奏になっていた。協力してくれた、コンピュータと、音楽に詳しい、大学同期のおかげである。
  9. 大学院に入り、分散OSの研究に携わった。当時は、Versa Busの自作ボードであったが、品質が安定しないので、全廃して、Multi-busボードのMC68010のボードとした。
    先輩や助手の方が、Unixに大変詳しく、最新のunix 4.2BSD (4.1だったかも)を、新規購入した、Micro VAXに、移植していた。おそらく日本で最初に動かしたのではないかと思う。その方々の薫陶で、BIOSなどの書き方も学んだ。UNIX System IIIの全ソースコードも読んだ。IBMだったかのUnix stationというMC68010マシンが、分散OSコードのクロス開発マシンであった。
  10. 並列マシンをやるために、今の会社に就職。MC68020を用いた並列マシンのBIOSならびに、言語処理系を開発。研究テーマとして、並列言語を1年間勉強したが、どうもなじめず。結局、barrier, remote read, rpcなどを用いたライブラリによる、汎用環境とした。実は今の研究テーマにここでつながっている。思想は同じである。今から思うと、並列言語になじめなかったのは、美しさを追求するあまり、実用性と離れた議論になっていて、ある種机上の空論化していたからだと思う。自然現象が、オブジェクト間の相互作用だから並列オブジェクト言語で良いとかそういう議論である。これは全くウソではないが、ディジタルコンピュータで扱う以上、離散時間にしないとならない。すると、情報の伝搬が同時に起きないので、いくらオブジェクトを増やしても、性能はあがらない。収束性の良い、数値解法を使って、数値シミュレーションしたほうがよいのである。主な応用は、DRAM向けの回路シミュレーション(設計)の高速化であった。
  11. 二代目の並列マシンを、R3000, R3010Aで設計した。リーダとして言語環境、OS環境も担当した。私は、LSI Logic社のASOBI KITというチップセットを流用し、PALを用いて、外部でタイミングを合わせて性能を引き出した。通信プロセッサと2 CPUのマルチコアマシンである。25MHz動作であり、それまで動かしたことがない速度だといわれたが、試作を担当してくださった、職人さんの優れた知見と腕で、見事に一発で動いた。設計から、試作、デバッグ、運用先での運用まで面倒をみて、このとき、モノ作りの神髄を大分理解した。自作のときは、回路図をみて、ワイヤを半田付けしていったが、職人さんは、ワイヤラッピングをするのに必ず布線表を作る。何台でも全く同じように仕上げるためでもあるが、それ以上に、修正ができるようにするのに、ラッピングワイヤが、掛け違い、上と下に入ると、外さないといけない範囲が膨大になる。これを防ぐために、配線の順序をすべて計算し尽くしていたのである。プリント基板を設計したときも、職人さんは、この修正と電源の強化に細心の注意を払っていた。おかげで、この方の実装設計した装置は、いつも、かならず一発で動作した。

    これも主な応用は、回路シミュレーションであったが、より汎用性が高まったので、故障シミュレーション(LSIの故障検証パターンの網羅率検証)などにも利用された。
  12. 応用として、日本原子力研究所のJT-60という核融合シミュレータのシミュレータを並列化した。MHD型のsimulatorの並列化を私が担当し、先輩が、粒子型のモンテカルロシミュレータを担当した。コードのチューニング解析手法を理解するとともに、数値シミュレーションにおける、陰解法、陽解法の位置づけ等を学んだ。
  13. 並列マシン開発を通して、当時のRISCプロセッサの機能が不十分であることがわかり、並列向けCPUの提案を始めた。具体的には、以下などである。
    1. cache一貫性が取れない
    2. 同期命令など通信命令が不十分で、かつデバッグ環境もない
    3. 浮動小数点性能が足らない
    4. メモリ回りの性能が重要であり、コア内部にとりこんで最適化したい
  14. MITへの海外留学が決まっていたが、MIPS社との4命令同時発効型Out Of Order RISCプロセッサR10000共同開発・汎用機への展開・ゆくゆくは汎用機向けマイクロプロセッサの自社生産の話が持ち上がり、私は後者を取った。現場でCPUを作って、社のコンピュータをリードしたかった。動作速度も200MHzと、それ以前のR4000の50MHzとから格段に高速化したものをめざしていた。この作業まではCPU設計の素人だったが、LSI技術、検証、論理設計、回路設計などを習得できた。赴任2年後に、R10000は完成した。が、社は汎用機への利用を断念。技術はHP社から導入することに方向転換。理由は、ビジネスソフトウェアの開発力をHPから導入したかっためと聞いている。また、Pentium ProもR10000とほぼ同時に発表されRISCがCISCより性能が優れるという神話も崩壊した。SGIも当時までグラフィックスで利益を独占していたが、優秀な技術者たちが、ATIやNvidiaなどに流出し、安いPCで同じような機能がでるようになり、ビジネス的にも敗退していった。日本の判断は、先をみていたともいえる。
  15. 私も帰任予定であったが、事業部で、R10000を用いたWork Stationの検証支援の話が持ち上がった。それならば、MIPS社の環境で統合検証をしたほうが、効率が良いので、それを提案。当時MIPS社の環境はnewtと言う独自言語で書かれていた。日本側の環境は、社の独自言語である。別々なsimulatorを繋ぐのもよいが、性能がでないし、大体、MIPS社の優れた、設計検証環境がつかえない。そこで、独自言語をnewtに変換するコンバータをperl/perl byaccを用いて、1ヶ月ぐらいで作り、デモをして、米国に残留することになった。その後、3-4ヶ月かけて完成度を上げた。
  16. 2つのマシンのRTLコードを検証したが、日本側で検証完了を意味するClean File (日本側では、R10000の仕様書から起こした疑似CPUを利用して検証)から、それぞれ10個近くのバグを検出し、大成功と言われた。当時部長だった方は、社の常務にまで出世され退職されており、私の提案の筋の良さを見抜き、力を貸してただけの方だったと思う。出荷用にバグのあるCPUにFIBという修正を施し、LSIテスタでチェックして、日本に輸出するという作業も行った。結構、いろいろやった。また、当時はアルゴアのinformation highwayが花盛りであり、SGIのマシンの開発支援もやった。とにかくSGIはopenな会社でいろいろ見せてくれた。
    また、日本から来た上司がCPUの値段交渉するのも拝見した。交渉が上手く、とにかくスゴ腕であった。この方のおかげで弊社は相当利益を上げたと聞いたし、この方は相当に出世をされ、引退されている。先の方も含めて、技術が見抜けて、交渉もできる。これが大事だと強く感じた。
  17. 一方、別な会社から来られた部長クラスの方。技術は既に分からなくなり、マネージメントも自社以外では通用しない。とりあえずと技術を担当していたが、足手まといになっていて、若手がいつも陰口をいっていた。「日本に戻れば偉いんだけれどね。。」、こうは成りたくないと思った。
  18. SGIは、R10000を用いてOriginという並列マシンを開発したが、その設計の斬新さには舌をまいた。CPUのNorth bridgeと、south bridgeやnetworkの間が virtual channelを用いたパケット交換型のworm holeのnetworkでつながっているのである。そして、Distributed Shared memoryを構成していた。最大700ノード近い構成だったであろうか。
  19. その後、MIPSでR12000、さらに後継、また後継の論理検証を担当。R12000以降は全てキャンセルされた。HPがVILWのスゴイプロセッサを開発中だとの噂にも翻弄された。後に立ち上がらなかったItaniumである。しぶとくPA8000系やPowerシリーズを開発し続けたHPやIBMがしばらくはビジネス的にも成功したと思う。曖昧な情報に翻弄されることによる失敗例である。
    このキャンセルに関して、MIPS社内では、一般社員や我々強力社員まで巻き込んで、半年ぐらい徹底的に反省会をやった。これが、米国先端業界の強さであると強く感じた。SGIは5年前には、クリントン大統領が訪問し、株価が22ドル。その後50ドル近くまであがり、日の出の勢いだったが、キーパーソンのJim Clark http://bit.ly/Jfug3y  をNetscapeに流出したり、衰退していった。
  20. 米国に残る気もあった。現に、技術者を大事にする米国企業に残った技術者は多かった。
    が、日本の研究所で、投機マルチスレッドを用いた、先進プロセッサを開発するということになり、それが魅力的であったので、残りたがっていた家族を説得し、日本に戻った。
  21. 投機マルチスレッドプロセッサでは、全くなにも設計環境がないところに環境を構築した。言語のデザインルール、設計ツール等、MIPS/SGIの経験をもとに、最新と思われる環境を構築した。設計環境は、学会の招待講演等でも何度も講演した。
    また自分も、論理設計をしたかったので、メモリコントローラと内蔵PCIコントローラを設計した。以前、考えていた。CPU内部にメモリコントローラなどを内蔵して、最適制御をするということの実現である。当時は、IntelにもAMDにもメモリコントローラを内蔵したCPUはなかった。また、ARMもコアはAPB/AHBで切れており、メモリコントローラは別設計が標準であった。
  22. 初代試作はISSCCで発表したが、いろいろ反省点があった。なによりもソフトウェア(OS, アプリ, コンパイラ)へのしわ寄せが多すぎた。新人が、それを解決する良い提案をした。MIPS/.SGIでの知見により、少数精鋭チームを作った。が、これがうまくいかない。後輩が優秀すぎて、先輩を追い抜いたり、リーダの私と議論が激しくなったりすると、チームがまとまらない。あとから、考えたが、日本に、米国式を、そのままいれても、なじまないのである。
  23. 結果、非常に良いプロセッサができた。が、事業化したかったので、研究は一切口外せずに、某有力メーカと技術ライセンスを内密に交渉した。
  24. 同時に、そのメーカは、並列CPUを作りたがっていたので、5年近くにわたり、並列技術を提供した。契約交渉にも立ち会った。当時交渉していた人は、その社の社長になって、引退した。そうほう、良く訪問しあった。
  25. そのメーカが作った初代並列CPUを、携帯や自動車大手に売り込んだ。最初は、非常に興味をもってもらえたのだが、いろいろあって立ち上がっていない。弊社側の体制作りに失敗したのが主原因だと思う。日本の大企業は、新たなことに対して、日本側を動かすのがとても難しい。技術者がそれで疲弊してしまう。
  26. その後、部長になり、LSI設計、デバイス等を観た。が、部長は事務屋で、雑用のお化け。適当にやらないと大変なことになることがよく分かった。それを全部こなそうとしたのか、体もこわした。今から思うと、細かすぎる上司のいうことを真に受けたのがいけなかった。やるべきことを絞りこんでおき、それを達成するためには、ほかのことは適当で良いのである。
  27. Local  Areaネットワーク装置をやっている研究部が、新アイディアのCPUを開発したいということになり、そちらに移動した。これは結局立ち上がらなかったが、NIC(Network Interface Card)が面白いことが分かった。独自規格のCPUがなかなか受け入れられない、今、これは、一番面白く、売り物になる部品かもしれない。なにしろ、昨今高速化した、FPGAを用いれば、FPGAで作れるのである。
  28. その後network研究でStanford大から新技術を導入し、Stanfordと懇意になった。
  29. そこで、立ち上げた、SEDCL (Stanford Data Center Research Laboratories) のRAMCloud http://bit.ly/J3eBit が今の研究テーマである。そのリーダがJohn Ousterhout教授 http://bit.ly/Jfwct9 。大学時代、分散OS研究の対抗馬 UCBのSpriteの研究をされていた方。私より5歳ほど年上の先生である。ここで入社当時にやったrpcがまた登場している。
    VMwareの創業者Mendel Rosemblum准教授 http://bit.ly/Jfwf87 も彼の教え子であり、いつもmeetingに来られている。他にもCISCO CTOやSAP、欧州の大学などが興味を持っている。
    ながらくHardware設計をやってきたので、C++やgitを用いた設計は最初は戸惑ったが、もう大分習得した。が、PhD学生の方が詳しく、英語も下手(海外派遣者が多いStanfordの中でなぜか、ウチのチームだけ、私以外は全員nativeなのである。一人インド人がいるが。。) なので、素人扱いされるのは、最初は戸惑う。が、そのほうが気持が若くなって、発想も若者の柔軟さに戻れて良い。
実は、日本から米国に来る日本人駐在者は、英語が相当上手くても、やはりnon nativeなので軽くあしらわれる。それがイヤで日本に戻る人が多いらしい。女性の場合は、語学の才能がある人も多いし、そういうところは、極めて適応力があるらしい。

コミュニケーション能力の高さと、適応力という点では、マネージャや幹部は女性のほうがよいと思う。議員も同じかもしれない。

blog comments powered by Disqus