CN112306403A - 基于数据图的概率存储数据 - Google Patents
基于数据图的概率存储数据 Download PDFInfo
- Publication number
- CN112306403A CN112306403A CN202010768156.XA CN202010768156A CN112306403A CN 112306403 A CN112306403 A CN 112306403A CN 202010768156 A CN202010768156 A CN 202010768156A CN 112306403 A CN112306403 A CN 112306403A
- Authority
- CN
- China
- Prior art keywords
- data
- nodes
- data block
- host system
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 207
- 238000000034 method Methods 0.000 claims description 56
- 238000012545 processing Methods 0.000 claims description 55
- 230000002123 temporal effect Effects 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 39
- 230000008569 process Effects 0.000 description 27
- 230000003287 optical effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000002238 attenuated effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6024—History based prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及基于数据图的概率来存储数据。可确定已被主机系统存取的存储器子系统的数据块。可确定所述主机系统进行的与所述数据块相关联的存取模式。可接收所述存储器子系统的所述数据块的每一相应对的空间特性。通过基于与所述存储器子系统的所述数据块相关联的所述存取模式的节点以及所述节点之间基于所述存储器子系统的所述数据块的每一相应对的所述空间特性的边值,可生成数据图。
Description
技术领域
本公开大体上涉及一种存储器子系统,且更具体地说,涉及基于用于存储器子系统的数据图的概率来存储数据。
背景技术
存储器子系统可以是存储系统,例如固态驱动器(SSD)或硬盘驱动器(HDD)。存储器子系统可以是存储器模块,例如双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)或非易失性双列直插式存储器模块(NVDIMM)。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可例如为非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
发明内容
在一个方面,本申请提供一种方法,其包括:确定存储器子系统的已被主机系统存取的数据块;确定所述主机系统进行的与所述数据块相关联的存取模式;以及由处理装置基于与所述存储器子系统的所述数据块相关联的所述存取模式来生成数据图,其中所述数据图包括表示已被所述主机系统存取的所述数据块的至少一子集的节点和基于所述存取模式的边,其中每一边与相应节点对之间的边值相关联,所述边值基于表示所述存储器子系统的所述数据块的所述相应节点对的空间特性。
在另一方面,本申请提供一种包括指令的非暂时性计算机可读媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:确定存储器子系统的已被主机系统存取的数据块;确定所述主机系统进行的与所述数据块相关联的存取模式;以及基于与所述存储器子系统的所述数据块相关联的所述存取模式来生成数据图,其中所述数据图包括表示已被所述主机系统存取的所述数据块的至少一子集的节点和基于所述存取模式的边,其中每一边与相应节点对之间的边值相关联,所述边值基于表示所述存储器子系统的所述数据块的所述相应节点对的空间特性。
在另一方面,本申请提供一种系统,其包括:存储器组件;以及处理装置,其以操作方式与所述存储器组件耦合以进行以下操作:接收检索数据块的请求;接收基于所述数据块的数据图,其中所述数据图包含对应于所述数据块的源节点;确定所述数据图中所述源节点的一或多个目的节点;接收所述数据图中从所述源节点到所述一或多个目的节点的一或多个边的一或多个概率值;以及基于接收到的所述数据图中所述一或多个边的所述一或多个概率值来确定是否检索后续数据块。
附图说明
根据下文给出的详细描述和本公开的各种实施方案的附图,将更充分地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
图2是根据一些实施例的基于数据图的节点之间的值将数据存储在存储器子系统处的实例方法的流程图。
图3A说明根据本公开的一些实施例的对应于概率图的数据图。
图3B说明根据本公开的一些实施例的对应于贝叶斯模型(Bayesian model)的数据图。
图4A是根据一些实施例的基于数据图的经修改边值来存储数据的实例方法的流程图。
图4B是根据一些实施例的基于数据图的概率值来检索数据的实例方法的流程图。
图5A说明根据本公开的一些实施例的数据图。
图5B说明根据本公开的一些实施例的数据图的边值的改变。
图6是根据一些实施例的从存储器子系统移除数据图的实例方法的流程图。
图7A说明根据本公开的一些实施例的存储器子系统的多个数据图。
图7B说明根据一些实施例的存储器子系统的数据图的替换。
图8是本公开的实施方案可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的各方面涉及基于用于存储器子系统的数据图的概率来存储数据。存储器子系统在下文还称为“存储器装置”。存储器子系统的实例是通过外围互连件(例如,输入/输出总线、存储区域网络)耦合到中央处理单元(CPU)的存储装置。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器和硬盘驱动器(HDD)。存储器子系统的另一实例是通过存储器总线耦合到CPU的存储器模块。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)、非易失性双列直插式存储器模块(NVDIMM)等。存储器子系统可以是混合式存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
常规存储器子系统可利用多层或多类型的存储器组件。举例来说,存储器子系统可将数据存储于存储器组件的不同层处,其中每一层包含具有不同性能特性的存储器组件类型。存储器子系统可将数据存储在存储器组件处,其中存储器组件类型中的一者可提供比另一类型的存储器组件更快的性能或产生更少时延。存储器子系统可尝试在主机系统请求数据之前从提供较慢性能的存储器组件(“较慢存储器组件”)检索(即,提取)数据且将所检索数据存储在提供较快性能的存储器组件(“较快存储器组件”)处。举例来说,存储器子系统可识别特定数据块通常是主机系统在已请求初始数据块之后请求的下一数据块。在此情况下,在主机系统提供对下一数据块的请求之前,可从较慢存储器组件检索下一数据块且接着将其存储在较快存储器组件处。此类预提取操作可使得主机系统的读取操作时延降低。然而,对于常规存储器子系统来说,检测此类请求模式或存取数据块可能较难。举例来说,可能从主机系统上的操作系统和各种应用程序接收对数据块的请求,其方式使得操作系统与各种应用程序之间对数据块的请求会发生混合。
本公开的各方面通过利用表示存储器子系统中被存取的数据块的节点和表示此类存取的次序的边来创建数据图且将每一边与概率相关联以指示相应次序将来会被遵循的可能性来解决以上以及其它缺陷。举例来说,较慢类型的存储器组件(即,远存储)与较快类型的存储器组件(即,近存储)之间的数据预提取操作或预测迁移可基于指派给数据图的边的概率。如上文所提及,数据图可包含多个节点,其中每一节点表示已存取的数据块。举例来说,当一对节点的第一节点所表示的数据块已被主机系统请求之后第二节点所表示的数据块被请求时,第一节点可通过边与第二节点连接。可基于这对节点的空间特性和时间特性将边值指派给边。此外,边值可表示这对节点的第二节点所表示的数据块将是下一所请求数据块的概率。随后,如果第一节点与第二节点之间的边的概率高,则当主机系统请求第一节点所表示的数据块时,存储器子系统可检索第二节点表示的数据块且将第二节点的数据块存储在较快类型的存储器组件处。每对节点的边值可随着存储器子系统接收额外数据块请求而随时间更新或修改。随后,第二节点所表示的数据块可在主机系统请求所述数据块时从较快类型的存储器组件返回到主机系统。
本公开的优势包含但不限于改进的存储器子系统性能,因为执行读取操作的时延可降低。举例来说,由于数据可通过利用数据图的概率更准确地预提取,因此存储器子系统可因数据块在返回到主机系统之前可预提取且存储在较快类型的存储器组件处而在更少时间里返回主机系统所请求的数据块。另外,由于数据图的节点对之间的边值可基于数据图中的节点所表示的数据块的每次存取而更新,因此可通过使用数据图识别更复杂的数据块存取模式。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112A到112N。存储器组件112A到112N可以是易失性存储器组件、非易失性存储器组件或此类组件的组合。在一些实施例中,存储器子系统是存储系统。存储系统的实例是SSD。在一些实施例中,存储器子系统110是混合式存储器/存储子系统。一般来说,计算环境100可包含使用存储器子系统110的主机系统120。举例来说,主机系统120可将数据写入到存储器子系统110且从存储器子系统110读取数据。
主机系统120可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置,或包含存储器和处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可通过物理主机接口耦合到存储器子系统110。如本文所使用,“耦合到”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如不具有居间组件),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120还可利用NVM高速(NVMe)接口来存取存储器组件112A到112N。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据以及其它信号的接口。
存储器组件112A到112N可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(NAND)型快闪存储器。存储器组件112A到112N中的每一者可包含存储器单元的一或多个阵列,所述存储器单元例如单层级单元(SLC)或多层级单元(MLC)(例如三层级单元(TLC)或四层级单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分和MLC部分两者。存储器单元中的每一者可存储由主机系统120使用的一或多位的数据(例如,数据块)。尽管描述如NAND型快闪存储器的非易失性存储器组件,但存储器组件112A到112N可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112A到112N可以是但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)以及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器组件112A到112N的存储器单元可分组为存储器页面或数据块,所述存储器页面或数据块可指用于存储数据的存储器组件的单元。
存储器系统控制器115(下文称为“控制器”)可与存储器组件112A到112N通信以执行操作,例如在存储器组件112A到112N处读取数据、写入数据或擦除数据,以及其它此类操作。控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明的实例中,控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流以及例程。在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。尽管将图1中的实例存储器子系统110说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可能不包含控制器115,且可能改为依靠(例如由外部主机或由与存储器子系统分开的处理器或控制器提供的)外部控制。
一般来说,控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或合适的命令,以实现对存储器组件112A到112N的所期望存取。控制器115可负责其它操作,例如耗损均衡操作、无用单元收集操作、误差检测和误差校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器组件112A到112N相关联的逻辑块地址与物理块地址之间的地址转译。控制器115还可包含主机接口电路系统以通过物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令以存取存储器组件112A到112N,以及将与存储器组件112A到112N相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如DRAM)以及地址电路系统(例如行解码器和列解码器),所述地址电路系统可从控制器115接收地址且对地址进行解码以存取存储器组件112A到112N。
存储器子系统110包含数据图组件113,其可用于针对存储器子系统110生成和利用数据图。在一些实施例中,控制器115包含数据图组件113的至少一部分。举例来说,控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的指令以用于执行本文所描述的操作。在一些实施例中,数据图组件113是主机系统120、应用程序或操作系统的部分。在相同的或替代实施例中,数据图组件113的部分是主机系统120的部分,而数据图组件113的其它部分在控制器115处执行。
数据图组件113可用于针对存储器子系统110的数据块生成数据图。举例来说,数据图的节点可表示已由主机系统120频繁存取的数据块。数据图组件113可基于相应节点对的空间特性和时间特性生成节点对之间的边值。随后,可基于数据图中包含的节点对之间的边值来将数据存储在存储器子系统处。举例来说,可基于数据图而将数据块从较慢类型的存储器组件预提取或迁移到较快类型的存储器组件。下文描述关于数据图组件113的操作的其它细节。
图2是根据一些实施例的基于数据图的节点之间的值将数据存储在存储器子系统处的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法200由图1的数据图组件113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
如图2中所展示,在操作210处,处理逻辑确定存储器子系统的已被存取的数据块。举例来说,可记录主机系统所请求的读取操作的模式。所述读取操作可指定要存取或已存取的数据块。数据块可以是数据单元。举例来说,数据块可以是存储器子系统要进行操作的数据单元。因此,数据块可指用于任何类型的存储器组件的数据的任何逻辑或物理分组。在操作220处,处理逻辑基于已存取的数据块生成数据图的节点。图的每一节点可表示已由主机系统存取的不同数据块。举例来说,节点可表示存储器子系统的物理数据块。在一些实施例中,图的节点可表示比存储器子系统的其它数据块更频繁地被存取的数据块。因此,所述图可包含数个节点,其表示已被主机系统更频繁地存取的数据块的子集。在一些实施例中,可基于已被存取的数据块中的每一者的存取频率来对数据块进行排序或定序。图的节点则可表示最高数目或特定百分比的最频繁存取的数据块。由此,对数据块的存取模式的观测可用于生成数据图的节点。
在操作230处,针对图的各对节点,处理逻辑基于一对中的相应节点所表示的数据块的空间特性和时间特性来生成所述对的相应节点之间的边的值。两个节点之间的边可表示这对节点所表示的一个数据块在主机系统请求这对节点中的另一节点所表示的另一数据块之后被主机系统请求。因此,这对节点可表示已被请求的初始数据块和下一所请求数据块或后续第二数据块。边的值(即,边值)可表示所述对中的一个节点所表示的第二数据块(即,目的节点)在主机系统随后请求另一节点(即,源节点)所表示的第一数据块时将被主机系统请求的概率。举例来说,边值表示以下情况的概率:在这对节点的第一节点所表示的第一数据块被主机系统请求之后将被请求的下一数据块将是这对节点的第二节点所表示的第二数据块。空间特性可表示数据块之间的距离或物理接近度。举例来说,空间特性可基于指派给每一数据块的物理块地址。相比于两个节点的物理块地址之间的差较大(例如,两个地址之间的差超过某一阈值)的情况,如果两个节点的物理块地址之间的差较小(例如,物理块地址是连续块地址或两个地址之间的差在某一阈值内),则空间特性可通过较高值表示。时间特性可表示在自存取数据块以来流逝的限定时间段或时间量内存取数据块的频率。如下文相对于图4A、5A和5B进一步详细描述,边值可初始地基于空间特性而确定,且可基于这对节点所表示的数据块的时间特性来增大或减小。数据图可以是相对于图3A进一步描述的概率图或关于图3B进一步描述的贝叶斯图。
在操作240处,处理逻辑可基于所生成的节点和数据图的边的值将数据存储在存储器子系统处。举例来说,基于所生成的图的节点和边值所表示的概率值,可在存储器组件的层之间对数据块进行预提取或可对数据进行迁移。在一些实施例中,当主机系统请求图中节点所表示的数据块时,通过具有最高边值(即,最高概率)的边连接到所述数据块的另一数据块则可在主机系统请求所述另一数据块之前被预提取或迁移到不同层的存储器组件。
由此,可生成数据图。可基于主机系统对存储器子系统的数据块的存取历史来生成数据图。数据图的节点可表示已被主机系统更频繁地存取的数据块。可确定表示数据块的节点对之间的边值。举例来说,边可表示在先前数据块被请求之后可能被请求的后续数据块。边值可表示后续数据块是在先前数据块被请求之后的下一被请求数据块的概率。概率值可基于与一对节点所表示的数据块相关联的空间特性和时间特性。
图3A说明根据本公开的一些实施例的对应于概率图的数据图300。数据图300可由图1的数据图组件113生成。
如图3A中所展示,数据图可以是概率图。举例来说,概率图数据模型可通过数据块存取模式的机器学习来生成。数据图300的节点可表示已被更频繁地存取的数据块。举例来说,所述节点可表示在一定时间段内比其它数据块更频繁地被存取的数据块1到5。节点之间的边可表示下一数据块将被主机系统存取的概率。举例来说,节点D1(即,数据块1)与节点D2(即,数据块2)之间的边值展示为0.5,其表示数据块2将有50%的概率在数据块1被主机系统存取或请求之后被主机系统请求。在一些实施例中,当在源节点的数据块的前瞻数目内请求了目的节点的数据块时,边可连接两个节点。举例来说,当在请求了第一数据块之后的前瞻数目的数据块内请求了第二数据块时,节点D1与节点D2之间可建立边。因此,如果前瞻数目是五个数据块,则可在第二数据块是第一数据块被存取之后被主机系统请求的下五个数据块中的至少一个(或下五个读取操作中指定的数据块)时在节点D1与D2之间建立边。
边的各种边值可基于数据块的空间特性和时间特性。空间特性可基于数据块的接近度,且时间特性可随着时间推移增大或减小边值,如下文进一步详细描述。
图3B说明根据本公开的一些实施例的对应于贝叶斯模型的数据图350。数据图350可由图1的数据图组件113生成。
如图3B中所展示,数据图350可以是贝叶斯模型。举例来说,节点可表示各种数据块。在一些实施例中,如先前相对于概率图所描述,节点可表示最频繁存取的数据块。类似地,边值可表示下一数据块被主机系统请求的概率。各种边值也可基于空间特性和时间特性。另外,贝叶斯模型的边值可基于一对节点的源节点到目标节点的历史路径。举例来说,一对节点之间的边值可基于在这对节点的源节点的数据块被存取之前发生的先前存取。
图4A是根据一些实施例的基于数据图的经修改边缘值来存储数据的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的数据图组件113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
如图4A中所展示,在操作410处,处理逻辑识别数据图中的一对节点。举例来说,这对节点可包含源节点和目的节点,其中目的节点表示在源节点的源数据块被请求之后在前瞻数目的数据块内被请求的目的数据块。在操作420处,处理逻辑确定与这对节点相关联的空间特性。空间特性可表示源数据块与目的数据块之间的空间接近度。空间接近度可表示源数据块与目的数据块的物理块地址之间的差。在操作430处,处理逻辑基于与这对节点相关联的空间特性来生成这对节点之间的边的值。举例来说,可根据源数据块与目的数据块之间的空间接近度生成概率值。在一些实施例中,相比于数据块不大接近或物理块地址之间的差较大时,当源数据块较接近目的数据块或当物理块地址之间的差较小时,概率值可更高。在一些实施例中,可基于下式确定边的概率值:
P(a,b)=W(a,b)/∑[W(a,i)]
在一些实施例中,W(a,b)是表示两个数据块的两个节点(即,节点‘a’和‘b’)之间的权重值,且W(a,i)表示与节点‘a’连接的其它节点的其它权重值。权重值可设置成初始值(例如‘1’)且可基于衰减函数f(x)=exp(-0.7*x)增大或减小,其中‘x’是前瞻窗或前瞻位置中的数据块的位置。在一些实施例中,前瞻窗或位置中的最早数据块可被指派0的‘x’值。
在操作440处,处理逻辑确定与这对节点相关联的时间特性。时间特性可基于目的数据块在源数据块之后(例如在前瞻数目的所请求数据块内)被存取的次数。在操作450处,处理逻辑基于时间特性来修改这对节点之间的边的值。举例来说,当目的块在源数据块被存取之后被更频繁地存取时,对应于边值的概率可增大,且当目的块在源数据块被存取之后不大频繁地被存取时,概率可减小。概率的减小可基于如先前所描述衰减函数f(x)。在操作460处,处理逻辑基于来自数据图的边的经修改值来存储数据。举例来说,可基于从数据图识别的各种概率来迁移或预提取数据。
在一些实施例中,数据图可基于训练数据而生成。举例来说,数据图可基于表示数据块的存取历史的训练数据而生成。当数据图已完成(例如已生成阈值数目的边值或节点)时,则可提供数据图以用于存储数据块。举例来说,数据图可接着用于通过使用数据图来迁移或预提取数据块。此外,数据图可基于在数据图的使用期间观测到的时间特性和其它此类存取模式而更新。
图4B是根据一些实施例的基于数据图的概率值来检索数据的实例方法470的流程图。方法470可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法470由图1的数据图组件113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
如图4B中所展示,在操作471处,处理逻辑接收对数据块的请求。举例来说,主机系统可提供指定数据块的读取操作。在操作472处,处理逻辑确定包含对应于数据块的源节点的数据图。举例来说,存储器子系统可包含多个数据图,其中每一数据图包含表示不同数据块群组的不同节点群组。可做出关于数据图中的任一者是否包含请求中指定的数据块的确定。如果没有数据图包含所述数据块,则可在不使用数据图的情况下检索所述数据块。否则,可识别包含表示所请求数据块的源节点的特定数据图。在操作473处,处理逻辑确定源节点的一或多个目的节点。举例来说,可识别通过边与源节点连接的节点。在操作474处,处理逻辑接收从源节点到一或多个目的节点的一或多个边的概率值。举例来说,概率值可以是先前基于空间特性而生成且随后基于时间特性而修改的边值。在操作475处,处理逻辑基于数据图中从源节点到一或多个目的节点的一或多个边的概率值来检索后续数据块。举例来说,如先前所描述,后续数据块可预提取或迁移到较快存储器组件。后续数据块可以是具有最高概率值(例如以最高边值连接到源数据块)的数据块,和/或所述数据块被指派高于阈值概率值的概率值。由此,可通过使用数据图的概率值而早于或在主机系统请求之前(例如与所请求数据块一起)确定后续数据块要被检索。因此,可在从主机系统接收到后续读取操作或请求时使用先前生成的数据图。
图5A说明根据本公开的一些实施例的数据图500。数据图500可由图1的数据图组件113生成。
如图5A中所展示,可针对被频繁存取的数据块生成数据图500。初始地,数据图500可包含边值,其表示数据块在回溯序列510中的另一数据块之后被存取的高概率。举例来说,回溯序列510可表示用于生成数据图500的先前数据块存取的总数目。举例来说,由于数据块1到5中的每一者包含在回溯序列510中,因此每一数据块的边值在数据图500生成时的初始时间处可以是值‘1’。
图5B说明根据本公开的一些实施例的数据图的边值的改变。举例来说,指派给各种边的概率可基于在回溯序列510中被存取的不同数据块而改变。举例来说,被存取的下一数据块可能是数据块3,且数据块1可能不再包含在回溯序列510中。由此,来自数据块1的边的概率值可减小,而与数据块3的边相关联的概率可增大。因此,数据块的后续存取可使数据图的边值增大或减小。
图6是根据一些实施例的从存储器子系统移除数据图的实例方法600的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法600由图1的数据图组件113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
如图6中所展示,在操作610处,处理逻辑接收包含表示存储器子系统的数据块的节点的数据图。数据图可以是用于表示存储器子系统的不同数据块群组的多个数据图中的一者。举例来说,与不同的相应存取模式相关联的不同数据块群组可由单独的数据图表示。在操作620处,处理逻辑确定表示数据块的节点的边值。举例来说,可接收数据图中所包含的数据块之间的概率。在操作630处,处理逻辑确定节点的边之间的值是否满足衰减的边值条件。衰减的边值条件可表示已被指派满足概率值阈值的概率值的阈值数目的边。当数据图的总数目的边已被指派等于或高于概率值阈值的概率值时,可满足衰减的边值条件。此外,当数据图的总数目的边具有低于概率值阈值的概率值时,不满足衰减的边值条件。因此,衰减的边值条件可表示数据图在边的概率值较高时对预测后续数据块存取是否有用,或数据图在边的概率值低时对预测后续数据块存取是否无用。在操作640处,处理逻辑响应于确定节点的边之间的值不满足衰减的边值条件而从存储器子系统移除数据图。举例来说,数据图可存储在包含有限容量的存储器子系统的易失性存储器中。移除被视为对后续数据块存取不大有用的数据图可引起后续数据图被生成并存储在(例如存储器子系统的控制器内的)易失性存储器处。由此,如果数据块的存取模式改变,则可移除或删除被视为不大有用的数据图。
图7A说明根据本公开的一些实施例的存储器子系统的多个数据图700。如所展示,数据图700可表示不同数据块群组。举例来说,第一数据图710可表示第一数据块群组,第二数据图720可表示第二数据块群组,且第三数据图730可表示第三数据块群组。尽管展示三个数据图,但任何数目的数据图可生成并存储在存储器子系统处。如先前所描述,指派给数据图的各对节点的概率或边值可随着时间推移而改变。因此,第一数据图710和第三数据图730可包含具有被指派满足衰减的边值条件的高概率的边的节点,而第二数据图720可包含更大数目的节点,其具有被指派不满足衰减的边值条件的低概率的边。因此,第一数据图710和第三数据图730仍可被视为对预测将被请求的下一数据块有用,而第二数据图720可被视为对预测将被请求的下一数据块无用。图7B说明根据一些实施例的存储器子系统的数据图的替换。举例来说,如所展示,可移除第二数据图720,且可生成新的第四数据图760且将其用于预提取数据块或迁移数据块。举例来说,可针对已被更频繁地存取的不同数据块群组来生成第四数据图760。
图8说明计算机系统800的实例机器,在所述实例机器内可执行指令集以用于使机器执行本文所论述的任何一或多个方法。在一些实施例中,计算机系统800可对应于主机系统(例如图1的主机系统120),其包含、耦合到或利用存储器子系统(例如图1的存储器子系统110)或可用于执行控制器的操作(例如执行操作系统以执行对应于图1的数据图组件113的操作)。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥、数字或非数字电路系统,或能够执行指定要由此机器进行的动作的指令集(顺序的或以其它方式)的任何机器。另外,尽管说明了单个机器,但还应认为术语“机器”包含分别或共同地执行一组(或多组)指令以执行本文所论述的任何一或多个方法的任何机器集合。
实例计算机系统800包含处理装置802、主存储器804(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器806(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统818,它们通过总线830彼此通信。
处理装置802表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更具体地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置802还可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等等。处理装置802经配置以执行用于执行本文所论述的操作和步骤的指令826。计算机系统800还可包含网络接口装置808以在网络820上通信。
数据存储系统818可包含机器可读存储媒体824(也称为计算机可读媒体),其上存储有体现本文所描述的任何一或多个方法或功能的一或多组指令826或软件。指令826还可在其由计算机系统800执行的期间完全或至少部分地驻存在主存储器804内和/或处理装置802内,主存储器804和处理装置802也构成机器可读存储媒体。机器可读存储媒体824、数据存储系统818和/或主存储器804可对应于图1的存储器子系统110。
在一个实施例中,指令826包含用以实施对应于数据图组件(例如图1的数据图组件113)的功能的指令。尽管在实例实施例中将机器可读存储媒体824展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行且使机器执行本公开的任何一或多个方法的指令集的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域中的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在此处以及通常被认为是产生期望的结果的操作的自洽序列。所述操作是要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已证明将这些信号称为位、值、元件、符号、字符、项、数字等等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可指计算机系统或类似电子计算装置的动作和过程,其操控且将计算机系统的寄存器和存储器内表示为物理(电子)量的数据变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
本公开还涉及用于执行本文中的操作的设备。此设备可出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合存储电子指令的任何类型的媒体,各个媒体耦合到计算机系统总线。
本文中呈现的算法和显示在本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构建更专用设备以执行所述方法是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用多种编程语言来实施本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含机器可读媒体,所述机器可读媒体上存储有指令,所述指令可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和附图。
Claims (20)
1.一种方法,其包括:
确定存储器子系统的已被主机系统存取的数据块;
确定所述主机系统进行的与所述数据块相关联的存取模式;以及
由处理装置基于与所述存储器子系统的所述数据块相关联的所述存取模式来生成数据图,其中所述数据图包括表示已被所述主机系统存取的所述数据块的至少一子集的节点和基于所述存取模式的边,其中每一边与相应节点对之间的边值相关联,所述边值基于表示所述存储器子系统的所述数据块的所述相应节点对的空间特性。
2.根据权利要求1所述的方法,其中所述空间特性对应于一对数据块的第一数据块与第二数据块的接近度。
3.根据权利要求1所述的方法,其进一步包括:
接收与每一相应节点对相关联的时间特性,其中每一相应节点对之间的所述边值进一步基于与所述相应节点对相关联的所述时间特性,且其中所述时间特性与所述相应节点对中的所述节点中的一者所表示的数据块的存取频率相关联。
4.根据权利要求3所述的方法,其中每一相应节点对之间的所述边值指定特定数据块在所述主机系统已请求先前数据块之后将被所述主机系统请求的概率。
5.根据权利要求1所述的方法,其中所述数据图的所述节点对应于所述数据块的子集,所述子集比所述数据块的另一子集更频繁地被所述主机系统存取。
6.根据权利要求1所述的方法,其中所述数据图与在所述主机系统请求数据块之前检索所述数据块相关联。
7.根据权利要求1所述的方法,其中所述数据图是概率图或贝叶斯模型。
8.一种包括指令的非暂时性计算机可读媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:
确定存储器子系统的已被主机系统存取的数据块;
确定所述主机系统进行的与所述数据块相关联的存取模式;以及
基于与所述存储器子系统的所述数据块相关联的所述存取模式来生成数据图,其中所述数据图包括表示已被所述主机系统存取的所述数据块的至少一子集的节点和基于所述存取模式的边,其中每一边与相应节点对之间的边值相关联,所述边值基于表示所述存储器子系统的所述数据块的所述相应节点对的空间特性。
9.根据权利要求8所述的非暂时性计算机可读媒体,其中所述空间特性对应于一对数据块的第一数据块与第二数据块的接近度。
10.根据权利要求8所述的非暂时性计算机可读媒体,所述操作进一步包括:
接收与每一相应节点对相关联的时间特性,其中每一相应节点对之间的所述边值进一步基于与所述相应节点对相关联的所述时间特性,且其中所述时间特性与所述相应节点对中的所述节点中的一者所表示的数据块的存取频率相关联。
11.根据权利要求10所述的非暂时性计算机可读媒体,其中每一相应节点对之间的所述边值指定特定数据块在所述主机系统已请求先前数据块之后将被所述主机系统请求的概率。
12.根据权利要求8所述的非暂时性计算机可读媒体,其中所述数据图的所述节点对应于所述数据块的子集,所述子集比所述数据块的另一子集更频繁地被所述主机系统存取。
13.根据权利要求8所述的非暂时性计算机可读媒体,其中所述数据图与在所述主机系统请求数据块之前检索所述数据块相关联。
14.根据权利要求8所述的非暂时性计算机可读媒体,其中所述数据图是概率图或贝叶斯模型。
15.一种系统,其包括:
存储器组件;以及
处理装置,其以操作方式与所述存储器组件耦合以进行以下操作:
接收检索数据块的请求;
接收基于所述数据块的数据图,其中所述数据图包含对应于所述数据块的源节点;
确定所述数据图中所述源节点的一或多个目的节点;
接收所述数据图中从所述源节点到所述一或多个目的节点的一或多个边的一或多个概率值;以及
基于接收到的所述数据图中所述一或多个边的所述一或多个概率值来确定是否检索后续数据块。
16.根据权利要求15所述的系统,其中所述一或多个概率值对应于主机系统在请求所述数据块之后将请求所述一或多个目的节点的相应节点所表示的另一数据块的概率。
17.根据权利要求16所述的系统,其中所述后续数据块与比所述一或多个目的节点所关联的另一数据块更高的概率值相关联。
18.根据权利要求15所述的系统,其中所述处理装置进一步用于:
响应于确定要检索所述后续数据块,将所述后续数据块存储在具有与所述存储器组件不同的性能特性的另一存储器组件处,所述后续数据块在被提供检索所述数据块的所述请求的主机系统请求之前存储在所述另一存储器组件处。
19.根据权利要求15所述的系统,其中所述一或多个概率值中的概率值基于所述源节点所表示的所述数据块与所述目的节点中的一者所表示的所述后续数据块之间的空间特性。
20.根据权利要求15所述的系统,其中所述一或多个概率值中的概率值基于所述源节点所表示的所述数据块与所述目的节点中的一者所表示的所述后续数据块之间的时间特性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/530,833 US11119679B2 (en) | 2019-08-02 | 2019-08-02 | Storing data based on a probability of a data graph |
US16/530,833 | 2019-08-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112306403A true CN112306403A (zh) | 2021-02-02 |
Family
ID=74258242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010768156.XA Pending CN112306403A (zh) | 2019-08-02 | 2020-08-03 | 基于数据图的概率存储数据 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11119679B2 (zh) |
CN (1) | CN112306403A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030217230A1 (en) * | 2002-05-17 | 2003-11-20 | International Business Machines Corporation | Preventing cache floods from sequential streams |
US20150032967A1 (en) * | 2013-07-26 | 2015-01-29 | Netapp, Inc. | Systems and methods for adaptive prefetching |
CN104487951A (zh) * | 2012-05-15 | 2015-04-01 | 日本电气株式会社 | 分布式数据管理设备和分布式数据操作设备 |
CN104781831A (zh) * | 2012-09-13 | 2015-07-15 | 通用电气公司 | 用于生成语义标注的系统和方法 |
US20150212943A1 (en) * | 2014-01-24 | 2015-07-30 | Netapp, Inc. | Methods for combining access history and sequentiality for intelligent prefetching and devices thereof |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7716425B1 (en) * | 2006-09-27 | 2010-05-11 | Hewlett-Packard Development Company, L.P. | Prefetching data in distributed storage systems |
WO2009019691A2 (en) * | 2007-08-08 | 2009-02-12 | Yoram Kariv | System and method for predictive network monitoring |
US8666114B2 (en) * | 2011-12-01 | 2014-03-04 | Honeywell International Inc. | System and method for geospatial partitioning of a geographical region |
-
2019
- 2019-08-02 US US16/530,833 patent/US11119679B2/en active Active
-
2020
- 2020-08-03 CN CN202010768156.XA patent/CN112306403A/zh active Pending
-
2021
- 2021-09-10 US US17/471,841 patent/US11630594B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030217230A1 (en) * | 2002-05-17 | 2003-11-20 | International Business Machines Corporation | Preventing cache floods from sequential streams |
CN104487951A (zh) * | 2012-05-15 | 2015-04-01 | 日本电气株式会社 | 分布式数据管理设备和分布式数据操作设备 |
CN104781831A (zh) * | 2012-09-13 | 2015-07-15 | 通用电气公司 | 用于生成语义标注的系统和方法 |
US20150032967A1 (en) * | 2013-07-26 | 2015-01-29 | Netapp, Inc. | Systems and methods for adaptive prefetching |
US20150212943A1 (en) * | 2014-01-24 | 2015-07-30 | Netapp, Inc. | Methods for combining access history and sequentiality for intelligent prefetching and devices thereof |
Also Published As
Publication number | Publication date |
---|---|
US11630594B2 (en) | 2023-04-18 |
US20210405876A1 (en) | 2021-12-30 |
US11119679B2 (en) | 2021-09-14 |
US20210034241A1 (en) | 2021-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11675705B2 (en) | Eviction of a cache line based on a modification of a sector of the cache line | |
US11385836B2 (en) | Read look ahead data size determination | |
CN111538675A (zh) | 使用块盖写率进行无用单元收集候选对象选择 | |
US11604749B2 (en) | Direct memory access (DMA) commands for noncontiguous source and destination memory addresses | |
CN115080458A (zh) | 在存储器子系统中高速缓存逻辑到物理映射信息 | |
US11561902B2 (en) | Cache operations in a hybrid dual in-line memory module | |
US11836377B2 (en) | Data transfer management within a memory device having multiple memory regions with different memory densities | |
CN115639951A (zh) | 在存储器子系统中实施自动速率控制 | |
US11769076B2 (en) | Memory sub-system with a virtualized bus and internal logic to perform a machine learning operation | |
US11681909B2 (en) | Memory component with a bus to transmit data for a machine learning operation and another bus to transmit host data | |
US11263156B2 (en) | Memory component with a virtualized bus and internal logic to perform a machine learning operation | |
US11630594B2 (en) | Storing data based on a probability of a data graph | |
US20210110251A1 (en) | Memory sub-system with internal logic to perform a machine learning operation | |
US20210110249A1 (en) | Memory component with internal logic to perform a machine learning operation | |
US20230396270A1 (en) | Dynamic decoding for memory systems | |
US11210225B2 (en) | Pre-fetch for memory sub-system with cache where the pre-fetch does not send data and response signal to host | |
US11676010B2 (en) | Memory sub-system with a bus to transmit data for a machine learning operation and another bus to transmit host data | |
WO2022027578A1 (en) | Memory overlay using host memory buffer | |
CN115729858A (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 |