(57)【特許請求の範囲】
【請求項１】
複数ビットの信号Ｘと複数ビットの信号Ｙとの所望の論理演算の結果をビット毎に出力する第１の演算手段と、
この第１の演算手段でのビット毎の論理演算に必要な、上位ビットへの伝搬信号をビット毎に出力する第２の演算手段と、
前記信号Ｘ，Ｙに基づいて前記第１、第２の演算手段を制御する制御信号をビット毎に出力する第３の演算手段と、
前記第１の演算手段での論理演算と異なる、前記信号Ｘ，Ｙのビット毎の論理演算の結果を前記第２の演算手段に入力する第４の演算手段とを備え、
前記第２の演算手段は、ビット毎の構成がそれぞれ１つの光パスゲートからなり、各光パスゲートが直列に接続され、
各光パスゲートは、前記第３の演算手段で演算された対応するビットの制御信号に応じて、下位ビットの光パスゲートからの前記伝搬信号と前記第４の演算手段で演算された対応するビットの演算結果のいずれかを選択して上位ビットに伝搬させることを特徴とする光論理回路。
【請求項２】
請求項１記載の光論理回路において、
前記光パスゲートは、ナノフォトニクスの光ゲートであることを特徴とする光論理回路。
【請求項３】
請求項１または２記載の光論理回路において、
前記第１、第２、第３、第４の演算手段の全てが光回路からなることを特徴とする光論理回路。
【請求項４】
請求項１または２記載の光論理回路において、
前記第１の演算手段は電気回路からなり、
前記第２、第３、第４の演算手段は光回路からなることを特徴とする光論理回路。
【請求項５】
請求項１乃至４のいずれか１項に記載の光論理回路において、
前記第１の演算手段での論理演算は、信号Ｘと信号Ｙの加算であることを特徴とする光論理回路。
【請求項６】
複数ビットの信号Ｘと複数ビットの信号Ｙとの加算の結果をビット毎に出力する第１の演算手段と、
この第１の演算手段でのビット毎の加算に必要な、上位ビットへの伝搬信号である桁上げ信号をビット毎に出力する第２の演算手段と、
前記第１、第２の演算手段を制御する制御信号として前記信号Ｘ，Ｙの排他的論理和の結果をビット毎に出力するＸＯＲゲートと、
前記信号Ｘ，Ｙのビット毎の論理積の結果を前記第２の演算手段に入力するＡＮＤゲートとを備え、
前記第１、第２の演算手段は、ビット毎の構成がそれぞれ１つの光パスゲートからなり、前記第２の演算手段を構成する各光パスゲートが直列に接続され、前記ＸＯＲゲートで演算されたビット毎の制御信号が対応するビットの光パスゲートに入力され、
前記第２の演算手段を構成する各光パスゲートは、前記ＸＯＲゲートで演算された対応するビットの制御信号に応じて、前記第２の演算手段の下位ビットの光パスゲートからの前記桁上げ信号と前記ＡＮＤゲートで演算された対応するビットの論理積の結果のいずれかを選択して上位ビットに伝搬させることを特徴とする加算器。
【請求項７】
請求項６記載の加算器において、
前記第１の演算手段を構成する各光パスゲートは、前記ＸＯＲゲートで演算されたビット毎の制御信号に応じて桁上げ信号またはその反転信号のいずれかを出力することを特徴とする加算器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理演算を光回路、または光回路と電気回路の混合回路で行う光論理回路と、光論理回路の１例である加算器に関するものである。
【背景技術】
【０００２】
現在の電子演算回路は、その処理速度を向上させるため、そのチップサイズや素子サイズを極限まで小さくする工夫がなされている。その理由は、回路内の抵抗（Ｒ）とキャパシタンス（Ｃ）とが信号の伝搬を大きく律速しているため、演算速度を上げるにはチップサイズや素子サイズを小さくするしかないためである。そのため、狭面積の論理ブロックやコアに素子を詰め込み、マルチコア（multi-core）・メニーコア（many core）化などの工夫がなされているが、それらのコアを繋ぐための配線が新たな「遅延」を生み、演算の高速化に限界が見えつつある。
【０００３】
一方、光通信などで用いられる光配線や光パスゲートは、その配線経路内のＣやＲに無依存で光信号を伝播させることができる。また、ナノフォトニクスの進展により、光ゲート（光パスゲート）の消費エネルギーは飛躍的に改善され、そのエネルギーコスト［Ｊ／ｂｉｔ］は、ＣＭＯＳゲートと光で同程度のレベルになりつつある。そのため、チップ内やチップ間の通信を光化する様々な研究がなされている。
【０００４】
図１３は１ビット当たりのスイッチングエネルギー（＝エネルギーコスト［Ｊ／ｂｉｔ］）を説明する図で、ＣＭＯＳゲートでは配線（ｗｉｒｅ）を含めると１０-15Ｊ／ｂｉｔ以下になると想定されている（非特許文献１参照）。一方で、ナノフォトニクスの光ゲートのエネルギーコストは１０-15Ｊ／ｂｉｔ程度のものが実現されており、ＣＭＯＳゲートと同程度のエネルギーコストになりつつある（非特許文献２参照）。また、ナノフォトニクスの光ゲートは短尺化の面でも有利である（非特許文献５、６参照）。
【０００５】
光パスゲートを組み合わせた構成における演算プロセスについて説明する。２×１の光パスゲートをツリー状に接続すると、図１４のようなｎ桁の入力に対するルックアップテーブル（Look up table：ＬＵＴ）を再現する回路を構成することができる（図１５（Ａ））。図１４、図１５（Ａ）の例ではｎ＝３の場合を表している。
【０００６】
図１５（Ａ）における１１−１〜１１−７は光パスゲートである。各光パスゲート１１−１〜１１−７は、ゲート入力が“１”であるときに一方の光経路（図１５（Ａ）の例では上側の光経路）を選択し、ゲート入力が“０”であるときに他方の光経路（下側の光経路）を選択する。この経路選択動作は、図３、図７、図８、図１０、（図１１は反対の経路を選択）で同じである。１段目の光パスゲート１１−１〜１１−４はゲート入力Ｃiに応じて動作し、２段目の光パスゲート１１−５，１１−６はゲート入力Ｘiに応じて動作し、３段目の光パスゲート１１−７はゲート入力Ｙiに応じて動作する。図１５（Ｂ）は１つの光パスゲートの等価回路を示す図である。
【０００７】
図１５（Ａ）に示した論理ブロック１０は、ｎ桁の入力に対する全ての組み合わせに対して、“０”か“１”の光信号を出力するものであり、ｎ桁の入力に対する全ての演算を実行するものである。このような構成における演算プロセスには、以下の３つの段階がある。
【０００８】
１つ目の段階は、答えの準備である。２×１の光パスゲートを用いてツリー構造を構成すると、ｎ入力に対し、２＾ｎ個の答え  （“０”あるいは“１”の１ｂｉｔ）を事前に準備することになる。電気回路ではこの答えをメモリに記憶させ、光回路の場合は“１”の答えのところに光源１０１を配置する。例えば図１５（Ａ）の論理ブロック１０は、Ｃi+1の演算を行う回路となる。
【０００９】
２つ目の段階は、出力経路の構築である。ｎ段のツリー構造において、同一段では同じスイッチ動作を、全ての段で同時に行う。これにより、経路の構築はスイッチの数に依存せず、１つのスイッチのスイッチング時間で完了する。
【００１０】
例えば図１５（Ａ）の例では、信号（Ｃi，Ｘi，Ｙi）＝（１，１，０）が入力されたとき、１段目の光パスゲート１１−１〜１１−４と２段目の光パスゲート１１−５，１１−６とが上側に切り替えられ、３段目の光パスゲート１１−７が下側に切り替えられ、１４で示される経路が構築される。このときの出力経路の等価回路を図１６のように示すこととする。
【００１１】
３つ目の段階は、答えの出力である。構築された経路を通して、事前に準備された１ビットの信号を出力する。電気回路の場合、１段目、２段目の動作は非常に容易に実現できる。つまり、膨大なメモリスイッチを使い２＾ｎ個の答えを記憶し、１０ｐｓ程度のスイッチング時間で経路を構築すればよい。
【００１２】
ただし、電気回路の場合、３段目のプロセスが非常に難しい。つまり、図１６に示されるように、ｎ個のトランジスタ１２のＣ，Ｒが連なるため、経路の応答速度がｎ＾２で劣化する。そのため、電気回路では、図１６に示すような接続は、ｎ＜４〜６でしか用いられない。
【００１３】
このような回路を光化、つまり、光パスゲートをＣＭＯＳゲートのように組み合わせ、論理ブロックを構成する手法にはいくつかの提案がある（特許文献１、非特許文献３、非特許文献４参照）。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平４−２９９７３３号公報
【非特許文献】
【００１５】
【非特許文献１】Rodney S.Tucker and Kerry Hinton，“Energy Consumption and Energy Density in Optical and Electronic Signal Processing”，IEEE Photonics Journal，Volume 3，Number 5，October 2011，pp.821
【非特許文献２】Koji Takeda et al.，“Few-fJ/bit data transmissions using directly modulated lambda-scale embedded active region photonic-crystal lasers”，Nature Photonics 7，pp.569-575，2013
【非特許文献３】James Hardy et al.，“Optic inspired logic architecture”，  OPTICS EXPRESS，Vol.15，No.1，pp.150-165，2007
【非特許文献４】Qianfan Xu et al.，“Reconfigurable optical directed-logic circuits using microresonator-based optical switches”，OPTICS EXPRESS，Vol.19，No.6，pp.5244-5259，2011
【非特許文献５】Noritsugu Yamamoto et al.，“Photonic crystal directional coupler switch with small switching length and wide bandwidth”，OPTICS EXPRESS，Vol.14，No.3，pp.1223-1229，2006
【非特許文献６】Kengo Nozaki et al.，“All-optical switching for 10-Gb/s packet data by using an ultralow-power optical bistability of photonic-crystal nanocavities”，OPTICS EXPRESS，Vol.23，No.23，pp.30379-30392，2015
【発明の概要】
【発明が解決しようとする課題】
【００１６】
以上の文献に示される従来技術では、チップ内やチップ間の通信を光化する技術や、論理ブロックを光化する技術が提案されている。しかしながら、回路の演算時間を律速する演算経路(クリティカルパス)への配慮がなく、演算で生じる遅延を解決できていないという問題点があった。
【００１７】
本発明は、上記課題を解決するためになされたもので、チップ内やチップ間の光配線や光ゲートだけでなく、さらに粒度を細かくトランジスタレベルまで光化を進め、演算レベルで生じる遅延の問題を根本から解決することができる光論理回路および加算器を提供することを目的とする。本発明では、電子チップにおける演算を律速するクリティカルパスを光化し、そのパスを光素子に適した構成に再構築し、パスの長さを短尺化することで、演算速度を飛躍的に改善する。
【課題を解決するための手段】
【００１８】
本発明の光論理回路は、複数ビットの信号Ｘと複数ビットの信号Ｙとの所望の論理演算の結果をビット毎に出力する第１の演算手段と、この第１の演算手段でのビット毎の論理演算に必要な、上位ビットへの伝搬信号をビット毎に出力する第２の演算手段と、前記信号Ｘ，Ｙに基づいて前記第１、第２の演算手段を制御する制御信号をビット毎に出力する第３の演算手段と、前記第１の演算手段の論理演算と異なる、前記信号Ｘ，Ｙのビット毎の論理演算の結果を前記第２の演算手段に入力する第４の演算手段とを備え、前記第２の演算手段は、ビット毎の構成がそれぞれ１つの光パスゲートからなり、各光パスゲートが直列に接続され、各光パスゲートは、前記第３の演算手段で演算された対応するビットの制御信号に応じて、下位ビットの光パスゲートからの前記伝搬信号と前記第４の演算手段で演算された対応するビットの演算結果のいずれかを選択して上位ビットに伝搬させることを特徴とするものである。
【００１９】
また、本発明の光論理回路の１構成例において、前記光パスゲートは、ナノフォトニクスの光ゲートである。
また、本発明の光論理回路の１構成例において、前記第１、第２、第３、第４の演算手段の全ては光回路からなるものである。
また、本発明の光論理回路の１構成例において、前記第１の演算手段は電気回路からなり、前記第２、第３、第４の演算手段は光回路からなるものである。
また、本発明の光論理回路の１構成例において、前記第１の演算手段での論理演算は、信号Ｘと信号Ｙの加算である。
【００２０】
また、本発明の加算器は、複数ビットの信号Ｘと複数ビットの信号Ｙとの加算の結果をビット毎に出力する第１の演算手段と、この第１の演算手段でのビット毎の加算に必要な、上位ビットへの伝搬信号である桁上げ信号をビット毎に出力する第２の演算手段と、前記第１、第２の演算手段を制御する制御信号として前記信号Ｘ，Ｙの排他的論理和の結果をビット毎に出力するＸＯＲゲートと、前記信号Ｘ，Ｙのビット毎の論理積の結果を前記第２の演算手段に入力するＡＮＤゲートとを備え、前記第１、第２の演算手段は、ビット毎の構成がそれぞれ１つの光パスゲートからなり、前記第２の演算手段を構成する各光パスゲートが直列に接続され、前記ＸＯＲゲートで演算されたビット毎の制御信号が対応するビットの光パスゲートに入力され、前記第２の演算手段を構成する各光パスゲートは、前記ＸＯＲゲートで演算された対応するビットの制御信号に応じて、前記第２の演算手段の下位ビットの光パスゲートからの前記桁上げ信号と前記ＡＮＤゲートで演算された対応するビットの論理積の結果のいずれかを選択して上位ビットに伝搬させることを特徴とするものである。
また、本発明の加算器の１構成例において、前記第１の演算手段を構成する各光パスゲートは、前記ＸＯＲゲートで演算されたビット毎の制御信号に応じて桁上げ信号またはその反転信号のいずれかを出力することを特徴とするものである。
【発明の効果】
【００２１】
本発明によれば、複数ビットの信号Ｘと複数ビットの信号Ｙとの所望の論理演算の結果をビット毎に出力する第１の演算手段と、第１の演算手段でのビット毎の論理演算に必要な、上位ビットへの伝搬信号をビット毎に出力する第２の演算手段と、信号Ｘ，Ｙに基づいて第１、第２の演算手段を制御する制御信号をビット毎に出力する第３の演算手段とを設け、第２の演算手段のビット毎の構成を１つの光パスゲートとし、各光パスゲートを直列に接続し、第３の演算手段で演算されたビット毎の制御信号を対応するビットの光パスゲートに入力することにより、回路の演算時間を律速する演算経路（クリティカルパス）を、光素子に適した構成に再構築し、クリティカルパスの長さを短尺化することができ、クリティカルパスを伝搬する光の伝搬速度で論理演算を実行することが可能となる。
【００２２】
また、本発明では、複数ビットの信号Ｘと複数ビットの信号Ｙとの加算の結果をビット毎に出力する第１の演算手段と、第１の演算手段でのビット毎の加算に必要な、上位ビットへの伝搬信号である桁上げ信号をビット毎に出力する第２の演算手段と、第１、第２の演算手段を制御する制御信号として信号Ｘ，Ｙの排他的論理和の結果をビット毎に出力するＸＯＲゲートと、信号Ｘ，Ｙのビット毎の論理積の結果を第２の演算手段に入力するＡＮＤゲートとを設け、第１、第２の演算手段のビット毎の構成をそれぞれ１つの光パスゲートとし、第２の演算手段を構成する各光パスゲートを直列に接続し、ＸＯＲゲートで演算されたビット毎の制御信号を対応するビットの光パスゲートに入力することにより、加算器の演算時間を律速する演算経路（クリティカルパス）を、光素子に適した構成に再構築し、クリティカルパスの長さを短尺化することができ、クリティカルパスを伝搬する光の伝搬速度で信号Ｘ，Ｙの加算を実行することが可能となる。
【図面の簡単な説明】
【００２３】
【図１】論理ブロックの接続方法を説明する図である。
【図２】従来の加算器の構成を示すブロック図である。
【図３】従来の加算器の詳細な構成を示すブロック図である。
【図４】従来の加算器のクリティカルパスを説明する図である。
【図５】本発明におけるクリティカルパスの短縮化を説明する図である。
【図６】本発明の第１の実施の形態に係る加算器の構成を示すブロック図である。
【図７】本発明の第１の実施の形態に係る加算器のＡＮＤゲートの構成を示す図である。
【図８】本発明の第１の実施の形態に係る加算器のＸＯＲゲートの構成を示す図である。
【図９】本発明の第２の実施の形態に係る加算器の構成を示すブロック図である。
【図１０】本発明の第２の実施の形態に係る加算器の詳細な構成を示すブロック図である。
【図１１】本発明の第２の実施の形態に係る加算器のＳＵＭゲートの構成を示す図である。
【図１２】本発明の第３の実施の形態に係る加算器の構成を示すブロック図である。
【図１３】電子デバイスおよび光学デバイスの１ビット当たりのスイッチングエネルギーを示す図である。
【図１４】ルックアップテーブルの真理値表を示す図である。
【図１５】図１４のルックアップテーブルに対応する論理ブロックの構成を示す図および光パスゲートの等価回路図である。
【図１６】出力経路の等価回路図である。
【発明を実施するための形態】
【００２４】
［第１の実施の形態］
以下、本発明の実施の形態について図面を参照して説明する。本発明では、図１６で説明した電気回路における３段目のプロセスの問題点を光化で解決する。つまり、光信号の伝搬が、経路のキャパシタ（Ｃ）にも抵抗（Ｒ）にも無依存である特徴を利用する。このような光化により、出力経路を光信号が伝搬する時間で、演算を完了させることが可能となる。
【００２５】
また、下記に示す手法により、回路の演算時間を律速する演算経路（クリティカルパス）を、光素子に適した構成に再構築し、ナノフォトニクスによる光素子の小型化によりパスの長さを短尺化することで、演算速度を飛躍的に改善する。
【００２６】
本発明では、便宜上、論理ブロックの複数個の組み合わせ方を、図１（Ａ）、図１（Ｂ）に示す２種類に分類する。ここで、シリアル接続は、図１（Ａ）に示すように、前段と後段の論理ブロック１０のトランジスタ１２のソースとドレインが直列に連なる接続、カスケード接続は、図１（Ｂ）に示すように、前段の論理ブロック１０の最終段のトランジスタ１２を通過した信号が次段の論理ブロック１０の初段のトランジスタ１２のゲートに入力される接続、と定義することとする。
【００２７】
例えば加算器（Ｘ＋Ｙ）の場合、３入力（Ｘi，Ｙi，Ｃi）の論理ブロックの組み合わせで構成することができる。ここで、Ｘi，Ｙiは加算されるｉ桁目の値、Ｃiはｉ−１桁からの桁上げの値である。３入力の論理ブロックをＬＵＴで構成する場合、図１５（Ａ）の答えに図１４におけるＣi+1の出力配列を用いると桁上げ演算を実現することができ、図１５（Ａ）の答えに図１４におけるＳiの出力配列を用いると各桁の和算を実現することができる。
【００２８】
従来の加算器の回路構成は図２となる。ここでは簡単のため、論理ブロック１０の組み合わせを、図１６の等価回路の表記を用いて表している。上段の論理ブロック１０−１〜１０−４は桁上げの値Ｃi+1，Ｃi+2，Ｃi+3，Ｃi+4を演算する論理ブロック、下段の論理ブロック１０−５〜１０−８は各桁の和算を行なう論理ブロックである。
【００２９】
複数ビットからなるＸと複数ビットからなるＹを加算する場合には、論理ブロック１０−５〜１０−８で各桁ごとの加算を行うとともに、論理ブロック１０−１〜１０−４で上位の桁への桁上げの値を演算する。図３は図２の加算器の詳細な構成を示すブロック図である。
【００３０】
図２、図３に示したような回路構成において演算時間を決定するものは、もっとも長い経路（クリティカルパス）である。本発明では、シリアル接続を積極的に利用し、この接続を演算のクリティカルパスに利用することを提案する。その手法について具体例を挙げて説明する。
【００３１】
まず、図２、図３の回路のクリティカルパスを抽出する。図２、図３に示した加算器のクリティカルパスを抽出した構成を図４に示す。図２〜図４の１５で示されている経路がクリティカルパスである。桁上げの信号が通る経路が最も長くなっており、かつ、前段の論理ブロック１０の桁上げ演算が完了しないと、次段の論理ブロック１０の演算ができない構成となっている。電気回路の場合、３２ビットの加算にかかる時間は約１ｎｓと言われている。
【００３２】
次に、クリティカルパスを最短化する。図４における１桁の演算は、クリティカルパス上にシリアルに接続された３つのトランジスタ１２（光パスゲート）で実行されているが、これらの演算の全ては必ずしもクリティカルパス上に存在する光パスゲートで実行されなくてもよい。
【００３３】
例えば図５に示すように、クリティカルパス外のＸＯＲ（排他的論理和）ゲート２１−１〜２１−３で演算した結果をそれぞれ光パスゲート２０−１〜２０−３へのゲート入力信号として用いることにより、クリティカルパス上の光パスゲート数を最小（ここでは１つ）に削減することが可能となる。
【００３４】
さらに、次段ブロックへの接続をカスケードからシリアルに変更する。演算の条件により、カスケードに入力されている信号をシリアルに変更することができる。図５の例ではｉ桁からの桁上げ信号Ｃi+1をｉ＋１桁の光パスゲート２０−２に入力し、ｉ＋１桁からの桁上げ信号Ｃi+2をｉ＋２桁の光パスゲート２０−３に入力するというようにシリアル接続している。
【００３５】
これにより、クリティカルパスの経路の構築が各桁で同時に行えるようになり、経路の構築時間がクリティカルパス上の光パスゲート数（桁数）に無依存となる。さらに、構築された経路に光信号を通すだけで桁上げ演算が完了するため、演算時間が光の伝搬時間と等しくなる。
【００３６】
次に、本実施の形態の加算器の具体的な回路構成を図６に示す。ここでは、それぞれ３ビットのＸ，Ｙを加算する構成を例に挙げて説明する。本実施の形態の加算器は、１×１光パスゲート３０−１〜３０−６と、２×１光パスゲート３１−１〜３１−９と、ＡＮＤ（論理積）ゲート３２−１〜３２−３と、ＮＡＮＤ（否定論理積）ゲート３３−１〜３３−３と、ＸＯＲ（排他的論理和）ゲート３４−１〜３４−３とから構成される。なお、本実施の形態は、信号および回路を全て光化した構成の例である。
【００３７】
ＡＮＤゲート３２−１は、１桁目のＸ，Ｙの値Ｘ1，Ｙ1の論理積を演算し、ＡＮＤゲート３２−２は、２桁目のＸ，Ｙの値Ｘ2，Ｙ2の論理積を演算し、ＡＮＤゲート３２−３は、３桁目のＸ，Ｙの値Ｘ3，Ｙ3の論理積を演算する。
【００３８】
ＡＮＤゲート３２−１の出力信号は１×１光パスゲート３０−１のゲート入力信号となり、ＡＮＤゲート３２−２の出力信号は１×１光パスゲート３０−２のゲート入力信号となり、ＡＮＤゲート３２−３の出力信号は１×１光パスゲート３０−３のゲート入力信号となる。
【００３９】
ＮＡＮＤゲート３３−１は、１桁目のＸ，Ｙの値Ｘ1，Ｙ1の否定論理積を演算し、ＮＡＮＤゲート３３−２は、２桁目のＸ，Ｙの値Ｘ2，Ｙ2の否定論理積を演算し、ＮＡＮＤゲート３３−３は、３桁目のＸ，Ｙの値Ｘ3，Ｙ3の否定論理積を演算する。
【００４０】
ＮＡＮＤゲート３３−１の出力信号は１×１光パスゲート３０−４のゲート入力信号となり、ＮＡＮＤゲート３３−２の出力信号は１×１光パスゲート３０−５のゲート入力信号となり、ＮＡＮＤゲート３３−３の出力信号は１×１光パスゲート３０−６のゲート入力信号となる。
【００４１】
ＸＯＲゲート３４−１は、１桁目のＸ，Ｙの値Ｘ1，Ｙ1の排他的論理和を演算し、ＸＯＲゲート３４−２は、２桁目のＸ，Ｙの値Ｘ2，Ｙ2の排他的論理和を演算し、ＸＯＲゲート３４−３は、３桁目のＸ，Ｙの値Ｘ3，Ｙ3の排他的論理和を演算する。
【００４２】
ＸＯＲゲート３４−１の出力信号（制御信号）は２×１光パスゲート３１−１，３１−４，３１−７のゲート入力信号となり、ＸＯＲゲート３４−２の出力信号（制御信号）は２×１光パスゲート３１−２，３１−５，３１−８のゲート入力信号となり、ＸＯＲゲート３４−３の出力信号（制御信号）は２×１光パスゲート３１−３，３１−６，３１−９のゲート入力信号となる。
【００４３】
図７はＡＮＤゲート３２−１の構成を示す図である。ＡＮＤゲート３２−１は、光パスゲート３２０〜３２２によって構成される。各光パスゲート３２０〜３２２は、ゲート入力が“１”のときに一方の光経路（図７の例では上側の光経路）を選択し、ゲート入力が“０”のときに他方の光経路（下側の光経路）を選択する。
【００４４】
１段目の光パスゲート３２０，３２１はゲート入力Ｘiに応じて動作し、２段目の光パスゲート３２２はゲート入力Ｙiに応じて動作する。図１５（Ａ）で説明した論理ブロックの場合と同様に、Ｘ1，Ｙ1の２つの入力に対し４個の答えを事前に準備する必要がある。したがって、“１”の答えのところに光源を配置して光を入力すればよい。ＡＮＤゲート３２−２，３２−３の構成はＡＮＤゲート３２−１と同じである。
【００４５】
図８はＸＯＲゲート３４−１の構成を示す図である。ＸＯＲゲート３４−１は、光パスゲート３４０〜３４２によって構成される。１段目の光パスゲート３４０，３４１はゲート入力Ｘiに応じて動作し、２段目の光パスゲート３４２はゲート入力Ｙiに応じて動作する。
【００４６】
ＡＮＤゲート３２−１の場合と同様に、Ｘ1，Ｙ1の２つの入力に対し４個の答えを事前に準備する必要があり、“１”の答えのところには光源を配置して光を入力すればよい。ＸＯＲゲート３４−２，３４−３の構成はＸＯＲゲート３４−１と同じである。
ＮＡＮＤゲート３３−１〜３３−３についても光パスゲートの組み合わせで容易に実現することができる。
【００４７】
１×１光パスゲート３０−１〜３０−３は、ＡＮＤゲート３２−１〜３２−３からのゲート入力が“１”のときにオン状態となって入力経路からの光信号を通過させ、ゲート入力が“０”のときにオフ状態となって光信号を遮断する。同様に、１×１光パスゲート３０−４〜３０−６は、ＮＡＮＤゲート３３−１〜３３−３からのゲート入力が“１”のときにオン状態となり、ゲート入力が“０”のときにオフ状態となる。
【００４８】
１×１光パスゲート３０−１〜３０−６の出力信号は２×１光パスゲート３１−１〜３１−３，３１−４〜３１−６に入力される。なお、各１×１光パスゲート３０−１〜３０−６の入力経路には光源を配置して光を入力する必要がある。
【００４９】
２×１光パスゲート３１−１〜３１−３は、ＸＯＲゲート３４−１〜３４−３からのゲート入力が“１”のときに一方の光経路（桁上げ信号Ｃ1〜Ｃ3）を選択し、ゲート入力が“０”のときに他方の光経路（１×１光パスゲート３０−１〜３０−３の出力）を選択する。この２×１光パスゲート３１−１〜３１−３の出力信号は上位の桁への桁上げ信号Ｃ2〜Ｃ4となる。例えば桁上げ信号Ｃ2は２×１光パスゲート３１−２，３１−８に入力され、桁上げ信号Ｃ3は２×１光パスゲート３１−３，３１−９に入力される。
【００５０】
２×１光パスゲート３１−４〜３１−６は、ＸＯＲゲート３４−１〜３４−３からのゲート入力が“０”のときに一方の光経路（１×１光パスゲート３０−４〜３０−６の出力）を選択し、ゲート入力が“１”のときに他方の光経路（桁上げ信号バーＣ1〜バーＣ3）を選択する。
【００５１】
この２×１光パスゲート３１−４〜３１−６の出力信号は桁上げ信号Ｃ2〜Ｃ4に対して相補な桁上げ信号バーＣ2〜バーＣ4となる。桁上げ信号バーＣ2は２×１光パスゲート３１−５，３１−８に入力され、桁上げ信号バーＣ3は２×１光パスゲート３１−６，３１−９に入力される。
【００５２】
２×１光パスゲート３１−７〜３１−９は、ＸＯＲゲート３４−１〜３４−３からのゲート入力が“１”のときに一方の光経路（桁上げ信号バーＣ1〜バーＣ3）を選択し、ゲート入力が“０”のときに他方の光経路（桁上げ信号Ｃ1〜Ｃ3）を選択する。この２×１光パスゲート３１−７〜３１−９の出力が、各桁の和算の結果を示す出力信号Ｓ1〜Ｓ3となる。
【００５３】
なお、１桁目の演算で使用する桁上げ信号Ｃ1は“０”であるから、これと相補な桁上げ信号バーＣ1として“１”を入力する必要があり、２×１光パスゲート３１−４，３１−７のバーＣ1の入力には光源を配置して光を入力する必要がある。
【００５４】
図６中の１５，１６で示されている経路が加算器のクリティカルパスである。図６に示した構成は図５の構成と等価であり、クリティカルパス１５上の光パスゲートに、クリティカルパス外で実行されたＸとＹのＸＯＲの演算結果を入力している。また、下段のクリティカルパス１６は、上段クリティカルパス１５と相補な桁上げ信号が伝搬する経路となっている。
【００５５】
本実施の形態では、クリティカルパス上にシリアルに接続される光パスゲートに光を伝搬させるだけで、桁上げ計算が完了する。各桁の和算は、クリティカルパスからの分岐信号を使って演算され、その演算は他の桁に影響を及ぼさない。つまり、クリティカルパスを伝搬する光の伝搬速度で和算を実行することが可能となる。
【００５６】
［第２の実施の形態］
次に、本発明の第２の実施の形態について説明する。図９は本実施の形態の加算器の構成を示すブロック図であり、図６と同一の構成には同一の符号を付してある。本実施の形態の加算器は、１×１光パスゲート３０−１〜３０−３と、２×１光パスゲート３１−１〜３１−３，３１−７〜３１−９と、ＡＮＤゲート３２−１〜３２−３と、ＸＯＲゲート３４−１〜３４−３と、光・光ゲート３５−１，３５−２とから構成される。
【００５７】
第１の実施の形態では、図６に示した下段のクリティカルパス１６は、桁上げ信号Ｃ2，Ｃ3の反転信号バーＣ2，バーＣ3を作るために使われている。そのため、反転機能を有する回路を用いれば、図６の下段の回路、すなわち１×１光パスゲート３０−４〜３０−６と２×１光パスゲート３１−４〜３１−６とＮＡＮＤゲート３３−１〜３３−３とを省くことが可能である。
【００５８】
本実施の形態の例では、光・光ゲート３５−１は、２×１光パスゲート３１−１から出力された桁上げ信号Ｃ2から反転信号バーＣ2を生成し、桁上げ信号Ｃ2と反転信号バーＣ2とを２×１光パスゲート３１−８に入力する。
【００５９】
同様に、光・光ゲート３５−２は、２×１光パスゲート３１−２から出力された桁上げ信号Ｃ3から反転信号バーＣ3を生成し、桁上げ信号Ｃ3と反転信号バーＣ3とを２×１光パスゲート３１−９に入力する。
その他の構成は第１の実施の形態で説明したとおりである。
【００６０】
図１０は図９に示した本実施の形態の加算器の詳細な構成を示すブロック図である。なお、図１０の例では、それぞれ４ビットのＸ，Ｙを加算する構成を示している。
ＳＵＭゲート３６−１〜３６−４は、図６の２×１光パスゲート３１−７〜３１−９と光・光ゲート３５−１，３５−２とを合わせた構成に相当する。
【００６１】
図１１はＳＵＭゲート３６−１の構成を示す図である。ＳＵＭゲート３６−１は、ＮＯＴゲート３６０と、光パスゲート３６１とから構成される。ＮＯＴゲート３６０は、桁上げ信号Ｃ1から反転信号バーＣ1を生成する。光パスゲート３６１は、２×１光パスゲート３１−７と同じものである。ＳＵＭゲート３６−２〜３６−４の構成はＳＵＭゲート３６−１と同じである。
【００６２】
こうして、本実施の形態では、第１の実施の形態と比較して構成を簡略化することができる。
なお、図９、図１０の例では、図６に示した下段の回路を省いているが、下段の回路で演算した桁上げ信号バーＣ2，バーＣ3の反転信号Ｃ2，Ｃ3を光・光ゲートで生成することにより、図６の上段の回路、すなわち１×１光パスゲート３０−１〜３０−３と２×１光パスゲート３１−１〜３１−３とＡＮＤゲート３２−１〜３２−３とを省くようにしてもよい。
【００６３】
［第３の実施の形態］
次に、本発明の第３の実施の形態について説明する。図１２は本実施の形態の加算器の構成を示すブロック図であり、図６と同一の構成には同一の符号を付してある。本実施の形態の加算器は、１×１光パスゲート３０−１〜３０−３と、２×１光パスゲート３１−１〜３１−３と、ＡＮＤゲート３２−１〜３２−３と、ＸＯＲゲート３４−１〜３４−３と、電気スイッチ３７−１〜３７−３と、ＯＥ変換器３８−１，３８−２とから構成される。
【００６４】
本発明では、和算については桁ごとに完了しており、他の桁に影響を与えないため、図９に示した中段の回路、すなわち２×１光パスゲート３１−７〜３１−９と光・光ゲート３５−１，３５−２との部分を電気信号で処理しても、光を用いた場合とほぼ同程度の演算速度を得ることができる。
【００６５】
電気スイッチ３７−１〜３７−３は、ＸＯＲゲート３４−１〜３４−３からのゲート入力が“１”のときに一方の電気経路（桁上げ信号バーＣ1〜バーＣ3）を選択し、ゲート入力が“０”のときに他方の電気経路（桁上げ信号Ｃ1〜Ｃ3）を選択する。この電気スイッチ３７−１〜３７−３の出力が各桁の和算の結果を示す出力信号Ｓ1〜Ｓ3となる。桁上げ信号Ｃ1は“０”であるから、その反転信号バーＣ1として“１”に相当する電気信号を電気スイッチ３７−１に入力する必要がある。
【００６６】
ＯＥ変換器３８−１は、２×１光パスゲート３１−１から出力された桁上げ信号Ｃ2（光信号）を電気信号に変換すると同時に、この変換した桁上げ信号Ｃ2の反転信号バーＣ2を生成し、桁上げ信号Ｃ2と反転信号バーＣ2とを電気スイッチ３７−２に入力する。
【００６７】
同様に、ＯＥ変換器３８−２は、２×１光パスゲート３１−２から出力された桁上げ信号Ｃ3（光信号）を電気信号に変換すると同時に、この変換した桁上げ信号Ｃ3の反転信号バーＣ3を生成し、桁上げ信号Ｃ3と反転信号バーＣ3とを電気スイッチ３７−３に入力する。
その他の構成は第１の実施の形態で説明したとおりである。
【００６８】
更に、図９に示した上段のゲート、すなわち、ＡＮＤゲート３２−１〜３２−３と、ＸＯＲゲート３４−１〜３４−３を電気スイッチとし、かつ、１×１光パスゲート３０−１〜３０−３とそれに付随する光源の組み合わせを、ＡＮＤゲート３２−１〜３２−３からのゲート入力が”１”のときにＯＮとなる光源に置き換えてもよい。これらの部分はクリティカルパス外に存在するため、これらの部分を電気信号で処理しても光を用いた場合とほぼ同程度の演算時間を得ることができる。本実施の形態のように、上段のクリティカルパス１５を構成する経路のみを光に置き換え、その他の回路を電気で構成しても、光の伝搬速度で演算を実行することが可能となる。
【００６９】
第１〜第３の実施の形態で説明した回路は、トランジスタレベルまで光化を進めた構成となっており、電子回路と光回路の融合を容易にし、電子回路の得意分野（膨大な素子の超高集積・並列処理による、超高スループット演算）と、光回路の得意分野（情報を光の速度で伝搬させながら、光の伝搬速度で演算を完了させる、超低レイテンシ演算）の両立が可能となり、動作周波数が頭打ち状態になりつつある電子回路の問題を解決することを可能とする。
【００７０】
なお、第１〜第３の実施の形態では、加算器としての構成のみを説明したが、回路がクリティカルパスを擁する場合、（桁ごとに完了する演算と、他の桁の影響を受ける演算がある場合には、他の桁の影響を受ける演算がクリティカルパスになる）加算器以外の回路でも本発明を適用できるのは言うまでもない。例えば次のように回路構成を変更すると減算器となる。具体的には、入力Ｙの全ての信号をＹの論理否定として入力し、かつ、最下位桁のＣ1に論理値１を入力する、つまり、信号Ｃ1として“１”を入力し、信号バーＣ1には入力しない。このように加算器の構成は様々な演算回路に応用することが可能で、その適用例としては、乗算器、除算器、あるいは単数もしくは複数の条件から一致するビット列を検出する一致検出回路等がある。
【００７１】
また、光パスゲートとしてナノフォトニクスの光ゲート（非特許文献５、６）を用いることで、短尺化＝高速化を図ることができる。
【００７２】
なお、クリティカルパス上のパスゲート（３１−１〜３１−６）として電気的な経路切替えが可能な構成で、光信号でゲートを操作しなくても良い構成を用いてもよい。これにより、従来の光素子を利用することが可能である。
【産業上の利用可能性】
【００７３】
本発明は、光回路、または光回路と電気回路の混合回路で行う論理演算に適用することができる。
【符号の説明】
【００７４】
３０−１〜３０−６…１×１光パスゲート、３１−１〜３１−９…２×１光パスゲート、３２−１〜３２−３…ＡＮＤゲート、３３−１〜３３−３…ＮＡＮＤゲート、３４−１〜３４−３…ＸＯＲゲート、３５−１，３５−２…光・光ゲート、３６−２〜３６−４…ＳＵＭゲート、３７−１〜３７−３…電気スイッチ、３８−１，３８−２…ＯＥ変換器、３２０〜３２２，３４０〜３４２，３６１…光パスゲート、３６０…ＮＯＴゲート。
【図１】
0006536959.tif 000002
【図２】
0006536959.tif 000003
【図３】
0006536959.tif 000004
【図４】
0006536959.tif 000005
【図５】
0006536959.tif 000006
【図６】
0006536959.tif 000007
【図７】
0006536959.tif 000008
【図８】
0006536959.tif 000009
【図９】
0006536959.tif 000010
【図１０】
0006536959.tif 000011
【図１１】
0006536959.tif 000012
【図１２】
0006536959.tif 000013
【図１３】
0006536959.tif 000014
【図１４】
0006536959.tif 000015
【図１５】
0006536959.tif 000016
【図１６】
0006536959.tif 000017