CN111801659A - 存储器系统中的数据存取及通信的优化 - Google Patents

存储器系统中的数据存取及通信的优化 Download PDF

Info

Publication number
CN111801659A
CN111801659A CN201980016791.8A CN201980016791A CN111801659A CN 111801659 A CN111801659 A CN 111801659A CN 201980016791 A CN201980016791 A CN 201980016791A CN 111801659 A CN111801659 A CN 111801659A
Authority
CN
China
Prior art keywords
memory
data
access request
data item
context
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
CN201980016791.8A
Other languages
English (en)
Inventor
P·R·马哈拉纳
A·拉伊
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 CN111801659A publication Critical patent/CN111801659A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

本发明涉及一种存储器系统,其具有一或多个存储器组件及控制器。所述控制器可从通信连接接收存取请求。所述存取请求可识别与所述存取请求相关联的数据项、所述数据项的地址及所述数据项在其中用于所述存取请求的所述数据项的上下文。所述控制器可分别识别针对单独上下文的单独存储器区域、基于所述数据项的所述上下文确定所述数据项在所述单独存储器区域中的放置、及确定所述数据项的所述地址与在对应于所述数据项的所述上下文的所述单独存储器区域内的存储器位置之间的映射。所述存储器系统根据不同上下文将所述数据项存储在通过不同存储器区域分离的所述存储器位置处。

Description

存储器系统中的数据存取及通信的优化
相关申请案
本申请案主张2018年11月7日申请且标题为“存储器系统中的数据存取及通信的优化(Optimization of Data Access and Communication in Memory Systems)”的序列号为16/183,234的美国专利申请案及2018年2月12日申请且标题为“具有永久数据存储装置的系统中的通信及数据存取的优化(Optimization of Communication and DataAccess in Systems having Persistent Data Storage Devices)”的序列号为62/629,628的临时美国专利申请案的申请日期的权益,所述申请案的全部揭示内容特此以引用方式并入本文中。
技术领域
本文中揭示的至少一些实施例大体上涉及存储器系统,且更特定来说(但不限于),涉及存储器系统中的数据存取及通信的优化。
背景技术
存储器子系统可为存储器模块,例如双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)或非易失性双列直插式存储器模块(NVDIMM)。存储器子系统可为存储系统,例如固态驱动器(SSD)或硬盘驱动器(HDD)。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可为(例如)非易失性存储器组件及易失性存储器组件。存储器组件的实例包含存储器集成电路。一些存储器集成电路是易失性的且需要电力来维持所存储的数据。一些存储器集成电路是非易失性的且即使是在未通电时也可保持所存储的数据。非易失性存储器的实例包含快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)及电可擦除可编程只读存储器(EEPROM)存储器等。易失性存储器的实例包含动态随机存取存储器(DRAM)及静态随机存取存储器(SRAM)。一般来说,主机系统可利用存储器子系统在存储器组件处存储数据及从所述存储器组件检索数据。
举例来说,计算机可包含主机系统及附接到主机系统的一或多个存储器子系统。主机系统可具有与一或多个存储器子系统通信以存储及/或检索数据及指令的中央处理单元(CPU)。计算机的指令可包含操作系统、装置驱动器及应用程序。操作系统管理计算机中的资源且为应用程序提供共同服务,例如存储器分配及资源的时间共享。装置驱动器操作或控制计算机中特定类型的装置;且操作系统使用装置驱动器提供由所述类型的装置提供的资源及/或服务。计算机系统的中央处理单元(CPU)可运行操作系统及装置驱动器以将服务及/或资源提供到应用程序。中央处理单元(CPU)可运行使用服务及/或资源的应用程序。举例来说,实施计算机系统的一类应用的应用程序可指示中央处理单元(CPU)将数据存储于存储器子系统的存储器组件中及从存储器组件检索数据。
计算机系统的操作系统可允许应用程序使用存储器虚拟地址将数据存储于计算机系统的一或多个存储器子系统的存储器组件中或从所述存储器组件检索数据。操作系统将虚拟地址映射到连接到计算机系统的中央处理单元(CPU)的一或多个存储器子系统的物理地址。操作系统使用存储器子系统的物理地址实施虚拟地址处指定的存储器存取。
虚拟地址空间可划分成页。可将虚拟存储器页映射到存储器子系统中的物理存储器页。操作系统可使用分页技术经由存储器模块中的存储器页存取存储装置中的存储器页。在不同时刻,存储器模块中的同一存储器页可用作用以存取存储装置或计算机系统中的另一存储装置中的不同存储器页的代理。
计算机系统可包含用以创建或布建虚拟机的虚拟机管理程序(或虚拟机监测器)。虚拟机是使用计算机系统中可用的资源及服务虚拟地实施的计算装置。虚拟机管理程序向操作系统呈现虚拟机,就像虚拟机的组件是专用物理组件一样。客户操作系统以类似于在计算机系统中运行的主机操作系统的方式在虚拟机中运行以管理虚拟机中可用的资源及服务。虚拟机管理程序允许多个虚拟机共享计算机系统的资源且允许所述虚拟机基本上彼此独立地在计算机上操作。
写入合并是允许数据合并于写入合并缓冲器中且接着经释放用于在突发模式中写入(而非立刻写入小数据块)的计算机总线技术。此技术通常用于无需强排序的存储器,例如视频卡的帧缓冲器。
附图说明
实施例通过实例来说明且不限于附图的图,其中相似的参考元件指示类似元件。
图1说明根据本发明的一些实施例的具有存储器子系统的实例计算系统。
图2展示根据本文中揭示的至少一些实施例的具有不同存储器层及用以优化数据位置的数据协调器的计算系统。
图3展示用以合并数据存取请求以降低用于传输数据存取请求的协议开销的技术。
图4展示具有数据协调器的系统。
图5展示用以将数据分组于单独物理存储器区域中的技术。
图6说明经配置于数据存取请求中以辅助将数据放置隔离到单独物理存储器区域中的标签。
图7说明数据协调器的实施方案。
图8展示根据数据使用上下文的单独物理存储器区域中的数据分组方法。
图9是本发明的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本发明的至少一些方面涉及通过标记数据存取请求以辅助单独物理存储器区域中的数据放置隔离及/或通过合并数据存取请求以降低通信中的协议开销来优化存储器系统中的数据存取及通信。存储器子系统在下文中也称为“存储器装置”。存储器子系统的实例是经由存储器总线连接到中央处理单元(CPU)的存储器模块。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)、非易失性双列直插式存储器模块(NVDIMM)等。存储器子系统的另一实例是经由外围互连(例如,输入/输出总线、存储区域网络)连接到中央处理单元(CPU)的存储装置。存储装置的实例包含固态驱动(SSD)、快闪驱动、通用串行总线(USB)快闪驱动器及硬盘驱动器(HDD)。在一些实施例中,存储器子系统是提供存储器功能及存储功能两者的混合存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供将存储在存储器子系统处的数据且可请求将从存储器子系统检索的数据。
常规固态驱动器(SSD)可具有执行块重新映射以将由主机系统使用的块地址转译成固态驱动器中的物理地址的快闪转译层。此SSD可将不同上下文的数据放置于同一存储器区域中。然而,对存储器区域中的某些存储器单元的操作可能干扰或延迟对同一存储器区域中的其它存储器单元的其它操作。因此,当不同上下文的数据被放置于相同存储器区域中时,针对不同上下文的不同操作对存储器区域的同时存取性能可能由于SSD内的存储器操作干扰而降级。
本发明的至少一些方面通过标记数据存取请求以指示相应数据的上下文(除了请求涉及的数据的地址的识别以外)来解决上文及其它缺点。存储器子系统管理物理存储器区域中的数据放置使得不同上下文的数据被分离到不同物理存储器区域中。存储器区域经识别使得一个存储器区域中的操作降低或最小化对另一存储器区域中的操作的影响。此布置允许不同上下文的操作在降低或最小化性能降级的情况下同时存取相应存储器区域。举例来说,不同主机系统通过互连件、总线、交换机及/或计算机网络连接到同一存储器/存储装置。当不同主机系统的数据被存储于不同存储器区域中时,同时存取装置的主机系统的数据存取性能可比在数据在存储器区域中混合时更好。类似地,可将在不同虚拟机中活跃使用的数据放置于不同存储器区域中;可将在不同应用程序中活跃使用的数据放置于不同存储器区域中;及/或可将在不同用户账户中活跃使用的数据放置于不同存储器区域中。此外,较小数据存取请求可合并成批次以通过互连件、总线、交换机及/或计算机网络传输以降低通信中的协议开销。此布置可改进互连件、总线、交换机及/或计算机网络的有效负载处理量。
图1说明根据本发明的一些实施例的具有存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如存储器组件109A到109N。存储器组件109A到109N可为易失性存储器组件、非易失性存储器组件或此类组件的组合。在一些实施例中,存储器子系统110是存储器模块。存储器模块的实例包含DIMM、NVDIMM及NVDIMM-P。在一些实施例中,存储器子系统是存储系统。存储系统的实例是SSD。在一些实施例中,存储器子系统110是混合存储器/存储子系统。一般来说,计算环境可包含使用存储器子系统110的主机系统120。举例来说,主机系统120可将数据写入到存储器子系统110及从存储器子系统110读取数据。
主机系统120可为计算装置,例如桌面计算机、膝上型计算机、网络服务器、移动装置或包含存储器及处理装置的此计算装置。主机系统120可包含存储器子系统110或可耦合到存储器子系统110使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文中使用,“耦合到”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,无中介组件),无论是有线还是无线的,包含例如电、光、磁等的连接。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、双倍数据速率(DDR)存储器总线等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口存取存储器组件109A到109N。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接及/或通信连接的组合存取多个存储器子系统。
主机系统120包含处理装置118及控制器116。主机系统120的处理装置118可为(例如)微处理器、中央处理单元(CPU)、处理器的处理器核心、执行单元等。在一些例子中,控制器116可称为存储器控制器、存储器管理单元及/或启动器。在一个实例中,控制器116控制通过耦合于主机系统120与存储器子系统110之间的总线的通信。
一般来说,控制器116可发送命令或请求到存储器子系统110以进行对存储器组件109A到109N的所要存取。控制器116可进一步包含与存储器子系统110通信的接口电路系统。接口电路系统可将从存储器子系统110接收的响应转换成用于主机系统120的信息。
主机系统120的控制器116可与存储器子系统110的控制器115通信以执行操作,例如在存储器组件109A到109N处读取数据、写入数据或擦除数据及其它此类操作。在一些例子中,控制器116经集成于处理装置118的同一封装内。在其它例子中,控制器116与处理装置118的封装分离。控制器116及/或处理装置118可包含硬件,例如一或多个集成电路及/或离散组件、缓冲器存储器、高速缓存存储器或其组合。控制器116及/或处理装置118可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。
存储器组件109A到109N可包含不同类型的非易失性存储器组件及/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含“与非”(NAND)型快闪存储器。存储器组件109A到109N中的每一者可包含一或多个存储器单元阵列,例如单电平单元(SLC)或多电平单元(MLC)(例如,三电平单元(TLC)或四电平单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分及MLC部分两者。存储器单元中的每一者可存储由主机系统120使用的一或多个数据位(例如,数据块)。尽管描述了非易失性存储器组件(例如NAND型快闪存储器),但存储器组件109A到109N可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件109A到109N可为(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、自旋力矩(STT)-MRAM、铁电随机存取存储器(FeTRAM)、铁电RAM(FeRAM)、导电桥接RAM(CBRAM)、电阻随机存取存储器(RRAM)、氧化物基RRAM(OxRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)、基于纳米线的非易失性存储器、并入忆阻器技术的存储器及非易失性存储器单元交叉点阵列。非易失性存储器交叉点阵列可基于体电阻变化连同堆叠式交叉栅格式数据存取阵列执行位存储。另外,与许多基于快闪的存储器形成对比,交叉点非易失性存储器可执行就地写入操作,其中可在先前未擦除非易失性存储器单元的情况下对所述非易失性存储器单元进行编程。此外,存储器组件109A到109N的存储器单元可经分组为存储器页面或数据块,其可指代用于存储数据的存储器组件的单位。
存储器子系统110的控制器115可与存储器组件109A到109N通信以执行操作,例如在存储器组件109A到109N处读取数据、写入数据或擦除数据及其它此类操作(例如,响应于由控制器116在命令总线上调度的命令)。控制器115可包含硬件,例如一或多个集成电路及/或离散组件、缓冲存储器或其组合。控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。控制器115可包含经配置以执行存储于本地存储器119中的指令的处理装置117(处理器)。在说明的实例中,控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流及例程的指令的嵌入式存储器,包含处置存储器子系统110与主机系统120之间的通信。在一些实施例中,本地存储器119可包含存储存储器指针、经提取数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(ROM)。虽然已将图1中的实例存储器子系统110说明为包含控制器115,但在本发明的另一实施例中,存储器子系统110可不包含控制器115,且可代替地依赖于外部控制(例如,由外部主机提供、或由与存储器子系统分离的处理器或控制器提供)。
一般来说,控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成指令或适当命令以实现对存储器组件109A到109N的所期望存取。控制器115可负责与存储器组件109A到109N相关联的其它操作,例如磨损均衡操作、废弃项目收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作及逻辑块地址与物理块地址之间的地址转译。控制器115可进一步包含经由物理主机接口与主机系统120通信的主机接口电路系统。所述主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器组件109A到109N,且还将与存储器组件109A到109N相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)及可从控制器115接收地址且解码所述地址以存取存储器组件109A到109N的地址电路系统(例如,行解码器及列解码器)。
计算系统100包含存储器子系统110中的数据协调器113,其可标记数据存取请求来指示数据在其在媒体(例如,109A到109N)中的物理放置中的合意分离、合并数据存取请求以在降低的协议开销下传输到媒体(例如,109A到109N)、及/或在不同层的媒体之中执行预测数据移动。在一些实施例中,存储器子系统110中的控制器115包含数据协调器113的至少一部分。在其它实施例中,或组合地,主机系统120中的控制器116及/或处理装置118包含数据协调器113的至少一部分。举例来说,控制器115、控制器116及/或处理装置118可包含实施数据协调器113的逻辑电路系统。举例来说,主机系统120的控制器115或处理装置118(处理器)可经配置以执行存储于存储器中用于执行本文中描述的数据协调器113的操作的指令。在一些实施例中,数据协调器113经实施于安置于存储器子系统110中的集成电路芯片中。在其它实施例中,数据协调器113是主机系统120的操作系统、装置驱动器或应用程序的部分。
数据协调器113可任选地将标签贴到存取请求。不同标签指示不同数据上下文,其中可同时积极地存取不同上下文的数据,例如,在不同主机系统中、在运行于同一主机系统中的不同虚拟机中、在运行于同一或不同虚拟机中的不同应用程序中、及/或在不同用户账户中。基于标签,不同上下文的数据可经存储于在数据的存储器存取中彼此具有减少或最低的干扰的单独物理区域中。
数据协调器113可任选地缓冲或高速缓存数据存取请求以在通过到媒体(例如,109A到109N)的一组一或多个连接传输数据存取请求时合并数据存取以实现降低的通信协议开销。举例来说,每一媒体(例如,109A或109N)可为任选地囊封于集成电路封装内的集成电路装置。嵌入式控制器可经提供于集成电路封装内以允许经由串行连接将数据存取请求传递到集成电路装置。举例来说,串行连接可根据PCIe标准、USB标准、SATA标准等。为了促进通过连接传递数据存取请求,添加特定于连接的通信协议的额外数据,这在使用另一通信连接时可能是不必要的。此额外数据是协议开销;且独立于用于连接的通信协议的数据存取请求所必需的数据是有效负载。合并数据存取请求可降低整体协议开销且改进系统性能。嵌入式控制器的一些细节及实例可发现于2018年某月某日申请且标题为“具有嵌入于集成电路存储器封装中的控制器的存储器系统(Memory Systems having ControllersEmbedded in Packages of Integrated Circuit Memory)”的第某号美国专利申请案中(代理人档案号码20426-013801/US)。
为了促进数据存取的合并,数据协调器113可任选地将数据存取请求分离成不同流且基于数据流的特性确定存储器子系统111中的当前数据放置。举例来说,以高于阈值的频率随机存取的数据可经放置于高性能层的媒体(例如,109A)中,以低于阈值保持的频率随机存取的数据可经放置于中性能层的媒体中,且循序存取的数据可经放置于低性能层的媒体(例如,109N)中。举例来说,高性能层的媒体(例如,109A)可使用DRAM及/或交叉点存储器实施;中性能层的媒体可使用具有单电平单元(SLC)的快闪存储器实施;且低性能层的媒体(例如,109N)可使用具有三电平单元(TLC)及/或四电平单元(QLC)的快闪存储器实施。随着数据使用频率改变,数据协调器113可改变不同存储器层中的数据放置。较高性能存储器层可用作较低性能存储器层的缓冲器或高速缓存。因此,数据协调器113可合并及/或序列化数据存取以实现降低的通信协议开销。数据流隔离的一些细节及实例可发现于2018年某月某日申请且标题为“经由数据流隔离加速存储器系统中的数据存取(Accelerate DataAccess in Memory Systems via Data Stream Segregation)”的第某号美国专利申请案中(代理人档案号码20426-013901/US)。
数据协调器113可任选地预测跨不同存储器层、较快存储器(例如,109A)及较慢存储器(例如,109N)的数据使用及移动。应用程序可依次存取特定数据;且特定对象可一起使用。因此,在用户账户、应用程序、虚拟机中将数据项用作对象的部分可为另一相关数据项的后续使用的指示。在存取相关数据项之前,数据协调器113可指示控制器115重新布置数据项在存储器子系统110中的物理存储位置,使得在主机系统120的处理装置118存取相关数据项时,数据项已经在较快存储器(例如,109A)中。因此,改进了计算系统的操作性能。数据协调器113的预测模型可经由人工神经网络实施,其最初可使用历史数据存取记录初始地进行脱机训练,且接着,使用实时数据存取记录在实时使用中进行连续训练。下文描述关于数据协调器113的操作的另外细节。
在一个实例中,中央处理单元(CPU)可存取提供于连接到CPU的一或多个存储器系统中的两组存储器。举例来说,一组存储器可比另一组存储器慢;且中央处理单元(CPU)可经配置以使用分页技术经由一组较快存储器存取一组较慢存储器。一组较快存储器可用作一组较慢存储器的高速缓存存储器。举例来说,一组存储器无法由CPU直接寻址且耦合到可由CPU直接寻址的另一组存储器;且中央处理单元(CPU)可经配置以存取无法经由以类似于使用分页技术的的方式可直接寻址的一组存储器直接寻址的一组存储器。可直接存取的一组存储器可用作无法直接存取的一组存储器的高速缓存存储器。
当较快存储器用作较慢存储器的高速缓存时,存储于较快存储器中的数据在较慢存储器中具有对应副本。当较快存储器改变时,较慢存储器中的对应副本过期。较快存储器中发生变化的内容将被清除到较慢存储器进行更新。
替代地,在一些例子中,可在未经历较快存储器的情况下存取较慢存储器中的内容;且较快存储器中的内容在较慢存储器中可不具有对应副本。内容在较慢存储器及较快存储器中的分布可动态地改变以优化当前工作负荷的操作性能。在此情况中,仍可将较快存储器认为是用于跟踪高速缓存命中率的高速缓存。举例来说,如果被存取的数据项是由较快存储器服务,那么计数高速缓存命中;且如果被存取的数据项是由较慢存储器服务,那么计数高速缓存未命中。
在一些例子中,存储器虚拟器可实施于存储器组件的装置驱动程序中以虚拟化对不同层的存储器的存储器存取以从应用程序及/或虚拟机屏蔽存储器组件109A到109N中的差异。存储器虚拟器自动调整跨不同层的存储器的数据存储位置以优化计算系统的性能。存储器虚拟器的一些细节及实例可发现于2018年8月3日申请且标题为“用于存取异质存储器组件的存储器虚拟化(Memory Virtualization for Accessing Heterogeneous MemoryComponents)”的序列号为16/054,719的美国专利申请案中。
当被存取的数据项在一组较慢存储器中而不在一组较快存储器中时,可直接存取一组较慢存储器中的数据项、或数据项可经交换到一组较快存储器以在一组较快存储器中进行存取、或可被高速缓存于一组较快存储器中。如果存取数据项的工作负荷是由数据协调器113预测,那么数据协调器113在数据存取之前指示控制器115将数据项交换到一组较快存储器,或将数据项高速缓存于一组较快存储器中。在根据工作负荷预测执行的数据移动之后,数据存取在数据项被存取时可由一组较快存储器服务。因为数据存取是由一组较快存储器服务,所以完成数据存取的时间比由一组较慢存储器服务的时间短,或比交换到一组较快存储器以进行服务的时间短,或比将数据从一组较慢存储器加载到一组较快存储器以进行高速缓存且接着服务的时间短。
举例来说,当被存取的虚拟存储器页当前在一组较慢存储器中而不在一组较快存储器中时,可从一组较快存储器分配页以服务一组较慢存储器中的所述页;且可从一组较慢存储器提取所述页的数据且将其存储于一组较快存储器中的经分配页中,使得可在后续操作中经由存取一组较快存储器中的经分配页而进行对虚拟存储器的所述页的数据存取。
在一些例子中,交换页比简单地从较慢存储器存取经请求数据元素花费的时间长。因此,首先使经请求数据元素服务于请求者,同时执行页交换以加速对热页中的数据元素的后续存取。因此,总体性能可比保持对数据元素的请求直到完成页交换更好。
此外,与一组较慢存储器中的页的使用相关的信息可用于在预测页的使用时训练自学习预测引擎。举例来说,可使用监督式机器学习技术来使用信息训练人工神经网络,以通过减小预测与页的实际使用之间的误差而预测一组较慢存储器中的页的使用。在训练人工神经网络之后,预测引擎可使用当前信息来预测待使用的接下来的页。此外,可以连续方式执行训练、预测及来自预测后的实际使用的用于进一步训练的反馈,以将人工神经网络的预测模型调适到存储器页的最新使用模式。
响应于即将要使用一组较慢存储器中的页的存储器使用预测,存储器协调器113可指示控制器115主动将数据页从一组较慢存储器交换到一组较快存储器或将数据页从一组较慢存储器高速缓存到一组较快存储器,使得当处理需要时,数据页已在一组较快存储器中,所述布置改进数据页的数据存取速度。
可对照后续实际页使用测量预测的准确度;且预测及后续实际页使用可用于进一步训练或调整人工神经网络以跟踪存储器页的最新使用模式。
替代地,或组合地,可用基于策略的预测规则取代或增强基于机器学习的预测。举例来说,存储驻留代码(例如,在较低地址中)的页可在可能时维持在一组较快存储器中以减少频繁使用页的交换。举例来说,当正在存取作为巨型页的一部分的页时,可将所述巨型页加载到一组较快存储器中。举例来说,可至少部分使用启发式规则基于以下指示进行预测:例如是循序地还是随机地存取页、数据存取是处于稳态模式还是处于突发模式及/或页之间的逻辑关系(及不同大小的页)。
关于预测技术的一些细节及实例可发现于2018年7月11日申请且标题为“加速存储器存取的预测分页(Predictive Paging to Accelerate Memory Access)”的序列号为16/032,331的美国专利申请案中。
图2展示根据本文中揭示的至少一些实施例的具有不同存储器层及用以优化数据位置的数据协调器的计算系统。
图2的计算系统包含主机系统120、经由存储器总线203连接到主机系统120的存储器模块205、及经由互连件207连接到存储器模块205的存储装置209。存储装置209及/或存储器模块205是图1中说明的存储器子系统110的实例。
主机系统120具有处理装置118,处理装置118可为中央处理单元或具有一或多个处理核心的微处理器。主机系统120可具有存储器管理单元213及高速缓存211。存储器管理单元213及/或高速缓存211的至少一部分可任选地集成于处理装置118的同一集成电路封装内。
图2中说明的存储器模块205具有多种类型的存储器(例如,221及223)。举例来说,A型存储器221比B型存储器223快。
举例来说,存储器总线203可为双倍数据速率总线;且互连件207可为外围组件互连高速(PCIe)总线、串行高级技术附件(SATA)总线、通用串行总线(USB)总线及/或存储局域网络。可以比存取存储装置209中的B型存储器223快的速度存取存储器模块205中的B型存储器223。
图2中说明的存储装置209具有多种类型的存储器(例如,223及225)。举例来说,存储器类型B 223比存储器类型C 225快。
一般来说,多个存储器模块(例如,205)可耦合到存储器总线203;且多个存储装置(例如,209)可耦合到外围互连件207。在一些例子中,外围互连件207及存储装置(例如,209)是任选的且可不在计算系统中。在其它例子中,存储器总线203及存储器模块(例如,205)可为任选的且可不在计算系统中。
在多个存储器模块(例如,205)耦合到存储器总线203的可能配置中,存储器模块(例如,205)中的一者具有A型存储器221;且存储器模块中的另一者具有B型存储器223,B型存储器223可以低于单独存储器模块(例如,205)中的A型存储器221的速度存取。
类似地,在多个存储装置(例如,205)耦合到互连件207的可能配置中,存储装置(例如,209)中的一者具有B型存储器223,且存储装置中的另一者具有C型存储器225,C型存储器225可以低于单独别存储装置(例如,209)中的B型存储器221的速度存取。
处理装置118及/或MMU 213经由指令(例如,操作系统及/或一或多个装置驱动程序)配置以使用分页技术及/或存储器映射接口经由计算机系统中的存储器的一部分存取计算机系统中的存储器的另一部分。
举例来说,存储器模块205的B型存储器223可经由存储器模块205(或另一存储器模块)的A型存储器221存取。
举例来说,存储装置209的B型存储器223可经由存储器模块205的A型存储器221及/或经由存储器模块205的B型存储器223存取。
举例来说,存储装置209的C型存储器225可经由存储器模块205的A型存储器221、经由存储器模块205的B型存储器223及/或经由存储装置209(或另一存储装置)的B型存储器223存取。
举例来说,在一些例子中,同一存储器模块205(或不同存储器模块)中的A型存储器221及B型存储器223可通过处理装置118的存储器管理单元213通过存储器总线203直接地且单独地寻址。然而,由于B型存储器223比A型存储器221慢,所以期望经由A型存储器221存取存储器类型B 223。
在其它例子中,存储器模块205的B型存储器223仅可通过寻址存储器模块205的A型存储器221存取(例如,归因于存储器总线203的地址部分的大小限制)。
数据协调器113可指示存储器模块205中的控制器X 227在存储器模块205内的A型存储器221与B型存储器223之间执行数据传送/移动,尤其是当存储器模块205的B型存储器223无法使用存储器总线203直接寻址时。
此外,数据协调器113可指示存储器模块205中的控制器X 227与存储装置209中的控制器Y 229通信,以在存储装置209中的存储器223到225之间及/或在存储装置209与存储器模块205之间执行数据传送/移动。
在一个变型中,存储器模块205的存储器(例如,221及223)可在存储器模块205内个别地具有相同性能;然而,存储器管理单元213及/或处理装置118限制于经由存储器223经由存储器221存取(例如,归因于存储器总线203的地址部分的大小限制)。因此,存储器223看似比存储器221到处理装置118更慢。
一般来说,存储器子系统(例如,205及209)可包含例如存储器(例如,221、…、223、…、225)的媒体。存储器(例如,221、…、223、…、225)可包含易失性存储器、非易失性存储器(NVM)及/或此类存储器的组合。在一些实施例中,计算机系统包含至少一个存储器子系统,即存储装置209。存储装置209的实例是固态驱动器(SSD)。在一些实施例中,计算机系统包含至少一个存储器子系统,即配置为存储器模块205的混合存储器/存储系统。处理装置118可将数据写入到存储器子系统(例如,205及209)中的每一者且直接地或间接地从存储器子系统(例如,205及209)读取数据。
图2的计算系统可用于实施桌上型计算机、膝上型计算机、网络服务器、移动装置或包含存储器及处理装置的此计算装置。处理装置118可从存储器子系统(例如,205及209)读取数据或将数据写入到存储器子系统(例如,205及209)。
处理装置118可经由一或多个物理接口(例如,203、207)耦合到存储器子系统(例如,205、209)。
如本文中使用,“耦合到”一般指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中介组件),无论是有线还是无线,包含例如电连接、光学连接、磁性连接等的连接。
物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)等。
物理主机接口可用于在处理装置118与存储器子系统(例如,209)之间传输数据。当存储器子系统209经由PCIe接口与外围互连件207耦合时,计算机系统可进一步利用NVM高速(NVMe)接口来存取存储器(例如,223、…、225)。物理主机接口可提供用于在存储器子系统(例如,209)与处理装置118之间传递控制、地址、数据及其它信号的接口。
一般来说,存储器子系统(例如,205及209)包含连接提供存储器(例如,221、…、223、…、225)的一组存储器装置(例如存储器集成电路)的印刷电路板。存储器子系统(例如,205及209)上的存储器(例如,221、…、223、…、225)可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任何组合。
非易失性存储器装置的实例包含“与非”(NAND)型快闪存储器或“或非”(NOR)型快闪存储器。存储器集成电路可包含一或多个存储器单元阵列,例如单电平单元(SLC)、多电平单元(MLC)、三电平单元(TLC)、四电平单元(QLC)等。在一些实施方案中,特定存储器装置可包含存储器单元的SLC部分及MLC(或TLC或QLC)部分两者。存储单元中的每一者可存储由主机系统120使用的一或多个数据位。尽管描述非易失性存储器装置(例如NAND型快闪存储器),但存储器集成电路可基于任何其它类型的存储器,例如易失性存储器。在一些实施方案中,存储器(例如,221、…、223、…、225)可包含(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)及/或非易失性存储器单元交叉点阵列。非易失性存储器交叉点阵列可基于体电阻变化结合堆叠式交叉栅格式数据存取阵列执行位存储。另外,与许多基于快闪的存储器形成对比,交叉点非易失性存储器可执行就地写入操作,其中可在先前未擦除非易失性存储器单元的情况下对所述非易失性存储器单元进行编程。此外,存储器装置的存储器单元可经分组为存储器页面或数据块,其可指代用于存储数据的存储器装置的单位。
存储器子系统(例如,205或209)可具有控制器(例如,227或229),所述控制器与存储器(例如,221、…、223、…、225)通信以响应于来自处理装置118及/或存储器管理单元(MMU)213的请求、命令或指令而执行例如在存储器(例如,221、…、223、…、225)中读取数据、写入数据或擦除数据的操作及其它此类操作。控制器(例如,227或229)可包含硬件,例如一或多个集成电路及/或离散组件、缓冲存储器或其组合。控制器(例如,227或229)可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一适合处理器。控制器(例如,227或229)可包含经配置以执行存储于本地存储器中的指令的一或多个处理器(处理装置)。
控制器(例如,227或229)的本地存储器可包含嵌入式存储器,所述嵌入式存储器经配置以存储用于执行控制存储器子系统(例如,205或209)的操作(包含处置存储器子系统(例如,205或209)与处理装置118/MMU 213之间的通信及下文更详细描述的其它功能)的各种过程、操作、逻辑流程及例程的指令。控制器(例如,227或229)的本地存储器219可包含用于存储微代码的只读存储器(ROM)及/或存储例如存储器指针、经提取数据等的存储器寄存器。
虽然图2中的实例存储器子系统(例如,205及209)已被说明为包含控制器(例如,227及229),但在本发明的另一实施例中,存储器子系统(例如,205或209)可不包含控制器(例如,227或229),且可代替地依赖于外部控制(例如,其由MMU 213、或由与存储器子系统(例如,205或209)分离的处理器或控制器提供)。
一般来说,控制器(例如,227或229)可根据用于通信通道(例如,203或207)的标准通信协议从处理装置118或MMU 213接收命令、请求或指令,且可遵循所述标准协议将命令、请求或指令转换成存储器子系统(例如,205或209)内的详细指令或适当命令,以实现对存储器(例如,221、…、223、…、225)的所要存取。举例来说,控制器(例如,227或229)可负责与存储器(例如,221、…、223、…、225)相关联的操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作及逻辑块地址与物理块地址之间的地址转译。控制器(例如,227或229)可进一步包含用以经由物理主机接口与处理装置118通信的主机接口电路系统。主机接口电路系统可将从处理装置118接收的命令转换成用以存取存储器装置(例如,221、…、223、…、225)的命令指令以及将与存储器装置(例如,221、…、223、…、225)相关联的响应转换成用于处理装置118的信息。
存储器子系统(例如,205或209)还可包含未说明的额外电路系统或组件。在一些实施方案中,存储器子系统(例如,205或209)可包含高速缓存或缓冲器(例如,DRAM)及可从控制器(例如,227或229)或MMU 213接收地址且解码所述地址以存取存储器(例如,221、…、223、…、225)的地址电路系统(例如,行解码器及列解码器)。
在一个实例中,互连件207或存储器总线203具有用于对存储器子系统(例如,209或205)提供电力及/或经由预定协议与存储器子系统(例如,209或205)通信的一或多个连接器;且存储器子系统(例如,209或205)具有用以从处理装置118接收电力、数据及命令的一或多个连接器。举例来说,互连件207上的连接器与存储器子系统(例如,209)上的连接器之间的连接可利用PCIe总线或SATA总线。
在一些例子中,互连件207在未经过存储器模块205及/或存储器总线203的情况下连接到主机系统120。当存储装置209在未经过存储器模块205的情况下耦合到主机系统120时,可在存储装置209中以类似于存储器模块205中的数据协调器113的方式实施数据协调器113。
在一些例子中,可至少部分在主机系统120中实施数据协调器113。
一般来说,处理装置118、控制器227及/或数据协调器113可执行一或多个操作系统以提供服务,包含加速存储器存取,其中使用分页技术及/或存储器映射接口经由计算机系统中的存储器的一部分存取计算机系统中的存储器的另一部分,如下文进一步论述。
在一些实施例中,数据协调器113可合并数据存取请求以降低用于通过互连件207将数据存取请求传输到存储装置209的通信协议开销,如图3中说明。
图3展示用以合并数据存取请求以降低用于传输数据存取请求的协议开销的技术。
如图3中说明,可将相同类型的一组数据存取请求321、331、…、341(例如,读取、写入或擦除)引导到同一媒体(例如,图1中的109A或109N;图2的存储装置209的223或225)。为了将数据存取请求321、331、…、341单独传递到媒体(例如,通过互连207及/或经由串行通信连接),需要协议开销323、333、343来传输有效负载325、335、…、345。当有效负载325、335、…、345较小时,相应协议开销232、333或343与有效负载325、335或345之间的比率较大。在此案例中,通信通道的通信带宽的很大一部分(例如,互连207及/或经由数据协调器113与媒体之间的串行通信连接)用于传输协议开销323、333、…、及343。
为了改进通信通道的利用率,数据协调器113可组合350请求的有效负载325、335、…、345以产生合并请求351,其在其协议开销353与其合并有效负载325、335、及345之间具有较小比率。传输合并请求351,而非传输单独请求321、331、…、341,改进了通信通道的性能。
举例来说,所述组请求321、331、…、341可为写入请求。有效负载325、335、…345可包含写入请求321、331、…、341的地址及将存储在所述地址处的数据。
举例来说,所述组请求321、331、…、341可为擦除请求。有效负载325、335、…345可包含要经由请求321、331、…、341擦除的数据的地址。
举例来说,所述组请求321、331、…、341可为读取请求。有效负载325、335、…345可包含要经由请求321、331、…、341检索的数据的地址。在一些实施方案中,数据协调器113在传输合并请求351之后跟踪读取请求321、331、…、341;且响应于对合并请求351的响应,数据协调器113使用响应于合并请求351提供的检索数据单独产生对对应于合并请求351的读取请求321、331、…、及345的响应。因此,数据协调器113可提供对请求321、331、…、341的个别响应,就像请求321、331、…、341是经过通信通道单独传输以直接从媒体获得个别响应一样。
一般来说,当用于通信通道上的通信协议需要对请求(例如,读取、写入及/或擦除)作出响应时,数据协调器113可跟踪原始请求321、331、…、341与合并请求351之间的关系且使用针对合并请求351接收的响应以类似于上文关于对读取请求的响应处理论述的方式的方式产生对原始请求321、331、…、341的个别响应。
图4展示具有数据协调器113的系统。举例来说,可在图1或2的计算机系统中实施图4的系统。
图4的系统包含可在图1或2的计算机系统的处理装置118中运行的主机操作系统241。主机操作系统241包含使用存储器子系统(例如存储器模块205及/或存储装置209)的存储器(例如,221、…、223、…、225)提供存储器服务的一或多个装置驱动。
主机操作系统241包含布建虚拟机249的虚拟机管理程序245。虚拟机249具有经由由主机操作系统241提供的资源及服务使用图1或2的计算系统的硬件实施的虚拟硬件。举例来说,虚拟机管理程序245可使用存储器子系统(例如存储器模块205及/或存储装置209)的存储器(例如,221、…、223、…、225)的一部分布建虚拟存储器作为虚拟机249的部分。
虚拟机249允许客户操作系统243以如同操作系统243在具有与虚拟机中所布建同一或类似的硬件组的物理计算机器上运行的方式将资源及/或服务提供到运行于客户操作系统243上的应用程序(例如,251、…、253)。虚拟机管理程序245管理虚拟机中所布建的虚拟硬件与由主机操作系统241管理的计算系统中的硬件服务之间的映射。
图4说明其中通过虚拟机管理程序245布建虚拟机249的例子。一般来说,虚拟机管理程序245可布建可运行同一客户操作系统243或不同客户操作系统(例如,243)的多个虚拟机(例如,249)。可指派不同用户及/或应用程序组使用不同虚拟机。
在一些例子中,主机操作系统241专用于提供用于布建虚拟机的服务且不运行其它应用程序。或者,主机操作系统241可提供额外服务以支持其它应用程序,例如应用程序(例如,251、…、253)。
在图4中,虚拟机管理程序245经配置以使用单根I/O虚拟化来组织不同特性/属性的数据流。举例来说,存储器模块205具有可实施多个虚拟功能(例如,247)的物理功能246。虚拟功能247经由物理功能246提供存储器模块205的服务。虚拟机管理程序245分配且保留虚拟功能246以供特定虚拟机249、特定应用程序(例如,251或253)、特定用户帐户等进行存储器存取。因此,用于存取存储器模块205的虚拟功能247的识别可用于推断数据存取的数据使用信息,例如虚拟机249、应用程序251及/或与使用虚拟功能247进行的数据存取相关联及/或负责使用虚拟功能247进行的数据存取的用户帐户的识别。在机器学习时,可在数据协调器113中使用此信息来预测数据工作负荷及/或移动及进行实时预测。
举例来说,数据协调器113可缓冲或高速缓存请求且基于最近及/或预测数据存取频率确定物理数据存储位置。
举例来说,数据协调器113可在数据存取请求321、331、…、341被确定通过互连件207(例如,串行通信连接)传输时将小数据存取请求321、331、…、341合并成合并数据存取请求351以降低通信协议开销。
举例来说,数据协调器113可在不同上下文的数据存取请求中提供标签。上下文的实例包含数据在不同主机系统、不同虚拟机、不同应用程序及/或不同用户账户中的使用。标签可由存储装置209及/或媒体(例如,109A、109B、223、225)使用以将数据放置于不同物理区域中以在对不同上下文的数据进行同时操作时降低或消除干扰。
在一些例子中,将不同上下文的数据分离到物理存储器区域中至少部分由数据协调器113执行。举例来说,控制器227及/或数据协调器113可具有到媒体(例如,109A、109B、223、225)的单独通信连接。基于标签及/或上下文,数据协调器113可确定存储器组件(例如,109A、109B、223、225)上的单独数据放置,存储器组件(例如,109A、109B、223、225)单独连接到控制器227及/或数据协调器113以允许与存储器组件(例如,109A、109B、223、225)同时通信以增加用于数据存取的带宽。
在一些例子中,使用一组数据的上下文可根据时间而改变。当数据的上下文改变时,数据协调器113及/或媒体可调整物理数据放置位置以实现针对当前是活动的及/或被预测为在后续时间段中是活动的上下文的更好的基于上下文的数据分离。
举例来说,可训练数据协调器113以预测数据项在较慢存储器中的使用及在数据项实际请求由虚拟机249、运行于虚拟机中的应用程序251及/或操作应用程序251的用户帐户使用之前将数据项加载到较快存储器中。所述预测通过在使用数据项的请求到达存储器模块205之前将所述项加载、传送及/或高速缓存到较快存储器中而减少请求使用所述项与所述项在较快存储器中可用之间的时间,此加速页的数据存取。
举例来说,较慢存储器可为存储器模块205中的存储器223,且较快存储器是同一存储器模块205(或与存储器模块205连接到同一存储器总线203的另一存储器模块)中的存储器221。
举例来说,较慢存储器可为存储装置209中的存储器223;且较快存储器可为存储器模块205中的相同类型的存储器223、或存储器模块205中的存储器221。
举例来说,较慢存储器可为存储装置209中的存储器225;且较快存储器可为同一存储装置209或连接到互连件207的另一存储装置中的存储器223、或存储器模块205中的存储器(例如,223或221)。
可在同一存储器子系统内(例如在同一存储器模块205、同一存储装置209或存储器模块205及存储装置209的同一组合内)执行预测数据移动,以避免或减少连接到处理装置118的通信通道(例如存储器总线203及/或互连件207)中的拥塞。举例来说,可执行预测数据移动以在存储器模块205中的控制器227的控制下,响应于来自数据协调器113的一或多个命令、请求或指令而将数据从存储器模块205中的较慢存储器223复制到存储器模块205中的较快存储器221。举例来说,可执行预测数据移动以在存储装置209中的控制器229的控制下,响应于来自数据协调器113的一或多个命令、请求或指令而将数据从存储装置209中的较慢存储器225复制到存储装置209中的较快存储器223。举例来说,可执行预测数据移动以在控制器227及存储装置209中的控制器229的控制下,响应于来自数据协调器113的一或多个命令、请求或指令而将数据从存储装置209复制到存储器模块205。
在一个实施例中,虚拟机管理程序245不仅请求装置驱动程序存取存储器子系统(例如,存储器模块205或存储装置209)中的存储器(例如,221、…、223、…、或225),而且向装置驱动程序提供信息,所述信息可用于预测存储器(例如,221、…、223、…、或225)中的哪些数据项可能在后续时间段中使用及存储器(例如,存储器(例如,221、…、223、…、或225)中的哪些数据项不太可能在后续时间段中使用。可至少部分经由使用与某些数据使用属性(例如虚拟机249、应用程序251、用户帐户等)预先关联的虚拟功能(例如,247)提供信息。
举例来说,可能使用的页可被称为热页;且不太可能使用的页可被称为冷页。在后续时间段中使用页的可能性可称为页温度。数据协调器113使用由虚拟机管理程序245提供/识别的信息来预测页温度、将冷页从较快存储器移动到较慢存储器,且将热页从较慢存储器移动到较快存储器以优化存储器(例如,221、…、223、…、或225)中的页的分布且加速数据存取。
由虚拟机管理程序245提供且由数据协调器113用以进行预测的信息的实例包含:在先前时间段中使用的页的序列、将页从较慢存储器加载到较快存储器的请求的例子、页的内容属性、页的所有权属性、页的用户或应用程序的识别、是否在虚拟机及/或用户帐户中以循序模式存取页的指示、页存取是否处于稳态的指示、所使用的页是否与巨型页相关联的指示、数据块与对象之间的映射等。
由虚拟机管理程序245提供的信息还可用于识别数据使用的上下文。因此,不同上下文的数据可被分离到不同物理存储器区域中以减少来自同时操作的干扰。干扰可由在数据协调器113及/或存储器构造之间的通信连接中的带宽限制所致。
举例来说,快闪存储器可具有页中的一组存储器单元及块中的一组页。可一次一个页地从快闪存储器检索数据,但一次可擦除一个块。当不同上下文的数据经存储于同一块中时,擦除一个上下文的数据可导致当前在块中的另一上下文的数据重新定位。因此,将不同上下文的数据分离到不同块、不同存储器芯片、不同存储装置等中以减少干扰是有利的。
图5展示用以将数据分组于单独物理存储器区域中的技术。举例来说,图5的技术可使用图2的数据协调器113及/或用图4的虚拟机(例如,249)实施于图1的存储器子系统110中。
在图5中,多个服务器371、…、373可经由互连件207连接到同一存储装置209,互连件207可包含一或多个串行连接、计算机网络、一或多个网络通信交换机等。
服务器371、…、及373中的每一者可具有图1中说明的主机系统120及/或图2中说明的存储器模块205。服务器371、…、或373的数据协调器113可用指示数据存取请求涉及的数据的上下文的信息标记数据存取请求(例如,321、331、…、345;或351)。
举例来说,用于不同虚拟机381、…、383(或391、…、393)中的数据项可经标记以指示数据项用于不同上下文中。
举例来说,用于应用程序385、…、387(或395、…、395)中的数据项可经标记以指示数据项用于不同上下文中。
此外,可将来自不同服务器371、…、373的通信识别为不同上下文。
存储装置209的控制器229可将不同活动上下文的数据放置于不同存储器区域361、363、…、365中以减少干扰。
举例来说,可将由不同服务器371、…、及373使用的数据放置于不同存储器区域363、…、及365中。
举例来说,可将由同一服务器371中的不同虚拟机381、…、383使用的数据放置于不同存储器区域363、…、365中。
举例来说,可将由在同一虚拟机381中运行的不同应用程序385、…、387中使用的数据放置于不同存储器区域363、…、365中。
存储装置209的控制器229可动态地识别在过去时间段中使用且及/或被预测为将在下一时间段中使用的数据的活动上下文且调整存储器区域361、363、…、365中的数据放置以分离不同上下文的数据。
服务器371、…、或373的数据协调器113可以图6中说明的方式标记数据存取请求。
图6说明经配置于数据存取请求中以辅助将数据放置隔离到单独物理存储器区域中的标签。
不同数据存取请求405、…、407可指定数据413、…、423的地址411、…、421。当数据存取请求是针对读取操作时,所涉及的数据可能未提供于请求中;且对请求的响应可包含数据。
数据存取请求405、…、407可包含标签415、…、425。不同标签可用于表示不同上下文。上下文可根据以下各者的组合确定:服务器371的身份、服务器371中的虚拟机381的身份、运行虚拟机的应用程序的身份、及/或运行应用程序以存取数据的用户的身份。
存储装置209的控制器229可管理地址映射表419,其将请求405、…、407中所使用的地址411、…、421转译成数据413、…、423的存储器地址的物理地址451、…、452。
此外,控制器229维持将不同有源标签指派到不同存储器区域401、…、403的区域映射表429。控制器229确定及/或调整地址映射表419使得由不同标签415、…、425所表示的不同活动上下文的数据423、…、413被分组到不同存储器区域401、…、403中以彼此分离。
常规系统可具有其中通过较快存储器存取较慢存储器的高速缓存结构。当处理器存取当前在较慢存储器中的数据时,将数据加载到较快存储器作为较慢存储器中的数据的代理。随后,处理器操作较快存储器中的数据的代理/高速缓存以改进性能。较快存储器通常具有小于较慢存储器的容量。因此,仅可在较快存储器中同时高速缓存较慢存储器中的数据的一部分。当由处理器存取的项当前不在较快存储器中时,发生高速缓存未命中。当由处理器存取的项当前在较快存储器中时,发生高速缓存命中。导致高速缓存命中的存取的百分比是高速缓存命中率。改进高速缓存命中率可改进计算系统的操作性能。然而,设计高速缓存策略以改进高速缓存命中率是一项挑战。
本发明的至少一些方面通过使用机器学习技术执行跨不同存储器层的预测数据移动而解决上述及其它缺陷。不同层的存储器可具有不同数据存取花费。举例来说,为改进计算系统的操作性能,可将频繁使用的数据放置于较快存储器中;且可将不太频繁使用的数据放置于较慢存储器中。较快存储器可任选地配置为较慢存储器的高速缓存存储器。在一些例子中,可不经过作为高速缓存的较快存储器的情况下直接存取较慢存储器的至少一部分。可在使用机器学习技术训练的预测模型中应用数据使用信息以预测工作负荷企图及因此预测跨不同层的存储器的数据移动。举例来说,数据使用信息可包含数据存取的历史及与数据存取相关的属性,例如使用数据的应用程序或程序、其中进行数据评估的用户帐户、存取数据的虚拟机、数据所属的对象、应用程序中所组织的数据块到对象之间的映射、对象之中的关系等。可事先执行根据数据使用信息预测的数据移动以改进计算系统的操作性能。最初可使用历史数据使用信息及由与数据使用信息相关联的数据存取引起的历史数据移动脱机地训练预测模型。所述训练最小化历史数据移动与通过在预测模型中应用历史数据使用信息而产生的预测之间的差异。随后,预测模型可用于使用实时数据使用信息进行实时预测。执行预测数据移动可减少响应于数据存取请求而移动数据的需要。由实时数据存取请求引起的数据移动及/或预测数据移动是否减少跨层移动数据的需要的指示可用于识别所要的实时预测结果。所要结果可使用增强机器学习技术进一步训练预测模型以持续改进及调适预测模型。预测模型可在计算系统的实时使用中针对当前工作负荷动态地调适。
图7说明数据协调器113的实施方案。
在图7中,数据协调器113包含高速缓存控制器273及工作负荷辨识器263。工作负荷辨识器263包含可使用人工神经网络实施的预测模型265。
高速缓存控制器273处理来自主机系统120的数据存取请求271。高速缓存控制器273监测相对于较低性能存储器用作高速缓存的较高性能存储器、分析高速缓存的使用、优化高速缓存的使用且管理高速缓存的使用。可在高速缓存控制器273中实施常规高速缓存技术。
响应于数据存取请求271,高速缓存控制器273确定在请求271之时由请求271设为目标的数据是否在较高性能存储器中。如果如此,那么高速缓存控制器273将对应数据存取请求271计数为高速缓存命中;且否则,高速缓存控制器273将对应数据存取请求271计数为高速缓存未命中。因此,高速缓存控制器273可在数据存取请求271之时产生用于数据分布的高速缓存命中率275的测量。
任选地,高速缓存控制器273可在未将对应数据高速缓存/加载到较高性能存储器中的情况下直接从较低性能存储器服务数据存取请求271的一部分。
使用高速缓存控制器273的高速缓存策略可用于识别由高速缓存控制器273实施的数据移动277。
在用于训练预测模型265的计算系统的操作的初始时间段内收集对应于数据存取请求271的数据使用信息261。举例来说,可使用监督式机器学习技术来训练预测模型265的人工神经网络以最小化由高速缓存控制器273响应于数据存取请求271而实施的数据移动272与使用预测模型265使用对应于数据存取请求271的数据使用信息261预测的数据移动269之间的差异。可在另一计算装置上脱机地执行机器学习以建立初始预测模型265。
随后,可在工作负荷辨识器263中使用预测模块265来基于实时数据使用信息261及实时数据存取请求271实时预测数据移动269。工作负荷辨识器263指示高速缓存控制器273执行预测数据测量,此可引起高速缓存命中率275的变化。使用混合增强机器学习技术实时调整及/或训练预测模型265以持续提高高速缓存命中率275。因此,预测模型265可自动针对计算系统的当前工作负荷自动调适且实施预测数据移动269以实现高于单独经由高速缓存控制器273可实现的高速缓存命中率的高速缓存命中率275。
优选地,由工作负荷辨识器263进行的预测是至少部分基于块到对象映射表267。针对数据使用信息261的统计分析,数据协调器113可识别数据块之中的潜在关系。举例来说,一些数据块表示应用程序中的同一数据对象的部分;一起存取数据对象的部分;一些数据对象具有以特定顺序存取的模式;对在虚拟机上运行应用程序的用户帐户中的一个数据对象的存取可具有导致对另一数据对象的存取的高可能性。块到对象映射表267识别改进工作负荷辨识器263的预测准确度的关系。
图8展示根据数据使用上下文的单独物理存储器区域中的数据分组方法。图8的方法可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,运行或执行于处理装置上的指令)或其组合。在一些实施例中,图8的方法至少部分由及/或结合图2、4或5的存储装置209的控制器229及/或图1、2、4或7的数据协调器113执行。尽管以特定顺序或次序展示,但除非另外指定,否则过程的次序可经修改。因此,说明的实施例应被理解为仅作为实例,且说明的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中,可省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流是可能的。
举例来说,可在图1或2的计算系统中用图4的主机操作系统241及图7的预测模型265来实施图8的方法。举例来说,数据协调器113可至少部分经由图7的高速缓存控制器273及工作负荷辨识器263及/或图4的虚拟功能247实施。
在框301,存储器系统110的控制器229从通信连接207接收存取请求405、…、407。存取请求405、…、407识别与存取请求405、…、407相关联的数据项413、…、423、数据项413、…、423的地址411、…、421及数据项413、…、423在其中用于存取请求405、…、407的数据项413、…、423的上下文。
举例来说,上下文可由与请求405、…、407的地址411、…、421分离的标签415、…、425表示。
举例来说,通信连接207可连接到不同服务器371、…、373或主机系统;且用于不同服务器371、…、373中的数据项413、…、423可经配置以具有不同上下文。
举例来说,存取请求405、…、407可经由通信连接207从配置于同一主机系统371或120中的不同虚拟机381、…、383接收;且用于不同虚拟机381、…、383中的数据项413、…、423可经指派以具有不同上下文。
举例来说,存取请求405、…、407可经由通信连接207从在同一虚拟机(例如,381、…、或383)中运行的不同应用程序385、…、387接收;且用于不同应用程序385、…、387中的数据项413、…、423可经指派以具有不同上下文。
在框303,控制器229在与控制器229耦合的一或多个存储器组件109A、…、109N中分别确定针对单独上下文的单独存储器区域401、…、403。
举例来说,一或多个存储器组件109A、…、109N可包含快闪存储器;且单独存储器区域401、…、403可经分区使得其不共享或占用共同快闪存储器块。
举例来说,一或多个存储器组件109A、…、109N可包含多个集成电路存储器装置;且单独存储器区域401、…、403可经分区使得其不共享集成电路存储器装置中的任何者。举例来说,集成电路存储器装置中的每一者可具有安置于相应集成电路封装内的嵌入式控制器。嵌入式控制器可经由串行通信连接(例如,SATA、PCIe、USB)从控制器229接收存取请求。
在框305,控制器229基于数据项413、…、423的上下文确定数据项413、…、423在单独存储器区域401、…403中的放置。
举例来说,控制器229可具有区域映射表429,其用对应区域401指派由标签415表示的每一上下文,使得上下文的数据被分组且放置于存储器区域401中。
在框307,控制器229可确定数据项413、…、423的地址411、…、421(如已知在存储器子系统110(例如,存储装置209)外部)与在对应于数据项413、…、423的上下文的单独存储器区域401、…、403内的存储器位置(例如,物理地址451、…、452)之间的映射。
举例来说,控制器229可具有地址映射表419,其将已知在存储装置209外部的数据项413、…、423的地址411、…、421转译成在存储装置209内部使用的物理地址451、…、452以存取数据项413、…、423的存储器位置。
在框309,控制器229将数据项413、…、423存储在存储器位置处。
任选地,控制器229可基于一时间段中的活动上下文的识别调整数据放置。
举例来说,活动上下文可至少部分基于以下各者确定:在其中产生存取请求405、…、407的主机系统的识别、在其中产生存取请求405、…、407的虚拟机的识别、在其中产生存取请求405、…、407的应用程序的识别或在其中产生存取请求405、…、407的用户账户的识别或其任何组合。
活动上下文可至少部分基于读取请求来识别。举例来说,可允许在存储器区域中混合非活动上下文的数据;且活动上下文的数据可经重新定位使得不同活动上下文经映射到单独存储器区域401、…、403。
举例来说,控制器229可从存取请求405、…、407提取标签415、…、425,其中标签415、…、425与地址分离。控制器229可基于标签415、…、425识别与请求405、…、407相关联的数据项413、…、423的上下文。
标签415、…、425可由数据协调器113产生及/或添加。
举例来说,数据协调器113可接收(例如,从主机系统120)第一存取请求321、331、…、341及识别第一存取请求321、331、…、341的上下文的信息。数据协调器113可产生不同标签415、…、425以表示不同上下文。数据协调器113可根据第一存取请求(例如,321、331、…、341)产生第二存取请求(例如,351)且将第二存取请求(例如,351)传输到一或多个存储器组件109A、…、109N。可产生包含表示不同上下文的不同标签(例如,415、…、425)的第二存取请求(例如,351)。
举例来说,数据协调器113可经配置以将第一存取请求(例如,321、331、…、341)的子集合并为通过串行连接及/或计算机网络传输到存储器组件(例如,109A或109N)的单个存取请求(例如,351)。在一些例子中,经合并的请求321、331、…、341可为相同类型,例如读取请求、写入请求或擦除请求;且合并350降低通信协议开销。
任选地,当数据协调器113接收对合并请求351的响应时,其使用所述响应分别产生对原始请求321、331、…、341的单独响应。
举例来说,合并请求351可根据以下标准构造及/或传输:串行高级技术附件(SATA)标准、外围组件互联高速(PCIe)标准或通用串行总线(USB)标准。
在一些实施方案中,处理装置118与存储器子系统之间的通信通道包含计算机网络,例如局域网、无线局域网、无线个人局域网、蜂窝通信网络、宽带高速始终连接的无线通信连接(例如,当前或下一代移动网络链路);且处理装置118及存储器子系统可经配置以使用类似于NVMe协议中的数据存储管理及使用命令的数据存储管理及使用命令来彼此通信。
存储器子系统一般可具有非易失性存储媒体。非易失性存储媒体的实例包含形成于集成电路中的存储器单元及涂覆于硬磁盘上的磁性材料。非易失性存储媒体可在未消耗电力的情况下维持存储于其中的数据/信息。存储器单元使用各种存储器/存储技术实施,例如NAND逻辑门、NOR逻辑门、相变存储器(PCM)、磁性存储器(MRAM)、电阻随机存取存储器、交叉点存储及存储器装置(例如,3D XPoint存储器)。交叉点存储器装置使用无晶体管的存储器元件,所述存储器元件中的每一者具有堆叠在一起作为一列的存储器单元及选择器。存储器元件列经由两个垂直层的电线连接,其中一个层在存储器元件列上方且另一层在存储器元件列下方。可在两个层中的每一者上的一条电线的交叉点处个别地选择每一存储器元件。交叉点存储器装置是快速的且非易失性的,且可用作用于处理及存储的统一存储器集区。
存储器子系统(例如,205或209)的控制器(例如,227或229)可运行固件以响应于来自处理装置118的通信而执行操作。固件一般为提供对工程计算装置的控制、监测及数据操纵的一种类型的计算机程序。
涉及控制器227的操作的一些实施例可使用由控制器227执行的计算机指令(例如控制器227的固件)来实施。在一些例子中,硬件电路可用于实施至少一些功能。固件最初可存储于非易失性存储媒体或另一非易失性装置中,且加载到易失性DRAM及/或处理器内高速缓存存储器中以由控制器227执行。
非暂时性计算机存储媒体可用于存储存储器子系统(例如,209或205)的固件的指令及/或一般来说操作系统(例如,241、243)以及特定来说装置驱动程序及虚拟机管理程序245的指令。当通过控制器227及/或处理装置118执行指令时,指令致使控制器227及/或处理装置118执行上文论述的方法。
图9说明计算机系统600的实例机器,可在计算机系统600内执行用于致使所述机器执行本文论述的方法论中的任一或多者的一组指令。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行数据协调器113的操作(例如,执行指令以执行对应于参考图1到5描述的数据协调器113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内部网络、外部网络及/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥或能够(循序或以其它方式)执行指定由所述机器所采取的动作的一组指令的任何机器。此外,虽然说明了单个机器,但术语“机器”还应被视为包含个别或联合执行一(或多组)指令以执行本文中论述的方法论中的任一或多者的机器的任何集合。
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)、静态随机存取存储器(SRAM)等)及数据存储系统618,其经由总线630(其可包含多个总线)与彼此通信。
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的一处理器或实施指令集组合的多个处理器。处理装置602也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似物。处理装置602经配置以执行用于执行本文中论述的操作及步骤的指令626。计算机系统600可进一步包含网络接口装置608以通过网络620通信。
数据存储系统618可包含其上存储一或多组指令626或体现本文中描述的方法论或功能中的任一或多者的软件的机器可读存储媒体624(也称为计算机可读媒体)。指令626在由计算机系统600执行期间也可完全或至少部分驻存于主存储器604内及/或处理装置602内,主存储器604及处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618及/或主存储器604可对应于图1的存储器子系统110。
在一个实施例中,指令626包含用以实施对应于数据协调器113(例如,参考图1到8描述的数据协调器113)的功能性的指令。虽然在实例实施例中将机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应理解为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”也应理解为包含能够存储或编码由机器执行的一组指令且致使机器执行本发明的方法论中的任一或多者的任何媒体。术语“机器可读存储媒体”应相应地理解为包含(但不限于)固态存储器、光学媒体及磁性媒体。
已依据对计算机存储器内的数据位的操作的算法及符号表示呈现前述详细描述的一些部分。这些算法描述及表示是由数据处理领域中的技术人员用于最有效地将其工作实质传达给所属领域的其它技术人员的方式。算法在此处被设想为且通常被设想为导致所期望结果的自洽操作序列。操作是需要物理量的物理操纵的操作。通过,尽管不一定,这些量采用能够被存储、组合、比较及以其它方式操纵的电信号或磁信号的形式。已被证明是方便的是,有时出于习惯用法的原因,原则上将这些信号指代为位、值、元素、符号、字符、项、数字或类似物。
然而,应记住,全部这些及类似术语与适当物理量相关联,且仅为应用于这些量的方便标签。本发明可指代计算机系统或类似电子计算装置的动作及过程,所述计算机系统或类似电子计算装置操纵表示为计算机系统的寄存器及存储器内的物理(电子)量的数据并将所述数据转换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
本发明还涉及用于执行本文中的操作的设备。此设备可出于预期目的经特殊构造,或其可包含由存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可经存储于计算机可读存储媒体中,例如(但不限于)任何类型的磁盘(包含软盘、光盘、CD-ROM及磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡或适于存储电子指令的各自耦合到计算机系统总线的任何类型的媒体。
本文中呈现的算法及显示器并不固有地与任何特定计算机或其它设备相关。各种通用系统可结合根据本文中的教示的程序使用,或可证明构造更专门的设备来执行方法是方便的。用于各种这些系统的结构将如下文描述中陈述那样出现。另外,本发明不参考任何特定编程语言进行描述。应了解,多种编程语言可用于实施本文中所描述的本发明的教示。
本发明可经提供作为计算机程序产品或软件,其可包含具有其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本发明的过程。机器可读媒体包含用于存储呈可由机器(例如计算机)读取的形式的信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在本描述中,各种功能及操作被描述为由计算机指令执行或引起以简化描述。然而,所属领域的技术人员将认识到,此类表达意味着功能因通过一或多个控制器或处理器(例如微处理器)执行计算机指令而产生。替代地,或组合地,功能及操作可使用带有或不带有软件指令的专用电路系统实施,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。实施例可在不使用软件指令的情况下使用硬接线电路系统实施,或结合软件指令使用硬接线电路系统实施。因此,技术既不限于硬件电路系统与软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定来源。
在前述说明书中,已参考本发明的特定实例实施例描述了其实施例。将明显的是,在不背离所附权利要求书中所陈述的本发明的实施例的更宽精神及范围的情况下,可对其做出各种修改。说明书及图式应相应地以说明性意义而非限制性意义来看待。

Claims (15)

1.一种存储器系统,其包括:
一或多个存储器组件;及
处理装置,其可操作地与所述一或多个存储器组件耦合以至少:
从通信连接接收存取请求,所述存取请求识别与所述存取请求相关联的数据项、所述数据项的地址及所述数据项在其中用于所述存取请求的所述数据项的上下文;
在所述一或多个组件中分别确定针对单独上下文的单独存储器区域;
基于所述数据项的所述上下文确定所述数据项在所述单独存储器区域中的放置;
确定所述数据项的所述地址与在对应于所述数据项的所述上下文的所述单独存储器区域内的存储器位置之间的映射;及
将所述数据项存储在所述存储器位置处。
2.根据权利要求1所述的存储器系统,其中所述通信连接被连接到不同服务器;且用于所述不同服务器中的数据项经指派为具有不同上下文。
3.根据权利要求1所述的存储器系统,其中所述存取请求是经由所述通信连接从主机系统中的不同虚拟机接收的或从在虚拟机中运行的不同应用程序接收的;且用于所述不同虚拟机中或所述不同应用程序中的数据项经指派为具有不同上下文。
4.根据权利要求3所述的存储器系统,其中所述一或多个存储器组件包括快闪存储器或多个集成电路存储器装置;且所述单独存储器区域不共享共同快闪存储器块或任何所述集成电路存储器装置。
5.根据权利要求4所述的存储器系统,其中所述集成电路存储器装置中的每一者包括安置于相应集成电路封装内以经由串行通信连接接收存取请求的嵌入式处理装置。
6.根据权利要求1所述的存储器系统,其中所述处理装置进一步经配置以基于在一时间段中活动上下文的识别调整数据放置。
7.一种方法,其包括:
在存储器系统中从通信连接接收存取请求,所述存取请求识别与所述存取请求相关联的数据项、所述数据项的地址及所述数据项在其中用于所述存取请求的所述数据项的上下文;
在一或多个存储器组件中分别确定针对单独上下文的单独存储器区域;
基于所述数据项的所述上下文确定所述数据项在所述单独存储器区域中的放置;
确定所述数据项的所述地址与在对应于所述数据项的所述上下文的所述单独存储器区域内的存储器位置之间的映射;及
将所述数据项存储在所述存储器位置处。
8.根据权利要求7所述的方法,其进一步包括:
从所述存取请求提取标签,所述标签与所述地址分离;及
基于所述标签识别所述数据项的所述上下文。
9.根据权利要求7所述的方法,其进一步包括:
识别一时间段内的活动上下文;及
基于所述活动上下文调整所述存储器系统中的数据放置;且
其中所述活动上下文是至少部分基于读取请求来识别。
10.根据权利要求7所述的方法,其中所述活动上下文是至少部分基于以下各者确定:在其中产生所述存取请求的主机系统的识别、在其中产生所述存取请求的虚拟机的识别、在其中产生所述存取请求的应用程序的识别或在其中产生所述存取请求的用户账户的识别或其任何组合。
11.一种存储器系统,其包括:
一或多个存储器组件;及
处理装置,其可操作地与所述一或多个存储器组件耦合以至少:
从主机系统接收第一存取请求;
从所述主机系统接收识别所述第一存取请求的上下文的信息;
产生表示不同上下文的不同标签;
根据所述第一存取请求产生第二存取请求,所述第二存取请求包含表示所述第一存取请求的所述上下文的所述不同标签;及
将所述第二存取请求传输到所述一或多个存储器组件。
12.根据权利要求11所述的存储器系统,其中所述第二存取请求经由一或多个串行连接分别传输到所述一或多个存储器组件。
13.根据权利要求11所述的存储器系统,其中所述第二存取请求是根据以下标准:串行高级技术附件SATA标准、外围组件互连高速PCIe标准或通用串行总线USB标准;且所述处理装置进一步经配置以组合所述第一存取请求的子集作为传输到存储器组件的单个存取请求。
14.根据权利要求13所述的存储器系统,其中所述第一存取请求的所述子集包含读取请求或相同类型的请求。
15.根据权利要求13所述的存储器系统,其中所述处理装置进一步经配置以接收对所述单个存取请求的响应且根据对所述单个存取请求的所述响应分别产生对所述第一存取请求的所述子集的多个响应。
CN201980016791.8A 2018-02-12 2019-01-29 存储器系统中的数据存取及通信的优化 Pending CN111801659A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862629628P 2018-02-12 2018-02-12
US62/629,628 2018-02-12
US16/183,234 US10880401B2 (en) 2018-02-12 2018-11-07 Optimization of data access and communication in memory systems
US16/183,234 2018-11-07
PCT/US2019/015602 WO2019156849A1 (en) 2018-02-12 2019-01-29 Optimization of data access and communication in memory systems

Publications (1)

Publication Number Publication Date
CN111801659A true CN111801659A (zh) 2020-10-20

Family

ID=67541242

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980016791.8A Pending CN111801659A (zh) 2018-02-12 2019-01-29 存储器系统中的数据存取及通信的优化

Country Status (3)

Country Link
US (3) US10880401B2 (zh)
CN (1) CN111801659A (zh)
WO (1) WO2019156849A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10880401B2 (en) * 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
WO2020104448A1 (en) * 2018-11-19 2020-05-28 Telefonaktiebolaget Lm Ericsson (Publ) Methods providing network service restoration context and related service instance sets and storage resource nodes
US11070640B1 (en) * 2018-12-28 2021-07-20 8X8, Inc. Contextual timeline of events for data communications between client-specific servers and data-center communications providers
US11044338B1 (en) 2018-12-28 2021-06-22 8X8, Inc. Server-presented inquiries using specific context from previous communications
US10705955B1 (en) * 2019-01-02 2020-07-07 Baker Hughes, A Ge Company, Llc Just-in-time data provision based on predicted cache policies
US11445063B1 (en) 2019-03-18 2022-09-13 8X8, Inc. Apparatuses and methods involving an integrated contact center
US11622043B1 (en) 2019-03-18 2023-04-04 8X8, Inc. Apparatuses and methods involving data-communications virtual assistance
US11539541B1 (en) 2019-03-18 2022-12-27 8X8, Inc. Apparatuses and methods involving data-communications room predictions
US11196866B1 (en) 2019-03-18 2021-12-07 8X8, Inc. Apparatuses and methods involving a contact center virtual agent
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
CN110598665B (zh) * 2019-09-19 2022-09-09 西南交通大学 一种基于车载移动深度学习平台的杆号识别方法
US11625327B2 (en) * 2019-12-10 2023-04-11 EMC IP Holding Company LLC Cache memory management
KR20210100265A (ko) 2020-02-06 2021-08-17 삼성전자주식회사 스토리지 장치 및 그 동작 방법
US11334246B2 (en) * 2020-04-06 2022-05-17 Dell Products L.P. Nanoservices—a programming design pattern for managing the state of fine-grained object instances
WO2022061727A1 (en) * 2020-09-25 2022-03-31 Alibaba Group Holding Limited Method and apparatus for cache management
US11979273B1 (en) 2021-05-27 2024-05-07 8X8, Inc. Configuring a virtual assistant based on conversation data in a data-communications server system
US11922011B2 (en) * 2021-09-01 2024-03-05 Micron Technology, Inc. Virtual management unit scheme for two-pass programming in a memory sub-system
US20240078017A1 (en) * 2022-09-01 2024-03-07 Advanced Micro Devices, Inc. Memory controller and near-memory support for sparse accesses

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101256533A (zh) * 2007-03-02 2008-09-03 国际商业机器公司 在计算环境中进行存储器管理的方法和系统
CN101484872A (zh) * 2006-07-21 2009-07-15 国际商业机器公司 用于管理功耗的装置
CN103109296A (zh) * 2010-09-24 2013-05-15 英特尔公司 具有对抗重放攻击的保护的用于存储器加密的可调加密模式
CN103620549A (zh) * 2011-06-20 2014-03-05 微软公司 用于统一数据存储的存储介质抽象
CN104391803A (zh) * 2014-11-29 2015-03-04 中国航空工业集团公司第六三一研究所 一种分区操作系统的存储管理方法
CN105122226A (zh) * 2013-03-15 2015-12-02 美光科技公司 基于存储器系统的热信息的存储器系统管理的系统及方法
US20150378934A1 (en) * 2014-06-26 2015-12-31 Eyal Nathan Context based cache eviction
CN105683989A (zh) * 2014-06-27 2016-06-15 微软技术许可有限责任公司 用于基于上下文的数据保护的系统
US20160188700A1 (en) * 2013-04-03 2016-06-30 Ca, Inc. Optimized placement of data
CN105874420A (zh) * 2013-12-20 2016-08-17 桑迪士克科技有限责任公司 对数据进行压缩的系统和方法
CN106126321A (zh) * 2015-05-08 2016-11-16 联想(新加坡)私人有限公司 基于上下文对存储器的备用部分的配置
US20180011790A1 (en) * 2016-07-11 2018-01-11 Intel Corporation Using data pattern to mark cache lines as invalid

Family Cites Families (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04230508A (ja) 1990-10-29 1992-08-19 Internatl Business Mach Corp <Ibm> 低電力消費メモリ装置
WO1996035169A1 (en) 1995-05-05 1996-11-07 Silicon Graphics, Inc. Page migration in a non-uniform memory access (numa) system
US6148377A (en) * 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
US6026475A (en) * 1997-11-26 2000-02-15 Digital Equipment Corporation Method for dynamically remapping a virtual address to a physical address to maintain an even distribution of cache page addresses in a virtual address space
US6279138B1 (en) 1998-08-04 2001-08-21 International Business Machines Corporation System for changing the parity structure of a raid array
US6230260B1 (en) 1998-09-01 2001-05-08 International Business Machines Corporation Circuit arrangement and method of speculative instruction execution utilizing instruction history caching
US6247097B1 (en) 1999-01-22 2001-06-12 International Business Machines Corporation Aligned instruction cache handling of instruction fetches across multiple predicted branch instructions
US6473845B1 (en) * 2000-09-28 2002-10-29 Hewlett-Packard Company System and method for dynamically updating memory address mappings
US6515917B2 (en) * 2001-04-10 2003-02-04 International Business Machines Corporation Digital-to-analog converter (dac) for dynamic adjustment of off-chip driver pull-up and pull down impedance by providing a variable reference voltage to high frequency receiver and driver circuits for commercial memory
US6646912B2 (en) 2001-06-05 2003-11-11 Hewlett-Packard Development Company, Lp. Non-volatile memory
US7437438B2 (en) * 2001-12-27 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for energy efficient data prefetching
EP1552409B1 (en) 2002-08-19 2013-07-24 Broadcom Corporation One-shot rdma
US20040186960A1 (en) * 2003-03-20 2004-09-23 Sun Microsystems, Inc. Computer processor data prefetch unit
JP4956922B2 (ja) 2004-10-27 2012-06-20 ソニー株式会社 記憶装置
US20060095679A1 (en) 2004-10-28 2006-05-04 Edirisooriya Samantha J Method and apparatus for pushing data into a processor cache
US7376681B1 (en) * 2004-12-23 2008-05-20 Emc Corporation Methods and apparatus for accessing information in a hierarchical file system
US7334076B2 (en) 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
US7571295B2 (en) 2005-08-04 2009-08-04 Intel Corporation Memory manager for heterogeneous memory control
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7933923B2 (en) * 2005-11-04 2011-04-26 International Business Machines Corporation Tracking and reconciling database commands
US7496711B2 (en) * 2006-07-13 2009-02-24 International Business Machines Corporation Multi-level memory architecture with data prioritization
US8352709B1 (en) 2006-09-19 2013-01-08 Nvidia Corporation Direct memory access techniques that include caching segmentation data
TWI463321B (zh) 2007-01-10 2014-12-01 Mobile Semiconductor Corp 用於改善外部計算裝置效能的調適性記憶體系統
US8996834B2 (en) 2007-05-21 2015-03-31 International Business Machines Corporation Memory class based heap partitioning
US8281303B2 (en) 2007-10-31 2012-10-02 Hewlett-Packard Development Company, L.P. Dynamic ejection of virtual devices on ejection request from virtual device resource object within the virtual firmware to virtual resource driver executing in virtual machine
JP5238235B2 (ja) 2007-12-07 2013-07-17 株式会社日立製作所 管理装置及び管理方法
US8082400B1 (en) 2008-02-26 2011-12-20 Hewlett-Packard Development Company, L.P. Partitioning a memory pool among plural computing nodes
US8560761B2 (en) 2008-03-31 2013-10-15 Spansion Llc Memory resource management for a flash aware kernel
US8316187B2 (en) 2008-07-08 2012-11-20 International Business Machines Corporation Cache memory including a predict buffer
US8131814B1 (en) 2008-07-11 2012-03-06 Hewlett-Packard Development Company, L.P. Dynamic pinning remote direct memory access
JP2010086049A (ja) 2008-09-29 2010-04-15 Hitachi Ltd 管理計算機及びその運用方法
US8429665B2 (en) 2010-03-19 2013-04-23 Vmware, Inc. Cache performance prediction, partitioning and scheduling based on cache pressure of threads
JP5221332B2 (ja) 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
US8321645B2 (en) 2009-04-29 2012-11-27 Netapp, Inc. Mechanisms for moving data in a hybrid aggregate
US8117373B2 (en) 2009-04-30 2012-02-14 Kimon Berlin VM host responding to initiation of a page swap by transferring pages from host-but-non-guest-addressable RAM to host-and-guest-addressable RAM
JP4990322B2 (ja) 2009-05-13 2012-08-01 株式会社日立製作所 データ移動管理装置及び情報処理システム
US8595411B2 (en) 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US8850151B2 (en) 2010-03-24 2014-09-30 Apple Inc. Hybrid-device storage based on environmental state
US8965819B2 (en) 2010-08-16 2015-02-24 Oracle International Corporation System and method for effective caching using neural networks
US9009384B2 (en) 2010-08-17 2015-04-14 Microsoft Technology Licensing, Llc Virtual machine memory management in systems with asymmetric memory
CN101930404B (zh) * 2010-08-27 2012-11-21 威盛电子股份有限公司 存储装置及其操作方法
US8533422B2 (en) 2010-09-30 2013-09-10 Intel Corporation Instruction prefetching using cache line history
US8990538B2 (en) * 2010-11-05 2015-03-24 Microsoft Corporation Managing memory with limited write cycles in heterogeneous memory systems
WO2012116369A2 (en) * 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
EP3382556A1 (en) 2011-09-30 2018-10-03 INTEL Corporation Memory channel that supports near memory and far memory access
US20130145095A1 (en) 2011-12-06 2013-06-06 Lsi Corporation Melthod and system for integrating the functions of a cache system with a storage tiering system
KR20130064521A (ko) * 2011-12-08 2013-06-18 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 관리 방법
KR101850318B1 (ko) 2011-12-09 2018-04-20 삼성전자주식회사 가상 메모리 관리 장치 및 방법
IN2014DN05977A (zh) 2012-02-08 2015-06-26 Hitachi Ltd
US8849731B2 (en) * 2012-02-23 2014-09-30 Microsoft Corporation Content pre-fetching for computing devices
CN102662690B (zh) 2012-03-14 2014-06-11 腾讯科技(深圳)有限公司 应用程序启动方法和装置
US8838887B1 (en) * 2012-03-30 2014-09-16 Emc Corporation Drive partitioning for automated storage tiering
US9043530B1 (en) 2012-04-09 2015-05-26 Netapp, Inc. Data storage within hybrid storage aggregate
WO2014002213A1 (ja) 2012-06-27 2014-01-03 株式会社日立製作所 管理システム及び管理方法
US10339056B2 (en) * 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9128845B2 (en) 2012-07-30 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamically partition a volatile memory for a cache and a memory partition
US10303618B2 (en) 2012-09-25 2019-05-28 International Business Machines Corporation Power savings via dynamic page type selection
US9817739B1 (en) * 2012-10-31 2017-11-14 Veritas Technologies Llc Method to restore a virtual environment based on a state of applications/tiers
CN104704569B (zh) * 2012-12-19 2017-11-14 慧与发展有限责任合伙企业 Nvram路径选择
US9552288B2 (en) 2013-02-08 2017-01-24 Seagate Technology Llc Multi-tiered memory with different metadata levels
US20150026509A1 (en) 2013-07-22 2015-01-22 Kabushiki Kaisha Toshiba Storage device having a data stream converter
US9619180B2 (en) 2013-07-29 2017-04-11 Silicon Graphics International Corp. System method for I/O acceleration in hybrid storage wherein copies of data segments are deleted if identified segments does not meet quality level threshold
GB2517493A (en) * 2013-08-23 2015-02-25 Advanced Risc Mach Ltd Handling access attributes for data accesses
WO2015029102A1 (ja) 2013-08-26 2015-03-05 株式会社日立製作所 ストレージ装置及び階層制御方法
US9037753B2 (en) 2013-08-29 2015-05-19 International Business Machines Corporation Automatic pinning and unpinning of virtual pages for remote direct memory access
US9513692B2 (en) 2013-09-18 2016-12-06 Intel Corporation Heterogenous memory access
WO2015042684A1 (en) 2013-09-24 2015-04-02 University Of Ottawa Virtualization of hardware accelerator
US10032246B2 (en) * 2013-10-09 2018-07-24 Nvidia Corporation Approach to caching decoded texture data with variable dimensions
US9280456B2 (en) * 2013-11-12 2016-03-08 Micron Technology, Inc. Mapping between program states and data patterns
US20150199276A1 (en) * 2014-01-13 2015-07-16 Samsung Electronics Co., Ltd. Pre-fetch confirmation queue
KR20150089538A (ko) 2014-01-28 2015-08-05 한국전자통신연구원 인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법
JP6203937B2 (ja) 2014-03-04 2017-09-27 株式会社日立製作所 計算機およびメモリ制御方法
US10445025B2 (en) 2014-03-18 2019-10-15 Micron Technology, Inc. Apparatuses and methods having memory tier structure and recursively searching between tiers for address in a translation table where information is only directly transferred between controllers
US9472248B2 (en) 2014-03-28 2016-10-18 Intel Corporation Method and apparatus for implementing a heterogeneous memory subsystem
US10628245B2 (en) * 2014-04-02 2020-04-21 Pure Storage, Inc. Monitoring of storage units in a dispersed storage network
US20150356125A1 (en) 2014-06-06 2015-12-10 Plexistor Ltd. Method for data placement based on a file level operation
US9697130B2 (en) * 2014-06-25 2017-07-04 Sandisk Technologies Llc Systems and methods for storage service automation
US10282100B2 (en) * 2014-08-19 2019-05-07 Samsung Electronics Co., Ltd. Data management scheme in virtualized hyperscale environments
CN105574067B (zh) * 2014-10-31 2020-01-21 株式会社东芝 项目推荐装置以及项目推荐方法
US10223371B2 (en) * 2014-11-21 2019-03-05 Vmware, Inc. Host-based deduplication using array generated data tags
US9727427B2 (en) * 2014-12-31 2017-08-08 International Business Machines Corporation Synchronizing storage of data copies in a dispersed storage network
US20160212214A1 (en) 2015-01-16 2016-07-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Tunneled remote direct memory access (rdma) communication
WO2016134035A1 (en) * 2015-02-17 2016-08-25 Coho Data, Inc. Virtualized application-layer space for data processing in data storage systems
KR20160116533A (ko) 2015-03-30 2016-10-10 삼성전자주식회사 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법
US10645013B2 (en) * 2015-04-02 2020-05-05 Nicira, Inc Data flow identifiers
US9720846B2 (en) 2015-05-28 2017-08-01 Red Hat Israel, Ltd. Memory swap for direct memory access by a device assigned to a guest operating system
US10042782B2 (en) 2015-06-02 2018-08-07 ALTR Solutions, Inc. Immutable datastore for low-latency reading and writing of large data sets
US10019409B2 (en) 2015-08-03 2018-07-10 International Business Machines Corporation Extending remote direct memory access operations for storage class memory access
US11169925B2 (en) 2015-08-25 2021-11-09 Samsung Electronics Co., Ltd. Capturing temporal store streams into CPU caches by dynamically varying store streaming thresholds
US10430723B1 (en) 2015-09-29 2019-10-01 EMC IP Holding Company LLC Storage system with machine learning based skew prediction
US20170123796A1 (en) 2015-10-29 2017-05-04 Intel Corporation Instruction and logic to prefetch information from a persistent memory
US20170147427A1 (en) * 2015-11-23 2017-05-25 Honeywell International, Inc. System and method for software simulation for testing a safety manager platform
US10394789B1 (en) * 2015-12-07 2019-08-27 Amazon Technologies, Inc. Techniques and systems for scalable request handling in data processing systems
US10019372B2 (en) 2015-12-16 2018-07-10 Western Digital Technologies, Inc. Caching sensing device data in data storage device
US10592114B2 (en) 2016-03-03 2020-03-17 Samsung Electronics Co., Ltd. Coordinated in-module RAS features for synchronous DDR compatible memory
US10216536B2 (en) 2016-03-11 2019-02-26 Vmware, Inc. Swap file defragmentation in a hypervisor
US20170285992A1 (en) 2016-04-01 2017-10-05 Intel Corporation Memory subsystem with narrow bandwidth repeater channel
US10778762B2 (en) * 2016-04-18 2020-09-15 Rancher Labs, Inc. Cloud computing service architecture
WO2017189006A1 (en) * 2016-04-29 2017-11-02 Appdynamics Llc Predictive rollup and caching for application performance data
US10282261B2 (en) 2016-06-20 2019-05-07 Vmware, Inc. Pooled memory heartbeat in shared memory architecture
US10083123B2 (en) 2016-08-10 2018-09-25 Vmware, Inc. Page-fault latency directed virtual machine performance monitoring
US10866897B2 (en) 2016-09-26 2020-12-15 Samsung Electronics Co., Ltd. Byte-addressable flash-based memory module with prefetch mode that is adjusted based on feedback from prefetch accuracy that is calculated by comparing first decoded address and second decoded address, where the first decoded address is sent to memory controller, and the second decoded address is sent to prefetch buffer
US10120797B1 (en) * 2016-09-30 2018-11-06 EMC IP Holding Company LLC Managing mapping metadata in storage systems
CN108008911A (zh) * 2016-11-01 2018-05-08 阿里巴巴集团控股有限公司 读写请求处理方法及装置
TWI596541B (zh) 2016-11-30 2017-08-21 財團法人工業技術研究院 資料存取系統、資料存取裝置及資料存取方法
US11392488B2 (en) * 2017-04-07 2022-07-19 Keysight Technologies Singapore (Sales) Pte. Ltd. Optimizing storage of application data in memory
US9910618B1 (en) 2017-04-10 2018-03-06 Pure Storage, Inc. Migrating applications executing on a storage system
US20190004841A1 (en) * 2017-06-30 2019-01-03 Microsoft Technology Licensing, Llc Memory Sharing For Virtual Machines
US10289566B1 (en) 2017-07-28 2019-05-14 EMC IP Holding Company LLC Handling data that has become inactive within stream aware data storage equipment
US10671303B2 (en) 2017-09-13 2020-06-02 International Business Machines Corporation Controlling a storage system
US10298496B1 (en) * 2017-09-26 2019-05-21 Amazon Technologies, Inc. Packet processing cache
KR102414047B1 (ko) * 2017-10-30 2022-06-29 에스케이하이닉스 주식회사 통합 메모리 디바이스 및 그의 동작 방법
US10572389B2 (en) * 2017-12-12 2020-02-25 Advanced Micro Devices, Inc. Cache control aware memory controller
US20190196996A1 (en) * 2017-12-21 2019-06-27 Advanced Micro Devices, Inc. Dynamically determining memory access burst length
US20190243771A1 (en) 2018-02-05 2019-08-08 Micron Technology, Inc. Accelerate Data Access in Memory Systems via Data Stream Segregation
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US20190243787A1 (en) 2018-02-05 2019-08-08 Micron Technology, Inc. Memory Systems having Controllers Embedded in Packages of Integrated Circuit Memory
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US10880401B2 (en) * 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US11182507B2 (en) * 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors
US10915465B2 (en) * 2018-08-30 2021-02-09 Micron Technology, Inc. Memory configured to store predefined set of domain registers for instructions being executed in computer processors
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101484872A (zh) * 2006-07-21 2009-07-15 国际商业机器公司 用于管理功耗的装置
CN101256533A (zh) * 2007-03-02 2008-09-03 国际商业机器公司 在计算环境中进行存储器管理的方法和系统
CN103109296A (zh) * 2010-09-24 2013-05-15 英特尔公司 具有对抗重放攻击的保护的用于存储器加密的可调加密模式
CN103620549A (zh) * 2011-06-20 2014-03-05 微软公司 用于统一数据存储的存储介质抽象
CN105122226A (zh) * 2013-03-15 2015-12-02 美光科技公司 基于存储器系统的热信息的存储器系统管理的系统及方法
US20160188700A1 (en) * 2013-04-03 2016-06-30 Ca, Inc. Optimized placement of data
CN105874420A (zh) * 2013-12-20 2016-08-17 桑迪士克科技有限责任公司 对数据进行压缩的系统和方法
US20150378934A1 (en) * 2014-06-26 2015-12-31 Eyal Nathan Context based cache eviction
CN105683989A (zh) * 2014-06-27 2016-06-15 微软技术许可有限责任公司 用于基于上下文的数据保护的系统
CN104391803A (zh) * 2014-11-29 2015-03-04 中国航空工业集团公司第六三一研究所 一种分区操作系统的存储管理方法
CN106126321A (zh) * 2015-05-08 2016-11-16 联想(新加坡)私人有限公司 基于上下文对存储器的备用部分的配置
US20180011790A1 (en) * 2016-07-11 2018-01-11 Intel Corporation Using data pattern to mark cache lines as invalid

Also Published As

Publication number Publication date
US20210120099A1 (en) 2021-04-22
US10880401B2 (en) 2020-12-29
WO2019156849A1 (en) 2019-08-15
US20230362280A1 (en) 2023-11-09
US11706317B2 (en) 2023-07-18
US20190253520A1 (en) 2019-08-15

Similar Documents

Publication Publication Date Title
US11706317B2 (en) Optimization of data access and communication in memory systems
CN111684434B (zh) 多层存储器系统中的预测数据协作
KR102428791B1 (ko) 집적 회로 메모리의 패키지에 내장된 컨트롤러를 갖는 메모리 시스템
US11977787B2 (en) Remote direct memory access in multi-tier memory systems
CN111684417B (zh) 用以存取异质存储器组件的存储器虚拟化
US11561845B2 (en) Memory access communications through message passing interface implemented in memory systems
US20190243771A1 (en) Accelerate Data Access in Memory Systems via Data Stream Segregation

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