CN111723028B - 高速缓存存储器及包含其的存储系统及其操作方法 - Google Patents
高速缓存存储器及包含其的存储系统及其操作方法 Download PDFInfo
- Publication number
- CN111723028B CN111723028B CN201911265732.2A CN201911265732A CN111723028B CN 111723028 B CN111723028 B CN 111723028B CN 201911265732 A CN201911265732 A CN 201911265732A CN 111723028 B CN111723028 B CN 111723028B
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- address
- sets
- host
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 title claims description 14
- 238000001514 detection method Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 8
- 238000007689 inspection Methods 0.000 claims description 4
- 238000011017 operating method Methods 0.000 claims 1
- 238000009482 thermal adhesion granulation Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/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
- 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
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- 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/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/0886—Variable-length word access
-
- 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
-
- 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
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
高速缓存存储器包括:对应于偶地址的第一高速缓存区域;和对应于奇地址的第二高速缓存区域,其中第一高速缓存区域和第二高速缓存区域中的每一个包括多个高速缓存组,并且每个高速缓存组包括:数据组字段,其适用于储存与偶地址和奇地址之中的地址相对应的数据;以及配对字段,其适用于储存关于位置的信息,该位置储存对应于相邻地址的数据,所述相邻地址与对应于被存储数据的地址相邻。
Description
相关申请的交叉引用
本申请要求于2019年3月22日提交的申请号为10-2019-0032906的韩国专利申请的优先权,其全部内容通过引用合并于此。
技术领域
本公开总体上涉及一种包括高速缓存存储器的存储系统。
背景技术
近来,正在积极地研究诸如电阻式随机存取存储器(RRAM)、相变随机存取存储器(PCRAM)、磁性随机存取存储器(MRAM)和铁电随机存取存储器(FRAM)的下一代存储器。但是,下一代存储器的操作速度没有达到期望的速度,并且下一代存储器的缺陷率没有达到期望的水平。此外,下一代存储器在耐久性方面存在问题。因此,当多次访问下一代存储器时,下一代存储器的寿命迅速减小。提出了一种高速缓存存储器以支持下一代存储器的操作速度并减少访问次数。
此外,下一代存储器应该能够与各种类型的主机一起操作。每个主机可能具有不同的数据块(data chunk)尺寸。为了在主机的数据块尺寸与存储器的数据块尺寸不同时允许主机与存储器之间的通信,提出了高速缓存存储器。
发明内容
本发明的各种实施例针对用于存储系统的结构和功能性得到改进的高速缓存存储器。
高速缓存存储器可以用于具有不同数据块尺寸的主机与存储系统的存储设备之间的通信。
高速缓存存储器可以提高采用该高速缓存存储器的存储系统的操作速度。
高速缓存存储器可以减少存储系统的存储设备被访问的次数。
在一个实施例中,一种高速缓存存储器包括:与偶地址相对应的第一高速缓存区域;与奇地址相对应的第二高速缓存区域,其中,第一高速缓存区域和第二高速缓存区域中的每一个包括多个高速缓存组,并且每个高速缓存组包括:数据组字段,其适用于储存与偶地址和奇地址之中的地址相对应的数据;以及配对字段,其适用于储存关于位置的信息,与被储存数据所对应的地址相邻的相邻地址所对应的数据储存在所述位置。
在一个实施例中,一种存储系统包括:第一高速缓存区域,其包括多个第一高速缓存组并且适用于储存与偶地址相对应的第一数据;第二高速缓存区域,其包括多个第二高速缓存组并且适用于储存与奇地址相对应的第二数据;检查电路,其适用于针对每个第一高速缓存组和每个第二高速缓存组来检查输入数据的命中或未命中;检测电路,其适用于检测输入数据是第一数据还是第二数据;以及控制电路,其适用于根据检查结果和检测结果而将输入数据分配给在多个第一高速缓存组和第二高速缓存组之中的一个。
在一个实施例中,一种存储系统的操作方法,该存储系统包括高速缓存存储器,该高速缓存存储器在具有不同数据块尺寸的主机与存储器之间且包括第一高速缓存区域和第二高速缓存区域,第一高速缓存区域和第二高速缓存区域中的每一个包括多个缓存组,该操作方法包括:基于输入地址,检查第一高速缓存区域的命中或未命中;当第一高速缓存区域的第三高速缓存组被检查为命中并且输入数据对应于第一高速缓存区域时,将输入数据储存在第三高速缓存组中;并且当第三高速缓存组被检查为命中并且输入数据对应于第二高速缓存区域时,生成第三高速缓存组的位置信息。
在一个实施例中,一种存储系统包括:主机,其适用于提供多块的主机数据和主机地址,所述主机地址包括偶地址和奇地址,所述主机数据的每块具有第一尺寸;存储设备,其适用于储存多块的存储器数据,每块的存储器数据具有大于所述第一尺寸的第二尺寸;和控制器,其包括高速缓存存储器,所述高速缓存存储器包括:对应于所述偶地址的第一高速缓存区域和对应于所述奇地址的第二高速缓存区域,所述第一高速缓存区域和所述第二高速缓存区域中的每一个分别包括多个偶高速缓存组和奇高速缓存组,其中,所述第一高速缓存区域的第一高速缓存组包括:第一字段,其适用于储存与所述主机地址之中的第一地址相对应的第一块的主机数据;和第二字段,其适用于储存关于第二高速缓存组的信息,第二块的主机数据储存在所述第二高速缓存组中,所述第二块对应于所述主机地址之中的与所述第一地址相邻的第二地址,其中,所述第一高速缓存组对应于所述偶地址中的一个偶地址,而所述第二高速缓存组对应于所述奇地址中的一个奇地址。
结合附图通过以下详细描述,本发明的这些以及其他特征和优点对于本发明领域的技术人员将变得显而易见。
附图说明
图1是示出根据实施例的存储系统的框图。
图2是示出图1的高速缓存存储器的示图。
图3是示出根据实施例的高速缓存组的示图。
图4和图5是示出根据实施例的存储系统的操作的流程图。
具体实施方式
将参考附图更详细地描述本发明的各种实施例。尽管将示出和描述本发明的一些实施例,但是本领域普通技术人员将理解的是,在不脱离本发明的原理和精神的情况下可以对这些实施例进行改变。
应该理解的是,附图是所描述的设备的简化示意图,并且为了避免使本发明的特征模糊而可以不包括众所周知的细节。
还应注意的是,在不脱离本发明的范围的情况下,一个实施例中存在的特征可以与另一实施例的一个或更多个特征一起使用。
图1是示出根据实施例的存储系统100的框图。
参照图1,存储系统100可以包括存储器控制器110和存储器120。存储系统100可以与主机1一起操作。
主机1可以向存储器控制器110发送请求REQ,以请求对存储器120的读取和/或写入(读取/写入)操作。当请求读取/写入操作时,主机1可以向存储器控制器110传送地址ADD_HOST。地址ADD_HOST可以指定要执行读取/写入操作的位置。当请求写入操作时,主机1可以将写入数据DATA_HOST传送到存储器控制器110。此外,在请求读取操作之后,主机1可以从存储器控制器110接收读取数据DATA_HOST。在主机1和存储器控制器110之间传送的地址和数据可以分别通过ADD_HOST和DATA_HOST来表示,以便与在存储器控制器110和存储器120之间传送的地址ADD和数据DATA区分开。
在一个实施例中,地址ADD_HOST具有20比特位。此外,主机1的数据尺寸(即,数据块尺寸)是64比特位。即,响应于读取和/或写入请求一次处理的数据DATA_HOST的尺寸为64比特位。然而,本实施例不限于此。
存储器120可以在存储器控制器110的控制下执行读取和/或写入操作。存储器120可以从存储器控制器110接收命令CMD和地址ADD,并且向存储器控制器110传送数据DATA和从存储器控制器110接收数据DATA。命令CMD可以用于指示将由存储器120执行的操作。地址ADD可以用于指定在存储器120中将要被访问的区域。在写入操作期间,数据DATA从存储器控制器110被传送到存储器120。在读取操作期间,数据DATA可以从存储器120被传送到存储器控制器110。
尽管在图1中未示出,存储器控制器110可以执行错误校正码(ECC)操作以检测在数据DATA中发生的错误。对于该操作,存储器控制器110可以处理具有与主机1所请求的数据DATA_HOST不同的块尺寸的数据DATA。即,存储器控制器110和存储器120之间的数据块尺寸可以是主机1和存储器控制器110之间的数据块尺寸的N倍大,其中,N是大于或等于2的整数。这里,N可以被设定为2,这意味着在读取/写入操作期间一次处理的数据DATA的尺寸为128比特位。
由于存储器120的数据块尺寸是主机1的数据块尺寸的两倍大,因此要被寻址的区域数量可以减半。因此,存储器120使用的地址ADD中的比特位数可以比主机1的地址ADD_HOST中的比特位数少一位。即,存储器120使用的地址ADD可以具有19比特位。存储器120可以是各种类型的存储器之一,诸如动态随机存取存储器(DRAM)、NAND闪存、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PCRAM)、磁性随机存取存储器(MRAM)和铁电随机存取存储器(FRAM)。
存储器控制器110可以根据主机1的请求来控制存储器120。存储器控制器110可以包括高速缓存存储器111、检查电路113、检测电路115和控制电路117。
高速缓存存储器111可以用作主机1与存储器120之间的通信中的高速缓存。高速缓存存储器111可以以比存储器120更高的速度操作,并且具有比存储器120小的储存容量。由于主机1具有与存储器120不同的数据块尺寸,高速缓存存储器111可以具有用于支持数据块尺寸的结构。
当主机1的数据块尺寸是64比特位并且存储器120的数据块尺寸是128比特位时,高速缓存存储器111可以包括多个第一高速缓存组和多个第二高速缓存组。多个第一高速缓存组可以储存与地址ADD_HOST中的偶数位地址(在本文中也简称为偶地址)相对应的数据。多个第二高速缓存组可以储存与地址ADD_HOST中的奇数位地址(在本文中也简称为奇地址)相对应的数据。将参考图2和图3详细描述高速缓存存储器111的结构。
当主机1请求读取/写入操作时,检查电路113可以检查高速缓存存储器111的命中(hit)或未命中(miss)。在高速缓存命中的情况下,可以不访问存储器120,而可以访问以高速操作的高速缓存存储器111。因此,对主机的读取/写入操作的请求可以得到快速处理。在高速缓存未命中的情况下,需要访问存储器120。因此,相比于高速缓存命中的情况,对主机1的读取/写入操作的请求可以被以较低的速度处理。在一个实施例中,检查电路113可以针对高速缓存存储器111的第一高速缓存组和第二高速缓存组中的每一个来检查数据DATA_HOST的命中或未命中。
检测电路115可以检测从主机1请求的数据DATA_HOST是对应于偶数位地址还是奇数位地址的数据。对于该操作,检测电路115可以检查地址ADD_HOST的最低有效位(LSB)。例如,当数据块尺寸为64比特位时,可以忽略地址ADD_HOST的第一至第六比特位,因为第一至第六比特位对应于一次处理的数据DATA_HOST。即,检测电路115可以检查地址ADD_HOST的第七比特位作为LSB。
当地址ADD_HOST的LSB对应于偶数(即,值“0”)时,检测电路115可以将数据DATA_HOST检测作为与偶数位地址相对应的数据,并且,控制电路117可以将数据DATA_HOST储存在第一高速缓存组中。当地址ADD_HOST的LSB对应于奇数(即,值“1”)时,检测电路115可以将数据DATA_HOST检测作为与奇数位地址相对应的数据,并且控制电路117可以将数据DATA_HOST储存在第二高速缓存组中。
根据检查电路113的命中/未命中检查结果,控制电路117可以将数据DATA_HOST分配给在第一高速缓存组和第二高速缓存组中的一个。即,根据检查电路113和检测电路115的检查结果和检测结果,控制电路117可以将数据DATA_HOST分配给高速缓存存储器111的第一高速缓存组和第二高速缓存组之一。
在实施例中,在高速缓存存储器111的多个第一高速缓存组和第二高速缓存组之中,控制电路117可以生成其中储存对应于与对应于数据DATA_HOST的地址ADD_HOST相邻的地址的数据的高速缓存组的位置信息。控制电路117可以将生成的位置信息和数据DATA_HOST储存在被分配的高速缓存组中。基于储存在高速缓存存储器111的多个第一高速缓存组和第二高速缓存组中的位置信息,控制电路117可以将储存在多个第一高速缓存组和第二高速缓存组中的数据之中与彼此相邻的地址相对应的数据一起逐出。
图2是示出图1的高速缓存存储器111的示图。
参照图2,高速缓存存储器111可以包括多个高速缓存组CACHE SET。举例来说,高速缓存存储器111包括128个高速缓存组CACHE SET。128个高速缓存组CACHE SET可以被归类到32个索引INDEX。即,四个高速缓存组CACHE SET可以对应于一个索引INDEX。
这样,高速缓存存储器111的四个高速缓存组CACHE SET共享一个索引值,高速缓存存储器111的结构可以被称为4路组关联结构。如果不考虑索引INDEX,则该结构可能成为全关联结构。共享索引值的高速缓存组CACHE SET的数量可以大于或等于4。本实施例不限于此,而是根据实施例高速缓存存储器111可以具有各种结构。
通常,地址ADD_HOST包括多个比特位。多个比特位之中的一些低阶位可以用作对高速缓存组CACHE SET进行寻址的索引INDEX。多个比特位之中的其他比特位可以作为标签信息储存在高速缓存组CACHE SET中。根据地址ADD_HOST与索引INDEX和标签TAG之间的比较结果,可以检查数据DATA_HOST的高速缓存命中/未命中。将参考图4更详细地描述该过程。
高速缓存存储器111可以被划分为偶高速缓存区域EVEN CACHE AREA和奇高速缓存区域ODD CACHE AREA。偶高速缓存区域EVEN CACHE AREA可以包括多个第一高速缓存组EVEN0至EVEN63。奇高速缓存区域ODD CACHE AREA可以包括多个第二高速缓存组ODD0至ODD63。多个第一高速缓存组EVEN0至EVEN63可以储存与偶数位地址相对应的第一数据。多个第二高速缓存组ODD0至ODD63可以储存与奇数位地址相对应的第二数据。
如上所述,根据地址ADD_HOST的LSB,地址ADD_HOST可以被归类到偶数位地址或奇数位地址。即,地址ADD_HOST的LSB可以确定将数据DATA_HOST分配给多个第一高速缓存组EVEN0至EVEN63还是多个第二高速缓存组ODD0至ODD63。因此,地址ADD_HOST的一些低阶位中除了LSB以外的其他低阶位可以被归类到索引INDEX。
当第一高速缓存组EVEN0至EVEN63和第二高速缓存组ODD0至ODD63被归类到32个索引时,地址ADD_HOST的五个低阶位可以用于寻址。此时,除了LSB之外,地址ADD_HOST的五个低阶位中的其他第二至第五个低阶位可以被归类到索引INDEX。即,索引“0”和“1”可以对应于其中地址ADD_HOST的第二至第五低阶位是“0000”的相同的值。因此,当其中第二至第五低阶位为'0000'的地址ADD_HOST输入时,检查电路113不仅可以访问第一高速缓存组EVEN0至EVEN3,而且可以访问第二高速缓存组ODD0至ODD3。检测电路115可以检查地址ADD_HOST的LSB,使得数据DATA_HOST被分配给第一高速缓存组EVEN0至EVEN3和第二高速缓存组ODD0至ODD3之一。
图3是示出了高速缓存组CACHE SET的示图。图2的第一高速缓存组EVEN0至EVEN63和第二高速缓存组ODD0至ODD63中的每一个可以如图3所示地配置。
如图3所示,高速缓存组CACHE SET可以包括用于标签TAG的字段、用于数据组DATASET的字段、用于有效位VALID的有效字段和用于配对位PAIR的配对字段。
标签TAG可以指示与地址ADD_HOST的除了LSB和与索引INDEX相对应的低阶位之外的其他比特位相对应的信息。例如,当数据块尺寸为64比特位时,可以忽略地址ADD_HOST的第一至第六比特位,因为第一至第六比特位对应于一次被处理的数据DATA_HOST。在图2的实施例中,地址ADD_HOST的第7至第11比特位可以对应于LSB和索引INDEX。因此,标签TAG可以对应于从第12比特位开始的地址ADD_HOST的其他高阶位。当地址ADD_HOST由20比特位组成时,标签TAG可以包括9比特位信息。
主机1所请求的数据DATA_HOST可以被储存在数据组DATA SET中。数据组DATA SET可以储存具有与主机1的数据块尺寸相同的尺寸的数据,例如64比特位数据。
有效位VALID可以包括标志位,该标志位指示数据是否已经从存储器120更新到相应的高速缓存组中。当标志位被激活并且因此有效位VALID被储存为值“1”时,其可以指示数据已经从存储器120更新到相应的高速缓存组中。当标志位被去激活并且因此有效位VALID被储存为值“0”时,其可以指示数据尚未从存储器120更新到相应的高速缓存组中。即,有效位VALID可以包括相应的高速缓存组的有效信息。
配对位PAIR可以指示关于位置的信息,在该位置储存对应于与对应于储存在数据组DATA SET中的数据DATA_HOST的地址ADD_HOST相邻的地址的数据。基于储存在配对位PAIR中的位置信息,与储存在数据组DATA SET中的数据DATA_HOST相邻的数据可以一起被逐出。配对位PAIR可以被配置为2比特位,以指示包括在一个索引INDEX中的四个高速缓存组CACHE SET的位置信息。然而,取决于高速缓存存储器111的配置,配对位PAIR可以被配置为各种数量的比特位。
图4和图5是示出根据实施例的存储系统100的操作的流程图。
随着主机1向存储器控制器110传送用于写入操作的请求REQ、地址ADD_HOST和数据DATA_HOST,存储系统100的写入操作可以开始。作为响应,存储器控制器110可以检查向高速缓存存储器111的偶高速缓存区域EVEN CACHE AREA和奇高速缓存区域ODD CACHEAREA中的每一个输入的数据DATA_HOST的命中或未命中。
图4示出了其中存储器控制器110针对高速缓存存储器111的偶高速缓存区域EVENCACHE AREA来检查数据DATA_HOST的命中或未命中的操作。即,在步骤S401中当主机1请求写入操作时,在步骤S403中,检查电路113可以基于输入地址ADD_HOST来检查高速缓存存储器111的第一高速缓存组EVEN0至EVEN63的命中或未命中。检查电路113可以将地址ADD_HOST的低阶位之中的除LSB之外的其他低阶位与第一高速缓存组EVEN0至EVEN63的索引INDEX进行比较。
当地址ADD_HOST的第二至第五低阶位与为“0”(即,“0000”)的索引INDEX一致时,检查电路113可以访问与为'0'的索引INDEX相对应的四个第一高速缓存组EVEN0至EVEN3。检查电路113可以将地址ADD_HOST的除LSB和与索引INDEX相对应的低阶位之外的其他比特位与四个第一高速缓存组EVEN0至EVEN3的标签TAG进行比较。当比较结果指示四个第一高速缓存组EVEN0至EVEN3中的第三高速缓存组具有与地址ADD_HOST的其他比特位一致的标签值时,检查电路113可以将第三高速缓存组检查为命中(步骤S403中为HIT)。当比较结果指示在四个第一高速缓存组EVEN0至EVEN3之中不存在具有与地址ADD_HOST的其他比特位一致的标签值的高速缓存组时,检查电路113可以将四个第一高速缓存组EVEN0至EVEN3检查为未命中(步骤S403中为MISS)。
在步骤S405和步骤S411中,检测电路115可以基于地址ADD_HOST来检测数据DATA_HOST是偶数据还是奇数据。当地址ADD_HOST的LSB对应于偶数时,检测电路115可以将数据DATA_HOST检测为偶数据,并且数据DATA_HOST可以对应于第一高速缓存组EVEN0至EVEN63。当地址ADD_HOST的LSB对应于奇数时,检测电路115可以将数据DATA_HOST检测为奇数据,并且数据DATA_HOST可以对应于第二高速缓存组ODD0至ODD63。
当多个第一高速缓存组EVEN0至EVEN63中的第三高速缓存组被检查为命中(步骤S403中为“HIT”)并且数据DATA_HOST对应于第一高速缓存组EVEN0至EVEN63(步骤S405中为“EVEN”)时,在步骤S407中控制电路117可以将数据DATA_HOST储存在第三高速缓存组中。当多个第一高速缓存组EVEN0至EVEN63中的第三高速缓存组被检查为命中(步骤S403中为HIT)并且数据DATA_HOST对应于第二高速缓存组ODD0至ODD63(步骤S405中为ODD)时,在步骤S409中控制电路117可以生成第三高速缓存组的位置信息。
当多个第一高速缓存组EVEN0至EVEN63之中的与地址ADD_HOST的其他低阶位相对应的四个第一高速缓存组EVEN0至EVEN3被检查为未命中(步骤S403中为MISS)并且数据DATA_HOST对应于在第一高速缓存组EVEN0至EVEN63(步骤S411中为EVEN)时,在步骤S413中,控制电路117可以向四个第一高速缓存组EVEN0至EVEN3分配数据DATA_HOST。基于四个第一高速缓存组EVEN0至EVEN3的有效信息,即有效位VALID,控制电路117可以检查四个第一高速缓存组EVEN0至EVEN3之中的有效的或空的第一高速缓存组。控制电路117可以将数据DATA_HOST储存在有效的第一高速缓存组中。
图5示出了其中存储器控制器110针对高速缓存存储器111的奇高速缓存区域ODDCACHE AREA来检查数据DATA_HOST的命中或未命中的操作。在图4和图5中,可以以类似的方式执行存储器控制器110检查数据DATA_HOST的命中或未命中的详细操作。因此,这里将省略其重复的描述。
在步骤S501中当主机1请求写入操作时,在步骤S503中,检查电路113可以基于输入的地址ADD_HOST来检查高速缓存存储器111的第二高速缓存组ODD0至ODD63的命中或未命中。检查电路113可以将地址ADD_HOST的低阶位中的除了LSB之外的其他低阶位与第二高速缓存组ODD0至ODD63的索引INDEX进行比较。
如在前述示例中,当地址ADD_HOST的第二至第五低阶位与为'1'(即,'0000')的索引INDEX一致时,检查电路113可以访问对应于索引INDEX'1'的四个第二高速缓存组ODD0至ODD3。检查电路113可以将地址ADD_HOST的除LSB和与索引INDEX相对应的低阶位之外的其他比特位与四个第二高速缓存组ODD0至ODD3的标签TAG进行比较。当比较结果指示四个第二高速缓存组ODD0至ODD3中的第四高速缓存组具有与地址ADD_HOST的其他比特位一致的标签值时,检查电路113可以将第四高速缓存组检查为命中(步骤S503中为HIT)。当比较结果指示在四个第二高速缓存组ODD0至ODD3之中不存在具有与地址ADD_HOST的其他比特位一致的标签值的高速缓存组时,检查电路113可以将四个第二高速缓存组ODD0至ODD3检查为未命中(步骤S503中为MISS)。
类似地,在步骤S505和S511中,检测电路115可以基于地址ADD_HOST来检测数据DATA_HOST是偶数据还是奇数据。当多个第二高速缓存组ODD0至ODD63中的第四高速缓存组被检查为命中(步骤S503中为HIT)并且数据DATA_HOST对应于第二高速缓存组ODD0至ODD63(步骤S505中为ODD)时,在步骤S507中,控制电路117可以将数据DATA_HOST储存在第四高速缓存组中。当多个第二高速缓存组ODD0至ODD63中的第四高速缓存组被检查为命中(步骤S503中为HIT)并且数据DATA_HOST对应于第一高速缓存组EVEN0至EVEN63(步骤S505中为偶)时,在步骤S509中,控制电路117可以生成第四高速缓存组的位置信息。当多个第二高速缓存组ODD0至ODD63之中的与地址ADD_HOST的其他低阶位相对应的四个第二高速缓存组ODD0至ODD3被检查为未命中(步骤S503中为MISS)并且数据DATA_HOST对应于第二高速缓存组ODD0至ODD63(步骤S511中为ODD)时,则在步骤S513中控制电路117可以向四个第二高速缓存组ODD0至ODD3分配数据DATA_HOST。
返回参照图4,当多个第一高速缓存组EVEN0至EVEN63中的第三高速缓存组被检查为命中(步骤S403中为HIT)并且数据DATA_HOST对应于第一高速缓存组EVEN0至EVEN63(步骤S405中为EVEN)时,在步骤S407中控制电路117可以将数据DATA_HOST储存在第三高速缓存组中。此时,当在多个第二高速缓存组ODD0至ODD63中出现第四高速缓存组(步骤S503中为HIT)被检查为命中时,数据DATA_HOST可以对应于第一高速缓存组EVEN0至EVEN63(步骤S505中为EVEN)。因此,在步骤S509中控制电路117可以生成第四高速缓存组的位置信息。
因此,控制电路117可以在将数据DATA_HOST储存在第三高速缓存组中期间储存第四高速缓存组的位置信息。控制电路117可以在将数据DATA_HOST储存在第三高速缓存组的数据组DATA SET中期间将第四高速缓存组的位置信息储存在第三高速缓存组的配对位PAIR中。即,控制电路117可以检查与相邻地址相对应的数据以及数据DATA_HOST的命中/未命中,并且根据检查结果将与相邻地址相对应的数据的位置信息与数据DATA_HOST一起储存。在一个实施例中,当逐出储存在第三高速缓存组的数据组DATA SET中的数据时,控制电路117可以基于储存在第三高速缓存组的配对位PAIR中的位置信息一起逐出第四高速缓存组的数据。
当在步骤S413中控制电路117向第一高速缓存组EVEN0至EVEN3分配数据DATA_HOST时,当未检查到有效的第一高速缓存组时可以逐出第一高速缓存组EVEN0至EVEN3的数据。控制电路117可以检查第一高速缓存组EVEN0至EVEN3的配对信息,即,配对位PAIR。基于该配对信息,控制电路117可以检查第一高速缓存组EVEN0至EVEN3之中的与第二高速缓存组ODD0至ODD63配对的第一高速缓存组。控制电路117可以检查第一高速缓存组EVEN0至EVEN3之中的在配对位PAIR中包括位置信息的第一高速缓存组,作为与第二高速缓存组ODD0至ODD63配对的第一高速缓存组。
也就是说,可以将在配对位PAIR中包括位置信息的第一高速缓存组与对应于该位置信息的第二高速缓存组配对为用于储存与相邻地址相对应的数据的高速缓存组。控制电路117可以将彼此配对的第一高速缓存组和第二高速缓存组的数据一起逐出。控制电路117可以将数据DATA_HOST储存在已经被逐出数据的第一高速缓存组中。
类似地,当将数据DATA_HOST储存在有效的第一高速缓存组或数据已被从中逐出的第一高速缓存组中时,多个第二高速缓存组ODD0至ODD63中的第四高速缓存组可以被检查为命中,并且位置信息可以生成。在这种情况下,控制电路117可以将数据DATA_HOST和第四高速缓存组的位置信息储存在有效的第一高速缓存组中或数据已被从中逐出的第一高速缓存组中。控制电路117可以在将数据DATA_HOST储存在数据已被从中逐出的第一高速缓存组或有效的第一高速缓存组的数据组DATASET中期间,将第四高速缓存组的位置信息储存在数据已被从中逐出的第一高速缓存组的配对位PAIR或有效的第一高速缓存组的配对位PAIR中。
根据本实施例,存储系统不仅可以有效地使用具有不同数据块尺寸的主机和存储器之间的高速缓存存储器的区域,而且还可以防止由于数据块尺寸的差异而导致的不必要执行的逐出操作。
尽管出于说明性目的已经描述了各种实施例,但是对于本领域技术人员而言显而易见的是,在不脱离如所附权利要求书所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (15)
1.一种高速缓存存储器,包括:
第一高速缓存区域,其与偶地址相对应;和
第二高速缓存区域,其与奇地址相对应,
其中,所述第一高速缓存区域和所述第二高速缓存区域各自包括多个高速缓存组,所述高速缓存组按多个索引归类,使得每个索引对应N个高速缓存组,其中N是大于或等于4的整数,所述索引是所述偶地址的低阶位和所述奇地址的低阶位,并且每个高速缓存组包括:
数据组字段,其适用于储存与所述偶地址和所述奇地址之中的地址相对应的数据;和
配对字段,其适用于储存用于在每个索引中包括的所述N个高速缓存组的位置信息,与被储存数据所对应的地址相邻的相邻地址所对应的数据被储存在与所述位置信息关联的相应的数据组字段中,
其中,基于储存在所述配对字段中的所述位置信息,在每个索引内所述被储存数据和所述相邻地址所对应的数据一起被逐出。
2.根据权利要求1所述的高速缓存存储器,其中,每个索引被配置成响应于地址的低阶位之中的除最低有效位LSB之外的其他低阶位而对所述第一高速缓存区域和第二高速缓存区域中的所述高速缓存组进行归类。
3.一种存储系统,包括:
第一高速缓存区域,其包括多个第一高速缓存组并且适用于储存对应于偶地址的第一数据;
第二高速缓存区域,其包括多个第二高速缓存组并且适用于储存对应于奇地址的第二数据;
检查电路,其适用于针对每个所述第一高速缓存组和每个所述第二高速缓存组来检查输入数据的命中或未命中;
检测电路,其适用于检测所述输入数据是所述第一数据还是所述第二数据;和
控制电路,其适用于
将所述输入数据分配给在第一高速缓存组和第二高速缓存组之中的一个,生成在第一高速缓存组和第二高速缓存组之中的储存与相邻地址相对应的数据的高速缓存组的位置信息,所述相邻地址与对应于所述输入数据的地址相邻,
根据检查结果和检测结果,将所述位置信息和所述输入数据储存在被分配的高速缓存组中,以及
基于所述多个第一高速缓存组和所述多个第二高速缓存组中储存的位置信息,将在所述第一高速缓存组和所述第二高速缓存组中储存的所述第一数据和所述第二数据之中的与所述地址和所述相邻地址相对应的数据逐出。
4.根据权利要求3所述的存储系统,其进一步包括存储器,所述存储器适用于储存块尺寸是所述输入数据的N倍大的数据,其中,N是大于或等于2的整数。
5.根据权利要求3所述的存储系统,其中,
所述第一高速缓存组和所述第二高速缓存组按多个索引归类,使得每个索引对应N个高速缓存组,其中N是大于或等于4的整数,所述索引是所述偶地址的低阶位和所述奇地址的低阶位,所述第一高速缓存组和第二高速缓存组均包括:
数据组字段,其适用于存储与偶地址和奇地址中的地址相对应的数据;和
配对字段,其适用于储存用于在每个索引中包括的所述N个高速缓存组的所述位置信息,与被储存数据所对应的地址相邻的地址所对应的数据被储存在与所述位置信息关联的相应的数据组字段中。
6.根据权利要求3所述的存储系统,其中,当输入地址的最低有效位LSB对应于偶数时,所述检测电路将所述输入数据检测为所述第一数据,并且
当所述输入地址的LSB对应于奇数时,所述检测电路将所述输入数据检测为所述第二数据。
7.根据权利要求3所述的存储系统,其中,所述检查电路将输入地址的低阶位之中的除了最低有效位LSB之外的其他低阶位与所述第一高速缓存组的索引和所述第二高速缓存组的索引进行比较,并且将所述输入地址的其余比特位与所述多个第一高速缓存组和所述多个第二高速缓存组之中的具有与其他低阶位相对应的索引的高速缓存组的标签进行比较。
8.一种存储系统的操作方法,所述存储系统包括高速缓存存储器,所述高速缓存存储器包括多个第一高速缓存组和多个第二高速缓存组,所述操作方法包括:
基于主机的写入请求的输入地址,选择所述多个第一高速缓存组和所述多个第二高速缓存组中的一个,其中,所述多个第一高速缓存组被配置为存储与偶位地址相对应的数据,以及所述多个第二高速缓存组被配置为存储与奇位地址相对应的数据;
响应于确定所述多个第一高速缓存组的第三高速缓存组被选择并且所述主机的所述写入请求的输入数据对应于所述偶位地址,将所述输入数据储存在所述第三高速缓存组中;
响应于确定所述第三高速缓存组被选择并且所述输入数据对应于所述奇位地址,生成所述第三高速缓存组的位置信息;
响应于确定所述多个第二高速缓存组的第四高速缓存组被选择并且所述输入数据对应于所述奇位地址,将所述输入数据储存在所述第四高速缓存组中,并且将所述第三高速缓存组的所述位置信息作为配对信息储存在所述第四高速缓存组中。
9.根据权利要求8所述的操作方法,其中,基于所述第四高速缓存组的所述配对信息,储存在所述第三高速缓存组和所述第四高速缓存组中的数据一起被逐出。
10.根据权利要求8所述的操作方法,还包括:响应于确定基于所述输入地址而所述多个第一高速缓存组未被选择、并且所述输入数据对应于所述偶位地址,向所述多个第一高速缓存组之一分配所述输入数据。
11.根据权利要求10所述的操作方法,其中,向所述多个第一高速缓存组之一分配所述输入数据包括:
基于有效信息,在所述多个第一高速缓存组之中检查有效的第一高速缓存组;和
将所述输入数据储存在所述有效的第一高速缓存组中。
12.根据权利要求11所述的操作方法,其中,向所述多个第一高速缓存组之一分配所述输入数据还包括:响应于检查结果确定在所述多个第一高速缓存组之中没有有效的第一高速缓存组:
基于所述配对信息,在所述多个第一高速缓存组之中检查与所述多个第二高速缓存组的第二高速缓存组配对的第一高速缓存组;
将彼此配对的第一高速缓存组和第二高速缓存组的数据一起逐出;和
将所述输入数据储存在已被逐出数据的第一高速缓存组中。
13.根据权利要求8所述的操作方法,其中,基于所述输入地址来选择所述多个第一高速缓存组和所述多个第二高速缓存组中的一个包括:
将所述输入地址的低阶位之中的除最低有效位LSB以外的其他低阶位与所述多个第一高速缓存组和所述多个第二高速缓存组的索引进行比较;和
将所述输入地址的其余比特位与所述多个第一高速缓存组和所述多个第二高速缓存组之中的具有由所述其他低阶位所指示的索引的高速缓存组的标签进行比较。
14.根据权利要求8所述的操作方法,还包括检查所述输入地址的最低有效位LSB。
15.根据权利要求14所述的操作方法,其中,根据所述输入地址的LSB是对应于偶数还是奇数,所述输入数据对应于所述偶位地址或所述奇位地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190032906A KR20200112435A (ko) | 2019-03-22 | 2019-03-22 | 캐시 메모리, 이를 포함하는 메모리 시스템, 및 그의 동작 방법 |
KR10-2019-0032906 | 2019-03-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111723028A CN111723028A (zh) | 2020-09-29 |
CN111723028B true CN111723028B (zh) | 2024-03-26 |
Family
ID=72514424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911265732.2A Active CN111723028B (zh) | 2019-03-22 | 2019-12-11 | 高速缓存存储器及包含其的存储系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11442869B2 (zh) |
KR (1) | KR20200112435A (zh) |
CN (1) | CN111723028B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114067882A (zh) * | 2021-10-22 | 2022-02-18 | 长江先进存储产业创新中心有限责任公司 | 一种相变存储器系统及其访问方法 |
KR102579319B1 (ko) | 2023-04-19 | 2023-09-18 | 메티스엑스 주식회사 | 캐시 메모리 장치 및 이를 이용하는 캐시 스케줄링 구현 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148394A (en) * | 1998-02-10 | 2000-11-14 | International Business Machines Corporation | Apparatus and method for tracking out of order load instructions to avoid data coherency violations in a processor |
CN106909516A (zh) * | 2015-12-23 | 2017-06-30 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6990557B2 (en) | 2002-06-04 | 2006-01-24 | Sandbridge Technologies, Inc. | Method and apparatus for multithreaded cache with cache eviction based on thread identifier |
US7856532B2 (en) * | 2006-11-03 | 2010-12-21 | Arm Limited | Cache logic, data processing apparatus including cache logic, and a method of operating cache logic |
EP2017737A1 (en) | 2007-07-02 | 2009-01-21 | STMicroelectronics (Research & Development) Limited | Cache memory |
US8195880B2 (en) * | 2009-04-15 | 2012-06-05 | International Business Machines Corporation | Information handling system with immediate scheduling of load operations in a dual-bank cache with dual dispatch into write/read data flow |
JP2013065150A (ja) * | 2011-09-16 | 2013-04-11 | Toshiba Corp | キャッシュメモリ装置、プロセッサ、および情報処理装置 |
US9684601B2 (en) * | 2012-05-10 | 2017-06-20 | Arm Limited | Data processing apparatus having cache and translation lookaside buffer |
GB2517453B (en) * | 2013-08-20 | 2017-12-20 | Imagination Tech Ltd | Improved use of memory resources |
US20150100733A1 (en) * | 2013-10-03 | 2015-04-09 | Synopsys, Inc. | Efficient Memory Organization |
KR101563192B1 (ko) | 2013-12-26 | 2015-10-26 | 서경대학교 산학협력단 | 멀티스레드 프로세서의 캐시 메모리 장치 |
US20170123991A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | System and method for utilization of a data buffer in a storage device |
US10437732B2 (en) * | 2016-12-14 | 2019-10-08 | Intel Corporation | Multi-level cache with associativity collision compensation |
US10241916B2 (en) * | 2017-03-31 | 2019-03-26 | Intel Corporation | Sparse superline removal |
-
2019
- 2019-03-22 KR KR1020190032906A patent/KR20200112435A/ko active Search and Examination
- 2019-12-11 CN CN201911265732.2A patent/CN111723028B/zh active Active
- 2019-12-19 US US16/721,391 patent/US11442869B2/en active Active
-
2022
- 2022-08-04 US US17/881,196 patent/US11836089B2/en active Active
- 2022-08-05 US US17/881,810 patent/US11822483B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148394A (en) * | 1998-02-10 | 2000-11-14 | International Business Machines Corporation | Apparatus and method for tracking out of order load instructions to avoid data coherency violations in a processor |
CN106909516A (zh) * | 2015-12-23 | 2017-06-30 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US11822483B2 (en) | 2023-11-21 |
US11836089B2 (en) | 2023-12-05 |
US20200301844A1 (en) | 2020-09-24 |
US11442869B2 (en) | 2022-09-13 |
KR20200112435A (ko) | 2020-10-05 |
US20220374364A1 (en) | 2022-11-24 |
US20220374363A1 (en) | 2022-11-24 |
CN111723028A (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6832187B2 (ja) | データストレージサブシステムにおけるキャッシングのための方法およびシステム | |
US10152428B1 (en) | Virtual memory service levels | |
US10120750B2 (en) | Cache memory, error correction circuitry, and processor system | |
US9063862B2 (en) | Expandable data cache | |
US11822483B2 (en) | Operating method of memory system including cache memory for supporting various chunk sizes | |
KR20190087499A (ko) | 태그 매칭 명령에 응답하는 저장회로 | |
US8850115B2 (en) | Memory package utilizing at least two types of memories | |
JP2015535116A (ja) | アドレス断片化に対するメモリ・セグメントのリマッピング | |
CN107743620B (zh) | 用于耗损均衡的非易失性存储器的加速的地址间接表查找 | |
US20220283941A1 (en) | Nonvolatile Physical Memory with DRAM Cache | |
CN109933543B (zh) | Cache的数据锁定方法、装置和计算机设备 | |
US10235049B2 (en) | Device and method to manage access method for memory pages | |
JP2018160060A (ja) | メモリシステム | |
CN110244906B (zh) | 存储系统及其操作方法 | |
CN110727610B (zh) | 高速缓存存储器、存储系统和高速缓存存储器的逐出方法 | |
CN104375955A (zh) | 高速缓冲存储器设备及其控制方法 | |
US11593276B2 (en) | Data caching methods of cache systems | |
US11709599B2 (en) | Memory controller and memory system | |
KR20200005127A (ko) | 비휘발성 메모리의 주소를 관리하는 반도체 장치 | |
US10761988B2 (en) | Methods and apparatus of cache access to a data array with locality-dependent latency characteristics |
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 |