CN112052108A - 并行处理设备 - Google Patents

并行处理设备 Download PDF

Info

Publication number
CN112052108A
CN112052108A CN202010483979.8A CN202010483979A CN112052108A CN 112052108 A CN112052108 A CN 112052108A CN 202010483979 A CN202010483979 A CN 202010483979A CN 112052108 A CN112052108 A CN 112052108A
Authority
CN
China
Prior art keywords
data
interrupt
reception
transmission
command
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.)
Pending
Application number
CN202010483979.8A
Other languages
English (en)
Inventor
太田广大
松浦功克
松森和
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN112052108A publication Critical patent/CN112052108A/zh
Pending 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

一种并行处理设备,包括:多个节点;以及控制所述多个节点的控制装置,控制装置包括多个处理单元,每个处理单元对从对应节点接收的命令和数据串进行处理,每个处理单元包括:接收数据寄存器,其中存储接收数据串中的数据片段;接收数据缓冲器,每当数据片段被存储到接收数据寄存器时就被从接收数据寄存器传送至接收数据缓冲器;接收完成检测器,检测接收数据串的传送的完成;故障检测器,检测接收的命令是否为故障命令;以及中断发出器,基于对故障命令的检测发出中断,并且在未检测到故障命令时基于对接收数据串的传送的完成的检测发出中断,以及控制装置还包括中断处理单元,每个中断处理单元基于由对应中断发出器发出的中断执行中断处理。

Description

并行处理设备
技术领域
实施方式涉及并行处理设备。
背景技术
已经提出了可根据对系统的影响程度切换基于冗余计算机系统中发生的错误要向其发出中断的目的地的方法。已经提出了使通过虚拟服务器刀片模仿的虚拟基板管理控制器(BMC)表现得像物理BMC并执行诸如在虚拟BMC中记录事件和错误的处理的方法。已经提出了通过向BMC提供选择性地切换用于激活操作系统(OS)的磁盘装置的功能来提高OS的可靠性的方法。
在日本公开特许公报第2006-178557号、国际专利申请的日本国家公布第2008-523512号以及日本公开特许公报第2002-259130号中公开了相关技术。
例如,诸如服务器的节点和包括控制该节点的BMC的控制装置通过使用智能平台管理接口(IPMI)标准中的键盘控制器样式(KCS)接口来传递命令和数据串。在节点向BMC发送命令和数据串时,该节点逐字节地将命令之后的数据串发送至控制装置的接收电路。接收电路在每当从节点接收到1字节的数据片段时就向BMC发出中断。BMC的固件响应于中断而对控制装置从节点接收的数据片段进行处理。
例如,在BMC控制多个节点时,由BMC控制的节点数目的增加导致由BMC进行的中断接收的频率以及中断处理的频率增加,从而导致BMC上的负荷增加。
在一方面,本发明旨在减少对多个节点进行控制的控制装置基于从节点接收的数据片段而发出的中断的数目。
发明内容
根据一方面,一种并行处理设备,包括:执行信息处理多个节点以及对所述多个节点进行控制的控制装置。控制装置包括分别对应于多个节点而设置的多个处理单元并且每个处理单元对从对应节点接收的命令以及该命令之后的数据串进行处理。多个处理单元中的每个处理单元包括:接收数据寄存器,其中逐片段地顺序存储有从对应节点接收的命令之后的接收数据串中的数据片段;接收数据缓冲器,每当数据片段被存储到接收数据寄存器中时,该数据片段就被从接收数据寄存器传送至接收数据缓冲器;接收完成检测器,其检测接收数据串到接收数据缓冲器的传送的完成;故障检测器,其检测所接收的命令是否为指示对应节点的故障状态的故障命令;以及中断发出器,其基于故障检测器对故障命令的检测来发出中断,并且在故障检测器未检测到故障命令时基于接收完成检测器对接收数据串的传送的完成的检测来发出中断。控制装置还包括:中断处理单元,其分别对应于多个节点而设置,并且每个中断处理单元基于由对应中断发出器发出的中断来执行中断处理。
在一方面,本发明使得可以减少对多个节点进行控制的控制装置基于从节点接收的数据片段发出的中断的数目。
附图说明
图1是示出根据实施方式的并行处理设备的示例的框图。
图2是示出根据另一实施方式的并行处理设备的示例的框图。
图3是示出图2中的KCS处理单元的示例的框图。
图4是示出要写入图3中的命令寄存器的命令的示例的图。
图5是示出存储在图3中的接收数据寄存器和发送数据寄存器中的数据格式的示例的图。
图6是示出在图2中的节点通知操作状态的情况下要使用的数据格式的示例的图。
图7是以图6所示的数据格式示出的用于通知节点的操作状态的请求数据及其响应数据的示例的图。
图8是示出在图2中的节点获取系统时间信息的情况下要使用的数据格式的示例的图。
图9是以图8所示的数据格式示出的用于获取系统时间信息的请求及其响应的示例的图。
图10是呈现由图2中的KCS处理单元进行的操作的示例的流程图。
图11是呈现在图10中的操作OP50处的处理的示例的流程图。
图12是呈现在图10中的操作OP70处的处理的示例的流程图。
图13是呈现由图2中的BMC进行的KCS中断处理的示例的流程图。
具体实施方式
在下文中,使用附图来描述实施方式。
图1示出了根据实施方式的并行处理设备的示例。图1所示的并行处理设备100包括执行信息处理的多个节点1以及对多个节点1进行控制的控制装置2。例如,每个节点1可以是诸如服务器的信息处理设备或者诸如中央处理单元(CPU)的处理器。可替选地,每个节点1可以是包括在CPU中的CPU核之一。节点1可以经由未示出的网络彼此耦接,并且彼此之间传送要用于信息处理的数据。
例如,节点1将命令以及该命令之后的数据串发送至控制装置2。例如,当命令是指示通知节点状态的通知命令时,该命令之后的数据串指示节点所处的操作状态或节点的停止状态。例如,当命令是指示请求系统信息例如时间的请求命令或指示节点1的故障状态的故障命令时,可以仅发送命令而不跟随任何数据串。节点1的故障状态包括节点1检测到节点1被禁止与控制装置2正常通信的情况。
控制装置2包括对应于各个节点1而设置的多个处理单元3。每个处理单元3包括接收数据寄存器4、接收数据缓冲器5、接收完成检测器6、故障检测器7以及中断发出器8。控制装置2还包括对应于各个节点1而设置的中断处理单元9。
例如,处理单元3由硬件实现,中断处理单元9由控制器例如安装在控制装置2中的BMC执行的固件实现。处理单元3的一部分可以由软件实现,并且中断处理单元9可以由硬件例如现场可编程门阵列(FPGA)实现。
接收数据寄存器4顺序地存储从对应节点1接收的命令之后的数据串中包括的数据片段中的每个数据片段。每当数据片段被存储到接收数据寄存器4中时,该数据片段就被从接收数据寄存器4传送至接收数据缓冲器5。例如,接收数据寄存器4的大小为1字节,以及接收数据缓存器5的大小(多个字节)等于或大于要从节点1接收的数据串的最大大小。每当数据片段被写入接收数据寄存器4中时,处理单元3就将所写入的数据片段传送至接收数据缓冲器5。命令之后的数据串可以是1字节。
接收完成检测器6检测命令之后的整个接收的数据串被从接收数据寄存器4逐字节地传送至接收数据缓冲器5。例如,基于数据串到接收数据缓冲器5的传送的完成,接收完成检测器6将指示来自节点1的数据串的接收的完成的完成信息输出至中断发出器8。
故障检测器7检测所接收的命令是否为指示发送该命令的节点1的故障状态的故障命令。故障检测器7基于对故障命令的检测立即将指示节点1的故障状态的故障信息输出至中断发出器8。
中断发出器8基于故障检测器7对故障命令的检测立即向中断处理单元9发出中断。当故障检测器7未检测到故障命令时,中断发出器8基于接收完成检测器6对数据串到接收数据缓冲器5的传送的完成的检测向中断处理单元9发出中断。
中断处理单元9基于由中断发出器8发出的中断来执行中断处理。此处,中断处理取决于中断的原因而变化。例如,在基于对指示通知节点状态的通知命令之后的数据串的接收的中断处理中,中断处理单元9将由数据串指示的节点的状态存储到BMC中的状态存储区域中,并且向节点发出指示接收到数据串的响应命令。例如,在基于指示请求系统信息例如时间的请求命令的接收的中断处理中,中断处理单元9获取系统信息例如时间,并将所获取的系统信息返回至节点1。例如,在基于指示节点1的故障状态的故障命令的接收的中断处理中,中断处理单元9分析故障的细节和原因,并且将故障的细节和原因通知给节点1或管理员终端。
在图1所示的并行处理设备100中,接收完成检测器6基于从节点1接收的通知命令之后的数据串到接收数据缓冲器5的传送的完成将接收完成信息输出至中断发出器8。与每当接收数据寄存器4接收到包括在数据串中的数据片段时就将接收完成信息输出至中断发出器8的情况相比,这使得可以减小中断发出器8向中断处理单元9发出的中断的数目。这还使得可以减少基于中断进行的中断处理执行的次数,并因此减少施加于BMC(中断处理单元9)的负荷。作为结果,使得控制装置2能够控制较多数目的节点1。例如,与每当从节点1接收到命令之后发送的1个字节的数据片段时就发出中断的情况相比,可以减少布置在并行处理设备100中的控制装置2的数目,并且可以相应地减少并行处理设备100的成本。
当接收到故障命令时,故障信息被立即输出至中断发出器8,并且中断发出器8向中断处理单元9发出中断,使得可以快速开始针对节点1的故障状态的中断处理。
图2示出了根据另一实施方式的并行处理设备的示例。与图1中示出的组成元件相似或相同的组成元件不再详细描述。图2所示的并行处理设备100A包括执行信息处理的多个节点10,以及控制和管理多个节点10的控制装置20。例如,节点10经由网络彼此耦接。每个节点10可以是诸如服务器的信息处理设备、诸如CPU的处理器、或者包括在CPU中的CPU核之一。
控制装置20包括控制单元30和BMC 40。控制单元30例如由硬件实现,并且控制命令和命令之后的数据串到每个节点10的发送和从节点10的接收。例如,节点10和控制单元30通过使用IPMI标准中的KCS接口来发送和接收命令和数据串。图2示出了用于从节点10接收命令和数据的组成元件,并且省略了用于向节点10发送命令和数据的组成元件的图示。
控制单元30包括中断寄存器60以及对应于各个节点10而设置的多个KCS处理单元50。每个KCS处理单元50包括KCS接口寄存器52、KCS数据处理电路54、KCS支持状态寄存器56以及KCS支持数据缓冲器58。KCS处理单元50的示例在图3中示出。KCS处理单元50是处理单元的示例。
KCS接口寄存器52保存从节点10接收的命令之后的数据串,并且保存要连同命令一起发送至节点10的数据串。当KCS数据处理电路54基于KCS接口寄存器52对数据串的接收而确定发出KCS中断时,KCS数据处理电路54在KCS支持状态寄存器56中设置预定的KCS中断标志。此处,KCS中断是由于使用KCS接口从节点10到控制装置20进行通信而生成的中断。
KCS支持数据缓冲器58将通过KCS接口寄存器52从节点10逐字节地接收的数据片段保存为数据串。KCS支持数据缓冲器58保存包括通过KCS接口寄存器52逐字节地发送至节点10的数据片段的数据串。
BMC 40执行对每个节点10的管理例如对电源的控制、温度信息等的获取以及节点10中的事件记录,并且还基于从控制单元30发出的KCS中断来执行KCS中断处理。KCS中断处理是基于KCS中断执行的中断处理。图2仅示出了用于KCS中断处理的组成元件,并且省略了用于节点10的管理的组成元件的图示。
当发生KCS中断时,BMC 40通过固件执行中断线程42以及由中断线程42激活的针对每个节点10的KCS线程44。例如,KCS线程44是中断处理单元的示例,所述中断处理单元基于来自对应KCS处理单元50的中断执行KCS中断处理并生成要发送至对应节点10的响应数据。当基于KCS中断的KCS中断处理完成时,KCS线程44结束。取代中断线程42和KCS线程44之一或两者,BMC 40可以包括执行中断处理的中断处理电路。
图3示出了图2所示的KCS处理单元50的示例。KCS接口寄存器52包括命令寄存器522、状态寄存器524、接收数据寄存器526以及发送数据寄存器528。例如,命令寄存器522、状态寄存器524、接收数据寄存器526以及发送数据寄存器528中的每个寄存器都是1个字节。
KCS数据处理电路54包括比较器541、AND部542、上升检测器543、接收完成检测器544、发送完成检测器545以及其他故障检测器546。KCS数据处理电路54还包括接收数据写入计数器547、发送数据写入计数器548以及发送数据读取计数器549。
KCS支持状态寄存器56具有中止标志、接收完成标志、发送完成标志以及其他故障标志作为KCS中断标志。KCS处理单元50包括中断发出控制器592,该中断发出控制器592基于中止标志、接收完成标志、发送完成标志或其他故障标志向中断寄存器60发出中断。
KCS支持数据缓冲器58包括接收数据缓冲器582和发送数据缓冲器584。KCS处理单元50还包括接收大小寄存器594和发送大小寄存器596。KCS支持状态寄存器56和中断发出控制器592是中断发出器的示例,所述中断发出器基于检测到故障命令或者在未检测到故障命令的情况下检测到接收数据串或发送数据串的传送的完成而发出KCS中断。
命令寄存器522保存从节点10发送的命令。接收数据寄存器526保存在例如逐字节地从对应节点10接收的命令之后的数据串中包括的每个数据片段。例如,节点10将命令写入命令寄存器522,并且将1字节的每个数据片段写入接收数据寄存器526。从节点10接收的数据串是接收数据串的示例。每当从节点10接收的数据串中的1字节的数据片段被保存在接收数据寄存器526中时,该数据片段就被从接收数据寄存器526传送至接收数据缓冲器582。
状态寄存器524具有根据IPMI规范的输入缓冲器已满(IBF)标志。状态寄存器524中的IBF标志在节点10将命令写入命令寄存器522时或者在节点10将数据片段写入接收数据寄存器526时被设置为“1”。
发送数据寄存器528保存要发送至节点10的1字节的数据片段。基于由KCS数据处理电路54进行的控制从发送数据缓冲器584传送在发送数据寄存器528中保存的数据片段。
例如,BMC 40(图2中的KCS线程44)执行对传送至接收数据缓冲器582的数据串进行处理的KCS中断处理、生成要返回至对应节点10的数据串并且将所生成的数据串存储在发送数据缓冲器584中。然后,从发送数据缓冲器584逐字节地顺序传送至发送数据寄存器528的数据片段被作为响应数据串发送至对应节点10。
比较器541将命令寄存器522中保存的命令与中止命令进行比较。比较器541在命令寄存器522中保存的命令是中止命令时输出“1”,或者在命令寄存器522中保存的命令不是中止命令时输出“0”。例如,命令寄存器522存储用于标识命令的命令码,并且比较器541将保存在命令寄存器522中的命令码与用于标识中止命令的命令码进行比较。中止命令是指示节点10的故障状态的故障命令的示例。
AND部542在IBF标志被设置为“1”且比较器541输出“1”时输出“1”,或者在IBF标志被设置为“0”或比较器541输出“0”时输出“0”。当检测到AND部542的输出已经从“0”变为“1”时,上升检测器543置位中止标志。比较器541和AND部542是故障检测器的示例,所述故障检测器检测从对应节点10接收的命令是否为指示节点10的故障状态的故障命令。
当从接收数据写入计数器547接收到指示从节点10接收的数据串到接收数据缓冲器582的传送的完成的接收完成信号RCPLT时,接收完成检测器544将KCS支持状态寄存器56中的接收完成标志置位。然而,在接收完成检测器544已经从AND部542接收到“1”的情况下,接收完成检测器544将置位接收完成标志的操作挂起(suspend),并且从而停止响应于接收完成信号RCPLT而发出中断。当从节点10接收到中止命令时,存在节点10可能具有操作故障并且从节点10接收到的数据串可能不正确的可能性。因此,当接收到中止命令时,停止响应于接收数据串的接收的完成而发出中断,从而避免BMC 40执行不必要的中断处理。
当发送完成检测器545从发送数据写入计数器548接收到发送完成信号TCPLT1并且从发送数据读取计数器549接收到发送完成信号TCPLT2两者时,发送完成检测器545对响应数据串到节点10的发送的完成进行检测。然后,发送完成检测器545将KCS支持状态寄存器56中的发送完成标志置位。
然而,在发送完成检测器545已经从AND部542接收到“1”的情况下,发送完成检测器545将置位发送完成标志的操作挂起,并且从而停止响应于发送完成信号TCPLT1和TCPLT2而发出中断。当从节点10接收到中止命令时,存在节点10可能具有操作故障并且节点10可能无法正确地接收从控制装置20发送的数据串的可能性。因此,当接收到中止命令时,停止响应于发送数据串的发送的完成而发出中断,从而避免BMC 40执行不必要的中断处理。
当在控制装置20中检测到与节点10等的通信故障时,其他故障检测器546不管来自节点10的中止命令如何都将其他故障标志置位。例如,在如下情况下将其他故障标志置位:在完全接收具有接收数据大小的接收数据串之前发生超时、在将具有发送数据大小的发送数据串完全发送之前发生超时等。
每当包括在与命令一起从节点10接收的数据串中的数据片段被从接收数据寄存器526写入接收数据缓冲器582时,接收数据写入计数器547对计数器值进行更新。当计数器值变为等于保存在接收大小寄存器594中的接收数据大小时,接收数据写入计数器547将接收完成信号RCPLT输出至接收完成检测器544。例如,接收数据写入计数器547对在数据片段被从接收数据寄存器526写入接收数据缓冲器582时生成的写入请求进行监视,并且每当生成写入请求时就对计数器值进行更新。接收数据写入计数器547是接收数据计数器的示例。
接收数据写入计数器547对写入接收数据缓冲器582中的每个数据片段逐一计数,这使得可以响应于接收数据串到接收数据缓冲器582的传送的完成而发出中断。这还使得可以在接收数据串到接收数据缓冲器582的传送完成之前停止发出中断,并且使得可以在从接收数据串到接收数据缓冲器582的传送完成起不花费时间的情况下发出中断。因此,当基于接收数据串的传送的完成来发出中断时,可以抑制中断处理效率的降低。
每当数据片段被从发送数据缓冲器584写入发送数据寄存器528时,发送数据写入计数器548对计数器值进行更新。当计数器值变为等于保存在发送大小寄存器596中的发送数据大小时,发送数据写入计数器548将发送完成信号TCPLT1输出至发送完成检测器545。
例如,当计数器值被更新等于响应数据串中的数据片段的数目的次数时,发送数据写入计数器548输出发送完成信号TCPLT1。例如,发送数据写入计数器548对在数据片段被从发送数据缓冲器584写入发送数据寄存器528时生成的写入请求进行监视,并且每当生成写入请求时就对计数器值进行更新。发送数据写入计数器548是第一发送数据计数器的示例,以及发送完成信号TCPLT1是第一发送完成信号的示例。
每当存储在发送数据寄存器528中的数据片段被节点10读出时,发送数据读取计数器549对计数器值进行更新。当计数器值变为等于保存在发送大小寄存器596中的发送数据大小时,发送数据读取计数器549将发送完成信号TCPLT2输出至发送完成检测器545。
例如,当计数器值被更新等于响应数据串中的数据片段的数目的次数时,发送数据读取计数器549输出发送完成信号TCPLT2。例如,发送数据读取计数器549对在节点10从发送数据寄存器528读出数据片段时发出的读取请求进行监视,并且每当生成读取请求时对计数器值进行更新。发送数据读取计数器549是第二发送数据计数器的示例,以及发送完成信号TCPLT2是第二发送完成信号的示例。
发送数据写入计数器548和发送数据读取计数器549各自对包括在发送数据串中的每个数据片段逐一计数,这使得可以响应于发送数据串到节点10的发送的完成来发出中断。这还使得可以停止在向节点10发送发送数据串期间发出中断,并且使得可以在从发送数据串到节点10的发送完成起不花费时间的情况下发出中断。因此,当基于发送数据串的发送的完成来发出中断时,可以抑制中断处理效率的降低。
此外,由于基于由发送数据写入计数器548和发送数据读取计数器549两者对数据片段的计数来发出中断,因此可以提高发出中断的可靠性。
接收数据写入计数器547可以在不使用接收大小寄存器594的情况下确定数据串的接收完成。例如,KCS数据处理电路54基于从节点10接收的命令来获得在命令之后的接收数据串的大小(接收数据大小),并且将所获得的接收数据大小设置在接收数据写入计数器547中。每当数据片段被从接收数据寄存器526写入接收数据缓冲器582时,接收数据写入计数器547使计数器值递减,并且在计数器值变为等于“0”时输出接收完成信号RCPLT。
发送数据写入计数器548和发送数据读取计数器549可以在不使用发送大小寄存器596的情况下确定数据串的发送完成。例如,KCS数据处理电路54在发送数据写入计数器548和发送数据读取计数器549中设置在命令之后要被发送至节点10的数据串的大小(发送数据大小)。每当数据片段被从发送数据缓冲器584写入发送数据寄存器528时,发送数据写入计数器548使计数器值递减,并且在计数器值变为等于“0”时输出发送完成信号TCPLT1。每当存储在发送数据寄存器528中的数据片段被节点10读出时,发送数据读取计数器549使计数器值递减,并且在计数器值变为等于“0”时,输出发送完成信号TCPLT2。
中断发出控制器592响应于中止标志、接收完成标志、发送完成标志和其他故障标志中的任何一个标志的置位而向中断寄存器60发出KCS中断。当接收到KCS中断时,中断寄存器60将KCS中断通知给BMC 40中的中断线程42。
用于发出KCS中断的优先级顺序可以被设置成使得中止标志和其他故障标志被给予的优先级高于接收完成标志和发送完成标志的优先级。在这种情况下,当中止标志被置位并且执行针对中止标志的中断处理时,响应于接收完成标志或发送完成标志而发出的中断被屏蔽(mask)。另一方面,即使在接收完成标志被置位并且执行针对接收完成标志的中断处理的情况下,当中止标志或其他故障标志被置位时,也会向中断寄存器60发出中断。
例如,在响应于接收完成标志的置位而执行中断处理期间接收完成标志被再次置位的情况下,针对再次置位的接收完成标志所发出的中断被屏蔽。以这种方式,中断发出控制器592具有屏蔽要发出的中断的功能。
接收数据缓冲器582保存从接收数据寄存器526传送的数据片段。保存在接收数据缓冲器582中的数据串(接收数据)由BMC 40读出。例如,(多个字节的)接收数据缓冲器582的大小等于或大于要从节点10接收的接收数据串的最大大小。
由BMC 40将数据串写入发送数据缓冲器584。保存在发送数据缓冲器584中的数据串(发送数据)被传送至发送数据寄存器528,并由节点10逐字节地读出。例如,(多个字节的)发送数据缓冲器584的大小等于或大于要发送至节点10的发送数据串的最大大小。
接收大小寄存器594存储作为与命令一起从节点10发送的数据串的大小的接收数据大小。发送大小寄存器596存储作为要连同命令一起发送至节点10的数据串的大小的发送数据大小。
图4示出了要写入图3中的命令寄存器522的命令的示例。图4所示的命令与根据IPMI规范的KCS控制码基本相同。例如,在向控制装置20传送数据片段的情况下,节点10将WRITE_START(命令码=61h)写入命令寄存器522以开始处理(transaction),并且然后将数据片段逐字节地写入接收数据寄存器526。注意,命令码末尾的“h”指示命令码是十六进制数。然后,在将最后一个数据片段写入接收数据寄存器526之后,节点10将WRITE_END(命令码=62h)写入命令寄存器522并终止处理。
当节点10在从将WRITE_START写入命令寄存器522到将WRITE_END写入命令寄存器522的时间段内检测到通信故障等时,节点10将ABORT(中止命令;命令码=60h)写入命令寄存器522。接收到中止命令的控制装置20执行稍后描述的中止处理。例如,所有命令码都具有1个字节。
图5示出了存储在图3中的接收数据寄存器526和发送数据寄存器528中的数据格式的示例。图5所示的请求数据格式与根据IPMI规范的请求消息格式基本相同。图5所示的响应数据格式与根据IPMI规范的响应消息格式基本相同。
要从节点10写入接收数据寄存器526的请求的请求数据格式包括1字节的网络功能码NetFn/逻辑单元号(LUN)、1字节的命令Cmd以及0字节或大于0字节的数据Data。要从BMC 40写入发送数据寄存器528的响应的响应数据格式包括1字节的NetFn/LUN、1字节的Cmd、1字节的完成码以及0字节或大于0字节的数据Data。
图6示出了图2中的节点10通知操作状态的情况下要使用的数据格式的示例。例如,在通知操作状态的情况下,节点10将NetFn/LUN设置为30h、将Cmd设置为00h、在字节3处的Data中设置指示操作状态的码以及在字节4处的Data中设置附加信息。Data中的字节5和6是保留区。在图6所示的示例中,节点10能够根据字节3处的数据来通知八种操作状态中的任何一种。此外,节点10能够通过使用字节4处的附加信息来通知关机是正常关机还是异常关机。
已经接收到操作状态通知的BMC 40创建如下响应:在该响应中,将NetFn/LUN和Cmd分别设置为与请求中相同的30h和00h,并且在响应指示正常终止的情况下将字节3处的完成码设置为00h。在通知操作状态的响应中不使用数据字段。
图7以图6所示的数据格式示出了用于通知节点的操作状态的请求数据及其响应数据的示例。例如,在节点10通知BMC 40节点10的OS处于活动状态时,将0Ah写入接收数据寄存器526中针对NetFn/LUN和Cmd的30h和00h之后。响应数据中所写入的内容与图6所示的内容相同。
图8示出了图2中的节点10获取系统时间信息的情况下的数据格式的示例。例如,在获取系统时间信息的情况下,节点10将NetFn/LUN设置为31h以及将Cmd设置为01h。字节3和更高字节处的数据不存在。
已经接收到获取系统时间信息的通知的BMC 40创建如下响应:在该响应中,将NetFn/LUN和Cmd设置为与请求中相同的31h和01h,并且在响应指示正常终止的情况下将字节3处的完成码设置为指示正常终止的00h。另外,将指示系统时间的数据设置在从字节4到字节7的四个字节处。例如,系统时间被以协调世界时(UTC)表示为自1970年1月1日以来的累计秒数。
图9以图8所示的数据格式示出了用于获取系统时间信息的请求及其响应的示例。写入请求数据的内容与图8所示的内容相同。在响应数据中,前3个字节与图8所示的内容相同。例如,在响应数据的字节4至字节7处,分别写入指示系统时间的5ch、bdh、85h和e5h。
图10示出了图3所示的KCS处理单元50的操作的示例。首先,在操作OP10处,KCS处理单元50等待来自节点10的命令并且当从节点10接收到命令时转至操作OP20。在操作OP20处,KCS数据处理电路54通过使用比较器541来确定该命令是否为中止命令。
当命令是中止命令时,操作转至操作OP40并且如下面所描述的执行中止处理。在中止处理完成之后,操作返回至操作OP10处等待命令。
在操作OP40处,上升检测器543将KCS支持状态寄存器56的中止标志置位。接下来,在操作OP41处,中断发出控制器592响应于中止标志的置位而在中断寄存器60中设置中断请求,从而向BMC 40发出中断。操作转至操作OP42。
在操作OP42处,例如,中断发出控制器592基于向中断寄存器60发出中断来复位中止标志。接下来,在操作OP43处,KCS数据处理电路54等待由BMC 40进行的中止处理完成。当中止处理完成时,操作返回至操作OP10。
另一方面,当在操作OP20处命令不是中止命令时,操作转至操作OP30,在操作OP30中,KCS数据处理电路54确定是否发生了其他故障。当发生了其他故障时,在操作OP31处,其他故障检测器546将KCS支持状态寄存器56中的其他故障标志置位。接下来,在操作OP32处,中断发出控制器592响应于其他故障标志的置位而在中断寄存器60中设置中断请求,从而向BMC 40发出中断。接下来,在操作OP33处,例如,中断发出控制器592基于向中断寄存器60发出中断来复位其他故障标志。然后,操作转至操作OP70。
同时,当中止或其他故障均未发生时,在操作OP50处,KCS数据处理电路54对来自节点10的数据串执行接收处理。在对数据串的接收处理完成之后,操作转至操作OP70。在图11中示出了在操作OP50处的操作的示例。
在操作OP70处,KCS数据处理电路54基于中断处理的完成来执行向节点10发送响应数据的发送确认处理,并且然后返回至操作OP10处等待命令。在图12中示出了操作OP70处的操作的示例。
图11示出了图10中的操作OP50的示例。首先,在操作OP51处,KCS处理单元50在接收大小寄存器594中设置接收数据大小。接下来,在操作OP52处,KCS处理单元50等待来自节点10的数据片段被存储在接收数据寄存器526中。当数据片段被存储在接收数据寄存器526中时,在操作OP53处,KCS处理单元50将保存在接收数据寄存器526中的数据片段存储到接收数据缓冲器582中。接下来,在操作OP54处,KCS数据处理电路54更新接收数据写入计数器547的计数器值。
接下来,在操作OP55处,KCS数据处理电路54基于接收数据写入计数器547的计数器值来确定是否已经从节点10接收到接收数据大小的数据串。当未从节点10接收到接收数据大小的字符串时,在操作OP52处,KCS处理单元50等待要接收的下一数据片段。当已经从节点10接收到接收数据大小的数据串时,在操作OP56处,接收完成检测器544将KCS支持状态寄存器56中的接收完成标志置位。
接下来,在操作OP57处,中断发出控制器592响应于接收完成标志的置位而在中断寄存器60中设置中断请求,从而向BMC 40发出中断。接下来,在操作OP58处,例如,中断发出控制器592基于向中断寄存器60发出中断来复位接收完成标志,并将操作转至图10所示的操作OP70。
图12示出了图10中的操作OP70的示例。首先,在操作OP71处,KCS处理单元50在发送大小寄存器596中设置发送数据大小。接下来,在操作OP72处,KCS数据处理电路54将保存在发送数据缓冲器584中的数据串中的1字节的数据片段设置到发送数据寄存器528中。接下来,KCS数据处理电路54更新发送数据写入计数器548的计数器值。
接下来,在操作OP73处,KCS数据处理电路54等待节点10将保存在发送数据寄存器528中的数据片段读出。当节点10将数据片段读出时,在操作OP75处,KCS数据处理电路54更新发送数据读取计数器549的计数器值。
接下来,在操作OP76处,KCS数据处理电路54基于发送数据写入计数器548的计数器值和发送数据读取计数器549的计数器值来确定是否已经将发送数据大小的数据串发送至节点10。当发送数据大小的数据串未被发送至节点10时,操作返回至操作OP74。当发送数据大小的数据串已经被发送至节点10时,在操作OP77处,KCS数据处理电路54将KCS支持状态寄存器56中的发送完成标志置位。
接下来,在操作OP78处,中断发出控制器592响应于发送完成标志的置位而在中断寄存器60中设置中断请求,从而向BMC 40发送中断。接下来,在操作OP79处,例如,中断发出控制器592基于向BMC 40发出中断来复位发送完成标志,并且操作返回至图10所示的操作OP10。
图13示出了由图2中的BMC 40执行的KCS中断处理的示例。例如,通过由BMC 40执行的固件执行图13所示的处理。
首先,在步骤S11处,BMC 40等待来自控制装置20等的中断。当接收到中断时,在步骤S12处,BMC 40确定该中断是否为KCS中断,并且在该中断是KCS中断时将处理转至步骤S13,或者在该中断不是KCS中断时将处理转至步骤S20。
在步骤S13处,BMC 40确定KCS中断是否是由于中止而引起的中断,并且当KCS中断是由于中止而引起的中断时将处理转至步骤S14,或者当KCS中断不是由于中止而引起的中断时将处理转至步骤S15。在步骤S14处,BMC 40执行作为针对由于中止而引起的中断的处理的中止处理并且将处理返回至步骤S11。
在步骤S15处,BMC 40从接收大小寄存器594获取接收数据大小。接下来,在步骤S16处,BMC 40从接收数据缓冲器582中读出接收数据大小的数据串。接下来,在步骤S17处,BMC 40执行针对中断的响应处理。例如,在响应处理中,BMC 40将要返回至节点10的发送数据串存储在发送数据缓冲器584中。
接下来,在步骤S18处,BMC 40等待要基于向节点10发送被存储在发送数据缓冲器584中的数据串而发出的KCS中断,并且当接收到KCS中断时将处理转移至步骤S19。在步骤S19处,BMC 40基于KCS中断的接收来对节点10的响应的完成进行检测,并将处理返回至步骤S11。另一方面,在步骤S20处,BMC 40执行针对除了KCS中断以外的中断的中断处理,并将处理返回至步骤S11。
因此,根据图2至13图所示的实施方式也可以获得与图1所示的实施方式的效果相同的效果。例如,除非接收到中止命令,否则KCS处理单元50基于命令之后的数据串到接收数据缓冲器582的传送来发出KCS中断。因此,与每当接收数据寄存器526接收到数据串中的数据片段时就发出KCS中断的情况相比,可以减少向BMC 40发出的中断的数目。这使得可以减少基于中断的中断处理执行的次数,从而减少施加于BMC 40的负荷。作为结果,控制装置20能够控制更多数目的节点1。
此外,在图2至图13所示的实施方式中,可以在接收数据串到接收数据缓冲器582的传送完成的同时发出中断。这还使得可以在接收数据串到接收数据缓冲器582的传送完成之前停止发出中断,并且使得可以在从接收数据串到接收数据缓冲器582的传送完成起不花费时间的情况下来发出中断。因此,当基于接收数据串的传送的完成来发出中断时,可以抑制中断处理的效率的降低。
发送数据写入计数器548和发送数据读取计数器549各自对包括在发送数据串中的每个数据片段逐一计数,这使得可以响应于发送数据串到节点10的传送的完成来发出中断。这还使得可以在发送数据串到节点10的发送期间停止发出中断,并且使得可以在从发送数据串到节点10的发送完成起不花费时间的情况下来发出中断。因此,当基于发送数据串的发送的完成来发出中断时,可以抑制中断处理的效率的降低。
当接收到中止命令时,停止响应于接收数据串的接收的完成来发出中断,从而避免BMC 40执行不必要的中断处理。当接收到中止命令时,停止响应于发送数据串的发送的完成来发出中断,从而避免BMC 40执行不必要的中断处理。
根据前面的详细描述阐明了实施方式的特征和优点。权利要求书旨在覆盖不脱离权利要求书的精神和范围的范围内的前述实施方式的特征和优点。本领域普通技术人员可以容易地找到任何改进和改变。因此,不旨在将本发明的实施方式的范围限于上述内容,并且可以依赖于在实施方式所公开的范围内包括的适当修改和等同物。

Claims (5)

1.一种并行处理设备,包括:
多个节点,其执行信息处理;以及
控制装置,其对所述多个节点进行控制,其中,
所述控制装置包括:
多个处理单元,其分别对应于所述多个节点而设置并且每个处理单元对从对应节点接收的命令以及所述命令之后的数据串进行处理,
所述多个处理单元中的每个处理单元包括:
接收数据寄存器,其中逐片段地顺序存储有从对应节点接收的命令之后的接收数据串中的数据片段,
接收数据缓冲器,每当数据片段被存储到所述接收数据寄存器中时,所述数据片段就被从所述接收数据寄存器传送至所述接收数据缓冲器,
接收完成检测器,其检测所述接收数据串到所述接收数据缓冲器的传送的完成,
故障检测器,其检测所接收的命令是否为指示对应节点的故障状态的故障命令,以及
中断发出器,其基于所述故障检测器对所述故障命令的检测来发出中断,并且在所述故障检测器未检测到所述故障命令时基于所述接收完成检测器对所述接收数据串的传送的完成的检测来发出中断,以及
所述控制装置还包括:
中断处理单元,其分别对应于所述多个节点而设置,并且每个中断处理单元基于由对应中断发出器发出的中断来执行中断处理。
2.根据权利要求1所述的并行处理设备,其中,
所述多个处理单元中的每个处理单元包括:
接收数据计数器,其每当数据片段被从所述接收数据寄存器传送至所述接收数据缓冲器时就对计数器值进行更新,并且在所述计数器值被更新等于所述接收数据串中的数据片段的数目的次数时输出接收完成信号,并且
所述接收完成检测器基于对所述接收完成信号的接收来对所述接收数据串到所述接收数据缓冲器的传送的完成进行检测。
3.根据权利要求2所述的并行处理设备,其中,
当所述故障检测器检测到所述故障命令时,所述接收完成检测器使所述中断发出器停止基于对所述接收完成信号的接收来发出中断。
4.根据权利要求1至3中任一项所述的并行处理设备,其中,
所述多个处理单元中的每个处理单元包括:
发送数据寄存器,其中逐片段地顺序存储有包括在响应数据串中的数据片段,所述响应数据串是通过对传送至所述接收数据缓冲器的所述接收数据串进行处理的中断处理生成并且要被返回至对应节点的数据串,
第一发送数据计数器,其每当数据片段被存储在所述发送数据寄存器中时就对计数器值进行更新,并且在所述计数器值被更新等于所述响应数据串中的数据片段的数目的次数时输出第一发送完成信号,
第二发送数据计数器,其每当存储在所述发送数据寄存器中的数据片段被发送至所述节点时就对计数器值进行更新,并且在所述计数器值被更新等于所述响应数据串中的数据片段的数目的次数时输出第二发送完成信号,以及
发送完成检测器,其在接收到所述第一发送完成信号和所述第二发送完成信号两者时,对所述响应数据串到所述节点的发送的完成进行检测,并且
除非所述故障检测器检测到所述故障命令,否则所述中断发出器基于所述接收完成检测器对所述接收数据串的传送的完成的检测或所述发送完成检测器对所述响应数据串的传送的完成的检测来发出中断。
5.根据权利要求4所述的并行处理设备,其中,
当所述故障检测器检测到所述故障命令时,所述发送完成检测器使所述中断发出器停止基于对所述第一发送完成信号和所述第二发送完成信号中的任何一个的接收来发出中断。
CN202010483979.8A 2019-06-05 2020-06-01 并行处理设备 Pending CN112052108A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019105442A JP2020198044A (ja) 2019-06-05 2019-06-05 並列処理装置
JP2019-105442 2019-06-05

Publications (1)

Publication Number Publication Date
CN112052108A true CN112052108A (zh) 2020-12-08

Family

ID=70775259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010483979.8A Pending CN112052108A (zh) 2019-06-05 2020-06-01 并行处理设备

Country Status (4)

Country Link
US (1) US11074102B2 (zh)
EP (1) EP3748496A1 (zh)
JP (1) JP2020198044A (zh)
CN (1) CN112052108A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11709664B2 (en) * 2020-06-02 2023-07-25 SambaNova Systems, Inc. Anti-congestion flow control for reconfigurable processors
US11442696B1 (en) 2021-03-23 2022-09-13 SambaNova Systems, Inc. Floating point multiply-add, accumulate unit with exception processing

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4225959A (en) * 1978-08-04 1980-09-30 Honeywell Information Systems Inc. Tri-state bussing system
US4791641A (en) * 1986-09-15 1988-12-13 Thinking Machines Corporation Parallel processor error checking
EP0404560A2 (en) * 1989-06-22 1990-12-27 Kendall Square Research Corporation Improved multiprocessor system
US5848435A (en) * 1990-10-19 1998-12-08 Emc Corporation Address protection circuit and method for preventing access to unauthorized address rangers
CN1206147A (zh) * 1989-05-17 1999-01-27 国际商业机器公司 在数据处理系统提供容错环境和体系结构的装置
CN107533458A (zh) * 2016-02-04 2018-01-02 慧与发展有限责任合伙企业 基于存储器寄存器中断的信令和消息传递

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2932359B2 (ja) * 1996-03-28 1999-08-09 日本電気エンジニアリング株式会社 障害通知回路
JP3789011B2 (ja) * 1996-09-18 2006-06-21 株式会社日立製作所 並列計算機
JP2002044183A (ja) * 2000-07-21 2002-02-08 Sony Corp 通信制御装置及び通信制御方法
JP2002259130A (ja) 2001-03-02 2002-09-13 Toshiba Corp 情報処理システムおよびその起動制御方法
US7694298B2 (en) 2004-12-10 2010-04-06 Intel Corporation Method and apparatus for providing virtual server blades
JP2006178557A (ja) 2004-12-21 2006-07-06 Nec Corp コンピュータシステム及びエラー処理方法
JP4734917B2 (ja) * 2004-12-24 2011-07-27 富士電機リテイルシステムズ株式会社 自動販売機
US20070005828A1 (en) * 2005-06-30 2007-01-04 Nimrod Diamant Interrupts support for the KCS manageability interface
JP2011065537A (ja) * 2009-09-18 2011-03-31 Toppan Printing Co Ltd データ受信システムおよび割り込み実行方法
JP5862047B2 (ja) * 2011-04-28 2016-02-16 日本電気株式会社 遠隔操作システム、データ処理方法およびプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4225959A (en) * 1978-08-04 1980-09-30 Honeywell Information Systems Inc. Tri-state bussing system
US4791641A (en) * 1986-09-15 1988-12-13 Thinking Machines Corporation Parallel processor error checking
CN1206147A (zh) * 1989-05-17 1999-01-27 国际商业机器公司 在数据处理系统提供容错环境和体系结构的装置
EP0404560A2 (en) * 1989-06-22 1990-12-27 Kendall Square Research Corporation Improved multiprocessor system
US5848435A (en) * 1990-10-19 1998-12-08 Emc Corporation Address protection circuit and method for preventing access to unauthorized address rangers
CN107533458A (zh) * 2016-02-04 2018-01-02 慧与发展有限责任合伙企业 基于存储器寄存器中断的信令和消息传递

Also Published As

Publication number Publication date
JP2020198044A (ja) 2020-12-10
EP3748496A1 (en) 2020-12-09
US11074102B2 (en) 2021-07-27
US20200387397A1 (en) 2020-12-10

Similar Documents

Publication Publication Date Title
US7395362B2 (en) Method for a slave device to convey an interrupt and interrupt source information to a master device
CA2704136C (en) Computer command and response for determining the state of an i/o operation
US7904605B2 (en) Computer command and response for determining the state of an I/O operation
US6067628A (en) Method to monitor universal serial bus hub overcurrent
US8166206B2 (en) Cancel instruction and command for determining the state of an I/O operation
CN108121630B (zh) 电子装置、重新启动方法及记录媒介
RU2559765C2 (ru) Применение косвенных адресных слов данных расширенной схемы асинхронного перемещения данных
US8843680B2 (en) Storage system having SAS as its backend communication standard
JP2008090375A (ja) 割込み制御システム、およびこれを利用した記憶制御システム
US8898361B2 (en) Systems and methods for advanced interrupt scheduling and priority processing in a storage system environment
WO2020114431A1 (zh) 基于PCIe接口的FPGA升级方法
CN112052108A (zh) 并行处理设备
US10013367B2 (en) I/O processing system including dynamic missing interrupt and input/output detection
US5664219A (en) Method and system for controlling servicability of adapters connected by an I/O channel interface to a computer system
JP2018116648A (ja) 情報処理装置、その制御方法、及びプログラム
US9473273B2 (en) Memory system capable of increasing data transfer efficiency
US5805791A (en) Method and system for detection of and graceful recovery from a peripheral device fault
US5983359A (en) Processor fault recovering method for information processing system
EP0082722A2 (en) Computer system with auxiliary service computer
US11314582B2 (en) Systems and methods for dynamically resolving hardware failures in an information handling system
JP2002175260A (ja) 入出力制御装置
JPH0887461A (ja) データ転送制御装置
JPH06168174A (ja) 複数のホストコンピュータに接続されるファイルサブシステム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination