CN103403688A - 处理器管理方法 - Google Patents

处理器管理方法 Download PDF

Info

Publication number
CN103403688A
CN103403688A CN2011800679337A CN201180067933A CN103403688A CN 103403688 A CN103403688 A CN 103403688A CN 2011800679337 A CN2011800679337 A CN 2011800679337A CN 201180067933 A CN201180067933 A CN 201180067933A CN 103403688 A CN103403688 A CN 103403688A
Authority
CN
China
Prior art keywords
territory
machine frame
mentioned
main machine
thread
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
CN2011800679337A
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 CN103403688A publication Critical patent/CN103403688A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/0736Error 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 in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0742Error 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 in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in a mobile device, e.g. mobile phones, handheld devices
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated

Abstract

本发明涉及处理器管理方法。向用户提供低价且高性能的系统。系统(100)由具有处理器的SoC(108)和包括存储器(109)的域(107)的集合构建。此时,系统(100)对域(107#0)内的处理器设定管理域(107#0)~域(107#2)的主机构。同样,系统(100)对域(107#1)的处理器设定管理自身的局域主机构、将主上下文镜像变换为自域内的存储器(109)的虚拟主机构。域(107#0)内的处理器向域(107#0)~域(107#2)通知如存储器(109#0)~存储器(109#2)的逻辑地址连续那样的偏移值。

Description

处理器管理方法
技术领域
本发明涉及对多个处理器进行管理的处理器管理方法。
背景技术
近年来,移动电话等便携终端的用途广泛,功能也变得丰富。这样,对便携终端要求的性能要求逐渐变高。例如,作为能够提供高功能的便携终端的技术,公开了一种将便携终端如图像输入输出用单元和声音接收单元那样能够按单元分离的技术(例如参照下述专利文献1、2)。由此,用户能够在进行通话的同时,享受进行图像阅览这一高功能的服务。
另外,针对能够将各单元连接(docking)的便携终端,公开了一种能够将各单元经由总线与器件连接的技术(例如参照下述专利文献3)。另外,公开了一种具有在便携终端的各单元内对异常、故障进行诊断的自诊断电路的技术(例如参照下述专利文献4)。
专利文献1:日本特开2005-176371号公报
专利文献2:日本特开平10-228458号公报
专利文献3:日本特公平6-66057号公报
专利文献4:日本特开平3-217137号公报
然而,在上述现有技术中,由于被要求高性能而使得各单元中搭载的处理器相应成为高性能的处理器(processor),所以专利文献1~4涉及的技术存在成本增加这一问题。具体而言,能够分割成多个单元的便携终端由于在进行因分割成多个单元而涉及的备份处理、功能的镜像变换的情况下,被要求配置多个高性能处理器,所以导致成本增加。
发明内容
本发明为了消除上述现有技术的问题点而提出,其目的在于,提供一种能够向用户提供低价且高性能的系统的处理器管理方法。
为了解决上述课题、实现目的,根据本发明的一个方式,提出了一种处理器管理方法,对多个处理器中的一个处理器设定管理多个处理器的主机构,对多个处理器中的一个处理器以外的处理器分别设定管理该处理器的局域主机构和虚拟主机构,为了将由主机构管理的共享存储器作为从多个处理器连续的存储器而被访问,主机构向多个处理器通知地址的偏移值。
根据本发明的一个方式,起到能够向用户提供低价且高性能的系统这一效果。
附图说明
图1是表示本实施方式涉及的系统100的破损前和破损后的动作的说明图。
图2是表示系统100的硬件的框图。
图3是表示系统100的功能的框图。
图4是表示系统100的软件的框图。
图5A是表示从域破损时的故障域检测动作的说明图(其1)。
图5B是表示从域破损时的故障域检测动作的说明图(其2)。
图6A是表示从域破损后的复元动作的说明图(其1)。
图6B是表示从域破损后的复元动作的说明图(其2)。
图7A是表示主域破损时的动作的说明图(其1)。
图7B是表示主域破损时的动作的说明图(其2)。
图8A是表示以分离状态破损的情况下的动作的说明图(其1)。
图8B是表示以分离状态破损的情况下的动作的说明图(其2)。
图9是表示状态表303的存储内容的一个例子的说明图。
图10是表示起动处理的流程图。
图11是表示主域、从域的运用时处理的流程图(其1)。
图12是表示主域、从域的运用时处理的流程图(其2)。
图13是表示主上下文转送处理1的流程图。
图14是表示主上下文转送处理2的流程图。
图15是表示硬件检测线程(主)的处理的流程图。
图16是表示硬件检测线程(从)处理的流程图。
图17是表示故障域检测处理的流程图。
具体实施方式
以下,参照附图对所公开的处理器管理方法的实施方式详细进行说明。其中,在下述说明中,对应用了处理器管理方法的系统进行说明。
图1是表示本实施方式涉及的系统100的破损前与破损后的动作的说明图。在用附图标记101表示的说明图中,表示了具有多个处理器的系统100的破损前的状态,在用附图标记102表示的说明图中,表示了系统100的破损后的状态。
首先,对用附图标记101表示的图进行说明。系统100包括显示器单元103、和键盘单元104。显示器单元103是包括显示器105的单元。键盘单元104是包括键盘106的单元。
另外,系统100以能够独立作为一个计算机系统来动作的域单位被分割。具体而言,显示器单元103中包含域107#0,键盘单元104中包含域107#1、域107#2。以下,被赋予接尾符号“#0”~“#2”的硬件表示是在对应的域107内所含的硬件。同样,被赋予“#0”~“#2”的软件表示是被对应的域107内的CPU(Central Processing Unit)执行的软件。
域107中含有SoC(System-on-a-Chip)108、存储器109。具体而言,域107#0中含有SoC108#0和存储器109#0,域107#1中含有SoC108#1和存储器109#1,域107#2中含有SoC108#2和存储器109#2。其中,关于域107、SoC108、存储器109的详细内容将通过图2后述。此外,设SoC108为仅实现移动电话功能的简易的SoC。由于是简易的SoC,所以可将SoC108的成本抑制得低。
另外,域107#0~域107#2通过总线110连接。总线110例如可采用可挠性线缆等。或者,域107#0~域107#2的连接方法也可以不是有线方式而是无线方式。例如,域107#0~域107#2可以包含以IEEE802.15.1标准为代表的接近无线通信部,通过接近无线通信部来进行域间通信。
另外,域107#0~域107#2虚拟执行将一个计算机系统向用户提供的OS。由此,系统100成为含有3个域的系统。例如,当在SoC108#0~SoC108#2内分别存在一个CPU时,系统100成为具有3个CPU的系统100。
此外,在图1中,假设对域107#0内的CPU设定了管理系统100的主机构,对域107#1、域107#2的CPU设定了管理自身的局域主机构。
另外,存储器109#0~存储器109#2按照成为连续的共享存储空间的方式被设定了从物理地址起的偏移值。关于具体的偏移值,将利用图4后述。基于偏移值,存储器109#0的逻辑地址为0x000~0x0ff,存储器109#1的逻辑地址为0x100~0x1ff,存储器109#2的逻辑地址为0x200~0x2ff。最终,存储器109#0~存储器109#2能够将逻辑地址0x000~0x2ff向各域提供。
这样,即使各域的存储器尺寸小,通过连接多个域,系统100也能够向各域提供较宽的地址。变为能够利用宽地址的系统100可同时起动大量应用程序软件(以下称为“应用程序”),能够向用户提供高性能的服务。
另外,域107#0~域107#2相互诊断其他的域。具体而言,域107#0诊断域107#1和域107#2,域107#1诊断域107#0和域107#2,域107#2诊断域107#0和域107#1。由此,在域107#0~域107#2中任意一个域发生了故障的情况下,其他域能够检测故障的发生。其中,作为具体的诊断方法,将利用图9后述。此外,在以附图标记101所示的图中,由于域107#0~域107#2正常动作,所以诊断为OK。
接着,对用附图标记102表示的图进行说明。附图标记102所示的系统100是显示器单元103与键盘单元104的结合部分因对系统100施加的撞击等而破损的状态。并且,系统100是SoC108#1因撞击而破损的状态。SoC108#1破损的结果是域107#1处于不能作为计算机系统动作的状态。其中,总线110没有发生断线,处于能够进行域107#0与域107#2间的通信的状态。
域107#1的诊断结果为NG,发生故障这一信息可通过由域107#0进行的诊断、和由域107#2进行的诊断来检测。接受了检测的系统100从3个域切换为2个域的动作。由此,系统100能够在发生故障时使功能、性能的限制为最小限度,同时继续加以利用。
(系统100的硬件)
图2是表示系统100的硬件的框图。在图2中,系统100包括显示器105、键盘106、域107#0~域107#2、闪存ROM(Read Only Memory)201、闪存ROM控制器202、闪存ROM203。另外,域107#0中包括CPU204#0、外围设备205#0、电力控制电路206#0、DBB(Digital Base Band)207#0、自诊断电路208#0、存储器109#0。其中,图2中所示的系统100包含3个域,但也可以包含2以上的域。
另外,存储器109#0、CPU204#0~自诊断电路208#0通过SoC内部总线209#0连接。同样,域107#1中包含存储器109#1、CPU204#1~自诊断电路208#1,并通过SoC内部总线209#1连接。另外,域107#2中包含存储器109#2、CPU204#2~自诊断电路208#2,并通过SoC内部总线209#2连接。
另外,关于域107#0,SoC108#0包含CPU204#0~DBB207#0,自诊断电路208#0与存储器109#0存在于SoC108#0的外部。关于域107#1、域107#2也是相同的。以下,对域107#0所含的硬件进行说明,域107#1、域107#2所含的硬件也具有同样的功能。
CPU204#0掌控系统100整体的控制。外围设备205#0表示CPU204#0以外的周边设备。例如,外围设备205#0是GPU(GraphicsProcessing Unit),或还可以是DMAC(Direct Memory AccessController)。或者,外围设备205#0也可以是控制显示器105等的控制器。
电力控制电路206#0是对CPU204#0、外围设备205#0、DBB207#0的电力进行控制的电路。并且,电力控制电路206#0也可以对位于SoC108#0的外部的自诊断电路208#0、存储器109#0的电力进行控制。例如,电力控制电路206#0可以在未使用外围设备205#0的情况下将向外围设备205#0提供的电力停止。
DBB207#0是执行通信、通话功能的通话装置。具体而言,DBB207#0具有确定通信对象的功能、对数据赋予错误控制码等功能。另外,DBB207#0通过通信线路与LAN(Local Area Network)、WAN(Wide AreaNetwork)、因特网等网络连接,经由网络与其他装置连接。此外,DBB207#0还能与DBB207#1、DBB207#2通信。
自诊断电路208#0是具有对域107#0内的各装置是否正常动作进行诊断的功能的电路。例如,自诊断电路208#0测定SoC108#0内的电流、电压、温度,在为异常值的情况下输出为诊断NG。
其中,作为电流、电压为异常值的情况,例如在电路伴随着对域107#0的撞击,或者装置内的劣化而短路的情况下,有在域107#0流动超过设计值的电流的可能性。或者,作为温度为异常值的情况,是CPU204#0因在域107#0中执行中的软件而热逸溃的情况。自诊断电路208#0检测这样的状态,输出为诊断NG。
存储器109#0是能够存储数据的存储装置。例如,存储器109#0是ROM、RAM(Random Access Memory)等。例如,ROM存储有引导程序等程序。另外,RAM被用作CPU204#0的工作区域。其中,为了将CPU204#0与成为工作区域的存储器109#0连接来发挥CPU204#0的能力,优选SoC内部总线209#0能够进行高速转送。
显示器105以光标、图标或者工具箱为代表,显示文件、图像、功能信息等数据。显示器105例如可采用TFT(Thin Film Transistor)液晶显示器等。键盘106具有用于输入文字、数字、各种指示等的键,来进行数据的输入。另外,键盘106也可以是触摸面板式的输入板或数字键等。
闪存ROM201是读出速度高速的闪存ROM,例如是NOR型闪存。闪存ROM201存储有OS(Operating System)等系统软件、应用程序等。例如,在对OS进行更新的情况下,系统100经由DBB207接收新的OS,并将在闪存ROM201中储存的旧的OS更新为所接收的新的OS。
闪存ROM控制器202按照CPU204#0~CPU204#2的控制来控制针对闪存ROM203的数据的读/写。闪存ROM203是以数据的保存、输送为主要目的的闪存ROM,例如是NAND型闪存。另外,闪存ROM203存储通过闪存ROM控制器202的控制而写入的数据。作为数据的具体例,可存储使用系统100的用户通过DBB207而取得的图像数据、映像数据、或执行作为本实施方式的处理器管理方法的程序。闪存ROM203例如可采用存储卡、SD卡等。
(系统100的功能)
接下来,对系统100的功能进行说明。图3是表示系统100的功能的框图。系统100包括检测部311、转送部312、判断部313、设定部314、通知部315、分配部316、储存部317、设定部318、结束部319。成为该控制部的功能(检测部311~结束部319)是通过CPU204#0~CPU204#2执行在存储装置中存储的程序来实现其功能的。具体而言,存储装置例如是图1、图2所示的存储器109、闪存ROM201、闪存ROM203等。
其中,在图3中,假设CPU204#0控制系统100整体。与之相关地,在图3中假设CPU204#0~CPU204#2执行各功能部中的检测部311、分配部316。另外,假设控制系统100整体的CPU204#0执行转送部312、设定部314、通知部315。另外,假设CPU204#1、CPU204#2执行判断部313、储存部317、设定部318、结束部319。因此,例如在CPU204#1控制系统100整体的情况下,CPU204#1可以具有转送部312、设定部314、通知部315。
另外,系统100能够访问在存储器109内储存的主上下文301、镜像变换主上下文302。主上下文301储存有系统100的运用时被要求的信息组。例如,主上下文301储存有系统的起动信息、时刻信息、外围设备205的设定信息、对存储器109分配的偏移值、重要进程的上下文信息等。镜像变换主上下文302与主上下文301存储相同内容。其中,镜像变换主上下文302通过转送部312、储存部317的功能被维持成与主上下文301存储相同内容。
另外,在主上下文301、镜像变换主上下文302内储存有状态表303。状态表303储存有诊断时刻和诊断结果作为自域内的诊断信息。关于状态表303的详细情况,将利用图9后述。
检测部311具有检测他域107的故障的功能。例如,检测部311#0~检测部311#2可以要求他域107内的自诊断电路208执行诊断,并取得诊断结果来检测他域107的故障。另外,检测部311也可按规定周期向主机构的上下文数据中写入时间戳或者附随信息,基于时间戳或者附随信息来检测故障。
例如,检测部311#0~检测部311#2按每分钟向状态表303#0写入进行了自身的域的诊断结果的诊断时刻和诊断结果。在写入之后,检测部311#0~检测部311#2基于自域内的状态表303的诊断时刻和诊断结果来检测故障。其中,写入状态表303#0的内容基于转送部312、储存部317的功能而被储存到自域内的状态表303。
具体而言,当存在诊断时刻经过了规定周期以上的域时,检测部311#0~检测部311#2检测他域的故障。或者,当存在诊断结果为NG的域时,检测部311#0~检测部311#2检测他域的故障。另外,检测结果可以储存到具有检测部311的功能的CPU204的寄存器、高速缓冲存储器、存储器109等的存储区域。
转送部312具有向多个处理器中的一个处理器以外的处理器转送更新后的上下文数据的功能。例如,转送部312将主上下文301中被更新后的数据、被更新后的地址通知给CPU204#1、CPU204#2。其中,被通知的结果可以储存到CPU204#0的寄存器、高速缓冲存储器、存储器109#0等的存储区域。
判断部313具有在通过检测部311#1、检测部311#2检测故障时,判断为处于对多个处理器进行管理的状态的功能。例如,在检测出故障的情况下,当没有来自主机构的响应时,判断部313#2将执行局域主机构的CPU中任意一个CPU判断为处于对多个处理器进行管理的状态。另外,判断部313也可以对执行局域主机构的CPU赋予位次,将位次最高的CPU判断为处于对多个处理器进行管理的状态。
另外,判断部313还可以向主机构通知并判断故障是否是主机构的故障。例如,判断部313#2根据有无经由总线110而来自设定于主机构的CPU204#0的响应,来判断存在主机构发生故障的可能性的情况。
并且,判断部313可以在对主机构的通知没有响应的情况下,向主机构能够控制的通话装置发送来判断是否处于与主机构被切断的状态。具体而言,判断部313在没有经由总线110而来自CPU204#0的响应的情况下,向DBB207#0发送来判断是否处于与主机构被切断的状态。其中,判断结果可储存到具有判断部313的功能的CPU204的寄存器、高速缓冲存储器、存储器109等存储区域。
设定部314具有对多个处理器中的一个处理器设定管理多个处理器的主机构的功能。例如,设定部314对CPU204#0~CPU204#2中的域107#0的CPU204#0设定主机构。其中,被设定了主机构的CPU执行主机构线程。
另外,设定部314对多个处理器中的一个处理器以外的处理器分别设定管理自身的局域主机构和虚拟主机构。例如,设定部314对CPU204#0~CPU204#2中的CPU204#1和CPU204#2设定局域主机构与虚拟主机构。其中,被设定了局域主机构的CPU执行局域主机构。同样,被设定了虚拟主机构的CPU执行虚拟主机构线程。
另外,设定部314在通过检测部311#0检测到故障时,进行使至少一部分的处理停止的设定。具体而言,设定部314针对检测出故障的域设定分配给该域的存储器109的存储空间释放。并且,设定部314设定禁止向该域的存储器109的写入,并且设定禁止向该域的线程生成。其中,所设定的信息被存储在存储器109、闪存ROM201等存储区域。
通知部315具有为了由主机构管理的共享存储器从多个处理器作为连续的存储器被访问,而使主机构对多个处理器通知地址的偏移值的功能。例如,假设存储器109#0~存储器109#2的物理地址为0x00~0xff。此时,通知部315对CPU204#0通知偏移值0,对CPU204#1通知偏移值0x100,对CPU204#2通知偏移值0x200。其中,所通知的偏移值被储存到通知目的地CPU所管理的存储器109中。另外,也可以在作为通知源的CPU204#0的寄存器、高速缓冲存储器、存储器109#0等存储区域中储存偏移值。
分配部316具有在被通知部315通知了偏移值之后,基于偏移值向局域主机构所管理的存储区域分配共享存储器的功能。
例如,分配部316#0对存储器109#0的物理地址加上被通知的偏移值0,在0x000~0x0ff上分配存储器109#0的逻辑地址。同样,分配部316#1对存储器109#1的物理地址加上被通知的偏移值0x100,在0x100~0x1ff上分配存储器109#1的逻辑地址。另外,分配部316#2对存储器109#2的物理地址加上被通知的偏移值0x200,在0x200~0x2ff上分配存储器109#2的逻辑地址。其中,进行了分配这一信息可以储存在具有分配部316的功能的CPU204的寄存器、高速缓冲存储器、存储器109等存储区域中。
储存部317具有将从转送部312转送来的上下文数据储存到局域主机构所管理的存储区域的功能。例如,储存部317#1将被更新后的上下文数据储存到镜像变换主上下文302#1。
另外,储存部317可以在检测出对主机构设定的断点时,将主机构的上下文数据储存到局域主机构所管理的存储区域。例如,储存部317#1在检测出针对主上下文301中设定的断点的写访问时,将更新后的上下文数据储存到镜像变换主上下文302#1。
另外,储存部317也可以在执行将上下文数据储存到存储区域的第一线程之前,检测出执行对上述的上下文数据被进一步更新后的上下文数据进行储存的第二线程时,中止第一线程。
例如,假设第一线程是将对地址0x040更新后的上下文数据储存到镜像变换主上下文302#1的线程。此时,如果检测为执行将针对地址0x040进一步更新后的上下文数据储存到镜像变换主上下文302#1的第二线程,则储存部317#1中止第一线程的处理。其中,进行了储存这一结果还可以被储存在具有储存部317的功能的CPU204的寄存器、高速缓冲存储器、存储器109等存储区域。
设定部318具有在通过判断部313判断为处于管理多个处理器的状态时,对新的主机构设定局域主机构的功能。例如,在判断为CPU204#1处于管理CPU204#0~CPU204#2的状态时,设定部318#1对新的主机构设定由CPU204#1执行的局域主机构。其中,设定结果被储存到具有设定部318的功能的CPU204的寄存器、高速缓冲存储器、存储器109等存储区域。
结束部319具有在通过判断部313判断为处于与主机构被切断的状态的情况下,使对局域主机构设定的处理器的动作结束的功能。例如,在判断为总线110被切断而处于与CPU204#0被切断的状态的情况下,结束部319#2使CPU204#2停止工作(shut down)而结束动作。另外,停止工作的对象也可以是包含对局域主机构设定的处理器的域内的全部装置。结束动作这一履历还可以被储存到闪存ROM201等存储区域。
以上,系统100具备由包括处理器和存储区域的域的集合中的特定域以外的其他域来检测域的集合中的对系统100进行控制的特定域的故障的检测部311。并且,系统100包括每当控制结果被更新时,便将在特定的域内的存储区域中存储的本系统的上下文向其他域的存储区域转送的转送部312。系统100包括设定部318,该设定部318在由检测部311检测出特定域的故障的情况下,利用由转送部312向其他域的存储区域转送的上下文,来将其他域设定为控制本系统的新的特定域。
图4是表示系统100的软件的框图。系统100使用图2所示的硬件来执行图4所示的软件。CPU204#0执行内核程序(Kernel)401#0、主机构线程402#0、OS管理部403、通信协作部404、调度程序405以作为OS提供的软件。另外,CPU204#1执行内核程序401#1、虚拟主机构线程406#1、局域主机构线程407#1、OS管理部403。同样,CPU204#2执行内核程序401#2、虚拟主机构线程406#2、局域主机构线程407#2、OS管理部403。另外,OS管理部403包括进程管理部408、存储器管理部409。
另外,系统100执行进程410~进程413以作为利用OS的功能向用户提供服务的应用程序。其中,CPU204#0执行进程410,CPU204#1执行进程411、进程412,CPU204#2执行进程413。
内核程序401是控制CPU204#0~CPU204#2的程序。内核程序401是OS的核心的功能,例如管理系统100的资源,以使线程等软件能够访问硬件。
另外,内核程序401将CPU204#0~CPU204#2中的任意一个CPU设定为主CPU而使主机构线程402起动,使其他CPU起动虚拟主机构线程406、局域主机构线程407。在以下的说明中,将包含正在执行主机构线程402的CPU的域107定义为主域,将包含正在执行局域主机构线程407的CPU的域107定义为从域。
另外,内核程序401针对从域组进行排位。例如,内核程序401将域107#1设定为从域位次1,将域107#2设定为从域位次2。此外,对域107内的主域设定以及从域设定而言,域107#0~域107#2中的任意域107可成为主域。例如,主域可以由设计者在设计时刻进行设定。另外,系统100可以将主域设定为在显示器105中显示主菜单的域107。
其中,SoC内部总线209比总线110高速。这样,内核程序401将系统100作为虚拟的多核处理器系统来向用户提供。另外,通过内核程序401而成为一个虚拟的多核处理器系统的系统100处于具有CPU专用的存储器的、分散存储器型的多核处理器系统这一形态。
主机构线程402是对系统100整体的动作进行控制的程序。具体而言,主机构线程402进行外围设备205#0~外围设备205#2、显示器105、键盘106、闪存ROM控制器202等的初始化处理,或进行时刻的设定处理。另外,主机构线程402将系统100的起动信息、时刻信息、外围设备205#0~外围设备205#2等的信息、还有OS基于管理部403的执行结果记录到主上下文301。
OS管理部403为了将系统100作为1个计算机系统来提供而具有域107内局部的功能。OS管理部403为了满足上述的功能而包括进程管理部408、存储器管理部409。具体而言,CPU204#0执行进程管理部408#0和存储器管理部409#0。同样,CPU204#1执行进程管理部408#1和存储器管理部409#1,CPU204#2执行进程管理部408#2和存储器管理部409#2。
通信协作部404是主域执行的功能,具有与自域的DBB207协作来进行通信功能的功能。在图4的例子中,通信协作部404与DBB207#0协作来执行通信功能。其中,他域的DBB207由于不使用而处于不接受电源供给的状态。
调度程序(scheduler)405具有决定对系统100内的域107#0~域107#2分配的进程的功能。进程是CPU处理的程序的执行单位。具体而言,调度程序405将进程410分配给域107#0,将进程411和进程412分配给域107#1,将进程413分配给域107#2。
虚拟主机构线程406具有将主机构线程402所更新的主上下文镜像变换给自域内的存储器109的功能。作为镜像变换的形式,可采用下述2个方法。第一个处理方法是在域107间取得同步,主域将更新部分通知给从域的处理。第二个处理方法是不在域107间取得同步,主域将更新部分通知给从域后移至其他处理,从域接受通知而反映更新部分的处理。关于主上下文转送处理1、主上下文转送处理2的详细内容,将通过图13、图14后述。
局域主机构线程407是进行从域内的管理的线程。例如,局域主机构线程407#1、局域主机构线程407#2执行由主机构线程402#0通知的处理内容,并作为日志进行记录。
另外,主机构线程402与局域主机构线程407从自诊断电路208接收诊断OK的通知,将自域处于动作中的情况通知给他域的主机构线程402或者局域主机构线程407。并且,主机构线程402与局域主机构线程407判断他域是否诊断OK。
其中,具体而言,主机构线程402与局域主机构线程407使硬件检测线程起动,硬件检测线程定期使自诊断电路208执行诊断。另外,硬件检测线程将通过自诊断电路208接收到诊断OK的域设定为生存域。另外,硬件检测线程将通过自诊断电路208接收到诊断NG的域、或者即使经过规定周期也未通过自诊断电路208执行诊断的域设定为故障域。另外,关于具体的他域的诊断判断方法,将通过图9后述。
进程管理部408具有管理对域107分配的进程的功能。进程管理部408的动作模式存在主模式和从模式。以从模式动作的进程管理部408管理对自域分配的进程的生成、执行、结束。另外,以主模式动作的进程管理部408#0除了管理以从模式动作的功能之外,还管理系统100的硬件等资源。
例如,以从模式动作的进程管理部408#1将分配给域107#1的进程411和进程412按照时分方式分配给CPU204#1。另外,以主模式动作的进程管理部408#0例如将向闪存ROM控制器202的访问权赋予给进程413。
存储器管理部409具有将存储器109#0~存储器109#2作为虚拟共享存储空间414提供给进程410~进程413的功能。例如,假设存储器109#0、存储器109#1、存储器109#2的物理地址为0x00~0xff。
此时,存储器管理部409#0将存储器109#0的逻辑地址作为对存储器109#1的物理地址加上了偏移值±0的0x000~0x0ff向进程410提供。并且,存储器管理部409#0将存储器109#1的逻辑地址作为对存储器109#1的物理地址加上了偏移值+0x100的0x100~0x1ff向进程410提供。
并且,存储器管理部409#0将存储器109#2的逻辑地址作为对存储器109#1的物理地址加上了偏移值+0x200的0x200~0x2ff向进程410提供。由此,存储器管理部409#0能够向进程410提供逻辑地址成为0x000~0x2ff的虚拟共享存储空间414。
同样,存储器管理部409#1、存储器管理部409#2也将存储器109#0的逻辑地址以对物理地址加上了偏移值±0的值向进程410~进程413提供。接着,存储器管理部409#1、存储器管理部409#2将存储器109#1的逻辑地址以对物理地址加上了偏移值+0x100的值向进程410~进程413提供。最后,存储器管理部409#1、存储器管理部409#2将存储器109#2的逻辑地址以对物理地址加上了偏移值+0x200的值向进程410~进程413提供。
由此,存储器管理部409#1、存储器管理部409#2也能够向进程410~进程413提供逻辑地址成为0x00~0x2ff的虚拟共享存储空间414。
其中,作为偏移值的设定方法,例如存储器管理部409将主域的存储器109的逻辑地址设定为从0x00开始的地址。如果在主域的存储器109的物理地址以比0x00大的地址开始的情况下,存储器管理部409设定逻辑地址为0x00的偏移值。接着,存储器管理部409将从域位次1的存储器109的逻辑地址的偏移值设定为主域的存储器109的逻辑地址的结束地址。以下,存储器管理部409将从域位次n的存储器109的逻辑地址的偏移值设定为从域位次n-1的存储器109的逻辑地址的结束地址。其中,n是1以上的整数。
以下,利用图4所示的软件的功能,通过图5A~图8B对域107的任意一个破损的情况的检测动作以及复元动作进行说明。
图5A、图5B是表示从域破损时的故障域检测动作的说明图。在图5A中,表示了系统100破损的状态。表示了图5A所示的系统100在将根据进程411生成的画面显示于显示器105的过程中,作为从域的域107#1破损的状态。
此时,图5B所示的主机构线程402#0和局域主机构线程407#2检测为域107#1成为故障域。在检测后,属于从域的局域主机构线程407#2经由总线110来确认主域是否是生存域。对图5A所示的系统100而言,由于作为主域的域107#0为生存域,所以局域主机构线程407#2结束故障域检测时的处理,并继续进行通常处理。另外,属于主域的主机构线程402#0如果检测出破损的域107#1为故障域,则移至复元动作。通过后述的图6A、图6B对从域破损后的复元动作进行说明。
图6A、图6B是表示从域破损后的复元动作的说明图。图6A所示的系统100是属于主域的主机构线程402#0检测出作为从域的域107#1破损而成为故障域的状态。在检测后,主机构线程402#0将属于域107#1的存储器109#1的逻辑地址0x100~0x1ff设定为禁止写入。
通过设定为禁止写入,例如在域107#1因软件崩溃而成为故障域的情况下,系统100能够防止因崩溃中的软件引起的存储器破坏、因自动复位(reset)引起的存储器清空。其中,允许对存储器109#1的读取。由此,由于例如在生存域中正在执行的软件能够读取在域107#1中没有崩溃的软件向存储器109#1输出的数据,所以可以继续进行在生存域中执行的软件的处理。
接下来,主机构线程402#0执行对故障域的线程生成禁止处理。其中,对故障域的线程生成禁止持续到故障域被修复为止。由此,系统100能够在2个域中继续动作。例如,用户能够进行对系统100中包含破损的域的单元加以修理,同时以其余的单元继续运转系统100这一运用。在图6A的例子中,系统100结束图5A中所示的进程411,将主菜单显示于显示器105。
图7A、图7B是表示主域破损时的动作的说明图。图7A所示的系统100表示了对显示器单元103撞击等而使得作为主域的域107#0破损的状态。
此时,图7B中所示的局域主机构线程407#1与局域主机构线程407#2检测出域107#0破损、域107#0成为故障域的情况。在检测后,局域主机构线程407#1、局域主机构线程407#2分别经由总线110进行主域的生存确认。由于在图7B所示的系统100中作为主域的域107#0破损,所以经由总线110的生存确认失败。
接着,局域主机构线程407#1、局域主机构线程407#2利用DBB207来进行主域的生存确认。由此,系统100能够判断是否是由于总线110断线而无法与主域进行通信的状态。
具体的利用DBB207的生存确认是指:局域主机构线程407#1从DBB207#1对DBB207#0进行通信发送。如果针对发送有响应,则局域主机构线程407#1判断为主域生存,如果针对发送没有响应,则局域主机构线程407#1判断为主域破损。同样,局域主机构线程407#2通过从DBB207#2对DBB207#0进行通信发送,来进行主域的生存确认。
由于在图7B所示的系统100中作为主域的域107#0破损,所以DBB207#0无法对针对DBB207#1和DBB207#2的通信发送做出响应。因此,局域主机构线程407#1与局域主机构线程407#2判断为主域破损。在判断后,从域的位次最上位的域107#1作为新的主域来继续运用。
具体而言,局域主机构线程407#1结束虚拟主机构线程406#1,作为局域主机构线程407#1的输出目的地,将镜像变换主上下文302#1设定为新的主上下文。接着,局域主机构线程407#1将局域主机构线程407#1作为主机构线程402#1来执行起动处理。由此,系统100能够将原来作为从域的域107#1设定为主域,继续运用。
图8A、图8B是表示以分离状态破损的情况的动作的说明图。图8A所示的系统100表示了作为从域的域107#1和总线110破损的状态。其中,在图8A中,表示了总线110为有线且总线110被切断的状态。如果在采用了无线方式作为总线110的情况下,假设图8A所示的系统100为接近无线通信部破损而不能进行域间通信的状态。
此时,图8B所示的主机构线程402#0与局域主机构线程407#2检测域107#1的破损。在检测后,属于从域的局域主机构线程407#2经由总线110来确认主域是否生存。在图8B所示的系统100中,虽然作为主域的域107#0生存,但由于总线110被切断,所以局域主机构线程407#2无法确认域107#0的生存而判断为不生存。接着,局域主机构线程407#2利用DBB207#2来进行主域的生存确认。
由于在图8B所示的系统100中作为主域的域107#0生存,所以能够对针对DBB207#2的通信发送做出响应。因此,局域主机构线程407#2判断为主域是生存的。由此,局域主机构线程407#2判断为是由于总线110断线所以无法与主域进行通信的状态。在该状态下,由于域107#2无法接受作为主域的域107#0的指示,所以停止工作而结束动作。
此外,也会存在主域与总线110发生故障而成为分离状态的情况。例如,在图8B的状态下,假设域107#1被设定为主域,域107#0被设定为从域位次1,域107#2被设定为从域位次2的状态。此时,从域位次1的域107#0成为新的主域,再执行起动处理。在起动时,由于域107#0无法与从域位次2的域107#2通信,所以在起动处理时与系统100断开。
图9是表示状态表303的存储内容的一个例子的说明图。其中,图9中表示的状态表303表示了当前时刻为12:34:00以后的状态。状态表303包括域种类、诊断时刻、诊断结果这3个字段。在域种类字段中,作为域107的种类而储存是主域还是从域,另外如果是从域则储存从域位次。此外,域种类字段只要能够唯一确定域107即可,可以是任意的值,例如也可以是域107的ID(IDentification)。
诊断时刻字段中储存有自诊断电路208进行诊断的时刻。诊断结果字段中存储有基于自诊断电路208的诊断结果。例如,假设了系统100在作为规定周期的每一分钟通过自诊断电路208进行诊断。在该状态下,图9所示的状态表303表示了主域的自诊断电路208在12:34:00诊断主域且诊断结果为OK的情况。同样,表示了从域位次1的自诊断电路208在12:34:00诊断从域位次1且诊断结果为OK的情况。另外,表示了从域位次2的自诊断电路208在12:33:00诊断从域位次2且诊断结果为OK的情况。
另外,由于针对从域位次2没有在12:34:00进行诊断,所以主域和从域位次1检测出从域位次2成为故障域。另外,虽然图9中没有图示,但也存在自诊断电路208的诊断的结果为诊断结果NG,在诊断结果字段中记载NG的情况。这样的情况下,他域也将诊断结果字段中记载为NG的域检测为故障域。
图10是表示起动处理的流程图。系统100在若被接通电源(步骤S1001),则将主域、从域位次1~从域位次n引导启动(步骤S1002~步骤S1004)。以后,主域执行步骤S1005~步骤S1009,从域位次1执行步骤S1010~步骤S1014,从域位次n执行步骤S1015~步骤S1019。其中,由于由从域位次n进行的步骤S1015~步骤S1019的处理与步骤S1010~步骤S1014相同,所以省略说明。
主域对虚拟共享存储空间414进行初始化(步骤S1005)。在初始化后,主域通知地址的偏移值(步骤S1006)。在通知后,主域对根据存储器109的物理地址起的偏移值设定的逻辑地址分配存储器109(步骤S1007)。在分配后,主域以主模式起动进程管理部408(步骤S1008),并且,起动主机构线程402(步骤S1009),然后结束起动处理。主域在起动处理结束后移至运用时处理。
另外,从域位次1判断是否接收到偏移值的通知(步骤S1010)。在没有接收到偏移值的通知的情况下(步骤S1010:否),从域位次1再次执行步骤S1010的处理。在接收到偏移值的通知的情况下(步骤S1010:是),从域位次1对根据存储器109的物理地址起的偏移值设定的逻辑地址分配存储器109(步骤S1011)。在分配后,从域位次1以从模式起动进程管理部408(步骤S1012)。
接着,从域位次1起动虚拟主机构线程406(步骤S1013),并且,起动局域主机构线程407(步骤S1014),然后结束起动处理。从域位次1在起动处理结束后移至运用时处理。
起动处理结束了的主域、从域移至运用时处理。在图11、图12中,对主域、从域的运用时处理进行说明。主域通过主机构线程402的功能来执行运用时处理。同样,从域通过局域主机构线程407、虚拟主机构线程406的功能来执行运用时处理。
另外,步骤S1103、步骤S1104、步骤S1109、步骤S1110的处理由从域位次1~从域位次n中的任意一个从域来执行。在图11中,为了简化说明,假设为由从域位次1执行来进行说明。此外,图12所示的步骤S1201、步骤S1204、步骤S1205的处理由从域位次1~从域位次n全部的从域来执行。
图11是表示主域、从域的运用时处理的流程图(其1)。主机构线程402判断是否产生了向他域的存储器访问(步骤S1101)。在产生了向他域的存储器访问的情况下(步骤S1101:是),主机构线程402利用存储器管理部409来通知向他域的存储器109的访问请求(步骤S1102)。
在步骤S1103、步骤S1104中,假设了他域是从域位次1的情况。局域主机构线程407#1判断是否接收到向自域的存储器访问请求(步骤S1103)。在接收到存储器访问请求的情况下(步骤S1103:是),局域主机构线程407#1进行存储器访问响应(步骤S1104),将对请求源的响应的结果发送给主机构线程402。在发送了响应的结果后,或者没有接收到存储器访问请求的情况下(步骤S1103:否),局域主机构线程407#1移至步骤S1109的处理。
在针对访问的响应接收后,或者没有产生向他域的存储器访问的情况下(步骤S1101:否),主机构线程402判断是否接收到用户的操作(步骤S1105)。在接收到操作的情况下(步骤S1105:是),主机构线程402执行用户的操作受理处理(步骤S1106)。其中,具体的用户的操作受理处理例如执行通过键盘106的操作而在GUI上选择的应用程序的起动处理、或者应用程序的结束处理等。在执行了操作受理处理后,主机构线程402判断是否基于用户的操作而产生了线程生成请求(步骤S1107)。
在产生了线程生成请求的情况下(步骤S1107:是),主机构线程402利用调度程序405向任意一个从域通知线程生成请求(步骤S1108)。其中,调度程序405对域的选择方法例如可以是包括从域位次1~从域位次n内的CPU204中负载最低的CPU的域。在图11中,假定了对从域位次1通知的情况。
局域主机构线程407#1判断是否接收到向自域的线程生成请求(步骤S1109)。在接收到线程生成请求的情况下(步骤S1109:是),局域主机构线程407#1进行线程生成处理(步骤S1110)。在生成结束后,或者没有接收到线程生成请求的情况下(步骤S1109:否),局域主机构线程407#1移至图12所示的步骤S1204。
在线程生成请求通知后,或没有产生线程生成请求的情况下(步骤S1107:否),或者没有接收到操作的情况下(步骤S1105:否),主机构线程402移至步骤S1201的处理。
图12是表示主域、从域的运用时处理的流程图(其2)。主机构线程402、虚拟主机构线程406#1~虚拟主机构线程406#n执行主上下文转送处理(步骤S1201)。关于主上下文转送处理的详细情况,将通过图13、图14后述。在处理结束后,主机构线程402判断是否经过了规定周期(步骤S1202)。在经过了规定周期的情况下(步骤S1202:是),主机构线程402执行硬件检测线程处理(主)(步骤S1203)。关于硬件检测线程处理(主)的详细情况,将通过图15后述。
在处理结束后,或者没有经过规定周期的情况下(步骤S1202:否),主机构线程402移至步骤S1101的处理。虚拟主机构线程406#1~虚拟主机构线程406#n在主上下文转送处理结束后,再次执行步骤S1201的处理。
另外,局域主机构线程407#1~局域主机构线程407#n判断是否经过了规定周期(步骤S1204)。在经过了规定周期的情况下(步骤S1204:是),局域主机构线程407#1~局域主机构线程407#n执行硬件检测线程处理(从)(步骤S1205)。在处理结束后,或者没有经过规定周期的情况下(步骤S1204:否),局域主机构线程407#1~局域主机构线程407#n移至步骤S1103的处理。
在图13、图14中,对主上下文转送处理进行说明。系统100执行的主上下文转送处理应用图13所示的主上下文转送处理1或者图14所示的主上下文转送处理2中任意一方的处理。
图13是表示主上下文转送处理1的流程图。主机构线程402判断是否产生了针对主上下文301的写入事件(步骤S1301)。在产生了写入事件的情况下(步骤S1301:是),主机构线程402对虚拟主机构线程406#1~虚拟主机构线程406#n通知存储器更新请求(步骤S1302)。在通知后,主机构线程402发行屏蔽同步(barrier synchronization),进行存储器锁定(步骤S1303)。
其中,进行了屏蔽同步的主机构线程402待机至成为同一屏蔽同步组的虚拟主机构线程406#1~虚拟主机构线程406#n执行屏蔽同步为止。具体而言,主机构线程402待机至虚拟主机构线程406#1执行步骤S1305的处理并且虚拟主机构线程406#n执行步骤S1307为止。
接着,虚拟主机构线程406#1判断是否接收到存储器更新请求(步骤S1304)。在没有接收到存储器更新请求的情况下(步骤S1304:否),虚拟主机构线程406#1再次执行步骤S1304的处理。在接收到存储器更新请求的情况下(步骤S1304:是),虚拟主机构线程406#1发行屏蔽同步,进行存储器锁定(步骤S1305)。同样,虚拟主机构线程406#n也执行步骤S1306、步骤S1307。其中,由于步骤S1306、步骤S1307的处理与步骤S1304、步骤S1305的处理相同,所以省略说明。
在主机构线程402、虚拟主机构线程406#1~虚拟主机构线程406#n都发行了屏蔽同步的情况下,主机构线程402对更新后的主上下文数据进行转送(步骤S1308)。转送目的地为虚拟主机构线程406#1~虚拟主机构线程406#n。在转送后,主机构线程402进行存储器解锁,发行屏蔽同步(步骤S1309)。
接着,虚拟主机构线程406#1将接收到的主上下文数据储存到镜像变换主上下文302#1(步骤S1310),在储存后,进行存储器解锁,发行屏蔽同步(步骤S1311)。同样,虚拟主机构线程406#n将接收到的主上下文数据储存到镜像变换主上下文302#n(步骤S1312),在储存后,进行存储器解锁,发行屏蔽同步(步骤S1313)。
在主机构线程402、虚拟主机构线程406#1~#n都发行了屏蔽同步的情况下,主机构线程402、虚拟主机构线程406#1~虚拟主机构线程406#n结束主上下文转送处理1。另外,在没有产生写入事件的情况下(步骤S1301:否),主机构线程402结束主上下文转送处理1。
这样,主上下文转送处理1通过将主上下文301内的同步部分的转送区域集中于更新位置,实现了对数据转送量的抑制。其中,由于主上下文转送处理1产生存储器锁定期间,所以优选总线110的转送速度为高速。
图14是表示主上下文转送处理2的流程图。其中,在图14的说明中,由虚拟主机构线程406#1~虚拟主机构线程406#n执行的步骤S1403~步骤S1405的处理相同。因此,在图14的说明中,假设虚拟主机构线程406#1的执行例来进行说明。
主机构线程402判断是否产生了针对主上下文301的写入事件(步骤S1401)。在产生了写入事件的情况下(步骤S1401:是),主机构线程402更新主上下文301(步骤S1402)。在更新后,或者没有产生写入事件的情况下(步骤S1401:否),主机构线程402结束主上下文转送处理2。
另外,虚拟主机构线程406#1对主上下文301的存储区域设定断点(步骤S1403)。其中,优选为通过步骤S1403设定的断点是反应于写访问的断点。另外,在断点设定后,虚拟主机构线程406#1判断是否针对断点产生了写访问(步骤S1404)。
在没有产生写访问的情况下(步骤S1404:否),虚拟主机构线程406#1再次移至步骤S1404的处理。在产生了写访问的情况下(步骤S1404:是),虚拟主机构线程406#1将产生了写访问的转送区域地址和被更新后的主上下文数据作为自变量,生成上下文数据转送线程并起动(步骤S1405)。在起动后,虚拟主机构线程406#1结束主上下文转送处理2。
其中,每当步骤S1405被执行便新生成上下文数据转送线程。另外,上下文数据转送线程在各域中分别独立生成。在以下的说明中,假设虚拟主机构线程406#1是在所属的从域中起动的上下文数据转送线程来进行说明。
新起动的上下文数据转送线程将自身的线程ID、转送区域地址储存到转送区域管理表中(步骤S1406)。其中,转送区域管理表是包括线程ID字段、转送区域地址字段的表。在储存后,上下文数据转送线程判断是否存在转送区域地址一致的现有的上下文数据转送线程(步骤S1407)。
当存在现有的上下文数据转送线程时(步骤S1407:是),上下文数据转送线程发行现有的上下文数据转送线程的结束通知(步骤S1408)。作为具体的发行方法,上下文数据转送线程将转送区域管理表的线程ID作为自变量来执行使OS等提供的API组中的结束线程的API。
当不存在现有的上下文数据转送线程时(步骤S1407:否),上下文数据转送线程将接收到的主上下文数据储存到镜像变换主上下文302#1(步骤S1409)。在储存后,上下文数据转送线程从转送区域管理表中删除设定有自身的线程ID的记录(步骤S1410),然后结束线程执行。
这样,主上下文转送处理2在总线110的转送速度慢、状态表303被频繁更新的情况下也能够应对。具体而言,应用了主上下文转送处理2的系统100可以在将接收到的主上下文数据储存到镜像变换主上下文302#1之前,改写主上下文。
图15是表示硬件检测线程(主)的处理的流程图。在图15中,表示了主域中执行的硬件检测线程的处理。硬件检测线程执行故障域检测处理(步骤S1501)。关于故障域检测处理的详细情况,将通过图17后述。在处理后,硬件检测线程判断是否检测到故障域(步骤S1502)。在检测到故障域的情况下(步骤S1502:是),硬件检测线程设定对故障域的存储器109分配的虚拟存储空间释放(步骤S1503)。
接着,硬件检测线程设定向故障域的存储器109的禁止写入(步骤S1504),并且设定向故障域的线程生成禁止(步骤S1505),然后结束线程执行。其中,也存在检测出多个故障域的情况。该情况下,硬件检测线程针对检测出的全部故障域执行步骤S1503~步骤S1505的处理。另外,在没有检测出故障域的情况下(步骤S1502:否),硬件检测线程结束线程执行。
图16是表示硬件检测线程(从)处理的流程图。在图16中,表示了由从域位次1~从域位次n执行的硬件检测线程的处理。硬件检测线程执行故障域检测处理(步骤S1601)。关于故障域检测处理的详细情况,将通过图17后述。在处理后,硬件检测线程判断是否检测到故障域(步骤S1602)。
在检测到故障域的情况下(步骤S1602:是),硬件检测线程判断主域能否经由总线110进行通信(步骤S1603)。其中,作为能否通信的判断方法,硬件检测线程100可使用作为处理器间通信的IPC(InterProcessor Communication)等API来判断。
在主域不能通信的情况下(步骤S1603:否),硬件检测线程将自域的DBB207激活(步骤S1604),对主域的DBB207进行通信发送(步骤S1605)。其中,各域的DBB207分别具有固有的ID,通过使用固有的ID进行发送,能够向系统100内的其他DBB207进行发送。
在发送后,硬件检测线程判断从主域是否有响应(步骤S1606)。在从主域有响应的情况下(步骤S1606:是),硬件检测线程将自域停止工作(步骤S1607)。在步骤S1607的处理后,由于将自域停止工作,所以硬件检测线程结束线程执行。其中,步骤S1606为是的情况是在物理上与主域被切断的情形。
在从主域没有响应的情况下(步骤S1606:否),硬件检测线程判断自域是否是最高位的生存域(步骤S1608)。在自域是最高位的生存域的情况下(步骤S1608:是),硬件检测线程使虚拟主机构线程406结束(步骤S1609)。其中,步骤S1608为是的情况是主域成为故障域、自域成为主域的代替的情形。
接着,硬件检测线程对局域主机构线程407绑定镜像变换主上下文302(步骤S1610)。具体而言,硬件检测线程将局域主机构线程407访问的数据从局域主机构线程407输出的日志切换为镜像变换主上下文302。
在绑定后,硬件检测线程将局域主机构线程407作为新的主机构线程402而起动(步骤S1611)。其中,新的主机构线程402从步骤S1005的处理开始执行来作为起动处理。在起动后,硬件检测线程结束线程执行。
在自域不是最高位的生存域的情况下(步骤S1608:否),硬件检测线程结束线程执行。其中,步骤S1608为否的情况是主域成为故障域,其他的从域成为主域,自域继续作为从域动作的情形。
在主域能够通信的情况下(步骤S1603:是),硬件检测线程结束线程执行。步骤S1603为是的情况是从域的任意一个成为故障域的情形。在未检测出故障域的情况下(步骤S1602:否),硬件检测线程结束线程执行。
图17是表示故障域检测处理的流程图。故障域检测处理通过主域、从域位次1~从域位次n所执行的硬件检测线程来执行。
硬件检测线程起动自域内的自诊断电路208,使其执行诊断(步骤S1701)。接着,硬件检测线程选择状态表303#0中的域种类字段为自域的记录(步骤S1702)。在选择后,硬件检测线程将自诊断电路208的结果写入到所选择的记录的诊断结果字段(步骤S1703)。在写入后,硬件检测线程判断在自域内的状态表303的记录中是否存在诊断结果为NG的记录(步骤S1704)。当存在为NG的记录时(步骤S1704:是),硬件检测线程将与所存在的记录对应的域检测为故障域(步骤S1705)。
在检测出故障域后,或者不存在为NG的记录的情况下(步骤S1704:否),硬件检测线程判断是否存在诊断时刻字段在规定周期以上未被更新的记录(步骤S1706)。当不存在在规定周期以上未被更新的记录的情况下(步骤S1706:否),硬件检测线程结束故障域检测处理。
或者当存在在规定周期以上未被更新的记录的情况下(步骤S1706:是),硬件检测线程检测出与所存在的记录对应的域作为故障域(步骤S1707)。在输出后,硬件检测线程结束故障域检测处理。
如以上说明那样,根据处理器管理方法,以包含低价的SoC和存储器的域群构建系统,对各域的存储器设定偏移值来连结存储空间。由此,应用了处理器管理方法的系统可向用户提供各域能够利用宽广的存储空间且低价高性能的系统。通过存储空间变宽,系统容易同时执行多个应用程序。
另外,根据处理器管理方法,可将被更新后的上下文数据从主域向从域转送,储存到从域内的存储器。由此,在主域发生了故障的情况下,从域可在自身的存储器内使用上下文数据,来继续运行系统。并且,由于系统被集中到更新位置,所以可抑制转送量。
另外,根据处理器管理方法,可在检测到针对给主域内设定的断点的写访问时,将针对断点的被更新后的上下文数据储存到从域内的存储器。由此,在主域发生了故障的情况下,从域可在自身的存储器内使用上下文数据来继续运行系统。并且,在系统的方式为域间的总线慢、主上下文频繁变更的情况下也能应对。
另外,根据处理器管理方法,在将针对断点的数据储存到从域内的存储器的第一线程执行结束之前,针对同一地址检测到向存储器储存的第二线程的情况下,可使第一线程的处理中止。由此,在利用了断点的更新方法的情况下,能够不进行额外的处理的情况下解决。
另外,根据处理器管理方法,也可以检测他域的故障。由此,能够检测主域的故障,或者域间的总线发生了故障。
另外,根据处理器管理方法,可以将自域的诊断结果和诊断时刻写入到主上下文,基于转送来的自域内的被镜像变换后的主上下文内的诊断结果和诊断时刻来检测他域的故障。由此,能够将域的诊断次数抑制为最小限度,参照他域的诊断结果。
另外,根据处理器管理方法,当检测出故障时,主域可针对成为故障的域停止一部分的处理。具体而言,主域对该域的存储器设定所分配的存储空间释放。由此,系统能够防止故障域的存储器被重新使用。另外,主域设定向该域的存储器的禁止写入。由此,系统能够避免因该域内崩溃中的应用程序引起的存储器破坏,或者因自动复位引起的存储器清空。另外,主域设定禁止向该域生成线程。由此,系统能够避开无法正常执行应用程序的域来分配应用程序。
另外,根据处理器管理方法,在检测出故障时,局域主机构向主机构通知并判断故障是否是主机构的故障。并且,根据处理器管理方法,在是主机构的故障时,可以判断局域主机构是否处于管理多个处理器的状态。由此,应用了处理器管理方法的系统可以在主域的故障时由从域中判断接下来成为域的域。
另外,根据处理器管理方法,可在针对向主域的通知没有响应的情况下,向主域的DBB进行发送来判断是否是与主机构切断的状态,若果是切断的状态,则结束自身的域的动作。由此,在尽管主域正在动作,但因故障而成为分离状态的情况下,分离的域不继续动作,可削减不必要的消耗电力。
另外,根据处理器管理方法,可在判断为处于管理多个处理器的状态时,将从域设定为新的主域。由此,应用了处理器管理方法的系统针对故障产生时能够基于新的主域的执行而使功能、性能的限制为最小限度,并继续利用。另外,通过这些动作,对应用了处理器管理方法的系统加以使用的用户能够将包括发生了故障的域的单元委托给修理服务处等,另一方面,可通过其余的域继续利用系统。
此外,本实施方式中说明的处理器管理方法可以通过将预先准备的程序在个人计算机或工作站、移动电话等计算机中执行来实现。执行本处理器管理方法的程序被记录到硬盘、软盘、CD-ROM、MO、DVD、SD卡等计算机可读取的记录介质,通过计算机从记录介质读出来得以执行。另外,执行本处理器管理方法的程序也可以经由因特网等网络来发布。
附图标记说明
100-系统;109-存储器;110-总线;204-CPU;301-主上下文;302-镜像变换主上下文;303-状态表;311-检测部;312-转送部;313-判断部;314-设定部;315-通知部;316-分配部;317-储存部;318-设定部;319-结束部。

Claims (11)

1.一种处理器管理方法,其特征在于,
对多个处理器中的一个处理器设定管理上述多个处理器的主机构,
对上述多个处理器中的上述一个处理器以外的处理器分别设定管理该处理器的局域主机构和虚拟主机构,
为了将由上述主机构管理的共享存储器作为从上述多个处理器连续的存储器而被访问,上述主机构向上述多个处理器通知地址的偏移值。
2.根据权利要求1所述的处理器管理方法,其特征在于,
在被通知上述偏移值之后,上述局域主机构基于上述偏移值向上述局域主机构管理的存储区域分配上述共享存储器。
3.根据权利要求1或2所述的处理器管理方法,其特征在于,
上述虚拟主机构将从上述主机构转送的上下文数据储存到上述局域主机构所管理的存储区域。
4.根据权利要求1或2所述的处理器管理方法,其特征在于,
上述虚拟主机构在检测出对上述主机构设定的断点时,将上述主机构的上下文数据储存到上述局域主机构所管理的存储区域。
5.根据权利要求4所述的处理器管理方法,其特征在于,
当在第一线程中将上述上下文数据储存到上述存储区域时,在第二线程中检测到被更新的上述上下文数据时,中止上述第一线程的处理。
6.根据权利要求1至5中任意一项所述的处理器管理方法,其特征在于,
上述主机构或者上述局域主机构进行用于检测故障的处理。
7.根据权利要求6所述的处理器管理方法,其特征在于,
上述主机构或者上述局域主机构按规定周期对上述主机构的上下文数据写入时间戳或者附随信息,
基于上述时间戳或者上述附随信息来检测上述故障。
8.根据权利要求6或7所述的处理器管理方法,其特征在于,
在检测出上述故障时,上述主机构停止至少一部分的处理。
9.根据权利要求6或7所述的处理器管理方法,其特征在于,
检测出上述故障,上述局域主机构向上述主机构通知并判断上述故障是否是上述主机构的故障,
当判断为是上述主机构的故障时,判断上述局域主机构是否处于管理上述多个处理器的状态。
10.根据权利要求6所述的处理器管理方法,其特征在于,
在检测出上述故障,且针对向上述主机构的通知没有响应的情况下,上述局域主机构向上述主机构能够控制的通话装置发送来判断是否是与上述主机构被切断的状态,
在判断为是与上述主机构被切断的状态的情况下,结束对上述局域主机构设定的处理器的动作。
11.根据权利要求6至9中任意一项所述的处理器管理方法,其特征在于,
在判断为上述局域主机构处于管理上述多个处理器的状态时,将上述局域主机构设定为新的主机构。
CN2011800679337A 2011-02-21 2011-02-21 处理器管理方法 Pending CN103403688A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/053732 WO2012114443A1 (ja) 2011-02-21 2011-02-21 プロセッサ管理方法

Publications (1)

Publication Number Publication Date
CN103403688A true CN103403688A (zh) 2013-11-20

Family

ID=46720263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011800679337A Pending CN103403688A (zh) 2011-02-21 2011-02-21 处理器管理方法

Country Status (4)

Country Link
US (1) US9342451B2 (zh)
JP (1) JP5967073B2 (zh)
CN (1) CN103403688A (zh)
WO (1) WO2012114443A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113806251A (zh) * 2021-11-19 2021-12-17 沐曦集成电路(上海)有限公司 一种共享内存管理单元的系统及搭建方法、内存访问方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924607B1 (en) * 2013-10-07 2014-12-30 Nimble Storage, Inc. Methods and systems for I/O cancellation using memory swap
CN108183957B (zh) * 2017-12-29 2020-12-18 北京奇虎科技有限公司 主从同步方法及装置
CN111522703B (zh) * 2019-02-01 2023-08-11 伊姆西Ip控股有限责任公司 监控访问请求的方法、设备和计算机程序产品
FI128500B (fi) * 2019-03-11 2020-06-30 Oy Stop Noise Finland Ltd Menetelmä ja sovitin lisälaitteen liittämiseksi viestintälaitteeseen

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222375A (ja) * 1999-01-28 2000-08-11 Nec Kofu Ltd マルチプロセッサシステム
JP2001188690A (ja) * 1999-12-28 2001-07-10 Toshiba Corp コンピュータシステム及びチェックポイント情報保存方法
CN1510579A (zh) * 2002-10-04 2004-07-07 前摄存储器管理的方法和机制
US20040215640A1 (en) * 2003-08-01 2004-10-28 Oracle International Corporation Parallel recovery by non-failed nodes
CN1700136A (zh) * 2004-05-20 2005-11-23 英特尔公司 处理器扩展和软件验证
CN1963761A (zh) * 2005-11-08 2007-05-16 河南科技大学 一种基于网络的虚拟多处理器系统及处理方法
CN101542441A (zh) * 2006-11-22 2009-09-23 可递有限公司 多处理器计算系统中的存储器一致性保护
US20100125715A1 (en) * 2008-11-18 2010-05-20 Hitachi, Ltd. Storage System and Operation Method Thereof

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03217137A (ja) 1990-01-23 1991-09-24 Fujitsu Ltd 自己診断回路
JP3137197B2 (ja) * 1990-10-20 2001-02-19 富士通株式会社 マルチプロセッサシステム
US5265238A (en) 1991-01-25 1993-11-23 International Business Machines Corporation Automatic device configuration for dockable portable computers
JP3263110B2 (ja) * 1992-01-08 2002-03-04 富士通株式会社 ストアマージ制御方式
JPH06274432A (ja) * 1993-03-19 1994-09-30 Nkk Corp 分散計算機システム管理方式およびその管理方法
JPH0784921A (ja) * 1993-06-30 1995-03-31 Ricoh Co Ltd ネットワークシステム
JP3029170B2 (ja) * 1993-08-05 2000-04-04 株式会社日立製作所 データ伝送方法と装置および非同期制御システム
JP3385091B2 (ja) * 1994-05-13 2003-03-10 三菱電機株式会社 計算機間の排他制御装置
JPH08314875A (ja) * 1995-03-14 1996-11-29 Mitsubishi Electric Corp 協調分散処理方法、および分散共有メモリ監視装置、分散共有メモリネットワーク追跡装置、分散共有メモリネットワーク設定支援装置
US5931938A (en) 1996-12-12 1999-08-03 Sun Microsystems, Inc. Multiprocessor computer having configurable hardware system domains
KR100608727B1 (ko) 2003-12-09 2006-08-04 엘지전자 주식회사 화상 통화용 분리형 휴대 단말기 및 그 통신 방법
JP2007304687A (ja) 2006-05-09 2007-11-22 Hitachi Ltd クラスタ構成とその制御手段
JP2009211279A (ja) * 2008-03-03 2009-09-17 Hitachi High-Tech Control Systems Corp 操業データ管理サーバシステム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222375A (ja) * 1999-01-28 2000-08-11 Nec Kofu Ltd マルチプロセッサシステム
JP2001188690A (ja) * 1999-12-28 2001-07-10 Toshiba Corp コンピュータシステム及びチェックポイント情報保存方法
CN1510579A (zh) * 2002-10-04 2004-07-07 前摄存储器管理的方法和机制
US20040215640A1 (en) * 2003-08-01 2004-10-28 Oracle International Corporation Parallel recovery by non-failed nodes
CN1700136A (zh) * 2004-05-20 2005-11-23 英特尔公司 处理器扩展和软件验证
CN1963761A (zh) * 2005-11-08 2007-05-16 河南科技大学 一种基于网络的虚拟多处理器系统及处理方法
CN101542441A (zh) * 2006-11-22 2009-09-23 可递有限公司 多处理器计算系统中的存储器一致性保护
US20100125715A1 (en) * 2008-11-18 2010-05-20 Hitachi, Ltd. Storage System and Operation Method Thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113806251A (zh) * 2021-11-19 2021-12-17 沐曦集成电路(上海)有限公司 一种共享内存管理单元的系统及搭建方法、内存访问方法

Also Published As

Publication number Publication date
JP5967073B2 (ja) 2016-08-10
WO2012114443A1 (ja) 2012-08-30
JPWO2012114443A1 (ja) 2014-07-07
US20130339632A1 (en) 2013-12-19
US9342451B2 (en) 2016-05-17

Similar Documents

Publication Publication Date Title
CN102473102B (zh) 用于发起多环境操作系统的系统和方法
CN105164657B (zh) 程序数据至非易失性存储器的选择性备份系统及方法
JP5648544B2 (ja) スケジューリングプログラム、および情報処理装置
CN101458812B (zh) 用于检测图像信息的更新的装置和方法
CN103154893B (zh) 多核处理器系统、监视控制方法以及监视控制程序
JP5691390B2 (ja) 電源装置およびプログラム
EP0297772B1 (en) Mouse pointer with switchable emulation mode
CN102053857A (zh) 虚拟机器的管理装置及其相关切换方法
CN103403688A (zh) 处理器管理方法
CN103329094A (zh) 交叉环境重定向
US20170103006A1 (en) Systems and methods for application-consistent disaster recovery using a virtual storage controller and remote storage
CN110427284A (zh) 数据处理方法、分布式系统、计算机系统和介质
US8255649B2 (en) Remote copy control method and system in storage cluster environment
CN102968311A (zh) 机载嵌入式软件开发平台
US20190278431A1 (en) Window control for simultaneously running applications
CN103136018A (zh) 一种基本输入输出系统bios的设置方法及系统
CN103838539A (zh) 性能测量单元、包括该单元的处理器核心和处理剖析方法
CN102110023A (zh) 一种多用户操作系统并行运行的控制方法、系统及计算机
CN102063242A (zh) 显示系统及显示方法
JPH077316B2 (ja) システム再起動装置
EP2581830A1 (en) Multi-core processor system, method of power control, and power control program
CN108345496B (zh) 一种运行应用程序的方法及装置
US20200125380A1 (en) Guest operating system wake-up method, device, electronic apparatus, and readable medium
US20010027387A1 (en) Debugging supporting apparatus, debugging supporting method and recording medium readable by computer with its programs recorded thereon
CN104517067A (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131120