CN102136130A - 一种应用于图像处理的Cache的硬件实现 - Google Patents
一种应用于图像处理的Cache的硬件实现 Download PDFInfo
- Publication number
- CN102136130A CN102136130A CN 201110085908 CN201110085908A CN102136130A CN 102136130 A CN102136130 A CN 102136130A CN 201110085908 CN201110085908 CN 201110085908 CN 201110085908 A CN201110085908 A CN 201110085908A CN 102136130 A CN102136130 A CN 102136130A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- plus
- cacheline
- coordinate
- 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.)
- Granted
Links
Images
Landscapes
- Image Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种专门针对二维线型插值算法应用的数据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的等待瓶颈,大幅提高上层逻辑的整体运行速度。
Description
技术领域
本发明主要涉及图形处理芯片设计中的图像处理领域,特指图像二维插值算法中的数据读取。
背景技术
在图像处理应用中,经常需要使用到二维线型插值算法,例如图象处理应用时的图像旋转、3D图像中的纹理贴图等等,在这种应用过程中,二位线型插值算法需要先从外存中读取相邻的四个像素点的信息,然后将相邻四个像素点的各项信息值按照某种特定的算法进行计算。
上级运算处理单元输出的全部为像素坐标,存储单元采用按块组织存储的方式,即Cache中的每一个CacheLine中存储的为以像素坐标寻址的某一个矩形方阵块,Cache Tag中存储的为矩形方阵块的横纵坐标(x,y)的高位部分,横纵坐标的低位部分为CacheLine内的地址寻址。
发明内容
针对二维线型插值算法应用过程中,如果采用普通的数据Cache,上层逻辑接口需要连续发送四次读数据请求以及读数据坐标(x,y),(x+1,y),(x,y+1),(x+1,y+1)的现象,这样每执行一次插值运算需要至少四次读数据Cache的周期的瓶颈,导致上层逻辑接口等待周期过长效率低下,为了解决这一问题,本发明公开了一种专用的数据Cache,可以保证只发送一个读数据请求以及读数据坐标(x,y)的情况下,在Cache命中的基本条件下,一个时钟周期内同时返回(x,y),(x+1,y),(x,y+1),(x+1,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[max : 0],Y[max : 0]),则CacheTag中存储像素横纵坐标的高位部分(X[max : 2],Y[max : 2]),像素横纵坐标的低位部分(X[1 : 0],Y[1 : 0])作为CacheLine内的具体像素寻址。
Cache命中判定。对于一个新的像素读取请求,因数据返回端口需同时返回(x,y),(x+1,y),(x,y+1),(x+1,y+1)四组像素坐标的数据信息,命中判定逻辑需同时判定四组坐标是否都在数据Cache中。如图2所示,相邻的四个像素可能分布于一到四个CacheLine中,模块先必须确定像素点跨Line的问题。通过比较横纵坐标的低位部分(X[1:0 ],Y[1: 0])可以实现这一算法,如果横坐标X[1 : 0]等于2’b11,则像素点将横跨左右相邻两个的CacheLine中(图2中的b和f点);如果像素点纵坐标Y[1:0]等于2’b11,则像素点将分布于上下相邻的两个CacheLine中(图2中的c点和e点);如果像素点的横纵坐标X[1 : 0]和Y[1 : 0]都等于2’b11,这像素点将分布与相邻的四个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[1:0],Y[1:0]的4x4的数据块矩阵来说,发明设计中将其按相邻坐标的不同拆分存放到四个不同的RAM中。这样可以保证外部访问的每一个像素坐标,所需要的相邻坐标的四个像素分别存在四个RAM中,相互独立。对于一个命中的访问请求,每个RAM将各自返回自己坐标地址对应的像素,尽可能的减小了RAM的端口总数。
Cache 数据分配和排序,该模块完成存储体送出的四个的数据的排序,按照客户接口要求的顺序重新组织四个数据。
Claims (4)
1.Cahche以坐标寻址和分块组织,设计中将需要访存的数据,以数据的坐标分为矩形块,每个数据块对应Cache中的Cacheline,CacheTag中存储矩形数据块的高位坐标。
2.Cache命中判定算法,检测访问的像素横纵坐标的最低几位,是否为像素矩形块的边界坐标,如果坐标为矩形的块的右或者下边界则,认为相邻四个像素存在于多个Cache行中。
3.伪的先进先出算法,设定一初始装载地址指针,如果发生CacheLine的装载和替换时,首先检测当前装载地址指针的CacheLine是否有效,如果该行非有效行则替换此行;否则检测该有效行装载的数据是否为当前待装载数据块临近的数据块,如果属于临近的数据块,则检测装载地址指针的下一个CacheLine,如果仍然属于临近块,则继续下移,直到找到可以替换的Cacheline。
4.Cache存储体的组织,Cache体用四个并联的RAM实现,将每个CacheLine内块内坐标相邻的四个像素分别存放到四个不同的RAM存储体中,在Cache命中时,各RAM体返回各自存储的像素信息值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110085908A CN102136130B (zh) | 2011-04-07 | 2011-04-07 | 一种应用于图像处理的Cache的硬件实现 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110085908A CN102136130B (zh) | 2011-04-07 | 2011-04-07 | 一种应用于图像处理的Cache的硬件实现 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102136130A true CN102136130A (zh) | 2011-07-27 |
CN102136130B CN102136130B (zh) | 2012-09-19 |
Family
ID=44295905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110085908A Active CN102136130B (zh) | 2011-04-07 | 2011-04-07 | 一种应用于图像处理的Cache的硬件实现 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102136130B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186359A (zh) * | 2011-12-30 | 2013-07-03 | 中兴通讯股份有限公司 | 硬件抽象数据结构、数据处理方法及系统 |
CN103702130A (zh) * | 2013-12-26 | 2014-04-02 | 苏州科达科技股份有限公司 | 一种图像畸变修正算法中合并读取数据的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101520751A (zh) * | 2009-03-26 | 2009-09-02 | 浙江大学 | Cache的自适应插入策略的实现方法 |
CN201781507U (zh) * | 2010-09-14 | 2011-03-30 | 北京同有飞骥科技股份有限公司 | 一种共享Cache结构的高性能VTL系统 |
-
2011
- 2011-04-07 CN CN201110085908A patent/CN102136130B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101520751A (zh) * | 2009-03-26 | 2009-09-02 | 浙江大学 | Cache的自适应插入策略的实现方法 |
CN201781507U (zh) * | 2010-09-14 | 2011-03-30 | 北京同有飞骥科技股份有限公司 | 一种共享Cache结构的高性能VTL系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186359A (zh) * | 2011-12-30 | 2013-07-03 | 中兴通讯股份有限公司 | 硬件抽象数据结构、数据处理方法及系统 |
WO2013097393A1 (zh) * | 2011-12-30 | 2013-07-04 | 中兴通讯股份有限公司 | 硬件抽象数据结构、数据处理方法及系统 |
US9804985B2 (en) | 2011-12-30 | 2017-10-31 | Sanechips Technology Co., Ltd. | Hardware abstract data structure, data processing method and system |
CN103186359B (zh) * | 2011-12-30 | 2018-08-28 | 南京中兴软件有限责任公司 | 硬件抽象数据结构、数据处理方法及系统 |
CN103702130A (zh) * | 2013-12-26 | 2014-04-02 | 苏州科达科技股份有限公司 | 一种图像畸变修正算法中合并读取数据的方法 |
CN103702130B (zh) * | 2013-12-26 | 2017-02-01 | 苏州科达科技股份有限公司 | 一种图像畸变修正算法中合并读取数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102136130B (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107301455B (zh) | 用于卷积神经网络的混合立方体存储系统及加速计算方法 | |
CN103336758B (zh) | 一种采用带有局部信息的压缩稀疏行的稀疏矩阵存储方法及基于该方法的SpMV实现方法 | |
Qureshi et al. | Fundamental latency trade-off in architecting dram caches: Outperforming impractical sram-tags with a simple and practical design | |
CN103246613B (zh) | 缓存装置及用于缓存装置的缓存数据获取方法 | |
CN106683158A (zh) | 一种GPU纹理映射非阻塞存储Cache的建模结构 | |
CN103034617A (zh) | 用于实现可重构系统配置信息存储的缓存结构和管理方法 | |
CN103246542A (zh) | 智能缓存及智能终端 | |
CN103927270A (zh) | 一种面向多个粗粒度动态可重构阵列的共享数据缓存装置及控制方法 | |
CN106168930A (zh) | 转换后备缓冲器 | |
CN103116555A (zh) | 基于多体并行缓存结构的数据访问方法 | |
CN1896972A (zh) | 用于虚实地址变换及读写高速缓冲存储器的方法及装置 | |
Quan et al. | Prediction table based management policy for STT-RAM and SRAM hybrid cache | |
CN102136130B (zh) | 一种应用于图像处理的Cache的硬件实现 | |
CN116501249A (zh) | 一种减少gpu内存重复数据读写的方法及相关设备 | |
Tian et al. | An effectiveness-based adaptive cache replacement policy | |
CN105874437B (zh) | 存储器管理方法和装置 | |
KR101099417B1 (ko) | 캐시 메모리 디바이스 | |
WO2013032788A2 (en) | A 2-d gather instruction and a 2-d cache | |
CN110648356A (zh) | 一种基于视觉数字信号处理的多目标跟踪处理优化方法 | |
CN104572499A (zh) | 一种数据高速缓存的访问装置 | |
CN103150266B (zh) | 一种改进的多核共享cache替换方法 | |
US11157174B2 (en) | Hybrid first-fit K-choice insertions for hash tables, hash sets, approximate set membership data structures, and caches | |
CN108121671A (zh) | 集成电路 | |
Yin et al. | Memory partitioning for parallel multipattern data access in multiple data arrays | |
Lee et al. | Dirty-block tracking in a direct-mapped DRAM cache with self-balancing dispatch |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 410205 Hunan province Changsha Hexi Lugu high tech Zone base Lu Jing Road No. 2 Changsha Productivity Promotion Center Applicant after: Changsha Jingjia Microelectronic Co., Ltd. Address before: 410205 Hunan province Changsha Hexi Lugu high tech Zone base Lu Jing Road No. 2 Changsha Productivity Promotion Center Applicant before: Changsha Jingjia Microelectronics Co., Ltd. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |