JP7125602B2 - データ処理装置および診断方法 - Google Patents

データ処理装置および診断方法 Download PDF

Info

Publication number
JP7125602B2
JP7125602B2 JP2018145079A JP2018145079A JP7125602B2 JP 7125602 B2 JP7125602 B2 JP 7125602B2 JP 2018145079 A JP2018145079 A JP 2018145079A JP 2018145079 A JP2018145079 A JP 2018145079A JP 7125602 B2 JP7125602 B2 JP 7125602B2
Authority
JP
Japan
Prior art keywords
data
error detection
circuit
diagnostic
error
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
JP2018145079A
Other languages
English (en)
Other versions
JP2020021313A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018145079A priority Critical patent/JP7125602B2/ja
Priority to US16/523,031 priority patent/US11068337B2/en
Publication of JP2020021313A publication Critical patent/JP2020021313A/ja
Application granted granted Critical
Publication of JP7125602B2 publication Critical patent/JP7125602B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Bus Control (AREA)

Description

本発明はデータ処理装置および診断方法に関する。
コンピュータなどのデータ処理装置は、CPU(Central Processing Unit)、RAM(Random Access Memory)および入出力デバイスなどの周辺機器といった種々のデバイスを有する。データ処理装置では、RAMと周辺機器との間でのデータ転送を高速に行うため、ダイレクトメモリアクセス(DMA:Direct Memory Access)が用いられる。DMAは、CPUを介さずに、RAMと周辺機器との間(あるいはRAM上のある記憶領域から他の記憶領域へ)のデータ転送を行う技術である。
例えば、フレームを送信する場合にDMA回路を起動してブロックデータを共有メモリからバッファメモリへDMA転送するデータ通信装置の提案がある。提案のデータ通信装置は、送信フレーム内の各ブロックに伝送誤りを検出するエラーチェックコードを付加することにより、ブロック単位での伝送誤りの検出を可能にする。
また、同期して動作する2つの2重系処理装置のバス上のデータの不一致を検出するバス照合型処理装置において、通信制御におけるデータ転送をDMAコントローラ(DMAC:DMA Controller)により高速に実行する提案もある。提案のバス照合型処理装置では、バス照合論理回路へ診断のためのテストパターンデータを送り出すためにDMACを用いる。
特開平10-161954号公報 特開平7-302207号公報
DMA転送では、データの伝送誤りを検出するためにデータに誤り検出用のコード(例えば、BCC(Block Check Character))が付加される。そこで、データ転送の信頼性向上のため、CPUなどの上位コントローラにより、正常データと当該コードとの組および異常データと当該コードとの組をDMAコントローラに入力して、データの誤り検出が適切に行われているか否かを診断することが考えられる。しかし、上位コントローラにより診断を行うと、上位コントローラに対してDMAコントローラの起動やデータ転送指示のための負荷をかけることになり、通常運用時のデータ処理装置の性能が低下する可能性がある。
1つの側面では、本発明は、誤り検出機能の診断を効率化するデータ処理装置および診断方法を提供することを目的とする。
1つの態様では、データ処理装置が提供される。データ処理装置は、DMAコントローラと上位コントローラとを有する。DMAコントローラは、データのDMA転送を制御する制御回路と、データに付加されたコードに基づくデータの誤り検出を行い誤り検出の結果を制御回路に出力する誤り検出回路と、制御回路と誤り検出回路との接続を遮断して誤り検出回路の動作を診断する診断回路と、を備える。上位コントローラは、診断回路による診断結果に応じて異常時処理を実行する。
また、1つの態様では、診断方法が提供される。
1つの側面では、誤り検出機能の診断を効率化できる。
第1の実施の形態のデータ処理装置を示す図である。 第2の実施の形態のストレージ装置のハードウェア例を示す図である。 DMACのハードウェア例を示す図である。 診断用データの例を示す図である。 パトロールブロックによる診断例を示す図である。 ファームウェアの処理例を示すフローチャートである。 DMACの処理例を示すフローチャートである。 ファームウェアの他の処理例を示すフローチャートである。 DMACの他の処理例を示すフローチャートである。 BCCチェック回路の診断の比較例を示す図である。 BCCエラー検出時動作の比較例を示す図である。 BCCエラー検出時動作の例を示す図である。 ファームウェアの処理の比較例を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態のデータ処理装置を示す図である。
データ処理装置1は、DMAコントローラ10、上位コントローラ20およびメモリ30を有する。DMAコントローラ10、上位コントローラ20およびメモリ30は、データ処理装置1のバスに接続されている。
DMAコントローラ10は、データ処理装置1が備える周辺機器などのデバイス(図示を省略している)とメモリ30との間のDMAによるデータ転送(DMA転送)を行う。DMAコントローラ10は、メモリ30におけるある記憶領域から別の記憶領域へのデータ転送を行うこともある。
上位コントローラ20は、DMAコントローラ10の上位のコントローラであり、例えばCPUである。上位コントローラ20はファームウェアのプログラムを実行するプロセッサでもよい。「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
メモリ30は、データ処理装置1の主記憶装置(メインメモリ)である。メモリ30は、例えば、RAMである。
DMAコントローラ10は、制御回路11、誤り検出回路12および診断回路13を有する。
制御回路11は、データのDMA転送を制御する。制御回路11は、あるデータのDMA転送を行う際に、誤り検出回路12による当該データの誤り検出結果を取得し、誤りが検出されなければ、当該データのDMA転送を継続する。一方、制御回路11は、誤り検出回路12により誤りが検出されると、DMA転送を中断して、上位コントローラ20に誤りが検出された旨を通知する。そして、制御回路11は、上位コントローラ20による誤り検出後の後処理(例えば、制御回路11のリセットや再転送指示など)を待つことになる。制御回路11は、上位コントローラ20の再転送指示に応じて、誤りが検出されたデータの再転送を行う。
誤り検出回路12は、転送対象のデータに対する誤り検出を行う。転送対象のデータには、誤り検出用のコードが付加されている。誤り検出回路12は、転送対象のデータと誤り検出用のコードとに基づく所定の演算により、転送対象のデータの誤りを検出する。誤り検出回路12は、誤り検出の結果を制御回路11に出力する。
誤り検出用のコードとしては、例えば、BCCが挙げられる。BCCとは、論理的なデータブロックの正当性の確認に用いられる情報である。BCCは、データの異常を検出するための冗長コード(CRC:Cyclic Redundancy Check)と、データブロックの論理的なデータ位置をチェックするための位置情報(BID:Block IDentifier)とを含む。ただし、誤り検出回路12は他の種類の冗長コード(冗長ビットあるいは冗長ビット列)を用いて誤り検出を行ってもよい。
診断回路13は、誤り検出回路12による誤り検出の動作を診断する。具体的には、診断回路13は、内部に記憶部(図示を省略している)を有する。診断回路13の内部の記憶部は、診断用データを記憶する。診断用データは、誤り検出回路12の誤り検出の動作の診断に用いられるデータである。例えば、診断用データは、診断回路13の記憶部に予め記憶される。診断用データは、第1診断用データと第2診断用データとを含む。
第1診断用データは、第1データと当該第1データに対して生成されたBCCとの組である。第2診断用データは、例えば、第2データと第2データ以外のデータ(第1データまたは第3データ)に対して生成されたBCCとの第2の組である。第1診断用データにおける第1データは、誤り検出回路12が適切に(正常に)動作していれば誤り無しと判定されるので、正常データと呼べる。第2診断用データにおける第2データは、誤り検出回路12が適切に(正常に)動作していれば誤り有りと判定されるので、異常データと呼べる。
診断回路13は、制御回路11と誤り検出回路12との接続を遮断して誤り検出回路12の動作を診断する。例えば、診断回路13は、DMAコントローラ10がアイドル(IDLE)状態の場合に、制御回路11と誤り検出回路12との接続を遮断する。アイドル状態とは、DMAコントローラ10が通常運用におけるDMA転送に用いられていない状態である。そして、診断回路13は、第1診断用データまたは第2診断用データを誤り検出回路12に入力し、誤り検出回路12の応答を得ることで、誤り検出回路12の診断を行う。
診断回路13は、第1診断用データまたは第2診断用データに対する応答を得ると、制御回路11と誤り検出回路12とを再接続する(接続が遮断された状態を解除する)。すると、制御回路11は、誤り検出回路12を用いて、再び、通常のDMA転送を行えるようになる。
上位コントローラ20は、診断回路13による診断結果に応じて異常時処理を実行する。具体的には、上位コントローラ20は、誤り検出回路12が適切に動作していないと判断すると、DMAコントローラ10に対する所定のFATAL処理(例えば、DMAコントローラ10の再起動など)を行う。一方、上位コントローラ20は、誤り検出回路12が適切に動作していると判断すると、DMAコントローラ10による運用を継続する。上位コントローラ20による誤り検出回路12の動作が適切であるか否かの判断には次の方法が考えられる。
第1の例として、上位コントローラ20は、診断回路13により、正常データ、異常データ、正常データ、・・・と交互に、順番に、誤り検出回路12に入力した場合の誤り検出回路12の応答を、診断回路13から取得してもよい。この場合、上位コントローラ20は、当該応答が、誤り無し応答、誤り有り応答、誤り無し応答、・・・と順番に正しく得られている場合、誤り検出回路12が適切に動作しており、そうでない場合に、誤り検出回路12が適切に動作していないと判断する。
第2の例として、第1の例の方法に加えて、応答の時系列を適切に確認可能にするために、診断回路13により、誤り検出回路12の応答に、応答時刻を示す時刻情報を付加し、当該応答と応答時刻とを上位コントローラ20により取得してもよい。上位コントローラ20は、誤り無し応答、誤り有り応答、誤り無し応答、・・・と順番に得られていることを確認する際に、時刻情報を考慮して、時系列の順序性を確認してもよい。
第3の例として、第1の例の方法によって、診断回路13により、誤り検出回路12が適切に動作しているか否かを判定し、上位コントローラ20により、当該診断回路13による判定結果を取得してもよい。上位コントローラ20は、誤り検出回路12が適切に動作していない旨の通知を診断回路13から受けた場合に、DMAコントローラ10に対する異常時処理を実行する。一方、上位コントローラ20は、誤り検出回路12が適切に動作している旨の通知を診断回路13から受けた場合に、DMAコントローラ10による運用を継続する。
データ処理装置1によれば、診断回路13により、制御回路11と誤り検出回路12との接続が遮断される。そして、診断回路13により、誤り検出回路12の動作が診断される。上位コントローラ20により、診断回路13による診断結果に応じて、異常時処理が実行される。
これにより、誤り検出機能の診断を効率化できる。
具体的には、DMAコントローラ10の診断回路13により誤り検出回路12の診断を行うことで、上位コントローラ20に診断による負荷をかけずに済み、通常運用時のシステム性能の低下を抑えられる。また、上位コントローラ20主体で診断を行う場合、メモリ30に診断用データを配置することになるが、診断回路13内に診断用データを格納することで、メモリ30の記憶領域を節約できる。
特に、診断回路13は、診断時に、制御回路11と誤り検出回路12との接続を遮断することで、誤り検出回路12による誤り検出の結果が、制御回路11に出力されることを阻止できる。
ここで、制御回路11と誤り検出回路12との接続を遮断しない場合、異常データに対する誤り検出回路12の応答(誤り有り応答)が制御回路11に出力されることになる。すると、制御回路11は、通常のDMA転送時と同様に、DMA転送の動作を中断して上位コントローラ20に誤り有りを通知し、上位コントローラ20によるリセットおよび再転送指示を待つことになる。この一連の処理には時間を要し、システム性能の低下の要因になる。
そこで、診断回路13は、上記のように、誤り検出回路12による誤り検出の結果が、制御回路11に出力されることを阻止することで、制御回路11から上位コントローラ20へ余計な通知が行われることを防げる。その結果、上位コントローラ20による誤り有りの場合の後処理を誘発させずに済む。よって、システム性能の低下を一層抑えられる。
このように、データ処理装置1によれば、誤り検出機能の診断を効率化できる。また、制御回路11の既存の機能への影響を抑えて(例えば、制御回路11を変更せずに)、診断機能をDMAコントローラ10に組み込めるという利点もある。
データ処理装置1は、種々の装置に適用され得る。例えば、データ処理装置1は、コンピュータ、スマートフォンやタブレットなどの端末装置およびストレージ装置などを含む各種の情報処理装置および電子装置でもよい。以下では、データ処理装置1の一例として、ストレージ装置を示して、誤り検出の診断機能を更に詳細に説明する。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態のストレージ装置のハードウェア例を示す図である。
ストレージ装置50は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの記憶装置を複数収納し、大容量の記憶領域をサーバ90に提供する。ストレージ装置50は、コントローラモジュール(CM:Controller Module)100を有する。CM100は、ストレージ装置50に収納された記憶装置に対するサーバ90のアクセスを制御する。CM100は、ストレージ制御装置と呼ばれることもある。
CM100は、CPU110、RAM120、フラッシュメモリ130、DI140、DMAコントローラ150、CA(Channel Adapter)160、NA(Network Adapter)170および媒体リーダ180を有する。これらのハードウェアは、CM100内のバスに接続されている。
なお、CPU110は、第1の実施の形態の上位コントローラ20の一例である。RAM120は、第1の実施の形態のメモリ30の一例である。DMAコントローラ150は、第1の実施の形態のDMAコントローラ10に対応する。
CPU110は、プログラムの命令を実行するプロセッサである。CPU110は、フラッシュメモリ130に記憶されたプログラムやデータの少なくとも一部をRAM120にロードし、プログラムを実行する。なお、CPU110は複数のプロセッサコアを含んでもよい。また、CM100は複数のプロセッサを有してもよい。以下で説明するCPU110の処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM120は、CPU110が実行するファームウェアのプログラムやCPU110が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、CM100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
フラッシュメモリ130は、ファームウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、CM100は、複数の不揮発性の記憶装置を備えてもよい。
DI140は、ドライブ部190と通信するためのインタフェースである。例えば、DI140として、SAS(Serial Attached SCSI)(SCSIは、Small Computer System Interfaceの略)などのインタフェースを用いることができる。ここで、ドライブ部190は、ストレージ装置50に内蔵されており、HDD191,192,・・・を収納する。ドライブ部190は、HDDに代えて、または、HDDと併せて、SSDなどの他の種類の記憶デバイスを収納することもできる。
DMAコントローラ150は、RAM120と他のデバイス(DI140、CA160、NA170および媒体リーダ180など)との間や、RAM120のある領域から別の領域へのデータのDMA転送を制御する。DMAコントローラ150は、データ転送の際に、データに付与されたBCCによる誤り検出を行う。ここで、DMAコントローラ150を「DMAC」と略記することがある。DMAコントローラ150は、例えば、FPGA(Field-Programmable Gate Array)により実現される。
CA160は、SAN(Storage Area Network)60に接続される通信インタフェースである。CA160は、SAN60を介して、SAN60に接続されているサーバ90と通信する。CA160として、例えばFC(Fibre Channel)のインタフェースを用いることができる。
NA170は、LAN(Local Area Network)70を介して他のコンピュータと通信する通信インタフェースである。NA170として、例えばイーサネット(登録商標)のインタフェースを用いることができる。
媒体リーダ180は、記録媒体80に記憶されたプログラムやデータを読み取る装置である。記録媒体80として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することができる。媒体リーダ180は、例えば、CPU110からの命令に従って、記録媒体80から読み取ったプログラムやデータを、RAM120やフラッシュメモリ130に格納する。
ストレージ装置50は、複数のCMを有してもよい。例えば、ストレージ装置50は、CMを冗長構成としてデータアクセスを分散して実行することで、データアクセスの高速化を図り、また、一方の障害時には他方でデータアクセスを引き継ぐことで、高信頼化を図ることができる。
図3は、DMACのハードウェア例を示す図である。
DMAコントローラ150は、制御部151、BCCチェック回路152およびパトロールブロック153を有する。ここで、制御部151は、第1の実施の形態の制御回路11に対応する。BCCチェック回路152は、第1の実施の形態の誤り検出回路12に対応する。パトロールブロック153は、第1の実施の形態の診断回路13に対応する。
制御部151は、データのDMA転送を制御する回路である。制御部151は、データのDMA転送を行う際に、BCCチェック回路152による当該データの誤り検出結果を取得し、誤りが検出されなければ、当該データのDMA転送を継続する。一方、制御部151は、BCCチェック回路152により誤りが検出されると、DMA転送を中断して、CPU110に誤りが検出された旨を通知する。そして、制御部151は、CPU110による誤り検出後の後処理(例えば、制御部151のリセット処理(制御部151の所定のレジスタのリセット)や再転送指示など)を待つことになる。制御部151は、CPU110の再転送指示に応じて、誤りが検出されたデータの再転送を行うことがある。
BCCチェック回路152は、転送対象のデータに対する誤り検出を行う回路である。具体的には、転送対象のデータには、BCCが付加されている。BCCは、データの異常を検出するための冗長コード(CRC)と、データブロックの論理的なデータ位置をチェックするための位置情報(BID)とを含み得る。BCCチェック回路152は、BCCに基づく所定の演算により転送対象のデータの誤りを検出する。BCCチェック回路152による誤り検出は、例えば、BCCに含まれるCRCに基づいて行われてもよい。BCCチェック回路152は、誤り検出の結果を制御部151に出力する。
パトロールブロック153は、BCCチェック回路152による誤り検出の動作を診断する回路である。具体的には、パトロールブロック153は、内部に記憶部(図示を省略している)を有する。パトロールブロック153の内部の記憶部は、診断用データを記憶する。診断用データは、BCCチェック回路152の誤り検出の動作の診断に用いられるデータである。例えば、診断用データは、パトロールブロック153の記憶部に予め記憶される。診断用データは、第1診断用データと第2診断用データとを含む。
第1診断用データは、第1データと当該第1データに対して生成されたBCCとの組である。第2診断用データは、例えば、第2データと第2データ以外のデータ(第1データまたは第3データ)に対して生成されたBCCとの第2の組である。第1診断用データにおける第1データは、BCCチェック回路152が適切に動作していれば誤り無し(エラー無し)と判定されるので、正常データと呼べる。第2診断用データにおける第2データは、BCCチェック回路152が適切に動作していれば誤り有り(エラー有り)と判定されるので、異常データと呼べる。
パトロールブロック153は、制御部151とBCCチェック回路152との接続を遮断してBCCチェック回路152の動作を診断する。例えば、パトロールブロック153は、DMAコントローラ150がアイドル状態の場合に、制御部151とBCCチェック回路152との接続を遮断する。アイドル状態とは、DMAコントローラ150が通常運用におけるDMA転送に用いられていない状態である。そして、パトロールブロック153は、第1診断用データまたは第2診断用データをBCCチェック回路152に入力し、BCCチェック回路152によるBCCチェック結果の応答を得ることで、BCCチェック回路152の診断を行う。
パトロールブロック153は、第1診断用データまたは第2診断用データに対する応答を得ると、制御部151とBCCチェック回路152とを再接続する(接続が遮断された状態を解除する)。すると、制御部151は、BCCチェック回路152を用いて、再び、通常のDMA転送を行えるようになる。
CPU110は、パトロールブロック153による診断結果に応じて異常時処理を実行する。具体的には、CPU110は、BCCチェック回路152が適切に動作していないと判断すると、DMAコントローラ150に対する所定のFATAL処理(例えば、DMAコントローラ150の再起動など)を行う。一方、CPU110は、BCCチェック回路152が適切に動作していると判断すると、DMAコントローラ150による運用を継続する。CPU110の機能は、RAM120に記憶されたファームウェアのプログラムをCPU110が実行することで実現される。
図4は、診断用データの例を示す図である。
記憶部153aは、パトロールブロック153に内蔵される。記憶部153aは、診断用データを記憶する。1つの診断用データのサイズは520バイト(Bytes)である。診断用データは、第1診断用データと第2診断用データとを含む。第1診断用データは、正常データ301とBCC302との組である。第2診断用データは、異常データ303とBCC304との組である。正常データ301のサイズは512バイトである。BCC302のサイズは8バイトである。異常データ303のサイズは512バイトである。BCC304のサイズは8バイトである。
例えば、BCC302は、正常データ301に対する所定の演算により生成される。また、例えば、異常データ303は、正常データ301の少なくとも一部を改変することで生成される。BCC304は、例えば、BCC302と同一とする。
図5は、パトロールブロックによる診断例を示す図である。
パトロールブロック153は、DMAコントローラ150がアイドル状態であることを検出する。すると、パトロールブロック153は、制御部151とBCCチェック回路152との接続を遮断する(ステップS1)。
パトロールブロック153は、記憶部153aに格納された診断用データをBCCチェック回路152に転送し、BCCチェック回路152により診断用データに基づく誤り検出を実行させる(ステップS2)。
パトロールブロック153は、診断用データに基づくBCCチェック結果(エラー有り、または、エラー無し)の応答をBCCチェック回路152から取得する(ステップS3)。ここで、BCCチェック回路152により誤りが検出される場合、「エラー有り」であり、BCCチェック回路152により誤りが検出されない場合、「エラー無し」である。
パトロールブロック153は、BCCチェック結果(エラー有り、または、エラー無し)に時刻情報を付加した診断情報を生成し、CPU110に割り込み通知する(ステップS4)。時刻情報は、タイムスタンプでもよいし、昇順または降順のカウント値などでもよい。
CPU110は、BCCチェック結果が交互に「エラー無し」、「エラー有り」となる場合に、BCCチェック回路152による誤り検出機能が正常であり、そうでない場合に、BCCチェック回路152による誤り検出機能が異常であると判断する。例えば、パトロールブロック153が、第1診断用データ、第2診断用データの順に、BCCチェック回路152に入力する場合、正常時、最初に「エラー無し」となり、次に、「エラー有り」となり、以降、「エラー無し」、「エラー有り」が交互に繰り返される。
このとき、CPU110は、パトロールブロック153によりBCCチェック結果とともに通知された時刻情報を確認する。CPU110は、今回の時刻情報が前回通知時よりも進んでいることにより、誤り検出機能(あるいは診断機能)が正常であると判断し、そうでない場合に、誤り検出機能(あるいは診断機能)が異常であると判断する。
CPU110は、パトロールブロック153から取得した診断情報に基づいて異常を検出した場合には、DMAコントローラ150に対するFATAL処理を実行する。
なお、パトロールブロック153は、診断用データに基づくBCCチェック結果をBCCチェック回路152から所定時間内に得られない場合もある。この場合、パトロールブロック153は、BCCチェック結果を含まない割り込み通知のみをCPU110に出力する。CPU110は、当該割り込み通知について、「BCCチェック結果無し」と判断する。
次に、CPU110およびDMAコントローラ150の処理手順を説明する。前述のように、CPU110の機能は、CPU110により実行されるファームウェアにより実現される。なお、パトロールブロック153は、診断時、第1診断用データ、第2診断用データを、この順に、BCCチェック回路152に入力するものとする。
図6は、ファームウェアの処理例を示すフローチャートである。
(S10)CPU110は、DMAコントローラ150からの割り込みを受け付ける。CPU110は、DMAコントローラ150から診断情報を取得する。診断情報は、前述のように、BCCチェック結果および時刻情報を含む。
(S11)CPU110は、BCCチェック結果が「エラー無し」を示すか否かを判定する。「エラー無し」を示す場合、ステップS12に処理が進む。「エラー無し」ではない場合(すなわち、「エラー有り」または「BCCチェック結果無し」の場合)、ステップS16に処理が進む。
(S12)CPU110は、診断情報に含まれる時刻情報に基づいて、前回の診断情報の取得時の時刻から今回の時刻情報(ステップS10で取得した時刻情報)で示される時刻が進んでいるか否かを判定する。進んでいる場合、ステップS13に処理が進む。進んでいない場合、ステップS16に処理が進む。
(S13)CPU110は、DMAコントローラ150からの割り込みを受け付ける。CPU110は、DMAコントローラ150から診断情報を取得する。診断情報は、BCCチェック結果および時刻情報を含む。
(S14)CPU110は、BCCチェック結果が「エラー有り」を示すか否かを判定する。「エラー有り」を示す場合、ステップS15に処理が進む。「エラー有り」ではない場合(すなわち、「エラー無し」または「BCCチェック結果無し」の場合)、ステップS16に処理が進む。
(S15)CPU110は、診断情報に含まれる時刻情報に基づいて、前回の診断情報の取得時の時刻から今回の時刻情報(ステップS13で取得した時刻情報)で示される時刻が進んでいるか否かを判定する。進んでいる場合、ステップS10に処理が進む。進んでいない場合、ステップS16に処理が進む。
(S16)CPU110は、DMAコントローラ150における誤り検出機能に異常があるとみなして、DMAコントローラ150に対するFATAL処理を実行する。そして、CPU110により実行されるファームウェアの処理が終了する。
図7は、DMACの処理例を示すフローチャートである。
(S20)パトロールブロック153は、診断用データ(正常/異常)を用意する。
(S21)パトロールブロック153は、DMAコントローラ150がアイドル(IDLE)状態であるか否かを判定する。アイドル状態の場合、ステップS22に処理が進む。アイドル状態でない場合、ステップS21に進み、パトロールブロック153は、DMAコントローラ150がアイドル状態となるまで待機する。
(S22)パトロールブロック153は、制御部151とBCCチェック回路152とを切り離す。すなわち、パトロールブロック153は、制御部151とBCCチェック回路152との接続を遮断する。
(S23)パトロールブロック153は、BCCチェック回路152に正常データ301およびBCC302を含む第1診断用データを転送する。
(S24)パトロールブロック153は、BCCチェック回路152からBCCチェック結果を受信する。
(S25)パトロールブロック153は、今回のBCCチェック結果に時刻情報を付加した診断情報を生成し、CPU101へ診断情報を割り込み通知する。
(S26)パトロールブロック153は、所定時間(例えば、3秒間)待機する。
(S27)パトロールブロック153は、制御部151とBCCチェック回路152とを接続する。すなわち、パトロールブロック153は、制御部151とBCCチェック回路152との接続が遮断された状態を解除し、制御部151が再びBCCチェック回路152を利用してDMA転送を実行可能にする。
(S28)パトロールブロック153は、DMAコントローラ150がアイドル(IDLE)状態であるか否かを判定する。アイドル状態の場合、ステップS29に処理が進む。アイドル状態でない場合、ステップS28に進み、パトロールブロック153は、DMAコントローラ150がアイドル状態となるまで待機する。
(S29)パトロールブロック153は、制御部151とBCCチェック回路152とを切り離す。すなわち、パトロールブロック153は、制御部151とBCCチェック回路152との接続を遮断する。
(S30)パトロールブロック153は、BCCチェック回路152に異常データ303およびBCC304を含む第2診断用データを転送する。
(S31)パトロールブロック153は、BCCチェック回路152からBCCチェック結果を受信する。
(S32)パトロールブロック153は、今回のBCCチェック結果に時刻情報を付加した診断情報を生成し、CPU101へ診断情報を割り込み通知する。
(S33)パトロールブロック153は、所定時間(例えば、3秒間)待機する。
(S34)パトロールブロック153は、制御部151とBCCチェック回路152とを接続する。具体的には、パトロールブロック153は、制御部151とBCCチェック回路152との接続が遮断された状態を解除し、制御部151が再びBCCチェック回路152を利用してDMA転送を実行可能にする。そして、ステップS21に処理が進む。
上記のように、パトロールブロック153は、診断結果に時刻を示す時刻情報を付加してCPU110に通知する。CPU110は、時刻情報に基づいて、BCCチェック回路152の異常を検出する。
より具体的には、パトロールブロック153は、BCCチェック回路152が正常である場合に誤り無しと判定される第1データと誤り有りと判定される第2データとを交互にBCCチェック回路152に入力する。そして、パトロールブロック153は、BCCチェック回路152から順次応答される誤り検出結果を含む診断結果をCPU110に通知する。CPU110は、誤り検出結果により示される誤り無し、および、誤り有りの応答の順序性に基づいて、BCCチェック回路152の異常を検出する。すなわち、CPU110は、誤り無し、誤り有りというように、BCCチェック回路152が期待される動作をしている場合に異常なし、期待される動作をしていない場合に異常ありと判断する。
このように、DMAコントローラ150のパトロールブロック153によりBCCチェック回路152の診断を行うことで、CPU110に診断による負荷をかけずに済み、通常運用時のシステム性能の低下を抑えられる。また、パトロールブロック153内に診断用データを格納することで、CPU110主体で診断を行う場合のようにRAM120に診断用データを配置しなくてよく、RAM120の記憶領域を節約できる。
特に、パトロールブロック153は、診断時に、制御部151とBCCチェック回路152との接続を遮断することで、BCCチェック回路152による誤り検出の結果が、制御部151に出力されることを阻止できる。
ここで、制御部151とBCCチェック回路152との接続を遮断しない場合、異常データ303に対するBCCチェック回路152の応答(エラー有り応答)が制御部151に出力されることになる。すると、制御部151は、通常のDMA転送時と同様に、DMA転送の動作を中断してCPU110に誤り有りを通知し、CPU110によるリセットおよび再転送指示を待つことになる。この一連の処理には時間を要し、システム性能の低下の要因になる。
そこで、パトロールブロック153は、上記のように、BCCチェック回路152による誤り検出の結果が、制御部151に出力されることを阻止することで、制御部151からCPU110へ余計な通知が行われることを防げる。その結果、CPU110による誤りエラー有りの場合の後処理を誘発させずに済む。よって、システム性能の低下を一層抑えられる。
また、CPU110により、診断情報に含まれる時刻情報に基づいて、「エラー無し」、「エラー有り」の応答が時系列に繰り返されることを確認することで、パトロールブロック153により正常に診断が行われていることを適切に判断することができる。特に、BCCチェック回路152またはパトロールブロック153が適切に動作していない場合、診断情報の通知があるものの、診断情報に含まれる時刻情報が更新されずに、CPU110に通知されることもある。CPU110は、時刻情報を確認することで、BCCチェック回路152やパトロールブロック153のこうした異常を適切に検出できる。
このように、DMAコントローラ150によれば、誤り検出機能の診断を効率化できる。また、制御部151の既存の機能への影響を抑えて(例えば、制御部151を変更せずに)、診断機能をDMAコントローラ150に組み込めるという利点もある。
更に、パトロールブロック153は、BCCチェック回路152の動作の診断を完了すると、制御部151とBCCチェック回路152とを再接続することで、診断後には、通常のDMA転送を適切に行えるようにする。
なお、上記の例では、CPU110が診断情報に基づいて、DMAコントローラ150における誤り検出機能に異常があるか否かを判定することとしたが、当該判定をパトロールブロック153により実行してもよい。そこで、以下では、パトロールブロック153により誤り検出機能に異常があるか否かを判定する例を説明する。
図8は、ファームウェアの他の処理例を示すフローチャートである。
(S40)CPU110は、DMAコントローラ150からFATAL通知があるか否かを判定する。FATAL通知がある場合、ステップS41に処理が進む。FATAL通知がない場合、ステップS40に進む。ここで、FATAL通知は、パトロールブロック153において、BCCチェック回路152の誤り検出機能に異常が検出された場合に、パトロールブロック153からCPU110に出力される通知である。
(S41)CPU110は、DMAコントローラ150に対するFATAL処理を実行する。そして、CPU110により実行されるファームウェアの処理が終了する。
図9は、DMACの他の処理例を示すフローチャートである。
(S50)パトロールブロック153は、診断用データ(正常/異常)を用意する。
(S51)パトロールブロック153は、DMAコントローラ150がアイドル(IDLE)状態であるか否かを判定する。アイドル状態の場合、ステップS52に処理が進む。アイドル状態でない場合、ステップS51に進み、パトロールブロック153は、DMAコントローラ150がアイドル状態となるまで待機する。
(S52)パトロールブロック153は、制御部151とBCCチェック回路152とを切り離す。すなわち、パトロールブロック153は、制御部151とBCCチェック回路152との接続を遮断する。
(S53)パトロールブロック153は、BCCチェック回路152に正常データ301およびBCC302を含む第1診断用データを転送する。
(S54)パトロールブロック153は、BCCチェック回路152からBCCチェック結果を受信する。
(S55)パトロールブロック153は、BCCチェック結果が「エラー無し」を示すか否かを判定する。「エラー無し」を示す場合、ステップS56に処理が進む。「エラー無し」でない場合(すなわち、「エラー有り」または「BCCチェック結果無し」の場合)、ステップS65に処理が進む。ここで、「エラー無し」が応答される場合、第1診断用データを入力したときのBCCチェック回路152に期待される動作が行われていることになる。「エラー無し」が応答されない場合、第1診断用データを入力したときのBCCチェック回路152に期待される動作が行われていないことになる。
(S56)パトロールブロック153は、所定時間(例えば、3秒間)待機する。
(S57)パトロールブロック153は、制御部151とBCCチェック回路152とを接続する。すなわち、パトロールブロック153は、制御部151とBCCチェック回路152との接続が遮断された状態を解除し、制御部151が再びBCCチェック回路152を利用してDMA転送を実行可能にする。
(S58)パトロールブロック153は、DMAコントローラ150がアイドル(IDLE)状態であるか否かを判定する。アイドル状態の場合、ステップS59に処理が進む。アイドル状態でない場合、ステップS58に処理が進み、パトロールブロック153は、DMAコントローラ150がアイドル状態となるまで待機する。
(S59)パトロールブロック153は、制御部151とBCCチェック回路152とを切り離す。すなわち、パトロールブロック153は、制御部151とBCCチェック回路152との接続を遮断する。
(S60)パトロールブロック153は、BCCチェック回路152に異常データ303およびBCC304を含む第2診断用データを転送する。
(S61)パトロールブロック153は、BCCチェック回路152からBCCチェック結果を受信する。
(S62)パトロールブロック153は、BCCチェック結果が「エラー有り」を示すか否かを判定する。「エラー有り」を示す場合、ステップS63に処理が進む。「エラー有り」でない場合(すなわち、「エラー無し」または「BCCチェック結果無し」の場合)、ステップS65に処理が進む。ここで、「エラー有り」が応答される場合、第2診断用データを入力したときのBCCチェック回路152に期待される動作が行われていることになる。「エラー有り」が応答されない場合、第2診断用データを入力したときのBCCチェック回路152に期待される動作が行われていないことになる。
(S63)パトロールブロック153は、所定時間(例えば、3秒間)待機する。
(S64)パトロールブロック153は、制御部151とBCCチェック回路152とを接続する。すなわち、パトロールブロック153は、制御部151とBCCチェック回路152との接続が遮断された状態を解除し、制御部151が再びBCCチェック回路152を利用してDMA転送を実行可能にする。そして、ステップS51に処理が進む。
(S65)パトロールブロック153は、CPU110へFATAL通知を出力する。そして、DMAコントローラ150の処理が終了する。
すなわち、パトロールブロック153は、正常データまたは異常データとBCCとをBCCチェック回路152に入力し、BCCチェック回路152による入力データに対する誤り検出結果が適切であるか否かを判定する。パトロールブロック153は、適切でない場合に異常を示す診断結果をCPU110に通知する。
このように、パトロールブロック153が、BCCチェック結果により、BCCチェック回路152による誤り検出機能の異常を判定してもよい。このようにすると、CPU110による判定処理を一部省略できるので、BCCチェック回路152の診断に伴うCPU110の負荷を一層低減し、システム性能の低下を抑えることができる。
なお、ステップS55,S62では、パトロールブロック153は、診断用データに基づくBCCチェック結果をBCCチェック回路152から所定時間内に得られない場合にも、ステップS65に処理を進めてもよい。
次に、パトロールブロック153を備えていないDMAコントローラにおけるBCCチェック回路の診断の例(比較例)を説明する。
図10は、BCCチェック回路の診断の比較例を示す図である。
DMAコントローラ250は、制御部251およびBCCチェック回路252を有する。DMAコントローラ250は、パトロールブロック153を有していないことがDMAコントローラ150と異なる。制御部251は、制御部151と同様の機能を有する。BCCチェック回路252は、BCCチェック回路152と同様の機能を有する。
比較例では、CPU110が実行するファームウェアの機能によりBCCチェック回路252の診断を行う。例えば、CPU110は、次の手順により、BCCチェック回路252の診断を行う。
まず、CPU110は、診断用データをRAM120に用意する(ステップST1)。診断用データは、フラッシュメモリ130に予め格納されてもよいし、CPU110により既存データから作成されてもよい。診断用データは、第1診断用データと第2診断用データとを含む。第1診断用データは、正常データ401とBCC402との組である。第2診断用データは、異常データ403とBCC404との組である。正常データ401および異常データ403それぞれのサイズは、512バイト(Bytes)である。BCC402,404それぞれのサイズは、8バイトである。
例えば、BCC402は、正常データ401に対する所定の演算により生成される。また、例えば、異常データ403は、正常データ401の少なくとも一部を改変することで生成される。BCC404は、例えば、BCC402と同一とする。
次に、CPU110は、DMAコントローラ250を起動し、DMAコントローラ250に診断用データを入力する(ステップST2)。BCCチェック回路252は、診断用データに対するBCCチェック処理を行う(ステップST3)。制御部251は、通常のDMA転送を実行するときと同様に、BCCチェック回路252から、BCCチェック処理に応じたBCCチェック結果を取得し、BCCチェック結果をCPU110に通知する(ステップST4)。そして、CPU110は、BCCチェック結果に基づいて、DMAコントローラ250の誤り検出機能が適切に動作しているか否かを判定する。
ステップST4では、正常データ401を含む第1診断用データのBCCチェック結果は、「エラー無し」であるため、制御部251は、正常データ401のDMA転送(例えば、RAM120のある領域から別領域へのDMA転送)を実行する。ここで、DMA転送された正常データ401は、診断用のデータであるため、その後は破棄されてもよい。
また、ステップST4では、異常データ403を含む第2診断用データのBCCチェック結果が「エラー有り」を示すことになる。このため、制御部251は、DMA転送を中断する。CPU110は、異常データ403に対するBCCチェック結果が「エラー有り」であることを確認すると、DMAコントローラ250に対するエラー時の後処理(エラー復旧処理)を行うことになる。具体的には次の通りである。
図11は、BCCエラー検出時動作の比較例を示す図である。
CPU110は、異常データ403およびBCC404を含む第2診断用データをRAM120からDMAコントローラ250に転送する(ステップST11)。BCCチェック回路252は、異常データ403およびBCC404に基づいて、BCCエラーを検出し、制御部251にエラー通知を行う(ステップST12)。この場合、制御部251は、DMA転送を中断し、異常データ403のDMA転送を行わずに、CPU110にエラー通知を行う。CPU110は、DMA転送を中断した状態となっている制御部251のエラー復旧処理(例えば、制御部251における所定のレジスタのクリアなどのエラー刈り取り)を実行する(ステップST13)。
図12は、BCCエラー検出時動作の例を示す図である。
制御部251とBCCチェック回路252との通常のDMA転送の例を説明する。なお、制御部251とBCCチェック回路252について説明するが、制御部151およびBCCチェック回路152との接続が遮断されていない場合(制御部151により通常のDMA転送を行う場合)にも、同様の挙動となる。
RAM120は、転送元メモリ領域121および転送先メモリ領域122を有する。転送元メモリ領域121は、RAM120のDMA転送元の記憶領域である。転送先メモリ領域122は、RAM120のDMA転送先の記憶領域である。
例えば、転送元メモリ領域121には、データブロックB1,B2,B3,B4,B5,B6が格納されている。データブロックB1,B2,B3,B4,B5,B6それぞれは、BCCが付加されている(図示を省略している)。DMAコントローラ250は、転送元メモリ領域121から転送先メモリ領域122へのデータブロックB1,B2,B3,B4,B5,B6のDMA転送を行う。
まず、データブロックB1は正常であり、BCCチェック回路252によるBCCチェック結果が「エラー無し」(OK)であるとする。すると、DMAコントローラ250は、データブロックB1を、転送元メモリ領域121から転送先メモリ領域122へDMA転送する。
次に、データブロックB2は、正常であり、BCCチェック回路252によるBCCチェック結果が「エラー無し」(OK)であるとする。すると、DMAコントローラ250は、データブロックB2を転送元メモリ領域121から転送先メモリ領域122へDMA転送する。
次に、データブロックB3は、正常であり、BCCチェック回路252によるBCCチェック結果が「エラー無し」(OK)であるとする。すると、DMAコントローラ250は、データブロックB3を転送元メモリ領域121から転送先メモリ領域122へDMA転送する。
そして、データブロックB4は、異常であり、BCCチェック回路252によるBCCチェック結果が「エラー有り」(NG)であるとする。すると、DMAコントローラ250は、データブロックB4およびそれ以降のデータブロックを転送せずに、DMA転送を中止し、CPU110にBCCエラー有りを通知する。
CPU110のファームウェアは、制御部110のリセットと再転送指示とをDMAコントローラ150に対して行う。これにより、DMAコントローラ150は、再びDMA転送を行えるようになる。次に、このようなファームウェアの比較例の処理手順を説明する。CPU110は、比較例のファームウェアを実行することで、下記の手順を実行し得る。
図13は、ファームウェアの処理の比較例を示すフローチャートである。
(S70)CPU110は、診断用データ(正常/異常)をRAM120に用意する。
(S71)CPU110は、DMAコントローラ250を起動し、第1診断用データ(正常データ401およびBCC402)をRAM120からDMAコントローラ250に転送する。
(S72)CPU110は、BCCチェック回路252による正常データ401に対するBCCチェック結果を制御部251から取得する。CPU110は、BCCチェック結果が「エラー無し」を示すか否かを判定する。「エラー無し」を示す場合、ステップS73に処理が進む。「エラー有り」を示す場合、ステップS78に処理が進む。
(S73)CPU110は、所定時間(例えば、3秒間)待機する。
(S74)CPU110は、DMAコントローラ250を起動し、第2診断用データ(異常データ403およびBCC404)をRAM120からDMAコントローラ250に転送する。
(S75)CPU110は、BCCチェック回路252による異常データ403に対するBCCチェック結果を制御部251から取得する。CPU110は、BCCチェック結果が「エラー有り」を示すか否かを判定する。「エラー有り」を示す場合、ステップS76に処理が進む。「エラー無し」を示す場合、ステップS78に処理が進む。
(S76)CPU110は、DMAコントローラ250に対するDMAエラー復旧処理を実行する。DMAエラー復旧処理は、前述のように、制御部251の所定のレジスタにアクセスして、エラー状態を解除する処理(リセット)や、DMAコントローラ250に対する再転送指示などを含む。
(S77)CPU110は、所定時間(例えば、3秒間)待機する。そして、ステップS71に処理が進む。
(S78)CPU110は、DMAコントローラ250における誤り検出機能に異常があるとみなして、DMAコントローラ250に対するFATAL処理を実行する。そして、CPU110により実行される比較例のファームウェアの処理が終了する。
ここで、ステップS71の所要時間は、例えば、4μs(micro seconds)程度である。ステップS74の所要時間は、例えば、4μs程度である。ステップS76の所要時間は、例えば、50μs程度である。DMAコントローラ250(およびDMAコントローラ150)は、BCCエラー発生時に、BCCチェックで「エラー無し」のデータブロックのみを転送し、「エラー有り」のデータブロックを転送しない仕組みをもつ。これは、異常データをRAM120へ書き込まないようにするためである。その際、DMAコントローラ250(およびDMAコントローラ150)は、BCCエラー検出状態(停止状態)となり、ステップS76のように復旧処理(約50μs程度)を行うことになり、その間、通常運用におけるDMA転送処理を行えない。
これに対して、DMAコントローラ150は、DMAコントローラ150内部でパトロールブロック153によりBCCチェック回路152の診断を自己パトロールにより行う。このため、DMAコントローラ250のように、自己パトロール機能をもたずに、CPU110のファームウェアで診断を行うよりも、CPU110の負荷を軽減することができる。また、図13で例示したステップS71,S74,S76のような遅延が発生しないので、通常運用のシステム性能の低下を抑えられる。更に、図10のようにRAM120に診断用データを配置しなくてもよく、RAM120の記憶領域を節約できる利点もある。
以上の第1,第2の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
(付記1) データのDMA転送を制御する制御回路と、前記データに付加されたコードに基づく前記データの誤り検出を行い前記誤り検出の結果を前記制御回路に出力する誤り検出回路と、前記制御回路と前記誤り検出回路との接続を遮断して前記誤り検出回路の動作を診断する診断回路と、を備えるDMAコントローラと、
前記診断回路による診断結果に応じて異常時処理を実行する上位コントローラと、
を有するデータ処理装置。
(付記2) 前記診断回路は、診断用のデータと前記コードとを前記誤り検出回路に入力し、前記誤り検出回路による前記診断用のデータに対する誤り検出結果が適切であるか否かを判定し、適切でない場合に異常を示す前記診断結果を前記上位コントローラに通知する、
付記1記載のデータ処理装置。
(付記3) 前記診断回路は、前記診断結果に時刻を示す時刻情報を付加して前記上位コントローラに通知し、
前記上位コントローラは、前記時刻情報に基づいて、前記誤り検出回路の異常を検出する、
付記1記載のデータ処理装置。
(付記4) 前記診断回路は、前記誤り検出回路が正常である場合に誤り無しと判定される第1データと誤り有りと判定される第2データとを交互に前記誤り検出回路に入力し、前記誤り検出回路から順次応答される誤り検出結果を含む前記診断結果を前記上位コントローラに通知し、
前記上位コントローラは、前記誤り検出結果により示される誤り無し、および、誤り有りの応答の順序性に基づいて、前記誤り検出回路の異常を検出する、
付記3記載のデータ処理装置。
(付記5) 前記診断回路は、前記誤り検出回路の動作の診断を完了すると、前記制御回路と前記誤り検出回路とを再接続する、
付記1記載のデータ処理装置。
(付記6) 前記コードは、BCCである、
付記1記載のデータ処理装置。
(付記7) データのDMA転送を制御する制御回路と前記データに付加されたコードに基づく前記データの誤り検出を行い前記誤り検出の結果を前記制御回路に出力する誤り検出回路とを有するDMAコントローラの診断回路が、前記制御回路と前記誤り検出回路との接続を遮断して前記誤り検出回路の動作を診断し、
上位コントローラが、前記診断回路による診断結果に応じて異常時処理を実行する、
診断方法。
(付記8) 前記診断回路は、診断用のデータと前記コードとを前記誤り検出回路に入力し、前記誤り検出回路による前記診断用のデータに対する誤り検出結果が適切であるか否かを判定し、適切でない場合に異常を示す前記診断結果を前記上位コントローラに通知する、
付記7記載の診断方法。
(付記9) 前記診断回路は、前記診断結果に時刻を示す時刻情報を付加して前記上位コントローラに通知し、
前記上位コントローラは、前記時刻情報に基づいて、前記誤り検出回路の異常を検出する、
付記7記載の診断方法。
(付記10) 前記診断回路は、前記誤り検出回路が正常である場合に誤り無しと判定される第1データと誤り有りと判定される第2データとを交互に前記誤り検出回路に入力し、前記誤り検出回路から順次応答される誤り検出結果を含む前記診断結果を前記上位コントローラに通知し、
前記上位コントローラは、前記誤り検出結果により示される誤り無し、および、誤り有りの応答の順序性に基づいて、前記誤り検出回路の異常を検出する、
付記9記載の診断方法。
(付記11) 前記診断回路は、前記誤り検出回路の動作の診断を完了すると、前記制御回路と前記誤り検出回路とを再接続する、
付記7記載の診断方法。
(付記12) 前記コードは、BCCである、
付記7記載の診断方法。
1 データ処理装置
10 DMAコントローラ
11 制御回路
12 誤り検出回路
13 診断回路
20 上位コントローラ
30 メモリ

Claims (7)

  1. データのDMA(Direct Memory Access)転送を制御する制御回路と、前記データに付加されたコードに基づく前記データの誤り検出を行い前記誤り検出の結果を前記制御回路に出力する誤り検出回路と、前記制御回路と前記誤り検出回路との接続を遮断して前記誤り検出回路の動作を診断する診断回路と、を備えるDMAコントローラと、
    前記診断回路による診断結果に応じて異常時処理を実行する上位コントローラと、
    を有するデータ処理装置。
  2. 前記診断回路は、診断用のデータと前記コードとを前記誤り検出回路に入力し、前記誤り検出回路による前記診断用のデータに対する誤り検出結果が適切であるか否かを判定し、適切でない場合に異常を示す前記診断結果を前記上位コントローラに通知する、
    請求項1記載のデータ処理装置。
  3. 前記診断回路は、前記誤り検出回路が正常である場合に誤り無しと判定される第1データを含む第1診断用データと、前記誤り検出回路が正常である場合に誤り有りと判定される第2データを含む第2診断用データとを交互に前記誤り検出回路に入力し、前記誤り検出回路から順次応答される誤り検出結果当該応答の時刻を示す時刻情報を付加した前記診断結果を生成し、前記診断結果を前記上位コントローラに通知し、
    前記上位コントローラは、前記時刻情報および前記誤り検出結果により示される誤り無し、および、誤り有りの応答の順序性に基づいて、前記誤り検出回路の異常を検出する、
    請求項1記載のデータ処理装置。
  4. 前記診断回路は、前記誤り検出回路が正常である場合に誤り無しと判定される第1データを含む第1診断用データ、前記誤り検出回路が正常である場合に誤り有りと判定される第2データを含む第2診断用データとを交互に前記誤り検出回路に入力し、前記誤り検出回路から順次応答される誤り検出結果を含む前記診断結果を前記上位コントローラに通知し、
    前記上位コントローラは、前記誤り検出結果により示される誤り無し、および、誤り有りの応答の順序性に基づいて、前記誤り検出回路の異常を検出する、
    請求項記載のデータ処理装置。
  5. 前記診断回路は、前記誤り検出回路の動作の診断を完了すると、前記制御回路と前記誤り検出回路とを再接続する、
    請求項1記載のデータ処理装置。
  6. 前記コードは、BCC(Block Check Character)である、
    請求項1記載のデータ処理装置。
  7. データのDMA転送を制御する制御回路と前記データに付加されたコードに基づく前記データの誤り検出を行い前記誤り検出の結果を前記制御回路に出力する誤り検出回路とを有するDMAコントローラの診断回路が、前記制御回路と前記誤り検出回路との接続を遮断して前記誤り検出回路の動作を診断し、
    上位コントローラが、前記診断回路による診断結果に応じて異常時処理を実行する、
    診断方法。
JP2018145079A 2018-08-01 2018-08-01 データ処理装置および診断方法 Active JP7125602B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018145079A JP7125602B2 (ja) 2018-08-01 2018-08-01 データ処理装置および診断方法
US16/523,031 US11068337B2 (en) 2018-08-01 2019-07-26 Data processing apparatus that disconnects control circuit from error detection circuit and diagnosis method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018145079A JP7125602B2 (ja) 2018-08-01 2018-08-01 データ処理装置および診断方法

Publications (2)

Publication Number Publication Date
JP2020021313A JP2020021313A (ja) 2020-02-06
JP7125602B2 true JP7125602B2 (ja) 2022-08-25

Family

ID=69227464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018145079A Active JP7125602B2 (ja) 2018-08-01 2018-08-01 データ処理装置および診断方法

Country Status (2)

Country Link
US (1) US11068337B2 (ja)
JP (1) JP7125602B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11637739B2 (en) * 2021-01-10 2023-04-25 Mellanox Technologies, Ltd. Direct memory access (DMA) engine for diagnostic data
JP7269508B2 (ja) * 2021-07-09 2023-05-09 ダイキン工業株式会社 サーバ、システム、および方法
US20230195553A1 (en) * 2021-12-16 2023-06-22 Cryptography Research, Inc. Pipelined hardware error classification and handling
EP4231163A1 (en) * 2022-02-16 2023-08-23 Infineon Technologies AG Direct memory access system, system for processing sensor data and method for direct memory access

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134241A (ja) 2004-11-09 2006-05-25 Fujitsu Ltd 記憶制御装置および外部記憶装置
US20140108869A1 (en) 2012-10-15 2014-04-17 Infineon Technologies Ag DMA Integrity Checker

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6037934B2 (ja) * 1980-04-30 1985-08-29 富士通株式会社 記憶装置の診断方式
JPS6155759A (ja) * 1984-08-28 1986-03-20 Nec Corp インタフエ−ス制御装置
FR2697663B1 (fr) * 1992-10-30 1995-01-13 Hewett Packard Cy Circuit de test de mémoire.
JP3175896B2 (ja) 1994-05-06 2001-06-11 株式会社日立製作所 バス照合型処理装置及び方法
JPH088996A (ja) * 1994-06-15 1996-01-12 Oki Electric Ind Co Ltd 障害検出装置
US5668815A (en) * 1996-08-14 1997-09-16 Advanced Micro Devices, Inc. Method for testing integrated memory using an integrated DMA controller
JPH10161954A (ja) 1996-11-29 1998-06-19 Hitachi Ltd データ通信装置
JP3199021B2 (ja) * 1998-03-19 2001-08-13 日本電気株式会社 半導体メモリ装置、該半導体メモリ装置の検査方法及び使用方法
US6694360B1 (en) * 2000-06-09 2004-02-17 3Com Corporation Multi-mode network interface having loadable software images
JP2009129301A (ja) * 2007-11-27 2009-06-11 Nec Electronics Corp 自己診断回路及び自己診断方法
US9417952B2 (en) * 2014-12-18 2016-08-16 Freescale Semiconductor, Inc. Direct memory access (DMA) unit with error detection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134241A (ja) 2004-11-09 2006-05-25 Fujitsu Ltd 記憶制御装置および外部記憶装置
US20140108869A1 (en) 2012-10-15 2014-04-17 Infineon Technologies Ag DMA Integrity Checker

Also Published As

Publication number Publication date
JP2020021313A (ja) 2020-02-06
US20200042379A1 (en) 2020-02-06
US11068337B2 (en) 2021-07-20

Similar Documents

Publication Publication Date Title
JP7125602B2 (ja) データ処理装置および診断方法
JP4641546B2 (ja) 入出力(i/o)エラーをハンドリングするための方法及びシステム
JP6333410B2 (ja) 障害処理方法、関連装置、およびコンピュータ
CN105468484B (zh) 用于在存储系统中确定故障位置的方法和装置
CN100583066C (zh) 存储控制系统及其控制方法,端口选择器,以及控制器
JP4940967B2 (ja) ストレージシステム、ストレージ装置、ファームウェアの活性交換方法、ファームウェアの活性交換プログラム
JP2548480B2 (ja) アレイディスク装置のディスク装置診断方法
US8667337B2 (en) Storage apparatus and method of controlling the same
US6845469B2 (en) Method for managing an uncorrectable, unrecoverable data error (UE) as the UE passes through a plurality of devices in a central electronics complex
JP4387968B2 (ja) 障害検出装置および障害検出方法
JP3284963B2 (ja) ディスクアレイの制御装置及び制御方法
JP2006139478A (ja) ディスクアレイシステム
JPH0950424A (ja) ダンプ採取装置およびダンプ採取方法
JP6206160B2 (ja) ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法
JP5151500B2 (ja) コンピュータシステム、障害処理方法および障害処理プログラム
US8522075B2 (en) Storage system having storage devices for storing data and control devices for controlling the storage devices
US9092364B2 (en) Implementing storage adapter performance control
EP2312443A2 (en) Information processing apparatus, method of controlling information processing apparatus and control program
JP2012133456A (ja) ストレージ装置及びストレージ装置の制御方法
WO2021043246A1 (zh) 数据读取方法及装置
JP2011108006A (ja) ディスクアレイ装置の故障診断システム、故障診断方法、故障診断プログラムおよびディスク装置
CN109343986B (zh) 处理内存故障的方法与计算机系统
JP2008041080A (ja) 記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ
JPH11120154A (ja) コンピュータシステムにおけるアクセス制御装置および方法
US11232197B2 (en) Computer system and device management method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210513

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210524

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210524

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220302

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220725

R150 Certificate of patent or registration of utility model

Ref document number: 7125602

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150