CN106708434B - 一种面向GPU像素流的自适应Cache写分配方法 - Google Patents
一种面向GPU像素流的自适应Cache写分配方法 Download PDFInfo
- Publication number
- CN106708434B CN106708434B CN201611140730.7A CN201611140730A CN106708434B CN 106708434 B CN106708434 B CN 106708434B CN 201611140730 A CN201611140730 A CN 201611140730A CN 106708434 B CN106708434 B CN 106708434B
- Authority
- CN
- China
- Prior art keywords
- write
- cache
- data
- block
- ddr
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Image Generation (AREA)
Abstract
本发明涉及计算机硬件技术领域,提供一种面向GPU像素流的自适应Cache写分配方法,包括:当绘制简单的图形场景时Cache使用写回加写不分配更新流程;当绘制复杂的图形场景时Cache使用写回加写分配更新流程。本发明包括两种Cache的更新流程,写回加写分配更新流程(1)、写回加写不分配更新流程(2),由Cache根据当前访问特征自适应选择Cache的更新流程;所述Cache能够根据当前访问特征自适应选择Cache的更新流程,当绘制大而简单的图形时Cache使用写不分配的更新策略,能够减少写分配的替换更新操作带来的DDR带宽压力,而在绘制小而复杂的图形场景时Cache采用写分配的更细策略,能够提高Cache的命中率。
Description
技术领域
本发明涉及计算机硬件技术领域,尤其涉及一种像素Cache的更新方法。
背景技术
3D图形绘制时颜色缓冲区对DDR的带宽需求极大,设计中往往采用颜色Cache来缓解DDR存储带宽压力,为减少DDR的操作频率,颜色Cache一般采用写回和写分配策略实现更新,而在进行大而简单的图形绘制时颜色写操作往往仅执行一次,Cache进行写分配更新回的内容往往不会再次命中,此时写分配的回读更新其实没有实际意义,连续的写操作会将回读回来的Block数据再次更新。且每次写回都更新相当于占用的DDR3总线带宽翻倍。所以颜色缓冲区的Cache设计时如果能够针对不同的绘制场景,自适应选择采用写分配或写不分配的更新策略,在绘制小而复杂的图形时,采用写分配方式,在绘制大而简单的图形时,采用写不分配方式,这样可以在连续写回时节约大量的DDR3带宽。
发明内容
本发明的发明目的是:
本发明描述了一种面向GPU像素流的自适应Cache写分配方法,能够根据当前访问特征自适应选择Cache的更新流程,当绘制大而简单的图形时Cache使用写不分配的更新策略,能够减少写分配的替换更新操作带来的DDR带宽压力,而在绘制小而复杂的图形场景时Cache采用写分配的更细策略,能够提高Cache的命中率。
本发明的技术方案是:
一种面向GPU像素流的自适应Cache写分配方法,包括:
当绘制简单的图形场景时Cache使用写回加写不分配更新流程;
当绘制复杂的图形场景时Cache使用写回加写分配更新流程。
写回加写分配更新流程具体为:
当Cache发生写缺失时首先将要替换的Block数据写回到DDR中,然后将缺失的Block数据更新到Cache中,最后将写数据写到Cache中完成本次访问。
写回加写不分配更新流程具体为:
当Cache发生写缺失时首先将要替换的Block数据写回到DDR中,然后直接将要写的数据写入当前Block,并设置Block中写入数据位置的屏蔽位Mask有效,减少一次DDR的读更新操作。
将要替换的Block数据写回到DDR中的步骤具体为:
根据Block中写入数据的屏蔽标志Mask有效的数据写回到DDR中;
带Mask的写回需要先将DDR中一个Tile的数据读回并解压,然后与要写数据进行合并后再压缩后写回到DDR中。
所述复杂的图形场景为:GPU的绘制场景中区域三角形重复绘制次数大于Cache的更新块中包含的绘制Tile数量的场景;
所述简单的图形场景为:GPU的绘制场景中区域三角形重复绘制次数小于Cache的更新块中包含的绘制Tile数量的场景。
本发明的优点是:
包括两种Cache的更新流程,写回加写分配更新流程(1)、写回加写不分配更新流程(2),由Cache根据当前访问特征自适应选择Cache的更新流程;所述Cache能够根据当前访问特征自适应选择Cache的更新流程,当绘制大而简单的图形时Cache使用写不分配的更新策略,能够减少写分配的替换更新操作带来的DDR带宽压力,而在绘制小而复杂的图形场景时Cache采用写分配的更细策略,能够提高Cache的命中率。
附图说明
图1是本发明中一种面向GPU像素流的自适应Cache写分配策略流程图;
图2是本发明中写回加写分配策略访问流程图;
图3是本发明中写回加不写分配策略访问流程图;
图4是本发明中写不分配策略中写回操作的流程图。
具体实施方式
下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。
一种面向GPU像素流的自适应Cache写分配方法,包括:
当绘制简单的图形场景时Cache使用写回加写不分配更新流程;
当绘制复杂的图形场景时Cache使用写回加写分配更新流程。
写回加写分配更新流程具体为:
当Cache发生写缺失时首先将要替换的Block数据写回到DDR中,然后将缺失的Block数据更新到Cache中,最后将写数据写到Cache中完成本次访问。
写回加写不分配更新流程具体为:
当Cache发生写缺失时首先将要替换的Block数据写回到DDR中,然后直接将要写的数据写入当前Block,并设置Block中写入数据位置的屏蔽位Mask有效,减少一次DDR的读更新操作。
将要替换的Block数据写回到DDR中的步骤具体为:
根据Block中写入数据的屏蔽标志Mask有效的数据写回到DDR中;
带Mask的写回需要先将DDR中一个Tile的数据读回并解压,然后与要写数据进行合并后再压缩后写回到DDR中。
所述复杂的图形场景为:GPU的绘制场景中区域三角形重复绘制次数大于Cache的更新块中包含的绘制Tile数量的场景;
所述简单的图形场景为:GPU的绘制场景中区域三角形重复绘制次数小于Cache的更新块中包含的绘制Tile数量的场景。
实施例1
本发明包括两种Cache的更新流程,写回加写分配更新流程(1)、写回加写不分配更新流程(2),由Cache根据当前访问特征自适应选择Cache的更新流程;所述Cache能够根据当前访问特征自适应选择Cache的更新流程,当绘制大而简单的图形时Cache使用写不分配的更新策略,能够减少写分配的替换更新操作带来的DDR带宽压力,而在绘制小而复杂的图形场景时Cache采用写分配的更细策略,能够提高Cache的命中率。
所述写回加写分配更新流程,当GPU绘制小而复杂的图形场景时,颜色缓冲区的数据需要不停的进行读写,此时需要Cache以较高的命中率以保证图形绘制的速度。Cache采用写回加写分配的更新流程,当Cache发生写缺失时首先将要替换的Block数据写回到DDR中,然后将缺失的Block数据更新到Cache中,最后将写数据写到Cache中完成本次访问。
所述写回加写不分配更新流程,当GPU绘制大而简单的图形场景时,颜色缓冲区的数据是大批量地写操作,此时如果Cache仍然采用写分配策略进行更新,则更新近来的数据往往不会再次被命中,造成了DDR上带宽的巨大浪费。Cache采用写回加写不分配的更新流程,当Cache发生写缺失时首先将要替换的Block数据写回到DDR中,然后直接将要写的数据写入当前Block,并设置Block中的屏蔽位(Mask)表示当前Block中有哪些数据是缺失后已经写入的数据,减少了一次DDR的读更新操作。
所述带Mask的写回操作是当Cache采用写不分配策略时,发生读缺失或写缺失进行Block的写回时,由于某些Block数据已经被之前的写缺失操作写入过数据,所以需要根据Block中写入数据的屏蔽标志Mask决定将那些数据写回到DDR中。由于DDR中颜色数据采用了以Tile为单位的压缩格式存储,所以带Mask的写回往往需要先将DDR中一个Tile的数据读回并解压,然后与要写数据进行合并后再压缩后写回到DDR中。
实施例2
如图1所示,一种面向GPU像素流的自适应Cache写分配方法,模式判断根据当前GPU配置的绘图模式决定选择写分配还是写不分配的Cache更新流程。当GPU绘制复杂场景时,往往会有大量的小三角形被绘制,小三角形之间会有大量的重叠和遮挡,需要进行各种片断裁剪、测试,颜色Cache根据GPU的设置判定当前处于复杂模式,Cache的写缺失采用写回加写分配的方式,在写缺失时不仅将需要替换的Block写回到DDR,同时将缺失的Block替换更新到Cache中,以便下次访问时能够提高Cache的命中率。
当GPU绘制简单场景时,绘制的图形之间重叠较少,也较少出现遮挡、裁剪等,此时如果仍然采用写回加写分配的策略处理Cache的写操作,则写分配带来的缺失Block的更新操作往往是浪费了DDR的带宽。颜色Cache根据当前配置判定为简单场景绘制模式时,采用写回加写不分配策略进行Cache的缺失更新。则直接将要写的数据写入到Cache的Block中,并设置相应的脏位和屏蔽位,可以减少一次DDR的读操作,降低DDR的带宽需求。
如图2所示,当进行复杂的图形场景绘制时,颜色Cache采用写回加写分配的更新策略。GPU首先对颜色缓冲区发起读操作,如果读命中则直接送去颜色缓冲区运算,否则进入读缺失流程进行读缺失更新。首先根据替换算法选择一个要替换的Block,检查该Block的脏位是否有效,如果该Block的脏位无效,则直接从DDR中将缺失的Block替换进来。如果当前要替换出去的Block的脏位有效,则需要先将当前要被替换出去的Block的数据压缩并写回到DDR中,然后再从DDR中将缺失的Block替换进来。
GPU在完成颜色缓冲区运算后将结果通过颜色Cache写回到颜色缓冲区,如果写操作命中,则直接将数据写入到Cache并完成本次写操作,否则进入写缺失流程。首先根据替换算法选择一个要替换的Block,检查该Block的脏位是否有效,如果该Block的脏位无效,则直接从DDR中将缺失的Block替换进来。如果当前要替换出去的Block的脏位有效,则需要先将当前要被替换出去的Block的数据压缩写回到DDR中,然后再从DDR中将缺失的Block替换进来。当缺失的Block数据被替换进来之后再将要写入的数据写入到Cache的Block中,并设置相应的脏位。
如图3所示,当进行简单的图形场景绘制时,颜色Cache采用写回加写不分配更新策略。GPU首先对颜色缓冲区发起读操作,如果读命中则直接送去颜色缓冲区运算,否则进入读缺失流程进行读缺失更新。首先根据替换算法选择一个要替换的Block,检查该Block的脏位是否有效,如果该Block的脏位无效,则直接从DDR中将缺失的Block替换进来。如果当前要替换出去的Block的脏位有效,则需要先将当前要被替换出去的Block的数据压缩并写回到DDR中,然后再从DDR中将缺失的Block替换进来。
GPU在完成颜色缓冲区运算后将结果通过颜色Cache写回到颜色缓冲区,如果写操作命中,则直接将数据写入到Cache并完成本次写操作,否则进入写缺失流程。首先根据替换算法选择一个要替换的Block,检查该Block的脏位是否有效,如果该Block的脏位无效,则直接将要写的数据写入到Cache的Block中,并设置相应的脏位和屏蔽位。如果要替换的Block的脏位有效,则需要按屏蔽写的方式将该Block的数据写回到DDR,然后再将要写的数据写入到Cache的Block中,并设置相应的脏位和屏蔽位。
如图4所示,在Cache使用写回加写不分配的更新策略时,由于写缺失时不进行缺失Block的回读更新操作,导致当前Cache中的Block数据与DDR中数据不一致,使用屏蔽位Mask表示。而DDR中的数据是采用压缩模式存储的,所以当当前使用了Mask的Block需要被写回DDR时需要将DDR中对应的Block数据读回并与要写的Block数据中数据按Mask进行合并,合并后的数据再进行压缩并写回到DDR中。如果当前Block的Mask为全0,说明当前Block已经都被更改过,此时不需要合并,直接将当前Block通过压缩后写回DDR。
最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (5)
1.一种面向GPU像素流的自适应Cache写分配方法,其特征在于,包括:
当绘制简单的图形场景时Cache使用写回加写不分配更新流程;
当绘制复杂的图形场景时Cache使用写回加写分配更新流程。
2.如权利要求1所述的一种面向GPU像素流的自适应Cache写分配方法,其特征在于,写回加写分配更新流程具体为:
当Cache发生写缺失时首先将要替换的Block数据写回到DDR中,然后将缺失的Block数据更新到Cache中,最后将写数据写到Cache中完成本次访问。
3.如权利要求1所述的一种面向GPU像素流的自适应Cache写分配方法,其特征在于,写回加写不分配更新流程具体为:
当Cache发生写缺失时首先将要替换的Block数据写回到DDR中,然后直接将要写的数据写入当前Block,并设置Block中写入数据位置的屏蔽位Mask有效,减少一次DDR的读更新操作。
4.如权利要求3所述的一种面向GPU像素流的自适应Cache写分配方法,其特征在于,将要替换的Block数据写回到DDR中的步骤具体为:
根据Block中写入数据的屏蔽标志Mask有效的数据写回到DDR中;
带Mask的写回需要先将DDR中一个Tile的数据读回并解压,然后与要写数据进行合并后再压缩后写回到DDR中。
5.如权利要求1所述的一种面向GPU像素流的自适应Cache写分配方法,其特征在于,
所述复杂的图形场景为:GPU的绘制场景中区域三角形重复绘制次数大于Cache的更新块中包含的绘制Tile数量的场景;
所述简单的图形场景为:GPU的绘制场景中区域三角形重复绘制次数小于Cache的更新块中包含的绘制Tile数量的场景。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611140730.7A CN106708434B (zh) | 2016-12-12 | 2016-12-12 | 一种面向GPU像素流的自适应Cache写分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611140730.7A CN106708434B (zh) | 2016-12-12 | 2016-12-12 | 一种面向GPU像素流的自适应Cache写分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106708434A CN106708434A (zh) | 2017-05-24 |
CN106708434B true CN106708434B (zh) | 2020-04-07 |
Family
ID=58935803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611140730.7A Active CN106708434B (zh) | 2016-12-12 | 2016-12-12 | 一种面向GPU像素流的自适应Cache写分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106708434B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1115454A (zh) * | 1994-07-08 | 1996-01-24 | 株式会社日立制作所 | 图像处理装置及使用该装置的系统 |
CN104503950A (zh) * | 2014-12-09 | 2015-04-08 | 中国航空工业集团公司第六三一研究所 | 一种面向OpenGL API的图形处理器 |
CN105304127A (zh) * | 2014-06-03 | 2016-02-03 | 柯尼卡美能达株式会社 | 图像形成装置以及闪速存储器的控制方法 |
-
2016
- 2016-12-12 CN CN201611140730.7A patent/CN106708434B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1115454A (zh) * | 1994-07-08 | 1996-01-24 | 株式会社日立制作所 | 图像处理装置及使用该装置的系统 |
CN105304127A (zh) * | 2014-06-03 | 2016-02-03 | 柯尼卡美能达株式会社 | 图像形成装置以及闪速存储器的控制方法 |
CN104503950A (zh) * | 2014-12-09 | 2015-04-08 | 中国航空工业集团公司第六三一研究所 | 一种面向OpenGL API的图形处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN106708434A (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10133679B2 (en) | Read cache management method and apparatus based on solid state drive | |
US9740631B2 (en) | Hardware-assisted memory compression management using page filter and system MMU | |
US10042576B2 (en) | Method and apparatus for compressing addresses | |
CN111352861B (zh) | 内存压缩方法、装置及电子设备 | |
US9195426B2 (en) | Method and apparatus for generating an output surface from one or more input surfaces in data processing systems | |
CN108205498B (zh) | 内存回收方法及装置、计算机装置及计算机可读存储介质 | |
US10157148B2 (en) | Semiconductor device configured to control a wear leveling operation and operating method thereof | |
CN111324303A (zh) | Ssd垃圾回收方法、装置、计算机设备及存储介质 | |
KR101127686B1 (ko) | 반도체 기억 장치 | |
CN105138473A (zh) | 管理高速缓冲存储器的系统和方法 | |
US20160125569A1 (en) | Data processing apparatus and method of processing a plurality of input data based on respective attribute information thereof | |
US9934145B2 (en) | Organizing memory to optimize memory accesses of compressed data | |
CN110442382B (zh) | 预取缓存控制方法、装置、芯片以及计算机可读存储介质 | |
CN106708434B (zh) | 一种面向GPU像素流的自适应Cache写分配方法 | |
CN117609314A (zh) | 一种缓存数据处理方法、缓存控制器、芯片及电子设备 | |
US7616209B1 (en) | Prescient cache management | |
JPH08171515A (ja) | ディスクキャッシュにおけるメモリ管理方式 | |
CN111522512B (zh) | 优化的冷热数据分离方法、装置、计算机设备及存储介质 | |
CN112162692B (zh) | 一种数据处理方法及终端、存储介质 | |
CN110658999B (zh) | 一种信息更新方法、装置、设备及计算机可读存储介质 | |
CN115269168A (zh) | 内存管理方法及装置、终端和存储介质 | |
US9299126B2 (en) | Image processing apparatus and a method of storing encoded data blocks generated by such an image processing apparatus | |
CN112130766A (zh) | 一种基于Flash存储器的写数据方法、装置、设备及存储介质 | |
CN110223369B (zh) | Tbr架构的帧缓存写回方法、装置及计算机存储介质 | |
CN112732178B (zh) | 一种ssd的数据清除方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |