JP2021144426A - プロセッサ及びエラー検出方法 - Google Patents

プロセッサ及びエラー検出方法 Download PDF

Info

Publication number
JP2021144426A
JP2021144426A JP2020042171A JP2020042171A JP2021144426A JP 2021144426 A JP2021144426 A JP 2021144426A JP 2020042171 A JP2020042171 A JP 2020042171A JP 2020042171 A JP2020042171 A JP 2020042171A JP 2021144426 A JP2021144426 A JP 2021144426A
Authority
JP
Japan
Prior art keywords
processing
error
control circuit
pipeline control
error detection
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.)
Pending
Application number
JP2020042171A
Other languages
English (en)
Inventor
靖 沈
Yasushi Chin
靖 沈
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
Priority to JP2020042171A priority Critical patent/JP2021144426A/ja
Publication of JP2021144426A publication Critical patent/JP2021144426A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

【課題】プロセッサに生じるエラーの検出をより簡易な構成でより適切に行うことができる、プロセッサ及びエラー検出方法を提供する。【解決手段】プロセッサは、入力された命令に応じた処理を行うパイプライン制御回路と、パイプライン制御回路のエラーを検出するECC回路と、を備える、ECC回路は、パイプライン制御回路が実行する処理に応じて、パイプライン制御回路に対するエラー検出の実行と不実行とを切り替える。ECC回路によるエラー検出の実行と不実行との切り替えは、パイプライン制御回路に実行させる処理を示す命令コード毎に定義される。【選択図】図3

Description

本発明は、プロセッサ及びエラー検出方法に関する。
メモリを搭載しているプロセッサにおいて、特許文献1に開示されているように、メモリの異常を検出する誤り検出訂正(ECC:Error Checking and Correcting)が広く行われている。
例えば、特許文献1には、CPU及びメモリを備える演算ユニットと、メモリの異常を検出するECCであるメモリ異常検出部と、を備える電子制御装置が開示されている。このメモリとメモリ異常検出部とは、バスを介してデータをやり取りしており、CPUによるメモリへのデータの読み出し及び書き込みは、メモリ異常検出部11Eを介して実行される。
特開2018−10362号公報
ここで、図6は、メモリ112からの命令に応じた処理をパイプライン制御回路114が行うプロセッサ100である。従来では、図6に示されるように、メモリ112とパイプライン制御回路114との間にECC回路116が配置され、ECC回路116はメモリ112に存在する故障(ECCエラー)を検出する。一方、パイプライン制御回路114の故障は、二重化されたパイプライン制御回路114からの出力を比較器120で比較することで検出される。
しかしながら、このような従来の構成では、パイプライン制御回路114を二重化するため、回路規模が増加する。また、従来の構成では、ECC回路116によってメモリ112のエラー検出を行った後にパイプライン制御回路114に対するエラー検出処理を行うため、パイプライン制御回路114における処理のタイミングが悪くなる場合がある。さらに、速い処理速度を要求される処理に対してエラー検出を行うと要求される処理速度を満たさない可能性もある。
本発明は上記背景に鑑み、プロセッサに生じるエラーの検出をより簡易な構成でより適切に行うことができる、プロセッサ及びエラー検出方法を提供することを目的とする。
本発明は上記課題を解決するために以下の技術的手段を採用する。特許請求の範囲及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示す一例であって、本発明の技術的範囲を限定するものではない。
本発明の一態様のプロセッサ(10)は、入力された命令に応じた処理を行う処理手段(14)と、前記処理手段のエラーを検出するエラー検出手段(16)と、を備え、前記エラー検出手段は、前記処理手段が実行する処理に応じて、前記処理手段に対するエラー検出の実行と不実行とが切り替えられ、前記エラー検出手段によるエラー検出の実行と不実行との切り替えは、前記処理手段に実行させる処理を示す命令毎に定義される。
本発明によれば、プロセッサに生じるエラーの検出をより簡易な構成でより適切に行うことができる。
第1実施形態のプロセッサの概略構成図である。 第1実施形態のパイプライン制御回路の命令コードを示す模式図である。 第1実施形態のプロセッサで実行される命令処理の流れを示すフローチャートである。 第2実施形態のプロセッサの概略構成図である。 第2実施形態のプロセッサで実行される命令処理の流れを示すフローチャートである。 従来のECC回路が備えられるプロセッサの概略構成図である。
以下、図面を参照して本発明の実施形態を説明する。なお、以下に説明する実施形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施形態に応じた具体的構成が適宜採用されてよい。
(第1実施形態)
図1は、本実施形態のプロセッサ10の概略構成図である。本実施形態のプロセッサ10は、メモリ12、パイプライン制御回路14、ECC回路16、及びレジスタ18を備える。また、本実施形態のプロセッサ10は、命令セットアーキテクチャの一例として、RISC−Vが適用される。
メモリ12には、データやECCコード等が記憶されており、これらは読み出されてパイプライン制御回路14による処理で用いられ、その処理結果がレジスタ18に記憶される。
パイプライン制御回路14は、入力された命令(以下「命令コード」ともいう。)に応じた処理(タスク)を行う処理手段の一例である。本実施形態のパイプライン制御回路14は、処理要素である命令実行ユニットが直列に連結され、先の命令実行ユニットの出力を次の命令実行ユニットの入力とすることで、複数の命令実行ユニットが並列処理を行う。
図1では、命令実行ユニットとして、命令フェッチ14A、命令デコーダ14B、ALU(Arithmetic Logic Unit)14Cを備えるが、これは一例であり、パイプライン制御回路14には、加算や減算、乗算等を行うための他の命令実行ユニットも備えられている。
ECC回路16は、パイプライン制御回路14の後段に設けられるハードウェアであり、パイプライン制御回路14及びメモリ12の何れかに発生したエラーを検出する。本実施形態のECC回路16は、パイプライン制御回路14が実行する処理に応じて、パイプライン制御回路14に対するエラー検出の実行と不実行とが切り替えられる。
本実施形態のECC回路16によるエラー検出の実行と不実行との切り替えは、パイプライン制御回路14に実行させる処理を示す命令コード毎に定義される。図2は、本実施形態の命令コードの一例を示す模式図である。
図2に示される命令コードは、メモリ12の“rs1+imm”番地の内容(データ)をレジスタ18にロードするための命令(Memrory[rs1+imm] → rd)であり、通常命令コードとECC付き命令コードとを示している。
通常命令コードとECC付き命令コードとは、図2に示されるように、一例として、下線部分が異なっている。そして、この異なる部分が、パイプライン制御回路14に対するエラー検出の実行と不実行とを定義する部分であり、本実施形態ではRISC−Vにおける命令セットの拡張用フィールド(Custom-0 Field)によって定義される。すなわち、ECC付き命令コードとは、パイプライン制御回路14への処理命令と共に、ECC回路16によるエラー検出の実行命令も含んでいる。これにより、エラー検出の実行と不実行との切り替え指示がより簡略化される。
このように本実施形態のECC回路16は、命令コードがECC付き命令コードである場合に有効となる一方、命令コードが通常命令コードである場合は無効となり、パイプライン制御回路14に対するエラー検出の実行と不実行とが切り替えられる。
なお、エラー検出を必要とする命令コードは、機能安全を要求される処理を行うためのものである一方、エラー検出を必要としない命令コードは、例えば、機能安全よりも処理速度を要求される処理を行うためのものである。このように、命令コードをECC付きとするか通常とするかは、パイプライン制御回路14が実行する処理内容によって異なるものとされる。従って、本実施形態のプロセッサ10は、処理内容に応じてエラー検出を適切に行える。
また、ECC回路16は、パイプライン制御回路14の後段に備えられるため、メモリ12にエラーが生じた場合であっても、パイプライン制御回路14にエラーが生じた場合であっても、当該エラーの検出が可能である。このため、メモリ12とパイプライン制御回路14との間にECC回路16を設け、パイプライン制御回路14を二重化する場合に比べて、プロセッサ10の回路規模を小さくできる。
図3は、本実施形態のプロセッサ10で実行される命令処理の流れを示すフローチャートである。
まず、ステップS100では、メモリ12から命令コードがパイプライン制御回路14に出力される。
次のステップS102では、パイプライン制御回路14が命令コードに基づく処理を実行する。パイプライン制御回路14による処理が終了すると、命令コード及びパイプライン制御回路14による処理結果がパイプライン制御回路14を経てECC回路16に入力される。
そして、次のステップS106では、入力された命令コードがECC付き命令コードであるか否かをECC回路16が判定し、肯定判定の場合はステップS106へ移行する。一方で、否定判定の場合は、ECC回路16によるエラー検出が行われることなく、パイプライン制御回路14による処理結果がレジスタ18に記憶され、本命令処理は終了する。
ステップS106では、パイプライン制御回路14の処理結果に基づいてECC回路16がエラー検出を行い、そのエラー検出結果を出力して本命令処理を終了する。なお、ECC回路16は、エラーを検出した場合にのみエラー信号を出力する一方、エラーを検出しなかった場合には何ら信号を出力しなくてもよい。
以上説明したように、本実施形態のプロセッサ10は、パイプライン制御回路14への命令にECC回路16によるエラー検出の実行命令が含まれている場合、ECC回路16は、パイプライン制御回路14による処理が終了した後にパイプライン制御回路14に対するエラー検出を実行する。
すなわち、パイプライン制御回路14が実行する処理内容によっては、パイプライン制御回路14に対するエラー検出を不要又はエラー検出の実行が好ましくない場合がある。このようなことを想定して、本実施形態のプロセッサ10は、パイプライン制御回路14が実行する処理に応じてECC回路16の有効、無効を切り替えるので、より簡易な構成でより適切に行うことができる。
(第2実施形態)
以下、本発明の第2実施形態について説明する。
図4は、本第2実施形態に係るプロセッサ10の構成を示す。なお、図4における図1と同一の構成部分については図1と同一の符号を付して、その説明を省略する。
本実施形態のプロセッサ10は、パイプライン制御回路14で行われた複数の同じ処理の結果を比較する比較部20を備える。すなわち、比較部20は、パイプライン制御回路14に生じたエラーを検出するエラー検出手段として機能する。なお、本実施形態の比較部20は、一例として、ソフトウェア処理により実行されるものである。
本実施形態のプロセッサ10は、命令コードがECC付き命令コードである場合に、パイプライン制御回路14が命令コードに基づいて同じ処理を複数回行い、その処理結果を比較部20が比較する。そして、複数の処理結果が同じ場合には、エラーは生じておらず、複数の処理結果が異なる場合にエラーが生じているとしてエラー信号を出力する。
図5は、本実施形態のプロセッサ10で実行される命令処理の流れを示すフローチャートである。
まず、ステップ200では、メモリ12から命令コードがパイプライン制御回路14に出力される。
次のステップ202では、命令コードがECC付き命令コードであるか否かが判定され、肯定判定の場合はステップ208へ移行し、否定判定の場合はステップ206へ移行する。
ステップ206では、パイプライン制御回路14が命令コードに基づく処理を実行し、処理結果はレジスタ18に記憶され、本命令処理は終了する。すなわち、ステップ202で否定判定となった場合には、エラー検出は行われない。
一方、ステップ202で肯定判定となった場合に移行するステップ208では、パイプライン制御回路14が命令コードに基づく1回目の処理を行う。この1回目の処理結果は、比較部20に出力される。
次のステップ210では、パイプライン制御回路14が命令コードに基づく2回目の処理を行い、2回目の処理結果も比較部20に出力される。
次のステップ212では、1回目の処理結果と2回目の処理結果とを比較部20が比較し、本命令処理は終了する。なお、比較部20による比較結果が異なる場合は、パイプライン制御回路14にエラーが生じているとして、比較部20はエラー信号を出力する。一方、比較部20による比較結果が同じ場合は、パイプライン制御回路14にエラーが生じていないので、比較部20は信号を出力しない、又はエラーが生じていないことを示す信号を出力する。
なお、本実施形態では、パイプライン制御回路14で同じ処理を2回行った結果を比較することで、エラーの有無を検出する形態について説明したが、本実施形態はこれに限定されない。
例えば、ECC付き命令コードに基づく処理をパイプライン制御回路14が備える他の命令実行ユニットでも実行し、その実行結果を比較部20が比較することでエラー検出を行ってもよい。例えば、パイプライン制御回路14が命令実行ユニットとして複数の加算器や減算器、乗算器等を備えている場合がある。このような場合、同じ演算命令を異なる加算器や減算器、乗算器等を用いて複数回行い、複数回の演算結果を比較部20が比較する。これにより、演算を行った命令実行ユニットの何れかにエラー(故障)が生じていた場合には比較結果が異なるので、比較部20からエラー信号が出力される。
また、この他にも、ECC付き命令コードに基づくパイプライン制御回路14への入力内容や処理結果を反転したデータをバッファに記憶させ、バッファに記憶させたデータに基づいて再びパイプライン制御回路14が処理を実行し、この処理結果とバッファに記憶したデータとを比較部20が比較することでエラー検出が行われてもよい。
以上、本発明を、上記実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更又は改良を加えることができ、該変更又は改良を加えた形態も本発明の技術的範囲に含まれる。また、上記第1実施形態と第2実施形態とが組み合わされてもよい。
上記実施形態では、プロセッサ10のアーキテクチャとしてRISC−Vを適用し、RISC−Vにおける命令セットの拡張用フィールドによってエラー検出の実行と不実行を定義する形態について説明したが、本発明は、これに限定されるものではない。命令セットによってエラー検出の実行と不実行を定義可能であれば、他のアーキテクチャが用いられてもよい。
また、上記実施形態では、エラー検出の実行と不実行との切り替えは、パイプライン制御回路14への命令コード毎に定義される形態について説明したが、本発明は、これに限定されるものではない。例えば、プロセッサ10の処理モードに応じて、エラー検出の実行と不実行が切り替えられてもよい。すなわち、プロセッサ10の処理モードとして、エラー検出を実行するモードと不実行のモードと設定可能とされる。
また、上記実施形態では、プロセッサ10としてパイプライン処理を行うものを適用する形態について説明したが、本発明は、これに限定されるものではなく、プロセッサ10は必ずしもパイプライン処理を行うものでなくてもよい。例えばプロセッサ10が複数のCPU(Central Processing Unit)を備える形態としてもよい。この場合、第2実施形態のように同じ処理を複数行い、その処理結果を比較部20が比較する場合には、複数のCPUで実行された処理の処理結果を比較部20が比較する。
10・・・プロセッサ、14・・・パイプライン制御回路、16・・・ECC回路、
20・・・比較部

Claims (5)

  1. 入力された命令に応じた処理を行う処理手段(14)と、
    前記処理手段のエラーを検出するエラー検出手段(16)と、
    を備え、
    前記エラー検出手段は、前記処理手段が実行する処理に応じて、前記処理手段に対するエラー検出の実行と不実行とが切り替えられ、
    前記エラー検出手段によるエラー検出の実行と不実行との切り替えは、前記処理手段に実行させる処理を示す命令毎に定義される、
    プロセッサ(10)。
  2. RISC−Vにおける命令セットの拡張用フィールドに、前記エラー検出手段によるエラー検出の実行又は不実行が定義される、請求項1記載のプロセッサ。
  3. 前記エラー検出手段は、前記処理手段の後段に設けられるECC回路である、請求項1又は請求項2記載のプロセッサ。
  4. 前記エラー検出手段は、前記処理手段で行われた複数の同じ処理の結果を比較することによりエラーを検出する、請求項1又は請求項2記載のプロセッサ。
  5. 入力された命令に応じた処理を行う処理手段と、前記処理手段のエラーを検出するエラー検出手段と、を備えるプロセッサのエラー検出方法であって、
    入力された命令に応じた処理を前記処理手段が行う第1工程と、
    前記処理手段が実行する処理に応じて、前記第1工程が終了した後に前記エラー検出手段がエラー検出を実行する第2工程と、
    を有し、
    前記第2工程によるエラー検出の実行と不実行は、前記処理手段に実行させる処理を示す命令毎に定義される、
    エラー検出方法。
JP2020042171A 2020-03-11 2020-03-11 プロセッサ及びエラー検出方法 Pending JP2021144426A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020042171A JP2021144426A (ja) 2020-03-11 2020-03-11 プロセッサ及びエラー検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020042171A JP2021144426A (ja) 2020-03-11 2020-03-11 プロセッサ及びエラー検出方法

Publications (1)

Publication Number Publication Date
JP2021144426A true JP2021144426A (ja) 2021-09-24

Family

ID=77766710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020042171A Pending JP2021144426A (ja) 2020-03-11 2020-03-11 プロセッサ及びエラー検出方法

Country Status (1)

Country Link
JP (1) JP2021144426A (ja)

Similar Documents

Publication Publication Date Title
JPH07248897A (ja) コンピュータ・システムにおける例外からの回復方法、及びそのための装置
JP5292706B2 (ja) コンピュータシステム
JP2021144426A (ja) プロセッサ及びエラー検出方法
JP5215655B2 (ja) データ処理装置及びデータ処理装置におけるバスアクセス制御方法
JP4063182B2 (ja) プロセッサおよびその割り込み制御方法
JPH02123442A (ja) 高速化メモリ
JP2009238168A (ja) マイクロプロセッサ
JPH05216721A (ja) 電子計算機
JP5012562B2 (ja) マイクロコンピュータ
JPS63214856A (ja) デ−タ処理装置のデ−タ保護制御方式
JPH03186956A (ja) Cpuバスデータ診断装置
JPH0311430A (ja) フエッチアクセス時の異常処理方法
JP2000305782A (ja) 演算装置
JPH0991167A (ja) 命令検出装置
JP4564025B2 (ja) 情報処理装置における割り込み処理方法
JPH0248733A (ja) 情報処理装置
JPH02287625A (ja) シングルチップマイクロコンピュータ
JPS59129995A (ja) 記憶装置
JPS59158441A (ja) パイプライン制御方式
JPH05108542A (ja) データ処理装置
JPH06259117A (ja) プログラマブルコントローラの演算エラー処理方法
JPH01171033A (ja) 演算装置
JPH07122845B2 (ja) 演算装置
JPS63263536A (ja) 情報処理装置
JPS61294582A (ja) 演算装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240109

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20240201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240730