【国等の委託研究の成果に係る記載事項】(出願人による申告)平成28年度、国立研究開発法人科学技術振興機構、新たな光機能や光物性の発現・利活用を基軸とする次世代フォトニクスの基盤技術、産業技術力強化法第19条の適用を受ける特許出願
【文献】
新家昭彦 他,光パスゲート論理に基づく光演算回路(II),第77回応用物理学会秋季学術講演会講演予稿集,日本,応用物理学会,2016年 9月13日,14p−P14−11
【文献】
新家昭彦 他,光パスゲート論理に基づく光演算回路,第63回応用物理学会春季学術講演会講演予稿集,応用物理学会,2016年,22a−S621−1
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0020】
以下、本発明の実施の形態について説明する。
【0021】
[実施の形態1]
はじめに、本発明の実施の形態1における光演算器について、
図1を参照して説明する。この光演算器は、カスケード接続された複数の演算部101を備える。演算部101は、入力信号に対して1つの光信号を出力するS個(Sは
2以上の自然数)の演算素子102がシリアルに接続されて構成されている。演算部101は、S個の入力信号により1つの光信号を演算出力する。また、前段のS個の演算部101から出力された信号が、後段の1つの演算部101に入力される。なお、
図1では、S=2の場合を例示している。また、
図1では、カスケード接続の段数Mが3の場合を例示している。
【0022】
ここで、実施の形態1では、入力信号は、電気信号であり、演算部101は、シリアル接続されている最終段の演算素子102から出力された光信号を光電変換する変換素子103を備える。例えば、
図2に示すように、演算部101は、光源111と、1×1光パスゲート102aと、変換素子103とから構成すればよい。2つの1×1光パスゲート102aは、シリアル接続されている。この構成において、前段の1×1光パスゲート102aへの電気制御入力をx
iとし、後段の1×1光パスゲート102aへの電気制御入力をy
iとする。電気制御入力が1の時のみ信号を透過させるように設定すれば、前段の1×1光パスゲート102aおよび後段の1×1光パスゲート102aの両者が透過状態になる電気信号の組み合わせ、つまり、x
iy
j=1の場合のみ光が出力されるAND演算となる。
【0023】
本発明では、上述したように、光シリアル接続回路のカスケード接続により、光演算を、より高速化する。実施の形態1では、1×1光パスゲート102aによるシリアル接続回路からの光出力を、1×1光パスゲート102aの電気制御側に入力するため、変換素子103を用いている。この構成における演算遅延時間は、下記の式となる。
【0025】
ここで計算を簡単にするため、全てのシリアル段数が均一であり、全ての1×1光パスゲート102a(演算素子102)において、演算素子102中を伝搬する光の伝播時間はτ
gateで均一とし、全ての変換素子103におけるOE変換時間もτ
OEOで均一と仮定したときの、演算遅延特性をとり扱うこととする。この条件における演算遅延は、下記の(3)式で表される。
【0027】
電気回路においては、カスケード接続部に変換素子103を必要としないため、τ
OEO=0であり、シリアル段数が大きいと応答が遅くなるため、Sの値は2程度までである。一方,実施の形態1における光演算器は、シリアル接続されている演算素子102の出力を変換素子103に通す必要があり、また、2よりも大きなSを取り扱うことができる。これらの点において、電気回路と実施の形態1における光演算器の構成は大きく異なる。
【0029】
図3に示すように、M段のカスケードとM+1段のカスケードの遅延量がある入力数Nで逆転し、それ以上の入力数において、M段のカスケードよりも、M+1段のカスケードの遅延が小さくなる。
【0030】
つまり、F(N
0,M)=F(N
0,M+1)を満足するN=N
0を損益分岐点とすると、これを超える入力数においてM+1段、越えない入力数においてM段のカスケード段数を採用することにより、遅延を小さく抑えることが可能となる。またN=N
0においては、M+1段のカスケード段数を採用することでより小さなSを採用し、光シリアル回路のロスの問題を解消することができる。
【0031】
次に、Nをある特定の値に固定し、S,M=log
S(N)をパラメータとしたときの遅延特性に着目する。実施の形態1における光演算器では、M,Sを自然数として取り扱う必要があるが、ここでは実数範囲に拡張し、演算遅延を(4)式で表記することとする。
【0033】
また、電気回路、光回路の遅延は、それぞれ(6),(7)式で表される。ここで、電気回路においては、カスケード接続部にOE変換素子が不要のためτ
OEO=0とし、実施の形態における光演算器と区別するためτ
gate=τ
CMOSとした。
【数7】
【0034】
さて、(8)式右辺の最大値は下記の式で表され、それが1より小さい条件において、実施の形態1における光演算器の遅延が電気回路よりも小さくなる。
【0036】
つまり、CMOSのスイッチング時間のe
1-p倍よりも小さな伝播遅延を有する光パスゲート(演算素子102)を用い、S
0=e
p段のシリアル接続を構成し、シリアル接続回路から出力される光信号を、応答速度がCMOSのスイッチング時間のe(p−1)倍よりも小さな光電変換素子(変換素子103)を通し、M
0=log
S0(N)段のカスケード接続することにより、電気回路よりも遅延の小さな光回路を構成することができる。
【0037】
言い換えると、カスケード接続の段数Mおよび演算素子102の個数Sは、入力信号の数Nと、演算素子102における演算時間τ
gateと、変換素子103における処理時間τ
OEOとから、(4)式により決定することができる。
【0038】
ここで、変換素子103の応答速度は、電気回路程度のもので充分であるが、演算素子102の伝播遅延は、CMOSの応答速度より小さくなければならない。これについては、光の伝搬速度は半導体中で100μm/ps程度であることを勘案し、素子長が1000μm以下の光パスゲート(演算素子102)をナノフォトニクスで実現することにより、この条件を達成する。
【0039】
さて、上述のS
0,M
0は実数値であるが、実際の回路においてはこれらを自然数としてとり扱う必要がある。このためこれらの値として下記の自然数S、Mを採用するものとする。
【0040】
まずカスケード段数Mは、実数値M
0=log
S0(N)の小数点以下を切り上げた値か切り捨てた値を採用する候補とする。実数値M
0を挟む2つの自然数の間で演算遅延に最低値が現れることは(3)式より明らかである。シリアル接続段数Sは採用するMの候補を(3)式に代入することで得る。2つのSとMの候補を(3)式に代入し、F(N,M)がより小さいSとMを採用することにより、最小の演算遅延を得ることができる。
【0042】
またF(N,M)の値が同じになる場合は、先に述べた理由により、M
0の小数点以下を切り上げた値をMとして採用すればよい。このMの設定方法は損益分岐点N
0を考慮したときの方法と同じである。
【0043】
さて、損益分岐点N
0の存在や遅延がS
0で極小値をとる特性は、演算遅延がSに比例して増加するシリアル接続部と、Sの増加とともに減少するカスケード接続部が混在することに起因するため、S,τ
gate,τ
OEOが回路内で均一ではないケースにおいても同様の傾向が現れる。
【0044】
このようなケースにおいては、(2)式が最小となる自然数SをS(N,M)とし、自然数Mの値を1から徐々に増やしたときに、F(N,M)<F(N,M+1)となるときのMとS(N,M)を採用する。ただし、Sの値が許容される最大値S
max(自然数)よりも大きくなる場合は、S≦S
maxとなるまでMの値を増やすものとする。これにより、最小の遅延を得ることができる。
【0045】
以上のように、実施の形態1によれば、CMOSのスイッチング時間よりも小さな伝播遅延を有する演算素子102(例えば光パスゲート)により、電気回路では不可能な多段のシリアル接続回路により演算部101を構成し、演算素子102のシリアル接続回路から出力される光信号を変換素子103で光電変換し、後段の演算素子102に接続(入力)することにより、電気回路よりも遅延の小さな光回路を構成することができる。
【0046】
図3には、上述の多入力AND演算における、CMOS回路と実施の形態1における光演算器との演算遅延の比較が示されている。光回路の遅延は、τ
gate=0.2ps,τ
OEO=25psとして(3)式を用いて計算され、M=1〜3の曲線で示される。また、この場合、S
0=44.7であり(4)式で表される特性曲線は、(3)式で表される曲線と、N=S
0Mにおいて接する直線となる。またCMOS回路の遅延は、τ
gate=10ps,τ
OEO=0ps,S=2として(4)式を用いて計算されている。
【0047】
この結果は、高々1〜2回段のカスケード接続を採用するだけで、CMOS回路よりも大幅に低遅延な演算を実現できることを示している。例えばN=1000の場合、(3)式と(5)式よりM
0=1.82となり(3)式よりF(1000,1)
S=1000>F(1000,2)
S=32となることから、M=2とS=32を採用する。この場合、
図4に示すように、32段×32段の1×1光パスゲート102aによる正方形状の回路になっており、光が入力されてからシリアル接続された1×1光パスゲート102a(演算素子102)を通過する時間は全て等しくなる。ただし、32
2=1024>1000となるため、無駄なゲートが存在する。
【0049】
[実施の形態2]
次に、本発明の実施の形態2における光演算器について、
図5を参照して説明する。なお、実施の形態2においても、
図1を用いて説明したように、カスケード接続された複数の演算部101を備える。演算部101は、
図5に示すように、入力される光信号に対して1つの光信号を出力するS個(Sは自然数)の演算素子102bがシリアルに接続されて構成されている。
【0050】
実施の形態2において、例えば、シリアル接続される最初の演算素子102bは、変換素子103bにつながる導波路に光信号λ
1を光学的に結合する。シリアル接続される次の演算素子102bは、最初の演算素子102bから出力された光に、光号λ
2を合波する。演算素子102bは、例えば、リング共振器から構成された合波器である。
【0051】
また、実施の形態2において、演算部101は、S個の演算素子102bから光信号が出力された場合に値1の光信号を出力し、S個の演算素子102bから光信号が出力された場合以外に値0の光信号を出力する変換素子103bを備える。この構成では、多入力OR演算回路となる。
【0052】
実施の形態2において、各演算素子102bにおける合波のパワー結合効率をαとし、入力数N,M=1つまりS=Nとした場合、(ただ一つの入力のみが合波するケース)/(全ての入力が合波しないケース)の強度比は{α+(1−α)×(N−1)}/{(1−α)×N}となる。この値は、ORの演算出力の”0”と”1”の差が一番小さくなるときのコントラスト比である。
【0053】
α=0.9の場合のコントラスト比は、N=100,10の場合においてそれぞれ、0.33dB,2.6dBとなり、Nが大きいほどコントラストは劣化する。
【0054】
ここで、S
max=10を、変換素子103bの光受信側でコントラストが検知できるシリアル接続段数の最大値とし、光演算器の回路特性を実施の形態1と同じとしたときの、N=100のOR演算を考える。
【0055】
この場合、(3)式と(5)式よりS
0=44.7,M
0=1.2となり、F(100,1)
S=100<F(100,2)
S=10よりM=1となる。ただしS=100となりS
max=10を越えてしまうため、M=2、S=10を採用することとなる。これにより、コントラスト低下の抑制を担保しながら、最低限の遅延を実現することができる。
【0056】
[実施の形態3]
次に、本発明の実施の形態3における光演算器について、
図6を参照して説明する。実施の形態3では、多段にカスケード接続されたk=1段目の複数の演算部101aを、1入力1出力のマッハツェンダー干渉計から構成された演算素子102cと変換素子103cから構成している。マッハツェンダー干渉計の2つのアームに設けられた各々電気制御部に、入力信号X、入力信号Yが入力される。なお、k=2段目以降の演算部101は、前述した実施の形態1と同様の演算素子102と変換素子103から構成している。実施の形態3では、合成関数XNOR−ANDの演算を行う。
【0057】
ここで、変換素子103cは、実施の形態1の変換素子103と同じである。変換素子103cから出力される電気信号は、シリアル接続されているN個の演算素子102cの、各々の入力信号x(x
1〜x
NのN桁のバイナリ信号)と入力信号y(y
1〜y
NのN桁のバイナリ信号)において、それぞれの桁でANDをとった結果となり、全ての桁で合致をしたときに1、そうではないときに0となる。つまり、1段目だけ(M=1)でも合成関数XNOR−ANDの演算を行うことができる。
【0058】
ただし、k=1段目だけ(M=1)では、各桁の合致の判定出力を、AND
M(A
1,・・・、A
N),A
j=XNOR(X
j,Y
j)、として表現したものとなっており、A
j=XNOR(X
j,Y
j)は、マッハツェンダー干渉計型の強度変調器である演算素子102cの2入力端子に電子信号(X
j,Y
j)を入力することで実行し、AND
M(A
1,・・・,A
N)は、上記演算を実行する演算素子102cをシリアルに接続することで実行する。AND
Mは、一般的に、実施の形態1における演算素子102aによるANDよりも構造が大きいため、AND演算における遅延が大きくなってしまう。
【0059】
この問題を解決するため、ここでは、AND演算の部分にカスケード接続を採用することを考える。つまり、(2)式において、k=1段目をτ
gateの大きなAND
Mで構成し、k≧2段目をτ
gateの小さな実施の形態1における演算部101によるANDで構成する。この場合、(3)式は(12)式に書き換えられる。ここでS
1、τ
gate1はk=1段目のシリアル接続段数と1つの演算素子102c伝播遅延、S
2、τ
gate2はk=2段目以降のシリアル接続段数と1つの演算素子102の伝播遅延、Lはk=2段目への総入力数、Mはk=2段目以降のカスケード段数である。ただし、(12)式ではMが自然数の場合に限り成り立ち、M=0の場合にはF(N,M)=βS1τ
gate2とする。
【0061】
例えば、N=10000,α=125,β=100の場合は、下記よりM=3,S
1=1,S
2=22、を採用する。
【0062】
M=0のとき,F(10000,0)=(10
6)τ
gate2,
M=1のとき,S
1=10
1,S
2=10
3,F(10000,1)=(2125)τ
gate2,
M=2のとき,S
1=10
0,S
2=10
2,F(10000,2)=(550)τ
gate2,
M=3のとき,S
1=10
0,S
2=22,F(10000,3)=(541)τ
gate2,
M=4のとき,S
1=10
0,S
2=10
1,F(10000,4)=(640)τ
gate2,
【0063】
例えば、N=100,α=125,β=100の場合は、下記よりM=1,S
1=1,S
2=100、を採用する。
【0064】
M=0のとき,F(10000,0)=(10
4)τ
gate2,
M=1のとき,S
1=10
0,S
2=10
2,F(10000,1)=(325)τ
gate2,
M=2のとき,S
1=10
0,S
2=10
1,F(10000,2)=(370)τ
gate2。
【0065】
[実施の形態4]
次に、本発明の実施の形態4における光演算器について、
図7を参照して説明する。実施の形態4では、多段にカスケード接続されたk=1段目の複数の演算部101aを、2入力2出力のマッハツェンダー干渉計を2段にシリアル接続した演算素子102dから構成している。この構成において、演算素子102dの前段のマッハツェンダー干渉計への電気制御入力をX
iとし、後段のマッハツェンダー干渉計への電気制御入力をY
iとする。なお、k=2段目以降の演算部101は、前述した実施の形態2と同様の演算素子102bと変換素子103bから構成している。実施の形態4では、合成関数XOR−ORの演算を行う。
【0066】
本構成のk=1段目において、実施の形態3における変換素子103cに対応する素子は不要であり、演算部101aからの光信号出力は、シリアル接続されているN個の演算素子102dの、各々の入力信号x(x
1〜x
NのN桁のバイナリ信号)と入力信号y(y
1〜y
NのN桁のバイナリ信号)において、それぞれの桁におけるXORの演算結果を、全ての桁でORをとった結果となり、全ての桁で合致をしたときに0、そうではないときに1となる。つまり、k=1段目だけ(M=1)でも合成関数XOR−ORの演算を行うことができる。
【0067】
ただしk=1段目だけ(M=1)の出力は、OR
M(A
1,・・・、A
N),A
j=XOR(X
j,Y
j)、として表現したものとなっており、2つのマッハツェンダー干渉計をシリアル接続した演算素子102dの2入力端子に電子信号(X
j,Y
j)を入力し、102dに接続する光源とはクロス側のポートからの信号を出力とすることでA
j=XOR(X
j,Y
j)を実行し、前段の102dからの出力信号を光源のつながるポートとは異なる入力ポートに接続することでOR
M(A
1,・・・,A
N)を実行する。このOR
Mは、マッハツェンダー干渉計をもちいることで実現されているため、一般的に、実施の形態2における演算素子102bによるORよりも構造が大きく、OR演算における遅延が大きくなってしまう。
【0068】
この問題を解決するため、ここではOR演算の部分にカスケード接続を採用することを考える。つまり、(2)式において、k=1段目をτ
gateの大きなOR
Mで構成し、k≧2段目をτ
gateの小さな実施の形態2における演算部101によるORで構成する。この場合、(3)式は(14)式に書き換えられる。ここでS
1、τ
gate1はk=1段目のシリアル接続段数と1つの演算素子102d伝播遅延、S
2、τ
gate2はk=2段目以降のシリアル接続段数と1つの演算素子102の伝播遅延、Lはk=2段目への総入力数、Mはk=2段目以降のカスケード段数である。ただし、(14)式ではMが自然数の場合に限り成り立ち、M=0の場合にはF(N,M)=βS
1τ
gate2とする。
【0070】
なお、他の構成は、前述した実施の形態3と同様であり、説明は省略する。
【0071】
実施の形態3のXNOR−ANDの出力の0と1を反転させた結果は、実施の形態4のXOR−ORの出力結果と同じである。また、実施の形態1における多入力ANDよりも、実施の形態2における多入力ORの方が高速な回路を実装できる場合がある。例えば、実施の形態2ではシリアルに接続した演算素子102bを変換素子103bに接続したが、パラレルに接続した演算素子102bを変換素子103bに接続して実施の形態2と同じ効果を得ることができる。
【0072】
この場合、複数の変換素子102bからの出力を一括して変換素子103bに接続するため演算部101の構成は大きくなるが、演算子102bの演算は並列に処理されるため、シリアルに接続したものよりも遅延が小さくなる可能性がある。つまり、実施の形態3のXNOR−ANDではなく、実施の形態4のXOR−ORを用いた演算が高速になる場合がある。なお、多ビットのパターンマッチングはXNOR−ANDを用いてもXOR−ORを用いても実装が可能あるためニーズに合った回路構成を選択することができる。
【0073】
さて、本実施の形態におけるk=1段目の演算部は、
図8の(a)を
図8の(c)の構成にシリアルに接続したものである。ここで
図8の(a)は2入力2出力の演算素子の構成を示し、電気制御信号X
i,Y
iに対し、X
iとY
iが合致するときと合致しないときに出力ポートが切り替わる演算素子であればよい。そして
図8の(c)の構成は、初段の演算素子の入力ポートの一方に光源を接続し、X
iとY
iが合致しない(XOR)ときの出力ポートを次段の演算素子の入力ポートに接続し、この接続に使用されたポートとは反対側の入力ポートに光源を接続すればよい[説明1]。これにより、k=1段目のみ(M=1)でXOR−ORの演算を実現することができる。またk=2段目以降を実施例4の構成とすることにより、より遅延の小さなXOR−OR演算が得られることは明白である。
【0074】
また、本実施例のk=1段目の演算部を、
図8(a)を
図8(d)の構成にシリアル接続した構成に変更すると、XNOR−ANDの演算が可能となる。ここで
図8(d)は、初段の演算素子の入力ポートの一方に光源を接続し、X
iとY
iが合致する(XNOR)ときの出力ポートを次段の演算素子の入力ポートに接続すればよい[説明2]。これにより、k=1段目のみ(M=1)でXNOR−ANDの演算を実現することができる。またk=2段目以降を実施例3の構成とすることにより、より遅延の小さなXNOR−AND演算が得られることは明白である。
【0075】
ここで、
図8(a)は、2つの2入力2出力のマッハ・ツェンダー干渉計の組み合わせにより構成されており、それぞれのマッハ・ツェンダー干渉計の片方のアームに電気制御信号X
i,Y
iを与える。電気制御信号を与えられた側のアームは、そこを伝播する光の位相をπシフトさせる設定となっており、2本のアームの一方を電気制御する本構成の場合、2入力2出力のマッハ・ツェンダー干渉計は、電気制御入力が有る/無いときに、光源を接続した入力ポートに対しバー側/クロス側の出力ポートから光信号を出力する。これにより、
図8(a)の演算素子は、光源とはクロス側の出力ポートからXOR(X
i,Y
i)出力し、その反対のバーポートからXNOR(X
i,Y
i)出力する。
【0076】
そのため、
図8(a)の演算素子の機能は、
図8(b)に示される1つの2入力2出力のマッハ・ツェンダー干渉計102eの両方のアームのそれぞれに電気制御信号X
i,Y
iを与えることでも実現可能である。つまり、一方のアームに電気制御信号が与えられたときに位相差がπ、両方のアームに電気信号が与えられたまたは両方のアームに与えられなかったときに位相差がゼロとなることを利用する。このとき出力ポートにおけるXNORとXORの位置関係は
図8の(a)と逆になるが、前述した[説明1],[説明2]に従い、XOR−OR演算のときはXORの出力ポートを次段に接続し、XNOR−AND演算のときはXNORの出力ポートを次段に接続すればよい。
図8の(b)に示す素子の長さ(素子長)は、
図8の(a)に示す素子長の半分であるため、
図8の(a)に示す構成を
図8の(b)に示す構成に代替することにより、より小さな演算遅延を得ることができる。
【0077】
また、
図8(a)で用いた2入力2出力のマッハ・ツェンダー干渉計は、2入力2出力の方向性結合器でも代替可能である。つまり、2入力2出力の方向性結合器の結合状態を電気制御信号で制御し、光信号が入力されたポートに対しクロス側の出力ポートから光信号が出力される完全結合状態と、光信号が入力されたポートに対しバー側の出力ポートから光信号が出力される状態を切り替える。方向性結合器は、マッハ・ツェンダー干渉計よりもサイズを小さくできるため、この代替により、より小さな演算遅延を得ることができる。
【0078】
更に、
図8(a)で用いた2入力2出力のマッハ・ツェンダー干渉計は、リング共振器などを用いた2入力2出力のXOR、XNOR演算素子(非特許文献3)でも代替可能である。つまり、2本の導波路の間をリング共振器を介して結合させた2入力2出力の演算素子において、共振器の共鳴状態を電気制御信号で制御し、光信号が入力されたポートに対しクロス側の出力ポートから光信号が出力される共鳴状態と、光信号が入力されたポートに対しバー側の出力ポートから光信号が出力される非共鳴状態を切り替える。リング共振器は、マッハ・ツェンダー干渉計よりもサイズを小さくできるため、この代替により、より小さな演算遅延を得ることができる。
【0079】
以上に説明したように、入力信号に対して1つの光信号を出力するS個(Sは自然数)の演算素子をシリアルに接続してS個の入力信号により1つの光信号を演算出力する複数の演算部をカスケード接続したので、より高速に光演算ができるようになる。
【0080】
なお、本発明は以上に説明した実施の形態に限定されるものではなく、本発明の技術的思想内で、当分野において通常の知識を有する者により、多くの変形および組み合わせが実施可能であることは明白である。