靠近局部输入/输出总线的桥接器中的输入/输出地址转换 版权通知
本文所含材料受到版权保护。本版权所有者不反对任何人按专利和商标局的专利文件或记录中呈现的那样复制本专利的公开,但是另一方面,无论如何要保留对该版权的所有权利。
发明背景发明领域
本发明一般地涉及总线协议桥接。更具体地说,本发明涉及输入/输出(I/O)地址转换,比如在桥接器中将连续的逻辑地址空间重新映射到可能不连续的物理地址空间。相关技术的描述
如果输入/输出(I/O)外围设备被提供了系统存储器(主存储器)中的大的相连视图,则它们通常会更有效地工作。这使这类装置能在包含它们感兴趣的数据的存储器的很大区域中进行随机存取。存储器的相连视图对于必须经常检索整个纹理映射、以便在显示装置上渲染场景的图形卡尤为重要。针对这种应用,I/O外围设备工作于其中的、给出大相连地址空间感地地址空间被称为“虚拟地址空间”。
总之,由于外围设备采用与主计算机系统的主存储器不同的地址空间,所以需要一种称为“地址转换”的处理,以便把外围设备所提供的虚拟地址映射到主存储器中相应的可能不连续的物理地址。
现在参考图1说明地址转换的现有技术的一个实例。图1是说明图形地址与物理地址转换的通用计算机系统100的高级框图。计算机系统100包括处理装置、如一个或多个处理器105和110,芯片组120,主存储器125,存储器总线124,图形加速端口(AGP)总线130以及PCI(外围部件互连)总线140。在此实例中,主存储器包含图形地址重定位表(GART),该表包含一些项目,用于把外围设备、如图形加速器135所用的虚拟地址映射到主存储器125中的物理地址。
芯片组120提供AGP总线130、PCI总线140以及存储器总线124之间的桥接功能。作为桥接功能的一部分,芯片组120利用GART 126将入站读和写事务(例如,由图形加速器135始发的读和写事务)中包含的图形地址转换到主存储器125中对应的物理地址。因此,在按照图1配置的计算机系统中,图形数据的处理、如纹理映射需要对主存储器125的多次存取。首先,芯片组120必须从GART 126中检索与正在执行的事务中指定的图形地址对应的项目。然后,在芯片组120确定了所需的物理地址之后,芯片组120必须执行对主存储器125的第二次存取,以便读出或写入该事务所指定的数据。
AGP的最大优点之一是,它将视频子系统与计算机系统的其余部分隔离,这样几乎不会有如采用PCI的情况那么多的I/O带宽上的争用。但是,根据上述描述,显然存在许多与目前处理AGP事务的转换方式有关的低效率情况。例如,首先对通常由动态随机存取存储器(DRAM)构成的主存储器125的存取与对静态随机存取存储器(SRAM)的存取相比要相对慢一些。第二,用于地址转换的主存储器125存取必须与其他存取请求、如由处理器105或110始发并经系统总线115接收的那些请求、或者在PCI总线140上接收的那些请求竞争。结果,因竞争通信量而减慢AGP转换。最后,如果转换单元(未示出)处理多种类型的通信量,例如系统总线通信量、PCI通信量以及AGP通信量,则由于需要仲裁逻辑来解决各种类型的入站和出站事务中转换单元的争用问题,所以情况会更加复杂。
因此,最好提供一种用于转换I/O地址技术,以便加速I/O事务的执行并提供地址转换逻辑的简化实现。此外,最好在与其他类型的通信量、如系统总线通信量或来自其他I/O装置的通信量隔离的装置中执行必要的I/O地址转换。
发明概述
现在描述用于在输入/输出(I/O)扩展桥接器中执行地址转换的方法和装置。I/O扩展桥接器包括第一接口单元、第二接口单元以及地址转换单元。第一接口单元被配置成通过一个或多个I/O端口与系统存储器和I/O控制器耦合。第一接口单元使数据能通过所述一个或多个I/O端口传到计算机系统的主存储器或者从其中传出。第二接口单元提供总线控制信号和地址,使数据能通过总线传递到外围设备或从外围设备中传出。地址转换单元与第一接口单元和第二接口单元耦合。地址转换单元通过访问局部存储器来转换与第二接口上接收的事务相关的地址,所述局部存储器含有计算机系统的主存储器中页面的物理地址。
本发明的其他特征和优点将从附图和详细描述中变得清楚明白。
附图简介
在附图中以举例而非限制的方式说明本发明,图中的类似参考标号表示类似部分,其中:
图1是说明用于图形地址转换的现有技术方法的框图。
图2是说明根据本发明的一个实施例的输入/输出地址转换的框图。
图3是说明根据本发明的一个实施例的图形地址转换的框图。
图4是说明可以实现本发明的实施例的示例芯片组的框图。
图5A是说明根据本发明的一个实施例的图形扩展桥接器的功能单元中高级互连的简化框图。
图5B是说明根据本发明的一个实施例的图形扩展桥接器的更详细视图的简化框图。
图6是在概念上说明根据本发明的一个实施例的事务处理的高级流程图。
图7是说明根据本发明的一个实施例的入站PCI写事务处理的流程图。
图8是说明根据本发明的一个实施例的出站PCI写事务处理的流程图。
图9在概念上说明根据本发明的一个实施例的图形(虚拟)至物理地址空间的转换。
图10A说明可用来查阅驻留在主存储器中4千字节页面中的数据的示例虚拟地址格式。
图10B说明可用来查阅驻留在主存储器中4兆字节页面中的数据的示例虚拟地址格式。
图11A说明支持至主存储器中4千字节页面的地址转换的示例GART项目格式。
图11B说明支持至主存储器中4兆字节页面的地址转换的示例GART项目格式。
本发明的详细描述
现在描述用于在I/O扩展桥接器中执行地址转换的方法和装置。概括地讲,本发明的实施例尝试提供一种用于转换I/O地址的技术,它将I/O转换装置、如I/O扩展桥接器与其他类型的通信量、如系统总线事务隔离,从而加速I/O事务的执行。根据本发明的一个特征,GART可以存储在局部SRAM中而不用跨过存储器总线。有利的是,由于接口是局部的并且提取GART项目的存取不必与其他类型的通信量竞争,所以可以更快地完成事务,而且可简化转换装置的实现。
在以下描述中,为了说明而给出大量的特定细节,以便提供对本发明的透彻理解。但是,显然对于本领域的技术人员来说,没有这些特定细节也可以实施本发明。在其他例子中,众所周知的结构和装置以框图形式表示。
本发明包括将在下面描述的各种步骤。本发明的步骤可以由硬件组件来执行,也可以用机器可执行指令来实现,这可用来使以这些指令编程的通用或专用处理器或逻辑电路执行这些步骤。或者,可以通过硬件与软件的组合来执行这些步骤。
重要的是,虽然本发明的实施例是参照可在本地、由转换各种AGP和PCI类事务的图形扩展桥接器(GXB)访问的图形加速端口(AGP)和图形地址重定位表(GART)来描述的,但是此处所述的方法和装置同样适用于其他类型的I/O事务和I/O扩展桥接器、或者其中I/O总线上的装置需要主存储器的相连视图的其他类型的总线。例如,此处所述技术被认为在与涉及VESA(视频电子标准协会)局部总线(VLB)和/或外围部件互连(PCI)总线的事务结合时是有用的。术语
在描述可以实现本发明各种实施例的示例环境之前,先简要地定义在整个本申请中要用到的一些术语。
术语“总线”一般指物理通信媒体或信道,信息通过它在两个或两个以上装置之间流动。虽然有人认为其上只有两个装置的总线是“端口”,但是此处所用的术语“总线”意在涵盖这种端口。
术语“处理器总线”、“系统总线”或“主机总线”一般指计算机系统的总线分级结构中的最高级总线。该总线通常被系统芯片组用于将信息发送到计算机系统的一个或多个处理器以及从这些处理器发送信息。
“存储器总线”指将存储器子系统连接到系统芯片组和处理器的总线。注意,在某些计算机系统中,处理器总线和存储器总线可能是同一条总线。
“局部I/O总线”一般是用于将各种类型的外围设备连接到计算机系统的存储器、系统芯片组和/或处理器的高速输入/输出(I/O)总线。例如,视频卡、盘存储装置、高速网络接口以及其他关键性能的外围设备通常都与此类型的总线耦合。常用的局部I/O总线包括VESA局部总线(VLB)、外围部件互连(PCI)总线以及图形加速端口(AGP)总线。同样出于本公开的目的,设计成由两个以上装置共用的总线和设计成仅供两个装置使用的端口、如I/O端口或AGP都被认为是总线。
“图形加速端口”(AGP)是一种高性能总线规范,如《图形加速端口接口规范》1998年5月4日的修订版2.0以及其后续修订版所述,该规范是为三维图形和视频图像的快速、高质量显示而设计的。
“PCI事务”一般指具有AGP总线上发布的AGP语义的PCI事务。
此处所用的“桥接器”一般指在芯片组中实现的逻辑和电路,例如,它用来连接两条总线,并且使一条总线上的装置可与另一条总线上的装置通信,反之亦然。例如,计算机系统中见到的一种常用桥接器是PCI-ISA(工业标准体系结构)桥接器,它通常是系统芯片组的一部分。PCI总线也可以还具有一个到处理器总线的桥接器,称为PCI扩展桥接器(PXB)。
在此申请的上下文中,“事务”包括一个或多个请求(地址)阶段和数据阶段。事务通常包括开始地址、事务类型以及要传送的数据量的指示。
特定事务的方向是从处理器的观点来确定的。因此,“入站事务”一般指由外围设备、如视频卡、盘存储装置或高速网络接口指向计算机系统的读或写请求;而“出站事务”一般指由计算机系统指向外围设备的读或写请求。输入/输出地址转换
本发明的各种特征被认为通常在与I/O扩展桥接器中执行地址转换结合时有用。为了在上下文中阐述本发明的广泛方面,下面参考图2描述可用来实现本发明的一个实施例的示例性的计算机系统体系结构。图2说明通用计算机系统200,其中可执行根据本发明的一个实施例的方法的一个或多个步骤,并且其中可设有根据本发明的一个实施例的装置。计算机系统200包括处理装置、如一个或多个处理器205和210、芯片组220、主存储器225、存储器总线224以及局部I/O总线230。根据本实施例,芯片组220包含地址转换表226。地址转换表包含许多项目(未示出),便于把从外围设备235接收的虚拟地址转换成主存储器225中的物理地址。如下面进一步描述的,芯片组220可包括一个或多个集成电路,可在其上面分布各种芯片组功能,例如系统总线仲裁、I/O地址转换等。在此实例中,芯片组220起到局部I/O总线230和系统总线215与存储器总线224之间的桥接器的作用。作为桥接操作的一部分,芯片组220访问局部地址转换表226,以便将外围设备235使用的连续I/O地址空间转换到主存储器225的物理地址空间。注意,正如以下要进一步说明的,通过将地址转换表226放置对于芯片组220来说是本地的位置(例如专用片内或片外SRAM中),可以更为有效地执行来自外围设备235的入站事务。图形地址转换
本发明的各种特征被认为对于执行从如AGP兼容图形装置使用的图形地址空间到主存储器225的物理地址空间的地址转换特别有用。图3是说明其中可以实现根据本发明一个实施例改进的虚拟地址转换技术的通用计算机系统300的高级框图。计算机系统300包括处理装置、如一个或多个处理器305和310、芯片组320、主存储器225、存储器总线324、图形加速端口(AGP)总线330以及PCI总线340。在所述实施例中,芯片组320包括图形地址重定位表(GART)326。GART 326包含GART项目(以下描述),这些项目包含用于实现从图形加速器335接收的虚拟地址到主存储器325的物理地址的转换的信息。
根据本实施例,GART 326可由芯片组320局部地访问,而不是跨过存储器总线324设置在主存储器325中。芯片组320提供AGP总线330、PCI总线340与存储器总线324之间的桥接功能。作为桥接功能的一部分,芯片组320利用局部GART 326将入站读和写事务(例如,由图形加速器335始发的读和写事务)中包含的图形地址转换成主存储器325中相应的物理地址。如上所述,参考图2,通过将GART 326设置在芯片组320中,可以更为有效地处理和执行来自外围设备、如图形加速器335的入站事务。注意,与从主存储器325(例如DRAM)提取数据可能需要大约300至500毫微秒不同,从局部SRAM提取可以在大约30毫微秒或更短的时间内完成。示例性芯片组
简要描述了可采用本发明的示例性环境之后,将参考图4描述示例性芯片组实现。图4说明根据本发明的一个实施例的多个单元(例如芯片)中功能的示范性分配。在本实例中,芯片组320包括系统地址控制器(SAC)415、系统数据控制器(SDC)420、PCI扩展桥接器(PXB)425、图形扩展桥接器(GXB)410以及静态RAM(SRAM)405。
SAC 420连接到系统总线315的地址和控制部分(未示出)。SAC负责对系统总线315对适当I/O端口或主存储器325的存取进行转换和定向。它还作为入站通信量的路由代理,将其定向到对等I/O端口412或427、主存储器325或者系统总线315。
SDC连接到系统总线315上的数据信号(未示出),还通过存储器总线324和SAC 420连接到主存储器325。无论是从系统总线315到主存储器325,还是从I/O端口412或427之一到存储器或者在对等I/O端口412或427之间,所有要传递的数据都经过SDC。SAC 415和SDC 420之间的连接允许同时把数据传递至系统总线315和I/O端口412或427,从而使到各个系统代理者的可用带宽最大化。在另一个实施例中,SAC 420和SDC的功能可以组合成单个系统存储器和I/O控制器421或者分布在附加的集成电路上。
PXB 425提供I/O端口427、如F16总线与PCI总线340之间的总线协议桥接功能。单个PXB 425通常连接到一个I/O端口427并且构建两条33兆赫的32位PCI总线。或者,PXB 425可以支持单个64位PCI总线。计算机系统可包括多个PXB(通常为1至4个)。
GXB 410通过在I/O端口412与AGP总线330之间提供总线协议桥接功能,在I/O端口412、例如两条F16总线和AGP总线330之间构建桥接器。以这种方式,GXB 410为计算机系统添加了高性能的专用图形端口。可以在计算机系统中以具体例子说明多个GXB,从而构建多图形端口的工作站。GXB 410的主要功能是构建I/O端口412与AGP总线330之间的桥接器。简要地说,GXB 410实现此功能是通过从I/O端口412接收出站事务,将它们存储在内部,然后利用适当信号发送协议在AGP总线330上传递它们。相反地,GXB 410接收AGP总线330上发出的入站事务,也将它们存储在内部,转换与该入站事务相关的图形地址,并将所转换的入站事务发送到I/O端口412上。正如下面将进一步详细描述的,GXB 410通过访问存储在片内或片外SRAM 405中的GART 326来执行地址转换。通过图4的芯片组体系结构得到若干优点。首先,GXB 410与系统总线315以及相关的系统通信量隔离,从而消除了争用GXB 410资源的原因,免除了对相关的仲裁逻辑的需要。其次,因为GART 326驻留在GXB410中,地址转换处理不会影响主存储器通信量,且存储器总线324被更为有效地利用。另外,对GART 326的局部SRAM存取大约比GXB 410必须越过存储器总线324的情况快10倍。因此,最终结果是用于服务AGP总线330上事务的改进的协议桥接器。该改进的协议桥接器比上述目前的桥接技术更简单、更快速和更有效。下面将描述GXB 410的示例性内部划分。
注意,鉴于最近集成的趋势,设想可以将一个或多个GXB 410组件集成到单个集成电路(IC)上。此外,在备选实施例中,一个或多个GXB 410组件可与处理器和/或存储器集成到单个集成电路上。图形扩展桥接器的功能划分
现在将参考图5A描述将GXB 410的各种功能划分为特定单元的实例。图5A是说明根据本发明的一个实施例的图形扩展桥接器的功能单元中高级互连的简化框图。在本实例中,GXB 410包括AGP总线接口单元505、数据缓冲器单元510、事务排队单元515、GART单元520以及I/O端口接口单元525。AGP总线接口单元505可以基于66兆赫的32位PCI总线。实际应用中,为了易于实现,AGP总线接口单元505可以被进一步划分成核心PCI总线和添加AGP功能的增量逻辑。在AGP一侧,AGP总线接口单元505包括用于管理入站和出站事务之间的AGP总线330所有权的仲裁逻辑(未示出)。此外,AGP总线接口单元505提供总线控制信号和地址,使AGP数据能在AGP总线330上传递。AGP总线接口单元505还可以维持内部事务排队和数据缓冲器(未示出),以用于执行任何必需的流内重排序和用于保留某事务、直到在事务排队单元515中有足够的资源可用来服务于该事务。
正如下面进一步描述的,事务排队单元515实现用于入站和出站事务的一个或多个内部事务排队。缓冲器空间也可以在GXB 410中实现,以便支持各种数据缓冲需要。例如,数据缓冲器单元510可包括数据缓冲器,用于暂时在GXB 410内存储数据。数据缓冲器可作为用于各方向上的各事务类型的分立缓冲器或者作为公用缓冲器来实现。
如上所述,在目前的图形地址转换机制中,GART 126存储在主存储器125中。因此,在这种实现中,GART功能是靠近主存储器125来执行的。相反,根据本实施例,GART功能是在GXB 410内由GART单元520执行的。根据一个实施例,无论何时事务队列之一中驻留有效事务,GART单元就实现进栈模式并且转换事务。在这一点上,GART单元520负责从事务队列中接受入站事务并按照需要转换该事务。在所述实施例中,GART单元520耦合到包括GART 326的局部片外SRAM 405。或者,GART 326也可以存储在片内SRAM中。GART单元520还负责对SRAM 405的内容编程。在任何存取开始之前,SRAM 405应该被初始化为无效的或被编程。例如,每当启动新应用程序时,可以指定GART单元520来动态地对SRAM 405编程。可以通过从系统总线315发出编程存取请求来实现编程。
I/O端口接口单元525通过在一个或多个I/O端口上启动请求和数据传递来为一个或多个I/O端口提供接口。例如,根据一个实施例,I/O端口接口单元525对接两条F16总线。I/O端口接口单元525根据可用性和流优先权从保持事务排队单元515中保存的入站事务队列中删除事务,并通过适当的I/O端口412发送事务。如果该请求是写,则从数据缓冲器单元510中适当的缓冲器读取数据,也将其发送。对于出站事务,在保持在事务排队单元515中的适当出站事务队列中添加项目。如果需要的话,与出站事务相关的数据被交付到数据缓冲器单元510中适当的缓冲器中。
出于说明的目的,事务和与之相关的数据被划分为独立的单元。但是,还设想了各种其他替代实施例。例如,根据一个实施例,可以将相关的数据缓冲器和事务归为一组。因此,此处任何公开不应被认为把本发明限定于根据特定GXB功能划分的实施例。
图5B是说明根据本发明的一个实施例的图形扩展桥接器410的详细情况的简化框图。根据本实例,在AGP规范的精神中,高和低AGP和PCI流都被作为独立结构一直保持到I/O端口接口单元525。事务排队单元515包括AGP低优先权队列560、AGP高优先权队列565、PCI入站队列570、SAC入站控制逻辑580、SAC出站控制逻辑585以及PCI出站队列590。AGP总线接口单元505从AGP总线330接收入站AGP事务,并将它们添加到适当的队列560、565或570。例如,来自AGP总线330的入站PCI事务被AGP总线接口单元505指定到PCI入站队列570的路由。
SAC出站控制逻辑585从I/O端口412接收出站事务,并将它们排列到PCI出站队列590中。然后,PCI出站队列590被AGP总线接口单元505卸载。注意,因为出站事务不需要地址转换,所以它们不必经过GART单元520。
根据本实施例,GART单元520包括仲裁单元530、执行单元535以及回写单元540。仲裁单元530执行两个主要功能:(1)在来自配置控制单元595的AGP和PCI存取和SRAM存取(编程存取)之间仲裁;以及(2)产生SRAM地址(GART索引)。仲裁单元530的仲裁功能包括确定下一步将转换事务队列560、565和570开头那些事务中的哪一个。与事务队列560、565和570中入站事务相关的虚拟地址(在一个实施例中其宽度为40位)太宽,以致无法直接馈送到SRAM 405。因此,仲裁单元530的SRAM地址产生功能(GART索引产生功能)根据赢得仲裁的事务的虚拟地址确定SRAM地址。仲裁单元530然后可以向执行单元535发出信息,使它应该断定用于SRAM操作(例如读或写)的适当控制信号。以此方式,执行单元535可以立即发出SRAM周期,而不必进一步处理地址。或者,仲裁单元530可以向执行单元535提供SRAM地址,而执行单元535可以组装一个完整的数据包,并将其发送到SRAM 405。
最好是,SRAM 405应该以流水线方式运行,并且每个时钟,仲裁单元530都应该能够提供要转换的下一个事务的地址,并且将下一个事务的可用性传达到执行单元535。
在一个实施例中,执行单元535通过在适当时间断定和取消SRAM控制信号来启动和控制各种SRAM操作。在一个替代实施例中,执行单元535可完成执行阶段,该阶段包括处理来自仲裁单元530的输入SRAM地址,以及通过将其发送到SRAM 405来执行它。当执行单元535接收了GART项目时,它们被用来执行地址转换或被废弃。如果GART项目所对应的入站事务地址在GART孔内,则该GART项目被用于执行地址转换。但是,如果入站事务地址在GART孔(例如,它是某个物理地址)以外,则放弃该GART项目,而且不执行地址转换。在一个替代实施例中,执行单元535可以保留旧的转换或者利用转换后备缓冲器以便于地址转换。而无论如何,“转换的地址”,例如原入站事务地址或物理地址会被提供给回写单元540。
回写单元540接收执行单元535提供的SRAM数据和使用信息,配置控制单元595将该数据格式化,并为其指定到正确目的地的路由(例如,事务排队单元515中的队列的一个项目)。例如,根据所述实施例,回写单元540负责以执行单元提供的转换地址重写入站事务的虚拟地址。高级事务处理
图6是在概念上说明根据本发明一个实施例的事务处理的高级流程图。在本实例中,在步骤610,接收到事务。然后在步骤620,根据事务类型判断是否执行地址转换。如果事务是入站事务(例如,从AGP总线330接收的事务),则事务处理继续进行步骤630。否则,如果事务是出站事务(例如,从一个或多个I/O端口412接收的事务),则事务处理继续进行步骤640。在步骤630,执行转换处理。虽然为了方便,可以投机性地从SRAM 410中提取GART项目,但是不是所有的入站事务都被转换。例如,指定超出AGP范围(例如,GART孔)的虚拟地址的入站事务将不被转换。在步骤640,出站事务绕过转换处理。最后,在步骤650,在适当总线上执行事务(例如,在一个或多个I/O端口412上执行入站事务,在AGP总线330上执行出站事务)。入站PCI写事务处理
最好,如图5B所示,GXB 410被配置为处理AGP总线330上接收的AGP事务和PCI事务,以便提供向后兼容级。通过GXB 410的处理流程,对于PCI、低优先权的AGP以及高优先权的AGP流中的每一个都非常类似。因此,此处将只描述示范性PCI事务的处理。
图7是说明根据本发明一个实施例的入站PCI写事务处理的流程图。在所述实例中,在步骤710,PCI周期运行在AGP总线330上,将PCI事务递送到GXB 410,之后是递送与该PCI事务相关的数据。在步骤720,把PCI事务缓存在PCI入站缓冲器570中。一旦赢得仲裁,与该PCI事务相关的虚拟地址被转换为主存储器325中的物理地址(步骤730),下面将进一步地说明。在步骤740,用转换的地址重写PCI事务的虚拟地址。由于检索GART项目的投机性,当不要执行转换时,转换的地址可能与虚拟地址相同。在任何情况下,在步骤750,把转换的PCI事务缓存在SAC入站缓冲器580中,直到可以在适当I/O端口412上执行该事务。最后,通过在I/O端口412上执行写周期来完成转换的PCI事务。出站PCI写事备处理
如上所述,出站事务不需要由GXB 410转换。为了进一步说明这一点,现在参考图8描述与出站PCI写事务相关的处理。根据此实例,在I/O端口412上执行写请求,PCI请求被接收并送到SAC出站控制逻辑585(步骤810和820)。与PCI请求相关的数据被传递到数据缓冲器单元510。在步骤840,一旦赢得仲裁时隙,通过在AGP总线330上执行写周期来完成出站PCI写事务。在成功完成出站PCI写事务之后,可以提供写完成指示(步骤850和860)。地址转换概述
图9在概念上说明根据本发明一个实施例的图形(虚拟)至物理地址空间的转换。简要地说,在此实例中,虚拟地址915包括AGP地址920和偏移量925。例如,虚拟地址915表示图形加速器335所使用的连续逻辑地址空间中的地址。AGP地址920、它的一部分或者由AGP地址920推导的其他信息被用于从GART 905中检索适当的项目。包含在GART项目内的信息标识了包含对应于虚拟地址915的物理地址的主存储器325中的物理页面。GART项目所标识的物理页面和与虚拟地址915间的偏移量925组合,从而构成主存储器地址930。对多种页面大小的支持
根据一个实施例,GXB 410支持主存储器325中两种不同的页大小。虚拟地址915的转换取决于相应的物理地址驻留于其中的页面大小。在一个实施例中,对于落在GART孔内的所有页面使用固定的页面大小(例如,4千字节或4兆字节),并且在系统引导期间,页面大小的指示被存储在GXB 410的控制寄存器中。目前,对于GART项目,AGP程序设计模型是采用4千字节页面设计的。通过允许更大的页面大小(例如,2兆字节、4兆字节等),GXB 410与高性能计算机系统兼容。
虽然上述GART孔中的所有页面不是一种大小就是另一种大小,但是在替代实施例中,GART孔可以同时包括不同大小的页面。在本实施例中,地址转换需要被动态地控制,如下所述。
图10A说明可用于查阅驻留在主存储器中的4千字节页面中的数据的示范性虚拟地址格式。根据本实施例,虚拟地址915是40位宽。AGP地址1020包含28位而偏移量1025包含12位。
图10B说明可用于查阅驻留在主存储器中的4兆字节页面中的数据的示范性虚拟地址格式。根据本实施例,虚拟地址915也是40位宽。但是,AGP地址1021被减少到18位而偏移量1025被增加到22位。设想各种其他的页面大小也是适用的。
图11A说明支持地址转换到主存储器中4千字节页面的示范性GART项目格式1105。在本实例中,项目1105有32位宽,包括奇偶位1115、相干位1120、有效位1125、新页面地址1130以及保留区1110。每个项目涵盖一个4千字节的页面。一兆字节就足以保存256K个项目或者总计1GB的用于4千字节页面的可转换空间。
奇偶位1115涵盖整个GART项目1105。它可以由硬件产生,经计算,使得包括奇偶位1115的1的总数合计为偶数或奇数。
相干位1120指示来自图形卡的通信量是否需要与系统总线315相干。下文会进一步讨论相干性。
有效位1125指示SRAM 405是否包含用于此项目的有效数据。如果有效位1125指示该数据对于该项目是有效的,则可以利用该项目进行地址转换。
在此实例中,新页面地址1130是24位宽。新页面地址1130包含主存储器325中包含所需物理地址的4千字节物理页面的起始地址。
图11B说明支持地址转换至主存储器中的4兆字节页面的示范GART项目格式。在此实例中,如上所述,项目1106是32位宽,包括奇偶位1116、相干位1121、有效位1126、新页面地址1131以及保留区1111和1136。每个项目涵盖一个4兆字节的页面。
如上所述,奇偶位1116涵盖整个GART项目1106,可以经计算使得包括奇偶位1116的1的总数合计为偶数或奇数。
相干位1121指示来自图形卡的通信量是否需要与系统总线315相干。下面将进一步讨论相干性。
有效位1126指示SRAM 405是否包含可供正讨论的项目使用的有效数据。如果有效位1126指示该数据对于该项目是有效的,则可以利用该项目进行地址转换。
在此实例中,新页面地址1131是14位宽。新页面地址1131包含主存储器325中的包含所需物理地址的4兆字节物理页面的起始地址。
在替代实施例中,位和字段的相关位置安排可能不同于图11A和图11B的实例所示。再者,在替代实施例中,项目的格式还可以包括指示目的页面大小(例如4千字节或4兆字节)的页面模式位,从而提供地址转换处理的动态控制。以此方式,可以同时支持一种以上的不同页面大小。相干性
来自图形卡(例如图形加速器335)的通信量可能要与系统总线325相干,也可能不要与之相干。根据一个实施例,相干性可在逐页基础上选择。出于公开的目的,“相干性”指地址出现在系统总线325上,使得一个或多个处理器305和310可以监听它们的高速缓存来获取该地址。如果纹理映射或其他图像数据被处理器标为写组合(WC),则该数据是不相干的。处理器的WC缓存器中命中的系统总线325上的地址不会被监听。或者,应用程序可能知道主存储器325中的数据未被处理器使用(例如,它来自磁盘),并且希望图形卡提取数据而不占用系统总线325的带宽,所以强制该存取为不相干。
如上所述,对于AGP范围中命中的所有AGP类型的存取,每个GART项目都有一位来确定该地址是否相干。对于AGP范围外的AGP类型的存取,可以从GXB 410的配置寄存器中读取信息(例如一个位相干指示符)来确定相干性。注意,相干性或不相干性适用于仅采用AGP协议的存取。采用PCI协议的存取始终是相干地进行的,无论它们是否命中转换表。
在上述说明书中,已经参考特定实施例描述了本发明。但是,显然,在不违背本发明更广精神和范围的前提下可以对其进行各种修改和变化。因此,说明书和附图应被看作说明性而非限定性的意义。