CN114764307A - 计算机***及其数据管理方法 - Google Patents
计算机***及其数据管理方法 Download PDFInfo
- Publication number
- CN114764307A CN114764307A CN202110954954.6A CN202110954954A CN114764307A CN 114764307 A CN114764307 A CN 114764307A CN 202110954954 A CN202110954954 A CN 202110954954A CN 114764307 A CN114764307 A CN 114764307A
- Authority
- CN
- China
- Prior art keywords
- main memory
- data
- memory
- computer system
- management 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 25
- 238000013523 data management Methods 0.000 title claims description 15
- 230000015654 memory Effects 0.000 claims abstract description 305
- 238000007726 management method Methods 0.000 claims abstract description 55
- 238000012545 processing Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000009977 dual effect Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011946 reduction process Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
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 Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及一种计算机***及其管理方法。该计算机***包括:第一主存储器;第二主存储器,具有与该第一主存储器的访问延迟不同的访问延迟;以及存储器管理***,被配置为通过将第二主存储器划分为多个页面来管理该第二主存储器,基于在第二主存储器中存储的数据的写入计数在该多个页面之中检测热页面,并且将该热页面的数据移动到第二主存储器中的新页面和第一主存储器中。
Description
技术领域
各个实施例总体涉及一种计算机***,并且更特别地,涉及一种包括具有异构存储器的存储器装置的计算机***及其数据管理方法。
背景技术
计算机***可以包括各种类型的存储器装置。存储器装置包括存储数据的存储器和控制该存储器的操作的存储器控制器。存储器可以是易失性存储器,诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM),或者可以是非易失性存储器,诸如电可擦可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PCRAM)、磁性RAM(MRAM)或闪速存储器。当电源中断时,存储在易失性存储器中的数据丢失,而即使当电源中断时,存储在非易失性存储器中的数据也不丢失。近来,正在开发一种安装有异构存储器的主存储器装置。
易失性存储器具有操作(例如,写入和读取)速度高但是能耗大的特性,而非易失性存储器具有能量效率优异但其寿命有限的特性。由于这个事实,为了提高存储器***的性能,需要根据存储器的特性分别存储频繁访问的数据(例如,热数据)和不经常访问的数据(例如,冷数据)。
发明内容
在实施例中,一种计算机***可以包括:第一主存储器;第二主存储器,具有与第一主存储器的访问延迟不同的访问延迟;以及存储器管理***,被配置为通过将第二主存储器划分为多个页面来管理该第二主存储器,基于在第二主存储器中存储的数据的写入计数在该多个页面之中检测热页面,并且将该热页面的数据移动到第二主存储器中的新页面和第一主存储器中。
在实施例中,一种计算机***的数据管理方法,该计算机***包括第一主存储器以及访问延迟与第一主存储器的访问延迟不同的第二主存储器,该数据管理方法可以包括:通过存储器管理***基于在第二主存储器中存储的数据的写入计数来检测热页面,该存储器管理***通过将该第二主存储器划分为多个页面来管理该第二主存储器;以及通过该存储器管理***将热页面的数据移动到该第二主存储器中的新页面和该第一主存储器中。
在实施例中,一种计算机***,可以包括:中央处理单元;主存储器装置,包括为异构存储器的第一主存储器和第二主存储器,该第二主存储器包括多个页面;以及存储器管理***,联接在该中央处理单元和该主存储器装置之间,该存储器管理***包括被配置为控制第一主存储器的第一存储器控制器和被配置为控制第二主存储器的第二存储器控制器。存储器管理***被配置为控制第一存储器控制器和第二存储器控制器以:响应于写入命令而从中央处理单元接收数据;确定接收到的数据是否为热数据;当确定接收到的数据为热数据时,确定第一主存储器的裕度;并且当确定接收到的数据为热数据且第一主存储器的裕度大于阈值裕度时,将热数据从其在第二主存储器中的当前位置移动至第二主存储器中的另一位置,并且将热数据存储在第一主存储器中,该热数据带有指示不从第一主存储器中逐出该热数据的标签。
附图说明
图1是示出根据实施例的计算机***的配置的示图。
图2是示出根据实施例的存储器管理***的配置的示图。
图3和图4是示出根据实施例的计算机***的数据管理方法的流程图。
图5和图6是示出根据本发明的实施例的***的示例的示图。
具体实施方式
下面通过各个实施例参照附图描述包括具有异构存储器的主存储器装置的计算机***及其数据管理方法。在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。术语“实施例”在本文中使用时不一定指的是所有实施例。
图1是示出根据实施例的计算机***10的配置的示图。
参照图1,计算机***10可以包括通过***总线电联接的中央处理单元(CPU)100、存储器管理***200、主存储器装置300、存储装置400和外部装置接口(IF)500。CPU 100可以包括高速缓存存储器150。可选地,高速缓存存储器150可以设置在CPU 100的外部并且可操作地联接到CPU 100。
CPU 100可以是各种商用处理器中的任何一种。可以采用双微处理器、多核处理器和其他多处理器体系结构作为CPU 100。
CPU 100可以处理或运行存储在主存储器装置300中的程序和/或数据。例如,CPU100可以响应于从时钟信号发生器(未示出)输出的时钟信号来处理或运行程序和/或数据。CPU 100可以通过存储器管理***200来访问高速缓存存储器150和主存储器装置300。
高速缓存存储器150是指用于减少由于在通信中两个装置之间的速度的显著差异而引起的瓶颈现象的通用存储器。换言之,高速缓存存储器150用于减轻以高的速度运行的CPU 100与以相对低的速度运行的主存储器装置300之间的数据瓶颈现象。高速缓存存储器150可以高速缓存在主存储器装置300中存储的数据之中被CPU 100频繁访问的数据。
尽管未示出,但是根据操作速度和到CPU 100的物理距离,高速缓存存储器150可以被配置为多个级别。例如,高速缓存存储器150可以包括第一级(L1)高速缓存和第二级(L2)高速缓存。通常,L1高速缓存可以内置在CPU 100中并且可以首先用于参考和使用数据。L1高速缓存可以是高速缓存之中速度最快的,但在存储容量方面可能较小。如果L1高速缓存中不存在数据(例如,在高速缓存缺失的情况下),则CPU 100可以访问L2高速缓存。L2高速缓存可以比L1高速缓存速度慢但比L1高速缓存存储容量大。如果甚至在L2高速缓存中也不存在数据,则CPU 100访问主存储器装置300。
主存储器装置300可以包括第一主存储器310和第二主存储器320。第一主存储器310和第二主存储器320可以是结构和访问延迟均不同的异构存储器。例如,第一主存储器310可以包括易失性存储器(VM),第二主存储器320可以包括非易失性存储器(NVM)。例如,易失性存储器可以是动态随机存取存储器(DRAM),非易失性存储器可以是相变RAM(PCRAM),但是本公开不具体限于此。
在实施例中,第一主存储器310可以是CPU 100的最后一级高速缓存(LLC)。在另一实施例中,第一主存储器310可以是第二主存储器320的写入缓冲器。
存储器管理***200可以在CPU 100的控制下将在CPU 100中使用或处理的程序和/或数据存储在高速缓存存储器150和/或主存储器装置300中。进一步,存储器管理***200可以在CPU 100的控制下读取在高速缓存存储器150和/或主存储器装置300中存储的数据。
存储器管理***200可以包括高速缓存控制器210、第一存储器控制器220和第二存储器控制器230。
高速缓存控制器210控制高速缓存存储器150的一般操作。换言之,高速缓存控制器210包括内部算法和处理内部算法的硬件,处理内部算法可以包括确定加载在主存储器装置300中的数据之中的哪些数据待存储在高速缓存存储器150中,当高速缓存存储器150已满时将替换哪些数据以及高速缓存存储器150中是否存在从CPU 100请求的数据。为此,高速缓存控制器210可以使用代表高速缓存数据与存储在主存储器装置300中的数据之间的关系的映射表。
第一存储器控制器220可以将第一主存储器310划分为多个块,并且可以控制第一主存储器310的操作。在实施例中,第一存储器控制器220可以控制第一主存储器310执行与从CPU 100接收的命令相对应的操作。第一主存储器310可以根据从第一存储器控制器220提供的命令来执行将数据写入到存储器单元阵列(未示出)或从存储器单元阵列读取数据的操作。
第二存储器控制器230可以控制第二主存储器320的操作。第二存储器控制器230可以控制第二主存储器320执行与从CPU 100接收的命令相对应的操作。在实施例中,第二存储器控制器230可以以页面为单位管理第二主存储器320的数据存储区域。
特别地,当在第二主存储器320的页面之中检测到热页面,即存储热数据的页面时,存储器管理***200可以将检测到的热数据移动到第二主存储器320中的另一页面,从而统一管理第二主存储器320的损耗。
在下列描述中,热页面和热数据可以具有相同的含义。热页面或热数据可以是写入计数或重写入计数已达到设置的阈值TH的页面或数据。
另外,通过使检测到的热数据保留在第一主存储器310中,即,通过防止将检测到的热数据从第一主存储器310逐出到第二主存储器320,可以提供对热数据的快速访问,并且与此同时,可以使对第二主存储器320的访问次数最小化。
由此,根据本技术,可以同时实现第二主存储器320的损耗均衡和损耗减少。
计算机***10可以短时间且临时地将数据存储在主存储器装置300中。主存储器装置300可以存储具有文件***格式的数据,或者可以通过分别设置只读空间来存储操作***程序。当CPU 100运行应用程序时,可以从存储装置400读取应用程序的至少一部分,并且将该部分加载到主存储器装置300中。
存储装置400可以包括硬盘驱动器(HDD)和固态驱动器(SSD)中的至少一种。存储装置400可以用作计算机***10长时间存储用户数据的存储介质。操作***(OS)、应用程序、程序数据等等可以存储在存储装置400中。
外部装置接口500可以包括输入装置接口、输出装置接口和网络装置接口。输入装置可以是键盘、鼠标、麦克风或扫描仪。用户可以通过输入装置向计算机***10输入命令、数据和信息。
输出装置可以是监控器、打印机或扬声器。可以通过输出装置来表示计算机***10对用户命令的执行过程和处理结果。
网络装置可以包括被配置为支持各种通信协议的硬件和软件。计算机***10可以通过网络装置接口与远程定位的另一计算机***通信。
图2是示出根据实施例的存储器管理***200的配置的示图。
参照图2,存储器管理***200可以包括条目管理组件201、地址映射组件203、属性管理组件205、第一存储器控制器220、第二存储器控制器230和移动器207。
条目管理组件201可以以条目(ENTRY)为单位对在计算机***10中使用的数据进行管理。每个条目可以包括数据值和包括该数据值的标识符的元信息(META)。在实施例中,条目管理组件201可以通过采用使用键作为唯一标识符的键值条目来配置数据,以对待传输到联接到计算机***10的主机装置或客户端装置的数据以及从联接到计算机***10的主机装置或客户端装置接收的数据进行管理。
主机装置或客户端装置请求的数据可以高速缓存在高速缓存存储器150中。如果是这样的话,则根据在计算机***10中采用的高速缓存管理策略,通过连续写入或回写来将请求写入的数据移动到主存储器装置300。
地址映射组件203将请求读取或请求写入的数据的逻辑地址映射到在计算机***10中使用的物理地址。在实施例中,地址映射组件203可以对应于逻辑地址来映射高速缓存存储器150的地址或主存储器装置300的地址,并且可以管理存储在相应区域中的数据的有效性。
通过该过程,存储器管理***200可以访问高速缓存存储器150或主存储器装置300,以处理请求写入或请求读取的数据。
属性管理组件205可以基于请求写入的数据的写入计数来管理请求写入的数据的属性例如是热数据还是冷数据。
在实施例中,属性管理组件205可以管理访问计数表2051中的逻辑地址ADD和请求写入的数据的写入计数CNT。特别地,属性管理组件205可以管理访问计数表2051中的写入请求的数据之中、存储在第二主存储器320中的数据的每个逻辑地址的写入计数。
属性管理组件205可以将在第二主存储器320中存储的数据之中的、写入计数CNT大于或等于设置的阈值TH的数据确定为热数据。
第一存储器控制器220可以将第一主存储器310划分为多个块,并且可以管理该多个块的使用状态。第一存储器控制器220可以基于第一主存储器310的高速缓存缺失计数和第一主存储器310中包括的块的数量来确定第一主存储器310的裕度。如果在设定的时间内第一主存储器310的高速缓存缺失计数大于第一主存储器310的块的数量,即,如果先前存储在第一主存储器310中的数据在设定的时间内未被访问,则第一存储器控制器220可以确定第一主存储器310的裕度高。在实施例中,裕度可以是用于确定是否可以覆盖先前存储在第一主存储器310中的数据的标准。
这里,“块”应理解为是指第一主存储器310的数据存储单位。
第二存储器控制器230可以响应于对热数据的检测而使用属性管理组件205来选择第二主存储器320的特定页面。
第二存储器控制器230可以将第二主存储器320划分为多个页面,并且可以管理最近最少使用(LRU)队列231中的页面,在该LRU队列中,以特定的访问顺序,例如,从最近最少使用(LRU)到最近最常使用(MRU),存储各个页面的地址,反之亦然。为了防止由于在第二主存储器320中的固定位置处连续更新由属性管理组件205检测到的热数据而引起第二主存储器320损耗,第二存储器控制器230可以从LRU队列231选择热数据待被移动到的新页面。
这里,“页面”应理解为是指第二主存储器320的数据存储单位。块和页面可以具有相同或不同的大小。
移动器207可以将热数据移动到由第二存储器控制器230选择的新页面。
参照图2,在存储在第二主存储器320中的数据之中,可以将在第二页面P2中存储的数据Value2检测为热数据。如果在第二页面P2中重复更新Value2,则可能降低或缩短相应区域的寿命。因此,如果属性管理组件205将Value2检测为热数据,则第二存储器控制器230分配Value2待被移动到的新页面Pn,从而将Value2移动到新页面Pn。此后,第二存储器控制器230使曾存储Value2的第二页面P2的数据无效。
移动器207可以将Value2存储在第一主存储器310中。可以通过添加热数据标签(Tag)经由访问计数表2051来对Value2进行管理,该热数据标签(Tag)指示Value2是在第二主存储器320中其页面已被替换的热数据。
如果第一主存储器310已满,则执行将第一主存储器310的数据逐出到第二主存储器320的数据逐出操作。此后,确定添加有热数据标签的数据具有逐出到第二主存储器320的低优先级,从而可以减少对第二主存储器320的访问计数。
图3和图4是示出根据实施例的计算机***的数据管理方法的流程图。
在描述图3和图4的数据管理方法时,假定当计算机***10从主机或客户端装置接收到针对写入数据的请求时,存储器管理***200以条目为单位通过映射物理地址来管理写入数据。每个条目可以包括数据值和包括该数据值的标识符的元信息(META)。
响应于主机装置或客户端装置的写入命令(S100),地址映射组件203将请求写入的数据的逻辑地址转换为在计算机***10中使用的物理地址(S101)。
属性管理组件205包括用于管理每个逻辑地址ADD的写入计数CNT的访问计数表2051。属性管理组件205可以增加与请求写入的数据的逻辑地址ADD相对应的写入计数CNT(S103)。
当请求写入的数据存储在第二主存储器320中时,属性管理组件205可以基于写入计数CNT来确定该数据是否为热数据(S105)。例如,当写入计数CNT大于或等于设置的阈值TH时,属性管理组件205可以确定该数据是热数据。
当确定数据是热数据(S105:是)时,第一存储器控制器220可以确定第一主存储器310的裕度(S107)。在实施例中,第一存储器控制器220可以通过将第一主存储器310划分为多个块来管理第一主存储器310,并且可以基于第一主存储器310的高速缓存缺失计数和第一主存储器310中块的数量来确定第一主存储器310的裕度。如果在设定的时间内第一主存储器310的高速缓存缺失计数大于第一主存储器310的块的数量,则第一存储器控制器220可以确定第一主存储器310的裕度高。否则,将第一主存储器310的裕度确定为低。
当确定第一主存储器310的裕度高(S107:是)时,第二存储器控制器230可以在第二主存储器320中选择特定的页面,并且可以执行数据移动过程(S109)。
当确定数据不是热数据(S105:否)时,或者当确定第一主存储器310的裕度低(S107:否)时,可以将请求写入的数据存储在第二主存储器320中(S111)。
参照图4,详细描述数据移动过程S109。
参照图4,数据移动过程S109可以包括损耗均衡过程S200和损耗减少过程S300。
损耗均衡过程S200如下。
第二存储器控制器230可以管理LRU队列231中的配置第二主存储器320的多个页面。当检测到热数据时,第二存储器控制器230可以从LRU队列231选择热数据待被移动到的新页面(S201)。
移动器207可以将热数据移动到由第二存储器控制器230选择的新页面(S203)。由此,检测到热数据的事实指示存储热数据的区域是具有高访问频率的热页面,并且该热页面的数据可能是旧数据。此后,存储热数据的热页面的旧数据被无效(S205)。
总之,如果在存储在第二主存储器320中的数据之中检测到热数据,则可以将检测到的热数据移动到第二主存储器320中的另一页面,以统一管理第二主存储器320的损耗。
损耗减少过程S300如下。
移动器207可以将检测到的热数据存储在第一主存储器310中(S301)。然后可以将第二主存储器320中页面已被替换的那个热数据标记为热数据,这为第一主存储器310中的数据设置逐出优先级(S303)。在实施例中,标签指示不从第一主存储器310中逐出为热的关联数据。可以通过访问计数表2051来管理热数据标签。
如果第一主存储器310已满,则执行从第一主存储器310逐出数据并且将这种数据移动到第二主存储器320的数据逐出操作。因为防止了将标记为热数据的数据从第一主存储器310逐出到第二主存储器320,所以可以提供对热数据的快速访问,并且同时可以使对第二主存储器320的访问计数最小化。
这样,通过将第二主存储器320内的热数据例如从一个页面移动到另一页面,可以统一管理第二主存储器320的损耗(损耗均衡),并且通过允许在第一主存储器310中访问检测到的热数据,可以减少第二主存储器320的损耗(损耗减少)。
图5是示出根据实施例的***1000的配置的示例的示图。在图5中,***1000可以包括主板1110、处理器1120和存储器模块1130。组成***1000的组件可以安装在其上的主板1110可以称为母板。主板1110可以包括其中可以安装处理器1120的插槽(未示出)和其中可以安装存储器模块1130的插槽1140。主板1110可以包括用于电联接处理器1120和存储器模块1130的布线1150。处理器1120可以安装在主板1110上。处理器1120可以包括中央处理单元(CPU)、图形处理单元(GPU)、多媒体处理器(MMP)或数字信号处理器。此外,处理器1120可以通过组合诸如应用处理器(AP)的具有各种功能的处理器芯片,以片上***的形式来实现。
存储器模块1130可以通过主板1110的插槽1140而安装在主板1110上。存储器模块1130可以通过形成在模块衬底和插槽1140中的模块引脚与主板1110的布线1150联接。存储器模块1130中的每一个可以包括例如未缓冲的双列直插式存储器模块(UDIMM)、双列直插式存储器模块(DIMM)、注册双列直插式存储器模块(RDIMM)、负载减小的双列直插式存储器模块(LRDIMM)、小型双列直插式存储器模块(SODIMM)或非易失性双列直插式存储器模块(NVDIMM)。
存储器管理***200可以以硬件或硬件和软件的组合的形式安装在处理器1120中。图1中的主存储器装置300可以作为存储器模块1130应用。存储器模块1130中的每一个可以包括多个存储器装置1131。多个存储器装置1131中的每一个可以包括易失性存储器装置和非易失性存储器装置中的至少一个。易失性存储器装置可以包括SRAM、DRAM或SDRAM,而非易失性存储器装置可以包括ROM、PROM、EEPROM、EPROM、闪速存储器、PRAM、MRAM、RRAM或FRAM。图1中的主存储器装置300的第二主存储器320可以作为包括非易失性存储器装置的存储器装置1131应用。此外,存储器装置1131中的每一个可以包括堆叠式存储器装置或者由于堆叠多个芯片而形成的多芯片封装。
图6是示出根据实施例的***2000的配置的示例的示图。在图6中,***2000可以包括处理器2010、存储器控制器2020和存储器装置2030。处理器2010可以通过芯片组2040与存储器控制器2020联接,并且存储器控制器2020可以通过多条总线与存储器装置2030联接。尽管在图6中示出一个处理器2010,但是将注意的是,本发明不具体限于这种配置;可以物理地或逻辑地设置多个处理器。
芯片组2040可以提供处理器2010和存储器控制器2020之间的通信路径。处理器2010可以执行算术运算,并且可以通过芯片组2040将请求和数据传输到存储器控制器2020以输入/输出所需的数据。
存储器控制器2020可以通过多条总线将命令信号、地址信号、时钟信号和数据传输到存储器装置2030。通过从存储器控制器2020接收信号,存储器装置2030可以存储数据并且将所存储的数据传输到存储器控制器2020。存储器装置2030可以包括至少一个存储器模块。图1的主存储器装置300可以作为存储器装置2030应用。
在图6中,***2000可以进一步包括输入/输出总线2110,输入/输出装置2120、2130和2140,磁盘驱动器控制器2050和磁盘驱动器2060。芯片组2040可以与输入/输出总线2110联接。输入/输出总线2110可以提供用于将信号从芯片组2040传输到输入/输出装置2120、2130和2140的通信路径。输入/输出装置可以包括鼠标、视频显示器和键盘。输入/输出总线2110可以包括与输入/输出装置2120、2130和2140通信的任意通信协议。此外,输入/输出总线2110可以集成到芯片组2040中。
磁盘驱动器控制器2050可以通过与芯片组2040联接来操作。磁盘驱动器控制器2050可以提供芯片组2040与至少一个磁盘驱动器2060之间的通信路径。磁盘驱动器2060可以通过存储命令和数据用作外部数据存储装置。磁盘驱动器控制器2050和磁盘驱动器2060可以通过使用包括输入/输出总线2110的任意通信协议彼此通信或者与芯片组2040通信。
尽管上面已经描述各个实施例,但是本领域技术人员将理解的是,所描述的实施例仅是示例。因此,本发明不受所描述的实施例中的任何一个限制或不限于所描述的实施例中的任何一个。本发明涵盖落入权利要求书范围内的所公开的实施例中的任何一个的所有修改和变型。
Claims (19)
1.一种计算机***,包括:
第一主存储器;
第二主存储器,具有与所述第一主存储器的访问延迟不同的访问延迟;以及
存储器管理***,通过将所述第二主存储器划分为多个页面来管理所述第二主存储器,基于存储在所述第二主存储器中的数据的写入计数在所述多个页面之中检测热页面,并且将所述热页面的数据移动到所述第二主存储器中的新页面和所述第一主存储器中。
2.根据权利要求1所述的计算机***,其中所述存储器管理***响应于包括从外部装置接收的逻辑地址和数据的写入命令,生成并且更新存储所述逻辑地址的写入计数的访问计数表。
3.根据权利要求1所述的计算机***,其中所述存储器管理***通过标签来管理从所述第一主存储器逐出存储在所述第一主存储器中的数据的优先级,并且所述热页面的数据的逐出优先级被设置为低于其他数据的优先级。
4.根据权利要求1所述的计算机***,其中所述存储器管理***管理最近最少使用队列,即LRU队列,并且从所述LRU队列中选择所述新页面,所述LRU队列以特定的访问顺序将所述多个页面的地址存储在所述第二主存储器中。
5.根据权利要求1所述的计算机***,进一步包括:
中央处理单元,将数据传输到所述第一主存储器和所述第二主存储器并且从所述第一主存储器和所述第二主存储器接收数据,所述第一主存储器是所述中央处理单元的高速缓存存储器。
6.根据权利要求1所述的计算机***,其中所述第一主存储器是所述第二主存储器的写入缓冲器。
7.根据权利要求1所述的计算机***,所述存储器管理***将所述数据作为元信息和数据值对来管理。
8.根据权利要求1所述的计算机***,其中当先前存储在所述第一主存储器中的数据在设定的时间内未被访问时,所述存储器管理***将所述热页面的数据移动到所述第一主存储器。
9.一种计算机***的数据管理方法,所述计算机***包括第一主存储器以及访问延迟与所述第一主存储器的访问延迟不同的第二主存储器,所述数据管理方法包括:
通过存储器管理***基于存储在所述第二主存储器中的数据的写入计数来检测热页面,所述存储器管理***通过将所述第二主存储器划分为多个页面来管理所述第二主存储器;以及
通过所述存储器管理***将所述热页面的数据移动到所述第二主存储器中的新页面和所述第一主存储器中。
10.根据权利要求9所述的数据管理方法,进一步包括:
通过所述存储器管理***从外部装置接收包括逻辑地址和数据的写入命令;
对所述逻辑地址的写入计数进行计数;以及
基于所述计数的结果在所述多个页面之中检测所述热页面。
11.根据权利要求9所述的数据管理方法,进一步包括:
通过所述存储器管理***将移动到所述第一主存储器的所述热页面的数据的逐出优先级设置为低于其他数据的优先级。
12.根据权利要求9所述的数据管理方法,进一步包括:
通过所述存储器管理***以特定的访问顺序在最近最少使用队列即LRU队列中管理所述第二主存储器中的所述多个页面的地址;以及
从所述LRU队列选择所述新页面。
13.根据权利要求9所述的数据管理方法,其中所述存储器管理***管理将所述数据作为元信息和数据值对进行管理。
14.根据权利要求9所述的数据管理方法,其中将所述热页面的数据移动到所述第一主存储器包括当先前存储在所述第一主存储器中的数据在设定的时间内未被访问时,将所述热页面的数据移动到所述第一主存储器。
15.一种计算机***,包括:
中央处理单元;
主存储器装置,包括为异构存储器的第一主存储器和第二主存储器,所述第二主存储器包括多个页面;以及
存储器管理***,联接在所述中央处理单元和所述主存储器装置之间,所述存储器管理***包括控制所述第一主存储器的第一存储器控制器和控制所述第二主存储器的第二存储器控制器,所述存储器管理***控制所述第一主存储器和所述第二主存储器以:
响应于写入命令而从所述中央处理单元接收数据;
确定接收到的数据是否为热数据;
当确定接收到的数据为热数据时,确定所述第一主存储器的裕度;以及
当确定接收到的数据为热数据并且所述第一主存储器的裕度大于阈值裕度时,将所述热数据从其在所述第二主存储器中的当前位置移动到所述第二主存储器中的另一位置,并且将所述热数据存储在所述第一主存储器中,所述热数据带有指示不从所述第一主存储器中逐出所述热数据的标签。
16.根据权利要求15所述的计算机***,其中当确定接收到的数据不是热数据时或者当确定所述第一主存储器的裕度小于或等于所述阈值裕度时,所接收到的数据存储在所述第二主存储器中。
17.根据权利要求15所述的计算机***,其中所述存储器管理***基于存储在所述第二主存储器中的数据的写入计数来检测所述热数据。
18.根据权利要求15所述的计算机***,其中所述存储器管理***根据先前存储在所述第一主存储器中的数据在设定的时间内是否被访问,来确定所述第一主存储器的裕度。
19.根据权利要求15所述的计算机***,其中所述存储器管理***管理最近最少使用队列,即LRU队列,并且从所述LRU队列中选择另一位置,所述LRU队列以特定的访问顺序将所述多个页面的地址存储在所述第二主存储器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/150,183 US20220229552A1 (en) | 2021-01-15 | 2021-01-15 | Computer system including main memory device having heterogeneous memories, and data management method thereof |
US17/150,183 | 2021-01-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114764307A true CN114764307A (zh) | 2022-07-19 |
Family
ID=82364977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110954954.6A Pending CN114764307A (zh) | 2021-01-15 | 2021-08-19 | 计算机***及其数据管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220229552A1 (zh) |
KR (1) | KR20220103574A (zh) |
CN (1) | CN114764307A (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100725390B1 (ko) * | 2005-01-06 | 2007-06-07 | 삼성전자주식회사 | 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법 |
US20130238851A1 (en) * | 2012-03-07 | 2013-09-12 | Netapp, Inc. | Hybrid storage aggregate block tracking |
CN110597451B (zh) * | 2018-06-12 | 2021-02-23 | 华为技术有限公司 | 一种虚拟化缓存的实现方法及物理机 |
CN110874186A (zh) * | 2018-09-04 | 2020-03-10 | 合肥沛睿微电子股份有限公司 | 闪存控制器及相关的存取方法及电子装置 |
US10872622B1 (en) * | 2020-02-19 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for deploying mixed storage products on a uniform storage infrastructure |
-
2021
- 2021-01-15 US US17/150,183 patent/US20220229552A1/en not_active Abandoned
- 2021-02-10 KR KR1020210019035A patent/KR20220103574A/ko unknown
- 2021-08-19 CN CN202110954954.6A patent/CN114764307A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220229552A1 (en) | 2022-07-21 |
KR20220103574A (ko) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8443144B2 (en) | Storage device reducing a memory management load and computing system using the storage device | |
CN111414132B (zh) | 带异构存储器的主存储设备、计算机***及数据管理方法 | |
US9075725B2 (en) | Persistent memory for processor main memory | |
KR101636634B1 (ko) | 프로세서로부터 메모리 서브시스템으로 데이터를 지능적으로 플러싱하기 위한 시스템 및 방법 | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
US20110161597A1 (en) | Combined Memory Including a Logical Partition in a Storage Memory Accessed Through an IO Controller | |
US11016905B1 (en) | Storage class memory access | |
US20170091099A1 (en) | Memory controller for multi-level system memory having sectored cache | |
CN111338561B (zh) | 存储器控制器与存储器页面管理方法 | |
US20220245066A1 (en) | Memory system including heterogeneous memories, computer system including the memory system, and data management method thereof | |
US20180095884A1 (en) | Mass storage cache in non volatile level of multi-level system memory | |
US20210056030A1 (en) | Multi-level system memory with near memory capable of storing compressed cache lines | |
US10180796B2 (en) | Memory system | |
US9977604B2 (en) | Memory system | |
CN110597742A (zh) | 用于具有持久***存储器的计算机***的改进存储模型 | |
CN108139983B (zh) | 用于在多级***存储器中固定存储器页面的方法和设备 | |
CN113448882A (zh) | 用于多级存储器的高效的管理的装置和方法 | |
US20220229552A1 (en) | Computer system including main memory device having heterogeneous memories, and data management method thereof | |
US20170153994A1 (en) | Mass storage region with ram-disk access and dma access | |
US11526448B2 (en) | Direct mapped caching scheme for a memory side cache that exhibits associativity in response to blocking from pinning | |
US20230052700A1 (en) | Memory expansion with persistent predictive prefetching | |
US20240211406A1 (en) | Systems, methods, and apparatus for accessing data from memory or storage at a storage node | |
KR20230068743A (ko) | 이종 메모리를 포함하는 컴퓨터 시스템 및 그것의 데이터 관리 방법 | |
US20170109064A1 (en) | Memory system | |
KR20200092019A (ko) | 비휘발성 메모리 장치의 데이터 관리 시스템 및 그 방법 |
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 |