(57)【要約】 【課題】積分や積和等の演算を高速かつ低消費電力で行う。【解決手段】本発明の実施形態としての情報処理装置は、デジタル入力信号に応じたパルス長のパルスを含むパルス信号を出力するデジタル−パルス変換器と、双方向選択的発振器とを備える。前記双方向選択的発振器は、リング状に第１方向に接続された複数の遅延素子を有する第１リング発振器と、前記第１方向とは逆の第２方向にリング状に接続された複数の遅延素子を有する第２リング発振器とを含む。前記双方向選択的発振器は、前記デジタル入力信号の符号に応じて第１リング発振器および第２リング発振器のうちの一方を選択し、選択したリング発振器を前記パルスが出力されている間発振させ、前記パルスの出力が停止した時点の発振動作状態を保持する。【選択図】図４
2019153177.tif 000002
【特許請求の範囲】
【請求項１】
デジタル入力信号に応じたパルス長のパルスを含むパルス信号を出力するデジタル−パルス変換器と、
リング状に第１方向に接続された複数の遅延素子を有する第１リング発振器と、前記第１方向とは逆の第２方向にリング状に接続された複数の遅延素子を有する第２リング発振器とを含み、前記デジタル入力信号の符号に応じて第１リング発振器および第２リング発振器のうちの一方を選択し、選択したリング発振器を前記パルスが出力されている間、発振させて、前記パルスの出力が停止した時点の発振動作状態を保持する双方向選択的発振器と
を備えた情報処理装置。
【請求項２】
前記デジタル−パルス変換器は、Ｎ（Ｎは２以上の整数）個のデジタル入力信号に応じたＮ個の前記パルス信号を順に出力し、
前記双方向選択的発振器は、前記Ｎ個のパルス信号の前記パルスが順に入力されるたびに、前記Ｎ個のデジタル入力信号の符号に応じて順に選択したリング発振器を、保持していた前記発振動作状態から発振を再開させる動作を繰り返す
請求項１に記載の情報処理装置。
【請求項３】
前記双方向選択的発振器は、初期パルス信号を、選択したリング発振器内の前記複数の遅延素子にて順繰りに送り、
前記パルスの出力が停止した時点の発振動作状態として、発振回数と、前記初期パルス信号の位相状態とを保持し、
前記Ｎ個のパルス信号が順に入力されるたびに、保持していた前記位相状態から前記初期パルス信号を送る
請求項２に記載の情報処理装置。
【請求項４】
前記Ｎ個目のパルス信号に含まれるパルスの出力が停止した時点の発振動作状態を表すデジタル出力信号を出力する読出部を備える、
請求項３に記載の情報処理装置。
【請求項５】
前記双方向選択的発振器および前記読出部を一組として、前記デジタル入力信号の重み信号ごとに異なる組とした複数の組が設けられ、
前記複数の組における複数の前記読出部から出力された複数の前記デジタル出力信号を、対応する前記重み信号に応じて重み付けする複数の重み付け部と、
前記複数の重み付け部の出力信号を合成する合成部と、を備え、
前記デジタル−パルス変換器は、前記デジタル入力信号を前記重み信号に応じた前記組の前記双方向選択的発振器に入力する、
請求項４に記載の情報処理装置。
【請求項６】
前記デジタル入力信号の符号を判定する符号判定器と、
前記双方向選択的発振器は、前記符号判定器によって判定された符号に基づいて、前記一方のリング発振器を選択する
請求項１ないし５のいずれか一項に記載の情報処理装置。
【請求項７】
前記第１リング発振器および前記第２リング発振器における遅延素子の接続段数はＸであり、
前記第１リング発振器のＹ（Ｙは１以上Ｘ以下の整数）段目の遅延素子の入力と、前記第２リング発振器のＸ−Ｙ＋１段目の遅延素子の出力とが接続されている
請求項１ないし６のいずれか一項に記載の情報処理装置。
【請求項８】
前記デジタル−パルス変換器は、前記デジタル入力信号と前記デジタル入力信号の重み信号とに応じたパルス長のパルスを含む前記パルス信号を出力する、請求項１ないし７のいずれか一項に記載の情報処理装置。
【請求項９】
前記デジタル入力信号を前記デジタル入力信号の重み信号で重み付けしたデジタル入力信号を生成して前記デジタル−パルス変換器に入力する重み付け部を備える、請求項１ないし８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記第１リング発振器および前記第２リング発振器内の前記複数の遅延素子は、前記デジタル入力信号の重み信号に応じた遅延時間を持っている、請求項１ないし９のいずれか一項に記載の情報処理装置。
【請求項１１】
請求項１ないし１０のいずれか一項に記載の情報処理装置を有する演算回路を同一の半導体基板上に複数個配置した積和演算コアを備える、半導体装置。
【請求項１２】
デジタル入力信号に応じたパルス長のパルスを含むパルス信号を出力するステップと、
前記パルス信号が前記パルスを出力している間は発振動作を行い、前記デジタル入力信号が正の場合は第１の方向に位相が遷移するように発振動作を行い、前記デジタル入力信号が負の場合は、前記第１の方向と反対の第２の方向に位相が遷移するように発振動作を行うステップと、
前記パルスの出力が停止した時点の発振動作状態を保持するステップと、
を備える、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、半導体装置および情報処理方法に関する。
【背景技術】
【０００２】
最近、人工知能（ＡＩ：Artificial Intelligence）が注目されているが、数多くのデータを用いた学習と、学習結果を用いた演算処理とを行う必要があり、演算処理量が膨大になる。そこで、ＡＩの処理の少なくとも一部をハードウェアで実現する研究が進められている。ＡＩの演算処理では、積分演算や積和演算等の演算を多数回行う。このため、演算を高速かつ低消費電力で行うハードウェアが求められている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許９３６１５７７号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態は、積分や積和等の演算を高速かつ低消費電力で行うことができる情報処理装置、半導体装置および情報処理方法を提供する。
【課題を解決するための手段】
【０００５】
本発明の実施形態としての情報処理装置は、デジタル入力信号に応じたパルス長のパルスを含むパルス信号を出力するデジタル−パルス変換器と、双方向選択的発振器とを備える。前記双方向選択的発振器は、リング状に第１方向に接続された複数の遅延素子を有する第１リング発振器と、前記第１方向とは逆の第２方向にリング状に接続された複数の遅延素子を有する第２リング発振器とを含む。前記双方向選択的発振器は、前記デジタル入力信号の符号に応じて第１リング発振器および第２リング発振器のうちの一方を選択し、選択したリング発振器を前記パルスが出力されている間発振させ、前記パルスの出力が停止した時点の発振動作状態を保持する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態による情報処理装置の概略構成を示すブロック図。
【図２】デジタル−パルス変換器の内部構成の一例を示すブロック図。
【図３】図２のデジタル−パルス変換器の動作タイミング図。
【図４】双方向選択的発振器の一具体例を示す図。
【図５】発振による初期パルス信号の位相の移動を説明する図。
【図６】図４の情報処理装置に３個のデジタル入力信号を順に入力した場合のタイミング図。
【図７】本実施形態による情報処理装置の処理アルゴリズムを示すフローチャート。
【図８】第２の実施形態による情報処理装置の概略構成を示すブロック図。
【図９】第２の実施形態による可変遅延器の内部構成の一例を示すブロック図。
【図１０】図９の構成の変形例を示すブロック図。
【図１１】第３の実施形態による情報処理装置の概略構成を示すブロック図。
【図１２】図１１の各リング発振器を構成する各遅延素子の内部構成の一例を示すブロック図。
【図１３】図１２の構成の変形例を示すブロック図。
【図１４】図１２の構成の他の変形例を示すブロック図。
【図１５】第４の実施形態による情報処理装置の概略構成を示すブロック図。
【図１６】第５の実施形態による情報処理装置の概略構成を示すブロック図。
【図１７】第１〜第６の実施形態で説明した情報処理装置を複数個有する並列的に動作可能な積和演算コアの内部構成の一例を示すブロック図。
【図１８】図１７に示した積和演算コアを備えた信号処理装置の概略構成の一例を示すブロック図。
【図１９】脳型のニューラルネットワークシステムの一例を示すブロック図。
【発明を実施するための形態】
【０００７】
以下、図面を参照しながら、本発明の実施形態について説明する。
【０００８】
（第１の実施形態）
図１は第１の実施形態による情報処理装置の概略構成を示すブロック図である。図１の情報処理装置は、Ｎ（Ｎは２以上の整数）個のデジタル入力信号の積分結果を計算する演算回路である。図１の情報処理装置のデジタル入力信号をＤＩＮ［１：Ｎ］で表す場合、出力であるデジタル出力信号Ｏｕｔは、以下の（１）式で表される。
【０００９】
【数１】
2019153177.tif 000003
【００１０】
図１の情報処理装置は、デジタル−パルス変換器１と、符号判定器２と、双方向選択的発振器３と、読出部４とを備えている。
【００１１】
デジタル−パルス変換器１は、デジタル入力信号に応じたパルス長のパルスを含むパルス信号を出力する。例えば、デジタル入力信号が１の場合、１ｎｓのパルス長のパルスを含むパルス信号を出力し、デジタル入力信号が４の場合、４ｎｓのパルス長のパルスを含むパルス信号を出力する。
【００１２】
図２はデジタル−パルス変換器１の内部構成の一例を示すブロック図、図３は図２のデジタル−パルス変換器１の動作タイミング図である。図２のデジタル−パルス変換器１は、可変遅延器５と、インバータ６と、論理積回路７とを有する。可変遅延器５には、トリガ信号とデジタル入力信号とが入力されている。トリガ信号は、デジタル−パルス変換器１の動作開始タイミングに合わせて、ローレベルからハイレベルに切り替わる信号である。可変遅延器５は、トリガ信号をデジタル入力信号に応じた遅延量だけ遅延させた遅延トリガ信号を出力する。インバータ６は、遅延トリガ信号を反転出力する。論理積回路７は、インバータ６の出力信号とトリガ信号との論理積信号を出力する。論理積回路７の出力信号が、デジタル入力信号に応じたパルス長のパルスを含むパルス信号である。パルス信号のパルス部分はハイレベル、それ以外の部分はローレベルである。
【００１３】
図３の時刻ｔ１でトリガ信号がローレベルからハイレベルに変化すると、可変遅延器５は、トリガ信号を、デジタル入力信号に応じた時間Ｔだけ遅延させて、時刻ｔ２でローレベルからハイレベルに変化する遅延トリガ信号を出力する。論理積回路７は、トリガ信号と遅延トリガ信号の反転信号との論理積であるパルス信号を出力する。パルス信号に含まれるパルスのパルス長は、可変遅延器５がトリガ信号を遅延させた時間Ｔにほぼ等しくなる。
【００１４】
符号判定器２は、デジタル入力信号の符号を判定し、判定結果を示す符号信号を、双方向選択的発振器３および読出部４に出力する。判定結果が正であれば、符号信号はハイレベル、判定結果が負であれば、符号信号はローレベルとする。ただし、符号と信号レベルとの関係は逆でもよい。
【００１５】
双方向選択的発振器３は、パルス信号のパルスが入力されている間、発振動作を行い、パルスの入力が停止した時点の発振動作状態を保持する。換言すれば、双方向選択的発振器３は、イネーブル信号がハイレベルの間のみ発振動作を行い、イネーブル信号がローレベルの間は発振が停止し、イネーブル信号がハイレベルからローレベルに切り替わった状態での発振動作状態を保存する。発振動作の方向（位相の変化方向）は、符号判定器２から入力される符号信号によって決定される。符号信号がハイレベルであれば順方向、符号信号がローレベルであれば逆方向へと、位相が変化する。イネーブル信号がローレベルになっている間は発振は止まり、発振の位相状態は保存される。ここで、発振動作状態は、例えば発振信号の発振回数と位相状態を含む。位相が順方向に一巡（２π変化）すれば、発振回数は１増える。発振回数と位相状態の組により、演算結果値（デジタル入力信号値の積分）を特定できる。
【００１６】
読出部４は、発振動作状態を含むデジタル出力信号を出力する。すなわち、読出部４は、双方向選択的発振器３の発振信号の発振回数と位相状態の情報を含むデジタル出力信号を出力する。ここではデジタル出力信号に発振動作状態を含めたが、発振動作状態を演算結果値（積分値）に変換し、積分値をデジタル出力信号に含めてもよい。つまり、デジタル出力信号には、発振動作状態そのものを示す情報を含めても、発振動作状態を変換した積分値を含めてもよい。
【００１７】
図４は双方向選択的発振器３の一具体例を示す図である。双方向選択的発振器３は、マルチプレクサ１１と、順方向リング発振器８Ａおよび複数の切替器９Ａと、逆方向リング発振器８Ｂおよび複数の切替器９Ｂと、カウンタ１０とを有する情報処理装置である。順方向リング発振器８Ａおよび逆方向リング発振器８Ｂをあわせて双方向選択的リング発振器とする。
【００１８】
マルチプレクサ１１は、符号判定器２から符号信号が入力され、デジタル−パルス変換器１からパルス信号が入力される。マルチプレクサ１１は、デジタル−パルス変換器１から入力されるパルス信号がパルス（ハイレベル）である間、符号信号がハイレベルのときは、切替器９Ａをすべてオンにする信号（ＧＲＯＰ信号）を出力し、符号信号がローレベルのときは、切替器９Ｂをすべてオンにする信号（ＧＲＯＮ信号）を出力する。
【００１９】
順方向リング発振器８Ａは、リング状に接続された複数の遅延素子８ａを有し、初期パルス信号を複数の遅延素子８ａにて順方向に（紙面に沿って右方向に）順繰りに伝送する。順方向リング発振器８Ａ内の遅延素子８ａの接続段数は奇数個である。本例では接続段数は７である。各遅延素子８ａは、例えばインバータである。
【００２０】
複数の切替器９Ａは、複数の遅延素子８ａに遅延動作を行わせるか否かを切り替える。各切替器９Ａは、例えば、対応する遅延素子８ａに電源電圧を供給するか否かを切り替える。以下では、各切替器９Ａが対応する遅延素子８ａに電源電圧を供給する場合をオン、各切替器９Ａが対応する遅延素子８ａに電源電圧を供給しない場合をオフと呼ぶ。各遅延素子８ａは、対応する切替器９Ａがオンの場合には、前段の遅延素子８ａの出力信号を遅延させて出力し、対応する切替器９Ａがオフの場合には、信号の伝搬遅延動作を停止する。すべての切替器９Ａは同期してオンまたはオフする。すなわち、一部の切替器９Ａがオンになって他の切替器９Ａがオフになることはない。すべての切替器９Ａがオンになることで、順方向リング発振器８Ａが発振し、初期パルス信号を複数の遅延素子８ａにて順繰りに伝送する動作が実現される。
【００２１】
逆方向リング発振器８Ｂは、リング状に接続された複数の遅延素子８ｂを有し、上記初期パルス信号を複数の遅延素子８ｂにて逆方向に（紙面に沿って左方向に）順繰りに伝送する。逆方向リング発振器８Ｂ内の遅延素子８ｂの接続段数は奇数個である。本例では接続段数は７である。各遅延素子８ｂは、例えばインバータである。遅延素子８ｂの遅延量は、遅延素子８ａの遅延量と同じである。
【００２２】
複数の切替器９Ｂは、複数の遅延素子８ｂに遅延動作を行わせるか否かを切り替える。各切替器９Ｂは、例えば、対応する遅延素子８ｂに電源電圧を供給するか否かを切り替える。各遅延素子８ｂは、対応する切替器９Ｂがオンの場合には、前段の遅延素子８ｂの出力信号を遅延させて出力し、対応する切替器９Ｂがオフの場合には、信号の伝搬遅延動作を停止する。すべての切替器９Ｂは同期してオンまたはオフする。すなわち、一部の切替器９Ｂがオンになって他の切替器９Ｂがオフになることはない。すべての切替器９Ｂがオンになることで、逆方向リング発振器８Ｂが発振し、初期パルス信号を複数の遅延素子８ｂにて順繰りに伝送する動作が実現される。
【００２３】
ここで順方向リング発振器８Ａおよび逆方向リング発振器８Ｂにおける遅延素子の接続段数をＸとすると、順方向リング発振器８ＡのＹ（Ｙは１以上Ｘ以下の整数）段目の遅延素子の入力と、逆方向リング発振器８ＢのＸ−Ｙ＋１段目の遅延素子の出力とが接続されている。具体的には、順方向リング発振器８Ａの１段目の遅延素子８ａの入力端子は、逆方向リング発振器８Ｂの７段目の遅延素子８ｂの出力端子と接続されている。順方向リング発振器８Ａの２段目の遅延素子８ａの入力端子は、逆方向リング発振器８Ｂの６段目の遅延素子８ｂの出力端子と接続されている。同様にして、順方向リング発振器８Ａの３〜Ｘ段目の遅延素子８ａの出力端子は、逆方向リング発振器８ＢのＸ−３＋１〜１段目の遅延素子８ｂの入力端子と接続されている。このような接続により、順方向リング発振器８Ａおよび逆方向リング発振器８Ｂ間で、発振動作状態を共有できる。
【００２４】
ノードｎ０は、１段目の遅延素子８ａの入力側のノード（７段目の遅延素子８ｂの出力側ノード）を表し、ノードｎ１、ｎ２、ｎ３、ｎ４、ｎ５、ｎ６は、１段目〜６段目の遅延素子８ａの出力側のノードを表している。
【００２５】
図５は、あるパルス長の初期パルス信号の位相が、順方向リング発振器８Ａによって順方向に、遅延素子の遅延時間に応じた遷移量（遅延量）Ｄずつ移動させられる例を示している。ノードｎ０〜ノードｎ６の信号波形が示されている。紙面に沿って上から順に、位相が順方向に移動させられている。逆方向リング発振器８Ｂによって位相を移動させる場合、これとは逆方向となる。初期パルス信号が順方向リング発振器８Ａを１周すると、位相が２π移動する。これらのノードのハイレベル／ローレベルの組み合わせに対して値が割り当てられている。詳細は後述する。
【００２６】
図６は図４の情報処理装置に３個のデジタル入力信号を順に入力した場合のタイミング図である。図６は、デジタル入力信号として、３と、−２と、９とが順に入力された例を示している。ここで、双方向選択的発振器３は所望の状態に初期化されているとし、発振状態のデューティは無視し簡単のため位相状態をパルスに置き換えて説明する。順方向リング発振器８Ａおよび逆方向リング発振器８Ｂは、最初のデジタル入力信号が入力される前にいったんリセットされ、１段目の遅延素子８ａに所定のパルス長の初期パルス信号が入力される。リセットの方法は任意の方法で行うことができる。一例として、１段目の遅延素子８ａをＮＡＮＤ、２段目以降の遅延素子８ａをインバータで構成し、ＮＡＮＤの２つの入力のうちの一方をローレベルにし、他方の入力を、最終段の遅延素子８ｂの出力に接続した状態で、発振させばよい。これにより、双方向選択的発振器を一意の位相に揃えることができる。リセット完了後は、ＮＡＮＤの上記一方の入力をマルチプレクサ１１に接続すればよい。
【００２７】
３を表すデジタル入力信号が入力されると、３の符号は正のため、符号信号がハイレベルになる。一方、デジタル−パルス変換器１は、３に対応するパルス長（遅延素子８ａの遅延量３個分のパルス長）のパルスを含むパルス信号を時刻ｔ１で出力する。このパルス長のパルスが出力されている最中は、すべての切替器９Ａがオンして、すべての遅延素子８ａに電源電圧が供給される。初期状態では、１段目の遅延素子８ａの入力端子に初期パルス信号が入力されており、まずノードｎ１に初期パルス信号（ハイレベル状態）が移り、遅延素子を介して、後段の遅延素子へ、伝搬していく。ここでは、３個分の遅延素子分、初期パルス信号が伝搬し、時刻ｔ２で、デジタル−パルス変換器１の出力パルスが立ち下がったときに、３段目の遅延素子８ａの出力側のノードｎ３まで伝搬されている。ＧＲＯＰ信号がローレベルになってすべての切替器９Ａはオフし、双方向選択的発振器３の発振は止まり、初期パルス信号の位相状態が保存される。
【００２８】
その後、−２を表すデジタル入力信号が入力されると、―２の符号は負のため、符号信号がハイレベルからローレベルへと切り替わる。デジタル−パルス変換器１は、時刻ｔ３で、−２に対応するパルス長（遅延素子８ｂの遅延量の２個分のパルス長）のパルスを含むパルス信号を出力する。このパルス長のパルスが出力されている最中は、すべての切替器９Ｂがオンして、すべての遅延素子８ｂに電源電圧が供給される。３段目の遅延素子８ａ（あるいは４段目の遅延素子８ｂ）が保持していた初期パルス信号は、２個の遅延素子８ｂ分だけ、逆方向リング発振器８Ｂによって逆方向にノードｎ１まで移動させられる。そして、時刻ｔ４で出力パルスが立ち下がると、ＧＲＯＮ信号がローレベルになってすべての切替器９Ｂはオフし、双方向選択的発振器の発振は止まり、初期パルス信号の位相状態が保存される。
【００２９】
その後、９を表すデジタル入力信号が入力されると、９の符号は正のため、符号信号がローレベルからハイレベルへと切り替わる。デジタル−パルス変換器１は、時刻ｔ５で、９に対応するパルス長のパルスを含むパルス信号を出力する。このパルス長のパルスが出力されている最中は、すべての切替器９Ａがオンして、すべての遅延素子８ａに電源電圧が供給される。左から１段目の遅延素子８ａ（または７段目の遅延素子８ｂ）が保持していた初期パルス信号は、９個の遅延素子８ａ分だけ、順方向リング発振器８Ａによって順方向に移動させられ、ループを一巡して、ノードｎ３まで移動させられる。そして、時刻ｔ６で出力パルスが立ち下がると、ＧＲＯＰ信号がローレベルになってすべての切替器９Ａはオフし、双方向選択的発振器の発振は止まり、その初期パルス信号の位相状態が保存される。
【００３０】
このように、図１の情報処理装置は、単一の双方向選択的発振器３を用いることで、複数のデジタル入力信号の積分処理を行うことができる。
【００３１】
読出部４は、符号判定器２から入力される符号信号に基づき、発振方向が順方向か逆方向かを判断する（双方向選択的リング発振器の信号のみでは、発振方向が分からない）。読出部４は、符号信号が正であれば、初期パルス信号が順方向に移動していると判断して、順方向に沿って位相状態の変化を検出し、符号信号が負であれば、初期パルス信号が逆方向に移動していると判断し、逆方向に沿って位相状態の変化を検出する。初期パルス信号が双方向選択的発振器を順方向に一回りするごとに（すなわち位相が順方向に一周する（２π変化する）ごとに）発振回数を１カウントアップし、逆方向に一回りするたびに（すなわち位相が逆方向に一周する（２π変化する）ごとに）１カウントダウンさせる。読出部４はこのように発振回数をカウントするカウンタ１０を備える。
【００３２】
読出部４は、双方向選択的リング発振器８内のノードｎ０〜ｎ６の信号レベル（ハイレベル／ローレベル）に基づき、初期パルス信号の位相状態を検出する。読出部４は、発振回数と位相状態を含むデジタル出力信号を生成して出力する。または、発振回数と位相状態とから積分結果を算出し、算出した積分結果を含むデジタル出力信号を出力する。上述した動作例では、発振回数は０であり、位相状態は１０を表ため、積分結果は１０（＝３−２＋９）となる。
【００３３】
ここで初期パルス信号の位相状態と、位相状態に対応する値との関係について説明する。
図４に示した回路の例では、位相状態は０〜１３までの１４段階（順方向または逆方向リング発振器の段数×２）をとる。これに応じて、各位相状態に対して、前述した図５に示したように、値を割り当てる。すなわち、以下の通りである。ただし、位相状態と値間の割り当ては、以下の例に限定されない。
ノードｎ０〜ｎ６がすべてローレベルのとき０。
ノードｎ０〜ｎ６がすべてハイレベルのとき７。
ノード０がハイレベル、かつノード１がローレベルのとき１。
ノード１がハイレベル、かつノード２がローレベルのとき２。
ノード２がハイレベル、かつノード３がローレベルのとき３。
ノード３がハイレベル、かつノード４がローレベルのとき４。
ノード４がハイレベル、かつノード５がローレベルのとき５。
ノード５がハイレベル、かつノード６がローレベルのとき６。
ノード０がローレベル、かつノード１がハイレベルのとき８。
ノード１がローレベル、かつノード２がハイレベルのとき９。
ノード２がローレベル、かつノード３がハイレベルのとき１０。
ノード３がローレベル、かつノード４がハイレベルのとき１１。
ノード４がローレベル、かつノード５がハイレベルのとき１２。
ノード５がローレベル、かつノード６がハイレベルのとき１３。  
【００３４】
このように、図４に示した情報処理装置は、カウンタ１０がオーバーフローレベルしない限り、複数のデジタル入力信号の積分処理を延々と実行することができる。これにより、多数のデジタル入力信号の積分処理を図４の情報処理装置だけで実行でき、積分処理に要する回路規模を削減できる。
【００３５】
本実施形態による情報処理装置は、ハードウェアにより構成することを想定しているが、例えばプロセッサが所定のアルゴリズムに沿って生成されたマイクロコードを読み込んで実行してもよい。
図７は本実施形態による情報処理装置の処理アルゴリズムを示すフローチャートである。
【００３６】
デジタル−パルス変換器１にデジタル入力信号が入力されると（ステップＳ１）、デジタル−パルス変換器１は、デジタル入力信号に応じたパルス長のパルスを含むパルス信号を生成する（ステップＳ２）。双方向選択的発振器３は、ステップＳ１とＳ２の処理に前後して、初期パルス信号を生成するとともに、双方向選択的発振器３内の順方向リング発振器８Ａおよび逆方向リング発振器をリセットする（ステップＳ３）。
【００３７】
ステップＳ２で生成したパルス信号が双方向選択的発振器３に入力されると、デジタル入力信号の符号に応じて選択されるリング発振器（８Ａまたは８Ｂ）に対する複数の切替器が、このパルス信号のパルス長の期間だけオンし、選択されたリング発振器は、パルス信号のパルス長だけ初期パルス信号を伝搬させる（ステップＳ４）。このとき、初期パルス信号が双方向選択的発振器３を一周した場合には、カウンタ１０をカウントアップさせる。
【００３８】
ステップＳ２で生成したパルス信号のパルス長の期間が経過すると、複数の切替器（９Ａまたは９Ｂ）はオフし、初期パルス信号の位相状態（各ノードの信号レベル）を保持する（ステップＳ５）。
【００３９】
次に、新たなデジタル入力信号がデジタル−パルス変換器１に入力されたか否かを判定する（ステップＳ６）。新たなデジタル入力信号が入力されなかった場合は（ステップＳ６のＮＯ）、読出部４は、初期パルス信号の位相状態と、カウンタ１０のカウント値で表される双方向選択的発振器３の発振回数とを含むデジタル出力信号を出力して、処理を終了する（ステップＳ７）。位相状態と発振回数とから積分値を特定し、積分値を含むデジタル信号を出力してもよい（同ステップＳ７）。
【００４０】
ステップＳ６で新たなデジタル入力信号がデジタル−パルス変換器１に入力された場合には（ステップＳ６のＹＥＳ）、ステップＳ２と同様に、新たなデジタル入力信号に応じたパルス長のパルスを含むパルス信号を生成する（ステップＳ８）。ステップＳ８で生成したパルス信号が双方向選択的発振器３に入力されると、デジタル入力信号の符号に応じて選択されるリング発振器（８Ａまたは８Ｂ）に対する複数の切替器（９Ａまたは９Ｂ）がオンし、選択されたリング発振器は、保持されている初期パルス信号を、新たなパルス信号のパルス長だけ伝搬させる（ステップＳ９）。そして、ステップＳ８で生成したパルス信号のパルス長の期間が経過すると、ステップＳ５以降の処理を行う。
【００４１】
このように、第１の実施形態では、デジタル入力信号に応じたパルス長のパルスを含むパルス信号をデジタル−パルス変換器１にて生成し、このパルス信号が入力される双方向選択的発振器３では、デジタル入力信号の符号に応じて選択したリング発振器で、パルス信号がパルスを出力している最中に発振動作を行い、パルスの出力が停止した時点の発振動作状態を保持するため、簡易な回路構成にて正負を含む複数のデジタル入力信号の積分を行うことができる。特に、第１の実施形態では、複数のデジタル入力信号を順にデジタル−パルス変換器１に入力することで、同一の双方向選択的発振器３を用いて積分を行えるため、演算対象のデジタル入力信号の数が増えても、情報処理装置の構成が複雑化することがないため、多数のデジタル入力信号の積分を簡易な回路構成の情報処理装置にて行うことができる。
【００４２】
（第２の実施形態）
第２の実施形態は、積和演算を行えるようにしたものである。
【００４３】
図８は第２の実施形態による情報処理装置の概略構成を示すブロック図である。図８の情報処理装置は、デジタル−パルス変換器１および符号判定器２の処理動作が図１の情報処理装置とは異なっている。図８のデジタル−パルス変換器１および符号判定器２には、デジタル入力信号に応じた重み信号が入力される。入力信号行列がＤＩＮ［１：Ｎ］、重み信号がＷ［１：Ｎ］で表される場合、図８の情報処理装置の出力であるデジタル出力信号Ｏｕｔは、以下の（２）式で表される。
【００４４】
【数２】
2019153177.tif 000004
【００４５】
（２）式の演算を行う一手法として、図８の情報処理装置では、デジタル−パルス変換器１にて、各デジタル入力信号の重み付けを行っている。
【００４６】
符号判定器２は、デジタル入力信号と、重み信号との積の符号を判定し、符号信号を双方向選択的発振器３と読出部４に出力する。
【００４７】
図８のデジタル−パルス変換器１は、図２と同様のブロック構成で表されるが、可変遅延器５の内部構成に特徴がある。
【００４８】
図９は第２の実施形態による可変遅延器５の内部構成の一例を示すブロック図である。
図９の下側に示すように、可変遅延器５は、４つの第１遅延回路１１Ａ、１１Ｂ、１１Ｃ、１１Ｄと、４入力の第１マルチプレクサ１２とを有する。４つの第１遅延回路１１Ａ、１１Ｂ、１１Ｃ、１１Ｄは、可変遅延素子１３の接続段数がそれぞれ異なっており、可変遅延素子１３の接続段数に応じて遅延量がそれぞれ異なっている。第１マルチプレクサ１２は、デジタル入力信号に基づいて、４つの第１遅延回路１１Ａ、１１Ｂ、１１Ｃ、１１Ｄの出力信号のうち一つを選択する。
【００４９】
各可変遅延素子１３は、図９の上側に示すように、４つの第２遅延回路１４Ａ、１４Ｂ、１４Ｃ、１４Ｄと、４入力の第２マルチプレクサ１５とを有する。４つの第２遅延回路１４Ａ、１４Ｂ、１４Ｃ、１４Ｄは、遅延素子１６の接続段数がそれぞれ異なっており、デジタル入力信号に対応する重み信号に基づいて、４つの第２遅延回路１４Ａ、１４Ｂ、１４Ｃ、１４Ｄの出力信号のうち一つを選択する。
【００５０】
図９の可変遅延器５では、デジタル入力信号と重み信号がいずれも２ビットで表される例を示している。デジタル入力信号が２ビットで表される場合、４種類のデジタル入力信号が存在するため、図９の下側の第１マルチプレクサ１２により、４種類のうちいずれか一つの遅延量を選択する。また、重み信号が２ビットで表される場合、４種類の重み信号が存在するため、図９の上側の第２マルチプレクサ１５により、４種類のうちいずれか一つの遅延量を選択する。これにより、可変遅延器５は、デジタル入力信号に応じて遅延量を変化させるだけでなく、重み信号によっても遅延量を変化させる。
【００５１】
なお、デジタル入力信号と重み信号のビット数は必ずしも２ビットには限定されない。
デジタル入力信号と重み信号のビット数に応じて図９の可変遅延器５の回路構成を変更すればよい。
【００５２】
図９のデジタル−パルス変換器１で変換されたパルス信号は、図８の双方向選択的発振器３に入力される。双方向選択的発振器３は、第１の実施形態と同様に、デジタル入力信号の符号に応じて選択されるリング発振器で、パルス信号のパルス長の期間だけ発振動作を行い、パルスの出力期間が経過した時点での発振動作状態を保持する。これにより、デジタル−パルス変換器１にて積算した演算結果を双方向選択的発振器３にて積分することができる。
【００５３】
このように、第２の実施形態では、デジタル−パルス変換器１にて、デジタル入力信号に対応する重み信号によってデジタル入力信号を重み付けするため、積和演算を行うことができる。また、デジタル入力信号の重み付けは、複数の遅延回路とマルチプレクサによって行えるため、複雑な構成の乗算回路を設けなくて済む。
【００５４】
図１０は、図９の可変遅延器５の変形例を示す。図９の例では、第１マルチプレクサ１２の各入力に、異なる接続段数の可変遅延素子１３を含む第１遅延回路を配置したが、図１０の下側に示すように、第１マルチプレクサ１２の４番目の入力（紙面に沿って一番下側）に、可変遅延素子１３を４つ直列に接続した第１遅延回路１１を接続する。第１マルチプレクサ１２の１番目の入力には、第１遅延回路１１における１段目の可変遅延素子の出力、２番目の入力には、第１遅延回路１１における２段目の可変遅延素子の出力、３番目の入力には第１遅延回路１１における３段目の可変遅延素子の出力を接続する。これによって、図９と同様の動作を、少ない可変遅延素子で実現できる。よって、回路を低面積化できる。なお、第１遅延回路１１を第１マルチプレクサ１２の４番目の入力でなく、他の入力に接続してもかまわない。
【００５５】
各可変遅延素子１３の構成は、図９と同様であるが、可変遅延器５と同様の変形を行ってもよい。すなわち、第２マルチプレクサ１５の例えば４番目の入力に、遅延素子１６を４つ直列に接続した第２遅延回路１４を接続し、１〜３番目の入力に、第２遅延回路１４における１〜３段目の遅延素子の出力を接続してもよい。これによって、回路を低面積化できる。
【００５６】
（第３の実施形態）
第２の実施形態では、デジタル−パルス変換器１にて、デジタル入力信号と重み信号との積算を行うため、重み信号が大きいほど、双方向選択的発振器３に入力されるパルス信号のパルス長が長くなり、双方向選択的発振器３の発振回数が増大して、演算処理に時間がかかってしまう。以下に説明する第３の実施形態は、この問題を解決するものである。
【００５７】
図１１は第３の実施形態による情報処理装置の概略構成を示すブロック図である。図１１の情報処理装置は、双方向選択的発振器３の構成が図１や図８の情報処理装置とは異なっている。符号判定器２の構成は、図８と同じである。図１１の双方向選択的発振器３および符号判定器２には、デジタル−パルス変換器１から出力されたパルス信号の他に、重み信号が入力されている。図１１の双方向選択的発振器３は、重み信号により発振周波数を制御し、これにより、積和演算を行う。
【００５８】
図１２は図１１の双方向選択的発振器３内の順方向リング発振器８Ａを構成する各遅延素子８ａの内部構成の一例を示すブロック図である。逆方向リング発振器８Ｂを構成する各遅延素子８ｂの構成は、遅延素子８ａと同様であるため、図示および説明を省略する。
【００５９】
図１２の遅延素子８ａは、４つの第３遅延回路８ｆ＿１、８ｆ＿２、８ｆ＿３、８ｆ＿４と、４入力の第３マルチプレクサ８ｃとを有する。４つの第３遅延回路８ｆ＿１、８ｆ＿２、８ｆ＿３、８ｆ＿４は、単位遅延素子８ｄの接続段数がそれぞれ異なっており、単位遅延素子８ｄの接続段数に応じて遅延量がそれぞれ異なっている。第３マルチプレクサ８ｃは、デジタル入力信号に応じた重み信号に基づいて、４つの第３遅延回路８ｆ＿１、８ｆ＿２、８ｆ＿３、８ｆ＿４の出力信号のうち一つを選択する。
【００６０】
順方向リング発振器８Ａは、図４に示したように、複数の遅延素子８ａをリング状に接続したものであり、各遅延素子８ａは、図１２のように一つまたは複数の単位遅延素子８ｄで構成される。各単位遅延素子８ｄは例えばインバータである。順方向リング発振器８Ａの発振周波数は、第３マルチプレクサ８ｃの遅延量を無視すると、各単位遅延素子８ｄの遅延量をｔｉｎｖ、順方向リング発振器８Ａを構成する全遅延素子８ａ分の単位遅延素子８ｄの個数をＺとすると、以下の（３）式で表される。
【００６１】
【数３】
2019153177.tif 000005
【００６２】
（３）式からわかるように、順方向リング発振器８Ａ内の全単位遅延素子８ｄの個数Ｚと各単位遅延素子８ｄの遅延量ｔｉｎｖにより、発振周波数が変化する。例えば、デジタル入力信号ＤＩＮが９の場合、Ｚ＝３のときの発振回数は３回であり、Ｚ＝５のときの発振回数は９／５＝１．８回になり、単位遅延素子８ｄの接続段数に応じた積算が行われる。例えば、重み信号が大きいほど、Ｎの値を小さくすることで、順方向リング発振器８Ａの発振周波数が高くなり、より迅速に積和演算を行うことができる。
【００６３】
このように、第３の実施形態では、重み信号に応じて順方向リング発振器および逆方向リンク発振器の発振周波数を可変制御するため、重み信号が大きくなっても、双方向選択的発振器３での積和演算に時間がかからなくなる。リング発振器の発振周波数を変更する手法は上述した段数を変更する方法だけではなく、一般的なデジタル制御型リング発振器（ＤＣＯ：Digitally Controlled Oscillator）の手法も用いることができる。例えば発振周波数を変えるためには、各インバータ出力にデジタル信号で制御される可変容量負荷を加えることで、式（３）の遅延量ｔｉｎｖを変動させて発振周波数を制御することができる。また電流駆動形インバータを用いて駆動する電流を制御することで、遅延量ｔｉｎｖを変動させて発振周波数ｆｒｅｑを制御することもできる。
【００６４】
図１３は、図１２に示した遅延素子８ａの内部構成の変形例を示す。遅延素子８ｂの内部構成についても同様の変形が可能である。図１２の例では、第３マルチプレクサ８ｃの各入力に、異なる接続段数の単位遅延素子８ｄを含む第３遅延回路を接続したが、本例では、第３マルチプレクサ８ｃの４番目の入力（紙面に沿って一番下側）に、単位遅延素子８ｄの接続段数が４の第３遅延回路８ｆ＿４を接続する。第３マルチプレクサ８ｃの１番目の入力には、第３遅延回路８ｆ＿４における１段目の単位遅延素子８ｄの出力、２番目の入力には、第３遅延回路８ｆ＿４における３段目の単位遅延素子８ｄの出力、３番目の入力には第３遅延回路８ｆ＿４における５段目の単位遅延素子８ｄの出力を接続する。これによって、図１２と同様の動作を、少ない単位遅延素子数で実現できる。よって、回路を低面積化できる。なお、第３遅延回路８ｆ＿４を第３マルチプレクサ８ｃの４番目の入力でなく、他の入力に接続してもかまわない。
【００６５】
図１４は、図１２に示した遅延素子８ａの内部構成の他の変形例を示す。遅延素子８ｂの内部構成についても同様の変形が可能である。図１２の例では、第３マルチプレクサ８ｃの各入力に、異なる接続段数の単位遅延素子８ｄを含む第３遅延回路を接続したが、本例では、各入力に、異なる遅延量の遅延素子を接続する。１番目の入力に最も遅延量が小さい遅延素子８ｄ＿１、２番目の入力に２番目に遅延量が小さい遅延素子８ｄ＿２、３番目の入力に３番目に遅延量が小さい遅延素子８ｄ＿３、４番目の入力に最も遅延量が大きい遅延素子８ｄ＿４を接続する。第３マルチプレクサ８ｃは、デジタル入力信号に応じた重み信号に基づいて、４つの遅延素子８ｄ＿１〜８ｄ＿４の出力信号のうち一つを選択する。例えば、重み信号が大きいほど、遅延量の小さい遅延素子を選択する。これにより、発振周波数が高くなり、より迅速に積和演算を行うことができる。
【００６６】
（第４の実施形態）
以下に説明する第４の実施形態は、１つ以上の読出部の出力信号に対して和演算を行うものである。
【００６７】
図１５は第４の実施形態による情報処理装置の概略構成を示すブロック図である。図１５の情報処理装置は、複数組の双方向選択的発振器３および読出部４を備えている。各組の双方向選択的発振器３および読出部４は、デジタル入力信号のそれぞれ異なる重み信号に対応するものである。図１５は、３種類の重み信号ｗ１〜ｗ３に対応づけて、３組の双方向選択的発振器３および読出部４を設ける例を示している。なお、重み信号の種類は３種類とは限らない。例えば、ｎ種類の重み信号がある場合には、ｎ組の双方向選択的発振器３および読出部４を設ければよい。
【００６８】
符号判定器２には、重み信号が入力される。符号判定器２は、重み信号に応じた１つ以上の組を選択する。例えば、重み信号が１を表すときは、１番目の組を選択する。重み信号が２を表すときは、２番目の組を選択する。重み信号が３を表すときは、３番目の組を選択する。重み信号のビット数がＳビットであれば、２のＳ乗だけ、重み信号のパターンがあり、各パターンに応じた組を配置しておく。選択された組の双方向選択的発振器３は、入力されたパルス信号のパルス長の期間だけ発振動作を行う。選択された組の読出部４は、対応する双方向選択的発振器３の発振動作状態を含むデジタル出力信号を出力する。
【００６９】
各組の読出部４には、対応する乗算器（重み付け部）１７が接続されている。各組の乗算器１７には、重み信号に対応する係数が与えられる。例えば１番目の組の乗算器１７には１、２番目の組には２、３番目の組の乗算器１７には３が与えられる。各組の乗算器１７は、対応するデジタル出力信号に、対応する係数を乗じる処理を行う。各乗算器１７の乗算結果は加算器（合成部）１８にて合算されて、最終的な積和演算結果が得られる。
【００７０】
このように、第４の実施形態では、積和演算処理を読出部４の後段側で行うため、双方向選択的発振器３の演算処理時間が重み信号によって変動するおそれはない。また、第３の実施形態よりも双方向選択的発振器３の内部構成を簡略化できる。
【００７１】
（第５の実施形態）
第５の実施形態は、デジタル−パルス変換器１に入力されるデジタル入力信号を重み付けするものである。
【００７２】
図１６は第５の実施形態による情報処理装置の概略構成を示すブロック図である。図１６の情報処理装置は、図１の構成に加えて、乗算器（重み付け部）１９を備えている。乗算器１９は、デジタル入力信号に重み信号を乗じる処理を行う。乗算器１９により重み付けされたデジタル入力信号がデジタル−パルス変換器１に入力される。デジタル−パルス変換器１、双方向選択的発振器３および読出部４の処理動作は、図１の情報処理装置と同じであるが、デジタル−パルス変換器１に入力されるデジタル入力信号自体がすでに重み付けされているため、図１６の情報処理装置は、積和演算を行うことができる。
【００７３】
このように、デジタル−パルス変換器１の前段側でデジタル入力信号の重み付け処理を行うため、デジタル−パルス変換器１以降の構成を図１と同じにしても、積和演算を行うことができる。
【００７４】
上述した図８〜図１６の重み付け処理のうち、少なくとも二つ以上の重み付け処理を組み合わせて実施してもよい。例えば、図８のデジタル−パルス変換器１内の重み付け処理と、図１１の双方向選択的発振器３内の重み付け処理とを行ってもよい。これにより、より複雑な積和演算処理を行うことができる。
【００７５】
（第６の実施形態）
デジタル入力信号と重み信号は、バイナリ値であるが、２のべき乗を単位として変化する値として表現してもよい。例えば、デジタル入力信号０００＝０、００１＝１、０１０＝２、０１１＝３、１００＝８などとしてもよい。２のべき乗で表される値は、対数ｌｏｇ２で表記すると、１ずつ増える値になり、取扱に便利であり、可変遅延器５の設計などを簡略化することができる。
【００７６】
一方、デジタル入力信号と重み信号を、同じ値ずつ変化する値としてもよい。これにより、各信号の値の間隔を一定にでき、より高精度の演算が可能となる。
【００７７】
（第７の実施形態）
上述した第１〜第６の実施形態で説明した情報処理装置を複数個配置して、並列的に動作させることで、高い演算能力を持つ並列積和演算機能を持つ積和演算コアを構築することができる。
【００７８】
図１７は第１〜第６の実施形態で説明した情報処理装置を複数個有する並列的に動作可能な積和演算コアの内部構成の一例を示すブロック図である。図１７の積和演算コア２５は、例えば半導体基板やプリント基板上に実装可能なものであり、入力部２６と演算処理部２７を備えている。演算処理部２７には、第１〜第６の実施形態で説明した情報処理装置と同じ機能を有する演算回路２８が複数個配置されている。各演算回路２８は、必要に応じて並列的または逐次的に演算処理を行うことができる。
【００７９】
図１８は、図１７に示した積和演算コアを備えた信号処理装置の概略構成の一例を示すブロック図である。図１８の信号処理装置は、図１７に示した積和演算コア２５と、ホストコントローラ３２と、メモリ３３とを備えている。メモリ３３は、不揮発メモリと揮発メモリの少なくとも一つを有する。また、メモリ３３は、キャッシュメモリとメインメモリなどのように階層的に分かれていてもよい。図１８の信号処理装置は、半導体基板上に形成してチップ化してもよいし、プリント基板上に実装してもよい。
【００８０】
図１７や図１８に示した積和演算コア２５を用いて、脳型のニューラルネットワークシステムを構成してもよい。図１９は脳型のニューラルネットワークシステムの一例を示すブロック図である。図１９のニューラルネットワークシステムは、階層的な構造になっており、第１隠れ層３６における複数の積和演算コア２５と、第２隠れ層３７における複数の積和演算コア２５とが種々の積和演算を行う。また、第１隠れ層３６における複数の積和演算コア２５の出力信号が、重み付けされた上で、第２隠れ層３７における複数の積和演算コア２５に入力される。
【００８１】
このように、第７の実施形態では、第１〜第６の実施形態で説明した情報処理装置を複数設けることで、種々の用途における積和演算を行うことができる。
【００８２】
以上では、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８３】
１  デジタル−パルス変換器
２  符号判定器
３  双方向選択的発振器
４  読出部
５  可変遅延器
６  インバータ
７  論理積回路
８Ａ  順方向リング発振器
８Ｂ  逆方向リング発振器
８ａ、８ｂ  遅延素子
８ｂ、８ｆ＿１〜８ｆ＿４  第３遅延回路
８ｃ  第３マルチプレクサ
８ｄ  単位遅延素子
８ｄ＿１〜８ｄ＿４  遅延素子
９Ａ、９Ｂ  切替器
１０  カウンタ
１１  マルチプレクサ
１１Ａ〜１１Ｄ  第１遅延回路
１２  第１マルチプレクサ
１３  可変遅延素子
１４  第２遅延回路
１５  第２マルチプレクサ
１６  遅延素子
１７  乗算器
１８  加算器
１９  乗算器
２５  積和演算コア
２６  入力部
２７  演算処理部
２８  演算回路
３２  ホストコントローラ
３３  メモリ
３６  第１隠れ層
３７  第２隠れ層
【図１】
2019153177.tif 000006
【図２】
2019153177.tif 000007
【図３】
2019153177.tif 000008
【図４】
2019153177.tif 000009
【図５】
2019153177.tif 000010
【図６】
2019153177.tif 000011
【図７】
2019153177.tif 000012
【図８】
2019153177.tif 000013
【図９】
2019153177.tif 000014
【図１０】
2019153177.tif 000015
【図１１】
2019153177.tif 000016
【図１２】
2019153177.tif 000017
【図１３】
2019153177.tif 000018
【図１４】
2019153177.tif 000019
【図１５】
2019153177.tif 000020
【図１６】
2019153177.tif 000021
【図１７】
2019153177.tif 000022
【図１８】
2019153177.tif 000023
【図１９】
2019153177.tif 000024