第3章 ハイエンドコンピューティング研究開発の動向
3.2.1 半導体性能向上神話崩壊後のアーキテクチャ
天野 英晴 委員
1. 半導体のスケーリング則
CMOS LSIの動作速度はプロセスの進歩につれて向上を続け、新しいプロセスを利用することは、それだけで性能の向上につながった。これは、以下の原理に基づいていた。
このスケーリング則は0.25μmプロセスが用いられた2000年位までは、ほぼそのまま通用した。しかし、2001年に状況は変化する。
2. 性能向上神話の崩壊
筆者は、1991年以来、主としてCMOS Embedded Arrayを用いて、スイッチ、ルータ、インタフェース用プロセッサなどの開発にたずさわって来た。開発した主なチップを表1にまとめる。
年代 | プロセス | チップ名称 | コア部動作周波数 | 機能 |
1991 | 1.0μ(川鉄) | TBSFチップ | 50MHz | マルチプロセッサ用スイッチ |
1993 | 0.5μ(NEL) | PBSFチップ | 90MHz | 3次元スイッチ |
1995 | 0.5μBiCMOS(日立) | RDTルータ | 60MHz | JUMP-1用ルータ |
1997 | 0.35μ(東芝) | MBP-light | 50MHz | JUMP-1用プロセッサ |
1999 | 0.35μ(富士通) | RHiNET-1/SW | 100MHz | RHiNET用スイッチ |
2000 | 0.18μ(日立) | RHiNET-2/SW | 200MHz | RHiNET用スイッチ |
2001 | 0.14μ(日立) | Martini | 66/133MHz | RHiNET用インタフェース |
ここで、1.0μmから0.18μmまではスケーリング則そのままに、プロセスの発展につれて順調に性能を上げることができた。2000年にRWCP、日立と共同で開発したRHiNET-2/SWは、8Gbpsのリンクを8組交換することが可能であり当時のCMOSのスイッチとしては世界でも最高速レベルを達成することができた[2]。この時期までは、新しいプロセスをいち早く利用することこそ、性能向上への早道であった。
ところが2001年、プロセスが0.18μmから0.14μmに進む際、状況が一変した。今までは、新しいプロセスを用いる時には、ゲートの遅延時間が小さくなったことで、まず設計に余裕を持って当ることができた。また、0.5μmまでは、仮負荷のSTA(Static
Timing Analysis:遅延解析)と実配線時のSTAはほとんどぴったり一致した。0.35μmから0.18μmでは場合によってはやや相違を感じることがあったが、10%内外であった。
ところが、2001年に日立の0.14μmプロセスを用いて、クラスタコンピュータ用ネットワークインタフェースチップMartini[3]の開発を行ったところ、まず、ゲート単体の性能が0.18μmプロセスに比べ余り向上していないことに気づいた。次に、仮負荷時のSTAにおいて8nsec以内に抑えたクリティカルパスが、実配線後にモジュール間の配線が加わったところ、16nsecに増大するという事態が生じた。もちろんMartiniで利用したプロセスおよびツールが、このチップ面積に対応する点で様々な問題を持っていたことが原因の一つではあるが、基本的には、この時点でスケーリング則が崩壊しつつあったことが大きい。
スケーリング則の崩壊は以下の原因による。
(1) | 微細化技術が進むと、配線寸法が縮小されるため、配線抵抗が断面積の減少により大きくなるとともに配線間容量も配線間の距離の減少と共に大きくなる。このため、配線の信号遅延と相互干渉が大きくなる。 |
(2) | スケーリング則により減少し続けるチャネル抵抗に代って、電極やソース、ドレイン部の寄生抵抗が支配的になり、素子の性能の向上が抑えられる。 |
このため、新しいプロセスを単に利用するだけでは、性能を上げるのは困難となった。今後、プロセス技術にブレークスルーがない限り、プロセスが進むにつれて益々この傾向は大きくなると考えられる。すなわち、半導体性能向上神話は崩壊し、今年から新しい時代に突入したのである。
このような節目の時期を迎えているのだから、例えば日経エレクトロニクスで特集が組まれ、学会では専門家が深刻な表情でパネルディスカッションをやり、など世の中がもっと騒いでも良いのではないかと思う。しかし、目下、業界の話題はC言語ベースの高位レベル設計などであり、全く静穏である。これは以下の理由に基づくと考えられる。
(1) | 深刻な事態に陥っているのは、最先端のプロセスを利用し、しかも巨大な面積を利用する一部の設計者に限られている。彼らは新しいプロセスの利用時のトラブルには慣れているし、予算額も大きいため、今のところ事態をなんとか回避する方法を見いだしている。 実際、0.18μmから0.14μm/0.13μmへの移行は、銅配線の利用、多層配線の活用など新しいプロセス技術の利用(コストはかかるが)、クロックの分離(Martiniでは3種類のクロックをモジュール毎に使い分けることで、性能低下をなるべく抑えて、配線遅延の問題に対処している)、フロアプランの改善などで、がんばれば、かなりなんとかなるレベルである。 |
(2) | 性能向上に対する圧力が減っている。 今までは、新しいチップを新しいプロセスで作る以上、従来の同様の目的のチップと比較して、相当の性能向上が期待され、端的に言うと動作クロックが上がっていなければならなかった。しかし、最近はむしろ消費電力が少ない、実装が楽、コストが小さくて済む等のメリットがあれば動作クロックが高くならなくても良い(あるいは下手に周波数が高いと電力を食って大変)という考え方が広まった。このため、プロジェクトのボスからのこの面での圧力が減ってきた。 |
(3) | 0.25μm以下でスケーリング則が通用しなくなることは、以前から予測されていた。 したがって、プロセス屋さんは配線遅延や寄生抵抗を下げるための技術を着実に開発中であり、それでも今まで程には性能が上がらないのは、物理学の法則により当たり前であると考えているので、今更騒ぐ必要はなかった。 |
しかし、現役のアーキテクチャ屋は、筆者を含めてIC世代であるため、「プロセスが新しくなっても、ぼーっとしていては性能が上がらない」というのは、生まれて始めての事態であり、従来の根本的な考え方が崩壊したわけであるから、充分騒ぐに足ると思う。また、今までアーキテクチャ屋は「限界が来ない」ことに慣らされてしまっていた。物心ついて以来、CPUの性能は上がり続け、DRAMの容量も増大を続け、プロセス技術も進み続けていた。スケーリング則だって色々言われていてもこのまま通用し続けるのではないか、と無意識のうちに考えていたところに、今度に限って予測が見事に的中し、「限界」にいきなり直面することになった。
ただし、ここで注意しなければならないことは、新しいプロセスの利用が、性能にまったく貢献しなくなったわけではない点である。まず、集積度に関しては依然としてスケーリング則は通用するし、以下の条件を満足すれば性能を向上させることができる。
(1) | 同一面積に、同じような方法で実装した場合に、クロック周波数を上げることが難しいのであって、全く同一の回路ならば、面積は小さくなるし、周波数も若干上げることができる。 |
(2) | レイアウトレベルで最適化すれば、クロック周波数を上げることが可能である。 |
(3) | 集積度は依然として向上するので、今までチップ外に実装したモジュールをチップ内に持つことで、バンド幅の向上や入出力の遅延の減少により性能向上が見込まれる。 |
3. 絶滅するもの、発展するもの
3.1 さらばEmbedded Array
さて、この新しい時代を迎えて絶滅するであろうと思われるのが、Embedded Arrayを含めたゲートアレイである。Embedded Arrayとは、メモリやCPUなどのあらかじめ設計ができているモジュール(ハードコアIP)は、レイアウトの形で拡散層に実装し、その他の部分は、あらかじめ拡散層上に作られたトランジスタに対して配線のみを行ってランダムゲートを実現する方法であり、ASICの主流として使われてきた。Embedded
Arrayはセルベースド設計に比べて、レイアウトが自動化されており、設計期間が短いことから、新しいチップを短期間で設計する場合に向いており、表1に示すように、筆者らも一貫して新しいアーキテクチャの検証を行うのに用いてきた。部分的にレイアウトが行われている高速モジュールとランダムゲートの柔軟性を利用することにより、RHiNET-2/SWのように、相当複雑なルーティングを行うスイッチを、部分的には800MHzという高速な周波数で動作させることが可能になる。
ところが、Embedded Arrayは、配線遅延が支配的になる新しい時代においては、致命的な弱点を抱えている。すなわち、今後、遅延を支配する要素である配線を、あらかじめ拡散層に配置されたハードコアIPやトランジスタを接続する形で、後から行なわなければならない点である。配線に自由度が大きいが故に、配線間の干渉についてはきちんとしたマージンを設けざるを得ない。配線をドライブする場合の遅延に対しては、最小と最大の遅延差を設計上大きめに設定せざるを得なくなる。このため、クロックのスキューを考えてホールドタイム合せを行うと、最小遅延に対処するために数多くのゲートを信号線上に配置せざるを得なくなり、これらは最大遅延を考えた場合には確実に性能の足を引っ張る要因になる。
また、配線遅延を克服するには、長い配線に対して適切なサイズのリピータを挿入する必要があるが、トランジスタの形状が決まってしまっているEmbedded
Arrayは基本的に通常のゲートをリピータとして用いざるを得なくなり、長い配線の随所にゲートが入ることになり、結局、遅延の短縮効果が大幅に制限される。
3.2 セルベースド設計と水平分業の発達
一方で、セルベースド設計は、チップやベンダに依存しないレイアウトツールの普及、Physical Compilerなどのフロアプランと論理設計を結び付けるツールの発展、水平分業の発達、特に台湾のベンダを代表とする製造のみの半導体ベンダの台頭により、ASICの主流になるであろう。すなわち、フロアプランや配置配線を半導体ベンダに頼って論理合成後のNetlistでデータインする設計法から、ベンダに依存しないレイアウトツールを用いてレイアウトレベルでデータインする設計法が主流になると考えられる。特に最近の台湾半導体ベンダは、同一ダイ上での複数チップの相乗り実装を押し進めている。この形式はMOSISやVDECなどの研究レベルで用いられてきたもので、今後安価でチップを作成する方法として、中小企業や大学研究機関での利用が進むであろう。
この場合、配線遅延の克服が設計者の仕事となる代りに、リピータのサイズやゲートの種類、フロアプランを工夫することにより、性能を上げることができる。簡単に言って、これからのアーキテクチャ屋は自分でレイアウトまでできないと使い物にならないことになる。また、新しい時代に究極的に性能を追求するならば、レイアウトまで最適化せざるを得ないかもしれず、この場合、一つのチップの設計には何人もの技術者の協力による大掛かりなものとなる。
3.3 リコンフィギャブルデバイスの台頭
一方で、これとは逆の流れとして、FPGAなどのリコンフィギャブルデバイスの発展がある。FPGAあるいはCPLDは様々な構成法があるが、基本的に以下の特色を持っている。
(a) | Logic Blockをモジュールとした規則的なアレイ構造を持つ。 |
(b) | Logic Block間は、隣接の配線および専用の長距離配線とスイッチによって結合される。 |
(c) | Logic Blockのテーブルやスイッチの接続はメモリ中のデータによって決まる。 |
従来FPGAの動作速度は、Logic Block間の配線によって遅くなるとされてきたが、厳密に言うとこれは誤りで、配線を変えるためのスイッチの遅延時間が大きかった。ところが、配線遅延が支配的になると、Embedded
Arrayで単に線を引く場合も、長距離の配線については、一定の間隔でリピータの挿入を行わなければならない。一定の間隔で置かれたスイッチがリピータの代りをするとなると、長距離配線遅延に関してはEmbedded
ArrayとFPGAは変わりがないことになる。むしろ、最適化された抵抗の少ない専用配線領域と、きちんとしたドライバを持つFPGAの方が有利になる可能性すら考えられる。
したがって、セルベースド設計を行う程の数量が見込まれず、性能も必要ない場合は、FPGAを用いるのが有利となる。このように新しい時代では、ある程度数量が見込まれる場合は、セルベースド設計をきっちりやって、レイアウトデータをデータインする。そうでなければFPGAを用いる、という形でLSI利用は二極化されることが予想される。
4. 新しい時代に適合したアーキテクチャ
さて、アーキテクチャ屋としては、新しい時代に適合したアーキテクチャは何かを考える必要がある。
4.1 VLSIアーキテクチャ
1980年代にH.T.Kungのシストリックアレイを中心に、VLSIに適したアーキテクチャ(VLSIアーキテクチャ)の研究[4]が行われた。この研究成果は役立つだろうか?
この時代のVLSIアーキテクチャは以下の前提に基づいていた。
(1) | 配線遅延が支配的になる。 |
(2) | 配線領域が無視できない程大きくなる。 |
(3) | I/Oピン数がボトルネックとなる。 |
この前提に基づき、配線は全て局所的、I/Oをアレイの両端のみで行い、データをリズミカルに流すと共に計算を行うシストリックアーキテクチャが提案された。実際に配線遅延が支配的になった現在、この考え方は高い先見性を持っていたことになるが、それではシストリックアーキテクチャ自体が今後大幅に発展するか、というと必ずしもそうではないように思える。これは以下の理由に基づく。
(a) | 3つの前提のうち、(1)は深刻だが、(2)(3)はさほどでもなかった。 確かに配線領域は無視できないが、微細加工技術の発展に従って、ゲート同様縮小されるため、時代が進むにつれて問題が深刻化するに至ってはいない。また、確かにI/Oピン数のボトルネックは一貫して深刻な問題だが、パッケージ技術の発達によって相当緩和されているし、半導体面積の増大により、主要なパーツを内部に抱え込むことで対処することも可能になっている。したがって、チップ内のモジュール間の交信を無理に局所的に抑えることは効果があっても、配線面積やI/Oピンを抑制することはシストリックアーキテクチャ導入の要因にはならない。 |
(b) | 80年代のVLSIアーキテクチャは何ゆえかオンチップメモリの活用が考えに入っていない。 膨大なオンチップメモリが混載可能になった現在、チップ内にデータを記憶しないで流してしまうシストリックアーキテクチャはむしろ不利であると言える。 |
当時の研究成果も踏まえ、今後、新しいVLSIアーキテクチャは、以下のようなガイドラインに従うことが考えられる。
@ | モジュール化された構成は高速化の可能性が高い。特にレイアウトレベルで最適化されたモジュール(CPUコア、メモリ等)を用いれば、効果はさらに大きい。 |
A | 多数のモジュールの繰り返し構造は有効である。 |
B | 低レイテンシなデータ交換は局所的なものに限られる。大域的なデータ交換はレイテンシを前提に行う。 |
C | オンチップメモリを有効利用する。 |
残念なことに、上記のガイドラインに従うと単純な2次元のアレイ構造にスイッチ等の大域的通信手段を持つといった、ちょっと考えると「つまらない」構成以外なかなか思い浮かばない。しかし、応用分野を限ったオンチップ並列アーキテクチャは、今後の研究分野として大きいと思うし、一見つまらない構成以外思い浮かべない状況こそがアーキテクチャ屋の腕の見せどころと言えるかもしれない。
4.2 リコンフィギャブルアーキテクチャ
FPGAが新しい時代に大いに発展する素子である以上、この素子をベースとするリコンフィギャブルアーキテクチャは、大いに期待の持てる方式である。このアーキテクチャは、問題のアルゴリズムを直接ハードウェア化して、FPGA等のリコンフィギャブルデバイス上で実行する方式である。
昨年のレポートで触れたので、ここでは省略するが、高位レベル設計技術の発達と共に、益々応用分野が拡大している。さらに、マルチコンテキストFPGAや非同期FPGAなど、今後の発展が期待される新しいデバイスも登場しており、日本の企業、研究者の貢献も大きい分野である。
以上、まとめると、この稿の結論は以下の通りである。
(1) | 半導体が新しい時代に突入したことを、はっきり認識すべきである。 |
(2) | 配線遅延を克服するためのデバイス技術の開発と共に、この時代に向けたアーキテクチャ方式の確立も重要なテーマである。特に応用分野向けの並列アーキテクチャ、リコンフィギャブルアーキテクチャは有望であり、この分野の研究プロジェクトに研究資金を重点的に導入すべきである。 |
5. 計算機アーキテクチャ屋(Computer Architect)の将来
ぼーっとしていると性能が上がらない以上、今後性能を左右するのはアーキテクチャの良し悪しによるところが大きいわけで、アーキテクチャ屋は勇躍して、新しい時代に向けて研究を進めなければならない。
新しい時代の到来に歩調を合わせ、日本の計算機アーキテクチャ、ハードウェアの研究者も転換期を迎えている。
メインフレームの発展が限界に達すると感じられた時期から、日本のアーキテクチャ研究は主として並列アーキテクチャをベースに展開してきた。並列処理シンポジウムJSPPや並列分散処理に関するワークショップSWoPPなど、並列アーキテクチャ技術を中心に、ソフトウェアからチップ実装まで、広い範囲で研究交流が行われ、世界に誇ることのできるマシンの開発も行われた。
しかし、まず、コンピュータ自体が、コンピュータとして計算や事務に用いられるだけでなく、情報通信機器の様々な範囲に拡散して行った。本当にコンピュータとして用いるアーキテクチャはIntelの86系が支配し、この土俵では逆転することが不可能となった。したがって、自らの提案の現実化を目指すコンピュータアーキテクチャ研究者は、様々な応用分野に拡散せざるを得なくなった。並列分散処理技術も、チップ内からインターネットを利用した世界レベルの分散処理技術まで様々な範囲に拡散した。
結果として、並列アーキテクチャを中心に、様々な技術をまとめることは困難になりつつある。現在、アーキテクチャ、ハードウェアの研究者はその数を減らしつつ、一部は日本で開発することが可能なオリジナルアーキテクチャであるスーパコンピュータ方面に向い、残りはチップ設計実装方面に向っている。
筆者は、このような現状を残念とは思ってはおらず、むしろ歓迎し、加速したいと思っている。スーパコンピューティング方面に行かなかったコンピュータアーキテクトは、シリコンチップ上で、チップ設計技術を押えた上で、チップ屋さんと手を結んで、生きていくしかないと考える。今まで培ってきた並列処理技術は、新しい時代を迎えるに当って、非常に有効な技術基盤となるだろう。また、通信、画像信号処理、リアルタイム処理、バイオインフォマティクスなど様々な応用分野に出ていき、そこの研究者と手を携えて新しいアーキテクチャを探るべきであろう。
日本においてコンピュータアーキテクチャが一つの独立した研究領域を形成した時代は終わりつつある。2002年2月の情報処理の特集「知られざる計算機」[5]は、日本のアーキテクチャ研究の終幕を飾る点で実にタイムリであり、また、象徴的である。
参考文献
[1] | 日本電子機械工業会 編 "ICガイドブック" 2000年版 |
[2] | S.Nishimura, et.al. "RHiNET-2/SW using parallel optical interconnection,"J. of lightwave technology, Vol.18, No.12, Dec. 2000. |
[3] | K.Watanabe, J.Yamanoto, J.Tsuchiya, N.Tanabe, H.Nishi, T.Kudoh, H.Amano, "Preliminary Evaluation of Martini: a Novel Interface Controller Chip for Cluster-based Parallel Processing," Proc. of AI 2002. |
[4] | H.T.Kung, "Why Systolic Architecture? " IEEE Computer, Vol.15, No.1, pp.37-46, 1982. |
[5] | 和田英一編 "知られざる計算機," 情報処理 Vo.43, No.2 2002. |