CN1293481C - 直接访问高速缓存的数据的系统和方法 - Google Patents

直接访问高速缓存的数据的系统和方法 Download PDF

Info

Publication number
CN1293481C
CN1293481C CNB2003101203823A CN200310120382A CN1293481C CN 1293481 C CN1293481 C CN 1293481C CN B2003101203823 A CNB2003101203823 A CN B2003101203823A CN 200310120382 A CN200310120382 A CN 200310120382A CN 1293481 C CN1293481 C CN 1293481C
Authority
CN
China
Prior art keywords
data
speed cache
cache
computer system
snoop request
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
Application number
CNB2003101203823A
Other languages
English (en)
Other versions
CN1519730A (zh
Inventor
杰弗里·D.·布朗
迈克尔·N.·戴
查尔斯·R.·约翰斯
詹姆斯·A.·卡里
戴维·J.·施佩
张光赏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1519730A publication Critical patent/CN1519730A/zh
Application granted granted Critical
Publication of CN1293481C publication Critical patent/CN1293481C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Abstract

这里提供的是直接访问高速缓存的数据的系统和方法。数据传送请求被发送至系统总线,以将数据传送至系统存储器中。数据传送请求被探听。探听请求被发送至高速缓存中。确定探听请求在高速缓存中是否具有有效记录项。当确定探听请求在高速缓存中具有有效记录项时,数据便被捕捉并发送至高速缓存以进行更新。

Description

直接访问高速缓存的数据的系统和方法
技术领域
本发明通常涉及存储器管理技术,特别涉及使用带有锁定功能的高速缓存直接访问高速缓存的数据。
背景技术
在大型配置的计算机系统中,应用数据从一个系统存储器被传送到计算机引擎以进行计算。然后被计算过的数据将在同组被计算过的数据能够被其他计算引擎重新使用之前被传回到系统存储器中。在大型系统配置中,存在着存储器层次结构,其中包括系统存储器和一个或多个高速缓存。
一般来讲,一级高速缓存(L1高速缓存)紧挨着一个特定的计算引擎并且通常不被系统中其他计算引擎所共享。二级高速缓存(L2高速缓存)通常被系统中其他计算引擎所共享。可以有更多级的高速缓存,这取决于计算机系统的体系结构和/或复杂性。
通常,向和从系统存储器传送数据所花费的时间对于系统性能来说已成为一个大问题。如果系统设计没有协调好,计算引擎将花费多数时间来等待数据准备好。
所以,需要一种在计算机系统中直接访问高速缓存的数据的系统和方法。
发明内容
本发明提供了直接访问高速缓存的数据的系统和方法。数据传送请求被发送至系统总线,以将数据传送至系统存储器中。数据传送请求被探听。探听请求被送至高速缓存中。确定探听请求在高速缓存中是否具有有效记录项。当确定探听请求在高速缓存中具有有效记录项时,数据被捕捉并发送至高速缓存以进行更新。
本发明提供了一种计算机系统,具有一个或多个处理器和系统存储器,该计算机系统包括:第一处理器;与第一处理器相连的高速缓存;第一总线控制器;与第一总线控制器和系统存储器相连的系统总线,其中第一总线控制器发送数据传送请求以将数据传送到系统总线;与高速缓存和系统总线相连的第二总线控制器,第二总线控制器探听数据传送请求,并且向高速缓存发送探听请求;确定探听请求在高速缓存中是否具有有效记录项的探测装置;和数据传输电路,用于当确定探听请求在高速缓存中具有有效记录项时,从系统总线中捕捉数据,并直接向高速缓存发送数据以进行更新,以保持所述高速缓存中的有效记录项,从而通过所述高速缓存中的有效记录项就可以实现对所述数据的后续直接访问。
本发明还提供了一种在计算机系统中直接访问高速缓存的数据的方法,该方法包括下列步骤:将数据传送请求发送到系统总线以向系统存储器发送数据;探听数据传送请求;向高速缓存发送探听请求;确定探听请求在高速缓存中是否具有有效记录项;和当确定探听请求在高速缓存中具有有效记录项时,捕捉数据并直接向高速缓存发送数据以进行更新,以保持所述高速缓存中的有效记录项,从而通过所述高速缓存中的有效记录项就可以实现对所述数据的后续直接访问。
附图说明
为了更完整地了解本发明及其优点,参阅下列结合附图的描述,其中;
图1的模块图示出了一个计算机系统,该系统具有直接访问高速缓存的数据的单个处理器;
图2的模块图示出了一个计算机系统,该系统具有2个直接访问高速缓存的数据的处理器;
图3为一流程图,示出了图1中计算机系统的操作;而
图4为一流程图,示出了图2中计算机系统的操作。
具体实施方式
下列讨论中,提供大量具体的细节以帮助彻底了解本发明。然而,很显然对于本领域技术人员来说,即使没有这些具体细节,本发明仍可实行。在其他例子中,以示意图或模块图的形式对众所周知的部件进行说明,以免不必要的细节使本发明的理解产生模糊。
另外值得注意的是,除非另有说明,这里所述的功能可用硬件或软件或它们的结合来运行。然而,在一优选实施列中,除非另有说明,这些功能是由处理器,如计算机或电子数据处理器按照编码,如计算机程序编码,软件和/或被编码来执行这些功能的集成电路来执行的。
参照附图1,附图标记100一般指的是具有直接访问高速缓存的数据的单一处理器的计算机系统。计算机系统100包括第一总线控制器102,系统总线104,系统存储器106,第二总线控制器108,高速缓存110和处理器112。第一总线控制器102与系统总线104相连。系统总线104与系统存储器106和第二总线控制器108相连。第二总线控制器108与高速缓存110相连。高速缓存110与处理器112相连。
第一总线控制器102被构造成通过连接114接收一个通过连接116和118将数据从第一总线控制器102传送到系统存储器106的请求。第一总线控制器102首先通过连接116向系统总线104发送请求。第二总线控制器108通过连接120对请求进行探听。接着第二总线控制器108通过连接122向高速缓存110发送探听请求。高速缓存110最好包括一个高速缓存控制器(没显示)来处理此探听请求。高速缓存控制器确定高速缓存110是否具有针对该探听请求的有效记录项。如果没有针对该探听请求的有效记录项,探听请求便被拒绝。因此,数据通过连接124在系统总线104上传送,并被最终存储在系统存储器106中。
如果存在针对该探听请求的有效记录项,那么,当数据正通过连接124在系统总线上传送时,第二总线控制器108缓存来自系统总线104的数据。接着第二总线控制器108向高速缓存110发送数据以进行更新。在这种情况下,数据不被存储在系统存储器中。高速缓存110最好包括有效记录项,如有效记录项126和128的锁定高速缓存管线。
现参照图2,模块图示出了具有两个直接访问高速缓存的数据的处理器的计算机系统200。计算机系统200包括图1中计算机系统100的所有部件,并进一步包括第一和第二处理器202和204,本地存储器206和直接存储器访问控制器(DMAC)208。第一处理器202与高速缓存110相连。在高速缓存110,第一和第二总线控制器102和108,系统总线104以及系统存储器106之间的连接与图1所示的相同。连接114,116,118,120和122也是如此。
第二处理器204与本地存储器206和DMAC 208相连。DMAC208也与第一总线控制器102相连。
第二处理器204建立DMA传送,其中数据通过连接210从本地存储器206传送到系统存储器106。接下来,DMAC 208向第一总线控制器102发送将数据从本地存储器206传送到系统存储器106的请求。这是通过连接114完成的。然后第一总线控制器102通过连接116向系统总线104发送请求。第二总线控制器108通过连接120对请求实施探听。接着,第二总线控制器108通过连接122向高速缓存110发送探听请求。高速缓存110最好包括高速缓存控制器(没有显示)以处理此探听请求。高速缓存控制器确定高速缓存110是否具有针对此探听请求的有效记录项。如果没有针对此探听请求的有效记录项,探听请求被拒绝。所以,通过连接124在系统总线104上传送数据,并且数据最终被存储在系统存储器106中。
如果存在针对此探听请求的有效记录项,数据从本地存储器206中被读取。当数据正通过连接124在系统总线上被传送时,第二总线控制器108从系统总线104上捕捉到数据。接着第二总线控制器108向高速缓存110发送数据以进行更新。在这种情况下,数据不被存储在系统存储器中。
计算机系统200可被概括为具有多个处理器的计算机系统。那样,附加高速缓存(没显示)和附加总线控制器(没显示)可被连接在每个附加处理器(没显示)和系统总线104之间,其连接方式与处理器202和系统总线104之间的连接相似。
在图3中,流程图300被用来说明图1中计算机系统100的操作。在步骤302中,第一总线控制器102首先向系统总线104发送数据传送请求,以向系统存储器106传送数据。在步骤304中,第二总线控制器108对数据传送请求进行探听。在步骤306中,第二总线控制器108向高速缓存110发送探听请求。在步骤308中,数据在系统总线104上被传送。高速缓存110最好包括高速缓存控制器(没显示)来处理此探听请求。在步骤310中,高速缓存控制器确定探听请求是否有效。例如,高速缓存110可被搜寻以寻找此探听请求的有效记录项。如果此探听请求没有有效记录项,探听请求被拒绝。因此,数据在步骤314中最终被存储在系统存储器106中。
如果存在针对此探听请求的有效记录项,第二总线控制器108在步骤312中从系统总线104上捕捉到数据,并向高速缓存110发送数据以进行更新。在这种情况下,数据不被存储在系统存储器中。
在图4中,流程图400被示出以说明图2中计算机系统200的操作。在步骤402中,第二处理器204建立DMA传送,以将数据从本地存储器206传送到系统存储器106。在步骤404中,DMAC208向第一总线控制器102发送数据传送请求,以将数据从本地存储器206传送到系统存储器106。步骤302到步骤314与参照图3所述的实质相同。
从上述描述中可知,本发明的优选实施列在不改变其宗旨的前提下,可做各种修改和改变。该描述只用于图解说明,不应被理解为对本发明的限制。本发明的范围只受下列权利要求的文字描述的限定。

Claims (14)

1.一种计算机系统,具有一个或多个处理器和系统存储器,该计算机系统包括:
第一处理器;
与第一处理器相连的高速缓存;
第一总线控制器;
与第一总线控制器和系统存储器相连的系统总线,其中第一总线控制器发送数据传送请求以将数据传送到系统总线;
与高速缓存和系统总线相连的第二总线控制器,第二总线控制器探听数据传送请求,并且向高速缓存发送探听请求;
确定探听请求在高速缓存中是否具有有效记录项的探测装置;和
数据传输电路,用于当确定探听请求在高速缓存中具有有效记录项时,从系统总线中捕捉数据,并直接向高速缓存发送数据以进行更新,以保持所述高速缓存中的有效记录项,从而通过所述高速缓存中的有效记录项就可以实现对所述数据的后续直接访问。
2.权利要求1的计算机系统,进一步包括:
第二处理器;
与第二处理器和第一总线控制器相连的直接存储器访问控制器DMAC。
3.根据权利要求2的计算机系统,进一步包括与第二处理器相连的本地存储器。
4.根据权利要求3的计算机系统,其中第二处理器被构造成建立直接存储器访问DMA传送,借以将数据从本地存储器传送到系统存储器。
5.根据权利要求2的计算机系统,其中DMAC被构造成向第一总线控制器发送数据传送请求。
6.根据权利要求1的计算机系统,进一步包括用于当确定探听请求在高速缓存中没有有效记录项时,在系统存储器中存储数据的装置。
7.根据权利要求1的计算机系统,进一步包括高速缓存控制器。
8.根据权利要求7的计算机系统,其中所述高速缓存控制器包括用于确定探听请求在高速缓存中是否具有有效记录项的所述探测装置。
9.根据权利要求1的计算机系统,其中高速缓存包括用于有效记录项的锁定高速缓存管线。
10.一种在计算机系统中直接访问高速缓存的数据的方法,该方法包括下列步骤:
将数据传送请求发送到系统总线以向系统存储器发送数据;
探听数据传送请求;
向高速缓存发送探听请求;
确定探听请求在高速缓存中是否具有有效记录项;和
当确定探听请求在高速缓存中具有有效记录项时,捕捉数据并直接向高速缓存发送数据以进行更新,以保持所述高速缓存中的有效记录项,从而通过所述高速缓存中的有效记录项就可以实现对所述数据的后续直接访问。
11.根据权利要求10的方法,进一步包括直接访问高速缓存的数据的步骤。
12.根据权利要求10的方法,进一步包括当确定探听请求在高速缓存中没有有效记录项时,在系统存储器中储存数据的步骤。
13.根据权利要求10的方法,进一步包括下列步骤:
建立直接存储器访问DMA传送,借以将数据从与处理器相连的本地存储器传送到系统存储器;和
将数据传送请求发送到总线控制器。
14.根据权利要求10的方法,进一步包括在高速缓存中锁定数据的步骤。
CNB2003101203823A 2002-12-12 2003-12-11 直接访问高速缓存的数据的系统和方法 Expired - Fee Related CN1293481C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/318,594 US7062612B2 (en) 2002-12-12 2002-12-12 Updating remote locked cache
US10/318,594 2002-12-12

Publications (2)

Publication Number Publication Date
CN1519730A CN1519730A (zh) 2004-08-11
CN1293481C true CN1293481C (zh) 2007-01-03

Family

ID=32506400

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101203823A Expired - Fee Related CN1293481C (zh) 2002-12-12 2003-12-11 直接访问高速缓存的数据的系统和方法

Country Status (2)

Country Link
US (1) US7062612B2 (zh)
CN (1) CN1293481C (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080183972A1 (en) * 2007-01-26 2008-07-31 James Norris Dieffenderfer Snoop Filtering Using a Snoop Request Cache
CN103150268A (zh) * 2013-03-04 2013-06-12 浪潮电子信息产业股份有限公司 一种cdp中的块级数据捕获方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0644491A1 (en) * 1993-09-20 1995-03-22 International Business Machines Corporation Data processing system maintaining cache coherency by using a snooping protocol
CN1142634A (zh) * 1995-06-19 1997-02-12 株式会社东芝 清空高速缓冲存储器内容的装置
US5903908A (en) * 1994-01-04 1999-05-11 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
US5920891A (en) * 1996-05-20 1999-07-06 Advanced Micro Devices, Inc. Architecture and method for controlling a cache memory
US6119202A (en) * 1997-07-24 2000-09-12 International Business Machines Corporation Method and apparatus to interleave level 1 data cache line fill data between system bus and level 2 data cache for improved processor performance
US6260117B1 (en) * 1997-09-18 2001-07-10 International Business Machines Corporation Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
US5623633A (en) * 1993-07-27 1997-04-22 Dell Usa, L.P. Cache-based computer system employing a snoop control circuit with write-back suppression
US6275885B1 (en) * 1998-09-30 2001-08-14 Compaq Computer Corp. System and method for maintaining ownership of a processor bus while sending a programmed number of snoop cycles to the processor cache
US6859862B1 (en) * 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6636906B1 (en) * 2000-04-28 2003-10-21 Hewlett-Packard Development Company, L.P. Apparatus and method for ensuring forward progress in coherent I/O systems
US6922753B2 (en) * 2002-09-26 2005-07-26 International Business Machines Corporation Cache prefetching
US6711650B1 (en) 2002-11-07 2004-03-23 International Business Machines Corporation Method and apparatus for accelerating input/output processing using cache injections

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0644491A1 (en) * 1993-09-20 1995-03-22 International Business Machines Corporation Data processing system maintaining cache coherency by using a snooping protocol
US5903908A (en) * 1994-01-04 1999-05-11 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
CN1142634A (zh) * 1995-06-19 1997-02-12 株式会社东芝 清空高速缓冲存储器内容的装置
US5920891A (en) * 1996-05-20 1999-07-06 Advanced Micro Devices, Inc. Architecture and method for controlling a cache memory
US6119202A (en) * 1997-07-24 2000-09-12 International Business Machines Corporation Method and apparatus to interleave level 1 data cache line fill data between system bus and level 2 data cache for improved processor performance
US6260117B1 (en) * 1997-09-18 2001-07-10 International Business Machines Corporation Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency

Also Published As

Publication number Publication date
US20040117560A1 (en) 2004-06-17
CN1519730A (zh) 2004-08-11
US7062612B2 (en) 2006-06-13

Similar Documents

Publication Publication Date Title
CN1276362C (zh) 用于多处理器系统中的片上数据传输的方法和系统
US5560003A (en) System and hardware module for incremental real time garbage collection and memory management
CN1575455B (zh) 优化输入/输出应用的分布式读写高速缓存实现方案
US9594521B2 (en) Scheduling of data migration
US5664148A (en) Cache arrangement including coalescing buffer queue for non-cacheable data
US7529895B2 (en) Method for prefetching non-contiguous data structures
US5471592A (en) Multi-processor with crossbar link of processors and memories and method of operation
US5809288A (en) Synchronized MIMD multi-processing system and method inhibiting instruction fetch on memory access stall
CN100573477C (zh) 管理锁定的高速缓冲存储器中的组替换的系统和方法
US7243200B2 (en) Establishing command order in an out of order DMA command queue
US7174434B2 (en) Low latency memory access and synchronization
JP2004537106A (ja) 単一のオペレーティングシステムイメージ下で動作する再構成可能なプロセッサを用いるウェブサーバのためのシステムおよび方法
CN1297903C (zh) 用于流水线处理有序的输入/输出事务的设备、方法和计算机系统
CN100589089C (zh) 处理直接存储器访问请求的设备和方法
CN1499389A (zh) 经超高速缓冲存储器注入加速输入输出处理的方法及装置
GB2510348A (en) Data transmissions using RDMA, data structures and fingerprints of the data structures
KR20070048797A (ko) 프로세서 내의 dma 컨트롤러를 사용하여 프로세서캐시로 데이터를 전송하는 방법
JPH05274252A (ja) コンピュータシステムにおけるトランザクション実行方法
US20040093390A1 (en) Connected memory management
US5680577A (en) Method and system for processing multiple requests for data residing at the same memory address
CN1464415A (zh) 一种多处理器系统
CN1293481C (zh) 直接访问高速缓存的数据的系统和方法
EP1923793A2 (en) Memory controller for sparse data computation system and method therefor
US9003124B2 (en) Managing a region cache
CN100538665C (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070103

Termination date: 20101211