用于多通道存储器的填补的制作方法

文档序号:6534195阅读:139来源:国知局
用于多通道存储器的填补的制作方法
【专利摘要】本发明中描述的技术一般涉及当在系统存储器中存储数据时在所述系统存储器中保留填补字节。填补字节的所述保留可允许存储器接口在存储或随后检索所述数据时有效地利用到所述系统存储器的通道。
【专利说明】用于多通道存储器的填补

【技术领域】
[0001] 本发明涉及数据的存储和检索,且更特定来说涉及图形处理单元(GPU)对数据的 存储和检索。

【背景技术】
[0002] 例如图形处理单元(GPU)等各种处理单元从系统存储器检索数据和将数据存储 到系统存储器中,所述系统存储器为用于容纳所述GPU的装置的存储器。系统存储器能够 存储大量数据。GPU经由将所述GPU禪合到系统存储器的系统总线从系统存储器检索数据 和将数据存储到系统存储器中。


【发明内容】

[0003] 大体上,本发明中描述的技术是针对存储器填补W平衡系统存储器的存储器单元 之间的存储器存取。举例来说,集成电路(IC)可包含多个存储器控制器。存储器控制器中 的每一者可存取系统存储器内的存储器单元中的每一者。如更详细描述,通过填补,IC W - 方式将数据存储到存储器单元中使得当将随后检索数据时,存储器控制器能够并行地(例 女口,在同时)从存储器单元检索数据。
[0004] 在一个实例中,本发明描述一种方法,其包含W存储器接口接收指示所述存储器 接口将表面的像素值存储在系统存储器中的多个指令。所述方法还包含W所述存储器接口 至少在经由第一存储器控制器的所述系统存储器的第一存储器单元与经由第二不同存储 器控制器的所述系统存储器的第二不同存储器单元之间W交错方式将所述表面的所述像 素值存储在所述系统存储器的除了所述系统存储器中的保留填补位之外的位中,使得显示 瓦片的第一像素值集合经由所述第一存储器控制器存储在所述第一存储器单元内且所述 同一显示瓦片的第二像素值集合经由所述第二存储器控制器存储在所述第二存储器单元 内。
[0005] 在另一实例中,本发明描述一种集成电路(1C),其包含:第一存储器控制器,其W 操作方式禪合到系统存储器的第一存储器单元;第二不同存储器控制器,其W操作方式禪 合到所述系统存储器的第二不同存储器单元;W及存储器接口。所述存储器接口经配置W 接收指示所述存储器接口将表面的像素值存储在所述系统存储器中的多个指令。所述存储 器接口还经配置W至少在经由所述第一存储器控制器的所述系统存储器的所述第一存储 器单元与经由所述第二不同存储器控制器的所述系统存储器的所述第二不同存储器单元 之间W交错方式将所述表面的所述像素值存储在所述系统存储器的除了所述系统存储器 中的保留填补位之外的位中,使得显示瓦片的第一像素值集合经由所述第一存储器控制器 存储在所述第一存储器单元内且所述同一显示瓦片的第二像素值集合经由所述第二存储 器控制器存储在所述第二存储器单元内。
[0006] 在另一实例中,本发明描述一种装置,其包含;系统存储器,其包括至少第一存储 器单元和第二不同存储器单元;W及集成电路(1C)。所述IC包含;第一存储器控制器,其 W操作方式禪合到系统存储器的第一存储器单元;第二不同存储器控制器,其W操作方式 禪合到所述系统存储器的第二不同存储器单元;W及存储器接口。所述存储器接口经配置 W接收指示所述存储器接口将表面的像素值存储在所述系统存储器中的多个指令。所述存 储器接口还经配置W至少在经由所述第一存储器控制器的所述系统存储器的所述第一存 储器单元与经由所述第二不同存储器控制器的所述系统存储器的所述第二不同存储器单 元之间W交错方式将所述表面的所述像素值存储在所述系统存储器的除了所述系统存储 器中的保留填补位之外的位中,使得显示瓦片的第一像素值集合经由所述第一存储器控制 器存储在所述第一存储器单元内且所述同一显示瓦片的第二像素值集合经由所述第二存 储器控制器存储在所述第二存储器单元内。
[0007] 在另一实例中,本发明描述一种装置,其包含;系统存储器,其包括至少第一存储 器单元和第二不同存储器单元;W及集成电路(1C)。所述IC包含;第一存储器控制器,其 W操作方式禪合到系统存储器的第一存储器单元;W及第二不同存储器控制器,其W操作 方式禪合到所述系统存储器的第二不同存储器单元。所述IC还包含:用于W存储器接口接 收指示所述存储器接口将表面的像素值存储在系统存储器中的多个指令的装置;W及用于 W所述存储器接口至少在经由第一存储器控制器的所述系统存储器的第一存储器单元与 经由第二不同存储器控制器的所述系统存储器的第二不同存储器单元之间W交错方式将 表面的所述像素值存储在所述系统存储器的除了所述系统存储器中的保留填补位之外的 位中使得显示瓦片的第一像素值集合经由所述第一存储器控制器存储在所述第一存储器 单元内且所述同一显示瓦片的第二像素值集合经由所述第二存储器控制器存储在所述第 二存储器单元内的装置。
[0008] 在另一实例中,本发明描述一种计算机可读存储媒体。所述计算机可读存储媒体 具有存储于其上的指令,所述指令在执行后即刻致使一或多个处理器:指示存储器接口至 少在经由第一存储器控制器的所述系统存储器的第一存储器单元与经由第二不同存储器 控制器的所述系统存储器的第二不同存储器单元之间W交错方式将表面的像素值存储在 系统存储器的除了所述系统存储器中的保留填补位之外的位中,使得显示瓦片的第一像素 值集合经由所述第一存储器控制器存储在所述第一存储器单元内且所述同一显示瓦片的 第二像素值集合经由所述第二存储器控制器存储在所述第二存储器单元内。
[0009] 在附图和W下描述中陈述一或多个实例的细节。从描述和附图W及从权利要求书 将明了其它特征、目标和优点。

【专利附图】

【附图说明】
[0010] 图1是说明可经配置W实施本发明的一或多个方面的装置的实例的框图。
[0011] 图2是说明图1的系统存储器的实例性物理页的概念图。
[0012] 图3A和3B是说明W线性和瓦片方式存储像素值的实例的概念图。
[0013] 图3C是说明表面瓦片的实例的概念图。
[0014] 图3D是说明实例性显示瓦片的概念图。
[0015] 图4是说明W线性方式在系统存储器中存储表面的图形图。
[0016] 图5是说明当表面W线性方式存储时显示瓦片在系统存储器中的存储的图形图。
[0017] 图6是说明W瓦片方式在系统存储器中存储表面的图形图。
[0018] 图7是说明当表面W瓦片方式存储时显示瓦片在系统存储器中的存储的图形图。
[0019] 图8是说明具有字节填补的W线性方式在系统存储器中存储表面的图形图。
[0020] 图9到11是说明具有字节填补的W线性方式在系统存储器中存储表面的额外图 形图。
[0021] 图12是说明具有字节填补的W瓦片方式在系统存储器中存储表面的图形图。
[0022] 图13和14是说明具有字节填补的W瓦片方式在系统存储器中存储表面的额外图 形图。
[0023] 图15是说明W瓦片方式在系统存储器中存储表面的另一图形图。
[0024] 图16是说明具有字节填补的W瓦片方式在系统存储器中存储表面的另一图形 图。
[00巧]图17A和17B是说明通道函数的实例的图形图。
[0026] 图18是说明根据本发明中描述的一或多个实例的实例性技术的流程图。
[0027] 图19是说明可经配置W实施本发明的一或多个方面的装置的另一实例的框图。

【具体实施方式】
[002引集成电路(IC)可包含一或多个处理单元,例如图形处理单元师U)和处理器。IC 还可包含存储器接口单元OO巧和多个存储器控制器(MC)。MC中的每一者可允许GPU和 处理器存取系统存储器中的对应存储器单元。举例来说,系统存储器可为用于容纳IC的装 置的总存储器,且一般提供与IC局部的存储器(例如IC内的高速缓存存储器)相比来说 相对大量的存储能力。
[0029] 如本发明中使用的术语集成电路或IC用W描述包含例如处理器、GPU、MIF和MC 等不同组件的组合的电路。术语集成电路或IC不应解释为意味着该些各种组件驻留于共 同封装或外壳内。举例来说,IC可包含两个不同的芯片封装。第一封装可包含处理器、MIF 和MC,且第二封装可包含GPU。其它排列和组合可为可能的,包含其中存在共同形成IC的 两个W上封装的实例。单个封装包含处理器、GPU、MIF和MC也是可能的。
[0030] 在一些实例中,系统存储器可划分为多个存储器单元,且存储器单元中的每一者 可由对应MC控制。举例来说,假定系统存储器内存在两个存储器单元(存储器单元0和存 储器单元1),且IC内存在两个MC (MC0和MCI)。在此实例中,MCO为GPU和处理器提供对存 储器单元0的存取,且MCl为GPU和处理器提供对存储器单元1的存取。不可能从MCl存 取存储器单元0,且不可能从MCO存取存储器单元1。
[003。 为了说明的目的且便于描述,W下实例是在包含分别由两个MC(MC0和MCI)控制 的两个存储器单元(存储器单元0和存储器单元1)的系统存储器的上下文中描述。然而, 本发明中描述的技术不受此限制。系统存储器可包含两个W上存储器单元,且IC可包含两 个W上MC。
[0032] 存储器接口单元(MI巧为GPU提供对MC的存取。举例来说,MIF包含存储器管理 单元(MMU),其将虚拟存储器地址映射到系统存储器的物理地址。GPU使用数据经存储或将 存储在系统存储器中处的虚拟地址来检索或存储数据。MIF将虚拟地址转换为系统存储器 的物理地址。
[0033] 举例来说,在可为中央处理单元(CPU)的处理器上运行的现代操作系统(0巧通常 使用虚拟存储器方案,用于向多个到各种组件(例如GPU)分配存储器。虚拟存储器是一种 存储器管理技术,其虚拟化系统物理存储器(例如,RAM、磁盘存储装置等等)W使得GPU可 仅需要参考存储器的一个集合(即,虚拟存储器)。虚拟存储器由映射到物理存储器中的位 置的连续地址空间组成。W此方式,物理存储器的分段对GPU "隐藏",GPU可改为与虚拟存 储器的连续块交互。虚拟存储器中的连续块通常布置为"页"。每一页是虚拟存储器地址的 某种固定长度的连续块。从虚拟存储器到物理存储器的映射经常由存储器管理单元(MMU) 处置,所述MMU在本发明中描述的实例中为MIF的部分。
[0034] 当存储由GPU或IC内的另一组件传输的数据时,MIF可利用交错方式来存储数据。 存储的交错方式指代MCO将第一位集合存储在存储器单元0中,然后MCl将第二位集合存 储在存储器单元1中,然后MCO将第H位集合存储在存储器单元0中,然后MCl将第四位集 合存储在存储器单元1中,等等。换句话说,存储的交错方式可视为位集合在存储器单元0 和存储器单元1中的存储的交替。每交错循环存储的位的数目可称为交错粒度。交错粒度 可W字节来界定,其中一个字节等于八个位。交错粒度可经预编程或为可选择的。
[0035] 作为说明性实例,GPU可将待存储的数据W及数据将存储到的虚拟地址传输到 MIF。MIF又将虚拟地址映射到物理地址,且将数据存储在系统存储器中。在本发明中描述 的实例中,MIF可W交错方式基于交错粒度经由MCO将数据存储在存储器单元0中且经由 MCl将数据存储在存储器单元1中。
[0036] 在一些实例中,MCO和MCl可将数据存储在系统存储器的页中,其中页可涵盖存储 器单元0和存储器单元1两者。举例来说,页可包含四个区段0到3。区段0和2可为存储 器单元0的部分,且区段1和3可为存储器单元1的部分。MIF可将虚拟页映射到物理页的 四个区段,且W交错方式将虚拟页的数据存储在物理页的区段中。然而,本发明的方面不限 于其中系统存储器包含页的实例。为了说明的目的,为便于描述而在系统存储器包含页的 上下文中描述各种实例。
[0037] 作为说明性实例,假定交错粒度为1024个字节(例如,1千字节化的),且系统存 储器中的页可存储多达4096个字节(例如,4kB)的数据。在此实例中,为了 W交错方式填 充页,MIF可致使MCO将第一 IkB的数据存储在存储器单元0中的页的区段0中,随后致使 MCl将第二IkB的数据存储在存储器单元1中的页的区段1中,随后致使MCO将第H IkB的 数据存储在存储器单元0中的页的区段2中,且随后致使MCl将第四IkB的数据存储在存 储器单元1中的页的区段3中。
[0038] 在其中系统存储器未划分为页的实例中,MIF可仍基于交错粒度来交错存储。举例 来说,MIF可致使MCO将第一 IkB的数据存储在系统存储器中,且随后致使MCl将第二IkB 的数据存储在系统存储器中,等等。举例来说,MIF可使用MCO和MCl在系统存储器中W交 错方式存储数据。
[0039] 虽然W交错方式存储数据可平衡大体上在MCO与MCl之间的存储责任,但在检索 数据中可能没有相等的平衡(例如,MIF经由MCO在存储器单元0中且经由MCl在存储器 单元1中存储相等量的从GPU接收的数据,但MIF可能不会经由MCO从存储器单元0且经 由MCl从存储器单元1检索相等量的数据用于GPU)。如更详细描述,GPU可执行光栅化步 骤,其中GPU将显示器划分为若干显示瓦片,从系统存储器检索显示瓦片内的像素值,且基 于像素值再现显示器的像素。W交错方式存储可导致GPU随后仅从存储器单元0或存储器 单元I而不是存储器单元O和存储器单元I两者检索像素值。
[0040] 举例来说,W交错方式存储可导致用于一个显示瓦片的所有像素值存储在存储器 单元0中且无像素值存储在存储器单元1中,或反之亦然。在此情况下,当GPU请求检索显 示瓦片的像素值时,MIF可仅能够使用MCO来从存储器单元0检索像素值,从而留下MCl空 闲,或反之亦然。在此实例中,从系统存储器的仅一个存储器单元且不从任何其它存储器单 元检索显示瓦片的像素值可能不是对系统存储器的有效存取。
[0041] 本发明中描述的技术可在W交错方式存储时将填补位添加到系统存储器。为了说 明的目的,在填补字节的方面描述所述技术,其中一个填补字节等于八个填补位。与其中不 存在填补字节的实例相比,填补字节可占据系统存储器内的额外存储位置。然而,填补字节 可切换数据存储的方式,使得当随后检索显示瓦片内的像素的像素值时,分别经由MCO和 MCl从存储器单元0和存储器单元1两者检索所述显示瓦片的像素值。此外,通过填补字 节,GPU可能够并行地存储显示瓦片的数据,如下文论述。
[0042] 举例来说,为了检索显示瓦片的像素值,GPU可能够请求MIF在大体上同时(例如, 并行地)分别经由MCO和MCl从存储器单元0和存储器单元1两者检索像素值。使用MCO 和MCl在同时存取像素值可促进系统存储器的有效存取。与GPU仅可从MCO或MCl且并非 同时存取系统存储器的情况相比,该可允许GPU对系统存储器的每次存取检索更大量的像 素值。W此方式,本发明中描述的技术可牺牲存储空间(例如,由于额外填补字节)来实现 对系统存储器的较好存取效率。
[0043] 类似地,当存储显示瓦片的像素值时,GPU可能够请求MIF在大体上同时(例如, 并行地)分别经由MCO和MCl从存储器单元0和存储器单元1两者存储像素值。类似于像 素值的检索,此并行存储可促进对系统存储器的有效存取。
[0044] 图1是说明可实施本发明的一或多个方面的装置的实例的框图。举例来说,图1说 明装置10。装置10的实例包含(但不限于)例如媒体播放器等视频装置、机顶盒、例如移 动电话等无线手持机、个人数字助理(PDA)、桌上型计算机、膝上型计算机、游戏控制台、视 频会议单元、平板计算装置和类似物。如所说明,装置10可包含集成电路(IC) 12和系统存 储器24。装置10可包含除了图1中说明的那些组件之外的组件,如图19中更详细说明。
[0045] IC 12可包含图形处理单元佑PU) 14、处理器16、存储器接口(MIF) 20 W及存储器 控制器(MC) 22A到22N(统称为MC 22)。虽然图1说明GPU 14和处理器16驻留于共同封 装(例如,共同硬件芯片)中,但本发明的方面不受此限制。举例来说,处理器16可在封装 的外部。此外,在其中处理器16在封装的外部的一些实例中,GPU 14可包含MIF 20和MC 22 ;然而,该并非在其中处理器16在封装的外部的每个实例中都是要求。
[0046] 换句话说,在一些实例中,处理器16、GPU 12、MIF 20和MC 22A到22N可为个别硬 件芯片,且IC 12可包含该些硬件芯片的组合。在其它实例中,一个硬件芯片可包含处理器 16、MIF 20和MC 22中的一或多者,且另一硬件芯片可包含GPU 14,且在该些实例中,IC 12 可包含该两个硬件芯片两者。其它此类排列和组合可为可能的,包含图1中说明的实例,其 中处理器16、GPU 14、MIF 20和MC 22说明为处于共同封装中。而且,IC 12可包含除了图 1中说明的组件外的额外组件,例如视频译码器。
[0047] IC 12可为经设计W用于特定目的的专用硬件单元,例如W特定性能准则再现图 形,所述性能准则例如W相对快速方式再现图形的大量并行处理能力。在一些实例中,IC 12可包含与数字信号处理器值SP)、通用微处理器、专用集成电路(ASIC)、现场可编程口阵 列(FPGA)或其它等效集成或离散逻辑电路组合的专口硬件。举例来说,GPU 14可为专用 硬件,且处理器16可为DSP、通用微处理器、ASIC或FPGA,但本发明的方面不应视为受此限 制。
[0048] 系统存储器24的实例包含(但不限于)随机存取存储器(RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器巧EPROM)、快闪存储器、硬盘驱动器,或可用W用指令或 数据结构的形式存储所要程序代码且可由处理器16和GPU 14存取的任一其它媒体。在 一些实例中,系统存储器24可包括一或多个计算机可读存储媒体,例如计算机可读存储装 置。举例来说,在一些实例性实施方案中,系统存储器24可包含致使处理器16和GPU 14 执行归属于本发明中的每一功能的功能的指令。
[0049] 在一些实例中,系统存储器24可视为非暂时性存储媒体。术语"非暂时性"可指 示存储媒体未在载波或传播信号中体现。然而,术语"非暂时性"不应解释为意味着系统存 储器24是不可移动的。作为一个实例,系统存储器24可从装置10移除,且移动到另一装 置。作为另一实例,大体上类似于系统存储器24的存储装置可插入到装置10中。在某些 实例中,非暂时性存储媒体可存储可随着时间改变的数据(例如,在RAM中)。
[0050] GPU 14可经配置W执行图形相关功能,例如确定装置10的显示器(可为装置10 的部分或禪合到装置10)的像素的像素值,且再现显示器的像素。举例来说,处理器16可 执行存储在系统存储器24中的应用程序,例如视频游戏、网络浏览器、电子邮件应用程序, 或产生将呈现的图形的任一其它应用程序。处理器16可指示GPU 14执行图形相关功能W 确定像素值,例如通过应用程序的执行产生的图形的颜色值、不透明度值和其它此类值。作 为响应,GPU 14可执行图形相关功能且基于所确定像素值再现显示器的像素。
[0051] 图形处理单元(GPU)驱动器18可充当处理器16与GPU 14之间的接口,其允许处 理器16指示GPU 14执行图形相关功能。举例来说,当处理器16需要将命令或指令传输到 GPU 14时,处理器16是通过GPU驱动器18来传输所述命令或指令。处理器16可传输到 GPU 14的命令或指令包含加载和执行例如顶点着色器和片段着色器等着色器程序的指令 的命令,W及例如GPU 14可从系统存储器24检索像素值或将像素值存储到所述系统存储 器中的虚拟地址等命令。W此方式,处理器16可控制GPU 14的功能性。
[0052] GPU 14用W检索或存储像素值的虚拟地址可为虚拟存储器方案的部分,其保持像 素值所存储或正被检索的实际位置对GPU 14"隐藏"。举例来说,虚拟存储器是存储器管理 技术,其虚拟化系统存储器24 W使得GPU 14可仅需要参考虚拟地址来检索和存储像素值。 在该些实例中,处理器16的GPU驱动器18可将虚拟地址传输到GPU14,其向GPU 14指示将 像素值存储到何处或从何处检索像素值。
[0053] 如所说明,在处理器16内W虚线展示GPU驱动器18。该是为了说明GPU驱动器 18是在处理器16上执行的软件。在此实例中,系统存储器24存储GPU驱动器18的源代码 或目标代码,处理器16检索所述代码用于执行。替代地,GPU驱动器18可为嵌入在处理器 16内的硬件,或在处理器16外部的禪合到处理器16和GPU 14的硬件。大体上,GPU驱动 器18可为硬件、软件、固件或其任一组合。为了说明和清楚的目的,本发明中描述的实例是 在GPU驱动器18为在处理器16上执行的软件的上下文中描述。
[0054] 如上文指示,GPU 14可将像素值存储到系统存储器24中和从所述系统存储器检 索像素值。为了存取系统存储器24, GPU 14可利用存储器接口(MIF) 20和存储器控制器 (MC) 22。MIF 20和MC 22可为硬件、软件、固件或其任一组合。为了说明的目的,将MIF 20 和MC 22描述为硬件。
[00巧]MC 22中的每一者可提供对系统存储器24的存储器单元26A到26N (统称为存储 器单元26)中的对应者的存取。存储器单元26中的每一者可为系统存储器24的单独可存 取的相异部分。举例来说,系统存储器24可包含多个存储器单元26,且对存储器单元26的 存取由MC 22中的对应一者提供。
[0056] 在一些实例中,存储器单元26中的一者可仅经由MC 22中的其对应一者而不经由 其它MC 22来存取。举例来说,如果MC 22A对应于存储器单元26A,那么存储器单元26A可 仅经由MC 22A来存取,且MC 22B到22N不能够存取存储器单元26A。W此方式,MC 22中 的每一者经由对应存储器单元26提供到系统存储器24的通道。
[0057] 为了说明和清楚的目的,本发明的方面是在IC 12包含两个MC 22(例如,MC 22A 和MC 22脚且系统存储器24包含两个存储器单元26 (例如,存储器单元26A和存储器单元 26脚的情况下描述。然而,本发明的方面不受此限制。在替代实例中,IC 12可包含两个W 上MC 22,且系统存储器24可包含两个W上存储器单元26,且本发明中描述的技术也可扩 展到此些实例。在其中系统存储器24包含两个存储器单元的实例中,系统存储器24可称 为双通道存储器,因为存在分别由两个MC 22提供到系统存储器24的两个通道。
[0058] MIF 20可为接口,其允许GPU 14和处理器16分别经由MC 22A和22N从存储器单 元26A和26N存取数据(例如,像素值)。举例来说,MIF 20可包含存储器管理单元(MMU) 21, 其将虚拟存储器地址映射到物理存储器地址中。举例来说,为了将像素值存储到系统存储 器24内的特定存储器地址或从所述特定存储器地址检索像素值,GPU14可将与所述特定存 储器地址相关联的虚拟地址输出到MIF 20。MIF 20的MMU 21可从虚拟存储器地址确定所 述特定存储器地址,且存取系统存储器26中的所述特定存储器地址。
[0059] 虚拟存储器空间可划分为多个虚拟页。该些虚拟页可为连续的,但系统存储器24 中该些虚拟页对应的物理页可能在系统存储器24中不连续。页可视为MIF 20可能够管理 的最小单元。
[0060] 在本发明的方面中,从虚拟页映射的物理页可涵盖存储器单元26A和存储器单元 26N两者,如图2中更详细说明。图2是说明系统存储器24的实例性物理页的概念图。举 例来说,图2说明包含虚拟页28的存储器接口(MIF) 20,所述虚拟页包含四个区段(区段0 到3)。应了解,虚拟页28是在图2中为便于理解而说明的虚拟构造。在图2中,系统存储 器24可包含对应于虚拟页28的物理页30。
[0061] 物理页30可涵盖存储器单元26A和存储器单元26N两者。举例来说,存储器单元 26A可存储物理页30的一部分,指示为部分30A,且存储器单元2她可存储物理页30的一 部分,指示为部分30B。如所说明,存储器单元26A存储物理页30的区段0和区段2,且存 储器单元26N存储物理页30的区段1和区段3。
[0062] 由于IC 12 W交错方式存储数据,因此存储器单元26A可存储区段0和区段2且 存储器单元26N可存储区段1和区段3。举例来说,返回参见图LGPU驱动器18可传输致 使GPU 14存储像素值的指令,且可传输像素值将存储于的虚拟地址。GPU 14又可请求MIF 20根据虚拟地址存储像素值。MIF 20又可将虚拟地址映射到物理地址,且基于物理地址W 交错方式将像素值存储在系统存储器24的页中。
[0063] MIF 20可经配置W用交错方式存储像素值。作为一个实例,MIF 20可经预编程W 用交错方式存储像素值。作为另一实例,MIF 20可接收指示MIF 20 W交错方式存储像素 值的指令。
[0064] 作为图形相关功能的部分,GPU 14可产生将在装置10的显示器上显示的图形图 像或内容的表面。GPU驱动器18可传输致使GPU 14将所述表面存储在系统存储器24中的 指令,W及关于GPU 14将在何处存储所述表面的虚拟地址。每一表面可包含存储在系统存 储器24中的像素值。
[0065] 在本发明中描述的实例中,当GPU驱动器18传输指令时,作为一个实例,GPU驱动 器18可将指令直接传输到GPU 14,其致使GPU 14执行所指示的功能。作为另一实例,GPU 驱动器18可传输存储在系统存储器24中的指令。GPU驱动器18可随后命令GPU 14从系 统存储器24检索所存储指令,且执行所指示的功能。在该些实例中的任一者中,可考虑GPU 驱动器18传输致使GPU 14执行所指示的功能的指令。
[0066] 所述表面可视为像素值的二维(2D)阵列,且GPU 14可在系统存储器24中W线性 或瓦片方式存储表面。在一些实例中,像素值的2D阵列可为与显示器上的像素数目近似相 同的大小。举例来说,表面的像素值可表示由GPU 14产生的图形图像。
[0067] 作为一个实例,在处理器16上执行的GPU驱动器18可传输致使GPU 14存储表面 的每一条线的指令,所述线随后存储在系统存储器24中,其中一条线涵盖所述表面的一行 上的像素值。作为另一实例,GPU驱动器18可传输致使GPU 14存储表面的每一瓦片(称 为表面瓦片)的指令,所述瓦片随后存储在系统存储器24中,其中瓦片涵盖所述表面的MxN 像素值。大体上,本发明可一般地涉及存储表面的若干部分,其可称为W线性或瓦片方式存 储表面。
[0068] 在此实例中,为了 W线性或瓦片方式存储表面,GPU驱动器18可传输致使GPU14将 像素值存储在虚拟地址处的指令。MIF 20的MMU 21可确定对应于虚拟地址的物理地址,且 GPU 14通过MIF 20可将像素值存储在系统存储器24的对应于物理地址的页处。
[0069] MIF 20可在MC 22A与MC 22N之间交错朗尋像素值存储在系统存储器24的页中。 存储的交错方式指代经由MC 22A将第一字节集合(其中一个字节为八位)存储在存储器 单元26A中,然后经由MC 22N将第二字节集合存储在存储器单元26N中,然后经由MC 22A 将第H字节集合存储在存储器单元26A中,然后经由MC 22N将第四字节集合存储在存储器 单元26N中,等等。换句话说,存储的交错方式可视为字节经由相应MC 22A和22N在存储 器单元26A和存储器单元26N中的存储的交替。每交错循环存储的字节数目可称为交错粒 度,且可由GPU驱动器18界定或MIF 20可W交错粒度预编程。
[0070] 举例来说,在图2中说明的实例中,物理页30 (从虚拟页28映射)可能够存储4096 个字节的像素值(例如,4千字节(kB)的像素值),其意味着区段0到3中的每一者可存储 1024个字节的像素值(例如,IkB的像素值)。而且,假定交错粒度为1024个字节。在此实 例中,由于IkB的交错粒度,GPU驱动器18可致使GPU 14通过MIF 20存储像素值,使得表 面的一条线或瓦片的第一 IkB的像素值经由MC 22A存储在存储器单元26A中的区段0中, 且使得表面的所述线或瓦片的第二IkB的像素值经由MC 22N存储在存储器单元26N中的 区段1中。而且,由于IkB的交错粒度,GPU驱动器18可指示致使GPU 14通过MIF 20存储 像素值,使得表面的所述线或瓦片的第H IkB的像素值经由MC 22A存储在存储器单元26A 中的区段2中,且使得表面的所述线或瓦片的第四IkB的像素值经由MC 22N存储在存储器 单元26N中的区段3中。
[0071] 虽然W上实例描述像素值在页(例如,物理页30或虚拟页28)中的存储,但本发 明的方面不受此限制。举例来说,系统存储器24划分为多个物理页可能是不必要的。甚至 在该些实例中,GPU驱动器18也可致使GPU 14通过MIF 20 W交错方式存储像素值。在该 些实例中,系统存储器24内的存储位可视为连续存储位置;然而,连续存储可能不是在每 个实例中都是必要的。作为其中系统存储器24不一定划分为物理页的实例,由于IkB的交 错粒度,GPU驱动器18可致使GPU 14通过MIF 20存储像素值,使得表面的一条线或瓦片 的第一 IkB的像素值经由MC 22A存储在存储器单元26A中,且使得表面的所述线或瓦片的 第二IkB的像素值经由MC 22N存储在存储器单元26N中。而且,由于IkB的交错粒度,GPU 驱动器18可致使GPU 14通过MIF 20存储像素值,使得表面的所述线或瓦片的第H IkB的 像素值经由MC 22A存储在存储器单元26A中,且使得表面的所述线或瓦片的第四IkB的像 素值经由MC 22N存储在存储器单元26N中。为便于描述,W其中系统存储器24包含例如 物理页30等页的实例来描述各种实例。
[0072] 为了说明的目的,本发明描述存储若干字节的像素值。一字节等于8个位。因此, 存储1024个字节等效于存储8192个位,其中位可为数字值0或数字值1。因此,虽然本发 明描述存储若干字节的像素值,但本发明中描述的技术等效于存储若干位的像素值,其中 每一字节为8个位。
[0073] 在其中系统存储器24包含物理页30的实例中,交错粒度致使物理页30的一半存 储在存储器单元26A中且物理页30的另一半存储在存储器单元26B中。此交错存储可促 进有效的通道利用。举例来说,交错粒度可致使MIF 20使用由MC 22A建立的通道存储一 半像素值,且使用由MC 22N建立的通道存储一半像素值。此使用由MC22A建立的通道存储 一半像素值且使用由MC22N建立的通道存储一半像素值可甚至在其中系统存储器24未划 分为页的实例中发生。
[0074] 而且,W交错存储方式存储像素值可允许GPU 14在系统存储器24中并行地存储 像素值。举例来说,GPU 14可能够经由MC 22A将像素值存储在存储器单元26A内的物理页 30的部分30A的区段0中,在同时(例如,并行地)GPU 14可能够经由MC 22N将像素值存 储在存储器单元26N内的物理页30的部分30B的区段1中。类似于上文,在与经由MC 22N 在存储器单元26N内的像素值的存储同时发生的经由MC 22A在存储器单元26A内的像素 值的存储也可甚至在其中系统存储器24未划分为页的实例中发生。
[0075] 然而,如更详细描述,检索已经W交错存储方式存储的像素值可能未有效利用由 MC 22A和MC 22N建立的到系统存储器24的通道。举例来说,GPU 14的功能中的一者是在 装置10的显示器上再现最终像素值W用于呈现。举例来说,在表面存储在系统存储器24 中之后,GPU 14从系统存储器24检索表面的像素值W在装置10的显示器上显示像素。像 素值表示显示器将显示的图形内容或图像。
[0076] 在一些实例中,GPU 14在称为光栅化的过程中逐片地再现显示。在光栅化中,GPU 14将显示器划分为多个显示瓦片。GPU 14随后再现一个显示瓦片的图形内容,随后是下一 显示瓦片,W此类推,W在显示器上再现最终图像。
[0077] 每一显示瓦片可为显示器的矩形区域。举例来说,每一显示瓦片包含WxH像素, 其中W是W像素计的显示瓦片的宽度,且H是W像素计的显示瓦片的高度。显示瓦片可为 16x16、8x4、8x8、16x4、16x8、32x4、32x8、4x8、4x16、8x16、4x32 或 8x32。然而,本发明的方面 不受此限制,且本发明中描述的技术一般预期任何大小的显示瓦片,包含非矩形显示瓦片。 [007引显示瓦片和W瓦片方式存储表面(例如,存储表面瓦片)不应混淆。显示瓦片是 显示器的其中GPU 14再现图形内容的部分。W瓦片方式存储表面意味着将表面瓦片的像 素值存储在系统存储器24中。换句话说,显示瓦片指代显示器上的瓦片,且表面瓦片指代 表面内将显示的瓦片。为便于理解,假定每一显示瓦片的大小为16x16,且每一表面瓦片的 大小为4x4。显示瓦片的16x16的大小W及表面瓦片的4x4的大小经选择W使得显示瓦片 的大小和表面瓦片的大小不同,W避免混淆显示瓦片和表面瓦片。在替代实例中,显示瓦片 和表面瓦片具有相同大小或不同于16x16和4x4的大小可为可能的。
[0079] 图3A和3B是说明W线性和瓦片方式存储像素值的实例的概念图。图3A说明表 面32A,且图3B说明表面32B。表面32A和32B可包含装置10的显示器上的对应像素的像 素值,例如颜色值或纹理值。举例来说,表面32A和表面32B各自包含h乘W像素值,其中 h是表面32A和表面32B的高度且W是表面32A和表面32B的宽度。在一些实例中,表面 32A和32B的高度和宽度可大体上类似于装置10的显示器的高度和宽度。举例来说,装置 10的显示器可包含h乘W像素,且表面32A和32B的像素值中的每一者可为装置10的显示 器的对应像素的像素值。
[0080] 在图3A中,表面32A包含h条线,且GPU 14可从上到下且从线的左端到线的右端, 利用上述交错存储技术在系统存储器24的页中存储h条线中的每一者中的像素值。W相 对于图3A描述的方式存储像素值可称为W线性方式存储像素值。举例来说,如图3A中说 明,GPU 14可将线0的像素值存储在虚拟存储器28的第一部分中,将线1的像素值存储在 虚拟存储器28的第二部分中,等等。如上文论述,虚拟存储器28的部分可为连续的。MIF 20可随后经由MC 22A和MC 22N将像素值存储到系统存储器24的存储器单元26A和存储 器单元26N中。
[0081] 在图3B中,表面32B包含X数目个表面瓦片,其中每一表面瓦片为MxN的大小。举 例来说,每一表面瓦片对应于装置10的显示器上的MxN像素。GPU 14可从左上方表面瓦片 (例如,瓦片0)开始且W右下方表面瓦片(例如,瓦片X-1)结束,存储每一表面瓦片中的 MxN像素值。W相对于图3B描述的方式存储像素值可称为W瓦片方式存储像素值。举例来 说,如图3B中说明,GPU 14可将表面瓦片0的像素值存储在虚拟存储器28的第一部分中, 将表面瓦片1的像素值存储在虚拟存储器28的第二部分中,等等。类似于图3A,虚拟存储 器28的部分可为连续的。而且,类似于图3A,在图3B中,MIF 20可随后经由MC 22A和MC 22N将像素值存储到系统存储器24的存储器单元26A和存储器单元26N中。
[0082] 在一些实例中,W线性方式存储像素值可视为W瓦片方式存储像素值的特殊情 况。举例来说,假定表面瓦片的大小为W乘1(例如,M等于W,且N等于1)。在此实例中, 表面瓦片的大小与表面32A的线的大小相同,且在此实例中W瓦片方式存储像素值可与W 线性方式存储像素值相同。大体上,本发明可一般地涉及存储表面(例如,表面32A或表面 32B)的若干部分,其可称为W线性或瓦片方式存储表面。
[008引当GPU 14产生表面(例如,将在装置10的显示器上显示的图像或图形内容)的 像素值时,GPU 14可请求W线性方式或瓦片方式存储像素值,且MIF 20可随后基于交错粒 度W交错方式存储像素值W有效地利用由MC 22A和MC 22N提供的到系统存储器24的通 道。然而,当GPU 14请求从系统存储器24检索像素值时,在表面是W线性或瓦片方式存储 时MIF 20可能不会有效地利用由MC 22A和MC 22N提供的到系统24的通道。
[0084] 举例来说,装置10的显示器可包含右半部和左半部。如图4到7中更详细说明, 当GPU 14 W线性或瓦片方式存储像素值时,MIF 20可仅使用MC 22A且不从MC 22N检索 对应于显示器的左半部的所有像素值。类似地,MIF 20可仅使用MC 22N且不从MC 22A检 索对应于显示器的右半部的所有像素值。W此方式,当GPU 14再现处于显示器的左半部中 的显示瓦片时,GPU 14可仅从MC 22A接收像素值,留下由MC 22N建立的通道空闲,该可为 对到系统存储器24的通道的低效使用。类似地,当GPU 14再现处于显示器的右半部中的 显示瓦片时,GPU 14可仅从MC 22N接收像素值,留下由MC 22A建立的通道,该也可为对到 系统存储器24的通道的低效使用。
[00财图3C是说明表面瓦片的实例的概念图。举例来说,图3C说明4x4表面瓦片33,其 在瓦片中包含总共16个像素。图3D是说明实例性显示瓦片的概念图。举例来说,图3D说 明显示35,其包含十六个显示瓦片(例如,显示瓦片0到15)。作为一个实例,每一显示瓦 片可包含16x16像素。换句话说,显示瓦片0可包含16x16像素,显示瓦片1可包含16x16 像素,等等。在此实例中,显示35可包含64x64像素(即,每显示瓦片16个水平像素*4个 显示瓦片等于64个水平像素,且每显示瓦片16个垂直像素*4个显示瓦片等于64个垂直 像素,总共64x64像素)。
[0086] 图4是说明W线性方式在系统存储器中存储表面的图形图。举例来说,如上文相 对于图3A描述,MIF 20可在系统存储器24中W线性方式存储由GPU 14产生的表面32A 的像素值。图4说明表面32A的像素值在系统存储器24中的存储的结果。在图4中,假定 装置10的显示器的宽度为512个像素且高度为16个像素。因此,表面32A的宽度(W)为 512个像素值,且表面32A的高度化)为16个像素值,因为表面32A的大小可与装置10的 显示器的大小相同。为便于说明,图4中的每一列表示16个像素值。因此,存在32个列, 其各自表示16个像素值,得到512个像素值的总宽度(即,16*32等于512)。
[0087] 而且,在图4的实例中,假定每一像素值涵盖4个字节的数据。举例来说,每一像 素值可表示红绿蓝(RGB)颜色值和不透明度值。在此实例中,红色值可涵盖8个位,绿色值 可涵盖8个位,蓝色值可涵盖8个位,且不透明度值可涵盖8个位,总共32个位,其为4个 字节(即,32位除W每字节8位)。因此,在每一行上存在总共2048个字节(即,512个像 素值*每像素值4个字节)。又,为便于描述,相对于若干字节的像素值来描述所述技术; 然而,可相对于若干位的像素值来考虑所述技术,其中每一字节为8位。
[008引图4中的数字值0到7指示系统存储器24中存储表面32A的像素值的页。举例 来说,每一页可能够存储4096个字节,且图4中的每一行表示2048个字节的像素值(即, 512个像素值*每像素值4个字节)。因此,可在一页中存储两条线的像素值(即,2048*2 等于4096)。因此,在图4中,前两行中的数字值0意味着表面32A的前两条线中的4096个 字节的像素值存储在页0中,接下来两行中的数字值1意味着表面32A的第二两条线中的 4096个字节的像素值存储在页1中,等等。最后两行中的数字值7意味着表面32A的最后 两行中的4096个字节的像素值存储在页7中。
[0089] 如图4中说明,表面32A的左半部W白色背景呈现,且表面32A的右半部W灰色背 景呈现。不同颜色的背景说明存储器单元26A和26N中的哪一者用W存储表面32A。举例 来说,表面32A的左半部中(即,白色背景中)的像素值经由MC 22A存储在系统存储器24 中的存储器单元26A中,且表面32A的右半部中(即,灰色背景中)的像素值经由MC 22N 存储在系统存储器24中的存储器单元26N中。下文描述在图4中情况为何是该样。
[0090] 类似于W上实例,重申交错粒度为1024个字节,且表面32A的每一条线包含2048 个字节。因此,在此实例中,GPU驱动器18可传输致使GPU 14进行W下操作的指令,存储 像素值W使得由于存储器单元26A与存储器单元26N之间W 1024个字节的交错粒度的交 错,MIF 20首先经由存储器单元26A和MC 22A将1024个字节的像素值存储在页0中,随后 经由存储器单元26N和MC 22N将接下来1024个字节的像素值存储在页0中。而且,因为 每一像素值为4个字节,所W 1024个字节等于256个像素值(即,1024除W 4等于256)。 因此,如果考虑图4中的表面32A的第一线,那么MIF 20将经由存储器单元26A和MC 22A 将第一 1024个字节的像素值(将用于表面32A的第一线中的第一 256个像素值)存储在 页0中。随后,由于存储器单元26A与存储器单元26N之间W 1024个字节的交错粒度的交 错,MIF 20将经由存储器单元26N和MC 22N将第二1024个字节(用于表面32A的第一线 中的接下来256个像素值)存储在页0中。
[0091] 因为256个像素值是512个像素值的一半,所W表面32A的第一线的第一半部中 的像素值将经由存储器单元26A和MC 22A存储在系统存储器24中(因此为白色背景),且 表面32A的第一线的第二半部中的像素将经由存储器单元26N和MC 22N存储在系统存储 器24中(因此为灰色背景)。相同结果将针对表面32A的像素值的第二线发生,且随后页 0将为满的。接着,如图4中说明,表面32A的第H条线的像素值将存储在页1中。出于上 文相对于第一条线描述的相同原因,表面32A的第H条线的第一半部的像素值将经由存储 器单元26A和MC 22A存储在页1中(因此为白色背景),且表面32A的第H条线的第二半 部将经由存储器单元26N和MC 22N存储在页1中(因此为灰色背景)。
[0092] 此外,如上文描述,表面32A的大小可与装置10的显示器的大小相同。因此,表面 32A的左半部对应于装置10的显示器的左半部上的像素,且表面32A的右半部对应于装置 10的显示器的右半部上的像素。
[0093] 如上文描述,GPU 14在称为光栅化的过程中再现存储于系统存储器24中的像素 值。举例来说,GPU 14将装置10的显示器划分为若干显示瓦片,且再现一个显示瓦片内的 像素的像素值,随后是下一个显示瓦片等等,W在装置10的显示器上再现最终图像。为了 说明的目的,假定显示瓦片为16x16像素。因此,在图4中,一个显示瓦片对应于表面32A的 一列。举例来说,如上所述,每一列为16个像素值宽,且每一列的高度为16个像素值。因 此,表面32A的每一列表示装置10的显示器的16x16像素。因为显示瓦片为16x16像素, 所W表面32A的每一列表示一个显示瓦片的像素值。
[0094] 当GPU 14请求MIF 20从系统存储器24检索一个显示瓦片(例如,图4中的表面 32A的一列)的像素值时,MIF 20将仅经由MC 22A从存储器单元26A或经由MC 22N从存 储器单元26N但并非两者检索此显示瓦片。举例来说,当GPU 14检索第一显示瓦片(例如, 图4中的第一列)的像素值时,MIF 20将经由MC 22A从存储器单元26A而非经由MC 22N 从存储器单元26N检索像素值,因为表面32A的第一列的所有像素值是经由MC 22A存储在 系统存储器24的存储器单元26A中(例如,如所说明,表面32A的第一列具有白色背景)。 类似地,当GPU 14检索最后显示瓦片(例如,图4中的最后列)的像素值时,MIF 20将经 由MC 22N从存储器单元26N而非经由MC 22A从存储器单元26A检索像素值,因为图4中 的最后列的像素值是经由MC 22N存储在系统存储器24的存储器单元26N中(例如,如所 说明,表面32A的最后列具有灰色背景)。
[0095] 此检索可为对系统存储器24的低效使用。举例来说,在图4的实例中,GPU 14将 不能从存储器单元26A和存储器单元26N并行地接收显示瓦片的像素值,因为MIF20可仅 从存储器单元26A或存储器单元26N而非两者检索每一显示瓦片的像素值。该导致限制了 GPU 14可在显示器上再现像素的速率,因为其限制了 MIF 20可检索显示瓦片的像素的速 率。
[0096] 虽然先前实例描述其中像素值为用W再现表面的颜色值的实例,但本发明的方面 不受此限制。在其它实例中,本发明的技术可扩展到其中GPU 14从存储器单元26A和存储 器单元26N读取纹理值的实例。
[0097] 图5是说明当表面W线性方式存储时显示瓦片在系统存储器中的存储的图形图。 举例来说,图5从显示器的角度说明图4的结果。举例来说,图5说明当表面32B W线性方 式存储时哪一存储器通道用W存储显示瓦片中的两者的像素值。
[0098] 如图5中说明,显示器的左半部中的显示瓦片的所有像素值经由通道0存储在系 统存储器24的页0到7中,且显示器的右半部中的显示瓦片的所有像素值经由通道1存储 在系统存储器24的页0到7中。在此实例中,通道0涉及经由MC 22A将像素值存储在存 储器单元26A中,且通道1涉及经由MC 22N将像素值存储在存储器单元26N中。
[0099] 举例来说,如上文相对于图4描述,左半部中的显示瓦片的所有像素值可经由 MC22A存储在存储器单元26A的页0到7中。图5通过针对左半部中的显示瓦片指示所述 显示瓦片的像素值经由MC 22A存储在存储器单元26A的页0到7中(即,通道0)来说明 此情况。而且,如上文相对于图4描述,右半部中的显示瓦片的所有像素值可经由MC 22N 存储在存储器单元26N的页0到7中。图5通过针对右半部中的显示瓦片指示所述显示瓦 片的像素值经由MC 22N存储在存储器单元26N的页0到7中(即,通道1)来说明此情况。
[0100] 而且,如上文相对于图4描述,一个显示瓦片可为16个像素宽,其在图5中W延伸 经扩展显示瓦片的宽度的值16说明。图5中说明的值2指示一页可存储显示瓦片的两行。 举例来说,如上文相对于图4描述,表面32A的第一两行可存储在页0中,其由图5中的值 2指示。
[0101] 此外,虽然图4和5说明其中表面W线性方式存储在系统存储器24中的实例,但 当表面W瓦片方式存储在系统存储器24中时类似的结果可发生。图6和7更详细说明此 情况。
[0102] 图6是说明W瓦片方式在系统存储器中存储表面的图形图。举例来说,如上文相 对于图3B描述,MIF 20可在系统存储器24中W瓦片方式存储由GPU 14产生的表面32B 的像素值。图6说明表面32B的像素值在系统存储器24中的存储的结果。在图6中,假定 装置10的显示器的宽度为128个像素且高度为16个像素。因此,表面32B的宽度(W)为 128个像素值,且表面32B的高度化)为16个像素值,因为表面32B的大小可与装置10的 显示器的大小相同。如同图4,图6中的每一列表示16个像素值。因此,存在8个列,其各 自呈现16个像素值,得到128个像素值的总宽度(即,16*8等于128)。
[0103] 而且,在图6的实例中,假定每一像素值涵盖4个字节的数据。图6中的数字值0 和1指示系统存储器24中存储表面32B的像素值的页。举例来说,每一页可能够存储4096 个字节,且图6中的每一行表示512个字节的像素值(即,128个像素值*每像素值4个字 节)。因此,可在一页中存储八行的像素值(即,512*8等于4096)。因此,在图6中,第一八 行中的数字值0意味着表面32B的第一八行中的4096个字节的像素值存储在页0中,接下 来八行中的数字值1意味着表面32B的接下来八行中的4096个字节的像素值存储在页1 中。
[0104] 举例来说,对于存储,假定表面32B的每一表面瓦片为4x4表面瓦片。图6说明经 扩展W说明四个4x4表面瓦片(例如,瓦片T1、T2、T3和T4)的第一四行和第一列。举例来 说,因为每一列为16个像素值宽,所W表面32B的一列表示各自为4个像素值宽的四个瓦 片T1、T2、T3和T4的宽度。而且,因为每一行为一个像素值的长度,所W表面32B的四行表 示一个瓦片(例如,T1、T2、T3和T4中的一者)的长度。
[0105] 在图6的实例中,如果表面瓦片为4x4像素值,且每一像素值为4个字节,那么每 一表面瓦片包含64个字节(即,每像素值4*4*4个字节等于64个字节)。因此,在图6中, 表面32B中的四行和一列包含256个字节(每瓦片64个字节*针对每四行和一列的4个 瓦片等于256个字节)。此外,在表面32B中的四行和四列则包含1024个字节(例如,针对 四行和列的256个字节*4列等于1024个字节)。在图6的实例中,表面32B的四行和四列 表示64x4像素值,其包含1024个字节(即,每像素值64*4*4个字节等于1024个字节)。
[0106] 因此,当W瓦片方式存储表面32B时,MIF 20可经由MC 22A将第一 64x4像素值 (例如,图5中包含行1到4和列1到4的块)存储在存储器单元26A中的页0中,随后经 由MC 22N将接下来64x4像素值(例如,图6中包含行1到4和列5到8的块)存储在存 储器单元26N中的页0中。情况将是该样的原因在于64x4像素值为1024个字节,且交错 粒度为1024个字节。
[0107] 如所说明,第一 64x4像素值包含数字值0 W指示该些像素值存储在页0中,且具 有白色背景W指示该些像素值经由MC 22A存储在存储器单元26A中。而且,接下来64x4 像素值(例如,包含行1到4和列5到8的块)包含数字值0 W指示该些像素值存储在页0 中,且具有灰色背景W指示该些像素值经由MC 22N存储在存储器单元26N中。因此,表面 32B的包含四行和八列的块包含2048个字节。举例来说,表面32B的四行和八列表示128x4 像素值,每像素值128*4*4个字节等于2048个字节。
[0108] 出于与上文所述类似的原因,MIF 20可将由GPU 14产生的接下来64x4像素值 (例如,包含行5到8和列1到4的块)经由MC 22A存储在存储器单元26A中的页0中,且 将在其之后的64x4像素值(例如,包含行5到8和列5到8的块)经由MC 22N存储在存 储器单元26N中的页0中,如相应的白色和灰色背景指示。在此实例中,在MIF20存储包含 行1到8和列1到8的块之后,页0可为满的,因为页0可存储总共4096个字节。
[0109] 随后,MIF 20可将由GPU 14产生的表面32B的包含行9到16和列1到8的块经 由MC 22A和MC 22N存储在存储器单元26A和存储器单元26N的页1中,如W白色和灰色 背景指示。举例来说,由于1024个字节的交错粒度,MIF 20可将由GPU 14产生的包含行 9到12和列1到4的块中的表面32B的像素值经由MC 22A存储在存储器单元26A的页1 中,且将包含行9到12和列5到8的块中的表面32B的像素值经由MC 22N存储在存储器 单元26N的页1中。相同情况适用于包含行13到16和列1到4的块W及包含行13到16 和列5到8的块中的表面32B的像素值。
[0110] 当GPU 14随后检索像素值时,出于与上文相对于图4描述相似的原因,相对于图6 描述的瓦片存储方案可为低效的。举例来说,对于光栅化,GPU 14可将装置10的显示器划 分为16x16像素的显示瓦片。类似于图4,在图6中,一个完整列对应于一个显示瓦片。在 图6中,当GPU 14检索第一显示瓦片的像素值时,MIF 20可经由MC 22A从存储器单元26A 而非经由MC 22N从存储器单元26N检索第一显示瓦片(例如,图6中的第一列)像素值, 因为表面32B的第一列的所有像素值是经由MC 22A存储在系统存储器24的存储器单元 26A中。类似地,当GPU 14检索最后显示瓦片(例如,图6中的最后列)的像素值时,MIF 20可经由MC 22N从存储盎单兀26N而非经由MC 22A从存储盎单兀26A检索像素值,因为 图6中的最后列的像素值是经由MC 22N存储在系统存储器24的存储器单元26N中。
[0111] 类似于图4,在图6的实例中,GPU 14将不能从存储器单元26A和存储器单元26N 并行地接收显示瓦片的像素值,因为MIF 20可能够仅从存储器单元26A或存储器单元26N 而非两者检索每一显示瓦片的像素值。该导致限制了 GPU 14可在显示器上再现像素的速 率。
[0112] 图7是说明当表面W瓦片方式存储时显示瓦片在系统存储器中的存储的图形图。 举例来说,图7从显示器的角度说明图6的结果。举例来说,图7说明当表面32B W瓦片方 式存储时哪一存储器通道用W存储显示瓦片中的两者的像素值。
[011引如图7中说明,类似于图5,显示器的左半部中的显示瓦片的所有像素值经由通道 0存储在系统存储器24的页0和1中,且显示器的右半部中的显示瓦片的所有像素值经由 通道1存储在系统存储器24的页0和1中。类似于图5,在此实例中,通道0涉及经由MC 22A将像素值存储在存储器单元26A中,且通道1涉及经由MC 22N将像素值存储在存储器 单元26N中。
[0114] 举例来说,如上文相对于图6描述,左半部中的显示瓦片的所有像素值可经由 MC22A存储在存储器单元26A的页0和1中。图7通过针对左半部中的显示瓦片指示所述 显示瓦片的像素值经由MC 22A存储在存储器单元26A的页0和1中(即,通道0)来说明 此情况。而且,如上文相对于图6描述,右半部中的显示瓦片的所有像素值可经由MC 22N 存储在存储器单元26N的页0和1中。图7通过针对右半部中的显示瓦片指示所述显示瓦 片的像素值经由MC 22N存储在存储器单元26N的页0和1中(即,通道1)来说明此情况。
[0115] 而且,如上文相对于图6描述,一个显示瓦片可为16个像素宽,其在图7中W延伸 经扩展显示瓦片的宽度的值16说明。图7中说明的值8指示一页可存储显示瓦片的八行。 举例来说,如上文相对于图6描述,表面32A的八行可存储在页0中,其由图7中的值8指 /Jn O
[0116] 图4到7说明其中MIF 20在检索用于GPU 14的光栅化的像素值时可能未有效利 用到系统存储器24的通道的实例。举例来说,在相对于图4到7描述的实例中,当检索一 个显示瓦片的像素值时可存在存储器单元26A与存储器单元26N之间的不良通道负载平 衡,因为MIF 20可从存储器单元26A或存储器单元26N但不是两者检索一个显示瓦片的像 素值。此不良通道负载平衡可导致低存储器利用(例如,MIF 20不能在同时从存储器单元 26A和存储器单元26N两者检索显示瓦片的像素值)。
[0117] 下文概述其中MIF 20可能低效地利用系统存储器24的几个实例性状况;显示器 分辨率为512像素宽,每一像素存储为32位数据(例如,4个字节),用于再现的显示瓦片 为16x16像素,页大小为4096个字节,存在两个存储器通道(例如,MC 22A和MC 22脚,交 错粒度为1024个字节,W及表面W线性方式存储在存储器26中。作为其中MIF 20可能低 效地利用系统存储器24的另一实例,状况可能是:显示器分辨率为128像素宽,每一像素存 储为32位数据(例如,4个字节),用于再现的显示瓦片为16x16像素,页大小为4096个字 节,存在两个存储器通道(例如,MC 22A和MC22N),交错粒度为1024个字节,W及表面W瓦 片方式存储在存储器26中,其中每一瓦片为4x4像素。
[0118] 如上文描述,将MIF 20描述为经由MC 22A和MC 22N存取系统存储器24。在其它 实例中,IC 12可包含两个W上存储器控制器。甚至在其中IC 12包含两个W上存储器控制 器的实例中,也可存在当MIF 20随后检索用于再现的像素值时线性或瓦片存储方案可导 致对系统存储器24的低效利用的情况。举例来说,如果显示器分辨率是512像素宽,每一像 素存储为32位数据,显示瓦片为16x16,页大小为4096个字节,存在四个存储器通道,交错 粒度为1024个字节,且表面W线性方式存储在系统存储器24中,那么MIF 20在检索作为 由GPU 14执行的光栅化的部分用于再现的像素值时可能低效地利用系统存储器24。作为 另一实例,如果显示器分辨率是128像素宽,每一像素存储为32位数据,显示瓦片为16x16, 页大小为4096个字节,存在四个存储器通道,交错粒度为1024个字节,且表面W瓦片方式 存储在系统存储器24中,其中每一瓦片为4x4像素,那么MIF 20在检索作为由GPU 14执 行的光栅化的部分用于再现的像素值时可能低效地利用系统存储器24。
[0119] 本发明中描述的实例性技术可修改系统存储器24中MIF 20存储由GPU 14产生 的像素值的位置,使得当GPU 14随后接收用于再现的像素值时,MIF 20 W较有效方式存取 系统存储器24。举例来说,本发明中描述的技术可将位填补到系统存储器24的页中。填 补位可意味着在一或多个页内保留无法用W存储像素值的某一数目的位。又为了说明的目 的,为了简单而在填补字节的上下文中描述所述技术。举例来说,并非使用页的全部4096 个字节来存储像素值,GPU 14可利用其中MIF 20可存储像素值的页的4096个字节的子集, 且剩余字节可称为填补字节。
[0120] W此方式,GPU 14可利用系统存储器24内存储表面的像素值的更多页。然而,通 过字节填补,GPU 14可能够在同时(例如,并行地)从系统存储器24的存储器单元26A和 存储器单元26N两者接收像素值W再现显示瓦片。举例来说,通过字节填补,MIF 20可能 够在同时从存储器单元26A和存储器单元26N两者检索显示瓦片的像素值,其允许GPU 14 在同时从存储器单元26A和存储器单元26N两者接收像素值。此外,系统存储器24可提供 大量存储器用于存储。因此,根据本发明中描述的实例性技术,系统存储器24的页的额外 使用不会不利地影响装置10的功能性。
[0121] 返回到图1,对于字节填补,GPU驱动器18可传输致使GPU 14进行W下操作的指 令:存储表面(例如,将在装置10的显示器上显示的图像或图形内容)的若干部分的像素 值W使得使用交错粒度来存储像素值,如上文描述。举例来说,为了 W线性方式存储表面, GPU 14将把表面32A(图3A)的一行的1024个字节W及此数据将存储于的虚拟地址传输到 MIF 20。MIF 20可随后将表面32A(图3A)的所述行的1024个字节经由MC 22A存储在系 统存储器24的存储器单元26A的页O中。GPU 14还可将表面32A (图3A)的所述行的接下 来1024个字节W及此数据将存储于的虚拟地址传输到MW20。MIF 20可随后将表面32A 的所述行的1024个字节经由存储器单元22N存储在系统存储器24的存储器单元26N的页 0中。然而接着,并非移动到表面32A的下一行,GPU驱动器18可在页0中保留某一数目的 字节用于填补。该些填补字节可能不可用W存储表面32A内的任何像素的像素值。图形驱 动器18可随后指示GPU 14将像素值存储在页0的其余部分中。
[0122] 举例来说,图形驱动器18可将虚拟地址传输到GPU 14,其向GPU 14指示数据将存 储于何处。然而,该些虚拟地址不可映射到所保留填补字节的物理地址。W此方式,当MIF 20存储从GPU 14接收的数据时,MIF 20可绕过填补字节,且在系统存储器24中将像素值 存储于除了填补字节位于系统存储器24中的位置之外的位置。
[0123] 图8是说明具有字节填补的W线性方式在系统存储器中存储表面的图形图。在图 8中说明的实例中,GPU 14可存储表面32A的像素值(图4);然而,GPU驱动器18可在系 统存储器24的页中填补字节。图8使用与图4和6中相同的背景颜色和页编号方案。举 例来说,图8中的数字值指示系统存储器24的哪一页用W存储表面32A的像素值。而且, 在图8中,白色背景指示MIF 20将由GPU 14产生的像素值经由MC 22A存储在存储器单元 26A中的页中,且灰色背景指示MIF 20将由GPU 14产生的像素值经由MC 22N存储在存储 器单元26N中的页中。
[0124] GPU驱动器18可传输致使GPU 14存储表面32A的第一 256个像素值的指令,因 为256个像素值可包含1024个字节(即,256个像素值*每像素值4个字节等于1024个字 节),且1024个字节可为交错粒度。GPU驱动器18还可传输GPU 14将把像素值存储于何 处的虚拟地址。GPU 14可随后将像素值和虚拟地址传输到MIF 20。MIF 20可随后经由MC 22A将像素值存储在系统存储器24的存储器单元26A的页0中。
[01巧]因为交错粒度为1024个字节,所W GPU驱动器18可传输致使GPU 14存储表面 32A的接下来256个像素值的指令,且传输GPU 14将把表面32A的接下来256个像素值存 储于何处的虚拟地址。MIF 20可随后经由MC 22N将该些256个像素值存储在系统存储器 24的存储器单元26N的页0中。又,256个像素值包含1024个字节,其为交错粒度。在此 实例中,页0将现在存储表面32A的第一行的像素值,且将已通过存储表面32A的第一行的 像素值而使用总共2048个字节。
[0126] 在图8中说明的实例中,GPU驱动器18可在页0中保留接下来128个字节作为填 补字节。举例来说,GPU驱动器18可W GPU驱动器18应当保留的填补字节的数目来配置, 其在此实例中将为128个字节。应了解,所述128个填补字节不是表面32A的部分,而是页 0中不用W存储表面32A的像素值的保留字节。
[0127] 大体上,填补字节的实际数字值是什么可为不重要的,因为填补字节不用W存储 任何实际像素值。举例来说,GPU驱动器18可致使MIF 20为所述128个填补字节指派数 字一或数字零的全部值。替代地,GPU驱动器18可通过不为所述128个填补字节指派任何 数字值而允许所述128个填补字节浮动(例如,允许所述128个填补字节浮动到数字一或 数字零)。
[012引在图8中,所述128个填补字节在最后两列中说明,且W参考编号37标记,W帮助 理解。举例来说,列的宽度是16个像素值,且存在每像素值4个字节;因此,列的W字节计 的宽度为64个字节(即,16个像素值*每像素值4个字节等于64个字节)。因此,两列的 宽度为128个字节(即,64字节*2等于128个字节)。然而重申,图8中的最后两列不是 表面32A的部分。而是,表面32A包含所有行和列,除了最后两列中的字节,其为填补字节。
[0129] 虽然填补字节的实际值可为不重要的,但GPU驱动器18可跟踪页内的哪些字节保 留为填补字节,使得GPU驱动器18可指示GPU 14在再现期间不从填补字节接收值。举例来 说,在图8中说明的实例中,GPU驱动器18可在第一 2048个字节之后保留128个字节(例 女口,字节2049到2176)作为填补字节。在此实例中,在再现期间,GPU驱动器18可致使GPU 14接收页0中的第一 2048个字节,随后致使GPU 14接收页0中在接下来128个字节之后 的字节,所述128个字节为填补字节且因此不表示任何实际像素值。W此方式,GPU驱动器 18可传输致使GPU 14指示MIF 20将像素值存储在页的除了填补位之外的位中的指令。经 保留填补位可经具体保留,使得GPU 14不会致使MIF 20在页的该些填补位中存储像素值, 而是致使MIF 20在除了填补位之外的位中存储像素值。
[0130] 举例来说,如上所述,GPU驱动器18可将像素值将存储于何处的虚拟地址传输到 GPU 14。在一些实例中,GPU驱动器18可将未映射到填补字节的物理地址的虚拟地址传输 到GPU 14。W此方式,当GPU 14将虚拟地址传输到MIF 20用于存储时,MIF20避免在填补 字节中存储像素值。作为另一实例,GPU驱动器18可向MIF 20指示系统存储器24的哪些 字节保留为填补字节。在此实例中,当MIF 20将从GPU 14接收的虚拟地址映射到物理地 址时,MIF 20可避免将虚拟地址映射到填补字节位于系统存储器24中的物理地址。可存在 GPU驱动器18可确保像素值不存储在填补字节中的其它方式,且本发明的方面不限于GPU 驱动器18可确保像素值不存储在填补字节中的任何特定方式。
[0131] 在GPU驱动器18保留128个填补字节的情况下,所述128个填补字节导致页0的 2176个字节被用掉(即,2048加128等于2176),意味着在页0中剩余1920个字节(即, 4096减2176等于1920)。GPU驱动器18可随后指示GPU 14存储来自表面32A的第二行的 字节,其导致MIF 20将来自表面32A的第二行的字节存储到页0的剩余字节中(例如,除 了填补字节之外的字节)。举例来说,页0将具有足够的存储空间来存储480个像素的像素 值(即,480个像素*每像素4个字节等于1920个字节)。因此,表面32A的第二行中的最 后32个像素值存储在页1中,而不是如图4中说明的实例中的情况那样存储在页0中。
[0132] 在本发明中描述的方面中,所述128个填补字节朝向1024字节交错粒度计数。举 例来说,GPU驱动器18将指示GPU 14存储1024个字节,使得MIF 20经由MC 22A将1024 个字节存储在存储器单元26A的页0中。由于1024字节交错粒度,GPU驱动器18将还指 示GPU 14存储接下来1024个字节,使得MIF 20经由MC 22N将所述1024个字节存储在存 储器单元26N的页0中。在此之后,将计数128个填补字节作为MIF 20原本已经由MC 22A 存储在存储器单元26A的页0中的接下来1024个字节的部分。举例来说,虽然MIF 20不 会在128个填补字节中明确地存储任何值,但假定如果GPU 14请求在保留的128个填补字 节中存储值,那么MIF 20可能已经由MC 22A在存储器单元26A中的页0的128个填补字 节中存储值。因此,在图8中,W白色背景说明处于第一行的末尾的128个填补字节。
[0133] 而且,因为128个填补字节朝向1024交错粒度计数,所WGPU 14将随后存储表面 32A的像素值的896个字节,使得MIF 20将表面32A的像素值的896个字节经由MC 22A存 储在存储器单元26A的页0中(即,896字节加128字节等于1024字节)。在接收到来自 GPU 14的指令后,MIF 20将把表面32A的像素值的接下来1024个字节经由MC 22N存储在 存储器单元22N的页0中,且页0将为满的。GPU驱动器18将随后指示GPU 14重复W上 步骤,使得MIF 20分别经由MC 22A和MC 22N将字节存储在系统存储器24的存储器单元 26A和26N的页1中。GPU驱动器18还可W图6中说明的方式在页1中填补字节。
[0134] 举例来说,在页0为满的之后,在表面32A的第二行中仍存在需要存储的32个像 素值(即,在不将经参考为128个填补字节的最后两列计数的情况下表面32A的最后两 列)。GPU 14可存储所述32个像素值,其包含128个字节(即,32个像素值*每像素值4 个字节等于128个字节),使得MIF 20经由MC 22A将所述32个像素值存储在存储器单元 26A的页1中。在此实例中,GPU驱动器18保留页1的接下来128个字节作为填补字节。因 此,页1的256个字节被用掉,且因为128个填补字节朝向交错粒度计数,所W假定MIF 20 经由MC 22A在存储器单元26A中存储256个字节。
[01巧]在此实例中,GPU 14可能够存储再768个字节,使得MIF 20经由MC 22A将所述 再768个字节存储在存储器单元26A的页1中,因为768字节加256字节等于作为交错粒 度的1024字节。在图8中说明的实例中,768个字节表示192个像素值(即,768个字节除 W每像素值4个字节等于192)。而且,在图8中说明的实例中,列的宽度是16个像素值。 因此,12列等于192个像素值(即,192个像素值除W 16个像素值等于12)。因此,如图8 中说明,第H行的第一 12列具有白色背景W指示该些像素值经由MC 22A存储在存储器单 元26A的页1中。
[0136] 一旦GPU 14指示MIF 20存储192个像素值,MIF 20便达到1024个字节的交错粒 度。GPU驱动器18随后致使GPU 14存储接下来1024个字节,使得MIF 20经由MC 22N将 接下来1024个字节存储在存储器单元26N的页1中。该在图8中W第H行中的接下来16 列中的灰色背景说明。在图8中,所述16列共同包含1024个字节(即,16列*每列16个 像素值*每像素值4个字节等于1024个字节)。随后,MIF 20达到交错粒度,且GPU驱动 器18致使GPU 14存储像素值W使得MIF 20经由MC 22A将像素值存储在存储器单元26A 的页1中(例如,从经由MC 22N在系统存储器24的存储器单元26N中存储切换到经由MC 22A在系统存储器24的存储器单元26A中存储)。该些步骤将重复直到GPU 14存储表面 32A的所有像素值,使得MIF 20通过每1024个字节交错存储器单元26A和存储器单元26N 中的存储而将表面32A的所有像素值存储在系统存储器24的页中。
[0137] 在存储像素值的结束处,GPU驱动器18完成指示GPU 14存储整个表面32A的像 素值。又,表面32A的大小可与装置10的显示器的大小相同。因此,在存储像素值的结束 处,GPU 14可能已存储装置10的显示器上的所有像素的像素值,且可准备好检索像素值W 用于在显示器上再现像素,作为光栅化的部分。
[013引应注意,由于字节填补,如图8的实例中说明的存储表面32A的像素值所需的页的 数目为9 (即,页0到8)。在无字节填补的情况下(例如,图4的实例),如图4中说明的存 储表面32A的像素值所需的页的数目为8 (例如,页0到7)。因此,字节填补可利用系统存 储器24中的额外存储空间。
[0139] 然而,通过字节填补,当GPU 14从系统存储器24接收像素值W用于再现显示瓦片 时,MIF 20可能够在同时经由MC 22A从存储器单元26A且经由MC 22N从存储器单元26N 存取用于所述显示瓦片的像素值。举例来说,类似于图4,图8中的每一列对应于一显示瓦 片(例如,16x16像素的显示瓦片)。由于字节填补,显示瓦片内的像素的像素值是从存储 器单元26A和存储器单元26N相等地检索。换句话说,在从存储器单元26A和存储器单元 26N检索像素值之间存在通道负载平衡。举例来说,GPU 14可通过MIF 20从存储器单元 26A检索像素值而接收显示瓦片的像素值的50 %,且通过MIF 20从存储器单元26N检索像 素值而接收显示瓦片的像素值的50%。
[0140] 举例来说,在图8中说明的实例中,每一列包含具有白色背景和灰色背景的相等 部分。举例来说,假定图8中的第一列中的16x16像素值是第一显示瓦片的像素值。在此 实例中,GPU 14可致使MIF 20经由MC 22A从存储器单元26A中的页0到3检索第一显示 瓦片的像素值(例如,第一列的具有白色背景的部分),且在同时,致使MIF20经由MC 22N 从存储器单元26N中的页4到7检索第一显示瓦片的像素值(例如,第一列的具有灰色背 景的部分)。
[014。 W此方式,当检索显示瓦片的像素值时利用且潜在地同时利用由MC 22A和MC22N 提供的到系统存储器24的通道中的每一者。然而,在图4中说明的实例中,MIF20可能已 限于仅经由MC 22A从存储器单元26A检索第一显示瓦片的像素值,同时经由MC 22N对存 储器单元26N的存取保持空闲。换句话说,在图4的实例中,在由MC 22A与MC 22N提供的 通道之间存在不良通道负载平衡。在图8的实例中,在由MC 22A与MC 22N提供的通道之 间存在改善的通道负载平衡。
[0142] 出于上文描述的原因,GPU 14可能够致使MIF 20在同时使用存储器单元26A和 存储器单元26N两者检索显示瓦片的像素值,而不是如图4中说明的实例中的情况仅从存 储器单元26A或存储器单元26N中的一者来检索。该可允许GPU 14 W与不存在字节填补 的实例(例如,图4中说明的实例)相比两倍的速率来接收显示瓦片的像素值。GPU 14 W 两倍的速率接收显示瓦片的像素值的能力可允许GPU 14 W与不存在字节填补的实例相比 两倍的速率再现装置10的显示器的所述显示瓦片上的像素。
[0143] 举例来说,视频游戏可要求GPU 14 W每砂30个表面的刷新率在显示器上再现像 素。通过W两倍的速率在装置10的显示器上再现像素,GPU 14可能够W每砂60个表面的 刷新率在显示器上再现像素,其可为用户提供较丰富的游戏体验。W此方式,本发明中描述 的技术可视为牺牲系统存储器24中的有限量的存储空间来得到相当显著地增加再现速率 的可能性。
[0144] 虽然图8的实例中说明128个填补字节,但本发明的方面不受此限制。在一些实 例中,填补字节的数目可为2"的任一因数,其中n是任一整数值。举例来说,GPU驱动器18 可经配置W保留2、4、8、16、64、128、256、512、1024等等数目的填补字节。对于大于或等于 128字节的填补字节,在从存储器单元26A和存储器单元26N检索像素值之间的负载分配可 针对显示瓦片中的每一者为50 %。在一些实例中,填补字节的数目可为任一整数值,且不一 定限于2"的任一因数。
[0145] 对于小于128字节的填补字节,负载分配可针对所有显示瓦片总体小于50%。甚 至在负载分配小于50%的情况下,负载分配也仍可好于图4的实例中的分配(例如,其中针 对给定显示瓦片,检索像素值的负载全部落在存储器单元26A或存储器单元26N上)。举例 来说,对于小于128字节的填补字节,从一些显示瓦片,GPU 14可从MIF20接收来自存储器 单元26A的像素值的少于50 %和来自存储器单元26N的像素值的大于50%,或反之亦然。 然而,在图4的实例中,对于每个单一显示瓦片,MIF 20可仅从存储器单元26A或存储器单 元26N中的一者检索像素值。因为128个填补字节可为在存储器单元26A与存储器单元 26N之间实现50%负载分配可需要的填补字节的最小数目,所W GPU驱动器18可经配置W 当表面W线性方式存储(例如表面32A)时在页中的每一者中保留128个填补字节。
[0146] 图9到11是说明具有字节填补的W线性方式在系统存储器中存储表面的额外图 形图。图9说明填补字节的数目为256的实例,如参考编号37指示,图10说明填补字节的 数目为512的实例,如参考编号37指示,且图11说明填补字节的数目为1024的实例,如参 考编号37指示。
[0147] 类似于图4和8,在图9到11中,白色背景指示经由MC 22A在存储器单元26A中 的存储,且灰色背景指示经由MC 22N在存储器单元26N中的存储。如图9到11中说明,每 一显示瓦片(即,图9到11中的一个列)的像素值相等地存储在存储器单元26A和存储器 单元26N中。类似于图8,在图9到11中,GPU 14可能够并行地经由MC 22A从存储器单元 26A且经由MC 22N从存储器单元26N检索显示瓦片的像素值。
[014引此外,虽然相对于图8的实例是在表面W线性方式存储在系统存储器24中的上下 文中描述,但本发明的方面不受此限制。本发明的技术可在表面W瓦片方式存储在系统存 储器24中的实例中W类似方式起作用。
[0149] 图12是说明具有字节填补的W瓦片方式在系统存储器中存储表面的图形图。在 图12中说明的实例中,GPU 14可存储表面32B的像素值(图6);然而,GPU驱动器18可在 系统存储器24的页中填补字节。图12使用与图4、6和8到11中相同的背景颜色和页编 号方案。
[0150] 在图12中说明的实例中,GPU驱动器18可在页0中保留256个字节作为填补字 节,如第四行中说明。再次应了解,所述256个填补字节不是表面32B的部分,而是页中不 用W存储表面32B的像素值的保留字节。在图12中,所述256个填补字节W参考编号37 在最后四列中说明,W帮助理解。举例来说,列的宽度是16个像素值,且存在每像素值4个 字节;因此,列的W字节计的宽度为64个字节(即,16个像素值*每像素值4个字节等于 64个字节)。因此,四列的宽度为256个字节(即,64字节*4等于256个字节)。
[0151] 如所说明,GPU驱动器18可指示GPU 14存储表面32B的2048个字节。MIF 20可 使用具有1024字节的交错粒度的交错存储技术将2048个字节分别通过MC 22A和22N经 由存储器单元26A和26N存储在系统存储器24的页0中。在图12中,GPU驱动器18可保 留页0的接下来256个字节作为填补字节(例如,GPU驱动器18可经配置W将填补字节的 数目设定为256个填补字节)。举例来说,第四行中的最后四列表示GPU驱动器18在页0 中保留的256个字节。而且,白色背景指示该些填补字节经计数为好像MIF 20经由MC 22A 在存储器单元26A中存储该些字节,但MIF 20可能实际上未存储该些填补字节。
[0152] 在图12中,并非所有行都说明为具有填补字节。该是因为W瓦片方式的像素值存 储。举例来说,假定表面32B的每一表面瓦片为4x4像素值。因此,每一表面瓦片涵盖装置 10的显示器中的四行和四列。举例来说,类似于图6,在图12中,四行和一列表示四个瓦片。 因此,图12中的行1到4和列1到4表示16个表面瓦片,总共1024个字节。举例来说,每 四行和一列四个瓦片乘W四列等于16个表面瓦片。存在每表面瓦片64个字节(例如,每 瓦片16个像素*每像素4字节等于64),且16个表面瓦片乘W每表面瓦片64个字节等于 1024个字节。
[0153] 在此情况下,在GPU 14存储图12中的行1到4和列1到4的像素值之后,MIF20 可能已用掉页0的1024个字节。GPU 14可随后存储接下来1024个字节(例如,行5到8 和列1到4),使得MIF 20经由存储器单元26N将接下来1024个字节存储在页0中,W用掉 页0的2048个字节。在此实例中,GPU驱动器18可保留页0的接下来256个字节,其为图 12中的第四行的末尾包含256个填补字节的原因。
[0154] GPU驱动器18可指示GPU 14随后将剩余像素值存储在系统存储器24的页中,女口 图12中说明。在此实例中,GPU 14可利用系统存储器24的H页(例如,页0到2)来存储 表面32的像素值,而在图6的实例中,GPU 14可能已利用系统存储器24的两页(例如,页 0和1)来存储表面32的像素值。
[01巧]然而,在图12中说明的实例中,当GPU 14接收像素值W用于在光栅化期间再现 16x16显示瓦片时,MIF 20可能够在同时使用存储器单元26A和存储器单元26N两者检索 显示瓦片中的至少一些的像素值。举例来说,图12中的第一完整列表示一个显示瓦片。如 所说明,图12中的整个第一完整列具有白色背景。因此,当检索第一显示瓦片的像素值时, MIF 20可仅利用存储器单元26A且不利用存储器单元26N,因为如上所述,白色背景指示存 取是仅通过存储器单元26A。
[0156] 虽然检索第一显示瓦片的像素值无法提供存储器单元26A与存储器单元26N之间 的负载平衡,但检索后续显示瓦片的像素值可带来较好的负载平衡。举例来说,第二完整列 的75%具有白色背景,且第二完整列的25%具有灰色背景。因此,对于此第二显示瓦片, GPU 14可从存储器单元26A接收像素值的75 %,且从存储器单元26N接收像素值的25 %。 对于第H完整列(例如,第H显示瓦片),第H完整列的50 %具有白色背景,且第H完整列 的50%具有灰色背景。因此,对于此第H显示瓦片,GPU 14可从存储器单元26A接收像素 值的50 %,且从存储器单元26N接收像素值的50 %。在此情况下,MIF 20可在检索第H显 示瓦片的像素值用于再现时实现完全负载分配。
[0157] W此方式,图12中说明的实例说明通过256字节填补,MIF 20不可针对每个显示 瓦片实现到50%的完全负载分配。然而,通过256字节填补,GPU 14可仍在MIF 20检索显 示瓦片的像素值时实现与图6中说明的实例相比较好的负载分配,在图6中说明的实例中 每个显示瓦片要求MIF 20仅从存储器单元26A或存储器单元26N但不是从两者检索像素 值。
[0158] 此外,GPU驱动器18可不必经配置W在表面W瓦片方式存储的每个实例中保留 256个填补字节。举例来说,GPU驱动器18可经配置W保留2"的任一因数(例如,2、4、8、 16、64、128、256、512、1024、2048等等)数目的填补字节。在一些实例中,如果GPU驱动器 18保留512或更大数目的填补字节,那么GPU 14可在再现期间针对每个显示瓦片从存储器 单元26A接收像素值的50%且从存储器单元26N接收像素值的50%。因为512个填补字 节可为在存储器单元26A与存储器单元26N之间实现50%负载分配需要的填补字节的最少 数目,所W GPU驱动器18可经配置W在表面W瓦片方式存储且表面瓦片的大小为4x4像素 值的实例中填补512个字节。
[0159] 图13和14是说明具有字节填补的W瓦片方式在系统存储器中存储表面的额外图 形图。图13说明填补字节的数目为512的实例,如参考编号37指示,且图14说明填补字 节的数目为1024的实例,如参考编号37指示。
[0160] 类似于W上实例,在图13和14中,白色背景指示经由MC 22A在存储器单元26A中 的存储,且灰色背景指示经由MC 22N在存储器单元26N中的存储。如图13和14中说明, 每一显示瓦片(即,图13和14中的一个列)的像素值相等地存储在存储器单元26A和存 储器单元26N中。在图13和14的实例中,GPU 14可能够并行地经由MC 22A从存储器单元 26A且经由MC 22N从存储器单元26N接收显示瓦片的像素值,因为MIF 20可能够并行地经 由MC 22A从存储器单元26A且经由MC 22N从存储器单元26N检索显示瓦片的像素值。而 且,虽然在图12的实例中,GPU 14可不能够针对所有显示瓦片从存储器单元26A和存储器 单元26N中的每一者接收相等数目的像素值,但在图13和14的实例中,GPU 14可能够从 存储器单元26A和存储器单元26N中的每一者接收相等数目的像素值。
[0161] 而且,虽然先前实例是在存在两个存储器单元(例如,存储器单元26A和存储器单 元26脚的情况下描述,但本发明的方面不受此限制。本发明的技术可扩展到系统存储器24 包含两个W上存储器单元的实例。举例来说,系统存储器24中的存储器单元的数目可为大 于或等于2的任一整数值。在该些实例中,图1的集成电路(IC) 12可包含用于系统存储器 24中的存储器单元中的每一者的对应存储器控制器(MC)。
[0162] 图15是说明W瓦片方式在系统存储器中存储表面的另一图形图。在图15的实例 中,系统存储器24可包含四个存储器单元26,且IC 12可包含用于四个存储器单元26中的 每一者的MC 22中的对应一者。在图15的实例中,将显示的表面包含256个像素值乘16 个像素值,且此表面是W瓦片方式W 1024字节的交错粒度存储。如图15中说明,当GPU 14 接收像素值W用于再现显示瓦片时在四个存储器单元26之间可不存在负载分配。举例来 说,在图15中,白色背景和灰色背景的阴影指示四个存储器单元26中的哪一者用W存储和 检索显示瓦片的像素值。在此实例中,MIF 20可能够从四个存储器单元26中的仅一者检 索每一显示瓦片,且因此,GPU 14可能够从四个存储器单元26中的仅一者接收每一显示瓦 片的像素值。
[0163] 图16是说明具有字节填补的W瓦片方式在系统存储器中存储表面的另一图形 图。举例来说,图16说明当应用于图15中说明的实例时字节填补的结果。举例来说,如果 GPU驱动器18在GPU 14经由MIF 20存储4096个字节之后保留1024个填补字节,如图16 中说明,那么GPU 14可针对显示瓦片从四个存储器单元26中的每一者接收相等数目的像 素值,如也在图16中说明,因为MIF 20可从四个存储器单元26中的每一者检索相等数目 的像素值。举例来说,MIF 20可从四个存储器单元26中的第一者检索显示瓦片的像素值 的25%,从四个存储器单元26中的第二者检索显示瓦片的像素值的25%,从四个存储器单 元26中的第H者检索显示瓦片的像素值的25%,且从四个存储器单元26中的第四者检索 显示瓦片的像素值的25%。该在图16中W白色背景和灰色背景的阴影来说明。
[0164] 举例来说,每一显示瓦片包含25%白色背景、25%的灰色背景的第一阴影、25%的 灰色背景的第二阴影,W及25%的灰色背景的第H阴影。灰色的阴影可从1024个填补字节 较清楚地可见。举例来说,在1024个填补字节中,具有值1的框为白色,具有值2的框为灰 色的第一阴影,具有值3的框为灰色的第二较暗阴影,且具有值4的框为灰色的第H甚至更 暗的阴影。
[0165] 在上文描述的实例中,处理器16执行GPU驱动器18,其致使GPU 14经由MIF20将 像素值存储在系统存储器24中。然而,本发明的方面不受此限制。举例来说,一些GPU可 经设计W执行某一量的一般处理,且称为通用GPU佑PGPU)。在此些实例中,GPUGPU可执行 驱动器,其致使GPGPU经由MIF 20将像素值存储在系统存储器24中。举例来说,在一些实 例中,GPU 14可为GPGPU。在此些实例中,并非处理器16执行GPU驱动器18, GPU 14可能 够执行GPU驱动器18,或包含执行上述GPU驱动器18的功能的硬件、软件或固件。
[0166] 举例来说,在本发明中描述的一些方面中,例如处理器16等第一处理单元可在系 统存储器24中保留填补字节或位。在该些实例中,例如GPU 14等第二不同处理单元可将 多个指令传输到MIF 20,其致使MIF 20 W上述交错方式存储像素值。在一些替代方面中, 可为GPU 14的处理单元可通过执行GPU驱动器18来保留填补字节,且在该些实例中,MIF 20可从同一处理单元(例如,在此实例中的GPU 14)接收致使MIF 20 W上述交错方式存储 像素值的指令。为了说明的目的且便于描述,从处理器16执行GPU驱动器18的角度来描 述所述技术。然而,本发明中描述的技术不应视为如此限制。
[0167] 大体上,上述实例可描述MIF 20接收指示MIF 20将表面的像素值存储在系统存 储器24中的多个指令的技术。响应于指令,MIF 20可至少在经由MC 22A的系统存储器24 的存储器单元26A与经由MC 22N的系统存储器24的存储器单元26N之间W交错方式将表 面的像素值存储在系统存储器24的除了系统存储器24中的保留填补位之外的位中,使得 显示瓦片的第一像素值集合经由MC 22A存储在存储器单元26A内,且同一显示瓦片的第二 像素值集合经由MC 22N存储在存储器单元26N内。在一些实例中,MIF 20可W交错方式 存储像素值,使得显示瓦片的第一像素值集合必须经由MC 22A存储在存储器单元26A内, 且同一显示瓦片的第二像素值集合必须经由MC22N存储在存储器单元26N内。
[016引如上所述,除了接收存储像素值的指令之外,MIF 20还可接收表面的像素值将存 储于的虚拟地址。MIF 20的MMU 21可将虚拟地址映射到系统存储器24的除了系统存储器 24中的保留填补位之外的位的物理地址。在此实例中,MIF 20可基于由MMU21映射的物理 地址来存储像素值。
[0169] 因为MMU 21不会将虚拟地址映射到对应于保留填补位的物理地址,所W MIF 20 可将像素值存储在除了系统存储器24的填补位之外的位中。作为一个实例,处理器16可 向MMU 21指示填补位的物理地址,且MMU 21可利用此信息来避免将虚拟地址映射到填补 位的物理地址。作为另一实例,处理器16传输到GPU 14的虚拟地址可经选择W使得虚拟 地址不映射到填补位的物理地址。在此实例中,GPU 14可将虚拟地址传输到MIF 20,且MMU 21可随后将虚拟地址映射到除了填补位之外的位的物理地址。
[0170] 如上所述,MIF 20可存储像素值W使得显示瓦片的第一像素值集合是或必须存储 在存储器单元26A中,且同一显示瓦片的第二像素值集合是或必须存储在存储器单元26N 中。此结果在图8和12中说明。
[0171] 举例来说,参见图8,第一列可表示一个显示瓦片。在第一列中,第一八行W白色背 景说明,意味着其像素值存储在存储器单元26A中,且最后八行W灰色背景说明,意味着其 像素值存储在存储器单元26N中。第一列的第一八行可视为表面32A的对应于显示瓦片的 第一像素集合(例如,16x16显示瓦片的第一 8行中的像素)的第一像素值集合,且第一列 的最后八行可视为表面32A的对应于显示瓦片的第二像素集合(例如,16x16显示瓦片的第 二8行中的像素)的第二像素值集合。因此,在图8中,来自GPU驱动器18的指示GPU 14 致使MIF 20 W交错方式存储像素值的指令导致MIF 20将表面32A的对应于显示瓦片的第 一像素集合的第一像素值集合存储在存储器单元26A内,且将表面32A的对应于显示瓦片 的第二像素集合的第二像素值集合存储在存储器单元26N内。
[0172] 图12说明类似结果。举例来说,类似于图8,第二列可表示一个显示瓦片。在第 二列中,表面32B的具有白色背景的第一 12行中的像素值可对应于显示瓦片的第一像素集 合(例如,16x16显示瓦片的第一 12行)。在第二列中,表面32B的具有灰色背景的最后4 行中的像素值可对应于显示瓦片的第二像素集合(例如,16x16显示瓦片的最后4行)。因 为第二列的第一 12行的像素值(例如,第一像素值集合)可经由MC 22A存储在存储器单 元26A中,且第二列的最后4行的像素值(例如,第二像素值集合)可经由MC 22N存储在 存储器单元26N中,所W来自GPU驱动器18的指示GPU 14致使MIF 20 W交错方式存储像 素值的指令导致MIF 20将表面32B的对应于显示瓦片的第一像素集合的第一像素值集合 存储在存储器单元26A内,且将表面32B的对应于显示瓦片的第二像素集合的第二像素值 集合存储在存储器单元26N内。
[0173] 应了解,虽然图4到16中说明的实例描述其中系统存储器24包含页的技术,但本 发明的方面不受此限制。举例来说,甚至在系统存储器24不包含页的实例中,在无字节填 补的情况下,表面32A和32B的一半也仍可经由MC 22A存储在存储器单元26A内,且表面 32A和32B的另一半仍可经由MC 22N存储在存储器单元26N内。在该些情况下,字节填补 可切换像素值存储在系统存储器24中的方式,使得当检索像素值时,GPU 14可能够并行地 接收显示瓦片的像素值。
[0174] 而且,虽然W上实例描述用于像素值的检索的有效存取,但在一些实例中,本发明 中描述的技术也可促进用于像素值的存储的有效存取。举例来说,在无字节填补的情况下, GPU 14可致使MIF 20使用由到存储器单元26A的MC 22A和到存储器单元26N的MC 22N 两者产生的通道来存储整个表面(例如,表面32A和32B)的像素值。然而,甚至在该些情 形中,对于给定显示瓦片,GPU 14可利用MC 22A或MC 22N中的仅一者。
[01巧]举例来说,对于图4的表面32A中的第一显示瓦片,MIF 20可仅利用MC 22A来将 像素值存储在存储器单元26A中。换句话说,虽然对于整个表面32A,MIF 20可相等地利用 MC 22A和MC 22N,但对于给定显示瓦片,MIF 20可能不会相等地利用MC22A和MC 22N。该 可能不允许MIF 20并行地存储显示瓦片的像素值。通过字节填补,MIF 20可能够并行地 存储显示瓦片的像素值。举例来说,相对于图8到11、13、14和16, MIF 20可使用MC 22A 存储第一显示瓦片的一半,且并行地(例如,大体上同时)使用MC 22N存储第一显示瓦片 的另一半。
[0176] 如相对于图4到16描述,字节填补可改善当检索像素值W用于再现显示瓦片时的 通道负载平衡。通道负载平衡可W显示瓦片通道利用率(U)来测量,其如下界定;U = T/ (n*b);其中U是通道利用率,T是显示瓦片的像素的总数,n是到系统存储器24的通道的 数目,且b是任一通道的像素的最大数目。
[0177] 举例来说,假定存在到系统存储器24的四个通道(例如,存在IC 12中的四个 MC22 W及系统存储器24中的四个存储器单元26)。还假定显示瓦片包含8个像素,且MIF 20从存储器单元中的一者检索显示瓦片的全部8个像素,且从其它H个存储器单元检索零 个像素。在此实例中,T等于8,n等于4,且b等于8。因此,通道利用率(U)等于0.25(例 如,8/ (4*8))。如果MIF 20从四个存储器单元26中的每一者检索到相等数目的像素值(例 女口,从四个存储器单元中的每一者检索到两个像素值),那么通道利用率将等于1,因为在 此情况下T将等于8, n将等于4,且将等于2。大体上,接近或等于一的通道利用率值指示 系统存储器24内的存储器单元26之间的适当负载平衡。
[017引如上文论述,在图4到14中说明的实例中,显示瓦片为16x16像素,该意味着T等 于256,且存储器通道的数目为二,该意味着n等于2。在图4和6中说明的实例中,针对显 示瓦片中的每一者,从存储器通道检索的像素的最大数目为256个像素。因此,在图4和6 中,针对显示瓦片中的每一者,b等于256个像素值,且针对显示瓦片中的每一者,在图4和 6中说明的实例中的通道利用率(U)为0.5(例如,256/(2*256)等于0.5)。而且,图4说明 32个显示瓦片(例如,32个完整列),其各自具有0. 5的通道利用率,且图6说明8个显示 瓦片,其各自具有0. 5的通道利用率。因此,图4和6中说明的显示瓦片的平均通道利用率 为 0. 5。
[0179] 然而,在图8中说明的实例中,针对32个显示瓦片中的每一者检索的像素值的最 大数目为128个像素值。因此,针对显示瓦片中的每一者的b的值为128个像素值。在图 8中,32个显示瓦片中的每一者的通道利用率为256/ (2*128),其等于1,意味着存储器单元 26A与存储器单元26N之间的适当通道负载平衡。
[0180] 在图12中说明的实例中,针对8个显示瓦片中的每一者检索的像素值的最大数 目不相同。举例来说,对于作为图12中的第一完整列的第一显示瓦片,GPU 14从存储器单 元24A检索所有像素值且不从存储器单元24N检索像素值,该意味着任一通道的像素值的 最大数目(即,b)针对第一显示瓦片为256个像素值,因为列为16个像素值且列的宽度为 16个像素值。对于作为图12中的第二完整列的第二显示瓦片,MIF 20从存储器单元26A 检索192个像素值(即,0. 75*256等于192),且从存储器单元26N检索64个像素值(即, 0. 25*256等于64)。在此情况下,用于第二显示瓦片的任一通道的像素值的最大数目为来 自存储器单元26N的192个像素值,因为192大于64。
[0181] 利用同一计算,图12中的8个显示瓦片中的每一者的b的值可计算为;对于第 一显示瓦片为256,对于第二显示瓦片为192,对于第H显示瓦片为128,对于第四显示瓦 片为192,对于第五显示瓦片为256,对于第六显示瓦片为192,对于第走显示瓦片为128, 且对于第八显示瓦片为192。通过显示瓦片中的每一者的b的值W及等于256的T和等 于2的n的值,显示瓦片中的每一者的通道利用率(U)可计算为;对于第一显示瓦片为 1/2,对于第二显示瓦片为2/3,对于第H显示瓦片为1,对于第四显示瓦片为2/3,对于第 五显示瓦片为1/2,对于第六显示瓦片为2/3,对于第走显示瓦片为1,且对于第八显示瓦 片为2/3。在此实例中,8个显示瓦片中的每一者的通道利用率的平均值为近似0. 71 (即, 1/化2/3+1+2/3+1/化2/3+1+2/3)/8等于近似0. 71)。因此,虽然图12中说明的实例的通道 利用率不等于1,但其仍大于图6中说明的实例的0. 5通道利用率。
[0182] 前述实例利用用于交错粒度、显示瓦片的大小、表面瓦片的大小、显示器的大小、 页的大小的特定值W及其它此类值来帮助理解本发明中描述的实例性技术。下文W较一 般术语描述实例性技术W指示本发明中描述的技术可扩展到其中交错粒度、显示瓦片的大 小、表面瓦片的大小、显示器的大小和其它此类值不一定是本发明中W上使用的实例性值 的情形。
[0183] 举例来说,术语"像素大小"经界定为用W表示每一像素值的字节数目,且术语"瓦 片大小"经界定为表面瓦片的字节数目。举例来说,在W上实例中,作为4个字节的32位 表示像素值。因此,在W上实例中,像素大小为4个字节。而且,在W上实例中,表面瓦片为 4x4像素值。由于每一像素值包含4个字节,且在表面瓦片中存在16个像素值,因此在W上 实例中的瓦片大小为64个字节。
[0184] 假设例如表面32A或表面32B等表面的W像素计的宽度为W个像素,像素大小 为Z个字节,且表面内的每一表面瓦片的高度为V个像素。在此情况下,术语"表面跨度 (surface stride) "(S)经界定为S = z*w*v。如上文描述,MIF 20可W线性方式存储表面 32A的像素值。在此情况下,V的值可等于一个像素,因为表面32A的每一行的高度为一个 像素。
[0185] 举例来说,假定表面32A为32个像素宽且像素大小为4个字节。而且,因为表面 32A W线性方式存储,所W每一行的高度为一个像素。则表面32A的表面跨度(S)为128个 字节(即,4*32*1等于128)。作为另一实例,假定表面32B为32个像素宽,像素大小为4个 字节,且表面瓦片为4x4。在此实例中,表面32B的表面跨度(S)为512个字节(即,4*32*4 等于512)。
[0186] 如果表面跨度是作为一或多个表面瓦片的大小的"N"个字节的倍数,那么表面的 表面跨度可称为"搭接跨度(snap stride)"。举例来说,表面瓦片对于线性表面为1x1像 素值。N可称为搭接大小。举例来说,128个像素值、256个像素值和2048个像素值是128 字节的搭接大小(脚的所有搭接跨度。类似地,512个像素值和1024个像素值是512字节 的搭接大小(脚的所有搭接跨度。
[0187] 搭接跨度的对应宽度可称为搭接宽度。举例来说,64是具有搭接大小128和像素 大小4的线性表面的搭接宽度,因为所述线性表面的跨度为256。在此实例中,因为线性表 面为128个字节的倍数,且128个字节是一或多个表面瓦片的大小,所W所述线性表面可视 为具有128个字节的搭接大小和64个像素值的搭接宽度的搭接跨度。对于4x4表面瓦片, 64个像素值可为具有512个字节的搭接大小和4的像素大小的此4x4表面瓦片的搭接宽 度,因为1024个字节的跨度是512个字节的倍数。
[018引术语"搭接间隔"可为搭接大小(脚的宽度中的W字节计的像素值。搭接坐标可 从搭接间隔确定。举例来说,假设像素坐标在表面中为(X,y)。则搭接坐标可界定为X = floor (X/搭接间隔)。搭接坐标狂,y)为整数。而且,如果交错粒度为搭接大小的倍数,那 么搭接间隔的每一像素可经由同一 MC 22从同一存储器单元26检索。
[0189] W下表1说明线性表面的通道函数,其中表面宽度为160个像素值,表面高度为32 个像素值,像素大小为4个字节,交错粒度为1024个字节,存在两个存储器通道(例如,两 个MC 22,其各自建立到系统存储器24内的一个存储器单元26的一个通道),不存在字节 填补,且搭接间隔为32。表1中的通道函数C狂,y)指示两个通道中的哪一者用W从系统 存储器24检索像素值。
[0190] 举例来说,在表1的实例中,存在到系统存储器24的两个存储器通道(例如,从 MC 22A到存储器单元26A的一个通道,和从MC 22N到存储器单元26N的一个通道)。在表 1中,从MC 22A到存储器单元26A的存储器通道称为通道0,且从MC22N到存储器单元22N 的存储器通道称为通道1。
[0191] 如上所述,搭接坐标狂)=fl〇〇r(x/搭接间隔)。在表I的实例中,搭接间隔为 32,且宽度为160个像素值(例如,具有X坐标0到X坐标159的像素值)。因此,线性表面 的从X = 0到X = 31的X坐标的搭接坐标X将为0,线性表面的从X = 32到X = 63的X 坐标的搭接坐标X将为1,线性表面的从X = 64到95的X坐标的搭接坐标X将为2,线性 表面的从X = 96到127的X坐标的搭接坐标X将为3,且线性表面的从X = 128到159的 X坐标的搭接坐标X将为4。
[019引而且,如上所述,由搭接间隔涵盖的所有像素值经由MC 22A或MC 22N但并非两者 存储在系统存储器24中。表1中说明此存储。举例来说,在表1中的y = 1的行中,C狂, y)对于X = O等于0,对于X= 1等于0,对于X = 2等于0,对于X = 3等于1,且对于X = 4等于1。该意味着线性表面的位于X = O到31(例如,其中X = O)且Y= 1的像素值经由 MC 22A存储在存储器单元22A中(因此表1中的值0),线性表面的位于X = 32到63 (例 女口,其中X = 1)且y = 1的像素值经由MC 22A存储在存储器单元22A中(因此表1中的 值0),且线性表面的位于X = 64到95(例如,其中X =。且y = 1的像素值经由MC 22A 存储在存储器单元22A中(因此表1中的值0)。对于线性表面的位于X = 96到127 (例 女口,其中X = 3)且y = l的像素值,该些像素值经由MC 22N存储在存储器单元22N中(因 此表1中的值1),且对于线性表面的位于X= 128到159 (例如,其中X = 4)且Y= 1的像 素值,该些像素值经由MC 22N存储在存储器单元22N中(因此表1中的值1)。
[0193] 表 1.
[0194]

【权利要求】
1. 一种方法,其包括: 以存储器接口接收指示所述存储器接口将表面的像素值存储在系统存储器中的多个 指令;以及 以所述存储器接口至少在经由第一存储器控制器的所述系统存储器的第一存储器单 元与经由第二不同存储器控制器的所述系统存储器的第二不同存储器单元之间以交错方 式将所述表面的所述像素值存储在所述系统存储器的除了所述系统存储器中的保留填补 位之外的位中,使得显示瓦片的第一像素值集合经由所述第一存储器控制器存储在所述第 一存储器单元内且所述同一显示瓦片的第二像素值集合经由所述第二存储器控制器存储 在所述第二存储器单元内。
2. 根据权利要求1所述的方法,其进一步包括: 以所述存储器接口接收所述表面的所述像素值将存储于的虚拟地址;以及 以所述存储器接口的存储器管理单元MMU将所述虚拟地址映射到所述系统存储器的 除了所述系统存储器中的所述保留填补位之外的所述位的物理地址, 其中存储所述表面的所述像素值包括基于所述系统存储器的除了所述系统存储器中 的所述保留填补位之外的所述位的所述物理地址将所述表面的像素值存储在所述系统存 储器的除了所述系统存储器中的所述保留填补位之外的所述位中。
3. 根据权利要求1所述的方法,其中存储包括以所述交错方式将所述表面的所述像素 值存储在所述系统存储器的页的位中。
4. 根据权利要求1所述的方法,其中存储包括以所述交错方式将所述表面的线的所述 像素值存储在所述系统存储器的除了所述系统存储器中的保留填补位之外的位中。
5. 根据权利要求1所述的方法,其中存储包括以所述交错方式将所述表面的瓦片的所 述像素值存储在所述系统存储器的除了所述系统存储器中的保留填补位之外的位中。
6. 根据权利要求1所述的方法,其中存储包括基于交错粒度以所述交错方式将所述表 面的所述像素值存储在所述系统存储器的除了所述系统存储器中的保留填补位之外的位 中,所述交错粒度指示所述存储器接口在经由所述第二控制器在所述第二存储器单元中存 储位之前经由所述第一存储器控制器在所述第一存储器单元中存储的位的数目。
7. 根据权利要求1所述的方法,其进一步包括: 确定致使存储所述第一像素值集合所需要的位数目等于存储所述第二像素值集合所 需要的位数目的所述填补位的数目;以及 基于所述所确定数目保留所述填补位。
8. 根据权利要求1所述的方法,其进一步包括: 以第一处理单元保留所述填补位, 其中接收所述多个指令包括从第二不同处理单元接收所述多个指令。
9. 根据权利要求8所述的方法,其中所述第一处理单元包括处理器,且其中所述第二 处理单元包括图形处理单元。
10. 根据权利要求8所述的方法,其中保留所述填补位包括以在所述第一处理单元上 执行的驱动器保留所述填补位。
11. 根据权利要求1所述的方法,其进一步包括: 以处理单元保留所述填补位, 其中接收所述多个指令包括从所述处理单元接收所述多个指令。
12. 根据权利要求11所述的方法,其中所述处理单元包括图形处理单元GPU。
13. 根据权利要求1所述的方法,其中所述多个指令包括第一多个指令,所述方法进一 步包括: 以所述存储器接口接收从所述系统存储器检索所述表面的所述像素值的第二多个指 令; 响应于所述第二多个指令,以所述存储器接口经由所述第一存储器控制器从所述第一 存储器单元检索所述显示瓦片的所述第一像素值集合;以及 响应于所述第二多个指令,在检索所述第一像素值集合的同时,以所述存储器接口经 由所述第二存储器控制器从所述第二存储器单元检索所述显示瓦片的所述第二像素值集 合。
14. 根据权利要求13所述的方法,其进一步包括: 基于所述经检索第一像素值集合和所述第二像素值集合在显示器上再现所述显示瓦 片。
15. 根据权利要求1所述的方法,其进一步包括: 以处理单元产生所述显示瓦片的所述第一像素值集合;以及 以所述处理单元产生所述显示瓦片的所述第二像素值集合。
16. -种集成电路1C,其包括: 第一存储器控制器,其以操作方式耦合到系统存储器的第一存储器单元; 第二不同存储器控制器,其以操作方式耦合到所述系统存储器的第二不同存储器单 元;以及 存储器接口,其经配置以: 接收指示所述存储器接口将表面的像素值存储在所述系统存储器中的多个指令;以及 至少在经由所述第一存储器控制器的所述系统存储器的所述第一存储器单元与经由 所述第二不同存储器控制器的所述系统存储器的所述第二不同存储器单元之间以交错方 式将所述表面的所述像素值存储在所述系统存储器的除了所述系统存储器中的保留填补 位之外的位中,使得显示瓦片的第一像素值集合经由所述第一存储器控制器存储在所述第 一存储器单元内且所述同一显示瓦片的第二像素值集合经由所述第二存储器控制器存储 在所述第二存储器单元内。
17. 根据权利要求16所述的1C,其中所述存储器接口包括存储器管理单元MMU,且其中 所述存储器接口经配置以: 接收所述表面的所述像素值将存储于的虚拟地址; 以所述MMU将所述虚拟地址映射到所述系统存储器的除了所述系统存储器中的所述 保留填补位之外的所述位的物理地址;以及 基于所述系统存储器的除了所述系统存储器中的所述保留填补位之外的所述位的所 述物理地址将所述表面的所述像素值存储在所述系统存储器的除了所述系统存储器中的 所述保留填补位之外的所述位中。
18. 根据权利要求16所述的1C,其中所述存储器接口经配置以用所述交错方式将所述 表面的所述像素值存储在所述系统存储器的页的位中。
19. 根据权利要求16所述的1C,其中所述存储器接口经配置以用所述交错方式将所述 表面的线的所述像素值存储在所述系统存储器的除了所述系统存储器中的保留填补位之 外的位中。
20. 根据权利要求16所述的1C,其中所述存储器接口经配置以用所述交错方式将所述 表面的瓦片的所述像素值存储在所述系统存储器的除了所述系统存储器中的保留填补位 之外的位中。
21. 根据权利要求16所述的1C,其中所述存储器接口经配置以基于交错粒度以所述交 错方式将所述表面的所述像素值存储在所述系统存储器的除了所述系统存储器中的保留 填补位之外的位中,所述交错粒度指示所述存储器接口在经由所述第二控制器在所述第二 存储器单元中存储位之前经由所述第一存储器控制器在所述第一存储器单元中存储的位 的数目。
22. 根据权利要求16所述的1C,其进一步包括处理单元,所述处理单元经配置以: 确定致使存储所述第一像素值集合所需要的位数目等于存储所述第二像素值集合所 需要的位数目的所述填补位的数目;以及 基于所述所确定数目保留所述填补位。
23. 根据权利要求16所述的1C,其进一步包括第一处理单元和第二不同处理单元,其 中所述第一处理单元经配置以保留所述填补位,且其中所述存储器接口经配置以从所述第 二处理单元接收所述多个指令。
24. 根据权利要求23所述的1C,其中所述第一处理单元包括处理器,且其中所述第二 处理单元包括图形处理单元。
25. 根据权利要求23所述的1C,其中所述第一处理单元经配置以执行驱动器,且以所 述驱动器保留所述填补位。
26. 根据权利要求16所述的1C,其进一步包括经配置以保留所述填补位的处理单元, 且其中所述存储器接口从所述处理单元接收所述多个指令。
27. 根据权利要求26所述的1C,其中所述处理单元包括图形处理单元。
28. 根据权利要求16所述的1C,其中所述多个指令包括第一多个指令,且其中所述存 储器接口经配置以: 接收从所述系统存储器检索所述表面的所述像素值的第二多个指令; 响应于所述第二多个指令,经由所述第一存储器控制器从所述第一存储器单元检索所 述显示瓦片的所述第一像素值集合;以及 响应于所述第二多个指令,在检索所述第一像素值集合的同时,经由所述第二存储器 控制器从所述第二存储器单元检索所述显示瓦片的所述第二像素值集合。
29. 根据权利要求28所述的1C,其进一步包括经配置以基于所述经检索第一像素值集 合和所述第二像素值集合在显示器上再现所述显示瓦片的处理单元。
30. 根据权利要求16所述的1C,其进一步包括处理单元,所述处理单元经配置以: 产生所述显示瓦片的所述第一像素值集合;以及 产生所述显示瓦片的所述第二像素值集合。
31. -种装置,其包括: 系统存储器,其包括至少第一存储器单元和第二不同存储器单元;以及 集成电路1C,其包括: 第一存储器控制器,其以操作方式耦合到所述系统存储器的所述第一存储器单元; 第二不同存储器控制器,其以操作方式耦合到所述系统存储器的所述第二不同存储器 单元;以及 存储器接口,其经配置以: 接收指示所述存储器接口将表面的像素值存储在所述系统存储器中的多个指令;以及 至少在经由所述第一存储器控制器的所述系统存储器的所述第一存储器单元与经由 所述第二不同存储器控制器的所述系统存储器的所述第二不同存储器单元之间以交错方 式将所述表面的所述像素值存储在所述系统存储器的除了所述系统存储器中的保留填补 位之外的位中,使得显示瓦片的第一像素值集合经由所述第一存储器控制器存储在所述第 一存储器单元内且所述同一显示瓦片的第二像素值集合经由所述第二存储器控制器存储 在所述第二存储器单元内。
32. 根据权利要求31所述的装置,其中所述存储器接口包括存储器管理单元MMU,且其 中所述存储器接口经配置以: 接收所述表面的所述像素值将存储于的虚拟地址; 以所述MMU将所述虚拟地址映射到所述系统存储器的除了所述系统存储器中的所述 保留填补位之外的所述位的物理地址;以及 基于所述系统存储器的除了所述系统存储器中的所述保留填补位之外的所述位的所 述物理地址将所述表面的所述像素值存储在所述系统存储器的除了所述系统存储器中的 所述保留填补位之外的所述位中。
33. 根据权利要求31所述的装置,其中所述存储器接口经配置以基于交错粒度以所述 交错方式将所述表面的所述像素值存储在所述系统存储器的除了所述系统存储器中的保 留填补位之外的位中,所述交错粒度指示所述存储器接口在经由所述第二控制器在所述第 二存储器单元中存储位之前经由所述第一存储器控制器在所述第一存储器单元中存储的 位的数目。
34. 根据权利要求31所述的装置,其进一步包括处理单元,所述处理单元经配置以: 确定致使存储所述第一像素值集合所需要的位数目等于存储所述第二像素值集合所 需要的位数目的所述填补位的数目;以及 基于所述所确定数目保留所述填补位。
35. 根据权利要求31所述的装置,其中所述1C包含所述处理单元。
36. 根据权利要求31所述的装置,其中所述多个指令包括第一多个指令,且其中所述 存储器接口经配置以: 接收从所述系统存储器检索所述表面的所述像素值的第二多个指令; 响应于所述第二多个指令,经由所述第一存储器控制器从所述第一存储器单元检索所 述显示瓦片的所述第一像素值集合;以及 响应于所述第二多个指令,在检索所述第一像素值集合的同时,经由所述第二存储器 控制器从所述第二存储器单元检索所述显示瓦片的所述第二像素值集合。
37. 根据权利要求36所述的装置,其进一步包括: 显不器;以及 处理单元,其经配置以基于所述经检索第一像素值集合和所述第二像素值集合在所述 显示器上再现所述显示瓦片。
38. -种装置,其包括: 系统存储器,其包括至少第一存储器单元和第二不同存储器单元;以及 集成电路1C,其包括: 第一存储器控制器,其以操作方式耦合到所述系统存储器的所述第一存储器单元; 第二不同存储器控制器,其以操作方式耦合到所述系统存储器的所述第二不同存储器 单元;以及 用于以存储器接口接收指示所述存储器接口将表面的像素值存储在系统存储器中的 多个指令的装置;以及 用于以所述存储器接口至少在经由第一存储器控制器的所述系统存储器的第一存储 器单元与经由第二不同存储器控制器的所述系统存储器的第二不同存储器单元之间以交 错方式将表面的所述像素值存储在所述系统存储器的除了所述系统存储器中的保留填补 位之外的位中使得显示瓦片的第一像素值集合经由所述第一存储器控制器存储在所述第 一存储器单元内且所述同一显示瓦片的第二像素值集合经由所述第二存储器控制器存储 在所述第二存储器单元内的装置。
39. -种具有存储于其上的指令的计算机可读存储媒体,所述指令在执行后即刻致使 一或多个处理器: 指示存储器接口至少在经由第一存储器控制器的所述系统存储器的第一存储器单元 与经由第二不同存储器控制器的所述系统存储器的第二不同存储器单元之间以交错方式 将表面的像素值存储在系统存储器的除了所述系统存储器中的保留填补位之外的位中,使 得显示瓦片的第一像素值集合经由所述第一存储器控制器存储在所述第一存储器单元内 且所述同一显示瓦片的第二像素值集合经由所述第二存储器控制器存储在所述第二存储 器单元内。
【文档编号】G06T1/60GK104350523SQ201380029728
【公开日】2015年2月11日 申请日期:2013年5月6日 优先权日:2012年6月7日
【发明者】陈琳, P·阿加瓦尔, 陈龙, 陈令军 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1