IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社テックイデアの特許一覧

<>
  • 特許-積和演算器 図1
  • 特許-積和演算器 図2
  • 特許-積和演算器 図3
  • 特許-積和演算器 図4
  • 特許-積和演算器 図5
  • 特許-積和演算器 図6
  • 特許-積和演算器 図7
  • 特許-積和演算器 図8
  • 特許-積和演算器 図9
  • 特許-積和演算器 図10
  • 特許-積和演算器 図11
  • 特許-積和演算器 図12
  • 特許-積和演算器 図13
  • 特許-積和演算器 図14
  • 特許-積和演算器 図15
  • 特許-積和演算器 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】積和演算器
(51)【国際特許分類】
   G06G 7/60 20060101AFI20241112BHJP
   G06F 3/05 20060101ALI20241112BHJP
   G06F 17/10 20060101ALI20241112BHJP
   H03M 1/68 20060101ALI20241112BHJP
【FI】
G06G7/60
G06F3/05 D
G06F3/05 311D
G06F17/10 S
H03M1/68
【請求項の数】 12
(21)【出願番号】P 2022503180
(86)(22)【出願日】2021-01-27
(86)【国際出願番号】 JP2021002791
(87)【国際公開番号】W WO2021171880
(87)【国際公開日】2021-09-02
【審査請求日】2024-01-10
(31)【優先権主張番号】P 2020031047
(32)【優先日】2020-02-26
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】516205214
【氏名又は名称】株式会社テックイデア
(74)【代理人】
【識別番号】110003753
【氏名又は名称】弁理士法人シエル国際特許事務所
(74)【代理人】
【識別番号】100173646
【弁理士】
【氏名又は名称】大森 桂子
(72)【発明者】
【氏名】松澤 昭
(72)【発明者】
【氏名】野原 正也
【審査官】漆原 孝治
(56)【参考文献】
【文献】特開昭60-178584(JP,A)
【文献】特開平09-259205(JP,A)
【文献】国際公開第2019/152451(WO,A1)
【文献】特開平11-163728(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06G 7/60
G06F 3/05
G06F 17/10
H03M 1/68
(57)【特許請求の範囲】
【請求項1】
複数のデジタル・アナログ変換器で構成され、複数のデジタル値を各要素とするベクトル及び複数のデジタル値を各要素とする行列が入力され、前記ベクトルの各要素のデジタル値をアナログ電圧に変換する電圧出力デジタル・アナログ変換部と、
複数のデジタル・アナログ変換器で構成され、前記電圧出力デジタル・アナログ変換器列の各出力電圧が入力され、前記行列の各要素のデジタル値に対応した容量比が入出力端子間及び出力端子と接地間に設定される容量型デジタル・アナログ変換部と、
複数のアナログ・デジタル変換器で構成され、前記容量型デジタル・アナログ変換部の各出力端に共通に接続されたノードの電圧がアナログ入力され、デジタル値に変換されるアナログ・デジタル変換部と、
を有し、
前記容量型デジタル・アナログ変換部は差動信号を出力し、
前記アナログ・デジタル変換部の各アナログ・デジタル変換器には、前記容量型デジタル・アナログ変換部の各出力端に共通に接続された一対のノードの差動電圧がアナログ入力され、デジタル値に変換され、
前記アナログ・デジタル変換部の出力を出力ベクトルとする積和演算器。
【請求項2】
前記複数のデジタル値を各要素とする行列は1次元ベクトルであり、
前記電圧出力デジタル・アナログ変換部の各デジタル・アナログ変換器から第1のベクトルと前記1次元ベクトルとの内積が出力される請求項1に記載の積和演算器。
【請求項3】
前記アナログ・デジタル変換部の各アナログ・デジタル変換器は、前記一対のノードの差動電圧を一対の容量にサンプリングし、前記一対の容量の端子間を短絡することで同相信号を抽出し、前記一対のノードの差動電圧から差し引くことで同相成分をキャンセルする請求項に記載の積和演算器。
【請求項4】
前記容量型デジタル・アナログ変換部は、出力に対して2進重み付け容量を用いて各要素のデジタル値に対応した容量比を入出力端子間及び出力端子と接地間に設定する請求項1に記載の積和演算器。
【請求項5】
前記電圧出力デジタル・アナログ変換部を構成する各デジタル・アナログ変換器に重み付け抵抗が用いられている請求項1に記載の積和演算器。
【請求項6】
前記電圧出力デジタル・アナログ変換部を構成する各デジタル・アナログ変換器は、上位数ビットはサーモメータコードを用いた等しい抵抗で構成され、残りの下位ビットには2進で重み付けされたR-2R梯子型の抵抗が用いられている請求項に記載の積和演算器。
【請求項7】
前記電圧出力デジタル・アナログ変換部を構成する各デジタル・アナログ変換器は、最小ビットの抵抗の接地端への接続が開放可能となっている請求項に記載の積和演算器。
【請求項8】
前記電圧出力デジタル・アナログ変換部及び前記容量型デジタル・アナログ変換部の入力データは、メモリセルに保存されており、その論理状態をセンスするセンスアンプの出力から得られる請求項1に記載の積和演算器。
【請求項9】
前記メモリセルへの入力データは差動形式であり、振幅が電源電圧よりも低い低振幅バスを用いて伝送され、前記センスアンプでより大きい振幅に変換されて前記メモリセルのビットラインを駆動する請求項に記載の積和演算器。
【請求項10】
前記メモリセルはSRAMである請求項に記載の積和演算器。
【請求項11】
前記メモリセルは不揮発性である請求項に記載の積和演算器。
【請求項12】
前記不揮発性のメモリセルはMRAMである請求項11に記載の積和演算器。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、積和演算器に関する。より詳しくは、デジタル・アナログ変換器(Digital to Analog Converter;DAC)と、アナログ・デジタル変換器(Analog to Digital Converter;ADC)を用いた積和演算器に関する。
【背景技術】
【0002】
デジタル演算は積和演算を基本とする。また、近年開発競争が激しいAIプロセッサではニューロ演算を行う。図15はAIプロセッサにおけるニューロ演算の概念図である。なお、ニューロ演算では多数のレイヤーを必要とするが、図15においては、基本となる入力層(Input layer)、隠れ層(Hidden Layer)及び出力層(Output layer)のみを示している。
【0003】
図15に示すように、ニューロ演算における各層間では積和演算が行われている。その一例として、入力層と隠れ層間の演算を示す。入力層のベクトルをX、結合係数行列をW(0)とすると、隠れ層のベクトルYは、下記数式1により表される。
【0004】
【数1】
【0005】
上記数式1において出力層の1つの要素yに着目した場合下記数式2で表され、積和演算処理を行っていることがわかる。
【数2】
【0006】
ニューロプロセッサでは、各レイヤーのノード数がNのとき、各レイヤーにおいてNの積和演算が必要となる。例えば、画素数が100×100の画像認識では、N=10、N=10となり、1レイヤーにつき1億回もの積和演算が必要となる。このため、ニューロプロセッサは、演算速度を上げると共に、演算の消費エネルギーを下げることが喫緊の課題となっている。
【0007】
図16はデジタル回路を用いた従来の積和演算器の構成を示す図である。図16に示すように、従来の代表的なデジタル積和演算器では、入力Xはバスを通じて各フリップフロップ(F/F)に入力される。また、図16に示す積和演算器では、乗算器(MUL)が2次元的に配置されており、各乗算器には入力Xの各要素及び入力Wの各要素が入力され、乗算器において入力Xの各要素と入力Wの各要素の乗算が行われる。そして、乗算出力は、バスを通じて加算器(ADD)に順次入力され、累積加算が行われる。
【先行技術文献】
【非特許文献】
【0008】
【文献】K. Uenishi, et al., “FPGA Implementation of a Scalable and Highly Parallel Architecture for Restricted Boltzmann Machines,” Circuits and Systems, 2016, 7, 2132-2141, Scientific Research Publishing.
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、前述した従来のデジタル積和演算器は、乗算器の演算速度と消費エネルギー、累積加算の演算速度と消費エネルギーに問題がある。特に、累積加算器は、乗算器の出力がバスを通じて順次累積加算器に送られるため、演算速度が遅く、消費エネルギーが大きいという課題がある。
【0010】
そこで、本発明は、演算速度が速く、かつ消費エネルギーが小さい積和演算器を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明者は、前述した課題を解決するため、鋭意実験検討を行った結果、以下に示す知見を得た。アナログ演算は物理現象を用いており、一瞬かつ低消費エネルギーで演算結果が得られる可能性がある。しかしながら、アナログ演算は、デジタル演算に比べて演算精度が不十分であることから、従来殆ど用いられていなかった。一方、ニューロプロセッサの積和演算では、殆どの用途において8ビット程度の精度で十分であるとされていることから、本発明者はアナログ演算の適用について検討を行った。
【0012】
その結果、抵抗型デジタル・アナログ変換器(RDAC)のような電圧出力のDACで入力Xに比例する電圧を発生させ、この電圧をアナログ入力として行列の各要素Wのデジタル値に対応した容量比を入出力端子間及び出力端子と接地間に設定する容量型DACを用いることで、その出力電圧Yが入力Xと行列の各要素Wの積になることを見出した。この構成を採用すれば、8ビット精度を実現する容量が4fF程度と極めて小さくなり、デジタル乗算器とは異なりキャリー伝搬が生じないため、高速かつ低消費エネルギーで動作させることができる。
【0013】
更に、容量型DAC列の各出力端を共通に接続したノードの電圧は、電荷保存則により加算した値となるため、エネルギーを殆ど消費せずに一瞬で複数入力の加算が可能となる。具体的には、100並列の加算であれば一瞬で終了する。この電圧は、ADCでデジタル値に変換される。このように、本発明者は、入出力はデジタル値であるが、乗算及び加算演算はアナログで行うことにより、高速かつ低エネルギーで積和演算ができる方法も見出し、本発明に至った。
【0014】
即ち、本発明に係る積和演算器は、複数のデジタル・アナログ変換器で構成され、複数のデジタル値を各要素とするベクトル及び複数のデジタル値を各要素とする行列が入力され、前記ベクトルの各要素のデジタル値をアナログ電圧に変換する電圧出力デジタル・アナログ変換部と、複数のデジタル・アナログ変換器で構成され、前記電圧出力デジタル・アナログ変換器列の各出力電圧が入力され、前記行列の各要素のデジタル値に対応した容量比が入出力端子間及び出力端子と接地間に設定される容量型デジタル・アナログ変換部と、複数のアナログ・デジタル変換器で構成され、前記容量型デジタル・アナログ変換部の各出力端に共通に接続されたノードの電圧がアナログ入力され、デジタル値に変換されるアナログ・デジタル変換部と、を有し、前記アナログ・デジタル変換部の出力を出力ベクトルとするものである。
本発明の積和演算器において、前記複数のデジタル値を各要素とする行列は1次元ベクトルであり、前記電圧出力デジタル・アナログ変換部の各デジタル・アナログ変換器からの出力値を、第1のベクトルと前記1次元ベクトルとの内積としてもよい。
本発明の積和演算器は、前記容量型デジタル・アナログ変換部は差動信号を出力し、前記アナログ・デジタル変換部の各アナログ・デジタル変換器には、前記容量型デジタル・アナログ変換部の各出力端に共通に接続された一対のノードの差動電圧がアナログ入力され、デジタル値に変換してもよい。
その場合、前記アナログ・デジタル変換部の各アナログ・デジタル変換器は、前記一対のノードの差動電圧を一対の容量にサンプリングし、前記一対の容量の端子間を短絡することで同相信号を抽出し、前記一対のノードの差動電圧から差し引くことで同相成分をキャンセルすることができる。
又は、前記容量型デジタル・アナログ変換部は、出力に対して2進重み付け容量を用いて各要素のデジタル値に対応した容量比を入出力端子間及び出力端子と接地間に設定してもよい。
また、本発明の積和演算器は、前記電圧出力デジタル・アナログ変換部を構成する各デジタル・アナログ変換器に重み付け抵抗を用いてもよい。
その場合、前記電圧出力デジタル・アナログ変換部を構成する各デジタル・アナログ変換器は、例えば、上位数ビットはサーモメータコードを用いた等しい抵抗で構成し、残りの下位ビットは2進で重み付けされたR-2R梯子型の抵抗を用いることができる。
又は、前記電圧出力デジタル・アナログ変換部を構成する各デジタル・アナログ変換器は、最小ビットの抵抗の接地端への接続が開放可能となっていてもよい。
一方、本発明の積和演算器は、前記電圧出力デジタル・アナログ変換部及び前記容量型デジタル・アナログ変換部の入力データがメモリセルに保存されており、その論理状態をセンスするセンスアンプの出力から得ることもできる。
その場合、前記メモリセルへの入力データを差動形式とし、振幅が電源電圧よりも低い低振幅バスを用いて伝送し、前記センスアンプでより大きい振幅に変換されて前記メモリセルのビットラインを駆動してもよい。
前記メモリセルは例えばSRAMとすることができる。
又は、前記メモリセルが不揮発性でもよく、例えば不揮発性のメモリセルとしてMRAMを用いることもできる。
【発明の効果】
【0015】
本発明によれば、アナログ・デジタル変換部の複数のアナログ・デジタル変換器の出力値から出力ベクトルを得て、同時並列的に極めて多くの積和演算ができるため、これまでのデジタル演算器を用いた積和演算器に比べて、低エネルギーで動作し、高速動作が可能な積和演算器を実現することができる。
【図面の簡単な説明】
【0016】
図1】本発明の第1の実施形態の積和演算器の構成を示す図である。
図2】Aは図1に示す電圧出力デジタル・アナログ変換部11に用いられる抵抗型DACの回路図であり、Bは電流型DACの回路図である。
図3図1に示す容量型デジタル・アナログ変換部12に用いられるCDACの回路図である。
図4】A及びBはCDACを用いた積和演算の原理を示す回路及びその動作を示す図であり、Aはリセットモードを示し、Bは実行モードを示す。
図5】差動構成のCDACの回路図である。
図6図1に示すアナログ・デジタル変換部13に用いられる逐次比較型ADCの回路図である。
図7図1に示す積和演算器の動作を示すタイミングチャートである。
図8】本発明の第1の実施形態の第1変形例の積和演算器に用いられる逐次比較型ADCの回路図である。
図9】A~Cは図8に示すSAR ADCのコモンモード電圧の除去方法を示す動作回路図である。
図10】本発明の第1の実施形態の第2変形例の積和演算器に用いられる抵抗型DACの回路図である。
図11】本発明の第1の実施形態の積和演算器において応答速度と消費電力を算出するための等価回路である。
図12】本発明の第2の実施形態の積和演算器に用いられるDACへのデータ入力回路を示す図である。
図13】A及びBは図12に示すメモリセルの回路図であり、Cはセンスアップの回路図である。
図14図12に示すメモリセルへの入力バスの電圧を示す図である。
図15】AIプロセッサにおけるニューロ演算の概念図である。
図16】デジタル回路を用いた従来の積和演算器の構成を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明を実施するための形態について、添付の図面を参照して詳細に説明する。なお、本発明は、以下に説明する実施形態に限定されるものではない。
【0018】
(第1の実施形態)
先ず、本発明の第1の実施形態に係る積和演算器について説明する。本実施形態の積和演算器は、2つの入力デジタル値列を入力とし、一方の入力は電圧出力デジタル・アナログ変換器(DAC)を用いて電圧列に変換し、他方の入力は容量型デジタル・アナログ変換器(CDAC)に入力する。そして、この積和演算器では、電圧をアナログ入力とするCDACにより乗算を行い、複数のCDACの出力を共通に接続することで同時加算を行い、このノードの電圧を、アナログ・デジタル変換器(ADC)においてアナログ・デジタル変換することでデジタル出力値を得る。
【0019】
図1は本実施形態の積和演算器の構成を示す図である。図1に示すように、本実施形態の積和演算器1には、複数のDACを備える電圧出力デジタル・アナログ変換部11と、複数のCDACを備える容量型デジタル・アナログ変換部12と、複数のADCを備えるアナログ・デジタル変換部13が設けられている。本実施形態の積和演算器1では、複数のデジタル値を各要素とするベクトルXは、それぞれバスを通じて電圧出力デジタル・アナログ変換部11の各DACに入力される。また、行列Wの各要素のデジタル値は、容量型デジタル・アナログ変換部12において2次元に配置された各CDACに入力される。
【0020】
図2A図1に示す電圧出力デジタル・アナログ変換部11に用いられる抵抗型DACの回路図であり、図2Bは電流型DACの回路図である。電圧出力デジタル・アナログ変換部11は、例えば図2Aに示すR-2R抵抗型DACや、図2Bに示すような電流型DACを用いることで実現することができる。インバータの電源電圧をVDD、各インバータの反転入力データをD(Dは0又は1)としたとき、R-2R抵抗型DACの出力電圧Vは下記数式3により表される。
【0021】
【数3】
【0022】
図2Aには分解能4ビットの例を示しているが、この抵抗型DACは、インバータと2種類の抵抗R,2Rしか用いないことから、非常にコンパクトに電圧出力のデジタル・アナログ変換器を実現できる。一方、図2Bに示す電流型DACを用いても電圧出力のデジタル・アナログ変換器を実現できる。この場合、電流源を用い、入力データに応じた電流を負荷抵抗Rに流すことで、電圧出力のデジタル・アナログ変換器を実現できる。
【0023】
図3図1に示す容量型デジタル・アナログ変換部12に用いられるCDACの回路図である。容量型デジタル・アナログ変換部12は、例えば図3に示すCDACを用いることができる。このCDACは、入力データDに応じて接地又は入力電圧を選択するスイッチSと、出力端に2進で重み付けされた容量が接続されている。入力電圧をVinとしたとき、出力電圧Voutは、下記数式4により求められる。
【0024】
【数4】
【0025】
そして、抵抗型DACの入力ビットをXとし、CDACの入力ビットをWとすると、上記数式3及び上記数式4より、出力電圧Voutは下記数式5で表される。これは、入力値Xと入力値Wの乗算が行われることを示している。
【0026】
【数5】
【0027】
次に、アナログ・デジタル変換部13への入力となるCDACの共通接続線における信号の加算性について説明する。図4A,BはCDACを用いた積和演算の原理を示す回路の動作を示す図である。図4A,Bに示すCDACは、1で規格化された入力値Wに比例する容量値WCと、1から入力値Wを引いた容量値(1-W)Cの2つの容量を有し、これらは並列に接続されている。この2つの容量は、それぞれ一方の端子が出力線に共通に接続され、他方の端子は入力電圧又は接地を選択するスイッチS,Sに接続されている。
【0028】
このCDACには、図4Aに示す「リセット」と、図4Bに示す「実行」の2つの動作モードがある。図4Aに示すように、リセットモードでは、全てのスイッチS,Sが接地を選択し、出力線はスイッチSによって接地に接続される。このため、各容量の電荷はゼロにリセットされる。一方、図4Bに示すように、実行モードでは、スイッチSはそのまま接地状態を維持し、スイッチSは入力電圧VDDXを選択する。この時の出力線の電圧をVOSとすると、電荷保存則より下記数式6が成り立つ。
【0029】
【数6】
【0030】
上記数式6から電圧Vosを求めると、下記数式7となり、n個のCDACの出力が同時加算されたものとなる。
【0031】
【数7】
【0032】
また、出力電圧は、自動的に規格化され、0からVDDの間の電圧を取る。
【0033】
以上のように、電荷保存則という物理現象を用いることで、瞬時に多数の加算が実現できる。しかもCDACを差動構成にすることで、容易に正負の両極性の値を取り扱うことができる。図5は差動構成のCDACの回路図である。図5に示すように、差動構成のCDACの入力信号は、wを下記数式8で表される値を取る両極性の入力信号とし、ηをバイアス値として、これまで用いてきた規格化されたCDACの入力信号Wと下記数式9に示す関係が成立する。
【0034】
【数8】
【0035】
【数9】
【0036】
バイアス値ηは、0.5のときに最も広い値を取ることができる。差動構成なので、それぞれのCDACに入力される値W,Wは、下記数式10で表される。
【0037】
【数10】
【0038】
このとき、一対の信号線の出力電圧Vos_pは、上記数式7から、下記数式11となる。
【0039】
【数11】
【0040】
同様に、出力電圧Vos_nは、下記数式12となる。
【0041】
【数12】
【0042】
従って、差動出力Vos_d=Vos_p-Vos_nは、下記数式13となり、バイアス値ηに依存しない正負の両極性信号が得られる。
【0043】
【数13】
【0044】
差動出力は、電圧Vos_p及び電圧Vos_nをそれぞれアナログ・デジタル変換し、その変換出力値をデジタル減算器で減算してもよいが、差動ADCを用いると、変換出力値自体が差動成分のみを変換したものになるのでより合理的である。
【0045】
アナログ・デジタル変換部13には、様々な変換方式のADCを使用することができるが、特にCDACを用いた逐次比較型ADC(Successive Approximation Register ADC;SAR ADC)がコンパクトで消費エネルギーが少なく実用的である。図6はアナログ・デジタル変換部13に用いられるSAR ADCの回路図である。図6に示すSAR ADCでは、スイッチSが閉じられ、スイッチSが入力信号Vinを選択し、スイッチS~Sが入力信号を選択しているとき、比較器の入力端に接続されているCDACの出力端の電荷Qは、Vを比較器のバイアス電圧として、下記数式14で表される。
【0046】
【数14】
【0047】
一方、スイッチSを開放し、スイッチSが参照電圧Vrefを選択し、スイッチS~S4を制御して、比較器の入力端の電圧をV、αを0から1の任意の値として、αを参照電圧に接続されている容量、残りの1-αを接地に接続されている容量とするとき、電荷保存則よりCDACの出力端の電荷Qは、下記数式15で表される。
【0048】
【数15】
【0049】
ここで、比較器の入力電圧V-Vは、下記数式16で表される。
【0050】
【数16】
【0051】
つまり、このSAR ADCスイッチでは、スイッチS~S4を制御してαを求め、比較器の入力電圧が0に近づくよう動作させれば、アナログ・デジタル変換が可能になる。
【0052】
図7は本実施形態の積和演算器の動作を示すタイミングチャートである。図7に示すように、本実施形態の積和演算器では、クロックCLKに同期し、入力信号Dinで示したDACの2つの入力データ値Xと入力データ値Wが入力される。容量型デジタル・アナログ変換部12の各出力端を共通に接続したノードは、短時間の間において接地電位になり、CDACの各容量の電荷はリセットされる。
【0053】
ノードが解放され、CDACに入力データを与えると、ノードに入力データ値Xと入力データ値Wの内積の和に相当する電圧が出現する。ADCは、このノード電圧をサンプリングし、次にアナログ・デジタル変換動作を行う。出力Doutは、基本的に入力信号Dinに対して2クロック遅れて出力される。
【0054】
以上詳述したように、本実施形態の積和演算器は、電圧出力デジタル・アナログ変換部と、容量型デジタル・アナログ変換部と、アナログ・デジタル変換部を有し、アナログ・デジタル変換部の出力値を出力ベクトルとしているので、複数のADCの出力値から出力ベクトルを得ることができ、同時並列的に極めて多くの積和演算ができるため、演算の高速化を図れると共に消費電力を低減することができる。その結果、これまでのデジタル演算器を用いた積和演算器に比べて、低エネルギーで動作し、高速動作が可能な積和演算器を実現することができる。本発明者の試算の結果、本実施形態の積和演算器は、8ビットの積和演算において、通常のデジタル積和演算に比べて約1/300程度の低消費エネルギーでの動作が可能であった。
【0055】
(第1の実施形態の第1変形例)
次に、本実施形態の第1の実施形態の積和演算器の性能を向上させるためのいくつかの改善点を述べる。図8は、本発明の第1の実施形態の第1変形例に係る積和演算器に用いられるSAR ADCの回路図である。図6に示すSAR ADCはシングル入力であるので、差動入力には図8に示すSAR ADCの方が適している。図8に示すSAR ADCは、信号に依存したコモン電圧の除去が可能であり、図8において破線で囲んでいる部分が、図6のSAR ADCに対して新規に追加した回路である。
【0056】
次に、本変形例の動作について説明する。図9A~Cは図8に示すSAR ADCのコモンモード電圧の除去方法を示す動作回路図である。本変形例の積和演算器では、先ず、図9Aに示すように、スイッチSを短絡し、スイッチSは入力信号Vos_p,Vos_nを選択し、新規に追加した容量Cc_p,Cc_nのスイッチSbiasは接地を、スイッチScomは入力信号Vos_p,Vos_nをそれぞれ選択する。
【0057】
この状態では、比較器の入力端の電荷Qx_p,Qx_nは、入力信号として上記数式11及び数式12を用いて、下記数式17で表される。
【0058】
【数17】
【0059】
また、破線で囲んだコモン電圧の除去のためのキャンセル容量Cc_p,Cc_nの容量値はそれぞれCに等しいので、キャンセル容量Cc_p,Cc_nの電荷Qc_p,Qc_nは下記数式18で表される。
【0060】
【数18】
【0061】
次に、図9Bに示すように、スイッチScomを制御して容量Cc_p,Cc_nを短絡すると、上記数式18から、それぞれの電荷は下記数式19で表される。
【0062】
【数19】
【0063】
次に、図9Cに示すように、スイッチSを開き、スイッチScomは比較器の入力端を選択し、スイッチSbiasは電圧VDDを選択する。比較器の入力端の電荷Qx p,Qx nは、上記数式17及び数式18から数式20で表され、同相成分が除去される。
【0064】
【数20】
【0065】
また、比較器の入力端のVx_p,Vx_nは、下記数式21を満たす。
【0066】
【数21】
【0067】
これより、Vx_p,Vx_nは、下記数式22となり、電圧の中点が(VDD/2)の理想的な動作を実現できる。
【0068】
【数22】
【0069】
また、差動電圧Vx_p-Vx_nは下記数式23となり、バイアス成分がキャンセルされるため、理想的なアナログ・デジタル変換を実現できる。
【0070】
【数23】
【0071】
(第1の実施形態の第2変形例)
次に、本発明の第1の実施形態の第2変形例について説明する。図10は本変形例の積和演算器に用いられる抵抗型DACの回路図である。図2に示す重み付け抵抗を用いたDACの代わりに、図10に示す上位数ビットをサーモメータコードを用いた等しい抵抗で構成し、残りの下位ビットを2進で重み付けされたR-2R梯子型の抵抗とした抵抗型DACを用いることで、出力抵抗が一定の条件において消費電力を低減することが可能である。
【0072】
出力抵抗をRとし、サーモメータコードを用いた等しい抵抗で構成した上位ビット数をMとしたとき、この抵抗型DACに流れる平均電流Iaveは、下記数式24で表すことができる。
【0073】
【数24】
【0074】
つまり、M=1のサーモメータコードを用いた等しい抵抗を用いない場合に対し、上位4ビット程度に対しサーモメータコードを用いた等しい抵抗を用いた場合は平均電流を33%程度に低減することができる。従って、本変形例の積和演算器は、動作速度を低下させずに消費電力を低減することができる。また、全てのビットが”1”のときはスイッチSを設け、最小ビットの抵抗の接地端への接続を開放可能にすることで、回路を流れる電流をゼロにすることができるため、更なる低消費電力化に有効である。
【0075】
〔第1の実施形態及びその変形例で予想される性能〕
次に、前述した積和演算器の性能について説明する。本実施形態の積和演算器は、抵抗型DACとCDACの時間応答と消費電力より消費電力あたりの演算量を求めることができる。先ず初めに、容量値を決定する。CDACの分解能Nにおける量子化ノイズと、容量で規定される熱雑音の関係から、下記数式25が成立する。なお、下記数式25におけるCは容量、VDDはフルスケール電圧、kはボルツマン係数、Tは絶対温度である。
【0076】
【数25】
【0077】
上記数式25から、容量Cを求めると下記数式26となる。
【0078】
【数26】
【0079】
ニューロコンピューティングにおいては、分解能Nは8ビット程度で十分と言われているので、N=8、絶対温度Tを300°K、フルスケール電圧VDDを1.0Vとすると、容量Cは3.45fFとなる。
【0080】
図11は応答速度と消費電力を算出するための等価回路である。図11に示すように、出力抵抗をRとするとき、応答時定数τは、差動構成によりCDACが2個必要なことと、出力抵抗から見た容量が容量Cを2分割した直列容量であることを考慮すると、下記数式27で表される。
【0081】
【数27】
【0082】
8ビット精度の演算には5τの時間が必要であることを考慮し、上記数式24で表される電流が消費されることから、演算に必要なエネルギーEは、上記数式24におけるMを4以上とし、下記数式28から求められる。具体的には、VDD=1.0Vでは1×10-15(J)、VDD=0.5Vでは0.25×10-15(J)となる。
【0083】
【数28】
【0084】
演算器の電力効率を表す指標として、TOPS/Wが使用される。演算が乗算と加算の2つの演算を行うことを考慮すると、下記数式29から、VDD=1.0Vでは2000TOPS/W、VDD=0.5Vでは8000TOPS/Wとなる。
【0085】
【数29】
【0086】
現行のデジタル方式の8ビット精度の演算器の電力効率は25TOPS/W程度であるので、理論上300倍程度の電力効率が得られる可能性がある。従って、本発明の積和演算器は、従来のデジタル方式の積和演算器に比べて極めて高い電力効率が得られることから、ニューロプロセッサの消費電力を大幅に低減することができる。
【0087】
(第2の実施形態)
次に、本発明の第2の実施形態に係る積和演算器について説明する。本実施形態の積和演算器は、前述した第1の実施形態の積和演算器に対して、電圧型DAC及びCDACに対するデータ入力方法を改良したものである。通常積和演算器に対する入力データはバスを介して行われる。しかしながら、バスは負荷容量が大いためデータ伝送時に消費エネルギーが著しく増大する。また、配線遅延時間が長いため動作速度が遅くなる。このためデータ入力方法を工夫しないと、本発明の積和演算器の持つ低エネルギー性と高速性を活かしきることが困難となる。
【0088】
そこで、本実施形態の積和演算器は、電圧型DAC及びCDACに対するデータはバスを介さずにメモリから直接入力する。図12は本実施形態の積和演算器に用いられるDACへのデータ入力回路を示す図である。図12に示すデータ入力回路を設けることで、DACに対して低エネルギーかつ高速なデータ入力が可能となる。
【0089】
図13A,Bは図12に示すメモリセルの回路図であり、図13Cはセンスアップの回路図である。図13AはSRAMメモリセルである。SRAMメモリセルは、ロジックプロセスで作製できるため、集積が容易である。図13Bは不揮発性メモリセルである。不揮発性メモリセルは、抵抗値を変化させたものが多く、磁性薄膜を用いたMRAMや相変化を用いたReRAMが代表であるが、他のメモリも使用可能である。メモリを不揮発にすることで、データの頻繁な移動が生ぜず、極めて低エネルギーで動作させることができる。またニューロコンピューティングにおいては、結合係数Wは学習において得られ、その後は値が変化しないため、不揮発性メモリが適している。
【0090】
図13Cはセンスアンプ回路である。センスアンプは、正帰還動作により僅かな入力電位差をフルスイング電圧まで増幅する。このことにより、メモリセルからのビット線の僅かな電位差をフルスイング電圧まで増幅してDACに入力することができる。図12に示すように、メモリセルへのデータ入力はバスを介して行われる。このため、メモリセルへのデータ入力は消費エネルギーが著しく増大するとともに配線遅延により遅延時間が長いため、動作速度が遅くなる。
【0091】
図14はメモリセルへの入力バスの電圧を示す図である。本実施形態の積和演算器では、バスは図12に示すように差動構成を用い、図14に示すように0.1V程度の低振幅とし、センスアンプでフルスイング電圧まで増幅するようにする。このような構成にすることで、バスの消費エネルギーを1/10程度まで低減できる他、データ伝送速度を数倍に向上させることができる。
【0092】
本実施形態の積和演算器は、電圧出力デジタル・アナログ変換部及び容量型デジタル・アナログ変換部の入力データはメモリセルに保存され、その論理状態をセンスするセンスアンプの出力から得られるとともに、メモリへの入力データを差動形式にし、振幅が電源電圧よりも低い低振幅バスを用いて伝送され,センスアンプでより大きい振幅に変換されてメモリセルのビットラインを駆動するので、DACへのデジタル入力が低エネルギーかつ高速に行うことができるため低エネルギーで動作し,動作速度が高速な積和演算器を実現することができる。
【符号の説明】
【0093】
1 積和演算器
11 電圧出力デジタル・アナログ変換部
12 容量型デジタル・アナログ変換部
13 アナログ・デジタル変換部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16