著录项信息
专利名称 | 一种高速缓存预取模块及其方法 |
申请号 | CN200510093077.9 | 申请日期 | 2005-08-25 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2006-02-08 | 公开/公告号 | CN1731374 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F12/08 | IPC分类号 | G;0;6;F;1;2;/;0;8查看分类表>
|
申请人 | 北京中星微电子有限公司 | 申请人地址 | 北京市海淀区学院路35号世宁大厦15层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京中星微电子有限公司 | 当前权利人 | 北京中星微电子有限公司 |
发明人 | 白锋;夏煜;王浩;怀千江 |
代理机构 | 北京德琦知识产权代理有限公司 | 代理人 | 王琦;宋志强 |
摘要
本发明公开了一种高速缓存预取模块,包括高速缓存总线接口、系统芯片总线接口、以及控制逻辑和数据缓冲区,其中,控制逻辑用于根据来自处理器的预取完整图像子块数据的控制信息,向系统内存发出读取所述图像子块数据的控制信息,并将所读取的图像子块数据保存到所述数据缓冲区,以及将所述数据缓冲区中的图像子块数据传输到高速缓存;数据缓冲区用于存储所述从系统内存读取的完整图像子块数据。本发明还公开了一种高速缓存预取方法。由于本发明的高速缓存预取模块支持一次预取一个完整图像子块数据,缩短了预取图像子块数据的周期,降低了处理器在图像数据预取期间等待的时间,从而提高了图像处理速度。
1.一种高速缓存预取装置,至少包括高速缓存总线接口、系统芯片总线接 口、控制逻辑和数据缓冲区,其中高速缓存总线接口用于连接高速缓存;系统 芯片总线接口用于连接系统内存;相互连接的控制逻辑和数据缓冲区分别连 接于高速缓存总线接口和系统芯片总线接口之间,
其特征在于,所述控制逻辑用于根据来自处理器的预取完整图像子块数 据的控制信息,向系统内存发送读取所述完整图像子块数据的控制信息,并 通过一次读取操作将所读取的完整图像子块数据全部保存到所述数据缓冲 区,以及将所述数据缓冲区中的完整图像子块数据传输到高速缓存;
数据缓冲区,容量大于或等于一个图像子块的大小,用于存储所述从系 统内存读取的完整图像子块数据。
2.根据权利要求1所述的高速缓存预取装置,其特征在于,所述数据缓冲 区由寄存器堆构成。
3.根据权利要求1所述的高速缓存预取装置,其特征在于,所述预取完整 图像子块数据的控制信息包括所述图像子块中第一个字节数据的地址信息;
所述控制逻辑进一步用于根据所述图像子块中第一个字节数据的地址信息 产生所述图像子块中其余数据的地址信息,并向系统内存发送包括所述图像子 块所有数据地址信息的所述图像子块数据的控制信息。
4.一种高速缓存预取方法,其特征在于,该方法包括以下步骤:
A.接收到处理器预取完整图像子块数据的控制信息后,高速缓存预取模块 向系统内存发送读取所述图像子块数据的控制信息,并通过一次读取操作读取 完整的所述图像子块数据;
B.将所述图像子块数据保存到高速缓存预取模块中,所述高速缓存预取模 块中包括一容量大于或等于一个图像子块的数据缓冲区;
C.将所述图像子块数据传输到高速缓存。
5.根据权利要求4所述的方法,其特征在于,所述预取完整图像子块数据 的控制信息包括所述图像子块中第一个字节数据的地址信息;
步骤A中所述高速缓存预取模块向系统内存发出读取所述图像子块数据的 控制信息之前进一步包括:根据所述图像子块中第一个字节数据的地址信息产 生所述图像子块中其余数据的地址信息;
所述高速缓存预取模块向系统内存发出读取所述图像子块数据的控制信息 包括所述图像子块中所有数据的地址信息。
6.根据权利要求4所述的方法,其特征在于,步骤C之后进一步包括处理 器从所述高速缓存读取所述图像子块数据的步骤。
技术领域\n本发明涉及数据存取技术领域,特别是一种高速缓存预取模块及其方 法。\n背景技术\n近年来,为了减少处理器等待读取数据的时间,提出了使用高速缓存的 技术。采用高速缓存的系统芯片的相关部分如图1所示,该系统芯片包括处 理器(CPU Core)、高速缓存、高速缓存预取模块、系统内存、系统芯片总 线。其中处理器从高速缓存中读取数据并进行计算以及向高速缓存预取模块 发送预取数据的控制信息;高速缓存中保存的是处理器将要使用的数据;高 速缓存预取模块用于从系统内存读取处理器即将使用的数据,并将数据传输 到高速缓存;系统内存中保存着各种数据;系统芯片总线连接所述高速缓存 预取模块和系统内存,并传递各种控制信息和数据。\n图2所示的是现有技术中高速缓存预取模块的结构示意图,该高速缓存 预取模块包括系统芯片总线接口、高速缓存总线接口、数据缓冲区和控制逻 辑。其中系统芯片总线接口用于连接系统芯片总线,通过系统芯片总线与系 统内存相连接,并且用以传递数据和控制信息;高速缓存总线接口用于连接 高速缓存,并用以传递数据和控制信息;数据缓冲区用于存储从系统内存预 取的图像数据,它由寄存器组成,数据缓冲区大小为一个缓存行(cache line), 可以存储32字节的数据;控制逻辑用于根据处理器的预取指令,控制从系 统内存中读取一个缓存行的图像数据,并存入数据缓冲区,以及将数据缓冲 区内一个缓存行的数据通过高速缓存总线接口传输到高速缓存。控制逻辑、 系统芯片总线接口、数据缓冲区、高速缓存总线接口之间还存在着控制信息 的交互,从而实现数据的传输,例如将数据缓冲区中图像数据传输到高速缓 存时,控制逻辑产生对数据缓冲区和高速缓存总线接口的控制信息,然后数 据缓冲区和高速缓存总线接口根据控制逻辑的控制信息互相确定工作状态, 当数据缓冲区为传输(Transfer)状态、高速缓存总线接口为接收(Receive) 状态时,图像数据从数据缓冲区经过高速缓存总线接口传输到高速缓存。\n在数字图像处理过程中,每帧图像通常分为若干个图像子块,图像子块 的大小通常为8×8或16×16个数据点,8×8个数据点的图像子块对应于通 常所说的块(Block),16×16个数据点的图像子块对应于通常所说的宏块 (Macro Block)。如果图像采用YUV4:2:2编码格式,每个数据点占用一个 字节,那么图像子块的亮度信息分别为8×8字节或16×16字节。图3所示 的是一个由99个宏块组成的图像帧,这99个宏块分为9行11列,分别标 记为宏块0、宏块1、…宏块98,每个图像子块的大小为16×16字节,即 256字节。\n假设处理器当前处理图3所示帧中的第N个16×16字节的图像子块, 需要预取第N+1个16×16个字节的图像子块,其中N大于等于且0小于等 于98。如图4所示,现有技术中上述高速缓存预取模块预取一个图像子块 的过程如下:\n步骤401,控制逻辑接收到处理器第1次进行预取第N+1个图像子块中 32字节的控制信息,该控制信息包括了所述第N+1个图像子块的前32字节 数据中第一个字节数据的地址信息。此时处理器处于空闲状态等待预取动作 结束。\n步骤402,控制逻辑根据上述第一个字节数据的地址信息自动产生其余 31字节数据的地址信息后,控制逻辑向系统内存发出读取该32字节数据的 控制信息,该控制信息包括读取命令和该第N+1个图像子块的前32字节数 据的地址信息,然后高速缓存预取模块占据系统芯片总线进行第1次预取, 读取该第N+1个图像子块的前32字节数据,然后存储到数据缓冲区。然后 控制逻辑再将第1次预取的32字节数据传输给高速缓存。\n此时处理器依然处于空闲状态,等待第N+1个图像子块的数据。\n步骤403,控制逻辑接收到处理器第2次进行预取第N+1个图像子块的 控制信息,该控制信息包括了所述第N+1个图像子块的第2个32字节数据 中第一个字节数据的地址信息,处理器处于空闲状态。\n步骤404,控制逻辑根据上述第一个字节数据的地址信息自动产生其余 31字节数据的地址信息后,控制逻辑向系统内存发出读取该32字节数据的 控制信息,该控制信息包括读取命令和所述第N+1个图像子块的第2个32 字节数据的地址信息,然后高速缓存预取模块占据系统芯片总线进行第2次 预取,读取该第N+1个图像子块的第2个32字节数据,然后存储到数据缓 冲区。然后控制逻辑再将第2次预取的32字节数据传输给高速缓存。\n此时,处理器仍处于等待第N+1个图像子块数据的状态。\n步骤405,重复步骤403至步骤404,完成第3次预取到第8次预取, 每次预取32字节数据,从而完成对第N+1个图像子块所有256字节数据的 预取。在此期间,处理器一直处于等待状态。\n步骤406,处理器从高速缓存中读取并处理第N+1个图像子块的数据。\n从上面的预取流程可以看出,由于现有的高速缓存预取模块每次只能预 取一个缓存行即32字节数据,当图像子块数据大于32字节的时候,需要多 次执行预取操作才能预取一个图像子块的数据,这期间处理器长期处于等待 状态,从而导致图像处理速度减慢。\n发明内容\n有鉴于此,本发明提出了一种针对图像子块的高速缓存预取模块及其方 法,用以降低处理器在图像数据预取期间等待的时间。\n根据上述目的,本发明提供了一种高速缓存预取模块,至少包括高速缓 存总线接口、系统芯片总线接口、控制逻辑和数据缓冲区,其中高速缓存总 线接口用于连接高速缓存;系统芯片总线接口用于连接系统内存;相互连接 的控制逻辑和数据缓冲区分别连接于高速缓存总线接口和系统芯片总线接 口之间,所述控制逻辑用于根据来自处理器的预取完整图像子块数据的控制 信息,向系统内存发送读取所述完整图像子块数据的控制信息,并通过一次 读取操作将所读取的完整图像子块数据全部保存到所述数据缓冲区,以及将 所述数据缓冲区中的完整图像子块数据传输到高速缓存;数据缓冲区,容量 大于或等于一个图像子块的大小,用于存储所述从系统内存读取的完整图像 子块数据。\n在上述技术方案中,所述数据缓冲区由寄存器堆构成。\n所述预取完整图像子块数据的控制信息包括所述图像子块中第一个字 节数据的地址信息;所述控制逻辑进一步用于根据所述图像子块中第一个字 节数据的地址信息产生所述图像子块中其余数据的地址信息,并向系统内存 发送包括所述图像子块所有数据地址信息的所述图像子块数据的控制信息。\n本发明还提供了一种高速缓存预取方法,该方法包括以下步骤:\nA.接收到处理器预取完整图像子块数据的控制信息后,高速缓存预取 模块向系统内存发送读取所述图像子块数据的控制信息,并通过一次读取操 作读取完整的所述图像子块数据;B.将所述图像子块数据保存到高速缓存 预取模块中,所述高速缓存预取模块中包括一容量大于或等于一个图像子块的 数据缓冲区;C.将所述图像子块数据传输到高速缓存。\n所述预取完整图像子块数据的控制信息包括所述图像子块中第一个字 节数据的地址信息;步骤A中所述高速缓存预取模块向系统内存发出读取 所述图像子块数据的控制信息之前进一步包括:根据所述图像子块中第一个 字节数据的地址信息产生所述图像子块中其余数据的地址信息;所述高速缓 存预取模块向系统内存发出读取所述图像子块数据的控制信息包括所述图 像子块中所有数据的地址信息。\n进一步,步骤C之后包括处理器从所述高速缓存读取所述图像子块数 据的步骤。\n从上述方案中可以看出,由于本发明的高速缓存预取模块支持一次预取 一个完整图像子块数据,缩短了预取图像子块数据的周期,降低了处理器在 图像数据预取期间等待的时间,从而提高了图像处理速度。\n附图说明\n图1为高速缓存预取模块在系统中的位置示意图;\n图2为现有技术中高速缓存预取模块的结构示意图;\n图3为一个包含11×9个图像子块的图像;\n图4为现有技术中预取一个256字节图像子块的流程示意图;\n图5为本发明高速缓存预取模块的结构示意图;\n图6为本发明预取一个256字节图像子块的流程示意图。\n具体实施方式\n为使本发明的目的、技术方案和优点更加清楚,以下举实施例对本发明 进一步详细说明。\n本发明提出的高速缓存预取模块在数字图像处理系统的位置与现有技 术一样,但是本发明提出的高速缓存预取模块的具体结构和功能与现有技术 不同。\n参考图5,本发明的高速缓存预取模块包括系统芯片总线接口、高速缓 存总线接口、数据缓冲区和控制逻辑。其中系统芯片总线接口用于连接系统 芯片总线,通过系统芯片总线与系统内存相连接,并且传递数据和控制信息。 高速缓存总线接口用于连接高速缓存,并传递数据和控制信息。控制逻辑和 数据缓冲区分别连接于系统芯片总线接口和高速缓存总线接口之间,并且控 制逻辑和数据缓冲区两者之间相互连接。数据缓冲区用于存储从系统内存预 取的图像数据,它由寄存器组成,与现有技术不同的是,本发明的数据缓冲 区大小至少为一个图像子块的大小,根据现有Mpeg-1、Mpeg-2、Mpeg-4、 H.261、H.263或H.264等编解码处理技术知道图像子块的大小一般为64字 节或256字节,为了不造成冗余浪费,可以根据实际图像处理的需要将数据 缓冲区的大小设置为64字节或256字节,即数据缓冲区由能够存储64字节 或256字节的寄存器堆组成。与现有技术相比,结构上相当于在数据缓冲区 新添加了寄存器。控制逻辑接收处理器的预取指令,根据处理器发送过来的 图像子块中第一字节数据的地址信息自动产生一个图像子块的其余数据的 地址信息后,通过系统芯片总线接口向系统内存发送读取该图像子块数据的 控制信息,该控制信息包括读取命令和上述图像子块中所有数据的地址信 息,从系统内存中读取一个图像子块的数据,并存入数据缓冲区,以及将数 据缓冲区内一个图像子块的数据通过高速缓存总线接口传输到高速缓存。与 现有技术相同,控制逻辑、系统芯片总线接口、数据缓冲区、高速缓存总线 接口之间还存在着控制信息的交互,从而实现数据在各模块之间的传输,例 如将数据缓冲区中图像数据传输到高速缓存时,控制逻辑产生对数据缓冲区 和高速缓存总线接口的控制信息,然后数据缓冲区和高速缓存总线接口根据 控制逻辑的控制信息互相确定工作状态,当数据缓冲区为传输(Transfer) 状态、高速缓存总线接口为接收(Receive)状态时,图像数据从数据缓冲 区经过高速缓存总线接口传输到高速缓存。\n假设处理器当前处理图3所示帧中的第N个16×16字节的图像子块, 需要预取第N+1个16×16个字节的图像子块,其中N大于等于且0小于等 于98。如图6所示,本发明中高速缓存预取模块预取一个图像子块的过程 如下:\n步骤601,控制逻辑接收到处理器进行预取完整的第N+1个图像子块的 控制信息,该控制信息包括所述第N+1个图像子块中第一个字节数据的地 址信息。由于本发明的高速缓存预取模块支持一次预取一个图像子块,因此 处理器可以向该高速缓存预取模块发送预取一个图像子块的控制信息。然 后,控制逻辑根据所述第N+1个图像子块中第一个字节数据的地址信息产 生该图像子块中其余255字节数据的地址信息。不同厂商的控制逻辑产生其 余数据地址信息的方法可能不同,最简单的方法就是在第一个字节数据的地 址信息上依次加上一到255个固定的数值,从而产生其余的255字节数据的 地址信息。\n步骤602,控制逻辑向系统内存发出读取该图像子块的控制信息,该控 制信息包括读取命令和该第N+1个图像子块的256字节数据的地址信息, 然后高速缓存预取模块占据系统芯片总线进行预取,读取该第N+1个图像 子块的256字节数据,存储到数据缓冲区。然后控制逻辑再将该次预取的 256字节数据传输给高速缓存。\n此时,处理器处理当前第N个图像子块的数据,或者已经处理完第N 个图像子块的数据,处于等待第N+1个图像子块数据的状态。如果处理器 正在处理第N个图像子块的数据,那么在处理器处理完第N个图像子块的 数据之后,就可以直接从高速缓存中读取第N+1个图像子块数据,从而不 需要等待,跟现有技术相比,减少了处理器等待的时间,提高了图像处理的 效率。如果处理器已经处理完第N个图像子块的数据,并处于等待第N+1 个图像子块数据的状态,那么在高速缓存预取模块结束该次预取后,就可以 从高速缓存中读取第N+1个图像子块的数据,跟现有技术相比,同样减少 了处理器等待的时间,提高了图像处理的效率。\n步骤603,处理器从高速缓存中读取并处理第N+1个图像子块的数据。\n以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本 发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在 本发明的保护范围之内。
法律信息
- 2013-10-30
未缴年费专利权终止
IPC(主分类): G06F 12/08
专利号: ZL 200510093077.9
申请日: 2005.08.25
授权公告日: 2008.04.02
- 2008-04-02
- 2006-04-19
- 2006-02-08
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2004-07-21
|
2003-10-17
| | |
2
| |
2004-06-30
|
2002-03-21
| | |
3
| |
2004-04-07
|
2003-08-05
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 1 | | 2009-04-22 | 2009-04-22 | | |