瀬尾 雄三
今日のコンピュータはCPUにより演算を行っています。CPUは、万能演算器をただ一つ用いるだけで極めて複雑な演算処理も実行可能なすぐれた装置で、デジタル演算器が高価な時代にはデジタルコンピュータを実現する唯一の実行可能解でした。しかしながら今日では、デジタル演算器のコストは大幅に低下しており、CPUを用いる方式以外にもコンピュータを実現する道が開けています。
大量の高速演算が要求される信号処理や画像処理の分野では、CPUとは異なる原理に基づくデジタル演算装置が古くから用いられてきました。これは、パイプライン方式と呼ばれるもので、データを一時的に記憶するレジスタを挟んで多数の演算器を並べ、クロック信号に同期してデータをレジスタからレジスタにバケツリレー的に渡していく過程で少しずつ演算処理を施す手法です。パイプライン演算装置は、多数の演算器が同時に動作することからCPUに比べて極めて高速な演算処理が可能です。この特徴を生かす形で、高速性が要求される信号処理や画像処理を目的としたさまざまなパイプライン処理を行うLSIが作られてきました。
従来のLSIは、マスクで回路を形成しており、決まった演算処理しか行うことができません。一般のコンピュータは、ユーザの望む種々の処理を行う必要があるため、このようなLSIは利用することができません。ところが最近では、ユーザが使用する際に論理を書き込む「プログラマブル・ロジック・デバイス(PLD)」が急速に発達し、中でもFPGA(Field Programmable Gate Array)と呼ばれるデバイスは、非常に大規模な論理回路を形成できる製品も比較的容易に入手できるようになりました。動作中に論理内容を書き換えるダイナミック・リコンフィグレーションの手法も検討されており、CPUを用いない、パイプライン型のコンピュータも技術的には可能となりました。
パイプライン方式は、組み立て産業におけるコンベア方式に類似しています。組み立て産業においても、生産量の少ない間は、作業チームが一つの作業台の上ですべての組み立て工程を順に実行します。生産量が増えたときは、まず作業台を複数並べて幾組かの作業チームが並列で作業する方式がとられますが、さらに数量が増えればコンベア方式の流れ作業が導入されます。CPUを用いたコンピュータも、最近では複数のCPUを並列動作させることが多く行われるようになりました。コンピュータのパイプライン方式への移行時期も近いのではないでしょうか。
数値演算の分野にパイプライン処理が一般的になると、社会あるいは情報処理業界にどのような変化が生じるでしょうか。数値演算が早くなることは、大きな改良ではあるのですが、それだけなら少し便利になった程度で終わってしまうでしょう。しかし私は、それ以上の大きな変化が起こるであろうと予想しています。
今日の科学技術計算では64 bit幅の倍精度浮動小数点数が一般に用いられていますが、この有効桁数は十進で15桁と、通常の科学技術計算に必要な有効桁数(多くても6桁程度)に比べて非常に大きくとられています。科学技術計算へのコンピュータの利用が始まった1960年代には、浮動小数点演算は32 bit幅の単精度浮動小数点数を用いて行うのが一般的でした。これは、十進6桁の有効桁を持ち、科学技術計算に必要な最大の有効桁数と一致しています。しかし、まれに生じる桁落ちの問題を回避するために、現在では倍精度浮動小数点数の利用が一般的となっています。CPUを用いたコンピュータの場合、同じ演算器が全ての演算に使用されるため、全ての演算を倍精度浮動小数点数として演算することも止むを得ないのですが、演算されているビットの半分以上は現実的に意味を持たない無効桁であり、全世界では莫大な電力が意味のない無効桁の演算のために消費されているのが実情です。パイプライン処理では、演算器を多数配置して演算の各工程に専用の演算器を用いますので、それぞれの工程で扱う数値の有効桁数に合わせて演算器を最適化することで電力消費を大幅に削減することができます。
演算器最適化の一つの手法は、有効桁のみを扱うように演算器を構成することです。しかしながら、大きさが非常に異なる値を扱う場合には、単純に有効桁のみを扱ったのでは必要な精度が得られない場合もあります。パイプライン演算器の構成に際しては、デジタル演算における精度と桁落ちの問題を改めて考察する必要があります。CPUによる演算に際しては、十分なビット幅をもつ倍精度浮動小数点数を用いることで桁落ちの問題を回避していますが、対象としている問題に対して倍精度浮動小数点数で十分であるかどうかの確認はあまりなされていません。パイプライン演算器の研究は、CPUを用いた演算の信頼性改善にも効果があると期待しています。
CPUとパイプライン方式の違いは、これ以外にも多々あります。CPUがいわゆるチューリング・マシンとして動作するのに対し、パイプラインはデータ・フロー・マシンとして動作し、演算アルゴリズムもこれに対応する必要があります。OSもパイプラインへの対応が必要になるでしょうし、ビット幅最適化のためには、よりフレキシブルな型をもつコンピュータ言語が必要です。パイプライン処理が一般化すると、演算速度が改善され電力消費が低減する一方で、これに関連するソフトウエアの全面的な書き直しが必要となります。これは、計算機業界のみならず、これを利用する多くの業界に一大変化を引き起こすでしょう。
情報処理分野の変化の大波は、これまでにも何度かありました。古くはマイクロプロセッサの登場、新しくはインターネットの普及がその代表例です。これらに際して、さまざまな業界で世代交替が起こり、新しい産業が勃興しています。CPUからパイプラインへの技術の切り替わりに際しても、同様な変化が再び起こる可能性は高いものと思われます。これは大きなチャンスであると同時に慎重な対応が求められる局面であると、私は考えています。
2014年12月24日
出身企業:キヤノン株式会社
略歴:三菱化学株式会社総合研究所薄膜材料研究所長、キヤノン株式会社 主席研究員
学位:経営学修士(筑波大学)、学術博士(東京大学)「電子的コミュニケーションにおける社会関係の研究―対立のダイナミズム―」
所属学会:情報電子通信学会、情報処理学会、日本科学哲学会、情報知識学会
専門分野:磁性材料、薄膜材料、モータ・アクチュエータ、センサ、制御工学、デジタル信号処理
*コラムの内容は専門家個人の意見であり、IBLCとしての見解ではありません