JP3708072B2 - Semiconductor computing device - Google Patents

Semiconductor computing device Download PDF

Info

Publication number
JP3708072B2
JP3708072B2 JP2002280775A JP2002280775A JP3708072B2 JP 3708072 B2 JP3708072 B2 JP 3708072B2 JP 2002280775 A JP2002280775 A JP 2002280775A JP 2002280775 A JP2002280775 A JP 2002280775A JP 3708072 B2 JP3708072 B2 JP 3708072B2
Authority
JP
Japan
Prior art keywords
state
arithmetic
logical
value
logical value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002280775A
Other languages
Japanese (ja)
Other versions
JP2004118512A (en
Inventor
実 藤島
康文 鈴木
康祐 斉藤
真一 大内
紘一郎 鳳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Science and Technology Agency
National Institute of Japan Science and Technology Agency
Original Assignee
Japan Science and Technology Agency
National Institute of Japan Science and Technology Agency
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Japan Science and Technology Agency, National Institute of Japan Science and Technology Agency filed Critical Japan Science and Technology Agency
Priority to JP2002280775A priority Critical patent/JP3708072B2/en
Publication of JP2004118512A publication Critical patent/JP2004118512A/en
Application granted granted Critical
Publication of JP3708072B2 publication Critical patent/JP3708072B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Chemical & Material Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Nanotechnology (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、半導体演算装置に関し、特に、Nビット(Nは自然数)で表現可能な2N個のすべての論理値について演算を並列に実行する半導体演算装置に用いて好適なものである。
【0002】
【従来の技術】
従来の計算機等が備える半導体演算装置(例えばCPU)は、1つのデータ値(論理値)を用いて演算処理や条件分岐処理等を逐次実行する従来の演算方式を用いて演算を行っていた。この従来から利用されている演算方式とは異なり、量子力学の原理に基づく新しい演算方式を用いて演算を行う量子コンピュータが提案されている。
【0003】
量子コンピュータは、キュービット(量子ビット)という単位で構成された量子力学に基づく状態の重ね合わせを利用し、量子力学的な操作を当該状態に施すことにより各状態に対する演算を並列に実行する。したがって、量子コンピュータは、理論上、すべての可能な状態(値として存在可能なデータ値)について、1回の演算を行うだけですべての可能な状態の演算結果を同時に、かつ瞬時に得ることができる。
【0004】
上記量子コンピュータは、量子力学に基づく状態の重ね合わせを利用するので、核磁気共鳴、マイクロ波、レーザー等を用いた実際に量子力学に基づく現象が観測可能な物理系で実現されてきた。最近では、量子コンピュータにおいて、27個の状態が同時に存在する7キュービットまで演算可能な実際の物理系が提案されている。
【0005】
【発明が解決しようとする課題】
しかしながら、従来の量子コンピュータは、量子力学に基づく現象が観測可能な実際の物理系を用いているので、装置自体が非常に大規模になり実用的ではなかった。さらに、量子コンピュータは、状態が互いに相関を持ちながら変化するようにして演算を行う必要があり、キュービット数の増加に伴い指数関数的に増加する位相状態を実際の物理系を用いた1つの装置に存在させて保存することが困難になってくる。
また、量子コンピュータは量子的な物理現象を利用しており、古典的な古典電磁気学に基づく物理現象を利用した集積回路を用いて、量子コンピュータをそのまま実現することは困難である。
【0006】
そこで、本発明者らは、量子力学に基づいて重ね合わされたそれぞれの状態(論理値)に対応する複数のプロセッサエレメント(演算回路)を設け、それらを互いに通信可能なように接続することにより、集積回路を用いて量子コンピュータの技術を実現する特願2001−279286に記載の並列処理プロセッサを提案した。この並列処理プロセッサは、上記複数のプロセッサエレメントが対応する状態の状態確率について演算を同時に行い、得られた演算結果を記憶するように複数のプロセッサエレメントを並列動作させることで、量子コンピュータと同様の演算機能を実現する。
【0007】
図12は、本発明者らが提案した並列処理プロセッサが備えるプロセッサエレメントの構成の概要を示すブロック図である。図12においては、演算対象として注目するターゲットキュービットの値のみが異なり、他のキュービットの値が等しい第1の状態(ターゲットキュービットの値“0”)および第2の状態(ターゲットキュービットの値“1”)にそれぞれ対応するプロセッサエレメント121、126を一例として示している。
【0008】
ここで、量子コンピュータによる量子計算において、データに該当する状態確率は位相情報を含み複素数を用いて表され、量子計算にて行われる演算はユニタリ変換である。すなわち、量子計算では複素数で表された状態確率に対してユニタリ行列を用いた行列演算を施すので、図12に示すように1つのプロセッサエレメントは、2つの乗算器と1つの加算器とを有し、複素数の積和演算を行う。
【0009】
ユニタリ行列の各成分の係数値をU1、U2,U3、U4とすると、図12に示したプロセッサエレメント121では、第1の状態の状態確率(|0>)と係数値(U1)との乗算、および第2の状態の状態確率(|1>)と係数値(U2)との乗算が乗算器122、123でそれぞれ行われる。さらに、乗算器122、123の出力が加算器124で加算され、その演算結果が演算後の第1の状態の状態確率(|0>’)としてレジスタ125に記憶される。
【0010】
同様に、プロセッサエレメント126では、第1の状態の状態確率(|0>)と係数値(U3)との乗算、および第2の状態の状態確率(|1>)と係数値(U4)との乗算が乗算器127、128で行われ、乗算器127、128の出力が加算器129で加算された後、演算後の第2の状態の状態確率(|1>’)としてレジスタ130に記憶される。
【0011】
しかしながら、上記図12に示したプロセッサエレメント121、126を用いて構成した並列処理プロセッサにおいて、複素数で表される状態確率は、実数部および虚数部がそれぞれ複数のビット(例えば、それぞれ8ビット)を用いて示される。したがって、上記並列処理プロセッサは、複数のビットを用いて表された状態確率について複素積和演算を行うために演算処理に多大な時間を要してしまい、演算を高速に実行することができないという問題があった。
【0012】
また、上記並列処理プロセッサは、複数のビット演算に対応した2つの乗算器と1つの加算器とをそれぞれのプロセッサエレメントに備える必要があり、1つのプロセッサエレメントを構成するための回路面積(回路規模)が大きく、またプロセッサエレメントの数は、キュービット数の増加にともない指数関数的に増加するので、演算規模を大きくすることが容易ではないという問題があった。
【0013】
本発明は、このような問題に鑑みてなされたものであり、量子コンピュータと同様の演算機能を有しながらも、演算を高速で実行することができるようにすることを目的とする。また、本発明は、演算の規模を容易に大きくできるとともに、演算を高速で実行することができるようにすることを第2の目的とする。
【0014】
【課題を解決するための手段】
本発明の半導体演算装置は、Nビット(Nは自然数)で表現可能なすべての論理値の状態について演算を並列して行い、それぞれの演算結果を保持する半導体演算装置であって、所定の論理値の状態について演算を行う際、供給される論理値の状態を示すフラグを用いて論理演算を行い、演算結果を保持する複数の演算回路を備え、複数の演算回路は、互いに異なる論理値の状態について演算を並列して行うことを特徴とする。
【0015】
本発明の半導体演算装置の他の特徴とするところは、論理値の状態を示すフラグは、論理値の状態を示す確率振幅に応じたフラグであることを特徴とする。
本発明の半導体演算装置のその他の特徴とするところは、論理値の状態を示すフラグは、論理値の状態を示す確率振幅が0とは異なる値であるか否かを1ビットで示すことを特徴とする。
【0016】
本発明の半導体演算装置のその他の特徴とするところは、演算回路にそれぞれ対応して設けられた、複数の論理値の状態を記憶する複数の記憶回路をさらに備え、複数の記憶回路が記憶する複数の論理値の状態は、記憶回路毎に互いに異なり、演算回路は、対応する記憶回路に記憶された複数の論理値の状態について演算可能であることを特徴とする。
本発明の半導体演算装置のその他の特徴とするところは、記憶回路は、論理値の状態を示すフラグを記憶することを特徴とする。
【0017】
本発明の半導体演算装置のその他の特徴とするところは、複数の演算回路は、ネットワークを介して互いに通信可能なように接続されていることを特徴とする。
本発明の半導体演算装置のその他の特徴とするところは、ネットワークは、論理値のハミング距離が1である論理値の状態について演算を行う演算回路を少なくとも互いに通信可能なように接続することを特徴とする。
本発明の半導体演算装置のその他の特徴とするところは、ネットワークは、論理値のハミング距離が1である論理値の状態について演算を行う演算回路をハイパーキューブ状に互いに通信可能なように接続することを特徴とする。
【0018】
本発明の半導体演算装置のその他の特徴とするところは、論理値の状態についての演算結果に基づいて、観測命令操作により得られる解を記憶するレジスタをさらに備えることを特徴とする。
【0019】
本発明の半導体演算装置のその他の特徴とするところは、演算回路は、複数の論理値の状態について演算を行う際、演算における互いに異なる処理を順次並列に行うことを特徴とする。
本発明の半導体演算装置のその他の特徴とするところは、演算回路は、所定の論理値の状態を示すフラグと、所定の論理値とは演算対象ビットの値だけが異なる論理値の状態を示すフラグとを用いた論理演算を行うことを特徴とする。
【0020】
【発明の実施の形態】
以下、本発明の一実施形態を図面に基づいて説明する。
本発明の実施形態による半導体演算装置を適用した並列処理プロセッサは、集積回路を用いて量子コンピュータの技術を実現するものであり、量子計算を行うための公知の量子アルゴリズムと同様にして演算が実行される。
【0021】
まず、量子アルゴリズムについて説明する。図1は量子アルゴリズムの流れを説明するための図であり、ショア(Shor)のアルゴリズムを初めとする量子アルゴリズムは、一般に図1に示すように4つのステージ(段階)で構成される。なお、図1は8キュービットの場合を一例として示しており、横方向に伸びる実線は各キュービットQ1〜Q8にそれぞれ対応する。
以下、各ステージについて説明する。
【0022】
第1のステージ(Stage1)では、ウォルシュ・アダマール変換(Walsh-Hadamard Transformation:以下、「W−H変換」と称す。)S1-1、S1-2、S1-3、S1-4、…を用いて、所定の状態に確率を分配する。これにより、第1のステージでは、所定の状態に等しい確率を割り当て、量子力学に基づく状態の重ね合わせの初期状態を生成する。
【0023】
第2のステージ(Stage2)では、ノット(NOT)変換(制御NOT操作)S2-1、S2-2、S2-3、…を用いて、上記第1のステージにて割り当てられた確率を状態間で交換する。この第2ステージにおける確率の交換操作は、CPU等を備えた従来の計算機における加算演算や乗算演算に相当する。
【0024】
なお、図1において、例えばノット変換S2-1は、制御キュービットがQ3、ターゲットキュービットがQ8であることを示している。このとき、制御キュービットQ3の値が“1”であれば、ターゲットキュービットQ8の値のみが異なり、他のキュービットの値が等しい状態間にて確率の交換をそれぞれ行う。一方、制御キュービットQ3の値が“0”であれば、確率の交換は行わずに値を保持する。ノット変換S2-2、S2-3、…においても同様である。
【0025】
第3のステージ(Stage3)では、W−H変換S3-1、S3-3、…およびフェイズシフト変換S3-2、S3-4、…による量子フーリエ変換(Quantum Fourier Transformation:以下、「QFT」と称す。)等を用いて干渉により解を一点に収束させる。さらに、第4のステージ(Stage4)では、観測S4を行うことで解を求める。
【0026】
なお、上述したノット変換S2-1と同様に、例えばフェイズシフト変換S3-2は、制御キュービットがQ8、ターゲットキュービットがQ7であることを示している。フェイズシフト変換S3-2は、制御キュービットQ8の値が“1”であれば、ターゲットキュービットQ7に関して位相回転を行い、制御キュービットQ8の値が“0”であれば値を保持する。フェイズシフト変換S3-4、…においても同様である。
【0027】
本発明者らは、上記図1に示したような量子アルゴリズムにおいて、W−H変換により所定の状態に確率を分配する第1のステージ、および制御キュービットの値等に応じて状態間での確率の交換を行う第2のステージが終了するまでは、各状態の状態確率(確率振幅)が、0あるいは値p(0<p≦1)の何れか一方の値のみであることを見出した。すなわち、量子アルゴリズムにおける第1および第2のステージにおいては、複数のビットを用いて示される状態の状態確率の値そのものを用いなくとも、値を有するか否か(値が0であるかpであるか)を示せば、情報量を損失することなく(情報量は変わらずに)等価な演算を行うことが可能であることを見出した。
【0028】
そこで、本実施形態における並列処理プロセッサは、N(Nは自然数)ビットで表現可能なすべての論理値の状態について各状態の状態確率が値を有するか否かを1ビットで示す確率フラグを用い、さらにユニタリ変換に相当する演算を論理(ロジック)演算で実行する。これにより、本実施形態における並列処理プロセッサは、プロセッサエレメントにおける構成を単純化しながらも、簡単な構成で量子コンピュータと同等の演算機能を実現するようにしたものであり、プロセッサエレメントに要する回路面積を低減して、演算の並列度および単位ゲート当たりの演算量を向上させることが可能になる。
【0029】
図2は、本実施形態における並列処理プロセッサ1の一構成例を示すブロック図である。
図2において、制御部2は、命令管理部3およびパイプライン生成部4を有し、複数のプロセッサエレメント8-n(nは添え字であり、n=1、2、3、…)等の並列処理プロセッサ1内の各機能部を制御する。インタフェース7は、並列処理プロセッサ1と外部に接続された外部機器(外部回路)等との間で命令やデータの授受等を行うためのものである。
【0030】
命令管理部3は、インタフェース7を介して外部機器から供給される命令をパイプライン生成部4に出力したり、後述する観測命令操作により得られた解をインタフェース7を介して外部機器に出力したりする。命令管理部3は、外部機器から供給される命令を一時的に記憶するための命令キャッシュ5、および観測命令操作により得られた解を記憶するためのアンサーレジスタ6を有する。
【0031】
パイプライン生成部4は、命令管理部3から供給される命令に基づいて、各プロセッサエレメント8-nに制御指示をそれぞれ出力し、複数のプロセッサエレメント8-nがそれぞれパイプライン動作を並列して行うように制御する。
【0032】
プロセッサエレメント8-nは、パイプライン生成部4から供給される制御指示に応じて、量子力学に基づいて重ね合わされた状態における所定の状態について演算を行う。プロセッサエレメント8-nは、複数の状態の状態確率を記憶するためのローカルメモリ9-n(nは添え字であり、n=1、2、3、…)をそれぞれ有する。すなわち、本実施形態のプロセッサエレメント8-nのそれぞれは、量子力学に基づいて重ね合わされた状態の中の複数の状態が対応付けられている。
【0033】
なお、各プロセッサエレメント8-nにそれぞれ対応付けられている状態は、複数のプロセッサエレメント8-nにて重複しないとともに、並列処理プロセッサ1にて演算可能なキュービット数に応じた任意の状態(論理値)は、何れかのプロセッサエレメント8-nに対応付けられている。また、本実施形態では各状態の状態確率は1ビットの確率フラグを用いて示されるので、ローカルメモリ9-nは、プロセッサエレメント8-nに対応付けられている状態数に等しいビット数だけの記憶容量を有すれば良い。
また、プロセッサエレメント8-nは、ネットワーク10を介して互いに通信可能なように接続されている。
【0034】
次に、本実施形態におけるプロセッサエレメント(PE)について詳細に説明する。
図3は、本実施形態におけるプロセッサエレメントの要素的特徴を示す構成図である。図3においては、ターゲットキュービットの値が“0”である第1の状態に対応するプロセッサエレメント31と、ターゲットキュービットの値が“1”である第2の状態に対応するプロセッサエレメント34とを一例として示している。なお、第1および第2の状態において、ターゲットキュービットを除くキュービットの値は等しい。
【0035】
図3において、プロセッサエレメント31は、論理演算を行うロジック部32と、ロジック部32による演算結果を記憶するレジスタ33とを有する。ロジック部32は、第1の状態に係る確率フラグPA0および第2の状態に係る確率フラグPA1が入力され、確率フラグPA0、PA1を用いて所定の論理演算を行う。さらに、ロジック部32は、演算後の第1の状態に係る確率フラグPB0として演算結果をレジスタ33に出力する。レジスタ33は、ロジック部32から入力される確率フラグPB0を記憶する。
【0036】
同様に、プロセッサエレメント34は、論理演算を行うロジック部35と、その演算結果を記憶するレジスタ36とを有する。ロジック部35は、第1および第2の状態に係る確率フラグPA0、PA1が入力され、所定の論理演算を行った後、演算後の第2の状態に係る確率フラグPB1として演算結果をレジスタ36に出力する。レジスタ36は、ロジック部35から入力される確率フラグPB1を記憶する。
【0037】
図4は、本実施形態におけるプロセッサエレメントの具体的な構成例を示すブロック図である。なお、図4に示したプロセッサエレメントは、演算処理の高速化および回路面積の低減化を図るために、6段のパイプライン構造を有する。
図4において、8はプロセッサエレメント、9はローカルメモリであり、上記図2に示したプロセッサエレメント8-n、ローカルメモリ9-nにそれぞれ対応する。
【0038】
プロセッサエレメント8は、6つのレジスタ41〜45、47およびロジック部46により構成される。
レジスタ41、42、43は、ローカルメモリ9の出力端子とロジック部46の第1の入力端子との間にレジスタ41、42、43の順に直列に接続され、レジスタ41、42、43は、入力される確率フラグを一時的に記憶し、次段に接続されたレジスタ42、43およびロジック部46にそれぞれ出力する。すなわち、ローカルメモリ9の所定の記憶領域から読み出された確率フラグは、レジスタ41、42、43により順次伝達され、ロジック部46に入力される。また、レジスタ41は、記憶した確率フラグを他のプロセッサエレメントにおける上記図4に示したレジスタ44に相当するレジスタに出力する。
【0039】
レジスタ44、45は、ロジック部46の第2の入力端子に対して直列に接続され、レジスタ44、45は、入力される確率フラグを一時的に記憶し、次段に接続されたレジスタ45およびロジック部46にそれぞれ出力する。すなわち、他のプロセッサエレメントにおける上記図4に示したレジスタ41に相当するレジスタから供給された確率フラグは、レジスタ44、45により順次伝達され、ロジック部46に入力される。
【0040】
ロジック部46は、レジスタ47を有し、パイプライン生成部4から供給される制御指示に応じて、レジスタ43、45から第1および第2の入力端子を介してそれぞれ入力される確率フラグを用いた論理演算を行う。また、ロジック部46は、上記論理演算の演算結果をレジスタ47に一時的に記憶した後、ローカルメモリ9の上記所定の記憶領域に書き込む。なお、レジスタ47はロジック部46の外部に設けるようにしても良い。
【0041】
ローカルメモリ9は、プロセッサエレメント8に対応付けられている複数の状態の確率フラグを記憶するためのものである。このようにローカルメモリ9を設けて、1つのプロセッサエレメント8に複数の状態を対応付けることで、1つのプロセッサエレメントに1つの状態を割り当てるよりも、プロセッサエレメント8を有効に活用し、1つの状態当たりに要するプロセッサエレメントの回路面積を低減することができる。
【0042】
ここで、1つの状態に係る確率フラグは1ビットであるので、ローカルメモリ9は、対応付けられている状態数と同じビット数の記憶領域を少なくとも備えていれば良く、例えば、状態数が6キュービット分に相当する64個である場合には、ローカルメモリ9は、64ビットの記憶領域を少なくとも備えていれば良い。同様に、レジスタ41〜45、47は少なくとも1ビットの情報をそれぞれ記憶できれば良い。
【0043】
上記図4に示したプロセッサエレメント8は、クロック信号等の所定のタイミング信号に同期してレジスタ41〜45、47が動作し、後述するように6段のパイプライン処理を行う。
図5は、本実施形態における並列処理プロセッサでのパイプライン制御の一例を示す図である。なお、図5において、CLKはパイプライン処理に用いるクロック信号等のタイミング信号であり、図5における上方から下方に時間は進行するものとする。
【0044】
パイプライン制御は、パイプライン生成部4から各プロセッサエレメントに供給する制御指示に基づいて行われる。
まず、パイプライン生成部4は、所定の状態の確率フラグが記憶されているローカルメモリ9のアドレスを供給し、ローカルメモリ9からの確率フラグの読み出しをプロセッサエレメント8に指示する(read address)。ローカルメモリ9から読み出された確率フラグは、上記図4に示したレジスタ41に記憶される。
【0045】
パイプライン生成部4は、レジスタ41から他のプロセッサエレメントに対して出力する確率フラグが所望のプロセッサエレメントに供給されるようにネットワーク10を制御する(send switch)。これにより、自らに付随するローカルメモリ9から読み出した確率フラグがレジスタ42に記憶され、他のプロセッサエレメントから供給される確率フラグがレジスタ44に記憶される。
【0046】
次に、パイプライン生成部4は、演算対象として注目するターゲットキュービットをプロセッサエレメント8に指示する(target)。このとき、演算に用いられる確率フラグは、レジスタ43、45にそれぞれ伝達されている。その後、パイプライン生成部4は、プロセッサエレメント8に確率フラグの論理演算を指示し(operation control)、ロジック部46にて演算が行われ、演算結果である新たな確率フラグがレジスタ47に記憶される。
【0047】
次に、パイプライン生成部4は、演算の結果として得られた確率フラグを記憶するためのローカルメモリ9のアドレスおよび書き込み許可を通知し、ローカルメモリ9への確率フラグの書き込みをプロセッサエレメント8に指示する(write address, write enable)。
【0048】
以上のようにして、それぞれのプロセッサエレメント8は、ローカルメモリ9から所定の状態の確率フラグを読み出して演算を行い、演算後の確率フラグをローカルメモリ9に書き戻す。なお、上述した説明では1つの状態についての処理の一連の流れを説明するために処理毎に分けて説明したが、通常のパイプライン制御と同じように各処理が順次同時に実行され、異なる状態についての処理が実行されていることは言うまでもない。
【0049】
次に、本実施形態におけるプロセッサエレメント8にて実行される論理演算について説明する。上述したようにロジック部46は、上記図1に示した量子アルゴリズムにおける第1および第2のステージ、すなわちW−H変換およびノット(NOT)変換にそれぞれ相当する論理演算を行う。
【0050】
図6は、ロジック部46にて実行される論理演算の真理値表を示す図である。
図6において、確率フラグのフラグ値“0”は、状態の確率振幅の値が0であることを示し、フラグ値“1”は、状態の確率振幅の値がpであることを示している。
【0051】
また、図6においては、変換前(論理演算前)にてターゲットキュービットを除く他のキュービットの値が等しく、ターゲットキュービットの値が“0”である状態を「|0>」で示し、ターゲットキュービットの値が“1”である状態を「|1>」で示している。なお、状態|0>、|1>の変換後の状態は、「|0>’」、「|1>’」でそれぞれ示している。
【0052】
図6に示したようにノット変換において、演算結果として得られる変換後の状態|0>’および状態|1>’のフラグ値は、それぞれ変換前の状態|1>および状態|0>のフラグ値である。したがって、ロジック部46にて行われるノット変換に相当する論理演算は、状態|0>および状態|1>のフラグ値を入れ替えるような演算である。
【0053】
当該演算は、ノット変換が指示された際に、ターゲットキュービットの値が異なる状態に係る確率フラグを選択するようにして実行しても良いし、状態|0>および状態|1>のフラグ値を入力するための信号線を状態|1>’および状態|0>’のフラグ値を出力するための信号線にそれぞれ単に接続するようにしても良い。
【0054】
また、図6に示したW−H変換において、変換後の状態|0>’のフラグ値が“1”になるのは、変換前の状態|0>および状態|1>のフラグ値が(|0>のフラグ値,|1>のフラグ値)=(0,1)、(1,0)、(1,1)のときである。したがって、状態|0>’についてロジック部46にて行われるW−H変換に相当する論理演算は、状態|0>および状態|1>のフラグ値を用いた論理和(OR)演算である。当該演算は、ロジック部46内に図7(A)に示すように、状態|0>および状態|1>のフラグ値が入力され、その演算結果を状態|0>’のフラグ値として出力するOR演算回路71を設けることにより実現される。
【0055】
同様に、W−H変換において、変換後の状態|1>’のフラグ値が“1”になるのは、変換前の状態|0>および状態|1>のフラグ値が(|0>のフラグ値,|1>のフラグ値)=(0,1)、(1,0)のときである。したがって、状態|1>’についてロジック部46にて行われるW−H変換に相当する論理演算は、状態|0>および状態|1>のフラグ値を用いた排他的論理和(EX(exclusive)−OR)演算である。当該演算は、ロジック部46内に図7(B)に示すように、状態|0>および状態|1>のフラグ値が入力され、その演算結果を状態|1>’のフラグ値として出力するEXOR演算回路72を設けることにより実現される。
【0056】
次に、ネットワーク10について説明する。
本実施形態におけるネットワーク10は、各プロセッサエレメント8-nが他のプロセッサエレメント8-nに対して、論理演算で用いる状態に係る確率フラグを供給できるように各プロセッサエレメント8-nを互いに通信可能なように接続すれば良い。例えば、図8に概念図を示すようなハイパーキューブネットワークをネットワーク10に適用することでネットワーク10を適切に構築することができる。
【0057】
図8は、ネットワーク10に適用可能なハイパーキューブネットワークを説明するための概念図であり、図8においては、説明をわかり易くするために3キュービットの場合を一例として示している。図8に示すように、六面体の各頂点80〜87が状態“000”〜“111”(2値論理値)にそれぞれ対応するものとする。
【0058】
ここで、上述したようにプロセッサエレメント8-nによる演算は、ターゲットキュービットの値のみが異なる状態に係る確率フラグを用いて行われる。すなわち、プロセッサエレメント8-nによる論理演算では、演算対象である状態を示す論理値に対してハミング距離が“1”である論理値の状態に係る確率フラグが用いられる。
【0059】
例えば、状態“000”についての演算では、状態“001”、“010”および“100”の何れかの確率フラグが用いられるので、図8において、頂点80と、頂点81、82および84とをそれぞれ結ぶ辺を通信線に見立てる。すなわち、ネットワーク10は、状態“000”に対応したプロセッサエレメントと、状態“001”、“010”および“100”にそれぞれ対応したプロセッサエレメントとを、通信線NW1、NW2およびNW3を介して通信可能なように接続する。
【0060】
他の状態に対応するプロセッサエレメントについても、上述した説明と同様にして演算対象である状態を示す論理値に対してハミング距離が“1”である論理値の状態に対応するプロセッサエレメントを通信可能なように接続することでハイパーキューブネットワークを適用したネットワーク10を構築することができる。
【0061】
次に、上記図1に示した量子アルゴリズムと対応させて本実施形態における並列処理プロセッサ1の動作について説明する。
なお、以下の説明では、説明の便宜上、キュービット数は8(Q1〜Q8)とし、最下位のキュービットをQ1、最上位のキュービットをQ8とする。また、並列処理プロセッサ1の初期状態として、すべてのキュービットQ1〜Q8の値が“0”である状態“00000000”に係る確率フラグのみが“1”であり、他の状態に係る確率フラグは“0”であるとする。
【0062】
まず、並列処理プロセッサ1は、外部機器からインタフェース7を介して上記図1に示した第1のステージでのW−H変換に対応する命令を受けると、制御部2(命令管理部3およびパイプライン生成部4)により、W−H変換に相当する論理演算を行い所定の状態に確率を分配するように各プロセッサエレメント8-nに制御指示を出力する。
【0063】
例えば、ターゲットキュービットがキュービットQ1であるW−H変換に対応する命令を受けた場合には、各プロセッサエレメント8-nのロジック部46にてW−H変換に相当する論理演算がそれぞれ行われ、状態“00000000”および“00000001”のフラグ値が“1”になる。さらに、ターゲットキュービットがキュービットQ2であるW−H変換に対応する命令を受けた場合には、同様にして状態“00000000”、“00000010”、“00000001”および“00000011”のフラグ値が“1”になる。
このようにして、並列処理プロセッサ1は、W−H変換に相当する論理演算を実行し、所定の状態に確率を分配する。
【0064】
次に、外部機器からインタフェース7を介して上記第2のステージでのノット変換に対応する命令を受けると、並列処理プロセッサ1内の制御部2は、ノット変換に相当する論理演算を行うように各プロセッサエレメント8-nに制御指示を出力する。これにより、各プロセッサエレメント8-nのロジック部46にてノット変換に相当する論理演算が行われ、所定の状態間にて確率フラグ値が交換される。
以上のようにして、上記図1に示した量子アルゴリズムにおける第1および第2のステージに相当する演算が並列処理プロセッサ1にて行われる。
【0065】
ここで、上記図1に示した量子アルゴリズムにおいては、第3のステージにて、第2のステージまでの演算結果に量子フーリエ変換等を施すことで解を収束させ、第4のステージにて観測を行って解を求めている。しかしながら、本実施形態における並列処理プロセッサ1は、複素数で表された状態確率ではなく、状態確率が値を有するか否かを示す確率フラグを用いて演算を行っているので、上記図1に示した量子アルゴリズムと同様に量子フーリエ変換等により解を収束させて求めることはできない。
【0066】
そこで、本実施形態における並列処理プロセッサ1では、インクァエリ命令を用いた観測命令操作を行うことにより解を求める。インクァエリ命令を用いた観測命令操作では、まず、ターゲットキュービットとアンマスク値とを指定してインクァエリ命令を発行する。発行されたインクァエリ命令を受けた並列処理プロセッサ1は、指定されたアンマスク値に対応する状態の中に、確率フラグが“1”である状態が存在するか否かを調べる。
【0067】
その結果に応じて、並列処理プロセッサ1は、制御部2が有するアンサーレジスタ6内の指定されたターゲットキュービットに対応するフィールドに値(“0”または“1”)を書き込む。
上記操作を繰り返し行うことにより、本実施形態における並列処理プロセッサ1は、アンサーレジスタ6に解を記憶し、外部からの要求に応じてインタフェース7を介して出力する。
【0068】
図9は、インクァエリ命令を用いた観測命令操作の具体例を示す図である。図9においては、状態“010”、“100”、“110”および“111”に係る確率フラグが“1”であるとし、解として確率フラグが“1”である状態の値の最小値(“010”)を求める場合を一例として示している。
【0069】
まず、インクァエリ命令にてターゲットキュービットを最上位キュービットに指定するとともに、アンマスク値BMを“0**”(*はDon't care)に指定する。インクァエリ命令を受けた並列処理プロセッサ1は、指定されたアンマスク値BMに対応した状態“000”、“001”、“010”および“011”の中に、確率フラグが“1”である状態が存在するか否かを調べる。その結果、確率フラグが“1”である状態が存在するので、並列処理プロセッサ1は、アンサーレジスタ6内の最上位ビットに“0”を書き込む。
【0070】
次に、インクァエリ命令にてターゲットキュービットを3つの中の真中のキュービットに指定するとともに、上記結果を反映させアンマスク値BMを“00*”に指定する。インクァエリ命令を受けた並列処理プロセッサ1は、アンマスク値BMに対応した状態“000”および“001”に、確率フラグが“1”である状態が存在しないので、アンサーレジスタ6内の真中のビットに“1”を書き込む。
【0071】
続いて、インクァエリ命令にてターゲットキュービットを最下位のキュービットに指定するとともに、アンマスク値BMを“010”に指定する。インクァエリ命令を受けた並列処理プロセッサ1は、アンマスク値BMに対応した状態“010”の確率フラグが“1”であるので、アンサーレジスタ6内の最下位ビットに“0”を書き込む。
以上のようにして、インクァエリ命令を用いた観測命令操作により並列処理プロセッサ1にて例えば最小値等の所望の解を求めることができる。
【0072】
次に、本実施形態における並列処理プロセッサ1にて用いられる命令フォーマットについて説明する。
図10は、命令フォーマットの一例を示す図である。図10において、101は命令を示す命令フィールドであり、102はターゲットキュービットを示すターゲットフィールドである。
【0073】
また、103、104は、制御キュービットに応じて演算を行うか否かを指示するためのコントロールフィールドであり、(コントロール_0,コントロール_1)=(0,0)の場合には、アンサーレジスタ6の値を返す。また、(コントロール_0,コントロール_1)=(0,1)および(1,0)の場合には、それぞれ制御キュービットの値が“1”および“0”の状態について演算を行い、(コントロール_0,コントロール_1)=(1,1)の場合には、制御キュービットの値にかかわらず演算を行う。
【0074】
図11は、プログラム可能な論理素子(FPGA:Field Programmable Gate Array、CPLD:Complex Programmable Logic Device等)を用いて作成した本実施形態における並列処理プロセッサとソフトウェア・シミュレーションとの演算性能を示す図である。
【0075】
図11に示したように、並列処理プロセッサは、1.5Mゲートを有するプログラム可能な論理素子を用いて、プロセッサエレメントと64ビットの記憶容量を有するローカルメモリとをそれぞれ1024個配置し、周波数60MHzのクロック信号で1024個のプロセッサエレメントを並列動作させる。すなわち、当該並列処理プロセッサは、16キュービット相当の演算が可能である。このとき、並列処理プロセッサは、毎秒1.6M回の演算(1.6Moperations/sec)を実行する。
【0076】
一方、動作クロック600MHzであり、512KBのキャッシュメモリを有するCPUを用いたソフトウェア・シミュレーションでは、毎秒0.8K回の演算(0.8Koperations/sec)を実行する。
したがって、本実施形態における並列処理プロセッサの演算性能は、ソフトウェア・シミュレーションの演算性能の2000倍程度の演算性能を有することがわかる。
【0077】
以上、詳しく説明したように本実施形態によれば、Nビット(Nは自然数)で表現可能な論理値の状態について演算を行う際、複数のプロセッサエレメント8がそれぞれ備えるロジック部46にて、論理値の状態確率が0と異なる値を有するか否かを1ビットで示した確率フラグを用い、命令に応じた論理演算を互いに異なる論理値の状態について並列して行う。
【0078】
これにより、複数のビットを用い複素数で表される状態確率についての複素積和演算に相当する演算を、1ビットの確率フラグを用いた簡単な論理演算により行うことができるので、演算機能を損なうことなく、論理演算処理だけで演算を行うことにより演算を高速で実行することができる。
【0079】
また、複数のビットを用いて表していた1つの論理値の状態を、1ビットの確率フラグにより表すことで、プロセッサエレメント等の回路構成が非常に簡素になり、1つの論理値の状態当たりの演算に要する回路面積を大幅に低減することができ、並列処理プロセッサ内での演算の並列度を向上させ、演算規模を容易に大きくすることができる。
【0080】
なお、上述した本実施形態における並列処理プロセッサ1は、ショアの量子アルゴリズムに限らず、その他の量子アルゴリズムについても適用可能であり、例えばデータベース検索に関するグローバー(Grover)の量子アルゴリズムについても適用することができる。
【0081】
また、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0082】
【発明の効果】
以上説明したように、本発明によれば、Nビットで表現可能な論理値の状態について演算を行う際、互いに異なる所定の論理値の状態について複数の演算回路が供給される論理値の状態を示すフラグを用いて論理演算を並列に行う。
これにより、複素積和演算で行っていた論理値の状態についての演算を論理演算で行うことができ、量子コンピュータと同等の演算機能を有しながらも、論理値の状態についての演算を高速で実行することができる。さらに、複数のビットで表されていた論理値の状態をフラグにより表すことで、1つの論理値の状態の演算に要する回路面積を小さくすることができ、演算速度を低下させることなく、演算規模の大規模化を容易に行うことができる。
【図面の簡単な説明】
【図1】量子アルゴリズムを説明するための図である。
【図2】本発明の実施形態による半導体演算装置を適用した並列処理プロセッサの一構成例を示すブロック図である。
【図3】プロセッサエレメントの要素的特徴を示す構成図である。
【図4】プロセッサエレメントの具体的な構成例を示す図である。
【図5】本実施形態における並列処理プロセッサでのパイプライン制御の一例を示す図である。
【図6】論理演算における真理値表を示す図である。
【図7】ロジック部の構成例を示す図である。
【図8】ハイパーキューブネットワークを説明するための概念図である。
【図9】観測命令操作を説明するための図である。
【図10】命令フォーマットの一例を示す図である。
【図11】本実施形態における並列処理プロセッサおよびソフトウェア・シミュレーションのそれぞれの演算性能を示す図である。
【図12】複素数で表された状態の確率振幅を用いて演算を行うプロセッサエレメントの構成を示すブロック図である。
【符号の説明】
1 並列処理プロセッサ
2 制御部
3 命令管理部
4 パイプライン生成部
5 命令キャッシュ
6 アンサーレジスタ
7 インタフェース
-1、8-2、8-3、… プロセッサエレメント(PE)
-1、9-2、9-3、… ローカルメモリ
10 ネットワーク
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a semiconductor arithmetic device, and in particular, 2 that can be expressed by N bits (N is a natural number). N It is suitable for use in a semiconductor arithmetic device that executes operations for all logical values in parallel.
[0002]
[Prior art]
A semiconductor arithmetic device (for example, CPU) provided in a conventional computer or the like performs an operation using a conventional operation method in which an arithmetic process, a conditional branch process, and the like are sequentially executed using one data value (logical value). Unlike the conventionally used calculation methods, quantum computers have been proposed that perform calculations using a new calculation method based on the principle of quantum mechanics.
[0003]
The quantum computer uses a superposition of states based on quantum mechanics configured in units of qubits (quantum bits), and performs operations on the respective states in parallel by performing quantum mechanical operations on the states. Therefore, in theory, the quantum computer can obtain operation results of all possible states simultaneously and instantaneously by performing only one operation for all possible states (data values that can exist as values). it can.
[0004]
Since the quantum computer uses superposition of states based on quantum mechanics, it has been realized in a physical system that can observe phenomena based on quantum mechanics using nuclear magnetic resonance, microwaves, lasers, and the like. Recently, in quantum computers, 2 7 There has been proposed an actual physical system capable of computing up to 7 qubits in which a single state exists simultaneously.
[0005]
[Problems to be solved by the invention]
However, the conventional quantum computer uses an actual physical system capable of observing a phenomenon based on quantum mechanics, so that the apparatus itself is very large and is not practical. Furthermore, the quantum computer needs to perform an operation so that the states change while being correlated with each other, and a phase state that exponentially increases with an increase in the number of qubits is obtained by using one physical system. It becomes difficult to store in the device.
In addition, quantum computers use quantum physical phenomena, and it is difficult to realize a quantum computer as it is using an integrated circuit using physical phenomena based on classical classical electromagnetics.
[0006]
Therefore, the present inventors provide a plurality of processor elements (arithmetic circuits) corresponding to respective states (logical values) superimposed based on quantum mechanics, and connect them so that they can communicate with each other. A parallel processing processor described in Japanese Patent Application No. 2001-279286 that realizes the technology of a quantum computer using an integrated circuit has been proposed. This parallel processing processor performs the calculation simultaneously on the state probabilities of the states corresponding to the plurality of processor elements, and operates the plurality of processor elements in parallel so as to store the obtained calculation results, thereby similar to the quantum computer. Realize arithmetic functions.
[0007]
FIG. 12 is a block diagram showing an outline of a configuration of a processor element included in the parallel processor proposed by the present inventors. In FIG. 12, the first state (target qubit value “0”) and the second state (target qubit) are different only in the value of the target qubit that is focused on as a calculation target and the other qubit values are equal. The processor elements 121 and 126 respectively corresponding to the value “1”) are shown as an example.
[0008]
Here, in the quantum calculation by the quantum computer, the state probability corresponding to the data is expressed using complex numbers including phase information, and the operation performed in the quantum calculation is unitary transformation. That is, in the quantum calculation, a matrix operation using a unitary matrix is performed on the state probability represented by a complex number, so that one processor element has two multipliers and one adder as shown in FIG. Then, multiply and accumulate complex numbers.
[0009]
If the coefficient values of each component of the unitary matrix are U1, U2, U3, and U4, the processor element 121 shown in FIG. 12 multiplies the state probability (| 0>) of the first state and the coefficient value (U1). , And the state probability (| 1>) of the second state and the coefficient value (U2) are multiplied by multipliers 122 and 123, respectively. Further, the outputs of the multipliers 122 and 123 are added by the adder 124, and the calculation result is stored in the register 125 as the state probability (| 0> ′) of the first state after the calculation.
[0010]
Similarly, the processor element 126 multiplies the first state state probability (| 0>) and the coefficient value (U3), and the second state state probability (| 1>) and the coefficient value (U4). Are multiplied by the multipliers 127 and 128, and the outputs of the multipliers 127 and 128 are added by the adder 129, and then stored in the register 130 as the state probability (| 1>') of the second state after the calculation. Is done.
[0011]
However, in the parallel processor configured using the processor elements 121 and 126 shown in FIG. 12, the state probability represented by a complex number has a plurality of bits (for example, 8 bits each) in the real part and the imaginary part. Shown. Therefore, the parallel processing processor requires a great deal of time for the arithmetic processing to perform the complex product-sum operation on the state probability expressed using a plurality of bits, and cannot perform the operation at high speed. There was a problem.
[0012]
Further, the parallel processing processor needs to include two multipliers and one adder corresponding to a plurality of bit operations in each processor element, and a circuit area (circuit scale) for constituting one processor element is required. ) Is large, and the number of processor elements increases exponentially with the increase in the number of qubits. Therefore, there is a problem that it is not easy to increase the operation scale.
[0013]
The present invention has been made in view of such problems, and an object of the present invention is to enable computation to be executed at high speed while having the same computation function as that of a quantum computer. The second object of the present invention is to make it possible to easily increase the scale of the operation and to execute the operation at high speed.
[0014]
[Means for Solving the Problems]
The semiconductor arithmetic device of the present invention is a semiconductor arithmetic device that performs operations in parallel for all logical value states that can be expressed by N bits (N is a natural number) and holds the results of each operation. When performing an operation on a value state, a logic operation is performed using a flag indicating the state of the supplied logical value, and a plurality of operation circuits for holding operation results are provided, and the plurality of operation circuits have different logic values. It is characterized by performing operations in parallel on the state.
[0015]
Another feature of the semiconductor processing device of the present invention is that the flag indicating the logical value state is a flag corresponding to the probability amplitude indicating the logical value state.
Another feature of the semiconductor processing device of the present invention is that the flag indicating the logical value state indicates whether or not the probability amplitude indicating the logical value state is a value different from zero. Features.
[0016]
Another feature of the semiconductor arithmetic device according to the present invention is that the semiconductor arithmetic device further includes a plurality of storage circuits that are provided corresponding to the arithmetic circuits and store the states of a plurality of logical values, and the plurality of storage circuits store the plurality of storage circuits. The states of the plurality of logical values are different from one another for each storage circuit, and the arithmetic circuit can calculate the states of the plurality of logical values stored in the corresponding storage circuit.
Another feature of the semiconductor arithmetic device according to the present invention is that the storage circuit stores a flag indicating the state of the logical value.
[0017]
Another feature of the semiconductor arithmetic device of the present invention is that the plurality of arithmetic circuits are connected so as to communicate with each other via a network.
Another feature of the semiconductor arithmetic device according to the present invention is that the network connects arithmetic circuits that perform an arithmetic operation on a logical value state in which the Hamming distance of the logical value is 1, so that at least communication is possible. And
Another feature of the semiconductor arithmetic device according to the present invention is that the network connects arithmetic circuits that perform an arithmetic operation on a logical value state in which the Hamming distance of the logical value is 1 so that they can communicate with each other in a hypercube form. It is characterized by that.
[0018]
Another feature of the semiconductor arithmetic device according to the present invention is that the semiconductor arithmetic device further includes a register that stores a solution obtained by an observation instruction operation based on an arithmetic result regarding a logical value state.
[0019]
Another feature of the semiconductor arithmetic device according to the present invention is that the arithmetic circuit sequentially performs different processes in parallel when performing arithmetic operations on a plurality of logical value states.
Another feature of the semiconductor arithmetic device according to the present invention is that the arithmetic circuit indicates a flag indicating a state of a predetermined logical value and a state of a logical value that is different from the predetermined logical value only in the value of an operation target bit. A logical operation using a flag is performed.
[0020]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
A parallel processor to which a semiconductor arithmetic device according to an embodiment of the present invention is applied realizes the technology of a quantum computer using an integrated circuit, and performs an operation in the same manner as a known quantum algorithm for performing quantum computation. Is done.
[0021]
First, the quantum algorithm will be described. FIG. 1 is a diagram for explaining the flow of a quantum algorithm, and a quantum algorithm including a Shore algorithm is generally composed of four stages as shown in FIG. FIG. 1 shows an example of 8 qubits, and a solid line extending in the horizontal direction corresponds to each qubit Q1 to Q8.
Hereinafter, each stage will be described.
[0022]
In the first stage (Stage 1), Walsh-Hadamard Transformation (hereinafter referred to as “WH transformation”) S1. -1 , S1 -2 , S1 -3 , S1 -Four ,... Are used to distribute the probability to a predetermined state. Thereby, in the first stage, a probability equal to a predetermined state is assigned, and an initial state of superposition of states based on quantum mechanics is generated.
[0023]
In the second stage (Stage 2), knot (NOT) conversion (control NOT operation) S2 -1 , S2 -2 , S2 -3 ,... Are used to exchange the probabilities assigned in the first stage between the states. This probability exchange operation in the second stage corresponds to an addition operation or a multiplication operation in a conventional computer equipped with a CPU or the like.
[0024]
In FIG. 1, for example, the knot transformation S2 -1 Indicates that the control queue bit is Q3 and the target queue bit is Q8. At this time, if the value of the control qubit Q3 is “1”, only the value of the target qubit Q8 is different, and the probability is exchanged between the states of the other qubits having the same value. On the other hand, if the value of the control qubit Q3 is “0”, the value is held without performing the probability exchange. Knot conversion S2 -2 , S2 -3 The same applies to.
[0025]
In the third stage (Stage 3), WH conversion S3 -1 , S3 -3 , ... and phase shift conversion S3 -2 , S3 -Four The solution is converged to one point by interference using quantum Fourier transformation (hereinafter referred to as “QFT”). Further, in the fourth stage (Stage 4), a solution is obtained by performing observation S4.
[0026]
The knot transformation S2 described above -1 Similarly to, for example, phase shift conversion S3 -2 Indicates that the control queue bit is Q8 and the target queue bit is Q7. Phase shift conversion S3 -2 If the value of the control qubit Q8 is “1”, phase rotation is performed with respect to the target qubit Q7, and if the value of the control qubit Q8 is “0”, the value is held. Phase shift conversion S3 -Four The same applies to.
[0027]
In the quantum algorithm as shown in FIG. 1 above, the present inventors have a first stage for distributing a probability to a predetermined state by WH conversion, and between states according to the value of the control qubit, etc. Until the end of the second stage for exchanging probabilities, it was found that the state probability (probability amplitude) of each state was only one of 0 or the value p (0 <p ≦ 1). . That is, in the first and second stages of the quantum algorithm, whether or not the value has a value (the value is 0 or p) without using the state probability value itself indicated by a plurality of bits. It has been found that an equivalent calculation can be performed without losing the amount of information (without changing the amount of information).
[0028]
Therefore, the parallel processing processor according to the present embodiment uses a probability flag that indicates whether or not the state probability of each state has a value for all logical value states that can be expressed by N (N is a natural number) bits. Further, an operation corresponding to unitary conversion is executed by a logic operation. As a result, the parallel processing processor according to the present embodiment realizes an arithmetic function equivalent to that of the quantum computer with a simple configuration while simplifying the configuration of the processor element, and reduces the circuit area required for the processor element. It is possible to reduce the parallelism of operations and the amount of operations per unit gate.
[0029]
FIG. 2 is a block diagram illustrating a configuration example of the parallel processing processor 1 in the present embodiment.
In FIG. 2, the control unit 2 includes an instruction management unit 3 and a pipeline generation unit 4, and includes a plurality of processor elements 8. -n Each functional unit in the parallel processor 1 such as (n is a subscript and n = 1, 2, 3,...) Is controlled. The interface 7 is used to exchange commands and data between the parallel processing processor 1 and external devices (external circuits) connected to the outside.
[0030]
The instruction management unit 3 outputs an instruction supplied from an external device via the interface 7 to the pipeline generation unit 4 and outputs a solution obtained by an observation instruction operation described later to the external device via the interface 7. Or The instruction management unit 3 includes an instruction cache 5 for temporarily storing instructions supplied from an external device, and an answer register 6 for storing solutions obtained by observation instruction operations.
[0031]
The pipeline generation unit 4 is based on the instruction supplied from the instruction management unit 3 to each processor element 8. -n Control instructions are output to the plurality of processor elements 8 respectively. -n Control to perform pipeline operations in parallel.
[0032]
Processor element 8 -n Performs a calculation on a predetermined state in a state of being overlapped based on quantum mechanics in accordance with a control instruction supplied from the pipeline generation unit 4. Processor element 8 -n Is a local memory 9 for storing the state probabilities of a plurality of states. -n (N is a subscript and n = 1, 2, 3,...). That is, the processor element 8 of the present embodiment -n Each of these is associated with a plurality of states in a superposed state based on quantum mechanics.
[0033]
Each processor element 8 -n The state associated with each of the plurality of processor elements 8 -n And any state (logical value) corresponding to the number of qubits that can be calculated by the parallel processor 1 is any processor element 8. -n Is associated with. In the present embodiment, the state probability of each state is indicated by using a 1-bit probability flag. -n Processor element 8 -n It suffices to have a storage capacity equal to the number of bits equal to the number of states associated with.
Processor element 8 -n Are connected to each other via the network 10 so that they can communicate with each other.
[0034]
Next, the processor element (PE) in this embodiment will be described in detail.
FIG. 3 is a configuration diagram showing elemental features of the processor element in the present embodiment. In FIG. 3, the processor element 31 corresponding to the first state where the value of the target qubit is “0”, and the processor element 34 corresponding to the second state where the value of the target qubit is “1”; Is shown as an example. In the first and second states, the values of the qubits excluding the target qubit are equal.
[0035]
In FIG. 3, the processor element 31 includes a logic unit 32 that performs a logical operation and a register 33 that stores an operation result by the logic unit 32. The logic unit 32 receives the probability flag PA0 related to the first state and the probability flag PA1 related to the second state, and performs a predetermined logical operation using the probability flags PA0 and PA1. Further, the logic unit 32 outputs the calculation result to the register 33 as the probability flag PB0 related to the first state after the calculation. The register 33 stores a probability flag PB0 input from the logic unit 32.
[0036]
Similarly, the processor element 34 includes a logic unit 35 that performs a logical operation and a register 36 that stores the operation result. The logic unit 35 receives the probability flags PA0 and PA1 related to the first and second states, performs a predetermined logical operation, and then stores the operation result as the probability flag PB1 related to the second state after the operation. Output to. The register 36 stores a probability flag PB1 input from the logic unit 35.
[0037]
FIG. 4 is a block diagram illustrating a specific configuration example of the processor element in the present embodiment. The processor element shown in FIG. 4 has a six-stage pipeline structure in order to increase the speed of arithmetic processing and reduce the circuit area.
In FIG. 4, 8 is a processor element, 9 is a local memory, and the processor element 8 shown in FIG. -n , Local memory 9 -n Correspond to each.
[0038]
The processor element 8 includes six registers 41 to 45 and 47 and a logic unit 46.
The registers 41, 42, and 43 are connected in series in the order of the registers 41, 42, and 43 between the output terminal of the local memory 9 and the first input terminal of the logic unit 46, and the registers 41, 42, and 43 are input Are stored temporarily and output to the registers 42 and 43 and the logic unit 46 connected to the next stage, respectively. That is, the probability flag read from a predetermined storage area of the local memory 9 is sequentially transmitted by the registers 41, 42, 43 and input to the logic unit 46. The register 41 outputs the stored probability flag to a register corresponding to the register 44 shown in FIG. 4 in the other processor element.
[0039]
The registers 44 and 45 are connected in series to the second input terminal of the logic unit 46, and the registers 44 and 45 temporarily store the input probability flags, and the registers 45 and 45 connected to the next stage Each is output to the logic unit 46. That is, the probability flags supplied from the registers corresponding to the register 41 shown in FIG. 4 in the other processor elements are sequentially transmitted by the registers 44 and 45 and input to the logic unit 46.
[0040]
The logic unit 46 has a register 47, and uses probability flags input from the registers 43 and 45 via the first and second input terminals in accordance with the control instructions supplied from the pipeline generation unit 4, respectively. Perform the logical operation. The logic unit 46 temporarily stores the result of the logical operation in the register 47 and then writes it in the predetermined storage area of the local memory 9. Note that the register 47 may be provided outside the logic unit 46.
[0041]
The local memory 9 is for storing probability flags of a plurality of states associated with the processor element 8. By providing the local memory 9 in this way and associating a plurality of states with one processor element 8, it is possible to effectively utilize the processor element 8 rather than assign one state to one processor element. The circuit area of the processor element required for the processing can be reduced.
[0042]
Here, since the probability flag related to one state is 1 bit, the local memory 9 only needs to have at least a storage area having the same number of bits as the number of associated states. For example, the number of states is 6 In the case of 64 corresponding to qubits, the local memory 9 may have at least a 64-bit storage area. Similarly, the registers 41 to 45 and 47 only need to store at least 1-bit information.
[0043]
In the processor element 8 shown in FIG. 4, the registers 41 to 45 and 47 operate in synchronization with a predetermined timing signal such as a clock signal, and 6-stage pipeline processing is performed as will be described later.
FIG. 5 is a diagram illustrating an example of pipeline control in the parallel processor according to the present embodiment. In FIG. 5, CLK is a timing signal such as a clock signal used for pipeline processing, and time advances from the top to the bottom in FIG.
[0044]
Pipeline control is performed based on a control instruction supplied from the pipeline generation unit 4 to each processor element.
First, the pipeline generation unit 4 supplies an address of the local memory 9 in which a probability flag in a predetermined state is stored, and instructs the processor element 8 to read the probability flag from the local memory 9 (read address). The probability flag read from the local memory 9 is stored in the register 41 shown in FIG.
[0045]
The pipeline generation unit 4 controls the network 10 so that a probability flag output from the register 41 to another processor element is supplied to a desired processor element (send switch). As a result, the probability flag read from the local memory 9 associated with itself is stored in the register 42, and the probability flag supplied from another processor element is stored in the register 44.
[0046]
Next, the pipeline generation unit 4 instructs the processor element 8 on a target qubit to be noted as a calculation target (target). At this time, the probability flags used for the calculation are transmitted to the registers 43 and 45, respectively. Thereafter, the pipeline generation unit 4 instructs the processor element 8 to perform a logic operation on the probability flag (operation control), the logic unit 46 performs the operation, and a new probability flag as the operation result is stored in the register 47. The
[0047]
Next, the pipeline generation unit 4 notifies the address and write permission of the local memory 9 for storing the probability flag obtained as a result of the operation, and writes the probability flag to the local memory 9 to the processor element 8. Instruct (write address, write enable).
[0048]
As described above, each processor element 8 reads out a probability flag in a predetermined state from the local memory 9 and performs an operation, and writes the calculated probability flag back to the local memory 9. In the above description, the process flow for one state is described separately for each process. However, each process is sequentially executed in the same manner as in normal pipeline control, and different states are described. Needless to say, the process is executed.
[0049]
Next, logical operations executed by the processor element 8 in this embodiment will be described. As described above, the logic unit 46 performs logical operations corresponding to the first and second stages in the quantum algorithm shown in FIG. 1, that is, the WH conversion and the NOT (NOT) conversion, respectively.
[0050]
FIG. 6 is a diagram showing a truth table of logic operations executed by the logic unit 46.
In FIG. 6, the flag value “0” of the probability flag indicates that the state probability amplitude value is 0, and the flag value “1” indicates that the state probability amplitude value is p. .
[0051]
In FIG. 6, “| 0>” indicates a state in which the values of the other qubits excluding the target qubit are the same before conversion (before the logical operation) and the value of the target qubit is “0”. The state where the value of the target qubit is “1” is indicated by “| 1>”. Note that the states after conversion of the states | 0> and | 1> are indicated by “| 0> ′” and “| 1> ′”, respectively.
[0052]
As shown in FIG. 6, in the knot conversion, the flag values of the converted state | 0>'and state | 1>' obtained as the calculation results are the flags of the state | 1> and the state | 0> before the conversion, respectively. Value. Therefore, the logical operation corresponding to the knot transformation performed in the logic unit 46 is an operation for switching the flag values of the state | 0> and the state | 1>.
[0053]
The calculation may be executed by selecting a probability flag related to a state in which the value of the target qubit is different when the knot transformation is instructed, or flag values of the state | 0> and the state | 1> May be simply connected to signal lines for outputting flag values of state | 1>'and state | 0>', respectively.
[0054]
In the WH conversion shown in FIG. 6, the flag value of the state | 0> ′ after the conversion becomes “1” because the flag values of the state | 0> and the state | 1> before the conversion are ( | 0> flag value, | 1> flag value) = (0, 1), (1, 0), (1, 1). Therefore, the logical operation corresponding to the WH conversion performed in the logic unit 46 for the state | 0> ′ is a logical sum (OR) operation using the flag values of the state | 0> and the state | 1>. In the calculation, as shown in FIG. 7A, the flag values of the state | 0> and the state | 1> are input into the logic unit 46, and the calculation result is output as the flag value of the state | 0>'. This is realized by providing an OR operation circuit 71.
[0055]
Similarly, in the WH conversion, the flag value of the state | 1> ′ after the conversion becomes “1” because the flag values of the state | 0> and the state | 1> before the conversion are (| 0> Flag value, flag value of | 1>) = (0, 1), (1, 0). Therefore, the logical operation corresponding to the WH conversion performed in the logic unit 46 for the state | 1> ′ is an exclusive OR (EX (exclusive)) using the flag values of the state | 0> and the state | 1>. -OR) operation. In the calculation, as shown in FIG. 7B, the flag value of the state | 0> and the state | 1> is input into the logic unit 46, and the calculation result is output as the flag value of the state | 1>'. This is realized by providing the EXOR operation circuit 72.
[0056]
Next, the network 10 will be described.
The network 10 in this embodiment includes each processor element 8. -n Is another processor element 8 -n , Each processor element 8 can be supplied with a probability flag related to the state used in the logical operation. -n May be connected so that they can communicate with each other. For example, the network 10 can be appropriately constructed by applying a hypercube network whose conceptual diagram is shown in FIG. 8 to the network 10.
[0057]
FIG. 8 is a conceptual diagram for explaining a hypercube network applicable to the network 10, and FIG. 8 shows a case of 3 qubits as an example for easy understanding of the explanation. As shown in FIG. 8, it is assumed that the vertices 80 to 87 of the hexahedron correspond to states “000” to “111” (binary logical values), respectively.
[0058]
Here, as described above, the processor element 8 -n The calculation according to is performed using probability flags relating to states in which only the value of the target qubit is different. That is, the processor element 8 -n In the logical operation according to, a probability flag relating to a logical value state in which the Hamming distance is “1” with respect to a logical value indicating the state to be calculated is used.
[0059]
For example, in the calculation for the state “000”, any one of the probability flags of the states “001”, “010”, and “100” is used, so that in FIG. 8, the vertex 80 and the vertices 81, 82, and 84 are Each side is connected to a communication line. That is, the network 10 can communicate the processor element corresponding to the state “000” and the processor elements corresponding to the states “001”, “010”, and “100” via the communication lines NW1, NW2, and NW3. Connect like this.
[0060]
As for the processor elements corresponding to other states, the processor elements corresponding to the logical value states whose Hamming distance is “1” can be communicated with the logical values indicating the states to be operated in the same manner as described above. By connecting in such a manner, the network 10 to which the hypercube network is applied can be constructed.
[0061]
Next, the operation of the parallel processor 1 in this embodiment will be described in correspondence with the quantum algorithm shown in FIG.
In the following description, for convenience of explanation, the number of qubits is 8 (Q1 to Q8), the least significant qubit is Q1, and the most significant qubit is Q8. In addition, as the initial state of the parallel processor 1, only the probability flag related to the state “00000000” in which the values of all the qubits Q1 to Q8 are “0” is “1”, and the probability flags related to other states are It is assumed that it is “0”.
[0062]
First, when receiving an instruction corresponding to the WH conversion in the first stage shown in FIG. 1 from the external device via the interface 7, the parallel processing processor 1 receives the control unit 2 (the instruction management unit 3 and the pipe). Each processor element 8 performs a logical operation corresponding to the WH conversion and distributes the probability to a predetermined state by the line generator 4). -n A control instruction is output to
[0063]
For example, when an instruction corresponding to WH conversion in which the target qubit is qubit Q1 is received, each processor element 8 -n The logic section 46 performs a logical operation corresponding to the WH conversion, and the flag values of the states “00000000” and “00000001” become “1”. Further, when an instruction corresponding to the WH conversion in which the target queue bit is the queue bit Q2 is received, the flag values of the states “00000000”, “00000010”, “00000001”, and “00000011” are set to “ 1 ”.
In this way, the parallel processor 1 executes a logical operation corresponding to the WH conversion and distributes the probability to a predetermined state.
[0064]
Next, upon receiving an instruction corresponding to the knot transformation in the second stage from the external device via the interface 7, the control unit 2 in the parallel processor 1 performs a logical operation corresponding to the knot transformation. Each processor element 8 -n A control instruction is output to As a result, each processor element 8 -n The logic unit 46 performs a logical operation corresponding to knot transformation, and exchanges probability flag values between predetermined states.
As described above, operations corresponding to the first and second stages in the quantum algorithm shown in FIG.
[0065]
Here, in the quantum algorithm shown in FIG. 1, the solution is converged by applying a quantum Fourier transform or the like to the operation result up to the second stage in the third stage, and observed in the fourth stage. To find a solution. However, since the parallel processor 1 in this embodiment performs an operation using a probability flag indicating whether or not the state probability has a value, not the state probability represented by a complex number, it is shown in FIG. Like the quantum algorithm, the solution cannot be obtained by converging the solution by quantum Fourier transform or the like.
[0066]
Therefore, in the parallel processor 1 in the present embodiment, a solution is obtained by performing an observation instruction operation using an inquiry instruction. In the observation instruction operation using the inquiry instruction, first, the inquiry instruction is issued by designating the target qubit and the unmask value. The parallel processor 1 that has received the issued inquiry instruction checks whether there is a state having the probability flag “1” in the state corresponding to the designated unmask value.
[0067]
In accordance with the result, the parallel processor 1 writes a value (“0” or “1”) in the field corresponding to the designated target qubit in the answer register 6 of the control unit 2.
By repeatedly performing the above operation, the parallel processor 1 in the present embodiment stores the solution in the answer register 6 and outputs it via the interface 7 in response to a request from the outside.
[0068]
FIG. 9 is a diagram showing a specific example of the observation command operation using the inquiry command. In FIG. 9, it is assumed that the probability flags relating to the states “010”, “100”, “110” and “111” are “1”, and the minimum value of the values in the state where the probability flag is “1” as a solution ( The case of obtaining “010”) is shown as an example.
[0069]
First, the target qubit is designated as the most significant qubit by the inquiry instruction, and the unmask value BM is designated as “0 **” (* is Don't care). The parallel processor 1 that has received the inquiry command has a state in which the probability flag is “1” among the states “000”, “001”, “010”, and “011” corresponding to the specified unmask value BM. Check if it exists. As a result, since there is a state where the probability flag is “1”, the parallel processing processor 1 writes “0” in the most significant bit in the answer register 6.
[0070]
Next, the target qubit is designated as the middle qubit among the three by the inquiry instruction, and the unmask value BM is designated as “00 *” reflecting the above result. The parallel processor 1 that has received the inquiry instruction does not have a state in which the probability flag is “1” in the states “000” and “001” corresponding to the unmask value BM. Write “1”.
[0071]
Subsequently, the target qubit is designated as the least significant qubit by the inquiry instruction, and the unmask value BM is designated as “010”. The parallel processor 1 that has received the inquiry command writes “0” to the least significant bit in the answer register 6 because the probability flag of the state “010” corresponding to the unmask value BM is “1”.
As described above, a desired solution such as a minimum value can be obtained by the parallel processing processor 1 by the observation instruction operation using the inquiry instruction.
[0072]
Next, an instruction format used in the parallel processor 1 in this embodiment will be described.
FIG. 10 is a diagram illustrating an example of an instruction format. In FIG. 10, 101 is an instruction field indicating an instruction, and 102 is a target field indicating a target queue bit.
[0073]
Reference numerals 103 and 104 denote control fields for instructing whether or not to perform an operation in accordance with the control qubit. When (control_0, control_1) = (0, 0), the answer register 6 Returns the value of. When (control_0, control_1) = (0, 1) and (1, 0), the calculation is performed for the state where the value of the control queue bit is “1” and “0”, respectively (control_0 , Control_1) = (1, 1), the calculation is performed regardless of the value of the control qubit.
[0074]
FIG. 11 is a diagram showing the calculation performance of the parallel processing processor and software simulation created in this embodiment using programmable logic elements (FPGA: Field Programmable Gate Array, CPLD: Complex Programmable Logic Device, etc.). .
[0075]
As shown in FIG. 11, the parallel processor uses 1024 programmable elements having 1.5M gates to arrange 1024 processor elements and local memories each having a 64-bit storage capacity, and has a frequency of 60 MHz. 1024 processor elements are operated in parallel with the clock signal. That is, the parallel processor can perform an operation equivalent to 16 qubits. At this time, the parallel processor executes 1.6 M operations / second (1.6 M operations / sec).
[0076]
On the other hand, in a software simulation using a CPU having an operation clock of 600 MHz and a 512 KB cache memory, 0.8K operations / second (0.8K operations / sec) are executed.
Therefore, it can be seen that the computing performance of the parallel processor in the present embodiment is about 2000 times that of software simulation.
[0077]
As described above in detail, according to the present embodiment, when a calculation is performed on a logical value state that can be expressed by N bits (N is a natural number), the logic unit 46 provided in each of the plurality of processor elements 8 performs logic processing. Using a probability flag indicating by 1 bit whether or not the state probability of the value has a value different from 0, a logical operation according to the instruction is performed in parallel for different logical value states.
[0078]
As a result, an operation equivalent to a complex product-sum operation on a state probability represented by a complex number using a plurality of bits can be performed by a simple logical operation using a 1-bit probability flag, thus impairing the operation function. In addition, the operation can be executed at high speed by performing the operation only by the logical operation processing.
[0079]
Also, by expressing the state of one logical value represented by using a plurality of bits by a 1-bit probability flag, the circuit configuration of the processor element and the like becomes very simple, and the state per state of one logical value is reduced. The circuit area required for computation can be greatly reduced, the degree of parallelism of computation within the parallel processing processor can be improved, and the scale of computation can be easily increased.
[0080]
Note that the parallel processor 1 in the present embodiment described above is not limited to the Shore quantum algorithm, but can be applied to other quantum algorithms. For example, the parallel processor 1 can also be applied to a Grover quantum algorithm related to database search. it can.
[0081]
In addition, each of the above-described embodiments is merely an example of implementation in carrying out the present invention, and the technical scope of the present invention should not be construed as being limited thereto. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.
[0082]
【The invention's effect】
As described above, according to the present invention, when performing an operation on a logical value state that can be expressed by N bits, the logical value states to which a plurality of arithmetic circuits are supplied for different predetermined logical value states are determined. Perform logical operations in parallel using the flags shown.
As a result, it is possible to perform an arithmetic operation on a logical value state, which has been performed by a complex product-sum operation, by a logical operation. Can be executed. Furthermore, by representing the state of the logical value represented by a plurality of bits with a flag, the circuit area required for computation of one logical value state can be reduced, and the computation scale can be reduced without reducing the computation speed. Can be easily scaled up.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining a quantum algorithm;
FIG. 2 is a block diagram showing a configuration example of a parallel processing processor to which the semiconductor arithmetic device according to the embodiment of the present invention is applied.
FIG. 3 is a block diagram showing elemental features of a processor element.
FIG. 4 is a diagram illustrating a specific configuration example of a processor element.
FIG. 5 is a diagram illustrating an example of pipeline control in the parallel processing processor according to the present embodiment.
FIG. 6 is a diagram showing a truth table in a logical operation.
FIG. 7 is a diagram illustrating a configuration example of a logic unit.
FIG. 8 is a conceptual diagram for explaining a hypercube network.
FIG. 9 is a diagram for explaining an observation command operation;
FIG. 10 is a diagram illustrating an example of an instruction format.
FIG. 11 is a diagram showing the calculation performance of each of the parallel processing processor and software simulation in the present embodiment.
FIG. 12 is a block diagram illustrating a configuration of a processor element that performs an operation using a probability amplitude in a state represented by a complex number.
[Explanation of symbols]
1 Parallel processor
2 Control unit
3 Instruction Management Department
4 Pipeline generator
5 Instruction cache
6 Answer Register
7 Interface
8 -1 , 8 -2 , 8 -3 ... Processor element (PE)
9 -1 , 9 -2 , 9 -3 , ... local memory
10 network

Claims (11)

Nビット(Nは自然数)で表現可能なすべての論理値の状態について演算を並列して行い、それぞれの演算結果を保持する半導体演算装置であって、
所定の上記論理値の状態について演算を行う際、供給される論理値の状態を示すフラグを用いて論理演算を行い、演算結果を保持する複数の演算回路を備え、
上記複数の演算回路は、互いに異なる論理値の状態について演算を並列して行うことを特徴とする半導体演算装置。
A semiconductor arithmetic device that performs operations in parallel for all logical value states that can be expressed by N bits (N is a natural number) and holds the results of each operation,
When performing an operation on a predetermined state of the logical value, a logical operation is performed using a flag indicating the state of the supplied logical value, and a plurality of operation circuits that hold the operation result are provided.
The semiconductor arithmetic device, wherein the plurality of arithmetic circuits perform arithmetic operations in parallel on states of different logical values.
上記論理値の状態を示すフラグは、上記論理値の状態を示す確率振幅に応じたフラグであることを特徴とする請求項1に記載の半導体演算装置。2. The semiconductor computing device according to claim 1, wherein the flag indicating the logical value state is a flag corresponding to a probability amplitude indicating the logical value state. 上記論理値の状態を示すフラグは、上記論理値の状態を示す確率振幅が0とは異なる値であるか否かを1ビットで示すことを特徴とする請求項1に記載の半導体演算装置。2. The semiconductor arithmetic device according to claim 1, wherein the flag indicating the logical value state indicates by 1 bit whether or not the probability amplitude indicating the logical value state is a value different from zero. 上記演算回路にそれぞれ対応して設けられた、複数の上記論理値の状態を記憶する複数の記憶回路をさらに備え、
上記複数の記憶回路が記憶する上記複数の論理値の状態は、上記記憶回路毎に互いに異なり、
上記演算回路は、対応する上記記憶回路に記憶された上記複数の論理値の状態について演算可能であることを特徴とする請求項1〜3の何れか1項に記載の半導体演算装置。
A plurality of storage circuits for storing the states of the plurality of logical values provided corresponding to the arithmetic circuits, respectively;
The states of the plurality of logical values stored in the plurality of storage circuits are different from each other for each of the storage circuits,
4. The semiconductor arithmetic device according to claim 1, wherein the arithmetic circuit is capable of calculating the states of the plurality of logical values stored in the corresponding storage circuit. 5.
上記記憶回路は、上記論理値の状態を示すフラグを記憶することを特徴とする請求項4に記載の半導体演算装置。5. The semiconductor arithmetic device according to claim 4, wherein the storage circuit stores a flag indicating the state of the logical value. 上記複数の演算回路は、ネットワークを介して互いに通信可能なように接続されていることを特徴とする請求項1〜5の何れか1項に記載の半導体演算装置。The semiconductor arithmetic device according to claim 1, wherein the plurality of arithmetic circuits are connected so as to communicate with each other via a network. 上記ネットワークは、論理値のハミング距離が1である論理値の状態について演算を行う演算回路を少なくとも互いに通信可能なように接続することを特徴とする請求項6に記載の半導体演算装置。7. The semiconductor arithmetic device according to claim 6, wherein the network connects arithmetic circuits that perform arithmetic operations on a logical value state having a logical Hamming distance of 1 so as to be able to communicate with each other. 上記ネットワークは、論理値のハミング距離が1である論理値の状態について演算を行う演算回路をハイパーキューブ状に互いに通信可能なように接続することを特徴とする請求項6に記載の半導体演算装置。7. The semiconductor arithmetic device according to claim 6, wherein said network connects arithmetic circuits for performing arithmetic operations on a logical value state having a logical Hamming distance of 1 so as to communicate with each other in a hypercube form. . 上記論理値の状態についての演算結果に基づいて、観測命令操作により得られる解を記憶するレジスタをさらに備えることを特徴とする請求項1〜8の何れか1項に記載の半導体演算装置。9. The semiconductor arithmetic device according to claim 1, further comprising a register that stores a solution obtained by an observation instruction operation based on an arithmetic result regarding the state of the logical value. 10. 上記演算回路は、複数の論理値の状態について演算を行う際、演算における互いに異なる処理を順次並列に行うことを特徴とする請求項1〜9の何れか1項に記載の半導体演算装置。  The semiconductor arithmetic device according to claim 1, wherein the arithmetic circuit sequentially performs different processes in the arithmetic operation in parallel when performing arithmetic operations on a plurality of logical value states. 上記演算回路は、上記所定の論理値の状態を示すフラグと、上記所定の論理値とは演算対象ビットの値だけが異なる論理値の状態を示すフラグとを用いた論理演算を行うことを特徴とする請求項1〜10の何れか1項に記載の半導体演算装置。The arithmetic circuit performs a logical operation using a flag indicating the state of the predetermined logical value and a flag indicating a state of a logical value that is different from the predetermined logical value only in the value of an operation target bit. The semiconductor arithmetic device according to claim 1.
JP2002280775A 2002-09-26 2002-09-26 Semiconductor computing device Expired - Fee Related JP3708072B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002280775A JP3708072B2 (en) 2002-09-26 2002-09-26 Semiconductor computing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002280775A JP3708072B2 (en) 2002-09-26 2002-09-26 Semiconductor computing device

Publications (2)

Publication Number Publication Date
JP2004118512A JP2004118512A (en) 2004-04-15
JP3708072B2 true JP3708072B2 (en) 2005-10-19

Family

ID=32275391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002280775A Expired - Fee Related JP3708072B2 (en) 2002-09-26 2002-09-26 Semiconductor computing device

Country Status (1)

Country Link
JP (1) JP3708072B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102658003B1 (en) * 2019-11-27 2024-04-17 한양대학교 에리카산학협력단 Quantum adder and method of adding with improved efficiency

Also Published As

Publication number Publication date
JP2004118512A (en) 2004-04-15

Similar Documents

Publication Publication Date Title
US6490672B1 (en) Method for computing a fast fourier transform and associated circuit for addressing a data memory
US5682544A (en) Massively parallel diagonal-fold tree array processor
TWI230869B (en) SIMD processor with scalar arithmetic logic units
CN108170640B (en) Neural network operation device and operation method using same
CN112070222B (en) Processing device, accelerator and method for federal learning
KR20060056855A (en) Processor
CN112114776A (en) Quantum multiplication method and device, electronic device and storage medium
US20220255721A1 (en) Acceleration unit and related apparatus and method
EP1560110A1 (en) Multiple-word multiplication-accumulation circuit and Montgomery modular multiplication-accumulation circuit
CN113330466A (en) Systems and methods involving aspects and/or other features of hybrid quantum machines, quantum information techniques
Huang et al. Garbled circuits in the cloud using fpga enabled nodes
Gealow et al. System design for pixel-parallel image processing
JPH08329261A (en) Parameteric curve generator
US11165428B1 (en) Circuits and methods for updating lookup tables
JP7435602B2 (en) Computing equipment and computing systems
JP3708072B2 (en) Semiconductor computing device
Sutradhar et al. An ultra-efficient look-up table based programmable processing in memory architecture for data encryption
US20220255757A1 (en) Digital signature verification engine for reconfigurable circuit devices
Oxman et al. Computational methods for Conway's Game of Life cellular automaton
Yu et al. A fpga-based heterogeneous implementation of ntruencrypt
JP3617007B2 (en) Semiconductor computing device
JP3839002B2 (en) Semiconductor computing device
Wang et al. SAM: A Scalable Accelerator for Number Theoretic Transform Using Multi-Dimensional Decomposition
Latifi Simulation of PM21 network by folded hypercube
US11983606B2 (en) Method and device for constructing quantum circuit of QRAM architecture, and method and device for parsing quantum address data

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20031215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050401

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050802

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees