JP2005122466A - 積和演算回路及びその方法 - Google Patents

積和演算回路及びその方法 Download PDF

Info

Publication number
JP2005122466A
JP2005122466A JP2003356626A JP2003356626A JP2005122466A JP 2005122466 A JP2005122466 A JP 2005122466A JP 2003356626 A JP2003356626 A JP 2003356626A JP 2003356626 A JP2003356626 A JP 2003356626A JP 2005122466 A JP2005122466 A JP 2005122466A
Authority
JP
Japan
Prior art keywords
value
circuit
output
input
digital
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.)
Granted
Application number
JP2003356626A
Other languages
English (en)
Other versions
JP4620944B2 (ja
Inventor
Osamu Nomura
修 野村
Takashi Morie
隆 森江
Teppei Nakano
鉄平 中野
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2003356626A priority Critical patent/JP4620944B2/ja
Priority to PCT/JP2004/015540 priority patent/WO2005038645A2/en
Priority to AT04773802T priority patent/ATE542176T1/de
Priority to EP04773802A priority patent/EP1676197B1/en
Priority to US11/036,001 priority patent/US7120617B2/en
Publication of JP2005122466A publication Critical patent/JP2005122466A/ja
Priority to US11/434,779 priority patent/US7272585B2/en
Application granted granted Critical
Publication of JP4620944B2 publication Critical patent/JP4620944B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

【課題】 低消費電力かつ小型の積和演算回路を提供する。
【解決手段】 積和演算回路に、被演算値を表わすパルス幅を持つパルス信号をデジタル信号に変換するパルス幅・デジタル変換回路9と、パルス幅・デジタル変換回路9によりデジタル信号に変換された複数の被演算値Xiを降順または昇順に出力するソーティングブロックと、ソーティングブロック4より出力される各被演算値に対応する演算値Wiを乗じ、乗算結果の累算和を算出する演算ブロック1とを備え、パルス幅・デジタル変換回路9が、クロックを計数してその計数値をデジタル信号として出力するカウンタ10と、それぞれに入力される各パルス信号の終端において前記カウンタが出力する共通の計数値をラッチするn個の終端ラッチ回路11−0〜11−(n-1)とを有する。
【選択図】 図6

Description

本発明は、乗算と累算を並列に行う積和演算回路及びその方法に関するものである。
現在、コンピュータは大きな進展を見せ、世の中の様々な場面で使用されている。しかしながら、これらノイマン型と呼ばれるコンピュータは、その処理方式自体の特性により、ヒトが容易に行うことができる処理(リアルタイムでのヒトの顔の認識等)を非常に不得意としている。
これに対して、脳の情報処理様式を真似た演算処理モデルである、ニューラルネットワークの研究が行われている。
ニューラルネットワークを構成するニューロンのモデルとしては、ニューロンに相当するユニットに対して、他の複数のユニット(ニューロン)の出力値をシナプス荷重値で重み付けした乗算値が入力され、その入力値の総和値をさらに非線形変換した値を出力値とするものが一般的である。
すなわち、一般的なニューラルネットワークにおいては、各ユニット、及びユニット間における積和演算と非線形変換により、所望の処理が実現される。
このニューロンモデルを用いたニューラルネットワークアーキテクチャとしては、これまでに、積和演算を実行するユニットを相互に結合した連想メモリや、同じく積和演算を実行するユニットを階層的に結合したパターン認識モデル等が提案されている。
ここでニューラルネットワークは、超並列・分散型の情報処理モデルであるため、逐次処理方式であるノイマン型コンピュータでの実行は極めて効率が悪い。従って、ニューラルネットワークの実用化に際しては、専用のハードウェアとしての集積回路化が有効である。
また集積回路化に際しては、入力データの保存や制御性といった面ではデジタル回路によるデジタル的な処理が適しているものの、前記の積和演算や非線形変換を実現する演算回路としては、アナログ演算回路を使用することでデジタル演算回路に比較して、素子数の大幅な削減が可能である。
すなわち、ニューラルネットワークの実用化においては、デジタル回路とアナログ回路をそれぞれの特徴が有効に機能する演算処理部に適用し、最終的に両者を混載した集積回路化を目指す手法が有効である。
その場合、デジタル回路とアナログ回路の両者を結合するインターフェース部において、対応する回路に適した信号形式で入出力することが必要となる。
例えば、パルス幅に情報を持つPWM信号(Pulse Width Modulation)の値をデジタルメモリに保持する場合には、PWM信号をパルス幅・デジタル変換回路によってデジタル値に変換してからデジタルメモリに入力・保持する。
また、キャパシタに蓄えられたアナログ電圧値をPWM信号として出力するためには、コンパレータによってアナログ電圧値を当該アナログ電圧値に比例した時間幅のパルスに変換して出力する。
また、前述した手法を組み合わせて、アナログ電圧を一旦PWM信号に変換し、生成されたPWM信号をパルス幅・デジタル変換回路でデジタル値に変換すれば、A/D変換を実現することができる。
また、デジタル値をアナログ電圧値に変換するためのD/A変換回路としては、デジタル・パルス幅変換回路とスイッチド電流源とキャパシタを組み合わせたものがしばしば使用される。
すなわち、デジタル値をデジタル・パルス幅変換回路によって、パルス幅にデジタル値に比例する値をもつパルスに変換する。さらに前記パルスによってスイッチド電流源をオン・オフし、パルス幅に比例する電荷をキャパシタに蓄積することにより、最終的にデジタル値をキャパシタの電圧値としてアナログ値に変換する。
ここでまず、D/A変換回路におけるデジタル・パルス幅変換回路としては、デジタル入力値を当該デジタル入力値に比例した時間幅のパルスに変換する機能を有するものを指し、クロックによって動作するカウンタの出力する計数値とデジタル入力値とを比較して、両者が一致したタイミングでパルス出力を立ち下げるものが広く知られている(例えば特許文献1参照)。
図39は従来のデジタル・パルス幅変換回路の一例を示す図である(特許文献1の図1参照)。図39に示した従来のデジタル・パルス幅変換回路は、ストローブ検出回路101、ラッチ回路102、カウンタ103、デジタル・コンパレータ104、及びJKフリップ・フロップ105を備えた構成からなる。
ストローブ検出回路101は、ストローブ信号NOT(STB)が入力されると、その後の最初のクロックCLKの立ち上がりでタイミング・イネーブル信号E1,E2を出力する。タイミング・イネーブル信号E1は、更にその次のクロックの立ち上がりでLレベルとなる。一方、タイミング・イネーブル信号E2は、クリア信号NOT(reset)がHレベルの間は常時Hレベルとなっている。
また、ラッチ回路102は、外部から入力される16ビットのデジタル・データD0〜D15をラッチし、ラッチデータQ0〜Q15として出力する。そして、16ビットのカウンタ103は、クロックCLKを計数して、その計数値C0〜C15を出力する。また、カウンタ103は、その計数値がFFFFになると、カウント・アウト信号C.O.を出力する。
デジタル・コンパレータ104は、ラッチデータQ0〜Q15と計数値C0〜C15とを比較して、計数値C0〜C15がラッチデータQ0〜Q15を越えるまで、JKフリップ・フロップ105にHレベルを出力し、計数値C0〜C15がラッチデータQ0〜Q15を越えた時に、この出力値をLレベルに反転する。
JKフリップ・フロップ105は、処理サイクルの最初では、デジタル・コンパレータ104の出力信号が入力端子Jに入力され、出力QにHレベルを保持する。また、デジタル・コンパレータ104の出力信号がLレベルに反転した後の最初のクロックCLKの立ち上がりタイミングで、JKフリップ・フロップ105は、出力QをLレベルに反転する。そして、カウント・アウト信号C.O.が入力されると、JKフリップ・フロップ105は出力QをHレベルに復帰させる。
このような構成によって、JKフリップ・フロップ105の出力Qにはデジタル・データD0〜D15の値に比例した時間幅のパルスが出力される。
次に、パルス幅・デジタル変換回路は、従来、積分型AD変換器において広く用いられている(例えば、特許文献2,3、非特許文献1参照)。
図40は積分型AD変換器において用いられている従来のパルス幅・デジタル変換回路の回路図である。
従来のパルス幅・デジタル変換回路111は、ANDゲート回路112とカウンタ113とを有する簡単な構成からなる。ANDゲート回路112には、デジタル・パルス幅変換された入力パルスPWとクロックCLKとが入力される。ANDゲート回路112は、この入力パルスPWとクロックCLKの論理積からなるゲート信号gをカウンタ113に出力する。カウンタ113は、入力されるゲート信号gの立ち上がりエッジを計数し、その計数値をmビットのデジタル出力D={D0,…,Dm-1}として出力する。
この構成により、入力パルスPWがHレベルのときにANDゲート112が有効となり、入力パルスPWがLレベルのときにANDゲート112が無効となる。ANDゲート112が有効である間は、クロックCLKがゲート信号gとして出力される。そして、カウンタ113は、ゲート信号gとして出力されるクロックを計数する。これにより、入力パルスPWの幅に比例したカウント値がデジタル出力D={D0,…,Dm-1}として得られる。
特開平4−2222号公報 特開平8−204566号公報 特開昭62−265820号公報 鈴木八十二,吉田正廣著,「パルス・デジタル回路入門」,日刊工業新聞社,2001年7月26日発行,p.225〜p.232
乗算と累算を並列に行なう積和演算回路において、デジタル・パルス幅変換回路、デジタル・パルス幅変換回路を利用したD/A変換回路、及びパルス幅・デジタル変換回路を利用したA/D変換回路を使用することは、その構造が簡単であることから、非常に有効である。
しかしながら、多数のデジタル入力値を並列的にデジタル・パルス幅変換し、変調パルスを出力するような装置において、前記デジタル・パルス幅変換回路を使用すると、回路面積と消費電力が、並列的に動作するデジタル・パルス幅変換回路数に比例して大きくなるという問題がある。
すなわち、多数のデジタル入力値を並列的にデジタル・パルス幅変換する場合には、図39に示した前記デジタル・パルス幅変換回路を複数個並列に配置して、それぞれのデジタル・パルス幅変換回路に対して各デジタル入力値を入力させればよい。そして、各デジタル・パルス幅変換回路から出力されるパルスを取り出すことで、並列的なデジタル・パルス幅変換が可能となる。
しかしこの場合、各デジタル・パルス幅変換回路において、回路面積が個数に比例して増大する。また、クロックによるスイッチング動作が頻繁に行われるため、総てのデジタル・パルス幅変換回路の駆動電力を合計すると、かなり大きな電力が消費されることとなる。従って、携帯機器のような省面積・低消費電力を要求される装置において、多数のデジタル入力値を並列的にデジタル・パルス幅変換する場合に使用することは困難である。
また同様に、多数のパルス入力を並列的にパルス幅デジタル変換し、デジタル値を出力するような装置において、図40に示した前記パルス幅・デジタル変換回路を使用すると、各パルス幅・デジタル変換回路111の消費電力の総和がかなり大きくなるという問題がある。
すなわち、それぞれのパルス入力に対して、図40に示したようなパルス幅・デジタル変換回路111を使用した場合、多数のカウンタ113が並列的にスイッチング動作を行うこととなる。そのため、例えば、カウンタ113をCMOSにより構成した場合でも、カウンタ113がスイッチング時の負荷容量を充放電する際の充放電電力消費が大きくなる。この充放電電力消費の増加は、パルス入力数が大きいほど顕著となる。
また、多数のカウンタ113が並列的に動作することにより、カウンタ113のスイッチングノイズが大きくなる。従って、回路全体のノイズ対策が必要となってくる。
そこで本発明の目的は、省面積・低消費電力で複数のデジタル入力値を並列的にパルス幅に変換するデジタル・パルス幅変換回路、及び低消費電力で動作し、回路から発生するノイズも小さいパルス幅・デジタル変換回路を用いた積和演算回路を提供することにある。
上記目的を達成するために、本発明に係る積和演算回路は、被演算値を表わすパルス幅を持つパルス信号をデジタル信号に変換するパルス幅・デジタル変換手段と、前記パルス幅・デジタル変換手段によりデジタル信号に変換された複数の被演算値を降順または昇順に出力するソーティング手段と、前記ソーティング手段より出力される各被演算値に対応する演算値を乗じる乗算手段と、前記乗算手段による乗算結果の累算和を算出する累算和手段とを備え、前記パルス幅・デジタル変換手段が、クロックを計数してその計数値をデジタル信号として出力するカウンタと、それぞれに入力される各パルス信号の終端において前記カウンタが出力する共通の計数値をラッチする複数の終端ラッチ回路とを有する。
また、本発明の他の態様によれば、積和演算方法に、被演算値を表わすパルス幅を持つパルス信号をデジタル信号に変換するパルス幅・デジタル変換工程と、前記パルス幅・デジタル変換工程によりデジタル信号に変換された複数の被演算値を降順または昇順に出力するソーティング工程と、前記ソーティング工程により出力される各被演算値に対応する演算値を乗じる乗算工程と、前記乗算工程による乗算結果の累算和を算出する累算和工程とを備え、前記パルス幅・デジタル変換工程が、カウンタによりクロックを計数してその計数値をデジタル信号として出力する工程と、複数の終端ラッチ回路により、それぞれに入力される各パルス信号の終端において前記カウンタが出力する共通の計数値をラッチする工程とを有する。
以上説明したように、本発明によれば、低消費電力かつ小型の積和演算回路を提供できるという効果がある。
以下、添付図面を参照しながら、本発明の実施形態を説明する。
(第一の実施形態)
図1は、本実施形態での積和演算回路の構成図を示す。
図1に示すように、本実施形態における積和演算回路は、複数個の演算回路1と、被演算値Xiを保持する入力値保持回路2と、被演算値Wiを保持する荷重値保持回路3と、被演算値Xiを値の大きい順に出力するソーティング回路4と、被演算値Xiのラベルに対応する演算回路へ被演算値Xi、Wiを入力するためのスイッチ回路5とから構成される。なお、前記被演算値Xiと被演算値Wiのiは、それぞれ異なるXとWを表す添え字であり、1,2,3・・・の自然数をとる(以下同様)。
図2は、前記演算回路をデジタル回路で構成したデジタル演算回路を示す。図2に示すように、本実施形態におけるデジタル演算回路は、3つのレジスタ6と、乗算器7と、加減算器8とから構成される。
図3は、前記入力値保持回路と前記ソーティング回路の機能を連想メモリ回路で構成したものを示す。
以上説明した図を用いて、本実施形態における積和演算回路による演算処理工程を説明する。
まず図1に示すように、複数の被演算値Xiは入力保持回路2に保持され、さらにソーティング回路4により、値の大きいもの順にソートされ出力される。
ここで本実施形態においては、値が等しい被演算値Xiがある場合には、値が等しい被演算値間での出力の順番は任意としているが、事前に適当な順番を設定しておいても良い。
続いて、被演算値Xiが有するラベルがソーティング回路4からスイッチ回路5に入力され、前記ラベルに応じてスイッチ回路5がスイッチングを行い、ソーティング回路4から出力された被演算値Xiをそのラベルに対応する演算回路に入力する。なお、被演算値Xiのラベルに対応する演算回路の数は、1つの場合も複数の場合もあり得るが、本実施形態では複数の場合を説明する。
ここで、以上の入力保持回路2とソーティング回路4で実行される処理は、本実施形態においては連想メモリ回路を用いて実現する。連想メモリ回路には被演算値Xiの値と、それぞれの被演算値Xiが有するラベルが保持されている。
これに対して、連想メモリ回路の一般的な機能を利用し、被演算値Xiの値の大きなもの順に、1つずつその値とラベルを読み出すことにより、前記の入力保持回路とソーティング回路で実行される処理を実現することが可能となる。
すなわち連想メモリ回路は、入力された検索値と、保持しているデータを比較し、両者の値が一致するものを出力する機能を有する。従って連想メモリ回路に対して、検索値を被演算値Xiの最大値に相当する値から大きいもの順に一つずつ入力し、値が一致するデータを順に読み出すことにより、ソーティング機能を実現することが可能となる。(逆に、被演算値Xiの値の小さなもの順に読み出すことも可能である。)
なお本実施形態では、前記の通り入力保持回路2とソーティング回路4の機能を連想メモリ回路で実現したが、具体的な回路構成は本発明の主眼とするところではなく、同様の処理が可能なものであれば、その他の回路構成を用いても良い。
次に、荷重値保持回路3から出力される複数の被演算値Wiはそれぞれ所定の演算回路に入力される。ここで本実施形態においては、被演算値Wiは、被演算値Xiと同様に被演算値Xiが有するラベルに応じてスイッチ回路5においてスイッチングが行なわれ、ラベルによって決定される所定の演算回路に入力される。
なお本実施形態とは異なり、被演算値Wiが入力される所定の演算回路が、被演算値Xiのラベルにはよらず事前に設定されている手法を用いることも可能である。また、各演算回路に入力される被演算値Wiの値は、演算毎に同一の場合も異なる場合もある。
本実施形態においては、前記荷重値保持回路3は一般的なSRAM回路によって構成しても良いが、前記の連想メモリと同じく、同様の処理が可能なものであれば、その他の回路構成を用いても良い。以上の処理を実行することにより、所定の演算回路に被演算値Xiと被演算値Wiが入力される。本実施形態においては、前記所定の演算回路(すなわち演算処理が実行される回路)は、図1中の演算回路3〜5としている。
続いて、被演算値Xiと被演算値Wiの両者が入力された前記所定の演算回路において行なわれる演算処理について説明する。なお、被演算値Xiが入力されない演算回路では演算処理は実行されない。
演算回路において、被演算値XiとWiは一旦レジスタaとレジスタbに保持され、続いて乗算器7によってXi×Wiが演算される。Xi×Wiの乗算結果は、続いて加減算器8に入力され、レジスタcに保持されている結果を加減算した後、レジスタcに保持される。
以上の処理を繰り返すことにより、複数のXiとWiとの乗算結果の累算値がレジスタcに保持され、所定数の累算が完了すると累算値が出力される。このように、前記レジスタaに保持される被演算値Xiは、ソーティング回路4における処理によって値が大きいもの順に入力され、かつ同じ値を持つものは連続して入力されるため、被演算値Xiがランダムに入力される場合よりもレジスタのデータ遷移頻度が少なくなり、データ遷移により生ずる電力消費を削減することが可能となる。
なお本実施形態においては、ソーティング回路4から演算回路に対して被演算値Xi自体を入力したが、連想メモリにおいて被演算値Xiを値の大きいもの順に検索していく際に、Xiの値が変化したときのみ演算回路内のレジスタaに保持された値を変更するようにしても構わない。この場合、ソーティング回路4から演算回路に対して、被演算値Xi自体では無く、レジスタaの値を適当に更新するよう指示するフラグ信号が入力される。
また本実施形態においては、ソーティング回路4は被演算値Xiを値の大きいもの順にソートしたが、値の小さいもの順にソートした場合でも、前記と同様の効果がある。
また本実施形態においては、連想メモリからの出力を直接演算回路1及びスイッチ回路5に入力しているが、連想メモリから出力される値の大きいもの順に出力される被演算値Xiのデータを一旦SRAM等のメモリに入力・保持し、さらにSRAMから演算回路1及びスイッチ回路5へ入力する構成としても良い。この場合は、メモリに被演算値のラベルと値を保持しても良いし、もしくは値の変わりに、上述したような大きいもの順に並んだ被演算値Xiの値が変化する位置を示すフラグを保持しても良い。SRAMにフラグを保持する場合の構成例を図4に示す。
続いて、本実施形態において入力値保持回路に対して、被演算値XiがPWM信号として入力される場合に関して、図5を用いて説明を行なう。
図5において、入力保持回路2の入力部にパルス幅・デジタル変換回路9を有すること以外は、本実施形態で前述した構成(図1)と全く同様である。
すなわち、PWM信号として入力される被演算値Xiは、パルス幅・デジタル変換回路9によってデジタル信号に変換された後に入力値保持回路2に保持される。
ここで、前記パルス幅・デジタル変換回路9に関して説明を行なう。
まず、前記PWM信号の特性について簡単に説明しておく。PWM(Pulse Width Modulation)信号は、情報をパルス波形の幅に持たせた変調方式であり、ノイズに強いデジタル的な特性(電圧方向にHighレベルとLowレベルの2値の情報を有するという特性)と、連続情報を1パルスで表現することができるアナログ的な特性(時間方向に連続情報を有するという特性)の両者を併せ持つものである。
図6はパルス幅・デジタル変換回路の構成を表す回路図である。
本実施形態におけるパルス幅・デジタル変換回路9は、カウンタ10、及びn個(n>2)の終端ラッチ回路11−0〜11−(n-1)を有している。パルス幅・デジタル変換回路9には、外部からクロックCLK、パルス出力トリガXRST、及びn個のPWM信号PW0〜PWn-1が入力される。また、電源電圧VDD及び基板電圧VSSが印加されている。
クロックCLKには、一定の周期のパルス列が入力される。パルス出力トリガXRSTは、入力パルスPW0〜PWn-1の出力開始を指示するトリガである。このパルス出力トリガXRSTには、クロックCLKの周期のM倍(M≧2m)の周期で、行くロック周期分の時間幅の反転パルスが出力される。
カウンタ10は、外部から入力されるクロックCLKを計数してその計数値CNT0〜CNTm-1をmビットのデジタル信号として出力する。各終端ラッチ回路11−i(i∈{0,1,…,n-1})は、外部から入力されるPWM信号PWiの終端においてカウンタ10が出力する計数値CNT0〜CNTm-1をラッチする。そして、各終端ラッチ回路11−iは、それぞれ、ラッチした計数値CNT0〜CNTm-1をmビットのデジタル出力Di,0〜Di,m-1として出力する。
図7は図6の終端ラッチ回路の内部構成を表す回路図である。
終端ラッチ回路11−i(i∈{0,1,…,n-1})は、m個のラッチ12−0〜12−(m-1)、及び1個のインバータ13により構成されている。終端ラッチ回路11−iに入力されるPWM信号PWiは、インバータ13によりレベル反転され、各ラッチ12−0〜12−(m-1)のクロック入力端子clkに入力される。また、カウンタ10の各計数値CNT0〜CNTm-1は、それぞれ、ラッチ12−0〜12−(m-1)のデータ入力端子Dに入力される。パルス出力トリガXRSTは、各ラッチ12−0〜12−(m-1)のリセット入力端子NOT(R)に入力される。各ラッチ12−0〜12−(m-1)の出力端子Qから出力されるデータは、mビットのデジタル出力データDi={Di,0〜Di,m-1}として外部に出力される。
尚、各ラッチ回路12−0〜12−(m-1)は、図8に示したような、非同期リセット入力付きの同期型Dフリップ・フロップが用いられる。
以上のように構成された本実施形態に係るパルス幅・デジタル変換回路9について、以下その動作を説明する。
図9は本実施形態に係るパルス幅・デジタル変換回路9の各信号レベルの変化を表すタイムチャートである。クロックCLKには、一定の周期Tで、幅T/2のパルスが連続的に入力されている。パルス出力トリガXRSTは、時刻t1において、幅Tの反転パルスを出力する。これにより、各ラッチ12−0〜12−(m-1)の出力はリセットされ、デジタル出力データDiは総て0リセットされる。
そして、パルス出力トリガXRSTの立ち上がり時点(時刻t2)から、各PWM信号PWi(i∈{0,1,…,n-1})の出力が開始される。また、それと同時に、カウンタ10は、クロックCLKの計数を開始する。カウンタ10は、クロックCLKの立ち上がりエッジにおいて、その計数値を1づつ増加させる。なおPWM信号PWiは、カウンタ10の計数開始と同期して入力される。
時刻t3において、PWM信号PWiはHレベルからLレベルに反転する。これにより、インバータ13の出力NOT(PWi)のレベルはLレベルからHレベルに立ち上がる。各ラッチ12−j(j∈{0,1,…,m-1})は、このインバータ13の出力NOT(PWi)の立ち上がりエッジにおいて、データ入力端子Dに入力される計数値CNTjのレベルをラッチして、これをデータ出力端子Qから出力する。
これにより、各終端ラッチ回路11−i(i∈{0,1,…,n-1})には、PWM信号PWiの立ち下がり時点におけるカウンタ10のカウント値CNT(i)={CNT(i)0, CNT(i)1,…, CNT(i)m-1}がラッチされる。このカウント値CNT(i)は、PWM信号PWiのパルス幅に比例した値となる。
カウンタ10が計数を開始してから少なくとも時間2m・Tだけ経過した時点で、総ての終端ラッチ回路11−0〜11−(n-1)のデジタル出力値が確定する(勿論、それ以前に確定する場合もある)。従って、この確定時点後に、各終端ラッチ回路11−0〜11−(n-1)のデジタル出力値を取り出すことにより、各PWM信号PW0〜PWn-1のパルス幅に比例したデジタル値を得ることができる。すなわち、パルス幅・デジタル変換が完了する。
このように、各終端ラッチ回路11−i(i∈{0,1,…,n-1})は、PWM信号PWiの終端で、共通のカウンタ10が出力する計数値CNTをラッチする。従って、カウンタ10は、それぞれの終端ラッチ回路11−iに対して計数値CNTを出力するための配線の寄生容量に抗して出力値(係数値CNT)の切り換えを行うだけであり、スイッチング時の消費電力は小さい。従って、上記従来のパルス幅・デジタル変換を使用した場合に比べると、大幅に消費電力を低減させることが可能である。
実際に計算機シミュレーションにより評価した結果、80個のPWM信号PW0〜PW79を並列にパルス幅・デジタル変換する場合、終端ラッチ回路として、図40に示したような従来のパルス幅・デジタル変換回路を使用すると、226mWの電力が消費されることが見積もられた。それに対して、本実施形態に係るパルス幅・デジタル変換回路9を使用した場合、同じ入力パルスをパルス幅・デジタル変換する場合の消費電力は6.6mWであった。従って、消費電力は約1/50に抑えることができることが分かった。
また、カウンタを一つにしたことによって、カウンタのスイッチング時に発生するスイッチング・ノイズを小さく抑えることができる。従って、回路のSN比が向上する。従って、パルス幅にジッタ・ノイズが加わることによりパルス幅・デジタル変換時に生じるジッタ誤差を最小限に抑えることができる。これにより、高速パルス幅・デジタル変換にも使用することができる。
また、各終端ラッチ回路11−0〜11−(n-1)は、共通のカウンタ10の出力値CNTをラッチするので、各入力パルスPW0〜PWn-1に対する計数値CNTの切り替わりのタイミングにばらつきが生じない。そのため、カウンタ10のスイッチング時のジッタによる各入力パルスPW0〜PWn-1間でのタイミング誤差がばらつくことを防止できる。
また、前記パルス幅・デジタル変換回路は、図6に示したパルス幅・デジタル変換回路9において、終端ラッチ回路11−0〜11−(n-1)の部分を、図10に示した回路に置き換えたものであっても良い。
以下で、パルス幅・デジタル変換回路9において、終端ラッチ回路11−0〜11−(n-1)の部分を、図10に示した回路に置き換えたものについて,詳しく説明する。図10において、終端ラッチ回路11−i(i∈{0,1,…,n-1})、ラッチ12−0〜12−(m-1)、及びインバータ13の構成は、図7と同様であるため説明は省略する。本実施形態に係るパルス幅・デジタル変換回路は、これらに加えて、更に、始端ラッチ回路14−i(i∈{0,1,…,n-1})及び減算回路15−iを備えていることを特徴としている。
始端ラッチ回路14−iは、PWM信号PWiの始端(立ち上がりエッジ)において、カウンタ10から出力される計数値CNTをラッチする。減算回路15−iは、終端ラッチ回路11−iのデジタル出力値Ei={Ei,0〜Ei,m-1}から始端ラッチ回路14−iのデジタル出力値Si={Si,0〜Si,m-1}を減算した減算値を演算して、デジタル出力値Di={Di,0〜Di,m-1}として出力する。
始端ラッチ回路14−iは、終端ラッチ回路11−iと同様に、mビットの計数値の各ビットCNT0〜CNTm-1の各々に対応してラッチ16−0〜16−(m-1)を備えている。これらのラッチ16−0〜16−(m-1)は、ラッチ12−0〜12−(m-1)と同様、図8に示した非同期リセット入力付きの同期型Dフリップ・フロップにより構成されている。
但し、始端ラッチ回路14−i内のラッチ16−0〜16−(m-1)のクロック端子clkには、インバータ13を通すことなく、PWM信号PWiが直接入力される。そのため、ラッチ16−0〜16−(m-1)は、PWM信号PWiの立ち上がりの時点におけるカウンタ10の計数値CNTをラッチする。
以上のように構成されたパルス幅・デジタル変換回路について、以下その動作を説明する。
図11は本実施形態におけるパルス幅・デジタル変換回路の各信号レベルの変化を表すタイムチャートである。
クロックCLKには、一定の周期Tで、幅T/2のパルスを連続的に入力されている。パルス出力トリガXRSTは、時刻t1において、幅Tの反転パルスを出力する。これにより、各ラッチ12−0〜12−(m-1),16−0〜16−(m-1)の出力はリセットされ、デジタル出力データEi,Siは総て0リセットされる。
そして、パルス出力トリガXRSTの立ち上がり時点(時刻t2)から、カウンタ10は、クロックCLKの計数を開始する。カウンタ10は、クロックCLKの立ち上がりエッジにおいて、その計数値を1づつ増加させる。
時刻t2以後の適当な時刻t3において、PWM信号PWi(i∈{0,1,…,n-1})の出力が開始される。この時刻t3におけるPWM信号PWiの立ち上がりにより、始端ラッチ回路14−iのラッチ16−j(j∈{0,1,…,m-1})は、カウンタ10の出力CNTjをラッチして、これをデータ出力端子Qからデジタル出力値Si={Si,0〜Si,m-1}として出力する。
時刻t4において、PWM信号PWiはHレベルからLレベルに反転する。これにより、インバータ13の出力NOT(PWi)のレベルはLレベルからHレベルに立ち上がる。各ラッチ12−j(j∈{0,1,…,m-1})は、このインバータ13の出力NOT(PWi)の立ち上がりエッジにおいて、データ入力端子Dに入力される計数値CNTjのレベルをラッチして、これをデータ出力端子Qからデジタル出力値Ei={Ei,0〜Ei,m-1}として出力する。
減算回路15−iは、終端ラッチ回路11−iのデジタル出力値Ei={Ei,0〜Ei,m-1}から始端ラッチ回路14−iのデジタル出力値Si={Si,0〜Si,m-1}を減算した減算値を演算して、デジタル出力値Di={Di,0〜Di,m-1}として出力する。従って、時刻t3以後において、このデジタル出力値Di={Di,0〜Di,m-1}は、PWM信号PWiのパルス幅に正比例した値となる。
カウンタ10が係数を開始してから少なくとも時間2m・Tだけ経過した時点で、総ての終端ラッチ回路11−0〜11−(n-1)及び減算回路15−0〜15−(n-1)のデジタル出力値が確定する(勿論、それ以前に確定する場合もある)。従って、この確定時点後に、各減算回路15−0〜15−(n-1)のデジタル出力値を取り出すことにより、各PWM信号PW0〜PWn-1のパルス幅に比例したデジタル値Di={Di,0〜Di,m-1}を得ることができる。すなわち、パルス幅・デジタル変換が完了する。
このように、本実施形態においては、各PWM信号の始端及び終端におけるカウンタ10の計数値をラッチして、両者の差を演算してデジタル出力値とすることで、各PWM信号PWiの立ち上がりを同期させる必要がなくなる。また、各PWM信号PWiの立ち上がりとカウンタ10の計数開始タイミングも同期させる必要がなくなる。
従って、非同期にPWM信号が入力されるような回路においても、本実施形態に係るパルス幅・デジタル変換回路を使用することが可能である。
なお、減算回路15−iを用意せずに、デジタル出力値Si及びEiをそのまま外部に出力し、外部に用意した減算器で減算を行ってもよい。
(第二の実施形態)
第二の実施形態を具体的な処理構成図を参照して説明する。本実施形態での積和演算方法を実行するための処理回路の構成図は、第一の実施形態と同様に図1によって示される。
図12は、前記演算回路をアナログ回路で構成したアナログ演算回路を示す。図12に示すように、本実施形態におけるアナログ演算回路は、アナログ乗算器17と、キャパシタ18と、出力バッファ19とから構成される。
図13は、前記入力値保持回路をアナログメモリで構成したものを示す。ここで、本実施形態においてはアナログメモリをキャパシタ20と出力バッファ21で構成することを想定しているが、同様の機能を有するものであればその他の回路を用いても構わない。
図14は、前記ソーティング回路をWTA回路22で構成したものを示す。
以上説明した図を用いて、本実施形態における積和演算方法を用いた処理過程を説明する。
まず図1に示す演算処理に関しては第一の実施形態と同様であるため説明を省略し、以下では第一の実施形態と異なる入力保持回路、荷重保持回路、ソーティング回路及び演算回路における個別の処理に関して説明を行なう。
なお本実施形態においては、第一の実施形態で説明したパルス幅・デジタル変換回路を有するケースは除外する。
まず本実施形態における入力保持回路2はキャパシタ20と出力バッファ21により構成されており、被演算値Xiの値をキャパシタ20に蓄積された電圧値として保持している。入力保持回路2に保持された被演算値Xiは、ソーティング回路4により値の大きいもの順にスイッチ回路5に入力される。
ここで、ソーティング回路4で実行される処理は、本実施形態においては図に示すようにWTA回路22を用いて実現する。WTA回路とは、Winner -Take-All回路の略称であり、入力値の中で最大の値を有するものを出力値とする機能を有する。
(逆に、最小の値を有するものを出力値とすることも可能である。)従って、WTA回路22に被演算値Xiを入力した場合、まずその中で最大の値を有する被演算値Xiが出力される。
次に、前回出力された被演算値Xiを除いて再度被演算値Xi群を入力すると2番目に大きな値を有する被演算値Xiが出力される。
以上の動作を繰り返すことにより、被演算値は随時値が大きなもの順に出力され、ソーティング動作が実行される。
ここで本実施形態においては、値が等しい被演算値Xiがある場合には、値が等しい被演算値間での出力の順番は任意としているが、事前に適当な順番を設定しておいても良い。なおこの際、各被演算値が有するラベルも同時に保持されるが、その保持回路はデジタルメモリを用いても良いし、同様の機能を実現するアナログメモリを使用しても良い。
また、本実施形態ではソーティング回路4としてアナログ回路を使用しているが、第一の実施形態で用いた様に連想メモリを使用しても良い。なおこの場合は、連メモリの出力はD/A変換された後に演算回路に入力される。ここで、D/A変換を行なうD/A変換回路として、図15に示すデジタル・パルス幅変換回路23と、スイッチド電流源24と、キャパシタ25と、バッファ26とから構成されるD/A変換回路について説明する。
図15に示すように、まずD/A変換回路において被演算値Xiに相当するデジタル値をデジタルメモリ(連想メモリ)からデジタル・パルス幅変換回路23に入力する。デジタル・パルス幅変換回路23においては、入力されたデジタル値を当該デジタル入力値に比例した時間幅のパルス信号に変換して出力する。
ここで図16に示すように、本実施形態に係るデジタル・パルス幅変換回路23は、並列配置された複数のパルス生成回路27-0〜27-(n-1)、及び一つのカウンタ28を有する。各パルス生成回路27-0〜27-(n-1)のデータ入力端子Dinには、mビットの各デジタル入力値x0〜xn-1が入力される。そして、各パルス生成回路27-0〜27-(n-1)のパルス出力端子Poutからは、各デジタル入力値x0〜xn-1に比例するPWM信号PWM0〜PWMn-1が出力される。
また、カウンタ28は、外部から入力されるクロックclockを計数し、mビットの計数値として出力する。このクロックclockは、各パルス生成回路27-0〜27-(n-1)のクロック入力端子clkにも共通に入力される。また、各パルス生成回路27-0〜27-(n-1)のカウンタ値入力端子CNTには、カウンタ28から出力される計数値が共通に入力される。
更に、各パルス生成回路27-0〜27-(n-1)の基準値入力端子Dbには、mビットの基準値xbが共通に入力される。この基準値xbは、出力PWM信号PWM0〜PWMn-1の立ち上がりのタイミングを指定する値である。
図17は図16の各パルス生成回路の構成を表すブロック図である。パルス生成回路27-i(i∈{0,1,…,n-1})は、基準値レジスタ29、加減算回路30、パルス幅レジスタ31、切換回路32、タイミングトリガ発生回路33、及び出力パルス反転回路34を有している。
基準値レジスタ29は、基準値xbをラッチして、そのラッチした基準値xbの値を出力する。加減算回路30は、基準値xbと外部から入力されるデジタル値である入力値xiとの加算値xi+xbを出力する。パルス幅レジスタ31は、加減算回路30の出力値(加算値xi+xb)を更新入力renewの立ち上がりにおいてラッチする。
切換回路32は、出力パルス反転回路34が出力する出力PWM信号PWMiが偽値(Lレベル)のときは、基準値レジスタ29がラッチしたデジタル値xbを出力し、出力パルス反転回路34が出力する出力PWM信号PWMiが真値(Hレベル)のときは、パルス幅レジスタ31がラッチしたデジタル値xi+xbを出力するように切り換えを行う。
タイミングトリガ発生回路33は、切換回路32から出力されるデジタル値の各ビットと、カウンタ28が出力する計数値CNTの各ビットとを比較して、両者が完全に一致したときにトリガを発生する。このタイミングトリガ発生回路33は、m個のEXORゲート35-0〜35-(m-1)、及び1個のNORゲート36により構成されている。各EXORゲート35-0〜35-(m-1) の入力の一方には、切換回路32からの出力ビットがそれぞれ入力され、他方の入力には、カウンタ28からの出力ビットがそれぞれ入力される。そして、各EXORゲート35-0〜35-(m-1)の出力P0〜Pm-1はNORゲート36に入力される。NORゲート36は、各EXORゲート35-0〜35-(m-1)の出力P0〜Pm-1の論理和の反転出力を出力パルス反転回路34に対して出力する。
すなわち、各デジタル入力値xi(i∈{0,1,…,n-1})、各基準値x、カウンタの出力値CNTをそれぞれ式(1),(2),(3)により表した場合、タイミングトリガ発生回路16の出力Tiは、出力パルス反転回路17の出力値PoutがLレベルのときは式(4)、出力パルス反転回路17の出力値PoutがHレベルのときは式(5)のように表される。
xi=(xi,0,xi,1,…,xi,m-1) (1)
xb=(xb,0,xb,1,…,xb,m-1) (2)
CNTi=(CNTi,0,CNTi,1,…,CNTi,m-1) (3)
Figure 2005122466
(4)
Figure 2005122466
(5)
出力パルス反転回路34は、タイミングトリガ発生回路33がトリガを発生したときに、出力PWM信号PWMiの真理値を反転させる。この出力パルス反転回路34は、同期型Tフリップ・フロップ(以下、「T−FF」という。)により構成されている。出力パルス反転回路34のトリガ入力端子TにはNORゲート36からの出力値が入力される。また、T−FFのクロック端子clkには、共通のクロックclockが入力される。また、出力パルス反転回路34の出力端子Qからは、出力PWM信号PWMiが出力される。
以上のように構成された本実施形態に係るデジタル・パルス幅変換回路について、以下その動作を図18のタイミング・チャートを参照しながら説明する。
まず、時刻t1において、各パルス生成回路27-iに対して、外部回路から入力値xi及び基準値xbが入力される。次いで、時刻t2においてカウンタ28のリセット入力ノードR並びに各パルス生成回路27-iの基準値レジスタ29及びパルス幅レジスタ31のクロック入力ノードCLKに対して更新信号renewが入力される。基準値レジスタ29及びパルス幅レジスタ31は、更新信号renewが入力されると、その立ち上がり時点において、それぞれ、そのときの基準値xb及び入力値xiの値をラッチする。
そして、基準値レジスタ29は、ラッチされた基準値xbを出力し、パルス幅レジスタ31は、ラッチされた加算値xi+xbを出力する。一方、時刻t1においては、出力パルス反転回路34の出力はLレベルであるので、切換回路32は、基準値レジスタ29から入力される値xbを出力する。また、カウンタ28は、更新信号renewの立ち上がりにおいて、計数値CNTを0にリセットするとともに、計数を開始する。
次に、カウンタ28がカウントアップして、時刻t3においてカウンタ28の計数値CNTが切換回路32の出力値である基準値xbと一致する。このとき、タイミングトリガ発生回路33の出力TiはHレベルに反転する。これにより、出力パルス反転回路34の出力PoutがLレベルからHレベルに反転し、出力PWM信号PWMiの出力が開始される。
時刻t4において、出力パルス反転回路34の出力PoutがHレベルに反転すると、切換回路32の入力が切り換わって、パルス幅レジスタ31から入力される値xb+xiを出力するようになる。これに伴い各EXORゲート35-0〜35-(m-1)の出力値も変化するが、xi≠0であれば、EXORゲート35-0〜35-(m-1)の出力値が総て0となることはない。従って、タイミングトリガ発生回路33の出力TiはLレベルに反転する。
更にカウンタ28がカウントアップして、時刻t5において、カウンタ28の計数値CNTが切換回路32の出力値である加算値xb+xiと一致する。このとき、タイミングトリガ発生回路33の出力TiはHレベルに反転する。これにより、出力パルス反転回路34の出力PoutはHレベルからLレベルに反転し、出力PWM信号PWMiの出力が停止される。このようにして、デジタル入力値xiに比例した時間幅の出力PWM信号PWMiが生成され、デジタル・パルス幅変換が行なわれる。
時刻t6において、出力パルス反転回路34の出力がLレベルに反転すると、切換回路32の入力が切り換わり、切換回路32は基準値レジスタ29から入力される値xbを出力するようになる。これに伴い各EXORゲート35-0〜35-(m-1)の出力値も変化するが、xi≠0であれば、EXORゲート35-0〜35-(m-1)の出力値が総て0となることはない。従って、タイミングトリガ発生回路の出力TiはLレベルに反転する。
そして、カウンタ28はカウントアップするまで計数を続ける。この間、カウンタ値と切換回路の出力値xbとが一致することはないので、出力パルス反転回路34の出力はLレベルに保持される。カウンタ28がカウントアップすると計数を停止し、1サイクルが終了する。カウンタ28はカウントアップした後は、リセット入力ノードRが再度Hレベルに反転するまでは、カウントアップした時の出力値(総てHレベル)を維持する。
以上のようにして、各パルス生成回路27-iは、入力値xiの値に比例した時間幅の出力PWM信号PWMiを出力する。このとき、各パルス生成回路27-iは、共通のカウンタ28が出力する計数値を用いて、基準値xb又は加算値xb+xiとの比較を行う。従って、総てのパルス生成回路27-iにカウンタを備えた場合と比べると、消費電力が極めて小さくなるため、デジタル・パルス幅変換回路の低消費電力化が図られる。
また、本実施形態においては、基準値レジスタ29、パルス幅レジスタ31、及び切換回路32を用いて、出力PWM信号PWMiの立ち上がりと立ち下がりのタイミングを、共通のタイミングトリガ発生回路33を用いて発生させる構成としたことにより、回路遅延の影響を受けることなく、出力PWM信号PWMiのパルス幅を入力値xiに正確に比例させることが可能となる。
尚、本実施形態においては、基準値xbにより、各パルス生成回路27-0〜27-(n-1)における出力パルスの立ち上がり時点を合わせる構成例を示したが、本発明においては、出力パルスの立ち下がり時点を合わせる構成としてもよい。この場合、加減算回路30は、基準値xbから外部から入力されるデジタル値である入力値xiを減算した減算値xb−xiを出力する構成とする。また、切換回路32は、出力パルス反転回路34が出力する出力PWM信号PWMiが真値(Hレベル)のときは、基準値レジスタ29がラッチしたデジタル値xbを出力し、出力パルス反転回路34が出力する出力PWM信号PWMiが偽値(Lレベル)のときは、パルス幅レジスタ31がラッチしたデジタル値xb−xiを出力するように切り換えを行う構成とすればよい。
なお、各パルス生成回路2―i内に加減算回路11を用意せずに、デジタル入力信号xiとして、元々の入力値を基準値xbから加算または減算した結果を与えるようにしてもよい。また、本実施形態におけるデジタル・パルス幅変換回路は、以上で説明したものとは異なり、以下で説明するように別形態をとるものであっても良い。
すなわち図45に示すように、本実施形態に係る別形態のデジタル・パルス幅変換回路151は、並列配置された複数のパルス生成回路152−0〜152−(n-1)、及び一つのカウンタ153を有する。各パルス生成回路152−0〜152−(n-1)のデータ入力端子Dinには、mビットの各デジタル入力値x0〜xn-1が入力される。そして、各パルス生成回路152−0〜152−(n-1)のパルス出力端子Poutからは、各デジタル入力値x0〜xn-1に比例する時間幅のパルスPWM0〜PWMn-1が出力される。
また、カウンタ153は、外部から入力されるクロックclockを計数し、mビットの計数値として出力する。また、各パルス生成回路152−0〜152−(n-1)のカウンタ値入力端子CNTには、カウンタ153から出力される計数値が共通に入力される。
図46は図45の各パルス生成回路の構成を表すブロック図である。パルス生成回路152−i(i∈{0,1,…,n-1})は、パルス幅レジスタ162、タイミングトリガ発生回路164、及び出力パルス反転回路165を有している。
パルス幅レジスタ162は、外部から入力されるmビットのデジタル値である入力値xiを更新入力renewの立ち上がりにおいてラッチして、その値を出力ノードに出力する。タイミングトリガ発生回路164は、パルス幅レジスタ162から出力されるmビットのデジタル値の各ビットと、カウンタ153が出力するmビットの計数値の各ビットとを比較して、両者が完全に一致したときにトリガを発生する。
このタイミングトリガ発生回路164は、m個のEXORゲート166−0〜166−(m−1)と1個のNORゲート167により構成されている。各EXORゲート166−0〜166−(m−1)の入力の一方には、パルス幅レジスタ162からの出力ビットがそれぞれ入力され、入力の他方には、カウンタ153からの出力ビットがそれぞれ入力される。そして、各EXORゲート166−0〜166−(m−1)の出力P0〜Pm-1はNORゲート167に入力される。NORゲート167は、各EXORゲート166−0〜166−(m−1)の出力P0〜Pm-1の論理和の反転出力を出力パルス反転回路165に対して出力する。
すなわち、各デジタル入力値xi(i∈{0,1,…,n-1})、カウンタの出力値CNTを式(1),(3)により表した場合、タイミングトリガ発生回路64の出力Tiは式(6)のように表される。但し、ここでxiは0でないと仮定する。
Figure 2005122466
(6)
式(6)より、タイミングトリガ発生回路64の出力Tiはデジタル入力値xiとカウンタの出力値CNTが、総てのビットにおいて一致したときに1となることが分かる。出力パルス反転回路65は、タイミングトリガ発生回路64がトリガを発生したときに、出力パルスPWMiの真理値を反転させる。この出力パルス反転回路65は、Tフリップ・フロップ(以下、「T−FF」という。)により構成されている。出力パルス反転回路65のトリガ入力端子TにはNORゲート67からの出力値が入力される。また、出力パルス反転回路65の出力端子Qからは、パルスPWMiが出力される。
以上のように構成された本実施形態に係るデジタル・パルス幅変換回路について、以下その動作を図47のタイミング・チャートを参照しながら説明する。
まず、電源を入れた直後の初期状態では、カウンタ153の総ての計数値CNTはHレベルにあるものとし、入力値xiは0であるとする。この状態で、時刻t0において、カウンタ153及びパルス幅レジスタ162に対して入力されているリセット入力resetを有効(Lレベル)とする。これにより、カウンタ153の計数値CNTは総て0リセットされる。また、パルス幅レジスタ162は、リセット信号resetがLレベルとされると、保持している記憶値を総て0にリセットする。そうすると、カウンタ153の計数値CNTとパルス幅レジスタ162の出力値とが一致し、タイミングトリガ発生回路164の出力TiはLレベルからHレベルに反転する。従って、出力パルス反転回路165の出力PoutiがHレベルに反転し、出力Poutiにパルスが出力され始める。
次に、時刻t1において、各パルス生成回路152−iに対して、外部回路から入力値xi(Xi≠(0,0,…,0))が入力される。このとき、パルス幅レジスタ162に入力されているリセット信号resetがLレベルなので、パルス幅レジスタ162の出力は総て0のままである。
次いで、時刻t2において、リセット入力resetが無効(Hレベル)とされるとともに、更新信号renewがLレベルからHレベルに反転される。更新信号renewは、各パルス幅レジスタ162のクロックCLK入力ノードに入力されており、更新信号renewがHレベルに反転した時点で、パルス幅レジスタ162はその時点の入力値xiの値をラッチする。これにより、パルス幅レジスタ162の出力値は入力値xiとなる。一方、カウンタ153の計数値CNTは依然として0なので、パルス幅レジスタ162の出力とカウンタ153の計数値CNTとは一致しなくなり、タイミングトリガ発生回路164の出力TはHレベルからLレベルに反転する。また、カウンタ153は、リセット信号resetがLレベルからHレベルに反転することにより、クロックclockの計数を開始する。尚、このとき、パルス幅レジスタ162は、ラッチされた加算値xiを出力し続ける。
クロックclockとともにカウンタ153がカウントアップし、時刻t3においてカウンタ153の計数値CNTが切換回路163の出力値であるxiと一致する。このとき、タイミングトリガ発生回路164の出力値TはLレベルからHレベルに反転する。これにより、出力パルス反転回路165の出力PoutiはHレベルからLレベルに反転する。これにより、出力パルス反転回路165の出力PoutiのパルスPWMiの幅が確定する。このパルス幅は、デジタル入力値xiに比例することから、デジタル・パルス幅変換が行われたこととなる。
更に、時刻t3から1クロック経過した時刻t4において、カウンタ153がカウントアップしてカウンタ153の計数値CNTが切換回路163の出力値xiと不一致となると、タイミングトリガ発生回路164の出力TiはHレベルからLレベルに反転する。
そして、カウンタ153はカウントアップするまで計数を続ける。この間、カウンタ153の計数値CNTと入力値xiとが一致することはないので、タイミングトリガ発生回路164の出力TiはLレベルを保持し、出力パルス反転回路165の出力もLレベルに保持される。カウンタ153がカウントアップするとカウンタ153の計数値は総て0となり、1サイクルが終了する。そして、続けて同様のサイクルが繰り返される。
以上のようにして、各パルス生成回路152−i(i=0,…,n−1)は、入力値xiの値に比例した時間幅の出力パルスPWMiを出力する。(ただし、この時間幅は、厳密にはreset信号がLの期間の2クロック分のオフセットが入る。これは、xiからあらかじめ2を引いておくなどの処理で対処できる。)このとき、各パルス生成回路152−iは、共通のカウンタ153が出力する計数値CNTを用いて、デジタル入力値xiとの比較を行う。従って、総てのパルス生成回路152−iにカウンタを備えた場合と比べると、消費電力が極めて小さくなる。
すなわち、総てのパルス生成回路152−iにカウンタを備えた場合には、各カウンタ内のスイッチング素子はクロックごとに少なくとも一つの素子の切換が行われる。従って、例えば、スイッチング素子としてCMOSを使用した場合、切換に伴って貫通電流や負荷への充放電電流が流れる。そのため、デジタル・パルス幅変換回路全体としての消費電力は大きくなる。
一方、本実施形態のように、一つのカウンタ153を駆動し、各パルス生成回路152−iはこの共通のカウンタ153の出力値を参照してパルスの切り換えを行うようにすると、カウンタ153内のスイッチング素子の切換に伴って生じる貫通電流や負荷への充放電電流も少なく、消費電力も小さい。従って、デジタル・パルス幅変換回路151の低消費電力化が図られる。また、カウンタ153を共通化したことにより、回路のレイアウト面積が小さくなり、デジタル・パルス幅変換回路151の小型化が図られる。
続いて、図15に示すように前記PWM信号はそれぞれスイッチド電流源24の動作のオン・オフを制御する。
すなわち本実施形態においては、PWM信号がHighの期間はスイッチがオンとなり、キャパシタ25に所定の電流が流れ込む。またPWM信号がLowの期間はスイッチがオフとなり、キャパシタ25への電流の電流の流入がストップする。結果として、キャパシタ25にはそれぞれのPWM信号の時間幅に比例した電荷量が蓄積される。
キャパシタ25においては、バッファ26を介して蓄積した電荷量は電圧値として参照することができるため、図15に示すようにアナログ演算回路に対して非演算値Xiに相当するアナログ電圧値として入力される。
なお上記で説明したソーティング回路の具体的な回路構成は、本発明の主眼とするところではなく、同様の機能を実現するものであれば、その他の回路構成を用いても構わない。
続いて、荷重保持回路について説明する。荷重保持回路は図19に示すように、入力保持回路と同様にキャパシタ37と出力バッファ38により構成されており、被演算値Wiの値をキャパシタ37に蓄積された電圧値として保持している。
また荷重保持回路に関しては、図20に示すようにデジタルメモリ(例えばSRAM)に保持された被演算値Wiの値をD/A変換してから、前述した荷重保持回路にアナログ値として保持するものであっても構わない。この場合のD/A変換回路の処理工程は、前述した連想メモリを使用する場合におけるD/A変換回路と全く同様であるため、説明を省略する。
続いて、被演算値Xiと被演算値Wiがアナログ電圧値として入力される前記所定の演算回路において行なわれる演算処理について説明する。
本実施形態における演算回路は図12に示すように、アナログ演算回路として、アナログ乗算器17とキャパシタ18と、出力バッファ19から構成される。ここで、被演算値XiとWiはアナログ電圧としてアナログ乗算器17に入力され、Xi×Wiが演算される。なお、各演算回路に入力される被演算値Wiの値は、演算毎に同一の場合も異なる場合もある。
続いて前記Xi×Wiの乗算結果は、電荷量で表現され、キャパシタ18に追加蓄積される。ここで、本実施形態ではアナログ乗算器17による乗算結果は、電荷量として出力されることを想定しているが、電圧値として出力される方法などその他の出力方法であっても同様の機能を実現できるものであれば構わない。
以上の処理を繰り返すことにより、複数のXiとWiとの乗算結果の累算値がキャパシタ18に保持され、所定の累算が完了すると出力バッファ19を介して累算値が出力される。
なお、デジタル値とアナログ値の違いはあるが、被演算値Xiに対応するアナログ電圧値が、被演算値Xiのラベルに対応してスイッチ回路を切り替えることにより、所定の演算回路に入力されることは第一の実施形態と同様である。また、被演算値Xiが入力されない演算回路では演算処理が行なわれないのも第一の実施形態と同様である。
またデジタル値とアナログ値の違いはあるが、本実施形態においては、被演算値Wiに相当するアナログ電圧値は、被演算値Xiと同様に、被演算値Xiが有するラベルに応じてスイッチ回路においてスイッチングが行なわれ、ラベルによって決定される所定の演算回路に入力されるが、本実施形態とは異なる手法として、被演算値Wiに相当するアナログ電圧値が入力される所定の演算回路が、被演算値Xiのラベルにはよらず事前に設定されている手法を用いることも可能であるのも、第一の実施形態と同様である。
このように、前記演算回路にアナログ電圧として入力される被演算値Xiは、ソーティング回路における処理によって値が大きいもの順に入力され、かつ同じ値を持つものは連続して入力されるため、被演算値Xiがランダムに入力される場合よりも電圧変動が小さくなり、電圧変動により生ずるタイムラグ及び電力消費を削減することが可能となる。
なお本実施形態においては、ソーティング回路は被演算値Xiを値の大きいもの順にソートしたが、値の小さいもの順にソートした場合にも、前記と同様の効果がある。
(第三の実施形態)
第三の実施形態を具体的な処理構成図を参照して説明する。本実施形態での積和演算方法を実行するための処理回路の構成図は、図21によって示される。
図22は、演算回路をアナログ回路で構成したアナログ演算回路を示す。図22に示すように、本実施形態におけるアナログ演算回路は、アナログ乗算器45と、キャパシタ46と、出力バッファ47とから構成される。図23は、ランプ生成回路を示す。
また、入力保持回路2とソーティング回路4は第一の実施形態と同様に連想メモリ回路で構成されている。またソーティング回路の後段には、メモリ回路43が構成され、さらにメモリ回路43の後段にランプ生成回路44が構成されており、ランプ生成回路44の出力がスイッチ回路5に入力されている。なお、本実施形態におけるメモリ回路43はSRAMにより構成される。
以上説明した図を用いて、本実施形態における積和演算方法を用いた処理過程について説明する。連想メモリ回路には、被演算値Xiの値と、それぞれの被演算値Xiが有するラベルが保持されている。
これに対して、連想メモリ回路の一般的な機能として、値の大きなもの順に被演算値Xiを検索していき、そのラベルを出力する。また同時に、被演算値Xiを値が大きいもの順に検索する際の検索値に関して、その検索値を1単位減らす時のみ、パルス信号のフラグを出力する(本実施形態においては、フラグ=1を出力する)。(なお、本実施形態とは別の手法として、被演算値Xiを値が小さいもの順に検索する際の検索値に関して、その検索値を1単位増やす時のみ、パルス信号のフラグを出力する手法も可能である。)
図21に示すように、前記ラベルとフラグは、それぞれ対応するものが、検索された順番に(つまり値の大きいもの順に)後段のSRAMに入力され保持される。続いてSRAMは、前記ラベルとフラグを保持している順に(つまり値の大きいもの順に)出力し、ラベルはスイッチ回路5に入力され、フラグはランプ生成回路44に入力される。
続いて、ランプ生成回路44について説明を行なう。ランプ生成回路44は、図23に示すように所定の電圧値Vbにバイアスされた電圧制御電流源48とキャパシタ50とスイッチ49とバッファ51により構成される。ここで、前記フラグがランプ生成回路44に入力され、スイッチ49をオンにすると、電圧制御電流源48から一定の電流が流れてキャパシタ50に蓄積される。
前記フラグは連想メモリにおける検索値が1単位減る時のみ1になるため、スイッチ49がオンになるのは、検索値が1単位減る時のみである。従って、ランプ生成回路44におけるノードの電圧値は図23の波形のように変化する。すなわち、被演算値Xiの値の大きいもの順に対応する、単調に増加する電圧値が生成される。(ここで「単調」とは、時間に対して一定値を示す場合を含んでいる。以下同様)
なお、ここで被演算値Xiの値の大きいもの順に対応した電圧値として、単調に増加する電圧値を設定したが、後述するアナログ乗算器によっては、単調に減少する電圧値を設定しても良い。この場合は、ランプ生成回路44において、初期状態として所定の電荷を蓄積したキャパシタ50から、電圧制御電流源によって電荷を引き抜くことにより実現することができる。
続いて、ランプ生成回路44で生成された単調に増加する電圧値は、スイッチ回路5に入力される。スイッチ回路5は、入力された前記ラベルに対応してスイッチングを行い、ラベルによって決定される所定の演算回路1に対して、単調に増加する電圧値を入力する。
ここで、演算回路1に関して考えると、その演算回路1が、ラベルによって決定される所定の演算回路に一致する場合のみ、単調に増加する電圧値が入力されることとなり、かつメモリ回路43から出力されるラベルが変化して、ラベルによって決定される所定の演算回路に一致しなくなった場合は、スイッチングにより、単調に増加する電圧値は入力されなくなる。つまり、演算回路1においては、ラベルの出力タイミングによって単調に増加する電圧値をサンプリングすることになり、これはすなわちラベルによるスイッチングのタイミングで被乗算値Xiに対応する適当な電圧値が入力されることを意味する。
なお、被演算値Xiが入力されない演算回路1では演算処理が行なわれないのは第二の実施形態と同様である。また、荷重保持回路3における演算処理は、第二の実施形態と同様であるため、説明を省略する。
続いて、アナログ演算回路においては、図22に示すとおりアナログ乗算器45に入力された被演算値Xiと被演算値Wiの乗算を行い、キャパシタ46に演算結果に相当する電荷が蓄積される。なお、アナログ演算回路における処理は第二の実施形態と同様であるため、説明を省略する。なお本実施形態においては、被演算値Xiが入力値保持回路2に対してPWM信号として入力されるものであっても構わない。この場合に関しては、PWM信号の入力処理工程は第一の実施形態と同様として、説明を省略する。
(第四の実施形態)
本実施形態では、第二、第三の実施形態におけるアナログ演算回路として別の回路構成を用いたものに関して説明を行なう。なお、アナログ演算回路以外に関しては、第二、第三の実施形態と同様である。
図24に本実施形態で説明するアナログ演算回路を示す。図24に示すように、アナログ演算回路は、電圧制御電流源52と電圧制御抵抗素子53とキャパシタ55により構成され、被演算値Xiとして時間に関して単調に増加する電圧値が制御電圧として電圧制御電流源52に入力される。
ここで入力される時間に関して単調に増加する電圧値は、図26に示すように、被演算値Xiに相当する電圧値をWTA回路56によって値の大きいもの順に出力する際に、連続したアナログ電圧値として出力することにより生成される。なお、時間に関して単調に増加する電圧値を第三の実施形態と同様にメモリ回路とランプ生成回路を用いて生成しても構わない。この場合は、入力値保持回路及びソーティング回路は、第三の実施形態と同様デジタル回路で構成される。
またこの場合は、被演算値Xiが入力値保持回路に対してPWM信号として入力されるものであっても構わない。この場合に関しては、PWM信号の入力処理工程は第一の実施形態と同様として、説明を省略する。
続いて図25に示すように、WTA回路56(ソーティング回路4)から出力された時間に関して単調に増加する電圧値は、スイッチ回路5を経て演算回路1に入力される。ここでアナログ演算回路においては、ある時間タイミングで単調に増加する電圧値を参照することにより、第二、第三の実施形態で説明したのと同様に、被演算値Xiに相当する電圧値が、大きいもの順に、ラベルに対応するアナログ演算回路の電圧制御電流源52の制御電圧として入力される。なお電圧制御電流源52は、MOSトランジスタの飽和特性を利用して構成しても良いし、また差動型構成にしても良い。
続いてアナログ演算回路の電圧制御抵抗素子53に対して、被演算値Wiに相当するアナログ電圧値を制御電圧として入力する。ここで電圧制御抵抗素子53は、入力されたアナログ電圧値に応じて所定の抵抗値Rを示す。なお電圧制御抵抗素子53は、MOSトランジスタの線形特性を利用して構成しても良いし、また差動型構成にしても良い。
続いて、所定の演算タイミングで参照された被演算値Xiに相当するアナログ電圧値で決定される電圧制御電流源52の電流Iが、被演算値Wiに相当するアナログ電圧値で決定される電圧制御抵抗素子53(この時の抵抗値をRとする)を流れることにより、Xi×Wiの演算結果が、図24中のノードにおいて、I×Rの電圧値として観察される。ノードの電圧は、さらに制御電圧として電圧制御電流源54に入力されることで、キャパシタにI×Rによって決定される電流iが流れる。
なお電圧制御電流源54は、MOSトランジスタの飽和特性を利用して構成しても良いし、また差動型構成にしても良い。ここで、スイッチ回路5のスイッチング間隔を一定時間に設定しておくことで、I×R×(スイッチング間隔)の電荷をキャパシタ55に蓄積することができる。
以上の演算動作を繰り返すことにより、累算結果が電荷量としてキャパシタ55に保持される。
このようにして、図25に示した積和演算回路によって、第二、第三の実施形態に示したものと同様の演算を行なう事ができる。なお、本実施形態においては被演算値Xiに相当するアナログ電圧を時間に対して単調に増加する電圧値としたが、演算目的に応じて、時間に対して単調に減少する電圧値としても良い。
また、被演算値Xiに対応するアナログ電圧値が、被演算値Xiのラベルに対応してスイッチ回路5を切り替えることにより、所定の演算回路に入力されることは第二、第三の実施形態と同様である。また、被演算値Xiが入力されない演算回路1では演算処理が行なわれないのも第二、第三の実施形態と同様である。
また、本実施形態においては、被演算値Wiに相当するアナログ電圧値は、被演算値Xiと同様に、被演算値Xiが有するラベルに応じてスイッチ回路5においてスイッチングが行なわれ、ラベルによって決定される所定の演算回路1に入力されるが、本実施形態とは異なる手法として、被演算値Wiに相当するアナログ電圧値が入力される所定の演算回路が、被演算値Xiのラベルにはよらず事前に設定されている手法を用いることも可能であるのも、第二、第三の実施形態と同様である。
(第五の実施形態)
本実施形態の構成を図27に示す。本実施形態は、第三または第四の実施形態で説明した、時間に関して単調に増加するアナログ電圧値を係数Ki倍することで、被演算値Xiに所定の係数Kiを掛け合わせた演算を行なうことが可能な点が、第三または第四の実施形態と異なっている。
従って本実施形態においては、第三または第四の実施形態と異なる点についてのみ説明を行い、その他に関しては第三または第四の実施形態と同様として説明を省略する。
すなわち図27に示すように、単調に増加するアナログ電圧値が係数Ki倍されることは、所定の演算タイミングで参照される電圧値(つまり被演算値Xi)に関して、所定の係数Kiが掛け合わせられていることを意味する。従って、演算回路1に入力する単調に増加するアナログ電圧値を係数Ki倍することで、Ki×Xi×Wiの3項の乗算を演算することが可能となる。
また、図27に示すように、それぞれ異なる値の係数Kiを掛けた単調に増加するアナログ電圧値を並列に入力することにより、それぞれの演算回路1において異なる3項の乗算を並列に演算することが可能となる。なお、それぞれの単調に増加するアナログ電圧値に対する係数Kiを変化させるためには、ソーティング回路4(WTA回路またはランプ生成回路)の後段にそれぞれのKiの値に対応する電圧増幅器57を置くことで実現される。図27では、WTA回路の後段に電圧増幅器57を置いた例を示している。
また、ランプ生成回路の後段に電圧増幅器57を置いた場合は、図21においてランプ生成回路44から出力される単調に増加するアナログ電圧値に対して、図21と同様にそれぞれのKiの値に対応する電圧増幅器57を置くことで実現される。また、本実施形態においては単調に増加するアナログ電圧値を用いた場合について説明を行なったが、単調に減少するアナログ電圧値を用いた場合も同様の演算が可能である。
なお、被演算値Xi×係数Kiに対応する単調に増加するアナログ電圧値が、被演算値Xiのラベルに対応してスイッチ回路5を切り替えることにより、所定の演算回路に入力されることは第三、第四の実施形態と同様である。
また、本実施形態においては、被演算値Wiに相当するアナログ電圧値は、被演算値Xiと同様に、被演算値Xiが有するラベルに応じてスイッチ回路5においてスイッチングが行なわれ、ラベルによって決定される所定の演算回路1に入力されるが、本実施形態とは異なる手法として、被演算値Wiに相当するアナログ電圧値が入力される所定の演算回路が、被演算値Xiのラベルにはよらず事前に設定されている手法を用いることも可能であるのも、第三、第四の実施形態と同様である。また本実施形態において、被演算値Xiが入力値保持回路2に対してPWM信号として入力される場合に関しては、第三、第四の実施形態と同様である。
(第六の実施形態)
第六の実施形態を図28及び図29を参照して説明する。本実施形態は、第三または第四の実施形態で説明した、時間に関して単調に増加するアナログ電圧値を係数Ki倍することで、被演算値Xiに所定の係数Kiを掛け合わせた演算を行なうことが可能な点が、第三または第四の実施形態と異なっている。
従って本実施形態においては、第三または第四の実施形態と異なる点についてのみ説明を行い、その他に関しては第三または第四の実施形態と同様として説明を省略する。
図28において、被演算値Xiを大きいもの順にソートするためには、第一の実施形態と同様にソーティング回路4として、連想メモリが用いられている。
また、連想メモリの後段には、被演算値Xiに関する同値判定回路58が接続されている。同値判定回路58は、内部にレジスタ等のメモリ機能を有しており、連想メモリから前回出力された被演算値Xiの値を記憶している。
ここで連想メモリから出力された次の被演算値Xi'が、同値判定回路58に入力されると、同値判定回路58においては、今回入力された被演算値Xi'と前回入力された被演算値Xiの値が比較され、両者の値が異なる場合には後述するランプ生成回路60のスイッチをオンにする検出信号を出力する。なお、両者の値が等しい際には、検出信号を出力しないため、ランプ生成回路60のスイッチはオフのままである。
続いて、演算回路1における演算処理は、第三または第四の実施形態と同様に実施される。ここで、演算回路1に入力される時間に対して単調に増加する電圧値は、図29のランプ生成回路によって作成される。ランプ生成回路60においては、係数Kiに相当する電圧値を制御電圧として電圧制御電流源61に与えることで一定の電流が流れ、キャパシタ50に電荷が蓄積される。
ここで、ランプ生成回路60のスイッチ49は前述した通りに同値判定回路58からの検出信号によりオンされる。すなわちランプ生成回路60は、連想メモリからの出力値が前回の出力値と等しい場合は、スイッチ49がオフになり前記のキャパシタ50への電荷蓄積動作を停止し、連想メモリからの出力値が前回の出力値と異なる場合だけスイッチ49がオンになり、ノードの電圧値が図29のように変化する。
この際、係数Kiに相当する電圧値を適当に設定することにより、第五の実施形態で説明したのと同様に、単調に増加する電圧値を係数Ki倍することができる。
これをバッファ51を介してアナログ演算回路に入力することによって、第五の実施形態と同様にKi×Xi×Wiの3項の乗算を演算することが可能となる。その他の演算処理動作は第三または第四の実施形態と同様であるため、説明を省略する。
なお電圧制御電流源61は、MOSトランジスタの飽和特性を利用して構成しても良いし、また差動型構成にしても良い。また、ランプ発生回路自体60も、同様の機能を実現できるものであれば、その他の回路構成を使用しても構わない。また、本実施形態においては単調に増加するアナログ電圧値を用いた場合について説明を行なったが、単調に減少するアナログ電圧値を用いた場合も同様の演算が可能である。
なお、被演算値Xi×係数Kiに対応する単調に増加するアナログ電圧値が、被演算値Xiのラベルに対応してスイッチ回路5を切り替えることにより、所定の演算回路に入力されることは第三、第四の実施形態と同様である。また、本実施形態においては、被演算値Wiに相当するアナログ電圧値は、被演算値Xiと同様に、被演算値Xiが有するラベルに応じてスイッチ回路5においてスイッチングが行なわれ、ラベルによって決定される所定の演算回路に入力されるが、本実施形態とは異なる手法として、被演算値Wiに相当するアナログ電圧値が入力される所定の演算回路が、被演算値Xiのラベルにはよらず事前に設定されている手法を用いることも可能であるのも、第三、第四の実施形態と同様である。
また本実施形態において、被演算値Xiが入力値保持回路2に対してPWM信号として入力される場合に関しては、第三または第四の実施形態と同様である。
(第七の実施形態)
第七の実施形態を図30及び図31を参照して説明する。本実施形態は、それぞれのランプ生成回路62に対して係数値保持回路59からの出力を入力すること以外は第三の実施形態と同様の構成を有する。そこで、本実施形態の説明においては第三の実施形態と異なる点についてのみ説明を行い、それ以外は第三の実施形態と同様として説明を省略する。
まず図30に示すように、係数値保持回路59から係数Kiに対応する電圧値をそれぞれのランプ生成回路62に入力する。ランプ生成回路においては、図23とは異なり図31に示すように係数Kiに対応する電圧値が電圧制御電流源61のゲートに与えられることで、係数Kiに応じた一定電流が電圧制御電流源61を流れる。すなわち、本実施形態と第三の実施形態との相違は、ランプ生成回路62における電圧制御電流源61の電流量を係数値保持回路59に保持した係数Kiによって制御することが出来る点にある。
電圧制御電流源61の電流値の変化は、キャパシタ50に蓄積される単位時間あたりの電荷量の変化量に相当し、すなわちこれはノードの電圧値の時間に対する変化の傾きが変わることを意味する。これは第五または第六の実施形態で説明したように、単調に増加する電圧値を係数Ki倍することに相当するため、これをバッファ51を介してアナログ演算回路に入力することによって、第五または第六の実施形態と同様にKi×Xi×Wiの3項の乗算を演算することが可能となる。また本実施形態において、被演算値Xiが入力値保持回路2に対してPWM信号として入力される場合に関しては、第三の実施形態と同様である。
(第八の実施形態)
第八の実施形態を図32〜図35を参照して説明する。本実施形態におけるニューラルネットワークモデルを図32に示す。
また、本実施形態におけるニューラルネットワークに対して第一、第二、第三及び第四の実施形態で説明した積和演算回路を適用する際の演算処理回路の構成を図33に示す(なお、図33は第三の実施形態で説明した積和演算回路を適用した場合を示している)。図33に示すように、本実施形態におけるニューラルネットワークの処理回路は、第一、第二、第三及び第四の実施形態で説明した積和演算回路による処理回路を含んでいる。
まず、図32に示すようにニューラルネットワークにおけるニューロン素子のモデルとしては、ニューロン素子63において、前段の複数のニューロン素子の出力値をシナプス荷重64で重み付けした値の総和を取り、ニューロン素子63の内部状態値を決定するものが一般的である。本実施形態におけるニューロン素子回路は、ニューロン素子のモデルとして、第一もしくは第二、第三、第四の実施形態で説明した演算処理回路を用いている。
すなわち第一もしくは第二、第三、第四の実施形態で説明した被演算値Xiが前段ニューロン素子の出力値に相当し、また被演算値Wiがシナプス荷重値64に相当し、ニューロン素子63の内部状態値を決定する。
続いて図33に示すように、各演算回路で算出された累算値は所定の関数処理を行なう関数処理回路65に入力される。関数処理回路65は、目的に応じて非線形関数処理を行なっても良いし、線形関数処理を行なっても良い。本実施形態では、一例として図34に示すシグモイド変換を行なう処理回路としている。
また前記関数処理回路65は、実際の回路構成としては、デジタル回路の場合はルックアップテーブルで実現することが可能であり、アナログ回路の場合はコンパレータで実現することが可能である。
また前記関数処理は、演算ブロック1で算出された累算結果に対して処理を行なうものであれば、関数処理回路65を接続する位置は、他の部位であっても構わない。関数処理回路65の回路構成としては、その他にも様々な回路構成が提案されているが、本発明の主眼とするところではないので、説明を省略する。
続いて、前記関数処理回路65によりシグモイド変換を施された結果の値(すなわち次の階層における被演算値Xiに相当)は、次の階層に相当する積和演算回路の入力保持回路に保持される。ここでは、前記の値(次の階層における被演算値Xiに相当)のラベルも、同時に保持される。
以上説明した演算処理を繰り返すことにより、図32に示したニューラルネットワークにおける演算処理を実現することが可能になる。ここでは、積和演算手法として第一、第二、第三及び第四の実施形態で説明した手法を用いているため、第一、第二、第三及び第四の実施形態で説明した効果を有するニューラルネットワーク回路を構成することが可能となる。
またさらに、各ニューロン素子間(積和演算回路間)の入出力においては、後段のニューロン素子回路(積和演算回路)に対して被演算値XiをPWM信号として入力することも可能であるのも、第一、第二、第三及び第四の実施形態と同様である。
この際、演算回路がアナログ演算回路の場合は、図35に示すように、キャパシタに蓄積された電荷量をコンパレータ66によってPWM信号として読み出し、後段のパルス幅・デジタル変換回路67に入力する。ここで、コンパレータ66によるPWM信号作成手法は広く知られている手法であり、詳しくは説明しないが、参照電圧としてランプ電圧波形を入力した場合は、電荷量に比例するPWM信号として読み出すことができ、また参照電圧として非線形な電圧波形を入力した場合は、電荷量に対して非線形に対応するPWM信号として読み出すことができ、つまり関数処理回路として機能させることができる。
また、キャパシタに蓄積された電荷量をコンパレータ66によって電荷量に比例するPWM信号として読み出し、さらに後段のパルス幅・デジタル変換回路67でデジタル値に変換した後に、ルックアップテーブルによって関数処理を行なうことも可能である。なお本実施形態におけるニューロン素子数及び階層数は、本発明におけるニューラルネットワークの構成を限定するものではなく、必要に応じて任意の数に設定することが可能である。
(第九の実施形態)
第九の実施形態を図36を参照して説明する。本実施形態におけるニューラルネットワークモデルは、シナプス荷重値が、被演算値Wiと係数Kiの積Wi×Kiで表されることを除いて、第八の実施形態で説明したニューラルネットワークモデルと同様である。
また、本実施形態におけるニューラルネットワークに対して第五、第六または第七の実施形態で説明した積和演算回路を適用する際の演算処理回路の構成を図36に示す(図は、第七の実施形態で説明した積和演算回路を適用した場合を示している)。本実施形態におけるニューロン素子のモデルは、ニューロン素子において、前段の複数のニューロン素子の出力値をWi×Kiで表されるシナプス荷重で重み付けした値の総和を取り、ニューロン素子の内部状態値を決定する。
そこで本実施形態におけるニューロン素子回路は、ニューロン素子のモデルとして、第五、第六または第七の実施形態で説明した演算処理回路を用いている。
すなわち第五、第六または第七の実施形態で説明した被演算値Xiが前段ニューロン素子の出力値に相当し、また被演算値WiとKiの積がシナプス荷重値に相当し、ニューロン素子の内部状態値を決定する。
なお、続いて行なう関数処理、及び関数処理後の演算値の入力・保持に関しては第八の実施形態と同様であるため、説明を省略する。また、各ニューロン素子間(積和演算回路間)の入出力において、後段のニューロン素子回路(積和演算回路)に対して被演算値XiをPWM信号として入力することに関しても第八の実施形態と同様であるため、説明を省略する。
ここでは、積和演算手法として第五、第六または第七の実施形態で説明した手法を用いているため、第五、第六または第七の実施形態で説明した効果を有するニューラルネットワーク回路を構成することが可能となる。また本実施形態におけるニューロン素子数及び階層数は、本発明におけるニューラルネットワークの構成を限定するものではなく、必要に応じて任意の数に設定することが可能である。
(第十の実施形態)
ニューラルネットワークの演算処理は、一般的に図32で示したモデルで説明されるが、実際の演算においては、ニューロン素子に入力される前段ニューロンの出力値のうち、所定値以上の値を有するものだけの演算処理を行なって内部状態を決定しても、最終的なニューラルネットワークの演算能力がほとんど変わらないケースが多い。その場合、前記所定値よりも小さい値を有する演算処理を省略した方が、ニューラルネットワークを回路化した場合には、消費電力や演算速度の点で有利となる。
本実施形態は、第八および第九の実施形態でニューラルネットワークに適用した第一〜第七の実施形態に関して、被演算値Xiをソーティング回路によって大きいもの順にソートした後、さらに所定値未満の値を有するXiに関する演算を省略する演算回路を説明するものである。図41は、第一〜第九の実施形態で説明した演算処理構成の図1、図5、図21、図25、図27、図28、図30、図33、図35および図36において、本実施形態の機能を実現するために、ソーティング回路4に対してさらに所定値保持メモリ171が付加されている部分のみを抽出して図示している。従って、図41に図示した部分以外は、図1、図5、図21、図25、図27、図28、図30、図33、図35および図36に図示した構成と同様である。
すなわち、ソーティングブロック4に対して、所定値保持メモリ171から所定値に関するデータが入力され、被演算値Xiに関するソーティング処理は所定値に達した時点で打ち切られる。
ここで、所定値未満の値を有するXiに関する積和演算の省略は、ソーティング回路として連想メモリを用いる場合においては、連想メモリにおける内容検索時に検索値を順番に小さくしていく際に、所定値に達した時点で処理を打ち切ることで実現される。またソーティング回路としてWTA回路を用いる場合においては、WTA回路によるソーティング時に、参照電圧値が所定値に達した時点で処理を打ち切ることで実現される。
なお本実施形態においては、所定値未満の値を有するXiに関する積和演算を省略する回路として上記2例を挙げたが、同様の効果を有するものであれば、その他の回路及び手法を用いても良い。
以上説明したように、所定値未満の値を有するXiに関する積和演算を省略することにより、実際の処理回路を構成する際の低消費電力化及び動作速度の向上が可能となる。
(第十一の実施形態)
ニューラルネットワークの演算処理能力に関しては、第十の実施形態において、ニューロン素子に入力される前段ニューロンの出力値のうち、所定値よりも小さい値を有する演算処理を省略せずに、一定値として演算を行なった方がより演算処理能力が向上するケースがある。そこで本実施形態は、第十の実施形態において被演算値Xiをソーティング回路によって大きいもの順にソートして出力した後、さらに所定値未満の値を有するXiに関しては、その値を一定値とする演算回路を説明するものである。
図42は、第十の実施形態で説明した図41のソーティングブロック4に対して、さらに一定値保持メモリ172が付加されている部分が異なっている。従って、図42に図示した部分以外に関しては、第十の実施形態で説明したものと同様である。すなわち、ソーティングブロック4に対して、所定値保持メモリ171から所定値に関するデータが入力され、被演算値Xiに関するソーティング処理は所定値に達した時点で打ち切られる。
さらに、ソーティングブロック4に対して、一定値保持メモリ172から一定値に関するデータが入力され、被演算値Xiの値として前記一定値が出力される。
ここで、所定値未満の値を有するXiを一定値として演算する回路は、第十の実施形態におけるソーティング回路として連想メモリを用いる場合においては、連想メモリにおける内容検索時に検索値を順番に小さくしていく際に、所定値に達した以降の被演算値Xiの値を事前に設定した一定値として出力することで実現できる。
この際には、事前に設定した一定値を別のメモリに用意し、被演算値Xiの値が所定値に達すると同時に連想メモリの処理を中止し、前記のメモリから事前に設定した一定値を出力すれば良い。また、同様の機能を実現できるのであればその他の回路及び方法を用いても良い。また第十の実施形態におけるソーティング回路としてWTA回路を用いる場合においては、WTA回路によるソーティング時に、参照電圧値が所定値に達した以降の被演算値Xiに相当する電圧値を事前に設定した一定値として出力することで実現できる。
この際には、事前に設定した一定値を別のアナログメモリに用意し、被演算値Xiの値が所定値に達すると同時にWTA回路の処理を中止し、前記のアナログメモリから事前に設定した一定値を出力すれば良い。また、同様の機能を実現できるのであればその他の回路及び方法を用いても良い。
(第十二の実施形態)
ニューラルネットワークの演算処理は、一般的に図32で示したモデルで説明されるが、実際の演算においては、ニューロン素子に入力される前段ニューロンの出力値のうち、値の大きいものから数えて所定の割合を占めるものだけの演算処理を行なって内部状態を決定しても、最終的なニューラルネットワークの演算能力がほとんど変わらないケースが多い。その場合、値の大きいものから数えて所定の割合を占めるもの以外に関する演算処理を省略した方が、ニューラルネットワークを回路化した場合には、消費電力や演算速度の点で有利となる。
本実施形態は、第八、第九の実施形態でニューラルネットワークに適用した第一〜第七の実施形態において、被演算値Xiをソーティング回路によって大きいもの順にソートした後、さらに値の大きいものから数えて所定の割合を占める被演算値Xi以外の被演算値Xiに関する演算を省略する演算回路を説明するものである。
図43は、第一〜第九の実施形態で説明した演算処理構成の図1、図5、図21、図25、図27、図28、図30、図33、図35および図36において、本実施形態の機能を実現するために、ソーティングブロック4に対してさらに所定数(割合)保持メモリ173が付加されている部分のみを抽出して図示している。従って、図43に図示した部分以外は、図1、図5、図21、図25、図27、図28、図30、図33、図35および図36に図示した構成と同様である。
すなわち、ソーティングブロック4に対して、所定数(割合)保持メモリ173から所定数(割合)に関するデータが入力され、被演算値Xiに関するソーティング処理は所定数(割合)に達した時点で打ち切られる。
ここで、値の大きいものから数えて所定の割合を占める被演算値Xi以外の被演算値Xiに関する積和演算の省略は、ソーティング回路として連想メモリを用いる場合においては、連想メモリにおける内容検索時に検索値を順番に小さくしていく際に、出力した被演算値Xiの数が所定数(割合)に達した時点で処理を打ち切ることで実現される。またソーティング回路としてWTA回路を用いる場合においては、WTAによるソーティング時に、参照電圧値が所定数(割合)の被演算値Xiに相当する電圧値に達した時点で処理を打ち切ることで実現される。
なお本実施形態においては、値の大きいものから数えて所定の割合を占める被演算値Xi以外の被演算値Xiに関する積和演算を省略する回路として上記2例を挙げたが、同様の効果を有するものであれば、その他の回路及び手法を用いても良い。
以上説明したように、値の大きいものから数えて所定の割合を占める被演算値Xi以外の被演算値Xiに関する積和演算を省略することにより、実際の処理回路を構成する際の低消費電力化及び動作速度の向上が可能となる。
(第十三の実施形態)
ニューラルネットワークの演算処理能力に関しては、第十二の実施形態において、ニューロン素子に入力される前段ニューロンの出力値のうち、値の大きいものから数えて所定の割合を占める出力値以外の出力値に関する演算処理を省略せずに、一定値として演算を行なった方がより演算処理能力が向上するケースがある。そこで本実施形態は、第十二の実施形態において被演算値Xiをソーティング回路によって大きいもの順にソートした後、さらに値の大きいものから数えて所定の割合を占める被演算値Xi以外の被演算値Xiに関しては、その値を一定値とする演算回路を説明するものである。
図44は、第十二の実施形態で説明した図43のソーティングブロック4に対して、さらに一定値保持メモリ174が付加されている部分が異なっている。
従って、図44に図示した部分以外に関しては、第十二の実施形態で説明したものと同様である。すなわち、ソーティングブロック4に対して、所定数(割合)保持メモリ173から所定数(割合)に関するデータが入力され、被演算値Xiに関するソーティング処理は所定数(割合)に達した時点で打ち切られる。
さらに、ソーティングブロック4に対して、一定値保持メモリ174から一定値に関するデータが入力され、被演算値Xiの値として前記一定値が出力される。ここで、値の大きいものから数えて所定の割合を占める被演算値Xi以外の被演算値Xiを一定値として演算する手法は、ソーティング回路として連想メモリを用いる場合においては、連想メモリにおける内容検索時に検索値を順番に小さくしていく際に、出力した被演算値Xiの数が所定数(割合)に達してから以降の被演算値Xiの値を事前に設定した一定値として出力することで実現できる。この際には、事前に設定した一定値を別のメモリに用意し、出力した被演算値Xiの数が所定数(割合)達すると同時に連想メモリの処理を中止し、前記のメモリから事前に設定した一定値を出力すれば良い。また、同様の機能を実現できるのであればその他の回路を用いても良い。
またソーティング回路としてWTA回路を用いる場合においては、WTA回路によるソーティング時に、参照電圧値が所定数(割合)の被演算値Xiに相当する電圧値に達してから以降の被演算値Xiに相当する電圧値を事前に設定した一定値として出力することで実現できる。この際には、事前に設定した一定値を別のアナログメモリに用意し、参照電圧値が所定数(割合)の被演算値Xiに相当する電圧に達すると同時にWTAの処理を中止し、前記のアナログメモリから事前に設定した一定値を出力すれば良い。また、同様の機能を実現できるのであればその他の回路及び手法を用いても良い。
(第十四の実施形態)
第十四の実施形態における画像処理を行なう積和演算回路の構成例を図37に示す。図37に示すように、本実施形態における画像処理を行なう積和演算回路は、第八〜第十三の実施形態で説明したニューラルネットワーク回路を含むことを特徴としている。なお図37では、階層構造の初段のみを示しており、それ以降の階層の記述を省略している。
ここで、積和演算回路に対して入力される信号は画像信号である。すなわち、本実施形態における積和演算回路は、入力された画像信号に対して、ニューラルネットワーク回路により所定の演算を行うことにより、所望の画像処理(例えばパターン検出およびパターン認識)を行うことを目的とするものである。
なお、実際に実現される画像処理の内容は、ニューラルネットワーク回路の被演算値Wi及び係数値Ki等を適当に調整することで、所望の処理内容(例えばパターン検出およびパターン認識)が実現されるよう設定することが可能であるが、その詳しい調整方法は、本発明の主眼とするところではないので、説明を省略する。
ここで本実施形態においては、撮像素子(例えばCCDまたはCMOSイメージセンサなど)から出力される前記画像信号は、第一〜第七の実施形態における被演算値Xiに相当する。従って、前期画像信号に対して行なわれる演算処理は、第一〜第十三の実施形態における被演算値Xiに対して行なわれる演算処理と同様である。なお前記画像信号は、アナログ信号、デジタル信号またはPWM信号として入力する。ここで、それぞれの種類の信号に対応する演算処理は、第一から第十三の実施形態で説明した被演算値Xiの信号の種類に対応している。従って、演算処理に関する説明は各実施形態と同様として省略する。
なお図37においては、アナログ信号である画像信号をコンパレータ69によってPWM信号に変換し、さらにパルス幅・デジタル変換回路70によってデジタル値に変換して、ニューラルネットワーク回路に入力する場合を示している。
なお本実施形態においては、撮像素子として、CCDまたはCMOSイメージセンサを想定しているが、その他の撮像素子を用いても問題は無い。また本実施形態における撮像素子数、ニューロン素子数及び階層数は、本発明における画像信号処理回路の構成を限定するものではなく、必要に応じて任意の数に設定することが可能である。
続いて図38は、以上で説明した演算処理フローを示している。
まず撮像素子から出力された画像信号を入力する工程S1を実行し、次に入力された信号を保持する入力値保持工程S2を実行する。続いて、保持された入力値を値が大きいもの順に出力するソーティング工程S3を実行し、フラグとラベルをメモリに保持するメモリ保持工程S4を実行する。続いて、ランプ生成工程S6においては、係数値入力工程S5から入力された係数値とメモリ保持工程S4から入力されたフラグによって、時間に関して単調に増加する電圧波形(ランプ波形)を生成し、スイッチング工程S7に入力する。
スイッチング工程S7においては、メモリ保持工程S4から入力されたラベルにより、ランプ波形を適当な演算回路に入力する。また、スイッチング工程S9においては、メモリ保持工程S4から入力されたラベルにより、荷重値入力工程S8によって入力された荷重値を適当な演算回路に入力する。
ランプ波形と荷重値を入力された演算回路においては、乗算・累算工程S10を実行し、累算値を関数処理工程S11に出力する。関数処理工程S11では、所定の関数処理を実行し、出力値を後段層へ入力する工程S12を実行する。後段層側では、以上説明した演算処理工程を必要な回数(階層数)繰り返す。
以上説明したように、ニューラルネットワーク回路による演算処理を画像信号に適用することにより、所望の演算処理(例えばパターン検出およびパターン認識など)を実現することができる。
第一の実施形態における積和演算回路の全体構成図である。 第一の実施形態におけるデジタル演算回路の構成図である。 第一の実施形態におけるソーティング回路の構成図である。 第一の実施形態におけるメモリの構成図である。 第一の実施形態におけるもう一つの積和演算回路の全体構成図である。 第一の実施形態におけるパルス幅・デジタル変換回路の構成図である。 第一の実施形態における終端ラッチ回路の内部構成図である。 第一の実施形態におけるラッチ回路の内部構成図である。 第一の実施形態におけるパルス幅・デジタル変換回路の各信号レベルの変化を表すタイムチャートである。 第一の実施形態におけるもう一つのパルス幅・デジタル変換回路の終端ラッチ回路、始端ラッチ回路、及び減算回路の構成図である。 第一の実施形態におけるもう一つのパルス幅・デジタル変換回路の各信号レベルの変化を表すタイムチャートである。 第二の実施形態におけるアナログ演算回路の構成図である。 第二の実施形態における入力値保持回路の構成図である。 第二の実施形態におけるソーティング回路の構成図である。 第二の実施形態におけるD/A変換回路の構成図である。 第二の実施形態におけるデジタル・パルス幅変換回路の構成図である。 第二の実施形態における各パルス生成回路の構成図である。 第二の実施形態におけるデジタル・パルス幅変換回路の動作を表すタイミングチャートである。 第二の実施形態における荷重保持回路の構成図である。 第二の実施形態におけるD/A変換回路の構成図である。 第三の実施形態における積和演算回路の全体構成図である。 第三の実施形態におけるアナログ演算回路の構成図である。 第三の実施形態におけるランプ生成回路の構成図である。 第四の実施形態におけるアナログ演算回路の構成図である。 第四の実施形態における積和演算回路の全体構成図である。 第四の実施形態におけるランプ生成回路の構成図である。 第五の実施形態における積和演算回路の全体構成図である。 第六の実施形態における積和演算回路の全体構成図である。 第六の実施形態におけるランプ生成回路の構成図である。 第七の実施形態における積和演算回路の全体構成図である。 第七の実施形態におけるランプ生成回路の構成図である。 ニューラルネットワークモデル図である。 第八の実施形態における積和演算回路の全体構成図である。 シグモイド変換を示す図である。 第八の実施形態におけるもう一つの積和演算回路の全体構成図である。 第九の実施形態における積和演算回路の全体構成図である。 第十四の実施形態における積和演算回路の全体構成図である。 第十四の実施形態における演算処理工程のフローチャートである。 従来のデジタル・パルス幅変換回路の一例を示す図である。 従来のパルス幅・デジタル変換回路の一例を示す図である。 第十の実施形態における積和演算方法の部分図である。 第十一の実施形態における積和演算方法の部分図である。 第十二の実施形態における積和演算方法の部分図である。 第十三の実施形態における積和演算方法の部分図である。 第二の実施形態における別形態のデジタル・パルス幅変換回路である。 第二の実施形態における別形態の各パルス生成回路の構成図である。 第二の実施形態における別形態のデジタル・パルス幅変換回路の動作を表すタイミングチャートである。
符号の説明
1 演算回路
2 入力値保持回路
3 荷重値保持回路
4 ソーティング回路
5 スイッチ回路
6 レジスタ
7 乗算器
8 加減算器
9 パルス幅・デジタル変換回路
10 カウンタ
11-1〜11-(n-1) 終端ラッチ回路
12-1〜12-(m-1) ラッチ
13 インバータ
14-0〜14-(n-1) 始端ラッチ回路
15-0〜15-(n-1) 減算回路
16-0〜16-(n-1) ラッチ
17 アナログ乗算器
18 キャパシタ
19 出力バッファ
20 キャパシタ
21 出力バッファ
22 WTA回路
23 デジタル・パルス幅変換回路
24 電流源
25 キャパシタ
26 出力バッファ
27-0〜27-(n-1) パルス生成回路
28 カウンタ
29 基準値レジスタ
30 加算回路
31 パルス幅レジスタ
32 切換回路
33 タイミングトリガ発生回路
34 出力パルス反転回路
35-0〜35-(m-1) EXORゲート
36 NORゲート
37 キャパシタ
38 出力バッファ
39 デジタル・パルス幅変換回路
40 電流源
41 キャパシタ
42 出力バッファ
43 メモリ回路
44 ランプ生成回路
45 アナログ乗算器
46 キャパシタ
47 出力バッファ
48 電圧制御電流源
49 スイッチ
50 キャパシタ
51 バッファ
52 電圧制御電流源
53 電圧制御抵抗素子
54 電圧制御電流源
55 キャパシタ
56 WTA回路
57 電圧増幅器
58 同値判定回路
59 係数値保持回路
60 ランプ生成回路
61 電圧制御電流源
62 ランプ生成回路
63 ニューロン素子
64 シナプス荷重
65 関数処理回路
66 関数処理回路
67 パルス幅・デジタル変換回路
68 撮像素子アレイ
69 コンパレータ
70 パルス幅・デジタル変換回路
101 ストローブ検出回路
102 ラッチ回路
103 カウンタ
104 デジタル・コンパレータ
105 JKフリップ・フロップ
111 従来のパルス幅・デジタル変換回路
112 ゲート回路
113 カウンタ
151 デジタル・パルス幅変換回路
152-0〜152-(n-1) パルス生成回路
153 カウンタ
162 パルス幅レジスタ
164 タイミングトリガ発生回路
165 出力パルス反転回路
166-0〜166-(m-1) EXORゲート
167 NORゲート
171 所定値保持メモリ
172 一定値保持メモリ
173 所定数(割合)保持メモリ
174 一定値保持メモリ

Claims (20)

  1. 被演算値を表わすパルス幅を持つパルス信号をデジタル信号に変換するパルス幅・デジタル変換手段と、
    前記パルス幅・デジタル変換手段によりデジタル信号に変換された複数の被演算値を降順または昇順に出力するソーティング手段と、
    前記ソーティング手段より出力される各被演算値に対応する演算値を乗じる乗算手段と、
    前記乗算手段による乗算結果の累算和を算出する累算和手段とを備え、
    前記パルス幅・デジタル変換手段が、
    クロックを計数してその計数値をデジタル信号として出力するカウンタと、
    それぞれに入力される各パルス信号の終端において前記カウンタが出力する共通の計数値をラッチする複数の終端ラッチ回路とを有することを特徴とする積和演算回路。
  2. 前記パルス幅・デジタル変換回路が、
    前記パルス信号の始端において前記カウンタが出力する計数値をラッチする始端ラッチ回路と、
    前記終端ラッチ回路のデジタル出力値と前記始端ラッチ回路のデジタル出力値との差を演算して出力する減算回路と
    を、前記複数の終端ラッチ回路の各々に対応して備えていることを特徴とする請求項1に記載の積和演算回路。
  3. 前記ソーティング手段は、前記複数の被演算値のうち所定値以上の被演算値を出力することを特徴とする請求項1に記載の積和演算回路。
  4. 前記ソーティング手段は、前記複数の被演算値のうち所定値未満の被演算値に代えて一定値を出力することを特徴とする請求項1に記載の積和演算回路。
  5. 前記ソーティング手段は、前記複数の被演算値のうち降順または昇順で所定の割合を占める被演算値を出力することを特徴とする請求項1に記載の積和演算回路。
  6. 前記ソーティング手段は、前記複数の被演算値のうち降順または昇順で所定の割合を占める被演算値以外の被演算値に代えて一定値を出力することを特徴とする請求項1に記載の積和演算回路。
  7. クロックを計数してその計数値をデジタル信号として出力する第2のカウンタと、
    それぞれに外部からデジタル値として入力される各入力値と前記カウンタが出力する共通の計数値とを比較して、所定の時点から前記入力値と前記計数値とが一致する時点までの時間幅の出力パルス信号、又は所定の最大計数値から前記入力値を引いた値と前記計数値とが一致する時点から前記計数値が前記最大計数値に達する時点までの時間幅の出力パルス信号を生成する複数のパルス生成手段と
    を備えるデジタル・パルス幅変換回路を有することを特徴とする請求項1〜6に記載の積和演算回路。
  8. 前記複数のパルス生成手段の各々は、
    外部から入力される前記入力値をラッチするパルス幅レジスタと、
    前記パルス幅レジスタがラッチした前記入力値の各ビットと、前記カウンタが出力する計数値の各ビットとを比較して、両者が完全に一致したときにトリガを発生するタイミングトリガ発生回路と、
    前記タイミングトリガ発生回路がトリガを発生したときに、前記出力パルス信号の真理値を反転させる出力パルス反転回路と、
    を備えていることを特徴とする請求項7に記載の積和演算回路。
  9. 前記複数のパルス生成手段の各々は、
    前記出力パルスの立ち上がりのタイミングを表すデジタル値である基準値をラッチする基準値レジスタと、
    前記基準値と外部から入力されるデジタル値である前記入力値との加算値を出力する加算回路と、
    前記加算回路の出力値をラッチするパルス幅レジスタと、
    前記基準値レジスタがラッチしたデジタル値又は前記パルス幅レジスタがラッチしたデジタル値の何れか一方を切り換えて出力する切換回路と、
    前記切換回路から出力されるデジタル値の各ビットと、前記カウンタが出力する計数値の各ビットとを比較して、両者が完全に一致したときにトリガを発生するタイミングトリガ発生回路と、
    前記タイミングトリガ発生回路がトリガを発生したときに、前記出力パルス信号の真理値を反転させる出力パルス反転回路と
    を備え、
    前記切換回路は、前記出力パルス反転回路が出力する出力パルスが偽値のときは、前記基準値レジスタがラッチしたデジタル値を出力し、前記出力パルス反転回路が出力する出力パルスが真値のときは、前記パルス幅レジスタがラッチしたデジタル値を出力するように切り換えを行うことを特徴とする請求項7に記載の積和演算回路。
  10. 前記乗算手段及び累算和手段が、それぞれ乗算及び累算和算出を行なう複数個の演算ブロックを有することを特徴とする請求項1〜9に記載の積和演算回路。
  11. 前記複数個の演算ブロックが並列に演算を行なうことを特徴とする請求項10に記載の積和演算回路。
  12. 前記複数の被演算値がラベルを有し、各被演算値をラベルに対応する演算ブロックで乗算することを特徴とする請求項10または11に記載の積和演算回路。
  13. スイッチにより各被演算値を入力する経路を切り替えて、当該被演算値をラベルに対応する演算ブロックに入力することを特徴とする請求項12に記載の積和演算回路。
  14. 前記乗算手段は、各被演算値に対して荷重値を掛ける重み付け演算を行なうことを特徴とする請求項1〜13に記載の積和演算回路。
  15. 前記複数の被演算値がデジタル信号であり、前記ソーティング手段が連想メモリを用いて当該複数の被演算値を降順または昇順に出力することを特徴とする請求項1〜14に記載の積和演算回路。
  16. 前記ソーティング手段の出力に応じて、時間に対して単調に増加または減少する電圧信号を前記乗算手段に出力する信号出力手段を有することを特徴とする請求項1〜15に記載の積和演算回路。
  17. 前記電圧信号を所定係数倍する手段を有することを特徴とする請求項16に記載の積和演算回路。
  18. 前記乗算手段が、被演算値に相当する電圧値を、電圧制御電流源及び電圧制御抵抗素子の制御電圧として入力し、乗算結果を電圧値として出力することを特徴とする請求項1〜17に記載の積和演算回路。
  19. 複数段のニューロン素子を有するニューラルネットワークであって、各ニューロン素子が請求項1〜18に記載の積和演算回路を備え、当該積和演算回路が、
    前段のニューロン素子の出力値を前記複数の被演算値として入力し、
    前記乗算手段により各被演算値に対応する演算値としてシナプス荷重を乗じ、
    前記累算和として内部状態値を算出することを特徴とするニューラルネットワーク。
  20. 被演算値を表わすパルス幅を持つパルス信号をデジタル信号に変換するパルス幅・デジタル変換工程と、
    前記パルス幅・デジタル変換工程によりデジタル信号に変換された複数の被演算値を降順または昇順に出力するソーティング工程と、
    前記ソーティング工程により出力される各被演算値に対応する演算値を乗じる乗算工程と、
    前記乗算工程による乗算結果の累算和を算出する累算和工程とを備え、
    前記パルス幅・デジタル変換工程が、
    カウンタによりクロックを計数してその計数値をデジタル信号として出力する工程と、
    複数の終端ラッチ回路により、それぞれに入力される各パルス信号の終端において前記カウンタが出力する共通の計数値をラッチする工程とを有することを特徴とする積和演算方法。









JP2003356626A 2003-10-16 2003-10-16 積和演算回路及びその方法 Expired - Fee Related JP4620944B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2003356626A JP4620944B2 (ja) 2003-10-16 2003-10-16 積和演算回路及びその方法
PCT/JP2004/015540 WO2005038645A2 (en) 2003-10-16 2004-10-14 Operation circuit and operation control method thereof
AT04773802T ATE542176T1 (de) 2003-10-16 2004-10-14 Betriebsschaltung und betriebssteuerverfahren dafür
EP04773802A EP1676197B1 (en) 2003-10-16 2004-10-14 Operation circuit and operation control method thereof
US11/036,001 US7120617B2 (en) 2003-10-16 2005-01-18 Operation circuit and operation control method thereof
US11/434,779 US7272585B2 (en) 2003-10-16 2006-05-17 Operation circuit and operation control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003356626A JP4620944B2 (ja) 2003-10-16 2003-10-16 積和演算回路及びその方法

Publications (2)

Publication Number Publication Date
JP2005122466A true JP2005122466A (ja) 2005-05-12
JP4620944B2 JP4620944B2 (ja) 2011-01-26

Family

ID=34613814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003356626A Expired - Fee Related JP4620944B2 (ja) 2003-10-16 2003-10-16 積和演算回路及びその方法

Country Status (1)

Country Link
JP (1) JP4620944B2 (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007066258A (ja) * 2005-09-02 2007-03-15 Canon Inc 演算装置
JP2009245296A (ja) * 2008-03-31 2009-10-22 Fujitsu Ltd 積和演算回路
JP2009282782A (ja) * 2008-05-22 2009-12-03 Sharp Corp 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法
JP2013533542A (ja) * 2010-06-10 2013-08-22 マイクロン テクノロジー, インク. 階層構造を使用するデータの分析
US9104828B2 (en) 2011-01-25 2015-08-11 Micron Technology, Inc. State grouping for element utilization
US9146714B2 (en) 2011-01-25 2015-09-29 Micron Technology, Inc. Method and apparatus for compiling regular expressions
US9298437B2 (en) 2011-01-25 2016-03-29 Micron Technology, Inc. Unrolling quantifications to control in-degree and/or out-degree of automaton
US9471290B2 (en) 2011-01-25 2016-10-18 Micron Technology, Inc. Utilizing special purpose elements to implement a FSM
US9851942B2 (en) 2016-03-10 2017-12-26 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
WO2018215867A1 (ja) * 2017-05-22 2018-11-29 株式会社半導体エネルギー研究所 表示システム、および電子機器
CN112384927A (zh) * 2018-07-13 2021-02-19 索尼公司 乘积累加运算装置、乘积累加运算电路、乘积累加运算系统和乘积累加运算方法
CN112639797A (zh) * 2018-10-11 2021-04-09 Tdk株式会社 积和运算器、逻辑运算器件、神经形态器件及积和运算方法
CN112654996A (zh) * 2018-09-27 2021-04-13 Tdk株式会社 积和运算器、神经形态器件以及积和运算方法
CN112771533A (zh) * 2018-11-08 2021-05-07 Tdk株式会社 积和运算器、积和运算方法、逻辑运算装置和神经形态器件
US11137813B2 (en) 2014-03-14 2021-10-05 Semiconductor Energy Laboratory Co., Ltd. Analog arithmetic circuit, semiconductor device, and electronic device
US12007890B2 (en) 2018-06-18 2024-06-11 The Trustees Of Princeton University Configurable in memory computing engine, platform, bit cells and layouts therefore

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52101946A (en) * 1976-02-19 1977-08-26 Bendix Corp Data transmission and digital processor
JPH02181284A (ja) * 1988-02-18 1990-07-16 Hitachi Ltd ニューラルネットワーク
JPH02201586A (ja) * 1989-01-31 1990-08-09 Fujitsu Ltd ニューロチップによる結合器
JPH10187438A (ja) * 1996-08-12 1998-07-21 Hitachi Ltd 乗算器の入力に対する遷移を減少させる方法
JPH10240938A (ja) * 1997-02-27 1998-09-11 Oki Electric Ind Co Ltd ピーク評価装置およびピーク評価方法
JP2003015863A (ja) * 2001-07-03 2003-01-17 Matsushita Electric Ind Co Ltd 演算処理装置、マイクロプロセッサ装置及び無線局装置
JP2003044850A (ja) * 2001-07-31 2003-02-14 Takashi Morie 画像領域抽出方法及び装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52101946A (en) * 1976-02-19 1977-08-26 Bendix Corp Data transmission and digital processor
JPH02181284A (ja) * 1988-02-18 1990-07-16 Hitachi Ltd ニューラルネットワーク
JPH02201586A (ja) * 1989-01-31 1990-08-09 Fujitsu Ltd ニューロチップによる結合器
JPH10187438A (ja) * 1996-08-12 1998-07-21 Hitachi Ltd 乗算器の入力に対する遷移を減少させる方法
JPH10240938A (ja) * 1997-02-27 1998-09-11 Oki Electric Ind Co Ltd ピーク評価装置およびピーク評価方法
JP2003015863A (ja) * 2001-07-03 2003-01-17 Matsushita Electric Ind Co Ltd 演算処理装置、マイクロプロセッサ装置及び無線局装置
JP2003044850A (ja) * 2001-07-31 2003-02-14 Takashi Morie 画像領域抽出方法及び装置

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4579798B2 (ja) * 2005-09-02 2010-11-10 キヤノン株式会社 演算装置
JP2007066258A (ja) * 2005-09-02 2007-03-15 Canon Inc 演算装置
JP2009245296A (ja) * 2008-03-31 2009-10-22 Fujitsu Ltd 積和演算回路
JP2009282782A (ja) * 2008-05-22 2009-12-03 Sharp Corp 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法
KR101698237B1 (ko) * 2010-06-10 2017-02-01 마이크론 테크놀로지, 인크. 계층적 구조를 이용한 데이터 분석
JP2013533542A (ja) * 2010-06-10 2013-08-22 マイクロン テクノロジー, インク. 階層構造を使用するデータの分析
KR20130120441A (ko) * 2010-06-10 2013-11-04 마이크론 테크놀로지, 인크. 계층적 구조를 이용한 데이터 분석
US11488378B2 (en) 2010-06-10 2022-11-01 Micron Technology, Inc. Analyzing data using a hierarchical structure
US9785847B2 (en) 2010-06-10 2017-10-10 Micron Technology, Inc. Analyzing data using a hierarchical structure
US9792097B2 (en) 2011-01-25 2017-10-17 Micron Technology, Inc. Method and apparatus for compiling regular expressions
US9471290B2 (en) 2011-01-25 2016-10-18 Micron Technology, Inc. Utilizing special purpose elements to implement a FSM
US9298437B2 (en) 2011-01-25 2016-03-29 Micron Technology, Inc. Unrolling quantifications to control in-degree and/or out-degree of automaton
US9146714B2 (en) 2011-01-25 2015-09-29 Micron Technology, Inc. Method and apparatus for compiling regular expressions
US9104828B2 (en) 2011-01-25 2015-08-11 Micron Technology, Inc. State grouping for element utilization
US9916145B2 (en) 2011-01-25 2018-03-13 Micron Technology, Inc. Utilizing special purpose elements to implement a FSM
US10089086B2 (en) 2011-01-25 2018-10-02 Micron Technologies, Inc. Method and apparatus for compiling regular expressions
US11137813B2 (en) 2014-03-14 2021-10-05 Semiconductor Energy Laboratory Co., Ltd. Analog arithmetic circuit, semiconductor device, and electronic device
US10114611B2 (en) 2016-03-10 2018-10-30 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
US9851942B2 (en) 2016-03-10 2017-12-26 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
WO2018215867A1 (ja) * 2017-05-22 2018-11-29 株式会社半導体エネルギー研究所 表示システム、および電子機器
US12007890B2 (en) 2018-06-18 2024-06-11 The Trustees Of Princeton University Configurable in memory computing engine, platform, bit cells and layouts therefore
CN112384927A (zh) * 2018-07-13 2021-02-19 索尼公司 乘积累加运算装置、乘积累加运算电路、乘积累加运算系统和乘积累加运算方法
US12008338B2 (en) 2018-07-13 2024-06-11 Sony Group Corporation Multiply-accumulate operation device, multiply-accumulate operation circuit, multiply-accumulate operation system, and multiply-accumulate operation method
CN112654996A (zh) * 2018-09-27 2021-04-13 Tdk株式会社 积和运算器、神经形态器件以及积和运算方法
CN112639797A (zh) * 2018-10-11 2021-04-09 Tdk株式会社 积和运算器、逻辑运算器件、神经形态器件及积和运算方法
CN112771533A (zh) * 2018-11-08 2021-05-07 Tdk株式会社 积和运算器、积和运算方法、逻辑运算装置和神经形态器件

Also Published As

Publication number Publication date
JP4620944B2 (ja) 2011-01-26

Similar Documents

Publication Publication Date Title
EP1676197B1 (en) Operation circuit and operation control method thereof
JP4272967B2 (ja) 演算回路およびその動作制御方法
JP4620943B2 (ja) 積和演算回路及びその方法
JP4620944B2 (ja) 積和演算回路及びその方法
US20220100255A1 (en) Unit Element for performing Multiply-Accumulate Operations
US10853721B2 (en) Multiplier accumulator, network unit, and network apparatus
Sayal et al. A 12.08-TOPS/W all-digital time-domain CNN engine using bi-directional memory delay lines for energy efficient edge computing
KR102653822B1 (ko) 혼성 신호 컴퓨팅 시스템 및 방법
US20190294957A1 (en) Arithmetic device and arithmetic method
JP2007066258A (ja) 演算装置
Parodi et al. Synthesis of multiport resistors with piecewise‐linear characteristics: a mixed‐signal architecture
WO2020255599A1 (ja) 演算装置及び積和演算システム
US5485548A (en) Signal processing apparatus using a hierarchical neural network
JP3177636B2 (ja) パルス変調演算回路
US11475288B2 (en) Sorting networks using unary processing
JP2000057241A (ja) 非線形演算回路
US20240036525A1 (en) Energy efficient digital to time converter (dtc) for edge computing
Al Maharmeh et al. A 116 TOPS/W Spatially Unrolled Time-Domain Accelerator Utilizing Laddered-Inverter DTC for Energy-Efficient Edge Computing in 65 nm
Boggiano et al. FPGA implementation of a new scheme for the circuit realization of PWL functions
KR102547775B1 (ko) 아날로그 대 확률 신호 변환기의 정규화 방법
JP3338713B2 (ja) 信号処理装置
US11782680B2 (en) Arithmetic logic unit, multiply-accumulate operation device, multiply-accumulate operation circuit, and multiply-accumulate operation system
Du Time Domain Multiply and Accumulate Engine for Convolutional Neural Networks
Temel et al. A novel signed higher-radix full-adder algorithm and implementation with current-mode multi-valued logic circuits
JP2004157757A (ja) アナログ演算回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100201

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100201

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100921

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: 20101026

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101029

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

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