d.lab Systems Design Lab

Chapter -8-

シリコンコンパイラー

ソフトウェアを書くようにチップを作る

2020.06.03

シリコンコンパイラー 1.0

コンパイラーは、ソースコードをオブジェクトコードに変換するソフトウェアです。ソースコードは人間の言葉に近い高級言語で記述されているので、そのままではコンピュータが理解できません。そこで、コンパイラーを使って機械語のオブジェクトコード、つまり実行バイナリに変換します。

同様に、ハードウェアの仕様をシリコンチップに変換するソフトウェアをシリコンコンパイラーと呼びます。たとえばハードウェア記述言語のVerilogをフォトマスク製造言語のGDS-IIに変換します。


1979年にカリフォルニア工科大学のDave Johannsenが “Bristle Blocks: A Silicon Compiler” という論文を発表しました。Carver MeadとLynn ConwayがVLSI設計の教科書 “Introduction to VLSI Systems”(私たちはこの教科書に魅了されてVLSIの世界に身を投じました)を著した年ですから、シリコンコンパイラーはごく自然な発想だったのでしょう。

Johannsenの指導教授はMeadでした(備考)。Mead は1982年に“Silicon compilers and foundries will usher in user-designed VLSI”と題する論文の中で、シリコンコンパイラーとファウンドリーで専用チップを作る時代を予見しています。

Johannsenは、1981年にEdmund ChengとSilicon Compilers Inc.を創設しました。同社のGENESISを使うと、メニューを選択しながら従来の1/5程度の短期間でチップを設計することができました。DEC社はそれをMicroVAXというミニコンの開発に用いたそうです。

しかし、それ以外には大きな成功を収めることはなく、同社はやがて身売りされました。Seattle Silicon Technologyという会社もシリコンコンパイラーを開発していましたが成功しませんでした。


備考:
JohannsenがMeadの80歳の誕生日を祝う師弟愛溢れるスピーチの録画があります。 https://www.youtube.com/watch?v=9kz1ZWO1Dr8
この中でレイアウトの配色に気を付けろという逸話が語られています。Meadの教科書を使ったアメリカでは、赤はPoly Siゲートでした。しかし私が勤めた東芝では、赤はAl配線だったのでとても混乱しました。

シリコンコンパイラーは、今日もまだ実用化されていません。なぜでしょうか。

ソフトウェアはバグがあっても後でパッチを当てて修復できますが、ハードウェアは直ちに修正しなければいけません。また、ソフトウェアの性能はハードウェアと共に進化すると考えますが、ハードウェアの性能は完成時に仕様を満たすべきだと考えます。つまり、ハードウェアはソフトウェアよりはるかに設計が難しく(hard)、開発リスクが高いのです。

ワンクリックでコンパイルすることは、ソフトウェアの世界では当たり前でもハードウェアの世界では夢物語です。チップ設計ツールの大手であるCadence やSynopsysもCompilerと名付けたツールを開発していますが、それは熟練した技術者が使うツールです。ソフトウェアを書くようにチップを作ることは夢のまた夢でした。


シリコンコンパイラー 2.0

最近シリコンコンパイラーに対する期待が再び高まっています。その理由は以前とは異なります。

設計はPPA(Power、Performance、Area)の最適化です。かつてはArea、つまりチップのコストが最優先でした。やがてPerformance、つまりチップの動作速度が重要になり、そして現在ではPowerが最優先です。なぜなら、チップの電力が上限に達しているので、電力効率を高めた者がその分だけチップの性能を引き出せるからです。つまりチップの性能は電力効率で決まります。

何でもできる汎用チップに比べて無駄な回路を削ぎ落した専用チップは、電力効率を桁違いに高くできます。しかし専用チップの生産量は汎用チップに比べてとても小さいので、開発費がチップコストに大きく計上されます。

チップの設計技術はムーアの法則に追い付かず、開発費は近年急増しており100億円にも達する勢いです。仮に開発費が100億円で製造費が1個1,000円のチップを1000万個製造する場合、チップコストの半分は開発費になります。つまり、開発費を1/10にできれば、Areaが1.5倍になっても、20%コストダウンできるのです。

かつては開発費が十分に小さかったのでAreaが最優先されましたが、現在は開発費が急増しているのでその低減が求められています。また、費用だけでなく開発時間の短縮も、技術の変化が早い現代ではリスクの低減につながるので必要です。


Powerを桁違いに削減できるASICをPerformanceやAreaが多少悪くてもコンパイラーで低コスト・短時間に開発できれば、利益を出せるのです。そしてチップの開発数が増えれば、相乗り試作サービス(MPW:Multi-Project Wafer)を利用して、10億円もするマスク代を1,000万円に抑えることも可能です。

さらに高位合成と組み合わせれば、Cでチップを記述できます。チップ設計者のコミュニティーがソフトウェアの設計者のように拡大します。ハードウェアの世界にもオープンソースのビジネスが根付けば、ビジネスエコシステムのネットワークが重層的に拡大発展して、マスコラボレーションも可能になるでしょう。そうなれば、まさにソフトウェアを書くようにチップを作ることができます。


d.labは、高位合成でCからVerilogを合成し、3D-FPGAでシステム設計・検証を行った後に、VerilogからGDS-IIをコンパイルしてASICを開発する設計プラットフォームを研究開発します。

私たちの目標は、シリコン技術の民主化(Democratize access to silicon technology)です。システム開発者が直ちにASICを作れることが目標です。そのために、シリコンコンパイラーで開発効率を10倍高め、ソフトウェアを書くようにチップを作ることを目指します。


グラフ
図:シリコンコンパイラーでソフトウェアを書くように専用チップを作る

ルネサンス

1986年。私は東芝でSilicon Compilers Inc.との協業を探っていました。その仕事で出会ったのがTom Hoです。後に私の無二の親友となる人物です。

Tomはマカオからカリフォルニアに移住してU.C. Berkeleyを卒業しました。インテルで80286の設計主任を務めた後に、Edmundの誘いでSilicon Compilers Inc.に入ったのです。私たちが出会ったとき、彼は31歳で私は27歳でした。

サンノゼのモーテルで、私たちはノートに回路図を書きながら、時が経つのも忘れて回路の議論をしました。SRAMのセンスアンプには入出力を短絡したインバータがベストだとTomから教わりました。私が後に1991年に発表したABC(Automated Bias Control)回路は、このときの議論がきっかけとなりやがてアイデアとして結実したものです。

Tomに回路はどこで習ったのかと聞くと、U.C. Berkeleyの授業でCarlo Séquinに教わったと答えました。そこで、私がバークレーに行きたいと言うと、彼はGENESISの分厚いマニュアルを携えながら、片道1.5時間かけて私をバークレーまで連れて行ってくれました。


1989年に私はU.C. Berkeleyに留学しました。そのときのホストがDavid PattersonとRISC-Iを開発したSéquinでした。U.C. Berkeleyは、1970年代にDonald Pedersonが回路シミュレータのSPICEを開発し、1980年代はRichard NewtonやAlberto Sangiovanni-VincentelliやRobert Braytonが自動レイアウトや論理合成の研究を牽引していました。Cadence やSynopsysといった会社も次々と誕生して、実に華やかな時代でした。2000年頃からEDAの市場は徐々に飽和状態となり、技術進歩もゆるやかになりました。


最近、U.C. Berkeley で学生がRISC-VをChiselで書き1か月毎にテープアウトを繰り返している話をよく聞きます。私はEDAのルネサンスの香りを感じています。

Tom、シリコンコンパイラーをもう一度やらないか!