CN101566976A - 信息处理装置、信息处理方法,以及计算机程序 - Google Patents
信息处理装置、信息处理方法,以及计算机程序 Download PDFInfo
- Publication number
- CN101566976A CN101566976A CN200910135232.7A CN200910135232A CN101566976A CN 101566976 A CN101566976 A CN 101566976A CN 200910135232 A CN200910135232 A CN 200910135232A CN 101566976 A CN101566976 A CN 101566976A
- Authority
- CN
- China
- Prior art keywords
- storer
- equipment
- processor
- system bus
- signal conditioning
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种信息处理装置、信息处理方法以及计算机程序。该信息处理装置包括:多个节点,每一个节点都将处理器和至少一个存储器连接到系统总线;将节点互连的互连总线;以及在多个节点中的任何一个节点被连接到系统总线并执行数据处理的设备;以及,存储器选择单元,用于选择被连接到所述设备所连接到的系统总线的存储器,作为要被该设备访问的存储器。
Description
对相关申请的交叉引用
本发明包含涉及2008年4月21日在日本专利局提交的日本专利申请JP 2008-110542的主题,该专利申请的全部内容以引用的方式并入本文中。
技术领域
本发明涉及信息处理装置、信息处理方法以及计算机程序。更具体来说,本发明涉及具有根据非均匀存储器访问(NUMA)的结构(这是共享存储器多处理器系统的体系结构)的信息处理装置、信息处理方法以及计算机程序。
背景技术
近年来,多处理器信息处理装置的数量越来越多,它们具有多个处理器(中央处理单元(CPU)),并通过使用处理器进行并行处理来实现有效的数据处理。在这样的多处理器系统中,多个处理器访问共享存储器。在这样的系统中,NUMA用作为这样的体系结构,其中从每一个处理器到存储器的访问的开销(access cost)不是均匀的。
图1显示了带有NUMA体系结构的信息处理装置的结构示例。如图1所示,多个芯片集11和21作为节点互连到纵横开关。用于在从一个节点访问连接到另一个节点的存储器时转换地址的地址转换表31被连接到纵横开关。
CPU-112、存储器-113以及设备-114通过充当本地总线的系统总线1连接到芯片集11。CPU-222、存储器-223以及设备-224通过充当本地总线的系统总线2连接到芯片集22。
存储器-113和存储器-223由CPU-112和CPU-222共享。在利用这样的共享存储器结构的NUMA中,从每一个CPU到每一个存储器的访问开销不是均匀的。
例如,当在CPU-112上运行的任务访问存储在存储器-223中的数据时,需要通过芯片集11的系统总线1、纵横开关以及芯片集21的系统总线2来访问存储器-223。如此,当其中正在运行任务的CPU和其中存储了数据的存储器不在同一个本地总线(系统总线)上时,存储器访问开销增大。
已经提出了许多的措施,以改善与具有NUMA体系结构的系统中的存储器访问开销相关的性能。例如,日本专利No.3832833(International Business Machines Corp.(IBM))提出了这样的结构:在响应来自CPU的读取请求,经由不同于本地总线的总线提供数据时,实现了一致性通知(coherency communication)的低迟延。
此外,日本专利No.3924206(IBM)通过设置与数据对应的直写指示符以及确定是否可以对变化的详细信息进行缓存,来消除不必要的一致性通知。
此外,日本未经审查的专利申请出版物No.2006-39822(CanonInc.)说明了这样的结构:推测性地重复对多处理器的任务分配,并根据每一个CPU中涉及的通信成本的值,确定任务和处理器的最优组合。
然而,相关技术的这些技术只试图优化从CPU到存储器的存储器访问。随着最近年来出现了涉及大量的数据的输入/输出的设备,由于设备驱动器而给CPU施加了较大的负载。如此,需要在考虑到设备的情况下实现最优化。
例如,利用前述的相关技术中的技术,在其中CPU和存储器位于同一个本地总线上但是设备和要被该设备访问的存储器不在同一个本地总线上的信息处理装置中没有有益的效果。具体来说,在如图2所示的结构中没有有益的效果。
请参看图2,如在图1中,芯片集11和21作为节点互连到纵横开关。用于在从一个节点访问连接到另一个节点的存储器时转换地址的地址转换表31连接到纵横开关。
CPU-112、存储器-113以及设备-114经由充当本地总线的系统总线1连接到芯片集11。CPU-222、存储器-223以及设备-224经由充当本地总线的系统总线2连接到芯片集21。
在连接到芯片集21一侧的系统总线2的CPU-222上设置连接到芯片集11一侧的系统总线1的设备-114所用的设备驱动器41。
通过激活芯片集21一侧的CPU-222中包括的设备驱动器41,芯片集11一侧的设备-114开始操作,而设备-114执行数据处理。例如,当设备-114是网卡时,设备-114通过网络与外部进行通信。可替选地,当设备-114是视频卡时,设备-114执行图像数据处理。
通过经由纵横开关执行直接存储器访问(DMA),诸如通信数据或视频数据的要由设备-114进行处理的数据43被存储在芯片集21一侧的存储器-223中。此外,当从存储器-223获取数据42时,设备-114经由纵横开关执行DMA。
相关技术中的这些技术只试图优化从CPU到存储器的存储器访问。因此,如图2所示,如在其中设备和存储器不在同一个本地总线上的信息处理装置中那样,在其中数据在设备、存储器以及CPU之间传输的结构中,通过使用相关技术中的技术,不会充分地实现有益的效果。
此外,日本专利No.3123425(Nippon Electric Co.,Ltd.(NEC))说明了这样的结构:通过将来自设备的中断分配在该时间点负载最低的CPU来进行负载分散(同时使用神经网络)。通过关注每一个CPU上的负载来设计此技术。
即使利用此结构,如图3所示,例如,当要被设备访问的存储器不在CPU所连接到的本地总线上时,经由纵横开关执行来自设备的驱动器的存储器访问,相应地,驱动器在其上运行的CPU的负载增大。
如图3所示的信息处理装置具有类似于如图1和2所示结构的结构。芯片集11和21作为节点互连到纵横开关。用于在从一个节点访问连接到另一个节点的存储器时转换地址的地址转换表31连接到纵横开关。
CPU-112、存储器-113以及设备-114经由充当本地总线的系统总线1连接到芯片集11。CPU-222、存储器-223以及备-224经由充当本地总线的系统总线2连接到芯片集21。
在连接到芯片集21一侧的系统总线2的CPU-222上设置连接到芯片集11一侧上的系统总线1的设备-114所用的设备驱动器41。
通过激活芯片集21一侧的CPU-222中包括的设备驱动器41,芯片集11一侧的设备-114开始操作,且设备-114执行数据处理。例如,当设备-114是网卡时,设备-114经由网络与外部进行通信处理。可替选地,当设备-114是视频卡时,设备-114执行图像数据处理。
在此结构示例中,与如图2所示的结构不同,通过对连接到系统总线1(这是连接到同一个芯片集的本地总线)的存储器-113执行DMA,由设备-114处理的数据43作为数据44进行存储。此外,当从存储器-113获取数据时,设备-114执行DMA。
在此结构中,设备-114可以访问存储器-113而无需经由纵横开关,相应地,可以降低存储器访问开销。然而,即使在此结构中,也需要芯片集21一侧的CPU-222上的驱动器41经由纵横开关访问存储器-113,相应地,驱动器在其上运行的CPU的负载增大。
发明内容
需要提供一种具有NUMA体系结构的信息处理装置,其降低与设备进行的访问相关的延迟,并通过最佳地组合设备所连接到的总线和设备所用的设备驱动器在其上运行的处理器,提高了使用每一个处理器的效率;还需要提供一种信息处理方法以及计算机程序。
根据本发明的实施例,提供了一种包括下列元件的信息处理装置:多个节点,每一个节点都至少将处理器和存储器连接到系统总线;用于互连节点的互连总线;被连接到多个节点中的任何一个节点的系统总线并执行数据处理的设备;以及,存储器选择单元,用于选择被连接到所述设备所连接到的系统总线的存储器,作为要被该设备访问的存储器。
此外,存储器选择单元可以在对被连接到设备所连接到的系统总线的存储器进行的保留处理失败的情况下,选择不同于连接到该设备所连接到的系统总线的存储器,作为要被该设备访问的存储器。
此外,存储器选择单元可以在对被连接到该设备所连接到的系统总线的存储器的进行的保留处理失败的情况下,结束由该设备执行的处理。
此外,存储器选择单元可以在对被连接到该设备所连接到的系统总线的存储器进行的保留处理失败的情况下,重复对被连接到该设备所连接到的系统总线的存储器进行保留处理。
此外,信息处理装置还可以进一步包括处理器选择单元,用于选择连接到设备所连接到的系统总线的处理器,作为在其上设置了对应于该设备的设备驱动器的处理器。
此外,设备选择单元还可以确定设备所连接到的系统总线,并选择连接到该系统总线的处理器作为在其上激活使用该设备的应用程序的处理器。
设备驱动器可以分成用于执行主数据处理的主处理执行部分和用于执行中断处理的中断处理执行部分。第一处理器(其是被设置到多个节点的多个处理器中的一个)可以是主处理执行处理器,不同于该第一处理器的第二处理器可以是中断处理执行处理器。
中断处理执行处理器可以使用下列选择方案中的任何一个来选择处理器:选择连接到设备所连接到的系统总线的处理器;选择在要选择处理器的时间点负载最低的处理器;以及,使用循环方案来选择处理器。
设备可以是执行通信处理的设备。主处理执行部分可以是执行数据发送完成处理、数据接收完成处理以及错误处理的处理单元。
根据本发明的实施例,提供了由信息处理装置执行的信息处理方法。该信息处理装置包括:多个节点,每一个节点都至少将处理器和存储器连接到系统总线;将节点互连在一起的互连总线;以及,被连接到多个节点中的任何一个节点的系统总线并执行数据处理的设备。该方法包括利用存储器选择单元选择被连接到该设备所连接到的系统总线的存储器作为要被该设备访问的存储器的步骤。
根据本发明的实施例,提供了用于使信息处理装置执行信息处理的计算机程序。该信息处理装置包括:多个节点,每一个节点都至少将存储器和处理器连接到系统总线;将节点互连的互连总线;以及,被连接到多个节点中的任何一个节点的系统总线并执行数据处理的设备。该计算机程序包括使存储器选择单元选择被连接到该设备所连接到的系统总线的存储器作为要被该设备访问的存储器的步骤。
根据本发明的实施例的程序是可以通过存储介质或通信介质提供的计算机程序,该存储介质或通信介质以计算机可读取的格式向可以执行各种程序代码的通用计算机系统提供程序。通过以计算机可读取的格式提供这样的程序,可以在计算机系统上实现根据该程序的处理。
通过基于稍后所描述的本发明的实施例和附图的详细描述,本发明的各实施例的进一步的目的、特点以及优点将变得明显。此说明书中的术语“系统”是多个装置的逻辑集合,不仅限于这些装置被封装在单个壳体中的结构。
根据本发明的实施例,在具有根据NUMA的结构(这是共享存储器多处理器系统的体系结构)的信息处理装置中,设备所连接到的系统总线上的存储器被选为要被该设备访问的存储器。此外,设备所连接到的总线上的处理器被设置为在其上设置了用于该设备的设备驱动器的处理器。利用此结构,在同一个系统总线上设置了设备、处理器、以及要被该设备和处理器访问的存储器。相应地,在使用该设备时,可以经由一个系统总线访问存储器,从而降低了存储器访问开销。
附图说明
图1显示了具有NUMA体系结构的信息处理装置的结构示例;
图2是显示了信息处理装置的结构(其中设备和要被该设备访问的存储器不在同一个本地总线上)和由信息处理装置执行的存储器访问处理的图形;
图3是显示了信息处理装置的结构(其中要被设备访问的存储器不在连接到CPU的本地总线上)和由信息处理装置执行的存储器访问处理的图形;
图4显示了具有NUMA体系结构的信息处理装置的结构示例,这是根据本发明一个实施例的信息处理装置的结构示例;
图5是显示了在从CPU和设备访问存储器时执行的处理的序列的流程图;
图6是显示了根据本发明本实施例的信息处理装置的数据存储结构和存储器访问处理示例的图形;
图7是显示了在当由设备驱动器保留存储器时通过指定总线来保留(reserve)存储器的情况下执行的处理的序列的流程图;
图8是在连接到特定本地总线(系统总线)的CPU激活应用程序的情况下的序列的流程图;
图9是显示了其中通过使用多个CPU提高处理效率的结构示例的图形;
图10是显示了被分成执行中断处理的部分和执行主数据处理的部分(下半部(bottom half))的设备驱动器的结构示例的图形;
图11是显示了在生成中断时由中断处理单元执行的处理的序列的流程图;以及
图12是显示了在调度下半部处理单元时执行的处理的序列的流程图。
具体实施方式
下面,将描述根据本发明的一个实施例的信息处理装置、信息处理方法、以及计算机程序。
根据本发明的一个实施例的信息处理装置是具有NUMA体系结构的信息处理装置,NUMA体系结构是这样的体系结构:多个处理器访问共享存储器,从每一个处理器到该存储器的访问开销是不均匀的。
图4显示了具有NUMA体系结构的信息处理装置的结构示例,这是根据本发明的一个实施例的信息处理装置的结构示例;如图4所示,多个芯片集111和121作为节点互连到纵横开关。纵横开关用作将多个节点互连的互连总线。用于在从一个节点访问连接到另一个节点的存储器时转换地址的地址转换表131被连接到纵横开关。
CPU-1112、存储器-1113,以及设备-1114经由充当本地总线的系统总线1连接到芯片集111。CPU-2122、存储器-2123以及设备-2124经由充当本地总线的系统总线2连接到芯片集121。
在如图4所示的信息处理装置中,参考如图5所示的流程图描述在从CPU和设备访问存储器时执行的处理的流程。
如图5所示的处理是对由CPU执行的存储器访问和由设备使用DMA执行的存储器访问通用的序列。在步骤S11中,CPU或设备参照地址转换表131。在步骤S12中,确定要被访问的存储器是否位于与CPU或设备所连接到的本地总线相同的本地总线(系统总线)上。
当在步骤S12中确定要被访问的存储器位于同一个本地总线上时,流程进入步骤S13,执行普通的存储器访问。
对比而言,当存储器不在同一个本地总线(系统总线)上时,流程进入步骤S14,经由纵横开关访问存储器。在此情况下,在步骤S15中,确定是否可以维持缓存和存储器一致性。即,确定是否甚至在当访问存储器时更新缓存的数据的情况下也可以维持一致性。
当在步骤S15中确定可以维持一致性时,流程进入步骤S17,并经由纵横开关访问连接到本地总线(系统总线,其连接到不同的节点)的存储器。
当在步骤S15中确定不可以维持一致性时,流程进入步骤S16。在步骤S16中,使缓存失效。在步骤S17中,经由纵横开关访问连接到本地总线(系统总线,其连接到不同的节点)的存储器。
在步骤S14到S17中,经由纵横开关访问存储器,相应地,处理开销增大。根据本发明本实施例的信息处理装置避免了这样的经由纵横开关的存储器访问。
现在请参看图6,将描述根据本发明本实施例的信息处理装置的数据存储结构和存储器访问过程。在根据本发明本实施例的信息处理装置中,如图6所示,通过在设备连接到的本地总线上保留要被该设备访问的存储器,避免了经由纵横开关进行的存储器访问。
如图6所示的信息处理装置具有类似于图4所显示的结构。芯片集111和121作为节点互连到纵横开关,纵横开关是互连总线。用于在从一个节点访问连接到另一个节点的存储器时转换地址的地址转换表131被连接到纵横开关。
CPU-1112、存储器-1113以及设备-1114经由充当本地总线的系统总线1连接到芯片集111。CPU-2122、存储器-2123以及设备-2124经由充当本地总线的系统总线2连接到芯片集121。
在连接到芯片集111一侧的系统总线1的CPU-1112上设置连接到同一个芯片集111的系统总线1的设备-1114的设备驱动器141。
通过激活芯片集111一侧的CPU-1112中包括的设备驱动器141,芯片集111一侧的设备-1114开始操作,且设备-1114执行数据处理。例如,当设备-1114是网卡时,设备-1114经由网络与外部进行通信处理。可替选地,当设备-1114是视频卡时,设备-1114执行图像数据处理。
在此结构示例中,设备-1114使用DMA访问连接到同一个节点或芯片集111一侧的系统总线1的存储器-1113。此外,在其上设置了对应于设备-1114的设备驱动器141的CPU-1112访问连接到同一个节点或芯片集111一侧的系统总线1的存储器-1113。
利用这样的数据访问结构,在设备-1114执行数据处理时,CPU-1112和设备-1114访问连接到同一个节点的本地总线(系统总线1)上的存储器-1113就足够了,相应地,避免了经由纵横开关访问另一个节点。结果,只在如图5所示的流程图的步骤S13中访问存储器,而不执行步骤S14到S17中的经由纵横开关的处理。因此,降低存储器访问开销,并提高处理效率。
在根据本发明本实施例的信息处理装置中,信息处理装置中包括的任何一个处理器执行下列处理:
在选择要被设备访问的存储器时,选择该设备所连接到的系统总线上的存储器,作为要被该设备访问的存储器;以及
选择对应于设备的设备驱动器要在其上被激活的处理器,作为该设备所连接到的系统总线上的处理器。
即,处理器用作存储器选择单元和处理器选择单元。
将描述存储器选择过程和处理器选择过程的特定处理序列。
存储器选择过程
例如,Linux提供NUMA应用程序接口(API)。通过使用此API,在由设备驱动器保留存储器时,可以明确地指定要在哪一个系统总线上保留存储器。
请参看如图7所示的流程图,将描述在使用此API选择要访问的存储器的情况下执行的过程的序列。
在步骤S101中,通过设置寄存器值等等来初始化设备。在步骤S102中,确定该设备所连接到的总线。例如,在设备-1114的情况下,从如图6所示的结构很清楚地看出,设备-1114连接到系统总线1。在步骤S103中,通过指定本地总线的总线编号,在该设备连接到的本地总线上保留要被该设备访问的存储器。
当在同一个总线上保留存储器失败时(在步骤S104中为“否”),在步骤S105中,保留存储器而无需指定总线编号。
在该处理的流程中,如果在同一个总线上保留存储器失败(在步骤S104中为“否”),则保留要被该设备访问的存储器,而无需指定总线编号,从而可靠地保留存储器。
通过此设置,通常被连接到设备所连接到的同一个总线的存储器优先地被保留为要被该设备访问的存储器。只有在保留此存储器失败的情况下,例外地,不在该设备所连接到的同一个本地总线上的存储器被保留为访问目的地。
通过在激活设备时可靠地执行根据此处理序列的此存储器保留过程,可以配置参考图6所描述的结构,即,其中将设备和要被该设备访问的存储器设置于同一个本地总线(系统总线)上的结构。
在如图7所示的流程图中,当步骤S103中的在同一个总线上保留存储器失败时(在步骤S104中为“否”),在步骤S105中,保留存储器而无需指定总线编号。此序列使存储器保留的优先级高于停止由设备执行的处理。
即,在此情况下,虽然连接到与设备所连接到的节点不同的节点的存储器可以被设置为访问目的地,但该设备仍可以执行处理。可替选地,当在同一个总线上保留存储器失败(在步骤S104中为“否”)时,则可以设置为结束使用该设备。
可替选地,当在同一个总线上保留存储器失败时(在步骤S104中为“否”),在预置的等待时间之后,流程可以返回到步骤S103,在该步骤中,重复在同一个总线上保留存储器。
如此,根据本发明本实施例的信息处理装置中的存储器选择单元在选择要被设备访问的存储器时,执行优先地选择连接到该设备所连接到的系统总线的存储器作为要被该设备访问的存储器的过程。当保留连接到该设备所连接到的系统总线的存储器失败时,可以重复保留对连接到该系统总线的存储器的保留,或者,可以选择连接到另一个系统总线的存储器作为要被访问的存储器。可替选地,可以结束由该设备执行的处理。
处理器选择过程
参考图7所描述的过程是优先将设备所连接到的本地总线上的存储器设置为该设备的访问目的地的过程的序列。此外,通过设置设备驱动器(该设备驱动器控制要在该设备所连接到的同一个本地总线上的CPU上运行),从CPU访问存储器的开销可以减小。
例如,在Linux实现方式中,通过对CPU和存储器之间的亲缘性(affinity)赋予优先级,确定用于执行过程的CPU。如上文所描述的,当在同一个系统总线上保留连接到同一个节点的设备所使用的存储器时,控制该设备的设备驱动器被设置为在该设备和存储器所连接到的同一个系统总线的CPU上运行,而无需执行特殊处理。
此外,通过使用诸如[numactl](这是对应于NUMA体系结构的一个命令)的命令,在激活应用程序时,可以明确地指定要被操作的CPU。命令[numactl]是指定总线编号和激活应用程序的命令。利用命令[numactl],可以在连接到特定本地总线(系统总线)的CPU上激活应用程序。即,使用此命令,可以明确地指定要被操作的CPU。
现在请参看如图8所示的流程图,将描述此过程的流程。在步骤S201中,指定要在应用程序中使用的设备。在步骤S202中,确定该设备所连接到的本地总线(系统总线)。最后,在步骤S203中,执行命令[numactl],于是,指定该设备所连接到的本地总线(系统总线),明确地指定要被操作的CPU,并激活指定的CPU中的应用程序。
利用此处理,实现了如图6所示的存储器访问结构,其中,设备、要被该设备访问的存储器、以及运行用于该设备的设备驱动器的CPU被置于同一个本地总线(系统总线)上。结果,在使用设备访问正在处理中的存储器时,防止了被连接到与连接到该设备的节点不同的节点的存储器被访问。即,只在如图5所示的流程图的步骤S13中访问存储器,而不执行步骤S14到S17的经由纵横开关的处理。因此,减小了存储器访问开销,提高了处理效率。
如此,根据本发明本实施例的信息处理装置中的处理器选择单元执行这样的过程:选择连接到设备所连接到的系统总线的处理器,作为在其上设置对应于该设备的设备驱动器的处理器。具体来说,确定连接到设备的系统总线,连接到该系统总线的处理器被设置为激活使用该设备的应用程序的处理器。
其他实施例
多处理器系统包括多个CPU。下面将描述通过使用多个CPU提高处理效率的实施例。
当每一个CPU上的负载为低,并且CPU通过设备被中断的频率为低时,借助于向在其上正运行设备驱动器的CPU发送中断通知而通过数据的局部性(locality)提高处理效率。然而,存在这样的情况:可由每一个CPU处理的数据量小于可由设备处理的数据量,或者,相当频繁地生成中断并且每一个CPU的处理效率被降低。
请参看图9,将描述通过使用多个CPU提高处理效率的结构示例。如图9所示的信息处理装置是具有类似于如图4和6所示结构的结构的信息处理装置100。
充当节点的芯片集111和121被连接到纵横开关,纵横开关是互连总线。CPU-1112、存储器-1113以及设备-1114经由充当本地总线的系统总线1连接到芯片集111。CPU-2122、存储器-2123以及设备-2124经由充当本地总线的系统总线2连接到芯片集121。
在此结构示例中,对应于连接到芯片集111一侧的系统总线1的设备-1114的设备驱动器被分成两个部分:一个部分执行中断处理,另一个部分(下半部)执行主数据处理,这两部分在不同的处理器(CPU)上被操作。利用此结构,可以消除由于中断而造成的寄存器中的值的转移/恢复以及缓存中的数据的更新的影响,相应地,提高了设备驱动器的处理效率。
具体来说,对应于连接到芯片集111一侧的系统总线1的设备-1114的设备驱动器,如图9所示,被分成两个部分,这两个部分分别在CPU-1112和CPU-2122上被操作。
连接到设备-1114所连接到的同一个本地总线(系统总线1)的CPU-1112是包括用于执行主数据处理(下半部)的主驱动器181的CPU;以及
连接到不同于设备-1114所连接到的本地总线的本地总线(系统总线2)的CPU-2122是包括用于执行中断处理的中断驱动器182的CPU。
如上所述,通过将设备驱动器分为两个部分:即,执行中断处理的部分和执行主数据处理的部分(下半部),并且在不同的CPU上运行这两部分,可以消除由于中断而造成的寄存器中的值的转移/恢复以及缓存中的数据的更新的影响,相应地,可以提高设备驱动器的处理效率。
根据例如操作系统(OS)的策略,执行选择用于处理来自设备的中断的CPU的过程。例如,使用下列任何一个方案来选择CPU:
选择同一个本地总线上的CPU;
选择在该时间点负载最低的CPU;以及
使用循环方案来选择CPU。
例如,由于在Linux中固定地生成本用于地总线上的CPU的中断,如上文所描述的,如果已经保留了本地总线上的存储器,则修改内核中的中断处理器,以便生成用于不同于本地总线上的CPU的CPU的中断。通过为不同于本地总线上的CPU的CPU设置要生成的中断,结果,在不同于本地总线上的CPU的CPU上执行设备驱动器的中断处理器。
图10显示了此情况下的设备驱动器的结构示例。即,图10显示了在设备是网卡的情况下设备驱动器的结构示例。
如图10所示,设备驱动器200包括下列部件:在通过OS识别设备时执行初始化的初始化处理单元201;存储诸如因特网协议(IP)地址和最大传输单元(MTU)的设置信息的状态保存单元202;被上层调用并发送分组的发送处理单元203;在生成来自设备的中断时被调用的中断处理单元204;以及在进行中断处理时在调度器中设置的下半部处理单元210。
下半部处理单元210包括发送完成处理单元211、接收处理单元212、以及错误处理单元213。请参看如图11所示的流程图,将描述在生成中断时由中断处理单元204执行的过程的流程。
在步骤S301中,确定下半部处理单元210是否已经被激活。例如,Linux的下半部是作为[tasklet]和[poll]函数来实现的。可以通过检查内核中的可变值来确定下半部是否正在运行。
当下半部处理单元210已经激活时,流程进入步骤S303。当下半部处理单元210没有激活时(在步骤S301中为“否”),流程进入步骤S302。在内核调度器中注册下半部处理单元210,以便在生成下一个定时中断并激活调度器时执行下半部处理单元210。此后,在步骤S303中,清除中断的因素(在外围组件互连(PCI)的情况下,通过对Intx进行去声明(deassert)),并使过程结束。
现在请参看如图12所示的流程图,将描述在调度下半部处理单元210时执行的处理的流程。在步骤S401中,确定是否存在发送完成的分组。如果有发送完成的分组,则在步骤S402中,执行诸如释放存储器的发送完成处理。
在步骤S403中,确定是否存在接收到的分组。如果存在接收到的分组,则在步骤S404中,将接收到的分组传送到上部的协议。
在步骤S405中,确定是否发生了错误。如果发生了错误,则在步骤S406中,执行错误处理。
在步骤S407中,确定步骤S402中的发送完成处理、步骤S404中的接收完成处理以及步骤S406中的错误处理中的任何一个处理是否已经执行。如果已经执行了步骤S402、S404以及S406中的任何一个中的处理,则在步骤S408中,在调度器中重新注册下半部处理单元210,并结束该过程。
已经在特定实施例的上下文中详细描述了本发明。然而,显然,在不偏离本发明的范围的情况下,本领域技术人员可以进行修改或作出替代方案。即,是通过举例来说明本发明的,本发明不应该被理解为限于实施例。应该根据所附的权利要求确定本发明的范围。
此说明书中所描述的一系列过程可以通过硬件、软件或硬件和软件两者的组合来执行。当要通过软件执行该一系列过程时,通过将记录了处理序列的程序安装在嵌入到专用硬件的计算机的存储器上或安装在能够执行各种过程的通用计算机上来执行该程序。例如,也可以将程序预先记录在记录介质上。除了将程序从记录介质安装到计算机中之外,也可以经由诸如局域网(LAN)或因特网的网络接收程序,并可以将程序安装在诸如内置硬盘的记录介质上。
此说明书中所描述的过程可以根据描述按时间顺序地执行,或者也可以根据执行过程的装置的处理性能或根据需要,并行地或分别地执行。此说明书中的术语“系统”是多个装置的逻辑集合,而不仅限于这些装置被封装在单一壳体中的结构。
Claims (11)
1.一种信息处理装置,包括:
多个节点,每一个节点都至少将处理器和存储器连接到系统总线;
互连总线,用于互连所述节点;
被连接到所述多个节点中的任何一个节点的系统总线并执行数据处理的设备;以及
存储器选择单元,用于选择被连接到所述设备所连接到的所述系统总线的存储器,作为要被所述设备访问的存储器。
2.根据权利要求1所述的信息处理装置,其中,所述存储器选择单元用于在对被连接到所述设备所连接到的所述系统总线的存储器进行的保留处理失败的情况下,选择不同于被连接到所述设备所连接到的所述系统总线的存储器,作为要被所述设备访问的存储器。
3.根据权利要求1所述的信息处理装置,其中,所述存储器选择单元用于在对被连接到所述设备所连接到的所述系统总线的存储器进行的保留处理失败的情况下,结束由所述设备执行的处理。
4.根据权利要求1所述的信息处理装置,其中,所述存储器选择单元用于在对被连接到所述设备所连接到的所述系统总线的存储器进行的保留处理失败的情况下,重复地对被连接到所述设备所连接到的所述系统总线的存储器进行保留处理。
5.根据权利要求1所述的信息处理装置,进一步包括处理器选择单元,用于选择被连接到所述设备所连接到的所述系统总线的处理器,作为在其上设置对应于所述设备的设备驱动器的处理器。
6.根据权利要求5所述的信息处理装置,其中,所述设备选择单元确定所述设备所连接到的系统总线,并选择连接到所述系统总线的处理器作为在其上激活使用所述设备的应用程序的处理器。
7.根据权利要求1所述的信息处理装置,其中,所述设备驱动器被分成用于执行主数据处理的主处理执行部分和用于执行中断处理的中断处理执行部分,以及
其中,第一处理器是主处理执行处理器,该第一处理器是被设置到所述多个节点的多个处理器中的一个,以及,不同于该第一处理器的第二处理器是中断处理执行处理器。
8.根据权利要求7所述的信息处理装置,其中,所述中断处理执行处理器使用下列选择方案中的任何一个来选择处理器:
选择被连接到所述设备所连接到的所述系统总线的处理器;
选择在要选择处理器的时间点负载最低的处理器;以及
使用循环方案选择处理器。
9.根据权利要求7所述的信息处理装置,其中,所述设备是执行通信处理的设备,以及
其中,所述主处理执行部分是用于执行数据发送完成处理、数据接收完成处理以及错误处理的处理单元。
10.一种由信息处理装置执行的信息处理方法,该信息处理装置包括:多个节点,每一个节点都至少将处理器和存储器连接到系统总线;用于将所述节点互连的互连总线;以及,被连接到所述多个节点中的任何一个节点的系统总线并执行数据处理的设备,所述方法包括下列步骤:
利用存储器选择单元来选择被连接到所述设备所连接到的所述系统总线的存储器,作为要被设备访问的存储器。
11.一种用于使信息处理装置执行信息处理的计算机程序,所述信息处理装置包括:多个节点,每一个节点都至少将处理器和存储器连接到系统总线;用于将所述节点互连的互连总线;以及,被连接到所述多个节点中的任何一个节点的系统总线并执行数据处理的设备,所述计算机程序包括下列步骤:
使得存储器选择单元选择被连接到所述设备所连接到的所述系统总线的存储器,作为要被所述设备访问的存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008110542A JP4609521B2 (ja) | 2008-04-21 | 2008-04-21 | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
JP2008-110542 | 2008-04-21 | ||
JP2008110542 | 2008-04-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101566976A true CN101566976A (zh) | 2009-10-28 |
CN101566976B CN101566976B (zh) | 2013-03-13 |
Family
ID=41202074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910135232.7A Expired - Fee Related CN101566976B (zh) | 2008-04-21 | 2009-04-21 | 信息处理装置和信息处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8166339B2 (zh) |
JP (1) | JP4609521B2 (zh) |
CN (1) | CN101566976B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104254840A (zh) * | 2012-04-27 | 2014-12-31 | 马维尔国际贸易有限公司 | 在计算机系统中的存储器转储和分析 |
CN111052134A (zh) * | 2017-08-31 | 2020-04-21 | 快图有限公司 | 外围处理设备 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8327358B2 (en) | 2009-12-10 | 2012-12-04 | Empire Technology Development Llc | Hypervisor driver management in virtual machine environments |
CN109496401B (zh) * | 2015-12-23 | 2021-01-05 | 华为技术有限公司 | 一种业务接管方法、存储设备和业务接管装置 |
CN109214616B (zh) | 2017-06-29 | 2023-04-07 | 上海寒武纪信息科技有限公司 | 一种信息处理装置、系统和方法 |
WO2019001418A1 (zh) * | 2017-06-26 | 2019-01-03 | 上海寒武纪信息科技有限公司 | 数据共享系统及其数据共享方法 |
CN109426553A (zh) | 2017-08-21 | 2019-03-05 | 上海寒武纪信息科技有限公司 | 任务切分装置及方法、任务处理装置及方法、多核处理器 |
CN110413551B (zh) | 2018-04-28 | 2021-12-10 | 上海寒武纪信息科技有限公司 | 信息处理装置、方法及设备 |
CN111309529B (zh) * | 2018-12-11 | 2022-04-19 | 英业达科技有限公司 | 依处理器信息完整测试处理器内通信链路的系统及方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03123425A (ja) | 1989-10-05 | 1991-05-27 | Ajinomoto Co Inc | ダイズ属に属する植物及びその育種法 |
JPH05290001A (ja) * | 1992-04-13 | 1993-11-05 | Nec Corp | 分散処理システムのメモリ管理方式 |
US5673413A (en) | 1995-12-15 | 1997-09-30 | International Business Machines Corporation | Method and apparatus for coherency reporting in a multiprocessing system |
JP3123425B2 (ja) | 1996-02-27 | 2001-01-09 | 日本電気株式会社 | 割り込み負荷分散装置 |
JPH1021203A (ja) * | 1996-07-05 | 1998-01-23 | Hitachi Ltd | I/o装置のアクセス方法およびそのためのマルチプロセッサシステム |
US6633916B2 (en) * | 1998-06-10 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Method and apparatus for virtual resource handling in a multi-processor computer system |
US20020016891A1 (en) * | 1998-06-10 | 2002-02-07 | Karen L. Noel | Method and apparatus for reconfiguring memory in a multiprcessor system with shared memory |
US6647508B2 (en) * | 1997-11-04 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation |
US6658538B2 (en) | 2001-06-21 | 2003-12-02 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system having a page table including node-specific data storage and coherency control |
US6968398B2 (en) * | 2001-08-15 | 2005-11-22 | International Business Machines Corporation | Method of virtualizing I/O resources in a computer system |
US7043666B2 (en) * | 2002-01-22 | 2006-05-09 | Dell Products L.P. | System and method for recovering from memory errors |
US7017074B2 (en) * | 2002-03-12 | 2006-03-21 | Sun Microsystems, Inc. | System architecture providing redundant components to improve die yields and system reliability |
US7529875B2 (en) * | 2003-08-20 | 2009-05-05 | International Business Machines Corporation | Assigning interrupts for input/output (I/O) devices among nodes of a non-uniform memory access (NUMA) system |
US7380039B2 (en) * | 2003-12-30 | 2008-05-27 | 3Tera, Inc. | Apparatus, method and system for aggregrating computing resources |
JP2006039822A (ja) | 2004-07-26 | 2006-02-09 | Canon Inc | マルチプロセッサ搭載システムlsiの制御方法 |
US20060080514A1 (en) * | 2004-10-08 | 2006-04-13 | International Business Machines Corporation | Managing shared memory |
JP4625675B2 (ja) * | 2004-10-20 | 2011-02-02 | 株式会社日立製作所 | ストレージ装置のリソース割り当て方法及びストレージ装置 |
US7478268B2 (en) * | 2005-09-13 | 2009-01-13 | International Business Machines Corporation | Deallocation of memory in a logically-partitioned computer |
US20070073993A1 (en) * | 2005-09-29 | 2007-03-29 | International Business Machines Corporation | Memory allocation in a multi-node computer |
US7472234B2 (en) * | 2006-02-28 | 2008-12-30 | Red Hat, Inc. | Method and system for reducing latency |
US7500067B2 (en) * | 2006-03-29 | 2009-03-03 | Dell Products L.P. | System and method for allocating memory to input-output devices in a multiprocessor computer system |
JP4544246B2 (ja) * | 2006-12-28 | 2010-09-15 | ソニー株式会社 | 制御装置および方法、プログラム、並びに記録媒体 |
US9021506B2 (en) * | 2007-01-25 | 2015-04-28 | Hewlett-Packard Development Company, L.P. | Resource ejectability in multiprocessor systems |
US9185160B2 (en) * | 2007-02-12 | 2015-11-10 | Oracle America, Inc. | Resource reservation protocol over unreliable packet transport |
US8037270B2 (en) * | 2007-06-27 | 2011-10-11 | International Business Machines Corporation | Structure for memory chip for high capacity memory subsystem supporting replication of command data |
-
2008
- 2008-04-21 JP JP2008110542A patent/JP4609521B2/ja not_active Expired - Fee Related
-
2009
- 2009-03-11 US US12/401,684 patent/US8166339B2/en not_active Expired - Fee Related
- 2009-04-21 CN CN200910135232.7A patent/CN101566976B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104254840A (zh) * | 2012-04-27 | 2014-12-31 | 马维尔国际贸易有限公司 | 在计算机系统中的存储器转储和分析 |
CN111052134A (zh) * | 2017-08-31 | 2020-04-21 | 快图有限公司 | 外围处理设备 |
CN111052134B (zh) * | 2017-08-31 | 2024-04-26 | 快图有限公司 | 外围处理设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101566976B (zh) | 2013-03-13 |
JP2009265687A (ja) | 2009-11-12 |
US20090265500A1 (en) | 2009-10-22 |
US8166339B2 (en) | 2012-04-24 |
JP4609521B2 (ja) | 2011-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101566976B (zh) | 信息处理装置和信息处理方法 | |
US5717942A (en) | Reset for independent partitions within a computer system | |
CN100578456C (zh) | 信息处理装置、进程控制方法 | |
CN107077303B (zh) | 分配和配置持久存储器 | |
US7464221B2 (en) | Storage system, storage device, and control method thereof | |
US6665740B1 (en) | Logical volume selection in a probability-based job scheduler | |
KR101517258B1 (ko) | 크로스-시스템의 프록시-기반 태스크 오프로딩을 위한 장치, 시스템 및 방법 | |
CN102473106B (zh) | 虚拟环境中的资源分配 | |
US8612973B2 (en) | Method and system for handling interrupts within computer system during hardware resource migration | |
US20180059988A1 (en) | STREAM IDENTIFIER BASED STORAGE SYSTEM FOR MANAGING AN ARRAY OF SSDs | |
JP6368434B2 (ja) | Pld管理方法及びpld管理システム | |
WO2008142137A1 (en) | Defragmenting blocks in a clustered or distributed computing system | |
US8874853B2 (en) | Local and global memory request predictor | |
KR102043276B1 (ko) | 워크 로드에 따라 동적 자원 할당 가능한 상호 연결 패브릭 스위칭 장치 및 방법 | |
US9063794B2 (en) | Multi-threaded processor context switching with multi-level cache | |
CN104965678A (zh) | 一种固态存储的控制方法、装置及固态存储设备 | |
CN103348333A (zh) | 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置 | |
US20200310690A1 (en) | Dynamic near-data processing control mechanism based on computer resource availability on solid-state disk platforms | |
CN110622130B (zh) | 可配置的本地异构计算环境中的高容量、低延迟数据处理 | |
CN115964093A (zh) | 用于访问存储设备上的设备程序的系统、方法和设备 | |
CN110737618A (zh) | 内嵌处理器进行快速数据通信的方法、装置及存储介质 | |
CN113986137A (zh) | 存储装置和存储系统 | |
WO2017087544A1 (en) | Method and system for shared direct access storage | |
US11422702B2 (en) | Managing utilization of storage class memory (SCM) resources | |
US20200319819A1 (en) | Method and Apparatus for Improving Parity Redundant Array of Independent Drives Write Latency in NVMe Devices |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130313 Termination date: 20150421 |
|
EXPY | Termination of patent right or utility model |