一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用PCIe连接的远存储器的存储器分层的制作方法

2022-03-31 11:13:03 来源:中国专利 TAG:

使用pcie连接的远存储器的存储器分层
技术领域
1.本公开的实施例大体上涉及存储器子系统,且更确切地说,涉及使用pcie连接的远存储器的存储器分层。


背景技术:

2.存储器子系统可以是存储系统、存储器模块,例如双列直插式存储器模块(dimm)、小型dimm(so-dimm)或存储装置和存储器模块的混合。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可为例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统以在存储器组件处存储数据并且从存储器组件检索数据。
附图说明
3.根据下文给出的详细描述且根据本公开的各种实施例的附图将更加充分地理解本公开。
4.图1示出根据本公开的一些实施例的包含存储器子系统的实例计算环境。
5.图2为示出根据本公开的一些实施例的具有可经由pcie总线存取的存储器映射的存储组件的存储器子系统的框图,所述存储器映射的存储组件具有数据到高速缓冲存储器组件的dma迁移。
6.图3为根据本公开的一些实施例的使用pcie连接的远存储器的主机侧存储器分层的实例方法的流程图。
7.图4为根据本公开的一些实施例的使用pcie连接的远存储器的存储器侧存储器分层的实例方法的流程图。
8.图5为示出根据本公开的一些实施例的主机系统与实施用于pcie连接的远存储器的nvme直接虚拟化的存储器子系统之间的实例物理主机接口的框图。
9.图6示出根据本公开的一些实施例的用于具有pcie连接的远存储器的存储器子系统的套接字层次结构和拓扑结构。
10.图7为本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
11.本公开的各方面涉及使用外围组件互连高速(pcie)连接的远存储器的存储器子系统中的存储器分层。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可以利用包含一或多个存储器组件的存储器子系统。主机系统可提供要存储在存储器子系统处的数据,且可请求要从存储器子系统检索的数据。
12.存储器子系统可包含可存储来自主机系统的数据的多个存储器组件。每一存储器组件可包含相同或不同类型的媒体。媒体的实例包含但不限于易失性动态随机存取存储器
(dram)或静态随机存取存储器(sram)、非易失性存储器的交叉点阵列和基于快闪的存储器,例如单层级单元(slc)存储器、多层级单元(mlc)存储器、三层级单元(tlc)存储器或四层级单元(qlc)存储器。不同类型的媒体的特性在一种媒体类型与另一媒体类型之间可不同。与存储器组件相关联的特性的一个实例为数据密度。数据密度对应于可存储于存储器组件的每一存储器单元中的数据量(例如,数据位)。存储器组件的特性的另一实例为存取速度。存取速度对应于存取存储于存储器组件处的数据所需的时间量。存储器组件的其它特性可与存储器组件的耐久性相关联以存储数据。当对存储器组件的存储器单元写入数据和/或从其擦除数据时,存储器单元可能会损坏。随着对存储器单元执行的写入操作和/或擦除操作的次数增加,存储于存储器单元处的数据包含错误的概率增加,且存储器单元逐渐损坏。
13.在某些存储器子系统中,用作主存储器的存储媒体可具有某些缺点,例如具有较慢存取时间,由此在服务于数据存取请求时造成等待时间。因此,这些存储器子系统可实施高速缓冲存储器以使用不同类型的存储媒体临时存储频繁存取的数据。举例来说,高速缓冲存储器可使用具有较快存取时间的媒体实施,以便减少与主机数据存取相关联的等待时间。利用两种类型的存储媒体的这些存储器系统可被称为“混合”存储器系统。使用高速和昂贵的动态随机存取存储器(dram)的混合存储器子系统(例如,作为低成本但可用于非易失性存储器的较慢交叉点阵列的高速缓冲存储器)例如可允许存储器子系统在每一位成本降低的情况下具有增加的存储器容量,同时仍维持所要性能水平(即,减少的等待时间)。非易失性存储器的交叉点阵列可使用通常可使用固定大小的数据块寻址的永久性存储器装置形成,所述固定大小的数据块可由虚拟存储器页表示。
14.利用此混合方法的常规存储器子系统通常必须处理对不同存储器组件的数据存取以及不同存储器组件之间的数据传送。某些系统利用减小用于存储虚拟存储器页的物理存储器空间的量的存储器压缩技术。经压缩数据可存储在高速缓冲存储器(即,近存储器)或主存储器(即,远存储器)中,以增加存储器子系统中的总容量。这些经压缩存储器页被标记为不可存取的,使得存取经压缩页的尝试可触发页错误。作为响应,存储器子系统可从远存储器检索数据且在将数据提供到请求者之前解压缩所述数据。因此,系统处理器可由于与压缩/解压缩、处理页错误等等相关联的开销而遭受性能损失,且引入额外等待时间来影响对主机的服务。其它常规存储器子系统可具有经由双倍数据速率(ddr)总线连接到处理装置的近存储器和远存储器两者。在此方法中,由于ddr总线的带宽相对较窄,存储器带宽可能会遭受显著损失,并且近存储器与远存储器之间的页迁移可能在损害处理器和/或存储器控制器循环的情况下进行。某些解决方案还需要额外硬件组件以避免严重性能不足。
15.本公开的各方面通过使用外围组件互连高速(pcie)连接的远存储器在存储器子系统中实施存储器分层来解决以上和其它不足。在一个实施方案中,存储器子系统包含远存储器组件(即,存储器映射的存储组件),例如经由pcie总线连接到系统处理器和/或存储器控制器的非易失性存储器的交叉点阵列。因此,可以使用具有已知加载/存储语义的pcie命令,通过存储器映射的输入/输出(mmio)寻址方案来存取远存储器。在此类mmio寻址方案中,远存储器和近存储器(例如,潜在地用作远存储器的高速缓冲存储器的dram装置)两者可共享同一虚拟地址空间。因此,由处理器发出并指定特定数据地址的存储器存取命令可以被引导到存储器子系统中的近存储器或远存储器。另外,pcie连接的远存储器可包含直
接存储器存取(dma)引擎,以经由单独信道将数据异步地移动到近存储器和从近存储器异步地移动数据。举例来说,dma引擎可请求将来自近存储器的冷页(即,已不频繁地或不在最近存取的数据)迁移到用于长期存储的远存储器。类似地,dma引擎可将热页(即,已频繁地或在最近存取的数据)从远存储器传送到近存储器。数据的这些直接迁移避免占用系统处理器和其它资源,所述系统处理器和其它资源可替代地用于其它操作。此外,存储器子系统可支持允许主机系统中的不同虚拟机与存储器子系统共享单个pcie接口的原生虚拟化。因此,代替主机系统中执行虚拟化的pcie根复合体,存储器子系统自身可以实施虚拟化,而不需要主机系统的虚拟机监控程序或其它软件参与。主机系统将多个物理功能解译为可被分配到主机操作系统或分配到在其上运行的多个虚拟机中的一者的单独物理存储装置。以此方式,主机上的多个实体可以以完全透明的方式共享单个底层存储资源。
16.由于未在所公开的存储器分层方案中利用压缩和解压缩,因此随着避免与此类压缩和解压缩操作相关联的处理装置利用开销而改进存储器子系统和主机系统性能。另外,由于近存储器和远存储器两者均为可直接寻址的,因此系统并不经历页错误并且避免相关联的处理,由此减少与近存储器与远存储器之间的页迁移相关联的等待时间。此外,通过执行自主数据温度监测,远存储器防止系统处理器必须执行基于软件的页温度跟踪,所述基于软件的页温度跟踪可能一开始就不够精细和准确。
17.图1示出根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件130到140。存储器组件130到1140可为易失性存储器组件、非易失性存储器组件或此类组件的组合。存储器子系统110可为存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器以及硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm)和非易失性双列直插式存储器模块(nvdimm)。
18.计算环境100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用存储器子系统110,例如用于将数据写入到存储器子系统110和从存储器子系统110读取数据。如本文中所使用,“耦合到”通常指代组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有中间组件),无论有线还是无线,包含例如电连接、光学连接、磁性连接等等的连接。
19.主机系统120可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、嵌入式计算机(例如,包含在车辆、工业设备或联网的商业装置中的计算机),或包含存储器和处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入所述存储器子系统。主机系统120可以经由物理主机接口耦合到存储器子系统110。如本文中所使用,“耦合到”通常指代组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有中间组件),无论有线还是无线,包含例如电连接、光学连接、磁性连接等等的连接。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行连接的scsi(sas)等等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统
120可以进一步利用nvm高速(nvme)接口来存取存储器组件130到140。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。
20.存储器组件130到140可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。举例来说,存储器组件130可基于动态随机存取存储器(dram)或某一其它类型的易失性存储器而被用作近存储器。在一个实施方案中,存储器组件140可基于非易失性存储器单元或某一其它类型的非易失性存储器的交叉点阵列而被用作远存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器不同,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。非易失性存储器组件的另一实例包含“与非”(nand)型快闪存储器。存储器组件中的每一个可包含一或多个存储器单元阵列,所述存储器单元例如单层级单元(slc)或多层级单元(mlc)(例如,三层级单元(tlc)或四层级单元(qlc))。在一些实施例中,特定存储器组件可包含存储器单元的slc部分和mlc部分两者。存储器单元中的每一个可存储由主机系统120使用的一或多个数据位(例如,数据块)。尽管描述例如nand型快闪存储器等非易失性存储器组件,但存储器组件可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件可为但不限于随机存取存储器(ram)、只读存储器(rom)、同步动态随机存取存储器(sdram)、相变存储器(pcm)、磁性随机存取存储器(mram)、“或非”(nor)快闪存储器或电可擦除可编程只读存储器(eeprom)。此外,存储器组件130到140的存储器单元可分组为存储器页或数据块,其可指代用于存储数据的存储器组件的单元。数据块可进一步分组成存储器组件130到140中的每一个上的一或多个平面,其中可同时对平面中的每一个执行操作。来自不同平面的对应数据块可在一带区中彼此相关联,而非横跨多个平面。
21.存储器系统控制器115(下文称为“控制器”)可与存储器组件130到140通信以执行操作,例如在存储器组件130到140处读取数据、写入数据或擦除数据,以及其它此类操作。控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。控制器115可为微控制器、专用逻辑电路(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等等)或其它合适的处理器。控制器115可包含经配置以执行存储于本地存储器119中的指令的处理器(处理装置)117。在所示出的实例中,控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流和例程。在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据、计数器118等等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110示出为包含控制器115,但在本公开的另一实施例中,存储器子系统110可以不包含控制器115,而是可以依赖于(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。
22.一般来说,控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或适当命令,以实现对存储器组件130到140的所要存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作以及在与存储器组件130到140相关联的逻辑块地址与物理块地址之间的地址转换。控制器115可进一步包含主机接口电路,以经由物理主机接口与主机系统120通信。主机
接口电路可将从主机系统接收到的命令转换成命令指令以存取存储器组件130到140,以及将与存储器组件130到140相关联的响应转换成用于主机系统120的信息。
23.存储器子系统110还可包含未示出的额外电路或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,dram)和地址电路(例如,行解码器和列解码器),其可从控制器115接收地址且对地址进行解码以存取存储器组件130到140。
24.在一个实施方案中,远存储器组件140(和/或相关联的控制器115)经由pcie总线连接到主机系统120。因此,主机系统(和/或相关联的控制器115)可通过使用mmio寻址方案发送引导到远存储器组件140的主机可寻址区域的数据存取命令来存取远存储器组件140,其中使用已知的加载/存储语义指定命令。在另一实施例中,可使用用于加速器的高速缓存一致性互连(ccix)来存取远存储器组件140。在此类mmio(或ccix)寻址方案中,近存储器组件130和远存储器组件140两者可共享同一虚拟地址空间。因此,由主机系统120发出并指定特定数据地址的存储器存取命令可以被引导到存储器子系统110中的近存储器组件130或远存储器组件140。另外,pcie连接的远存储器140可包含dma 142引擎,以经由单独信道将数据异步地移动到近存储器组件130和从所述近存储器组件异步地移动数据。举例来说,主机系统中的迁移代理122可识别近存储器组件130上的冷页(即,已不频繁地或不在最近存取的数据),且可将对应迁移命令发送到dma引擎142。dma引擎142可起始那些冷页从近存储器组件130到用于长期存储的远存储器组件140的dma传送。类似地,页温度跟踪器146(例如,在远存储器组件上的固件中实施)可识别远存储器组件130上的热页(即,已频繁地或在最近存取的数据)且可通知那些热页的迁移代理122。迁移代理122可将对应迁移命令发送到dma引擎142,且dma引擎142可起始那些热页从远存储器组件140到近存储器组件130的dma传送。数据的这些直接迁移避免利用主机系统120和控制器115的资源,所述资源替代地可同时用于其它操作。下文描述关于迁移代理122、dma引擎142和页温度跟踪器146的操作的进一步细节。
25.图2为示出根据本公开的一些实施例的具有可经由pcie总线存取的存储器映射的存储组件140的存储器子系统的框图,所述存储器映射的存储组件具有数据到高速缓冲存储器组件130的dma迁移。在一个实施方案中,主机操作系统220经由通信总线250以操作方式与近存储器130和远存储器140耦合。如上文所描述,可例如使用dram实施近存储器130,以向由应用程序224、226或主机操作系统220或主机系统120的其它组件进行的存储器存取请求提供高性能和低等待时间。在一个实施方案中,近存储器130可充当临时存储数据的高速缓冲存储器,所述数据可稍后迁移到用于长期存储的远存储器140。远存储器140可为例如使用非易失性存储器的交叉点阵列实施的存储器映射的存储组件。在一个实施方案中,近存储器130和远存储器140的主机可寻址区域234和244可共享公共地址空间,从而使得远存储器140可通过使用加载/存储语义指定的数据存取命令进行寻址。在一个实施方案中,通信总线250包含用于在主机操作系统220、近存储器130和远存储器140之间传送数据和/或命令的一或多个单独物理总线。举例来说,通信总线250可包含ddr总线、pcie总线、nvme总线或这些和/或其它总线的组合。在一个实施方案中,主机操作系统220经由ddr总线以操作方式与近存储器130耦合,且主机操作系统220经由pcie总线以操作方式与远存储器140耦合。
26.在一个实施方案中,主机操作系统220在例如主机系统120的计算装置上运行。主
机操作系统220可包含数个组件,例如迁移代理122、应用程序224、226和存储器管理器228。未图示以便不混淆本公开的主机操作系统220的这些和其它组件可由例如主机系统120的中央处理单元(cpu)等处理装置执行。作为其正常操作的部分,应用程序224、226可请求存储器子系统中的存储器空间,包含近存储器130(即,高速缓冲存储器)和远存储器140(即,存储器映射的存储装置)。响应于此类请求,存储器管理器228可在近存储器130中分配对应地址空间。此所分配地址空间可表示为一或多个存储器页。
27.存储器管理器228可进一步将一或多个存储器页的指示存储在页表232中。在一个实施方案中,页表232存储在近存储器130中且由存储器管理器228控制。页表232可包含存储由主机操作系统220使用的虚拟存储器地址与存储器页存储在近存储器130和远存储器140中的物理存储器地址之间的映射的数据结构。举例来说,页表232可包含对应于每一存储器页的条目,所述条目包含用于所述存储器页的虚拟存储器地址和物理存储器地址。由于近存储器130和远存储器140两者共享单个地址空间(即,分别为主机可寻址存储器区域234和244),因此远存储器140中的物理存储器地址也可在页表232中表示。在一个实施方案中,页表232进一步存储对应于映射到近存储器130中的物理存储器地址的每一存储器页的额外元数据,例如存储器页的数据存取的数目、数据存取的频率或最近数据存取。映射到远存储器140中的物理存储器地址的存储器页可能不具有存储在页表232中的此类元数据。当在近存储器130中分配新页时,存储器管理器228可将条目添加到页表228,且可在将存储器页迁移到远存储器140或迁移回到近存储器130时更新所述条目,如下文更详细地描述。另外,在初始化主机操作系统220或连接到远存储器140后,存储器管理器228可从远存储器140接收播发主机可寻址存储器区域244的物理地址范围的消息。存储器管理器228可维持页表232中的此物理地址范围的指示。
28.在一个实施方案中,迁移代理122可监测存储在近存储器130的主机可寻址存储器区域234中的存储器页的数据温度。数据温度可根据数个参数中的任一个进行测量。参数可包含例如引导到给定存储器页的数据存取的数目、数据存取的频率或数据存取的新近度。因此,在一个实施方案中,每当由应用程序224、226中的一个存取(例如,读取或写入)给定存储器页时,迁移代理122可使计数器递增。在另一实施方案中,迁移代理122可确定在给定时间段(例如,最后一分钟、最后一小时、最后24小时)中发生多少次那些数据存取。在另一实施方案中,迁移代理122可维持指示何时发生最近数据存取或自从给定存储器页的最近数据存取以来已经过多少时间的时戳或其它值。在一个实施方案中,可使用这些或其它参数中的两个或更多个的组合来测量数据温度。
29.在一个实施方案中,迁移代理122确定给定存储器页是否满足与存储器页的数据温度有关的阈值准则。举例来说,迁移代理122可将所确定的存储器页的数据温度与对应于上文所描述的各种参数的一或多个阈值进行周期性地比较。如果迁移代理122确定数据存取的数目或给定时间段内的数据存取的数目低于(或等于)某一阈值,或自从最近数据存取以来经过的时间高于(或等于)某一阈值,则迁移代理122可确定给定存储器页满足阈值准则。此类存储器页可被认为“冷的”,且预期在近期不会由应用程序224、226再次存取。在一个实施方案中,迁移代理122可将指示冷存储器页的对应迁移命令发送到远存储器140上的dma引擎146。此迁移命令可使得dma引擎146起始冷存储器页从近存储器130到远存储器140的主机可寻址存储器区域244的dma传送。迁移代理122可进一步通知存储器管理器228迁移
且使得存储器管理器228用新物理地址更新对应于页表232中的冷存储器页的条目,其中冷存储器页存储在远存储器140的主机可寻址存储器区域244中。迁移代理122可周期性地针对映射到近存储器130的每一存储器页执行类似分析,且按需要发送对应迁移命令。如果迁移代理122确定给定存储器页并不满足阈值准则(即,存储器页为“热的”且预期在近期由应用程序224、226再次存取),则迁移代理122可将存储器页维持在近存储器130的主机可寻址存储器区域234中。
30.在一个实施方案中,远存储器140包含页温度跟踪器组件,其监测存储在远存储器140的主机可寻址存储器区域244中的存储器页的数据温度。数据温度可根据上文所描述的相同参数中的任一个或使用这些或其它参数中的两个或更多个的组合进行测量。在一个实施方案中,页温度跟踪器142确定给定存储器页是否满足与存储器页的数据温度有关的阈值准则。举例来说,页温度跟踪器142可将所确定的存储器页的数据温度与对应于上文所描述的各种参数的一或多个阈值进行周期性地比较。如果页温度跟踪器142确定数据存取的数目或给定时间段内的数据存取的数目超过(或等于)某一阈值,或自从最近数据存取以来经过的时间低于(或等于)某一阈值,则页温度跟踪器142可确定给定存储器页满足阈值准则。此类存储器页可被认为“热的”,且预期在近期由应用程序224、226再次存取。在一个实施方案中,页温度跟踪器142将热存储器页的指示发送到主机操作系统220中的迁移代理122。作为响应,迁移代理122可将指示热存储器页的对应迁移命令发送到远存储器140上的dma引擎146。此迁移命令可使得dma引擎146起始热存储器页从远存储器140到近存储器130的主机可寻址存储器区域234的dma传送。迁移代理122可进一步通知存储器管理器228迁移且使得存储器管理器228用新物理地址更新对应于页表232中的热存储器页的条目,其中热存储器页存储在近存储器130的主机可寻址存储器区域234中。页温度跟踪器142可周期性地针对映射到远存储器140的每一存储器页执行类似分析,且按需要将对应指示发送到迁移代理122。如果页温度跟踪器142确定给定存储器页并不满足阈值准则(即,存储器页为“冷的”且预期在近期不会由应用程序224、226再次存取),则页温度跟踪器142可将存储器页维持在远存储器140的主机可寻址存储器区域244中。
31.图3为根据本公开的一些实施例的使用pcie连接的远存储器的主机侧存储器分层的实例方法的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等等)、软件/固件(例如,在处理装置上运行或执行的指令)、固件或其组合。在一些实施例中,方法300由图1和2的迁移代理122和存储器管理器228执行。虽然以特定顺序或次序来展示,但是除非另外指定,否则可修改过程的次序。因此,所说明的实施例应理解为仅作为实例,且所说明的过程可以不同次序执行,并且一些过程可并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非在每一实施例中需要所有过程。其它过程流程是可能的。
32.在操作310处,处理逻辑经由pcie总线250发送引导到存储器映射的存储组件(即,远存储器140)的主机可寻址区域244的数据存取命令。在一个实施方案中,高速缓冲存储器组件(即,近存储器130)和存储器映射的存储组件(即,远存储器140)的主机可寻址区域234和244可共享公共地址空间,从而使得存储器映射的存储组件可通过使用加载/存储语义指定的数据存取命令进行寻址。数据存取命令可例如由应用程序224、226或主机操作系统220或主机系统120的其它组件发出,且可包含读取请求、写入请求或其它请求。
33.在操作320处,处理逻辑监测存储于高速缓冲存储器组件(即,近存储器130)的主机可寻址区域234中的多个存储器页的数据温度。在一个实施方案中,迁移代理122可根据数个参数中的任一个监测数据温度,所述参数例如为引导到给定存储器页的数据存取的数目、数据存取的频率或数据存取的新近度。因此,在一个实施方案中,每当由应用程序224、226中的一个存取(例如,读取或写入)给定存储器页时,迁移代理122可使计数器递增。在另一实施方案中,迁移代理122可确定在给定时间段(例如,最后一分钟、最后一小时、最后24小时)中发生多少次那些数据存取。在另一实施方案中,迁移代理122可维持指示何时发生最近数据存取或自从给定存储器页的最近数据存取以来已经过多少时间的时戳或其它值。在一个实施方案中,可使用这些或其它参数中的两个或更多个的组合来测量数据温度。
34.在操作330处,处理逻辑确定多个存储器页中的第一存储器页是否满足与第一存储器页的数据温度有关的第一阈值准则。在一个实施方案中,迁移代理122可将所确定的第一存储器页的数据温度与对应于上文所描述的各种参数的一或多个阈值进行周期性地比较。如果迁移代理122确定数据存取的数目或给定时间段内的数据存取的数目低于(或等于)某一阈值,或自从最近数据存取以来经过的时间高于(或等于)某一阈值,则迁移代理122可确定给定存储器页满足阈值准则。此类存储器页可被认为“冷的”,且预期在近期不会由应用程序224、226再次存取。如果第一存储器页不满足第一阈值准则,则处理逻辑返回到操作320以继续监测存储器页的数据温度。
35.如果第一存储器页满足第一阈值准则,则在操作340处,处理逻辑将指示第一存储器页的第一迁移命令发送到在存储器映射的存储组件(即,远存储器140)上执行的dma引擎146。在一个实施方案中,第一迁移命令使得dma引擎146起始第一存储器页从高速缓冲存储器组件(即,近存储器130)到存储器映射的存储组件的主机可寻址区域244的第一dma传送。在操作350处,处理逻辑更新维持于高速缓冲存储器组件(即,近存储器130)中的页表232,以指示第一存储器页存储于存储器映射的存储组件(即,远存储器140)的主机可寻址区域244中的地址。
36.在操作360处,处理逻辑从存储器映射的存储组件(即,远存储器140)接收存储于存储器映射的存储组件的主机可寻址区域244中的第二存储器页满足与第二存储器页的数据温度有关的第二阈值准则的指示。在一个实施方案中,迁移代理122从存储器映射的存储组件的页温度跟踪器142接收指示。
37.在操作370处,处理逻辑将指示第二存储器页的第二迁移命令发送到在存储器映射的存储组件(即,远存储器140)上执行的dma引擎146。在一个实施方案中,第二迁移命令使得dma引擎146起始第二存储器页从存储器映射的存储组件的主机可寻址区域244到高速缓冲存储器组件(即,近存储器130)的第二dma传送。在操作380处,处理逻辑更新维持于高速缓冲存储器组件(即,近存储器130)中的页表232,以指示第二存储器页存储于高速缓冲存储器组件的主机可寻址区域234中的地址。
38.图4为根据本公开的一些实施例的使用pcie连接的远存储器的存储器侧存储器分层的实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等等)、软件/固件(例如,在处理装置上运行或执行的指令)、固件或其组合。在一些实施例中,方法300由图1和2的页温度跟踪器142和dma引擎146执行。虽然以特定顺序或次序来展示,但是除非另外指定,否则
可修改过程的次序。因此,所说明的实施例应理解为仅作为实例,且所说明的过程可以不同次序执行,并且一些过程可并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非在每一实施例中需要所有过程。其它过程流程是可能的。
39.在操作410处,处理逻辑将表示存储器映射的存储装置(即,远存储器140)的主机可寻址区域244的地址范围播发到主机系统120。在一个实施方案中,主机系统120将存储器映射的存储装置的主机可寻址区域244的指示维持于存储在高速缓冲存储器装置(即,近存储器130)中的页表232中。
40.在操作420处,处理逻辑监测存储于存储器映射的存储装置(即,远存储器140)的主机可寻址区域244中的多个存储器页的数据温度。在一个实施方案中,存储器映射的存储装置包含页温度跟踪器组件142,其根据数个参数中的任一个监测存储于存储器映射的存储装置的主机可寻址存储器区域244中的存储器页的数据温度,所述参数例如为引导到给定存储器页的数据存取的数目、数据存取的频率或数据存取的新近度。因此,在一个实施方案中,每当由应用程序224、226中的一个存取(例如,读取或写入)给定存储器页时,温度跟踪器142可使计数器递增。在另一实施方案中,迁移代理122可确定在给定时间段(例如,最后一分钟、最后一小时、最后24小时)中发生多少次那些数据存取。在另一实施方案中,迁移代理122可维持指示何时发生最近数据存取或自从给定存储器页的最近数据存取以来已经过多少时间的时戳或其它值。在一个实施方案中,可使用这些或其它参数中的两个或更多个的组合来测量数据温度。
41.在操作430处,处理逻辑确定多个存储器页中的第一存储器页是否满足与第一存储器页的数据温度有关的第一阈值准则。在一个实施方案中,页温度跟踪器142确定给定存储器页是否满足与存储器页的数据温度有关的阈值准则。举例来说,页温度跟踪器142可将所确定的存储器页的数据温度与对应于上文所描述的各种参数的一或多个阈值进行周期性地比较。如果页温度跟踪器142确定数据存取的数目或给定时间段内的数据存取的数目超过(或等于)某一阈值,或自从最近数据存取以来经过的时间低于(或等于)某一阈值,则页温度跟踪器142可确定给定存储器页满足阈值准则。此类存储器页可被认为“热的”,且预期在近期由应用程序224、226再次存取。如果第一存储器页不满足第一阈值准则,则处理逻辑返回到操作420以继续监测存储器页的数据温度。
42.如果第一存储器页满足第一阈值准则,则在操作440处,处理逻辑将第一存储器页满足第一阈值准则的指示发送到主机系统120上执行的迁移代理122。在操作450处,处理逻辑从主机系统120上执行的迁移代理122接收第一迁移命令,所述第一迁移命令指示第一存储器页。在操作460处,响应于接收到第一迁移命令,处理逻辑起始第一存储器页从存储器映射的存储装置(即,远存储器140)到以操作方式与主机系统120耦合的高速缓冲存储器装置(即,近存储器130)的第一dma传送。
43.在操作470处,处理逻辑从主机系统120上执行的迁移代理122接收第二迁移命令,所述第二迁移命令指示存储在高速缓冲存储器装置(即,近存储器130)的主机可寻址区域234中的第二存储器页。在一个实施方案中,存储器映射的存储装置(即,远存储器140)的dma引擎146从迁移代理122接收第二迁移命令。在操作480处,响应于接收到第二迁移命令,处理逻辑起始第二存储器页从高速缓冲存储器装置到存储器映射的存储装置的主机可寻址区域244的第二dma传送。
44.图5示出根据本公开的一些实施例的主机系统120与实施用于pcie连接的远存储器的nvme直接虚拟化的存储器子系统之间的实例物理主机接口。在一个实施例中,存储器子系统110的控制器115经由物理主机接口(例如,pcie总线510)连接到主机系统120。在一个实施例中,在控制器115上运行的nvme虚拟化模块513产生并管理控制器115内(或直接在远存储器140内)的数个虚拟nvme控制器502到508。虚拟nvme控制器502到508为虚拟实体,所述虚拟实体呈现为对通过与每一虚拟nvme控制器502到508相关联的物理功能512到518连接到pcie总线510的其它装置(例如,主机系统120)的物理控制器。图5示出四个虚拟nvme控制器502到508和四个对应物理功能512到518。然而,在其它实施例中,可存在任何其它数目个nvme控制器,每一nvme控制器具有对应物理功能。所有虚拟nvme控制器502到508具有相同的优先级和相同的功能性。
45.虚拟nvme控制器502到508中的每一个管理与其相关联的底层远存储器组件140的对应部分的存储存取操作。举例来说,虚拟nvme控制器502可经由pcie总线510从主机系统120接收数据存取请求,包含对远存储器组件140的第一部分中的读取、写入或擦除数据的请求。响应于所述请求,虚拟nvme控制器502可对存储在第一部分中的所识别地址处的数据执行所请求的存储器存取操作,且按需要将所请求的数据和/或确认或错误消息返回到主机系统120。虚拟nvme控制器504到508可相对于对其自身的远存储器组件140的对应部分的数据存取请求以相同或类似方式起作用。
46.如上文所描述,nvme虚拟化模块513使物理功能512到518中的一个与虚拟nvme控制器502到508中的每一个相关联,以便允许每一虚拟nvme控制器502到508呈现为pcie总线510上的物理控制器。举例来说,物理功能512可对应于虚拟nvme控制器502,物理功能514可对应于虚拟nvme控制器504,物理功能516可对应于虚拟nvme控制器506,且物理功能518可对应于虚拟nvme控制器508。物理功能512到518为可类似于任何其它pcie装置而被发现、管理和操控的完全特征pcie功能,且因此可用于配置和控制pcie装置(例如,虚拟nvme控制器502到508)。每一物理功能512到518可具有与其相关联的一些数目个虚拟功能。虚拟功能是与物理功能以及与所述物理功能相关联的虚拟功能共享一或多个资源的轻量pcie功能。每一虚拟功能具有pci存储器空间,所述pci存储器空间用于映射其寄存器组。虚拟功能装置驱动器在寄存器组上操作以实现其功能性,且虚拟功能呈现为可由主机系统120经由pcie总线510存取的实际pcie装置。
47.如上所述,每一物理功能512到518可被分配到主机系统120中的虚拟机532到536中的任一个。当在虚拟nvme控制器502到508处从虚拟机532到536接收i/o数据时,虚拟机驱动器提供用于对应读取/写入命令的客户机物理地址。nvme虚拟化模块113将物理功能数目转换为总线、装置和功能(bdf)数目,且接着将命令添加到直接存储器存取(dma)操作以对客户机物理地址执行dma操作。在一个实施例中,控制器115进一步将客户机物理地址变换为用于存储器子系统110的系统物理地址。
48.此外,每一物理功能512到518可在特权模式或正常模式中实施。当在特权模式中实施时,物理功能具有单个管理点,其可控制针对在正常模式中实施的其它功能的资源操控和存储配置。另外,特权模式中的物理功能可执行管理选项,包含例如启用/停用多个物理功能、存储配置和服务质量(qos)配置、固件和控制器更新、供应商特有的统计数据和事件、诊断、安全擦除/加密等。通常,第一物理功能可实施特权模式,且物理功能的其余部分
可实施正常模式。然而,在其它实施例中,物理功能中的任一个可经配置以在特权模式中操作。因此,可存在以特权模式运行的一或多个功能。
49.主机系统120通过在硬件上方和虚拟机下方执行软件层524(通常称为“虚拟机监控程序”)来运行多个虚拟机532、534、536,如在图5中示意性地展示。在一个说明性实例中,虚拟机监控程序524可为由主机系统120执行的主机操作系统220的组件。替代地,虚拟机监控程序524可由在主机操作系统220下运行的应用程序提供,或可在不具有其下方的操作系统的情况下直接在主机系统120上运行。虚拟机监控程序524可抽象化物理层,包含处理器、存储器和i/o装置,且将此抽象化作为虚拟装置(包含虚拟处理器、虚拟存储器和虚拟i/o装置)呈现给虚拟机532、534、536。虚拟机532、534、536可各自执行可利用底层虚拟装置的客户机操作系统,所述底层虚拟装置可例如映射到由存储器子系统110中的虚拟nvme控制器502到508中的一个管理的远存储器组件140的一部分。一或多个应用程序可在客户机操作系统下的每一虚拟机上运行。
50.每一虚拟机532、534、536可包含一或多个虚拟处理器。处理器虚拟化可由虚拟机监控程序524在一或多个物理处理器上调度时隙来实施,使得从客户机操作系统的角度,那些时隙在虚拟处理器上经调度。存储器虚拟化可由作为将客户机存储器地址转换为物理存储器地址的存储器结构的页表(pt)实施。虚拟机监控程序524可在比客户机操作系统更高的特权级别下运行,且后者可在比客户机应用程序更高的特权级别下运行。
51.在一个实施方案中,主机系统120上可存在表示虚拟机532、534、536的多个分区。对应于虚拟机532的父分区是具有额外特权以控制对应于例如虚拟机534和536的其它子分区(即,常规环0)的生命周期的根分区(即,根环0)。每一分区具有对应虚拟存储器,且代替于呈现虚拟装置,子分区看到被分配到其的物理装置。当主机系统120初始启动时,父分区可直接看到所有物理装置。直通机构(例如,pcie直通或直接装置分配)允许父分区将nvme装置(例如,虚拟nvme控制器502到508中的一个)分配到子分区。相关联的虚拟nvme控制器502到508可呈现为虚拟机532、534、536中的每一个的虚拟存储资源,其中运行的客户机操作系统或客户机应用程序可存取所述虚拟存储资源。在一个实施例中,例如,虚拟机532与虚拟nvme控制器502相关联,虚拟机534与虚拟nvme控制器504相关联,且虚拟机536与虚拟nvme控制器506相关联。在其它实施例中,一个虚拟机可与两个或更多个虚拟nvme控制器相关联。虚拟机532、534、536可使用对应总线、装置和功能(bdf)数目识别相关联的虚拟nvme控制器,如下文将更详细地描述。
52.在一个实施例中,nvme虚拟化模块113进一步实施针对虚拟nvme控制器502到508中的每一个的存取控制服务。存取控制服务管理对于虚拟nvme控制器502到508具有存取权限的装置。存取权限可限定例如主机系统120上的虚拟机532到536中的哪一个可存取虚拟nvme控制器502到508中的每一个,以及虚拟机532到536中的每一个可对虚拟nvme控制器502到508中的每一个执行何种操作。在一个实施例中,nvme虚拟化模块113个别地控制针对虚拟nvme控制器502到508中的每一个的存取权限。举例来说,在特权模式中,nvme虚拟化模块513可以向虚拟机532授予使用虚拟nvme控制器502读取和写入数据的权限,但仅授予使用虚拟nvme控制器504读取数据的权限。类似地,在特权模式中,nvme虚拟化模块113可以仅授予虚拟机532使用虚拟nvme控制器504读取和写入数据的权限。可针对虚拟nvme控制器502限定存取权限的任何组合。当针对虚拟nvme控制器502到508中的一个接收到存储器存
取请求时,nvme虚拟化模块113可基于限定存取控制服务的存取策略而分析请求的条件(例如,请求者、目标、操作、所请求的数据地址等等)。存取策略可例如存储在本地存储器119中。如果请求满足对应存取策略(请求的条件与在对应存取策略中指定的条件匹配),则nvme虚拟化模块113可授予存取请求。否则,可拒绝所述请求。
53.图6示出根据本公开的一些实施例的用于具有pcie连接的远存储器的存储器子系统的套接字层次结构和拓扑结构。在一个实施例中,主机系统120包含数个套接字620和630,其各自包含单独pcie根复合体622和632,所述单独pcie根复合体充当对应套接字的物理和虚拟组件与pcie总线610之间的连接。pcie根复合体622和632可代表处理装置624或634或虚拟机628或638中的一个中的虚拟处理装置产生事务请求。取决于实施例,pcie根复合体622和632可实施为离散装置或可与物理处理装置624或634中的一个集成。pcie根复合体622和632可各自具有数个通信端口,使得pcie根复合体622和632可将命令发送到多个pcie装置和从多个pcie装置接收命令,所述pcie装置例如为控制器115中的虚拟nvme控制器或连接到pcie总线610的远存储器140。套接字620和630中的每一个可进一步包含近存储器626和636的实例。
54.图7示出计算机系统700的实例机器,在所述计算机系统内可执行用于使得机器执行本文中所论述的方法中的任何一或多种的一组指令。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作。在替代实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作。
55.机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行将由所述机器采取的指定动作的一组指令的任何机器。此外,虽然说明单个机器,但应认为术语“机器”也包含机器的任何集合,所述机器单独地或共同地执行一组(或多组)指令以执行本文中所论述的方法中的任何一或多种。
56.实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(sram)等等)以及数据存储系统718,它们经由总线730彼此通信。
57.处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等。更确切地说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置702经配置以执行指令726,以用于执行本文中所论述的操作和步骤。计算机系统700可进一步包含网络接口装置708以在网络720上通信。
58.数据存储系统718可以包含机器可读存储媒体724(也称为计算机可读媒体),其上存储有一或多组指令726或体现本文中所描述的方法或功能中的任何一或多种的软件。指
令726还可在其由计算机系统700执行期间完全或至少部分地驻存在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718,和/或主存储器704可对应于图1的存储器子系统110。
59.在一个实施例中,指令726包含用以实施对应于图1的迁移代理122的功能性的指令。尽管在实例实施例中将机器可读存储媒体724展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行的指令集且使得机器进行本公开的方法中的任何一或多个的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
60.已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其他技术人员的方式。本文的算法通常是指产生所需结果的操作的自洽序列。操作为要求对物理量进行物理控制的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数字等有时是便利的。
61.然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅为应用于这些量的方便标签。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)量的数据为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
62.本公开还涉及用于执行本文的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、cd-rom和磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
63.本文中所呈现的算法和显示本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是便利的。将如下文描述中所示呈现用于各种这些系统的结构。另外,不参考任何特定编程语言描述本公开。将了解,可使用各种编程语言来实施如本文中所描述的本公开的教示。
64.本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有可以用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等等。
65.在前述说明书中,本公开的实施例已经参考其具体实例实施例进行描述。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本发明进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献