CN111352857A - 存储器***及其操作方法 - Google Patents

存储器***及其操作方法 Download PDF

Info

Publication number
CN111352857A
CN111352857A CN201910967869.6A CN201910967869A CN111352857A CN 111352857 A CN111352857 A CN 111352857A CN 201910967869 A CN201910967869 A CN 201910967869A CN 111352857 A CN111352857 A CN 111352857A
Authority
CN
China
Prior art keywords
memory
data
local address
address
unit
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.)
Granted
Application number
CN201910967869.6A
Other languages
English (en)
Other versions
CN111352857B (zh
Inventor
郭昌敏
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.)
SK Hynix Inc
Original Assignee
SK Hynix 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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN111352857A publication Critical patent/CN111352857A/zh
Application granted granted Critical
Publication of CN111352857B publication Critical patent/CN111352857B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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
    • 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
    • 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/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0638Organizing or formatting or addressing of data
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0683Plurality of storage devices
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

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)
  • Memory System (AREA)

Abstract

本文描述了存储器***及其操作方法。一种存储器***包括:具有多个存储器单元的存储器池;以及适于控制多个存储器单元的控制器,其中控制器包括:转换单元,适于将***地址转换为存储器池内的本地地址;阈值决定单元,适于基于针对存储器池内的数据的每个本地地址的访问次数来动态地改变阈值;数据属性确定单元,适于基于阈值和转换后的本地地址的访问次数来确定与转换后的本地地址相关联的数据的属性;以及数据输入/输出单元,适于基于数据的属性来控制多个存储器单元之中与新本地地址相关联的存储器单元。

Description

存储器***及其操作方法
相关申请的交叉引用
本申请要求于2018年12月21日提交的韩国专利申请No.10-2018-0167585的优先权,其全部内容通过引用并入本文。
技术领域
各个实施例涉及存储器***,并且更具体地涉及包括存储器池的存储器***及其操作方法。
背景技术
随着第四次工业革命的到来,数据已经成为企业最重要的资源之一。因此,对于能够快速传输和分析大规模数据的最新技术的需求正在逐渐增加。例如,人工智能(AI)、自动驾驶、机器人、医疗保健、虚拟现实(VR)、增强现实(AR)和智能家居的普及将增加对服务器或数据中心的需求。
传统数据中心具有将资源(例如,计算、网络和存储)包括在一个设备中的结构。但是,即将到来的大规模数据中心可以具有单独配置资源并且在逻辑上重新配置资源的结构。例如,大规模数据中心可以具有可以在机架级别模块化资源、根据资源的预期用途重新配置资源、并且提供资源的结构。因此,需要一种适合用于即将到来的大规模数据中心的集成存储或存储器装置。
发明内容
各个实施例涉及根据本地地址的访问计数分别确定数据属性(例如,热数据或冷数据)并且将具有不同属性的数据分类和存储在存储器池中的存储器***、以及该存储器***的操作方法。
在一个实施例中,一种存储器***可以包括:存储器池,包括多个存储器单元;以及控制器,适于控制多个存储器单元,其中控制器包括:转换单元,适于将***地址转换为存储器池内的本地地址,***地址是与访问命令一起从主机接收的;阈值决定单元,适于基于针对存储器池内的数据的每个本地地址的访问次数来动态地改变阈值;数据属性确定单元,适于基于阈值和转换后的本地地址的访问次数来确定与转换后的本地地址相关联的数据的属性;以及数据输入/输出单元,适于基于数据的属性来控制与新本地地址相关联的存储器单元以将数据存储在多个存储器单元之中与新本地地址相对应的存储器区域中。
在一个实施例中,提供了一种包括存储器池的存储器***的操作方法。该操作方法可以包括:将***地址转换为存储器池内的本地地址,***地址是与访问命令一起从主机接收的;基于针对存储器池内的数据的每个本地地址的访问次数来动态地改变阈值;基于阈值和转换后的本地地址的访问次数来确定与转换后的本地地址相关联的数据的属性;以及基于数据的属性来将数据存储在多个存储器单元之中与新本地地址相对应的存储器区域中。
在一个实施例中,一种存储器***包括:分别包括异构存储区域的第一设备和第二设备;以及控制器,该控制器被配置为:在每次访问指示相应存储区域内的位置的本地地址时,对本地地址的访问次数进行计数,本地地址是基于映射信息从访问请求***地址转换得到的,映射信息表示***地址与指示存储区域内的位置的本地地址之间的关系;以预定周期基于映射信息内的本地地址的访问次数来更新阈值;将热数据从第二设备的存储区域移动到第一设备的存储区域并且将冷数据从第一设备的存储区域移动到第二设备的存储区域;以及根据热数据和冷数据的移动来改变映射信息内的本地地址,其中热数据的本地地址的访问次数为阈值或更大,并且其中冷数据的本地地址的访问次数小于阈值。
在一个实施例中,一种存储器***包括:分别包括异构存储区域的第一设备和第二设备;以及控制器,该控制器被配置为:在每次访问指示相应存储区域内的位置的本地地址时,对本地地址的访问次数进行计数,本地地址是基于映射信息从访问请求***地址转换得到的,映射信息表示***地址与指示存储区域内的位置的本地地址之间的关系;以预定周期基于映射信息内的本地地址的访问次数来更新阈值;响应于与访问请求***地址相关的写入请求而将热数据存储到第一设备的存储区域中并且将冷数据存储到第二设备的存储区域中;以及根据热数据和冷数据的移动来改变映射信息内的本地地址,其中热数据的本地地址的访问次数为阈值或更大,并且其中冷数据的本地地址的访问次数小于阈值。
附图说明
图1示出了根据一个实施例的包括存储器***的数据处理***的结构。
图2是用于描述用于根据数据属性将数据分类和存储在第一存储器单元和第二存储器单元中的地址映射操作的图。
图3示意性地示出了根据一个实施例的数据控制单元的结构。
图4是用于描述将***地址映射到新本地地址的操作的图。
图5和图6是示出根据一个实施例的存储器***的写入操作的流程图。
图7是示出根据一个实施例的存储器***的读取操作的流程图。
图8是示出根据一个实施例的存储器***的数据属性更新操作的流程图。
图9至图12示出了根据一个实施例的包括存储器***的数据处理***的结构。
具体实施方式
下文中,将参考附图详细描述各种实施例。应当理解,以下描述将集中于理解根据一个实施例的操作所需要的部分,并且将排除对其他部分的描述,以免不必要地使本公开的主题不清楚。
应当理解,尽管术语“第一”、“第二”、“第三”等在本文中可以用于描述各种要素,但是这些要素不受这些术语的限制。这些术语用于将一个要素与另一要素区分开。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一要素也可以被称为第二要素或第三要素。
应当进一步理解,当一个元件被称为“连接到”或“耦合到”另一元件时,它可以直接在另一元件上,直接连接到另一元件,或者直接耦合到另一元件,或者可以存在一个或多个中间元件。另外,还应当理解,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。除非另有说明或上下文另外指出,否则两个元件(无论是直接还是间接连接/耦合)之间的通信可以是有线的也可以是无线的。
如本文中使用,除非上下文另外明确指出,否则单数形式也可以包括复数形式,反之亦然。除非另外说明或从上下文清楚地理解为单数形式,否则在本申请和所附权利要求书中使用的冠词“一个”和“一”应当一般地被解释为表示“一个或多个”。
应当进一步理解,当在本说明书中使用时,术语“包括”、“包括……的”、“包含”和“包含……的”指定所述要素的存在,而不排除一个或多个其他要素的存在或增加。如本文中使用,术语“和/或”包括一个或多个相关联的所列项目的任何和所有组合。
注意,对“一个实施例”、“另一实施例”等的引用不一定表示仅一个实施例,并且对任何这样的短语的不同引用不一定是对相同的实施例。
下文中,将参考附图详细描述各种实施例。
图1示出了根据一个实施例的包括存储器***110的数据处理***100的结构。
参考图1,数据处理***100可以包括存储器***110和主机102。
诸如即将到来的数据中心的服务器***或数据处理***可以具有如下结构:其中诸如计算机板和存储器板的多个板安装在单元机架中以便彼此区分。存储器***110可以对应于存储器板。主机102可以对应于计算机板。
参考图1,存储器***110可以包括存储器池150和控制器130。
存储器池150可以包括多个存储器单元。存储器单元可以在控制器130的控制下存储(或写入)数据以及输出(或读取)所存储的数据。
存储器池150可以包括具有不同特性的多个存储器单元,以便满足各种用户工作量。也就是说,一个存储器池150可以是集成存储器装置,其中会聚有诸如DRAM、PCRAM、MRAM、STT-RAM和闪存等多个存储器。由于各个存储器具有不同的特性,这种集成存储器装置可以用于各种使用模型。
存储器池150可以包括第一存储器组和第二存储器组。第一存储器组和第二存储器组中的每个存储器组可以包括一个或多个存储器单元。存储器单元可以响应于外部命令而在其中存储数据。应当注意,图1所示的存储器组和存储器单元的数目仅是示例,并且可以根据设计而改变。
在一个实施例中,第一存储器组中包括的第一存储器单元和第二存储器组中包括的第二存储器单元可以具有不同的特性。例如,第一存储器单元可以包括具有的访问速度高于第二存储器单元的存储器装置。例如,第一存储器单元可以是易失性存储器单元,而第二存储器单元可以是非易失性存储器单元。易失性存储器单元的示例可以包括DRAM单元,诸如双列直插存储器模块(DIMM)。非易失性存储器单元的示例可以包括NAND闪存单元,诸如通用闪存(UFS)或嵌入式多媒体卡(eMMC)。
第一存储器单元和第二存储器单元可以具有不同的优点。将以其中第一存储器单元为DRAM单元并且第二存储器单元为NAND闪存单元的情况为例来描述第一存储器单元和第二存储器单元的不同优点。第一存储器单元可以具有比第二存储器单元更高的访问速度,并且具有比第二存储器单元更长的寿命。由于第二存储器单元是不需要执行刷新操作以保留存储在其中的数据的非易失性存储器,第二存储器单元可以以低功率操作。
第二存储器单元具有的访问速度可以低于第一存储器单元。在一个实施例中,第二存储器组可以进一步包括高速缓存存储器单元(未示出)以便提高低访问速度。高速缓存存储器单元可以是DRAM单元。在一个实施例中,高速缓存存储器单元可以根据直写方法或回写方法进行操作。
控制器130可以控制主机102与存储器池150内的存储器单元之间的数据发送/接收。
控制器130可以包括主机接口132、数据控制单元134和存储器接口136。
数据控制单元134可以控制存储器***110的整体操作。例如,数据控制单元134可以响应于写入请求而控制将从主机102接收的写入数据存储在存储器单元中的写入操作。对于另一示例,数据控制单元134可以响应于读取请求而控制读取存储在存储器单元中的数据并且将所读取的数据输出到主机102的读取操作。
主机接口132可以支持主机102与数据控制单元134之间的接口。在一个实施例中,主机接口132可以通过互连板来支持数据控制单元134与主机102之间的接口。将参考图11详细描述互连板。
主机接口132可以使用与一种或多种有线/无线通信技术相关的协议来将从数据控制单元134接收的数据提供给主机102并且将从主机102接收的数据提供给数据控制单元134。例如,主机接口132可以根据诸如***部件互连快速(PCIe)、快速通道互连(QPI)和以太网等协议来支持主机102与数据控制单元134之间的通信。此外,主机接口132可以根据接口规范(诸如用于加速器的高速缓存一致性互连(CCIX)和GEN-Z)来支持主机102与数据控制单元134之间的通信。
存储器接口136可以支持数据控制单元134与存储器池150的存储器单元之间的接口。存储器接口136可以包括业务仲裁器、第一存储器控制单元(MCU)和第二MCU。
第一MCU可以控制第一存储器组中包括的第一存储器单元。也就是说,第一MCU可以支持控制器130与第一存储器单元之间的数据发送/接收。
第二MCU可以控制第二存储器组中包括的第二存储器单元。也就是说,第二MCU可以支持控制器130与第二存储器单元之间的数据发送/接收。
业务仲裁器可以仲裁数据控制单元134与第一MCU和第二MCU之间的信号发送/接收。具体地,业务仲裁器可以将从数据控制单元134接收的读取或写入命令提供给与存储器池150的本地地址相关的MCU。
控制器130可以控制第一存储器单元和第二存储器单元以存储具有不同属性的数据,以便利用第一存储器单元和第二存储器单元的不同优点。例如,控制器130可以控制第一存储器单元和第二存储器单元使得被频繁访问的热数据被存储在具有高访问速度的第一存储器单元中,而不被频繁访问的冷数据被存储在可以以低功率操作的第二存储器单元中。
图2是用于描述用于根据数据属性将数据分类和存储在第一存储器单元和第二存储器单元中的地址映射操作的图。
图2示出了主机102的***地址、存储器池150的本地地址、以及***地址与本地地址之间的映射关系。
***地址可以指示主机102通过其访问存储器***110的地址。***地址的示例可以包括逻辑块地址(LBA)。
本地地址可以指示接收***地址的控制器130通过其访问存储器池150内的存储器单元的地址。每个本地地址可以与预定存储器单元相关联。根据存储器单元的类型,本地地址可以是物理地址或逻辑地址。例如,当存储器单元是NAND闪存单元时,可以将作为逻辑地址的本地地址转换为与本地地址相关联的存储器单元中的物理地址。
根据一个实施例,取决于每个本地地址与哪个存储器单元相关联,本地地址可以分为第一本地地址组和第二本地地址组。属于第一本地地址组的本地地址可以与第一存储器单元相关联,并且属于第二本地地址组的本地地址可以与第二存储器单元相关联。也就是说,属于第一本地地址组的本地地址可以与热数据相关联,并且属于第二本地地址组的本地地址可以与冷数据相关联。
图2示出了***地址“1”被映射到本地地址“A”。由于本地地址“A”属于第一本地地址组,与本地地址“A”相关联的数据可以是热数据。类似地,当***地址“2”被映射到本地地址“a”时,与本地地址“a”相关联的数据可以是冷数据。
根据一个实施例,控制器130可以将***地址转换为存储器池150的本地地址,其中***地址是与访问命令一起从主机102接收的。控制器130可以对存储器池150的本地地址的访问次数进行计数。访问命令可以包括读取命令和写入命令。
控制器130可以基于相应本地地址的访问次数来动态地改变阈值。本地地址的每个访问次数可以随时间变化。阈值可以指示用于确定与转换后的本地地址相关联的数据的属性的访问计数的参考值。
根据本公开的实施例,可以将外部提供的或已经存储在存储器池150中的数据确定为热数据与冷数据之间的一者。阈值可以基于存储器池150的本地地址的时变访问次数来被动态地确定。被确定为热数据的数据可以存储在第一存储器单元中或者从第二存储器单元移动到第一存储器单元中。被确定为冷数据的数据可以存储在第二存储器单元中或者从第一存储器单元移动到第二存储器单元中。根据热数据和冷数据的存储或移动,可以更新***地址与本地地址之间的映射关系。
控制器130可以基于阈值和相应本地地址的访问次数来确定与本地地址相关联的数据的属性。根据所确定的属性,控制器130可以将数据分类和存储在存储器池150中。此外,当与本地地址相关联的数据的属性随着相应本地地址的访问次数和阈值动态地改变而改变时,控制器130可以根据改变后的属性来将数据移动和存储在存储器池150内。
根据一个实施例,控制器130可以根据阈值和相应本地地址的访问次数来将热数据和冷数据分类和存储在存储器池150中。因此,可以尽可能地利用存储器***110内的第一存储器单元和第二存储器单元的优点。
图3示意性地示出了根据一个实施例的数据控制单元134的结构。数据控制单元134可以包括映射表302、转换单元304、访问计数器306、阈值决定单元308、数据属性确定单元310、映射管理单元312和数据输入/输出单元314。转换单元304、阈值决定单元308、数据属性确定单元310、映射管理单元312和数据输入/输出单元314包括其相应操作和功能所需要的所有电路、***、软件、固件和装置。
映射表302可以存储***地址与本地地址之间的映射关系。
转换单元304可以通过参考映射表302将***地址转换为本地地址,其中***地址是与来自主机102的读取或写入命令一起接收的。当所接收的***地址尚未映射到本地地址时,转换单元304可以将所接收的***地址映射到新本地地址。
访问计数器306可以对每个本地地址的访问次数进行计数。例如,在存储在控制器130内的存储器(未示出)中的相应本地地址的访问次数之中,访问计数器306可以对响应于读取或写入命令而转换的本地地址的访问次数进行计数。在一个实施例中,访问计数器306可以在可以被预先确定的周期中重置所有本地地址的访问次数,并且恢复访问计数操作,以便反映最近的访问趋势。
阈值决定单元308可以基于相应本地地址的时变访问次数来动态地改变阈值。将参考图6描述阈值决定单元308动态地改变阈值的操作的示例。
数据属性确定单元310可以基于动态确定的阈值来确定与相应本地地址相关联的数据的属性。如果与本地地址相关联的数据的属性改变,则数据属性确定单元310可以向映射管理单元312提供旧本地地址以改变为新本地地址。另一方面,如果与本地地址相关联的数据的属性没有改变,则数据属性确定单元310可以向数据输入/输出单元314提供现有本地地址以访问对应的存储器区域。
在一个实施例中,每当本地地址被访问时,数据属性确定单元310可以确定与对应的本地地址相关联的数据的属性。在一个实施例中,数据属性确定单元310可以针对相应本地地址周期性地确定存储在存储器池150中的所有数据的属性。将参考图8描述数据属性确定单元针对相应本地地址周期性地确定所有数据的属性的操作示例。
映射管理单元312可以根据预定条件来改变***地址与本地地址之间的映射关系。在一个实施例中,预定条件可以包括数据属性是否被确定改变。映射管理单元312可以基于由数据属性确定单元310确定的数据属性来确定数据属性是否改变。当数据属性改变时,映射管理单元312可以改变***地址和本地地址之间的映射关系。
映射管理单元312可以通过将与对应的数据相关联的***地址映射到新本地地址以将数据存储在存储器池150的另一存储器单元中来改变***地址与本地地址之间的映射关系。
图4是用于描述将***地址映射到新本地地址的操作的图。
与图2类似,图4示出了***地址、本地地址、以及本地地址与***地址之间的映射关系。
再次参考图2,当***地址“2”被映射到本地地址“a”时,与***地址“2”相关联的数据可以是冷数据。当由于从主机102接收到针对***地址“2”的读取或写入命令而本地地址“a”的访问次数增加时,数据的属性可以被确定为热数据。由于与第二本地地址组中包括的本地地址“a”相关联的数据被确定为热数据,映射管理单元312可以确定数据的属性被改变。
参考图4,映射管理单元312可以将***地址“2”映射到属于第一本地地址组的新本地地址“D”,使得数据被存储在第一存储器单元中。映射管理单元312可以将***地址与新本地地址之间的映射关系反映到映射表302中。
在一个实施例中,预定条件不仅可以包括数据属性是否被确定改变,而且还包括自访问计数器306开始访问计数操作以来是否已经经过预定时间。这是因为,在访问计数器306的访问计数操作的初始阶段,相应本地地址的访问次数可能没有被充分收集以足以确定存储在存储器池150中的数据的属性。
再次参考图3,数据输入/输出单元314可以向存储器接口136提供命令,使得与新本地地址相关联的存储器单元被控制为根据***地址与新本地地址之间的映射关系来存储数据。在一个实施例中,数据输入/输出单元314可以在***地址与本地地址之间的映射关系改变之前读取存储在与旧本地地址相对应的存储器区域中的数据,并且将所读取的数据写入与新本地地址相对应的存储器区域中。
下文中,参考图5至图8,将描述根据一个实施例的存储器***110的写入操作、读取操作和数据属性更新操作。
图5和图6是示出根据一个实施例的存储器***110的写入操作的流程图。
参考图5,在步骤S502,主机接口132可以从主机102接收写入命令、写入数据和第一***地址,第一***地址指示要在其中执行写入操作的地址。主机接口132可以将第一***地址提供给转换单元304。主机接口132可以将写入命令在数据控制单元134内的命令队列(未示出)中排队,并且将写入数据和第一***地址缓存在数据控制单元134内的缓冲器(未示出)中。
在步骤S504,转换单元304可以通过参考映射表302将从主机接口132接收的第一***地址转换为第一本地地址。
当存储器池150首次存储与第一***地址相关联的数据时,第一***地址的映射信息可能不存储在映射表302中。在一个实施例中,当第一***地址尚未映射到映射表302中的本地地址时,转换单元304可以将第一***地址映射到新本地地址,并且在步骤S506开始对新本地地址的访问进行计数,这将在下面描述。由于对首次存储的数据的访问次数为“0”,转换单元304可以将该数据视为冷数据,并且将第一***地址映射到第二本地地址组中包括的新本地地址。当存储器池150首次存储与第一***地址相关联的数据时,第一本地地址可以对应于新本地地址。
转换单元304可以将第一本地地址提供给访问计数器306。
在步骤S506,访问计数器306可以更新第一本地地址的访问次数。
访问计数器306可以向阈值决定单元308提供针对存储在存储器池150中的所有数据的相应本地地址的访问次数。访问计数器306可以向数据属性确定单元310提供第一本地地址和第一本地地址的访问次数。
在步骤S508,阈值决定单元308可以基于相应本地地址的访问次数来动态地确定阈值。
图6是更详细地示出步骤S508的操作的流程图。
在一个实施例中,步骤S508可以包括步骤S602至S606。
在步骤S602,阈值决定单元308可以提取从访问计数器306接收的在最近预定时间内的相应本地地址的访问次数的最大值和最小值。
在步骤S604,阈值决定单元308可以计算最大值和最小值的平均值。
在步骤S606,阈值决定单元308可以将计算出的平均值决定为阈值。
阈值决定单元308可以不必在步骤S604计算平均值。在一个实施例中,阈值决定单元308可以根据预定条件来计算最大值与最小值之间的另一值,并且在步骤S606将计算出的值确定为阈值。此外,阈值决定单元308可以不必在步骤S602仅提取最大值和最小值。阈值决定单元308可以根据预定条件提取可以表示相应本地地址的访问次数的多个值。
在一个实施例中,可以预先确定阈值的上限。存储器单元内的存储器装置的寿命可以根据相应本地地址的访问次数来被限制。例如,多级单元NAND闪存装置的擦除/写入(EW)周期可以被限制为大约10000次。
当第二存储器单元是寿命有限的存储器单元时,在存储在存储器装置中的数据的访问次数为预定访问次数或更大的情况下,第二存储器单元内的存储器装置可能会迅速劣化。因此,可以预先确定阈值的上限,使得存储在寿命有限的存储器单元中的数据的访问次数被控制为在阈值访问次数以下。在一个实施例中,阈值的上限可以基于EW周期来被确定。阈值决定单元308可以将阈值的上限与在步骤S604基于相应本地地址的访问次数而计算出的值之间的较小值确定为阈值。
再次参考图5,在步骤S510,数据属性确定单元310可以基于阈值来确定写入数据的属性。
具体地,数据属性确定单元310可以从访问计数器306接收第一本地地址和第一本地地址的访问次数,并且从阈值决定单元308接收阈值。
数据属性确定单元310可以包括比较器(未示出)。比较器可以根据第一本地地址的访问次数是否等于或大于阈值来确定与第一本地地址相关联的写入数据的属性。例如,当第一本地地址的访问次数等于或大于阈值时,可以将写入数据确定为热数据。另一方面,当第一本地地址的访问次数小于阈值时,可以将写入数据确定为冷数据。
在步骤S512,数据属性确定单元310可以确定用于改变地址映射的预定条件是否满足。如参考图3所述,预定条件不仅可以包括写入数据的属性是否被确定改变,还可以包括自访问计数器306开始访问计数操作以来是否已经经过预定时间。
当预定条件满足时(步骤S512处的“是”),数据属性确定单元310可以向映射管理单元312提供第一本地地址和与第一本地地址相关联的数据的属性。数据控制单元134可以执行以下将描述的步骤S514至S516的操作。
当预定条件不满足时(步骤S512处的“否”),数据属性确定单元310可以将第一本地地址提供给存储器接口136。存储器接口136可以执行以下将描述的步骤S518的操作。
在步骤S514,映射管理单元312可以将第一***地址映射到新的第一本地地址。
映射管理单元312可以将新的第一本地地址提供给数据输入/输出单元314。映射管理单元312可以将第一***地址与新的第一本地地址之间的映射关系更新到映射表302中。映射管理单元312可以控制访问计数器306,以将新的第一本地地址的访问次数改变为旧的第一本地地址的访问次数,并且重置旧的第一本地地址的访问次数。
在步骤S516,数据输入/输出单元314可以向存储器接口136提供新的第一本地地址、写入命令和写入数据。写入命令可以是在步骤S502在命令队列(未示出)中排队的写入命令,并且写入数据可以是在步骤S502缓存在缓冲器(未示出)中的写入数据。存储器接口136可以响应于从数据输入/输出单元314接收的写入命令而控制与新的第一本地地址相关联的存储器单元以执行写入操作。
由于第一***地址与旧的第一本地地址之间的映射被去除,即使与访问命令一起从主机102再次接收到第一***地址,旧的第一本地地址也不会被访问。旧的第一本地地址可以以后由转换单元304或映射管理单元312映射到另一***地址。
在步骤S518,数据输入/输出单元314可以向存储器接口136提供写入命令以将从主机102接收的写入数据写入在步骤S504从第一***地址转换得到的现有第一本地地址。写入命令可以是在步骤S502在命令队列(未示出)中排队的写入命令,并且写入数据可以是在步骤S502在缓冲器(未示出)中缓存的写入数据。存储器接口136可以响应于从数据输入/输出单元314接收的写入命令而控制与现有第一本地地址相关联的存储器单元以执行写入操作。
根据参考图5和图6描述的存储器***110的写入操作,写入数据可以根据写入数据的属性来被分类和存储在存储器池中,该属性是基于相应本地地址的访问次数和动态改变的阈值而确定的。
图7是示出根据一个实施例的存储器***110的读取操作的流程图。
在步骤S702,主机接口132可以从主机102接收读取命令和第一***地址,该第一***地址指示要在其中执行读取操作的地址。主机接口132可以将读取命令在数据控制单元134内的命令队列(未示出)中排队,并且将第一***地址缓存在数据控制单元134内的缓冲器(未示出)中。
在步骤S704,转换单元304可以通过参考映射表302将从主机接口132接收的第一***地址转换为第一本地地址。转换单元304可以将第一本地地址提供给访问计数器306。
在步骤S706,访问计数器306可以更新第一本地地址的访问次数。步骤S706的详细操作可以以与参考步骤S506描述的相同的方式执行。
在步骤S708,阈值决定单元308可以基于相应本地地址的访问次数来改变阈值。步骤S708的特定操作可以以与参考步骤S508描述的相同的方式执行。
在步骤S710,数据属性确定单元310可以基于阈值来确定读取数据的属性。步骤S710的详细操作可以以与参考步骤S510描述的相同的方式来执行。
在步骤S712,数据输入/输出单元314可以将读取命令提供给存储器接口136,使得与第一本地地址相关联的存储器单元执行读取操作。读取命令可以是在步骤S702在命令队列(未示出)中排队的读取命令。存储器接口136可以将从存储器单元读取的读取数据缓存到缓冲器(未示出)中。数据输入/输出单元314可以通过主机接口132将缓存的读取数据提供给主机102。
根据一个实施例,相应本地地址的访问次数和阈值可以是时变的。因此,存储在存储器池150中的数据的属性可以随时间改变。例如,尽管某些数据被确定为冷数据并且存储在第二存储器单元中,但是当数据被读取时,对应的数据可以被确定为热数据。在随后的步骤S714至S718,当读取的数据的数据属性改变时,映射管理单元312可以改变***地址与本地地址之间的映射关系以将对应的数据存储在另一存储器单元中。
在步骤S714,数据属性确定单元310可以确定用于改变地址映射的预定条件是否满足。如参考图3所述,预定条件不仅可以包括读取数据的属性是否被确定改变,还可以包括自访问计数器306开始访问计数操作以来是否已经经过预定时间。
当预定条件满足时(步骤S714处的“是”),数据属性确定单元310可以向映射管理单元312提供第一本地地址和与第一本地地址相关联的数据的属性。数据控制单元134可以执行以下将描述的步骤S716至S718的操作。
当预定条件不满足时(步骤S714处的“否”),数据控制单元134可以结束操作。
在步骤S716,映射管理单元312可以将第一***地址映射到新的第一本地地址。步骤S716的详细操作可以以与参考步骤S514描述的相同的方式执行。
在步骤S718,数据输入/输出单元314可以向存储器接口136提供新的第一本地地址、写入命令和读取数据。写入命令可以指示用于将与第一***地址相关联的数据移动和存储到新的第一本地地址中的命令。读取数据可以指示在步骤S712读取的并且被缓存在缓冲器(未示出)中的数据。存储器接口136可以响应于从数据输入/输出单元314接收的写入命令而控制与新的第一本地地址相关联的存储器单元以执行写入操作。
根据参考图7描述的存储器***110的读取操作,可以根据读取数据的属性来将读取数据分类和存储在存储器池中,该属性是基于相应本地地址的访问次数和动态改变的阈值而确定的。
如上所述,存储在存储器池150中的数据的属性可以随时间改变。根据一个实施例,数据控制单元134可以执行数据属性更新操作:针对相应本地地址周期性地更新存储在存储器池150中的所有数据的属性,并且控制存储器池150内的存储器单元根据更新后的属性来分类和存储数据。
图8是示出根据一个实施例的存储器***110的数据属性更新操作的流程图。
下面将描述的步骤S802至S808的数据属性更新操作可以以预定周期执行。
如参考图3所述,访问计数器306可以以预定周期重置所有本地地址的访问次数,并且恢复访问计数操作。在一个实施例中,数据属性更新操作可以在与重置相应本地地址的访问次数的操作相同的周期中执行。例如,数据属性更新操作可以在相应本地地址的访问次数被重置之前立即执行。
在步骤S802,数据属性确定单元310可以基于阈值针对相应本地地址而确定存储在存储器***110中的所有数据的属性。具体地,数据属性确定单元310内的比较器(未示出)可以针对存储在存储器池150中的所有数据而将动态改变的阈值与相应本地地址的访问次数进行比较,并且针对相应本地地址确定所有数据的属性。基于确定结果,数据属性确定单元310可以针对相应本地地址确定存储在存储器池150中的数据的属性是否改变。数据属性确定单元310可以向映射管理单元312提供与属性被改变的数据相关联的本地地址。
在步骤S804,映射管理单元312可以改变***地址与本地地址之间的映射关系,使得属性被改变的数据被移动和存储到存储器池150的另一存储器单元中。
具体地,映射管理单元312可以通过参考映射表302和从数据属性确定单元310接收的本地地址来将与属性被改变的数据相关联的***地址映射到新本地地址。映射管理单元312可以将***地址与新本地地址之间的映射关系反映到映射表302中。映射管理单元312可以控制访问计数器306将新本地地址的访问次数改变为旧本地地址的访问次数。
映射管理单元312可以向数据输入/输出单元314提供从数据属性确定单元310接收的本地地址(即,旧本地地址)和新本地地址。
在步骤S806,数据输入/输出单元314可以将旧本地地址提供给存储器接口136。存储器接口136可以响应于读取命令而控制与旧本地地址相关联的存储器单元的读取操作,并且将通过读取操作读取的读取数据缓存在数据控制单元134内的缓冲器(未示出)中。
在步骤S808,数据输入/输出单元314可以向存储器接口136提供写入命令、新本地地址和缓存的读取数据。存储器接口136可以响应于写入命令而控制与新本地地址相关联的存储器单元的写入操作。
根据已经参考图8描述的存储器***110的数据属性更新操作,存储在存储器池150中的数据可以根据存储在存储器池150中的数据的属性来被分类和存储,该属性是基于相应地址的访问次数和动态改变的阈值来确定的。特别地,即使某些数据被确定为热数据并且因此存储在第一存储器单元中,当该数据被存储在第一存储器单元中而长时间没有被访问时,数据控制单元134也可以将对应的数据移动和存储到第二存储器单元中。
参考图1至图8描述的存储器***110可以作为存储器板安装在机架中,并且构成服务器***或数据处理***,诸如数据中心。将参考图9至图12描述根据一个实施例的包括存储器***110的数据处理***。
图9是示出数据处理***10的框图。参考图9,数据处理***10可以包括多个计算机架20、管理接口30和用于在计算机架20与管理接口30之间的通信的网络40。具有这种机架规模架构的数据处理***10可以由数据中心使用以用于处理大规模数据。
每个计算机架20可以单独实现一个计算设备。替代地,每个计算机架20可以与一个或多个其他计算机架组合以实现一个计算设备。下面描述计算机架20的示例结构和操作。
管理接口30可以针对用户提供交互式接口以控制、监管或管理数据处理***10。管理接口30可以被实现为任何类型的计算设备,包括计算机、多处理器***、服务器、机架式服务器、板载服务器、便携式计算机、笔记本计算机、平板计算机、可穿戴计算设备、网络设备、Web设备、分布式计算***、基于处理器的***、消费类电子设备等中的任何一种。
在本公开的一些实施例中,管理接口30可以被实现为具有可以由计算机架20执行的操作功能或者具有可以由管理接口30执行的用户接口功能的分布式***。在本公开的其他实施例中,管理接口30可以被实现为包括遍布网络40的多计算设备的虚拟云服务器。管理接口30可以包括处理器、输入/输出子***、存储器、数据存储设备、通信电路等。
网络40可以在计算机架20与管理接口30之间和/或在计算机架20之间提供和/或接收数据。网络40可以用适当数目的各种有线和/或无线网络来实现。例如,网络40可以包括公共可访问的全球网络,诸如有线或无线局域网(LAN)、广域网(WAN)、蜂窝网络和/或因特网。另外,网络40可以包括适当数目的辅助网络设备,诸如辅助计算机、路由器、交换机等。
图10示出了根据本公开的实施例的计算机架的架构。
参考图10,计算机架20可以包括各种形式和结构的组成元件。例如,计算机架20可以包括多个抽屉21至29。抽屉21至29中的每一个可以包括多个模块,每个模块可以包括多个板。
在本公开的各种实施例中,计算机架20可以通过适当数目的计算机板、存储器板和/或互连板的组合来实现。计算机架20被描述为板的组合,但是计算机架20也可以由其他元件来实现,诸如抽屉、模块、托盘、板、窗扇或其他合适的单元。计算机架20可以具有其中其组成元件根据其功能被分解和分类的结构。计算机架20可以具有互连板、计算机板和存储器板的结构,该结构具有从上到下的分类顺序,但是计算机架20不限于这种结构。计算机架20和包括计算机架20的计算设备可以被称为“机架规模***”或“分解***”。
在本公开的实施例中,计算设备可以实现为一个计算机架20。在其他实施例中,计算设备可以由两个或更多个计算机架20的全部或一些组成元件来实现,或者由一个计算机架20的某些组成元件来实现。
在本公开的各种实施例中,可以通过计算机架20中包括的适当数目的计算机板、存储器板和互连板的组合来实现计算设备。如图10所示,计算机架20A可以包括两个计算机板、三个存储器板和一个互连板。在其他示例中,计算机架20B可以包括三个计算机板、两个存储器板和一个互连板。在其他示例中,计算机架20C可以包括一个计算机板、四个存储器板和一个互连板。
尽管图10示出了计算机架20包括适当数目的计算机板、存储器板和互连板的示例,但是计算机架20可以包括可以被包括在典型服务器中的其他组成元件,诸如电源***、冷却***、输入/输出设备等。
图11示出了根据本公开的实施例的计算设备100。
参考图11,计算设备100可以包括多个计算机板200、多个存储器板400和互连板300。计算机板200可以是池式计算机板或池式计算机***。存储器板可以是池式存储器板或池式存储器***。计算设备100被描述为多个板的组合,但是计算设备100也可以由诸如抽屉、模块、托盘、板、窗扇或其他合适的单元等元件来实现。
每个计算机板200可以包括诸如一个或多个处理器、处理/控制电路和中央处理单元(CPU)等处理元件。参考图1描述的主机102可以对应于计算机板200。
每个存储器板400可以包括各种类型的存储器,诸如多个易失性存储器和/或非易失性存储器。例如,每个存储器板400可以包括多个动态随机存取存储器(DRAM)、闪存、存储器卡、硬盘驱动器(HDD)、固态驱动器(SSD)和/或其组合。
参考图1至图8描述的存储器***110可以对应于每个存储器板400。每个存储器板400可以包括控制器,该控制器基于每个本地地址的时变访问次数来动态地改变阈值,并且根据基于阈值而确定的数据属性来改变***地址与本地地址之间的映射关系以对数据进行分类和存储。
每个存储器板400可以由每个计算机板200中包括的一个或多个处理元件划分、分配或指定并且使用。此外,每个存储器板400可以存储可以由计算机板200初始化和/或执行的一个或多个操作***(OS)。
互连板300可以包括可以由每个计算机板200中包括的一个或多个处理元件划分、分配或指定并且使用的通信电路、通信设备或其组合。例如,互连板300可以由任何合适数目的网络接口端口、接口卡或接***换机来实现。互连板300可以使用与一种或多种有线通信技术相关的协议来进行通信。例如,互连板300可以基于诸如***部件互连快速(PCIe)、快速通道互连(QPI)、以太网等协议中的一种或多种来支持计算机板200与存储器板400之间的通信。
图12是示出根据本公开的实施例的计算机板200的框图。
参考图12,计算机板200可以包括一个或多个中央处理单元(CPU)210、一个或多个本地存储器220和输入/输出(I/O)接口230。
CPU 210可以在图11所示的存储器板400之中划分、分配或指定要使用的一个或多个存储器板。CPU 210还可以初始化一个或多个存储器板,并且对一个或多个存储器板执行数据读取操作和/或数据写入(即,编程)操作。
本地存储器220可以存储数据以执行CPU 210的操作。在本公开的各种实施例中,本地存储器220可以与CPU 210具有一一对应关系。
输入/输出接口230可以通过图11的互连板300来支持CPU 210与存储器板400之间的接口。输入/输出接口230可以使用与一种或多种有线通信技术相关的协议,将数据从CPU210输出和提供给互连板300,并且接收从互连板300输入到CPU 210的数据。例如,输入/输出接口230可以使用诸如***部件互连快速(PCIe)、快速通道互连(QPI)、以太网等一种或多种协议来支持CPU 210与互连板300之间的通信。
根据各个实施例,可以提供一种存储器***,其根据本地地址的访问次数来分别确定数据属性,并且将具有不同属性的数据分类和存储在存储器池中。
尽管已经出于说明性目的描述了各种实施例,但是对于本领域技术人员很清楚的是,在不脱离如所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和修改。

Claims (18)

1.一种存储器***,包括:
存储器池,包括多个存储器单元;以及
控制器,适于控制所述多个存储器单元,
其中所述控制器包括:
转换单元,适于将***地址转换为所述存储器池内的本地地址,所述***地址是与访问命令一起从主机接收的;
阈值决定单元,适于基于针对所述存储器池内的数据的每个本地地址的访问次数来动态地改变阈值;
数据属性确定单元,适于基于所述阈值和转换后的本地地址的访问次数来确定与所述转换后的本地地址相关联的数据的属性;以及
数据输入/输出单元,适于基于所述数据的属性来控制与新本地地址相关联的存储器单元以将所述数据存储在所述多个存储器单元之中与所述新本地地址相对应的存储器区域中。
2.根据权利要求1所述的存储器***,
其中所述多个存储器单元中的每个存储器单元是第一存储器单元和第二存储器单元中的任何一个,以及
其中所述数据输入/输出单元根据所述转换后的本地地址的访问次数是否等于或大于所述阈值来控制与所述新本地地址相关联的存储器单元以将所述数据存储在所述第一存储器单元和所述第二存储器单元中的任何一个中。
3.根据权利要求2所述的存储器***,其中所述控制器进一步包括地址映射单元,所述地址映射单元适于将所述***地址映射到所述新本地地址。
4.根据权利要求2所述的存储器***,其中所述阈值决定单元以预定周期将所述阈值改变为针对所述存储器池内的所述数据的相应本地地址的访问次数的最大值和最小值的平均值。
5.根据权利要求2所述的存储器***,其中所述阈值决定单元以预定周期将所述阈值改变为以下中的较小值:预定上限值、以及针对所述存储器池内的所述数据的相应本地地址的访问次数的最大值和最小值的平均值。
6.根据权利要求2所述的存储器***,
其中所述访问命令是读取命令,以及
其中当由所述数据属性确定单元确定所述数据的属性被改变时,所述数据输入/输出单元控制与所述新本地地址相关联的存储器单元以将从与所述转换后的本地地址相对应的存储器区域读取的数据存储在与所述新本地地址相对应的存储器区域中。
7.根据权利要求2所述的存储器***,
其中所述访问命令是写入命令,以及
其中当由所述数据属性确定单元确定所述数据的属性被改变时,所述数据输入/输出单元控制与所述新本地地址相关联的存储器单元以将从所述主机接收的写入数据存储在与所述新本地地址相对应的存储器区域中。
8.根据权利要求2所述的存储器***,
其中所述数据属性确定单元进一步针对相应本地地址周期性地确定所述存储器池内的所有数据的属性,
其中所述数据输入/输出单元进一步从与本地地址相对应的存储器区域中获取所述存储器池内的所有数据之中的由所述数据属性确定单元确定为其属性被改变的数据,并且控制与所述新本地地址相关联的存储器单元以将所获取的数据存储在与所述新本地地址相对应的存储器区域中。
9.根据权利要求2所述的存储器***,
其中所述第一存储器单元是DRAM单元,以及
其中所述第二存储器单元是NAND闪存单元。
10.一种包括存储器池的存储器***的操作方法,所述操作方法包括:
将***地址转换为所述存储器池内的本地地址,所述***地址是与访问命令一起从主机接收的;
基于针对所述存储器池内的数据的每个本地地址的访问次数来动态地改变阈值;
基于所述阈值和转换后的本地地址的访问次数来确定与所述转换后的本地地址相关联的数据的属性;以及
基于所述数据的属性来将所述数据存储在所述多个存储器单元之中与新本地地址相对应的存储器区域中。
11.根据权利要求10所述的操作方法,
其中所述存储器池包括一个或多个第一存储器单元和一个或多个第二存储器单元,
其中将所述数据存储在与所述新本地地址相对应的存储器区域中包括:根据所述转换后的本地地址的访问次数是否等于或大于所述阈值来将所述数据存储在所述第一存储器单元和所述第二存储器单元中的任何一个中。
12.根据权利要求10所述的操作方法,进一步包括:将所述***地址映射到所述新本地地址。
13.根据权利要求10所述的操作方法,其中改变所述阈值包括:以预定周期将所述阈值改变为针对所述存储器池内的所述数据的相应本地地址的访问次数的最大值和最小值的平均值。
14.根据权利要求10所述的操作方法,其中改变所述阈值包括:以预定周期将所述阈值改变为以下中的较小值:预定上限值、以及针对所述存储器池内的所述数据的相应本地地址的访问次数的最大值和最小值的平均值。
15.根据权利要求10所述的操作方法,
其中所述访问命令是读取命令,以及
其中将所述数据存储包括:当所述数据的属性被确定为改变时,将从与所述转换后的本地地址相对应的存储器区域读取的数据存储在与所述新本地地址相对应的存储器区域中。
16.根据权利要求10所述的操作方法,
其中所述访问命令是写入命令,以及
其中将所述数据存储包括:当所述数据的属性被确定为改变时,将从所述主机接收的写入数据存储在与所述新本地地址相对应的存储器区域中。
17.根据权利要求10所述的操作方法,进一步包括:
针对相应本地地址周期性地确定所述存储器池内的所有数据的属性;
从与本地地址相对应的存储器区域中获取所述存储器池内的所有数据之中的其属性被确定为改变的数据;以及
将所获取的数据存储在与所述新本地地址相对应的存储器区域中。
18.一种存储器***,包括:
第一设备和第二设备,分别包括异构存储区域;以及
控制器,被配置为:
在每次访问指示相应存储区域内的位置的本地地址时,对所述本地地址的访问次数进行计数,所述本地地址是基于映射信息从访问请求***地址转换得到的,所述映射信息表示***地址与指示所述存储区域内的位置的本地地址之间的关系;
以预定周期基于所述映射信息内的对所述本地地址的访问次数来更新阈值;
将热数据从所述第二设备的存储区域移动到所述第一设备的存储区域,并且将冷数据从所述第一设备的存储区域移动到所述第二设备的存储区域;以及
根据所述热数据和所述冷数据的移动来改变所述映射信息内的所述本地地址,
其中所述热数据的本地地址的访问次数为所述阈值或更大,以及
其中所述冷数据的本地地址的访问次数小于所述阈值。
CN201910967869.6A 2018-12-21 2019-10-12 存储器***及其操作方法 Active CN111352857B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180167585A KR20200078047A (ko) 2018-12-21 2018-12-21 메모리 시스템 및 메모리 시스템의 동작방법
KR10-2018-0167585 2018-12-21

Publications (2)

Publication Number Publication Date
CN111352857A true CN111352857A (zh) 2020-06-30
CN111352857B CN111352857B (zh) 2023-04-14

Family

ID=71098485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910967869.6A Active CN111352857B (zh) 2018-12-21 2019-10-12 存储器***及其操作方法

Country Status (4)

Country Link
US (1) US11243716B2 (zh)
JP (1) JP7449063B2 (zh)
KR (1) KR20200078047A (zh)
CN (1) CN111352857B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286843A (zh) * 2020-08-12 2021-01-29 深圳安捷丽新技术有限公司 数据存储***的***和方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11158358B2 (en) 2019-07-22 2021-10-26 Micron Technology, Inc. Adaptive write operations for a memory device
US11669455B2 (en) 2021-05-05 2023-06-06 Meta Platforms, Inc. Systems and methods for profiling host-managed device memory
CN115841415A (zh) * 2021-09-18 2023-03-24 平头哥(上海)半导体技术有限公司 处理***、操作处理***的方法和计算机可读存储介质
CN115373594A (zh) * 2022-07-12 2022-11-22 浙江大学 一种双向动态切换的存储***及动态切换管理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751996A (zh) * 2008-12-08 2010-06-23 富士通株式会社 非易失性存储器
US20110040932A1 (en) * 2009-08-12 2011-02-17 Texas Memory Systems, Inc. Efficient Reduction of Read Disturb Errors in NAND FLASH Memory
US20150039837A1 (en) * 2013-03-06 2015-02-05 Condusiv Technologies Corporation System and method for tiered caching and storage allocation
CN104809074A (zh) * 2014-01-28 2015-07-29 日本电气株式会社 存储器控制设备、信息处理装置和存储器控制方法
US20160210067A1 (en) * 2014-04-08 2016-07-21 International Business Machines Corporation File system snapshot data management in a multi-tier storage environment
US20170277471A1 (en) * 2016-03-22 2017-09-28 Via Technologies, Inc. Non-volatile memory apparatus and operating method thereof
CN108073470A (zh) * 2016-11-07 2018-05-25 三星电子株式会社 执行地址映射表的纠错的存储器***及其控制方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496711B2 (en) 2006-07-13 2009-02-24 International Business Machines Corporation Multi-level memory architecture with data prioritization
KR101498673B1 (ko) 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
JP2011186558A (ja) 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法
JP5995071B2 (ja) 2012-09-19 2016-09-21 学校法人 中央大学 メモリコントローラ,データ記憶装置およびメモリの制御方法
JP2018036711A (ja) 2016-08-29 2018-03-08 富士通株式会社 ストレージシステム,ストレージ制御装置および制御プログラム
JP6765321B2 (ja) 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
US10496315B1 (en) * 2018-07-05 2019-12-03 Western Digital Technologies, Inc. Unified tier and cache structure

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751996A (zh) * 2008-12-08 2010-06-23 富士通株式会社 非易失性存储器
US20110040932A1 (en) * 2009-08-12 2011-02-17 Texas Memory Systems, Inc. Efficient Reduction of Read Disturb Errors in NAND FLASH Memory
US20150039837A1 (en) * 2013-03-06 2015-02-05 Condusiv Technologies Corporation System and method for tiered caching and storage allocation
CN104809074A (zh) * 2014-01-28 2015-07-29 日本电气株式会社 存储器控制设备、信息处理装置和存储器控制方法
US20160210067A1 (en) * 2014-04-08 2016-07-21 International Business Machines Corporation File system snapshot data management in a multi-tier storage environment
US20170277471A1 (en) * 2016-03-22 2017-09-28 Via Technologies, Inc. Non-volatile memory apparatus and operating method thereof
CN108073470A (zh) * 2016-11-07 2018-05-25 三星电子株式会社 执行地址映射表的纠错的存储器***及其控制方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AGRAWAL, N: "Design tradeoffs for SSD performance" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286843A (zh) * 2020-08-12 2021-01-29 深圳安捷丽新技术有限公司 数据存储***的***和方法
CN112286843B (zh) * 2020-08-12 2022-04-08 深圳安捷丽新技术有限公司 数据存储***的***和方法

Also Published As

Publication number Publication date
JP2020102197A (ja) 2020-07-02
KR20200078047A (ko) 2020-07-01
US11243716B2 (en) 2022-02-08
CN111352857B (zh) 2023-04-14
JP7449063B2 (ja) 2024-03-13
US20200201573A1 (en) 2020-06-25

Similar Documents

Publication Publication Date Title
CN111352857B (zh) 存储器***及其操作方法
CN110008149B (zh) 融合式存储器件及其操作方法
US8595463B2 (en) Memory architecture with policy based data storage
JP2022548642A (ja) タイプ付けされていないメモリアクセスのタイプ付けされているメモリアクセスに対するマッピング
US20200348871A1 (en) Memory system, operating method thereof and computing system for classifying data according to read and write counts and storing the classified data in a plurality of types of memory devices
JP2021034052A (ja) 異種メモリを有するメモリシステム、これを含むコンピュータシステム及びそのデータ管理方法
US11461024B2 (en) Computing system and operating method thereof
CN112214161B (zh) 存储器***及其操作方法
KR102347871B1 (ko) 캐시 관리 매커니즘을 갖는 컴퓨팅 시스템 및 그 동작방법
US11016666B2 (en) Memory system and operating method thereof
KR102433549B1 (ko) 통합 메모리 디바이스 및 그의 동작 방법
CN111435337A (zh) 存储器***和数据处理***
JP2020087409A (ja) データ処理システム
CN118259829A (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
GR01 Patent grant
GR01 Patent grant