一种应用于图像处理的Cache的硬件实现制造技术

技术编号:6125355 阅读:250 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种专门针对二维线型插值算法应用的数据Cache,二维线型插值算法需要先读取相邻的四个像素点的信息,然后将相邻四个像素点的各项信息值按照某种特定的算法进行计算,如果采用普通的数据Cache,上层逻辑接口需要连续发送四次读数据请求以及读数据坐标(x,y),(x+1,y),(x,y+1),(x+1,y+1)的现象,导致计算过程效率低下,本发明专利技术公开的数据Cache可以保证在接收一个读数据请求以及读数据横纵坐标(x,y)的情况下,在一个时钟周期内同时返回(x,y),(x+1,y),(x,y+1),(x+1,y+1)四组像素坐标的数据信息,消除数据Cache的等待瓶颈,大幅提高上层逻辑的整体运行速度。

【技术实现步骤摘要】

本专利技术主要涉及图形处理芯片设计中的图像处理领域,特指图像二维插值算法中 的数据读取。
技术介绍
在图像处理应用中,经常需要使用到二维线型插值算法,例如图象处理应用时的 图像旋转、3D图像中的纹理贴图等等,在这种应用过程中,二位线型插值算法需要先从外存 中读取相邻的四个像素点的信息,然后将相邻四个像素点的各项信息值按照某种特定的算 法进行计算。上级运算处理单元输出的全部为像素坐标,存储单元采用按块组织存储的方 式,即Cache中的每一个CacheLine中存储的为以像素坐标寻址的某一个矩形方阵块, Cache Tag中存储的为矩形方阵块的横纵坐标(x,y)的高位部分,横纵坐标的低位部分为 CacheLine内的地址寻址。
技术实现思路
针对二维线型插值算法应用过程中,如果采用普通的数据Cache,上层逻辑接口需 要连续发送四次读数据请求以及读数据坐标(X,y),(χ+l, y),(χ, y+1),(χ+1, y+1)的现象, 这样每执行一次插值运算需要至少四次读数据Cache的周期的瓶颈,导致上层逻辑接口等 待周期过长效率低下,为了解决这一问题,本专利技术公开了一种专用的数据Cache,可以保证 只发送一个读数据请求以及读数据坐标(X,y)的情况下,在Cache命中的基本条件下,一个 时钟周期内同时返回(X,y),(x+l,y),(χ, y+1), (χ+l, y+1)四组像素坐标的数据信息,消除 数据Cache的等待瓶颈,大幅提高上层逻辑的整体运行速度。与现有技术相比,本专利技术的优点就在于1、逻辑简单本专利技术提出的数据Cache实现结构并未采用复杂的算法,都是比较利于 硬件实现的算法,组织结构清晰明了 ;2、性能优良本专利技术提出的数据Cahce采用全流水的执行坐标比较,命中检测,数据读 取,数据发送的方法,在保证数据返回的效率的同时,尽量的减少硬件资源;3、使用方便本专利技术提出的数据Cache组织结构清晰明了,具有很好的可重用性和可 移植性。附图说明图1本专利技术所述Cache内部结构; 图2像素坐标跨块分布;图3 Cache存储体数据组织。具体实施例方式以下将结合附图和具体实施例对本专利技术做进一步详细说明。如图1所示,本专利技术公开的数据Cache内部结构包括CacheTag,Cache命中判 定,Cache Line替换,Cache数据存储体,数据分配和排序一共五个部分组成。本专利技术的数 据Cache是基于按坐标寻址的,Tag中存储的为像素的块坐标,CacheTag中的每一项(即 CacheLine)都对应Cache数据存储体中一块相应的像素块的信息,下面以CacheLine数据 体为4x4的块为例进一步说明,如图2所示,A,B, C,D为相邻的四个像素坐标块,每个块包 含像素横坐标低两位和纵坐标低两位的像素块,一共16个像素,假定外存图像像素横纵坐 标分别为(X,Y),则CacheTag中存储像素横纵坐标的高位部分(X, Y),像素横纵坐标的低位部分(X,Y)作为CacheLine内的 具体像素寻址。Cache命中判定。对于一个新的像素读取请求,因数据返回端口需同时返回 (x,y),(x+l,y),(x, y+1), (x+1, y+1)四组像素坐标的数据信息,命中判定逻辑需同时 判定四组坐标是否都在数据Cache中。如图2所示,相邻的四个像素可能分布于一到四 个CacheLine中,模块先必须确定像素点跨Line的问题。通过比较横纵坐标的低位部分 (X,Y)可以实现这一算法,如果横坐标X等于2’bll,则像素点将横跨 左右相邻两个的CacheLine中(图2中的b和f点);如果像素点纵坐标Y等于2’bll, 则像素点将分布于上下相邻的两个CacheLine中(图2中的c点和e点);如果像素点的横 纵坐标X和Y都等于2’bll,这像素点将分布与相邻的四个CacheLine中 (图2中的d点);否则该像素点坐标相邻的四个数据将同在一个CacheLine中(图2中的a 点)。完成像素点跨Line判定后,接着完成像素高位地址部分与CacheTag中存储部分的比 较,如果像素点所在的块都命中,则此时可认为Cache命中,否则认为Cache失效。CacheLine的装载和替换,该模块接收Cache失效的像素坐标的高位地址,完成 坐标到外存物理地址的转化,从外存读取相应的块并执行相应的替换算法,此处专利技术设计 中采用伪的先进先出算法,其实现如下设定一初始装载地址指针,如果发生CacheLine的 装载和替换时,首先检测当前装载地址指针的CacheLine是否有效,如果该行非有效行则 替换此行;否则检测该有效行装载的数据是否为当前待装载数据块临近的数据块,如果属 于临近的数据块,则检测装载地址指针的下一个CacheLine,连续检测3个CacheLine,即可 大幅的避免Cache块替换产生冲突发生的概率;一旦找到装载的CacheLine地址,则将待装 载数据装入Cache的这一个Line中,装载地址指针指向数据装载行的下一行。Cache存储体的组织。Cache的数据存储体通常都比较大,考虑面积和功耗,设计 中采用四个单端口的RAM并联实现,如图3所示,对于一个X,Y的虹4的数据 块矩阵来说,专利技术设计中将其按相邻坐标的不同拆分存放到四个不同的RAM中。这样可以 保证外部访问的每一个像素坐标,所需要的相邻坐标的四个像素分别存在四个RAM中,相 互独立。对于一个命中的访问请求,每个RAM将各自返回自己坐标地址对应的像素,尽可能 的减小了 RAM的端口总数。Cache数据分配和排序,该模块完成存储体送出的四个的数据的排序,按照客户 接口要求的顺序重新组织四个数据。权利要求1.Cahche以坐标寻址和分块组织,设计中将需要访存的数据,以数据的坐标分为矩形 块,每个数据块对应Cache中的Cacheline,CacheTag中存储矩形数据块的高位坐标。2.Cache命中判定算法,检测访问的像素横纵坐标的最低几位,是否为像素矩形块的边 界坐标,如果坐标为矩形的块的右或者下边界则,认为相邻四个像素存在于多个Cache行 中。3.伪的先进先出算法,设定一初始装载地址指针,如果发生CacheLine的装载和替换 时,首先检测当前装载地址指针的CacheLine是否有效,如果该行非有效行则替换此行;否 则检测该有效行装载的数据是否为当前待装载数据块临近的数据块,如果属于临近的数据 块,则检测装载地址指针的下一个CacheLine,如果仍然属于临近块,则继续下移,直到找到 可以替换的Cacheline。4.Cache存储体的组织,Cache体用四个并联的RAM实现,将每个CacheLine内块内坐 标相邻的四个像素分别存放到四个不同的RAM存储体中,在Cache命中时,各RAM体返回各 自存储的像素信息值。全文摘要本专利技术公开了一种专门针对二维线型插值算法应用的数据Cache,二维线型插值算法需要先读取相邻的四个像素点的信息,然后将相邻四个像素点的各项信息值按照某种特定的算法进行计算,如果采用普通的数据Cache,上层逻辑接口需要连续发送四次读数据请求以及读数据坐标(x,y),(x+1,y),(x,y+1),(x+1,y+1)的现象,导致计算过程本文档来自技高网...

【技术保护点】
1.Cahche以坐标寻址和分块组织,设计中将需要访存的数据,以数据的坐标分为矩形块,每个数据块对应Cache中的Cacheline,CacheTag中存储矩形数据块的高位坐标。

【技术特征摘要】

【专利技术属性】
技术研发人员:龙斌陈宝民焦勇
申请(专利权)人:长沙景嘉微电子有限公司
类型:发明
国别省市:43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1