WO2019188177A1 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- WO2019188177A1 WO2019188177A1 PCT/JP2019/009629 JP2019009629W WO2019188177A1 WO 2019188177 A1 WO2019188177 A1 WO 2019188177A1 JP 2019009629 W JP2019009629 W JP 2019009629W WO 2019188177 A1 WO2019188177 A1 WO 2019188177A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information processing
- code
- processing apparatus
- unit
- diagnostic code
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0721—Error 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0796—Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1492—Generic software techniques for error detection or fault masking by run-time replication performed by the application software
- G06F11/1494—N-modular type
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/328—Computer systems status display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
Definitions
- the present disclosure relates to an information processing apparatus including a thread scheduler that assigns processing to a plurality of processing execution hardware that processes a program having a graph structure.
- Patent Document 1 As an invention for ensuring the functional safety of a processor element which is a plurality of processing execution hardware, the one described in Patent Document 1 below is disclosed.
- the safety measure is determined by determining the mismatch of the access requests issued from the plurality of processor elements.
- a bus interface unit that performs processing and performs control to start access processing that responds to the access request when they match is adopted.
- Requirement for functional safety is that processing is executed repeatedly with different hardware resources, and the result is compared to confirm the presence of hardware failure.
- Duplicate execution requires failure detection by changing execution timing and execution hardware resources.
- failure detection is performed by executing the same software on a plurality of processing execution hardware having the same configuration.
- This disclosure is intended to realize fault detection of processing execution hardware without using hardware duplication.
- the present disclosure is an information processing apparatus including a thread scheduler that assigns processing to a plurality of processing execution hardware that processes a program having a graph structure, and a code reading unit (141) that reads a diagnostic code stored in advance, An allocating unit (142) for causing a plurality of processing execution hardware to execute a diagnosis code so that diagnosis is completed within an average failure time.
- diagnosis code is executed by a plurality of processing execution hardware so that the diagnosis is completed within the average failure time, the processing execution hardware already provided for the processing without duplicating hardware for failure diagnosis Failure diagnosis using
- FIG. 1 is a diagram for explaining parallel processing which is a premise of the present embodiment.
- FIG. 2 is a diagram showing a system configuration example for executing the parallel processing shown in FIG.
- FIG. 3 is a diagram illustrating a configuration example of the DFP used in FIG.
- FIG. 4 is a diagram for explaining an aspect of executing the diagnostic code in the present embodiment.
- FIG. 5 is a diagram for explaining an aspect of executing the diagnostic code in the present embodiment.
- FIG. 6 is a diagram for explaining an aspect of executing the diagnostic code in the present embodiment.
- FIG. 7 is a diagram for describing one aspect of executing the diagnostic code in the present embodiment.
- FIG. 8 is a diagram for explaining an aspect of executing the diagnostic code in the present embodiment.
- FIG. 1A shows a program code having a graph structure
- FIG. 1B shows a thread state
- FIG. 1C shows a state of parallel processing.
- the program to be processed in this embodiment has a graph structure in which data and processing are divided. This graph structure maintains the task parallelism and graph parallelism of the program.
- Parallel execution as shown in FIG. 1C can be performed on a large number of threads shown in FIG. 1B by dynamic register placement and thread scheduling by hardware. By dynamically allocating register resources during execution, a plurality of threads can be executed in parallel for different instruction streams.
- a data processing system 2 which is a system configuration example including a DFP (Data Flow Processor) 10 as an accelerator for performing dynamic register placement and thread scheduling, will be described with reference to FIG.
- DFP Data Flow Processor
- the data processing system 2 includes a DFP 10, an event handler 20, a host CPU 21, a ROM 22, a RAM 23, an external interface 24, and a system bus 25.
- the host CPU 21 is an arithmetic unit that mainly performs data processing.
- the host CPU 21 supports the OS.
- the event handler 20 is a part that generates an interrupt process.
- ROM 22 is a read-only memory.
- the RAM 23 is a read / write memory.
- the external interface 24 is an interface for exchanging information with the outside of the data processing system 2.
- the system bus 25 is for transmitting and receiving information between the DFP 10, the host CPU 21, the ROM 22, the RAM 23, and the external interface 24.
- the DFP 10 is positioned as an individual master provided to cope with the heavy computation load of the host CPU 21.
- the DFP 10 is configured to support the interrupt generated by the event handler 20.
- the DFP 10 includes a command unit 12, a thread scheduler 14, an execution core 16, and a memory subsystem 18.
- the command unit 12 is configured to be able to communicate information with the config interface.
- the command unit 12 also functions as a command buffer.
- the thread scheduler 14 is a part that schedules processing of a large number of threads as exemplified in FIG.
- the thread scheduler 14 can perform scheduling across threads.
- the execution core 16 has four processing elements, PE # 0, PE # 1, PE # 2, and PE # 3.
- the execution core 16 has a number of pipelines that can be scheduled independently.
- the memory subsystem 18 includes an arbiter 181, an L1 cache 18a, and an L2 cache 18b.
- the memory subsystem 18 is configured to allow information communication between the system bus interface and the ROM interface.
- FIG. 4 shows an example in which a diagnostic code is embedded in advance in a graph-structured program.
- the diagnostic code is executed by providing the thread scheduler 14 with the code reading unit 141 and the assigning unit 142. Time information is output from the timer 20 to the thread scheduler 14.
- the thread scheduler 14 is configured to be able to read diagnostic codes and expected values stored in the code storage unit 18.
- the thread scheduler 14 includes a code reading unit 141 and an assigning unit 142 as functional components other than the normal thread scheduling function.
- the code reading unit 141 is a part for reading a diagnostic code stored in advance.
- the diagnostic code is stored in the code storage unit 18. Since the code storage unit 18 also stores an expected value as a result of executing the diagnostic code, the code reading unit 141 can also read the expected value.
- the allocation unit 142 is a part that causes a plurality of processing execution hardware to execute a diagnosis code so that the diagnosis is completed within an average failure time (MTTF: Mean Time To Failures).
- the assigning unit 142 assigns the execution of the diagnostic code so that the diagnosis is completed within the average failure time, using the time information output from the timer 20.
- the allocation of diagnostic codes by the allocation unit 142 may be performed in units of execution cores as shown in FIG.
- the assignment of the diagnostic code by the assigning unit 142 may be performed in units of computing units constituting the execution core.
- the execution core 16 includes a plurality of computing units. Specifically, the execution core 16 includes a thread arbiter 51, an arithmetic unit A521, an arithmetic unit A522, an arithmetic unit B523, an arithmetic unit B524, an arithmetic unit C525, an arithmetic unit C526, a result register A531, a result register A532, and a result register B533.
- the thread arbiter 51 is a part that assigns processing to the arithmetic unit A521, the arithmetic unit A522, the arithmetic unit B523, the arithmetic unit B524, the arithmetic unit C525, and the arithmetic unit C526.
- the thread arbiter 51 executes the execution of the diagnostic code to the arithmetic unit A521, the arithmetic unit A522, the arithmetic unit B523, the arithmetic unit B524, the arithmetic unit C525, and the arithmetic unit C526 according to the allocation of the diagnostic code by the allocation unit 142. assign.
- the calculator A521, the calculator A522, the calculator B523, the calculator B524, the calculator C525, and the calculator C526 are parts that execute assigned processing.
- the calculator A521 and the calculator A522 are calculators having the same configuration and function.
- the calculator B523 and the calculator B524 are calculators having the same configuration and function.
- the computing unit C525 and the computing unit C526 are computing units having the same configuration and function.
- the result register A531 is a part for storing the calculation result of the calculator A521.
- the result register A532 is a part for storing the calculation result of the calculator A522.
- the result register B533 is a part that stores the calculation result of the calculator B523.
- the result register B534 is a part that stores the calculation result of the calculator B524.
- the expected value register C535 is a part for storing the expected value output from the arithmetic unit C525.
- the arithmetic unit C525 executes the expected value process assigned by the thread arbiter 51 and stores the expected value in the expected value register C535.
- the expected value register C536 is a part that stores the expected value output from the arithmetic unit C526.
- the arithmetic unit C526 executes expected value processing assigned by the thread arbiter 51 and stores the expected value in the expected value register C536.
- the comparator 54 compares the value stored in the result register A531 with the value stored in the result register A532, and if the result is the execution result of the diagnostic code, the comparator 54 is normal. Judge that there is. For example, the comparator 54 compares the value stored in the result register A 531 with the value stored in the expected value register C 536. If the result is the execution result of the diagnostic code, the comparator 54 is normal. You may judge that.
- the diagnostic code may be executed by the same type of arithmetic unit at different timings. As shown in FIG. 8, the diagnostic code may be executed by the same type of arithmetic unit at the same timing.
- the DFP 10 of the present embodiment corresponds to the information processing apparatus of the present disclosure, and is an information processing apparatus including a thread scheduler that assigns processing to a plurality of processing execution hardware that processes a program having a graph structure.
- a code reading unit 141 that reads a stored diagnostic code, and an assigning unit 142 that causes a plurality of processing execution hardware to execute the diagnostic code so that the diagnosis is completed within the average failure time.
- the assigning unit 142 causes the plurality of processing execution hardware to execute the diagnosis code so that the diagnosis is completed within the average failure time, it is already provided for the processing without duplicating the hardware for the failure diagnosis. Failure diagnosis utilizing existing processing execution hardware becomes possible.
- the code reading unit 141 can also read an expected value as a result of executing a diagnostic code stored in advance.
- the processing execution hardware is an arithmetic unit that constitutes an execution core.
- the assigning unit 142 assigns the diagnosis code to be executed at different timings in each of a plurality of processing execution hardware.
- the assignment unit 142 when the execution result of the diagnostic code indicates a failure, the assignment unit 142 causes the diagnostic code to be re-executed with other similar processing execution hardware.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Abstract
グラフ構造のプログラムを処理する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置であって、予め格納されている診断用コードを読み込むコード読込部(141)と、平均故障時間内に診断が完了するように診断用コードを複数の処理実行ハードウェアに実行させる割当部(142)と、を備える。
Description
本出願は、2018年3月30日に出願された日本国特許出願2018-068431号に基づくものであって、その優先権の利益を主張するものであり、その特許出願の全ての内容が、参照により本明細書に組み込まれる。
本開示は、グラフ構造のプログラムを処理する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置に関する。
複数の処理実行ハードウェアであるプロセッサエレメントの機能安全を担保するための発明として、下記特許文献1に記載のものが開示されている。下記特許文献1では、複数個のプロセッサエレメントに同じデータ処理を実行させてプロセッサエレメントの機能安全を実現する場合に、複数のプロセッサエレメントから発行されたアクセス要求の不一致が確定することをもって安全対策の処理を行い、一致することをもって当該アクセス要求に応答するアクセス処理を開始する制御を行うバスインタフェースユニットを採用している。
機能安全の要件としては、処理を異なるハードウェアリソースで重複実行し、結果を比較してハードウェア故障の有無を確認するものとしている。重複実行は、実行タイミングや実行ハードウェアリソースを変えることが、故障検出の要件となっている。従来は、同じ構成を有する複数の処理実行ハードウェアに対して、同一のソフトウェアを実行して故障の検出を行っている。
しかしながら、従来の故障検出は、処理実行ハードウェアの二重化が前提であるため、処理実行ハードウェアをコンパクトに構成するのには限界があった。
本開示は、処理実行ハードウェアの故障検出をハードウェアの二重化によらずに実現することを目的とする。
本開示は、グラフ構造のプログラムを処理する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置であって、予め格納されている診断用コードを読み込むコード読込部(141)と、平均故障時間内に診断が完了するように診断用コードを複数の処理実行ハードウェアに実行させる割当部(142)と、を備える。
平均故障時間内に診断が完了するように診断用コードを複数の処理実行ハードウェアに実行させるので、故障診断用にハードウェアを二重化することなく、処理用に既に設けられている処理実行ハードウェアを活用した故障診断が可能となる。
以下、添付図面を参照しながら本実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
図1(A)は、グラフ構造のプログラムコードを示しており、図1(B)は、スレッドの状態を示しており、図1(C)は、並列処理の状況を示している。
図1(A)に示されるように、本実施形態が処理対象とするプログラムは、データと処理とが分割されているグラフ構造を有している。このグラフ構造は、プログラムのタスク並列性、グラフ並列性を保持している。
図1(A)に示されるプログラムコードに対して、コンパイラによる自動ベクトル化とグラフ構造の抽出を行うと、図1(B)に示されるような大量のスレッドを生成することができる。
図1(B)に示される多量のスレッドに対して、ハードウェアによる動的レジスタ配置とスレッド・スケジューリングにより、図1(C)に示されるような並列実行を行うことができる。実行中にレジスタ資源を動的配置することで、異なる命令ストリームに対しても複数のスレッドを並列実行することができる。
続いて図2を参照しながら、動的レジスタ配置及びスレッド・スケジューリングを行うアクセラレータとしてのDFP(Data Flow Processor)10を含むシステム構成例である、データ処理システム2を説明する。
データ処理システム2は、DFP10と、イベントハンドラ20と、ホストCPU21と、ROM22と、RAM23と、外部インターフェイス24と、システムバス25と、を備えている。ホストCPU21は、データ処理を主として行う演算装置である。ホストCPU21は、OSをサポートしている。イベントハンドラ20は、割り込み処理を生成する部分である。
ROM22は、読込専用のメモリである。RAM23は、読み書き用のメモリである。外部インターフェイス24は、データ処理システム2外と情報授受を行うためのインターフェイスである。システムバス25は、DFP10と、ホストCPU21と、ROM22と、RAM23と、外部インターフェイス24との間で情報の送受信を行うためのものである。
DFP10は、ホストCPU21の重い演算負荷に対処するために設けられている個別のマスタとして位置づけられている。DFP10は、イベントハンドラ20が生成した割り込みをサポートするように構成されている。
続いて図3を参照しながら、DFP10について説明する。図3に示されるように、DFP10は、コマンドユニット12と、スレッドスケジューラ14と、実行コア16と、メモリサブシステム18と、を備えている。
コマンドユニット12は、コンフィグ・インターフェイスとの間で情報通信可能なように構成されている。コマンドユニット12は、コマンドバッファとしても機能している。
スレッドスケジューラ14は、図1(B)に例示されるような多量のスレッドの処理をスケジューリングする部分である。スレッドスケジューラ14は、スレッドを跨いだスケジューリングを行うことが可能である。
実行コア16は、4つのプロセッシングエレメントである、PE#0と、PE#1と、PE#2と、PE#3と、を有している。実行コア16は、独立してスケジューリング可能な多数のパイプラインを有している。
メモリサブシステム18は、アービタ181と、L1キャッシュ18aと、L2キャッシュ18bと、を有している。メモリサブシステム18は、システム・バス・インターフェイス及びROMインターフェイスとの間で情報通信可能なように構成されている。
続いて、図4及び図5を参照しながら、本実施形態における診断用コードの実行について説明する。図4に示される例では、グラフ構造のプログラムにおいて、予め診断用コードが埋め込まれている例を示している。このように診断用コードが埋め込まれたプログラムを実行することで、予め意図したタイミングで診断用コードを実行することができる。
図5に示される例では、スレッドスケジューラ14に、コード読込部141及び割当部142を設けることで診断用コードを実行する例である。スレッドスケジューラ14には、タイマー20から時刻情報が出力される。スレッドスケジューラ14は、コード格納部18に格納されている診断用コードや期待値を読み込むことが可能なように構成されている。
スレッドスケジューラ14は、通常のスレッド・スケジューリング機能以外の機能的な構成要素として、コード読込部141と、割当部142とが設けられている。
コード読込部141は、予め格納されている診断用コードを読み込む部分である。診断用コードは、コード格納部18に格納されている。コード格納部18には、診断用コードを実行した結果の期待値も格納されているので、コード読込部141は、期待値も読み込むことができる。
割当部142は、平均故障時間(MTTF:Mean Time To Failures)内に診断が完了するように診断用コードを複数の処理実行ハードウェアに実行させる部分である。割当部142は、タイマー20から出力される時刻情報を用いて、平均故障時間内に診断が完了するように診断用コードの実行を割り当てる。
割当部142による診断用コードの割り当ては、図3に示されるような、実行コア単位で行われても良い。割当部142による診断用コードの割り当ては、実行コアを構成する演算器単位で行われても良い。
図6に示されるように、実行コア16は、複数の演算器を含んでいる。具体的には、実行コア16は、スレッド・アービタ51、演算器A521、演算器A522、演算器B523、演算器B524、演算器C525、演算器C526、結果レジスタA531、結果レジスタA532、結果レジスタB533、結果レジスタB534、期待値レジスタC535、期待値レジスタD536、及び比較器54を有している。
スレッド・アービタ51は、演算器A521、演算器A522、演算器B523、演算器B524、演算器C525、演算器C526に処理を割り当てる部分である。スレッド・アービタ51は、割当部142による診断用コードの割り当てに応じて、診断用コードの実行を、演算器A521、演算器A522、演算器B523、演算器B524、演算器C525、演算器C526に割り当てる。
演算器A521、演算器A522、演算器B523、演算器B524、演算器C525、演算器C526は、割り当てられた処理を実行する部分である。演算器A521と演算器A522とは、同じ構成・機能の演算器である。演算器B523と演算器B524とは、同じ構成・機能の演算器である。演算器C525と演算器C526とは、同じ構成・機能の演算器である。
結果レジスタA531は、演算器A521の演算結果を格納する部分である。結果レジスタA532は、演算器A522の演算結果を格納する部分である。結果レジスタB533は、演算器B523の演算結果を格納する部分である。結果レジスタB534は、演算器B524の演算結果を格納する部分である。
期待値レジスタC535は、演算器C525が出力する期待値を格納する部分である。演算器C525は、スレッド・アービタ51が割り当てる期待値処理を実行し、期待値を期待値レジスタC535に格納する。期待値レジスタC536は、演算器C526が出力する期待値を格納する部分である。演算器C526は、スレッド・アービタ51が割り当てる期待値処理を実行し、期待値を期待値レジスタC536に格納する。
比較器54は、例えば、結果レジスタA531に格納されている値と結果レジスタA532に格納されている値とを比較し、それが診断用コードの実行結果であれば、一致していれば正常であると判断する。比較器54は、例えば、結果レジスタA531に格納されている値と期待値レジスタC536に格納されている値とを比較し、それが診断用コードの実行結果であれば、一致していれば正常であると判断してもよい。
図7に示されるように、診断用コードの実行は、タイミングをずらして同種の演算器で行うようにしてもよい。図8に示されるように、診断用コードの実行は、同じタイミングで同種の演算器で行うようにしてもよい。
上記のように本実施形態のDFP10は、本開示の情報処理装置に相当し、グラフ構造のプログラムを処理する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置であって、予め格納されている診断用コードを読み込むコード読込部141と、平均故障時間内に診断が完了するように診断用コードを複数の処理実行ハードウェアに実行させる割当部142と、を備えている。
割当部142が、平均故障時間内に診断が完了するように診断用コードを複数の処理実行ハードウェアに実行させるので、故障診断用にハードウェアを二重化することなく、処理用に既に設けられている処理実行ハードウェアを活用した故障診断が可能となる。
本実施形態において、コード読込部141は、予め格納されている診断用コードを実行した結果の期待値も読み込むことができる。
本実施形態において、処理実行ハードウェアは、実行コアを構成する演算器である。
本実施形態において、割当部142は、複数の処理実行ハードウェアそれぞれにおいて、前記診断用コードが異なるタイミングで実行されるように割り当てる。
本実施形態において、割当部142は、診断用コードの実行結果が故障を示すものである場合、他の同種の処理実行ハードウェアにて診断用コードを再実行させる。
以上、具体例を参照しつつ本実施形態について説明した。しかし、本開示はこれらの具体例に限定されるものではない。これら具体例に、当業者が適宜設計変更を加えたものも、本開示の特徴を備えている限り、本開示の範囲に包含される。前述した各具体例が備える各要素およびその配置、条件、形状などは、例示したものに限定されるわけではなく適宜変更することができる。前述した各具体例が備える各要素は、技術的な矛盾が生じない限り、適宜組み合わせを変えることができる。
Claims (5)
- グラフ構造のプログラムを処理する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置であって、
予め格納されている診断用コードを読み込むコード読込部(141)と、
平均故障時間内に診断が完了するように前記診断用コードを複数の処理実行ハードウェアに実行させる割当部(142)と、を備える情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記コード読込部は、予め格納されている前記診断用コードを実行した結果の期待値も読み込む、情報処理装置。 - 請求項1又は2に記載の情報処理装置であって、
前記処理実行ハードウェアは、実行コアを構成する演算器である、情報処理装置。 - 請求項1から3のいずれか1項に記載の情報処理装置であって、
前記割当部は、前記複数の処理実行ハードウェアそれぞれにおいて、前記診断用コードが異なるタイミングで実行されるように割り当てる、情報処理装置。 - 請求項1から4のいずれか1項に記載の情報処理装置であって、
前記割当部は、前記診断用コードの実行結果が故障を示すものである場合、他の同種の処理実行ハードウェアにて前記診断用コードを再実行させる、情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19774351.1A EP3779700A4 (en) | 2018-03-30 | 2019-03-11 | INFORMATION PROCESSING DEVICE |
US17/034,513 US11892899B2 (en) | 2018-03-30 | 2020-09-28 | Information processing apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018068431A JP7236811B2 (ja) | 2018-03-30 | 2018-03-30 | 情報処理装置 |
JP2018-068431 | 2018-03-30 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/034,513 Continuation US11892899B2 (en) | 2018-03-30 | 2020-09-28 | Information processing apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019188177A1 true WO2019188177A1 (ja) | 2019-10-03 |
Family
ID=68058885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/009629 WO2019188177A1 (ja) | 2018-03-30 | 2019-03-11 | 情報処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11892899B2 (ja) |
EP (1) | EP3779700A4 (ja) |
JP (1) | JP7236811B2 (ja) |
WO (1) | WO2019188177A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342625A (zh) * | 2021-06-30 | 2021-09-03 | 北京九章云极科技有限公司 | 一种数据监控方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07248937A (ja) * | 1994-03-09 | 1995-09-26 | Nec Corp | 情報処理装置の自己診断方式 |
JP2006048402A (ja) * | 2004-08-05 | 2006-02-16 | Yokogawa Electric Corp | コントローラ |
JP2015153282A (ja) | 2014-02-18 | 2015-08-24 | ルネサスエレクトロニクス株式会社 | マルチプロセッサシステム |
JP2015206785A (ja) * | 2014-04-11 | 2015-11-19 | ルネサスエレクトロニクス株式会社 | 半導体装置、診断テスト方法及び診断テスト回路 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6615366B1 (en) | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability mode |
AU2001259841A1 (en) * | 2000-05-08 | 2001-11-20 | Transilica, Inc. | A diagnostic tool for a portable thread environment |
JP4449225B2 (ja) | 2001-01-31 | 2010-04-14 | 株式会社デンソー | プログラム、電子制御装置 |
US7509533B1 (en) * | 2003-06-30 | 2009-03-24 | Sun Microsystems, Inc. | Methods and apparatus for testing functionality of processing devices by isolation and testing |
US9038070B2 (en) * | 2004-09-14 | 2015-05-19 | Synopsys, Inc. | Debug in a multicore architecture |
US8001549B2 (en) | 2006-04-27 | 2011-08-16 | Panasonic Corporation | Multithreaded computer system and multithread execution control method |
JP2007317171A (ja) | 2006-04-27 | 2007-12-06 | Matsushita Electric Ind Co Ltd | マルチスレッド計算機システム、マルチスレッド実行制御方法 |
JP2008009696A (ja) | 2006-06-29 | 2008-01-17 | Fuji Xerox Co Ltd | 画像処理装置及びプログラム |
GB2443277B (en) * | 2006-10-24 | 2011-05-18 | Advanced Risc Mach Ltd | Performing diagnostics operations upon an asymmetric multiprocessor apparatus |
JP5100310B2 (ja) | 2006-10-31 | 2012-12-19 | 株式会社半導体エネルギー研究所 | 半導体装置 |
US9081688B2 (en) * | 2008-12-30 | 2015-07-14 | Intel Corporation | Obtaining data for redundant multithreading (RMT) execution |
US8966453B1 (en) * | 2010-11-24 | 2015-02-24 | ECOLE POLYTECHNIQUE FéDéRALE DE LAUSANNE | Automatic generation of program execution that reaches a given failure point |
US8930752B2 (en) * | 2011-02-15 | 2015-01-06 | International Business Machines Corporation | Scheduler for multiprocessor system switch with selective pairing |
JP6306530B2 (ja) | 2015-03-12 | 2018-04-04 | 日立オートモティブシステムズ株式会社 | 自動車用電子制御装置 |
GB2537942B (en) | 2015-05-01 | 2017-06-14 | Imagination Tech Ltd | Fault tolerant processor for real-time systems |
-
2018
- 2018-03-30 JP JP2018068431A patent/JP7236811B2/ja active Active
-
2019
- 2019-03-11 WO PCT/JP2019/009629 patent/WO2019188177A1/ja active Application Filing
- 2019-03-11 EP EP19774351.1A patent/EP3779700A4/en active Pending
-
2020
- 2020-09-28 US US17/034,513 patent/US11892899B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07248937A (ja) * | 1994-03-09 | 1995-09-26 | Nec Corp | 情報処理装置の自己診断方式 |
JP2006048402A (ja) * | 2004-08-05 | 2006-02-16 | Yokogawa Electric Corp | コントローラ |
JP2015153282A (ja) | 2014-02-18 | 2015-08-24 | ルネサスエレクトロニクス株式会社 | マルチプロセッサシステム |
JP2015206785A (ja) * | 2014-04-11 | 2015-11-19 | ルネサスエレクトロニクス株式会社 | 半導体装置、診断テスト方法及び診断テスト回路 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3779700A4 |
Also Published As
Publication number | Publication date |
---|---|
JP7236811B2 (ja) | 2023-03-10 |
JP2019179414A (ja) | 2019-10-17 |
US20210011827A1 (en) | 2021-01-14 |
EP3779700A1 (en) | 2021-02-17 |
EP3779700A4 (en) | 2021-06-02 |
US11892899B2 (en) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9229765B2 (en) | Guarantee real time processing of soft real-time operating system by instructing core to enter a waiting period prior to transferring a high priority task | |
US20060059489A1 (en) | Parallel processing system, interconnection network, node and network control method, and program therefor | |
JP2007219816A (ja) | マルチプロセッサシステム | |
JP5999216B2 (ja) | データ処理装置 | |
WO2019188177A1 (ja) | 情報処理装置 | |
JP2009175960A (ja) | 仮想マルチプロセッサシステム | |
JP7064367B2 (ja) | デッドロック回避方法、デッドロック回避装置 | |
JP4017005B2 (ja) | 演算装置 | |
JP2012133458A (ja) | マイコン、リソース割り当て方法 | |
WO2019188171A1 (ja) | コード生成方法、コード生成装置 | |
WO2019188172A1 (ja) | 情報処理装置 | |
WO2022137838A1 (ja) | プロセス割当制御装置、プロセス割当制御方法、及び、プロセス割当制御プログラムが格納された記録媒体 | |
JP7039365B2 (ja) | デッドロック回避方法、デッドロック回避装置 | |
WO2019188181A1 (ja) | スケジューリング方法、スケジューリング装置 | |
WO2019188180A1 (ja) | スケジューリング方法、スケジューリング装置 | |
WO2019188173A1 (ja) | 半導体装置 | |
WO2019188182A1 (ja) | プリフェッチコントローラ | |
JP2009266050A (ja) | 情報処理装置 | |
US9342359B2 (en) | Information processing system and information processing method | |
WO2022197291A1 (en) | Allocation of secondary computing resource for multiple optical proximity correction (opc) processes of an electronic design automation (eda) application | |
JP2009230466A (ja) | 情報処理装置、情報処理装置の制御方法および制御プログラム | |
CN116795490A (zh) | 一种vCPU调度方法、装置、设备及存储介质 | |
JP2009205585A (ja) | 情報処理装置、情報処理装置の制御方法および制御プログラム | |
JP2020086871A (ja) | 情報処理装置、プログラム、オペレーティングシステム、実行方法及びプログラムの修正方法 | |
JPH02108149A (ja) | マルチプロセッサの排他制御機構 |
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: 19774351 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2019774351 Country of ref document: EP |