在系统逻辑器件中使用随机存取存储器来优化计算机系统中的 数据流的方法和装置 【发明领域】
本发明属于计算机系统的领域。更具体地说,本发明属于通过系统逻辑器件优化数据流的领域。
【发明背景】
台式计算机系统常常使用图形控制器来将3D图像显示在监视器上。该图形控制器接收关于在处理器上运行的驱动器软件画什么的指令。该处理器和图形控制器常常用系统逻辑器件(通常叫做“芯片组”)耦连在一起。对于正被用于计算机辅助设计或用于3D游戏的系统来说,该处理器和图形控制器之间的命令通信量可能是相当可观的。与命令通信被通过存储器路由相比起来,处理器和图形控制器之间的通信路径基本上经常都保持较宽的命令带宽,因为为了传送同样的命令,该存储器系统必须保持两倍的带宽。这是因为该命令必须被从处理器写进存储器,随后又必须被该图形控制器从存储器读出来。
一种针对有限存储器带宽问题的技术方案是将命令数据直接从处理器写入图形器件,排除写入存储器和从存储器读出。但是,当命令数据由处理器直接写入图形控制器时,如果该图形控制器和系统逻辑器件的总的缓冲容量被消耗了,则处理器周期就会被丢弃。当出现这种情形时,该处理器在能够继续进行之前就被迫等待着缓冲空间清空。因为图形驱动器可能需要执行复杂地计算,而且这些计算可能被迫等待着简单的命令写操作,所以就经历处理能力的相当大的浪费。
如果增大该系统逻辑器件中的缓冲空间量,则该处理器将不大会经历等待缓冲空间清空。该系统逻辑器件可以包括基本高速缓存,它可以被用来缓冲足够的命令数据,从而使该命令可被图形控制器直接从该系统逻辑器件读取。但是,因为该系统逻辑器件没有办法知道对于被写入该缓冲器的数据该图形控制器或某个其它的系统代理(systemagent)在将来的某个时候是否再次需要,所以这一技术方案就有下述的问题:要求所有被写入缓冲器的数据还要被写出到系统存储器,从而消极地影响了整个计算机系统的性能。
附图简述
从下面给出的详细描述和本发明实施例的附图中将会较全面地理解本发明,但不应认为它们将本发明限制在描述的具体实施例上,而仅仅是为了解释和理解。
图1是包括系统逻辑器件高速缓存的系统的一个实施例的方框图,该高速缓存存储一次性信息。
图2是一种使用系统逻辑器件中的随机存取存储器来优化计算机系统中的数据流的方法的一个实施例的流程图。
详细描述
一种用于优化在计算机系统中处理器和系统部件之间的数据流的装置的一个实施例,包括在系统逻辑器件中用于存储一次性信息的高速缓存。在此所使用的术语“一次性信息”被定义为这样的信息,该信息意思是仅被系统部件读取一次。也就是,一旦该“一次性信息”已被系统部件使用,它就不需被该计算机系统保留。一旦包含一次性信息的特定高速缓存条目(cache entry)被系统部件读取,则那个高速缓存条目就可被重写。因为一次性信息的意思是只读一次,因而在重写该高速缓存条目之前就不需该高速缓存将该信息写到系统存储器中,从而系统性能得到改善。
图1是包括被嵌入在系统逻辑器件120中的高速缓存130的实施例的系统100的一方框图。该系统逻辑器件120经由处理器总线115与处理器110耦连。该系统逻辑器件120还与系统存储器140和图形控制器150耦连。该图形控制器150经由图形总线155与该系统逻辑器件120耦连。该图形总线155可以是加速图形端口(AGP)总线或能将图形部件与系统逻辑器件耦连的任意其它总线。
该系统逻辑器件120包括处理器总线接口121,该处理器总线接口通过该处理器总线115提供与该处理器110的通信。该系统逻辑器件120还包括图形总线接口单元125,该图形总线接口单元通过该图形总线155提供与该图形控制器150的通信。该系统逻辑器件120通过存储控制器124确定对该系统存储器140的控制并且借助于存储控制器124与该系统存储器140通信。
如先前所述,该系统逻辑器件120包括高速缓存130。该高速缓存130包括很多条目。对于本实施例来说,每个条目能存储一次性信息或非一次性信息。高速缓存管理单元131确定特定条目是否包含一次性或非一次性信息。用于本实施例的高速缓存的大小近似为64Kb,但使用其它的高速缓存大小的实施例也是可以的。
对于本讨论,该处理器110正运行图形驱动器,该驱动器正将命令数据流发送到该图形控制器150。该命令数据被通过处理器总线115从该处理器110传送到该系统逻辑器件120。该命令数据被该处理器接口单元121接收并放置于该高速缓存130中。包括在命令数据流中的是一段存储在高速缓存条目132(标示为非一次性高速缓存条目)中的非一次性信息和一段存储在高速缓存条目133(标示为一次性高速缓存条目)中的一次性信息。
对于本例子实施例来说,该高速缓存管理单元131通过对特定条目的地址与存储在一对一次性地址空间定义寄存器(definitionregister)122和123中的地址进行比较来确定那个特定的高速缓存条目是否包含一次性数据。这些寄存器的内容定义了一次性信息的地址空间。具有落在由定义寄存器122和123定义的地址范围内的目的地址的任何信息都被该高速缓存管理单元131假定是一次性的。使用通过该处理器总线115与一次性信息一起被传送的事务属性(transaction attribute)的其它实施例也是可以的。该属性可以与该一次性信息一起被存储在该高速缓存中,而且该高速缓存管理单元可查看该属性以便确定高速缓存条目是否包含一次性信息。
运行在处理器110上的图形驱动器能知道特定命令将是否需要被读取不止一次。如果那个特定命令并不需要不止一次地读取,则那个命令就被指定为一次性的。“一次性”的标示被通过前面描述的技术之一传送到该系统逻辑器件120。
一旦该非一次性和一次性的命令被存储在该高速缓存130中时,该命令就可以被该图形控制器150读取。在该图形控制器150已经读取了该一次性高速缓存条目133的内容后,该高速缓存管理单元131就可允许那个条目被其它的数据重写,而毋需首先将该一次性信息写入系统存储器140。另一方面,在该高速缓存管理单元131允许非一次性的高速缓存条目132被重写之前,该非一次性信息则必须写出到该系统存储器140中,从而使得该非一次性信息对于该图形器件150或其它的系统部件都仍然可用。
虽然没有要求应该将一次性信息写入系统存储器140,但某些实施例却可允许该系统逻辑器件120将一次性信息写入该系统存储器140,以便在该处理器110另外需要等待高速缓存空间变为可用时,在该高速缓存130中为更多的数据腾出地方。
以上结合图1的讨论涉及至图形控制器的处理器流命令数据。但是,数据流动发生在其它系统部件之间的其它实施例也是可以的。
图2是一种使用系统逻辑器件中的随机存取存储器来优化计算机系统中的数据流的方法的一个实施例的流程图。在方框210,从处理器接收一行信息(line of information)。在方框220,该行信息被存入高速缓存中。在方框230,确定该行信息是否是一次性的。如果该行信息不是一次性的,则在方框240就将该行信息写入系统存储器。但是,如果该行信息是一次性的,则在方框250进一步确定该行信息是否已被系统器件读取。一旦该行信息已被系统器件读取,则在方框260,该包含该行信息的高速缓存条目就允许被重写,而毋需首先将该行信息写入系统存储器中。
在前述的说明中,本发明已借助其具体的示范性实施例作了描述。但是,很显然的是,在不偏离所附权利要求书阐述的较宽的精神和范围的情况下,可对其作出各种修改和变化。因此,应在说明性而不是限制性意义上来关注该说明和附图。
在该说明中对“一实施例”,“一个实施例”,“某些实施例”或“其它的实施例”的参考意思是结合该实施例所描述的特定特点、结构或特性都被包括在本发明的至少某些实施例中,但未必在本发明的所有的实施例中。在多处出现的“一实施例”、“一个实施例”、或“某些实施例”指的未必都是相同实施例。