缓存控制设备和方法

文档序号:6779146阅读:104来源:国知局
专利名称:缓存控制设备和方法
技术领域
—个或多个示例实施例涉及缓存控制设备和方法,更具体地,涉及用于任意形状
块中的存储器数据访问的缓存控制设备和方法。
背景技术
现在,由于多媒体技术的发展,可以以各种方式向用户提供大量内容。 已经对各种视频处理技术进行了很多研究以控制由于与提供服务的内容的视频
数据编解码器相关的大量视频数据导致的过多的存储器访问。当视频的数量不大时,可执
行实时处理。然而,由于对高分辨率视频的需求增加,视频的数量可能增加。因此,对视频
处理的存储器访问是关注的重点。 具体地,由于可存储大量视频数据的动态随机访问存储器(DRAM :Dynamic Random Access Memory)的物理特性,在对DRAM中的数据进行读取和写入时会发生特定数量的延 迟。虽然延迟时间段取决于DRAM的类型、制造商、输入频率等而改变,但是其可大于几个周期。 当访问大量数据时,延迟可作为重要负载。通常,可使用可同时访问所有邻近数据 的突发访问,从而降低初始延迟。 然而,即使应用突发访问,当完成单个突发操作时、或当访问新数据时,例如,当要 访问的行改变时,也会发生初始延迟。 也就是说,在视频编解码器的块级访问中,由于邻近数据的数量有限制,所以每次 行发生改变都会发生延迟。

发明内容
示例实施例可提供一种缓存控制设备和方法,所述设备和方法使用块级缓存提高 图像数据的块级访问效率,从而可提高缓存命中率。 示例实施例可提供一种缓存控制设备和方法,所述设备和方法可提高包括多个帧 的图像数据的块级访问的效率。 根据示例实施例,可提供一种缓存控制设备。所述缓存控制设备可包括参数输入 单元,接收与主存储器中的块级缓存相应的第一参数;缓存索引提取单元,从所述第一参数 提取缓存索引;缓存标签提取单元,从所述第一参数提取缓存标签;以及比较单元,使用所 述缓存索引和所述缓存标签确定是否发生缓存命中。 所述第一参数可包括用于主存储器中的块级缓存的行信息区域和列信息区域。
所述行信息区域可包括行缓存标签、行缓存索引和行字节偏移,所述列信息区域 可包括列缓存标签、列缓存索引和列字节偏移。 所述行缓存标签和所述列缓存标签可包括从主存储器中的多个块中识别第一块 的信息。所述多个块可与缓存器中的相同缓存行相应。此外,行缓存索引和列缓存索引可 包括从缓存器中的多个缓存行中识别第一缓存行的信息。所述第一缓存行可存储第一块。
所述行字节偏移和列字节偏移可包括从多条数据中识别第一数据的信息,所述多条数据同时存储在缓存器中的相同缓存行中。 根据另一示例实施例,所述第一参数还可包括用于主存储器中的帧级缓存的帧信息区域。在本示例中,所述行信息区域可包括行缓存标签、行缓存索引和行字节偏移,所述列信息区域可包括列缓存标签、列缓存索引和列字节偏移,所述帧信息区域可包括帧缓存标签、帧缓存索引和帧字节偏移。 在本示例中,所述帧缓存标签、行缓存标签和列缓存标签可包括从主缓存器中的多个块中识别第一块的信息。所述多个块可与缓存器中的相同缓存行相应。
所述帧缓存索引、行缓存索引和列缓存索引可包括从缓存器中的多个缓存行中识别第一缓存行的信息,所述第一缓存行存储第一块。 根据另一示例实施例,所述缓存控制设备还可包括处理单元,当比较单元确定发生缓存命中时,所述处理单元提取和提供与第一参数相应的缓存数据。 根据另一示例实施例,提供一种缓存控制方法。所述缓存控制方法包括接收与主存储器中的块级缓存相应的第一参数;从所述第一参数提取缓存索引和缓存标签;以及使用所述缓存索引和所述缓存标签确定是否发生缓存命中。 本发明的附加方面和/或优点将在下面的描述中部分阐明,并且从描述中部分是清楚的,或者可通过实施本发明的实施例被理解。


通过下面结合附图进行的对实施例的描述,本发明的上述和/或其他方面和优点将会变得更加清楚和更容易理解,其中 图1示出根据示例实施例的缓存控制设备的配置; 图2概念性地示出根据示例实施例的块级缓存; 图3示出根据示例实施例的二维(2D)缓存参数; 图4示出根据示例实施例的从缓存参数提取的缓存索引; 图5示出根据示例实施例的从缓存参数提取的缓存标签; 图6概念性地示出根据示例实施例的块级缓存; 图7示出图6的块级缓存的缓存参数; 图8概念性地示出根据另一示例实施例的块级缓存; 图9示出图8的块级缓存的缓存参数; 图10示出根据另一示例实施例的缓存参数; 图11概念性地示出根据示例实施例的块级缓存和帧级缓存; 图12示出图11的块级缓存和帧级缓存的缓存参数;以及 图13示出根据示例实施例的缓存控制方法的流程图。
具体实施例方式
现在将详细描述示例实施例,其示例在附图中示出,其中,相同的标号始终表示相同的部件。下面通过参照附图来描述这些示例实施例以解释本发明的公开。
图1示出根据示例实施例的缓存控制设备100的配置。
参数输入单元110可从中央处理单元(CPU)接收第一参数。所述第一参数可包括 关于将由CPU访问的数据的信息。根据示例实施例,所述第一参数可与将参照图3和图10 详细描述的二维(2D)块缓存或包括帧的三维(3D)块缓存相应。 缓存索引提取单元120可从第一参数提取Y缓存索引和X缓存索引。此外,当第 一参数与3D块缓存相应时,缓存索引提取单元120可提取帧缓存索引。在此示例中,可将 第一参数的预定部分提取为Y缓存索引或X缓存索引。 缓存标签提取单元130可从第一参数提取Y缓存标签和X缓存标签。此夕卜,当第
一参数与3D块缓存相应时,缓存标签提取单元130可提取帧缓存标签。 后面将参照图4和图5详细描述缓存索引提取单元120和缓存标签提取单元130
的操作。 比较单元140将在缓存器的多个缓存行中与从第一参数提取的缓存索引相应的 缓存行中存储的缓存标签信息与提取的第一参数的缓存标签进行比较。当所有缓存标签信 息都相同时,比较单元140可确定发生缓存命中,当缓存标签信息不相同时,比较单元140 可确定发生缓存失配。 当发生缓存命中时,处理单元150可通过参照字节偏移信息从存储在缓存行中的 数据提取与第一参数相应的数据。当发生缓存失配时,处理单元150可向CPU报告该缓存 失配。 后面将参照图6到图10详细描述比较单元140和处理单元150的操作。
图2概念性地示出根据示例实施例的块级缓存。 缓存器220可临时地存储主存储器210中的一部分数据。缓存器220可在数据提 取和传输速度方面超过主存储器210。因此,可补偿主存储器210相对较低的提取和传输速 度,从而可提高命令处理速度。 然而,通常缓存器220的单位容量成本会高于主存储器210的单位容量成本。因 此,将主存储器210中的数据存储在缓存器220中的方法可影响命令处理的效率。
也就是说,当"缓存命中"(即,要被访问的数据存储在缓存器220中的状态)的概 率增加时,可提高处理的效率。因此,很多关于缓存控制的研究集中在提高缓存命中(即, 将由缓存系统访问的数据被存储在缓存器220中的概率)和降低将由缓存系统访问的数据 未被存储在缓存器220中的概率(以下,称为"缓存失配")。 主存储器210的大小相对较大,然而缓存器220的大小相对较小。因此,可将主存 储器210划分为多个部分,并可将一些部分存储在缓存器220中。 根据行缓存方案,可将缓存器220划分为多个缓存行221、222等,可将主存储器 210的一部分数据存储在多个缓存行221、222等中。在本示例中,可被存储在缓存器220中 的单个缓存行中的数据可以是主存储器210的一个或多个行线。 例如,可将存储在主存储器210中的数据划分为行,并将存储在区域201中的数据 存储在缓存器220的缓存行221 、222等中的任意一行中。 然而,虽然可将行缓存方案应用到可被同时访问的数据存在于相同行的应用中, 但是行缓存方案对可被同时访问的数据被存储在预定块(诸如主存储器210中的空间相邻 块)中的应用不合适。 根据示例实施例,主存储器210中的被设置为与缓存器220的相同缓存行相应的数据可相对于行线具有任意的块单元。 具体地,在行缓存方案中,缓存器220的单个缓存行中存储的数据是主存储器210的一个或多个行的数据(例如,区域201的数据)。然而,根据示例实施例,将被存储在单个缓存行中的数据单元可被确定为2D块(诸如第一块211)。每个2D块可具有大小为2m比特(或字节)的列和2n比特(或字节)的行。这里,m和n可以是自然数。
此外,如上所述,由于主存储器210的大小大于缓存器220的大小,可控制将主存储器210的多个块的部分与缓存器220的相同缓存行相应。 根据示例实施例,2D块的第一块211和第二块212可分别与缓存行(0) 221和缓存行(1)222相应。 此外,第一块211和块213可与缓存行(0)221相应。在本示例中,当将存储在第一块211中的数据存储在缓存行(0)221时,存储在块213中的数据不可存储在缓存行(0)221中。 相似地,第二块212和块214可与缓存行(1)222相应。在本示例中,当将存储在第二块212中的数据存储在缓存行(1)222时,存储在块214中的数据不可存储在缓存行(1)222中。 图3示出根据示例实施例的2D缓存参数。 根据示例实施例,由图1的参数输入单元110从系统接收的第一参数300可包括
行信息区域310和列信息区域320。以下,"Y"可指示行,"X"可指示列。 Y信息区域310可包括Y缓存标签311、 Y缓存索引312和Y字节偏移313。 X信
息区域320可包括X缓存标签321、X缓存索引322和X字节偏移323。 根据示例实施例,可由图1的缓存标签提取单元130从第一参数300提取Y缓存
标签311和X缓存标签321。此外,可由图1的缓存索引提取单元120从第一参数300提取
Y缓存索引312和X缓存索引322。 Y缓存标签311和X缓存标签321可包括从主存储器中的多个块中识别第一块的信息,其中所述第一块与缓存器中的缓存行相应。在本示例中,第一块可以是当前将要被访问的块。例如,Y缓存标签311和X缓存标签321可包括在主存储器210中从与图2的缓存器220的缓存行(0)221相应的第一块211和块213中指示第一块的信息。也就是说,Y缓存标签和X缓存标签可包括从与缓存器中的相同缓存行相应的多个块中识别将被访问的第一块的信息。在本示例中,与相同缓存行相应的多个块可具有相同的缓存索引信息。
此外,Y缓存索引312和X缓存索引322可包括从缓存器220中的多个缓存行中识别缓存行的信息。在本示例中,缓存行可与包括通过第一参数300将要被访问的数据的块相应。 此外,Y字节偏移313和X字节偏移323可包括识别通过第一参数300将要被访问
的数据的信息。根据示例实施例,关于Y字节偏移313和X字节偏移323的信息可不用于
确定缓存命中或缓存失配。在缓存命中中,可将关于Y字节偏移313和X字节偏移323的
信息用于识别存储数据的精确位置,所述数据将要通过第一参数300被访问。 图4示出根据示例实施例的从缓存参数提取的缓存索引400。 根据示例实施例,缓存索引提取单元120可从第一参数提取Y缓存索引410和X
缓存索引420。
参照图3,可将第一参数300划分为Y信息区域310和X信息区域320。此外,Y缓存索引312和X缓存索引322可分别被包括在Y信息区域310和X信息区域320中。在本示例中,缓存索引提取单元120可从第一参数300中的预定位置提取比特作为缓存索引。
虽然Y信息区域310和X信息区域320如图3所示被配置,但是Y信息区域310和X信息区域320的配置(即,缓存标签、缓存索引和字节偏移)可变。例如,可将Y缓存索引与X缓存索引相邻放置。 图5示出根据示例实施例的从缓存参数提取的缓存标签500。 参照图3,Y缓存标签311和X缓存标签321可分别被包括在Y信息区域310和X
信息区域320中。在本示例中,缓存标签提取单元130可提取第一参数300中的预定位置
的比特作为缓存标签。 此外,虽然Y信息区域310和X信息区域320如图3所示被配置,但是Y信息区域310和X信息区域320的配置可变。如图5所示,可在提取前将Y缓存标签510与X缓存标签520彼此相邻放置。 图6概念性地示出根据示例实施例的块级缓存。 可将主存储器600划分为128块。具体地,可将主存储器600在垂直方向上划分为8块,水平方向上划分为16块。单个块可具有能存储在缓存器(未示出)的单个缓存行中的大小。此外,缓存器可具有从缓存行0到缓存行15的16个缓存行。
单个块可具有水平方向2m比特(或字节)和垂直方向2n比特(或字节)的大小。
例如,当m和n都是4时,单个块可包括256比特(或字节)的单元数据。
在本示例中,由于主存储器600包括128个块,所以主存储器600可具有能存储32768比特(或字节)的单元数据的大小。此外,由于缓存器可存储16块数据,所以缓存器可具有能存储4096比特(或字节)的单元数据的大小。 虽然主存储器600如图6所示被配置,但是主存储器600不限于上述示例。
在主存储器600的多个块的每一个中指定的数字可指示可存储每个块的缓存索引。 当从CPU接收到与访问数据611的访问命令相关的第一参数时,缓存控制设备100可确定块610是否存储在缓存器中,从而可确定发生缓存命中还是缓存失配。
将参照图7详细描述与数据611的访问命令相关的第一参数。
图7示出图6的块级缓存的第一参数。 主存储器600可包括128个块。128个块的16个块的数据可被同时存储在缓存器中。 此外,具有相同缓存索引的块可同时存储在缓存器中。因此,当块611的数据被存储在缓存器的缓存行11中时,具有缓存索引"ll"的剩余15个块的数据不能被存储在缓存器中。 以下,可假设数据611位于垂直方向的第二位置和水平方向的第二位置。
根据现有的行缓存方案,单个缓存行在垂直方向可存储一比特且在水平方向可存储2m*2n = 2(m+n)比特(或字节)。在本示例中,因为用缓存器的缓存行的数字"16"除数据611的行编号"17"得到的余数可以是1,所以与数据611的访问命令相关的包括在地址中的缓存索引可以是"0001"。
此夕卜,由于数据611可以在具有缓存索引"0001"的8个行中的第二行,所以包括在地址中的缓存标签可以是"001"。 由于数据611可以是缓存索引为"0001"和缓存标签是"001"的行中的256条数据的数据的第50条,所以字节偏移可以是"00110001"。 因此,根据现有行缓存方案,当接收到15比特地址"001000100110001"(基于缓存
标签-缓存索引-字节偏移的顺序)时,缓存控制设备ioo可确定缓存索引是"oooi"和缓
存标签是"001"的行数据是否存储在缓存器中。当所述行数据存储在缓存器中时,缓存控制设备100可确定发生缓存命中,并且提取具有"00110001"的字节偏移的数据。
然而,根据示例实施例,由于可在缓存器中执行块级缓存,所以当块610的数据存储在缓存器中时,发生关于数据611的缓存命中。 根据示例实施例,数据611的访问命令可与第一参数700 —起接收。 参照图6,可在垂直方向每两行和水平方向每八列重复缓存索引。因此,Y缓存索
引可具有1比特,X缓存索引可具有3比特。块610可在上述模式中与垂直方向的第二块
和水平方向的第四块相应,从而Y缓存索引可以是"l", X缓存索引可以是"011"。 此外,块610可与垂直方向的四块的第一块和水平方向的两块的第一块相应,并
且与缓存行11相应。因此,Y缓存标签可以是"OO", X缓存标签可以是"O"。 此外,由于数据611可以是块610中垂直方向的第二位置和水平方向的第二位置,
所以Y字节偏移可以是"0001 ",X字节偏移也可以是"0001"。 因此,当由参数输入单元110接收到与数据611的访问命令相应的第一参数700时,缓存索引提取单元120可提取Y缓存索引"l"和X缓存索引"011",缓存标签提取单元130可提取Y缓存标签"00"和X缓存标签"0"。 此外,比较单元140可读取存储在缓存行11中的数据的缓存标签,所述缓存行11与提取的Y缓存索引是"1"和提取的X缓存索引是"011"的块610相应。此外,当比较单元140将缓存行11的Y缓存标签与第一参数700的Y缓存标签"OO"进行比较并确定它们彼此相同,并且将缓存行11的X缓存标签与第一参数700的X缓存标签"O"进行比较并确定它们彼此相同时,可确定发生缓存命中。 在本示例中,处理单元150可提取Y字节偏移和X字节偏移都是"0001"的数据作为数据611。 作为缓存标签的比较结果,当Y缓存标签或X缓存标签不相同时,比较单元140可确定发生缓存失配。 图8概念性地示出根据另一示例实施例的块级缓存。 可将主存储器800划分为128块。具体地,可将主存储器800在垂直方向上划分为8块,水平方向上划分为16块(与图6的示例相同)。主存储器800的单个块可具有水平方向2m比特(或字节)和垂直方向2n比特(或字节)的大小。例如,当m禾P n都是四时,单个块可包括256比特(或字节)的单元数据。 虽然将图8中的主存储器800配置为与图6中的主存储器600相同,但是确定块级缓存的缓存索引的操作可不同于图6。 根据示例实施例,主存储器800中可存在分别在垂直方向和水平方向具有相同缓存索引的两个块和四个块。因此,这里描述的缓存标签和缓存索引的配置可不同于参照图6所述的缓存标签和缓存索引的配置。 当接收到与数据811的访问命令相关的第一参数时,将参照图9详细描述缓存控
制设备ioo的操作。 图9示出图8的块级缓存的第一参数。 根据示例实施例,可假设数据811位于块810的垂直方向的第二位置和水平方向的第二位置。 根据现有的行缓存方案,包括在与数据811的访问命令相关的地址中的缓存索引可以是"0001"、缓存标签可以是"001"(与参照图7所述的示例相似)。此外,字节偏移可以是"00110001"。 根据示例实施例,数据811的访问命令可与第一参数900 —起接收。 参照图8,可在垂直方向每四行和水平方向每四列重复缓存索引。因此,Y缓存索
引可具有两比特,X缓存索引也可具有两比特。块810可在上述模式中与垂直方向的第二
块和水平方向的第四块相应,从而Y缓存索引可以是"01",X缓存索引可以是"11"。 此外,块810可与垂直方向的两块中的第一块和水平方向的四块中的第一块相
应,并且与缓存行7相应。因此,Y缓存标签可以是"0", X缓存标签可以是"00"。 此外,由于数据811可以是块810中垂直方向的第二位置和水平方向的第二位置,
所以Y字节偏移可以是"0001 ",X字节偏移可以是"0001"。 因此,当由参数输入单元110接收到与数据811的访问命令相应的第一参数900时,缓存索引提取单元120可提取Y缓存索引"01"和X缓存索引"11",缓存标签提取单元130可提取Y缓存标签"0"和X缓存标签"00"。 此夕卜,比较单元140可读取存储在缓存行7中的数据的缓存标签,所述缓存行7与提取的Y缓存索引是"01"和提取的X缓存索引是"11"的块810相应。此外,当比较单元140将缓存行7的Y缓存标签与第一参数900的Y缓存标签"O"进行比较并确定它们彼此相同,并且将缓存行7的X缓存标签与第一参数900的X缓存标签"OO"进行比较并确定它们彼此相同时,可确定发生缓存命中。 在本示例中,处理单元150可提取Y字节偏移和X字节偏移都是"0001"的数据作为数据811。 作为缓存标签的比较结果,当Y缓存标签或X缓存标签不相同时,比较单元140可确定发生缓存失配。 图10示出根据另一示例实施例的第一参数。 图像数据可包括多个帧。此外,用于图像数据处理的数据提取会需要对多个帧的块数据的访问。 因此,当多个帧的数据以块的形式或作为3D数据被存储在缓存器的缓存行中时,可提高缓存命中的概率。3D数据可以是块集合。 在本示例中,第一参数1000可与访问数据的访问命令一起接收。第一参数1000可包括帧信息区域1010、 Y信息区域1020和X信息区域1030。 帧信息区域1010可包括帧缓存标签1011、帧缓存索引1012和帧字节偏移1013。Y信息区域1020可包括Y缓存标签1021、 Y缓存索引1022和Y字节偏移1023。 X信息区域1030可包括X缓存标签1031、 X缓存索引1032和X字节偏移1033。
缓存标签、缓存索引和字节偏移的每一个的概念可被理解为参照图3描述的从2D 缓存参数扩展的3D缓存参数。 将参照图11详细描述包括帧信息区域1010的第一参数1000。 图11概念性地示出根据示例实施例的块级缓存和帧级缓存。 可将主存储器1100划分为256块。具体地,可将主存储器1100在垂直方向上划
分为16块,水平方向上划分为16块。主存储器1100的单个块可具有水平方向2m比特(或
字节)和垂直方向2n比特(或字节)的大小。例如,当m和n都是四时,单个块可包括256
比特(或字节)的单元数据。 根据示例实施例,可将与多个帧相应的数据存储在缓存器中。例如,可将与帧0相 应的数据块存储在缓存器中的缓存行0到缓存行7。此外,可将与帧1 (可以是帧0的邻近 帧)相应的数据块存储在缓存器中的缓存行8到缓存行15。 将参照图12详细描述当主存储器1100中的块1110的数据1111的提取命令与第
一参数一起接收时缓存控制设备100的操作。 图12示出图11的块级缓存和帧级缓存的缓存参数。 根据示例实施例,可假设数据1111位于块1110的垂直方向的第二位置和水平方 向的第二位置。 根据现有的行缓存方案,由于数据1111可与16个缓存行中的第二缓存行相应,所 以包括在地址中的缓存索引可以是"0001"。此外,由于数据1111可被包括在主存储器1100 中的具有缓存索引是"0001"的16个数据行中的第二行,所以包括在地址中的缓存标签可 以是"0001"。此外,与数据1111相应的字节偏移可以是"00110001"。因此,与数据llll 的访问命令相应的地址可以是基于缓存标签、缓存索引和字节偏移的顺序的16比特地址 "0001000100110001"。 然而,根据示例实施例,数据1111的访问命令可与第一参数1200 —起接收。
参照图11,可在垂直方向每两行和水平方向每四列重复缓存索引。此外,可每两帧 重复缓存索引。因此,帧缓存索引、Y缓存索引和X缓存索引可分别具有一比特、一比特和 两比特。块1110可与第一帧(S卩,帧0)相应。此外,块1110可在上述模式中与垂直方向 的第二块和水平方向的第四块相应。因此,帧缓存索引可以是"0"、Y缓存索引可以是"1", X缓存索引可以是"ll"。 此外,块1110可以是帧0中的垂直方向中的两块中的第一块和水平方向中的四块 中的第一块,并且与缓存行7相应。这里,帧0可以是与相同缓存行相应的帧0和帧2中的 第一帧。因此,帧缓存标签、Y缓存标签和X缓存标签可分别是"0"、"0"和"00"。
此外,由于数据1111可以是块1110中垂直方向的第二位置和水平方向的第二位 置,所以Y字节偏移可以是"0001 ",X字节偏移也可以是"0001"。 因此,当由参数输入单元110接收到与数据1111的访问命令相应的第一参数1200 时,缓存索引提取单元120可提取帧缓存索引"0"、 Y缓存索引"1"和X缓存索引"11",缓 存标签提取单元130可提取帧缓存标签"0"、 Y缓存标签"0"和X缓存标签"00"。
此外,比较单元140可读取存储在缓存行7中的数据的缓存标签,所述缓存行7与 提取的帧缓存索引是"0"、提取的Y缓存索引是"1"和提取的X缓存索引是"11"的块1110 相应。此外,当比较单元140将缓存行7的帧缓存标签与第一参数1200的帧缓存标签"0"进行比较并确定它们彼此相同,将缓存行7的Y缓存标签与第一参数1200的Y缓存标签 "O"进行比较并确定它们彼此相同,并且将缓存行7的X缓存标签与第一参数1200的X缓 存标签"00"进行比较并确定它们彼此相同时,可确定发生缓存命中。 在本示例中,处理单元150可从存储在缓存行7中的数据中提取Y字节偏移和X 字节偏移都是"0001"的数据作为数据1111。 作为缓存标签的比较结果,当帧缓存标签、Y缓存标签或X缓存标签不相同时,比 较单元140可确定发生缓存失配。 图13示出根据示例实施例的缓存控制方法的流程图。 操作1310中,可接收第一参数。根据示例实施例,第一参数可与上面参照图3和 图10描述的2D块缓存或包括帧的3D块缓存相应。 操作1320中,提取缓存索引和缓存标签。根据示例实施例,当第一参数与2D块缓 存相应时,Y信息区域和X信息区域的特定部分的比特可被提取为缓存索引或缓存标签。
已经参照图4和图5在上文进行了详细描述。 操作1330中,可将提取的缓存标签与存储在缓存器中的与提取的缓存索引相应 的缓存行中的缓存标签进行比较,从而可确定是否发生缓存命中。 当缓存标签彼此相同时,可确定发生缓存命中。在这种情况下,在操作1340中可
通过参照字节偏移信息从存储在缓存行中的数据提取与第一参数相应的数据。 当确定未发生缓存命中时,在操作1350中可确定发生缓存失配。在本示例中,缓
存控制设备可将缓存失配报告给CPU。根据另一示例实施例,可直接提取与第一参数相应的
数据并将其发送到CPU。此外,可更新缓存数据(即,与第一参数相应的数据)。 可将根据上述示例实施例的缓存控制方法记录在计算机可读介质中,所述计算机
可读介质包括执行各种由计算机实施的操作的程序指令。所述介质还可单独或组合包括程
序指令、数据文件、数据结构等。计算机可读介质的示例包括磁性介质(诸如,硬盘、软盘
和磁带);光学介质(如CD-ROM盘或DVD);磁光介质(诸如光盘);和专门构造以存储和执
行程序指令的硬件装置(诸如只读存储器(R0M)、随机存取存储器(RAM)、闪存等)。程序指
令的示例包括如由汇编器产生的机器代码和包含可由计算机使用解释器执行的更高级代
码的文件。所述硬件装置可以被设置为担当一个或多个软件模块以执行上述示例实施例的
操作,反之亦然。软件模块可在包括缓存控制设备或系统的任意处理器、通用计算机或专用
计算机上执行。 虽然显示和描述了本发明的几个示例实施例,但是本领域技术人员应该理解,在 不脱离范围由权利要求及其等同物限定的本发明的原理和精神的情况下,可对其进行各种 改变。
权利要求
一种缓存控制设备,包括参数输入单元,接收与主存储器中的块级缓存相应的第一参数;缓存索引提取单元,从所述第一参数提取缓存索引;缓存标签提取单元,从所述第一参数提取缓存标签;以及比较单元,使用所述缓存索引和所述缓存标签确定是否发生缓存命中。
2. 如权利要求1所述的缓存控制设备,其中,所述第一参数包括用于主存储器中的块 级缓存的行信息区域和列信息区域。
3. 如权利要求2所述的缓存控制设备,其中,所述行信息区域包括行缓存标签、行缓存 索引和行字节偏移,所述列信息区域包括列缓存标签、列缓存索引和列 字节偏移。
4. 如权利要求3所述的缓存控制设备,其中,所述行缓存标签和所述列缓存标签包括 从主存储器中的多个块中识别第一块的信息,所述多个块与缓存器中的相同缓存行相应。
5. 如权利要求3所述的缓存控制设备,其中,所述行缓存索引和所述列缓存索引包括 从缓存器中的多个缓存行中识别第一缓存行的信息,所述第一缓存行存储第一块。
6. 如权利要求3所述的缓存控制设备,其中,所述行字节偏移和所述列字节偏移包括 从多条数据中识别第一数据的信息,所述多条数据同时存储在缓存器中的相同缓存行中。
7. 如权利要求2所述的缓存控制设备,其中,所述第一参数还包括用于主存储器中的帧级缓存的帧信息区域。
8. 如权利要求7所述的缓存控制设备,其中,所述行信息区域包括行缓存标签、行缓存 索引和行字节偏移,所述列信息区域包括列缓存标签、列缓存索引和列字节偏移,所述帧信 息区域包括帧缓存标签、帧缓存索引和帧字节偏移。
9. 如权利要求8所述的缓存控制设备,其中,所述帧缓存标签、行缓存标签和列缓存标 签包括从主缓存器中的多个块中识别第一块的信息,所述多个块与缓存器中的相同缓存行 相应。
10. 如权利要求8所述的缓存控制设备,其中,所述帧缓存索引、行缓存索引和列缓存 索引包括从缓存器中的多个缓存行中识别第一缓存行的信息,所述第一缓存行存储第一 块。
11. 如权利要求l所述的缓存控制设备,还包括处理单元,当所述比较单元确定发生缓存命中时,所述处理单元提取和提供与所述第 一参数相应的缓存数据。
12. —种缓存控制方法,包括接收与主存储器中的块级缓存相应的第一参数; 从所述第一参数提取缓存索引和缓存标签;以及 使用所述缓存索引和所述缓存标签确定是否发生缓存命中。
13. 如权利要求12所述的缓存控制方法,其中,所述第一参数包括用于主存储器中的 块级缓存的行信息区域和列信息区域。
14. 如权利要求13所述的缓存控制方法,其中,所述行信息区域包括行缓存标签、行缓 存索引和行字节偏移,所述列信息区域包括列缓存标签、列缓存索引和列字节偏移。
15. 如权利要求13所述的缓存控制方法,其中,所述行缓存索引和所述列缓存索引包 括从缓存器中的多个缓存行中识别第一缓存行的信息,所述第一缓存行存储第一块。
16.如权利要求13所述的缓存控制方法,其中,所述第一参数还包括用于主存储器中 的帧级缓存的帧信息区域。
全文摘要
提供一种缓存控制设备和方法。所述缓存控制设备可包括参数输入单元,接收与主存储器中的块级缓存相应的第一参数;缓存索引提取单元,从所述第一参数提取缓存索引;缓存标签提取单元,从第一参数提取缓存标签;以及比较单元,使用所述缓存索引和缓存标签确定是否发生缓存命中。
文档编号G11C11/4063GK101751993SQ200910177618
公开日2010年6月23日 申请日期2009年9月24日 优先权日2008年12月16日
发明者宋准镐, 金斗炫 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1