WO2012114463A1 - 計算機、ファームウェア実行方法 - Google Patents

計算機、ファームウェア実行方法 Download PDF

Info

Publication number
WO2012114463A1
WO2012114463A1 PCT/JP2011/053912 JP2011053912W WO2012114463A1 WO 2012114463 A1 WO2012114463 A1 WO 2012114463A1 JP 2011053912 W JP2011053912 W JP 2011053912W WO 2012114463 A1 WO2012114463 A1 WO 2012114463A1
Authority
WO
WIPO (PCT)
Prior art keywords
cpu core
firmware
execution
core
cpu
Prior art date
Application number
PCT/JP2011/053912
Other languages
English (en)
French (fr)
Inventor
浦山厚
大桃正文
藤沼真巳
橋岡大地
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2011/053912 priority Critical patent/WO2012114463A1/ja
Publication of WO2012114463A1 publication Critical patent/WO2012114463A1/ja

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
    • G06F9/4818Priority circuits therefor

Definitions

  • the present invention relates to a method of executing firmware of a computer including a multi-core processor having a plurality of CPU (Central Processing Unit) cores.
  • CPU Central Processing Unit
  • a multi-core processor is a processor having a plurality of processor cores (CPU cores) internally although it is one processor in appearance.
  • the multi-core processor can improve the performance of the entire processor chip in an environment where parallel processing is executed.
  • Multi-core processors are often used in computers used in the field of workstations and servers that require high performance. In recent years, multi-core processors are also used in general personal computers.
  • a computer equipped with a multi-core processor is equipped with an OS (Operating System) of SMP (Symmetric Multi-Processing) type and executes while switching many tasks on the OS.
  • OS Operating System
  • SMP Symmetric Multi-Processing
  • Examples of the SMP type OS include Windows (registered trademark) and Linux (registered trademark).
  • the processor core is divided into a first group and a second group, the processor core of the first group executes the OS and the first application program, and the processor of the second group A configuration is described in which the core executes the second application program without executing the OS.
  • a computer equipped with a processor adopting the Intel architecture has an operation mode called SMM (system management mode).
  • SMM provides an independent management environment that can be used only by firmware and cannot be accessed from a user program including an OS.
  • the SMM reads the operating environment dedicated to SMM in the memory space triggered by a hardware interrupt having the highest priority called SMI (system management interrupt), and includes the register state before the transition to SMM. All processor contexts are saved and executed.
  • the operating environment dedicated to SMM is stored in SMRAM (system management RAM).
  • SMRAM system management RAM
  • SMM is also used, for example, for collecting logs when a computer failure occurs.
  • the computer activates the SMI to enter the SMM state, and control is transferred from the OS to the SMI handler in the firmware.
  • the firmware collects the register states of all CPU cores, the register states of connected devices, and transfers them to the external storage device.
  • the firmware executes an RSM (Resume System Management) command and exits the SMM state.
  • the computer returns from the SMM state, and the OS operation is resumed.
  • the CPU core When executing the above log collection, the CPU core is in the SMM state while executing log collection and transfer to the external storage device, and execution of the OS is interrupted.
  • the log size increases according to the configuration scale of the computer. In a large-scale server device, log transfer may take several tens of seconds. If such long-time OS execution is interrupted, the effect on system performance cannot be ignored. The same problem occurs similarly in other computers in which OS execution is interrupted by hardware interruption.
  • Patent Document 1 describes that processing is shared between processor cores to improve performance, but that system performance is reduced by hardware interruption. There is no special consideration. In particular, when an interrupt occurs that interrupts processing by all processor cores as in SMM, even if processing is shared among the processor cores, all processor cores interrupt processing as a result. As a result, the system performance is degraded.
  • the present invention has been made to solve the above-described problems, and it is an object of the present invention to provide a computer capable of reducing the time during which OS execution is interrupted when a hardware interrupt occurs.
  • the computer divides a plurality of CPU cores into an OS execution CPU core for OS execution and a firmware dedicated CPU core dedicated to firmware execution.
  • OS execution CPU core executes a part of the interrupt process, takes over the remaining processes to the firmware dedicated CPU core, and returns to the OS execution process.
  • the OS execution is interrupted once, but the OS execution is performed by taking over a part of the interrupt process to the firmware dedicated CPU core.
  • the CPU core can return to the OS execution process at an early stage. As a result, the time during which the OS execution is interrupted by the hardware interrupt can be shortened compared to the conventional case.
  • FIG. 1 is a configuration diagram of a computer 100 according to Embodiment 1.
  • FIG. It is a processing flow figure at the time of the computer 100 performing SMI. It is a block diagram of the computer 100 which concerns on Embodiment 3.
  • FIG. 1 is a configuration diagram of a computer 100 according to Embodiment 1.
  • FIG. It is a processing flow figure at the time of the computer 100 performing SMI.
  • It is a block diagram of the computer 100 which concerns on Embodiment 3.
  • FIG. 1 is a configuration diagram of a computer 100 according to the first embodiment of the present invention.
  • the computer 100 is a computer such as a server computer or a personal computer, and includes a multi-core processor 10, a memory 20, and an external storage device 30.
  • the multi-core processor 10 includes a plurality of CPU cores 101.
  • Each CPU core 101 is divided into an OS execution CPU core group 11 and a firmware-dedicated CPU core group 12 according to definitions described in CPU core type definition data 223 described later.
  • programs such as the OS 21 and the firmware 221 may be described as operating subjects, but it is added that each CPU core 101 actually executes these programs.
  • the memory 20 includes an OS 21 and an SMRAM 22.
  • the OS 21 is an OS of the computer 100 and corresponds to a multi-core processor.
  • the SMRAM 22 stores firmware 221 and CPU core type definition data 223.
  • the OS 21 has CPU core recognition definition data 211.
  • the CPU core recognition definition data 211 is data describing a definition for distinguishing the CPU core 101 that is recognized by the OS and the CPU core 101 that is not recognized by the OS.
  • the CPU core recognition definition data 211 can be described in an arbitrary format. For example, when the configuration using the same definition data is adopted as in the ACPI (Advanced Configuration and Power Interface) standard, this is used as the CPU.
  • the core recognition definition data 211 may be used.
  • Firmware 221 is a program describing processing for controlling the hardware of computer 100.
  • the firmware 221 is generally stored in a storage device such as a ROM (Read Only Memory) that cannot be easily rewritten, but may instead be stored in a storage device such as a flash memory.
  • the firmware 221 has an SMI handler 222 as a program module for executing SMI processing.
  • the CPU core type definition data 223 includes a CPU core 101 for executing the OS (belonging to the OS execution CPU core group 11) and a CPU core 101 for executing only the firmware 221 (firmware dedicated CPU core).
  • the data describes the definition to be classified into (group 12).
  • the OS 21 When the OS 21 recognizes the CPU core 101 in accordance with the description of the CPU core recognition definition 211, the OS 21 uses the CPU core 101. For this reason, the CPU core 101 defined as being recognized by the OS in the CPU core recognition definition 211 needs to be classified into the OS execution CPU core group 11 in the CPU core type definition data 223. That is, the description of the CPU core recognition definition data 211 and the description of the CPU core type definition data 223 need to be linked.
  • the link method is not limited to this.
  • FIG. 1 illustrates the configuration in which the computer 100 adopts the ACPI standard, both the CPU core recognition definition data 211 and the CPU core type definition data 223 are provided, but only for distinguishing the CPU core 101. If these data are used, only one of them is sufficient.
  • the external storage device 30 is a storage device such as a hard disk device connected to the multi-core processor 10. When the log collection described above is performed, the acquired log is transferred to the external storage device 30.
  • FIG. 2 is a process flow diagram when the computer 100 executes the SMI.
  • the steps executed by the OS execution CPU core group 11 are referred to as steps S411 to S413, and the steps executed by the firmware dedicated CPU core group 12 are referred to as steps S421 to S423.
  • the leftmost lane in FIG. 2 shows the operating state of the OS execution CPU core group 11, and the rightmost lane in FIG. 2 shows the operating state of the firmware dedicated CPU core group 12.
  • each step of FIG. 2 will be described.
  • Step S401 The computer 100 classifies the CPU core 101 recognized by the OS 21 and the CPU core 101 not recognized by the OS 21 according to the description of the CPU core recognition definition 211, and then the CPU core 101 recognized by the OS 21, that is, the CPU belonging to the OS execution CPU core group 11. The core 101 is caused to execute the OS 21. When a failure occurs in the computer 100, the computer 100 activates SMI for all the CPU cores 101.
  • Step S401: Supplement 1 When starting up the OS, the computer 100 activates the OS execution CPU core group 11 and activates the firmware dedicated CPU core group 12 in the sleep state. Therefore, in this step, the OS execution CPU core group 11 is in an operating state, and the firmware dedicated CPU core group 12 is in a sleep state.
  • the number of CPU cores 101 belonging to each of the OS execution CPU core group 11 and the firmware dedicated CPU core group 12 may be arbitrary. However, when there are a plurality of CPU cores 101 belonging to the firmware-dedicated CPU core group 12, it is desirable that any one of the CPU cores 101 be a representative in order to simplify the processing.
  • the OS execution CPU core group 11 receives the SMI and shifts to the SMM state. As a result, the computer 100 is in a state where the OS execution is interrupted.
  • the OS execution CPU core group 11 enters the SMM state, the OS execution CPU core group 11 executes the SMI handler 222 of the firmware 221. Thereafter, the firmware 221 executes SMI processing according to the description of the SMI handler 222.
  • the firmware 221 first refers to the CPU core type definition data 223, and grasps whether the CPU core 101 executing the firmware 221 belongs to the OS execution CPU core group 11 or the firmware dedicated CPU core group 12.
  • the firmware dedicated CPU core group 12 receives the SMI and shifts to the SMM state.
  • the firmware dedicated CPU core group 11 executes the SMI handler 222 in the same manner as the OS execution CPU core group 11.
  • the firmware-dedicated CPU core group 12 executes the same processing as in step S411.
  • the firmware-dedicated CPU core group 12 instructs all the CPU cores 101 including itself to acquire the status log according to the description of the SMI handler 222.
  • the OS execution CPU core group 11 acquires its state log according to the description of the SMI handler 222. For example, a value held in a register included in each CPU core 101 is acquired as a status log. When the acquisition of the status log is completed, this is notified to the firmware dedicated CPU core group 12.
  • Step S422 The firmware dedicated CPU core group 12 acquires its own status log according to the description of the SMI handler 222.
  • the firmware dedicated CPU core group 12 stands by until the OS execution CPU core group 11 receives a notification in step S412.
  • the firmware dedicated CPU core group 12 When the firmware dedicated CPU core group 12 receives the notification, it instructs the OS execution CPU core group 11 to end SMM according to the description of the SMI handler 222.
  • Step S413 The OS execution CPU core group 11 ends the SMM according to the instruction received from the firmware dedicated CPU core group 12 in step S422. Thereafter, the OS execution CPU core group 11 returns to the state of executing the OS. On the other hand, the firmware dedicated CPU core group 12 continues the SMM.
  • the firmware dedicated CPU core group 12 transfers the status log acquired by the OS execution CPU core group 11 and the status log acquired by the firmware dedicated CPU core group 12 to the external storage device 30.
  • Step S424 When the firmware dedicated CPU core group 12 finishes transferring the status log, the firmware dedicated CPU core group 12 stops the execution of the firmware 221 and ends the SMM. Thereafter, the firmware dedicated CPU core group 12 shifts to the sleep state.
  • the computer 100 divides the plurality of CPU cores 101 into the OS execution CPU core group 11 for executing the OS and the firmware dedicated CPU core group 12 dedicated for firmware execution.
  • the firmware dedicated CPU core group 12 takes over part of the interrupt processing executed by the OS execution CPU core group 11 in the SMM, and the OS execution CPU core group 11 is released from the interrupt processing and returns to OS execution. Since the firmware dedicated CPU core group 12 is not involved in OS execution, the interrupt processing state in which OS execution is interrupted can be shortened.
  • the computer 100 interrupts the OS execution once an interrupt having a higher priority than the OS such as SMI occurs, but the OS execution CPU core group 11 is the firmware dedicated CPU core group 12.
  • the OS execution is resumed. Thereby, it is possible to reduce the time during which the OS execution is interrupted by an arbitrary interrupt having a higher priority than the OS, not just the SMI.
  • the computer 100 sets the CPU core 101 that is not recognized by the OS as the firmware dedicated CPU core group 12 according to the description of the CPU core recognition definition 211.
  • the firmware dedicated CPU core group 12 is separated from the OS execution, and after the firmware dedicated CPU core group 12 takes over the interrupt process, the OS execution CPU core group 11 can be dedicated to the OS execution.
  • the SMI is exemplified as an example of the interrupt process having a higher priority than the OS.
  • the interrupt process having a higher priority than the other OSs that is, the interrupt process in which the OS execution is interrupted.
  • an example of acquiring the status log of the CPU core 101 is taken as an example of processing executed during the interrupt processing, and firmware for some processing (processing for transferring the log to the external storage device 30)
  • firmware for some processing processing for transferring the log to the external storage device 30
  • the execution CPU core group 11 may be returned to OS execution. In particular, it is most effective to take time-consuming processing such as log transfer to the firmware dedicated CPU core group 12.
  • the role of the CPU core 101 is not fixed. Therefore, for example, when the CPU core 101 defined as the firmware-dedicated CPU core group 12 fails, there is no CPU core 101 that executes the processing after step S423. Such a situation can be avoided.
  • FIG. 3 is a configuration diagram of the computer 100 according to the third embodiment.
  • the computer 100 includes four multi-core processors 51 to 54 instead of the multi-core processor 10.
  • Each of the multi-core processors 51 to 54 has a CPU core 511, 521, 531, 541, respectively.
  • Each CPU core is divided into an OS execution CPU core group 11 and a firmware dedicated CPU core group 12 as in the first and second embodiments.
  • each multi-core processor includes a plurality of multi-core processors as shown in FIG. 3, the processing during the SMM operation in each multi-core processor is the same as in the first embodiment. However, a representative CPU core that finally collects the SMM processing performed by each multi-core processor is required.
  • the representative CPU core performs the write access to the external storage device 30 most efficiently because the log is finally transferred to the external storage device 30. It is desirable to be able to do it. Therefore, in the third embodiment, a firmware-dedicated CPU core included in the multi-core processor 51 that is electrically closest to the external storage device 30 is used as a representative CPU core.
  • the representative CPU core receives the status log collected by the firmware-dedicated CPU core of another multi-core processor and transfers it to the external storage device 30. As a result, the most time-consuming log transfer process can be efficiently performed.
  • the CPU core closest to the external storage device 30 does not necessarily have to be the representative CPU core, but an external device (for example, a communication interface or the like) that is accessed during the interrupt processing It is desirable to represent the CPU core that can access the most efficiently. As a premise above, it is necessary to represent a CPU core that is operating normally.
  • Which CPU core can access an external device most efficiently is determined in advance by the circuit configuration of the computer 100, and so on, for example, for each type of external device accessed in the course of interrupt processing. Data that defines which one will be the representative CPU core may be provided.
  • each of the above-described configurations, functions, processing units, etc. can be realized as hardware by designing all or a part thereof, for example, with an integrated circuit, or the processor executes a program for realizing each function. By doing so, it can also be realized as software.
  • Information such as programs and tables for realizing each function can be stored in a storage device such as a memory or a hard disk, or a storage medium such as an IC card or a DVD.

Abstract

 本発明は、ハードウェア割込が発生したときにOS実行が中断されている時間を短縮することのできる計算機を提供することを目的とする。 本発明に係る計算機は、複数のCPUコアを、OS実行のためのOS実行CPUコアと、ファームウェア実行専用のファームウェア専用CPUコアとに区分する。OSよりも優先度が高いハードウェア割込処理が発生すると、OS実行CPUコアは割込処理の一部を実行してファームウェア専用CPUコアに残りの処理を引き継ぎ、自身はOS実行処理に復帰する。

Description

計算機、ファームウェア実行方法
 本発明は、複数のCPU(Central Processing Unit)コアを持つマルチコアプロセッサを備えた計算機のファームウェアを実行する手法に関するものである。
 マルチコアプロセッサとは、外見的には1つのプロセッサでありながら内部的には複数のプロセッサコア(CPUコア)を持つプロセッサである。マルチコアプロセッサは、並列処理を実行する環境下において、プロセッサチップ全体としての性能を向上させることができる。高い性能が要求されるワークステーションやサーバの分野で用いられる計算機において、マルチコアプロセッサが使用される場合が多い。さらに近年では、一般のパーソナルコンピュータにおいてもマルチコアプロセッサが使用されている。
 マルチコアプロセッサを備えた計算機は、SMP(対称型マルチプロセシング)型のOS(Operating System)を搭載し、OS上で多数のタスクを切り替えながら実行する。SMP型のOSとして、例えばWindows(登録商標)やLinux(登録商標)などがある。
 下記特許文献1には、マルチコアプロセッサを備えたコンピュータにおいて、プロセッサコアを第1グループと第2グループに分け、第1グループのプロセッサコアはOSと第1アプリケーションプログラムを実行し、第2グループのプロセッサコアはOSを実行せずに第2アプリケーションプログラムを実行する構成が記載されている。
 一方、Intelアーキテクチャを採用したプロセッサを搭載した計算機には、SMM(システムマネジメントモード)と呼ばれる動作モードがある。SMMとは、ファームウェアによってのみ使用することができ、OSを含むユーザプログラムからアクセスすることができない独立した管理環境を提供するものである。
 SMMは、SMI(システムマネジメント割り込み)と呼ばれる最高の優先度を持ったハードウェア割り込みを契機として、メモリ空間上にSMM専用の動作環境を読み出し、その中にSMMへ移行する前のレジスタ状態を含む全てのプロセッサコンテキストをセーブして実行される。SMM専用の動作環境は、SMRAM(システムマネジメントRAM)内に格納されている。SMRAMはSMMを実行する時のみアクセスすることができるメモリ空間として保護されている。
 SMMは、例えば計算機に障害が発生した時のログ採取においても用いられる。計算機に障害が発生すると、計算機はSMIを起動してSMM状態になり、OSからファームウェア上のSMIハンドラに制御が移行する。ファームウェアは、全CPUコアのレジスタ状態や接続されたデバイスのレジスタ状態などを採取し、外部記憶装置へ転送する。転送が終了すると、ファームウェアはRSM(リジュームシステムマネジメント)命令を実行してSMM状態を終了する。計算機はSMM状態から復帰し、OS動作が再開される。
特開2010-182096号公報
 上述のログ採取を実行する場合、ログ採取と外部記憶装置への転送を実行している間はCPUコアがSMM状態となり、OSの実行は中断する。ログサイズは、計算機の構成規模に応じて多くなる。大規模なサーバ装置では、ログ転送に数十秒を要する場合もある。かかる長時間OS実行が中断されると、システム性能に与える影響が無視できない。同様の課題は、ハードウェア割込によってOS実行が中断するその他の計算機においても同様に発生する。
 この点、上記特許文献1に記載されている技術では、プロセッサコア間で処理を分担して性能を向上させることについては記載されているが、ハードウェア割込によってシステム性能が低下することについては格別考慮されていない。特に、SMMのように全てのプロセッサコアが処理を中断する割込が発生した場合、プロセッサコア間で処理を分担していたとしても、結果的には全てのプロセッサコアが処理を中断することになり、システム性能が低下してしまう。
 本発明は、上記のような課題を解決するためになされたものであり、ハードウェア割込が発生したときにOS実行が中断されている時間を短縮することのできる計算機を提供することを目的とする。
 本発明に係る計算機は、複数のCPUコアを、OS実行のためのOS実行CPUコアと、ファームウェア実行専用のファームウェア専用CPUコアとに区分する。OSよりも優先度が高いハードウェア割込処理が発生すると、OS実行CPUコアは割込処理の一部を実行してファームウェア専用CPUコアに残りの処理を引き継ぎ、自身はOS実行処理に復帰する。
 本発明に係る計算機によれば、優先度が高いハードウェア割込処理が発生すると、いったんはOS実行が中断されるものの、割込処理の一部をファームウェア専用CPUコアに引き継ぐことにより、OS実行CPUコアは早い段階でOS実行処理に復帰することができる。これにより、ハードウェア割込によってOS実行が中断されている時間を従来よりも短縮することができる。
実施形態1に係る計算機100の構成図である。 計算機100がSMIを実行する際の処理フロー図である。 実施形態3に係る計算機100の構成図である。
<実施の形態1>
 図1は、本発明の実施形態1に係る計算機100の構成図である。計算機100は、サーバコンピュータやパーソナルコンピュータなどのコンピュータであり、マルチコアプロセッサ10、メモリ20、外部記憶装置30を備える。
 マルチコアプロセッサ10は、複数のCPUコア101を備える。各CPUコア101は、後述するCPUコアタイプ定義データ223が記述する定義によって、OS実行CPUコア群11と、ファームウェア専用CPUコア群12とに区分されている。以下では記載の便宜上、OS21やファームウェア221などのプログラムを動作主体として説明する場合があるが、実際にこれらプログラムを実行するのは各CPUコア101であることを付言しておく。
 メモリ20は、OS21、SMRAM22を搭載している。OS21は、計算機100のOSであり、マルチコアプロセッサに対応している。SMRAM22は、ファームウェア221、CPUコアタイプ定義データ223を格納している。
 OS21は、CPUコア認識定義データ211を有する。CPUコア認識定義データ211は、OSに認識させるCPUコア101と、OSに認識させないCPUコア101とを区分する定義を記述したデータである。CPUコア認識定義データ211は、任意の形式で記述することができるが、例えばACPI(Advanced Configuration and Power Interface)規格のように同様の定義データを用いる構成を採用している場合は、これをCPUコア認識定義データ211として流用してもよい。
 ファームウェア221は、計算機100のハードウェアを制御する処理を記述したプログラムである。ファームウェア221は、一般的にはROM(Read Only Memory)などの容易に書き換えできない記憶装置内に格納されているが、これに代えてフラッシュメモリなどの記憶装置に格納してもよい。ファームウェア221は、SMI処理を実行するためのプログラムモジュールとして、SMIハンドラ222を有する。
 CPUコアタイプ定義データ223は、CPUコア101を、OSを実行するためのCPUコア101(OS実行CPUコア群11に属する)と、ファームウェア221のみを実行するためのCPUコア101(ファームウェア専用CPUコア群12に属する)とに区分する定義を記述したデータである。
 OS21は、CPUコア認識定義211の記述にしたがってCPUコア101を認識すると、そのCPUコア101を使用する。そのため、CPUコア認識定義211においてOSに認識させるものとして定義されているCPUコア101は、CPUコアタイプ定義データ223においてOS実行CPUコア群11に区分されている必要がある。すなわちCPUコア認識定義データ211の記述とCPUコアタイプ定義データ223の記述はリンクしている必要がある。ここでは、ACPI IDをキーにして両者をリンクする例を示したが、リンク手法はこれに限るものではない。
 また、図1では計算機100がACPI規格を採用している構成を例示したため、CPUコア認識定義データ211とCPUコアタイプ定義データ223を双方とも設けているが、CPUコア101を区分するためにのみこれらデータを用いるのであれば、いずれか一方のみでも足りる。
 外部記憶装置30は、マルチコアプロセッサ10に接続された、ハードディスク装置などの記憶装置である。上述のログ採取を実施する場合は、取得したログは外部記憶装置30に転送される。
 図2は、計算機100がSMIを実行する際の処理フロー図である。便宜上、OS実行CPUコア群11が実行するステップをステップS411~S413、ファームウェア専用CPUコア群12が実行するステップをステップS421~S423とする。また、図2左端のレーンはOS実行CPUコア群11の動作状態を示し、図2右端のレーンはファームウェア専用CPUコア群12の動作状態を示す。以下、図2の各ステップについて説明する。
(図2:ステップS401)
 計算機100は、CPUコア認識定義211の記述にしたがってOS21が認識するCPUコア101と認識しないCPUコア101を区分した上で、OS21が認識するCPUコア101、すなわちOS実行CPUコア群11に属するCPUコア101に、OS21を実行させる。計算機100に障害が発生すると、計算機100は全てのCPUコア101に対してSMIを起動する。
(図2:ステップS401:補足その1)
 計算機100は、OSを起動するとき、OS実行CPUコア群11を稼動状態にし、ファームウェア専用CPUコア群12をスリープ状態で起動する。したがって、本ステップにおいて、OS実行CPUコア群11は稼動状態であり、ファームウェア専用CPUコア群12はスリープ状態である。
(図2:ステップS401:補足その2)
 OS実行CPUコア群11とファームウェア専用CPUコア群12それぞれに属するCPUコア101の個数は任意でよい。ただし、ファームウェア専用CPUコア群12に属するCPUコア101が複数ある場合、処理を簡易化するため、いずれか1つのCPUコア101が代表となることが望ましい。
(図2:ステップS411)
 OS実行CPUコア群11は、SMIを受けてSMM状態に移行する。これにより、計算機100はOS実行を中断した状態となる。OS実行CPUコア群11は、SMM状態になると、ファームウェア221のSMIハンドラ222を実行する。以後ファームウェア221は、SMIハンドラ222の記述にしたがって、SMI処理を実行する。ファームウェア221は、初めにCPUコアタイプ定義データ223を参照し、当該ファームウェア221を実行しているCPUコア101がOS実行CPUコア群11とファームウェア専用CPUコア群12のいずれに属するかを把握する。
(図2:ステップS421)
 ファームウェア専用CPUコア群12は、SMIを受けてSMM状態に移行する。ファームウェア専用CPUコア群12は、SMM状態になると、OS実行CPUコア群11と同様にファームウェア221のSMIハンドラ222を実行する。ファームウェア専用CPUコア群12は、ステップS411と同様の処理を実行する。次にファームウェア専用CPUコア群12は、SMIハンドラ222の記述にしたがって、自身を含む全てのCPUコア101に対し、状態ログを取得するよう指示する。
(図2:ステップS412)
 OS実行CPUコア群11は、SMIハンドラ222の記述にしたがって、自身の状態ログを取得する。例えば、各CPUコア101が備えるレジスタが保持している値を状態ログとして取得する。状態ログを取得完了すると、その旨をファームウェア専用CPUコア群12に通知する。
(図2:ステップS422)
 ファームウェア専用CPUコア群12は、SMIハンドラ222の記述にしたがって、自身の状態ログを取得する。ファームウェア専用CPUコア群12は、OS実行CPUコア群11からステップS412の通知があるまで待機する。ファームウェア専用CPUコア群12は、同通知を受け取ると、SMIハンドラ222の記述にしたがって、OS実行CPUコア群11に対し、SMMを終了するように指示する。
(図2:ステップS413)
 OS実行CPUコア群11は、ステップS422でファームウェア専用CPUコア群12から受け取った指示にしたがって、SMMを終了する。以後OS実行CPUコア群11は、OSを実行する状態に復帰する。一方、ファームウェア専用CPUコア群12はSMMを継続している。
(図2:ステップS423)
 ファームウェア専用CPUコア群12は、OS実行CPUコア群11が取得した状態ログとファームウェア専用CPUコア群12が取得した状態ログを、外部記憶装置30に転送する。
(図2:ステップS424)
 ファームウェア専用CPUコア群12は、状態ログの転送を終了すると、ファームウェア221の実行を停止し、SMMを終了する。以後ファームウェア専用CPUコア群12は、スリープ状態に移行する。
<実施の形態1:まとめ>
 以上のように、本実施形態1に係る計算機100は、複数のCPUコア101を、OSを実行するOS実行CPUコア群11と、ファームウェア実行専用のファームウェア専用CPUコア群12とに区分する。ファームウェア専用CPUコア群12は、SMMにおいてOS実行CPUコア群11が実行する割込処理の一部を引き継ぎ、OS実行CPUコア群11は割込処理から解放されてOS実行に復帰する。ファームウェア専用CPUコア群12はOS実行に関与しないので、OS実行が中断される割込処理状態を短縮することができる。
 また、本実施形態1に係る計算機100は、SMIのようなOSよりも優先度の高い割込が発生すると、いったんOS実行を中断するが、OS実行CPUコア群11がファームウェア専用CPUコア群12に割込処理を引き継ぐとOS実行を再開する。これにより、SMIに限らずOSよりも優先度の高い任意の割込によってOS実行が中断される時間を短縮することができる。
 また、本実施形態1に係る計算機100は、CPUコア認識定義211の記述にしたがって、OSに認識させないCPUコア101をファームウェア専用CPUコア群12とする。これにより、ファームウェア専用CPUコア群12はOS実行から切り離され、ファームウェア専用CPUコア群12が割込処理を引き継いだ以降はOS実行CPUコア群11をOS実行に専念させることができる。
 また、本実施形態1において、OSより優先度の高い割込処理の例としてSMIを例示したが、その他のOSより優先度が高い割込処理、すなわちOS実行が中断される割込処理についても、本実施形態1と同様の手法を採用することにより、同様の効果を発揮することができる。
 また、本実施形態1において、割込処理中に実施する処理の例としてCPUコア101の状態ログを取得する例を取り上げ、一部の処理(外部記憶装置30にログを転送する処理)についてファームウェア専用CPUコア群12に引き継ぐことを説明したが、その他のデバイスの状態ログを取得する処理やその他種類の割込処理についても同様に、一部の処理をファームウェア専用CPUコア群12に引き継いでOS実行CPUコア群11をOS実行に復帰させるようにしてもよい。特に、ログ転送のように時間のかかる処理をファームウェア専用CPUコア群12に引き継ぐと、最も効果的である。
<実施の形態2>
 本実施形態1において、各CPUコア101をOS実行CPUコア群11とファームウェア専用CPUコア群12のいずれに区分するかは、CPUコア認識定義データ211の記述とCPUコアタイプ定義データ223の記述にしたがうこととした。これに代えて、正常動作しているCPUコア101のなかからいずれかランダムに、ファームウェア専用CPUコア群12を選択してもよい。
 これにより、CPUコア101の役割が固定されなくなるので、例えばファームウェア専用CPUコア群12として定義していたCPUコア101が故障したときに、ステップS423以降の処理を実行するCPUコア101が存在しなくなるような事態を回避することができる。
<実施の形態3>
 本発明の実施形態3では、計算機100がマルチコアプロセッサを複数備える構成例を説明する。CPUコアをOS実行CPUコア群11とファームウェア専用CPUコア群12に区分する点については実施形態1と同様である。以下では実施形態1~2との差異点を中心に説明する。
 図3は、本実施形態3に係る計算機100の構成図である。本実施形態3において、計算機100は、マルチコアプロセッサ10に代えて、4つのマルチコアプロセッサ51~54を備える。各マルチコアプロセッサ51~54は、それぞれCPUコア511、521、531、541を有する。各CPUコアは、実施形態1~2と同様に、OS実行CPUコア群11とファームウェア専用CPUコア群12に区分されている。
 図3のように複数のマルチコアプロセッサを備える計算機100において、各マルチコアプロセッサ内におけるSMM動作時の処理は、実施形態1と同様である。ただし、各マルチコアプロセッサが実施したSMM処理を最終的に取り纏める代表CPUコアが必要になる。
 実施形態1~2で説明した、デバイスの状態ログを取得する例では、最終的にログを外部記憶装置30に転送するため、代表CPUコアは外部記憶装置30に対する書き込みアクセスを最も効率的に実施できることが望ましい。そこで本実施形態3では、外部記憶装置30に電気的に最も近いマルチコアプロセッサ51が有するファームウェア専用CPUコアを、代表CPUコアとする。
 代表CPUコアは、他のマルチコアプロセッサのファームウェア専用CPUコアが収集した状態ログを受け取り、外部記憶装置30に転送する。これにより、最も時間のかかるログ転送処理を効率的に実施することができる。
 ログ取得以外の割込処理を実行する場合には、必ずしも外部記憶装置30に最も近いCPUコアを代表CPUコアとする必要はないが、割込処理の過程でアクセスする外部デバイス(例えば通信インターフェースなど)に対して最も効率的にアクセスすることができるCPUコアを代表とすることが望ましい。なお以上の前提として、正常動作しているCPUコアを代表とする必要がある。
 いずれのCPUコアが外部デバイスに対して最も効率的にアクセスすることができるかは、計算機100の回路構成などによってあらかじめ定まっているので、例えば割込処理の過程でアクセスする外部デバイスの種類毎にいずれを代表CPUコアとするかを定義するデータを設けるなどしておけばよい。
 以上、本発明者によってなされた発明を実施形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
 また、上記各構成、機能、処理部などは、それらの全部または一部を、例えば集積回路で設計することによりハードウェアとして実現することもできるし、プロセッサがそれぞれの機能を実現するプログラムを実行することによりソフトウェアとして実現することもできる。各機能を実現するプログラム、テーブルなどの情報は、メモリやハードディスクなどの記憶装置、ICカード、DVDなどの記憶媒体に格納することができる。
 100:計算機、10:マルチコアプロセッサ、11:OS実行CPUコア群、12:ファームウェア専用CPUコア群、101:CPUコア、20:メモリ、21:OS、211:CPUコア認識定義データ、22:SMRAM、221:ファームウェア、222:SMIハンドラ、223:CPUコアタイプ定義データ、30:外部記憶装置、51~54:マルチコアプロセッサ、511、521、531、541:CPUコア。

Claims (9)

  1.  複数のCPUコアを有するマルチコアプロセッサと、
     ハードウェアを制御する処理を記述したプログラムであるファームウェアと、
     を備え、
     各前記CPUコアは、
      前記ファームウェアを実行する際に、各前記CPUコアが、OSを実行するためのOS実行CPUコアと、前記ファームウェアのみを実行するためのファームウェア専用CPUコアとのいずれに該当するのかを識別し、
     前記OS実行CPUコアは、
      OSよりも優先度が高い割込処理が発生すると、OSの実行を一時的に停止して前記ファームウェアの記述にしたがって前記割込処理を一部実行した後、前記割込処理の残りを前記ファームウェア専用CPUコアに引き継いで、OSを実行する処理に復帰し、
     前記ファームウェア専用CPUコアは、
      前記割込処理を前記OS実行CPUコアから引き継いで、前記ファームウェアの記述にしたがって前記割込処理を実行する
     ことを特徴とする計算機。
  2.  前記割込処理は、
      最高優先度を有するシステムマネジメント割込処理であり、
     前記OS実行CPUコアは、
      前記システムマネジメント割込処理が発生すると、OSの実行を一時的に停止して前記システムマネジメント割込処理を開始する
     ことを特徴とする請求項1記載の計算機。
  3.  各前記CPUコアを、OSが認識するCPUコアと、OSが認識しないCPUコアとに区分する定義を記述したCPUコア認識定義データを備え、
     各前記CPUコアは、
      前記ファームウェアを実行する際に、OSが認識しないCPUコアとして前記CPUコア認識定義データが定義している前記CPUコアを、前記ファームウェア専用CPUコアとして識別する
     ことを特徴とする請求項1記載の計算機。
  4.  各前記CPUコアを、前記OS実行CPUコアと、前記ファームウェア専用CPUコアとに区分する定義を記述したCPUコアタイプ定義データを備え、
     各前記CPUコアは、
      前記ファームウェアを実行する際に、各前記CPUコアが前記OS実行CPUコアと前記ファームウェア専用CPUコアのいずれに該当するのかを、前記CPUコアタイプ定義データの記述にしたがって識別する
     ことを特徴とする請求項1記載の計算機。
  5.  各前記CPUコアは、
      前記ファームウェアを実行する際に、正常に稼動している前記CPUコアのなかから前記ファームウェア専用CPUコアをランダムに選択する
     ことを特徴とする請求項1記載の計算機。
  6.  前記マルチコアプロセッサを複数備え、
     各前記マルチコアプロセッサが有する前記ファームウェア専用CPUコアのうちいずれかが代表CPUコアとなり、他の前記マルチコアプロセッサが有する前記ファームウェア専用CPUコアと通信して、他の前記マルチコアプロセッサから前記割込処理を引き継ぐ
     ことを特徴とする請求項1記載の計算機。
  7.  各前記マルチコアプロセッサは、
      各前記マルチコアプロセッサのうち、前記割込処理を実行する過程でアクセスする外部デバイスに対して最も効率的にアクセスすることができる前記マルチコアプロセッサが有する前記ファームウェア専用CPUコアを、前記代表CPUコアとして選択する
     ことを特徴とする請求項6記載の計算機。
  8.  前記割込処理は、
      前記計算機に障害が発生した際に前記計算機が備えるデバイスの状態ログを取得して記憶装置に書き込む処理であり、
     前記OS実行CPUコアは、
      前記割込処理のうち、前記状態ログを取得するまでを実行し、前記状態ログを記憶装置に書き込む処理を前記ファームウェア専用CPUコアに引き継いでOSを実行する処理に復帰し、
     前記ファームウェア専用CPUコアは、
      前記状態ログを記憶装置に書き込む処理を前記OS実行CPUコアから引き継いで実行する
     ことを特徴とする請求項1記載の計算機。
  9.  計算機のファームウェアを実行する方法であって、
     前記計算機は、
      複数のCPUコアを有するマルチコアプロセッサと、
      ハードウェアを制御する処理を記述したプログラムであるファームウェアと、
     を備えており、
     各前記CPUコアが、
      前記ファームウェアを実行する際に、各前記CPUコアが、OSを実行するためのOS実行CPUコアと、前記ファームウェアのみを実行するためのファームウェア専用CPUコアとのいずれに該当するのかを識別するステップ、
     前記OS実行CPUコアが、
      OSよりも優先度が高い割込処理が発生すると、OSの実行を一時的に停止して前記ファームウェアの記述にしたがって前記割込処理を一部実行した後、前記割込処理の残りを前記ファームウェア専用CPUコアに引き継いで、OSを実行する処理に復帰するステップ、
     前記ファームウェア専用CPUコアが、
      前記割込処理を前記OS実行CPUコアから引き継いで、前記ファームウェアの記述にしたがって前記割込処理を実行するステップ、
     を有することを特徴とするファームウェア実行方法。
PCT/JP2011/053912 2011-02-23 2011-02-23 計算機、ファームウェア実行方法 WO2012114463A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/053912 WO2012114463A1 (ja) 2011-02-23 2011-02-23 計算機、ファームウェア実行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/053912 WO2012114463A1 (ja) 2011-02-23 2011-02-23 計算機、ファームウェア実行方法

Publications (1)

Publication Number Publication Date
WO2012114463A1 true WO2012114463A1 (ja) 2012-08-30

Family

ID=46720283

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/053912 WO2012114463A1 (ja) 2011-02-23 2011-02-23 計算機、ファームウェア実行方法

Country Status (1)

Country Link
WO (1) WO2012114463A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016151917A (ja) * 2015-02-18 2016-08-22 日本電気株式会社 情報処理装置、情報処理制御方法および情報処理装置制御プログラム
JP6123931B1 (ja) * 2016-03-15 2017-05-10 日本電気株式会社 情報処理装置、情報処理方法、およびプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0721045A (ja) * 1993-06-15 1995-01-24 Sony Corp 情報処理システム
JP2009187223A (ja) * 2008-02-05 2009-08-20 Nec Corp プロセッサ、電子機器、割込み制御方法及び割込み制御プログラム
JP2010231340A (ja) * 2009-03-26 2010-10-14 Hitachi Ltd 計算機およびその障害処理方法
JP2010250817A (ja) * 2009-04-08 2010-11-04 Intel Corp システム管理モードにおけるプロセッサ間割り込みの再方向付け
JP2010535384A (ja) * 2007-08-01 2010-11-18 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド コンピュータシステムにおいて他のプロセッサにシステム管理割り込みをブロードキャストするためのメカニズム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0721045A (ja) * 1993-06-15 1995-01-24 Sony Corp 情報処理システム
JP2010535384A (ja) * 2007-08-01 2010-11-18 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド コンピュータシステムにおいて他のプロセッサにシステム管理割り込みをブロードキャストするためのメカニズム
JP2009187223A (ja) * 2008-02-05 2009-08-20 Nec Corp プロセッサ、電子機器、割込み制御方法及び割込み制御プログラム
JP2010231340A (ja) * 2009-03-26 2010-10-14 Hitachi Ltd 計算機およびその障害処理方法
JP2010250817A (ja) * 2009-04-08 2010-11-04 Intel Corp システム管理モードにおけるプロセッサ間割り込みの再方向付け

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016151917A (ja) * 2015-02-18 2016-08-22 日本電気株式会社 情報処理装置、情報処理制御方法および情報処理装置制御プログラム
JP6123931B1 (ja) * 2016-03-15 2017-05-10 日本電気株式会社 情報処理装置、情報処理方法、およびプログラム
JP2017167689A (ja) * 2016-03-15 2017-09-21 日本電気株式会社 情報処理装置、情報処理方法、およびプログラム

Similar Documents

Publication Publication Date Title
CN101403983B (zh) 基于虚拟机的多核处理器的资源监控方法及系统
EP1899810B1 (en) System and method to optimize os context switching by instruction group trapping
US9766924B2 (en) Task processor
US9152205B2 (en) Mechanism for facilitating faster suspend/resume operations in computing systems
EP2798491B1 (en) Method and device for managing hardware errors in a multi-core environment
US20140223225A1 (en) Multi-core re-initialization failure control system
RU2437144C2 (ru) Способ устранения исключительной ситуации в одном из ядер многоядерной системы
US20140181811A1 (en) Hypervisor modification of advanced configuration and power interface (acpi) tables
US8327379B2 (en) Method for switching a selected task to be executed according with an output from task selecting circuit
WO2022037182A1 (zh) 一种计算机设备、异常处理的方法以及中断处理的方法
CN103473135B (zh) 虚拟化环境下自旋锁lhp现象的处理方法
US10802998B2 (en) Technologies for processor core soft-offlining
US9110723B2 (en) Multi-core binary translation task processing
WO2023280097A1 (zh) 一种缺页异常的处理方法及相应装置
US10073513B2 (en) Protected power management mode in a processor
US20120226849A1 (en) Virtual computer system, area management method, and program
US8291436B2 (en) Synchronization of event handlers
CN105677606B (zh) 总线设备的热插拔方法及总线装置
WO2012114463A1 (ja) 計算機、ファームウェア実行方法
US20180267829A1 (en) Method for configuring an it system, corresponding computer program and it system
US11093332B2 (en) Application checkpoint and recovery system
JP6123487B2 (ja) 制御装置、制御方法及び制御プログラム
US20160246740A1 (en) Processor system having nested vectored interrupt controller
US20180089012A1 (en) Information processing apparatus for analyzing hardware failure
US7272731B2 (en) Information handling system having reduced power consumption

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11859368

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11859368

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP