Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7782564B2 - Processor - Google Patents
[go: Go Back, main page]

JP7782564B2 - Processor - Google Patents

Processor

Info

Publication number
JP7782564B2
JP7782564B2 JP2023542344A JP2023542344A JP7782564B2 JP 7782564 B2 JP7782564 B2 JP 7782564B2 JP 2023542344 A JP2023542344 A JP 2023542344A JP 2023542344 A JP2023542344 A JP 2023542344A JP 7782564 B2 JP7782564 B2 JP 7782564B2
Authority
JP
Japan
Prior art keywords
circuit
data
pipeline
ram
processor
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.)
Active
Application number
JP2023542344A
Other languages
Japanese (ja)
Other versions
JPWO2023022035A1 (en
Inventor
直昭 大久保
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
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 filed Critical Denso Corp
Publication of JPWO2023022035A1 publication Critical patent/JPWO2023022035A1/ja
Application granted granted Critical
Publication of JP7782564B2 publication Critical patent/JP7782564B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 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/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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)

Description

関連出願の相互参照CROSS-REFERENCE TO RELATED APPLICATIONS

本出願は、2021年8月18日に出願された日本出願番号2021-133613号に基づくものであって、その優先権の利益を主張するものであり、その特許出願のすべての内容が、参照により本明細書に組み入れられる。 This application is based on and claims the benefit of priority from Japanese Application No. 2021-133613, filed on August 18, 2021, the entire contents of which are incorporated herein by reference.

本開示は、ロックステップ機構を有するプロセッサに関する。 The present disclosure relates to a processor having a lockstep mechanism.

従来から、故障検出機構(ロックステップ)を備えた集積回路(プロセッサなど)が知られている(特許文献1~3)。ロックステップは、2個のコアに全く同じ演算を実行させ、出力を比較して集積回路の故障検出する機構である。 Integrated circuits (processors, etc.) equipped with a fault detection mechanism (lockstep) have been known for some time (Patent Documents 1 to 3). Lockstep is a mechanism that causes two cores to execute identical operations and compares the outputs to detect faults in the integrated circuit.

求められる機能安全レベルに応じて、複数のパイプラインをロックステップ動作させたり単体で動かしたり切り替えられる実装が知られている。高い機能安全が求められる場合は、ロックステップ動作させ出力を比較することでパイプライン全体の故障を検出し、それ以外の場合は、それぞれのパイプラインを独立して使用できるようにすることで演算リソースとして活用し、性能維持と機能安全実装を両立させる。 Implementations are known that allow multiple pipelines to operate in lockstep or independently, switching between them depending on the required level of functional safety. When a high level of functional safety is required, failures in the entire pipeline are detected by operating them in lockstep and comparing their outputs; otherwise, each pipeline can be used independently, utilizing them as a computing resource, achieving both performance maintenance and functional safety implementation.

特開2016-35626号公報JP 2016-35626 A 特開2019-204388号公報Japanese Patent Application Laid-Open No. 2019-204388 特開2016-42336号公報JP 2016-42336 A

発明者の詳細な検討の結果、ロックステップは高い故障検出率を獲得することができる実装であるが、ロックステップで動かすマスタ回路とチェッカ回路の出力信号の位相をずらす場合に必要となる遅延回路、出力信号の比較を行う論理回路が追加で必要であり、回路規模の増大が問題であるという課題が見出された。この問題は、マスタ回路及びチェッカ回路からの出力信号のビット幅が広い場合に顕著である。なお、出力信号の位相をずらす実装は、例えばクロックの故障のような、共通原因故障の影響を避けたい場合に採用される。 After detailed consideration by the inventors, it was found that while lockstep is an implementation that can achieve a high fault detection rate, it requires additional delay circuits to shift the phase of the output signals of the master circuit and checker circuit that operate in lockstep, and logic circuits to compare the output signals, resulting in an increase in circuit size. This problem is more pronounced when the bit width of the output signals from the master circuit and checker circuit is wide. Note that implementations that shift the phase of output signals are used when it is desired to avoid the effects of common cause failures, such as clock failures.

本開示は、上記背景に鑑み、回路規模の増大に対処したプロセッサを提供することを目的とする。 In view of the above background, the present disclosure aims to provide a processor that can address increased circuit size.

本開示は上記課題を解決するために以下の技術的手段を採用する。特許請求の範囲及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示す一例であって、本開示の技術的範囲を限定するものではない。 The present disclosure employs the following technical solutions to solve the above problems. The claims and the symbols in parentheses in this section are examples that show the correspondence with the specific solutions described in the embodiments below as one aspect, and do not limit the technical scope of the present disclosure.

本開示のプロセッサは、パイプライン動作を行う第1の回路と前記第1の回路と同じ構成を有する第2の回路とを備え、ロックステップ機構を有するプロセッサであって、前記第1の回路および前記第2の回路のそれぞれは、RAM(11,21)と、前記RAMから読み出したデータを用いて演算を行い、演算結果を次のパイプラインステージに渡すと共に前記RAMにも書き込む演算回路とを備え、前記第1の回路の前記RAMから読み出したデータと前記第2の回路の前記RAMから読み出したデータとを比較する比較回路を備える。 The processor of the present disclosure is a processor having a lockstep mechanism, comprising a first circuit that performs pipeline operations and a second circuit having the same configuration as the first circuit, wherein each of the first circuit and the second circuit comprises 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 it to the RAM, and comprises a comparison circuit that compares the data read from the RAM of the first circuit with the data read from the RAM of the second circuit.

このようにパイプラインの途中でデータを比較することで、故障検出のために比較するデータ量を小さくし、回路規模を小さくすることが可能である。 By comparing data in this way midway through the pipeline, the amount of data to be compared for fault detection can be reduced, making it possible to reduce the circuit size.

本開示についての上記目的およびその他の目的、特徴や利点は、添付の図面を参照しながら下記の詳細な記述により、より明確になる。その図面は、
図1は、実施の形態のプロセッサの回路図である。 図2は、パイプラインレジスタ1の実装例を示す図である。 図3は、プロセッサの動作波形を示す図である。 図4は、従来のプロセッサの回路図である。
The above and other objects, features and advantages of the present disclosure will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which:
FIG. 1 is a circuit diagram of a processor according to an embodiment. FIG. 2 is a diagram showing an example of implementation of the pipeline register 1. FIG. 3 is a diagram showing the operating waveforms of the processor. FIG. 4 is a circuit diagram of a conventional processor.

以下、本開示の実施の形態に係るプロセッサについて説明する。
本実施の形態のプロセッサは、パイプライン動作を行う第1の回路と前記第1の回と同じ構成を有する第2の回路とを備え、ロックステップ機構を有するプロセッサであって、前記第1の回路および前記第2の回路のそれぞれは、RAMと、前記RAMから読み出したデータを用いて演算を行い、演算結果を次のパイプラインステージに渡すと共に前記RAMにも書き込む演算回路とを備え、前記第1の回路の前記RAMから読み出したデータと前記第2の回路の前記RAMから読み出したデータとを比較する比較回路を備える。このようにパイプラインの途中でデータを比較することで、故障検出のために比較するデータ量を小さくし、回路規模を小さくすることが可能である。
A processor according to an embodiment of the present disclosure will be described below.
The processor of this embodiment is a processor having a lockstep mechanism, including a first circuit that performs pipeline operation and a second circuit that has the same configuration as the first circuit, wherein each of the first circuit and the second circuit includes a RAM, an arithmetic circuit that performs an operation using data read from the RAM, passes the operation result to the next pipeline stage, and writes it to the RAM, and a comparison circuit that compares the data read from the RAM of the first circuit with the data read from the RAM of the second circuit. By comparing data in the middle of the pipeline in this way, it is possible to reduce the amount of data to be compared for fault detection and reduce the circuit size.

本実施の形態のプロセッサは、前記第1の回路および前記第2の回路のそれぞれは、前記RAMから読み出したデータの1ビットエラーを検出するエラー検出回路と、前記エラー検出回路とは異なるパイプラインステージにおいて、1ビットエラーを訂正するエラー訂正回路とを備え、前記第1の回路から前記第2の回路に1ビットエラーの検出結果を送信し、前記第2の回路は、前記第1の回路で1ビットエラーが検出された場合には、パイプライン動作をストールさせる構成を有する。 In the processor of this embodiment, the first circuit and the second circuit each include an error detection circuit that detects a 1-bit error in data read from the RAM, and an error correction circuit that corrects the 1-bit error in a pipeline stage different from the error detection circuit, and the 1-bit error detection result is transmitted from the first circuit to the second circuit, and the second circuit is configured to stall pipeline operation if a 1-bit error is detected in the first circuit.

本実施の形態のプロセッサは、1ビットエラーを検出するエラー検出回路と、検出されたエラーを訂正するエラー訂正回路とを備えている。1ビットエラーを検出する回路、訂正する回路を備えたRAMは、ECCメモリ(Error checking and correction memory)と呼ばれる。ECCメモリを用いることで、第1の回路と第2の回路を独立使用(split動作)するときに、データエラーによる故障を減らすことができる。 The processor of this embodiment is equipped with an error detection circuit that detects single-bit errors and an error correction circuit that corrects detected errors. RAM equipped with a circuit that detects and corrects single-bit errors is called ECC memory (Error checking and correction memory). Using ECC memory can reduce failures caused by data errors when the first circuit and second circuit are used independently (split operation).

本実施の形態では、1ビットエラーのエラー検出回路とエラー訂正回路のパイプラインステージが異なる。エラー検出とエラー訂正を同じパイプラインステージで実行する構成も存在するが、本実施の形態においてエラー検出とエラー訂正のパイプラインステージを分けているのは、高い周波数で動作させることで、高い演算性能を得るためである。 In this embodiment, the pipeline stages for the single-bit error detection circuit and the error correction circuit are different. While there are configurations in which error detection and error correction are performed in the same pipeline stage, the reason for separating the pipeline stages for error detection and error correction in this embodiment is to achieve high computational performance by operating at a high frequency.

本実施の形態のプロセッサは、エラー検出回路とエラー訂正回路のパイプラインステージが異なるので、1ビットエラーを訂正する際には、パイプライン動作をストールさせる必要がある。このため、第1の回路で1ビットエラーが検出されると、第1の回路のパイプライン動作がストールされることによって、第2の回路のパイプライン動作との同期ずれが起こる。その場合、パイプラインの途中で、第1の回路と第2の回路のデータを比較することができない。 In the processor of this embodiment, the error detection circuit and the error correction circuit have different pipeline stages, so when correcting a 1-bit error, the pipeline operation must be stalled. Therefore, when a 1-bit error is detected in the first circuit, the pipeline operation of the first circuit is stalled, causing a loss of synchronization with the pipeline operation of the second circuit. In this case, it is not possible to compare the data in the first and second circuits midway through the pipeline.

そこで、本実施の形態のプロセッサは、第1の回路から第2の回路に1ビットエラーの検出結果を送信し、第1の回路で1ビットエラーが検出された場合には、第2の回路でもパイプライン動作をストールさせ、同期ずれを防止する。 Therefore, the processor of this embodiment transmits the detection result of a 1-bit error from the first circuit to the second circuit, and if a 1-bit error is detected in the first circuit, it also stalls pipeline operation in the second circuit to prevent synchronization loss.

また、本実施の形態のプロセッサは、前記第1の回路から前記第2の回路に、前記第1の回路の前記RAMからの読み出しデータ、または前記第1の回路で1ビットエラー訂正が行われた場合には訂正後の読み出しデータを送信し、前記第2の回路は、前記第1の回路から送信されたデータを用い、ロックステップ動作中は第2の回路で1ビットエラーを検出した場合であっても、当該1ビットエラーの訂正を行わない構成を有する。 In addition, the processor of this embodiment transmits read data from the RAM of the first circuit, or the corrected read data if a 1-bit error has been corrected in the first circuit, from the first circuit to the second circuit, and the second circuit uses the data transmitted from the first circuit and is configured not to correct the 1-bit error even if it is detected in the second circuit during lockstep operation.

この構成により、第2の回路で1ビットエラーが検出されても、第2の回路のパイプラインをストールさせないので、第1の回路と第2の回路との同期ずれが生じない。 With this configuration, even if a one-bit error is detected in the second circuit, the pipeline of the second circuit is not stalled, so there is no synchronization loss between the first circuit and the second circuit.

本実施の形態のプロセッサにおいて、前記比較回路は、前記第1の回路から前記第2の回路にデータを送信するライン上に設けられている。この構成により、第1の回路から第2の回路へのデータ送信を行うバイパスラインを利用して比較回路にデータを入力できる。 In the processor of this embodiment, the comparison circuit is provided on a line that transmits data from the first circuit to the second circuit. This configuration allows data to be input to the comparison circuit using a bypass line that transmits data from the first circuit to the second circuit.

本実施の形態のプロセッサにおいて、前記第2の回路は、ロックステップ動作を行うかスプリット動作を行うかを切り替える選択回路を備えてもよい。これにより、第1の回路と第2の回路とを独立に動作させるスプリット動作が可能となる。 In the processor of this embodiment, the second circuit may include a selection circuit that switches between lockstep operation and split operation. This enables split operation, in which the first circuit and the second circuit operate independently.

以下、本開示の実施の形態のプロセッサについて図面を参照しながら説明する。図面を参照しながら説明する。
図1は、実施の形態のプロセッサの回路図である。プロセッサは、マスタ回路10とチェッカ回路20とを備えている。マスタ回路10とチェッカ回路20は全く同じ回路で、入力データをパイプライン処理して出力する。マスタ回路10とチェッカ回路20は、ロックステップ動作を行う。すなわち、マスタ回路10とチェッカ回路20には同一のデータが入力され、マスタ回路10のデータとチェッカ回路20のデータとの差分を検出し、差分がある場合は故障を検出する。
Hereinafter, a processor according to an embodiment of the present disclosure will be described with reference to the drawings.
1 is a circuit diagram of a processor according to an embodiment. The processor includes a master circuit 10 and a checker circuit 20. The master circuit 10 and the checker circuit 20 are identical circuits that perform pipeline processing on input data and output the data. The master circuit 10 and the checker circuit 20 operate in lockstep. That is, the same data is input to the master circuit 10 and the checker circuit 20, and a difference between the data in the master circuit 10 and the data in the checker circuit 20 is detected. If a difference exists, a fault is detected.

チェッカ回路20への入力データのライン30上には遅延回路31を有しており、チェッカ回路20への入力は、マスタ回路10の入力に対し(例えば、1~2サイクルの)遅延がかけられている。これはマスタ回路10とチェッカ回路20に同じタイミングで同じデータが入力されると、同じ原因(例えば、クロック信号の不具合)の影響を受けた場合に、データの比較では故障を検出できないおそれがあるからである。タイミングをずらしてデータを入力し、データを比較する際には、入力でずらしたタイミングの分だけマスタ回路10の出力を遅らせることで、共通故障原因の影響を避ける。 A delay circuit 31 is provided on the input data line 30 to the checker circuit 20, and the input to the checker circuit 20 is delayed (for example, by 1 to 2 cycles) relative to the input to the master circuit 10. This is because if the same data is input to the master circuit 10 and the checker circuit 20 at the same time, and they are affected by the same cause (for example, a clock signal malfunction), there is a risk that a fault cannot be detected by data comparison. When data is input with a shift in timing and compared, the effects of a common fault cause are avoided by delaying the output of the master circuit 10 by the amount of the input timing shift.

マスタ回路10は、RAM11と、ECCエラー検出回路12と、ECCエラー訂正回路13と、実行ユニット14とを有している。RAM11は実行ユニット14等で用いるデータを保持する。実行ユニット14は、RAM11から読み出されたデータを使って演算を行う回路である。実行ユニット14による演算結果は、処理結果として出力される他、RAM11に書き込まれ、後にRAM11から読み出されることもある。 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, etc. The execution unit 14 is a circuit that performs calculations using data read from the RAM 11. The calculation results by the execution unit 14 are output as processing results, or may be written to the RAM 11 and later read from the RAM 11.

ECCエラー検出回路12は、ECCエラー(1ビット/2ビットエラー)を検出する。ECCエラー検出回路12は、1ビットエラーを検出した場合、SED(Single Error Detection)信号をアサートする。 The ECC error detection circuit 12 detects ECC errors (1-bit/2-bit errors). If the ECC error detection circuit 12 detects a 1-bit error, it asserts an SED (Single Error Detection) signal.

SED信号がアサートされると、ECCエラー訂正回路13は、データをECCコードに基づいて訂正し、訂正したデータを、パイプラインレジスタ1に書き戻す。 When the SED signal is asserted, 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.

図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に移動する。 Figure 2 shows an example implementation of pipeline register 1. Pipeline register 1 has a buffer preg_sk that temporarily holds data read from RAM 11. During normal operation when the SED signal is not asserted, if there is no data in buffer preg_sk, the data read from RAM 11 is stored in register preg, and if there is data in buffer preg_sk, the data read from RAM 11 is stored in buffer preg_sk. When the SED signal is asserted and corrected data is written back, the corrected data is stored in register preg, and the data read from RAM 11 is stored in buffer preg_sk. Next, to explain data reading, data is read from register preg, and in the cycle in which data is read from register preg, the data in buffer preg_sk is moved to register preg.

また、SED信号がアサートされると、SED信号を受けたパイプライン制御回路15が、パイプラインレジスタ1より上流のパイプラインをストールさせる。実行ユニット14の入力データはエラーを含むので、演算をキャンセルする。また、次のサイクルでは、パイプラインレジスタ1から訂正済みのデータが実行ユニット14に送られ、実行ユニット14で演算を行う。 Also, when the SED signal is asserted, the pipeline control circuit 15 receives the SED signal and stalls the pipeline upstream of pipeline register 1. Since the input data to execution unit 14 contains an error, the operation is canceled. Also, in the next cycle, the corrected data is sent from pipeline register 1 to execution unit 14, which then performs the operation.

ECCエラー訂正回路13は1ビットエラーを訂正する。実行ユニット14は、演算を行う回路であり、RAM11から読み出したデータを用いて演算を行い、演算結果をRAM11に書き戻す。 The ECC error correction circuit 13 corrects single-bit errors. The execution unit 14 is a circuit that performs calculations, performs calculations using data read from RAM 11, and writes the calculation results back to RAM 11.

また、マスタ回路10は、パイプライン動作の制御を行う構成として、パイプライン制御回路15と、3つのパイプラインレジスタ0~2を有している。パイプライン制御回路15は、パイプラインの進行・停止制御を行う。パイプラインレジスタ0~2は、パイプライン処理される制御情報やデータを保持する記憶部である。パイプラインレジスタ0は、マスタ回路10の入力とRAM11の間に設けられている。パイプラインレジスタ1はECCエラー検出回路12とECCエラー訂正回路13との間に設けられている。パイプラインレジスタ2は実行ユニット14とマスタ回路10の出力との間に設けられている。 The master circuit 10 also has a pipeline control circuit 15 and three pipeline registers 0 to 2, which are configured to control pipeline operation. The pipeline control circuit 15 controls the progression and stopping of the pipeline. Pipeline registers 0 to 2 are storage units that hold control information and data to be pipeline processed. Pipeline register 0 is located between the input of the master circuit 10 and RAM 11. Pipeline register 1 is located between the ECC error detection circuit 12 and the ECC error correction circuit 13. Pipeline register 2 is located between the execution unit 14 and the output of the master circuit 10.

マスタ回路10の動作は、3つのパイプラインステージps1~ps3を有する。パイプラインステージps1はパイプラインレジスタ0のデータをRAM11に書き込む工程であり、パイプラインステージps2はRAM11からデータを読み出してECCエラー検出を行ってパイプラインレジスタ1に保存する工程であり、パイプラインステージps3はパイプラインレジスタ1のデータを読み出し、ECCデータエラーが検出された場合にはECCデータ訂正を行い、ECCデータエラーが検出されていない場合には実行ユニット14で演算を実行する工程である。 The operation of the master circuit 10 has three pipeline stages ps1 to ps3. Pipeline stage ps1 is a process for writing data from pipeline register 0 to RAM 11. Pipeline stage ps2 is a process for reading data from RAM 11, performing ECC error detection, and storing the data in pipeline register 1. Pipeline stage ps3 is a process for reading data from pipeline register 1, performing ECC data correction if an ECC data error is detected, and executing an operation in the execution unit 14 if no ECC data error is detected.

パイプラインステージps2でECCエラーが検出されたときには、パイプラインステージps3ではECCデータ訂正を行い、訂正したデータをパイプラインレジスタ1に書き戻す。このとき、実行ユニット14による演算は実行されず、パイプライン動作がストールする。なお、パイプライン制御回路15がパイプライン動作のストールの制御を行う。 When an ECC error is detected in pipeline stage ps2, pipeline stage ps3 corrects the ECC data and writes the corrected data back to pipeline register 1. At this time, the execution unit 14 does not execute the operation, and the pipeline operation stalls. The pipeline control circuit 15 controls the stall of the pipeline operation.

図3は、プロセッサの通常動作時(上)とエラー訂正時(下)の動作波形を示す図である。通常動作時は、図3の上の動作波形に示すように、パイプラインレジスタ0に書き込まれたデータd0は、次のサイクルでRAM11に書き込まれ、その次のサイクルでパイプラインレジスタ1に書き込まれ、さらに次のサイクルでパイプラインレジスタ2に書き込まれるというように、サイクルごとに順次処理が行われる。 Figure 3 shows the operating waveforms of the processor during normal operation (top) and error correction (bottom). During normal operation, as shown in the upper operating waveform of Figure 3, data d0 written to pipeline register 0 is written to RAM 11 in the next cycle, then written to pipeline register 1 in the following cycle, and then written to pipeline register 2 in the following cycle, with processing occurring sequentially in each cycle.

エラー訂正時には、パイプラインレジスタ0に書き込まれたデータd1はRAM11に書き込まれ、次のサイクルでパイプラインレジスタpreg(図2参照)に書き込まれる。ここで、RAM11から読み出されたデータにECCエラーが検出されると、その次のサイクルでエラー訂正が行われてデータd1_cが生成され、パイプラインレジスタpregに書き戻される。この際に、データd1に続くデータd2は、いったんバッファpreg_skに書き込まれる。訂正がされたデータd1_cは、通常動作の場合よりも1サイクル遅れて、パイプラインレジスタ2に書き込まれる。このサイクルにおいて、バッファpreg_skに保存されていたデータd2は、パイプラインレジスタ1に移動される。以上のように、ECCエラーが検出されると、パイプライン動作は1サイクルストールすることになる。 When correcting an error, data d1 written to pipeline register 0 is written to RAM 11 and then written to pipeline register preg (see Figure 2) in the next cycle. If an ECC error is detected in the data read from RAM 11, error correction is performed in the next cycle to generate data d1_c, which is then written back to pipeline register preg. At this time, data d2 following data d1 is first written to buffer preg_sk. The corrected data d1_c is written to pipeline register 2 one cycle later than in normal operation. In this cycle, data d2 stored in buffer preg_sk is moved to pipeline register 1. As described above, when an ECC error is detected, pipeline operation stalls for one cycle.

マスタ回路10とチェッカ回路20とは、マスタ回路10のECCエラー検出回路12からアサートされるSED信号をチェッカ回路20に送信するラインによって接続されている。このライン32上には遅延回路33を有し、入力データの遅延と同じサイクル数の遅延がかけられる。また、マスタ回路10とチェッカ回路20とは、マスタ回路10のRAM11から読み出したデータ(ただし、読み出したデータにECCエラーがあった場合は訂正後のデータ)をチェッカ回路20に送信するバイパスライン34によって接続されている。このライン34上にも遅延回路35を有しており、入力データの遅延と同じサイクル数の遅延がかけられる。 The master circuit 10 and 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, which applies a delay of the same number of cycles as the delay of the input data. The master circuit 10 and checker circuit 20 are also connected by a bypass line 34 that transmits data read from the RAM 11 of the master circuit 10 (or the corrected data if the read data contains an ECC error) to the checker circuit 20. A delay circuit 35 is also provided on this line 34, which applies a delay of the same number of cycles as the delay of the input data.

バイパスライン34上には比較回路36が設けられており、比較回路36にはマスタ回路10のRAM11から読み出したデータが入力されると共に、チェッカ回路20のRAM21から読み出したデータが入力され、その差分が検出される。差分がある場合には、比較回路36はエラー信号をアサートする。 A comparison circuit 36 is provided on the bypass line 34. The comparison circuit 36 receives data read from RAM 11 of the master circuit 10 and data read from RAM 21 of the checker circuit 20, and detects the difference between them. If a difference exists, the comparison circuit 36 asserts an error signal.

次に、チェッカ回路20について説明する。チェッカ回路20は、マスタ回路10と共にロックステップ動作を行うときには、次の処理を行うことで、マスタ回路10とチェッカ回路20のパイプライン動作の同期ずれがおきないようにする。
(i)マスタ回路10でECCエラーが発生した場合にはチェッカ回路20でECCエラーが発生していない場合でもパイプライン動作をストールさせ、
(ii)チェッカ回路20でECCエラーが発生した場合でもECCエラー訂正を行わず、パイプライン動作をストールさせない。
Next, we will explain the checker circuit 20. When the checker circuit 20 performs lockstep operation together with the master circuit 10, it performs the following processing to prevent the pipeline operations of the master circuit 10 and the checker circuit 20 from becoming out of synchronization.
(i) If an ECC error occurs in the master circuit 10, the pipeline operation is stalled even if 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.

チェッカ回路20の基本的な構成はマスタ回路10と同じであるので、上記した動作を実現するための構成を中心に、チェッカ回路20について説明する。
チェッカ回路20は、第1の選択回路26と第2の選択回路27を有している。第1の選択回路26と第2の選択回路27は、ロックステップ動作中であるか否かによって出力を切り替える回路である。なお、ロックステップ動作中か否かは、LSEN(Lock Step Enable)のフラグで設定する。
The basic configuration of the checker circuit 20 is the same as that of the master circuit 10, so the checker circuit 20 will be described, focusing on the configuration for realizing the above-mentioned operations.
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 lock-step operation is in progress. Whether or not lock-step operation is in progress is set by an LSEN (Lock Step Enable) flag.

第1の選択回路26には、マスタ回路10からのSED信号とチェッカ回路20のSED信号が入力される。第1の選択回路26は、ロックステップ動作中はマスタ回路10からのSED信号をパイプライン制御回路25に入力する。これにより、パイプライン制御回路25は、マスタ回路10でのECCエラーの発生を受けて、チェッカ回路20のパイプライン動作をストールさせる。第1の選択回路26は、スプリット動作中は、チェッカ回路20のSED信号をパイプライン制御回路25に入力する。 The first selection circuit 26 receives the SED signal from the master circuit 10 and the SED signal from the checker circuit 20. During lockstep operation, the first selection circuit 26 inputs the SED signal from the master circuit 10 to the pipeline control circuit 25. This causes the pipeline control circuit 25 to stall the pipeline operation of the checker circuit 20 in response to the occurrence of an ECC error in the master circuit 10. During split operation, the first selection circuit 26 inputs the SED signal from the checker circuit 20 to the pipeline control circuit 25.

第2の選択回路27には、マスタ回路10からバイパスされたデータとチェッカ回路20のRAM21から読み出したデータ(エラーがあった場合はエラー訂正後のデータ)が入力される。第2の選択回路27は、ロックステップ動作中はマスタ回路10からのデータを実行ユニット24に入力する。つまり、チェッカ回路20のパイプラインレジスタ1からのデータがマスタ回路10からバイパスされたデータに差し替えられる。これにより、チェッカ回路20の実行ユニット24は、ECCエラーが発生したかどうかにかかわらず、マスタ回路10からバイパスされたデータを使って演算を行うので、パイプライン動作をストールさせないで実行することが可能である。なお、チェッカ回路20側では、エラーの検出と通知のみを行い、パイプライン動作のタイミングおよび実行ユニット24への入力データはマスタ回路10と同一になる。 The second selection circuit 27 receives data bypassed from the master circuit 10 and data read from the RAM 21 of the checker circuit 20 (the data after error correction if an error occurred). During lockstep operation, the second selection circuit 27 inputs data from the master circuit 10 to the execution unit 24. In other words, data from the pipeline register 1 of the checker circuit 20 is replaced with data bypassed from the master circuit 10. As a result, the execution unit 24 of the checker circuit 20 performs calculations using the data bypassed from the master circuit 10, regardless of whether an ECC error has occurred, allowing pipeline operation to be performed without stalling. Note that the checker circuit 20 only detects and notifies errors, and the timing of pipeline operation and the input data to the execution unit 24 are the same as those of the master circuit 10.

図4は、従来のロックステップ機構付きのプロセッサの回路図の一例である。従来のプロセッサは、マスタ回路10の出力とチェッカ回路20の出力とを比較回路36によって比較することで故障検出を行っていた。このため、パイプライン動作の同期については気にする必要はなかったが、マスタ回路10及びチェッカ回路20からの出力データのビット幅が大きい場合には、回路規模が大きくなってしまうという問題があった。 Figure 4 is an example circuit diagram of a conventional processor with a lockstep mechanism. Conventional processors detect faults by comparing the output of the master circuit 10 with the output of the checker circuit 20 using a comparison circuit 36. This meant there was no need to worry about synchronization of pipeline operations, but there was a problem in that the circuit size became large when the bit width of the output data from the master circuit 10 and checker circuit 20 was large.

本実施の形態のプロセッサは、マスタ回路10およびチェッカ回路20の出力を比較するのではなく、パイプラインレジスタ1からの出力データを比較するので、マスタ回路10及びチェッカ回路20の出力データのビット幅より、パイプラインレジスタ1からの出力データのビット幅が小さい場合に回路削減効果が大きい。上記の構成を複数持つ構成、すなわちレーンやタイル構成の場合に、面積削減効果が逓増する。 The processor of this embodiment does not compare the outputs of the master circuit 10 and the checker circuit 20, but rather compares the output data from the pipeline register 1. Therefore, the circuit reduction effect is greater when the bit width of the output data from the pipeline register 1 is smaller than the bit width of the output data from the master circuit 10 and the checker circuit 20. The area reduction effect increases in configurations with multiple of the above configurations, i.e., in lane or tile configurations.

本発明者らの検証によれば、マスタ回路10とチェッカ回路20の出力データの比較を行わなくても、実行ユニット14,24の回路構成に依っては高い故障検出率を獲得できた。特に、RAM11,21のデータが実行ユニット14,24に再供給されやすい構成だと故障検出率が向上する。According to the inventors' verification, a high fault detection rate can be achieved depending on the circuit configuration of the execution units 14 and 24, even without comparing the output data of the master circuit 10 and the checker circuit 20. In particular, the fault detection rate improves when the configuration makes it easy for data from RAMs 11 and 21 to be resupplied to the execution units 14 and 24.

マスタ回路10およびチェッカ回路20のそれぞれは、ECCエラー検出回路12,22とECCエラー訂正回路13,23が別のパイプラインステージで実行されるため、ECCエラーが発生したときにはパイプライン動作をストールする構成であるが、本実施の形態のプロセッサではマスタ回路10とチェッカ回路20の同期をとることが可能であり、高い性能と故障検出の両立が可能になる。 The master circuit 10 and checker circuit 20 are configured to stall pipeline operation when an ECC error occurs because the ECC error detection circuits 12, 22 and ECC error correction circuits 13, 23 are executed in separate pipeline stages. However, in the processor of this embodiment, it is possible to synchronize the master circuit 10 and checker circuit 20, enabling both high performance and fault detection to be achieved.

本開示は、ロックステップ機構を有するプロセッサとして有用である。

The present disclosure is useful as a processor having a lockstep mechanism.

Claims (5)

パイプライン動作を行う第1の回路(10)と前記第1の回路と同じ構成を有する第2の回路(20)とを備え、ロックステップ機構を有するプロセッサであって、
前記第1の回路および前記第2の回路のそれぞれは、
一のパイプラインステージにあるRAM(11,21)と、
前記RAMから読み出したデータを用いて演算を行い、演算結果を処理結果として出力すると共に前記RAMにも書き込む、前記一のパイプラインステージとは別のパイプラインステージにある演算回路(14,24)と、
を備え、
前記第1の回路の前記RAMから読み出したデータと前記第2の回路の前記RAMから読み出したデータとを比較する比較回路(36)を備えるプロセッサ。
A processor having a lockstep mechanism, comprising a first circuit (10) that performs a pipeline operation and a second circuit (20) that has the same configuration as the first circuit,
Each of the first circuit and the second circuit comprises:
RAM (11, 21) in one pipeline stage ;
an arithmetic circuit (14, 24) in a pipeline stage other than the one pipeline stage, which performs an arithmetic operation using data read from the RAM, outputs the arithmetic operation result as a processing result , and also writes the result into the RAM;
Equipped with
A processor comprising a comparison circuit (36) for comparing data read from the RAM of the first circuit with data read from the RAM of the second circuit.
前記第1の回路および前記第2の回路のそれぞれは、
前記RAMから読み出したデータの1ビットエラーを検出するエラー検出回路(12,22)と、
前記エラー検出回路とは異なるパイプラインステージにおいて、1ビットエラーを訂正するエラー訂正回路(13,23)と、
を備え、
前記第1の回路から前記第2の回路に1ビットエラーの検出結果を送信し、
前記第2の回路は、前記第1の回路で1ビットエラーが検出された場合には、パイプライン動作をストールさせる請求項1に記載のプロセッサ。
Each of the first circuit and the second circuit comprises:
an error detection circuit (12, 22) for detecting a single-bit error in data read from the RAM;
an error correction circuit (13, 23) for correcting a single-bit error in a pipeline stage different from the error detection circuit;
Equipped with
transmitting a detection result of a single bit error from the first circuit to the second circuit;
2. The processor according to claim 1, wherein the second circuit stalls a pipeline operation when a one-bit error is detected in the first circuit.
前記第1の回路から前記第2の回路に、前記第1の回路の前記RAMからの読み出しデータ、または前記第1の回路で1ビットエラー訂正が行われた場合には訂正後の読み出しデータを送信し、
前記第2の回路は、前記第1の回路から送信されたデータを用い、ロックステップ動作中は1ビットエラーを検出した場合であっても、当該1ビットエラーの訂正を行わない請求項2に記載のプロセッサ。
transmitting, from the first circuit to the second circuit, read data from the RAM of the first circuit, or, if one-bit error correction has been performed in the first circuit, corrected read data;
3. The processor of claim 2, wherein the second circuit uses data transmitted from the first circuit and does not correct a single-bit error even if the single-bit error is detected during lockstep operation.
前記比較回路は、前記第1の回路から前記第2の回路にデータを送信するライン(34)上に設けられている請求項3に記載のプロセッサ。 The processor of claim 3, wherein the comparison circuit is provided on a line (34) that transmits data from the first circuit to the second circuit. 前記第2の回路は、ロックステップ動作を行うかスプリット動作を行うかを切り替える選択回路(26,27)を備える請求項1から4のいずれか1項に記載のプロセッサ。
The processor according to any one of claims 1 to 4, wherein the second circuit includes a selection circuit (26, 27) for switching between lockstep operation and split operation.
JP2023542344A 2021-08-18 2022-08-08 Processor Active JP7782564B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2021133613 2021-08-18
JP2021133613 2021-08-18
PCT/JP2022/030216 WO2023022035A1 (en) 2021-08-18 2022-08-08 Processor

Publications (2)

Publication Number Publication Date
JPWO2023022035A1 JPWO2023022035A1 (en) 2023-02-23
JP7782564B2 true JP7782564B2 (en) 2025-12-09

Family

ID=85240549

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023542344A Active JP7782564B2 (en) 2021-08-18 2022-08-08 Processor

Country Status (2)

Country Link
JP (1) JP7782564B2 (en)
WO (1) WO2023022035A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011509490A (en) 2008-01-10 2011-03-24 グローバルファウンドリーズ・インコーポレイテッド Processor with hybrid redundancy for logic error protection
JP2019095893A (en) 2017-11-20 2019-06-20 ルネサスエレクトロニクス株式会社 Semiconductor device
JP2021051733A (en) 2019-09-24 2021-04-01 エイアールエム リミテッド Efficient memory utilization in processing cluster having split mode and lock mode

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59218556A (en) * 1983-05-27 1984-12-08 Fujitsu Ltd Microprogram controlling system
JP2012073828A (en) * 2010-09-29 2012-04-12 Nec Corp Information processor and information processing method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011509490A (en) 2008-01-10 2011-03-24 グローバルファウンドリーズ・インコーポレイテッド Processor with hybrid redundancy for logic error protection
JP2019095893A (en) 2017-11-20 2019-06-20 ルネサスエレクトロニクス株式会社 Semiconductor device
JP2021051733A (en) 2019-09-24 2021-04-01 エイアールエム リミテッド Efficient memory utilization in processing cluster having split mode and lock mode

Also Published As

Publication number Publication date
JPWO2023022035A1 (en) 2023-02-23
WO2023022035A1 (en) 2023-02-23

Similar Documents

Publication Publication Date Title
US8095825B2 (en) Error correction method with instruction level rollback
EP0355286B1 (en) Checkpoint retry mechanism
CN104035843B (en) For improving the system and method for lock-step core availability
US20060190702A1 (en) Device and method for correcting errors in a processor having two execution units
EP2642392B1 (en) Semiconductor integrated circuit device and system using the same
JP6312550B2 (en) Semiconductor device
US10817369B2 (en) Apparatus and method for increasing resilience to faults
JP5874492B2 (en) Fault tolerant control device and control method of fault tolerant system
US9594648B2 (en) Controlling non-redundant execution in a redundant multithreading (RMT) processor
US10176031B2 (en) Arithmetic processing device and method of controlling arithmetic processing device
JP2013105491A (en) Method of providing high integrity processing
US10289332B2 (en) Apparatus and method for increasing resilience to faults
JP7782564B2 (en) Processor
JPS6218057B2 (en)
US7380165B2 (en) Assembly of electronic circuits comprising means for decontaminating error-contaminated parts
US6125443A (en) Interrupt processing system and method for information processing system of pipeline control type
CN107423029B (en) Calculation unit
US11720436B1 (en) System for error detection and correction in a multi-thread processor
US9542266B2 (en) Semiconductor integrated circuit and method of processing in semiconductor integrated circuit
JP5540697B2 (en) Arithmetic processing device, information processing device, and control method of arithmetic processing device
US20230409329A1 (en) System for error detection and correction in a multi-thread processor
CN100392608C (en) Error notification method and information processing device
JP3240660B2 (en) Data processing device
JP7596638B2 (en) Processor and error detection method - Patents.com
CN116700799A (en) A Soft Fault Tolerance Design Method Using Pipeline Bubbles to Realize Instruction Level Redundancy

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240201

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20240201

AA64 Notification of invalidation of claim of internal priority (with term)

Free format text: JAPANESE INTERMEDIATE CODE: A241764

Effective date: 20240423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250929

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20251028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251110

R150 Certificate of patent or registration of utility model

Ref document number: 7782564

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150