CN115512729A - 存储器器件及其操作方法 - Google Patents

存储器器件及其操作方法 Download PDF

Info

Publication number
CN115512729A
CN115512729A CN202210553594.3A CN202210553594A CN115512729A CN 115512729 A CN115512729 A CN 115512729A CN 202210553594 A CN202210553594 A CN 202210553594A CN 115512729 A CN115512729 A CN 115512729A
Authority
CN
China
Prior art keywords
memory
data
coupled
read
weight data
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
CN202210553594.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 CN115512729A publication Critical patent/CN115512729A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1057Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • 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
    • 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
    • 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
    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1069I/O lines read out arrangements
    • 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/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • 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/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1096Write circuits, e.g. I/O line write drivers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • General Health & Medical Sciences (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Algebra (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Memory System (AREA)
  • Communication Control (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

一种存储器器件具有存储器阵列,存储器阵列包括用于储存权重数据的存储器部段、耦合到存储器部段并被配置为在存储器部段中保存要更新的新权重数据的权重缓冲器、逻辑电路和耦合到逻辑电路的输出的计算电路。逻辑电路还具有通过位线耦合到存储器部段的第一输入、以及被配置为接收输入数据的第二输入。逻辑电路被配置为在输出处生成中间数据,中间数据与输入数据和通过位线从存储器部段读取的权重数据相对应。计算电路被配置为基于中间数据生成输出数据,输出数据与对输入数据和从至少一个存储器部段读取的权重数据执行的计算相对应。本发明的实施例还公开了一种操作存储器器件的方法。

Description

存储器器件及其操作方法
技术领域
本发明的实施例涉及存储器器件及其操作方法。
背景技术
人工智能领域的最新发展产生了多种产品和/或应用,包括但不限于语音识别、图像处理、机器学习、自然语言处理等。这样的产品和/或应用程序通常使用神经网络来处理大量数据以进行学习、训练、认知计算等。
发明内容
根据本发明实施例的一个方面,提供了一种存储器器件,包括:存储器阵列,包括被配置为储存权重数据的至少一个存储器部段;至少一权重缓冲器,耦合到至少一个存储器部段,并且被配置为在至少一个存储器部段中保持待更新的新权重数据;以及计算电路,耦合到逻辑电路的输出;至少一个逻辑电路,具有:第一输入,通过至少一个位线耦合到至少一个存储器部段,第二输入,被配置为接收输入数据,和输出;其中,至少一个逻辑电路被配置为在输出处生成中间数据,中间数据与输入数据和通过至少一个位线从至少一个存储器部段读取的权重数据相对应,以及计算电路被配置为基于中间数据生成输出数据,输出数据与对输入数据和从至少一个存储器部段读取的权重数据执行的计算相对应。
根据本发明实施例的另一个方面,提供了一种操作存储器器件的方法,方法包括同时地进行:使用从存储器器件的存储器部段中的多个存储器单元之中的第一存储器单元读取的第一段权重数据来执行存储器中计算(CIM)操作,以及更新存储器部段中的多个存储器单元之中的第二存储器单元中的第二段权重数据,第二存储器单元不同于第一存储器单元。
根据本发明实施例的又一个方面,提供了一种存储器器件,包括:存储器阵列;输入驱动器,耦合到多个输入数据线,并且被配置为通过多个输入数据线提供输入数据;以及乘法累加(MAC)电路,耦合到多个读取位线和多个输入数据线,并且被配置为基于从多个存储器部段读取出的权重数据和从输入驱动器提供的输入数据执行CIM操作;存储器阵列包括:多个存储器部段,被配置为储存用于CIM操作的权重数据,多个写入位线,耦合到多个存储器部段以更新储存在多个存储器部段中的权重数据,和多个读取位线,耦合到多个存储器部段以读取用于CIM操作的储存在多个存储器部段中的权重数据。
附图说明
当结合附图进行阅读取时,从以下详细描述可最佳理解本发明的各个方面。应该强调,根据工业中的标准实践,各个部件未按比例绘制并且仅用于说明的目的。实际上,为了清楚的讨论,各个部件的尺寸可以任意地增大或减小。
图1A是根据一些实施例的存储器器件的示意图。
图1B是根据一些实施例的存储器器件的示意图。
图2A是根据一些实施例的存储器器件的示意图。
图2B是根据一些实施例的神经网络的示意图。
图2C是根据一些实施例的集成电路(IC)器件的示意图。
图3是根据一些实施例的存储器器件的部分的示意图。
图4A是根据一些实施例的对应于存储器器件的存储器部段的部分的示意图。
图4B是根据一些实施例的对应于存储器器件的存储器部段的部分中的示例操作的时序图。
图4C是根据一些实施例的对应于存储器器件的存储器部段的部分的示意图。
图4D是根据一些实施例的对应于存储器器件的存储器部段的部分的示意图。
图4E是根据一些实施例的示例单端口存储器单元的示意电路图。
图5A是根据一些实施例的对应于存储器器件的存储器部段的部分的示意图。
图5B是根据一些实施例的对应于存储器器件的存储器部段的部分的示意图。
图5C是根据一些实施例的对应于存储器器件的存储器部段的部分的示意图。
图6A是根据一些实施例的存储器器件的示意图。
图6B是根据一些实施例的存储器器件中的输入驱动器和对应逻辑电路的示意电路图。
图7A是根据一些实施例的存储器器件的示意图。
图7B是根据一些实施例的存储器器件中的加法器树的部分的示意电路图。
图8是根据一些实施例的方法的流程图。
具体实施方式
以下公开内容提供了许多用于实现本发明的不同特征不同的实施例或实例。下面描述了组件、值、操作、材料、布置等的具体实施例以简化本发明。当然,这些仅是实例而不旨在限制。其他组件、值、操作、材料、布置等是可以考虑的。例如,在以下描述中,在第二部件上方或者上形成第一部件可以包括第一部件和第二部件直接接触形成的实施例,并且也可以包括在第一部件和第二部件之间可以形成额外的部件,从而使得第一部件和第二部件可以不直接接触的实施例。此外,本发明可以在各个示例中重复参考数字和/或字母。该重复是为简单和清楚的目的,并且其本身不指示讨论的各个实施例和/或配置之间的关系。
被配置为执行存储器中计算(CIM)操作的存储器器件(这里也称为CIM存储器器件)是可用的神经网络应用程序以及其他应用程序。CIM存储器器件包括存储器阵列,该存储器阵列被配置为储存要在一个或多个CIM操作中与输入数据一起使用的权重数据。在一个或多个CIM操作之后,存储器阵列中的权重数据将被更新以进行进一步的CIM操作。
在一些实施例中,一个或多个权重缓冲器被包括在相同的存储器宏中,该存储器宏包含储存权重数据的存储器阵列。一个或多个权重缓冲器耦合到存储器阵列中对应的一个或多个存储器部段。在至少一个实施例中,从对应的一个或多个权重缓冲器更新一个或多个存储器部段中的权重数据,同时存取其他存储器部段以获得用于CIM操作的权重数据。在至少一个实施例中,从对应的权重缓冲器更新存储器部段的一个或多个存储器单元中的权重数据,而相同的存储器部段的其他存储器单元中的权重数据用于CIM操作。结果,在一个或多个实施例中,能够同时执行权重数据更新和CIM操作。这不同于其他方法,在其他方法中存取整个存储器阵列以进行CIM操作,因此,只要当执行权重数据更新时,CIM操作就会停止。因为根据其他方法,权重数据更新和CIM操作不是同时执行的,所以这样的方法可能会遇到一个或多个问题,包括但不限于性能降低、处理时间增加、功耗增加等。根据可以同时执行权重数据更新和CIM操作的一些实施例,CIM存储器器件可以避免这样的问题。在至少一个实施例中,因为一个或多个权重缓冲器被包括在与储存权重数据的存储器阵列相同的存储器宏中,所以能够消除存储器宏外部的权重缓冲器或者至少减小其尺寸。这是与需要外部权重缓冲器的其他方法的另一个区别。与其他方法相比,在至少一个实施例中,没有外部权重缓冲器或具有尺寸减小的外部权重缓冲器的CIM存储器器件提供了一个或多个优点,包括但不限于减小芯片面积、降低制造成本、改进性能等。
图1A是根据一些实施例的存储器器件100A的示意图。存储器器件是一种集成电路(IC)器件。在至少一个实施例中,存储器器件是单独的IC器件。在一些实施例中,存储器器件被包括作为更大IC器件的部分,该IC器件包括用于其他功能的除了存储器器件之外的电路。
存储器器件100A包括存储器宏110和存储器控制器120。存储器宏110包括存储器阵列112、一个或多个权重缓冲器114、一个或多个寄存器115、一个或多个逻辑电路116和计算电路117。存储器控制器120包括字线驱动器122、位线驱动器124、控制电路126和输入缓冲器128。在一些实施例中,存储器控制器120的一个或多个元件被包括在存储器宏110中,和/或,存储器宏110的一个或多个元件(除了存储器阵列112之外)被包括在存储器控制器120中。
宏具有可重复使用的配置,并且可用于多种类型或多种设计的IC器件。
在一些实施例中,在类比于模块化程序的架构体系的上下文中理解宏,其中子例程/进程由主程序(或由其他子例程)调用以执行给定的计算功能。在这种上下文中,IC器件使用宏来执行一个或多个给定功能。因此,在这种上下文中以及就架构体系而言,IC器件类比于主程序,并且宏类比于子例程/进程。在一些实施例中,宏是软件宏。在一些实施例中,宏是硬件宏。在一些实施例中,宏是以寄存器转换级(RTL)代码数字描述的软件宏。在一些实施例中,未对宏执行合成、放置和布线,以使得可以为多种工艺节点合成、放置和布线软件宏。在一些实施例中,宏是以二进制文件格式(例如,图形数据库系统II(GDSII)流格式)数字描述的硬件宏,其中二进制文件格式表示平面几何形状、文本标签、其他信息和类似一个或多个分层形式的宏布局图。在一些实施例中,已对宏执行合成、放置和布线,使得硬件宏特定于特指的工艺节点。
存储器宏是包括存储器单元的宏,存储器单元是可寻址的以允许将数据写入存储器单元或从存储器单元读取数据。在一些实施例中,存储器宏进一步包括被配置为提供对存储器单元的存取和/或执行与存储器单元相关联的进一步功能的电路。例如,存储器宏110包括如本文所描述的存储器单元MC,并且权重缓冲器114、寄存器115、逻辑电路116和计算电路117形成电路,该电路被配置为提供与存储器单元MC相关联的CIM功能。在至少一个实施例中,被配置为提供CIM功能的存储器宏被称为CIM宏。所描述的宏配置是示例。其他配置在多种实施例的范围内。
存储器宏110的存储器单元MC布置在存储阵列112的多个列和行中。存储器控制器120电耦合到存储器单元MC并且被配置为控制存储器单元MC的操作,包括但不限于读取操作、写入操作等。
存储器阵列112还包括沿存储器单元MC的行延伸的多条字线(也称为“地址线”)WL1至WLr,以及沿列延伸的多条位线(也称为“数据线”)BL1至BLt,其中r和t是自然数。存储器单元MC中的每个通过至少一个字线和至少一个位线电连接到存储器控制器120。在一些示例操作中,字线被配置为传输要从其进行读取的存储器单元MC的地址,或者传输要向其进行写入的存储器单元MC的地址等。在至少一个实施例中,字线的组被配置为既用作读取字线又用作写入字线。位线的示例包括用于传输从由对应字线表示的存储器单元MC读取的数据的读取位线、用于传输要写入由对应字线表示的存储器单元MC的数据的写入位线等。在至少一个实施例中,位线的组被配置为既用作读取位线又用作写入位线。字线在本文中通常称为WL,并且位线在本文中通常称为BL。存储器阵列112中的多种数量的字线和/或位线在多种实施例的范围内。存储器单元MC的示例存储器类型包括但不限于静态随机存取存储器(SRAM)、电阻式RAM(RRAM)、磁阻式RAM(MRAM)、相变RAM(PCRAM)、自旋转移扭矩RAM(STTRAM)、浮栅金属氧化物半导体场效应晶体管(FGMOS)、自旋电子等。在本文描述的一个或多个示例实施例中,存储器单元MC包括SRAM存储器单元。
在图1A的示例配置中,存储器单元MC是单端口存储器单元。在一些实施例中,存储器单元的端口由字线WL和位线BL的组(在本文中称为WL/BL组)表示,字线WL和位线BL的组被配置为在读取操作(即,读取存取)和/或在写入操作(即,写入存取)中提供对存储器单元的存取。单端口存储器单元具有一个WL/BL组,WL/BL组被配置用于读取存取和写入存取,但不能同时进行。多端口存储器单元有若干个WL/BL组,每个WL/BL组被配置用于仅读取存取、或者仅写入存取、或者读取存取和写入存取。单端口存储器单元的示例参考图1A、图4E进行描述。多端口存储器单元的示例参考图1B、图5A、图5B、图5C进行描述。
存储器阵列112包括多个存储器部段。在一些实施例中,存储器部段包括存储器行、存储器列、存储器存储体(bank)等。存储器行包括耦合到相同的字线WL的多个存储器单元。存储器列(也称为“存储器串”)包括耦合到相同的位线BL的多个存储器单元。存储器存储体包括多于一个存储器行和/或多于一个存储器列。在至少一个实施例中,存储器存储体包括具有多个存储行和多个存储列的存储阵列112的部分。在一些实施例中,存储器部段包括多个存储器存储体。在示例中,第一存储器部段105包括耦合到位线BL1的存储器单元MC的存储器列,第二存储器部段107包括耦合到位线BL2的存储器单元MC的存储器列等。将存储器阵列112划分成多个存储器部段的其他方式在多种实施例的范围内。
存储器单元MC中的每个被配置为储存要在CIM操作中使用的权重数据的段。在本文描述的一个或多个示例实施例中,存储器单元MC是单个位存储器单元,即,每个存储器单元被配置为储存权重数据的一位。这是示例,并且每个存储器单元被配置为储存权重数据的多于一位的多位存储器单元在多种实施例的范围内。在一些实施例中,单个位存储器单元也称为位单元。例如,耦合到字线WL1和位线BLt的存储器单元113被配置为储存权重数据的段W1,t。储存在多个存储器单元中的权重数据的多个段的组合构成要在CIM操作中使用的权重值。为简单起见,储存在存储器单元MC中的权重数据的段、储存在多个存储器单元MC中的权重数据的多个段或储存在存储阵列112的所有存储器单元MC中的权重数据的所有段在本文中称为权重数据。
权重缓冲器114耦合到存储器阵列112,并且被配置为在存储器阵列112中临时保存要更新的新权重数据。在本文所描述的一些实施例中,每个存储器部段耦合到对应的权重缓冲器。在本文所描述的一个或多个实施例中,公共权重缓冲器耦合到若干个存储器部段。权重缓冲器114经由位线BL耦合到存储器阵列112中的存储器单元MC。在权重数据更新操作中,新权重数据来自权重缓冲器114并经由对应的位线BL写入一个或多个存储器单元MC。如图1A中示意性地示出的,权重缓冲器114耦合到存储器控制器120以接收新权重数据和/或控制信号,控制信号指定何时和/或在哪些存储器单元MC中更新新权重数据。在至少一个实施例中,从存储器器件100A外部的外部电路(例如,如本文所描述的处理器)接收新权重数据。新权重数据通过存储器控制器120的一个或多个输入/输出(I/O)电路(未示出)被接收,并且被转发到权重缓冲器114。示例权重缓冲器包括但不限于寄存器、存储器单元或其他配置用于数据储存的电路元件。
寄存器115具有耦合到位线BL的输入以接收从一个或多个存储器单元MC读取出的权重数据。寄存器115被配置为锁存从位线BL接收的权重数据,并经由寄存器115的输出将锁存的权重数据提供给逻辑电路116。结果,当锁存的权重数据在如本文描述的逻辑电路116和/或计算电路117处在CIM操作中使用时,位线BL可用于写入操作以利用来自权重缓冲器114的新权重数据更新一个或多个存储器单元MC。如本文所述,权重数据更新和CIM操作的同时执行提供一个或多个优点。寄存器115的示例包括触发器、锁存器等。在一些实施例中,寄存器115之中的每个寄存器耦合到存储器阵列112的位线BL之中的位线。在一个或多个实施例中,寄存器115之中的寄存器(例如多位寄存器)耦合到存储阵列112的位线BL之中的多个位线。
根据一些实施例,除了针对存储器部段中的不同存储器单元所描述的权重数据更新和CIM操作的同时执行之外,还可以在不同存储器部段中同时执行权重数据更新和CIM操作。例如,第一存储器部段105中的权重数据由新权重数据更新,该新权重数据由位线BL1上方的从权重缓冲器114之中的对应权重缓冲器提供,同时,从不同位线BL2上方的第二存储器部段107读取出的权重数据正在CIM操作中使用。在至少一个实施例中,不同位线BL上不同数据的存在不影响或干扰同时执行的权重数据更新和CIM操作。
逻辑电路116的输入耦合到寄存器115的输出。逻辑电路116的另外的输入耦合为接收输入数据D_IN,以在CIM操作中与权重数据一起使用。在图1A的示例配置中,由存储器控制器120中的输入缓冲器128提供输入数据D_IN。在一个或多个实施例中,输入数据D_IN是从存储器器件100A的另一个存储器宏(未示出)提供的输出数据。在一些实施例中,如本文所述,输入数据D_IN以位的流的形式被串行地提供给逻辑电路116。逻辑电路116被配置为在其输出处生成与输入数据D_IN和从一个或多个存储器单元MC读取的权重数据相对应的中间数据119。逻辑电路116的示例包括但不限于NOR(或非)门、AND(与)门、任何其他逻辑门、逻辑门的组合等。
计算电路117耦合到逻辑电路116的输出,并且被配置为基于从逻辑电路116输出的中间数据119生成输出数据D_OUT,输出数据D_OUT对应于在输入数据D_IN和从一个或多个存储器单元MC读取的权重数据上执行的CIM操作。CIM操作的示例包括但不限于数学运算、逻辑运算、它们的组合等。在一些实施例中,计算电路117被配置为将由多个逻辑电路116输出的多个中间数据119组合成输出数据D_OUT。在至少一个实施例中,计算电路117包括乘法累加(MAC)电路,并且CIM操作包括一个或多个多位权重值与一个或多个多位输入数据值的乘法。被配置为执行除了乘法之外的CIM操作的另外的计算电路在多种实施例的范围内。在一些实施例中,输出数据D_OUT作为输入数据被提供给存储器器件100A的另一个存储器宏(未示出)。在一个或多个实施例中,输出数据D_OUT通过存储器控制器120的一个或多个I/O电路(未示出)输出到存储器器件100A外部的外部电路,例如本文所描述的处理器。
在图1A的示例配置中,控制器120包括字线驱动器122、位线驱动器124、控制电路126和输入缓冲器128。在至少一个实施例中,控制器120还包括为存储器器件100A的多种组件提供提供时钟信号的一个或多个时钟发生器、与外部器件进行数据交换的一个或多个输入/输出(I/O)电路、和/或控制存储器器件100A中的多种操作的一个或多个控制器。
字线驱动器122经由字线WL耦合到存储器阵列112。字线驱动器122被配置为对在读取操作或写入操作中所选择的要存取的存储器单元MC的行地址进行解码。字线驱动器122被配置为向对应于解码的行地址的选择字线WL提供电压,并且向其他未选择的字线WL提供不同的电压。
位线驱动器124经由位线BL耦合到存储器阵列112。位线驱动器124被配置为对在读取操作或写入操作中所选择的要存取的存储器单元MC的列地址进行解码。位线驱动器124被配置为向对应于解码的列地址的选择位线BL提供电压,并且向其他未选择的位线BL提供不同的电压。
控制电路126耦合到权重缓冲器114、寄存器115、逻辑电路116、计算电路117、字线驱动器122、位线驱动器124、输入缓冲器128中的一个或多个,以协调存储器器件100A的整体操作中的这些电路、驱动器和/或缓冲器的操作。例如,控制电路126被配置为生成多种控制信号,用于控制权重缓冲器114、寄存器115、逻辑电路116、计算电路117、字线驱动器122、位线驱动器124、输入缓冲器128中的一个或多个的操作。
输入缓冲器128被配置为从存储器器件100A外部的外部电路(例如,如本文所描述的处理器)接收输入数据。输入数据通过存储器控制器120的一个或多个I/O电路(未示出)接收,并经由输入缓冲器128转发到逻辑电路116。示例输入缓冲器包括但不限于寄存器、存储器单元,或配置用于数据储存的其他电路元件。
在至少一个实施例中,CIM存储器器件(诸如存储器器件100A)优于其中数据在存储器和处理器之间来回移动的其他方法,因为可以避免性能和能源效率的瓶颈的这种来回数据移动。示例CIM应用包括但不限于人工智能、图像识别、机器学习的神经网络等。在一些实施例中,一个或多个实施例中的存储器器件100A使得能够同时执行权重数据更新和CIM操作。此外,在存储器宏110中包括权重缓冲器114,使得能够消除存储器宏110外部的外部权重缓冲器,或者至少减小外部权重缓冲器的尺寸。结果,在至少一个实施例中,它是可能实现一个或多个优点,包括但不限于减少处理时间、减少功耗、减少芯片面积、降低制造成本、提高性能等。
图1B是根据一些实施例的存储器器件100B的示意图。图1B中的组件具有由图1A中的相同标号表示的图1A中的对应组件。
存储器器件100A和存储器器件100B之间的区别在于存储器器件100A包括单端口存储器单元,而存储器器件100B包括多端口存储器单元。具体地,存储器器件100B包括具有存储器阵列132的存储器宏130,在存储器阵列132中多端口存储器单元MC以多个行和多个列布置。多个读取字线RWL1至RWLr(通常称为“RWL”)和多个写入字线WWL1至WWLr(通常称为“WWL”)沿行延伸。多个读取位线RBL1至RBLt(通常称为“RBL”)和多个写入位线WBL1至WBLt(通常称为“WBL”)沿列延伸。每个存储器单元MC耦合到一对读取字线RWL和读取位线RBL,并且耦合到另一对写入字线WWL和写入位线WBL。例如,存储器单元133耦合到一对读取字线RWL1和读取位线RBLt,并且耦合到另一对写入字线WWL1和写入位线WBLt。对于每个存储器单元MC,RWL/RBL对代表读取端口,而WWL/WBL对代表写入端口。在一些实施例中,字线WL的组被配置作为写入字线和读取字线。权重缓冲器114经由写入位线WBL耦合到存储器阵列132。在图1B的示例配置中,省略寄存器115并且逻辑电路116耦合到读取位线RBL。在至少一个实施例中,寄存器115被包括在存储器器件100B中,并且以类似于存储器器件100A的方式耦合在读取位线RBL和逻辑电路116之间。在一个或多个实施例中,当寄存器115被包括在存储器器件100B中时,使得能够在逻辑电路116的输入处保持锁存的权重数据一段延长的时间,如果不包括寄存器115这可能难以实现。
在至少一个实施例中,存储器阵列132的多端口存储器单元使得能够同时执行权重数据更新和CIM操作。例如,当在读取操作中存取存储器单元133以读取出对应的CIM操作的权重数据的段W1,t时,通过对应的读取位线RBLt将所读取的权重数据的段W1,t提供给逻辑电路116。同时,对相同的存储器列或存储器串中的任何其他存储器单元执行权重数据更新。例如,与对存储器单元133执行的CIM操作同时,通过对应的写入位线WBLt从权重缓冲器114提供的新权重数据的段来更新存储器单元135中的权重数据的段。所描述的CIM操作和权重数据更新在两条不同的位线(即,读取位线RBLt和写入位线WBLt)上进行,不会相互影响或以其他方式相互干扰。结果,在一个或多个实施例中,可以同时执行权重数据更新和CIM操作。在至少一个实施例中,本文描述的关于存储器器件100A的一个或多个优点可由存储器器件100B实现。
图2A是根据一些实施例的存储器器件200A的示意图。
存储器器件200A包括存储器宏202、204、206、208和存储器控制器220。在一些实施例中,存储器宏202、204、206、208中的一个或多个对应于存储器宏110、130中的一个或多个,和/或,存储器控制器220对应于存储器控制器120。如图2A所示,存储器控制器220是存储器宏202、204、206、208的公共存储器控制器。在至少一个实施例中,存储器宏202、204、206、208中的至少一个具有其自己的存储器控制器。存储器器件200A中的四个存储器宏的数量是示例。其他配置在多种实施例的范围内。
存储器宏202、204、206、208按顺序相互耦合,其中前面存储器宏的输出数据是后续存储器宏的输入数据。例如,输入数据DIN输入到存储器宏202中。存储器宏202基于输入数据DIN和储存在存储器宏202中的权重数据执行一个或多个CIM操作,并且生成作为CIM操作的结果的输出数据DOUT2。输出数据DOUT2作为存储器宏204的输入数据DIN4提供。存储器宏204基于输入数据DIN4和储存在存储器宏204中的权重数据执行一个或多个CIM操作,并且生成作为CIM操作的结果的输出数据DOUT4。输出数据DOUT4作为存储器宏206的输入数据DIN6提供。存储器宏206基于输入数据DIN6和储存在存储器宏206中的权重数据执行一个或多个CIM操作,并且生成作为CIM操作的结果的输出数据DOUT6。输出数据DOUT6作为存储器宏208的输入数据DIN8提供。存储器宏208基于输入数据DIN8和储存在存储器宏208中的权重数据执行一个或多个CIM操作,并且生成作为CIM操作的结果的输出数据DOUT。输入数据DIN、DIN4、DIN6、DIN8中的一个或多个对应于关于图1A-图1B所描述的输入数据D_IN,和/或,输出数据DOUT2、DOUT4、DOUT6、DOUT中的一个或多个对应于关于图1A-图1B所描述的输出数据D_OUT。在至少一个实施例中,所描述的存储器宏202、204、206、208的配置实现神经网络。在至少一个实施例中,本文所描述的一个或多个优点可由存储器器件200A实现。
图2B是根据一些实施例的神经网络200B的示意图。
神经网络200B包括多个层A-层E,每个层包括多个节点(或神经元)。神经网络200B的接连层中的节点通过连接矩阵或阵列相互连接。例如,层A和层B中的节点通过矩阵212中的连接相互连接,层B和层C中的节点通过矩阵214中的连接相互连接,层C和层D中的节点通过矩阵216中的连接相互连接,并且层D和层E中的节点通过矩阵218中的连接相互连接。层A是被配置为接收输入数据211的输入层。经由层之间的对应连接的矩阵从一个层到下一个层,输入数据211穿过神经网络200B传播。随着数据穿过神经网络200B传播,数据经历一个或多个计算,并且作为输出数据219从作为神经网络200B的输出层的层E输出。输入层A和输出层E之间的层B、层C、层D有时称为潜藏层或中间层。图2B中的层的数量、连接的矩阵的数量和每层中节点的数量是示例。其他配置在多种实施例的范围内。例如,在至少一个实施例中,神经网络200B不包括潜藏层,并且具有通过一个连接的矩阵连接到输出层的输入层。在一个或多个实施例中,神经网络200B具有一个、两个或三个以上的潜藏层。
在一些实施例中,矩阵212、214、216、218由存储器宏202、204、206、208对应地实现,输入数据211对应于输入数据DIN,并且输出数据219对应于输出数据DOUT。具体地,在矩阵212中,A层中的节点与B层中的另一个节点之间的连接具有对应的权重。例如,节点A1和节点B1之间的连接具有权重W(A1、B1),权重W(A1、B1)对应于储存在存储器宏202的存储器阵列中的权重值。存储器宏204、206、208以类似的方式配置方式。当使用神经网络200B执行机器学习时,例如由处理器并通过存储器控制器220来更新存储器宏202、204、206、208中的一个或多个中的权重数据。根据一些实施例,本文描述的一个或多个优点可在由一个或多个存储器宏和/或存储器器件整体或部分实施的神经网络200B中实现。
图2C是根据一些实施例的集成电路(IC)器件200C的示意图。
IC器件200C包括一个或多个硬件处理器232、通过一个或多个总线236耦合到处理器232的一个或多个存储器器件234。在一些实施例中,IC器件200C包括一个或多个另外的电路,包括但不限于蜂窝收发器,全球定位系统(GPS)接收器,用于Wi-Fi、USB、蓝牙等中的一种或多种的网络接口电路。处理器232的示例包括但不限于中央处理单元(CPU)、多核CPU、神经处理单元(NPU)、图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、其他可编程逻辑器件、多媒体处理器、图像信号处理器(ISP)等。存储器器件234的示例包括本文描述的一个或多个存储器器件和/或存储器宏。在至少一个实施例中,每个处理器232耦合到存储器器件234之中的对应存储器器件。
因为一个或多个存储器器件234是CIM存储器器件,所以在存储器器件中执行多种计算,这减少了对应处理器的计算工作量,减少了存储器存取时间,并且提高了性能。在至少一个实施例中,IC器件200C是片上系统(SOC)。在至少一个实施例中,本文所描述的一个或多个优点可由IC器件200C实现。
图3是根据一些实施例的存储器器件300的部分的示意图。在至少一个实施例中,存储器器件300对应于存储器器件100A、100B中的至少一个。如图3所示,存储器器件300至少包括存储器宏330和输入缓冲器328。为简单起见,省略存储器器件300的其他组件。
在一些实施例中,存储器宏330对应于存储器宏110、130中的至少一个。在图3的示例配置中,存储器宏330被配置用于CIM操作并且被称为CIM宏。存储器宏330包括M个存储器部段341、342、343,M个权重缓冲器351、352、353,M个寄存器和逻辑电路(在图3中设计为具有标签“Reg+LOC”)361、362、363,其中M是自然数。M个存储器部段341、342、343中的每个包括存储器宏330的存储器阵列中的存储器行、存储器列或至少一个存储器存储体。在一些实施例中,存储器宏330的存储器阵列对应于存储器阵列112、132中的至少一个。存储器部段341、342、343中的每个被配置为储存对应的权重数据W[1]、...W[M-1]、W[M]。存储器部段341、342、343中的每个耦合到权重缓冲器351、352、353之中的对应权重缓冲器、以及Reg+LOC电路361、362、363之中的对应Reg+LOC电路。在一些实施例中,权重缓冲器351、352、353对应于一个或多个权重缓冲器114。权重缓冲器351、352、353被配置为提供新权重数据,以更新储存在对应的存储器部段341、342、343中的权重数据。在一些实施例中,Reg+LOC电路361、362、363中的每个包括对应于一个或多个寄存器115的寄存器、以及对应于一个或多个逻辑电路116的逻辑电路。存储器宏330进一步包括耦合到Reg+LOC电路361、362、363的输出的MAC电路370。在一些实施例中,MAC电路370对应于计算电路117。
输入缓冲器328在存储器宏330外部。在一些实施例中,输入缓冲器328对应于输入缓冲器128。输入缓冲器328被配置为提供输入数据D_IN,作为到对应的Reg+LOC电路361、362、363的多个输入数据部段IN[1]、...IN[M-1]、IN[M]。Reg+LOC电路361、362、363被配置为生成与输入数据段IN[1]、...IN[M-1]、IN[M]和从存储器部段341、342、343读取的权重数据W[1]、...W[M-1]、W[M]对应的中间数据Y[1]、...Y[M-1]、Y[M]。中间数据Y[1]、...Y[M-1]、Y[M]被提供给MAC电路370,MAC电路370被配置为执行进一步的数学和/或逻辑运算以将中间数据Y[1]、...Y[M-1]、Y[M]组合成输出数据D_OUT。在一些实施例中,MAC电路370连同Reg+LOC电路361、362、363中的逻辑电路被配置为执行由一个或多个权重数据W[1]、...W[M-1]、W[M]表示的多位权重值与由一个或多个输入数据段IN[1]、...IN[M-1]、IN[M]表示的多位输入数据值的乘法。在至少一个实施例中,从Reg+LOC电路361、362、363中省略寄存器。
在一些实施例中,通过从对应的权重缓冲器提供的新权重数据来更新一个或多个存储器部段341、342、343中的权重数据,同时从另一个存储器部段读取出的权重数据用于CIM操作。例如,以类似于图1A的方式,通过第一位线提供新权重数据以更新存储器部段343,而从存储器部段342读取出的权重数据W[M-1]通过不同的第二位线用于CIM操作。在至少一个实施例中,不同位线上存在不同的数据不会影响或干扰同时执行的权重数据更新和CIM操作。在至少一个实施例中,本文所描述的一个或多个优点可由存储器宏330实现。
图4A是根据一些实施例的对应于存储器器件400A的存储器部段的部分的示意图。在一些实施例中,存储器器件400A对应于存储器器件100A、300中的至少一个。
在图4A所示的部分中,存储器器件400A包括存储器部段412、权重缓冲器414、寄存器415、逻辑电路416和MAC电路417。在一些实施例中,存储器部段412是存储器器件400A的存储器阵列的部分。在一些实施例中,存储器部段412对应于存储器部段341、342、343中的至少一个,权重缓冲器414对应于权重缓冲器351、352、353中的至少一个,寄存器415和逻辑电路416对应于Reg+LOC电路361、362、363中的至少一个,并且MAC电路417对应于MAC电路370。
在图4A的示例配置中,存储器部段412是存储器列。本文关于作为存储器列的存储器部段412的配置和操作的描述适用于其他类型的存储器部段。存储器部段412包括对应地储存权重数据W[0]...W[N]的多个存储器单元MC[0]...MC[N]。存储器单元MC[0]...MC[N]耦合到位线BL和互补位线BLB的对。为简单起见,本文描述的位线BL和关于位线BL的描述适用于互补位线BLB。存储器单元MC[0]...MC[N]是单端口存储器单元,被配置为在读取操作和写入操作中都使用位线BL。存储器单元MC[0]...MC[N]耦合到对应的字线WL[0]...WL[N],以在读取操作或写入操作中经由对应的字线被存取。位线BL耦合到权重缓冲器414以在写入操作中接收要在存储器单元MC[0]...MC[N]中的一个中更新的新权重数据。位线BL进一步耦合到寄存器415的输入Reg_In,以在读取操作中将存储器单元MC[0]...MC[N]中的一个中的权重数据输出到寄存器415。寄存器415进一步被配置为接收控制信号LCK,并具有输出Reg_Out。寄存器415的输出Reg_Out耦合到逻辑电路416的第一输入LOC_1。逻辑电路416还包括第二输入LOC_2,第二输入LOC_2被配置为例如从本文描述的输入缓冲器接收输入数据IN。逻辑电路416的输出LOC_Out耦合到MAC电路417。
图4B是根据一些实施例的存储器器件400A的部分中的示例操作400B的时序图。图4B中的示例操作400B是根据具有多个时钟脉冲的时钟信号CLK来执行的。
在读取时段RD[0]中,在读取操作中通过字线WL[0]上的脉冲422存取存储器单元MC[0]。当前储存在存储器单元MC[0]中的权重数据W[0]从存储器单元MC[0]中被读取出,出现在位线BL上,并由位线BL提供给寄存器415的输入Reg_In。在图4B中,权重数据W[0]被示意性地示出以指示权重数据W[0],权重数据W[0]可以包括逻辑“1”(高电平)或逻辑“0”(低电平)。图4B中的其他权重数据和/或输入数据以类似方式示意性地示出。
在读取时段RD[0]中,控制信号LCK的脉冲424被提供给寄存器415。例如,控制信号LCK由对应于存储器控制器120的存储器控制器生成或提供。在至少一个实施例中,寄存器415(例如,触发器)被配置为响应于控制信号LCK的脉冲424的上升沿在输入Reg_In处锁存数据或逻辑状态。锁存的数据或逻辑状态维持在寄存器415的输出Reg_Out处直到控制信号LCK的下一个脉冲426的上升沿。结果,从存储器单元MC[0]读取的权重数据W[0]在脉冲424、426的上升沿之间的时段期间被锁存在寄存器415的输出Reg_Out处,并且不受位线BL上的数据影响。
在下一个时段(在图4B中标示为CIM[0]/更新)中,使用锁存的权重数据W[0]执行CIM操作,同时,对存储器部段412中的一个或多个存储器单元执行权重数据更新。在CIM操作中,在寄存器415的输出Reg_Out处锁存的权重数据W[0]被提供给逻辑电路416的输入LOC_1。输入数据IN被提供给逻辑电路416的另一个输入LOC_2。在一些实施例中,输入数据IN包括多个位,该多个位经由若干个时钟周期串行提供给逻辑电路416以与权重数据W[0]一起被处理。在至少一个实施例中,逻辑电路416被配置为将输入数据IN中的位序列与权重数据W[0]相乘,并将相乘结果输出到MAC电路417,MAC电路417被配置为执行进一步的处理,诸如加法、移位等,以得到CIM操作的最终结果。
当使用锁存的权重数据W[0]执行CIM操作时,位线BL通过寄存器415与逻辑电路416和MAC电路417隔离,并且可用于以一个或多个存储器单元中的权重数据更新而不影响CIM操作,并且不受CIM存储器器件的影响。例如,存储器单元MC[1]~MC[N]中的一个在写入操作中由对应的字线WL[1]_WL[N]上的脉冲428存取。对应的新权重数据的段Wn[1]~Wn[N]从权重缓冲器414提供给位线BL,并且写入或更新到存储器单元MC[1]~MC[N]之中的被存取存储器单元中。
在一些实施例中,根据定义CIM[0]/更新时段长度的输入数据IN中的位序列长度,可以对多个存储器单元执行权重数据更新,同时使用从存储器单元MC[0]读取的锁存的权重数据W[0]执行CIM操作。例如,当仍使用锁存的权重数据W[0]执行CIM操作时,存储器单元MC[0]在写入操作中由对应的字线WL[0]上的脉冲430存取。对应的新权重数据的段Wn[0]从权重缓冲器414提供给位线BL,并且被写入或更新到被存取的存储器单元MC[0]中。在至少一个实施例中,当执行CIM操作时,可以在使用从一个存储器单元读取的锁存的权重数据W[0]更新多于两个存储器单元的权重数据。
在下一个读取时段RD[1]中,在读取操作中由对应字线WL[1]上的对应脉冲(图4B中未示出)存取存储器单元MC[1]。当前储存在存储器单元MC[1]中的权重数据W[1]被从存储器单元MC[1]中读取出并放置在位线BL上,前提是之前存储器单元MC[1]没有例如通过脉冲428被更新。然而,如果存储器单元MC[1]被较早地更新,则新权重数据Wn[1]被读取出并放置在位线BL上。响应于控制信号LCK中的脉冲426的上升沿,权重数据W[1]或新权重数据Wn[1]被锁存在寄存器415的输出Reg_Out处并且提供给逻辑电路416的输入LOC_1,用于在图4B中标示为CIM[1]/更新的下一个时段中的CIM操作,并且重复执行所描述的过程。在一些实施例中,即使当存储器部段412包括多端口存储器单元时,所描述的操作和配置也是适用的。在一些实施例中,所描述的操作和配置使得可以同时执行权重数据更新和CIM操作,从而节省处理时间、功耗等。在至少一个实施例中,本文描述的一个或多个优点可通过存储器器件400A和/或操作400B实现。
图4C是根据一些实施例的对应于存储器器件400C的存储器部段的部分的示意图。图4C中的组件具有由与图4A中相同的标号表示的图4A中的对应组件。
存储器器件400C和存储器器件400A之间的不同之处在于存储器器件400A中的逻辑电路416由存储器器件400C中的NOR门436实现。存储器器件400C的操作类似于关于图4A-图4B所描述的操作。在至少一个实施例中,本文描述的一个或多个优点可通过存储器器件400C实现。
图4D是根据一些实施例的对应于存储器器件400D的存储器部段的部分的示意图。图4D中的组件具有由与图4A中相同的标号表示的图4A中的对应组件。
存储器器件400D和存储器器件400A之间的不同之处在于存储器器件400A中的逻辑电路416由存储器器件400D中的AND门446实现。存储器器件400D的操作类似于关于图4A-图4B所描述的操作。在至少一个实施例中,本文所描述的一个或多个优点可由存储器器件400D实现。所描述的包括NOR门或AND门的逻辑电路的配置是示例。其他逻辑电路配置在多种实施例的范围内。
图4E是根据一些实施例的示例单端口存储器单元400E的示意电路图。在至少一个实施例中,存储器单元400E对应于存储器器件100A、300、400A、400C、400D中的一个或多个中的一个或多个存储器单元。
存储器单元400E包括晶体管M1、M2和反相器INV1、INV2。反相器INV2的输入在节点Q处耦合到反相器INV1的输出。反相器INV2的输出在节点QB处耦合到反相器INV1的输入。晶体管M1、M2的栅极耦合到字线WL。晶体管M1串联耦合在节点Q与位线BL之间。晶体管M2串联耦合在节点QB和互补位线BLB之间。反相器INV1、INV2形成储存电路ST,用于储存对应于节点Q或QB的逻辑状态的数据。晶体管M1、M2是存取晶体管,被配置为响应于施加到字线WL的适当电压而将储存电路ST耦合到用于读取存取或写入存取的位线BL/BLB。在一些实施例中,反相器INV1、INV2中的每个包括两个晶体管,从而在存储器单元400E中产生总共6个晶体管,其也被称为6T(6晶体管)SRAM存储器单元。存储器单元400E中的晶体管的示例包括但不限于金属氧化物半导体场效应晶体管(MOSFET)、互补金属氧化物半导体(CMOS)晶体管、双极结晶体管(BJT)、高压晶体管、高频晶体管、p沟道和/或n沟道场效应晶体管(PFET/NFET)、FinFET、具有凸起源极/漏极的平面MOS晶体管等。所描述的单端口存储器单元的配置是一个示例。其他单端口存储器单元配置在多种实施例的范围内。
图5A是根据一些实施例的对应于存储器器件500A的存储器部段的部分的示意图。在一些实施例中,存储器器件500A对应于存储器器件100B、300中的至少一个。
在图5A所示的部分中,存储器器件500A包括存储器部段512、权重缓冲器514和逻辑电路516。存储器器件500A还包括耦合到逻辑电路516的输出的MAC电路(未示出)。在一些实施例中,存储器部段512、权重缓冲器514和逻辑电路516对应于存储器器件400A中的存储器部段412、权重缓冲器414和逻辑电路416。
存储器器件400A和存储器器件500A之间的区别在于,在存储器器件400A中存储器部段412包括单端口存储器单元,而在存储器器件500A中存储器部段512包括多端口存储器单元。在图5A的示例配置中,字线WL[0]...WL[N]的组被配置作为写入字线和读取字线。具有写入字线的组和读取字线的单独组的其他配置在多种实施例的范围内。存储器部段512中的多端口存储器单元通过写入位线WBLB耦合到权重缓冲器514,该写入位线WBLB是与读取位线RBLB不同的位线,存储器部段512的多端口存储器单元通过该读取位线RBLB耦合到逻辑电路516。在图5A的示例配置中,省略了对应于寄存器415的寄存器。在至少一个实施例中,对应于寄存器415的寄存器被包括在存储器器件500A中,位于读取位线RBLB和逻辑电路516之间。在一些实施例中,逻辑电路516包括NOR门或AND门。其他逻辑电路配置在多种实施例的范围内。
图5A示出了根据一些实施例的示例多端口存储器单元510的示意电路图。在图5A的示例配置中,多端口存储器单元510包括反相器INV1、INV2、INV3和传输门TG1、TG2、TG3。反相器INV1、INV2被耦合为形成如关于图4E所描述的储存电路ST。每个传输门TG1、TG2、TG3包括NMOS晶体管和NMOS晶体管。传输门TG1中的PMOS和NMOS晶体管的栅极对应地耦合到一对写入字线WWL/WWLB。传输门TG2中的NMOS和PMOS晶体管的栅极对应地耦合到写入字线WWL/WWLB。传输门TG3中的NMOS和PMOS晶体管的栅极对应地耦合到一对读取字线RWL/RWLB。传输门TG1耦合在节点Q与反相器INV1的输出之间。传输门TG2耦合在节点Q和互补写入位线WBLB之间。传输门TG3耦合在反相器INV3的输出和互补读取位线RBLB之间。反相器INV3的输入耦合节点QB。传输门TG1、TG2形成写入端口WP。反相器INV3和传输门TG3形成输出缓冲器或读取端口RP。在所描述的多端口存储器单元510中有总共12个晶体管,其也被称为12TSRAM存储器单元。所描述的多端口存储器单元510的配置是示例。其他多端口存储器单元配置在多种实施例的范围内。
当传输门TG3由读取字线RWL/RWLB上的适当电压导通时,所储存的与节点QB的逻辑状态对应的权重数据的段通过反相器INV3和导通的传输门TG3被读取,并且被提供给读取位线RBLB以用于CIM操作。同时,新权重数据适用于写入位线WBLB以更新存储器部段512的另一个存储器单元,而不影响存储器单元MC[N]的储存和/或读取权重数据,因为传输门TG1、TG2是未导通。结果,也如关于图1B所描述的,可以同时对存储器部段512中的不同存储器单元执行CIM操作和权重数据更新。在至少一个实施例中,对应于寄存器415的寄存器被包括在存储器器件500A中,并且以类似于存储器器件400A的方式耦合在读取位线RBLB和逻辑电路516之间。在一个或多个实施例中,当寄存器被包括在存储器器件500A中时,使得可以在逻辑电路516的输入处保持锁存的权重数据一段延长的时间,如果不包括寄存器这可能难以实现。在至少一个实施例中,本文所描述的一个或多个优点可由存储器器件500A实现。
图5B是根据一些实施例的对应于存储器器件500B的存储器部段的部分的示意图。在一些实施例中,存储器器件500B对应于存储器器件100B、300、500A中的至少一个。
在图5B所示的部分中,存储器器件500B包括存储器部段522、权重缓冲器514和逻辑电路526、536。存储器器件500B还包括耦合到逻辑电路526、536的输出的MAC电路(未示出)。在一些在实施例中,存储器部段522和逻辑电路526、536对应于存储器器件500A中的存储器部段512和逻辑电路516。
本文描述了存储器器件500A和存储器器件500B之间的区别。在存储器器件500A中,存储器部段512包括多端口存储器单元,每个存储器单元具有一个读取端口RP,而在存储器器件500B中,存储器部段522包括多端口存储器单元,每个存储器单元具有两个读取端口RP1、RP2。存储器部段522中的存储器单元在本文中被称为多读取端口存储器单元。在图5B的示例配置中,为简单起见,图示了字线WL[0]...WL[N]的组。在一些实施例中,提供写入字线WWL的组、第一读取字线RWL1的单独组和第二读取字线RWL2的单独组,以单独地存取存储器部段522中的每个存储器单元的写入端口WP和两个读取端口RP1、RP2。其他配置在多种实施例的范围内。存储器部段522中的多读取端口存储器单元通过写入位线WBLB耦合到权重缓冲器514,写入位线WBLB是与第一和第二读取位线RBLB1、RBLB2不同的位线,存储器部段522的每个多读取端口存储器单元通过第一和第二读取位线RBLB1、RBLB2耦合到逻辑电路526、536。在一些实施例中,逻辑电路526、536中的每个包括NOR门或AND门。其他逻辑电路配置在多种实施例的范围内。
图5B示出了根据一些实施例的示例多读取端口存储器单元520的示意电路图。在图5B的示例配置中,多读取端口存储器单元520类似于关于图5A所描述的多端口存储器单元510,除了图5B中的多读取端口存储器单元520附加地包括反相器INV4和传输门TG4。与多端口存储器单元510一样,多读取端口存储器单元520包括反相器INV3和传输门TG3,形成耦合到第一读取字线RWL1/RWLB1和第一读取位线RBLB1的第一读取端口RP1。类似地,反相器INV4和传输门TG4形成耦合到第二读取字线RWL2/RWLB2和第二读取位线RBLB2的第二读取端口RP2。所描述的多读取端口存储器单元520的配置是示例。其他多读取端口存储器单元配置在多种实施例的范围内。
在一个或多个实施例中,由于存储器部段522中的每个存储器单元具有两个读取端口,因此可以通过读取位线RBLB1、RBLB2对应地从两个不同的存储器单元读取权重数据以用于CIM操作,并且同时还通过写入位线WBLB更新存储器部段522中的一个或多个另外的存储器单元中的权重数据。例如,第一读取位线RBLB1上的第一权重数据从存储器单元MC[0]读取,并通过逻辑电路526与第一组输入数据IN0组合(例如相乘)。
第二读取位线RBLB2上的第二权重数据从存储器单元MC[1]中读取,并通过逻辑电路536与第二组输入数据IN1组合(例如相乘)。由逻辑电路526、536输出的结果或中间数据被提供给用于进一步处理的MAC电路以完成CIM操作。同时,通过写入位线WBLB利用来自权重缓冲器514的新权重数据更新一个或多个剩余存储器单元(即,MC[2]~MC[N])。结果,也如关于图1B、图5A中的一个或多个所描述的,可以同时针对存储器部段522中的不同存储器单元执行CIM操作和权重数据更新。在至少一个实施例中,本文所描述的一个或多个优点可由存储器器件500B实现。
图5C是根据一些实施例的对应于存储器器件500C的存储器部段的部分的示意图。在一些实施例中,存储器器件500C对应于存储器器件100B、300、500A、500B中的至少一个。
与存储器器件500B相比,存储器器件500C附加地包括对应地耦合到读取位线RBLB1、RBLB2的寄存器525、535,以响应相同的控制信号LCK在读取位线RBLB1、RBLB2上锁存权重数据,并且以类似于关于图4A所描述的寄存器415的方式将锁存的权重数据提供给对应的逻辑电路526、536。在至少一个实施例中,寄存器525、535使得可以在逻辑电路526、536的输入处保持锁存的权重数据一段延长的时间,如果不包括寄存器525、535这是很难实现的。在至少一个实施例中,本文所描述的一个或多个优点可由存储器器件500C实现。
图6A是根据一些实施例的存储器器件600的示意图。在一些实施例中,存储器器件600对应于存储器器件100B、300、500A中的一个或多个。
存储器器件600包括64个存储器宏630、630_1、630_2、...、630_63。在至少一个实施例中,64个存储器宏是相同的或类似配置的。在此详细描述存储器宏630。为简单起见,省略其他存储器宏的详细描述。在一些实施例中,存储器器件600还包括存储器控制器(未示出),存储器控制器耦合到64个存储器宏中的一个或多个并被配置为控制64个存储器宏中的一个或多个。在一些实施例中,64个存储器宏中的一些被顺序地耦合(如关于图1所描述的)以实现神经网络。所描述的64个存储器宏的数量是示例。包括在存储器器件600中的其他数量的存储器宏在多种实施例的范围内。
存储器宏630包括被划分为64个存储器部段的存储器阵列602,每个存储器部段具有4行和4列的16个存储器单元。图6A中指示了代表性的存储器部段612。在至少一个实施例中,存储器部段612对应于关于图5A所描述的存储器部段512。64个存储器部段沿Y方向并排堆叠。在一些实施例中,存储器阵列602中的存储器单元是多端口存储器单元。在至少一个实施例中,多端口存储器单元是如关于图5A所描述的12T SRAM存储器单元。存储器阵列602中的存储器部段的数量和/或每个存储器部段的尺寸是示例。其他配置在多种实施例的范围内。
存储器宏630还包括权重缓冲器614。在至少一个实施例中,权重缓冲器614对应于关于图5A所描述的权重缓冲器514。权重缓冲器614经由权重解复用器642和沿X方向延伸的256个写入位线WBLB耦合到存储器阵列602。四个写入位线WBLB耦合到存储器部段612中的对应四个存储器列,并且通常由图6A中的标签“4×WBLB”指示。在至少一个实施例中,每个写入位线WBLB和对应的存储器列对应于参考图5A描述的写入位线WBLB和存储器部段512(其是存储器列)。耦合到存储器部段612的四个写入位线WBLB被配置为利用从权重缓冲器614输出的4位字D[3:0]更新存储器部段612中的存储器行的四个存储器单元。存储器部段612和对应的四个写入位线WBLB由施加到权重解复用器642的8位写入存取信号WA中的6个位(即,位[7:2])选择。写入存取信号WA中剩余的2个位(即,位[1:0])被施加到写入地址解复用器641,以在存储器阵列602的四个写入字线WWL之中选择一个写入字线WWL。所选择的一个写入字线WWL对应于将要写入权重数据的字D[3:0]的存储器部段612中的存储器行。在图6A的示例配置中,在存储器部段612中的存储器行上同时更新权重数据的四个位。在至少一个实施例中,四个写入字线WWL对应于关于图5A描述的写入字线。通过使用权重解复用器642,权重缓冲器614可用作多个存储器部段的公共权重缓冲器。所描述的权重数据位、写入位线WBLB和写入字线WWL的数量是示例。其他配置在多种实施例的范围内。
具有2个位的读取存取信号RA(即,[1:0])被施加到读取地址解复用器643以在存储器阵列602的四个读取字线RWL之中选择一个读取字线RWL。所选择的一个读取字线RWL对应于存储器部段612中的存储器行,从该存储器行读取出所储存的权重数据的4位字以用于CIM操作。在图6A的示例配置中,从存储器部段612中的存储行同时读取出权重数据的四个位。在至少一个实施例中,四个读取字线RWL对应于关于图5A描述的写入字线。
存储器宏630包括256个读取位线RBLB,256个读取位线RBLB包括64组,每组4个读取位线RBLB。64组对应于64个存储器部段。每组中的四个读取位线RBLB耦合到对应存储器部段中的对应四个存储列。例如,耦合到存储器部段612中的四个存储器列的四个读取位线RBLB通常由图6A中的标签“4×RBLB”指示。在至少一个实施例中,四个读取位线RBLB中的每个对应于关于图5A所描述的读取位线RBLB。当读取字线RWL中的一个被选择时,从存储器部段612中的对应存储行同时读取出权重数据的四个位,并且权重数据的四个位被输出到对应的四个读取位线RBLB上。当读取字线RW中的一个被选择时,在所有64个存储器部段上,权重数据的256个位被输出到对应的256个读取位线RBLB上。所描述的权重数据位、读取位线RBLB和读取字线RWL的数量是示例。其他配置在多种实施例的范围内。
输入驱动器644被配置为接收输入数据XIN,该输入数据XIN包括被划分为256个位的64组,即[63:0],每组中有4个位,即[3:0]。输入驱动器644包括64个输入驱动器块,每个输入驱动器块被配置为将对应组中的输入数据的4个位转换成相同的4位的流,依次输出到耦合到输入驱动器644的总共64个数据线XINLB中的一个数据线XINLB上。根据选择信号XINSEL[3:0]将4个并行位转换为4个串行位的流。在一些实施例中,数据线645上的四个串行位的流对应于关于图5A所描述的输入数据IN。输入驱动器644的详细描述参考图6B给出。
存储器宏630还包括在图6中示意性地示出为NOR门的64个逻辑电路。64个逻辑电路中的每个都耦合到64个数据线XINLB之中的对应数据线以及对应的四个读取位线RBLB的组。例如,逻辑电路646耦合到数据线645和对应于存储器部段612的四个读取位线RBLB。在至少一个实施例中,逻辑电路646对应于关于图5A所描述的逻辑电路516。在一些实施例中,64个逻辑电路是4位乘1位乘法器,如本文关于图6B所描述的。
存储器宏630还包括加法器树650,加法器树650包括以多级布置的多个加法器,以累加从64个逻辑电路或乘法器输出的乘法结果。在图6A的示例配置中,加法器树650包括六级,包括第一级中的加法器647、第二级中的加法器648和第六级中的加法器649。在一些实施例中,加法器树650和64个逻辑电路一起形成MAC电路651。在一个或多个实施例中,从最终加法器649输出的结果包括10位字。在图6A的示例配置中,存储器宏630进一步包括位移位器和累加器652,其被配置为响应于控制信号SIGN和ACM_EN进一步执行位移位和/或累加。在一些实施例中,移位器和累加器652被简化或省略,或者具有不同的配置。基于储存在存储器阵列602中的权重数据和输入数据XIN的CIM操作的结果作为NOUT从存储器宏630输出。在图6A的示例配置中,权重缓冲器614和权重解复用器642被包括在存储器宏630中,而写入地址解复用器641、读取地址解复用器643和输入驱动器644在存储器宏630外部并且被包括在如本文所描述的存储器控制器中。
图6B是根据一些实施例的存储器器件600中的输入驱动器644和逻辑电路646的示意电路图。
输入驱动器644包括64个类似配置的输入驱动器块。代表性输入驱动器块660在图6B中更详细地示出。输入驱动器块660包括四个触发器(其中一个在661处指示)和一个MUX662。输入数据XIN[3:0]的四个位对应地并行输入到四个触发器,四个触发器的输出耦合到MUX 662的输入。MUX 662根据信号XINSEL[3:0]将输入数据的四个位顺序地输出到数据线645上。
逻辑电路646包括四个NOR门670-673。NOR门670-673的第一输入共同地耦合到数据线645以接收输入数据的四个位的序列。NOR门670-673的第二输入对应地耦合到读取位线RBLB[0]~[3],读取位线RBLB[0]~[3]耦合到存储器部段612中对应的四个存储器列。从所选择的存储器部段612的行读取的权重数据的四个位被施加到NOR门670-673的第二输入。
在第一时钟周期中,NOR门670-673将权重数据的四个位中的每个位与输入数据的四个位的序列中的第一位相乘,并且将对应的第一结果输出到对应的加法器树650的第一级中的加法器。在第二时钟周期中,NOR门670-673将权重数据的四个位中的每个位与输入数据的四个位的序列中的第二位相乘,并且将对应的第二结果输出到对应的加法器树650的第一级中的加法器。在第三时钟周期中,NOR门670-673将权重数据的四个位中的每个位与输入数据的四个位的序列中的第三位相乘,并且将对应的第三结果输出到对应的加法器树650的第一级中的加法器。在第四时钟周期中,NOR门670-673将权重数据的四个位中的每个位与输入数据的四个位的序列中的第四位相乘,并且将对应的第四结果输出到对应的加法器树650的第一级中的加法器。在至少一个实施例中,本文描述的一个或多个优点可以由存储器器件600实现。
图7A是根据一些实施例的存储器器件700的示意图。在一些实施例中,存储器器件700对应于存储器器件100B、300、500A、600中的一个或多个。
本文描述了存储器器件600和存储器器件700之间的区别。在存储器器件600中,每个存储器部段包括物理上相互相邻或连续的多个存储器列。在存储器器件700中,每个存储器部段包括物理上不相邻的、或者与另一个存储器部段的存储器列交错的多个存储器列。
例如,存储器器件700的部分702在图7A中详细示出。部分702包括存储器器件700的64个存储器存储体中的四个存储器存储体,例如存储体0~3。存储器器件700的每个存储器存储体对应于本文所描述的存储器部段。存储器器件700的每个存储器存储体包括四个存储列,每个存储列包括沿四个对应行布置的四个存储器单元。存储器列沿X方向延伸,并且行沿垂直于X方向的Y方向延伸。部分702包括加法器区域704,加法器区域704包括对应于存储体0-3的第一级和第二级加法器。存储体0和1在X方向上物理地布置在加法器区域704的一侧。存储体2和3在X方向上物理地布置在加法器区域704的另一侧。部分702包括沿X方向物理地布置在存储体0、1和加法器区域704之间的逻辑电路区域LOC1。部分702还包括沿X方向物理地布置在存储体2、3和加法器区域704之间的逻辑电路区域LOC2。逻辑电路区域LOC1、LOC2包括如本文所描述的多种逻辑电路。
存储体0和1的存储列沿Y方向交替排列。为了清楚起见,存储体0的存储器列通常在图7A中以708指示。存储体2和存储体3的存储列沿Y方向交替排列。通过对应的读取字线RWL0_1[3:0]、RWLB0_1[3:0]、RWL1_2[3:0]、RWLB1_2[3:0]和对应的读取位线在读取操作中存取存储体0~3。读取位线由从存储体0~3的存储列延伸到对应的逻辑电路区域LOC1、LOC2的箭头示意性地示出。例如,箭头710示意性地表示耦合在存储体1的存储器列711和逻辑电路区域LOC1中的对应逻辑电路之间的读取位线。通过对应的写入字线WWL[7:0]、WWLB[7:0]、WWL[15:8]、WWLB[15:8]和对应的写入位线WBLB[3:0]在写入操作中存取存储体0~3。写入位线WBLB耦合到权重缓冲器(未示出)以接收用于更新部分702中的一个或多个存储器单元的新权重数据。
数据线XINLB[0]上的输入数据被输入到逻辑电路区域LOC1以与从存储体0读取出的权重数据相乘。数据线XINLB[1]上的输入数据被输入到逻辑电路区域LOC1以与从存储体1读取出的权重数据相乘。数据线XINLB[2]上的输入数据被输入到逻辑电路区域LOC2以与从存储体2读取出的权重数据相乘。数据线XINLB[3]上的输入数据被输入到逻辑电路区域LOC2以与从存储体3读取出的权重数据相乘。在一些实施例中,数据线XINLB[0]~[3]上的每个输入数据包括输入数据位的流或串,例如,如关于图6B所描述的。从存储器存储体0~3中的存储器单元读取出的权重数据与输入数据的流相乘的结果由从逻辑电路区域LOC1、LOC2延伸到加法器区域704的箭头示意性地示出。加法器区域704包括多个全加器(FA)单元,每个FA单元包括用于累加乘法的输出结果的第一级和第二级加法器。FA单元750的细节参考图7B进行描述。
如图7A的右侧所示,存储器器件700还包括与部分702类似地配置的部分712、714、716、718、720、722、724,并且包括存储器器件700的存储体4~31以及对应的第一和第二级加法器。部分702、712中的第二级加法器的输出耦合到第三级加法器732的输入。部分714、716中的第二级加法器的输出耦合到第三级加法器734的输入。部分718、720中的第二级加法器的输出耦合到第三级加法器736的输入。部分722、724中的第二级加法器的输出耦合到第三级加法器738的输入。第三级加法器732、734的输出耦合到第四级加法器740的输入。第三级加法器736、738的输出耦合到第四级加法器742的输入。第四级加法器740、742的输出耦合到第五级加法器744的输入。
部分702、712、714、716、718、720、722、724,第三级加法器732、734、736、738,第四级加法器740、742和第五级加法器744一起形成存储器器件700的部分745。存储器器件700还包括与部分745类似地配置的部分746。存储器器件700的部分746包含具有对应的逻辑电路和第一至第五级加法器的存储体32-63。存储器器件700还包括部分747,部分747包括第六级加法器、移位器、累加电路和写入电路。在一些实施例中,存储器器件700以类似于存储器器件500A、600中的一个或多个的方式操作。在至少一个实施例中,本文所描述的一个或多个优点可由存储器器件700实现。
图7B是根据一些实施例的存储器器件700中的FA单元750的示意电路图。
FA单元750包括第一级加法器781、782和第二级加法器783、784。第一级加法器781、782和第二级加法器783、784类似地配置,除了第二级加法器783、784对应于第一级加法器781、782的极性反转电路。这里详细描述第一级加法器781的电路图。
第一级加法器781包括PMOS晶体管751~760、NMOS晶体管761~770和反相器771、772。PMOS晶体管751-753串联耦合在电源电压VDD和节点S之间。PMOS晶体管754-756并联耦合在VDD和反相器771的使能端子之间。PMOS晶体管757-758串联耦合在VDD和节点CO之间。PMOS晶体管759-760并联耦合在VDD和反相器772的使能端子之间。PMOS晶体管751、754的栅极耦合在一起并耦合到节点CI。PMOS晶体管752、755、757、760的栅极耦合在一起并耦合到节点B。PMOS晶体管753、756、758、759的栅极耦合在一起并耦合到节点A。NMOS晶体管761-763串联耦合在电压VSS和节点S之间。NMOS晶体管764-766并联耦合在VSS和反相器771的使能端子之间。NMOS晶体管767-768串联耦合在VSS和节点CO之间。NMOS晶体管769-770并联耦合在VSS和反相器772的使能端子之间。NMOS晶体管761、764的栅极耦合在一起并耦合到节点CI。NMOS晶体管762、765、767、770的栅极耦合在一起并耦合到节点B。NMOS晶体管763、766、768、769的栅极耦合在一起并耦合到节点A。反相器771的输入耦合节点S。反相器771的输出耦合到节点CO和反相器771的输出。反相器772的输入耦合到节点CI。
图8是根据一些实施例的方法800的流程图。在至少一个实施例中,在参考图1A-图7B所描述的一个或多个IC、存储器器件、存储器宏中或者由参考图1A-图7B所描述的一个或多个IC、存储器器件、存储器宏执行方法800。方法800包括操作805、815、825,其中操作815和825同时执行。
在操作805处,从存储器器件的存储器部段中的多个存储器单元之中的第一存储器单元读取第一段权重数据。例如,如关于图4A、图4B中的一个或多个所描述,脉冲422被施加到对应于要从其进行读取的第一存储器单元MC[0]的字线WL[0],并且储存在存储器单元MC[0]中的权重数据的段W[0]被读取出并放置在位线BL上。以类似的方式在图5A中的存储器器件中,字线WL[0]被选择,并且储存在存储器单元MC[0]中的权重数据的段W[0]被读取出并放置在读取位线RBLB上。
在操作815处,使用从第一存储器单元读取的第一段权重数据来执行存储器中计算(CIM)操作。例如,如关于图4A、图4B中的一个或多个所描述的,耦合到位线BL的寄存器415被控制为在逻辑电路416的第一输入处锁存从存储器单元MC[0]读取的权重数据的第一段W[0]。输入数据IN被提供给逻辑电路416的第二输入。逻辑电路416和MAC电路417执行锁存的权重数据的段W[0]和输入数据IN的CIM操作,例如乘法运算。对于另一个示例,如关于图5A所描述的,被存取的存储器部段中的存储器单元是多端口存储器单元,其允许从存储器单元MC[0]读取的权重数据的段W[0]被维持在读取位线RBLB上,而不受其他活动影响,诸如通过另一个写入位线WBLB更新权重数据。从存储器单元MC[0]读取的权重数据的段W[0]和输入数据IN以类似于关于图4A、图4B描述的方式用于CIM操作。
至少部分地与操作815同时地执行操作825以更新与第一存储器单元不同的第二存储器单元中的第二段权重数据。例如,如关于图4A、图4B中的一个或多个所描述的,当使用从存储器单元MC[0]读取的权重数据的段W[0]和输入数据IN执行CIM操作时,存储器单元MC[1]~MC[N]中的一个在写入操作中通过对应字线WL[1]_WL[N]上的脉冲428被存取,并且,对应的新权重数据的段Wn[1]~Wn[N]从权重缓冲器414被提供给位线BL,并在存储器单元MC[1]~MC[N]之中的被存取存储器单元中被写入或更新。在至少一个实施例中,在CIM操作期间,使用从存储器单元MC[0]读取的权重数据对多于一个存储器单元执行所描述的权重数据更新。对于另一个示例,如关于图5A所描述的,当使用通过另一个位线(即,读取位线RBLB)从存储器单元MC[0]读取出的权重数据W[0]执行CIM操作时,对另一个存储器单元(例如,存储器单元MC[N])执行权重数据更新,以经由读取位线WBLB将新权重数据写入到存储器单元MC[N]。结果,可以在多端口存储器单元的存储器部段中同时执行CIM操作和权重数据更新,而不需要耦合到存储器部段的位线的寄存器。在一些实施例中,寄存器仍然耦合到多端口存储器单元的存储器部段的读取位线RBLB,以在延长的时间段内维持读取出的权重数据,以确保CIM操作的正确执行。在至少一个实施例中,本文所描述的一个或多个优点可由方法800实现。
所描述的方法和算法包括示例操作,但它们不一定需要按所示顺序执行。根据本公开的实施例的精神和范围,可以适当地添加、替换、改变顺序和/或消除操作。组合不同特征和/或不同实施例在本公开的范围内并且在阅读取本公开之后对于本领域普通技术人员将是显而易见的。
在一些实施例中,一种存储器器件包括存储器阵列,该存储器阵列包括被配置为储存权重数据的至少一个存储器部段、耦合到所述至少一个存储器部段并且被配置为在所述至少一个存储器部段中保持待更新的新权重数据的至少一个权重缓冲器、至少一个逻辑电路、以及耦合到所述逻辑电路的输出的计算电路。逻辑电路还具有通过至少一个位线耦合到所述至少一个存储器部段的第一输入、被配置为接收输入数据的第二输入、和输出。逻辑电路被配置为在所述输出处生成中间数据,所述中间数据与所述输入数据和通过所述至少一个位线从所述至少一个存储器部段读取的所述权重数据相对应。计算电路被配置为基于所述中间数据生成输出数据,输出数据与对输入数据和从至少一个存储器部段读取的权重数据执行的计算相对应。
在一些实施例中,存储器阵列、至少一个权重缓冲器、至少一个逻辑电路和计算电路被包括在相同的存储器宏中。
在一些实施例中,至少一个逻辑电路包括或非门或与门。
在一些实施例中,计算电路包括乘法累加(MAC)电路。
在一些实施例中,MAC电路包括具有多个加法器级的加法器树。
在一些实施例中,存储器器件还包括:至少一个寄存器,耦合到至少一个位线,在至少一个存储器部段和至少一个逻辑电路的第一输入之间。
在一些实施例中,至少一个存储器部段包括耦合到至少一个位线的单端口存储器单元。
在一些实施例中,至少一个存储器部段包括多个存储器单元,每个存储器单元具有:储存电路,被配置为储存对应的权重数据的段,和输出缓冲器,耦合在储存电路和至少一个位线之间。
在一些实施例中,输出缓冲器包括反相器和传输门,反相器耦合在储存电路和传输门之间,和传输门耦合在反相器和至少一个位线之间。
在一些实施例中,至少一个位线包括第一位线和第二位线,多个存储器单元中的每个是多端口存储器单元,多端口存储器单元具有:第一读取端口,耦合到第一位线,和第二读取端口,耦合到第二位线,至少一个逻辑电路包括:第一逻辑电路,具有耦合到第一位线的第一输入和被配置为接收输入数据的第一部分的第二输入,以及第二逻辑电路,具有耦合到第二位线的第一输入和被配置为接收输入数据的第二部分的第二输入。
在一些实施例中,存储器器件还包括:第一寄存器,耦合到第一位线,位于至少一个存储器部段和第一逻辑电路之间;和第二寄存器,耦合到第二位线,位于至少一个存储器部段和第二逻辑电路之间。
在一些实施例中,一种方法包括同时地进行:使用从存储器器件的存储器部段中的多个存储器单元之中的第一存储器单元读取的第一段权重数据来执行存储器中计算(CIM)操作,以及更新存储器部段中的多个存储器单元之中的第二存储器单元中的第二段权重数据,第二存储器单元不同于第一存储器单元。
在一些实施例中,方法还包括:与使用从第一存储器单元读取的第一段权重数据执行CIM操作同时地进行:利用新的第一段权重数据更新第一存储器单元中的第一段权重数据。
在一些实施例中,更新第一存储器单元中的第一段权重数据和更新第二存储器单元中的第二段权重数据包括:从耦合到存储器部段的相同权重缓存器中对应地获取新的第一段权重数据和新的第二段权重数据。
在一些实施例中,方法还包括:与使用从第一存储器单元读取的第一段权重数据执行CIM操作同时地进行:更新存储器部段中的多个存储器单元之中的至少一个第三存储器单元中的至少一个第三段权重数据,至少一个第三存储器单元不同于第一存储器单元和第二存储器单元。
在一些实施例中,方法还包括:在寄存器的输出处锁存从第一存储器单元读取的第一段权重数据,其中,使用第一段权重数据执行CIM操作包括使用在寄存器的输出处锁存的第一段权重数据执行CIM操作。
在一些实施例中,存储器部段中的多个存储器单元包括耦合到相同位线的单端口存储器单元,并且位线耦合到寄存器的输入。
在一些实施例中,使用第一段权重数据执行CIM操作包括:在逻辑电路处执行第一段权重数据与输入数据的乘法运算,和将乘法运算的结果输出到加法器树。
在一些实施例中,存储器器件包括存储器阵列、输入驱动器和乘法累加(MAC)电路。存储器阵列包括被配置为储存用于存储器中计算(CIM)操作的权重数据的多个存储器部段、耦合到多个存储器部段以更新储存在多个存储器部段中的权重数据的多条写入位线段、以及耦合到多个存储器部段以读取用于CIM操作的储存在多个存储器部段中的权重数据的多个读取位线。输入驱动器耦合到多个输入数据线,并且被配置为通过多个输入数据线提供输入数据。MAC电路耦合到多个读取位线和多个输入数据线,并且被配置为基于从多个存储器部段读取出的权重数据和从输入驱动器提供的输入数据执行CIM操作。
在一些实施例中,存储器器件还包括:权重缓冲器,多个存储器部段共用并且耦合到多个写入位线,其中,权重缓冲器被配置为向多个存储器部段之中的存储器部段提供新的权重数据,同时正在读取多个存储器部段之中的另外存储器部段以将储存在另外存储器部段中的对应的权重数据提供给用于CIM操作的MAC电路。
上述概述了若干个实施例的特征,以便本领域技术人员可以更好地理解本公开的各个方面。本领域技术人员应当理解,他们可以容易地使用本公开作为设计或修改用于实现本文所介绍的实施例的相同目的和/或实现其相同优点的其它过程和结构的基础。本领域技术人员还应当认识到,此类等效结构不背离本发明的精神和范围,并且它们可以在不背离本发明的精神和范围的情况下在本发明中进行多种改变、替换以及改变。

Claims (10)

1.一种存储器器件,包括:
存储器阵列,包括被配置为储存权重数据的至少一个存储器部段;
至少一权重缓冲器,耦合到所述至少一个存储器部段,并且被配置为在所述至少一个存储器部段中保持待更新的新权重数据;
至少一个逻辑电路,具有:
第一输入,通过至少一个位线耦合到所述至少一个存储器部段,
第二输入,被配置为接收输入数据,和
输出;以及
计算电路,耦合到所述至少一个逻辑电路的所述输出,
其中
所述至少一个逻辑电路被配置为在所述输出处生成中间数据,所述中间数据与所述输入数据和通过所述至少一个位线从所述至少一个存储器部段读取的所述权重数据相对应,以及
所述计算电路被配置为基于所述中间数据生成输出数据,所述输出数据与对所述输入数据和从所述至少一个存储器部段读取的所述权重数据执行的计算相对应。
2.根据权利要求1所述的存储器器件,其中
所述存储器阵列、所述至少一个权重缓冲器、所述至少一个逻辑电路和所述计算电路被包括在相同的存储器宏中。
3.根据权利要求1所述的存储器器件,其中
所述至少一个逻辑电路包括或非门或与门。
4.根据权利要求1所述的存储器器件,其中
所述计算电路包括乘法累加电路。
5.根据权利要求4所述的存储器器件,其中
所述乘法累加电路包括具有多个加法器级的加法器树。
6.根据权利要求1所述的存储器器件,还包括:
至少一个寄存器,耦合到所述至少一个位线,位于所述至少一个存储器部段和所述至少一个逻辑电路的所述第一输入之间。
7.根据权利要求6所述的存储器器件,其中
所述至少一个存储器部段包括耦合到所述至少一个位线的单端口存储器单元。
8.根据权利要求1所述的存储器器件,其中
所述至少一个存储器部段包括多个存储器单元,每个所述存储器单元具有储存电路,被配置为储存对应的所述权重数据的段,和
输出缓冲器,耦合在所述储存电路和所述至少一个位线之间。
9.一种操作存储器器件的方法,所述方法包括:
同时地进行:
使用从存储器器件的存储器部段中的多个存储器单元之中的第一存储器单元读取的第一段权重数据来执行存储器中计算操作,以及
更新所述存储器部段中的所述多个存储器单元之中的第二存储器单元中的第二段权重数据,所述第二存储器单元不同于所述第一存储器单元。
10.一种存储器器件,包括:
存储器阵列,所述存储器阵列包括:
多个存储器部段,被配置为储存用于存储器中计算操作的权重数据,
多个写入位线,耦合到所述多个存储器部段以更新储存在所述多个存储器部段中的所述权重数据,和
多个读取位线,耦合到所述多个存储器部段以读取用于存储器中计算操作的储存在所述多个存储器部段中的所述权重数据;
输入驱动器,耦合到多个输入数据线,并且被配置为通过所述多个输入数据线提供输入数据;以及
乘法累加电路,耦合到所述多个读取位线和所述多个输入数据线,并且被配置为基于从所述多个存储器部段读取出的所述权重数据和从所述输入驱动器提供的所述输入数据执行所述存储器中计算操作。
CN202210553594.3A 2021-08-27 2022-05-20 存储器器件及其操作方法 Pending CN115512729A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163237662P 2021-08-27 2021-08-27
US63/237,662 2021-08-27
US17/576,898 US20230068645A1 (en) 2021-08-27 2022-01-14 Memory device and method for computing-in-memory (cim)
US17/576,898 2022-01-14

Publications (1)

Publication Number Publication Date
CN115512729A true CN115512729A (zh) 2022-12-23

Family

ID=84500842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210553594.3A Pending CN115512729A (zh) 2021-08-27 2022-05-20 存储器器件及其操作方法

Country Status (5)

Country Link
US (1) US20230068645A1 (zh)
KR (1) KR20230031757A (zh)
CN (1) CN115512729A (zh)
DE (1) DE102022101250A1 (zh)
TW (1) TWI812117B (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991477B (zh) * 2016-01-20 2020-08-14 中科寒武纪科技股份有限公司 一种人工神经网络压缩编码装置和方法
CN109146070B (zh) * 2017-06-16 2021-10-22 华为技术有限公司 一种支撑基于rram的神经网络训练的外围电路及系统
EP4066170A4 (en) * 2019-11-26 2024-01-17 Groq, Inc. LOADING OPERANDS AND DELIVERING RESULTS FROM A MULTI-DIMENSIONAL ARRAY USING ONLY ONE SIDE
CN112836815A (zh) * 2020-05-04 2021-05-25 神亚科技股份有限公司 用于执行卷积神经网络运算的处理装置与处理方法

Also Published As

Publication number Publication date
US20230068645A1 (en) 2023-03-02
TWI812117B (zh) 2023-08-11
KR20230031757A (ko) 2023-03-07
DE102022101250A1 (de) 2023-03-02
TW202309899A (zh) 2023-03-01

Similar Documents

Publication Publication Date Title
US20230395143A1 (en) Memory computation method
US8117567B2 (en) Structure for implementing memory array device with built in computation capability
US7327597B1 (en) Static random access memory architecture
US7746709B2 (en) Memory circuit with decoupled read and write bit lines and improved write stability
WO2018106374A1 (en) Computational memory cell and processing array device using memory cells
US7817492B2 (en) Memory device using SRAM circuit
CN107783783A (zh) 与微代码指令有关的设备及方法
US11580059B2 (en) Multi-port memory architecture for a systolic array
CN111429956B (zh) 一种多模式可计算的sram单元电路及其控制方法
JP2012064292A (ja) 半導体集積回路
TWI812117B (zh) 用於記憶體內計算(cim)的記憶體元件及方法
TW201933346A (zh) 虛設字線追蹤電路
US9496029B1 (en) 6T bitcell for dual port SRAM memories with single-ended read and single-ended write and optimized bitcells for multiport memories
TWI827001B (zh) 記憶胞、記憶胞陣列及記憶胞的操作方法
US11935586B2 (en) Memory device and method for computing-in-memory (CIM)
JP2022533622A (ja) シフト可能メモリ、およびシフト可能メモリを動作させる方法
US11908545B2 (en) Memory device and operating method for computing-in-memory
US9030887B2 (en) Semiconductor memory device and information processing apparatus
EP4376003A1 (en) Storage cell, memory, and in-memory processor
US6351139B1 (en) Configuration bit read/write data shift register
Chon et al. Hardware Efficient Transposable 8T SRAM for Orthogonal Data Access
JP2005108403A (ja) 半導体記憶装置
JPH0447587A (ja) 半導体記憶装置

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