CN114822638A - 计算器件以及计算方法 - Google Patents

计算器件以及计算方法 Download PDF

Info

Publication number
CN114822638A
CN114822638A CN202210073731.3A CN202210073731A CN114822638A CN 114822638 A CN114822638 A CN 114822638A CN 202210073731 A CN202210073731 A CN 202210073731A CN 114822638 A CN114822638 A CN 114822638A
Authority
CN
China
Prior art keywords
current
memory
input
transistor
memory cell
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
CN202210073731.3A
Other languages
English (en)
Inventor
池育德
李嘉富
张琮永
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.)
Taiwan Semiconductor Manufacturing Co TSMC Ltd
Original Assignee
Taiwan Semiconductor Manufacturing Co TSMC Ltd
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 Taiwan Semiconductor Manufacturing Co TSMC Ltd filed Critical Taiwan Semiconductor Manufacturing Co TSMC Ltd
Publication of CN114822638A publication Critical patent/CN114822638A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • 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/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • 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/412Digital 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 using field-effect transistors only
    • 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/418Address 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/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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/16Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Neurology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Static Random-Access Memory (AREA)
  • Analogue/Digital Conversion (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Monitoring And Testing Of Nuclear Reactors (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

本发明的实施例涉及计算器件以及计算方法。在一些示例中,存储器中的计算器件包括在行和列中布置的二维存储器单元阵列,每个存储器单元由基于电流的九晶体管SRAM制成。每个存储器单元包括六晶体管SRAM单元和由开关晶体管耦合的电流源,其由输入线上的输入信号控制,与存储器单元所在的存储器单元的列相关联。电流源包括由六晶体管SRAM单元的状态控制的开关晶体管,以及电流调节晶体管,用于产生由栅极处施加的控制信号确定的电流水平。可以设置控制信号,使得存储器单元的每个连续列中的每个输出线中的总电流以因子2增加。

Description

计算器件以及计算方法
技术领域
本发明的实施例涉及计算器件以及计算方法。
背景技术
本公开一般涉及存储器内计算,或者存储器内的计算(“CIM”),并且更具体地涉及用于数据处理(诸如乘积累积(“MAC”)操作)中使用的存储器阵列。存储器内计算或者存储器内的计算系统储存位于计算机的主随机存取存储器(RAM)中的信息,并在存储器单元层级执行计算,而不是在每个计算步骤的主RAM和数据储存之间移动大量数据。当储存的数据存储在RAM中时,由于储存的数据更快速地被存取,所以存储器内计算允许实时分析数据,使得商业应用和机器学习应用中的报告和决策更快。正在努力以提高存储器内计算系统的性能。
发明内容
根据本发明实施例的一个方面,提供了一种计算器件,包括:存储器阵列,包括在存储器单元的行和列中分组的多个存储器单元,每个存储器单元包括用于储存数据的存储器单位、包括第一开关器件和电流发生器器件的电流源以及第二开关器件;多个输入线,每个输入线连接到相应的行中的第二开关器件,并用于将输入信号传输到行中的第二开关器件;多个输出线,每个输出线与存储器单位的相应列相关联;以及多个电流控制器,每个电流控制器通过电流控制线连接到存储器单元的相应列中的电流发生器器件,并用于设置由存储器单元的相应列中的电流发生器器件产生的电流水平;其中,根据从输入线接收的输入信号,存储器单元的每个列中的第二开关器件用于存储器单元中的电流源到与列相关联的输出线的连接或断开,并且根据储存在存储器单元中的存储器单位中的数据,每个存储器单元中的第一开关器件用于允许或防止来自电流发生器器件的电流。
根据本发明实施例的另一个方面,提供了一种计算器件,包括:多个输入线;多个输出线;多个控制信号发生器;多个电流控制线,每个控制线连接到多个控制信号发生器中的相应一个;和多个存储器单元,以二维阵列的行和列逻辑排列,每个行与多个输入线中的相应一个输入线相关联,每个列与多个输出线和电流控制线中的相应一个相关联。存储器单元包括:存储器单位,具有至少两个存储器状态;第一开关晶体管,用于从存储器单位接收指示存储器状态的信号,并且至少部分地根据存储器状态被接通或断开;第二开关晶体管,用于从与存储器单元相关联的输入线接收输入,并至少部分地根据输入信号被接通或断开;和电流调节晶体管,用于通过与存储器单元相关联的电流控制线接收来自与存储器单元相关联的控制信号发生器的控制信号,并至少部分地根据控制信号产生电流的水平;第一晶体管和第二开关晶体管以及电流调节晶体管连接为向输出线传递电流,电流的水平由存储器状态、输入信号和控制信号的组合确定。
根据本发明实施例的又一个方面,提供了一种计算方法,包括:在多个相应的存储器元件中储存多数位字数的多个数位,每个数位具有值和位值;根据储存在相应的存储器元件中的数位的值,接通或断开多个电流源,每个电流源与相应的一个存储器元件相关联;将控制信号施加到每个电流源,以根据储存在相应的存储器元件中的数位的位值设置电流源提供的电流水平;以及通过输入线施加输入信号以激活多个开关器件,每个开关器件与相应的一个存储器元件相关联,以允许由相应的电流源提供的电流流到与存储器元件相关联的输出线。
附图说明
当结合附图进行阅读时,从以下详细描述可最佳理解本发明的各个方面。应该强调,根据工业中的标准实践,各个部件未按比例绘制并且仅用于说明的目的。实际上,为了清楚的讨论,各个部件的尺寸可以任意地增大或减小。
图1是根据一些实施例的存储器内计算系统的示意图,存储器内计算系统包括四位精确权重计算子系统,其中包括电流源的9-晶体管(“9T”)(基于电流的静态随机存取存储器(“SRAM”))用于每个存储器元件。
图2是根据一些实施例的类似于图1中所示存储器内计算系统(除每个存储器元件中的电流调节晶体管的源极连接到节点Q以外)的存储器内计算系统的示意图。
图3是根据一些实施例的类似于图1中所示存储器内计算系统(除电流源中的晶体管是P沟道金属氧化物半导体场效应晶体管(“MOSFET”)(“PMOS”)以外)的存储器内计算系统的示意图。
图4是根据一些实施例的类似于图3中所示存储器内计算系统(除了每个存储器元件中的电流调节晶体管的漏极连接到节点Q以外)的存储器内计算系统的示意图。
图5是根据一些实施例的从存储器单元的位列的位线的电流求和、以及使用一个或多个模数转换器(“ADC”)将和转换为数字输出的框图。
图6A示出了根据一些实施例的与基于电流的SRAM一起使用的逐次逼近寄存器(“SAR”)ADC。
图6B示出了根据一些实施例的使用基于电流的SRAM并且使用脉冲计数作为输入对加权输入求和。
图7示出了根据一些实施例的使用时域ADC来生成与模拟输入加权和对应的数字信号。
图8示出了根据一些实施例的计算过程。
图9概述了根据一些实施例的计算过程。
图10示出了根据一些实施例的CIM操作。
具体实施方式
以下公开内容提供了许多用于实现本发明的不同特征不同的实施例或实例。下面描述了组件和布置的具体实施例或实例以简化本发明。当然,这些仅是实例而不旨在限制。例如,在以下描述中,在第二部件上方或者上形成第一部件可以包括第一部件和第二部件直接接触形成的实施例,并且也可以包括在第一部件和第二部件之间可以形成额外的部件,从而使得第一部件和第二部件可以不直接接触的实施例。此外,本发明可以在各个示例中重复参考数字和/或字母。该重复是为了简单和清楚的目的,并且其本身不指示讨论的各个实施例和/或配置之间的关系。
本公开中所示的具体示例涉及存储器内计算。存储器内计算的应用的示例是乘积累加(“MAC”)操作,其中数字的输入阵列由另外的数字(例如,权重)的阵列(例如,列)中各自的元件相乘(加权),并将乘积加在一起(累加)以产生输出总和。这在数学上类似于两个向量的点乘积(或标量乘积),其中两个矢量的分量相互成对相乘,并且分量对的乘积被求和。在某些人工智能(AI)系统中,诸如人工神经网络,可以通过多个权重的列来加权数字的阵列。每个列的加权产生各自的输出和。因此,由数字的输入阵列通过多个列的矩阵中的权重来产生和的输出阵列。
常用类型的集成电路存储器是静态随机存取存储器(SRAM)器件。典型的SRAM存储器器件具有存储器单元的阵列。在一些示例中,每个存储器单元使用连接在较高参考电位和较低参考电位(例如,地)之间的六晶体管(6T),使得两个储存节点中的一个可以由要储存的信息占据,在另外的储存节点处储存互补的信息。SRAM单元中的每个位储存在晶体管中的四个上,其形成两个交叉耦合的反相器。另外两个晶体管连接到存储器单元字线(WL')以通过选择性地将单元连接到其位线(BL)来控制对存储器单元的存取。当使能字线时,连接到位线的感测放大器感测并输出储存的信息。连接到位线的输入/输出(I/O)电路通常在处理存储器单元数据时被使用。
根据本公开的一些方面,存储器内计算(CIM)系统包括存储器阵列,其中,除了传统的(例如6T SRAM)存储器单元,每个存储器单元还具有受控电流源,受控电流源具有电流调节晶体管和由存储器节点(Q或QB,其中与储存的值相对应的电压被保持)控制的开关晶体管,并用于使通过电流调节晶体管的电流通过。存储器单元的每个列中的电流调节晶体管由公共电流控制线上的电流控制电压控制。在一些实施例中,不同列的电流控制电压相差2的幂因子,使得每个电流源中的电流与储存在该列中的相应存储器单元中的位的位值(place value)(20、21、23等)成比例。每个存储器单元还具有用于将受控电流源连接到当前求和位线(BL)的开关晶体管(WLC)。存储器单元的每个行的开关晶体管(WLC)由公共CIM字线(WL)控制(接通和断开)。在一些实施例中,每个存储器单元包括是6T SRAM的传统存储器单元和受控电流源和WLC,并且这形成了九晶体管(“9T”)基于电流的SRAM单元,适用于以传统方式储存数字信息以及执行CIM。
根据本公开的某些方面,可以利用WL上的脉冲串(脉冲的数量对应于输入的值)或单个脉冲(其宽度对应于输入的值)实现多位输入。例如,在一些实施例中,可以使用4位输入,但是其他位宽度在本公开的范围内。例如,输入0由0(00002)个WL脉冲表示,输入310(00112)的由3个WL脉冲表示,输入1510(11112)由15个WL脉冲表示。
在一些实施例中,输入信号可以乘以排列在列中的多位(例如,四位)权重(即权重值)。可以通过对对应于多位权重的每个位的列中的所有单元的位线进行充电来实现多位权重累积的输入;因此,每个BL上的电压指示来自连接到BL的每个单元的电流的和,并且因此指示输入的和,每个输入分别由与列相关联的二进制权重加权。因此,在BL上执行乘积累加功能,并且总BL电流成比例于权重位与多位输入的按位相乘。然后,将与多位权重的列对应的所有BL的电流相加在一起以产生模拟信号(例如,一时间段的电压或信号),因此其值是分别由多位权重加权的多位输入的和。由于每个列的电流控制电压对应于列的位值,所以权重的最高有效位(most significant bits,MSB)对最终的电流和的贡献比权重的最低有效位(least significant bits,LSB)更多。因此,最终的模拟信号反映了每个RBL的正确含义。例如,对于四位权重的列,来自最大MSB的对最终电压(或时间长度)的贡献将是来自LSB的贡献的八(23)倍;来自第二MSB的贡献将是来自LSB的贡献的四(22)倍;来自第三MSB(或第二LSB)的贡献将是来自LSB的贡献的两(21)倍。
在某些进一步的实施例中,在一些示例中使用模数转换器(ADC),诸如逐次逼近寄存器(“SAR”)ADC或时域ADC,以将最终的模拟信号转换为多位数字输出。
参考图1和图10,在下面进一步说明这些实施例的详细方面之前提供了一些示例实施例的概述。在诸如人工智能的某些应用中,提出了模型系统。将一组输入(例如,数字)提供给模型系统,模型系统处理输入并生成输出。将输出与期望的输出进行比较,如果输出与期望的输出不足够接近,则调整模型系统,重复该过程,直到模型系统的输出足够接近期望的输出。例如,为了具有能够阅读的机器,可以将一组字母的片段提供给模型系统。系统取得片段(输入)并根据算法处理片段,并输出系统确定其收到的字母。如果输出字母与输入字母不同,则可以调整系统并再次进行测试,直到输出与输入匹配的次数的百分比足够高。
对于一些应用,模型系统可以是乘法系统,其通过将每个输入乘以一个值(有时称为“权重”)并且将乘积一起求和(累加)来处理一组输入。系统可以包括以行和列布置的元件的二维阵列,每个元件存储权重,并且能够接收输入并产生输出,输出是输入和储存的权重的算术乘积。模型系统可以将提供给元件的整个行的每个输入和元件的每个列的输出加在一起。
例如,图10中所示的系统(1000)具有各自储存权重的元件的二维阵列(在该示例中3x3)(1010)、或单元(1020)。每个单元(1020)连接到输入线WL,并且每个列中的单元连接到相同的输出线BL。在图10中,每个单元由电阻器的符号表示,因为如果要用图1所示的9T基于电流的SRAM单元(120)替换电阻元件,位线BL中产生的输出电流(YA,YB,YC)与电阻元件的输入电压(X0,X1,X2)之间的关系类似于输出电流与输入脉冲之间的关系。即,在电阻元件(1020)的情况下,每个电流Yj(j=0,1,2)是输入电压Xi和第j栏中的相应电导Gij之间的乘积的和,或者,在SRAM元件(1020)的情况下,每个电流Yj(j=0,1,2)是指示数字的输入信号和第j栏中的相应二进制权重之间的乘积的和。
如图1所示,每个单元(120)具有节点Q,节点Q由SRAM单元保持在指示储存在单元中的值(权重)的电压下。从图1中的图中可以容易地理解,对于每个单元,对于输入WL处的二进制“1”以及电流调节晶体管接通,如果Q是“1”则单元(110)将从BL中汲取电流,如果Q为“0”则无电流,对于WL'处的二进制“0”,无论Q的值如何,单元(110)都不会汲取电流。如果在给定的时间段上的电流汲取量(即,一定量的汲取电荷量)高于阈值被认为是输出“1”,因此单个单元(110)的输出由下表给出:
Figure BDA0003483065360000071
从该表中可以看出,输出是输入和权重的乘积。
此外,因为相同列中的单元(110)共享相同的BL,所以BL中的电流是连接到它的所有单元(110)的电流的和。因此,每个BL中的电流表示输入(WL)和相应储存权重的二进制乘积的和。此外,由于通过每个电流调节晶体管的电流与电流调节控制线(CL(190))处的栅极电压成比例,因此每个BL中的总电流与相应CL上的电压成比例。
再次参考图1,在使用多位(在该示例中四位)权重进行乘积累加操作的系统中,每个输入(WL)被提供给多个(例如,四个)单元(110),分别储存多位权重的一个位。每个BL连接到具有相同位值(即20、21、22、23等)的单元(110)的列。在该示例中,分别对应于BL[0]、BL[1]、BL[2]和BL[3]的CL上的电压为对应于BL[0]的CL上的电压的1、2、4和8倍。因此,每个BL中的总电流相对于BL[0]上的总电流乘以因子1、2、4和8(即,20、21、22、23)。因此,每个BL[j]中的总电流与该BL的位值(2j)成比例。因此,每个BL[j]中的总电流成比例于输入与多位权重的第j个数位(BL的位值的倍数)之间的乘积的和。
此外,附加参考图5,因为BL并联连接,所以通过电阻器(510)的总电流是多位权重(Wn或Wn+1)的每个列的所有BL的电流的和。因此,显而易见的是,总电流是所有输入信号乘以(加权)相应的多位权重的和。
最后,根据欧姆定律,如图5所示以及下面更详细描述的,将多位权重(Wn或Wn+1)的每个列的所有BL的电流的和转换为电压,并且转换的信号被模数转换器(ADC)转换为数字输出,以获得数字输出,数字输出与输入和储存在单元(110)中的相应多位权重之间的乘积的和相对应。在一些实施例中,诸如图7中所示的示例以及下面更详细描述的,也可以将多位权重(Wn或Wn+1)的每个列的所有BL的电流的和转换为时域信号(即,脉冲宽度或脉冲计数),时域信号然后可以通过计数器转换为数字信号。
此外,如图1所示,因为CIM系统(100)中的存储器单元(120)各自具有6T SRAM单元,所以CIM系统(100)本身可以简单地用作存储器阵列,使用位线BL'和BLB'数据线以及WL'用于写入线。可选地,位线BL'和BLB'可用于将数据写入(由WL'使能)存储器单元(120),并且位线BL可用于从存储器单元(120)读取(由WL使能)读取数据。
为了更详细地解释上述系统及其操作,参考图1,在一些实施例中,计算器件(100)包括以行和列布置的存储器单元(120)的二维(“2D”)阵列(110)。每个存储器单元(120)包括6T SRAM单元(130)、受控电流源(150)和CIM电流开关晶体管(WLC(160))。2D存储器阵列(110)还包括一组CIM字线(WL(170)),每个行一个;一组CIM位线(BL(180)),每个列一个;以及一组电流调节控制线(CL(190))。
在这种情况下,每个6T SRAM单元(130)包括:第一反相器(132),由串联连接(即,源极-漏极电流路径串联)在高参考电压(诸如VDD)和低参考电压(诸如地)之间的P型金属氧化物半导体(MOS)场效应晶体管(PMOS)(142)和n型MOS场效果晶体管(NMOS)(144)形成;第二反相器(134),由串联连接在高参考电压(诸如VDD)和低参考电压(诸如地)之间的PMOS(146)和NMOS(148)形成;以及两个写入存取晶体管(136、138),在该示例中是NMOS。反相器(132、134)反向耦合,即,一个的输出(Q、QB)(即,源极/漏极电流路径之间的结)耦接到另一个的输入(即,栅极)(QB、Q);写入存取晶体管(136、138)各自具有其源极/漏极电流路径,源极/漏极电流路径连接在反向耦合的反相器(132、134)的相应结和相应位线(BL',BLB')之间,并且写入存取晶体管(136、138)的栅极连接到字线(WL')。
该示例中的每个受控电流源(150)包括彼此串联连接的电流开关晶体管(152)和电流调节晶体管(154)。受控电流源(150)进一步与CIM电流开关晶体管(WLC(160))串联连接。电流开关晶体管(152)的栅极连接到储存节点(Q,QB)中的一个(例如,反相节点QB)。电流调节晶体管的栅极连接到调节电流控制线(190)。CIM电流开关晶体管(WLC(160))的栅极连接到CIM写入线(WL(170))。
在该示例中,电流开关晶体管(152)、电流调节晶体管(154)和CIM电流开关晶体管(WLC(160))都是NMOS。可以使用其他类型的晶体管和连接,如以下示例所示。例如,可以使用PMOS;电流源开关晶体管(152)的栅极可以连接到6T存储器单元(130)的非反相输出(Q)。
在CIM操作中,将多位权重写入6T SRAM单元,这可以通过传统方法进行,每个单元(130)储存“1”或“0”。为了计算输入的加权和,电流调节晶体管(154)的栅极由电流调节控制线(CL(190))偏置。如上所述,由于每个存储器单元(120),任何瞬间到位线BL[j]或来自位线BL[j]的单元电流Icell是WL上的输入信号和储存在单元中的位值的乘积。单元电流进一步与CL(190)上的栅极电压成比例。因此,每个BL(180)中的总电流成比例于所有输入信号乘以存储在该列中的相应权重的和,并且成比例于该列的CL上的电压。
在一些实施例中,诸如图1所示的示例,存储了多位权重(本示例中4位),分别在每行(在该示例中为4位宽)中。在该示例中,从左到右,位从最小有效位(LSB)排列到最大有效位(MSB)。因此,从左到右,每个列具有位值1、2、4和8。相应地,从左到右,相应CLS(190)上的偏置电压也具有相对的值1、2、4和8。结果是每个BL上的总电流与该第(j)列的位置2j成比例。
上面给出的示例假定通过电流调节晶体管(154)的电流与栅极电压成比例,但是这种比例条件不是必须的;其他栅极电压可以适当地实现WL上的输入和储存在每个列的各个存储器单元(120)中的权重之间的乘积的相同和的期望的BL电流比。
在一些实施例中,CL上的栅极电流由精确电源(电流源或电流源)提供,诸如零温度系数电路(“ZTC”)或NMOS或PMOS电流镜。在CIM操作的一些实施例中,诸如当数据不是从任何单元读取或者不是写入任何单元时,用于VDD的较低电压(例如2伏)是可接受的,以确保单元(130)将正确地保持数据。在这种情况下,可以将SRAM设置为电源降低的保持模式以节省功率。
计算器件的其他配置是可能的。例如,在一些实施例中,诸如图2中所示的器件(200),其与图1中的器件相同,除了每个单元120的电流调节晶体管(154)的源极连接到6T单元130的储存节点(在该情况下Q)。通过这种配置,减小了BL漏电流。
在一些实施例中,诸如图3中所示的器件(300),其与图1中的器件相同,除了每个单元(120)中的电流源(150)中使用PMOS晶体管(352、354)代替NMOS晶体管(152、154)。
在一些实施例中,诸如图4中所示的器件(400),其与图3中的器件相同,除了每个单元120的电流调节晶体管(354)的漏极连接到6T单元130的储存节点(在该情况下Q)。利用这种配置,减小了BL漏电流。
参考图5,在一些实施例中,多位权重(Wn、Wn+1等)的每个列的所有BL(180)的电流Ij求和并且电流Ij通过电阻器(510)以产生电压(∑Ij)R,其中R是电阻器(510)的电阻。如上所述,电流和(因此以及电压)成比例于输入乘以相应的多位权重的总和。然后将电压施加到ADC(550)的输入线(520),其产生数字输出(560),数字输出(560)与输入的加权和成比例。结果实现了存储器内计算。
在一些实施例中,通过相应的输入线(520、530、540),来自多位权重的多个列的上述输出电压可以被馈送到相同的ADC(550)。尤其是,在一些实施例中,可以使用高速逐次逼近寄存器,诸如图6A所示的示例SAR ADC(600)。基于电流的CIM使能要在一个ADC操作中执行的转换,而不是N个ADC操作(每个位线一个)。这种SAR ADC的结构和操作是已知的,这里不再详细说明。简而言之,具有2幂次的电容比(例如,对于5位转换器,C、C/2、C/4、C/8、C/16、加上C/16的“伪”电容器)的电容器在共同端(620)处连接,共同端(620)连接到比较器(610)的输入(反相)。在一些实施例中,比较器(610)的另一输入(非反相)连接到地。电容器的另一端开始连接到输入电压Vin,然后连接到地(630)。此后,电容器的非公共端被顺序地切换,最大电容到最小电容,从地到参考电压VRef,并且取决于公共端处的电压是否为正或负数,比较器的输出为0或1。取决于比较器的输出,刚连接到VRef的电容器再次连接到地或保持连接到VRef。这些步骤的比较器(620)的输出是Vin的数字近似,MSB首先产生并且LSB最后产生。
对于N位SAR ADC,它通常需要N+1个时钟周期,以进行采样和逐位比较步骤。因此,例如对于图6A中所示的5位SAR ADC,需要6个时钟周期以完成模拟信号到数字信号的转换。
利用基于电流的SRAM,多位权重的相同位列中的所有单元以及相同列中的所有位列同时进行电流求和。此外,在一些实施例中,如图6B所示,WL上的每个输入数字由脉冲串表示,脉冲的数量与输入数字成比例。例如,输入0(00002)产生0脉冲,输入310(00112)产生3个RWL脉冲,输入1510(11112)产生15个RWL脉冲,以此类推。可选地,还可以使用单个脉冲,其中脉冲宽度与输入数字成比例。例如,输入1(00012)产生一个单位宽度的脉冲,输入310(00112)产生三个单位宽度的脉冲,输入1510(11112),产生15个单位宽度的脉冲,以此类推。在一些实施例中,当执行CIM时,如果输入信号采样周期足以包括整个脉冲计数或脉冲宽度,那么输入(520、530、540)处的信号成比例于多位输入信号和相应的多位权重之间的乘积的和。在这种CIM操作中,对于N位输入,它需要N个时钟周期来对输入进行采样,并且需要N+1个时钟周期以将模拟CIM输出转换为数字输出,如上所述。也就是说,CIM操作需要2N+1个时钟周期来完成。对于N位输入,需要单个ADC操作(包括多个时钟周期(例如,11个用于5位转换))。相反,在传统的多位CIM操作中,需要N个ADC操作(每个输入位一个)。因此,根据一些实施例,通过基于电流的CIM电路及其操作实现了较少的功耗和延迟,诸如图6B所示。
在一些实施例中,诸如图7所示的示例,与图5中所示的器件类似的计算器件(700)中的多位权重的每个列的组合BL电流可以使用时域ADC被转换为数字信号。在一些实施例中,时域ADC包括如图7所示连接的电容C的电容器(710)和比较器(750)。通过线(720)将组合BL电流馈送到电容器(710)。VRef和电容器(710)上的电压被施加到比较器(750)的输入。将电容器充电到参考电压VRef的时间与电流成反比,并且该时间可以例如通过连接到比较器(750)的输出并且由比较器(750)操作的计数器(未示出)来测量。也就是说,计数器运行,直到电容器电压达到VRef以及比较器(750)的输出切换状态并停止计数器。因此,计数是模拟输入的数字表示。
类似于SAR ADC的以上示例,对于N位输入,需要单个ADC操作,而不是N个ADC操作(每个输入位一个)。
更一般地,在一些实施例中,如图8中所概述的,计算方法(800)包括:(810)储存一组多数位数字的数位在一组相应的存储器元件中,每个数位具有值和位值;(820)取决于存储在相应的存储器元件中的数位的值,接通或断开一组电流源,每个电流源与相应的一个存储器元件相关联;(830)将控制信号施加到每个电流源,以根据储存在相应的存储器元件中的数位的位值来设置电流源提供的电流水平;以及(840)通过输入线施加输入信号以激活一组开关器件,每个开关器件与相应的一个存储器元件相关联,以允许由相应的电流源提供的电流流到与存储器元件相关联的输出线。
可以采用上述公开的其他变型。例如,可以使用除SRAM单元以外的其他类型的存储器单元。例如,代替6T SRAM单元可以使用非易失性存储器(NVM)单元,诸如FeRAM、FeFET和闪存。
这里公开的各种示例相比传统器件和方法具有某些优点。例如,如图9中的示例系统所示,由于存储器元件可以作为传统存储器以及CIM元件被存取,因此可以减少或消除使用外部存储器(诸如外部DRAM)。具有某些实施例的设计提供了灵活性。例如,可以使用SRAM或NVM CI。SRAM具有快速写入和高写入耐久性的优势;NVM具有非易失性、小占位面积、低泄漏以及瞬间接通器件的能力的优点。基于SRAM的存储器内计算可以导致能耗降低。利用SRAM,CIM的权重的在线更新(即,在基于旧权重值进行计算输出的同时,将新权重值写入存储器中)也是可行性的。在人工神经网络应用中,通常需要MAC操作的迭代,每次迭代使用不同的一组权重值。由于非易失性存储器阵列的速度相对较慢,需要多个阵列来存储多组权重值。相反,利用以上某些实施例中公开的SRAM单元,由于这种存储器单元的高速,可以在神经网络操作中随着连续的权重值组重新加载单个SRAM阵列。
在一些实施例中,如图9所示,可以从存储器模块更新CIM器件(诸如集成电路(900))的CIM的权重值,在一些实施例中存储器模块可以是片上存储器(910)。在一些实施例中,权重值在被提供给CIM的SRAM阵列(930)之前,可以以压缩模式被存储并且通过解压缩模块(920)来解压缩。压缩和解压缩系统和方法是众所周知的。例如,韩松,“深度学习的高效方法和硬件”斯坦福大学大学(2017年)(在http://purl.stanford.edu/qf934gh3708处可访问),在此通过引用并入本文。深度压缩(Deep Compression)由剪枝、量化训练和可变长度编码组成,它可以压缩深度神经网络数个量级而没有什么预测准确度损失。这种大型压缩能使机器学习在移动设备上运行。深度压缩是一种三阶段流程,它可以在保留原始准确度的情况下减小深度神经网络的模型大小。首先我们可以移除冗余连接而剪枝网络,这一过程只需要保留提供最多信息的连接。下一步需要量化权重,并令多个连接共享相同的权重。因此只有有效权重和索引需要储存,且每个参数只需要较少的位就能表示。最后,我们可以应用可变长度编码(Huffman编码)来利用有效权重的不均匀分布,并在没有训练准确度损失情况下使用可变长度编码表征权重。我们最重要的观点是,剪枝与量化训练可以在不相互影响的情况下压缩神经网络,因此可以产生惊人的高压缩率。深度压缩令存储需求变得很小(兆字节空间),所有的权重都可以在芯片上缓存而不需要芯片外的DRAM。而动态随机储存器不仅慢同时能耗还比较高,因此深度压缩可以令模型更加高效。
在一些实施例中,一种计算器件包括:存储器阵列,包括在存储器单元的行和列中分组的多个存储器单元,每个存储器单元包括用于储存数据的存储器单位、包括第一开关器件和电流发生器器件的电流源以及第二开关器件;多个输入线,每个输入线连接到相应的行中的第二开关器件,并用于将输入信号传输到行中的第二开关器件;多个输出线,每个输出线与存储器单位的相应列相关联;以及多个电流控制器,每个电流控制器通过电流控制线连接到存储器单元的相应列中的电流发生器器件,并用于设置由存储器单元的相应列中的电流发生器器件产生的电流水平;其中,根据从输入线接收的输入信号,存储器单元的每个列中的第二开关器件用于存储器单元中的电流源到与列相关联的输出线的连接或断开,并且根据储存在存储器单元中的存储器单位中的数据,每个存储器单元中的第一开关器件用于允许或防止来自电流发生器器件的电流。
在一些实施例中,多个电流控制器用于设置存储器单元的每个连续列中的由电流发生器器件产生的电流水平以因子2增加。
在一些实施例中,在每个存储器单元中:存储器单位包括用于在储存节点处储存信号的静态随机存取存储器(SRAM)单元,第一开关器件包括第一晶体管,第一晶体管具有连接到储存节点的栅极,电流发生器器件包括第二晶体管,第二晶体管具有连接到与存储器单元中的列相关联的电流控制线的栅极,第二开关器件包括第三晶体管,第三晶体管具有连接到与存储器单元的行相关联的输入线的栅极。
在一些实施例中,每个SRAM单元中是六晶体管SRAM。
在一些实施例中,根据存储在储存节点的信号和第三晶体管的栅极处接收的输入信号的组合,第一晶体管和第三晶体管用于允许或防止由第二晶体管产生的电流流到输出线。
在一些实施例中,每个存储器单位用于储存指示权重值的信号,每个输入信号指示输入数字,并且第一开关和第二开关以及电流源共同用于向与存储器单元相关联的输出线提供电流,电流的水平指示储存在存储器单位中的权重值和由输入信号指示的输入数字的乘积。
在一些实施例中,对于每个存储器单元:存储器单位是具有两个储存节点的SRAM单元,两个储存节点用于储存彼此互补的指示二进制值的对应信号,其中第一晶体管、第二晶体管和第三晶体管的串联组合具有两端,两端中的一个连接到输出线,并且其中第一晶体管的栅极连接到储存节点中的一个。
在一些实施例中,串行组合的另一端连接到储存节点中的另一个。
在一些实施例中,计算器件还包括模数转换器(“ADC”),其中多个输出线彼此连接并且用于产生指示多个输出线的组合电流的信号,其中ADC用于接收信号并将信号转换为数字信号。
在一些实施例中,ADC包括逐次逼近寄存器ADC。
在一些实施例中,ADC包括时域ADC。
在一些实施例中,每个存储器单元还包括数据输入/输出线和数据使能线,用于使能存储器单位以通过数据输入/输出线接收数据并允许通过数据输入/输出线从存储器单位检索数据。
在一些实施例中,一种计算器件,包括:多个输入线;多个输出线;多个控制信号发生器;多个电流控制线,每个控制线连接到多个控制信号发生器中的相应一个;和多个存储器单元,以二维阵列的行和列逻辑排列,每个行与多个输入线中的相应一个输入线相关联,每个列与多个输出线和电流控制线中的相应一个相关联,存储器单元包括:存储器单位,具有至少两个存储器状态;第一开关晶体管,用于从存储器单位接收指示存储器状态的信号,并且至少部分地根据存储器状态被接通或断开;第二开关晶体管,用于从与存储器单元相关联的输入线接收输入,并至少部分地根据输入信号被接通或断开;和电流调节晶体管,用于通过与存储器单元相关联的电流控制线接收来自与存储器单元相关联的控制信号发生器的控制信号,并至少部分地根据控制信号产生电流的水平;第一晶体管和第二开关晶体管以及电流调节晶体管连接为向输出线传递电流,电流的水平由存储器状态、输入信号和控制信号的组合确定。
在一些实施例中,每个存储器状态对应于数值权重值,并且输入信号对应于数值输入值,其中第一晶体管和第二开关晶体管以及电流调节晶体管连接为向输出线传递电流,电流的水平成比例于对应于存储器状态的数值权重值与对应于输入信号的数值输入值的乘积。
在一些实施例中,第一晶体管和第二开关晶体管以及电流调节晶体管连接为形成具有两端的串联组合,两端中的一个连接到输出线,其中存储器单位具有储存节点,存储器单位用于存储指示存储器状态的信号,其中第一开关晶体管具有连接到储存节点的栅极,第二晶体管具有连接到输入线的栅极,并且电流调节晶体管具有连接到电流控制线的栅极。
在一些实施例中,多个电流控制器用于设置存储器单元的每个连续列中的由电流调节晶体管产生的电流水平以因子2增加。
在一些实施例中,计算器件还包括具有输入的ADC,其中多个输出线在公共节点处连接在一起,公共节点连接到ADC的输入。
在一些实施例中,公共节点还连接到电阻器或电容器。
在一些实施例中,一种计算方法包括:在多个相应的存储器元件中储存多数位字数的多个数位,每个数位具有值和位值;根据储存在相应的存储器元件中的数位的值,接通或断开多个电流源,每个电流源与相应的一个存储器元件相关联;将控制信号施加到每个电流源,以根据储存在相应的存储器元件中的数位的位值设置电流源提供的电流水平;以及通过输入线施加输入信号以激活多个开关器件,每个开关器件与相应的一个存储器元件相关联,以允许由相应的电流源提供的电流流到与存储器元件相关联的输出线。
在一些实施例中,施加输入信号包括施加具有脉冲计数的多个脉冲的串或者具有脉冲宽度的单个脉冲,并且从提供给输出线的电流获得成比例于脉冲计数或脉冲宽度与存储的多数位数字的乘积的量。
上述概述了几个实施例的特征,以便本领域技术人员可以更好地理解本公开的各个方面。本领域技术人员应当理解,他们可以容易地使用本公开作为设计或修改用于实现本文所介绍的实施例的相同目的和/或实现其相同优点的其它过程和结构的基础。本领域技术人员还应当认识到,此类等效结构不背离本发明的精神和范围,并且它们可以在不背离本发明的精神和范围的情况下在本发明中进行各种改变、替换以及改变。

Claims (10)

1.一种计算器件,包括:
存储器阵列,包括在存储器单元的行和列中分组的多个存储器单元,每个所述存储器单元包括用于储存数据的存储器单位、包括第一开关器件和电流发生器器件的电流源以及第二开关器件;
多个输入线,每个所述输入线连接到相应的行中的所述第二开关器件,并用于将输入信号传输到所述行中的所述第二开关器件;
多个输出线,每个所述输出线与所述存储器单位的相应列相关联;以及
多个电流控制器,每个所述电流控制器通过电流控制线连接到所述存储器单元的相应列中的所述电流发生器器件,并用于设置由所述存储器单元的相应列中的所述电流发生器器件产生的电流水平;
其中,根据从所述输入线接收的输入信号,所述存储器单元的每个所述列中的所述第二开关器件用于所述存储器单元中的电流源到与列相关联的输出线的连接或断开,并且根据储存在所述存储器单元中的所述存储器单位中的数据,每个所述存储器单元中的所述第一开关器件用于允许或防止来自所述电流发生器器件的电流。
2.根据权利要求1所述的计算器件,其中,所述多个电流控制器用于设置所述存储器单元的每个连续列中的由所述电流发生器器件产生的电流水平以因子2增加。
3.根据权利要求1所述的计算器件,其中,在每个存储器单元中:所述存储器单位包括用于在储存节点处储存信号的静态随机存取存储器单元,所述第一开关器件包括第一晶体管,所述第一晶体管具有连接到所述储存节点的栅极,电流发生器器件包括第二晶体管,所述第二晶体管具有连接到与存储器单元中的列相关联的电流控制线的栅极,所述第二开关器件包括第三晶体管,所述第三晶体管具有连接到与所述存储器单元的所述行相关联的所述输入线的栅极。
4.根据权利要求3所述的计算器件,其中,每个所述静态随机存取存储器单元中是六晶体管静态随机存取存储器。
5.根据权利要求3所述的计算器件,其中,根据存储在所述储存节点的所述信号和所述第三晶体管的所述栅极处接收的所述输入信号的组合,所述第一晶体管和所述第三晶体管用于允许或防止由所述第二晶体管产生的电流流到所述输出线。
6.根据权利要求1所述的计算器件,其中,每个所述存储器单位用于储存指示权重值的信号,每个输入信号指示输入数字,并且所述第一开关和所述第二开关以及所述电流源共同用于向与所述存储器单元相关联的所述输出线提供电流,所述电流的水平指示储存在所述存储器单位中的权重值和由所述输入信号指示的所述输入数字的乘积。
7.根据权利要求6所述的计算器件,其中,对于每个所述存储器单元:所述存储器单位是具有两个储存节点的静态随机存取存储器单元,两个储存节点用于储存彼此互补的指示二进制值的对应信号,其中所述第一晶体管、所述第二晶体管和所述第三晶体管的串联组合具有两端,所述两端中的一个连接到所述输出线,并且其中所述第一晶体管的所述栅极连接到所述储存节点中的一个。
8.根据权利要求7所述的计算器件,其中,所述串联组合的另一端连接到所述储存节点中的另一个。
9.一种计算器件,包括:
多个输入线;
多个输出线;
多个控制信号发生器;
多个电流控制线,每个所述控制线连接到所述多个控制信号发生器中的相应一个;和
多个存储器单元,以二维阵列的行和列逻辑排列,每个行与所述多个输入线中的相应一个输入线相关联,每个列与所述多个输出线和所述电流控制线中的相应一个相关联,所述存储器单元包括:
存储器单位,具有至少两个存储器状态;
第一开关晶体管,用于从所述存储器单位接收指示所述存储器状态的信号,并且至少部分地根据所述存储器状态被接通或断开;
第二开关晶体管,用于从与所述存储器单元相关联的所述输入线接收输入,并至少部分地根据所述输入信号被接通或断开;和
电流调节晶体管,用于通过与所述存储器单元相关联的电流控制线接收来自与所述存储器单元相关联的所述控制信号发生器的控制信号,并至少部分地根据所述控制信号产生电流的水平;
所述第一晶体管和所述第二开关晶体管以及所述电流调节晶体管连接为向所述输出线传递电流,电流的水平由所述存储器状态、输入信号和控制信号的组合确定。
10.一种计算方法,包括:
在多个相应的存储器元件中储存多数位字数的多个数位,每个所述数位具有值和位值;
根据储存在相应的存储器元件中的所述数位的值,接通或断开多个电流源,每个电流源与相应的一个存储器元件相关联;
将控制信号施加到每个所述电流源,以根据储存在相应的存储器元件中的数位的位值设置电流源提供的电流水平;以及
通过所述输入线施加输入信号以激活多个开关器件,每个所述开关器件与相应的一个所述存储器元件相关联,以允许由相应的电流源提供的电流流到与所述存储器元件相关联的输出线。
CN202210073731.3A 2021-01-22 2022-01-21 计算器件以及计算方法 Pending CN114822638A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/155,362 2021-01-22
US17/155,362 US11693560B2 (en) 2021-01-22 2021-01-22 SRAM-based cell for in-memory computing and hybrid computations/storage memory architecture

Publications (1)

Publication Number Publication Date
CN114822638A true CN114822638A (zh) 2022-07-29

Family

ID=82320635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210073731.3A Pending CN114822638A (zh) 2021-01-22 2022-01-21 计算器件以及计算方法

Country Status (5)

Country Link
US (2) US11693560B2 (zh)
KR (1) KR102470924B1 (zh)
CN (1) CN114822638A (zh)
DE (1) DE102021101727A1 (zh)
TW (1) TWI803889B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11693560B2 (en) * 2021-01-22 2023-07-04 Taiwan Semiconductor Manufacturing Company, Ltd. SRAM-based cell for in-memory computing and hybrid computations/storage memory architecture
KR20230146936A (ko) * 2022-04-13 2023-10-20 고려대학교 산학협력단 스핀 궤도 토크 소자 기반의 프로세싱 인 메모리 장치
DE102022213371A1 (de) * 2022-12-09 2024-06-20 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Betreiben einer Speichervorrichtung und Speichervorrichtung

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4010995B2 (ja) * 2003-07-31 2007-11-21 Necエレクトロニクス株式会社 半導体メモリ及びそのリファレンス電位発生方法
US8885400B2 (en) * 2013-02-21 2014-11-11 Sandisk 3D Llc Compensation scheme for non-volatile memory
US9467638B2 (en) * 2013-08-13 2016-10-11 The Hong Kong University Of Science And Technology Sensory array with non-correlated double sampling random access-reset pixel and multi-channel readout
WO2015166376A1 (en) 2014-05-02 2015-11-05 Semiconductor Energy Laboratory Co., Ltd. Display device and input/output device
KR20190133695A (ko) 2017-03-24 2019-12-03 가부시키가이샤 한도오따이 에네루기 켄큐쇼 반도체 장치, 표시 시스템, 및 전자 기기
US10269413B1 (en) 2017-10-17 2019-04-23 R&D 3 Llc Memory device having variable impedance memory cells and time-to-transition sensing of data stored therein
TWI705391B (zh) * 2018-05-29 2020-09-21 英屬開曼群島商意騰科技股份有限公司 適用於人工神經元的記憶體內運算記憶體裝置及記憶體內運算記憶體區塊
KR102599662B1 (ko) * 2018-07-27 2023-11-07 삼성전자주식회사 주어진 동작 환경에 적합한 쓰기 전류에 기초하여 동작하는 메모리 장치 및 쓰기 전류를 구동하는 방법
US10642922B2 (en) * 2018-09-28 2020-05-05 Intel Corporation Binary, ternary and bit serial compute-in-memory circuits
EP3671750A1 (en) 2018-12-21 2020-06-24 IMEC vzw Synapse circuit with memory
US20200349422A1 (en) 2019-05-02 2020-11-05 Silicon Storage Technology, Inc. Output array neuron conversion and calibration for analog neural memory in deep learning artificial neural network
US11449741B2 (en) 2019-07-19 2022-09-20 Silicon Storage Technology, Inc. Testing circuitry and methods for analog neural memory in artificial neural network
US11322195B2 (en) * 2019-11-27 2022-05-03 Taiwan Semiconductor Manufacturing Company, Ltd. Compute in memory system
US11430491B2 (en) * 2020-04-30 2022-08-30 Taiwan Semiconductor Manufacturing Company, Ltd. Device and method for reading data in memory
US11170852B1 (en) * 2020-06-24 2021-11-09 Sandisk Technologies Llc Cross-bar arrays having steering element with diode
CN112181895B (zh) 2020-09-02 2023-06-06 上海交通大学 可重构架构、加速器、电路部署和计算数据流方法
US11693560B2 (en) * 2021-01-22 2023-07-04 Taiwan Semiconductor Manufacturing Company, Ltd. SRAM-based cell for in-memory computing and hybrid computations/storage memory architecture

Also Published As

Publication number Publication date
TWI803889B (zh) 2023-06-01
US20220236869A1 (en) 2022-07-28
US11693560B2 (en) 2023-07-04
TW202230115A (zh) 2022-08-01
KR20220106641A (ko) 2022-07-29
US20230297235A1 (en) 2023-09-21
DE102021101727A1 (de) 2022-07-28
KR102470924B1 (ko) 2022-11-25

Similar Documents

Publication Publication Date Title
Jiang et al. C3SRAM: An in-memory-computing SRAM macro based on robust capacitive coupling computing mechanism
US11948659B2 (en) Sub-cell, mac array and bit-width reconfigurable mixed-signal in-memory computing module
Sun et al. Fully parallel RRAM synaptic array for implementing binary neural network with (+ 1,− 1) weights and (+ 1, 0) neurons
CN112951294B (zh) 计算设备以及计算方法
KR102470924B1 (ko) 인메모리 컴퓨팅 및 하이브리드 계산/저장 메모리 아키텍처를 위한 sram 기반 셀
US11436478B2 (en) Control circuit for multiply accumulate circuit of neural network system
US10217512B1 (en) Unit cell with floating gate MOSFET for analog memory
CN113467751B (zh) 一种基于磁性随机存储器的模拟域存内计算阵列结构
US11430491B2 (en) Device and method for reading data in memory
Mu et al. SRAM-based in-memory computing macro featuring voltage-mode accumulator and row-by-row ADC for processing neural networks
Lee et al. A 17.5-fJ/bit energy-efficient analog SRAM for mixed-signal processing
CN113314163A (zh) 存储器器件、计算器件以及计算方法
Chen et al. MC 2-RAM: An in-8T-SRAM computing macro featuring multi-bit charge-domain computing and ADC-reduction weight encoding
Jeong et al. Variation-tolerant and low R-ratio compute-in-memory ReRAM macro with capacitive ternary MAC operation
Cheon et al. A 2941-TOPS/W charge-domain 10T SRAM compute-in-memory for ternary neural network
CN115080501A (zh) 基于局部电容电荷共享的sram存算一体芯片
Kim et al. A charge-domain 10T SRAM based in-memory-computing macro for low energy and highly accurate DNN inference
Saragada et al. In-memory computation with improved linearity using adaptive sparsity-based compact thermometric code
Zang et al. 282-to-607 TOPS/W, 7T-SRAM based CiM with reconfigurable column SAR ADC for neural network processing
CN113160860B (zh) 计算系统、计算器件和计算方法
TW202234399A (zh) 記憶體系統
Agarwal et al. The energy scaling advantages of RRAM crossbars
CN115019854B (zh) 基于忆阻器的存算一体存算单元和存算阵列
Saragada et al. An in-memory architecture for machine learning classifier using logistic regression
US20230027768A1 (en) Neural network computing device and computing method thereof

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination