CN112732599A - 具有虚拟化总线和内部逻辑以执行机器学习操作的存储器子系统 - Google Patents

具有虚拟化总线和内部逻辑以执行机器学习操作的存储器子系统 Download PDF

Info

Publication number
CN112732599A
CN112732599A CN202011099161.2A CN202011099161A CN112732599A CN 112732599 A CN112732599 A CN 112732599A CN 202011099161 A CN202011099161 A CN 202011099161A CN 112732599 A CN112732599 A CN 112732599A
Authority
CN
China
Prior art keywords
memory
machine learning
space
data
host system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011099161.2A
Other languages
English (en)
Inventor
A·加塔尼
P·卡莱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN112732599A publication Critical patent/CN112732599A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Neurology (AREA)
  • Memory System (AREA)

Abstract

本申请涉及一种具有虚拟化总线和内部逻辑以执行机器学习操作的存储器子系统。一种存储器组件包含用以存储机器学习模型和输入数据的存储器区,以及用以存储来自主机系统的主机数据的另一存储器区。控制器可耦合到所述存储器组件,且可包含存储器内逻辑以通过将所述机器学习模型应用于所述输入数据来执行机器学习操作以生成输出数据。总线可从所述主机系统接收额外数据,且解码器可从所述总线接收所述额外数据且可基于所述额外数据的特性将所述额外数据发射到所述另一存储器区或所述控制器的所述存储器内逻辑。

Description

具有虚拟化总线和内部逻辑以执行机器学习操作的存储器子 系统
技术领域
本公开大体上涉及一种存储器组件,且更确切地说涉及一种具有虚拟化总线和内部逻辑以执行机器学习操作的存储器子系统。
背景技术
存储器子系统可以是存储装置、存储器模块,以及存储装置和存储器模块的混合。存储器子系统可以包含存储数据的一或多个存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
发明内容
在一个方面中,本申请提供一种系统,所述系统包括:存储器组件,其包括用以存储机器学习模型和输入数据的存储器区以及用以存储来自主机系统的主机数据的另一存储器区;控制器,其耦合到所述存储器组件,包括存储器内逻辑以通过将所述机器学习模型应用于所述输入数据来执行机器学习操作以生成输出数据;总线,其用以从所述主机系统接收额外数据;以及解码器,其用以从所述总线接收所述额外数据,且基于所述额外数据的特性将所述额外数据提供到存储所述主机数据的所述另一存储器区或所述控制器的所述存储器内逻辑。
在另一方面中,本申请提供一种方法,其包括:经由与主机系统和存储器子系统相关联的总线接收来自所述主机系统的操作;由处理装置确定来自所述主机系统的所述操作与用以在所述存储器子系统处存储来自所述主机系统的主机数据的存储器组件的存储器空间相关联,还是与所述存储器子系统的机器学习空间相关联;以及基于所述确定将来自所述主机系统的所述操作提供到所述存储器空间的解码器或所述机器学习空间的另一解码器。
在又一方面中,本申请提供一种系统,所述系统包括:存储器组件;以及处理装置,其操作性地与所述存储器组件耦合以:经由与主机系统相关联的总线接收来自所述主机系统的操作;确定来自所述主机系统的所述操作与用以存储来自所述主机系统的主机数据的所述存储器组件的存储器空间相关联,还是与所述存储器组件的机器学习空间相关联;以及基于所述确定将来自所述主机系统的所述操作提供到所述存储器空间的所述解码器或所述机器学习空间的所述另一解码器。
附图说明
根据下文给出的详细描述和本公开的各种实施方案的附图,将更充分地理解本公开。
图1示出根据本公开的一些实施例包含存储器子系统的实例计算环境。
图2示出根据本公开的一些实施例包含一或多个存储器组件的实例计算环境,所述一或多个存储器组件包含机器学习操作组件。
图3示出根据本公开的一些实施例具有内部机器学习操作组件的实例存储器组件。
图4是根据一些实施例用于执行机器学习操作且用于在存储器组件处存储主机数据的实例方法的流程图。
图5示出根据本公开的一些实施例具有基于存储器组件的存储器单元的内部机器学习操作组件的实例存储器组件。
图6是根据一些实施例用于将存储器组件的部分分配到机器学习操作且用于存储主机数据的实例方法的流程图。
图7是根据一些实施例用于基于机器学习模型向主机系统提供存储器组件的容量的指示的实例方法的流程图。
图8示出根据本公开的一些实施例实施于存储器子系统的存储器子系统控制器中的机器学习操作组件。
图9示出根据本公开的一些实施例实施于存储器子系统的一或多个存储器组件中的机器学习操作组件。
图10是根据一些实施例用于在存储器子系统的一或多个存储器组件处执行机器学习操作的一部分的实例方法的流程图。
图11示出根据本公开的一些实施例的实例存储器组件和存储器子系统,其具有用于发射用于存储器空间和机器学习空间的数据的单个总线。
图12是根据一些实施例用于基于操作的类型将所请求的操作发射到存储器空间或机器学习空间的实例方法的流程图。
图13是根据一些实施例用于基于存储器地址向存储器空间或机器学习空间提供所请求的操作的实例方法的流程图。
图14示出根据本公开的一些实施例的实例存储器组件和存储器子系统,其具有用于发射用于存储器空间和机器学习空间的数据的单独的总线。
图15是根据本公开的一些实施例用于按基于针对机器学习操作的优先级的次序执行操作的实例方法的流程图。
图16A示出根据本公开的一些实施例已经被接收用于存储器组件或存储器子系统的存储器空间和机器学习空间的一系列操作。
图16B示出根据本公开的一些实施例已经基于针对机器学习操作的优先级排序的操作的系列。
图17是根据一些实施例用于基于与存储器空间相关联的性能量度改变机器学习操作的性能的实例方法的流程图。
图18是本公开的实施方案可以在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面是针对一种具有虚拟化总线和内部逻辑以执行机器学习操作的存储器子系统。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。通常,主机系统可以利用包含一或多个存储器组件的存储器子系统。主机系统可提供数据以存储于存储器子系统处并且可请求从存储器子系统检索数据。
常规存储器子系统可以利用常规存储器组件来存储和检索用于主机系统的数据。主机系统可以执行机器学习操作,所述机器学习操作利用机器学习模型来处理数据。举例来说,机器学习模型可以用于基于利用机器学习模型对数据的处理对数据进行分类或作出其它推断或决策。机器学习模型是指一种模型制品,所述模型制品由训练过程创建并且可以由单层级的线性或非线性操作(例如,支持向量机[SVM])或例如神经网络(例如,深度神经网络、脉冲神经网络、递归神经网络等)等多层级的非线性操作组成。作为实例,深度神经网络模型可以具有一或多个隐蔽层,并且可以通过根据反向传播学习算法或类似者调整神经网络的权重来训练。
常规地,存储器子系统可存储待处理的数据(例如,待应用于机器学习模型的输入数据)以及机器学习模型。主机系统可进一步利用机器学习处理器(例如,神经网络处理器或神经网络加速器),所述机器学习处理器将基于存储在存储器子系统的存储器组件处的数据和机器学习模型执行机器学习操作。举例来说,数据和机器学习模型可以从存储器组件检索并且提供到机器学习处理器。对于某些机器学习操作,在机器学习处理器与存储器子系统的存储器组件之间可以存在机器学习操作的中间数据(例如,由机器学习模型的不同的层产生的中间数据)的重复发射。举例来说,在机器学习操作的执行期间,数据可以经由存储器组件与机器学习处理器之间的外部总线或接口发射。存储器组件(和/或存储器子系统)与单独的机器学习处理器之间的数据、机器学习模型、任何中间数据和输出数据的发射可能花费额外时间或时延以在耦合存储器组件或存储器子系统与单独的机器学习处理器的单独的外部总线或接口上发射各种数据。
本公开的方面通过具有拥有用于执行机器学习操作的内部逻辑的存储器组件解决了上述和其它缺陷。举例来说,机器学习处理器的功能性可以在存储器组件的内部逻辑内实施,使得单独的外部总线或接口并不用于在存储器组件和/或存储器子系统与外部机器学习处理器之间发射数据、机器学习模型和任何中间数据。举例来说,机器学习处理器可以利用基于存储器组件的存储器单元的内部逻辑来实施,或者机器学习处理器可以利用基于在存储器组件内部实施的数字逻辑或电阻器阵列的内部逻辑实施。在一些实施例中,机器学习处理器可以在存储器子系统内实施。举例来说,机器学习处理器可以实施于包含在存储器子系统中的存储器组件的内部,和/或机器学习处理器可以实施于存储器子系统的控制器(也被称作存储器子系统控制器)内部,或者作为存储器子系统的单独的组件(例如,单独的机器学习处理器电路)实施。
因而,存储器组件(或存储器子系统)可以用于执行机器学习操作而不使用外部机器学习处理器。此外,相同的存储器组件或存储器子系统也可以用于存储和检索用于主机系统的数据。因此,主机系统可以利用相同的存储器组件或存储器子系统来存储和检索主机数据,同时还执行针对主机系统的机器学习操作。
本公开的优点包含(但不限于)机器学习操作的改进的性能。举例来说,因为没有或较少信息(例如,输入数据、机器学习操作的中间数据,或机器学习模型)经由外部总线或接口从存储器组件或存储器子系统发射到外部机器学习处理器,所以可以减少提供此类信息以用于机器学习操作中的时延。因此,内部机器学习处理器可以以较少时间接收输入数据和机器学习模型,同时还以较少时间存储和检索中间数据以及机器学习操作的输出结果。因此,可以改进存储器组件或存储器子系统执行机器学习操作的性能,因为较少时间用于执行单个机器学习操作,由此促进存储器组件或存储器子系统执行额外的机器学习操作。
图1示出根据本公开的一些实施例包含存储器子系统110的实例计算环境100。存储器子系统110可包含例如一或多个易失性存储器装置(例如,存储装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类装置的组合等介质。
存储器子系统110可为存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储装置(UFS)驱动器以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)和非易失性双列直插式存储器模块(NVDIMM)。
计算环境100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用存储器子系统110以例如将数据写入到存储器子系统110和从存储器子系统110读取数据。如本文所使用,“耦合到”大体上指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,无介入组件),无论是有线的还是无线的,包含例如电学、光学、磁性等连接。
主机系统120可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置或包含存储器和处理装置的此类计算装置。主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级技术附件(serialadvanced technology attachment,SATA)接口、外围组件互连高速(peripheralcomponent interconnect express,PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(Serial Attached SCSI,SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可以进一步利用NVM快速(NVMe)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可提供接口以用于在存储器子系统110与主机系统120之间传递控制、地址、数据以及其它信号。
存储器装置可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储装置140)可以是(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置的实例(例如,存储器装置130)包含“与非”(NAND)类型的快闪存储器。存储器装置130中的每一个可包含存储器单元的一或多个阵列,所述存储器单元例如单层级单元(SLC)或多层级单元(MLC)(例如,三层级单元(TLC)或四层级单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器单元中的每一个可存储由主机系统120使用的一或多个数据位。此外,存储器装置130的存储器单元可被分组为存储器页或存储器块,其可指用于存储数据的存储器组件的单元。
虽然描述了例如NAND类型的快闪存储器等非易失性存储器组件,但是存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、磁性随机存取存储器(MRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM),以及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。
存储器子系统控制器115可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(field programmablegate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)等),或其它合适的处理器。
存储器子系统控制器115可包含处理器(处理装置)117,其被配置成执行存储在本地存储器119中的指令。在所示出的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其被配置成存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程的指令,包含处置存储器子系统110与主机系统120之间的通信。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已示出为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110可不包含存储器子系统控制器115,且可改为依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
通常,存储器子系统控制器115可从主机系统120接收命令或操作,并且可以将命令或操作转换成指令或适当的命令以实现对存储器装置130的所需存取。存储器子系统控制器115可以负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑块地址和物理块地址之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成针对主机系统120的信息。
存储器子系统110还可以包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址并解码所述地址以接取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以在存储器装置130的一或多个存储器单元上执行操作。在相同或替代实施例中,本地媒体控制器135可包含机器学习操作组件113以执行机器学习操作,和/或机器学习操作组件113可基于存储器装置130和/或140的内部逻辑实施。
存储器子系统110包含可以执行机器学习操作的机器学习操作组件113。在一些实施例中,存储器子系统控制器115包含机器学习操作组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其被配置成执行存储在本地存储器119中的用于执行本文中所描述的操作的指令。在一些实施例中,机器学习操作组件113是主机系统110、应用或操作系统的部分。
机器学习操作组件113可以用于执行机器学习操作。举例来说,机器学习操作组件113可以从存储器组件接收数据并且也可以从存储器组件接收机器学习模型。机器学习操作组件113可以基于接收到的数据和接收到的机器学习模型执行机器学习操作以生成输出结果。下文描述关于机器学习操作组件113的操作的另外的细节。
图2示出根据本公开的一些实施例包含一或多个存储器组件的实例计算环境,所述一或多个存储器组件包含机器学习组件225。通常,存储器组件220可对应于图1的存储器装置130或存储器装置140。举例来说,存储器组件220可以是易失性存储器组件或非易失性存储器组件。
如图2中所示,存储器组件220可以包含可以执行机器学习操作的机器学习操作组件225。在一些实施例中,机器学习操作可包含(但不限于)通过使用机器学习模型231进行数据处理以对数据进行分类、作出预测或决策,或任何其它类型的输出结果。机器学习模型231可以基于但不限于例如脉冲神经网络、深度神经网络等神经网络,或另一类型的机器学习模型。作为实例,机器学习操作可以对应于使用机器学习模型来处理输入图像数据以对输入图像数据的对象或主体进行分类或识别。在一些实施例中,机器学习模型可以是神经网络,其由与其它节点连接的节点(即,神经元)的群组表示。一对节点之间的连接可以被称为边缘。举例来说,节点232和另一节点233可利用边缘235和236连接到第三节点234。神经网络中的每一边缘可被指派识别为数值的权重。输入数据(例如,待处理的数据)可以被提供到节点并且可以随后基于连接边缘的权重得以处理。举例来说,边缘的权重的值可以乘以节点的输入数据并且在边缘的端部处的节点可以累加多个值。作为实例,节点232可接收输入数据,且节点233可接收另一输入数据(例如,与图像相关联的像素位值)。指派到边缘236的特定权重值可与提供到节点232的输入数据组合(例如,相乘或其它此类运算)以生成输出值,且指派到边缘235的另一权重值可与提供到节点233的其它输入数据组合(例如,相乘)以生成另一输出值。输出值可以随后在节点234处组合(例如,累加)以产生组合的输出值。来自节点234的组合的输出值可以与指派到下一边缘的另一权重组合或相乘并且在下一节点处累加。举例来说,机器学习模型231可以包含分组成多个层的节点。信号(例如,输入数据和中间数据)可传播穿过各层直至生成机器学习操作的输出结果的最后层(即,最终输出层)。如先前所描述,输入数据和来自节点的其它此类中间数据乘以边缘的权重并且随后在边缘的端部或目的地处的其它节点处累加。如此,机器学习操作可以包含多层或一系列的乘法和累加(MAC)子操作。
如所展示,机器学习模型231可实施于存储器组件220的内部逻辑中。举例来说,机器学习模型231可被实施为数字逻辑或如结合图3所描述的存储器组件220的电阻器阵列。举例来说,节点、边缘和权重可实施于所述数字逻辑或存储器组件的电阻器阵列中。在一些实施例中,机器学习模型231可实施于如结合图5所描述的存储器组件220的存储器单元中。举例来说,可通过使用或配置存储器组件的存储器单元来实施节点、边缘和权重。在一些实施例中,存储器子系统的存储器子系统控制器可实施如结合图8描述的机器学习模型231。在或替代实施例中,机器学习模型231可实施于如结合图9描述的存储器子系统的一或多个存储器组件220中。
图3示出根据本公开的一些实施例具有内部机器学习组件的实例存储器组件300。通常,存储器组件300可对应于图1的存储器装置130或140或图2的存储器组件220。存储器组件300可以是易失性存储器组件或非易失性存储器组件。
如图3中所示,存储器组件300可以包含用于存储数据的存储器单元315。举例来说,存储器组件300可从主机系统310接收数据且可将数据存储在存储器组件300的存储器单元315处。主机系统可进一步指定待由存储器组件300执行的机器学习操作。举例来说,机器学习操作可由机器学习操作组件301执行,所述机器学习操作组件包含于存储器组件300的封装内或在存储器组件300内部。在一些实施例中,机器学习操作组件301可对应于用于实施机器学习操作的数字逻辑。举例来说,数字逻辑可以用于实施机器学习模型且接收用于机器学习模型的输入数据并且生成用于机器学习模型的输出数据。如先前所描述,机器学习模型可以是神经网络的结构和节点以及神经网络的节点之间的边缘的相关联的权重值。如结合图2所描述的机器学习操作可以随后由基于机器学习模型的权重、边缘和节点配置的机器学习操作组件301的数字逻辑执行。数字逻辑可以通过使用数字逻辑门或其它此类电路系统实施。在一些实施例中,机器学习操作的乘法和累加(MAC)子操作可以由机器学习操作组件301的数字逻辑来执行。
在一些实施例中,机器学习操作组件301可以对应于电阻器阵列。举例来说,机器学习操作的乘法和累加子操作可由机器学习操作组件301的电阻器阵列执行。举例来说,电阻器阵列可表示机器学习模型。每一电阻器可以表示节点并且电阻器的电阻值可以被编程或调谐以对应于表示神经网络的一对节点的一对电阻器之间的边缘的权重值。举例来说,电阻器可以表示节点并且电阻器的电阻可以被编程以表示用于连接在电阻器的输出处的边缘的权重值。电阻器的输出可以是基于电阻器的经编程电阻以及到电阻器的模拟输入的模拟值(例如,乘法子操作)。一对电阻器的模拟值输出可以随后组合以生成组合的模拟值(例如,累加子操作)。在一些实施例中,机器学习模型的电阻器的最后层的输出可以与模/数(ADC)转换器耦合以将作为机器学习模型的最后的值的一或多个模拟信号转换成可以用于表示机器学习模型的输出的数字信号。
在操作中,存储器组件300可以存储输入数据303以用于机器学习操作。举例来说,输入数据303可以是图像、音频、文本,或任何其它数据。输入数据303可以存储在已经被分配用于存储用于机器学习操作的输入数据的存储器组件300的存储器单元的特定区处。存储器单元的所分配区可以存储在机器学习操作期间可以各自使用的多个不同的输入数据。在一些实施例中,输入数据303可由主机系统310提供。举例来说,主机系统310可将输入数据303发射到存储器组件或包含存储器组件的存储器子系统。在相同或替代实施例中,主机系统310可提供将对输入数据303执行机器学习操作的指示。举例来说,主机系统310可识别待用于机器学习操作的特定输入数据。机器学习模型302可以存储指定一或多个机器学习模型的结构(例如,边缘、节点和权重值)的信息。举例来说,存储器组件300的存储器单元的另一区可被分配来存储机器学习模型302。在一些实施例中,另一区可存储不同的机器学习模型。
在操作中,主机系统310可以指定待与机器学习操作一起使用的特定输入数据和特定机器学习模型。机器学习操作组件301可接收对应于指定机器学习模型的机器学习模型302,并且可被配置或编程为基于机器学习模型302实施机器学习操作。举例来说,可按照机器学习模型302执行乘法和累加子操作。在一些实施例中,数字逻辑或电阻器阵列的电阻值可被配置成基于机器学习模型302执行乘法和累加子操作。机器学习操作组件301可接着通过检索指定输入数据303并基于机器学习模型302处理所检索的输入数据303以生成输出数据304来执行机器学习操作。举例来说,输出数据可存储在被分配以存储机器学习操作组件301的结果的存储器组件300的存储器单元的另一区处。在一些实施例中,输出数据304可传回到主机系统310。在相同或替代实施例中,机器学习操作组件301可向主机系统310提供指示或通知:所请求的机器学习操作已完成且所得输出数据304已存储在存储器子系统处的特定位置处。主机系统310可以稍后通过指定已经存储输出数据304的特定位置来请求所得输出数据304。
在一些实施例中,机器学习模型302、输入数据303和输出数据304可以存储在存储器组件的与存储器组件的其它存储器单元相比靠近或更接近机器学习操作组件301的部分中。
因此,存储器组件可以用于存储用于主机系统的数据。相同的存储器组件可以包含内部逻辑以执行针对主机系统的机器学习操作。内部逻辑可以经由并非在存储器组件外部的一或多个内部总线与存储器组件的存储器单元耦合。
图4是根据一些实施例用于执行机器学习操作且用于在存储器组件处存储主机数据的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的机器学习操作组件113来执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,所示出的实施例应仅作为实例理解,且所示出的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省去一或多个过程。因此,在每一实施例中并非需要所有的过程。其它过程流程也是可能的。
如图4中所示,在操作410处,处理逻辑接收在存储器组件处执行机器学习操作的请求。机器学习操作可以由主机系统指定。举例来说,主机系统可以提供待由机器学习操作处理和分析的输入数据以生成输出数据,或者主机数据可以指定当前存储在存储器组件处的输入数据。在一些实施例中,机器学习操作可以由包含在存储器组件内的数字逻辑或电阻器阵列来执行。举例来说,机器学习操作可由存储器组件的内部逻辑来执行。在相同或替代实施例中,机器学习操作可由如结合图5描述的存储器组件的存储器单元执行。机器学习操作可以是如先前描述的输入数据的神经网络处理。此外,主机系统可以指定待在机器学习操作期间使用的特定机器学习模型。
在操作420处,处理逻辑在存储器组件处执行机器学习操作。举例来说,机器学习操作可以由如先前所描述的存储器组件的内部逻辑来执行。在一些实施例中,机器学习操作组件可被配置成基于机器学习模型来执行机器学习操作。在操作430处,处理逻辑从主机系统接收主机数据。举例来说,主机系统可以提供数据以存储在存储器组件或包含存储器组件的存储器子系统处。主机数据可以是并不意图由机器学习操作使用的数据。举例来说,主机数据可以是待写入到存储器组件且待响应于来自主机系统的后续读取操作而从存储器组件检索的其它数据。在操作440处,处理逻辑在已经执行机器学习操作的相同存储器组件处存储来自主机系统的主机数据。举例来说,主机数据可以跨越存储器组件的存储器单元存储,所述存储器组件还包含内部逻辑以执行机器学习操作。此外,内部逻辑可以与存储器组件的存储器单元分离。因而,相同存储器组件可以用于存储主机数据以及执行针对主机系统的机器学习操作。
图5示出根据本公开的一些实施例具有基于存储器组件的存储器单元的内部机器学习操作组件的实例存储器组件500。通常,存储器组件500可对应于图1的存储器装置130或140或者图2的存储器组件220。存储器组件500可以是易失性存储器或非易失性存储器。此外,机器学习操作组件501可以对应于图1的机器学习操作组件113。
如图5所示,机器学习操作组件501可基于存储器组件500的存储器单元。举例来说,存储器组件500的存储器单元可用于实施机器学习操作的机器学习模型502。在一些实施例中,不同的存储器单元的电导率可以用于实施机器学习模型。举例来说,每一存储器单元可以对应于神经网络的节点,并且存储器单元的电导率可以被编程为对应于待应用于存储器单元的输入的权重值。举例来说,存储器单元可以被编程到特定电导率,使得在将输入应用于存储器单元时,由存储器单元应用的输入信号的改变(例如,乘法)可以基于存储器单元的电导率。此外,存储器单元可以从其它存储器单元的输出接收多个输入信号。此类输入信号可以在存储器单元处累加并且随后基于存储器单元的电导率相乘。因而,如先前所描述的乘法和累加子操作可以通过配置或编程存储器单元以表示机器学习模型的节点、边缘和权重值来执行。
输入数据503可以是待通过如先前所描述的机器学习操作处理的数据。举例来说,可从主机系统510接收输入数据503以供机器学习操作进行分析,且可将所述输入数据存储在存储器组件500的存储器单元的区处。机器学习操作可利用输入数据503执行,且可基于输入数据503和如先前描述的机器学习模型502来生成输出数据504。举例来说,机器学习操作组件501可基于机器学习模型502配置用于机器学习操作(例如,乘法和累加子操作)的存储器单元。存储器单元的配置可对应于基于由机器学习模型502指定的权重值对存储器单元的电导率的编程。机器学习操作组件501可接着处理输入数据503以生成输出数据504,且将输出数据504存储在存储器组件500的存储器单元的另一区处。在一些实施例中,输出数据504可传回到主机系统510。在相同或替代实施例中,机器学习模型502、输入数据503和输出数据504可存储在与用于存储未由机器学习操作使用的主机数据的存储器组件的其它存储器单元相比靠近或更接近机器学习操作组件501的存储器单元处。
如此,相同存储器组件的存储器单元可用于存储来自主机系统510的数据以及执行针对主机系统510的机器学习操作。举例来说,存储器单元的区可用于存储主机数据,且响应于来自主机系统510的读取请求而传回主机数据。存储器单元的另一不同区可用于表示机器学习操作的神经网络的节点和权重。在一些实施例中,存储器单元的区可以与存储器单元的内部总线耦合。
图6是根据一些实施例用于将存储器组件的部分分配到机器学习操作且用于存储主机数据的实例方法600的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法600由图1的机器学习操作组件113来执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,所示出的实施例应仅作为实例理解,且所示出的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省去一或多个过程。因此,在每一实施例中并非需要所有的过程。其它过程流程也是可能的。
如图6中所示,在操作610处,处理逻辑接收在存储器组件处执行机器学习操作的请求。举例来说,主机系统可以提供存储器组件将执行机器学习操作的指示。如先前所描述,机器学习操作可以是神经网络操作。主机系统可以将数据存储在存储器组件处并且指示到机器学习操作的输入是已经存储在存储器组件处的数据。举例来说,主机系统可以指定或识别存储在存储器组件处的特定数据或数据的位置,所述数据应该是到机器学习操作的输入。在操作620处,处理逻辑将存储器组件的一部分分配到机器学习操作。举例来说,存储器组件的存储器单元的区或部分可以用于基于机器学习模型实施机器学习操作。在一些实施例中,机器学习模型可以从主机系统接收或者可以从存储器组件的另一区接收。如先前所描述,存储器组件的部分的分配可以对应于存储器单元的编程以实施机器学习模型,例如神经网络。在操作630处,处理逻辑确定未被分配到机器学习操作的存储器组件的剩余部分。举例来说,可以识别未用于实施机器学习操作的存储器单元的另一区或部分。举例来说,可以确定可以用于存储主机数据的存储器组件的剩余存储器单元。在一些实施例中,数据结构可以存储识别用于实施机器学习操作的存储器组件的区或存储器单元(或数据块或其它此类数据单元)的信息,并且当机器学习操作在存储器组件内实施时另一区或存储器单元(或其它数据块或数据单元)可以用于存储主机数据。在操作640处,处理逻辑从主机系统接收主机数据。举例来说,主机系统可以提供待存储在存储器组件处的数据。在一些实施例中,主机数据可以是不通过机器学习操作来操作的数据。在相同或替代实施例中,主机数据可以是不通过机器学习操作来操作的数据与将是到机器学习操作的输入的其它数据的组合。在操作650处,处理逻辑在未被分配到机器学习操作的存储器组件的剩余部分处存储来自主机系统的主机数据。举例来说,主机数据可以存储在也正对其它数据执行机器学习操作的存储器组件处。在一些实施例中,主机系统可以指定特定数据是否将是用于机器学习操作的输入或者将不是用于机器学习操作的输入。如果数据将是用于机器学习操作的输入,那么接收到的数据可以存储在将存储用于机器学习操作的输入数据的存储器组件的区或部分处。举例来说,如先前相对于图5所描述,数据可以存储在已经被分配以存储用于机器学习操作的输入数据的存储器组件的区处。否则,如果数据将不是用于机器学习操作的输入,那么数据可以存储在存储器组件处的其它地方。
因而,存储器组件可以包含执行机器学习操作的内部逻辑。内部逻辑可以实施于存储器组件的存储器单元中。相同存储器组件可以进一步存储主机数据。主机数据可以包含用于机器学习操作的输入数据,和并非输入数据或与机器学习操作一起使用的其它数据。
图7是根据一些实施例用于基于机器学习模型向主机系统提供存储器组件的容量的指示的实例方法700的流程图。方法700可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法700由图1的机器学习操作组件113来执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,所示出的实施例应仅作为实例理解,且所示出的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省去一或多个过程。因此,在每一实施例中并非需要所有的过程。其它过程流程也是可能的。
如图7中所示,在操作710处,处理逻辑基于机器学习模型分配存储器组件的一部分用于机器学习操作。举例来说,存储器组件的存储器单元可以基于由机器学习模型指定的节点、边缘和权重来配置或编程。因而,存储器组件的存储器单元的一部分可被分配以针对机器学习操作而编程或配置。在操作720,处理逻辑基于机器学习模型向主机系统提供存储器组件的剩余部分的容量的指示。举例来说,可以确定存储主机数据的存储器组件的容量。存储主机数据的容量可以基于当没有机器学习操作实施于存储器组件中时存储器组件的容量与当机器学习操作实施于存储器组件中时存储器组件的容量之间的差异。在一些实施例中,容量可以基于当没有机器学习操作在存储器单元处实施时可以存储在存储器组件的总数目的存储器单元处的数据量与可以存储在用于实施机器学习操作的数目的存储器单元处的数据量之间的差异来确定。指示可以由存储器组件或包含存储器组件的存储器子系统的存储器子系统控制器来提供。在一些实施例中,指示可以指定存储器组件(或存储器子系统)存储未由机器学习操作使用的主机数据的容量、存储器组件存储用于机器学习操作的输入数据的容量、存储器组件存储机器学习操作的输出数据的容量,以及用于实施机器学习操作的存储器组件的一部分。
在操作730处,处理逻辑接收改变机器学习操作的机器学习模型的指示。在一些实施例中,主机系统可以指定在机器学习操作期间将使用不同的机器学习模型。举例来说,可以实施新神经网络或其它此类新机器学习模型。在一些实施例中,主机可以指示当输入数据的不同的分析或处理或输入数据的不同的类型或分类将用于机器学习操作时将使用新机器学习模型。不同数目的存储器单元可以基于新机器学习模型来编程或配置。举例来说,存储器组件的存储器单元的一部分可以被配置或编程成基于机器学习模型执行机器学习操作。机器学习操作可以随后基于新机器学习模型。存储器组件的存储器单元的另一部分可以随后被配置成经编程以基于新机器学习模型执行机器学习操作。
在一些实施例中,更多存储器单元或更少存储器单元可以被配置或编程为利用相对于先前机器学习模型的新机器学习模型来实施机器学习操作。在相同或替代实施例中,用于利用新机器学习模型实施机器学习操作的存储器单元可以是与用于利用先前机器学习模型实施机器学习操作的存储器单元相比不同的存储器单元。举例来说,如果更多存储器单元将用于新机器学习模型,那么用于配置先前机器学习模型的存储器单元和额外存储器单元可以用于利用新机器学习模型实施机器学习操作。因而,用于利用新机器学习模型实施机器学习操作的存储器单元可以包含与用于利用先前机器学习模型实施机器学习操作的存储器单元相同的存储器单元或所述用于利用先前机器学习模型实施机器学习操作的存储器单元的子组。在一些实施例中,被配置或编程以实施新机器学习模型的存储器单元可以不同于用于实施先前机器学习模型的存储器单元。举例来说,相比于用于先前机器学习模型的存储器单元,存储器单元的不同的群组可以用于利用新机器学习模型实施机器学习操作。在一些实施例中,存储器单元的不同群组可以是被分配以存储主机数据的存储器单元。因而,用于存储主机数据的存储器单元的群组和用于实施机器学习模型的群组存储器单元可以在存储器单元的群组之间改变,使得机器学习操作并非利用存储器单元的相同群组连续地实施。
在操作740处,处理逻辑响应于接收到指示基于改变的机器学习模型分配存储器组件的另一部分用于机器学习操作。举例来说,不同数目的存储器单元可以被编程或配置以利用改变的机器学习模型实施机器学习操作。在一些实施例中,实施先前机器学习模型的存储器单元可以被配置或编程为不再实施先前机器学习模型。举例来说,实施先前机器学习模型的存储器单元可以被配置或编程为不再实施先前机器学习模型,并且随后存储器单元可以被配置或编程以实施新机器学习模型。因而,因为不同数目的存储器单元可以用于实施新机器学习模型,所以存储器组件存储主机数据的容量也可以改变。举例来说,如果新机器学习模型指定比先前机器学习模型更多的节点,则更多的存储器单元可以用于实施新机器学习模型。在操作750处,处理逻辑基于改变的机器学习模型向主机系统提供存储器组件的剩余部分的容量的另一指示。举例来说,所述指示可指定当存储器组件的内部逻辑(例如,其它存储器单元)被配置或编程以实施新机器学习模型时可用于存储主机数据的存储器组件的剩余容量。存储器组件的剩余容量可以不同于当实施先前机器学习模型时存储器组件的先前剩余容量。
图8示出根据本公开的一些实施例实施于存储器子系统800的存储器子系统控制器中的机器学习操作组件。
如图8所示,机器学习操作组件113可由对应于存储器子系统控制器115的存储器子系统控制器815实施。举例来说,处理器或存储器子系统控制器815的其它电路系统可实施如本文所描述的机器学习操作组件113的操作。因而,存储器子系统可以包含内部逻辑以执行机器学习操作。内部逻辑可以对应于存储器子系统控制器。举例来说,存储器子系统控制器可以包含用以执行机器学习操作或神经网络处理器的功能性。此机器学习或神经网络处理器的实例包含(但不限于)如本文所描述的乘法和累加子操作。
在操作中,用于机器学习操作的输入数据可存储在存储器组件830和/或存储器组件840处。在一些实施例中,存储器组件830和840是非易失性存储器组件、易失性存储器组件,或者一或多个非易失性存储器组件和一或多个易失性存储器组件的混合。机器学习操作组件113可以从主机系统接收执行机器学习操作的指示。响应于接收到所述指示,机器学习操作组件113可从存储器组件830和840中的一个检索输入数据。举例来说,机器学习操作组件113可识别存储在存储器组件中的一个处的特定输入数据,且可从相应存储器组件检索数据。随后,在存储器子系统控制器815处的机器学习操作组件113可以执行机器学习操作。举例来说,乘法和累加子操作以及任何其它机器学习子操作可由在存储器子系统控制器815内部的机器学习操作组件113执行。在一些实施例中,用于机器学习操作的机器学习模型可存储在存储器子系统控制器815处或从存储器组件830和840中的一个检索。存储器子系统控制器815的内部逻辑可基于机器学习模型来配置。此外,机器学习操作的输出可传回到已经请求机器学习操作的主机系统,和/或所述输出可存储在存储器组件830和840中的一个处。举例来说,所述输出可存储在从其检索输入数据的相同存储器组件处。在一些实施例中,输出可以存储在用于存储机器学习操作的输出数据的特定存储器组件的特定位置处。
尽管未图示,但在一些实施例中,机器学习操作组件113可由与存储器子系统控制器815分离的另一集成电路实施。举例来说,经由存储器子系统控制器的内部总线或接口与存储器子系统控制器以及存储器组件830和840耦合的另一集成电路可执行机器学习操作组件113的功能性。
图9示出根据本公开的一些实施例实施于存储器子系统900的一或多个存储器组件中的机器学习操作组件。
如图9所示,机器学习操作组件113可由一或多个存储器组件930和940实施。举例来说,机器学习操作或神经网络加速器可在存储器组件内部执行。在一些实施例中,存储器组件可以是易失性存储器组件和/或非易失性存储器组件。在相同或替代实施例中,用以执行机器学习操作或神经网络加速器的内部逻辑可由任何数目或组合的易失性存储器组件和非易失性存储器组件来执行。
在操作中,存储器子系统控制器915可以从主机系统接收利用输入数据执行机器学习操作的请求。举例来说,主机系统可以指定待与特定输入数据一起使用的特定机器学习模型。存储器子系统控制器915可以识别当前存储特定输入数据的特定存储器组件。此外,存储器子系统控制器915可以将执行机器学习操作的请求发射到在所识别的存储器组件处的机器学习操作组件113。举例来说,请求可以指定将用于机器学习操作的输入数据和机器学习模型。机器学习操作组件113可以随后配置存储器组件的内部逻辑以对输入数据执行机器学习操作以生成输出数据。输出数据可以存储在存储器组件处和/或提供回到存储器子系统控制器915以传回到主机系统。
在一些实施例中,由存储器组件的内部逻辑执行的机器学习操作可以是机器学习操作的某些子操作。举例来说,在一些实施例中,存储器组件的内部逻辑可以具有有限的处理能力并且可以执行机器学习操作的子操作的子组。在一些实施例中,内部逻辑可以执行乘法和累加子操作。如先前所描述,机器学习操作可以对应于与乘法和累加子操作相关联的节点的多个层。存储器组件的内部逻辑可以执行机器学习操作的层的子组的子操作以生成中间结果,所述中间结果随后传回到存储器子系统控制器915(或单独的集成电路),所述存储器子系统控制器可以基于机器学习模型的最终层对中间数据执行进一步机器学习操作以生成输出数据。在一些实施例中,中间结果可以传回到主机系统,使得主机系统可以基于机器学习模型的最终层对中间数据执行进一步机器学习操作以生成输出数据。
在一些实施例中,机器学习操作的不同部分可以实施于不同的存储器组件的内部逻辑中。举例来说,如果机器学习模型包含较大数目的节点或层,则相对于机器学习模型包含较小数目的节点或层的情况,更多存储器组件的内部逻辑可被配置成实施机器学习操作的不同部分。
图10是根据一些实施例用于在存储器子系统的一或多个存储器组件处执行机器学习操作的一部分的实例方法的流程图。方法1000可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法1000由图1的机器学习操作组件113来执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,所示出的实施例应仅作为实例理解,且所示出的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省去一或多个过程。因此,在每一实施例中并非需要所有的过程。其它过程流程也是可能的。
如图10中所示,在操作1010处,处理逻辑接收在存储器子系统处执行机器学习操作的指示。举例来说,主机系统可以针对存储器子系统内部的神经网络加速器提供处理存储在相同存储器子系统处的输入数据的请求。在操作1020处,处理逻辑配置存储器子系统的一或多个存储器组件以执行机器学习操作的一部分。举例来说,如先前所描述,存储器组件的内部逻辑可以执行机器学习操作的子操作。一或多个存储器组件的存储器单元、数字逻辑或电阻器阵列可被配置成基于由主机系统指定的机器学习模型执行乘法和累加子操作。在一些实施例中,也存储输入数据的存储器组件可以是被配置成实施机器学习操作的存储器组件。在操作1030处,处理逻辑从所述一或多个存储器组件接收机器学习操作的部分的结果。举例来说,可以接收由一或多个存储器组件的内部逻辑执行的机器学习操作的子操作的结果。所述结果可以是乘法和累加子操作的输出。在一些实施例中,由内部逻辑执行的子操作可以是对应于机器学习操作的机器学习模型的层的部分。举例来说,机器学习操作的部分的结果可以是机器学习模型的层的一部分的中间数据。中间数据可以是用于尚未由存储器组件的内部逻辑执行的机器学习模型的层的下一部分的输入数据。在操作1040处,处理逻辑基于来自所述一或多个存储器组件的接收到的结果执行机器学习操作的剩余部分。举例来说,剩余层的剩余子操作可以由存储器子系统控制器的内部逻辑或单独的集成电路来执行以生成用于机器学习操作的输出数据。在一些实施例中,中间数据可以传回到主机系统并且主机系统可以执行机器学习操作的剩余部分。
因而,存储器子系统的存储器组件可以执行机器学习操作的一部分。机器学习操作的部分的结果可以传回到存储器子系统控制器(或者主机系统或存储器子系统内的单独的集成电路)以利用从存储器组件传回的数据完成机器学习操作。
本公开的方面进一步涉及利用总线在主机系统与存储器组件或存储器子系统之间发射数据。常规存储器子系统可以包含或可以耦合到用于在主机系统与常规存储器子系统之间发射数据的总线。举例来说,总线可用于将来自主机系统的请求(例如,读取操作、写入操作等)发射到存储器子系统,且将来自存储器子系统的数据发射到主机系统。另一总线可用于在主机系统和机器学习处理器(例如,神经网络处理器)之间发射数据。举例来说,主机系统可以在总线上利用机器学习处理器发射数据,同时主机系统使用另一总线利用常规存储器子系统发射数据。
如先前所描述,存储器组件或存储器子系统可以包含执行机器学习操作的功能性的内部逻辑。相同存储器组件或存储器子系统可以包含用以存储与机器学习操作分离的主机系统的数据的功能性。在一些实施例中,由存储器组件或存储器子系统的内部逻辑实施的机器学习操作的功能性可以称为机器学习空间,而用于存储与机器学习操作分离的主机数据的存储器组件或存储器子系统的存储器单元可以称为存储器空间。因而,单个存储器组件或存储器子系统可以包含用于机器学习空间和存储器空间两者的功能性。因此,单个总线不可用于仅针对存储器组件或存储器子系统的存储器空间发射数据。
本公开的方面解决上述和其它缺陷,方式是在单个总线上发射用于存储器组件或存储器子系统的机器学习空间和存储器空间的数据,或在多个总线上发射用于存储器组件或存储器子系统的机器学习空间和存储器空间的数据。举例来说,单个总线可以虚拟化以在主机系统与存储器组件或存储器子系统之间发射数据。在一些实施例中,主机系统可在总线上将操作(例如,读取请求、写入请求等)发射到存储器组件或存储器子系统。基于操作的类型或操作的存储器地址位置,来自主机系统的操作可被发射以在存储器组件或存储器子系统的机器学习空间或存储器空间处执行。因而,来自主机系统的在单个总线上发射的操作可以被提供到存储器空间或机器学习空间。
在一些实施例中,多个总线可以用于在包含存储器空间和机器学习空间的存储器组件或存储器子系统之间发射数据。举例来说,一条总线可以用于在主机系统与存储器空间之间发射数据,并且另一总线可以用于在主机系统与机器学习空间之间发射数据。因而,存储器组件或存储器子系统可以包含各自用于在存储器空间与机器学习空间之间单独地发射数据的多个总线。
本公开的优点包含(但不限于)当单个总线用于发射针对存储器组件或存储器子系统内的机器学习空间和存储器空间的数据时减小存储器组件或存储器子系统的设计的复杂度。举例来说,与耦合主机系统与存储器组件或存储器子系统的多个总线相比,单个总线可以引起较少连接和较少布线。另外,在总线上发射的用于存储器空间和机器学习空间的数据或操作的管理可以引起存储器空间和机器学习空间的改进的性能。针对存储器空间和机器学习空间使用单独的总线可以实现用于存储器空间和机器学习空间中的每一个的数据的较快发射,从而实现用于存储器空间和机器学习空间的功能性的改进的性能。
图11示出根据本公开的一些实施例的实例存储器组件1110和存储器子系统1120,其具有用于发射用于存储器空间和机器学习空间的数据的单个总线。机器学习操作组件113可以用于发射和接收用于存储器组件1110和存储器子系统1120中的每一个的存储器空间和机器学习空间的数据。
如图11所示,存储器组件1110可包含机器学习操作组件113以管理单个总线1113上用于存储器组件1110的存储器空间1111和机器学习空间1112的数据的接收和发射。如先前描述,存储器空间1111可以是可用于存储来自主机系统的主机数据的存储器组件1110的存储器单元或任何其它存储单元。在一些实施例中,主机数据可以是将不由机器学习空间1112的机器学习操作使用的数据。机器学习空间1112可以是存储器组件1110的内部逻辑。举例来说,如先前描述,内部逻辑可对应于待基于机器学习模型的定义而配置或编程使得可在存储器单元处执行机器学习操作的存储器组件1110的其它存储器单元(或任何其它类型的存储单元)。
此外,存储器子系统1120可包含机器学习操作组件113以管理单个总线1123上用于存储器空间1121和机器学习空间1122的数据的接收和发射。举例来说,存储器空间1121可以是如先前描述用于存储主机数据的一或多个存储器组件的存储器单元,且机器学习空间1122可以是用于执行一或多个机器学习操作的一或多个存储器组件的内部逻辑。在一些实施例中,机器学习空间1122的内部逻辑可以包含在如先前所描述的存储器子系统1120的控制器中。在一些实施例中,存储器组件1110和存储器子系统1120可以包含解码器,所述解码器可以用于从相应的总线接收数据并且对接收到的数据进行解码,然后将经解码的数据发射到存储器空间和/或机器学习空间。举例来说,解码器可以解码由经由总线提供到位于存储器空间或机器学习空间中的一个处的物理地址的操作指定的逻辑地址。在一些实施例中,存储器空间和机器学习空间中的每一个可以包含单独的解码器。
此外,内部总线可以用于耦合机器学习空间与存储器空间。举例来说,输入数据和机器学习模型可以经由内部总线从存储器空间发射到机器学习空间,而来自机器学习空间的输出数据可以经由内部总线发射到存储器空间。因而,存储器组件或存储器子系统可以包含用于在主机系统与存储器组件或存储器子系统之间发射数据的总线,以及用于在存储器组件或存储器子系统的存储器空间和机器学习空间之间发射数据的内部总线。
在操作中,数据可以在单个总线上在主机系统与存储器组件或存储器子系统之间发射。在一些实施例中,总线可以指用于在至少两个装置(例如,主机系统和存储器组件或存储器子系统)之间发射数据的一或多个信号的接口。存储器组件或存储器子系统可以经由单个总线接收用于存储器空间和机器学习空间的操作的请求。存储器空间的操作的实例包含(但不限于)与主机数据相关联的读取操作、写入操作和擦除操作。用于机器学习空间的操作的实例包含(但不限于)用于机器学习操作的输入数据的提供、机器学习模型的定义的提供、基于具有特定输入数据的机器学习模型的特定定义起始或执行机器学习操作的命令、接收机器学习操作的输出数据或结果的请求等。在一些实施例中,操作或机器学习空间可以是与机器学习操作交互的任何操作。如此,可在相同虚拟化总线上接收在存储器组件或存储器子系统内部的用于不同功能性(例如,存储器空间或机器学习空间)的不同操作。如下文进一步详细描述,基于接收到的操作的类型或者操作或数据的另一特性或属性,操作或数据可以发射或提供到存储器空间或机器学习空间。
图12是根据一些实施例用于基于操作的类型将所请求的操作发射到存储器空间或机器学习空间的实例方法1200的流程图。方法1200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法1200由图1的机器学习操作组件113来执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,所示出的实施例应仅作为实例理解,且所示出的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省去一或多个过程。因此,在每一实施例中并非需要所有的过程。其它过程流程也是可能的。
如图12中所示,在操作1210处,处理逻辑接收存取存储器组件或存储器子系统的请求。请求可以由主机系统提供。举例来说,请求可以是存取存储器组件或存储器子系统的存储器空间或机器学习空间的操作。请求可以经由总线或用于在主机系统与存储器组件和/或存储器子系统之间发射数据的其它此类接口接收。在操作1220处,处理逻辑确定由请求指定的操作的类型。举例来说,请求可以指定将在存储器组件或存储器子系统的存储器空间或机器学习空间处执行的操作。举例来说,请求可以是将数据写入到存储器组件或存储器子系统或从存储器组件或存储器子系统读取数据的操作。请求可以指定可以用于存取或修改存储在存储器组件或存储器子系统的存储器空间处的主机数据的任何操作。另外,请求可以是存取输入数据、输出数据或机器学习定义、更新输入数据、输出数据或机器学习定义,或者与输入数据、输出数据或机器学习定义交互,和/或在存储器组件或存储器子系统的内部逻辑处实行或执行机器学习操作的操作。因而,操作可以是对应于用于存储器空间的操作的第一类型的操作,或者对应于用于机器学习空间的操作的第二类型的操作。操作可以指定将在存储器组件或存储器子系统处执行的动作的类型。
在操作1230处,处理逻辑基于由请求指定的操作的类型将请求发射到存储器组件或存储器子系统的存储器空间或机器学习空间。举例来说,由主机系统提供的操作可以基于操作通常用于存取存储器空间还是机器学习空间而被提供到机器学习空间或存储器空间。举例来说,存储器组件或存储器子系统可以包含识别可由存储器组件或存储器子系统执行的不同类型的操作且可以从主机系统接收的数据结构。每种类型的操作可以指派给存储器空间或机器学习空间。当经由总线接收对指派给存储器空间的操作的请求时,接着所述操作可以发射到存储器空间或在存储器空间处执行。在一些实施例中,操作可以发射到解码器或用于对用于存储器空间的操作进行解码的另一组件。否则,当经由总线接收对指派给机器学习空间的操作的请求时,接着所述操作可以发射到机器学习空间或在机器学习空间处执行。在一些实施例中,操作可以发射到解码器或用于对用于机器学习空间的操作进行解码的另一组件。
因而,不同类型的操作可以经由单个总线发射到存储器组件或存储器子系统。操作可以基于操作的类型发射到存储器空间或机器学习空间。
图13是根据一些实施例用于基于存储器地址向存储器空间或机器学习空间提供所请求的操作的实例方法1300的流程图。方法1300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法1300由图1的机器学习操作组件113来执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,所示出的实施例应仅作为实例理解,且所示出的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省去一或多个过程。因此,在每一实施例中并非需要所有的过程。其它过程流程也是可能的。
如图13中所示,在操作1310处,处理逻辑接收在存储器组件或存储器子系统处执行操作的请求。如先前描述,所述操作可以是用于存储器空间的操作(例如,读取操作、写入操作、擦除操作等)或用于机器学习空间的操作(例如,与机器学习操作相关联的操作)。在操作1320处,处理逻辑确定由操作指定的存储器地址。举例来说,所述操作可以指定存储器地址,或数据块或者存储器组件或存储器子系统的其它此类逻辑或物理数据单元的其它此类位置。在一些实施例中,存储器地址可以是所述存储器组件或存储器子系统中的存储器组件的物理数据块的位置。
在操作1330处,处理逻辑确定存储器地址是否对应于存储器空间或机器学习空间。举例来说,存储器地址的范围可以指派给存储器空间,并且存储器地址的另一范围可以指派给机器学习空间。存储器地址的每一范围可以包含存储器地址的唯一集合,使得存储器地址被指派给存储器空间或机器学习空间中的仅一个。在操作1340处,处理逻辑提供用于在所确定的存储器空间或机器学习空间处执行的操作。举例来说,操作可以转发到解码器或用于对用于相应的存储器空间或相应的机器学习空间的操作进行解码的存储器组件或存储器子系统的其它此类组件。如果操作的存储器地址包含在指派给存储器空间的存储器地址的范围中,那么操作可以被提供到存储器空间。否则,如果操作的存储器地址包含在指派给机器学习空间的存储器地址的范围中,那么操作可以被提供到机器学习空间。
图14示出根据本公开的一些实施例的实例存储器组件1410和存储器子系统1420,其具有用于发射用于存储器空间和机器学习空间的数据的单独的总线。存储器组件1410和存储器子系统1420中的每一个可以包含机器学习操作组件113以在单独的总线上发射和接收用于存储器空间和机器学习空间的数据。
如图14所示,存储器组件1410可包含机器学习操作组件113、存储器空间1411和机器学习空间1412。存储器组件1410可耦合到总线或接口1413和1414。每一总线1413和1414可用于发射用于相应存储器空间1411和机器学习空间1412的数据。举例来说,总线1413可用于在主机系统和存储器空间1411之间发射数据,且总线1414可用于在主机系统和机器学习空间1412之间发射数据。如此,每一总线可用于在主机系统与存储器空间1411和机器学习空间1412中的一个之间发射数据,而不发射用于存储器空间1411和机器学习空间1412中的另一个的数据。类似地,存储器子系统1412可包含机器学习操作组件113,其可将经由总线1423和1425接收的数据转发或提供到存储器空间1421或机器学习空间1422。举例来说,总线1423可用于在主机系统和存储器空间1421之间发射数据,且总线1425可用于在主机系统和机器学习空间1422之间发射数据。
此外,内部总线可用于使存储器组件1410或存储器子系统1420的机器学习空间与存储器空间耦合。如此,存储器组件或存储器子系统可包含用于在主机系统与存储器组件或存储器子系统的机器学习空间和存储器空间之间发射数据的单独的总线,以及用于在存储器组件或存储器子系统的存储器空间和机器学习空间之间发射数据的内部总线。
在操作中,数据可以在两个总线上在主机系统与存储器组件或存储器子系统之间发射,其中每个总线专用于存储器组件或存储器子系统内部的存储器空间或机器学习空间中的一个。举例来说,经由总线1423接收到的数据可以被转发或提供到存储器空间1421,而经由总线1425接收到的数据可以被转发或提供到机器学习空间1422。
图15是根据本公开的一些实施例用于按基于针对机器学习操作的优先级的次序执行操作的实例方法的流程图。方法1500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法1500由图1的机器学习操作组件113来执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,所示出的实施例应仅作为实例理解,且所示出的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省去一或多个过程。因此,在每一实施例中并非需要所有的过程。其它过程流程也是可能的。
如图15中所示,在操作1510处,处理逻辑确定用于存储器空间的一组操作。所述组操作可以是已经由存储器组件或存储器子系统接收到的操作。在一些实施例中,所述组操作可以存储在存储器组件或存储器子系统的缓冲存储器处。举例来说,所述组操作可以是已经由主机系统提供且待在存储器组件或存储器子系统处被执行的操作。所述组操作可以经由如先前所描述的虚拟化总线或单独的总线接收。此外,所述组操作可包含(但不限于)主机数据的读取操作、主机数据的写入操作,或存储在存储器组件或存储器子系统处且与机器学习操作分离或将不由机器学习操作使用的主机数据的擦除操作。操作中的每一个可以是待在存储器组件或存储器子系统的存储器空间处执行的操作。在一些实施例中,存储器子系统的存储器子系统控制器或存储器组件的本地控制器可以接收所述组操作。在相同或替代实施例中,所述组操作可以存储在存储器子系统或存储器组件的缓冲器处。
在操作1520处,处理逻辑确定用于机器学习空间的另一组操作。举例来说,另一组操作可以从主机系统接收,所述操作将如先前所描述针对机器学习操作执行。另一组操作可以经由虚拟化总线或与提供用于存储器空间的所述组操作的总线分离的另一总线接收。因而,用于存储器空间和机器学习空间的操作可以由存储器组件或存储器子系统接收。在操作1530处,处理逻辑接收针对与机器学习空间相关联的机器学习操作的优先级的指示。优先级可以从主机系统接收。举例来说,主机系统可以发射指示针对正在机器学习空间处执行或将在机器学习空间处执行的机器学习操作的优先级水平的消息。在一些实施例中,优先级可以是数字或指定机器学习操作的重要性或性能要求的其它此类值。举例来说,优先级可以具有高值以指示针对机器学习操作的高优先级水平,或低值以指示针对机器学习操作的低优先级水平。性能要求可指定机器学习操作将执行来处理输入数据的最大时间量、输入数据将由机器学习操作处理的速率、在机器学习操作的输出数据将被提供到主机系统之前可能流逝的时间量等。在一些实施例中,针对机器学习操作的优先级可基于提供到机器学习操作的输入数据。举例来说,如果输入数据具有高优先级水平,那么当将机器学习模型应用于输入数据时机器学习操作也可以具有高优先级水平。否则,如果输入数据并不具有高优先级水平,那么当将机器学习模型应用于输入数据时机器学习操作并不具有高优先级水平。
在操作1540处,处理逻辑基于针对机器学习操作的优先级确定来自用于存储器空间和机器学习空间的所述组的操作的次序。举例来说,来自用于存储器空间的所述组和用于机器学习空间的另一组的操作可初始地随着在存储器组件或存储器子系统处接收不同的操作而排序。因而,操作可以是基于何时已经在存储器组件或存储器子系统处接收到每一相应操作的初始次序。举例来说,在另一操作之前接收到的操作可以在另一操作之前的次序指定。所述次序可以随后基于针对机器学习操作的优先级而改变。举例来说,如果主机系统指示机器学习操作具有高优先级或其它此类指称,则用于机器学习空间的操作可以重新排序为在用于存储器空间的操作之前。
在操作1550处,处理逻辑按所确定的次序执行操作以存取存储器空间和机器学习空间。举例来说,所述操作可基于操作的重新排序而被执行或发射到存储器空间和机器学习空间,使得较早指定的操作在稍后指定的操作之前被执行或发射。
因而,用于存储器空间和机器学习空间的操作的次序可以基于将在机器学习空间处执行的机器学习操作的优先级而改变。如果机器学习操作的优先级为高,则用于机器学习操作的一或多个操作与用于存储器空间的其它操作相比在次序上可以放置为较早。举例来说,用于机器学习操作的操作可以较早被执行,因为机器学习操作与较高优先级或重要性相关联。否则,如果机器学习操作的优先级为低,则用于存储器空间的操作和用于机器学习空间的操作可以随着在存储器组件或存储器子系统处接收相应的操作而排序。
图16A示出根据本公开的一些实施例已经被接收用于存储器组件或存储器子系统的存储器空间和机器学习空间的一系列操作。在一些实施例中,存储器组件或存储器子系统的机器学习操作组件113可以接收用于存储器空间和机器学习空间的操作的系列。操作的系列可以随着每一操作由存储器组件或存储器子系统接收而按顺序排序。
如图16A中所示,操作1600可初始地随着从主机系统接收操作而排序。举例来说,可初始地从主机系统接收操作A1610,随后是操作B 1620、操作C 1630、操作D 1640和操作X1650。操作A到D可指定存储器空间,而操作X 1650可指定机器学习空间。在一些实施例中,主机系统可以提供相应的操作将在存储器空间还是机器学习空间处执行的指示。在相同或替代实施例中,操作的类型或操作的存储器地址可以用于确定操作将在存储器空间还是机器学习空间处执行,如先前所描述。
图16B示出根据本公开的一些实施例已经基于针对机器学习操作的优先级排序的操作的系列。在一些实施例中,存储器组件或存储器子系统的机器学习操作组件113可以基于针对机器学习操作的优先级为用于存储器空间和机器学习空间的操作的系列排序。
如图16B中所示,操作1600可以基于机器学习操作的优先级重新排序。举例来说,主机系统可以指示针对机器学习操作的优先级为高或高于针对用于存储器空间的操作的优先级。因而,稍后接收到的操作X 1650可以重新排序,使得操作X 1650可以在其它操作A到D之前执行和/或可以在其它操作A到D被发射到存储器空间之前被发射到机器学习空间。
图17是根据一些实施例用于基于与存储器空间相关联的性能量度改变机器学习操作的性能的实例方法的流程图。方法1700可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法1700由图1的机器学习操作组件113来执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,所示出的实施例应仅作为实例理解,且所示出的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省去一或多个过程。因此,在每一实施例中并非需要所有的过程。其它过程流程也是可能的。
如图17中所示,在操作1710处,处理逻辑在正执行机器学习操作的存储器组件或存储器子系统处接收主机数据。举例来说,主机系统可以提供在存储器组件或存储器子系统的内部逻辑正执行机器学习操作的同时将在存储器组件或存储器子系统处执行的读取操作、写入操作或擦除操作。在操作1720处,处理逻辑确定与存储器组件或存储器子系统的存储器空间相关联的性能量度。性能量度可以基于在机器学习空间的内部逻辑正执行机器学习操作的同时在存储器空间处执行读取、写入或擦除操作的速率。举例来说,在一些实施例中,机器学习空间的内部逻辑可以影响存储器空间的性能。在一些实施例中,用于在机器学习空间处的机器学习操作的机器学习模型的类型、输入数据的量等可以改变在存储器空间处执行操作的速率。由于针对机器学习空间执行较大机器学习模型或更多操作,所以存储器组件或存储器子系统的较少资源可以用于存储器空间。在操作1730处,处理逻辑确定与存储器空间相关联的性能量度是否已经满足阈值性能量度。举例来说,当性能量度等于或小于阈值性能量度时,性能量度可以被视为满足阈值性能量度。当性能量度超过阈值性能量度时,性能量度可以被视为不满足阈值性能量度。如先前所描述,性能量度可以对应于用于存储器空间的操作的执行速率。举例来说,性能量度可以是针对存储器空间执行的写入操作、读取操作或写入操作与读取操作的组合的时延。当操作的时延超过阈值时延时,性能量度可以被确定为不满足性能量度阈值,而当操作的时延等于或小于阈值时延时,性能量度可以被确定为满足性能量度阈值。
在操作1740处,处理逻辑响应于确定性能量度并不满足阈值性能量度而改变在存储器组件或存储器子系统处执行的机器学习操作的性能。举例来说,如果操作的时延超过阈值时延量度,则机器学习操作可以改变使得用于存储器空间的操作的时延可以低于阈值时延量度。在一些实施例中,机器学习操作的性能可以改变,方式是减小机器学习操作的执行速率、减小输入数据可以提供到机器学习操作的速率、利用不同的机器学习模型(例如,利用较少子操作的机器学习模型)等。否则,如果响应于确定性能量度满足阈值性能量度,机器学习操作的执行在存储器组件或存储器子系统处执行,那么机器学习操作并不改变。
图18示出计算机系统1800的实例机器,所述实例机器内可执行用于致使所述机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统1800可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的机器学习操作组件113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥、数字或非数字电路系统,或能够执行指定待由此机器进行的动作的指令集(循序的或以其它方式)的任何机器。另外,尽管示出单个机器,但术语“机器”还应理解为包含个别地或共同地执行一(或多个)指令集以执行本文中所论述的方法中的任何一或多种的机器的任何集合。
实例计算机系统1800包含处理装置1802、主存储器1804(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器1806(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统1818,它们经由总线1830彼此通信。
处理装置1802表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置1802也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置1802被配置成执行用于执行本文中所论述的操作和步骤的指令1826。计算机系统1800可以进一步包含网络接口装置1808以在网络1820上通信。
数据存储系统1818可以包含机器可读存储介质1824(也称为计算机可读介质),其上存储有一或多个指令集1826或体现本文中所描述的任何一或多种方法或功能的软件。指令1826还可在其由计算机系统1800执行期间完全或至少部分地驻留在主存储器1804内和/或处理装置1802内,主存储器1804和处理装置1802也构成机器可读存储介质。机器可读存储介质1824、数据存储系统1818和/或主存储器1804可对应于图1的存储器子系统110。
在一个实施例中,指令1826包含实施对应于机器学习操作组件(例如,图1的机器学习操作组件113)的功能性的指令。尽管在实例实施例中机器可读存储介质1824展示为单个介质,但是术语“机器可读存储介质”应被理解为包含存储所述一或多个指令集的单个介质或多个介质。术语“机器可读存储介质”还应被理解为包含能够存储或编码供机器执行的指令集且致使机器执行本公开的方法中的任何一或多种的任何介质。因此,术语“机器可读存储介质”应理解为包含(但不限于)固态存储器、光学介质以及磁性介质。
已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在这里并且通常被认为是产生期望的结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操纵的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、要素、符号、字符、项、数字等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便的标签。本公开可以提及将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操纵和变换为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本发明还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储介质中,例如(但不限于)任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的介质,它们各自耦合到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构造用以执行所述方法的更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。此外,并非参考任何特定编程语言来描述本公开。应了解,可使用多种编程语言来实施本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,所述计算机程序产品或软件可包含在其上存储有指令的机器可读介质,所述指令可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读介质包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)介质包含机器(例如,计算机)可读存储介质,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、快闪存储器组件等。
在前述说明书中,已参考本公开的特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

Claims (20)

1.一种系统,其包括:
存储器组件,其包括用以存储机器学习模型和输入数据的存储器区以及用以存储来自主机系统的主机数据的另一存储器区;
控制器,其耦合到所述存储器组件,包括存储器内逻辑以通过将所述机器学习模型应用于所述输入数据来执行机器学习操作以生成输出数据;
总线,其用以从所述主机系统接收额外数据;以及
解码器,其用以从所述总线接收所述额外数据,且基于所述额外数据的特性将所述额外数据提供到存储所述主机数据的所述另一存储器区或所述控制器的所述存储器内逻辑。
2.根据权利要求1所述的系统,其中所述特性对应于由所述额外数据指定的操作的类型,且其中所述解码器进一步:
确定所述类型的操作指派到与来自所述主机系统的所述主机数据相关联的存储器空间还是指派到与所述机器学习操作相关联的机器学习空间;以及
基于所述确定将所述额外数据提供到所述另一存储器区或所述存储器内逻辑。
3.根据权利要求2所述的系统,其中指派到所述存储器空间的所述类型的操作与针对所述主机数据的读取操作或写入操作相关联,且其中指派到所述机器学习空间的所述类型的操作与同所述机器学习操作的交互相关联。
4.根据权利要求1所述的系统,其中所述特性对应于与所述额外数据相关联的存储器地址,且其中所述解码器进一步:
确定所述存储器地址指派到与来自所述主机系统的所述主机数据相关联的存储器空间还是指派到与所述机器学习操作相关联的机器学习空间;以及
基于所述确定将所述额外数据提供到所述另一存储器区或所述存储器内逻辑。
5.根据权利要求1所述的系统,其中所述解码器进一步接收所述主机数据和所述输出数据,且将所述主机数据和所述输出数据提供到所述主机系统。
6.根据权利要求1所述的系统,其中所述总线是将所述控制器耦合到所述主机系统的外部总线。
7.根据权利要求1所述的系统,其进一步包括:
内部总线,其用以使所述控制器的所述存储器内逻辑与所述存储器组件耦合,其中所述存储器内逻辑基于所述内部总线从所述存储器区接收所述机器学习模型和所述输入数据,且其中所述存储器区基于所述内部总线从所述存储器内逻辑接收所述输出数据。
8.一种方法,其包括:
经由与主机系统和存储器子系统相关联的总线接收来自所述主机系统的操作;
由处理装置确定来自所述主机系统的所述操作与用以在所述存储器子系统处存储来自所述主机系统的主机数据的存储器组件的存储器空间相关联,还是与所述存储器子系统的机器学习空间相关联;以及
基于所述确定将来自所述主机系统的所述操作提供到所述存储器空间的解码器或所述机器学习空间的另一解码器。
9.根据权利要求8所述的方法,其中确定来自所述主机系统的所述操作与所述存储器空间相关联还是与所述机器学习空间相关联包括:
确定一种类型的所述操作指派到所述存储器空间还是指派到所述机器学习空间;以及
基于所述确定将所述操作提供到所述存储器空间的所述解码器或所述机器学习空间的所述另一解码器。
10.根据权利要求9所述的方法,其中指派到所述存储器空间的所述类型的所述操作与针对所述主机数据的读取操作或写入操作相关联,且其中指派到所述机器学习空间的所述类型的所述操作与同机器学习操作的交互相关联。
11.根据权利要求8所述的方法,其中确定来自所述主机系统的所述操作与所述存储器空间相关联还是与所述机器学习空间相关联包括:
确定由所述操作指定的存储器地址;
确定所述存储器地址指派到所述存储器空间还是指派到所述机器学习空间;以及
基于所述确定将所述操作提供到所述存储器空间的所述解码器或所述机器学习空间的所述另一解码器。
12.根据权利要求11所述的方法,其中所述存储器空间被指派存储器地址范围,且其中所述机器学习空间被指派另一存储器地址范围,且其中当所述存储器地址包含在指派到所述存储器空间的所述存储器地址范围中时所述存储器地址被指派到所述存储器空间,且其中当所述存储器地址包含在所述另一存储器地址范围中时所述存储器地址被指派到所述另一存储器空间。
13.根据权利要求8所述的方法,其中基于所述确定将来自所述主机系统的所述操作提供到所述存储器空间或所述机器学习空间包括:
响应于确定将来自所述主机系统的所述操作提供到所述存储器空间,将所述操作发射到所述存储器空间的所述解码器;以及
响应于确定将来自所述主机系统的所述操作提供到所述机器学习空间,将所述操作发射到所述机器学习空间的所述另一解码器。
14.根据权利要求8所述的方法,其中所述总线是将所述存储器组件耦合到所述主机系统的外部总线,且其中所述存储器组件的内部总线使所述存储器空间与所述机器学习空间耦合。
15.一种系统,其包括:
存储器组件;以及
处理装置,其操作性地与所述存储器组件耦合以:
经由与主机系统相关联的总线接收来自所述主机系统的操作;
确定来自所述主机系统的所述操作与用以存储来自所述主机系统的主机数据的所述存储器组件的存储器空间相关联,还是与所述存储器组件的机器学习空间相关联;以及
基于所述确定将来自所述主机系统的所述操作提供到所述存储器空间的所述解码器或所述机器学习空间的所述另一解码器。
16.根据权利要求15所述的系统,其中为了确定来自所述主机系统的所述操作与所述存储器空间相关联还是与所述机器学习空间相关联,所述处理装置进一步:
确定一种类型的所述操作指派到所述存储器空间还是指派到所述机器学习空间;以及
基于所述确定将所述操作提供到所述另一存储器空间的所述解码器或所述机器学习空间的所述另一解码器。
17.根据权利要求16所述的系统,其中指派到所述存储器空间的所述类型的操作与针对所述主机数据的读取操作或写入操作相关联,且其中指派到所述机器学习空间的所述类型的操作与同机器学习操作的交互相关联。
18.根据权利要求15所述的系统,其中为了确定来自所述主机系统的所述操作与所述存储器空间相关联还是与所述机器学习空间相关联,所述处理装置进一步:
确定由所述操作指定的存储器地址;
确定所述存储器地址指派到所述存储器空间还是指派到所述机器学习空间;以及
基于所述确定将所述操作提供到所述存储器空间的所述解码器或所述机器学习空间的所述另一解码器。
19.根据权利要求15所述的系统,其中所述存储器空间被指派存储器地址范围,且其中所述机器学习空间被指派另一存储器地址范围,且其中当所述存储器地址包含在指派到所述存储器空间的所述存储器地址范围中时所述存储器地址被指派到所述存储器空间,且其中当所述存储器地址包含在所述另一存储器地址范围中时所述存储器地址被指派到所述另一存储器空间。
20.根据权利要求15所述的系统,其中所述总线是将所述存储器组件耦合到所述主机系统的外部总线,且其中所述存储器组件的内部总线使所述存储器空间与所述机器学习空间耦合。
CN202011099161.2A 2019-10-14 2020-10-14 具有虚拟化总线和内部逻辑以执行机器学习操作的存储器子系统 Pending CN112732599A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/601,386 2019-10-14
US16/601,386 US11769076B2 (en) 2019-10-14 2019-10-14 Memory sub-system with a virtualized bus and internal logic to perform a machine learning operation

Publications (1)

Publication Number Publication Date
CN112732599A true CN112732599A (zh) 2021-04-30

Family

ID=75382915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011099161.2A Pending CN112732599A (zh) 2019-10-14 2020-10-14 具有虚拟化总线和内部逻辑以执行机器学习操作的存储器子系统

Country Status (2)

Country Link
US (1) US11769076B2 (zh)
CN (1) CN112732599A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111681696B (zh) * 2020-05-28 2022-07-08 中国科学院微电子研究所 基于非易失存储器的存储和数据处理方法、装置及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102859501A (zh) * 2010-04-16 2013-01-02 美光科技公司 存储器装置及系统中的引导分区
CN106575271A (zh) * 2014-06-23 2017-04-19 谷歌公司 管理存储设备
US20180143762A1 (en) * 2016-11-24 2018-05-24 Chanha KIM Storage device including nonvolatile memory device and access method for nonvolatile memory device
US20190227870A1 (en) * 2018-01-24 2019-07-25 Micron Technology, Inc. Storing critical data at a memory system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131659B2 (en) 2008-09-25 2012-03-06 Microsoft Corporation Field-programmable gate array based accelerator system
WO2011048522A2 (en) 2009-10-21 2011-04-28 Zikbit Ltd. Neighborhood operations for parallel processing
US9965208B1 (en) * 2012-02-23 2018-05-08 Micron Technology, Inc. Memory device having a controller to enable and disable mode control circuitry of the controller
US10153042B2 (en) 2013-11-28 2018-12-11 Gsi Technology Inc. In-memory computational device with bit line processors
US9996804B2 (en) 2015-04-10 2018-06-12 Facebook, Inc. Machine learning model tracking platform
US10789544B2 (en) * 2016-04-05 2020-09-29 Google Llc Batching inputs to a machine learning model
US10346944B2 (en) 2017-04-09 2019-07-09 Intel Corporation Machine learning sparse computation mechanism
KR102534917B1 (ko) 2017-08-16 2023-05-19 에스케이하이닉스 주식회사 신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템
KR102634338B1 (ko) 2018-10-08 2024-02-07 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10461076B1 (en) * 2018-10-24 2019-10-29 Micron Technology, Inc. 3D stacked integrated circuits having functional blocks configured to accelerate artificial neural network (ANN) computation
US11449729B2 (en) 2018-11-08 2022-09-20 Arm Limited Efficient convolutional neural networks
US11119674B2 (en) 2019-02-19 2021-09-14 Macronix International Co., Ltd. Memory devices and methods for operating the same
KR20210034999A (ko) 2019-09-23 2021-03-31 에스케이하이닉스 주식회사 Aim 장치 및 aim 장치에서의 곱셈-누산 연산 방법
US11263156B2 (en) 2019-10-14 2022-03-01 Micron Technology, Inc. Memory component with a virtualized bus and internal logic to perform a machine learning operation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102859501A (zh) * 2010-04-16 2013-01-02 美光科技公司 存储器装置及系统中的引导分区
CN106575271A (zh) * 2014-06-23 2017-04-19 谷歌公司 管理存储设备
US20180143762A1 (en) * 2016-11-24 2018-05-24 Chanha KIM Storage device including nonvolatile memory device and access method for nonvolatile memory device
US20190227870A1 (en) * 2018-01-24 2019-07-25 Micron Technology, Inc. Storing critical data at a memory system

Also Published As

Publication number Publication date
US20210110297A1 (en) 2021-04-15
US11769076B2 (en) 2023-09-26

Similar Documents

Publication Publication Date Title
US11874779B2 (en) Scheduling of read operations and write operations based on a data bus mode
US11461256B2 (en) Quality of service levels for a direct memory access engine in a memory sub-system
US11720268B2 (en) Managing a mode to access a memory component or a logic component for machine learning computation in a memory sub-system
US10761773B2 (en) Resource allocation in memory systems based on operation modes
CN112732597B (zh) 具有内部逻辑以执行机器学习操作的存储器组件
CN112732598B (zh) 具有虚拟化总线和内部逻辑以执行机器学习操作的存储器组件
CN113126904A (zh) 存储器命令的功能仲裁和服务质量
CN112732599A (zh) 具有虚拟化总线和内部逻辑以执行机器学习操作的存储器子系统
US11681909B2 (en) Memory component with a bus to transmit data for a machine learning operation and another bus to transmit host data
US11694076B2 (en) Memory sub-system with internal logic to perform a machine learning operation
US11676010B2 (en) Memory sub-system with a bus to transmit data for a machine learning operation and another bus to transmit host data
CN112349334A (zh) 跨越块池的耗损均衡
CN113692579B (zh) 数据存储装置中的预测性数据预取
US11669275B2 (en) Controller with distributed sequencer components
US11853558B2 (en) Power down workload estimation
CN112306403A (zh) 基于数据图的概率存储数据
CN113692579A (zh) 数据存储装置中的预测性数据预取
CN113010100A (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