JP2006065394A - 障害検出装置 - Google Patents
障害検出装置 Download PDFInfo
- Publication number
- JP2006065394A JP2006065394A JP2004243966A JP2004243966A JP2006065394A JP 2006065394 A JP2006065394 A JP 2006065394A JP 2004243966 A JP2004243966 A JP 2004243966A JP 2004243966 A JP2004243966 A JP 2004243966A JP 2006065394 A JP2006065394 A JP 2006065394A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- request
- read
- write
- 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.)
- Withdrawn
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】 メモリへの書き込みが正常に終了したか否かをチェックすることが出来る障害検出装置を提供する。
【解決手段】 I/O装置とメモリユニット間に障害検出装置を設け、I/O装置から発行されたライトリクエストによるメモリユニットへの書き込みが正常に終了したか否かを検出する。障害検出装置は、I/O装置から発行されたライトリクエストに対応するリードリクエストを生成し、そのライトリクエストにより書き込まれたデータをメモリユニットから読み出す。メモリユニットから読み出したデータとライトリクエストのデータとを比較する。比較した結果、メモリユニットから読み出したデータとライトリクエストのデータとが異なった場合は、障害を検出したとして外部に通知する。
【選択図】 図2
【解決手段】 I/O装置とメモリユニット間に障害検出装置を設け、I/O装置から発行されたライトリクエストによるメモリユニットへの書き込みが正常に終了したか否かを検出する。障害検出装置は、I/O装置から発行されたライトリクエストに対応するリードリクエストを生成し、そのライトリクエストにより書き込まれたデータをメモリユニットから読み出す。メモリユニットから読み出したデータとライトリクエストのデータとを比較する。比較した結果、メモリユニットから読み出したデータとライトリクエストのデータとが異なった場合は、障害を検出したとして外部に通知する。
【選択図】 図2
Description
本発明は、情報処理装置のデータ通信にかかる障害を検出する障害検出装置に関し、特にDirect Memory Access(DMA)転送時のデータ通信にかかる障害を検出する障害検出装置に関する。
従来、I/O装置とメモリユニットとの間の中間装置では、ParityCheck、Error-Correcting Code(ECC)、チェックサムなどのチェック方式により障害検出が行われている。これらの方式は、送信元が転送データに対して、チェックコードを付加して送信し、受信装置がチェックコードによりデータを検査することによって、データの正当性を確保しようとする方式である(例えば、特許文献1参照。)。(以下、第1の従来技術という。)
また、チェックコードを用いるデータの保障方法の他に、高い信頼性を必要とするシステムで行われているデータ保障方法として、システムを多重化することによりデータの正合性を保障する方式がある。この方式は、システムを多重化し、同じデータを複数のシステムを用いて転送し、転送先でデータの一致チェックをする等して、データの欠損や破壊が発生していないかを検証する方式である。(以下、第2の従来技術という。)
特開2003−330813号公報
また、チェックコードを用いるデータの保障方法の他に、高い信頼性を必要とするシステムで行われているデータ保障方法として、システムを多重化することによりデータの正合性を保障する方式がある。この方式は、システムを多重化し、同じデータを複数のシステムを用いて転送し、転送先でデータの一致チェックをする等して、データの欠損や破壊が発生していないかを検証する方式である。(以下、第2の従来技術という。)
上述の第1の従来技術では、チェックコードによりエラーを検出しており、チェックコードで検出できるエラー量を超えた場合は、エラーを正確に検出できないという問題がある。
また、上述の第2の従来技術では、上記のチェックコードを用いる方式に比べて高い信頼性を確保することが出来るが、システムを多重化することによりシステムを構成するハードウェア量が大幅に増大するという問題がある。
本発明の目的は、エラー量が多い場合でもメモリへの書き込みが正常に終了したか否かをチェックすることができる障害検出装置を、システムを多重化せず少ないハードウェア量で提供することにある。
本発明の他の目的は、メモリへの書き込みが正常に終了したか否かのチェックを必要最小限にし、メモリアクセス処理の高速性を損なうことなくメモリ障害の検出を行う障害検出装置を提供することにある。
さらに、本発明の他の目的は、メモリへの書き込みが正常に終了したか否かのチェックを必要最小限だけ行い、複雑な構成を採用せず回路規模を増大させることなくメモリ障害の検出を行う障害検出装置を提供することにある。
上述の目的を達成するために、本発明の障害検出装置は、メモリリクエスト元とメモリとに接続された障害検出装置であって、前記メモリリクエスト元から前記メモリの所定のアドレスへ第1のデータを書き込むライトリクエストを前記メモリへ出力する出力手段と、前記メモリの前記アドレスから第2のデータを読み出すためのデータリードリクエストを生成し、前記メモリへ出力するリードリクエスト手段と、前記第1のデータと前記データリードリクエストにより前記メモリの前記アドレスから読み出された前記第2のデータとを比較する比較手段と、前記比較により前記第1のデータと前記第2のデータとが異なった場合は、障害信号を出力する障害通知手段とを備えることを特徴とする。
また、本発明の他の障害検出装置は、前記出力手段、又は前記比較手段は、バッファを備えることを特徴とする。
さらに、本発明の他の障害検出装置は、前記メモリからの出力を受け取るデータ制御手段をさらに含み、前記データ制御手段は、前記第2のデータを受け取った場合は、前記第2のデータを前記メモリリクエスト元へ送出することを抑止することを特徴とする。
また、本発明の他の障害検出装置は、前記データ制御手段は、前記メモリへのライトが完了したことをメモリリクエスト元に伝えるライトリプライを受け取る前に、前記第2のデータを受け取った場合は、前記第2のデータを前記比較手段に送出することを抑止することを特徴とする。
さらに、本発明の他の障害検出装置は、前記データ制御手段は、前記メモリリクエスト元から前記第1のデータの転送処理が完了したことを上位装置に伝える通知を受け取った後に、前記第2のデータを受け取った場合は、前記第2のデータを前記比較手段に送出することを抑止することを特徴とする。
また、本発明の他の障害検出装置は、前記データ制御手段は、バッファを備えることを特徴とする。
さらに、本発明の他の障害検出装置は、前記障害通知手段は、前記第1のデータと前記第2のデータとが異なった場合は、外部へ信号を出力することを特徴とする。
また、本発明の他の障害検出装置は、前記比較手段は、前記第1のデータの識別子と前記第2のデータの識別子とが一致した場合に前記第1のデータと前記第2のデータとの比較を行うことを特徴とする。
さらに、本発明の他の障害検出装置は、前記メモリリクエスト元から入力した前記第1のデータのライトリクエストに識別子を割り当てる識別子割り当て手段を備えることを特徴とする。
上記課題を解決するために本発明の障害検出方法は、メモリリクエスト元とメモリとに接続され、障害を検出する障害検出方法であって、前記メモリリクエスト元から前記メモリの所定のアドレスへ第1のデータを書き込むライトリクエストを前記メモリへ出力するステップと、前記メモリの前記アドレスから第2のデータを読み出すためのデータリードリクエストを生成するステップと、前記データリードリクエストを前記メモリへ出力するステップと、前記データリードリクエストにより前記メモリの前記アドレスから読み出された第2のデータを受け取り、前記第1のデータと前記第2のデータとを比較するステップと、前記比較により前記第1のデータと前記第2のデータとが異なった場合は、障害信号を出力するステップとを含むことを特徴とする。
また、本発明の他の障害検出方法は、前記メモリから出力された前記第2のデータを受け取った場合は、前記第2のデータを前記メモリリクエスト元へ送出することを抑止するステップを含むことを特徴とする。
さらに、本発明の他の障害検出方法は、前記メモリへのライトが完了したことをメモリリクエスト元に伝えるライトリプライを受け取る前に、前記第2のデータを受け取った場合は、前記第2のデータを前記比較手段に送出することを抑止するステップを含むことを特徴とする。
また、本発明の他の障害検出方法は、前記データ制御手段は、前記メモリリクエスト元から前記第1のデータの転送処理が完了したことを上位装置に伝える通知を受け取った後に、前記第2のデータを受け取った場合は、前記第2のデータを前記比較手段に送出することを抑止するステップを含むことを特徴とする。
さらに、本発明の他の障害検出方法は、前記障害信号を出力するステップは、前記第1のデータと前記第2のデータとが異なった場合は、外部へ信号を出力することを特徴とする。
また、本発明の他の障害検出方法は、前記比較するステップは、前記第1のデータの識別子と前記第2のデータの識別子とが一致した場合に前記第1のデータと前記第2のデータとの比較を行うことを特徴とする。
さらに、本発明の他の障害検出方法は、前記メモリリクエスト元から入力した前記第1のデータのライトリクエストに識別子を割り当てるステップを含むことを特徴とする。
上述した手段によれば、本発明は、障害検出装置内で作成したリードリクエストにより読み出されたデータとライトリクエストのデータとを比較することによって、システムを多重化させることなく、エラー量が多い場合でもメモリへの書き込みが正常に終了したか否かを検出することができる。
また、本発明では、障害検出装置内で作成したリードリクエストにより読み出されたデータをI/O装置へ送出することを抑止することによって、本来の処理と無関係のデータをI/O装置へ送出することがないので、I/O装置における処理手順の変更なしに本発明の障害検出装置を適用することができる。
さらに、障害検出装置内で作成したリードリクエストにより読み出されたデータが、ライトリクエストによりメモリへのライトが完了する前に読み出したデータである可能性のある場合は、ライトリクエストのデータと比較しないことにより、必要最小限のデータの検証を行うことができ、メモリアクセスの高速性を損なわずメモリ障害の検出を行うことが出来る。
また、障害検出装置内で作成したリードリクエストにより読み出されたデータが、CPUが他の処理を行った後に読み出したデータである可能性のある場合は、ライトリクエストのデータと比較しないことにより、必要最小限のデータの検証を行うことができ、メモリアクセスの高速性を損なわずメモリ障害の検出を行うことが出来る。
さらに、本発明では、ライトリクエストによりメモリに書き込まれたデータとリードリクエストにより読み出されたデータが異なっていた場合に、外部に通知することもできる。
また、本発明では、障害検出装置内でIDの割り当てを行うので、I/O装置からのライトリクエストにIDが付加されていない場合でも障害検出を行うことができる。
本発明の障害検出装置1の実施の形態について図面を参照して詳細に説明する。
図1を参照すると、障害検出装置1は、I/O装置2とメモリユニット3とに接続されている。メモリユニット3は、CPU4(上位装置)に接続されている。CPU4からメモリユニット3および障害検出装置1を介して、I/O装置2へDMA転送命令が伝送される構成になっている。I/O装置2は、メモリユニット3からライトリクエストによるライトが完了したことをI/O装置に伝えるライトリプライデータが送られてくると、CPU4へDMA転送の終了を通知するため、障害検出装置1及びメモリユニット3を介して、CPU4へDMA転送完了通知を送る。I/O装置2は複数設けられていてもよい。
次に、障害検出装置1の内部構成について説明する。
図2を参照すると、障害検出装置1は、I/O装置2から発行されたライトリクエスト300及びリードリクエストをメモリユニット3へ出力するとともにライトリクエスト300に基づいて作成されたリードリクエストをメモリユニット3へ出力するリクエスト出力手段100と、I/O装置2からのライトリクエスト300に基づいてリードリクエストを生成するリクエスト生成手段102と、リードリクエストに対応するデータをメモリユニット3から受け取るリプライデータ制御手段103と、ライトリクエスト300のデータとリードリクエストにより読み出されたデータとを比較する比較手段105と、比較手段105が比較したデータが異なっていた場合に障害をリクエスト出力手段100または外部へ通知する障害通知手段107とを含む。リクエスト出力手段100は、データバッファ101を有し、複数のライトリクエスト及び複数のリードリクエストを保存することが出来る。また、リプライデータ制御手段103は、データバッファ104を有し、複数のリードリクエストを保存することができる。また、比較手段105はデータバッファ105を有し、複数のライトリクエストを保存することが出来る。
ここで、図3を参照して、ライトリクエスト300について説明する。ライトリクエスト300は、ライトリクエスト情報301とライトデータ302とを含む。ライトリクエスト情報301は、書込み命令コード、リクエスト識別子(ID)、及び書込み先のメモリ内のアドレスを含む。IDは各々のライトリクエストに固有のものである。I/O装置2は、ライトリプライデータが送られてきたときに、このIDに基づいて、ライトリプライデータがどのライトリクエストの処理に対応するものであるかを判断する。I/O装置2が複数ある場合は、IDは送信元のI/O装置2を示す情報も含む。
再び図2を参照すると、I/O装置2からメモリユニット3に対して送られるライトリクエスト300は、データパス200を介してリクエスト出力手段100へ送られる。また、I/O装置2から、ライトリクエスト情報301がデータパス201を介してリクエスト生成手段102へ送られる。
リクエスト出力手段100は、I/O装置2で発行されたライトリクエスト300及びリードリクエスト、リクエスト生成手段102によりライトリクエスト情報301に基づいて作成されたリードリクエスト、及びI/O装置2で発行されたDMA転送完了通知をデータバッファ101に保存する。データバッファ101には、First-In First-Out(FIFO)方式のバッファを用い、リクエスト出力手段100は、データバッファ101に保存された順にメモリユニット3へ送出する。また、リクエスト出力手段100は、ライトリクエスト情報301に基づいて作成されたリードリクエスト及びI/O装置で発行されたDMA転送完了通知を、それぞれ、データパス205を介してメモリユニット3へ送ると同時に、それぞれと同じものをデータパス204を介してリプライデータ制御手段103へ送る。
リクエスト生成手段102は、送られてきたライトリクエスト情報301に基づいて、ライトリクエスト300によりメモリユニット3内に書き込まれたデータを書き込み先のアドレスから読み出すためのリードリクエストを生成する。リクエスト生成手段102で生成されたリードリクエストは、データパス202を介してリクエスト出力手段100へ送られる。
リプライデータ制御手段103は、データパス204を介してリクエスト出力手段100から送られてきたライトリクエスト情報301に基づいて作成されたリードリクエスト、及びI/O装置で発行されたDMA転送完了通知をデータバッファ104に保存する。また、リプライデータ制御手段103は、データパス206を介して、メモリユニット3からのリプライデータを受け取る。リプライデータには、ライトリクエストによるライトが完了したことをI/O装置に伝えるライトリプライデータ、I/O装置2で発行されたリードリクエストによりメモリユニット3から読み出されたリードリプライデータ、またはリクエスト生成手段102で発行されたリードリクエストによりメモリユニット3から読み出されたリードリプライデータが含まれる。I/O装置2で発行されたリードリクエストによりメモリユニット3から読み出されたリードリプライデータ、及びリクエスト生成手段102で発行されたリードリクエストによりメモリユニット3から読み出されたリードリプライデータには、所望のアドレスから読み出されたデータとIDとが含まれる。各々のリードリプライデータに含まれるIDとしては、メモリユニット3により各々に対応するリードリクエストのIDが与えられる。リプライデータ制御手段103は、IDに基づき以下の(1)〜(3)をチェックする。
(1)リクエスト生成手段102で発行されたリードリクエストに対応するデータであることをIDによりチェックする。これは、障害検出装置1内のリクエスト生成手段102で発行されたリードリクエストに対応するデータだけを比較し、リクエスト生成手段102で発行されたリードリクエストに対応するデータは、I/O装置2へは送らないためである。また、リクエスト生成手段102で発行されたリードリクエストに対応するデータではないもの、つまり、ライトリプライデータ及びI/O装置2で発行されたリードリクエストに対応するリードリプライデータは、I/O装置2へ送る。
(2)メモリユニット3から送られたリードリプライデータが、そのIDに対応するライトリプライデータより後にリプライデータ制御手段103に送られてきたこと、すなわちメモリユニット3にライトされた後にリードされたデータであることをチェックする。メモリユニット3にライトされた後にリードされたデータについての比較を行うためである。ライトリプライデータより前にリードデータがリプライデータ制御手段103に送られてきた場合は、そのリードデータは、ライトされる前にリードされたデータである可能性があるので、そのリードデータは比較対照としない。
(3)リードリプライデータがメモリユニット3から送られた時に、そのリードリプライデータのIDに対応するDMA転送完了通知がデータバッファ104に保存されていないこと、すなわちI/O装置2からDMA転送完了通知がメモリユニット3、すなわちCPU4へ送られていないことをチェックする。DMA転送完了通知がCPU4に送られると、CUP4はメモリユニット3内のその転送終了したアドレスのデータに対して別の処理、例えば、書き換えを行うことができる。従って、リプライデータ制御部103にDMA転送完了通知が送られてきた後にリードデータが送られてきた場合は、CPU4が別の処理を行った後のデータをリードしている可能性があるので、そのリードデータは比較対照としない。
(1)リクエスト生成手段102で発行されたリードリクエストに対応するデータであることをIDによりチェックする。これは、障害検出装置1内のリクエスト生成手段102で発行されたリードリクエストに対応するデータだけを比較し、リクエスト生成手段102で発行されたリードリクエストに対応するデータは、I/O装置2へは送らないためである。また、リクエスト生成手段102で発行されたリードリクエストに対応するデータではないもの、つまり、ライトリプライデータ及びI/O装置2で発行されたリードリクエストに対応するリードリプライデータは、I/O装置2へ送る。
(2)メモリユニット3から送られたリードリプライデータが、そのIDに対応するライトリプライデータより後にリプライデータ制御手段103に送られてきたこと、すなわちメモリユニット3にライトされた後にリードされたデータであることをチェックする。メモリユニット3にライトされた後にリードされたデータについての比較を行うためである。ライトリプライデータより前にリードデータがリプライデータ制御手段103に送られてきた場合は、そのリードデータは、ライトされる前にリードされたデータである可能性があるので、そのリードデータは比較対照としない。
(3)リードリプライデータがメモリユニット3から送られた時に、そのリードリプライデータのIDに対応するDMA転送完了通知がデータバッファ104に保存されていないこと、すなわちI/O装置2からDMA転送完了通知がメモリユニット3、すなわちCPU4へ送られていないことをチェックする。DMA転送完了通知がCPU4に送られると、CUP4はメモリユニット3内のその転送終了したアドレスのデータに対して別の処理、例えば、書き換えを行うことができる。従って、リプライデータ制御部103にDMA転送完了通知が送られてきた後にリードデータが送られてきた場合は、CPU4が別の処理を行った後のデータをリードしている可能性があるので、そのリードデータは比較対照としない。
(1)〜(3)全てを満たす場合は、メモリユニット3から送られてきたデータは、リクエスト生成手段102で発行されたリードリクエストに対応するリードリプライデータであり、リプライデータ制御手段103により、データパス207を介して、リクエスト生成手段102で発行されたリードリクエストに対応するデータを比較手段105へ送られる。
(1)は満たすが、(2)又は(3)を満たさない場合は、メモリユニット3からのデータは、リクエスト生成手段102で発行されたリードリクエストに対応するリードリプライデータであるが、ライトリクエスト300によりライトされる前にリードしたデータであるか、又は、CPU4により他の処理が行われたデータである可能性があり、比較対照のデータにはならないので、そのデータは破棄する。
(1)を満たさない場合は、メモリユニット3からのデータは、リクエスト生成手段102で発行されたリードリクエストに対応するデータではなく、ライトリプライデータ、またはI/O装置2で発行されたリードリクエストに対応するリードリプライデータであり、リプライデータ制御手段103により、データパス208を介して、そのデータはI/O装置2へ送られる。
また、比較手段105は、バッファ106に記憶しているライトリクエストのデータとリプライデータ制御手段103から送られたリクエスト生成手段102で発行されたリードリクエストにより読み出されたデータとを比較する。比較手段105は、リクエスト生成手段102で発行されたリードリクエストのIDに一致するIDを持つライトリクエストを検索し、ライトリクエストのデータとリクエスト生成手段102で発行されたリードリクエストにより読み出されたデータとを比較する。比較した結果、ライトリクエストのデータとリードリクエストにより読み出されたデータとが一致した場合は、比較手段105は、それぞれのデータを消去する。ライトリクエストに対応するデータとリードリクエストに対応するデータとが異なった場合は、そのライトリクエストを障害通知手段107に通知する。
障害通知手段107はデータパス210を介して障害信号を障害検出装置1の外部に出力する。外部に出力された信号を用いて、外部のLEDを点灯させる又はブザーを鳴らす等の外部へ報知する手法をとる。
次に、本発明の第1の実施の形態の動作について図面を参照して説明する。
図2、3および、4を参照すると、時刻T1において、データをメモリユニット3の所定のアドレスに書き込むライトリクエストA1がI/O装置2から発行される。
時刻T2において、ライトリクエストA1は、データパス200を介してリクエスト出力手段100へ送られ、データパス205を介してメモリユニット3へ送られる。ライトリクエストA1は、データパス203を介して、比較手段105に送られ、データバッファ106に保存される。また、リクエスト生成手段102において、ライトリクエストA1に対応するものであって、メモリユニット3の所定のアドレスからデータを読み出すためのリードリクエストB1が生成される。
時刻T3において、リクエスト出力手段100はデータパス202を介してリクエスト生成手段102からリードリクエストB1を受け取る。リクエスト出力手段100は、データパス205を介してメモリユニット3へリードリクエストB1を送る。さらに、リクエスト出力手段100は、データパス204を介してリプライデータ制御手段103へ、リードリクエストB1を送る。リプライデータ制御手段103は、送られてきたリードリクエストB1をデータバッファ104に保存する。また、メモリユニット3では、ライトリクエストA1によって、データC1が書き込まれる。
時刻T4において、メモリユニット3は、リードリクエストB1により読み出されたデータC1を、データパス206を介してリプライデータ制御手段103へ送る。また、メモリユニット3は、ライトリクエストA1のライトが終了したことをI/O装置2に通知するライトリプライデータD1を、データパス206を介してリプライデータ制御手段103へ送る。さらに、リプライデータ制御手段103は、メモリユニット3から送られてきたライトリプライデータデータD1を、データパス208を介してI/O装置2へ送る。
時刻T5において、リプライデータ制御手段103は、上述した(1)〜(3)をチェックする。図4においては、データC1がリードリクエストB1により読み出されたデータであり、対応するライトリプライデータD1はT4でI/O装置2へ送られており、また、DMA転送完了通知E1はまだ発行されていない。従って、リプライデータ制御手段103は、データパス207を介して比較手段105へデータC1を送る。比較手段105は、データC1とバッファに保存されているライトリクエストA1とを比較する。図4では、データC1とライトリクエストA1のデータとが同一であるので、それらのデータを削除する。また、I/O装置2は、ライトリプライデータD1に基づいて、DMA転送完了通知E1を発行する。
時刻T6において、DMA転送完了通知E1は、データパス200を介してリクエスト出力手段100へ送られ、データパス205を介してメモリユニット3へ送られる。また、リプライデータ制御手段103は、送られてきたDMA転送完了通知E1をデータバッファ104に保存する。しかし、DMA転送完了通知E1に対応するリードデータC1は比較手段103へ送られており、比較手段105に対する転送は正常に完了しているので、リプライデータ制御手段103に送られたDMA転送完了通知E1は破棄される。
次に、図5を用いて、メモリユニット3に書き込まれたデータC1´が誤っている場合の動作について説明する。図4の説明と重複する部分は省略する。
時刻T3において、メモリユニット3にライトリクエストA1により、データC1´が書き込まれる。
時刻T4に、メモリユニット3は、リードリクエストB1により読み出されたデータC1´を、データパス206を介してリプライデータ制御手段103へ送る。
時刻T5に、図5においては、データC1´がリードリクエストB1により読み出されたデータであり、対応するライトリプライデータD1はT4でI/O装置2へ送られており、また、DMA転送完了通知E1はまだ発行されていない。従って、リプライデータ制御手段103は、データパス207を介して比較手段105へデータC1´を送る。比較手段105は、データC1´とバッファに保存されているライトリクエストA1とを比較する。図5では、データC1´とライトリクエストA1のデータとが異なるので、書込みエラー信号Fを、データパス209を介して障害通知手段107へ送る。また、I/O装置2は、ライトリプライデータD1に基づいて、DMA転送完了通知E1を発行する。
時刻T6において、DMA転送完了通知E1は、データパス200を介してリクエスト出力手段100へ送られ、データパス205を介してメモリユニット3へ送られる。また、リプライデータ制御手段103は、送られてきたDMA転送完了通知E1をデータバッファ104に保存する。しかし、DMA転送完了通知E1に対応するリードデータC1´は比較手段103へ送られており、比較手段105に対する転送は正常に完了しているので、リプライデータ制御手段103に送られたDMA転送完了通知E1は破棄される。
本発明の第1の実施の形態では、リクエスト生成手段102により作成したリードリクエストB1により読み出されたデータとライトリクエストA1のデータとを比較することによって、システムを多重化することなく、エラー量が多い場合でもメモリへの書き込みが正常に終了したか否かを検出することができる。また、リクエスト生成手段102により作成したリードリクエストB1により読み出されたデータをI/O装置2へ送出することを抑止することによって、本来の処理と無関係のデータをI/O装置2へ送出することがないので、I/O装置2における処理手順の変更なしに本発明の障害検出装置1を適用することができる。
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。本発明の第2の実施の形態では、何らかの事情により、リプライデータ制御手段103において、ライトリプライデータD2が送られてくる前にリードリプライデータC2´がメモリユニット3から送られてきた場合、リードリプライデータC2´がライトリプライデータD2によりメモリユニット3にライトされる前にリードされたデータである可能性があり、正確な比較結果が得られないので、本第2の実施の形態の障害検出装置はリードリプライデータC2´を用いた比較を行わない。
図6を参照すると、時刻T1において、データをメモリユニット3の所定のアドレスに書き込むライトリクエストA2がI/O装置2から発行される。
時刻T2において、ライトリクエストA2は、データパス200を介してリクエスト出力手段100へ送られ、データパス205を介してメモリユニット3へ送られる。ライトリクエストA2は、データパス203を介して、比較手段105に送られ、データバッファ106に保存される。また、リクエスト生成手段102において、ライトリクエストA2に対応するものであって、メモリユニット3の所定のアドレスからデータを読み出すためのリードリクエストB2が生成される。
時刻T3において、リクエスト出力手段100はデータパス202を介してリクエスト生成手段102からリードリクエストB2を受け取る。リクエスト出力手段100は、データパス205を介してメモリユニット3へリードリクエストB2を送る。さらに、リクエスト出力手段100は、データパス204を介してリプライデータ制御手段103へ、リードリクエストB2を送る。リプライデータ制御手段103は、送られてきたリードリクエストB2をデータバッファ104に保存する。
時刻T4において、メモリユニット3は、リードリクエストB2により読み出されたリードリプライデータC2´を、データパス206を介してリプライデータ制御手段103へ送る。
時刻T5において、メモリユニット3では、ライトリクエストA2によって、データC2が書き込まれる。また、リプライデータ制御手段103は、上述した(1)〜(3)をチェックする。図6においては、リードリプライデータC2´がリードリクエストB2により読み出されたリードリプライデータであり、対応するライトリプライデータD2はリプライデータ制御手段103には届いておらず、また、DMA転送完了通知E2はまだ発行されていない。従って、リードリプライデータC2´は、ライトリクエストA2によりライトされる前にリードされたデータである可能性があり、ライトリクエストA2との比較対照としないので、リプライデータ制御手段103は、リードリプライデータC2´を、比較手段105には送らずに破棄する。
時刻T6において、メモリユニット3は、ライトリクエストA2のライトが終了したことをI/O装置2に通知するライトリプライデータD2を、データパス206を介してリプライデータ制御手段103へ送る。さらに、リプライデータ制御手段103は、メモリユニット3から送られてきたライトリプライデータD2を、データパス208を介してI/O装置2へ送る。
時刻T7において、I/O装置2は、ライトリプライデータD2に基づいて、DMA転送完了通知E2を発行する。
時刻T8において、DMA転送完了通知E2は、データパス200を介してリクエスト出力手段100へ送られ、データパス205を介してメモリユニット3へ送られる。また、リプライデータ制御手段103は、送られてきたDMA転送完了通知E2をデータバッファ104に保存する。しかし、DMA転送完了通知E2に対応するリードリプライデータC2´は時刻T5において破棄されているので、リプライデータ制御手段103に送られたDMA転送完了通知E2は破棄される。
本発明の第2の実施の形態では、リードリプライデータC2´がライトリプライデータD2によりメモリユニット3にライトされた後にリードされたデータであることが不確かな場合には、比較を行わないことにより、ライトされた後にリードされたデータであることを確認すること、又は再度リードすることにかかる時間を省略するため、メモリアクセス処理の高速性を損なうことがない。
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。I/O装置2は、メモリユニット3からライトリクエストA2によるライトが完了したことをI/O装置に伝えるライトリプライデータD2が送られてくると、CPU4へDMA転送の終了を通知するため、障害検出装置1及びメモリユニット3を介して、CPU4へDMA転送完了通知E2を送る。本発明の第3の実施の形態では、何らかの事情により、リプライデータ制御手段103において、メモリユニット3からリードリプライデータC3´が送られてくる前に、DMA転送完了通知E3がI/O装置2から送られてきた場合、リードリプライデータC3´はCPU4が別の処理を行った後のデータをリードしている可能性があり、正確な比較結果が得られないので、本第3の実施の形態の障害検出装置はリードリプライデータC3´を用いた比較を行わない。
図7を参照すると、時刻T1において、データをメモリユニット3の所定のアドレスに書き込むライトリクエストA3がI/O装置2から発行される。
時刻T2において、ライトリクエストA3は、データパス200を介してリクエスト出力手段100へ送られ、データパス205を介してメモリユニット3へ送られる。ライトリクエストA3は、データパス203を介して、比較手段105に送られ、データバッファ106に保存される。また、リクエスト生成手段102において、ライトリクエストA3に対応するものであって、メモリユニット3の所定のアドレスからデータを読み出すためのリードリクエストB3が生成される。
時刻T3において、リクエスト出力手段100はデータパス202を介してリクエスト生成手段102からリードリクエストB3を受け取る。リクエスト出力手段100は、データパス205を介してメモリユニット3へリードリクエストB3を送る。さらに、リクエスト出力手段100は、データパス204を介してリプライデータ制御手段103へ、リードリクエストB3を送る。リプライデータ制御手段103は、送られてきたリードリクエストB3をデータバッファ104に保存する。また、メモリユニット3では、ライトリクエストA3によって、データC3が書き込まれる。
時刻T4において、メモリユニット3は、リードリクエストB3により読み出されたリードリプライデータC3´を、データパス206を介してリプライデータ制御手段103へ送る。また、メモリユニット3は、ライトリクエストA3のライトが終了したことをI/O装置2に通知するライトリプライデータD3を、データパス206を介してリプライデータ制御手段103へ送る。さらに、リプライデータ制御手段103は、メモリユニット3から送られてきたライトリプライデータD3を、データパス208を介してI/O装置2へ送る。
時刻T5において、I/O装置2は、ライトリプライデータD3に基づいて、DMA転送完了通知E3を発行する。
時刻T6において、DMA転送完了通知E3は、データパス200を介してリクエスト出力手段100へ送られ、データパス205を介してメモリユニット3へ送られる。また、リプライデータ制御手段103は、送られてきたDMA転送完了通知E3をデータバッファ104に保存する。
時刻T7において、メモリユニット3は、リードリクエストB3により読み出されたリードリプライデータC3´を、データパス206を介してリプライデータ制御手段103へ送る。
時刻T8において、リプライデータ制御手段103は、上述した(1)〜(3)をチェックする。図7においては、リードリプライデータC3´がリードリクエストB3により読み出されたデータであり、対応するライトリプライデータD3はリプライデータ制御手段103には届いているが、DMA転送完了通知E3が発行され、リプライデータ制御手段103に届いている。従って、リードリプライデータC3´は、CPU4により書き換えが行われた後にリードされたデータである可能性があり、ライトリクエストA3との比較対照にはならないので、リプライデータ制御手段103は、リードリプライデータC3´を、比較手段105には送らずに破棄する。
本発明の第3の実施の形態では、読み出されたデータが、CPU4が他の処理を行った後に読み出したデータである可能性のある場合は、比較を行わないことにより、リードされたデータに対しCPU4による他の処理が行われていないことを確認することにかかる時間を省略するため、メモリアクセス処理の高速性を損なうことがない。
次に、本発明の第4の実施の形態について図面を参照して詳細に説明する。図1に示した第1の実施の形態の部分と同等の部分には同一の参照番号を付し、重複する説明は省略する。
図8を参照すると、第4の実施の形態では、データパス200上にID割り当て手段108を加え、リプライ制御手段113からID割り当て手段108へデータパス211を配接した点が第1の実施の形態と異なる。他の構成は第1の実施の形態と同様である。
第1の実施の形態では、ライトリクエストにIDが含まれているものを扱っていたが、第4の実施の形態では、I/O装置2からのライトリクエストにIDが含まれないものを扱う。ID割り当て手段108は、I/O装置2が1つの場合でもI/O装置2が複数ある場合でも、受け取ったライトリクエスト300に対して、ID割り当て手段108が受け取った順に連続したIDを割り当て、ライトリクエスト300をリクエスト出力手段100へ、ライトリクエスト情報301をリクエスト生成手段102へ送る。リプライデータ制御手段113は、メモリユニット3からIDを割り当てられたライトリクエストに対するライトリプライデータが送られてきたときに、そのライトリプライデータからIDを削除し、I/O装置2へID削除済みのライトリプライデータを送る。リプライデータ制御手段113は、削除したIDをデータパス211を介してID割り当て手段108へ送る。ID割り当て手段108は送られてきたIDに基づき、一定時間内は使用されたIDを他のライトリクエストには割り当てないようにする。これら以外の動作に関しては第1の実施の形態と同じである。
本発明の第4の実施の形態では、ID割り当て手段108によりIDの割り当てを行うので、I/O装置からのライトリクエストにIDが付加されていない場合でも障害検出を行うことができる。
以上好ましい実施の形態及び実施の形態をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形し実施することが出来る。
1 障害検出装置
2 I/O装置
3 メモリユニット
4 CPU
100 リクエスト出力手段
101、104、106 データバッファ
102 リクエスト生成手段
103 リプライデータ制御手段
105 比較手段
107 障害通知手段
108 ID割り当て手段
200、・・・、210 データパス
300 ライトデータ
301 ライトリクエスト情報
302 ライトデータ
2 I/O装置
3 メモリユニット
4 CPU
100 リクエスト出力手段
101、104、106 データバッファ
102 リクエスト生成手段
103 リプライデータ制御手段
105 比較手段
107 障害通知手段
108 ID割り当て手段
200、・・・、210 データパス
300 ライトデータ
301 ライトリクエスト情報
302 ライトデータ
Claims (16)
- メモリリクエスト元とメモリとに接続された障害検出装置であって、
前記メモリリクエスト元から前記メモリの所定のアドレスへ第1のデータを書き込むライトリクエストを前記メモリへ出力する出力手段と、
前記メモリの前記アドレスから第2のデータを読み出すためのデータリードリクエストを生成し、前記メモリへ出力するリードリクエスト手段と、
前記第1のデータと前記データリードリクエストにより前記メモリの前記アドレスから読み出された前記第2のデータとを比較する比較手段と、
前記比較により前記第1のデータと前記第2のデータとが異なった場合は、障害信号を出力する障害通知手段と、
を備えることを特徴とする障害検出装置。 - 前記出力手段、又は前記比較手段は、バッファを備えることを特徴とする請求項1に記載の障害検出装置。
- 前記メモリからの出力を受け取るデータ制御手段をさらに含み、
前記データ制御手段は、前記第2のデータを受け取った場合は、前記第2のデータを前記メモリリクエスト元へ送出することを抑止することを特徴とする請求項1又は2に記載の障害検出装置。 - 前記データ制御手段は、前記メモリへのライトが完了したことをメモリリクエスト元に伝えるライトリプライを受け取る前に、前記第2のデータを受け取った場合は、前記第2のデータを前記比較手段に送出することを抑止することを特徴とする請求項3に記載の障害検出装置。
- 前記データ制御手段は、前記メモリリクエスト元から前記第1のデータの転送処理が完了したことを上位装置に伝える通知を受け取った後に、前記第2のデータを受け取った場合は、前記第2のデータを前記比較手段に送出することを抑止することを特徴とする請求項3又は4に記載の障害検出装置。
- 前記データ制御手段は、バッファを備えることを特徴とする請求項3乃至5に記載の障害検出装置。
- 前記障害通知手段は、前記第1のデータと前記第2のデータとが異なった場合は、外部へ信号を出力することを特徴とする請求項1乃至6に記載の障害検出装置。
- 前記比較手段は、前記第1のデータの識別子と前記第2のデータの識別子とが一致した場合に前記第1のデータと前記第2のデータとの比較を行うことを特徴とする請求項1乃至7に記載の障害検出装置。
- 前記メモリリクエスト元から入力した前記第1のデータのライトリクエストに識別子を割り当てる識別子割り当て手段を備えることを特徴とする請求項8に記載の障害検出装置。
- メモリリクエスト元とメモリとに接続され、障害を検出する障害検出方法であって、
前記メモリリクエスト元から前記メモリの所定のアドレスへ第1のデータを書き込むライトリクエストを前記メモリへ出力するステップと、
前記メモリの前記アドレスから第2のデータを読み出すためのデータリードリクエストを生成するステップと、
前記データリードリクエストを前記メモリへ出力するステップと、
前記データリードリクエストにより前記メモリの前記アドレスから読み出された第2のデータを受け取り、前記第1のデータと前記第2のデータとを比較するステップと、
前記比較により前記第1のデータと前記第2のデータとが異なった場合は、障害信号を出力するステップと、
を含むことを特徴とする障害検出方法。 - 前記メモリから出力された前記第2のデータを受け取った場合は、前記第2のデータを前記メモリリクエスト元へ送出することを抑止するステップを含むことを特徴とする請求項10に記載の障害検出方法。
- 前記メモリへのライトが完了したことをメモリリクエスト元に伝えるライトリプライを受け取る前に、前記第2のデータを受け取った場合は、前記第2のデータを前記比較手段に送出することを抑止するステップを含むことを特徴とする請求項11に記載の障害検出方法。
- 前記データ制御手段は、前記メモリリクエスト元から前記第1のデータの転送処理が完了したことを上位装置に伝える通知を受け取った後に、前記第2のデータを受け取った場合は、前記第2のデータを前記比較手段に送出することを抑止するステップを含むことを特徴とする請求項11又は12に記載の障害検出方法。
- 前記障害信号を出力するステップは、前記第1のデータと前記第2のデータとが異なった場合は、外部へ信号を出力することを特徴とする請求項10乃至13に記載の障害検出方法。
- 前記比較するステップは、前記第1のデータの識別子と前記第2のデータの識別子とが一致した場合に前記第1のデータと前記第2のデータとの比較を行うことを特徴とする請求項10乃至14に記載の障害検出方法。
- 前記メモリリクエスト元から入力した前記第1のデータのライトリクエストに識別子を割り当てるステップを含むことを特徴とする請求項15に記載の障害検出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004243966A JP2006065394A (ja) | 2004-08-24 | 2004-08-24 | 障害検出装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004243966A JP2006065394A (ja) | 2004-08-24 | 2004-08-24 | 障害検出装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006065394A true JP2006065394A (ja) | 2006-03-09 |
Family
ID=36111875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004243966A Withdrawn JP2006065394A (ja) | 2004-08-24 | 2004-08-24 | 障害検出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006065394A (ja) |
-
2004
- 2004-08-24 JP JP2004243966A patent/JP2006065394A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5107880B2 (ja) | データ転送処理装置及び方法 | |
CN110532117B (zh) | 针对在第一和第二时钟域之间传输的主信号的错误检查 | |
JP2007300619A (ja) | 異なるデータ保護方法間で切換えにおいてデータの完全性を維持する方法、装置及びプログラム | |
US9191030B2 (en) | Memory controller, data storage device, and memory controlling method | |
US8140940B2 (en) | Method and apparatus for controlling memory | |
CN105373441B (zh) | 用于互连电路的传输控制检查 | |
JP2008139908A (ja) | メモリ制御装置、コンピュータシステム及びデータ再生記録装置 | |
JP2008158800A (ja) | 情報処理装置、履歴管理方法、履歴管理プログラム | |
JP4834722B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
KR100717572B1 (ko) | 에러 검출 정정 장치의 제어 방법, 에러 검출 정정 장치,정보 처리 시스템, 에러 검출 정정 장치의 제어 프로그램,데이터 처리 장치 | |
JP4839364B2 (ja) | 結合されたコマンドおよびデータ・コード | |
US8291270B2 (en) | Request processing device, request processing system, and access testing method | |
JP2006065394A (ja) | 障害検出装置 | |
JP2001290710A (ja) | データエラー検出装置 | |
CN112346922B (zh) | 服务器装置及其通讯协议方法 | |
JP2012048277A (ja) | 半導体集積回路、デバッグシステム、デバッグ方法、デバッグプログラム及び記録媒体 | |
JP2009026080A (ja) | バスシステム及びバス障害対処方法 | |
JP4439295B2 (ja) | データ転送制御装置 | |
JP5239252B2 (ja) | データ伝送装置及び半導体ストレージ装置 | |
JPS62125453A (ja) | 記憶装置 | |
JP5439742B2 (ja) | システムコントローラ、半導体装置、及びインターフェイス試験方法 | |
JPH038040A (ja) | 1ビット誤リ情報記憶装置 | |
JP2009042855A (ja) | 回路間データ転送方法およびシステム | |
JP2005250551A (ja) | ディスクアレイ装置、転送データ制御方法 | |
JP2007179084A (ja) | ディスク装置およびディスク書込データ転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20071106 |