CN117916719A - 存储器中的存取跟踪 - Google Patents

存储器中的存取跟踪 Download PDF

Info

Publication number
CN117916719A
CN117916719A CN202280060664.XA CN202280060664A CN117916719A CN 117916719 A CN117916719 A CN 117916719A CN 202280060664 A CN202280060664 A CN 202280060664A CN 117916719 A CN117916719 A CN 117916719A
Authority
CN
China
Prior art keywords
access
page
tracker
memory
count
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280060664.XA
Other languages
English (en)
Inventor
C·德里克
R·M·沃克
E·C·科珀·巴利斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN117916719A publication Critical patent/CN117916719A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

本发明涉及一种存取跟踪器,其经配置以:接收存取页的请求;确定与所述页相关联的页标识(ID)是否在所述存取跟踪器中;响应于确定所述页ID在所述存取跟踪器中来递增所述页的存取计数;基于每一页ID的存取计数来对数个页ID进行排序;以及响应于对所述数个页ID进行排序来确定不同页是热还是冷。

Description

存储器中的存取跟踪
技术领域
本公开的实施例大体上涉及管理存储器中的页,且更具体来说,涉及使用存取跟踪器管理存储器中的页。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。举例来说,所述存储器装置可为非易失性存储器装置及易失性存储器装置。一般来说,主机系统可利用存储器子系统来将数据存储于存储器装置处及从存储器装置检索数据。
附图说明
从下面给出的详细描述及从本公开的各种实施例的附图中,将更全面地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2说明根据本公开的一些实施例的存取跟踪器的实例。
图3说明根据本公开的一些实施例的存取跟踪器的实例。
图4是根据本公开的一些实施例的对应于使用存取跟踪器管理存储器中的页的流程图。
图5是根据本公开的一些实施例的与存储器中的存取跟踪相关联的方法的流程图。
图6是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及管理存储器中的页,特定来说,涉及包含存储器子系统存取跟踪器组件的存储器子系统。存储器子系统可为存储系统、存储装置、存储器模块或其组合。存储器子系统的实例是存储系统,例如固态驱动器(SSD)。下面结合图1及别处来描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个组件的存储器子系统,所述组件例如存储数据的存储器装置。主机系统可提供待存储在存储器子系统处的数据,并且可请求待从存储器子系统检索的数据。
随着新存储器系统(例如持久存储器)被开发且需要更高存储器容量,已经提出多层存储器系统来平衡性能、功耗、容量及成本。几乎所有多层存储器系统都包含将存储器存取识别为频繁存取(例如,热)数据与很少存取(例如,冷)数据的机制。然后,热数据存储在较快(例如,高功耗及较低容量)层中,且冷数据存储在较慢(例如,低功耗及较高容量)层中。
将存储器存取识别为热或冷可能需要维持数据结构,使得对于给定页及时间段(例如,最近信息),对页的数次存取可被计数。通过比较数个页中每一页的存取计数,可将页划分为热群组及冷群组。各种数据结构可用于此目的。这些数据结构至少存储页标识(ID)(例如,页编号)及存取计数。对于多个太字节(TB)容量存储器系统,这加起来大约为每条目40位或更多。
许多存取跟踪机制将其数据结构的大小限制为较小值,这可限制其准确性。例如,随着时间的推移,可使用更高分辨率,因为跟踪机制可具有对页的更多存取请求。然而,随着时间的推移,也可请求更独特页,这可增加数据结构中的条目的数目。因此,许多存取跟踪机制限制其数据结构的大小,且在这样做时限制其准确性。
本公开的方面通过提供数个存取跟踪器来解决上述及其它缺陷。例如,第一存取跟踪器可接收存取页的请求,确定与页相关联的页标识(ID)是否在存取跟踪器中,响应于确定页ID在存取跟踪器中来递增页的存取计数,基于每一页ID的存取计数来对数个页ID进行排序,及/或响应于对数个页ID进行排序来确定不同页是热还是冷。第二存取跟踪器可接收存取包含页ID的页的请求,对页ID执行散列函数以确定页的存取计数是否在第二存取跟踪器的计数器阵列中的特定索引中,存取页的存取计数,向不同跟踪器(例如,第一存取跟踪器)传输页的存取计数,及/或从第二存取跟踪器移除页的存取计数。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此组合。
存储器子系统110可为存储器装置、存储器模块或存储装置与存储器模块的混合体。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如台式计算机、膝上型计算机、服务器、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它交通工具)、具有物联网(IoT)能力的装置、嵌入式计算机(例如,包含在交通工具、工业装备或联网商业装置中的装置),或包含存储器及处理装置的此计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文使用,“耦合到”或“与…耦合”通常指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线,包含例如电、光学、磁及类似者的连接。
主机系统120可包含处理器芯片组及由处理器芯片组执行的软件栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,SSD控制器)及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120例如使用存储器子系统110将数据写入到存储器子系统110并从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤信道、串行附接SCSI(SAS)、小型计算机系统接口(SCSI)、双数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM插槽接口)、开放式NAND快闪接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR)或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。主机系统120可进一步利用NVM快速(NVMe)接口以在存储器子系统110通过PCIe接口与主机系统120耦合时存取组件(例如,存储器装置130)。所述物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由相同通信连接、多个单独通信连接及/或通信连接的组合来存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任一组合。易失性存储器装置(例如,存储器装置140)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器及就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格数据存取阵列基于体电阻的改变执行位存储。另外,与许多基于快闪的存储器相反,交叉点非易失性存储器可执行就地写入操作,其中可对非易失性存储器单元进行编程而无需事先擦除非易失性存储器单元。NAND型快闪存储器包含例如二维NAND(2D NAND)及三维NAND(3D NAND)。
存储器装置130、140中的一者可包含存储器单元的一或多个阵列。一种类型的存储器单元(例如单电平单元(SLC))可每单元存储一个位。其它类型的存储器单元(例如多电平单元(MLC)、三电平单元(TLC)、四电平单元(QLC)及五电平单元(PLC))可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含存储器单元的一或多个阵列,例如SLC、MLC、TLC、QLC或此任一组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可被分组为可指代用于存储数据的存储器装置的逻辑单元的页。针对一些类型的存储器(例如,NAND),页可经分组以形成块。
尽管描述例如非易失性存储器单元的三维交叉点阵列及NAND型快闪存储器(例如,2D NAND、3D NAND)的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器或存储装置,例如例如只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它硫属化物基存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻随机存取存储器(RRAM)、氧化物基RRAM(OxRAM)、或非(NOR)快闪存储器以及电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据的操作以及其它此类操作。存储器子系统控制器115可包含例如一或多个集成电路及/或离散组件、缓冲存储器或其组合的硬件。硬件可包含具有专用(即,硬编码)逻辑的数字电路系统以执行本文所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适处理器。
存储器子系统控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器117(例如,处理装置)。在所说明实例中,存储器子系统控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流程以及例程的指令的嵌入式存储器,所述操作包含处置存储器子系统110与主机系统120之间的通信。
在一些实施例中,本地存储器119可包含存储存储器指针、获取数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(ROM)。尽管图1中的实例存储器子系统110已被说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,并且可将命令或操作转换为指令或适当命令以实现对存储器装置130及/或存储器装置140的期望存取。存储器子系统控制器115可负责其它操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误纠正代码(ECC)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理块地址、物理媒体地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器装置130及/或存储器装置140,以及将与存储器装置130及/或存储器装置140相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含可从存储器子系统控制器115接收地址并解码所述地址以存取存储器装置130及/或存储器装置140的高速缓存或缓冲器(例如,DRAM)及地址电路系统(例如,行解码器及列解码器)。
在一些实施例中,存储器装置130包含本地媒体控制器135,其与存储器子系统控制器115结合操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管存储器装置,其是与用于同一存储器装置封装内的媒体管理的本地控制器(例如,本地控制器135)组合的原始存储器装置。被管理存储器装置的实例是被管理NAND(MNAND)装置。
存储器子系统110可包含存取跟踪器113-1及/或存取跟踪器113-2。尽管图1中未展示以避免混淆图式,但存取跟踪器113-1及/或存取跟踪器113-2可包含各种电路系统以促进执行跟踪存取计数以管理页,如本文所描述。在一些实施例中,存取跟踪器113-1及/或存取跟踪器113-2可包含以ASIC、FPGA、状态机及/或其它逻辑电路系统的形式的专用电路系统,其可允许存取跟踪器113-1及/或存取跟踪器113-2编排及/或执行本文描述的涉及存储器装置130及/或存储器装置140的操作。
在一些实施例中,存储器子系统控制器115包含存取跟踪器113-1及/或存取跟踪器113-2的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的用于执行本文描述的操作的指令。在一些实施例中,存取跟踪器113-1及/或存取跟踪器113-2是主机系统120、应用程序或操作系统的部分。
在非限制性实例中,设备(例如,计算系统100)可包含存取跟踪器113-1及/或存取跟踪器113-2。存取跟踪器113-1及/或存取跟踪器113-2可驻留在存储器子系统110上。如本文所使用,术语“驻留在…上”是指某物物理上位于特定组件上。例如,“驻留在”存储器子系统110上的存取跟踪器113-1及/或存取跟踪器113-2是指包括存取跟踪器113-1及/或存取跟踪器113-2的硬件电路系统在物理上位于存储器子系统110上的状况。术语“驻留在…上”可与本文的其它术语(例如“部署在…上”或“定位于…上”)互换使用。
图2说明根据本公开的一些实施例的存取跟踪器213-1的实例。存取跟踪器213-1可对应于图1的存取跟踪器113-1。存取跟踪器213-1可包含硬件、软件及/或固件,其经配置以使存取跟踪器213-1能够跟踪与数个页ID 214相关联的存取计数216。对应于页ID 214的所述数个页可存储在存储器装置(例如,图1中的存储器装置140)中。
例如,可针对所存取的每一页递增计数器,这可使用软件映射及/或内容可寻址存储器(CAM)来执行。在任何时间点,可确定每一页的存取计数,因为存取跟踪器213-1存储数个页的页ID 214及存取计数216。
在一些实施例中,存取跟踪器213-1可接收存取页的请求。所述请求可包含与页相关联的页ID 214。例如,所请求的页ID可为“10”。响应于接收到请求,存取跟踪器213-1可通过比较页ID“10”与所述数个页ID 214来确定页ID是否存储在存取跟踪器213-1中。如果页ID与所述数个页ID 214中的一者匹配,那么可经由计数器递增页的存取计数。例如,如果所述数个页ID 214中的一者是“10”,那么页ID“10”的存取计数可从“20”改变为“21”。
所述数个页可按照存取计数216来排序以确定哪些页是热以及哪些页是冷。在一些实例中,页ID 214可从最频繁存取到最不频繁存取来排序。可根据页在被排序之后的位置及/或响应于页的存取计数满足某种准则(例如,低于阈值计数)来确定页是热还是冷。
随着时间的推移,所述数个页中的一些或全部的存取计数可继续增加。因此,存取跟踪器213-1可改变准则(例如,阈值计数)以周期性地及/或响应于页的存取计数高于特定数目来跟随此增加及/或递减每一页的存取计数值,使得并非所有页都将被确定为热。
一旦确定页是热还是冷,就存取跟踪器213-1可执行数个操作。例如,存取跟踪器213-1可响应于确定页是冷而向主机传输页是热还是冷或者移除页ID及其对应存取计数。在一些实施例中,存储器装置(例如,图1中的存储器装置104)可响应于存取跟踪器213-1确定页是冷而逐出页。
图3说明根据本公开的一些实施例的存取跟踪器313-2的实例。存取跟踪器313-2可对应于图1的存取跟踪器113-2。存取跟踪器313-2可包含硬件、软件及/或固件,其经配置以使存取跟踪器313-2能够跟踪存取计数。对应于存取计数的所述数个页可存储在存储器装置(例如,图1中的存储器装置130)中。
在一些实施例中,存取跟踪器313-2可接收存取页的请求。所述请求可包含与页相关联的页ID 314。响应于接收到请求,存取跟踪器313-2可对页ID 314执行散列函数319以确定页的存取计数是否在存取跟踪器313-2的计数器322的阵列中的特定索引323中。在数个实施例中,包含散列函数319的布隆过滤器操作可用于确定页ID是否在存取跟踪器313-2中。
响应于存取跟踪器313-2确定页ID在存取跟踪器313-2中,存取跟踪器313-2可存取页的存取计数,向不同存取跟踪器(例如,图2中的存取跟踪器213-1)传输页的存取计数,及/或从存取跟踪器313-2移除页的存取计数。在一些实施例中,可响应于存取计数为零而从存取跟踪器313-2移除页的存取计数。
存取计数316可被添加到存取跟踪器313-2。例如,存取跟踪器313-2可接收页ID及页的对应存取计数。在一些实例中,页的页ID及对应存取计数可来自不同存取跟踪器(例如,图2中的存取跟踪器213-1)。存取跟踪器313-2可对页ID 314执行散列函数319且存储页的存取计数。
随着时间的推移,所述数个页中的一些或全部的存取计数可继续增加。因此,存取跟踪器313-2可周期性地(例如,特定时间段过去)及/或响应于页的存取计数高于特定数目来递减每一页的存取计数,使得并非所有页都将为热。在一些实例中,可基于来自主机的一或多个命令来修改特定时间段。例如,如果主机频繁地存取不同页,那么存取跟踪器313-2可增加时间段,及/或如果主机频繁存取同一页,那么存取跟踪器313-2可减少时间段。
图4是根据本公开的一些实施例的对应于使用存取跟踪器413-1及/或413-2管理存储器中的页的流程图421。当接收到存取页425的请求时,存取跟踪器413-1及存取跟踪器413-2两者都可进行检查以查看其是否具有与所述页相关联的存取计数。
检查存取跟踪器413-1可包含搜索操作,其可使用硬件(例如CAM)及/或软件(例如映射)。如果页ID 414在存取跟踪器413-1中,那么最近已存取与页ID 414相关联的页,且可递增对应存取计数416。例如,如果页ID 414为“6790”,那么存取计数416可从“123”改变为“124”。
检查存取跟踪器413-2可包含对页ID执行散列函数419且存取计数器422的阵列中的特定索引423。如果页ID在存取跟踪器413-2中,那么与页ID相关联的页在过去曾被存取,但最近未被存取。在数个实施例中,可响应于接收到存取页425的请求而从存取跟踪器413-2向存取跟踪器413-1传输页的存取计数。
存取跟踪器413-1可接收存取计数416,存储存取计数416且递增存取计数416。例如,如在图4中所说明,存取跟踪器413-1可存储页ID“678910”,且将其对应存取计数416从“9”递增到“10”。
如果存取跟踪器413-1在存取计数416被传输到存取跟踪器413-1时是满的,那么存取跟踪器413-1可传输及移除不同存取计数416。例如,如在图4中所说明,存取跟踪器413-1可移除页ID“24359010”,且用页ID“678910”对其进行替换。在一些方法中,存取跟踪器413-1可基于存取计数416对页ID 414进行排序,且确定具有最低存取计数416的页ID414。具有最低存取计数416的页ID 414可从存取跟踪器413-1移除。与最低存取计数416相关联的页可从第一存储器(例如,存储器装置140)擦除且存储在第二存储器(例如,存储器装置130)中。
不同存取计数可由存取跟踪器413-2接收且与其当前存取计数一起被键入存取跟踪器413-2中。例如,存取跟踪器413-2可接收页ID“678910”及其对应存取计数。存取跟踪器413-2可对页ID“678910”执行散列函数419且将其对应存取计数存储在计数器422的阵列中的索引内。
图5是根据本公开的一些实施例的与存储器中的存取跟踪相关联的方法550的流程图。方法550可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法550由图1的存取跟踪器113-1、图2的存取跟踪器213-1及/或图4的存取跟踪器413-1执行。尽管以特定序列或顺序展示,但除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可能的。
在操作552处,可在存取跟踪器处接收存取页的请求。所述请求可包含与页相关联的页ID。所述请求也可在不同存取跟踪器处接收。
在操作554处,可确定与页相关联的页ID是否在存取跟踪器中。存取跟踪器可将与页相关联的页ID与存储在存取跟踪器中的数个页ID进行比较。
在操作556处,可响应于确定页ID在存取跟踪器中而递增页的存取计数。如果与页相关联的页ID与存储在存取跟踪器中的所述数个页ID中的一者匹配,那么页ID可在存取跟踪器中。
在操作558处,可基于每一页ID的存取计数来对数个页ID进行排序。例如,存取跟踪器可将所述数个页ID从最高存取计数到最低存取计数进行排序。
在操作560处,可响应于对所述数个页ID进行排序而确定不同页是热还是冷。例如,热页可具有较高存取计数,及/或冷页可具有较低存取计数。
图6是本公开的实施例可在其中操作的实例计算机系统600的框图。举例来说,图6说明计算机系统600的实例机器,在计算机系统600内可执行用于致使所述机器执行本文所论述的方法中的任一或多者的一组指令。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或者可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的存取跟踪器113-1及/或存取跟踪器113-2的操作)。在替代实施例中,所述机器可连接(例如,联网)到LAN、内联网、外联网及/或因特网中的其它机器。所述计算机可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器械、服务器、网络路由器、交换机或网桥或能够执行指定待由所述机器采取的动作的一组指令(循序或以其它方式)的任何机器。此外,虽然说明单个机器,但是术语“机器”也应被认为包含机器的任何集合,其个别地或共同地执行一组(或多组)指令以执行本文所论述的方法中的任一者或多者。
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等)及数据存储器装置618,其经由总线630彼此通信。
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或者是实施其它指令集的处理器,或者是实施指令集的组合的处理器。处理装置602也能够为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似者。处理装置602经配置以执行用于执行本文所论述的操作及步骤的指令626。计算机系统600可进一步包含用于通过网络620进行通信的网络接口装置608。
数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),在其上存储体现本文所描述的方法或功能中的任一者或多者的一或多组指令626或软件。在由计算机系统600执行指令626期间,指令626也可全部或至少部分地驻留在主存储器604内及/或处理装置602内,主存储器604及处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618及/或主存储器604可对应于图1的存储器子系统110。
在一个实施例中,指令626包含实施对应于存取跟踪器(例如,图1的存取跟踪器113-1及/或存取跟踪器113-2)的功能性的指令。尽管在实例实施例中将机器可读存储媒体624展示为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被认为包含能够存储或编码一组指令以供机器执行并且使机器执行本公开的方法中的任一者或多者的任何媒体。因此,术语“机器可读存储媒体”应被认为包含(但不限于)固态存储器、光学媒体及磁性媒体。已经根据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的某些部分。这些算法描述及表示是数据处理领域的技术人员用来最有效地向所属领域的其它技术人员传达其工作实质的方式。算法在此处且通常被认为是导致所需结果的自洽操作序列。所述操作是需要对物理量的物理操纵的操作。通常但不是必须的,这些量采用能够被存储、组合、比较及以其它方式操纵的电或磁信号的形式。有时已经证明,主要出于通用的原因将这些信号称为位、值、元素、符号、字符、项、数字或类似者是方便的。
然而,应牢记,所有这些术语及类似术语均应与适当物理量相关联并且仅仅是应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,所述计算机系统或类似电子计算装置将表示为计算机系统的寄存器及存储器内的物理(电子)数的数据操纵及变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量。
本公开还涉及用于执行本文的操作的设备。此设备可经专门构造用于预期目的,或者其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适用于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文提出的算法及显示并非固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文的教示的程序一起使用,或者可证明构造更专用设备来执行所述方法是方便的。各种这些系统的结构将如下文描述中所阐述那样出现。另外,未参考任何特定编程语言来描述本公开。将了解,可使用各种编程语言来实施如本文所描述的本公开的教示。
本公开可被提供为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以由机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。
在前述说明书中,已经参考本公开的特定实例实施例描述本公开的实施例。显而易见的是,在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神及范围的情况下,可对其进行各种修改。因此,说明书及图式应被认为是说明意义而不是限制意义的。

Claims (20)

1.一种设备,其包括:
存取跟踪器,其经配置以:
接收存取页的请求;
确定与所述页相关联的页标识(ID)是否在所述存取跟踪器中;
响应于确定所述页ID在所述存取跟踪器中而递增所述页的存取计数;
基于每一页ID的存取计数来对数个页ID进行排序;以及
响应于对所述数个页ID进行排序来确定不同页是热还是冷。
2.根据权利要求1所述的设备,其中所述存取跟踪器经配置以:
接收存取包含所述页ID的所述页的所述请求;
将所述页ID与所述存取跟踪器中的数个页ID进行比较;以及
响应于所述页ID与所述数个页ID中的一者匹配来确定所述页ID在所述存取跟踪器中。
3.根据权利要求1所述的设备,其中所述存取跟踪器经配置以响应于确定所述不同页是热还是冷而向主机传输所述不同页是热还是冷。
4.根据权利要求1所述的设备,其中所述存取跟踪器经配置以响应于确定所述不同页是冷而移除所述不同页的页ID及存取计数。
5.根据权利要求1至4中任一权利要求所述的设备,其中所述存取跟踪器经配置以响应于所述不同页的存取计数满足准则而确定所述不同页是冷。
6.根据权利要求5所述的设备,其中所述存取跟踪器经配置以响应于数个页的存取计数高于特定数目而改变所述准则。
7.根据权利要求5所述的设备,其中所述存取跟踪器经配置以响应于数个页的存取计数高于特定数目而递减每一页的所述存取计数。
8.一种设备,其包括:
存取跟踪器,其经配置以:
接收存取页的请求;
确定与所述页相关联的页标识(ID)是否在所述存取跟踪器中;
响应于所述页ID在所述存取跟踪器中而向不同存取跟踪器传输所述页的存取计数;以及
从所述存取跟踪器移除所述页的所述存取计数。
9.根据权利要求8所述的设备,其中所述存取跟踪器经配置以:
接收不同页的存取计数及页标识(ID);以及
存储所述不同页的所述存取计数。
10.根据权利要求8所述的设备,其中所述存取跟踪器经配置以执行布隆过滤器操作以确定所述页ID是否在所述存取跟踪器中。
11.根据权利要求8所述的设备,其中所述存取跟踪器经配置以:
接收存取包含与所述页相关联的所述页ID的所述页的所述请求;以及
对所述页ID执行散列函数;以及
响应于所述散列函数的结果而存取所述页的所述存取计数。
12.根据权利要求8至11中任一权利要求所述的设备,其中所述存取跟踪器经配置以响应于所述存取计数高于特定数目而递减所述存取计数。
13.根据权利要求8至11中任一权利要求所述的设备,其中所述存取跟踪器经配置以响应于特定时间段过去而递减所述存取计数。
14.根据权利要求13所述的设备,其中所述存取跟踪器经配置以基于来自主机的一或多个命令来修改所述特定时间段。
15.根据权利要求8至11中任一权利要求所述的设备,其中所述存取跟踪器经配置以响应于所述不同存取计数为零而移除不同存取计数。
16.一种系统,其包括:
第一存取跟踪器;及
第二存取跟踪器,其经配置以:
接收存取页的请求;
确定与所述页相关联的页标识(ID)是否在所述第二存取跟踪器中;
响应于确定所述页ID在所述第一存取跟踪器中而递增所述页的存取计数;
从所述第一存取跟踪器接收所述页的所述存取计数,递增所述页的所述存取计数,且将所述页的所述存取计数存储在所述第二存取跟踪器中。
17.根据权利要求16所述的系统,其中所述第二存取跟踪器经配置以基于每一页ID的存取计数来对数个页ID进行排序。
18.根据权利要求17所述的系统,其中所述第二存取跟踪器经配置以响应于基于每一页ID的所述存取计数来对所述数个页ID进行排序来确定具有最低存取计数的页ID。
19.根据权利要求18所述的系统,其中所述第二存取跟踪器经配置以响应于确定具有所述最低存取计数的所述页ID而向所述第一存取跟踪器传输具有所述最低存取计数的所述页ID的存取计数。
20.根据权利要求19所述的系统,其进一步包括存储器,其中所述存储器经配置以向不同存储器传输与具有所述最低存取计数的所述页ID相关联的页。
CN202280060664.XA 2021-08-25 2022-08-22 存储器中的存取跟踪 Pending CN117916719A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/412,077 US11893279B2 (en) 2021-08-25 2021-08-25 Access tracking in memory
US17/412,077 2021-08-25
PCT/US2022/041015 WO2023027980A1 (en) 2021-08-25 2022-08-22 Access tracking in memory

Publications (1)

Publication Number Publication Date
CN117916719A true CN117916719A (zh) 2024-04-19

Family

ID=85287847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280060664.XA Pending CN117916719A (zh) 2021-08-25 2022-08-22 存储器中的存取跟踪

Country Status (3)

Country Link
US (2) US11893279B2 (zh)
CN (1) CN117916719A (zh)
WO (1) WO2023027980A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12026387B2 (en) * 2022-03-24 2024-07-02 Advanced Micro Devices, Inc. Page swapping to protect memory devices
US12061556B2 (en) * 2022-09-12 2024-08-13 Innogrit Corporation Hot/cold address/data determination using hash addresses for a data storage system

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453408B1 (en) * 1999-09-30 2002-09-17 Silicon Graphics, Inc. System and method for memory page migration in a multi-processor computer
US7496711B2 (en) 2006-07-13 2009-02-24 International Business Machines Corporation Multi-level memory architecture with data prioritization
US8255628B2 (en) 2006-07-13 2012-08-28 International Business Machines Corporation Structure for multi-level memory architecture with data prioritization
US8495318B2 (en) 2010-07-26 2013-07-23 International Business Machines Corporation Memory page management in a tiered memory system
CN102362464B (zh) * 2011-04-19 2013-01-30 华为技术有限公司 内存访问监测方法和装置
US8938603B2 (en) * 2012-05-31 2015-01-20 Samsung Electronics Co., Ltd. Cache system optimized for cache miss detection
US9330736B2 (en) 2012-11-09 2016-05-03 Qualcomm Incorporated Processor memory optimization via page access counting
US9940286B2 (en) * 2013-03-14 2018-04-10 Nvidia Corporation PCIE traffic tracking hardware in a unified virtual memory system
US9501419B2 (en) * 2014-10-08 2016-11-22 HGST Netherlands B.V. Apparatus, systems, and methods for providing a memory efficient cache
US20180046383A1 (en) * 2016-08-12 2018-02-15 Hewlett Packard Enterprise Development Lp Movement of frequently accessed data chunks between storage tiers
US10740016B2 (en) * 2016-11-11 2020-08-11 Scale Computing, Inc. Management of block storage devices based on access frequency wherein migration of block is based on maximum and minimum heat values of data structure that maps heat values to block identifiers, said block identifiers are also mapped to said heat values in first data structure
US10228864B1 (en) * 2016-12-30 2019-03-12 Parallels International Gmbh Pre-fetching data based on memory usage patterns
US10580110B2 (en) * 2017-04-25 2020-03-03 Ati Technologies Ulc Hardware structure to track page reuse
US10353596B2 (en) * 2017-09-28 2019-07-16 International Business Machines Corporation Data storage system performance management
US11307985B2 (en) * 2018-09-28 2022-04-19 Intel Corporation Method and apparatus to use dram as a cache for slow byte-addressible memory for efficient cloud applications
US10802977B2 (en) * 2018-12-12 2020-10-13 Advanced Micro Devices, Inc. Memory page access counts based on page refresh
WO2020226880A1 (en) * 2019-05-03 2020-11-12 University Of Pittsburgh-Of The Commonwealth System Of Higher Education Method and apparatus for adaptive page migration and pinning for oversubscribed irregular applications
US11237981B1 (en) * 2019-09-30 2022-02-01 Amazon Technologies, Inc. Memory scanner to accelerate page classification
US11281594B2 (en) * 2020-02-22 2022-03-22 International Business Machines Corporation Maintaining ghost cache statistics for demoted data elements

Also Published As

Publication number Publication date
WO2023027980A1 (en) 2023-03-02
US11893279B2 (en) 2024-02-06
US20230064745A1 (en) 2023-03-02
US20240176547A1 (en) 2024-05-30

Similar Documents

Publication Publication Date Title
CN115699185A (zh) 在存储装置上每单元实施可变数目的位
US11829636B2 (en) Cold data identification
US20240176547A1 (en) Access tracking in memory
WO2021133632A1 (en) Architecture for fast content addressable memory search
CN117121107A (zh) 使用内容可寻址存储器的用于经排序字符串表的密钥存储
CN112948284A (zh) 高速缓存媒体中的动态存取粒度
CN113093990B (zh) 存储器子系统处的数据块切换
US11531622B2 (en) Managing data dependencies for out of order processing in a hybrid DIMM
US11169920B2 (en) Cache operations in a hybrid dual in-line memory module
CN117149057A (zh) 用于控制垃圾收集源块中的有效数据计数变化的方法和装置
CN114817095B (zh) 用于自动字线状态旁路管理的系统、方法及存储媒体
US12066949B2 (en) Address translation based on page identifier and queue identifier
US11868633B2 (en) Smart swapping and effective encoding of a double word in a memory sub-system
CN113126906B (zh) 用于元数据指示的方法和系统
CN113555058B (zh) 存储器装置中使用嵌入式伺服单元的读取电平校准
US11816345B2 (en) Zone block staging component for a memory subsystem with zoned namespace
US20210405913A1 (en) Host access tracking in a memory sub-system
CN114303137A (zh) 使用主机存储器缓冲器的存储器叠加
US20240296152A1 (en) Predictive center allocation data structure
US20240296118A1 (en) Predictive center allocation data structure
US11314456B2 (en) Memory device performance based on storage traffic pattern detection
US12019888B2 (en) Deferred zone adjustment in zone memory system
US20240020223A1 (en) Center allocation data structure
WO2024045104A1 (en) Virtual indexing in memory device
US20240281259A1 (en) Dynamically updating a boot region table to increase read speed during boot up

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