JP2022052134A - 演算装置及び演算方法 - Google Patents

演算装置及び演算方法 Download PDF

Info

Publication number
JP2022052134A
JP2022052134A JP2020158329A JP2020158329A JP2022052134A JP 2022052134 A JP2022052134 A JP 2022052134A JP 2020158329 A JP2020158329 A JP 2020158329A JP 2020158329 A JP2020158329 A JP 2020158329A JP 2022052134 A JP2022052134 A JP 2022052134A
Authority
JP
Japan
Prior art keywords
bit line
memory cell
line
bit
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020158329A
Other languages
English (en)
Inventor
文彦 橘
Fumihiko Tachibana
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Kioxia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kioxia Corp filed Critical Kioxia Corp
Priority to JP2020158329A priority Critical patent/JP2022052134A/ja
Priority to US17/353,044 priority patent/US11610626B2/en
Publication of JP2022052134A publication Critical patent/JP2022052134A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4094Bit-line management or control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4085Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4097Bit-line organisation, e.g. bit-line layout, folded bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • H03M1/22Analogue/digital converters pattern-reading type
    • H03M1/24Analogue/digital converters pattern-reading type using relatively movable reader and disc or strip
    • H03M1/26Analogue/digital converters pattern-reading type using relatively movable reader and disc or strip with weighted coding, i.e. the weight given to a digit depends on the position of the digit within the block or code word, e.g. there is a given radix and the weights are powers of this radix

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Static Random-Access Memory (AREA)

Abstract

Figure 2022052134000001
【課題】演算精度を向上させることができる演算装置及び演算方法を提供する。
【解決手段】実施形態の演算装置は、SRAMセルW1[0]、W2[0]にそれぞれ接続されたローカルビット線LBLX11、LBLX21と、グローバルビット線GBLX1とを含む階層ビット線構造を備える。コントローラ14は、転送トランジスタN14によってSRAMセルW1[0]とローカルビット線LBLX11との間、及びSRAMセルW2[0]とローカルビット線LBLX21との間を導通状態に設定する。さらに、スイッチ回路SX1、SX2を接続状態に設定し、ローカルビット線LBLX11とグローバルビット線GBLX1との間、及びローカルビット線LBLX21とグローバルビット線GBLX1との間を導通状態にして、ローカルビット線LBLX11、LBLX21、及びグローバルビット線GBLX1を第1電圧に遷移させる。
【選択図】図2

Description

実施形態は、SRAMを備えた演算装置及び演算方法に関する。
SRAM(static random access memory)を使用した演算装置及び演算方法が知られている。
特開2019-79589号公報 特開平7-29384号公報 特開2020-42873号公報
演算精度を向上させることができる演算装置及び演算方法を提供する。
実施形態の演算装置は、第1インバータ及び第2インバータの出力端と入力端とが互いに交差接続された第1メモリセルと、前記第1メモリセルに電気的に接続された第1ビット線と、前記第1メモリセルと前記第1ビット線との間に接続された第1転送トランジスタと、第3インバータ及び第4インバータの出力端と入力端とが互いに交差接続された第2メモリセルと、前記第2メモリセルに電気的に接続され、前記第1ビット線と異なる第2ビット線と、前記第2メモリセルと前記第2ビット線との間に接続された第2転送トランジスタと、前記第1ビット線及び前記第2ビット線と異なる第3ビット線と、前記第1ビット線と前記第3ビット線との間に接続され、前記第1ビット線と前記第3ビット線とを接続状態あるいは非接続状態のいずれかの状態に切り換える第1スイッチ回路と、前記第2ビット線と前記第3ビット線との間に接続され、前記第2ビット線と前記第3ビット線とを接続状態あるいは非接続状態のいずれかの状態に切り換える第2スイッチ回路と、前記第1転送トランジスタ、前記第2転送トランジスタ、第1スイッチ回路、及び第2スイッチ回路を制御するコントローラとを具備する。前記コントローラは、前記第1転送トランジスタによって前記第1メモリセルと前記第1ビット線との間を導通状態に設定し、前記第2転送トランジスタによって前記第2メモリセルと前記第2ビット線との間を導通状態に設定する。さらに、前記コントローラは、前記第1スイッチ回路及び前記第2スイッチ回路を接続状態に設定し、前記第1ビット線と前記第3ビット線との間、及び前記第2ビット線と前記第3ビット線との間を導通状態にして、前記第1ビット線、前記第2ビット線、及び前記第3ビット線を第1電圧に遷移させる。
図1は、実施形態の演算装置の構成を示す回路図である。 図2は、実施形態におけるメモリ演算回路の詳細な構成を示す回路図である。 図3は、実施形態におけるSRAMセルの構成を示す回路図である。 図4は、SRAMセルの基本的な読み出し動作を示すタイミングチャートである。 図5は、SRAMセルの基本的な読み出し動作を示すタイミングチャートである。 図6は、実施形態の演算装置におけるSRAMセルの読み出し動作を説明するための回路図である。 図7は、実施形態におけるSRAMセルの読み出し動作を示すタイミングチャートである。 図8は、実施形態におけるSRAMセルの読み出し動作を示すタイミングチャートである。 図9は、実施形態におけるSRAMセルの読み出し動作を示すタイミングチャートである。 図10は、実施形態におけるSRAMセルの読み出し動作の信号の対応関係を示す図である。 図11は、実施形態における第1例のSRAMセルの積和演算動作を説明するための回路図である。 図12は、第1例のSRAMセルの積和演算動作を示すタイミングチャートである。 図13は、実施形態における第2例のSRAMセルの積和演算動作を説明するための回路図である。 図14は、第2例のSRAMセルの積和演算動作を示すタイミングチャートである。 図15は、実施形態における第3例のSRAMセルの積和演算動作を説明するための回路図である。 図16は、第3例の積和演算動作を示すタイミングチャートである。 図17は、実施形態の演算装置における1ビット×1ビットの積和演算動作を示すフローチャートである。 図18は、実施形態における1ビット×1ビットの積和演算動作を説明するための回路図である。 図19は、実施形態における1ビット×1ビットの積和演算動作のタイミングチャートである。 図20は、実施形態の演算装置における1ビット×8ビットの積和演算動作を示すフローチャートである。 図21は、実施形態における1ビット×8ビットの積和演算動作を説明するための回路図である。 図22は、実施形態における1ビット×8ビットの積和演算動作のタイミングチャートである。 図23は、実施形態の演算装置における4ビット×8ビットの積和演算動作を示すフローチャートである。 図24は、実施形態における4ビット×8ビットの積和演算動作を説明するための回路図である。 図25は、実施形態における4ビット×8ビットの積和演算動作のタイミングチャートである。 図26は、実施形態における4ビット×8ビットの積和演算動作を2の補数を用いて行う場合のフローチャートである。
以下、図面を参照して実施形態について説明する。以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、及び配置等を下記のものに特定するものではない。
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。各機能ブロックが以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
1.実施形態
以下に、実施形態の演算装置及び演算方法について説明する。
1.1 実施形態の構成
1.1.1 演算装置の構成
図1は、実施形態の演算装置の構成を示す回路図である。演算装置10は、複数のメモリ演算回路MA1、MA2、…、MAm(mは1以上の自然数)、ロウデコーダ及びワード線ドライバ11、グローバルワード線ドライバ12、プリチャージドライバ13、及びコントローラ14を備える。以降、複数のメモリ演算回路MA1~MAmを示す場合、メモリ演算回路MAと表記する。
メモリ演算回路MAmは、複数のSRAM(static random access memory)のメモリセル(以下、SRAMセルと記す)W1[0]、W1[1]、W1[2]、…、W1[7]、SRAMセルW2[0]、W2[1]、W2[2]、…、W2[7]、…、SRAMセルWn[0]、Wn[1]、Wn[2]、…、Wn[7](nは1以上の自然数)を有する。メモリ演算回路MAmは、SRAMセルW1[0]~W1[7]、W2[0]~W2[7]、…、Wn[0]~Wn[7]に記憶されたデータを読み出し、これらデータの積和演算を行う。以降、SRAMセルW1[0]~W1[7]、W2[0]~W2[7]、…、Wn[0]~Wn[7]の各々を示す場合、SRAMセルWnと表記する。
ロウデコーダ及びワード線ドライバ11は、読み出し対象あるいは書き込み対象のSRAMセルWnに接続されたワード線を選択し、選択したワード線に電圧を供給する。グローバルワード線ドライバ12は、メモリ演算回路MAmが含むローカルビット線とグローバルビット線との間の接続を制御する。プリチャージドライバ13は、メモリ演算回路MAmが含むプリチャージ回路の動作を制御する。コントローラ14は、メモリ演算回路MAm、ロウデコーダ及びワード線ドライバ11、グローバルワード線ドライバ12、及びプリチャージドライバ13を制御する。これらの詳細については後述する。
1.1.2 メモリ演算回路の構成
以下に、図1及び図2を用いて、メモリ演算回路MA1~MAmの構成を説明する。図2は、図1に示したメモリ演算回路MA1の詳細な構成を示す回路図である。メモリ演算回路MA1は、SRAMセル群SC1、読み出し及び書き込み回路(以下、RW回路と記す)15、アナログ-デジタル変換回路及びビットシフタ(以下、ADC及びビットシフタと記す)16、及びアキュムレータ17を有する。
SRAMセル群SC1は、前述したSRAMセルW1[0]~W1[7]、W2[0]~W2[7]、…、Wn[0]~Wn[7]、ローカルプリチャージ回路LPR1、LPR2、…、LPRn、及びグローバルプリチャージ回路GPRを有する。
SRAMセルWnが記憶するデータには、重み付けがなれている。具体的には、SRAMセルW1[0]、W2[0]、…、Wn[0]の各々のデータは、重みWE1を有する。SRAMセルW1[1]、W2[1]、…、Wn[1]の各々のデータは、重みWE1と異なる重みWE2を有する。例えば、重みWE2は重みWE1の2倍である。
以下、同様に、図示しないが、SRAMセルW1[2]、W2[2]、…、Wn[2]の各々のデータは、重みWE1及びWE2と異なる重みWE3を有する。例えば、重みWE3は重みWE2の2倍であり、重みWE1の2倍である。SRAMセルW1[3]、W2[3]、…、Wn[3]の各々のデータは、重みWE1~WE3と異なる重みWE4を有する。例えば、重みWE4は重みWE3の2倍であり、重みWE1の2倍である。
SRAMセルW1[4]、W2[4]、…、Wn[4]の各々のデータは、重みWE1~WE4と異なる重みWE5を有する。例えば、重みWE5は重みWE4の2倍であり、重みWE1の2倍である。SRAMセルW1[5]、W2[5]、…、Wn[5]の各々のデータは、重みWE1~WE5と異なる重みWE6を有する。例えば、重みWE6は重みWE5の2倍であり、重みWE1の2倍である。
SRAMセルW1[6]、W2[6]、…、Wn[6]の各々のデータは、重みWE1~WE6と異なる重みWE7を有する。例えば、重みWE7は重みWE6の2倍であり、重みWE1の2倍である。さらに、SRAMセルW1[7]、W2[7]、…、Wn[7]の各々のデータは、重みWE1~WE7と異なる重みWE8を有する。例えば、重みWE8は重みWE7の2倍であり、重みWE1の2倍である。
SRAMセルW1[0]~W1[7]は、ローカルビット線LBL11とLBLX11との間に並列に接続される。SRAMセルW2[0]~W2[7]は、ローカルビット線LBL21とLBLX21との間に並列に接続される。同様に、SRAMセルWn[0]~Wn[7]は、ローカルビット線LBLn1とLBLXn1との間に並列に接続される。
SRAMセルW1[0]にはワード線WL1_0が接続され、SRAMセルW1[1]にはワード線WL1_1が接続される。以下、図示しないが、SRAMセルW1[2]にはワード線WL1_2が接続され、SRAMセルW1[3]にはワード線WL1_3が接続される。
SRAMセルW1[4]にはワード線WL1_4が接続され、SRAMセルW1[5]にはワード線WL1_5が接続される。さらに、SRAMセルW1[6]にはワード線WL1_6が接続され、SRAMセルW1[7]にはワード線WL1_7が接続される。
同様に、SRAMセルW2[0]~W2[7]には、ワード線WL2_0、WL2_1、…、WL2_7がそれぞれ接続される。SRAMセルWn[0]~Wn[7]には、ワード線WLn_0、WLn_1、…、WLn_7がそれぞれ接続される。以降、ワード線WL1_0~WL1_7、WL2_0~WL2_7、及びWLn_0~WLn_7の各々を示す場合、ワード線WLnと表記する。
ワード線WL1_0~WL1_7、WL2_0~WL2_7、及びWLn_0~WLn_7は、ロウデコーダ及びワード線ドライバ11に接続される。ロウデコーダ及びワード線ドライバ11は、読み出し対象あるいは書き込み対象のSRAMセルWnに接続されたワード線WLnを選択及び駆動する。
ローカルプリチャージ回路LPR1は、ローカルビット線LBL11とLBLX11との間に接続される。ローカルプリチャージ回路LPR1は、pチャネルMOS電界効果トランジスタ(以下、pMOSトランジスタと記す)P1及びP2を有する。pMOSトランジスタP1のドレインはローカルビット線LBL11に接続され、pMOSトランジスタP2のドレインはローカルビット線LBLX11に接続される。pMOSトランジスタP1及びP2のソースは、電源電圧端VDDに接続される。pMOSトランジスタP1及びP2のゲートは、プリチャージ線LPRE1に接続される。
プリチャージ線LPRE1は、プリチャージドライバ13に接続される。ローカルプリチャージ回路LPR1は、プリチャージドライバ13から供給されるプリチャージ線LPRE1の信号レベルに従って、ローカルビット線LBL11及びLBLX11をH(high)の電圧レベル(以下、“H”と記す)にプリチャージする、あるいは“H”へのプリチャージを停止する。“H”は、例えば、電源電圧端VDDの電圧である。
ローカルプリチャージ回路LPR2は、ローカルビット線LBL21とLBLX21との間に接続される。ローカルプリチャージ回路LPR2は、pMOSトランジスタP1及びP2を有する。pMOSトランジスタP1のドレインはローカルビット線LBL21に接続され、pMOSトランジスタP2のドレインはローカルビット線LBLX21に接続される。pMOSトランジスタP1及びP2のソースは、電源電圧端VDDに接続される。pMOSトランジスタP1及びP2のゲートは、プリチャージ線LPRE2に接続される。
プリチャージ線LPRE2は、プリチャージドライバ13に接続される。ローカルプリチャージ回路LPR2は、プリチャージドライバ13から供給されるプリチャージ線LPRE2の信号レベルに従って、ローカルビット線LBL21及びLBLX21を“H”にプリチャージする、あるいは“H”へのプリチャージを停止する。
ローカルプリチャージ回路LPRnは、ローカルビット線LBLn1とLBLXn1との間に接続される。ローカルプリチャージ回路LPRnは、pMOSトランジスタP1及びP2を有する。pMOSトランジスタP1のドレインはローカルビット線LBLn1に接続され、pMOSトランジスタP2のドレインはローカルビット線LBLXn1に接続される。pMOSトランジスタP1及びP2のソースは、電源電圧端VDDに接続される。pMOSトランジスタP1及びP2のゲートは、プリチャージ線LPREnに接続される。
プリチャージ線LPREnは、プリチャージドライバ13に接続される。ローカルプリチャージ回路LPRnは、プリチャージドライバ13から供給されるプリチャージ線LPREnの信号レベルに従って、ローカルビット線LBLn1及びLBLXn1を“H”にプリチャージする、あるいは“H”へのプリチャージを停止する。
ローカルビット線LBL11は、スイッチ回路S1を介してグローバルビット線GBL1に接続される。ローカルビット線LBLX11は、スイッチ回路SX1を介してグローバルビット線GBLX1に接続される。ローカルビット線LBL21は、スイッチ回路S2を介してグローバルビット線GBL1に接続される。ローカルビット線LBLX21は、スイッチ回路SX2を介してグローバルビット線GBLX1に接続される。同様に、ローカルビット線LBLn1は、スイッチ回路Snを介してグローバルビット線GBL1に接続される。ローカルビット線LBLXn1は、スイッチ回路SXnを介してグローバルビット線GBLX1に接続される。
スイッチ回路S1及びSX1の制御端は、グローバルワード線GWL1に接続される。グローバルワード線GWL1は、グローバルワード線ドライバ12に接続される。スイッチ回路S1は、グローバルワード線ドライバ12から供給されるグローバルワード線GWL1の信号レベルに従って、ローカルビット線LBL11とグローバルビット線GBL1との間を接続状態あるいは非接続状態に設定する。スイッチ回路SX1は、グローバルワード線ドライバ12から供給されるグローバルワード線GWL1の信号レベルに従って、ローカルビット線LBLX11とグローバルビット線GBLX1との間を接続状態あるいは非接続状態に設定する。
スイッチ回路S2及びSX2の制御端は、グローバルワード線GWL2に接続される。グローバルワード線GWL2は、グローバルワード線ドライバ12に接続される。スイッチ回路S2は、グローバルワード線ドライバ12から供給されるグローバルワード線GWL2の信号レベルに従って、ローカルビット線LBL21とグローバルビット線GBL1との間を接続状態あるいは非接続状態に設定する。スイッチ回路SX2は、グローバルワード線ドライバ12から供給されるグローバルワード線GWL2の信号レベルに従って、ローカルビット線LBLX21とグローバルビット線GBLX1との間を接続状態あるいは非接続状態に設定する。
同様に、スイッチ回路Sn及びSXnの制御端は、グローバルワード線GWLnに接続される。グローバルワード線GWLnは、グローバルワード線ドライバ12に接続される。スイッチ回路Snは、グローバルワード線ドライバ12から供給されるグローバルワード線GWLnの信号レベルに従って、ローカルビット線LBLn1とグローバルビット線GBL1との間を接続状態あるいは非接続状態に設定する。スイッチ回路SXnは、グローバルワード線ドライバ12から供給されるグローバルワード線GWLnの信号レベルに従って、ローカルビット線LBLXn1とグローバルビット線GBLX1との間を接続状態あるいは非接続状態に設定する。
グローバルビット線GBL1とGBLX1との間には、グローバルプリチャージ回路GPRが接続される。グローバルプリチャージ回路GPRは、pMOSトランジスタP3及びP4を有する。pMOSトランジスタP3のドレインはグローバルビット線GBL1に接続され、pMOSトランジスタP4のドレインはグローバルビット線GBLX1に接続される。pMOSトランジスタP3及びP4のソースは、電源電圧端VDDに接続される。pMOSトランジスタP3及びP4のゲートは、プリチャージ線GPREに接続される。
プリチャージ線GPREは、プリチャージドライバ13に接続される。グローバルプリチャージ回路GPRは、プリチャージドライバ13から供給されるプリチャージ線GPREの信号レベルに従って、グローバルビット線GBL1及びGBLX1を“H”にプリチャージする、あるいは“H”へのプリチャージを停止する。
グローバルビット線GBL1及びGBLX1は、RW回路15に接続される。RW回路15は、グローバルビット線GBL1及びGBLX1を用いて、SRAMセルWnにデータを書き込む。RW回路15は、またグローバルビット線GBLX1を用いて、SRAMセルWnからデータを読み出す。
グローバルビット線GBLX1は、ADC及びビットシフタ16に接続される。ADC及びビットシフタ16は、グローバルビット線GBLX1の電圧レベルをデジタル値に変換して信号ASとして出力する。ADC及びビットシフタ16は、また、読み出したSRAMセルWnが重みWE2~WE8を持つ場合、グローバルビット線GBLX1の電圧レベルをデジタル値に変換して信号ASとする。さらに、信号ASに対して、SRAMセルWnが持つ重みWE2~WE8に応じてビットシフト(例えば、左シフト)を行い、信号BSとして出力する。例えば、読み出したSRAMセルWnが重みWE2を持つ場合、グローバルビット線GBLX1の電圧レベルを、アナログ-デジタル変換して信号ASを得る。さらに、信号ASに対して、重みWE2に応じたビット数だけ左シフトを行い、信号BSとして出力する。
ADC及びビットシフタ16の出力端は、アキュムレータ17に接続される。アキュムレータ17は、ADC及びビットシフタ16から出力された信号ASあるいは信号BSを累算(あるいは積算)し、累算された信号ACCを出力する。
以下に、メモリ演算回路MA2の構成を説明する。メモリ演算回路MA2の構成は、SRAMセル群SC2、ローカルビット線LBL12~LBLn2及びLBLX12~LBLXn2、グローバルビット線GBL2及びGBLX2がメモリ演算回路MA1と異なり、その他の構成はメモリ演算回路MA1と同様である。
以下に、メモリ演算回路MAmの構成を説明する。メモリ演算回路MAmの構成は、SRAMセル群SCm、ローカルビット線LBL1m~LBLnm及びLBLX1m~LBLXnm、グローバルビット線GBLm及びGBLXmがメモリ演算回路MA1と異なり、その他の構成はメモリ演算回路MA1と同様である。
前述の構成では、8個のSRAMセルWn[0]~Wn[7]がローカルビット線LBLnmとLBLXnmとの間に接続される例を述べたが、ローカルビット線LBLnmとLBLXnmとの間に接続されるSRAMセルWnの数は任意であり、例えば16個あるいは32個でもよい。
1.1.3 SRAMセルの構成
次に、図3を用いて、メモリ演算回路MAmが含むSRAMセルWnの回路構成を説明する。図3は、SRAMセルWnの構成を示す回路図である。
SRAMセルWnは、pMOSトランジスタP11とnチャネルMOS電界効果トランジスタ(以下、nMOSトランジスタ)N11を含む第1インバータIV1と、pMOSトランジスタP12とnMOSトランジスタN12を含む第2インバータIV2と、nMOSトランジスタN13及びN14とを備える。SRAMセルWnは、インバータIV1及びIV2により、ノードW及びWXにそれぞれ“H”及びL(low)の電圧レベル(以下、“L”と記す)または“L”及び“H”のデータを記憶する。“L”は、例えば、基準電圧端(例えば、接地電位ノード)GNDの電圧である。
インバータIV1とインバータIV2は、出力端と入力端とが互いにクロスカップル(交差接続)されている。すなわち、インバータIV1の出力端がインバータIV2の入力端に接続され、インバータIV1の入力端がインバータIV2の出力端に接続される。pMOSトランジスタP11及びP12のソースは電源電圧端VDDに接続され、nMOSトランジスタN11及びN12のソースは、基準電圧端GNDに接続される。
インバータIV1の出力端、すなわちpMOSトランジスタP11のドレインとnMOSトランジスタN11のドレインは、nMOSトランジスタN13のソース(あるいはドレイン)に接続される。nMOSトランジスタN13のドレイン(あるいはソース)は、ローカルビット線LBLnmに接続される。インバータIV2の出力端、すなわちpMOSトランジスタP12のドレインとnMOSトランジスタN12のドレインは、nMOSトランジスタN14のソース(あるいはドレイン)に接続される。nMOSトランジスタN14のドレイン(あるいはソース)は、ローカルビット線LBLXnmに接続される。
nMOSトランジスタN13及びN14のゲートには、ワード線WLnが接続される。nMOSトランジスタN13及びN14は、ワード線WLnの電圧によってオン状態あるいはオフ状態となり、転送トランジスタとして働く。
1.2 実施形態の動作
以下に、実施形態の演算装置10における動作について説明する。
1.2.1 SRAMセルWnの基本的な動作
まず、図4、及び図5を用いて、SRAMセルWnの基本的な読み出し動作について説明する。図4及び図5は、SRAMセルWnの基本的な読み出し動作を示すタイミングチャートである。
SRAMセルWnが“H”(例えば、1)を記憶する場合、ノードWが“H”を保持し、ノードWXが“L”を保持するものとする。この場合、以下のように動作する。
図4に示すように、プリチャージドライバ13は、プリチャージ線LPREを“L”から“H”に設定する。これにより、ローカルビット線LBLnm及びLBLXnmの“H”へのプリチャージが停止する。
次に、ロウデコーダ及びワード線ドライバ11は、ワード線WLnを“H”に設定する。これにより、nMOSトランジスタN13及びN14はオン状態に遷移する。
ここで、SRAMセルWnのノードWが“H”を保持し、ノードWXが“L”を保持しているため、ローカルビット線LBLXnmの電荷は、nMOSトランジスタN14及びN12を通ってディスチャージされる。これにより、ローカルビット線LBLXnmの電圧は“H”から“L”に遷移する。一方、ローカルビット線LBLnmの電圧は“H”のまま維持される。
また、SRAMセルWnが“L”(例えば、0)を記憶する場合、ノードWが“L”を保持し、ノードWXが“H”を保持するものとする。この場合、以下のように動作する。
図5に示すように、プリチャージドライバ13は、ローカルプリチャージ線LPREを“L”から“H”に設定する。これにより、ローカルビット線LBLnm及びLBLXnmの“H”へのプリチャージが停止する。
次に、ロウデコーダ及びワード線ドライバ11は、ワード線WLnを“H”に設定する。これにより、nMOSトランジスタN13及びN14はオン状態に遷移する。
ここで、SRAMセルWnのノードWが“L”を保持し、ノードWXが“H”を保持しているため、ローカルビット線LBLXnmの電圧は“H”のまま維持される。一方、ローカルビット線LBLnmの電荷は、nMOSトランジスタN13及びN11を通ってディスチャージされる。これにより、ローカルビット線LBLnmの電圧は“H”から“L”に遷移する。
1.2.2 SRAMセルWnの読み出し動作
次に、演算装置10におけるSRAMセルWnの読み出し動作を説明する。ここでは、読み出し対象をSRAMセルW1[0]とする。SRAMセルW1[0]はローカルビット線LBL11とLBLX11との間に接続され、SRAMセルW1[0]のnMOSトランジスタN13及びN14のゲートには、ワード線WL1_0が接続される。
図6は、演算装置10におけるSRAMセルW1[0]の読み出し動作を説明するための回路図である。図7、図8及び図9は、SRAMセルW1[0]の読み出し動作を示すタイミングチャートである。入力信号IN1はワード線WL1_0に対応し、入力信号IN1が“H”のとき、ワード線WL1_0が“H”に設定され、入力信号IN1が“L”のとき、ワード線WL1_0が“L”に設定される。
(1)入力信号IN1が“H”の場合
SRAMセルW1[0]が“H”を記憶する場合、例えば、ノードWが“H”を保持し、ノードWXが“L”を保持する。この場合、SRAMセルW1[0]の読み出し動作は以下の通りである。
図7に示すように、プリチャージドライバ13は、プリチャージ線LPRE1を“L”から“H”に設定する。これにより、ローカルビット線LBL11及びLBLX11の“H”へのプリチャージが停止する。
次に、ロウデコーダ及びワード線ドライバ11は、ワード線WL1_0を“H”に設定する。これにより、nMOSトランジスタN13及びN14はオン状態になり、SRAMセルW1[0]とローカルビット線LBL11間、及びSRAMセルW1[0]とローカルビット線LBLX11間は導通状態になる。
ここで、ノードWが“H”を保持し、ノードWXが“L”を保持しているため、ローカルビット線LBLX11の電荷はディスチャージされる。これにより、ローカルビット線LBLX11の電圧は“H”から“L”に遷移する。一方、ローカルビット線LBL11の電圧は“H”のまま維持される。
一方、SRAMセルW1[0]が“L”を記憶する場合、例えば、ノードWが“L”を保持し、ノードWXが“H”を保持する。この場合、SRAMセルW1[0]の読み出し動作は以下の通りである。
図8に示すように、プリチャージドライバ13は、プリチャージ線LPRE1を“L”から“H”に設定する。これにより、ローカルビット線LBL11及びLBLX11の“H”へのチャージが停止する。
次に、ロウデコーダ及びワード線ドライバ11は、ワード線WL1_0を“H”に設定する。これにより、nMOSトランジスタN13及びN14はオン状態になり、SRAMセルW1[0]とローカルビット線LBL11間、及びSRAMセルW1[0]とローカルビット線LBLX11間は導通状態になる。
ここで、ノードWが“L”を保持し、ノードWXが“H”を保持しているため、ローカルビット線LBLX11の電圧は“H”のまま維持される。一方、ローカルビット線LBL11の電荷はディスチャージされる。これにより、ローカルビット線LBL11の電圧は“H”から“L”に遷移する。
(2)入力信号IN1が“L”の場合
入力信号IN1が“L”の場合は、SRAMセルW1[0]が“H”あるいは“L”のいずれを記憶する場合でも、SRAMセルW1[0]の読み出し動作は以下の通りである。
図9に示すように、プリチャージドライバ13は、プリチャージ線LPRE1を“L”から“H”に設定する。これにより、ローカルビット線LBL11及びLBLX11の“H”へのプリチャージが停止する。
次に、ロウデコーダ及びワード線ドライバ11は、ワード線WL1_0を“L”のまま維持する。これにより、nMOSトランジスタN13及びN14はオフ状態のまま維持され、SRAMセルW1[0]とローカルビット線LBL11間、及びSRAMセルW1[0]とローカルビット線LBLX11間は、遮断状態のままである。このため、ローカルビット線LBL11及びLBLX11の電圧は“H”のまま維持される。
図10は、上述したSRAMセルW1[0]の読み出し動作における各信号の対応関係を示す図である。ローカルビット線LBLX11の電圧は、入力信号IN1が“H”で、SRAMセルW1[0]が“H”のとき、“L”になり、入力信号IN1が“H”で、SRAMセルW1[0]が“L”のとき、“H”になる。さらに、ローカルビット線LBLX11の電圧は、入力信号IN1が“L”のとき、SRAMセルW1[0]が“H”か“L”かに係わらず、“H”になる。
ローカルビット線LBL11の電圧は、入力信号IN1が“H”で、SRAMセルW1[0]が“H”のとき、“H”になり、入力信号IN1が“H”で、SRAMセルW1[0]が“L”のとき、“L”になる。さらに、ローカルビット線LBL11の電圧は、入力信号IN1が“L”のとき、SRAMセルW1[0]が“H”か“L”かに係わらず、“H”になる。
なお、SRAMセルW1[0]が“H”を記憶する場合、ノードWが“H”を保持し、ノードWXが“L”を保持するものとしたが、逆にノードWが“L”を保持し、ノードWXが“H”を保持してもよい。この場合、SRAMセルW1[0]が“L”を記憶する場合、ノードWが“H”を保持し、ノードWXが“L”を保持する。そして、この場合、ローカルビット線LBLX11及びLBL11に読み出される電圧も逆になる。
また、上述では、ローカルビット線LBL11及びLBLX11とワード線WL1_0に接続されたSRAMセルW1[0]の読み出し動作を説明したが、その他のローカルビット線LBLnm及びLBLXnmとワード線WLn_0~WLn_7にそれぞれ接続されたSRAMセルWn[0]~Wn[7]の読み出し動作についても同様である。
1.2.3 SRAMセルWnの積和演算動作(1)
次に、演算装置10におけるSRAMセルWnの積和演算動作を、第1~第3例として以下に説明する。
先ず、第1例としての3つのSRAMセルW1[0]、W2[0]、W3[0]による積和演算動作を説明する。図11は、第1例のSRAMセルW1[0]、W2[0]、W3[0]の積和演算動作を説明するための回路図である。図12は、第1例のSRAMセルW1[0]、W2[0]、W3[0]の積和演算動作を示すタイミングチャートである。この演算動作は、入力信号IN1が“H”で、かつSRAMセルWnが“H”である組み合わせが2つである場合を示す。例えば、ワード線WL1_0、WL2_0、WL3_0が“H”に設定され、SRAMセルW1[0]及びW3[0]が“H”を記憶し、SRAMセルW2[0]が“L”を記憶する場合である。
図12に示すように、時刻t21にて、プリチャージドライバ13は、プリチャージ線LPRE1、LPRE2、及びLPRE3を“L”から“H”に設定する。これにより、ローカルビット線LBL11、LBL21、LBL31、LBLX11、LBLX21、及びLBLX31の“H”へのプリチャージが停止する。
次に、時刻t22にて、ロウデコーダ及びワード線ドライバ11は、ワード線WL1_0、WL2_0、及びWL3_0を“H”に設定する。これにより、SRAMセルW1[0]~W3[0]のnMOSトランジスタN13及びN14はオン状態になり、SRAMセルW1[0]とローカルビット線LBL11間、及びSRAMセルW1[0]とローカルビット線LBLX11間は導通状態になる。同様に、SRAMセルW2[0]とローカルビット線LBL21間、SRAMセルW2[0]とローカルビット線LBLX21間、SRAMセルW3[0]とローカルビット線LBL31間、及びSRAMセルW3[0]とローカルビット線LBLX31間は導通状態になる。
ここで、SRAMセルW1[0]のノードWが“H”を保持し、ノードWXが“L”を保持しているため、ローカルビット線LBLX11の電荷はディスチャージされる。これにより、ローカルビット線LBLX11の電圧は“H”から“L”に遷移する。一方、ローカルビット線LBL11の電圧は“H”のまま維持される。
SRAMセルW2[0]のノードWは“L”を保持し、ノードWXは“H”を保持しているため、ローカルビット線LBLX21の電圧は“H”のまま維持される。一方、ローカルビット線LBL21の電荷はディスチャージされ、ローカルビット線LBL21の電圧は“H”から“L”に遷移する。
さらに、SRAMセルW3[0]のノードWは“H”を保持し、ノードWXは“L”を保持しているため、ローカルビット線LBLX31の電荷はディスチャージされる。これにより、ローカルビット線LBLX31の電圧は“H”から“L”に遷移する。一方、ローカルビット線LBL31の電圧は“H”のまま維持される。
次に、時刻t23にて、プリチャージドライバ13は、プリチャージ線GPREを“H”から“L”に設定する。これにより、グローバルビット線GBL1及びGBLX1の“H”へのプリチャージが開始される。続いて、時刻t24にて、プリチャージドライバ13は、プリチャージ線GPREを“L”から“H”に設定する。これにより、グローバルビット線GBL1及びGBLX1の“H”へのプリチャージが停止する。
次に、時刻t25にて、ロウデコーダ及びワード線ドライバ11は、ワード線WL1_0、WL2_0、及びWL3_0を“L”に設定する。これにより、SRAMセルW1[0]~W3[0]のnMOSトランジスタN13及びN14はオフ状態になり、SRAMセルW1[0]とローカルビット線LBL11間、及びSRAMセルW1[0]とローカルビット線LBLX11間は遮断状態になる。同様に、SRAMセルW2[0]とローカルビット線LBL21間、SRAMセルW2[0]とローカルビット線LBLX21間、SRAMセルW3[0]とローカルビット線LBL31間、及びSRAMセルW3[0]とローカルビット線LBLX31間は遮断状態になる。
次に、時刻t26にて、グローバルワード線ドライバ12は、グローバルワード線GWL1、GWL2、及びGWL3を“H”に設定する。これにより、スイッチ回路S1及びSX1は接続状態になり、ローカルビット線LBL11とグローバルビット線GBL1間、及びローカルビット線LBLX11とグローバルビット線GBLX1間は導通状態になる。同様に、スイッチ回路S2及びSX2も接続状態になり、ローカルビット線LBL21とグローバルビット線GBL1間、及びローカルビット線LBLX21とグローバルビット線GBLX1間は導通状態になる。さらに、スイッチ回路S3及びSX3も接続状態になり、ローカルビット線LBL31とグローバルビット線GBL1間、及びローカルビット線LBLX31とグローバルビット線GBLX1間は導通状態になる。
スイッチ回路SX1~SX3が接続状態になると、図12に示すように、ローカルビット線LBLX11、LBLX21、及びLBLX31と、グローバルビット線GBLX1とが導通状態になるため、チャージシェアが発生する。これにより、“H”のグローバルビット線GBLX1は、“L”のローカルビット線LBLX11及びLBLX31の容量分だけ電圧レベルが低下する。すなわち、ローカルビット線LBLX11、LBLX21、及びLBLX31の電圧に応じて、グローバルビット線GBLX1の電圧が“H”から“L”の間の電圧レベルに遷移する。
同様に、スイッチ回路S1~S3が接続状態になると、ローカルビット線LBL11、LBL21、及びLBL31と、グローバルビット線GBL1とが導通状態になるため、チャージシェアが発生する。これにより、“H”のグローバルビット線GBL1は、“L”のローカルビット線LBL21の容量分だけ電圧レベルが低下する。すなわち、ローカルビット線LBL11、LBL21、及びLBL31の電圧に応じて、グローバルビット線GBL1の電圧が“H”から“L”の間の電圧レベルに遷移する。
次に、ADC及びビットシフタ16は、グローバルビット線GBLX1の電圧レベル(アナログ値)をデジタル値に変換して信号ASとして出力する。さらに、アキュムレータ17は、ADC及びビットシフタ16から出力された信号ASを累算し、累算された信号ACCを出力する。
その後、次の読み出し動作に備えて、グローバルワード線ドライバ12は、グローバルワード線GWL1~GWL3を“L”に設定する。プリチャージドライバ13は、プリチャージ線LPRE1~LPRE3を“H”から“L”に設定し、ローカルビット線LBL11~LBL31及びLBLX11~LBLX31をプリチャージする。その後、プリチャージ線LPRE1~LPRE3を“L”から“H”に戻す。また、プリチャージドライバ13は、プリチャージ線GPREを“H”から“L”に設定し、グローバルビット線GBL1及びGBLX1をプリチャージする。その後、プリチャージ線GPREを“L”から“H”に戻す。
上述した動作では、入力信号IN1が“H”で、かつ“H”を記憶するSRAMセルWnの組み合わせの数に応じて、グローバルビット線GBLX1の“H”の電荷がディスチャージされ、グローバルビット線GBLX1の電圧は第1電圧レベルまで低下する。この第1電圧レベルは、ADC及びビットシフタ16により、アナログ値からデジタル値に変換されて信号ASとして出力される。ADC及びビットシフタ16から出力される信号ASより、入力信号IN1が“H”かつSRAMセルWnが“H”の組み合わせの数が2つであることを取得できる。
1.2.4 SRAMセルWnの積和演算動作(2)
次に、第2例としての3つのSRAMセルW1[0]、W2[0]、W3[0]による他の積和演算動作を説明する。図13は、第2例のSRAMセルW1[0]、W2[0]、W3[0]の積和演算動作を説明するための回路図である。図14は、第2例のSRAMセルW1[0]、W2[0]、W3[0]の積和演算動作を示すタイミングチャートである。この演算動作は、入力信号IN1が“H”で、かつSRAMセルWnが“H”である組み合わせが1つである場合を示す。例えば、ワード線WL1_0及びWL2_0が“H”に、WL3_0が“L”にそれぞれ設定され、SRAMセルW1[0]及びW3[0]が“H”を記憶し、SRAMセルW2[0]が“L”を記憶する場合である。
図14に示すように、時刻t31にて、プリチャージドライバ13は、プリチャージ線LPRE1、LPRE2、及びLPRE3を“L”から“H”に設定する。これにより、ローカルビット線LBL11、LBL21、LBL31、LBLX11、LBLX21、及びLBLX31の“H”へのプリチャージが停止する。
次に、時刻t32にて、ロウデコーダ及びワード線ドライバ11は、ワード線WL1_0及びWL2_0を“H”に設定し、WL3_0を“L”のまま維持する。これにより、SRAMセルW1[0]及びW2[0]のnMOSトランジスタN13及びN14はオン状態になり、SRAMセルW3[0]のnMOSトランジスタN13及びN14はオフ状態のままである。このため、SRAMセルW1[0]とローカルビット線LBL11間、及びSRAMセルW1[0]とローカルビット線LBLX11間は導通状態になる。同様に、SRAMセルW2[0]とローカルビット線LBL21間、SRAMセルW2[0]とローカルビット線LBLX21間は導通状態になる。一方、SRAMセルW3[0]とローカルビット線LBL31間、及びSRAMセルW3[0]とローカルビット線LBLX31間は遮断状態のままである。
ここで、SRAMセルW1[0]のノードWが“H”を保持し、ノードWXが“L”を保持しているため、ローカルビット線LBLX11の電荷はディスチャージされる。これにより、ローカルビット線LBLX11の電圧は“H”から“L”に遷移する。一方、ローカルビット線LBL11の電圧は“H”のまま維持される。
SRAMセルW2[0]のノードWは“L”を保持し、ノードWXは“H”を保持しているため、ローカルビット線LBLX21の電圧は“H”のまま維持される。一方、ローカルビット線LBL21の電荷はディスチャージされ、ローカルビット線LBL21の電圧は“H”から“L”に遷移する。
さらに、SRAMセルW3[0]のノードWは“H”を保持し、ノードWXは“L”を保持しているが、SRAMセルW3[0]とローカルビット線LBL31及びLBLX31間は遮断状態であるため、ローカルビット線LBL31及びLBLX31の電圧は“H”のまま維持される。
次に、時刻t33にて、プリチャージドライバ13は、プリチャージ線GPREを“H”から“L”に設定する。これにより、グローバルビット線GBL1及びGBLX1の“H”へのプリチャージが開始される。続いて、時刻t34にて、プリチャージドライバ13は、プリチャージ線GPREを“L”から“H”に設定する。これにより、グローバルビット線GBL1及びGBLX1の“H”へのプリチャージが停止する。
次に、時刻t35にて、ロウデコーダ及びワード線ドライバ11は、ワード線WL1_0、WL2_0、及びWL3_0を“L”に設定する。これにより、SRAMセルW1[0]~W3[0]のnMOSトランジスタN13及びN14はオフ状態になり、SRAMセルW1[0]とローカルビット線LBL11間、及びSRAMセルW1[0]とローカルビット線LBLX11間は遮断状態になる。同様に、SRAMセルW2[0]とローカルビット線LBL21間、SRAMセルW2[0]とローカルビット線LBLX21間、SRAMセルW3[0]とローカルビット線LBL31間、及びSRAMセルW3[0]とローカルビット線LBLX31間は遮断状態になる。
次に、時刻t36にて、グローバルワード線ドライバ12は、グローバルワード線GWL1、GWL2、及びGWL3を“H”に設定する。これにより、スイッチ回路S1及びSX1は接続状態になり、ローカルビット線LBL11とグローバルビット線GBL1間、及びローカルビット線LBLX11とグローバルビット線GBLX1間は導通状態になる。同様に、スイッチ回路S2及びSX2も接続状態になり、ローカルビット線LBL21とグローバルビット線GBL1間、及びローカルビット線LBLX21とグローバルビット線GBLX1間は導通状態になる。さらに、スイッチ回路S3及びSX3も接続状態になり、ローカルビット線LBL31とグローバルビット線GBL1間、及びローカルビット線LBLX31とグローバルビット線GBLX1間は導通状態になる。
スイッチ回路SX1~SX3が接続状態になると、図14に示すように、ローカルビット線LBLX11、LBLX21、及びLBLX31と、グローバルビット線GBLX1とが導通状態になるため、チャージシェアが発生する。これにより、“H”のグローバルビット線GBLX1は、“L”のローカルビット線LBLX11の容量分だけ電圧レベルが低下する。すなわち、ローカルビット線LBLX11、LBLX21、及びLBLX31の電圧に応じて、グローバルビット線GBLX1の電圧が“H”から“L”の間の電圧レベルに遷移する。
同様に、スイッチ回路S1~S3が接続状態になると、ローカルビット線LBL11、LBL21、及びLBL31と、グローバルビット線GBL1とが導通状態になるため、チャージシェアが発生する。これにより、“H”のグローバルビット線GBL1は、“L”のローカルビット線LBL21の容量分だけ電圧レベルが低下する。すなわち、ローカルビット線LBL11、LBL21、及びLBL31の電圧に応じて、グローバルビット線GBL1の電圧が“H”から“L”の間の電圧レベルに遷移する。
次に、ADC及びビットシフタ16は、グローバルビット線GBLX1の電圧レベルをデジタル値に変換して信号ASとして出力する。さらに、アキュムレータ17は、ADC及びビットシフタ16から出力された信号ASを累算し、累算された信号ACCを出力する。
その後、次の読み出し動作に備えて、グローバルワード線ドライバ12は、グローバルワード線GWL1~GWL3を“L”に設定する。プリチャージドライバ13は、プリチャージ線LPRE1~LPRE3を“H”から“L”に設定し、ローカルビット線LBL11~LBL31及びLBLX11~LBLX31をプリチャージする。その後、プリチャージ線LPRE1~LPRE3を“L”から“H”に戻す。また、プリチャージドライバ13は、プリチャージ線GPREを“H”から“L”に設定し、グローバルビット線GBL1及びGBLX1をプリチャージする。その後、プリチャージ線GPREを“L”から“H”に戻す。
上述した動作では、入力信号IN1が“H”で、かつ“H”を記憶するSRAMセルWnの組み合わせの数に応じて、グローバルビット線GBLX1の“H”の電荷がディスチャージされ、グローバルビット線GBLX1の電圧は第2電圧レベルまで低下する。この第2電圧レベルは、ADC及びビットシフタ16により、アナログ値からデジタル値に変換されて信号ASとして出力される。ADC及びビットシフタ16から出力される信号ASより、入力信号IN1が“H”かつSRAMセルWnが“H”の組み合わせの数が1つであることを取得できる。
1.2.5 SRAMセルWnの積和演算動作(3)
同一の重みWEを有するSRAMセルWnの積和演算が終了したら、別の重みWEを有するSRAMセルWnの積和演算に移行し、指定された重みを有するSRAMセルWnの積和演算が終了するまで、積和演算が繰り返し実行される。
ここでは、第3例として、SRAMセルW1[0]、W2[0]、W3[0]による積和演算が終了した後、SRAMセルW1[1]、W2[1]、W3[1]による積和演算を実行する例を説明する。図15は、第3例のSRAMセルW1[0]~W3[0]及びW1[1]~W3[1]の積和演算動作を説明するための回路図である。図16は、第3例の積和演算動作を示すタイミングチャートである。
先ず、SRAMセルW1[0]、W2[0]、W3[0]の積和演算を行う。図16に示すように、時刻t41にて、プリチャージドライバ13は、プリチャージ線LPRE1、LPRE2、及びLPRE3を“L”から“H”に設定する。これにより、ローカルビット線LBL11、LBL21、LBL31、LBLX11、LBLX21、及びLBLX31の“H”へのプリチャージが停止する。
次に、時刻t42にて、ロウデコーダ及びワード線ドライバ11は、ワード線WL1_0、WL2_0、及びWL3_0を“H”に設定する。これにより、SRAMセルW1[0]~W3[0]のnMOSトランジスタN13及びN14はオン状態になる。このため、SRAMセルW1[0]とローカルビット線LBL11及びLBLX11との間、SRAMセルW2[0]とローカルビット線LBL21及びLBLX21との間、及びSRAMセルW3[0]とローカルビット線LBL31及びLBLX31との間は導通状態になる。
ここで、SRAMセルW1[0]とローカルビット線LBLX11間が導通状態になると、SRAMセルW1[0]が記憶するデータに応じて、ローカルビット線LBLX11の電荷がディスチャージされる。なお、ディスチャージされない場合もある。これにより、ローカルビット線LBLX11の電圧は“H”から“L”の間で遷移する。同様に、SRAMセルW2[0]とローカルビット線LBLX21間が導通状態になると、SRAMセルW2[0]が記憶するデータに応じて、ローカルビット線LBLX21の電荷がディスチャージされる。なお、ディスチャージされない場合もある。これにより、ローカルビット線LBLX21の電圧は“H”から“L”の間で遷移する。さらに、SRAMセルW3[0]とローカルビット線LBLX31間が導通状態になると、SRAMセルW3[0]が記憶するデータに応じて、ローカルビット線LBLX31の電荷がディスチャージされる。なお、ディスチャージされない場合もある。これにより、ローカルビット線LBLX31の電圧は“H”から“L”の間で遷移する。
次に、時刻t43にて、プリチャージドライバ13は、プリチャージ線GPREを“H”から“L”に設定する。これにより、グローバルビット線GBL1及びGBLX1の“H”へのプリチャージが開始される。続いて、時刻t44にて、プリチャージドライバ13は、プリチャージ線GPREを“L”から“H”に設定する。これにより、グローバルビット線GBL1及びGBLX1の“H”へのプリチャージが停止する。
次に、時刻t45にて、ロウデコーダ及びワード線ドライバ11は、ワード線WL1_0、WL2_0、及びWL3_0を“L”に設定する。これにより、SRAMセルW1[0]~W3[0]のnMOSトランジスタN13及びN14はオフ状態になる。このため、SRAMセルW1[0]とローカルビット線LBL11間、及びSRAMセルW1[0]とローカルビット線LBLX11間は遮断状態になる。同様に、SRAMセルW2[0]とローカルビット線LBL21間、SRAMセルW2[0]とローカルビット線LBLX21間、SRAMセルW3[0]とローカルビット線LBL31間、及びSRAMセルW3[0]とローカルビット線LBLX31間は遮断状態になる。
次に、時刻t46にて、グローバルワード線ドライバ12は、グローバルワード線GWL1、GWL2、及びGWL3を“H”に設定する。これにより、スイッチ回路SX1~SX3が接続状態になる。
スイッチ回路SX1~SX3が接続状態になると、ローカルビット線LBLX11、LBLX21、及びLBLX31と、グローバルビット線GBLX1とが導通状態になるため、チャージシェアが発生する。これにより、ローカルビット線LBLX11、LBLX21、及びLBLX31の電圧に応じて、グローバルビット線GBLX1の電圧が“H”から“L”の間の電圧レベルに遷移する。
次に、ADC及びビットシフタ16は、グローバルビット線GBLX1の電圧レベルをデジタル値に変換して信号ASとして出力する。さらに、アキュムレータ17は、保持していた値に、ADC及びビットシフタ16から出力された信号ASを加算し、累算された信号ACCを出力する。その後、時刻t47にて、グローバルワード線ドライバ12は、グローバルワード線GWL1~GWL3を“L”に設定する。これにより、スイッチ回路SX1~SX3が非接続状態になる。
次に、SRAMセルW1[1]、W2[1]、W3[1]の積和演算を行う。時刻t48にて、プリチャージドライバ13は、プリチャージ線LPRE1~LPRE3を“H”から“L”に設定し、所定期間後、“L”から“H”に戻す。これにより、ローカルビット線LBL11、LBL21、LBL31、LBLX11、LBLX21、及びLBLX31を“H”にプリチャージし、その後、プリチャージを停止する。
次に、時刻t49にて、ロウデコーダ及びワード線ドライバ11は、ワード線WL1_1、WL2_1、及びWL3_1を“H”に設定する。これにより、SRAMセルW1[1]~W3[1]のnMOSトランジスタN13及びN14はオン状態になる。このため、SRAMセルW1[1]とローカルビット線LBL11及びLBLX11との間、SRAMセルW2[1]とローカルビット線LBL21及びLBLX21との間、及びSRAMセルW3[1]とローカルビット線LBL31及びLBLX31との間は導通状態になる。
ここで、SRAMセルW1[1]とローカルビット線LBLX11間が導通状態になると、SRAMセルW1[1]が記憶するデータに応じて、ローカルビット線LBLX11の電荷がディスチャージされる。なお、ディスチャージされない場合もある。これにより、ローカルビット線LBLX11の電圧は“H”から“L”の間で遷移する。同様に、SRAMセルW2[1]とローカルビット線LBLX21間が導通状態になると、SRAMセルW2[1]が記憶するデータに応じて、ローカルビット線LBLX21の電荷がディスチャージされる。なお、ディスチャージされない場合もある。これにより、ローカルビット線LBLX21の電圧は“H”から“L”の間で遷移する。さらに、SRAMセルW3[1]とローカルビット線LBLX31間が導通状態になると、SRAMセルW3[1]が記憶するデータに応じて、ローカルビット線LBLX31の電荷がディスチャージされる。なお、ディスチャージされない場合もある。これにより、ローカルビット線LBLX31の電圧は“H”から“L”の間で遷移する。
次に、時刻t50にて、プリチャージドライバ13は、プリチャージ線GPREを“H”から“L”に設定する。これにより、グローバルビット線GBL1及びGBLX1の“H”へのプリチャージが開始される。続いて、時刻t51にて、プリチャージドライバ13は、プリチャージ線GPREを“L”から“H”に設定する。これにより、グローバルビット線GBL1及びGBLX1の“H”へのプリチャージが停止する。
次に、時刻t52にて、ロウデコーダ及びワード線ドライバ11は、ワード線WL1_1、WL2_1、及びWL3_1を“L”に設定する。これにより、SRAMセルW1[1]~W3[1]のnMOSトランジスタN13及びN14はオフ状態になる。このため、SRAMセルW1[1]とローカルビット線LBL11間、及びSRAMセルW1[1]とローカルビット線LBLX11間は遮断状態になる。同様に、SRAMセルW2[1]とローカルビット線LBL21間、SRAMセルW2[1]とローカルビット線LBLX21間、SRAMセルW3[1]とローカルビット線LBL31間、及びSRAMセルW3[1]とローカルビット線LBLX31間は遮断状態になる。
次に、時刻t53にて、グローバルワード線ドライバ12は、グローバルワード線GWL1、GWL2、及びGWL3を“H”に設定する。これにより、スイッチ回路SX1~SX3が接続状態になる。
スイッチ回路SX1~SX3が接続状態になると、ローカルビット線LBLX11、LBLX21、及びLBLX31と、グローバルビット線GBLX1とが導通状態になるため、チャージシェアが発生する。これにより、ローカルビット線LBLX11、LBLX21、及びLBLX31の電圧に応じて、グローバルビット線GBLX1の電圧が“H”から“L”の間の電圧レベルに遷移する。
次に、ADC及びビットシフタ16は、グローバルビット線GBLX1の電圧レベルをデジタル値に変換して信号ASとして出力する。さらに、ADC及びビットシフタ16は、SRAMセルW1[1]~W3[1]が持つ重みWE2に応じて、信号ASに対して左シフトを行い、信号BSとして出力する。アキュムレータ17は、保持していた信号ACCに、ADC及びビットシフタ16から出力された信号BSを加算し、累算された信号ACCを出力する。
1.2.6 入力信号INn(1ビット)×セルWn(1ビット)の積和演算
次に、入力信号INnが1ビットで、SRAMセルWnが1ビット(以下、1ビット×1ビットと記す)の場合の積和演算動作について説明する。
図17は、演算装置10における1ビット×1ビットの積和演算動作を示すフローチャートである。図18は、1ビット×1ビットの積和演算動作を説明するための回路図である。図19は、1ビット×1ビットの積和演算動作のタイミングチャートである。図17に示すフローチャートの動作は、コントローラ14により実行される。
図17に示すように、積和演算が開始すると、まず、コントローラ14からの命令により、RW回路15はSRAMセルWnにデータを書き込む(S1)。次に、コントローラ14は、アキュムレータ17の累算値を0に初期化する(S2)。さらに、コントローラ14は、変数i(iは0以上の整数)に0を代入する(S3)。
次に、コントローラ14は、変数iが7以下か否かを判定する(S4)。変数iが7以下である場合(Yes)、コントローラ14は、処理をS5に移行し、S5以降の処理を行う。S5において、コントローラ14からの命令により、ロウデコーダ及びワード線ドライバ11は、入力信号IN1[i]~INn[i]、すなわちワード線WL1_i~WLn_iにより、SRAMセルW1[i]~Wn[i]を選択する。例えば、変数iが0の場合、入力信号IN1[0]~INn[0]によりSRAMセルW1[0]~Wn[0]が選択される。
次に、コントローラ14からの命令により、RW回路15は、選択されたSRAMセルW1[i]~Wn[i]からデータを読み出す。ADC及びビットシフタ16は、読み出したデータをデジタル値に変換する。具体的には、選択されたSRAMセルW1[i]~Wn[i]のデータに応じて、ローカルビット線LBLXn1の電荷がディスチャージされ、さらにグローバルビット線GBLX1の電荷がディスチャージされる。これにより、グローバルビット線GBLX1の電圧が“H”から“L”の間の電圧レベルに遷移する。グローバルビット線GBLX1の電圧レベルは、ADC及びビットシフタ16によりデジタル値に変換され、信号ASとして出力される(S6)。
次に、コントローラ14からの命令により、アキュムレータ17は、保持していた信号ACCに、ADC及びビットシフタ16から出力された信号ASを加算し、累算された信号ACCを算出する(S7)。
次に、コントローラ14は、変数iの値をインクリメントする(S8)。続いて、コントローラ14は、処理をS4に戻し、変数iが7以下であるか否かを再度判定する。変数iが7以下である場合、コントローラ14は、S5からS8までの処理を繰り返す。
S4において、変数iが7より大きい場合、コントローラ14は、処理をS9に移行し、アキュムレータ17が保持する信号ACCを出力する。以上により、1ビット×1ビットの積和演算が終了する。
以下に、図18及び図19を用いて、図17に示したフローチャートにおける一部の動作を説明する。フローチャート中のS5~S7において、変数iが0の場合の動作を以下に述べる。
入力信号IN1[0]~INn[0]が“H”に設定され、SRAMセルW1[0]~Wn[0]が選択される。これにより、SRAMセルW1[0]~Wn[0]のデータがローカルビット線LBLX11~LBLXn1にそれぞれ読み出される。具体的には、SRAMセルW1[0]~Wn[0]に記憶されたデータに応じて、ローカルビット線LBLX11~LBLXn1の電荷がディスチャージされ、ローカルビット線LBLX11~LBLXn1の電圧は“H”から“L”の間の電圧レベルに遷移する。
次に、時刻t61に示すように、グローバルワード線GWL1~GWLnの電圧が“H”に設定される。これにより、ローカルビット線LBLX11~LBLXn1に読み出されたデータが、グローバルビット線GBLX1に読み出される。具体的には、ローカルビット線LBLX11~LBLXn1の電圧に応じて、グローバルビット線GBLX1の電荷がディスチャージされ、グローバルビット線GBLX1の電圧は“H”から“L”の間の電圧レベルに遷移する。
次に、グローバルビット線GBLX1の電圧レベルは、ADC及びビットシフタ16によりデジタル値に変換され、信号AS(1_1)として出力される。信号AS(1_1)は、以下に示す式(1)で表せる。
Figure 2022052134000002
ここで例えば、IN1[0]×W1[0]は、入力信号IN1[0]とSRAMセルW1[0]が共に“H”であるとき、“H”となり、それ以外は“L”となる。その他のINn[0]×Wn[0]も、同様に入力信号INn[0]とSRAMセルWn[0]が共に“H”であるとき、“H”となり、それ以外は“L”となる。
その後、ADC及びビットシフタ16から出力された信号AS(1_1)は、アキュムレータ17が保持していた値に加算され、累算された信号ACC(1_1)が出力される。ここで、アキュムレータ17の値は以前に“0”に初期化されているので、アキュムレータ17から出力される信号ACC(1_1)は信号AS(1_1)と同じである。よって、信号ACC(1_1)は式(1)で表せる。
次に、図17に示すフローチャート中のS5~S7において、変数iが1の場合の動作を以下に述べる。
入力信号IN1[1]~INn[1]が“H”に設定され、SRAMセルW1[1]~Wn[1]が選択される。これにより、SRAMセルW1[1]~Wn[1]のデータがローカルビット線LBLX11~LBLXn1にそれぞれ読み出される。具体的には、SRAMセルW1[1]~Wn[1]に記憶されたデータに応じて、ローカルビット線LBLX11~LBLXn1の電荷がディスチャージされ、ローカルビット線LBLX11~LBLXn1の電圧は“H”から“L”の間の電圧レベルに遷移する。
次に、時刻t62に示すように、グローバルワード線GWL1~GWLnの電圧が“H”に設定される。これにより、ローカルビット線LBLX11~LBLXn1に読み出されたデータが、グローバルビット線GBLX1に読み出される。具体的には、ローカルビット線LBLX11~LBLXn1の電圧に応じて、グローバルビット線GBLX1の電荷がディスチャージされ、グローバルビット線GBLX1の電圧は“H”から“L”の間の電圧レベルに遷移する。
次に、グローバルビット線GBLX1の電圧レベルは、ADC及びビットシフタ16によりデジタル値に変換され、信号AS(1_2)として出力される。信号AS(1_2)は、以下に示す式(2)で表せる。
Figure 2022052134000003
ここで例えば、IN1[1]×W1[1]は、入力信号IN1[1]とSRAMセルW1[1]が共に“H”であるとき、“H”となり、それ以外は“L”となる。その他のINn[1]×Wn[1]も、同様に入力信号INn[1]とSRAMセルWn[1]が共に“H”であるとき、“H”となり、それ以外は“L”となる。
その後、ADC及びビットシフタ16から出力された信号AS(1_2)は、アキュムレータ17が保持していた信号ACC(1_1)に加算され、累算された信号ACC(1_2)が出力される。すなわち、アキュムレータ17から出力される信号ACC(1_2)は、信号ACC(1_1)に信号AS(1_2)が加算された値である。信号ACC(1_2)は、以下に示す式(3)で表せる。
Figure 2022052134000004
図17に示すフローチャート中のS5~S7において、変数iが2~7の場合の動作は、前述した動作において、入力信号IN1[i]~INn[i]、及びSRAMセルW1[i]~Wn[i]における変数iに2~7がそれぞれ代入された動作となる。以下に、変数iが7の場合の動作を述べる。
入力信号IN1[7]~INn[7]が“H”に設定され、SRAMセルW1[7]~Wn[7]が選択される。これにより、SRAMセルW1[7]~Wn[7]のデータがローカルビット線LBLX11~LBLXn1にそれぞれ読み出される。具体的には、SRAMセルW1[7]~Wn[7]に記憶されたデータに応じて、ローカルビット線LBLX11~LBLXn1の電荷がディスチャージされ、ローカルビット線LBLX11~LBLXn1の電圧は“H”から“L”の間の電圧レベルに遷移する。
次に、時刻t63に示すように、グローバルワード線GWL1~GWLnの電圧が“H”に設定される。これにより、ローカルビット線LBLX11~LBLXn1に読み出されたデータが、グローバルビット線GBLX1に読み出される。具体的には、ローカルビット線LBLX11~LBLXn1の電圧に応じて、グローバルビット線GBLX1の電荷がディスチャージされ、グローバルビット線GBLX1の電圧は“H”から“L”の間の電圧レベルに遷移する。
次に、グローバルビット線GBLX1の電圧レベルは、ADC及びビットシフタ16によりデジタル値に変換され、信号AS(1_8)として出力される。信号AS(1_8)は、以下に示す式(4)で表せる。
Figure 2022052134000005
ここで例えば、IN1[7]×W1[7]は、入力信号IN1[7]とSRAMセルW1[7]が共に“H”であるとき、“H”となり、それ以外は“L”となる。その他のINn[7]×Wn[7]も、同様に入力信号INn[7]とSRAMセルWn[7]が共に“H”であるとき、“H”となり、それ以外は“L”となる。
その後、ADC及びビットシフタ16から出力された信号AS(1_8)は、アキュムレータ17が保持していた信号ACC(1_7)に加算され、累算された信号ACC(1_8)が出力される。アキュムレータ17から出力される信号ACC(1_8)は、ACC(1_7)にAS(1_8)が加算された値である。すなわち、ACC(1_8)は“AS(1_1)+AS(1_2)+…+AS(1_8)”の値である。信号ACC(1_8)は、以下に示す式(5)で表せる。
Figure 2022052134000006
図17~図19を用いて説明した上述の動作は、入力信号IN1~INnが全て“H”の場合を一例として説明したが、入力信号IN1~INnに“L”が含まれる場合にも適用できる。
1.2.7 入力信号INn(1ビット)×セルWn(8ビット)の積和演算
次に、入力信号INnが1ビットで、SRAMセルWnが8ビット(以下、1ビット×8ビットと記す)の場合の積和演算動作について説明する。
図20は、演算装置10における1ビット×8ビットの積和演算動作を示すフローチャートである。図21は、1ビット×8ビットの積和演算動作を説明するための回路図である。図22は、1ビット×8ビットの積和演算動作のタイミングチャートである。図20に示すフローチャートの動作は、コントローラ14により実行される。
図20に示すように、積和演算が開始すると、まず、コントローラ14からの命令により、RW回路15はSRAMセルWnにデータを書き込む(S1)。次に、コントローラ14は、アキュムレータ17の累算値を0に初期化する(S2)。さらに、コントローラ14は、変数i(iは0以上の整数)に0を代入する(S3)。
次に、コントローラ14は、変数iは7以下か否かを判定する(S4)。変数iが7以下である場合(Yes)、コントローラ14は、処理をS5Aに移行し、S5A以降の処理を行う。S5Aでは、コントローラ14からの命令により、ロウデコーダ及びワード線ドライバ11は、入力信号IN1~INnによりSRAMセルW1[i]~Wn[i]を選択する。ここで、入力信号IN1~INnは、ワード線WL1_i、WL2_i、…、WLn_iにそれぞれ対応する。例えば、変数iが0の場合、ワード線WL1_0~WLn_0によりSRAMセルW1[0]~Wn[0]を選択される。
次に、コントローラ14からの命令により、RW回路15は、選択されたSRAMセルW1[i]~Wn[i]からデータを読み出す。ADC及びビットシフタ16は、読み出したデータをデジタル値に変換する。具体的には、選択されたSRAMセルW1[i]~Wn[i]のデータに応じて、ローカルビット線LBLXn1の電荷がディスチャージされ、さらにグローバルビット線GBLX1の電荷がディスチャージされる。これにより、グローバルビット線GBLX1の電圧が“H”から“L”の間の電圧レベルに遷移する。グローバルビット線GBLX1の電圧レベルは、ADC及びビットシフタ16によりデジタル値に変換され、信号ASとして出力される(S6)。
さらに、信号ASは、ADC及びビットシフタ16によりiビットだけ左シフトされ、左シフトされたデジタル値は信号BSとして出力される。コントローラ14からの命令により、アキュムレータ17は、保持していた信号ACCに、ADC及びビットシフタ16から出力された信号BSを加算し、累算された信号ACCを算出する(S7A)。
次に、コントローラ14は、変数iの値をインクリメントする(S8)。続いて、コントローラ14は、処理をS4に戻り、変数iが7以下であるか否かを再度判定する。変数iが7以下である場合、コントローラ14は、S5AからS8までの処理を繰り返す。
S4において、変数iが7より大きい場合、コントローラ14は、処理をS9に移行し、アキュムレータ17が保持する信号ACCを出力する。以上により、1ビット×8ビットの積和演算が終了する。
以下に、図21及び図22を用いて、図20に示したフローチャートにおける一部の動作を説明する。フローチャート中のS5A~S7Aにおいて、変数iが0の場合の動作を以下述べる。
入力信号IN1~INn、すなわちワード線WL1_0~WLn_0が“H”に設定され、SRAMセルW1[0]~Wn[0]が選択される。これにより、SRAMセルW1[0]~Wn[0]のデータがローカルビット線LBLX11~LBLXn1にそれぞれ読み出される。具体的には、SRAMセルW1[0]~Wn[0]に記憶されたデータに応じて、ローカルビット線LBLX11~LBLXn1の電荷がディスチャージされ、ローカルビット線LBLX11~LBLXn1の電圧は“H”から“L”の間の電圧レベルに遷移する。
次に、時刻t71に示すように、グローバルワード線GWL1~GWLnの電圧が“H”に設定される。これにより、ローカルビット線LBLX11~LBLXn1に読み出されたデータが、グローバルビット線GBLX1に読み出される。具体的には、ローカルビット線LBLX11~LBLXn1の電圧に応じて、グローバルビット線GBLX1の電荷がディスチャージされ、グローバルビット線GBLX1の電圧は“H”から“L”の間の電圧レベルに遷移する。
次に、グローバルビット線GBLX1の電圧レベルは、ADC及びビットシフタ16によりデジタル値に変換され、信号AS(2_1)として出力される。信号AS(2_1)は、以下に示す式(6)で表せる。
Figure 2022052134000007
ここで例えば、IN1×W1[0]は、入力信号IN1とSRAMセルW1[0]が共に“H”であるとき、“H”となり、それ以外は“L”となる。その他のINn×Wn[0]も、同様に入力信号INnとSRAMセルWn[0]が共に“H”であるとき、“H”となり、それ以外は“L”となる。
その後、ADC及びビットシフタ16にて変換された信号AS(2_1)は、さらに、ADC及びビットシフタ16によりiビットだけ左シフトされ、左シフトされたデジタル値は信号BS(2_1)として出力される。ここで、iは0であるため、左シフトは行われない。よって、信号BS(2_1)は信号AS(2_1)と同じであり、式(6)で表せる。
次に、信号BS(2_1)は、アキュムレータ17が保持していた値に加算され、累算された信号ACC(2_1)が出力される(S7A)。ここで、アキュムレータ17の値は以前に“0”に初期化されているので、アキュムレータ17から出力される信号ACC(2_1)は、信号BS(2_1)及び信号AS(2_1)と同じである。よって、信号ACC(2_1)は式(6)で表せる。
次に、図20に示すフローチャート中のS5A~S7Aにおいて、変数iが1の場合の動作を以下に述べる。
入力信号IN1~INn、すなわちワード線WL1_1~WLn_1が“H”に設定され、SRAMセルW1[1]~Wn[1]が選択される。これにより、SRAMセルW1[1]~Wn[1]のデータがローカルビット線LBLX11~LBLXn1にそれぞれ読み出される。
次に、時刻t72に示すように、グローバルワード線GWL1~GWLnの電圧が“H”に設定される。これにより、ローカルビット線LBLX11~LBLXn1に読み出されたデータが、グローバルビット線GBLX1に読み出される。
次に、グローバルビット線GBLX1の電圧レベルは、ADC及びビットシフタ16によりデジタル値に変換され、信号AS(2_2)として出力される。信号AS(2_2)は、以下に示す式(7)で表せる。
Figure 2022052134000008
ここで例えば、IN1×W1[1]は、入力信号IN1とSRAMセルW1[1]が共に“H”であるとき、“H”となり、それ以外は“L”となる。その他のINn×Wn[1]も、同様に入力信号INnとSRAMセルWn[1]が共に“H”であるとき、“H”となり、それ以外は“L”となる。
その後、ADC及びビットシフタ16にて変換された信号AS(2_2)は、さらに、ADC及びビットシフタ16によりiビットだけ左シフトされ、左シフトされたデジタル値は信号BS(2_2)として出力される。信号BS(2_2)は、以下に示す式(8)で表せる。
Figure 2022052134000009
次に、信号BS(2_2)は、アキュムレータ17が保持していた信号ACC(2_1)に加算され、累算された信号ACC(2_2)が出力される(S7A)。すなわち、アキュムレータ17から出力される信号ACC(2_2)は、信号ACC(2_1)に信号BS(2_2)が加算された値である。信号ACC(2_2)は、以下に示す式(9)で表せる。
Figure 2022052134000010
図20に示すフローチャート中のS5A~S7Aにおいて、変数iが2~7の場合の動作は、前述した動作において、入力信号IN1~INn、及びSRAMセルW1[i]~Wn[i]における変数iに2~7がそれぞれ代入された動作となる。以下に、変数iが7の場合の動作を述べる。
入力信号IN1~INn、すなわちワード線WL1_1~WLn_1が“H”に設定され、SRAMセルW1[7]~Wn[7]が選択される。これにより、SRAMセルW1[7]~Wn[7]のデータがローカルビット線LBLX11~LBLXn1にそれぞれ読み出される。
次に、時刻t73に示すように、グローバルワード線GWL1~GWLnの電圧が“H”に設定される。これにより、ローカルビット線LBLX11~LBLXn1に読み出されたデータが、グローバルビット線GBLX1に読み出される。
次に、グローバルビット線GBLX1の電圧レベルは、ADC及びビットシフタ16によりデジタル値に変換され、信号AS(2_8)として出力される。信号AS(2_8)は、以下に示す式(10)で表せる。
Figure 2022052134000011
ここで例えば、IN1×W1[7]は、入力信号IN1とSRAMセルW1[7]が共に“H”であるとき、“H”となり、それ以外は“L”となる。その他のINn×Wn[7]も、同様に入力信号INnとSRAMセルWn[7]が共に“H”であるとき、“H”となり、それ以外は“L”となる。
その後、ADC及びビットシフタ16にて変換された信号AS(2_8)は、さらに、ADC及びビットシフタ16によりiビットだけ左シフトされ、左シフトされたデジタル値は信号BS(2_8)として出力される。信号BS(2_8)は、以下に示す式(11)で表せる。
Figure 2022052134000012
次に、信号BS(2_8)は、アキュムレータ17が保持していた信号ACC(2_7)に加算され、累算された信号ACC(2_8)が出力される(S7A)。アキュムレータ17から出力される信号ACC(2_8)は、信号ACC(2_7)に信号BS(2_8)が加算された値である。すなわち、信号ACC(2_8)は“BS(2_1)+BS(2_2)+…+BS(2_8)”の値である。信号ACC(2_8)は、以下に示す式(12)で表せる。
Figure 2022052134000013
図20~図22を用いて説明した上述の動作は、入力信号IN1~INnが全て“H”の場合を一例として説明したが、入力信号IN1~INnに“L”が含まれる場合にも適用できる。
また、上述では、1ビット×8ビットの積和演算動作を説明したが、ローカルビット線LBLnm及びLBLXnmに接続されるSRAMセルWnを8個より増やせば、1ビット×8ビットより大きなビット数の積和演算が可能である。例えば、ローカルビット線LBLnm及びLBLXnmに16個のSRAMセルWnを接続すれば、1ビット×16ビットの積和演算が可能である。さらに、ローカルビット線LBLnm及びLBLXnmに32個のSRAMセルWnを接続すれば、1ビット×32ビットの積和演算が可能である。
1.2.8 入力信号INn(4ビット)×セルWn(8ビット)の積和演算
次に、入力信号INnが4ビットで、SRAMセルWnが8ビット(以下、4ビット×8ビットと記す)の場合の積和演算動作について説明する。
図23は、演算装置10における4ビット×8ビットの積和演算動作を示すフローチャートである。図24は、4ビット×8ビットの積和演算動作を説明するための回路図である。図25は、4ビット×8ビットの積和演算動作のタイミングチャートである。図23に示すフローチャートの動作は、コントローラ14により実行される。
図23に示すように、積和演算が開始すると、まず、コントローラ14からの命令により、RW回路15はSRAMセルWnにデータを書き込む(S11)。続いて、コントローラ14は、アキュムレータ17の累算値を0に初期化する(S12)。さらに、コントローラ14は、変数h(hは0以上の整数)に0を代入する(S13)。
次に、コントローラ14は、変数hは3以下か否かを判定する(S14)。変数hが3以下である場合(Yes)、コントローラ14は、処理をS15に移行し、S15以降の処理を行う。S15において、コントローラ14は、変数i(iは0以上の整数)に0を代入する。
次に、コントローラ14は、変数iは7以下か否かを判定する(S16)。変数iが7以下である場合(Yes)、コントローラ14は、処理をS17に移行し、S17以降の処理を行う。S17において、コントローラ14からの命令により、ロウデコーダ及びワード線ドライバ11は、入力信号IN1[h]~INn[h]によりSRAMセルW1[i]~Wn[i]を選択する。例えば、変数hと変数iが共に0の場合、入力信号IN1[0]~INn[0]、すなわちワード線WL1_0~WLn_0によりSRAMセルW1[0]~Wn[0]が選択される。
次に、コントローラ14からの命令により、RW回路15は、選択されたSRAMセルW1[i]~Wn[i]からデータを読み出す。ADC及びビットシフタ16は、読み出したデータをデジタル値に変換する。具体的には、選択されたSRAMセルW1[i]~Wn[i]のデータに応じて、ローカルビット線LBLXn1の電荷がディスチャージされ、さらにグローバルビット線GBLX1の電荷がディスチャージされる。これにより、グローバルビット線GBLX1の電圧が“H”から“L”の間の電圧レベルに遷移する。グローバルビット線GBLX1の電圧レベルは、ADC及びビットシフタ16によりデジタル値に変換され、信号ASとして出力される(S18)。
さらに、信号ASは、ADC及びビットシフタ16により“h+i”ビットだけ左シフトされ、左シフトされたデジタル値は信号BSとして出力される。コントローラ14からの命令により、アキュムレータ17は、保持していた信号ACCに、ADC及びビットシフタ16から出力された信号BSを加算し、累算された信号ACCを算出する(S19)。
次に、コントローラ14は、変数iの値をインクリメントする(S20)。続いて、コントローラ14は、処理をS16に戻り、変数iが7以下であるか否かを再度判定する。変数iが7以下である場合、コントローラ14は、S17からS20までの処理を繰り返す。
S16において、変数iが7より大きい場合、S21に移行し、変数hの値をインクリメントする。続いて、S14に戻り、変数hが3以下であるか否かを再度判定する。変数hが3以下である場合、前述したS15からS21までの処理を繰り返す。
一方、S14において、変数hが3より大きい場合、コントローラ14は、S22に移行し、アキュムレータ17が保持する信号ACCを出力する。以上により、4ビット×8ビットの積和演算が終了する。
以下に、図24及び図25を用いて、図23に示したフローチャートにおける一部の動作を説明する。フローチャート中のS17~S19において、変数hと変数iが共に0の場合の動作を以下に述べる。
入力信号IN1[0]~INn[0]、すなわちワード線WL1_0~WLn_0が“H”に設定され、SRAMセルW1[0]~Wn[0]が選択される。これにより、SRAMセルW1[0]~Wn[0]のデータがローカルビット線LBLX11~LBLXn1にそれぞれ読み出される。具体的には、SRAMセルW1[0]~Wn[0]に記憶されたデータに応じて、ローカルビット線LBLX11~LBLXn1の電荷がディスチャージされ、ローカルビット線LBLX11~LBLXn1の電圧は“H”から“L”の間の電圧レベルに遷移する。
次に、時刻t81に示すように、グローバルワード線GWL1~GWLnの電圧が“H”に設定される。これにより、ローカルビット線LBLX11~LBLXn1に読み出されたデータが、グローバルビット線GBLX1に読み出される。具体的には、ローカルビット線LBLX11~LBLXn1の電圧に応じて、グローバルビット線GBLX1の電荷がディスチャージされ、グローバルビット線GBLX1の電圧は“H”から“L”の間の電圧レベルに遷移する。
次に、グローバルビット線GBLX1の電圧レベルは、ADC及びビットシフタ16によりデジタル値に変換され、信号AS(3_1)として出力される。信号AS(3_1)は、以下に示す式(13)で表せる。
Figure 2022052134000014
その後、ADC及びビットシフタ16にて変換された信号AS(3_1)は、さらに、ADC及びビットシフタ16により“h+i”ビットだけ左シフトされ、左シフトされたデジタル値は信号BS(3_1)として出力される。ここでは、“h+i=0”であるため、左シフトは実行されない。よって、信号BS(3_1)は、信号AS(3_1)と同じであり、式(13)で表せる。
次に、信号BS(3_1)は、アキュムレータ17が保持していた値に加算され、累算された信号ACC(3_1)が出力される(S19)。ここで、アキュムレータ17の値は以前に“0”に初期化されているので、アキュムレータ17から出力される信号ACC(3_1)は、信号BS(3_1)及び信号AS(3_1)と同じである。よって、信号ACC(3_1)は式(13)で表せる。
次に、図23に示すフローチャート中のS17~S19において、変数hが0で、変数iが1の場合の動作を以下に述べる。
入力信号IN1[0]~INn[0]、すなわちワード線WL1_0~WLn_0が“H”に設定され、SRAMセルW1[1]~Wn[1]が選択される。これにより、SRAMセルW1[1]~Wn[1]のデータがローカルビット線LBLX11~LBLXn1にそれぞれ読み出される。
次に、時刻t82に示すように、グローバルワード線GWL1~GWLnの電圧が“H”に設定される。これにより、ローカルビット線LBLX11~LBLXn1に読み出されたデータが、グローバルビット線GBLX1に読み出される。
次に、グローバルビット線GBLX1の電圧レベルは、ADC及びビットシフタ16によりデジタル値に変換され、信号AS(3_2)として出力される。信号AS(3_2)は、以下に示す式(14)で表せる。
Figure 2022052134000015
次に、ADC及びビットシフタ16にて変換された信号AS(3_2)は、さらに、ADC及びビットシフタ16により“h+i”ビットだけ左シフトされる。ここでは、“h+i=1”であるため、信号AS(3_2)は、1ビットだけ左シフトされ、左シフトされたデジタル値は信号BS(3_2)として出力される。信号BS(3_2)は、以下に示す式(15)で表せる。
Figure 2022052134000016
次に、信号BS(3_2)は、アキュムレータ17が保持していた信号ACC(3_1)に加算され、累算された信号ACC(3_2)が出力される(S19)。すなわち、アキュムレータ17から出力される信号ACC(3_2)は、信号ACC(3_1)に信号BS(3_2)が加算された値である。信号ACC(3_2)は、以下に示す式(16)で表せる。
Figure 2022052134000017
図23に示すフローチャート中のS17~S19において、変数hが0で、かつ変数iが2~7の場合の動作は、前述した動作において、入力信号IN1[h]~INn[h]、及びSRAMセルW1[i]~Wn[i]における変数hに0、変数iに2~7がそれぞれ代入された動作となる。変数hが1~3で、かつ変数iが0~7の場合の動作は、前述した動作において、入力信号IN1[h]~INn[h]、及びSRAMセルW1[i]~Wn[i]における変数hに1~3、変数iに0~7がそれぞれ代入された動作となる。以下に、変数hが3で、かつ変数iが7の場合の動作を述べる。
入力信号IN1[3]~INn[3]が“H”に設定され、SRAMセルW1[7]~Wn[7]が選択される。これにより、SRAMセルW1[7]~Wn[7]のデータがローカルビット線LBLX11~LBLXn1にそれぞれ読み出される。
次に、時刻t83に示すように、グローバルワード線GWL1~GWLnの電圧が“H”に設定される。これにより、ローカルビット線LBLX11~LBLXn1に読み出されたデータが、グローバルビット線GBLX1に読み出される。
次に、グローバルビット線GBLX1の電圧レベルは、ADC及びビットシフタ16によりデジタル値に変換され、信号AS(3_8)として出力される。信号AS(3_8)は、以下に示す式(17)で表せる。
Figure 2022052134000018
次に、ADC及びビットシフタ16にて変換された信号AS(3_8)は、さらに、ADC及びビットシフタ16により“h+i”ビットだけ左シフトされる。ここでは、“h+i=10”であるため、信号AS(3_8)は、10ビットだけ左シフトされ、左シフトされたデジタル値は信号BS(3_8)として出力される。信号BS(3_8)は、以下に示す式(18)で表せる。
Figure 2022052134000019
次に、信号BS(3_8)は、アキュムレータ17が保持していた信号ACC(3_7)に加算され、累算された信号ACC(3_8)が出力される(S19)。アキュムレータ17から出力される信号ACC(3_8)は、信号ACC(3_7)に信号BS(3_8)が加算された値である。すなわち、信号ACC(3_8)は“BS(3_1)+BS(3_2)+…+BS(3_8)”の値である。信号ACC(3_8)は、以下に示す式(19)で表せる。
Figure 2022052134000020
図23~図25を用いて説明した上述の動作は、入力信号IN1~INnが全て“H”の場合を一例として説明したが、入力信号IN1~INnに“L”が含まれる場合にも適用できる。
また、上述では、4ビット×8ビットの積和演算動作を説明したが、ローカルビット線LBLnm及びLBLXnmに接続されるSRAMセルWnを8個より増やせば、4ビット×8ビットより大きなビット数の積和演算が可能である。例えば、ローカルビット線LBLnm及びLBLXnmに16個のSRAMセルWnを接続すれば、4ビット×16ビットの積和演算が可能である。さらに、ローカルビット線LBLnm及びLBLXnmに32個のSRAMセルWnを接続すれば、4ビット×32ビットの積和演算が可能である。
次に、入力信号INnが4ビットで、SRAMセルWnが8ビットの場合の積和演算動作を、2の補数を用いて行う例を説明する。
図26は、4ビット×8ビットの積和演算動作を2の補数を用いて行う場合のフローチャートである。この例では、2の補数を用いて、アキュムレータ17において累算される信号ACCを算出する。S18にて、ADC及びビットシフタ16から信号ASが出力される。
次に、S18Aにて、変数iが7であり、かつ変数hが3ではない、または変数iが7ではない、かつ変数hが3である場合(Yes)、S19Aに移行する。S19Aでは、信号ASはADC及びビットシフタ16により“h+i”ビットだけ左シフトされ、左シフトされたデジタル値は信号BSとして出力される。アキュムレータ17は、保持していた信号ACCから信号BSを減算し、累算された信号ACCを算出する。
S18Aにて、変数iが7であり、かつ変数hが3ではない、または変数iが7ではない、かつ変数hが3のいずれでもない場合、S19Bに移行する。S19Bでは、信号ASはADC及びビットシフタ16により“h+i”ビットだけ左シフトされ、左シフトされたデジタル値は信号BSとして出力される。アキュムレータ17は、保持していた信号ACCに信号BSを加算し、累算された信号ACCを算出する。
S19AあるいはS19Bの処理が終了したら、S20に移行する。その他の動作は、前述した図24の動作と同様である。図26に示すように、2の補数を利用すれば、正負の数を使用した演算が可能である。
1.3 実施形態の効果
本実施形態では、演算精度を向上させることができる演算装置を提供可能である。
以下に、実施形態の演算装置の効果について詳述する。
実施形態の演算装置は、第1メモリセル(例えば、SRAMセルW1[0])に電気的に接続された第1ビット線(例えば、ローカルビット線LBLX11)、第2メモリセル(例えば、SRAMセルW2[0])に電気的に接続された第2ビット線(例えば、ローカルビット線LBLX21)、及び第1ビット線及び第2ビット線にそれぞれスイッチ回路(例えば、スイッチ回路SX1及びSX2)を介して電気的に接続された第3ビット線(例えば、グローバルビット線GBLX1)を含む階層ビット線構造を備える。
第1メモリセルに記憶されたデータは、第1ビット線に読み出され、第2メモリセルに記憶されたデータは第2ビット線に読み出される。第1ビット線及び第2ビット線にデータが読み出された後、スイッチ回路が接続状態にされて、第1ビット線と第3ビット線との間、及び第2ビット線と第3ビット線との間が導通状態になる。これにより、第1ビット線、第2ビット線、及び第3ビット線の電荷がチャージシェアリングにより、第1ビット線、第2ビット線、及び第3ビット線にて共有される。これにより、第1ビット線、第2ビット線、及び第3ビット線の電圧は、第1電圧に遷移する。第3ビット線の第1電圧は、アナログ-デジタル変換によりデジタル信号の信号ASに変換される。上記動作によって得られた複数の信号ASは、累算されて、累算された信号ACCが出力される。
また、例えば、第3メモリセル(例えば、SRAMセルW1[1])及び第4メモリセル(例えば、SRAMセルW2[1])に記憶されるデータは、重み(例えば、重みWE2)を有する。このため、第3メモリセル及び第4メモリセルから第1ビット線及び第2ビット線を介して第3ビット線にデータが読み出された場合、第3ビット線の第1電圧は信号ASに変換され、さらに、信号ASに対して第3及び第4メモリセルが有する重みに応じてビットシフトが行われる(例えば、1ビットの左シフトが行われる)。ビットシフトされた信号ASは、信号BSとして出力される。上記動作によって得られた複数の信号BSは、累算されて、累算された信号ACCが出力される。
実施形態によれば、演算装置における演算精度を向上させることができる。以下にその理由を説明する。
実施形態では、第1ビット線及び第2ビット線から第3ビット線にデータを読み出す際にチャージシェアリングを用いているため、第3ビット線に生じる第1電圧の振幅は、第1ビット線、第2ビット線、及び第3ビット線が有する容量に依存する。このため、第1メモリセル及び第2メモリセルのデータに応じて遷移する第1電圧の遷移量が安定化し、第1電圧を変換して算出する信号ASの精度が向上する。さらには、信号ASを累算して算出される信号ACCの演算精度が向上する。
また、実施形態によれば、読み出し動作時に発生するリードディスターブを低減することができる。以下にその理由を説明する。
実施形態では、第1メモリセル及び第2メモリセルから第1ビット線及び第2ビット線にデータを読み出した後、第1メモリセルと第1ビット線との間、及び第2メモリセルと第2ビット線との間を遮断状態に設定する。その後、第1ビット線及び第2ビット線から第3ビット線にデータを読み出している。
すなわち、第1メモリセルと第1ビット線間の転送トランジスタをオン状態に設定し、第1メモリセルが記憶するデータに応じて、第1ビット線の電圧を遷移させる。これと共に、第2メモリセルと第2ビット線間の転送トランジスタをオン状態に設定し、第2メモリセルが記憶するデータに応じて、第2ビット線の電圧を遷移させる。続いて、2つの転送トランジスタをオフ状態に設定した後、第1ビット線及び第2ビット線と第3ビット線との間のスイッチ回路を接続状態に設定する。これにより、チャージシェアリングにより、第1ビット線及び第2ビット線と、第3ビット線との間で電荷が共有され、第1ビット線、第2ビット線、及び第3ビット線の電圧が第1電圧に遷移する。
上述した読み出し動作では、2つの転送トランジスタをオフ状態に設定した後に、第1ビット線及び第2ビット線と、第3ビット線との間のスイッチ回路を接続状態に設定する。このため、第1ビット線及び第2ビット線と、第3ビット線との間で電荷が共有される際に、電荷が第1メモリセルあるいは第2メモリセルに流れ込む等のメモリセルに与える影響を防止することができる。これにより、読み出し動作時にリードディスターブが発生する懸念を低下させることができる。
2. その他
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
10…演算装置、11…ロウデコーダ及びワード線ドライバ、12…グローバルワード線ドライバ、13…プリチャージドライバ、14…コントローラ、15…RW回路、16…ADC及びビットシフタ、17…アキュムレータ、GBL1…グローバルビット線、GBL2…グローバルビット線、GBLm…グローバルビット線、GBLX1…グローバルビット線、GBLX2…グローバルビット線、GBLXm…グローバルビット線、GWL1~GWLn…グローバルワード線、IN1~INn…入力信号、IV1…インバータ、IV2…インバータ、LBL11…ローカルビット線、LBL21…ローカルビット線、LBLn1…ローカルビット線、LBL12…ローカルビット線、LBL22…ローカルビット線、LBLn2…ローカルビット線、LBL1m…ローカルビット線、LBL2m…ローカルビット線、LBLnm…ローカルビット線、LBLX11…ローカルビット線、LBLX21…ローカルビット線、LBLXn1…ローカルビット線、LBLX12…ローカルビット線、LBLX22…ローカルビット線、LBLXn2…ローカルビット線、LBLX1m…ローカルビット線、LBLX2m…ローカルビット線、LBLXnm…ローカルビット線、LPR1~LPRn…ローカルプリチャージ回路、LPRE1~LPREn…プリチャージ線、MA1~MAm…メモリ演算回路、S1~Sn…スイッチ回路、SC1~SCm…SRAMセル群、SX1~SXn…スイッチ回路、W1[0]~W1[7]…SRAMセル、W2[0]~W2[7]…SRAMセル、Wn[0]~Wn[7]…SRAMセル、WL1_0~WL1_7…ワード線、WL2_0~WL2_7…ワード線、WLn_0~WLn_7…ワード線、GWL1~GWLn…グローバルワード線。

Claims (11)

  1. 第1インバータ及び第2インバータの出力端と入力端とが互いに交差接続された第1メモリセルと、
    前記第1メモリセルに電気的に接続された第1ビット線と、
    前記第1メモリセルと前記第1ビット線との間に接続された第1転送トランジスタと、
    第3インバータ及び第4インバータの出力端と入力端とが互いに交差接続された第2メモリセルと、
    前記第2メモリセルに電気的に接続され、前記第1ビット線と異なる第2ビット線と、
    前記第2メモリセルと前記第2ビット線との間に接続された第2転送トランジスタと、
    前記第1ビット線及び前記第2ビット線と異なる第3ビット線と、
    前記第1ビット線と前記第3ビット線との間に接続され、前記第1ビット線と前記第3ビット線とを接続状態あるいは非接続状態のいずれかの状態に切り換える第1スイッチ回路と、
    前記第2ビット線と前記第3ビット線との間に接続され、前記第2ビット線と前記第3ビット線とを接続状態あるいは非接続状態のいずれかの状態に切り換える第2スイッチ回路と、
    前記第1転送トランジスタ、前記第2転送トランジスタ、第1スイッチ回路、及び第2スイッチ回路を制御するコントローラと、
    を具備し、
    前記コントローラは、前記第1転送トランジスタによって前記第1メモリセルと前記第1ビット線との間を導通状態に設定し、前記第2転送トランジスタによって前記第2メモリセルと前記第2ビット線との間を導通状態に設定し、
    前記第1スイッチ回路及び前記第2スイッチ回路を接続状態に設定し、前記第1ビット線と前記第3ビット線との間、及び前記第2ビット線と前記第3ビット線との間を導通状態にして、前記第1ビット線、前記第2ビット線、及び前記第3ビット線を第1電圧に遷移させる演算装置。
  2. 前記第1転送トランジスタのゲートに接続された第1ワード線と、
    前記第2転送トランジスタのゲートに接続された第2ワード線と、
    前記第1ワード線及び前記第2ワード線に接続された第1ドライバと、
    前記第1スイッチ回路及び前記第2スイッチ回路の制御端に接続された第3ワード線と、
    前記第3ワード線に接続された第2ドライバと、
    をさらに具備し、
    前記第1ドライバは、前記第1ワード線及び前記第2ワード線に供給する第1信号をアサートし、その後、前記第1信号をネゲートし、
    前記第2ドライバは、前記第1ドライバにより前記第1ワード線及び前記第2ワード線の前記第1信号がネゲートされた後、前記第3ワード線に供給する第2信号をアサートする請求項1に記載の演算装置。
  3. 前記第3ビット線の前記第1電圧を第1値に変換するアナログ-デジタル変換回路と、
    前記アナログ-デジタル変換回路により変換された前記第1値をビットシフトするビットシフタと、
    をさらに具備する請求項1に記載の演算装置。
  4. 前記ビットシフタまたはアナログ-デジタル変換回路のいずれか1つから出力された前記第1値を累算するアキュムレータをさらに具備する請求項3に記載の演算装置。
  5. 第5インバータ及び第6インバータの出力端と入力端とが互いに交差接続された第3メモリセルと、
    前記第3メモリセルと前記第1ビット線との間に接続された第3転送トランジスタと、
    第7インバータ及び第8インバータの出力端と入力端とが互いに交差接続された第4メモリセルと、
    前記第4メモリセルと前記第2ビット線との間に接続された第4転送トランジスタと、
    をさらに具備し、
    前記コントローラは、前記第3転送トランジスタによって前記第3メモリセルと前記第1ビット線との間を導通状態に設定し、前記第4転送トランジスタによって前記第4メモリセルと前記第2ビット線との間を導通状態に設定し、
    前記コントローラは、前記第1スイッチ回路及び前記第2スイッチ回路を接続状態に設定し、前記第1ビット線と前記第3ビット線との間、及び前記第2ビット線と前記第3ビット線との間を導通状態にして、前記第1ビット線、前記第2ビット線、及び第3ビット線を第2電圧に遷移させ、
    前記アナログ-デジタル変換回路は、前記第3ビット線の前記第2電圧を第2値に変換し、
    前記ビットシフタは、前記アナログ-デジタル変換回路により変換された前記第2値をビットシフトする請求項3に記載の演算装置。
  6. 前記第1メモリセル及び前記第2メモリセルが記憶するデータは第1重みを有し、前記第3メモリセル及び前記第4メモリセルが記憶するデータは、前記第1重みと異なる第2重みを有する請求項5に記載の演算装置。
  7. 前記第2重みは、前記第1重みの2倍である(nは1以上の自然数)請求項6に記載の演算装置。
  8. 前記第1ビット線及び前記第2ビット線に接続され、前記第1ビット線及び前記第2ビット線を第3電圧にチャージするプリチャージ回路をさらに具備する請求項1に記載の演算装置。
  9. 前記第3ビット線に接続され、前記第3ビット線を第3電圧にチャージするプリチャージ回路をさらに具備する請求項1に記載の演算装置。
  10. 前記第1メモリセルは、前記第1インバータの出力端が前記第2インバータの入力端に接続され、前記第2インバータの出力端が前記第1インバータの入力端に接続され、
    前記第2メモリセルは、前記第3インバータの出力端が前記第4インバータの入力端に接続され、前記第4インバータの出力端が前記第3インバータの入力端に接続される請求項1に記載の演算装置。
  11. SRAMの第1メモリセルに電気的に接続された第1ビット線、SRAMの第2メモリセルに電気的に接続され前記第1ビット線と異なる第2ビット線、及び前記第1ビット線と前記第2ビット線に電気的に接続され前記第1ビット線及び前記第2ビット線と異なる第3ビット線を含む演算装置の演算方法において、
    前記第1メモリセルに記憶されたデータが記第1ビット線に読み出され、
    前記第2メモリセルに記憶されたデータが前記第2ビット線に読み出され、
    記第1ビット線及び前記第2ビット線にデータが読み出された後、前記第1ビット線と前記第3ビット線との間、及び前記第2ビット線と前記第3ビット線との間が接続状態に設定され、前記第1ビット線、前記第2ビット線、及び前記第3ビット線の電荷が共有されて前記第3ビット線の電圧が第1電圧に遷移され、
    前記第3ビット線の前記第1電圧がデジタル値の第1値に変換され、
    前記第1メモリセル及び前記第2メモリセルのデータが有する重みに応じて、前記第1値が維持又はビットシフトされて第2値として算出され、
    前記第2値が累算されて累積値が出力される演算方法。
JP2020158329A 2020-09-23 2020-09-23 演算装置及び演算方法 Pending JP2022052134A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020158329A JP2022052134A (ja) 2020-09-23 2020-09-23 演算装置及び演算方法
US17/353,044 US11610626B2 (en) 2020-09-23 2021-06-21 Arithmetic device and arithmetic method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020158329A JP2022052134A (ja) 2020-09-23 2020-09-23 演算装置及び演算方法

Publications (1)

Publication Number Publication Date
JP2022052134A true JP2022052134A (ja) 2022-04-04

Family

ID=80740660

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020158329A Pending JP2022052134A (ja) 2020-09-23 2020-09-23 演算装置及び演算方法

Country Status (2)

Country Link
US (1) US11610626B2 (ja)
JP (1) JP2022052134A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11967357B2 (en) * 2022-01-21 2024-04-23 National Tsing Hua University Memory unit with time domain edge delay accumulation for computing-in-memory applications and computing method thereof

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0729384A (ja) 1993-07-13 1995-01-31 Hitachi Ltd 半導体記憶装置
JP2002109884A (ja) * 2000-09-27 2002-04-12 Toshiba Corp メモリ装置
KR101850536B1 (ko) * 2010-10-27 2018-04-19 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 시스템
JP2016081549A (ja) 2014-10-17 2016-05-16 ローム株式会社 半導体記憶装置
GB201609704D0 (en) * 2016-06-03 2016-07-20 Surecore Ltd Memory unit
JP2020042873A (ja) 2018-09-11 2020-03-19 株式会社東芝 半導体記憶装置
JP2019079589A (ja) 2019-01-29 2019-05-23 ローム株式会社 半導体記憶装置

Also Published As

Publication number Publication date
US11610626B2 (en) 2023-03-21
US20220093162A1 (en) 2022-03-24

Similar Documents

Publication Publication Date Title
US8934313B2 (en) Negative voltage generator and semiconductor memory device
US8947951B2 (en) Semiconductor memory devices
EP3437096B1 (en) Efficient memory bank design
US9466359B2 (en) Static random access memory and driving method thereof
US5991191A (en) Methods and circuits for single-memory cell multivalue data storage
CN111130531B (zh) 多位电平转换器、电平转换器使能电路及电平转换方法
US8164972B1 (en) Address decoder
US4833643A (en) Associative memory cells
CN113539325A (zh) 存储器及其升压电路
JP5308320B2 (ja) P型評価を有するレジスタ・ファイル回路
US6751116B2 (en) Semiconductor memory device
JP2022052134A (ja) 演算装置及び演算方法
US5511034A (en) Simple temporary information storage circuit controllable with enable/reset signal
US11727988B2 (en) Ternary memory cell for logic-in-memory and memory device comprising same
US8995178B1 (en) SRAM with embedded ROM
US20150036419A1 (en) Semiconductor apparatus and data reading method
JP2588936B2 (ja) 半導体記憶装置
JP2001344979A (ja) 半導体記憶装置、半導体集積回路装置、および携帯機器
US5546352A (en) Semiconductor memory device having decoder
US6741493B1 (en) Split local and continuous bitline requiring fewer wires
US7142465B2 (en) Semiconductor memory
JP2011159332A (ja) 半導体記憶装置
US9536608B1 (en) Content addressable memory device
US20220366944A1 (en) Pseudo dual port memory devices
JP2014164777A (ja) Sram

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20230106