CN1133943C - 高速远程存储簇接口控制器 - Google Patents

高速远程存储簇接口控制器 Download PDF

Info

Publication number
CN1133943C
CN1133943C CNB991041674A CN99104167A CN1133943C CN 1133943 C CN1133943 C CN 1133943C CN B991041674 A CNB991041674 A CN B991041674A CN 99104167 A CN99104167 A CN 99104167A CN 1133943 C CN1133943 C CN 1133943C
Authority
CN
China
Prior art keywords
controller
remote
data
interface
read
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 - Lifetime
Application number
CNB991041674A
Other languages
English (en)
Other versions
CN1236136A (zh
Inventor
G・A・范休本
G·A·范休本
布拉克
M·A·布拉克
ぢ砜
P·-K·马克
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 CN1236136A publication Critical patent/CN1236136A/zh
Application granted granted Critical
Publication of CN1133943C publication Critical patent/CN1133943C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/0817Cache consistency protocols using directory methods

Abstract

用于管理对称多处理中资源的一个远程资源管理系统,包括:在对称多处理器系统中的簇节点之间具有接口的多个对称多处理器簇。每个系统簇具有一个本地接口和接口控制器。存在有都有其本地接口控制器的一个或多个远程存储控制器,和一条本地对远程数据总线。远程资源管理器管理在两个对称多处理器簇之间的接口,每个对称多处理器簇具有多个处理器,一个共享的高速缓冲存储器,多个I/O适配器和可从该簇中接入的一个主存储器。该远程资源管理器管理利用远程控制存储器管理资源以便分配工作到作为代理的一个远程控制器以便执行希望的工作而不必知道发起工作请求的请求人。所述工作只在远程请求者对于该工作处理有效时才被传送,而不需要在该对称多处理器簇之间经常通信。

Description

高速远程存储簇接口控制器
本发明涉及计算机系统并特别表示一个高速远程存储簇接口控制器。
过去的系统设计师曾使用各种装置实现在大型紧密耦合的对称多处理器(SMP)中的高性能。它们从通过单独共享的系统总线耦合单个处理器或处理器簇变化为将处理器耦合在一起成为一簇,借此簇使用簇到簇的接口与一个中央互联网通信。在该中央互联网中在大量处理器周围放置的并行系统通过一个中央交换机(即一个纵横制交换机)互联。
由于单独的总线协议可以服务多种类型的资源,所以共享的总线方法通常提供最有效的系统设计。而且,另外的处理器,簇或外设可以经济地连接到总线以扩展系统。但是,在大型系统中,与仲裁耦合的系统总线上的拥塞,另外导致降低了系统性能并且产生低的SMP效率。这些问题对于采用运行在超过500兆赫频率的对称多处理器可能是难以克服的。
中央互联的系统通常具有对该系统中的所有处理器的共享资源提供相同的等待时间的优点。在一个理想的系统中,相同的等待时间使多应用,或在一个应用内的并行线索在任何系统结构或存储器分层结构不预先知道的情况下,在可得到的处理器之间分配。这些类型的系统一般利用一个或多个大的纵横交换机实现以在处理器和存储器之间发送数据。基本的设计经常变换为大针封装要求和对昂贵的部件封装的需求。另外,实现有效的共享高速缓冲存储器结构可能是困难的。
紧密耦合的分簇方法作为折衰的解决方法。在这个应用中,术语CLUSTER是指共享一个单独的主存储器的处理器的集合,并且借此该系统中的任何处理器可以存取主存储器的任何部分,而不管对一个特定簇的它的类似性。不像不统一的存储器存取(NUMA)结构,在我们例子中指的簇使用专用的硬件以保持在存储器和在每个簇内放置的第二级高速缓冲存储器之间的数据相关性。因此,表现出对软件的统一的单一的概念,没有任何存储器分层结构或例如存储器存储体交错的物理划分。这些系统的优点之一是当数据对需要它的处理器保持紧密的似然性时在一簇内紧密耦合的处理器的特性具有优越的性能。例如,如果数据在一个簇的第二级高速缓冲器存储器内,则该存储器存储体交错连接到那个簇上。另外,当与建立在中央互联系统中的N路纵横制交换机相比时,它通常导致更加经济合算。但是,如果处理器频繁地从其它簇中请求数据,则该分簇方法会导致差的性能,而且随后的等待时间是严重的,或者带宽是不足的。
直到与中央互联系统有关的许多花费高的问题可以以一种经济合算方式解决时,市场对于围绕共享总线或簇设计建立的经济系统将继续存在。本发明消除了传统的簇接口设计具有的许多缺陷,使得该系统可以最大化处理器性能,而不需要昂贵的高级插件和额外的插件板上的caehe。在与本发明有关的领域中的现有技术教导各种方法解决设计一个经济合算的高频率存储控制器的整个问题的孤立的方面。但是,如下面的例子所示,它们不能提供对满足根据本发明给出的目的的一个完整的解决方案。
在美国专利4503497(在85年3月5日授与Krygowski等人)中描述了由两个对称多处理器簇组成的系统。该发明教导利用专用的内置高速缓存器在处理器之间保持高速缓存器相关性的改进方法。但是,它不能解决与驻留在该簇内的内置流水线2级(L2)高速缓存器有关的各种问题,仅仅利用连接到那个簇的所有处理器共享。它还不能集中最大化对于所有类型操作(处理器,I/O,存储器,广播信令,交叉簇同步等)的簇接口的全部效率。
在1992年12月1日,授与Miller等人的美国专利5,168,547和在1993年3月23日授与chen等人的美国专利5,197,130中公开了一个超大型SMP系统的实例。两者都描述了一种由大量簇组成的计算机系统,每个簇具有大量的(即32)处理器和外部接口装置。每个处理器对在所有簇中的全部共享资源具有对称的存取。该计算机系统通过依靠大的纵横制交换机,高度交错共享的主存储器,一系列入站和出站队列以便将事务分级直到源和目的之间的通路成为可得的,和用于同步和共享数据的在该簇仲裁装置内的一组全局资源的组合实现其性能目的。该公开还从使用分级存储器系统(包括二级高速缓存器)中教导出一个结构,实现在多个并行处理器中划分工作的一种更有效的方式。
还设计出一些方法用于通过将多个I/O设备分簇并利用智能控制器管理它们来提高整个系统性能。美国专利4,156,907(在1979年5月29日授与Rawlings等人)和4,200,930(在1980年4月29日授与Rawlings等人)教导一个改进的自适应簇模块和数据通信子系统,它包括启动I/O处理器的固件,I/O处理器卸载从主机传送的数据和消息。本发明能够与采用多种传输协议的大量远程外设接口。该自适应簇模块主要是有关根据不同协议将“字节”通信操作变换为可以使用一个单独协议更有效地传输到主机系统的整个消息。本发明还采用几种可靠而有效的特性,使通信子系统即使当主机系统出现故障时也能继续处理远程外围传输。尽管分开的技术可以肯定提高I/O子系统级的性能问题,但是它们不能解决对于在两个处理器或一个处理器与在一个主计算机系统中的主存储器之间高速数据传输的需要。
存在致力于由本发明解决的全部问题的部分问题的几个发明,但是没有一个发明可以解决全部问题。更重要的,在这些发明中公开的方法的结合不能赋与由本发明提供的全部有效性的程度。例如,美国专利5392401(在1995年2月21日授与Baruechi等人)教导在两个处理器之间传送数据的改进方法。但是,该发明依靠使用一个纵横制交换机,并且没有教导共享的二级高速缓存器的caehe相关性。美国专利4445174(在84年4月24日授与Fletcher)教导用于利用专用高速缓存器和一个共享的二级(L2)高速缓存器联锁处理器的一个方法,但是没有解决带宽和与簇到接口有关的等待时间问题。美国专利5185875(在93年2月9日授与Chinaswamy等人)教导利用平行于将数据装置载到高速缓存器的同时将数据发送到请求的处理器,减少在存储控制单元之间数据传输等待时间的一种方法。尽管现在在计算机系统中广泛采用相似的技术,但是这个发明不能解决当存储控制单元不能提供用于请求访问高速缓存器的每个系统资源(包括I/O和存储器)的专用针接口时产生的问题。美国专利4785395(在88年11月15日授与Keeley)教导用于至少在一对处理器中共享高速缓存器的一种方法。但是它假定所有处理器可以以相同的等待时间访问高速缓存器。
几个发明描述用于在一个共享总线系统中仲裁通信的技术,在该共享总线系统中各个处理器或处理器簇通过一个共享总线与主存储器和外部I/O设备通信。例如,美国专利4785394(在88年11月15日授与Fischer)描述用于仲裁共享总线的使用的方法。它们的技术包括给应答器优先于启动器并且使请求发送给即使处于忙时的接收模块。本发明通过只有当在远端的资源能够适应工作时使簇到簇接口忙来改进这个仲裁操作。另外,动态执行响应器和启动器之间的仲裁,每个周期没有固定的优先权。美国专利4570220(在86年2月11日授与Tetrick)采用串行和并行总线的组合构成系统总线。在几个“代理“中共享该总线,其中每个代理必须参加一个握手序列以获得使用总线的权利。本发明跟踪远程资源,使得它能够动态启动在一个单独的时钟周期上的新请求,不需要执行任何类型的总线协商。
本发明描述一种用于管理在双节点SMP系统中两个簇之间接口的装置。该优选的实施例结合到对称多处理系统中,该系统包括多个中央处理器,每个处理器具有一个专用L1高速缓存器,多个I/O适配器,和一个主存储器,其中任意处理器或I/O适配器可以存取存储器的任意部分。处理器和I/O适配器的总数被平等地划分为两个簇。另外,主存储器由存储体或交错组成,其部分连接到每个簇。
在每个簇中,存在一个存储控制器,由一个共享第二级高速缓存器,各种控制器,和对每个处理器的离散接口(或端口),I/O适配器,和主存储器组成,在本实施例表示的高速缓存器由多个存储体或交错组成并且内容(contents)由一个8路相关目录管理。图1A描述的存储控制器说明主要功能部分并且将进一步在优选实施例的描述中描述。但是,一个单独簇内的存储控制器的简要概述对理解本发明是有利的。
存储控制器的主要功能是处理从处理器和I/O适配器读取并存储到主存储器或来自主存储器的请求的数据。因为存储控制器包括一个共享的第二级高速缓存器,它对于软件和操作系统在体系统结构上是看不见的,存储控制器负责执行目录和高速缓存器存取。所有的输入请求进入存储控制器的一个端口,在那里它们由中央处理器(CFAR)或I/O控制器接收。这些控制器产生请求到一个中央优先权单元,在那里在这些请求中仲裁并选择一个请求进入基于该地址的两个多级流水线之一。在流水线的每一级期间,请求器访问和/或保存诸如高速缓存器,本地高速缓存器读取/存储控制器,数据通路控制器,数据通路先入先出缓存器,远程高速缓存器,读取/存储控制器等的各种资源。
当请求退出流水线时,本发读取/存储控制器之一负起管理通过完成的操作的责任。这经常请求通过流水线的另外通路,因此本地读取/存储控制器必须还参与中央优先权仲裁,并且还认为是一个请求者。在本实施例中,我们包括高速缓存器控制器和主存储器控制器,作为本地读取/存储控制器的部分,在它们之间它们包括需要访问来自高速缓存器交错的数据的所有资源(包括例如fifo缓存器的数据通路单元和交叉点交换机),当高速缓存器出现没命中时,处理接入主存储器的数据,执行进入高速缓存器交错的存储操作,并且舍去从高速缓存器进入主存储器的过期数据(使用最近最少使用算法)以便为来自主存储器访问的输入数据产生空间。
如上所述,在两节点系统的两个簇之间物理分配主存储器存储体。但是,主存储器作为对位于SMP系统中任何地点的任意处理器或I/O适配器的一个单独统一的实体。因此,本实施例加入称作远程读取/存储控制器的一个另外的控制器组。存储控制器记录哪些主存储器地址分配给每个簇中的存储器存储体。无论何时数据存取(读取请求)没命中本地簇中的高速缓存器,(此处术语本地指原始处理器或I/O适配器连接的那个簇),本地读取/存储控制器必须询问远程(或“其它”)簇以看数据是否保存在那个高速缓存器中。这些远程询问由远程读取控制器处理,该远程读取控制器产生中央优先权的请求并且以对本地读取/存储控制器的相同方式访问资源。
另外,如果数据访问没命中远程的高速缓存器,但是地址表示它属于连接到远程簇的存储器存储体,那么远程读取/存储控制器也与主存储器控制器配合以便启动主存储器访问。对于必需将数据存储到存储器的操作(例如舍弃高速缓存器的过期数据),地址再次确定本地读取/存储控制器是否可处理整个操作或是必须通过该双节点接口起动远程存储操作。在这种情况下,该远程存储操作由远程存储控制器处理,该远程存储控制器也与主存储器控制器配合以便将数据存储到存储器交错中。关于本地读取/存储控制器,它们的远程对应物也包括需要处理内部簇操作的所有资源(包括数据通路,fifo缓冲存储器,和交叉点交换机)。
本发明适合用于管理包括前述的远程读取/存储控制器的资源的一个远程管理系统,并且还适合分配工作给这些远程读取/存储控制器,它们依次为执行所需操作的代理,无需知道启动工作请求的请求者。只有当远程资源对于处理工作是可以得到的时才分配工作,不需要对称处理器的多个簇之间的恒定通信。它使用最少的接口通信信号。
我们的远程资源管理系统利用减少的输入和输出针数以一种高效方式管理对称多处理器两个簇之间的接口。采用几种技术克服针限制并且仍然允许在例如S/390企业服务器的非常复杂的计算机系统内的集成,其中单一簇可以包括大量的甚高频处理器,一个共享的2级高速缓存器,若干I/O适配器装置,和一个主存储器。在这样一个系统中,性能是最高的,而与高速缓存器未命中有关的等待时间一定是最小化的。这样,本发明设法最大化整个系统性能,而最小化组装的成本。
首先,每个簇上的一个单一接口负责整个接口控制。这包括定排队请求的优先次序,通过该接口发送新的操作,处理来自其它方的返回响应,并监视簇之间所有数据的传送。因为控制I/O的有限个数,我们的发明使用与命令重映射耦合的远程资源管理的新组合以最小化需要发送的信息数量。本地接口控制器不仅启动到远端的工作请求,而且管理远端的读取/存储控制器,因此立即将新的操作发送到一个可用的控制器。远程读取/存储控制器干脆成为代表本地接口控制器工作的一个代理,他顺序代表请求者工作。通过以这种方式工作,因为远端无原因要知道,所以减少了发送识别操作所有者的信息的需要。
通过命令重映射操作实现了远程控制器的进一步简化,重映射操作使几种本地操作结合为一种单独的原子远程操作。例如,一个处理器读取用于只读数据拷贝的请求,和读取用于包括存储保护密钥的只读数据的请求,要求远程簇上的读取控制器使用相同的状态图和高速缓存器管理操作。因此,接口控制器将把这些重映射为称做READ DNLY LINE FETCH(只读行读取)的一个单独的简化的远程存储簇(RSC)接口控制器命令,这样减少了必须由远程存储簇接口控制器(RSC)处理的操作数目。
这种重映射操作的另一种好处是通过祛除不必要的数据传输能够更有效地管理接口数据路径。考虑一个64字节I/O存储需要将输入的64字节合并成在存储在主存储器之前的相同数据行的最新拷贝。这个操作根据目标主存储地址和目前的高速缓存器状态可以导致三种不同的情况:
1.如果数据目标在于远端的主存储器,并且未命中本地高速缓存器,那么I/O存储数据必须被发送到其它端用于合并。这将使执行从本地簇到远程簇的存储操作的RSC接口控制器(RSC IC)成为必需的。
2.如果数据目标在于本地存储器,但是命中在远程高速缓存器,那么需要从远端检索出该行以便在本地产生簇合并。这将使对远端的交叉询问以及可能的数据读取成为必须的。
3.如果该行拷贝存在于两个高速缓存器,那么因为输入的64字节可以与本地高速缓存器上的拷贝合并,所以唯一请求的操作是使远端的行invalidate无效。
一个较简单的设计是通过该接口无条件地发送具有64字节数据的I/O存储命令。另一端的远程读取存储控制器将根据目录状态接着执行必要操作。但是,在三种情况中的两种情况下,传送存储数据将不需要占用本地到远程数据总线。还需要另外的控制线发送目录信息。我们的发明采用一个智能接口控制器,将后两种情况分别重映射为“强制舍弃”和“只读无效”命令。
命令重映射提供了几种好处。首先,因为许多操作可以映射为较简单的原子接口操作的子集,所以它简化了远程读取/存储设计。其次,不要求额外的控制I/O发送簇之间的目录信息。第三,为防止等待时间的任意增加,在相同的周期内执行命令重映射,使得为通过接口的新命令分配优先级。
设计远程管理系统与一个高端存储子系统接口,该子系统包括服务一个单独的或多个流水线2级高速缓存器的大量的读取和存储控制器。一系列优先权站用于最终选择一个请求通过该接口发送。当包括多个管道时,在每个管道中的预优先权站选择一个读取或存储请求以便发送到RSC IC。在同一周期期间,RSC IC根据命令类型和可用资源,采用高性能优先权操作选择最佳的请求。因为多个管道可以在任何给定周期请求使用该接口,所以只要远程读取控制器是可用的,该操作将有助于使读取优先于存储。否则,只要远程存储控制器是可用的,和对于那些需要数据通路的存储操作数据通路是可得到的,则存储将优先。如果两个请求都是读取,并且都是具有可得到的资源,则一个简单的循环确定赐给哪个请求,在两个请求均为储存的情况下,优胜者由具有可利用资源的无论哪一个流水线确定。再者,如果两者具有所有可利用的资源,则使用简单的循环。这种方法虚拟地保证只要有工作请求和可得到的资源,则命令将被发送,此外对处理器读取提供的优先处置提高了整个系统性能。最后,本地接口控制器内的远程资源保证接口周期将不是浪费结束在远端排队的发送工作。
为进一步减少由于L1高速缓存器未命中的处理器数据访问等待时间,RSC IC在没有读取或存储控制器请求使用接口期间采用“快速通路”技术。在这些周期期间,监视用于合法CP读取的所有管道。如果发现一个管道,则立即分配给远端,同时本地高速缓存器读取控制器被并行装配。这使读取请求得到一个对远端的周期标题开始,由此减少了返回数据的等待时间。
因为大的不均衡可以存在于对于命中远程高速缓存器的数据读取的最好情况等待时间与来自本地主存储器的数据访问之间,RSC IC具有将远程高速缓存器命中传送给本地读取控制器的功能力,因此使主存储访问被删除。这通过使存储器存储体自由工作于另一个请求有利于整个系统性能。
在使达到最大限度性能的同时RSC IC采用同步和异步响应总线,保持高速缓存器相关性。因为不可能确定在请求测试远端的高速缓存器状态以前完成操作的管道周期的准确数,使用异步响应总线用于所有最后的响应。这些响应标记远程操作正式结束并且被传送到原始的请求者。另外,标记最后响应与数据修改信息(行改变状态)结合,允许利用正确的最终状态更新本地目录。因为最后响应可以由于对单独的最后响应接口总线的争用被延迟。能通过在一旦知道原始远程高速缓存器交叉询问(XI)的报告提高性能。RSC总能够使用同步XI响应总线在最小的时间帧中报告这个XI结果。由于SC的中央优先权站保证从远端接收的任何新的请求将立刻输入适当的流水线,所以这是可能做的。在一个固定的管周期执行原始目录查找并且结果通过XI响应总线发送回来。启动该操作的接口控制器知道XI响应在固定个数的未来周期里将是可得到的,所以使用一种简单的分级机制将命中/未命中结果传送给请求读取/存储控制器。
除管理控制接口以外,RSC IC还管理所有簇到簇数据流。本发明包括足够的数据流I/O,以便使每个管道每个周期以两个方向传送16字节,并且RSC IC能够利用潜在的64字节的每周期最大通过量。尽管有两个单向数据通路,一个给定的数据通路必须用作用于存储从簇A至簇B的数据管道。和从簇B到簇A返回读取数据的管道。RSC IC不仅防止冲突,而且在不预先保留总线的情况下防止冲突。这依次使RSC IC将来自本地存储控制器的请求与来自常驻远程读取控制器的请求作比较以便试图返回读取数据。在竟争数据通路期间给返回读取数据优先。这再次有助于整个系统性能。而且,在从远程主存储器获得读取数据的情况下,当数据从存储器存储体访问时,RSC IC监视相应的数据通路。如果该RSC数据通路是可得到的,则数据将旁路远程读取缓存器,因此减少了与暂时缓存该数据有关的正常等待时间。
我们已经证明用于改进远程存储控制器资源的管理的方法已重现提高整个系统吞吐量。例如,用于最大限度增加命中远程高速缓存器的后续读取请求效率的一种技术是准备在复制的远程读取资源之间选择工作请求。所有的读取以与被传送的前16个字节数据一致的最后响应结束。优点是它能使在远程读取控制器的缓存器仍是空的同时远程读取资源立即分配给一件新的工作。当新的一件工作也是命中远程高速缓存器的数据读取时,缺点就出现了。因为缓存器可以仍然是空的,所以远程读取控制器必须通过管道反复循环该请求,直到缓存器变为可用时为止。RSC IC通过将第二读取请求发送给如果是可利用的复制的远程读取控制器减少了这种情况。这使第二远程读取控制器在第一缓存器仍然完成它的数据传送的同时开始装载它的缓存器。这使在完成第一缓存器的传送时,第二缓存器立即通过该接口传送其数据。
远程接口通过使许多操作当操作在远端不能成功完成的情况下被重新试验还表现出高度的可靠性和可用性。这些类型的问题归入两种主要的分类:远程拒绝和接口错误。操作可以由远程簇拒绝以避免潜在的交叉簇死锁。这些死锁当存在比服务于它们的RSC资源多的存储子系统读取和存储控制器时出现。远程读取和存储控制器包括设计为监视可以导致交叉簇锁的操作序列的死锁避免机制。在检测到这种情况时,控制器通过返回一个特定的拒绝响应给初始簇来描绘挂起操作。RSC IC将依次发送该拒绝给初始读取/存储控制器所以可以重试该操作。可以继续拒绝和重试操作直到死锁窗口消失。当在伴随新的RSC操作的任何控制信息中检测到接口奇偶错时,其它类型的恢复出现。同步接口用于在该命令发送以后的固定周期数内发送接口错误状态。在错误的情况下,通知原始的读取/存储控制器并且接着确定恢复的适当性。RSC IC自动重新设置相应的RSC资源以允许操作再次被请求。这些和其它改进在下面的详细描述中阐述。为了更好地理解本发明的优点和特点,参照描述和附图。
尽管结合本发明优选实施例描述了本发明,但是本领域技术人员会懂得这里公开的原理适合于包括多于两个簇,和使用不同于我们的本发明的存储簇的系统。另外,本发明试图替换不同数量和结构的功能部件的储存控制器实施例,包括但不限于高速缓存器结构,主存储器构造,数据通路资源的个数和大小(例如,缓存器,控制总线等),各种控制器的组成,和流水线的个数和尺寸。
图1a描述双节点对称多处理器系统的一个单独存储控制器簇。
图1b描述负责处理从远程簇返回的所有响应通信量的响应处理器,构成远程存储控制器RSC IC(10)的详细接口和子部件,并且还表示远程读取/存储控制器(12)与RSC IC之间的接口。
图2表示硬件的命令变换的优选实施例实现。
图3描述具有馈送主命令优先权站(33))的它的流水线站(32)的所有优先权站。
图4表示如何将命令分级到适当的资源保持寄存器。
图5描述提供禁止位,有效位的资源寄存器(59),命令寄存器,原始请求者ID寄存器,LFSAR控制器ID寄存器和LFSAR缓存器寄存器的的一个单独组的详细图。
图6表示分级机制和响应处理器(22)如何利用分级机制跟踪XI响应。
图7描述工作在与其它描述的分级流水线相同方式下的只读无效分级流水线(75)。
图8表示在一个RSC IC内的一个流水线接收和驱动交叉点的内部逻辑。
(注:为说明方便,图可以分成部分并且在使用多个图表的情况下,作为惯例,当看图时我们将图的顶部作为第一图表,接下来和经过的是后续图表。)
图1a描述一个双节点对称多处理器系统的单独存储控制器簇。本发明表示为与本地读取/存储控制器(11)的双组,远程读取存储控制器/(12)和集中的多级流水线(13)交互的远程存储簇接口控制器(RSCIC10)。这些流水线由一个中央优先权(14)站馈送,该中央优先权(14)站优先从N个中央处理单元处理器(15)或N个I/O适配器控制器(16)发出的异步工作请求。每个CPU控制器具有对SMP系统中特定中央处理器(CPU)的亲和性。流水线包括所有中央处理单元,I/O适配器和本地和远程读取存储控制器已经读取和写入访问的一个共享的2级存入高速缓存器。在优选实施例中采用的高速缓存器相关性操作使数据驻留在只读状态的高速缓存器,只读状态使所有簇中的所有处理器和I/O适配器可以访问数据拷贝,或独占状态,使一个单独的处理器可以在任意时间占有该数据。任意簇中的任意处理器可以在任意时间请求数据的所有权,即使另一个处理器目前正占有那个数据。
优选实施例使用一个双流水线设计,其中中央流水线(13),远程读取/存储控制器(12)和本地读取/存储控制器(11)都是双倍的。本发明中公开的原理独立于存储控制器(SC)的周围结构并且可以仅有效实现为更传统的单独流水线SC设计或采用三个或更多流水线的较不传统的SC设计。本领域技术人员会知道如何能够容易地度量RSC IC(10)接口和内部功能模块以适合几乎任意的SC结构。
RSC接口控制器(10)由与各种SC功能单元联系的若干子部件组成。因为只有一个单独的远程存储簇接口服务来自流水线(13)的双组和读取/存储控制器(11,12)的请求,单独的RSC IC必须适合多个本地接口和簇到簇接口。另外,它必须管理从本地簇到远程簇的通信流以及来自远程簇的通信流。图1b描述详细接口和组成RSC IC(10)的子部件。
由于在优选实施例中存储控制器的特性,请求的绝大部分来自本地读取/存储控制器(11)。这些请求被分成叫做LFAR请求的读取请求,和叫做LSAR请求的存储请求。在优选实施例中,每个流水线有4个LFAR和4个LSAR请求者,这样总共有竞争使用RSC接口的16个可能的LFSAR请求者。在LFSAR控制器内的一个预先优先权站从每个管道中选择一个请求者并且在任意一个时钟周期最多传送两个请求给RSC IC。再者,本发明精神允许在任意个数的流水线中分配的任意个数的LFAR和LSAR请求者。另外,在LFSAR控制器(11)内的预先优先权站可以直接结合到RSC IC内的命令优先权单元中。
将我们的注意转向LFSAR控制器(11)和RSC IC(10)之间的接口,存在对于与一个流水线有关的每组控制器的一个接口。每个接口由请求总线,C3命令总线,C3请求者ID总线和C3地址总线组成。8位请求总线包括用于每个LFAR和LSAR请求者的每个位,在任意周期只有一位是有效的。这位指定在那个周期由预先优先权站选择的LFAR或LSAR控制器的ID。响应的总线将命令,地址和CPU的ID传送到启动流水线中命令的I/O适配器或SC控制器。所有这种信息在相应于流水线第三级的C3周期提供给RSC IC。如果RSC IC不能承诺在它被提交的周期中的请求,则LFSAR控制器可以继续提供相同的请求或动态选择在下一个周期中的一个新的请求。
除了LFSAR控制器,流水线(13)本身还作为允许叫做快速通路的操作的请求者。快速通路使RSC能监视所有管道并且在需要操作和没有从任意一个LFSAR控制器(11)挂起的工作时开始一个远程读取操作。从每个管道的第一级(C1周期)获得C1命令,C1地址,和C1请求者ID并且发送到RSC IC的优先权(21)子单元内的一个优先权站。预先优先权站的输出被传送到主优先权站(也位于RSC优先权(21)子单元内。在那它与来自LFSAR控制器(11)的请求竞争)。
在每个周期,RSC优先权(21)站检查挂起的工作请求和使用一个高性能操作确定哪个请求应该被允许通过接口。当选择一个请求时,允许被发送到相应于选择的操作的流水线的LFSAR控制器(11)。允许表示选择的操作是否是来自LFSAR控制器(11)的一个挂起请求或是一个从流水线(13)启动的快速通路操作。当允许被发送到LFSAR控制器时,选择的命令以及它的相关地址,请求者ID,和表示RSC资源的标记线通过RSC接口发送到远程簇。
所有的RSC操作请求来自远程簇的某些类型的完成响应。另外,数据读取还请求表示该请求的数据是否存在在远程高速缓存器的一个交叉询问(XI)响应。所有的处理通过RSC IC(10)处理并且或者直接发送或者间接发送给原始请求者。大多数时间响应被解码并且适当状态,释放和高速缓存器相关性信息被传送到LFAR或LSAR控制器。但是,许多操作包括将响应发送回原始的CPU控制器(CFAR 15)。不管响应的最后目的地,RSC IC跟踪对于每个操作的所有必要信息以便在一个单编码响应总线上可以多路复用用于所有RSC操作的响应信息。RSC IC接收输入的响应到响应处理器(22),其工作是解码该响应并发送适当的信息给LFSAR控制器(11)或CPU控制器(15)。
图1b还表示远程读取/存储控制器(12)与RSC IC之间的接口。远程读取/存储控制器被分为单独的远程读取(RFAR 12a)和远程存储(RSAR 12b)控制器。远程读取控制器(12a)负责接收来自其它簇的读取请求,通过流水线(13)处理它们并返回该数据(如果可能)以及必要的响应信息。远程存储控制器(12b)负责接收输入的存储操作(和任意伴随的数据),通过流水线(13)处理它们,并且返回必要的响应信息。每个流水线具有与它相关的的一个RFAR(12a)和一个RSAR(12b)控制器,因此四个请求的最大数可以发送给RSC IC以便在给定的周期返回编码响应总线上的信息。RSC IC内的响应优先权(23)子单元在这些请求之间仲裁并且管理编码响应总线上的通信量。如果一个RFAR控制器需要返回读取数据,则响应优先权(23)站与RSC优先权(21)和XPT控制器(25)通信以便保证数据路径是可用的。
本发明的关键方面之一是使用资源寄存器(24)跟踪在本地端的所有的远程活动。为了最小化接口I/O和最大化吞吐量,RSC IC作为在本地端的原始请求者的代理。它跟踪远程端的RFAR和RSAR资源,减少了对固定簇到簇通信的需要。资源寄存器(24)与RSC优先权(21)站联系以便保证只有在RSC资源是可得到的情况下才启动操作。在启动操作时,RSC IC标记选择的RFAR或RSAR作为“正在使用”,并且资源保持正在使用直到接收到表示操作完成的响应为止。接着使用这些响应复位该资源并且使该资源对于新的操作是可用的。
在优选实施例中,有总共由用于每个流水线的2个RFAR和2个RSAR组成的8个RSC资源寄存器(24)。两个RFAR/RSAR的每一个是彼此相同的并且存在主要是通过使多个远程读取和存储操作由每个管道同时处理来提高性能。再次注意到本发明既不需要也不限于每个管道2个RFAR和2个RSAR。以相同的方式而不管存在的个数跟踪所有远程资源。
在选择操作之前,原始流水线命令执行对RSC命令的变换。在许多情况下,产生的RSC命令与原始命令是相同的,但在某些情况下,重映射命令代码点以便使类似的操作共享一个单独的RSC代码点。这个步骤还保证所有RSC读取命令落入连续的范围(优选实施例中的‘01’x-‘1F’x),同时所有存储命令落入不同的连续范围(优选实施例中的‘20’x-‘3F’x)。在启动操作时,RSC IC使用两个选择位表示8个资源应该服务新选择的操作的另一端。该两个位指的是流水线和在那个流水线内的双资源的位应该处理该命令。命令的位0确定该命令是读取类型(位0=0)还是存储类型(位0=1)。所有的读取命令是RFAR服务的,而存储是由RSAR处理的。因为命令和地址必须总被发送,这个方法只需要仅发送一次的两个另外的接口控制位,以便同步两端。还应该注意到该优选的实施例描述了一个RSC接口总线发送除命令,地址和选择线路以外的请求ID。这个请求ID仅仅是通过RSC接口传送和发送到远程端的诸如CPU控制器或I/O适配器控制器的一个请求者。由本发明采用的该技术不需要知道原始请求者的ID以便实现权利要求书阐述的目的。
最后的子单元是交叉点(XPT)控制器(25),负责管理连接簇的四个数据路径。在优选实施例中,对于每个管道有两个单向数据路径,因此允许四个数据传输同时发生。每个数据路径具有它的XPT总线使得四个操作可以同时发生。数据路径是16字节宽,并且每个周期可以传输四倍长字(16字节)。
本发明的目的之一是利用远程资源管理的使用以便最小化读取/存储控制器(12)的尺寸和复杂度,以及必须通过簇到簇接口交换的信息量。在具有复杂的存储控制器的高端SMP系统中,实际上在一个本地簇中可以启动的每个命令还可以通过用于在远程簇处理的接口发送。当这些命令被分成一系列的原子操作时,一个操作发现在远端的RSC读取/存储控制器(12)可以使用相同状态机处理几种相似的命令。因此,为了简化RSC设计,本地端的一些原始命令被重映射为相等的“基”RSC命令。例如,一个“具有存储保护密钥的排它读取”导致相同的流水线序列和目录修改动作作为“没有密钥的排它读取”。因此,RSC接口控制器在通过接口发送它之前将有密钥命令(‘06’x)的排它读取重映射为简单的排它读取命令(‘02’x)。
优选实施例以图2所示的硬件实现命令变换。原始命令输入为实现命令变换表(28)的交换(FLIP)位要求的由逻辑门组成的交换FLIP位产生器(26)。原始命令与目录状态和目标L3组合以便确如果存在情况下的那些位,是否需要被交换。产生的FLIP位与XLAT(27)块中的原始命令异或以便产生在命令变换表(28)的RSC命令列中所示的所需的RSC基命令。设计RSC命令变换器以执行在一个单独时钟周期内的变换和作为一个独立的功能单元。因此,本领域技术人员可以知道采用这个方案的灵活性。例如,命令变换器可以物理地实现为RSC接口控制器(10)的部分或它可以包括在启动对RSC的工作请求的控制器中。而且,该变换器可以与相同的逻辑周期结合在一起作为RSC命令优先权站,或者如果原始命令是可得到的,则它可以在更早的周期中执行。例如,在优选实施例中,在第二流水线级(C2)流水线快速通路命令是可以得到的,因此它可以在RSC命令优先权周期之前变换。
命令变换的使用以几种方式提高了接口效率。首先,如果所需的数据驻留在本地高速缓存器,许多操作不需要通知远程端。因此,命令变换器将使用目录状态以便从请求RSC接口的使用中排除这些类型的操作。第二,命令变换保证数据传送只需要在一个方向上发送,而不是原来先处理,再返回原始端。例如,没有变换的一个I/O存储64字节(命令28)将导致无条件的64字节数据传输,即使数据的最终目的地是本地L3存储器。这意味着64字节将被传送到远端,合并成目标行,并且修改的行将不得不通过接口再返回,所以它将存储在连接到本地簇的L3存储器中。我们的发明通过使用本地L3和目录状态优化了数据传输以便如果目的地址是远程L3存储器和数据不驻留在该高速缓存器,则仅通过接口发送64字节。如果数据未命中该高速缓存器,并且目标L3是本地端,那么将一个通知发送到请求从远程高速缓存器传送的数据的另一端。在这种情况下,原始数据不进行传送,并且如果目标行保持在远程高速缓存器上,则数据将仅通过接口返回。即使数据处于远程高速缓存器,整个操作只使从远端到本地端的单独的数据传送是必要的,在那它可以与I/O存储数据合并并且放置在本地L3存储器。最后,I/O存储的第三种可能的情况是目标数据驻留在两个高速缓存器的只读状态的情况。再次,在这种情况下,I/O存储数据可以与本地的数据副本合并,所以不必要通过接口传送任何数据。代之以原始命令被变换为传送到远程读取/存储控制器(12a)的只读无效命令,所以在远程高速缓存器上的数据副本可以标记无效。
为了尽可能有效和便利地处理工作请求,RSC接口控制器(10)采用多级智能优先权站。图3表示由馈送主命令优先权(33)的流水线预先优先权站(32)构成的整个优先权站。流水线预先优先权站监视寻找快速通路选择物的两个流水线的第一级(C1)。任何CPU读取命令(‘01’x-‘07’x)被认为是快速通路的选择物。如果任意一个管道命令是选择物,则它输入预先优先权站(32)并且和其它流水线命令竞争用于选择进入C2分级区域。如果在那个周期只有一个管道具有有效选择物,则自动地选择它。如果两个管道都有有效选择物,则一个简单的循环确定下一个轮到谁。
无论何时选择管道命令进入C2分级区域,接着比较与第二流水线级(C2)有关的各种接口信号。这些C2拒绝信号由目录状态,来自各种CPU控制器(15)的拒绝信号,和来自LFSAR控制器(11)的快速通路信号组成。这些信号的组合确定在C2分级区域中的目前操作是否应该被完全拒绝还是发送到主命令优先权站(33)。用于拒绝操作的可能原因是:
○命中本地目录的CPU读取,具有适当状态,否认需要通知远程端数据。
○来自任意的CPU CFAR控制器(15)的拒绝信号。
○C2流水线无效被复位。
○来自LFSAR控制器(11)的块快速通路信号。
○来自L3存储器结构阵列的无效地址表示。
如果没有出现拒绝条件,则命令被传送到主命令优先权站(33),在那它与来自两个LFSAR控制器(11)的请求竞争。
如图3所示,命令优先权站(33)从每个LFSAR控制器(11)以及从流水线预先优先权站(32)发送的快速通路信息中接收一组信号。另外,它还与8个资源寄存器(24)和XPT控制器(25)联系,所以它可以智能地选择一个适当的操作。
基本地,如果一个操作被挂起和RSC资源是可得到的,则该操作将总是试图选择一个LFSAR操作。如果只有一个单独的LFSAR控制器(11)请求,和RSC资源是可得到的,则选择它。如果两个LFSAR控制器(11)请求,并且只有一个控制器具有可得到的资源,那么它将获胜。如果两个LFSAR都请求,并且两个都有可得到的资源,则一个读取类型的操作将优先于存储类型操作。在两个请求具有相同类型的情况下,一个简单的循环确定下一个轮到谁。最后,如果没有LFSAR控制器(11)请求,或没有资源可以得到以便承诺LFSAR请求,则选择一个快速通路请求。
资源的可用性根据操作类型变化。因为只有请求的资源是相应于处理该读取操作的流水线的读取控制器(RFAR 12a),所以读取是最简单的情况。因为RFAR忙于处理其它的读取操作,或者因为资源禁止开关可以是有效的,所以RFAR可能是不可得到的。命令优先权站(33)监视每个RSC资源禁止开关和无效位以便确定可用性。
为进一步提供系统性能,优先权操作结合响应处理器(22)工作以便最大化远程读取效率。通常读取将分配到下一个可用的RFAR控制器(12a)。远程簇的RFAR将处理流水线中的读取请求和开始装载它的数据缓冲器。同时它将对远端的RSC IC(10)发出请求以便通过接口返回最后的响应和数据。最后的响应一被发送,RFAR资源就被认为是可得到的和可以接收新的工作。如果一个新的非数据操作发送到那个RFAR,则在来自前面读取的结尾字节仍然从数据缓存器中读出的同时可以处理它。但是,如果新的操作是第二数据读取,则通过远端的流水线继续再循环直到该缓存器变为可用的。
本发明通过保证如果两个资源在第二读取请求到达的同时是可得到的,则连续的数据读取将被发送给交替的RFAR控制器来防止这种情况。例如,如果RFAR A0正在处理第一读取,而在RFAR A0仍然忙的同时第二读取到达,则它将被发送给RFAR A1(假定RFAR A1是可得到的)。另外,如果RFAR A0由于最后响应被发送而变为可用的,并且接着第二读取到达,它将还被发送给RFAR A1(因为RFAR A0缓存器仍然在传送数据)。但是,如果一个类似只读无效的非数据操作在RFAR A0仍然忙的同时到达,则它将发送到RFAR A1。如果这后跟一个是数据读取的第三操作,并且RFAR A0是可得到的,这个新的数据读取将发送到RFAR A0,即使缓存器仍然忙于传送结尾字节。换句话说,交替将请求发送到不同的RFAR的机制对于成对资源的任意一个是有帮助的。
图3b描绘了表示在上述装置和RSC优先站(21)之间交互的逻辑方框图。一个源触发功能存在于用于每对RSC源(24)的RSC IC之内。表示用于流水线A的RFAR对的一个单独的源触发器(35)在图3b中描述。它从每个RFAR源(A0和A1)中接收有效信号。这些有效信号,连同来自6个其它RSC源的那些信号一起,也送到RSC优先站(21)。此外,由RSC优先站产生的流水线A读取许可信号也送到源触发器(35)。最后,源触发器利用触发占有锁定(36)控制哪个源对之一将被分配下一个操作,如果有正确条件。源触发器产生与读取同意信号“与”两次的一个单独选择信号以便产生送住RFAR A0和A1源寄存器的负载RFAR A0和负载RFAR A1信号。
图3b中显示的触发器真实表(37)描述了怎样更改选择信号和触发占有锁定(36)。如果两个源中只有一个是可得到的,则选择信号将不使用该可得到的源,而不管触发占有锁定(36)的状态。如果两个源都是可得到,并且对该流水线发出读取同意,则触发占有锁定的目前状态驱动选择信号。另外,如果是可得到,则触发锁定在下一循环被更新以待应该操纵“其它”源的随后的读取。正如在触发器真实表(37)的底部所示,可得到的信号是源有效位(59a),无效位(59f)的一种功能和表示最后响应的RST-RFAR-A0锁定为此源所接收并且被认为在这个循环“可得到”。
存储类型操作比读取更复杂,因为它们可以涉及一个初始数据传送以陪伴命令。通过测试无效开关和有效位,命令优先站(33)以与RFARS相同的方式决定远程存储控制器(RSAR 12b)的有效部分。命令优先站(33)解码RSC基本命令以便看它是否请求数据传送。如果命令不要求数据传送,则必须检验数据总线有效性。为通过这个检验,必须满足两个条件:
1、对应于发出存储的流水线的数据总线不总是繁忙传送数据。
2、相应的RFAR控制器(12a)不被请求利用数据路径以便返回从其它簇发出的读取操作的数据。
如果两个条件都满足,或者如果存储命令不要求使用数据路径,诸如ISK操作(命令30),则满足存储操作的源标准。
上述优先操作保证只要资源可用,新操作将进到远程端。另外,通过赞成LFSAR控制器(11),它提高了LFSAR资源的通过量,由此降低源阻和由等待彼此间完成联锁的资源造成的死锁。一旦选择一种操作,则用整27位地址跨越RSC接口发送命令(或在其初始或再变换代码指针)。远程端的RSC命令分配器根据C0-C1-CMD命令总线的位0的值发送该命令到RFAR或RSAR。此外,C0-C1-管道-SEL和C0-C1-REQ-REG-SEL被用来操纵对与处理该操作的流水线有关的选择的RFSAR控制器(12a或12b)的命令。这个远程资源管理技术使得大量的存储控制器资源在多个流水线之间扩展以便利用有限的I/O数使用共享的RSC接口。
如前所述,C0-C1-REQID是通过接口被发送的原始请求器的ID,但不参加远程管理操作。这个ID纯粹作为发送到远程端的信息来对待,并沿着需要它的存储控制器资源通过。
当发出新的RSC操作时,命令优先站(33)对相应的LFSAR控制器(11)发出许可。在优选实施例中,通过延迟这个许可一个周期来缓和临界定时路径。然而这个延迟意味着来自LFSAR控制器的请求线将被启动多于必须的一个周期。当分析下一个操作请求时,RSC优先站考虑这种情形诸如它不再次浪费选择相同操作的一个周期。有两种类型的许可发向每个LFSAR控制器(11),所说的控制器(11)清楚地指在RSC优先站中已经泄漏的。无论何时选择LFSAR请求,常规的许可就发出,同时如果选择流水线快速路径命令则发出特定快速路径许可。
一旦RSC优先站(21)选择命令去通过接口发送,则命令和其相关信息(LFSAR ID,请求者ID和LFSAR缓冲器ID)被加载到合适的RSC资源寄存器。图4说明该命令是怎样进入到适当的保持寄存器。CLC命令(42)和C3管道命令(43)分级寄存器的目的是通过图4右上角的3向多路器(41)缓和临界路径的定时。所有CLC命令从LFSAR控制器(11)中发出并是定时临界。为了改善全部的系统性能,远程操作在单周期中经过接口发送。由于这个相同的命令必须通过优先逻辑和小的交叉点开关以达到适宜的RSC次源寄存器,这就出现了询问路径。优选实施例通过分级来话CLC命令和通过交叉开关先发送的管道命令解决了这个问题。
转移我们注意力到图4,更详细地,与每个LFSAR控制器(11)请示相关的命令被分簇为CLC命令分级寄存器(42)。并行地,由流水线预优先站(32)选择的C2流水线命令被分级为C3管道命令分级寄存器(43)。还以并行,CLC和管道命令通过3向MIX(41)流动。这个MUX受来自命令优先站(33)的许可线控制。每个CLC命令可被加载为或者两个RFAR命令(45)或与CLC’S流水线有关的RSAR命令(47)寄存器。这意味着每个CLC命令具有4个可能的目的。由于快速路径命令被限制为CPU读取操作,则它们只能加载为两个RFAR命令(45)寄存器。该命令通过包括2路MUX(44)和网关(GATE WAY)(46)的交叉点开关发送。2路MUX由在CLC命令(42)和C3管道命令(43)寄存器之间选择的信号控制。网关(46)由允许CLC命令(42)通过的单独门线控制。所有这些控制信号被正交并且由组合具有选择下一个有效资源的优先逻辑的选择RSC操作的许可来造成。
RSC包含所有交叉簇操作的8个资源寄存器(24)。这就允许对每条流水线进行两次读取和两个存储操作以便同时发生。由于整个操作被本地RSC接口控制器(10)跟踪,则要求完成操作的所有信息必须保持在源寄存器(24)之内。图5描绘了包含无效位,有效位、命令寄存器、原始请求者ID寄存器、LFSAR控制ID寄存器和LFSAR缓冲寄存器的单独一组资源寄存器(59)。在优选实施例中,LFSAR控制器(11)内的每条流水线有两个LFARS和两个LSARS,但每个流水线只有两个LFSAR缓冲器。因此对于每个新操作,LFSAR控制器(11)必须动态地分配两个缓冲器之一到每个LFSAR ID。因此,缓冲器ID必须发送到具有每个新请求的RSC IC(10)。
应注意,本领域技术人员能意识到LFSAR资源总数、缓冲器和其彼此关系是怎样对本发明不起作用。在缓冲器总数等于LFSAR资源数并遵循固定关系的情况下,RSC IC将不要求额外的资源寄存器来跟踪这个信息。然而,也有其它实施例,其中RSC IC需要跟踪超出在优选实施例中说明的额外信息。不考虑在资源寄存器的必须跟踪的信息量,而仍然采用在此公开的原理。
返回图5,该图说明稍微复杂一些的细节,因为它包括C3快速路径寄存器(55a)和CLC分级寄存器(55b)。图4说明的正是资源寄存器的命令部分,并描绘所有8个资源寄存器。另一方面,图5显示一个资源但显示要求跟踪给定RSC操作的所有信息是怎样加载到资源寄存器。从命令优先站(33)发出所有控制信号。这个图只用了优先许可(所用实际信号的子组)来描述各种资源寄存器怎样加载的逻辑定时。
在操作发出许可之后有效位(59a)开始加载在该周期上。或门(54)保证有效位被加载而不管该操作是规则CLC操作还是流水线快速路径OP。由于有效位在决定资源是否有效时起到重要作用,所以这保证在下一优先周期资源被标记为无效。为了减轻通过驱动许可出去到完整的组资源寄存器(59)而造成的定时临时路径,我们的发明采取这种事实的优势,即剩余的信息可以在加载之前延迟。
从LFSAR控制器(11)发出的那些CLC操作,按照逻辑定时是最简单的。对于这些操作,分级的CLC许可(53)经过或门(54)控制2路MUX(56)和网关(58)。因此当许可启动时,包含CLC分级寄存器(55b)的所有信息在有效位(59a)的加载之后的一个周期上加载为剩余组资源寄存器(55b)。
流水线快速路径操作被分级为只有C3命令和请求者ID寄存器的C3快速路径分级寄存器(55a)。在这个情况中,分级的快速路径GRANTLC(52a)通过2路MUX(56)选择C3流水线命令和请求者ID并加载它们为命令(59b)和请求者ID(59C)资源寄存器。一旦这些快速路径操作达到流水线第3级,它们就被加载为LFAR资源并分配一个LFAR缓冲器。这是必须要的因为许多CPU读取操作要求多条流水线穿过使得要求一个LFAR管理整个读取操作。因此,一旦知道这个分配,LFSAR控制器(11)将对紧跟流水线快速路径操作的周期上的RSC IC(10)产生一个特别请求。随着这个请求,LFSAR接口将包含LFAR ID和LFAR缓冲器ID。RSC IC对信息将在CLC BFR AND CLC REA寄存器(55b)的时间上使用快速路径许可LC2触发器。这将允许这个信息通过GA TEWAY(58)通过并在紧跟着命令(59b)和请求者ID(59C)寄存器后的周期上加载到LFSAR缓冲器(59d)和LFSAR ID(59c)。
优选实施例也描绘了利用执行位于CLC REQ寄存器的8个请求信号的8-3译码的译码器(57),并在LFSAR ID寄存器(59e)中存储该ID作为3位值。表示无效寄存器(59f)的1个附加位也被完全包括。这个单独位寄存器是也可以通过优选实施例的UBUS加载的一个可扫描寄存器。每个RSC源寄存器具有这样一个无效位,它允许资源经过微代码,稳定器,系统预置等等或者永久或者暂时无效。虽然这个位在RSC IC(10)常规系统操作中不起作用,但在工程预算和接口性能分析中起到帮助作用。
图1b所示的响应处理器(22)负责从远程簇返回的和送往适当完成信号给起始端的所有响应话务。存在有由RSC IC(10)接收的响应的两个主要类型许多RSC操作包括远程交叉询问(XI)以便决定数据是否存在于远程高速缓冲存储器中。无论何时请求这些操作之一,在另一侧接收该命令并利用保证的优先级输入远程线。该确保的输入流水线允许在操作通过接口发出的时间和知道命中/未命中结果的时间之间存在同步关系。在本实施例中,在命令在RSC接口出现之后XI响应返回4个周期。
从RSC优先(21)周期开始,响应处理器(22)利用图6所示的分级结构跟踪XI响应。为了改善丢失本地高速缓冲存储器的某一读取类型的性能RSC IC利用表示读取是否指本地L3或远程L3存储器的地址位与同步接口耦合,以便确定是否自动离开操作。例如,如果该取指向远程L3,则RSC资源必须保持有效直止操作完成,因为希望的数据会从远程高速缓冲存储器或者远程L3来。然而,如果地址指向本地L3,并且数据不存在于远程高速缓冲存储器则资源可以自由工作在新的操作上,因为数据读取可以被本地LFAR控制器处理。
每个CLC命令寄存器(55b)的每个循环由解码器(61)分析以便看是否它是要求交叉询问(XI)的读取命令之一。这个结果与CLC本地L3位(60)组合并且来自表示这个CLC OP的RSC优先站(21)的信号发出许可。按并行C3管道本地L3位与来自表示快速路径操作发出许可的RSC优先站(21)的类似信号进行比较。通过限定,所有快速路径操作要求交叉询问。由于许可相互排斥,则在一任何周期上只有一个分支可以启动。这些信号以所示的方式在2路和/或MUX(63)内进行组合,并且如果条件正确则导致加载4位L3分级流水线(64)的1位。这个流水线包括4位分级寄存器用于每个周期开始于2级而结束于6级。每个4位表示RFAR资源(12a)之一。虽然在图6未说明,但包括刚才描述功能的所有单元利用馈送每个2级位的结果输出被重复4次。又一次,由于这些RFAR资源中只有一个能加载到任何给定周期上,则L3分级流水线(64)中的每级的4个位被正交。当XI响应由响应处理器(22)接收时,流水线第6级对应这个周期。如果任何的4位被启动并且XI响应未命中,则通过并掉有效位(59a)预置相应的RSC资源寄存器。
除了只在数据子组读取期加载的特定L3分级流水线(64)之外,图6还显示了利用新开始的RSC操作加载的RFSAR分级流水线(67)。每个RSC资源寄存器(24)包含表示资源加载在最后周期的单一位锁定。这些8个资源负载锁定(65)是正交的,因为只有一个资源可以利用新操作每个周期加载。这8个寄存器的输出用8-3译码器(66)译码并且3位译码值存储到RFSAR分级线(67)。这条流水线也从2级开始6级结束。与有效位耦合的3位RSC资源ID通过分级每个周期被流水线化直至达到6级。逻辑定时是这样的,即这个ID在先级到达,这个6级是XI响应和远程接口差错信号被收到的相同周期。
在接口出错的情况下,3位RFSAR ID被解码并用于复位涉及操作的RSC资源寄存器(21)。此外,采用硬件查找表(68)以便利用3位RSC ID索引到那个资源寄存器的LFSAR ID(59e)寄存器。LFSAR ID寄存器内容还被解码并用于发送接口差错信号给适当的LFAR或LSAR控制器。例如,如果RFSAR分级流水线(67)的6级包括“010”值,则这就表示线A的RSAR 0是RSC资源。查找表(68)然后会在线A RSAR 0资源之内解码LFSAR ID寄存器,并且这个值将指向与这个特定操作有关的LSAR。相联一个具有相应本地LFAR或LSAR控制器的给定操作的能力允许许多RSC操作重试。经常是接口差错被中断,因此重试操作的能力阻止了不必要的系统停止。
采用RFSAR分级流水线(67)的一种附加系统性能改善是快速只读无效。RSC操作之一是只读无效,其中存在于高速缓冲存储器中的数据只读拷贝必须在远程端无效。这就出现了,例如当CPU希望读取具有排斥关系的数据,并且其它CPU具有数据的只读拷贝。如果其它CPU在远程端,则RSC IC将发送只读无效命令,在其它簇的远程读取控制器(12a)将处理。通常这个结果导致简单流水线通过以便无效掉目录输入。有时这些初始流水线通过导致地址比较试图接入在远程CPU上表现的相同线路的另一个控制器。当这些冲突出现时,就有几次其安全地允许请求排除关系的CPU在冲突完全解决以前具有该数据。本发明的远程读取控制器(12a)具有能力在起始流水线通过期间检测这些“安全”情况,并经由同步XI通知RSC IC响应安全进行的总线。
图7描述了以与上述其它两个分级流水线类似方式工作的只读无效分级流水线(75)。用于两个流水线的CLC命令寄存器(55b)利用滤出只读无效操作的ROI解码器(73)解码。这样,与CLC许可(53)耦合表示开始有效只读操作。再次,这些中只有一个可以在任何给定周期上开始。这个结果送给ROI MUX(74)并用于设定只能无效分级流水线(75)的2级。这个位向下送往6级,在那它并入在响应处理器(22)中接收的XI响应。如果RO无效6级位启动并且XI响应丢失,则采用RFSAR 6级寄存器(63)和LFSAR查找表(68)以释放相关LFAR控制器并允许它完成初始操作。远程读取控制器继续处理只读无效使得RSC资源有效位保持启动。一旦远程读取控制器(12a)完成操作,则它返回到退出操作的最后响应并允许资源接受新一份工作。同时,与只读无效有关的LFAR可以开始新的操作。为了防止只读无效的最后响应对新的LFAR操作的最后响应出错,RSC IC包含维持每个RFAR资源的寄存器。无论何时快速只读无效原理被用于释放LFAR时设定适当的维持寄存器,并且它阻碍了来自LFAR信令的下次的最后响应。一旦接收到最后响应,并且该操作正式完成,则维持寄存器随着剩余资源寄存器复位。
涉及远程操作,而不是交叉询问的本发明的所有操作以编码的最后响应结束。响应处理器(22)利用编码响应ID总线匹配具有开始操作的LFSAR ID响应。最小情况下,RSC IC(10)向完成操作的初始LFSAR控制器发信号使得它们可以释放其资源。在数据从远程端读取的情况下,前方数据发送到相应的本地LFAR控制器使得它能更改本地目录状态。此外,信号被发送到XPT控制器(25)以便允许RSC XPT代码指针发送到数据流片中。
子集远程操作也要求整个响应代码前送到CFAR控制器材)。例如,CFAR控制器得利用这个单独响应去发回一个最先和最后响应给中央处理单元。对于本发明中定义的7个响应位,位0和1不包括在实际的响应值中,而是,它们具有以下特定意义:
位0表示远程操作被拒绝,通常防止死锁状态。这个位导致重试信号正发向适当的LFSAR。LFSAR将试图在最后时刻重试操作。
位1表示线在CHANGED改变状态命中远程高速缓冲存储器。通过LFAR在数据读取期间运用这份信息以便计算本地目录。
剩余位根据开始的操作被编码以便表示各种完成代码。
除了处理从远程端返回的响应之外,RSC IC也采用了响应优先功能来发送响应给远程端。这些响应以交叉询问(XI)的形式并最后响应从远程簇开始的操作并在本地簇进行处理。来自每个流水线(总共4个请求者)的本地RFAR(12a)和RSAR(12b)控制器表示现存XI响应并请求发送最后的响应到RSC IC(10)中。交叉询问只从属于读取操作。因此只有RFAR控制器(12a)能代表XI响应。此外,因为只有一个交叉询问能在某一时刻由远程端开始,并且由于它们保证通过流水线以固定周期数处理,则只有4个可组织的RFAR XI响应之一能够在任何给定周期启动。因此,响应优先(23)逻辑简易化ORS共同的4个XI响应并前去输出到接口。
最后的响应请示可以从RFAR(12a)和RSAR(12b)控制器发出,并且远程操作在长度上变化很大,该响应非同步出现。响应优先(23)逻辑与RSC优先站(21)交互以便决定任何最后响应请示是否兑付。对于非数据读取的操作,响应逻辑利用简易优先操作选择4个RFAR之一并通过接口发送响应。如果多于一个RFSAR在同一周期发出请求,则操作更倾向于RFAR而不是RSAR。这就通过保证CPU要求的读取数据不由RSAR响应话务不必要延长来改善系统性能。在两个RFAR表示同一周期请求的情况下,操作使用循环选择一个RFARS。在没有RFAR能够兑付而多于一个RSAR被请求的情况下,简单的循环选择RSAR。
本发明新的一个方面是在响应优先功能(23)和RSC优先站(21)之间的交互以便最大化共享数据总线的效力。由于返回读取数据(从属于远程开始的读取)必须共享如本地开始的存储操作相同的数据路径,则当等待存储传送完成时读取的电势存在要延迟。响应优先通过执行试图返回读取数据的最后响应请求的以下步骤来减少这个电势:
1、它检测看是否对应于请求RFAR的流水线的数据路径有效。如果无效,则优先逻辑将立即选择RSAR请求,如果未决定的话。
2、如果数据路径有效,则优先逻辑将选择RFAR并通知RSC优先站阻止包括数据传送的任何未定LSAR存储操作。
以两个优先功能(21和蔼3)的操作周期地改变,这意味着它们估价当前环境每个周期并使所有决事实上在一个周期之内。因此,在因为数据路径无效而延长请求的情况下,它将在可以服务的第一个周期上服务。一旦请求被选择了用于通过接口发送,则许可被发送到请求RFSAR使得它将停止当前请求并在下一周期发出新的一个。除了实际响应外,RSC IC也发送3位编码响应ID总线,它表示RFSAR正返回响应。另一端上的响应处理器(22)解码这个3位ID以便解决哪个RSC资源寄存器需要复位。
所有响应在单独一个周期中交叉到RSC接口,而不管两个操作利用附加信息的响应总线。在关键操作期间,实际关键紧跟着响应。在检测字节绝对(TBA)操作期间,TBA状态在下一周期也跟着响应。在任一情况,RFSAR控制器发送特别信号给伴随着表示这是两个周期操作的响应请求的RSC IC。这允许响应优先防止任何新RFSAR最终响应在那个第二周期期间选择。
在我们优先实施例中的RSC接口支持总共4个QM数据路径。对每个管道的每个方向中(本地到远程以及远程到本地)有一个数据路径。物理上,每条数据路径要求2个SCD片来实施,每个集成片携带数据DW。这种设计在共享总数结构和真实专用点对点数据流之间兼顾。虽然在每个方向上有单向数据路径,但每条数据路径必须多路复用从接口两端发出的数据。例如,在任一时刻连接远程SC到本地SC的数据路径能够用于返回数据以响应本地发出的读取请求,或者它能够用来送出随着由远程端发出的存储操作的存储数据。理想地,这些操作会用分离的数据路径分隔开,但分包限制阻止这样做。无论如何,单向总线对于每条线存在两路的事实不允许每周期同时移动4个QW(64字节)。
RSC IC包含负责监督所有4个数据路径的交叉(XPT)控制器(25)。事实上,每个数据路径的一半在每簇中受XPT控制器的控制。例如,从本地SC到远程SC传输的数据被本地RSC IC驱动并由远程RSC IC接收。因此,XPT总线的驱动部分从本地RSC IC发出,同时接收部分来自远程RSC IC。所有4个数据通道由位(0:5)控制接收端和位(6:10)控制驱动端的11位控制总线控制。这部分XPT总线下文被称为接收XPT(RCVXPT)和驱动XPT(DRV——XPT)。
图8表示在一个RSC IC之内一个流水线的接收和驱动XPT。为了缓和临界定时路径,无论何时有可能则提前设定XPT信息。XPT GEN(81a)逻辑的作用是利用RSC资源信息和外部信号的组合来建立适当的数据路径控制。触发器(82a和颜悦色2b)作为一个门以便根据移动数据在确切的正确时刻释放XPT信息到RSC XPT总线。RSC XPT总线的位由各种缓冲控制器接收并在数据片上交叉转换。这个逻辑组成启动缓冲器数据和写控制以及选择器的简易解码器。在数据传送之后由于数据片没有逻辑操作知识,则RSC XPT总线必须“脉动”,一次用于每个QW传送。因此,如果数据线要求移动,则RSC IC在RSC XPT总线上为16个连续周期保持适当的值。
把我们的注意力转向XPT控制器(25)的RCV——XPT部分,我们看到RCV XPT GEN(81a)逻辑由RFAR源寄存器、方框——XPT信号和一个RSC——CMD馈送。如上所述,数据由这个SC接收出于两个原因:返回来自本地发出的请求的读取数据或来自远程开始的存储OP的来话存储数据。在前一种情况中,这个RSC IC负责读取操作并在一组RFAR资源寄存器中具有所有信息。XPT GEN逻辑利用在CMD(59b)、REQ ID(59c)、LFAR缓冲器(59d)和LFAR ID(59e)寄存器中的信息来计算RCV--—XPT的值并决定数据传送长度。如果长度大于1个QW,则XPT——CNTR(83)利用适当的循环数加载。所有这些在通过接口调用命令之后很快发生。当数据返回时,该第一QW总是伴随着‘03’X,‘023’X、‘05’X或‘18’-‘1B’X的编码响应。接收这些响应(匹配enc-resp-id)之一到触发器逻辑(82a),触发RCV——XPT的释放到RSC——XPT总线。在涉及多个QW情况下,XPT——CNTR将继续支持RCV——XPT值直到计算完毕。RVC——XPT将根据操作引导数据到合适的CPU口,I/O口,LSAR缓冲器和/或LFAR缓冲器(用于后来包括的高速缓冲存储器)。在某种条件下,指事实上本地CPU的数据必须阻止在最后的时刻被发往该CPU。RSC IC从用于抑制触发器的每个LFAR(11)和CFAR(15)中接收几个块信号。
关于利用RCV——XPT总线的第二种方案涉及接收从远程簇发出的存储数据。由于这是一个完全的异步事件,则同时要求XPT GEN(81a)触发逻辑(82a)。RSC IC监视来话RSC——CMD总线部分以及来自本地RSAR控制器(12b)的数据前置触发器。则RSAR——DADV被启动并且命令子集解码为合适值,则RCV——XPT被设定并且被送到RSC XPT总线使得本地数据路径片能被导引以便接收来话数据并将之送到RSAR缓冲器。
驱动XPT(DRV——XPT)以类似方式工作。再次,两种方案需要利用这个数据路径。第一个涉及本地开始的存储操作。在这种情况下,RSAR资源寄存器保持所有必要的信息以便设定DRV——XPT并加载XPT——CNTR(83),如果必要的话。由触发逻辑(82b)接收的RSAR——ST——OP信号根据通过接口发送的命令控制数据应该开始移动的定时。其它端上的RSAR将启动RSAR——DADY以便移动RSC IC,使得它能“睡醒”并接收存储数据。RSAR——ST——OP信号是简单的RSAR命令(59b)寄存器的解码以便决定当前操作是否要求存储数据传送。所有存储数据从本地端的LSAR缓冲器中发出,并且DRV——XPT将控制这些缓冲器的读取。
其它方案涉及返回由其它端请求的读取数据。由于这个数据源可以是RFAR缓冲器、PMA接口或任意的CPU遥感寄存器,则XPT GEN(81b)逻辑利用了除MBA——ID之外的来自RFAR控制器(12a)的信号组合。非零MBA——ID指数据将从对应于该ID的遥感寄存器中来。如果该ID为零,则各种RFAR信号号用来确定数据是从RFAR缓冲器还是从PMA接口中来。这些信号之一,PMA——DATA——RDY信号在数据正从L3存储器到存储控制器中传送的时间窗口期间由RFAR控制器(12a)产生。如果响应优先(23)可以在这个窗口期间处理RFAR编码响应请求,则该数据可以旁路过RFAR缓冲器并直接传送到RSC接口。另一方面,如果在响应优先(23)发出许可给请求RFAR之前到达窗口末端,则停止PMA——DATA——RDY信号。XPT GEN(81b)逻辑将随后发送数据到缓冲器址到RSC接口有效并能从缓冲器移动数据到接口的这样的时刻为止。本发明的这一方面通过在CP读取到远程簇期间取消不必要的缓冲器加载或不加载来改善系统性能。
除了设定DRV——XPT以外,来自RFAR控制器(12a)的几个信号包含允许导出数据传送长度的CRF——XFR——LEN总线。对于返回的数据情况,触发逻辑(82b)由来自响应优先站的RFAR许可启动,所说的触发逻辑与表示“返回读取数据的ENC-RESP值相耦合。这使得DRV——XPT释放到RSC——XPT总线的第二个一半上。再一次,如果传送长度大于一个QW,则XPT——CNTR(83)连续地启动RSC——XPT直止计数器用尽。
应注意,RSC的异步特征导致频繁的冲突,诸如本地RSC试图开始存储操作同时返回远程读取操作数据。为了在数据路径上避免冲突,而体现最佳性能,XPT控制器(25)与优先站密切交互以保证无论何时可能的许返回读取数据具有优先权。而且,一旦一条路径在使用中,优先站立即集中在不要求数据路径的发送新操作,致力于总是保持工作在簇间移动。
数据路径由称为驱动器(诸如RCV——XPT和DRV——XPT)的RSC IC管理,所说的驱动器具有分别用于目的和源的相应代码指针定义。
每个RSC资源寄存器包含一个图5中给出的单独位无效(59f)锁定。这个锁定可被扫描到‘1’到永久地无效资源的任意组合。此外,这些锁定也可以在UBUS寄存器中通过使用4个位设定。在优选实施例中描给的存储控制器包含可以读取,写入和CP微码修改的一系列这些UBUS寄存器。由于无效锁定可以经由这些微代码可控UBUS寄存器之一控制,RSC资源的动态无效可以得到作为一部分微代码程序或暂时的插入码。人们这样使用可能是可比性能分析以便决事实上在各种工作负载上的双倍资源。代码指针控制将在这些不能转换的RSC IC出现的结果行为。
下代码指针(‘1’X到‘6’X)与代码指针‘8’X到‘F’X的工作不同。通过启动RSC IC内的相关无效位,要求代码指针‘8’X到‘F’X不能简单选择资源。连续UBUS写操作能用于以任何希望的组合无效多个资源。下代码指针导致无效方案因此RSC IC内的优先逻辑将监视该无效模式以便限制以任何适宜方式的接口启动。例如,如果选择模式‘2’X,则优先逻辑保证第二操作将不发送直至第一个完成为止。
虽然我们已经描述了本发明的优选实施例,但可以理解,本领域的技术人员,现在或将来可以做出各种改进和完善,这将落入本发明的保护范围之内。这些权利要求应该构成维持本发明第一次公开的适当保护。

Claims (20)

1.用于管理对称多路处理系统中资源的远程资源管理系统,该对称多路处理系统包括:
在对称多路处理器系统中的簇节点之间具有接口的多个对称处理器簇,
一个本地接口和接口控制器,
每个都具有其本地接口控制器的一个或多个远程存储控制器,和
一个本地到远程数据总线,其中每个对称处理器簇具有多个处理器,一个共享的高速缓冲存储器,多个I/O适配器和从该簇中可接入的主存储器;其特征在于还包括:
用于管理两个对称处理器簇之间的接口的一个远程资源管理器;
所述远程资源管理器利用远程存储控制器管理资源以便分配工作给作为代理的所述远程存储控制器以便执行希望的操作而不需要知道发起工作请求的请求者,只当远程请求者对工作处理可得到时工作才传送,而不需要在所述对称多路处理器簇之间经常通信。
2.根据权利要求1的远程资源管理系统,在每簇上具有单独的接口宏,负责包括优先化排队请求,通过接口发送新操作,处理来自其它端的返回响应,监视簇间所有数据传送的接口任务控制,并且其中所述本地接口控制器不仅发送工作请求到远程端,而且管理远程端上的读取/存储控制器,由此立即发送新操作到可利用的远程存储控制器,所述远程存储控制器变为本地接口控制器的一个代理,作为请求者依次工作,取消任何发送识别操作主的信息的需要。
3.根据权利要求2的远程资源管理系统,具有允许几个本地操作被组合为单一的原子远程操作的命令重映射操作。
4.根据权利要求3的远程资源管理系统,其中用于数据只读拷贝的处理器读取请求,和用于只读数据的读取请求包括存储保护密钥,要求远程簇上的控制器利用相同的状态图和高速缓冲存储器管理操作,并且所述接口控制器将重映射这两者为单独简化的公知只读线路读取的远程存储簇接口控制器命令。
5.根据权利要求4的远程资源管理系统,其中当传送存储数据不必占用本地到远程的数据总线时,而且附加控制线路被要求发送目录信息时,所述接口控制器根据目录状态再变换传送命令为“强制舍弃”或“只读无效”命令。
6.根据权利要求1的远程资源管理系统,具有包含大量服务一个或多个流水线分级高速缓冲存储器的读取和存储远程存储控制器的高端存储子系统的接口,并且其中一系列优先站选择一个请求以便通过接口发送和当涉及多条管道时,每个管道中的预优先站选择读取或存储请求以便发送到远程存储簇接口控制器,而且在同一个周期中,远程存储控制器的接口控制器采用优先操作以便根据命令类型和有效资源选择最佳请求。
7.根据权利要求6的远程资源管理系统,具有所述优先操作,由于多条管道可以请求在任何给定周期上使用接口,则操作将使读取优先于存储,只要远程读取控制器可利用;否则,存储将优先,只要远程存储控制器是可利用的,并且数据路径对需要一个数据路径的那些存储操作是可利用的,而如果两个请求都是读取的话,而且两个都具有可利用的资源,则一个循环决定允许哪个请求,但在两个请求都是存储的情况下,由可得到资源的管道决定优胜者,而如果两个都有可利用的资源,则使用该循环。
8.根据权利要求6的远程资源管理系统,在每个本地接口控制器中具有远程资源管理器,用于管理在远程端上的排队的发送工作。
9.根据权利要求6的远程资源管理系统,其中每个远程存储控制器的本地接口控制器采用同步和异步响应总线二者来维持高速缓冲存储器的相关性,并且其中异步响应总线用于标志远程操作正式结束的所有最后响应,并常常送往原始请求者并且其中所述最后响应利用允许本地目录用正确的最后状态更新的变化线信息标记。
10.根据权利要求9的远程资源管理系统,其中所述远程存储控制器的接口控制器管理器管理所有簇对簇数据流并比较来自本地存储控制器的请求与现存的远程读取控制器的请求,返回读取数据,并且其中在循环期间,在那里数据路径的两个竞争,最好的一个给予返回读取数据,并且其中在读取数据从远程主存储器中获得情况下,所述远程存储控制器的接口控制器管理器监视和从存储器存储体接入数据时管理相应的数据路径,并且当远程存储控制器数据路径可利用时,数据将旁路远程读取缓冲器。
11.根据权利要求9所述的远程资源管理系统,其中为了改善已被复制以便提高整个系统通过量的远程存储控制器资源的管理,所述远程存储控制器的接口控制器利用在复制的远程读取资源之间的交替工作请求管理命中远程高速缓冲存储器的后续读取请求,并发送第二读取请求到复制的远程存储控制器,如果它有效,则允许复制的远程存储控制器开始加载其缓冲器,同时第一远程存储控制器缓冲器仍然完成其数据传送,以便当完成第一缓冲器的传送时,允许第二缓冲器立即通过接口传送其数据。
12.根据权利要求9的远程资源管理系统,其中所述远程存储控制器的接口控制器管理器管理所设计的免死锁机构以便监视可以导致交叉簇的死锁,这时所述远程存储控制器的接口控制器管理器将通过返回一个特定拒绝响应给初始簇来拒绝未进行的操作,远程存储控制器的接口控制器将依次发送该拒绝到读取/存储控制器使得操作可以再试并持续地拒绝以及再试,直止死锁窗口消失。
13.根据权利要求9的远程资源管理系统,其中当在伴随有一个新的远程存储控制器操作的任何一个控制信息上检测接口优先差错时,在命令发出后在固定数的周期内同步接口被用于发送接口差错状态,并且一旦有差错,则通知原始读取/存储控制器并随后决定恢复合格,并且远程存储控制器的接口控制器自动地复位相应的远程存储控制器的资源以便允许该操作被再次请求。
14.根据权利要求1的远程资源管理系统,其中所述系统包括用于重映射超集命令为减少远程存储控制器复杂度的更小有效子集的命令的重映射装置。
15.根据权利要求14的远程资源管理系统,其中所述命令重映射利用交换位来减少要求的门数,还允许该功能能在单独的逻辑周期中被执行。
16.根据权利要求6的远程资源管理系统,其中为处理本地发出的操作和远程返回的提供统一控制,它允许带外和带内数据共享所述数据总线,因此减少接口I/O并还能使所述总线对于全系统性能进行管理。
17.根据权利要求6的远程资源管理系统,其中通过采用读取请求优先于存储请求,考虑本地发出的请求和对远程发出的操作的响应,所述优先操作动态地分析每个周期的请求和远程存储控制器资源以便利用应用接口有效地平衡系统性能,用于操作的数据路径有效性要求数据路径和只允许操作通过接口发送,如果适宜的资源是可利用的。
18.根据权利要求1的远程资源管理系统,其中,远程资源管理器提供同步交叉询问,它允许资源在固定的时间量内自动释放,即使目录在远程高速缓冲存储器中未命中;根据用于中央处理器读取的管道快速分支远程存储簇接口控制器监视流水线查找中央处理器读取,并当发现一个时,比正常情况提前一个周期发送它,其中读取必须优先于发现远程存储簇接口控制器之前加载到LFAR控制器;并支持早先的高速缓冲存储器读取W/删除,其中本地高速缓冲存储器以交叉询问通过接口发送的相同时间开始读取数据,如果在远程高速缓冲存储器中命中,远程存储簇接口控制器发送信号给本地LFAR控制器以便取消早选的PMA读取以便开放存储器交错;读取缓冲器在分级高速缓冲存储器接口上旁路,所述远程存储簇接口控制器监视簇对簇数据路径,同时数据从分级高速缓冲存储器中接收,并且如果所述数据路径可利用,则数据自动地旁路掉读取存储器并从高速缓冲存储器接收端口直接流到远程存储簇接口。
19.根据权利要求1的远程资源管理系统,其中远程资源管理管理器提供利用一个单独的交叉控制器来管理4个数据路径,能够4路同时数据传送,所述数据路径的每一个多路复用本地发出和远程发出的操作,并且由此可利用的数据路径被发送到优先机构,以决定调度下个操作。
20.根据权利要求1的远程资源管理系统,其中所述远程资源管理系统提供:
一个加速只读无效操作,其中在远程端完成在只读无效中要求的所有步骤之前能够释放本地LFAR控制器,以致于所述LFAR控制器开始新的操作,包括可以涉及发送远程操作,甚至随后的只读无效的一种;利用同步接口检测以便能使远程存储簇资源自动复位,即使接口奇偶校验差错,包括通知相关LFAR或LSAR控制器以使所述控制器能重试该操作;
用于交叉簇免死锁的装置,据此远程RFAR或RSAR控制器检测潜在的死锁并发送送往相应LFAR或LSAR控制器的拒绝响应以使所述控制器可以重试该操作;利用成对的远程存储簇资源以使连续数据读取以“对”RFAR或RSAR资源方式被分配给交替的资源,当两个成员对都可利用时,保证后面的读取将有一个远程缓冲器以便开始加载,同时前者读取的后尾字节仍然在其它缓冲器中进行处理。
CNB991041674A 1998-03-23 1999-03-22 高速远程存储簇接口控制器 Expired - Lifetime CN1133943C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/046,430 US6038651A (en) 1998-03-23 1998-03-23 SMP clusters with remote resource managers for distributing work to other clusters while reducing bus traffic to a minimum
US09/046430 1998-03-23
US09/046,430 1998-03-23

Publications (2)

Publication Number Publication Date
CN1236136A CN1236136A (zh) 1999-11-24
CN1133943C true CN1133943C (zh) 2004-01-07

Family

ID=21943414

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB991041674A Expired - Lifetime CN1133943C (zh) 1998-03-23 1999-03-22 高速远程存储簇接口控制器

Country Status (6)

Country Link
US (1) US6038651A (zh)
EP (1) EP0945798A3 (zh)
JP (1) JP3589394B2 (zh)
KR (1) KR100297908B1 (zh)
CN (1) CN1133943C (zh)
CA (1) CA2262314C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104145251A (zh) * 2012-03-02 2014-11-12 Arm有限公司 具有第一协议域和第二协议域的数据处理装置及其方法

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE247299T1 (de) * 1997-09-05 2003-08-15 Sun Microsystems Inc Mehrprozessorrechnersystem mit verwendung eines gruppenschutzmechanismus
JP3636871B2 (ja) * 1997-09-16 2005-04-06 株式会社日立製作所 並列プロセッサシステム
WO2000038070A1 (en) * 1998-12-21 2000-06-29 Advanced Micro Devices, Inc. Conservation of system memory bandwidth and cache coherency maintenance using memory cancel messages
JP3858492B2 (ja) 1998-12-28 2006-12-13 株式会社日立製作所 マルチプロセッサシステム
EP1407390A4 (en) * 1999-08-02 2005-08-17 Tae Gyu Lee REMOTE STORAGE PROCEDURE OF SEARCH INFORMATION ON THE INTERNET
US7996843B2 (en) 1999-08-25 2011-08-09 Qnx Software Systems Gmbh & Co. Kg Symmetric multi-processor system
US6920519B1 (en) 2000-05-10 2005-07-19 International Business Machines Corporation System and method for supporting access to multiple I/O hub nodes in a host bridge
US6826619B1 (en) 2000-08-21 2004-11-30 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6751721B1 (en) * 2000-08-31 2004-06-15 Hewlett-Packard Development Company, L.P. Broadcast invalidate scheme
US6487643B1 (en) 2000-09-29 2002-11-26 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6671793B1 (en) 2000-10-02 2003-12-30 International Business Machines Corporation Method and system for managing the result from a translator co-processor in a pipelined processor
US6640289B2 (en) * 2000-11-15 2003-10-28 Unisys Corporation Software controlled cache line ownership affinity enhancements in a multiprocessor environment
US6772298B2 (en) 2000-12-20 2004-08-03 Intel Corporation Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US6738872B2 (en) * 2000-12-22 2004-05-18 International Business Machines Corporation Clustered computer system with deadlock avoidance
US6738871B2 (en) * 2000-12-22 2004-05-18 International Business Machines Corporation Method for deadlock avoidance in a cluster environment
US6738870B2 (en) * 2000-12-22 2004-05-18 International Business Machines Corporation High speed remote storage controller
US7234029B2 (en) * 2000-12-28 2007-06-19 Intel Corporation Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US6791412B2 (en) * 2000-12-28 2004-09-14 Intel Corporation Differential amplifier output stage
US6721918B2 (en) 2000-12-29 2004-04-13 Intel Corporation Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect
US20020087775A1 (en) * 2000-12-29 2002-07-04 Looi Lily P. Apparatus and method for interrupt delivery
US20020087766A1 (en) * 2000-12-29 2002-07-04 Akhilesh Kumar Method and apparatus to implement a locked-bus transaction
US6785773B2 (en) * 2001-03-29 2004-08-31 International Business Machines Corporation Verification of global coherence in a multi-node NUMA system
US6918021B2 (en) * 2001-05-10 2005-07-12 Hewlett-Packard Development Company, L.P. System of and method for flow control within a tag pipeline
US6785758B1 (en) * 2001-06-01 2004-08-31 Advanced Micro Devices, Inc. System and method for machine specific register addressing in a split transactional unidirectional bus architecture
US7159216B2 (en) * 2001-11-07 2007-01-02 International Business Machines Corporation Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system
US20030101160A1 (en) * 2001-11-26 2003-05-29 International Business Machines Corporation Method for safely accessing shared storage
DE10164338A1 (de) * 2001-12-28 2003-07-17 Thomson Brandt Gmbh Verfahren zur Einstellung eines Betriebsparameters in einem Peripherie-IC und Vorrichtung zur Durchführung des Verfahrens
US7792978B2 (en) 2001-12-28 2010-09-07 At&T Intellectual Property I, L.P. System and method to remotely manage and audit set top box resources
US7219121B2 (en) * 2002-03-29 2007-05-15 Microsoft Corporation Symmetrical multiprocessing in multiprocessor systems
US8103748B2 (en) * 2002-05-20 2012-01-24 International Business Machines Corporation Rule-based method and system for managing heterogenous computer clusters
US7103636B2 (en) * 2002-05-28 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US7281055B2 (en) * 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
US7155525B2 (en) * 2002-05-28 2006-12-26 Newisys, Inc. Transaction management in systems having multiple multi-processor clusters
US7243282B2 (en) * 2002-07-29 2007-07-10 Hewlett-Packard Development Company, L.P. Method and apparatus for implementing multiple remote diagnose register chains
US20040039816A1 (en) * 2002-08-23 2004-02-26 International Business Machines Corporation Monitoring method of the remotely accessible resources to provide the persistent and consistent resource states
US7577755B2 (en) * 2002-11-19 2009-08-18 Newisys, Inc. Methods and apparatus for distributing system management signals
US7228351B2 (en) * 2002-12-31 2007-06-05 International Business Machines Corporation Method and apparatus for managing resource contention in a multisystem cluster
US20040139142A1 (en) * 2002-12-31 2004-07-15 International Business Machines Corporation Method and apparatus for managing resource contention
US7047370B1 (en) * 2003-01-14 2006-05-16 Cisco Technology, Inc. Full access to memory interfaces via remote request
US7380082B2 (en) * 2003-03-25 2008-05-27 Emc Corporation Reading virtual ordered writes at local storage device
US20040199727A1 (en) * 2003-04-02 2004-10-07 Narad Charles E. Cache allocation
US7383336B2 (en) 2003-04-24 2008-06-03 International Business Machines Corporation Distributed shared resource management
US7085897B2 (en) * 2003-05-12 2006-08-01 International Business Machines Corporation Memory management for a symmetric multiprocessor computer system
US7437728B2 (en) * 2003-06-12 2008-10-14 Microsoft Corporation System and method for CPU bandwidth allocation
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7577727B2 (en) 2003-06-27 2009-08-18 Newisys, Inc. Dynamic multiple cluster system reconfiguration
US7117419B2 (en) * 2003-08-05 2006-10-03 Newisys, Inc. Reliable communication between multi-processor clusters of multi-cluster computer systems
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
US7103823B2 (en) * 2003-08-05 2006-09-05 Newisys, Inc. Communication between multi-processor clusters of multi-cluster computer systems
US7159137B2 (en) * 2003-08-05 2007-01-02 Newisys, Inc. Synchronized communication between multi-processor clusters of multi-cluster computer systems
US7426578B2 (en) 2003-12-12 2008-09-16 Intercall, Inc. Systems and methods for synchronizing data between communication devices in a networked environment
US7590845B2 (en) * 2003-12-22 2009-09-15 Lenovo Singapore Pte. Ltd. Key cache management through multiple localities
US7380039B2 (en) * 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
US7757033B1 (en) 2004-02-13 2010-07-13 Habanero Holdings, Inc. Data exchanges among SMP physical partitions and I/O interfaces enterprise servers
US7664110B1 (en) 2004-02-07 2010-02-16 Habanero Holdings, Inc. Input/output controller for coupling the processor-memory complex to the fabric in fabric-backplane interprise servers
US7843906B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway initiator for fabric-backplane enterprise servers
US7953903B1 (en) 2004-02-13 2011-05-31 Habanero Holdings, Inc. Real time detection of changed resources for provisioning and management of fabric-backplane enterprise servers
US7990994B1 (en) 2004-02-13 2011-08-02 Habanero Holdings, Inc. Storage gateway provisioning and configuring
US8868790B2 (en) 2004-02-13 2014-10-21 Oracle International Corporation Processor-memory module performance acceleration in fabric-backplane enterprise servers
US7873693B1 (en) 2004-02-13 2011-01-18 Habanero Holdings, Inc. Multi-chassis fabric-backplane enterprise servers
US7860961B1 (en) 2004-02-13 2010-12-28 Habanero Holdings, Inc. Real time notice of new resources for provisioning and management of fabric-backplane enterprise servers
US8145785B1 (en) * 2004-02-13 2012-03-27 Habanero Holdings, Inc. Unused resource recognition in real time for provisioning and management of fabric-backplane enterprise servers
US7843907B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway target for fabric-backplane enterprise servers
US7860097B1 (en) 2004-02-13 2010-12-28 Habanero Holdings, Inc. Fabric-backplane enterprise servers with VNICs and VLANs
US7633955B1 (en) 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
US7685281B1 (en) 2004-02-13 2010-03-23 Habanero Holdings, Inc. Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers
US8112584B1 (en) * 2004-06-28 2012-02-07 Cisco Technology, Inc Storage controller performing a set of multiple operations on cached data with a no-miss guarantee until all of the operations are complete
US20140067771A2 (en) * 2004-07-09 2014-03-06 International Business Machines Corporation Management of a Scalable Computer System
US8713295B2 (en) 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
US7840731B2 (en) * 2004-08-25 2010-11-23 Cisco Technology, Inc. Accelerated data switching on symmetric multiprocessor systems using port affinity
US8254411B2 (en) * 2005-02-10 2012-08-28 International Business Machines Corporation Data processing system, method and interconnect fabric having a flow governor
US8230178B2 (en) * 2005-02-10 2012-07-24 International Business Machines Corporation Data processing system and method for efficient coherency communication utilizing coherency domain indicators
US20060176890A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation Data processing system, method and interconnect fabric for improved communication in a data processing system
US7765405B2 (en) * 2005-02-25 2010-07-27 Microsoft Corporation Receive side scaling with cryptographically secure hashing
CN1317447C (zh) * 2005-05-09 2007-05-23 烟台万华超纤股份有限公司 一种阻燃性聚氨酯合成革及其制备方法
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
JP4584124B2 (ja) * 2005-11-24 2010-11-17 エヌイーシーコンピュータテクノ株式会社 情報処理装置およびそのエラー処理方法ならびに制御プログラム
US7587543B2 (en) * 2006-01-23 2009-09-08 International Business Machines Corporation Apparatus, method and computer program product for dynamic arbitration control
US20080022079A1 (en) * 2006-07-24 2008-01-24 Archer Charles J Executing an allgather operation with an alltoallv operation in a parallel computer
US8495308B2 (en) * 2006-10-09 2013-07-23 International Business Machines Corporation Processor, data processing system and method supporting a shared global coherency state
US8161480B2 (en) 2007-05-29 2012-04-17 International Business Machines Corporation Performing an allreduce operation using shared memory
US20090006663A1 (en) * 2007-06-27 2009-01-01 Archer Charles J Direct Memory Access ('DMA') Engine Assisted Local Reduction
KR20090004266A (ko) * 2007-07-06 2009-01-12 한국전자통신연구원 자체 제어 기능을 갖는 기능 모듈 및 이의 동작 제어방법과, 이를 이용한 시스템
US7818504B2 (en) * 2007-09-26 2010-10-19 International Business Machines Corporation Storage system that prioritizes storage requests
US8422402B2 (en) 2008-04-01 2013-04-16 International Business Machines Corporation Broadcasting a message in a parallel computer
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US7836185B2 (en) * 2008-06-27 2010-11-16 International Business Machines Corporation Common resource management in a server cluster
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
KR20100026509A (ko) * 2008-08-29 2010-03-10 삼성전자주식회사 복수의 데이터 플로우를 전송하는 반도체 장치
US8239524B2 (en) 2008-12-16 2012-08-07 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster based on processor workload
US8122132B2 (en) * 2008-12-16 2012-02-21 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster based on broadcast information
US9384042B2 (en) * 2008-12-16 2016-07-05 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster based on inter-thread communications
US9396021B2 (en) * 2008-12-16 2016-07-19 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster using local job tables
US20110145837A1 (en) * 2009-12-14 2011-06-16 Bower Kenneth S Filtering Broadcast Recipients In A Multiprocessing Environment
US8332460B2 (en) 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US9424087B2 (en) 2010-04-29 2016-08-23 International Business Machines Corporation Optimizing collective operations
US8949577B2 (en) 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
US8688880B2 (en) * 2010-06-23 2014-04-01 International Business Machines Corporation Centralized serialization of requests in a multiprocessor system
US8776081B2 (en) 2010-09-14 2014-07-08 International Business Machines Corporation Send-side matching of data communications messages
US8566841B2 (en) 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state
US8635411B2 (en) 2011-07-18 2014-01-21 Arm Limited Data processing apparatus and method for managing coherency of cached data
US8893083B2 (en) 2011-08-09 2014-11-18 International Business Machines Coporation Collective operation protocol selection in a parallel computer
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US8667501B2 (en) 2011-08-10 2014-03-04 International Business Machines Corporation Performing a local barrier operation
US8996718B2 (en) * 2012-02-02 2015-03-31 Apple Inc. TCP-aware receive side coalescing
US8706847B2 (en) 2012-02-09 2014-04-22 International Business Machines Corporation Initiating a collective operation in a parallel computer
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
KR101366967B1 (ko) 2012-06-12 2014-02-25 엘에스산전 주식회사 메모리 공유 회로
CN102880585B (zh) * 2012-09-28 2015-05-06 无锡江南计算技术研究所 用于具有多个处理器核心的处理器系统的同步器
US9925492B2 (en) * 2014-03-24 2018-03-27 Mellanox Technologies, Ltd. Remote transactional memory
US9858189B2 (en) * 2015-06-24 2018-01-02 International Business Machines Corporation Hybrid tracking of transaction read and write sets
US9760494B2 (en) 2015-06-24 2017-09-12 International Business Machines Corporation Hybrid tracking of transaction read and write sets
US10642780B2 (en) 2016-03-07 2020-05-05 Mellanox Technologies, Ltd. Atomic access to object pool over RDMA transport network
US10387415B2 (en) * 2016-06-28 2019-08-20 International Business Machines Corporation Data arrangement management in a distributed data cluster environment of a shared pool of configurable computing resources
US10380034B2 (en) * 2017-07-14 2019-08-13 International Business Machines Corporation Cache return order optimization
US10552367B2 (en) 2017-07-26 2020-02-04 Mellanox Technologies, Ltd. Network data transactions using posted and non-posted operations
CN110532195B (zh) * 2018-05-23 2023-04-07 爱思开海力士有限公司 存储器系统的工作负荷分簇及执行其的方法
CN109388609B (zh) * 2018-09-30 2020-02-21 中科驭数(北京)科技有限公司 基于加速核的数据处理方法和装置
US10802966B2 (en) 2019-02-14 2020-10-13 International Business Machines Corporation Simultaneous, non-atomic request processing within an SMP environment broadcast scope for multiply-requested data elements using real-time parallelization
JP6894459B2 (ja) * 2019-02-25 2021-06-30 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. 疑似スタティックランダムアクセスメモリとその動作方法
US11099905B2 (en) 2019-02-26 2021-08-24 International Business Machines Corporation Efficient remote resource allocation within an SMP broadcast scope maintaining fairness between operation types
CN111367672A (zh) * 2020-03-05 2020-07-03 北京奇艺世纪科技有限公司 数据缓存方法、装置、电子设备及计算机存储介质
CN115114188B (zh) * 2022-06-23 2023-04-07 云南大学 一种嵌入式处理器高速缓存器结构及控制方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4156907A (en) * 1977-03-02 1979-05-29 Burroughs Corporation Data communications subsystem
US4200930A (en) * 1977-05-23 1980-04-29 Burroughs Corporation Adapter cluster module for data communications subsystem
US4570220A (en) 1983-11-25 1986-02-11 Intel Corporation High speed parallel bus and data transfer method
US5204954A (en) * 1987-11-18 1993-04-20 International Business Machines Corporation Remote storage management mechanism and method
US4939724A (en) * 1988-12-29 1990-07-03 Intel Corporation Cluster link interface for a local area network
US5168547A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Distributed architecture for input/output for a multiprocessor system
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5513325A (en) * 1992-12-23 1996-04-30 Unisys Corporation Technique for coupling CTOS units to non-CTOS host
JPH08235092A (ja) * 1995-02-22 1996-09-13 Kofu Nippon Denki Kk データ転送制御装置
US6105053A (en) * 1995-06-23 2000-08-15 Emc Corporation Operating system for a non-uniform memory access multiprocessor system
US5887146A (en) * 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US5784697A (en) * 1996-03-27 1998-07-21 International Business Machines Corporation Process assignment by nodal affinity in a myultiprocessor system having non-uniform memory access storage architecture
US5878268A (en) * 1996-07-01 1999-03-02 Sun Microsystems, Inc. Multiprocessing system configured to store coherency state within multiple subnodes of a processing node

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104145251A (zh) * 2012-03-02 2014-11-12 Arm有限公司 具有第一协议域和第二协议域的数据处理装置及其方法
CN104145251B (zh) * 2012-03-02 2017-06-09 Arm 有限公司 具有第一协议域和第二协议域的数据处理装置及其方法

Also Published As

Publication number Publication date
CN1236136A (zh) 1999-11-24
CA2262314C (en) 2002-08-13
EP0945798A2 (en) 1999-09-29
CA2262314A1 (en) 1999-09-23
JP3589394B2 (ja) 2004-11-17
JP2000076130A (ja) 2000-03-14
EP0945798A3 (en) 2005-06-15
KR100297908B1 (ko) 2001-09-26
US6038651A (en) 2000-03-14
KR19990077851A (ko) 1999-10-25

Similar Documents

Publication Publication Date Title
CN1133943C (zh) 高速远程存储簇接口控制器
CN1262942C (zh) 利用无数据事务获得全局促进工具的方法、设备和系统
CN1142503C (zh) 多处理机数据处理系统中同级到同级的超高速缓存移动
CN100568206C (zh) 使用流寄存器过滤监听请求的方法和装置
CN1272714C (zh) 数据处理系统内分配和访问存储映像工具的方法、设备和系统
CN100430907C (zh) 用于减小高速缓存架构中的延迟和窥探代价的方法
US7529799B2 (en) Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
CN1157659C (zh) 非均匀存储器访问数据处理系统及其通信方法
KR101497516B1 (ko) 디렉토리 기반의 멀티코어 아키텍처 상에서 캐시 상태 전송의 가속화
CN100520738C (zh) 更新无效一致状态的方法、数据处理系统和高速缓存系统
CN1729458A (zh) 供多处理器系统中的高速缓存同步中使用的转发状态
CN104106061B (zh) 多处理器数据处理系统以及其中的方法、高速缓存存储器和处理单元
CN1509436A (zh) 以推测方式使高速缓存中的缓存行失效的方法及系统
US7383336B2 (en) Distributed shared resource management
CN1550977A (zh) 基于地址封锁处理约束的方法和系统
CN1330782A (zh) 非均匀存储器存取(numa)数据处理系统的中断体系结构
CN1716186A (zh) 使用睡眠-唤醒机制的比较和交换操作
CN1276888A (zh) 在多线程处理器中选择线程切换事件的方法和装置
CN101055545A (zh) 数据处理系统中初始化存储块的方法、处理器、数据处理系统
CN101042678A (zh) 数据处理的单元、系统和方法
US8135910B2 (en) Bandwidth of a cache directory by slicing the cache directory into two smaller cache directories and replicating snooping logic for each sliced cache directory
CN1262934C (zh) 具有不同资源访问方案的系统集成代理程序
US20060253662A1 (en) Retry cancellation mechanism to enhance system performance
US7865668B2 (en) Two-sided, dynamic cache injection control
CN1254753C (zh) 通过执行转移指令访问全局促进工具的方法、设备和系统

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20040107

CX01 Expiry of patent term