CN110769273A - 高速缓存存取系统 - Google Patents
高速缓存存取系统 Download PDFInfo
- Publication number
- CN110769273A CN110769273A CN201810841236.6A CN201810841236A CN110769273A CN 110769273 A CN110769273 A CN 110769273A CN 201810841236 A CN201810841236 A CN 201810841236A CN 110769273 A CN110769273 A CN 110769273A
- Authority
- CN
- China
- Prior art keywords
- pixel
- supplemental
- cache
- cache line
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
响应于读取第一影像区块的第一像素的压缩后影像数据的请求,控制单元根据第一像素于原始画面的水平坐标的(X+ΔX)个最低有效位、第一像素于原始画面的垂直坐标的(Y+ΔY)个最低有效位、第一像素对应于外部存储器的地址及第一影像区块的起始像素对应于外部存储器的地址,产生第一像素于高速缓存的目标索引,根据第一像素于原始画面的水平坐标的A个最高有效位及第一像素于原始画面的垂直坐标的B个最高有效位产生第一像素的目标标签,及比较高速缓存中对应于目标索引的对应高速缓存行的对应标签及第一像素的目标标签。
Description
技术领域
本发明有关于一种高速缓存存取系统,特别是指一种能够保持像素二维空间关系的高速缓存存取系统。
背景技术
高速缓存可包含多个高速缓存行(cache line),每一高速缓存行可存放至少一笔对应的数据。为使处理器能够确认所需的数据是否存放于高速缓存中,每一高速缓存行皆具有其对应的生效位(valid bit)、标签(tag)、索引(index)和偏移值(offset)等信息,以供处理器对照确认。表1说明先前技术的高速缓存行的生效位、标签、索引和偏移值与数据地址M[11:0]的对应关系。
表1:
生效位 | 标签 | 索引 | 偏移值 |
0/1 | M[11:9] | M[8:5] | M[4:0] |
在表1中,若每笔数据于主存储器中的地址是以二进制的十二位表示为M[11:0],则在每一个高速缓存行可储存32字节的数据的情况下,处理器可将地址M[11:0]中的最后五个位M[4:0]作为偏移值,将地址M[11:0]中的第九至第六个最低有效位M[8:5]作为其索引,并将地址M[11:0]中的第十二至第十个最低有效位M[11:9]作为其标签。举例来说,地址为“111100001111”的数据的索引即为“1000”,而其标签则为“111”,因此当处理器欲确认高速缓存中是否储存有该笔数据时,处理器会优先搜寻索引为“1000”的高速缓存行,若索引为“1000”的高速缓存行的生效位为“1”,且索引为“1000”的高速缓存行的标签亦为“111”,则表示索引为“1000”的高速缓存行中确有存放数据,且其存放的数据报含地址为“111100001111”的数据,此时表示高速缓存命中(cache hit),处理器即可自高速缓存中提取所需的数据。
反之,若是索引为“1000”的高速缓存行的生效位为“0”或是索引为“1000”的高速缓存行的标签并非“111”时,即为高速缓存错失(cache miss),而处理器仍需自外部的主存储器取得所需的数据。
在高速缓存错失的情况下,处理器在自外部的主存储器取得数据后,即可将其数据存放至对应索引的高速缓存行中,并更新对应索引的高速缓存行的标签,且将生效位设为“1”,如此一来,下一次当处理器需要该笔数据时,即可自高速缓存中取得。
虽然高速缓存能够减少透过总线自外部的主存储器中读取数据,然而若是处理器每次所需的数据都不在高速缓存中,亦即发生高速缓存错失的频率太高,则高速缓存所能带来的效益仍可能非常有限,甚至浪费了宝贵的硬件空间。
发明内容
本发明的一实施例提供一种高速缓存存取系统,高速缓存存取系统包含高速缓存及控制单元。
高速缓存包含多个高速缓存行,多个高速缓存行会对应于原始画面的2Ax2B个影像瓦块,每一影像瓦块包含2ΔXx2ΔY个区块,每一影像区块包含2Xx2Y个像素。其中A、B、X、Y、ΔX及ΔY为自然数。
控制单元耦接于高速缓存,并可在响应于读取第一影像区块的第一像素的压缩后影像数据的请求时,根据第一像素于原始画面的水平坐标的(X+ΔX)个最低有效位、第一像素于原始画面的垂直坐标的(Y+ΔY)个最低有效位、第一像素对应于外部存储器的第一地址及第一影像区块的第一起始像素对应于外部存储器的第一起始地址,产生第一像素于高速缓存的目标索引,根据至少第一像素的水平坐标的A个最高有效位及第一像素的垂直坐标的B个最高有效位,产生第一像素的目标标签,以及比较高速缓存中对应于目标索引的对应高速缓存行的对应标签及第一像素的目标标签。
原始画面的多个像素的压缩后影像数据会以影像区块为单位,依序将每一影像瓦块中的2ΔXx2ΔY个影像区块中的像素以原始画面的水平方向的次序编码以储存于外部存储器。
附图说明
图1为本发明一实施例的高速缓存存取系统的示意图。
图2为本发明一实施例的原始画面的影像瓦块及影像区块的示意图。
图3为图2的影像区块的示意图。
图4为原始画面的各个像素于压缩后在外部存储器的地址示意图。
图5为本发明一实施例的图1的高速缓存的示意图。
图6为本发明另一实施例的高速缓存存取系统的示意图。
图7为本发明另一实施例的高速缓存存取系统的示意图。
符号说明
100、200、300 高速缓存存取系统
110、210、310 高速缓存
120、220、320 控制单元
EMEM 外部存储器
BUS0 总线
CL0至CL255 高速缓存行
ACL0至ACL3 补充高速缓存行
IMG1 原始画面
IBLK1 第一影像区块
PXL1、PLX1’ 第一像素
IBLK2 第二影像区块
PXL2、PLX2’ 第二像素
IT(0,0)至IT(31,63) 影像瓦块
IB(0,0)至IB(3,3) 影像区块
P0至P511 像素
800、900 方法
S810至S860、S910至S1000 步骤
具体实施方式
图1为本发明一实施例的高速缓存存取系统100的示意图。高速缓存存取系统100包含高速缓存110及控制单元120。在本发明的部分实施例中,高速缓存存取系统100可应用于影像压缩。
在实务上,为提升硬件资源的使用效率,在压缩一张画面的数据时,可将一张画面分为多个影像瓦块(tile)及/或多个影像区块(block),并依序对一张画面中的各个影像区块进行压缩。举例来说,原始画面可分为2Ax2B个影像瓦块,且每一影像瓦块包含2ΔXx2ΔY个区块,其中A、B、ΔX及ΔY为自然数,亦即零或正整数。
图2为本发明一实施例的原始画面IMG1的影像瓦块及影像区块的示意图,在图2的实施例中,A可为5,B可为6,ΔX可为2,而ΔY可为2。也就是说,原始画面IMG1可分为32x64个影像瓦块IT(0,0)至IT(31,0)、IT(0,1)至IT(31,1)、…及IT(0,63)至IT(31,63),而每一个影像瓦块会包含4x4个影像区块IB(0,0)至IB(3,0)、IB(0,1)至IB(3,1)、IB(0,2)至IB(3,2)、及IB(0,3)及IB(3,3),每一影像区块可包含2Xx2Y个像素。
图3为图2的影像区块的示意图,在图3的实施例中,X可为5,Y可为4,亦即在图2中的每一影像区块可包含32x16个像素P0至P511。
在此情况下,原始画面IMG1中的多个像素会以影像区块为单位来进行压缩,亦即可依序将每一影像瓦块中的4x4个影像区块中的像素先以原始画面IMG0的水平方向再以原始画面IMG0的垂直方向的次序编码以储存于外部存储器EMEM。在此实施例中,水平方向及垂直方向为方便说明所使用的相对方向,而并非用以限定本发明的绝对方向。
为方便说明,图4说明在压缩率为1的情况下,亦即各个像素的数据量实质上并未被压缩的情况下,原始画面IMG1的各个像素于压缩后在外部存储器EMEM的地址示意图。在图4的实施例中,外部存储器EMEM的每一个地址可存放8位(bit)的数据,而在压缩率为1的情况下,每一个像素的影像数据亦包含8位的数据。在此情况下,地址0x0A00_0000至0x0A00_001F中会存放影像区块IB(0,0)的像素P0至P31的数据,而地址0x0A00_0020至0x0A00_003F中会存放影像区块IB(0,0)的像素P32至P63的数据,其中地址0x0A00_0000及0x0A00_001F是以十六进制的方式来表示。依此类推,地址0x0A00_0060至0x0A00_001FF也可依照上述的顺序分别存放影像区块IB(0,0)的像素P96至P511的数据。
于外部存储器EMEM中,在影像区块IB(0,0)中的像素存放完毕之后,接着则会根据存放影像区块IB(0,0)的像素的方式,依序存放影像区块IB(1,0)、IB(2,0)、IB(3,0)中的像素数据。在存放影像区块IB(3,0)的数据之后,则会接着依序存放影像区块IB(0,1)至IB(3,1)、IB(0,2)至IB(3,2)、…、IB(0,3)至IB(3,3)的像素数据。在存放完影像瓦块IT(0,0)中的所有影像区块之后,会接着以相同的方式依序存放影像瓦块IT(1,0)至IT(31,0)、IT(0,1)至IT(31,1)、…至IT(0,63)至IT(31,63)中各个影像区块中的像素数据。
换言之,外部存储器EMEM是以一维的方式,依照由左至右,再由上至下的顺序存放每一个影像瓦块中每一个影像区块内的像素。虽然按此方式存放像素数据能够避免在压缩率大于1的情况下,以二维地址存放像素数据时所造成的存储器使用率偏低的问题,然而按一维方式存放画面数据像素的作法,则可能导致相邻像素的地址相差甚远。
举例来说,在影像瓦块IT(0,0)中,影像区块IB(0,3)中的像素与影像区块IB(0,2)中的像素虽在原始画面IMG1中是彼此相邻近,然而其于外部存储器中的地址则相差甚远。此时若是按照先前技术的方式,直接根据各个像素于外部存储器EMEM的地址来制定各个像素于高速缓存中的索引,则将可能导致相邻的像素具有相同的索引,使得相邻的像素会彼此竞争相同的高速缓存行。尤其在许多应用中,例如于解压缩像素数据时,常会需要参考其相邻像素的数据来执行对应的运算,因此在相邻的像素可能会彼此竞争相同高速缓存行的情况下,将增加高速缓存错失发生的次数,而不利于整体的运算效率。
为了减少高速缓存错失发生的次数,控制单元120可根据各个像素于外部存储器EMEM的地址信息及其在原始画面中的空间二维坐标来产生其索引。如此一来,即能将相邻的像素存放至具有相异索引的高速缓存行中,并减少发生高速缓存错失的次数。
在图2及图3的实施例中,原始画面IMG1包含2A+X+ΔXx2B+Y+ΔY个像素,亦即212x212个像素,因此每个像素的水平坐标及垂直坐标皆可以二进制的十二个位来表示。为方便说明,可将影像瓦块IT(0,0)的影像区块IB(0,0)的像素P0的二维坐标订为(0,0)亦即其水平坐标为0且垂直坐标为0,并将影像瓦块IT(31,0)的影像区块IB(3,0)的像素P31的二维坐标订为(4095,0),亦即其水平坐标为4095且垂直坐标为0。相似地,影像瓦块IT(0,63)的影像区块IB(0,3)的像素P480的二维坐标则为(0,4095),其水平坐标为0,而垂直坐标为4095。
此外,在图1中,控制单元120连接至外部存储器EMEM的总线BUS0的带宽为2X个字节,亦即25个字节,因此为增加硬件使用的效率,每次经由总线BUS0自外部存储器EMEM读取数据时,可一次读取32个字节的数据。在此情况下,每一高速缓存行可设计为具有32个字节的数据容量,而高速缓存110可包含2ΔXx2Y+ΔY个高速缓存行,亦即256个高速缓存行CL0至CL255。
在图1中,控制单元120耦接于高速缓存110,并可透过总线BUS0耦接至外部存储器EMEM。当控制单元120接收到读取原始画面IMG1的第一影像区块IBLK1的第一像素PXL1的压缩后影像数据的请求时,响应于该请求,控制单元120可根据第一像素PXL1于原始画面IMG1的水平坐标的(X+ΔX)个最低有效位、第一像素PXL1于原始画面IMG1的垂直坐标的(Y+ΔY)个最低有效位、第一像素PXL1对应于外部存储器EMEM的第一地址及第一像素PXL1所在的第一影像区块IBLK1的第一起始像素IPXL1对应于外部存储器EMEM的第一起始地址,产生第一像素PXL1于高速缓存110的目标索引。
表2说明本发明一实施例的像素的目标索引及偏移值组成方式。
表2:
在表2中,H可为第一像素PXL1于原始画面IMG1上的水平坐标,而V可为第一像素PXL1于原始画面IMG1上的垂直坐标。
由于每一高速缓存行可以存放32个字节的数据,因此在压缩率为1的情况下,于水平方向上相连的32个像素即可能会对应到相同的高速缓存行,而控制单元120可将第一像素PXL1的水平坐标H的最末X个有效位H[X-1:0],亦即最末5个有效位H[4:0]作为其偏移值,而不列入索引部分。
此外,控制单元120会以第一像素PXL1的水平坐标H的第(X+ΔX)至第(X+1)个最低有效位H[X+ΔX–1:X],亦即第7至第6个最低有效位H[6:5]作为部分索引,在图2的实施例中,水平坐标H的第7至第6个最低有效位H[6:5]实质上亦可视为第一像素PXL1所在的第一影像区块IBLK1的相对水平坐标,举例来说,影像区块IB(0,0)的相对水平坐标为0,而位于影像区块IB(0,0)的像素的水平坐标H的第7至第6个最低有效位H[6:5]皆为“00”;影像区块IB(1,0)的相对水平坐标为1,而位于影像区块IB(1,0)的像素的水平坐标H的第7至第6个最低有效位H[6:5]皆为“01”。
相似地,控制单元120可将所欲读取的像素的垂直坐标V的第(Y+ΔY)至第(Y+1)个最低有效位H[Y+ΔY–1:Y],亦即第6至第5个最低有效位V[5:4]作为部分索引,在图2的实施例中,垂直坐标V的第6至第5个最低有效位V[5:4]实质上亦可视为所欲读取的像素所在的影像区块的相对垂直坐标。
换言之,控制单元120可根据第一像素PXL1是位于影像瓦块中的哪一个影像区块来设定其索引,因此在压缩率为1的情况下,原始画面IMG1的影像瓦块IT(0,0)中,每一个影像区块IB(0,0)至IB(3,3)中的像素,都会以32个像素为单位,存放至相异的高速缓存行而不会彼此相竞争。
此外,为了进一步将同一影像区块中其外部存储器地址相异的像素对应至相异的高速缓存行中,控制单元120还可将第一像素PXL1对应于外部存储器EMEM的地址及第一像素PXL1所在的第一影像区块IBLK1的第一起始像素IPXL1对应于外部存储器EMEM的第一起始地址的差值OFF的第(X+Y)至第(X+1)个最低有效位OFF[X+Y-1:X],亦即第9至第6最低有效位OFF[8:5]作为第一像素PXL1的部分索引。
举例来说,若第一像素PXL1为第2及图3中影像瓦块IT(0,0)的影像区块IB(0,0)中的像素P98,第一区块IBLK1即为影像瓦块IT(0,0)的影像区块IB(0,0),而第一区块IBLK1的第一起始像素IPXL1则为影像瓦块IT(0,0)的影像区块IB(0,0)的像素P0。若根据图4的实施例,影像瓦块IT(0,0)的影像区块IB(0,0)的像素P0于外部存储器EMEM的起始地址为0x0A00_0000,而第一像素PXL1于外部存储器EMEM的地址则应为0x0A00_0062。因此两者的差值OFF若以十进制表示即为98,而差值OFF的二进制的第9至第6最低有效位OFF[8:5]即为“011”。
由于每一影像区块在水平方向上具有32个像素,且在外部存储器EMEM又会以影像区块为单位来存放各像素的数据,因此在压缩率为1的情况下,第一像素PXL1的第一地址与第一像素PXL1所在的第一影像区块IBLK1的第一起始像素IPXL1的第一起始地址的差值OFF的第9至第6最低有效位OFF[8:5]实质上可视为第一像素PXL1于第一影像区块IBLK1中的相对垂直坐标。
举例来说,根据OFF[8:5]为“011”即可推理出第一像素PXL1可能会位于影像区块IB(0,0)中由上至下数来的第3列。由于每一影像区块在垂直方向上具有2Y个像素,亦即16个像素,因此在表2的实施例中,仅需选择差值OFF的第9至第6最低有效位OFF[8:5],共4个位即已足够区别每一影像区块中位于相异水平列的像素。
再者,影像瓦块IT(0,0)的影像区块IB(0,0)的像素P98于原始画面IMG1中的坐标(H,V)为(2,3),亦即水平坐标H为2,而垂直坐标V为3。因此第一像素PXL1的水平坐标H的第(X+ΔX)至第(X+1)个最低有效位,亦即第7至第6个最低有效位H[6:5]即为“00”,而第一像素PXL1的垂直坐标H的第(Y+ΔY)至第(Y+1)个最低有效位,亦即第6至第5个最低有效位V[5:4]即为“00”。
控制单元120即可根据第一像素PXL1的水平坐标H的第(X+ΔX)至第(X+1)个最低有效位“00”,第一像素PXL1的垂直坐标V的第(Y+ΔY)至第(Y+1)个最低有效位“00”,以及第一像素PXL1的第一地址与第一影像区块IBLK1的第一起始像素的第一起始地址的差值OFF的第(X+Y)至第(X+1)个最低有效位“011”加以组合产生第一像素PXL1的目标索引。以表2所示的顺序为例,第一像素PXL1的目标索引即为“0001100”。当然,在本发明的其他实施例中,亦可根据与表2相异的顺序来组合第一像素PXL1的目标索引。
由于原始画面IMG1中各个像素的目标索引皆可透过上述方式产生,因此在图2中,位于各影像瓦块IT(0,0)至IT(31,63)中,相对位置相同的像素可能会产生相同的索引。例如影像瓦块IT(0,0)的影像区块IB(0,0)中的像素P98即可能与影像瓦块IT(1,0)的影像区块IB(0,0)中的像素P98具有相同的索引。因此控制单元120仍需检查高速缓存110中对应于目标索引“0001100”的对应高速缓存行的对应标签及对应生效位,以确认对应于目标索引“0001100”的对应高速缓存行是否储存有第一像素PXL1的压缩后的影像数据。
在本发明的部分实施例中,控制单元120可根据第一像素PXL1于原始画面IMG1中的坐标产生其目标标签。
表3说明本发明一实施例的像素的标签的组成方式。
表3:
根据表3的内容,控制单元120可根据第一像素PXL1的水平坐标H的A个最高有效位H[X+ΔX+A–1:X+ΔX]及第一像素PXL1的垂直坐标V的B个最高有效位V[Y+ΔY+B–1:Y+ΔY]产生第一像素PXL1的目标标签,亦即水平坐标H的第1至第5个最高有效位H[11:7]以及垂直坐标V的第1至第6个最高有效位H[11:6]。
如此一来,位于影像瓦块IT(0,0)的影像区块IB(0,0)的像素P98与位于影像瓦块IT(1,0)的影像区块IB(0,0)的像素P98即会具有相异的标签。因此控制单元120可比较对应高速缓存行的对应标签与第一像素PXL1的目标标签,若对应高速缓存行的对应标签与所欲读取的像素的目标标签相同,则表示对应高速缓存行中可能储存有所欲读取的像素的压缩后影像数据。
在此实施例中,第一像素PXL1为影像瓦块IT(0,0)的影像区块IB(0,0)的像素P98,其水平坐标H的第1至第5个最高有效位H[11:7]为“00000”,而其垂直坐标V的第1至第6个最高有效位H[11:6]为“000000”,因此根据表3所示的顺序,控制单元120所产生的第一像素PXL1的目标标签即为“00000000000”。而在图1中,若对应于目标索引“0001100”的对应高速缓存行为高速缓存行CL12,则由于高速缓存行CL12的对应标签亦为“00000000000”,表示高速缓存行CL12中可能储存有第一像素PXL1的压缩后影像数据。
此外,由于储存在外部存储器EMEM的数据可能会被更新,而储存在对应高速缓存行中的数据未必为已更新的数据,因此在本发明的部分实施例中,控制单元120还会检查对应高速缓存行的对应生效位,对应生效位可以二进制的“1”表示已生效,并以二进制的“0”表示无效。
若是对应高速缓存行的对应标签与第一像素PXL1的目标标签相同,且对应高速缓存行的对应生效位被标记为已生效,控制单元120即可自高速缓存行CL12中读取第一像素PXL1的压缩后影像数据,而无须透过总线BUS0自外部存储器EMEM读取所需的数据。
反之,若是对应高速缓存行的对应生效位被标记为无效,或对应高速缓存行的对应标签与第一像素PXL1的目标标签相异时,表示对应高速缓存行中的数据并非第一像素PXL1的压缩后的影像数据。此时控制单元120可根据第一像素PXL1的第一地址自外部存储器EMEM读取第一像素PXL1的压缩后影像数据,并且可根据第一像素PXL1的目标索引及目标标签将第一像素PXL1的压缩后影像数据储存至对应高速缓存行,例如为上述的高速缓存行CL12,并将对应高速缓存行的对应生效位标记为已生效。
也就是说,控制单元120可根据第一像素PXL1的压缩后的影像数据将原先对应高速缓存行中所储存的信息覆盖,并更新对应高速缓存行的对应标签及对应生效位。如此一来,下一次当控制单元120欲读取第一像素PXL1的数据时,控制单元120即可自对应高速缓存行中存取所需的压缩后影像数据,而无须再次经由总线BUS0到外部存储器EMEM读取数据。
透过表2所示的索引组成方式,高速缓存存取系统100即可同时根据每个像素于原始画面IMG1的二维坐标以及每个像素坐标于外部存储器EMEM的地址来产生每个像素的高速缓存索引,进而能够避免位置相邻的像素彼此竞争相同的高速缓存行,而增加高速缓存命中率。
此外,在不同应用当中,控制单元120可能会需要存取不同张画面的数据,因此在本发明的部分实施例中,控制单元120除了根据第一像素PXL1的水平坐标H的A个最高有效位及其垂直坐标V的B个最高有效位之外,还可根据所需画面的画面编号来组合成所欲读取的像素的目标标签。例如原始画面IMG1的画面编号可为1,则在原始画面IMG1之前的画面的编号可为0,而在原始画面IMG1之后的画面编号则可为2、3、4…,依此类推,而可根据应用的需求,增设不同位的画面编号至第一像素PXL1的目标标签当中。
虽然在压缩率为1的情况下,高速缓存110中的高速缓存行CL0至CL255的总容量会足以容纳一整个影像瓦块中所有像素的影像数据量,然而在实务上,压缩率通常会大于1,例如为1.25、1.5。在此情况下,即便将整个影像瓦块中所有像素的压缩后的影像数据存放至高速缓存110中,仍可能仅会占用到部分的高速缓存行,而仍有多余的储存空间。
图5为本发明一实施例的高速缓存110的示意图。在图5的实施例中,由于压缩率大于1,因此每个像素的压缩后影像数据可能会少于8个位,此时高速缓存110中的高速缓存行CL0至CL100即足以完整储存影像瓦块IT(0,0)中的像素。此时,若按照前述表2的方式产生各像素的索引,则高速缓存110可能会在尚有高速缓存行CL101至CL255处于闲置的情况下,更新原先已存有信息的高速缓存行,导致像素间不必要地竞争相同的高速缓存行,进而降低了高速缓存110的高速缓存命中率。
为解决此问题,在本发明的部分实施例中,当控制单元120接收到读取第二像素PXL2,例如为影像区块IT(1,0)的影像区块IB(0,0)的像素P0,的压缩后影像数据的指令时,响应于读取第二像素PXL2的压缩后影像数据的请求,控制单元120可根据与表2相异的方式产生第二像素PXL2的索引,使得影像区块IT(1,0)的影像区块IB(0,0)的像素P0会优先存放至其他可能闲置的高速缓存行中。
表4说明本发明另一实施例的像素索引及偏移值组成方式。
表4:
根据表4所述的索引产生方式,控制单元120可将与第二像素PXL2于原始画面的垂直坐标V的第(Y+ΔY)至第(Y+1)个最低有效位V[Y+ΔY–1:Y],亦即第6至第5个最低有效位H[5:4],与其对应于外部存储器EMEM的第二地址及第二像素PXL2所在的第二影像区块IBLK2的第二起始像素对应于外部存储器EMEM的第二起始地址的差值OFF的第(X+Y)至第(X+1)个最低有效位OFF[X+Y-1:X],亦即差值OFF的第9至第6最低有效位OFF[8:5]加以组合,作为第二像素PXL2于影像瓦块IT(1,0)中的相对垂直坐标,再以2Y+ΔY-1,亦即63,减去第二像素PXL2于影像瓦块IT(1,0)中的相对垂直坐标以作为其像素的部分索引。如此一来,影像区块IT(1,0)的影像区块IB(0,0)的像素P0将会被优先存放到索引为”11111100”的高速缓存行CL252中,而不会存放在索引为”00000000”的高速缓存行CL0中,因此能够有效地提高高速缓存110的使用率进而提升高速缓存命中率。
在本发明的部分实施例中,控制单元120可分别根据表2及表4所示的索引组成方式来产生原始画面IMG1中相邻影像瓦块的像素的目标索引,例如影像瓦块IT(0,0)、IT(1,1)可根据表2的方式来产生像素的目标索引,而影像瓦块IT(1,0)、IT(0,1)则可根据表4的方式来产生像素的目标索引,如此一来,相邻的瓦块就会以相异的顺序来存放至高速缓存行CL0至CL255,而能够减少因为高速缓存110使用率偏低及高速缓存错失率提高的状况。
此外,在本发明的部分实施例中,高速缓存110亦可包含更多的高速缓存行,并使得相邻的瓦块可对应至相异的高速缓存行。图6为本发明另一实施例的高速缓存存取系统200的示意图。高速缓存存取系统200与高速缓存存取系统100的主要差别在于高速缓存存取系统200的高速缓存210可包含高速缓存行CL0至CL1023,此时原始画面IMG1中的影像瓦块IT(0,0)、IT(1,0)、IT(0,1)及IT(1,1)可分别对应至高速缓存行CL0至CL255、高速缓存行CL256至511、高速缓存行CL512至767及高速缓存行CL768至1023。如此一来,便可减少相邻瓦块的像素彼此竞争相同高速缓存行的情况。
在图6的实施例中,若将相邻的四个影像瓦块,例如影像瓦块IT(0,0)、IT(0,1)、IT(1,0)及IT(1,1),视为一组影像瓦块,则控制单元220还可以根据表2及表4所示的索引组成方式来分别产生相邻两组影像瓦块中的像素的索引,如此一来,还能够再进一步地减少相邻瓦块的像素彼此竞争相同高速缓存行的情况,进而能够提高高速缓存命中的机率。
在图5的实施例中,当从外部存储器EMEM中读取一特定影像区块的像素的压缩后影像数据时,可能会一并读取到与该特定影像区块相邻的影像区块的像素的压缩后影像数据,此时高速缓存行中可能同时存放了两个影像区块的像素的压缩后影像数据。
举例来说,在图5中,高速缓存行CL3中即同时存放了影像瓦块IT(0,0)的影像区块IB(0,0)的像素P451至P511的压缩后影像数据以及影像瓦块IT(0,0)的影像区块IB(1,0)的像素P0至P60的压缩后影像数据。然而表2所示的索引组成方式包含了像素所在的影像区块的相对坐标信息,因此控制单元120根据表2所产生的影像区块IB(0,0)的像素P511的索引会与控制单元120根据表2所产生的影像区块IB(1,0)的像素P0的索引相异。
也就是说,在图5中,若控制单元120先根据表2产生影像区块IB(0,0)的像素P511的目标索引,则当控制单元120欲查找影像区块IB(1,0)的像素P0的压缩后影像数据时,由于控制单元120根据表2所产生的影像区块IB(1,0)的像素P0的目标索引不会对应到高速缓存行CL3,因此仍会发生高速缓存错失。为了减少高速缓存错失,在本发明的部分实施例中,高速缓存还可包含至少一补充高速缓存行,以减少高速缓存错失发生的次数。
图7为本发明一实施例的高速缓存存取系统300的示意图。高速缓存存取系统300包含高速缓存310及控制单元320,高速缓存存取系统300与高速缓存存取系统100的主要差别在于高速缓存存取系统300的高速缓存310除了高速缓存行CL0至CL255之外,还包含补充高速缓存行ACL0至ACL3。
在图7中,第一像素PXL1’为影像区块IT(0,0)的影像区块IB(1,0)的像素P0,当欲读取第一像素PXL1’的压缩后影像数据时,响应于该请求,控制单元320可先根据表2产生第一像素PXL1’的目标索引,倘若控制单元320于高速缓存行CL0至CL255中发生高速缓存错失,此时,控制单元320可根据第一像素PXL1’于外部存储器EMEM的地址来产生其补充目标索引。
表5说明本发明一实施例的像素的补充目标索引及补充目标标签的组成方式。
表5:
补充目标标签 | 补充目标索引 | 补充偏移值 |
E[X+ΔX+A+Y+ΔY+B-1:N] | E[N-1:X] | E[X-1:0] |
根据表5,控制单元320可将第一像素PXL1’于外部存储器EMEM的地址E的X个最低有效位E[X-1:0]作为所欲读取的像素的补充偏移值,以与总线BUS0的硬件相配合。此外,控制单元320可根据所第一像素PXL1’的第一地址E的第N个至第X+1个最低有效位E[N-1:X]作为第一像素PXL1’的补充目标索引,并可根据第一像素PXL1’的第一地址E的第(X+ΔX+A+Y+ΔY+B)个至第N+1个最低有效位E[X+ΔX+A+Y+ΔY+B-1:N]作为第一像素PXL1’的补充目标标签,并依此判断第一像素PXL1’的压缩后影像数据是否储存于补充对应高速缓存行中。
在图7的实施例中,N为7,因此第一像素PXL1’的补充目标索引即为其外部存储器EMEM的地址E的第7至第6个最低有效位E[6:5],而可能会对应至4个补充高速缓存行ACL0至ACL3的其中之一,而第一像素PXL1’的补充目标标签即为其于外部存储器EMEM的第一地址E的第24至第8个最低有效位E[23:7]。
若第一像素PXL1’的补充目标索引E[6:5]为“00”并对应至补充高速缓存行ACL0,亦即ACL0为对应于补充目标索引“00”的补充对应高速缓存行,则控制单元320可进一步比较补充高速缓存行ACL0的补充对应生效位及补充对应标签。若补充对应高速缓存行ACL0的补充对应生效位被标记为已生效,且补充对应高速缓存行ACL0的补充对应标签与第一像素PXL1’的补充目标标签E[23:7]相同时,控制单元320会根据第一像素PXL1’的补充偏移值E[4:0],自补充对应高速缓存行ACL0中读取第一像素PXL1’的压缩后影像数据。
反之,当补充对应高速缓存行ACL0的补充对应生效位被标记为无效,或补充对应高速缓存行ACL0的补充对应标签与第一像素PXL1’的补充目标标签相异时,则控制单元320可自外部存储器EMEM读取其压缩后影像数据,接着可根据第一像素PXL1’的补充目标索引E[6:5]及补充目标标签E[23:7]将其压缩后影像数据储存至补充对应高速缓存行ACL0,并可更新补充对应高速缓存行ACL0的补充对应标签,及将补充对应高速缓存行ACL0的补充对应生效位标记为已生效。
由于在此实施例中,影像瓦块IT(0,0)的影像区块IB(0,0)的像素P451至P511的压缩后影像数据以及影像瓦块IT(0,0)的影像区块IB(1,0)的像素P0至P60的压缩后影像数据在外部存储器EMEM中为连续存放的32个字节数据,因此影像瓦块IT(0,0)的影像区块IB(0,0)的像素P451至P511及影像瓦块IT(0,0)的影像区块IB(1,0)的像素P0至P60的补充目标索引及补充目标标签皆相同,而在补充对应高速缓存行ACL0中已存放了第一像素PXL1’,亦即影像瓦块IT(0,0)的影像区块IB(1,0)的像素P0,的压缩后影像数据的情况下,不论下一次控制单元320是欲读取影像瓦块IT(0,0)的影像区块IB(1,0)的像素P0至P60或影像瓦块IT(0,0)的影像区块IB(0,0)的像素P451至P511,都不会发生高速缓存错失。也就是说,透过补充高速缓存行ACL0至ACL3,高速缓存存取系统300即能够有效的减少自外部存储器EMEM读取像素影像数据的次数。
此外,一般而言,位于影像区块中最后水平列的像素(例如为影像区块中的像素P480至P511)有较大的机率会与下一个相邻的影像区块中最先水平列的像素(例如为下一影像区块中的像素P0至P31)被存放在相同的高速缓存行中,因此在本发明的部分实施例中,也可以限定控制单元320只有在所欲读取的像素是位于其影像区块的最后水平列或最先水平列的情况下,才进一步根据表5的内容产生所欲读取的像素的补充目标索引,并对补充高速缓存行ACL0至ACL3的补充索引进行比对。如此一来,补充高速缓存行即有较大的机率会用来存放不同影像区块的像素的压缩后影像数据,进而能够更加有效地利用补充高速缓存行来减少前述的高速缓存错失的情况。
在本发明的部分实施例中,由于单一高速缓存行同时存放不同影像区块的像素的压缩后影像数据的情况一般仍会比单一高速缓存行仅存放相同影像区块的像素的压缩后影像数据的情况来得少发生,因此补充高速缓存行的数量可少于高速缓存行的数量。
换言之,控制单元320根据表5所产生的像素的补充目标标签的总位数可小于根据表2所产生的像素的目标标签的总位数。实务上,X为4而N为6时,亦即高速缓存310仅包含两条补充高速缓存行时,即已能够有效地减少前述的高速缓存错失的情况,而无须过度地增设补充高速缓存行,亦可避免造成硬件资源的负担。
综上所述,本发明的实施例所提供的存取高速缓存的方法及高速缓存存取系统可将所欲读取的像素于原始画面中的平面坐标信息加入其目标索引中,因此可将相同影像瓦块中的像素存放在相异的高速缓存行中,而减少相邻像素间彼此竞争相同高速缓存行的机会,进而提高高速缓存命中的机率。此外,本发明的实施例所提供的存取高速缓存的方法及高速缓存存取系统还可直接透过各像素于外部存储器的地址来建立其补充目标索引,并利用补充高速缓存行存放相邻影像区块的像素的压缩后影像数据,进而能够更加有效地提升高速缓存命中的机率。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求书所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (12)
1.一种高速缓存存取系统,包含:
一高速缓存,包含多个高速缓存行,该些高速缓存行对应于一原始画面的2A x 2B个影像瓦块,每一影像瓦块包含2ΔX x 2ΔY个区块,每一影像区块包含2X x 2Y个像素;及
一控制单元,耦接于该高速缓存,用以在响应于读取一第一影像区块的一第一像素的压缩后影像数据的请求时,根据该第一像素于该原始画面的一水平坐标的(X+ΔX)个最低有效位、该第一像素于该原始画面的一垂直坐标的(Y+ΔY)个最低有效位、该第一像素对应于一外部存储器的一第一地址及该第一影像区块的一第一起始像素对应于该外部存储器的一第一起始地址,产生该第一像素于该高速缓存的一目标索引,根据至少该第一像素的该水平坐标的A个最高有效位及该第一像素的该垂直坐标的B个最高有效位,产生该第一像素的一目标标签,以及比较该高速缓存中对应于该目标索引的一对应高速缓存行的一对应标签及该第一像素的该目标标签;
其中:
A、B、X、Y、ΔX及ΔY为自然数;及
该原始画面的多个像素的压缩后影像数据以影像区块为单位,依序将每一影像瓦块中的该2ΔX x 2ΔY个影像区块中的像素以该原始画面的一水平方向的次序编码以储存于该外部存储器。
2.如权利要求1所述的高速缓存存取系统,其特征在于,该控制单元另用以当该对应高速缓存行的一对应生效位被标记为已生效,且该对应高速缓存行的该对应标签与该第一像素的该目标标签相同时,根据该第一像素的一目标偏移值,自该对应高速缓存行中读取该第一像素的压缩后影像数据。
3.如权利要求2所述的高速缓存存取系统,其特征在于:
该目标偏移值为该第一像素的该水平坐标的X个最低位的值;及
该控制单元将该第一地址与该第一起始地址的差值的第(X+Y)至第(X+1)个最低有效位、该水平坐标的第(X+ΔX)至第(X+1)个最低有效位及该垂直坐标的第(Y+ΔY)至第(Y+1)个最低有效位组合成该第一像素的该目标索引。
4.如权利要求1至3中任一项所述的高速缓存存取系统,其特征在于:
该控制单元另用以响应于读取与该第一影像区块相邻的一第二影像区块的一第二像素的压缩后影像数据的请求,根据该第二像素于该原始画面的一水平坐标的(X+ΔX)个最低有效位、该第二像素于该原始画面的一垂直坐标的(Y+ΔY)个最低有效位、该第二像素对应于该外部存储器的一第二地址、该第二影像区块的一第二起始像素对应于该外部存储器的一第二起始地址,产生该第二像素于该高速缓存的一目标索引;及
该第一像素的该目标索引及该第二像素的该目标索引的组合方式相异。
5.如权利要求1所述的高速缓存存取系统,其特征在于:
该高速缓存另包含至少一补充高速缓存行;
该控制单元另用以当该对应高速缓存行的一对应生效位被标记为无效,或
该对应高速缓存行的该对应标签与该第一像素的该目标标签相异时:
根据该第一像素的该第一地址产生该第一像素的一补充目标索引;
根据至少该第一像素的该第一地址,产生该第一像素的一补充目标标签;及
比较该至少一补充高速缓存行中对应于该补充目标索引的一补充对应高速缓存行的一补充对应标签及该第一像素的该补充目标标签。
6.如权利要求1所述的高速缓存存取系统,其特征在于:
该高速缓存另包含至少一补充高速缓存行;
该控制单元另用以当该对应高速缓存行的一对应生效位被标记为无效,或该对应高速缓存行的该对应标签与该第一像素的该目标标签相异时:
若该第一像素位于该第一影像区块的一最后水平列或一最先水平列,则根据该第一像素的该第一地址产生该第一像素一补充目标索引;及
根据至少该第一像素的该第一地址,产生该第一像素的一补充目标标签;及
比较该至少一补充高速缓存行中对应于该补充目标索引的一补充对应高速缓存行的一补充对应标签及该第一像素的该补充目标标签。
7.如权利要求5或6所述的高速缓存存取系统,其特征在于,该控制单元另用以当该补充对应高速缓存行的一补充对应生效位被标记为已生效,且该补充对应高速缓存行的该补充对应标签与该第一像素的该补充目标标签相同时,根据该第一像素的一补充偏移值,自该补充对应高速缓存行中读取该第一像素的压缩后影像数据。
8.如权利要求7所述的高速缓存存取系统,其特征在于,该补充偏移值为该第一像素的该第一地址的X个最低有效位的值。
9.如权利要求7所述的高速缓存存取系统,其特征在于,该第一像素的该补充目标索引的一总位数小于该第一像素的该目标索引的一总位数。
10.如权利要求5或6所述的高速缓存存取系统,其特征在于,该控制单元另用以当该补充对应高速缓存行的一补充对应生效位被标记为无效,或该补充对应高速缓存行的一补充对应标签与该补充目标标签相异时:
根据该第一像素的该第一地址自该外部存储器读取该第一像素的压缩后影像数据;
根据该第一像素的该补充目标索引及该补充目标标签将该第一像素的压缩后影像数据储存至该补充对应高速缓存行;及
将该补充对应高速缓存行的该补充对应生效位标记为已生效。
11.如权利要求1所述的高速缓存存取系统,其特征在于,该控制单元另用以当该对应高速缓存行的一对应生效位被标记为无效,或该该对应高速缓存行的该对应标签与该目标标签相异时:
根据该第一像素的该第一地址自该外部存储器读取该第一像素的压缩后影像数据;
根据该第一像素的该目标索引及该目标标签将该第一像素的压缩后影像数据储存至该对应高速缓存行;及
将该对应高速缓存行的该对应生效位标记为已生效。
12.如权利要求1所述的高速缓存存取系统,其特征在于,该控制单元将该第一像素的该水平坐标的A个最高有效位、该第一像素的该垂直坐标的B个最高有效位及一画面编号组合成该第一像素的该目标标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810841236.6A CN110769273A (zh) | 2018-07-27 | 2018-07-27 | 高速缓存存取系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810841236.6A CN110769273A (zh) | 2018-07-27 | 2018-07-27 | 高速缓存存取系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110769273A true CN110769273A (zh) | 2020-02-07 |
Family
ID=69327556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810841236.6A Pending CN110769273A (zh) | 2018-07-27 | 2018-07-27 | 高速缓存存取系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110769273A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5561780A (en) * | 1993-12-30 | 1996-10-01 | Intel Corporation | Method and apparatus for combining uncacheable write data into cache-line-sized write buffers |
CN103279430A (zh) * | 2012-07-27 | 2013-09-04 | 中南大学 | 图形处理单元中的缓存索引映射方法及装置 |
CN103473183A (zh) * | 2012-06-06 | 2013-12-25 | 英特尔移动通信有限责任公司 | 有效高速缓存预加载 |
CN104516821A (zh) * | 2013-09-29 | 2015-04-15 | 晨星半导体股份有限公司 | 存储器管理方法及存储器管理装置 |
CN104731519A (zh) * | 2013-12-20 | 2015-06-24 | 晨星半导体股份有限公司 | 快取存储器管理装置及应用该快取存储器管理装置的动态影像系统及方法 |
CN107071494A (zh) * | 2017-05-09 | 2017-08-18 | 珠海市杰理科技股份有限公司 | 视频图像帧的二进制语法元素的生成方法和系统 |
CN107818053A (zh) * | 2016-09-13 | 2018-03-20 | 晶心科技股份有限公司 | 用于存取高速缓存的方法与装置 |
US20180181491A1 (en) * | 2016-12-22 | 2018-06-28 | Apple Inc. | Targeted cache flushing |
-
2018
- 2018-07-27 CN CN201810841236.6A patent/CN110769273A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5561780A (en) * | 1993-12-30 | 1996-10-01 | Intel Corporation | Method and apparatus for combining uncacheable write data into cache-line-sized write buffers |
CN103473183A (zh) * | 2012-06-06 | 2013-12-25 | 英特尔移动通信有限责任公司 | 有效高速缓存预加载 |
CN103279430A (zh) * | 2012-07-27 | 2013-09-04 | 中南大学 | 图形处理单元中的缓存索引映射方法及装置 |
CN104516821A (zh) * | 2013-09-29 | 2015-04-15 | 晨星半导体股份有限公司 | 存储器管理方法及存储器管理装置 |
CN104731519A (zh) * | 2013-12-20 | 2015-06-24 | 晨星半导体股份有限公司 | 快取存储器管理装置及应用该快取存储器管理装置的动态影像系统及方法 |
CN107818053A (zh) * | 2016-09-13 | 2018-03-20 | 晶心科技股份有限公司 | 用于存取高速缓存的方法与装置 |
US20180181491A1 (en) * | 2016-12-22 | 2018-06-28 | Apple Inc. | Targeted cache flushing |
CN107071494A (zh) * | 2017-05-09 | 2017-08-18 | 珠海市杰理科技股份有限公司 | 视频图像帧的二进制语法元素的生成方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6825848B1 (en) | Synchronized two-level graphics processing cache | |
US6381668B1 (en) | Address mapping for system memory | |
US5706461A (en) | Method and apparatus for implementing virtual memory having multiple selected page sizes | |
JP3599352B2 (ja) | フレキシブルなn−ウェイ・メモリ・インターリーブ方式 | |
JP5039334B2 (ja) | キャッシュメモリ制御方法、及び装置 | |
JPS63231550A (ja) | 多重仮想空間制御方式 | |
US11216371B2 (en) | Cache memory and method for controlling the same | |
US10691608B2 (en) | Memory device accessed in consideration of data locality and electronic system including the same | |
US20190251032A1 (en) | Systems and methods for addressing a cache with split-indexes | |
US6453380B1 (en) | Address mapping for configurable memory system | |
US6091428A (en) | Frame buffer memory system for reducing page misses when rendering with color and Z buffers | |
KR101412392B1 (ko) | 다중-모드 액세스가능 저장 시설 | |
US7401177B2 (en) | Data storage device, data storage control apparatus, data storage control method, and data storage control program | |
US7944452B1 (en) | Methods and systems for reusing memory addresses in a graphics system | |
CN110769273A (zh) | 高速缓存存取系统 | |
US20070183510A1 (en) | Method and apparatus for decoding video that alternately store lines of picture in pixel units and method of storing reference picture | |
CN107797757B (zh) | 影像处理系统中的快取存储器管理方法及装置 | |
US7493463B2 (en) | Code size reduction method through multiple load/store instructions | |
JPH0553909A (ja) | 画像データ処理におけるキヤツシユメモリ制御方式 | |
US20180052773A1 (en) | Memory managing method and apparatus associated with cache in image processing system | |
US11341045B2 (en) | Memory apparatus and method for processing data using the same | |
TW202006547A (zh) | 快取記憶體存取系統 | |
US9794580B2 (en) | Cache management device, and motion picture system and method using the same | |
US6125437A (en) | Virtual linear frame buffer addressing method and apparatus | |
US6674441B1 (en) | Method and apparatus for improving performance of an accelerated graphics port (AGP) device |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200207 |