CN1575455B - 优化输入/输出应用的分布式读写高速缓存实现方案 - Google Patents

优化输入/输出应用的分布式读写高速缓存实现方案 Download PDF

Info

Publication number
CN1575455B
CN1575455B CN028208935A CN02820893A CN1575455B CN 1575455 B CN1575455 B CN 1575455B CN 028208935 A CN028208935 A CN 028208935A CN 02820893 A CN02820893 A CN 02820893A CN 1575455 B CN1575455 B CN 1575455B
Authority
CN
China
Prior art keywords
cache
input
output
write
interface
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
CN028208935A
Other languages
English (en)
Other versions
CN1575455A (zh
Inventor
肯尼思·克雷塔
丹尼斯·贝尔
罗伯特·布兰肯希普
布拉德福德·康登
罗伯特·乔治
杜安·亚努尔瑞
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN1575455A publication Critical patent/CN1575455A/zh
Application granted granted Critical
Publication of CN1575455B publication Critical patent/CN1575455B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • 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
    • 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
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses

Abstract

一个高速缓存输入/输出集线器,包括连接到主机的主机接口。至少提供一个输入/输出接口以便连接到输入输出装置。一个写入高速缓存器管理由该输入/输出装置启动的存储器写入。至少有一个与该写入高速缓存器分离的读出高速缓存器提供最可能被使用的数据的一个低等待时间拷贝。该至少一个读出高速缓存器与该写入高速缓存器通信。也提供一个高速缓存目录来跟踪该写入高速缓存器及该至少一个读出高速缓存器的高速缓存器界线。该高速缓存目录与该写入高速缓存器及该至少一个读出高速缓存器通信。

Description

优化输入/输出应用的分布式读写高速缓存实现方案
技术领域
一般而言,本发明涉及一个高速缓存输入/输出(I/O)集线器。更具体地讲,本发明涉及高速缓存I/O集线器内的一个分布式读写高速缓存实现方案,能优化多处理器计算机系统的可扩展性及性能。
背景技术
多处理器计算机系统被设计得用来适应经由一个公共系统总线或开关连接到存储器及若干外部输入/输出装置的多个中央处理器(CPU)。提供多个中央处理器的目的是通过在这些处理器之间共享任务来提高运行性能。举例来说,这样一种结构允许该计算机支持多个不同的应用程序,而且同时支持在一个网络上通信的I/O部件并在所连接的显示器设备上显示图像。多处理器计算机系统通常被用于企业与网络服务器系统。
为提高性能,连接到该总线的所有装置必须有效地通信。该系统总线上的空循环就代表应用程序未得到支持的时间段,所以就代表性能下降。
在多处理器计算机系统设计中会出现许多这样的情况:该总线尽管没有空闲,但也没有被连接到该总线的这些处理器而被有效地使用。这些情况中有些是由于连接到该总线的装置之间互不相同的性质所致。举例来说,中央处理器通常包括高速缓存逻辑线路以便临时存储来自该存储器的数据。需要实现一个连贯协议来保证每个中央处理器只从该高速缓存器中检索最新版本的数据。换句话说,高速缓存器连贯性就是多个高速缓存器中数据的同步,从而使得经由任何高速缓存器来读取一个存储器单元都将返回经由任何其他高速缓存器写到那个单元的最新数据。所以,中央处理器通常被称为“可高速缓存的”装置。
但是,输入/输出部件通常是不可高速缓存的装置。就是说,它们通常不实现与这些CPU所用协议相同的高速缓存器连贯协议。故而,必须采取措施来保证I/O部件只为它们的运行来检索有效的数据。通常,I/O部件经由直接存储器访问(DMA)来从存储器或者可高速缓存的装置检索数据。可以提供一个输入/输出集线器部件来作为不同输入/输出桥接器部件之间的一个连接点,输入/输出部件被连接到该连接点,并最终被连接到这些中央处理器。
一个输入/输出集线器可以是一个高速缓存I/O集线器。就是说,该I/O集线器包括一个拥有读写元件的高速缓存源。尽管一个单独的高速缓存源既可以被用于读出元件也可以被用于写入元件,但是这些读写元件被与它们相连的I/O部件与接口按不同方式加以处理,故而具有不同的要求。因为该单独的高速缓存源既被读出元件使用又被写入元件使用,所以该高速缓存源对无论哪一个应用程序也没有达到优化,故而,不是可用的、最有效的实施方案。
发明内容
本发明的目的是提供一种高速缓存输入/输出(I/O)集线器、一种高速缓存输入/输出系统和一种计算机系统,以优化多处理器计算机系统的可扩展性及性能。
为了实现本发明的目的,按照本发明的一种高速缓存输入/输出集线器,包括:与一台主机相连的主机接口;至少一个与输入/输出装置相连的输入/输出接口;写入高速缓存器,管理由该输入/输出装置启动的存储器写入;至少一个与该写入高速缓存器分离的读出高速缓存器,提供最有可能被使用的数据的一个低等待时间拷贝,其中该至少一个读出高速缓存器与该写入高速缓存器通信;以及,高速缓存目录,跟踪该写入高速缓存器及该至少一个读出高速缓存器中的高速缓存器界线,其中该高速缓存目录与该写入高速缓存器及该至少一个读出高速缓存器通信。
为了实现本发明的目的,按照本发明的一种高速缓存输入/输出系统,包括:与一台主机相连的主机接口;至少一个输入/输出接口;至少一个与该输入/输出接口相连的输入/输出装置;写入高速缓存器,管理由该输入/输出装置启动的存储器写入;至少一个与该写入高速缓存器分离的读出高速缓存器,提供最有可能被使用的数据的一个低等待时间拷贝,其中该至少一个读出高速缓存器与该写入高速缓存器通信;以及,高速缓存目录,跟踪该写入高速缓存器及该至少一个读出高速缓存器中的高速缓存器界线,其中该高速缓存目录与该写入高速缓存器及该至少一个读出高速缓存器通信。
为了实现本发明的目的,按照本发明的一种计算机系统,包括:
多个处理器单元;主存储器;连贯接口,保持这些处理器单元与它们的高速缓存器之间的连贯性;可扩展节点控制器,使这些处理器单元、该主存储器以及该连贯接口互相连接以便控制它们之间的接口;以及,与该连贯接口通信的高速缓存输入/输出集线器,包括:
与该连贯接口相连的主机接口;至少一个与输入/输出装置相连的输入/输出接口;写入高速缓存器,管理由该输入/输出装置启动的存储器写入;至少一个与该写入高速缓存器分离的读出高速缓存器,提供最有可能被使用的数据的一个低等待时间拷贝,其中该至少一个读出高速缓存器与该写入高速缓存器通信;以及,高速缓存目录,跟踪该写入高速缓存器及该至少一个读出高速缓存器中的高速缓存器界线,其中该高速缓存目录与该写入高速缓存器及该至少一个读出高速缓存器通信。
附图说明
图1A表示按照本发明一个实施例的输入/输出读写高速缓存系统;
图1B表示按照本发明另一个实施例的输入/输出读写高速缓存系统;
图2A表示按照本发明一个实施例的一个入站连贯读出处理事务;
图2B表示按照本发明一个实施例的一个入站连贯写入处理事务;
图2C表示按照本发明一个实施例的、来自连贯主机的监听运行方式;
图3表示按照本发明一个实施例的输入/输出系统体系结构;
具体实施方式
图1A表示按照本发明一个实施例的一个输入/输出读写高速缓存系统。按照本发明一个实施例的高速缓存输入/输出集线器100实现连贯性,并特别对如下的输入/输出应用场合进行优化:(1)来自I/O部件或装置的写入没有另一个代理的修改往往就不会被读出;(2)I/O装置往往从该主存储器中的不同单元(缓冲器)读出;以及(3)I/O装置(无论对读出与写入)都可能将长的处理事务“分解”为不间断的、较短的处理事务。举例来说,高速缓存输入/输出集线器可以在一个芯片组上实现,譬如Intel 870芯片组。举例来说,I/O部件或装置170、180可以是外围部件互连(PCI)桥接器(“PCI局部总线规范”,修订版本2.1,1995年6月1日,PCI专业组(PCI-SIG))。不过,任何其他合适的装置也可以被用作I/O部件或装置170、180。
高速缓存输入/输出集线器100包括一个写入高速缓存器110、一个高速缓存目录120以及一个或多个读出高速缓存器130。提供了一个连贯主机接口140(譬如一个前侧总线或Intel可扩展端口)以便连接连贯主机,譬如连接到与这些处理器单元相连的可扩展节点控制器。举例来说,该可扩展端口是一个与高速缓存器连贯的接口,该接口已针对保持所有处理器与它们的高速缓存器之间的连贯性的可扩展多节点系统进行了优化。根据本发明的一个实施例,连贯主机接口140可以与两个连贯主机相连,譬如与两个可扩展端口相连。至少提供了一个输入/输出接口150、160来连接I/O部件或装置170、180。可是,在本发明的一个实施例中,I/O接口150、160可以不直接连接到I/O部件或装置170、180。可以有一个中间装置连接到(符合一个实施例的)I/O接口150、160,这个中间装置是一种类似集线器的装置或输入/输出桥接器,譬如一个Intel P64H2集线器接口至PCI的桥接器,或者一个VXB InfiniBand桥接器(“InfiniBand体系结构规范”,修订版本1.0,2001年6月19日,InfiniBand贸易协会),I/O部件或装置170、180则连接到I/O接口150、160。举例来说,每个P64H2桥接器都具有I/O装置或部件170、180可以与之连接的两个PCI-X片(“PCI-X规范”,修订版本1.0a,2000年8月29,PCI-SIG)。PCI-X是PCI局部总线的一种高性能扩展,具有更高的带宽与总线性能。
按照本发明一个实施例的高速缓存I/O集线器100不是使用一个单独的高速缓存源,而是将这些高速缓存源分解为较小的、更容易实现的部分,包括一个写入高速缓存器110、一个或多个读出高速缓存器130以及一个跟踪所有这些元件的高速缓存目录120。从读出高速缓存器130分离出写入高速缓存器110的一个优点在于,可以不管写入高速缓存器110而独立确定读出高速缓存器130的大小。根据本发明的一个实施例,写入高速缓存器110是由使连贯主机接口140达到满吞吐量所需的多个未完成(outstanding)写入来驱动的。满吞吐量是频率、带宽以及连贯主机接口140效率的函数。另一方面,读出高速缓存器深度是由为达到全部I/O带宽所需的数据预取数量来驱动的。写入高速缓存器110与读出高速缓存器130的两个深度不一定取决于相同的因素。所以,通过允许为每个源110、130实现一个以特定应用情况为目标的有效实施方案来保持这两个源110、130分离是很有价值的。
在读出高速缓存器130中高速缓存的数据位置最好尽可能接近I/O接口150、160。这种方法使“高速缓存器命中”等待时间最短,而且性能会提高。一个高速缓存器命中(hit)是可以不使用该主存储器而由该高速缓存器满足的、从存储器进行读出的一次请求。这种结构对由I/O部件或装置170、180预取的数据特别有用。另一方面,由该连贯主机发布的(即监测的)“监听”命令也必须很快得到满足,特别是那些对I/O高速缓存的监听,其中大多数监听很可能会“未命中”这些I/O高速缓存源。所以,最好实现分离的高速缓存目录120,该目录位置要尽可能靠近该连贯主机以及连贯主机接口140。
因为向存储器的写入通常不会不首先被另一个代理修改就被读出,所以最好对一个I/O桥接器实施写入高速缓存,使它比写入常常被立即读出(瞬时位置)的一个处理器高速缓存更像一个写入复合缓冲器。所以,使读出高速缓存器130与写入高速缓存器110分离就形成一个存储最近读出数据的、接近I/O部件或装置170与180的连贯缓冲器,形成一个靠近该连贯主机以便对其产生快速响应的高速缓存目录,并形成一个对输入/输出应用程序达到最优的“紧凑的”写入高速缓存器110。
特别是,写入高速缓存器110管理由I/O部件或装置170、180启动的连贯存储器写入。写入高速缓存器110在提交该存储器写入之前也负责监听(或者说监测)连贯主机接口140。根据本发明的一个实施例,写入高速缓存器110服从修改专用共享无效(MESI)高速缓存协议。不过,任何合适的高速缓存协议都可以被采用。在本发明的特定实施例中,写入高速缓存器110保持高速缓存器界线(line)处于修改、专用和无效状态。高速缓存器界线是可以在该主存储器(通常是一个动态随机存取存储器:DRAM)与该高速缓存器之间传输的最小存储器单元。
在按照本发明一个实施例的输入/输出集线器100中提供了一个或多个读出高速缓存器130。在本发明的一个实施例中,可以横跨所有I/O接口150、160以及I/O部件170、180提供一个公共读出高速缓存器130。在图1B所示的本发明的另一个实施例中,可以提供一个第一读出高速缓存器132并使之与第一I/O接口150关联,而且可以提供一个第二读出高速缓存器134并使之与第二I/O接口160关联。就是说,对每个I/O接口150、160,存在一个它们专用的读出高速缓存器132、134。多个I/O接口、I/O部件以及读出高速缓存器的任何适当的配置都可以被采用。读出高速缓存器130向I/O部件170、180提供“最有可能使用的”数据的一个低等待时间拷贝。根据本发明的一个实施例,读出缓存器130、132、134保持高速缓存器界线处于该共享及无效状态。尽管在图1与图2中读出高速缓存器130、132、134被画在一个单独部件上(即在高速缓存I/O集线器100上),但是读出高速缓存器可以是分布式的,可以被分离在一个或多个不同部件上(即在不同的芯片组上)。
在按照本发明一个实施例的高速缓存I/O集线器100中提供了一个高速缓存目录120。高速缓存目录120提供对写入高速缓存器110及读出高速缓存器130中所有高速缓存器界线的跟踪。高速缓存目录120跟踪该界线状态以及一个指向存储该跟踪数据的结构的指针。跟踪该状态能够对请求作出更快的响应。跟踪存储该界线的结构能够激活这些结构之间所需要的协议。
高速缓存I/O集线器100可以具有多个高速缓存源,每个源包括一个写入高速缓存器110、一个高速缓存目录120以及一个或多个读出高速缓存器130。此外,高速缓存I/O集线器100可以包括一个使读出高速缓存器130与写入高速缓存器110互相连接的连贯引擎。该连贯引擎被用来同步这些高速缓存源内的高速缓存器。
图2A表示按照本发明一个实施例的一个入站连贯读出处理事务。一个入站连贯读出是从I/O接口150、160(最终从I/O部件170、180)发出并到达高速缓存I/O集线器100。于是,要发布一个读出处理事务(202)。用于该读出处理事务的地址在读出高速缓存器130、132、134中加以校核(204)。如果该校核结果为“标记命中”,那么该请求读出数据就由该读出高速缓存器返回(206),并发送一个用于该未决读出请求的结束包。如果读出高速缓存器130、132、134的校核结果为“未命中”,那么就在该读出高速缓存器中分配一个高速缓存器界线(208),该读出处理事务则被转送到连贯主机140以便在该连贯存储器空间中、特别是在该主存储器中检索所请求的读出数据(208)。
图2B表示按照本发明一个实施例的一个入站连贯写入处理事务。一个入站连贯写入处理事务从I/O接口150、160(最终从I/O部件170、180)发出并到达高速缓存I/O集线器100。于是,要发布一个写入数据的写入处理事务(220)。用于该写入处理事务的地址在读出高速缓存器130、132、134中加以校核(222)。如果该校核结果为“标记命中”,那么就使读出高速缓存器130、132、134中的高速缓存器界线无效。该数据被传送到一个写入高速缓存器110(226)。一项对所有权的请求则被发布到该连贯主机(228)。读出高速缓存器130、132、134的高速缓存器界线接受监听以便发现是否有该数据的拷贝(230),包含该数据的高速缓存器界线则被变为无效(228)。一旦对所有权的请求结束,而且该读出高速缓存器界线被变为无效(228),该写入高速缓存器界线就从“专用”状态转变为“修改”状态(230)。这样,该写入处理事务结束,而且该更新后的数据可以供该系统的其他部分使用。
图2C表示按照本发明一个实施例的、由连贯主机所实现的监听运行方式。由于I/O集线器100是一个参与该中央监听体系结构的高速缓存代理,所以连贯主机部件频繁地向I/O集线器100发送监听循环。根据本发明的一个实施例,存在来自该连贯主机的两种主要监听类型:(1)一种不具有无效的监听(它的一个子集是一个“监听流”);以及(2)一种具有无效的监听(监听无效)。对这两种监听类型,它们都从I/O集线器100所检索的连贯主机发布(250)。高速缓存目录120被用来校核特定的被请求高速缓存器界线(250)。
对于不具有无效的监听(以及该监听流),如果高速缓存目录120认定该高速缓存器界线在读出高速缓存器130中处于该共享状态,那么就返回一个“共享”响应(254、270),即通知该连贯主机它正处于该共享状态。如果该高速缓存器界线被认定在写入高速缓存器110中处于专用状态,那么就返回一个“无效”响应(262),而且该界线在写入高速缓存器110中被变为无效(并重新发布一个界线请求)。不过,如果使用一个监听流,而且该高速缓存器界线被认定在写入高速缓存器110中处于专用状态,那么就返回一个“共享”响应(272),而且该界线在写入高速缓存器110中仍保持在该专用状态。如果该高速缓存器界线被认定在写入高速缓存器110中处于修改状态,那么所修改的数据就被返回(226),而且该写入高速缓存器界线被变为无效。不过,如果使用一个监听流,而且该高速缓存器界线被认定在写入高速缓存器110中处于修改状态,那么所修改的数据就被返回(274),但该写入高速缓存器界线仍保持在该修改状态。
对于具有无效的监听,如果高速缓存目录120认定该高速缓存器界线存在于读出高速缓存器130中,那么一个“使其无效”的命令就被发布到读出高速缓存器130来使该高速缓存器界线无效,而且一个“无效”响应则被返回(256)。就是说,高速缓存目录120使该高速缓存器界线无效,并将一个使其无效的命令发送到适当的读出高速缓存器130。如果多个读出高速缓存器出现一次命中,高速缓存目录120就将一个使其无效的命令发送到所有适当的读出高速缓存器130。如果该高速缓存器界线被认定在写入高速缓存器110中处于专用状态,那么该高速缓存器界线就被变为无效(264),而且一个“无效”响应则被返回。然后,I/O集线器100重新发布一个部分写入或一个全部界线写入的命令以便预取该“被盗”界线。如果该高速缓存器界线被认定在写入高速缓存器110中处于修改状态,那么该高速缓存器界线就被变为无效(268),而且一个“无效”响应则被返回。I/O集线器100可以将“脏数据”返回到具有隐含回写的监听代理。对这两类监听,如果该高速缓存器界线不在写入高速缓存器110或读出高速缓存器130中(即该界线处于无效状态),那么一个“无效”响应则被返回(258)——这标志I/O集线器100不具有所请求的高速缓存器界线。
图3表示按照本发明一个实施例的一个输入/输出系统体系结构。如前所述,高速缓存I/O集线器100可以包括被连接到中间装置的输入/输出接口150、160,譬如一个类似集线器的装置或输入/输出桥接器(如一个PCI-X桥接器360或者一个InfiniBand桥接器370)。I/O部件或装置170、180则连接到中间装置360、370。高速缓存I/O集线器100还可以包括连接到继承输入/输出桥接器350的一个I/O接口来处理与继承I/O部件或装置的连接。
高速缓存I/O集线器100适合于连接一台连贯主机,譬如一个可扩展端口340,这是一个与高速缓存器连贯的接口,针对保持所有处理器与它们的高速缓存器之间的连贯性的可扩展多节点系统,已经进行了优化。可扩展端口340反过来又可以连接到至少一个可扩展节点控制器320,控制处理器310、主存储器330(譬如DRAM)以及可扩展端口340之间的接口。
故而,举例来说,本发明的I/O系统体系结构300中所使用的高速缓存I/O集线器100为一个多处理器计算机系统提供了在一个芯片组中的优化I/O应用。高速缓存I/O集线器100使等待时间最短,并提供对请求的快速响应。所以,实施方案的可扩展性及性能都采用本发明的高速缓存I/O集线器100而得以优化。
尽管上面的说明参考了本发明的特定实施例,但应当理解,可以进行许多修改而不偏离本发明的精神。所附的权利要求旨在覆盖这些将会属于本发明的准确范围及精神之内的修改。所以,目前公布的实施例在各个方面来讲应被认为属于演示性质而非限制,由所附的权利要求、而非由前面的说明来表示的本发明的范围以及在与这些权利要求等效的含义与范围内的所有改变都预期被包括在这些权利要求之中。

Claims (30)

1.一个高速缓存输入/输出集线器,包括:
与一台主机相连的主机接口;
至少一个与输入/输出装置相连的输入/输出接口;
写入高速缓存器,管理由该输入/输出装置启动的存储器写入;
至少一个与该写入高速缓存器分离的读出高速缓存器,提供最有可能被使用的数据的一个低等待时间拷贝,其中该至少一个读出高速缓存器与该写入高速缓存器通信;以及
高速缓存目录,跟踪该写入高速缓存器及该至少一个读出高速缓存器中的高速缓存器界线,其中该高速缓存目录与该写入高速缓存器及该至少一个读出高速缓存器通信。
2.如权利要求1的输入/输出集线器,其中该至少一个读出高速缓存器的位置比该写入高速缓存器及该高速缓存目录更接近该输入/输出接口。
3.如权利要求1的输入/输出集线器,其中该高速缓存目录的位置比该至少一个读出高速缓存器更接近该主机接口。
4.如权利要求1的输入/输出集线器,其中该写入高速缓存器在提交该存储器写入之前还监听该主机接口。
5.如权利要求1的输入/输出集线器,其中该输入/输出装置是一个外围部件互连(PCI)装置。
6.如权利要求1的输入/输出集线器,其中该写入高速缓存器利用一个修改专用共享无效(MESI)高速缓存协议。
7.一个高速缓存输入/输出系统,包括:
与一台主机相连的主机接口;
至少一个输入/输出接口;
至少一个与该输入/输出接口相连的输入/输出装置;
写入高速缓存器,管理由该输入/输出装置启动的存储器写入;
至少一个与该写入高速缓存器分离的读出高速缓存器,提供最有可能被使用的数据的一个低等待时间拷贝,其中该至少一个读出高速缓存器与该写入高速缓存器通信;以及
高速缓存目录,跟踪该写入高速缓存器及该至少一个读出高速缓存器中的高速缓存器界线,其中该高速缓存目录与该写入高速缓存器及该至少一个读出高速缓存器通信。
8.如权利要求7的输入/输出系统,其中该至少一个读出高速缓存器的位置比该写入高速缓存器及该高速缓存目录更接近该输入/输出接口。
9.如权利要求7的输入/输出系统,其中该高速缓存目录的位置比该至少一个读出高速缓存器更接近该主机接口。
10.如权利要求7的输入/输出系统,其中该写入高速缓存器在提交该存储器写入之前还监听该主机接口。
11.如权利要求7的输入/输出系统,其中该至少一个输入/输出装置是一个外围部件互连(PCI)装置。
12.如权利要求7的输入/输出系统,其中该写入高速缓存器利用一个修改专用共享无效(MESI)高速缓存协议。
13.如权利要求7的输入/输出系统,其中:
该主机是连贯主机;
该主机接口是连贯主机接口;
该至少一个输入/输出接口包括第一输入/输出接口和第二输入/输出接口;
该至少一个输入/输出装置包括与该第一输入/输出接口相连的第一输入/输出装置,以及与该第二输入/输出接口相连的第二输入/输出装置;
该写入高速缓存器,管理由该第一输入/输出装置及该第二输入/输出装置两者之中至少一个装置启动的连贯存储器写入。
14.如权利要求13的输入/输出系统,其中该至少一个读出高速缓存器的位置比该写入高速缓存器及该高速缓存目录更接近该第一输入/输出接口及该第二输入/输出接口。
15.如权利要求13的输入/输出系统,其中该高速缓存目录的位置比该至少一个读出高速缓存器更接近该主机接口。
16.如权利要求13的输入/输出系统,其中该写入高速缓存器在提交该连贯存储器写入之前还监听该连贯主机接口。
17.如权利要求13的输入/输出系统,其中该第一输入/输出装置是一个外围部件互连(PCI)装置。
18.如权利要求13的输入/输出系统,其中该第二输入/输出装置是一个外围部件互连(PCI)装置。
19.如权利要求13的输入/输出系统,其中该写入高速缓存器利用一个修改专用共享无效(MESI)高速缓存协议。
20.如权利要求13的输入/输出系统,其中:
该至少一个读出高速缓存器包括第一读出高速缓存器和第二读出高速缓存器,
该第一读出高速缓存器,与该写入高速缓存器分离并与该第一输入/输出接口关联;
该第二读出高速缓存器,与该写入高速缓存器分离并与该第二输入/输出接口关联,其中该第一读出高速缓存器及该第二读出缓存器提供最有可能被使用的数据的一个低等待时间拷贝,而且其中该第一读出高速缓存器及该第二读出高速缓存器与该写入高速缓存器通信;以及
该高速缓存目录,跟踪该写入高速缓存器、该第一读出高速缓存器以及该第二读出高速缓存器中的高速缓存器界线,其中该高速缓存目录与该写入高速缓存器、该第一读出高速缓存器以及该第二读出高速缓存器通信。
21.如权利要求20的输入/输出系统,其中该第一读出高速缓存器及该第二读出高速缓存器的位置比该写入高速缓存器及该高速缓存目录更接近该第一输入/输出接口及该第二输入/输出接口。
22.如权利要求20的输入/输出系统,其中该高速缓存目录的位置比该第一读出高速缓存器及该第二读出高速缓存器更接近该主机接口。
23.如权利要求20的输入/输出系统,其中该写入高速缓存器在提交该连贯存储器写入之前还监听该连贯主机接口。
24.如权利要求20的输入/输出系统,其中该第一输入/输出装置是一个外围部件互连(PCI)装置。
25.如权利要求20的输入/输出系统,其中该第二输入/输出装置是一个外围部件互连(PCI)装置。
26.如权利要求20的输入/输出系统,其中该写入高速缓存器利用一个修改专用共享无效(MESI)高速缓存协议。
27.一个计算机系统,包括:
多个处理器单元;
主存储器;
连贯接口,保持这些处理器单元与它们的高速缓存器之间的连贯性;
可扩展节点控制器,使这些处理器单元、该主存储器以及该连贯接口互相连接以便控制它们之间的接口;以及
与该连贯接口通信的高速缓存输入/输出集线器,包括:
与该连贯接口相连的主机接口;
至少一个与输入/输出装置相连的输入/输出接口;
写入高速缓存器,管理由该输入/输出装置启动的存储器写入;
至少一个与该写入高速缓存器分离的读出高速缓存器,提供最
有可能被使用的数据的一个低等待时间拷贝,其中该至少一个读出
高速缓存器与该写入高速缓存器通信;以及
高速缓存目录,跟踪该写入高速缓存器及该至少一个读出高速
缓存器中的高速缓存器界线,其中该高速缓存目录与该写入高速缓
存器及该至少一个读出高速缓存器通信。
28.如权利要求27的计算机系统,其中该至少一个读出高速缓存器的位置比该写入高速缓存器及该高速缓存目录更接近该输入/输出接口。
29.如权利要求27的计算机系统,其中该高速缓存目录的位置比该至少一个读出高速缓存器更接近该主机接口。
30.如权利要求27的计算机系统,其中该写入高速缓存器在提交这些存储器写入之前还监听该主机接口。
CN028208935A 2001-08-27 2002-08-06 优化输入/输出应用的分布式读写高速缓存实现方案 Expired - Fee Related CN1575455B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/940,835 US6681292B2 (en) 2001-08-27 2001-08-27 Distributed read and write caching implementation for optimized input/output applications
US09/940,835 2001-08-27
PCT/US2002/025090 WO2003019386A1 (en) 2001-08-27 2002-08-06 Distributed read and write caching implementation for optimized input/output applications

Publications (2)

Publication Number Publication Date
CN1575455A CN1575455A (zh) 2005-02-02
CN1575455B true CN1575455B (zh) 2010-05-26

Family

ID=25475509

Family Applications (1)

Application Number Title Priority Date Filing Date
CN028208935A Expired - Fee Related CN1575455B (zh) 2001-08-27 2002-08-06 优化输入/输出应用的分布式读写高速缓存实现方案

Country Status (5)

Country Link
US (1) US6681292B2 (zh)
EP (1) EP1421498A1 (zh)
KR (1) KR100545951B1 (zh)
CN (1) CN1575455B (zh)
WO (1) WO2003019386A1 (zh)

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6791555B1 (en) * 2000-06-23 2004-09-14 Micron Technology, Inc. Apparatus and method for distributed memory control in a graphics processing system
JP2002334015A (ja) * 2001-05-10 2002-11-22 Nec Corp ディスク装置
US20030101312A1 (en) * 2001-11-26 2003-05-29 Doan Trung T. Machine state storage apparatus and method
US7034849B1 (en) 2001-12-31 2006-04-25 Apple Computer, Inc. Method and apparatus for image blending
US7681013B1 (en) 2001-12-31 2010-03-16 Apple Inc. Method for variable length decoding using multiple configurable look-up tables
US7015921B1 (en) * 2001-12-31 2006-03-21 Apple Computer, Inc. Method and apparatus for memory access
US6934873B2 (en) * 2002-02-28 2005-08-23 Dell Products L.P. Automatic BIOS recovery in a multi-node computer system
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7200024B2 (en) * 2002-08-02 2007-04-03 Micron Technology, Inc. System and method for optically interconnecting memory devices
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7254331B2 (en) * 2002-08-09 2007-08-07 Micron Technology, Inc. System and method for multiple bit optical data transmission in memory systems
US7149874B2 (en) * 2002-08-16 2006-12-12 Micron Technology, Inc. Memory hub bypass circuit and method
US7546422B2 (en) * 2002-08-28 2009-06-09 Intel Corporation Method and apparatus for the synchronization of distributed caches
US7836252B2 (en) * 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7102907B2 (en) * 2002-09-09 2006-09-05 Micron Technology, Inc. Wavelength division multiplexed memory module, memory system and method
US7093079B2 (en) 2002-12-17 2006-08-15 Intel Corporation Snoop filter bypass
US20040193771A1 (en) * 2003-03-31 2004-09-30 Ebner Sharon M. Method, apparatus, and system for processing a plurality of outstanding data requests
US7245145B2 (en) * 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US7120727B2 (en) * 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7107415B2 (en) * 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
US7428644B2 (en) * 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7260685B2 (en) 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7210059B2 (en) * 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7133991B2 (en) * 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US7136958B2 (en) 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7310752B2 (en) 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
US7194593B2 (en) * 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7120743B2 (en) * 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7234070B2 (en) * 2003-10-27 2007-06-19 Micron Technology, Inc. System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7216196B2 (en) * 2003-12-29 2007-05-08 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
US7188219B2 (en) 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7788451B2 (en) * 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7181584B2 (en) * 2004-02-05 2007-02-20 Micron Technology, Inc. Dynamic command and/or address mirroring system and method for memory modules
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
TWI242134B (en) * 2004-02-12 2005-10-21 Via Tech Inc Data extraction method and system
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7257683B2 (en) * 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7120723B2 (en) * 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US7447240B2 (en) * 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US7213082B2 (en) * 2004-03-29 2007-05-01 Micron Technology, Inc. Memory hub and method for providing memory sequencing hints
US6980042B2 (en) * 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7590797B2 (en) * 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US7716409B2 (en) * 2004-04-27 2010-05-11 Intel Corporation Globally unique transaction identifiers
US7165131B2 (en) * 2004-04-27 2007-01-16 Intel Corporation Separating transactions into different virtual channels
US7210000B2 (en) * 2004-04-27 2007-04-24 Intel Corporation Transmitting peer-to-peer transactions through a coherent interface
US7162567B2 (en) * 2004-05-14 2007-01-09 Micron Technology, Inc. Memory hub and method for memory sequencing
US7222213B2 (en) * 2004-05-17 2007-05-22 Micron Technology, Inc. System and method for communicating the synchronization status of memory modules during initialization of the memory modules
US7363419B2 (en) 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US7310748B2 (en) * 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7392331B2 (en) * 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US7512762B2 (en) * 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7305574B2 (en) * 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US7299313B2 (en) 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US20060168407A1 (en) * 2005-01-26 2006-07-27 Micron Technology, Inc. Memory hub system and method having large virtual page size
US7478259B2 (en) * 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US7461299B2 (en) * 2006-03-08 2008-12-02 Intel Corporation Monitoring writes to cache as part of system error handling
US7594055B2 (en) * 2006-05-24 2009-09-22 International Business Machines Corporation Systems and methods for providing distributed technology independent memory controllers
US7584336B2 (en) * 2006-06-08 2009-09-01 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7631228B2 (en) * 2006-09-12 2009-12-08 International Business Machines Corporation Using bit errors from memory to alter memory command stream
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7721140B2 (en) * 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US8145844B2 (en) * 2007-12-13 2012-03-27 Arm Limited Memory controller with write data cache and read data cache
US20100332762A1 (en) * 2009-06-30 2010-12-30 Moga Adrian C Directory cache allocation based on snoop response information
CN101826035A (zh) * 2010-04-07 2010-09-08 深圳创维-Rgb电子有限公司 一种应用程序间的通讯方法
CN102918515B (zh) 2010-05-28 2015-10-14 惠普发展公司,有限责任合伙企业 将数据存储在存储器控制器中的多个缓冲器的任何中
US8392665B2 (en) 2010-09-25 2013-03-05 Intel Corporation Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines
US8782318B2 (en) 2011-03-02 2014-07-15 Intel Corporation Increasing Input Output Hubs in constrained link based multi-processor systems
US9563560B2 (en) 2012-09-28 2017-02-07 Qualcomm Technologies, Inc. Adaptive tuning of snoops
US9639469B2 (en) 2012-09-28 2017-05-02 Qualcomm Technologies, Inc. Coherency controller with reduced data buffer
US10320935B2 (en) 2015-01-28 2019-06-11 Red Hat, Inc. Cache data validation
KR20210014338A (ko) 2019-07-30 2021-02-09 에스케이하이닉스 주식회사 데이터 저장 장치, 데이터 처리 시스템 및 데이터 저장 장치의 동작 방법
KR20210011201A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템 및 그의 온도 조절 방법
KR20200119059A (ko) * 2019-04-09 2020-10-19 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20200132047A (ko) 2019-05-15 2020-11-25 에스케이하이닉스 주식회사 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치
KR20210011216A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템의 메타 데이터 관리 방법 및 장치
KR20210011176A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템의 액세스 동작 방법 및 장치
US11237973B2 (en) * 2019-04-09 2022-02-01 SK Hynix Inc. Memory system for utilizing a memory included in an external device
US11928472B2 (en) 2020-09-26 2024-03-12 Intel Corporation Branch prefetch mechanisms for mitigating frontend branch resteers

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835945A (en) * 1990-08-06 1998-11-10 Ncr Corporation Memory system with write buffer, prefetch and internal caches
US5613153A (en) 1994-10-03 1997-03-18 International Business Machines Corporation Coherency and synchronization mechanisms for I/O channel controllers in a data processing system
US6128711A (en) 1996-11-12 2000-10-03 Compaq Computer Corporation Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes
US6230219B1 (en) 1997-11-10 2001-05-08 International Business Machines Corporation High performance multichannel DMA controller for a PCI host bridge with a built-in cache
US6192450B1 (en) * 1998-02-03 2001-02-20 International Business Machines Corporation Destage of data for write cache
US6434639B1 (en) * 1998-11-13 2002-08-13 Intel Corporation System for combining requests associated with one or more memory locations that are collectively associated with a single cache line to furnish a single memory operation
US6321298B1 (en) * 1999-01-25 2001-11-20 International Business Machines Corporation Full cache coherency across multiple raid controllers
JP4310878B2 (ja) 2000-02-10 2009-08-12 ソニー株式会社 バスエミュレーション装置
JP2001265652A (ja) * 2000-03-17 2001-09-28 Hitachi Ltd キャッシュディレクトリ構成方法および情報処理装置
US6463510B1 (en) * 2000-12-29 2002-10-08 Compaq Information Technologies Group, L.P. Apparatus for identifying memory requests originating on remote I/O devices as noncacheable
US20030041215A1 (en) * 2001-08-27 2003-02-27 George Robert T. Method and apparatus for the utilization of distributed caches

Also Published As

Publication number Publication date
EP1421498A1 (en) 2004-05-26
KR20040029453A (ko) 2004-04-06
WO2003019386A1 (en) 2003-03-06
CN1575455A (zh) 2005-02-02
US6681292B2 (en) 2004-01-20
KR100545951B1 (ko) 2006-01-26
US20030041212A1 (en) 2003-02-27

Similar Documents

Publication Publication Date Title
CN1575455B (zh) 优化输入/输出应用的分布式读写高速缓存实现方案
US10078590B2 (en) Technique to share information among different cache coherency domains
US7814279B2 (en) Low-cost cache coherency for accelerators
KR100318104B1 (ko) 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템
CN101088074B (zh) 用于具有不同高速缓存位置长度的高速缓存中高速缓存一致性的系统和方法
US20110004729A1 (en) Block Caching for Cache-Coherent Distributed Shared Memory
US7577794B2 (en) Low latency coherency protocol for a multi-chip multiprocessor system
JPH10187645A (ja) プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム
US20060143406A1 (en) Predictive early write-back of owned cache blocks in a shared memory computer system
CN100380346C (zh) 用于使用分布式高速缓存器的方法和设备
KR20030024895A (ko) 캐시 코히어런트 멀티-프로세서 시스템에서 순서화된입출력 트랜잭션을 파이프라이닝하기 위한 방법 및 장치
JP2005539282A (ja) 単一のコヒーレントなシステム内の分散コンピュータ・ノードにキャッシュ・コヒーレンスを提供するのにグローバル・スヌープを使用する方法および装置
JP4667092B2 (ja) 情報処理装置、情報処理装置におけるデータ制御方法
KR101087811B1 (ko) 캐시 라인 소유권 이전 방법 및 캐시 라인 소유권 이전 장치
US7024520B2 (en) System and method enabling efficient cache line reuse in a computer system
KR20060102565A (ko) 라이트 백 캐시 내에서 동시 발생하는 스누프 푸시 또는스누프 킬 연산중에 라이트 백 연산을 취소하는 시스템 및방법
US7000080B2 (en) Channel-based late race resolution mechanism for a computer system
US6965972B2 (en) Real time emulation of coherence directories using global sparse directories
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
US10754791B2 (en) Software translation prefetch instructions
WO2001016737A2 (en) Cache-coherent shared-memory cluster
US6895476B2 (en) Retry-based late race resolution mechanism for a computer system
CN115686769A (zh) 根据cxl协议处理一致存储器事务的系统、装置和方法
US7757046B2 (en) Method and apparatus for optimizing line writes in cache coherent systems
JP2003216596A (ja) マルチプロセッサシステム及びノード装置

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: 20100526

Termination date: 20120806