光を用いた演算手法
光回路では、Mach Zehnder Interferometer(MZI)が計算を行うための基本コンポーネントである。MZI素子では、次の図のように入力を2つに分岐し、分岐したパスに可変のフェースシフトを行う素子を入れる。その後、分岐した信号を纏めて出力を作る。
それぞれのフェーズシフト量φ1とφ2が等しければ入力と同じ信号が出力される。一方、フェーズシフト量が180度異なっていると、φ1とφ2側の信号は打ち消しあって出力はゼロになる。右下の棒グラフはφ1とφ2のフェーズの差を横軸にとり、出力の信号をプロットしたもので、位相差が180度となるグラフの中央では、信号が打ち消されて出力がゼロになっている。
フェーズシフトを可変にするやり方として、熱による方法、P/N接合を使う方法、機械的な変形を使う方法がある。P/N接合を使う方法は、動作速度は速いが大きな電気を食う。また、素子が大きいという問題がある。
LightmatterのMarsでは、Nano Optical Electro Mechanical System(NOEMS)を使っている。NOEMSは貯めている静電気の力でウエーブガイドを曲げて位相を変える。ウエーブガイドの変形は電荷で記憶され、消費電力は非常に小さい。そして、数100MHzという高速で動作する。
-
フェーズシフトを可変にする方法は色々とあるが、LightmatterはNano Optical Electro Mechanical Systemを使っている。ウエーブガイドを静電気の力で曲げて位相遅延を変える。溜まっている静電気の量で遅延が変わり、静電気はほとんど逃げないので、電力を消費しない。数100MHzの速度で電荷の量を変えられるという
方向性結合器(Directional Coupler)は2つの入力信号を結合することができる。そして、2つのフェーズシフタで図中に示した位相シフトを与えてやる。次の図のように、2つの方向性結合器の間にこの2つのフェーズシフタを挟んだ回路で2×2の行列に1×2のベクタを掛けるという計算をオプティカルに実行することができる。
この行列とベクトルの乗算器は光のスピードで動作し、ほぼ電力ゼロで動作する。
この2×2行列と1×2ベクトル乗算器を次の図のように接続すれば、より大きな行列の掛け算が実行できる。
この乗算器は光で演算を行い出力も光であるので、電子回路との接続を行う場合は、アナログの光信号出力をフォトダイオードで電気信号に変換し、さらにADCでアナログ信号をデジタル信号に変換する。Marsでは、64個のDACで8bitのデジタルの入力信号をアナログに変換してMZIの制御信号として与え、出力側では光ダイオードからのアナログ信号を64個のADCでデジタル信号に変換している。
この回路では、光の積和演算器はほとんど電力を消費せず、電力を消費するのは入力回路と出力回路である。このため、この回路の消費電力は積和演算器の数の平方根に比例する。
光の特徴を活用し、多重処理を可能に
光の性質として、アナログ的な強弱だけでなく、光の色(周波数)と偏波という性質があり、周波数や偏波が異なれば、同じ回路でも別の信号を伝送し、処理することができる。実際にどれだけの多重処理ができるかは、周波数や偏波がどれだけ混信せずに送受信できるかによる。
次の図にMarsのフォトニックコアチップの写真を示す。Marsは64要素のベクトルの64×64のマトリクスを処理するチップとなっている。レーテンシは200psで、ベクタの処理速度は1GHzで動作する。入力信号と言うか入力電力というかは主観によるが、50mWのレーザー光で動作する。
チップは90nmの標準的なフォトニックプロセスで作られており、チップサイズは150mm2である。チップは64×64のフォトニックなマトリクスが最大の面積を占め、重みのモジュレータとベクタのエンコーダらがそれに次ぐ面積を占めている。
そして、光では作りにくい部分を14nmのカスタムASICで作っている。ASICで作られているのは、フォトニックコアとのアナログインタフェース、重みとアクティベーションのSRAM、I/Oインタフェース、デジタル部分などである。
-
SoCの部分は通常の14nm フォトニックCMOSプロセスで作られており、チップサイズは50mm2。フォトニックコアとのアナログインタフェース、重みやアクティベーションを記憶するSRAM、I/Oやデジタルの部分が収容されている
デジタル部分は、アクティベーションを扱うVSliceと重みを記憶するWSliceが並んでおり、WSliceはデジタルの重みをアナログに変換するDACを持っている。VSliceはベクタ処理を行うパイプラインが含まれている。
VSliceはアクティベーションの出力にDACを持つパイプラインが多数個あり、それぞれの入力に対応している。