CN109891397A - 用于固态装置中的操作***高速缓冲存储器的设备及方法 - Google Patents
用于固态装置中的操作***高速缓冲存储器的设备及方法 Download PDFInfo
- Publication number
- CN109891397A CN109891397A CN201780064521.5A CN201780064521A CN109891397A CN 109891397 A CN109891397 A CN 109891397A CN 201780064521 A CN201780064521 A CN 201780064521A CN 109891397 A CN109891397 A CN 109891397A
- Authority
- CN
- China
- Prior art keywords
- ssd
- memory
- data
- cache
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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
- 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/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- 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/604—Details relating to cache allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Human Computer Interaction (AREA)
Abstract
本发明包含用于固态装置SSD中的操作***高速缓冲存储器的设备及方法。实例性设备包含所述SSD,所述SSD包含SSD内易失性存储器、非易失性存储器及将所述非易失性存储器耦合到所述SSD内易失性存储器的互连件。所述SSD还包含控制器,所述控制器经配置以接收对执行操作的请求且引导可在作为SSD内主存储器操作***高速缓冲存储器的所述SSD内易失性存储器中存取所述操作的所述执行的结果。
Description
技术领域
本发明一般来说涉及固态装置,且更明确地说,涉及用于固态装置中的操作***高速缓冲存储器的设备及方法。
背景技术
在一些实施方案中,可仅利用固态驱动器用于数据存储。因此,可仅在操作***请求固态驱动器中所存储的数据以使得能够执行由操作***引导的功能时存取固态驱动器。然而,存取固态驱动器中的数据(伴随着将数据传送到主机)可与可对执行功能的时间长度产生影响的存取等待时间及/或传送时间相关联。
附图说明
图1是根据本发明的若干个实施例的包含固态装置中的操作***高速缓冲存储器的计算***的框图。
图2A是根据本发明的若干个实施例的图解说明用于数据移动操作的路径的图式。
图2B是根据本发明的若干个实施例的图解说明用于数据移动操作的另一路径的图式。
具体实施方式
本发明包含用于固态装置(SSD)中的主存储器(MM)操作***(OS)高速缓冲存储器(例如,如125及225-0、225-1、...、225-N-1处所展示及分别结合图1及2A-2B所描述,例如,“SSD内MM OS高速缓冲存储器(In-SSD MM OS cache)”)的设备及方法。实例性设备包含SSD,在各种实施例中,SSD包含易失性存储器(VM)(例如,SSD内VM 124,以与主机VM 115进行区分)、非易失性存储器(NVM)126及将NVM耦合到SSD内VM的互连件106-4。SSD还可包含控制器,所述控制器经配置以接收对执行操作的请求且引导可在SSD内VM的SSD内MM OS高速缓冲存储器中存取执行操作的结果。主机MM 116中的主机MM内OS高速缓冲存储器117及SSD内VM 124中的SSD内MM OS高速缓冲存储器125可各自形成可由主机***102中的OS 103寻址的主机MM 116的部分。
在本发明的以下详细说明中,参考形成本发明的一部分且其中以图解方式展示可如何实践本发明的一或多个实施例的附图。充分详细地描述这些实施例以使得所属领域的技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可在不背离本发明的范围的情况下做出过程、电及/或结构改变。
如本文中所使用,例如“X”、“Y”、“N”、“M”等标号(尤其关于图式中的元件符号)指示可包含如此标示的若干个特定特征。还应理解,本文中所使用的术语仅是出于描述特定实施例的目的,而非打算为限制性。如本文中所使用,除非上下文另外明确指出,否则单数形式“一(a、an)”及“所述(the)”可包含单个或多个指示物。另外,“若干个”、“至少一个”及“一或多个”(例如,若干个存储器阵列)可指一或多个存储器阵列,而“多个”打算指一个以上存储器阵列。此外,词“可(can及may)”在本申请案中是以许可意义使用(即,具有...的可能、能够)而非以强制意义使用(即,必须)。术语“包含”及其派生词意指“包含但不限于”。术语“经耦合”及“耦合”意指直接或间接物理连接或用于存取及移动(传输)命令及/或数据,视上下文需要。术语“数据”及“数据值”在本文中可互换地使用,且可具有相同意义,视上下文需要。
本文中的图遵循其中第一个数字或前几个数字对应于图式图编号且其余数字识别图式中的元件或组件的编号惯例。可通过使用类似数字来识别不同图之间的类似元件或组件。举例来说,在图1中108可指代元件“04”,且在图2中可将类似元件指代为204。如将了解,可添加、交换及/或消除本文中的各种实施例中所展示的元件以便提供本发明的若干个额外实施例。另外,各图中所提供的元件的比例及相对尺度打算图解说明本发明的某些实施例且不应视为具限制意义。
图1是根据本发明的若干个实施例的计算***100的框图,所述计算***在SSD104中包含SSD内MM OS高速缓冲存储器125。如图1中所图解说明,计算***100可包含主机***102,主机***102包含OS 103。在一些实施例中,OS 103可配置为***软件组件。在各种实施例中,OS 103可与中央处理单元(CPU)110相关联。
如图1中所图解说明,主机***102可包含CPU 110、OS 103、若干个高速缓冲存储器112、114及主机主存储器(MM)116,主机MM 116可包含主机VM 115及在一些实施例中主机NVM(未展示)。主机VM 115可包含主机MM内OS高速缓冲存储器117,主机MM内OS高速缓冲存储器117自身可包含若干个主机MM内OS页高速缓冲存储器119。主机MM 116中的主机VM 115以及主机VM 115中所包含的主机MM内OS高速缓冲存储器117及/或主机MM内OS页高速缓冲存储器119可由OS 103及/或CPU 110寻址。举例来说,数据页(例如,4千字节到2兆字节)可从主机MM内OS高速缓冲存储器117的主机MM内OS页高速缓冲存储器119移动107到CPU内部高速缓冲存储器112以使得能够由CPU 110进行处理。因此,CPU内部高速缓冲存储器112可称为处理器高速缓冲存储器。在各种实施例中,CPU内部高速缓冲存储器112可包含级1(L1)高速缓冲存储器、L2高速缓冲存储器及/或L3高速缓冲存储器。CPU外部高速缓冲存储器114可为L4高速缓冲存储器。在一些实施例中,CPU内部高速缓冲存储器112可为静态随机存取存储器(SRAM),而主机MM 116(其包含主机VM 115及主机MM内OS高速缓冲存储器117)可为动态随机存取存储器(DRAM)。
在各种实施例中,主机***102可如本文中所描述而配置。举例来说,主机***102可包含CPU 110,CPU 110可执行OS 103所存储的经编码指令。主机***102可进一步包含在CPU 110内部的若干个高速缓冲存储器112、在CPU 110外部的若干个高速缓冲存储器114、主机MM 116(包含主机VM 115、主机MM内OS高速缓冲存储器117、主机MM内OS页高速缓冲存储器119)及/或装置驱动器118。主机MM 116可充当主机***102的主存储器。
计算***100还可包含通过互连件106-1连接到主机***102及/或OS 103的至少一个SSD 104,如本文中所描述。在各种实施例中,SSD 104可包含若干个组件。在一些实施例中,OS 103及互连件106-1可作为接口电路108(例如,PCIe电路)的一部分与表示若干个存储器装置中的一者的至少一个SSD 104一起操作,所述若干个存储器装置可各自包含至少一个SSD内VM 124及至少一个NVM 126,如本文中所描述。每一SSD 104可包含控制器120,控制器120经配置以接收从OS 103(例如,经由耦合到互连件106-2的互连件106-1)发出的用于执行操作的请求(命令)。控制器120还可经配置以使用由SSD内VM 124及NVM 126(例如,通过互连件106-4而耦合)高速缓存及/或存储的数据来引导操作的执行,例如,经由互连件106-3及/或互连件106-4。控制器120还可经配置以将执行操作的结果及/或通知(例如,确认)输出到OS 103,例如,经由耦合到互连件106-1的互连件106-2。
如本文中所描述,分布式计算架构可包含将计算***100的分布式组件互连的接口电路108的使用,例如,如结合图1所描述。通信接口(例如,在本文中称为互连件,及在106-1、106-2、106-3及106-4处所展示)可经由逻辑连接而通信。互连件106可提供(举例来说)第一电子组件的端口与第二电子组件的端口之间(例如,分布式计算架构的第一及第二电子组件的多个端口当中)的点对点通信信道。互连件106可允许两个端口皆发送及/或接收以下请求:例如,在组件之间移动数据、将数据存储及/或高速缓存于组件中的一或多者中、对由高速缓冲存储器所存储(例如,高速缓冲存储器中所存储)的数据执行读取及/或写入操作,及/或对由存储器所存储(例如,存储器中所存储)的数据执行读取及/或写入操作,以及其它请求。在一些实施例中,可对至少临时地存储在SSD 104中的一或多个OS高速缓冲存储器(例如,SSD内VM 124中的SSD内MM OS高速缓冲存储器,如在125及225-0、225-1、...、225-N-1处所展示及分别结合图1及2A-2B所描述)中的数据执行读取及/或写入操作。互连件106还可允许两个端口皆发送及/或接收执行所请求操作的结果,例如,高速缓冲存储器读取及/或写入操作、存储器读取及/或写入操作的结果以及其它操作的结果。
举例来说,计算***100可使用包含若干个互连件106的***组件互连高速(PCIe)总线将各种组件互连到接口(例如,PCIe)电路中,如由图1中的参考编号108所指示。为使PCIe***存储器装置(例如,SSD 104)可寻址,***存储器装置可首先映射到计算***100的输入/输出(I/O)端口地址空间或存储器所映射地址空间中。计算***的固件(未展示)、装置驱动器118、SSD控制器120及/或OS 103(例如,结合图1所展示及描述的计算***100的一部分)可用于对***存储器装置的映射进行编程。举例来说,映射可被编程到基址寄存器(未展示)以通过将配置命令写入到PCIe控制器(未展示)而告知***存储器装置其地址映射。
举例来说,PCIe可为可提供对(举例来说)(除其它外)PCI、PCI-X及AGP(加速图形端口)总线标准的改进的串行扩展接口电路(总线)。此些改进可包含更高总线吞吐量、更低I/O引脚计数及更小物理占用面积、总线装置的更好性能缩放、更详细错误检测及报告机制及/或本机热插拔功能性。如本文中所使用,更高总线吞吐量打算意指使用接口电路108来增大本文中所描述的组件内及/或本文中所描述的组件之间的数据及/或命令移动的速度及/或速率,及/或减小本文中所描述的组件内及/或本文中所描述的组件之间的数据及/或命令移动的等待时间,所述组件例如OS 103、装置驱动器118、SSD 104、控制器120、SSD内MMOS高速缓冲存储器125、SSD内VM 124及/或NVM 126以及其它组件。为简单起见,本文中所描述的实施例参考PCIe。然而,如所属领域的技术人员将了解,涵盖其它接口电路及/或互连件,例如,PCI以及其它。
举例来说,PCIe接口电路108可为使用共享地址/数据线的高速串行互连总线。因此,PCIe总线的总线拓扑可不同于其它PCI总线。举例来说,PCI总线可使用共享并行总线架构,其中PCI主机与所有装置共享一组共同地址/数据/控制线。由于此共享总线拓扑,因此在多个主装置的情形中可仲裁对PCI总线的存取,且所述存取可限制为在单个方向上一次一个主装置。相比之下,PCIe总线可基于具有将每个装置连接到根复合体(root complex)(或主机)的单独串行链路的点对点拓扑。
如本文中所使用,数据移动是包含性术语,其包含(举例来说)将数据值从源位置中的组件拷贝、传送及/或传输到目的地位置中的组件。数据可(举例来说)从操作为数据存储资源的NVM(例如,如在126及226处所展示及分别结合图1及2A-2B所描述)移动到主机***102及/或SSD内MM OS高速缓冲存储器125以用于执行由OS(例如,如在103及203处所展示及分别结合图1及2A-2B所描述)引导的操作。如本文中所描述,数据可经由操作为SSD内MMOS高速缓冲存储器资源的SSD内VM 124(例如,如在224处所展示及结合图2A及2B所描述)而移动。如本文中所描述,SSD内MM OS高速缓冲存储器资源224还可配置(例如,形成)为被包含在SSD中且(例如)经由互连件106-4而耦合到SSD 204的NVM数据存储资源226。在一些实施例中,NVM 126及/或NVM数据存储资源226可为相对于主机MM 116的主要存储装置及SSD内MM OS高速缓冲存储器资源224而操作为辅助存储装置的NAND存储器及/或3D XPoint存储器。
拷贝数据值打算指示:将至少临时地存储及/或高速缓存与源组件(例如,NVM 126及/或SSD内VM 124的SSD内MM OS高速缓冲存储器125)中的数据值移动到目的地组件(例如,移动到SSD内VM 124的SSD内MM OS高速缓冲存储器125、移动到主机MM 116的主机MM内OS高速缓冲存储器117及/或移动到CPU内部高速缓冲存储器112),且(例如)源组件的行及/或高速缓冲存储器中所存储的原始数据值可保持不变。传送数据值打算指示:将至少临时地存储及/或高速缓存于源组件中的数据值移动到目的地组件,且(例如)源组件的行及/或高速缓冲存储器中所存储的原始数据值中的至少一者可(例如)通过被擦除及/或通过后续写入操作而改变,如本文中所描述。传输数据值打算指示移动所拷贝及/或所传送数据值的过程。举例来说,如本文中所描述,数据值可经由接口电路108的互连件106从被存储及/或高速缓存于源位置中传输到目的地位置。
为了清晰起见,已简化对计算***100的说明以将重点放在与本发明具有特定相关性的特征上。举例来说,在各种实施例中,可存在操作为SSD内MM OS高速缓冲存储器资源224的一个以上OS 103及/或一个以上SSD 104,SSD内MM OS高速缓冲存储器资源224(例如)经由互连件106-4而耦合到SSD 204的NVM数据存储资源226。在一些实施例中,SSD内MM OS高速缓冲存储器资源224可为操作为主机MM 116的一部分的动态随机存取存储器(DRAM)阵列,但易失性存储器的其它配置也在本发明的范围内,例如,静态随机存取存储器(SRAM)阵列、同步动态随机存取存储器(SDRAM)及/或晶闸管随机存取存储器(TRAM)以及其它。本文中所描述的数据存储资源打算为SSD 104的NVM 126。在一些实施例中,NVM 126可为3DXPoint阵列,但非易失性存储器的其它配置也在本发明的范围内,例如,自旋扭矩转移随机存取存储器(STT RAM)阵列、相变随机存取存储器(PCRAM)阵列、电阻式随机存取存储器(RRAM)阵列、NAND快闪阵列及/或NOR快闪阵列以及其它。
如本文中所描述,3D XPoint阵列打算意指经配置用于非易失性数据存储及用于减小数据存取及/或检索的等待时间的SSD的存储器单元的三维交叉点阵列。相对于其它非易失性存储器(例如,NAND快闪存储器以及其它),等待时间可被减小到接近利用易失性存储器(例如,DRAM)可实现的相对短等待时间的水平。举例来说,在各种实施例中,3D XPoint阵列可经由互连件106-4与SSD内VM 124组合地操作为NVM 126,例如,DRAM阵列。经由互连件106-4将NVM 126耦合到SSD内VM 124可进一步有助于增大这些组件之间的数据移动的速度及/或速率及/或减小这些组件之间的数据移动等待时间。
在各种实施例中,SSD 104中的此些SSD内VM及NVM资源各自可包含布置成通过存取线(其可称为字线或选择线)而耦合的行及通过感测线(其可称为数据线或数字线)而耦合的列的存储器单元。在一些实施例中,存储器资源的多个存储器阵列可经分区以使得能够在一或多个分区中并行执行操作。
在至少一个实施例中,主机***102可包含在CPU 110上运行的OS 103。OS 103可经配置以通过发出命令及/或(例如)经由一或多个处理器来引导各种操作的执行而请求(例如)本文中所描述的读取操作及/或写入操作。除L1高速缓冲存储器之外,在各种实施例中,本发明还可利用三个其它层级的高速缓冲存储器(例如L2、L3及/或L4)中的至少一者的组合。L1、L2、L3及/或L4高速缓冲存储器各自可有助于桥接快速CPU 110与较慢辅助存储器之间的间隙,例如,经配置不具有SSD内MM OS高速缓冲存储器125的SSD内VM 124及/或NVM126及/或本文中所描述的接口电路108。在一些实施例中,主机***102可包含作为CPU 110的一部分的若干个内部高速缓冲存储器112。举例来说,L1、L2及/或L3高速缓冲存储器可(例如)作为CPU内部高速缓冲存储器112构建到CPU中。在各种实施例中,L2高速缓冲存储器或L3高速缓冲存储器可为CPU内部高速缓冲存储器112层次中的末级高速缓冲存储器(LLC)。
另一选择为或另外,主机***102可包含在CPU 110外部的若干个CPU外部高速缓冲存储器114。内部及/或外部高速缓冲存储器可配置为用以至少临时地存储从SSD 104的存储器资源(例如,SSD内VM 124及/或NVM 126)检索的数据以便在执行若干个操作(例如,本文中所描述的读取操作)时由CPU 110使用的存储器。举例来说,CPU内部高速缓冲存储器112中的L1、L2及/或L3高速缓冲存储器层次可存储CPU 110频繁地及/或最近存取的数据。当CPU 110所请求的数据在相应内部高速缓冲存储器层次中找不到时,可检查CPU外部高速缓冲存储器114以确定所请求数据是否高速缓存于其中。在各种实施例中,CPU外部高速缓冲存储器114可包含各种类型的高速缓冲存储器中的一或多者。CPU外部高速缓冲存储器114可有助于计算机性能的多级存储策略。高速缓冲存储器(例如L4)可位于CPU外部(作为CPU外部高速缓冲存储器114),举例来说,位于芯片外及/或构建到主板中,以及其它位置。
如果所请求数据未高速缓存于CPU内部高速缓冲存储器112、CPU外部高速缓冲存储器114及/或主机MM 116的主机MM内OS高速缓冲存储器117中,那么存储装置存取请求可经由OS 103而发送(发出)到装置驱动器118。如本文中所描述,请求可由装置驱动器118发送(转发)到SSD 104的控制器120以从(举例来说,NVM 126)检索136数据。控制器120可通过从SSD 104的SSD内VM 124中的SSD内MM OS高速缓冲存储器125检索所请求数据而实施请求,例如,软件例程调用。SSD内MM OS高速缓冲存储器125可包含若干个SSD内MM OS页高速缓冲存储器127。SSD内VM 124中所包含的SSD内MM OS高速缓冲存储器125及/或SSD内MM OS页高速缓冲存储器127可作为主机MM 116的一部分由OS 103寻址。举例来说,来自SSD内MMOS页高速缓冲存储器127的数据可以(举例来说)64字节的粒度直接发送138到CPU内部高速缓冲存储器112以供由CPU 110处理。通过比较,从NVM 126直接发送105到主机***102的数据的存取可具有512字节或更高的粒度。因此,数据可以增大的速度、速率及/或效率从SSD内MM OS高速缓冲存储器125直接发送138到CPU内部高速缓冲存储器112,而非通过起始一操作来将所请求数据从NVM 126直接发送105到主机***102的高速缓冲存储器,例如,发送到主机MM 116的主机MM内OS高速缓冲存储器117。
举例来说,在一些预先存在的实施方案,此请求可起始此数据直接105从NVM 126(例如,从3D XPoint存储器)以及其它类型的NVM的检索,以便经由双列直插式存储器模块(DIMM)将数据移动到主机MM 116的主机MM内OS高速缓冲存储器117以用于执行操作。然而,相对于OS 103引导对此数据的存取以便从SSD内VM 124的SSD内MM OS高速缓冲存储器125而非直接从NVM 126进行移动,此数据移动路径具有减小的数据移动速度及/或速率及/或增大的数据移动等待时间。举例来说,相对于经由接口电路108而存取已从NVM 126移动136到SSD 104中的SSD内VM 124的SSD内MM OS高速缓冲存储器125的数据(例如,经由互连件106-1、106-2及/或106-3而存取经高速缓存数据),减小的速度及/或速率可至少部分地归因于存取NVM 126(例如,3D XPoint存储器)的主机***102及/或装置驱动器118的增大的固有等待时间。
在一些实施例中,主机***102可包含作为CPU 110的一部分或在CPU 110外部的若干个缓冲区(未展示)。缓冲区可为经配置以积累数据(举例来说,如从CPU 110所接收)的存储器,且在执行若干个操作(例如,写入操作)时将数据移动到SSD 104的存储器资源。如本文中所描述,主机***102还可包含主要存储器资源。主要存储器资源可包含CPU内部高速缓冲存储器112、CPU外部高速缓冲存储器114、主机MM 116的主机VM 115及/或主机MM内OS高速缓冲存储器117。
SSD 104包含(举例来说)SSD内VM 124、NVM 126与控制器120的组合以连同本文中所描述的接口电路108的互连件106-2、106-3及/或106-4一起来引导使用这些易失性及非易失性存储器所存储及/或高速缓存的数据而执行的操作。本文中所描述的SSD内MM OS高速缓冲存储器125及SSD内MM OS页高速缓冲存储器127可视为主要存储器资源的一部分。
在一些实施例中,SSD 104的控制器120可包含双倍数据速率(DDR)SDRAM控制器122。与单倍数据速率(SDR)SDRAM相比,DDR SDRAM接口可通过更严格控制电数据及/或时钟信号的时序而提供(举例来说)更高数据移动(例如,传送)速率。DDR SDRAM可使用双抽取(double pumping)在时钟信号的上升及下降边缘两者上传送数据以在不具有时钟频率的对应增大的情况下使数据总线带宽加倍。使时钟频率保持为低的一个优点是可降低(举例来说)用于将存储器(例如,SSD内VM 124及/或NVM 126)连接到控制器120的电路板上的信号完整性要求。“双倍数据速率”是指利用特定时钟频率操作的DDR SDRAM因双抽取而能够具有以相同时钟频率运行的SDR SDRAM的几乎两倍的带宽。举例来说,在数据一次被传送64个位的情况下,DDR SDRAM实现(存储器总线时钟速率)×2(针对双倍数据速率)×64(所传送的位数)/8(位数/字节)的传送速率。因此,在具有100兆赫(MHz)的存储器总线时钟速率(例如,总线频率)的情况下,DDR SDRAM可实现1600兆字节/秒(MB/s)的传送速率。
在各种实施例中,控制器120可与逻辑电路123相关联及/或包含逻辑电路123。逻辑电路123可经配置以包含可检索并执行指令及/或将所执行指令的结果存储在适合位置处的若干个处理资源,例如,一或多个处理器。处理器可包含(举例来说)可用于通过对数据(例如,一或多个操作数)执行操作来执行指令的若干个功能单元,例如算术逻辑单元(ALU)电路、浮点单元(FPU)电路及/或组合逻辑块。如本文中所使用,操作可为(举例来说)布尔运算,例如AND、OR、NOT、NOT、NAND、NOR及XOR及/或其它操作,例如,反相、移位、算术、统计、将操作属性与若干个阈值进行比较以确定来自若干个选项的所得操作的选择,以及许多其它可能操作。
可通过增大数据在计算***中四处移动及存储以便处理所请求存储器阵列操作的速度、速率及/或效率而实现时间及/或功率优点。此些操作可包含作为DRAM操作的计算操作(例如读取及/或写入等)及/或逻辑操作(例如逻辑布尔运算、对数据移动操作的确定等)以及本文中所描述的其它操作。
控制器120可耦合到逻辑电路123。控制器120及/或逻辑电路123可与若干个高速缓冲存储器、缓冲区、读出放大器、计算组件、扩展行地址(XRA)锁存器及/或寄存器相关联,及/或包含若干个高速缓冲存储器、缓冲区、读出放大器、计算组件、扩展行地址(XRA)锁存器及/或寄存器,其等可经由控制线及/或数据路径(例如,如图2A-2B中所展示)与存储器单元(例如,SSD内VM 124及/或NVM 126)的阵列相关联。控制器120可引导及/或控制SSD内VM阵列124的常规DRAM计算操作,例如读取、写入、拷贝及/或擦除操作等。另外,然而,由控制器120的逻辑电路123检索、存储及/或执行的指令可致使执行比常规DRAM读取及写入操作更复杂的额外逻辑操作,例如,举例来说,加法、乘法、阈值比较或布尔运算,例如AND、OR、XOR等。
在各种实施例中,计算***100可包含装置驱动器118。装置驱动器118可经配置以结合将请求从OS 103发送到SSD 104及/或从SSD 104(例如,从控制器120)接收执行操作的结果及/或通知(例如,确认)而执行至少本文中所描述的功能。在一些实施例中,主机***102可包含装置驱动器118,但实施例不限于此。举例来说,在一些实施例中,SSD 104的装置驱动器118可安置在SSD 104自身上或计算***100中的其它地方。在其中装置驱动器118安置在主机***102上的实施例中,装置驱动器118可选择地耦合到CPU 110及/或OS 103且经由总线106而可选择地耦合到SSD 104。举例来说,至少一个装置驱动器118可经配置以(例如)经由接口电路108的互连件106-1及/或106-2而可选择地耦合到每一SSD 104中的控制器120,以提供与CPU内部高速缓冲存储器112、CPU外部高速缓冲存储器114、VM 124、SSD内MM OS高速缓冲存储器125、NVM 126及/或高速缓冲存储器属性的使用相关的指令,如本文中所描述。另外,控制器120可经配置以响应于从装置驱动器118接收的指令而控制对每一SSD 104的存储器资源VM 124及/或NVM 126的存取,如本文中所描述。
如本文中所使用,主机***102、OS 103、CPU 110、CPU 110内部的若干个高速缓冲存储器112、CPU 110外部的若干个高速缓冲存储器114、主机MM 116、主机VM 115、主机MM内OS高速缓冲存储器117、主机MM内OS页高速缓冲存储器119、装置驱动器118、至少一个SSD104、互连件106、接口电路108、控制器120、SSD内VM124、SSD内MM OS高速缓冲存储器125、SSD内MM OS页高速缓冲存储器127、DDR SDRAM控制器122、逻辑组件123及/或NVM 126可单独地或共同地称为“设备”。
图2A是根据本发明的若干个实施例的图解说明用于数据移动操作的路径230的图式。图2A及2B中所展示的主机***202、OS 203、装置驱动器218、SSD 204、控制器220、SSD内MM OS高速缓冲存储器资源224、SSD内MM OS高速缓冲存储器225-0、225-1、...、225-5及/或NVM数据存储资源226组件可对应于及/或为图1中的类似地编号的组件的实施例,只不过在图1是以数字“1”开头。此外,尽管图2A及2B中为清晰起见未展示CPU 110、CPU 110内部的高速缓冲存储器112及/或CPU 110外部的高速缓冲存储器114、主机MM 116、互连件106及接口电路108以及结合图1所展示或描述的其它组件,但此些组件中的一或多者可包含在图2A及2B中所图解说明的电路中。因此,在各种实施例中,这些组件中的每一者可表示由结合图1及本文中其它地方所展示及描述的对应组件体现且所述对应组件中所含有的功能性的至少一部分。
如先前所述,数据移动是包含性术语,其包含(举例来说)拷贝、传送及/或传输数据值。在各种实施例中,数据移动的路径的实例可包含将所请求数据块从NVM数据存储资源226移动236到SSD内MM OS高速缓冲存储器资源224中的SSD内MM OS高速缓冲存储器225-0、225-1、...、225-N-1中的至少一者。所述请求可包含NVM数据存储资源226所存储的一或多个数据块的地址,且一或多个数据块可从NVM数据存储资源226移动到SSD内MM OS高速缓冲存储器225-0、225-1、...、225-N-1中的一或多者。
SSD内MM OS高速缓冲存储器225-0、225-1、...、225-N-1中的每一者可对应于SSD内MM OS高速缓冲存储器资源224(例如,DRAM阵列)的行(例如,行231-0、231-1、...、231-N-1)及/或列(未展示)中的若干个存储器单元。每一SSD内MM OS高速缓冲存储器的大小(例如,其中的存储器单元的数目)可为固定的或可变的,例如,取决于所请求数据中的位数。
当利用一个以上SSD内MM OS高速缓冲存储器来高速缓存所请求数据时,高速缓冲存储器可以各种方式布置于SSD内MM OS高速缓冲存储器资源224的存储器阵列中。举例来说,多个SSD内MM OS高速缓冲存储器(例如,225-0及225-1)可连续地定位于单个行(例如,行231-0)中及/或以下如下方式定位于单个行(例如,行231-0)中:行231-0中的任何地方的SSD内MM OS高速缓冲存储器之间均具有未利用存储器单元,例如,如由OS 203所选择。在一些实施例中,多个SSD内MM OS高速缓冲存储器(例如,225-2及225-3)可类似地定位于垂直定向的两个或多于两个行(例如,行231-2及231-3)中。在一些实施例中,多个SSD内MM OS高速缓冲存储器(例如,225-4及225-N-1)可类似地定位于对角地定向的两个或多于两个行(例如,行231-3及231-N-1)中。在一些实施例中,SSD内MM OS高速缓冲存储器225可对应于结合图1所展示及描述的SSD内MM OS页高速缓冲存储器127。SSD内MM OS高速缓冲存储器资源224中的SSD内MM OS高速缓冲存储器的此些定向的各种组合以及其它被涵盖在且保持处于本发明的范围内。
经配置以高速缓存具有各种大小及/或定位(例如,如由控制器220基于OS 203所选择的SSD内MM OS高速缓冲存储器所确定)的SSD内MM OS高速缓冲存储器225中的所请求块及/或所请求数据块的部分有助于对所请求数据的移动及/或执行操作的粒度。举例来说,单个所请求数据页(例如,四千字节)可含有多个所请求数据块,在一些实施例中,所述多个所请求数据块可由多个相应SSD内MM OS高速缓冲存储器(例如,225-0、225-1、...、225-N-1)存储。所请求数据块中的每一者可对应于所请求块将被存储于的一或多个相应SSD内MM OS高速缓冲存储器的大小(例如,以位为单位)。在一些实施例中,SSD内MM OS高速缓冲存储器中所存储及/或所高速缓存的数据可经存取而以(举例来说)64字节(512个位)的倍数以及其它可能性的粒度直接移动138到CPU内部高速缓冲存储器112,所述粒度可对应于CPU处理器高速缓冲存储器线的大小。举例来说,尽管可存取及/或移动238数据页(例如,由SSD内MM OS高速缓冲存储器资源224的行231中的所有存储器单元所存储,且可对应于几千字节),但在一些情况中,所存取及/或移动238的数据可具有更精细粒度,例如,64字节。在一些实施例中,OS 203可利用与SSD内MM OS高速缓冲存储器资源224及/或NVM数据存储资源226介接的SSD内MM OS高速缓冲存储器查找表(未展示)(例如,基数树)来加快查找例程。在一些实施例中,查找表的介接可经由DIMM而做出。
所请求数据被移动到OS 203所选择的特定SSD内MM OS高速缓冲存储器225及/或由OS 203所选择的特定SSD内MM OS高速缓冲存储器225高速缓存可使得对特定SSD内MM OS高速缓冲存储器225中所高速缓存的数据的读取操作能够由OS 203引导。另一选择为或另外,所请求数据处于特定所选择SSD内MM OS高速缓冲存储器225中可使得对特定SSD内MMOS高速缓冲存储器225中所高速缓存的数据的写入操作能够由OS 203引导。所请求数据处于特定所选择SSD内MM OS高速缓冲存储器225中可使得所请求数据能够从所选择SSD内MMOS高速缓冲存储器225移动,以使得能够执行由OS 203引导的若干个操作。
此外,在一些实施例中,例如数学运算、逻辑操作等操作可由SSD 204(例如,控制器220及/或逻辑电路123)执行,以确定移动到所选择SSD内MM OS高速缓冲存储器225及/或由所选择SSD内MM OS高速缓冲存储器225高速缓存的所请求数据是否将被移动到主机***202(例如,以供存储在其高速缓冲存储器中),或所请求数据是否将保持处于所选择SSD内MM OS高速缓冲存储器225中。举例来说,对所请求数据是否将保持处于所选择SSD内MM OS高速缓冲存储器225中的确定可为所请求数据是将保持由所选择SSD内MM OS高速缓冲存储器225存储(例如)且不被移动到主机***202,还是将被从所选择SSD内MM OS高速缓冲存储器225擦除(例如,保持平衡)而不管所选择数据是否被移动到主机***202。
在图2A中所图解说明的路径230中,可从OS 203(例如,经由装置驱动器218)发送对数据块的请求234(例如,基于使用所述数据来执行应用程序操作的所起始用户应用程序)以打开并读取NVM数据存储资源226(例如,3D XPoint阵列)所存储的数据块,例如,数据文件。OS 203可在将对数据块的请求234发送到NVM数据存储资源226之前、基本上与此同时及/或在此之后引导SSD内MM OS高速缓冲存储器资源224中的若干个SSD内MM OS高速缓冲存储器225的创建。OS 203可响应于读取及/或写入调用(例如,与特定高速缓冲存储器属性一致)而引导所请求数据块从NVM数据存储资源226到用于高速缓存所请求数据的若干个所选择SSD内MM OS高速缓冲存储器225(例如,页高速缓冲存储器)中的移动236(例如,拷贝、传送及/或传输操作),如本文中所描述。所选择SSD内MM OS高速缓冲存储器225可存储及/或高速缓存所请求数据块以供由主机***202存取及/或移动238到主机***202以使得能够执行操作。在各种实施例中,发送请求234、创建SSD内MM OS高速缓冲存储器资源224中的SSD内MM OS高速缓冲存储器225、从NVM数据存储资源226移动数据块及/或由主机***202存取及/或移动238到主机***202可受装置驱动器218及/或控制器220控制及/或由装置驱动器218及/或控制器220引导。
OS 203所执行的例程可(例如)通过接收到高速缓冲存储器未命中信号而确定使得能够执行操作的所请求数据块未被可易于存取高速缓冲存储器(例如,CPU内部高速缓冲存储器112、CPU外部高速缓冲存储器114及/或主机MM 116的主机MM内OS高速缓冲存储器117)存储。接着,例程可(例如)通过接收到高速缓冲存储器命中信号而确定所请求数据块存储及/或高速缓存于SSD 204中的SSD内MM OS高速缓冲存储器资源224的SSD内MM OS高速缓冲存储器225中,例如,作为先前被从NVM数据存储资源226移动236的结果。因此,OS 203可直接存取SSD内MM OS高速缓冲存储器225中的数据块及/或引导数据块从SSD内MM OS高速缓冲存储器225的移动238,(例如)以供由CPU 110的若干个处理器使用。在一些实施例中,数据块可依序在SSD内MM OS高速缓冲存储器225及/或多个SSD内MM OS高速缓冲存储器(例如,225-0、225-1、...、225-N-1)中进行存取及/或从SSD内MM OS高速缓冲存储器225及/或多个SSD内MM OS高速缓冲存储器(例如,225-0、225-1、...、225-N-1)移动。
举例来说,本揭示内容与将所请求数据从SSD存储装置传送到DIMM存储器之间的差异是:如本文中所描述,所请求数据块的初始目的地是配置为主机MM 116的一部分的SSD204的SSD内MM OS高速缓冲存储器225。经由并非SSD 204的一部分的DIMM(例如,DIMM是连接到计算装置的主板)将所请求数据块无条件地传送到主机MM 116的主机MM内OS高速缓冲存储器117明显与在将所请求数据块可选择地移动到主机***202中的额外主要存储器资源中的至少一者之前将所请求数据块首先移动到为主机MM 116的一部分的SSD内MM OS高速缓冲存储器225形成对比。如本文中所描述,所请求数据块可从SSD内MM OS高速缓冲存储器125直接移动138到操作为CPU 110的处理器高速缓冲存储器的CPU内部高速缓冲存储器112。另一选择为或另外,在各种实施例中,所请求数据块可从SSD内MM OS高速缓冲存储器125移动到CPU外部高速缓冲存储器114及/或主机MM 116的主机MM内OS高速缓冲存储器117,如本文中所描述。
举例来说,NVM数据存储资源226与SSD内MM OS高速缓冲存储器资源224中的SSD内MM OS高速缓冲存储器225之间可存在较短距离,这与NVM数据存储资源226与可由OS 203寻址(例如,在由DIMM连接时)的主机MM 116的主机MM内OS高速缓冲存储器117之间的直接移动105相比可有助于较短存取等待时间及/或移动时间。与直接从NVM数据存储资源226存取所请求数据(例如,100-50纳秒(ns))相比,从SSD 204的SSD内MM OS高速缓冲存储器资源224中的SSD内MM OS高速缓冲存储器225存取所请求数据可具有较短固有等待时间,例如,50ns。直接从NVM数据存储资源226存取数据的等待时间可进一步受是否将对数据执行读取或写入操作影响。因此,存取SSD内MM OS高速缓冲存储器225中的所请求数据(例如,用于执行读取操作或写入操作)可进一步有助于减小固有等待时间。
图2B是根据本发明的若干个实施例的图解说明用于数据移动操作的另一路径240的图式。图2B中所展示的主机***202、OS 203、装置驱动器218、SSD 204、控制器220、SSD内MM OS高速缓冲存储器资源224、SSD内MM OS高速缓冲存储器225-0、225-1、...、225-5及/或NVM数据存储资源226组件可对应于图1及2A中的类似地编号的组件。因此,在各种实施例中,这些组件中的每一者可表示由结合图1及2A以及本文中其它地方所展示及描述的对应组件体现且所述对应组件中所含有的功能性的至少一部分。
图2B中所展示的路径240图解说明所请求数据块先前未被SSD内MM OS高速缓冲存储器资源224的SSD内MM OS高速缓冲存储器225存储及/或高速缓存(例如,如通过OS 203及/或装置驱动器218响应于对数据块的请求234而接收到高速缓冲存储器未命中信号而确定)的实例。作为响应,在一些实施例中,OS 203可借助输出241 NVM数据存储资源226中的所请求数据块(例如,块245)的地址及/或输出对在所请求数据块上执行的操作(如由装置驱动器218引导)的请求及/或指令(命令)而起始所请求数据块的I/O例程。如本文中所描述,一些实施例可经配置用于将所请求数据输入248到主机***202中的主要存储器资源(例如,可由OS 203寻址的主机MM 116),如由装置驱动器218所引导。
此类命令可引导若干个所请求数据块245从NVM数据存储资源226到SSD 204的SSD内MM OS高速缓冲存储器资源224中的若干个所选择SSD内MM OS高速缓冲存储器(例如,225-0、225-1、...、225-N-1)的移动236。在一些实施例中,装置驱动器218可经由SSD 204的控制器220而引导数据到SSD 204中的移动、在SSD 204内的移动及/或从SSD 204的移动的执行,控制器220可选择地耦合到SSD内MM OS高速缓冲存储器资源224及NVM数据存储资源226。举例来说,控制器可引导所请求数据从NVM数据存储资源226到SSD内MM OS高速缓冲存储器资源224的移动236,例如,而非如可在其它实施方案中进行的直接105移动到可由OS203寻址的主机MM 116的主机MM内OS高速缓冲存储器117。
所请求数据到SSD内MM OS高速缓冲存储器资源224中的所选择SSD内MM OS高速缓冲存储器225的移动可导致I/O例程更新查找表信息以记录所移动数据的位置,例如,所移动数据被高速缓存于SSD内MM OS高速缓冲存储器225-0、225-1、...、225-N-1中的哪一者中。在各种实施例中,如本文中所描述,在所请求数据移动到主机***202的高速缓冲存储器之前、在此期间及/或在此之后,及/或不管所请求数据是否移动到主机***的高速缓冲存储器,所请求数据可保持处于所记录位置中。
因此,在各种实施例中,本发明可经实施如下。注意,(举例来说)图2A及2B中所指示的操作可依序及/或基本上同时执行,这是因为相应所图解说明路径230及240的执行可经由SSD 204的控制器220及/或与OS 203相关联的装置驱动器218个别地控制。因此,各种操作可经由硬件、固件及/或软件的协作而并行执行。除其它优点之外,操作的此并行执行可加快相关联路径(例如,路径230及240)的执行。
在各种实施例中,如本文中所描述,SSD 204可包含SSD内MM OS高速缓冲存储器资源224、NVM数据存储资源226及互连件106-3,例如,如结合图1的将NVM耦合到VM的接口(例如,PCIe)电路108所展示及描述。SSD还可包含控制器220,所述控制器经配置以接收对执行操作的请求234,且引导在SSD内MM OS高速缓冲存储器资源224中可作为SSD内MM OS高速缓冲存储器225而存取执行操作的结果。装置驱动器218可将请求234发送到控制器220。请求234可由控制器220从与OS 203相关联的装置驱动器218接收。请求234可包含NVM数据存储资源226所存储的数据块245的块地址243。
在各种实施例中,请求234可包含高速缓冲存储器属性。如本文中所描述,高速缓冲存储器属性打算指用于将数据的副本至少临时地存储在存储媒体中(例如,以供由处理器执行操作)的若干个高速缓存选项中的一者。在各种实施例中,存储媒体可为一或多个SSD内MM OS高速缓冲存储器,例如,如在125及225-0、225-1、...、225-N-1处所展示及分别结合图1及2A-2B所描述,且处理器可为CPU,例如,如在110处所展示及结合图1所描述。SSD内MM OS高速缓冲存储器可比大容量数据存储装置(举例来说,在SSD 204的NVM数据存储资源226中)更易于由处理器存取。高速缓冲存储器属性的实例可包含写合并(WC)、写保护(WP)、回写(WB)、直写(WT)、绕写(WA)、强不可缓存(UC)及/或不可缓存(UC-),以及此项技术中已知的其它选项。
高速缓冲存储器属性可被指派给对读取操作的请求234及/或包含在对读取操作的请求234中。举例来说,高速缓冲存储器属性可设定为WP可缓存,例如,在CPU内部高速缓冲存储器112、CPU外部高速缓冲存储器114、主机MM 116的主机MM内OS高速缓冲存储器117及/或SSD内MM OS高速缓冲存储器资源224的SSD内MM OS高速缓冲存储器225中。高速缓冲存储器属性可被指派给对写入操作的请求234及/或包含在对写入操作的请求234中。在对写入操作的一些请求中,高速缓冲存储器属性可设定为WC以供与(举例来说)写合并缓冲区(未展示)一起使用。在对写入操作的一些请求中,高速缓冲存储器属性可设定为WB以供与(举例来说)SSD内MM OS高速缓冲存储器资源224的SSD内MM OS高速缓冲存储器225中所执行的写入操作及所写入数据到CPU内部高速缓冲存储器112、CPU外部高速缓冲存储器114、主机MM 116的主机MM内OS高速缓冲存储器117及/或NVM数据存储资源226的回写一起使用。
当请求读取操作时,装置驱动器218及/或控制器220可确定读取请求已发出且可基于相关联高速缓冲存储器属性而转送用于执行读取操作的命令。在其中请求写入操作的情况中,装置驱动器218及/或控制器220可确定写入请求已发出且可基于相关联高速缓冲存储器属性而转送用于执行写入操作的命令。
因此,响应于请求234中的第一所指派高速缓冲存储器属性,控制器220可经配置以引导对移动到SSD内MM OS高速缓冲存储器资源224(例如,DRAM)中的SSD内MM OS高速缓冲存储器225的数据执行读取操作。响应于请求234中的第二所指派高速缓冲存储器属性,控制器220可进一步经配置以引导对移动到SSD内MM OS高速缓冲存储器资源224(例如,DRAM)中的SSD内MM OS高速缓冲存储器225的数据执行写入操作,其中第一所指派高速缓冲存储器属性不同于第二所指派高速缓冲存储器属性。
由于从(举例来说)SSD 104的NVM数据存储资源226检索的用于读取操作的数据可高速缓存于与SSD内MM OS高速缓冲存储器资源224相关联的SSD内MM OS高速缓冲存储器225中,因此可改进数据的处理速度。举例来说,处理速度可接近数据被从主机MM 116(例如,DRAM)提供到CPU 110的处理器的速度。针对写入操作可实现处理速度的类似改进。
如本文中所描述,在一些实施例中,SSD 204可包含DRAM,例如,若干个DRAM阵列,如SSD内MM OS高速缓冲存储器资源224及如NVM数据存储资源226的3D XPoint存储器。控制器220可经配置以接收对移动SSD 204所存储的数据的请求234,且引导所请求数据移动236到DRAM中的SSD内MM OS高速缓冲存储器225。所移动数据可作为数据块而存储于SSD内MMOS高速缓冲存储器资源224中,例如,一或多个SSD内MM OS高速缓冲存储器225-0、225-1、...、225-N-1中,如本文中所描述。举例来说,SSD内MM OS高速缓冲存储器可定位于DRAM中的存储器单元的单个行及/或单个列中,或在一些实施例中跨越多个行及/或列(例如,对角地)而定位。
在一些实施例中,PCIe总线可用作OS 203、装置驱动器218、控制器220与DRAM之间的通信接口以形成PCIe电路,例如,作为包含互连件106-1、106-2及106-3的接口电路108。PCIe总线可进一步用作DRAM与3D XPoint存储器之间的通信接口(例如,经由互连件106-4)以形成PCIe电路。
控制器220可进一步经配置以引导将所请求数据块245从NVM数据存储资源226中的块地址移动到SSD内MM OS高速缓冲存储器资源224中的所选择SSD内MM OS高速缓冲存储器,例如,由OS 203从SSD内MM OS高速缓冲存储器225-0、225-1、...、225-N-1所选择。在一些实施例中,执行操作可包含将NVM数据存储资源226所存储的数据移动到SSD内MM OS高速缓冲存储器资源224及由SSD内MM OS高速缓冲存储器225存储数据。
控制器220可进一步经配置以可选择地将操作(例如,读取及/或写入操作)的结果从SSD内MM OS高速缓冲存储器资源224的SSD内MM OS高速缓冲存储器225移动到主机***202。如本文中所描述,可选择地移动操作的结果打算包含在以下各项之间进行选择:移动结果以供存储在主机***202的高速缓冲存储器(例如,主机MM内OS高速缓冲存储器117)中;及将结果移动到在主机***102的处理资源(例如,CPU 110)内部的高速缓冲存储器(例如,CPU内部高速缓冲存储器112)而不被所述内部高速缓冲存储器存储,以使得能够执行由OS 203引导的特定操作。
控制器220可进一步经配置以(例如)经由装置驱动器218而通知247 OS 203:将所请求数据块从NVM数据存储资源226移动236到SSD内MM OS高速缓冲存储器资源224中的SSD内MM OS高速缓冲存储器225。控制器220可进一步经配置以(例如)经由装置驱动器218而通知247 OS 203:操作的执行完成。
控制器220可进一步经配置以接收对SSD 204所存储的数据的请求234、依据所述请求而确定所请求数据存储245在NVM数据存储资源226(例如,3D XPoint存储器)中的块地址处、引导所请求数据从3D XPoint存储器中的块地址到DRAM中的SSD内MM OS高速缓冲存储器225的移动236,及引导所请求数据由DRAM中的SSD内MM OS高速缓冲存储器225存储。控制器220可进一步经配置以接收对DRAM中的SSD内MM OS高速缓冲存储器225所存储的数据的请求234,且引导数据从SSD内MM OS高速缓冲存储器225的移动,以使得能够执行如由请求数据的OS 203引导的特定操作。可从OS 203及/或CPU 110接收对DRAM中的SSD内MM OS高速缓冲存储器225所存储的数据的请求234。所请求数据可从SSD内MM OS高速缓冲存储器225移动238到主机***202,例如,到CPU内部高速缓冲存储器112及/或CPU外部高速缓冲存储器114以使得能够由CPU 110进行处理。
在发送对移动DRAM中的SSD内MM OS高速缓冲存储器225所存储的所请求数据的请求234之前,OS 203可经配置以(例如)通过接收到高速缓冲存储器未命中信号而确定所请求数据未被主机***202的高速缓冲存储器存储,且(例如)通过接收到高速缓冲存储器命中信号而确定所请求数据由DRAM中的SSD内MM OS高速缓冲存储器225存储。另一选择为或另外,在从3D XPoint存储器中的块地址移动所请求数据之前,控制器可经配置以确定所请求数据目前未被SSD内MM OS高速缓冲存储器225存储。如果所请求数据目前由SSD内MM OS高速缓冲存储器225存储,或所请求数据移动236到SSD内MM OS高速缓冲存储器225,那么控制器220可进一步经配置以通知247 OS203:可在SSD内MM OS高速缓冲存储器225中存取所请求数据块。在一些实施例中,如本文中所描述,控制器220可进一步经配置以引导所请求数据从SSD内MM OS高速缓冲存储器225到主机***202的移动238以使得能够通过执行OS203所存储的指令而进行处理。举例来说,所请求数据可直接移动238到主机***202的处理器高速缓冲存储器(例如,CPU内部高速缓冲存储器112)以使得能够执行特定操作,且所请求数据不发送到主机***202的另一高速缓冲存储器(例如,CPU外部高速缓冲存储器114及/或主机MM内OS高速缓冲存储器117)及/或由所述另一高速缓冲存储器存储。
因此,控制器220可进一步经配置以共同管理SSD内MM OS高速缓冲存储器资源224(例如,DRAM,以及其它类型的VM)及NVM数据存储资源226(例如,3D XPoint存储器,以及其它类型的NVM)以用于如由OS 203引导的数据迁移。在一些实施例中,控制器220可包含逻辑电路123,例如,如图1中所展示及结合图1所描述。逻辑电路123可经配置以(例如)通过阈值比较操作而确定从OS 203接收的对SSD 204所存储的特定数据的请求234是否满足阈值。所述阈值可应用于一操作属性,所述操作属性可从若干个操作属性选择。举例来说,操作属性可包含请求的数目、请求的频率(例如,在特定时间长度中)、请求的大小(例如,由若干个位所定义)、针对特定数据的请求的时序(例如,在特定时段中)及/或主机***的空闲存储器容量,例如,低空闲存储器容量可影响数据是否保留在特定SSD内MM OS高速缓冲存储器225中而非移动到主机***202以及其它可能操作属性。
如果请求不满足(例如,低于)第一阈值,那么控制器220及/或逻辑电路123可进一步经配置以确定:所请求数据从SSD内MM OS高速缓冲存储器资源224中的特定SSD内MM OS高速缓冲存储器225移动到主机***202以使得(例如)连接到OS 203的CPU 110能够执行特定操作,且在执行操作期间及/或在执行操作之后,所请求数据不被主机***202的高速缓冲存储器(例如,若干个CPU内部高速缓冲存储器112、CPU外部高速缓冲存储器114及/或主机MM内OS高速缓冲存储器117)存储。在一些实施例中,当所请求数据未被主机***202的高速缓冲存储器存储时,所请求数据可保持由特定SSD内MM OS高速缓冲存储器225存储。因此,所请求数据的存储目的地可为特定SSD内MM OS高速缓冲存储器225。
如果请求满足(例如,等于或高于)第一阈值,那么控制器220及/或逻辑电路123可进一步经配置以确定:所请求数据被从特定SSD内MM OS高速缓冲存储器225移动以由主机***202的高速缓冲存储器(例如,若干个CPU内部高速缓冲存储器112、CPU外部高速缓冲存储器114及/或主机MM内OS高速缓冲存储器117)存储。在一些实施例中,当请求满足第一阈值时,在所请求数据移动到主机***202的高速缓冲存储器及/或由主机***202的高速缓冲存储器存储时,所请求数据可不保持由特定SSD内MM OS高速缓冲存储器225存储。因此,所请求数据的存储目的地可为主机***202的特定高速缓冲存储器。
另一选择为或另外,如果请求不满足(例如,低于)第二阈值,那么控制器220及/或逻辑电路123可进一步经配置以确定:所请求数据从SSD内MM OS高速缓冲存储器资源224中的特定SSD内MM OS高速缓冲存储器移动到主机***202以使得能够执行特定操作(例如,如由OS 203所引导),且所请求数据此后不被特定SSD内MM OS高速缓冲存储器225存储。因此,在一些实施例中,当请求不满足第二阈值时,所请求数据可不保持由特定SSD内MM OS高速缓冲存储器225存储,且所请求数据因不满足第一阈值而不被主机***202的高速缓冲存储器存储。因此,所请求数据可不被特定SSD内MM OS高速缓冲存储器225或主机***202的高速缓冲存储器存储,但所请求数据保持由NVM数据存储资源226存储。
如果请求满足(例如,等于或高于)第二阈值,那么控制器220及/或逻辑电路123可进一步经配置以确定所请求数据此后被特定SSD内MM OS高速缓冲存储器225存储以使得主机***202的OS 203能够存取所存储的所请求数据。因此,所请求数据的存储目的地可为特定SSD内MM OS高速缓冲存储器225。
第二阈值以及任何数目个阈值可应用于与第一阈值的操作属性相同或不同的操作属性。在一些实施例中,与由第二阈值所指示的数值或其它额定值相比,用于特定操作属性的第一阈值可具有更高的指示OS 203对所请求数据的利用的数值或其它额定值。举例来说,如果对所请求数据的请求的数目满足第一阈值,那么所请求数据可由主机***202的高速缓冲存储器存储,而非在所述数目不满足第一阈值时保持由特定SSD内MM OS高速缓冲存储器225存储。请求的数目满足较低第二阈值可用于确定所请求数据保持由特定SSD内MMOS高速缓冲存储器225存储,而请求的数目不满足第二阈值可用于确定所请求数据不被特定SSD内MM OS高速缓冲存储器225或主机***202的高速缓冲存储器存储。在一些实施例中,可针对每一类型的请求(例如,针对数据移动、读取操作及/或写入操作)而确定特定阈值。
本文中所描述的实施例提供操作第一设备的方法,所述第一设备可呈计算***100的形式,所述计算***包含OS 203、SSD内MM OS高速缓冲存储器资源224、SSD内MM OS高速缓冲存储器225、NVM数据存储资源226及接口电路108以及其它可能组件,例如,如图1及2A-2B中所展示及结合图1及2A-2B所描述。在各种实施例中,计算***100可包含:DRAM,其操作为SSD内MM OS高速缓冲存储器资源224、耦合到作为NVM数据存储资源226的3D XPoint存储器,NVM数据存储资源226操作为辅助数据存储资源;及接口电路108(例如,PCIe总线),其操作为OS 203、DRAM SSD内MM OS高速缓冲存储器资源224与3D XPoint存储器数据存储资源226之间的通信接口。如本文中所描述,方法可包含:相对于由第二设备执行的相同类型的操作,利用第一设备来缩短针对利用第一设备来执行的操作的数据移动的等待时间。
在各种实施例中,操作的类型可从数据移动操作、读取操作及/或写入操作以及其它操作进行选择。相对于由第二设备执行的操作而缩短等待时间可包含利用经配置使得DRAM不经由PCIe总线而互连到3D XPoint存储器的第二设备。另一选择为或另外,例如,与第一设备针对OS 203经配置以经由PCIe总线而存取DRAM中的数据相比,缩短等待时间可包含利用经配置以经由存储器总线而存取3D XPoint存储器中的数据以用于移动到DIMM的第二设备。
在一些实施例中,相对于由第二设备执行的相同类型的操作而缩短等待时间可包含缩短对由DRAM SSD内MM OS高速缓冲存储器资源224存储的数据执行的写入操作。举例来说,可利用本文中所描述的接口电路108来使得能够对由SSD内MM OS高速缓冲存储器225存储的数据执行写入操作(这可有助于执行写入操作),且使得后续能够将结果移动到主机***202的高速缓冲存储器,例如,CPU内部高速缓冲存储器112、CPU外部高速缓冲存储器114及/或主机MM内OS高速缓冲存储器117。此WB操作可以第二设备所利用的时间的大约一半时间执行,所述第二设备具有由DIMM直接连接的NVM数据存储资源226(例如,3D XPoint存储器)以用于将相等数目个数据位传送到L1、L2、L3及/或L4高速缓冲存储器及/或主机MM内OS高速缓冲存储器117。
与使用3D XPoint存储器的其它方法相比,本发明可提供若干益处。利用本文中所描述的计算***100可帮助克服关于“脏”高速缓冲存储器线的潜在问题。举例来说,脏高速缓冲存储器线(例如,L1、L2、L3、L4、主机MM内OS高速缓冲存储器117及/或牺牲高速缓冲存储器)可存储与由3D XPoint存储器存储的对应数据值不同的数据值。相比之下,本文中所描述的SSD内MM OS高速缓冲存储器225可高速缓存直接从3D XPoint存储器检索的数据值,使得由SSD内MM OS高速缓冲存储器225存储的数据值与由3D XPoint存储器存储的数据值相同。
因此,本发明描述提供充当SSD内MM OS高速缓冲存储器资源224的主要存储器及充当NVM数据存储资源226的辅助存储装置的两者的SSD 204。如此配置的SSD 204连同本文中所描述的接口电路108一起可加快对OS 203所请求的数据块的检索,例如,在OS203接收到高速缓冲存储器未命中信号时。如此配置的SSD 204使得能够共同管理SSD内MM OS高速缓冲存储器资源224(例如,DRAM)及NVM数据存储资源226(例如,3D XPoint存储器)。在各种实施例中,本文中所描述的装置驱动器218及/或控制器220可通过引导OS 203所请求的数据迁移而有助于共同管理。
尽管本文中已图解说明且描述了特定实施例,但所属领域的技术人员将了解,旨在实现相同结果的布置可替代所展示的特定实施例。本发明打算涵盖本发明的一或多个实施例的更改或变化形式。应理解,已以说明性方式而非限制性方式做出以上说明。所属领域的技术人员在审阅以上说明后即刻将明了上述实施例的组合及本文中未具体描述的其它实施例。本发明的一或多个实施例的范围包含其中使用以上结构及方法的其它应用。因此,本发明的一或多个实例的范围应参考所附权利要求书连同此权利要求书授权的等效物的全部范围来确定。
在前述具体实施方式中,出于简化本发明的目的,将一些特征一起聚集于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比每一权利要求中明确陈述的特征多的特征的意图。而是,如所附权利要求书反映,发明性标的物在于少于单个所揭示实施例的所有特征。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求独立地作为单独实施例。
Claims (20)
1.一种设备,其包括:
固态装置SSD,其中所述SSD包括:
SSD内易失性存储器;
非易失性存储器;
互连件,其将所述非易失性存储器耦合到所述SSD内易失性存储器;及
控制器,其经配置以:
接收对执行操作的请求;及
引导可在作为SSD内主存储器MM操作***高速缓冲存储器的所述SSD内易失性存储器中存取所述操作的所述执行的结果。
2.根据权利要求1所述的设备,其中:
所述请求是从装置驱动器接收的;且
所述装置驱动器与操作***相关联。
3.根据权利要求1所述的设备,其中所述控制器进一步经配置以引导将所请求数据块从所述非易失性存储器中的块地址移动到所述SSD内易失性存储器中的所述SSD内MM操作***高速缓冲存储器。
4.根据权利要求1所述的设备,其中所述控制器进一步经配置以可选择地将所述操作的所述结果从所述SSD内易失性存储器的所述SSD内MM操作***高速缓冲存储器移动到主机***。
5.根据权利要求4所述的设备,其中可选择地移动所述操作的所述结果包括在以下各项之间进行选择:
移动所述结果以供存储在所述主机***的高速缓冲存储器中;及
将所述结果移动到在所述主机***的处理资源内部的高速缓冲存储器而不被所述高速缓冲存储器存储,以使得能够执行由操作***引导的特定操作。
6.根据权利要求1所述的设备,其中所述控制器进一步经配置以:
通知与操作***相关联的装置驱动器:将所请求数据块从所述非易失性存储器移动到所述SSD内易失性存储器中的所述SSD内MM操作***高速缓冲存储器;及
通知所述操作***:所述操作的所述执行完成。
7.根据权利要求1到6中任一权利要求所述的设备,其中所述操作的所述执行包括:
将所述非易失性存储器所存储的数据移动到所述SSD内易失性存储器;及
将所述数据存储在所述SSD内MM操作***高速缓冲存储器中。
8.根据权利要求1到6中任一权利要求所述的设备,其中所述设备进一步包括:
操作***,其配置为主机***的一部分,所述主机***包括:
中央处理单元CPU;
主机MM,其包含主机易失性存储器;及
作为所述主机易失性存储器的一部分的主机MM内操作***高速缓冲存储器。
9.一种设备,其包括:
固态装置SSD,其中所述SSD包括:
作为SSD内易失性存储器资源的动态随机存取存储器DRAM;
非易失性存储器资源;及
控制器,其经配置以:
接收对移动所述SSD内易失性存储器资源所存储的数据的请求;及
引导将所请求数据从所述SSD内易失性存储器资源的SSD内主存储器MM操作***高速缓冲存储器直接移动到在主机***的处理资源内部的高速缓冲存储器,以使得能够执行特定操作。
10.根据权利要求9所述的设备,其中响应于所述请求中的第一所指派高速缓冲存储器属性,所述控制器进一步经配置以引导对所述SSD内易失性存储器资源中的所述SSD内MM操作***高速缓冲存储器所存储的数据执行读取操作。
11.根据权利要求9到10中任一权利要求所述的设备,其中响应于所述请求中的第二所指派高速缓冲存储器属性,所述控制器进一步经配置以引导对所述SSD内易失性存储器资源中的所述SSD内MM操作***高速缓冲存储器所存储的数据执行写入操作。
12.一种设备,其包括:
固态装置SSD,其中所述SSD包括:
作为SSD内易失性存储器资源的动态随机存取存储器DRAM:
作为非易失性存储器资源的3D XPoint存储器;及
控制器,其经配置以:
接收对所述SSD所存储的数据的请求;
依据所述请求而确定所述所请求数据存储在所述3D XPoint存储器中的块地址处;
引导将所述所请求数据从所述3D XPoint存储器中的所述块地址移动到所述DRAM中的SSD内主存储器MM操作***高速缓冲存储器;及
引导由所述DRAM中的所述SSD内MM操作***高速缓冲存储器存储所述所请求数据。
13.根据权利要求12所述的设备,其中所述控制器进一步经配置以:
接收对所述DRAM中的SSD内MM操作***高速缓冲存储器所存储的数据的请求;及
引导所述数据从所述SSD内MM操作***高速缓冲存储器的移动,以使得能够执行由请求所述数据的操作***引导的特定操作。
14.根据权利要求12所述的设备,其中将所述所请求数据从所述SSD内MM操作***高速缓冲存储器直接移动到主机***的处理器高速缓冲存储器。
15.根据权利要求12到14中任一权利要求所述的设备,其中从所述SSD内MM操作***高速缓冲存储器移动所述数据以供存储在主机***的高速缓冲存储器中。
16.根据权利要求12到14中任一权利要求所述的设备,其中所述控制器进一步经配置以:
在从所述3D XPoint存储器中的所述块地址移动所述所请求数据之前;
确定所述所请求数据目前未被SSD内操作***高速缓冲存储器存储。
17.根据权利要求12到14中任一权利要求所述的设备,其中所述控制器进一步经配置以:
从操作***接收对移动所述SSD内MM操作***高速缓冲存储器所存储的所述所请求数据的请求;及
引导将所述所请求数据从所述SSD内MM操作***高速缓冲存储器移动到主机***,以使得能够进行由所述操作***引导的处理;且
其中所述经移动的所请求数据未被所述主机***的高速缓冲存储器存储。
18.一种方法,其包括:
利用第一设备,所述第一设备包括:
动态随机存取存储器DRAM,其作为SSD内主存储器MM操作***高速缓冲存储器资源、耦合到作为数据存储资源的3D XPoint存储器;及
***组件互连高速PCIe总线,其作为操作***、所述DRAM SSD内MM操作***高速缓冲存储器资源与所述3D XPoint存储器数据存储资源之间的通信接口;及
相对于由第二设备执行的操作而缩短针对利用所述第一设备来执行的操作的数据移动的等待时间。
19.根据权利要求18所述的方法,其中相对于由所述第二设备执行的所述操作而缩短所述等待时间包括利用经配置使得所述DRAM不经由所述PCIe总线而互连到所述3D XPoint存储器的所述第二设备。
20.根据权利要求18到19中任一权利要求所述的方法,其中相对于由所述第二设备执行的所述操作而缩短所述等待时间包括利用经配置以经由存储器总线而存取所述3DXPoint存储器中的数据以用于移动到双列直插式存储器模块DIMM的所述第二设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/296,188 | 2016-10-18 | ||
US15/296,188 US10452598B2 (en) | 2016-10-18 | 2016-10-18 | Apparatuses and methods for an operating system cache in a solid state device |
PCT/US2017/055845 WO2018075290A1 (en) | 2016-10-18 | 2017-10-10 | Apparatuses and methods for an operating system cache in a solid state device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109891397A true CN109891397A (zh) | 2019-06-14 |
Family
ID=61903870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780064521.5A Withdrawn CN109891397A (zh) | 2016-10-18 | 2017-10-10 | 用于固态装置中的操作***高速缓冲存储器的设备及方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10452598B2 (zh) |
CN (1) | CN109891397A (zh) |
WO (1) | WO2018075290A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111433749B (zh) | 2017-10-12 | 2023-12-08 | 拉姆伯斯公司 | 具有dram高速缓存的非易失性物理存储器 |
KR102549346B1 (ko) * | 2018-07-24 | 2023-06-28 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 및 그의 메타 데이터 액세스 방법 |
KR20210045506A (ko) | 2018-09-17 | 2021-04-26 | 마이크론 테크놀로지, 인크. | 하이브리드 듀얼 인-라인 메모리 모듈에서의 캐시 작업 |
US11494306B2 (en) | 2019-09-20 | 2022-11-08 | Micron Technology, Inc. | Managing data dependencies in a transfer pipeline of a hybrid dimm |
US11531622B2 (en) | 2019-09-20 | 2022-12-20 | Micron Technology, Inc. | Managing data dependencies for out of order processing in a hybrid DIMM |
CN111831451A (zh) * | 2020-07-21 | 2020-10-27 | 平安科技(深圳)有限公司 | 云主机内存分配方法及云主机、设备及存储介质 |
US20230289096A1 (en) * | 2022-03-09 | 2023-09-14 | Micron Technology, Inc. | Performance in a fragmented memory system |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1950804A (zh) * | 2004-03-08 | 2007-04-18 | 桑迪士克股份有限公司 | 闪速存储器控制器高速缓存架构 |
CN101573760A (zh) * | 2007-01-22 | 2009-11-04 | 美光科技公司 | 具有处于相同分级层级的易失性及非易失性存储器装置的存储器***及方法 |
US8458402B1 (en) * | 2010-08-16 | 2013-06-04 | Symantec Corporation | Decision-making system and method for improving operating system level 2 cache performance |
US20130191578A1 (en) * | 2012-01-20 | 2013-07-25 | Seagate Technology Llc | Storing cached data in over-provisioned memory in response to power loss |
CN103336745A (zh) * | 2013-07-01 | 2013-10-02 | 无锡众志和达存储技术股份有限公司 | 一种基于ssd缓存的fc hba及其设计方法 |
US8645594B2 (en) * | 2012-06-29 | 2014-02-04 | Intel Corporation | Driver-assisted base address register mapping |
CN103703450A (zh) * | 2011-07-20 | 2014-04-02 | 华为技术有限公司 | Ssd存储访问的方法和装置 |
CN104503707A (zh) * | 2014-12-24 | 2015-04-08 | 华为技术有限公司 | 读取数据的方法以及装置 |
CN105550127A (zh) * | 2015-12-08 | 2016-05-04 | 中电海康集团有限公司 | 一种基于stt-mram的读写缓存分离的ssd控制器 |
US20160232112A1 (en) * | 2015-02-06 | 2016-08-11 | Futurewei Technologies, Inc. | Unified Memory Bus and Method to Operate the Unified Memory Bus |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5586291A (en) | 1994-12-23 | 1996-12-17 | Emc Corporation | Disk controller with volatile and non-volatile cache memories |
US8296534B1 (en) | 2007-06-29 | 2012-10-23 | Emc Corporation | Techniques for using flash-based memory in recovery processing |
US8880835B2 (en) * | 2009-07-07 | 2014-11-04 | International Business Machines Corporation | Adjusting location of tiered storage residence based on usage patterns |
US8464106B2 (en) * | 2009-08-24 | 2013-06-11 | Ocz Technology Group, Inc. | Computer system with backup function and method therefor |
US20110072192A1 (en) | 2009-09-24 | 2011-03-24 | Agiga Tech Inc. | Solid state memory wear concentration |
EP2598998A4 (en) * | 2010-07-27 | 2014-10-15 | Freescale Semiconductor Inc | DEVICE AND METHOD FOR MINIMIZING PROCESS LIST |
US9734059B2 (en) * | 2012-11-21 | 2017-08-15 | Advanced Micro Devices, Inc. | Methods and apparatus for data cache way prediction based on classification as stack data |
US9311266B2 (en) | 2013-06-14 | 2016-04-12 | National Instruments Corporation | Hidden base address register programming in peripheral component interconnect express buses |
GB2520729A (en) * | 2013-11-29 | 2015-06-03 | Ibm | Data processing apparatus and method |
US9099183B2 (en) * | 2013-12-23 | 2015-08-04 | Intel Corporation | Program VT spread folding for NAND flash memory programming |
US20150279472A1 (en) * | 2014-03-26 | 2015-10-01 | Intel Corporation | Temperature compensation via modulation of bit line voltage during sensing |
NO2988221T3 (zh) * | 2014-06-27 | 2018-01-06 | ||
US10747676B2 (en) * | 2016-02-23 | 2020-08-18 | Sandisk Technologies Llc | Memory-efficient object address mapping in a tiered data structure |
-
2016
- 2016-10-18 US US15/296,188 patent/US10452598B2/en active Active
-
2017
- 2017-10-10 WO PCT/US2017/055845 patent/WO2018075290A1/en active Application Filing
- 2017-10-10 CN CN201780064521.5A patent/CN109891397A/zh not_active Withdrawn
-
2019
- 2019-07-12 US US16/509,790 patent/US10866921B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1950804A (zh) * | 2004-03-08 | 2007-04-18 | 桑迪士克股份有限公司 | 闪速存储器控制器高速缓存架构 |
CN101573760A (zh) * | 2007-01-22 | 2009-11-04 | 美光科技公司 | 具有处于相同分级层级的易失性及非易失性存储器装置的存储器***及方法 |
US8458402B1 (en) * | 2010-08-16 | 2013-06-04 | Symantec Corporation | Decision-making system and method for improving operating system level 2 cache performance |
CN103703450A (zh) * | 2011-07-20 | 2014-04-02 | 华为技术有限公司 | Ssd存储访问的方法和装置 |
US20130191578A1 (en) * | 2012-01-20 | 2013-07-25 | Seagate Technology Llc | Storing cached data in over-provisioned memory in response to power loss |
US8645594B2 (en) * | 2012-06-29 | 2014-02-04 | Intel Corporation | Driver-assisted base address register mapping |
CN103336745A (zh) * | 2013-07-01 | 2013-10-02 | 无锡众志和达存储技术股份有限公司 | 一种基于ssd缓存的fc hba及其设计方法 |
CN104503707A (zh) * | 2014-12-24 | 2015-04-08 | 华为技术有限公司 | 读取数据的方法以及装置 |
US20160232112A1 (en) * | 2015-02-06 | 2016-08-11 | Futurewei Technologies, Inc. | Unified Memory Bus and Method to Operate the Unified Memory Bus |
CN105550127A (zh) * | 2015-12-08 | 2016-05-04 | 中电海康集团有限公司 | 一种基于stt-mram的读写缓存分离的ssd控制器 |
Also Published As
Publication number | Publication date |
---|---|
US20190332567A1 (en) | 2019-10-31 |
US10866921B2 (en) | 2020-12-15 |
WO2018075290A1 (en) | 2018-04-26 |
US20180107595A1 (en) | 2018-04-19 |
US10452598B2 (en) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10372612B2 (en) | Apparatuses and methods for compute enabled cache | |
US11580038B2 (en) | Quasi-volatile system-level memory | |
CN109891397A (zh) | 用于固态装置中的操作***高速缓冲存储器的设备及方法 | |
US20200081848A1 (en) | Storage device and system | |
JP5282187B2 (ja) | 大容量記憶装置を接続するための階層型メモリアーキテクチャ | |
US8954672B2 (en) | System and method for cache organization in row-based memories | |
KR102321221B1 (ko) | 버퍼 상에서 메모리 동작을 제어하기 위한 장치 및 방법 | |
US11281585B2 (en) | Forward caching memory systems and methods | |
JP2011118469A (ja) | メモリ管理装置およびメモリ管理方法 | |
KR20100133288A (ko) | 계층적 메모리 구조를 위한 메모리 장치 | |
EP3757800A1 (en) | Memory system, computing system, and methods thereof | |
CN112639748B (zh) | 异步正向缓存存储器***和方法 | |
US20210286551A1 (en) | Data access ordering for writing-to or reading-from memory devices | |
US20170109277A1 (en) | Memory system | |
CN110537172B (zh) | 混合存储器模块 | |
US10452313B2 (en) | Apparatuses and methods for multiple address registers for a solid state device | |
US20200293452A1 (en) | Memory device and method including circular instruction memory queue | |
KR20220050177A (ko) | 3단의 계층적 메모리 시스템 | |
US11941299B2 (en) | MRAM access coordination systems and methods via pipeline in parallel | |
US20220011966A1 (en) | Reduced network load with combined put or get and receiver-managed offset | |
US8374040B2 (en) | Write bandwidth in a memory characterized by a variable write time | |
CN113490915A (zh) | 扩展存储器操作 | |
CN114258534B (zh) | 阶层式存储器*** | |
US20210034286A1 (en) | Memory system for data swap and operating method thereof | |
US20220188228A1 (en) | Cache evictions management in a two level memory controller mode |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190614 |
|
WW01 | Invention patent application withdrawn after publication |