CN101340569A - 高速缓存及其数据处理方法 - Google Patents
高速缓存及其数据处理方法 Download PDFInfo
- Publication number
- CN101340569A CN101340569A CNA2007101260627A CN200710126062A CN101340569A CN 101340569 A CN101340569 A CN 101340569A CN A2007101260627 A CNA2007101260627 A CN A2007101260627A CN 200710126062 A CN200710126062 A CN 200710126062A CN 101340569 A CN101340569 A CN 101340569A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- speed cache
- random access
- access 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.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种高速缓存,供一影像译码器在一动态存取存储器读取数据,该高速缓存包括一命中比较单元、一合并模块及一指令队列模块。命中比较单元接收并处理一读动态随机存取存储器的请求;若该请求命中高速缓存,则将该请求相关信息传送至指令队列模块,以在高速缓存中读取数据。若该请求未命中高速缓存,则将该请求传送至合并模块合并,并在合并后传送至指令队列模块,以在动态随机存取存储器中读取数据。本发明可提升影像译码器读取在动态存取存储器读取数据的速度、降低总的存储带宽,并提高访问动态随机存取存储器的效率。
Description
技术领域
本发明涉及一种高速缓存及其数据处理方法,特别是一种用于影像处理装置的高速缓存及其数据处理方法。
背景技术
影像处理标准H.264的影像译码器对外部动态随机存取存储器的数据访问量与标准MPEG2相比,增加了好几倍。在H.264的影像译码器,访问动态随机存取存储器的数据量最大的是运动补偿部分。例如,在进行图像重构时,读取的数据量以每个宏块为单位读取的数据量来说,在最差的情况下(worstcase)情况下,是通常一个宏块数据量的9到10倍。因此,对存储器的带宽要求也大为增加。
在常见的支持H.264译码芯片的芯片系统(System on Chip,SoC)系统中,不得不采用两条以上的存储器信道(memory channel),来满足整个系统对带宽的要求,因而相应的产品成本也会上升。
然而,现有技术中也有适用一高速缓存来暂存影像译码器所需的影像数据的方法。其中,当影像译码器需要读取数据时,若高速缓存中有影像译码器所需的数据时,便在高速缓存中读取;若高速缓存中没有影像译码器需要读取的数据,则再去动态随机存取存储器中读取。
但是,现有技术对于配合高速缓存在动态随机存取存储器读取影像数据的技术,往往会存在影像译码器无法实际从高速缓存中读取到有效的数据,以及读取动态随机存取存储器的效率不高等缺点,无法有效发挥影像数据预读取的功效。
发明内容
本发明的目的在于,通过分析H.264影像译码器数据访问的特点,提供一种高效率的数据高速缓存与其数据处理方法。通过本发明的高速缓存及其数据处理方法,可以有效的提高高速缓存中数据的命中率及访问动态随机存取存储器的效率,对比于从外部动态随机存取存储器读数据,速度会更快,从而可加快系统译码的速度,同时,本发明还可以降低生产成本,提高产品的竞争力。
为了实现上述目的,本发明提供了一种高速缓存,用于暂存一动态存取存储器的数据,供一影像译码器读取,该高速缓存包括一命中比较单元,接收一读动态存取存储器请求,用于比较判断该读动态存取存储器请求是一命中高速缓存的读动态存取存储器请求,还是一未命中高速缓存的读动态存取存储器请求;一合并模块,连接至该命中比较单元,接收及合并该未命中高速缓存的读动态存取存储器请求;一指令队列模块,连接至该命中比较单元及该合并模块,根据命中高速缓存的读动态存取存储器请求及合并后的该未命中高速缓存的读动态存取存储器请求,读取该动态存取存储器的数据及该高速缓存中的数据。
此外,本发明还提供了一种高速缓存的数据处理方法,供一影像译码器在一动态随机存取存储器中读取数据,该方法包括以下步骤:首先,接收该影像译码器送来的一读动态随机存取存储器请求,然后,通过一命中比较单元判断该读动态随机存取存储器请求是否命中该高速缓存。若比较结果为命中,则将该读动态随机存取存储器请求的信息传送写入一指令队列模块。若比较结果为未命中,则将该读动态随机存取存储器请求的信息传送至一合并模块,由该合并模块将该未命中的读动态随机存取存储器请求合并。在合并模块合并该未命中的读动态随机存取存储器请求后,将合并后的信息写入该指令队列模块。最后,该指令接收模块根据该命中比较单元及该合并模块所写入的信息,从该动态随机存取存储器或该高速缓存中读取该读动态随机存取存储器请求的数据。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为本发明高速缓存的功能方块图;
图2为本发明指令队列模块的功能方块图;
图3为第一级缓存指令队列示意图;
图4为第二级缓存指令队列示意图;
图5为多指令流出方式的时序示意图;
图6为本发明高速缓存数据处理方法的流程图。
其中,附图标记:
1-高速缓存
2-运动补偿单元
3-动态随机存取存储器
10-命中比较单元
101-命中比较模块
102-命中地址产生模块
20-合并模块
30-指令队列模块
301-第一级缓存指令队列
302-第二级缓存指令队列
303-指令控制单元
304-地址产生单元
40-第一协议控制模块
50-第二协议控制模块
60-第一暂存模块控制单元
70-第一数据暂存模块
80-地址暂存模块
90-第二数据暂存模块
100-第二暂存模块控制单元
110-数据选择模块
READ_CACHE_QUE-读第二数据暂存模块的指令队列
WRITE_CACHE_QUE-写第二数据暂存模块的指令队列
READ_BUF_QUE-读第一数据暂存模块的指令队列
WRITE_BUF_QUE-写第一数据暂存模块的指令队列
READ_DRAM_QUE-读动态随机存取存储器的指令队列
Read Cache-读第二数据暂存模块的指令
Write Cache-写第二数据暂存模块的指令
Read BUF-读第一数据暂存模块的指令
Write BUF-写第一数据暂存模块的指令
Read Dram-读动态随机存取存储器的指令
CACHE_CLK-高速缓存的时钟信号
READ_DRAM,RDD-读动态随机存取存储器
WRITE_CACHE,RDC-写第二数据暂存模块
WRITE_BUF,WRB-写第一数据暂存模块
READ_BUF,RDB-读第一数据暂存模块
WRITE_CACHE,WRC-写第二数据暂存模块
DATA2CIDEO_VALD-数据撷取信号
DATA2VIDEO-数据传送
具体实施方式
在H.264影像译码器(Video Decoder)中,访问数据量最大的是运动补偿部分。针对许多数据是可以重复利用的及可以预先读回的这一特性,我们可以将这些需要重复利用或预先读回的数据,保存在高速缓存(Cache)中。
同时,需要从动态随机存取存储器(DRAM)中读取数据的请求(没有命中高速缓存的读请求),可依据动态随机存取存储器中数据可以顺序(wraplinear或sequential)方式读取的特性,把没有命中高速缓存而需从动态随机存取存储器中读取数据的请求进行合并。从而可通过增加每个访问动态随机存取存储器的数据长度(BurstLength),来提高访问动态随机存取存储器的效率。
在H.264影像译码器的高速缓存的设计中,为了降低读外部动态随机存取存储器的响应延迟时间(Latency)对影像译码器译码速度的影响,提高高速缓存的效率。本发明通过高速缓存内部的指令机,在高速缓存内部的某种状态下,每个时钟周期发送多个指令的方式,将读动态随机存取存储器的响应延迟时间(latency)隐藏在读内部高速缓存的操作中。从而提高系统的效率,加快译码的速度。
再者,在设计高速缓存的时候,一方面为了节约面积,我们用静态随机存取存储器(SRAM)来保存每笔需要更新到高速缓存中的数据,同时,用静态随机存取存储器保存该数据对应在动态随机存取存储器中的地址。因此,在进行高速缓存数据命中比较的时候,只要将该读地址与动态随机存取存储器中所有保存的有效地址比较一遍,就可以知道该读请求有没有命中高速缓存。进而,本发明采用了动态调整高速缓存中数据的有效性的方法,以提高高速缓存中数据的命中率。
以下将进一步说明本发明的上述特点及工作原理。
请参阅图1,此为本发明高速缓存的功能方块图。如图所示,影像译码器的运动补偿单元2通过本发明的高速缓存1从动态随机存取存储器3中读取数据。本发明的高速缓存1的主要架构包括一高速缓存命中比较单元10、一合并模块20及一指令队列模块30。其中,高速缓存命中比较单元10包括一命中比较模块101及一命中地址产生模块102。另外,本发明的高速缓存1还包括一第一协议控制模块40、第二协议控制模块50、第一暂存模块控制单元60、第一数据暂存模块70、地址暂存模块80、第二数据暂存模块90、第二暂存模块控制单元100及数据选择模块110。其中,第一数据暂存模块70用于暂存由动态随机存取存储器3读回的数据,第二数据暂存模块90为用于保存高速缓存1的数据的模块。
接下来,介绍本发明高速缓存1中各模块的功能及彼此的关系。高速缓存1利用第一协议控制模块40连接至影像译码器的运动补偿单元2。第一协议控制模块40用于高速缓存1与运动补偿单元2间接口协议的控制,通过内部存储器总线(Internal memory bus)连接至运动补偿单元2。运动补偿单元2传送一读动态随机存取存储器3的请求,经第一协议控制模块40到命中比较单元10。命中比较单元10的命中比较模块101接收该读动态随机存取存储器3的请求,并依照每一请求发送的顺序进行编码,每一请求对应一个编码序号索引(index)。索引的位宽由后级指令队列模块30中的队列深度决定,因为该编码序号索引将作为指令队列的地址指针。接着,命中比较模块101便将编码后的每个请求进行高速缓存1命中比较,该命中比较是一个多级的流水(pipe)过程,并采用动态调整数据的有效性的方法,以提高高速缓存1中数据的命中率。
所谓动态调整数据的有效性的方法,其特点在于,在流水(pipe)命中比较过程中,有些保存在高速缓存1中的数据是无效的,而有些还在动态随机存取存储器3中将要被读回或正在读回的数据却是有效的。
在高速缓存1数据更新机制上,通过分析影像译码器运动补偿部分图像重构读取数据“向右、向下”的特性、图像重构划分的边界数据可以重复利用以及可以部分预读取的特点,我们采用时间顺序的原则,即最早保存在高速缓存1中的数据最先被覆盖的方法,来更新数据。同时,采用16级的流水(pipe)来进行数据命中比较,在这16级流水(pipe)命中比较的时候,在每一级比较中同样遵循时间顺序的原则,即每一级比较不仅与从静态随机存取存储器(如图1地址暂存模块80)中读出来的地址比较,同时还要与在这16级流水(pipe)中,在当前这一级流水(pipe)的前面所有流水(pipe)中将要被写进静态随机存取存储器中保存的动态随机存取存储器3的地址进行比较。也就是将这16级流水(pipe)中有可能将被写进高速缓存1的数据的地址,也参与命中比较,而这些数据还是存在动态随机存取存储器3中没有被读回来的。每一级命中比较从静态随机存取存储器读出来的地址,还要看它是否将要被排在它前面的可能写进高速缓存的,但是还在这16级流水(pipe)中的请求所覆盖,若将被覆盖则该命中无效,即,有些已经存在高速缓存中的数据是无效的。通过这种动态地调整每一级中参加比较的地址的有效性(也就是数据的有效性)来确保参与比较的有效地址是最近被更新的,以提高高速缓存1的命中率。当然,若采用4级、8级的流水(pipe)命中比较方法,也可以采用这种动态调整的方式。
若比较结果该读请求有命中,表示该请求所要读的数据可从高速缓存1中读取。接着,命中比较单元10便传送该命中请求的相关信息给指令队列模块30及命中地址产生模块102;同时由命中地址产生模块102产生命中高速缓存1的地址及命中标志,并将命中高速缓存1的地址及命中标志传通过内部流水(pipe)写入指令队列模块30。
若是比较结果该读请求没有命中,表示必须从动态随机存取存储器3中读取。则命中比较单元10将读动态随机存取存储器3的请求传送至合并模块20。合并模块20会将每一个没命中高速缓存1的读动态随机存取存储器3的请求进行合并,并将合并后的相关信息送入指令队列模块30。
上述合并模块20可利用动态随机存取存储器3的存储数据可以以顺序(wrap linear或sequential)方式读取的特性,将没命中高速缓存1的读动态随机存取存储器3的请求进行合并,再将合并后的相关信息送入指令队列模块30,以从动态随机存取存储器3读取数据。增加每个访问动态随机存取存储器的数据长度(BurstLength),可以提高访问动态随机存取存储器3的效率。以每个访问动态随机存取存储器的数据长度(BurstLength)为4举例,请同时请参考表一所示:
BurstLength | 首地址的启始位 | 数据读回的顺序 |
4 | 00 | 0,1,2,3 |
4 | 01 | 1,2,3,0 |
4 | 10 | 2,3,0,1 |
4 | 11 | 3,0,1,2 |
(表一)
表一表示动态随机存取存储器3的存储数据可以以顺序(wrap linear或sequential)方式读取的特性,与首地址及每个访问动态随机存取存储器的数据长度(BurstLength)间的关系。假设我们首先要读数据“2”,然后又有某些请求要读数据“3”、数据“0”及数据“1”,那我们就可以利用表一所示的特性,将这四笔不连续的读请求合并成一笔读请求,只要令首地址的起始位为“10”,且数据长度(BurstLength)为4就可以了。数据回来的顺序是按“2、3、0、1”的顺序;这样向动态随机存取存储器3发送的请求就可以从四次减少到一次,数据总线上传输的数据也可以连续起来,从而可以提高访问动态随机存取存储器3的效率。
因此,数据长度(BurstLength)的值就是该读请求需要的数据个数,本发明的数据长度(BurstLength)的值并不限定于4;在总的数据量一定的情况下,访问数据长度(BurstLength)的值越大(当然不能超过系统规定的最大值),则请求的次数便越少,访问动态随机存取存储器3的效率就越高。
接着,请参阅图2,此为本发明指令队列模块的功能方块图。通过前述的说明可知,指令队列模块30接收命中比较模块101、命中地址产生模块102及合并模块20的写入信号。指令队列模块30中包括第一级缓存指令队列301、第二级缓存指令队列302、指令控制单元303及地址产生单元304。其中,指令控制单元303用于第一级缓存指令队列301及第二级缓存指令队列302中相关指令的控制。第一级缓存指令队列301还包括有多个队列,按照运动补偿单元2读取数据的正常顺序,分别保存着每个读动态随机存取存储器3请求的数据长度(BurstLength)值以及对应的首地址、读第二数据暂存模块90的标志以及地址、读写第一数据暂存模块70的标志以及地址。然后,第二级缓存的指令队列302及地址产生单元304根据这些队列中保存的信息,分别产生相关指令以及与指令相关的地址,包括读动态随机存取存储器3的指令及地址与每笔访问动态随机存取存储器的数据长度(BurstLength,BL)值、读第二数据暂存模块90的指令及地址、写第二数据暂存模块90的指令及地址、读第一数据暂存模块70的指令及地址及写第一数据暂存模块70的指令及地址等指令。
上述指令通过第二级缓存的指令队列302发出,具有两个作用,其一是指令队列模块30可以以乱序的方式向动态随机存取存储器3发送经过合并以后的请求,提高访问速度。其从动态随机存取存储器3读回的数据在通过第二协议控制模块50写进内部的第一数据暂存模块70时,按照送给高速缓存1的正确顺序重排。其二是这些指令在某些特定的时钟周期里,可以以每时钟周期多指令方式流出,从而提高系统效率。
接着,进一步说明通过第二级缓存指令队列302发出指令的作用。为了尽量减少高速缓存1读取动态随机存取存储器3的响应延迟时间(latency)对译码速度的影响。当高速缓存1内部的指令队列模块30发现当前有M笔数据需要从高速缓存1中读取时,指令队列模块30可以将随后第M+1或第M+2或第M+N笔读动态随机存取存储器3的指令与地址,与当前的读高速缓存1的指令与地址,在一个时钟周期内发送出去。当M个读高速缓存1的操作完成后,若M比较大,即读高速缓存1数据比较多的时候,第M+1个或第M+2或第M+N个读动态随机存取存储器3的数据可能已经读回来,按排好的顺序放在第一数据暂存模块70中了,这样就可以不用等待。紧接着,将排好顺序的数据,一方面送给影像译码器(图中未示出)译码用,另外一方面也可以同时将要更新到高速缓存1中的数据写进高速缓存1,即读第一数据暂存模块70的命令及地址与写高速缓存1的指令及地址等指令与地址也可以在同一个时钟周期产生。若M比较小,即读高速缓存1的数据比较少的时候,读动态随机存取存储器3的响应延迟时间(latency)也有部分隐藏在这些读高速缓存1的操作中。因此,采用这种可以在一个时钟周期发送多条指令的方式,可以将读取外部动态随机存取存储器3的响应延迟时间(latency)完全或者部分隐藏在读取内部的高速缓存1的操作中。
接着,用一较具体的实施例来说明上述在一个时钟周期发送多条指令的方式及将读取外部动态随机存取存储器3的响应延迟时间(latency)完全或者部分隐藏在读取内部的高速缓存1的操作中的方法。请参阅图1及图3,图3为第一级缓存指令队列示意图。在系统的某个时候,假定第一级缓存指令队列301中的指令顺序如图3所示。队列缓冲器(buffer)深度为32级,其中,前28条是读高速缓存1的指令(Read Cache),后4条是读动态随机存取存储器3的指令(Read Dram),每条读动态随机存取存储器3的指令的每个访问动态随机存取存储器的数据长度(BurstLength)为2个64位宽的数据(也可以是1个或其它系统规定的个数)。这些数据读回来后,按重新排好的顺序写进内部的缓冲器(第一数据暂存模块70),然后,按顺序读出来送给影像译码器(图中未示出)译码用,以及更新到高速缓存1的第二数据暂存模块90中(第二数据暂存模块90为保存高速缓存1的数据的模块)。所以每一条ReadDram指令,当数据读回来后,会对应两条写第一数据暂存模块(Write BUF)、两条读第一数据暂存模块(Read BUF)、两条写第二数据暂存模块(WriteCache)指令。
接着,请参阅图4,此为第二级缓存指令队列示意图。Read Cache、ReadDram、Write BUF、Read BUF及Write Cache的指令经过第二级缓存指令队列302处理以后,暂存于各指令队列,如图4读第二数据暂存模块的指令队列(READ_CACHE_QUE)、写第二数据暂存模块的指令队列(WRITE_CACHE_QUE)、读第一数据暂存模块的指令队列(READ_BUF_QUE)、写第一数据暂存模块的指令队列(WRITE_BUF_QUE)及读动态随机存取存储器的指令队列(READ_DRAM_QUE)所示。而图4中的各条指令,在适当的时候,某些指令是可以在同一个时钟内读出来执行的。接着,请再参阅图5,此为多指令流出方式的时序示意图。当四条Read Dram指令和Read Cache指令同时发送出去后,假定26个时钟周期后,第一个读Dram的数据已经回来了,这个时候,指令机继续发送Read Cache指令(因为总共有28条Read Cache指令,也就是有28个64位宽数据(QWs)需要从高速缓存1的第二数据暂存模块90中读)。同时,也会执行Write BUF指令,将从动态随机存取存储器3读回的数据写进第一数据暂存模块70。所以,读动态随机存取存储器3的响应延迟时间(latency)就隐藏在读高速缓存1的操作中。当28条Read Cache指令执行完后,马上执行Read BUF与Write Cache指令,将数据从第一数据暂存模块70读出来送给影像译码器(图中未示出),并同时更新到第二数据暂存模块90中。当然,这时还会同时执行Write BUF指令,继续将从动态随机存取存储器3读回的数据按照排好的顺序写进第一数据暂存模块70。
所以,通过上述方法,可实现在同一个时钟周期内发送多条指令,将读动态随机存取存储器3的响应延迟时间(latency)隐藏在读高速缓存1的操作中,达到提高高速缓存1效率。
请参阅图6,此为本发明高速缓存数据处理方法的流程图。首先,高速缓存1接收运动补偿单元2传来的读动态随机存取存储器3请求(如图6步骤S601)。接着,由命中比较单元10判断读动态随机存取存储器3请求是否命中高速缓存1(如图6步骤S603)。若读动态随机存取存储器3请求命中高速缓存1,根据命中高速缓存1的读动态随机存取存储器3请求,从高速缓存1中(第二数据暂存模块90)输出读动态随机存取存储器3请求欲读取的数据到运动补偿单元2(如图6步骤S605)。若读动态随机存取存储器3请求未命中高速缓存1,便将读动态随机存取存储器3请求传至合并模块20进行合并(如图6步骤S607)。接着便根据合并的读动态随机存取存储器3请求,从动态随机存取存储器3中读取每个读动态随机存取存储器3请求欲读取的数据,并输出至运动补偿单元2(如图6步骤S609)。
请再次参阅图1,继上述各功能原理的说明后,将针对本发明的高速缓存1中各功能方块间的动作及信号流程进行进一步整体说明。运动补偿单元2通过高速缓存1从动态随机存取存储器3读取数据。高速缓存1通过第一协议控制模块40接收运动补偿单元2所传送过来的读动态随机存取存储器3的请求。接下来,该读请求便传送至命中比较单元10,命中比较单元10依照每一个请求发送的顺序进行编码,并在该读请求被编码后进行比较。若比较结果有命中的读请求,命中比较单元10便分别传送该命中的读请求的相关信息给指令队列模块30及命中地址产生模块102。然后,由命中地址产生模块102产生命中高速缓存1的地址及命中标志,并将命中高速缓存1的地址及命中标志通过内部流水(pipe)写入指令队列模块30。若是比较结果该读请求没有命中,则命中比较单元10将该读请求传送至合并模块20。该合并模块20会将每一个没命中高速缓存1的读动态随机存取存储器3的请求进行合并,并将合并后的相关信息送入指令队列模块30。其中,命中比较单元10的命中比较是一个多级的流水(pipe)过程,并采用动态调整数据的有效性的方法,以提高高速缓存1中数据的命中率。合并模块20可利用动态随机存取存储器中数据可以顺序(wrap linear或sequential)方式读取的特性,将未命中高速缓存1的读动态随机存取存储器3的请求进行合并,从而增加每个访问动态随机存取存储器的数据长度(BurstLength),进而提高访问动态随机存取存储器3的效率。
指令队列模块30接收了命中比较模块101、命中地址产生模块102及合并模块20所传来的相关信息,然后分别输出读动态随机存取存储器3的指令及地址与每个访问动态随机存取存储器的数据长度(BurstLength)、读写第一数据暂存模块70的指令及地址及读写第二数据暂存模块90的指令及地址的相关指令到第二协议控制模块50、第一暂存模块控制单元60及第二暂存模块控制单元100。第二协议控制模块50接收读动态随机存取存储器3的指令及地址与每个访问动态随机存取存储器的数据长度(BurstLength)后,便从动态随机存取存储器3读取数据,并将读回的数据暂存于第一数据暂存模块70。第一数据暂存模块70连接至第二协议控制模块50、第一数据暂存模块70、第二暂存模块控制单元100及数据选择模块110,根据指令队列模块30所传来的读写第一数据暂存模块70的指令及地址,控制第一数据暂存模块70中数据的写入及读出。第一数据暂存模块70由第二协议控制模块50接收动态随机存取存储器3中的数据后,可将数据传送至数据选择模块110,同时写入第二数据暂存模块90。第二暂存模块控制单元100连接至地址暂存模块80及数据选择模块110,根据指令队列模块30及第一暂存模块控制单元60所传来的信息,控制地址暂存模块80的动作及第二数据暂存模块90中数据的写入及读出。其中,地址暂存模块80用于暂存第二数据暂存模块90中的数据的地址,并提供该数据的地址传送至命中比较单元10,以供命中比较单元10与读动态随机存取存储器3的请求进行命中比较之用。第二暂存模块控制单元100控制,将第二数据暂存模块90中的数据传送至数据选择模块110。接着,数据选择模块110根据第一暂存模块控制单元60及第二暂存模块控制单元100所传来的信息,选择由第一数据暂存模块70或由第二数据暂存模块90输出数据的运动补偿单元2。而数据选择模块110输出的数据的顺序,将依照运动补偿单元2对高速缓存1所发出的读请求的顺序输出。
综上所述,通过本发明的高速缓存及其数据处理方法,可有效提高高速缓存的命中率,使运动补偿单元所需的数据大部分可从高速缓存中读取,并且有效提高访问动态随机存取存储器的效率,从而提升影像译码器的译码速度。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (10)
1、一种高速缓存,供一影像译码器从一动态存取存储器读取数据,其特征在于,包括:
一命中比较单元,接收一读动态存取存储器请求,用于比较判断该读动态存取存储器请求为一命中高速缓存的读动态存取存储器请求还是一未命中高速缓存的读动态存取存储器请求;
一合并模块,连接至该命中比较单元,接收及合并该未命中高速缓存的读动态存取存储器请求;
一指令队列模块,连接至该命中比较单元及该合并模块,根据命中高速缓存的读动态存取存储器请求及合并后的该未命中高速缓存的读动态存取存储器请求,读取该动态存取存储器的数据及该高速缓存中的数据。
2、如权利要求1所述的高速缓存,其特征在于,该命中比较单元还包括:
一命中比较模块,将该读动态存取存储器请求与一暂存在该高速缓存中数据的地址进行比较,并将该命中高速缓存的读动态存取存储器请求的信息传送至该指令队列模块,而未命中高速缓存的读动态存取存储器请求的信息传送至该合并模块合并;
一命中地址产生模块,根据命中比较模块判断该读动态存取存储器请求为一命中高速缓存的读动态存取存储器请求,而产生该命中高速缓存的读动态存取存储器请求的地址,并输出至该指令队列模块。
3、如权利要求1所述的高速缓存,其特征在于,还包括一第一协议控制模块,连接至该影像译码器的一运动补偿单元,控制该高速缓存与该运动补偿单元间接口的协议。
4、如权利要求1所述的高速缓存,其特征在于,该命中比较单元利用多级的流水来比较判断该读动态存取存储器请求为一命中高速缓存的读动态存取存储器请求还是一未命中高速缓存的读动态存取存储器请求。
5、如权利要求1所述的高速缓存,其特征在于,该指令队列模块还包括:
一第一级缓存指令队列,用于暂存该命中比较单元及该合并模块所传来的信息;
一第二级缓存指令队列,根据该第一级缓存指令队列中暂存的信息,输出对应的读写指令;
一地址产生单元,根据该第一级缓存指令队列中暂存的信息,产生对应指令的地址;
一指令控制单元,连接至该第一级缓存指令队列及该第二级缓存指令队列,用于控制第一级缓存指令队列及第二级缓存指令队列中的指令。
6、如权利要求5所述的高速缓存,其特征在于,还包括:
一第二协议控制模块,接收该第二级缓存指令队列输出的一读动态随机存取存储器的指令及地址,以从动态随机存取存储器读取数据;
一第一数据暂存模块,暂存该第二协议控制模块由动态随机存取存储器所读取的数据;
一第一暂存模块控制单元,接收该第二级缓存指令队列输出的一读写第一数据暂存模块的指令及地址,以控制该第一数据暂存模块中暂存的数据的传输;
一第二数据暂存模块,用于暂存该第一数据暂存模块中的数据,为该高速缓存储存数据的模块;
一地址暂存模块,暂存该第二数据暂存模块的数据的地址,并传送至该比较单元;
一第二暂存模块控制单元,接收该第二级缓存指令队列输出的一读写第二数据暂存模块的指令及地址,以控制该第二数据暂存模块中暂存的数据的传输。
7、如权利要求6所述的高速缓存,其特征在于,还包括一数据选择模块,根据该第一暂存模块控制单元及该第二暂存模块控制单元的指令,以输出该第一数据暂存模块及该第二数据暂存模块所传来的数据。
8、一种高速缓存的数据处理方法,供一影像译码器从一动态随机存取存储器中读取数据,其特征在于,包括以下步骤:
接收该影像译码器送来的一读动态随机存取存储器请求;
通过一命中比较单元判断该读动态随机存取存储器请求是否命中该高速缓存,并且将每一该读动态随机存取存储器请求依照发送的顺序进行编码,每个请求对应一个编码序号索引;
若比较结果为命中,则将该读动态随机存取存储器请求的地址信息传送写入一指令队列模块;
若比较结果为未命中,则将该读动态随机存取存储器请求的信息传送至一合并模块,由该合并模块将该未命中的读动态随机存取存储器请求合并;
合并模块合并该未命中的读动态随机存取存储器请求后,将合并后的信息写入该指令队列模块;
该指令队列模块根据该命中比较单元及该合并模块所写入的信息,从该动态随机存取存储器或该高速缓存中读取该读该动态随机存取存储器请求的数据。
9、如权利要求8所述的数据处理方法,其特征在于,该命中比较单元判断该读动态随机存取存储器请求是否命中该高速缓存为一多级流水命中比较过程,而该命中比较单元的多级流水命中比较通过动态调整数据的有效性,来判断该读动态随机存取存储器请求是否命中该高速缓存。
10、如权利要求8所述的数据处理方法,其特征在于,该指令队列模块利用一个时钟周期发送多条指令的方式读取该动态随机存取存储器或该高速缓存中读取该读该动态随机存取存储器请求的数据,并且该指令队列模块将该读动态随机存取存储器的响应延迟时间隐藏在读该高速缓存的动作中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101260627A CN101340569A (zh) | 2007-07-06 | 2007-07-06 | 高速缓存及其数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101260627A CN101340569A (zh) | 2007-07-06 | 2007-07-06 | 高速缓存及其数据处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101340569A true CN101340569A (zh) | 2009-01-07 |
Family
ID=40214501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101260627A Pending CN101340569A (zh) | 2007-07-06 | 2007-07-06 | 高速缓存及其数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101340569A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105190577A (zh) * | 2013-04-30 | 2015-12-23 | 惠普发展公司,有限责任合伙企业 | 合并存储器访问请求 |
CN106919514A (zh) * | 2015-12-24 | 2017-07-04 | 瑞萨电子株式会社 | 半导体装置、数据处理系统以及半导体装置控制方法 |
CN108139973A (zh) * | 2015-09-28 | 2018-06-08 | 伊卡诺斯通信公司 | 减少共享高速缓存请求及防止重复条目 |
CN108701070A (zh) * | 2016-03-31 | 2018-10-23 | 英特尔公司 | 对多级系统存储器的存储器侧高速缓存的容易出错的高速缓存行槽的处理 |
CN109426445A (zh) * | 2017-08-25 | 2019-03-05 | 慧荣科技股份有限公司 | 用以优化数据储存装置的数据储存方法及其数据储存装置 |
CN109857679A (zh) * | 2017-11-30 | 2019-06-07 | 爱思开海力士有限公司 | 存储器控制器、存储器系统以及存储器系统的操作方法 |
CN110058783A (zh) * | 2018-01-17 | 2019-07-26 | 瑞昱半导体股份有限公司 | 暂存存储器处理方法、暂存存储器程序与存储装置 |
CN110456987A (zh) * | 2019-08-06 | 2019-11-15 | 暨南大学 | 一种基于自适应页管理的数据存储磁盘节能方法 |
CN110557369A (zh) * | 2019-07-25 | 2019-12-10 | 中国航天系统科学与工程研究院 | 基于国产操作系统内核态的高速数据处理平台 |
CN112988036A (zh) * | 2019-12-16 | 2021-06-18 | 瑞昱半导体股份有限公司 | 存储器数据存取装置及其方法 |
CN113986001A (zh) * | 2021-10-29 | 2022-01-28 | 深圳市航顺芯片技术研发有限公司 | 芯片及控制方法 |
CN114358179A (zh) * | 2021-12-31 | 2022-04-15 | 海光信息技术股份有限公司 | 处理器的预取训练方法、处理装置、处理器和计算设备 |
CN114721722A (zh) * | 2022-06-06 | 2022-07-08 | 深流微智能科技(深圳)有限公司 | 多级高速缓存系统及电子设备 |
CN115174673A (zh) * | 2022-06-29 | 2022-10-11 | 北京奕斯伟计算技术股份有限公司 | 具备低延迟处理器的数据处理装置、数据处理方法及设备 |
CN116719760A (zh) * | 2023-05-15 | 2023-09-08 | 合芯科技有限公司 | 一种低延迟处理缓存读取请求的方法、设备及存储介质 |
-
2007
- 2007-07-06 CN CNA2007101260627A patent/CN101340569A/zh active Pending
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105190577A (zh) * | 2013-04-30 | 2015-12-23 | 惠普发展公司,有限责任合伙企业 | 合并存储器访问请求 |
CN108139973A (zh) * | 2015-09-28 | 2018-06-08 | 伊卡诺斯通信公司 | 减少共享高速缓存请求及防止重复条目 |
CN106919514A (zh) * | 2015-12-24 | 2017-07-04 | 瑞萨电子株式会社 | 半导体装置、数据处理系统以及半导体装置控制方法 |
CN106919514B (zh) * | 2015-12-24 | 2024-01-02 | 瑞萨电子株式会社 | 半导体装置、数据处理系统以及半导体装置控制方法 |
CN108701070A (zh) * | 2016-03-31 | 2018-10-23 | 英特尔公司 | 对多级系统存储器的存储器侧高速缓存的容易出错的高速缓存行槽的处理 |
CN108701070B (zh) * | 2016-03-31 | 2022-08-12 | 英特尔公司 | 对多级系统存储器的存储器侧高速缓存的容易出错的高速缓存行槽的处理 |
CN109426445B (zh) * | 2017-08-25 | 2022-03-25 | 慧荣科技股份有限公司 | 用以优化数据储存装置的数据储存方法及其数据储存装置 |
CN109426445A (zh) * | 2017-08-25 | 2019-03-05 | 慧荣科技股份有限公司 | 用以优化数据储存装置的数据储存方法及其数据储存装置 |
CN109857679A (zh) * | 2017-11-30 | 2019-06-07 | 爱思开海力士有限公司 | 存储器控制器、存储器系统以及存储器系统的操作方法 |
CN109857679B (zh) * | 2017-11-30 | 2024-03-08 | 爱思开海力士有限公司 | 存储器控制器、存储器系统以及存储器系统的操作方法 |
CN110058783A (zh) * | 2018-01-17 | 2019-07-26 | 瑞昱半导体股份有限公司 | 暂存存储器处理方法、暂存存储器程序与存储装置 |
CN110058783B (zh) * | 2018-01-17 | 2022-04-12 | 瑞昱半导体股份有限公司 | 暂存存储器处理方法、暂存存储器程序与存储装置 |
CN110557369A (zh) * | 2019-07-25 | 2019-12-10 | 中国航天系统科学与工程研究院 | 基于国产操作系统内核态的高速数据处理平台 |
CN110456987A (zh) * | 2019-08-06 | 2019-11-15 | 暨南大学 | 一种基于自适应页管理的数据存储磁盘节能方法 |
CN112988036A (zh) * | 2019-12-16 | 2021-06-18 | 瑞昱半导体股份有限公司 | 存储器数据存取装置及其方法 |
CN113986001A (zh) * | 2021-10-29 | 2022-01-28 | 深圳市航顺芯片技术研发有限公司 | 芯片及控制方法 |
CN114358179A (zh) * | 2021-12-31 | 2022-04-15 | 海光信息技术股份有限公司 | 处理器的预取训练方法、处理装置、处理器和计算设备 |
CN114721722A (zh) * | 2022-06-06 | 2022-07-08 | 深流微智能科技(深圳)有限公司 | 多级高速缓存系统及电子设备 |
CN114721722B (zh) * | 2022-06-06 | 2022-09-02 | 深流微智能科技(深圳)有限公司 | 多级高速缓存系统及电子设备 |
CN115174673A (zh) * | 2022-06-29 | 2022-10-11 | 北京奕斯伟计算技术股份有限公司 | 具备低延迟处理器的数据处理装置、数据处理方法及设备 |
CN115174673B (zh) * | 2022-06-29 | 2023-11-03 | 北京奕斯伟计算技术股份有限公司 | 具备低延迟处理器的数据处理装置、数据处理方法及设备 |
CN116719760A (zh) * | 2023-05-15 | 2023-09-08 | 合芯科技有限公司 | 一种低延迟处理缓存读取请求的方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101340569A (zh) | 高速缓存及其数据处理方法 | |
CN103345368B (zh) | 一种在缓冲存储器中缓存数据的方法 | |
US10042576B2 (en) | Method and apparatus for compressing addresses | |
US20090138663A1 (en) | Cache memory capable of adjusting burst length of write-back data in write-back operation | |
US20120254523A1 (en) | Storage system which utilizes two kinds of memory devices as its cache memory and method of controlling the storage system | |
EP1886315B1 (en) | Method to handle write mask in dram memory | |
US9069489B1 (en) | Dynamic random access memory front end | |
JP2011530735A (ja) | メモリモジュール内の独立制御式仮想メモリ装置 | |
US20090094435A1 (en) | System and method for cache access prediction | |
US20160110286A1 (en) | Data writing method and memory system | |
CN101702326A (zh) | 内存控制器 | |
JP5145890B2 (ja) | 情報処理装置、及び、情報処理装置の制御方法 | |
US20070204129A1 (en) | Address converting apparatus | |
US20080036764A1 (en) | Method and apparatus for processing computer graphics data | |
CN101719104B (zh) | 一种同步动态存储器的控制系统及控制方法 | |
CN100536021C (zh) | 大容量高速缓冲存储器 | |
CN116257191B (zh) | 存储器的控制器、组件、电子设备及命令调度方法 | |
CN100444636C (zh) | 提高视频解码器中sdram总线效率的方法 | |
KR20140088725A (ko) | 읽기 및 쓰기 접근에 따른 선택적 리프레쉬 기능을 구비한 동적 메모리 장치 및 그 선택적 리프레쉬 방법 | |
CN107506139A (zh) | 一种面向相变存储器的写请求优化装置 | |
US20060245265A1 (en) | Memory control system | |
US20050010726A1 (en) | Low overhead read buffer | |
US7865666B2 (en) | Cache memory systems and methods thereof | |
JP2003508869A (ja) | 高速行サイクルのためのメモリのパイプライン構造 | |
US6542958B1 (en) | Software control of DRAM refresh to reduce power consumption in a data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090107 |