CN101427282B - 具有可配置高速缓存器的图形系统 - Google Patents
具有可配置高速缓存器的图形系统 Download PDFInfo
- Publication number
- CN101427282B CN101427282B CN2007800146016A CN200780014601A CN101427282B CN 101427282 B CN101427282 B CN 101427282B CN 2007800146016 A CN2007800146016 A CN 2007800146016A CN 200780014601 A CN200780014601 A CN 200780014601A CN 101427282 B CN101427282 B CN 101427282B
- Authority
- CN
- China
- Prior art keywords
- cache
- caches
- processing unit
- processing units
- equipment
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
Abstract
一种图形系统包含图形处理器及高速缓冲存储器系统。所述图形处理器包含执行用以渲染图形图像的各种图形操作的处理单元。所述高速缓冲存储器系统可包含完全可配置高速缓存器、部分可配置高速缓存器或可配置高速缓存器与专用高速缓存器的组合。所述高速缓冲存储器系统可进一步包含控制单元、纵横杆及仲裁器。所述控制单元可确定所述处理单元对存储器的利用率并基于存储器利用率将所述可配置高速缓存器指派给所述处理单元。所述可配置高速缓存器可经指派以实现对这些高速缓存器的良好利用率且避免存储器存取瓶颈。所述纵横杆将所述处理单元耦合到其被指派的高速缓存器。所述仲裁器促进所述高速缓存器与主存储器之间的数据交换。
Description
技术领域
本发明大体来说涉及电路,且更具体来说涉及图形系统。
背景技术
图形系统广泛用于渲染2维(2-D)及3维(3-D)图像以用于各种应用,例如视频游戏、制图、计算机辅助设计(CAD)、仿真及显像工具、成像等。3-D图像可仿造有表面,且每一表面可近似为多边形(通常为三角形)。用于表示3-D图像的三角形的数目取决于表面的复杂度以及所需的图像解析度且可以相当大,例如数百万个。每一三角形均由三个顶点界定,且每一顶点均与诸如空间坐标、色彩值及纹理坐标等各种属性相关联。每一属性可具有多达四个分量。例如,空间坐标通常由水平与垂直坐标(x与y)及深度(z)给出,色彩值通常由红、绿及蓝(r、g、b)给出,且纹理坐标通常由水平及垂直坐标(u与v)给出。
图形系统中的图形处理器可执行渲染2-D或3-D图像的各种图形操作。所述图像由许多三角形组成,且每一三角形均由若干图片元素(像素)组成。图形处理器通过确定每一三角形内的每一像素的分量值来渲染所述三角形。所述图形操作可包含光栅化、模板及深度测试、纹理映射、着色等。由于所述图形处理器对像素数据(其可以是任何与像素相关联的数据)执行各种图形操作,所以迅速存取像素数据的能力可对性能产生较大影响。
发明内容
本文中描述具有可配置高速缓存器且具有良好性能的图形系统。一种图形系统包含图形处理器及高速缓冲存储器系统。所述图形处理器包含执行各种图形操作以渲染图形图像的处理单元。所述高速缓冲存储器系统可包含完全可配置高速缓存器、部分可配置高速缓存器或可配置高速缓存器与专用高速缓存器的组合。如果一种高速缓存器可指派给可指派有高速缓存器的处理单元中的任何一者,则所述高速缓存器是完全可配置的。如果一种高速缓存器可指派给所述处理单元的一个子组中的任何处理单元,则所述高速缓存器是部分可配置的。如果一种高速缓存器指派给专用处理单元,则所述高速缓存器是专用的。所述高速缓存器是可存储用于所述处理单元的数据(例如,像素数据及/或指令)的快速存储器。
所述高速缓冲存储器系统可进一步包含控制单元、纵横杆及仲裁器。所述控制单元可确定处理单元对存储器的利用率并基于存储器利用率向处理单元指派可配置高速缓存器。所述可配置高速缓存器可经指派以实现对这些高速缓存器的良好利用率且避免图形处理器内任何点处的存储器存取瓶颈。所述纵横杆将处理单元耦合到其指派的高速缓存器。所述仲裁器促进高速缓存器与主存储器之间的数据交换。
下文将更详细地描述本发明的各方面及实施例。
附图说明
结合图式阅读下文所述的详细说明,人们将更易明了本发明的特征及性质,在所有图示中相同的参考字符对应地进行标识。
图1显示具有专用高速缓存器的图形系统。
图2显示具有完全可配置高速缓存器的图形系统。
图3显示图2中的图形系统中的纵横杆。
图4显示处理单元的高速缓存器及状态机。
图5显示具有可配置高速缓存器及专用高速缓存器的图形系统。
图6显示操作具有可配置高速缓存器的图形系统的过程。
图7显示无线通信系统中的无线装置。
具体实施方式
本文所用词“例示性”是指“充当实例、示例或例证”。在本文中,称作为“例示性”的任何实施例或设计均未必应视为比其它实施例或设计更优选或有利。
图1显示具有专用高速缓存器的图形系统100的方块图。图形系统100包含图形处理器110及高速缓冲存储器系统130。图形处理器110包含布置成管线且用于渲染2-D及3-D图像的各种处理单元。命令引擎120a接收指定待执行的图形操作的传入命令并将所述命令解码。三角形位置及z设置引擎120b计算用于随后的光栅化过程的必要参数。例如,引擎120b可计算每一三角形的三个边的线性方程式的系数、深度(z)斜率的系数等。光栅化引擎120c将每一三角形或线分解成若干像素并为每一像素产生一个屏幕坐标。
模板及深度测试引擎120d对每一像素(如果已启用)执行模板测试以确定应显示还是丢弃所述像素。模板缓冲器(图1中未显示)存储正被渲染的图像中的每一像素位置的当前模板值。引擎120d将每一像素的所存储模板值与参考值进行比较并基于所述比较的结果保留或丢弃所述像素。引擎120d还对每一像素(如果可适用)执行深度测试(还称作z测试)以确定应显示还是丢弃所述像素。z缓冲器(图1中未显示)存储正被渲染的图像中的每一像素位置的当前z值。引擎120d将每一像素的z值(当前z值)与z缓冲器中的对应z值(所存储的z值)进行比较、显示所述像素并更新z缓冲器,且可能地在当前z值比所存储的z值更靠近/接近的情况下更新模板缓冲器,且在当前z值比所存储的z值更靠后的情况下丢弃所述像素。
属性设置引擎120e计算用于随后的像素属性内插的必要参数。例如,引擎120e可计算用于属性内插的线性方程式的系数。像素内插引擎120f基于像素的屏幕坐标并通过使用来自引擎120e的信息来计算每一三角形内的每一像素的属性分量值。纹理映射引擎120g执行纹理映射(如果已启用)以将纹理应用到每一三角形。纹理图像可存储在纹理缓冲器(图1中未显示)中。每一三角形的三个顶点可与纹理图像中的三个(u,v)坐标相关联,且因而所述三角形的每一像素可与纹理图像中的具体纹理坐标相关联。通过在每一像素的纹理坐标所指示的位置处用纹理图像的色彩修改所述像素的色彩来实现纹理化。
每一像素均与诸如色彩、深度、纹理等信息相关联。片断是指像素及其相关联的信息。片断着色器120h将可由指令序列组成的软件程序应用到每一片断。片断着色器120h还可将纹理请求发送到纹理映射引擎120g。片断引擎120i对每一片断执行诸如α测试、雾化融合、α融合、逻辑操作及抖动操作的功能并将结果提供给色彩缓冲器。
图1中显示的图形操作在所属技术领域中是已知的。图形处理器可实施诸如开放式图形库(OpenGL)、Direct3D等软件接口。OpenGL在2004年10月22日出版的可公开获得的名称为“图形系统:规范”的版本2.0的文件中有所描述。
一般来说,图形处理器可包含用于任何组的图形操作的任何数目的处理单元。每一处理单元均可为以专用硬件、处理器或这两者的组合实施的引擎。例如,图1中显示的引擎可以专用硬件来实施,而片断着色器可以可编程中央处理单元(CPU)来实施。所述处理单元可根据所期望的最优化以各种顺序布置。例如,为节省能量,可期望在管线较早处执行模板及深度测试以便较早丢弃不可见的像素,如图1所示。所述处理单元还可以其它顺序来布置,例如,模板及深度测试引擎120d可位于纹理映射引擎120g之后。
高速缓冲存储器系统130为图形处理器110内的某些处理单元120包含专用高速缓存器150a到150f。在图1所显示的设计中,模板高速缓存器150a存储图像中正被渲染的区域中的像素的模板值,且深度高速缓存器150b存储相同或不同区域中的像素的深度值。模板及深度测试引擎120d存取高速缓存器150a中所存储的模板值并使用这些模板值执行模板测试。引擎120d还存取高速缓存器150b中所存储的z值并使用这些z值执行深度测试。纹理高速缓存器150c存储由纹理映射引擎120g用于将纹理映射到三角形的纹理映射表。着色器指令高速缓存器150d存储用于片断着色器120h的指令,且着色器数据高速缓存器150e存储用于片断着色器120h的数据。色彩高速缓存器150f存储像素的色彩(例如,红、绿及蓝)值。
仲裁器160耦合到高速缓存器150a到150f及主存储器170且促进此两者之间的数据交换。每当处理单元120存取相关联的高速缓存器150以获得数据且所请求的数据没有存储在所述高速缓存器中,均宣告高速缓存未命中。所述高速缓存未命中导致在需要时将所述高速缓存器的当前内容存储回到主存储器170,且从主存储器170提取数据的新区域并将其载入到高速缓存器中。然后可从高速缓存器获得所请求的数据并将其提供给处理单元。仲裁器160允许以一次一个高速缓存器的方式与主存储器170交换数据。
图1中的高速缓冲存储器系统130可改善图形系统100的存储器存取性能。高速缓存器150是靠近图形处理器110定位的小型快速存储器。因为处理单元120可更快地检索数据并存储结果,所以快速高速缓冲存储器可改善处理速度。主存储器170是离图形处理器110更远定位(例如,芯片外)的大型的较慢的存储器。主存储器170存储可载入到高速缓存器150中的数据及指令。高速缓存器150减少从主存储器170提取的次数且大体地改善图形系统100的性能。
图1显示专用高速缓存器的使用。每一高速缓存器150均存储用于具体处理单元120的数据或指令。每一高速缓存器150的利用率均取决于正执行的图形应用。例如,3-D图形应用可仅执行z通过,从而可仅启动深度及/或模板测试。在此应用中,仅可利用模板高速缓存器150a及/或深度高速缓存器150b,且剩余的高速缓存器150c到150f可处于闲置状态。举另一实例来说,简单的着色器应用可不利用着色器指令高速缓存器150d及着色器数据高速缓存器150e,且这些高速缓存器可处于闲置状态。举又一实例来说,图形应用可停用纹理映射,在此情况下可不需要纹理高速缓存器150c。由这些实例可以看出,专用高速缓存器的使用可导致某些图形应用对所述高速缓存器的较差利用率。专用高速缓存器的使用还可导致在不同的图形应用的不同地方发生存储器存取瓶颈。所述瓶颈限定了图形系统100的性能。
图2显示具有完全可配置高速缓存器的图形系统200的实施例。图形系统200包含图形处理器210及高速缓冲存储器系统230。图形处理器210包含可如上文分别针对图1中的处理单元120a到120i所描述来操作的处理单元220a到220i。如图2中所示,仅部分处理单元可利用高速缓存器来存储数据及/或指令。特定来说,高速缓存器可用于存储模板及深度测试引擎220d的模板及/或深度值、纹理映射引擎220g的纹理数据、片断着色器220h的指令及/或数据及片断引擎220i的色彩值。
高速缓冲存储器系统230包含N个完全可配置高速缓存器250a到250n,所述高速缓存器可经指派以存储图形处理器210内的处理单元220的数据及/或指令,其中通常N>1。所述高速缓存器完全可配置是指每一高速缓存器均可被指派给可指派有高速缓存器的任何处理单元。在一实施例中,每一高速缓存器250均可仅被指派给一个处理单元220,而既定的处理单元220可指派有零、一个或多个高速缓存器250。控制单元232基于模板及深度测试引擎220d、纹理映射引擎220g、片断着色器220h及/或片断引擎220i对存储器的利用率将可用高速缓存器250a到250n指派给这些处理单元。纵横杆240将处理单元220d、220g、220h及220i耦合到其指派的高速缓存器250a到250n。纵横杆240还可称作纵横开关或某一其它术语。仲裁器260将高速缓存器250a到250n耦合到主存储器270并促进所述高速缓存器与所述主存储器之间的数据交换。仲裁器260还可称作选择器、存储器接口或某一其它术语。
大体来说,高速缓冲存储器系统可包含任何数目的可以是任何大小的高速缓存器。可基于存储器存取性能及电路面积之间的折衷来选择高速缓存器的数目及其大小。较大的高速缓存器大小导致较高的高速缓存命中率及所请求的数据存储在所述高速缓存器中的较大可能性。然而,较大的高速缓存器大小还要求更多电路面积,这可增大成本。在一个具体实施例中,高速缓冲存储器系统230包含12个高速缓存器250,且每一高速缓存器为4千字节。在其它实施例中,较少的或额外的高速缓存器以及其它大小的高速缓存器可用于所述高速缓冲存储器系统。
图3显示图2中的纵横杆240的实施例的方块图。在此实施例中,纵横杆240包含K个接口单元310a到310k,其中大体来说K可以是任何整数值。所述接口单元也可称作主单元或某一其它术语。在图2所显示的实施例中,K等于6,且所述6个接口单元用于模板、深度、纹理、着色器指令、着色器数据及色彩。既定的处理单元220可与一个或多个接口单元310相互作用,这取决于所述处理单元的数据需求。纵横杆240进一步包含分别用于K个接口单元310a到310k的K个多路复用器(Mux)340a到340k,及分别用于N个高速缓存器250a到250n的N个多路复用器350a到350n。
每一接口单元310均经由相应组的线302耦合到相关联的处理单元220。每一接口单元310均包含状态机320及输入/输出(I/O)单元330。在每一接口单元310中,I/O单元330经由线302从相关联的处理单元220接收地址及/或输出数据并将所述地址/数据提供到N个多路复用器350a到350n中的每一者的一个输入。I/O单元330还从相关联的多路复用器340接收输入数据或指令并经由线302将数据/指令提供给相关联的处理单元220。
每一多路复用器350从所有K个I/O单元330a到330k的K个输入处接收地址/数据。每一多路复用器350还从控制单元232接收相应的控制Cn并将所述控制Cn确定的来自一个输入的地址/数据提供给相关联的高速缓存器250。因此,每一多路复用器350均将一个接口单元310耦合到相关联的高速缓存器250。
每一多路复用器340均从所有N个高速缓存器250a到250n的N个输入处接收输入数据或指令。每一多路复用器340还从控制单元232接收相应的控制Pk并将所述控制Pk确定的来自一个输入的数据/指令提供给相关联的I/O单元330。因此,每一多路复用器340均将一个高速缓存器250耦合到相关联的接口单元310。
每一高速缓存器250均从相关联的多路复用器350接收地址并确定所述地址处的所请求数据/指令是否存储在所述高速缓存器中。每一高速缓存器250均提供命中/未命中(h/m)指示符,其指示在所请求的数据/指令存储在所述高速缓存器中的情况下的高速缓存命中(例如,逻辑高)及在所请求的数据/指令没有存储在所述高速缓存器中的情况下的高速缓存器未命中(例如,逻辑低)。每一高速缓存器250均在存在高速缓存命中的情况下提供所请求的数据/指令。每一高速缓存器250均等待从主存储器270中的提取且然后在存在高速缓存命中的情况下提供所请求的数据/指令。
在每一接口单元310中,状态机320从所有N个高速缓存器250a到250n及控制Mk接收命中/未命中指示符,所述控制Mk指示哪些高速缓存器(如果有)已被指派给所述接口单元。状态机320基于所指派的高速缓存器的命中/未命中指示符来确定所请求的数据/指令是否存储在所指派的高速缓存器中的任一者中。如果所请求的数据/指令没有存储在所指派的高速缓存器中的任一者中,则状态机320产生提取命令。
控制单元232分别针对状态机320a到320k产生控制M1到MK、分别针对多路复用器340a到340k产生控制P1到PK且分别针对多路复用器350a到350n产生控制C1到CN。这些控制确定哪些高速缓存器(如果有)被指派给每一接口单元310。
图3显示完全可配置高速缓存器的纵横杆240的实施例。大体来说,可通过使用具有足够数目输入的多路复用器、设计可估计任何可能的高速缓存器指派的状态机并产生对所述状态机及所述多路复用器的适当控制来实现高速缓存器的完全可配置性。还可以可将处理单元映射到可用高速缓存器的其它设计来实施纵横杆240。
图4显示图3中的接口单元310k的高速缓存器250n及状态机320的实施例的方块图。高速缓存器250n包含高速缓存控制器410、标签RAM420及数据RAM430。高速缓存控制器410为高速缓存器250n的每一存取执行地址检验且确保正在存取正确的数据/指令。标签RAM420记录当前哪些数据/指令存储在高速缓存器250n中。数据RAM430存储所述数据/指令。数据RAM430的每一线可存储一个或一个以上像素的数据或一个或一个以上指令,这取决于高速缓存器250n经配置以存储数据还是指令。
高速缓存器250n可以直接映射高速缓存器结构或M向组关联高速缓存器结构来实施。在所述直接映射高速缓存器结构中,下一层级处的存储器(例如,主存储器270)的每一线可仅映射到数据RAM430的一个线。数据RAM430的每一线(或每一高速缓存线)均与标签RAM420中识别所述高速缓存线中所存储的主存储器270的具体线的标签相关联。举例来说,如果主存储器270具有256k个线且数据RAM430具有4k个线,则每一高速缓存线均与具体的12位地址相关联,且主存储器270的32个线被映射到每一高速缓存线。然后可由每一高速缓存线的12位地址及指示主存储器270的32个线中的哪一者存储在所述高速缓存线中的5位标签来识别主存储器270中存储在每一高速缓存线中的具体线。在所述M向组关联高速缓存器结构中,主存储器270中的每一线可被映射到数据RAM430的M个可能的线中的任一者。大体来说,标签结构可取决于主存储器大小、高速缓存器大小、高速缓存器结构、每一高速缓存线的大小及/或其它因素。
标签RAM420存储数据RAM430的每一线的标签且每当数据RAM430中的任何线被取代均被更新。每一高速缓存线的标签均指示主存储器270中存储在所述高速缓存线中的线。在控制单元410内,地址分析器412从多路复用器350n接收由处理单元220做出的存储器存取的地址、分析所述地址以获得目标标签及高速缓存线地址、将所述高速缓存线地址提供给标签RAM420并将所述目标标签提供给比较逻辑414。标签RAM420从分析器412提供高速缓存线地址的所存储标签。比较逻辑414将所存储标签与目标标签进行比较,在所述标签相等的情况下指示高速缓存命中,且在所述标签不同的情况下指示高速缓存未命中。如果高速缓存器250n实施M向组关联高速缓存器结构,则标签RAM420可被多次存取。
存储器存取单元416在存在高速缓存命中的情况下处理数据RAM430的存取。如果所述存储器存取为读取,则数据RAM430经存取以读取存储在高速缓存线地址处的数据/指令。如果所述存储器存取为写入,则在高速缓存线地址处写入数据RAM430,并更新高速缓存“脏位”以指示所述高速缓存线已被写入,因而所述线将在被取代之前被写入回到主存储器270。
接口单元310k的状态机320确定所请求的数据/指令是否存储在指派给所述接口单元的任何高速缓存器中。在状态机320内,映射器450从控制单元232接收控制MK并产生N个高速缓存器250a到250n的N个启用信号。如果相关联的高速缓存器250被指派给接口单元310k,则每一启用信号均设置到逻辑高。N个“与”门452a到452n从N个高速缓存器250a到250n分别接收N个启用信号及N个命中/未命中指示符。每一“与”门452均:(1)在其启用信号在逻辑低处的情况下提供逻辑低,以指示相关联的高速缓存器250未被指派到接口单元310k,或(2)在所述启用信号在逻辑高处的情况下从相关联的高速缓存器250提供命中/未命中指示符,以指示所述高速缓存器被指派给接口单元310k。“或”门454接收“与”门452a到452n的输出并产生接口单元310k的命中指示符。
高速缓存器填充单元460在存在高速缓存未命中的情况下引导指派给接口单元310k的高速缓存器中的一者的高速缓存器填充。在一实施例中,选定最近最少使用(LRU)的(即,最长时间未使用的)经指派高速缓存器来用于高速缓存器填充。高速缓存器填充单元460可用来自主存储器270的新数据/指令来填充选定的高速缓存器的全部或一部分。当目标高速缓存线从主存储器270填充且选定的高速缓存器中的标签RAM经更新以反映载入到数据RAM中的新数据/指令时,接口单元310k可被停止。
具有完全可配置高速缓存器的图形系统在向处理单元指派高速缓存器方面提供最大的灵活性。既定的处理单元可指派有零、一个、多个或甚至所有可用高速缓存器,这取决于处理单元的数据需求。可以实现对高速缓存器的良好利用率且无论正执行何种图形应用均可避免图形处理器中任何一个地方处的存储器存取瓶颈的方式将可用高速缓存器指派给处理单元。可如下文所描述将所述可用高速缓存器巧妙地指派给处理单元。
在许多情况下,可以部分可配置高速缓存器来实现良好性能。所述高速缓存器部分可配置是指每一高速缓存器均可被指派给处理单元的一个子组中的一者。已对各种图形应用作出研究以确定将高速缓存器用于不同的图形应用的好处。这些研究指示,在许多图形应用中,高速缓存器对于增强模板及深度测试及纹理映射的性能是非常有用的且对于色彩及着色器仅略有好处。因而,高速缓冲存储器系统可设计有许多可配置以用于模板及深度测试及纹理映射的可用高速缓存器及仅极少量可配置以用于色彩及着色器的高速缓存器。采用部分可配置高速缓存器可简化指派可配置高速缓存器及将处理单元耦合到其指派的高速缓存器的纵横杆的设计。
图5显示具有可配置高速缓存器及专用高速缓存器的图形系统500的实施例。图形系统500包含图形处理器510及高速缓冲存储器系统530。图形处理器510可包含如上文针对图1中的处理单元120a到120i描述而操作的处理单元。特定来说,图形处理器510可包含可利用高速缓存器中所存储的数据及/或指令的模板及深度测试引擎、纹理映射引擎、片断着色器及片断引擎。
在图5所显示的实施例中,高速缓冲存储器系统530包含R个部分可配置高速缓存器550a到550r及一个专用高速缓存器550s,其中大体来说R>1。表1显示高速缓存器550a到550s中的每一者的可能指派,其中每一“X”均指示有效的高速缓存器指派。如表1所示,P个部分可配置高速缓存器550a到550p中的每一者均可经指派以用于模板测试、深度测试或纹理映射。部分可配置高速缓存器550q可经设计以用于着色器指令、模板测试、深度测试或纹理映射。部分可配置高速缓存器550r可经指派以用于着色器数据、模板测试、深度测试或纹理映射。专用高速缓存器550s用于存储片断引擎的色彩值。在一实施例中,P=8,且假定高速缓存器550q及550r不用于着色器指令及数据,则多达10个高速缓存器可经指派以用于模板测试、深度测试及/或纹理映射。较少的或额外的高速缓存器也可用于高速缓冲存储器系统530。
表1
处理单元 | 高速缓存器550a | ... | 高速缓存器550p | 高速缓存器550q | 高速缓存器550r | 高速缓存器550s |
模板测试 | X | ... | X | X | X | |
深度测试 | X | ... | X | X | X | |
纹理映射 | X | ... | X | X | X | |
着色器指令 | X | |||||
着色器数据 | X | |||||
色彩 | X |
控制单元532基于这些处理单元对存储器的利用率将可配置高速缓存器550a到550r指派给模板及深度测试引擎、纹理映射引擎及/或片断着色器。纵横杆540将处理单元耦合到其指派的高速缓存器550a到550r。仲裁器560将高速缓存器550a到550s耦合到主存储器570。
图5还显示纵横杆540的实施例。在此实施例中,纵横杆540包含分别用于模板测试、深度测试、纹理映射、着色器指令及着色器数据的接口单元580a到580e。接口单元580a将模板及深度测试引擎耦合到高速缓存器550a到550r中经指派以用于模板测试的高速缓存器(如果有)。接口单元580b将模板及深度测试引擎耦合到高速缓存器550a到550r中经指派以用于深度测试的高速缓存器(如果有)。接口单元580c将纹理映射引擎耦合到高速缓存器550a到550r中的经指派高速缓存器(如果有)。接口单元580d将片断着色器耦合到高速缓存器550q,如果所述高速缓存器已被指派。接口单元580e将片断着色器耦合到高速缓存器550r,如果所述高速缓存器已被指派。每一接口单元580均可包含状态机及I/O单元,例如如图3中所示。为简明起见,图5中并未显示用于接口单元的多路复用器及用于高速缓存器的多路复用器。
图5显示具有可配置高速缓存器及专用高速缓存器的高速缓冲存储器系统的特定实施例。大体来说,高速缓冲存储器系统可包含任何数目的可配置高速缓存器及任何数目的专用高速缓存器。所述可配置高速缓存器可用于任何组图形操作,且所述专用高速缓存器也可用于任何组图形操作。使用可配置高速缓存器及专用高速缓存器两者可简化控制单元及纵横杆的设计。
在图2及图5中显示的实施例中,控制单元可以各种方式将可配置高速缓存器指派给处理单元。在一个实施例中,控制单元基于先前图像/帧的存储器利用率为待渲染的每一图形图像或帧指派高速缓存器。所述控制单元可通过对每一处理单元进行的存储器存取的数目、每一高速缓存器的高速缓存命中数目、每一高速缓存器的高速缓存未命中数目等进行计数来确定存储器利用率。然后,控制单元可向具有高存储器利用率的处理单元指派较多高速缓存器且向具有低存储器利用率的处理单元指派较少的高速缓存器或不指派高速缓存器。
在另一实施例中,控制单元基于图形图像/帧的一致性将可配置高速缓存器指派给处理单元。一致性是指连续的2D/3D帧中的变化量。当帧更有可能渲染相似内容时指派较少的高速缓存器以获得较高的一致性,且可指派较多的高速缓存器以获得较小的一致性。
在又一实施例中,控制单元基于正在执行的图形应用的特性将可配置高速缓存器指派给处理单元。例如,如果图形系统正在执行2-D图形应用,则可不需要深度测试,且可不指派高速缓存器用于深度测试。从另一方面来看,如果3-D图形应用仅使用z通过,则所有可配置高速缓存器均可指派给深度测试。举另一实例来说,如果正在执行简单的着色器程序且所有着色器指令均可存储在片断着色器内,则不会将高速缓存器指派给片断着色器。
在又一实施例中,控制单元动态地指派可配置高速缓存器。例如,当数据请求由处理单元发送时,控制单元可向处理单元指派一个或一个以上高速缓存器。控制单元可基于请求的数目、高速缓存器命中/未命中统计及/或其它可动态地确定的因素来调整指派给处理单元的高速缓存器的数目。可针对从一个处理单元切换或重新指派到另一处理单元的高速缓存器动态地执行冲刷及使无效操作。
在又一实施例中,控制单元使用静态与动态指派的组合来指派高速缓存器。例如,控制单元可(例如)基于处理单元对存储器的利用率的当前统计在开始渲染帧、图像或批次时将一个或一个以上高速缓存器预先指派给既定的处理单元。控制单元可在渲染所述帧、图像或批次期间(例如)周期性地调整向此处理单元的高速缓存器指派。可基于先前的渲染周期内获得的统计来确定每一渲染周期的新高速缓存器指派。
控制单元还可基于其它标准来指派可配置高速缓存器。当首先执行图形应用时及/或在其它时间,每当检测到存储器利用率的变化,控制单元均可在每一图像/帧中指派高速缓存器。
为简明起见,图1到图5显示包含一组高速缓存器的高速缓冲存储器系统。可以存储器块来实施高速缓存器。还可以具有多个层级(例如,层级1、层级2、层级3等)的分级结构来实施高速缓存器或高速缓冲存储器系统。较低层级(例如,层级1)的高速缓存器往往比较高层级(例如,层级2)的高速缓存器更快而更小。每当发生高速缓存未命中时,每一层级的高速缓存器均可由下一更高层级的高速缓存器填充。层级的数目、每一层级中高速缓存器的数目及不同层级的高速缓存器的大小可以是固定的或可配置的。例如,层级的数目、每一层级中高速缓存器的数目及/或高速缓存器大小可经选定以实现良好性能且可基于图形应用的特性来配置。
图6显示用于操作具有可配置高速缓存器的图形系统的过程600的实施例。确定经配置以执行渲染图形图像的图形操作的多个处理单元对存储器的利用率(方块612)。可通过监视由处理单元进行的存储器存取、通过确定正在执行的图形应用的特性及/或以其它方式来确定存储器利用率。基于存储器利用率将多个高速缓存器指派给多个处理单元中的至少一个处理单元(方块614)。每一处理单元可指派有零、一个、多个或所有高速缓存器,这取决于:(1)由所述处理单元以及其它处理单元对存储器的利用率,及(2)可供用于向所述处理单元指派的高速缓存器。可基于各种统计来确定存储器利用率,例如,处理单元做出的数据请求、高速缓存命中/未命中统计等。每当检测到存储器利用率的变化等时,均可周期性地(例如,每图形图像/帧地)执行高速缓存器指派。还可基于检测出的存储器利用率的变化在渲染图像/帧期间重新指派高速缓存器。所述至少一个处理单元中的每一者经由(例如)相应的接口单元耦合到指派到所述处理单元的相应一组高速缓存器(方块616)。
本文中描述的图形系统及可配置高速缓存器可用于无线通信、计算、联网、个人电子装置等。下文描述具有用于无线通信的可配置高速缓存器的图形系统的例示性使用。
图7显示无线通信系统中的无线装置700的实施例的方块图。无线装置700可以是蜂窝式电话、终端、手持机、个人数字助理(PDA)或某一其它装置。所述无线通信系统可以是码分多址(CDMA)系统、全球移动通信(GSM)系统或某一其它系统。
无线装置700能够经由接收路径及传输路径提供双向通信。在所述接收路径上,天线712接收由基站传输的信号并将其提供给接收器(RCVR)714。接收器714调节并数字化所接收的信号,并将样本提供到数字区段720以进行进一步处理。在所述传输路径上,传输器(TMTR)716接收将从数字区段720传输的数据、处理并调节所述数据,并产生经调制信号,所述信号经由天线712传输到基站。
数字区段720包含各种处理及接口单元,例如,调制解调器处理器722、视频处理器724、应用处理器726、显示处理器728、控制器/处理器730、图形处理器740及外部总线接口(EBI)760。调制解调器处理器722执行用于数据传输及接收的处理(例如,编码、调制、解调及解码)。视频处理器724对视频内容(例如,静止图像、移动视频及移动文本)执行处理以用于诸如摄录机、视频回放及视频会议等视频应用。应用处理器726执行对诸如多路呼叫、网页浏览、媒体播放器及用户接口等各种应用的处理。显示处理器728执行处理以促进视频、图形及文本在显示单元780上的显示。控制器/处理器730可引导数字区段720内各种处理及接口单元的操作。
图形处理器740执行对图形应用的处理且可如上文所描述来实施。高速缓冲存储器系统750存储用于图形处理器740的数据及/或指令且可以可配置高速缓存器及(可能地)专用高速缓存器来实施。高速缓冲存储器750可进一步包含将可配置高速缓存器耦合到图形处理器740内的处理单元的纵横杆及经由总线732及EBI760将高速缓存器耦合到主存储器770的仲裁器。EBI760可促进数字区段720(例如,高速缓存器)及主存储器770之间的数据转移。
数字区段720可以一个或一个以上数字信号处理器(DSP)、微处理器、精简指令集计算机(RISC)等来实施。数字区段720还可制造在一个或一个以上专用集成电路(ASIC)或某一其它类型的集成电路(IC)上。
本文中描述的图形系统及可配置高速缓存器可实施于各种硬件单元中。例如,所述图形系统及可配置高速缓存器可实施于ASIC、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器及其它电子单元中。
图形系统的某些部分可实施于固件及/或软件中。例如,控制单元可以执行本文中描述的功能的固件及/或软件模块(例如,程序、功能等)来实施。固件及/或软件代码可存储在存储器(例如,图7所示的存储器770)中并由处理器(例如处理器730)执行。所述存储器既可实施于处理器内部,也可实施于处理器外部。
提供上文对所揭示实施例的说明以使所属技术领域的技术人员能够制作或使用本发明。所属技术领域的技术人员将易于得知这些实施例的各种修改方式,且本文所界定的一般原理也可应用于其它实施例,此并不背离本发明的精神或范围。因此,本发明并不打算限定为本文所示实施例,而应符合与本文所揭示原理及新颖特征相一致的最大范围。
Claims (30)
1.一种用于执行图形操作的设备,其包括:
布置成管线的多个处理单元,所述多个处理单元经配置以执行用以渲染图形图像的图形操作;
多个高速缓存器,其经配置以存储用于所述多个处理单元的数据;
纵横杆,其经配置以将所述多个高速缓存器耦合到所述多个处理单元;及
控制单元,其经配置以确定所述多个处理单元对存储器的利用率并基于所述对存储器的利用率在开始渲染帧、图像或批次时将所述多个高速缓存器中的一个或多个高速缓存器预先指派给所述多个处理单元中的选定处理单元,以使得所述一个或多个高速缓存器仅耦合到所述选定处理单元。
2.如权利要求1所述的设备,其中所述多个高速缓存器中的每一者能够指派给所述多个处理单元的一相应子组中的任一个。
3.如权利要求1所述的设备,其中所述多个高速缓存器包括指派给所述处理单元的一个或一个以上专用高速缓存器及能够指派给剩余处理单元的至少一个可配置高速缓存器。
4.如权利要求3所述的设备,其中每一可配置高速缓存器均能够指派给所述剩余处理单元的一相应子组中的任一个。
5.如权利要求3所述的设备,其中所述剩余处理单元包括深度测试引擎及纹理映射引擎。
6.如权利要求1所述的设备,其中所述控制单元经配置以基于先前图形图像的存储器利用率针对待渲染的每一图形图像指派所述多个高速缓存器。
7.如权利要求1所述的设备,其中所述控制单元经配置以基于所述处理单元做出的数据请求、高速缓存命中/未命中统计或其组合来确定所述对存储器的利用率。
8.如权利要求1所述的设备,其中所述控制单元经配置以在渲染图像期间检测所述多个处理单元对存储器的利用率的变化且基于所检测的对存储器的利用率的变化重新指派所述多个高速缓存器。
9.如权利要求1所述的设备,其中,所述控制单元经配置以基于正被执行的图形应用对存储器的利用率将所述多个高速缓存器中的一个或多个高速缓存器指派给所述处理单元。
10.如权利要求1所述的设备,其中所述纵横杆包括
多个接口单元,每一接口单元经配置以将相关联的处理单元耦合到指派给所述处理单元的一组高速缓存器。
11.如权利要求10所述的设备,其中每一接口单元均包括
状态机,其经配置以确定所述相关联的处理单元所请求的数据是否存储在指派给所述处理单元的所述组高速缓存器中的任一个中。
12.如权利要求11所述的设备,其中每一接口单元的所述状态机均从所述多个高速缓存器接收高速缓存命中/未命中指示符及指示指派给所述相关联的处理单元的所述组高速缓存器的控制。
13.如权利要求11所述的设备,其中每一接口单元的所述状态机均经配置以在发生高速缓存未命中时填充指派给所述相关联的处理单元的所述组高速缓存器中的一者。
14.如权利要求1所述的设备,其中所述多个高速缓存器被布置成具有至少两个高速缓存器层级的分级结构。
15.如权利要求14所述的设备,其中所述分级结构中的至少一个层级具有可配置数目的高速缓存器。
16.如权利要求14所述的设备,其中所述分级结构中的至少一个层级具有可配置的高速缓存器大小。
17.如权利要求1所述的设备,其中所述多个高速缓存器被布置成分级结构中的可配置数目的层级。
18.如权利要求1所述的设备,其中所述多个高速缓存器具有可配置的高速缓存器大小。
19.如权利要求1所述的设备,其进一步包括:
仲裁器,其耦合到所述多个高速缓存器且经配置以促进所述多个高速缓存器与主存储器之间的数据交换。
20.如权利要求1所述的设备,其中所述多个处理单元包括深度测试引擎及纹理映射引擎。
21.如权利要求20所述的设备,其中所述深度测试引擎在所述管线中位于比所述纹理映射引擎靠前处。
22.一种集成电路,其包括:
布置成管线的多个处理单元,所述多个处理单元经配置以执行用以渲染图形图像的图形操作;
多个高速缓存器,其经配置以存储用于所述多个处理单元的数据;
纵横杆,其经配置以将所述多个高速缓存器耦合到所述多个处理单元;及
控制单元,其经配置以确定所述多个处理单元对存储器的利用率并基于所述对存储器的利用率在开始渲染帧、图像或批次时将所述多个高速缓存器中的一个或多个高速缓存器预先指派给所述多个处理单元中的选定处理单元,以使得所述一个或多个高速缓存器仅耦合到所述选定处理单元。
23.一种无线装置,其包括:
图形处理器,其包括布置成管线的多个处理单元,所述多个处理单元经配置以执行用以渲染图形图像的图形操作;及
高速缓冲存储器系统,其包括
多个高速缓存器,其经配置以存储用于所述多个处理单元的数据,及
纵横杆,其经配置以将所述多个高速缓存器耦合到所述多个处理单元;
控制单元,其经配置以确定所述多个处理单元对存储器的利用率并基于对所述存储器的利用率在开始渲染帧、图像或批次时将所述多个高速缓存器中的一个或多个高速缓存器预先指派给所述多个处理单元中的选定处理单元,以使得所述一个或多个高速缓存器仅耦合到所述选定处理单元。
24.如权利要求23所述的无线装置,其中所述高速缓冲存储器系统进一步包括
仲裁器,其耦合到所述多个高速缓存器且经配置以促进所述多个高速缓存器与主存储器之间的数据交换。
25.一种用于执行图形操作的方法,其包括:
确定经配置以执行用以渲染图形图像的图形操作的多个处理单元对存储器的利用率统计;
基于所述多个处理单元对存储器的利用率统计在开始渲染帧、图像或批次时将多个高速缓存器预先指派给所述多个处理单元中的处理单元;及
基于所述预先指派而仅将所述处理单元耦合到所述多个高速缓存器。
26.如权利要求25所述的方法,其进一步包括:
将一个或一个以上高速缓存器直接耦合到所述多个处理单元中的一个或一个以上处理单元。
27.如权利要求25所述的方法,其中预先指派所述多个高速缓存器包括:
基于先前图形图像的存储器利用率针对待渲染的每一图形图像将所述多个高速缓存器指派给所述处理单元。
28.一种用于执行图形操作的设备,其包括:
确定装置,其用于确定经配置以执行用以渲染图形图像的图形操作的多个处理单元对存储器的利用率统计;
指派装置,其用于基于所述多个处理单元对存储器的利用率统计在开始渲染帧、图像或批次时将多个高速缓存器预先指派给所述多个处理单元中的处理单元;及
耦合装置,其用于仅将所述处理单元耦合到所述多个高速缓存器。
29.如权利要求28所述的设备,其进一步包括:
耦合装置,其用于将一个或一个以上高速缓存器直接耦合到所述多个处理单元中的一个或一个以上处理单元。
30.如权利要求28所述的设备,其中用于预先指派所述多个高速缓存器的装置包括:
用于基于先前图形图像的存储器利用率针对待渲染的每一图形图像将所述多个高速缓存器指派给所述处理单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/412,678 | 2006-04-26 | ||
US11/412,678 US8766995B2 (en) | 2006-04-26 | 2006-04-26 | Graphics system with configurable caches |
PCT/US2007/067325 WO2007127745A1 (en) | 2006-04-26 | 2007-04-24 | Graphics system with configurable caches |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101427282A CN101427282A (zh) | 2009-05-06 |
CN101427282B true CN101427282B (zh) | 2013-02-13 |
Family
ID=38457539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800146016A Active CN101427282B (zh) | 2006-04-26 | 2007-04-24 | 具有可配置高速缓存器的图形系统 |
Country Status (9)
Country | Link |
---|---|
US (1) | US8766995B2 (zh) |
EP (1) | EP2011079B1 (zh) |
JP (1) | JP4938843B2 (zh) |
KR (1) | KR101018999B1 (zh) |
CN (1) | CN101427282B (zh) |
BR (1) | BRPI0712834A2 (zh) |
CA (1) | CA2649567C (zh) |
RU (1) | RU2412469C2 (zh) |
WO (1) | WO2007127745A1 (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070268289A1 (en) * | 2006-05-16 | 2007-11-22 | Chun Yu | Graphics system with dynamic reposition of depth engine |
US8884972B2 (en) | 2006-05-25 | 2014-11-11 | Qualcomm Incorporated | Graphics processor with arithmetic and elementary function units |
US8869147B2 (en) | 2006-05-31 | 2014-10-21 | Qualcomm Incorporated | Multi-threaded processor with deferred thread output control |
US8644643B2 (en) * | 2006-06-14 | 2014-02-04 | Qualcomm Incorporated | Convolution filtering in a graphics processor |
US8766996B2 (en) | 2006-06-21 | 2014-07-01 | Qualcomm Incorporated | Unified virtual addressed register file |
KR20080014402A (ko) * | 2006-08-11 | 2008-02-14 | 삼성전자주식회사 | 컴퓨터 그래픽스 데이터 처리방법과 데이터 처리장치 |
JP2008090673A (ja) * | 2006-10-03 | 2008-04-17 | Mitsubishi Electric Corp | キャッシュメモリ制御装置 |
US20080133836A1 (en) * | 2006-11-30 | 2008-06-05 | Magid Robert M | Apparatus, system, and method for a defined multilevel cache |
JP4748609B2 (ja) * | 2008-06-06 | 2011-08-17 | 株式会社アクセル | 画像処理システム |
US8688911B1 (en) * | 2008-11-25 | 2014-04-01 | Marvell Israel (M.I.S.L) Ltd. | Transparent processing core and L2 cache connection |
US9142057B2 (en) * | 2009-09-03 | 2015-09-22 | Advanced Micro Devices, Inc. | Processing unit with a plurality of shader engines |
US8766988B2 (en) * | 2009-10-09 | 2014-07-01 | Nvidia Corporation | Providing pipeline state through constant buffers |
US8890880B2 (en) | 2009-12-16 | 2014-11-18 | Intel Corporation | Graphics pipeline scheduling architecture utilizing performance counters |
US9058675B2 (en) * | 2010-05-29 | 2015-06-16 | Intel Corporation | Non-volatile storage for graphics hardware |
CN102455885A (zh) * | 2010-10-19 | 2012-05-16 | 李笑非 | 有外部存取单元的网络显卡 |
CN103380417B (zh) * | 2011-02-18 | 2016-08-17 | 英特尔公司(特拉华州公司) | 用于从存储器请求所存储的数据的方法及系统 |
US9734548B2 (en) * | 2012-10-26 | 2017-08-15 | Nvidia Corporation | Caching of adaptively sized cache tiles in a unified L2 cache with surface compression |
GB2546019B (en) * | 2012-11-02 | 2017-08-30 | Imagination Tech Ltd | Geometry processing method for 3-D rendering |
CN103810742B (zh) * | 2012-11-05 | 2018-09-14 | 正谓有限公司 | 图像渲染方法和系统 |
US8736629B1 (en) * | 2012-11-21 | 2014-05-27 | Ncomputing Inc. | System and method for an efficient display data transfer algorithm over network |
CN103247068B (zh) * | 2013-04-03 | 2016-03-30 | 上海晨思电子科技有限公司 | 一种渲染方法和装置 |
KR102079657B1 (ko) * | 2013-05-23 | 2020-02-20 | 에스케이플래닛 주식회사 | 캐시 데이터와 현재 데이터의 실시간 처리 현황 및 처리 순위를 보여주기 위한 장치 및 방법 |
US9507961B2 (en) * | 2013-07-01 | 2016-11-29 | Qualcomm Incorporated | System and method for providing secure access control to a graphics processing unit |
US9224187B2 (en) * | 2013-09-27 | 2015-12-29 | Apple Inc. | Wavefront order to scan order synchronization |
KR102147356B1 (ko) | 2013-09-30 | 2020-08-24 | 삼성전자 주식회사 | 캐시 메모리 시스템 및 그 동작방법 |
KR102101834B1 (ko) | 2013-10-08 | 2020-04-17 | 삼성전자 주식회사 | 영상 처리 장치 및 방법 |
RU2604985C2 (ru) * | 2014-11-11 | 2016-12-20 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный технический университет" (ФГБОУ ВО "ВГТУ", ВГТУ) | Способ организации вычислений на графических процессорах для моделирования помехоустойчивости низкоплотностных кодеков |
KR102258100B1 (ko) * | 2014-11-18 | 2021-05-28 | 삼성전자주식회사 | 텍스쳐 처리 방법 및 장치 |
US10558460B2 (en) | 2016-12-14 | 2020-02-11 | Qualcomm Incorporated | General purpose register allocation in streaming processor |
US10726519B2 (en) * | 2017-09-25 | 2020-07-28 | Arm Limited | Cache arrangement for graphics processing systems |
US11789867B2 (en) | 2020-01-14 | 2023-10-17 | Arm Limited | Cache arrangement for data processing systems |
US11625332B2 (en) | 2020-01-14 | 2023-04-11 | Arm Limited | Cache miss handling for read operations in data processing systems |
US11205243B2 (en) | 2020-01-14 | 2021-12-21 | Arm Limited | Data processing systems |
US20230206559A1 (en) * | 2021-12-27 | 2023-06-29 | Advanced Micro Devices, Inc. | Graphics discard engine |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480941B1 (en) * | 1999-02-23 | 2002-11-12 | International Business Machines Corporation | Secure partitioning of shared memory based multiprocessor system |
Family Cites Families (130)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1103384A (en) | 1964-03-02 | 1968-02-14 | Olivetti & Co Spa | Improvements in or relating to electronic computers |
US4079452A (en) | 1976-06-15 | 1978-03-14 | Bunker Ramo Corporation | Programmable controller with modular firmware for communication control |
NL7807314A (nl) | 1978-07-06 | 1980-01-08 | Philips Nv | Inrichting voor het vergroten van de lengte van een logisch computeradres. |
US7006881B1 (en) | 1991-12-23 | 2006-02-28 | Steven Hoffberg | Media recording device with remote graphic user interface |
US6850252B1 (en) | 1999-10-05 | 2005-02-01 | Steven M. Hoffberg | Intelligent electronic appliance system and method |
US5903454A (en) | 1991-12-23 | 1999-05-11 | Hoffberg; Linda Irene | Human-factored interface corporating adaptive pattern recognition based controller apparatus |
EP0627682B1 (en) | 1993-06-04 | 1999-05-26 | Sun Microsystems, Inc. | Floating-point processor for a high performance three dimensional graphics accelerator |
JPH0784851A (ja) | 1993-09-13 | 1995-03-31 | Toshiba Corp | 共有データ管理方法 |
JP3579461B2 (ja) | 1993-10-15 | 2004-10-20 | 株式会社ルネサステクノロジ | データ処理システム及びデータ処理装置 |
US5509129A (en) | 1993-11-30 | 1996-04-16 | Guttag; Karl M. | Long instruction word controlling plural independent processor operations |
GB2285524B (en) | 1994-01-11 | 1998-02-04 | Advanced Risc Mach Ltd | Data memory and processor bus |
EP0676691A3 (en) | 1994-04-06 | 1996-12-11 | Hewlett Packard Co | Device for saving and restoring registers in a digital computer. |
US6279099B1 (en) | 1994-04-29 | 2001-08-21 | Sun Microsystems, Inc. | Central processing unit with integrated graphics functions |
US5694143A (en) | 1994-06-02 | 1997-12-02 | Accelerix Limited | Single chip frame buffer and graphics accelerator |
US5598546A (en) | 1994-08-31 | 1997-01-28 | Exponential Technology, Inc. | Dual-architecture super-scalar pipeline |
US5777629A (en) | 1995-03-24 | 1998-07-07 | 3Dlabs Inc. Ltd. | Graphics subsystem with smart direct-memory-access operation |
US5798770A (en) | 1995-03-24 | 1998-08-25 | 3Dlabs Inc. Ltd. | Graphics rendering system with reconfigurable pipeline sequence |
US5872729A (en) | 1995-11-27 | 1999-02-16 | Sun Microsystems, Inc. | Accumulation buffer method and apparatus for graphical image processing |
US5794016A (en) | 1995-12-11 | 1998-08-11 | Dynamic Pictures, Inc. | Parallel-processor graphics architecture |
US5793385A (en) | 1996-06-12 | 1998-08-11 | Chips And Technologies, Inc. | Address translator for a shared memory computing system |
DE69737012T2 (de) | 1996-08-02 | 2007-06-06 | Matsushita Electric Industrial Co., Ltd., Kadoma | Sprachkodierer, sprachdekodierer und aufzeichnungsmedium dafür |
US5949920A (en) | 1996-08-13 | 1999-09-07 | Hewlett-Packard Co. | Reconfigurable convolver circuit |
JP2970553B2 (ja) | 1996-08-30 | 1999-11-02 | 日本電気株式会社 | マルチスレッド実行方法 |
TW360823B (en) | 1996-09-30 | 1999-06-11 | Hitachi Ltd | Data processor and graphic processor |
US6614847B1 (en) | 1996-10-25 | 2003-09-02 | Texas Instruments Incorporated | Content-based video compression |
US5870579A (en) | 1996-11-18 | 1999-02-09 | Advanced Micro Devices, Inc. | Reorder buffer including a circuit for selecting a designated mask corresponding to an instruction that results in an exception |
US5913925A (en) | 1996-12-16 | 1999-06-22 | International Business Machines Corporation | Method and system for constructing a program including out-of-order threads and processor and method for executing threads out-of-order |
US5831640A (en) | 1996-12-20 | 1998-11-03 | Cirrus Logic, Inc. | Enhanced texture map data fetching circuit and method |
US5991865A (en) | 1996-12-31 | 1999-11-23 | Compaq Computer Corporation | MPEG motion compensation using operand routing and performing add and divide in a single instruction |
US6697063B1 (en) | 1997-01-03 | 2004-02-24 | Nvidia U.S. Investment Company | Rendering pipeline |
US6549209B1 (en) | 1997-05-22 | 2003-04-15 | Kabushiki Kaisha Sega Enterprises | Image processing device and image processing method |
US5958041A (en) | 1997-06-26 | 1999-09-28 | Sun Microsystems, Inc. | Latency prediction in a pipelined microarchitecture |
US6195734B1 (en) | 1997-07-02 | 2001-02-27 | Micron Technology, Inc. | System for implementing a graphic address remapping table as a virtual register file in system memory |
JP4634548B2 (ja) | 1997-11-04 | 2011-02-16 | ヒューレット・パッカード・カンパニー | マルチプロセッサコンピュータシステム及びその動作方法 |
US6654428B1 (en) | 1998-01-13 | 2003-11-25 | Massachusetts Institute Of Technology | Systems and methods for wireless communications |
US6092175A (en) | 1998-04-02 | 2000-07-18 | University Of Washington | Shared register storage mechanisms for multithreaded computer systems with out-of-order execution |
US6188411B1 (en) | 1998-07-02 | 2001-02-13 | Neomagic Corp. | Closed-loop reading of index registers using wide read and narrow write for multi-threaded system |
US7068272B1 (en) | 2000-05-31 | 2006-06-27 | Nvidia Corporation | System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline |
JP3869947B2 (ja) | 1998-08-04 | 2007-01-17 | 株式会社日立製作所 | 並列処理プロセッサ、および、並列処理方法 |
JP3279260B2 (ja) | 1998-08-07 | 2002-04-30 | 日本電気株式会社 | 3次元グラフィックス描画装置 |
US6771264B1 (en) | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
US6693719B1 (en) * | 1998-09-16 | 2004-02-17 | Texas Instruments Incorporated | Path to trapezoid decomposition of polygons for printing files in a page description language |
US6163839A (en) | 1998-09-30 | 2000-12-19 | Intel Corporation | Non-stalling circular counterflow pipeline processor with reorder buffer |
GB2343601B (en) | 1998-11-06 | 2002-11-27 | Videologic Ltd | Shading and texturing 3-dimensional computer generated images |
US7088865B2 (en) | 1998-11-20 | 2006-08-08 | Nikon Corporation | Image processing apparatus having image selection function, and recording medium having image selection function program |
US6219769B1 (en) | 1998-12-09 | 2001-04-17 | Advanced Micro Devices, Inc. | Method and system for origin-sensitive memory control and access in data processing systems |
US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
CA2368136A1 (en) | 1999-03-18 | 2000-09-21 | British Broadcasting Corporation | Watermarking |
US6493741B1 (en) | 1999-10-01 | 2002-12-10 | Compaq Information Technologies Group, L.P. | Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit |
US6792575B1 (en) | 1999-10-21 | 2004-09-14 | Equilibrium Technologies | Automated processing and delivery of media to web servers |
US6964009B2 (en) | 1999-10-21 | 2005-11-08 | Automated Media Processing Solutions, Inc. | Automated media delivery system |
US6577762B1 (en) | 1999-10-26 | 2003-06-10 | Xerox Corporation | Background surface thresholding |
US6574725B1 (en) | 1999-11-01 | 2003-06-03 | Advanced Micro Devices, Inc. | Method and mechanism for speculatively executing threads of instructions |
US6417851B1 (en) | 1999-12-06 | 2002-07-09 | Nvidia Corporation | Method and apparatus for lighting module in a graphics processor |
JP3485052B2 (ja) | 1999-12-16 | 2004-01-13 | 日本電気株式会社 | 参照画像作成方法、パターン検査装置及び参照画像作成プログラムを記録した記録媒体 |
JP2001222712A (ja) | 2000-02-08 | 2001-08-17 | Sega Corp | 画像処理装置、畳み込み積分回路及びその方法 |
US6516443B1 (en) | 2000-02-08 | 2003-02-04 | Cirrus Logic, Incorporated | Error detection convolution code and post processor for correcting dominant error events of a trellis sequence detector in a sampled amplitude read channel for disk storage systems |
US6807620B1 (en) | 2000-02-11 | 2004-10-19 | Sony Computer Entertainment Inc. | Game system with graphics processor |
JP2001236221A (ja) | 2000-02-21 | 2001-08-31 | Keisuke Shindo | マルチスレッドを利用するパイプライン並列プロセッサ |
US6738510B2 (en) | 2000-02-22 | 2004-05-18 | Olympus Optical Co., Ltd. | Image processing apparatus |
US6940545B1 (en) | 2000-02-28 | 2005-09-06 | Eastman Kodak Company | Face detecting camera and method |
US6988008B2 (en) | 2000-03-10 | 2006-01-17 | Adept Technology, Inc. | Smart camera |
US6891533B1 (en) | 2000-04-11 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Compositing separately-generated three-dimensional images |
US6952440B1 (en) | 2000-04-18 | 2005-10-04 | Sirf Technology, Inc. | Signal detector employing a Doppler phase correction system |
AU2001281162A1 (en) | 2000-08-16 | 2002-02-25 | Sun Microsystems, Inc. | General purpose processor with graphics/media support |
US6636214B1 (en) | 2000-08-23 | 2003-10-21 | Nintendo Co., Ltd. | Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode |
US7034828B1 (en) | 2000-08-23 | 2006-04-25 | Nintendo Co., Ltd. | Recirculating shade tree blender for a graphics system |
JP3580789B2 (ja) | 2000-10-10 | 2004-10-27 | 株式会社ソニー・コンピュータエンタテインメント | データ通信システム及び方法、コンピュータプログラム、記録媒体 |
GB2369016B (en) | 2000-11-09 | 2004-06-09 | Sony Uk Ltd | Receiver |
US6907520B2 (en) | 2001-01-11 | 2005-06-14 | Sun Microsystems, Inc. | Threshold-based load address prediction and new thread identification in a multithreaded microprocessor |
US6950927B1 (en) | 2001-04-13 | 2005-09-27 | The United States Of America As Represented By The Secretary Of The Navy | System and method for instruction-level parallelism in a programmable multiple network processor environment |
US6515443B2 (en) | 2001-05-21 | 2003-02-04 | Agere Systems Inc. | Programmable pulse width modulated waveform generator for a spindle motor controller |
US20040172631A1 (en) | 2001-06-20 | 2004-09-02 | Howard James E | Concurrent-multitasking processor |
US6744433B1 (en) | 2001-08-31 | 2004-06-01 | Nvidia Corporation | System and method for using and collecting information from a plurality of depth layers |
US8342935B1 (en) | 2001-09-28 | 2013-01-01 | Bally Gaming, Inc. | Integrated display and input system |
US6999076B2 (en) | 2001-10-29 | 2006-02-14 | Ati Technologies, Inc. | System, method, and apparatus for early culling |
US20030167379A1 (en) * | 2002-03-01 | 2003-09-04 | Soltis Donald Charles | Apparatus and methods for interfacing with cache memory |
US6871264B2 (en) * | 2002-03-06 | 2005-03-22 | Hewlett-Packard Development Company, L.P. | System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits |
EP1495412B1 (en) | 2002-03-22 | 2012-11-28 | Alandro Consulting NY LLC | Scalable high performance 3d graphics |
US6825843B2 (en) | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
US6931489B2 (en) * | 2002-08-12 | 2005-08-16 | Hewlett-Packard Development Company, L.P. | Apparatus and methods for sharing cache among processors |
US7633506B1 (en) | 2002-11-27 | 2009-12-15 | Ati Technologies Ulc | Parallel pipeline graphics system |
US7268785B1 (en) | 2002-12-19 | 2007-09-11 | Nvidia Corporation | System and method for interfacing graphics program modules |
US7268779B2 (en) | 2002-12-24 | 2007-09-11 | Intel Corporation | Z-buffering techniques for graphics rendering |
US7146486B1 (en) | 2003-01-29 | 2006-12-05 | S3 Graphics Co., Ltd. | SIMD processor with scalar arithmetic logic units |
KR100510131B1 (ko) * | 2003-01-29 | 2005-08-26 | 삼성전자주식회사 | 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법 |
US7145565B2 (en) | 2003-02-27 | 2006-12-05 | Nvidia Corporation | Depth bounds testing |
US7612803B2 (en) | 2003-06-10 | 2009-11-03 | Zoran Corporation | Digital camera with reduced image buffer memory and minimal processing for recycling through a service center |
US7372484B2 (en) | 2003-06-26 | 2008-05-13 | Micron Technology, Inc. | Method and apparatus for reducing effects of dark current and defective pixels in an imaging device |
US7015913B1 (en) | 2003-06-27 | 2006-03-21 | Nvidia Corporation | Method and apparatus for multithreaded processing of data in a programmable graphics processor |
US7088371B2 (en) | 2003-06-27 | 2006-08-08 | Intel Corporation | Memory command handler for use in an image signal processor having a data driven architecture |
US7239322B2 (en) | 2003-09-29 | 2007-07-03 | Ati Technologies Inc | Multi-thread graphic processing system |
US7702817B2 (en) | 2003-10-28 | 2010-04-20 | Microsoft Corporation | Wireless network access technologies for retrieving a virtual resource via a plurality of wireless network interfaces |
GB2409061B (en) | 2003-12-09 | 2006-09-13 | Advanced Risc Mach Ltd | Table lookup operation within a data processing system |
US7015914B1 (en) * | 2003-12-10 | 2006-03-21 | Nvidia Corporation | Multiple data buffers for processing graphics data |
US7027062B2 (en) | 2004-02-27 | 2006-04-11 | Nvidia Corporation | Register based queuing for texture requests |
US20050195198A1 (en) | 2004-03-03 | 2005-09-08 | Anderson Michael H. | Graphics pipeline and method having early depth detection |
US7030878B2 (en) | 2004-03-19 | 2006-04-18 | Via Technologies, Inc. | Method and apparatus for generating a shadow effect using shadow volumes |
US7196708B2 (en) | 2004-03-31 | 2007-03-27 | Sony Corporation | Parallel vector processing |
US7330988B2 (en) * | 2004-06-30 | 2008-02-12 | Sun Microsystems, Inc. | Method and apparatus for power throttling in a multi-thread processor |
US7873776B2 (en) * | 2004-06-30 | 2011-01-18 | Oracle America, Inc. | Multiple-core processor with support for multiple virtual processors |
US7339592B2 (en) | 2004-07-13 | 2008-03-04 | Nvidia Corporation | Simulating multiported memories using lower port count memories |
US7355603B2 (en) | 2004-08-04 | 2008-04-08 | Nvidia Corporation | Filtering unit for floating-point texture data |
US7538765B2 (en) | 2004-08-10 | 2009-05-26 | Ati International Srl | Method and apparatus for generating hierarchical depth culling characteristics |
US6972769B1 (en) | 2004-09-02 | 2005-12-06 | Nvidia Corporation | Vertex texture cache returning hits out of order |
US7388588B2 (en) | 2004-09-09 | 2008-06-17 | International Business Machines Corporation | Programmable graphics processing engine |
US7576737B2 (en) | 2004-09-24 | 2009-08-18 | Konica Minolta Medical & Graphic, Inc. | Image processing device and program |
JP2006099422A (ja) | 2004-09-29 | 2006-04-13 | Konica Minolta Medical & Graphic Inc | 画像処理装置、およびプログラム |
US7684079B2 (en) | 2004-12-02 | 2010-03-23 | Canon Kabushiki Kaisha | Image forming apparatus and its control method |
US20060136919A1 (en) | 2004-12-17 | 2006-06-22 | Sun Microsystems, Inc. | System and method for controlling thread suspension in a multithreaded processor |
US7358502B1 (en) | 2005-05-06 | 2008-04-15 | David Appleby | Devices, systems, and methods for imaging |
US20070030280A1 (en) | 2005-08-08 | 2007-02-08 | Via Technologies, Inc. | Global spreader and method for a parallel graphics processor |
US7557832B2 (en) | 2005-08-12 | 2009-07-07 | Volker Lindenstruth | Method and apparatus for electronically stabilizing digital images |
US7508396B2 (en) | 2005-09-28 | 2009-03-24 | Silicon Integrated Systems Corp. | Register-collecting mechanism, method for performing the same and pixel processing system employing the same |
US7447873B1 (en) | 2005-11-29 | 2008-11-04 | Nvidia Corporation | Multithreaded SIMD parallel processor with loading of groups of threads |
JP4920966B2 (ja) | 2005-12-21 | 2012-04-18 | キヤノン株式会社 | 画像形成装置 |
US20070186082A1 (en) | 2006-02-06 | 2007-08-09 | Boris Prokopenko | Stream Processor with Variable Single Instruction Multiple Data (SIMD) Factor and Common Special Function |
US8860721B2 (en) | 2006-03-28 | 2014-10-14 | Ati Technologies Ulc | Method and apparatus for processing pixel depth information |
US8933933B2 (en) | 2006-05-08 | 2015-01-13 | Nvidia Corporation | Optimizing a graphics rendering pipeline using early Z-mode |
US20070268289A1 (en) | 2006-05-16 | 2007-11-22 | Chun Yu | Graphics system with dynamic reposition of depth engine |
US8884972B2 (en) | 2006-05-25 | 2014-11-11 | Qualcomm Incorporated | Graphics processor with arithmetic and elementary function units |
US8869147B2 (en) | 2006-05-31 | 2014-10-21 | Qualcomm Incorporated | Multi-threaded processor with deferred thread output control |
US8644643B2 (en) | 2006-06-14 | 2014-02-04 | Qualcomm Incorporated | Convolution filtering in a graphics processor |
US8766996B2 (en) | 2006-06-21 | 2014-07-01 | Qualcomm Incorporated | Unified virtual addressed register file |
JP4675854B2 (ja) | 2006-07-25 | 2011-04-27 | 株式会社東芝 | パターン評価方法と評価装置及びパターン評価プログラム |
US8345053B2 (en) | 2006-09-21 | 2013-01-01 | Qualcomm Incorporated | Graphics processors with parallel scheduling and execution of threads |
JP2008219523A (ja) | 2007-03-05 | 2008-09-18 | Canon Inc | 撮像装置及びその制御方法 |
US7683962B2 (en) | 2007-03-09 | 2010-03-23 | Eastman Kodak Company | Camera using multiple lenses and image sensors in a rangefinder configuration to provide a range map |
US8014099B2 (en) | 2007-12-14 | 2011-09-06 | Lsi Corporation | Systems and methods for using an on-the-fly CBD estimate to adjust fly-height |
KR101482292B1 (ko) | 2007-12-14 | 2015-01-13 | 엘에스아이 코포레이션 | 서보 어드레스 마크 데이터를 사용하는 플라이―하이트 제어를 위한 시스템들 및 방법들 |
-
2006
- 2006-04-26 US US11/412,678 patent/US8766995B2/en active Active
-
2007
- 2007-04-24 RU RU2008146519/08A patent/RU2412469C2/ru not_active IP Right Cessation
- 2007-04-24 BR BRPI0712834-7A patent/BRPI0712834A2/pt not_active Application Discontinuation
- 2007-04-24 WO PCT/US2007/067325 patent/WO2007127745A1/en active Application Filing
- 2007-04-24 JP JP2009507929A patent/JP4938843B2/ja not_active Expired - Fee Related
- 2007-04-24 KR KR1020087026998A patent/KR101018999B1/ko active IP Right Grant
- 2007-04-24 CN CN2007800146016A patent/CN101427282B/zh active Active
- 2007-04-24 CA CA2649567A patent/CA2649567C/en not_active Expired - Fee Related
- 2007-04-24 EP EP07761214.1A patent/EP2011079B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480941B1 (en) * | 1999-02-23 | 2002-11-12 | International Business Machines Corporation | Secure partitioning of shared memory based multiprocessor system |
Non-Patent Citations (1)
Title |
---|
BALMER K ET AL.A single chip multimedia video processor.《CUSTOM INTEGRATED CIRCUITS CONFERENCE》.1994,91-94. * |
Also Published As
Publication number | Publication date |
---|---|
JP4938843B2 (ja) | 2012-05-23 |
JP2009535710A (ja) | 2009-10-01 |
EP2011079B1 (en) | 2019-02-13 |
US8766995B2 (en) | 2014-07-01 |
KR101018999B1 (ko) | 2011-03-04 |
EP2011079A1 (en) | 2009-01-07 |
CN101427282A (zh) | 2009-05-06 |
CA2649567C (en) | 2012-01-17 |
KR20090026124A (ko) | 2009-03-11 |
RU2412469C2 (ru) | 2011-02-20 |
US20070252843A1 (en) | 2007-11-01 |
BRPI0712834A2 (pt) | 2012-07-24 |
CA2649567A1 (en) | 2007-11-08 |
WO2007127745A1 (en) | 2007-11-08 |
RU2008146519A (ru) | 2010-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101427282B (zh) | 具有可配置高速缓存器的图形系统 | |
US9214007B2 (en) | Graphics processor having unified cache system | |
KR100300972B1 (ko) | 텍스춰매핑수행장치및텍스춰캐시의데이터억세스방법 | |
CN101057261B (zh) | 三维图形处理 | |
CN102750664B (zh) | 基于寄存器的对纹理请求的排队 | |
US7805589B2 (en) | Relative address generation | |
US6795078B2 (en) | Parallel read with source-clear operation | |
US20050219253A1 (en) | Render-cache controller for multithreading, multi-core graphics processor | |
US6985150B2 (en) | Accelerator control unit configured to manage multiple hardware contexts | |
US20090189896A1 (en) | Graphics Processor having Unified Shader Unit | |
KR101563070B1 (ko) | 그래픽 프로세싱을 위한 데이터 저장 어드레스 할당 | |
US6085292A (en) | Apparatus and method for providing non-blocking pipelined cache | |
US6741256B2 (en) | Predictive optimizer for DRAM memory | |
CN103003839A (zh) | 反锯齿样本的拆分存储 | |
US11276224B2 (en) | Method for ray intersection sorting | |
US6720969B2 (en) | Dirty tag bits for 3D-RAM SRAM | |
US7027064B2 (en) | Active block write-back from SRAM cache to DRAM | |
US6778179B2 (en) | External dirty tag bits for 3D-RAM SRAM | |
US6982719B2 (en) | Switching sample buffer context in response to sample requests for real-time sample filtering and video generation | |
CN115408305A (zh) | 一种基于dma重定向的图形渲染方式检测方法 | |
US7996622B1 (en) | Detecting unused cache lines | |
CN117435521B (zh) | 基于gpu渲染的纹理显存映射方法、装置及介质 | |
WO2023004620A1 (zh) | 一种数据读取装置及相关方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |