[go: up one dir, main page]

WO2019188172A1 - Information processing device - Google Patents

Information processing device Download PDF

Info

Publication number
WO2019188172A1
WO2019188172A1 PCT/JP2019/009624 JP2019009624W WO2019188172A1 WO 2019188172 A1 WO2019188172 A1 WO 2019188172A1 JP 2019009624 W JP2019009624 W JP 2019009624W WO 2019188172 A1 WO2019188172 A1 WO 2019188172A1
Authority
WO
WIPO (PCT)
Prior art keywords
execution
instruction
check
hardware
mode
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.)
Ceased
Application number
PCT/JP2019/009624
Other languages
French (fr)
Japanese (ja)
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.)
Denso Corp
NSI Texe Inc
Original Assignee
Denso Corp
NSI Texe Inc
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 Denso Corp, NSI Texe Inc filed Critical Denso Corp
Publication of WO2019188172A1 publication Critical patent/WO2019188172A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Definitions

  • the present disclosure relates to an information processing apparatus including a thread scheduler that assigns processing to a plurality of processing execution hardware having the same configuration.
  • 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.
  • a plurality of processing execution hardware having the same configuration is executed by executing different types of software to detect a failure, and when a failure is detected, the same software is repeatedly executed and the results are compared. ing.
  • An object of the present disclosure is to provide an information processing apparatus including a thread scheduler that assigns processing to a plurality of processing execution hardware having the same configuration, which can ensure functional safety. .
  • the present disclosure is an information processing apparatus including a thread scheduler that assigns processing to a plurality of processing execution hardware having the same configuration, and starts a check execution mode that executes a plurality of failure detection execution instructions for the plurality of processing execution hardware An execution recognition unit that recognizes necessity, and an instruction output unit that executes the check execution mode for a plurality of processing execution hardware when the execution recognition unit recognizes the start of the check execution mode. Yes.
  • the instruction output unit executes the execution of the check execution mode at least as many times as the number of the plurality of processing execution hardware installed, and each of the plurality of failure detection execution instructions is executed on different processing execution hardware. Execute check execution mode.
  • 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 the function of the scheduler.
  • FIG. 5 is a diagram for explaining the function of the scheduler.
  • FIG. 6 is a diagram for explaining the function of the scheduler.
  • FIG. 7 is a diagram for explaining the function of the scheduler.
  • FIG. 8 is a diagram for explaining the function of the scheduler.
  • FIG. 9 is a diagram for explaining the function of the scheduler.
  • FIG. 10 is a diagram for explaining the function of the scheduler.
  • FIG. 11 is a diagram for explaining the function of the scheduler.
  • 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.
  • the DFP 10 corresponds to the information processing apparatus of the present disclosure.
  • 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.
  • a program code (PC) and an instruction code are supplied to the thread scheduler 14.
  • the parity corresponding to the program code and instruction code is generated and input to the thread scheduler 14 by the hardware in the previous stage of the thread scheduler 14.
  • the schedule mode corresponding to the parity is also input from the previous hardware of the thread scheduler 14.
  • the thread scheduler 14 outputs instruction execution to the execution pipe 0 and the execution pipe 1 according to the parity and the schedule mode. An example will be described with reference to FIG.
  • the parity is 0 and the schedule mode is 0
  • execution of the first instruction is started in the execution pipe 1.
  • the second instruction executes an instruction in execution pipe 0
  • the third instruction executes an instruction in execution pipe 0
  • the fourth instruction executes an instruction in execution pipe 1
  • An instruction is executed
  • the sixth instruction executes an instruction in the execution pipe 1
  • the seventh instruction executes an instruction in the execution pipe
  • the eighth instruction executes an instruction in the execution pipe 1.
  • the first instruction is executed by the execution pipe 0.
  • the second instruction executes an instruction in execution pipe 0
  • the third instruction executes an instruction in execution pipe 0
  • the fourth instruction executes an instruction in execution pipe 0
  • An instruction is executed
  • the sixth instruction executes an instruction on the execution pipe 0
  • the seventh instruction executes an instruction on the execution pipe 1
  • the eighth instruction executes an instruction on the execution pipe 0.
  • the thread scheduler 14 includes an execution recognition unit 141 and an instruction output unit 142 as functional components.
  • the execution recognition unit 141 is a part that recognizes whether it is necessary to start a check execution mode for executing a plurality of failure detection execution instructions for an execution pipe that is a plurality of process execution hardware. In the example described with reference to FIG. 4, when an instruction code, parity, and schedule mode are input, the execution recognition unit 141 recognizes the necessity for starting the check time mode.
  • the instruction output unit 142 is a part that executes the check execution mode for an execution pipe that is a plurality of processing execution hardwares when the execution recognition unit 141 recognizes the start of the check execution mode.
  • the instruction output unit 142 executes the check execution mode at least as many times as the number of installed processing execution hardware, and each of the plurality of failure detection execution instructions is executed by different processing execution hardware. Execute check execution mode.
  • the instruction sequence is executed twice.
  • the execution pipe 1 is executed in the first execution (schedule mode 0), and the execution pipe 0 is executed in the second execution (schedule mode 1).
  • Subsequent instructions are also executed alternately by the execution pipe 0 and the execution pipe 1.
  • the execution of the check execution mode is performed at least as many times as the number of pieces of processing execution hardware installed, and the check execution mode is executed so that each of the plurality of failure detection execution instructions is executed on different processing execution hardware.
  • the failure detection command can be executed at different times without biasing the plurality of processing execution hardware provided, so that functional safety can be ensured reliably.
  • a pair of execution pipes 0 and 1 are provided for one thread scheduler 14, and a plurality of failure detection execution instructions are executed on the execution pipe 0 and the execution pipe 1.
  • the thread scheduler is not limited to one, and the execution pipes are not limited to a pair.
  • a pair of thread scheduler 14A and thread scheduler 14B are provided.
  • the distributor 50 distributes a program code (PC), an instruction code, a parity, and a schedule mode.
  • the thread scheduler 14A outputs instruction execution to the execution pipe 0 and the execution pipe 1 according to the parity and the schedule mode.
  • the thread scheduler 14B outputs instruction execution to the execution pipe 2 and the execution pipe 3 according to the parity and the schedule mode.
  • the first instruction is executed by the execution pipe 0.
  • the second instruction executes the instruction in the execution pipe 3
  • the third instruction executes the instruction in the execution pipe 1
  • the fourth instruction executes the instruction in the execution pipe 2
  • the fifth instruction in the execution pipe 2 An instruction is executed
  • the sixth instruction executes an instruction in the execution pipe 1
  • the seventh instruction executes an instruction in the execution pipe 3
  • the eighth instruction executes an instruction in the execution pipe 0.
  • instructions are executed in one instruction sequence on one of the pair of execution schedulers carried by one of the thread schedulers 14A and 14B.
  • the next instruction sequence by selecting one of the execution pipes carried by the thread scheduler having the opposite phase to that of the thread scheduler that executed the previous instruction sequence, it is possible to execute the instruction with the execution time shifted without deviation.
  • a program code and an instruction code generated for each instruction can be considered.
  • a parity generation unit is provided as hardware.
  • parity generation unit As another variation for generating parity, as shown in FIG. 8, a program binary having a thread selection flag at the time of testing is conceivable. In this case, a parity generation unit as hardware is unnecessary. As another variation for generating the parity, a parity such as a base address of data set in the program code or the instruction code may be used.
  • the instruction output unit 142 refers to a schedule history 51 that is an execution history of instructions for a plurality of processing execution hardware before starting execution of the check execution mode, and performs check execution including the execution history.
  • the mode can be executed.
  • the schedule history 51 which is an instruction execution history has an instruction history including an instruction canceled by speculative execution, thereby having an instruction history that does not affect the system. Therefore, even in the cancel operation, a test in which the execution pipe is divided can be performed.
  • the instruction output unit 142 is an execution pipe that is an execution result history that is a result of execution of an instruction that affects a plurality of processing execution hardware before the execution of the check execution mode is started.
  • the check execution mode can be executed including the execution result history.
  • a test mode register 55 can be provided separately from the DFP 10.
  • the test mode register 55 outputs a test mode signal to the DFP 10.
  • the execution recognition unit 141 can recognize the necessity of starting the check execution mode by receiving this test mode signal.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Advance Control (AREA)

Abstract

Provided is an information processing device comprising: an execution recognition part (141) for recognizing whether it is necessary to commence a check execution mode for executing a plurality of fault sensing execution instructions with regard to a plurality of execution pipes; and an instruction output part (142) for executing the check execution mode with regard to the plurality of execution pipes if the commencement of the check execution mode has been recognized by the execution recognition part (141). The instruction output part (142) is for executing the check execution mode for a number of times greater than or equal to the number of the execution pipe installations, and executes the check execution mode such that each of the plurality of fault sensing execution instructions is executed in different execution pipes.

Description

情報処理装置Information processing device 関連出願の相互参照Cross-reference of related applications

 本出願は、2018年3月30日に出願された日本国特許出願2018-068426号に基づくものであって、その優先権の利益を主張するものであり、その特許出願の全ての内容が、参照により本明細書に組み込まれる。 This application is based on Japanese Patent Application No. 2018-068426 filed on March 30, 2018, and claims the benefit of its priority. Which is incorporated herein by reference.

 本開示は、同じ構成を有する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置に関する。 The present disclosure relates to an information processing apparatus including a thread scheduler that assigns processing to a plurality of processing execution hardware having the same configuration.

 複数の処理実行ハードウェアであるプロセッサエレメントの機能安全を担保するための発明として、下記特許文献1に記載のものが開示されている。下記特許文献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. In the following Patent Document 1, when the same data processing is executed by a plurality of processor elements to realize the functional safety of the processor elements, 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.

特開2015-153282号公報Japanese Patent Laying-Open No. 2015-153282

 機能安全の要件としては、処理を異なるハードウェアリソースで重複実行し、結果を比較してハードウェア故障の有無を確認するものとしている。重複実行は、実行タイミングや実行ハードウェアリソースを変えることが、故障検出の要件となっている。従来は、同じ構成を有する複数の処理実行ハードウェアに対して、異なる種類のソフトウェアを実行して故障の検出を行い、故障検出時には同一のソフトウェアを重複実行して結果を比較することが行われている。 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. Conventionally, a plurality of processing execution hardware having the same configuration is executed by executing different types of software to detect a failure, and when a failure is detected, the same software is repeatedly executed and the results are compared. ing.

 しかしながら、同じ構成を有する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置では、異なる種類のソフトウェアを実行したとしても、必ずしも全ての処理実行ハードウェアが処理を実行するとは限らず、一部の処理実行ハードウェアのみが処理を実行する場合も想定される。 However, in an information processing apparatus including a thread scheduler that assigns processing to a plurality of processing execution hardware having the same configuration, even if different types of software are executed, not all processing execution hardware necessarily executes the processing. It is also assumed that only a part of the processing execution hardware executes the processing.

 本開示は、同じ構成を有する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置であって、確実に機能安全を確保することができる情報処理装置を提供することを目的とする。 An object of the present disclosure is to provide an information processing apparatus including a thread scheduler that assigns processing to a plurality of processing execution hardware having the same configuration, which can ensure functional safety. .

 本開示は、同じ構成を有する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置であって、複数の処理実行ハードウェアに対する複数の故障検知実行命令を実行するチェック実行モードの開始要否を認識する実行認識部と、実行認識部が前記チェック実行モードの開始を認識した場合に、複数の処理実行ハードウェアに対して、チェック実行モードを実行する命令出力部と、を備えている。命令出力部は、チェック実行モードの実行を少なくとも複数の処理実行ハードウェアの設置数と同じ回数以上行うものであって、複数の故障検知実行命令それぞれは異なる処理実行ハードウェアにおいて実行されるようにチェック実行モードを実行する。 The present disclosure is an information processing apparatus including a thread scheduler that assigns processing to a plurality of processing execution hardware having the same configuration, and starts a check execution mode that executes a plurality of failure detection execution instructions for the plurality of processing execution hardware An execution recognition unit that recognizes necessity, and an instruction output unit that executes the check execution mode for a plurality of processing execution hardware when the execution recognition unit recognizes the start of the check execution mode. Yes. The instruction output unit executes the execution of the check execution mode at least as many times as the number of the plurality of processing execution hardware installed, and each of the plurality of failure detection execution instructions is executed on different processing execution hardware. Execute check execution mode.

 チェック実行モードの実行を少なくとも複数の処理実行ハードウェアの設置数と同じ回数以上行い、複数の故障検知実行命令それぞれは異なる処理実行ハードウェアにおいて実行されるようにチェック実行モードを実行することで、複数設けられた処理実行ハードウェアに対して偏り無く、時刻をずらして故障検知命令を実行させることができるので、確実に機能安全を確保することができる。 By executing the check execution mode at least as many times as the number of installed multiple process execution hardware, and executing the check execution mode so that each of the plurality of failure detection execution instructions is executed in different process execution hardware, Since the failure detection command can be executed at different times without biasing the plurality of processing execution hardware provided, functional safety can be reliably ensured.

図1は、本実施形態の前提となる並列処理について説明するための図である。FIG. 1 is a diagram for explaining parallel processing which is a premise of the present embodiment. 図2は、図1に示される並列処理を実行するためのシステム構成例を示す図である。FIG. 2 is a diagram showing a system configuration example for executing the parallel processing shown in FIG. 図3は、図2に用いられるDFPの構成例を示す図である。FIG. 3 is a diagram illustrating a configuration example of the DFP used in FIG. 図4は、スケジューラの機能を説明するための図である。FIG. 4 is a diagram for explaining the function of the scheduler. 図5は、スケジューラの機能を説明するための図である。FIG. 5 is a diagram for explaining the function of the scheduler. 図6は、スケジューラの機能を説明するための図である。FIG. 6 is a diagram for explaining the function of the scheduler. 図7は、スケジューラの機能を説明するための図である。FIG. 7 is a diagram for explaining the function of the scheduler. 図8は、スケジューラの機能を説明するための図である。FIG. 8 is a diagram for explaining the function of the scheduler. 図9は、スケジューラの機能を説明するための図である。FIG. 9 is a diagram for explaining the function of the scheduler. 図10は、スケジューラの機能を説明するための図である。FIG. 10 is a diagram for explaining the function of the scheduler. 図11は、スケジューラの機能を説明するための図である。FIG. 11 is a diagram for explaining the function of the scheduler.

 以下、添付図面を参照しながら本実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。 Hereinafter, the present embodiment will be described with reference to the accompanying drawings. In order to facilitate the understanding of the description, the same constituent elements in the drawings will be denoted by the same reference numerals as much as possible, and redundant description will be omitted.

 図1(A)は、グラフ構造のプログラムコードを示しており、図1(B)は、スレッドの状態を示しており、図1(C)は、並列処理の状況を示している。 FIG. 1A shows a program code having a graph structure, FIG. 1B shows a thread state, and FIG. 1C shows a state of parallel processing.

 図1(A)に示されるように、本実施形態が処理対象とするプログラムは、データと処理とが分割されているグラフ構造を有している。このグラフ構造は、プログラムのタスク並列性、グラフ並列性を保持している。 As shown in FIG. 1A, 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.

 図1(A)に示されるプログラムコードに対して、コンパイラによる自動ベクトル化とグラフ構造の抽出を行うと、図1(B)に示されるような大量のスレッドを生成することができる。 1) When automatic vectorization and graph structure extraction are performed on the program code shown in FIG. 1A by a compiler, a large number of threads as shown in FIG. 1B can be generated.

 図1(B)に示される多量のスレッドに対して、ハードウェアによる動的レジスタ配置とスレッド・スケジューリングにより、図1(C)に示されるような並列実行を行うことができる。実行中にレジスタ資源を動的配置することで、異なる命令ストリームに対しても複数のスレッドを並列実行することができる。 1) 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.

 続いて図2を参照しながら、動的レジスタ配置及びスレッド・スケジューリングを行うアクセラレータとしてのDFP(Data Flow Processor)10を含むシステム構成例である、データ処理システム2を説明する。DFP10は、本開示の情報処理装置に相当する。 Next, 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. The DFP 10 corresponds to the information processing apparatus of the present disclosure.

 データ処理システム2は、DFP10と、イベントハンドラ20と、ホストCPU21と、ROM22と、RAM23と、外部インターフェイス24と、システムバス25と、を備えている。ホストCPU21は、データ処理を主として行う演算装置である。ホストCPU21は、OSをサポートしている。イベントハンドラ20は、割り込み処理を生成する部分である。 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.

 ROM22は、読込専用のメモリである。RAM23は、読み書き用のメモリである。外部インターフェイス24は、データ処理システム2外と情報授受を行うためのインターフェイスである。システムバス25は、DFP10と、ホストCPU21と、ROM22と、RAM23と、外部インターフェイス24との間で情報の送受信を行うためのものである。 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.

 DFP10は、ホストCPU21の重い演算負荷に対処するために設けられている個別のマスタとして位置づけられている。DFP10は、イベントハンドラ20が生成した割り込みをサポートするように構成されている。 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.

 続いて図3を参照しながら、DFP10について説明する。図3に示されるように、DFP10は、コマンドユニット12と、スレッドスケジューラ14と、実行コア16と、メモリサブシステム18と、を備えている。 Next, the DFP 10 will be described with reference to FIG. As shown in FIG. 3, the DFP 10 includes a command unit 12, a thread scheduler 14, an execution core 16, and a memory subsystem 18.

 コマンドユニット12は、コンフィグ・インターフェイスとの間で情報通信可能なように構成されている。コマンドユニット12は、コマンドバッファとしても機能している。 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.

 スレッドスケジューラ14は、図1(B)に例示されるような多量のスレッドの処理をスケジューリングする部分である。スレッドスケジューラ14は、スレッドを跨いだスケジューリングを行うことが可能である。 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.

 実行コア16は、4つのプロセッシングエレメントである、PE#0と、PE#1と、PE#2と、PE#3と、を有している。実行コア16は、独立してスケジューリング可能な多数のパイプラインを有している。 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.

 メモリサブシステム18は、アービタ181と、L1キャッシュ18aと、L2キャッシュ18bと、を有している。メモリサブシステム18は、システム・バス・インターフェイス及びROMインターフェイスとの間で情報通信可能なように構成されている。 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.

 続いて、図4を参照しながら、本開示の情報処理装置に含まれるスレッドスケジューラ14について説明する。スレッドスケジューラ14には、プログラムコード(PC)及び命令コードが供給される。本実施形態では、スレッドスケジューラ14の前段のハードウェアで、プログラムコードや命令コードに応じたパリティが生成されスレッドスケジューラ14に入力される。パリティに対応するスケジュールモードも、スレッドスケジューラ14の前段のハードウェアから入力される。 Subsequently, the thread scheduler 14 included in the information processing apparatus of the present disclosure will be described with reference to FIG. A program code (PC) and an instruction code are supplied to the thread scheduler 14. In the present embodiment, the parity corresponding to the program code and instruction code is generated and input to the thread scheduler 14 by the hardware in the previous stage of the thread scheduler 14. The schedule mode corresponding to the parity is also input from the previous hardware of the thread scheduler 14.

 スレッドスケジューラ14は、パリティ及びスケジュールモードに応じて、実行パイプ0及び実行パイプ1に命令実行を出力する。一例として、図5を参照しながら説明する。パリティが0であり、スケジュールモードが0の場合、1命令目は実行パイプ1で命令を実行開始する。続いて、2命令目は実行パイプ0で命令を実行し、3命令目は実行パイプ0で命令を実行し、4命令目は実行パイプ1で命令を実行し、5命令目は実行パイプ1で命令を実行し、6命令目は実行パイプ1で命令を実行し、7命令目は実行パイプ0で命令を実行し、8命令目は実行パイプ1で命令を実行する。 The thread scheduler 14 outputs instruction execution to the execution pipe 0 and the execution pipe 1 according to the parity and the schedule mode. An example will be described with reference to FIG. When the parity is 0 and the schedule mode is 0, execution of the first instruction is started in the execution pipe 1. Subsequently, the second instruction executes an instruction in execution pipe 0, the third instruction executes an instruction in execution pipe 0, the fourth instruction executes an instruction in execution pipe 1, and the fifth instruction in execution pipe 1. An instruction is executed, the sixth instruction executes an instruction in the execution pipe 1, the seventh instruction executes an instruction in the execution pipe 0, and the eighth instruction executes an instruction in the execution pipe 1.

 次に、パリティが1であり、スケジュールモードが1の場合、1命令目は実行パイプ0で命令を実行する。続いて、2命令目は実行パイプ0で命令を実行し、3命令目は実行パイプ0で命令を実行し、4命令目は実行パイプ0で命令を実行し、5命令目は実行パイプ0で命令を実行し、6命令目は実行パイプ0で命令を実行し、7命令目は実行パイプ1で命令を実行し、8命令目は実行パイプ0で命令を実行する。 Next, when the parity is 1 and the schedule mode is 1, the first instruction is executed by the execution pipe 0. Subsequently, the second instruction executes an instruction in execution pipe 0, the third instruction executes an instruction in execution pipe 0, the fourth instruction executes an instruction in execution pipe 0, and the fifth instruction in execution pipe 0 An instruction is executed, the sixth instruction executes an instruction on the execution pipe 0, the seventh instruction executes an instruction on the execution pipe 1, and the eighth instruction executes an instruction on the execution pipe 0.

 このように、一つの命令列で一対の実行パイプの一方で命令を実行し、次の命令列では前回の命令列で実行した実行パイプの逆位相となるように実行パイプを選択することで、偏り無く実行時刻をずらした命令実行が可能となる。 In this way, by executing an instruction in one instruction string in one of a pair of execution pipes, and selecting the execution pipe so that the next instruction string is in reverse phase to the execution pipe executed in the previous instruction string, It is possible to execute instructions with different execution times without deviation.

 スレッドスケジューラ14は、機能的な構成要素として、実行認識部141と、命令出力部142と、を備えている。実行認識部141は、複数の処理実行ハードウェアである実行パイプに対する複数の故障検知実行命令を実行するチェック実行モードの開始要否を認識する部分である。図4を参照しながら説明した例では、命令コード、パリティ、スケジュールモードが入力されると、実行認識部141はチェック時刻モードの開始要を認識する。 The thread scheduler 14 includes an execution recognition unit 141 and an instruction output unit 142 as functional components. The execution recognition unit 141 is a part that recognizes whether it is necessary to start a check execution mode for executing a plurality of failure detection execution instructions for an execution pipe that is a plurality of process execution hardware. In the example described with reference to FIG. 4, when an instruction code, parity, and schedule mode are input, the execution recognition unit 141 recognizes the necessity for starting the check time mode.

 命令出力部142は、実行認識部141がチェック実行モードの開始を認識した場合に、複数の処理実行ハードウェアである実行パイプに対して、チェック実行モードを実行する部分である。命令出力部142は、チェック実行モードの実行を少なくとも複数の処理実行ハードウェアの設置数と同じ回数以上行うものであって、複数の故障検知実行命令それぞれは異なる処理実行ハードウェアにおいて実行されるようにチェック実行モードを実行する。 The instruction output unit 142 is a part that executes the check execution mode for an execution pipe that is a plurality of processing execution hardwares when the execution recognition unit 141 recognizes the start of the check execution mode. The instruction output unit 142 executes the check execution mode at least as many times as the number of installed processing execution hardware, and each of the plurality of failure detection execution instructions is executed by different processing execution hardware. Execute check execution mode.

 図4に示した例では、処理実行ハードウェアである実行パイプが2つ設けられているので、命令列の実行を2回行っている。1命令目は、1回目の実行(スケジュールモード0)では実行パイプ1が実行し、2回目の実行(スケジュールモード1)では実行パイプ0が実行している。以降の命令も、実行パイプ0と実行パイプ1とで交互に実行している。 In the example shown in FIG. 4, since two execution pipes which are processing execution hardware are provided, the instruction sequence is executed twice. In the first instruction, the execution pipe 1 is executed in the first execution (schedule mode 0), and the execution pipe 0 is executed in the second execution (schedule mode 1). Subsequent instructions are also executed alternately by the execution pipe 0 and the execution pipe 1.

 このように、チェック実行モードの実行を少なくとも複数の処理実行ハードウェアの設置数と同じ回数以上行い、複数の故障検知実行命令それぞれは異なる処理実行ハードウェアにおいて実行されるようにチェック実行モードを実行することで、複数設けられた処理実行ハードウェアに対して偏り無く、時刻をずらして故障検知命令を実行させることができるので、確実に機能安全を確保することができる。 In this way, the execution of the check execution mode is performed at least as many times as the number of pieces of processing execution hardware installed, and the check execution mode is executed so that each of the plurality of failure detection execution instructions is executed on different processing execution hardware. By doing so, the failure detection command can be executed at different times without biasing the plurality of processing execution hardware provided, so that functional safety can be ensured reliably.

 図4に示した例では、1つのスレッドスケジューラ14に対して、一対の実行パイプ0,1を設け、実行パイプ0と実行パイプ1に対して複数の故障検知実行命令を実行させた。しかしながら、スレッドスケジューラは一つに限られるものではなく、実行パイプも一対に限られるものではない。 In the example shown in FIG. 4, a pair of execution pipes 0 and 1 are provided for one thread scheduler 14, and a plurality of failure detection execution instructions are executed on the execution pipe 0 and the execution pipe 1. However, the thread scheduler is not limited to one, and the execution pipes are not limited to a pair.

 図6に示す例では、一対のスレッドスケジューラ14A及びスレッドスケジューラ14Bを設けている。スレッドスケジューラ14A及びスレッドスケジューラ14Bに対しては、分配器50が、プログラムコード(PC)及び命令コード、パリティ、スケジュールモードを分配する。 In the example shown in FIG. 6, a pair of thread scheduler 14A and thread scheduler 14B are provided. For the thread scheduler 14A and the thread scheduler 14B, the distributor 50 distributes a program code (PC), an instruction code, a parity, and a schedule mode.

 スレッドスケジューラ14Aは、パリティ及びスケジュールモードに応じて、実行パイプ0及び実行パイプ1に命令実行を出力する。スレッドスケジューラ14Bは、パリティ及びスケジュールモードに応じて、実行パイプ2及び実行パイプ3に命令実行を出力する。 The thread scheduler 14A outputs instruction execution to the execution pipe 0 and the execution pipe 1 according to the parity and the schedule mode. The thread scheduler 14B outputs instruction execution to the execution pipe 2 and the execution pipe 3 according to the parity and the schedule mode.

 一例として、図7を参照しながら説明する。パリティが0であり、スケジュールモードが0の場合、1命令目は実行パイプ3で命令を実行開始する。続いて、2命令目は実行パイプ1で命令を実行し、3命令目は実行パイプ2で命令を実行し、4命令目は実行パイプ0で命令を実行し、5命令目は実行パイプ1で命令を実行し、6命令目は実行パイプ3で命令を実行し、7命令目は実行パイプ0で命令を実行し、8命令目は実行パイプ2で命令を実行する。 An example will be described with reference to FIG. When the parity is 0 and the schedule mode is 0, execution of the first instruction starts in the execution pipe 3. Subsequently, the second instruction executes an instruction in the execution pipe 1, the third instruction executes an instruction in the execution pipe 2, the fourth instruction executes an instruction in the execution pipe 0, and the fifth instruction in the execution pipe 1. An instruction is executed, the sixth instruction executes an instruction in the execution pipe 3, the seventh instruction executes an instruction in the execution pipe 0, and the eighth instruction executes an instruction in the execution pipe 2.

 次に、パリティが1であり、スケジュールモードが1の場合、1命令目は実行パイプ0で命令を実行する。続いて、2命令目は実行パイプ3で命令を実行し、3命令目は実行パイプ1で命令を実行し、4命令目は実行パイプ2で命令を実行し、5命令目は実行パイプ2で命令を実行し、6命令目は実行パイプ1で命令を実行し、7命令目は実行パイプ3で命令を実行し、8命令目は実行パイプ0で命令を実行する。 Next, when the parity is 1 and the schedule mode is 1, the first instruction is executed by the execution pipe 0. Subsequently, the second instruction executes the instruction in the execution pipe 3, the third instruction executes the instruction in the execution pipe 1, the fourth instruction executes the instruction in the execution pipe 2, and the fifth instruction in the execution pipe 2. An instruction is executed, the sixth instruction executes an instruction in the execution pipe 1, the seventh instruction executes an instruction in the execution pipe 3, and the eighth instruction executes an instruction in the execution pipe 0.

 このように、一つの命令列で、一対のスレッドスケジューラ14A,14Bの一方で、その一方のスレッドスケジューラが担う一対の実行パイプの一方で命令を実行する。次の命令列では前回の命令列を実行したスレッドスケジューラとは逆位相のスレッドスケジューラが担う実行パイプのいずれかを選択することで、偏り無く実行時刻をずらした命令実行が可能となる。 In this way, instructions are executed in one instruction sequence on one of the pair of execution schedulers carried by one of the thread schedulers 14A and 14B. In the next instruction sequence, by selecting one of the execution pipes carried by the thread scheduler having the opposite phase to that of the thread scheduler that executed the previous instruction sequence, it is possible to execute the instruction with the execution time shifted without deviation.

 パリティを生成するプログラム単位のバリエーションとしては、上記説明したように、命令毎にプログラムコードと命令コードから生成するものが考えられる。この場合、ハードウェアとして、パリティ生成部が設けられる。 As a variation of a program unit for generating a parity, as described above, a program code and an instruction code generated for each instruction can be considered. In this case, a parity generation unit is provided as hardware.

 パリティを生成する別のバリエーションとしては、図8に示されるように、プログラムバイナリにテスト時のスレッド選択フラグを設けるものが考えられる。この場合、ハードウェアとしてのパリティ生成部は不要となる。パリティを生成する別のバリエーションとしては、プログラムコードや命令コードに設定するデータのベースアドレス等のパリティを用いてもよい。 As another variation for generating parity, as shown in FIG. 8, a program binary having a thread selection flag at the time of testing is conceivable. In this case, a parity generation unit as hardware is unnecessary. As another variation for generating the parity, a parity such as a base address of data set in the program code or the instruction code may be used.

 図9に示されるように、命令出力部142は、チェック実行モードの実行開始前に、複数の処理実行ハードウェアに対する命令の実行履歴であるスケジュール履歴51を参照し、実行履歴を含めてチェック実行モードを実行することができる。命令の実行履歴であるスケジュール履歴51は、投機実行でキャンセルされた命令も含めた命令の履歴を持つことで、システムに影響を与えない命令の履歴を持つことになる。従って、キャンセル動作であっても、実行パイプを分けたテストを行うことができる。 As shown in FIG. 9, the instruction output unit 142 refers to a schedule history 51 that is an execution history of instructions for a plurality of processing execution hardware before starting execution of the check execution mode, and performs check execution including the execution history. The mode can be executed. The schedule history 51 which is an instruction execution history has an instruction history including an instruction canceled by speculative execution, thereby having an instruction history that does not affect the system. Therefore, even in the cancel operation, a test in which the execution pipe is divided can be performed.

 図10に示されるように、命令出力部142は、チェック実行モードの実行開始前に、複数の処理実行ハードウェアに対して影響を与える命令が実行された結果である実行結果履歴である実行パイプ履歴52を参照し、実行結果履歴を含めてチェック実行モードを実行することができる。処理実行ハードウェアに対して影響を与える命令が実行された結果である実行結果履歴である実行パイプ履歴52とすることで、実行キャンセル履歴を保持する必要がなくなり、実行パイプ履歴52のテーブルをコンパクトにすることができる。 As shown in FIG. 10, the instruction output unit 142 is an execution pipe that is an execution result history that is a result of execution of an instruction that affects a plurality of processing execution hardware before the execution of the check execution mode is started. With reference to the history 52, the check execution mode can be executed including the execution result history. By using the execution pipe history 52 which is an execution result history that is a result of execution of an instruction affecting the processing execution hardware, it is not necessary to hold an execution cancellation history, and the execution pipe history 52 table is compact. Can be.

 図11に示されるように、DFP10とは別にテストモードレジスタ55を設けることができる。テストモードレジスタ55は、テストモード信号をDFP10に出力する。実行認識部141は、このテストモード信号を受信することで、チェック実行モードの開始要を認識することができる。 As shown in FIG. 11, a test mode register 55 can be provided separately from the DFP 10. The test mode register 55 outputs a test mode signal to the DFP 10. The execution recognition unit 141 can recognize the necessity of starting the check execution mode by receiving this test mode signal.

 以上、具体例を参照しつつ本実施形態について説明した。しかし、本開示はこれらの具体例に限定されるものではない。これら具体例に、当業者が適宜設計変更を加えたものも、本開示の特徴を備えている限り、本開示の範囲に包含される。前述した各具体例が備える各要素およびその配置、条件、形状などは、例示したものに限定されるわけではなく適宜変更することができる。前述した各具体例が備える各要素は、技術的な矛盾が生じない限り、適宜組み合わせを変えることができる。 The embodiment has been described above with reference to specific examples. However, the present disclosure is not limited to these specific examples. Those in which those skilled in the art appropriately modify the design of these specific examples are also included in the scope of the present disclosure as long as they have the features of the present disclosure. Each element included in each of the specific examples described above and their arrangement, conditions, shape, and the like are not limited to those illustrated, and can be changed as appropriate. Each element included in each of the specific examples described above can be appropriately combined as long as no technical contradiction occurs.

Claims (3)

 同じ構成を有する複数の処理実行ハードウェアに処理を割り当てるスレッドスケジューラを含む情報処理装置であって、
 前記複数の処理実行ハードウェアに対する複数の故障検知実行命令を実行するチェック実行モードの開始要否を認識する実行認識部(141)と、
 前記実行認識部が前記チェック実行モードの開始を認識した場合に、前記複数の処理実行ハードウェアに対して、前記チェック実行モードを実行する命令出力部(142)と、を備え、
 前記命令出力部は、前記チェック実行モードの実行を少なくとも前記複数の処理実行ハードウェアの設置数と同じ回数以上行うものであって、前記複数の故障検知実行命令それぞれは異なる前記処理実行ハードウェアにおいて実行されるように前記チェック実行モードを実行する、情報処理装置。
An information processing apparatus including a thread scheduler that assigns processing to a plurality of processing execution hardware having the same configuration,
An execution recognition unit (141) for recognizing the necessity of starting a check execution mode for executing a plurality of failure detection execution instructions for the plurality of processing execution hardware;
An instruction output unit (142) for executing the check execution mode with respect to the plurality of processing execution hardware when the execution recognition unit recognizes the start of the check execution mode;
The instruction output unit performs the execution of the check execution mode at least as many times as the number of the plurality of process execution hardware installed, and each of the plurality of failure detection execution instructions is different in the process execution hardware. An information processing apparatus that executes the check execution mode to be executed.
 請求項1に記載の情報処理装置であって、
 前記命令出力部は、前記チェック実行モードの実行開始前に、前記複数の処理実行ハードウェアに対する命令の実行履歴を参照し、前記実行履歴を含めて前記チェック実行モードを実行する、情報処理装置。
The information processing apparatus according to claim 1,
The information output apparatus, wherein the instruction output unit refers to an execution history of instructions for the plurality of processing execution hardware before starting execution of the check execution mode, and executes the check execution mode including the execution history.
 請求項2に記載の情報処理装置であって、
 前記命令出力部は、前記チェック実行モードの実行開始前に、前記複数の処理実行ハードウェアに対して影響を与える命令が実行された結果である実行結果履歴を参照し、前記実行結果履歴を含めて前記チェック実行モードを実行する、情報処理装置。
An information processing apparatus according to claim 2,
The instruction output unit refers to an execution result history that is a result of execution of an instruction that affects the plurality of process execution hardware before starting execution of the check execution mode, and includes the execution result history. An information processing apparatus that executes the check execution mode.
PCT/JP2019/009624 2018-03-30 2019-03-11 Information processing device Ceased WO2019188172A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-068426 2018-03-30
JP2018068426A JP7169081B2 (en) 2018-03-30 2018-03-30 Information processing equipment

Publications (1)

Publication Number Publication Date
WO2019188172A1 true WO2019188172A1 (en) 2019-10-03

Family

ID=68061574

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/009624 Ceased WO2019188172A1 (en) 2018-03-30 2019-03-11 Information processing device

Country Status (2)

Country Link
JP (1) JP7169081B2 (en)
WO (1) WO2019188172A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226186A (en) * 2007-03-15 2008-09-25 Ricoh Co Ltd Integrated circuit, test condition setting method thereof, and program
US20160232029A1 (en) * 2015-02-10 2016-08-11 International Business Machines Corporation Compare point detection in multi-threaded computing environments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226186A (en) * 2007-03-15 2008-09-25 Ricoh Co Ltd Integrated circuit, test condition setting method thereof, and program
US20160232029A1 (en) * 2015-02-10 2016-08-11 International Business Machines Corporation Compare point detection in multi-threaded computing environments

Also Published As

Publication number Publication date
JP2019179409A (en) 2019-10-17
JP7169081B2 (en) 2022-11-10

Similar Documents

Publication Publication Date Title
JP5047542B2 (en) Method, computer program, and apparatus for blocking threads when dispatching a multithreaded processor (fine multithreaded dispatch lock mechanism)
JPS5932045A (en) information processing equipment
US7386646B2 (en) System and method for interrupt distribution in a multithread processor
CN101243403A (en) Method and apparatus for monitoring functions of a computer system
JP6123487B2 (en) Control device, control method, and control program
JP7169081B2 (en) Information processing equipment
US20210124635A1 (en) Multicore system
US11113140B2 (en) Detecting error in executing computation graph on heterogeneous computing devices
US7721145B2 (en) System, apparatus and computer program product for performing functional validation testing
JP7236811B2 (en) Information processing equipment
JP2008532167A (en) Data processing system having interrupt controller and interrupt control method
JP5382624B2 (en) Multiprocessor control device, method and program thereof
JP7064367B2 (en) Deadlock avoidance method, deadlock avoidance device
US20080133838A1 (en) Data processing device
US20090249132A1 (en) Data Processing Apparatus and Method of Verifying Programs
WO2019188171A1 (en) Code generation method and code generation device
JP6726136B2 (en) Data access device and access error notification method
WO2021037124A1 (en) Task processing method and task processing device
JP7039365B2 (en) Deadlock avoidance method, deadlock avoidance device
US9342359B2 (en) Information processing system and information processing method
WO2019188181A1 (en) Scheduling method, scheduling device
JP2011060048A (en) Apparatus, method and program for processing information
JP5017396B2 (en) Information processing apparatus and program verification method
JP2020160720A (en) Failure detection device
JP5387231B2 (en) Microprocessor and microprocessor debugging method

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: 19778119

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 19778119

Country of ref document: EP

Kind code of ref document: A1