CN1193296C - 数据内存管理系统和方法以及相关多处理器网络 - Google Patents
数据内存管理系统和方法以及相关多处理器网络 Download PDFInfo
- Publication number
- CN1193296C CN1193296C CNB011422297A CN01142229A CN1193296C CN 1193296 C CN1193296 C CN 1193296C CN B011422297 A CNB011422297 A CN B011422297A CN 01142229 A CN01142229 A CN 01142229A CN 1193296 C CN1193296 C CN 1193296C
- Authority
- CN
- China
- Prior art keywords
- processor
- data
- memory
- exchange area
- speed cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0837—Cache consistency protocols with software control, e.g. non-cacheable data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及数据一致性内存管理系统及其方法以及相关多处理器网络,该系统涉及至少可以被两个处理器(1,2)进行存取的主内存(4)。该管理系统包括:用于管理所述处理器(1、2,41至43)对至少一个主内存的公用存储区(9)进行共享存取的组件,该公用存储区被称为交换区;至少一个拷贝模块(12、13),要求在至少一个包括至少一个高速缓存的第一处理器与交换区之间进行数据拷贝;以及至少一个传送模块(12,13),要求在交换区与至少一个第二处理器之间传送数据。当第一处理器请求在第一处理器与第二处理器之间传送数据时,受控于第二处理器的触发装置触发拷贝模块和传送模块。
Description
技术领域
本发明涉及数据一致性内存管理系统和方法以及相应的多处理器网络。
背景技术
为了实现高效运行,高于100MHz时钟频率的快速处理器通常使用高速缓冲存储器,高速缓冲存储器还被简称为高速缓存。这种高速缓存将主内存(诸如同步存取存储器或SDRAM)内存在的某些数据复制到比内存的存取时间快得多的存储器。在传统系统中,由于成本和体积的原因限制了高速缓存的大小,因此在给定时间内只有少部分内存内容可以存储到高速缓存。在经过改善的系统中,几级高速缓存串联在一起,对各级规定存取数据项的时间及其存储容量。通常,第一级高速缓存允许以处理器的运算速度存取数据。
在所谓多个主控设备环境下会出现困难,因为几个处理器使用同一个主内存。具体地说,在读模式和写模式下,均必须在主内存与一个或多个高速缓存之间保证数据的一致性,这样就不会存在覆盖写信息的危险。
在所谓“反写”高速缓存方式,这尤其突出。在这种方式,直接写入到高速缓存是由相连的处理器实现的并且仅在更新高速缓存(转储或清仓)期间实现写入到主内存,然而,相反,在所谓“直写”高速缓存方式,实时执行从高速缓存写入主内存。反写模式的特点是其效率高,因为它要求在高速缓存与主内存之间的传送频率更低。然而,并不能始终保证高速缓存与主内存之间的数据一致性。处理器从主内存读取数据而不从当前使用的相连的高速缓存读取数据会产生问题。
在反写模式和直写模式中存在的另一个问题是,当另一个处理器使用高速缓存时,处理器会将数据写入主内存。事实上,当信息从高速缓存传送到主内存时,主内存中的数据存在被覆盖写的危险。
当前采用了几种依靠硬件方法和软件方法的解决方案来排除这些困难。它们确保在任何时间存储数据只属于一个主控设备。确保数据一致性的硬件方法(例如:所谓“窥探”技术)通常实现复杂解决方案,在该解决方案中,在主内存内存取数据的任何主控设备必须保证设置了高速缓存的组件在对数据进行处理前不能拥有数据项。如果情况是这样,利用存储器写机制,数据项对主内存或主控设备有效。此外,关于它们的复杂性和设备成本,这些系统要求对处理器分配通频带。它们通过阻塞作用延长了处理时间。
通常,确保数据一致性的软件方法不得不对数据进行分段管理,换句话说,就是以这样的方式进行管理,即为各主控设备设置一个或多个专用存储空间并设置可兼容存储区。主控设备专用的存储空间只可以被与此主控设备相连的高速缓存存取在其内不能与其它主控设备共享的数据,而可共享存储区不能被高速缓存存取但是可以用作数据交换区。保证数据一致性的另一种软件方法提供用于管理高速缓存、可以产生高速缓存数据块从而在高速缓存与主内存之间保证此数据的一致性的专用处理器指令。此方法还对数据进行组织,从而以这样的方式考虑由这些指令产生的数据块的大小,即防止不同的主控设备通过写操作(覆盖写的危险)存取同一个数据块。
在所有这些软件技术情况下,均要求精确同步并且要求在初始整体设计时体现系统多处理器运行的限制。此外,还要求在各处理器中可以使用适于在所有处理器内的高速缓存与主内存之间进行数据交换的管理编程过程。
发明内容
本发明涉及一种数据一致性内存管理系统,在该系统中,主内存至少可以被两个处理器进行存取,可以保证一个或多个处理器与主内存之间的一致性。根据本发明的内存管理系统可以在主内存内的读模式和/或写模式中保证此一致性,而且相对于现有方法,可以获得可靠、经济、简单的设备和实现过程。如果该多处理器系统是由单处理器系统升级获得的,尤其具有这些优势。此外,与已知的硬件方法比较,它可以实现高处理速度。
本发明还涉及引入根据本发明的内存管理系统的多处理器网络以及具有上述优势的数据一致性内存管理方法。
具体地说,本发明可以应用于视听领域,尤其可以应用于数字解码器。
为此,本发明的一个目的是提供一种数据一致性内存管理系统,在该系统中,主内存至少可以被两个处理器进行存取。至少为这两个主内存之一设置一个或多个与主内存的至少一个存储区相连的高速缓存,将主内存的此存储区称为此处理器的指定存储区。该管理系统包括:
●用于管理处理器对主内存的至少一个公用存储区进行存取的组件,该公用存储区被称为交换区;
●一个或多个拷贝模块,分别与一个或多个设置了至少一个高速缓存的处理器相连,以下将此处理器称为第一处理器;一方面,各拷贝模块可以在包括一个高速缓存的内存工作区和/或相连的第一处理器的指定存储区与交换区之间进行数据拷贝,另一方面,各拷贝模块可以在包括一个高速缓存的内存工作区和/或相连的第一处理器的指定存储区与一个或多个数据传送模块之间进行数据拷贝
●一个或多个数据传送模块,一个或多个数据传送模块分别与一个或多个可以与第一处理器交换数据的第二处理器相连;要求各传送模块在交换区与相连的第二处理器之间传送数据。
根据本发明,该一致性管理系统还包括受控于第二处理器的触发装置,当第一处理器请求在第一处理器的内存工作区与第二处理器的内存工作区之间传送数据时,它可以触发第一处理器的拷贝模块和第二处理器的传送模块。
不能将术语“拷贝模块”和“传送模块”理解为特定物理对象,而应将它们理解为例如可以被组织在一起并用物理方法集成为一个或多个硬件支持,或反之分别将它们分解为几个支持的功能实体。
同样,尤其可以将术语“数据”理解为内存内的参考数据和命令标识符。
拷贝模块使用的内存工作区是在读数据或写数据期间激活的内存工作区。因此,当与第一处理器交换的数据出现在高速缓存内时,高速缓存在读模式为离开点,在写模式为到达点。相反,当目标数据在未被高速缓存使用的指定存储区的内存空间内时,可以直接从主内存的此适当存储区读数据或者直接将数据写入主内存的此指定区域内。在所有情况下,根据其内部高速缓存管理操作过程,第一处理器本身可以抽取要求的数据或存储要求的数据。由此可见,拷贝到交换区或从交换区进行拷贝不会出现困难并可以利用第二处理器传送到交换区。
因此,可以为具有高速缓存的处理器设置一个高速缓存或以级联方式设置几个高速缓存,几个高速缓存的实施例不会产生特定困难。
设置了高速缓存的一个或多个处理器会受益于本发明的一致性管理特征。一致性内存管理系统优先将这些特征赋予具有高速缓存的所有处理器。在变换实施例中,只有一些处理器由此受益,其它处理器使用其它方法用于管理一致性。具有本发明一致性管理能力、带有高速缓存的处理器,有时起“第一处理器”的作用,有时起“第二处理器”的作用。
因此,根据本发明的内存管理系统依赖于系统地通过在第一处理器与第二处理器之间所有要交换(以读模式和/或写模式)信息的交换区域,第一处理器具备高速缓存管理,第二处理器具有或者不具有其传递受控于第二处理器的高速缓存。
相反,在利用硬件方法的已知技术中,在指定存储区与高速缓存(或多个高速缓存)保持一致时,第二处理器直接从主内存内第一处理器的指定存储区读取信息,或第二处理器将直接信息写入主内存内第一处理器的指定存储区。在进行交换之前进行此更新具有上述缺点。此外,在利用硬件方法的已知技术中,必须事先将待共享的信息分配到主内存的交换区,或者待共享的信息必须依靠连续改变主内存的指定存储区。在所有情况下,均需要整体协调过程并因此可以对具有高速缓存的各处理器进行单独管理。具体地说,每次在各处理器与交换区之间传送数据均由处理器启动,因此在两个处理器之间传送数据必然需要相应的方法管理这两个处理器。
因此,根据本发明的内存管理系统可以克服这些缺点。具体地说,通过向交换区传送数据,内存管理系统可以解决与设置了高速缓存的各处理器的内部管理有关的一些难点。此外,还可以克服利用软件方法的现有技术的设计难点和同步难点,因为两个处理器之间的数据传送完全由两个处理器之一根据另一个处理器发出的请求进行控制。
当将根据本发明的系统应用于最初设计采用高速缓存以单处理器方式运行的第一处理器时,根据本发明的系统特别有用。事实上,在此处理器内采用编程过程复杂并且这会导致出现实质性错误的危险。仅通过对此第一处理器添加在其内存工作区与交换区之间用于拷贝数据的编程层,本发明就可以将此第一处理器连接到第二处理器(或更多个处理器)。事实上,对所有传送操作的控制过程均转移到第二处理器,因此对第二处理器开发专用内存管理软件。
上述拷贝与传送目标:
●从高速缓存拷贝到交换内存或从第一处理器之一的指定存储区拷贝到交换内存,以及从交换内存传送到第二处理器之一;拷贝模块和传送模块以及触发装置的能力对应于第二处理器读取第一处理器可存取的数据的过程;在反写模式,此特征可以保证,被第一处理器处理的数据的读一致性(在直写模式可以自动保证存储一致性);
●或者,从第二处理器之一传送到交换内存以及从交换内存拷贝到第一处理器之一的高速缓存或指定存储区;拷贝模块和传送模块以及触发装置的能力对应于第二处理器写第一处理器可以存取的数据;在反写模式和直写模式,此特征均可以保证,待被第一处理器处理的数据的写一致性;
●或者二者均可(在两个方向上的一致性能力)。
触发装置的优势是包括以软件形式设置在各种处理器内部的读指令装置,它可以读并翻译其它处理器发送的、优先位于交换区的请求。
在内存分配的第一优势形式中,为第二处理器设置内存空间分配模块,它可以对交换区内的公用空间进行分配。通过对此数据分配必需的公用空间,当第一处理器发出在第一处理器的内存工作区与第二处理器的内存工作区之间传送数据的请求时,触发装置可以触发内存空间分配模块。内存管理系统可以限制第一处理器对交换内存进行存取,仅允许进行拷贝存取(在读模式和/或写模式)。
在内存分配的第二种形式中,为第一处理器设置内存空间分配模块,它可以分配交换区内的公用空间。与上述同样情况下,触发装置(受控于第二处理器)可以触发这些内存空间分配模块。因此,当这些分配过程涉及到其内存工作区时,第一处理器保持对交换内存中空间分配的主控权,但是在第二处理器的监视下进行。
触发装置优先包括至少一个位于第一处理器与第二处理器之间可以交换数据的中断装置,要求所述中断装置发送在这些处理器之间交换数据的信号并临时中断在这些处理器中进行的处理过程。与第一处理器之一和第二处理器之一相连的此中断装置的优势是,在第一处理器在其内存储了第二处理器可执行的请求后,可以实现由第二处理器读交换区,反之亦然。具体地说,此请求从属于利用数据进行的处理过程、交换内存内内存空间的分配过程、第一处理器将数据拷贝到此交换内存或从此交换内存拷贝数据以及/或者在交换内存与第二处理器之间进行传送操作。
中断装置的优势是包括硬件装置。
根据拷贝模块和传送模块的第一优选实施例(读具有高速缓存的处理器可存取的数据),至少一个第一处理器的拷贝模块用于实现将数据从交换区拷贝到第一处理器的内存工作区,可以与第一处理器交换数据的第二处理器的传送模块用于将数据从第二处理器传送到交换区。
根据拷贝模块和传送模块的第二优选实施例(写具有高速缓存的处理器可以存取的数据),至少一个第一处理器的拷贝模块用于实现将数据从第一处理器的内存工作区拷贝到交换区,可以与第一处理器交换数据的第二处理器的传送模块用于将数据从交换区传送到第二处理器。
可以有利地将这两种实施例合并在一起。更确切地说,优先对具有反写高速缓存管理的所有处理器设置第一实施例的能力(读),并优先对具有高速缓存的所有处理器(在直写模式和反写模式)设置第二实施例的能力(写)。然而,一致性内存管理系统的优势在于,在读模式和写模式均可以应用于具有高速缓存的所有处理器,因为可以以最小的修改为代价,在所有这些处理器内,其系统安装过程利用同样的软件功能。在变换实施例中,可以实现第一实施例(读),而不实现第二实施例。写一致性能力可以由其它装置实现,例如在向交换内存写时,可以在需要时自动再更新交换内存使用的高速缓存的高速缓存管理模块。
在共享存取管理的第一实施例中,具有位于交换区之外的高速缓存、用于管理对交换区进行共享存取的组件的处理器的指定存储区,用作非隐藏存储区。
在共享存取管理的第二实施例中,具有含有交换区的高速缓存、用于管理对交换区进行共享存取的组件的处理器至少有一个指定存储区包括可以保证所述交换区的一致性的硬件装置。因此可以隐藏交换区但是交换区是一致的。
本发明还可以应用于包括主内存和至少两个处理器的多处理器网络,至少为一个处理器设置与主内存的至少一个存储区相连的高速缓存,主内存的此存储区被称为处理器的指定存储区。
此多处理器网络的特征在于,它包括根据本发明的数据管理系统。
本发明还涉及数据一致性内存管理方法,在此方法中,主内存至少可以被两个处理器进行存取。至少为这些处理器之一设置一个或多个与主内存的至少一个存储区相连的高速缓存,主内存的此存储区被称为处理器的指定存储区。在此方法中,以这样的方式对处理器对主内存的至少一个被称为交换区的公用存储区的共享存取进行管理,即在至少从设置了一个或多个高速缓存的第一处理器传送到第二处理器期间,
●触发将此数据从包括一个高速缓存和/或第一处理器的指定存储区的内存工作区拷贝到交换区的过程;以及
●触发将此数据从交换区传送到第二处理器的过程。以及/或者在将数据从第二处理器传送到第一处理器期间,
●触发将此数据从第二处理器传送到交换区的过程;以及
●触发将此数据从交换区拷贝到第一处理器的内存工作区的过程。
根据本发明,当第一处理器发送将数据从第一处理器的内存工作区传送到第二处理器的请求时,以及/或者当第一处理器发送将数据从第二处理器传送到第一处理器的内存工作区的请求时,第二处理器触发数据的拷贝过程和传送过程。
附图说明
利用以下参考附图对作为实施例和实现过程的非限制性实例进行说明,可以更好地理解本发明,附图包括:
图1示出引入根据本发明的第一数据一致性内存管理系统的数字解码器的原理图,该数字解码器包括两个具有高速缓存的处理器,该高速缓存共享主内存的交换区;
图2示出利用图1所示的内存管理系统的一致性管理过程的第一步骤,第一步骤包括将将数据从第一处理器传送到第二处理器的处理请求从第一处理器发送到第二处理器;
图3示出一致性管理过程的第二步骤,第二步骤包括第二处理器对交换区内的内存空间进行分配,并将数据拷贝请求从第二处理器发送到第一处理器;
图4示出一致性管理过程的第三步骤,第三步骤包括第一处理器将数据拷贝到交换区;
图5示出一致性管理过程的第四步骤,第四步骤包括第二处理器从交换区读取数据并将此数据从主内存的指定存储区拷贝到第二处理器;
图6示出利用图1所示的内存管理系统的一致性管理过程的第三步骤,该步骤涉及将数据从第二处理器传送到第一处理器;以及
图7示出根据本发明的第二数据一致性内存管理系统的原理图,第二数据一致性内存管理系统包括共享主内存的交换区的具有高速缓存的处理器和两个不具有高速缓存的处理器。
具体实施方式
在图2至图6中,要求所表示的内存以及内存空间或存储区的大小和分布能够清楚说明实例,并不表示实际使用的大小和分布。按照惯例,实线箭头表示在读模式(从内存指向处理器的箭头)或写读模式(从处理器指向内存的箭头)进行数据传送;虚线箭头(图2所示)表示指向内存内的数据;以及细点划线箭头(图3所示)图解说明内存空间分配。
图1所示的数字解码器3包括处理器1和处理器2。为处理器1和处理器2分别设置软件10和软件11,软件10和软件11分别包括与数据通信有关的部分12和部分13,部分12和部分13允许在处理器1和处理器2之间交换信息。此外,分别为处理器1和处理器2设置由软件10和软件11的专用功能管理的高速缓存5和高速缓存6。在变换实施例中,处理器1和处理器2包括管理高速缓存的专用系统。在其它变换实施例中,处理器1和处理器2分别与管理位于其外部的高速缓存的系统相连。高速缓存5和高速缓存6是反写类型的或者是直写类型的。在以下实例中,将对反写类型的高速缓存进行研究。
解码器还包括被处理器1和处理器2共享的主内存4,处理器1和处理器2分别通过连接到非共享指定存储区7和非共享指定存储区8以及用于进行交换的可共享交换区9的总线31和总线32对主内存4进行存取。利用硬件可以保证交换区9的数据一致性。在变换实施例中,通过利用用于管理高速缓存5和高速缓存6的数据一致性的指令,通过软件保证此一致性。在又一个变换实施例中,此交换区是非隐藏的。
此外,硬件中断装置14允许处理器1和处理器2发送与数据处理请求有关的、从一个处理器到另一个处理器进行数据交换的信号,并临时中断在所请求的处理器内进行的处理过程。
软件10和软件11包括有助于保证主内存4和其高速缓存5和高速缓存6的数据一致性的功能块。具体地说,部分12和部分13不仅包括从交换区9进行读或写入交换区9的程序,而且包括将规定数据从指定存储区7和指定存储区8或高速缓存5和高速缓存6拷贝到交换区9的程序。此外,为软件10和软件11设置对交换区9内的内存空间进行分配的功能块,用于记录规定数据。通过以下对处理器1和处理器2之间的数据交换过程进行说明,软件10和软件11的能力将变得更加明显。
在以下内容中,术语“存储区”或“空间”表示给定内存内的地址集,即使将此存储区或此空间分解为几个断续部分。
在运行过程中,在第一保证(如图2所示),处理器1向处理器2发送请求。为此,处理器1将信息记录到交换区9的内存空间17并激活中断装置14以预先警告处理器2。此信息包括命令标识符15和存储在与处理器1相连的的指定存储区7的内存空间18内的数据的参考16。
在第二步骤(如图3所示),处理器2读取并翻译内存空间17内的信息、对请求进行翻译并在交换区9内分配处理器1拷贝此请求内的参考数据所需的内存空间20。然后,通过将信息存储到交换区9的内存空间19并通过激活中断装置14,处理器2向处理器1发送内存到内存的拷贝请求。
在第三步骤(如图4所示),处理器1对内存空间19内存储的请求进行翻译并将参考16识别的数据拷贝到在交换区9内分配的内存空间20。考虑高速缓存5的当前内容,根据处理器1的内部处理过程(以及用于管理高速缓存5的有关装置内部的处理过程),处理器1从指定存储区7的内存空间18或从高速缓存5拷贝此数据。然后,处理器1将指向处理器2的读取请求存储到交换区9的内存空间21并激活中断装置14。
在第四步骤(如图5所示),处理器2读取并翻译存储在内存空间21内的请求,并读取内存空间20内的数据。根据高速缓存6的当前内容,处理器2使用高速缓存6或指定存储区8内的此数据。例如,处理器2在指定存储区8内分配内存空间22,在内存空间22内存储获得的数据。
由此可见,处理器2使用的数据是一致的,因为只有包括处理器1的主控设备从此指定存储区7读取或写入此指定存储区7。
以同样方式进行从处理器2到处理器1的传送过程。更确切地说,可以将这些传送过程划分为三个步骤。以下将对其与上述从处理器1到处理器2的传送过程的前三个步骤之间从差别进行说明。为了简洁,对内存空间采用的注视和说明相同。第一步骤(如图2所示)与上述第一步骤相同。
在第二步骤(如图3所示),处理器2在交换区9内分配传送在执行从内存空间17读取的请求期间产生的数据所需的内存空间20。处理器2激活将所需数据从其指定存储区8传送到内存空间20。
在第三步骤和最后步骤(如图6所示),处理器1将内存空间20内存储的数据拷贝到其指定存储区7及其高速缓存5。
当在处理器1与处理器2之间传送数据的初始请求是由处理器2发出而非由处理器1发出时,可以获得与上述运行方式相同的运行方式。
在另一个典型实施例中,只有处理器1从上述一致性管理系统受益,并且可以以某种其它方式实现指定内存空间8与高速缓存6之间的数据一致性。
在如图7所示的另一个实施例中,多处理器网络包括设置了高速缓存45的第一处理器41和不具有高速缓存的两个其它处理器42、43。为三个处理器41至43分别设置软件50至52,软件50至52包括与数据通信有关的部分53至55。
多处理器网络还包括被三个处理器41至43共享的主内存44,通过用于进行交换与可共享的一致性存储区49相连的总线61至63,三个处理器41至43分别对主内存44进行存取。通过总线61,处理器41还对主内存44的非共享的指定存储区47进行存取。
此外,与上述实施例(图1所示)的硬件中断装置相同,硬件中断装置56和57将处理器41分别连接到处理器42和处理器43。
软件50至52包括与上述实施例(图1至图5所示)中相同的功能块。因此,对于通过处理器41可存取的数据,处理器41发送到处理器42的处理请求包括:
●第一步骤,处理器41将信息存储到交换区49并激活中断装置56;
●第二步骤,处理器42执行的后续操作:读取并翻译交换区49内的信息,对交换区49内的参考数据分配内存空间,将数据拷贝请求存储到交换区49,以及激活中断装置56。
●第三步骤,处理器41执行的后续操作:读取并翻译交换区49内的请求,将数据拷贝到处理器42分配的内存空间;这样,处理器42就可以利用请求的数据。
在上述实施例的变换实施例中,中断装置14,56和/或57被可以触发适当处理过程的软件装置替代。例如,此装置依赖于接收机处理器周期性读取请求处理器设置的内存状态字。
Claims (10)
1.一种数据一致性内存管理系统,该系统涉及可以被至少两个处理器(1至2,41至43)存取的主内存(4、44),至少一个所述处理器(1、2、41)被设置了至少一个与至少一个主内存(4、44)的存储区相连的高速缓存(5、6、45),主内存(4、44)的存储区被称为所述处理器(1、2、41)的指定存储区,所述管理系统包括:
●用于管理所述处理器(1、2,41至43)对至少一个主内存(4、44)的公用存储区(9,49)进行共享存取的组件(12-13,53-55),该公用存储区被称为交换区;
●至少一个拷贝模块(12、13、53),分别至少与设置了至少一个高速缓存(5、6、45)的第一所述处理器相连,一方面可以在包括一个所述高速缓存(5、6、45)的内存工作区和/或所示第一处理器的指定存储区(7、8、47)与交换区(9、49)之间进行数据拷贝;另一方面,可以在包括一个所述高速缓存(5、6、45)的内存工作区和/或所示第一处理器的指定存储区(7、8、47)与至少一个数据传送模块(12-13、54-55)之间进行数据拷贝,
●至少一个数据传送模块(12-13、54-55),数据传送模块(12和13、54和55)分别与至少一个可以与所述第一处理器(1、2、41)交换数据的第二处理器(1、2、42、43)相连;要求在所述交换区(9、49)与所述相连的第二处理器(1-2,42-43)之间传送数据;
其特征在于,所述一致性管理系统还包括受控于第二处理器的触发装置(10-11、14、50-52、56-57),当所述第一处理器(1、2、41)请求在第一处理器(1、2、41)的内存工作区与第二处理器(1-2,42-43)的内存工作区之间传送数据时,它可以触发第一处理器(1、2、41)的拷贝模块(12、13、53)和第二处理器(1-2,42-43)的传送模块(12-13、54-55),其中所述数据的传送完全受所述第二处理器所控制。
2.根据权利要求1所述的内存管理系统,其特征在于,为所述第二处理器(1-2,42-43)设置可以对所述交换区(9,49)内的公用空间进行分配的内存空间分配模块(12-13,53-55),当所述第一处理器(1,2,41)请求在第一处理器(1,2,41)的所述内存工作区与第二处理器(1-2,42-43)的所述内存工作区之间传送数据时,通过对所述数据分配所需的公用空间,所述触发装置(10-11,14,50-52,56-57)可以触发所述内存空间分配模块。
3.根据权利要求1或2之一所述的内存管理系统,其特征在于,所述触发装置(10-11,14,50-52,56-57)至少包括一个位于所述第一处理器(1,2,41)与所述第二处理器(1-2,50-52)之间可以交换数据的中断装置(14,56,57),所述中断装置要在所述处理器之间发送数据交换信号并临时中断在所述处理器内进行的处理过程。
4.根据权利要求3所述的内存管理系统,其特征在于,所述中断装置(14,56-57)包括硬件装置。
5.根据权利要求1所述的内存管理系统,其特征在于,至少一个第一处理器(1,2,41)的拷贝模块(12,13,53)将数据从所述交换区(9,49)拷贝到所述第一处理器(1、2、41)的所述内存工作区,其特征还在于,可以与所述第一处理器交换数据的第二处理器(1-2,42-43)的所述传送模块(12-13,50-52)将数据从所述第二处理器传送到所述交换区(9,49)。
6.根据权利要求1所述的内存管理系统,其特征在于,至少一个第一处理器(1,2,41)的拷贝模块(12,13,53)将数据从所述第一处理器(1、2、41)的所述内存工作区拷贝到所述交换区(9,49),可以与所述第一处理器交换数据的第二处理器(1-2,42-43)的所述传送模块(12-13,50-52)将数据从所述交换区(9,49)传送到所述第二处理器。
7.根据权利要求1所述的内存管理系统,其特征在于,具有位于所述交换区(9,49)之外的高速缓存(5,6,45)、用于管理对交换区(9,49)进行共享存取的组件(12-13,53-55)的处理器(1,2,41)的指定存储区(7,8,47)用于非隐藏存储区。
8.根据权利要求1所述的内存管理系统,其特征在于,具有含有所述交换区(9,49)的高速缓存(5,6,45)、用于管理对交换区(9,49)进行共享存取的组件(12-13,53-55)的处理器(1,2,41)至少有一个指定存储区(7,8,47)包括可以保证所述交换区(9,49)的一致性的硬件装置。
9.一种多处理器网络,该多处理器网络包括主内存(4,44)和至少两个处理器(1-2,41-43),至少为一个所述处理器(1,2,41)设置与主内存(4,44)的至少一个存储区(7,8,47)相关的高速缓存(5,6,45),此存储区被称为所述处理器(1,2,41)的指定存储区,其特征在于,所述多处理器网络包括根据上述权利要求任意一项所述的数据管理系统。
10.一种数据一致性内存管理方法,该方法涉及可以至少被两个处理器(1-2,41-43)进行存取的主内存(4,44),至少为一个所述处理器(1,2,41)设置至少一个与主内存(4,44)的至少一个存储区(7,8,47)相连的高速缓存(5,6,45),此存储区被称为所述处理器(1,2,41)的指定存储区,其中以这样的方式对所述处理器(1-2,41-43)对被称为交换区的、主内存(4,44)的至少一个公用存储区(9,49)进行共享存取的过程进行管理,即在将数据从至少设置了至少一个高速缓存(5,6,45)的第一所述处理器(1,2,41)传送到第二所述处理器(1-2,42-43)期间,
●触发将所述数据从包括一个所述高速缓存(5,6,45)的内存工作区和/或第一处理器的指定存储区(7,8,47)拷贝到交换区(9,49)的过程;以及
●触发将所述数据从交换区(9,49)传送到第二处理器(1-2,42-43)的过程;
以及/或者在将数据从所述第二处理器(1-2,42-43)传送到所述第一处理器(1,2,41)期间,
●触发将所述数据从第二处理器(1-2,42-43)传送到交换区(9,49)的过程;以及
●触发将所述数据从交换区拷贝到第一处理器(1,2,41)的内存工作区的过程;
其特征在于,当第一处理器(1,2,41)发送将数据从第一处理器的内存工作区传送到第二处理器(1-2,42-43)的请求时,以及/或者当第一处理器(1,2,41)发送将数据从第二处理器(1-2,42-43)传送到第一处理器的内存工作区的请求时,第二处理器触发数据的所述拷贝过程和所述传送过程,其中所述数据的传送完全受所述第二处理器所控制。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0012152A FR2814555B1 (fr) | 2000-09-25 | 2000-09-25 | Systeme et procede de gestion memoire de coherence de donnees et reseau multiprocesseur associe |
FR0012152 | 2000-09-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1347034A CN1347034A (zh) | 2002-05-01 |
CN1193296C true CN1193296C (zh) | 2005-03-16 |
Family
ID=8854626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011422297A Expired - Fee Related CN1193296C (zh) | 2000-09-25 | 2001-09-25 | 数据内存管理系统和方法以及相关多处理器网络 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6757786B2 (zh) |
EP (1) | EP1191447A1 (zh) |
JP (1) | JP2002157164A (zh) |
CN (1) | CN1193296C (zh) |
FR (1) | FR2814555B1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104508638A (zh) * | 2012-08-02 | 2015-04-08 | 高通股份有限公司 | 多核心处理系统中的高速缓冲存储器数据迁移 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7133972B2 (en) * | 2002-06-07 | 2006-11-07 | Micron Technology, Inc. | Memory hub with internal cache and/or memory access prediction |
US7117316B2 (en) * | 2002-08-05 | 2006-10-03 | Micron Technology, Inc. | Memory hub and access method having internal row caching |
US7272664B2 (en) * | 2002-12-05 | 2007-09-18 | International Business Machines Corporation | Cross partition sharing of state information |
CN100365593C (zh) * | 2003-06-16 | 2008-01-30 | 华为技术有限公司 | 计算机系统的内存管理方法 |
US20050041510A1 (en) * | 2003-08-19 | 2005-02-24 | Jean Khawand | Method and apparatus for providing interprocessor communications using shared memory |
JP4658050B2 (ja) | 2003-09-02 | 2011-03-23 | サーフ テクノロジー インコーポレイテッド | 衛星測位信号用の信号処理システム |
US7822105B2 (en) * | 2003-09-02 | 2010-10-26 | Sirf Technology, Inc. | Cross-correlation removal of carrier wave jamming signals |
US7047364B2 (en) * | 2003-12-29 | 2006-05-16 | Intel Corporation | Cache memory management |
JP2006172142A (ja) * | 2004-12-16 | 2006-06-29 | Matsushita Electric Ind Co Ltd | マルチプロセッサシステム |
US8346740B2 (en) | 2005-07-22 | 2013-01-01 | Hewlett-Packard Development Company, L.P. | File cache management system |
JP4419943B2 (ja) | 2005-11-11 | 2010-02-24 | 株式会社デンソー | Cpu間データ転送装置 |
CN100486178C (zh) * | 2006-12-06 | 2009-05-06 | 中国科学院计算技术研究所 | 一种远程内存共享系统及其实现方法 |
JP2009104300A (ja) * | 2007-10-22 | 2009-05-14 | Denso Corp | データ処理装置及びプログラム |
CN100489815C (zh) * | 2007-10-25 | 2009-05-20 | 中国科学院计算技术研究所 | 一种内存共享的系统和装置及方法 |
US7991963B2 (en) * | 2007-12-31 | 2011-08-02 | Intel Corporation | In-memory, in-page directory cache coherency scheme |
CN102722401B (zh) * | 2012-04-25 | 2014-07-09 | 华中科技大学 | 一种硬件事务内存系统中的伪相联多版本数据管理方法 |
US9116738B2 (en) | 2012-11-13 | 2015-08-25 | International Business Machines Corporation | Method and apparatus for efficient execution of concurrent processes on a multithreaded message passing system |
CN103136110B (zh) | 2013-02-18 | 2016-03-30 | 华为技术有限公司 | 内存管理方法、内存管理装置及numa系统 |
CN104778098A (zh) * | 2015-04-09 | 2015-07-15 | 浪潮电子信息产业股份有限公司 | 一种内存镜像的方法及系统、一种内存监控器 |
FR3078176B1 (fr) * | 2018-02-19 | 2020-02-28 | IFP Energies Nouvelles | Systeme et procede de prediction d'un phenomene physique et/ou chimique au moyen d'un segment de memoire partage |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761727A (en) * | 1996-04-02 | 1998-06-02 | United Microelectronics Corporation | Control apparatus for a memory architecture using dedicated and shared memory segments |
US5901326A (en) * | 1996-11-26 | 1999-05-04 | International Business Machines Corporation | Memory bus address snooper logic for determining memory activity without performing memory accesses |
US6115761A (en) * | 1997-05-30 | 2000-09-05 | Lsi Logic Corporation | First-In-First-Out (FIFO) memories having dual descriptors and credit passing for efficient access in a multi-processor system environment |
US6542926B2 (en) * | 1998-06-10 | 2003-04-01 | Compaq Information Technologies Group, L.P. | Software partitioned multi-processor system with flexible resource sharing levels |
GB2331379A (en) * | 1997-11-13 | 1999-05-19 | Advanced Telecommunications Mo | Controlling access to a shared memory by dual mapping |
US6081783A (en) * | 1997-11-14 | 2000-06-27 | Cirrus Logic, Inc. | Dual processor digital audio decoder with shared memory data transfer and task partitioning for decompressing compressed audio data, and systems and methods using the same |
US6385704B1 (en) * | 1997-11-14 | 2002-05-07 | Cirrus Logic, Inc. | Accessing shared memory using token bit held by default by a single processor |
US6314501B1 (en) * | 1998-07-23 | 2001-11-06 | Unisys Corporation | Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory |
US6295571B1 (en) * | 1999-03-19 | 2001-09-25 | Times N Systems, Inc. | Shared memory apparatus and method for multiprocessor systems |
-
2000
- 2000-09-25 FR FR0012152A patent/FR2814555B1/fr not_active Expired - Fee Related
-
2001
- 2001-09-19 US US09/956,422 patent/US6757786B2/en not_active Expired - Fee Related
- 2001-09-20 EP EP01122417A patent/EP1191447A1/en not_active Withdrawn
- 2001-09-21 JP JP2001288606A patent/JP2002157164A/ja not_active Withdrawn
- 2001-09-25 CN CNB011422297A patent/CN1193296C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104508638A (zh) * | 2012-08-02 | 2015-04-08 | 高通股份有限公司 | 多核心处理系统中的高速缓冲存储器数据迁移 |
CN104508638B (zh) * | 2012-08-02 | 2018-01-12 | 高通股份有限公司 | 多核心处理系统中的高速缓冲存储器数据迁移 |
Also Published As
Publication number | Publication date |
---|---|
EP1191447A1 (en) | 2002-03-27 |
US20020038408A1 (en) | 2002-03-28 |
US6757786B2 (en) | 2004-06-29 |
FR2814555B1 (fr) | 2003-02-28 |
FR2814555A1 (fr) | 2002-03-29 |
JP2002157164A (ja) | 2002-05-31 |
CN1347034A (zh) | 2002-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1193296C (zh) | 数据内存管理系统和方法以及相关多处理器网络 | |
CN1133933C (zh) | 混合numa/s-coma系统及方法 | |
CN1277216C (zh) | 用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备 | |
US9183036B2 (en) | Virtual machine migration with swap pages | |
US7124255B2 (en) | Message based inter-process for high volume data | |
US8176220B2 (en) | Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors | |
JP5603507B2 (ja) | ディレクトリベースのマルチコアアーキテクチャ上におけるキャッシュ状態の移動の加速 | |
JPH11272557A (ja) | キャッシュ・コヒ―レンシを維持する方法及びシステム | |
JP6273294B2 (ja) | 共有およびマネージド・メモリー統一アクセス | |
CN106844048B (zh) | 基于硬件特性的分布式共享内存方法及系统 | |
CN1729458A (zh) | 供多处理器系统中的高速缓存同步中使用的转发状态 | |
JPH11134312A (ja) | 分散共有メモリ多重プロセッサシステム | |
US10180803B2 (en) | Intelligent memory architecture for increased efficiency | |
JP2001519565A (ja) | キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるi/o転送 | |
US20150186276A1 (en) | Removal and optimization of coherence acknowledgement responses in an interconnect | |
CN1605065A (zh) | 数据处理系统 | |
CN1295609C (zh) | 数据处理系统、通信装置和处理数据的方法 | |
KR100257993B1 (ko) | 분산 공유 메모리 시스템에서 미세 통신과 대단위 통신의 병합을 위한 적응형 입도 방법 | |
EP4026005A1 (en) | Producer-to-consumer active direct cache transfers | |
US11029847B2 (en) | Method and system for shared direct access storage | |
US10503416B1 (en) | Flash memory complex with a replication interface to replicate data to another flash memory complex of a data processing system | |
CN1261891C (zh) | 具有双节点分布式共享内存系统及其数据维护方法 | |
WO2001016761A2 (en) | Efficient page allocation | |
US8516199B2 (en) | Bandwidth-efficient directory-based coherence protocol | |
US11397625B2 (en) | Lock manager for multi-core architectures |
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: 20050316 Termination date: 20130925 |