(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-03
(45)【発行日】2024-06-11
(54)【発明の名称】半導体装置
(51)【国際特許分類】
G06N 3/065 20230101AFI20240604BHJP
G06G 7/60 20060101ALI20240604BHJP
【FI】
G06N3/065
G06G7/60
(21)【出願番号】P 2023099797
(22)【出願日】2023-06-19
(62)【分割の表示】P 2019524543の分割
【原出願日】2018-06-11
【審査請求日】2023-06-26
(31)【優先権主張番号】P 2017121141
(32)【優先日】2017-06-21
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000153878
【氏名又は名称】株式会社半導体エネルギー研究所
(72)【発明者】
【氏名】黒川 義元
(72)【発明者】
【氏名】原田 伸太郎
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2017-102905(JP,A)
【文献】特開2016-99707(JP,A)
【文献】特開2008-191263(JP,A)
【文献】特開2008-113295(JP,A)
【文献】特開昭53-9441(JP,A)
【文献】米国特許出願公開第2010/0241601(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/065
G06G 7/60
(57)【特許請求の範囲】
【請求項1】
シフトレジスタ群と、
D/Aコンバータと、
積和演算回路と、
第1の回路と、を有し、
前記シフトレジスタ群の一のシフトレジスタは、画像データのうち行方向のデータを取り込む機能を有し、
前記シフトレジスタ群の一のシフトレジスタは、取り込んだデータを1列分シフトし且つ一部のデータを前記D/Aコンバータへ出力する動作を繰り返す機能を有し、
前記第1の回路は、前記シフトレジスタから前記D/Aコンバータへ出力される前記データを補正する機能を有し、
前記D/Aコンバータは、入力されたデータをアナログデータに変換して、前記積和演算回路へ出力する機能を有し、
前記積和演算回路は、アナログメモリを有し、
前記アナログメモリには、パラメータが保存されており、
前記積和演算回路は、入力されたデータと、前記パラメータとを、積和演算した結果を出力する機能を有する、半導体装置。
【請求項2】
D/Aコンバータと、
シフトレジスタ群と、
積和演算回路と、
第1の回路と、を有し、
前記D/Aコンバータには、画像データが入力され、
前記D/Aコンバータは、入力されたデータをアナログデータに変換して、前記シフトレジスタ群へ出力する機能を有し、
前記シフトレジスタ群の一のシフトレジスタは、入力されたデータのうち画像の行方向のデータを取り込む機能を有し、
前記シフトレジスタ群の一のシフトレジスタは、取り込んだデータを1列分シフトし且つ一部のデータを前記積和演算回路へ出力する動作を繰り返す機能を有し、
前記第1の回路は、前記シフトレジスタから前記積和演算回路へ出力される前記データを補正する機能を有し、
前記積和演算回路は、アナログメモリを有し、
前記アナログメモリには、パラメータが保存されており、
前記積和演算回路は、入力されたデータと、前記パラメータとを、積和演算した結果を出力する機能を有する、半導体装置。
【請求項3】
請求項1又は請求項2において、
プーリング回路を有し、
前記積和演算回路は、前記積和演算した結果を前記プーリング回路へ出力する、半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の一形態は、ニューラルネットワークを有する半導体装置に関する。特に、ニューラルネットワークを利用した画像認識が可能な半導体装置に関する。
【0002】
なお、本明細書等において半導体装置とは、半導体特性を利用することで機能しうる装置全般を指す。表示装置、発光装置、記憶装置、電気光学装置、蓄電装置、半導体回路および電子機器は、半導体装置を有する場合がある。
【0003】
なお、本発明の一形態は、上記の技術分野に限定されない。本明細書等で開示する発明の技術分野は、物、方法、または、製造方法に関するものである。または、本発明の一形態は、プロセス、マシン、マニュファクチャ、または、組成物(コンポジション・オブ・マター)に関するものである。
【背景技術】
【0004】
ニューラルネットワークは、神経回路網をモデルにした情報処理システムである。ニューラルネットワークを利用することで、従来のノイマン型コンピュータよりも高性能なコンピュータが実現できると期待されており、近年、ニューラルネットワークを構築する種々の研究が進められている。
【0005】
ニューラルネットワークは、ニューロンとシナプスで構成される神経回路網を模した回路構成を有している。それぞれのニューロンには複数のデータが入力され、それぞれのデータは結合の強度を表す「重み係数」と掛け合わされ、その結果が足しあわされる。このようにして得られた積和演算の結果が閾値を超えたとき、ニューロンはハイレベルの信号を出力し、この現象は「発火」と呼ばれている。
【0006】
ニューラルネットワークは、例えば、画像認識の分野において利用される。
【0007】
画像認識の分野では、画像データにフィルタのパラメータをスライドさせながら掛け合わせ、画像データの特徴を検出する畳み込み演算が行われている。畳み込み演算は複数回行われ、最初の方の畳み込み演算では画像のエッジなどを検出し、後の方の畳み込み演算では画像の形やパターンなど、複雑な特徴を検出する。
【0008】
また、画像認識の分野において、画像データを小さな領域に区切り、その中から、例えば、最大値を取り出すプーリング処理が行われている。プーリング処理は、物体の位置が変化しても同一の物体であるとみなすことができ、畳み込み演算で検出された特徴などの位置ずれを許容することができる。プーリング処理は畳み込み演算の後で行われることが多く、例えば、畳み込み演算とプーリング処理が組み合わされて複数回行われる。
【0009】
ニューラルネットワークが画像認識の分野において利用される場合、画像認識の分野における画像データとフィルタのパラメータは、それぞれ、ニューラルネットワークにおける、ニューロンに入力される複数のデータと重み係数に相当する。すなわち、画像認識の分野における畳み込み演算は積和演算であり、積和演算回路による演算、画像データの積和演算回路への取り込み、積和演算後のプーリング処理等において、スピードおよび効率的な処理が求められている。
【0010】
特許文献1には、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などのプロセッサを用いて、ニューラルネットワークによる機械学習を行い、手書き文字の認識を行う例が開示されている。
【0011】
また、近年、チャネル形成領域に酸化物半導体または金属酸化物を用いたトランジスタ(Oxide Semiconductorトランジスタ、以下、OSトランジスタという)が注目されている。OSトランジスタはオフ電流が極めて小さい。そのことを利用して、OSトランジスタを用いたアプリケーションが提案されている。例えば、特許文献2では、ニューラルネットワークの学習に、OSトランジスタを用いた例が開示されている。
【先行技術文献】
【特許文献】
【0012】
【文献】特開2005‐182785号公報
【文献】特開2016‐219011号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
ニューラルネットワークを利用した演算において、主な演算は積和演算であり、ニューラルネットワークを利用した画像認識は、積和演算の繰り返しによる膨大な計算量が必要である。そのため、CPUやGPUなどのデジタル回路を用いてニューラルネットワークを構築する場合、必要となるトランジスタ数が膨大となり、消費電力が高く非効率であった。
【0014】
また、ニューラルネットワークを画像認識に利用する場合、積和演算のスピードを高めても、入力データとなる画像データを積和演算回路に取り込む速度が全体の律速となる場合があった。
【0015】
本発明の一形態は、効率的に画像認識を行うことが可能な半導体装置を提供することを課題の一つとする。また、本発明の一形態は、効率的に積和演算を行うことが可能な半導体装置を提供することを課題の一つとする。また、本発明の一形態は、新規な半導体装置を提供することを課題の一つとする。
【0016】
なお、本発明の一形態は、必ずしも上記の課題の全てを解決する必要はなく、少なくとも一つの課題を解決できるものであればよい。また、上記の課題の記載は、他の課題の存在を妨げるものではない。これら以外の課題は、明細書、特許請求の範囲、図面などの記載から自ずと明らかになるものであり、明細書、特許請求の範囲、図面などの記載から、これら以外の課題を抽出することが可能である。
【課題を解決するための手段】
【0017】
本発明の一形態は、シフトレジスタ群と、D/Aコンバータと、積和演算回路と、を有する半導体装置である。シフトレジスタ群は、画像データを取り込み、画像データをシフトする動作、および、画像データの一部をD/Aコンバータへ出力する動作を行う。D/Aコンバータは、画像データの一部をアナログデータに変換して、積和演算回路へ出力することを特徴とする。
【0018】
また、上記形態において、積和演算回路は、アナログメモリを有し、アナログメモリには、パラメータが保存されている。積和演算回路は、画像データの一部と、パラメータとを、積和演算した結果を出力することを特徴とする。
【0019】
また、上記形態において、アナログメモリを構成するトランジスタは、チャネル形成領域に金属酸化物を含む。
【0020】
また、本発明の一形態は、D/Aコンバータと、シフトレジスタ群と、積和演算回路と、を有する半導体装置である。D/Aコンバータには画像データが入力され、D/Aコンバータは、画像データをアナログデータに変換した第1のデータを、シフトレジスタ群へ出力する。シフトレジスタ群は、第1のデータをシフトする動作、および、第1のデータの一部を第2のデータとして、積和演算回路へ出力する動作を行う。積和演算回路は、アナログメモリを有し、アナログメモリには、パラメータが保存されている。積和演算回路は、第2のデータと、パラメータとを、積和演算した結果を出力することを特徴とする。
【0021】
また、上記形態において、アナログメモリを構成するトランジスタは、チャネル形成領域に金属酸化物を含む。
【0022】
また、上記形態において、シフトレジスタ群を構成するトランジスタは、チャネル形成領域に金属酸化物を含む。
【0023】
また、本発明の一形態は、シフトレジスタ群と、D/Aコンバータと、積和演算回路と、プーリング回路と、を有する半導体装置である。シフトレジスタ群は、画像データを取り込み、画像データをシフトする動作、および、画像データの一部をD/Aコンバータへ出力する動作を行う。D/Aコンバータは、画像データの一部をアナログデータに変換した第1のデータを、積和演算回路へ出力する動作を行う。積和演算回路にはパラメータが保存されており、積和演算回路は、第1のデータと、パラメータとを、積和演算した第2のデータを、プーリング回路へ出力することを特徴とする。
【0024】
また、上記形態において、積和演算回路は、アナログメモリを有し、パラメータは、アナログメモリに保存されていることを特徴とする。
【0025】
また、上記形態において、アナログメモリを構成するトランジスタは、チャネル形成領域に金属酸化物を含む。
【発明の効果】
【0026】
本発明の一形態により、効率的に画像認識を行うことが可能な半導体装置を提供することができる。また、本発明の一形態により、効率的に積和演算を行うことが可能な半導体装置を提供することができる。また、本発明の一形態により、新規な半導体装置を提供することができる。
【0027】
なお、本発明の一形態の効果は、上記列挙した効果に限定されない。また、上記列挙した効果は、他の効果の存在を妨げるものではない。他の効果は、以下の記載で述べる、本項目で言及していない効果である。本項目で言及していない効果は、当業者であれば明細書または図面等の記載から導き出せるものであり、これらの記載から適宜抽出することができる。なお、本発明の一形態は、上記列挙した効果、および他の効果のうち、少なくとも一つの効果を有するものである。従って本発明の一形態は、場合によっては、上記列挙した効果を有さない場合もある。
【図面の簡単な説明】
【0028】
【
図1】(A)画像データの概念を示す図、(B)フィルタのパラメータの概念を示す図。
【
図2】(A)半導体装置の構成例を示すブロック図、(B)シフトレジスタが取り込む画像データを示す図、(C)シフトレジスタが画像データを取り込む様子を示す図。
【
図3】シフトレジスタ群の一部と積和演算回路の動作を示す概念図。
【
図4】シフトレジスタ群の一部と積和演算回路の動作を示す概念図。
【
図5】シフトレジスタ群の一部と積和演算回路の動作を示す概念図。
【
図6】(A)シフトレジスタの構成例を示すブロック図、(B)レジスタの入出力を説明する図、(C)レジスタの構成例を示す回路図。
【
図7】(A、B、C、D)シフトレジスタの動作を説明する図。
【
図8】(A)シフトレジスタの構成例を示すブロック図、(B)スイッチの構成例を示す回路図。
【
図9】(A)シフトレジスタの構成例を示すブロック図、(B)レジスタの入出力を説明する図、(C)レジスタの構成例を示す回路図。
【
図10】(A)レジスタの構成例を示す回路図、(B)半導体装置の構成例を示すブロック図。
【
図12】シフトレジスタ群の一部と積和演算回路の動作を示す概念図。
【
図13】シフトレジスタ群の一部と積和演算回路の動作を示す概念図。
【
図14】(A)半導体装置の構成例を示すブロック図、(B)階層型ニューラルネットワークの構成例を示す図、(C、D)演算処理に用いる回路構成を示す図。
【
図15】(A)誤差逆伝播方式の模式図、(B、C、D)演算処理に用いる回路構成を示す図。
【
図17】記憶回路と参照用記憶回路の構成を示す図。
【
図18】メモリセルの回路構成と接続関係を示す図。
【
図19】回路13と回路14と電流源回路の構成を示す図。
【発明を実施するための形態】
【0029】
以下、実施の形態について図面を参照しながら説明する。但し、実施の形態は多くの異なる形態で実施することが可能であり、趣旨及びその範囲から逸脱することなくその形態及び詳細を様々に変更し得ることは、当業者であれば容易に理解される。従って、本発明は、以下の実施の形態の記載内容に限定して解釈されるものではない。
【0030】
また、以下に示される複数の実施の形態は、適宜組み合わせることが可能である。また、1つの実施の形態の中に複数の構成例が示される場合は、互いに構成例を適宜組み合わせることが可能である。
【0031】
なお、本明細書に添付した図面では、構成要素を機能ごとに分類し、互いに独立したブロックとしてブロック図を示しているが、実際の構成要素は機能ごとに完全に切り分けることが難しく、一つの構成要素が複数の機能に係わることもあり得る。
【0032】
また、図面等において、大きさ、層の厚さ、領域等は、明瞭化のため誇張されている場合がある。よって、必ずしもそのスケールに限定されない。図面は、理想的な例を模式的に示したものであり、図面に示す形状または値などに限定されない。
【0033】
また、図面等において、同一の要素または同様な機能を有する要素、同一の材質の要素、あるいは同時に形成される要素等には同一の符号を付す場合があり、その繰り返しの説明は省略する場合がある。
【0034】
また、本明細書等において、「膜」という用語と、「層」という用語とは、互いに入れ替えることが可能である。例えば、「導電層」という用語を、「導電膜」という用語に変更することが可能な場合がある。または、例えば、「絶縁膜」という用語を、「絶縁層」という用語に変更することが可能な場合がある。
【0035】
また、本明細書等において、「上」や「下」などの配置を示す用語は、構成要素の位置関係が、「直上」または「直下」であることを限定するものではない。例えば、「ゲート絶縁層上のゲート電極」の表現であれば、ゲート絶縁層とゲート電極との間に他の構成要素を含むものを除外しない。
【0036】
また、本明細書等において、「平行」とは、二つの直線が-10°以上10°以下の角度で配置されている状態をいう。したがって、-5°以上5°以下の場合も含まれる。また、「垂直」とは、二つの直線が80°以上100°以下の角度で配置されている状態をいう。したがって、85°以上95°以下の場合も含まれる。
【0037】
また、本明細書等において、「第1」、「第2」、「第3」などの序数詞は、構成要素の混同を避けるために付したものであり、数的に限定するものではない。
【0038】
また、本明細書等において、「電気的に接続」とは、「何らかの電気的作用を有するもの」を介して接続されている場合が含まれる。ここで、「何らかの電気的作用を有するもの」は、接続対象間での電気信号の授受を可能とするものであれば、特に制限を受けない。例えば、「何らかの電気的作用を有するもの」には、電極や配線をはじめ、トランジスタなどのスイッチング素子、抵抗素子、インダクタ、容量素子、その他の各種機能を有する素子などが含まれる。
【0039】
また、本明細書等において、「電圧」とは、ある電位と基準の電位(例えば、グラウンド電位)との電位差のことを示す場合が多い。よって、電圧と電位差とは言い換えることができる。
【0040】
また、本明細書等において、トランジスタとは、ゲートと、ドレインと、ソースとを含む、少なくとも三つの端子を有する素子である。そして、ドレイン(ドレイン端子、ドレイン領域、またはドレイン電極)とソース(ソース端子、ソース領域、またはソース電極)の間にチャネル領域を有しており、チャネル領域を介して、ソースとドレインとの間に電流を流すことができるものである。なお、本明細書等において、チャネル領域とは、電流が主として流れる領域をいう。
【0041】
また、ソースやドレインの機能は、異なる極性のトランジスタを採用する場合や、回路動作において電流の方向が変化する場合などには入れ替わることがある。このため、本明細書等において、ソースやドレインの用語は、入れ替えて用いることができるものとする。
【0042】
また、本明細書等において、特に断りがない場合、オフ電流とは、トランジスタがオフ状態(非導通状態、遮断状態、ともいう)にあるときのドレイン電流をいう。オフ状態とは、特に断りがない場合、nチャネル型トランジスタでは、ソースに対するゲートの電圧Vgsがしきい値電圧Vthよりも低い状態、pチャネル型トランジスタでは、ソースに対するゲートの電圧Vgsがしきい値電圧Vthよりも高い状態をいう。つまり、nチャネル型のトランジスタのオフ電流とは、ソースに対するゲートの電圧Vgsがしきい値電圧Vthよりも低いときのドレイン電流、という場合がある。
【0043】
上記オフ電流の説明において、ドレインをソースと読み替えてもよい。つまり、オフ電流は、トランジスタがオフ状態にあるときのソース電流をいう場合がある。また、オフ電流と同じ意味で、リーク電流という場合がある。また、本明細書等において、オフ電流とは、トランジスタがオフ状態にあるときに、ソースとドレインの間に流れる電流を指す場合がある。
【0044】
また、本明細書等において、金属酸化物(metal oxide)とは、広い表現での金属の酸化物である。金属酸化物は、酸化物絶縁体、酸化物導電体(透明酸化物導電体を含む)、酸化物半導体(Oxide Semiconductorまたは単にOSともいう)などに分類される。例えば、トランジスタの活性層に金属酸化物を用いた場合、当該金属酸化物を酸化物半導体と呼称する場合がある。つまり、金属酸化物が増幅作用、整流作用、及びスイッチング作用の少なくとも1つを有する場合、当該金属酸化物を、金属酸化物半導体(metal oxide semiconductor)、略してOSと呼ぶことができる。また、OSトランジスタ、またはOS FETと記載する場合においては、金属酸化物または酸化物半導体を有するトランジスタと換言することができる。
【0045】
(実施の形態1)
本実施の形態では、ニューラルネットワークを利用した画像認識を効率的に行える半導体装置について説明する。
【0046】
<半導体装置>
半導体装置100は、積和演算回路80を有し、フレームメモリ50から画像データを取り込み、畳み込み演算を行う機能を有する。
【0047】
以下、半導体装置100が取り込む画像データを、n行m列の画像データP(1、1)乃至P(n、m)で表し(n、mは2以上の整数)、積和演算回路80が有するフィルタを、s行t列のフィルタF(1、1)乃至F(s、t)で表す(s、tは1以上の整数であり、s<n、t<m)。F(1、1)乃至F(s、t)は、それぞれ、フィルタを構成するパラメータである。
図1(A)に画像データの概念図を示し、
図1(B)にフィルタのパラメータについて概念図を示す。
【0048】
例えば、n=m=3、s=t=2の時、半導体装置100は、出力Y(1、1)乃至Y(2、2)を出力する。
Y(1、1)=P(1、1)×F(1、1)+P(1、2)×F(1、2)+P(2、1)×F(2、1)+P(2、2)×F(2、2) (a1)
Y(1、2)=P(1、2)×F(1、1)+P(1、3)×F(1、2)+P(2、2)×F(2、1)+P(2、3)×F(2、2) (a2)
Y(2、1)=P(2、1)×F(1、1)+P(2、2)×F(1、2)+P(3、1)×F(2、1)+P(3、2)×F(2、2) (a3)
Y(2、2)=P(2、2)×F(1、1)+P(2、3)×F(1、2)+P(3、2)×F(2、1)+P(3、3)×F(2、2) (a4)
【0049】
式a1乃至a4を一般式で表すと、
Y(y、x)=Σj(ΣiP(j+y-1、i+x-1)×F(j、i)) (a5)
である。なお、jは1乃至sの整数、iは1乃至tの整数であり、yは1乃至n-s+1の整数、xは1乃至m-t+1の整数である。
【0050】
また、半導体装置100は、シフトレジスタ群60と、D/Aコンバータ70と、を有する(
図2(A)参照)。
【0051】
シフトレジスタ群60は、それぞれ、1行p列の画像データを格納できるシフトレジスタSR_P[1]乃至SR_P[q]を有する(q、pは1以上の整数であり、n≧q≧s、m≧p≧t)。
【0052】
シフトレジスタSR_P[1]は画像データP(1、1)乃至P(1、p)を取り込み、シフトレジスタSR_P[2]は画像データP(2、1)乃至P(2、p)を取り込み、以下同様にして、シフトレジスタSR_P[q]は画像データP(q、1)乃至P(q、p)を取り込む。この様子を、
図2(B)および
図2(C)に示す。
【0053】
図2(B)において、点線で囲んだ領域51内の画像データが、シフトレジスタSR_P[1]乃至SR_P[q]に取り込まれる。
図2(C)が示すシフトレジスタ群60は、シフトレジスタSR_P[1]乃至SR_P[q]が、それぞれ、画像データを取り込んだ様子を示している。
【0054】
なお、画像データP(1、1)乃至P(n、m)は、それぞれ、1画素分に相当する画像データであり、複数bitで構成されるデジタル信号である。それゆえ、画像データP(1、1)乃至P(1、p)を取り込むシフトレジスタSR_P[1]は、p×画像データ1画素分のbit数を格納することができる。
【0055】
シフトレジスタSR_P[1]乃至SR_P[q]が取り込んだ画像データは、D/Aコンバータ70でアナログ信号に変換され、積和演算回路80に入力される。
【0056】
<シフトレジスタ群と積和演算回路1>
次に、
図3は、シフトレジスタ群60の一部と、積和演算回路80を示している。なお、
図3では、D/Aコンバータ70は省略しており、積和演算回路80が有するフィルタF(1、1)乃至F(s、t)は、s=t=3の場合を示している。
【0057】
図3において、シフトレジスタ群60が有するシフトレジスタSR_P[1]乃至SR_P[q]は、それぞれ、s個づつ、すなわち、3つづつ画像データを出力する。シフトレジスタSR_P[1]乃至SR_P[q]が出力する画像データは、信号RW[1]乃至RW[3q]として積和演算回路80に入力され、積和演算回路80において、フィルタF(1、1)乃至F(3、3)と積和演算が行われる。
【0058】
なお、
図3は、積和演算が行われる様子を示した概念図である。積和演算回路80に入力された信号RW[1]乃至RW[3q]は、矢印R1で示す方向と平行な線にそって信号が伝えられ、フィルタのパラメータを表すF(1、1)乃至F(3、3)との交点で、それぞれ、信号とフィルタの積が計算される。それぞれの信号とフィルタの積が計算されると、その結果は矢印C1で示す方向に足し合わされ、足し合わされた結果が、積和演算回路80の出力Y(1、1)乃至Y(q-2、1)である。
【0059】
図3において、シフトレジスタSR_P[1]は、シフトレジスタSR_P[1]が取り込んだ画像データP(1、1)乃至P(1、p)のうち、画像データP(1、1)乃至P(1、3)を出力する(
図3中、信号RW[1]乃至RW[3])。
【0060】
図3では省略されているが、信号RW[1]乃至RW[3]は、D/Aコンバータ70でアナログ信号に変換され、積和演算回路80に入力される。信号RW[1]乃至RW[3]は、積和演算回路80において、それぞれ、フィルタF(1、1)乃至F(1、3)と掛け合わされる。なお、積和演算回路80の具体的な構成例については、実施の形態2にて説明する。
【0061】
同様に、シフトレジスタSR_P[2]は、画像データP(2、1)乃至P(2、3)を出力し(
図3中、信号RW[4]乃至RW[6])、シフトレジスタSR_P[3]は、画像データP(3、1)乃至P(3、3)を出力する(
図3中、信号RW[7]乃至RW[9])。
【0062】
信号RW[4]乃至RW[6]は、積和演算回路80において、それぞれ、フィルタF(2、1)乃至F(2、3)と掛け合わされ、信号RW[7]乃至RW[9]は、積和演算回路80において、それぞれ、フィルタF(3、1)乃至F(3、3)と掛け合わされる。
【0063】
信号RW[1]乃至RW[3]の値とフィルタの値F(1、1)乃至F(1、3)が掛け合わされた結果と、信号RW[4]乃至RW[6]の値とフィルタの値F(2、1)乃至F(2、3)が掛け合わされた結果と、信号RW[7]乃至RW[9]の値とフィルタの値F(3、1)乃至F(3、3)が掛け合わされた結果は、足し合わされ、積和演算回路80はY(1、1)を出力する。
【0064】
同様に、シフトレジスタSR_P[2]が出力した画像データP(2、1)乃至P(2、3)は、信号RW[4]乃至RW[6]の値として、それぞれフィルタの値F(1、1)乃至F(1、3)と掛け合わされ、シフトレジスタSR_P[3]が出力した画像データP(3、1)乃至P(3、3)は、信号RW[7]乃至RW[9]の値として、それぞれフィルタの値F(2、1)乃至F(2、3)と掛け合わされ、シフトレジスタSR_P[4]が出力した画像データP(4、1)乃至P(4、3)は、信号RW[10]乃至RW[12]の値として、それぞれフィルタの値F(3、1)乃至F(3、3)と掛け合わされ、それらが足し合わされ、積和演算回路80はY(2、1)を出力する。
【0065】
同様に、シフトレジスタSR_P[3]が出力した画像データP(3、1)乃至P(3、3)は、信号RW[7]乃至RW[9]の値として、それぞれフィルタの値F(1、1)乃至F(1、3)と掛け合わされ、シフトレジスタSR_P[4]が出力した画像データP(4、1)乃至P(4、3)は、信号RW[10]乃至RW[12]の値として、それぞれフィルタの値F(2、1)乃至F(2、3)と掛け合わされ、シフトレジスタSR_P[5]が出力した画像データP(5、1)乃至P(5、3)は、信号RW[13]乃至RW[15]の値として、それぞれフィルタの値F(3、1)乃至F(3、3)と掛け合わされ、それらが足し合わされ、積和演算回路80はY(3、1)を出力する。
【0066】
同様に、シフトレジスタSR_P[q-2]が出力した画像データP(q-2、1)乃至P(q-2、3)は、信号RW[3q-8]乃至RW[3q-6]の値として、それぞれフィルタの値F(1、1)乃至F(1、3)と掛け合わされ、シフトレジスタSR_P[q-1]が出力した画像データP(q-1、1)乃至P(q-1、3)は、信号RW[3q-5]乃至RW[3q-3]の値として、それぞれフィルタの値F(2、1)乃至F(2、3)と掛け合わされ、シフトレジスタSR_P[q]が出力した画像データP(q、1)乃至P(q、3)は、信号RW[3q-2]乃至RW[3q]の値として、それぞれフィルタの値F(3、1)乃至F(3、3)と掛け合わされ、それらが足し合わされ、積和演算回路80はY(q-2、1)を出力する。
【0067】
次に、
図4は、
図3におけるシフトレジスタSR_P[1]乃至SR_P[q]が、取り込んだ画像データP(1、1)乃至P(q、p)を、それぞれ1シフトさせた状態を示している。
【0068】
すなわち、シフトレジスタSR_P[1]は画像データP(1、2)乃至P(1、4)を出力し、シフトレジスタSR_P[2]は画像データP(2、2)乃至P(2、4)を出力し、シフトレジスタSR_P[3]は画像データP(3、2)乃至P(3、4)を出力し、シフトレジスタSR_P[4]は画像データP(4、2)乃至P(4、4)を出力し、シフトレジスタSR_P[5]は画像データP(5、2)乃至P(5、4)を出力し、シフトレジスタSR_P[q]は画像データP(q、2)乃至P(q、4)を出力する。
【0069】
図3と同様に、シフトレジスタSR_P[1]が出力した画像データP(1、2)乃至P(1、4)は、信号RW[1]乃至RW[3]の値として、それぞれフィルタの値F(1、1)乃至F(1、3)と掛け合わされ、シフトレジスタSR_P[2]が出力した画像データP(2、2)乃至P(2、4)は、信号RW[4]乃至RW[6]の値として、それぞれフィルタの値F(2、1)乃至F(2、3)と掛け合わされ、シフトレジスタSR_P[3]が出力した画像データP(3、2)乃至P(3、4)は、信号RW[7]乃至RW[9]の値として、それぞれフィルタの値F(3、1)乃至F(3、3)と掛け合わされ、それらが足し合わされ、積和演算回路80はY(1、2)を出力する。
【0070】
以下同様であり、Y(2、2)およびY(3、2)については、
図3の説明を援用する。
【0071】
そして、シフトレジスタSR_P[q-2]が出力した画像データP(q-2、2)乃至P(q-2、4)は、信号RW[3q-8]乃至RW[3q-6]の値として、それぞれフィルタの値F(1、1)乃至F(1、3)と掛け合わされ、シフトレジスタSR_P[q-1]が出力した画像データP(q-1、2)乃至P(q-1、4)は、信号RW[3q-5]乃至RW[3q-3]の値として、それぞれフィルタの値F(2、1)乃至F(2、3)と掛け合わされ、シフトレジスタSR_P[q]が出力した画像データP(q、2)乃至P(q、4)は、信号RW[3q-2]乃至RW[3q]の値として、それぞれフィルタの値F(3、1)乃至F(3、3)と掛け合わされ、それらが足し合わされ、積和演算回路80はY(q-2、2)を出力する。
【0072】
図5は、
図3におけるシフトレジスタSR_P[1]乃至SR_P[q]が、取り込んだ画像データP(1、1)乃至P(q、p)を、それぞれp-3シフトさせた状態を示している。
【0073】
すなわち、シフトレジスタSR_P[1]は画像データP(1、p-2)乃至P(1、p)を出力し、シフトレジスタSR_P[2]は画像データP(2、p-2)乃至P(2、p)を出力し、シフトレジスタSR_P[3]は画像データP(3、p-2)乃至P(3、p)を出力し、シフトレジスタSR_P[4]は画像データP(4、p-2)乃至P(4、p)を出力し、シフトレジスタSR_P[5]は画像データP(5、p-2)乃至P(5、p)を出力し、シフトレジスタSR_P[q]は画像データP(q、p-2)乃至P(q、p)を出力する。
【0074】
図3と同様に、シフトレジスタSR_P[1]が出力した画像データP(1、p-2)乃至P(1、p)は、信号RW[1]乃至RW[3]の値として、それぞれフィルタの値F(1、1)乃至F(1、3)と掛け合わされ、シフトレジスタSR_P[2]が出力した画像データP(2、p-2)乃至P(2、p)は、信号RW[4]乃至RW[6]の値として、それぞれフィルタの値F(2、1)乃至F(2、3)と掛け合わされ、シフトレジスタSR_P[3]が出力した画像データP(3、p-2)乃至P(3、p)は、信号RW[7]乃至RW[9]の値として、それぞれフィルタの値F(3、1)乃至F(3、3)と掛け合わされ、それらが足し合わされ、積和演算回路80はY(1、p-2)を出力する。
【0075】
以下同様であり、Y(2、p-2)およびY(3、p-2)については、
図3の説明を援用する。
【0076】
そして、シフトレジスタSR_P[q-2]が出力した画像データP(q-2、p-2)乃至P(q-2、p)は、信号RW[3q-8]乃至RW[3q-6]の値として、それぞれフィルタの値F(1、1)乃至F(1、3)と掛け合わされ、シフトレジスタSR_P[q-1]が出力した画像データP(q-1、p-2)乃至P(q-1、p)は、信号RW[3q-5]乃至RW[3q-3]の値として、それぞれフィルタの値F(2、1)乃至F(2、3)と掛け合わされ、シフトレジスタSR_P[q]が出力した画像データP(q、p-2)乃至P(q、p)は、信号RW[3q-2]乃至RW[3q]の値として、それぞれフィルタの値F(3、1)乃至F(3、3)と掛け合わされ、それらが足し合わされ、積和演算回路80はY(q-2、p-2)を出力する。
【0077】
このように、積和演算回路80は、シフトレジスタ群60から出力される画像データとフィルタF(1、1)乃至F(s、t)の畳み込み演算を行い、シフトレジスタ群60は取り込んだ画像データをシフトして積和演算回路80に出力する動作を繰り返すことで、半導体装置100がフレームメモリ50へアクセスする回数を削減することができる。
【0078】
<シフトレジスタ1>
シフトレジスタ群60が有するシフトレジスタSR_P[1]乃至SR_P[q]に適用可能なシフトレジスタの構成例を、
図6(A)乃至(C)に示す。
【0079】
図6(A)は、シフトレジスタが取り込んだ画像データP(1、1)乃至P(1、p)、およびシフトレジスタが出力する信号RW[1]乃至RW[3]に関して、シフトレジスタSR_P[1]を例に示しているが、同じ構成例をシフトレジスタSR_P[2]乃至SR_P[q]にも適用可能である。
【0080】
シフトレジスタSR_P[1]は、レジスタ61をp個と、インバータ62を有し、クロック信号CLKと、信号DATAが入力され、信号RW[1]乃至RW[3]を出力する。信号DATAには、画像データP(1、1)乃至P(1、p)が順に入力される。
【0081】
図6(B)は、レジスタ61のシンボルを示す図であり、レジスタ61の入出力の様子を示している。レジスタ61は、クロック信号CLK_IN1、CLK_IN2、および信号D_INが入力され、信号D_OUTを出力する。
【0082】
レジスタ61のシンボルに対して、
図6(C)は、レジスタ61の構成例を示す回路図である。レジスタ61は、クロックドインバータ63乃至66、およびインバータ67、68を有する。なお、
図6(A)乃至(C)では、主な構成要素と信号の接続関係を示しており、電源線等は省略している。また、実際には、レジスタ61は、
図6(C)に示す回路を、画像データ1画素分のbit数に相当する個数有している。
【0083】
図6(A)乃至(C)に示されるレジスタ61は、クロック信号CLKがHighからLowに切り替わるタイミングで信号D_INを取り込み、信号D_OUTを出力する。それゆえ、クロック信号CLKの周期をΔTとしたとき、ΔT秒ごとに、信号DATAはシフトレジスタSR_P[1]の中をシフトする。この様子を
図7に示す。
【0084】
図7(A)は、画像データP(1、1)が取り込まれたタイミングを示している。
図7(B)は、
図7(A)のΔT秒後を示しており、画像データP(1、1)は次のレジスタ61へシフトし、画像データP(1、2)が取り込まれる。
図7(C)は、
図7(A)の(p-1)×ΔT秒後を示している。画像データP(1、1)は最後のレジスタ61へシフトし、画像データP(1、p)が取り込まれる。また、画像データP(1、1)乃至P(1、3)が信号RW[1]乃至RW[3]として、シフトレジスタSR_P[1]から出力される。
図7(C)は、
図3において説明した状態である。
【0085】
図7(D)は、
図7(A)のp×ΔT秒後を示している。画像データP(1、1)は削除され、画像データP(1、2)乃至P(1、4)が信号RW[1]乃至RW[3]として、シフトレジスタSR_P[1]から出力される。
図7(D)は、
図4において説明した状態である。このようにして、画像データP(1、1)乃至P(1、p)は、シフトレジスタSR_P[1]の中をシフトし、信号RW[1]乃至RW[3]として順に出力される。
【0086】
<シフトレジスタ2>
また、
図6(A)に示すシフトレジスタSR_P[1]は、
図8の構成とすることができる。すなわち、
図8(A)に示すシフトレジスタSR_PW[1]は、レジスタ61とレジスタ61の間にスイッチSR_SWを有する。
【0087】
シフトレジスタSR_PW[1]は、レジスタ61をp個と、スイッチSR_SWをp-1個と、インバータ62を有し、クロック信号CLKと、信号DATA[1]乃至DATA[p]が入力され、信号RW[1]乃至RW[3]を出力する。信号DATA[1]乃至DATA[p]には、画像データP(1、1)乃至P(1、p)がそれぞれ入力される。
【0088】
スイッチSR_SWは、
図8(B)に示すように、2つの入力部aおよびbと、1つの出力部oを有する。そして、全てのスイッチSR_SWは連動スイッチである。スイッチSR_SWが入力部aを選択している時、シフトレジスタSR_PW[1]が有する全てのスイッチSR_SWが入力部aを選択している。このとき、シフトレジスタSR_PW[1]は、信号DATA[1]乃至[p]として、画像データP(1、1)乃至P(1、p)を一度に取り込むことができる。
【0089】
シフトレジスタSR_PW[1]は、クロック信号CLKがHighからLowに切り替わる最初のタイミングで画像データP(1、1)乃至P(1、p)を取り込むことができ、(p-1)×ΔT秒を要することなく、
図7(C)において説明した状態とすることができる。
【0090】
シフトレジスタSR_PW[1]が画像データP(1、1)乃至P(1、p)を取り込んだ後は、全てのスイッチSR_SWが入力部bを選択し、
図7(C)および(D)と同様に、画像データP(1、1)乃至P(1、p)をシフトさせることができる。
【0091】
<シフトレジスタ3>
また、
図8(A)に示すシフトレジスタSR_PW[1]は、アナログデータを扱うシフトレジスタとすることができる。アナログデータを扱うシフトレジスタとして、
図9(A)にシフトレジスタSR_PA[1]を示す。
【0092】
図9(A)に示すシフトレジスタSR_PA[1]は、レジスタ69をp個と、トランジスタ41を有し、クロック信号CLK1乃至CLK4と、信号SEと、信号DATA[1]乃至DATA[p]が入力され、信号RW[1]乃至RW[3]を出力する。シフトレジスタSR_PW[1]と同様に、信号DATA[1]乃至DATA[p]には、画像データP(1、1)乃至P(1、p)がそれぞれ入力され、画像データP(1、1)乃至P(1、p)を一度に取り込むことができる。
【0093】
図9(B)は、レジスタ69のシンボルを示す図であり、レジスタ69の入出力の様子を示している。レジスタ69は、クロック信号CLK_IN1乃至CLK_IN4、信号D_IN1、信号D_IN2、および信号SE_INが入力され、信号D_OUTを出力する。
【0094】
レジスタ69のシンボルに対して、
図9(C)は、レジスタ69の構成例を示す回路図である。レジスタ69は、トランジスタ42乃至48と、容量素子C11およびC12を有する。また、VDDは高電位電源であり、VSSは低電位電源である。
【0095】
なお、
図9(A)および(C)において、トランジスタ41乃至48はnチャネル型トランジスタであり、シフトレジスタSR_PA[1]が単極性トランジスタで構成される例を示している。シフトレジスタSR_PA[1]が単極性トランジスタで構成されることで、シフトレジスタSR_PA[1]の製造工程を短くすることが可能であるが、本発明の一態様はこれに限定されず、一部のトランジスタをpチャネル型トランジスタとしてもよい。
【0096】
トランジスタ43のソースまたはドレインの一方は、容量素子C11の一方の電極、およびトランジスタ44のゲートと電気的に接続される。トランジスタ44のソースまたはドレインの一方は、トランジスタ45のソースまたはドレインの一方と電気的に接続され、トランジスタ45のソースまたはドレインの他方は、トランジスタ46のソースまたはドレインの一方と電気的に接続される。
【0097】
トランジスタ46のソースまたはドレインの一方は、容量素子C12の一方の電極、およびトランジスタ47のゲートと電気的に接続される。トランジスタ47のソースまたはドレインの一方は、トランジスタ48のソースまたはドレインの一方と電気的に接続され、トランジスタ48のソースまたはドレインの他方からは、信号D_OUTが出力される。
【0098】
トランジスタ43、46のソースまたはドレインの他方は、低電位電源VSSに電気的に接続され、トランジスタ44、47のソースまたはドレインの他方は、高電位電源VDDに電気的に接続される。容量素子C11の他方の電極および容量素子C12の他方の電極は、例えばGND等、所定の電位が供給される配線に電気的に接続される。
【0099】
また、トランジスタ42のゲートには信号SE_INが入力され、トランジスタ43のゲートにはクロック信号CLK_IN1が入力され、トランジスタ45のゲートにはクロック信号CLK_IN2が入力され、トランジスタ46のゲートにはクロック信号CLK_IN3が入力され、トランジスタ48のゲートにはクロック信号CLK_IN4が入力される。
【0100】
ここで、トランジスタ43のソースまたはドレインの一方、容量素子C11の一方の電極、およびトランジスタ44のゲートが接続される配線をノードN11とし、トランジスタ46のソースまたはドレインの一方、容量素子C12の一方の電極、およびトランジスタ47のゲートが接続される配線をノードN12とする。
【0101】
トランジスタ42のソースまたはドレインの一方には、信号D_IN1が入力され、トランジスタ42のソースまたはドレインの他方は、ノードN11と電気的に接続される。また、ノードN11には信号D_IN2が入力される。
【0102】
トランジスタ43はノードN11をリセットする機能を有し、容量素子C11はノードN11に記憶する信号の保持容量としての機能を有し、トランジスタ44はノードN11の電位に対応した出力を行う機能を有する。トランジスタ45は、トランジスタ44が出力する信号をノードN12に転送する機能を有する。
【0103】
トランジスタ46はノードN12をリセットする機能を有し、容量素子C12はノードN12に記憶する信号の保持容量としての機能を有し、トランジスタ47はノードN12の電位に対応した出力を行う機能を有する。トランジスタ48は、トランジスタ47が出力する信号を、信号D_OUTとして出力する機能を有する。
【0104】
なお、トランジスタ41乃至48は、OSトランジスタとする構成が好ましい。OSトランジスタは極めてオフ電流が低いため、OSトランジスタで構成されたシフトレジスタSR_PA[1]は、データの保持特性に優れる。したがって、シフトレジスタSR_PA[1]は、入力された信号DATA[1]乃至DATA[p]を精度良くシフトすることができる。
【0105】
OSトランジスタは、チャネル形成領域に金属酸化物を有することが好ましい。また、OSトランジスタに適用される金属酸化物は、インジウム(In)および亜鉛(Zn)の少なくとも一方を含む酸化物であることが好ましい。
【0106】
このような酸化物としては、In-M-Zn酸化物、In-M酸化物、Zn-M酸化物、In-Zn酸化物(元素Mは、例えば、アルミニウム(Al)、ガリウム(Ga)、イットリウム(Y)、スズ(Sn)、ホウ素(B)、シリコン(Si)、チタン(Ti)、鉄(Fe)、ニッケル(Ni)、ゲルマニウム(Ge)、ジルコニウム(Zr)、モリブデン(Mo)、ランタン(La)、セリウム(Ce)、ネオジム(Nd)、バナジウム(V)、ベリリウム(Be)、ハフニウム(Hf)、タンタル(Ta)、またはタングステン(W)など)が代表的である。
【0107】
OSトランジスタは、チャネル幅1μmあたりのオフ電流を1yA/μm(y;ヨクト、10-24)以上1zA/μm(z;ゼプト、10-21)以下程度に低くすることができる。
【0108】
また、OSトランジスタには、CAC(Cloud-Aligned Composite)-OSを用いることが好ましい。CAC-OSの詳細については、実施の形態4で説明する。
【0109】
また、OSトランジスタは、シリコンを活性領域または活性層に用いたトランジスタ(以下、Siトランジスタという)よりも電気特性の温度依存性が小さいため、広い温度範囲で使用することができる。したがって、OSトランジスタで構成されたシフトレジスタSR_PA[1]などの半導体装置は、自動車、航空機、宇宙機などへの搭載にも適している。また、OSトランジスタは、Siトランジスタよりもドレイン耐圧が高い特性を有するため、信頼性の高い半導体装置とすることができる。
【0110】
もしくは、トランジスタ41乃至48に使用されるトランジスタとして、オフ電流が低ければOSトランジスタを適用しないことができる。例えば、バンドギャップが大きい半導体を用いたトランジスタを適用してもよい。バンドギャップが大きい半導体とは、バンドギャップが2.2eV以上の半導体を指す場合がある。例えば、炭化ケイ素、窒化ガリウム、ダイヤモンドなどが挙げられる。
【0111】
なお、実際には、レジスタ69は、
図9(C)に示す回路を、画像データ1画素分のbit数に相当する個数有している。
【0112】
次に、レジスタ69およびシフトレジスタSR_PA[1]の動作について説明する。
【0113】
レジスタ69では、トランジスタ43で容量素子C11の電荷をリセット、すなわち、ノードN11の電位を初期化した後、信号D_IN1または信号D_IN2が入力される。当該動作により、ノードN11の電位を、信号DATA[1]乃至DATA[p]のいずれか、または、前段のレジスタ69の出力電位(アナログ電位)に設定することができる。信号SE_INはトランジスタ42を制御し、信号D_IN1をノードN11の電位に設定することができる。
【0114】
なお、シフトレジスタSR_PA[1]において、初段のレジスタ69には信号D_IN2に入力される信号がないため、未接続(フローティング)となっている。また、シフトレジスタSR_PA[1]において、トランジスタ41は、最後段のレジスタ69が出力する信号RW[1]の電位を初期化する。
【0115】
レジスタ69は、トランジスタ45を制御することで、トランジスタ44のゲート電圧、すなわち、ノードN11の電位に応じた信号をノードN12に出力することができる。
【0116】
レジスタ69は、トランジスタ46で容量素子C12の電荷をリセット、すなわち、ノードN12の電位を初期化した後、ノードN11の電位に応じた信号を取得することで、ノードN12の電位を当該信号に応じた電位(アナログ電位)に設定することができる。つまり、ノードN11の電位をノードN12の電位に設定することができる。
【0117】
レジスタ69は、トランジスタ48を制御することで、トランジスタ47のゲート電圧、すなわち、ノードN12の電位に応じた信号を、信号D_OUTとして出力することができる。
【0118】
なお、上記において、レジスタ69におけるノードN12に出力される信号は、ノードN11の電位からトランジスタ44のしきい値電圧を引いた電位となる。同様に、信号D_OUTは、ノードN12の電位からトランジスタ47のしきい値電圧を引いた電位となる。
【0119】
つまり、レジスタ69で構成されるシフトレジスタSR_PA[1]の段が進むにつれ、レジスタ69の出力電位が変化していくことになる。そのため、
図10(A)に示すように、少なくともトランジスタ44、47にバックゲートを設けることが好ましい。当該バックゲートの電位を電源VBGで制御し、トランジスタ44、47のしきい値電圧を0Vまたは0V付近とすることで、レジスタ69の出力電位の変化を抑えることができる。
【0120】
なお、上述のバックゲートによるしきい値電圧の制御は、シフトレジスタの出力が十分な精度を得られる範囲、または外部回路で補正が可能な範囲で行えばよい。外部回路で行う補正としては、例えば、レジスタ69の各段におけるしきい値電圧低下分を積算した値を、信号D_OUTに加算する構成とすればよい。
【0121】
また、シフトレジスタSR_PA[1]をシフトレジスタ群60に適用する場合、半導体装置100において、シフトレジスタ群60とD/Aコンバータ70の順番を入れ替えて使用する。すなわち、
図2(A)に示される半導体装置100は、
図10(B)に示す半導体装置101となる。
【0122】
次に、レジスタ69およびシフトレジスタSR_PA[1]の動作について、
図11のタイミングチャートを用いて説明する。
【0123】
なお、
図11のタイミングチャートでは、p=3として、3つのレジスタ69について示している。初段のレジスタ69のノードN11、ノードN12を、それぞれノードN11[1]、ノードN12[1]とし、最後段のレジスタ69のノードN11、ノードN12を、それぞれノードN11[3]、ノードN12[3]として区別している。ノードN11[2]、ノードN12[2]についても同様である。
【0124】
また、説明のため、
図11のタイミングチャートでは、ノードN11[1]乃至ノードN11[3]、ノードN12[1]乃至ノードN12[3]、および信号RW[1]乃至RW[3]が、信号DATA[1]乃至DATA[3]のうち、どの信号の電位に設定されている、または出力しているかを表記している。
【0125】
時刻T1乃至T2において、クロック信号CLK1をHighとすることで、ノードN11[1]、ノードN11[2]、ノードN11[3]、および信号RW[1]をLowにリセットする。またこの時、信号RW[2]および信号RW[3]も、Lowにリセットされる(
図9(A)参照)。
【0126】
時刻T2乃至T3において、信号SEをHighとすることで、ノードN11[1]の電位を信号DATA[3]の電位に設定し、ノードN11[2]の電位を信号DATA[2]の電位に設定し、ノードN11[3]の電位を信号DATA[1]の電位に設定する。
【0127】
時刻T3乃至T4において、クロック信号CLK3をHighとすることで、ノードN12[1]、ノードN12[2]、およびノードN12[3]をLowにリセットする。
【0128】
時刻T4乃至T5において、クロック信号CLK4をHighとすることで、ノードN12[1]の電位をノードN11[1]の電位に設定し、ノードN12[2]の電位をノードN11[2]の電位に設定し、ノードN12[3]の電位をノードN11[3]の電位に設定する。
【0129】
時刻T5乃至T6において、クロック信号CLK1をHighとすることで、ノードN11[1]、ノードN11[2]、ノードN11[3]、信号RW[1]、信号RW[2]、および信号RW[3]をLowにリセットする。
【0130】
時刻T6乃至T7において、クロック信号CLK2をHighとすることで、ノードN12[1]の電位を、信号RW[3]とノードN11[2]の電位に設定し、ノードN12[2]の電位を、信号RW[2]とノードN11[3]の電位に設定し、ノードN12[3]の電位を、信号RW[1]の電位に設定する。
【0131】
時刻T6以降の信号RW[1]乃至信号RW[3]の電位が確定したタイミングから時刻T9のタイミングにおいて、信号RW[3]として信号DATA[3]の電位が出力され、信号RW[2]として信号DATA[2]の電位が出力され、信号RW[1]として信号DATA[1]の電位が出力される。
【0132】
また、時刻T7乃至T8において、クロック信号CLK3をHighとすることで、ノードN12[1]、ノードN12[2]、およびノードN12[3]をLowにリセットする。
【0133】
時刻T8乃至T9において、クロック信号CLK4をHighとすることで、ノードN12[1]の電位をノードN11[1]の電位に設定し、ノードN12[2]の電位をノードN11[2]の電位に設定し、ノードN12[3]の電位をノードN11[3]の電位に設定する。
【0134】
時刻T9乃至T10において、クロック信号CLK1をHighとすることで、ノードN11[1]、ノードN11[2]、ノードN11[3]、信号RW[1]、信号RW[2]、および信号RW[3]をLowにリセットする。
【0135】
時刻T10乃至T11において、クロック信号CLK2をHighとすることで、ノードN12[1]の電位を、信号RW[3]とノードN11[2]の電位に設定し、ノードN12[2]の電位を、信号RW[2]とノードN11[3]の電位に設定し、ノードN12[3]の電位を、信号RW[1]の電位に設定する。
【0136】
時刻T10以降の信号RW[1]および信号RW[2]の電位が確定したタイミングから時刻T13のタイミングにおいて、信号RW[2]として信号DATA[3]の電位が出力され、信号RW[1]として信号DATA[2]の電位が出力される。信号RW[3]はLowとなる。
【0137】
また、時刻T11乃至T12において、クロック信号CLK3をHighとすることで、ノードN12[1]、ノードN12[2]、およびノードN12[3]をLowにリセットする。
【0138】
時刻T12乃至T13において、クロック信号CLK4をHighとすることで、ノードN12[1]の電位をノードN11[1]の電位に設定し、ノードN12[2]の電位をノードN11[2]の電位に設定し、ノードN12[3]の電位をノードN11[3]の電位に設定する。
【0139】
時刻T13乃至T14において、クロック信号CLK1をHighとすることで、ノードN11[1]、ノードN11[2]、ノードN11[3]、信号RW[1]、信号RW[2]、および信号RW[3]をLowにリセットする。
【0140】
時刻T14乃至T15において、クロック信号CLK2をHighとすることで、ノードN12[1]の電位を、信号RW[3]とノードN11[2]の電位に設定し、ノードN12[2]の電位を、信号RW[2]とノードN11[3]の電位に設定し、ノードN12[3]の電位を、信号RW[1]の電位に設定する。
【0141】
時刻T14以降の信号RW[1]の電位が確定したタイミングから時刻T17のタイミングにおいて、信号RW[1]として信号DATA[3]の電位が出力される。信号RW[2]、信号RW[3]はLowとなる。
【0142】
以上のように、シフトレジスタSR_PA[1]が有するレジスタ69は、ノードN11およびノードN12を有し、ノードN11で記憶した信号はノードN12に転送することができる。また、ノードN12で記憶した信号は、後段のレジスタ69のノードN11に転送することができる。つまり、シフトレジスタSR_PA[1]に入力された画像データP(1、1)乃至P(1、p)は、レジスタ69によってシフトされ、順に出力される。
【0143】
なお、
図3乃至
図11では、シフトレジスタSR_P[1]、SR_PW[1]、SR_PA[1]が有する最後段から3つのレジスタ61またはレジスタ69が、信号RW[1]乃至RW[3]として信号を出力する例を示したが、本発明の一態様はこれに限定されない。次に、画像認識の分野において、畳み込み演算の後に行われることが多いプーリング処理を考慮した構成例を示す。
【0144】
<シフトレジスタ群と積和演算回路2>
図12は、
図3と同じく、シフトレジスタ群60の一部と積和演算回路80を示しており、積和演算回路80が有するフィルタF(1、1)乃至F(s、t)においてもs=t=3の場合を示している。
【0145】
図12において、シフトレジスタSR_P[1]は、シフトレジスタSR_P[1]が取り込んだ画像データP(1、1)乃至P(1、p)のうち、画像データP(1、1)乃至P(1、4)を出力する(
図12中、信号RW[1]乃至RW[4])。
【0146】
図12では省略されているが、信号RW[1]乃至RW[4]は、D/Aコンバータ70でアナログ信号に変換され、積和演算回路80に入力される。信号RW[1]乃至RW[3]は、積和演算回路80において、それぞれ、フィルタF(1、1)乃至F(1、3)と掛け合わされる。また、信号RW[2]乃至RW[4]は、積和演算回路80において、それぞれ、フィルタF(1、1)乃至F(1、3)と掛け合わされる。
【0147】
同様に、シフトレジスタSR_P[2]は、画像データP(2、1)乃至P(2、4)を出力し(
図12中、信号RW[5]乃至RW[8])、シフトレジスタSR_P[3]は、画像データP(3、1)乃至P(3、4)を出力し(
図12中、信号RW[9]乃至RW[12])、シフトレジスタSR_P[4]は、画像データP(4、1)乃至P(4、4)を出力する(
図12中、信号RW[13]乃至RW[16])。
【0148】
信号RW[5]乃至RW[7]は、積和演算回路80において、それぞれ、フィルタF(2、1)乃至F(2、3)と掛け合わされ、RW[6]乃至RW[8]は、積和演算回路80において、それぞれ、フィルタF(2、1)乃至F(2、3)と掛け合わされる。また、信号RW[9]乃至RW[11]は、積和演算回路80において、それぞれ、フィルタF(3、1)乃至F(3、3)と掛け合わされ、信号RW[10]乃至RW[12]は、積和演算回路80において、それぞれ、フィルタF(3、1)乃至F(3、3)と掛け合わされる。
【0149】
信号RW[1]乃至RW[3]とフィルタF(1、1)乃至F(1、3)が掛け合わされた結果と、信号RW[5]乃至RW[7]とフィルタF(2、1)乃至F(2、3)が掛け合わされた結果と、信号RW[9]乃至RW[11]とフィルタF(3、1)乃至F(3、3)が掛け合わされた結果は、足し合わされ、積和演算回路80はY(1、1)を出力する。
【0150】
また、信号RW[2]乃至RW[4]とフィルタF(1、1)乃至F(1、3)が掛け合わされた結果と、信号RW[6]乃至RW[8]とフィルタF(2、1)乃至F(2、3)が掛け合わされた結果と、信号RW[10]乃至RW[12]とフィルタF(3、1)乃至F(3、3)が掛け合わされた結果は、足し合わされ、積和演算回路80はY(1、2)を出力する。
【0151】
同様に、シフトレジスタSR_P[2]が出力した画像データP(2、1)乃至P(2、3)は、信号RW[5]乃至RW[7]として、それぞれフィルタF(1、1)乃至F(1、3)と掛け合わされ、シフトレジスタSR_P[3]が出力した画像データP(3、1)乃至P(3、3)は、信号RW[9]乃至RW[11]として、それぞれフィルタF(2、1)乃至F(2、3)と掛け合わされ、シフトレジスタSR_P[4]が出力した画像データP(4、1)乃至P(4、3)は、信号RW[13]乃至RW[15]として、それぞれフィルタF(3、1)乃至F(3、3)と掛け合わされ、それらが足し合わされ、積和演算回路80はY(2、1)を出力する。
【0152】
同様に、シフトレジスタSR_P[2]が出力した画像データP(2、2)乃至P(2、4)は、信号RW[6]乃至RW[8]として、それぞれフィルタF(1、1)乃至F(1、3)と掛け合わされ、シフトレジスタSR_P[3]が出力した画像データP(3、2)乃至P(3、4)は、信号RW[10]乃至RW[12]として、それぞれフィルタF(2、1)乃至F(2、3)と掛け合わされ、シフトレジスタSR_P[4]が出力した画像データP(4、2)乃至P(4、4)は、信号RW[14]乃至RW[16]として、それぞれフィルタF(3、1)乃至F(3、3)と掛け合わされ、それらが足し合わされ、積和演算回路80はY(2、2)を出力する。
【0153】
次に、
図13は、
図12におけるシフトレジスタSR_P[1]乃至SR_P[q]が、取り込んだ画像データP(1、1)乃至P(q、p)を、それぞれ1シフトさせた状態を示している。
【0154】
すなわち、シフトレジスタSR_P[1]は画像データP(1、2)乃至P(1、5)を出力し、シフトレジスタSR_P[2]は画像データP(2、2)乃至P(2、5)を出力し、シフトレジスタSR_P[3]は画像データP(3、2)乃至P(3、5)を出力し、シフトレジスタSR_P[4]は画像データP(4、2)乃至P(4、5)を出力する。
【0155】
図12と同様に、シフトレジスタSR_P[1]が出力した画像データP(1、2)乃至P(1、4)は、信号RW[1]乃至RW[3]として、それぞれフィルタF(1、1)乃至F(1、3)と掛け合わされ、シフトレジスタSR_P[2]が出力した画像データP(2、2)乃至P(2、4)は、信号RW[5]乃至RW[7]として、それぞれフィルタF(2、1)乃至F(2、3)と掛け合わされ、シフトレジスタSR_P[3]が出力した画像データP(3、2)乃至P(3、4)は、信号RW[9]乃至RW[11]として、それぞれフィルタF(3、1)乃至F(3、3)と掛け合わされ、それらが足し合わされ、積和演算回路80はY(1、2)を出力する。
【0156】
同様に、シフトレジスタSR_P[1]が出力した画像データP(1、3)乃至P(1、5)は、信号RW[2]乃至RW[4]として、それぞれフィルタF(1、1)乃至F(1、3)と掛け合わされ、シフトレジスタSR_P[2]が出力した画像データP(2、3)乃至P(2、5)は、信号RW[6]乃至RW[8]として、それぞれフィルタF(2、1)乃至F(2、3)と掛け合わされ、シフトレジスタSR_P[3]が出力した画像データP(3、3)乃至P(3、5)は、信号RW[10]乃至RW[12]として、それぞれフィルタF(3、1)乃至F(3、3)と掛け合わされ、それらが足し合わされ、積和演算回路80はY(1、3)を出力する。
【0157】
以下同様であり、Y(2、2)およびY(2、3)については、
図12の説明を援用する。
【0158】
ここで、
図12の説明において積和演算回路80が出力するY(1、1)、Y(1、2)、Y(2、1)、Y(2、2)、および、
図13の説明において積和演算回路80が出力するY(1、2)、Y(1、3)、Y(2、2)、Y(2、3)は、データを一度保存することなく、プーリング処理を行うことができる。
【0159】
プーリング処理とは、画像データを小さな領域に区切り、その中から、例えば、最大値を取り出すことである。
図12の例では、Y(1、1)、Y(1、2)、Y(2、1)、Y(2、2)から最大値を取り出し、
図13の例では、Y(1、2)、Y(1、3)、Y(2、2)、Y(2、3)から最大値を取り出すことである。なお、本発明の一態様は
図12および
図13の例に限定されず、目的とするプーリング処理に合わせて、シフトレジスタ群60および積和演算回路80の構成を選択することができる。
【0160】
このように、シフトレジスタ群60は取り込んだ画像データの出力とシフトを繰り返し行い、積和演算回路80は、シフトレジスタ群60から出力される画像データとフィルタF(1、1)乃至F(s、t)の畳み込み演算を行い、積和演算回路80の出力Y(y、x)は、データを一度保存することなくプーリング処理を行うことができる。
図2(A)に示される半導体装置100は、プーリング回路90を加えて、
図14(A)に示す半導体装置102とすることができる。
【0161】
本発明の一形態である半導体装置100乃至102のいずれか1つを用いることで、畳み込み演算を効率的に行うことができる。
【0162】
なお、本実施の形態は、本明細書に記載する他の実施の形態と適宜組み合わせて実施することができる。
【0163】
(実施の形態2)
上述したように、ニューラルネットワークは、ニューロンとシナプスで構成される神経回路網を模した回路構成、すなわち、ニューロンを模したユニットが互いに結合された回路構成を有している。それぞれのニューロンに入力された複数のデータは、それぞれ結合の強度を表す重み係数と掛け合わされ、その結果が足しあわされる(積和演算)。
【0164】
ここで、画像認識の分野におけるフィルタのパラメータは、ニューラルネットワークにおける重み係数に相当するが、ニューラルネットワークが画像認識の分野において利用される場合の大きなメリットは、重み係数が学習によって得られることである。
【0165】
すなわち、ニューラルネットワークが画像認識の分野において利用される場合、ニューラルネットワークに大量の画像データと、それぞれの画像データが表している物体が何であるのかの情報(教師データともいう)を与えることで、ニューラルネットワークは学習(教師あり学習ともいう)を行うことができる。そして、学習を行うことで、重み係数(フィルタのパラメータ)等が変更される。
【0166】
十分に学習が行われたニューラルネットワークは、重み係数等が最適化され、与えられた画像データに対し、その画像データが表している物体が何であるかを推論することができる。本実施の形態では、上述のように学習と推論を行うことができるニューラルネットワークの一例についてと、ニューラルネットワークに適用可能な積和演算回路の一例について、説明を行う。なお、本実施の形態で説明する積和演算回路は、実施の形態1で例示した積和演算回路80に適用可能である。
【0167】
<ニューラルネットワーク>
以下、ニューラルネットワークの一例として階層型ニューラルネットワーク、および教師あり学習について説明する。
【0168】
図14(B)に、階層型ニューラルネットワークの構成例を示す。
図14(B)では、各層のニューロンを丸で示している。そして、
図14(B)では、入力層としての機能を有する第(l-1)層と、中間層(隠れ層)としての機能を有する第l層と、出力層としての機能を有する第(l+1)層の3層に分けられたニューロン(形式ニューロン)を有する、階層型ニューラルネットワークの構成例を示している(lは2以上の整数)。そして、第(l-1)層が有するニューロンをM個(Mは2以上の整数)、第l層が有するニューロンをN個(Nは2以上の整数)、第(l+1)層が有するニューロンをK個(Kは2以上の整数)とする。
【0169】
なお、
図14(B)では、第(l-1)層が有する複数のニューロンのうち、5つのニューロンを図示しており、第l層が有する複数のニューロンのうち、4つのニューロンを図示しており、第(l+1)層が有する複数のニューロンのうち、3つのニューロンを図示している。
【0170】
また、
図14(B)では、中間層が一層で構成されている階層型ニューラルネットワークの構成例を示しているが、中間層が複数の層で構成されていても良い。よって、L層(Lは3以上の整数)で構成される階層型ニューラルネットワークの場合、第1層が入力層に相当し、第2層乃至第(L-1)層が中間層に相当し、第L層が出力層に相当する。
【0171】
図14(B)において、第(l-1)層のニューロンが有する第mニューロン(mは1以上M以下の整数)の出力z
m
(l-1)が、第l層のニューロンが有する第nニューロン(nは1以上N以下の整数)に入力されるものとする。また、第nニューロンの出力z
n
(l)が、第(l+1)層のニューロンが有する第kニューロン(kは1以上K以下の整数)に入力されるものとする。また、第kニューロンの出力をz
k
(l+1)とする。そして、第l層の第nニューロンへの入力に対する重み係数をw
nm
(l)、第(l+1)層の第kのニューロンへの入力に対する重み係数をw
kn
(l+1)とする。
【0172】
上記条件のもと、第l層の第nのニューロンへの入力の総和(ネット値)は、以下の式b1で表される。
【0173】
un
(l)=Σm wnm
(l)・zm
(l-1) (b1)
【0174】
式b1の演算処理は、後述する積和演算回路を用いることにより行うことができる。
【0175】
また、第l層の第nのニューロンの出力zn
(l)は、以下の式b2で表される。
【0176】
zn
(l)=f(un
(l)) (b2)
【0177】
なお、fはニューロンの出力関数である。ニューロンの出力関数fとして、ステップ関数、線形ランプ関数、シグモイド関数などを用いることができる。例えば、式b2の演算処理は、
図14(C)に示す回路270を用いることで実行することができる。回路270において、出力関数fは、OPアンプの出力特性に対応する。また、OPアンプからの出力信号を用いて、所望の出力関数に対応した演算回路において演算処理を行うことで、式b2の演算処理を実現することもできる。
【0178】
同様に、第(l+1)層の第kのニューロンへの入力の総和(ネット値)は、以下の式b3で表される。
【0179】
uk
(l+1)=Σn wkn
(l+1)・zn
(l) (b3)
【0180】
式b3の演算処理は、後述する積和演算回路を用いることにより行うことができる。
【0181】
また、第(l+1)層の第kのニューロンの出力zk
(l+1)は、以下の式b4で表される。
【0182】
zk
(l+1)=f(uk
(l+1)) (b4)
【0183】
例えば、式b4の演算処理は、
図14(D)に示す回路271を用いることで実行することができる。回路271において、出力関数fは、回路270と同様に、OPアンプの出力特性に対応する。また、OPアンプからの出力信号を用いて、所望の出力関数に対応した演算回路において演算処理を行うことで、式b4の演算処理を実現することもできる。
【0184】
上記構成により、第kのニューロンの出力zk
(l+1)を得ることができる。
【0185】
次に、教師あり学習について説明する。教師あり学習とは、上述の階層型ニューラルネットワークの機能において、出力した結果と所望の結果(教師データ、または教師信号という場合がある)が異なった場合に、階層型ニューラルネットワークの全ての重み係数を、出力した結果と所望の結果とに基づいて、更新する動作をいう。
【0186】
教師あり学習の具体例として、誤差逆伝播方式による学習方法について説明する。
図15(A)に、誤差逆伝播方式の模式図を示す。誤差逆伝播方式は、階層型ニューラルネットワークの出力と教師データとの誤差が小さくなるように、重み係数を変更する方式である。
【0187】
具体的に、誤差逆伝播方式は、出力層の出力zk
(L)と教師データtkとで決まる誤差エネルギーEに対して、第l層の重み係数wnm
(l)の更新量を∂E/∂wnm
(l)として重み係数を変更する。
【0188】
例えば、第l層の誤差δn
(l)を、δn
(l)≡∂E/∂un
(l)と定義すると、誤差δn
(l)は以下の式b5で表され、更新量∂E/∂wnm
(l)は以下の式b6で表される。なお、f’はニューロンの出力関数の導関数である。
【0189】
δn
(l)=Σkδk
(l+1)・wkn
(l+1)・f’(un
(l)) (b5)
∂E/∂wnm
(l)=δn
(l)・zm
(l-1) (b6)
【0190】
例えば、式b5の演算処理は、
図15(B)に示す回路272を用いることで実行することができる。また、式b6の演算処理は、
図15(C)に示す回路273を用いることで実行することができる。なお、導関数は、例えば、OPアンプからの出力信号を用いて、所望の導関数に対応した演算回路において演算処理を行うこともできる。
【0191】
式b5の演算処理の一部は、後述する積和演算回路を用いることにより行うことができる。
【0192】
また、出力層である第(l+1)層の誤差δk
(l+1)は以下の式b7で表され、更新量∂E/∂wkn
(l+1)は以下の式b8で表される。
【0193】
δk
(l+1)=(zk
(l+1)-tk)・f’(uk
(l+1)) (b7)
∂E/∂wkn
(l+1)=δk
(l+1)・zn
(l) (b8)
【0194】
例えば、式b7の演算処理は、
図15(D)に示す回路274を用いることで実行することができる。式b8の演算処理は、
図15(C)に示す回路273を用いることで実行することができる。
【0195】
<積和演算回路>
学習と推論を行うことができるニューラルネットワークの一例として示した階層型ニューラルネットワークにおいて、式b1および式b3で示される演算処理を行う積和演算回路、および、実施の形態1で例示した積和演算回路80に適用可能な積和演算回路の一例を、
図16に示す。
【0196】
図16に示す積和演算回路の一例は、アナログデータを用いてアナログ演算処理を行う機能を有する。アナログ演算処理を行う機能を有することにより、アナログデータをデジタルデータに変換することなく、或いはアナログデータをデジタルデータに変換する頻度を極力抑えつつ、演算処理を行うことができる。よって、膨大な量の演算処理を少なくすることができ、演算回路の規模を小さく抑えることができる。また、演算処理に要する時間を抑えることができる。
【0197】
図16に、積和演算回路の一例として、半導体装置107のブロック図を示す。
図16に示す半導体装置107は、記憶回路11(MEM)と、参照用記憶回路12(RMEM)と、回路13と、回路14と、を有する。半導体装置107は、さらに電流源回路15(CREF)を有していても良い。
【0198】
記憶回路11(MEM)は、メモリセルMC[i、j]、メモリセルMC[i+1、j]で例示されるメモリセルMCを有する。また、各メモリセルMCは、入力された電位を電流に変換する機能を有する素子を有する。上記機能を有する素子として、例えばトランジスタなどの能動素子を用いることができる。
図16では、各メモリセルMCがトランジスタTr21を有する場合を例示している。
【0199】
メモリセルMCには、配線WD[j]で例示される配線WDから第1のアナログ電位が入力される。第1のアナログ電位は第1のアナログデータに対応する。そして、メモリセルMCは、第1のアナログ電位に応じた第1のアナログ電流を生成する機能を有する。具体的には、トランジスタTr21のゲートに第1のアナログ電位を供給したときに得られるトランジスタTr21のドレイン電流を、第1のアナログ電流とすることができる。なお、以下、メモリセルMC[i、j]に流れる電流をI[i、j]とし、メモリセルMC[i+1、j]に流れる電流をI[i+1、j]とする。
【0200】
なお、トランジスタTr21が飽和領域で動作する場合、そのドレイン電流はソースとドレイン間の電圧に依存せず、ゲート電圧と閾値電圧の差分によって制御される。よって、トランジスタTr21は飽和領域で動作させることが望ましい。トランジスタTr21を飽和領域で動作させるために、そのゲート電圧、ソースとドレイン間の電圧は、飽和領域で動作する範囲の電圧に適切に設定されているものとする。
【0201】
具体的に、
図16に示す半導体装置107では、メモリセルMC[i、j]に配線WD[j]から第1のアナログ電位Vx[i、j]が入力される。メモリセルMC[i、j]は、第1のアナログ電位Vx[i、j]に応じた第1のアナログ電流を生成する機能を有する。すなわち、この場合、メモリセルMC[i、j]の電流I[i、j]は、第1のアナログ電流に相当する。
【0202】
また、具体的に、
図16に示す半導体装置107では、メモリセルMC[i+1、j]に配線WD[j]から第1のアナログ電位Vx[i+1、j]が入力される。メモリセルMC[i+1、j]は、第1のアナログ電位Vx[i+1、j]に応じた第1のアナログ電流を生成する機能を有する。すなわち、この場合、メモリセルMC[i+1、j]の電流I[i+1、j]は、第1のアナログ電流に相当する。
【0203】
そして、メモリセルMCは、第1のアナログ電位を保持する機能を有する。すなわち、メモリセルMCは、第1のアナログ電位を保持することで、第1のアナログ電位に応じた第1のアナログ電流を保持する機能を有すると言える。
【0204】
また、メモリセルMCには、配線RW[i]、配線RW[i+1]で例示される配線RWから第2のアナログ電位が入力される。第2のアナログ電位は第2のアナログデータに対応する。メモリセルMCは、既に保持されている第1のアナログ電位に、第2のアナログ電位を加算する機能と、加算することで得られる第3のアナログ電位を保持する機能とを有する。そして、メモリセルMCは、第3のアナログ電位に応じた第2のアナログ電流を生成する機能を有する。すなわち、メモリセルMCは、第3のアナログ電位を保持することで、第3のアナログ電位に応じた第2のアナログ電流を保持する機能を有すると言える。
【0205】
具体的に、
図16に示す半導体装置107では、メモリセルMC[i、j]に配線RW[i]から第2のアナログ電位Vw[i、j]が入力される。そして、メモリセルMC[i、j]は、第1のアナログ電位Vx[i、j]及び第2のアナログ電位Vw[i、j]に応じた第3のアナログ電位を保持する機能を有する。そして、メモリセルMC[i、j]は、第3のアナログ電位に応じた第2のアナログ電流を生成する機能を有する。すなわち、この場合、メモリセルMC[i、j]の電流I[i、j]は、第2のアナログ電流に相当する。
【0206】
また、
図16に示す半導体装置107では、メモリセルMC[i+1、j]に配線RW[i+1]から第2のアナログ電位Vw[i+1、j]が入力される。そして、メモリセルMC[i+1、j]は、第1のアナログ電位Vx[i+1、j]及び第2のアナログ電位Vw[i+1、j]に応じた第3のアナログ電位を保持する機能を有する。そして、メモリセルMC[i+1、j]は、第3のアナログ電位に応じた第2のアナログ電流を生成する機能を有する。すなわち、この場合、メモリセルMC[i+1、j]の電流I[i+1、j]は、第2のアナログ電流に相当する。
【0207】
そして、電流I[i、j]は、メモリセルMC[i、j]を介して配線BL[j]と配線VR[j]の間を流れる。電流I[i+1、j]は、メモリセルMC[i+1、j]を介して配線BL[j]と配線VR[j]の間を流れる。よって、電流I[i、j]と電流I[i+1、j]との和に相当する電流I[j]が、メモリセルMC[i、j]及びメモリセルMC[i+1、j]を介して配線BL[j]と配線VR[j]の間を流れることとなる。
【0208】
参照用記憶回路12(RMEM)は、メモリセルMCR[i]、メモリセルMCR[i+1]で例示されるメモリセルMCRを有する。メモリセルMCRには、配線WDREFから第1の参照電位VPRが入力される。そして、メモリセルMCRは、第1の参照電位VPRに応じた第1の参照電流を生成する機能を有する。なお、以下、メモリセルMCR[i]に流れる電流をIREF[i]とし、メモリセルMCR[i+1]に流れる電流をIREF[i+1]とする。
【0209】
そして、具体的に、
図16に示す半導体装置107では、メモリセルMCR[i]に配線WDREFから第1の参照電位VPRが入力される。メモリセルMCR[i]は、第1の参照電位VPRに応じた第1の参照電流を生成する機能を有する。すなわち、この場合、メモリセルMCR[i]の電流IREF[i]は、第1の参照電流に相当する。
【0210】
また、
図16に示す半導体装置107では、メモリセルMCR[i+1]に配線WDREFから第1の参照電位VPRが入力される。メモリセルMCR[i+1]は、第1の参照電位VPRに応じた第1の参照電流を生成する機能を有する。すなわち、この場合、メモリセルMCR[i+1]の電流IREF[i+1]は、第1の参照電流に相当する。
【0211】
そして、メモリセルMCRは、第1の参照電位VPRを保持する機能を有する。すなわち、メモリセルMCRは、第1の参照電位VPRを保持することで、第1の参照電位VPRに応じた第1の参照電流を保持する機能を有すると言える。
【0212】
また、メモリセルMCRには、配線RW[i]、配線RW[i+1]で例示される配線RWから第2のアナログ電位が入力される。メモリセルMCRは、既に保持されている第1の参照電位VPRに、第2のアナログ電位を加算し、加算することで得られる第2の参照電位を保持する機能を有する。そして、メモリセルMCRは、第2の参照電位に応じた第2の参照電流を生成する機能を有する。すなわち、メモリセルMCRは、第2の参照電位を保持することで、第2の参照電位に応じた第2の参照電流を保持する機能を有すると言える。
【0213】
具体的に、
図16に示す半導体装置107では、メモリセルMCR[i]に配線RW[i]から第2のアナログ電位Vw[i、j]が入力される。そして、メモリセルMCR[i]は、第1の参照電位VPR及び第2のアナログ電位Vw[i、j]に応じた第2の参照電位を保持する機能を有する。そして、メモリセルMCR[i]は、第2の参照電位に応じた第2の参照電流を生成する機能を有する。すなわち、この場合、メモリセルMCR[i]の電流IREF[i]は、第2の参照電流に相当する。
【0214】
また、
図16に示す半導体装置107では、メモリセルMCR[i+1]に配線RW[i+1]から第2のアナログ電位Vw[i+1、j]が入力される。そして、メモリセルMCR[i+1]は、第1の参照電位VPR及び第2のアナログ電位Vw[i+1、j]に応じた第2の参照電位を保持する機能を有する。そして、メモリセルMCR[i+1]は、第2の参照電位に応じた第2の参照電流を生成する機能を有する。すなわち、この場合、メモリセルMCR[i+1]の電流IREF[i+1]は、第2の参照電流に相当する。
【0215】
そして、電流IREF[i]は、メモリセルMCR[i]を介して配線BLREFと配線VRREFの間を流れる。電流IREF[i+1]は、メモリセルMCR[i+1]を介して配線BLREFと配線VRREFの間を流れる。よって、電流IREF[i]と電流IREF[i+1]との和に相当する電流IREFが、メモリセルMCR[i]及びメモリセルMCR[i+1]を介して配線BLREFと配線VRREFの間を流れることとなる。
【0216】
電流源回路15は、配線BLREFに流れる電流IREFと同じ値の電流、もしくは電流IREFに対応する電流を、配線BLに供給する機能を有する。そして、後述するオフセットの電流を設定する際には、メモリセルMC[i、j]及びメモリセルMC[i+1、j]を介して配線BL[j]と配線VR[j]の間を流れる電流I[j]が、メモリセルMCR[i]及びメモリセルMCR[i+1]を介して配線BLREFと配線VRREFの間を流れる電流IREFと異なる場合、差分の電流は回路13または回路14に流れる。回路13は電流ソース回路としての機能を有し、回路14は電流シンク回路としての機能を有する。
【0217】
具体的に、電流I[j]が電流IREFよりも大きい場合、回路13は、電流I[j]と電流IREFの差分に相当する電流ΔI[j]を生成する機能を有する。また、回路13は、生成した電流ΔI[j]を配線BL[j]に供給する機能を有する。すなわち、回路13は、電流ΔI[j]を保持する機能を有すると言える。
【0218】
また、電流I[j]が電流IREFよりも小さい場合、回路14は、電流I[j]と電流IREFの差分に相当する電流ΔI[j]を生成する機能を有する。また、回路14は、生成した電流ΔI[j]を配線BL[j]から引き込む機能を有する。すなわち、回路14は、電流ΔI[j]を保持する機能を有すると言える。
【0219】
次いで、
図16に示す半導体装置107の動作の一例について説明する。
【0220】
まず、メモリセルMC[i、j]に第1のアナログ電位に応じた電位を格納する。具体的には、第1の参照電位VPRから第1のアナログ電位Vx[i、j]を差し引いた電位VPR-Vx[i、j]が、配線WD[j]を介してメモリセルMC[i、j]に入力される。メモリセルMC[i、j]では、電位VPR-Vx[i、j]が保持される。また、メモリセルMC[i、j]では、電位VPR-Vx[i、j]に応じた電流I[i、j]が生成される。例えば、第1の参照電位VPRは、接地電位よりも高いハイレベルの電位とする。具体的には、接地電位よりも高く、電流源回路15に供給されるハイレベルの電位VDDと同程度か、それ以下の電位であることが望ましい。
【0221】
また、メモリセルMCR[i]に第1の参照電位VPRを格納する。具体的には、電位VPRが、配線WDREFを介してメモリセルMCR[i]に入力される。メモリセルMCR[i]では、電位VPRが保持される。また、メモリセルMCR[i]では、電位VPRに応じた電流IREF[i]が生成される。
【0222】
また、メモリセルMC[i+1、j]に第1のアナログ電位に応じた電位を格納する。具体的には、第1の参照電位VPRから第1のアナログ電位Vx[i+1、j]を差し引いた電位VPR-Vx[i+1、j]が、配線WD[j]を介してメモリセルMC[i+1、j]に入力される。メモリセルMC[i+1、j]では、電位VPR-Vx[i+1、j]が保持される。また、メモリセルMC[i+1、j]では、電位VPR-Vx[i+1、j]に応じた電流I[i+1、j]が生成される。
【0223】
また、メモリセルMCR[i+1]に第1の参照電位VPRを格納する。具体的には、電位VPRが、配線WDREFを介してメモリセルMCR[i+1]に入力される。メモリセルMCR[i+1]では、電位VPRが保持される。また、メモリセルMCR[i+1]では、電位VPRに応じた電流IREF[i+1]が生成される。
【0224】
上記動作において、配線RW[i]及び配線RW[i+1]は基準電位とする。例えば、基準電位として接地電位、接地電位よりも低いローレベルの電位VSSなどを用いることができる。或いは、基準電位として電位VSSと電位VDDの間の電位を用いると、第2のアナログ電位Vwを正負にしても、配線RWの電位を接地電位よりも高くできるので信号の生成を容易にすることができ、正負のアナログデータに対する積演算が可能になるので好ましい。
【0225】
上記動作により、配線BL[j]には、配線BL[j]に電気的に接続されたメモリセルMCにおいてそれぞれ生成される電流を合わせた電流が、流れることとなる。具体的に
図16では、メモリセルMC[i、j]で生成される電流I[i、j]と、メモリセルMC[i+1、j]で生成される電流I[i+1、j]とを合わせた電流I[j]が流れる。また、上記動作により、配線BLREFには、配線BLREFに電気的に接続されたメモリセルMCRにおいてそれぞれ生成される電流を合わせた電流が、流れることとなる。具体的に
図16では、メモリセルMCR[i]で生成される電流IREF[i]と、メモリセルMCR[i+1]で生成される電流IREF[i+1]とを合わせた電流IREFが流れる。
【0226】
次いで、配線RW[i]及び配線RW[i+1]の電位を基準電位としたまま、第1のアナログ電位を入力することによって得られる電流I[j]と第1の参照電位を入力することによって得られる電流IREFとの差分から得られるオフセットの電流Ioffset[j]を、回路13または回路14において保持する。
【0227】
具体的に、電流I[j]が電流IREFよりも大きい場合、回路13は電流Ioffset[j]を配線BL[j]に供給する。すなわち、回路13に流れる電流ICM[j]は電流Ioffset[j]に相当することとなる。そして、当該電流ICM[j]の値は回路13において保持される。また、電流I[j]が電流IREFよりも小さい場合、回路14は電流Ioffset[j]を配線BL[j]から引き込む。すなわち、回路14に流れる電流ICP[j]は電流Ioffset[j]に相当することとなる。そして、当該電流ICP[j]の値は回路14において保持される。
【0228】
次いで、既にメモリセルMC[i、j]において保持されている第1のアナログ電位に加算するように、第2のアナログ電位をメモリセルMC[i、j]に格納する。具体的には、配線RW[i]の電位を基準電位に対してVw[i]だけ高い電位とすることで、第2のアナログ電位Vw[i]が、配線RW[i]を介してメモリセルMC[i、j]に入力される。メモリセルMC[i、j]では、電位VPR-Vx[i、j]+Vw[i]が保持される。また、メモリセルMC[i、j]では、電位VPR-Vx[i、j]+Vw[i]に応じた電流I[i、j]が生成される。
【0229】
また、既にメモリセルMC[i+1、j]において保持されている第1のアナログ電位に加算するように、第2のアナログ電位をメモリセルMC[i+1、j]に格納する。具体的には、配線RW[i+1]の電位を基準電位に対してVw[i+1]だけ高い電位とすることで、第2のアナログ電位Vw[i+1]が、配線RW[i+1]を介してメモリセルMC[i+1、j]に入力される。メモリセルMC[i+1、j]では、電位VPR-Vx[i+1、j]+Vw[i+1]が保持される。また、メモリセルMC[i+1、j]では、電位VPR-Vx[i+1、j]+Vw[i+1]に応じた電流I[i+1、j]が生成される。
【0230】
なお、電位を電流に変換する素子として飽和領域で動作するトランジスタTr21を用いる場合、配線RW[i]の電位がVw[i]であり、配線RW[i+1]の電位がVw[i+1]であると仮定すると、メモリセルMC[i、j]が有するトランジスタTr21のドレイン電流が電流I[i、j]に相当するので、第2のアナログ電流は以下の式b9で表される。なお、kは係数、VthはトランジスタTr21の閾値電圧である。
【0231】
I[i、j]=k(Vw[i]-Vth+VPR-Vx[i、j])2 (b9)
【0232】
また、メモリセルMCR[i]が有するトランジスタTr21のドレイン電流が電流IREF[i]に相当するので、第2の参照電流は以下の式b10で表される。
【0233】
IREF[i]=k(Vw[i]-Vth+VPR)2 (b10)
【0234】
そして、メモリセルMC[i、j]に流れる電流I[i、j]と、メモリセルMC[i+1、j]に流れる電流I[i+1、j]の和に相当する電流I[j]は、I[j]=ΣiI[i、j]であり、メモリセルMCR[i]に流れる電流IREF[i]と、メモリセルMCR[i+1]に流れる電流IREF[i+1]の和に相当する電流IREFは、IREF=ΣiIREF[i]となり、その差分に相当する電流ΔI[j]は以下の式b11で表される。
【0235】
ΔI[j]=IREF-I[j]=ΣiIREF[i]-ΣiI[i、j] (b11)
【0236】
式b9、式b10、式b11から、電流ΔI[j]は以下の式b12のように導き出される。
【0237】
ΔI[j]
=Σi{k(Vw[i]-Vth+VPR)2-k(Vw[i]-Vth+VPR-Vx[i、j])2}
=2kΣi(Vw[i]・Vx[i、j])-2kΣi(Vth-VPR)・Vx[i、j]-kΣiVx[i、j]2 (b12)
【0238】
式b12において、2kΣi(Vw[i]・Vx[i、j])で示される項は、第1のアナログ電位Vx[i、j]及び第2のアナログ電位Vw[i]の積と、第1のアナログ電位Vx[i+1、j]及び第2のアナログ電位Vw[i+1]の積と、の和に相当する。
【0239】
また、電流Ioffset[j]は、配線RWの電位を全て基準電位としたとき、すなわち第2のアナログ電位Vw[i]を0、第2のアナログ電位Vw[i+1]を0としたときの電流ΔI[j]とすると、式b12から、以下の式b13が導き出される。
【0240】
Ioffset[j]=-2kΣi(Vth-VPR)・Vx[i、j]-kΣiVx[i、j]2 (b13)
【0241】
したがって、式b11乃至式b13から、第1のアナログデータと第2のアナログデータの積和値に相当する2kΣi(Vw[i]・Vx[i、j])は、以下の式b14で表されることが分かる。
【0242】
2kΣi(Vw[i]・Vx[i、j])=IREF-I[j]-Ioffset[j] (b14)
【0243】
そして、メモリセルMCに流れる電流の和を電流I[j]、メモリセルMCRに流れる電流の和を電流IREF、回路13または回路14に流れる電流を電流Ioffset[j]とすると、配線RW[i]の電位をVw[i]、配線RW[i+1]の電位をVw[i+1]としたときに配線BL[j]から流れ出る電流Iout[j]は、IREF-I[j]-Ioffset[j]で表される。式b14から、電流Iout[j]は、2kΣi(Vw[i]・Vx[i、j])であり、第1のアナログ電位Vx[i、j]及び第2のアナログ電位Vw[i]の積と、第1のアナログ電位Vx[i+1、j]及び第2のアナログ電位Vw[i+1]の積と、の和に相当することが分かる。
【0244】
なお、トランジスタTr21は飽和領域で動作させることが望ましいが、トランジスタTr21の動作領域が理想的な飽和領域と異なっていたとしても、第1のアナログ電位Vx[i、j]及び第2のアナログ電位Vw[i]の積と、第1のアナログ電位Vx[i+1、j]及び第2のアナログ電位Vw[i+1]の積との和に相当する電流を、所望の範囲内の精度で問題なく得ることができる場合は、トランジスタTr21は飽和領域で動作しているものとみなせる。
【0245】
例えば、j列目のメモリセルMC[1、j]乃至[M、j]に第l層の各ニューロンの重み係数wn1
(l)乃至wnM
(l)を第1のアナログデータとしてそれぞれ格納し、配線RW[1]乃至配線RW[M]を介して第(l-1)層のニューロンの出力z1
(l-1)乃至出力zM
(l-1)をメモリセルMC[1、j]乃至メモリセルMC[M、j]に第2のアナログデータとしてそれぞれ入力する。上記動作により、第l層の第nのニューロンへの入力の総和(ネット値)un
(l)を、電流ΔIout[j]から得ることができる。従って、半導体装置107を用いることにより、式b1の演算を行うことができる。
【0246】
例えば、j列目のメモリセルMC[1、j]乃至[M、j]に第(l+1)層の各ニューロンの重み係数wn1
(l+1)乃至wnM
(l+1)を第1のアナログデータとしてそれぞれ格納し、配線RW[1]乃至配線RW[M]を介して第l層のニューロンの出力z1
l乃至出力zM
lをメモリセルMC[1、j]乃至メモリセルMC[M、j]に第2のアナログデータとしてそれぞれ入力する。上記動作により、第(l+1)層の第kのニューロンへの入力の総和(ネット値)uk
(l+1)を、電流ΔIout[j]から得ることができる。従って、半導体装置107を用いることにより、式b3の演算を行うことができる。
【0247】
例えば、j列目のメモリセルMC[1、j]乃至[K、j]に第(l+1)層の各ニューロンの重み係数wn1
(l+1)乃至wnK
(l+1)を第1のアナログデータとしてそれぞれ格納し、配線RW[1]乃至配線RW[K]を介して第(l+1)層のニューロンの誤差δ1
(l+1)乃至δK
(l+1)をメモリセルMC[1、j]乃至[K、j]に第2のアナログデータとしてそれぞれ入力する。上記動作により、式b5におけるΣkδk
(l+1)・wkn
(l+1)の値を、電流ΔIout[j]から得ることができる。従って、半導体装置107を用いることにより、式b5の演算の一部を行うことができる。
【0248】
本発明の一態様により、アナログデータの演算処理をデジタルデータに変換せずとも実行することができるので、演算回路の回路規模を小さく抑えることができる。或いは、本発明の一態様により、アナログデータの演算処理をデジタルデータに変換せずとも実行することができるので、アナログデータの演算処理に要する時間を抑えることができる。或いは、本発明の一態様により、アナログデータの演算処理に要する時間を抑えつつ、演算回路の低消費電力化を実現することができる。
【0249】
次いで、記憶回路11(MEM)と、参照用記憶回路12(RMEM)の具体的な構成の一例について、
図17を用いて説明する。
【0250】
図17では、記憶回路11(MEM)がy行x列(x、yは自然数)の複数のメモリセルMCを有し、参照用記憶回路12(RMEM)がy行1列の複数のメモリセルMCRを有する場合を例示している。
【0251】
記憶回路11は、配線RWと、配線WWと、配線WDと、配線VRと、配線BLとに電気的に接続されている。
図17では、配線RW[1]乃至配線RW[y]が各行のメモリセルMCにそれぞれ電気的に接続され、配線WW[1]乃至配線WW[y]が各行のメモリセルMCにそれぞれ電気的に接続され、配線WD[1]乃至配線WD[x]が各列のメモリセルMCにそれぞれ電気的に接続され、配線BL[1]乃至配線BL[x]が各列のメモリセルMCにそれぞれ電気的に接続されている場合を例示している。また、
図17では、配線VR[1]乃至配線VR[x]が各列のメモリセルMCにそれぞれ電気的に接続されている場合を例示している。なお、配線VR[1]乃至配線VR[x]は、互いに電気的に接続されていても良い。
【0252】
そして、参照用記憶回路12は、配線RWと、配線WWと、配線WDREFと、配線VRREFと、配線BLREFとに電気的に接続されている。
図17では、配線RW[1]乃至配線RW[y]が各行のメモリセルMCRにそれぞれ電気的に接続され、配線WW[1]乃至配線WW[y]が各行のメモリセルMCRにそれぞれ電気的に接続され、配線WDREFが一列のメモリセルMCRにそれぞれ電気的に接続され、配線BLREFが一列のメモリセルMCRにそれぞれ電気的に接続され、配線VRREFが一列のメモリセルMCRにそれぞれ電気的に接続されている場合を例示している。なお、配線VRREFは、配線VR[1]乃至配線VR[x]に電気的に接続されていても良い。
【0253】
次いで、
図17に示した複数のメモリセルMCのうち、任意の2行2列のメモリセルMCと、
図17に示した複数のメモリセルMCRのうち、任意の2行1列のメモリセルMCRとの、具体的な回路構成と接続関係とを、一例として
図18に示す。
【0254】
具体的に
図18では、i行j列目のメモリセルMC[i、j]と、i+1行j列目のメモリセルMC[i+1、j]と、i行j+1列目のメモリセルMC[i、j+1]と、i+1行j+1列目のメモリセルMC[i+1、j+1]とを図示している。また、具体的に
図18では、i行目のメモリセルMCR[i]と、i+1行目のメモリセルMCR[i+1]とを図示している。なお、iは1からy-1までの任意の数で、jは1からx-1までの任意の数とする。
【0255】
i行目のメモリセルMC[i、j]と、メモリセルMC[i、j+1]と、メモリセルMCR[i]は、配線RW[i]及び配線WW[i]に電気的に接続されている。また、i+1行目のメモリセルMC[i+1、j]と、メモリセルMC[i+1、j+1]と、メモリセルMCR[i+1]は、配線RW[i+1]及び配線WW[i+1]に電気的に接続されている。
【0256】
j列目のメモリセルMC[i、j]と、メモリセルMC[i+1、j]は、配線WD[j]、配線VR[j]、及び配線BL[j]に電気的に接続されている。また、j+1列目のメモリセルMC[i、j+1]と、メモリセルMC[i+1、j+1]は、配線WD[j+1]、配線VR[j+1]、及び配線BL[j+1]に電気的に接続されている。また、メモリセルMCR[i]と、i+1行目のメモリセルMCR[i+1]は、配線WDREF、配線VRREF、及び配線BLREFに電気的に接続されている。
【0257】
そして、各メモリセルMCと各メモリセルMCRは、トランジスタTr21と、トランジスタTr22と、容量素子C21と、を有する。トランジスタTr22は、メモリセルMCまたはメモリセルMCRへの第1のアナログ電位の入力を制御する機能を有する。トランジスタTr21は、ゲートに入力された電位に従って、アナログ電流を生成する機能を有する。容量素子C21は、メモリセルMCまたはメモリセルMCRにおいて保持されている第1のアナログ電位に、第2のアナログ電位を加算する機能を有する。
【0258】
具体的に、
図18に示すメモリセルMCでは、トランジスタTr22は、ゲートが配線WWに電気的に接続され、ソース又はドレインの一方が配線WDに電気的に接続され、ソース又はドレインの他方がトランジスタTr21のゲートに電気的に接続されている。また、トランジスタTr21は、ソース又はドレインの一方が配線VRに電気的に接続され、ソース又はドレインの他方が配線BLに電気的に接続されている。容量素子C21は、第1の電極が配線RWに電気的に接続され、第2の電極がトランジスタTr21のゲートに電気的に接続されている。
【0259】
また、
図18に示すメモリセルMCRでは、トランジスタTr22は、ゲートが配線WWに電気的に接続され、ソース又はドレインの一方が配線WDREFに電気的に接続され、ソース又はドレインの他方がトランジスタTr21のゲートに電気的に接続されている。また、トランジスタTr21は、ソース又はドレインの一方が配線VRREFに電気的に接続され、ソース又はドレインの他方が配線BLREFに電気的に接続されている。容量素子C21は、第1の電極が配線RWに電気的に接続され、第2の電極がトランジスタTr21のゲートに電気的に接続されている。
【0260】
メモリセルMCにおいてトランジスタTr21のゲートをノードNとすると、メモリセルMCでは、トランジスタTr22を介してノードNに第1のアナログ電位が入力され、次いでトランジスタTr22がオフになるとノードNが浮遊状態になり、ノードNにおいて第1のアナログ電位が保持される。また、メモリセルMCでは、ノードNが浮遊状態になると、容量素子C21の第1の電極に入力された第2のアナログ電位がノードNに与えられる。上記動作により、ノードNは、第1のアナログ電位に、第2のアナログ電位が加算されることで得られる電位となる。
【0261】
なお、容量素子C21の第1の電極の電位は容量素子C21を介してノードNに与えられるため、実際には、第1の電極の電位の変化量がそのままノードNの電位の変化量に反映されるわけではない。具体的には、容量素子C21の容量値と、トランジスタTr21のゲート容量の容量値と、寄生容量の容量値とから一意に決まる結合係数を、第1の電極の電位の変化量に乗ずることで、ノードNの電位の変化量を正確に算出することができる。以下、説明を分かり易くするために、第1の電極の電位の変化量がほぼノードNの電位の変化量に反映されるものとして説明を行う。
【0262】
トランジスタTr21は、ノードNの電位にしたがってそのドレイン電流が定まる。よって、トランジスタTr22がオフになることでノードNの電位が保持されると、トランジスタTr21のドレイン電流の値も保持される。上記ドレイン電流には第1のアナログ電位と第2のアナログ電位が反映されている。
【0263】
また、メモリセルMCRにおいてトランジスタTr21のゲートをノードNREFとすると、メモリセルMCRでは、トランジスタTr22を介してノードNREFに第1の参照電位が入力され、次いでトランジスタTr22がオフになるとノードNREFが浮遊状態になり、ノードNREFにおいて第1の参照電位が保持される。また、メモリセルMCRでは、ノードNREFが浮遊状態になると、容量素子C21の第1の電極に入力された第2のアナログ電位がノードNREFに与えられる。上記動作により、ノードNREFは、第1の参照電位に、第2のアナログ電位が加算されることで得られる電位となる。
【0264】
トランジスタTr21は、ノードNREFの電位にしたがってそのドレイン電流が定まる。よって、トランジスタTr22がオフになることでノードNREFの電位が保持されると、トランジスタTr21のドレイン電流の値も保持される。上記ドレイン電流には第1の参照電位と第2のアナログ電位が反映されている。
【0265】
メモリセルMC[i、j]のトランジスタTr21に流れるドレイン電流を電流I[i、j]とし、メモリセルMC[i+1、j]のトランジスタTr21に流れるドレイン電流を電流I[i+1、j]とすると、配線BL[j]からメモリセルMC[i、j]及びメモリセルMC[i+1、j]に供給される電流の和は、電流I[j]となる。また、メモリセルMC[i、j+1]のトランジスタTr21に流れるドレイン電流を電流I[i、j+1]とし、メモリセルMC[i+1、j+1]のトランジスタTr21に流れるドレイン電流を電流I[i+1、j+1]とすると、配線BL[j+1]からメモリセルMC[i、j+1]及びメモリセルMC[i+1、j+1]に供給される電流の和は、電流I[j+1]となる。また、メモリセルMCR[i]のトランジスタTr21に流れるドレイン電流を電流IREF[i]とし、メモリセルMCR[i+1]のトランジスタTr21に流れるドレイン電流を電流IREF[i+1]とすると、配線BLREFからメモリセルMCR[i]及びメモリセルMCR[i+1]に供給される電流の和は、電流IREFとなる。
【0266】
次いで、回路13と、回路14と、電流源回路15(CREF)の具体的な構成の一例について、
図19を用いて説明する。
【0267】
図19では、
図18に示すメモリセルMCとメモリセルMCRに対応した、回路13、回路14、電流源回路15の構成の一例を示している。具体的に、
図19に示す回路13は、j列目のメモリセルMCに対応した回路13[j]と、j+1列目のメモリセルMCに対応した回路13[j+1]とを有する。また、
図19に示す回路14は、j列目のメモリセルMCに対応した回路14[j]と、j+1列目のメモリセルMCに対応した回路14[j+1]とを有する。
【0268】
そして、回路13[j]及び回路14[j]は、配線BL[j]に電気的に接続されている。また、回路13[j+1]及び回路14[j+1]は、配線BL[j+1]に電気的に接続されている。
【0269】
電流源回路15は、配線BL[j]、配線BL[j+1]、配線BLREFに電気的に接続されている。そして、電流源回路15は、配線BLREFに電流IREFを供給する機能と、電流IREFと同じ電流または電流IREFに応じた電流を、配線BL[j]及び配線BL[j+1]のそれぞれに供給する機能を有する。
【0270】
具体的に、回路13[j]及び回路13[j+1]は、トランジスタTr27乃至Tr29と、容量素子C23とをそれぞれ有する。オフセットの電流を設定する際に、回路13[j]において、トランジスタTr27は、電流I[j]が電流IREFよりも大きい場合に、電流I[j]と電流IREFの差分に相当する電流ICM[j]を生成する機能を有する。また、回路13[j+1]において、トランジスタTr27は、電流I[j+1]が電流IREFよりも大きい場合に、電流I[j+1]と電流IREFの差分に相当する電流ICM[j+1]を生成する機能を有する。電流ICM[j]及び電流ICM[j+1]は、回路13[j]及び回路13[j+1]から配線BL[j]及び配線BL[j+1]に供給される。
【0271】
そして、回路13[j]及び回路13[j+1]において、トランジスタTr27は、ソース又はドレインの一方が対応する配線BLに電気的に接続されており、ソース又はドレインの他方が所定の電位が供給される配線に電気的に接続されている。トランジスタTr28は、ソース又はドレインの一方が配線BLに電気的に接続されており、ソース又はドレインの他方がトランジスタTr27のゲートに電気的に接続されている。トランジスタTr29は、ソース又はドレインの一方がトランジスタTr27のゲートに電気的に接続されており、ソース又はドレインの他方が所定の電位が供給される配線に電気的に接続されている。容量素子C23は、第1の電極がトランジスタTr27のゲートに電気的に接続されており、第2の電極が所定の電位が供給される配線に電気的に接続されている。
【0272】
トランジスタTr28のゲートは配線OSMに電気的に接続されており、トランジスタTr29のゲートは配線ORMに電気的に接続されている。
【0273】
なお、
図19では、トランジスタTr27がpチャネル型であり、トランジスタTr28及びTr29がnチャネル型である場合を例示している。
【0274】
また、回路14[j]及び回路14[j+1]は、トランジスタTr24乃至Tr26と、容量素子C22とをそれぞれ有する。オフセットの電流を設定する際に、回路14[j]において、トランジスタTr24は、電流I[j]が電流IREFよりも小さい場合に、電流I[j]と電流IREFの差分に相当する電流ICP[j]を生成する機能を有する。また、回路14[j+1]において、トランジスタTr24は、電流I[j+1]が電流IREFよりも小さい場合に、電流I[j+1]と電流IREFの差分に相当する電流ICP[j+1]を生成する機能を有する。電流ICP[j]及び電流ICP[j+1]は、配線BL[j]及び配線BL[j+1]から回路14[j]及び回路14[j+1]に引き込まれる。
【0275】
なお、電流ICM[j]と電流ICP[j]とが、電流Ioffset[j]に相当する。また、電流ICM[j+1]と電流ICP[j+1]とが、電流Ioffset[j+1]に相当する。
【0276】
そして、回路14[j]及び回路14[j+1]において、トランジスタTr24は、ソース又はドレインの一方が対応する配線BLに電気的に接続されており、ソース又はドレインの他方が所定の電位が供給される配線に電気的に接続されている。トランジスタTr25は、ソース又はドレインの一方が配線BLに電気的に接続されており、ソース又はドレインの他方がトランジスタTr24のゲートに電気的に接続されている。トランジスタTr26は、ソース又はドレインの一方がトランジスタTr24のゲートに電気的に接続されており、ソース又はドレインの他方が所定の電位が供給される配線に電気的に接続されている。容量素子C22は、第1の電極がトランジスタTr24のゲートに電気的に接続されており、第2の電極が所定の電位が供給される配線に電気的に接続されている。
【0277】
トランジスタTr25のゲートは配線OSPに電気的に接続されており、トランジスタTr26のゲートは配線ORPに電気的に接続されている。
【0278】
なお、
図19では、トランジスタTr24乃至Tr26がnチャネル型である場合を例示している。
【0279】
また、電流源回路15は、配線BLに対応したトランジスタTr30と、配線BLREFに対応したトランジスタTr31とを有する。具体的に、
図19に示す電流源回路15は、トランジスタTr30として、配線BL[j]に対応したトランジスタTr30[j]と、配線BL[j+1]に対応したトランジスタTr30[j+1]とを有する場合を例示している。
【0280】
そして、トランジスタTr30のゲートは、トランジスタTr31のゲートに電気的に接続されている。また、トランジスタTr30は、ソース又はドレインの一方が対応する配線BLに電気的に接続されており、ソース又はドレインの他方が所定の電位が供給される配線に電気的に接続されている。トランジスタTr31は、ソース又はドレインの一方が配線BLREFに電気的に接続されており、ソース又はドレインの他方が所定の電位が供給される配線に電気的に接続されている。
【0281】
トランジスタTr30とトランジスタTr31とは、同じ極性を有している。
図19では、トランジスタTr30とトランジスタTr31とが、共にpチャネル型を有する場合を例示している。
【0282】
トランジスタTr31のドレイン電流は電流IREFに相当する。そして、トランジスタTr30とトランジスタTr31とはカレントミラー回路としての機能を有するため、トランジスタTr30のドレイン電流は、トランジスタTr31のドレイン電流とほぼ同じ値、またはトランジスタTr31のドレイン電流に応じた値となる。
【0283】
なお、
図19に示した回路13[j]と回路14[j]の間にスイッチを設けても良い。また、回路13[j+1]と回路14[j+1]の間にスイッチを設けても良い。或いは、電流源回路15が有するトランジスタTr31と、参照用記憶回路12との間にスイッチを設けても良い。
【0284】
次いで、
図18及び
図19を用いて、本発明の一態様に係る半導体装置107の具体的な動作の一例について説明する。
【0285】
図20は、
図18に示すメモリセルMC、メモリセルMCRと、
図19に示す回路13、回路14、電流源回路15の動作を示すタイミングチャートの一例に相当する。
図20では、時刻T01乃至時刻T04において、メモリセルMC及びメモリセルMCRに第1のアナログデータを格納する動作が行われる。時刻T05乃至時刻T10において、回路13及び回路14にオフセットの電流Ioffsetを設定する動作が行われる。時刻T11乃至時刻T16において、第1のアナログデータと第2のアナログデータとの積和値に対応したデータを取得する動作が行われる。
【0286】
なお、配線VR[j]及び配線VR[j+1]にはローレベルの電位が供給されるものとする。また、回路13に電気的に接続される所定の電位を有する配線は、全てハイレベルの電位VDDが供給されるものとする。また、回路14に電気的に接続される所定の電位を有する配線は、全てローレベルの電位VSSが供給されるものとする。また、電流源回路15に電気的に接続される所定の電位を有する配線は、全てハイレベルの電位VDDが供給されるものとする。
【0287】
また、トランジスタTr21、Tr24、Tr27、Tr30[j]、Tr30[j+1]、Tr31は飽和領域で動作するものとする。
【0288】
まず、時刻T01乃至時刻T02において、配線WW[i]にハイレベルの電位が与えられ、配線WW[i+1]にローレベルの電位が与えられる。上記動作により、
図18に示すメモリセルMC[i、j]、メモリセルMC[i、j+1]、メモリセルMCR[i]においてトランジスタTr22がオンになる。また、メモリセルMC[i+1、j]、メモリセルMC[i+1、j+1]、メモリセルMCR[i+1]においてトランジスタTr22がオフの状態を維持する。
【0289】
また、時刻T01乃至時刻T02では、
図18に示す配線WD[j]と配線WD[j+1]とに、第1の参照電位VPRから第1のアナログ電位を差し引いた電位がそれぞれ与えられる。具体的に、配線WD[j]には電位VPR-Vx[i、j]が与えられ、配線WD[j+1]には電位VPR-Vx[i、j+1]が与えられる。また、配線WDREFには第1の参照電位VPRが与えられ、配線RW[i]及び配線RW[i+1]には基準電位として電位VSSと電位VDDの間の電位、例えば電位(VDD+VSS)/2が与えられる。
【0290】
よって、
図18に示すメモリセルMC[i、j]のノードN[i、j]にはトランジスタTr22を介して電位VPR-Vx[i、j]が与えられ、メモリセルMC[i、j+1]のノードN[i、j+1]にはトランジスタTr22を介して電位VPR-Vx[i、j+1]が与えられ、メモリセルMCR[i]のノードNREF[i]にはトランジスタTr22を介して電位VPRが与えられる。
【0291】
時刻T02が終了すると、
図18に示す配線WW[i]に与えられる電位はハイレベルからローレベルに変化し、メモリセルMC[i、j]、メモリセルMC[i、j+1]、メモリセルMCR[i]においてトランジスタTr22がオフになる。上記動作により、ノードN[i、j]には電位VPR-Vx[i、j]が保持され、ノードN[i、j+1]には電位VPR-Vx[i、j+1]が保持され、ノードNREF[i]には電位VPRが保持される。
【0292】
次いで、時刻T03乃至時刻T04において、
図18に示す配線WW[i]の電位はローレベルに維持され、配線WW[i+1]にハイレベルの電位が与えられる。上記動作により、
図18に示すメモリセルMC[i+1、j]、メモリセルMC[i+1、j+1]、メモリセルMCR[i+1]においてトランジスタTr22がオンになる。また、メモリセルMC[i、j]、メモリセルMC[i、j+1]、メモリセルMCR[i]においてトランジスタTr22がオフの状態を維持する。
【0293】
また、時刻T03乃至時刻T04では、
図18に示す配線WD[j]と配線WD[j+1]とに、第1の参照電位VPRから第1のアナログ電位を差し引いた電位がそれぞれ与えられる。具体的に、配線WD[j]には電位VPR-Vx[i+1、j]が与えられ、配線WD[j+1]には電位VPR-Vx[i+1、j+1]が与えられる。また、配線WDREFには第1の参照電位VPRが与えられ、配線RW[i]及び配線RW[i+1]には基準電位として電位VSSと電位VDDの間の電位、例えば電位(VDD+VSS)/2が与えられる。
【0294】
よって、
図18に示すメモリセルMC[i+1、j]のノードN[i+1、j]にはトランジスタTr22を介して電位VPR-Vx[i+1、j]が与えられ、メモリセルMC[i+1、j+1]のノードN[i+1、j+1]にはトランジスタTr22を介して電位VPR-Vx[i+1、j+1]が与えられ、メモリセルMCR[i+1]のノードNREF[i+1]にはトランジスタTr22を介して電位VPRが与えられる。
【0295】
時刻T04が終了すると、
図18に示す配線WW[i+1]に与えられる電位はハイレベルからローレベルに変化し、メモリセルMC[i+1、j]、メモリセルMC[i+1、j+1]、メモリセルMCR[i+1]においてトランジスタTr22がオフになる。上記動作により、ノードN[i+1、j]には電位VPR-Vx[i+1、j]が保持され、ノードN[i+1、j+1]には電位VPR-Vx[i+1、j+1]が保持され、ノードNREF[i+1]には電位VPRが保持される。
【0296】
次いで、時刻T05乃至時刻T06において、
図19に示す配線ORP及び配線ORMにハイレベルの電位が与えられる。
図19に示す回路13[j]及び回路13[j+1]では、配線ORMにハイレベルの電位が与えられることで、トランジスタTr29がオンになり、トランジスタTr27のゲートは電位VDDが与えられることでリセットされる。また、
図19に示す回路14[j]及び回路14[j+1]では、配線ORPにハイレベルの電位が与えられることで、トランジスタTr26がオンになり、トランジスタTr24のゲートは電位VSSが与えられることでリセットされる。
【0297】
時刻T06が終了すると、
図19に示す配線ORP及び配線ORMに与えられる電位はハイレベルからローレベルに変化し、回路13[j]及び回路13[j+1]においてトランジスタTr29がオフになり、回路14[j]及び回路14[j+1]においてトランジスタTr26がオフになる。上記動作により、回路13[j]及び回路13[j+1]においてトランジスタTr27のゲートに電位VDDが保持され、回路14[j]及び回路14[j+1]においてトランジスタTr24のゲートに電位VSSが保持される。
【0298】
次いで、時刻T07乃至時刻T08において、
図19に示す配線OSPにハイレベルの電位が与えられる。また、
図18に示す配線RW[i]及び配線RW[i+1]には基準電位として電位VSSと電位VDDの間の電位、例えば電位(VDD+VSS)/2が与えられる。配線OSPにハイレベルの電位が与えられることにより、回路14[j]及び回路14[j+1]においてトランジスタTr25がオンになる。
【0299】
配線BL[j]に流れる電流I[j]が配線BLREFに流れる電流IREFよりも小さい場合、すなわち電流ΔI[j]が正の場合、
図18に示すメモリセルMC[i、j]のトランジスタTr21が引き込むことのできる電流と、メモリセルMC[i+1、j]のトランジスタTr21が引き込むことのできる電流との和が、トランジスタTr30[j]のドレイン電流より小さいことを意味する。よって、電流ΔI[j]が正の場合、回路14[j]においてトランジスタTr25がオンになると、トランジスタTr30[j]のドレイン電流の一部がトランジスタTr24のゲートに流れ込み、当該ゲートの電位が上昇し始める。そして、トランジスタTr24のドレイン電流が電流ΔI[j]とほぼ等しくなると、トランジスタTr24のゲートの電位は所定の値に収束する。このときのトランジスタTr24のゲートの電位は、トランジスタTr24のドレイン電流が電流ΔI[j]、すなわち電流Ioffset[j](=ICP[j])となる電位に相当する。つまり、回路14[j]のトランジスタTr24は、電流ICP[j]を流し得る電流源に設定された状態であると言える。
【0300】
同様に、配線BL[j+1]に流れる電流I[j+1]が配線BLREFに流れる電流IREFよりも小さい場合、つまり電流ΔI[j+1]が正の場合、回路14[j+1]においてトランジスタTr25がオンになると、トランジスタTr30[j+1]のドレイン電流の一部がトランジスタTr24のゲートに流れ込み、当該ゲートの電位が上昇し始める。そして、トランジスタTr24のドレイン電流が電流ΔI[j+1]とほぼ等しくなると、トランジスタTr24のゲートの電位は所定の値に収束する。このときのトランジスタTr24のゲートの電位は、トランジスタTr24のドレイン電流が電流ΔI[j+1]、すなわち電流Ioffset[j+1](=ICP[j+1])となる電位に相当する。つまり、回路14[j+1]のトランジスタTr24は、電流ICP[j+1]を流し得る電流源に設定された状態であると言える。
【0301】
時刻T08が終了すると、
図19に示す配線OSPに与えられる電位はハイレベルからローレベルに変化し、回路14[j]及び回路14[j+1]においてトランジスタTr25がオフになる。上記動作により、トランジスタTr24のゲートの電位は保持される。よって、回路14[j]は電流ICP[j]を流し得る電流源に設定された状態を維持し、回路14[j+1]は電流ICP[j+1]を流し得る電流源に設定された状態を維持する。
【0302】
次いで、時刻T09乃至時刻T10において、
図19に示す配線OSMにハイレベルの電位が与えられる。また、
図18に示す配線RW[i]及び配線RW[i+1]には基準電位として電位VSSと電位VDDの間の電位、例えば電位(VDD+VSS)/2が与えられる。配線OSMにハイレベルの電位が与えられることにより、回路13[j]及び回路13[j+1]においてトランジスタTr28がオンになる。
【0303】
配線BL[j]に流れる電流I[j]が配線BLREFに流れる電流IREFよりも大きい場合、すなわち電流ΔI[j]が負の場合、
図18に示すメモリセルMC[i、j]のトランジスタTr21が引き込むことのできる電流と、メモリセルMC[i+1、j]のトランジスタTr21が引き込むことのできる電流との和が、トランジスタTr30[j]のドレイン電流より大きいことを意味する。よって、電流ΔI[j]が負の場合、回路13[j]においてトランジスタTr28がオンになると、トランジスタTr27のゲートから配線BL[j]に電流が流れ出し、当該ゲートの電位が下降し始める。そして、トランジスタTr27のドレイン電流が電流ΔI[j]の絶対値とほぼ等しくなると、トランジスタTr27のゲートの電位は所定の値に収束する。このときのトランジスタTr27のゲートの電位は、トランジスタTr27のドレイン電流が電流ΔI[j]の絶対値、すなわち電流Ioffset[j](=ICM[j])となる電位に相当する。つまり、回路13[j]のトランジスタTr27は、電流ICM[j]を流し得る電流源に設定された状態であると言える。
【0304】
同様に、配線BL[j+1]に流れる電流I[j+1]が配線BLREFに流れる電流IREFよりも大きい場合、つまり電流ΔI[j+1]が負の場合、回路13[j+1]においてトランジスタTr28がオンになると、トランジスタTr27のゲートから配線BL[j+1]に電流が流れ出し、当該ゲートの電位が下降し始める。そして、トランジスタTr27のドレイン電流が電流ΔI[j+1]の絶対値とほぼ等しくなると、トランジスタTr27のゲートの電位は所定の値に収束する。このときのトランジスタTr27のゲートの電位は、トランジスタTr27のドレイン電流が電流ΔI[j+1]の絶対値、すなわち電流Ioffset[j+1](=ICM[j+1])となる電位に相当する。つまり、回路13[j+1]のトランジスタTr27は、電流ICM[j+1]を流し得る電流源に設定された状態であると言える。
【0305】
時刻T10が終了すると、
図19に示す配線OSMに与えられる電位はハイレベルからローレベルに変化し、回路13[j]及び回路13[j+1]においてトランジスタTr28がオフになる。上記動作により、トランジスタTr27のゲートの電位は保持される。よって、回路13[j]は電流ICM[j]を流し得る電流源に設定された状態を維持し、回路13[j+1]は電流ICM[j+1]を流し得る電流源に設定された状態を維持する。
【0306】
なお、回路14[j]及び回路14[j+1]において、トランジスタTr24は電流を引き込む機能を有する。そのため、時刻T07乃至時刻T08において配線BL[j]に流れる電流I[j]が配線BLREFに流れる電流IREFよりも大きく電流ΔI[j]が負の場合、或いは、配線BL[j+1]に流れる電流I[j+1]が配線BLREFに流れる電流IREFよりも大きく電流ΔI[j+1]が負の場合、回路14[j]または回路14[j+1]から過不足なく配線BL[j]または配線BL[j+1]に電流を供給するのが難しくなる恐れがある。この場合、配線BL[j]または配線BL[j+1]に流れる電流と、配線BLREFに流れる電流とのバランスを取るために、メモリセルMCのトランジスタTr21と、回路14[j]または回路14[j+1]のトランジスタTr24と、トランジスタTr30[j]またはTr30[j+1]とが、共に飽和領域で動作することが困難になる可能性がある。
【0307】
時刻T07乃至時刻T08において電流ΔI[j]が負の場合でも、トランジスタTr21、Tr24、Tr30[j]またはTr30[j+1]における飽和領域での動作を確保するために、時刻T05乃至時刻T06において、トランジスタTr27のゲートを電位VDDにリセットするのではなく、トランジスタTr27のゲートの電位を所定のドレイン電流が得られる程度の高さに設定しておいても良い。上記構成により、トランジスタTr30[j]またはTr30[j+1]のドレイン電流に加えてトランジスタTr27から電流が供給されるため、トランジスタTr21において引き込めない分の電流を、トランジスタTr24においてある程度引き込むことができるため、トランジスタTr21、Tr24、Tr30[j]またはTr30[j+1]における飽和領域での動作を確保することができる。
【0308】
なお、時刻T09乃至時刻T10において、配線BL[j]に流れる電流I[j]が配線BLREFに流れる電流IREFよりも小さい場合、すなわち電流ΔI[j]が正の場合、時刻T07乃至時刻T08において回路14[j]が電流ICP[j]を流し得る電流源に既に設定されているため、回路13[j]においてトランジスタTr27のゲートの電位はほぼ電位VDDのままとなる。同様に、配線BL[j+1]に流れる電流I[j+1]が配線BLREFに流れる電流IREFよりも小さい場合、すなわち電流ΔI[j+1]が正の場合、時刻T07乃至時刻T08において回路14[j+1]が電流ICP[j+1]を流し得る電流源に既に設定されているため、回路13[j+1]においてトランジスタTr27のゲートの電位はほぼ電位VDDのままとなる。
【0309】
次いで、時刻T11乃至時刻T12において、
図18に示す配線RW[i]に第2のアナログ電位Vw[i]が与えられる。また、配線RW[i+1]には、基準電位として電位VSSと電位VDDの間の電位、例えば電位(VDD+VSS)/2が与えられたままである。具体的に、配線RW[i]の電位は、基準電位である電位VSSと電位VDDの間の電位、例えば電位(VDD+VSS)/2に対して電位差Vw[i]だけ高い電位となるが、以下説明を分かり易くするために、配線RW[i]の電位は電位Vw[i]であると仮定する。
【0310】
配線RW[i]が電位Vw[i]になると、容量素子C21の第1の電極の電位の変化量がほぼノードNの電位の変化量に反映されるものと仮定すると、
図18に示すメモリセルMC[i、j]におけるノードNの電位はVPR-Vx[i、j]+Vw[i]となり、メモリセルMC[i、j+1]におけるノードNの電位はVPR-Vx[i、j+1]+Vw[i]となる。そして、上記の式b14から、メモリセルMC[i、j]に対応する第1のアナログデータと第2のアナログデータの積和値は、電流ΔI[j]から電流Ioffset[j]を差し引いた電流、すなわち、配線BL[j]から流れ出る電流Iout[j]に反映されることが分かる。また、メモリセルMC[i、j+1]に対応する第1のアナログデータと第2のアナログデータの積和値は、電流ΔI[j+1]から電流Ioffset[j+1]を差し引いた電流、すなわち、配線BL[j+1]から流れ出る電流Iout[j+1]に反映されることが分かる。
【0311】
時刻T12が終了すると、配線RW[i]には、再度、基準電位である電位VSSと電位VDDの間の電位、例えば電位(VDD+VSS)/2が与えられる。
【0312】
次いで、時刻T13乃至時刻T14において、
図18に示す配線RW[i+1]に第2のアナログ電位Vw[i+1]が与えられる。また、配線RW[i]には、基準電位として電位VSSと電位VDDの間の電位、例えば電位(VDD+VSS)/2が与えられたままである。具体的に、配線RW[i+1]の電位は、基準電位である電位VSSと電位VDDの間の電位、例えば電位(VDD+VSS)/2に対して電位差Vw[i+1]だけ高い電位となるが、以下説明を分かり易くするために、配線RW[i+1]の電位は電位Vw[i+1]であると仮定する。
【0313】
配線RW[i+1]が電位Vw[i+1]になると、容量素子C21の第1の電極の電位の変化量がほぼノードNの電位の変化量に反映されるものと仮定すると、
図18に示すメモリセルMC[i+1、j]におけるノードNの電位はVPR-Vx[i+1、j]+Vw[i+1]となり、メモリセルMC[i+1、j+1]におけるノードNの電位はVPR-Vx[i+1、j+1]+Vw[i+1]となる。そして、上記の式b14から、メモリセルMC[i+1、j]に対応する第1のアナログデータと第2のアナログデータの積和値は、電流ΔI[j]から電流Ioffset[j]を差し引いた電流、すなわち、電流Iout[j]に反映されることが分かる。また、メモリセルMC[i+1、j+1]に対応する第1のアナログデータと第2のアナログデータの積和値は、電流ΔI[j+1]から電流Ioffset[j+1]を差し引いた電流、すなわち、電流Iout[j+1]に反映されることが分かる。
【0314】
時刻T14が終了すると、配線RW[i+1]には、再度、基準電位である電位VSSと電位VDDの間の電位、例えば電位(VDD+VSS)/2が与えられる。
【0315】
次いで、時刻T15乃至時刻T16において、
図18に示す配線RW[i]に第2のアナログ電位Vw[i]が与えられ、配線RW[i+1]に第2のアナログ電位Vw[i+1]が与えられる。具体的に、配線RW[i]の電位は、基準電位である電位VSSと電位VDDの間の電位、例えば電位(VDD+VSS)/2に対して電位差Vw[i]だけ高い電位となり、配線RW[i+1]の電位は、基準電位である電位VSSと電位VDDの間の電位、例えば電位(VDD+VSS)/2に対して電位差Vw[i+1]だけ高い電位となるが、以下説明を分かり易くするために、配線RW[i]の電位は電位Vw[i]であり、配線RW[i+1]の電位は電位Vw[i+1]であると仮定する。
【0316】
配線RW[i]が電位Vw[i]になると、容量素子C21の第1の電極の電位の変化量がほぼノードNの電位の変化量に反映されるものと仮定すると、
図18に示すメモリセルMC[i、j]におけるノードNの電位はVPR-Vx[i、j]+Vw[i]となり、メモリセルMC[i、j+1]におけるノードNの電位はVPR-Vx[i、j+1]+Vw[i]となる。また、配線RW[i+1]が電位Vw[i+1]になると、容量素子C21の第1の電極の電位の変化量がほぼノードNの電位の変化量に反映されるものと仮定すると、
図18に示すメモリセルMC[i+1、j]におけるノードNの電位はVPR-Vx[i+1、j]+Vw[i+1]となり、メモリセルMC[i+1、j+1]におけるノードNの電位はVPR-Vx[i+1、j+1]+Vw[i+1]となる。
【0317】
そして、上記の式b14から、メモリセルMC[i、j]とメモリセルMC[i+1、j]とに対応する第1のアナログデータと第2のアナログデータの積和値は、電流ΔI[j]から電流Ioffset[j]を差し引いた電流、すなわち、電流Iout[j]に反映されることが分かる。また、メモリセルMC[i、j+1]とメモリセルMC[i+1、j+1]とに対応する第1のアナログデータと第2のアナログデータの積和値は、電流ΔI[j+1]から電流Ioffset[j+1]を差し引いた電流、すなわち、電流Iout[j+1]に反映されることが分かる。
【0318】
時刻T16が終了すると、配線RW[i]及び配線RW[i+1]には、再度、基準電位である電位VSSと電位VDDの間の電位、例えば電位(VDD+VSS)/2が与えられる。
【0319】
上記構成により、積和演算を小さな回路規模で行うことができる。また、上記構成により、積和演算を高速で行うことができる。また、上記構成により、低消費電力で積和演算を行うことができる。
【0320】
なお、トランジスタTr22、Tr25、Tr26、Tr28、Tr29は、オフ電流の著しく低いトランジスタを用いることが望ましい。トランジスタTr22にオフ電流の著しく低いトランジスタを用いることにより、ノードNの電位の保持を長時間に渡って行うことができる。また、トランジスタTr25及びTr26にオフ電流の著しく低いトランジスタを用いることにより、トランジスタTr24のゲートの電位の保持を、長時間に渡って行うことができる。また、トランジスタTr28及びTr29にオフ電流の著しく低いトランジスタを用いることにより、トランジスタTr27のゲートの電位の保持を、長時間に渡って行うことができる。
【0321】
トランジスタのオフ電流を下げるには、例えば、チャネル形成領域をバンドギャップが大きい半導体で形成すればよい。上述したように、バンドギャップが大きい半導体とは、バンドギャップが2.2eV以上の半導体を指す場合があるが、このような半導体材料として酸化物半導体が挙げられる。トランジスタTr22、Tr25、Tr26、Tr28、Tr29として、OSトランジスタを用いればよい。
【0322】
なお、本実施の形態は、少なくともその一部を本明細書に記載する他の実施の形態と適宜組み合わせて実施することができる。
【0323】
(実施の形態3)
本実施の形態では、本発明の一形態である半導体装置100乃至102のいずれか1つを搭載した電子機器の例について説明する。なお、本実施の形態では、半導体装置100乃至102を代表して半導体装置100と記述しているが、半導体装置101または半導体装置102と置き換えてもよい。
【0324】
図21(A)は、カメラの例である。カメラ1820は、筐体1821、表示部1822、操作ボタン1823、シャッターボタン1824等を有する。また、カメラ1820には、着脱可能なレンズ1826が取り付けられている。
【0325】
ここではカメラ1820として、レンズ1826を筐体1821から取り外して交換することが可能な構成としたが、レンズ1826と筐体1821が一体となっていてもよい。
【0326】
カメラ1820は、シャッターボタン1824を押すことにより、静止画、または動画を撮像することができる。また、表示部1822はタッチセンサとしての機能を有し、表示部1822をタッチすることにより撮像することも可能である。
【0327】
なお、カメラ1820は、ストロボ装置や、ビューファインダーなどを別途装着することができる。または、これらが筐体1821に組み込まれていてもよい。
【0328】
図21(B)は、表示部1822を拡大した図である。表示部1822には、カメラ1820が撮像した静止画、動画、または、カメラ1820がレンズ1826を通して現在撮像している画像等を表示することができる。
【0329】
図21(B)に示す表示部1822には、うさぎ1828と、女性1829が表示されている。カメラ1820に搭載されている半導体装置100は、画像認識を行い、うさぎ1828と女性1829の周りに認識した物体を区別する枠を表示し(図中、点線で枠を表示)、物体が何であるかを説明する表示を行うことができる(図中、それぞれ、「Rabbit」、「Woman」と表示)。
【0330】
図22(A)は、情報端末の例である。情報端末1840は、表示部1841等を有する。表示部1841には、タッチセンサが配置されており、表示部1841は入力部としての機能も備えている。
【0331】
情報端末1840に搭載されている半導体装置100は、表示部1841に入力された文字を認識し、認識結果を表示することができる。
図22(A)は、使用者が指でアルファベットの「a」を入力し、半導体装置100が入力された文字を認識し、表示部1841の左上に認識結果を表示する例を示している。なお、表示部1841における文字の入力は、指だけでなく、スタイラス等を用いて行うこともできる。
【0332】
図22(B)は、ロボットの例である。ロボット1860は、演算装置1870、照度センサ1861、マイクロフォン1862、上部カメラ1863、スピーカ1864、ディスプレイ1865、下部カメラ1866、障害物センサ1867、および移動機構1868等を備える。演算装置1870には、半導体装置100が搭載されている。
【0333】
マイクロフォン1862は、使用者の話し声および環境音等を検知する機能を有する。また、スピーカ1864は、音声を発する機能を有する。ロボット1860は、マイクロフォン1862およびスピーカ1864を用いて、使用者とコミュニケーションをとることが可能である。
【0334】
ディスプレイ1865は、種々の情報を表示する機能を有する。ロボット1860は、使用者の希望する情報をディスプレイ1865に表示することが可能である。ディスプレイ1865は、タッチセンサを搭載していてもよい。また、ディスプレイ1865は取り外しのできる情報端末等であっても良く、ロボット1860の定位置に設置することで、充電およびデータの受け渡しを可能とすることができる。
【0335】
上部カメラ1863および下部カメラ1866は、ロボット1860の周囲を撮像する機能を有する。また、障害物センサ1867は、移動機構1868を用いてロボット1860が移動する際、進行方向における障害物の有無を検知することができる。
【0336】
演算装置1870に搭載された半導体装置100は、上部カメラ1863および下部カメラ1866が撮像した画像を解析し、壁、家具、段差、または落下物などの障害物の有無を判断することができる。
【0337】
また、演算装置1870に搭載された半導体装置100は、上部カメラ1863および下部カメラ1866が撮像した画像から、ロボット1860の使用者を認識し、ロボット1860の使用者の方向へ移動することができる。または、ロボット1860の使用者が移動するにしたがって、使用者についていくことができる。
【0338】
図21および
図22に示す電子機器には、上記実施の形態で例示した、半導体装置100を搭載することで、効率的に画像認識を行うことができる。
【0339】
なお、本実施の形態は、本明細書に記載する他の実施の形態と適宜組み合わせて実施することができる。
【0340】
(実施の形態4)
本実施の形態では、上記OSトランジスタに用いることができる、金属酸化物について説明する。以下では特に、金属酸化物とCAC(Cloud-Aligned Composite)の詳細について説明する。
【0341】
CAC-OSまたはCAC-metal oxideは、材料の一部では導電性の機能と、材料の一部では絶縁性の機能とを有し、材料の全体では半導体としての機能を有する。なお、CAC-OSまたはCAC-metal oxideを、トランジスタのチャネル形成領域に用いる場合、導電性の機能は、キャリアとなる電子(またはホール)を流す機能であり、絶縁性の機能は、キャリアとなる電子を流さない機能である。導電性の機能と、絶縁性の機能とを、それぞれ相補的に作用させることで、スイッチングさせる機能(On/Offさせる機能)をCAC-OSまたはCAC-metal oxideに付与することができる。CAC-OSまたはCAC-metal oxideにおいて、それぞれの機能を分離させることで、双方の機能を最大限に高めることができる。
【0342】
また、CAC-OSまたはCAC-metal oxideは、導電性領域、及び絶縁性領域を有する。導電性領域は、上述の導電性の機能を有し、絶縁性領域は、上述の絶縁性の機能を有する。また、材料中において、導電性領域と、絶縁性領域とは、ナノ粒子レベルで分離している場合がある。また、導電性領域と、絶縁性領域とは、それぞれ材料中に偏在する場合がある。また、導電性領域は、周辺がぼけてクラウド状に連結して観察される場合がある。
【0343】
また、CAC-OSまたはCAC-metal oxideにおいて、導電性領域と、絶縁性領域とは、それぞれ0.5nm以上10nm以下、好ましくは0.5nm以上3nm以下のサイズで材料中に分散している場合がある。
【0344】
また、CAC-OSまたはCAC-metal oxideは、異なるバンドギャップを有する成分により構成される。例えば、CAC-OSまたはCAC-metal oxideは、絶縁性領域に起因するワイドギャップを有する成分と、導電性領域に起因するナローギャップを有する成分と、により構成される。当該構成の場合、キャリアを流す際に、ナローギャップを有する成分において、主にキャリアが流れる。また、ナローギャップを有する成分が、ワイドギャップを有する成分に相補的に作用し、ナローギャップを有する成分に連動してワイドギャップを有する成分にもキャリアが流れる。このため、上記CAC-OSまたはCAC-metal oxideをトランジスタのチャネル形成領域に用いる場合、トランジスタのオン状態において高い電流駆動力、つまり大きなオン電流、及び高い電界効果移動度を得ることができる。
【0345】
すなわち、CAC-OSまたはCAC-metal oxideは、マトリックス複合材(matrix composite)、または金属マトリックス複合材(metal matrix composite)と呼称することもできる。
【0346】
CAC-OSは、例えば、金属酸化物を構成する元素が、0.5nm以上10nm以下、好ましくは、1nm以上2nm以下、またはその近傍のサイズで偏在した材料の一構成である。なお、以下では、金属酸化物において、一つあるいはそれ以上の金属元素が偏在し、該金属元素を有する領域が、0.5nm以上10nm以下、好ましくは、1nm以上2nm以下、またはその近傍のサイズで混合した状態をモザイク状、またはパッチ状ともいう。
【0347】
なお、金属酸化物は、少なくともインジウムを含むことが好ましい。特にインジウムおよび亜鉛を含むことが好ましい。また、それらに加えて、アルミニウム、ガリウム、イットリウム、銅、バナジウム、ベリリウム、ホウ素、シリコン、チタン、鉄、ニッケル、ゲルマニウム、ジルコニウム、モリブデン、ランタン、セリウム、ネオジム、ハフニウム、タンタル、タングステン、またはマグネシウムなどから選ばれた一種、または複数種が含まれていてもよい。
【0348】
例えば、In-Ga-Zn酸化物におけるCAC-OS(CAC-OSの中でもIn-Ga-Zn酸化物を、特にCAC-IGZOと呼称してもよい)とは、インジウム酸化物(以下、InOX1(X1は0よりも大きい実数)とする)、またはインジウム亜鉛酸化物(以下、InX2ZnY2OZ2(X2、Y2、およびZ2は0よりも大きい実数)とする)と、ガリウム酸化物(以下、GaOX3(X3は0よりも大きい実数)とする)、またはガリウム亜鉛酸化物(以下、GaX4ZnY4OZ4(X4、Y4、およびZ4は0よりも大きい実数)とする)などと、に材料が分離することでモザイク状となり、モザイク状のInOX1、またはInX2ZnY2OZ2が、膜中に均一に分布した構成(以下、クラウド状ともいう)である。
【0349】
つまり、CAC-OSは、GaOX3が主成分である領域と、InX2ZnY2OZ2、またはInOX1が主成分である領域とが、混合している構成を有する複合金属酸化物である。なお、本明細書において、例えば、第1の領域の元素Mに対するInの原子数比が、第2の領域の元素Mに対するInの原子数比よりも大きいことを、第1の領域は、第2の領域と比較して、Inの濃度が高いとする。
【0350】
なお、IGZOは通称であり、In、Ga、Zn、およびOによる1つの化合物をいう場合がある。代表例として、InGaO3(ZnO)m1(m1は自然数)、またはIn(1+x0)Ga(1-x0)O3(ZnO)m0(-1≦x0≦1、m0は任意数)で表される結晶性の化合物が挙げられる。
【0351】
上記結晶性の化合物は、単結晶構造、多結晶構造、またはCAAC(c-axis aligned crystal)構造を有する。なお、CAAC構造とは、複数のIGZOのナノ結晶がc軸配向を有し、かつa-b面においては配向せずに連結した結晶構造である。
【0352】
一方、CAC-OSは、金属酸化物の材料構成に関する。CAC-OSとは、In、Ga、Zn、およびOを含む材料構成において、一部にGaを主成分とするナノ粒子状に観察される領域と、一部にInを主成分とするナノ粒子状に観察される領域とが、それぞれモザイク状にランダムに分散している構成をいう。従って、CAC-OSにおいて、結晶構造は副次的な要素である。
【0353】
なお、CAC-OSは、組成の異なる二種類以上の膜の積層構造は含まないものとする。例えば、Inを主成分とする膜と、Gaを主成分とする膜との2層からなる構造は、含まない。
【0354】
なお、GaOX3が主成分である領域と、InX2ZnY2OZ2、またはInOX1が主成分である領域とは、明確な境界が観察できない場合がある。
【0355】
なお、ガリウムの代わりに、アルミニウム、イットリウム、銅、バナジウム、ベリリウム、ホウ素、シリコン、チタン、鉄、ニッケル、ゲルマニウム、ジルコニウム、モリブデン、ランタン、セリウム、ネオジム、ハフニウム、タンタル、タングステン、またはマグネシウムなどから選ばれた一種、または複数種が含まれている場合、CAC-OSは、一部に該金属元素を主成分とするナノ粒子状に観察される領域と、一部にInを主成分とするナノ粒子状に観察される領域とが、それぞれモザイク状にランダムに分散している構成をいう。
【0356】
CAC-OSは、例えば基板を意図的に加熱しない条件で、スパッタリング法により形成することができる。また、CAC-OSをスパッタリング法で形成する場合、成膜ガスとして、不活性ガス(代表的にはアルゴン)、酸素ガス、及び窒素ガスの中から選ばれたいずれか一つまたは複数を用いればよい。また、成膜時の成膜ガスの総流量に対する酸素ガスの流量比は低いほど好ましく、例えば酸素ガスの流量比を0%以上30%未満、好ましくは0%以上10%以下とすることが好ましい。
【0357】
CAC-OSは、X線回折(XRD:X-ray diffraction)測定法のひとつであるOut-of-plane法によるθ/2θスキャンを用いて測定したときに、明確なピークが観察されないという特徴を有する。すなわち、X線回折から、測定領域のa-b面方向、およびc軸方向の配向は見られないことが分かる。
【0358】
またCAC-OSは、プローブ径が1nmの電子線(ナノビーム電子線ともいう)を照射することで得られる電子線回折パターンにおいて、リング状に輝度の高い領域と、該リング領域に複数の輝点が観測される。従って、電子線回折パターンから、CAC-OSの結晶構造が、平面方向、および断面方向において、配向性を有さないnc(nano-crystal)構造を有することがわかる。
【0359】
また例えば、In-Ga-Zn酸化物におけるCAC-OSでは、エネルギー分散型X線分光法(EDX:Energy Dispersive X-ray spectroscopy)を用いて取得したEDXマッピングにより、GaOX3が主成分である領域と、InX2ZnY2OZ2、またはInOX1が主成分である領域とが、偏在し、混合している構造を有することが確認できる。
【0360】
CAC-OSは、金属元素が均一に分布したIGZO化合物とは異なる構造であり、IGZO化合物と異なる性質を有する。つまり、CAC-OSは、GaOX3などが主成分である領域と、InX2ZnY2OZ2、またはInOX1が主成分である領域と、に互いに相分離し、各元素を主成分とする領域がモザイク状である構造を有する。
【0361】
ここで、InX2ZnY2OZ2、またはInOX1が主成分である領域は、GaOX3などが主成分である領域と比較して、導電性が高い領域である。つまり、InX2ZnY2OZ2、またはInOX1が主成分である領域を、キャリアが流れることにより、酸化物半導体としての導電性が発現する。従って、InX2ZnY2OZ2、またはInOX1が主成分である領域が、酸化物半導体中にクラウド状に分布することで、高い電界効果移動度(μ)が実現できる。
【0362】
一方、GaOX3などが主成分である領域は、InX2ZnY2OZ2、またはInOX1が主成分である領域と比較して、絶縁性が高い領域である。つまり、GaOX3などが主成分である領域が、酸化物半導体中に分布することで、リーク電流を抑制し、良好なスイッチング動作を実現できる。
【0363】
従って、CAC-OSを半導体素子に用いた場合、GaOX3などに起因する絶縁性と、InX2ZnY2OZ2、またはInOX1に起因する導電性とが、相補的に作用することにより、高いオン電流(Ion)、および高い電界効果移動度(μ)を実現することができる。
【0364】
また、CAC-OSを用いた半導体素子は、信頼性が高い。従って、CAC-OSは、さまざまな半導体装置に最適である。
【0365】
なお、本実施の形態は、本明細書に記載する他の実施の形態と適宜組み合わせて実施することができる。
【符号の説明】
【0366】
C1:矢印、C11:容量素子、C12:容量素子、C21:容量素子、C22:容量素子、C23:容量素子、CLK_IN1:クロック信号、CLK_IN2:クロック信号、CLK_IN3:クロック信号、CLK_IN4:クロック信号、CLK1:クロック信号、CLK2:クロック信号、CLK3:クロック信号、CLK4:クロック信号、D_IN1:信号、D_IN2:信号、N11:ノード、N12:ノード、R1:矢印、T01:時刻、T1:時刻、T02:時刻、T2:時刻、T03:時刻、T3:時刻、T04:時刻、T4:時刻、T05:時刻、T5:時刻、T06:時刻、T6:時刻、T07:時刻、T7:時刻、T08:時刻、T8:時刻、T09:時刻、T9:時刻、T10:時刻、T11:時刻、T12:時刻、T13:時刻、T14:時刻、T15:時刻、T16:時刻、T17:時刻、Tr21:トランジスタ、Tr22:トランジスタ、Tr24:トランジスタ、Tr25:トランジスタ、Tr26:トランジスタ、Tr27:トランジスタ、Tr28:トランジスタ、Tr29:トランジスタ、Tr30:トランジスタ、Tr31:トランジスタ、11:記憶回路、12:参照用記憶回路、13:回路、14:回路、15:電流源回路、41:トランジスタ、42:トランジスタ、43:トランジスタ、44:トランジスタ、45:トランジスタ、46:トランジスタ、47:トランジスタ、48:トランジスタ、50:フレームメモリ、51:領域、60:シフトレジスタ群、61:レジスタ、62:インバータ、63:クロックドインバータ、66:クロックドインバータ、67:インバータ、68:インバータ、69:レジスタ、70:D/Aコンバータ、80:積和演算回路、90:プーリング回路、100:半導体装置、101:半導体装置、102:半導体装置、107:半導体装置、270:回路、271:回路、272:回路、273:回路、274:回路、1820:カメラ、1821:筐体、1822:表示部、1823:操作ボタン、1824:シャッターボタン、1826:レンズ、1829:女性、1840:情報端末、1841:表示部、1860:ロボット、1861:照度センサ、1862:マイクロフォン、1863:上部カメラ、1864:スピーカ、1865:ディスプレイ、1866:下部カメラ、1867:障害物センサ、1868:移動機構、1870:演算装置