JP3542342B2 - 半導体演算装置 - Google Patents
半導体演算装置 Download PDFInfo
- Publication number
- JP3542342B2 JP3542342B2 JP2001279286A JP2001279286A JP3542342B2 JP 3542342 B2 JP3542342 B2 JP 3542342B2 JP 2001279286 A JP2001279286 A JP 2001279286A JP 2001279286 A JP2001279286 A JP 2001279286A JP 3542342 B2 JP3542342 B2 JP 3542342B2
- Authority
- JP
- Japan
- Prior art keywords
- qubit
- arithmetic
- semiconductor
- state
- circuit
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B82—NANOTECHNOLOGY
- B82Y—SPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
- B82Y10/00—Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S977/00—Nanotechnology
- Y10S977/902—Specified use of nanostructure
- Y10S977/932—Specified use of nanostructure for electronic or optoelectronic application
- Y10S977/933—Spintronics or quantum computing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Nanotechnology (AREA)
- Chemical & Material Sciences (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Crystallography & Structural Chemistry (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Complex Calculations (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、半導体演算装置に関し、特に、半導体演算装置にて演算可能なビット数により表現されるすべての論理値での演算を同時に実行する半導体演算装置に用いて好適なものである。
【0002】
【従来の技術】
集積回路における集積密度(集積可能な素子数(トランジスタ数))は、約1.5年で2倍になるという「ムーアの法則」に従い、指数関数的に増大している。この集積密度の向上に伴い、従来の技術では、1つの半導体チップ(以下、単に「チップ」と称す。)上に集積することが不可能であると思われた多数の回路素子からなる回路を、1つのチップ上に集積することができるようになってきた。
【0003】
例えば、プロセッサ等の半導体演算装置の集積回路では、1つのチップ上に集積可能な回路素子数が増加するのに伴って演算処理量が増大し、大規模な演算を実行することができるようになってきた。また、例えば、所定の機能を有する回路がそれぞれ集積された複数のチップにより構成されていたシステムの機能を、当該システム全体の機能を実現するための多数の回路素子を1つのチップ上に集積したシステム・オン・チップ(SOC:System On a Chip)と呼ばれる集積回路も実用化されるようになってきた。
【0004】
また、従来、集積回路における集積密度が低いときには、集積回路を構成するトランジスタにおいて必要でないトランジスタを省略して、1つのチップ上に集積することができるように集積回路のトランジスタ数を削減しなければならなかった。しかし、近年の集積密度の向上に伴い、1つのチップ上に集積可能なトランジスタ数が増加してきたことにより、必要でないトランジスタを省略したりする作業の必要性は低下してきた。
【0005】
【発明が解決しようとする課題】
しかしながら、上述したように集積回路における集積密度が向上し、さらに必要でないトランジスタを省略したりする作業の必要性は低下してきたが、1つのチップ上に形成する集積回路のデザイン効率(集積回路の設計に要する時間および労力)については、集積密度の向上と同等には向上していなかった。
【0006】
つまり、製造技術の進歩による集積回路における集積密度の向上に伴い、多数のトランジスタのチップ上での配置、配線等のレイアウト(デザイン)を行う設計に非常に多大な時間および労力を要していた。その結果、集積回路の設計に要する時間および労力も、集積密度と同様に増大してしまうという問題があった。
【0007】
また、集積回路における集積密度の向上に伴い、CPU等の半導体演算装置の集積回路では、大規模な演算を実行することができるようになってきたが、1つのデータ値を用いて演算処理、条件・分岐処理等を逐次実行する従来から利用されている演算方式(アルゴリズム)を用いているため、演算の規模に応じて演算時間が増大してしまい、大規模な演算を高速で実行することができないという問題があった。
【0008】
本発明は、このような問題を解決するためになされたものであり、大規模な演算を行うための集積回路の設計に要する時間および労力を増大させることなく、大規模な演算を高速で実行することができるようにすることを目的とする。
【0009】
【課題を解決するための手段】
本発明の半導体演算装置は、(N+1)ビット(Nは自然数)で表現可能なすべての論理値の状態について演算を同時に行い、それぞれの演算結果を保持する半導体演算装置であって、複数の演算回路をそれぞれ有し、Nビットで表現可能なすべての論理値の状態について演算を同時にそれぞれ行い、演算結果を保持する2つのNキュービット演算回路群と、上記2つのNキュービット演算回路群の間で論理値の状態を授受するための第Nキュービット目のスイッチ回路とを備えることを特徴とする。
【0010】
本発明の半導体演算装置の他の特徴とするところは、Nキュービット演算回路群は、2N個の演算回路を有し、上記演算回路は、Nビットで表現可能なすべての論理値の状態の互いに異なる何れか1つの状態についてそれぞれ演算を行い、演算結果を保持することを特徴とする。
【0011】
本発明の半導体演算装置のその他の特徴とするところは、2つのNキュービット演算回路群は、それぞれ第(N−1)キュービット目のスイッチ回路を備え、上記2つのNキュービット演算回路群の一方の上記第(N−1)キュービット目のスイッチ回路は、さらに上記Nキュービット演算回路群の他方と論理値の状態を授受可能であることを特徴とする。
【0012】
本発明の半導体演算装置のその他の特徴とするところは、Nキュービット演算回路群の1キュービット演算回路群の一方は、1ビットで表現される2値論理値のそれぞれ異なる論理値の状態について演算を行う2つの演算回路と、上記2つの演算回路を接続し、上記2つの演算回路の間、および上記2つの演算回路と上記1キュービット演算回路群の他方との間で、互いに論理値の状態を授受するための第1キュービット目のスイッチ回路とを備えることを特徴とする。
【0013】
本発明の半導体演算装置のその他の特徴とするところは、2つのNキュービット演算回路群をそれぞれ両側に配置し、上記2つのNキュービット演算回路群の間に、第Nキュービット目のスイッチ回路を配置したことを特徴とする。
【0014】
本発明の半導体演算装置のその他の特徴とするところは、演算回路は、供給される論理値の状態を用いて演算を行う演算部と、上記演算部による演算結果を記憶するレジスタ部とを備えることを特徴とする。
【0015】
本発明の半導体演算装置のその他の特徴とするところは、演算部は、論理値の状態を示す複素数で表された確率振幅を演算することを特徴とする。
【0016】
本発明の半導体演算装置のその他の特徴とするところは、演算部は、4つの乗算器と、2つの加算器とを備え、論理値の状態を示す確率振幅の複素積和演算を行うことを特徴とする。
【0017】
本発明の半導体演算装置のその他の特徴とするところは、演算部は、論理値の状態を示す確率振幅のユニタリ性を保持し、演算を行うことを特徴とする。
【0018】
本発明の半導体演算装置のその他の特徴とするところは、2つのNキュービット演算回路群は、Nビットから(N+1)ビットに拡張された際に、拡張されたビットの2値論理値のそれぞれ異なる論理値に対応する演算を行うことを特徴とする。
【0019】
上記のように構成した本発明によれば、第Nキュービット目のスイッチ回路を介して、2つのNキュービット演算回路群を接続するだけで、(N+1)ビットで表現可能なすべての論理値の状態について演算を同時に行い、それぞれの演算結果を保持する半導体演算装置を容易に構成することができるようになる。
【0020】
【発明の実施の形態】
以下、本発明の一実施形態を図面に基づいて説明する。
図1は、本発明の実施形態による半導体演算装置を適用した並列処理プロセッサの一構成例を示すブロック図である。
この図1に示す並列処理プロセッサ1は、量子コンピュータの技術を集積回路を用いて実現したものである。
【0021】
まず、量子コンピュータについて説明する。
量子コンピュータは、従来の計算機等の演算方式とは異なり、キュービット(量子ビット)という単位で構成された量子力学に基づく状態の重ね合わせを利用した新しい演算方式であり、新しいコンピュータモデルとしてファインマンにより提案された。量子コンピュータでは、1つの装置を用いて量子力学に基づく状態の重ね合わせを利用し演算を行うため、理論上、すべての可能な状態(値として存在可能なデータ)に対して、1回の演算を行うだけで上記すべての可能な状態の演算結果を同時に、かつ瞬時に得ることができる。
【0022】
しかしながら、一方では、量子コンピュータは、量子力学に基づく状態の重ね合わせを利用するので、核磁気共鳴、マイクロ波、レーザーを用いるような実際に量子力学に基づく現象が観測可能な物理系のみで実現されてきており、大規模な装置を要する。最近では、量子コンピュータにおいて、25個の状態が同時に存在する5キュービットまで演算可能な実際の物理系が提案されている。
【0023】
しかしながら、量子コンピュータは、状態が互いに相関を持ちながら変化するように(状態をエンタングルメントさせたまま)演算を実行しなければならない。そのため、実際の物理系を用いた量子コンピュータでは、キュービット数の増加にともない指数関数的に増加する位相状態(例えば、10キュービットの場合、210=1024個の位相状態)を1つの装置に存在させ、保存することが困難になってくる。
【0024】
また、量子コンピュータは、量子力学に基づく現象が観測可能な実際の物理系を用いているため、既存の電子回路との間で演算結果等のデータを授受したりするインタフェースを設けることが煩雑であり、電子回路との接続性は悪かった。
【0025】
ここで、上記量子コンピュータは量子的な物理現象(量子力学に基づく状態の重ね合わせ)を利用しているので、古典的な物理現象(古典電磁気学)を利用した集積回路でそのまま実現することは困難である。すなわち、集積回路上の1つのデバイスが、量子力学に基づく状態の重ね合わせを利用した演算を行うことは困難である。しかしながら、集積回路上の複数のデバイスが、量子力学に基づいて重ね合わされた複数の状態をそれぞれ記憶し、記憶された量子力学に基づく状態に対して同時に演算を行うことはできる。
【0026】
そこで、上記図1に示す並列処理プロセッサ1は、複数のプロセッサエレメント(PE)を集積回路に設けて、量子力学に基づいて重ね合わされた複数の状態(論理値の確率振幅)を複数のプロセッサエレメントにそれぞれ記憶し、同時に演算を行うようにしたものである。なお、図1には、5キュービットに相当する25=32個の状態(5ビットで表現可能な32通りの論理値の確率振幅)を記憶して同時に演算を行う並列処理プロセッサ1を一例として示しているが、本発明はこれに限定されるものではない。また、以下では、説明の便宜上、論理値の確率振幅を「状態」と称す。
【0027】
上記図1に示すように並列処理プロセッサ1は、複数のプロセッサエレメント(PE)(図1においては、実線の□で示す。)と、複数のエクスチェンジユニット(EU)(図1においては、○で示す。)とを有する。具体的には、5キュービットに相当する演算を行う図1に示した並列処理プロセッサ1は、32(=25)個のプロセッサエレメントと、31(=25−1)個のエクスチェンジユニットとを有する。
【0028】
ここでプロセッサエレメントは、32個の状態の中の1つの状態について、複数の状態に基づいて所定の演算(ユニタリ変換)を行い、得られた演算結果を記憶する。また、エクスチェンジユニットは、2つのプロセッサエレメント、または複数のプロセッサエレメントでそれぞれ構成される2つのプロセッサエレメント群を互いに通信可能なように接続し、プロセッサエレメントの間、またはプロセッサエレメント群の間でのデータの授受等を制御する。なお、プロセッサエレメントおよびエクスチェンジユニットの詳細については、後述する。
【0029】
そして、並列処理プロセッサ1は、図1に示すように、プロセッサエレメント2−1とプロセッサエレメント2−2とを、エクスチェンジユニット3−1を介してH字状に接続する。これにより、1キュービットに相当する演算を行うプロセッサエレメント群4−1を構成する。
【0030】
さらに、プロセッサエレメント群4−1と同様に構成されたプロセッサエレメント群4−2と、プロセッサエレメント群4−1とを、エクスチェンジユニット3−2を介してH字状に接続する。これにより、2キュービットに相当する演算を行うプロセッサエレメント群5−1を構成する。
【0031】
同様にして、エクスチェンジユニット3−3を介して、プロセッサエレメント群5−1、5−2をH字状に接続することにより、3キュービットに相当する演算を行うプロセッサエレメント群6−1を構成し、エクスチェンジユニット3−4を介して、プロセッサエレメント群6−1、6−2をH字状に接続することにより、4キュービットに相当する演算を行うプロセッサエレメント群7−1を構成する。さらに、エクスチェンジユニット3−5を介して、プロセッサエレメント群7−1、7−2をH字状に接続することにより、5キュービットに相当する演算を行うプロセッサエレメント群、つまり並列処理プロセッサ1を構成する。
【0032】
すなわち、本実施形態による並列処理プロセッサは、エクスチェンジユニットを介して、Nキュービット(Nは自然数)に相当する演算を行うプロセッサエレメント群(但し、N=1のときにはプロセッサエレメント)をH字状に接続することにより、1キュービットだけ拡張した(N+1)キュービットに相当する演算を行うプロセッサエレメント群を構成する。そして、エクスチェンジユニットを介して、再帰的にプロセッサエレメント群をH字状に接続することにより、所望のキュービット数に相当する演算を行う並列処理プロセッサを構成する。ここで、上記プロセッサエレメントは本発明の演算回路を構成し、エクスチェンジユニットは本発明のスイッチ回路を構成する。また、プロセッサエレメント群は本発明の演算回路群を構成する。
【0033】
さらに、並列処理プロセッサ1は、並列処理プロセッサ1内の複数のプロセッサエレメントおよび複数のエクスチェンジユニットを制御するコントローラ8と、並列処理プロセッサ1と外部に接続された回路(機器)等との間でデータの授受等を行うためのインタフェース9とを有する。
【0034】
次に、プロセッサエレメント(PE)について詳細に説明する。
なお、上記図1に示した並列処理プロセッサ1が有するそれぞれのプロセッサエレメントは同じ構成であるので、以下では、プロセッサエレメント2−1を一例として説明する。
【0035】
図2は、上記図1に示したプロセッサエレメント2−1の構成例を示すブロック図である。
図2において、プロセッサエレメント2−1は、演算部11とレジスタ部12とにより構成される。
【0036】
演算部11は、図示しない信号線により図1に示したコントローラ8から供給される指示に従い、当該プロセッサエレメント2−1が演算する32個の状態の中の何れか1つの状態について、所定の演算(ユニタリ変換)を行うものである。演算部11には、演算する32個の状態の中の1つの状態を示す内部データIDTがレジスタ部12から供給され、上記1つの状態と異なる他の状態を示す入力データDTIが、エクスチェンジユニット3−1を介して他のプロセッサエレメント(群)から供給される。
【0037】
ここで、上記内部データIDTおよび入力データDTIは、上述したように論理値の確率振幅であり、上記確率振幅は複素数を用いて表される。また、演算部11にて行われる演算はユニタリ変換であるので、演算部11による演算では、常にユニタリ性が保持される。
【0038】
例えば、プロセッサエレメント2−1にて演算する状態が、32個の状態の中の論理値“00001”の状態である場合には、論理値“00001”の確率振幅が内部データIDTとして演算部11に供給され、論理値“00001”と異なる論理値(例えば、“00000”または“00011”等)論理値の確率振幅が入力データDTIとして演算部11に供給される。
また、演算部11には、エクスチェンジユニット3−1を介してコントローラ8から係数信号SCが供給される。
【0039】
演算部11は、内部データIDTおよび入力データDTIとして供給される複数の状態(複素数で表される確率振幅)に対して、上記係数信号SCとして供給される係数値を用いて複素数の積和演算を行う。そして、演算部11は演算結果として得られた状態(複素数で表される確率振幅)をレジスタ部12に出力する。
【0040】
レジスタ部12は、図示しない信号線により図1に示したコントローラ8から供給される指示に従って、演算部11から出力される演算結果を記憶する。また、レジスタ部12は、図示しない信号線により供給される指示に従って、記憶した演算結果を内部データIDTとして演算部11に出力したり、エクスチェンジユニット3−1を介して出力データDTOとして他のプロセッサエレメント(群)に出力したりする。
【0041】
図3は、上記図2に示した演算部11の詳細な構成例を示すブロック図である。
図3において、演算部11は、4つの乗算器21−1〜21−4および2つの加算器22−1〜22−2により構成される。
【0042】
乗算器21−1〜21−4には、内部データIDTまたは入力データDTIが供給されるとともに、係数信号SCが供給される。乗算器21−1〜21−4は、内部データIDTとして供給される32個の中の1つの論理値の確率振幅の実数部、虚数部、および入力データDTIとして供給される論理値(上記1つの論理値とは異なる論理値)の確率振幅の実数部、虚数部と係数信号SCとして供給される係数値との乗算をそれぞれ行い、その結果を後段に接続された加算器22−1、22−2に出力する。
【0043】
加算器22−1は、乗算器21−1および21−2からそれぞれ出力された乗算結果を加算する。また、加算器22−2は、乗算器21−3および21−4からそれぞれ出力された乗算結果を加算する。そして、加算器22−1、22−2は、上記図2に示したレジスタ部12に加算結果を出力する。
【0044】
上述のように演算部11を構成することにより、演算部11は、内部データIDTおよび入力データDTIとして供給される複数の状態(確率振幅)と、上記係数信号SCとして供給される係数値との積和演算を行う。
【0045】
次に、エクスチェンジユニット(EU)について詳細に説明する。
なお、上記図1に示した並列処理プロセッサ1が有するそれぞれのエクスチェンジユニットは同じ構成であるので、以下では、エクスチェンジユニット3−1を一例として説明する。
【0046】
図4は、上記図1に示したエクスチェンジユニット(EU)3−1の構成例を示すブロック図である。
図4に示すように、エクスチェンジユニット3−1は、6つのスイッチング素子SW1〜SW6により構成される。
【0047】
スイッチング素子SW1およびSW2は、プロセッサエレメント2−1のデータ出力端子と、プロセッサエレメント2−2のデータ入力端子およびエクスチェンジユニット3−2の第1のデータ入力端子との間にそれぞれ直列に接続される。同様に、スイッチング素子SW3およびSW4は、プロセッサエレメント2−2のデータ出力端子と、プロセッサエレメント2−1のデータ入力端子およびエクスチェンジユニット3−2の第2のデータ入力端子との間にそれぞれ直列に接続される。また、スイッチング素子SW5およびSW6は、エクスチェンジユニット3−2の第1および第2のデータ出力端子と、プロセッサエレメント2−1および2−2のデータ入力端子との間にそれぞれ直列に接続される。
【0048】
スイッチング素子SW1およびSW2は、プロセッサエレメント2−1から出力データDTOとして出力された32個の状態の中の1つの状態(論理値の確率振幅)をプロセッサエレメント2−2およびエクスチェンジユニット3−2にそれぞれ供給するか否か切り替える。
同様に、スイッチング素子SW3およびSW4は、プロセッサエレメント2−2から出力データDTOとして出力された32個の状態の中の1つの状態をプロセッサエレメント2−1およびエクスチェンジユニット3−2にそれぞれ供給するか否か切り替える。
【0049】
また、スイッチング素子SW5およびSW6は、エクスチェンジユニット3−2から出力される上記プロセッサエレメント2−1、2−2にて演算する状態を除く32個の状態の中の残りの状態をプロセッサエレメント2−1および2−2にそれぞれ供給するか否か切り替える。
【0050】
上述のようにエクスチェンジユニット3−1を構成し、スイッチング素子SW1〜SW6を適宜、開閉制御してデータの供給路を制御することにより、並列処理コンピュータ1を構成する複数のプロセッサエレメントに32個の状態をそれぞれ供給することができる。
【0051】
なお、図4においては、プロセッサエレメント2−1、2−2とエクスチェンジユニット3−2との間で、互いにデータを授受するためのデータ信号線のみを示しているが、上記図1に示したコントローラ8から指示を供給する信号線や、係数信号SCとして係数を供給する信号線をエクスチェンジユニット(EU)内に備えるようにしても良い。
【0052】
次に、本実施形態における並列処理プロセッサ1にて用いる命令について説明する。本実施形態における並列処理プロセッサ1では、以下に示す9つの命令を用いるだけで、如何なる演算も実行することができる。
(1)PHAS(Phase Shift:1キュービット位相シフト操作)
指定されたキュービットに対する位相回転を行う。
(2)ROT(Rotation:1キュービット回転操作)
指定されたキュービットに対する回転操作を行う。
(3)CPHAS(Controlled Phase Shift:制御1キュービット位相シフト操作)
制御値により示されるキュービットの値が“1”のときには、指定されたキュービットに対する位相回転を行い、キュービットの値が“0”のときには、前値を保持する演算(恒等変換)を行う。
(4)CROT(Controlled Rotation:制御1キュービット回転操作)
制御値により示されるキュービットの値が“1”のときには、指定されたキュービットに対する回転操作を行い、キュービットの値が“0”のときには、前値を保持する演算(恒等変換)を行う。
(5)HALT(演算停止命令)
演算を停止し、アイドル状態に遷移する。
(6)INIT(Initialize:キュービット初期化操作)
すべてのキュービットの値が“0”である状態の確率振幅の実数値のみを1にし、それ以外は0にする。
(7)PCAL(確率計算)
確率振幅の絶対値の2乗により算出される確率を計算する。
(8)PSUM(確率積算)
指定されたキュービットの値のみが異なる論理値の確率の和を計算する。
(9)REDUCE(状態収縮操作)
指定されたキュービットの値のみが異なる論理値の確率の大小比較を行い、比較結果に応じて確率振幅を維持または“0”にする。
【0053】
次に、上記図1に示した本実施形態における並列処理プロセッサ1の動作について説明する。
なお、以下の説明では、説明の便宜上、図1に示したプロセッサエレメント2−1にて演算する状態が、論理値“XXX00”(XはDon’t care)の状態とし、プロセッサエレメント2−2にて演算する状態が、論理値“XXX01”(XはDon’t care)の状態として説明する。
【0054】
例えば、最下位のキュービットを対象とした演算を行うとする。このとき、エクスチェンジユニット3−1内のスイッチング素子SW1およびSW3が閉じられ、残りのスイッチング素子SW2、SW4〜SW6は開かれる。
【0055】
これにより、プロセッサエレメント2−1内のレジスタ部12に記憶している論理値“XXX00”の状態(確率振幅)の一部(例えば、所定の係数値を乗算したもの)が、エクスチェンジユニット3−1内のスイッチング素子SW1を介してプロセッサエレメント2−2内の演算部11に供給される。同様に、プロセッサエレメント2−2内のレジスタ部12に記憶している論理値“XXX01”の状態(確率振幅)の一部が、エクスチェンジユニット3−1内のスイッチング素子SW3を介してプロセッサエレメント2−1内の演算部11に供給される。また、プロセッサエレメント2−1、2−2には、演算に応じた係数値がコントローラ8から係数信号SCにより供給される。
【0056】
プロセッサエレメント2−1内の演算部11は、自らのレジスタ部12に記憶している論理値“XXX00”の状態、プロセッサエレメント2−2から供給された論理値“XXX01”の状態の一部および係数信号SCにより供給された係数値を用いて、状態(確率振幅)に関する積和演算を行う。これにより、演算後の論理値“XXX00”の状態が、演算結果として得られる。また、プロセッサエレメント2−1内の演算部11での積和演算と同時に、プロセッサエレメント2−2内の演算部11でも同様の積和演算を行い、演算後の論理値“XXX01”の状態を演算結果として取得する。なお、演算の対象とするキュービットが同じであるので、プロセッサエレメント2−1、2−2にて行われる状態の演算は同じ演算である。
【0057】
上述したようなプロセッサエレメント2−1、2−2にて行われた動作と同じ動作を、並列処理プロセッサ1が有するすべてのプロセッサエレメントで同時に行う。これにより、並列処理プロセッサ1は、5キュービットに相当する32個の状態についての最下位のキュービットを対象とした演算を同時に行い、すべての演算結果を速やかに得ることができる。
【0058】
なお、最下位のキュービット以外を対象とした演算を行う場合については、エクスチェンジユニット内のスイッチング素子SW1〜SW6の開閉制御が異なり、論理値の状態の一部を供給するプロセッサエレメントが、他のプロセッサエレメント群の対応する(演算の対象とするキュービットの論理値のみが異なる論理値を演算する)プロセッサエレメントになるだけで、基本的な動作は同じであるので説明は省略する。
【0059】
以上、詳しく説明したように本実施形態によれば、Nビット(Nは自然数)で表現可能な互いに異なる論理値の状態についてそれぞれ同時に演算を行い、演算結果を保持する2N個のプロセッサエレメントを有するNキュービットに相当する演算を行う2つのプロセッサエレメント群(但し、N=1のときにはプロセッサエレメント)を、エクスチェンジユニットを介して接続することにより、1キュービットだけ拡張した(N+1)キュービットに相当する演算を行うプロセッサエレメント群を構成する。そして、エクスチェンジユニットを介して、再帰的にプロセッサエレメント群を接続することにより、所定のキュービット数に相当する演算を行う並列処理プロセッサを構成する。
【0060】
これにより、大規模な演算を行う並列処理プロセッサであっても、エクスチェンジユニットを介して、プロセッサエレメント群を再帰的に接続するだけで設計することができるので、設計に要する時間および労力を増大させることなく、所定の演算を行う並列処理プロセッサを容易に設計することができる。
【0061】
特に、エクスチェンジユニットを介して、プロセッサエレメント群を再帰的にH字状に接続するようにした場合には、上下対称および左右対称にプロセッサエレメント群を配置することができ、設計が非常に容易になるとともに、集積回路上での実装効率も高くすることができる。
【0062】
また、Nビットで表現可能な2N個のすべての論理値の状態についての演算を同時に行い、演算結果を保持するNキュービットに相当する2つのプロセッサエレメント群を用いて、(N+1)キュービットに相当するプロセッサエレメント群が構成されるので、(N+1)ビットで表現可能な2N+1個のすべての論理値の状態についての演算を同時に行い、演算結果を常に保持することができる。したがって、従来のように1つのデータ値を用いて演算を逐次行わなくとも、すべての論理値について同時に1回の演算を行うだけで、すべての論理値について演算結果を得ることができるので大規模な演算を高速で実行することができる。
【0063】
なお、上述した本実施形態では、エクスチェンジユニットを介して、プロセッサエレメント群を再帰的に接続する際、H字状に配置するようにしているが、本発明はこれに限られるものではない。しかしながら、エクスチェンジユニットに対してプロセッサエレメント群を対称に配置して接続することにより、非常に容易かつ合理的に設計することができる。
【0064】
また、上述した本実施形態では、5キュービットに相当する演算を行う半導体演算装置について示したが、本発明は5キュービットに相当する演算を行う半導体演算装置に限られるものではなく、図5に示すようにして任意の数のキュービットに相当する演算を行う半導体演算装置に適用することができる。
【0065】
図5は、任意の数のキュービットに相当する演算を行う半導体演算装置の構成方法を説明するための図である。
図5において、8−1、8−2は、それぞれ5キュービットに相当する演算を行うプロセッサエレメント群であり、図1に示した4キュービットに相当する演算を行う2つのプロセッサエレメント群7−1、7−2によりそれぞれ構成される。上記プロセッサエレメント群8−1、8−2を、エクスチェンジユニット3−6を介して、例えばH字状に接続することにより、6キュービットに相当する演算を行うプロセッサエレメント群9−1を構成し、エクスチェンジユニット3−7を介して、プロセッサエレメント群9−1、9−2をH字状に接続することにより、7キュービットに相当する演算を行うプロセッサエレメント群10−1を構成する。
【0066】
同様にして、エクスチェンジユニットを介して、再帰的にプロセッサエレメント群を接続することにより、演算可能なキュービット数を増加していく。
例えば、Nキュービットに相当する演算を行うプロセッサエレメント群を構成する場合には、(N−2)キュービットに相当する演算を行うプロセッサエレメント群11−1、11−2およびエクスチェンジユニット3−(N−1)をそれぞれ有する(N−1)キュービットに相当する演算を行うプロセッサエレメント群12−1、12−2を、エクスチェンジユニット3−Nを介して接続することにより、Nキュービットに相当する演算を行うプロセッサエレメント群13−1を構成する。
【0067】
【発明の効果】
以上説明したように、本発明によれば、Nビットで表現可能なすべての論理値の状態について演算を同時にそれぞれ行い、演算結果を保持する2つのNキュービット演算回路群と、2つのNキュービット演算回路群の間で論理値の状態を授受するための第Nキュービット目のスイッチ回路とにより、(N+1)ビットで表現可能なすべての論理値の状態について演算を同時に行い、それぞれの演算結果を保持する半導体演算装置を構成する。
【0068】
これにより、大規模な演算を行う半導体演算装置であっても、スイッチ回路を介して演算回路群を再帰的に接続するだけで設計することができ、設計に要する時間および労力を増大させることなく、大規模な演算を行う半導体演算装置を容易に設計することができる。さらに、Nビットで表現可能なすべての論理値の状態について演算を同時にそれぞれ行い、演算結果を保持する2つのNキュービット演算回路群を含み構成されるので、(N+1)ビットで表現可能なすべての論理値の状態について演算を同時に行い、それぞれの演算結果を常に保持することができ、すべての論理値について同時に1回の演算を行うだけで、すべての論理値について演算結果を得ることができる。したがって、大規模な演算を高速で実行することができる。
【図面の簡単な説明】
【図1】本発明の実施形態による半導体演算装置を適用した並列処理プロセッサの一構成例を示すブロック図である。
【図2】プロセッサエレメントの構成例を示すブロック図である。
【図3】プロセッサエレメント内の演算部の詳細な構成例を示すブロック図である。
【図4】エクスチェンジユニットの構成例を示すブロック図である。
【図5】任意の数のキュービットに相当する演算を行う半導体演算装置の構成方法を説明するための図である。
【符号の説明】
1 並列処理プロセッサ
2−1、2−2 プロセッサエレメント(PE)
3−1〜3−5 エクスチェンジユニット(EU)
8 コントローラ
9 インタフェース
11 演算部
12 レジスタ部
21−1〜21−4 乗算器
22−1、22−2 加算器
【発明の属する技術分野】
本発明は、半導体演算装置に関し、特に、半導体演算装置にて演算可能なビット数により表現されるすべての論理値での演算を同時に実行する半導体演算装置に用いて好適なものである。
【0002】
【従来の技術】
集積回路における集積密度(集積可能な素子数(トランジスタ数))は、約1.5年で2倍になるという「ムーアの法則」に従い、指数関数的に増大している。この集積密度の向上に伴い、従来の技術では、1つの半導体チップ(以下、単に「チップ」と称す。)上に集積することが不可能であると思われた多数の回路素子からなる回路を、1つのチップ上に集積することができるようになってきた。
【0003】
例えば、プロセッサ等の半導体演算装置の集積回路では、1つのチップ上に集積可能な回路素子数が増加するのに伴って演算処理量が増大し、大規模な演算を実行することができるようになってきた。また、例えば、所定の機能を有する回路がそれぞれ集積された複数のチップにより構成されていたシステムの機能を、当該システム全体の機能を実現するための多数の回路素子を1つのチップ上に集積したシステム・オン・チップ(SOC:System On a Chip)と呼ばれる集積回路も実用化されるようになってきた。
【0004】
また、従来、集積回路における集積密度が低いときには、集積回路を構成するトランジスタにおいて必要でないトランジスタを省略して、1つのチップ上に集積することができるように集積回路のトランジスタ数を削減しなければならなかった。しかし、近年の集積密度の向上に伴い、1つのチップ上に集積可能なトランジスタ数が増加してきたことにより、必要でないトランジスタを省略したりする作業の必要性は低下してきた。
【0005】
【発明が解決しようとする課題】
しかしながら、上述したように集積回路における集積密度が向上し、さらに必要でないトランジスタを省略したりする作業の必要性は低下してきたが、1つのチップ上に形成する集積回路のデザイン効率(集積回路の設計に要する時間および労力)については、集積密度の向上と同等には向上していなかった。
【0006】
つまり、製造技術の進歩による集積回路における集積密度の向上に伴い、多数のトランジスタのチップ上での配置、配線等のレイアウト(デザイン)を行う設計に非常に多大な時間および労力を要していた。その結果、集積回路の設計に要する時間および労力も、集積密度と同様に増大してしまうという問題があった。
【0007】
また、集積回路における集積密度の向上に伴い、CPU等の半導体演算装置の集積回路では、大規模な演算を実行することができるようになってきたが、1つのデータ値を用いて演算処理、条件・分岐処理等を逐次実行する従来から利用されている演算方式(アルゴリズム)を用いているため、演算の規模に応じて演算時間が増大してしまい、大規模な演算を高速で実行することができないという問題があった。
【0008】
本発明は、このような問題を解決するためになされたものであり、大規模な演算を行うための集積回路の設計に要する時間および労力を増大させることなく、大規模な演算を高速で実行することができるようにすることを目的とする。
【0009】
【課題を解決するための手段】
本発明の半導体演算装置は、(N+1)ビット(Nは自然数)で表現可能なすべての論理値の状態について演算を同時に行い、それぞれの演算結果を保持する半導体演算装置であって、複数の演算回路をそれぞれ有し、Nビットで表現可能なすべての論理値の状態について演算を同時にそれぞれ行い、演算結果を保持する2つのNキュービット演算回路群と、上記2つのNキュービット演算回路群の間で論理値の状態を授受するための第Nキュービット目のスイッチ回路とを備えることを特徴とする。
【0010】
本発明の半導体演算装置の他の特徴とするところは、Nキュービット演算回路群は、2N個の演算回路を有し、上記演算回路は、Nビットで表現可能なすべての論理値の状態の互いに異なる何れか1つの状態についてそれぞれ演算を行い、演算結果を保持することを特徴とする。
【0011】
本発明の半導体演算装置のその他の特徴とするところは、2つのNキュービット演算回路群は、それぞれ第(N−1)キュービット目のスイッチ回路を備え、上記2つのNキュービット演算回路群の一方の上記第(N−1)キュービット目のスイッチ回路は、さらに上記Nキュービット演算回路群の他方と論理値の状態を授受可能であることを特徴とする。
【0012】
本発明の半導体演算装置のその他の特徴とするところは、Nキュービット演算回路群の1キュービット演算回路群の一方は、1ビットで表現される2値論理値のそれぞれ異なる論理値の状態について演算を行う2つの演算回路と、上記2つの演算回路を接続し、上記2つの演算回路の間、および上記2つの演算回路と上記1キュービット演算回路群の他方との間で、互いに論理値の状態を授受するための第1キュービット目のスイッチ回路とを備えることを特徴とする。
【0013】
本発明の半導体演算装置のその他の特徴とするところは、2つのNキュービット演算回路群をそれぞれ両側に配置し、上記2つのNキュービット演算回路群の間に、第Nキュービット目のスイッチ回路を配置したことを特徴とする。
【0014】
本発明の半導体演算装置のその他の特徴とするところは、演算回路は、供給される論理値の状態を用いて演算を行う演算部と、上記演算部による演算結果を記憶するレジスタ部とを備えることを特徴とする。
【0015】
本発明の半導体演算装置のその他の特徴とするところは、演算部は、論理値の状態を示す複素数で表された確率振幅を演算することを特徴とする。
【0016】
本発明の半導体演算装置のその他の特徴とするところは、演算部は、4つの乗算器と、2つの加算器とを備え、論理値の状態を示す確率振幅の複素積和演算を行うことを特徴とする。
【0017】
本発明の半導体演算装置のその他の特徴とするところは、演算部は、論理値の状態を示す確率振幅のユニタリ性を保持し、演算を行うことを特徴とする。
【0018】
本発明の半導体演算装置のその他の特徴とするところは、2つのNキュービット演算回路群は、Nビットから(N+1)ビットに拡張された際に、拡張されたビットの2値論理値のそれぞれ異なる論理値に対応する演算を行うことを特徴とする。
【0019】
上記のように構成した本発明によれば、第Nキュービット目のスイッチ回路を介して、2つのNキュービット演算回路群を接続するだけで、(N+1)ビットで表現可能なすべての論理値の状態について演算を同時に行い、それぞれの演算結果を保持する半導体演算装置を容易に構成することができるようになる。
【0020】
【発明の実施の形態】
以下、本発明の一実施形態を図面に基づいて説明する。
図1は、本発明の実施形態による半導体演算装置を適用した並列処理プロセッサの一構成例を示すブロック図である。
この図1に示す並列処理プロセッサ1は、量子コンピュータの技術を集積回路を用いて実現したものである。
【0021】
まず、量子コンピュータについて説明する。
量子コンピュータは、従来の計算機等の演算方式とは異なり、キュービット(量子ビット)という単位で構成された量子力学に基づく状態の重ね合わせを利用した新しい演算方式であり、新しいコンピュータモデルとしてファインマンにより提案された。量子コンピュータでは、1つの装置を用いて量子力学に基づく状態の重ね合わせを利用し演算を行うため、理論上、すべての可能な状態(値として存在可能なデータ)に対して、1回の演算を行うだけで上記すべての可能な状態の演算結果を同時に、かつ瞬時に得ることができる。
【0022】
しかしながら、一方では、量子コンピュータは、量子力学に基づく状態の重ね合わせを利用するので、核磁気共鳴、マイクロ波、レーザーを用いるような実際に量子力学に基づく現象が観測可能な物理系のみで実現されてきており、大規模な装置を要する。最近では、量子コンピュータにおいて、25個の状態が同時に存在する5キュービットまで演算可能な実際の物理系が提案されている。
【0023】
しかしながら、量子コンピュータは、状態が互いに相関を持ちながら変化するように(状態をエンタングルメントさせたまま)演算を実行しなければならない。そのため、実際の物理系を用いた量子コンピュータでは、キュービット数の増加にともない指数関数的に増加する位相状態(例えば、10キュービットの場合、210=1024個の位相状態)を1つの装置に存在させ、保存することが困難になってくる。
【0024】
また、量子コンピュータは、量子力学に基づく現象が観測可能な実際の物理系を用いているため、既存の電子回路との間で演算結果等のデータを授受したりするインタフェースを設けることが煩雑であり、電子回路との接続性は悪かった。
【0025】
ここで、上記量子コンピュータは量子的な物理現象(量子力学に基づく状態の重ね合わせ)を利用しているので、古典的な物理現象(古典電磁気学)を利用した集積回路でそのまま実現することは困難である。すなわち、集積回路上の1つのデバイスが、量子力学に基づく状態の重ね合わせを利用した演算を行うことは困難である。しかしながら、集積回路上の複数のデバイスが、量子力学に基づいて重ね合わされた複数の状態をそれぞれ記憶し、記憶された量子力学に基づく状態に対して同時に演算を行うことはできる。
【0026】
そこで、上記図1に示す並列処理プロセッサ1は、複数のプロセッサエレメント(PE)を集積回路に設けて、量子力学に基づいて重ね合わされた複数の状態(論理値の確率振幅)を複数のプロセッサエレメントにそれぞれ記憶し、同時に演算を行うようにしたものである。なお、図1には、5キュービットに相当する25=32個の状態(5ビットで表現可能な32通りの論理値の確率振幅)を記憶して同時に演算を行う並列処理プロセッサ1を一例として示しているが、本発明はこれに限定されるものではない。また、以下では、説明の便宜上、論理値の確率振幅を「状態」と称す。
【0027】
上記図1に示すように並列処理プロセッサ1は、複数のプロセッサエレメント(PE)(図1においては、実線の□で示す。)と、複数のエクスチェンジユニット(EU)(図1においては、○で示す。)とを有する。具体的には、5キュービットに相当する演算を行う図1に示した並列処理プロセッサ1は、32(=25)個のプロセッサエレメントと、31(=25−1)個のエクスチェンジユニットとを有する。
【0028】
ここでプロセッサエレメントは、32個の状態の中の1つの状態について、複数の状態に基づいて所定の演算(ユニタリ変換)を行い、得られた演算結果を記憶する。また、エクスチェンジユニットは、2つのプロセッサエレメント、または複数のプロセッサエレメントでそれぞれ構成される2つのプロセッサエレメント群を互いに通信可能なように接続し、プロセッサエレメントの間、またはプロセッサエレメント群の間でのデータの授受等を制御する。なお、プロセッサエレメントおよびエクスチェンジユニットの詳細については、後述する。
【0029】
そして、並列処理プロセッサ1は、図1に示すように、プロセッサエレメント2−1とプロセッサエレメント2−2とを、エクスチェンジユニット3−1を介してH字状に接続する。これにより、1キュービットに相当する演算を行うプロセッサエレメント群4−1を構成する。
【0030】
さらに、プロセッサエレメント群4−1と同様に構成されたプロセッサエレメント群4−2と、プロセッサエレメント群4−1とを、エクスチェンジユニット3−2を介してH字状に接続する。これにより、2キュービットに相当する演算を行うプロセッサエレメント群5−1を構成する。
【0031】
同様にして、エクスチェンジユニット3−3を介して、プロセッサエレメント群5−1、5−2をH字状に接続することにより、3キュービットに相当する演算を行うプロセッサエレメント群6−1を構成し、エクスチェンジユニット3−4を介して、プロセッサエレメント群6−1、6−2をH字状に接続することにより、4キュービットに相当する演算を行うプロセッサエレメント群7−1を構成する。さらに、エクスチェンジユニット3−5を介して、プロセッサエレメント群7−1、7−2をH字状に接続することにより、5キュービットに相当する演算を行うプロセッサエレメント群、つまり並列処理プロセッサ1を構成する。
【0032】
すなわち、本実施形態による並列処理プロセッサは、エクスチェンジユニットを介して、Nキュービット(Nは自然数)に相当する演算を行うプロセッサエレメント群(但し、N=1のときにはプロセッサエレメント)をH字状に接続することにより、1キュービットだけ拡張した(N+1)キュービットに相当する演算を行うプロセッサエレメント群を構成する。そして、エクスチェンジユニットを介して、再帰的にプロセッサエレメント群をH字状に接続することにより、所望のキュービット数に相当する演算を行う並列処理プロセッサを構成する。ここで、上記プロセッサエレメントは本発明の演算回路を構成し、エクスチェンジユニットは本発明のスイッチ回路を構成する。また、プロセッサエレメント群は本発明の演算回路群を構成する。
【0033】
さらに、並列処理プロセッサ1は、並列処理プロセッサ1内の複数のプロセッサエレメントおよび複数のエクスチェンジユニットを制御するコントローラ8と、並列処理プロセッサ1と外部に接続された回路(機器)等との間でデータの授受等を行うためのインタフェース9とを有する。
【0034】
次に、プロセッサエレメント(PE)について詳細に説明する。
なお、上記図1に示した並列処理プロセッサ1が有するそれぞれのプロセッサエレメントは同じ構成であるので、以下では、プロセッサエレメント2−1を一例として説明する。
【0035】
図2は、上記図1に示したプロセッサエレメント2−1の構成例を示すブロック図である。
図2において、プロセッサエレメント2−1は、演算部11とレジスタ部12とにより構成される。
【0036】
演算部11は、図示しない信号線により図1に示したコントローラ8から供給される指示に従い、当該プロセッサエレメント2−1が演算する32個の状態の中の何れか1つの状態について、所定の演算(ユニタリ変換)を行うものである。演算部11には、演算する32個の状態の中の1つの状態を示す内部データIDTがレジスタ部12から供給され、上記1つの状態と異なる他の状態を示す入力データDTIが、エクスチェンジユニット3−1を介して他のプロセッサエレメント(群)から供給される。
【0037】
ここで、上記内部データIDTおよび入力データDTIは、上述したように論理値の確率振幅であり、上記確率振幅は複素数を用いて表される。また、演算部11にて行われる演算はユニタリ変換であるので、演算部11による演算では、常にユニタリ性が保持される。
【0038】
例えば、プロセッサエレメント2−1にて演算する状態が、32個の状態の中の論理値“00001”の状態である場合には、論理値“00001”の確率振幅が内部データIDTとして演算部11に供給され、論理値“00001”と異なる論理値(例えば、“00000”または“00011”等)論理値の確率振幅が入力データDTIとして演算部11に供給される。
また、演算部11には、エクスチェンジユニット3−1を介してコントローラ8から係数信号SCが供給される。
【0039】
演算部11は、内部データIDTおよび入力データDTIとして供給される複数の状態(複素数で表される確率振幅)に対して、上記係数信号SCとして供給される係数値を用いて複素数の積和演算を行う。そして、演算部11は演算結果として得られた状態(複素数で表される確率振幅)をレジスタ部12に出力する。
【0040】
レジスタ部12は、図示しない信号線により図1に示したコントローラ8から供給される指示に従って、演算部11から出力される演算結果を記憶する。また、レジスタ部12は、図示しない信号線により供給される指示に従って、記憶した演算結果を内部データIDTとして演算部11に出力したり、エクスチェンジユニット3−1を介して出力データDTOとして他のプロセッサエレメント(群)に出力したりする。
【0041】
図3は、上記図2に示した演算部11の詳細な構成例を示すブロック図である。
図3において、演算部11は、4つの乗算器21−1〜21−4および2つの加算器22−1〜22−2により構成される。
【0042】
乗算器21−1〜21−4には、内部データIDTまたは入力データDTIが供給されるとともに、係数信号SCが供給される。乗算器21−1〜21−4は、内部データIDTとして供給される32個の中の1つの論理値の確率振幅の実数部、虚数部、および入力データDTIとして供給される論理値(上記1つの論理値とは異なる論理値)の確率振幅の実数部、虚数部と係数信号SCとして供給される係数値との乗算をそれぞれ行い、その結果を後段に接続された加算器22−1、22−2に出力する。
【0043】
加算器22−1は、乗算器21−1および21−2からそれぞれ出力された乗算結果を加算する。また、加算器22−2は、乗算器21−3および21−4からそれぞれ出力された乗算結果を加算する。そして、加算器22−1、22−2は、上記図2に示したレジスタ部12に加算結果を出力する。
【0044】
上述のように演算部11を構成することにより、演算部11は、内部データIDTおよび入力データDTIとして供給される複数の状態(確率振幅)と、上記係数信号SCとして供給される係数値との積和演算を行う。
【0045】
次に、エクスチェンジユニット(EU)について詳細に説明する。
なお、上記図1に示した並列処理プロセッサ1が有するそれぞれのエクスチェンジユニットは同じ構成であるので、以下では、エクスチェンジユニット3−1を一例として説明する。
【0046】
図4は、上記図1に示したエクスチェンジユニット(EU)3−1の構成例を示すブロック図である。
図4に示すように、エクスチェンジユニット3−1は、6つのスイッチング素子SW1〜SW6により構成される。
【0047】
スイッチング素子SW1およびSW2は、プロセッサエレメント2−1のデータ出力端子と、プロセッサエレメント2−2のデータ入力端子およびエクスチェンジユニット3−2の第1のデータ入力端子との間にそれぞれ直列に接続される。同様に、スイッチング素子SW3およびSW4は、プロセッサエレメント2−2のデータ出力端子と、プロセッサエレメント2−1のデータ入力端子およびエクスチェンジユニット3−2の第2のデータ入力端子との間にそれぞれ直列に接続される。また、スイッチング素子SW5およびSW6は、エクスチェンジユニット3−2の第1および第2のデータ出力端子と、プロセッサエレメント2−1および2−2のデータ入力端子との間にそれぞれ直列に接続される。
【0048】
スイッチング素子SW1およびSW2は、プロセッサエレメント2−1から出力データDTOとして出力された32個の状態の中の1つの状態(論理値の確率振幅)をプロセッサエレメント2−2およびエクスチェンジユニット3−2にそれぞれ供給するか否か切り替える。
同様に、スイッチング素子SW3およびSW4は、プロセッサエレメント2−2から出力データDTOとして出力された32個の状態の中の1つの状態をプロセッサエレメント2−1およびエクスチェンジユニット3−2にそれぞれ供給するか否か切り替える。
【0049】
また、スイッチング素子SW5およびSW6は、エクスチェンジユニット3−2から出力される上記プロセッサエレメント2−1、2−2にて演算する状態を除く32個の状態の中の残りの状態をプロセッサエレメント2−1および2−2にそれぞれ供給するか否か切り替える。
【0050】
上述のようにエクスチェンジユニット3−1を構成し、スイッチング素子SW1〜SW6を適宜、開閉制御してデータの供給路を制御することにより、並列処理コンピュータ1を構成する複数のプロセッサエレメントに32個の状態をそれぞれ供給することができる。
【0051】
なお、図4においては、プロセッサエレメント2−1、2−2とエクスチェンジユニット3−2との間で、互いにデータを授受するためのデータ信号線のみを示しているが、上記図1に示したコントローラ8から指示を供給する信号線や、係数信号SCとして係数を供給する信号線をエクスチェンジユニット(EU)内に備えるようにしても良い。
【0052】
次に、本実施形態における並列処理プロセッサ1にて用いる命令について説明する。本実施形態における並列処理プロセッサ1では、以下に示す9つの命令を用いるだけで、如何なる演算も実行することができる。
(1)PHAS(Phase Shift:1キュービット位相シフト操作)
指定されたキュービットに対する位相回転を行う。
(2)ROT(Rotation:1キュービット回転操作)
指定されたキュービットに対する回転操作を行う。
(3)CPHAS(Controlled Phase Shift:制御1キュービット位相シフト操作)
制御値により示されるキュービットの値が“1”のときには、指定されたキュービットに対する位相回転を行い、キュービットの値が“0”のときには、前値を保持する演算(恒等変換)を行う。
(4)CROT(Controlled Rotation:制御1キュービット回転操作)
制御値により示されるキュービットの値が“1”のときには、指定されたキュービットに対する回転操作を行い、キュービットの値が“0”のときには、前値を保持する演算(恒等変換)を行う。
(5)HALT(演算停止命令)
演算を停止し、アイドル状態に遷移する。
(6)INIT(Initialize:キュービット初期化操作)
すべてのキュービットの値が“0”である状態の確率振幅の実数値のみを1にし、それ以外は0にする。
(7)PCAL(確率計算)
確率振幅の絶対値の2乗により算出される確率を計算する。
(8)PSUM(確率積算)
指定されたキュービットの値のみが異なる論理値の確率の和を計算する。
(9)REDUCE(状態収縮操作)
指定されたキュービットの値のみが異なる論理値の確率の大小比較を行い、比較結果に応じて確率振幅を維持または“0”にする。
【0053】
次に、上記図1に示した本実施形態における並列処理プロセッサ1の動作について説明する。
なお、以下の説明では、説明の便宜上、図1に示したプロセッサエレメント2−1にて演算する状態が、論理値“XXX00”(XはDon’t care)の状態とし、プロセッサエレメント2−2にて演算する状態が、論理値“XXX01”(XはDon’t care)の状態として説明する。
【0054】
例えば、最下位のキュービットを対象とした演算を行うとする。このとき、エクスチェンジユニット3−1内のスイッチング素子SW1およびSW3が閉じられ、残りのスイッチング素子SW2、SW4〜SW6は開かれる。
【0055】
これにより、プロセッサエレメント2−1内のレジスタ部12に記憶している論理値“XXX00”の状態(確率振幅)の一部(例えば、所定の係数値を乗算したもの)が、エクスチェンジユニット3−1内のスイッチング素子SW1を介してプロセッサエレメント2−2内の演算部11に供給される。同様に、プロセッサエレメント2−2内のレジスタ部12に記憶している論理値“XXX01”の状態(確率振幅)の一部が、エクスチェンジユニット3−1内のスイッチング素子SW3を介してプロセッサエレメント2−1内の演算部11に供給される。また、プロセッサエレメント2−1、2−2には、演算に応じた係数値がコントローラ8から係数信号SCにより供給される。
【0056】
プロセッサエレメント2−1内の演算部11は、自らのレジスタ部12に記憶している論理値“XXX00”の状態、プロセッサエレメント2−2から供給された論理値“XXX01”の状態の一部および係数信号SCにより供給された係数値を用いて、状態(確率振幅)に関する積和演算を行う。これにより、演算後の論理値“XXX00”の状態が、演算結果として得られる。また、プロセッサエレメント2−1内の演算部11での積和演算と同時に、プロセッサエレメント2−2内の演算部11でも同様の積和演算を行い、演算後の論理値“XXX01”の状態を演算結果として取得する。なお、演算の対象とするキュービットが同じであるので、プロセッサエレメント2−1、2−2にて行われる状態の演算は同じ演算である。
【0057】
上述したようなプロセッサエレメント2−1、2−2にて行われた動作と同じ動作を、並列処理プロセッサ1が有するすべてのプロセッサエレメントで同時に行う。これにより、並列処理プロセッサ1は、5キュービットに相当する32個の状態についての最下位のキュービットを対象とした演算を同時に行い、すべての演算結果を速やかに得ることができる。
【0058】
なお、最下位のキュービット以外を対象とした演算を行う場合については、エクスチェンジユニット内のスイッチング素子SW1〜SW6の開閉制御が異なり、論理値の状態の一部を供給するプロセッサエレメントが、他のプロセッサエレメント群の対応する(演算の対象とするキュービットの論理値のみが異なる論理値を演算する)プロセッサエレメントになるだけで、基本的な動作は同じであるので説明は省略する。
【0059】
以上、詳しく説明したように本実施形態によれば、Nビット(Nは自然数)で表現可能な互いに異なる論理値の状態についてそれぞれ同時に演算を行い、演算結果を保持する2N個のプロセッサエレメントを有するNキュービットに相当する演算を行う2つのプロセッサエレメント群(但し、N=1のときにはプロセッサエレメント)を、エクスチェンジユニットを介して接続することにより、1キュービットだけ拡張した(N+1)キュービットに相当する演算を行うプロセッサエレメント群を構成する。そして、エクスチェンジユニットを介して、再帰的にプロセッサエレメント群を接続することにより、所定のキュービット数に相当する演算を行う並列処理プロセッサを構成する。
【0060】
これにより、大規模な演算を行う並列処理プロセッサであっても、エクスチェンジユニットを介して、プロセッサエレメント群を再帰的に接続するだけで設計することができるので、設計に要する時間および労力を増大させることなく、所定の演算を行う並列処理プロセッサを容易に設計することができる。
【0061】
特に、エクスチェンジユニットを介して、プロセッサエレメント群を再帰的にH字状に接続するようにした場合には、上下対称および左右対称にプロセッサエレメント群を配置することができ、設計が非常に容易になるとともに、集積回路上での実装効率も高くすることができる。
【0062】
また、Nビットで表現可能な2N個のすべての論理値の状態についての演算を同時に行い、演算結果を保持するNキュービットに相当する2つのプロセッサエレメント群を用いて、(N+1)キュービットに相当するプロセッサエレメント群が構成されるので、(N+1)ビットで表現可能な2N+1個のすべての論理値の状態についての演算を同時に行い、演算結果を常に保持することができる。したがって、従来のように1つのデータ値を用いて演算を逐次行わなくとも、すべての論理値について同時に1回の演算を行うだけで、すべての論理値について演算結果を得ることができるので大規模な演算を高速で実行することができる。
【0063】
なお、上述した本実施形態では、エクスチェンジユニットを介して、プロセッサエレメント群を再帰的に接続する際、H字状に配置するようにしているが、本発明はこれに限られるものではない。しかしながら、エクスチェンジユニットに対してプロセッサエレメント群を対称に配置して接続することにより、非常に容易かつ合理的に設計することができる。
【0064】
また、上述した本実施形態では、5キュービットに相当する演算を行う半導体演算装置について示したが、本発明は5キュービットに相当する演算を行う半導体演算装置に限られるものではなく、図5に示すようにして任意の数のキュービットに相当する演算を行う半導体演算装置に適用することができる。
【0065】
図5は、任意の数のキュービットに相当する演算を行う半導体演算装置の構成方法を説明するための図である。
図5において、8−1、8−2は、それぞれ5キュービットに相当する演算を行うプロセッサエレメント群であり、図1に示した4キュービットに相当する演算を行う2つのプロセッサエレメント群7−1、7−2によりそれぞれ構成される。上記プロセッサエレメント群8−1、8−2を、エクスチェンジユニット3−6を介して、例えばH字状に接続することにより、6キュービットに相当する演算を行うプロセッサエレメント群9−1を構成し、エクスチェンジユニット3−7を介して、プロセッサエレメント群9−1、9−2をH字状に接続することにより、7キュービットに相当する演算を行うプロセッサエレメント群10−1を構成する。
【0066】
同様にして、エクスチェンジユニットを介して、再帰的にプロセッサエレメント群を接続することにより、演算可能なキュービット数を増加していく。
例えば、Nキュービットに相当する演算を行うプロセッサエレメント群を構成する場合には、(N−2)キュービットに相当する演算を行うプロセッサエレメント群11−1、11−2およびエクスチェンジユニット3−(N−1)をそれぞれ有する(N−1)キュービットに相当する演算を行うプロセッサエレメント群12−1、12−2を、エクスチェンジユニット3−Nを介して接続することにより、Nキュービットに相当する演算を行うプロセッサエレメント群13−1を構成する。
【0067】
【発明の効果】
以上説明したように、本発明によれば、Nビットで表現可能なすべての論理値の状態について演算を同時にそれぞれ行い、演算結果を保持する2つのNキュービット演算回路群と、2つのNキュービット演算回路群の間で論理値の状態を授受するための第Nキュービット目のスイッチ回路とにより、(N+1)ビットで表現可能なすべての論理値の状態について演算を同時に行い、それぞれの演算結果を保持する半導体演算装置を構成する。
【0068】
これにより、大規模な演算を行う半導体演算装置であっても、スイッチ回路を介して演算回路群を再帰的に接続するだけで設計することができ、設計に要する時間および労力を増大させることなく、大規模な演算を行う半導体演算装置を容易に設計することができる。さらに、Nビットで表現可能なすべての論理値の状態について演算を同時にそれぞれ行い、演算結果を保持する2つのNキュービット演算回路群を含み構成されるので、(N+1)ビットで表現可能なすべての論理値の状態について演算を同時に行い、それぞれの演算結果を常に保持することができ、すべての論理値について同時に1回の演算を行うだけで、すべての論理値について演算結果を得ることができる。したがって、大規模な演算を高速で実行することができる。
【図面の簡単な説明】
【図1】本発明の実施形態による半導体演算装置を適用した並列処理プロセッサの一構成例を示すブロック図である。
【図2】プロセッサエレメントの構成例を示すブロック図である。
【図3】プロセッサエレメント内の演算部の詳細な構成例を示すブロック図である。
【図4】エクスチェンジユニットの構成例を示すブロック図である。
【図5】任意の数のキュービットに相当する演算を行う半導体演算装置の構成方法を説明するための図である。
【符号の説明】
1 並列処理プロセッサ
2−1、2−2 プロセッサエレメント(PE)
3−1〜3−5 エクスチェンジユニット(EU)
8 コントローラ
9 インタフェース
11 演算部
12 レジスタ部
21−1〜21−4 乗算器
22−1、22−2 加算器
Claims (10)
- (N+1)ビット(Nは自然数)で表現可能なすべての論理値の状態について演算を同時に行い、それぞれの演算結果を保持する半導体演算装置であって、
複数の演算回路をそれぞれ有し、Nビットで表現可能なすべての論理値の状態について演算を同時にそれぞれ行い、演算結果を保持する2つのNキュービット演算回路群と、
上記2つのNキュービット演算回路群の間で論理値の状態を授受するための第Nキュービット目のスイッチ回路とを備えることを特徴とする半導体演算装置。 - 上記Nキュービット演算回路群は、2N個の演算回路を有し、
上記演算回路は、Nビットで表現可能なすべての論理値の状態の互いに異なる何れか1つの状態についてそれぞれ演算を行い、演算結果を保持することを特徴とする請求項1に記載の半導体演算装置。 - 上記2つのNキュービット演算回路群は、それぞれ第(N−1)キュービット目のスイッチ回路を備え、
上記2つのNキュービット演算回路群の一方の上記第(N−1)キュービット目のスイッチ回路は、さらに上記Nキュービット演算回路群の他方と論理値の状態を授受可能であることを特徴とする請求項1または2に記載の半導体演算装置。 - 上記Nキュービット演算回路群の1キュービット演算回路群の一方は、1ビットで表現される2値論理値のそれぞれ異なる論理値の状態について演算を行う2つの上記演算回路と、
上記2つの演算回路を接続し、上記2つの演算回路の間、および上記2つの演算回路と上記1キュービット演算回路群の他方との間で、互いに論理値の状態を授受するための第1キュービット目のスイッチ回路とを備えることを特徴とする請求項3に記載の半導体演算装置。 - 上記2つのNキュービット演算回路群をそれぞれ両側に配置し、上記2つのNキュービット演算回路群の間に、上記第Nキュービット目のスイッチ回路を配置したことを特徴とする請求項1〜4の何れか1項に記載の半導体演算装置。
- 上記演算回路は、供給される論理値の状態を用いて演算を行う演算部と、
上記演算部による演算結果を記憶するレジスタ部とを備えることを特徴とする請求項1〜5の何れか1項に記載の半導体演算装置。 - 上記演算部は、上記論理値の状態を示す複素数で表された確率振幅を演算することを特徴とする請求項6に記載の半導体演算装置。
- 上記演算部は、4つの乗算器と、
2つの加算器とを備え、
上記論理値の状態を示す確率振幅の複素積和演算を行うことを特徴とする請求項7に記載の半導体演算装置。 - 上記演算部は、上記論理値の状態を示す確率振幅のユニタリ性を保持し、演算を行うことを特徴とする請求項8に記載の半導体演算装置。
- 上記2つのNキュービット演算回路群は、Nビットから(N+1)ビットに拡張された際に、拡張されたビットの2値論理値のそれぞれ異なる論理値に対応する演算を行うことを特徴とする請求項1〜9の何れか1項に記載の半導体演算装置。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001279286A JP3542342B2 (ja) | 2001-09-14 | 2001-09-14 | 半導体演算装置 |
TW091119695A TWI271774B (en) | 2001-09-14 | 2002-08-29 | Semiconductor operation device |
AU2002330511A AU2002330511B2 (en) | 2001-09-14 | 2002-09-10 | Semiconductor calculation device |
CNA028202597A CN1568456A (zh) | 2001-09-14 | 2002-09-10 | 半导体运算装置 |
EP02765467A EP1426856A1 (en) | 2001-09-14 | 2002-09-10 | Semiconductor calculation device |
US10/488,925 US6963079B2 (en) | 2001-09-14 | 2002-09-10 | Semiconductor calculation device |
CA002460483A CA2460483A1 (en) | 2001-09-14 | 2002-09-10 | Semiconductor computing device |
PCT/JP2002/009187 WO2003025738A1 (fr) | 2001-09-14 | 2002-09-10 | Dispositif de calcul a semiconducteur |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001279286A JP3542342B2 (ja) | 2001-09-14 | 2001-09-14 | 半導体演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003084966A JP2003084966A (ja) | 2003-03-20 |
JP3542342B2 true JP3542342B2 (ja) | 2004-07-14 |
Family
ID=19103512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001279286A Expired - Fee Related JP3542342B2 (ja) | 2001-09-14 | 2001-09-14 | 半導体演算装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US6963079B2 (ja) |
EP (1) | EP1426856A1 (ja) |
JP (1) | JP3542342B2 (ja) |
CN (1) | CN1568456A (ja) |
AU (1) | AU2002330511B2 (ja) |
CA (1) | CA2460483A1 (ja) |
TW (1) | TWI271774B (ja) |
WO (1) | WO2003025738A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118608B (zh) * | 2007-08-23 | 2011-07-20 | 清华大学 | 任意量子比特门的分解方法 |
US7865650B2 (en) * | 2008-04-01 | 2011-01-04 | International Business Machines Corporation | Processor with coherent bus controller at perpendicularly intersecting axial bus layout for communication among SMP compute elements and off-chip I/O elements |
US7917730B2 (en) * | 2008-04-01 | 2011-03-29 | International Business Machines Corporation | Processor chip with multiple computing elements and external i/o interfaces connected to perpendicular interconnection trunks communicating coherency signals via intersection bus controller |
US9721209B2 (en) * | 2013-10-14 | 2017-08-01 | Microsoft Technology Licensing, Llc | Method and system for efficient decomposition of single-qubit quantum gates into Fibonacci anyon braid circuits |
WO2018063206A1 (en) * | 2016-09-29 | 2018-04-05 | Intel Corporation | On-chip control logic for qubits |
US10275391B2 (en) * | 2017-01-23 | 2019-04-30 | International Business Machines Corporation | Combining of several execution units to compute a single wide scalar result |
US10333503B1 (en) | 2018-11-26 | 2019-06-25 | Quantum Machines | Quantum controller with modular and dynamic pulse generation and routing |
US10454459B1 (en) | 2019-01-14 | 2019-10-22 | Quantum Machines | Quantum controller with multiple pulse modes |
US10505524B1 (en) | 2019-03-06 | 2019-12-10 | Quantum Machines | Synchronization in a quantum controller with modular and dynamic pulse generation and routing |
CN110020727B (zh) * | 2019-04-09 | 2021-06-08 | 合肥本源量子计算科技有限责任公司 | 一种基于mpi多进程的单量子逻辑门实现方法 |
US11164100B2 (en) | 2019-05-02 | 2021-11-02 | Quantum Machines | Modular and dynamic digital control in a quantum controller |
US10931267B1 (en) | 2019-07-31 | 2021-02-23 | Quantum Machines | Frequency generation in a quantum controller |
US10862465B1 (en) | 2019-09-02 | 2020-12-08 | Quantum Machines | Quantum controller architecture |
US11245390B2 (en) | 2019-09-02 | 2022-02-08 | Quantum Machines | Software-defined pulse orchestration platform |
US11043939B1 (en) | 2020-08-05 | 2021-06-22 | Quantum Machines | Frequency management for quantum control |
US11671180B2 (en) | 2021-04-28 | 2023-06-06 | Quantum Machines | System and method for communication between quantum controller modules |
US20220374378A1 (en) * | 2021-05-10 | 2022-11-24 | Quantum Machines | System and method for processing between a plurality of quantum controllers |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3656152B2 (ja) * | 1998-08-19 | 2005-06-08 | 独立行政法人理化学研究所 | 量子コンピュータにおける量子ビット素子構造および量子相関ゲート素子構造 |
JP3949318B2 (ja) * | 1999-07-02 | 2007-07-25 | 富士通株式会社 | 量子コンピュータ |
-
2001
- 2001-09-14 JP JP2001279286A patent/JP3542342B2/ja not_active Expired - Fee Related
-
2002
- 2002-08-29 TW TW091119695A patent/TWI271774B/zh not_active IP Right Cessation
- 2002-09-10 EP EP02765467A patent/EP1426856A1/en not_active Withdrawn
- 2002-09-10 CA CA002460483A patent/CA2460483A1/en not_active Abandoned
- 2002-09-10 AU AU2002330511A patent/AU2002330511B2/en not_active Ceased
- 2002-09-10 US US10/488,925 patent/US6963079B2/en not_active Expired - Fee Related
- 2002-09-10 CN CNA028202597A patent/CN1568456A/zh active Pending
- 2002-09-10 WO PCT/JP2002/009187 patent/WO2003025738A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP2003084966A (ja) | 2003-03-20 |
CA2460483A1 (en) | 2003-03-27 |
CN1568456A (zh) | 2005-01-19 |
US20040266084A1 (en) | 2004-12-30 |
EP1426856A1 (en) | 2004-06-09 |
US6963079B2 (en) | 2005-11-08 |
AU2002330511B2 (en) | 2006-12-07 |
TWI271774B (en) | 2007-01-21 |
WO2003025738A1 (fr) | 2003-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3542342B2 (ja) | 半導体演算装置 | |
CN112913017A (zh) | 具有配置成加快人工神经网络(ann)计算的功能块的3d堆叠集成电路 | |
JPS6211960A (ja) | プロセツサアレイ | |
US20030046513A1 (en) | Arrayed processor of array of processing elements whose individual operations and mutual connections are variable | |
TW201807622A (zh) | 多層人造神經網路 | |
US7409529B2 (en) | Method and apparatus for a shift register based interconnection for a massively parallel processor array | |
CN109564585A (zh) | 基于点积的处理元件 | |
WO2022199459A1 (zh) | 一种可重构处理器及配置方法 | |
Khodwe et al. | VHDL Implementation Of Reconfigurable Crossbar Switch For Binoc Router | |
Chen et al. | De Bruijn graph based 3D Network on Chip architecture design | |
Raghunath et al. | A 100 MHz pipelined RLS adaptive filter | |
Grayver et al. | A reconfigurable 8 GOP ASIC architecture for high-speed data communications | |
Dong et al. | Multiple network-on-chip model for high performance neural network | |
Baby et al. | Network on chip simulator: Design, implementation and comparison of Mesh, Torus and RiCoBiT topologies | |
US20110208951A1 (en) | Instruction processor and method therefor | |
Nagaoka et al. | A high-throughput multiply-accumulate unit with long feedback loop using low-voltage rapid single-flux quantum circuits | |
Dimitrakopoulos et al. | Switch folding: Network-on-Chip routers with time-multiplexed output ports | |
CN114443146A (zh) | 基于存算一体存储器的矢量处理器及其运行方法 | |
TW202407703A (zh) | 可調適記憶體內運算電路與其操作方法 | |
Tomabechi et al. | Design of a high‐speed RSA encryption processor based on the residue table for redundant binary numbers | |
Herbordt et al. | Towards scalable multicomputer communication through offline routing | |
Skorupski et al. | The Algorithm for Reversible Circuits Synthesis | |
Satou et al. | An embedded reconfigurable logic core based on variable grain logic cell architecture | |
Shan et al. | The Buffered Edge Reconfigurable Cell Array and Its Applications | |
JPH0727515B2 (ja) | 2次元メッシュ・アレイの処理要素 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20031215 |
|
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: 20040323 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040330 |
|
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 |