CN112445423A - 存储器系统、计算机系统及其数据管理方法 - Google Patents
存储器系统、计算机系统及其数据管理方法 Download PDFInfo
- Publication number
- CN112445423A CN112445423A CN202010562294.2A CN202010562294A CN112445423A CN 112445423 A CN112445423 A CN 112445423A CN 202010562294 A CN202010562294 A CN 202010562294A CN 112445423 A CN112445423 A CN 112445423A
- Authority
- CN
- China
- Prior art keywords
- memory
- access
- access management
- memory device
- hot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 title claims abstract description 311
- 238000000034 method Methods 0.000 title claims description 40
- 238000013523 data management Methods 0.000 title claims description 14
- 238000007726 management method Methods 0.000 claims description 190
- 239000013598 vector Substances 0.000 claims description 36
- 230000005012 migration Effects 0.000 claims description 30
- 238000013508 migration Methods 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 21
- 238000012546 transfer Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 18
- 238000001514 detection method Methods 0.000 description 11
- 230000009977 dual effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 101100353051 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) epp-1 gene Proteins 0.000 description 1
- 101150034591 PPN1 gene Proteins 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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
- 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/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- 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/0871—Allocation or management of cache space
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- 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/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
- G06F3/0647—Migration mechanisms
-
- 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/0683—Plurality of 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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
-
- 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
-
- 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/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
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)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种存储器系统,该存储器系统包括:第一存储器装置,该第一存储器装置包括第一存储器,该第一存储器包括多个访问管理区域并且具有第一访问延迟,多个访问管理区域中的每一个包括多个页面,该第一存储器装置被配置为从多个访问管理区域中检测访问计数达到预设值的热访问管理区域,并且检测该热访问管理区域中包括的一个或多个热页面;以及第二存储器装置,该第二存储器装置具有第二访问延迟,第二访问延迟不同于第一存储器装置的第一访问延迟。将一个或多个热页面中存储的数据迁移到第二存储器装置。
Description
相关申请的交叉引用
本申请要求于2019年8月27日向韩国知识产权局提交的申请号为10-2019-0105263的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
各个实施例总体涉及一种计算机系统,并且更特别地,涉及一种包括异构存储器的存储器装置(或存储器系统)、包括该存储器装置的计算机系统及其数据管理方法。
背景技术
计算机系统可以包括具有各种形式的存储器装置。存储器装置包括用于存储数据的存储器和用于控制存储器的操作的存储器控制器。存储器可以包括诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等的易失性存储器,或者诸如电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PCRAM)、磁性RAM(MRAM)、闪速存储器等的非易失性存储器。当停止供电时,易失性存储器中存储的数据会丢失,然而,即使停止供电,非易失性存储器中存储的数据也不会丢失。近来,正在开发安装有异构存储器的存储器装置。
此外,易失性存储器具有较高的操作速度,而非易失性存储器具有相对较低的操作速度。因此,为了提高存储器系统的性能,需要将频繁访问的数据(例如,热数据)存储在易失性存储器中,并且需要将不频繁访问的数据(例如,冷数据)存储在非易失性存储器中。
发明内容
各个实施例提供一种包括可以提高操作性能的异构存储器的存储器装置(或存储器系统)、包括该存储器装置的计算机系统及其数据管理方法。
在实施例中,一种存储器系统包括:第一存储器装置,该第一存储器装置具有第一存储器,该第一存储器包括多个访问管理区域并且具有第一访问延迟,多个访问管理区域中的每一个包括多个页面,该第一存储器装置被配置为从多个访问管理区域中检测访问计数达到预设值的热访问管理区域,并且检测该热访问管理区域中包括的一个或多个热页面;以及第二存储器装置,该第二存储器装置具有第二访问延迟,该第二访问延迟不同于第一存储器装置的第一访问延迟。将一个或多个热页面中存储的数据迁移到第二存储器装置。
在实施例中,一种计算机系统包括:中央处理单元(CPU);以及存储器系统,该存储器系统通过系统总线电联接到CPU。该存储器系统包括:第一存储器装置,该第一存储器装置具有第一存储器,该第一存储器包括多个访问管理区域并且具有第一访问延迟,多个访问管理区域中的每一个包括多个页面,该第一存储器装置被配置为从多个访问管理区域中检测访问计数达到预设值的热访问管理区域,并且检测该热访问管理区域中包括的一个或多个热页面;以及第二存储器装置,该第二存储器装置具有第二访问延迟,该第二访问延迟不同于第一存储器装置的第一访问延迟。将一个或多个热页面中存储的数据迁移到第二存储器装置。
在实施例中,一种计算机系统的数据管理方法,包括:由CPU向第一存储器装置传送热访问管理区域检查命令,以检查第一存储器装置的第一存储器中是否存在热访问管理区域;由第一存储器装置响应于热访问管理区域检查命令,向CPU传送第一响应或第二响应,该第一响应包括与热访问管理区域中的一个或多个热页面有关的信息,该第二响应指示第一存储器中不存在热访问管理区域;并且当从第一存储器装置接收到第一响应时,由CPU将数据迁移命令传送到第一存储器装置和第二存储器装置,以将第一存储器的一个或多个热页面中存储的热数据与第二存储器装置的第二存储器中的冷数据交换,该第一存储器装置具有长于该第二存储器装置的访问延迟。
在实施例中,一种存储器分配方法包括:由中央处理单元(CPU)接收页面分配请求和虚拟地址;由CPU检查与所接收的虚拟地址相对应的物理地址的热页面检测历史;并且基于检查的结果,将与所接收的虚拟地址相对应的页面分配给第一存储器装置的第一存储器或者第二存储器装置的第二存储器。
在实施例中,一种存储器装置包括:非易失性存储器;以及控制器,被配置为控制非易失性存储器的操作。该控制器被配置为将非易失性存储器划分为多个访问管理区域,每个访问管理区域包括多个页面;该控制器包括存储多个访问管理区域中的每一个的访问计数的访问计数表以及每一个配置有与多个访问管理区域中的每一个中包括的多个页面相对应的位的多个位矢量;当访问非易失性存储器时,该控制器将多个访问管理区域中的所访问的访问管理区域的访问计数存储在访问计数表中的、与所访问的访问管理区域相对应的空间中;并且该控制器将与所访问的访问管理区域相对应的位矢量的位之中的与所访问页面相对应的位设置为第一值。
根据实施例,因为在主存储器装置中可直接检测到具有较高访问计数的热页面,所以可以将实质上有效的(或有意义的)热数据迁移到具有较高操作速度的存储器。因此,可以提高系统的整体操作性能。
此外,根据实施例,因为根据热页面检测历史来将页面分配给具有较高操作速度的存储器或具有较低操作速度的存储器,所以可以减少数据迁移并且增加对具有较高操作速度的存储器的访问。因此,可以提高系统的整体性能。
附图说明
图1示出根据实施例的计算机系统。
图2示出根据实施例的图1的存储器装置。
图3示出根据实施例的图2的第一存储器中包括的页面。
图4A示出根据实施例的图2所示的第一存储器装置的第一控制器。
图4B示出根据另一实施例的图2所示的第一存储器装置的第一控制器。
图5A示出根据实施例的访问计数表(ACT)。
图5B示出根据实施例的位矢量(BV)。
图6A示出发生对访问管理区域的访问。
图6B示出存储访问管理区域的访问计数的ACT。
图6C示出将与访问管理区域中的所访问页面相对应的位设置为指示“设置状态”的值的位矢量(BV)。
图7A和图7B是示出根据实施例的数据管理方法的流程图。
图8示出根据实施例的在第一存储器装置和第二存储器装置之间的数据迁移。
图9A示出根据实施例的针对第一存储器和第二存储器的最近最少使用(LRU)队列。
图9B示出根据实施例的在数据交换之后被更新的第一LRU队列和第二LRU队列。
图10A示出根据实施例的页面表。
图10B示出根据实施例的图10A的页面映射条目(PME)。
图11是示出根据实施例的存储器分配方法的流程图。
图12示出根据实施例的系统。
图13示出根据另一实施例的系统。
具体实施方式
在下文中,将通过实施例的各个示例参照附图来描述包括异构存储器的存储器装置(或存储器系统)、包括该存储器装置的计算机系统及其数据管理方法。
图1示出根据实施例的计算机系统10。
计算机系统10可以是大型主机(main frame)计算机、服务器计算机、个人计算机、移动装置、用于诸如可编程家用电器的一般或特殊目的的计算机系统等中的任意一个。
参照图1,计算机系统10可以包括电联接到系统总线500的中央处理单元(CPU)100、存储器装置200、存储装置300以及输入/输出(I/O)接口400。根据实施例,计算机系统10可以进一步包括电联接到CPU 100的高速缓存150。
CPU 100可以包括可以在商业上使用的各种处理器中的一种或多种,并且可以包括例如以下中的一种或多种:的和处理器;的应用程序、嵌入式和安全处理器;和的和处理器;和的CELL处理器;的Core i3、Corei5、Core i7、和处理器;以及类似的处理器。双微处理器、多核处理器和其他的多处理器架构可以用作CPU 100。
CPU 100可以处理或执行存储器装置200(或存储器系统)中存储的程序和/或数据。例如,CPU 100可以响应于由时钟信号生成器(未示出)提供的时钟信号来处理或执行程序和/或数据。
此外,CPU 100可以访问高速缓存150和存储器装置200。例如,CPU 100可以将数据存储在存储器装置200中。存储器装置200中存储的数据可以是从存储装置300读取的数据或通过I/O接口400输入的数据。此外,CPU 100可以读取高速缓存150和存储器装置200中存储的数据。
CPU 100可以基于存储器装置200中存储的数据执行各种操作。例如,CPU 100可以向存储器装置200提供用于在存储器装置200中包括的第一存储器装置210和第二存储器装置250之间执行数据迁移的命令。
高速缓存150是指用于减少由于具有相对较高操作速度的装置和具有相对较低操作速度的装置之间的操作速度差异而导致的瓶颈现象的通用存储器。也就是说,高速缓存150用于减少以相对较高速度操作的CPU 100和以相对较低速度操作的存储器装置200之间的数据瓶颈现象。高速缓存150可以高速缓存存储器装置200中存储的并且由CPU 100频繁访问的数据。
尽管在图1中未示出,但是高速缓存150可以包括多个高速缓存。例如,高速缓存150可以包括L1高速缓存和L2高速缓存。在这种情况下,“L”表示等级。通常,L1高速缓存可以被嵌入在CPU 100中,并且可以首先被用于数据参考和使用。在高速缓存150中的高速缓存之中,L1高速缓存具有最高的操作速度,但是可能具有较小的存储容量。如果在L1高速缓存中不存在目标数据(例如,高速缓存未命中),则CPU 100可以访问L2高速缓存。L2高速缓存的操作速度相对低于L1高速缓存,但可能具有较大的存储容量。如果在L2高速缓存以及L1高速缓存中都不存在目标数据,则CPU 100可以访问存储器装置200。
存储器装置200可以包括第一存储器装置210和第二存储器装置250。第一存储器装置210和第二存储器装置250可以具有不同的结构。例如,第一存储器装置210可以包括非易失性存储器(NVM)和用于控制非易失性存储器的控制器,并且第二存储器装置250可以包括易失性存储器(VM)和用于控制易失性存储器的控制器。例如,易失性存储器可以是动态随机存取存储器(DRAM),并且非易失性存储器可以是相变RAM(PCRAM),但是实施例不限于此。
计算机系统10可以短期地并且临时地将数据存储在存储器装置200中。此外,存储器装置200可以存储具有文件系统格式的数据,或者可以具有单独的只读空间并且将操作系统程序存储在该单独的只读空间中。当CPU 100执行应用程序时,可以从存储装置300读取应用程序的至少一部分,并且加载到存储器装置200。稍后将参照后续附图详细描述存储器装置200。
存储装置300可以包括硬盘驱动器(HDD)和固态驱动器(SSD)中的一种。“存储装置”是指计算机系统10长期地存储用户数据的大容量存储介质。存储装置300可以存储操作系统(OS)、应用程序和程序数据。
I/O接口400可以包括输入接口和输出接口。输入接口可以电联接到外部输入装置。根据实施例,外部输入装置可以是键盘、鼠标、麦克风、扫描仪等。用户可以通过外部输入装置向计算机系统10输入命令、数据和信息。
输出接口可以电联接到外部输出装置。根据实施例,外部输出装置可以是监控器、打印机、扬声器等。可以通过外部输出装置输出由计算机系统10生成的用户命令的执行和处理结果。
图2示出根据实施例的图1的存储器装置200。
参照图2,存储器装置200可以包括:第一存储器装置210,其包括第一存储器230,例如,非易失性存储器;以及第二存储器装置250,其包括第二存储器270,例如,易失性存储器。第一存储器装置210可以具有比第二存储器装置250更低的操作速度,但是可以具有比第二存储器装置250更高的存储容量。操作速度可以包括写入速度和读取速度。
如上所述,如果在高速缓存150中发生高速缓存未命中,则CPU 100可以访问存储器装置200并且搜索目标数据。因为第二存储器装置250具有比第一存储器装置210更高的操作速度,所以如果将待由CPU 100检索的目标数据存储在第二存储器装置250中,则与将目标数据存储在第一存储器装置210中的情况相比,可以快速访问目标数据。
为此,CPU 100可以控制存储器装置200,将第一存储器装置210中存储的且具有相对较大访问计数的数据(以下称为“热数据”)迁移到第二存储器装置250,并且将第二存储器装置250中存储的且具有相对较小访问计数的数据(以下称为“冷数据”)迁移到第一存储器装置210。
在这种情况下,如果CPU 100以页面为单位管理第一存储器装置210的访问计数,则由CPU 100确定的热数据和冷数据可能与第一存储器装置210中实际存储的热数据和冷数据不同。其原因在于,因为CPU100从外部装置接收到的大多数访问请求都可能在高速缓存150中命中,并且仅很少访问存储器装置200,因此CPU 100无法精确地确定所访问数据是被存储在高速缓存150中还是被存储在存储器装置200中。
因此,在实施例中,响应于来自CPU 100的请求(或命令),存储器装置200的第一存储器装置210可以检查在第一存储器230中是否存在包括热页面的热访问管理区域,检测热访问管理区域中的一个或多个热页面,并且向CPU 100提供与检测到的一个或多个热页面有关的信息(例如,地址)。
CPU 100可以基于由第一存储器装置210提供的信息来控制存储器装置200,以在第一存储器装置210和第二存储器装置250之间执行数据迁移。在这种情况下,第一存储器装置210和第二存储器装置250之间的数据迁移可以是用于将第一存储器230中的热页面中存储的热数据与第二存储器270中的冷页面中存储的冷数据交换的操作。稍后将参照后续附图来描述详细配置和其方法。
参照图2,除了第一存储器230之外,第一存储器装置210可以包括第一控制器220,并且除了第二存储器270之外,第二存储器装置250可以包括第二控制器260。在图2中,为了简化附图,第一存储器230和第二存储器270中的每一个被示出为一个存储块或芯片,但是第一存储器230和第二存储器270中的每一个可以包括多个存储器芯片。
第一存储器装置210的第一控制器220可以控制第一存储器230的操作。第一控制器220可以控制第一存储器230以执行与从CPU 100接收到的命令相对应的操作。
图3示出图2的第一存储器230中包括的页面被分组为多个访问管理区域的示例。
参照图3,第一控制器220可以将包括第一存储器230的页面的数据存储区域分组为多个区域REGION1至REGIONn,n是正整数。多个区域REGION1至REGIONn中的每一个可以包括多个页面Page 1至Page K,K是正整数。以下,将多个区域REGION1至REGIONn中的每一个称为“访问管理区域”。
重新参照图2,第一控制器220可以管理访问管理区域REGION1至REGIONn中的每一个的访问计数。第一控制器220不以页面为单位来管理第一存储器230的访问计数,而是以访问管理区域为单位来管理第一存储器230的访问计数的原因在于,如果以页面为单位来管理访问计数,则存在因为第一存储器230具有非常高的存储容量,而导致增加存储页面的访问计数的存储开销的问题。在本实施例中,为了防止存储开销增加,以访问管理区域为单位而不是以页面为单位来管理访问计数。
此外,第一控制器220可以基于访问管理区域REGION1至REGIONn中的每一个的访问计数来确定在第一存储器230中是否存在包括热页面的热访问管理区域。例如,第一控制器220可以将访问计数达到预设值的访问管理区域确定为热访问管理区域。也就是说,当访问管理区域的访问计数等于或大于预设值时,第一控制器220将该访问管理区域确定为热访问管理区域。此外,第一控制器220可以检测热访问管理区域中的所访问页面,并且将检测到的页面确定为热页面。例如,第一控制器220可以使用与热访问管理区域相对应的位矢量(BV)来检测热页面。
稍后将参照后续附图详细描述确定是否存在热访问管理区域并且检测热访问管理区域中的热页面的过程。
第一存储器230可以包括配置有多个存储器单元的存储器单元阵列(未示出)、用于将数据写入存储器单元阵列或从存储器单元阵列读取数据的外围电路(未示出)、以及用于控制外围电路的操作的控制逻辑(未示出)。第一存储器230可以是非易失性存储器。例如,第一存储器230可以配置有PCRAM,但是实施例不限于此。第一存储器230可以利用各种非易失性存储器中的任意一种来配置。
第二存储器装置250的第二控制器260可以控制第二存储器270的操作。第二控制器260可以控制第二存储器270以执行与从CPU 100接收到的命令相对应的操作。第二存储器270可以响应于由第二控制器260提供的命令,执行将数据写入存储器单元阵列(未示出)中或者从存储器单元阵列中读取数据的操作。
第二存储器270可以包括配置有多个存储器单元的存储器单元阵列、用于将数据写入存储器单元阵列或从存储器单元阵列读取数据的外围电路(未示出)、以及用于控制外围电路的操作的控制逻辑(未示出)。
第二存储器270可以是易失性存储器。例如,第二存储器270可以配置有DRAM,但是实施例不限于此。第二存储器270可以利用各种易失性存储器中的任意一种来配置。
第一存储器装置210可能具有比第二存储器装置250更长的访问延迟。在这种情况下,访问延迟表示存储器装置从CPU 100接收命令到存储器装置向CPU 100传送与所接收的命令相对应的响应的时间。此外,相比于第二存储器装置250,第一存储器装置210可能具有每单位时间更大的功耗。
图4A示出根据实施例的图2所示的第一存储器装置210的第一控制器220。
参照图4A,第一控制器220A可以包括第一接口221、存储器内核222、访问管理器223、存储器224和第二接口225。
第一接口221可以通过图1的系统总线500从CPU 100接收命令,或者可以将数据传送到CPU 100。
存储器内核222可以控制第一控制器220A的全部操作。存储器内核222可以配置有微控制单元(MCU)或CPU。存储器内核222可以处理由CPU 100提供的命令。为了处理由CPU100提供的命令,存储器内核222可以执行代码形式的指令或算法,即固件,并且可以控制第一存储器230和诸如第一接口221、访问管理器223、存储器224和第二接口225的第一控制器220A的内部组件。
存储器内核222可以基于由CPU 100提供的命令来生成用于控制第一存储器230的操作的控制信号,并且可以通过第二接口225将所生成的控制信号提供到第一存储器230。
存储器内核222可以将第一存储器230的整个数据存储区域分组为多个访问管理区域,每个访问管理区域包括多个页面。存储器内核222可以使用访问管理器223来管理第一存储器230中的每个访问管理区域的访问计数。此外,存储器内核222可以使用访问管理器223来管理第一存储器230中的每个访问管理区域中包括的页面的访问信息。
访问管理器223可以在存储器内核222的控制下管理第一存储器230中的访问管理区域中的每一个的访问计数。例如,当访问第一存储器230的页面时,访问管理器223可以增加与第一存储器230中的包括所访问页面的访问管理区域相对应的访问计数。此外,访问管理器223可以将与包括所访问页面的访问管理区域相对应的位矢量的位之中的、与所访问页面相对应的位设置为指示“设置状态”的值。
存储器224可以包括被配置为存储第一存储器230的访问管理区域中的每一个的访问计数的访问计数表(ACT)。此外,存储器224可以包括访问页面位矢量(APBV),该访问页面位矢量(APBV)配置有分别与第一存储器230中的访问管理区域相对应的位矢量。存储器224可以利用SRAM、DRAM或两者来实施,但是实施例不限于此。
第二接口225可以在存储器内核222的控制下控制第一存储器230。第二接口225可以向第一存储器230提供由存储器内核222生成的控制信号。控制信号可以包括命令、地址和用于控制第一存储器230的操作的操作信号。第二接口225可以向第一存储器230提供写入数据,或者可以从第一存储器230接收读取数据。
第一控制器220的第一接口221、存储器内核222、访问管理器223、存储器224和第二接口225可以通过内部总线227彼此电联接。
图4B示出根据另一实施例的图2所示的第一存储器装置210的第一控制器220。在参照图4B描述根据本实施例的第一控制器220B时,将省略与图4A所示的第一控制器220A相同的配置的描述。
参照图4B,第一控制器220B可以包括存储器内核222B,该存储器内核222B包括访问管理逻辑228。可以利用软件或硬件或其组合来配置访问管理逻辑228。访问管理逻辑228可以在存储器内核222B的控制下管理第一存储器230中的访问管理区域中的每一个的访问计数。例如,当访问第一存储器230的页面时,访问管理逻辑228可以增加与包括所访问页面的访问管理区域相对应的访问计数。此外,访问管理逻辑228可以将与包括所访问页面的访问管理区域相对应的位矢量中的位之中的、与所访问页面相对应的位设置为指示“设置状态”的值。
图5A示出根据实施例的访问计数表(ACT)。
参照图5A,ACT可以被配置有分别存储第一存储器230的访问管理区域REGION1至REGIONn的访问计数的空间。每当访问第一存储器230的页面时,图4A所示的第一控制器220中的访问管理器223或图4B所示的第一控制器220B中的访问管理逻辑228可以将与包括所访问页面的访问管理区域相对应的访问计数存储在ACT的相应空间中。
图5B示出根据实施例的访问页面位矢量(APBV)。
参照图5B,APBV可以包括分别与第一存储器230中的访问管理区域REGION1至REGIONn相对应的位矢量BV1至BVn。与一个访问管理区域相对应的一个位矢量可以配置有分别与一个访问管理区域中包括的k个页面相对应的k个位。每当访问第一存储器230的页面时,图4A所示的第一控制器220中的访问管理器223或图4B所示的第一控制器220B中的访问管理逻辑228可以将与包括所访问页面的访问管理区域相对应的位矢量的位之中的、与所访问页面相对应的位设置为指示“设置状态”的值。
图6A示出发生对访问管理区域的访问。图6B示出存储已经发生访问的访问管理区域的访问计数的ACT。图6C示出已经将与访问管理区域中的所访问页面相对应的位设置为指示“设置状态”的值的位矢量。为了方便说明,图6A至图6C示出访问了第一访问管理区域REGION1,但是本公开可以等同地应用于第二至第n访问管理区域REGION2至REGIONn中的每一个。
在图6A中,横轴表示时间,并且“A1”至“Am”表示访问。每当访问第一访问管理区域REGION1中的给定页面时,访问管理器223(或访问管理逻辑228)可以增加图6B所示的ACT中的与第一访问管理区域REGION1相对应的空间中存储的访问计数。
例如,如图6A所示,当发生对第一访问管理区域REGION1的第一访问A1时,可以将访问计数“1”存储在图6B所示的ACT中的与第一访问管理区域REGION1相对应的空间中。接下来,每当发生对第一访问管理区域REGION1的第二至第m访问A2至Am中的每一个时,就将ACT中的与第一访问管理区域REGION1相对应的空间中存储的访问计数增加1,并且如图6B所示,当第一访问管理区域REGION1已经被访问了m次时,该访问计数可相应地变为“m”。
此外,每当访问第一访问管理区域REGION1时,访问管理器223(或访问管理逻辑228)可以将与第一访问管理区域REGION1相对应的位矢量中包括的所访问页面的位设置为指示“设置状态”的值(例如,“1”)。
例如,当与第一访问管理区域REGION1相对应的第一位矢量BV1中包括的k个位对应于第一访问管理区域REGION1中包括的页面时,并且如图6C所示,当访问页面(例如,“1”、“2”、“100”、“101”和“102”)时,可以将第一位矢量BV1中的、与所访问页面(例如,“1”、“2”、“100”、“101”和“102”)相对应的位设置为“1”。此外,如果将第一位矢量BV1中的、与所访问页面相对应的位设置为指示设置状态的值,即设置为设置值“1”,则当再次访问所访问页面时,访问管理器223(或访问管理逻辑228)可以保持设置值“1”。
当第一访问管理区域REGION1的访问计数达到预设值(例如,“m”)时,访问管理器223(或访问管理逻辑228)可以将第一访问管理区域REGION1确定为热访问管理区域。此外,访问管理器223(或访问管理逻辑228)可以参考与被确定为热访问管理区域的第一访问管理区域REGION1相对应的第一位矢量BV1,将第一访问管理区域REGION1中的全部所访问页面检测为热页面。
如上所述,第一存储器装置210的第一控制器220管理第一存储器230的访问管理区域REGION1至REGIONn中的每一个的访问计数,当第一存储器230的访问管理区域REGION1至REGIONn的访问计数中的任意一个达到预设值m时确定热访问管理区域,并且使用与热访问管理区域相对应的位矢量来检测热访问管理区域中的一个或多个热页面。
在下文中,稍后将详细描述将如上面参照图6A至图6C所述的已经检测到的第一存储器装置210中的一个或多个热页面中存储的热数据迁移到具有较高操作速度的第二存储器装置250的方法。
图7A是示出根据实施例的数据管理方法的流程图。可以参照图1至图3、图4A、图4B、图5A、图5B和图6A至图6C中的至少一个来描述图7中所示的数据管理方法。
在S710中,图1的CPU 100可以确定是否已经达到一个周期,以便检查在第一存储器装置210的第一存储器230中是否存在热访问管理区域。该周期可以是预设的。如果确定已经达到预设周期,则进程可以进行到S720。也就是说,CPU 100可以在每个预设周期,检查在第一存储器装置210的第一存储器230中是否存在热访问管理区域。然而,实施例不限于此。
在S720中,CPU 100可以通过图1的系统总线500,将用于检查在第一存储器230中是否存在热访问管理区域的命令传送到第一存储器装置210。在本文中,该命令可以被称为“热访问管理区域检查命令”。
在S730中,图2的第一存储器装置210的第一控制器220可以响应于从CPU 100接收的热访问管理区域检查命令来检查ACT,并且可以基于ACT中存储的访问计数来确定在第一存储器230中是否存在热访问管理区域。如果确定第一存储器230中不存在热访问管理区域,则进程可以进行到S750。
另一方面,如果确定在第一存储器230中存在热访问管理区域,则第一控制器220可以参考与热访问管理区域相对应的位矢量来检测热访问管理区域中包括的一个或多个热页面。当检测到一个或多个热页面时,进程可以进行到S740。稍后将参照图7B详细描述确定是否存在热访问管理区域并且检测热页面的进程。
在S740中,第一存储器装置210的第一控制器220可以将在S730中检测到的热页面的地址传送到CPU 100。此后,进程可以进行到S760。
在S750中,第一存储器装置210的第一控制器220可以将指示第一存储器230中不存在热访问管理区域的响应传送到CPU 100。此后,进程可以进行到S780。
在S760中,CPU 100可以将数据迁移命令传送到第一存储器装置210和第二存储器装置250。
从CPU 100传送到第一存储器装置210的数据迁移命令可以包括用于将第一存储器装置210的第一存储器230中包括的一个或多个热页面中存储的热数据迁移到第二存储器装置250的第二存储器270的命令,以及用于将从第二存储器装置250接收的冷数据存储在第一存储器230中的命令。
此外,从CPU 100传送到第二存储器装置250的数据迁移命令可以包括用于将第二存储器装置250的第二存储器270中的一个或多个冷页面中存储的冷数据迁移到第一存储器装置210的第一存储器230的命令,以及用于将从第一存储器装置210接收的热数据存储在第二存储器270中的命令。因此,在S760中将数据迁移命令从CPU 100传送到第一存储器装置210和第二存储器装置250之后,进程可以进行到S770和S775。例如,可以在相同时间或在不同时间执行S770和S775。
在S770中,第二存储器装置250的第二控制器260可以响应于从CPU 100接收的数据迁移命令,从第二存储器270中的一个或多个冷页面读取冷数据,将冷数据临时存储在缓冲存储器(未示出)中,并且将从第一存储器装置210接收的热数据存储在第二存储器270中的一个或多个冷页面中。此外,第二控制器260可以将临时存储在缓冲存储器中的冷数据传送到第一存储器装置210。
在另一实施例中,如果第二存储器装置250的第二存储器270包括空页面,则可以省略从一个或多个冷页面读取冷数据并且将冷数据临时存储在缓冲存储器中的进程。相反,可以将从第一存储器装置210接收的热数据存储在第二存储器270中的空页面中。
然而,为了当第二存储器270充满数据时将第一存储器230的热数据迁移到第二存储器270,需要将热数据与第二存储器270中存储的冷数据交换。为此,CPU 100可以从第二存储器270中存储的数据中选择冷数据,并且将该冷数据与第一存储器230的热数据交换。选择冷数据的标准可以是数据的访问定时或访问顺序。在本实施例中,CPU 100可以将第二存储器270中的页面之中的最少使用页面中存储的数据选择为冷数据,并且将所选择冷数据与第一存储器230的热数据交换。在另一实施例中,CPU 100可以将第二存储器270中的页面之中的特定时间之前访问的页面中存储的数据选择为冷数据,并且将所选择冷数据与第一存储器230的热数据交换
在S760中CPU 100将数据迁移命令传送到第一存储器装置210和第二存储器装置250之前,CPU 100可以在第二存储器装置250的第二存储器270中选择冷数据,并且可以将存储所选择冷数据的冷页面的地址包括在待传送到第二存储器装置250的数据迁移命令中。稍后将参照图9A详细描述由CPU 100在第二存储器270中选择冷数据的方法。
在S775中,第一存储器装置210的第一控制器220可以响应于从CPU 100接收的数据迁移命令,从第一存储器230的热访问管理区域中包括的一个或多个热页面中读取热数据,将热数据传送到第二存储器装置250,并且将从第二存储器装置250接收的冷数据存储在第一存储器230中。
在S780中,CPU 100可以将用于重置ACT和APBV中存储的值的重置命令传送到第一存储器装置210。在本实施例中,CPU 100顺序地传送热访问管理区域检查命令、数据迁移命令以及重置命令,但是实施例不限于此。在另一实施例中,CPU 100可以将包括以上所有命令的单个命令传送到第一存储器装置210和第二存储器装置250。
在S790中,第一存储器装置210的第一控制器220可以响应于从CPU 100接收的重置命令,来重置ACT和APBV中存储的值(或信息)。
图7B是根据实施例的图7A中的S730的详细流程图。
在S731中,第一控制器220可以检查ACT中存储的值,即第一存储器230中的访问管理区域REGION1至REGIONn中的每一个的访问计数。
在S733中,第一控制器220可以基于访问管理区域REGION1至REGIONn中的每一个的访问计数,来确定在访问管理区域REGION1至REGIONn之中是否存在热访问管理区域。例如,如果访问管理区域REGION1至REGIONn中的任意一个的访问计数达到预设值(例如,“m”),例如如果在访问管理区域REGION1至REGIONn之中存在访问计数等于或大于预设值m的访问管理区域,则第一控制器220可以确定在访问管理区域REGION1至REGIONn之中存在热访问管理区域。如果确定存在热访问管理区域,则进程可以进行到S735。如果确定在访问管理区域REGION1至REGIONn之中不存在热访问管理区域,则进程可以进行到图7A的S750。
在S735中,第一控制器220可以参考与热访问管理区域相对应的位矢量来检测热访问管理区域中包括的一个或多个热页面。例如,第一控制器220可以将与已经设置为指示“设置状态”的值(例如,“1”)的位相对应的页面检测为热页面。当对热页面的检测完成时,进程可以进行到图7A的S740。
图8示出根据实施例的在第一存储器装置和第二存储器装置之间的数据迁移。图1和图2所示的配置将用于描述图8所示的数据迁移。
参照图8,CPU 100可以通过系统总线500将数据迁移命令传送到第一存储器装置210和第二存储器装置250(①)。
在这种情况下,传送到第一存储器装置210的数据迁移命令可以包括第一存储器230中的存储有热数据的热页面的地址、用于从热页面读取热数据的读取命令、以及用于存储从第二存储器装置250传送的冷数据的写入命令,但是实施例不限于此。
此外,传送到第二存储器装置250的数据迁移命令可以包括第二存储器270中的存储有冷数据的冷页面的地址、用于从冷页面读取冷数据的读取命令、以及用于存储从第一存储器装置230传送的热数据的写入命令,但是实施例不限于此。
已经从CPU 100接收到数据迁移命令的第二存储器装置250的第二控制器260可以从第二存储器270中的冷页面读取冷数据,并且将所读取的冷数据临时存储在第二控制器260中包括的缓冲存储器(未示出)中(②)。同样地,第一存储器装置210的第一控制器220可以基于数据迁移命令从第一存储器230中的热页面读取热数据(②),并且将所读取的热数据传送到第二控制器260(③)。
第二控制器260可以将从第一存储器装置210接收的热数据存储在第二存储器270中(④)。在这种情况下,第二存储器270中的存储热数据的区域可以对应于曾经存储冷数据的冷页面。
此外,第二控制器260可以将临时存储在缓冲存储器中的冷数据传送到第一存储器装置210(⑤)。第一控制器220可以将从第二存储器装置250接收的冷数据存储在第一存储器230中(⑥)。在这种情况下,第一存储器230中的存储冷数据的区域可以对应于曾经存储热数据的热页面。因此,可以完成第一存储器230中的热数据和第二存储器270中的冷数据之间的交换。
图9A示出根据实施例的针对第一存储器和第二存储器的最近最少使用(LRU)队列。图1和图2所示的配置将用于描述图9A所示的LRU队列。
CPU 100可以使用针对第二存储器270的LRU队列,在第二存储器270中选择存储待与第一存储器230中的热数据交换的冷数据的冷页面。
CPU 100可以分别管理针对第一存储器230和第二存储器270的LRU队列。在下文中,针对第一存储器230的LRU队列可以被称为“第一LRU队列LRUQ1”,并且针对第二存储器270的LRU队列可以被称为“第二LRU队列LRUQ2”。
第一LRU队列LRUQ1和第二LRU队列LRUQ2可以分别存储在第一存储器230和第二存储器270中。然而,实施例不限于此。第一LRU队列LRUQ1和第二LRU队列LRUQ2可以具有相同的配置。例如,第一LRU队列LRUQ1和第二LRU队列LRUQ2中的每一个可以包括用于存储与多个页面相对应的地址的多个存储空间。
最近最多使用(MRU)页面的地址可以存储在第一LRU队列LRUQ1和第二LRU队列LRUQ2中的每一个的一侧的第一存储空间中。在一侧的存储MRU页面的地址的第一存储空间可以称为“MRU空间”。最近最少(或很久以前)使用(LRU)页面的地址可以存储在第一LRU队列LRUQ1和第二LRU队列LRUQ2中的每一个的另一侧的第一存储空间中。在另一侧的存储LRU页面的地址的第一存储空间可以称为“LRU空间”。
每当访问第一存储器230和第二存储器270时,可以利用新访问页面的地址来更新第一LRU队列LRUQ1和第二LRU队列LRUQ2中的每一个的MRU空间中存储的所访问页面的地址。此时,第一LRU队列LRUQ1和第二LRU队列LRUQ2中的每一个中的其他存储空间中存储的其余所访问页面的地址中的每一个可以朝向LRU空间迁移一个存储空间,以迁移到下一存储空间。
CPU 100可以参考第二LRU队列LRUQ2来检查第二存储器270中的最近最少(或很久以前)使用的页面,并且将相应页面中存储的数据确定为待与第一存储器230中的热数据交换的冷数据。此外,如果热数据的数量是多个,则CPU 100可以以朝向MRU空间的方式,从第二LRU队列LRUQ2的一个或多个LRU空间中,选择与热数据的数量相对应的冷数据。
此外,当第一存储器230的热数据和第二存储器270的冷数据之间的交换完成时,CPU 100可以更新地址信息,即第一LRU队列LRUQ1和第二LRU队列LRUQ2中的MRU空间中存储的页面地址。此外,如果热数据的数量是多个,则每当第一存储器230的热数据和第二存储器270的冷数据之间的交换完成时,CPU 100就可以更新第一LRU队列LRUQ1和第二LRU队列LRUQ2中的MRU空间中存储的页面地址。
图9B示出根据实施例的在数据交换之后已被更新的第一LRU队列LRUQ1和第二LRU队列LRUQ2。
如上所述,为了在第一存储器230和第二存储器270之间进行数据迁移,CPU 100可以访问第一存储器230中的存储热数据的热页面,并且可以访问第二存储器270中的、与第二LRU队列LRUQ2的LRU空间中存储的地址相对应的冷页面。因此,第一存储器230中的最近访问的热页面的地址可被新存储在第一LRU队列LRUQ1的MRU空间中。此外,第二存储器270中的最近访问的冷页面的地址可被新存储在第二LRU队列LRUQ2的MRU空间中。由于第一LRU队列LRUQ1和第二LRU队列LRUQ2中的每一个的MRU空间中新存储了地址,因此最初存储在MRU空间中的地址以及其后续地址可以朝向LRU空间迁移一个存储空间。
参照图9B,在第一存储器230中检测到的热页面的数量是五。假设五个热页面的地址为“3”、“4”、“5”、“8”和“9”。与远离MRU空间的存储空间中存储的地址相对应的页面指示最近较少使用的页面。如果五个热页面按最近最少使用页面的顺序排列,则可能得到的地址序列为“9”、“8”、“5”、“4”和“3”。
为了将五个热页面中存储的热数据迁移到第二存储器270,CPU100可以参考第二LRU队列LRUQ2来在第二存储器270中选择五个冷页面。CPU 100可以以朝向第二LRU队列LRUQ2的MRU空间的方式,从第二LRU队列LRUQ2的LRU空间中选择五个冷页面“i”、“i-1”、“i-2”、“i-3”和“i-4”。
假设将热页面“3”、“4”、“5”、“8”和“9”之中的很久以前访问的热页面中存储的热数据首先与冷数据交换,则首先,可以将热页面“9”中存储的热数据与冷页面“i”中存储的冷数据交换。因此,尽管在图9B中未示出,但是将地址“9”新存储在第一LRU队列LRUQ1的MRU空间中,并且将地址“1”至“8”中的每一个都向右朝向LRU空间迁移一个存储空间。此外,将地址“i”新存储在第二LRU队列LRUQ2的MRU空间中,并且将地址“1”至“i-1”中的每一个都向右朝向LRU空间迁移一个存储空间。
其次,可以将热页面“8”中存储的热数据与冷页面“i-1”中存储的冷数据交换。因此,尽管在图9B中未示出,但是将地址“8”新存储在第一LRU队列LRUQ1的MRU空间中,并且地址“9”和“1”至“7”中的每一个向右朝向LRU空间迁移一个存储空间。此外,将地址“i-1”新存储在第二LRU队列LRUQ2的MRU空间中,并且将地址“i”和“1”至“i-2”中的每一个向右朝向LRU空间迁移一个存储空间。
随后,再次,可以将热页面“5”中存储的热数据与冷页面“i-2”中存储的冷数据交换。因此,尽管在图9B中未示出,但是将地址“5”新存储在第一LRU队列LRUQ1的MRU空间中,并且将地址“8”、“9”和“1”至“4”中的每一个向右朝向LRU空间迁移一个存储空间。此外,将地址“i-2”新存储在第二LRU队列LRUQ2的MRU空间中,并且将地址“i-1”、“i”和“1”至“i-3”中的每一个向右朝向LRU空间迁移一个存储空间。
此后,再其次,可以将热页面“4”中存储的热数据与冷页面“i-3”中存储的冷数据交换。因此,尽管在图9B中未示出,但是将地址“4”新存储在第一LRU队列LRUQ1的MRU空间中,并且将地址“5”、“8”、“9”和“1”至“3”中的每一个向右朝向LRU空间迁移一个存储空间。此外,将地址“i-3”新存储在第二LRU队列LRUQ2的MRU空间中,并且将地址“i-2”、“i-1”、“i”和“1”至“i-4”中的每一个向右朝向LRU空间迁移一个存储空间。
最后,可以将热页面“3”中存储的热数据与冷页面“i-4”中存储的冷数据交换。因此,尽管在图9B中未示出,但是将地址“3”新存储在第一LRU队列LRUQ1的MRU空间中,并且将地址“4”、“5”、“8”、“9”和“1”至“2”中的每一个向右朝向LRU空间迁移一个存储空间。此外,将地址“i-4”新存储在第二LRU队列LRUQ2的MRU空间中,并且将地址“i-3”、“i-2”、“i-1”、“i”和“1”至“i-5”中的每一个向右朝向LRU空间迁移一个存储空间。
在数据交换完成之后,地址“3”被存储在第一LRU队列LRUQ1的MRU空间中,并且地址“i”仍然被存储在第一LRU队列LRUQ1的LRU空间中。此外,地址“i-4”被存储在第二LRU队列LRUQ2的MRU空间中,并且地址“i-5”被迁移并存储在第二LRU队列LRUQ2的LRU空间中。
当数据交换完成时,第一存储器装置210的第一控制器220可以执行重置操作以重置存储器224的ACT和APBV中存储的值(或信息)。
在实施例中,每当CPU 100提供热访问管理区域检查命令、数据迁移命令和重置命令中的至少一个命令时,第一控制器220就可以重置ACT和APBV,而不管第一存储器230中是否存在热访问管理区域以及是否执行数据迁移。
图10A示出根据实施例的用于在虚拟地址和物理地址之间进行映射的页面表(PT)。
参照图10A,PT可以具有包括虚拟地址和物理地址(或实际地址)之间的映射信息的数据结构。PT可以配置有多个页面映射条目(PME),该多个PME包括多个虚拟页面编号VPN1至VPNj和分别映射到多个虚拟页面编号VPN1至VPNj的多个物理页面编号PPN1至PPNj。CPU 100可以参考PT来将虚拟地址转换为物理地址,并且可以访问与所转换的物理地址相对应的页面。
图10B示出根据实施例的图10A的页面映射条目(PME)。
参照图10B,PME可以包括虚拟页面编号和映射到虚拟页面编号的物理页面编号。此外,PME可以包括页面属性信息。页面属性信息可以包括定义与PME有关的页面的特性的信息,诸如与PME有关的页面的读取概率、写入概率、高速缓存存储器概率以及级别访问限制,但是实施例不限于此。此外,PME可以包括指示与PME有关的页面是否是热页面的热页面标志S。PME不限于图10B所示的格式。在其他实施例中,PME可以具有各种范围的其他格式。
当从第一存储器装置210接收到热页面的地址时,CPU 100可以将PT中的、包括与热页面的地址相对应的物理地址(即,物理页面编号)的PME的热页面标志设置为指示“设置状态”的值。之后,当分配存储器时,CPU 100可以参考PT来检查与虚拟地址相对应的PME的热页面标志,并且根据热页面标志的值,将该虚拟地址的页面分配给第一存储器装置210的第一存储器230或第二存储器装置250的第二存储器270。
例如,当热页面标志具有设置值时,CPU 100可以将虚拟地址的页面分配给第二存储器装置250的第二存储器270。另一方面,当热页面标志不具有设置值时,CPU 100可以将虚拟地址的页面分配给第一存储器装置210的第一存储器230。
图11是示出根据实施例的存储器分配方法的流程图。可以参照图1至图3、图4A、图4B、图5A、图5B、图6A至图6C、图7A、图7B、图8、图9A、图9B、图10A和图10B中的至少一个来描述图11所示的存储器分配方法。
在S1101中,CPU 100可以从外部装置接收页面分配请求和虚拟地址。在另一实施例中,可以从应用程序接收页面分配请求。然而,实施例不限于此。
在S1103中,CPU 100可以参考页面表(PT)来检查与所接收的虚拟地址相对应的物理地址的热页面检测历史。例如,CPU 100可以通过检查图10A的PT中包括的多个页面映射条目(PME)之中的、包括与所接收的虚拟地址相对应的虚拟地址编号的PME的热页面标志,来检查相应物理地址的热页面检测历史。
在S1105中,CPU 100可以确定是否存在与所接收的虚拟地址相对应的物理地址的热页面检测历史。例如,如果包括所接收的虚拟地址的PME中的热页面标记已经被设置为设置值,则CPU 100可以确定存在相应物理地址的热页面检测历史。如果包括所接收的虚拟地址的PME中的热页面标志尚未设置为设置值,例如尚未设置为指示“重置状态”的值,则CPU100可以确定不存在相应物理地址的热页面检测历史。
如果确定存在热页面检测历史,则进程可以进行到S1107。此外,如果确定不存在热页面检测历史,则进程可以进行到S1109。
在S1107中,CPU 100可以将与所接收的虚拟地址相对应的页面分配给具有相对较短访问延迟的第二存储器270。
在S1109中,CPU 100可以将与所接收的虚拟地址相对应的页面分配给具有相对较长访问延迟的第一存储器230。
如上所述,基于与页面分配请求一起接收的虚拟地址有关的物理地址的热页面检测历史,将与虚拟地址相对应的页面分配给第一存储器230或第二存储器270。因此,因为减少了数据迁移并且增加了对具有相对较短访问延迟的存储器的访问,所以可以提高系统的整体性能。
图12示出根据实施例的系统1000。在图12中,系统1000可以包括主板1110、处理器1120和存储器模块1130。主板1110是其上安装有配置系统的组件的衬底。主板1110可以被称为母板。主板1110可以包括其上可安装处理器1120的插槽(未示出)和其上可安装存储器模块1130的插槽1140。主板1110可以包括用于将处理器1120和存储器模块1130电联接的布线1150。处理器1120可以被安装在主板1110上。处理器1120可以包括CPU、图形处理单元(GPU)、多媒体处理器(MMP)、数字信号处理器等中的任意一个。此外,处理器1120可以通过组合具有各种功能的处理器芯片而以芯片上系统的形式来实施,诸如应用处理器(AP)。
存储器模块1130可以通过主板1110的插槽1140而安装在主板1110上。存储器模块1130可以通过插槽1140和在存储器模块1130的模块衬底中形成的模块引脚而电联接到主板1110的布线1150。存储器模块1130可以包括以下中的一个:无缓冲双列直插式存储器模块(UDIMM)、双列直插式存储器模块(DIMM)、寄存式双列直插式存储器模块(RDIMM)、低负载双列直插式存储器模块(LRDIMM)、小外形双列直插式存储器模块(SODIMM)、非易失性双列直插式存储器模块(NVDIMM)等。
图1所示的存储器装置200可以用作存储器模块1130。存储器模块1130可以包括多个存储器装置1131。多个存储器装置1131中的每一个可以包括易失性存储器装置或非易失性存储器装置。易失性存储器装置可以包括SRAM、DRAM、SDRAM等。非易失性存储器装置可以包括ROM、PROM、EEPROM、EPROM、闪速存储器、PRAM、MRAM、RRAM、FRAM等。
图1所示的存储器装置200中的第一存储器装置210可以用作包括非易失性存储器装置的存储器装置1131。此外,存储器装置1131可以包括堆叠存储器装置或通过堆叠多个芯片而形成的多芯片封装。
图13示出根据实施例的系统2000。在图13中,系统2000可以包括处理器2010、存储器控制器2020和存储器装置2030。处理器2010可以通过芯片组2040而电联接到存储器控制器2020。存储器控制器2020可以通过多个总线而电联接到存储器装置2030。在图13中,处理器2010被示出为一个,但是实施例不限于此。在另一实施例中,处理器2010可以物理地或逻辑地包括多个处理器。
芯片组2040可以提供在处理器2010和存储器控制器2020之间传送信号的通信路径。处理器2010可以通过芯片组2040向存储器控制器2020传送请求和数据,以便执行计算操作并且输入和输出期望的数据。
存储器控制器2020可以通过多个总线来将命令信号、地址信号、时钟信号和数据传送到存储器装置2030。存储器装置2030可以从存储器控制器2020接收信号,存储数据,并且将所存储的数据输出到存储器控制器2020。存储器装置2030可以包括一个或多个存储器模块。图1的存储器装置200可以被用作存储器装置2030。
在图13中,系统2000可以进一步包括输入/输出(I/O)总线2110,I/O装置2120、2130和2140,磁盘驱动器控制器2050和磁盘驱动器2160。芯片组2040可以电联接到I/O总线2110。I/O总线2110可以提供用于在芯片组2040与I/O装置2120、2130和2140之间的信号传送的通信路径。I/O装置2120、2130和2140可以包括鼠标2120、视频显示器2130和键盘2140。I/O总线2110可以包括用于与I/O装置2120、2130和2140进行通信的任何通信协议。在实施例中,I/O总线2110可以被集成到芯片组2040中。
磁盘驱动器控制器2050可以电联接到芯片组2040。磁盘驱动器控制器2050可以提供芯片组2040与一个或多个磁盘驱动器2060之间的通信路径。磁盘驱动器2060可以通过存储命令和数据而用作外部数据存储装置。磁盘驱动器控制器2050和磁盘驱动器2060可以使用包括I/O总线2110的任何通信协议来彼此通信或与芯片组2040通信。
虽然上面已经描述了各个实施例,但是本领域技术人员将理解的是,所描述的实施例仅作为示例。因此,不应基于所描述的实施例来限制本文中所描述的具有异构存储器的存储器装置、包括该存储器装置的计算机系统及其数据管理方法。
Claims (20)
1.一种存储器系统,包括:
第一存储器装置,所述第一存储器装置包括第一存储器,所述第一存储器包括多个访问管理区域并且具有第一访问延迟,所述多个访问管理区域中的每一个包括多个页面,所述第一存储器装置从所述多个访问管理区域中检测访问计数达到预设值的热访问管理区域,并且检测所述热访问管理区域中包括的一个或多个热页面;以及
第二存储器装置,所述第二存储器装置具有第二访问延迟,所述第二访问延迟不同于所述第一存储器装置的所述第一访问延迟,
其中将所述一个或多个热页面中存储的数据迁移到所述第二存储器装置。
2.根据权利要求1所述的存储器系统,其中:
所述第一存储器装置进一步包括第一控制器,所述第一控制器控制所述第一存储器的操作;并且
其中所述第一控制器包括:
存储器,所述存储器包括访问计数表和多个位矢量,所述访问计数表存储所述多个访问管理区域的访问计数,所述多个位矢量分别与所述多个访问管理区域相对应,所述多个位矢量中的每一个包括与所述多个访问管理区域中的每一个中包括的多个页面相对应的位;以及
访问管理器,当访问所述多个访问管理区域中的一个访问管理区域中的页面时,所述访问管理器将所访问的访问管理区域的访问计数存储在所述访问计数表中的、与所访问的访问管理区域相对应的空间中,并且将与所访问的访问管理区域相对应的位矢量的位之中的与所访问页面相对应的位设置为指示设置状态的值;
其中所述第一访问延迟长于所述第二访问延迟。
3.根据权利要求2所述的存储器系统,其中:
当从外部装置接收到热访问管理区域检查命令时,所述第一控制器基于所述访问计数表,检查在所述多个访问管理区域之中是否存在所述热访问管理区域,并且
所述第一控制器将所述检查的结果传送到所述外部装置。
4.根据权利要求3所述的存储器系统,其中:
当存在所述热访问管理区域时,所述第一控制器检查所述多个位矢量之中的与所述热访问管理区域相对应的位矢量;
所述第一控制器从所述热访问管理区域中的页面中检测所述一个或多个热页面,所述一个或多个热页面对应于与所述热访问管理区域相对应的位矢量的位之中的设置为指示所述设置状态的值的位;并且
所述第一控制器向所述外部装置传送与所述一个或多个热页面有关的信息。
5.根据权利要求4所述的存储器系统,其中所述第一控制器将所述一个或多个热页面中存储的数据传送到所述第二存储器装置。
6.根据权利要求3所述的存储器系统,其中当所述第一存储器中不存在所述热访问管理区域时,所述第一控制器向所述外部装置传送指示不存在所述热访问管理区域的信息。
7.根据权利要求3所述的存储器系统,其中当从所述外部装置接收到数据迁移命令时,所述第一控制器执行将所述第一存储器的所述热访问管理区域中包括的一个或多个热页面中存储的热数据与所述第二存储器装置的第二存储器中存储的数据交换的数据迁移操作。
8.根据权利要求7所述的存储器系统,其中:
所述第一存储器包括非易失性存储器,并且
所述第二存储器包括易失性存储器。
9.根据权利要求8所述的存储器系统,其中:
所述非易失性存储器包括相变RAM,即PCRAM,并且
所述易失性存储器包括动态随机存取存储器,即DRAM。
10.根据权利要求3所述的存储器系统,其中当从所述外部装置接收到重置命令时,所述第一控制器重置所述访问计数表中存储的值和所述多个位矢量中的值。
11.一种计算机系统,包括:
中央处理单元,即CPU;以及
存储器系统,所述存储器系统通过系统总线电联接到所述CPU,
其中所述存储器系统包括:
第一存储器装置,所述第一存储器装置包括第一存储器,所述第一存储器包括多个访问管理区域并且具有第一访问延迟,所述多个访问管理区域中的每一个包括多个页面,所述第一存储器装置从所述多个访问管理区域中检测访问计数达到预设值的热访问管理区域,并且检测所述热访问管理区域中包括的一个或多个热页面;以及
第二存储器装置,所述第二存储器装置具有第二访问延迟,所述第二访问延迟不同于所述第一存储器装置的所述第一访问延迟,
其中将所述一个或多个热页面中存储的数据迁移到所述第二存储器装置。
12.根据权利要求11所述的计算机系统,其中:
所述第一存储器装置进一步包括第一控制器,所述第一控制器控制所述第一存储器的操作;并且
其中所述第一控制器包括:
存储器,所述存储器包括访问计数表和多个位矢量,所述访问计数表存储所述多个访问管理区域的访问计数,所述多个位矢量分别与所述多个访问管理区域相对应,所述多个位矢量中的每一个包括与所述多个访问管理区域中的每一个中包括的多个页面相对应的位;以及
访问管理器,当访问所述多个访问管理区域中的一个访问管理区域中的页面时,所述访问管理器将所访问的访问管理区域的访问计数存储在所述访问计数表中的、与所访问的访问管理区域相对应的空间中,并且将与所访问的访问管理区域相对应的位矢量的位之中的与所访问页面相对应的位设置为指示设置状态的值;
其中所述第一访问延迟长于所述第二访问延迟。
13.根据权利要求12所述的计算机系统,其中:
当从所述CPU接收到热访问管理区域检查命令时,所述第一控制器基于所述访问计数表,检查在所述多个访问管理区域之中是否存在所述热访问管理区域,并且
所述第一控制器将所述检查的结果传送到所述CPU。
14.根据权利要求13所述的计算机系统,其中所述CPU在每个预设周期向所述第一存储器装置传送所述热访问管理区域检查命令,以检查在所述第一存储器中是否存在所述热访问管理区域。
15.一种计算机系统的数据管理方法,所述计算机系统包括中央处理单元即CPU以及第一存储器装置和第二存储器装置,所述方法包括:
由所述CPU向所述第一存储器装置传送热访问管理区域检查命令,以检查所述第一存储器装置的第一存储器中是否存在热访问管理区域;
由所述第一存储器装置响应于所述热访问管理区域检查命令,向所述CPU传送第一响应或第二响应,所述第一响应包括与所述热访问管理区域中的一个或多个热页面有关的信息,所述第二响应指示所述第一存储器中不存在所述热访问管理区域;并且
当从所述第一存储器装置接收到所述第一响应时,由所述CPU将数据迁移命令传送到所述第一存储器装置和所述第二存储器装置,以将所述第一存储器的所述一个或多个热页面中存储的热数据与所述第二存储器装置的第二存储器中的冷数据交换,所述第一存储器装置具有长于所述第二存储器装置的访问延迟。
16.根据权利要求15所述的数据管理方法,其中在每个预设周期向所述第一存储器装置传送所述热访问管理区域检查命令。
17.根据权利要求15所述的数据管理方法,进一步包括:在将所述数据迁移命令传送到所述第一存储器装置和所述第二存储器装置之后:
由所述第二存储器装置从所述第二存储器的冷页面读取所述冷数据,并且将所述冷数据临时存储在缓冲存储器中;
由所述第一存储器装置从所述第一存储器的所述一个或多个热页面中读取所述热数据,并且将所述热数据传送到所述第二存储器;
由所述第二存储器装置将从所述第一存储器装置接收的所述热数据存储在所述第二存储器的所述冷页面中;
由所述第二存储器装置将临时存储在所述缓冲存储器中的所述冷数据传送到所述第一存储器装置;并且
由所述第一存储器装置将从所述第二存储器装置接收的所述冷数据存储在所述第一存储器的所述一个或多个热页面中。
18.根据权利要求15所述的数据管理方法,进一步包括:在向所述第一存储器装置传送所述热访问管理区域检查命令之后,
由所述第一存储器装置检查所述第一存储器中的多个访问管理区域中的每一个的访问计数;
由所述第一存储器装置确定在所述多个访问管理区域中是否存在访问计数达到预设值的所述热访问管理区域;并且
由所述第一存储器装置检测与对应于所述热访问管理区域的位矢量的位之中的设置为指示设置状态的值的位相对应的一个或多个页面。
19.一种存储器装置,包括:
非易失性存储器;以及
控制器,控制所述非易失性存储器的操作,
其中所述控制器将所述非易失性存储器划分为多个访问管理区域,所述多个访问管理区域中的每一个包括多个页面;所述控制器包括访问计数表和多个位矢量,所述访问计数表存储所述多个访问管理区域中的每一个的访问计数,所述多个位矢量中的每一个包括与所述多个访问管理区域中的每一个中包括的多个页面相对应的位;当访问所述非易失性存储器时,所述控制器将所述多个访问管理区域中的所访问的访问管理区域的访问计数存储在所述访问计数表中的、与所访问的访问管理区域相对应的空间中;并且所述控制器将与所访问的访问管理区域相对应的位矢量的位之中的与所访问页面相对应的位设置为第一值。
20.根据权利要求19所述的存储器装置,进一步包括易失性存储器,
其中所述控制器将一个或多个页面中存储的数据迁移到所述易失性存储器,所述一个或多个页面与位矢量中的具有所述第一值的一个或多个位相对应,所述位矢量与所述非易失性存储器中的所述多个访问管理区域之中的、访问计数达到预设值的访问管理区域相对应。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0105263 | 2019-08-27 | ||
KR1020190105263A KR20210025344A (ko) | 2019-08-27 | 2019-08-27 | 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템, 그것의 데이터 관리 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112445423A true CN112445423A (zh) | 2021-03-05 |
Family
ID=74565037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010562294.2A Withdrawn CN112445423A (zh) | 2019-08-27 | 2020-06-18 | 存储器系统、计算机系统及其数据管理方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US20210064535A1 (zh) |
JP (1) | JP2021034052A (zh) |
KR (1) | KR20210025344A (zh) |
CN (1) | CN112445423A (zh) |
DE (1) | DE102020117350A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220005285A (ko) * | 2020-07-06 | 2022-01-13 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US11537306B2 (en) * | 2021-03-12 | 2022-12-27 | Micron Technology, Inc. | Cold data detector in memory system |
KR20230059909A (ko) * | 2021-10-26 | 2023-05-04 | 삼성전자주식회사 | 스토리지 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR20230139248A (ko) | 2022-03-25 | 2023-10-05 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템 |
US11853572B2 (en) | 2022-05-05 | 2023-12-26 | Western Digital Technologies, Inc. | Encoding-aware data routing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104272272A (zh) * | 2012-03-07 | 2015-01-07 | 网络装置公司 | 混合储存集合去除重复 |
US20150058522A1 (en) * | 2013-08-22 | 2015-02-26 | International Business Machines Corporation | Detection of hot pages for partition migration |
US20160371019A1 (en) * | 2015-06-22 | 2016-12-22 | Nam Wook Kang | Data storage device and data processing system having the same |
US20180260323A1 (en) * | 2017-03-10 | 2018-09-13 | Oracle International Corporation | Methods to utilize heterogeneous memories with variable properties |
CN108804350A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种内存访问方法及计算机系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100855467B1 (ko) * | 2006-09-27 | 2008-09-01 | 삼성전자주식회사 | 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법 |
KR20130070178A (ko) * | 2011-12-19 | 2013-06-27 | 한국전자통신연구원 | 하이브리드 저장 장치 및 그것의 동작 방법 |
US10162748B2 (en) * | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
KR20160143259A (ko) * | 2015-06-05 | 2016-12-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
US10089014B2 (en) * | 2016-09-22 | 2018-10-02 | Advanced Micro Devices, Inc. | Memory-sampling based migrating page cache |
-
2019
- 2019-08-27 KR KR1020190105263A patent/KR20210025344A/ko active Search and Examination
-
2020
- 2020-04-03 US US16/839,708 patent/US20210064535A1/en not_active Abandoned
- 2020-06-18 CN CN202010562294.2A patent/CN112445423A/zh not_active Withdrawn
- 2020-07-01 DE DE102020117350.4A patent/DE102020117350A1/de active Pending
- 2020-08-21 JP JP2020139917A patent/JP2021034052A/ja active Pending
-
2022
- 2022-04-22 US US17/727,600 patent/US20220245066A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104272272A (zh) * | 2012-03-07 | 2015-01-07 | 网络装置公司 | 混合储存集合去除重复 |
US20150058522A1 (en) * | 2013-08-22 | 2015-02-26 | International Business Machines Corporation | Detection of hot pages for partition migration |
US20160371019A1 (en) * | 2015-06-22 | 2016-12-22 | Nam Wook Kang | Data storage device and data processing system having the same |
US20180260323A1 (en) * | 2017-03-10 | 2018-09-13 | Oracle International Corporation | Methods to utilize heterogeneous memories with variable properties |
CN108804350A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种内存访问方法及计算机系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2021034052A (ja) | 2021-03-01 |
US20210064535A1 (en) | 2021-03-04 |
DE102020117350A1 (de) | 2021-03-04 |
KR20210025344A (ko) | 2021-03-09 |
US20220245066A1 (en) | 2022-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102518095B1 (ko) | 스토리지 장치 및 시스템 | |
US11379381B2 (en) | Main memory device having heterogeneous memories, computer system including the same, and data management method thereof | |
CN112445423A (zh) | 存储器系统、计算机系统及其数据管理方法 | |
US8443144B2 (en) | Storage device reducing a memory management load and computing system using the storage device | |
JP5624583B2 (ja) | プログラム、計算処理装置、メモリ管理方法および計算機 | |
KR20190066466A (ko) | 기입 레이턴시를 줄일 수 있는 저장 장치의 동작 방법 | |
WO2024078342A1 (zh) | 内存交换方法、装置、计算机设备及存储介质 | |
CN110597742A (zh) | 用于具有持久系统存储器的计算机系统的改进存储模型 | |
CN108139983B (zh) | 用于在多级系统存储器中固定存储器页面的方法和设备 | |
EP3506112A1 (en) | Multi-level system memory configurations to operate higher priority users out of a faster memory level | |
US20220374150A1 (en) | Adjustable timer component for semiconductor devices | |
US10180904B2 (en) | Cache memory and operation method thereof | |
US10303375B2 (en) | Buffer allocation and memory management | |
EP3916567B1 (en) | Method for processing page fault by processor | |
CN116340203A (zh) | 数据预读取方法、装置、处理器及预取器 | |
KR102549540B1 (ko) | 스토리지 장치 및 그 동작 방법 | |
US20220229552A1 (en) | Computer system including main memory device having heterogeneous memories, and data management method thereof | |
US11868270B2 (en) | Storage system and storage device, and operating method thereof | |
TW202403556A (zh) | 記憶體系統及其操作方法 | |
CN117075795A (zh) | 存储器系统以及包括其的计算系统 | |
CN114270442A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210305 |
|
WW01 | Invention patent application withdrawn after publication |