透明像素格式转换器的制作方法

文档序号:12513289阅读:339来源:国知局
本发明涉及一种透明像素格式转换器。
背景技术
::诸如图形图像或视频帧的图形数据可由像素组成。可根据指定像素格式来布置诸如关于图形数据像素的信息的像素数据,指定像素格式可限定与数据像素相关联的存储器的位数目,且还可限定数据像素内的颜色分量的顺序。可根据像素格式来压缩根据指定像素格式布置在存储器中的像素数据,且还可根据像素格式将像素数据布置在存储器的存储位置中。通常,像素格式可分为线性像素格式或基于平铺的像素格式。技术实现要素:一般来说,本发明涉及一种透明格式转换器(TFC),其在不同像素格式之间进行透明转换,以使得TFC可根据由具有图形数据视图的处理核心支持的像素格式来提供处理核心,而不管图形数据的基础像素格式。TFC可使得处理器核心能够如同根据由处理器核心支持的像素格式布置图形数据一般来处理图形数据。在一个态样中,本发明是针对一种用于像素处理的方法。所述方法可包含由透明格式转换器(TFC)确定至少一个处理器针对存储在第一数据缓冲器中的数据的请求指示针对呈第一数据格式的数据的请求。所述方法可进一步包含由所述TFC至少部分地基于针对存储在第一数据缓冲器中的数据的请求而从第一数据缓冲器检索呈第二数据格式的数据。所述方法可进一步包含由所述TFC将检索到的数据从第二数据格式转换成第一数据格式。所述方法可进一步包含由所述TFC将呈第一数据格式的经转换数据存储到可由至少一个处理器存取的第二数据缓冲器中。在另一方面,本发明是针对一种计算装置。所述计算装置可包含第一数据缓冲器。所述计算装置可进一步包含第二数据缓冲器。所述计算装置可进一步包含至少一个处理器。所述计算装置可进一步包含透明格式转换器,所述透明格式转换器经配置以进行以下操作:确定至少一个处理器针对存储在第一数据缓冲器中的数据的请求指示针对呈第一数据格式的数据的请求;至少部分地基于针对存储在第一数据缓冲器中的数据的请求而从第一数据缓冲器检索呈第二数据格式的数据;将检索到的数据从第二数据格式转换成第一数据格式;及将呈第一数据格式的经转换数据存储到可由至少一个处理器存取的第二数据缓冲器中。在另一方面,本发明是针对一种设备。所述设备可包含用于确定至少一个处理器针对存储在第一数据缓冲器中的数据的请求指示针对呈第一数据格式的数据的请求的装置。所述设备可进一步包含用于至少部分地基于针对存储在第一数据缓冲器中的数据的请求而从第一数据缓冲器检索呈第二数据格式的数据的装置。所述设备可进一步包含用于将检索到的数据从第二数据格式转换成第一数据格式的装置。所述设备可进一步包含用于将呈第一数据格式的经转换数据存储到可由至少一个处理器存取的第二数据缓冲器中的装置。在另一方面,本发明是针对一种含有指令的计算机可读媒体。所述指令致使可编程处理器进行以下操作:由透明格式转换器(TFC)确定至少一个处理器针对存储在第一数据缓冲器中的数据的请求指示针对呈第一数据格式的数据的请求;由TFC至少部分地基于针对存储在第一数据缓冲器中的数据的请求而从第一数据缓冲器检索呈第二数据格式的数据;由TFC将检索到的数据从第二数据格式转换成第一数据格式;及由TFC将呈第一数据格式的经转换数据存储到可由至少一个处理器存取的第二数据缓冲器中。在下文的附图及描述中阐述本发明的一或多个方面的细节。本发明的其它特征、目标和优点将从描述及图式以及权利要求书中显而易见。附图说明图1为说明可配置成实施本发明的一或多个方面的实例计算装置的框图。图2为进一步详细说明图1的处理器、GPU及系统存储器的实例实施方案的框图。图3为说明图2的TFC的实例功能性的概念图。图4为进一步详细说明图2的TFC的实例实施方案的框图。图5为说明图4的经翻译地址的实例格式的框图。图6为进一步详细说明图2的TFC的实例实施方案的框图。图7为说明图2的利用两级页表映射以将实例虚拟地址翻译成实例物理地址的TFC的框图。图8为说明用于透明地转换像素格式的过程的流程图。具体实施方式一般来说,本发明涉及一种透明格式转换器(TFC),其在不同像素格式之间进行透明转换以使得TFC可提供像素数据的视图。可以多种不同像素格式存储像素数据。与熟知规范化像素格式相比,硬件设计者可常常创建可由硬件设计者所设计的硬件核心更有效地处理的专有像素格式。举例来说,可常常为了增大的存储效率及高效的带宽利用效率而创建基于平铺的像素格式以作为线性像素格式的替代。然而,操纵像素数据的软件应用的显影器可常常实施对仅若干熟知像素格式的支持以作为实施详尽多种像素格式的替代。另外,由硬件设计者创建的基于平铺的像素格式可常常是专有的,以使得软件开发者可能不了解那些基于平铺的像素格式。在一些实例中,此类软件应用运行所在的操作系统也不可详尽地支持广泛多种像素格式。因为现有操作系统常常被适配成在新硬件上运行,所以操作系统不可能不断地支持实施在此类新硬件上的最新创建的像素格式。本发明的TFC可配置成在像素格式之间进行透明转换,以使得支持第一像素格式的处理器可经由TFC查看根据第二格式布置的像素数据,如同根据由处理器支持的第一像素格式来替代地布置那像素数据一般。根据本发明的各方面,TFC可配置成确定至少一个处理器针对存储在第一数据缓冲器中的数据的请求指示针对呈第一数据格式的数据的请求。TFC经进一步配置成至少部分地基于针对存储在第一数据缓冲器中的数据的请求而从第一数据缓冲器检索呈第二数据格式的数据。TFC可经进一步配置成将检索到的数据从第二数据格式转换成第一数据格式。TFC可经进一步配置成将呈第一数据格式的经转换数据存储到可由至少一个处理器存取的第二数据缓冲器中。图1为说明可配置成实施本发明的一或多个方面的实例计算装置的框图。如图1中所展示,计算装置2可为包含(但不限于)以下各者的计算装置:视频装置、媒体播放器、机顶盒、无线手持机(诸如移动电话及所谓的智能电话)、个人数字助理(PDA)、桌上型计算机、膝上型计算机、游戏控制台、视频会议单元、平板计算装置及其类似者。在图1的实例中,计算装置2可包含中央处理单元(CPU)6、系统存储器10及GPU12。计算装置2还可包含显示处理器14、收发器模块3、用户接口4及显示器8。收发器模块3及显示处理器14两者可为与CPU6及/或GPU12相同的集成电路(IC)的部分,两者可在包含CPU6及/或GPU12的一或多个IC的外部,或可形成于在包含CPU6及/或GPU12的IC外部的IC中。为清楚起见,计算装置2可包含图1中未展示的额外模块或单元。举例来说,计算装置2可在计算装置2为移动无线电话的实例中包含扬声器及麦克风(两者均未在图1中展示)来实现电话通信,或在计算装置2为媒体播放器的实例中包含扬声器。计算装置2还可包含摄像机。此外,计算装置2中所展示的各种模块及单元可能不是计算装置2的每一实例中所必要的。举例来说,在计算装置2为桌上型计算机或经装备以与外部用户接口或显示器介接的其它装置的实例中,用户接口4及显示器8可在计算装置2外部。用户接口4的实例包含(但不限于)轨迹球、鼠标、键盘及其它类型的输入装置。用户接口4还可为触摸屏,并且可作为显示器8的部分而并入。收发器模块3可包含用以允许计算装置2与另一装置或网络之间的无线或有线通信的电路。收发器模块3可包含调制器、解调器、放大器及用于有线或无线通信的其它此类电路。处理器6可为微处理器,诸如中央处理单元(CPU),其配置成处理计算机程序的指令以供执行。处理器6可包括控制计算装置2的操作的通用或专用处理器。用户可将输入提供到计算装置2,以致使处理器6执行一或多个软件应用程序。在CPU6上执行的软件应用程序可包含(例如)操作系统、字处理器应用程序、电子邮件应用程序、电子数据表应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。另外,处理器6可执行用于控制GPU12的操作的GPU驱动程序22。用户可经由一或多个输入装置(未展示)(诸如键盘、鼠标、麦克风、触摸垫或经由用户接口4耦合到计算装置2的另一输入装置)而将输入提供到计算装置2。在处理器6上执行的软件应用程序可包含一或多个图形渲染指令,其指示处理器6致使将图形数据渲染到显示器8。在一些实例中,所述软件指令可符合图形应用程序编程接口(API),诸如开放图形库API、开放图形库嵌入系统(OpenGLES)API、Direct3DAPI、X3DAPI、RenderManAPI、WebGLAPI、开放计算语言(OpenCLTM)或任何其它公共或专有标准图形API。为了处理图形渲染指令,处理器6可向GPU12发出一或多个图形渲染命令(例如,经由GPU驱动程序22),以致使GPU12执行图形数据的渲染中的一些或全部。在一些实例中,待渲染的图形数据可包含例如点、线、三角形、四边形、三角形带等等图形基元的列表。GPU12可配置成执行图形操作,从而将一或多个图形基元渲染到显示器8。因此,当在处理器6上执行的软件应用程序中的一者需要图形处理时,处理器6可将图形命令及图形数据提供到GPU12以供渲染到显示器8。所述图形数据可包含(例如)绘图命令、状态信息、基元信息、纹理信息,等等。在一些情况下,GPU12可内置有高度并行结构,所述高度并行结构提供比处理器6更高效的复杂图形相关操作的处理。举例来说,GPU12可包含经配置成以并行方式对多个顶点或像素进行操作的多个处理元件,诸如着色器单元。在一些情况下,GPU12的高度并行性质允许GPU12比使用处理器6直接将场景绘制到显示器8更快速地将图形图像(例如,GUI及二维(2D)及/或三维(3D)图形场景)绘制到显示器8上。在一些情况下,可将GPU12集成到计算装置2的母板中。在其它情况下,GPU12可存在于图形卡上,所述图形卡安装在计算装置2的母板中的端口中或可以其它方式并入经配置以与计算装置2互操作的外围装置内。GPU12可包含一或多个处理器,诸如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。GPU12还可包含一或多个处理器核心,使得GPU12可被称作多核处理器。图形存储器40可为GPU12的部分。因此,GPU12可在不使用总线的情况下从图形存储器40读取数据并将数据写入到图形存储器40。换句话说,GPU12可使用本地存储装置而不是片外存储器在本地处理数据。此类图形存储器40可被称作芯片上存储器。此允许GPU12通过消除GPU12经由总线读取及写入数据的需要而以更有效的方式操作,其中经由总线操作可经历繁重的总线业务。然而,在一些情况下,GPU12可不包含单独的存储器,而是经由总线利用系统存储器10。图形存储器40可包含一或多个易失性或非易失性存储器或存储装置,诸如,随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。在一些实例中,GPU12可将完全形成的图像存储在系统存储器10中。显示处理器14可从系统存储器10检索图像,且输出致使显示器8的像素照亮以显示所述图像的值。显示器8可为显示由GPU12产生的图像内容的计算装置2的显示器。显示器8可为液晶显示器(LCD)、有机发光二极管显示器(OLED)、阴极射线管(CRT)显示器、等离子显示器或另一类型的显示装置。图2是进一步详细说明图1的处理器6、GPU12及系统存储器10的实例实施方案的框图。如图2中所展示,处理器6可执行至少一个软件应用程序18、图形API20、GPU驱动程序22及存储器管理单元(MMU)23,其中的每一者可为一或多个软件应用程序或服务。在一些实例中,图形API20及GPU驱动程序22可实施为CPU6的硬件单元。可供处理器6及GPU12使用的存储器可包含系统存储器10及帧缓冲器16。帧缓冲器16可为系统存储器10的部分或可与系统存储器10分离。帧缓冲器16可存储经渲染图像数据。MMU23可为来自CPU6的经配置以处置针对对存储器存取的请求的硬件,诸如系统存储器10或图形存储器40。举例来说,MMU23可处置来自软件应用程序18的存储器存取请求。MMU23可使用一或多个页表或翻译后援缓冲器(translationlookasidebuffer;TLB)来执行虚拟存储器地址到物理存储器地址的翻译,以处置此类存储器存取请求。在一些实例中,处理器6可包含一或多个高速缓冲存储器15或存取一或多个高速缓冲存储器15,诸如一级(L1)高速缓冲存储器、二级(L2)高速缓冲存储器、三级(L3)高速缓冲存储器及其类似者。相对于系统存储器10,一或多个高速缓冲存储器15可提供对处理器6的更快存储器存取,且可存储来自系统存储器10的频繁存取的存储位置的数据的副本。软件应用程序18可为利用GPU12的功能性的任何应用程序。举例来说,软件应用程序18可为图形用户接口(GUI)应用程序、操作系统、便携式映射应用程序、针对工程或艺术应用的计算机辅助设计程序、视频游戏应用程序或使用2D或3D图形的另一类型的软件应用程序。软件应用程序18可包含指示GPU12渲染GUI及/或图形场景的一或多个绘图指令。举例来说,绘图指令可包含界定将由GPU12渲染的一组一或多个图形基元的指令。在一些实例中,绘图指令可共同地界定用于GUI中的多个开窗表面的全部或部分。在额外实例中,所述绘图指令可共同地限定图形场景的全部或部分,所述图形场景包含在由应用程序限定的模型空间或世界空间内的一或多个图形对象。软件应用程序18可经由图形API20调用GPU驱动程序22,以将一或多个命令发出到GPU12以供将一或多个图形基元渲染为可显示的图形图像。举例来说,软件应用程序18可经由图形API20调用GPU驱动程序22以将基元定义提供到GPU12。在一些情况下,可以绘制基元(例如,三角形、矩形、三角扇、三角带等等)的列表的形式将基元定义提供到GPU12。基元定义可包含指定与将渲染的基元相关联的一或多个顶点的顶点规格。所述顶点规格可包含每一顶点的位置坐标,且在一些情况下包含与顶点相关联的其它属性,诸如色坐标、法向量及纹理坐标。所述基元定义还可包含基元类型信息(例如,三角形、矩形、三角扇、三角带等等)、缩放信息、旋转信息及其类似者。基于由软件应用程序18发布到GPU驱动程序22的指令,GPU驱动程序22可制定指定供GPU12执行的一或多个操作以便渲染基元的一或多个命令。当GPU12接收到来自CPU6的命令时,图形处理管线可在着色器处理器48上执行,以解码所述命令且配置图形处理管线以执行所述命令中所指定的操作。举例来说,图形处理管线中的输入汇编程序可读取基元数据,且将数据汇编成供图形处理管线中的其它图形管线级使用的基元。在执行指定操作之后,图形处理管线将经渲染的数据输出到与显示装置相关联的帧缓冲器16。帧缓冲器16存储用于GPU12的目的地像素。每一目的地像素可与唯一屏幕像素位置相关联。在一些实例中,帧缓冲器16可存储每一目的地像素的颜色分量及目的地阿尔法值。举例来说,帧缓冲器16可存储用于每一像素的红色、绿色、蓝色、阿尔法(RGBA)分量,其中“RGB”分量对应于颜色值且“A”分量对应于目的地阿尔法值。尽管将帧缓冲器16及系统存储器10说明为单独的存储器单元,但在其它实例中,帧缓冲器16可为系统存储器10的部分。在一些实例中,图形处理管线可包含顶点着色器级、外壳着色器级、域着色器级、几何着色器级及像素着色器级中的一或多者。图形处理管线的这些级可被认为是着色器级。这些着色器级可实施为在GPU12中的着色器单元46上执行的一或多个着色器程序。着色器单元46可配置成处理分量的可编程管线。在一些实例中,着色器单元46可被称作“着色器处理器”或“统一着色器”,且可执行几何、顶点、像素或其它着色操作以渲染图形。着色器单元46可包含着色器处理器48,其中的每一者可包含用于获取及解码操作的一或多个组件、用于执行算术计算的一或多个ALU、一或多个存储器、高速缓冲存储器及寄存器。通过将命令发送到着色器单元46以执行图形处理管线中的顶点着色器阶段、外壳着色器阶段、域着色器阶段、几何着色器阶段及像素着色器级中的一或多者,GPU12可指定着色器单元46执行多种着色操作,诸如顶点着色、外壳着色、域着色、几何着色、像素着色及其类似者。在一些实例中,GPU驱动程序22可包含编译程序,其经配置以编译一或多个着色器程序,且将所编译的着色器程序下载到包含于GPU12内的一或多个可编程着色器单元上。可以高级着色语言来编写着色器程序,诸如OpenGL着色语言(GLSL)、高级着色语言(HLSL)、用于图形的C(Cg)着色语言、OpenCLC核等等。经编译着色器程序可包含控制GPU12内的着色器单元46的操作的一或多个指令。举例来说,着色器程序可包含:顶点着色器程序,其可由着色器单元46执行以执行顶点着色器级的功能;外壳着色器程序,其可由着色器单元46执行以执行外壳着色器级的功能;域着色器程序,其可由着色器单元46执行以执行域着色器级的功能;几何着色器程序,其可由着色器单元46执行以执行几何着色器级的功能;及/或像素着色器程序,其可由着色器单元46执行以执行像素着色器的功能。顶点着色器程序可控制可编程顶点着色器单元或统一着色器单元的执行,且包含指定一或多个每顶点操作的指令。图形存储器40可包含物理地集成到GPU12的集成电路中的芯片上存储装置或存储器。如果图形存储器40是在芯片上,那么与经由系统总线从系统存储器10读取值或将值写入到系统存储器10相比,GPU12可能够更快速地从图形存储器40读取值或将值写入到图形存储器40。GPU12还可包含透明格式转换器(TFC)24。TFC24可为如下硬件:其使得CPU6或任何其它处理核心(其并不支持将像素数据41存储在图形存储器40中所根据的像素格式)能够查看存储在图形存储器40中的像素数据41,如同根据由CPU6支持的像素格式来将像素数据41存储在图形存储器40中一般。换句话说,经由TFC24,CPU6可读取及编写呈其支持的像素格式的存储在图形存储器40中的像素数据41。举例来说,如果以平铺像素格式将像素数据41存储在图形存储器40中,且如果CPU6支持诸如NV12的线性像素格式,那么TFC24可向CPU6提供像素数据41的基于线性的视图,使得像素数据41对CPU6呈现以诸如NV12的线性像素格式(其由CPU6支持)布置。TFC24可根据由CPU6支持的像素格式而将CPU6对像素数据41进行的任何编写翻译回成其存储在图形存储器40中所呈现的像素格式。因此,TFC24使得CPU6能够如同像素数据41呈由CPU6支持的像素格式一般处理像素数据41,以使得当以CPU6不支持的像素格式将像素数据41存储在图形存储器40中时,CPU6可根据由CPU6支持的像素格式来读取像素数据41且对像素数据41写入。根据本发明的各方面,TFC24可确定CPU6针对存储在图形存储器40中的像素数据41的请求指示针对呈第一数据格式的像素数据41的请求。TFC24可至少部分地基于针对图形存储器40中的像素数据41的请求而从图形存储器40检索呈第二数据格式的像素数据41。TFC24可将检索到的像素数据41从第二数据格式转换成第一数据格式。TFC24可将呈第一数据格式的经转换像素数据41存储到可由处理器6存取的存储器中,诸如高速缓冲存储器。在一些实例中,TFC24可为包含于GPU12中的特定硬件逻辑。在一些其它实例中,TFC24可包含由着色器单元46的着色器处理器48执行的着色器代码。在其它实例中,TFC24可为包含于计算装置2中但不是特定地包含于GPU12中的硬件。举例来说,TFC24可并入到CPU6中,或可为与CPU6及GPU12分离的独立式硬件组件。图3为说明图2的TFC24的实例功能性的框图。如图3中所展示,图形存储器40可存储遵循基于平铺的像素格式的像素数据41。处理器26可为不能够从基于平铺的像素格式读取且写入到基于平铺的像素格式的处理核心。举例来说,处理器26可支持线性像素格式而非基于平铺的像素格式。为了使得处理器26能够读取像素数据41且对像素数据41写入,TFC24可将存储在图形存储器40中的像素数据41的视图43提供到与像素数据41存储在图形存储器40中的方式无关的处理器26。视图43可表示呈由处理器26支持的像素格式的像素数据41,以使得从处理器26的视角来看,图形数据是根据处理器26支持的像素格式(诸如YUV、NV12及其类似者)而以视图43的形式布置。因此,TFC24使得处理器26能够如同像素数据41存储在图形存储器40中一般读取像素数据41且对像素数据41写入。TFC24可从处理器26接收读取及写入请求,且可针对像素数据41的基于平铺的像素格式而将读取及写入请求翻译成适当的读取及写入请求。向处理器26呈现视图43的TFC24可包含向处理器26呈现彩色光圈。彩色光圈可为物理及/或虚拟的地址范围,其可用以在特定目标像素格式的情况下存取存储器。举例来说,TFC24可向处理器26呈现虚拟地址范围,处理器26可进行存储器存取以便存取呈由处理器26支持的像素格式的像素数据41。在TFC24确定处理器26正尝试从彩色光圈读取或对彩色光圈写入的情况下,TFC24可能够基于来自处理器26的存储请求的虚拟地址而确定处理器26正尝试从呈由处理器26支持的像素格式的像素数据41读取或对像素数据41写入。如果多个不同软件应用程序及/或不同处理器请求对像素数据41的存取,那么TFC24可向不重叠的不同软件应用程序及/或不同处理器中的每一者提供唯一颜色光圈。以此方式,TFC24可能够至少部分地基于包含于针对来自软件应用程序及/或处理器的像素数据41的存取请求中的虚拟地址而确定请求中的那些软件应用程序及/或处理器以及由那些软件应用程序及/或处理器支持的像素格式。图4为进一步详细说明图2的TFC24的实例实施方案的框图。如图4中所展示,处理器50A及处理器50B可各自请求对存储在图形存储器40中的像素数据41的存取。虽然处理器50A可不支持存储在图形存储器40中的处理器50A正请求存取的像素数据41的基础像素格式或对所述像素格式了解,但处理器50B可支持存储在图形存储器40中的处理器50B正请求存取的像素数据41的基础像素格式或对所述像素格式了解。处理器50A的实例可包含CPU6以及并不支持存储在图形存储器40中的像素数据41的像素格式或对所述像素格式了解的任何其它处理硬件。更确切地说,如果处理器50A是CPU6,那么在CPU6执行的软件应用程序18可请求对存储在图形存储器40中的像素数据41的存取。处理器50B的实例可包含GPU12、着色器处理器48、视频编码器、视频解码器、显示处理器、显示器、数字信号处理器(DSP)、相机处理器、视频处理器及其类似者,其支持存储在图形存储器40中的像素数据的像素格式及/或对所述像素格式了解。处理器50A及50B可各自请求对存储在图形存储器40中的像素数据41的存取。如上文所论述,可根据由处理器50B支持但不由处理器50A支持的特定像素格式来布置处理器50A及50B请求存取的像素数据41。处理器50A可针对来自虚拟地址51A的数据进行请求,且处理器50B可针对来自虚拟地址51B的数据进行请求。MMU52A可使用页表54A来处置针对来自处理器50A的数据的请求以将虚拟地址51A转换成经翻译地址53。举例来说,如果处理器50A是CPU6,那么MMU52A可为MMU23。MMU52A可将虚拟地址51A转换成经翻译地址53,包括将一或多个颜色位附加在虚拟地址51A前面,以使得经翻译地址53的一或多个上部位包括一或多个颜色位,后面是虚拟地址51A。颜色位可向TFC24指示由处理器50A支持的像素格式。举例来说,在64位可寻址空间中,虚拟地址51A可不占据所有64个位。因此,MMU52A可能够将一或多个颜色位连结到虚拟地址51A以产生小于或等于64个位的经翻译地址53。相似地,MMU52B可使用页表54B来处置针对来自处理器50B的数据的请求以使用虚拟地址51B来查询物理地址55B。因为处理器50B支持像素数据41存储在图形存储器40中所呈现的像素格式,所以MMU52B可直接地将虚拟地址51B翻译成物理地址55B(其为图形存储器40中的所请求数据的物理地址)而非将虚拟地址51B翻译成经翻译地址。TFC24可接收经翻译地址53,且可至少部分地基于使用经翻译地址53来索引页表56而确定指示处理器50A请求的图形存储器40中的像素数据41的位置的物理地址55A。TFC可至少部分地基于物理地址55A而检索图形存储器40中的像素数据41,且可将来自像素数据41存储在图形存储器40中所根据的像素格式的检索到的像素数据41翻译成处理器50A支持的像素格式。翻译检索到的像素数据41可包含解压缩像素数据41、根据处理器50A支持的像素格式重排像素信息及其类似者。TFC24可将经转换像素数据41传回到处理器50A,诸如通过将经转换像素数据41存储到处理器50A中的一或多个高速缓冲存储器(例如,一或多个高速缓冲存储器15)中。处理器50A可根据由处理器50A支持的像素格式而读取存储在其一或多个高速缓冲存储器中的像素数据41及对所述像素数据41写入。响应于高速缓冲存储器清空(其在处理器50A从其一或多个高速缓冲存储器收回像素数据41A时发生),TFC24可从处理器50A接收像素数据41以及至少部分地基于虚拟地址51A而被翻译的经翻译地址53。TFC24可将像素数据41转换回成其存储在图形存储器40中所呈现的像素格式,包括将像素信息重排成像素数据41存储在图形存储器40中所呈现的像素格式,及根据像素数据41存储在图形存储器40中所呈现的像素格式而压缩像素信息。TFC24还可使用页表56来将经翻译地址53翻译成物理地址55A,且可在物理地址55A处将像素数据41存储到图形存储器40。图5为说明图4的经翻译地址53的实例格式的框图。如图5中所展示,经翻译地址53可包含识别正请求对像素数据41的存取的处理器以及识别由所述处理器支持的一或多个像素格式的一或多个有效位。经翻译地址53可包含连结到虚拟地址51的一或多个有效位。在一个实例中,经翻译地址53的一或多个最高有效位可包含颜色位57。颜色位57可为指定由请求中的处理器支持的像素格式的一或多个位。在另一实例中,经翻译地址53的一或多个最高有效位可包含识别请求中的处理器的主ID58,以及在经翻译地址53的最高有效位为1的情况下被设置为1的位59。在另一实例中,经翻译地址53的一或多个最高有效位可包含将请求中的处理器识别为位于具有相似存取权限的处理器群组内的虚拟机ID60,以及在经翻译地址53的最高有效位为1的情况下被设置为1的位61。图6为进一步详细说明图2的TFC24的实例实施方案的框图。如图5中所展示,TFC24可包含标签解码器66、翻译后援缓冲器(TLB)68、打包单元69A至69N(“打包单元69”)及地址计算单元67。TFC24还可包含元数据服务器64及硬件表走查器(hardwaretablewalker;HTW)服务器62。如上文所论述,TFC24可将经翻译地址53翻译成物理地址55A。TFC还可在由处理器支持的像素格式与存储在图形存储器40中的像素数据41的像素格式之间进行转换。标签解码器66可解码经翻译地址53以确定包含于经翻译地址53中的信息,诸如由正尝试存取图形存储器40中的像素数据41的处理核心(例如,处理器50A)支持的像素格式。元数据服务器64可确定由TFC24接收到的经翻译地址53的一或多个视图定义。经翻译地址53的视图定义可包含关于发送针对像素数据41的请求的处理器50A的信息,以及关于经由经翻译地址53予以请求的像素数据41的信息。所述一或多个视图定义可包含:所请求像素数据41的状态、所请求像素数据41的开始地址、所请求像素数据41的长度、由请求中的处理器50A支持的目标像素格式、所请求像素数据41的平铺宽度及长度、所请求像素数据41的跨距及其类似者,以及可需要用以将像素数据41转换成由请求中的处理器50A支持的像素格式的任何其它必要数据。在某一实例中,元数据服务器64可包含其接收的每一经翻译地址53的一或多个视图定义。地址计算单元67可根据经翻译地址53确定物理地址55A。TLB68可将一或多个经翻译地址高速缓冲存储成物理地址翻译。地址计算单元67可查询TLB68以确定TLB68是否已高速缓冲存储经翻译地址53的物理地址55A。如果TLB68已高速缓冲存储经翻译地址53的物理地址55A,那么TFC24可基于由元数据服务器64提供的像素数据41的视图定义而存取位于物理地址55A处的像素数据41。如果TLB尚未高速缓冲存储经翻译地址53的物理地址55A,那么地址计算单元67可剥离经翻译地址53的颜色位且可将经剥离的经翻译地址提供到HTW服务器62以确定经翻译地址53的物理地址55A。HTW服务器62可为用于存取一或多个页表(例如,页表54A及/或页表56)以确定经翻译地址53的物理地址55A的硬件。响应于HTW服务器62确定经翻译地址53的物理地址55A,TFC24可基于由元数据服务器64提供的像素数据41的视图定义而存取位于物理地址55A处的像素数据41。打包单元69可在由请求中的处理核心支持的像素格式与存储在图形存储器40中的像素数据41的像素格式之间进行翻译。打包单元69可执行颜色转换、平铺、解平铺、压缩、解压缩及其类似者以在像素格式之间进行转换。在一些实例中,打包单元69可包含固定功能硬件。在其它实例中,可经由其它装置(诸如经由GPU12、着色器单元46、特殊化数字信号处理器及其类似者)来实施打包单元69的功能性。在一些实例中,可经由在着色器单元46上执行的着色器代码来实施TFC24的完整功能性。图7为说明图2的利用两级页表映射以将实例虚拟地址翻译成实例物理地址的TFC24的框图。因为单级页表可通常被高级操作系统(HLOS)管理,所以两级页表可使得TFC24能够使定址的翻译及像素格式的转换躲过HLOS,使得可向HLOS呈现MMU正简单地使用单一页表来将虚拟地址翻译成物理地址。如图7中所展示,MMU52A可为利用两级页表(其包括页表70及页表72)的两级MMU。HLOS可管理页表70,同时管理程序或虚拟机监视器(VMM)可管理页表72。如上文所论述,因为管理程序或VMM可使用页表72来管理第二级映射,所以此第二级映射可躲过HLOS。页表70及72可具有专用存储器区段,其中软件应用程序18可能够映射正常页面以用于像素格式转换。MMU52A还可使用页表70及72来管理用户地址空间及内核地址空间。用户地址空间可由在HLOS上运行的软件应用程序存取,同时内核地址空间可由诸如内核的低级特权代码存取。以此方式,可保护内核地址空间防止非特权软件应用程序进行存取。页表70及72可包含用于翻译用户地址空间虚拟地址的用户地址空间部分74及用于翻译内核地址空间虚拟地址的内核地址空间部分76。在图7的实例中,虚拟地址51A可为0x7800,其可在用户地址空间中。MMU52A可利用虚拟地址51A来索引页表70以将虚拟地址51A翻译成0xabcd的中间物理地址71。IPA71可为与诸如颜色位57的颜色位连结的虚拟地址51A,MMU52A可使用IPA71来索引页表72以将中间物理地址71翻译成0x1002000的中间物理地址73。IPA73可将IPA71的颜色位保留在其一或多个最高有效位中。中间物理地址73可与图4的经翻译地址53相同。TFC24可将颜色位0x1000000从0x1002000的物理地址73剥离,且可将所得地址0x2000提供到HTW服务器62以确定物理地址55A。因为所得地址0x2000可在内核地址空间中,所以HTW服务器62可利用所述所得地址0x2000来索引页表70的内核地址空间部分76以产生0xceed的地址。HTW服务器62可进一步利用0xceed的地址来索引页表72的内核地址空间部分76以产生0x0800的物理地址55A。HTW服务器62可将0x0800的物理地址55A提供到TFC24中,且TFC可在0x0800的物理地址55A处存取图形存储器40。以此方式,页表70及72的内核地址空间部分76可充当图4的页表56以用于将经翻译地址53转换成物理地址55A。通过利用内核地址空间及页表70及72的内核地址空间部分76来确定物理地址55A,TFC24可使用由诸如CPU6的处理器强加的安全机制来执行虚拟地址51A到物理地址55A的翻译。所述安全机制还可使得TFC24能够在针对多个软件应用程序及/或多个处理核心创建多个颜色光圈时为存储高效的。图8为说明用于透明地转换像素格式的过程的流程图。如图8中所展示,所述过程可包含由TFC24确定至少一个处理器针对存储在第一数据缓冲器中的数据的请求指示针对呈第一数据格式的数据的请求(102)。所述过程可进一步包含由TFC24至少部分地基于针对存储在第一数据缓冲器中的数据的请求而从第一数据缓冲器检索呈第二数据格式的数据(104)。所述过程可进一步包含由TFC24将检索到的数据从第二数据格式转换成第一数据格式(106)。所述过程可进一步包含由TFC24将呈第一数据格式的经转换数据存储到可由至少一个处理器存取的第二数据缓冲器中(108)。在一些实例中,至少一个处理器针对存储在第一数据缓冲器中的数据的请求包含针对存储在虚拟地址51A处的数据的请求,且由TFC24从第一数据缓冲器检索呈第二数据格式的数据进一步包括由TFC24从第一数据缓冲器检索位于物理地址55A处的呈第二数据格式的数据,所述物理地址55A对应于所述虚拟地址。在一些实例中,所述过程可进一步包含由MMU52A至少部分地基于虚拟地址51A而确定经翻译地址53,及由TFC24至少部分地基于所述经翻译地址53而确定物理地址55A。在一些实例中,经翻译地址53的一或多个最高有效位包括一或多个颜色位,且其中所述一或多个颜色位至少指示由一或多个处理器支持的像素格式。在一些实例中,确定经翻译地址53进一步包含由MMU52A至少部分地基于虚拟地址51A而确定一或多个颜色位。在一些实例中,所述过程可进一步包含由使用第一级页表70的MMU52A至少部分地基于虚拟地址51A而确定中间物理地址71,及由使用第二级页表72的MMU52A至少部分地基于中间物理地址71而确定经翻译地址53。在一些实例中,由TFC24至少部分地基于经翻译地址53而确定物理地址55A进一步包含由TFC24至少部分地基于一或多个页表70及72的内核地址空间部分76而确定物理地址55A。在一些实例中,第二数据缓冲器包括用于至少一个处理器的高速缓冲存储器。在一些实例中,数据包括像素数据41,第一数据格式包括第一像素格式,且第二数据格式包括第二像素格式。在一些实例中,所述过程进一步包含:由TFC24从至少一个处理器接收呈第一数据格式的第二数据;由TFC24将第二数据从第一数据格式转换成第二数据格式;及由TFC24将呈第二数据格式的经转换数据存储到第一数据缓冲器中。在一或多个实例中,所描述功能可以硬件、软件、固件或其任何组合来实施。如果实施在软件中,那么可将功能作为一或多个指令或代码存储在计算机可读媒体上或经由计算机可读媒体传输。计算机可读媒体可包含计算机数据存储媒体或通信媒体,通信媒体包含促进将计算机程序从一处传递到另一处的任何媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码及/或数据结构的任何可用媒体。举例来说且非限制,此类非暂时性计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源发射软件,则同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波等无线技术包含在媒体的定义中。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。代码可以由一或多个处理器执行,所述一或多个处理器例如是一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”和“处理单元”可指前述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可以在经配置用于编码和解码的专用硬件和/或软件模块内提供,或者并入在组合编解码器中。而且,所述技术可完全实施在一或多个电路或逻辑元件中。本发明的技术可以在广泛多种装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(即,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所公开的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可以结合合适的软件及/或固件组合在编码解码器硬件单元中,或者由互操作硬件单元的集合提供,所述硬件单元包含如上文所描述的一或多个处理器。已描述了本发明的各种方面。这些及其它方面在所附权利要求书的范围内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1