(57)【要約】【課題】Deep Learningの処理を高速、低電力で実行することを可能にする。【解決手段】実施形態による演算装置は、ニューラルネットワークに用いられ、各々が、第１の時間信号及び第２の時間信号が入力され、重み係数と入力データに応じた時間だけ遅延させた第３及び第４の時間信号を出力する、縦続接続された複数のデジタル時間変換回路と、最終段の前記デジタル時間変換回路から出力される前記第３及び前記第４の時間信号を比較して、デジタル信号を生成する時間デジタル変換回路とを備える。【選択図】図２
2017228295.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークに用いられる演算装置であって、
各々が、第１の時間信号及び第２の時間信号が入力され、重み係数と入力データに応じ
た時間だけ遅延させた第３及び第４の時間信号を出力する、縦続接続された複数のデジタ
ル時間変換回路と、
最終段の前記デジタル時間変換回路から出力される前記第３及び前記第４の時間信号を
比較して、デジタル信号を生成する時間デジタル変換回路と
を備えることを特徴とする演算装置。
【請求項２】
ニューラルネットワークに用いられる演算装置であって、
第１の入力時間信号が入力される第１の入力信号線と、第２の入力時間信号が入力され
る第２の入力信号線と、前記第１または前記第２の入力信号線の一方に接続され、第１の
出力時間信号が出力される第１の出力信号線と、前記第１または前記第２の入力信号線の
他方に接続され、第２の出力時間信号が出力される第２の出力信号線とを有するデジタル
時間変換回路と、
前記第２の出力時間信号が遷移するタイミングで、前記第１の出力時間信号を取り込み
、出力信号を生成する時間デジタル変換回路と
を備え、
前記デジタル時間変換回路は、入力データに基づき、前記第１及び前記第２の入力信号
線と、前記第１及び前記第２の出力信号線の接続を切替える
ことを特徴とする演算装置。
【請求項３】
前記デジタル時間変換回路は、遅延回路と、切替回路とを有し、
前記遅延回路は、前記第１及び前記第２の入力信号線に接続され、前記第１の入力時間
信号に重み係数に応じた時間だけ遅延させる遅延素子を有し、
前記切替回路は、前記入力データに基づき、前記信号線の接続を切替えるスイッチング
素子を有する
ことを特徴とする請求項２に記載の演算装置。
【請求項４】
前記デジタル時間変換回路が、複数縦続接続されていることを特徴とする請求項２また
は３に記載の演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、演算装置に関する。
【背景技術】
【０００２】
近年、Deep Learning関連の研究の進歩が目覚ましい。Deep Learningにより、高い表現
力を持った多層ニューラルネットワークを構築できるようになりつつある。そして、Deep
Learningの処理をハードウェアで行うことが考えられている。その中で、高速化や低電
力化を狙いデータのbit数を減らす研究も精力的に行われており、成果も出始めている。
しかし、一般的にDeep Learningの処理を実行するのに用いられているCPU、GPU、DSPなど
の機器は32bitの単精度浮動小数点演算に最適化されているため、そのような機器を利用
した場合データのbit数を減らすことによって得られる高速化や低電力化のメリットは限
定的であった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５８８５７１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、Deep Learningの処理を高速、低電力で実行することを可能にする演算装置
を提供する。
【課題を解決するための手段】
【０００５】
本実施形態の演算装置は、ニューラルネットワークに用いられる演算装置であって、  
各々が、第１の時間信号及び第２の時間信号が入力され、重み係数と入力データに応じた
時間だけ遅延させた第３及び第４の時間信号を出力する、縦続接続された複数のデジタル
時間変換回路と、最終段の前記デジタル時間変換回路から出力される前記第３及び前記第
４の時間信号を比較して、デジタル信号を生成する時間デジタル変換回路とを備える。
【図面の簡単な説明】
【０００６】
【図１】ニューラルネットワークの概略構成を示すブロック図。
【図２】演算装置の概略構成を示すブロック図。
【図３】基本ユニット２ｉの概略構成を示すブロック図。
【図４】遅延回路の一例を示す回路図。
【図５】切替回路の一例を示す回路図。
【図６】入力回路の一例を示す回路図。
【図７】基本ユニットの動作の一例を説明するタイムチャート。
【図８】基本ユニットの動作の一例を説明するタイムチャート。
【図９】遅延回路の他の一例を示す回路図。
【図１０】遅延回路の他の一例を示す回路図。
【図１１】遅延回路の他の一例を示す回路図。
【図１２】演算装置の概略構成の変形例を示すブロック図。
【発明を実施するための形態】
【０００７】
以下、実施形態について、図面を参照しながら具体的に説明する。なお、これらの実施
形態により本発明が限定されるものではない。
【０００８】
（第１の実施形態）
本実施形態では、ニューラルネットワークに用いられる演算装置を想定している。図１
は、ニューラルネットワークの概略構成を示すブロック図である。ニューラルネットワー
ク１００は、入力層１と、１または複数の隠れ層２と、出力層３とを備えている。隠れ層
２および出力層３をまとめて演算層とも呼ぶ。図１は、２層の隠れ層２ａ，２ｂを含む例
を示している。隠れ層２ａは、初段の隠れ層を示す。また、隠れ層２ｂは、前段の隠れ層
２ａに引き続く隠れ層、あるいは、最終段の隠れ層を示す。
【０００９】
入力層１は、ｍ個の入力データＡ１〜Ａｍのそれぞれに対応する、ｍ個の入力部Ｉ１〜
Ｉｍを有する。ｋ個目の入力データＡｋが入力部Ｉｋに入力される。
【００１０】
隠れ層２ａは、ｐ（ｐは任意の整数）個の演算装置Ｐ１１〜Ｐ１ｐを有する。各演算装
置Ｐ１１〜Ｐ１ｐの動作は同様である。以下、ｋ番目の演算装置Ｐ１ｋについて説明する
。演算装置Ｐ１ｋには、入力層１からｍ個の入力データＡ１〜Ａｍが入力される。そして
、演算装置Ｐ１ｋは、入力データＡ１〜Ａｍと、それぞれに対応する重み係数Ｆｋ１〜Ｆ
ｋｍとに対して所定の演算処理を行い、デジタル値Ｂｋを生成する。デジタル値Ｂｋは、
次段の隠れ層２ｂの入力データとなる。デジタル値Ｂｋは、１ビットであってもよいし、
複数ビットであってもよい。
【００１１】
隠れ層２ｂは、ｑ（ｑは任意の整数）個の演算装置Ｐ２１〜Ｐ２ｑを有する。各演算装
置Ｐ２１〜Ｐ２ｑの動作は同様である。以下、ｋ番目の演算装置Ｐ２ｋについて説明する
。演算装置Ｐ２ｋには、隠れ層２ａからｐ個のデジタル値Ｂ１〜Ｂｐが入力される。そし
て、演算装置Ｐ２ｋは、デジタル値Ｂ１〜Ｂｐと、それぞれに対応する重み係数Ｇｋ１〜
Ｇｋｐとに対して所定の演算処理を行い、デジタル値Ｃｋを生成する。デジタル値Ｃｋは
、出力層３の入力データとなる。デジタル値Ｃｋは、１ビットであってもよいし、複数ビ
ットであってもよい。
【００１２】
出力層３は、例えば、１０個の演算装置Ｐ３０〜Ｐ３９を有する。出力層３は、識別結
果の数だけ演算装置が設けられる。各演算装置Ｐ３０〜Ｐ３９の動作は同様である。以下
、ｋ番目の演算装置Ｐ３ｋについて説明する。演算装置Ｐ３ｋには、隠れ層２ｂからｑ個
のデジタル値Ｃ１〜Ｃｑが入力される。そして、演算装置Ｐ３ｋは、デジタル値Ｃ１〜Ｃ
ｑと、それぞれに対応する重み係数Ｈｋ１〜Ｈｋｑとに対して所定の演算処理を行い、デ
ジタル値Ｄｋを生成する。例えば最大のＤｋを与えるｋが識別結果となる。
【００１３】
ここで、上記重み係数Ｆｋ１〜Ｆｋｍ，Ｇｋ１〜Ｇｋｐ，Ｈｋ１〜Ｈｋｑがニューラル
ネットワークにおける重要なパラメータであり、これらを適切に定めることで、入力デー
タを正しく識別できる。
【００１４】
なお、図１では２層の隠れ層を持つニューラルネットワークを例示しているが、隠れ層
を１層のみとしてもよいし、隠れ層２ａ，２ｂ間に１または複数の隠れ層２を設けてもよ
い。一般に、隠れ層の数が多いほど識別の精度が向上する。
【００１５】
続いて、各演算装置Ｐの処理について説明する。ニューラルネットワークでは、隠れ層
２及び出力層３における各演算装置Ｐは、ほぼ同様の演算処理を行う。図２は、演算装置
Ｐの概略構成を示すブロック図である。演算装置Ｐは、縦続接続されたｎ個の基本ユニッ
ト２１〜２ｎと、時間デジタル変換回路としてのフリップフロップ回路４とを備える。本
実施形態の演算装置Ｐは、下記（１）式に示す演算処理を行う。  
【数１】
2017228295.tif 000003
【００１６】
ここで、Σは、ｉ＝１〜ｎまでの総和を意味する。ｗｉは重み係数であり、ｘｉは入力
データである。各基本ユニット２１〜２ｎには、入力回路５から１ビットの入力データｘ
（ｘ［１］〜ｘ［ｎ］）が入力される。演算装置Ｐは、ｎ個の基本ユニットでΣｗｉｘｉ
を算出し、フリップフロップ回路４でｙ＝σ（）の演算を行う。
【００１７】
各基本ユニット２１〜２ｎは、デジタル時間変換回路であり、構成は同じである。以下
、ｉ番目（ｉ＝１〜ｎ）の基本ユニット２ｉについて説明する。図３は、基本ユニット２
ｉの概略構成を示すブロック図である。基本ユニット２ｉは、所望の重み係数ｗｉが設定
されており、入力データｘｉが入力される。また、基本ユニット２ｉは、第１及び第２の
入力時間信号Ｔａ［ｉ−１］、Ｔｂ［ｉ−１］が入力され、第１及び第２の出力時間信号
Ｔａ［ｉ］、Ｔｂ［ｉ］を生成する。第１及び第２の入力時間信号Ｔａ［ｉ−１］、Ｔｂ
［ｉ−１］は、前段の基本ユニット２ｉ−１の第１及び第２の出力時間信号である。
【００１８】
なお、基本ユニット２１は、基準時間信号である第１及び第２の入力時間信号Ｔａ［０
］、Ｔｂ［０］が入力される。基準時間信号Ｔａ［０］、Ｔｂ［０］は、ある基準の時刻
で電圧値が遷移する信号である。
【００１９】
基本ユニット２ｉは、遅延回路２ｉ１と切替回路２ｉ２とを有する。遅延回路２ｉ１は
、第１及び第２の入力時間信号Ｔａ［ｉ−１］、Ｔｂ［ｉ−１］が入力される。遅延回路
２ｉ１は、第１及び第２の入力時間信号Ｔａ［ｉ−１］、Ｔｂ［ｉ−１］のいずれか一方
もしくは両方を、両者の時間差が重み係数ｗｉに応じた時間だけ変化するように遅延させ
る。説明を簡単にするため、ここでは第１の入力時間信号Ｔａ［ｉ−１］のみ遅延させ、
Ｔａ［ｉ−１］＋ｗｉの第１の遅延時間信号が生成されるとする。
【００２０】
図４は、遅延回路２ｉ１の一例を示す回路図である。遅延回路２ｉ１は、信号Ａ１が入
力され、信号Ａ２を出力する第１信号線と、信号Ｂ１が入力され、信号Ｂ２を出力する第
２信号線を有し、各信号線上には２個のインバータから成る遅延素子を有する。第１信号
線は、ｐＭＯＳトランジスタＱＡ１１、ＱＡ１３と、ｎＭＯＳトランジスタＱＡ１２、Ｑ
Ａ１４とを有する。また、ｎＭＯＳトランジスタＱＡ１２のソース端子と接地端子の間に
、可変抵抗素子ＲＡ１を有する。可変抵抗素子ＲＡ１は、重み係数ｗｉに応じた時間だけ
遅延させるように抵抗値を設定する。第２信号線は、ｐＭＯＳトランジスタＱＢ１１、Ｑ
Ｂ１３と、ｎＭＯＳトランジスタＱＢ１２、ＱＢ１４とを有する。また、ｎＭＯＳトラン
ジスタＱＢ１２のソース端子と接地端子の間に、抵抗素子ＲＢ１を有する。なお、各トラ
ンジスタのソース端子と、電源端子あるいは接地端子の間に、抵抗素子を有してもよい。
【００２１】
切替回路２ｉ２は、遅延回路２ｉ１から出力された時間信号が入力され、入力データｘ
ｉに基づき出力信号線の切替えを行う。すなわち、切替回路２ｉ２は、第１の遅延時間信
号Ｔａ［ｉ−１］＋ｗｉを第１の出力時間信号Ｔａ［ｉ］として出力し、第２の入力時間
信号Ｔｂ［ｉ−１］を第２の出力時間信号Ｔｂ［ｉ］として出力する。あるいは、第１の
遅延時間信号Ｔａ［ｉ−１］＋ｗｉを第２の出力時間信号Ｔｂ［ｉ］として出力し、第２
の入力時間信号Ｔｂ［ｉ−１］を第１の出力時間信号Ｔａ［ｉ］として出力する。なお、
第２の入力時間信号Ｔｂ［ｉ−１］は、第２の遅延時間信号でもある。
【００２２】
図５は、切替回路２ｉ２の一例を示す回路図である。切替回路２ｉ２は、ＭＯＳトラン
ジスタから成るスイッチング素子を有する。切替回路２ｉ２は、信号Ａ２が入力される第
１の入力信号線と、信号Ｂ２が入力される第２の入力信号線と、信号Ａ３が出力される第
１の出力信号線と、信号Ｂ３が出力される第２の出力信号線と、ｎＭＯＳトランジスタＱ
Ａ２１、ＱＡ２４と、ｐＭＯＳトランジスタＱＡ２２、ＱＡ２３とを有する。信号Ａ２は
第１の遅延時間信号Ｔａ［ｉ−１］＋ｗｉであり、信号Ｂ２は第２の入力時間信号Ｔｂ［
ｉ−１］である。信号Ａ３は第１の出力時間信号Ｔａ［ｉ］であり、信号Ｂ３は第２の出
力時間信号Ｔｂ［ｉ］である。
【００２３】
ｎＭＯＳトランジスタのソース−ドレイン端子が、第１の入力信号線と第１の出力信号
線との間に接続されている。ｐＭＯＳトランジスタＱＡ２１のソース−ドレイン端子が、
第１の入力信号線と第２の出力信号線との間に接続されている。ｐＭＯＳトランジスタＱ
Ａ２３のソース−ドレイン端子が、第２の入力信号線と第１の出力信号線との間に接続さ
れている。ｎＭＯＳトランジスタＱＡ２４のソース−ドレイン端子が、第２の入力信号線
と第１の出力信号線との間に接続されている。各ＭＯＳトランジスタのゲート端子には、
１ビットの入力データが入力される。
【００２４】
フリップフロップ４は、最終段の基本ユニット２ｎの出力時間信号が入力される。フリ
ップフロップ４は、第２の出力時間信号Ｔｂ［ｎ］が遷移するタイミングで、第１の出力
時間信号Ｔａ［ｎ］を取り込み、出力信号ｙとする。出力信号ｙは、１または０のデジタ
ル値である。  続いて、本実施形態の演算装置における具体的な動作について説明する。
ここでは、具体的な演算として、ｙ＝σ（Σｗｉｘｉ）において各データが１ビットの場
合について説明する。  
【数２】
2017228295.tif 000004
【００２５】
すなわち、ｗｉ及びｘｉは、−１または＋１の値である。また、σ（ｘ）は、ｘが０よ
り小さいときに−１となり、ｘが０以上のときに＋１となる。ｗｉは具体的には遅延時間
で表現されるため、−１または＋１以外の値もとること可能であり、多ビットの情報を扱
うこともできる。
【００２６】
基本ユニット２ｉは、第１及び第２の入力時間信号Ｔａ［ｉ−１］、Ｔｂ［ｉ−１］が
入力される。具体的には、第１の入力時間信号Ｔａ［ｉ−１］は、遅延回路の第１信号線
に入力され、第２の入力時間信号Ｔｂ［ｉ−１］は、第２信号線に入力される。第１信号
線には重み係数ｗｉに応じた可変抵抗素子があるため、第１の入力時間信号Ｔａ［ｉ−１
］はＴａ［ｉ−１］＋ｗｉとなり、切替回路２ｉ２の第１の入力信号線に出力される。第
１の入力時間信号Ｔｂ［ｉ−１］は、遅延は生じずにそのまま、第２の入力信号線に出力
される。ここで、時間信号τ［ｉ］を、τ［ｉ］＝Ｔｂ［ｉ］−Ｔａ［ｉ］と定義する。
【００２７】
切替回路２ｉ２は、入力データｘｉに基づき、時間信号Ｔａ［ｉ］とＴｂ［ｉ］の出力
先を切替える。これは、入力時間信号τ［ｉ］に対し、×ｘｉに相当する演算を行ってい
る。ｘｉが＋１のとき、ｎＭＯＳトランジスタＱＡ２１、ＱＡ２４がオンし、ｐＭＯＳト
ランジスタＱＡ２２、ＱＡ２３がオフする。これにより、第１の入力信号線は第１の出力
信号線に接続され、第２の入力信号線は第２の出力信号線に接続される。これは、入力時
間信号τ［ｉ］に対し、×（＋１）に相当する演算を行っている。一方、ｘｉが−１のと
き、ｎＭＯＳトランジスタＱＡ２１、ＱＡ２４がオフし、ｐＭＯＳトランジスタＱＡ２２
、ＱＡ２３がオンする。これにより、第１の入力信号線は第２の出力信号線に接続され、
第２の入力信号線は第１の出力信号線に接続される。これは、入力時間信号τ［ｉ］に対
し、×（−１）に相当する演算を行っている。
【００２８】
すなわち、基本ユニットにおいて、下記（３）式に示す演算処理を行っている。  
【数３】
2017228295.tif 000005
【００２９】
しかしながら、式（３）では、Σｗｉｘｉと同等の演算を行ったことにはならない。そ
こで、ｎ個の基本ユニットでΣｗｉｘｉの演算を行うために、入力回路５において入力デ
ータの変換を行う。
【００３０】
入力データの変換は、下記（４）式を用いて行う。  
【数４】
2017228295.tif 000006
【００３１】
これにより、ｎ個の基本ユニットでΣｗｉｘｉに相当する演算が行える。
【００３２】
図６は、入力回路５の一例を示す回路図である。入力回路５は、ｎビットの入力データ
ｘ［１：ｎ］を、ｎビットの入力データｘ´［１：ｎ］に変換する。図６（ａ）の入力回
路５は、ｎ個のＸＯＲ回路５１〜５ｎを有する。ＸＯＲ回路５１は、データｘ［１］及び
ｘ［２］とのＸＯＲ演算により、入力データｘ´［１］を生成する。すなわち、ｉ番目の
ＸＯＲ回路５ｉは、データｘ［ｉ］及びｘ［ｉ＋１］とのＸＯＲ演算により、入力データ
ｘ´［ｉ］を生成し、基本ユニット２ｉの切替回路に出力する。最下位ビットに対応する
ｘ´［ｎ］を生成するＸＯＲ回路５ｎは、データｘ［ｎ］及び０との演算がされる。なお
、図６（ｂ）に示すように、０とｘ［ｎ］をＸＯＲ回路に入力すると出力ｘ´［ｎ］はｘ
［ｎ］と等しくなるのでＸＯＲ回路５ｎは使わず、ｘ´［ｎ］としてｘ［ｎ］を直接利用
しても良い。
【００３３】
最終段の基本ユニット２ｎから出力された第１及び第２の出力時間信号Ｔａ［ｎ］、Ｔ
ｂ［ｎ］は、フリップフロップ回路４に入力される。第２の出力時間信号Ｔｂ［ｎ］が遷
移するタイミングで、第１の出力時間信号Ｔａ［ｎ］を取り込まれる。取り込まれた第１
の出力時間信号Ｔａ［ｎ］は、出力信号ｙとして出力される。
【００３４】
続いて、本実施形態の基本ユニットにおける具体的な動作について説明する。図７及び
図８は、基本ユニットの動作の一例を説明するタイムチャートである。遅延回路２１１へ
入力される信号Ａ１、Ｂ１、切替回路２１２へ入力される信号Ａ２、Ｂ２、及び、切替回
路２１２からの出力される信号Ａ３、Ｂ３の波形を示している。水平方向は時間を、垂直
方向は電圧値を表している。信号Ａ１、Ｂ１は、同じタイミングで遷移している。ここで
は、ｗｉ＝＋１のとき、可変抵抗素子ＲＡ１の抵抗値は、抵抗素子ＲＢ１の抵抗値よりも
小さく設定している。また、ｗｉ＝−１のとき、可変抵抗素子ＲＡ１の抵抗値は、抵抗素
子ＲＢ１の抵抗値よりも大きく設定している。
【００３５】
図７（ａ）、（ｂ）は、重み係数ｗｉが＋１の例である。信号Ａ２は、時刻ｔ０から時
間Ｄａ経過した時刻ｔ１で遷移している。時間Ｄａは、重み係数ｗｉに応じて設定された
可変抵抗素子ＲＡ１の抵抗値に対応する時間である。すなわち、信号Ａ２は、信号Ａ１を
Ｄａ時間遅延させた信号となる。また、信号Ｂ２は、時刻ｔ０から時間Ｄｂ経過した時刻
ｔ２で遷移している。時間Ｄｂは、抵抗素子ＲＢ１の抵抗値（固定値）に対応する時間で
ある。すなわち、信号Ｂ２は、信号Ｂ１をＤｂ時間遅延させた信号となる。信号Ａ１は、
信号Ｂ２よりも早く遷移している。
【００３６】
図７（ａ）は、入力データｘｉ＝＋１の例である。したがって、切替回路２ｉ２は、第
１の入力信号線が第１の出力信号線に接続され、第２の入力信号線が第２の出力信号線に
接続される。よって、信号Ａ２は信号Ａ３として出力され、信号Ｂ２は信号Ｂ３として出
力される。
【００３７】
図７（ｂ）は、入力データｘｉ＝−１の例である。したがって、切替回路２１２は、第
１の入力信号線が第２の出力信号線に接続され、第２の入力信号線が第１の出力信号線に
接続されている。よって、信号Ａ２は信号Ｂ３として出力され、信号Ｂ２は信号Ａ３とし
て出力される。
【００３８】
なお、フリップフロップ回路４は、最終段の基本ユニット２ｎから信号Ａ３、Ｂ３が入
力される。図７（ａ）の場合、信号Ｂ３が遷移した時刻ｔ３において、信号Ａ３の値１を
取り込む。一方、図７（ｂ）の場合、信号Ｂ３が遷移した時刻ｔ３´において、信号Ａ３
の値０を取り込む。
【００３９】
図８（ａ）、（ｂ）は、重み係数ｗｉが−１の例である。信号Ａ２は、時刻ｔ０から時
間Ｄａ´経過した時刻ｔ４で遷移している。また、信号Ｂ２は、時刻ｔ０から時間Ｄｂ経
過した時刻ｔ２で遷移している。可変抵抗素子ＲＡ１の抵抗値を大きくしているため、信
号Ａ２の遅延時間は、信号Ｂ２の遅延時間よりも大きくなっている。すなわち、信号Ａ２
は、信号Ｂ２よりも遅く遷移している。
【００４０】
なお、図８（ａ）の場合、フリップフロップ回路４は、信号Ｂ３が遷移した時刻ｔ３に
おいて、信号Ａ３の値０を取り込む。一方、図８（ｂ）の場合、信号Ｂ３が遷移した時刻
ｔ３´´において、信号Ａ３の値１を取り込む。
【００４１】
重み係数すなわち抵抗値を可変にすることにより、出力信号線の遷移タイミングを変更
することができる。すなわち、（ｗｉ，ｘｉ）＝（＋１，＋１）のとき、信号Ａ３は、信
号Ｂ３よりも早く遷移する。一方、（ｗｉ，ｘｉ）＝（−１，＋１）のとき、信号Ａ３は
、信号Ｂ３よりも遅く遷移する。また、（ｗｉ，ｘｉ）＝（＋１，−１）のとき、信号Ａ
３は、信号Ｂ３よりも遅く遷移する。一方、（ｗｉ，ｘｉ）＝（−１，−１）のとき、信
号Ａ３は、信号Ｂ３よりも早く遷移する。
【００４２】
本実施形態の演算装置は、電圧値が遷移する時刻で情報を表現する２つの時間信号の時
間差を用いて演算処理を行う。これにより、基本ユニットは、可変抵抗素子を用いた遅延
素子と、スイッチング素子で構成できる。よって、ハードウェア構成を簡略化でき、回路
の実装面積を小さくすることができる。また、可変抵抗素子を用いることにより、重み係
数に応じた時間を適切に設定できる。
【００４３】
また、本実施形態の演算装置は、複数の基本ユニットにおいて遅延と切替えを繰り返す
ことで、入力データに対する積和演算を行っている。これにより、演算処理を高速化及び
低電力化することができる。
【００４４】
図９は、遅延回路２ｉ１の他の一例を示す回路図である。図４の可変抵抗素子ＲＡ１お
よび抵抗素子ＲＢ１に代えて、可変容量素子ＣＡ１および容量素子ＣＢ２を有する。可変
容量素子ＣＡ１は、一端をｐＭＯＳトランジスタＱＡ１１およびｎＭＯＳトランジスタＱ
Ａ１２のドレイン端子に接続され、他端をワード線ＶＷとビット線ＶＢに接続されたｎＭ
ＯＳトランジスタのソース端子に接続されている。容量素子ＣＢ１は、一端をｐＭＯＳト
ランジスタＱＢ１１およびｎＭＯＳトランジスタＱＢ１２のドレイン端子に接続され、他
端を接地端子に接続されている。可変容量素子ＣＡ１は、重み係数ｗｉに応じた時間だけ
遅延させるように容量値を設定する。
【００４５】
図９の場合、ｗｉ＝＋１のとき、可変容量素子ＣＡ１の容量値は、容量素子ＣＢ１の容
量値よりも小さく設定している。また、ｗｉ＝−１のとき、可変容量素子ＣＡ１の容量値
は、容量素子ＣＢ１の容量値よりも大きく設定している。可変容量素子を用いることによ
り、重み係数に応じた時間を適切に設定できる。
【００４６】
また、遅延回路２ｉ１をアレイ状に配置してもよい。アレイ状に配置することにより、
配線数を少なくすることができる。図１０は、遅延回路２ｉ１の他の一例を示す回路図で
ある。各遅延回路は、第１信号線上の遅延素子間に一端が接続された可変容量素子を有し
、第２信号線上の遅延素子間に一端が接続された可変容量素子を有する。各可変容量素子
の他端は、ｎＭＯＳトランジスタに接続されており、ｎＭＯＳトランジスタはワード線Ｖ
Ｗおよびビット線ＶＢにより選択される。これにより、可変容量素子に異なる値を書き込
むことができる。
【００４７】
図１１は、遅延回路２ｉ１の他の一例を示す回路図である。可変抵抗素子の他端が、ビ
ット線ＶＢに接続されている。図１１の遅延回路は、ワード線ＶＷの代わりに、入力信号
をＨｉｇｈにすることにより行選択を行う。  
図１０および図１１の場合も、可変容量素子の容量値を変更することにより、重み係数
に応じた時間を適切に設定できる。
【００４８】
なお、基本ユニットは、切替回路がなくてもよく、入力データｘｉに関係なく、遅延回
路の出力信号を後段の基本ユニットにそのまま入力してもよい。
【００４９】
（変形例）
次に、本実施形態の演算装置における変形例について説明する。図１２は、演算装置Ｐ
の変形例の概略構成を示すブロック図である。第１の実施形態と同一部分には同一符号を
付し、説明を省略する。図１２の演算装置Ｐは、縦続接続されたｎ個の基本ユニット６１
〜６ｎと、フリップフロップ回路４とを備える。
【００５０】
各基本ユニット６１〜６ｎの構成は同じである。以下、ｉ番目の基本ユニット６ｉにつ
いて説明する。基本ユニット６ｉ（ｉは、任意の整数）は、所望の重み係数ｗｉが設定さ
れており、入力データｘｉが入力される。また、基本ユニット６ｉは、第１及び第２の入
力時間信号Ｔａ［ｉ−１］、Ｔｂ［ｉ−１］が入力され、第１及び第２の出力時間信号Ｔ
ａ［ｉ］、Ｔｂ［ｉ］を生成する。
【００５１】
基本ユニット６ｉは、遅延回路２ｉ１と、切替回路２ｉ２と、ＸＮＯＲ回路７ｉと、記
憶素子８ｉとを有する。遅延回路２ｉ１は、第１及び第２の入力時間信号Ｔａ［ｉ−１］
、Ｔｂ［ｉ−１］のいずれか一方もしくは両方を、両者の時間差が重み係数ｗｉの絶対値
であるａｂｓ（ｗｉ）に応じた時間だけ遅延させる。すなわち、遅延回路２ｉ１は、ａｂ
ｓ（ｗｉ）に応じた時間だけ遅延させる可変抵抗素子を有する。記憶素子８ｉは、重み係
数ｗｉの符号であるｓｉｇｎ（ｗｉ）を記憶している。ＸＮＯＲ回路７ｉは、データｘ［
ｉ］及びｓｉｇｎ（ｗｉ）とのＸＮＯＲ演算を行い、演算結果を切替回路２ｉ２に出力す
る。
【００５２】
すなわち、基本ユニット６ｉは、（τ［ｉ−１］＋ａｂｓ（ｗｉ））×ｓｉｇｎ（ｗｉ
）×ｘｉを算出している。図８の演算装置は、図２の演算装置と同様の結果（ｙ＝σ（Σ
ｗｉｘｉ））を得ることができる。
【００５３】
なお、遅延時間を使った演算では、素子の製造ばらつきによる遅延時間のばらつきが原
因で演算に誤差が生じる問題がある。しかしながら、本実施形態の変形例では、符号演算
については一般的なデジタル回路を使った論理演算で行うためそのような誤差は生じない
。従って、第１の実施形態より回路の実装面積は大きくなるが、より精度の良い演算結果
を得ることができる。  
また、変形例においても、第１の実施形態と同様に、高速化及び低電力化できる。
【００５４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したも
のであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その
他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の
省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や
要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる
。
【符号の説明】
【００５５】
Ｐ  演算装置、２１，２ｎ，６１，６ｎ  基本ユニット、２１２，２ｎ１  遅延回路、
２１２，２ｎ２  切替回路、４  フリップフロップ回路、５  入力回路
【図１】
2017228295.tif 000007
【図２】
2017228295.tif 000008
【図３】
2017228295.tif 000009
【図４】
2017228295.tif 000010
【図５】
2017228295.tif 000011
【図６】
2017228295.tif 000012
【図７】
2017228295.tif 000013
【図８】
2017228295.tif 000014
【図９】
2017228295.tif 000015
【図１０】
2017228295.tif 000016
【図１１】
2017228295.tif 000017
【図１２】
2017228295.tif 000018