CN110674054B - 存储系统及其操作方法 - Google Patents
存储系统及其操作方法 Download PDFInfo
- Publication number
- CN110674054B CN110674054B CN201910098305.3A CN201910098305A CN110674054B CN 110674054 B CN110674054 B CN 110674054B CN 201910098305 A CN201910098305 A CN 201910098305A CN 110674054 B CN110674054 B CN 110674054B
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- bit
- cache line
- memory
- 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.)
- Active
Links
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/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
- 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
-
- 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/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
-
- 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/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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
- 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
-
- 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
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/70—Details relating to dynamic memory management
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)
Abstract
本申请公开了一种存储系统及其操作方法。一种存储系统包括:存储器件,其包括主存储器和高速缓冲存储器,高速缓冲存储器包括用于高速缓存储存在主存储器中的数据的多个高速缓存行,其中,多个高速缓存行中的每个高速缓存行包括高速缓存数据、表示相应的高速缓存数据是否有效的有效比特位以及表示主存储器的读取数据是否正在被加载的加载比特位;以及存储器控制器,其适用于参考有效比特位和加载比特位来调度存储器件的操作。
Description
相关申请的交叉引用
本申请要求于2018年7月3日向韩国知识产权局提交的申请号为10-2018-0077176的韩国专利申请的优先权,其公开的全部内容通过引用合并于此。
技术领域
各种实施例涉及一种半导体设计技术,并且更特别地,涉及一种包括易失性存储器件和非易失性存储器件的混合存储系统。
背景技术
在大容量存储系统中使用易失性存储器作为主存储器的限制在于:其具有高功耗。这种存储器在集成度方面也存在限制。例如,易失性存储器包括动态随机存取存储器(DRAM)。
近来,已经积极开发了非易失性存储器以克服上述易失性存储器中的高功耗和集成度的限制。非易失性存储器的示例包括相变随机存取存储器(PCRAM)、磁性RAM(MRAM)、铁电RAM(FRAM)、电阻式RAM(RRAM)和自旋力矩转移RAM(STT_RAM)。非易失性存储器无需消耗能量来保留储存在其中的数据。因此,非易失性存储器比易失性存储器具有更高的集成度并且更低的功耗。然而,非易失性存储器比易失性存储器具有更低的性能(例如,更低的读取/写入速度)和写入耐久度。
近来,已经提出了一种混合存储系统,该混合存储系统利用两种类型的存储器的优点。该混合存储系统可以使用非易失性存储器作为主存储器并且使用易失性存储器作为高速缓冲存储器。虽然使用非易失性存储器作为主存储器能够降低单位成本,但是这种使用会增加延时。如果对读取请求的响应由于主存储器的增加延时而过于延迟,则读取请求不会被恰当处理。
发明内容
各种实施例针对使用具有相对较长延时的主存储器的存储系统以及通过使用表示主存储器的读取数据正在被加载到高速缓冲存储器中的加载比特位来管理数据的方法。
根据一个实施例,一种存储系统包括:存储器件,其包括主存储器和高速缓冲存储器,所述高速缓冲存储器包括用于高速缓存储存在所述主存储器中的数据的多个高速缓存行,其中,所述多个高速缓存行中的每个高速缓存行包括高速缓存数据、表示相应的高速缓存数据是否有效的有效比特位以及表示所述主存储器的读取数据是否正在被加载的加载比特位;以及存储器控制器,其适用于参考所述有效比特位和所述加载比特位来调度所述存储器件的操作。
根据一个实施例,一种存储系统包括:非易失性存储器件;易失性存储器件,其包括用于高速缓存储存在所述非易失性存储器件中的数据的多个高速缓存行,其中,所述多个高速缓存行中的每个高速缓存行包括高速缓存数据、标记地址(tag address)、表示相应的高速缓存数据是否有效的有效比特位、表示相应的高速缓存数据与所述非易失性存储器件的数据之间是否存在差异的脏比特位(dirty bit)以及表示所述非易失性存储器件的读取数据是否正在被加载的加载比特位;以及存储器控制器,其适用于参考所述有效比特位、所述脏比特位和所述加载比特位来调度所述易失性存储器件的操作。
根据一个实施例,一种存储系统的操作方法包括:提供包括主存储器和高速缓冲存储器的存储器件,所述高速缓冲存储器包括用于高速缓存储存在所述主存储器中的数据的多个高速缓存行,其中,所述多个高速缓存行中的每个高速缓存行包括高速缓存数据、表示相应的高速缓存数据是否有效的有效比特位以及表示所述主存储器的读取数据是否正在被加载的加载比特位;当从主机接收到读取请求时,查验与选择数据要被储存在其中的地址相对应的高速缓存行的所述加载比特位是否被置位;以及当所述加载比特位被置位时,在等待直到所述读取数据被储存在所述高速缓存命中的高速缓存行中之后,释放所述加载比特位,将所述有效比特位置位,并且输出所述高速缓存命中的高速缓存行的所述高速缓存数据。
根据一个实施例,一种存储系统的操作方法包括:接收操作请求;在所述存储系统的高速缓冲存储器中的高速缓存行中搜索具有与和所述操作请求相关的数据的地址相对应的地址的高速缓存命中的高速缓存行,其中,所述高速缓存行被配置为高速缓存储存在所述存储系统的非易失性存储器件中的数据;当发现高速缓存命中的高速缓存行时,确定所述高速缓存命中的高速缓存行的加载比特位或有效比特位是否被置位,并且基于确定结果来调度请求的操作;以及当未发现高速缓存命中的高速缓存行时,分别基于所述高速缓存行的加载比特位、有效比特位和脏比特位来在所述高速缓存行之中搜索空高速缓存行。
附图说明
图1是示出根据本发明的一个实施例的混合存储系统的框图。
图2是用于描述图1中示出的高速缓冲存储器的高速缓存行的示图。
图3是用于描述根据本发明的一个实施例的当加载比特位被置位时在读取操作期间的存储器控制器的操作的示图。
图4是用于描述根据本发明的一个实施例的当加载比特位被置位时在写入操作期间的存储器控制器的操作的示图。
图5是用于描述根据本发明的一个实施例的存储系统的读取操作的流程图。
图6是用于描述根据本发明的一个实施例的存储系统的写入操作的流程图。
具体实施方式
下面将结合附图更详细地描述各种实施例。提供这些实施例使本公开全面且完整。本公开中提到的所有“实施例”指的是本文中所公开的发明构思的实施例。所呈现的实施例仅为示例,而非意在限制本公开的范围。此外,贯穿本说明书,提及的“一个实施例”等不一定表示仅一个实施例,且不同之处提及的任何这样的短语不一定指的是相同的实施例。
此外,要注意的是,本文中所使用的术语仅出于描述实施例的目的,而非意在限制本发明。如本文中所使用的,单数形式意在包括复数形式,反之亦然,除非上下文另外明确指出。还要理解的是,在本申请文件中使用时术语“包括”、“包括有”、“包含”和/或“包含有”表示存在所述的特征,但不排除存在或添加一个或更多个其他未述的特征。如本文中所使用的,术语“和/或”表示一个或更多个所列项目的任意组合和所有组合。还要注意的是,在本申请文件中,“连接/耦接”不仅指一个组件直接耦接另一个组件,而且指一个组件经由中间组件间接耦接另一个组件。直接或间接连接/耦接的两个元件之间的通信可以是有线的或无线的,除非上下文另外指出。
要理解的是,虽然在本文中可以使用术语“第一”、“第二”、“第三”等来标识各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与亦具有相同或相似名称的另一个元件区分开。因此,在不偏离本公开的精神和范围的情况下,一个例子中的第一元件在另一例子中也能被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地示出实施例的特征,比例可能已经被夸大。
将主要在使用非易失性存储器作为主存储器并使用易失性存储器作为高速缓冲存储器的混合存储系统的背景下描述各种实施例。然而,当前实施例可以应用于包括主存储器和高速缓冲存储器的其他存储系统。
图1是示出根据一个实施例的混合存储系统100的框图。图2是用于描述图1中示出的高速缓冲存储器152的高速缓存行的配置图。
参考图1,混合存储系统100可以包括混合存储器件150和存储器控制器130。混合存储器件150可以储存由主机200访问的数据。存储器控制器130可以控制数据储存到混合存储器件150。
存储器控制器130可以响应于来自主机200的请求而将命令CMD、地址ADDR和数据DATA提供给混合存储器件150,并且控制混合存储器件150的读取、写入/编程和擦除操作。例如,存储器控制器130可以将在读取操作期间从混合存储器件150读取的读取数据RDATA提供给主机200,以及将在写入操作期间从主机200提供的写入数据WDATA储存在混合存储器件150中。
混合存储器件150可以从存储器控制器130接收命令CMD、地址ADDR和数据DATA。当与写入命令相对应的命令CMD被输入时,混合存储器件150可以将写入数据WDATA写入到与地址ADDR相对应的存储区域。当与读取命令相对应的命令CMD被输入时,混合存储器件150可以从与地址ADDR相对应的存储区域读取所述读取数据RDATA,并且将读取数据RDATA传输到存储器控制器130。
混合存储器件150可以包括:主存储器154;高速缓冲存储器152,其用于高速缓存储存在主存储器154中的数据。主存储器154可以用非易失性存储器件来实现。非易失性存储器件可以包括:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PCRAM)、自旋力矩转移RAM(STT-RAM)、电阻式RAM(RRAM)和/或快闪存储器。高速缓冲存储器152可以包括动态随机存取存储器(DRAM)和/或静态RAM(SRAM)。在一些实施例中,可以用PCRAM实现主存储器154,可以用DRAM实现高速缓冲存储器152。
通常,PCRAM比DRAM具有更大的可扩展性,但比DRAM具有更低的读取/写入操作速度。此外,PCRAM在写入操作期间使用更大量的能量,并且具有有限的写入耐久性。因此,在一些实施例中,混合存储器件150可以使用利用PCRAM实现的低速非易失性存储器件作为主存储器154并且使用利用DRAM实现的高速易失性存储器件作为高速缓冲存储器152。
高速缓冲存储器152是在具有相对较高的处理速度的处理器(即,存储器控制器130)与具有相对较低的处理速度的主存储器154之间暂时储存信息的高速存储器件。混合存储系统100可以在将数据储存在主存储器154中之前将数据储存在高速缓冲存储器152中,从而减小合并操作或块擦除操作的数量。换言之,混合存储系统100可以通过将被频繁访问的数据储存在高速存储器件(例如,DRAM)中来减小对低速存储器件(例如,PCRAM)的访问数量,从而提高整个混合存储系统的性能。由于高速缓冲存储器152具有有限的空间,因此高速缓冲存储器152需要在高速缓冲存储器152已满时擦除现有数据以便加载新数据。对于此操作,当高速缓冲存储器152已满时,高速缓冲存储器152可以擦除被访问的可能性较小的数据或者将数据写回到主存储器154,并且根据高速缓存替换策略(cachereplacement policy)来用新数据替换对应空间的数据。
参考图2,高速缓冲存储器152可以包括用于高速缓存储存在主存储器154中的数据的多个高速缓存行。
当从主机200输入写入请求时,存储器控制器130可以确定构成高速缓冲存储器152的多个高速缓存行中可用的高速缓存行,并且在确定了高速缓存行可用时储存用于高速缓存行中的每个高速缓存行的数据。例如,图2中示出了包括第一高速缓存行至第2048高速缓存行的高速缓冲存储器152。
第一高速缓存行至第2048高速缓存行中的每个可以包括高速缓存数据CDATA、标记地址TAG_A、有效比特位V、脏比特位(dirty bit)D、加载比特位L。例如,图2中示出了32字节高速缓存数据CDATA、16比特位标记地址TAG_A、1比特位有效比特位V、1比特位脏比特位D和1比特位加载比特位L。作为参考,第一高速缓存行至第2048高速缓存行还可以包括用于区分各个高速缓存行的行索引(line index)。
高速缓存数据CDATA可以是储存在主存储器154中的写入数据或从主存储器154读取的读取数据。
标记地址TAG_A可以包括指定高速缓存数据CDATA的储存位置的地址信息。
有效比特位V可以包括表示储存在相应的高速缓存行中的高速缓存数据CDATA是否有效的信息。当高速缓存数据CDATA有效时,有效比特位V可以被设置成逻辑高值(例如,“1”)。
为了下面讨论的目的,具有逻辑高值的任意比特位被认为是被置位,且具有逻辑低值(例如,“0”)的任意比特位被认为是被释放(released)。如本领域技术人员将理解的,该惯例可以被颠倒。
脏比特位D可以包括表示储存在相应的高速缓存行中的高速缓存数据CDATA是否被写回到主存储器154的信息。即,脏比特位D可以包括关于高速缓存数据CDATA与主存储器154的数据是否不同的信息。当高速缓存数据CDATA需要被写回到主存储器154时,脏比特位D可以被置位到逻辑高值,而当储存在相应的高速缓存行中的高速缓存数据CDATA被写回到主存储器154时,脏比特位D可以被释放到逻辑低值。例如,当执行写入操作时,脏比特位D可以被置位到逻辑高值。当脏比特位D被如此置位时,高速缓存数据CDATA可以仅被储存在高速缓冲存储器152中。
加载比特位L可以包括表示响应于读取请求而从图1中所示的主存储器154读取的读取数据是否正在被加载到相应的高速缓存行中的信息。当主存储器154的读取数据正在被加载到相应的高速缓存行中时,加载比特位L可以被置位到高比特位,而当高速缓存数据CDATA在加载完成之后被储存在相应的高速缓存行中时,加载比特位L可以被释放到逻辑低值。
在本实施例中,存储器控制器130可以管理加载比特位L和有效比特位V以便不同时被置位。换言之,存储器控制器130可以管理加载比特位L和有效比特位V以不同时具有逻辑高值。存储器控制器130可以参考储存在高速缓冲存储器152的每个高速缓存行中的加载比特位L、标记地址TAG_A、有效比特位V和脏比特位D来调度存储器件150的操作。
存储器控制器130可以响应于读取请求而搜索具有与读取数据的地址相对应的标记地址TAG_A的高速缓存行。当发现高速缓存行(即,发生高速缓存命中)时,存储器控制器130可以查验高速缓存命中的高速缓存行(cache-hit cache line)的有效比特位V或加载比特位L是否被置位,并且根据查验结果来调度存储器件150的读取操作。在下文中参考图3来提供关于这方面的进一步描述。
存储器控制器130可以响应于写入请求而搜索具有与写入数据的地址相对应的标记地址TAG_A的高速缓存行。当发现高速缓存行时,存储器控制器130可以查验高速缓存命中的高速缓存行的有效比特位V或加载比特位L是否被置位,并且根据查验结果来调度存储器件150的写入操作。在下文中参考图4来提供关于这方面的进一步描述。
当不存在加载比特位L时,正如在诸如具有相对较长延时的PCRAM的非易失性存储器件用作主存储器的情况下,可能会出现以下问题。
在该示例中,依次接收与地址0x00、0x01、0x02、0x03和0x00相关的第一读取请求至第五读取请求R0、R1、R2、R3和R4。存储器控制器130可以根据第一读取请求R0来搜索具有与地址0x00相对应的标记地址TAG_A的高速缓存行。如果不存在高速缓存命中(即,不存在具有与0x00相对应的TAG_A的高速缓存行),则存储器控制器130可以获得高速缓冲存储器152的空高速缓存行并且向主存储器154请求分配给地址0x00的读取数据。在此情况下,存储器控制器130可以将获得的高速缓存行的有效比特位V置位到逻辑高值。
随后,在与地址0x01、0x02和0x03相关的第二读取请求至第四读取请求R1、R2和R3被依次处理之后,存储器控制器130根据第五读取请求R4来搜索具有与地址0x00相对应的标记地址TAG_A的高速缓存行。在此情况下:由于完成了与第一输入地址0x00相关的第一读取请求R0的处理,因此存储器控制器130可以确定高速缓存命中的高速缓存行的高速缓存数据CDATA是有效的;并且存储器控制器130可以直接将相应的高速缓存行的高速缓存数据CDATA提供给主机。然而,实际上,由于主存储器154的长延时,读取数据可能没有从主存储器154到达高速缓冲存储器152,造成既不是高速缓存命中也不是高速缓存未命中的模糊高速缓存状态。
在本实施例中,通过使用表示从主存储器154读取的读取数据是否正在被加载到相应的高速缓存行中的加载比特位L而调度存储器件150的操作,可以防止存储系统的故障并且提高存储系统的性能。
图3是用于描述根据本发明的一个实施例的在加载比特位L被置位时的读取操作期间的存储器控制器的操作的示图。为清晰起见,图3仅示出了图1中的高速缓冲存储器152和主存储器154。
参考图3,当从主机接收到读取请求R_REQ(图3中表示为“①”)时,存储器控制器130在高速缓冲存储器152中搜索具有与读取数据RDATA的地址相对应的标记地址TAG_A的高速缓存行。在此情况下,当高速缓存命中的高速缓存行C_HIT_CL的加载比特位L被置位且有效比特位V被释放(图3中表示为“②”)时,存储器控制器130可以确定:读取数据RDATA响应于在先的读取请求而正在从主存储器154被加载到高速缓存命中的高速缓存行C_HIT_CL中。
存储器控制器130等待,直到读取数据RDATA到达高速缓存命中的高速缓存行C_HIT_CL(图3中表示为“③”)。随后,当读取数据RDATA到达了高速缓存命中的高速缓存行C_HIT_CL并且被储存为高速缓存数据CDATA时,存储器控制器130可以释放加载比特位L并且将有效比特位V置位(图3中表示为“④”),从而通知高速缓存命中的高速缓存行C_HIT_CL的高速缓存数据CDATA是有效值。存储器控制器130可以将高速缓存命中的高速缓存行C_HIT_CL的高速缓存数据CDATA输出到主机作为读取数据RDATA(图3中表示为“⑤”)。
虽然上面描述了在释放加载比特位L且将有效比特位V置位(图3中表示为“④”)之后输出读取数据RDATA,但是本实施例不限于此。在一些实施例中,相应的比特位可以在输出读取数据RDATA(图3中的“⑤”)之后被置位(图3中的“④”),并且可以同时执行输出读取数据RDATA的操作(图3中的“⑤”)和将相应的比特位置位的操作(图3中的“④”)。
图4是用于描述根据本发明的一个实施例的在加载比特位L被置位时的写入操作期间的存储器控制器的操作的示图。为清晰起见,图4仅示出了图1中的高速缓冲存储器152和主存储器154。
参考图4,当从主机输入写入请求W_REQ(图4中的“①”)时,存储器控制器130在高速缓冲存储器152中搜索具有与写入数据WDATA的地址相对应的标记地址TAG_A的高速缓存行。在此情况下,当高速缓存命中的高速缓存行C_HIT_CL的加载比特位L被置位且有效比特位V被释放(图4中的“②”)时,存储器控制器130可以确定:读取数据RDATA响应于在先的读取请求而正在从主存储器154被加载到高速缓存命中的高速缓存行C_HIT_CL中。
存储器控制器130可以写入所述写入数据WDATA作为高速缓存命中的高速缓存行C_HIT_CL的高速缓存数据CDATA(图4中的“③”)。存储器控制器130可以将高速缓存命中的高速缓存行C_HIT_CL的脏比特位D和有效比特位V置位到逻辑高值而将加载比特位L释放到逻辑低值(图4中的“④”),从而通知:高速缓存命中的高速缓存行C_HIT_CL的高速缓存数据CDATA是有效值,但却是与主存储器154的数据不同的值。在此情况下,存储器控制器130可以将加载比特位L和有效比特位V管理为不同时为逻辑高值。
存储器控制器130等待,直到读取数据RDATA到达高速缓存命中的高速缓存行C_HIT_CL(图4中的“⑤”)。随后,当读取数据RDATA到达高速缓存命中的高速缓存行C_HIT_CL时,存储器控制器130可以丢弃读取数据RDATA(图4中的“⑦”)。在此情况下,存储器控制器130可以维持高速缓存命中的高速缓存行C_HIT_CL的加载比特位L、脏比特位D和有效比特位V的置位(图4中的“⑥”)。
虽然上面描述了在写入所述写入数据WDATA之后将有效比特位V和脏比特位D置位且释放加载比特位L(图4中的“④”),但是本实施例不限于此。在一些实施例中,写入数据WDATA可以在将相应的比特位置位(图4中的“④”)之后被写入(图4中的“③”),且可以同时执行写入所述写入数据WDATA的操作(附图中的“③”)和将相应的比特位置位的操作(附图中的“④”)。
如上所述,根据一个实施例,使用具有相对较长延时的非易失性存储器作为主存储器并且使用DRAM作为高速缓冲存储器的混合存储系统可以使用表示主存储器的读取数据是否正在被加载到高速缓冲存储器中的加载比特位来管理数据。因此,通过调度处于既不是高速缓存命中也不是高速缓存未命中的模糊状态下的高速缓冲存储器的操作,可以防止存储系统的故障并且改善存储系统的性能。
将主要参考图5和图6以及另外参考图1至图4来详细描述存储系统的操作。
图5是用于描述根据本发明的一个实施例的存储系统的读取操作的流程图。
参考图5,当在步骤S510中从主机接收到读取请求R_REQ时,在步骤S520中,存储器控制器130在高速缓冲存储器152中搜索具有与读取数据RDATA的地址相对应的标记地址TAG_A的高速缓存行。
当存在高速缓存命中,即,发现这样的高速缓存行C_HIT_CL(步骤S530中的“是”)时,在步骤S540中,存储器控制器130可以查验加载比特位L和有效比特位V。
当高速缓存命中的高速缓存行C_HIT_CL的加载比特位L被置位到逻辑高值(即,步骤S540中的“L=1”)时,存储器控制器130可以确定:读取数据RDATA根据在先的读取请求而正在从主存储器154被加载到高速缓存命中的高速缓存行C_HIT_CL中。
在步骤S542中,存储器控制器130等待,直到读取数据RDATA到达高速缓存命中的高速缓存行C_HIT_CL。随后,当读取数据RDATA到达了高速缓存命中的高速缓存行C_HIT_CL并且被储存为高速缓存数据CDATA时,在步骤S544中,存储器控制器130可以将加载比特位L释放到逻辑低值,将有效比特位置位到逻辑高值,且将高速缓存命中的高速缓存行C_HIT_CL的高速缓存数据CDATA输出到主机作为读取数据RDATA。
当高速缓存命中的高速缓存行C_HIT_CL的加载比特位L被释放到逻辑低值且有效比特位V被置位到逻辑高值(即,步骤S540中的“V=1”)时,在步骤S546中,存储器控制器130可以将高速缓存命中的高速缓存行C_HIT_CL的高速缓存数据CDATA输出到主机作为读取数据RDATA并且维持当前的加载比特位L和有效比特位V的状态。
当未发现高速缓存命中的高速缓存行C_HIT_CL(即,步骤S530中的“否”,发生高速缓存未命中)时,在步骤S550中,存储器控制器130可以从高速缓冲存储器152中获得空高速缓存行。存储器控制器130可以基于有效比特位V、脏比特位D和加载比特位L而搜索空高速缓存行。
更具体地,在步骤S5510中,存储器控制器130可以查验高速缓冲存储器152的每个高速缓存行的加载比特位L、有效比特位V和脏比特位D。当一个高速缓存行的加载比特位L、有效比特位V和脏比特位D全部都被释放到逻辑低值(即,步骤S5510中的“全部=0”)时,在步骤S5550中,存储器控制器130可以获得相应的高速缓存行作为空高速缓存行。
另一方面,当一个高速缓存行的有效比特位V、脏比特位D和加载比特位L中的任意一个被置位(即,步骤S5510中的“V/D/L中的任意一个=1”)时,存储器控制器130可以确定相应的高速缓存行是被占用的高速缓存行,并且在步骤S5530中搜索下一个高速缓存行。当相应的高速缓存行是最后的高速缓存行(即,步骤S5520中的“是”)时,存储器控制器130可以确定高速缓冲存储器152为高速缓存已满(cache-full),并且在步骤S5540中通过基于高速缓存替换策略应用逐出算法(eviction algorithm)来选择被占用的高速缓存行中的任意一个。例如,可以基于以下列表中的一个来进行逐出算法:先入先出(FIFO)列表,其中被加载在高速缓存中的最早的块被替换;最不常用(LFU)列表,其中被加载到高速缓存中之后最少使用的块被替换;以及最近最少使用(LRU)列表,其中被加载到高速缓存中之后处于未使用状态下的最长剩余块被替换。在步骤S5550中,存储器控制器130可以通过删除根据逐出算法而选中的高速缓存行的高速缓存数据或者将高速缓存数据写回到主存储器154来获得空高速缓存行。
随后,在步骤S552中,存储器控制器130将获得的高速缓存行的加载比特位L置位到逻辑高值,并且向主存储器154请求与读取请求相对应的读取数据RDATA。在步骤S544中,存储器控制器130等待,直到读取数据RDATA到达获得的高速缓存行。随后,当读取数据RDATA到达了获得的高速缓存行并且被储存为高速缓存数据CDATA时,在步骤S556中,存储器控制器130可以将加载比特位L释放到逻辑低值,将有效比特位V置位到逻辑高值,且将获得的高速缓存行的高速缓存数据CDATA输出到主机作为读取数据RDATA。
图6是用于描述根据一个实施例的存储系统的写入操作的流程图。
参考图6,当在步骤S610中从主机接收到写入请求W_REQ时,在步骤S620中,存储器控制器130在高速缓冲存储器152中搜索具有与写入数据WDATA的地址相对应的标记地址TAG_A的高速缓存行。
当存在高速缓存命中,即,发现高速缓存行C_HIT_CL(步骤S630中的“是”)时,在步骤S640中,存储器控制器130可以查验加载比特位L和有效比特位V。
当高速缓存命中的高速缓存行C_HIT_CL的加载比特位L被置位到逻辑高值(即,步骤S640中的“L=1”)时,存储器控制器130可以确定:读取数据RDATA根据在先的读取请求而正在从主存储器154被加载到高速缓存命中的高速缓存行C_HIT_CL中。
在步骤S642中,存储器控制器130写入所述写入数据WDATA作为高速缓存命中的高速缓存行C_HIT_CL的高速缓存数据CDATA,并且将高速缓存命中的高速缓存行C_HIT_CL的脏比特位D和有效比特位V置位到逻辑高值,而将加载比特位L释放到逻辑低值。在此情况下,脏比特位D变为逻辑高值的事实表示:新数据被储存在高速缓冲存储器152中并且未对主存储器154执行针对新数据的写入操作。
在步骤S644中,存储器控制器130等待,直到读取数据RDATA到达高速缓存命中的高速缓存行C_HIT_CL。随后,当读取数据RDATA到达高速缓存命中的高速缓存行C_HIT_CL时,在步骤S646中,存储器控制器130可以丢弃读取数据RDATA。此时,存储器控制器130可以维持高速缓存命中的高速缓存行C_HIT_CL的加载比特位L、脏比特位D和有效比特位V的置位。
当高速缓存命中的高速缓存行C_HIT_CL的加载比特位L被释放到逻辑低值而有效比特位V被置位到逻辑高值(即,步骤S640中的“V=1”)时,在步骤S648中,存储器控制器130可以将写入数据WDATA储存为高速缓存命中的高速缓存行C_HIT_CL的高速缓存数据CDATA,将脏比特位D置位到逻辑高值并且维持有效比特位V的置位状态。
随后,当高速缓冲存储器152为高速缓存已满使得选中的高速缓存行根据高速缓存替换策略而被逐出或者从主机接收到写回请求(即,步骤S650中的“是”)时,在步骤S652中,存储器控制器130可以将其中脏比特位D被置位的高速缓存行的高速缓存数据CDATA写回到主存储器154,并且将脏比特位D释放到逻辑低值。如上所述,在这样的写回操作被执行之后,存储器控制器130可以释放脏比特位D以通知高速缓冲存储器152与主存储器154之间的一致性被维持。
当未发现高速缓存命中的高速缓存行C_HIT_CL(即,步骤S630中的“否”,出现高速缓存未命中)时,在步骤S660中,存储器控制器130可以从高速缓冲存储器152中获得空高速缓存行。存储器控制器130可以基于有效比特位V、脏比特位D和加载比特位L而搜索空高速缓存行。
更具体地,在步骤S6610中,存储器控制器130可以查验高速缓冲存储器152的每个高速缓存行的加载比特位L、有效比特位V和脏比特位D。当单个高速缓存行的加载比特位L、有效比特位V和脏比特位D全部都被释放到逻辑低值(即,步骤S6610中的“全部=0”)时,在步骤S6650中,存储器控制器130可以获得相应的高速缓存行作为空高速缓存行。
另一方面,当一个高速缓存行的有效比特位V、脏比特位D和加载比特位L中的任意一个被置位(即,步骤S6610中的“V/D/L中的任意一个=1”)时,存储器控制器130可以确定相应的高速缓存行为被占用的高速缓存行,并且在步骤S6630中搜索下一个高速缓存行。当相应的高速缓存行为最后的高速缓存行(即,步骤S6620中的“是”)时,存储器控制器130可以确定高速缓冲存储器152为高速缓存已满,并且在步骤S6640中通过基于高速缓存替换策略应用逐出算法来选择被占用的高速缓存行中的任意一个。在步骤S6650中,存储器控制器130可以通过删除根据逐出算法而选中的高速缓存行的高速缓存数据或者将高速缓存数据写回到主存储器154来获得空高速缓存行。
在步骤S662中,存储器控制器130可以将写入数据WDATA储存为获得的高速缓存行的高速缓存数据CDATA,并且将脏比特位D和有效比特位V置位到逻辑高比特位。
随后,当高速缓冲存储器152为高速缓存已满使得选中的高速缓存行根据高速缓存替换策略而被逐出或者从主机输入写回请求(即,步骤S664中的“是”)时,在步骤S666中,存储器控制器130可以将其中脏比特位D被置位的高速缓存行的高速缓存数据CDATA写回到主存储器154,并且将脏比特位D释放到逻辑低值。
从以上描述可以明显看出,在根据实施例的存储系统中,通过调度处于既不是高速缓存命中也不是高速缓存未命中的模糊状态下的高速缓冲存储器的操作,可以防止存储系统的故障并且改善存储系统的性能。
虽然已经关于特定实施例示出和描述本公开,但是这些实施例并非限制性的,而是描述性的。另外,要注意的是:在不偏离如所附权利要求所限定的本公开的精神和/或范围的情况下,如本领域技术人员根据本公开而理解的,可以通过替换、改变和修改来以各种方式实现本公开。
Claims (23)
1.一种存储系统,包括:
存储器件,其包括主存储器和高速缓冲存储器,所述高速缓冲存储器包括用于高速缓存储存在所述主存储器中的数据的多个高速缓存行,其中,所述多个高速缓存行中的每个高速缓存行包括高速缓存数据、表示相应的高速缓存数据是否有效的有效比特位以及表示所述主存储器的读取数据是否正在被加载的加载比特位;以及
存储器控制器,其适用于参考所述有效比特位和所述加载比特位来调度所述存储器件的操作,其中,所述存储器控制器管理所述加载比特位和所述有效比特位,以不被同时置位。
2.根据权利要求1所述的存储系统,其中,当与所述读取数据的地址相对应的高速缓存命中的高速缓存行的所述加载比特位在读取操作期间被置位时,所述存储器控制器等待直到所述读取数据被储存在所述高速缓存命中的高速缓存行中,以及然后释放所述加载比特位,将所述有效比特位置位,并且输出所述高速缓存命中的高速缓存行的所述高速缓存数据。
3.根据权利要求1所述的存储系统,其中,当与所述读取数据的地址相对应的高速缓存命中的高速缓存行的所述有效比特位在读取操作期间被置位时,所述存储器控制器输出所述高速缓存命中的高速缓存行的所述高速缓存数据。
4.根据权利要求1所述的存储系统,其中,当与选择数据要被储存在其中的地址相对应的高速缓存行的所述加载比特位在写入操作期间被置位时,所述存储器控制器将写入数据储存为所述高速缓存命中的高速缓存行的所述高速缓存数据,将所述有效比特位置位,释放所述加载比特位,并且在所述读取数据到达所述高速缓存命中的高速缓存行时丢弃所述读取数据。
5.根据权利要求1所述的存储系统,其中,当与写入数据要被储存在其中的地址相对应的高速缓存行的所述有效比特位在写入操作期间被置位时,所述存储器控制器将所述写入数据储存为所述高速缓存命中的高速缓存行的所述高速缓存数据,并且维持所述有效比特位的置位状态。
6.根据权利要求1所述的存储系统,其中,所述多个高速缓存行中的每个高速缓存行还包括指定所述相应的高速缓存数据的储存位置的标记地址,
其中,所述存储器控制器基于所述多个高速缓存行的每个高速缓存行中的所述标记地址而搜索与选择数据要被储存在其中的地址相对应的高速缓存行。
7.根据权利要求1所述的存储系统,其中,所述多个高速缓存行中的每个高速缓存行还包括表示所述相应的高速缓存数据与所述主存储器的数据之间是否存在差异的脏比特位。
8.一种存储系统,包括:
非易失性存储器件;
易失性存储器件,其包括用于高速缓存储存在所述非易失性存储器件中的数据的多个高速缓存行,其中,所述多个高速缓存行中的每个高速缓存行包括高速缓存数据、标记地址、表示相应的高速缓存数据是否有效的有效比特位、表示所述相应的高速缓存数据与所述非易失性存储器件的数据之间是否存在差异的脏比特位以及表示所述非易失性存储器件的读取数据是否正在被加载的加载比特位;以及
存储器控制器,其适用于参考所述有效比特位、所述脏比特位和所述加载比特位来调度所述易失性存储器件的操作,其中,所述存储器控制器管理所述加载比特位和所述有效比特位,以不被同时置位。
9.根据权利要求8所述的存储系统,其中,所述存储器控制器基于所述标记地址而搜索与选择数据要被储存在其中的地址相对应的高速缓存行。
10.根据权利要求9所述的存储系统,其中,当所述高速缓存命中的高速缓存行的所述加载比特位在读取操作期间被置位时,所述存储器控制器等待直到所述读取数据被储存在所述高速缓存命中的高速缓存行中,以及然后释放所述加载比特位,将所述有效比特位置位,并且输出所述高速缓存命中的高速缓存行的所述高速缓存数据。
11.根据权利要求9所述的存储系统,其中,当所述高速缓存命中的高速缓存行的所述有效比特位在读取操作期间被置位时,所述存储器控制器输出所述高速缓存命中的高速缓存行的所述高速缓存数据。
12.根据权利要求9所述的存储系统,其中,当所述高速缓存命中的高速缓存行的所述加载比特位在写入操作期间被置位时,所述存储器控制器将写入数据储存为所述高速缓存命中的高速缓存行的所述高速缓存数据,将所述脏比特位和所述有效比特位置位,释放所述加载比特位,并且在所述读取数据到达所述高速缓存命中的高速缓存行时丢弃所述读取数据。
13.根据权利要求9所述的存储系统,其中,当所述高速缓存命中的高速缓存行的所述有效比特位在写入操作期间被置位时,所述存储器控制器将写入数据储存为所述高速缓存命中的高速缓存行的所述高速缓存数据,将所述脏比特位置位,并且维持所述有效比特位的置位状态。
14.一种存储系统的操作方法,包括:
提供包括主存储器和高速缓冲存储器的存储器件,所述高速缓冲存储器包括用于高速缓存储存在所述主存储器中的数据的多个高速缓存行,其中,所述多个高速缓存行中的每个高速缓存行包括高速缓存数据、表示相应的高速缓存数据是否有效的有效比特位以及表示所述主存储器的读取数据是否正在被加载的加载比特位;
当从主机接收到读取请求时,查验与选择数据要被储存在其中的地址相对应的高速缓存行的所述加载比特位是否被置位;以及
当所述加载比特位被置位时,在等待直到所述读取数据被储存在所述高速缓存命中的高速缓存行中之后,在将所述有效比特位置位的同时,释放所述加载比特位,并且输出所述高速缓存命中的高速缓存行的所述高速缓存数据,由此来管理所述加载比特位和所述有效比特位,以不被同时置位。
15.根据权利要求14所述的操作方法,还包括:
当响应于所述读取请求而释放所述高速缓存命中的高速缓存行的所述加载比特位并且将所述有效比特位置位时,输出所述高速缓存行的所述高速缓存数据。
16.根据权利要求14所述的操作方法,其中,所述多个高速缓存行中的每个高速缓存行还包括表示所述相应的高速缓存数据与所述主存储器的数据之间的差异的脏比特位。
17.根据权利要求16所述的操作方法,还包括:
当从所述主机接收到写入请求时,查验所述高速缓存命中的高速缓存行的所述加载比特位是否被置位;
当所述加载比特位被置位时,将写入数据储存为所述高速缓存行的所述高速缓存数据,将所述脏比特位和所述有效比特位置位,并且释放所述加载比特位;以及
当所述读取数据到达所述高速缓存行时,丢弃所述读取数据。
18.根据权利要求17所述的操作方法,还包括:
当响应于所述写入请求而释放所述高速缓存命中的高速缓存行的所述加载比特位并且将所述有效比特位置位时,将所述写入数据储存为所述高速缓存行的所述高速缓存数据,将所述脏比特位置位,并且维持所述有效比特位的置位状态。
19.根据权利要求16所述的操作方法,其中,所述多个高速缓存行中的每个高速缓存行还包括指定相应的高速缓存数据的储存位置的标记地址,
其中,所述操作方法还包括:
基于所述高速缓存行中的每个高速缓存行的标记地址来搜索所述高速缓存命中的高速缓存行。
20.根据权利要求19所述的操作方法,还包括:
当未发现所述高速缓存命中的高速缓存行时,基于所述有效比特位、所述脏比特位和所述加载比特位来搜索空高速缓存行;以及
当未发现所述空高速缓存行时,根据高速缓存替换策略来获得空高速缓存行。
21.根据权利要求20所述的操作方法,还包括:
当响应于所述读取请求而未发现所述高速缓存命中的高速缓存行时,
请求来自所述主存储器的所述读取数据并且将所述加载比特位置位;以及
在等待直到所述读取数据被储存在获得的高速缓存行中之后,释放所述加载比特位,将所述有效比特位置位,并且输出所述获得的高速缓存行的高速缓存数据。
22.根据权利要求20所述的操作方法,还包括:
当响应于写入请求而未发现所述高速缓存命中的高速缓存行时,将写入数据储存为所述获得的高速缓存行的所述高速缓存数据,并且将所述获得的高速缓存行的所述有效比特位和所述脏比特位置位。
23.根据权利要求22所述的操作方法,还包括:
将所述脏比特位被置位的所述高速缓存行的所述高速缓存数据写回到所述主存储器,并且释放所述脏比特位。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180077176A KR20200004119A (ko) | 2018-07-03 | 2018-07-03 | 메모리 시스템 및 그의 동작 방법 |
KR10-2018-0077176 | 2018-07-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110674054A CN110674054A (zh) | 2020-01-10 |
CN110674054B true CN110674054B (zh) | 2023-08-08 |
Family
ID=69065652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910098305.3A Active CN110674054B (zh) | 2018-07-03 | 2019-01-31 | 存储系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10970208B2 (zh) |
KR (1) | KR20200004119A (zh) |
CN (1) | CN110674054B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11487653B2 (en) * | 2019-09-27 | 2022-11-01 | Micron Technology, Inc. | L2P translation techniques in limited RAM systems to increase random write performance using multiple L2P caches |
US11386094B2 (en) | 2019-10-14 | 2022-07-12 | Oracle International Corporation | Techniques for in-memory stitching |
US20210019069A1 (en) * | 2019-10-21 | 2021-01-21 | Intel Corporation | Memory and storage pool interfaces |
US20230251963A1 (en) * | 2022-02-04 | 2023-08-10 | National Technology & Engineering Solutions Of Sandia, Llc | Architectural support for persistent applications |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102016810A (zh) * | 2008-04-22 | 2011-04-13 | Nxp股份有限公司 | 具有允许写入未预先加载的高速缓存行的高速缓存电路的多处理电路 |
CN103136119A (zh) * | 2011-11-29 | 2013-06-05 | 索尼公司 | 非易失性高速缓冲存储器、其处理方法以及计算机系统 |
CN107038126A (zh) * | 2015-12-23 | 2017-08-11 | 爱思开海力士有限公司 | 存储系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3210590B2 (ja) * | 1996-11-29 | 2001-09-17 | 株式会社日立製作所 | マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 |
JP2012203560A (ja) | 2011-03-24 | 2012-10-22 | Toshiba Corp | キャッシュメモリおよびキャッシュシステム |
KR101306623B1 (ko) | 2011-08-12 | 2013-09-11 | 주식회사 에이디칩스 | 캐시메모리의 캐시 웨이 락킹방법 |
JP2013222434A (ja) * | 2012-04-19 | 2013-10-28 | Nec Corp | キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム |
WO2014158156A1 (en) * | 2013-03-28 | 2014-10-02 | Hewlett-Packard Development Company, L.P. | Storing data from cache lines to main memory based on memory addresses |
US9235521B2 (en) * | 2013-07-22 | 2016-01-12 | Avago Technologies General Ip (Singapore) Pte Ltd | Cache system for managing various cache line conditions |
-
2018
- 2018-07-03 KR KR1020180077176A patent/KR20200004119A/ko unknown
- 2018-12-26 US US16/232,248 patent/US10970208B2/en active Active
-
2019
- 2019-01-31 CN CN201910098305.3A patent/CN110674054B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102016810A (zh) * | 2008-04-22 | 2011-04-13 | Nxp股份有限公司 | 具有允许写入未预先加载的高速缓存行的高速缓存电路的多处理电路 |
CN103136119A (zh) * | 2011-11-29 | 2013-06-05 | 索尼公司 | 非易失性高速缓冲存储器、其处理方法以及计算机系统 |
CN107038126A (zh) * | 2015-12-23 | 2017-08-11 | 爱思开海力士有限公司 | 存储系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20200004119A (ko) | 2020-01-13 |
US10970208B2 (en) | 2021-04-06 |
US20200012601A1 (en) | 2020-01-09 |
CN110674054A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110674054B (zh) | 存储系统及其操作方法 | |
US10379746B2 (en) | Information processing apparatus, storage device, and computer program product | |
US10860244B2 (en) | Method and apparatus for multi-level memory early page demotion | |
US7886110B2 (en) | Dynamically adjusting cache policy based on device load in a mass storage system | |
KR102609974B1 (ko) | 일관성 유닛을 갖는 멀티-레벨 시스템 메모리를 위한 메모리 제어기 | |
US20110161597A1 (en) | Combined Memory Including a Logical Partition in a Storage Memory Accessed Through an IO Controller | |
US20130205089A1 (en) | Cache Device and Methods Thereof | |
US10261901B2 (en) | Method and apparatus for unneeded block prediction in a computing system having a last level cache and a multi-level system memory | |
US20170091099A1 (en) | Memory controller for multi-level system memory having sectored cache | |
EP3049938B1 (en) | Data management on memory modules | |
EP2884395A2 (en) | Storage system having data storage lines with different data storage line sizes | |
KR20160024546A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
TWI652576B (zh) | Memory system and processor system | |
WO2018004801A1 (en) | Multi-level system memory with near memory scrubbing based on predicted far memory idle time | |
WO2004059499A2 (en) | Memory controller and method for writing to a memory | |
US9977604B2 (en) | Memory system | |
US10191664B2 (en) | Memory system | |
KR101472967B1 (ko) | 라이트 백 동작을 수행하는 캐시 메모리, 이의 동작 방법, 및 이를 포함하는 시스템 | |
US20170109277A1 (en) | Memory system | |
CN110537172B (zh) | 混合存储器模块 | |
US10042773B2 (en) | Advance cache allocator | |
CN104375955B (zh) | 高速缓冲存储器设备及其控制方法 | |
US10915453B2 (en) | Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures | |
US10083116B2 (en) | Method of controlling storage device and random access memory and method of controlling nonvolatile memory device and buffer memory | |
US20170109072A1 (en) | Memory system |
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 |