CN113138799A - 存储器内处理器件 - Google Patents
存储器内处理器件 Download PDFInfo
- Publication number
- CN113138799A CN113138799A CN202110056626.4A CN202110056626A CN113138799A CN 113138799 A CN113138799 A CN 113138799A CN 202110056626 A CN202110056626 A CN 202110056626A CN 113138799 A CN113138799 A CN 113138799A
- Authority
- CN
- China
- Prior art keywords
- mac
- data
- circuit
- circuits
- control 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.)
- Granted
Links
- 230000004913 activation Effects 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 10
- 230000003213 activating effect Effects 0.000 claims 1
- 239000011159 matrix material Substances 0.000 description 34
- 238000013473 artificial intelligence Methods 0.000 description 7
- 101100059544 Arabidopsis thaliana CDC5 gene Proteins 0.000 description 6
- 101150115300 MAC1 gene Proteins 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 101100289995 Caenorhabditis elegans mac-1 gene Proteins 0.000 description 2
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 2
- 101100232371 Hordeum vulgare IAT3 gene Proteins 0.000 description 2
- 102100034204 Transcription factor SOX-9 Human genes 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 101100244969 Arabidopsis thaliana PRL1 gene Proteins 0.000 description 1
- 102100039558 Galectin-3 Human genes 0.000 description 1
- 101100454448 Homo sapiens LGALS3 gene Proteins 0.000 description 1
- 101150051246 MAC2 gene Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000000034 method Methods 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
Images
Classifications
-
- 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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- 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/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
-
- 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/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
- G06F7/575—Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
-
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
-
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
- G11C11/4085—Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
-
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- 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
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
-
- 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
- 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/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1045—Read-write mode select circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Dram (AREA)
Abstract
一种存储器内处理(PIM)器件包括多个储存区域、全局缓冲器和多个乘法/累加(MAC)电路。多个MAC电路被配置为对来自多个储存区域的第一数据和来自全局缓冲器的第二数据执行MAC运算。多个MAC电路中的每个被分类为激活MAC电路或非激活MAC电路。MAC运算包括由激活MAC电路选择性地执行的选择性MAC运算。
Description
相关申请的交叉引用
本申请要求2020年1月17日提交的申请号为10-2020-0006904的韩国专利申请的优先权,其全部内容通过引用合并于此。
技术领域
本教导的各种实施例涉及存储器内处理(PIM,processing-in-memory)器件。
背景技术
近来,不仅在信息技术行业而且在金融和医疗行业中,对人工智能(AI)的兴趣也在增加。因此,在各个领域,都考虑并原型化了人工智能,更确切地说是引入了深度学习。这种引起广泛关注的背景或原因之一可能是由于执行算术运算的处理器的性能提高。为了改善人工智能的性能,可能需要增加构成人工智能中的神经网络的层数以培育人工智能。近年来,这种趋势一直持续,这导致实际执行计算的硬件所需的计算量呈指数增长。此外,如果人工智能采用包括彼此分开的存储器和处理器的通用硬件系统,则由于存储器与处理器之间的数据通信量的限制,人工智能的性能会降低。为了解决这个问题,已经提出了一种PIM器件,在所述PIM器件中处理器和存储器集成在一个半导体芯片中。
发明内容
根据一个实施例,一种PIM器件可以包括:多个储存区域、全局缓冲器和多个乘法和累加(MAC,multiplication and accumulation)电路。多个MAC电路可以被配置为对来自多个储存区域的第一数据和来自全局缓冲器的第二数据执行MAC运算。多个MAC电路中的每个可以被分类为激活MAC电路或非激活MAC电路。MAC运算可以包括由激活MAC电路选择性地执行的选择性MAC运算。
根据另一个实施例,一种PIM器件可以包括:多个乘法/累加(MAC)电路、第一组储存区域和第二组储存区域。多个MAC电路中的每个可以被配置为对来自第一组储存区域之中的、被分配有MAC电路的一个储存区域的第一数据和来自第二组储存区域之中的、被分配有MAC电路的一个储存区域的第二数据执行MAC运算。多个MAC电路中的每个可以被分类为激活MAC电路或非激活MAC电路。MAC运算可以包括可以由激活MAC电路选择性地执行的选择性MAC运算。
附图说明
所公开的技术的某些特征通过参照附图的各个实施方案进行说明,其中:
图1示出了根据本公开的一个实施例的包括在存储器内处理(PIM)器件中的存储体和乘法/累加(MAC)电路的设置结构;
图2示出了在图1中所示的PIM器件的存储操作模式下执行的数据读取操作;
图3示出了在图1中所示的PIM器件的存储操作模式下执行的数据写入操作;
图4示出了在图1中所示的PIM器件的MAC运算模式下执行的操作;
图5示出了根据本公开的一个实施例的PIM器件的MAC运算的一个示例;
图6示出了根据本公开的一个实施例的PIM器件的MAC运算的另一个示例;
图7示出了根据本公开的另一个实施例的PIM器件的配置;
图8示出了包括在图7中所示的PIM器件中的模式寄存器设定(MRS)逻辑电路的配置;
图9示出了图7中所示的PIM器件的选择性MAC运算;
图10示出了在图7中所示的PIM器件的选择性MAC运算期间MRS逻辑电路中的模式寄存器的配置;
图11、图12、图13和图14示出了图7中所示的PIM器件的选择性MAC运算的步骤;
图15是示出了图7中所示的PIM器件的选择性MAC运算的时序图;
图16示出了根据本公开的又一个实施例的PIM器件的配置;
图17示出了图16中所示的PIM器件的MAC运算的一个示例;
图18是示出图16中所示的PIM器件的选择性MAC运算的示意图;以及
图19示出了图16中所示的PIM器件的选择性MAC运算。
具体实施方式
在实施例的以下描述中,将理解的是,术语“第一”和“第二”旨在标识元件,而不是仅用于限定元件本身或表示特定顺序。另外,当一个元件被称为位于另一个元件“上”、“之上”、“上方”、“之下”或“下方”时,其旨在表示相对位置关系,但并不用于限制该元件直接接触另一元件或者在它们之间存在至少一个中间元件的情况。因此,本文中使用的诸如“在……上”、“在……之上”、“在……上方”、“在……之下”、“在……下”、“在……下方”等术语仅出于描述特定实施例的目的,并非旨在限制本公开的范围。此外,当一个元件被称为“连接”或“耦接”到另一个元件时,该元件可以直接电或机械地连接或耦接到另一个元件,或者可以通过替换它们之间的另一个元件来形成连接关系或耦接关系。
各种实施例针对PIM器件。
图1示出了根据本公开的一个实施例的PIM器件100中包括的存储体和MAC电路的设置结构。参见图1,PIM器件100可以包括多个储存区域和多个算术处理器。在一个实施例中,多个储存区域可以包括构成动态随机存取存储器(DRAM)的多个存储体(即,第一存储体至第十六存储体BK0、……和BK15)。尽管本实施例示出了多个储存区域包括十六个存储体的示例,但是存储体的数量可以根据实施例而被设置为不同。第一存储体至第十六存储体BK0、……和BK15可以包括至少一个单元阵列,其中单位单元位于多个行和多个列的交叉点处。在一个实施例中,第一存储体至第十六存储体BK0、……和BK15中的每一个可以单独被激活,并且可以具有与外部输入/输出(I/O)线(例如,数据I/O线DQ)相同的数据总线宽度。第一存储体至第十六存储体BK0、……和BK15可以利用交错(interleaving)技术进行操作,即,第一存储体至第十六存储体BK0、……和BK15的激活操作在并行模式下执行。尽管在附图中未示出,但是X解码器(或行解码器)、Y解码器(或列解码器)、I/O电路等可以设置为与第一存储体至第十六存储体BK0、……和BK15中的每个相邻。
在一个实施例中,多个算术处理器可以是多个MAC电路,例如,第一MAC电路至第十六MAC电路MAC0、……和MAC15。第一MAC电路至第十六MAC电路MAC0、……和MAC15可以设置为分别分配给第一存储体至第十六存储体BK0、……和BK15。因此,PIM器件100的MAC电路MAC0、……和MAC15的数量可以等于存储体BK0、……和BK15的数量。在一个实施例中,可以将第一MAC电路MAC0分配给第一存储体BK0,并且可以将第二MAC电路MAC1分配给第二存储体BK1。以相同的方式,可以将第十六MAC电路MAC15分配给第十六存储体BK15。MAC电路MAC0、……和MAC15中的每一个可以利用储存在相应存储体中的数据来执行MAC运算。
第一存储体输入/输出(BIO)线至第十六存储体输入/输出(BIO)线110-0、……和110-15可以设置为将MAC电路MAC0、……和MAC15连接至相应的存储体BK0、……和BK15。第一BIO线至第十六BIO线110-0、……和110-15可以耦接在MAC电路MAC0、……和MAC15与存储体BK0、……和BK15之间,以提供双向数据传输路径。当PIM器件100处于执行MAC运算的MAC运算模式时,MAC电路MAC0、……和MAC15中的每一个可以经由BIO线110-0、……和110-15中的一个从相应的存储体接收MAC运算所需的第一数据。例如,第一MAC电路MAC0可以经由第一BIO线110-0从第一存储体BK0接收MAC运算所需的第一数据。另外,从MAC电路MAC0、……和MAC15中的每一个输出的MAC运算结果数据可以经由BIO线110-0、……和110-15中的一个发送至相应的存储体。例如,从第一MAC电路MAC0输出的MAC运算结果数据可以经由第一BIO线110-0发送至第一存储体BK0。
根据本实施例的PIM器件100可以包括全局输入/输出(GIO)线120和全局缓冲器130。GIO线120可以在外部器件(例如,控制器)与包括在PIM器件中的存储体BK0、……和BK15的每一个之间提供数据传输路径。双向数据传输可以经由外部器件与存储体BK0、……和BK15的每一个之间的GIO线120来实现。另外,GIO线120可以在包括在PIM器件100中的全局缓冲器130与存储体BK0、……和BK15的每一个之间提供数据传输路径。当PIM器件100处于执行MAC运算的MAC运算模式时,MAC电路MAC0、……和MAC15中的每一个可以经由GIO线120从全局缓冲器130接收MAC运算所需的第二数据。MAC电路MAC0、……和MAC15中的每一个可以经由BIO线110-0、……和110-15中的一个和GIO线120从相应的存储体和全局缓冲器130接收第一数据和第二数据,以对第一数据和第二数据执行MAC运算。第一数据和第二数据在并行传输模式下发送。在并行传输模式下,第一数据和第二数据可以分别经由BIO线和GIO线同时发送至MAC电路。
全局缓冲器130可以经由GIO线120从外部器件接收第二数据,以将第二数据储存在其中。另外,全局缓冲器130可以将第二数据经由GIO线120输出至MAC电路MAC0、……和MAC15中的每一个。全局缓冲器130可以在PIM器件100进入MAC运算模式之前储存MAC运算所需的第二数据。替选地,全局缓冲器130可以在PIM器件100进入MAC运算模式之后储存MAC运算所需的第二数据。在PIM器件100的MAC运算模式中,可以将储存在全局缓冲器130中的第二数据发送至MAC电路MAC0、……和MAC15中的每一个。
根据本实施例的PIM器件100可以在存储操作模式或MAC运算模式下工作。当PIM器件100在存储操作模式下工作时,所有的MAC电路MAC0、……和MAC15都不执行MAC运算。相反,当PIM器件100在MAC运算模式下操作时,MAC运算可以由MAC电路MAC0、……和MAC15来执行。当PIM器件100在MAC运算模式下工作时,MAC运算可以由全部的MAC电路MAC0、……和MAC15来执行或可以由MAC电路MAC0、……和MAC15中的至少一个来选择性地执行。即,当PIM器件100在MAC运算模式下工作时,MAC运算可以由全部的MAC电路MAC0、……和MAC15同时执行,或仅由某些MAC电路MAC0、……和MAC15来选择性地执行。在下文中,由全部的MAC电路执行的MAC运算将被称为“整个MAC运算”,并且由某些MAC电路执行的MAC运算将被称为“选择性MAC运算”。
图2示出了在图1中所示的PIM器件100的存储操作模式下执行的数据读取操作。为了便于解释,可以假设储存在第二存储体BK1中的读取数据RD被读出。参见图2,PIM器件100可以从外部控制器接收请求数据读取操作的第一外部命令EX_CMD1和地址ADDR,以在存储操作模式下执行数据读取操作。PIM器件100可以对第一外部命令EX_CMD1进行解码,以生成读取控制信号RC。PIM器件100还可以将地址ADDR转换为行/列地址ADDR_R_C。第二存储体BK1可以响应于读取控制信号RCL来将储存在由行/列地址ADDR_R_C指定的区域中的读取数据RD发送至GIO线120。可以从PIM器件100输出加载在GIO线120上的读取数据RD。如前所述,尽管PIM器件100在存储操作模式下执行数据读取操作,但是MAC电路MAC0、……和MAC15不执行算术运算。
图3示出了在图1中所示的PIM器件100的存储操作模式下执行的数据写入操作。为了便于解释,可以假定将写入数据WD写入第二存储体BK1。参见图3,PIM器件100可以从外部控制器接收请求数据写入操作的第二外部命令EX_CMD2和地址ADDR,以在存储操作模式下执行数据写入操作。PIM器件100可以对第二外部命令EX_CMD2进行解码以生成写入控制信号WC。PIM器件100还可以将地址ADDR转换为行/列地址ADDR_R_C。第二存储体BK1可以经由GIO线120接收写入数据WD,并且可以响应于写入控制信号WC而将写入数据WD储存在由行/列地址ADDR_R_C指定的区域中。如前所述,尽管PIM器件100在存储操作模式下执行数据写入操作,但是MAC电路MAC0、……和MAC15不执行算术运算。
图4示出了在图1中所示的PIM器件100的MAC运算模式下执行的MAC运算。参见图4,如果将请求MAC运算的第三外部命令EX_CMD3和地址ADDR输入至PIM器件100,则PIM器件100可以进入MAC运算模式。在本实施例中,可以假设在PIM器件100进入MAC运算模式之前,MAC运算所需的第一数据W被储存在存储体BK0、……和BK15中,并且第二数据V被储存在全局缓冲器130中。在一个实施例中,第一数据W可以是用于神经网络计算所需的权重数据,并且第二数据V可以是用于神经网络计算所需的矢量数据。
PIM器件100可以响应于第三外部命令EX_CMD3而在MAC运算模式下工作。例如,PIM器件100可以响应于第三外部命令EX_CMD3而在内部生成MAC运算命令MC。尽管在附图中未示出,但是PIM器件100可以根据MAC运算命令MC来顺序地生成激活控制信号ACT、MAC读取控制信号MR、MAC运算控制信号MAC_C和预充电控制信号PC。全部或某些存储体BK0、……和BK15可以通过激活控制信号ACT来激活。可以通过MAC读取控制信号MR将第一数据W从全部或某些存储体BK0、……和BK15发送至全部或某些MAC电路MAC0、……和MAC15。在这种情况下,可以经由BIO线来发送第一数据W。例如,可以经由第一BIO线110-0将第一数据W的第一权重数据W00从第一存储体BK0发送至第一MAC电路MAC0,并且可以经由第二BIO线110-1将第一数据W的第二权重数据W01从第二存储体BK1发送至第二MAC电路MAC1。
全部或某些MAC电路MAC0、……和MAC15可以经由GIO线120从全局缓冲器130接收第二数据V。因为经由BIO线110-0、……和110-15将第一数据W输入至MAC电路MAC0、……和MAC15,并且经由GIO线120将第二数据V输入至MAC电路MAC0、……和MAC15,所以第一数据W和第二数据V可以同时被输入至MAC电路MAC0、……和MAC15。接收第一数据W和第二数据V的MAC电路可以响应于MAC运算控制信号MAC_C来对第一数据W和第二数据V执行MAC运算。此外,可以通过PIM器件100将地址ADDR转换为行/列地址,并且可以将行/列地址发送至全部或某些存储体BK0、……和BK15。尽管在附图中未示出,但是由MAC电路MAC0、……和MAC15的每一个的MAC运算生成的MAC运算结果数据可以经由GIO线120从PIM器件100输出,或者可以经由BIO线110-0、……和110-15中的一个发送至相应的存储体。在一些实施例中,如本文中所使用的关于事件的词语“同时”和“同时地”是指事件在重叠的时间间隔发生。例如,如果第一事件是在第一时间间隔内发生的,而第二事件是在第二时间间隔内同时发生的,则第一间隔和第二间隔至少部分地彼此重叠,使得存在第一事件和第二事件同时发生的时间。
图5示出了PIM器件100的MAC运算的示例。例如,在本实施例中,将描述由PIM器件100的整个MAC运算执行的算术运算。由MAC电路MAC0、……和MAC15执行的整个MAC运算可以包括乘法计算和累加计算。可以利用矩阵乘法来执行MAC运算。即,如图5中所示,可以通过将采用与权重数据相对应的第一数据W作为元素的权重矩阵与采用与矢量数据相对应的第二数据V作为元素的矢量矩阵相乘来执行MAC运算。权重矩阵可以具有“M×N”矩阵形式,而矢量矩阵可以具有“N×1”矩阵形式。表示权重矩阵的行数的数量“M”可以等于存储体BK0、……和BK15的数量。另外,表示权重矩阵的列数和矢量矩阵的行数的数量“N”可以等于包括在第一数据W中的比特位数(或者包括在第二数据V中的比特位数)。
如参照图4所述,储存在存储体BK0、……和BK15中的第一数据W和储存在全局缓冲器(图1的130)中的第二数据V可以被输入至MAC电路MAC0、……和MAC15。在本实施例中,可以假设第一数据W和第二数据V中的每一个包括8比特位二进制流。在这种情况下,权重矩阵的第一行中元素W00.0、W00.1、W00.2、……和W00.7可以对应于从第一存储体BK0发送至第一MAC电路MAC0的第一权重数据W00。此外,权重矩阵的第二行中的元素W01.0、W01.1、W01.2、……和W01.7可以对应于从第二存储体BK1发送至第二MAC电路MAC1的第二权重数据W01。以相同的方式,权重矩阵的第K行(其中,“K”是自然数“1”至“16”中的一个)中的元素可以对应于从第K个存储体发送至第K个MAC电路的第K个权重数据。矢量矩阵的第一列中的元素V0.0、V1.0、……和V7.0可以对应于从全局缓冲器(图1的130)发送至MAC电路MAC0、……和MAC15中的每一个的第二数据V。
图6示出了图1中所示的PIM器件100的MAC运算的另一个示例。例如,在本实施例中,将描述由PIM器件100的选择性MAC运算执行的算术运算。选择性MAC运算可以应用于PIM器件100包括足够的资源(例如,足够的存储体和MAC电路)以处理给定的MAC算术计算的情况。具体地,如图6中所示,矢量矩阵的第一列中的元素V0.0、V1.0、……和V7.0可以从全局缓冲器(图1中的130)发送至MAC电路MAC0、……和MAC15中的每一个。然而,在权重矩阵的情况下,权重矩阵的行数不为“16”,其对应于全部的存储体BK0、……和BK15的数量,而为“8”。因此,第一数据W不从全部的存储体BK0、……和BK15发送至全部的MAC电路MAC0、……和MAC15,而是从某些存储体(例如,第一存储体至第八存储体BK0、……和BK7)发送至某些MAC电路。在这种情况下,不是由全部的MAC电路执行MAC运算,而是由向其输入了第一数据W的某些MAC电路执行MAC运算。即,选择性MAC运算可以表示在仅由PIM器件100中包括的某些MAC电路执行PIM器件100所需的MAC算术计算的情况下执行的MAC运算。
在本实施例中,可以假设第一数据W是从第一存储体至第八存储体BK0、……和BK7发送至第一MAC电路至第八MAC电路MAC0、……和MAC7。在这种情况下,第九MAC电路至第十六MAC电路MAC8、……和MAC15不执行MAC运算。在下文中,为了便于解释,将用于MAC运算的MAC电路和相应的存储体分别称为“激活MAC电路”和“激活存储体”。另外,将未用于MAC运算的MAC电路和相应的存储体分别称为“非激活MAC电路”和“非激活存储体”。在本实施例的情况下,第一存储体至第八存储体BK0、……和BK7可以对应于激活存储体,并且从第一存储体至第八存储体BK0、……和BK7接收第一数据W的第一MAC电路至第八MAC电路MAC0、……和MAC7可以对应于激活MAC电路。相反,第九存储体至第十六存储体BK8、……和BK15可以对应于非激活存储体,并且未从第九存储体至第十六存储体BK8、……和BK15接收任何第一数据W的第九MAC电路至第十六MAC电路MAC8、……和MAC15可以对应于非激活MAC电路。
根据上述PIM器件100,当在PIM器件100中存在激活MAC电路和非激活MAC电路时,由于非激活MAC电路的存在,可以降低PIM器件100的功耗。为了分别控制激活MAC电路和非激活MAC电路,PIM器件100可以包括模式寄存器设定(MRS,mode register set)逻辑电路。当在PIM器件的MAC运算模式下(即,在选择性MAC运算期间)存在非激活存储体和非激活MAC电路时,MRS逻辑电路可以禁止将激活控制信号、MAC读取控制信号和预充电控制信号发送至非激活存储体,并且可以禁止将MAC运算控制信号MAC_C发送至非激活MAC电路。
图7示出了根据本公开的另一个实施例的PIM器件100A。在图7中,与图1中使用的相同的附图标号和相同的附图标记表示相同的元件。参见图7,PIM器件100A可以包括:多个存储体BK0、……和BK15、多个MAC电路MAC0、……和MAC15、全局缓冲器130、地址锁存器210、模式寄存器设定(MRS)逻辑电路220和MAC命令(CMD)生成器230。多个存储体BK0、……和BK15、多个MAC电路MAC0、……和MAC15、全局缓冲器130可以具有与参照图1至图4所述的多个存储体BK0、……和BK15、多个MAC电路MAC0、……和MAC15、全局缓冲器130相同。因此,在下文中将省略图7中所示的多个存储体BK0、……和BK15、多个MAC电路MAC0、……和MAC15和全局缓冲器130的描述。
地址锁存器210可以从外部器件(例如,主机或PIM控制器)接收地址ADDR,以生成并输出行/列地址ADDR_R_C。行/列地址ADDR_R_C可以被发送至多个存储体BK0、……和BK15中的每一个。MRS逻辑电路220可以响应于从外部器件输出以请求MAC运算的外部命令EX_CMD而生成并输出MRS命令MRS_CMD。MRS命令MRS_CMD可以包括PIM器件100A的操作模式以及用于将激活MAC电路和非激活MAC电路区分开的信息。MAC命令生成器230可以响应于从MRS逻辑电路220输出的MRS命令MRS_CMD而生成并输出用于MAC运算的MAC运算命令MC。在一个实施例中,MAC运算命令MC可以包括:激活控制信号ACT、MAC读取控制信号MR、MAC运算控制信号MAC_C和预充电控制信号PC。
图8示出了包括在图7中所示的PIM器件100A中的MRS逻辑电路220的配置。参见图8,包括在PIM器件100A中的MRS逻辑电路220可以包括:模式寄存器221、控制码生成器222和MRS命令生成器223。可以在模式寄存器221中设置PIM器件100A的操作模式和用于指定激活MAC电路的信息。可以在模式寄存器221中设置PIM器件100A的操作模式和用于指定非激活MAC电路的信息。在一个实施例中,模式寄存器221可以包括分配有包括在地址字段中的十七比特位中的一比特位的操作模式OP和分配有包括在地址字段中的十七比特位中的十六比特位的MAC电路标识MAC_ID。分配给MAC电路标识MAC_ID的比特位数“16”可以等于设置在PIM器件100A中的MAC电路MAC0、……和MAC15的数量。在一个实施例中,当与操作模式OP相对应的地址字段“A0”具有逻辑值“0”时,PIM器件100A可以在MAC运算模式下工作,并且MRS逻辑电路220可以生成并输出MRS命令MRS_CMD。相反,当与操作模式OP相对应的地址字段“A0”具有逻辑值“1”时,PIM器件100A可以在存储操作模式下工作,并且MRS逻辑电路220不生成MRS命令MRS_CMD。模式寄存器221的操作模式OP的逻辑值可以由外部命令EX_CMD确定。
在一个实施例中,构成分配给MAC电路标识MAC_ID的地址字段“A1、……和A16”的16比特位可以对应于MAC电路MAC0、……和MAC15中的相应的MAC电路,并且也可以对应于存储体BK0、……和BK15中的相应的存储体。例如,分配给MAC电路标识MAC_ID的地址字段“A1、……和A16”的第一比特位“A1”可以用作第一MAC电路MAC0和第一存储体BK0的控制比特位。当地址字段“A1、……和A16”的第一比特位“A1”具有逻辑值“0”,可以将第一MAC电路MAC0和第一存储体BK0分别指定为激活MAC电路和激活存储体。相反,当地址字段“A1、……和A16”的第一比特位“A1”具有逻辑值“1”,可以将第一MAC电路MAC0和第一存储体BK0分别指定为非激活MAC电路和非激活存储体。以同样的方式,可以通过其余地址字段“A2、……和A16”中的每个的逻辑值来判断第二MAC电路至第十六MAC电路MAC1、……和MAC15中的每个以及第二存储体至第十六存储体BK1、……和BK15中的每个是否为激活MAC电路和激活存储体。
如果包括在地址字段“A0~A16”中的全部比特位具有逻辑值“0”,则表示未指定非激活MAC电路和非激活存储体。即,在这种情况下,全部的MAC电路和全部的存储体都可以被指定为激活MAC电路和激活存储体,并且MAC运算可以由全部的MAC电路执行。即,可以执行整个MAC运算。相反,如果仅包括在地址字段“A0~A16”中的某些比特位具有逻辑值“0”,则表示存在非激活MAC电路和非激活存储体。在这种情况下,MAC运算不是由全部的MAC电路执行,并且选择性MAC运算可以仅由指定为激活MAC电路的MAC电路形成。
控制码生成器222可以接收模式寄存器221的设定值以生成并输出控制码CC。控制码CC可以定义为具有以下信息的码:关于PIM器件100A的操作模式的信息以及用于基于模式寄存器221的设定值来指定激活MAC电路和激活存储体(或非激活MAC电路和非激活存储体)的信息。在一个实施例中,当模式寄存器221的操作模式OP具有逻辑值“0”时,控制码CC可以被生成以请求生成MRS命令MRS_CMD。相反,当模式寄存器221的操作模式OP具有逻辑值“1”时,控制码CC不请求生成MRS命令MRS_CMD。在一个实施例中,当模式寄存器221的MAC电路标识MAC_ID具有二进制流“1111111100000000”时(即,包括在地址字段“A1~A16”中的第二比特位至第九比特位“A1~A8”的全部具有逻辑值“0”,并且包括在地址字段“A1~A16”中的第十比特位至第十一比特位“A9~A16”的全部具有逻辑值为“1”),控制码CC可以生成为指定第一MAC电路至第八MAC电路MAC0、……和MAC7和第一存储体至第八存储体BK0、……和BK7作为激活MAC电路和激活存储体,以及指定第九MAC电路至第十六MAC电路MAC8、……和MAC15和第九存储体至第十六存储体BK8、……和BK15作为非激活MAC电路和非激活存储体。
当控制码CC被生成为请求生成MRS命令MRS_CMD时,MRS命令生成器223可以接收从控制码生成器222输出的控制码CC,以生成并输出MRS命令MRS_CMD。当控制码CC不请求生成MRS命令MRS_CMD时,MRS命令生成器223不生成MRS命令MRS_CMD。MRS命令MRS_CMD可以包括关于包括在控制码CC中的激活MAC电路和激活存储体的信息。在本实施例的情况下,MRS命令MRS_CMD包括关于如下的信息:第一MAC电路至第八MAC电路MAC0、……和MAC7和第一存储体至第八存储体BK0、……和BK7是激活MAC电路和激活存储体,并且第九MAC电路至第十六MAC电路MAC8、……和MAC15和第九存储体至第十六存储体BK8、……和BK15是非激活MAC电路和非激活存储体。
图9示出了PIM器件100A的选择性MAC运算,并且图10示出了在PIM器件100A的选择性MAC运算期间MRS逻辑电路220中的模式寄存器221的配置。在图9中,与图7中使用的相同的附图标号和相同的附图标记表示相同的元件。因此,为了避免重复说明,在该实施例中将省略或简要提及与先前实施例中所阐述的相同元件的描述。如参照图6所描述的,可以假设仅利用设置在PIM器件100A中的第一MAC电路至第十六MAC电路MAC0、……和MAC15之中的第一MAC电路至第八MAC电路MAC0、……和MAC7来执行选择性MAC操作。在这种情况下,第一MAC电路至第八MAC电路MAC0、……和MAC7可以用作激活MAC电路MAC_ACT,而第九MAC电路至第十六MAC电路MAC8、……和MAC15可以用作非激活MAC电路MAC_NO_ACT。因此,第一存储体至第八存储体BK0、……和BK7可以用作激活存储体BK_ACT,并且第九存储体至第十六存储体BK8、……和BK15可以用作非激活存储体BK_NO_ACT。
参见图9,可以将请求PIM器件100A的MAC运算模式的外部命令EX_CMD输入至MRS逻辑电路220。如图10所示,包括在MRS逻辑电路220中的模式寄存器221的操作模式OP可以被设置为具有逻辑值“0”,使得PIM器件100A在MAC运算模式下工作。可以假设模式寄存器221的MAC电路标识MAC_ID被设置为具有二进制流“1111111100000000”。在这种情况下,第一MAC电路至第八MAC电路MAC0、……和MAC7可以被指定为激活MAC电路MAC_ACT,并且第九MAC电路至第十六MAC电路MAC8、……和MAC15可以被指定为非激活MAC电路MAC_NO_ACT。此外,第一存储体至第八存储体BK0、……和BK7可以被指定为激活存储体BK_ACT,并且第九存储体至第十六存储体BK8、……和BK15可以指定为非激活存储体BK_NO_ACT。
MRS逻辑电路220可以基于模式寄存器221的设定值来生成并输出MRS命令MRS_CMD。MRS命令MRS_CMD可以被发送至MAC命令生成器230。MAC命令生成器230可以响应于MRS命令MRS_CMD而生成并输出MAC运算命令MC。MAC运算命令MC可以包括激活控制信号ACT、MAC读取控制信号MR、MAC运算控制信号MAC_C和预充电控制信号PC。可以将包括在MAC运算命令MC中的激活控制信号ACT、MAC读取控制信号MR和预充电控制信号PC发送至激活存储体BK_ACT。可以将包括在MAC运算命令MC中的MAC运算控制信号MAC_C发送至激活MAC电路MAC_ACT。如图8中所示,MRS命令MRS_CMD可以包括用于基于控制码CC来将接收激活控制信号ACT、MAC读取控制信号MR和预充电控制信号PC的存储体(即,第一存储体至第八存储体BK0、……和BK7)限定为激活存储体BK_ACT的信息。另外,MRS命令MRS_CMD可以包括用于将接收MAC运算控制信号MAC_C的MAC电路(即,第一MAC电路至第八MAC电路MAC0、……和MAC7)限定为激活MAC电路MAC_ACT的信息。在一个实施例中,构成MAC运算命令MC的激活控制信号ACT、MAC读取控制信号MR、MAC运算控制信号MAC_C和预充电控制信号PC可以由MAC命令生成器230顺序地生成。
图11至图14示出了图7中所示的PIM器件100A的选择性MAC运算的步骤。在图11至图14中,如图7中所使用的相同的附图标号和相同的附图标记可以表示相同的元件。因此,为了避免重复说明,在该实施例中将省略或简要提及与先前实施例中所阐述的相同元件的描述。在本实施例中,可以假设通过从MRS逻辑电路(图7的220)生成的MRS命令MRS_CMD,将第一存储体至第八存储体BK0、……和BK7和第一MAC电路至第八MAC电路MAC0、……和MAC7指定为激活存储体BK_ACT和激活MAC电路MAC_ACT。在这种情况下,可以将其余存储体(即,第九存储体至第十六存储体BK8、……和BK15)指定为非激活存储体BK_NO_ACT,并且可以将其余MAC电路(即,第九MAC电路至第十六MAC电路MAC8、……和MAC15)指定为非激活MAC电路MAC_NO_ACT。
首先,如图11中所示,可以通过MAC命令生成器230来生成用于控制PIM器件100A的MAC运算的MAC运算命令MC的激活控制信号ACT。激活控制信号ACT可以被发送至与激活存储体BK_ACT相对应的第一存储体至第八存储体BK0、……和BK7。激活控制信号ACT不被发送至与非激活存储体BK_NO_ACT相对应的第九存储体至第十六存储体BK8、……和BK15。接收到激活控制信号ACT的第一存储体至第八存储体BK0、……和BK7可以被激活,以执行用于后续MAC运算的数据读取操作。相反,未接收到激活控制信号ACT的第九存储体至第十六存储体BK8、……和BK15可以被去激活,以不执行用于后续MAC运算的数据读取操作。
接下来,如图12中所示,可以通过MAC命令生成器230来生成用于控制PIM器件100A的MAC运算的MAC运算命令MC的MAC读取控制信号MR。MAC读取控制信号MR可以被发送至与激活存储体BK_ACT相对应的第一存储体至第八存储体BK0、……和BK7。MAC读取控制信号MR不被发送至与非激活存储体BK_NO_ACT相对应的第九存储体至第十六存储体BK8、……和BK15。因此,接收MAC读取控制信号MR的第一存储体至第八存储体BK0、……和BK7可以经由BIO线将用于MAC运算的第一数据W输出至对应的MAC电路。即,可以将第一数据W的第一权重数据W00经由第一BIO线110-0从第一存储体BK0发送至第一MAC电路MAC0,并且可以将第一数据W的第二权重数据W01经由第二BIO线110-1从第二存储体BK1发送至第二MAC电路MAC1。以相同的方式,可以将第一数据W的第八权重数据W07经由第八BIO线110-7从第八存储体BK7发送至第八MAC电路MAC7。另外,第二数据V可以被从全局缓冲器130发送至中第一MAC电路至第八MAC电路MAC0、……和MAC7中的每一个。在这种情况下,可以经由GIO线120发送第二数据V。
接下来,如图13中所示,可以通过MAC命令生成器230来生成用于控制PIM器件100A的MAC运算的MAC运算命令MC的MAC运算控制信号MAC_C。MAC运算控制信号MAC_C可以被发送至与激活MAC电路MAC_ACT相对应的第一MAC电路至第八MAC电路MAC0、……和MAC7。MAC运算控制信号MAC_C不被发送至与非激活MAC电路MAC_NO_ACT相对应的第九MAC电路至第十六MAC电路MAC8、……和MAC15。接收MAC运算控制信号MAC_C的第一MAC电路至第八MAC电路MAC0、……和MAC7可以执行第一数据W和第二数据V的MAC运算(即,“8×8”权重矩阵与“8×1”矢量矩阵的相乘计算),如参考图6所述。相反,与非激活MAC电路MAC_NO_ACT相对应的第九MAC电路至第十六MAC电路MAC8、……和MAC15不执行算术运算。
接下来,如图14中所示,可以通过MAC命令生成器230来生成用于控制PIM器件100A的MAC运算的MAC运算命令MC的预充电控制信号PC。预充电控制信号PC可以被发送至与激活存储体BK_ACT相对应的第一存储体至第八存储体BK0、……和BK7。预充电控制信号PC不被发送至与非激活存储体BK_NO_ACT相对应的第九存储体至第十六存储体BK8、……和BK15。接收预充电控制信号PC的第一存储体至第八存储体BK0、……和BK7可以通过预充电操作来预充电。相反,未接收预充电控制信号PC的第九存储体至第十六存储体BK8、……和BK15不执行预充电操作。
图15是示出图7中所示的PIM器件100A的选择性MAC运算的时序图。参见图15,MAC命令生成器230可以与时钟信号CLK的下降沿同步,以生成并输出MAC运算命令MC的激活控制信号ACT。与激活存储体BK_ACT相对应的第一存储体至第八存储体BK0、……和BK7可以通过激活控制信号ACT来激活。随后,MAC命令生成器230可以与时钟信号CLK的下降沿同步,以生成并输出MAC运算命令MC的MAC读取控制信号MR。与激活存储体BK_ACT相对应的第一存储体至第八存储体BK0、……和BK7可以通过MAC读取控制信号MR来选择,使得第一数据W从第一存储体至第八存储体BK0、……和BK7发送与激活MAC电路MAC_ACT相对应的第一MAC电路至第八MAC电路MAC0、……和MAC7。另外,第二数据V可以从全局缓冲器130发送至第一MAC电路至第八MAC电路MAC0、……和MAC7中的每一个,独立于第一存储体至第八存储体BK0、……和BK7的选择。
随后,MAC命令生成器230可以与时钟信号CLK的下降沿同步,以生成并输出MAC运算命令MC的MAC运算控制信号MAC_C。MAC运算控制信号MAC_C可以被发送至与激活MAC电路MAC_ACT相对应的第一MAC电路至第八MAC电路MAC0、……和MAC7。第一MAC电路至第八MAC电路MAC0、……和MAC7可以响应于MAC运算控制信号MAC_C来执行MAC运算,以生成MAC运算结果数据DA_MAC。随后,如果MAC运算终止,则MAC命令生成器230可以与时钟信号CLK的下降沿同步,以生成并输出MAC运算命令MC的预充电控制信号PC。可以通过预充电控制信号PC对与激活存储体BK_ACT相对应的第一存储体至第八存储体BK0、……和BK7进行预充电。
图16示出了根据本公开的又一个实施例的PIM器件300的配置。PIM器件300可以具有与参照图7描述的PIM器件100A相同的配置,除了MAC电路和存储体的设置结构以及不存在全局缓冲器130和BIO线110-0~110-15之外。因此,在下文中将省略与参照图7所阐述的相同的描述。参见图16,PIM器件300可以包括多个储存区域(例如,第一存储体BK0至第十六存储体BK15)和多个MAC电路(例如,第一MAC电路MAC0至第八MAC电路MAC7)。在本实施例中,第一存储体BK0至第十六存储体BK15可以包括第一组存储体(例如,奇数存储体BK0、BK2、……和BK14)和第二组存储体(例如,偶数存储体BK1、BK3、……和BK15)。第一组存储体BK0、BK2、……和BK14中的一个和第二组存储体BK1、BK3、……和BK15中的一个可以构成一对存储体。例如,第一存储体BK0和第二存储体BK1可以构成一对存储体BK0_BK1,并且第三存储体BK2和第四存储体BK3可以构成一对存储体BK2_BK3。类似地,第十五存储体BK14和第十六存储体BK15可以构成一对存储体BK14_BK15。
可以将第一MAC电路MAC0至第八MAC电路MAC7中的每一个分配给多个存储体对中的一个。因此,第一组存储体BK0、BK2、……和BK14的数量、第二组存储体BK1、BK3、……和BK15的数量以及MAC电路MAC0~MAC7的数量可以彼此相等。在一个实施例中,一对存储体BK0_BK1可以彼此共享第一MAC电路MAC0,并且一对存储体BK2_BK3可以彼此共享第二MAC电路MAC1。类似地,一对存储体BK14_BK15可以彼此共享第八MAC电路MAC7。一对存储体和由该对存储体共享的一个MAC电路可以构成一个MAC单元。例如,第一存储体BK0、第二存储体BK1和第一MAC电路MAC0可以构成第一MAC单元。
MAC电路MAC0、……和MAC7中的每一个可以从第一组存储体中的一个和第二组存储体中的一个接收第一数据W和第二数据V,以对第一数据W和第二数据V执行MAC运算。在一个实施例中,第一数据W可以对应于权重数据,第二数据V可以对应于矢量数据。第一数据W和第二数据V可以经由GIO线120被发送至MAC电路。因此,从包括在特定MAC单元中的一对存储体输出的第一数据W和第二数据V可以以串行传输模式被发送至包括在特定MAC单元中的MAC电路。在串行传输模式下,第一数据W和第二数据V被顺序地传输到MAC电路。
图17示出了图16中所示的PIM器件300的MAC运算的示例。特别地,在本实施例中,将描述由PIM器件300的整个MAC运算执行的算术运算。由PIM器件300的MAC电路MAC0、……和MAC7执行的整个MAC运算可以通过将采用与权重数据相对应的第一数据W作为元素的权重矩阵与采用与矢量数据相对应的第二数据V作为元素的矢量矩阵相乘来执行。权重矩阵可以具有“M×N”矩阵形式,并且矢量矩阵可以具有“N×1”矩阵形式。表示权重矩阵的行数的数量“M”可以等于存储体BK0、……和BK15的数量的一半。另外,表示权重矩阵的列数和矢量矩阵的行数的数量“N”可以等于包括在第一数据W中的比特位数(或者包括在第二数据V中的比特位数)。
如参照图16所述的,第一数据W可以从第一组存储体BK0、BK2、……和BK14被发送至MAC电路MAC0、……和MAC7,并且第二数据V可以从第二组存储体BK1、BK3、……和BK15被发送至MAC电路MAC0、……和MAC7。在本实施例中,可以假设第一数据W和第二数据V中的每一个包括8比特位二进制流。在这种情况下,在权重矩阵的第一行中的元素W00.0、W00.1、W00.2、……和W00.7可以对应于从第一存储体BK0发送至第一MAC电路MAC0的第一权重数据W00。此外,在权重矩阵的第二行中的元素W01.0、W01.1、……和W01.7可以对应于从第三存储体BK2发送至第二MAC电路MAC1的第二权重数据W01。以相同的方式,在权重矩阵的第八行中的元素W07.0、W07.1、W07.2、……和W07.7可以对应于从第十五存储体BK14发送至第八MAC电路MAC7的第八权重数据W07。在矢量矩阵的第一列中的元素V0.0、V1.0、……和V7.0可以对应于从第二组存储体BK1、BK3、……和BK15中的每一个发送到MAC电路MAC0、……和MAC7的每一个的第二数据V。在本实施例中执行的MAC运算可以对应于由全部的MAC单元执行的整个MAC运算。
图18示出了图16中所示的PIM器件300的MAC运算的另一个示例。特别地,在本实施例中,将描述由PIM器件300的选择性MAC运算执行的算术运算。选择性MAC运算可以应用于PIM器件300包括足够的资源(例如,足够的存储体和MAC电路)以处理给定的MAC算术计算的情况。例如,如图18中所示,在矢量矩阵的第一列中的元素V0.0、V1.0、……和V7.0可以从第二组存储体BK1、BK3、……和BK15中的每一个发送至MAC电路MAC0、……和MAC7的每一个。然而,在权重矩阵的情况下,第一数据W不是从全部的第一组存储体BK0、……和BK15发送至全部的MAC电路MAC0、……和MAC7,而是从第一组存储体BK0、BK2……和BK15之中的某些存储体(例如,第一存储体BK0、第三存储体BK2、第五存储体BK4和第七存储体BK6)发送至第一MAC电路至第八MAC电路MAC0、……和MAC7之中的某些MAC电路(例如,第一MAC电路MAC0、第二MAC电路MAC1、第三MAC电路MAC2和第四MAC电路MAC3)。在这种情况下,不是由全部的MAC电路执行MAC运算,而是仅由输入了第一数据W的第一MAC电路至第四MAC电路MAC0、……和MAC3来执行MAC运算。即,选择性MAC运算可以表示在仅由包括在PIM器件300中的某些MAC电路执行PIM器件300所需的MAC算术计算的情况下所执行的MAC运算。
图19示出了PIM器件300的选择性MAC运算。参见图19,可以假设第一数据W从包括在第一组存储体中的第一存储体BK0、第三存储体BK2、第五存储体BK4和第七存储体BK6被发送至第一MAC电路至第四MAC电路MAC0、……和MAC3。在这种情况下,第五MAC电路至第八MAC电路MAC4、……和MAC7不执行MAC运算。即,第一MAC电路至第四MAC电路MAC0、……和MAC3可以对应于激活MAC电路MAC_ACT,而第五MAC电路至第八MAC电路MAC4、……和MAC7可以对应于非激活MAC电路MAC_NO_ACT。另外,第一组存储体之中的第一存储体BK0、第三存储体BK2、第五存储体BK4和第七存储体BK6和第二组存储体之中的第二存储体BK1、第四存储体BK3、第六存储体BK5和第八存储体BK7(其与激活MAC电路MAC_ACT相对应的第一MAC电路至第四MAC电路MAC0、……和MAC3一起构成MAC单元)可以用作激活存储体BK_ACT。相反,第一组存储体中的第九存储体BK8、第十一存储体BK10、第十三存储体BK12和第十五存储体BK14以及第二组存储体中的第十存储体BK9、第十二存储体BK11、第十四存储体BK13和第十六存储体BK15(其与非激活MAC电路MAC_NO_ACT相对应的第五MAC电路至第八MAC电路MAC4、……和MAC7一起构成MAC单元)可以用作非激活存储体BK_NO_ACT。
根据上述PIM器件300,基于由MRS逻辑电路220生成的MRS命令MRS_CMD中包括的信息,可以将由MAC命令生成器230生成的激活控制信号ACT、MAC运算命令MC(即,MAC读取控制信号MR、MAC运算控制信号MAC_C和预充电控制信号PC)选择性地发送至第一组存储体之中的激活存储体BK_ACT(即,第一存储体BK0、第三存储体BK2、第五存储体BK4和第七存储体BK6)、第二组存储体之中的激活存储体BK_ACT(即,第二存储体BK1、第四存储体BK3、第六存储体BK5和第八存储体BK7)以及MAC电路之中的激活MAC电路MAC_ACT(即,第一MAC电路至第四MAC电路MAC0、……和MAC3)。因此,PIM器件300的选择性MAC运算可以仅由第一MAC电路至第四MAC电路MAC0、……和MAC7执行,并且第五MAC电路至第八MAC电路MAC4、……和MAC7不执行算术运算。
根据上述各种实施例,当仅通过从包括在PIM器件中的MAC电路中选择的至少一个来执行PIM器件所需的MAC运算时,PIM器件可以执行选择性MAC运算,使得未选择的MAC电路被去激活。因此,可以在MAC运算期间减少PIM器件的功耗。
以上已经出于说明性目的呈现了本教导的有限数量的可能实施例。本领域的普通技术人员将理解的是,各种修改、添加和替换是可能的。尽管本专利文件包括许多细节,但是这些细节不应被解释为对本教导的范围或可要求保护的范围的限制,而应被解释为对特定实施例而言特定的特征的描述。在单独的实施例的情况下在本专利文件中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。此外,尽管以上可以将特征描述为以某些组合起作用并且甚至最初如此声称,但是在某些情况下可以从组合中去除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变型。
Claims (15)
1.一种存储器内处理器件,包括:
多个储存区域;
全局缓冲器;以及
多个乘法和累加MAC电路,其被配置为对来自所述多个储存区域中的一个的第一数据和来自所述全局缓冲器的第二数据执行MAC运算,
其中,所述多个MAC电路中的每个被分类为激活MAC电路和非激活MAC电路中的一种,以及
其中,所述MAC运算包括选择性MAC运算,所述选择性MAC运算由所述激活MAC电路选择性地执行。
2.根据权利要求1所述的存储器内处理器件,其中,所述多个储存区域中的每个对应于包括在动态随机存取存储器DRAM中的存储体。
3.根据权利要求1所述的存储器内处理器件,还包括模式寄存器设定MRS逻辑电路,其被配置为响应于由外部器件提供以请求所述MAC运算的外部命令来生成并输出包括用于指定所述激活MAC电路的信息的MRS命令。
4.根据权利要求3所述的存储器内处理器件,其中,所述MRS命令还包括用于指定所述多个储存区域之中的、被分配给所述激活MAC电路的激活储存区域的信息。
5.根据权利要求4所述的存储器内处理器件,其中,所述MRS逻辑电路包括:
模式寄存器,其被配置为储存具有用于指定所述激活MAC电路的信息的MAC电路标识;
控制码生成器,其被配置为从所述MAC电路标识生成包括关于所述激活MAC电路的信息的控制码;以及
MRS命令生成器,其被配置为根据所述控制码来生成包括关于所述激活MAC电路的信息和对所述MAC运算的请求的所述MRS命令。
6.根据权利要求5所述的存储器内处理器件,其中,所述MAC电路标识包括与所述多个MAC电路中的相应MAC电路相对应的多个比特位。
7.根据权利要求6所述的存储器内处理器件,其中,所述模式寄存器还包括用于确定执行所述MAC运算的比特位。
8.根据权利要求4所述的存储器内处理器件,还包括MAC命令生成器,其被配置为接收从所述MRS逻辑电路输出的所述MRS命令,并且被配置为生成MAC运算命令并将所述MAC运算命令选择性地发送至由所述MRS命令指定的所述激活MAC电路和所述激活储存区域。
9.根据权利要求8所述的存储器内处理器件,其中,所述MAC运算命令包括激活控制信号、MAC读取控制信号以及MAC运算控制信号,所述激活控制信号用于选择性地激活所述激活储存区域,所述MAC读取控制信号用于将储存在所述激活储存区域中的所述第一数据发送至所述激活MAC电路,所述MAC运算控制信号用于控制所述激活MAC电路的所述MAC运算。
10.根据权利要求9所述的存储器内处理器件,其中,所述MAC命令生成器被配置为顺序地生成所述激活控制信号、所述MAC读取控制信号和所述MAC运算控制信号。
11.根据权利要求9所述的存储器内处理器件,其中,所述MAC运算命令还包括用于选择性地对所述激活储存区域进行预充电的预充电控制信号。
12.根据权利要求11所述的存储器内处理器件,其中,所述MAC命令生成器被配置为顺序地生成所述激活控制信号、所述MAC读取控制信号、所述MAC运算控制信号和所述预充电控制信号。
13.根据权利要求1所述的存储器内处理器件,还包括:
全局输入和输出GIO线,其在所述全局缓冲器与所述多个储存区域的每个之间提供数据传输路径;以及
存储体输入和输出BIO线,来自所述BIO线的一个BIO线在来自所述多个储存区域的储存区域与来自所述多个MAC电路的、被分配给所述储存区域的MAC电路之间提供数据传输路径。
14.根据权利要求13所述的存储器内处理器件,
其中,所述第一数据经由所述BIO线从所述多个储存区域发送至所述多个MAC电路;以及
其中,所述第二数据经由所述GIO线从所述全局缓冲器发送至所述多个MAC电路。
15.根据权利要求14所述的存储器内处理器件,其中,所述第一数据和所述第二数据在并行传输模式下发送。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0006904 | 2020-01-17 | ||
KR1020200006904A KR20210093127A (ko) | 2020-01-17 | 2020-01-17 | Aim 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113138799A true CN113138799A (zh) | 2021-07-20 |
CN113138799B CN113138799B (zh) | 2024-03-15 |
Family
ID=76811281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110056626.4A Active CN113138799B (zh) | 2020-01-17 | 2021-01-15 | 存储器内处理器件 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11474787B2 (zh) |
KR (1) | KR20210093127A (zh) |
CN (1) | CN113138799B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11544547B2 (en) * | 2020-06-22 | 2023-01-03 | Western Digital Technologies, Inc. | Accelerating binary neural networks within latch structure of non-volatile memory devices |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246628B1 (en) * | 1999-05-28 | 2001-06-12 | Fujitsu Limited | Semiconductor memory device having read/write amplifiers disposed for respective memory segments |
KR20030000355A (ko) * | 2001-06-23 | 2003-01-06 | 주식회사 하이닉스반도체 | 고속 기록 동작을 가능하게 하는 기록 인에이블 신호 버퍼및 이를 이용하는 반도체 기억 장치 |
WO2007088426A1 (en) * | 2006-01-31 | 2007-08-09 | Freescale Semiconductor, Inc. | Device and method for accessing dynamic memory units |
US20080225766A1 (en) * | 2007-03-15 | 2008-09-18 | Interdigital Technology Corporation | Method and apparatus for reconfiguring medium access control components in wireless communications |
CN108009627A (zh) * | 2016-10-27 | 2018-05-08 | 谷歌公司 | 神经网络指令集架构 |
US20180307483A1 (en) * | 2017-04-21 | 2018-10-25 | Micron Technology, Inc. | Apparatus and method to switch configurable logic units |
US20190102170A1 (en) * | 2018-09-28 | 2019-04-04 | Intel Corporation | Techniques for current-sensing circuit design for compute-in-memory |
US20190208548A1 (en) * | 2017-12-28 | 2019-07-04 | Asustek Computer Inc. | Method and apparatus of selecting bandwidth part for random access (ra) procedure in a wireless communication system |
US20190340491A1 (en) * | 2018-05-04 | 2019-11-07 | Apple Inc. | Scalable neural network processing engine |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764553A (en) * | 1996-02-28 | 1998-06-09 | Lsi Logic Corporation | Generalized data processing path for performing transformation and quantization functions for video encoder systems |
KR102534917B1 (ko) | 2017-08-16 | 2023-05-19 | 에스케이하이닉스 주식회사 | 신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
WO2019104695A1 (zh) * | 2017-11-30 | 2019-06-06 | 深圳市大疆创新科技有限公司 | 用于神经网络的运算装置、芯片、设备及相关方法 |
KR20200025200A (ko) * | 2018-08-29 | 2020-03-10 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 동작 방법 |
KR102664213B1 (ko) * | 2018-10-08 | 2024-05-08 | 삼성전자주식회사 | 인-메모리 프리페칭을 수행하는 메모리 장치 및 이를 포함하는 시스템 |
KR20200082617A (ko) * | 2018-12-31 | 2020-07-08 | 삼성전자주식회사 | 메모리 장치를 이용한 계산 방법 및 이를 수행하는 메모리 장치 |
KR20210042757A (ko) * | 2019-10-10 | 2021-04-20 | 삼성전자주식회사 | Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법 |
-
2020
- 2020-01-17 KR KR1020200006904A patent/KR20210093127A/ko unknown
-
2021
- 2021-01-15 CN CN202110056626.4A patent/CN113138799B/zh active Active
- 2021-01-15 US US17/150,820 patent/US11474787B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246628B1 (en) * | 1999-05-28 | 2001-06-12 | Fujitsu Limited | Semiconductor memory device having read/write amplifiers disposed for respective memory segments |
KR20030000355A (ko) * | 2001-06-23 | 2003-01-06 | 주식회사 하이닉스반도체 | 고속 기록 동작을 가능하게 하는 기록 인에이블 신호 버퍼및 이를 이용하는 반도체 기억 장치 |
WO2007088426A1 (en) * | 2006-01-31 | 2007-08-09 | Freescale Semiconductor, Inc. | Device and method for accessing dynamic memory units |
US20080225766A1 (en) * | 2007-03-15 | 2008-09-18 | Interdigital Technology Corporation | Method and apparatus for reconfiguring medium access control components in wireless communications |
CN108009627A (zh) * | 2016-10-27 | 2018-05-08 | 谷歌公司 | 神经网络指令集架构 |
US20180307483A1 (en) * | 2017-04-21 | 2018-10-25 | Micron Technology, Inc. | Apparatus and method to switch configurable logic units |
US20190208548A1 (en) * | 2017-12-28 | 2019-07-04 | Asustek Computer Inc. | Method and apparatus of selecting bandwidth part for random access (ra) procedure in a wireless communication system |
US20190340491A1 (en) * | 2018-05-04 | 2019-11-07 | Apple Inc. | Scalable neural network processing engine |
US20190102170A1 (en) * | 2018-09-28 | 2019-04-04 | Intel Corporation | Techniques for current-sensing circuit design for compute-in-memory |
Non-Patent Citations (2)
Title |
---|
徐金波;窦勇;: "面向多兴趣区域图像处理应用的高效无冲突并行访问存储模型", 计算机学报, no. 11, 15 November 2008 (2008-11-15) * |
王江;黑勇;郑晓燕;仇玉林;: "一种无线局域网专用高性能FFT处理器设计", 电子器件, no. 02, 30 April 2007 (2007-04-30) * |
Also Published As
Publication number | Publication date |
---|---|
CN113138799B (zh) | 2024-03-15 |
KR20210093127A (ko) | 2021-07-27 |
US11474787B2 (en) | 2022-10-18 |
US20210224038A1 (en) | 2021-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1988034B (zh) | 具有在端口间的数据发送模式的多径访问半导体存储器件 | |
US6603683B2 (en) | Decoding scheme for a stacked bank architecture | |
US5226009A (en) | Semiconductor memory device supporting cache and method of driving the same | |
US5471430A (en) | Test circuit for refresh counter of clock synchronous type semiconductor memory device | |
EP0646928B1 (en) | Synchronous dynamic random access memory | |
CN100545940C (zh) | 控制存储器的存取和刷新的系统和方法 | |
CN105654983B (zh) | 半导体器件及包括半导体器件的存储系统 | |
US20060133186A1 (en) | Memory access using multiple activated memory cell rows | |
US6483760B2 (en) | Semiconductor memory integrated circuit operating at different test modes | |
CN100570739C (zh) | 用于在动态随机存取存储器中隐藏刷新的方法和系统 | |
US20120155200A1 (en) | Memory device, memory system including the same, and control method thereof | |
US20220292033A1 (en) | Memory device with internal processing interface | |
US6603690B1 (en) | Low-power static column redundancy scheme for semiconductor memories | |
KR100890381B1 (ko) | 반도체 메모리 소자 | |
US5745914A (en) | Technique for converting system signals from one address configuration to a different address configuration | |
US5949734A (en) | Semiconductor memory device | |
CN113138799B (zh) | 存储器内处理器件 | |
CN113157632B (zh) | 存储器内处理器件 | |
US11763876B2 (en) | Memory devices including an operation mode supporting virtual bank calculation, and operating methods of the memory devices | |
US6331963B1 (en) | Semiconductor memory device and layout method thereof | |
KR20090005786A (ko) | 메모리 사용확장 기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치 및 그에 따른 메모리 사용확장 방법 | |
CN115836347A (zh) | 一种存储器及数据迁移方法 | |
JP2000163990A (ja) | 半導体記憶装置 | |
KR19990040441A (ko) | 테스트 타임이 감소되는 고속 반도체 메모리장치의입출력회로 | |
US6839261B2 (en) | Semiconductor memory device |
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 |