(57)【要約】【課題】  量子コンピュータと同様の演算機能を有しながらも、必要なハードウェア量を削減し、かつ大規模な演算を高速で実行することができるようにする。【解決手段】  互いに異なる論理値の状態に対応し、所定の確率を持つ上記論理値の状態を示す位置情報を用いて当該対応する論理値の状態に関する演算を行って演算結果を保持する複数の演算手段を備え、上記複数の演算手段がＮビット（Ｎは自然数）で表現可能なすべての論理値の状態に関する演算を並列して行うようにして、すべての状態の確率に係る情報を保持していなくとも、所定の確率を持つ状態を示す位置情報のみを保持するだけで量子コンピュータと同様の演算を実行することができ、必要なハードウェア量を大きく削減し、かつ大規模な演算を高速で実行することができるようにする。【選択図】  図１
2005056084.tif 000002
【特許請求の範囲】
【請求項１】
Ｎビット（Ｎは自然数）で表現可能なすべての論理値の状態に関する演算を並列して実行する半導体装置であって、
互いに異なる上記論理値の状態に対応し、所定の確率を持つ上記論理値の状態を示す位置情報を用いて当該対応する論理値の状態に関する演算を行い、演算結果を保持する複数の演算手段を備え、
上記複数の演算手段が並列して演算を行うことを特徴とする半導体演算装置。
【請求項２】
上記位置情報は、０とは異なる確率を持つ上記論理値の状態を示す情報であることを特徴とする請求項１記載の半導体演算装置。
【請求項３】
上記Ｎビットは、１ビット以上の入力ビット列と１ビット以上の出力ビット列からなり、
上記入力ビット列により表現可能な任意の論理値に対して、上記０とは異なる確率を持つ論理値の状態に対応した上記出力ビット列を上記位置情報とすることを特徴とする請求項２記載の半導体演算装置。
【請求項４】
上記演算手段は、上記対応する論理値の状態に係る上記位置情報だけを用いて、対応する論理値の状態に関する演算を行うことを特徴とする請求項１〜３の何れか１項に記載の半導体演算装置。
【請求項５】
上記演算手段は、上記位置情報を記憶する記憶手段と、
上記位置情報を用いて論理値の状態に関する論理演算を行う論理演算手段とを備えることを特徴とする請求項１〜４の何れか１項に記載の半導体演算装置。
【請求項６】
上記演算手段は、上記記憶手段より読み出された上記位置情報を記憶する一時記憶手段をさらに備え、
所定の上記論理演算を行うとき、上記論理演算手段は、上記一時記憶手段に保持された上記位置情報を参照して論理演算を行うことを特徴とする請求項５記載の半導体演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体演算装置に関し、詳しくは量子コンピュータと同様の演算機能を実現可能な半導体演算装置に関する。
【背景技術】
【０００２】
従来のコンピュータにおいては、ＣＰＵ等の半導体演算装置が１つのデータ値を用いて演算処理等を逐次実行する従来の演算方式により演算を行っていた。この従来の演算方式とは異なり、キュービット（量子ビット）という単位で構成された量子力学に基づく状態の重ね合わせを利用し、各状態に対して演算を並列実行する新しい演算方式で演算を行う量子コンピュータが提案されている。量子コンピュータは、理論上、１回の演算を行うだけで、すべての可能な状態（値として存在可能なデータ値）についての演算結果を同時に、かつ瞬時に得ることができる。
【０００３】
従来の量子コンピュータは、実際に量子力学に基づく現象が観測可能な物理系（例えば、核磁気共鳴等）で実現されてきており、非常に大規模な装置を要し実用的ではなかった。
また、量子コンピュータは、量子的な物理現象を利用しているので、古典的な物理現象（古典電磁気学）を利用した集積回路を用いてそのまま実現することが困難であった。
【０００４】
本発明者らは、量子力学に基づいて重ね合わされたそれぞれの状態（論理値）の状態確率について演算を同時に行うことにより、集積回路を用いて量子コンピュータの技術を実現する並列処理プロセッサを提案した（例えば、特許文献１参照）。
【０００５】
図７は、本発明者らが提案した並列処理プロセッサの要素的特徴を示す図である。
図７に示す並列処理プロセッサは、量子力学に基づいて重ね合わされたそれぞれの状態に対応する複数のプロセッサエレメント７１、７２、７３を互いに通信可能に接続する。具体的には、エクスチェンジユニットＥＵ１を介して、対応する状態が異なるプロセッサエレメント７１、７２を接続して、１キュービット相当の演算を行うプロセッサエレメント群ＰＥＡ１を構成する。さらに、エクスチェンジユニットＥＵ（ｉ＋１）を介して２つのＰＥＡｉを接続して、（ｉ＋１）キュービット相当の演算を行うプロセッサエレメント群ＰＥＡ（ｉ＋１）を構成する（なお、ｉは添え字であり、自然数。）。
【０００６】
上述のように複数のプロセッサエレメント７１、７２、７３を互いに通信可能に接続するとともに、対応する状態の状態確率について演算を同時に行い、演算結果を記憶するように複数のプロセッサエレメント７１、７２、７３を並列動作させることで量子コンピュータと同様の演算機能を実現する。
【０００７】
しかしながら、上記図７に示した並列処理プロセッサにおいて、プロセッサエレメント７１、７２、７３は、実数部及び虚数部にそれぞれ複数のビットを用いて、対応する状態の複素数で表わされた状態確率を記憶していた。そのため、上記図７に示した並列処理プロセッサは、演算処理に多大な時間を要する、回路面積が大きくなる等の不都合があった。
【０００８】
そこで、本発明者らは、量子計算を行うための量子アルゴリズムにおいて、所定の状態に確率を分配する段階及び状態間での確率の交換を行う段階では、各状態の状態確率が０かあるいは値ｐ（０＜ｐ≦１）の何れか一方であることを見出し、各状態の状態確率が値を有するか否かを１ビットの確率情報で表現することにより、構成を単純化しながらも量子コンピュータと同様の演算機能を実現する特願２００２−２８０７７５に記載の並列処理プロセッサを提案した。なお、説明の便宜上、この１ビットの確率情報を用いる並列処理プロセッサを論理量子プロセッサ（ＬＱＰ）と称す。
【０００９】
図８は、本発明者らが提案した論理量子プロセッサの要素的特徴を示す図である。
図８において、ＰＥＢｊ（ｊは添え字であり、ｊ＝１〜１０２４の整数）はプロセッサエレメントである。各プロセッサエレメントＰＥＢｊは、複数の状態の状態確率に係る確率情報を記憶するメモリ８１と、当該確率情報を用いて論理演算を行う論理演算部（ＬＵ）８２をそれぞれ有する。また、各プロセッサエレメントＰＥＢｊは、ネットワーク８３を介して互いに通信可能に接続されている。ネットワーク８３は、例えば状態を示す論理値のハミング距離が１である状態に対応したプロセッサエレメントＰＥＢｊを互いに通信可能に接続するハイパーキューブネットワークである。上述のように構成して複数のプロセッサエレメントＰＥＢｊを並列動作させることで、論理量子プロセッサは量子コンピュータと同様の演算機能を実現する。
【００１０】
【特許文献１】特開２００３−８４９６６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ここで、上述したように量子計算においては、入力として取り得るすべての可能な状態（データ値）に対し出力を同時に計算するため、入力及び出力は異なるキュービットに割り当てる必要がある。また、集積回路を用いて量子コンピュータの技術を実現する上述した並列処理プロセッサ（量子論理プロセッサを含む。）は、量子計算においてすべての量子状態の状態確率に係る情報を記憶している。
【００１２】
上述した論理量子プロセッサにおいて、入力がｎキュービット、出力がｍキュービットの場合には、２n+m（＝２n×２m）個の量子状態について記憶しなければならない。例えば、入力が２キュービット、出力が２キュービットの場合には、記憶しておくべき量子状態は１６（＝２4）個であり、少なくとも１６ビットの記憶領域を要する。
【００１３】
したがって、上述した並列処理プロセッサにおいては、入出力のキュービット数の増加に伴って量子状態の記憶に要する記憶容量は著しく増大するので、演算規模を大きくすることが容易ではないという問題があった。また、入出力のキュービット数が増加すると、量子計算におけるデータの交換等に多大な時間を要し、演算を高速に実行することができないという問題があった。
【００１４】
本発明は、このような問題に鑑みてなされたものであり、量子コンピュータと同様の演算機能を有しながらも、上述した並列処理プロセッサと比較して必要なハードウェア量を削減し、かつ大規模な演算を高速で実行することができるようにすることを目的とする。
【課題を解決するための手段】
【００１５】
本発明の半導体演算装置は、Ｎビット（Ｎは自然数）で表現可能なすべての論理値の状態に関する演算を並列して実行する半導体装置であって、互いに異なる上記論理値の状態に対応し、所定の確率を持つ上記論理値の状態を示す位置情報を用いて当該対応する論理値の状態に関する演算を行い、演算結果を保持する複数の演算手段を備え、上記複数の演算手段が並列して演算を行うことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、所定の確率を持つ論理値の状態を示す位置情報を用いて、論理値の状態に関する演算を行い、その演算結果として得られる新たな位置情報を保持するので、各状態の確率に係る情報をすべての論理値の状態について保持していなくとも、所定の確率を持つ状態を示す位置情報のみを保持するだけで量子コンピュータと同様の演算を実行することができる。したがって、演算を実行するために必要なハードウェア量を大きく削減することができ、大規模な演算を高速で実行することができる。
また、他の状態を参照せず、対応する論理値の状態に係る位置情報のみで演算を行うので、演算を行う際に他の演算手段との情報交換を行う必要がなくなり、演算を高速に実行することができ、演算速度を向上させることができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態を図面に基づいて説明する。
本発明の実施形態による半導体演算装置を適用した並列処理プロセッサは、集積回路を用いて量子コンピュータの技術を実現するものであり、量子計算を行うための公知の量子アルゴリズムと同様にして演算が実行される。
【００１８】
なお、以下の説明においては、上述した既に本発明者らが提案した並列処理プロセッサと本実施形態における並列処理プロセッサを区別するために、本実施形態における並列処理プロセッサを量子インデックスプロセッサ（ＱＩＰ：Quantum Index Processor）と称す。
また、以下の説明では、説明の便宜上、４キュービット相当の演算が可能な量子インデックスプロセッサ等を一例として説明するが、キュービット数は任意であり、本実施形態における量子インデックスプロセッサは、Ｎキュービット（Ｎは自然数）、すなわちＮビットで表現可能なすべての論理値の状態に関して演算可能なものである。
【００１９】
まず、本実施形態おける量子インデックスプロセッサでの量子状態の表現について図１に基づいて説明する。
図１（ａ）は、本実施形態における量子状態の表現方法を説明するための図である。なお、比較参照するために上述した論理量子プロセッサ（ＬＱＰ）での量子状態の表現方法を図１（ｂ）に示している。
【００２０】
図１（ａ）及び図１（ｂ）において、ｑ０、ｑ１は入力に割り当てたキュービットであり、ｑ２、ｑ３は出力に割り当てたキュービットである。また、Ｐは、キュービットｑ０〜ｑ３の値に応じた各量子状態の確率であり、ＰＩは、当該各量子状態の確率に基づく確率情報である。上記確率情報ＰＩは、各状態が確率を有するか否か、すなわち状態確率が０でない値ｐ（０＜ｐ≦１、なお、図１に示す例ではｐ＝１／４）を有するか否か（値がｐであるか０であるか）を、“１”（状態確率の値ｐ）及び“０”（状態確率の値０）のバイナリ表現で示したものである。
【００２１】
図１（ｂ）に示したように論理量子プロセッサにおいては、キュービットｑ０〜ｑ３で示される各状態における確率情報ＰＩをメモリにそれぞれ保持する。例えば、状態を示すキュービットｑ０〜ｑ３の４ビットの値をアドレス値とし、対応する確率情報ＰＩをデータとしてメモリにそれぞれ保持する。
【００２２】
図１（ｂ）に示したように、入力が２キュービット、出力が２キュービットの場合には、量子状態として１６（＝２4）状態が存在し得るので、各状態の確率情報ＰＩを保持するためには１６ビット分の記憶容量を要する。したがって、論理量子プロセッサにおいては、確率情報を記憶するために必要な記憶容量は、入出力ビット数の２のべき乗で増加する。
【００２３】
本発明者らは、量子計算において各入力ｑ０、ｑ１に対して、確率情報ＰＩが“１”となる出力ｑ２、ｑ３はそれぞれ１つであること、すなわち入力ｑ０、ｑ１に対して、出力ｑ２、ｑ３により取り得るすべての値のうちで１つの値のみが確率値ｐを有することを見出した。
【００２４】
そこで、本実施形態における量子インデックスプロセッサ（ＱＩＰ）は、各入力ｑ０、ｑ１に対して、確率情報が“１”である状態の位置情報（インデックス）をメモリにそれぞれ保持する。ここで、メモリに保持される上記位置情報は、確率情報が“１”である状態に対応する出力ｑ２、ｑ３の値である。例えば、入力ｑ０、ｑ１の２ビット（入力ビット列）の値をアドレス値とし、確率情報が“１”である状態に対応する出力ｑ２、ｑ３の２ビット（出力ビット列）の値をデータとしてメモリにそれぞれ保持する。図１（ａ）に示した例では、例えば入力ｑ０、ｑ１が“００”に対しては、位置情報として“０１”をメモリに記憶し、入力ｑ０、ｑ１が“０１”に対しては、位置情報として“１０”をメモリに記憶する。
【００２５】
したがって、図１（ａ）に示したように、入力が２キュービット、出力が２キュービットの場合には、入力ｑ０、ｑ１の組み合わせが４通りであり、それぞれの組み合わせに対して２ビットの位置情報を記憶するので、各量子状態の確率に係る情報を保持するために必要な記憶容量は８（＝２2×２）ビットとなる。
【００２６】
ここで、入力がｎキュービット、出力がｍキュービットとする（ｎ、ｍは自然数）。このとき、各量子状態の確率に係る情報を保持するために必要な記憶容量は、量子インデックスプロセッサが（２n×ｍ）ビットの記憶容量を必要とし、論理量子プロセッサが（２n×２m）ビットの記憶容量を必要とする。
【００２７】
図２（ａ）は、本実施形態における量子インデックスプロセッサ、及び論理量子プロセッサにおいて量子計算に要するメモリ使用量の一例を示す図である。図２（ａ）において、横軸は入出力キュービット数であり、縦軸はメモリ使用量（単位はビット）である。なお、メモリ使用量はｌｏｇ（ログ）スケールで示している。
【００２８】
図２（ａ）においては、因数分解のアルゴリズムとしてよく知られたショアのアルゴリズムを実行する場合に必要なメモリ使用量を示しており、図２（ｂ）に示すように入力２１がｎキュービット、出力（計算途中で使用する補助ビットを含む。）２２が３ｎキュービットの場合に必要なメモリ使用量をそれぞれ示している。
【００２９】
このとき、論理量子プロセッサにて量子計算に要するメモリ使用量は（２n×２3n＝２4n）ビットであり、入出力キュービット数（４ｎ）の増加に伴ってメモリ使用量は指数関数的に増加する。一方、本実施形態における量子インデックスプロセッサにて量子計算に要するメモリ使用量は（２n×３ｎ）ビットであり、入出力キュービット数（４ｎ）の増加に伴うメモリ使用量の増加量は、図２（ａ）から明らかなように論理量子プロセッサと比較して非常に小さいことがわかる。
【００３０】
したがって、本実施形態における量子インデックスプロセッサは、論理量子プロセッサよりも少ない記憶容量（メモリ使用量）で同じ情報量を記憶することができ、量子計算に要するメモリ容量を削減することができる。これにより、本実施形態における量子インデックスプロセッサは、論理量子プロセッサよりも小さな回路規模で同等の演算を実行することができ、同じ回路規模では論理量子プロセッサと比較して大規模な演算を実行することができる。
【００３１】
次に、本実施形態における量子インデックスプロセッサの構成について、図３（ａ）、（ｂ）に基づいて説明する。
【００３２】
図３（ａ）は、量子インデックスプロセッサＱＩＰの全体構成の一例を示すブロック図である。
図３（ａ）において、３１は外部から供給される命令を保持する命令レジスタであり、外部から命令Ｓ１が入力され、当該命令Ｓ１に応じた制御信号Ｓ２、Ｓ３を出力する。３２は命令を解釈してアドレスを生成する状態制御部であり、命令レジスタ３１から制御信号Ｓ２が入力され、アドレス信号Ｓ４を出力する。
【００３３】
３３は演算部であり、命令レジスタ３１から制御信号Ｓ３が入力されるとともに、状態制御部３２からアドレス信号Ｓ４が入力される。演算部３３は、制御信号Ｓ３として供給される制御情報（制御ビットに係る情報）、及びアドレス信号Ｓ４に基づいて、命令Ｓ１に応じた演算を実行する。このとき、演算部３３は、内部に記憶している０でない確率を持つ状態の位置情報を用いて演算を実行する。演算部３３は、命令Ｓ１に応じた演算を実行するための複数（例えば２11＝２０４８個）のプロセッサエレメント（ＰＥ：演算素子）３４を有する。なお、プロセッサエレメント３４については後述する。
【００３４】
３５は演算により得られた解を記憶するアンサーレジスタである。アンサーレジスタ３５は、正解データのアドレスをサーチして演算部３３から解データＳ５を読み出し、当該解データを出力Ｓ６として出力する。
【００３５】
図３（ｂ）は、図３（ａ）に示したプロセッサエレメント３４の構成例を示すブロック図である。
図３（ｂ）において、メモリ３６は、演算に係る各状態のうち０でない確率を持つ状態を示す位置情報を記憶するためのものであり、例えば本実施形態では６４ビットの記憶容量を有する。メモリ３６は、命令Ｓ１に基づいて状態制御部３２から供給されるアドレス信号Ｓ４により指定されたアドレスＡＤが入力され、当該アドレスＡＤに記憶されているデータ（位置情報）を論理演算部（ＬＵ）３７に出力する。
【００３６】
論理演算部３７は、メモリ３６から入力されるデータ（位置情報）に対して所定の論理演算を施し、演算結果を出力する。このとき、論理演算部３７は、命令Ｓ１に応じた演算が後述する制御ＮＯＴ演算である場合には、テンポラリレジスタ３８から供給される制御ビットのデータを参照して、演算対象ビットのデータに所定の論理演算を施す。
【００３７】
テンポラリレジスタ３８は、メモリ３６より出力され論理演算部３７を介して供給されるデータのうち、上記制御ビットのデータを一時的に保持するためのレジスタである。マルチプレクサ３９は、論理演算部３７から演算結果として出力されたデータ及び論理演算が施されていないデータＤＴが入力され、当該データの一方を選択的にメモリ３６に出力する。
【００３８】
上述のように量子インデックスプロセッサを構成することで、本実施形態では（ｌｏｇ2（プロセッサエレメント数）＋メモリ容量）キュービット相当の演算を実行することができる。例えば、プロセッサエレメントを２０４８個設け、メモリ３６の記憶容量が６４ビットの場合には、１１＋６４＝７５キュービット相当の量子演算を実行することができる。
【００３９】
なお、上述したプロセッサエレメント３４は、データ（位置情報）をシリアルに伝送するものであるが、データをパラレルに伝送するように構成する場合には、テンポラリレジスタ３８は設けなくとも良い。
【００４０】
次に、本実施形態における量子インデックスプロセッサの動作について説明する。
ここで、本実施形態における量子インデックスプロセッサにおいて、量子アルゴリズムに基づく量子計算（量子状態についての量子操作）は、ＮＯＴ演算及び制御ＮＯＴ（controlled-NOT）演算により実現される。
【００４１】
命令Ｓ１によりある対象ビットについての量子操作（ＮＯＴ演算及び制御ＮＯＴ演算）が指示されると、命令レジスタ３１から当該命令Ｓ１に応じた制御信号Ｓ２が状態制御部３２に供給される。状態制御部３２は制御信号Ｓ２に基づいて当該命令を解釈して、演算対象であるデータ（位置情報）をメモリ３６から読み出すためのアドレスを生成し、当該アドレスをプロセッサエレメント３４（演算部３３）に供給する。
【００４２】
なお、命令Ｓ１により指示された演算が、ＮＯＴ演算、又は出力ビットを制御ビットとする制御ＮＯＴ演算の場合には、演算部３３内に設けられたすべてのメモリ３６に記憶されているデータが演算対象となる。すなわち、状態制御部３２は、演算部３３内に設けられたすべてのメモリ３６を指定するようにアドレスを生成出力する。一方、命令Ｓ１により指示された演算が入力ビットを制御ビットとする制御ＮＯＴ演算の場合には、状態制御部３２は、制御ビットの値が“１”に対応する演算部３３内のメモリ３６を指定するようにアドレスを生成出力する。
【００４３】
プロセッサエレメント３４内のメモリ３６は、状態制御部３２から供給されたアドレスＡＤに記憶されているデータを論理演算部３７に出力する。論理演算部３７は、テンポラリレジスタ３８を適宜参照し、メモリ３６から出力されたデータのうち対象ビットに対して所定の論理演算を施して演算結果を出力する。論理演算部３７から出力された演算結果は、マルチプレクサ３９を介して、演算前のデータが記憶されていたアドレスＡＤに対応するメモリ３６の記憶領域に書き込まれる、すなわち書き戻される。
【００４４】
上述のようにして供給された命令Ｓ１に応じた演算を行った後、解を出力する際には、アンサーレジスタ３５により正解データのアドレスをサーチしてメモリ３６から解データを読み出し出力する。
【００４５】
なお、各プロセッサエレメント３４にそれぞれ対応付けられている状態は、複数のプロセッサエレメント３４にて重複しないとともに、入力ｑ０、ｑ１の値を任意に組み合わせたそれぞれの状態については、何れかのプロセッサエレメント３４に対応付けられている。
【００４６】
ここで、命令Ｓ１により指示される量子操作（ＮＯＴ演算及び制御ＮＯＴ演算）に応じて、量子インデックスプロセッサにて行われる演算処理（データ操作等）について説明する。なお、以下の説明では、説明の便宜上、入力、出力はそれぞれ２キュービットとする。
【００４７】
まず、ＮＯＴ演算のときの演算処理について説明する。
図４（ａ）は、量子インデックスプロセッサでのＮＯＴ演算を説明するための図である。なお、比較参照するために論理量子プロセッサでのＮＯＴ演算について図４（ｂ）に示している。
【００４８】
図４（ａ）及び図４（ｂ）において、ｑ０、ｑ１は入力に割り当てたキュービットであり、ｑ２、ｑ３は出力に割り当てたキュービットである。また、Ｐはキュービットｑ０〜ｑ３の値に応じた演算前の各状態の確率であり、Ｐ’は演算後の各状態の確率である。同様に、ＰＩは演算前の各状態の確率に基づく確率情報であり、ＰＩ’は演算後の各状態の確率に基づく確率情報である。
ここで、図４（ａ）及び図４（ｂ）は、ＮＯＴ演算の対象ビットがｑ３であるときを示している。
【００４９】
論理量子プロセッサにて対象ビットをｑ３とするＮＯＴ演算を実行する際には、図４（ｂ）に示したように対象ビットｑ３の値のみが異なる状態の確率情報を互いに交換する。すなわち、論理量子プロセッサでのＮＯＴ演算では、プロセッサエレメント内のメモリに記憶されているデータの交換操作を実行する。
【００５０】
そのため、確率情報を交換する状態に対応したプロセッサエレメントが異なる、つまり交換すべき確率情報が異なるプロセッサエレメントのメモリに記憶されている場合には、ネットワークを介したデータ通信が必要となる。例えば、論理量子プロセッサではないが、図７に示した並列処理プロセッサにおいて、プロセッサエレメント７１、７３が、対象ビットの値のみが異なる状態に対応するプロセッサエレメントである場合には、７つのエクスチェンジユニットＥＵｉを介してデータ通信を行わなければならず、演算処理に多大な時間を要する。
【００５１】
それに対して、量子インデックスプロセッサにおいては、０でない確率を持つ状態を示す位置情報は、入力ｑ０、ｑ１の値が異なる他の状態には依存せず、入力ｑ０、ｑ１の値ごとに独立したものである。量子インデックスプロセッサにて対象ビットをｑ３とするＮＯＴ演算を実行する際には、図４（ａ）に示したように位置情報として記憶されている対象ビットｑ３に対してＮＯＴ演算（対象ビットｑ３の値を反転する論理演算）のみ実行する。例えば、上記演算により０でない確率を持つ状態は、状態“０００１”から状態“００００”になる。
【００５２】
したがって、量子インデックスプロセッサは、どのビットを対象ビットとするＮＯＴ演算であっても、データ通信を行うことなく、記憶している位置情報に対して論理演算を施すだけで良いので、演算速度が向上し、演算を高速に実行することができる。
【００５３】
次に、制御ＮＯＴ演算のときの演算処理について説明する。
図５は、本実施形態における制御ＮＯＴ演算を説明するための図である。
図５において、ＯＰ１は制御ビットをｑ１とし、対象ビットをｑ３とする制御ＮＯＴ演算を表しており、ｑ１の値が“１”である状態に対してのみＮＯＴ演算を実行する。すなわち、演算部３３内に設けられたメモリ３６のうち、入力ｑ０、ｑ１の値が“０１”、“１１”である状態に対応した位置情報を記憶しているメモリ３６を有するプロセッサエレメント３４のみで演算処理が実行され、その内部のメモリ３６に記憶している位置情報に対して論理演算が施される。
【００５４】
また、ＯＰ２は制御ビットをｑ２とし、対象ビットをｑ３とする制御ＮＯＴ演算を表しており、ｑ２の値が“１”である状態に対してのみＮＯＴ演算を実行する。このときには、演算部３３内のすべてのプロセッサエレメント３４にて演算処理が実行され、その内部のメモリ３６から読み出された位置情報に含まれる制御ビットｑ２の値に応じて、当該位置情報に論理演算が施される。
【００５５】
このように、本実施形態における量子インデックスプロセッサは、実行する演算が制御ＮＯＴ演算の場合には、入力ｑ０、ｑ１が制御ビットであれば、対応する状態に係るプロセッサエレメントのみで演算処理を行い、メモリ３６に記憶している位置情報に対して論理演算を施す。一方、出力ｑ２、ｑ３が制御ビットであれば、すべてのプロセッサエレメントで演算処理を行い、メモリ３６から読み出した位置情報の値に応じて、当該位置情報に論理演算を施す。
【００５６】
以上、詳しく説明したように本実施形態によれば、存在し得る状態のうち、０でない確率を持つ状態を示す位置情報をプロセッサエレメント３４内のメモリ３６に保持し、命令Ｓ１に応じた演算（量子操作）を実行する際には、当該位置情報に対して命令Ｓ１に基づく演算処理を施す。すなわち、当該位置情報のみを用いて命令Ｓ１に基づく演算処理を実行する。
【００５７】
これにより、すでに提案している並列処理プロセッサのように、入力及び出力に割り当てたビットにて表現可能な各状態の確率に係る情報をすべての状態についてメモリに保持しなくとも、０でない確率を持つ状態を示す位置情報のみを保持するだけで、上記並列処理プロセッサと同様の演算を実行することができる。したがって、例えば図２（ａ）に示したようにメモリ容量等のハードウェア量を大きく削減することができ、回路規模が等しい場合には上記並列処理プロセッサよりも大規模な演算を実行することが可能になる。
【００５８】
また、本実施形態によれば、他の状態に係る位置情報を用いず、すなわち他のプロセッサエレメント３４等とのネットワークを介したデータ通信を行わずに、メモリ３６に保持した１つの状態に係る位置情報のみで演算を実行するので、演算を高速に実行することができ、図６に示すように演算速度が向上する。
【００５９】
ここで、図６は、量子インデックスプロセッサ及び論理量子プロセッサにおける演算時間の一例を示す図である。図６において、横軸はキュービット数、縦軸は演算時間である。図６から明らかなように、量子インデックスプロセッサ（ＱＩＰ）における演算時間は、論理量子プロセッサ（ＬＱＰ）における演算時間に比べて非常に短く、およそ１／（１０26）になる。
【００６０】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００６１】
【図１】本発明の実施形態による半導体演算装置を適用した並列処理プロセッサ（量子インデックスプロセッサ）の原理を説明するための図である。
【図２】量子インデックスプロセッサ及び論理量子プロセッサでのメモリ使用量の一例を示す図である。
【図３】量子インデックスプロセッサの構成例を示す図である。
【図４】量子インデックスプロセッサでのＮＯＴ演算を説明するための図である。
【図５】量子インデックスプロセッサでの制御ＮＯＴ演算を説明するための図である。
【図６】量子インデックスプロセッサ及び論理量子プロセッサにおける演算時間の一例を示す図である。
【図７】複素数で表された状態確率を用いて演算を行う並列処理プロセッサの要素的特徴を示す図である。
【図８】２値で表された確率情報を用いて演算を行う並列処理プロセッサの要素的特徴を示す図である。
【符号の説明】
【００６２】
３１  命令レジスタ
３２  状態制御部
３３  演算部
３４  プロセッサエレメント
３５  アンサーレジスタ
３６  メモリ
３７  論理演算ユニット（ＬＵ）
３８  テンポラリレジスタ
３９  マルチプレクサ
【図１】
2005056084.tif 000003
【図２】
2005056084.tif 000004
【図３】
2005056084.tif 000005
【図４】
2005056084.tif 000006
【図５】
2005056084.tif 000007
【図６】
2005056084.tif 000008
【図７】
2005056084.tif 000009
【図８】
2005056084.tif 000010