(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022144993
(43)【公開日】2022-10-03
(54)【発明の名称】半導体集積回路及び情報処理装置
(51)【国際特許分類】
G06N 3/063 20060101AFI20220926BHJP
G11C 11/54 20060101ALI20220926BHJP
G11C 11/412 20060101ALI20220926BHJP
G06N 20/00 20190101ALI20220926BHJP
【FI】
G06N3/063
G11C11/54
G11C11/412
G06N20/00
【審査請求】未請求
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2021046227
(22)【出願日】2021-03-19
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118843
【弁理士】
【氏名又は名称】赤岡 明
(74)【代理人】
【識別番号】100103263
【弁理士】
【氏名又は名称】川崎 康
(72)【発明者】
【氏名】川澄 篤
【テーマコード(参考)】
5B015
【Fターム(参考)】
5B015JJ02
5B015KA09
5B015PP08
(57)【要約】
【課題】ハードウェア構成を複雑化することなく、積和演算を精度よく行うことができる。
【解決手段】半導体集積回路は、第1方向に配置され、それぞれが第1データを記憶する複数のメモリセルと、前記第1方向に配置された前記複数のメモリセルのそれぞれに対応して設けられ、前記第1データと乗算される第2データを供給する複数の第1配線と、前記第1方向に配置された前記複数のメモリセルに対応して設けられ、前記複数のメモリセルのそれぞれに記憶された前記第1データと対応する前記第1配線にて供給される前記第2データとの乗算データが第1論理のときにディスチャージされる一方の第2配線と、前記乗算データが第2論理のときにディスチャージされる他方の第2配線とを有する第2配線対と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1方向に配置され、それぞれが第1データを記憶する複数のメモリセルと、
前記第1方向に配置された前記複数のメモリセルのそれぞれに対応して設けられ、前記第1データと乗算される第2データを供給する複数の第1配線と、
前記第1方向に配置された前記複数のメモリセルに対応して設けられ、前記複数のメモリセルのそれぞれに記憶された前記第1データと対応する前記第1配線にて供給される前記第2データとの乗算データが第1論理のときにディスチャージされる一方の第2配線と、前記乗算データが第2論理のときにディスチャージされる他方の第2配線とを有する第2配線対と、を備える、半導体集積回路。
【請求項2】
前記一方の第2配線と前記他方の第2配線とは、ディスチャージの回数に応じた電位に設定される、請求項1に記載の半導体集積回路。
【請求項3】
前記一方の第2配線と前記他方の第2配線とには、ディスチャージのたびにディスチャージ電流が流れ、ディスチャージの回数が多くなるほど、前記ディスチャージ電流は少なくなる、請求項2に記載の半導体集積回路。
【請求項4】
前記第2配線対と対応する前記メモリセルの出力ノードとの間に接続され、前記対応するメモリセルから出力された前記第1データと、対応する前記第1配線から供給される前記第2データとの乗算を行うとともに、乗算結果に基づいて前記一方の第2配線又は前記他方の第2配線をディスチャージする演算制御回路を備える、請求項1乃至3のいずれか一項に記載の半導体集積回路。
【請求項5】
前記一方の第2配線と前記他方の第2配線とのうち、電位の高い方を選択する選択回路を備える、請求項1乃至4のいずれか一項に記載の半導体集積回路。
【請求項6】
前記選択回路は、選択された第2配線の電位に基づいて、前記第2配線対のデータを特定する、請求項5に記載の半導体集積回路。
【請求項7】
前記第1方向に配置された前記複数のメモリセルのそれぞれに対応して、2本の前記第1配線が設けられ、
前記第2配線対は、前記2本の第1配線で供給される前記第2データと前記複数のメモリセルのそれぞれに記憶された前記第1データとの乗算データに基づいてディスチャージされる、請求項1乃至6のいずれか一項に記載の半導体集積回路。
【請求項8】
前記2本の第1配線のうち一方は、対応する前記メモリセルに記憶された前記第1データとの前記乗算データを生成するために用いられ、
前記2本の第1配線のうち他方は、対応する前記メモリセルに記憶された前記第1データとは無関係に、前記一方の第2配線又は前記他方の第2配線をディスチャージするために用いられる、請求項7に記載の半導体集積回路。
【請求項9】
前記一方の第2配線と前記他方の第2配線とは、前記第1データと前記第2データとの乗算を行うたびに、排他的にディスチャージされる、請求項7又は8に記載の半導体集積回路。
【請求項10】
前記第2配線対は、前記2本の第1配線のうち一方にて生成される前記乗算データに基づいてディスチャージされるとともに、前記2本の第1配線のうち他方の論理に基づいてディスチャージされる、請求項7乃至9のいずれか一項に記載の半導体集積回路。
【請求項11】
前記選択回路で特定された前記第2配線対のデータを補正する補正回路を備える、請求項6に記載の半導体集積回路。
【請求項12】
前記第1方向に配置された前記複数のメモリセルのそれぞれに対して、1本の前記第1配線が設けられ、
前記一方の第2配線と前記他方の第2配線とは、前記乗算データの論理に応じて、いずれか一方がディスチャージされるか、又は両方ともディスチャージされない、請求項11に記載の半導体集積回路。
【請求項13】
前記第2データは、前記第1配線の論理と、前記第1配線が選択されていないときに選択される仮想の第1配線の論理とで決定され、
前記補正回路は、前記第1配線の選択数と、前記仮想の第1配線の選択数との少なくとも一方に基づいて、前記選択回路で特定された前記第2配線対のデータを補正する、請求項12に記載の半導体集積回路。
【請求項14】
前記第1配線の選択数をカウントする第1カウンタと、
前記仮想の第1配線の選択数をカウントする第2カウンタとを備え、
前記補正回路は、前記第1カウンタのカウント値と前記第2カウンタのカウント値との少なくとも一方に基づいて、前記選択回路で特定された前記第2配線対のデータを補正する、請求項13に記載の半導体集積回路。
【請求項15】
前記第2データは、前記第1配線が選択される論理と、前記第1配線が選択されない論理とで決定され、
前記第1配線の選択数をカウントする第1カウンタを備え、
前記補正回路は、前記第1カウンタのカウント値に基づいて、前記選択回路で特定された前記第2配線対のデータを補正する、請求項12に記載の半導体集積回路。
【請求項16】
前記第1配線に対応して設けられ、前記複数のメモリセルと同数の第1参照メモリセルを有し、前記第1参照メモリセルに互いに同じ論理のデータを記憶する第1参照セル群と、
前記第1配線の選択時にディスチャージされる一方の第3配線と、前記1本の第1配線の選択時にディスチャージされない他方の第3配線とを有する第3配線対と、を備え、
前記第1カウンタは、前記一方の第3配線の電位に基づいて前記第1配線の選択数をカウントする、請求項15に記載の半導体集積回路。
【請求項17】
前記第1配線に対応してそれぞれ設けられ、対応する前記第1配線が選択されないときに選択される複数の第4配線と、
前記第4配線に対応して設けられ、前記複数のメモリセルと同数の第2参照メモリセルを有し、前記第2参照メモリセルに互いに同じ論理のデータを記憶する第2参照セル群と、
前記第4配線の選択時にディスチャージされる一方の第5配線と、前記第4配線の選択時にディスチャージされない他方の第5配線とを有する第5配線対と、
前記第5配線の電位に基づいて前記第4配線の選択数をカウントする第2カウンタとを備え、
前記補正回路は、前記第1カウンタのカウント値と前記第2カウンタのカウント値との少なくとも一方に基づいて、前記選択回路で特定された前記第2配線対のデータを補正する、請求項16に記載の半導体集積回路。
【請求項18】
前記第1データは、ニューラルネットワークの重み係数であり、
前記第2データは、前記ニューラルネットワークの入力データであり、
前記第2配線対は、前記第1データと前記第2データとの乗算データ同士を加算した積和データを伝送する、請求項1乃至17のいずれか一項に記載の半導体集積回路。
【請求項19】
学習用の入力データ及び出力データを用いて、ニューラルネットワークの重み係数を更新する学習処理を行う学習部と、
前記ニューラルネットワークのネットワーク構成に従って、前記入力データに前記重み係数を乗じた乗算データ同士を加算する積和演算を実行する半導体記憶装置と、
前記学習部による前記学習処理を行った前記ニューラルネットワークを含む計算モデルを生成する計算モデル生成部と、
前記計算モデルに対して入力データを与えて、前記計算モデル内の前記ニューラルネットワークで積和演算を行った結果に基づいて、所定の情報処理を行う情報処理部と、を備え、
前記半導体記憶装置は、
第1方向に配置され、それぞれが第1データを記憶する複数のメモリセルと、
前記第1方向に配置された前記複数のメモリセルのそれぞれに対応して設けられ、前記第1データと乗算される第2データを供給する複数の第1配線と、
前記第1方向に配置された前記複数のメモリセルに対応して設けられ、前記複数のメモリセルのそれぞれに記憶された前記第1データと対応する前記第1配線にて供給される前記第2データとの乗算データが第1論理のときにディスチャージされる一方の第2配線と、前記乗算データが第2論理のときにディスチャージされる他方の第2配線とを有する第2配線対と、を備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の一実施形態は、半導体集積回路及び情報処理装置に関する。
【背景技術】
【0002】
最近、機械学習を用いた情報処理が様々な分野で行われている。機械学習では、例えばCNN(Convolutional Neural Network)で用いられる重み係数を更新する学習処理を行うが、重み係数の更新には多数の積和演算処理を繰り返す必要がある。積和演算処理をソフトウェアではなく、ハードウェアで行うことができれば、機械学習を迅速かつ効率よく行うことができる。
【0003】
積和演算の結果は2値以上の多値のデータになるため、積和演算の結果を出力する配線は3段階以上の電位レベルになりうる。従って、積和演算の結果を出力する配線の電位レベルから積和演算値を正しく特定できるようにする必要がある。
【0004】
しかしながら、半導体メモリを備えた半導体集積回路の電源電圧は低電圧化が進んでおり、配線の電位レベルから積和演算値を正しく特定するのは容易ではない。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
そこで、本発明の一実施形態では、ハードウェア構成を複雑化することなく、積和演算を精度よく行うことが可能な半導体集積回路及び情報処理装置を提供するものである。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、本発明の一実施形態によれば、第1方向に配置され、それぞれが第1データを記憶する複数のメモリセルと、
前記第1方向に配置された前記複数のメモリセルのそれぞれに対応して設けられ、前記第1データと乗算される第2データを供給する複数の第1配線と、
前記第1方向に配置された前記複数のメモリセルに対応して設けられ、前記複数のメモリセルのそれぞれに記憶された前記第1データと対応する前記第1配線にて供給される前記第2データとの乗算データが第1論理のときにディスチャージされる一方の第2配線と、前記乗算データが第2論理のときにディスチャージされる他方の第2配線とを有する第2配線対と、を備える、半導体集積回路が提供される。
【図面の簡単な説明】
【0008】
【
図1】第1の実施形態による半導体集積回路の回路図。
【
図2】
図1の半導体集積回路内のビット線対を流れるディスチャージ電流を模式的に示す図。
【
図3】第1データと第2データとの乗算結果とビット線対のディスチャージとの対応関係を示す図。
【
図4A】一方のビット線の電位とディスチャージ電流を示す図。
【
図4B】他方のビット線の電位とディスチャージ電流を示す図。
【
図6】
図5の半導体集積回路内のビット線を流れるディスチャージ電流を模式的に示す図。
【
図7】
図5の第1データと第2データとの乗算結果とビット線BLのディスチャージとの対応関係を示す図。
【
図8】
図5のビット線の電位とディスチャージ電流を示す図。
【
図9】
図1に選択回路を追加した半導体集積回路を示す図。
【
図11】第2の実施形態による半導体集積回路の回路図。
【
図12A】ワード線が8回連続して選択された場合の一方のビット線の電位とディスチャージ電流の特性を示す図。
【
図12B】ワード線が8回連続して選択された場合の他方のビット線の電位とディスチャージ電流の特性を示す図。
【
図13A】ワード線が7回選択された場合の一方のビット線の電位とディスチャージ電流の特性を示す図。
【
図13B】ワード線が7回選択された場合の他方のビット線の電位とディスチャージ電流の特性を示す図
【
図14A】ワード線が0回選択された場合の一方のビット線の電位とディスチャージ電流を示す図。
【
図14B】ワード線が0回選択された場合の他方のビット線の電位とディスチャージ電流を示す図。
【
図15】補正回路を備えた半導体集積回路の第1例を示す図。
【
図16】補正回路を備えた半導体集積回路の第2例を示す図。
【発明を実施するための形態】
【0009】
以下、図面を参照して、半導体集積回路及び情報処理装置の実施形態について説明する。以下では、半導体集積回路及び情報処理装置の主要な構成部分を中心に説明するが、半導体集積回路及び情報処理装置には、図示又は説明されていない構成部分や機能が存在しうる。以下の説明は、図示又は説明されていない構成部分や機能を除外するものではない。
【0010】
(第1の実施形態)
図1は第1の実施形態による半導体集積回路1の回路図である。
図1の半導体集積回路1は、半導体メモリ(半導体記憶装置とも呼ぶ)を用いて構成可能である。
図1の半導体集積回路1を構成する半導体メモリは、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)等の揮発メモリでもよいし、NANDフラッシュメモリ等の不揮発メモリでもよい。
【0011】
図1の半導体集積回路1は、複数のメモリセルMCと、複数のワード線WL0、WL1と、ビット線対BL<+>、BL<->とを備えている。本明細書では、ワード線WL0、WL1を第1配線、ビット線対BL<+>、BL<->を第2配線対と呼ぶこともある。
複数のワード線WL0、WL1は、第1方向Xに配置された複数のメモリセルMCのそれぞれに対応して設けられ、第1データと乗算される第2データを供給する。
図1では、1個のメモリセルMCを図示しているが、第1方向Xに複数のメモリセルMCが配置されている。また、第2方向Yにも複数のメモリセルMCが配置されていてもよい。
【0012】
ビット線対BL<+>、BL<->は、第1方向Xに配置された複数のメモリセルMCに対応して設けられており、第1方向Xに延びている。ビット線対BL<+>、BL<->は、複数のメモリセルMCのそれぞれに記憶された第1データと対応するワード線にて供給される第2データとの乗算データが第1論理のときにディスチャージされる一方のビット線BL<+>と、乗算データが第2論理のときにディスチャージされる他方のビット線BL<->とを有する。ここで、ディスチャージとは、ビット線の電位を引き下げることを指す。ビット線の電位は、ディスチャージを行うたびに引き下げられる。
【0013】
ワード線WL0、WL1は、第2方向Yに延びており、第2方向Yに2以上のメモリセルMCが配置されている場合には、これら2以上のメモリセルMCが同一のワード線WL0、WL1に接続されている。メモリセルMCごとに2本のワード線WL0、WL1が設けられており、これら2本のワード線WL0、WL1のいずれか1本が選択される。本明細書では、選択されたワード線の論理を1とし、選択されないワード線の論理を0とする。これら2本のワード線WL0、WL1の論理が第2データである。例えば、第2データが0の場合はワード線WL0が選択された状態、第2データが1の場合はワード線WL1が選択された状態である。
【0014】
図1では省略しているが、第1方向X及び第2方向Yに配置された複数のメモリセルMCは、メモリセルアレイと呼ばれる。ワード線WL0、WL1は、メモリセルアレイ内の第2方向Yに沿って配置される各ロウのメモリセル群ごとに設けられる。ビット線対BL<+>、BL<->は、メモリセルアレイ内の第1方向Xに沿って配置される各カラムのメモリセル群ごとに設けられる。
【0015】
図1のメモリセルMCは、書込ビット線対WBL<+>、WBL<->に接続されている。書込ビット線対WBL<+>、WBL<->も、ビット線対BL<+>、BL<->と同様に、第1方向Xに配置されている。
図1のメモリセルMCはSRAMセルの例を示している。
図1のメモリセルMCは、6つのトランジスタQ1~Q6を有する。トランジスタQ1とQ3はPMOSトランジスタであり、トランジスタQ2、Q4~Q6はNMOSトランジスタである。トランジスタQ1、Q2は電源電圧ノードと接地ノードの間にカスコード接続されている。同様に、トランジスタQ3、Q4は電源電圧ノードと接地ノードの間にカスコード接続されている。トランジスタQ1、Q2の両ゲートは、トランジスタQ3、Q4の両ドレインとトランジスタQ6のソースに接続されている。同様に、トランジスタQ3、Q4の両ゲートは、トランジスタQ1、Q2の両ドレインとトランジスタQ5のソースに接続されている。
【0016】
トランジスタQ5、Q6の両ゲートは、書き込みワード線WWLi(
図2の例ではWWL0)に接続されている。トランジスタQ5、Q6の両ドレインは書き込みビット線対WBL<+>、WBL<->に接続されている。
【0017】
図1の半導体集積回路1は、演算制御回路2を備えている。演算制御回路2は、ビット線対BL<+>、BL<->と対応するメモリセルMCの出力ノードn1、n2との間に接続されている。演算制御回路2は、対応するメモリセルMCから出力された第1データと、対応するワード線から供給される第2データとの乗算を行うとともに、乗算結果に基づいて一方のビット線BL<+>又は他方のビット線BL<->をディスチャージする。一方のビット線BL<+>又は他方のビット線BL<->のディスチャージは、乗算結果同士の和演算、すなわち積和演算を行うことと等価である。本明細書では、メモリセルMCと、対応する演算制御回路2とを合わせてメモリセル回路3と呼ぶ。
【0018】
演算制御回路2は、トランジスタQ7~Q12を有する。トランジスタQ7~Q12はNMOSトランジスタである。一方のビット線BL<+>と接地ノードの間には、トランジスタQ7、Q8がカスコード接続されている。トランジスタQ7のゲートはワード線WL1に接続されている。トランジスタQ8のゲートは、トランジスタQ3、Q4のゲートと、トランジスタQ1、Q2の両ドレインに接続されている。
【0019】
他方のビット線BL<->と接地ノードの間には、トランジスタQ9、Q10がカスコード接続されている。トランジスタQ9のゲートはワード線WL1に接続されている。トランジスタQ10のゲートは、トランジスタQ1、Q2のゲートと、トランジスタQ3、Q4の両ドレインに接続されている。
【0020】
他方のビット線BL<->と接地ノードの間には、トランジスタQ11、Q12がカスコード接続されている。トランジスタQ11のゲートはワード線WL0に接続されている。トランジスタQ12のゲートは電源電圧ノードに接続されており、常時オンしている。よって、ワード線WL0が選択されているとき(論理0のとき)、他方のビット線BL<->はトランジスタQ11、Q12によってディスチャージされる。
【0021】
図2は
図1の半導体集積回路1内のビット線対BL<+>、BL<->を流れるディスチャージ電流を模式的に示す図である。
図2に示すように、ビット線対BL<+>、BL<->には、複数のメモリセル回路3が接続されている。各メモリセル回路3は、メモリセルMCと、対応する演算制御回路2とを有する。
図2の矢印線は、ビット線対BL<+>、BL<->に流れるディスチャージ電流の方向を示している。一方のビット線BL<+>又は他方のビット線BL<->から各メモリセル回路3に対してディスチャージ電流が流れることにより、一方のビット線BL<+>又は他方のビット線BL<->はディスチャージされる。
図2に示すように、
図1の半導体集積回路1では、一方のビット線BL<+>と他方のビット線BL<->のいずれか一方が、排他的にディスチャージされる。
【0022】
図1の半導体集積回路1では、ワード線WL0、WL1のいずれかが選択される(論理1になる)たびに、ビット線対BL<+>、BL<->のうちいずれかのビット線が排他的にディスチャージされる。すなわち、一方のビット線BL<+>がディスチャージされるときは他方のビット線BL<->はディスチャージされず、他方のビット線BL<->がディスチャージされるときは一方のビット線BL<+>はディスチャージされない。
【0023】
図1の半導体集積回路1は、積和演算を行うために利用できる。メモリセルMCは、積和演算のための重み係数を第1データとして記憶することができる。ワード線WL0、WL1の論理は、積和演算の際に重み係数に掛け合わされる第2データに対応する。このように、1個のメモリセルMCを用いて、重み係数を表す第1データとワード線から供給される第2データとの乗算を行うことができる。ビット線対BL<+>、BL<->に接続された複数のメモリセル回路3にて、重み係数を表す第1データとワード線から供給される第2データとの乗算を複数回行うことができ、これら乗算の和である積和演算結果はビット線対BL<+>、BL<->のディスチャージ量で表すことができる。よって、ビット線対BL<+>、BL<->から、積和演算の結果を出力することができる。
【0024】
図3は
図1のメモリセルMC内の重み係数を示す第1データとワード線の論理を示す第2データとの乗算結果とビット線対BL<+>、BL<->のディスチャージとの対応関係を示す図である。
図3に示すように、第1データと第2データはともに2値(0と1)のデータを取りうる。第1データと第2データがともに1のときのみ、一方のビット線BL<+>はディスチャージされる。このとき、トランジスタQ7、Q8がともにオンし、一方のビット線BL<+>は、トランジスタQ7、Q8を通って接地ノードにディスチャージされ、電位が下がる。他方のビット線BL<->は、トランジスタQ10がオフであるため、ディスチャージは行われない。第1データと第2データの少なくとも一方が0のときは、一方のビット線BL<+>はディスチャージされない。第2データが1になるのはワード線WL1が選択された場合であり、第2データが0になるのはワード線WL0が選択された場合である。
【0025】
第1データと第2データが(0,1)の場合には、トランジスタQ9、Q10がともにオンし、他方のビット線BL<->は、トランジスタQ9、Q10を通って接地ノードにディスチャージされ、電位が下がる。一方のビット線BL<+>は、トランジスタQ8がオフであるため、ディスチャージは行われない。
【0026】
第1データと第2データが(0,0)又は(1,0)の場合には、トランジスタQ11がオンする。トランジスタQ12は常にオンしているため、トランジスタQ11がオンすると、他方のビット線BL<->は、トランジスタQ11、Q12を通って接地ノードにディスチャージされる。このように、ワード線WL0は、メモリセルMCとの乗算には用いられず、ワード線WL0が選択された場合は、無条件で他方のビット線BL<->がディスチャージされる。
【0027】
図4Aは一方のビット線BL<+>の電位とディスチャージ電流を示す図、
図4Bは他方のビット線BL<->の電位とディスチャージ電流を示す図である。
図4A及び
図4Bの横軸はビット線電位を示し、縦軸はディスチャージ電流を示している。ディスチャージを行うたびにビット線電位は下がるため、
図4A及び
図4Bの横軸は、正確には、ビット線電位の絶対値である。
【0028】
図4A及び
図4Bには、複数の分布波形が図示されている。これらの分布波形は、ビット線対BL<+>、BL<->をディスチャージするたびに、ビット線電位の変動幅が変化し、かつディスチャージ電流も変化する様子を示している。隣接する分布波形の間隔は、
図1のトランジスタQ7、Q8のドレイン-ソース間電圧Vdsの電圧レベル、及びトランジスタQ9、Q10のドレイン-ソース間電圧Vdsの電圧レベルに依存する。
【0029】
複数の分布波形からわかるように、ビット線対BL<+>、BL<->のディスチャージ回数が少ないほど、ビット線対BL<+>、BL<->を流れるディスチャージ電流は大きく、かつビット線電位の変動幅も小さい。ディスチャージ回数が4回くらいまでは、分布波形の間隔が離れており、ビット線対BL<+>、BL<->の電位を検出することにより、ディスチャージ回数を正確に特定することができる。
【0030】
ディスチャージ回数が5回以上になると、上述した電圧Vdsの電圧レベルが小さくなり、隣接する分布波形同士が重なり合う。分布波形同士が重なり合うと、ビット線対BL<+>、BL<->の電位では、ディスチャージ回数を正確に特定できなくなり、積和演算の値を誤って判断してしまうおそれがある。
【0031】
図4A及び
図4Bに示すように、ビット線対BL<+>、BL<->のいずれかのビット線でディスチャージが生じた場合、初めてディスチャージする場合のディスチャージ電流が最大で、かつビット線電位の変動幅が最小である。ビット線対BL<+>、BL<->が一度もディスチャージされていない場合、一方のビット線BL<+>と他方のビット線BL<->のディスチャージ電流はゼロである。
図4A及び
図4Bでは、一方のビット線BL<+>のディスチャージ電流がゼロの場合をD0、他方のビット線BL<->のディスチャージ電流がゼロの場合をD8としている。
図4Aでは、一方のビット線BL<+>のディスチャージ回数が増えるたびに、D0から1ずつインクリメントしたD番号を割り当てている。一方、
図4Bでは、他方のビット線BL<->のディスチャージ回数が増えるたびに、D8から1ずつディクリメントしたD番号を割り当てている。
【0032】
図4A及び
図4Bに示すように、ディスチャージ回数が多くなるに従って、ディスチャージ電流が小さくなるとともに、ビット線電位の変動幅が大きくなる。ディスチャージ回数が5回を超えると、隣接するビット線電位の変動幅同士が重なり合うため、ビット線の電位ではディスチャージ回数を特定できなくなる。
【0033】
図4A及び
図4Bにおいて、一方のビット線BL<+>がD1の場合は、他方のビット線BL<->はD1になる。
図4Aと
図4Bからわかるように、一方のビット線BL<+>と他方のビット線BL<->で、D1のディスチャージ電流を比較すると、一方のビット線BL<+>の方がはるかに大きい。よって、一方のビット線BL<+>の電位に基づいて、ビット線対BL<+>、BL<->のデータを特定する。また、一方のビット線BL<+>がD7の場合は、他方のビット線BL<->はD7になる。
図4Aと
図4Bからわかるように、一方のビット線BL<+>と他方のビット線BL<->で、D7のディスチャージ電流を比較すると、他方のビット線BL<->の方がはるかに大きい。よって、他方のビット線BL<->の電位に基づいて、ビット線対BL<+>、BL<->のデータを特定する。
【0034】
あるビット線にディスチャージ電流が流れると、そのビット線の電位は低下する。よって、一方のビット線BL<+>の電位と他方のビット線BL<->の電位を比較して、電位が高い方のビット線に基づいてディスチャージ回数を特定するのが望ましい。電位が高い方のビット線を選択するということは、
図4Aの破線より左側の4つの分布波形に対応するビット線電位と、
図4Bの破線より左側の4つの分布波形に対応するビット線電位に基づいてディスチャージ回数を特定することを意味する。また、一方のビット線BL<+>がD4の場合のディスチャージ電流と、他方のビット線BL<->がD4の場合のディスチャージ電流はほぼ同じであり、どちらに基づいてビット線対BL<+>、BL<->のデータを決定してもよいが、一方のビット線BL<+>の電位と他方のビット線BL<->の電位のうち、電位が高い方のビット線を選択するようにすれば、どちらのビット線を選択するかの判断に迷うことはない。
【0035】
このように、本実施形態では、
図4Aと
図4Bの破線よりも左側のディスチャージ電流に基づいて、ビット線対BL<+>、BL<->のデータを特定する。より具体的には、D1~D3の場合は、一方のビット線BL<+>の電圧に基づいてビット線対BL<+>、BL<->のデータが特定され、D0、D4、D8の場合は、いずれかのビット線の電圧に基づいてビット線対BL<+>、BL<->のデータが特定され、D5~D7の場合は、他方のビット線BL<->の電圧に基づいてビット線対BL<+>、BL<->のデータが特定される。
【0036】
図5は一比較例による半導体集積回路100の回路図である。
図5の半導体集積回路100は、複数のメモリセルMCと、1本のワード線WLと、1本のビット線BLと、演算制御回路2とを備えている。
図5では、
図1と共通する回路素子には同一の符号を付しており、以下では相違点を中心に説明する。
【0037】
図5のメモリセルMCは、
図1のメモリセルMCと同様の内部構成を有する。
図1の半導体集積回路1は2本のビット線からなるビット線対BL<+>、BL<->を備えていたのに対し、
図5の半導体集積回路100は1本のビット線BLを有する。このビット線BLと接地ノードの間に、トランジスタQ7とQ8がカスコード接続されている。トランジスタQ7のゲートはワード線WLに接続され、トランジスタQ8のゲートはメモリセルMC内のトランジスタQ3、Q4の両ゲートと、トランジスタQ1、Q2の両ドレインに接続されている。
図5の半導体集積回路100は、1本のビット線BLしか備えていないために、
図1の半導体集積回路1内のトランジスタQ9~Q12を備えていない。
【0038】
また、
図5の半導体集積回路100は1本のワード線WLのみを備えており、
図1のワード線WL0を備えていないことから、
図1の半導体集積回路1内のトランジスタQ11、Q12を備えていない。
【0039】
このように、
図5の半導体集積回路100では、第1方向Xに配置される複数のメモリセルMCが、第1方向Xに延びる1本のビット線BLに接続されている。また、第2方向Yに配置される1個又は複数のメモリセルMCに対して1本のワード線WLが接続されている。
【0040】
図6は
図5の半導体集積回路100内のビット線を流れるディスチャージ電流を模式的に示す図である。
図6に示すように、
図5の半導体集積回路100には、第1方向Xに配置された1列分の複数のメモリセル回路3に対して1本のビット線BLしか接続されないため、乗算結果が1になるメモリセル回路3に対してのみ、ビット線BLから対応するメモリセル回路3に対してディスチャージ電流が流れる。
【0041】
図7は
図5のメモリセルMC内の重み係数を示す第1データとワード線WLの論理を示す第2データとの乗算結果とビット線BLのディスチャージとの対応関係を示す図である。
図7に示すように、第1データと第2データが(1,1)のときのみ、ビット線BLがディスチャージされる。第1データと第2データが(0,0)、(0,1)、又は(1,0)のときは、ビット線BLの電圧は変化しない。
【0042】
図8は
図5のビット線の電位とディスチャージ電流を示す図である。
図8は、
図4Aと同様に、ビット線のディスチャージ回数が増えるに従って、ディスチャージ電流が小さくなり、かつビット線電位の変動量が大きくなる。ディスチャージ回数が4回を超えると、隣接するディスチャージ回数のビット線電位同士が重なり合うため、ビット線電位を検出しても、ディスチャージ回数を精度よく特定できなくなる。
【0043】
これに対して、
図1の半導体集積回路1では、一方のビット線BL<+>と他方のビット線BL<->を設けて、ディスチャージ電流が多く流れる方のビット線の電位に基づいて、ビット線対BL<+>、BL<->のデータを特定するため、
図8のように電位の変動幅が大きいビット線の電位に基づいてビット線対BL<+>、BL<->のデータを判断しなくて済み、読出しデータの信頼性を向上できる。
【0044】
図9は
図1に選択回路4を追加した半導体集積回路1を示す図である。
図9の選択回路4は、一方のビット線BL<+>と他方のビット線BL<->のうち、電位の高い方のビット線を選択する。また、選択回路4は、選択された第2配線の電位に基づいて、ビット線対BL<+>、BL<->のデータを特定する。
【0045】
図10は選択回路4の内部構成の一例を示す回路図である。
図10の選択回路4は、対称的な回路構成になっており、
図1のビット線対BL<+>、BL<->が入力され、ビット線対BL<+>、BL<->を構成する一方のビット線BL<+>と他方のビット線BL<->の電位を比較して、電位が高い方のビット線を選択して出力する。
【0046】
図10の選択回路4は、差動トランジスタ対Q21、Q22と、電流源を構成するトランジスタQ23と、データ保持回路を構成するトランジスタQ24~Q27と、データ保持回路の出力線をプルアップするトランジスタQ28、Q29と、インバータIV1、IV2と、トランスファゲートTG1、TG2とを有する。トランジスタQ21~Q25はNMOSトランジスタ、トランジスタQ26~Q29はPMOSトランジスタである。
【0047】
トランジスタQ21のゲートには一方のビット線BL<+>が接続され、トランジスタQ22のゲートには他方のビット線BL<->が接続されている。トランジスタQ21、Q22のソースにはトランジスタQ23のドレインが接続され、トランジスタQ23のソースは接地ノードに接続されている。トランジスタQ21のドレインにはトランジスタQ24のソースが接続され、トランジスタQ22のドレインにはトランジスタQ25のソースが接続されている。
【0048】
トランジスタQ24のドレインには、トランジスタQ26のドレインと、トランジスタQ25、Q27の両ゲートとが接続されている。トランジスタQ26のソースは電源電圧ノードに接続されている。トランジスタQ25のドレインには、トランジスタQ27のドレインと、トランジスタQ24、Q26の両ゲートとが接続されている。トランジスタQ27のソースは電源電圧ノードに接続されている。
【0049】
トランジスタQ24のドレインは、トランジスタQ28のドレインと、インバータIV1の入力ノードとに接続されている。トランジスタQ28のソースは電源電圧ノードに接続されている。トランジスタQ25のドレインは、トランジスタQ29のドレインと、インバータIV2の入力ノードとに接続されている。トランジスタQ29のソースは電源電圧ノードに接続されている。
【0050】
トランスファゲートTG1の相補制御端子には、インバータIV1の入出力ノードが接続されている。トランスファゲートTG1は、相補制御端子の信号論理により、一方のビット線BL<+>の電位を出力するか否かを切り替える。トランスファゲートTG2の相補制御端子には、インバータIV2の入出力ノードが接続されている。トランスファゲートTG2は、相補制御端子の信号論理により、他方のビット線BL<->の電位を出力するか否かを切り替える。
【0051】
図10の選択回路4は、差動トランジスタ対Q21、Q22にてビット線対BL<+>、BL<->の電位を比較し、電位が大きい方のビット線の電位をより高くする。これにより、インバータIV1、IV2のいずれか一方の出力がハイレベルになる。インバータIV1又はIV2の出力がハイになると、対応するトランスファゲートが開いて、対応するビット線の電位がトランスファゲートを通過して出力される。
【0052】
例えば、一方のビット線BL<+>の電位が他方のビット線BL<->の電位よりも高い場合は、トランジスタQ24のドレイン電圧がトランジスタQ25のドレイン電圧よりも低くなり、インバータIV1の出力はハイレベルになり、インバータIV2の出力はローレベルになる。よって、インバータIV1の出力で制御されるトランスファゲートTG1が開いて、一方のビット線BL<+>が選択されて、一方のビット線BL<+>の電位がトランスファゲートTG1を通って出力される。このとき、トランスファゲートTG2は閉じているため、トランスファゲートTG2の出力ノードはハイインピーダンスになる。
【0053】
選択回路4は、トランスファゲートTG1、TG2の出力信号のうち、ハイインピーダンスでない信号の電位に基づいて、ビット線対BL<+>、BL<->のデータを特定する。
【0054】
このように、第1の実施形態では、メモリセル回路3にビット線対BL<+>、BL<->を接続し、ビット線対BL<+>、BL<->を構成する一方のビット線BL<+>の電位と他方のビット線BL<->の電位のうち、電位が高い方のビット線の電位に基づいてビット線対BL<+>、BL<->のデータを特定する。これにより、ビット線電位の変動幅ができるだけ小さい方のビット線の電位に基づいてビット線の論理を特定でき、読出しデータの信頼性を向上できる。本実施形態の半導体集積回路1内のメモリセルMCに重み係数からなる第1データを記憶し、重み係数に掛け合わせる第2データをワード線WL0、WL1にて供給することで、演算制御回路2内で乗算を行い、乗算同士の和演算を行うことができ、積和演算処理を半導体集積回路1内で完結させることができる。
【0055】
(第2の実施形態)
図1の半導体集積回路1は、メモリセルMCに対して2本のワード線WL0、WL1を配置している。
図1の半導体集積回路1では、2本のワード線WL0、WL1のうちワード線WL0は、メモリセルMC内のデータとの乗算には用いられておらず、ワード線WL0が選択されたときに他方のビット線BL<->をディスチャージする目的で用いられている。
【0056】
ワード線WL0の選択数を数える手段があれば、
図1のワード線WL0とトランジスタQ11、Q12は必ずしも必要ではない。そこで、第2の実施形態による半導体集積回路1aは、ワード線WL0を省略して、メモリセルMCに対して1本のワード線を配置するものである。
【0057】
図11は第2の実施形態による半導体集積回路1aの回路図である。
図11では、
図1と共通する回路素子には同一の符号を付しており、以下では相違点を中心に説明する。
【0058】
図11の半導体集積回路1aは、
図1からワード線WL0とトランジスタQ11、Q12を省略した回路構成を有し、メモリセル回路3よりも簡略化されたメモリセル回路3aを有する。
図11において、ワード線WL1が選択されているときの回路動作は、
図1と同じである。
【0059】
ワード線WL1が選択されており、かつメモリセルMC内にデータ1が記憶されている場合には、一方のビット線BL<+>がトランジスタQ7、Q8を介してディスチャージされる。また、ワード線WL1が選択されており、かつメモリセルMC内にデータ0が記憶されている場合には、他方のビット線BL<->がトランジスタQ9、Q10を介してディスチャージされる。
【0060】
図11の半導体集積回路1aは、ワード線WL0が存在しないため、ワード線WL0が選択された場合(第2データが0の場合)の積和演算を行うことはできない。ただし、ビット線対BL<+>、BL<->に接続されるメモリセル回路3aの総数から、ワード線WL1の選択数を減じることにより、ワード線WL0の選択数を把握することができる。
【0061】
以下では、ビット線対BL<+>、BL<->に接続されているメモリセル回路3aの総数が8の場合について説明する。
図12Aはワード線WL1が8回連続して選択された場合の一方のビット線BL<+>の電位とディスチャージ電流の特性を示す図である。
図12Aの横軸はビット線電位を示し、縦軸はディスチャージ電流を示している。ワード線WL1が選択され、かつメモリセルMCに記憶された重み係数が1の場合に、一方のビット線BL<+>はディスチャージされる。ディスチャージの回数が多くなるほど、トランジスタQ7、Q8のドレイン-ソース間電圧Vdsが小さくなり、ビット線電位の変動が大きくなる。
【0062】
ワード線WL1が8回連続して選択された場合、
図12Aに示す一方のビット線BL<+>の特性は
図4Aの特性とほぼ同じになり、
図12Bに示す他方のビット線BL<->の特性も
図4Bとほぼ同じになる。よって、一方のビット線BL<+>と他方のビット線BL<->のうち、ビット線電位の高い方に基づいて、ビット線対BL<+>、BL<->のデータを精度よく特定することができる。
【0063】
ところが、ビット線対BL<+>、BL<->に接続された8個のメモリセルMCのうち、ワード線WL1の選択数が8未満の場合には、一方のビット線BL<+>又は他方のビット線BL<->の電位だけでは、ビット線対BL<+>、BL<->のデータを正しく特定できない。その理由は、ワード線WL1の選択数が8未満ということは、ワード線WL0の選択数が1以上であることを意味しており、
図11の半導体集積回路1aにはワード線WL0が存在しないため、ワード線WL0が選択された場合(第2データが0の場合)の乗算結果に基づいてビット線対BL<+>、BL<->のディスチャージができないためである。
【0064】
図13Aはワード線WL1が7回選択された場合の一方のビット線BL<+>の電位とディスチャージ電流の特性を示す図である。
図13Bはワード線WL1が7回選択された場合の他方のビット線BL<->の電位とディスチャージ電流の特性を示す図である。
図13Aに示す一方のビット線BL<+>の特性は正しいため、ディスチャージ回数が4回以内であれば、
図13Aの特性から、一方のビット線BL<+>のディスチャージ回数を正確に検出できる。
【0065】
その一方で、
図13Bに示す他方のビット線BL<->の特性は正しくない。その理由は、
図1に示すように、他方のビット線BL<->は、ワード線WL0が選択された数分だけディスチャージされるが、
図13Bの特性には、ワード線WL0の選択によるディスチャージが反映されていないためである。
図11の回路には、ワード線WL0が存在しないため、ワード線WL0が選択された数分だけ他方のビット線BL<->をディスチャージすることはできない。
【0066】
そこで、本実施形態では、補正回路を設けて、ワード線WL1の選択数をカウントする。ワード線WL1の選択数がわかれば、その数を、ビット線対BL<+>、BL<->に接続されたメモリセル回路3aの総数から減じることで、ワード線WL0の選択数を把握できる。ワード線WL0の選択数を把握できれば、
図13Bの特性から得られるディスチャージ回数を補正することができる。
【0067】
例えば、
図13Bに基づいてディスチャージ回数が2回と特定できても、ワード線WL0が1回選択されている場合には、他のビット線BL<->のディスチャージ回数は3回となる。このように、本実施形態では、補正回路にてワード線WL1又はWL0の選択数を検出して、
図13Bから特定されるディスチャージ回数を補正する。
【0068】
図14Aはワード線WL1が0回選択された場合の一方のビット線BL<+>の電位とディスチャージ電流を示す図である。
図14Bはワード線WL1が0回選択された場合の他方のビット線BL<->の電位とディスチャージ電流を示す図である。この場合、一方のビット線BL<+>と他方のビット線BL<->はいずれも電位の変動は生じず、かつディスチャージ電流も流れない。しかしながら、実際には、ワード線WL0が8回選択されているため、
図14Bに示す他方のビット線BL<->は、8回分のディスチャージが行われるはずであり、
図14Bの特性は補正されるべきである。
【0069】
以上のように、ワード線WL1の選択数が、ビット線対BL<+>、BL<->に接続されるメモリセル回路3の数よりも少ない場合には、ビット線BL<->のデータを補正回路により補正する必要がある。
【0070】
図15は補正回路5を備えた半導体集積回路1bの第1例を示す図である。
図15の半導体集積回路1bは、
図11の構成に加えて、選択回路4と、補正回路5と、第1参照セル群7と、第1参照ビット線対(第3配線対)BL1<+>、BL1<->と、第1カウンタ8とを有する。
【0071】
選択回路4は、一方のビット線BL<+>と他方のビット線BL<->のうち、電位の高い方を選択する。また、選択回路4は、選択されたビット線の電位に基づいて、ビット線対BL<+>、BL<->のデータを特定する。
【0072】
補正回路5は、選択回路4で特定されたビット線対BL<+>、BL<->のデータを補正する。上述したように、
図11の半導体集積回路1aにおける他方のビット線BL<->の電位は、ワード線WL0によるディスチャージが反映されていないため、補正回路5にて、ワード線WL0のディスチャージ回数分の補正を行う。
【0073】
第1参照セル群7は、
図11のビット線対BL<+>、BL<->に接続されるメモリセル回路3と同数の第1参照メモリセル回路3r1を有する。個々の第1参照メモリセル回路3r1は、
図11のメモリセル回路3と同様に、第1参照メモリセルMCr1と演算制御回路2とを有し、ワード線WL1に接続されている。ワード線WL1は、
図11の各メモリセル回路3が接続されるワード線WL1と同じである。複数の第1参照メモリセル回路3r1内の各第1参照メモリセルMCr1には、データ1が記憶される。複数の第1参照セル群7は、第1参照ビット線対BL1<+>、BL1<->に接続されている。第1参照ビット線対BL1<+>、BL1<->は、
図11のビット線対BL<+>、BL<->とは別個に設けられる。
【0074】
ワード線WL1が選択された場合、対応する第1参照メモリセル回路3r1から一方の第1参照ビット線にディスチャージ電流が流れて、一方の第1参照ビット線がディスチャージされる。
【0075】
このように、一方の第1参照ビット線は、ワード線WL1の選択数に応じた回数のディスチャージが行われる。
【0076】
第1カウンタ8は、第1参照ビット線対BL1<+>、BL1<->の電位に基づいて、ワード線WL1の選択数をカウントする。より具体的には、一方の第1参照ビット線BL1<+>は、ワード線WL1が選択されるたびにディスチャージされるため、第1カウンタ8は、一方の第1参照ビット線BL1<+>の電位に基づいて、ワード線WL1の選択数をカウントする。第1カウンタ8は、第1参照メモリセル回路3r1の数分のカウントを最大行うことができる。なお、第1参照ビット線BL1<+>のディスチャージ回数が増えるほど、第1参照ビット線BL1<+>の電位の変動幅が大きくなり、ディスチャージ回数を正確に判別できなくなるおそれがある。よって、
図15の第1参照メモリセル回路3r1の電源電圧レベルをメモリセル回路3aの電源電圧レベルよりも高くするなどして、ワード線WL1の選択数が多くても、第1参照ビット線BL1<+>の電位変動幅が大きくなりすぎないようにするのが望ましい。
【0077】
補正回路5は、第1カウンタ8のカウント値に基づいて、選択回路4で特定されたビット線対BL<+>、BL<->のデータを補正する。例えば、第1カウンタ8のカウント値によって、ワード線WL1の選択数が7回であることがわかると、
図13Bの特性により得られた値D7をD6に補正する。
【0078】
図13Bは補正前の他方のビット線BL<->のデータと補正後のデータとの対応関係を示している。ビット線対BL<+>、BL<->に8個のメモリセルMCが接続されており、ワード線WL1が7回選択された場合は、補正回路5を用いることで、補正前のデータD8~D1は、D7~D0に補正される。
【0079】
図15の第1参照セル群7は、ワード線WL1に接続されているため、ワード線WL1の選択数がゼロの場合にビット線対BL<+>、BL<->のデータを正しく補正できないおそれがある。
【0080】
図16は補正回路5を備えた半導体集積回路1cの第2例を示す図である。
図16の半導体集積回路1cは、
図15の構成に加えて、第2参照セル群9と、第4配線対BL2<+>、BL2<->と、第2カウンタ10とを有する。
【0081】
第2参照セル群9は、
図11のビット線対BL<+>、BL<->に接続されるメモリセル回路3と同数の第2参照メモリセル回路3r2を有する。個々の第2参照メモリセル回路3r2は、
図11のメモリセル回路3と同様に、参照メモリセルMCと演算制御回路2とを有し、ワード線WL0に接続されている。ワード線WL0は、
図11の半導体集積回路1aには設けられていないため、新たに設ける必要がある。
【0082】
複数の第2参照メモリセル回路3r2内の各第2参照メモリセルMCr2には、データ0が記憶される。このように、第2参照メモリセルMCr2には、第1参照メモリセルMCr1とは逆論理のデータが記憶される。複数の第2参照セル群9は、第2参照ビット線対BL2<+>、BL2<->に接続されている。第2参照ビット線対BL2<+>、BL2<->は、
図11のビット線対BL<+>、BL<->とは別個に設けられる。
【0083】
ワード線WL0が選択された場合、対応する第2参照メモリセル回路3r2から一方の第2参照ビット線にディスチャージ電流が流れて、一方の第2参照ビット線がディスチャージされる。
【0084】
このように、一方の第2参照ビット線は、ワード線WL0の選択数に応じた回数のディスチャージが行われる。
【0085】
第2カウンタ10は、第2参照ビット線対BL2<+>、BL2<->の電位に基づいて、ワード線WL0の選択数をカウントする。より具体的には、一方の第2参照ビット線BL2<->は、ワード線WL0が選択されるたびにディスチャージされるため、第2カウンタ10は、一方の第2参照ビット線BL2<->の電位に基づいて、ワード線WL0の選択数をカウントする。第2カウンタ10は、第2参照メモリセル回路3r2の数分のカウントを最大行うことができる。
【0086】
補正回路5は、第1カウンタ8のカウント値と第2カウンタ10のカウント値の少なくとも一方に基づいて、選択回路4で特定されたビット線対BL<+>、BL<->のデータを補正する。例えば、第2カウンタ10のカウント値によって、ワード線WL0の選択数が8回であることがわかると、
図14Bの特性により得られた値D8をD0に補正する。第1カウンタ8と第2カウンタ10は、第1参照ビット線BL1<+>、第2参照ビット線BL2<->のディスチャージ回数をカウントするが、ディスチャージ回数が増えるほど、第1参照ビット線BL1<+>、第2参照ビット線BL2<->の電位の変動幅が大きくなり、ディスチャージ回数を正確に判別できなくなる。よって、補正回路5は、第1参照ビット線BL1<+>、第2参照ビット線BL2<->のうち、ディスチャージ回数が少ない方のカウント値に基づいて、ワード線WL0又はWL1の選択数を把握するのが望ましい。
【0087】
このように、第2の実施形態では、メモリセル回路3ごとに1本のワード線を設けることで、第1の実施形態と同様の積和演算を行うことができる。よって、第1の実施形態よりも、メモリセル回路3の回路構成を簡略化できる。第2の実施形態の場合、ワード線WL0を省略しているため、ワード線WL0を選択する積和演算を行う場合には、ビット線対BL<+>、BL<->のデータを補正する必要がある。このため、補正回路5を設けて、ワード線WL1又はWL0の選択数を検出して、検出された選択数に基づいてビット線対BL<+>、BL<->のデータを補正することで、第1の実施形態と同様の精度でビット線対BL<+>、BL<->のデータを特定できる。補正回路5や第1参照セル群7、第2参照セル群9、第1カウンタ8、第2カウンタ10などを設ける必要があるが、これらの追加回路は、積和演算を行う複数のメモリセル回路3を含むメモリセルMCアレイに対して1つ設ければよいため、メモリセル回路3の内部構成を簡易化できることで、メモリセルMCアレイのサイズを第1の実施形態よりも大幅に削減でき、半導体集積回路1a全体としても、第1の実施形態よりも小型化できる。
【0088】
(第3の実施形態)
第1又は第2の実施形態による半導体集積回路1、1a、1b、1cは、計算モデルを生成して任意の情報処理を行う情報処理装置に適用することができる。
図17は情報処理装置11の一例を示すブロック図である。
図17の情報処理装置11は、入力部12と、学習部13と、本実施形態による半導体集積回路1と、モデル生成部14と、モデル記憶部15と、情報処理部16とを備えている。
図17の情報処理装置の全体は、同一または複数の半導体基板上に形成可能である。なお、
図17では、
図1の半導体集積回路1を有する例を示しているが、半導体集積回路1a、1b又は1cを用いることも可能である。
【0089】
入力部12は、計算モデルの生成に必要な種々の情報を入力する。学習部13は、計算モデルで用いられるニューラルネットワークの重み係数を更新する処理を行う。
図17の情報処理装置11は、ニューラルネットワークの入力データと重み係数との積和演算を半導体集積回路1内で行う。学習部13は、半導体集積回路1のビット線対BL<+>、BL<->に出力される積和演算結果を取得して、重み係数を更新する学習処理を行う。半導体集積回路1は、学習部13の内部に設けてもよい。
【0090】
モデル生成部14は、学習部13による学習結果を反映させた計算モデルを生成する。計算モデルは、更新済みの重み係数を含むニューラルネットワークを有する。計算モデルに入力データを与えることで、学習結果を反映させた出力データが得られる。モデル記憶部15は、モデル生成部14が生成した計算モデルを記憶する。
【0091】
情報処理部16は、モデル記憶部15に記憶された学習済みの計算モデルに対して、入力部12から入力されたデータを入力してニューラルネットワークで積和演算処理を行って、所定の情報処理を行った結果を取得する。このとき、情報処理部16は、積和演算処理を半導体集積回路1にて行うことで、迅速に積和演算処理を行うことができる。
【0092】
図17は情報処理装置11の一例であり、本実施形態による半導体集積回路1は、必ずしもニューラルネットワークの重み係数と入力データとの積和演算に特化したものではなく、種々の積和演算に適用可能である。
このように、第3の実施形態では、すべてハードウェアでニューラルネットワークを利用した積和演算を行えるため、きわめて高速に積和演算及び情報処理を行うことができる。
【0093】
本開示の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本開示の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本開示の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【符号の説明】
【0094】
1、1a、1b、1c 半導体集積回路、2 演算制御回路、3、3a メモリセル回路、3r1 第1参照メモリセル回路、3r2 第2参照メモリセル回路、4 選択回路、5 補正回路、7 第1参照セル群、8 第1カウンタ、9 第2参照セル群、10 第2カウンタ、11 情報処理装置、12 入力部、13 学習部、14 モデル生成部、15 モデル記憶部、16 情報処理部、100 半導体集積回路