用于gpu中的页映射的专门机制的制作方法

文档序号:6611276阅读:140来源:国知局
专利名称:用于gpu中的页映射的专门机制的制作方法
技术领域
本发明涉及消除或减少用于检索系统存储器显示数据存取所需的地址转译信息的系 统存储器存取。背景技木图形处理单元(GPU)被包含作为计算机、视频游戏、汽车导航和其它电子系统的 一部分,以便在监视器或其它显示装置上产生图形图像。待开发的最初的GPU将像素值 (即,实际显示的颜色)存储在称为帧缓冲器的局部存储器中。从那时起,GPU (尤其是由加州圣克拉拉的NVIDIA公司设计和开发的GPU)的复 杂性已显著增加。存储在帧缓冲器中的数据的大小和复杂性同样增加。这种图形数据现 不仅包含像素值,而且包含纹理、纹理描述符、遮影器程序指令和其它数据及命令。这 些帧缓冲器现因认可了其扩展的作用而常被称为图形存储器。直到最近,GPU已经由高级图形端口或AGP总线与中央处理单元和计算机系统中的 其它装置通信。虽然开发出这种总线的较快版本,但其不能够将足够的图形数据传送到 GPU。因此,图形数据存储在GPU可用的局部存储器中,而不必经过AGP端口。幸运 的是,已开发出一种新的总线,其是外围组件互连(PCI)标准的增强版本,或称PCIE (PCI express)。 NVIDIA公司已对这种总线协议和所引起的实施方案进行了很大程度的 改进和改良。这进而已允许为了利于经由PCIE总线存取的系统存储器而消除局部存储 器。由于图形存储器位置的变化而产生了各种复杂情况。 一种复杂情况是,GPU使用虚 地址跟踪数据存储位置,而系统存储器使用实地址。为了从系统存储器读取数据,GPU 将其虚地址转译为实地址。如果这一转译花费过多的时间,那么系统存储器可能不会以 足够快的速度将数据提供到GPU。对于必须持续且快速地提供到GPU的像素或显示数据 来说尤其如此。如果将虚地址转译为实地址所需的信息没有存储在GPU上,那么这种地址转译可能 花费过多的时间。明确地说,如果此转译信息在GPU上不可用,那么需要第一存储器存 取来从系统存储器中检索所述转译信息。只有这样,才可在第二存储器存取中从系统存 储器读取显示数据或其它所需数据。因此,第一存储器存取串联于第二存储器存取之前, 因为在没有第一存储器存取所提供的地址的情况下无法进行第二存储器存取。额外的第 一存储器存取可能长达1 usee,从而大大减缓读取显示数据或其它所需数据的速率。因此,需要消除或减少用于从系统存储器检索地址转译信息的这些额外存储器存取 的电路、方法和设备。发明内容因此,本发明实施例提供消除或减少用于检索系统存储器显示数据存取所需的地址 转译信息的系统存储器存取的电路、方法和设备。明确地说,地址转译信息存储在图形 处理器中。这减少或消除对于用于检索转译信息的单独系统存储器存取的需要。由于不 需要额外的存储器存取,所以处理器可更快地转译地址并从系统存储器读取所需的显示 数据或其它数据。本发明的示范性实施例通过用条目预填充称为图形转译后备缓冲器(图形TLB)的 高速缓冲存储器来消除或减少加电之后对于地址转译信息的系统存储器存取,所述条目 可用于将由GPU使用的虚地址转译成由系统存储器使用的实地址。在本发明的特定实施 例中,用显示数据所需的地址信息来预填充图形TLB,但在本发明的其它实施例中,用 于其它类型的数据的地址也可预填充图形TLB。这防止原本需要用来检索必要的地址转 译信息的额外系统存储器存取。加电之后,为了确保所需的转译信息维持在图形处理器上,锁定或以另外的方式限 制图形TLB中的显示存取所需的条目。这可通过将存取限制在图形TLB中的某些位置, 通过将旗标或其它识别信息存储在图形TLB中,或通过其它适当的方法来完成。这防止 重写原本需要从系统存储器再次读取的数据。本发明的另一示范性实施例通过存储系统BIOS所提供的系统存储器的较大连续区 块的基地址和地址范围来消除或减少对于地址转译信息的存储器存取。加电或发生其它 适当的事件时,系统BIOS向GPU分配较大存储器区块,其可称为"划出区(carveout)"。 GPU可将此较大存储器区块用于显示数据或其它数据。GPU将基地址和范围存储在芯片 上,例如存储在硬件寄存器中。当由GPU使用的虚地址将被转译成实地址时,进行范围检査以查明虚地址是否在划 出区的范围内。在本发明的特定实施例中,通过使划出区的基地址对应于虚地址零来对 此进行简化。划出区中的最高虚地址则对应于实地址的范围。如果待转译的地址在划出 区的虚地址的范围内,那么可通过将基地址添加到虚地址而将虚地址转译成实地址。如 果待转译的地址不在此范围内,那么可使用图形TLB或页表来转译所述地址。本发明的各个实施例可包含本文描述的这些或其它特征中的一个或一个以上特征。 可参看以下具体实施方式
和附图来获得对本发明的性质和优点的更好的理解。


图1是通过包含本发明实施例而改进的计算系统的方框图;图2是通过包含本发明实施例而改进的另一计算系统的方框图;图3是说明根据本发明实施例的存取存储在系统存储器中的显示数据的方法的流程图;图4A-C说明根据本发明实施例在存取显示数据的方法期间计算机系统中命令和数 据的传递;图5是说明根据本发明实施例的存取系统存储器中的显示数据的另一方法的流程图;图6说明根据本发明实施例在存取显示数据的方法期间计算机系统中命令和数据的 传递;图7是符合本发明实施例的图形处理单元的方框图;和
图8是根据本发明实施例的图形卡的图。
具体实施方式
图1是通过包含本发明实施例而改进的计算系统的方框图。此方框图包含中央处理 单元(CPU)或主机处理器100、系统平台处理器(SPP) 110、系统存储器120、图形处 理单元(GPU) 130、媒体通信处理器(MCP) 150、网络160,和内部及外围装置270。 还包含帧缓冲器、局部或图形存储器140,但用虚线展示。虚线指示虽然常规计算机系 统包含此存储器,但本发明实施例允许将其移除。该图与所包含的其它图一样,是仅出 于说明性目的而展示的,且不限制本发明的可能的实施例或扠利要求书。CPU IOO经由主机总线105连接到SPP 110。 SPP IIO经由PCIE总线135与图形处 理单元130通信。SPP110经由存储器总线125从系统存储器120读取数据和将数据写入 到系统存储器120。 MCP 150经由例如HyperTransport总线155的高速连接与SPP 110通 信,并将网络160和内部及外围装置170连接到计算机系统的剩余部分。图形处理单元 130经由PCIE总线135接收数据,并产生用于通过监视器或其它显示装置(未图示)进 行显示的图形和视频图像。在本发明其它实施例中,图形处理单元包含在集成图形处理 器(IGP)中,使用所述集成图形处理器代替SPPllO。在另外其它实施例中,可使用通 用GPU作为GPU 130。CPU IOO可以是处理器,例如所属领域的技术人员众所周知的由Intel公司或其它供 应商制造的那些处理器。SPP 110和MCP 150统称为芯片集。系统存储器120通常是排 列成许多双线内存储器模块(DIMM)的许多动态随机存取存储器装置。图形处理单元 130、 SPP 110、 MCP150和IGP (如果使用的话)优选地由NVIDIA公司制造。图形处理单元130可能位于图形卡上,而CPU 100、系统平台处理器IIO、系统存储 器120和媒体通信处理器150可位于计算机系统母板上。包含图形处理单元130的图形 卡通常是附接有图形处理单元的数据印刷电路板。所述印刷电路板通常包含连接器(例 如,PC正连接器),其同样附接到印刷电路板并配合到母板上包含的PCIE槽中。在本发 明其它实施例中,图形处理器包含在母板上,或归入IGP中。计算机系统(例如,所说明的计算机系统)可包含一个以上GPU 130。另外,这些 图形处理单元的每一者可位于单独的图形卡上。这些图形卡中的两者或两者以上可通过 跨接线或其它连接而接合在一起。NVIDIA公司已开发出一种此类技术——开拓性SLFM。 在本发明其它实施例中, 一个或一个以上GPU可位于一个或一个以上图形卡上,而一个 或一个以上其它GPU位于母板上。
在先前开发的计算机系统中,GPU 130经由AGP总线与系统平台处理器110或其它 装置(在例如北桥处)通信。不幸的是,AGP总线不能以所需速率将所需数据供应到GPU 130。因此,帧缓冲器140是供GPU使用的。此存储器允许在数据不必横穿AGP瓶颈的 情况下存取所述数据。现己可用较快的数据传递协议,例如PCffi和HyperTransport。值得注意的是,NVIDIA 公司己开发出改进的PCIE接口。因此,从GPU 130到系统存储器120的带宽已大大增 加。因此,本发明实施例提供并允许移除帧缓冲器140。可用于移除帧缓冲器的另外的 方法和电路的实例可査阅共同待决且共同拥有的2005年10月18日申请的题为"Zero Frame Buffer"的第11/253438号美国专利申请案,所述专利申请案以引用的方式并入本 文中。本发明实施例所允许的对帧缓冲器的移除提供节省,其不仅包含这些DRAM的去除 而且还包含额外的节省。举例来说,通常使用电压调节器来控制存储器的电源,且使用 电容器来提供电源过滤。移除DRAM、调节器和电容器提供成本节省,其减少了图形卡 的材料清单(BOM)。此外,简化了板布局,减小了板空间,并简化了图形卡测试。这些 因素縮减了研究和设计以及其它工程和测试成本,借此增加包含本发明实施例的图形卡 的毛利。虽然本发明实施例较好地适于改进零帧缓冲器图形处理器的性能,但也可通过包含 本发明实施例来改进其它图形处理器(包含具有有限或芯片上存储器或有限的局部存储 器的那些图形处理器)。并且,虽然此实施例提供可通过包含本发明实施例而改进的特定 类型的计算机系统,但也可改进其它类型的电子或计算机系统。举例来说,可通过包含 本发明实施例来改进视频和其它游戏系统、导航、机顶盒、弹球机以及其它类型的系统。并且,虽然本文描述的这些类型的计算机系统和其它电子系统目前较为常见,但当 前正开发其它类型的计算机和其它电子系统,且将来将开发出其它系统。预期这些系统 中的许多系统也可通过包含本发明实施例而得以改进。因此,所列举的特定实例本质上 是阐释性的,且不限制本发明的可能的实施例或权利要求书。图2是通过包含本发明实施例而改进的另一计算系统的方框图。此方框图包含中央 处理单元或主机处理器200、 SPP210、系统存储器220、图形处理单元230、 MCP250、 网络260,和内部及外围装置270。同样,包含帧缓冲器、局部或图形存储器240,但用 虚线表示以突出其移除。CPU 200经由主机总线205与SPP 210通信,并经由存储器总线225存取系统存储
器220。 GPU 230经由PCIE总线235与SPP210通信,并经由存储器总线245与局部存 储器通信。MCP 250经由例如HyperTransport总线255的高速连接与SPP 210通信,并 将网络260和内部及外围装置270连接到计算机系统的剩余部分。与之前一样,中央处理单元或主机处理器200可以是由Intel公司或其它供应商制造 的中央处理单元之一,且是所属领域的技术人员众所周知的。图形处理器230、集成图 形处理器210和媒体及通信处理器240优选地由NVIDIA公司提供。图1和2中移除帧缓冲器140和240,以及本发明其它实施例中移除其它帧缓冲器, 并非不产生后果。举例来说,产生关于用于从系统存储器存储和读取数据的地址的困难。当GPU使用局部存储器来存储数据时,局部存储器严格地处于GPU的控制下。通 常,其它电路均不存取局部存储器。这允许GPU以其认为合适的任何方式跟踪并分配地 址。然而,系统存储器由多个电路使用,且操作系统向那些电路分配空间。操作系统分 配到GPU的空间可形成一个连续的存储器区。更有可能的是,分配到GPU的空间被细 分为许多区块或区,其中一些可能具有不同大小。这些区块或区可通过初始、起始或基 地址和存储器大小或地址范围来描述。图形处理单元使用实际的系统存储器地址较困难且不便利,因为提供给GPU的地址 被分配于多个独立区块中。并且,每当开启电力或另外再分配存储器地址时,提供给GPU 的地址可能变化。运行于GPU上的软件使用独立于系统存储器中实际实地址的虚地址会 容易得多。明确地说,GPU将存储器空间视为一个较大的连续区块,而以若干较小的完 全不同的区块将存储器分配到GPU。因此,当将数据写入到系统存储器或从系统存储器 读取数据时,执行由GPU使用的虚地址与由系统存储器使用的实地址之间的转译。可使 用表来执行这种转译,所述表的条目包含虚地址及其相应的实地址对应物。这些表称为 页表,而所述条目称为页表条目(PTE)。页表太大以至于不能置于GPU上;由于成本约束的缘故,这样做是不合需要的。因 此,将页表存储在系统存储器中。不幸的是,这意味着每当需要来自系统存储器的数据 时,需要进行第一或额外存储器存取来检索所需的页表条目,且需要第二存储器存取来 检索所需的数据。因此,在本发明实施例中,页表中的一些数据被高速缓冲存储于GPU 上的图形TLB中。当需要页表条目,且页表条目在GPU上的图形TLB中可用时,认为已发生命中(hit), 且可进行地址转译。如果页表条目未被存储在GPU上的图形TLB中,那么认为已发生 未中(miss)。此时,从系统存储器中的页表中检索所需的页表条目。
己检索到所需的页表条目之后,将再次需要此同一页表条目的可能性很大。因此, 为了减少存储器存取的数目,需要将此页表条目存储在图形TLB中。如果高速缓冲存储 器中没有空位置,那么最近未使用的页表条目可能为了利于此新的页表条目而被重写或 驱逐。在本发明各个实施例中,在驱逐之前,进行检查以确定当前被高速缓冲存储的条 目在其从系统存储器被读取之后是否被图形处理单元修改。如果其被修改,那么在新的 页表条目在图形TLB中对其进行重写之前进行回写操作,在所述回写操作中将经更新的 页表条目回写到系统存储器。在本发明其它实施例中,不执行此回写程序。在本发明特定实施例中,基于系统可能分配的最小间隔尺寸将页表编入索引,例如, PTE可表示最少4个4KB区块或页。因此,通过将虚地址除以16KB并接着乘以条目的 大小,在页表中产生相关的索引。图形TLB未中之后,GPU使用上述索引来找到页表条 目。在此特定实施例中,页表条目可映射大于4KB的一个或一个以上区块。举例来说, 页表条目可映射最少四个4KB区块,且可映射大于4KB —直达到最大总计为256KB的 4、 8或16个区块。 一旦将这种页表条目载入高速缓冲存储器中,图形TLB就可通过参 考单个图形TLB条目(其为单个PTE)而在所述256KB内找到虚地址。在此情况下, 页表本身排列成16字节条目,所述条目的每一者映射至少16KB。因此,256KB页表条 目复制在位于虚地址空间的所述256KB内的每个页表位置处。因此,在此实例中,存在 具有精确相同的信息的16个页表条目。256KB内的未中读取那些相同条目中的一者。如上文所提及,如果所需的页表条目在图形TLB中不可用,那么需要进行额外存储 器存取来检索所述条目。对于需要对数据的稳定、持续存取的特定图形功能来说,这些 额外存储器存取非常不合需要。举例来说,图形处理单元需要可靠地存取来显示数据, 使得其可以所需速率将图像数据提供到监视器。如果需要过多的存储器存取,那么所产 生的等待时间可能中断像素数据向监视器的流动,借此破坏图形图像。明确地说,如果需要从系统存储器读取用于显示数据存取的地址转译信息,那么所 述存取与后续数据存取串联,即必须从存储器读取地址转译信息,因此GPU可了解所需 的显示数据存储在何处。由此额外存储器存取引起的额外等待时间减小了可将显示数据 提供到监视器的速率,从而再次破坏图形图像。这些额外存储器存取还增加PC正总线上 的通信量并浪费系统存储器带宽。当加龟或发生图形TLB为空或被清除的其它事件时,尤其可能进行用于检索地址转 译信息的额外存储器读取。明确地说,在计算机系统加电时,基本输入/输出系统(BIOS) 预期GPU可自由处置局部帧缓冲存储器。因此,在常规系统中,系统BIOS不分配系统
存储器中的空间以供图形处理器使用。事实上,GPU从操作系统处请求一定量的系统存 储器空间。操作系统分配存储器空间之后,GPU可将页表中的页表条目存储在系统存储 器中,但图形TLB为空。当需要显示数据时,针对PTE的每一请求导致未中,所述未中 进一步导致额外存储器存取。因此,本发明实施例用页表条目预填充图形TLB。也就是说,在需要页表条目的请 求导致高速缓冲存储器未中之前用页表条目填充图形TLB。这种预填充通常至少包含检 索显示数据所需的页表条目,但其它页表条目也可预填充图形TLB。此外,为了防止页 表条目被驱逐,可锁定或以另外的方式限制一些条目。在本发明特定实施例中,锁定或 限制显示数据所需的页表条目,但在其它实施例中,可锁定或限制其它类型的数据。以 下图式中展示说明一个此类示范性实施例的流程图。图3是说明根据本发明实施例的存取存储在系统存储器中的显示数据的方法的流程 图。该图与所包含的其它图一样,是仅出于说明性目的而展示的,且不限制本发明的可 能的实施例或权利要求书。并且,尽管此处展示的这一实例和其它实例尤其较好地适于 存取显示数据,但可通过包含本发明实施例来改进其它类型的数据存取。在本方法中,GPU,或更明确地说运行于GPU上的驱动器或资源管理器,确保可使 用存储在GPU本身上的转译信息将虚地址转译成实地址,而不需要从系统存储器检索此 信息。这是通过最初将转译条目预填充或预载入图形TLB中来实现的。接着锁定与显示 数据相关联的地址,或以另外的方式防止其被重写或驱逐。明确地说,在动作310中,计算机或其它电子系统被加电,或经历重新启动、功率 重置或类似事件。在动作320中,作为运行于GPU上的驱动器的一部分的资源管理器从 操作系统处请求系统存储器空间。在动作330中,操作系统为CPU分配系统存储器中的 空间。虽然在此实例中,运行于CPU上的操作系统负责分配系统存储器中的帧缓冲器或图 形存储器空间,但在本发明的各个实施例中,运行于CPU或系统中其它装置上的驱动器或其它软件可负责这项任务。在其它实施例中,这项任务由操作系统和所述驱动器或其它软件中的一者或一者以上共享。在动作340中,资源管理器从操作系统接收系统存储 器中的空间的实地址信息。此信息通常将至少包含系统存储器中一个或一个以上区的基 地址和大小或范围。资源管理器接着可压縮或以另外的方式配置此信息,以便限制将由GPU使用的虚地 址转译成由系统存储器使用的实地址所需的页表条目的数目。举例来说,可组合由操作
系统向GPU分配的系统存储器空间的单独但连续的区块,其中将单个基地址用作起始地 址,且将虚地址用作索引信号。展示这一情况的实例可查阅共同待决且共同拥有的2005 年3月IO日申请的题为"Memory Management for Virtual Address Space with Translation Units of Variable Range Size"的第11/077662号美国专利申请案,所述专利申请案以引用 的方式并入本文中。并且,虽然在此实例中,这项任务是作为运行于GPU上的驱动器的 一部分的资源管理器的责任;但在其它.实施例中,此实例和所包含的其它实例中展示的 此任务以及其它任务可由其它软件、固件或硬件完成或共享。在动作350中,资源管理器将页表的转译条目写入到系统存储器中。资源管理器还 用这些转译条目中的至少一些转译条目对图形TLB进行预载入或预填充。在动作360中, 可锁定一些或所有的图形TLB条目,或以另外的方式防止其被驱逐。在本发明的特定实 施例中,防止所显示的数据的地址被重写或驱逐,以确保可在不需要针对地址转译信息 进行额外的系统存储器存取的情况下提供显示信息的地址。可使用符合本发明实施例的各种方法来实现所述锁定。举例来说,在许多客户端可 从图形TLB读取数据的情况下,可限制这些客户端中的一者或一者以上,使其无法将数 据写入到被限制的高速缓冲存储器位置,而是必须写入到许多共有的(pooled)或未被限 制的高速缓冲存储器线中的一者。更多细节可参阅共同待决且共同拥有的2005年12月 8日申请的题为"Shared Cache with Client-Specific Replacement Policy"的第11/298256 号美国专利申请案,所述专利申请案以引用的方式并入本文中。在其它实施例中,可对 可向图形TLB进行写入的电路施加其它限制,或可将例如旗标的数据与条目一起存储在 图形TLB中。举例来说,可对可向图形TLB进行写入的电路隐藏一些高速缓冲存储器线 的存在。或者,如果设定了旗标,那么无法重写或驱逐相关联的高速缓冲存储器线中的 数据。在动作370中,当需要来自系统存储器的显示数据或其它数据时,使用图形TLB中 的页表条目将由GPU使用的虚地址转译成实地址。明确地说,将虚地址提供到图形TLB, 且读取相应的实地址。同样,如果此信息没有存储在图形TLB中,那么需要在可发生地 址转译之前从系统存储器处请求所述信息。在本发明各个实施例中,可包含其它技术来限制图形TLB未中的影响。明确地说, 可采取额外的步骤以减少存储器存取等待时间,借此减小高速缓冲存储器未中对显示数 据的供应的影响。 一个解决方案是利用作为PCIE规格的一部分的虚通道VC1。如果图 形TLB未中使用虚通道VC1,那么其可回避其它请求,从而允许更快地检索所需条目。
然而,常规的芯片集不允许存取虚通道VC1。此外,虽然NVIDIA公司可以符合本发明 的方式在产品中实施此解决方案,但与其它装置的互操作性使得当前这样做并不合乎需 要,但将来这一情况可能改变。另一解决方案涉及将由图形TLB未中产生的请求列入优 先或进行标记。举例来说,可用高优先权标志对请求进行标记。此解决方案具有与上一 解决方案类似的互操作性考虑。图4A-C说明根据本发明实施例在存取显示数据的方法期间计算机系统中命令和数 据的传递。在此特定实例中,展示图1的计算机系统,但其它系统(例如,图2所示的 系统)中的命令和数据传递是类似的。图4A中,当系统加电、重置、重新启动或发生其它事件时,GPU将对于系统存储 器空间的请求发送到操作系统。同样,此请求可来自在GPU上运作的驱动器,明确地说, 驱动器的资源管理器部分可作出此请求,但其它硬件、固件或软件也可作出此请求。此 请求可经由系统平台处理器410从GPU 430传递到中央处理单元400。图4B中,操作系统为GPU分配系统存储器中的空间以供用作帧缓冲器或图形存储 器422。存储在帧缓冲器或图形存储器422中的数据可包含显示数据,即用于显示的像 素值、纹理、纹理描述符、遮影器程序指令,和其它数据及命令。在此实例中,所分配的空间,即系统存储器420中的帧缓冲器422,展示为连续的。 在其它实施例或实例中,所分配的空间可能不连续,即,其可能完全不同,分裂为多个 区。将通常包含系统存储器的区的一个或一个以上基地址和范围的信息传递到GPU。同 样,在本发明特定实施例中,将此信息传递到在GPU430上运作的驱动器的资源管理器 部分,但可使用其它软件、固件或硬件。此信息可经由系统平台处理器410从CPU 400 传递到GPU 430。图4C中,GPU将页表中的转译条目写入在系统存储器中。GPU还用这些转译条目 中的至少一些转译条目对图形TLB进行预载入。同样,这些条目将由GPU使用的虚地 址转译成由系统存储器420中的帧缓冲器422使用的实地址。与之前一样,可锁定或以另外的方式限制图形TLB中的一些条目,使其无法被驱逐 或重写。同样,在本发明特定实施例中,锁定或以另外的方式限制对识别帧缓冲器422 中存储有像素或显示数据的位置的地址进行转译的条目。当需要从帧缓冲器422存取数据时,使用图形TLB 432将由GPU 430使用的虚地址 转译成实地址。接着将这些请求传递到系统平台处理器410,系统平台处理器410读取
所需的数据并将其传回GPU 430。在以上实例中,加电或其它功率重置或类似状况之后,GPU将对于系统存储器中的 空间的请求发送到操作系统。在本发明其它实施例中,GPU将需要系统存储器中的空间 的事实是已知的,且不需要作出请求。在此情况下,在加电、重置、重新启动或其它适 当事件之后,系统BIOS、操作系统或其它软件、固件或硬件可分配系统存储器中的空间。 这在受控环境中尤其可行,例如在GPU不如其通常在桌面应用中那样容易被交换或替代 的移动应用中。GPU可能己了解在系统存储器中其将使用的地址,或地址信息可由系统BIOS或操 作系统传递到GPU。在任一情况下,存储器空间可以是存储器的连续部分,在此情况下, 仅单个地址一一基地址需要为巳知的或被提供到GPU。或者,存储器空间可以是完全不 同的或非连续的,且可能需要多个地址为已知的或被提供到GPU。通常,例如存储器区 块大小或范围信息的其它信息也传递到GPU或为GPU所知。并且,在本发明各个实施例中,可由系统的操作系统在加电时分配系统存储器中的 空间,且GPU可在稍后的时间作出对于更多存储器的请求。在此实例中,系统BIOS和 操作系统均可分配系统存储器中的空间以供GPU使用。以下图式展示本发明实施例的实 例,其中系统BIOS经编程以在加电时为GPU分配系统存储器空间。图5是说明根据本发明实施例的存取系统存储器中的显示数据的另一方法的流程 图。同样,虽然本发明实施例较好地适于提供对显示数据的存取,但各个实施例可提供 对此类型或其它类型的数据的存取。在此实例中,系统BIOS在加电时了解需要分配系 统存储器中的空间以供GPU使用。此空间可以是连续或非连续的。并且,在此实例中, 系统BIOS将存储器和地址信息传递到GPU上的驱动器的资源管理器或其它部分,但在 本发明的其它实施例中,GPU上的驱动器的资源管理器或其它部分可能提早知晓到所述 地址信息。明确地说,在动作510中,计算机或其它电子系统加电。在动作520中,系统BIOS 或其它适当的软件、固件或硬件(例如,操作系统)分配系统存储器中的空间以供GPU 使用。如果存储器空间是连续的,那么系统BIOS将基地址提供到在GPU上运行的资源 管理器或驱动器。如果存储器空间是非连续的,那么系统BIOS将提供许多基地址。每 一基地址通常伴随有存储器区块大小信息,例如大小或地址范围信息。通常,存储器空 间是划出的、连续的存储器空间。此信息通常伴随有地址范围信息。在动作540中,存储基地址和范围以供在GPU上使用。在动作550中,可通过使用
虚地址作为索引而将后续虚地址转换为实地址。举例来说,在本发明的特定实施例中, 可通过将虚地址添加到基地址而将虚地址转换为实地址。明确地说,当要将虚地址转译为实地址时,执行范围检查。当所存储的实基地址对 应于虚地址零时,如果虚地址在所述范围内,那么可通过将虚地址与实基地址相加来转 译虚地址。类似地,当所存储的实基地址对应于虚地址"X"时,如果虚地址在所述范围 内,那么可通过将虚地址与实基地址相加并减去"X"来转译虚地址。如果虚地址不在所 述范围内,那么可如上所述使用图形TLB或页表条目来转译地址。图6说明根据本发明实施例在存取显示数据的方法期间计算机系统中命令和数据的 传递。在加电时,系统BIOS分配系统存储器624中的空间——"划出区"622,以供GPU 630使用。GPU接收并存储系统存储器620中所分配的空间或划出区622的基地址(或多个基 地址)。此数据可存储在图形TLB 632中,或其可存储在GPU 630上的其它地方,例如 存储在硬件寄存器中。此地址连同划出区622的范围一起存储在(例如)硬件寄存器中。当将从系统存储器620中的帧缓冲器622读取数据时,可通过将虚地址视为索引而 将由GPU 630使用的虚地址转化成由系统存储器使用的实地址。同样,在本发明特定实 施例中,通过将虚地址添加到基地址而将划出地址范围中的虚地址转译为实地址。也就 是说,如果基地址对应于虚地址零,那么可通过如上所述将虚地址添加到基地址而将虚 地址转化为实地址。同样,可如上所述使用图形TLB和页表来转译范围外的虚地址。图7是符合本发明实施例的图形处理单元的方框图。图形处理单元700的此方框图 包含PCIE接口710、图形管线720、图形TLB 730,和逻辑电路740。 PCIE接口710经 由PCIE总线750传输和接收数据。同样,在本发明其它实施例中,可使用当前己开发或 正开发的其它类型的总线,以及将来将开发的那些总线。图形处理单元通常形成于集成 电路上,但在一些实施例中, 一个以上集成电路可包括GPU700。图形管线720从PCIE接口接收数据,并渲染数据以便在监视器或其它装置上显示。 图形TLB 730存储用于将由图形管线720使用的虚存储器地址转译成由系统存储器使用 的实存储器地址的页表条目。逻辑电路740控制图形TLB 730,检査对存储在图形TLB 730处的数据的锁定或其它限制,并从高速缓冲存储器读取数据和将数据写入到高速缓 冲存储器。图8是说明根据本发明实施例的图形卡的图。图形卡800包含图形处理单元810、 总线连接器820,和到达第二图形卡的连接器830。总线连接器828可以是经设计以配合PC正槽的PCIE连接器,例如计算机系统的母板上的槽上PC正。到达第二卡的连接器830 可经配置以配合到达一个或一个以上其它图形卡的跨接线或其它连接。可包含例如电源 调节器和电容器的其它装置。应注意,此图形卡上不包含存储器装置。已出于说明和描述的目的呈现了对本发明示范性实施例的以上描述。不希望其为详 尽的或将本发明限于所描述的精确形式,且鉴于以上教示,可能作出许多修改和变化。 选择并描述所述实施例是为了最佳地阐释本发明的原理及其实践应用,借此使所属领域 的其他技术人员能够最佳地将本发明用于各种实施例中,并作出适于所预期的特定用途 的各种修改。
权利要求
1.一种使用图形处理器来检索数据的方法,其包括请求存取系统存储器中的存储器位置;接收所述系统存储器中存储器位置的至少一个区块的地址信息,所述地址信息包含识别至少一个实存储器地址的信息;以及将对应于所述实存储器地址的页表条目存储在高速缓冲存储器中;其中接收所述地址信息,且在不等待高速缓冲存储器未中的情况下将所述页表条目存储在所述高速缓冲存储器中。
2. 根据权利要求l所述的方法,其进一步包括将所述页表条目存储在所述系统存储 器中。
3. 根据权利要求2所述的方法,其进一步包括锁定所述高速缓冲存储器中存储有所 述页表条目的位置。
4. 根据权利要求3所述的方法,其中所述图形处理器是图形处理单元。
5. 根据权利要求3所述的方法,其中将所述图形处理器包含在集成图形处理器上。
6. 根据权利要求3所述的方法,其中向操作系统作出所述存取系统存储器中的存储器 位置的请求。
7. 根据权利要求3所述的方法,其中所述识别至少一个实存储器地址的信息包括基地 址和存储器区块大小。
8. —种图形处理器,其包括数据接口,其用于提供存取系统存储器中的存储器位置的请求并用于接收关于所 述系统存储器中的存储器位置的地址信息,所述地址信息包含识别至少一个实存储 器地址的信息;高速缓冲存储器控制器,其用于写入对应于所述实存储器地址的页表条目;以及 高速缓冲存储器,其用于存储所述页表条目,其中接收所述地址信息,且在不等待发生高速缓冲存储器未中的情况下将所述页 表条目存储在所述高速缓冲存储器中。
9. 根据权利要求8所述的图形处理器, 在所述系统存储器中的请求。
10. 根据权利要求8所述的图形处理器, 统存储器中的存储器位置的请求。
11. 根据权利要求8所述的图形处理器, 述页表条目的位置。
12. 根据权利要求8所述的图形处理器, 有虚地址和实地址的位置。
13. 根据权利要求8所述的图形处理器,
14. 根据权利要求8所述的图形处理器,
15. 根据权利要求8所述的图形处理器, 上。其中所述数据接口还提供将所述页表条目存储其中所述数据接口提供在系统加电之后存取系其中所述高速缓冲存储器控制器锁定存储有所其中所述高速缓冲存储器控制器限制存取存储其中所述数据接口电路是PC正接口电路。其中所述图形处理器是图形处理单元。其中所述图形处理器被包含在集成图形处理器
16. —种使用图形处理器来检索数据的方法,其包括-接收系统存储器中的存储器区块的基地址和范围;存储所述基地址和范围;接收第一地址;确定所述第一地址是否在所述范围内,且如果是,通过将所述基地址添加到所述第一地址而将所述第一地址转译成第二地址,否则 从高速缓冲存储器读取页表条目;以及 使用所述页表条目将所述第一地址转译成第二地址。
17. 根据权利要求16所述的方法,其进一步包括在从所述高速缓冲存储器读取页表 条目之前,在不等待高速缓冲存储器未中的情况下将所述页表条目存储在所述高速 缓冲存储器中。
18. 根据权利要求16所述的方法,其进一步包括在从所述高速缓冲存储器读取页表 条目之前,确定所述页表是否存储在所述高速缓冲存储器中,且如果不是,那么从 所述系统存储器读取所述页表条目。
19. 根据权利要求16所述的方法,其中所述图形处理器是图形处理单元。
20. 根据权利要求16所述的方法,其中将所述图形处理器包含在集成图形处理器上。
全文摘要
本发明提供减少或消除用于检索地址转译信息的系统存储器存取的电路、方法和设备。在一个实例中,通过用条目预填充图形TLB来减少或消除这些存取,所述条目用于将由GPU使用的虚地址转译成由系统存储器使用的实地址。通过锁定或限制所述图形TLB中显示存取所需的条目来维持转译信息。这可通过将存取限制在所述图形TLB中的某些位置,通过将旗标或其它识别信息存储在所述图形TLB中,或通过其它适当的方法来完成。在另一实例中,系统BIOS为GPU分配存储器空间,所述存储器空间存储基地址和地址范围。通过将所述地址范围中的虚地址添加到所述基地址来转译所述虚地址。
文档编号G06F12/10GK101118646SQ20071013764
公开日2008年2月6日 申请日期2007年7月27日 优先权日2006年7月31日
发明者丹尼斯·K·马, 凯文·J·克兰楚施, 凯曼·吴, 加里·D·洛伦森, 彼得·C·童, 斯特凡·A·戈特沙尔克, 桑尼·S·杨, 科林恩·S·凯斯, 阿希什·K·考尔 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1