CN110582745B - 存储器装置及可促进张量存储器存取的方法 - Google Patents
存储器装置及可促进张量存储器存取的方法 Download PDFInfo
- Publication number
- CN110582745B CN110582745B CN201880026411.4A CN201880026411A CN110582745B CN 110582745 B CN110582745 B CN 110582745B CN 201880026411 A CN201880026411 A CN 201880026411A CN 110582745 B CN110582745 B CN 110582745B
- Authority
- CN
- China
- Prior art keywords
- memory
- access
- map
- command
- order
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 239000011159 matrix material Substances 0.000 claims description 53
- 238000012545 processing Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 238000013507 mapping Methods 0.000 description 8
- 238000013519 translation Methods 0.000 description 7
- 230000014616 translation Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0669—Configuration or reconfiguration with decentralised address assignment
- G06F12/0676—Configuration or reconfiguration with decentralised address assignment the address being position dependent
-
- 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/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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Memory System (AREA)
Abstract
本文中所描述的实例包含系统及方法,所述系统及方法包含一种设备,所述设备包括包含多个存储器胞元的存储器阵列及耦合到所述存储器阵列的存储器控制器。所述存储器控制器包括经配置以基于与存储器存取操作相关联的存储器命令而配置存储器映射的存储器映射器。所述存储器映射包括用以存取所述存储器阵列的至少一个存储器胞元的特定存储器存取指令序列。举例来说,对角线存储器命令的所述特定存储器存取指令序列包括各自沿着所述存储器阵列的对角线存取存储器胞元的存储器存取指令序列。
Description
背景技术
高速存储器存取及经减少电力消耗为向半导体装置要求的特征。近年来,已采用多核处理器来执行应用程序的系统已产生对用作主存储器(例如,动态随机存取存储器(DRAM))的存储器装置的较快存取型式以及更多随机存取型式。举例来说,对DRAM的典型存取型式依次重复组激活、读取存取或写入存取及组预充电。需要为达成较快存取而对存储器装置的存取型式。计算装置的效率及性能可受不同存储器装置影响。因此,需要快速且高效存取型式。
可在机器学习及人工智能应用中利用一般为与线性系统有关的几何对象的张量。张量处理可包含矩阵代数或其它线性系统分析的处理。此处理可为密集的且重复的,因为可数次地利用常见操作数,举例来说;在对张量的分层处理中。与处理速度组合的此重复可使用以执行用于张量处理的操作的重复存储器存取成为必要。
附图说明
图1是根据本文中所描述的实例来布置的计算系统的示意性图解说明。
图2A到2C是根据本文中所描述的实例的存取存储器单元的示意性图解说明。
图3是根据本文中所描述的实例来布置的方法的流程图。
图4是根据本文中所描述的实例来布置的方法的流程图。
图5是根据本文中所描述的实例来布置的计算系统的示意性图解说明。
具体实施方式
在下文陈述某些细节以提供对本发明的实施例的充分理解。然而,所属领域的技术人员将清楚,可在不具有各种这些特定细节的情况下实践本发明的实施例。在一些例子中,未详细展示众所周知的无线通信组件、电路、控制信号、时序协议、计算系统组件及软件操作以便避免不必要地使本发明的所描述实施例模糊不清。
一般所描述,例如存储器存储装置或快闪存储器的存储器单元执行从存储器控制器及/或直接从发送存储器命令的计算装置或网络接收的读取及写入命令。存储器单元可接收读取或写入命令作为指令序列,其中每一指令对应于由存储器地址识别的特定位置。举例来说,读取存储器命令可由存储器控制器处理为用以读取特定存储器单元的特定地址的请求。此命令可作为用以存取存储器装置的所述位置的指令而发送到所述存储器装置。存储器指令可包含此可寻址信息(例如,存储器胞元行/列及/或指向存储器胞元行/列的逻辑地址),如由存储器控制器基于读取存储器命令而确定。举例来说,所述存储器装置的位置可在所述存储器装置的逻辑存储器分割区中的特定物理存储器胞元处。在作为存储器单元的存储器阵列的实例中,存储器控制器可执行电路操作(例如,将行或列线充电)以存取特定物理存储器胞元。此些电路操作可为耗时的且耗电的。类似地,存储器控制器确定存储器单元的哪一逻辑存储器分割区可包含可以特定存储器速率存取的所请求信息可为用于执行存储器命令的耗时且耗电过程。
在存取存储器单元的特定存储器胞元时,读取或写入命令可不区分,其中所请求信息物理地存储于存储器单元中。而且,存储器控制器可不基于信息已存储于存储器单元中的任何型式而将指令发送到存储器单元。关于在处理器或计算装置中执行或实施操作的详情,存储器单元可接收写入命令且因此处理对存储器单元的写入。举例来说,存储器单元可接收写入命令,且将与所述写入命令相关联的信息存储到存储器中的已被确定为可用的特定位置。如本文中所描述,有利地,在处理器或计算装置中执行或实施操作可包含执行如通过执行所述操作而定义的存储器命令。举例来说,用以存取存储器阵列的存储器胞元的存储器存取指令的特定序列可包含由所述存储器命令的操作次序定义的存储器存取指令序列。举例来说,如本文中所描述,可以可促进张量操作的特定型式来存取存储器。张量操作可利用矩阵数据,且因此可力图以特定型式(例如对角线等)读取及/或写入数据。在矩阵操作的对角线计算的实例中,存储器存取指令序列可根据由耦合到包含此存储器阵列的所述存储器单元的存储器控制器实施的对角线存储器命令沿着存储器阵列的对角线存取各种存储器胞元。
图1是根据本文中所描述的实例来布置的计算系统100的示意性图解说明。计算系统100包含耦合到存储器单元140a、140b的处理器105。所述处理器可实施包含存储器映射器120及地址变换器130的存储器控制器110。存储器控制器110可经由存储器接口135a、135b耦合到存储器单元140a、140b。处理器105可实施从各种数据源或在处理器105上执行的过程接收的存储器命令。举例来说,处理器105可从在处理器105上执行的过程接收存储器存取请求(例如,读取或写入命令)。在此情形中,存储器控制器110可处理如由处理器105实施以存取存储器单元140a、140b中的一或多者的存储器存取请求。
处理器105可用于利用存储器控制器110实施计算系统100的存储器系统。在一些实例中,处理器105可为包含多个核心的多核处理器。举例来说,所述多个核心可使用独立地读取且执行程序指令的处理电路来实施。存储器控制器110可处置与可在处理器105外部的存储器系统的通信。举例来说,存储器控制器110可将存取命令从处理器105的多个核心提供到存储器单元140a、140b。存储器控制器110可经由存储器接口135a、135b提供此些存取命令。举例来说,存储器接口135a、135b可将时钟信号、命令信号及/或地址信号提供到存储器单元140a、140b中的任一者。虽然通过将数据存储于存储器单元140a、140b中而写入数据,但存储器控制器110提供用以基于写入命令而将数据写入到存储器单元140a、140b的指令。虽然从存储器单元140a、140b读取所存储数据,但存储器控制器110基于读取命令而提供指令且从存储器单元140a、140b接收数据。
存储器控制器110可使用控制数据到存储器单元140a、140b的流动的电路来实施。存储器控制器110可为耦合到处理器105或在处理器105上实施为(举例来说)处理器105的核心以控制计算系统100的存储器系统的单独芯片或集成电路。在一些实施例中,存储器控制器110可集成到处理器105中以称为集成存储器控制器(IMC)。
存储器控制器110可借助处理器105与用以实施存储器系统的多个存储器单元通信。举例来说,存储器单元140a、140b可同时与存储器控制器110通信。虽然图1的实例描绘两个存储器单元140a、140b,但可预期存储器控制器110可与任一数目个存储器单元互动。举例来说,可包含八个存储器单元且每一存储器单元可包含具有八位宽度的数据总线,因此由处理器105实施的存储器系统可具有六十四位宽度。存储器单元140a、140b可为动态随机存取存储器(DRAM)或非易失性随机存取存储器(RAM),例如铁电RAM(FeRAM)、自旋转矩RAM(STT-RAM)、相变RAM(PCRAM)、电阻改变RAM(ReRAM)等等。在各种实施例中,这些存储器单元可称为存储器芯片、存储器模块、存储器裸片、存储器卡、存储器装置、存储器阵列及/或存储器胞元。物理地,存储器单元140a、140b可布置且安置为一个层,或可安置为堆叠层。在某一实施例中,存储器单元140a、140b可彼此上下地安置为多个层,以形成垂直存储器,例如3D NAND快闪存储器。
在其中存储器单元140a、140b可使用集成到单个半导体芯片中的DRAM或非易失性RAM来实施的一些实例中,存储器单元140a、140b可安装于存储器模块衬底、母板等等上。举例来说,存储器单元140a、140b称为存储器芯片。存储器单元140a、140b可包含存储器胞元阵列区域及外围电路区域。所述存储器胞元阵列区域包含具有多个组的存储器胞元阵列,每一组包含多个字线、多个位线及布置于所述多个字线与所述多个位线的交叉点处的多个存储器胞元。位线的选择可由多个列解码器执行且字线的选择可由多个行解码器执行。
存储器单元140a、140b的外围电路区域可包含时钟端子、地址端子、命令端子及数据输入/输出(I/O)端子(DQ)。举例来说,所述数据I/O端子可处置八位数据通信。数据输入/输出(I/O)缓冲器可耦合到数据输入/输出端子(DQ)以用于数据存取,例如存储器的读取存取及写入存取。所述地址端子可接收地址信号及组地址信号。所述组地址信号可用于在所述多个组当中选择一组。行地址及列地址可提供为地址信号。所述命令端子可包含芯片选择(/CS)引脚、行地址选通(/RAS)引脚、列地址选通(/CAS)引脚、写入启用(/WE)引脚等等。命令解码器可解码在命令端子处经由存储器接口135a、135b中的一者从存储器控制器110接收的命令信号,以接收包含读取命令及/或写入命令的各种命令。此命令解码器可响应于所接收命令而提供控制信号以控制存储器胞元阵列区域。可(举例来说)从存储器接口135a、135b中的一者向所述时钟端子供应外部时钟信号。
存储器控制器110的存储器映射器120可将存储器映射提供到存储器单元以用于存取存储器单元。举例来说,可基于经提供以存取存储器单元140a及/或存储器单元140b的存储器命令而选择存储器映射。举例来说,在处理器105上实施的过程或程序的读取或写入操作可为将读取或写入命令发送到存储器控制器110的存储器存取操作。存储器映射器120可基于与所述存储器存取操作相关联的存储器命令而检索或配置存储器映射。所述存储器映射可包含用以存取存储器单元(例如存储器单元140a及/或存储器单元140b)的一或多个特定存储器存取指令序列。举例来说,特定存储器存取指令序列可以对于执行张量及/或矩阵操作可为有利的特定型式存取存储器阵列的一或多个存储器胞元。每一存储器存取指令可包含用于所述多个存储器胞元中的存储器胞元的相应地址的指令。举例来说,存储器映射可经由存储器接口135a的地址端子到存储器单元140a的地址端子提供到存储器单元140a。
存储器映射器可将存储器映射产生、提供及/或选择成是存储器命令类型特有的。存储器命令可包含行存储器命令或列存储器命令,以便存取存储器阵列的相应行或列。存储器命令还可包含基于在处理器105上执行或实施操作的命令。张量操作可包含各种矩阵操作及/或计算。举例来说,张量操作可包含特定矩阵的对角线或特定矩阵的决定因素的计算;举例来说,后者为矩阵逆计算的一部分。
存储器映射器120可提供存储器映射使得存储器经存取,如由张量存储器命令的操作次序所定义。张量存储器命令可包含对角线存储器命令、决定性存储器命令或任何矩阵存储器命令。举例来说,用以存取存储器阵列的存储器胞元的特定存储器存取指令序列可包含由张量存储器命令的操作次序定义的存储器存取指令序列。在矩阵操作的对角线计算的一些实例中,作为在处理器105上执行的张量操作的一部分,根据由处理器105实施的对角线存储器命令,存储器存取指令序列可沿着存储器阵列的对角线存取各种存储器胞元。因此,在提供存储器命令的存储器映射中,存储器映射器120可识别一或多个存储器单元140a、140b的多个存储器地址以存取所述对应存储器地址;且因此根据存储器命令的操作次序将所述多个存储器地址分配到存储器映射中,使得特定指令序列以所述操作次序来执行。
存储器映射器120可为具有三维存储器阵列的存储器单元提供可基于张量存储器命令的存储器映射。所述存储器映射可规定根据相应张量处理层存储三维存储器阵列的每一层。可在三维结构上实行张量操作;且如本文中所描述,存储器映射可用于基于张量操作的所述三维结构而有效地存取存储器。对三维矩阵的张量操作可包含基于例如垂直列模式、行模式、管模式、垂直切片模式、横向切片模式及/或正面切片模式的模式的操作。每一模式可对应于三维操作的相应轴线的二维向量或平面;且因此,可存取存储器,例如以相似方式对存储器进行读取或写入。有利地,在一些实例中,在三个维度上存取存储器可允许张量的更高效处理;举例来说,在机器学习应用中。
有利地,在一些实例中,对于张量存储器命令,可在处理张量或执行张量操作(例如张量分解)时利用本文中所描述的系统及方法作为存储器存取方案。基于张量的处理可计算待处理的数个数据层,其中每一后续层基于先前层的结果的组合。在一些应用中,层可存储于存储器中使得可更有效地执行对层的后续处理。举例来说,可在二维存储器阵列或三维存储器装置中以对角线方式对层进行写入。存储器映射器120可提供经布置而以对角线方式存取此存储器单元的存储器映射,如由所述张量存储器命令中的操作次序所规定。在一些实例中,张量存储器命令可包含通过将每一层的结果最初写入于作为对角线的存储器单元中而处理每一先前层的结果。因此,还可存取存储器单元从而以其中根据张量存储器命令写入每一层的结果的方式处理所述对角线计算。以此方式,可根据张量存储器存取(如本文中所描述,其可为由张量处理的操作次序定义的对存储器的存取)来存取任何存储器单元或装置。
虽然存储器映射器120已在处理器105的实施方案的上下文中经描述为存储器控制器的一部分,但可预期在其它实施例中还可以不同方式实施存储器映射器120。举例来说,存储器映射器120可作为例如专用集成电路(ASIC)、实施为现场可编程门阵列(FPGA)的一部分的数字信号处理器(DSP)或芯片上系统(SoC)的单独电路耦合到处理器105。作为另一实例,存储器映射器120可耦合到存储器控制器110,存储器控制器110由处理器105实施为确定将在存储器单元140a、140b上执行的指令序列的一系列开关。所述开关可为多路复用器,举例来说,其中选定线耦合到存储器控制器110。
存储器控制器110的地址变换器130可基于用以存取存储器单元140a及/或存储器单元140b的存储器命令而变换用于存储器单元的存储器映射。当存储器命令的操作次序不同于经提供以在存储器单元140a及/或存储器单元140b处执行先前存储器存取操作的先前存储器命令的操作次序时可变换存储器映射。举例来说,存储器映射器120可先前已基于对角线命令而提供存储器映射,且随后,存储器映射器120从存储器控制器接收命令以为决定性存储器命令提供存储器映射。在此些实例中,地址变换器130可在用于对角线存储器命令的存储器映射中识别存储器胞元的地址。一旦经识别,地址变换器130便可将所识别地址分配到针对决定性存储器命令而配置的存储器映射中,使得决定性存储器命令以由决定性操作而非对角线存储器操作定义的操作次序存取所识别地址,存储器胞元先前已以所述次序被存取。一旦经分配,地址变换器130便完成存储器映射的变换以用于决定性存储器命令,且存储器映射器120可将经变换存储器映射提供到存储器单元140a及/或存储器单元140b。
虽然地址变换器130已在处理器105的实施方案的上下文中经描述为存储器控制器的一部分,但可预期还可在其它实施例中以不同方式实施地址变换器130。举例来说,地址变换器130可作为例如ASIC、实施为现场可编程门阵列(FPGA)的一部分的数字信号处理器(DSP)或芯片上系统(SoC)的单独电路耦合到处理器105。作为另一实例,地址变换器130可耦合到存储器控制器110,存储器控制器110由处理器105实施为识别存储器单元140a、140b的相应地址以变换不同存储器映射的所述所识别地址的一系列开关。所述开关可为多路复用器,举例来说,其中选定线耦合到存储器控制器110。
图2A到2C是根据本文中所描述的实例的存取存储器单元的示意性图解说明。图2A是作为执行对角线矩阵操作的张量操作的一部分而根据对角线存储器命令存取存储器单元240的示意性图解说明。包含标记为A1到A4、B1到B4、C1到C4及D1到D4的存储器胞元的存储器胞元250示意性地图解说明于存储器系统200的存储器单元240中。在图2A的实例中,存储器单元240可为包含存储器胞元250的存储器阵列。在图2A的实例中,存储器系统200接收对角线存储器命令以用于实施执行对角线矩阵操作的张量操作。例如图1的存储器控制器110的存储器控制器可实施存储器映射器120以为对角线矩阵操作提供存储器映射。所述存储器映射包含由对角线矩阵操作的操作次序定义的用以存取存储器胞元250的指令序列。在图2A中以虚线描绘对角线矩阵操作的操作次序260,从而根据对角线矩阵操作的操作次序存取存储器胞元250。如所描绘,操作次序260最初以存取存储器胞元A1来开始,通过存取存储器胞元B2及C3来继续进行,以存取存储器胞元D4来结束。因此,可基于提供到存储器单元以用于所述对角线存储器命令的存储器映射而根据对角线矩阵操作的操作次序存取存储器单元240的存储器胞元250。
图2B是作为执行矩阵操作的张量操作的一部分而根据张量存储器命令存取存储器单元240的示意性图解说明。包含标记为A1到A4、B1到B4、C1到C4及D1到D4的存储器胞元的存储器胞元250示意性地图解说明于存储器系统200的存储器单元240中。在实例中,存储器单元240可为包含存储器胞元250的存储器阵列。在图2B的实例中,存储器系统200接收张量存储器命令以用于实施执行矩阵操作的张量操作。例如图1的存储器控制器110的存储器控制器可实施存储器映射器120以为张量操作提供存储器映射。所述存储器映射可包含由矩阵操作的操作次序定义的用以存取存储器胞元250的指令序列。在图2B中以虚线描绘矩阵操作的操作次序270a到270i,从而根据矩阵操作的操作次序存取存储器胞元250。如所描绘,操作次序270a最初以依序存取存储器胞元A1及A2来开始。操作次序进一步包含操作次序270b,其中在A2之后依序存取存储器胞元B1。操作次序进一步包含操作次序270c,其中依序存取存储器胞元C1、B2及A3。操作次序进一步包含操作次序270d,其中在A3之后依序存取存储器胞元A4。操作次序进一步包含操作次序270e,其中在A4之后依序存取存储器胞元B3、C2及D1全部。操作次序进一步包含操作次序270e,其中存取存储器胞元D2。操作次序进一步包含操作次序270f,其中在D2之后依序存取存储器胞元C3及B4两者。操作次序进一步包含操作次序270g,其中存取存储器胞元C4。操作次序进一步包含操作次序270h,其中在C4之后存取存储器胞元D3。操作次序以操作次序270i来结束,其中存取存储器胞元D4。因此,可基于提供到存储器单元以用于所述张量存储器命令的存储器映射而根据矩阵操作的操作次序存取存储器单元240的存储器胞元250(例如由存储器控制器及/或本文中所描述的其它结构)。
图2C是作为执行矩阵操作的张量操作的一部分而根据张量存储器命令存取存储器单元240的示意性图解说明。在图2C的实例中,存储器系统200接收张量存储器命令以用于实施执行矩阵操作的张量操作。例如图1的存储器控制器110的存储器控制器可实施存储器映射器120以配置用于张量操作的存储器映射。所述存储器映射包含由矩阵操作的操作次序定义的用以存取存储器胞元250的指令序列。在图2C中以虚线描述矩阵操作的操作次序280a到280d,从而根据矩阵操作的操作次序存取存储器胞元250。如所描绘,操作次序280a最初以依序存取存储器胞元A1到A4来开始。操作次序进一步包含操作次序280b,其中依序存取存储器胞元B2到B4。操作次序进一步包含操作次序280c,其中依序存取存储器胞元C3及C4。操作次序以操作次序280d来结束,其中存取存储器胞元D4。因此,可基于提供到存储器单元以用于所述张量存储器命令的存储器映射而根据矩阵操作的操作次序存取存储器单元240的存储器胞元250。
虽然在图2A到2C中在二维存储器阵列的上下文中经描述,但可预期存储器存取命令可在三维或N维空间中经配置以用于存储器;举例来说,借助由张量操作定义的对应存储器命令在所述三维或N维空间中处理张量操作。
图3是根据本文中所描述的实例来布置的方法的流程图。实例性方法300可开始存储器存取方法。方法300可包含叙述“获得与存储器存取操作相关联的存储器命令”的框308。由例如处理器105的处理器执行的操作或过程可从所述操作或过程获得或接收存储器命令以对存储器单元进行读取或写入。举例来说,在处理器105上实施的过程或程序的读取或写入操作可为将读取或写入命令发送到存储器控制器110的存储器存取操作。因此,存储器控制器110可获得写入命令以将数据写入到存储器单元140a、140b。存储器控制器110还可获得读取命令以读取存储于存储器单元140a、140b处的数据。框308可后续接着叙述“至少基于存储器命令而检索存储器映射”的框312。存储器控制器的存储器映射器(例如存储器映射器120)可基于存取命令而从所存储存储器检索存储器映射。在一些实施例中,存储器映射器可通过提供所述存储器命令特有的存储器映射而检索存储器映射。在本文中所描述的实例中,存储器映射器可提供存储器映射,使得存储器经存取,如由张量存储器命令的操作次序定义。
框312可后续接着叙述“基于存储器映射而执行存储器存取操作”的框316。存储器单元可接收所检索存储器映射,且因而根据存储器映射执行存储器存取操作。举例来说,存储器单元可接收包含由对角线矩阵操作的操作次序基于由存储器控制器接收的对角线存储器命令而定义的用以存取存储器胞元的指令序列的存储器映射。因此,可根据所述操作次序存取存储器单元的每一存储器胞元。有利地,举例来说,关于处理此操作的速度,在处理器或计算装置中执行或实施操作可通过根据通过执行所述操作定义的存储器命令存取存储器来改进。框316可后续接着结束方法300的框320。
图4是根据本文中所描述的实例来布置的方法的流程图。实例性方法400可开始地址变换方法。方法400可包含叙述“获得与存储器存取操作相关联的存储器命令”的框408。由例如处理器105的处理器执行的操作或过程可从所述操作或过程获得或接收存储器命令以对存储器单元进行读取或写入。举例来说,在处理器105上实施的过程或程序的读取或写入操作可为将读取或写入命令发送到存储器控制器110的存储器存取操作。因此,存储器控制器110可获得写入命令以将数据写入到存储器单元140a、140b。存储器控制器110还可获得读取命令以读取存储于存储器单元140a、140b处的数据。框408可后续接着叙述“确定存储器存取操作与不同于先前存储器存取操作的存储器映射相关联”的框412。存储器控制器可将先前所提供的存储器命令与随后所接收的命令进行比较,以确定存储器命令基于不同操作次序。举例来说,每一存储器命令中的标头的比较可将每一存储器命令识别为不同于其它存储器命令。在此情形中,存储器控制器可确定先前所提供的存储器命令与不同于存储器映射以针对随后所接收的存储器命令而配置的存储器映射相关联。
框412可后续接着叙述“至少基于存储器存取操作及另一存储器存取操作而变换包含存储器地址的存储器映射”的框416。为变换所述存储器映射,存储器控制器的地址变换器可在用于先前所提供的存储器命令的存储器映射中识别存储器胞元的地址。一旦经识别,地址变换器便可在用于随后所接收的存储器命令的存储器映射中提供所识别地址,使得随后所接收的存储器命令以由随后所接收存储器命令的操作定义的操作次序存取所识别地址。一旦经分配,地址变换器便已变换存储器映射以用于随后所接收的命令。框416可后续接着叙述“提供经变换存储器映射以执行存储器存取操作”的框420。存储器映射器可将经变换存储器映射提供到存储器单元,且因而基于经变换存储器映射而执行存储器存取操作。因此,可根据随后所接收的存储器命令而非先前所提供的存储器命令的操作次序存取存储器单元的每一存储器胞元。框420可后续接着结束方法400的框424。
包含于所描述实例性方法300及400中的框是出于图解说明目的。在一些实施例中,可以不同次序执行所述框。在一些其它实施例中,可消除各种框。在又其它实施例中,各种框可划分成与其它框互补或共同组合成更少框的额外框。预计这些特定框的其它变化形式,包含框的次序的改变、经分裂或组合成其它框的框的内容的改变等。
图5是根据本文中所描述的实例来布置的计算系统的示意性图解说明。计算装置500可根据本文中所描述的任一实施例来操作。所述计算装置可为智能电话、可穿戴电子装置、服务器、计算机、电器、车辆或任何类型的电子装置。计算系统500包含存储器系统502、处理器505及I/O接口570以及耦合到网络595的网络接口590。存储器系统502包含具有存储器映射器520及地址变换器530的存储器控制器510,其中两者均根据本文中关于存储器映射器及地址变换器所描述的功能性来操作。图5的类似地经编号元件包含与图1的所述经编号元件相似的功能性。举例来说,存储器单元540可像图1的存储器单元140a、140b一样操作且配置。处理器505可包含任何类型的微处理器、中央处理单元(CPU)、专用集成电路(ASIC)、实施为现场可编程门阵列(FPGA)的一部分的数字信号处理器(DSP)、芯片上系统(SoC)或用以提供系统500的处理的其它硬件。
存储器系统502还包含存储器单元540及非暂时性硬件可读媒体550、560,含存储器单元540及非暂时性硬件可读媒体550、560包含分别用于存储器存取及地址变换的指令。处理器505可借助指示何时执行用于存储器存取550的指令及/或用于地址变换560的指令的控制指令控制存储器系统502。在接收到此些控制指令后,存储器映射器520即刻可执行用于存储器存取550的指令;及/或地址变换器530可执行用于地址变换560的指令。用于存储器存取550的指令可包含执行方法300的程序。用于地址变换560的指令可包含执行方法400的程序。处理器505、I/O接口570及网络接口590之间的通信经由处理器内部总线580来提供。处理器505可从I/O接口570或网络接口590接收控制指令,例如用以控制存储器存取或地址变换的执行的指令。
总线580可包含一或多个物理总线、通信线/接口及/或点对点连接,例如外围组件互连(PCI)总线。I/O接口570可包含各种用户接口,包含用于用户的视频及/或音频接口,例如具有麦克风的平板显示器。网络接口590经由网络595与其它计算装置(例如计算装置500或云计算服务器)通信。举例来说,网络接口590可为USB接口。
在本发明的方面中,一种设备包含:存储器阵列,其包括多个存储器胞元;及存储器控制器,其耦合到所述存储器阵列,所述存储器控制器包括经配置以基于与存储器存取操作相关联的存储器命令而配置存储器映射的存储器映射器。所述存储器映射包括用以存取所述存储器阵列的至少一个存储器胞元的特定存储器存取指令序列。
另外或替代地,所述存储器存取指令是存储器命令类型特有的。
另外或替代地,所述存储器命令类型包括行存储器命令、列存储器命令、对角线存储器命令、决定性存储器命令或任何矩阵存储器命令。
另外或替代地,所述特定存储器存取指令序列的每一存储器存取指令包括用于所述多个存储器胞元中的存储器胞元的相应地址的指令。
另外或替代地,所述存储器控制器实施于处理器中。
另外或替代地,所述存储器控制器经配置以经由耦合到网络接口的总线接收所述存储器命令,所述网络接口经配置以与云计算网络通信。
另外或替代地,所述设备进一步包含耦合到所述存储器控制器且经配置以与所述存储器阵列通信的存储器接口。
另外或替代地,所述存储器映射器经配置以经由所述存储器接口将所述存储器映射提供到所述存储器阵列。
另外或替代地,所述存储器接口包括多个端子。所述多个端子的至少一个端口经配置以接收存储器命令信号、地址信号、时钟信号或数据信号中的至少一者。
另外或替代地,所述存储器控制器进一步包含经配置以基于所述存储器存取操作及另一存储器存取操作而变换所述存储器映射的地址变换器。
另外或替代地,向所述另一存储器存取操作提供不同于所述存储器映射的存储器映射。
另外或替代地,所述设备进一步包含包括另外多个存储器胞元的另一存储器阵列,其中所述存储器控制器耦合到所述另一存储器阵列,其中所述特定存储器存取指令序列包括用以存取所述存储器阵列的至少一个存储器胞元及所述另一存储器阵列的至少一个存储器胞元的指令。
另外或替代地,所述存储器命令包括对角线存储器命令。用以存取所述存储器阵列的至少一个存储器胞元的所述特定存储器存取指令序列包含各自沿着所述存储器阵列的对角线存取存储器胞元的存储器存取指令序列。
另外或替代地,用以存取所述存储器阵列的至少一个存储器胞元的所述特定存储器存取指令序列包含由所述存储器命令的操作次序定义的存储器存取指令序列。
在本发明的另一方面中,一种方法包含:获得与存储器存取操作相关联的存储器命令;至少基于所述存储器命令而检索用于所述存储器存取操作的存储器映射;及基于所述存储器映射而执行所述存储器存取操作。
另外或替代地,所述存储器映射包含用以存取多个存储器胞元的特定存储器存取指令序列。
另外或替代地,基于所述存储器映射而执行所述存储器存取操作包含基于所述存储器映射而存取所述多个存储器胞元的相应地址。
另外或替代地,所述存储器映射基于所述存储器命令的操作次序。
在本发明的另一方面中,一种方法包含:获得与存储器存取操作相关联的存储器命令;确定所述存储器存取操作与不同于在另一存储器操作中所利用的另一存储器映射的存储器映射相关联;至少基于所述存储器映射及所述另一存储器映射而变换所述存储器映射;及提供经变换存储器映射以执行所述存储器存取操作。
另外或替代地,所述存储器映射基于所述存储器命令的操作次序,且其中所述另一存储器映射基于经提供以执行先前存储器存取操作的先前存储器命令的另一操作次序。
另外或替代地,至少基于所述存储器映射及所述另一存储器映射而变换所述存储器映射包含:识别所述存储器映射的多个存储器地址;及基于所述存储器命令的操作次序而将所述多个存储器地址分配到所述存储器映射中。
另外或替代地,所述方法进一步包含基于所述存储器映射而存取多个存储器胞元。
根据前述内容将预期,尽管本文中已出于图解说明目的描述本发明的特定实施例,但可在不背离本发明的精神及范围的情况下做出各种修改。
Claims (21)
1.一种设备,其包括:
存储器阵列,其包括多个存储器胞元;及
存储器控制器,其耦合到所述存储器阵列,所述存储器控制器经配置以基于具有第一矩阵操作次序且与第一存储器存取操作相关联的第一存储器命令而配置第一存储器映射,其中所述第一存储器映射包括用以存取所述存储器阵列的至少一个存储器胞元的特定存储器存取指令序列;
基于与第二存储器存取操作相关联的第二存储器命令的第二矩阵操作次序将所述第一存储器映射转换为第二存储器映射,其中所述第二矩阵操作次序不同于所述第一矩阵操作次序;
在所述第一存储器映射中,识别根据所述第一矩阵操作次序布置的所述第一存储器映射中的多个存储器地址,并根据所述第二存储器命令的所述第二矩阵操作次序将所识别的多个存储器地址分配到所述第二存储器映射中。
2.根据权利要求1所述的设备,其中所述存储器存取指令是存储器命令类型特有的。
3.根据权利要求1所述的设备,其中所述第一存储器命令包括对角线存储器命令,且所述第二存储器命令包括决定性存储器命令,其中所述第一矩阵操作次序对应于对角线操作次序,且其中所述第二矩阵操作次序对应于决定性操作次序。
4.根据权利要求1所述的设备,其中所述特定存储器存取指令序列的每一存储器存取指令包括用于所述多个存储器胞元中的存储器胞元的相应地址的指令。
5.根据权利要求1所述的设备,其中所述存储器控制器实施于处理器中。
6.根据权利要求1所述的设备,其中所述存储器控制器经配置以经由耦合到网络接口的总线接收所述存储器命令,所述网络接口经配置以与云计算网络通信。
7.根据权利要求1所述的设备,其进一步包括:
存储器接口,其耦合到所述存储器控制器且经配置以与所述存储器阵列通信。
8.根据权利要求7所述的设备,其中所述存储器控制器进一步经配置以经由所述存储器接口将所述第二存储器映射提供到所述存储器阵列。
9.根据权利要求7所述的设备,其中所述存储器接口包括多个端子,其中所述多个端子的至少一个端口经配置以接收存储器命令信号、地址信号、时钟信号或数据信号中的至少一者。
10.根据权利要求1所述的设备,其中向所述第二存储器存取操作由所述第二存储器映射提供。
11.根据权利要求1所述的设备,其进一步包括:
另一存储器阵列,其包括另外多个存储器胞元,其中所述存储器控制器耦合到所述另一存储器阵列,其中所述特定存储器存取指令序列包括用以存取所述存储器阵列的至少一个存储器胞元及所述另一存储器阵列的至少一个存储器胞元的指令。
12.根据权利要求1所述的设备,其中用以存取所述存储器阵列的至少一个存储器胞元的所述特定存储器存取指令序列包括各自沿着所述存储器阵列的对角线存取存储器胞元的存储器存取指令序列。
13.根据权利要求1所述的设备,其中用以存取所述存储器阵列的至少一个存储器胞元的所述特定存储器存取指令序列包括由所述第一存储器命令的所述第一矩阵操作次序定义的存储器存取指令序列。
14.根据权利要求1所述的设备,其中所述第一存储器命令的所述第一矩阵操作次序对应于由对角线存储器命令定义的矩阵操作次序,且其中所述第二存储器命令的所述第二矩阵操作次序对应于由决定性操作定义的矩阵操作次序。
15.一种方法,其包括:
获得与具有对角线操作次序的第一存储器存取操作相关联的第一存储器命令;
至少基于所述第一存储器命令而检索用于所述第一存储器存取操作的第一存储器映射;
基于所述第一存储器映射而执行所述第一存储器存取操作;
获得与第二存储器存取操作相关联的第二存储器命令;
根据具有决定性操作次序的所述第二存储器存取操作,将所述第一存储器映射转换为用于所述第二存储器存取操作的第二存储器映射;
在所述第一存储器映射中,识别根据所述对角线操作次序布置的所述第一存储器映射中的多个存储器地址;及
根据所述第二存储器命令的所述决定性操作次序,将所识别的多个存储器地址分配到所述第二存储器映射中。
16.根据权利要求15所述的方法,其中所述第一存储器映射包括用以存取多个存储器胞元的特定存储器存取指令序列。
17.根据权利要求16所述的方法,其中基于所述第一存储器映射而执行所述第一存储器存取操作包括基于所述第一存储器映射而存取所述多个存储器胞元的相应地址。
18.根据权利要求15所述的方法,其中所述第一存储器映射基于所述第一存储器存取操作的所述对角线操作次序。
19.一种方法,其包括:
获得与第一存储器存取操作相关联的第一存储器命令;
获得与第二存储器存取操作相关联的第二存储器命令;
确定所述第二存储器存取操作用于第二矩阵操作次序,所述第二矩阵操作次序不同于用于所述第一存储器存取操作的第一矩阵操作次序;
基于关于所述第二矩阵操作次序不同于所述第一矩阵操作次序的确定,将所述第一存储器命令的第一存储器映射转换为所述第二存储器命令的第二存储器映射,其中将所述第一存储器命令的所述第一存储器映射转换为所述第二存储器命令的所述第二存储器映射包括:
在所述第一存储器映射中,识别根据所述第一矩阵操作次序布置的所述第一存储器映射中的多个存储器地址;
根据所述第二存储器命令的所述第二矩阵操作次序,将所识别的多个存储器地址分配到所述第二存储器映射中;及
提供所述第二存储器映射以执行所述第二存储器存取操作。
20.根据权利要求19所述的方法,其中所述第一存储器映射基于被提供以执行所述第一存储器存取操作的所述第一存储器命令的所述第一矩阵操作次序。
21.根据权利要求19所述的方法,其进一步包括:
基于所述第二存储器映射而存取多个存储器胞元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/493,505 US10684955B2 (en) | 2017-04-21 | 2017-04-21 | Memory devices and methods which may facilitate tensor memory access with memory maps based on memory operations |
US15/493,505 | 2017-04-21 | ||
PCT/US2018/025660 WO2018194824A1 (en) | 2017-04-21 | 2018-04-02 | Memory devices and methods which may facilitate tensor memory access |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110582745A CN110582745A (zh) | 2019-12-17 |
CN110582745B true CN110582745B (zh) | 2023-10-31 |
Family
ID=63854618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880026411.4A Active CN110582745B (zh) | 2017-04-21 | 2018-04-02 | 存储器装置及可促进张量存储器存取的方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10684955B2 (zh) |
EP (1) | EP3612923A4 (zh) |
KR (1) | KR102288830B1 (zh) |
CN (1) | CN110582745B (zh) |
WO (1) | WO2018194824A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10684955B2 (en) | 2017-04-21 | 2020-06-16 | Micron Technology, Inc. | Memory devices and methods which may facilitate tensor memory access with memory maps based on memory operations |
US11144316B1 (en) | 2018-04-17 | 2021-10-12 | Ali Tasdighi Far | Current-mode mixed-signal SRAM based compute-in-memory for low power machine learning |
US11132124B2 (en) * | 2018-06-12 | 2021-09-28 | Intel Corporation | Memory subsystem operations with unaligned and scatter gather feature to support convolution and dimension shuffle |
US10956315B2 (en) | 2018-07-24 | 2021-03-23 | Micron Technology, Inc. | Memory devices and methods which may facilitate tensor memory access |
WO2020258197A1 (en) * | 2019-06-28 | 2020-12-30 | Yangtze Memory Technologies Co., Ltd. | Computation-in-memory in three-dimensional memory device |
CN110537259A (zh) * | 2019-06-28 | 2019-12-03 | 长江存储科技有限责任公司 | 三维存储器件中的存储器内计算 |
US10915298B1 (en) | 2019-10-08 | 2021-02-09 | Ali Tasdighi Far | Current mode multiply-accumulate for compute in memory binarized neural networks |
US11615256B1 (en) | 2019-12-30 | 2023-03-28 | Ali Tasdighi Far | Hybrid accumulation method in multiply-accumulate for machine learning |
US11610104B1 (en) | 2019-12-30 | 2023-03-21 | Ali Tasdighi Far | Asynchronous analog accelerator for fully connected artificial neural networks |
US11522817B1 (en) * | 2021-01-04 | 2022-12-06 | Innovium, Inc. | Spatial dispersion buffer |
CN113342570B (zh) * | 2021-06-17 | 2022-03-08 | 哈尔滨工业大学 | 一种适配3d tlc型nand闪存数据存储的双目标状态消除编解码方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102640226A (zh) * | 2009-10-21 | 2012-08-15 | 美光科技公司 | 具有内部处理器的存储器及控制存储器存取的方法 |
US8621181B1 (en) * | 2009-10-19 | 2013-12-31 | Marvell International Ltd. | System and method for accessing distinct regions of memory using multiple mapping modes, each of the mapping modes having a predetermined order of dimensions for a respective region of the memory |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870625A (en) | 1995-12-11 | 1999-02-09 | Industrial Technology Research Institute | Non-blocking memory write/read mechanism by combining two pending commands write and read in buffer and executing the combined command in advance of other pending command |
EP1195719A3 (en) | 2000-10-04 | 2004-12-01 | TeraRecon, Inc. | Rendering memory in a volume rendering system |
TW594743B (en) * | 2001-11-07 | 2004-06-21 | Fujitsu Ltd | Memory device and internal control method therefor |
US6954822B2 (en) | 2002-08-02 | 2005-10-11 | Intel Corporation | Techniques to map cache data to memory arrays |
US7434119B2 (en) * | 2005-03-07 | 2008-10-07 | Arm Limited | Method and apparatus for memory self testing |
US7502909B2 (en) | 2005-10-11 | 2009-03-10 | Motorola, Inc. | Memory address generation with non-harmonic indexing |
US8135936B2 (en) | 2009-12-23 | 2012-03-13 | Intel Corporation | Adaptive address mapping with dynamic runtime memory mapping selection |
JP5415280B2 (ja) | 2007-01-16 | 2014-02-12 | コーニンクレッカ フィリップス エヌ ヴェ | データビット又はシンボルをインタリーブするためのシステム、装置及び方法 |
US8332580B2 (en) * | 2008-04-02 | 2012-12-11 | Zikbit Ltd. | System, method and apparatus for memory with embedded associative section for computations |
JP2009276853A (ja) | 2008-05-12 | 2009-11-26 | Toshiba Corp | フラッシュメモリ装置 |
KR101360812B1 (ko) | 2008-06-05 | 2014-02-11 | 삼성전자주식회사 | 반도체 장치 및 이를 포함하는 반도체 시스템 |
US9513695B2 (en) * | 2008-06-24 | 2016-12-06 | Virident Systems, Inc. | Methods of managing power in network computer systems |
CN102292774B (zh) * | 2008-06-30 | 2014-07-02 | 富士通半导体股份有限公司 | 存储器装置以及控制该存储器装置的存储器控制器 |
TWI447646B (zh) | 2011-11-18 | 2014-08-01 | Asmedia Technology Inc | 資料傳輸裝置及多個指令的整合方法 |
US9164676B2 (en) | 2011-11-30 | 2015-10-20 | International Business Machines Corporation | Storing multi-stream non-linear access patterns in a flash based file-system |
US20140181427A1 (en) | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Compound Memory Operations in a Logic Layer of a Stacked Memory |
US20140188961A1 (en) | 2012-12-27 | 2014-07-03 | Mikhail Plotnikov | Vectorization Of Collapsed Multi-Nested Loops |
US9406362B2 (en) | 2013-06-17 | 2016-08-02 | Micron Technology, Inc. | Memory tile access and selection patterns |
US9396109B2 (en) * | 2013-12-27 | 2016-07-19 | Qualcomm Incorporated | Method and apparatus for DRAM spatial coalescing within a single channel |
US10146475B2 (en) * | 2014-09-09 | 2018-12-04 | Toshiba Memory Corporation | Memory device performing control of discarding packet |
US9934153B2 (en) * | 2015-06-30 | 2018-04-03 | Nvidia Corporation | Patch memory system |
US11170294B2 (en) | 2016-01-07 | 2021-11-09 | Intel Corporation | Hardware accelerated machine learning |
US9875104B2 (en) | 2016-02-03 | 2018-01-23 | Google Llc | Accessing data in multi-dimensional tensors |
US9959498B1 (en) | 2016-10-27 | 2018-05-01 | Google Llc | Neural network instruction set architecture |
US10684955B2 (en) | 2017-04-21 | 2020-06-16 | Micron Technology, Inc. | Memory devices and methods which may facilitate tensor memory access with memory maps based on memory operations |
JP2019046042A (ja) | 2017-08-31 | 2019-03-22 | 富士通株式会社 | 伝送装置および伝送方法 |
US10956315B2 (en) | 2018-07-24 | 2021-03-23 | Micron Technology, Inc. | Memory devices and methods which may facilitate tensor memory access |
TWI682397B (zh) | 2018-12-12 | 2020-01-11 | 新唐科技股份有限公司 | 資料處理系統與資料處理方法 |
-
2017
- 2017-04-21 US US15/493,505 patent/US10684955B2/en active Active
-
2018
- 2018-04-02 CN CN201880026411.4A patent/CN110582745B/zh active Active
- 2018-04-02 KR KR1020197033550A patent/KR102288830B1/ko active IP Right Grant
- 2018-04-02 WO PCT/US2018/025660 patent/WO2018194824A1/en unknown
- 2018-04-02 EP EP18787711.3A patent/EP3612923A4/en not_active Withdrawn
-
2020
- 2020-05-01 US US16/864,437 patent/US11573903B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621181B1 (en) * | 2009-10-19 | 2013-12-31 | Marvell International Ltd. | System and method for accessing distinct regions of memory using multiple mapping modes, each of the mapping modes having a predetermined order of dimensions for a respective region of the memory |
CN102640226A (zh) * | 2009-10-21 | 2012-08-15 | 美光科技公司 | 具有内部处理器的存储器及控制存储器存取的方法 |
Non-Patent Citations (1)
Title |
---|
基于微程序技术的存储控制器的研究和设计;徐允文等;《半导体技术》;20071103(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US10684955B2 (en) | 2020-06-16 |
WO2018194824A1 (en) | 2018-10-25 |
KR102288830B1 (ko) | 2021-08-12 |
US20200257633A1 (en) | 2020-08-13 |
US20180307614A1 (en) | 2018-10-25 |
KR20190130664A (ko) | 2019-11-22 |
EP3612923A4 (en) | 2021-01-13 |
US11573903B2 (en) | 2023-02-07 |
CN110582745A (zh) | 2019-12-17 |
EP3612923A1 (en) | 2020-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110582745B (zh) | 存储器装置及可促进张量存储器存取的方法 | |
US11494078B2 (en) | Translation lookaside buffer in memory | |
US11663008B2 (en) | Managing memory device with processor-in-memory circuit to perform memory or processing operation | |
US20190042611A1 (en) | Technologies for structured database query for finding unique element values | |
CN113126898A (zh) | 存储器设备及其操作方法和存储器控制器的操作方法 | |
KR20200108774A (ko) | 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법 | |
US20210286551A1 (en) | Data access ordering for writing-to or reading-from memory devices | |
US11392494B2 (en) | Technologies for performant column read operations on clustered data in a dimm architecture | |
US20200293452A1 (en) | Memory device and method including circular instruction memory queue | |
CN112908384A (zh) | 可选择性操作的存储器装置 | |
CN113227956A (zh) | 计算瓦片 | |
CN113994314A (zh) | 扩展存储器接口 | |
CN110574013A (zh) | 存储器形状 | |
US11016704B2 (en) | Semiconductor system including various memory devices capable of processing data | |
CN113490915A (zh) | 扩展存储器操作 | |
WO2012115744A1 (en) | Improved write bandwidth in a memory characterized by a variable write time | |
KR20210108487A (ko) | 저장 디바이스 동작 오케스트레이션 | |
CN114258534A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |