CN113157632B - 存储器内处理器件 - Google Patents
存储器内处理器件 Download PDFInfo
- Publication number
- CN113157632B CN113157632B CN202110018908.5A CN202110018908A CN113157632B CN 113157632 B CN113157632 B CN 113157632B CN 202110018908 A CN202110018908 A CN 202110018908A CN 113157632 B CN113157632 B CN 113157632B
- Authority
- CN
- China
- Prior art keywords
- mac
- data
- command signal
- output
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 81
- 230000015654 memory Effects 0.000 claims description 103
- 230000004044 response Effects 0.000 claims description 78
- 230000004913 activation Effects 0.000 claims description 75
- 230000005540 biological transmission Effects 0.000 claims description 22
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000013500 data storage Methods 0.000 claims description 18
- 238000009825 accumulation Methods 0.000 claims description 8
- 230000003111 delayed effect Effects 0.000 claims description 2
- 230000003213 activating effect Effects 0.000 claims 7
- 238000010586 diagram Methods 0.000 description 22
- 238000007792 addition Methods 0.000 description 20
- 230000002093 peripheral effect Effects 0.000 description 18
- 238000000034 method Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 230000001360 synchronised effect Effects 0.000 description 11
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 101100059544 Arabidopsis thaliana CDC5 gene Proteins 0.000 description 2
- 101150115300 MAC1 gene Proteins 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7817—Specially adapted for signal processing, e.g. Harvard architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/025—Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/106—Data output latches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1087—Data input latches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
- Dram (AREA)
Abstract
一种存储器内处理(PIM)器件包括第一组储存区域、第二组储存区域和多个乘法/累加(MAC)运算器。MAC运算器被配置为经由全局数据输入/输出(GIO)线与第一组储存区域和第二组储存区域进行通信。与第一组储存区域中的一个储存区域相对应的第一储存区域、与第二组储存区域中的一个储存区域相对应的第二储存区域以及与多个MAC运算器中的一个MAC运算器相对应的第一MAC运算器构成一个MAC单元。第一MAC运算器被配置为经由GIO线分别从第一储存区域和第二储存区域接收第一数据和第二数据,以对第一数据和第二数据执行MAC算术运算并且输出MAC算术运算的结果。
Description
相关申请的交叉引用
本申请要求2020年1月7日提交的申请号为62/958223的美国临时专利申请和2020年1月17日提交的申请号为10-2020-0006902的韩国专利申请的优先权,其全部内容通过引用合并于此。
技术领域
本公开的各种实施例涉及存储器内处理(PIM,processing-in-memory)器件,并且更具体地,涉及执行确定性算术运算的PIM器件。
背景技术
近来,不仅在信息技术行业而且在金融和医疗行业中,对人工智能(AI)的兴趣也在增加。因此,在各个领域中,都考虑并原型化了人工智能,更确切地说是引入了深度学习。引起广泛关注的一个原因可能是由于执行算术运算的处理器性能提高。为了提高人工智能的性能,可能有必要增加构成人工智能的神经网络的层数以训练人工智能。近年来,这种趋势一直持续,这导致硬件实际执行计算所需的计算量呈指数增长。此外,如果人工智能采用包括彼此分开的存储器和处理器的通用硬件系统,则由于存储器与处理器之间的数据通信量的限制,人工智能的性能可能会降低。为了解决该问题,已经将其中处理器和存储器集成在一个半导体芯片中的PIM器件用作神经网络计算器件。因为PIM器件直接在PIM器件中执行算术运算,所以可以提高神经网络中的数据处理速度。
发明内容
根据本公开的实施例的存储器内处理(PIM)器件包括多个储存区域和多个乘法/累加(MAC)运算器。多个储存区域被配置为包括第一组储存区域和第二组储存区域。多个MAC运算器被配置为经由全局数据输入/输出(GIO)线与第一组储存区域和第二组储存区域进行通信。与第一组储存区域中的一个储存区域相对应的第一储存区域、与第二组储存区域中的一个储存区域相对应的第二储存区域以及与多个MAC运算器中的一个MAC运算器相对应的第一MAC运算器构成一个MAC单元。第一MAC运算器被配置为经由GIO线分别从第一储存区域和第二储存区域接收第一数据和第二数据,以对第一数据和第二数据执行MAC算术运算并且输出MAC算术运算的结果。
根据本公开的实施例的存储器内处理(PIM)器件包括多个储存区域和多个乘法/累加(MAC)运算器。多个储存区域被配置为包括第一组储存区域和第二组储存区域。多个MAC运算器被配置为经由第一存储体输入/输出(BIO)线与第一组储存区域进行通信,并且被配置为经由第二BIO线与第二组储存区域进行通信。与第一组储存区域中的一个储存区域相对应的第一储存区域、与第二组储存区域中的一个储存区域相对应的第二储存区域以及与多个MAC运算器中的一个MAC运算器相对应的第一MAC运算器构成一个MAC单元。第一MAC运算器被配置为经由第一BIO线从第一储存区域接收第一数据,并经由第二BIO线从第二储存区域接收第二数据,并且第一MAC运算器被配置为对第一数据和第二数据执行MAC算术运算,以输出MAC算术运算的结果。
根据本公开的实施例的存储器内处理(PIM)器件包括:多个储存区域、全局缓冲器和多个乘法/累加(MAC)运算器。多个MAC运算器被配置为经由存储体输入/输出(BIO)线与多个储存区域进行通信,并且被配置为经由全局输入/输出(GIO)线与全局缓冲器进行通信。多个储存区域中的第一储存区域和多个MAC运算器中的第一MAC运算器构成一个MAC单元。第一MAC运算器被配置为经由BIO线从第一储存区域接收第一数据,并经由GIO线从全局缓冲器接收第二数据,并且第一MAC运算器被配置为对第一数据和第二数据执行MAC算术运算以输出MAC算术运算的结果。
根据本公开的实施例的存储器内处理(PIM)器件包括数据储存区域和算术电路。数据储存区域包括多个储存区域。算术电路包括多个乘法/累加(MAC)运算器。在多个储存区域中的第一储存区域和第二储存区域以及在多个MAC运算器中的第一MAC运算器构成一个MAC单元。第一MAC运算器被配置为分别从第一储存区域和第二储存区域接收第一数据和第二数据,以对第一数据和第二数据执行MAC算术运算并且输出MAC算术运算的结果。
附图说明
参照所附附图,通过各种实施例图示了所公开技术的某些特征。
图1是图示根据本公开的一个实施例的PIM器件的框图。
图2是图示根据本公开的第一实施例的PIM器件中包括的存储体和乘法/累加(MAC)运算器的布置的示意图。
图3是图示根据本公开的第一实施例的PIM器件的配置的框图。
图4图示了在图3的PIM器件中从命令解码器输出的内部命令信号和从MAC命令生成器输出的MAC命令信号。
图5图示了包括在图3的PIM器件中的MAC命令生成器的配置的示例。
图6图示了图5中所示的MAC命令生成器的沿着时间轴的输入信号和输出信号。
图7图示了包括在图3的PIM器件中的MAC运算器的配置示例。
图8至图14是图示了图3中所示的PIM器件的操作的框图。
图15是图示图3中所示的PIM器件的操作的时序图。
图16是图示根据本公开的第一实施例的PIM器件的另一配置的框图。
图17图示了在图16的PIM器件中从命令解码器输出的内部命令信号和从MAC命令生成器输出的MAC命令信号。
图18图示了包括在图16的PIM器件中的MAC命令生成器的配置的示例。
图19图示了图18中所示的MAC命令生成器的沿着时间轴的输入信号和输出信号。
图20图示了包括在图16的PIM器件中的MAC运算器的配置的示例。
图21至图25是图示图16中所示的PIM器件的操作的框图。
图26是图16中所示的PIM器件的操作的时序图。
图27是图示根据本公开的第二实施例的PIM器件中包括的存储体和乘法/累加(MAC)运算器的布置的示意图。
图28是图示根据本公开的第二实施例的PIM器件的配置的框图。
图29是图示图28中所示的PIM器件的操作的框图。
图30是图示图28中所示的PIM器件的操作的时序图。
具体实施方式
在以下实施例的描述中,将理解的是,术语“第一”和“第二”旨在识别元件,但不用于限定元件的特定数量或顺序。另外,当一个元件被称为位于另一元件“上”、“之上”、“上方”、“之下”或“下方”时,其旨在表示相对的位置关系,但不用于限制该元件直接接触另一元件或者在两个元件之间存在至少一个中间元件的某些情况。因此,本文中使用的诸如“在……上”、“在……之上”、“在……上方”、“在……之下”、“在……下方”、“在……以下”等术语仅是出于描述特定实施例的目的,并非旨在限制本公开的范围。此外,当一个元件被称为“连接”或“耦接”到另一元件时,该元件可以直接电或机械地连接或耦接到另一元件,或者可以用在两个元件之间的一个或多个另外元件而间接地电或机械地连接或耦接到另一元件。此外,当一个参数被称为“预定的”时,其可以旨在表示在将该参数用于过程或算法中之前确定该参数的值。该参数的值可以在过程或算法开始时设定,或者可以在执行过程或算法的时间段期间设定。逻辑“高”电平和逻辑“低”电平可以用于描述电信号的逻辑电平。具有逻辑“高”电平的信号可以与具有逻辑“低”电平的信号区分开。例如,当具有第一电压的信号对应于具有逻辑“高”电平的信号时,具有第二电压的信号可以对应于具有逻辑“低”电平的信号。在一个实施例中,可以将逻辑“高”电平的电压电平设定为高于逻辑“低”电平的电压电平。此外,根据实施例,可以将信号的逻辑电平设定为不同或相反。例如,在一个实施例中具有逻辑“高”电平的某个信号可以在另一实施例中被设定为具有逻辑“低”电平。
在下文中将参照所附附图详细地描述本公开的各种实施例。然而,本文中描述的实施例仅用于说明性目的,并不旨在限制本公开的范围。
各个实施例针对能够以高速执行确定性算术运算的存储器内处理(PIM)器件。
图1是图示根据本公开的实施例的PIM器件的框图。如图1所示,PIM器件10可以包括:数据储存区域11、算术电路12、接口(I/F)13-1和数据(DQ)输入/输出(I/O)焊盘13-2。数据储存区域11可以包括第一储存区域和第二储存区域。在一个实施例中,第一储存区域和第二储存区域可以分别是第一存储体和第二存储体。在另一个实施例中,第一储存区域和第二储存区域可以分别是存储体和缓冲存储器。数据储存区域11可以包括易失性存储元件或非易失性存储元件。对于一个实施例,数据储存区域11可以包括易失性存储元件和非易失性存储元件二者。
算术电路12可以对从数据储存区域11传输的数据执行算术运算。在一个实施例中,算术电路12可以包括乘法和累加(MAC)运算器。MAC运算器可以对从数据储存区域11传送的数据执行相乘计算,并且可以对乘法结果数据执行累加计算。在MAC运算之后,MAC运算器可以输出MAC结果数据。MAC结果数据可以被储存在数据储存区域11中,或者可以经由数据I/O焊盘13-2从PIM器件10输出。在一个实施例中,算术电路12可以执行用于神经网络计算(例如,深度学习过程中的算术运算)的附加操作,例如偏置加法运算和激活函数运算。在另一个实施例中,PIM器件10可以包括与算术电路12分开的偏置加法电路和激活函数电路。
PIM器件10的接口13-1可以从外部器件接收外部命令E_CMD和输入地址I_ADDR。外部器件可以表示耦接到PIM器件10的主机或PIM控制器。在下文中,可以假设发送至PIM器件10的外部命令E_CMD是请求MAC算术运算的命令。即,PIM器件10可以响应于外部命令E_CMD而执行MAC算术运算。PIM器件10的数据I/O焊盘13-2可以用作外部的器件(例如,PIM控制器或位于PIM系统1外部的主机)与PIM器件10之间的数据通信终端。因此,从主机或PIM控制器输出的数据可以经由数据I/O焊盘13-2输入至PIM器件10中。此外,从PIM器件10输出的数据可以经由数据I/O焊盘13-2输入至主机或PIM控制器。
在一个实施例中,PIM器件10可以在存储器模式或MAC算术模式下工作。在PIM器件10以存储器模式工作的情况下,PIM器件10可以对数据储存区域11执行数据读取操作或数据写入操作。在PIM器件10以MAC算术模式工作的情况下,PIM器件10的算术电路12可以从数据储存区域11接收第一数据和第二数据,以执行MAC算术运算。在PIM器件10以MAC算术模式工作的情况下,PIM器件10还可以对数据储存区域11执行数据写入操作以执行MAC算术运算。MAC算术运算可以是在预定的固定时间期间执行的确定性算术运算。如本文中针对诸如预定的固定时间或时间段之类的参数所使用的词语“预定的”表示在该参数用在过程或算法中之前确定该参数的值。对于一些实施例,在过程或算法开始之前确定该参数的值。在其它实施例中,在过程或算法期间但在过程或算法中使用该参数之前确定该参数的值。
图2图示了根据本公开的实施例的指示出包括在PIM器件100中的存储体BK0、……和BK15以及MAC运算器MAC0、……和MAC7的布置的设置结构。在一个实施例中,存储体BK0、……和BK15以及MAC运算器MAC0、……和MAC7可以分别包括在图1的PIM器件10的数据储存区域和算术电路中。参考图2,PIM器件100可以包括数据储存区域和算术电路。在一个实施例中,数据储存区域可以包括存储体BK0、……和BK15。尽管本实施例图示了其中数据储存区域包括存储体BK0、……和BK15的示例,但是存储体BK0、……和BK15仅是适合于数据储存区域的示例。在一些实施例中,存储体BK0、……和BK15可以是与易失性存储器件(例如,DRAM器件)相对应的存储区域。在一个实施例中,存储体BK0、……和BK15中的每个可以是独立激活的组件单元,并且可以被配置为具有与PIM器件100中的数据I/O线相同的数据总线宽度。在一个实施例中,存储体BK0、……和BK15可以通过交叉存取来操作,使得在选择另一个存储体的同时并行地执行任何一个存储体的激活操作。尽管本实施例示出了PIM器件100包括存储体BK0、……和BK15的示例,但是存储体的数量不限于16,并且在不同的实施例中可以不同。存储体BK0、……和BK15中的每一个可以包括至少一个单元阵列,所述至少一个单元阵列包括位于多个行与多个列的交叉点处的存储单位单元。存储体BK0、……和BK15可以包括第一组存储体(例如,奇数存储体BK0、BK2、……和BK14)和第二组存储体(例如,偶数存储体BK1、BK3、……和BK15)。
核心电路可以被设置为与存储体BK0、……和BK15相邻。核心电路可以包括X解码器XDEC和Y解码器/IO电路YDEC/IO。X解码器XDEC也可以被称为字线解码器或行解码器。在一个实施例中,在奇数存储体BK0、BK2、……和BK14之中被布置为在一行中彼此相邻的两个奇数存储体可以彼此共享X解码器XDEC中的一个。例如,在第一行中彼此相邻的第一存储体BK0和第三存储体BK2可以共享X解码器XDEC中的一个,并且在第一行中彼此相邻的第五存储体BK4和第七存储体BK6也可以共享X解码器XDEC中的一个。类似地,在偶数存储体BK1、BK3、……和BK15之中被布置为在一行中彼此相邻的两个偶数存储体可以彼此共享X解码器XDEC中的一个。例如,在第二行中彼此相邻的第二存储体BK1和第四存储体BK3可以共享X解码器XDEC中的一个,并且在第二行中彼此相邻的第六存储体BK5和第八存储体BK7也可以共享X解码器XDEC中的一个。X解码器XDEC可以从包括在外围电路PERI中的地址锁存器接收行地址,并且可以对该行地址进行解码以选择并使能耦接到与X解码器XDEC相邻的存储体的行(即,字线)中的一个。
Y解码器/IO电路YDEC/IO可以被设置为分别分配给存储体BK0、……和BK15。例如,可以将第一存储体BK0分配给Y解码器/IO电路YDEC/IO中的一个,并且可以将第二存储体BK1分配给Y解码器/IO电路YDEC/IO中的另一个。Y解码器/IO电路YDEC/IO中的每一个可以包括Y解码器YDEC和I/O电路IO。Y解码器YDEC也可以被称为位线解码器或列解码器。Y解码器YDEC可以从包括在外围电路PERI中的地址锁存器接收列地址,并且可以对列地址进行解码,以选择和使能耦接到选中的存储体的列(即,位线)中的至少一个。I/O电路中的每一个可以包括I/O感测放大器和写入驱动器,所述I/O感测放大器用于在读取操作期间感测并放大从对应的存储体输出的读取数据的电平,所述写入驱动器用于在针对对应的存储体的写入操作期间驱动写入数据。
在一个实施例中,算术电路可以包括MAC运算器MAC0、……和MAC7。尽管本实施例图示了其中将MAC运算器MAC0、……和MAC7用作算术电路的示例,但是本实施例可以仅仅是本公开的示例。例如,在一些其它实施例中,可以将除MAC运算器MAC0、……和MAC7以外的处理器用作算术电路。MAC运算器MAC0、……和MAC7可以被设置为使得奇数存储体BK0、BK2、……和BK14中的一个和偶数存储体BK1、BK3、……和BK15中的一个彼此共享MAC运算器MAC0、……和MAC7中的任意一个。具体地,在一个列中被布置为彼此相邻的一个奇数存储体和一个偶数存储体可以构成彼此共享MAC运算器MAC0、……和MAC7中的一个的一对存储体。MAC运算器MAC0、……和MAC7中的一个MAC运算器以及彼此共享该一个MAC运算器的一对存储体在下文中被称为“MAC单元”。
在一个实施例中,MAC运算器MAC0、……和MAC7的数量可以等于奇数存储体BK0、、BK2、……和BK14的数量或偶数存储体BK1、BK3、……和BK15的数量。第一存储体BK0、第二存储体BK1以及在第一存储体BK0与第二存储体BK1之间的第一MAC运算器MAC0可以构成第一MAC单元。另外,第三存储体BK2、第四存储体BK3以及在第三存储体BK2与第四存储体BK3之间的第二MAC运算器MAC1可以构成第二MAC单元。包括在第一MAC单元中的第一MAC运算器MAC0可以接收从包括在第一MAC单元中的第一存储体BK0输出的第一数据DA1和从包括在第一MAC单元中的第二存储体BK1输出的第二数据DA2。另外,第一MAC运算器MAC0可以执行第一数据DA1和第二数据DA2的MAC算术运算。在PIM器件100执行神经网络计算(例如,深度学习过程中的算术运算)的情况下,第一数据DA1和第二数据DA2中的一个可以是权重数据,另一个可以是矢量数据。在下文中将更详细地描述MAC运算器MAC0至MAC7中的任意一个的配置。
在PIM器件100中,外围电路PERI可以被设置在除设置有存储体BK0、BK1、……和BK15、MAC运算器MAC0、……和MAC7以及核心电路的区域以外的区域中。外围电路PERI可以包括用于命令/地址信号的控制电路和传输路径、用于数据的输入/输出的控制电路和传输路径以及电力供应电路。用于命令/地址信号的控制电路可以包括:用于对包括在命令/地址信号中的命令进行解码以生成内部命令信号的命令解码器,用于将输入地址转换为行地址和列地址的地址锁存器,用于控制行/列操作的各种功能的控制电路、用于控制延迟锁定环(DLL)电路的控制电路。用于外围电路PERI中的数据的输入/输出的控制电路可以包括用于控制读取/写入操作的控制电路、读取/写入缓冲器以及输出驱动器。外围电路PERI中的电力供应电路可以包括:用于生成内部参考电力电压的参考电力电压生成电路,以及用于从外部电力电压生成内部电力电压的内部电力电压生成电路。
根据本实施例的PIM器件100可以在存储器模式和MAC算术模式中的任何一种模式下工作。在存储器模式下,PIM器件100可以工作以执行与通常存储器件相同的操作。存储器模式可以包括存储器读取操作模式和存储器写入操作模式。在存储器读取操作模式下,PIM器件100可以响应于外部请求而执行用于从存储体BK0、BK1、……和BK15读取数据以输出所读取的数据的读取操作。在存储器写入操作模式下,PIM器件100可以响应于外部请求而执行用于将由外部器件提供的数据储存到存储体BK0、BK1、……和BK15中的写入操作。
在MAC算术模式下,PIM器件100可以利用MAC运算器MAC0、……和MAC7来执行MAC算术运算。具体地,对于MAC算术模式下的MAC算术运算,PIM器件100可以对奇数存储体BK0、BK2、……和BK14中的每一个执行第一数据DA1的读取操作,并且对偶数存储体BK1、BK3、……和BK15中的每一个执行第二数据DA2的读取操作。另外,MAC运算器MAC0、……和MAC7中的每一个可以对从存储体中读取出的第一数据DA1和第二数据DA2执行MAC算术运算,以将MAC算术运算的结果储存到存储体中或输出MAC算术运算的结果。在一些情况下,在MAC算术模式下,PIM器件100可以在执行用于MAC算术运算的数据读取操作之前,执行用于将要用于MAC算术运算的数据储存到存储体中的数据写入操作。
根据本实施例的PIM器件100的操作模式可以由从主机或控制器发送至PIM器件100的命令来确定。在一个实施例中,如果请求对存储体BK0、BK1、……和BK15的读取操作或写入操作的第一外部命令被输入至PIM器件100,则PIM器件100可以在存储器模式下执行数据读取操作或数据写入操作。此外,如果请求与MAC算术运算相对应的MAC计算的第二外部命令被输入至PIM器件100,则PIM器件100可以执行MAC算术运算。
PIM器件100可以执行确定性MAC算术运算。本公开中使用的术语“确定性MAC算术运算”可以被定义为在预定的固定时间期间在PIM器件100中执行的MAC算术运算。因此,在请求MAC算术运算的外部命令从主机或控制器发送至PIM器件100的时间点处,主机或控制器可以总是预测在PIM器件100中MAC算术运算终止的时间点(或时钟)。在PIM器件100执行确定性MAC算术运算的情况下,不需要用于向主机或控制器通知MAC算术运算的状态的操作。在一个实施例中,对于确定性MAC算术运算,可以将在PIM器件100中执行MAC算术运算的等待时间(latency)固定。
图3是图示与图2中所示的PIM器件100相对应的PIM器件200的配置的框图,图4图示了从包括在图3的PIM器件200中的命令解码器250输出的内部命令信号I_CMD和从MAC命令生成器270输出的MAC命令信号MAC_CMD。图3仅示出了构成多个MAC单元中的第一MAC单元的第一存储体(BK0)211、第二存储体(BK1)212和第一MAC运算器(MAC0)220。然而,为了简化附图,图3仅示出了一个示例。因此,对于第一MAC单元的以下描述可以等同地适用于其余MAC单元。参考图3,PIM器件200可以包括全局I/O线(以下,被称为“GIO线”)290。第一存储体(BK0)211、第二存储体(BK1)212和第一MAC运算器(MAC0)220可以经由GIO线290彼此通信。在一个实施例中,GIO线290可以设置在图2的外围电路PERI中。
PIM器件200可以包括接收驱动器(RX)230、数据I/O电路(DQ)240、命令解码器250、地址锁存器260、MAC命令生成器270和串行器/解串行器(SER/DES)280。命令解码器250、地址锁存器260、MAC命令生成器270和串行器/解串行器280可以设置在图2中所示的PIM器件100的外围电路PERI中。接收驱动器230可以从外部器件接收外部命令E_CMD和输入地址I_ADDR。外部器件可以表示耦接到PIM器件200的主机或控制器。在下文中,可以假设发送至PIM器件200的外部命令E_CMD是请求MAC算术运算的命令。即,PIM器件200可以响应于外部命令E_CMD而执行确定性MAC算术运算。数据I/O电路240可以包括I/O焊盘。数据I/O电路240可以耦接到数据I/O线。PIM器件200可以经由数据I/O电路240与外部器件通信。接收驱动器230可以分别输出从外部器件接收的外部命令E_CMD和输入地址I_ADDR。经由数据I/O电路240输入至PIM器件200的数据DA可以由串行器/解串行器280处理,并且可以经由PIM器件200的GIO线290发送至第一存储体(BK0)211和第二存储体(BK1)212。经由GIO线290从第一存储体(BK0)211、第二存储体(BK1)212和第一MAC运算器(MAC0)220输出的数据DA可以通过串行器/解串行器280处理并且可以通过数据I/O电路240被输出到外部器件。如果数据DA是串行数据,则串行器/解串行器280可以将数据DA转换为并行数据,或者如果数据DA是并行数据,则串行器/解串行器280可以将数据DA转换为串行数据。对于数据转换,串行器/解串行器280可以包括将并行数据转换为串行数据的串行器和将串行数据转换为并行数据的解串行器。
命令解码器250可以对从接收驱动器230输出的外部命令E_CMD进行解码,以生成并输出内部命令信号I_CMD。如图4所示,从命令解码器250输出的内部命令信号I_CMD可以包括第一内部命令信号至第四内部命令信号。在一个实施例中,第一内部命令信号可以是存储器激活信号ACT_M,第二内部命令信号可以是存储器读取信号READ_M,第三内部命令信号可以是MAC算术信号MAC,并且第四内部命令信号可以是结果读取信号READ_RST。从命令解码器250输出的第一内部命令信号至第四内部命令信号可以被顺序地输入至MAC命令生成器270。
为了执行PIM器件200的确定性MAC算术运算,从命令解码器250输出的存储器激活信号ACT_M、存储器读取信号READ_M、MAC算术信号MAC和结果读取信号READ_RST可以是在预定的时间点(或时钟)顺序生成。在一个实施例中,存储器激活信号ACT_M、存储器读取信号READ_M、MAC算术信号MAC和结果读取信号READ_RST可以分别具有预定的等待时间。例如,可以在从生成存储器激活信号ACT_M的时间点起经过第一等待时间之后生成存储器读取信号READ_M,可以在从生成存储器读取信号READ_M的时间点起经过第二等待时间之后生成MAC算术信号MAC,以及可以在从生成MAC算术信号MAC的时间点起经过第三等待时间之后生成结果读取信号READ_RST。直到从生成结果读取信号READ_RST的时间点起经过第四等待时间为止,命令解码器250才生成信号。第一等待时间至第四等待时间可以是预定的并且是固定的。因此,输出外部命令E_CMD的主机或控制器可以在从主机或控制器输出外部命令E_CMD的时间点处,提前预测由命令解码器250生成构成内部命令信号I_CMD的第一内部命令信号至第四内部命令信号的时间点。
地址锁存器260可以将从接收驱动器230输出的输入地址I_ADDR转换为存储体选择信号BK_S和行/列地址ADDR_R/ADDR_C,以输出存储体选择信号BK_S和行/列地址ADDR_R/ADDR_C。存储体选择信号BK_S可以被输入至MAC命令生成器270。行/列地址ADDR_R/ADDR_C可以被发送至第一存储体211和第二存储体212。可以通过存储体选择信号BK_S来选择第一存储体211和第二存储体212中的一个。存储体选择信号可以用于选择储存区域,并且因此存储体选择信号可以被称为储存区域选择信号。可以通过行/列地址ADDR_R/ADDR_C来选择包括在选中的存储体中的一行和包括在选中的存储体中的一列。在一个实施例中,存储体选择信号BK_S被输入至MAC命令生成器270的时间点可以与行/列地址ADDR_R/ADDR_C被输入至第一存储体211和第二存储体212的时间点相同。在一个实施例中,存储体选择信号BK_S被输入至MAC命令生成器270的时间点和行/列地址ADDR_R/ADDR_C被输入至第一存储体211和第二存储体212的时间点可以是生成MAC命令以从第一存储体211和第二存储体212中读取出数据以用于MAC算术运算的时间点。
MAC命令生成器270可以响应于从命令解码器250输出的内部命令信号I_CMD和从地址锁存器260输出的存储体选择信号BK_S而输出MAC命令信号MAC_CMD。如图4所示,从MAC命令生成器270输出的MAC命令信号MAC_CMD可以包括第一MAC命令信号至第七MAC命令信号。在一个实施例中,第一MAC命令信号可以是MAC激活信号RACTV,第二MAC命令信号可以是第一MAC读取信号MAC_RD_BK0,第三MAC命令信号可以是第二MAC读取信号MAC_RD_BK1,第四MAC命令信号可以是第一MAC输入锁存信号MAC_L1,第五MAC命令信号可以是第二MAC输入锁存信号MAC_L2,第六MAC命令信号可以是MAC输出锁存信号MAC_L3,第七MAC命令信号可以是MAC结果锁存信号MAC_L_RST。
可以基于从命令解码器250输出的存储器激活信号ACT_M来生成MAC激活信号RACTV。可以响应于从命令解码器250输出的存储器读取信号READ_M和从地址锁存器260输出的具有第一电平(例如,逻辑“低”电平)的存储体选择信号BK_S来生成第一MAC读取信号MAC_RD_BK0。第一MAC输入锁存信号MAC_L1可以在从生成第一MAC读取信号MAC_RD_BK0的时间点起经过一定时间之后的时间点处生成。对于各种实施例,一定时间是指固定的持续时间。可以响应于从命令解码器250输出的存储器读取信号READ_M和从地址锁存器260输出的具有第二电平(例如,逻辑“高”电平)的存储体选择信号BK_S来生成第二MAC读取信号MAC_RD_BK1。第二MAC输入锁存信号MAC_L2可以在从生成第二MAC读取信号MAC_RD_BK1的时间点起经过一定时间之后的时间点处生成。可以响应于从命令解码器250输出的MAC算术信号MAC来生成MAC输出锁存信号MAC_L3。最后,可以响应于从命令解码器250输出的结果读取信号READ_RST来生成MAC结果锁存信号MAC_L_RST。
从MAC命令生成器270输出的MAC激活信号RACTV可以控制针对第一存储体211和第二存储体212的激活操作。从MAC命令生成器270输出的第一MAC读取信号MAC_RD_BK0可以控制针对第一存储体211的数据读取操作。从MAC命令生成器270输出的第二MAC读取信号MAC_RD_BK1可以控制针对第二存储体212的数据读取操作。从MAC命令生成器270输出的第一MAC输入锁存信号MAC_L1和第二MAC输入锁存信号MAC_L2可以控制第一MAC运算器(MAC0)220的输入数据锁存操作。从MAC命令生成器270输出的MAC输出锁存信号MAC_L3可以控制第一MAC运算器(MAC0)220的输出数据锁存操作。从MAC命令生成器270输出的MAC结果锁存信号MAC_L_RST可以控制第一MAC运算器(MAC0)220的复位操作。
如上所述,为了执行PIM器件200的确定性MAC算术运算,从命令解码器250输出的存储器激活信号ACT_M、存储器读取信号READ_M、MAC算术信号MAC和结果读取信号READ_RST可以分别在预定的时间点(或时钟)顺序生成。因此,MAC激活信号RACTV、第一MAC读取信号MAC_RD_BK0、第二MAC读取信号MAC_RD_BK1、第一MAC输入锁存信号MAC_L1、第二MAC输入锁存信号MAC_L2、MAC输出锁存信号MAC_L3和MAC结果锁存信号MAC_L_RST也可以分别在将外部命令E_CMD输入至PIM器件200之后的预定时间点处从MAC命令生成器270生成并输出。即,可以预先确定从第一存储体211和第二存储体212被MAC激活信号RACTV激活的时间点直到第一MAC运算器(MAC0)220被MAC结果锁存信号MAC_L_RST复位的时间点的时间段,并且因此PIM器件200可以执行确定性MAC算术运算。
图5图示了包括在图3所示的PIM器件200中的MAC命令生成器270的配置的示例。参考图5,MAC命令生成器270可以从命令解码器250顺序地接收存储器激活信号ACT_M、存储器读取信号READ_M、MAC算术信号MAC以及结果读取信号READ_RST。另外,MAC命令生成器270还可以从地址锁存器260接收存储体选择信号BK_S。MAC命令生成器270可以以一定的时间间隔串行输出MAC激活信号RACTV、第一MAC读取信号MAC_RD_BK0、第二MAC读取信号MAC_RD_BK1、第一MAC输入锁存信号MAC_L1、第二MAC输入锁存信号MAC_L2、MAC输出锁存信号MAC_L3以及MAC结果锁存信号MAC_L_RST。对于一个实施例,一定的时间间隔是具有固定持续时间的时间间隔。
在一个实施例中,MAC命令生成器270可以被配置为包括激活信号生成器271、延迟电路272、反相器273以及第一与门至第四与门274、275、276和277。激活信号生成器271可以接收存储器激活信号ACT_M以生成并输出MAC激活信号RACTV。从激活信号生成器271输出的MAC激活信号RACTV可以被发送至第一存储体211和第二存储体212以激活第一存储体211和第二存储体212。延迟电路272可以接收存储器读取信号READ_M,并且可以将存储器读取信号READ_M延迟延迟时间DELAY_T,以输出存储器读取信号READ_M的延迟信号。反相器273可以接收存储体选择信号BK_S,并且可以将存储体选择信号BK_S的逻辑电平反相以输出存储体选择信号BK_S的反相信号。
第一与门274可以接收存储器读取信号READ_M和反相器273的输出信号,并且可以对存储器读取信号READ_M和反相器273的输出信号执行逻辑与运算,以生成并输出第一MAC读取信号MAC_RD_BK0。第二与门275可以接收存储器读取信号READ_M和存储体选择信号BK_S,并且可以对存储器读取信号READ_M和存储体选择信号BK_S执行逻辑与运算,以生成并输出第二MAC读取信号MAC_RD_BK1。第三与门276可以接收延迟电路272的输出信号和反相器273的输出信号,并且可以对延迟电路272的输出信号和反相器273的输出信号执行逻辑与运算,以生成并输出第一MAC输入锁存信号MAC_L1。第四与门277可以接收延迟电路272的输出信号和存储体选择信号BK_S,并且可以对延迟电路272的输出信号和存储体选择信号BK_S执行逻辑与运算,以生成并输出第二MAC输入锁存信号MAC_L2。
可以假设被输入至MAC命令生成器270的存储器读取信号READ_M具有逻辑“高”电平,并且被输入至MAC命令生成器270的存储体选择信号BK_S具有逻辑“低”电平。在经过一定时间之后,存储体选择信号BK_S的电平可以从逻辑“低”电平改变为逻辑“高”电平。当存储器读取信号READ_M具有逻辑“高”电平并且存储体选择信号BK_S具有逻辑“低”电平时,第一与门274可以输出具有逻辑“高”电平的第一MAC读取信号MAC_RD_BK0,并且第二与门275可以输出具有逻辑“低”电平的第二MAC读取信号MAC_RD_BK1。第一存储体211可以根据基于具有逻辑“高”电平的第一MAC读取信号MAC_RD_BK0的控制操作而将第一数据DA1发送至第一MAC运算器220。如果发生存储体选择信号BK_S的电平转变,使得存储器读取信号READ_M和存储体选择信号BK_S都具有逻辑“高”电平,则第一与门274可以输出具有逻辑“低”电平的第一MAC读取信号MAC_RD_BK0,并且第二与门275可以输出具有逻辑“高”电平的第二MAC读取信号MAC_RD_BK1。第二存储体212可以根据基于具有逻辑“高”电平的第二MAC读取信号MAC_RD_BK1的控制操作而将第二数据DA2发送至第一MAC运算器220。
由于延迟电路272的延迟时间,在生成第一MAC读取信号MAC_RD_BK0和第二MAC读取信号MAC_RD_BK1之后,可以生成第三与门276和第四与门277的输出信号。因此,在生成第二MAC读取信号MAC_RD_BK1之后,第三与门276可以输出具有逻辑“高”电平的第一MAC输入锁存信号MAC_L1。第一MAC运算器220可以响应于具有逻辑“高”电平的第一MAC输入锁存信号MAC_L1来锁存第一数据DA1。从由第一MAC运算器220锁存第一数据DA1的时间点起经过一定时间之后,第四与门277可以输出具有逻辑“高”电平的第二MAC输入锁存信号MAC_L2。第一MAC运算器220可以响应于具有逻辑“高”电平的第二MAC输入锁存信号MAC_L2来锁存第二数据DA2。在第一数据DA1和第二数据DA2被锁存之后,第一MAC运算器220可以开始执行MAC算术运算。
MAC命令生成器270可以响应于从命令解码器250输出的MAC算术信号MAC来生成MAC输出锁存信号MAC_L3。MAC输出锁存信号MAC_L3可以具有与MAC算术信号MAC相同的逻辑电平。例如,如果具有逻辑“高”电平的MAC算术信号MAC被输入至MAC命令生成器270,则MAC命令生成器270可以生成具有逻辑“高”电平的MAC输出锁存信号MAC_L3。MAC命令生成器270可以响应于从命令解码器250输出的结果读取信号READ_RST来生成MAC结果锁存信号MAC_L_RST。MAC结果锁存信号MAC_L_RST可以具有与结果读取信号READ_RST相同的逻辑电平。例如,如果具有逻辑“高”电平的结果读取信号READ_RST被输入至MAC命令生成器270,则MAC命令生成器270可以生成具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST。
图6图示了图5中所示的MAC命令生成器270的沿着时间轴的输入信号和输出信号。在图6中,从命令解码器250发送至MAC命令生成器270的信号在上方的虚线框中示出,并且从MAC命令生成器270输出的信号在下方的虚线框中示出。参考图5和图6,在时间轴的第一时间点“T1”处,存储器激活信号ACT_M可以被输入至MAC命令生成器270,并且MAC命令生成器270可以输出MAC激活信号RACTV。在从第一时间点“T1”起经过一定时间(例如,第一等待时间L1)的第二时间点“T2”处,具有逻辑“高”电平的存储器读取信号READ_M和具有逻辑“低”电平的存储体选择信号BK_S可以被输入至MAC命令生成器270。响应于具有逻辑“高”电平的存储器读取信号READ_M和具有逻辑“低”电平的存储体选择信号BK_S,MAC命令生成器270可以输出具有逻辑“高”电平的第一MAC读取信号MAC_RD_BK0,并且响应于具有逻辑“高”电平的存储器读取信号READ_M和具有逻辑“低”电平的存储体选择信号BK_S,MAC命令生成器270可以输出具有逻辑“低”电平的第二MAC读取信号MAC_RD_BK1,如参照图5所述的。在从第二时间点“T2”起经过一定时间的第三时间点“T3”处,存储体选择信号BK_S的逻辑电平可以从逻辑“低”电平改变为逻辑“高”电平。在这种情况下,MAC命令生成器270可以输出具有逻辑“低”电平的第一MAC读取信号MAC_RD_BK0和具有逻辑“高”电平的第二MAC读取信号MAC_RD_BK1,如参考图5所述的。
在从第二时间点“T2”起经过延迟时间DELAY_T的第四时间点“T4”处,MAC命令生成器270可以输出具有逻辑“高”电平的第一MAC输入锁存信号MAC_L1和具有逻辑“低”电平的第二MAC输入锁存信号MAC_L2。延迟时间DELAY_T可以由延迟电路272设定。延迟时间DELAY_T可以根据延迟电路272的逻辑设计方案而被设定为不同,并且一旦确定了延迟电路272的逻辑设计方案,延迟时间DELAY_T就可以被固定。在一个实施例中,延迟时间DELAY_T可以被设定为等于或大于第二等待时间L2。在从第四时间点“T4”起经过一定时间之后的第五时间点“T5”处,MAC命令生成器270可以输出具有逻辑“低”电平的第一MAC输入锁存信号MAC_L1和具有逻辑“高”电平的第二MAC输入锁存信号MAC_L2。第五时间点“T5”可以是从第三时间点“T3”起经过延迟时间DELAY_T的时刻。
在从第四时间点“T4”起经过一定时间(例如,第三等待时间L3)的第六时间点“T6”处,具有逻辑“高”电平的MAC算术信号MAC可以被输入至MAC命令生成器270。响应于具有逻辑“高”电平的MAC算术信号MAC,MAC命令生成器270可以输出具有逻辑“高”电平的MAC输出锁存信号MAC_L3,如参照图5所述的。随后,在从第六时间点“T6”起经过一定时间(例如,第四等待时间L4)的第七时间点“T7”处,具有逻辑“高”电平的结果读取信号READ_RST被输入至MAC命令生成器270。响应于具有逻辑“高”电平的结果读取信号READ_RST,MAC命令生成器270可以输出具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST,如参照图5所述的。
为了执行确定性MAC算术运算,由命令解码器250生成的内部命令信号ACT_M、READ_M、MAC和READ_RST被输入至MAC命令生成器270的时刻可以被固定,并且响应于内部命令信号ACT_M、READ_M、MAC和READ_RST而从MAC命令生成器270输出MAC命令信号RACTV、MAC_RD_BK0、MAC_RD_BK1、MAC_L1、MAC_L2、MAC_L3和MAC_L_RST的时刻也可以被固定。因此,在第一时间点“T1”与第二时间点“T2”之间的第一等待时间L1、在第二时间点“T2”与第四时间点“T4”之间的第二等待时间L2、在第四时间点“T4”与第六时间点“T6”之间的第三等待时间L3以及在第六时间点“T6”与第七时间点“T7”之间的第四等待时间L4都可以具有固定值。
在一个实施例中,第一等待时间L1可以被定义为基于MAC激活信号RACTV来激活第一存储体和第二存储体二者所花费的时间。第二等待时间L2可以被定义为基于第一MAC读取信号MAC_RD_BK0和第二MAC读取信号MAC_RD_BK1从第一存储体BK0和第二存储体BK1中读取第一数据和第二数据并且将第一数据DA1和第二数据DA2输入到第一MAC运算器(MAC0)220中所花费的时间。第三等待时间L3可以被定义为基于第一MAC输入锁存信号MAC_L1和第二MAC输入锁存信号MAC_L2将第一数据DA1和第二数据DA2锁存至第一MAC运算器(MAC0)中所花费的以及第一MAC运算器(MAC0)220执行第一数据和第二数据的MAC算术运算所花费的时间。第四等待时间L4可以被定义为基于MAC输出锁存信号MAC_L3将输出数据锁存至第一MAC运算器(MAC0)220中所花费的时间。
图7图示了包括在图3中所示的PIM器件200中的第一MAC运算器(MAC0)220的配置的示例。参考图7,第一MAC运算器(MAC0)220可以被配置为包括数据输入电路221、MAC电路222和数据输出电路223。数据输入电路221可以被配置为包括第一输入锁存器221-1和第二输入锁存器221-2。MAC电路222可以被配置为包括乘法逻辑电路222-1和加法逻辑电路222-2。数据输出电路223可以被配置为包括输出锁存器223-1、传输门223-2、延迟电路223-3和反相器223-4。在一个实施例中,可以利用触发器来实现第一输入锁存器221-1、第二输入锁存器221-2和输出锁存器223-1。
第一MAC运算器(MAC0)220的数据输入电路221可以与第一MAC输入锁存信号MAC_L1和第二MAC输入锁存信号MAC_L2同步,以将经由GIO线290输入的第一数据DA1和第二数据DA2输出至MAC电路222。具体地,响应于从MAC命令生成器(图3的270)输出的具有逻辑“高”电平的第一MAC读取信号MAC_RD_BK0,第一数据DA1可以经由GIO线290从第一存储体BK0(图3的211)发送至数据输入电路221的第一输入锁存器221-1。响应于从MAC命令生成器270输出的具有逻辑“高”电平的第二MAC读取信号MAC_RD_BK1,第二数据DA2可以经由GIO线290从第二存储体BK1(图2的212)发送至数据输入电路221的第二输入锁存器221-2。第一输入锁存器221-1可以同步于从MAC命令生成器270(图3的270)输出的具有逻辑“高”电平的第一MAC输入锁存信号MAC_L1来将第一数据DA1输出至MAC电路222。第二输入锁存器221-2可以同步于从MAC命令生成器(图3的270)输出的具有逻辑“高”电平的第二MAC输入锁存信号MAC_L2来将第二数据DA2输出至MAC电路222。如参照图5所述的,可以在从生成第一MAC输入锁存信号MAC_L1的时刻(对应于图6的第四时间点“T4”)起经过一定时间的时刻(对应于图6的第五时间点“T5”)处生成第二MAC输入锁存信号MAC_L2。因此,在第一数据DA1被输入至MAC电路222之后,第二数据DA2可以被输入至MAC电路222。
MAC电路222可以对第一数据DA1和第二数据DA2执行相乘计算和累加计算。MAC电路222的乘法逻辑电路222-1可以包括多个乘法器222-11。多个乘法器222-11中的每一个可以对从第一输入锁存器221-1输出的第一数据DA1和从第二输入锁存器221-2输出的第二数据DA2执行相乘计算,并且可以输出相乘计算的结果。构成第一数据DA1的比特位值可以被分别输入至乘法器222-11。类似地,构成第二数据DA2的比特位值也可以被分别输入至乘法器222-11。例如,如果第一数据DA1和第二数据DA2中的每一个均由“N”比特位二进制流构成,并且乘法器222-11的数量为“M”,则具有“N/M”比特位的第一数据DA1和具有“N/M”比特位的第二数据DA2可以被输入至乘法器222-11中的每一个。即,乘法器222-11中的每一个可以被配置为对第一“N/M”比特位数据和第二“N/M”比特位数据执行相乘计算。从乘法器222-11中的每一个输出的乘法结果数据可以具有“2N/M”比特位。
MAC电路222的加法逻辑电路222-2可以包括多个加法器222-21。尽管在附图中未示出,但是多个加法器222-21可以被设置为提供包括多个级的树结构。设置在第一级处的每个加法器222-21可以从包括在乘法逻辑电路222-1中的两个乘法器222-11接收两组乘法结果数据,并且可以对两组乘法结果数据执行相加计算,以输出加法结果数据。设置在第二级处的每个加法器222-21可以从设置在第一级处的两个加法器222-21接收两组加法结果数据,并且可以对两组加法结果数据执行相加计算,以输出加法结果数据。设置在最后一级处的加法器222-21可以从设置在前一级处的两个加法器222-21接收两组加法结果数据,并且可以对两组加法结果数据执行相加计算,以输出加法结果数据。构成加法逻辑电路222-2的加法器222-21可以包括加法器,该加法器用于对从设置在最后一级处的加法器222-21输出的加法结果数据与储存在数据输出电路223的输出锁存器223-1中的先前MAC结果数据执行累加计算。
数据输出电路223可以将从MAC电路222输出的MAC结果数据DA_MAC输出至GIO线290。具体地,数据输出电路223的输出锁存器223-1可以锁存从MAC电路222输出的MAC结果数据DA_MAC,并且可以同步于从MAC命令生成器(图3的270)输出的具有逻辑“高”电平的MAC输出锁存信号MAC_L3来输出MAC结果数据DA_MAC的锁存数据。从输出锁存器223-1输出的MAC结果数据DA_MAC可以被反馈到用于累加计算的MAC电路222。另外,MAC结果数据DA_MAC可以被输入至传输门223-2,并且传输门223-2可以将MAC结果数据DA_MAC输出至GIO线290。如果将锁存器复位信号LATCH_RST输入至输出锁存器223-1,则输出锁存器223-1可以被初始化。在这种情况下,可以去除由输出锁存器223-1锁存的所有数据。在一个实施例中,锁存器复位信号LATCH_RST可以通过生成具有逻辑“高”电平的MAC结果锁存器信号MAC_L_RST而被激活,并且可以被输入至输出锁存器223-1。
从MAC命令生成器270输出的MAC结果锁存信号MAC_L_RST可以被输入至传输门223-2、延迟电路223-3和反相器223-4。反相器223-4可以反相缓冲MAC结果锁存信号MAC_L_RST,以将MAC结果锁存信号MAC_L_RST的反相缓冲信号输出至传输门223-2。传输门223-2可以响应于具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST而将MAC结果数据DA_MAC从输出锁存器223-1传输到GIO线290。延迟电路223-3可以将MAC结果锁存信号MAC_L_RST延迟一定时间,以生成并输出锁存控制信号PINSTB。
图8至图14是图示图3中所示的PIM器件200的操作的框图。在图8至图14中,与图3中所使用的相同的附图标号或相同的附图标记表示相同的元件。首先,参考图8,如果请求MAC算术运算的外部命令E_CMD和输入地址I_ADDR从外部器件发送至接收驱动器230,则接收驱动器230可以将外部命令E_CMD和输入地址I_ADDR分别输出至命令解码器250和地址锁存器260。命令解码器250可以对外部命令E_CMD进行解码,以生成存储器激活信号ACT_M并将其发送至MAC命令生成器270。接收输入地址I_ADDR的地址锁存器260可以生成存储体选择信号BK_S并将其发送至MAC命令生成器270。MAC命令生成器270可以响应于存储器激活信号ACT_M和存储体选择信号BK_S来生成并输出MAC激活信号RACTV。MAC激活信号RACTV可以被发送至第一存储体(BK0)211和第二存储体(BK1)212。第一存储体(BK0)211和第二存储体(BK1)212可以通过MAC激活信号RACTV而被激活。
接下来,参考图9,命令解码器250可以生成具有逻辑“高(H)”电平的存储器读取信号READ_M并将其输出至MAC命令生成器270。另外,地址锁存器260可以生成具有逻辑“低(L)”电平的存储体选择信号BK_S并将其输出至MAC命令生成器270。响应于具有逻辑“高(H)”电平的存储器读取信号READ_M和具有逻辑“低(L)”电平的存储体选择信号BK_S,MAC命令生成器270可以生成并输出具有逻辑“高(H)”电平的第一MAC读取信号MAC_RD_BK0和具有逻辑“低(L)”电平的第二MAC读取信号MAC_RD_BK1,如参照图4所述的。具有逻辑“高(H)”电平的第一MAC读取信号MAC_RD_BK0可以与行/列地址ADDR_R/ADDR_C一起被发送至第一存储体(BK0)211。具有逻辑“低(L)”电平的第二MAC读取信号MAC_RD_BK1可以与行/列地址ADDR_R/ADDR_C一起被发送至第二存储体(BK1)212。第一数据DA1可以通过具有逻辑“高(H)”电平的第一MAC读取信号MAC_RD_BK0而被从第一存储体(BK0)211中读取出,并且可以经由GIO线290被发送至第一MAC运算器(MAC0)220。
接下来,参考图10,在存储器读取信号READ_M保持逻辑“高(H)”电平的情况下,存储体选择信号BK_S的逻辑电平可以从逻辑“低(L)”电平改变为逻辑“高(H)”电平。在这种情况下,如参照图5所述的,MAC命令生成器270可以生成并输出具有逻辑“低(L)”电平的第一MAC读取信号MAC_RD_BK0和具有逻辑“高(H)”电平的第二MAC读取信号MAC_RD_BK1。具有逻辑“低(L)”电平的第一MAC读取信号MAC_RD_BK0可以与行/列地址ADDR_R/ADDR_C一起被发送至第一存储体(BK0)211。具有逻辑“高(H)”电平的第二MAC读取信号MAC_RD_BK1可以与行/列地址ADDR_R/ADDR_C一起被发送至第二存储体(BK1)212。第二数据DA2可以通过具有逻辑“高(H)”电平的第二MAC读取信号MAC_RD_BK1而被从第二存储体(BK1)212中读取出,并且可以经由GIO线290被发送至第一MAC运算器(MAC0)220。
接下来,参考图11,从命令解码器250发送至MAC命令生成器270的存储器读取信号READ_M的逻辑电平可以从逻辑“高(H)”电平改变为逻辑“低(L)”电平。另外,从地址锁存器260发送至MAC命令生成器270的存储体选择信号BK_S的逻辑电平可以从逻辑“高(H)”电平改变为逻辑“低(L)”电平。在这种情况下,MAC命令生成器270可以生成并输出具有逻辑“高(H)”电平的第一MAC输入锁存信号MAC_L1和具有逻辑“低(L)”电平的第二MAC输入锁存信号MAC_L2。从MAC命令生成器270输出具有逻辑“高(H)”电平的第一MAC输入锁存信号MAC_L1和具有逻辑“低(L)”电平的第二MAC输入锁存信号MAC_L2的时间点可以通过延迟电路(图4的271)的延迟时间来确定,如参照图5所述的。从MAC命令生成器270输出的具有逻辑“高(H)”电平的第一MAC输入锁存信号MAC_L1和具有逻辑“低(L)”电平的第二MAC输入锁存信号MAC_L2可以被发送至第一MAC运算器(MAC0)220。如参照图7所述的,第一MAC运算器(MAC0)220可以执行第一数据DA1的锁存操作。
接下来,参考图12,在存储器读取信号READ_M保持逻辑“低(L)”电平的情况下,从地址锁存器260发送至MAC命令生成器270的存储体选择信号BK_S的逻辑电平可以从逻辑“低(L)”电平改变为逻辑“高(H)”电平。在这种情况下,MAC命令生成器270可以生成并输出具有逻辑“低(L)”电平的第一MAC输入锁存信号MAC_L1和具有逻辑“高(H)”电平的第二MAC输入锁存信号MAC_L2。从MAC命令生成器270输出具有逻辑“低(L)”电平的第一MAC输入锁存信号MAC_L1和具有逻辑“高(H)”电平的第二MAC输入锁存信号MAC_L2的时间点可以由延迟电路(图5的271)的延迟时间来确定,如参照图5所述的。从MAC命令生成器270输出的具有逻辑“低(L)”电平的第一MAC输入锁存信号MAC_L1和具有逻辑“高(H)”电平的第二MAC输入锁存信号MAC_L2可以被发送至第一MAC运算器(MAC0)220。如参考图7所述的,第一MAC运算器(MAC0)220可以执行第二数据DA2的锁存操作。在第一数据DA1和第二数据DA2的锁存操作终止之后,第一MAC运算器(MAC0)220可以执行MAC算术运算并且可以生成MAC结果数据DA_MAC。由第一MAC运算器(MAC0)220生成的MAC结果数据DA_MAC可以被输入至包括在第一MAC运算器(MAC0)220中的输出锁存器223-1。
接下来,参考图13,命令解码器250可以将具有逻辑“高(H)”电平的MAC算术信号MAC输出并发送至MAC命令生成器270。MAC命令生成器270可以响应于具有逻辑“高(H)”电平的MAC算术信号MAC而生成并输出具有逻辑“高”电平的MAC输出锁存信号MAC_L3。具有逻辑“高”电平的MAC输出锁存信号MAC_L3可以被发送至第一MAC运算器(MAC0)220。如参照图7所述的,第一MAC运算器(MAC0)220的输出锁存器(图7的223-1)可以与具有逻辑“高”电平的MAC输出锁存信号MAC_L3同步,以将从第一MAC运算器(MAC0)220的MAC电路222输出的MAC结果数据DA_MAC传输至第一MAC运算器(MAC0)220的传输门(图7的233-2)。从输出锁存器(图7的223-1)输出的MAC结果数据DA_MAC可以被反馈到用于累加计算的加法逻辑电路(图7的222-2)。
接下来,参考图14,命令解码器250可以将具有逻辑“高(H)”电平的结果读取信号READ_RST输出并发送至MAC命令生成器270。MAC命令生成器270可以响应于具有逻辑“高(H)”电平的结果读取信号READ_RST来生成并输出具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST。具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST可以被发送至第一MAC运算器(MAC0)220。如参照图7所述的,第一MAC运算器(MAC0)220可以响应于具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST而将MAC结果数据DA_MAC输出至GIO线290,并且还可以响应于具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST而将包括在第一MAC运算器(MAC0)220中的输出锁存器(图6的223-1)复位。发送至GIO线290的MAC结果数据DA_MAC可以经由串行器/解串行器280和数据I/O电路240输出至外部器件。
图15是图示图3中所示的PIM器件200的操作的时序图。参考图15,在第一时间点“T1”处,MAC命令生成器270可以与时钟信号CLK的下降沿同步,以生成并输出具有逻辑“高(H)”电平的第一MAC读取信号MAC_RD_BK0(R1)。第一存储体(BK0)211可以通过具有逻辑“高(H)”电平的第一MAC读取信号MAC_RD_BK0(R1)来选择,使得第一数据DA1被从第一存储体(BK0)211中读取出。在第二时间点“T2”处,MAC命令生成器270可以与时钟信号CLK的下降沿同步,以生成并输出具有逻辑“高(H)”电平的第二MAC读取信号MAC_RD_BK1(R2)。第二存储体(BK1)212可以通过具有逻辑“高(H)”电平的第二MAC读取信号MAC_RD_BK1(R2)来选择,使得第二数据DA2被从第二存储体(BK1)212中读取出。在第三时间点“T3”处,MAC命令生成器270可以与时钟信号CLK的下降沿同步,以生成并输出具有逻辑“高(H)”电平的MAC算术信号MAC。第一MAC运算器(MAC0)220可以响应于具有逻辑“高(H)”电平的MAC算术信号MAC而对第一数据DA1和第二数据DA2执行相乘计算和相加计算,以生成MAC结果数据DA_MAC。在第四时间点“T4”处,MAC命令生成器270可以与时钟信号CLK的下降沿同步,以生成并输出具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST(RST)。由第一MAC运算器(MAC0)220生成的MAC结果数据DA_MAC可以通过具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST(RST)而被发送至GIO线290。
图16是图示根据本公开的实施例的PIM器件300的另一配置的框图,并且图17图示了从PIM器件300的命令解码器350输出的内部命令信号I_CMD和从PIM器件300的MAC命令生成器370输出的MAC命令信号MAC_CMD。图16仅图示了构成多个MAC单元中的第一MAC单元的第一存储体(BK0)311、第二存储体(BK1)312和第一MAC运算器(MAC0)320。然而,为了简化附图,图16仅示出了一个示例。因此,对于第一MAC单元的以下描述可以等同地适用于其余MAC单元。
参考图16,PIM器件300可以被配置为包括第一存储体(BK0)311、第二存储体(BK1)312和第一MAC运算器(MAC0)320。根据本实施例的PIM器件300可以包括用作数据传输线的GIO线390、第一存储体输入/输出(BIO)线391和第二BIO线392。第一存储体(BK0)311、第二存储体(BK1)312和第一MAC运算器(MAC0)320的数据通信可以经由GIO线390来实现。仅第一存储体(BK0)311与第一MAC运算器(MAC0)320之间的数据传输可以经由第一BIO线391来实现,并且仅第二存储体(BK1)312与第一MAC运算器(MAC0)320之间的数据传输可以经由第二BIO线392来实现。因此,第一MAC运算器(MAC0)320可以分别经由第一BIO线391和第二BIO线392直接从第一存储体311和第二存储体312(BK0和BK1)接收第一数据和第二数据,而无需利用GIO线390。
PIM器件300还可以包括接收驱动器(RX)330、数据I/O电路(DQ)340、命令解码器350、地址锁存器360、MAC命令生成器370和串行器/解串行器(SER/DES)380。命令解码器350、地址锁存器360、MAC命令生成器370和串行器/解串行器380可以被设置在图2中所示的PIM器件100的外围电路PERI中。接收驱动器330可以从外部器件接收外部命令E_CMD和输入地址I_ADDR。外部器件可以表示耦接到PIM器件300的主机或控制器。在下文中,可以假设发送至PIM器件300的外部命令E_CMD是请求MAC算术运算的命令。即,PIM器件300可以响应于外部命令E_CMD而执行确定性MAC算术运算。数据I/O电路340可以包括数据I/O焊盘。数据I/O焊盘可以与数据I/O线耦接。PIM器件300经由数据I/O电路340与外部器件通信。
接收驱动器330可以分别输出从外部器件接收的外部命令E_CMD和输入地址I_ADDR。经由数据I/O电路340输入至PIM器件300的数据DA可以由串行器/解串行器380处理,并且可以经由PIM器件300的GIO线390发送至第一存储体(BK0)311和第二存储体(BK1)312。经由GIO线390从第一存储体(BK0)311、第二存储体(BK1)312和第一MAC运算器(MAC0)320输出的数据DA可以通过串行器/解串行器380处理,并且可以经由数据I/O电路340输出至外部器件。如果数据DA是串行数据,则串行器/解串行器380可以将数据DA转换为并行数据,或者如果数据DA是并行数据,则串行化器/解串行器380可以将数据DA转换为串行数据。对于数据转换,串行器/解串行器380可以包括用于将并行数据转换为串行数据的串行器和用于将串行数据转换为并行数据的解串行器。
命令解码器350可以对从接收驱动器330输出的外部命令E_CMD进行解码,以生成并输出内部命令信号I_CMD。如图7中所示,从命令解码器350输出的内部命令信号I_CMD可以包括第一内部命令信号至第三内部命令信号。在一个实施例中,第一内部命令信号可以是存储器激活信号ACT_M,第二内部命令信号可以是MAC算术信号MAC,并且第三内部命令信号可以是结果读取信号READ_RST。从命令解码器350输出的第一内部命令信号至第三内部命令信号可以被顺序地输入至MAC命令生成器370。
为了执行PIM器件300的确定性MAC算术运算,从命令解码器350输出的存储激活信号ACT_M、MAC算术信号MAC和结果读取信号READ_RST可以在预定的时间点(或者时钟)处被顺序地生成。在一个实施例中,存储器激活信号ACT_M、MAC算术信号MAC和结果读取信号READ_RST可以分别具有预定的等待时间。例如,MAC算术信号MAC可以在从生成存储器激活信号ACT_M的时间点起经过第一等待时间之后生成,并且结果读取信号READ_RST可以在从生成MAC算术信号MAC的时间点起经过第三等待时间之后生成。直到从生成结果读取信号READ_RST的时间点起经过第四等待时间为止,命令解码器350才生成信号。第一等待时间至第四等待时间可以是预定的并且是固定的。因此,输出外部命令E_CMD的主机或控制器可以在从主机或控制器输出外部命令E_CMD的时间点处,提前预测由命令解码器350生成的构成内部命令信号I_CMD的第一内部命令信号至第三内部命令信号的时间点。即,即使在从PIM器件300没有接收到任何信号的情况下,主机或控制器也可以在请求MAC算术运算的外部命令E_CMD从主机或控制器发送至PIM器件300之后,预测PIM器件300中MAC算术运算终止的时间点(或时钟)。
地址锁存器360可以将从接收驱动器330输出的输入地址I_ADDR转换为行/列地址ADDR_R/ADDR_C,以输出行/列地址ADDR_R/ADDR_C。从地址锁存器360输出的行/列地址ADDR_R/ADDR_C可以被发送至第一存储体311和第二存储体312。根据本实施例,可以分别从第一存储体311和第二存储体312(BK0和BK1)中同时读取出要用于MAC算术运算的第一数据和第二数据。因此,可能不必要生成用于选择第一存储体311和第二存储体312中的任何一个的存储体选择信号。在一个实施例中,行/列地址ADDR_R/ADDR_C被输入至第一存储体311和第二存储体312的时间点可以是生成针对MAC算术运算请求用于第一存储体311和第二存储体312的数据读取操作的MAC命令(即,MAC算术信号MAC)的时间点。
MAC命令生成器370可以响应于从命令解码器350输出的内部命令信号I_CMD而输出MAC命令信号MAC_CMD。如图16所示,从MAC命令生成器370输出的MAC命令信号MAC_CMD可以包括第一MAC命令信号至第五MAC命令信号。在一个实施例中,第一MAC命令信号可以是MAC激活信号RACTV,第二MAC命令信号可以是MAC读取信号MAC_RD_BK,第三MAC命令信号可以是MAC输入锁存信号MAC_L1,第四MAC命令信号可以是MAC输出锁存信号MAC_L3,并且第五MAC命令信号可以是MAC结果锁存信号MAC_L_RST。
MAC激活信号RACTV可以基于从命令解码器350输出的存储器激活信号ACT_M来生成。可以基于从命令解码器350输出的MAC算术信号MAC来顺序地生成MAC读取信号MAC_RD_BK、MAC输入锁存信号MAC_L1、MAC输出锁存信号MAC_L3和MAC结果锁存信号MAC_L_RST。即,可以在从生成MAC读取信号MAC_RD_BK的时间点起经过一定时间之后的时间点处生成MAC输入锁存信号MAC_L1。可以在从生成MAC输入锁存信号MAC_L1的时间点起经过一定时间之后的时间点处生成MAC输出锁存信号MAC_L3。最后,可以基于从命令解码器350输出的结果读取信号READ_RST来生成MAC结果锁存信号MAC_L_RST。
从MAC命令生成器370输出的MAC激活信号RACTV可以控制针对第一存储体311和第二存储体312的激活操作。从MAC命令生成器370输出的MAC读取信号MAC_RD_BK可以控制针对第一存储体311和第二存储体312的数据读取操作。从MAC命令生成器370输出的MAC输入锁存信号MAC_L1可以控制第一MAC运算器(MAC0)320的输入数据锁存操作。从MAC命令生成器370输出的MAC输出锁存信号MAC_L3可以控制第一MAC运算器(MAC0)320的输出数据锁存操作。从MAC命令生成器370输出的MAC结果锁存信号MAC_L_RST可以控制第一MAC运算器(MAC0)320的MAC结果数据的输出操作和第一MAC运算器(MAC0)320的复位操作。
如上所述,为了执行PIM器件300的确定性MAC算术运算,从命令解码器350输出的存储器激活信号ACT_M、MAC算术信号MAC和结果读取信号READ_RST可以分别在预定的时间点(或时钟)处被顺序地生成。因此,也可以在外部命令E_CMD被输入至PIM器件300之后的预定点处分别生成并输出MAC激活信号RACTV、MAC读取信号MAC_RD_BK、MAC输入锁存信号MAC_L1、MAC输出锁存信号MAC_L3和MAC结果锁存信号MAC_L_RST。即,在从第一存储体311和第二存储体312由MAC激活信号RACTV激活的时间点起直到第一MAC运算器(MAC0)320由MAC结果锁存器信号MAC_L_RST复位的时间点的时间段可以是预定的。
图18图示出了包括在图16中所示的PIM器件300中的MAC命令生成器370的配置的示例。参考图18,MAC命令生成器370可以从命令解码器350顺序地接收存储器激活信号ACT_M、MAC算术信号MAC和结果读取信号READ_RST。另外,MAC命令生成器370可以顺序地生成并输出MAC激活信号RACTV、MAC读取信号MAC_RD_BK、MAC输入锁存信号MAC_L1、MAC输出锁存信号MAC_L3和MAC结果锁存信号MAC_L_RST。MAC激活信号RACTV、MAC读取信号MAC_RD_BK、MAC输入锁存信号MAC_L1、MAC输出锁存信号MAC_L3和MAC结果锁存信号MAC_L_RST可以以一定时间间隔串行输出。
在一个实施例中,MAC命令生成器370可以被配置为包括激活信号生成器371、第一延迟电路372和第二延迟电路373。激活信号生成器371可以接收存储器激活信号ACT_M以生成并输出MAC激活信号RACTV。从激活信号生成器371输出的MAC激活信号RACTV可以被发送至第一存储体311和第二存储体312,以激活第一存储体311和第二存储体312。MAC命令生成器370可以接收从命令解码器350输出的MAC算术信号MAC,以将MAC算术信号MAC作为MAC读取信号MAC_RD_BK输出。第一延迟电路372可以接收MAC算术信号MAC,并且可以将MAC算术信号MAC延迟第一延迟时间DELAY_T1,以生成并输出MAC输入锁存信号MAC_L1。第二延迟电路373可以接收第一延迟电路372的输出信号,并且可以将第一延迟电路372的输出信号延迟第二延迟时间DELAY_T2,以生成并输出MAC输出锁存信号MAC_L3。MAC命令生成器370可以响应于从命令解码器350输出的结果读取信号READ_RST来生成MAC结果锁存信号MAC_L_RST。
MAC命令生成器370可以响应于从命令解码器350输出的存储器激活信号ACT_M来生成并输出MAC激活信号RACTV。随后,MAC命令生成器370可以响应于从命令解码器350输出的MAC算术信号MAC来生成并输出MAC读取信号MAC_RD_BK。MAC算术信号MAC可以被输入至第一延迟电路372。MAC命令生成器370可以将MAC算术信号MAC延迟由第一延迟电路372确定的特定时间,以生成并输出第一延迟电路372的输出信号作为MAC输入锁存信号MAC_L1。第一延迟电路372的输出信号可以被输入至第二延迟电路373。MAC命令生成器370可以将MAC输入锁存信号MAC_L1延迟由第二延迟电路373确定的一定时间,以生成并输出第二延迟电路373的输出信号作为MAC输出锁存信号MAC_L3。随后,MAC命令生成器370可以响应于从命令解码器350输出的结果读取信号READ_RST来生成并输出MAC结果锁存信号MAC_L_RST。
图19图示了图18中所示的MAC命令生成器370的沿着时间轴的输入信号和输出信号。在图19中,从命令解码器350发送至MAC命令生成器370的信号在上方的虚线框中示出,并且从MAC命令生成器370输出的信号在下方的虚线框中示出。参考图18和图19,在时间轴的第一时间点“T1”处,存储器激活信号ACT_M可以被输入至MAC命令生成器370,并且MAC命令生成器370可以输出MAC激活信号RACTV。在从第一时间点“T1”起经过一定时间(例如,第一等待时间L1)之后的第二时间点“T2”处,具有逻辑“高”电平的MAC算术信号MAC被输入至MAC命令生成器370。响应于具有逻辑“高”电平的MAC算术信号MAC,MAC命令生成器370可以输出具有逻辑“高”电平的MAC读取信号MAC_RD_BK。在从第二时间点“T2”起经过一定时间之后的第三时间点“T3”处,MAC算术信号MAC的逻辑电平可以从逻辑“高”电平改变为逻辑“低”电平。
在从第二时间点“T2”起经过第一延迟时间DELAY_T1之后的第三时间点“T3”处,MAC命令生成器370可以输出具有逻辑“高”电平的MAC输入锁存信号MAC_L1。第一延迟时间DELAY_T1可以对应于由图18中所示的第一延迟电路372确定的延迟时间。第一延迟时间DELAY_T1可以根据第一延迟电路372的逻辑设计方案而被设定为不同。在一个实施例中,第一延迟时间DELAY_T1可以被设定为等于或大于第二等待时间L2。在从第三时间点“T3”起经过一定时间之后的第四时间点“T4”处,MAC命令生成器370可以输出具有逻辑“高”电平的MAC输出锁存信号MAC_L3。第四时间点“T4”可以是从第三时间点“T3”起经过第二延迟时间DELAY_T2的时刻。第二延迟时间DELAY_T2可以对应于由图18中所示的第二延迟电路373确定的延迟时间。第二延迟时间DELAY_T2可以根据第二延迟电路373的逻辑设计方案而被设定为不同。在一个实施例中,第二延迟时间DELAY_T2可以被设定为等于或大于第三等待时间L3。在从第四时间点“T4”起经过一定时间(例如,第四等待时间L4)之后的第五时间点“T5”处,具有逻辑“高”电平的结果读取信号READ_RST可以被输入至MAC命令生成器370。响应于具有逻辑“高”电平的结果读取信号READ_RST,MAC命令生成器370可以输出具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST,如参照图18所述的。
为了执行确定性MAC算术运算,可以固定由命令解码器350生成的内部命令信号ACT_M、MAC和READ_RST被输入至MAC命令生成器370的时刻,以及也可以固定响应于内部命令信号ACT_M、MAC和READ_RST而从MAC命令生成器370输出MAC命令信号RACTV、MAC_RD_BK、MAC_L1、MAC_L3和MAC_L_RST的时刻。因此,在第一时间点“T1”与第二时间点“T2”之间的第一等待时间L1、在第二时间点“T2”与第三时间点“T3”之间的第二等待时间L2、在第三时间点“T3”与第四时间点“T4”之间的第三等待时间L3以及在第四时间点“T4”与第五时间点“T5”之间的第四等待时间L4都可以具有固定值。
在一个实施例中,第一等待时间L1可以被定义为基于MAC激活信号RACTV来激活第一存储体和第二存储体二者所花费的时间。第二等待时间L2可以被定义为基于MAC读取信号MAC_RD_BK而从第一存储体311和第二存储体312(BK0和BK1)中读取出第一数据和第二数据并且将第一数据DA1和第二数据DA2输入至第一MAC运算器(MAC0)320中所花费的时间。第三等待时间L3可以被定义为基于MAC输入锁存信号MAC_L1而将第一数据DA1和第二数据DA2锁存至第一MAC运算器(MAC0)320中所花费的以及第一MAC运算器(MAC0)320执行第一数据和第二数据的MAC算术运算所花费的时间。第四等待时间L4可以被定义为基于MAC输出锁存信号MAC_L3而将输出数据锁存至第一MAC运算器(MAC0)320中所花费的时间。
图20图示了包括在图16的PIM器件300中的第一MAC运算器(MAC0)320的配置的示例。包括在PIM器件300中的第一MAC运算器(MAC0)320可以具有与参照图7所述的第一MAC运算器(MAC0)220相同的配置,除了施加至构成数据输入电路321的第一输入锁存器321-1和第二输入锁存器321-2的时钟端子上的信号之外。因此,在图20中,与图7中所使用的相同的附图标号或相同的附图标记表示相同的元件,并且在下文中将省略与参照图7所阐述的相同元件的描述。
详细描述在图7中所示的第一MAC运算器(MAC0)220的情况下,在第一MAC运算器(MAC0)220与第一MAC运算器(MAC0)320之间的差异,数据输入电路(图7的221)的第一输入锁存器(图7的221-1)和第二输入锁存器(图7的221-2)可以分别与以一定时间间隔顺序地生成的第一MAC输入锁存信号MAC_L1和第二MAC输入锁存信号MAC_L2同步,以输出第一数据DA1和第二数据DA2。相反,在第一MAC运算器(MAC0)320的情况下,可以将MAC输入锁存信号MAC_L1输入至构成数据输入电路321的第一输入锁存器321-1和第二输入锁存器321-2的两个时钟端子。因此,第一输入锁存器321-1和第二输入锁存器321-2二者都可以与MAC输入锁存器信号MAC_L1同步,以分别输出第一数据DA1和第二数据DA2。因此,第一MAC运算器(MAC0)320可以将第一数据DA1和第二数据DA2并行地发送至MAC电路222,而第一数据DA1与第二数据DA2之间没有任何时间间隔。结果,可以在没有任何数据输入时间的延迟的情况下快速地执行MAC电路222的MAC算术运算。
图21至图25是图示图16中所示的PIM器件300的操作的框图。在图21至图25中,与图16中所使用的相同的附图标号或相同的附图标记表示相同的元件。首先,参考图21,如果将请求MAC算术运算的外部命令E_CMD和输入地址I_ADDR从外部器件发送至接收驱动器330,则接收驱动器330可以将外部命令E_CMD和输入地址I_ADDR分别输出至命令解码器350和地址锁存器360。命令解码器350可以对外部命令E_CMD进行解码以生成存储器激活信号ACT_M并将其发送至MAC命令生成器370。MAC命令生成器370可以响应于存储器激活信号ACT_M来生成并输出MAC激活信号RACTV。MAC激活信号RACTV可以被发送至第一存储体(BK0)311和第二存储体(BK1)312。第一存储体(BK0)311和第二存储体(BK1)312二者都可以通过MAC激活信号RACTV而被激活。
接下来,参考图22,命令解码器350可以生成具有逻辑“高(H)”电平的MAC算术信号MAC并将其输出至MAC命令生成器370。响应于具有逻辑“高(H)”电平的MAC算术信号MAC,MAC命令生成器370可以生成并输出具有逻辑“高(H)”电平的MAC读取信号MAC_RD_BK。具有逻辑“高(H)”电平的MAC读取信号MAC_RD_BK可以与行/列地址ADDR_R/ADDR_C一起被发送至第一存储体(BK0)311和第二存储体(BK1)312。第一数据DA1可以通过具有逻辑“高(H)”电平的MAC读取信号MAC_RD_BK而从第一存储体(BK0)311中读取出,并且可以经由第一BIO线391发送至第一MAC运算器(MAC0)320。另外,第二数据DA2可以通过具有逻辑“高(H)”电平的MAC读取信号MAC_RD_BK而从第二存储体(BK1)312中读取出,并且可以经由第二BIO线392发送至第一MAC运算器(MAC0)320。
接下来,参考图23,从命令解码器350输出的MAC算术信号MAC的逻辑电平可以在从MAC命令生成器370输出MAC读取信号MAC_RD_BK的时间点起经过由第一延迟电路(图18的372)确定的时间第一延迟时间DELAY_T1的时间点处,从逻辑“高(H)”电平改变为逻辑“低(L)”电平。MAC命令生成器370可以响应于具有逻辑“低(L)”电平的MAC算术信号MAC来生成并输出具有逻辑“高(H)”电平的MAC输入锁存信号MAC_L1。具有逻辑“高(H)”电平的MAC输入锁存信号MAC_L1可以被发送至第一MAC运算器(MAC0)320。第一MAC运算器(MAC0)320可以与具有逻辑“高(H)”电平的MAC输入锁存信号MAC_L1同步,以执行从第一存储体311和第二存储体312(BK0和BK1)输出的第一数据DA1和第二数据DA2的锁存操作。如果第一数据DA1和第二数据DA2的锁存操作终止,则第一MAC运算器(MAC0)320可以执行MAC算术运算并且可以生成MAC结果数据DA_MAC。由第一MAC运算器(MAC0)320生成的MAC结果数据DA_MAC可以被输入至包括在第一MAC运算器(MAC0)320中的输出锁存器(图20的223-1)。
接下来,参考图24,从命令解码器350输出的MAC算术信号MAC的逻辑电平可以在从具有逻辑“高(H)”电平的MAC输入锁存信号MAC_L1被从MAC命令生成器370输出的时间点起经过由第二延迟电路(图18的373)确定的第二延迟时间DELAY_T2的时间点处,从逻辑“低(L)”电平改变为逻辑“高(H)”电平。MAC命令生成器370可以响应于具有逻辑“高(H)”电平的MAC算术信号MAC来生成并输出具有逻辑“高(H)”电平的MAC输出锁存信号MAC_L3。具有逻辑“高(H)”电平的MAC输出锁存信号MAC_L3可以被发送至第一MAC运算器(MAC0)320。包括在第一MAC运算器(MAC0)320中的输出锁存器(图20的223-1)可以与具有逻辑“高(H)”电平的MAC输出锁存器信号MAC_L3同步,以将由MAC电路(图20的222)生成的MAC结果数据DA_MAC传输至包括在第一MAC运算器(MAC0)320中的传输门(图20的223-2)。从输出锁存器(图20的223-1)输出的MAC结果数据DA_MAC可以被反馈到加法逻辑电路(图20的222-2),以用于由MAC电路(图20的222)执行的累加计算。
接下来,参考图25,命令解码器350可以将具有逻辑“高(H)”电平的结果读取信号READ_RST输出并发送至MAC命令生成器370。MAC命令生成器370可以响应于具有逻辑“高(H)”电平的结果读取信号READ_RST来生成并输出具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST。具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST可以被发送至第一MAC运算器(MAC0)320。如参照图20所述的,第一MAC运算器(MAC0)320可以响应于具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST而将MAC结果数据DA_MAC输出至GIO线390,并且还可以响应于具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST而将包括在第一MAC运算器(MAC0)320中的输出锁存器(图20的223-1)复位。发送至GIO线390的MAC结果数据DA_MAC可以通过串行器/解串行器380和数据I/O电路340输出至外部器件。尽管在附图中未示出,但是从第一MAC运算器(MAC0)320输出的MAC结果数据DA_MAC可以经由第一BIO线391被写入第一存储体(BK0)311中而不利用GIO线390或者可以经由第二BIO线392被写入第二存储体(BK1)312中而不利用GIO线390。
图26是图示图16中所示的PIM器件300的操作的时序图。参考图26,在第一时间点“T1”处,MAC命令生成器370可以与时钟信号CLK的下降沿同步,以生成并输出具有逻辑“高(H)”电平的MAC读取信号MAC_RD_BK(R)。第一存储体311和第二存储体312(BK0和BK1)可以通过具有逻辑“高(H)”电平的MAC读取信号MAC_RD_BK(R)来选择,从而从第一存储体311和第二存储体312(BK0和BK1)中读取出第一数据DA1和第二数据DA2。如果从读取出第一数据DA1和第二数据DA2的时间点起经过了一定时间,则第一MAC运算器(MAC0)320可以执行第一数据DA1和第二数据DA2的MAC算术运算以生成MAC结果数据DA_MAC。在第二时间点“T2”,MAC命令生成器370可以与时钟信号CLK的下降沿同步,以生成并输出具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST(RST)。MAC结果数据DA_MAC可以通过具有逻辑“高”电平的MAC结果锁存信号MAC_L_RST(RST)而被发送至GIO线390。
图27图示了根据本公开的另一个实施例的指示包括在PIM器件400中的存储体和MAC运算器的布置的设置结构。参考图27,PIM器件400可以包括诸如多个存储体(例如,第一存储体至第十六存储器BK0、……和BK15)的存储器件、诸如多个MAC运算器(例如,第一MAC运算器至第十六MAC运算器MAC0、……和MAC15)的处理器件以及全局缓冲器GB。核心电路可以被设置为与存储体BK0、……和BK15相邻。核心电路可以包括X解码器XDEC和Y解码器/IO电路YDEC/IO。存储体BK0、……和BK15以及核心电路可以具有与参考图2所述的相同的配置。因此,以下将省略对存储体BK0、……和BK15以及核心电路的描述。MAC运算器MAC0、……和MAC15可以被设置为分别分配给存储体BK0、……和BK15。即,在PIM器件400中,两个或更多个存储体彼此不共享一个MAC运算器。因此,包括在PIM器件400中的MAC运算器MAC0、……和MAC15的数量可以等于PIM器件400中包括的存储体BK0、……和BK15的数量。存储体BK0、……和BK15中的一个可以与MAC运算器MAC0、……和MAC15中的一个一起构成一个MAC单元。例如,第一存储体BK0和第一MAC运算器MAC0可以构成第一MAC单元,并且第二存储体BK1和第二MAC运算器MAC1可以构成第二MAC单元。类似地,第十六存储体BK15和第十六MAC运算器MAC15可以构成第十六MAC单元。在第一MAC单元至第十六MAC单元的每一个中,MAC运算器可以从相应的存储体接收要用于MAC算术运算的第一数据DA1。
PIM器件400还可以包括外围电路PERI。外围电路PERI可以设置在除了其中设置有存储体BK0、BK1、……和BK15、MAC运算器MAC0、……和MAC15以及核心电路的区域之外的区域。外围电路PERI可以被配置为包括与命令/地址信号有关的控制电路、与数据的输入/输出有关的控制电路以及电力供应电路。PIM器件400的外围电路PERI可以具有与图2所示的PIM器件100的外围电路PERI基本相同的配置。在PIM器件400的外围电路PERI与PIM器件100的外围电路PERI之间的区别在于,全局缓冲器GB被布置在PIM器件400的外围电路PERI中。全局缓冲器GB可以从外部器件接收要用于MAC运算的第二数据DA2,并且可以储存第二数据DA2。全局缓冲器GB可以经由GIO线将第二数据DA2输出至MAC运算器MAC0、……和MAC15中的每一个。在PIM器件400执行神经网络计算(例如,深度学习过程中的算术运算)的情况下,第一数据DA1可以是权重数据,并且第二数据DA2可以是矢量数据。
根据本实施例的PIM器件400可以在存储器模式或MAC算术模式下操作。在存储器模式下,PIM器件400可以工作以执行与通常存储器件相同的操作。存储器模式可以包括存储器读取操作模式和存储器写入操作模式。在存储器读取操作模式下,响应于外部请求,PIM器件400可以执行用于从存储体BK0、BK1、……和BK15读取出数据的读取操作以输出所读取的数据。在存储器写入操作模式下,PIM器件400可以响应于外部请求而执行用于将由外部器件提供的数据储存到存储体BK0、BK1、……和BK15中的写入操作。在MAC算术模式下,PIM器件400可以利用MAC运算器MAC0、……和MAC15来执行MAC算术运算。在PIM器件400中,可以以确定性方式执行MAC算术运算,并且下文将更全面地描述PIM器件400的确定性MAC算术运算。具体地,对于在MAC算术模式下的MAC算术运算,PIM器件400可以对存储体BK0、……以及BK15中的每一个执行第一数据DA1的读取操作以及对全局缓冲器GB执行第二数据DA2的读取操作。另外,MAC运算器MAC0、……和MAC15中的每一个可以执行第一数据DA1和第二数据DA2的MAC算术运算,以将MAC算术运算的结果储存到存储体中或者将MAC算术运算的结果输出至外部器件。在一些情况下,PIM器件400可以在以MAC算术模式执行用于MAC算术运算的数据读取操作之前,执行用于将要用于MAC算术运算的数据储存到存储体中的数据写入操作。
根据本实施例的PIM器件400的操作模式可以由从主机或控制器发送至PIM器件400的命令来确定。在一个实施例中,如果请求对存储体BK0、BK1、……和BK15进行读取操作或写入操作的第一外部命令被从主机或控制器发送至PIM器件400,则PIM器件400可以在存储器模式下执行数据读取操作或数据写入操作。可替换地,如果请求MAC算术运算的第二外部命令被从主机或控制器发送至PIM器件400,则PIM器件400可以执行数据读取操作和MAC算术运算。
PIM器件400可以执行确定性MAC算术运算。因此,主机或控制器可以总是从请求MAC算术运算的外部命令被从主机或控制器发送至PIM器件400的时间点来预测在PIM器件400中MAC算术运算终止的时间点(或时钟)。因为定时是可预测的,所以在PIM器件400执行确定性MAC算术运算的情况下,不需要用于通知主机或控制器MAC算术运算的状态的操作。在一个实施例中,在PIM器件400中执行MAC算术运算的等待时间可以被设定为用于确定性MAC算术运算的固定值。
图28是图示与图27中所示的PIM器件400相对应的PIM器件500的详细配置的示例的框图。图28仅示出了构成多个MAC单元中的第一MAC单元的第一存储体(BK0)511和第一MAC运算器(MAC0)520。然而,为了简化附图,图28仅示出了一个示例。因此,对于第一MAC单元的以下描述可以等同地适用于其余MAC单元。参考图28,PIM器件500可以被配置为包括构成第一MAC单元的第一存储体(BK0)511和第一MAC运算器(MAC0)520以及全局缓冲器595。PIM器件500还可以包括用作数据传输线的GIO线590和BIO线591。第一存储体(BK0)511和第一MAC运算器(MAC0)520可以经由GIO线590与全局缓冲器595通信。仅第一存储体(BK0)511与第一MAC运算器(MAC0)520之间的数据传输可以经由BIO线591来实现。BIO线591专用于第一存储体(BK0)511与第一MAC运算器(MAC0)520之间的数据传输。因此,第一MAC运算器(MAC0)520可以经由BIO线591从第一存储体(BK0)511接收要用于MAC算术运算的第一数据DA1,并且可以经由GIO线590从全局缓冲器595接收要用于MAC算术运算的第二数据DA2。
PIM器件500可以包括接收驱动器(RX)530、数据I/O电路(DQ)540、命令解码器550、地址锁存器560、MAC命令生成器570和串行器/解串行器(SER/DES)580。命令解码器550、地址锁存器560、MAC命令生成器570和串行器/解串行器580可以被设置在图27中所示的PIM器件400的外围电路PERI中。接收驱动器530可以从外部器件接收外部命令E_CMD和输入地址I_ADDR。外部器件可以表示耦接到PIM器件500的主机或控制器。在下文中,可以假设发送至PIM器件500的外部命令E_CMD是请求MAC算术运算的命令。即,PIM器件500可以响应于外部命令E_CMD而执行确定性MAC算术运算。数据I/O电路540可以提供PIM器件500与外部器件进行通信的装置。
接收驱动器530可以分别输出从外部器件接收到的外部命令E_CMD和输入地址I_ADDR。经由数据I/O电路540输入至PIM器件500的数据DA可以由串行器/解串行器580处理,并且可以通过PIM器件500的GIO线590发送至第一存储体(BK0)511和全局缓冲器595。经由GIO线590从第一存储体(BK0)511和第一MAC运算器(MAC0)520输出的数据DA可以由串行器/解串行器580处理,并且可以经由数据I/O电路540输出至外部器件。如果数据DA是串行数据,则串行器/解串行器580可以将数据DA转换为并行数据,或者如果数据DA是并行数据,则串行化器/解串行器580可以将数据DA转换为串行数据。对于数据转换,串行器/解串行器580可以包括将并行数据转换为串行数据的串行器和将串行数据转换为并行数据的解串行器。
命令解码器550可以对从接收驱动器530输出的外部命令E_CMD进行解码,以生成并输出内部命令信号I_CMD。从命令解码器550输出的内部命令信号I_CMD可以与参照图17所述的内部命令信号I_CMD相同。即,内部命令信号I_CMD可以包括:与存储器激活信号ACT_M相对应的第一内部命令信号、与MAC算术信号MAC相对应的第二内部命令信号以及与结果读取信号READ_RST相对应的第三内部命令信号。从命令解码器550输出的第一内部命令信号至第三内部命令信号可以被顺序地输入至MAC命令生成器570。如参照图17所述的,从命令解码器550输出的存储器激活信号ACT_M、MAC算术信号MAC和结果读取信号READ_RST可以在预定的时间点(或时钟)处顺序地生成,以便执行PIM器件500的确定性MAC算术运算。因此,输出外部命令E_CMD的主机或控制器可以在从主机或控制器输出外部命令E_CMD的时间点处提前预测由命令解码器550生成的构成内部命令信号I_CMD的第一内部命令信号至第三内部命令信号时的时间点。即,即使在从PIM器件500没有接收任何信号的情况下,在请求MAC算术运算的外部命令E_CMD被从主机或控制器发送至PIM器件500之后,主机或控制器可以预测PIM器件500中MAC算术运算终止的时间点(或时钟)。
地址锁存器560可以将从接收驱动器530输出的输入地址I_ADDR转换为行/列地址ADDR_R/ADDR_C,以输出行/列地址ADDR_R/ADDR_C。从地址锁存器560输出的行/列地址ADDR_R/ADDR_C可以被发送至第一存储体(BK0)511。根据本实施例,可以分别从第一存储体(BK0)511和全局缓冲器595中同时读取出要用于MAC算术运算的第一数据和第二数据。因此,可能不必要生成用于选择第一存储体511的存储体选择信号。行/列地址ADDR_R/ADDR_C被输入至第一存储体511时的时间点可以是针对MAC算术运算请求用于第一存储体511的数据读取操作的MAC命令(即,MAC算术信号MAC)的时间点。
MAC命令生成器570可以响应于从命令解码器550输出的内部命令信号I_CMD而输出MAC命令信号MAC_CMD。从MAC命令生成器570输出的MAC命令信号MAC_CMD可以与参考图17所述的MAC命令信号MAC_CMD相同。即,从MAC命令生成器570输出的MAC命令信号MAC_CMD可以包括:与第一MAC命令信号相对应的MAC激活信号RACTV、与第二MAC命令信号相对应的MAC读取信号MAC_RD_BK、与第三MAC命令信号相对应的MAC输入锁存信号MAC_L1、与第四MAC命令信号相对应的MAC输出锁存信号MAC_L3以及与第五MAC命令信号相对应的MAC结果锁存信号MAC_L_RST。
MAC激活信号RACTV可以基于从命令解码器550输出的存储器激活信号ACT_M来生成。可以基于从命令解码器550输出的MAC算术信号MAC来顺序地生成MAC读取信号MAC_RD_BK、MAC输入锁存信号MAC_L1、MAC输出锁存信号MAC_L3和MAC结果锁存信号MAC_L_RST。即,可以在从生成MAC读取信号MAC_RD_BK的时间点起经过一定时间之后的时间点处生成MAC输入锁存信号MAC_L1。可以在从生成MAC输入锁存信号MAC_L1的时间点起经过一定时间之后的时间点处生成MAC输出锁存信号MAC_L3。最后,可以基于从命令解码器550输出的结果读取信号READ_RST来生成MAC结果锁存信号MAC_L_RST。
从MAC命令生成器570输出的MAC激活信号RACTV可以控制针对第一存储体511的激活操作。从MAC命令生成器570输出的MAC读取信号MAC_RD_BK可以控制用于第一存储体511和全局缓冲器595的数据读取操作。从MAC命令生成器570输出的MAC输入锁存信号MAC_L1可以控制第一MAC运算器(MAC0)520的输入数据锁存操作。从MAC命令生成器570输出的MAC输出锁存信号MAC_L3可以控制第一MAC运算器(MAC0)520的输出数据锁存操作。从MAC命令生成器570输出的MAC结果锁存信号MAC_L_RST可以控制第一MAC运算器(MAC0)520的MAC结果数据的输出操作和第一MAC运算器(MAC0)520的复位操作。
如上所述,为了执行PIM器件500的确定性MAC算术运算,从命令解码器550输出的存储器激活信号ACT_M、MAC算术信号MAC和结果读取信号READ_RST可以分别在预定的时间点(或时钟)处顺序地生成。因此,也可以在将外部命令E_CMD输入至PIM器件500之后的预定时间点处,从MAC命令生成器570分别生成并输出MAC激活信号RACTV、MAC读取信号MAC_RD_BK、MAC输入锁存信号MAC_L1、MAC输出锁存信号MAC_L3和MAC结果锁存信号MAC_L_RST。即,从第一存储体511通过MAC激活信号RACTV而被激活的时间点直到第一MAC运算器(MAC0)520通过MAC结果锁存信号MAC_L_RST被复位的时间点为止的时间段可以被预先确定。
根据本实施例的PIM器件500的MAC命令生成器570可以具有与参照图18所述的相同的配置。另外,MAC命令生成器570的输入信号和输出信号可以在与参照图19所述的相同时间点处被输入至MAC命令生成器570和从MAC命令生成器570输出。如参照图18和图19所述,MAC命令生成器570可以从命令解码器550顺序地接收存储器激活信号ACT_M、MAC算术信号MAC以及结果读取信号READ_RST。另外,MAC命令生成器570可以顺序地生成并输出MAC激活信号RACTV、MAC读取信号MAC_RD_BK、MAC输入锁存信号MAC_L1、MAC输出锁存信号MAC_L3和MAC结果锁存信号MAC_L_RST。MAC激活信号RACTV、MAC读取信号MAC_RD_BK、MAC输入锁存信号MAC_L1、MAC输出锁存信号MAC_L3和MAC结果锁存信号MAC_L_RST可以以一定的时间间隔从MAC命令生成器570串行输出。
MAC命令生成器570可以响应于从命令解码器550输出的存储器激活信号ACT_M来生成并输出MAC激活信号RACTV。随后,MAC命令生成器570可以响应于从命令解码器550输出的MAC算术信号MAC来生成并输出MAC读取信号MAC_RD_BK。MAC命令生成器570可以将MAC算术信号MAC延迟由第一延迟电路(图18的372)确定的一定时间,以生成并输出MAC输入锁存信号MAC_L1。MAC命令生成器570可以将MAC输入锁存信号MAC_L1延迟由第二延迟电路(图18的373)确定的一定时间,以生成并输出MAC输出锁存信号MAC_L3。随后,MAC命令生成器570可以响应于从命令解码器550输出的结果读取信号READ_RST来生成并输出MAC结果锁存信号MAC_L_RST。
图29是图示图28中所示的PIM器件500的操作的框图。在图29中,与图16中所使用的相同的附图标号或相同的附图标记表示相同的元件。根据本实施例的PIM器件500的操作可以类似于参照图16所述的PIM器件300的操作,除了输入至第一MAC运算器(MAC0)520的第一数据DA1和第二数据DA2的发送处理之外。因此,在第一数据DA1和第二数据DA2被发送至第一MAC运算器(MAC0)520之前执行的PIM器件500的操作可以与参照图21所述的PIM器件300的操作相同。如图29所示,当具有逻辑“高(H)”电平的MAC算术信号MAC从命令解码器550被发送至MAC命令生成器570时,MAC命令生成器570可以生成并输出具有逻辑“高(H)”电平的MAC读取信号MAC_RD_BK。具有逻辑“高(H)”电平的MAC读取信号MAC_RD_BK可以与行/列地址ADDR_R/ADDR_C一起被发送至第一存储体(BK0)511。在这种情况下,全局缓冲器读取信号B_R也可以被发送至全局缓冲器595。第一数据DA1可以通过具有逻辑“高(H)”电平的MAC读取信号MAC_RD_BK而被从第一存储体(BK0)511中读取出,并且可以经由BIO线591被发送至第一MAC运算器(MAC0)520。另外,第二数据DA2可以通过全局缓冲器读取信号B_R而被从全局缓冲器595中读取出,并且可以经由GIO线590发送至第一MAC运算器(MAC0)520。在将第一数据DA1和第二数据DA2发送至第一MAC运算器(MAC0)520之后执行的PIM器件500的操作可以与参考图23至图25所述的PIM器件300的操作相同。
图30是图示图28中所示的PIM器件500的操作的时序图。参考图30,在第一时间点“T1”处,MAC命令生成器570可以与时钟信号CLK的下降沿同步,以生成并输出具有逻辑“高(H)”电平的MAC读取信号MAC_RD_BK(MAC)。第一存储体(BK0)511可以通过具有逻辑“高(H)”电平的MAC读取信号MAC_RD_BK(MAC)来选择,从而从第一存储体(BK0)511中读取出第一数据DA1。另外,可以从全局缓冲器595中读取出第二数据DA2。如果从第一存储体(BK0)511和全局缓冲器595中读取出第一数据DA1和第二数据DA2的时间点起经过一定时间,则第一MAC运算器(MAC0)520可以执行第一数据DA1和第二数据DA2的MAC算术运算,以生成MAC结果数据DA_MAC。在第二时间点“T2”处,MAC命令生成器570可以与时钟信号CLK的下降沿同步,以生成并输出MAC结果锁存信号MAC_L_RST(RST)。MAC结果数据DA_MAC可以通过MAC结果锁存信号MAC_L_RST(RST)经由GIO线590发送至外部器件或者经由BIO线591发送至第一存储体(BK0)511。
出于说明性目的,以上已经给出了本教导的有限数量的可能实施例。本领域普通技术人员将理解的是,各种修改、添加和替换是可能的。尽管该专利文件包括许多细节,但是这些细节不应被解释为对本教导的范围或可要求保护的范围的限制,而应被解释为对特定实施例而言特定的特征的描述。在单独的实施例的上下文中本专利文件所描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。此外,尽管以上可以将特征描述为以某些组合起作用并且甚至最初如此声称,但是在某些情况下可以从组合中去除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变型。
Claims (64)
1.一种存储器内处理器件,包括:
多个储存区域,其被配置为包括第一组储存区域和第二组储存区域;以及
多个MAC运算器,其被配置为经由GIO线与所述第一组储存区域和所述第二组储存区域进行通信,MAC指乘法/累加,GIO指全局数据输入/输出,
其中,与所述第一组储存区域中的一个储存区域相对应的第一储存区域、与所述第二组储存区域中的一个储存区域相对应的第二储存区域以及与所述多个MAC运算器中的一个MAC运算器相对应的第一MAC运算器构成一个MAC单元,以及
其中,所述第一MAC运算器被配置为经由所述GIO线分别从所述第一储存区域和所述第二储存区域接收第一数据和第二数据,以对所述第一数据和所述第二数据执行MAC算术运算并且输出所述MAC算术运算的结果。
2.根据权利要求1所述的存储器内处理器件,
其中,所述第一组储存区域包括所述多个储存区域之中的奇数储存区域,
其中,所述第二组储存区域包括所述多个储存区域之中的偶数储存区域,以及
其中,所述第一储存区域和所述第二储存区域被设置为在列中彼此相邻,并且分别对应于所述奇数储存区域中的一个和所述偶数储存区域中的一个。
3.根据权利要求1所述的存储器内处理器件,其中,在所述第一组储存区域中的储存区域的数量、在所述第二组储存区域中的储存区域的数量以及所述多个MAC运算器的数量彼此相等。
4.根据权利要求1所述的存储器内处理器件,其中,所述存储器内处理器件被配置为经由所述GIO线顺序地发送从所述第一储存区域输出的所述第一数据和从所述第二储存区域输出的所述第二数据。
5.根据权利要求1所述的存储器内处理器件,其中,所述存储器内处理器件被配置为响应于请求MAC计算的外部命令而在预定的固定时间期间执行作为确定性MAC算术运算的所述MAC算术运算。
6.根据权利要求1所述的存储器内处理器件,还包括:
命令解码器,其被配置为响应于请求MAC计算的外部命令而生成第一内部命令信号、第二内部命令信号和第三内部命令信号;以及
MAC命令生成器,其被配置为响应于所述第一内部命令信号、所述第二内部命令信号和所述第三内部命令信号而生成并输出第一MAC命令信号、第二MAC命令信号、第三MAC命令信号、第四MAC命令信号、第五MAC命令信号和第六MAC命令信号。
7.根据权利要求6所述的存储器内处理器件,其中,所述命令解码器被配置为利用固定的时间间隔来顺序地输出所述第一内部命令信号、所述第二内部命令信号和所述第三内部命令信号。
8.根据权利要求7所述的存储器内处理器件,其中,所述MAC命令生成器被配置为:
响应于所述第一内部命令信号而生成所述第一MAC命令信号;
响应于所述第二内部命令信号而生成所述第二MAC命令信号、所述第三MAC命令信号、所述第四MAC命令信号和所述第五MAC命令信号;以及
响应于所述第三内部命令信号而生成所述第六MAC命令信号。
9.根据权利要求7所述的存储器内处理器件,
其中,所述第一MAC命令信号是用于激活包括在所述MAC单元中的所述第一储存区域和所述第二储存区域的控制信号,
其中,所述第二MAC命令信号是用于从包括在所述MAC单元中的所述第一储存区域中读取出所述第一数据的控制信号,
其中,所述第三MAC命令信号是用于从包括在所述MAC单元中的所述第二储存区域中读取出所述第二数据的控制信号,
其中,所述第四MAC命令信号是用于将所述第一数据锁存至所述第一MAC运算器中的控制信号,
其中,所述第五MAC命令信号是用于将所述第二数据锁存至所述第一MAC运算器中的控制信号,以及
其中,所述第六MAC命令信号是用于锁存所述第一MAC运算器的MAC结果数据的控制信号。
10.根据权利要求7所述的存储器内处理器件,其中,所述命令解码器被配置为在从所述命令解码器输出所述第三内部命令信号的时间点起经过预定的固定时间之后,输出第四内部命令信号。
11.根据权利要求10所述的存储器内处理器件,其中,所述MAC命令生成器被配置为响应于所述第四内部命令信号而生成第七MAC命令信号。
12.根据权利要求11所述的存储器内处理器件,其中,所述第七MAC命令信号是用于以下操作的控制信号:
从所述第一MAC运算器输出MAC结果数据;以及
将包括在所述第一MAC运算器中的输出锁存器复位。
13.根据权利要求6所述的存储器内处理器件,其中,所述MAC命令生成器包括:
激活信号生成器,其被配置为接收所述第一内部命令信号和储存区域选择信号,以生成并输出用于激活包括在所述MAC单元中的所述第一储存区域和所述第二储存区域的所述第一MAC命令信号;
延迟电路,其被配置为将所述第二内部命令信号延迟固定时间,以输出所述第二内部命令信号的延迟信号;
反相器,其被配置为将所述储存区域选择信号的逻辑电平反相以输出所述储存区域选择信号的反相信号;
第一与门,其被配置为对所述第二内部命令信号和所述反相器的输出信号执行逻辑与运算,以生成并输出用于从所述第一储存区域读取出所述第一数据的所述第二MAC命令信号;
第二与门,其被配置为对所述第二内部命令信号和所述储存区域选择信号执行逻辑与运算,以生成并输出用于从所述第二储存区域读取出所述第二数据的所述第三MAC命令信号;
第三与门,其被配置为对所述延迟电路的输出信号和所述反相器的输出信号执行逻辑与运算,以生成并输出用于将所述第一数据锁存至所述第一MAC运算器中的所述第四MAC命令信号;以及
第四与门,其被配置为对所述延迟电路的输出信号和所述储存区域选择信号执行逻辑与运算,以生成并输出用于将所述第二数据锁存至所述第一MAC运算器中的所述第五MAC命令信号;
其中,所述MAC命令生成器被配置为响应于所述第三内部命令信号而生成并输出用于锁存所述第一MAC运算器的MAC结果数据的所述第六MAC命令信号。
14.根据权利要求13所述的存储器内处理器件,其中,所述命令解码器被配置为:
在第一时间点处输出所述第一内部命令信号;
在从所述第一时间点起经过第一等待时间之后的第二时间点处输出具有逻辑“高”电平的所述第二内部命令信号和具有逻辑“低”电平的所述储存区域选择信号;
在从所述第二时间点起经过第二等待时间之后的第四时间点处将所述第二内部命令信号的逻辑电平从逻辑“高”电平改变为逻辑“低”电平;以及
在从所述第四时间点起经过第三等待时间之后的第六时间点处输出具有逻辑“高”电平的所述第三内部命令信号。
15.根据权利要求14所述的存储器内处理器件,
其中,所述第一等待时间是基于所述第一MAC命令信号来激活所述第一储存区域和所述第二储存区域两者所花费的时间,
其中,所述第二等待时间是基于所述第二MAC命令信号和所述第三MAC命令信号来分别从所述第一储存区域和所述第二储存区域读取出所述第一数据和所述第二数据并将所述第一数据和所述第二数据输入至所述第一MAC运算器中所花费的时间,以及
其中,所述第三等待时间是基于所述第四MAC命令信号和所述第五MAC命令信号来将所述第一数据和所述第二数据锁存至所述第一MAC运算器中所花费的以及所述第一MAC运算器对被锁存的第一数据和第二数据执行所述MAC算术运算所花费的时间。
16.根据权利要求15所述的存储器内处理器件,其中,所述第二等待时间等于由包括在所述MAC命令生成器中的所述延迟电路确定的延迟时间。
17.根据权利要求13所述的存储器内处理器件,其中,所述第一MAC运算器包括:
数据输入电路,其被配置为分别从所述第一储存区域和所述第二储存区域接收所述第一数据和所述第二数据,并且被配置为同步于所述第四MAC命令信号和所述第五MAC命令信号来锁存所述第一数据和所述第二数据;
MAC电路,其被配置为接收由所述数据输入电路锁存的所述第一数据和所述第二数据,并且被配置为对所述第一数据和所述第二数据执行所述MAC算术运算,以生成并输出MAC结果数据;以及
数据输出电路,其包括输出锁存器,所述输出锁存器被配置为从所述MAC电路接收所述MAC结果数据,并且同步于所述第六MAC命令信号来锁存所述MAC结果数据。
18.根据权利要求17所述的存储器内处理器件,其中,所述数据输出电路还包括传输门,所述传输门被配置为将所述MAC结果数据输出至所述GIO线。
19.根据权利要求18所述的存储器内处理器件,
其中,所述命令解码器被配置为在从所述命令解码器输出所述第三内部命令信号的时间点起经过预定的固定时间之后,输出第四内部命令信号,
其中,所述MAC命令生成器被配置为响应于所述第四内部命令信号而生成第七MAC命令信号,以及
其中,所述传输门被配置为同步于所述第七MAC命令信号来输出所述MAC结果数据。
20.根据权利要求19所述的存储器内处理器件,其中,所述第一MAC运算器的所述数据输出电路被配置为同步于所述第七MAC命令信号来将所述输出锁存器复位。
21.一种存储器内处理器件,包括:
多个储存区域,其被配置为包括第一组储存区域和第二组储存区域;以及
多个MAC运算器,其被配置为经由第一BIO线与所述第一组储存区域进行通信,并且被配置为经由第二BIO线与所述第二组储存区域进行通信,MAC指乘法/累加,BIO指存储体输入/输出,
其中,与所述第一组储存区域中的一个储存区域相对应的第一储存区域、与所述第二组储存区域中的一个储存区域相对应的第二储存区域以及与所述多个MAC运算器中的一个MAC运算器相对应的第一MAC运算器构成一个MAC单元,以及
其中,所述第一MAC运算器被配置为经由所述第一BIO线从所述第一储存区域接收第一数据,并且经由所述第二BIO线从所述第二储存区域接收第二数据,并且所述第一MAC运算器被配置为对所述第一数据和所述第二数据执行MAC算术运算,以输出所述MAC算术运算的结果。
22.根据权利要求21所述的存储器内处理器件,
其中,所述第一组储存区域包括所述多个储存区域之中的奇数储存区域,
其中,所述第二组储存区域包括所述多个储存区域之中的偶数储存区域,以及
其中,所述第一储存区域和所述第二储存区域被设置为在列中彼此相邻,并且分别对应于所述奇数储存区域中的一个和所述偶数储存区域中的一个。
23.根据权利要求21所述的存储器内处理器件,其中,在所述第一组储存区域中的储存区域的数量、在所述第二组储存区域中的储存区域的数量以及所述MAC运算器的数量彼此相等。
24.根据权利要求21所述的存储器内处理器件,其中,所述存储器内处理器件被配置为分别经由所述第一BIO线和所述第二BIO线顺序地发送从所述第一储存区域输出的所述第一数据和从所述第二储存区域输出的所述第二数据。
25.根据权利要求21所述的存储器内处理器件,其中,所述存储器内处理器件被配置为响应于请求MAC计算的外部命令而在预定的固定时间期间执行作为确定性MAC算术运算的所述MAC算术运算。
26.根据权利要求21所述的存储器内处理器件,还包括:
命令解码器,其被配置为响应于请求MAC计算的外部命令而生成第一内部命令信号和第二内部命令信号;以及
MAC命令生成器,其被配置为响应于所述第一内部命令信号和所述第二内部命令信号而生成并输出第一MAC命令信号、第二MAC命令信号、第三MAC命令信号和第四MAC命令信号。
27.根据权利要求26所述的存储器内处理器件,其中,所述命令解码器被配置为以固定的时间间隔来顺序地输出所述第一内部命令信号和所述第二内部命令信号。
28.根据权利要求27所述的存储器内处理器件,其中,所述MAC命令生成器被配置为:
响应于第一内部命令信号而生成所述第一MAC命令信号;以及
响应于所述第二内部命令信号而生成所述第二MAC命令信号、所述第三MAC命令信号和所述第四MAC命令信号。
29.根据权利要求27所述的存储器内处理器件,
其中,所述第一MAC命令信号是用于激活包括在所述MAC单元中的所述第一储存区域和所述第二储存区域的控制信号,
其中,所述第二MAC命令信号是用于从包括在所述MAC单元中的所述第一储存区域和所述第二储存区域中读取出所述第一数据和所述第二数据的控制信号,
其中,所述第三MAC命令信号是用于将所述第一数据和所述第二数据锁存至所述第一MAC运算器中的控制信号,以及
其中,所述第四MAC命令信号是用于锁存所述第一MAC运算器的MAC结果数据的控制信号。
30.根据权利要求27所述的存储器内处理器件,其中,所述命令解码器被配置为在从所述命令解码器输出所述第二内部命令信号的时间点起经过预定的固定时间之后,输出第三内部命令信号。
31.根据权利要求30所述的存储器内处理器件,其中,所述MAC命令生成器被配置为响应于所述第三内部命令信号而生成第五MAC命令信号。
32.根据权利要求31所述的存储器内处理器件,其中,所述第五MAC命令信号是用于以下操作的控制信号:
从所述第一MAC运算器输出MAC结果数据;以及
将包括在所述第一MAC运算器中的输出锁存器复位。
33.根据权利要求26所述的存储器内处理器件,其中,所述MAC命令生成器包括:
激活信号生成器,其被配置为接收所述第一内部命令信号,以生成并输出用于激活包括在所述MAC单元中的所述第一储存区域和所述第二储存区域的所述第一MAC命令信号;
第一延迟电路,其被配置为将所述第二内部命令信号延迟第一延迟时间,以输出用于锁存被发送至所述第一MAC运算器的所述第一数据和所述第二数据;以及
第二延迟电路,其被配置为将所述第一延迟电路的输出信号延迟第二延迟时间,以输出用于锁存所述第一MAC运算器的MAC结果数据的所述第四MAC命令信号;
其中,所述MAC命令生成器被配置为响应于所述第二内部命令信号而生成用于从所述第一储存区域和所述第二储存区域读取出所述第一数据和所述第二数据的所述第二MAC命令信号。
34.根据权利要求33所述的存储器内处理器件,其中,所述命令解码器被配置为:
在第一时间点处输出所述第一内部命令信号;
在从所述第一时间点起经过第一等待时间之后的第二时间点处输出具有逻辑“高”电平的所述第二内部命令信号;
在从所述第二时间点起经过第二等待时间之后的第三时间点处将所述第二内部命令信号的逻辑电平从逻辑“高”电平改变为逻辑“低”电平;以及
在从所述第三时间点起经过第三等待时间之后的第四时间点处将所述第二内部命令信号的逻辑电平从逻辑“低”电平改变为逻辑“高”电平。
35.根据权利要求34所述的存储器内处理器件,
其中,所述第一等待时间是基于所述第一MAC命令信号来激活所述第一储存区域和所述第二储存区域二者所花费的时间,
其中,所述第二等待时间是基于具有逻辑“高”电平的所述第二MAC命令信号来分别从所述第一储存区域和所述第二储存区域读取出所述第一数据和所述第二数据并将所述第一数据和所述第二数据输入至所述第一MAC运算器所花费的时间,以及
其中,所述第三等待时间是基于具有逻辑“低”电平的所述第二MAC命令信号来将所述第一数据和所述第二数据锁存至所述第一MAC运算器中所花费的以及所述第一MAC运算器对被锁存的第一数据和第二数据执行所述MAC算术运算所花费的时间。
36.根据权利要求35所述的存储器内处理器件,
其中,所述第二等待时间等于由包括在所述MAC命令生成器中的所述第一延迟电路确定的所述第一延迟时间;以及
其中,所述第三等待时间等于由包括在所述MAC命令生成器中的所述第二延迟电路确定的所述第二延迟时间。
37.根据权利要求33所述的存储器内处理器件,其中,所述第一MAC运算器包括:
数据输入电路,其被配置为分别从所述第一储存区域和所述第二储存区域接收所述第一数据和所述第二数据,并且被配置为同步于所述第三MAC命令信号来锁存所述第一数据和所述第二数据;
MAC电路,其被配置为接收由所述数据输入电路锁存的所述第一数据和所述第二数据,并且被配置为对所述第一数据和所述第二数据执行所述MAC算术运算,以生成并输出MAC结果数据;以及
数据输出电路,其包括输出锁存器,所述输出锁存器被配置为从所述MAC电路接收所述MAC结果数据并且同步于所述第四MAC命令信号来锁存所述MAC结果数据。
38.根据权利要求37所述的存储器内处理器件,其中,所述数据输出电路还包括传输门,所述传输门被配置为将所述MAC结果数据输出至GIO线,GIO指全局数据输入/输出。
39.根据权利要求38所述的存储器内处理器件,
其中,所述命令解码器被配置为在从所述命令解码器输出所述第二内部命令信号的时间点起经过预定的固定时间之后,输出第三内部命令信号,
其中,所述MAC命令生成器被配置为响应于所述第三内部命令信号而生成第五MAC命令信号,以及
其中,所述传输门被配置为同步于所述第五MAC命令信号来输出所述MAC结果数据。
40.根据权利要求39所述的存储器内处理器件,其中,所述第一MAC运算器的所述数据输出电路被配置为同步于所述第五MAC命令信号来将所述输出锁存器复位。
41.一种存储器内处理器件,包括:
多个储存区域;
全局缓冲器;以及
多个MAC运算器,其被配置为经由BIO线与所述多个储存区域进行通信,并且被配置为经由GIO线与所述全局缓冲器进行通信,MAC指乘法/累加,BIO指存储体输入/输出,GIO指全局输入/输出,
其中,所述多个储存区域中的第一储存区域和所述多个MAC运算器中的第一MAC运算器构成一个MAC单元;以及
其中,所述第一MAC运算器被配置为经由所述BIO线从所述第一储存区域接收第一数据,并经由所述GIO线从所述全局缓冲器接收第二数据,并且所述第一MAC运算器被配置为对所述第一数据和所述第二数据执行MAC算术运算以输出所述MAC算术运算的结果。
42.根据权利要求41所述的存储器内处理器件,其中,在所述多个储存区域中的储存区域的数量和在所述多个MAC运算器中的MAC运算器的数量彼此相等。
43.根据权利要求41所述的存储器内处理器件,其中,所述存储器内处理器件被配置为分别经由所述BIO线和所述GIO线同时发送从所述第一储存区域输出的所述第一数据和从所述全局缓冲器输出的所述第二数据。
44.根据权利要求41所述的存储器内处理器件,其中,所述存储器内处理器件被配置为响应于请求MAC计算的外部命令而在预定的固定时间期间执行作为确定性MAC算术运算的所述MAC算术运算。
45.根据权利要求41所述的存储器内处理器件,还包括:
命令解码器,其被配置为响应于请求MAC计算的外部命令而生成第一内部命令信号和第二内部命令信号;以及
MAC命令生成器,其被配置为响应于所述第一内部命令信号和所述第二内部命令信号而生成并输出第一MAC命令信号、第二MAC命令信号、第三MAC命令信号和第四MAC命令信号。
46.根据权利要求45所述的存储器内处理器件,其中,所述命令解码器被配置为以固定的时间间隔来顺序地输出所述第一内部命令信号和所述第二内部命令信号。
47.根据权利要求46所述的存储器内处理器件,其中,所述MAC命令生成器被配置为:
响应于所述第一内部命令信号而生成所述第一MAC命令信号;以及
响应于所述第二内部命令信号而生成所述第二MAC命令信号、所述第三MAC命令信号和所述第四MAC命令信号。
48.根据权利要求47所述的存储器内处理器件,
其中,所述第一MAC命令信号是用于激活包括在所述MAC单元中的所述第一储存区域的控制信号,
其中,所述第二MAC命令信号是用于从包括在所述MAC单元中的所述第一储存区域中读取出所述第一数据的控制信号,
其中,所述第三MAC命令信号是用于将从所述第一储存区域读取出的所述第一数据和从所述全局缓冲器读取出的所述第二数据锁存在所述第一MAC运算器中的控制信号,以及
其中,所述第四MAC命令信号是用于锁存所述第一MAC运算器的MAC结果数据的控制信号。
49.根据权利要求46所述的存储器内处理器件,其中,所述命令解码器被配置为在从所述命令解码器输出所述第二内部命令信号的时间点起经过预定的固定时间之后,输出第三内部命令信号。
50.根据权利要求49所述的存储器内处理器件,其中,所述MAC命令生成器被配置为响应于所述第三内部命令信号而生成第五MAC命令信号。
51.根据权利要求50所述的存储器内处理器件,其中,所述第五MAC命令信号是用于以下操作的控制信号:
从所述第一MAC运算器输出MAC结果数据;以及
将包括在所述第一MAC运算器中的输出锁存器复位。
52.根据权利要求45所述的存储器内处理器件,其中,所述MAC命令生成器包括:
激活信号生成器,其被配置为接收所述第一内部命令信号,以生成并输出用于激活包括在所述MAC单元中的所述第一储存区域的所述第一MAC命令信号;
第一延迟电路,其被配置为将所述第二内部命令信号延迟第一延迟时间,以输出用于锁存被发送至所述第一MAC运算器的所述第一数据和所述第二数据的所述第三MAC命令信号;以及
第二延迟电路,其被配置为将所述第一延迟电路的输出信号延迟第二延迟时间,以输出用于锁存所述第一MAC运算器的MAC结果数据的所述第四MAC命令信号;
其中,所述MAC命令生成器被配置为响应于所述第二内部命令信号而生成用于从所述第一储存区域读取出所述第一数据的所述第二MAC命令信号。
53.根据权利要求52所述的存储器内处理器件,其中,所述命令解码器被配置为:
在第一时间点处输出所述第一内部命令信号;
在从所述第一时间点起经过第一等待时间之后的第二时间点处输出具有逻辑“高”电平的所述第二内部命令信号;
在从所述第二时间点起经过第二等待时间之后的第三时间点处将所述第二内部命令信号的逻辑电平从逻辑“高”电平改变为逻辑“低”电平;以及
在从所述第三时间点起经过第三等待时间之后的第四时间点处将所述第二内部命令信号的逻辑电平从逻辑“低”电平改变为逻辑“高”电平。
54.根据权利要求53所述的存储器内处理器件,
其中,所述第一等待时间是基于所述第一MAC命令信号来激活所述第一储存区域所花费的时间,
其中,所述第二等待时间是基于具有逻辑“高”电平的所述第二MAC命令信号来从所述第一储存区域读取出所述第一数据并且将所述第一数据输入至所述第一MAC运算器中所花费的时间;以及
其中,所述第三等待时间是基于具有逻辑“低”电平的所述第二MAC命令信号来将所述第一数据和所述第二数据锁存至所述第一MAC运算器中所花费的以及所述第一MAC运算器对被锁存的第一数据和第二数据执行所述MAC算术运算所花费的时间。
55.根据权利要求54所述的存储器内处理器件,
其中,所述第二等待时间等于由包括在所述MAC命令生成器中的所述第一延迟电路确定的所述第一延迟时间;以及
其中,所述第三等待时间等于由包括在所述MAC命令生成器中的所述第二延迟电路确定的所述第二延迟时间。
56.根据权利要求53所述的存储器内处理器件,其中,所述第一MAC运算器包括:
数据输入电路,其被配置为分别从所述第一储存区域和所述全局缓冲器接收所述第一数据和所述第二数据,并且被配置为同步于所述第三MAC命令信号来锁存所述第一数据和所述第二数据;
MAC电路,其被配置为接收由所述数据输入电路锁存的所述第一数据和所述第二数据,并且被配置为对所述第一数据和所述第二数据执行所述MAC算术运算,以生成并输出MAC结果数据;以及
数据输出电路,其包括输出锁存器,所述输出锁存器被配置为从所述MAC电路接收所述MAC结果数据并且同步于所述第四MAC命令信号来锁存所述MAC结果数据。
57.根据权利要求56所述的存储器内处理器件,其中,所述数据输出电路还包括传输门,所述传输门被配置为将所述MAC结果数据输出至所述GIO线。
58.根据权利要求57所述的存储器内处理器件,
其中,所述命令解码器被配置为在从所述命令解码器输出所述第二内部命令信号的时间点起经过预定的固定时间之后,输出第三内部命令信号,
其中,所述MAC命令生成器被配置为响应于所述第三内部命令信号而生成第五MAC命令信号,以及
其中,所述传输门被配置为同步于所述第五MAC命令信号来输出所述MAC结果数据。
59.一种存储器内处理器件,包括:
数据储存区域,其包括多个储存区域;以及
算术电路,其包括多个MAC运算器,MAC指乘法/累加,
其中,在所述多个储存区域中的第一储存区域和第二储存区域以及在所述多个MAC运算器中的第一MAC运算器构成一个MAC单元;以及
其中,所述第一MAC运算器被配置为分别从所述第一储存区域和所述第二储存区域接收第一数据和第二数据,以对所述第一数据和所述第二数据执行MAC算术运算并且输出所述MAC算术运算的结果。
60.根据权利要求59所述的存储器内处理器件,
其中,所述第一储存区域和所述第二储存区域分别包括第一存储体和第二存储体,以及
其中,所述第一存储体和所述第二存储体被设置为在列中彼此相邻。
61.根据权利要求59所述的存储器内处理器件,
其中,所述第一储存区域和所述第二储存区域分别包括存储体和缓冲存储器。
62.根据权利要求59所述的存储器内处理器件,其中,所述存储器内处理器件被配置为响应于请求MAC计算的外部命令而在预定的固定时间期间执行作为确定性MAC算术运算的所述MAC算术运算。
63.根据权利要求59所述的存储器内处理器件,
其中,所述存储器内处理器件被配置为响应于第一MAC命令信号、第二MAC命令信号、第三MAC命令信号、第四MAC命令信号、第五MAC命令信号和第六MAC命令信号而执行所述MAC算术运算,
其中,所述第一MAC命令信号、所述第二MAC命令信号、所述第三MAC命令信号、所述第四MAC命令信号、所述第五MAC命令信号和所述第六MAC命令信号是顺序地生成的。
64.根据权利要求63所述的存储器内处理器件,
其中,所述第一MAC命令信号是用于激活包括在所述MAC单元中的所述第一储存区域和所述第二储存区域的控制信号,
其中,所述第二MAC命令信号是用于从包括在所述MAC单元中的所述第一储存区域读取出所述第一数据的控制信号,
其中,所述第三MAC命令信号是用于从包括在所述MAC单元中的所述第二储存区域读取出所述第二数据的控制信号,
其中,所述第四MAC命令信号是用于将所述第一数据锁存至所述第一MAC运算器中的控制信号,
其中,所述第五MAC命令信号是用于将所述第二数据锁存至所述第一MAC运算器中的控制信号,以及
其中,所述第六MAC命令信号是用于锁存所述第一MAC运算器的MAC结果数据的控制信号。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062958223P | 2020-01-07 | 2020-01-07 | |
US62/958,223 | 2020-01-07 | ||
KR1020200006902A KR20210093125A (ko) | 2020-01-17 | 2020-01-17 | 프로세싱-인-메모리 장치 |
KR10-2020-0006902 | 2020-01-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113157632A CN113157632A (zh) | 2021-07-23 |
CN113157632B true CN113157632B (zh) | 2024-04-30 |
Family
ID=76655414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110018908.5A Active CN113157632B (zh) | 2020-01-07 | 2021-01-07 | 存储器内处理器件 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11537323B2 (zh) |
CN (1) | CN113157632B (zh) |
TW (1) | TWI845788B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667208B (zh) * | 2024-02-01 | 2024-05-24 | 腾讯科技(深圳)有限公司 | 数据运算方法、存储器及计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106941011A (zh) * | 2016-01-05 | 2017-07-11 | 爱思开海力士有限公司 | 半导体系统 |
CN108009106A (zh) * | 2016-10-27 | 2018-05-08 | 谷歌公司 | 神经网络计算模组 |
CN109427373A (zh) * | 2017-08-23 | 2019-03-05 | 三星电子株式会社 | 存储系统及用于其的存储器模块和半导体存储器件 |
CN109560078A (zh) * | 2017-09-27 | 2019-04-02 | 三星电子株式会社 | 堆叠式存储器装置、包括其的存储器系统及操作方法 |
CN110389851A (zh) * | 2018-04-20 | 2019-10-29 | 三星电子株式会社 | 具有错误校正功能的存储器设备及其操作方法 |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0973089B1 (en) | 1990-08-24 | 2002-07-17 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for computing floating point data |
US6247036B1 (en) | 1996-01-22 | 2001-06-12 | Infinite Technology Corp. | Processor with reconfigurable arithmetic data path |
US8489861B2 (en) | 1997-12-23 | 2013-07-16 | Round Rock Research, Llc | Split embedded DRAM processor |
ATE467171T1 (de) | 1998-08-24 | 2010-05-15 | Microunity Systems Eng | System mit breiter operandenarchitektur und verfahren |
KR100846386B1 (ko) * | 2006-09-21 | 2008-07-15 | 주식회사 하이닉스반도체 | 멀티포트 메모리 장치 |
JP2010505158A (ja) | 2006-09-26 | 2010-02-18 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 複数のメモリーバンクを有するデータ処理 |
KR100884604B1 (ko) * | 2007-09-04 | 2009-02-19 | 주식회사 하이닉스반도체 | 충분한 내부 동작 마진을 확보하기 위한 반도체 메모리장치 및 그 방법 |
KR100913968B1 (ko) * | 2007-12-12 | 2009-08-26 | 주식회사 하이닉스반도체 | 반도체 메모리 장치 |
JP2011165298A (ja) | 2010-01-18 | 2011-08-25 | Elpida Memory Inc | 半導体記憶装置及びこれを備えた情報処理システム |
WO2011137209A1 (en) | 2010-04-30 | 2011-11-03 | Cornell University | Operand-optimized asynchronous floating-point units and methods of use thereof |
KR101178562B1 (ko) | 2010-11-02 | 2012-09-03 | 에스케이하이닉스 주식회사 | 커맨드 제어회로 및 이를 포함하는 반도체 메모리 장치 및 커맨드 제어방법 |
KR102031175B1 (ko) | 2012-06-13 | 2019-10-11 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이의 동작방법 |
US9292297B2 (en) | 2012-09-14 | 2016-03-22 | Intel Corporation | Method and apparatus to process 4-operand SIMD integer multiply-accumulate instruction |
CN103514374B (zh) * | 2013-09-24 | 2016-08-10 | 清华大学 | 电力系统在线滚动调度中不可行传输断面约束的辨识方法 |
KR102121335B1 (ko) | 2014-03-27 | 2020-06-12 | 에스케이하이닉스 주식회사 | 데이터 처리 블록 및 그것을 포함하는 데이터 저장 장치 |
US9830999B2 (en) | 2014-06-05 | 2017-11-28 | Micron Technology, Inc. | Comparison operations in memory |
KR20160076214A (ko) | 2014-12-22 | 2016-06-30 | 에스케이하이닉스 주식회사 | 반도체 장치 |
US20160179542A1 (en) | 2014-12-23 | 2016-06-23 | Patrick P. Lai | Instruction and logic to perform a fused single cycle increment-compare-jump |
US10262712B2 (en) * | 2015-03-09 | 2019-04-16 | Toshiba Memory Corporation | Memory device with a control circuit to control data reads |
KR20170060739A (ko) | 2015-11-25 | 2017-06-02 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
CN105512723B (zh) | 2016-01-20 | 2018-02-16 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
TWI579693B (zh) | 2016-04-29 | 2017-04-21 | 群聯電子股份有限公司 | 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 |
KR102548591B1 (ko) * | 2016-05-30 | 2023-06-29 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 동작 방법 |
KR102638788B1 (ko) | 2016-08-02 | 2024-02-20 | 에스케이하이닉스 주식회사 | 반도체장치 및 반도체시스템 |
KR101842937B1 (ko) | 2016-07-13 | 2018-05-14 | 김태형 | 다기능 연산 장치 |
US10416896B2 (en) | 2016-10-14 | 2019-09-17 | Samsung Electronics Co., Ltd. | Memory module, memory device, and processing device having a processor mode, and memory system |
US10949736B2 (en) | 2016-11-03 | 2021-03-16 | Intel Corporation | Flexible neural network accelerator and methods therefor |
CN108154228B (zh) | 2016-12-28 | 2022-04-12 | 上海寒武纪信息科技有限公司 | 一种人工神经网络计算装置和方法 |
US20180232627A1 (en) | 2017-02-16 | 2018-08-16 | Intel IP Corporation | Variable word length neural network accelerator circuit |
EP3388981B1 (en) | 2017-04-13 | 2021-09-01 | Nxp B.V. | Convolutional processing system |
US10372416B2 (en) | 2017-04-28 | 2019-08-06 | Intel Corporation | Multiply-accumulate “0” data gating |
US11775313B2 (en) | 2017-05-26 | 2023-10-03 | Purdue Research Foundation | Hardware accelerator for convolutional neural networks and method of operation thereof |
CN112214726B (zh) | 2017-07-07 | 2024-05-03 | 华为技术有限公司 | 运算加速器 |
US11361215B2 (en) * | 2017-11-29 | 2022-06-14 | Anaflash Inc. | Neural network circuits having non-volatile synapse arrays |
KR20190075363A (ko) * | 2017-12-21 | 2019-07-01 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 모듈 |
KR102516833B1 (ko) | 2017-12-28 | 2023-04-03 | 삼성전자주식회사 | 메모리 장치 및 그 데이터 처리 방법 |
US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
KR102453542B1 (ko) * | 2018-02-21 | 2022-10-12 | 삼성전자주식회사 | 스킵 연산 모드를 지원하는 메모리 장치 및 그 동작 방법 |
US10664287B2 (en) | 2018-03-30 | 2020-05-26 | Intel Corporation | Systems and methods for implementing chained tile operations |
US10817260B1 (en) | 2018-06-13 | 2020-10-27 | Amazon Technologies, Inc. | Reducing dynamic power consumption in arrays |
KR102665410B1 (ko) | 2018-07-30 | 2024-05-13 | 삼성전자주식회사 | 메모리 장치의 내부 프로세싱 동작 방법 |
KR102555452B1 (ko) | 2018-08-16 | 2023-07-17 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치, 이의 동작 방법 및 이를 포함하는 시스템 |
KR20200066953A (ko) | 2018-12-03 | 2020-06-11 | 삼성전자주식회사 | Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법 |
KR102525165B1 (ko) * | 2018-12-18 | 2023-04-24 | 삼성전자주식회사 | 연산 회로를 포함하는 비휘발성 메모리 장치 및 이를 포함하는 뉴럴 네트워크 시스템 |
KR20200108768A (ko) | 2019-03-11 | 2020-09-21 | 삼성전자주식회사 | 연산 처리를 수행하는 메모리 장치 및 메모리 장치의 동작방법 |
US11094371B2 (en) * | 2019-03-11 | 2021-08-17 | Samsung Electronics Co., Ltd. | Memory device for processing operation and method of operating the same |
US10901492B1 (en) | 2019-03-29 | 2021-01-26 | Amazon Technologies, Inc. | Power reduction in processor pipeline by detecting zeros |
US10853066B1 (en) | 2019-05-07 | 2020-12-01 | Memryx Incorporated | Memory processing units and methods of computing DOT products including zero bit skipping |
CN110597555B (zh) * | 2019-08-02 | 2022-03-04 | 北京航空航天大学 | 非易失性存内计算芯片及其运算控制方法 |
-
2020
- 2020-11-05 US US17/090,462 patent/US11537323B2/en active Active
- 2020-11-09 TW TW109138982A patent/TWI845788B/zh active
-
2021
- 2021-01-07 CN CN202110018908.5A patent/CN113157632B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106941011A (zh) * | 2016-01-05 | 2017-07-11 | 爱思开海力士有限公司 | 半导体系统 |
CN108009106A (zh) * | 2016-10-27 | 2018-05-08 | 谷歌公司 | 神经网络计算模组 |
CN109427373A (zh) * | 2017-08-23 | 2019-03-05 | 三星电子株式会社 | 存储系统及用于其的存储器模块和半导体存储器件 |
CN109560078A (zh) * | 2017-09-27 | 2019-04-02 | 三星电子株式会社 | 堆叠式存储器装置、包括其的存储器系统及操作方法 |
CN110389851A (zh) * | 2018-04-20 | 2019-10-29 | 三星电子株式会社 | 具有错误校正功能的存储器设备及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202127274A (zh) | 2021-07-16 |
CN113157632A (zh) | 2021-07-23 |
US20210208816A1 (en) | 2021-07-08 |
US11537323B2 (en) | 2022-12-27 |
TWI845788B (zh) | 2024-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7180816B2 (en) | Address coding method and address decoder for reducing sensing noise during refresh operation of memory device | |
JP5261803B2 (ja) | 不揮発性メモリ用の高速ファンアウトシステムアーキテクチャおよび入出力回路 | |
JP5658082B2 (ja) | 半導体装置 | |
US11467965B2 (en) | Processing-in-memory (PIM) device | |
US20210223996A1 (en) | Processing-in-memory (pim) devices | |
US20230025899A1 (en) | Processing-in-memory(pim) device | |
US6396747B2 (en) | Semiconductor memory device capable of high speed input/output of wide bandwidth data by improving usage efficiency of external data bus | |
US7596049B2 (en) | Semiconductor memory device with a plurality of bank groups each having a plurality of banks sharing a global line group | |
US11842266B2 (en) | Processing-in-memory (PIM) device, controller for controlling the PIM device, and PIM system including the PIM device and the controller | |
US11861369B2 (en) | Processing-in-memory (PIM) device | |
CN113157632B (zh) | 存储器内处理器件 | |
US12106819B2 (en) | Processing-in-memory (PIM) device | |
US20220027131A1 (en) | Processing-in-memory (pim) devices | |
US11474787B2 (en) | Processing-in-memory (PIM) devices | |
US11775295B2 (en) | Processing-in-memory (PIM) devices | |
US11422803B2 (en) | Processing-in-memory (PIM) device | |
US20210373852A1 (en) | Processing-in-memory (pim) devices | |
US20230073929A1 (en) | Processing-in-memory(pim) device | |
US20230077701A1 (en) | Processing-in-memory(pim) device | |
US20240143497A1 (en) | Processing-in-memory (pim) devices | |
KR20210093125A (ko) | 프로세싱-인-메모리 장치 | |
US20230033179A1 (en) | Accumulator and processing-in-memory (pim) device including the accumulator | |
JPH11134863A (ja) | 半導体メモリ装置とデータの書き込み方法 | |
CN116741224A (zh) | 数据写入电路、数据写入方法存储器 | |
KR20070014570A (ko) | 고속 메모리 장치의 웨이브 병렬처리용 레지스터 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |