CN113805790A - 执行存储器内处理的存储器装置 - Google Patents
执行存储器内处理的存储器装置 Download PDFInfo
- Publication number
- CN113805790A CN113805790A CN202011442348.8A CN202011442348A CN113805790A CN 113805790 A CN113805790 A CN 113805790A CN 202011442348 A CN202011442348 A CN 202011442348A CN 113805790 A CN113805790 A CN 113805790A
- Authority
- CN
- China
- Prior art keywords
- memory
- bank
- banks
- group
- memory banks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 60
- 238000012546 transfer Methods 0.000 claims abstract description 33
- 238000013528 artificial neural network Methods 0.000 claims description 6
- 230000001174 ascending effect Effects 0.000 claims description 5
- 238000004148 unit process Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 20
- 238000000034 method Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/785—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) with decentralized control, e.g. smart memories
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0658—Controller construction arrangements
-
- 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
- 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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
- G06F7/523—Multiplying only
-
- 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/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30079—Pipeline control instructions, e.g. multicycle NOP
-
- 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/3802—Instruction prefetching
-
- 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
- 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/1039—Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
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)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Neurology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Dram (AREA)
- Memory System (AREA)
- Advance Control (AREA)
Abstract
提供了一种执行存储器内处理的存储器装置。所述存储器装置包括:存储器内操作单元,执行被流水线化为多流水线级的操作的存储器内处理;存储器存储体,被分配给存储器内操作单元,使得由n个存储器存储体形成的组被分配给每个存储器内操作单元,每个存储器存储体在流水线化的操作被执行的同时执行由多个存储器内操作单元中的每个请求的数据的访问操作,其中,n是自然数;存储器裸片,存储器内操作单元、存储器存储体和被配置为从外部源接收命令信号的命令垫布置在存储器裸片中。每个由n个存储器存储体形成的组包括具有到命令垫的第一数据传输距离的第一存储器存储体和具有大于第一数据传输距离的到命令垫的第二数据传输距离的第二存储器存储体。
Description
本申请要求于2020年6月17日在韩国知识产权局提交的第10-2020-0073733号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
下面的描述涉及一种用于通过使用存储器内操作单元来执行存储器内处理的存储器装置。
背景技术
诸如图形算法的处理、神经网络的处理等的应用是计算密集型操作,并且需要具有大量的计算操作和存储器容量的计算系统。能够经由存储器装置的内部处理(或存储器内处理(in-memory processing))执行计算系统的计算操作中的一些的存储器内处理器(PIM)类型的存储器装置正在被开发。这样,计算系统的计算操作的负载可经由存储器装置的内部处理而被减少。然而,当用于内部处理的单独的处理硬件被添加到存储器装置时,高效地执行单独的处理硬件的接口连接(interfacing)和操作处理的方法可被需要。
发明内容
提供本发明内容以便以简化的形式介绍以下在具体实施方式中进一步描述的构思的选择。本发明内容不意在确定要求权利的主题的关键特征或必要特征,也不意在用于帮助确定要求权利的主题的范围。
在一个总体方面,一种用于执行存储器内处理的存储器装置包括:多个存储器内操作单元,被配置为执行被流水线化为多流水线级的操作的存储器内处理;多个存储器存储体,被分配给所述多个存储器内操作单元,使得由n个存储器存储体形成的组被分配给所述多个存储器内操作单元中的每个,每个存储器存储体被配置为在流水线化的操作被执行的同时执行由所述多个存储器内操作单元中的每个请求的数据的访问操作,其中,n是自然数;和存储器裸片,所述多个存储器内操作单元、所述多个存储器存储体以及被配置为从外部源接收命令信号的命令垫布置在存储器裸片中。每个由n个存储器存储体形成的组包括具有到命令垫的第一数据传输距离的第一存储器存储体和具有到命令垫的第二数据传输距离的第二存储器存储体,第二数据传输距离大于第一数据传输距离。
所述多个存储器内操作单元中的每个可被配置为:在访问相应的由n个存储器存储体形成的组的第二存储器存储体之前访问相应的由n个存储器存储体形成的组的第一存储器存储体,以执行流水线化的操作的存储器内处理。
存储器裸片还可包括:存储体选择器,被配置为:针对每个由n个存储器存储体形成的组,基于第一数据传输距离和第二数据传输距离顺序地选择第一存储器存储体和第二存储器存储体;和复用器,被配置为:将从由存储体选择器选择的第一存储器存储体或第二存储器存储体访问的数据提供给相应的存储器内操作单元。
所述多个存储器存储体可包括布置在存储器裸片上的第一侧的第一组存储器存储体和布置在存储器裸片上的另一侧的第二组存储器存储体,并且所述多个存储器内操作单元可包括第一组存储器内操作单元和第二组存储器内操作单元,第一组存储器内操作单元在第一组存储器存储体与第二组存储器存储体之间的区域中被布置得与第一组存储器存储体邻近并连接到第一组存储器存储体,第二组存储器内操作单元在所述区域中被布置得与第二组存储器存储体邻近并连接到第二组存储器存储体。
命令垫可布置在所述区域中的第一组存储器内操作单元与第二组存储器内操作单元之间,并且每个由n个存储器存储体形成的组的第一存储器存储体和第二存储器存储体可根据所述区域内的第一数据传输距离和第二数据传输距离被分类。
第一组存储器存储体可被分类成两个组,所述两个组包括布置为更靠近命令垫的第一组和布置为距命令垫更远的第二组,并且每个由n个存储器存储体形成的组的第一存储器存储体从第一组被选择,每个由n个存储器存储体形成的组的第二存储器存储体从第二组被选择。
第一组存储器存储体之中的由n个存储器存储体形成的第一组可被分配给第一组存储器内操作单元之中的第一存储器内操作单元,并且第一存储器内操作单元可在从由n个存储器存储体形成的第一组的第二存储器存储体访问的数据之前针对从由n个存储器存储体形成的第一组的第一存储器存储体访问的数据处理流水线化的操作。
所述存储器装置可以是双倍数据速率4动态随机存取存储器(DDR4DRAM)模块,第一组存储器存储体可包括8个存储器存储体,并且第二组存储器存储体可包括8个存储器存储体,并且第一组存储器内操作单元可包括8/n个存储器内操作单元,并且第二组存储器内操作单元可包括8/n个存储器内操作单元。
第一组存储器存储体可包括按照第一方向的顺序的第一存储器存储体、第二存储器存储体、第三存储器存储体、第四存储器存储体、第五存储器存储体、第六存储器存储体、第七存储器存储体以及第八存储器存储体,第一组存储器内操作单元可包括按照第一方向的顺序的第一存储器内操作单元、第二存储器内操作单元、第三存储器内操作单元以及第四存储器内操作单元,并且第一存储器存储体和第三存储器存储体可被分配给第一存储器内操作单元,第二存储器存储体和第四存储器存储体可被分配给第二存储器内操作单元,第五存储器存储体和第七存储器存储体可被分配给第三存储器内操作单元,并且第六存储器存储体和第八存储器存储体可被分配给第四存储器内操作单元。
第二组存储器存储体与第二组存储器内操作单元之间的连接可对称于第一组存储器存储体与第一组存储器内操作单元之间的连接。
所述多个存储器内操作单元中的每个可包括:至少一个流水线寄存器,被配置为缓冲流水线化的操作的每个流水线级中的子操作结果。
流水线化的操作可包括神经网络的乘积累加(MAC)运算。
在另一总体方面,一种用于执行存储器内处理的存储器装置包括:多个存储器内操作单元,被配置为执行被流水线化为多流水线级的操作的存储器内处理;和多个存储器存储体,被分配给所述多个存储器内操作单元,使得由n个存储器存储体形成的组被分配给所述多个存储器内操作单元中的每个,每个存储器存储体被配置为在流水线化的操作被执行的同时执行由所述多个存储器内操作单元中的每个请求的数据的访问操作,其中,n是自然数。每个由n个存储器存储体形成的组可包括:具有用于从外部源提供的命令信号的数据传输的第一物理距离的第一存储器存储体和具有用于命令信号的数据传输的第二物理距离的第二存储器存储体,第二物理距离大于第一物理距离。
所述多个存储器内操作单元中的每个可被配置为:在相应的由n个存储器存储体形成的组的第二存储器存储体之前访问相应的由n个存储器存储体形成的组的第一存储器存储体,以执行流水线化的操作的存储器内处理。
所述存储器装置还可包括:存储体选择器,被配置为:针对每个由n个存储器存储体形成的组,基于第一物理距离和第二物理距离顺序地选择第一存储器存储体和第二存储器存储体;和复用器,被配置为:将从由存储体选择器选择的第一存储器存储体或第二存储器存储体访问的数据提供给相应的存储器内操作单元。
在另一总体方面,一种存储器装置包括:多个存储器内操作单元,被配置为执行神经网络的流水线化的操作的存储器内处理;多个存储器存储体,每个存储器存储体被分配给所述多个存储器内操作单元中的一个,使得由n个存储器存储体形成的组被分配给所述多个存储器内操作单元中的每个,每个存储器存储体被配置为在流水线化的操作被执行的同时执行由分配的存储器内操作单元请求的数据的访问操作,其中,n是大于或等于2的整数;和命令垫,被配置为从外部源接收命令信号。所述多个存储器内操作单元中的每个被配置为:按照基于从相应的由n个存储器存储体形成的组中的每个存储器存储体到命令垫的距离确定的顺序,访问来自相应的分配的由n个存储器存储体形成的组的存储器存储体。
从相应的由n个存储器存储体形成的组中的每个存储器存储体到命令垫的距离可以是数据传输距离,并且所述多个存储器内操作单元中的每个可被配置为按照数据传输距离的升序访问来自相应的分配的由n个存储器存储体形成的组的存储器存储体。
从相应的由n个存储器存储体形成的组中的每个存储器存储体到命令垫的距离可以是物理距离,并且所述多个存储器内操作单元中的每个可被配置为按照物理距离的升序访问来自相应的分配的由n个存储器存储体形成的组的存储器存储体。
从下面的具体实施方式、附图以及权利要求,其它特征和方面将是清楚的。
附图说明
图1是根据示例的存储器系统的框图。
图2A和图2B是用于描述根据示例的存储器存储体与存储器内操作单元之间的分配比率的示图。
图3是用于描述根据示例的存储器裸片上的存储器内操作单元与存储器存储体之间的硬件连接的示图。
图4是用于描述根据示例的操作的流水线的示图。
图5是用于描述根据示例的流水线级被分配给每个存储器存储体以用于图4的流水线化的操作的存储器内处理的示图。
图6是用于描述当布置在不同位置处的存储器存储体被访问(读取/写入)时可能发生的延迟差的示图。
图7是用于描述根据示例的存储器裸片上的存储器内操作单元的布置的示图。
图8是用于描述根据示例的映射到存储器内操作单元的存储器存储体处理操作所通过的方法的示图。
图9是根据示例的用于将远的存储器存储体被首先访问的情况和近的存储器存储体被首先访问的情况进行比较的示图。
图10是根据示例的包括存储器装置的计算系统的框图。
贯穿附图和具体实施方式,除非另外描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对尺寸、比例和描绘可被夸大。
具体实施方式
提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不限于在此阐述的操作的顺序,而是除了必须以特定的顺序发生的操作之外,操作的顺序可如在理解本申请的公开之后将是清楚的那样被改变。此外,为了更加清楚和简明,可省略在理解本申请的公开之后已知的特征的描述。
在此描述的特征可以以不同的形式来实现,而不应被解释为限于在此描述的示例。相反,在此描述的示例已被提供,以仅示出在理解本申请的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。
贯穿说明书,当组件被描述为“连接到”或“结合到”另一组件时,该组件可直接“连接到”或“结合到”该另一组件,或者可存在介于其间的一个或多个其它组件。相反,当元件被描述为“直接连接到”或“直接结合到”另一元件时,可不存在介于其间的其它元件。同样地,相似的表述(例如,“在……之间”与“紧接在……之间”以及“与……邻近”与“与……紧邻”)也应以相同的方式解释。如在此使用的,术语“和/或”包括相关联的所列项中的任何一个以及任何两个或更多个的任何组合。
尽管在此可使用诸如“第一”、“第二”和“第三”的术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不应被这些术语所限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
在此使用的术语仅用于描述各种示例,并不将用于限制公开。除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。术语“包含”、“包括”和“具有”说明存在叙述的特征、数量、操作、构件、元件和/或它们的组合,但不排除存在或添加一个或多个其它特征、数量、操作、构件、元件和/或它们的组合。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与由本公开所属领域的普通技术人员通常理解以及基于对本申请的公开的理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,通用词典中定义的术语)将被解释为具有与它们在相关领域和本申请的公开的上下文中的含义一致的含义,并且不应被理想化或过于形式化地解释。在此针对示例或实施例的术语“可”的使用(例如,关于示例或实施例可包括或实现什么)表示存在包括或实现这样的特征的至少一个示例或实施例,而所有示例不限于此。
在下文中,将参照附图详细描述示例。然而,示例可以以许多不同的形式来实现,并且不限于在此描述的那些形式。
图1是根据示例的存储器系统1的框图。
参照图1,存储器系统1可包括存储器装置10和存储器控制器20。存储器装置10可包括执行存储器内处理(in-memory processing)的多个存储器内操作单元110和包括多个存储器单元的多个存储器存储体120。
存储器装置10可被实现为存储器芯片或存储器模块。存储器控制器20可被实现为主机或存储器装置10的部分,存储器控制器20可被布置在一个存储器模块中。换句话说,实现形式可变化,并且不限于一种。尽管在图1中未示出主机,但是主机是通过控制存储器系统1来执行计算操作的功能块,并且可对应于中央处理器(CPU)、数字信号处理器(DSP)、图形处理器(GPU)或应用处理器(AP)。
存储器控制器20可将各种信号提供给存储器装置10,以控制存储器装置10的所有操作。例如,存储器控制器20可控制存储器装置10的存储器访问操作(诸如,读取和写入)。具体地,存储器控制器20可将命令CMD和地址ADDR提供给存储器装置10,以在存储器装置10上写入数据DATA或者从存储器装置10读取数据DATA。此外,存储器控制器20还可将时钟信号CLK提供给存储器装置10。
命令CMD可包括用于将存储器存储体120切换到激活状态以读取或写入数据的激活命令。响应于激活命令,存储器装置10可激活包括在存储器存储体120中的行(即,字线)。此外,命令CMD可包括用于在数据的读取或写入完成之后将存储器存储体120从激活状态切换到待机状态的预充电命令。此外,命令CMD可包括用于控制存储器存储体120的刷新操作的刷新命令。然而,在此描述的命令CMD的类型仅是示例,并且可存在其它类型的命令CMD。
存储器控制器20可将各种信号提供给存储器装置10,以控制存储器内操作单元110的存储器内处理操作。例如,存储器控制器20可经由命令CMD、地址ADDR和/或时钟信号CLK的组合将指示存储器内操作单元110的存储器内处理操作的信号提供给存储器装置10。
存储器内操作单元110可被实现为用于执行存储器装置10中的操作处理的处理元件(PE)。换句话说,存储器内操作单元110可在存储器装置10中执行存储器内处理(或内部处理)。
具体地,存储器内操作单元110可对存储在存储器存储体120中的数据DATA和/或从存储器控制器20接收的数据DATA执行数据操作,并且可将数据DATA的操作结果存储在存储器存储体120中或者将数据DATA的操作结果提供给存储器控制器20。因此,存储器内操作单元110也可被称为存储器内处理器(Processor In Memory,PIM)或存储器内功能(Function In Memory,FIM)。
存储器内操作单元110可以是算术逻辑单元(ALU)或乘积累加(MAC)。例如,存储器内操作单元110可执行逻辑运算(诸如,数据反转、数据移位、数据交换、数据比较、与以及异或(XOR))、数学运算(诸如,加法和减法)以及数据操作。
包括在存储器装置10中的存储器内操作单元110的数量和存储器存储体120的数量可变化。此外,n个存储器存储体120可被分配给一个存储器内操作单元110,其中,n是自然数。在一个示例中,n可以是大于或等于2的整数。
例如,当存储器装置10对应于双倍数据速率4动态随机存取存储器(DDR4 DRAM)模块时,存储器存储体120的数量可以是16并且存储器内操作单元110的数量可以是8,存储器内操作单元110和存储器存储体120可以以1:2(n=2)而被映射。在下文中,为了便于描述,假设两个存储器存储体120被分配给一个存储器内操作单元110(n=2),但是配置不限于此。
每个存储器存储体120可包括多个存储器单元。具体地,存储器存储体120中的存储器单元可在多条字线和多条位线彼此交叉的点处。存储器存储体120可存储存储器内处理数据。存储器内处理数据可包括将由存储器内操作单元110执行运算的数据和/或作为由存储器内操作单元110执行运算的结果而生成的数据。
存储器装置10可包括各种类型的存储器,例如,可包括DRAM(诸如,双倍数据速率同步DRAM(DDR SDRAM)、低功率双倍数据速率(LPDDR)SDRAM、图形双倍数据速率(GDDR)SDRAM或rambus DRAM(RDRAM))。然而,配置不限于此,并且存储器装置10可包括非易失性存储器(诸如,闪存、磁RAM(MRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)或电阻式RAM(ReRAM))。
图2A和图2B是用于描述根据示例的存储器存储体与存储器内操作单元之间的分配比率的示图。
图1的存储器装置10可包括布置有图1的存储器内操作单元110和图1的存储器存储体120的存储器裸片100,图2A和图2B示出设置在存储器裸片100上的特定数量的存储器内操作单元110中的一些和特定数量的存储器存储体120中的一些。
如图2A中所示,两个存储器存储体(第一存储器存储体121和第二存储器存储体122)可被分配给一个存储器内操作单元(第一操作单元111),两个存储器存储体(第三存储器存储体123和第四存储器存储体124)可被分配给一个存储器内操作单元(第二操作单元112)。
如图2B中所示,四个存储器存储体(第一存储器存储体121至第四存储器存储体124)可被分配给一个存储器内操作单元(第一操作单元111)。
换句话说,设置在存储器装置10中的存储器存储体120可以以n个存储器存储体为单位共享一个存储器内操作单元,并且每个存储器内操作单元可通过访问对应的n个存储器存储体来执行数据操作。这里,当存储器装置10对应于DDR4 DRAM模块时,n可以是2、4和8中的一个,但不限于此。如上所述,在示例中,为了便于描述,n=2。
图3是用于描述根据示例的存储器裸片100上的存储器内操作单元与存储器存储体之间的硬件连接的示图。
参照图3,在存储器裸片100上两个存储器存储体(第一存储器存储体121和第二存储器存储体122)被分配给一个存储器内操作单元(第一操作单元111)的示例被示出。该示例可以是设置在存储器裸片100上的所有存储器内操作单元110和存储器存储体120的示例中的一个,存储器裸片100上的剩余的存储器内操作单元110和存储器存储体120可类似于图3的示例来实现和操作。
在存储器裸片100上,每个存储器内操作单元(第一操作单元111)和存储器存储体(第一存储器存储体121和第二存储器存储体122)彼此连接。这里,存储器裸片100可包括存储体选择器130和复用器(MUX)140,存储体选择器130用于选择分配给第一操作单元111的两个存储器存储体(第一存储器存储体121和第二存储器存储体122)中的一个,复用器(MUX)140用于将从由存储体选择器130选择的存储器存储体访问的数据提供给第一操作单元111。在存储器裸片100上实现的硬件组件可经由数据总线160彼此连接。
第一操作单元111以操作频率(时钟信号CLK(例如,时钟信号CLK的操作频率))进行操作,以执行流水线化的操作310的存储器内处理。这里,流水线化的操作310可被流水线化为与第一操作单元111的第一操作频率对应的第一操作周期内可处理的子操作单元的多流水线级(multi-pipeline stages)。第一操作单元111可包括至少一个流水线寄存器1111,至少一个流水线寄存器1111用于缓冲流水线化的操作310的每个流水线级中的子操作结果。
第一存储器存储体121和第二存储器存储体122中的每个以操作频率(时钟信号CLK)进行操作,以在流水线化的操作310被执行的同时执行从第一操作单元111请求的数据的访问操作。
操作频率(时钟信号CLK)基于从外部源(图1的存储器控制器20或主机)提供的存储体时钟信号,存储器裸片100中的第一操作单元111、存储器存储体(第一存储器存储体121和第二存储器存储体122)和存储体选择器130根据操作频率(时钟信号CLK)进行操作。
图4是用于描述根据示例的操作的流水线的示图。
流水线是通过将执行操作的处理划分为一些级并且并行(同时)处理该级来提高操作处理速度的技术。
参照图4,给定的操作可被流水线化为包括一些子操作(例如,第一子操作至第七子操作)的多流水线级(第一流水线级STAGE 1至第三流水线级STAGE 3),因此流水线化的操作400可被生成。这里,给定的操作可以是例如神经网络的MAC运算,子操作(第一子操作至第七子操作)中的每个可根据一系列单独的操作(诸如,数据获取、乘法、加法以及数据输出)被流水线化。
流水线化的操作400包括七个子操作(第一子操作至第七子操作)的多流水线级。具体地,第一流水线级STAGE 1包括第一子操作和第二子操作,第二流水线级STAGE 2包括第三子操作、第四子操作和第5-1子操作,第三流水线级STAGE 3包括第5-2子操作、第六子操作和第七子操作。这里,第5-1子操作和第5-2子操作从第五子操作被划分。这样,一个子操作再次被划分成一些子操作,以对在存储器内操作单元的一个周期(例如,操作周期k(ns))内可处理的操作进行分类。
当给定的操作以与存储器内操作单元(图3的第一操作单元111)的操作频率(时钟信号CLK)对应的操作周期k(ns)为单位被流水线化时,存储器内操作单元(图3的第一操作单元111)可在整个总共3个周期中处理流水线化的操作400(三个流水线级,即,第一流水线级STAGE 1至第三流水线级STAGE 3),并且针对每个周期(操作周期:k(ns))执行流水线。因为每个存储器存储体(第一存储器存储体121或第二存储器存储体122)的操作频率(时钟信号CLK)与存储器内操作单元(第一操作单元111)的操作频率(时钟信号CLK)相同,所以存储器内操作单元(第一操作单元111)可在存储器存储体(第一存储器存储体121或第二存储器存储体122)的操作周期(k(ns))内访问一个存储器存储体(第一存储器存储体121或第二存储器存储体122)。
图5是用于描述根据示例的流水线级被分配给每个存储器存储体以用于图4的流水线化的操作400的存储器内处理的示图。
参照图5,情况501和情况502被示出,在情况501下存储器内操作单元(图3的第一操作单元111)处理从图3的第一存储器存储体121访问的操作数据(这可被称为操作#_EVENOP#_EVEN),在情况502下存储器内操作单元(第一操作单元111)处理从图3的第二存储器存储体122访问的操作数据(这可被称为操作#_ODD OP#_ODD)。在情况501和情况502下,第一存储器存储体121和第二存储器存储体122进行操作,以分别处理由存储器内操作单元(第一操作单元111)请求的流水线化的操作400(第一流水线级STAGE 1至第三流水线级STAGE3)。
每条时间线(周期)中的流水线级分配500将被描述。这里,流水线级分配500中的每个周期表示与以上描述的操作频率(时钟信号CLK)对应的操作周期(k(ns))。
在第N周期中,第一操作单元111访问第一存储器存储体121以读取操作1_EVENOP1_EVEN的数据,并且处理操作1_EVEN OP1_EVEN的第一流水线级STAGE 1。
在第(N+1)周期中,第一操作单元111访问第二存储器存储体122以读取操作1_ODDOP1_ODD的数据,并且处理操作1_ODD OP1_ODD的第一流水线级STAGE 1。在第(N+1)周期中,第一操作单元111可基于流水线处理操作1_EVEN OP1_EVEN的第二流水线级STAGE 2。
在第(N+2)周期中,第一操作单元111访问第一存储器存储体121以读取与操作1_EVEN OP1_EVEN不同的另一操作2_EVEN OP2_EVEN的数据。第一操作单元111处理操作2_EVENOP1_EVEN的第一流水线级STAGE 1。在第(N+2)周期中,第一操作单元111可基于流水线处理操作1_EVEN OP1_EVEN的第三流水线级STAGE 3和操作1_ODD OP1_ODD的第二流水线级STAGE 2。
换句话说,第一操作单元111可在每个周期中交替地访问第一存储器存储体121和第二存储器存储体122以读取每个操作的数据,并且可通过使用在每个周期中从第一存储器存储体121和第二存储器存储体122中的每个读取的流水线化的操作400的数据来并行地处理第一流水线级STAGE 1至第三流水线级STAGE 3。
图6是用于描述当布置在不同位置处的存储器存储体被访问(读取/写入)时可能发生的延迟差的示图。
参照图6,布置在一侧的第一组存储器存储体BANK 1至BANK 8和布置在另一侧的第二组存储器存储体BANK 9至BANK 16可被布置在存储器裸片100上。此外,包括命令/输入/输出(IO)(CMD/IO)垫(或称为焊盘,pad)610的IO接口可被设置在存储器裸片100上的第一组存储器存储体BANK 1至BANK 8与第二组存储器存储体BANK 9至BANK 16之间的区域600中。CMD/IO垫610也可被称为命令垫。IO接口可另外包括全局解码器,全局解码器用于对从外部源发送到CMD/IO垫610的信号进行解码,并且将解码的信号发送到存储器存储体。
例如,命令信号从外部源被发送到CMD/IO垫610并且两个存储器存储体BANK 1和BANK 3的数据根据由全局解码器解码的命令信号被访问的情况将被描述。
参照图6,从CMD/IO垫610到存储器裸片100上的存储器存储体BANK 3的数据传输距离比从CMD/IO垫610到存储器存储体BANK 1的数据传输距离近。因此,由于用于数据访问的存储器存储体BANK 1和BANK 3之间的物理距离的差,在用于访问存储器存储体BANK 1和BANK 3中的每个的命令/数据信号中可能发生延迟差(例如,约Δ2.5ns)。
换句话说,由于根据存储器裸片100上的存储器存储体BANK 1至BANK 16的位置的用于数据传输的物理距离的差,可能发生图6中描述的延迟差。
图7是用于描述根据示例的存储器裸片100上的存储器内操作单元的布置的示图。
参照图7,如参照图6所述,布置在一侧的第一组存储器存储体BANK 1至BANK 8以及布置另一侧的第二组存储器存储体BANK 9至BANK 16可布置在存储器裸片100上。此外,包括CMD/IO垫710的IO接口可布置在存储器裸片100上的第一组存储器存储体BANK 1至BANK 8与第二组存储器存储体BANK 9至BANK 16之间的区域700中。
与第一组存储器存储体BANK 1至BANK 8邻近布置并连接到第一组存储器存储体BANK 1至BANK 8的第一组存储器内操作单元IMOU1至IMOU4、以及与第二组存储器存储体BANK 9至BANK 16邻近布置并连接到第二组存储器存储体BANK 9至BANK 16的第二组存储器内操作单元IMOU5至IMOU8可布置在区域700中。
存储器存储体BANK 1至BANK 16可以以n个存储器存储体为单位被分配给存储器内操作单元IMOU1至IMOU8,其中,n=2。
具体地,第一组存储器存储体BANK 1至BANK 8与第一组存储器内操作单元IMOU1至IMOU4之间的映射关系的示例将被描述。
第一组存储器存储体BANK 1至BANK 8可基于CMD/IO垫710的位置被分类为:相对靠近CMD/IO垫710的存储器存储体BANK 3至BANK 6以及相对远离CMD/IO垫710的存储器存储体BANK 1、BANK 2、BANK 7和BANK 8。第一组存储器内操作单元IMOU1至IMOU4中的每个可被映射(分配)并连接到相对靠近CMD/IO垫710的存储器存储体BANK 3至BANK 6中的一个以及相对远离CMD/IO垫710的存储器存储体BANK 1、BANK 2、BANK 7和BANK 8中的一个。
例如,第一存储器内操作单元IMOU1可被映射到远的存储器存储体BANK 1和近的存储器存储体BANK 3,第二存储器内操作单元IMOU2可被映射到远的存储器存储体BANK 2和近的存储器存储体BANK 4。类似地,第三存储器内操作单元IMOU3可被映射到远的存储器存储体BANK 7和近的存储器存储体BANK 5,第四存储器内操作单元IMOU4可被映射到远的存储器存储体BANK 8和近的存储器存储体BANK 6。换句话说,第一组存储器内操作单元IMOU1至IMOU4中的每个可布置在相应的远的存储器存储体与相应的近的存储器存储体之间,其中,从每个存储器内操作单元到相应的远的存储器存储体的距离与从每个存储器内操作单元到相应的近的存储器存储体的距离相等。
第二组存储器存储体BANK 9至BANK 16和第二组存储器内操作单元IMOU5至IMOU8可以以如上所述类似的方式被映射。
根据存储器内操作单元IMOU1至IMOU8的这样的布置和映射方法,因为映射到一个存储器内操作单元的两个存储器存储体距CMD/IO垫710的数据传输距离(即,物理距离)彼此不同,所以可能发生以上参照图6描述的延迟差。在一个示例中,每个存储器内操作单元可按照映射到其的存储器存储体中的每个距CMD/IO垫710的数据传输距离(或物理距离)的升序访问映射的存储器存储体中的存储器存储体。
图8是用于描述根据示例的映射到存储器内操作单元的存储器存储体处理操作所通过的方法的示图。
参照图8,第一存储器内操作单元IMOU1以及映射到第一存储器内操作单元IMOU1的存储器存储体BANK 1和BANK 3处理操作的示例将被描述。
远的存储器存储体BANK 1和近的存储器存储体BANK 3被映射到第一存储器内操作单元IMOU1。这里,因为远的存储器存储体BANK 1和近的存储器存储体BANK 3距CMD/IO垫710的数据传输距离(即,物理距离)彼此不同,所以可能存在关于数据访问的延迟差。
与在对远的存储器存储体BANK 1执行数据访问的情况820下相比,第一存储器内操作单元IMOU1可在对近的存储器存储体BANK 3执行数据访问的情况810下根据从外部源发送到CMD/IO垫710的命令信号更快地执行存储器内处理。
因此,第一存储器内操作单元IMOU1通过首先访问映射的存储器存储体BANK 1和BANK 3之中的相对靠近CMD/IO垫710的存储器存储体BANK 3来处理流水线化的操作。然后,第一存储器内操作单元IMOU1通过访问相对远的存储器存储体BANK 1来处理流水线化的操作。
根据这样的方法,参照图5描述的第一操作单元111处理从第一存储器存储体121访问的操作数据可对应于第一存储器内操作单元IMOU1处理从近的存储器存储体BANK 3访问的数据①。类似地,参照图5描述的第一操作单元111处理从第二存储器存储体122访问的操作数据可对应于第一存储器内操作单元IMOU1处理从远的存储器存储体BANK 1访问的数据②。
关于流水线化的操作的存储器内处理也可以以与如参照图8所述的类似方式在图7的剩余的存储器存储体与存储器内操作单元之间被执行。
图9是根据示例的用于将远的存储器存储体被首先访问的情况和近的存储器存储体被首先访问的情况进行比较的示图。
参照图9,在存储器内操作单元(例如,图8的第一存储器内操作单元IMOU1)首先访问远的存储器存储体(例如,图8的存储器存储体BANK 1)的情况910下,直到第一MAC运算至第八MAC运算被执行为止总共10个周期可被需要。然而,在第一存储器内操作单元IMOU1首先访问近的存储器存储体(例如,图8的存储器存储体BANK 3)的情况920下,直到第一MAC运算至第八MAC运算被执行为止总共9个周期可被需要。换句话说,当存储器内操作单元首先访问映射到存储器内操作单元的存储器存储体之中相对靠近CMD/IO垫的存储器存储体时,存储器内处理可以以快的/更快的速度被执行。换句话说,在近的存储器存储体被首先访问的情况920下,在具有数据依赖的后续运算(即,第一加法运算)被执行之前没有操作周期(NOP)可被减少,因此,存储器内处理可以以快的/更快的速度完成。根据图9的模拟结果,当存储器内操作单元首先访问近的存储器存储体时,约10%的运算时间(约1个周期=约2.5ns)可被减少。
图10是根据示例的包括存储器装置的计算系统1000的框图。执行以上描述的存储器内处理的存储器装置可作为随机存取存储器(RAM)1020安装在计算系统1000(诸如,移动装置或台式计算机)上。以上描述的实施例之一可被应用到作为RAM 1020安装的存储器装置。
具体地,执行存储器内处理并且可安装为RAM 1020的存储器装置包括多个存储器内操作单元和多个存储器存储体,多个存储器内操作单元执行流水线化的操作的存储器内处理,多个存储器存储体以n个存储器存储体为单位被分配给每个存储器内操作单元并且在流水线化的操作被处理的同时执行访问由每个存储器内操作单元请求的数据的操作。
存储器装置包括布置有存储器内操作单元和存储器存储体的存储器裸片,多个存储器存储体可包括布置在存储器裸片上的一侧的第一组存储器存储体和布置在另一侧的第二组存储器存储体,多个存储器内操作单元可包括第一组存储器内操作单元和第二组存储器内操作单元,第一组存储器内操作单元在第一组存储器存储体与第二组存储器存储体之间的区域中布置得与第一组存储器存储体邻近并且连接到第一组存储器存储体,第二组存储器内操作单元在该区域中布置得与第二组存储器存储体邻近并且连接到第二组存储器存储体。每个存储器内操作单元可在存储器裸片的上相对远离地布置的存储器存储体之前,对来自相对靠近地布置的存储器存储体的访问的数据执行流水线化的操作。
存储器裸片可包括存储体选择器和复用器,存储体选择器基于数据传输距离顺序地选择分配给第一存储器内操作单元的n个存储器存储体之一,复用器将通过由存储体选择器选择的存储器存储体访问的数据提供给第一存储器内操作单元。
当安装在RAM 1020上的存储器装置是DDR4 DRAM模块时,多个存储器存储体包括由8个存储器存储体形成的第一组存储器存储体和由8个存储器存储体形成的第二组存储器存储体,多个存储器内操作单元可包括由8/n个存储器内操作单元形成的第一组存储器内操作单元和由8/n个存储器内操作单元形成的第二组存储器内操作单元,其中,n是2、4和8中的一个。这里,第一组存储器存储体可包括按照第一方向(x轴)的顺序的第一存储器存储体至第八存储器存储体,第一组存储器内操作单元可包括按照第一方向(x轴)的顺序的第一存储器内操作单元至第四存储器内操作单元。当n=2时,第一存储器存储体和第三存储器存储体可被分配给第一存储器内操作单元,第二存储器存储体和第四存储器存储体可被分配给第二存储器内操作单元,第五存储器存储体和第七存储器存储体可被分配给第三存储器内操作单元,第六存储器存储体和第八存储器存储体可被分配给第四存储器内操作单元。第二组存储器存储体与第二组存储器内操作单元之间的连接可对称于第一组存储器存储体与第一组存储器内操作单元之间的连接。
计算系统1000包括经由总线1050彼此电连接的中央处理器(CPU)1010、RAM 1020、用户接口1030以及非易失性存储器1040。非易失性存储器1040可以是大容量存储装置(诸如,固态驱动器(SSD)或硬盘驱动器(HDD))。
当以上描述的存储器装置(或存储器系统)被应用到计算系统1000时,包括在RAM1020中的存储器装置可执行存储器内处理。
虽然本公开包括特定的示例,但是在理解本申请的公开之后将清楚,在不脱离权利要求及它们的等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。在此描述的示例将被认为仅是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述将被认为可适用于其它示例中的类似特征或方面。如果描述的技术以不同的顺序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合,和/或由其它组件或它们的等同物替换或补充,则可实现合适的结果。因此,公开的范围不是由具体实施方式限定,而是由权利要求及它们的等同物限定,并且在权利要求及它们的等同物的范围内的所有变化应被解释为包括在公开中。
Claims (20)
1.一种用于执行存储器内处理的存储器装置,所述存储器装置包括:
多个存储器内操作单元,被配置为执行被流水线化为多流水线级的操作的存储器内处理;
多个存储器存储体,被分配给所述多个存储器内操作单元,使得由n个存储器存储体形成的组被分配给所述多个存储器内操作单元中的每个,每个存储器存储体被配置为在流水线化的操作被执行的同时执行由所述多个存储器内操作单元中的每个请求的数据的访问操作,其中,n是大于或等于2的整数;和
存储器裸片,所述多个存储器内操作单元、所述多个存储器存储体以及被配置为从外部源接收命令信号的命令垫布置在存储器裸片中,
其中,每个由n个存储器存储体形成的组包括具有到命令垫的第一数据传输距离的第一存储器存储体和具有到命令垫的第二数据传输距离的第二存储器存储体,第二数据传输距离大于第一数据传输距离。
2.根据权利要求1所述的存储器装置,其中,所述多个存储器内操作单元中的每个被配置为:在访问相应的由n个存储器存储体形成的组的第二存储器存储体之前访问相应的由n个存储器存储体形成的组的第一存储器存储体,以执行流水线化的操作的存储器内处理。
3.根据权利要求1所述的存储器装置,其中,存储器裸片还包括:
存储体选择器,被配置为:针对每个由n个存储器存储体形成的组,基于第一数据传输距离和第二数据传输距离顺序地选择第一存储器存储体和第二存储器存储体;和
复用器,被配置为:将从由存储体选择器选择的第一存储器存储体或第二存储器存储体访问的数据提供给相应的存储器内操作单元。
4.根据权利要求1所述的存储器装置,其中,
所述多个存储器存储体包括布置在存储器裸片上的第一侧的第一组存储器存储体和布置在存储器裸片上的第二侧的第二组存储器存储体,并且
所述多个存储器内操作单元包括第一组存储器内操作单元和第二组存储器内操作单元,第一组存储器内操作单元在第一组存储器存储体与第二组存储器存储体之间的区域中被布置得与第一组存储器存储体邻近并连接到第一组存储器存储体,第二组存储器内操作单元在所述区域中被布置得与第二组存储器存储体邻近并连接到第二组存储器存储体。
5.根据权利要求4所述的存储器装置,其中,
命令垫布置在所述区域中的第一组存储器内操作单元与第二组存储器内操作单元之间,并且
每个由n个存储器存储体形成的组的第一存储器存储体和第二存储器存储体根据所述区域内的第一数据传输距离和第二数据传输距离被分类。
6.根据权利要求4所述的存储器装置,其中,
第一组存储器存储体被分类成两个子组,所述两个子组包括布置为更靠近命令垫的第一子组和布置为距命令垫更远的第二子组,并且
每个由n个存储器存储体形成的组的第一存储器存储体从第一子组被选择,每个由n个存储器存储体形成的组的第二存储器存储体从第二子组被选择。
7.根据权利要求4所述的存储器装置,其中,
第一组存储器存储体之中的由n个存储器存储体形成的第一组被分配给第一组存储器内操作单元之中的第一存储器内操作单元,并且
第一存储器内操作单元在从由n个存储器存储体形成的第一组的第二存储器存储体访问的数据之前,针对从由n个存储器存储体形成的第一组的第一存储器存储体访问的数据处理流水线化的操作。
8.根据权利要求4所述的存储器装置,其中,
所述存储器装置是双倍数据速率4动态随机存取存储器模块,
第一组存储器存储体包括8个存储器存储体,并且第二组存储器存储体包括8个存储器存储体,并且
第一组存储器内操作单元包括8/n个存储器内操作单元,并且第二组存储器内操作单元包括8/n个存储器内操作单元。
9.根据权利要求4所述的存储器装置,其中,
第一组存储器存储体包括按照第一方向的顺序的第一存储器存储体、第二存储器存储体、第三存储器存储体、第四存储器存储体、第五存储器存储体、第六存储器存储体、第七存储器存储体以及第八存储器存储体,
第一组存储器内操作单元包括按照第一方向的顺序的第一存储器内操作单元、第二存储器内操作单元、第三存储器内操作单元以及第四存储器内操作单元,并且
第一存储器存储体和第三存储器存储体被分配给第一存储器内操作单元,第二存储器存储体和第四存储器存储体被分配给第二存储器内操作单元,第五存储器存储体和第七存储器存储体被分配给第三存储器内操作单元,并且第六存储器存储体和第八存储器存储体被分配给第四存储器内操作单元。
10.根据权利要求4所述的存储器装置,其中,第二组存储器存储体与第二组存储器内操作单元之间的连接对称于第一组存储器存储体与第一组存储器内操作单元之间的连接。
11.根据权利要求1至10中的任何一项所述的存储器装置,其中,所述多个存储器内操作单元中的每个包括:至少一个流水线寄存器,被配置为缓冲流水线化的操作的每个流水线级中的子操作结果。
12.根据权利要求1至10中的任何一项所述的存储器装置,其中,流水线化的操作包括神经网络的乘积累加运算。
13.一种用于执行存储器内处理的存储器装置,所述存储器装置包括:
多个存储器内操作单元,被配置为执行被流水线化为多流水线级的操作的存储器内处理;和
多个存储器存储体,被分配给所述多个存储器内操作单元,使得由n个存储器存储体形成的组被分配给所述多个存储器内操作单元中的每个,每个存储器存储体被配置为在流水线化的操作被执行的同时执行由所述多个存储器内操作单元中的每个请求的数据的访问操作,其中,n是大于或等于2的整数,
其中,每个由n个存储器存储体形成的组包括:具有用于从外部源提供的命令信号的数据传输的第一物理距离的第一存储器存储体和具有用于命令信号的数据传输的第二物理距离的第二存储器存储体,第二物理距离大于第一物理距离。
14.根据权利要求13所述的存储器装置,其中,所述多个存储器内操作单元中的每个被配置为:在相应的由n个存储器存储体形成的组的第二存储器存储体之前访问相应的由n个存储器存储体形成的组的第一存储器存储体,以执行流水线化的操作的存储器内处理。
15.根据权利要求13或14所述的存储器装置,还包括:
存储体选择器,被配置为:针对每个由n个存储器存储体形成的组,基于第一物理距离和第二物理距离顺序地选择第一存储器存储体和第二存储器存储体;和
复用器,被配置为:将从由存储体选择器选择的第一存储器存储体或第二存储器存储体访问的数据提供给相应的存储器内操作单元。
16.一种存储器装置,包括:
多个存储器内操作单元,被配置为执行神经网络的流水线化的操作的存储器内处理;
多个存储器存储体,每个存储器存储体被分配给所述多个存储器内操作单元中的一个,使得由n个存储器存储体形成的组被分配给所述多个存储器内操作单元中的每个,每个存储器存储体被配置为在流水线化的操作被执行的同时执行由分配的存储器内操作单元请求的数据的访问操作,其中,n是大于或等于2的整数;和
命令垫,被配置为从外部源接收命令信号,
其中,所述多个存储器内操作单元中的每个被配置为:按照基于从相应的由n个存储器存储体形成的组中的每个存储器存储体到命令垫的距离确定的顺序,访问来自相应的分配的由n个存储器存储体形成的组的存储器存储体。
17.根据权利要求16所述的存储器装置,其中,从相应的由n个存储器存储体形成的组中的每个存储器存储体到命令垫的距离是数据传输距离。
18.根据权利要求17所述的存储器装置,其中,所述多个存储器内操作单元中的每个被配置为:按照数据传输距离的升序访问来自相应的分配的由n个存储器存储体形成的组的存储器存储体。
19.根据权利要求16所述的存储器装置,其中,从相应的由n个存储器存储体形成的组中的每个存储器存储体到命令垫的距离是物理距离。
20.根据权利要求19所述的存储器装置,其中,所述多个存储器内操作单元中的每个被配置为:按照物理距离的升序访问来自相应的分配的由n个存储器存储体形成的组的存储器存储体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0073733 | 2020-06-17 | ||
KR1020200073733A KR20210156058A (ko) | 2020-06-17 | 2020-06-17 | 인-메모리 프로세싱을 수행하는 메모리 디바이스 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113805790A true CN113805790A (zh) | 2021-12-17 |
Family
ID=76483187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011442348.8A Pending CN113805790A (zh) | 2020-06-17 | 2020-12-08 | 执行存储器内处理的存储器装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11494121B2 (zh) |
EP (1) | EP3933605A1 (zh) |
KR (1) | KR20210156058A (zh) |
CN (1) | CN113805790A (zh) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05342178A (ja) | 1992-06-10 | 1993-12-24 | Hitachi Ltd | 調停回路およびそれを用いたデータ処理装置 |
JP2001236221A (ja) | 2000-02-21 | 2001-08-31 | Keisuke Shindo | マルチスレッドを利用するパイプライン並列プロセッサ |
JP2004326228A (ja) | 2003-04-22 | 2004-11-18 | Matsushita Electric Ind Co Ltd | 並列演算処理装置 |
JP4989900B2 (ja) | 2006-01-31 | 2012-08-01 | ルネサスエレクトロニクス株式会社 | 並列演算処理装置 |
US8984256B2 (en) | 2006-02-03 | 2015-03-17 | Russell Fish | Thread optimized multiprocessor architecture |
US9477636B2 (en) * | 2009-10-21 | 2016-10-25 | Micron Technology, Inc. | Memory having internal processors and data communication methods in memory |
US8456917B1 (en) * | 2011-11-29 | 2013-06-04 | Elpida Memory, Inc. | Logic circuit for a semiconductor memory device, and method of managing an operation in the semiconductor memory device |
WO2015048037A1 (en) * | 2013-09-24 | 2015-04-02 | Rambus Inc. | Memory component having internal read-modify-write operation |
US11501139B2 (en) | 2017-05-03 | 2022-11-15 | Intel Corporation | Scaling half-precision floating point tensors for training deep neural networks |
US10884957B2 (en) * | 2018-10-15 | 2021-01-05 | Intel Corporation | Pipeline circuit architecture to provide in-memory computation functionality |
CN115413367A (zh) * | 2020-02-07 | 2022-11-29 | 日升存储公司 | 具有低有效延迟的高容量存储器电路 |
-
2020
- 2020-06-17 KR KR1020200073733A patent/KR20210156058A/ko active Search and Examination
- 2020-11-16 US US17/098,959 patent/US11494121B2/en active Active
- 2020-12-08 CN CN202011442348.8A patent/CN113805790A/zh active Pending
-
2021
- 2021-06-16 EP EP21179685.9A patent/EP3933605A1/en active Pending
-
2022
- 2022-09-28 US US17/954,532 patent/US20230013611A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210397376A1 (en) | 2021-12-23 |
US11494121B2 (en) | 2022-11-08 |
US20230013611A1 (en) | 2023-01-19 |
EP3933605A1 (en) | 2022-01-05 |
KR20210156058A (ko) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12019895B2 (en) | Apparatuses and methods for data movement | |
US11755206B2 (en) | Bank to bank data transfer | |
US10878884B2 (en) | Apparatuses and methods to reverse data stored in memory | |
US11468944B2 (en) | Utilization of data stored in an edge section of an array | |
US10482948B2 (en) | Apparatuses and methods for data movement | |
US10878856B2 (en) | Data transfer between subarrays in memory | |
WO2016126472A1 (en) | Apparatuses and methods for scatter and gather | |
US10867662B2 (en) | Apparatuses and methods for subarray addressing | |
US20220107803A1 (en) | Memory device for performing in-memory processing | |
US11494121B2 (en) | Memory device for performing in-memory processing | |
CN114546901A (zh) | 存储装置及其操作方法 |
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 |