WO2023022035A1 - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
WO2023022035A1
WO2023022035A1 PCT/JP2022/030216 JP2022030216W WO2023022035A1 WO 2023022035 A1 WO2023022035 A1 WO 2023022035A1 JP 2022030216 W JP2022030216 W JP 2022030216W WO 2023022035 A1 WO2023022035 A1 WO 2023022035A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
data
ram
pipeline
processor
Prior art date
Application number
PCT/JP2022/030216
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 JP2023542344A priority Critical patent/JPWO2023022035A1/ja
Publication of WO2023022035A1 publication Critical patent/WO2023022035A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/177Initialisation or configuration control
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Definitions

  • the present disclosure relates to a processor having a lockstep mechanism.
  • Lockstep is a mechanism for having two cores perform the exact same operation and comparing the outputs to detect faults in an integrated circuit.
  • Implementations are known that allow multiple pipelines to operate in lockstep, operate independently, or switch, depending on the required functional safety level. If a high level of functional safety is required, the failure of the entire pipeline can be detected by comparing the output in lockstep operation. Utilize it as a resource to achieve both performance maintenance and functional safety implementation.
  • lockstep is an implementation that can obtain a high fault detection rate, but a delay circuit is required when the phases of the output signals of the master circuit and checker circuit that are operated in lockstep are shifted. , an additional logic circuit for comparing output signals is required, and an increase in circuit scale is a problem. This problem is remarkable when the bit width of the output signals from the master circuit and the checker circuit is wide. It should be noted that implementation in which the phase of the output signal is shifted is employed when it is desired to avoid the influence of common cause failures such as clock failures.
  • the present disclosure aims to provide a processor that copes with an increase in circuit scale.
  • a processor of the present disclosure includes a first circuit that performs a pipeline operation and a second circuit that has the same configuration as the first circuit, and has a lockstep mechanism, wherein the first circuit and Each of the second circuits includes a RAM (11, 21) and an arithmetic circuit that performs an operation using data read from the RAM, passes the operation result to the next pipeline stage, and writes the operation result to the RAM. and a comparison circuit for comparing data read from the RAM of the first circuit and data read from the RAM of the second circuit.
  • FIG. 1 is a circuit diagram of a processor according to an embodiment.
  • FIG. 2 is a diagram showing an implementation example of the pipeline register 1.
  • FIG. 3 is a diagram showing operating waveforms of the processor.
  • FIG. 4 is a circuit diagram of a conventional processor.
  • a processor includes a first circuit that performs a pipeline operation and a second circuit that has the same configuration as that of the first circuit, and has a lock step mechanism.
  • Each of the circuit and the second circuit includes a RAM, and an arithmetic circuit that performs an operation using data read from the RAM, passes the operation result to the next pipeline stage, and also writes the operation result to the RAM,
  • a comparison circuit is provided for comparing data read from the RAM of the first circuit and data read from the RAM of the second circuit.
  • each of the first circuit and the second circuit includes an error detection circuit for detecting a 1-bit error in data read from the RAM, and a pipeline different from the error detection circuit. an error correction circuit for correcting a 1-bit error in the stage, and transmitting a detection result of the 1-bit error from the first circuit to the second circuit; , the pipeline operation is stalled when a 1-bit error is detected.
  • the processor of this embodiment includes an error detection circuit that detects a 1-bit error and an error correction circuit that corrects the detected error.
  • a RAM equipped with a circuit for detecting and correcting 1-bit errors is called an ECC memory (Error checking and correction memory).
  • the pipeline stages of the error detection circuit and the error correction circuit for a 1-bit error are different.
  • the pipeline stages of the error detection circuit and the error correction circuit are different, so it is necessary to stall the pipeline operation when correcting a 1-bit error. Therefore, when a 1-bit error is detected in the first circuit, the pipeline operation of the first circuit is stalled, causing a synchronization deviation with the pipeline operation of the second circuit. In that case, the data in the first circuit and the data in the second circuit cannot be compared in the middle of the pipeline.
  • the detection result of the 1-bit error is transmitted from the first circuit to the second circuit, and when the 1-bit error is detected by the first circuit, the second circuit However, it stalls the pipeline operation and prevents synchronization deviation.
  • read data from the RAM of the first circuit is transferred from the first circuit to the second circuit, or 1-bit error correction is performed in the first circuit.
  • the corrected read data is transmitted, the second circuit uses the data transmitted from the first circuit, and the second circuit detects a 1-bit error during the lockstep operation; However, it has a configuration that does not correct the 1-bit error.
  • the comparison circuit is provided on a line that transmits data from the first circuit to the second circuit.
  • data can be input to the comparison circuit using a bypass line that transmits data from the first circuit to the second circuit.
  • the second circuit may include a selection circuit for switching between lockstep operation and split operation. This enables a split operation in which the first circuit and the second circuit are operated independently.
  • FIG. 1 is a circuit diagram of a processor according to an embodiment.
  • the processor has a master circuit 10 and a checker circuit 20 .
  • the master circuit 10 and the checker circuit 20 are exactly the same circuits, and pipeline-process and output the input data.
  • the master circuit 10 and the checker circuit 20 perform lockstep operation. That is, the same data is input to the master circuit 10 and the checker circuit 20, the difference between the data of the master circuit 10 and the data of the checker circuit 20 is detected, and if there is a difference, a failure is detected.
  • the input data to the checker circuit 20 has a delay circuit 31 on line 30 so that the input to the checker circuit 20 is delayed (eg, by 1-2 cycles) with respect to the input to the master circuit 10 . ing. If the same data is input to the master circuit 10 and the checker circuit 20 at the same timing, there is a possibility that failures cannot be detected by comparing the data if they are affected by the same cause (for example, a problem with the clock signal). It is from. When the data is input with the timing shifted and the data are compared, the output of the master circuit 10 is delayed by the timing shifted in the input, thereby avoiding the influence of the common cause of failure.
  • the master circuit 10 has a RAM 11, an ECC error detection circuit 12, an ECC error correction circuit 13, and an execution unit 14.
  • the RAM 11 holds data used by the execution unit 14 and the like.
  • the execution unit 14 is a circuit that performs operations using data read from the RAM 11 .
  • the calculation result by the execution unit 14 is output as a processing result, and may also be written to the RAM 11 and read from the RAM 11 later.
  • the ECC error detection circuit 12 detects ECC errors (1-bit/2-bit errors).
  • the ECC error detection circuit 12 asserts an SED (Single Error Detection) signal when detecting a 1-bit error.
  • the ECC error correction circuit 13 corrects the data based on the ECC code and writes the corrected data back to the pipeline register 1.
  • FIG. 2 is a diagram showing an implementation example of the pipeline register 1.
  • FIG. The pipeline register 1 has a buffer preg_sk that temporarily holds data read from the RAM 11 .
  • the buffer preg_sk that temporarily holds data read from the RAM 11 .
  • the SED signal is asserted and the corrected data is to be written back, the corrected data is stored in the register preg and the read data from the RAM 11 is stored in the buffer preg_sk.
  • the SED signal is asserted and the corrected data is to be written back, the corrected data is stored in the register preg and the read data from the RAM 11 is stored in the buffer preg_sk.
  • data reading will be described. Data is read from the register preg, and the data in the buffer preg_sk is moved to the register preg in the cycle in which the data is read from the register preg.
  • the pipeline control circuit 15 receiving the SED signal stalls the pipeline upstream from the pipeline register 1 . Since the input data of execution unit 14 contains an error, the operation is cancelled. Also, in the next cycle, the corrected data is sent from the pipeline register 1 to the execution unit 14, and the execution unit 14 performs the operation.
  • the ECC error correction circuit 13 corrects 1-bit errors.
  • the execution unit 14 is a circuit that performs computation, performs computation using data read from the RAM 11 , and writes back the computation result to the RAM 11 .
  • the master circuit 10 has a pipeline control circuit 15 and three pipeline registers 0 to 2 as a configuration for controlling pipeline operations.
  • the pipeline control circuit 15 performs progress/stop control of the pipeline.
  • Pipeline registers 0 to 2 are storage units that hold control information and data to be pipelined.
  • Pipeline register 0 is provided between the input of master circuit 10 and RAM 11 .
  • Pipeline register 1 is provided between ECC error detection circuit 12 and ECC error correction circuit 13 .
  • Pipeline register 2 is provided between execution unit 14 and the output of master circuit 10 .
  • Pipeline stage ps1 is a process of writing data in pipeline register 0 to RAM 11.
  • Pipeline stage ps2 is a process of reading data from RAM 11, performing ECC error detection, and storing it in pipeline register 1.
  • ps3 is a step of reading the data in the pipeline register 1, correcting the ECC data if an ECC data error is detected, and executing an operation in the execution unit 14 if no ECC data error is detected.
  • pipeline stage ps3 corrects the ECC data and writes the corrected data back to pipeline register 1. At this time, no operation is executed by the execution unit 14 and the pipeline operation is stalled. Note that the pipeline control circuit 15 controls the stall of the pipeline operation.
  • FIG. 3 is a diagram showing operation waveforms during normal operation (top) and during error correction (bottom) of the processor.
  • data d0 written to pipeline register 0 is written to RAM 11 in the next cycle, and then written to pipeline register 1 in the next cycle, as shown in the upper operating waveforms of FIG. , and then written to the pipeline register 2 in the next cycle, and so on, and so on.
  • data d1 written to pipeline register 0 is written to RAM 11 and then written to pipeline register preg (see FIG. 2) in the next cycle.
  • error correction is performed in the next cycle to generate data d1_c, which is written back to the pipeline register preg.
  • the data d2 following the data d1 is once written to the buffer preg_sk.
  • the corrected data d1_c is written to the pipeline register 2 one cycle later than in the normal operation.
  • data d2 stored in buffer preg_sk is moved to pipeline register 1 .
  • the pipeline operation is stalled for one cycle.
  • the master circuit 10 and the checker circuit 20 are connected by a line that transmits the SED signal asserted from the ECC error detection circuit 12 of the master circuit 10 to the checker circuit 20 .
  • a delay circuit 33 is provided on this line 32 to delay the input data by the same number of cycles.
  • the master circuit 10 and the checker circuit 20 are connected to a bypass line 34 that transmits data read from the RAM 11 of the master circuit 10 (or corrected data if the read data has an ECC error) to the checker circuit 20. connected by This line 34 also has a delay circuit 35, which delays the same number of cycles as the input data.
  • a comparison circuit 36 is provided on the bypass line 34. Data read from the RAM 11 of the master circuit 10 is input to the comparison circuit 36, and data read from the RAM 21 of the checker circuit 20 is input to the comparison circuit 36. is detected. If there is a difference, comparator circuit 36 asserts an error signal.
  • the checker circuit 20 When the checker circuit 20 performs the lockstep operation together with the master circuit 10, the checker circuit 20 performs the following processing to prevent the pipeline operations of the master circuit 10 and the checker circuit 20 from being out of sync. (i) when an ECC error occurs in the master circuit 10, the pipeline operation is stalled even when an ECC error does not occur in the checker circuit 20; (ii) Even if an ECC error occurs in the checker circuit 20, the ECC error correction is not performed and the pipeline operation is not stalled.
  • the checker circuit 20 has a first selection circuit 26 and a second selection circuit 27 .
  • the first selection circuit 26 and the second selection circuit 27 are circuits that switch outputs depending on whether or not the lockstep operation is being performed. Whether or not the lock step operation is being performed is set by a LSEN (Lock Step Enable) flag.
  • the SED signal from the master circuit 10 and the SED signal from the checker circuit 20 are input to the first selection circuit 26 .
  • the first selection circuit 26 inputs the SED signal from the master circuit 10 to the pipeline control circuit 25 during lockstep operation. As a result, the pipeline control circuit 25 stalls the pipeline operation of the checker circuit 20 in response to the occurrence of the ECC error in the master circuit 10 .
  • the first selection circuit 26 inputs the SED signal of the checker circuit 20 to the pipeline control circuit 25 during the split operation.
  • Data bypassed from the master circuit 10 and data read from the RAM 21 of the checker circuit 20 are input to the second selection circuit 27 .
  • a second selection circuit 27 inputs data from the master circuit 10 to the execution unit 24 during lockstep operation. That is, the data from the pipeline register 1 of the checker circuit 20 is replaced with the data bypassed from the master circuit 10 .
  • the execution unit 24 of the checker circuit 20 performs operations using the data bypassed from the master circuit 10 regardless of whether an ECC error has occurred, so that the pipeline operation can be executed without stalling. It is possible.
  • the checker circuit 20 only performs error detection and notification, and the timing of the pipeline operation and the input data to the execution unit 24 are the same as those of the master circuit 10 .
  • FIG. 4 is an example of a circuit diagram of a processor with a conventional lockstep mechanism.
  • a conventional processor performs failure detection by comparing the output of the master circuit 10 and the output of the checker circuit 20 using the comparison circuit 36 . Therefore, although there was no need to worry about the synchronization of pipeline operations, there was a problem that the circuit size would become large if the bit width of the output data from the master circuit 10 and the checker circuit 20 was large. rice field.
  • the processor of the present embodiment compares the output data from the pipeline register 1 instead of comparing the outputs of the master circuit 10 and the checker circuit 20, the bit width of the output data of the master circuit 10 and the checker circuit 20 is Therefore, when the bit width of the output data from the pipeline register 1 is small, the circuit reduction effect is large. In the case of a configuration having a plurality of the above configurations, that is, in the case of a lane or tile configuration, the area reduction effect is gradually increased.
  • a high fault detection rate could be obtained depending on the circuit configuration of the execution units 14 and 24 without comparing the output data of the master circuit 10 and the checker circuit 20 .
  • a configuration in which the data in the RAMs 11 and 21 are easily resupplied to the execution units 14 and 24 improves the fault detection rate.
  • Each of the master circuit 10 and the checker circuit 20 stalls the pipeline operation when an ECC error occurs because the ECC error detection circuits 12, 22 and the ECC error correction circuits 13, 23 are executed in separate pipeline stages.
  • the master circuit 10 and the checker circuit 20 can be synchronized, and both high performance and fault detection can be achieved.
  • the present disclosure is useful as a processor with a lockstep mechanism.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Detection And Correction Of Errors (AREA)
  • Hardware Redundancy (AREA)

Abstract

プロセッサは、パイプライン動作を行うマスタ回路(10)とマスタ回路(10)と同じ構成を有するチェッカ回路(20)とを備え、ロックステップ機構を有するプロセッサであって、マスタ回路(10)およびチェッカ回路(20)のそれぞれは、RAM(11,21)と、RAM(11,21)から読み出したデータを用いて演算を行い、演算結果を次のパイプラインステージに渡すと共にRAM(11,21)にも書き込む実行ユニット(14,24)とを備え、マスタ回路(10)のRAM(11)から読み出したデータとチェッカ回路(20)のRAM(21)から読み出したデータとを比較する比較回路(36)を備える。

Description

プロセッサ 関連出願の相互参照
 本出願は、2021年8月18日に出願された日本出願番号2021-133613号に基づくものであって、その優先権の利益を主張するものであり、その特許出願のすべての内容が、参照により本明細書に組み入れられる。
 本開示は、ロックステップ機構を有するプロセッサに関する。
 従来から、故障検出機構(ロックステップ)を備えた集積回路(プロセッサなど)が知られている(特許文献1~3)。ロックステップは、2個のコアに全く同じ演算を実行させ、出力を比較して集積回路の故障検出する機構である。
 求められる機能安全レベルに応じて、複数のパイプラインをロックステップ動作させたり単体で動かしたり切り替えられる実装が知られている。高い機能安全が求められる場合は、ロックステップ動作させ出力を比較することでパイプライン全体の故障を検出し、それ以外の場合は、それぞれのパイプラインを独立して使用できるようにすることで演算リソースとして活用し、性能維持と機能安全実装を両立させる。
特開2016-35626号公報 特開2019-204388号公報 特開2016-42336号公報
 発明者の詳細な検討の結果、ロックステップは高い故障検出率を獲得することができる実装であるが、ロックステップで動かすマスタ回路とチェッカ回路の出力信号の位相をずらす場合に必要となる遅延回路、出力信号の比較を行う論理回路が追加で必要であり、回路規模の増大が問題であるという課題が見出された。この問題は、マスタ回路及びチェッカ回路からの出力信号のビット幅が広い場合に顕著である。なお、出力信号の位相をずらす実装は、例えばクロックの故障のような、共通原因故障の影響を避けたい場合に採用される。
 本開示は、上記背景に鑑み、回路規模の増大に対処したプロセッサを提供することを目的とする。
 本開示は上記課題を解決するために以下の技術的手段を採用する。特許請求の範囲及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示す一例であって、本開示の技術的範囲を限定するものではない。
 本開示のプロセッサは、パイプライン動作を行う第1の回路と前記第1の回路と同じ構成を有する第2の回路とを備え、ロックステップ機構を有するプロセッサであって、前記第1の回路および前記第2の回路のそれぞれは、RAM(11,21)と、前記RAMから読み出したデータを用いて演算を行い、演算結果を次のパイプラインステージに渡すと共に前記RAMにも書き込む演算回路とを備え、前記第1の回路の前記RAMから読み出したデータと前記第2の回路の前記RAMから読み出したデータとを比較する比較回路を備える。
 このようにパイプラインの途中でデータを比較することで、故障検出のために比較するデータ量を小さくし、回路規模を小さくすることが可能である。
 本開示についての上記目的およびその他の目的、特徴や利点は、添付の図面を参照しながら下記の詳細な記述により、より明確になる。その図面は、
図1は、実施の形態のプロセッサの回路図である。 図2は、パイプラインレジスタ1の実装例を示す図である。 図3は、プロセッサの動作波形を示す図である。 図4は、従来のプロセッサの回路図である。
 以下、本開示の実施の形態に係るプロセッサについて説明する。
 本実施の形態のプロセッサは、パイプライン動作を行う第1の回路と前記第1の回と同じ構成を有する第2の回路とを備え、ロックステップ機構を有するプロセッサであって、前記第1の回路および前記第2の回路のそれぞれは、RAMと、前記RAMから読み出したデータを用いて演算を行い、演算結果を次のパイプラインステージに渡すと共に前記RAMにも書き込む演算回路とを備え、前記第1の回路の前記RAMから読み出したデータと前記第2の回路の前記RAMから読み出したデータとを比較する比較回路を備える。このようにパイプラインの途中でデータを比較することで、故障検出のために比較するデータ量を小さくし、回路規模を小さくすることが可能である。
 本実施の形態のプロセッサは、前記第1の回路および前記第2の回路のそれぞれは、前記RAMから読み出したデータの1ビットエラーを検出するエラー検出回路と、前記エラー検出回路とは異なるパイプラインステージにおいて、1ビットエラーを訂正するエラー訂正回路とを備え、前記第1の回路から前記第2の回路に1ビットエラーの検出結果を送信し、前記第2の回路は、前記第1の回路で1ビットエラーが検出された場合には、パイプライン動作をストールさせる構成を有する。
 本実施の形態のプロセッサは、1ビットエラーを検出するエラー検出回路と、検出されたエラーを訂正するエラー訂正回路とを備えている。1ビットエラーを検出する回路、訂正する回路を備えたRAMは、ECCメモリ(Error checking and correction memory)と呼ばれる。ECCメモリを用いることで、第1の回路と第2の回路を独立使用(split動作)するときに、データエラーによる故障を減らすことができる。
 本実施の形態では、1ビットエラーのエラー検出回路とエラー訂正回路のパイプラインステージが異なる。エラー検出とエラー訂正を同じパイプラインステージで実行する構成も存在するが、本実施の形態においてエラー検出とエラー訂正のパイプラインステージを分けているのは、高い周波数で動作させることで、高い演算性能を得るためである。
 本実施の形態のプロセッサは、エラー検出回路とエラー訂正回路のパイプラインステージが異なるので、1ビットエラーを訂正する際には、パイプライン動作をストールさせる必要がある。このため、第1の回路で1ビットエラーが検出されると、第1の回路のパイプライン動作がストールされることによって、第2の回路のパイプライン動作との同期ずれが起こる。その場合、パイプラインの途中で、第1の回路と第2の回路のデータを比較することができない。
 そこで、本実施の形態のプロセッサは、第1の回路から第2の回路に1ビットエラーの検出結果を送信し、第1の回路で1ビットエラーが検出された場合には、第2の回路でもパイプライン動作をストールさせ、同期ずれを防止する。
 また、本実施の形態のプロセッサは、前記第1の回路から前記第2の回路に、前記第1の回路の前記RAMからの読み出しデータ、または前記第1の回路で1ビットエラー訂正が行われた場合には訂正後の読み出しデータを送信し、前記第2の回路は、前記第1の回路から送信されたデータを用い、ロックステップ動作中は第2の回路で1ビットエラーを検出した場合であっても、当該1ビットエラーの訂正を行わない構成を有する。
 この構成により、第2の回路で1ビットエラーが検出されても、第2の回路のパイプラインをストールさせないので、第1の回路と第2の回路との同期ずれが生じない。
 本実施の形態のプロセッサにおいて、前記比較回路は、前記第1の回路から前記第2の回路にデータを送信するライン上に設けられている。この構成により、第1の回路から第2の回路へのデータ送信を行うバイパスラインを利用して比較回路にデータを入力できる。
 本実施の形態のプロセッサにおいて、前記第2の回路は、ロックステップ動作を行うかスプリット動作を行うかを切り替える選択回路を備えてもよい。これにより、第1の回路と第2の回路とを独立に動作させるスプリット動作が可能となる。
 以下、本開示の実施の形態のプロセッサについて図面を参照しながら説明する。図面を参照しながら説明する。
 図1は、実施の形態のプロセッサの回路図である。プロセッサは、マスタ回路10とチェッカ回路20とを備えている。マスタ回路10とチェッカ回路20は全く同じ回路で、入力データをパイプライン処理して出力する。マスタ回路10とチェッカ回路20は、ロックステップ動作を行う。すなわち、マスタ回路10とチェッカ回路20には同一のデータが入力され、マスタ回路10のデータとチェッカ回路20のデータとの差分を検出し、差分がある場合は故障を検出する。
 チェッカ回路20への入力データのライン30上には遅延回路31を有しており、チェッカ回路20への入力は、マスタ回路10の入力に対し(例えば、1~2サイクルの)遅延がかけられている。これはマスタ回路10とチェッカ回路20に同じタイミングで同じデータが入力されると、同じ原因(例えば、クロック信号の不具合)の影響を受けた場合に、データの比較では故障を検出できないおそれがあるからである。タイミングをずらしてデータを入力し、データを比較する際には、入力でずらしたタイミングの分だけマスタ回路10の出力を遅らせることで、共通故障原因の影響を避ける。
 マスタ回路10は、RAM11と、ECCエラー検出回路12と、ECCエラー訂正回路13と、実行ユニット14とを有している。RAM11は実行ユニット14等で用いるデータを保持する。実行ユニット14は、RAM11から読み出されたデータを使って演算を行う回路である。実行ユニット14による演算結果は、処理結果として出力される他、RAM11に書き込まれ、後にRAM11から読み出されることもある。
 ECCエラー検出回路12は、ECCエラー(1ビット/2ビットエラー)を検出する。ECCエラー検出回路12は、1ビットエラーを検出した場合、SED(Single Error Detection)信号をアサートする。
 SED信号がアサートされると、ECCエラー訂正回路13は、データをECCコードに基づいて訂正し、訂正したデータを、パイプラインレジスタ1に書き戻す。
 図2は、パイプラインレジスタ1の実装例を示す図である。パイプラインレジスタ1は、RAM11から読み出されたデータを一時的に保持しておくバッファpreg_skを有する。SED信号がアサートされていない通常動作時は、バッファpreg_skにデータがなければ、レジスタpregにRAM11から読み出したデータを格納し、バッファpreg_skにデータがあれば、RAM11から読み出したデータをバッファpreg_skに格納する。SED信号がアサートされて、訂正されたデータを書き戻す場合には、レジスタpregに訂正データを格納し、バッファpreg_skにRAM11からの読出しデータを格納する。次にデータの読出しについて説明すると、レジスタpregからデータを読み出し、レジスタpregからデータが読み出されるサイクルで、バッファpreg_skのデータをレジスタpregに移動する。
 また、SED信号がアサートされると、SED信号を受けたパイプライン制御回路15が、パイプラインレジスタ1より上流のパイプラインをストールさせる。実行ユニット14の入力データはエラーを含むので、演算をキャンセルする。また、次のサイクルでは、パイプラインレジスタ1から訂正済みのデータが実行ユニット14に送られ、実行ユニット14で演算を行う。
 ECCエラー訂正回路13は1ビットエラーを訂正する。実行ユニット14は、演算を行う回路であり、RAM11から読み出したデータを用いて演算を行い、演算結果をRAM11に書き戻す。
 また、マスタ回路10は、パイプライン動作の制御を行う構成として、パイプライン制御回路15と、3つのパイプラインレジスタ0~2を有している。パイプライン制御回路15は、パイプラインの進行・停止制御を行う。パイプラインレジスタ0~2は、パイプライン処理される制御情報やデータを保持する記憶部である。パイプラインレジスタ0は、マスタ回路10の入力とRAM11の間に設けられている。パイプラインレジスタ1はECCエラー検出回路12とECCエラー訂正回路13との間に設けられている。パイプラインレジスタ2は実行ユニット14とマスタ回路10の出力との間に設けられている。
 マスタ回路10の動作は、3つのパイプラインステージps1~ps3を有する。パイプラインステージps1はパイプラインレジスタ0のデータをRAM11に書き込む工程であり、パイプラインステージps2はRAM11からデータを読み出してECCエラー検出を行ってパイプラインレジスタ1に保存する工程であり、パイプラインステージps3はパイプラインレジスタ1のデータを読み出し、ECCデータエラーが検出された場合にはECCデータ訂正を行い、ECCデータエラーが検出されていない場合には実行ユニット14で演算を実行する工程である。
 パイプラインステージps2でECCエラーが検出されたときには、パイプラインステージps3ではECCデータ訂正を行い、訂正したデータをパイプラインレジスタ1に書き戻す。このとき、実行ユニット14による演算は実行されず、パイプライン動作がストールする。なお、パイプライン制御回路15がパイプライン動作のストールの制御を行う。
 図3は、プロセッサの通常動作時(上)とエラー訂正時(下)の動作波形を示す図である。通常動作時は、図3の上の動作波形に示すように、パイプラインレジスタ0に書き込まれたデータd0は、次のサイクルでRAM11に書き込まれ、その次のサイクルでパイプラインレジスタ1に書き込まれ、さらに次のサイクルでパイプラインレジスタ2に書き込まれるというように、サイクルごとに順次処理が行われる。
 エラー訂正時には、パイプラインレジスタ0に書き込まれたデータd1はRAM11に書き込まれ、次のサイクルでパイプラインレジスタpreg(図2参照)に書き込まれる。ここで、RAM11から読み出されたデータにECCエラーが検出されると、その次のサイクルでエラー訂正が行われてデータd1_cが生成され、パイプラインレジスタpregに書き戻される。この際に、データd1に続くデータd2は、いったんバッファpreg_skに書き込まれる。訂正がされたデータd1_cは、通常動作の場合よりも1サイクル遅れて、パイプラインレジスタ2に書き込まれる。このサイクルにおいて、バッファpreg_skに保存されていたデータd2は、パイプラインレジスタ1に移動される。以上のように、ECCエラーが検出されると、パイプライン動作は1サイクルストールすることになる。
 マスタ回路10とチェッカ回路20とは、マスタ回路10のECCエラー検出回路12からアサートされるSED信号をチェッカ回路20に送信するラインによって接続されている。このライン32上には遅延回路33を有し、入力データの遅延と同じサイクル数の遅延がかけられる。また、マスタ回路10とチェッカ回路20とは、マスタ回路10のRAM11から読み出したデータ(ただし、読み出したデータにECCエラーがあった場合は訂正後のデータ)をチェッカ回路20に送信するバイパスライン34によって接続されている。このライン34上にも遅延回路35を有しており、入力データの遅延と同じサイクル数の遅延がかけられる。
 バイパスライン34上には比較回路36が設けられており、比較回路36にはマスタ回路10のRAM11から読み出したデータが入力されると共に、チェッカ回路20のRAM21から読み出したデータが入力され、その差分が検出される。差分がある場合には、比較回路36はエラー信号をアサートする。
 次に、チェッカ回路20について説明する。チェッカ回路20は、マスタ回路10と共にロックステップ動作を行うときには、次の処理を行うことで、マスタ回路10とチェッカ回路20のパイプライン動作の同期ずれがおきないようにする。
(i)マスタ回路10でECCエラーが発生した場合にはチェッカ回路20でECCエラーが発生していない場合でもパイプライン動作をストールさせ、
(ii)チェッカ回路20でECCエラーが発生した場合でもECCエラー訂正を行わず、パイプライン動作をストールさせない。
 チェッカ回路20の基本的な構成はマスタ回路10と同じであるので、上記した動作を実現するための構成を中心に、チェッカ回路20について説明する。
 チェッカ回路20は、第1の選択回路26と第2の選択回路27を有している。第1の選択回路26と第2の選択回路27は、ロックステップ動作中であるか否かによって出力を切り替える回路である。なお、ロックステップ動作中か否かは、LSEN(Lock Step Enable)のフラグで設定する。
 第1の選択回路26には、マスタ回路10からのSED信号とチェッカ回路20のSED信号が入力される。第1の選択回路26は、ロックステップ動作中はマスタ回路10からのSED信号をパイプライン制御回路25に入力する。これにより、パイプライン制御回路25は、マスタ回路10でのECCエラーの発生を受けて、チェッカ回路20のパイプライン動作をストールさせる。第1の選択回路26は、スプリット動作中は、チェッカ回路20のSED信号をパイプライン制御回路25に入力する。
 第2の選択回路27には、マスタ回路10からバイパスされたデータとチェッカ回路20のRAM21から読み出したデータ(エラーがあった場合はエラー訂正後のデータ)が入力される。第2の選択回路27は、ロックステップ動作中はマスタ回路10からのデータを実行ユニット24に入力する。つまり、チェッカ回路20のパイプラインレジスタ1からのデータがマスタ回路10からバイパスされたデータに差し替えられる。これにより、チェッカ回路20の実行ユニット24は、ECCエラーが発生したかどうかにかかわらず、マスタ回路10からバイパスされたデータを使って演算を行うので、パイプライン動作をストールさせないで実行することが可能である。なお、チェッカ回路20側では、エラーの検出と通知のみを行い、パイプライン動作のタイミングおよび実行ユニット24への入力データはマスタ回路10と同一になる。
 図4は、従来のロックステップ機構付きのプロセッサの回路図の一例である。従来のプロセッサは、マスタ回路10の出力とチェッカ回路20の出力とを比較回路36によって比較することで故障検出を行っていた。このため、パイプライン動作の同期については気にする必要はなかったが、マスタ回路10及びチェッカ回路20からの出力データのビット幅が大きい場合には、回路規模が大きくなってしまうという問題があった。
 本実施の形態のプロセッサは、マスタ回路10およびチェッカ回路20の出力を比較するのではなく、パイプラインレジスタ1からの出力データを比較するので、マスタ回路10及びチェッカ回路20の出力データのビット幅より、パイプラインレジスタ1からの出力データのビット幅が小さい場合に回路削減効果が大きい。上記の構成を複数持つ構成、すなわちレーンやタイル構成の場合に、面積削減効果が逓増する。
 本発明者らの検証によれば、マスタ回路10とチェッカ回路20の出力データの比較を行わなくても、実行ユニット14,24の回路構成に依っては高い故障検出率を獲得できた。特に、RAM11,21のデータが実行ユニット14,24に再供給されやすい構成だと故障検出率が向上する。
 マスタ回路10およびチェッカ回路20のそれぞれは、ECCエラー検出回路12,22とECCエラー訂正回路13,23が別のパイプラインステージで実行されるため、ECCエラーが発生したときにはパイプライン動作をストールする構成であるが、本実施の形態のプロセッサではマスタ回路10とチェッカ回路20の同期をとることが可能であり、高い性能と故障検出の両立が可能になる。
 本開示は、ロックステップ機構を有するプロセッサとして有用である。

 

Claims (5)

  1.  パイプライン動作を行う第1の回路(10)と前記第1の回路と同じ構成を有する第2の回路(20)とを備え、ロックステップ機構を有するプロセッサであって、
     前記第1の回路および前記第2の回路のそれぞれは、
     RAM(11,21)と、
     前記RAMから読み出したデータを用いて演算を行い、演算結果を次のパイプラインステージに渡すと共に前記RAMにも書き込む演算回路(14,24)と、
     を備え、
     前記第1の回路の前記RAMから読み出したデータと前記第2の回路の前記RAMから読み出したデータとを比較する比較回路(36)を備えるプロセッサ。
  2.  前記第1の回路および前記第2の回路のそれぞれは、
     前記RAMから読み出したデータの1ビットエラーを検出するエラー検出回路(12,22)と、
     前記エラー検出回路とは異なるパイプラインステージにおいて、1ビットエラーを訂正するエラー訂正回路(13,23)と、
     を備え、
     前記第1の回路から前記第2の回路に1ビットエラーの検出結果を送信し、
     前記第2の回路は、前記第1の回路で1ビットエラーが検出された場合には、パイプライン動作をストールさせる請求項1に記載のプロセッサ。
  3.  前記第1の回路から前記第2の回路に、前記第1の回路の前記RAMからの読み出しデータ、または前記第1の回路で1ビットエラー訂正が行われた場合には訂正後の読み出しデータを送信し、
     前記第2の回路は、前記第1の回路から送信されたデータを用い、ロックステップ動作中は1ビットエラーを検出した場合であっても、当該1ビットエラーの訂正を行わない請求項2に記載のプロセッサ。
  4.  前記比較回路は、前記第1の回路から前記第2の回路にデータを送信するライン(34)上に設けられている請求項3に記載のプロセッサ。
  5.  前記第2の回路は、ロックステップ動作を行うかスプリット動作を行うかを切り替える選択回路(26,27)を備える請求項1から4のいずれか1項に記載のプロセッサ。

     
PCT/JP2022/030216 2021-08-18 2022-08-08 プロセッサ WO2023022035A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023542344A JPWO2023022035A1 (ja) 2021-08-18 2022-08-08

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021133613 2021-08-18
JP2021-133613 2021-08-18

Publications (1)

Publication Number Publication Date
WO2023022035A1 true WO2023022035A1 (ja) 2023-02-23

Family

ID=85240549

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/030216 WO2023022035A1 (ja) 2021-08-18 2022-08-08 プロセッサ

Country Status (2)

Country Link
JP (1) JPWO2023022035A1 (ja)
WO (1) WO2023022035A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011509490A (ja) * 2008-01-10 2011-03-24 グローバルファウンドリーズ・インコーポレイテッド 論理エラー保護のためのハイブリッド冗長性を備えたプロセッサ
JP2012073828A (ja) * 2010-09-29 2012-04-12 Nec Corp 情報処理装置、情報処理方法
JP2019095893A (ja) * 2017-11-20 2019-06-20 ルネサスエレクトロニクス株式会社 半導体装置
JP2021051733A (ja) * 2019-09-24 2021-04-01 エイアールエム リミテッド スプリット・モード及びロック・モードを有する処理クラスタにおける効率的なメモリ利用

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011509490A (ja) * 2008-01-10 2011-03-24 グローバルファウンドリーズ・インコーポレイテッド 論理エラー保護のためのハイブリッド冗長性を備えたプロセッサ
JP2012073828A (ja) * 2010-09-29 2012-04-12 Nec Corp 情報処理装置、情報処理方法
JP2019095893A (ja) * 2017-11-20 2019-06-20 ルネサスエレクトロニクス株式会社 半導体装置
JP2021051733A (ja) * 2019-09-24 2021-04-01 エイアールエム リミテッド スプリット・モード及びロック・モードを有する処理クラスタにおける効率的なメモリ利用

Also Published As

Publication number Publication date
JPWO2023022035A1 (ja) 2023-02-23

Similar Documents

Publication Publication Date Title
US8095825B2 (en) Error correction method with instruction level rollback
JPH02257219A (ja) パイプラインプロセッサ装置および方法
JP6312550B2 (ja) 半導体装置
KR20150094112A (ko) 반도체 메모리 장치 및 동작 방법
US9594648B2 (en) Controlling non-redundant execution in a redundant multithreading (RMT) processor
US20140344623A1 (en) Apparatus and method for detecting fault of processor
JP5874492B2 (ja) フォールトトレラント制御装置、フォールトトレラントシステムの制御方法
JP2003015900A (ja) 追走型多重化システム、及び追走により信頼性を高めるデータ処理方法
US20060288196A1 (en) System and method for exploiting timing variability in a processor pipeline
US8621281B2 (en) Information processing apparatus and control method
CN220983766U (zh) 用于双核锁步的周期故障检测修复电路
WO2023022035A1 (ja) プロセッサ
JPS6218057B2 (ja)
US7380165B2 (en) Assembly of electronic circuits comprising means for decontaminating error-contaminated parts
CN107423029B (zh) 计算单元
US10176031B2 (en) Arithmetic processing device and method of controlling arithmetic processing device
US10289332B2 (en) Apparatus and method for increasing resilience to faults
US8560924B2 (en) Register file soft error recovery
US8539306B2 (en) Data processing circuit and data processing method
JP5540697B2 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
US9542266B2 (en) Semiconductor integrated circuit and method of processing in semiconductor integrated circuit
US11847457B1 (en) System for error detection and correction in a multi-thread processor
JP2009238168A (ja) マイクロプロセッサ
JPH07271625A (ja) 情報処理装置
JP5362856B2 (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: 22858356

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023542344

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE