CN101216781A - 一种多处理器系统、装置及方法 - Google Patents
一种多处理器系统、装置及方法 Download PDFInfo
- Publication number
- CN101216781A CN101216781A CNA2007103046577A CN200710304657A CN101216781A CN 101216781 A CN101216781 A CN 101216781A CN A2007103046577 A CNA2007103046577 A CN A2007103046577A CN 200710304657 A CN200710304657 A CN 200710304657A CN 101216781 A CN101216781 A CN 101216781A
- Authority
- CN
- China
- Prior art keywords
- hardware lock
- processor
- address
- shared resource
- hardware
- 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.)
- Granted
Links
Images
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种多处理器系统、装置及方法。该系统包括:多个处理器节点,其中每个处理器节点包括至少两个处理器,I/O总线,处理器间的共享资源,处理器节点之间通过互连网络连接,其中每个处理器节点还包括一个硬件锁装置,所述硬件锁装置,包括多个硬件锁,网络接口,I/O总线接口,全局地址配置模块和本地地址配置模块;该实现方法包括下列步骤:多处理器系统中的一处理器访问一共享资源时,该处理器通过不同的寻址方式向与该预期的共享资源相关联的硬件锁发出测试请求;对与该预期的共享资源相关联的硬件锁进行测试,通过不同寻址方式获取预期的共享资源。其能够提供简单、快速的锁实现。
Description
技术领域
本发明涉及在多处理器系统内实现资源共享的领域,特别是涉及一种全局统一编址的多处理器系统、多处理器系统中的硬件锁装置及硬件锁的访问方法。
背景技术
在处理大规模、计算密集的应用时,通常需要有多个处理器的计算机系统来执行运算。这种系统由许多相同的处理器节点构成,每个节点都包含计算机的4个基本组成部分:运算器、控制器、存储器和输入输出设备;所有的处理器节点通过互连网络连接到一起。
多处理器系统中每个处理器节点可以与其它处理器节点间共享资源。
多处理器系统面对的一个问题是处理器节点间资源的有序共享问题,具体的体现就是进程间的互斥操作。
现有技术中,为实现进程间的互斥操作,在多处理器问设置硬件锁,处理器节点通过使用硬件锁来实现对资源的独享,避免进程间的冲突而导致系统的崩溃。
常见的硬件锁为测试和置位锁,它简单并且对于大多数应用是足够的。
测试和置位锁通常是依靠硬件的读修改写操作实现的,读修改写操作由读和其后没有中断的写组成。
测试和置位锁的设置如下:如果未锁定的状态是0而锁定的状态是1,则处理器节点通过尝试对锁的读修改操作来获取锁,读修改操作允许1被写到存储器的位置并返回先前处于该位置(在写之前)的值;如果返回的值是0,则说明在读修改操作前锁是打开的,并被此次操作修改为1,即锁定;如果返回的值是1,则说明锁在读修改操作之前已经被锁定了,修改操作写入的1不会影响锁定的状态。对硬件锁的写0操作可以释放锁定,打开锁。
对于共享内存的多处理器系统,硬件锁通常是用内存实现的,用内存实现硬件锁就是将某个或某些内存地址的值与多处理器系统中的共享资源建立一一对应的关系,对这些内存值的特殊的访问和修改命令就实现了对共享资源的锁定和释放。
但是,通过内存实现的硬件锁访问内存时需要使用存储总线,完成一次存取需要十几个周期甚至几十个周期,时间过长,不能快速地进行硬件锁的操作,影响多处理器系统的整体性能。
发明内容
本发明的目的在于提供一种多处理器系统、装置及方法,其能提供简单、快速的硬件锁实现,简化硬件,实现快速地访问共享资源。
为实现本发明的目的而提供的一种多处理器硬件锁装置,包括多个硬件锁和网络接口,还包括:
I/O总线接口,用于硬件锁装置与处理器之间的连接;
全局地址配置模块,用于对每个所述硬件锁编设其对应的全局地址,并在处理器通过网络接口远程访问所述硬件锁时,根据远程访问指令中的全局地址映射到相应的所述硬件锁;
本地地址配置模块,用于对每个所述硬件锁编设其对应的本地地址,并在处理器通过所述I/O总线接口访问所述硬件锁,根据本地访问指令中的本地地址映射到相应的所述硬件锁。
所述硬件锁是用1比特位实现的测试和位置锁,每4个字节表示一个锁,仅最低位有效。
所述访问指令,为32位的读/写访问指令,通过全局地址配置模块和本地地址配置模块对硬件锁装置中的多个硬件锁编设地址后,每个处理器可以通过读/写指令访问该硬件锁。
所述全局地址配置模块,采取全局统一编址方法对所述硬件锁进行编址。
所述本地地址配置模块,采取本地连续编址方法对所述硬件锁进行编址。
所述本地连续编址方法,是指所述硬件锁对应的本地地址是连续的,第一个硬件锁的地址为操作系统设置的硬件锁装置的基地址,第二个锁的地址为基地址加上4,第n个锁的地址为基地址加上4(n-1)。
本发明还提供一种多处理器系统,包括多个处理器节点,其中每个处理器节点包括至少两个处理器,用于连接处理器节点内的至少两个处理器的I/O总线,处理器间的共享资源,处理器节点之间通过互连网络连接,其特征在于,其中每个处理器节点还包括:
一硬件锁装置,通过硬件锁装置上的网络接口与互连网络连接,用于编设与该装置中的多个硬件锁相对应的全局地址和本地地址,实现节点间的共享资源访问和节点内的共享资源访问。
所述每个处理器节点包括的至少两个本地处理器。
所述本地处理器通过本地地址和全局地址两种方式访问所述硬件锁装置。
所述多个处理器通过全局地址访问所述硬件锁。
所述硬件锁装置,包括多个硬件锁,网络接口,I/O总线接口,全局地址配置模块和本地地址配置模块,其中:
所述总线接口,用于硬件锁装置与处理器之间的连接;
所述全局地址配置模块,用于对每个所述硬件锁编设其对应的全局地址,并在处理器通过网络接口远程访问所述硬件锁时,根据远程访问指令中的全局地址映射到相应的所述硬件锁;
所述本地地址配置模块,用于对每个所述硬件锁编设其对应的本地地址,并在处理器通过所述I/O总线接口访问所述硬件锁,根据本地访问指令中的本地地址映射到相应的所述硬件锁。
所述硬件锁是用1比特位实现的测试和位置锁,每4个字节表示一个锁,仅最低位有效。
所述访问指令,为32位的读/写访问指令,通过全局地址配置模块和本地地址配置模块对硬件锁装置中的多个硬件锁编设地址后,每个处理器可以通过读/写指令访问该硬件锁。
所述全局地址配置模块,采取全局统一编址方法对所述硬件锁进行编址。
所述本地地址配置模块,采取本地连续编址方法对所述硬件锁进行编址。
所述本地连续编址方法,是指所述硬件锁对应的本地地址是连续的,第一个硬件锁的地址为操作系统设置的硬件锁装置的基地址,第二个锁的地址为基地址加上4,第n个锁的地址为基地址加上4(n-1)。
本发明还提供一种多处理器硬件锁系统的工作方法,包括具体如下步骤:
A.编设多处理器系统中的节点的硬件锁对应的在整个多处理器系统中的全局地址和在本节点中的本地地址;
B.多处理器系统中的处理器访问共享资源时,该处理器通过不同的寻址方式向与该预期的共享资源相关联的硬件锁发出请求;
C.对与该预期的共享资源相关联的硬件锁进行测试,通过不同方式获取预期的共享资源。
所述步骤B还进一步包括:
B1.若所述处理器要访问其所在的处理器节点里的共享资源时,即该处理器为本地处理器,则该本地处理器通过本地处理器节点中的硬件锁装置的本地地址或全局地址向与预期的共享资源相关联的硬件锁发出测试请求;
B2.若所述处理器要访问其所在的处理器节点以外的共享资源时,即该处理器为远程处理器,则该处理器通过远程处理器节点中的硬件锁装置的全局地址向与预期的共享资源相关联的硬件锁发出测试请求。
所述步骤C还进一步包括:
C1.当被测试的硬件锁返回释放状态信息时,发出测试的处理器获取共享资源;并对与该共享资源相关联的硬件锁加锁,后续的处理器发出的测试请求,将不会改变与该共享资源相关联的硬件锁的状态,并向后续的发出测试请求的处理器返回已加锁状态信息,加锁失败;
C2.当被测试的硬件锁返回已加锁状态信息时,发出测试的处理器等待一个硬件锁的访问时间后,再次对该硬件锁发出测试请求,直到被测试的硬件锁返回释放状态信息,该处理器获得访问与该硬件锁相关联的共享资源的许可。
所述步骤C1还进一步包括:
C1(a).当被测试的硬件锁处于释放状态时,接到测试请求,会向发出测试的处理器返回释放状态信息,则发出测试的处理器具有访问与该硬件锁相关联的共享资源的许可;
C1(b).获取共享资源后的处理器使用解锁指令,为该硬件锁解锁,使该硬件锁处于释放状态,并且规定只允许发出加锁操作的处理器来解锁。
所述步骤C1(a)还进一步包括:
C1(a1).当处理器为本地处理器,则该处理器通过I/O总线直接获取共享资源并对与该共享资源相关联的硬件锁加锁;
C1(a2).当处理器为远程处理器,则该处理器通过互连网络获取共享资源并对与该共享资源相关联的硬件锁加锁。
所述件锁的访问时间是指从处理器对硬件锁发出测试请求,到获得硬件锁当前状态信息的时间。
附图说明
图1是本发明的一种多处理器硬件锁装置的示意图;
图2是本发明的一种多处理器硬件锁系统的结构示意图;
图3是本发明的一种多处理器硬件锁系统中,硬件锁装置的地址映射的示意图;
图4是本发明的一种多处理器硬件锁系统的工作方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种多处理器系统、装置及方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的主要目的是提供一种多处理器系统、装置及方法,其提供简单、快速的硬件锁实现,简化了硬件,并且能够快速地访问。
本发明提供一种多处理器系统,如图2所示,包括多个处理器节点,其中每个处理器节点包括至少两个处理器,处理器间的共享资源,I/O总线,处理器节点之间通过互连网络连接。
所述处理器节点还包括硬件锁装置,用于编设与该装置中的多个硬件锁相对应的全局地址和本地地址,实现节点间的共享资源访问和节点内的共享资源访问。
处理器通过I/O总线与硬件锁装置连接。
下面详细描述本发明的硬件锁装置,如图1所示,用于实现多处理器系统中节点间的共享资源的互斥操作,其既可以由本地处理器进行访问,也可以由其他的远程处理器依靠互连网络进行访问,其包括:
多个硬件锁,用于与处理器系统中处理器的共享资源相关联,处理器通过其设置与之相关联的共享资源。
网络接口,用于所述硬件锁装置与互连网络之间的连接;
I/O总线接口,用于硬件锁装置与处理器之间的连接。
所述硬件锁装置还包括全局地址配置模块和本地地址配置模块,其中:
所述全局地址配置模块,用于对每个所述硬件锁编设其对应的全局地址,并在处理器通过网络接口远程访问所述硬件锁时,根据远程访问指令中的全局地址映射到相应的所述硬件锁;
所述本地地址配置模块,用于对每个所述硬件锁编设其对应的本地地址,并在处理器通过所述I/O总线接口访问所述硬件锁时,根据本地访问指令中的本地地址映射到相应的所述硬件锁。
较佳地,所述硬件锁是用1比特位实现的测试和置位(test-and-set)锁,每4个字节表示一个锁,仅最低位有效。
所述访问指令为32位的读/写(load/store)访问指令,通过全局地址配置模块和本地地址配置模块对硬件锁装置中的多个硬件锁编设地址后,多处理器系统中的每个处理器可以通过读/写(load/store)指令访问该硬件锁。
所述访问指令为32位访问指令,以32位指令访问硬件锁,这样可以符合现有的指令标准,并以地址和访问操作为参数,对硬件锁进行访问。
本发明的全局地址配置模块,采取全局统一编址方法对所述硬件锁进行编址。
由于全局地址配置模块对多处理器中的全部硬件锁进行全局物理地址统一编址;而处理器节点中,对其中的硬件锁,采取连续编址方法,编设其本地地址,其中,较佳地,所述硬件锁对应的本地地址是连续的,第一个硬件锁的地址为操作系统设置的硬件锁装置的基地址,第二个锁的地址为基地址加上4,以此类推,第n个锁的地址为基地址加上4(n-1),这样有利于编码访问。
所以每个硬件锁都拥有两种地址,如图3所示,即全局地址和本地地址。
本地处理器节点里的多个本地处理器可以通过本地地址和全局地址两种方式访问所述硬件锁装置,远程处理器节点里的处理器可以通过全局地址访问所述硬件锁。
由于所述每个处理器节点内包含多个处理器,处理器之间通过硬件锁装置共享资源。同一个硬件锁的地址也可以不相同,即包括一个全局地址和一个本地地址,全局地址和本地地址不相同,处理器通过全局地址可以访问该硬件锁,也可以通过本地地址访问该硬件锁。
相应地,本发明还提供一种多处理器系统的硬件锁访问方法,如图4所示,包括下列步骤:
步骤S100,编设多处理器系统中的节点的硬件锁对应的在整个多处理器系统中的全局地址和在本节点中的本地地址;
全局地址采取全局统一编址方法对所述硬件锁进行编址。
由于全局地址配置模块对多处理器中的全部硬件锁进行全局物理地址统一编址;而处理器节点中,对其中的硬件锁,编设其本地地址,其中,较佳地,所述硬件锁对应的本地地址是连续的,第一个硬件锁的地址为操作系统设置的硬件锁装置的基地址,第二个锁的地址为基地址加上4,以此类推,第n个锁的地址为基地址加上4(n-1),这样有利于编码访问。所以每个硬件锁都拥有两种地址,即全局地址和本地地址。
本地处理器节点里的多个本地处理器可以通过本地地址和全局地址两种方式访问所述硬件锁装置,远程处理器节点里的处理器可以通过全局地址访问所述硬件锁。
步骤S200,多处理器系统中的处理器访问共享资源时,该处理器通过不同的寻址方式向与该预期的共享资源相关联的硬件锁发出请求;
步骤S210,若所述处理器访问其本地处理器节点里的共享资源,即该处理器为本地处理器,则该本地处理器通过本地处理器节点中的硬件锁装置的本地地址向与预期的共享资源相关联的硬件锁发出测试请求;
步骤S220,若所述处理器要访问其本发处理器节点里的共享资源时,即该处理器为本地处理器,则该本地处理器通过本地处理器节点中的硬件锁装置的全局地址向与预期的共享资源相关联的硬件锁发出测试请求;
步骤S230,若所述处理器要访问其所在的处理器节点以外的某个共享资源时,即该处理器为远程处理器,则该处理器通过远程处理器节点中的硬件锁装置的全局地址向与预期的共享资源相关联的硬件锁发出测试请求。
步骤S300,对与该预期的共享资源相关联的硬件锁进行测试,通过不同方式获取预期的共享资源;
当处理器希望访问本地共享资源时,处理器节点中的本地处理器可以通过该硬件锁的本地地址访问硬件锁装置,进而访问该硬件锁装置中的与硬件锁相关联的预期的共享资源,并通过本地处理器与该硬件锁之间的I/O总线快速获取预期的共享资源;
当处理器希望访问本地共享资源时,处理器节点中的本地处理器也可以通过该硬件锁装置的全局地址访问硬件锁装置,进而访问该硬件锁装置中的与硬件锁相关联的预期的共享资源,并通过本地处理器与该硬件锁装置之间的I/O总线快速获取预期的共享资源;
当处理器希望访问远程的共享资源时,远程处理器节点中的该处理器可以通过硬件锁的全局地址访问该硬件锁装置,进而访问该硬件锁装置中的与硬件锁相关联的预期的共享资源,并通过互连网络获取预期的共享资源。
所述步骤S300包括下列步骤:
步骤S310,当被测试的硬件锁返回释放状态信息时,发出测试的处理器获取该共享资源,并对该硬件锁加锁,后续的处理器发出的测试请求,将不会改变该硬件锁的状态,并向后续的发出测试请求的处理器返回已加锁状态信息,加锁失败;
步骤S311,当被测试的硬件锁处于释放状态时,接到测试请求,会向发出测试的处理器返回释放状态信息,则发出测试的处理器具有访问与该硬件锁相关联的资源的许可;
所述步骤S311包括下列步骤:
步骤S3111,当该处理器为本地处理器,则该处理器通过I/O总线直接获取该共享资源并对该硬件锁加锁;
步骤S3112,当该处理器为远程处理器,则该处理器通过互连网络获取该共享资源并对该硬件锁加锁;
步骤S312,获取共享资源后的处理器使用解锁指令,为该硬件锁解锁,使该硬件锁处于释放状态。规定只允许发出加锁操作的处理器来解锁;
步骤S320,当被测试的硬件锁返回已加锁状态信息时,发出测试的处理器等待一个硬件锁的访问时间后,再次对该硬件锁发出测试请求,直到被测试的硬件锁返回释放状态信息,该处理器获得访问与该硬件锁相关联的共享资源的许可。
本方法中所述硬件锁的访问时间是指从处理器对硬件锁发出测试请求,到获得该硬件锁当前状态信息的时间。
下面以读/写(load/store)指令为例,举例说明本发明的多处理器系统的硬件锁访问方法。
本发明的测试请求指load指令,解锁指令指store指令,并将释放状态置为0,将已锁定状态置为1。本发明的多处理器系统的硬件锁访问方法,其具体实施方式如下:
步骤100’,多处理器系统中的处理器访问共享资源时,该处理器通过不同的寻址方式向与该预期的共享资源相关联的硬件锁发出load指令;
步骤110’,若所述处理器访问其所在的处理器节点里的共享资源,即该处理器为本地处理器,则该本地处理器通过本地处理器节点中的硬件锁装置的本地地址向与预期的共享资源相关联的硬件锁发出load指令;
步骤120’,若所述处理器要访问其所在的处理器节点里的共享资源时,即该处理器为本地处理器,则该本地处理器通过本地处理器节点中的硬件锁装置的全局地址向与预期的共享资源相关联的硬件锁发出load指令;
步骤130’,若所述处理器要访问其所在的处理器节点以外的共享资源时,即该处理器为远程处理器,则该处理器通过远程处理器节点中的硬件锁装置的全局地址向与预期的共享资源相关联的硬件锁发出load指令;
步骤200’,对与该预期的共享资源相关联的硬件锁发出load指令,通过不同方式获取预期的共享资源;
步骤210’,当被测试的硬件锁返回0状态信息时,发出load指令的处理器获取该共享资源;
步骤211’,当被测试的硬件锁处于0状态时,接到load指令,会向发出load指令的处理器返回0状态信息,则发出load指令的处理器具有访问与该硬件锁相关联的资源的许可;
步骤2111’,当该处理器为本地处理器,则该处理器通过I/O总线直接获取该共享资源并对该硬件锁加锁;后续的处理器发出的load指令,将不会改变该硬件锁的状态,并向后续的发出load指令的处理器返回1状态信息,加锁失败;
步骤2112’,当该处理器为远程处理器,则该处理器通过互连网络获取该共享资源并对该硬件锁加锁;后续的处理器发出的load指令,将不会改变该硬件锁的状态,并向后续的发出测试请求的处理器返回1状态信息,加锁失败;
步骤212’,获取共享资源后的处理器使用解锁指令,为该硬件锁解锁,使该硬件锁处于0状态,只允许发出加锁操作的处理器来解锁;
步骤220’,当被测试的硬件锁返回1状态信息时,发出load指令的处理器等待一个硬件锁的访问时间后,再次对该硬件锁发出测试请求,直到被测试的硬件锁返回0状态信息,该处理器获得访问与该硬件锁相关联的共享资源的许可。
本发明的多处理器系统、装置及方法降低了锁操作的延迟,提高了锁的使用效率,通过专用的锁装置简化了硬件设计,多种寻址方式使得锁的使用更加灵活。
通过以上结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。
Claims (22)
1.一种多处理器硬件锁装置,包括多个硬件锁和网络接口,其特征在于,还包括:
I/O总线接口,用于硬件锁装置与处理器之间的连接;
全局地址配置模块,用于对每个所述硬件锁编设其对应的全局地址,并在处理器通过网络接口远程访问所述硬件锁时,根据远程访问指令中的全局地址映射到相应的所述硬件锁;
本地地址配置模块,用于对每个所述硬件锁编设其对应的本地地址,并在处理器通过所述I/O总线接口访问所述硬件锁时,根据本地访问指令中的本地地址映射到相应的所述硬件锁。
2.根据权利要求1所述的一种多处理器硬件锁装置,其特征在于,所述硬件锁是用1比特位实现的测试和位置锁,每4个字节表示一个锁,仅最低位有效。
3.根据权利要求1所述的一种多处理器硬件锁装置,其特征在于,所述访问指令,为32位的读/写访问指令,通过全局地址配置模块和本地地址配置模块对硬件锁装置中的多个硬件锁编设地址后,每个处理器可以通过读/写指令访问该硬件锁。
4.根据权利要求1所述的一种多处理器硬件锁装置,其特征在于,所述全局地址配置模块,采取全局统一编址方法对所述硬件锁进行编址。
5.根据权利要求1所述的一种多处理器硬件锁装置,其特征在于,所述本地地址配置模块,采取本地连续编址方法对所述硬件锁进行编址。
6.根据权利要求5所述的一种多处理器硬件锁装置,其特征在于,所述本地连续编址方法,是指所述硬件锁对应的本地地址是连续的,第一个硬件锁的地址为操作系统设置的硬件锁装置的基地址,第二个锁的地址为基地址加上4,第n个锁的地址为基地址加上4(n-1)。
7.一种多处理器系统,包括多个处理器节点,其中每个处理器节点包括至少两个处理器,用于连接处理器节点内的至少两个处理器的I/O总线,,处理器间的共享资源,处理器节点之间通过互连网络连接,其特征在于,其中每个处理器节点还包括:
一硬件锁装置,通过硬件锁装置上的网络接口与互连网络连接,用于编设与该装置中的多个硬件锁相对应的全局地址和本地地址,实现节点间的共享资源访问和节点内的共享资源访问。
8.根据权利要求7所述的一种多处理器系统,其特征在于,所述每个处理器节点包括至少两个本地处理器。
9.根据权利要求8所述的一种多处理器系统,其特征在于,所述本地处理器通过本地地址和全局地址两种方式访问所述硬件锁装置。
10.根据权利要求7所述的一种多处理器系统,其特征在于,所述多个处理器通过全局地址访问所述硬件锁。
11.根据权利要求7所述的多处理器系统,其特征在于,所述硬件锁装置,包括多个硬件锁,网络接口,I/O总线接口,全局地址配置模块和本地地址配置模块,其中:
所述I/O总线接口,用于硬件锁装置与处理器之间的连接;
所述全局地址配置模块,用于对每个所述硬件锁编设其对应的全局地址,并在处理器通过网络接口远程访问所述硬件锁时,根据远程访问指令中的全局地址映射到相应的所述硬件锁;
所述本地地址配置模块,用于对每个所述硬件锁编设其对应的本地地址,并在处理器通过所述I/O总线接口访问所述硬件锁时,根据本地访问指令中的本地地址映射到相应的所述硬件锁。
12.根据权利要求7所述的一种多处理器硬件锁装置,其特征在于,所述硬件锁是用1位实现的测试和位置锁,每4个字节表示一个锁,仅最低位有效。
13.根据权利要求7所述的一种多处理器硬件锁装置,其特征在于,所述访问指令,为32位的读/写访问指令,通过全局地址配置模块和本地地址配置模块对硬件锁装置中的多个硬件锁编设地址后,每个处理器可以通过读/写指令访问该硬件锁。
14.根据权利要求7所述的一种多处理器硬件锁装置,其特征在于,所述全局地址配置模块,采取全局统一编址方法对所述硬件锁进行编址。
15.根据权利要求7所述的一种多处理器硬件锁装置,其特征在于,所述本地地址配置模块,采取本地连续编址方法对所述硬件锁进行编址。
16.根据权利要求15所述的一种多处理器硬件锁装置,其特征在于,所述本地连续编址方法,是指所述硬件锁对应的本地地址是连续的,第一个硬件锁的地址为操作系统设置的硬件锁装置的基地址,第二个锁的地址为基地址加上4,第n个锁的地址为基地址加上4(n-1)。
17.一种多处理器硬件锁系统的工作方法,其特征在于,包括具体如下步骤:
A.编设多处理器系统中的节点的硬件锁对应的在整个多处理器系统中的全局地址和在本节点中的本地地址;
B.多处理器系统中的处理器访问共享资源时,该处理器通过不同的寻址方式向与该预期的共享资源相关联的硬件锁发出请求;
C.对与该预期的共享资源相关联的硬件锁进行测试,通过不同方式获取预期的共享资源。
18.根据权利要求17所述的一种多处理器硬件锁系统的工作方法,其特征在于,所述步骤B还进一步包括:
B1.若所述处理器要访问其所在的处理器节点里的共享资源时,即该处理器为本地处理器,则该本地处理器通过本地处理器节点中的硬件锁装置的本地地址或全局地址向与预期的共享资源相关联的硬件锁发出测试请求;
B2.若所述处理器要访问其所在的处理器节点以外的共享资源时,即该处理器为远程处理器,则该处理器通过远程处理器节点中的硬件锁装置的全局地址向与预期的共享资源相关联的硬件锁发出测试请求。
19.根据权利要求17所述的一种多处理器硬件锁系统的工作方法,其特征在于,所述步骤C还进一步包括:
C1.当被测试的硬件锁返回释放状态信息时,发出测试的处理器获取共享资源;并对与该共享资源相关联的硬件锁加锁,后续的处理器发出的测试请求,将不会改变与该共享资源相关联的硬件锁的状态,并向后续的发出测试请求的处理器返回已加锁状态信息,加锁失败;
C2.当被测试的硬件锁返回已加锁状态信息时,发出测试的处理器等待一个硬件锁的访问时间后,再次对该硬件锁发出测试请求,直到被测试的硬件锁返回释放状态信息,该处理器获得访问与该硬件锁相关联的共享资源的许可。
20.根据权利要求19所述的一种多处理器硬件锁系统的工作方法,其特征在于,所述步骤C1还进一步包括:
C1(a).当被测试的硬件锁处于释放状态时,接到测试请求,会向发出测试的处理器返回释放状态信息,则发出测试的处理器具有访问与该硬件锁相关联的共享资源的许可;
C1(b).获取共享资源后的处理器使用解锁指令,为该硬件锁解锁,使该硬件锁处于释放状态,并且规定只允许发出加锁操作的处理器来解锁。
21.根据权利要求20所述的一种多处理器硬件锁系统的工作方法,其特征在于,所述步骤C1(a)还进一步包括:
C1(a1).当处理器为本地处理器,则该处理器通过工/O总线直接获取共享资源并对与该共享资源相关联的硬件锁加锁;
C1(a2).当处理器为远程处理器,则该处理器通过互连网络获取共享资源并对与该共享资源相关联的硬件锁加锁。
22.根据权利要求19所述的一种多处理器硬件锁系统的工作方法,其特征在于,所述件锁的访问时间是指从处理器对硬件锁发出测试请求,到获得硬件锁当前状态信息的时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103046577A CN101216781B (zh) | 2007-12-28 | 2007-12-28 | 一种多处理器系统、装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103046577A CN101216781B (zh) | 2007-12-28 | 2007-12-28 | 一种多处理器系统、装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101216781A true CN101216781A (zh) | 2008-07-09 |
CN101216781B CN101216781B (zh) | 2011-03-23 |
Family
ID=39623220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007103046577A Active CN101216781B (zh) | 2007-12-28 | 2007-12-28 | 一种多处理器系统、装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101216781B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751352B (zh) * | 2008-12-10 | 2012-08-08 | 辉达公司 | 不同种类处理单元中对绑定和迁移硬件设备的芯片组支持 |
CN102110072B (zh) * | 2009-12-29 | 2013-06-05 | 中兴通讯股份有限公司 | 一种多处理器完全互访的方法及系统 |
CN103377086A (zh) * | 2012-04-27 | 2013-10-30 | 华为技术有限公司 | 用于异步多核系统操作共享资源的方法、装置及系统 |
WO2014173364A1 (zh) * | 2013-07-23 | 2014-10-30 | 中兴通讯股份有限公司 | 共享资源访问方法和装置 |
CN104536916A (zh) * | 2014-12-18 | 2015-04-22 | 华为技术有限公司 | 一种多核系统的仲裁方法及多核系统 |
CN105094993A (zh) * | 2015-08-18 | 2015-11-25 | 华为技术有限公司 | 一种多核处理器、数据同步的方法及装置 |
CN106649189A (zh) * | 2015-10-28 | 2017-05-10 | 中兴通讯股份有限公司 | 一种多核系统中硬件资源管理的方法及相应的多核系统 |
CN107767908A (zh) * | 2012-08-20 | 2018-03-06 | 爱思开海力士有限公司 | 半导体存储器件 |
CN114036099A (zh) * | 2022-01-04 | 2022-02-11 | 苏州浪潮智能科技有限公司 | 一种多处理机系统创建方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4807110A (en) * | 1984-04-06 | 1989-02-21 | International Business Machines Corporation | Prefetching system for a cache having a second directory for sequentially accessed blocks |
JP3963372B2 (ja) * | 2001-02-24 | 2007-08-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システム |
CN1549154A (zh) * | 2003-05-21 | 2004-11-24 | 深圳市中兴通讯股份有限公司南京分公 | 一种避免双处理器写竞争的方法 |
-
2007
- 2007-12-28 CN CN2007103046577A patent/CN101216781B/zh active Active
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751352B (zh) * | 2008-12-10 | 2012-08-08 | 辉达公司 | 不同种类处理单元中对绑定和迁移硬件设备的芯片组支持 |
CN102110072B (zh) * | 2009-12-29 | 2013-06-05 | 中兴通讯股份有限公司 | 一种多处理器完全互访的方法及系统 |
US9519652B2 (en) | 2012-04-27 | 2016-12-13 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for operating shared resource in asynchronous multiprocessing system |
CN103377086A (zh) * | 2012-04-27 | 2013-10-30 | 华为技术有限公司 | 用于异步多核系统操作共享资源的方法、装置及系统 |
CN107767908B (zh) * | 2012-08-20 | 2021-05-28 | 爱思开海力士有限公司 | 半导体存储器件 |
CN107767908A (zh) * | 2012-08-20 | 2018-03-06 | 爱思开海力士有限公司 | 半导体存储器件 |
CN104346317B (zh) * | 2013-07-23 | 2019-08-27 | 南京中兴软件有限责任公司 | 共享资源访问方法和装置 |
CN104346317A (zh) * | 2013-07-23 | 2015-02-11 | 中兴通讯股份有限公司 | 共享资源访问方法和装置 |
WO2014173364A1 (zh) * | 2013-07-23 | 2014-10-30 | 中兴通讯股份有限公司 | 共享资源访问方法和装置 |
CN104536916A (zh) * | 2014-12-18 | 2015-04-22 | 华为技术有限公司 | 一种多核系统的仲裁方法及多核系统 |
CN104536916B (zh) * | 2014-12-18 | 2018-04-10 | 华为技术有限公司 | 一种多核系统的仲裁方法及多核系统 |
CN105094993A (zh) * | 2015-08-18 | 2015-11-25 | 华为技术有限公司 | 一种多核处理器、数据同步的方法及装置 |
CN105094993B (zh) * | 2015-08-18 | 2018-06-19 | 华为技术有限公司 | 一种多核处理器、数据同步的方法及装置 |
CN106649189A (zh) * | 2015-10-28 | 2017-05-10 | 中兴通讯股份有限公司 | 一种多核系统中硬件资源管理的方法及相应的多核系统 |
CN106649189B (zh) * | 2015-10-28 | 2021-04-09 | 中兴通讯股份有限公司 | 一种多核系统中硬件资源管理的方法及相应的多核系统 |
CN114036099A (zh) * | 2022-01-04 | 2022-02-11 | 苏州浪潮智能科技有限公司 | 一种多处理机系统创建方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101216781B (zh) | 2011-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101216781B (zh) | 一种多处理器系统、装置及方法 | |
US6832298B2 (en) | Server system operation control method | |
US9952975B2 (en) | Memory network to route memory traffic and I/O traffic | |
US6510496B1 (en) | Shared memory multiprocessor system and method with address translation between partitions and resetting of nodes included in other partitions | |
US7484043B2 (en) | Multiprocessor system with dynamic cache coherency regions | |
US9223579B2 (en) | Handling atomic operations for a non-coherent device | |
US8301717B2 (en) | Extended virtual memory system and method in a computer cluster | |
CN101163133B (zh) | 一种多机虚拟环境下实现资源共享的通信系统及通信方法 | |
US8078862B2 (en) | Method for assigning physical data address range in multiprocessor system | |
US11656779B2 (en) | Computing system and method for sharing device memories of different computing devices | |
JP2001051959A (ja) | 少なくとも1つのnuma(non−uniformmemoryaccess)データ処理システムとして構成可能な相互接続された処理ノード | |
US20130326180A1 (en) | Mechanism for optimized intra-die inter-nodelet messaging communication | |
CN103365717A (zh) | 内存访问方法、装置及系统 | |
CN107615243A (zh) | 一种调用操作系统库的方法、装置及系统 | |
WO2020214757A1 (en) | Virtual memory pool within a network which is accessible from multiple platforms | |
EP4064022A1 (en) | Cooperative storage architecture | |
CN115114042A (zh) | 存储数据访问方法、装置、电子设备和存储介质 | |
US7904663B2 (en) | Secondary path for coherency controller to interconnection network(s) | |
JPH0212361A (ja) | 階層化バスによる並列計算機システム | |
US20100153974A1 (en) | Obtain buffers for an input/output driver | |
US20240126469A1 (en) | Apparatus and method for controlling a pooled memory device or a memory expander | |
CN112765086B (zh) | 固态存储中一种基于cache一致性的软硬件交互方法 | |
KR100308317B1 (ko) | 다중노드시스템의동적인전역적단일주소공간구성방법 | |
CN116225978A (zh) | 数据处理方法、数据处理装置、电子设备和存储介质 | |
CN116679886A (zh) | 数据处理方法及装置、电子设备、缓存和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |