CN110888826B - 通过用于机器学习的处理装置对易失性存储器进行的并行存取 - Google Patents

通过用于机器学习的处理装置对易失性存储器进行的并行存取 Download PDF

Info

Publication number
CN110888826B
CN110888826B CN201910859728.2A CN201910859728A CN110888826B CN 110888826 B CN110888826 B CN 110888826B CN 201910859728 A CN201910859728 A CN 201910859728A CN 110888826 B CN110888826 B CN 110888826B
Authority
CN
China
Prior art keywords
data
memory
processing device
neural network
memory region
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
Application number
CN201910859728.2A
Other languages
English (en)
Other versions
CN110888826A (zh
Inventor
G·戈洛夫
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 CN110888826A publication Critical patent/CN110888826A/zh
Application granted granted Critical
Publication of CN110888826B publication Critical patent/CN110888826B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • 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/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0656Data buffering arrangements
    • 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/0683Plurality of storage devices
    • 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
    • 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
    • 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/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 

Landscapes

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

Abstract

本申请涉及通过用于机器学习的处理装置对易失性存储器进行的并行存取。一种存储器系统,其具有位于同一芯片或裸片上的处理装置(例如CPU)和(例如DRAM装置中的)存储器区域。所述存储器区域存储在(例如使用神经网络的)机器学习处理期间由所述处理装置使用的数据。一或多个控制器耦合到所述存储器区域且配置成:从第一存储器区域(例如第一存储体)读取数据,其包含从所述第一存储器区域读取第一数据,其中所述第一数据供所述处理装置用于与机器学习相关联的处理;以及将数据写入到第二存储器区域(例如第二存储体),其包含将第二数据写入到所述第二存储器区域。所述读取所述第一数据与写入所述第二数据并行地进行。

Description

通过用于机器学习的处理装置对易失性存储器进行的并行 存取
相关申请
本申请要求2018年9月11日申请且名称为“通过用于机器学习的处理装置对易失性存储器进行的并行存取(Parallel Access to Volatile Memory by A ProcessingDevice for Machine Learning)”的美国专利申请序列号第16/127,850号的申请日期的权益,所述申请的全部内容以如同完全阐述的引用方式并入本文中。
技术领域
本文中所公开的至少一些实施例大体涉及存储器系统,且更特定来说,涉及通过处理装置对易失性存储器进行的用于机器学习处理的并行存取。
背景技术
有限的存储器带宽是机器学习系统中的显著问题。举例来说,用于当前系统中的DRAM装置存储用于深度神经网络(DNN)中的大量权重和激活。
现有计算机架构使用专用于串行处理的处理器芯片和针对高密度存储器优化的DRAM。这两个装置之间的接口是引入时延和带宽限制并增加大量功耗额外负荷的主要瓶颈。芯片上存储器面积有限且无法将大量存储器添加到目前用以训练和部署DNN的CPU和GPU处理器。
神经网络中的存储器需要存储作为通过所述网络传播的输入的输入数据、权重参数和激活。在训练中,必须保持来自正向通路(forward pass)的激活直至其可用于运算反向通路中的错误梯度为止。作为实例,网络可具有2600万个权重参数且计算正向通路中的1600万个激活。如果使用32位浮点值来存储每一权重和激活,那么这对应于168MB的总存储要求。
GPU和其它机器需要大量存储空间以用于神经网络的权重和激活。GPU无法有效地直接执行用于深度神经网络中的较小卷积,因此其需要大量激活或权重存储。最后,还需要存储器存储输入数据、临时值和程序指令。举例来说,高性能GPU可能需要超过7GB的本地DRAM。
大量的存储数据无法保存在GPU处理器上。在许多情况下,高性能GPU处理器仅具有与处理器核心中的每一个相关联的可足够快地读取以使浮点数据路径饱和的1KB的存储空间。因此,在DNN的每一层处,GPU需要保存对外部DRAM的状态、加载上网络的下一层且接着重新加载数据。因此,芯片外存储器接口遭受不断地重新加载权重和保存和检索激活的负担。这显著减慢训练时间且增大功耗。
发明内容
本申请的一个方面涉及一种系统,其包括:处理装置;多个存储器区域,其配置成存储由所述处理装置使用的数据;和至少一个控制器,其耦合到所述多个存储器区域且配置成:从所述多个存储器区域中的第一存储器区域读取数据,其包含从所述第一存储器区域读取第一数据,所述第一数据供所述处理装置用于与机器学习相关联的处理;以及将数据写入到所述多个存储器区域中的第二存储器区域,其包含将第二数据写入到所述第二存储器区域;其中读取所述第一数据与写入所述第二数据并行地进行。
本申请的另一方面涉及一种方法,其包括:通过第一控制器且响应于来自处理装置的请求,从多个存储器区域中的第一存储器区域读取第一数据;通过所述处理装置进行与神经网络相关联的处理,其中所述第一数据是对所述神经网络的输入,且第二数据提供为来自所述神经网络的输出;通过所述处理装置对所述第二数据进行结构化以存储在所述多个存储器区域中的第二存储器区域中,使得在随后从所述第二存储器区域读取时能够依序存取所述第二数据以供所述神经网络使用;以及通过第二控制器将所述第二数据写入到所述第二存储器区域,其中写入所述第二数据与读取所述第一数据并行地进行。
本申请的又一方面涉及一种存储指令的非暂时性计算机可读存储介质,所述指令在由处理装置执行时使得所述处理装置进行一方法,所述方法包括:从动态随机存取存储器的第一存储体读取第一数据;进行与神经网络相关联的处理,其中所述第一数据是对所述神经网络的输入,且为由所述神经网络提供第二数据作为输出;以及将所述第二数据写入到所述动态随机存取存储器的第二存储体,其中写入所述第二数据与读取所述第一数据并行地进行。
附图说明
根据下文提供的具体实施方式和本公开的各种实施例的附图将更加充分地理解本公开。
图1说明根据本公开的一些实施例的具有并行存取组件的实例存储器系统。
图2说明根据本公开的一些实施例的具有通过处理装置并行地存取的存储器的存储体的实例存储器系统。
图3是根据本公开的一些实施例的用于通过处理装置对易失性存储器进行并行存取以用于机器学习处理的实例方法的流程图。
图4是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的至少一些方面涉及通过支持对机器学习(例如神经网络)的处理的处理装置对易失性存储器的并行存取。
深度学习机器(例如支持对卷积神经网络(CNN)的处理的深度学习机器)进行处理以确定每秒超大数目的运算。举例来说,输入/输出数据、深度学习网络训练参数和中间结果不断地从一或多个存储器装置(例如DRAM)中取到且存储在所述一或多个存储器装置中。当涉及大存储密度(例如大于100MB的存储密度)时通常因DRAM类型的存储器的成本优势而使用DRAM类型的存储器。在深度学习硬件系统的一个实例中,将计算单元(例如芯片上系统(SOC)、FPGA、CPU或GPU)附接到存储器装置(例如DRAM装置)。
已认识到,其中处理装置在机器学习处理期间读取数据且将数据写入到例如DRAM的存储器装置的现有机器学习架构(例如如用于深度学习机器中的现有机器学习架构)遭受各种问题。举例来说,存储器数据带宽受到处理器与存储器装置之间的接口的速度的限制。此外,因读取/写入存储器数据总线周转的额外负荷而损失大量存储器数据带宽。另外,消耗大量功率以将高速数据传送到存储器装置且从存储器装置传送高速数据。
本公开的至少一些方面通过将存储器与处理资源组合在单个装置中来解决以上缺陷和其它缺陷。在一个实例中,将处理装置集成到易失性存储器装置(例如DRAM)中。通过组合存储器与处理资源,进行机器学习时的处理效率提高了。在一个实例中,机器学习使用一或多个神经网络。在其它实例中,可使用其它类型的计算机模型。
在一个实施例中,在易失性存储器装置(例如DRAM装置)内部添加处理装置。处理装置可以是例如状态机、算术逻辑单元(ALU)、CPU、图形处理单元(GPU)、现场可编程门阵列(FPGA)等。在各种实施例中,为处理装置提供对存储器装置中的存储器区域的并行存取。举例来说,存储器区域是DRAM装置中的存储体。这一结构具有优于现有结构的若干优势。
举例来说,当处理装置在DRAM装置内部时,存储器数据带宽不受对外部处理装置的DRAM装置接口的限制,而是受DRAM装置的更快的内部存储体存取速度的限制。当进行机器学习处理时,处理装置可使用对DRAM装置的多个存储体的并行存取来提高处理速度。
在使用DRAM装置的各种实施例中,DRAM的每一存储体可在写入模式或读取模式下操作。在单模式下操作提高将数据传输到每一存储体或从每一存储体传输数据的效率。因此,任何给定的单个存储体可在连续突发模式下运行且在不招致读取/写入总线周转损失的情况下传送其最大数据吞吐量。这提高总体系统性能吞吐量。此外,处理装置可同时并行地从多个存储体读取数据/将数据写入到多个存储体,且因此增大系统数据吞吐量。最后,举例来说,归因于处理装置与DRAM存储体之间的硅裸片上的较短距离,仅使用少量功率以在处理装置与DRAM存储体之间传送数据。
图1说明根据本公开的一些实施例的具有并行存取组件107的实例存储器系统。主机系统101在总线103上与动态存储器系统105通信。存储器系统105的处理装置111具有对存储器区域111、113……119的并行读取/写入存取。在一个实例中,处理装置111与存储器区域111、113……119在同一芯片或裸片上。在各种实施例中,存储器区域存储在机器学习处理期间由处理装置使用的数据。
在各种实施例中,并行存取组件107包含耦合到存储器区域111、113……119中的每一个的一或多个控制器。控制器配置成从存储器区域中的一或多个读取数据或将数据写入到存储器区域中的一或多个。读取数据由处理装置111用于与机器学习相关联的处理。写入数据可以是例如来自神经网络的输出。在一个实施例中,为处理装置111提供对存储器区域的并行存取,其中在将数据写入到存储器区域中的另一个的同时从存储器区域中的一个读取数据。存储器区域中的每一个可在只读模式或只写模式下操作。此外,存储器区域中的每一个可额外地在连续突发模式下操作。
在一个实例中,每一存储器区域111、113……119可包含存储器单元的一或多个存储体;且并行存取组件107可提供对存储体的并行存取。在一个实例中,动态存储器系统105中的存储器单元可以是DRAM装置中的DRAM存储单元。
动态存储器系统105的实例是经由存储器总线连接到中央处理单元(CPU)的存储器模块。存储器模块的实例包含双列直插内存模块(DIMM)、小型DIMM(SO-DIMM)、非易失性双列直插内存模块(NVDIMM)等。在一些实施例中,存储器系统可以是提供存储器功能和存储装置功能两者的混合存储器/存储装置系统。大体来说,主机系统可利用包含一或多个存储器区域的存储器系统。主机系统可提供将存储在存储器系统处的数据且可请求将从存储器系统检索的数据。在一个实例中,主机可存取包含易失性和非易失性存储器的各种类型的存储器。
主机系统101可以是计算装置,例如车辆中的控制器、网络服务器、移动装置或包含存储器和处理装置的任何计算装置。主机系统101可包含或耦合到动态存储器系统105,使得主机系统101可从存储器系统105读取数据或将数据写入到所述存储器系统。主机系统101可经由物理主机接口耦合到存储器系统105。如本文中所使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线或无线,包含例如电连接、光学连接、磁连接等的连接。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线等。物理主机接口可用于在主机系统101与存储器系统105之间传递数据。物理主机接口可提供用于在存储器系统105与主机系统101之间传递控制、地址、数据和其它信号的接口。图1说明作为实例的存储器系统105。大体来说,主机系统101可经由同一通信连接、多个独立通信连接和/或通信连接的组合来存取多个存储器系统。
主机系统101可包含处理装置和控制器。主机系统101的处理装置可以是例如微处理器、中央处理单元(CPU)、处理器的处理核心、执行单元等。在一些情况下,主机系统的控制器可称为存储器控制器、存储器管理单元和/或起始器。在一个实例中,控制器控制在主机系统101与存储器系统105之间的总线103上的通信。
主机系统101的控制器可与存储器系统105的控制器通信以进行操作,例如在存储器区域处读取数据、写入数据或擦除数据。在一些情况下,控制器集成于处理装置111的同一封装内。在其它情况下,控制器与处理装置111的封装分开。控制器和/或处理装置可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器、高速缓存存储器或其组合。控制器和/或处理装置可以是微控制器、专用逻辑电路(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。
在一个实施例中,存储器区域111、113……119可包含不同类型的易失性存储器组件的任何组合。在一些实施例中,存储器区域可以是但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。此外,存储器区域的存储单元可分组为存储器页或数据块,其可指用以存储数据的单元。
在使用并行存取组件107的一个实施例中,存储器系统105的一或多个控制器可与存储器区域111、113……119通信以进行操作,例如读取数据、写入数据或擦除数据。每一控制器可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。每一控制器可以是微控制器、专用逻辑电路(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。控制器可包含配置成执行存储在本地存储器中的指令的处理装置(处理器)。在一个实例中,控制器的本地存储器包含配置成存储用于进行控制存储器系统105的操作(包含操控存储器系统105与主机系统101之间的通信)的各种过程、操作、逻辑流程和例程的指令的嵌入式存储器。在一些实施例中,本地存储器可包含存储存储器指针、取到的数据等的存储器寄存器。本地存储器还可包含用于存储微码的只读存储器(ROM)。
大体来说,存储器系统105的控制器可从主机系统101和/或处理装置111接收命令或操作,且可将命令或操作转换成指令或适合的命令,以实现对存储器区域的并行存取用于支持机器学习处理。控制器可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误侦测和纠错码(ECC)操作、加密操作、高速缓存操作和在与存储器区域相关联的逻辑块地址与物理块地址之间的地址转换(translation)。控制器可进一步包含主机接口电路以经由物理主机接口与主机系统101通信。主机接口电路可将从主机系统接收到的命令转换成命令指令以存取存储器区域中的一或多个,以及将与存储器区域相关联的应答转换成用于主机系统101的信息。
存储器系统105还可包含未说明的额外电路或组件。在一些实施例中,存储器系统105可包含可从一或多个控制器接收地址且对地址进行解码以存取存储器区域的高速缓存或缓冲器(例如DRAM或SRAM)和地址电路(例如行解码器和列解码器)。
在一些实施例中,主机系统101或存储器系统105和/或处理装置111中的控制器包含并行存取组件107的至少一部分。举例来说,控制器和/或处理装置111可包含实施并行存取组件107的逻辑电路。举例来说,处理装置(处理器)可配置成执行存储在存储器中的指令以用于进行操作,所述操作为如本文所描述的并行存取组件107提供对存储器存储体的读取/写入存取。在一些实施例中,并行存取组件107是操作系统、装置驱动器或应用的部分。
图2说明根据本公开的一些实施例的具有通过处理装置209并行地存取的存储器的存储体213、215……217的实例存储器系统201。存储体213、215……217是存储器区域111、113……119的实例。处理装置209是处理装置111的实例。
在一个实施例中,并行存取组件107包含各自独立地连接到存储体213、215……217中的一个的控制器219、221……223。主机接口207将处理装置209耦合到主机系统101。
在一个实施例中,主机系统101收集来自传感器205的数据。举例来说,传感器205定位于自动驾驶车辆上且收集用于对车辆进行导航的图像数据。在一个实施例中,将传感器数据输入到神经网络且将输出用以控制车辆。在一个实施例中,通过处理装置209(单独或与主机系统101的处理装置一起)进行与神经网络相关联的处理。
在一个实施例中,使用处理装置209来训练或操作神经网络。在神经网络的训练或其它操作期间,从存储体213、215……217读取数据且将数据写入到所述存储体。每一存储体在读取或写入模式下操作以便提高效率且减少存储器总线周转时间。在训练或其它操作期间一或多个存储体可在连续突发模式下操作。
在一个实施例中,存储器系统201包含缓冲器211。举例来说,缓冲器211可接收经由主机接口207从主机系统101接收到的传感器数据。可将来自缓冲器211的数据写入到存储体213、215……217中的一或多个。
在一个实施例中,使用控制器219从存储体213读取用于计算机模型的输入数据。处理装置209提供来自计算机模型(例如神经网络)的输出数据。使用控制器221将输出数据写入到存储体215。使输出数据结构化为存储在存储体215中,使得在随后通过处理装置209从存储体215读取以供计算机模型使用时能够依序存取输出数据。
在一个实施例中,存储器系统201包含:处理装置209;多个存储器区域(例如存储体213、215……217),其配置成存储由处理装置使用的数据;和至少一个控制器(例如控制器219、221……223),其耦合到多个存储器区域且配置成:从多个存储器区域中的第一存储器区域读取数据,其包含从第一存储器区域读取第一数据,第一数据供处理装置用于与机器学习相关联的处理;以及将数据写入到多个存储器区域中的第二存储器区域,其包含将第二数据写入到第二存储器区域;其中读取第一数据与写入第二数据并行地进行。在一个实施例中,至少一个控制器包含仅用于对存储器区域中的每一个进行读取或写入存取的相应控制器。
在一个实施例中,当读取第一数据时第一存储器区域在连续突发模式下使用。在一个实施例中,当写入第二数据时第二存储器区域在连续突发模式下使用。
在一个实施例中,第一数据用作对神经网络的输入;第二数据是来自神经网络的输出;且在与机器学习相关联的处理期间,第一存储器区域在只读模式下操作,且第二存储器区域在只写模式下操作。
在一个实施例中,多个存储器区域中的每一个是易失性存储器中的存储体。在一个实施例中,易失性存储器是动态随机存取存储器。
在一个实施例中,处理装置、多个存储器区域和至少一个控制器安置在同一芯片或裸片上,且处理装置使用第一数据作为对用于机器学习的计算机模型的输入。在一个实施例中,计算机模型是神经网络。在一个实施例中,处理装置提供第二数据作为来自计算机模型的输出。
在一个实施例中,每一控制器219、221……223可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。控制器可以是微控制器、专用逻辑电路(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。控制器可包含配置成执行存储在本地存储器中的指令的一或多个处理器(处理装置)。
控制器的本地存储器可包含配置成存储用于进行控制存储器系统的操作的方面的各种过程、操作、逻辑流程和例程的指令的嵌入式存储器。控制器的本地存储器可包含用于存储微码的只读存储器(ROM)和/或存储例如存储器指针、取到的数据等的存储器寄存器。
图3是根据本公开的一些实施例的用于通过处理装置对易失性存储器进行并行存取以用于机器学习处理的实例方法的流程图。处理装置的实例包含处理装置111和209。举例来说,图3的方法可实施于图1或图2的系统中。
图3的方法可由处理逻辑进行,所述处理逻辑可包含硬件(例如处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如在处理装置上运行或执行的指令)或其组合。在一些实施例中,图3的方法至少部分地通过图1的并行存取组件107进行。
虽然以特定顺序或次序来展示,但是除非另有指定,否则所述过程的次序可修改。因此,所说明的实施例应仅理解为实例,并且所说明的过程可以不同次序进行,且一些过程可并行地进行。另外,可在各种实施例中省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程也是可能的。
在框301处,从第一存储器区域读取第一数据。举例来说,使用控制器219通过处理装置209从存储体213读取第一数据。在一个实例中,第一数据对应于用以训练神经网络的输入。
在框303处,进行与神经网络相关联的处理。第一数据是对神经网络的输入。第二数据提供为来自神经网络的输出。举例来说,神经网络由处理装置209训练。举例来说,第一数据是从传感器205接收到的传感器数据。
在框305处,使第二数据结构化以存储在第二存储器区域中,使得第二数据能够依序存取。举例来说,使第二数据结构化以供依序存取,使得可提高与神经网络相关联的处理的效率。举例来说,对数据进行依序存取提高处理装置209与存储体213、215……217之间的数据传输带宽。
在框307处,将第二数据写入到第二存储器区域。写入第二数据与读取第一数据并行地进行。举例来说,使用控制器221通过处理装置209将第二数据存储在存储体215中。在一个实例中,这一并行写入和读取可因针对存储器系统201的存储器存储体中的每一个的独立控制器的使用而进行。在一个实施例中,当读取第一数据和写入第二数据时存储体213和存储体215在连续突发模式下操作。
在一个方面中,本公开包含进行方法中的任一种的计算设备和存储指令的非暂时性计算机可读存储介质,所述指令在由处理装置执行时使得处理装置进行方法中的任一种。
在一个实施例中,一种方法包含:通过第一控制器且响应于来自处理装置的请求,从多个存储器区域中的第一存储器区域读取第一数据;通过处理装置进行与神经网络相关联的处理,其中第一数据是对神经网络的输入,且第二数据提供为来自神经网络的输出;通过处理装置对第二数据进行结构化以存储在多个存储器区域中的第二存储器区域中,使得在随后从第二存储器区域读取时能够依序存取第二数据以供神经网络使用;以及通过第二控制器将第二数据写入到第二存储器区域,其中写入第二数据与读取第一数据并行地进行。
在一个实施例中,方法进一步包含通过第二控制器从第二存储器区域读取第二数据,其中第二数据从第二存储器区域依序存取以用作对神经网络的输入。
在一个实施例中,方法进一步包含通过第三控制器从多个存储器区域中的第三存储器区域读取第三数据,其中读取第二数据与读取第三数据并行地进行,且其中第三数据用作对神经网络的输入。
在一个实施例中,与神经网络相关联的处理包含使用存储在第一存储器区域中的数据来训练神经网络。
在一个实施例中,方法进一步包含:通过处理装置从传感器接收数据;其中与神经网络相关联的处理包含使用来自传感器的数据作为对神经网络的输入。
在一个实施例中,方法进一步包含通过处理装置确定神经网络的类型,其中对第二数据进行结构化以存储在第二存储器区域中是基于所确定的类型。
在一个实施例中,当读取第一数据时第一存储器区域在连续突发模式下使用,且当写入第二数据时第二存储器区域在连续突发模式下使用。
在一个实施例中,在与神经网络相关联的处理期间,第一存储器区域在只读模式下操作,且第二存储器区域在只写模式下操作。
在一个实施例中,一种非暂时性计算机可读存储介质存储指令,所述指令在由处理装置执行时使得处理装置进行一方法,所述方法包含:从动态随机存取存储器的第一存储体读取第一数据;进行与神经网络相关联的处理,其中第一数据是对神经网络的输入,且第二数据提供为通过神经网络的输出;以及将第二数据写入到动态随机存取存储器的第二存储体,其中写入第二数据与读取第一数据并行地进行。
图4是其中可操作本公开的实施例的实例计算机系统200的框图。在一个实施例中,在计算机系统200中可执行用于使得机器进行本文中所论述的方法中的任何一或多种的一组指令。在一些实施例中,计算机系统200可对应于动态存储器系统,或对应于包含、耦合到或利用动态存储器系统(例如图1的动态存储器系统105)或可用于进行并行存取组件107的操作(例如可用于执行指令以进行对应于并行存取组件107的参照图1到3所描述的操作)的主机系统。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂巢式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的一组指令的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一组(或多组)指令以进行本文中所论述的方法中的任何一或多种。
实例计算机系统200包含处理装置202、主存储器204(例如只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM))、静态随机存取存储器(SRAM)等)和数据存储系统218,其经由总线230(其可包含多个总线)彼此通信。
处理装置202表示一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置202还可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似物。处理装置202配置成执行用于进行本文中所论述的操作和步骤的指令226。计算机系统200可进一步包含网络接口装置208以在网络220上通信。
数据存储系统218可包含机器可读存储介质224(也称为计算机可读介质),其上存储有一或多组指令226或体现本文中所描述的方法或功能中的任何一或多种的软件。指令226还可在由计算机系统200执行期间完全或至少部分地驻存在主存储器204内和/或处理装置202内,主存储器204和处理装置202也构成机器可读存储介质。机器可读存储介质224、数据存储系统218和/或主存储器204可对应于图1的存储器系统105。
在一个实施例中,指令226包含指令以实施对应于并行存取组件107(例如参照图1到3所描述的并行存取组件107)的功能性。尽管在实例实施例中机器可读存储介质224展示为单个介质,但是应认为术语“机器可读存储介质”包含存储一或多组指令的单个介质或多个介质。还应认为术语“机器可读存储介质”包含能够存储或编码供机器执行的一组指令且使得机器进行本公开的方法中的任何一或多种的任何介质。因此应认为术语“机器可读存储介质”包含但不限于固态存储器、光学介质和磁性介质。
已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里且通常认为是导致期望的结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较和以其它方式操纵的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数字或类似物是方便的。
然而,应牢记,所有这些和类似术语与适当物理量相关联,且仅为应用于这些量的方便的标签。本公开可指将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操纵和变换成计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于进行本文中的操作的设备。这一设备可出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储介质中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的介质,其各自耦合到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构造用以进行所述方法更加专用的设备是方便的。将如下文描述中所阐述而表现用于各种这些系统的结构。此外,不参照任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读介质。机器可读介质包含用于以机器(例如计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)介质包含机器(例如计算机)可读存储介质,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、快闪存储器组件等。
在前述说明书中,本公开的实施例已经参照其具体实例实施例进行描述。将显而易见的是,可在不脱离所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对其进行各种修改。因此,应在说明性意义上而非限制性意义上看待本说明书和附图。

Claims (19)

1.一种存储器系统,其包括:
处理装置;
多个存储器区域,其配置成存储由所述处理装置使用的数据;和
至少一个控制器,其耦合到所述多个存储器区域且配置成:
从所述多个存储器区域中的第一存储器区域读取数据,其包含从所述第一存储器区域读取第一数据,所述第一数据供所述处理装置用于与机器学习相关联的处理;以及
将从计算机模型接收到的作为输出数据的数据写入到所述多个存储器区域中的第二存储器区域,其包含将第二数据写入到所述第二存储器区域,使得在随后通过所述处理装置从所述第二存储器区域读取以供所述计算机模型使用时,所述第二数据能够被依序存取;
其中读取所述第一数据与写入所述第二数据并行地进行。
2.根据权利要求1所述的存储器系统,其中所述至少一个控制器包括相应控制器,所述相应控制器用于对所述存储器区域中的每一个进行读取或写入存取。
3.根据权利要求1所述的存储器系统,其中当读取所述第一数据时所述第一存储器区域在连续突发模式下使用。
4.根据权利要求3所述的存储器系统,其中当写入所述第二数据时所述第二存储器区域在连续突发模式下使用。
5.根据权利要求1所述的存储器系统,其中:
所述第一数据用作对神经网络的输入;
所述第二数据是来自所述神经网络的输出;且
在所述与机器学习相关联的处理期间,所述第一存储器区域在只读模式下操作,且所述第二存储器区域在只写模式下操作。
6.根据权利要求1所述的存储器系统,其中所述多个存储器区域中的每一个是易失性存储器中的存储体。
7.根据权利要求6所述的存储器系统,其中所述易失性存储器是动态随机存取存储器。
8.根据权利要求1所述的存储器系统,其中所述处理装置、所述多个存储器区域和所述至少一个控制器安置在同一芯片或裸片上,且所述处理装置使用所述第一数据作为对用于机器学习的所述计算机模型的输入。
9.根据权利要求8所述的存储器系统,其中所述计算机模型是神经网络。
10.根据权利要求8所述的存储器系统,其中所述处理装置提供所述第二数据作为来自所述计算机模型的输出。
11.一种操作存储器装置的方法,其包括:
通过第一控制器且响应于来自处理装置的请求,从多个存储器区域中的第一存储器区域读取第一数据;
通过所述处理装置进行与神经网络相关联的处理,其中所述第一数据是对所述神经网络的输入,且第二数据提供为来自所述神经网络的输出;
通过所述处理装置对所述第二数据进行结构化以存储在所述多个存储器区域中的第二存储器区域中,使得在随后从所述第二存储器区域读取时能够依序存取所述第二数据以供所述神经网络使用;以及
通过第二控制器将所述第二数据写入到所述第二存储器区域,其中写入所述第二数据与读取所述第一数据并行地进行。
12.根据权利要求11所述的方法,其进一步包括通过所述第二控制器从所述第二存储器区域读取所述第二数据,其中所述第二数据从所述第二存储器区域依序存取以用作对所述神经网络的输入。
13.根据权利要求11所述的方法,其进一步包括通过第三控制器从所述多个存储器区域中的第三存储器区域读取第三数据,其中读取所述第二数据与读取所述第三数据并行地进行,且其中所述第三数据用作对所述神经网络的输入。
14.根据权利要求11所述的方法,其中与所述神经网络相关联的所述处理包括使用存储在所述第一存储器区域中的数据来训练所述神经网络。
15.根据权利要求11所述的方法,其进一步包括:
通过所述处理装置接收来自传感器的数据;
其中与所述神经网络相关联的所述处理包括使用来自所述传感器的所述数据作为对所述神经网络的输入。
16.根据权利要求11所述的方法,其进一步包括通过所述处理装置确定所述神经网络的类型,其中对所述第二数据进行结构化以存储在所述第二存储器区域中是基于所确定的类型。
17.根据权利要求11所述的方法,其中当读取所述第一数据时所述第一存储器区域在连续突发模式下使用,且当写入所述第二数据时所述第二存储器区域在连续突发模式下使用。
18.根据权利要求11所述的方法,其中在与所述神经网络相关联的所述处理期间,所述第一存储器区域在只读模式下操作,且所述第二存储器区域在只写模式下操作。
19.一种存储指令的非暂时性计算机可读存储介质,所述指令在由处理装置执行时使得所述处理装置进行一方法,所述方法包括:
从动态随机存取存储器的第一存储体读取第一数据;
进行与神经网络相关联的处理,其中所述第一数据是对所述神经网络的输入,且由所述神经网络提供第二数据作为输出;以及
将所述第二数据写入到所述动态随机存取存储器的第二存储体,使得在随后通过所述处理装置从所述第二存储器区域读取以供所述神经网络使用时,所述第二数据能够被依序存取,其中写入所述第二数据与读取所述第一数据并行地进行。
CN201910859728.2A 2018-09-11 2019-09-11 通过用于机器学习的处理装置对易失性存储器进行的并行存取 Active CN110888826B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/127,850 US11574659B2 (en) 2018-09-11 2018-09-11 Parallel access to volatile memory by a processing device for machine learning
US16/127,850 2018-09-11

Publications (2)

Publication Number Publication Date
CN110888826A CN110888826A (zh) 2020-03-17
CN110888826B true CN110888826B (zh) 2024-03-26

Family

ID=69718910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910859728.2A Active CN110888826B (zh) 2018-09-11 2019-09-11 通过用于机器学习的处理装置对易失性存储器进行的并行存取

Country Status (2)

Country Link
US (2) US11574659B2 (zh)
CN (1) CN110888826B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11586943B2 (en) * 2019-08-12 2023-02-21 Micron Technology, Inc. Storage and access of neural network inputs in automotive predictive maintenance
US11748626B2 (en) 2019-08-12 2023-09-05 Micron Technology, Inc. Storage devices with neural network accelerators for automotive predictive maintenance
US11635893B2 (en) * 2019-08-12 2023-04-25 Micron Technology, Inc. Communications between processors and storage devices in automotive predictive maintenance implemented via artificial neural networks
US11775816B2 (en) * 2019-08-12 2023-10-03 Micron Technology, Inc. Storage and access of neural network outputs in automotive predictive maintenance
US11586194B2 (en) 2019-08-12 2023-02-21 Micron Technology, Inc. Storage and access of neural network models of automotive predictive maintenance
US11853863B2 (en) 2019-08-12 2023-12-26 Micron Technology, Inc. Predictive maintenance of automotive tires
US11650746B2 (en) 2019-09-05 2023-05-16 Micron Technology, Inc. Intelligent write-amplification reduction for data storage devices configured on autonomous vehicles
US11693562B2 (en) 2019-09-05 2023-07-04 Micron Technology, Inc. Bandwidth optimization for different types of operations scheduled in a data storage device
US11144203B2 (en) * 2019-12-03 2021-10-12 Micron Technology, Inc. Selectively operable memory device
US11250648B2 (en) 2019-12-18 2022-02-15 Micron Technology, Inc. Predictive maintenance of automotive transmission
US11531339B2 (en) 2020-02-14 2022-12-20 Micron Technology, Inc. Monitoring of drive by wire sensors in vehicles
US11137920B1 (en) * 2020-04-30 2021-10-05 Micron Technology, Inc. Storing zones in a zone namespace on separate planes of a multi-plane memory device
US11620476B2 (en) * 2020-05-14 2023-04-04 Micron Technology, Inc. Methods and apparatus for performing analytics on image data
US11356601B2 (en) 2020-06-19 2022-06-07 Micron Technology, Inc. Intelligent digital camera having deep learning accelerator and random access memory
US11490135B2 (en) 2020-06-19 2022-11-01 Micron Technology, Inc. Surveillance camera upgrade via removable media having deep learning accelerator and random access memory
US20220215235A1 (en) * 2021-01-07 2022-07-07 Micron Technology, Inc. Memory system to train neural networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102163458A (zh) * 2010-02-12 2011-08-24 株式会社东芝 半导体存储器装置
CN102428453A (zh) * 2009-04-08 2012-04-25 谷歌公司 用于在快闪存储器数据存储装置中存储数据的方法及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795678B2 (en) * 2018-04-21 2020-10-06 Microsoft Technology Licensing, Llc Matrix vector multiplier with a vector register file comprising a multi-port memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102428453A (zh) * 2009-04-08 2012-04-25 谷歌公司 用于在快闪存储器数据存储装置中存储数据的方法及设备
CN102163458A (zh) * 2010-02-12 2011-08-24 株式会社东芝 半导体存储器装置

Also Published As

Publication number Publication date
CN110888826A (zh) 2020-03-17
US20230186957A1 (en) 2023-06-15
US20200082852A1 (en) 2020-03-12
US11574659B2 (en) 2023-02-07

Similar Documents

Publication Publication Date Title
CN110888826B (zh) 通过用于机器学习的处理装置对易失性存储器进行的并行存取
US11113006B2 (en) Dynamic data placement for collision avoidance among concurrent write streams
US11669272B2 (en) Predictive data transfer based on availability of media units in memory sub-systems
US20240104030A1 (en) Scheduling of read operations and write operations based on a data bus mode
US11726690B2 (en) Independent parallel plane access in a multi-plane memory device
US11461256B2 (en) Quality of service levels for a direct memory access engine in a memory sub-system
US11675724B2 (en) Memory sub-system with multiple ports having single root virtualization
US11385820B2 (en) Command batching for a memory sub-system
US11614884B2 (en) Memory device with microbumps to transmit data for a machine learning operation
CN116529818A (zh) 双端口、双功能存储器装置
US20230041801A1 (en) Transmission of data for a machine learning operation using different microbumps
US20230067601A1 (en) Memory sub-system address mapping
US11704599B2 (en) System for performing a machine learning operation using microbumps
US11853237B2 (en) Input/output sequencer instruction set processing
US20230059543A1 (en) Independent plane architecture in a memory device
US11733925B2 (en) Enabling multiple data capacity modes at a memory sub-system
CN115310601A (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