CN1262931C - 在系统逻辑器件中使用随机存取存储器来优化计算机系统中的数据流的方法和装置 - Google Patents
在系统逻辑器件中使用随机存取存储器来优化计算机系统中的数据流的方法和装置 Download PDFInfo
- Publication number
- CN1262931C CN1262931C CNB018229433A CN01822943A CN1262931C CN 1262931 C CN1262931 C CN 1262931C CN B018229433 A CNB018229433 A CN B018229433A CN 01822943 A CN01822943 A CN 01822943A CN 1262931 C CN1262931 C CN 1262931C
- Authority
- CN
- China
- Prior art keywords
- information
- cache
- disposable
- address
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
Abstract
一种用于优化在计算机系统中处理器和系统部件之间的数据流的装置的一个实施例,包括在系统逻辑器件中用于存储一次性信息的高速缓存。术语“一次性信息”被定义为这样的信息,该信息意思是只被系统部件读取一次。一旦包含一次性信息的特定高速缓存条目被系统部件读取,那个高速缓存条目就可以被重写。因为一次性信息意味着只被读取一次的,因而在重写该高速缓存条目之前,就不需要该高速缓存将该信息写入系统存储器。
Description
发明领域
本发明属于计算机系统的领域。更具体地说,本发明属于通过系统逻辑器件优化数据流的领域。
发明背景
台式计算机系统常常使用图形控制器来将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,该包含该行信息的高速缓存条目就允许被重写,而毋需首先将该行信息写入系统存储器中。
在前述的说明中,本发明已借助其具体的示范性实施例作了描述。但是,很显然的是,在不偏离所附权利要求书阐述的较宽的精神和范围的情况下,可对其作出各种修改和变化。因此,应在说明性而不是限制性意义上来关注该说明和附图。
在该说明中对“一实施例”,“一个实施例”,“某些实施例”或“其它的实施例”的参考意思是结合该实施例所描述的特定特点、结构或特性都被包括在本发明的至少某些实施例中,但未必在本发明的所有的实施例中。在多处出现的“一实施例”、“一个实施例”、或“某些实施例”指的未必都是相同实施例。
Claims (17)
1.一种装置,包括:
处理器接口单元;和
高速缓存,用来存储从与该处理器接口单元耦连的处理器接收的信息,该高速缓存用来存储一次性信息,如果该一次性信息已被读取了至少一次,则毋需曾将该一次性信息传送给系统存储器,该一次性信息也可以被重写,该高速缓存进一步包括高速缓存管理单元,用于通过对一次性信息高速缓存条目地址与定义一次性信息的地址空间的地址范围进行比较,来确定该高速缓存条目是否包含一次性信息。
2.权利要求1的装置,其中该高速缓存还用来存储非一次性信息。
3.权利要求2的装置,还包括总线接口单元,用来允许与该总线接口单元耦连的器件访问该高速缓存。
4.权利要求3的装置,其中一旦与该总线接口单元耦连的该器件读取该高速缓存条目和如果该高速缓存管理逻辑确定该高速缓存条目包含一次性信息,则该高速缓存管理单元就允许该高速缓存条目被重写。
5.权利要求4的装置,还包括系统存储器控制器。
6.权利要求5的装置,其中如果该高速缓存管理单元确定该高速缓存条目不包含一次性信息,则该高速缓存管理单元就用来使该高速缓存条目的内容被传送到系统存储器控制器,以便传送到系统存储器。
7.权利要求6的装置,还包括至少一个可编程的寄存器,用来存储定义一次性地址空间的地址。
8.一种系统,包括:
处理器;和
与该处理器耦连的系统逻辑器件,该系统逻辑器件包括:
处理器接口单元,和
高速缓存,用来存储从与该处理器接口单元耦连的处理器接收的信息,该高速缓存用来存储一次性信息,如果该一次性信息已被读取了至少一次,则毋需曾将该一次性信息传送给系统存储器,该一次性信息也可以被重写,该高速缓存进一步包括高速缓存管理单元,用于通过对一次性信息高速缓存条目地址与定义一次性信息的地址空间的地址范围进行比较,来确定该高速缓存条目是否包含一次性信息。
9.权利要求8的系统,其中该高速缓存还存储非一次性信息。
10.权利要求9的系统,其中该系统逻辑器件还包括总线接口单元。
11.权利要求10的系统,还包括与该系统逻辑器件总线接口单元耦连的器件。
12.权利要求11的系统,其中,一旦该与总线接口单元耦连的器件读取该高速缓存条目和如果该高速缓存管理逻辑确定该高速缓存条目包含一次性信息,则该高速缓存管理单元就允许该高速缓存条目被重写。
13.权利要求12的系统,其中该系统逻辑器件还包括系统存储器控制器。
14.权利要求13的系统,还包括与该系统存储器控制器耦连的系统存储器。
15.权利要求14的系统,如果该高速缓存管理单元确定该高速缓存条目不包含一次性信息,则该高速缓存管理单元就用来使该高速缓存条目的内容传送到该系统存储器控制器,以便传送到该系统存储器。
16.权利要求15的系统,其中该系统逻辑器件还包括至少一个可编程的寄存器,用于存储定义一次性地址空间的地址。
17.一种方法,包括:
从处理器接收一行信息;
将该行信息存储在高速缓存中;
通过对该行信息的地址与定义一次性信息地址空间的地址范围进行比较,确定该行信息是否是一次性的;及
如果确定为是一次性的,一旦该行信息已被系统器件读取,则毋需曾将该行信息写入系统存储器中,就重写该行信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/751,602 US7017008B2 (en) | 2000-12-29 | 2000-12-29 | Method and apparatus for optimizing data streaming in a computer system utilizing random access memory in a system logic device |
US09/751,602 | 2000-12-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1502077A CN1502077A (zh) | 2004-06-02 |
CN1262931C true CN1262931C (zh) | 2006-07-05 |
Family
ID=25022736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018229433A Expired - Fee Related CN1262931C (zh) | 2000-12-29 | 2001-12-20 | 在系统逻辑器件中使用随机存取存储器来优化计算机系统中的数据流的方法和装置 |
Country Status (9)
Country | Link |
---|---|
US (2) | US7017008B2 (zh) |
KR (1) | KR100569746B1 (zh) |
CN (1) | CN1262931C (zh) |
AU (1) | AU2002232859A1 (zh) |
DE (1) | DE10197135T1 (zh) |
GB (1) | GB2387697B (zh) |
HK (1) | HK1058413A1 (zh) |
TW (1) | TWI227830B (zh) |
WO (1) | WO2002054256A2 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7062610B2 (en) * | 2002-09-30 | 2006-06-13 | Advanced Micro Devices, Inc. | Method and apparatus for reducing overhead in a data processing system with a cache |
US7155572B2 (en) * | 2003-01-27 | 2006-12-26 | Advanced Micro Devices, Inc. | Method and apparatus for injecting write data into a cache |
US7334102B1 (en) | 2003-05-09 | 2008-02-19 | Advanced Micro Devices, Inc. | Apparatus and method for balanced spinlock support in NUMA systems |
US7213107B2 (en) * | 2003-12-31 | 2007-05-01 | Intel Corporation | Dedicated cache memory |
US7366851B2 (en) * | 2004-08-19 | 2008-04-29 | International Business Machines Corporation | Processor, method, and data processing system employing a variable store gather window |
US7437510B2 (en) * | 2005-09-30 | 2008-10-14 | Intel Corporation | Instruction-assisted cache management for efficient use of cache and memory |
US7461209B2 (en) * | 2005-12-06 | 2008-12-02 | International Business Machines Corporation | Transient cache storage with discard function for disposable data |
WO2007076630A1 (en) * | 2005-12-30 | 2007-07-12 | Intel Corporation | A computer-implemented method and system for improved data flow analysis and optimization |
US20080229325A1 (en) * | 2007-03-15 | 2008-09-18 | Supalov Alexander V | Method and apparatus to use unmapped cache for interprocess communication |
US8706979B2 (en) * | 2007-12-30 | 2014-04-22 | Intel Corporation | Code reuse and locality hinting |
US8108614B2 (en) * | 2007-12-31 | 2012-01-31 | Eric Sprangle | Mechanism for effectively caching streaming and non-streaming data patterns |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4197580A (en) * | 1978-06-08 | 1980-04-08 | Bell Telephone Laboratories, Incorporated | Data processing system including a cache memory |
US4414644A (en) | 1981-04-03 | 1983-11-08 | International Business Machines Corporation | Method and apparatus for discarding data from a buffer after reading such data |
DE3784424T2 (de) | 1986-06-27 | 1993-09-23 | Ibm | Seitenaustauschsupervisor. |
US5790137A (en) | 1995-10-05 | 1998-08-04 | Apple Computer, Inc. | System and method for using a frame buffer in cached mode to increase bus utilization during graphics operations |
KR100188012B1 (ko) | 1996-01-12 | 1999-06-01 | 윤종용 | 캐시 메모리의 사용 모드 설정 장치 |
US6289434B1 (en) * | 1997-02-28 | 2001-09-11 | Cognigine Corporation | Apparatus and method of implementing systems on silicon using dynamic-adaptive run-time reconfigurable circuits for processing multiple, independent data and control streams of varying rates |
US6122708A (en) * | 1997-08-15 | 2000-09-19 | Hewlett-Packard Company | Data cache for use with streaming data |
-
2000
- 2000-12-29 US US09/751,602 patent/US7017008B2/en not_active Expired - Fee Related
-
2001
- 2001-11-20 TW TW090128727A patent/TWI227830B/zh not_active IP Right Cessation
- 2001-12-20 CN CNB018229433A patent/CN1262931C/zh not_active Expired - Fee Related
- 2001-12-20 GB GB0317005A patent/GB2387697B/en not_active Expired - Fee Related
- 2001-12-20 KR KR1020037008822A patent/KR100569746B1/ko active IP Right Grant
- 2001-12-20 WO PCT/US2001/050414 patent/WO2002054256A2/en active IP Right Grant
- 2001-12-20 DE DE10197135T patent/DE10197135T1/de not_active Withdrawn
- 2001-12-20 AU AU2002232859A patent/AU2002232859A1/en not_active Abandoned
-
2004
- 2004-02-18 HK HK04101157A patent/HK1058413A1/xx not_active IP Right Cessation
-
2006
- 2006-01-03 US US11/326,997 patent/US7313653B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR100569746B1 (ko) | 2006-04-11 |
CN1502077A (zh) | 2004-06-02 |
WO2002054256A3 (en) | 2003-04-03 |
WO2002054256A2 (en) | 2002-07-11 |
GB2387697A (en) | 2003-10-22 |
TWI227830B (en) | 2005-02-11 |
GB0317005D0 (en) | 2003-08-27 |
KR20030065584A (ko) | 2003-08-06 |
AU2002232859A1 (en) | 2002-07-16 |
GB2387697B (en) | 2005-02-16 |
US7313653B2 (en) | 2007-12-25 |
US20020087796A1 (en) | 2002-07-04 |
US20060117144A1 (en) | 2006-06-01 |
HK1058413A1 (en) | 2004-05-14 |
US7017008B2 (en) | 2006-03-21 |
DE10197135T1 (de) | 2003-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5420980A (en) | Methods and apparatus for graphics pipeline relative addressing in a multi-tasking windows system | |
CN106683158B (zh) | 一种GPU纹理映射非阻塞存储Cache的建模系统 | |
US6629211B2 (en) | Method and system for improving raid controller performance through adaptive write back/write through caching | |
US7313653B2 (en) | Method and apparatus for optimizing data streaming in a computer system utilizing random access memory in a system logic device | |
US6476808B1 (en) | Token-based buffer system and method for a geometry pipeline in three-dimensional graphics | |
US20090077320A1 (en) | Direct access of cache lock set data without backing memory | |
US5767856A (en) | Pixel engine pipeline for a 3D graphics accelerator | |
US20080028181A1 (en) | Dedicated mechanism for page mapping in a gpu | |
CN106484628A (zh) | 基于事务的混合存储器模块 | |
US5682522A (en) | Shared memory architecture of graphics frame buffer and hard disk cache | |
CN104881248B (zh) | 面向ssd的文件系统中自适应直接io加速方法 | |
US6831652B1 (en) | Method and system for storing graphics data | |
CN1344403A (zh) | 备用期间访问另一个数据处理单元的存储器的数据处理单元 | |
US20020070941A1 (en) | Memory system having programmable multiple and continuous memory regions and method of use thereof | |
KR20090063401A (ko) | 라이트 백 동작을 수행하는 캐시 메모리와 이를 포함하는시스템 | |
CN1896971B (zh) | 操作系统辅助磁盘高速缓存系统和方法 | |
CN101539889B (zh) | 提高存储性能 | |
US5761709A (en) | Write cache for servicing write requests within a predetermined address range | |
JPH08115289A (ja) | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム | |
CN112465689A (zh) | 基于可见显存交换区的gpu不可见显存管理方法及系统 | |
CN106980475A (zh) | 一种分布式集群系统 | |
US20050174355A1 (en) | Bin pointer and state caching apparatus and method | |
CN114461406A (zh) | DMA OpenGL优化方法 | |
CN113886287A (zh) | 一种基于SoC的自适应实时缓存系统及方法 | |
CN113495687A (zh) | 有效组织和访问可压缩数据的技术 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060705 Termination date: 20171220 |
|
CF01 | Termination of patent right due to non-payment of annual fee |