CN202758397U - 图形处理装置及芯片 - Google Patents
图形处理装置及芯片 Download PDFInfo
- Publication number
- CN202758397U CN202758397U CN 201220317660 CN201220317660U CN202758397U CN 202758397 U CN202758397 U CN 202758397U CN 201220317660 CN201220317660 CN 201220317660 CN 201220317660 U CN201220317660 U CN 201220317660U CN 202758397 U CN202758397 U CN 202758397U
- Authority
- CN
- China
- Prior art keywords
- summit
- unit
- storer
- speed cache
- pel
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Image Generation (AREA)
Abstract
一种图形处理装置及芯片。图形处理装置包括存储器、预处理器、初设单元、输出单元、替换单元;预处理器与内存、存储器相连,根据内存中的图元信息进行预处理,结果存储于存储器中;初设单元与存储器、内存、高速缓存相连,根据预处理结果,从内存中获取图元信息,对高速缓存进行初始设置;输出单元与存储器、高速缓存、显示器相连,根据预处理结果及高速缓存中的图元信息,实现在显示器上输出图形;替换单元与存储器、内存、高速缓存相连,根据预处理结果,从内存中获取图元信息,对高速缓存中的图元信息进行替换。本实用新型无需设置传统高速缓存的标示,节省了芯片面积,同时降低了芯片的设计复杂度和功耗。
Description
技术领域
本实用新型涉及图形处理,特别涉及一种图形处理装置及芯片。
背景技术
现在的用户对计算机应用程序的视觉效果要求越来越高,尤其是游戏类应用程序,常需要描绘复杂且精美的图形,仅一个场景往往就涉及大量的图形。这势必带来大量不间断的图形运算,相应地,对图形处理芯片的运算能力也要求越来越高。
现有技术中使用图元作为图形绘制的基本单位。每个图元包含一个或多个顶点。比如:一个点的图元就是一个顶点,一条线段的图元包含两个顶点,一个三角形的图元包含三个顶点,一个四边形的图元包含四个顶点,以此类推。图元可由绘图应用接口(Application Programming Interface,API)标准定义。常用的绘图应用接口有开放式绘图函数库(Open GraphicsLibrary,OpenGL)、Direct 3D(D3D)等。OpenGL是一个跨编程语言、跨平台的编程接口,可独立于窗口系统和操作系统开发二维/三维的计算机绘图应用程序,以它为基础开发的应用程序可以十分方便地在各种平台间移植。D3D是微软公司的标准,可与不同的微软系统配合进行二维/三维的图形处理。
任意一个复杂的图形都能被拆分成多个相对简单的图元。比如:一个人的图形可以被拆成一个圆形代表头,一个大矩形代表躯干,四个小矩形代表四肢,其中圆形又是由无数个三角形图元组合而成的。为了方便绘制,会把一个复杂的图形尽量拆分成简单图元,比如:三角形、四边形等。
绘制一个图形,就是把组成该图形的各个图元绘制出来。这些图元的信息存储在内存(例如,DDR类型的内存)中。这些图元信息首先包括一张含全部顶点的索引表,该索引表给出各顶点对应数据的实际物理存储地址。其次包括各顶点的数据,另外还会给出图元信息表,表明每个图元是由哪几个顶点组成的。绘制图元的过程就是根据组成该图元的顶点索引信息,按其实际物理存储地址,到内存中读取相应的顶点数据进行图形绘制。由于内存读取速度的局限性,现有的3D图形芯片设计中,均采用顶点高速缓存的方式读取顶点数据,此技术被广泛应用。该技术把最近使用的顶点数据存放在一个高速缓冲存储器(Cache)中。高速缓冲存储器容量比内存小得多,仅能存储有限的数据,但其读取速度也同样比内存迅速许多,常用于存储在下一步很可能为处理器所用的数据。基于图形程序中顶点的空间局部性和时间局部性原理,读取前后的两个图元常会有共用的顶点,将这样的顶点加入高速缓存中,能加快下次读取相同顶点数据的时间。
由于高速缓存的容量有限,无法存储所有的顶点数据,在高速缓存已满时,需按一定策略进行数据替换。所以,需要设置标示(Tag),以表明该顶点是否在高速缓存中。每当读取一个新的图元,需要把图元所属的顶点索引与高速缓存中的标示(Tag)做比较,如果相同则表示命中,该顶点数据在高速缓存中,可直接读取高速缓存。否则表示缺失,需要从片外的内存中取进缺失的顶点,替换掉高速缓存中的顶点,之后再读取高速缓存。
比如某内存的容量可存储1024个顶点的数据,则每个顶点需要用10个比特表示(因210=1024)。高速缓存的容量可存储8个顶点的数据,则每个顶点仅需要用3个比特即可表示(因23=8),通常是用最低的3位表示。即:顶点0在内存中表示为0000000000,在高速缓存中表示为最低的3位000。顶点1在内存中表示为0000000001,在高速缓存中表示为001。顶点7在内存中表示为0000000111,在高速缓存中表示为111。问题是,顶点8在内存中表示为0000001000,而在高速缓存中用最低的3位表示也同样为000。此时,将无法区分该顶点到底是表示顶点0,还是顶点8。所以,需要为各顶点设置标示(Tag),用来保存各顶点的高位。即顶点0的Tag为0000000,而顶点8的Tag为0000001。通过比较Tag值,能确定某顶点是否已在高速缓存中。所以高速缓存中除了要保存顶点数据外,还要保存顶点的标示(Tag),占用高速缓存的存储空间,同时还要增加大量控制逻辑,增加了芯片设计复杂度、芯片面积和芯片功耗。
实用新型内容
本实用新型所要解决的技术问题是提供一种图形处理装置及芯片,能节省图形处理芯片的面积,同时降低图形处理芯片的设计复杂度和功耗。
为了解决上述问题,本实用新型提供了一种图形处理装置,适于按需地将内存中的图元信息读取至高速缓存中,以在终端显示器上输出所述图元对应的图形,包括存储器、预处理器、初设单元、输出单元和替换单元;其中,
所述预处理器与所述内存、存储器相连,配置成根据内存中的图元信息进行预处理,将所述预处理结果存储于所述存储器中;
所述初设单元与所述存储器、内存、高速缓存相连,配置成根据存储器中的预处理结果,从内存中获取图元信息,对高速缓存进行初始设置;
所述输出单元与所述存储器、高速缓存、终端显示器相连,配置成根据存储器中的预处理结果及高速缓存中的图元信息,将图形输出至终端显示器;
所述替换单元与所述存储器、内存、高速缓存相连,配置成根据存储器中的预处理结果,从内存中获取图元信息,对高速缓存中的图元信息进行替换。
可选的,所述预处理器包括:配置成模拟图元串实际输出过程的模拟单元、配置成给出每个图元各顶点在高速缓存中索引值的索引值单元、配置成按照各顶点进入高速缓存的先后顺序进行重排序的重排序单元、配置成给出高速缓存需替换顶点数量的顶点数量单元。
可选的,所述存储器包括:存储模拟单元模拟结果的模拟结果存储器、存储索引值单元给出的各顶点在高速缓存中索引值的索引值存储器、存储经重排序单元排序后形成的顶点索引序列表的顶点索引序列表存储器、存储顶点数量单元给出的高速缓存需替换顶点数量的替换顶点数量存储器。
可选的,所述模拟单元与所述内存、模拟结果存储器相连,配置成根据内存中的图元信息模拟图元串实际输出过程,得到实际输出图元时高速缓存中顶点以及各顶点进入高速缓存的先后顺序,存储于模拟结果存储器中;
所述索引值单元与所述模拟结果存储器、索引值存储器相连,配置成根据模拟结果存储器中实际输出图元时高速缓存中顶点,给出图元的各顶点在高速缓存中的索引值,存储于索引值存储器中;
所述重排序单元与所述模拟结果存储器、顶点索引序列表存储器相连,配置成根据模拟结果存储器中各顶点进入高速缓存的先后顺序,对各顶点进行重排序,获得顶点索引序列表,存储于顶点索引序列表存储器中;
所述顶点数量单元与所述模拟结果存储器、内存、替换顶点数量存储器相连,配置成根据模拟结果存储器中实际输出图元时高速缓存中的顶点以及内存中下一图元的顶点,给出高速缓存需替换顶点数量,存储于替换顶点数量存储器中。
可选的,所述模拟结果存储器与所述模拟单元、索引值单元、重排序单元、顶点数量单元相连,模拟单元将模拟结果写入模拟结果存储器,供索引值单元、重排序单元、顶点数量单元按需读取;
所述索引值存储器与所述索引值单元、输出单元相连,索引值单元将图元各顶点在高速缓存中的索引值写入索引值存储器,供输出单元在输出图形时按需读取;
所述顶点索引序列表存储器与所述重排序单元、初设单元、替换单元相连,重排序单元将顶点索引序列表写入顶点索引序列表存储器,供初设单元完成初始设置;初设单元完成初始设置后,对顶点索引序列表存储器中的顶点索引序列表进行更新,供替换单元在对高速缓存中的图元信息进行替换时读取;
所述替换顶点数量存储器与所述顶点数量单元、替换单元相连,顶点数量单元将高速缓存需替换顶点数量写入替换顶点数量存储器,供替换单元在对高速缓存中的图元信息进行替换时按需读取。
可选的,所述图形处理装置还包括预读取单元,所述预读取单元与所述内存、存储器、高速缓存相连,配置成根据内存中的图元信息、存储器中的预处理结果,将需要替换入高速缓存的图元信息预读至高速缓存中,供所述替换单元在实际替换时读取。
可选的,所述图形处理装置还包括接收单元,所述接收单元与内存相连,配置成将接收到的图元信息存储于内存中,所述图元信息包括顶点索引表、各顶点数据及图元信息表。
可选的,所述存储器为DRAM、SRAM中的一种或几种。
可选的,所述预处理器、初设单元、输出单元和替换单元均集成于处理器中;所述处理器为CPU或专用集成电路。
本实用新型还提供了一种图形处理芯片,包括上述图形处理装置。
本实用新型与现有技术相比,其优点在于:
1、由于事先知道各图元的绘制顺序,本图形处理装置事先计算需要替换的顶点数量,并将需要替换的顶点按照其被替换进高速缓存的前后次序排序,替换时从顶点索引序列表的当前位置读取顶点,按一定的更新策略,替换高速缓存中的顶点,省去了传统高速缓存的标示(Tag),节省了芯片面积。
2、由于省去了标示,也就无需在替换时比较标示位,节约了大量控制逻辑,降低了芯片的设计复杂度,同时降低了芯片的功耗。
附图说明
图1是本实用新型图形处理装置的一种具体实施方式的结构示意图;
图2是图1中预处理器的结构示意图;
图3是图1中存储器的结构示意图;
图4是使用本实用新型图形处理装置的一种具体实施方式实现图形输出的流程示意图;
图5是本实用新型图形处理装置的另一种具体实施方式的结构示意图;
图6是本实用新型图形处理装置的一实施例绘制的一图形示意图。
具体实施方式
下述的阐述与附图将使本实用新型的上述特征及优点更明显。该阐述旨在说明本实用新型,便于充分理解本实用新型,而不应理解为对本实用新型的限定。下面将参照附图详细说明依据本实用新型的较佳实施例。
正如前文所述的,之所以现有技术需要使用标示(tag)动态地管理顶点数据,是因为图形芯片事先不了解顶点数据流具体顺序,即图形芯片不知道这些图元的先后绘制顺序。但如果一个场景中的一串图元会被图形芯片反复绘制,比如制作动画时,每一帧的图形一模一样,区别仅仅是所在位置的改变。则该串顶点数据流会被图形芯片反复地读取,图元在反复绘制中不会变化,顶点数据流的顺序也不会变化,顶点数据的行为是可以预知的。这种情况下,不必再采用复杂的动态管理顶点数据方法。
又如前文所述的,绘制复杂图形时,会尽量将图形拆分成顶点数少的图元,以方便绘制,比如:三角形、四边形。因此在绘制复杂图形时,涉及单个图元的最大顶点数一般都不会很大。目前高速缓存能容纳的顶点数一般都远大于单个图元的最大顶点数。也就是说,不会发生这种情况,即某图元的最大顶点数大于高速缓存能容纳的顶点数,即便高速缓存都已存满,该图元还有顶点还未被读入高速缓存,无法输出图形。一旦出现上述情况,无论现有技术或本实用新型,都将无法实现。
图1是本实用新型图形处理装置的一种具体实施方式的结构示意图。如图1所示,图形处理装置1对内存2中存储的图元信息进行预处理,基于预处理结果对高速缓存3进行写入和替换,并最后基于高速缓存3中的图元信息,将图元对应的图形输出在终端显示器4上。
具体地,图形处理装置1包括预处理器111、初设单元112、输出单元113、替换单元114、存储器12和接收单元13。
接收单元13与内存2相连,将接收到的图元信息存储于内存2中,所述图元信息为输出一串图元所必须的信息,至少包括顶点索引表、各顶点数据及图元信息表。顶点索引表包括该串图元中所有顶点对应到实际物理存储地址的索引值。各顶点数据包括该串图元中所有顶点的各项属性值。图元信息表包括构成每个图元的顶点索引。需要说明的是,接收单元13不是所述图形处理装置1的必备结构,在其他实施方式中所述图元信息可通过其他方式存储于内存2中,比如:预存。
预处理器111与内存2和存储器12相连,根据内存2中的图元信息进行预处理,预处理结果存储于存储器12中。初设单元112与存储器12、内存2、高速缓存3相连,根据存储器12中的预处理结果,从内存2中获取图元信息,对高速缓存3进行初始设置。输出单元113与存储器12、高速缓存3、终端显示器4相连,根据存储器12中的预处理结果及高速缓存3中的图元信息,在终端显示器4上输出图形。替换单元114与存储器12、内存2、高速缓存3相连,根据存储器12中的预处理结果,从内存2中获取图元信息,对高速缓存3中的图元信息进行替换。
图2是图1中预处理器的结构示意图,下面结合图1、图2具体阐述预处理器111的结构。
参考图2,预处理器111包括模拟单元111a、索引值单元111b、重排序单元111c以及顶点数量单元111d。
模拟单元111a与内存2、存储器12相连,根据内存2中的图元信息,模拟需输出的一串图元的实际输出过程,以获得实际输出该串图元的每一个图元时高速缓存中的顶点和每一个图元的各顶点进入高速缓存的先后顺序,模拟结果存储于存储器12中。
索引值单元111b与存储器12相连,根据存储于存储器12中的实际输出每一个图元时高速缓存中的顶点,给出每一个图元的各顶点在高速缓存中的索引值,所述索引值同样存储于存储器12中。
重排序单元111c与存储器12相连,根据存储于存储器12中的各顶点进入高速缓存的先后顺序,对各顶点进行重排序,获得顶点索引序列表,所述顶点索引序列表存储于存储器12中。
顶点数量单元111d与内存2、存储器12相连,根据存储于存储器12中的实际输出每一个图元时高速缓存中的顶点以及内存2中下一图元的顶点(由图元信息表给出),给出每个图元的高速缓存需替换顶点数量,所述高速缓存需替换顶点数量存储于存储器12中。
继续参考图1,所述存储器12存储预处理器111的预处理结果,供初设单元112、输出单元113及替换单元114执行对应处理时读取。
图3是图1中存储器的结构示意图。下面结合图2、图3具体阐述存储器12的结构及与预处理器111的连接关系。
参考图3,存储器12包括模拟结果存储器121、索引值存储器122、顶点索引序列表存储器123以及替换顶点数量存储器124。
模拟结果存储器121与模拟单元111a、索引值单元111b、重排序单元111c、顶点数量单元111d相连,模拟单元111a将模拟结果写入模拟结果存储器121,供索引值单元111b、重排序单元111c、顶点数量单元111d按需读取。
索引值存储器122与索引值单元111b相连,索引值单元111b到模拟结果存储器121中读取实际输出图元时高速缓存中顶点,给出每一个图元的各顶点在高速缓存中的索引值,写入索引值存储器122,供输出单元(图未示)在输出图形时按需读取。
顶点索引序列表存储器123与重排序单元111c相连,重排序单元111c到模拟结果存储器121中读取各顶点进入高速缓存的先后顺序,对各顶点进行重排序,获得顶点索引序列表,存储于顶点索引序列表存储器123中,供初设单元112(图未示)完成初始设置。初设单元112完成初始设置后,对顶点索引序列表存储器123中的顶点索引序列表进行更新,供替换单元114(图未示)替换高速缓存中的图元信息时按需读取。
替换顶点数量存储器124与顶点数量单元111d相连,顶点数量单元111d到模拟结果存储器121中读取实际输出每一个图元时高速缓存中的顶点,到内存2中读取下一图元的顶点(由图元信息表给出),给出每个图元的高速缓存需替换顶点数量,存储于替换顶点数量存储器124中,供替换单元114在对高速缓存中的图元信息进行替换时按需读取。
图4是使用本实用新型图形处理装置的一种具体实施方式实现图形输出的流程示意图。下面结合图1至图4,详细阐述本实用新型的图形处理装置的工作过程。
参考图4,首先执行步骤S1,接收图元信息。具体地,由接收单元13接收需绘制图元串的图元信息,保存于内存2中。
接着,执行步骤S2,预处理。具体地,预处理器111根据内存2中的图元信息完成预处理,预处理结果保存于存储器12中。
本具体实施方式中的预处理至少包括4个内容:
(1)由模拟单元111a模拟图元串的实际输出过程,以获得实际输出图元时高速缓存中顶点和各顶点进入高速缓存的先后顺序,存储于模拟结果存储器121中。
(2)由索引值单元111b根据模拟结果存储器121中的实际输出图元时高速缓存中顶点,获得图元各顶点在高速缓存中的索引值,存储于索引值存储器122中;所述高速缓存中的索引值与所述高速缓存中顶点之间存在一一对应关系。
(3)由重排序单元111c按照模拟结果存储器121中的各顶点进入高速缓存的先后顺序,对各顶点进行重排序,获得顶点索引序列表,存储于顶点索引序列表存储器123中;所述顶点索引序列表存储各顶点数据的索引,根据所述索引可得到该顶点数据的实际物理地址,获取该顶点的数据。
(4)由顶点数量单元111d根据模拟结果存储器121中的实际输出图元时高速缓存中顶点,和内存2中下一图元的顶点,给出图元的高速缓存需替换顶点数量,存储于替换顶点数量存储器中124。
本实施方式中采用的高速缓存替换策略是:高速缓存已满时,总是将最早存入高速缓存中的那个顶点替换掉。但需要说明的是,不应理解为这种替换策略是对本实用新型的限制。事实上,仅需按照选定的替换策略,使重排序和给出需更新顶点数量的结果相匹配,传统高速缓存的替换策略皆适用于本实用新型的图形处理装置。比如:高速缓存已满时,总是将最后进入高速缓存中的那个顶点替换掉。或者将高速缓存中相同最低位的那个顶点替换掉,即如前文所述的容量为8个顶点的高速缓存,顶点8(最低位为000)进入高速缓存中时,替换掉顶点0(最低位同样为000)。或者将高速缓存中的各顶点按使用频率排序,每次总是替换掉最少使用的那个顶点。又或者任意提供一个哈希值,每隔哈希个顶点,替换掉一个顶点,等等。
需要说明的是,虽然本具体实施方式中,预处理是根据模拟结果,先获得图元各顶点在高速缓存中的索引值,再进行重排序获得顶点索引序列表,再给出图元的高速缓存需替换顶点数量的。但实际上预处理的先后顺序并无关紧要,只需要在实际输出该图元前完成上述预处理即可。
具体地,重排序形成顶点索引序列表的步骤包括:依次对每个图元的每个顶点进行处理;若当前顶点不在在实际输出上一图元时的高速缓存中,将当前顶点加到顶点索引序列表的末尾;若加入后顶点索引序列表中的顶点数量大于高速缓存可容纳的顶点数量,判断实际进行顶点数据替换时最早存储进高速缓存中的顶点是否也是当前图元的顶点,若是,则将最早存储进高速缓存中的顶点加到顶点索引序列表的末尾;重复前一步骤,直至实际进行顶点数据替换时最早存储进高速缓存中的顶点不是当前图元的顶点为止。在对每个图元的每个顶点重排序后,形成了顶点索引序列表,所述顶点索引序列表保存每个顶点的顶点索引,存储于顶点索引序列表存储器123中。
具体地,给出图元的高速缓存需替换顶点数量的步骤包括:先将图元高速缓存中需更新的顶点数量设为0,即先默认需更新的顶点数量为0;若当时的顶点索引序列表中的顶点数量大于等于高速缓存可容纳的顶点数量时,判断下一图元的各顶点是否都在当前的高速缓存中;有一个顶点不在当前的高速缓存中,高速缓存中需更新的顶点数量增加1;若此时最早存储进高速缓存的顶点是下一图元的顶点,则高速缓存中需更新的顶点数量再增加1;重复前一步骤,直至此时最早存储进高速缓存的顶点不是下一图元的顶点为止。
继续参考图4,执行步骤S3,初始设置。具体地,由初设单元112从顶点索引序列表存储器123中存储的顶点索引序列表的首个位置开始,将顶点索引对应的顶点数据逐个由内存2中存储到高速缓存3中,直至高速缓存3存满;将顶点索引序列表中还未读取的首个顶点调整为当前顶点。
继续执行步骤S4,判断是否每个图元都已输出。若否,则执行步骤S5,继续输出图元。若是,则输出完毕,该串图元已经全部输出于终端显示器4上。
继续执行步骤S5,输出图元。具体地,由输出单元113,根据索引值存储器122中存储的图元各顶点在高速缓存中的索引值,到高速缓存3中读取该图元的各顶点数据,在终端显示器4上输出当前图元。
继续执行步骤S6,替换高速缓存3中的顶点。具体地,在输出之后,当替换顶点数量存储器124中存储的当前图元的高速缓存需替换顶点顶点数量n不为0时,从顶点索引序列表的当前位置开始,根据顶点索引到内存2中读取n个顶点,替换最早进入高速缓存3中的n个顶点。
替换完毕后,从步骤S4开始循环,继续输出下一图元,直至按照图元串顺序,每个图元都已输出,绘制完毕。
使用本实用新型重复绘制同一串图元时,优势更为明显。因为仅需在绘制第一串图元时进行预处理。绘制其后的各串图元时,因是同一串图元的重复,预处理的结果和第一串图元是一样的。所以,直接使用之前预处理的结果,从步骤S3初始设置开始执行即可。
图5是本实用新型图形处理装置的另一种具体实施方式的结构示意图。与前一具体实施方式相同之处,在此不再赘述。
不同之处在于,本实施方式中的高速缓存3中划分出一定的预留空间31,用于存储替换所需的顶点数据。比如:容量为8个顶点的高速缓存,其中7个顶点作为输出空间,存储输出当前图元所需的顶点,1个作为预留空间,存储替换所需的顶点数据。或者6个顶点用于存储输出当前图元所需的顶点,2个用作预留空间。具体分配可根据实际需求,在高速缓存容量允许的范围内,自主调配。
相对应地,增加了预读取单元115。预读取单元115可在输出单元113输出图元的同时,根据替换顶点数量存储器124中存储的该图元高速缓存需替换顶点数量,按照顶点索引序列表存储器123中存储的顶点索引序列表当前顶点的顶点索引,并行地到内存2中读取当前顶点数据,存储在预留空间31中。替换时,替换单元114从预留空间31中读取顶点数据,替换高速缓存3中输出空间内的顶点数据。如此并行操作,可进一步加快图形处理芯片的执行效率。
下面通过一具体实施例,以更直观地理解本实用新型。图6是本实用新型图形处理装置的一实施例绘制的一图形示意图。该图形已进行了图元拆分,被拆分成序号为①-⑨的9个图元,每个图元均含3个顶点。各图元分别由哪些顶点组成,由下面的图元信息表1给出:
图元序号 | 顶点索引 | 顶点索引 | 顶点索引 |
① | 0 | 1 | 2 |
② | 0 | 2 | 3 |
③ | 0 | 3 | 4 |
④ | 0 | 4 | 5 |
⑤ | 0 | 5 | 6 |
⑥ | 0 | 6 | 7 |
⑦ | 0 | 7 | 8 |
⑧ | 0 | 8 | 9 |
⑨ | 0 | 9 | 1 |
表1
本例中的高速缓存3最多可容纳8个顶点的数据。上述的图元信息表、顶点数据、顶点索引表已经预存在内存2中。
首先,由预处理器111对该串的9个图元进行预处理。
图元①为首个图元,索引值单元111b给出该图元的各顶点在高速缓存3中的索引值为0、1、2,存储于索引值存储器122中。重排序单元111c对图元①的各顶点进行重排序。处理第一个顶点0时,当前的顶点索引序列表为空,所以顶点0作为顶点索引序列表的首个顶点。接着处理第二、第三个顶点1和2,此时顶点索引序列表不再为空,所以1和2分别加到0的后面,形成顶点索引序列表为:0、1、2,存储于顶点索引序列表存储器123中。接着由顶点数量单元111d给出高速缓存3需替换顶点数量n。将需更新的顶点数量n设为0。由于此时的索引序列表中的顶点数量为3,而高速缓存3可容纳8个顶点,所以高速缓存3中仍有富余空间,无需进行更新,图元①的需更新顶点数量n为0,替换顶点数量存储器124中。
接着处理图元②,索引值单元111b给出该图元的各顶点在高速缓存3中的索引值为0、2、3,存储于索引值存储器122中。重排序单元111c对图元②的各顶点进行重排序。图元②有一顶点3不在当前的高速缓存3中,且此时的顶点索引序列表不为空,需要将其加到索引序列表的末尾,即此时的顶点索引序列表为:0、1、2、3,更新存储于顶点索引序列表存储器123中的顶点索引序列表。接着由顶点数量单元111d给出高速缓存3需替换顶点数量n。将需更新的顶点数量n设为0。由于此时的索引序列表中的顶点数量为4,而高速缓存3可容纳8个顶点,所以高速缓存3中仍有富余空间,无需进行更新,图元②的需更新顶点数量n为0,替换顶点数量存储器124中。
对图元③、④、⑤图元进行类似的预处理,此处不再赘述。
索引值单元111b给出图元⑥的各顶点在高速缓存3中的索引值设为0、6、7,存储于索引值存储器122中。重排序单元111c对图元⑥的各顶点进行重排序。图元⑥有一顶点7不在当前的高速缓存3中,且此时的顶点索引序列表不为空,需要将其加到索引序列表的末尾,即此时的顶点索引序列表为:0、1、2、3、4、5、6、7,更新存储于顶点索引序列表存储器123中的顶点索引序列表。接着由顶点数量单元111d给出高速缓存3需替换顶点数量n。将需更新的顶点数量设为0。此时的索引序列表中的顶点数量为8,高速缓存3可容纳8个顶点,此时的索引序列表中的顶点数量不再小于高速缓存3中可容纳的顶点数量,需进行更新。下一图元⑦有1个顶点,即顶点索引为8的顶点不在高速缓存3中,图元⑥的高速缓存中需更新的顶点数量n为由0变1。此时最早存储进高速缓存3的顶点是顶点0,即顶点8进入高速缓存3中时,替换掉的是顶点0,而顶点0同样是下一图元⑦的顶点。因此,顶点0需要再次被替换进来,即图元⑥的高速缓存3中需更新的顶点数量n再加1,由1变为2。顶点0被顶点8替换后,最早存储进高速缓存3的顶点为顶点1。再次判断顶点1是否是下一图元⑦的顶点。顶点1不是下一图元⑦的顶点,至此,获得图元⑥的高速缓存3中需更新的顶点数量n为2,替换顶点数量存储器124中。
图元⑦有一个顶点8在图元⑥的更新步骤中被替换进了高速缓存3中,索引值单元111b给出图元⑦此时的各顶点在高速缓存3中的索引值设为1、7、0,存储于索引值存储器122中。重排序单元111c对图元⑦的各顶点进行重排序。图元⑦有1个顶点8不在当前的高速缓存3中,需要加到索引序列表的末尾,即此时的顶点索引序列表为:0、1、2、3、4、5、6、7、8,更新存储于顶点索引序列表存储器123中的顶点索引序列表。接着由顶点数量单元111d给出高速缓存3需替换顶点数量n。将需更新的顶点数量设为0。下一图元⑧有一个顶点9不在高速缓存3中,图元⑦的高速缓存3中需更新的顶点数量n为由0变1。此时最早存储进高速缓存3的顶点是顶点2,即顶点9进入高速缓存3中时,替换掉的是顶点2,而顶点2不是下一图元⑧的顶点,所以需更新的顶点数量无需改变,图元⑦的高速缓存中需更新的顶点数量n为1,替换顶点数量存储器124中。
图元⑧、⑨也进行类似的预处理,此处不再赘述。
最终,经重排序产生的顶点索引序列表为:0、1、2、3、4、5、6、7、8、0、9、1。
经预处理后产生的结果及输出该图元时高速缓存中的顶点情况见表2:
表2
接着,由初始单元112进行初始设置,从顶点索引序列表存储器123中顶点索引序列表的首个位置,即顶点0开始,将顶点数据逐个由内存2中存储到高速缓存3中,直至高速缓存3放满,即高速缓存中的顶点数据为0、1、2、3、4、5、6、7。将顶点索引序列表中的当前顶点设为第9个,即顶点8。
接着,对该串图元循环进行输出和顶点更新。
图元①为首个图元,各顶点索引为0、1、2(参见表2),由输出单元113到高速缓存3中读取第0、1、2位的顶点数据输出图元①。图元①的高速缓存中需更新的顶点数量n为0,无需更新。
图元②的各顶点索引为0、2、3(参见表2),由输出单元113到高速缓存3读取第0、2、3位的数据,输出图元②。图元②的高速缓存中需更新的顶点数量n为0,无需更新。
图元③的各顶点索引为0、3、4(参见表2),由输出单元113到高速缓存3读取第0、3、4位的数据,输出图元③。图元③的高速缓存中需更新的顶点数量n为0,无需更新。
图元④的各顶点索引为0、4、5(参见表2),由输出单元113到高速缓存3读取第0、4、5位的数据,输出图元④。图元④的高速缓存中需更新的顶点数量n为0,无需更新。
图元⑤的各顶点索引为0、5、6(参见表2),由输出单元113到高速缓存3读取第0、5、6位的数据,输出图元⑤。图元⑤的高速缓存中需更新的顶点数量n为0,无需更新。
图元⑥的各顶点索引为0、6、7(参见表2)。由输出单元113到高速缓存3读取第0、6、7位的数据,输出图元⑥。图元⑥的高速缓存中需更新的顶点数量n为2,说明需要更新2个顶点。由替换单元114从顶点索引序列表的当前位置获取1个顶点(即顶点8)的顶点索引,根据该索引到内存2中读取顶点8的数据,替换最早进入高速缓存3中的顶点0。调整顶点索引序列表的当前位置为下一顶点0。接着,再从顶点索引序列表的当前位置获取1个顶点(顶点0)的顶点索引,根据该索引到内存2中读取顶点0的数据,替换最早进入高速缓存中的顶点1。调整顶点索引序列表的当前位置为下一顶点9。
图元⑦的各顶点索引为1、7、0(参见表2),由输出单元113到高速缓存3读取第1、7、0位的数据,输出图元⑦。图元⑦的高速缓存中需更新的顶点数量n为1,说明需要更新1个顶点。由替换单元114从顶点索引序列表的当前位置获取1个顶点(顶点9)的顶点索引,根据该索引到内存2中读取顶点9的数据,替换最早进入高速缓存3中的顶点2。调整顶点索引序列表的当前位置为下一顶点1。
图元⑧的各顶点索引为1、0、2(参见表2),由输出单元113到高速缓存3读取第1、0、2位的数据,输出图元⑧。图元⑧的高速缓存中需更新的顶点数量n为1,说明需要更新1个顶点。由替换单元114从顶点索引序列表的当前位置获取1个顶点(顶点1)的顶点索引,根据该索引到内存2中读取顶点1的数据,替换最早进入高速缓存3中的顶点3。顶点1已为顶点索引序列表的末尾位置,没有还未读取的顶点了,所以不再进行调整。
图元⑨的各顶点索引为1、2、3(参见表2),由输出单元113到高速缓存3读取第1、2、3位的数据,输出图元⑨。图元⑨的高速缓存中需更新的顶点数量n为0,说明无需更新。
至此,按照各图元读取的顺序,该串图元的每个图元都已输出,绘制结束。
本实用新型还提供了一种图形处理芯片,包括上述的图形处理装置。如何将图像处理装置集成于图形处理芯片上,为本领域技术人员所熟悉的技术手段,在此不再赘述。
需要说明的是,本实用新型中的存储器为DRAM、SRAM中的一种或几种。所述预处理器111、初设单元112、输出单元113和替换单元114均集成于处理器中;所述处理器为CPU或专用集成电路(Application-Specific IntegratedCircuit,ASIC)。
本实用新型图形处理装置及芯片中各个单元和各器件可以通过现场可编程门阵列(Field-Programmable Gate Array,FPGA)来实现,但是本实用新型对此不做限制,还可以是其他可实现相同功能的硬件。
本实用新型图形处理装置事先计算输出下一图元时高速缓存中需要替换的顶点数量,并将顶点按照被替换进高速缓存的前后次序排序,替换时从顶点索引序列表的当前位置读取顶点,按既定的更新策略,替换高速缓存中的顶点,省去了传统高速缓存的标示(Tag),节省了芯片面积。同时,也节约了大量控制逻辑,降低了芯片的设计复杂度和功耗。
本实用新型虽然已以较佳实施例公开如上,但其并不是用来限定本实用新型,任何本领域技术人员在不脱离本实用新型的精神和范围内,都可以利用上述揭示的方法和技术内容对本实用新型技术方案做出可能的变动和修改,因此,凡是未脱离本实用新型技术方案的内容,依据本实用新型的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本实用新型技术方案的保护范围。
Claims (10)
1.一种图形处理装置,适于按需地将内存中的图元信息读取至高速缓存中,以在终端显示器上输出所述图元对应的图形,其特征在于,包括存储器、预处理器、初设单元、输出单元和替换单元;其中,
所述预处理器与所述内存、存储器相连,配置成根据内存中的图元信息进行预处理,将所述预处理结果存储于所述存储器中;
所述初设单元与所述存储器、内存、高速缓存相连,配置成根据存储器中的预处理结果,从内存中获取图元信息,对高速缓存进行初始设置;
所述输出单元与所述存储器、高速缓存、终端显示器相连,配置成根据存储器中的预处理结果及高速缓存中的图元信息,将图形输出至终端显示器;
所述替换单元与所述存储器、内存、高速缓存相连,配置成根据存储器中的预处理结果,从内存中获取图元信息,对高速缓存中的图元信息进行替换。
2.如权利要求1所述的图形处理装置,其特征在于:
所述预处理器包括:配置成模拟图元串实际输出过程的模拟单元、配置成给出每个图元各顶点在高速缓存中索引值的索引值单元、配置成按照各顶点进入高速缓存的先后顺序进行重排序的重排序单元、配置成给出高速缓存需替换顶点数量的顶点数量单元。
3.如权利要求2所述的图形处理装置,其特征在于:
所述存储器包括:存储模拟单元模拟结果的模拟结果存储器、存储索引值单元给出的各顶点在高速缓存中索引值的索引值存储器、存储经重排序单元排序后形成的顶点索引序列表的顶点索引序列表存储器、存储顶点数量单元给出的高速缓存需替换顶点数量的替换顶点数量存储器。
4.如权利要求3所述的图形处理装置,其特征在于:
所述模拟单元与所述内存、模拟结果存储器相连,配置成根据内存中的图元信息模拟图元串实际输出过程,得到实际输出图元时高速缓存中顶点以及各顶点进入高速缓存的先后顺序,存储于模拟结果存储器中;
所述索引值单元与所述模拟结果存储器、索引值存储器相连,配置成根据模拟结果存储器中实际输出图元时高速缓存中顶点,给出图元的各顶点在高速缓存中的索引值,存储于索引值存储器中;
所述重排序单元与所述模拟结果存储器、顶点索引序列表存储器相连,配置成根据模拟结果存储器中各顶点进入高速缓存的先后顺序,对各顶点进行重排序,获得顶点索引序列表,存储于顶点索引序列表存储器中;
所述顶点数量单元与所述模拟结果存储器、内存、替换顶点数量存储器相连,配置成根据模拟结果存储器中实际输出图元时高速缓存中的顶点以及内存中下一图元的顶点,给出高速缓存需替换顶点数量,存储于替换顶点数量存储器中。
5.如权利要求3所述的图形处理装置,其特征在于:
所述模拟结果存储器与所述模拟单元、索引值单元、重排序单元、顶点数量单元相连,模拟单元将模拟结果写入模拟结果存储器,供索引值单元、重排序单元、顶点数量单元按需读取;
所述索引值存储器与所述索引值单元、输出单元相连,索引值单元将图元各顶点在高速缓存中的索引值写入索引值存储器,供输出单元在输出图形时按需读取;
所述顶点索引序列表存储器与所述重排序单元、初设单元、替换单元相连,重排序单元将顶点索引序列表写入顶点索引序列表存储器,供初设单元完成初始设置;初设单元完成初始设置后,对顶点索引序列表存储器中的顶点索引序列表进行更新,供替换单元在对高速缓存中的图元信息进行替换时读取;
所述替换顶点数量存储器与所述顶点数量单元、替换单元相连,顶点数量单元将高速缓存需替换顶点数量写入替换顶点数量存储器,供替换单元在对高速缓存中的图元信息进行替换时按需读取。
6.如权利要求1所述的图形处理装置,其特征在于:
所述图形处理装置还包括预读取单元,所述预读取单元与所述内存、存储器、高速缓存相连,配置成根据内存中的图元信息、存储器中的预处理结果,将需要替换入高速缓存的图元信息预读至高速缓存中,供所述替换单元在实际替换时读取。
7.如权利要求1至6所述的任一种图形处理装置,其特征在于:
所述图形处理装置还包括接收单元,所述接收单元与内存相连,配置成将接收到的图元信息存储于内存中,所述图元信息包括顶点索引表、各顶点数据及图元信息表。
8.如权利要求1所述的图形处理装置,其特征在于:所述存储器为DRAM、SRAM中的一种或几种。
9.如权利要求1所述的图形处理装置,其特征在于:所述预处理器、初设单元、输出单元和替换单元均集成于处理器中;所述处理器为CPU或专用集成电路。
10.一种图形处理芯片,其特征在于:包括如权利要求1至9所述的任一种图形处理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201220317660 CN202758397U (zh) | 2012-07-02 | 2012-07-02 | 图形处理装置及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201220317660 CN202758397U (zh) | 2012-07-02 | 2012-07-02 | 图形处理装置及芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN202758397U true CN202758397U (zh) | 2013-02-27 |
Family
ID=47737566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201220317660 Expired - Lifetime CN202758397U (zh) | 2012-07-02 | 2012-07-02 | 图形处理装置及芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN202758397U (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550975A (zh) * | 2015-12-11 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种3d图形指令优化方法 |
CN109035378A (zh) * | 2018-07-30 | 2018-12-18 | 芯视图(常州)微电子有限公司 | 3d图形处理的图元装配硬件加速器 |
-
2012
- 2012-07-02 CN CN 201220317660 patent/CN202758397U/zh not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550975A (zh) * | 2015-12-11 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种3d图形指令优化方法 |
CN105550975B (zh) * | 2015-12-11 | 2019-06-28 | 中国航空工业集团公司西安航空计算技术研究所 | 一种3d图形指令优化方法 |
CN109035378A (zh) * | 2018-07-30 | 2018-12-18 | 芯视图(常州)微电子有限公司 | 3d图形处理的图元装配硬件加速器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105630441B (zh) | 一种基于统一染色技术的gpu系统 | |
US9928565B2 (en) | Flex rendering based on a render target in graphics processing | |
CN107209923B (zh) | 图形处理中的混合渲染 | |
CN103793893B (zh) | 采用限缓冲区处理的世界和屏幕空间管线间基元重新排序 | |
EP2946364B1 (en) | Rendering graphics data using visibility information | |
US8902228B2 (en) | Optimizing resolve performance with tiling graphics architectures | |
US9406149B2 (en) | Selecting and representing multiple compression methods | |
JP4076502B2 (ja) | ゾーン・レンダリングのための効率的なグラフィックス状態管理 | |
CN102651142B (zh) | 图像渲染方法和装置 | |
EP3005305B1 (en) | Conditional execution of rendering commands based on per bin visibility information with added inline operations | |
US20130241938A1 (en) | Visibility-based state updates in graphical processing units | |
CN104641396A (zh) | 用于调度图形处理单元命令流的延迟抢占技术 | |
US6636221B1 (en) | Graphics processing system with enhanced bus bandwidth utilization and method therefore | |
US20040227767A1 (en) | Vector graphics circuit accelerator for display systems | |
CN103150699A (zh) | 图形指令生成装置和图形指令生成方法 | |
EP3350766A1 (en) | Storing bandwidth-compressed graphics data | |
CN107533752A (zh) | 用于图形处理的基于表面格式的自适应存储器地址扫描 | |
CN102799431B (zh) | 图元预处理和处理方法、图形处理方法及其处理器、装置 | |
KR20060116916A (ko) | 텍스쳐 캐쉬 및 이를 구비한 3차원 그래픽 시스템, 그리고그것의 제어 방법 | |
CN202758397U (zh) | 图形处理装置及芯片 | |
JP2023525725A (ja) | データ圧縮の方法及び装置 | |
US7490208B1 (en) | Architecture for compact multi-ported register file | |
CN118043842A (zh) | 一种渲染格式选择方法及其相关设备 | |
JP2003132347A (ja) | 画像処理装置 | |
CN111145073A (zh) | 基于细分状态的图形处理器和图形处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20130227 |