[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2006134064A - 記憶メディアへの書込みエラーを検出する記憶制御装置及び方法 - Google Patents

記憶メディアへの書込みエラーを検出する記憶制御装置及び方法 Download PDF

Info

Publication number
JP2006134064A
JP2006134064A JP2004322307A JP2004322307A JP2006134064A JP 2006134064 A JP2006134064 A JP 2006134064A JP 2004322307 A JP2004322307 A JP 2004322307A JP 2004322307 A JP2004322307 A JP 2004322307A JP 2006134064 A JP2006134064 A JP 2006134064A
Authority
JP
Japan
Prior art keywords
comparison
data
write data
storage
comparison target
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
Application number
JP2004322307A
Other languages
English (en)
Inventor
Tsutomu Koga
努 小賀
Mitsuru Inoue
充 井上
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004322307A priority Critical patent/JP2006134064A/ja
Priority to US11/022,781 priority patent/US7570447B2/en
Publication of JP2006134064A publication Critical patent/JP2006134064A/ja
Withdrawn legal-status Critical Current

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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】 記憶メディアへの書込みにエラーが生じたことを検出するために記憶制御装置の性能が劣化してしまうことを抑える。
【解決手段】 ホスト装置(301)からのライトデータを記憶するキャッシュ領域(307)と、記憶メディア(313)と、記憶メディアのためのデータ記憶域(321)と、比較部(327)とが備えられる。キャッシュ領域(307)上のN個のライトデータについて第一比較対象が生成され、N個のライトデータがデータ記憶域(321)に転送される。データ記憶域の指定されたアドレスからライトデータが読み出され、そのライトデータが記憶メディアに書かれる。N個のライトデータが読み出された場合、それらについての第二比較対象が生成される。第一比較対象と第二比較対象との比較が、比較部により行われ、その比較の結果が不適合の場合、キャッシュ領域上のN個のライトデータが再びデータ記憶域に転送される。
【選択図】図12

Description

本発明は、ハードディスク等の記憶メディアへデータを書き込む記憶制御技術に関し、特に、記憶メディアへの書込みエラーを検出するための技術に関わる。
例えば、記憶メディア装置を備える記憶制御装置が知られている。この種の記憶制御装置として、例えば、配列された複数のディスク装置を備えるディスクアレイ装置がある。この種の記憶制御装置は、例えば、ホスト装置から、データのライト命令或いはリード命令を受信し(以下、IO要求)、そのIO要求に応答して、記憶メディアにデータを書き込むか、或いは、記憶メディアからデータを読み出し、読み出したデータをホスト装置に返送するかのいずれかを行う。この種の記憶制御装置では、例えば、LRC(Longitudinal Redundancy Check)を採用することで、記憶メディアに書き込まれるデータと、その記憶メディアから読み出されたデータとの整合性を保証することができる(例えば特許文献1の段落2乃至4)。
特開2000−347815号公報
上記の技術によれば、記憶メディアへの書込みにエラーが生じていることは、記憶メディアにデータが書込まれ、その書き込まれたデータが読み出された場合に、検出することができる。しかし、その場合には、エラーの無いデータは記憶制御装置に残っていないので、RAIDグループからの再計算により(例えば、RAIDレベル5におけるパリティデータを用いる手法により)、エラーの無いデータを復元する必要が生じる。データを復元するための処理を実行する場合には、単位時間あたりに処理されるIO要求の数が減ってしまう。換言すれば、記憶制御装置の性能劣化が伴ってしまう。
従って、本発明の一つの目的は、記憶メディアへの書込みにエラーが生じたことを検出するために記憶制御装置の性能が劣化してしまうことを抑えられるようにすることにある。
本発明の他の目的は、後述の説明から明らかになるであろう。
本発明の第一の側面に従う記憶制御装置(以下、第一の記憶制御装置)は、書込み対象のデータであるライトデータを送信するホスト装置から前記ライトデータを受信し記憶メディアに書き込む装置である。その記憶制御装置は、データを記憶する記憶メディアを備えた記憶メディア装置と、前記ホスト装置から受信したライトデータを一時的に記憶するキャッシュ領域と、前記キャッシュ領域に記憶されたライトデータを前記キャッシュ領域から取得し、前記取得したライトデータを前記記憶メディア装置に転送する記憶メディアアダプタと、プロセッサとを備える。前記記憶メディアアダプタは、前記キャッシュ領域からライトデータを取得されたライトデータを蓄積するデータバッファと、前記データバッファに少なくともK個(Kは一以上の整数)のライトデータが蓄積された場合に、前記K個のライトデータについての第一の比較対象を生成する第一比較対象生成部と、前記生成された第一比較対象を記憶する第一比較対象記憶域と、前記K個のライトデータを含んだデータフレームを前記記憶メディア装置に送信する送信機であるアダプタ送信機とを備える。前記記憶メディア装置は、前記記憶メディアアダプタから前記データフレームを受信する受信機である記憶メディア受信機と、少なくとも一つのライトデータを記憶するサブ領域と、前記サブ領域を特定するためのアドレスとをそれぞれ複数個有し、前記受信されたデータフレームに含まれているK個のライトデータを、前記複数のサブ領域のうちの少なくとも一つのサブ領域に蓄積するデータ記憶域と、前記データ記憶域の複数のアドレスから読み出し開始のアドレスを指定するアドレス指定するアドレス指定部と、前記指定されたアドレスが表すサブ領域からライトデータを読出し、前記読み出されたライトデータを前記記憶メディアに書き込む記憶メディア書込み部と、K個のライトデータが前記データ記憶域から読み出される場合に、前記読み出されるK個のライトデータについての第二の比較対象を生成する第二比較対象生成部と、前記生成された第二比較対象を記憶する第二比較対象記憶域と、前記第二比較対象記憶域に記憶された第二比較対象を前記記憶メディアアダプタに送信する送信機である記憶メディア送信機とを備える。前記記憶メディアアダプタが、更に、前記第二比較対象を受信する受信機であるアダプタ受信機と、前記受信された第二比較対象と前記第一比較対象記憶域に記憶されている第一比較対象とを比較する比較機とを備える。前記プロセッサが、前記比較機による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのどの第一比較対象にも前記受信された第二比較対象が適合しない場合、過去に送信されたK個のライトデータを前記キャッシュ領域から前記記憶メディアアダプタに取得させる。前記アダプタ送信機が、前記取得されたK個のライトデータを含んだ前記データフレームを前記記憶メディア装置に再送する。
前記プロセッサは、例えば、マイクロプロセッサであっても良いし、記憶制御装置に備えられるサービスプロセッサであってもよい。前記プロセッサは、例えば、記憶メディアアダプタに搭載されていても良いし、記憶メディアアダプタとは別の場所に搭載されていてもよい。
記憶メディアは、データを記憶することができるメディアであればどのようなものでも採用することができる。例えば、記憶メディアは、ハードディスク、半導体メモリ、或いは光磁気ディスクであってもよい。また、記憶メディア装置は、例えば、記憶メディアがハードディスクの場合には、ハードディスクドライブそれ自体であっても良いし、ハードディスクドライブを備えた装置であっても良い。
第一の記憶制御装置の第一の実施態様では、前記プロセッサが、前記比較機による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのいずれか一つの第一比較対象に前記受信された第二比較対象が適合した場合、その第一比較対象に対応したK個のライトデータを前記キャッシュ領域から消去する。
第一の記憶制御装置の第二の実施態様では、前記第一の実施態様において、前記記憶制御装置が、チャネルアダプタと、共有記憶域とを備える。チャネルアダプタは、第一のプロセッサを有し、前記ライトデータをホスト装置から受信し、前記受信したライトデータを前記キャッシュ領域に書き込む。共有記憶域は、前記チャネルアダプタと前記記憶メディアアダプタの両方がアクセス可能な記憶域である。前記記憶メディアアダプタが、第二のプロセッサを有する。前記第二のプロセッサが、前記比較機による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのいずれか一つの第一比較対象に前記受信された第二比較対象が適合した場合、適合したことを表す情報(例えば、OKを表す情報、或いは、適合した第一比較対象に対応したK個のライトデータの削除要求)を前記共有記憶域に書き込む。前記第一のプロセッサが、前記共有記憶域に前記適合したことを表す情報が記憶されていることを検出した場合に、その第一比較対象に対応したK個のライトデータを前記キャッシュ領域から消去する。
第一の記憶制御装置の第三の実施態様では、前記第一比較対象及び前記第二比較対象は、前記K個のライトデータについてのエラー検出用のコード(例えばCRC(Cyclic Redundancy Check))を含んだデータ群である。
第一の記憶制御装置の第四の実施態様では、前記第一比較対象記憶域は、複数の第一比較対象の中から少なくとも一つの第一比較対象を識別するための第一の識別情報を記憶する。前記記憶メディア送信機は、少なくとも一つの第二比較対象と、前記少なくとも一つの第二比較対象に対応した第二の識別情報とを前記記憶メディアアダプタに送信する。前記比較機は、前記少なくとも一つの第二比較対象と、前記第二の識別情報に適合する第一の識別情報から識別される少なくとも一つの第一比較対象とを比較する。
第一の記憶制御装置の第五の実施態様では、前記第四の実施態様において、前記第一の識別情報は、前記第一の比較対象に対応したK個のライトデータを含むデータフレームの送信順番を表したフレーム番号を含む。前記第二の識別情報は、前記第二の比較対象に対応付けられたフレーム番号を含む。
第一の記憶制御装置の第六の実施態様では、前記記憶メディア送信機は、複数の第二比較対象を含んだ情報群を前記記憶メディアアダプタに送信する。前記情報群のデータサイズは、前記アダプタ送信機が送信する前記データフレームのデータサイズ以下である。
第一の記憶制御装置の第七の実施態様では、前記第六の実施態様において、前記第一比較対象記憶域は、複数の第一比較対象の中から第一比較対象を識別するための第一の識別情報を記憶する。前記記憶メディア送信機は、第二比較対象と前記第二比較対象に対応した第二の識別情報とのセットを複数個含んだ前記情報群を前記記憶メディアアダプタに送信する。前記比較機は、前記情報群に含まれている各第二比較対象と、その第二比較対象に対応した第二識別情報に適合する第一の識別情報から識別される第一比較対象とを比較する。
第一の記憶制御装置の第八の実施態様では、前記記憶メディア装置は、ハードディスク装置である。前記ハードディスク装置は、ハードディスクドライブそれ自体又はハードディスクドライブを備えた装置である。前記ハードディスクドライブが、ATAドライブである。
第一の記憶制御装置の第九の実施態様では、前記記憶メディア装置は、ハードディスク装置である。前記ハードディスク装置は、ハードディスクドライブそれ自体又はハードディスクドライブを備えた装置である。前記記憶制御装置が、高信頼性のハードディスク装置と、それよりも低信頼性のハードディスク装置を備える。前記記憶メディアアダプタが、前記高信頼性のハードディスク装置と、前記低信頼性のハードディスク装置の両方に接続されている。前記高信頼性のハードディスク装置は、高信頼性のドライブそれ自体又はそれを備えた装置である。前記低信頼性のハードディスク装置は、前記高信頼性のドライブよりも低信頼性のドライブそれ自体又はそのドライブを備えた装置である。前記比較機が、ライトデータの送信先が低信頼性のハードディスク装置の場合に、前記比較を行う。換言すれば、例えば、この第九の実施態様では、低信頼性のハードディスク装置が、前記第二比較対象生成部と、前記第二比較対象記憶域と、前記記憶メディア送信機とを備え、それにより、前記記憶メディアアダプタは、ライトデータの送信先が低信頼性のハードディスク装置の場合に、第二比較対象を受信することができる。
本発明の第二の側面に従う記憶制御方法は、書込み対象のデータであるライトデータを送信するホスト装置から前記ライトデータを受信し記憶メディアに書き込む記憶制御装置が実行する記憶制御方法である。前記記憶制御装置は、記憶メディアを有する記憶メディア記憶装置を備える。前記記憶メディア記憶装置は、少なくとも一つのライトデータを記憶するサブ領域と、前記サブ領域を特定するためのアドレスとをそれぞれ複数個有するデータ記憶域を有する。この場合、前記記憶制御方法は、ホスト装置からライトデータを受信するステップと、ライトデータを一時的に記憶するキャッシュ領域に前記受信したライトデータを書き込むステップと、前記キャッシュ領域に書き込まれているK個(Kは一以上の整数)のライトデータについての第一の比較対象を生成するステップと、前記生成された第一比較対象を第一比較対象記憶域に書き込むステップと、前記K個のライトデータを含んだデータフレームを生成し、前記生成されたデータフレームを、記憶メディアを有する記憶メディア装置に送信するステップと、前記記憶メディア装置が受信したデータフレームに含まれているK個のライトデータを、前記データ記憶域における複数のサブ領域のうちの少なくとも一つのサブ領域に書き込むステップと、前記データ記憶域の複数のアドレスから読み出し開始のアドレスを指定するステップと、前記指定されたアドレスが表すサブ領域からライトデータを読出し、前記読み出されたライトデータを前記記憶メディアに書き込むステップと、K個のライトデータが前記データ記憶域から読み出される場合に、前記読み出されるK個のライトデータについての第二の比較対象を生成するステップと、前記生成された第二比較対象を第二比較対象記憶域に書き込むステップと、前記第二比較対象記憶域に記憶された第二比較対象を送信するステップと、前記送信された第二比較対象と、前記第一比較対象記憶域に記憶されている第一比較対象とを比較するステップと、比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのどの第一比較対象にも前記第二比較対象が適合しない場合、過去に送信されたK個のライトデータを前記キャッシュ領域から取得し、前記取得されたK個のライトデータを含んだ前記データフレームを前記記憶メディア装置に再送するステップとを有する。
本発明の第三の側面に従う記憶制御装置(以下、第三の記憶制御装置)は、書込み対象のデータであるライトデータを送信するホスト装置から前記ライトデータを受信し記憶メディアに書き込む記憶制御装置である。その記憶制御装置は、データを記憶する記憶メディアと、ホスト装置からのライトデータを一時的に記憶するキャッシュ領域と、前記キャッシュ領域に書き込まれているK個(Kは一以上の整数)のライトデータを取得するキャッシュ取得部と、前記K個のライトデータについての第一の比較対象を生成する第一比較対象生成部と、前記生成された第一比較対象を記憶する前記第一比較対象記憶域と、少なくとも一つのライトデータを記憶するサブ領域と、前記サブ領域を特定するためのアドレスとをそれぞれ複数個有し、前記K個のライトデータを、前記複数のサブ領域のうちの少なくとも一つのサブ領域に記憶するデータ記憶域と、前記データ記憶域の複数のアドレスから読み出し開始のアドレスを指定するアドレス指定部と、前記指定されたアドレスが表すサブ領域からライトデータを読出し、前記読み出されたライトデータを前記記憶メディアに書き込む記憶メディア書込み部と、K個のライトデータが前記データ記憶域から読み出される場合に、前記読み出されるK個のライトデータについての第二の比較対象を生成する第二比較対象生成部と、前記生成された第二比較対象と、前記第一比較対象記憶域に記憶されている第一比較対象とを比較する比較部とを備える。前記比較部による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのどの第一比較対象にも前記第二比較対象が適合しない場合、前記キャッシュ取得部が、K個のライトデータを前記キャッシュ領域から取得する。前記データ記憶域が、前記取得されたK個のライトデータを記憶する。
第三の記憶制御装置の第一の実施態様では、第三記憶制御装置は、前記比較部による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのいずれか一つの第一比較対象に前記受信された第二比較対象が適合した場合、その第一比較対象に対応したK個のライトデータを前記キャッシュ領域から消去するデータ消去部を更に備える。
第三の記憶制御装置の第二の実施態様では、前記第一比較対象及び前記第二比較対象は、前記K個のライトデータについてのエラー検出用のコードを含んだデータ群である。
第三の記憶制御装置の第三の実施態様では、前記第一比較対象記憶域が、複数の第一比較対象の中から第一比較対象を識別するための第一の識別情報を記憶する。前記第三の記憶制御装置が、第二比較対象に対応した第二の識別情報に適合する第一の識別情報を前記第一比較対象記憶域から特定する特定部を更に備える。前記比較部が、前記特定された第一の識別情報から識別される第一比較対象と、前記第二の識別情報に対応した第二比較対象とを比較する。
第三の記憶制御装置の第四の実施態様では、前記第三の実施態様において、第三の記憶制御装置は、前記記憶メディアを備える記憶メディア装置と、前記キャッシュ領域におけるK個のライトデータを含んだデータフレームを生成し、前記生成されたデータフレームを前記記憶メディア装置に送信するデータフレーム送信部とを更に備える。前記第一の識別情報は、前記第一の比較対象に対応したK個のライトデータを含むデータフレームの送信順番を表したフレーム番号を含む。前記第二の識別情報は、前記第二の比較対象に対応付けられたフレーム番号を含む。
前記第一の記憶制御装置と前記第三の記憶制御装置とのうち、少なくとも第三の記憶制御装置において、記憶制御装置が備える各部は、ハードウェア、ソフトウェア(コンピュータプログラム)、或いはそれらの組み合わせによって実現することができる。
本発明によれば、記憶メディアへの書込みにエラーが生じたことを検出するために記憶制御装置の性能が劣化してしまうことを抑えることができる。
以下、図面を参照して、本発明の一実施形態を説明する。
図12は、本発明の一実施形態の概要を示す。
書込み対象であるライトデータ(以下、「WD」と略記する場合あり)を送信するホスト装置301に、記憶制御装置315が接続されている。記憶制御装置305は、ホスト装置301に対するインターフェース装置であるホストアダプタ305と、記憶制御装置305の動作を制御するプロセッサ303と、ホスト装置301からのライトデータを記憶するキャッシュ領域307と、記憶メディア313を備えた記憶メディア装置311と、キャッシュ領域307上のライトデータを記憶メディア装置311に転送する記憶メディアアダプタ309とを備える。記憶メディア装置311には、記憶メディア313に書かれるライトデータが書かれるデータ記憶域321が備えられる。データ記憶域321には、複数のサブ記憶にそれぞれ対応した複数のアドレスがあり、指定されたアドレスからライトデータが読み出され、読み出されたライトデータが記憶メディア313に書かれる。
例えば、記憶メディア313としては、ハードディスクを採用することができ、それ故、記憶メディア装置311としては、ハードディスクドライブそれ自体か、或いは、ハードディスクドライブを備えた装置を採用することができる。ハードディスクドライブには、ディスクへの書込みエラーの発生頻度が低い高信頼性のタイプのドライブと(例えば、ファイバチャネルインターフェースを有するドライブ)、そのタイプのドライブよりも書き込みエラーの発生頻度が高い低信頼性のタイプのドライブ(例えば、ATAインターフェースを有するドライブ)とがある。一般に、低信頼性のドライブの方が安価であるので、記憶制御装置315のコストを抑えたい場合には、低信頼性のドライブの方が採用されやすい。
具体的には、例えば、低信頼性のドライブでは、ディスクへの書込みエラーが、高信頼性のドライブよりも発生しやすい。ディスクへの書込みエラーが発生した場合には、例えば、RAIDグループからの再計算により(例えば、RAIDレベル5におけるパリティデータを用いる手法により)、データを復元し、復元されたデータをディスクへ再度書き込む方法が考えられる。しかし、データを復元するための処理を実行する場合には、単位時間あたりに処理されるIO要求の数が減ってしまう。
そこで、本実施形態では、以下に説明する工夫により、記憶制御装置315の性能劣化が抑えられる。
ホスト装置301から送信されたライトデータは、キャッシュ領域307に書き込まれる。キャッシュ領域307上のライトデータは、キャッシュ取得部325によって取得される。キャッシュ取得部325によって取得されたK個(Kは一以上の整数)のライトデータは、記憶メディアアダプタ309の送受信部323から記憶メディア装置311に送信される。キャッシュ取得部325は、プロセッサ303に読み込まれるコンピュータプログラムであってもよいし、ハードウェア回路であってもよいし、コンピュータプログラムとハードウェアとの組み合わせであってもよい。
キャッシュ領域307から取得されたK個のライトデータについて、第一比較対象生成部325が、第一比較対象を生成し、生成された第一比較対象を第一比較対象記憶域317に書き込む。例えば、第一比較対象生成部325は、K個のライトデータを用いてCRC(Cyclic Redundancy Check)を計算し、計算されたCRCを、第一比較対象記憶域317に書き込む。
第一比較対象記憶域317には、第一比較対象と共にその第一比較対象のためのIDが記録される。例えば、送受信部323により、K個のライトデータを含んだデータフレームが生成され、生成されたデータフレームが記憶メディア装置311に送信されるが、その場合、IDには、データフレームの送信順番を表すフレーム番号と、そのIDに対応した第一比較対象がどのライトデータに基づいて作成されたかを表すWDサブIDとが含まれる。IDには、更に、シーケンスサブIDが含まれてもよい。これにより、IDから、どのシーケンスのどのデータフレームにどのWDが含まれているかを、特定することができる。IDは、例えば、送受信部323によって書き込まれても良い。
記憶メディア装置311の送受信部324が、データフレームを記憶メディアアダプタ309から受ける。データフレーム内の各ライトデータは、データ記憶域321に格納される。
アドレス指定部335が、データ記憶域321のアドレスを指定する。アドレス指定部335は、例えば、記憶メディア装置311のファームウェアにより実現することができる。なお、例えば、データ記憶域321の一つのアドレスには、一つのライトデータが格納される。
記憶メディア書込み部331が、指定されたアドレスからライトデータを読み出していき、読み出されたライトデータを記憶メディア313に書き込む。データ記憶域321の指定されたアドレスからK個のライトデータが順次読み出される場合、第二比較対象生成部333が、それらK個のライトデータについての第二比較対象を生成し、生成された第二比較対象を第二比較対象記憶域319に書き込む。この第二比較対象も、CRCとすることができる。
第二比較対象記憶域319には、第二比較対象と共に、それのIDが書き込まれても良い。このIDは、例えば、送受信部324により書き込まれても良い。このIDには、例えば、データフレームのフレーム番号が含まれていればよく、このIDに対応した第二比較対象がどのライトデータに基づいて作成されたかを表すWDサブID(例えば、WDが格納される場所を表す論理ブロックアドレス)まで含まれていなくてもよい。
送受信部324は、第二比較対象とそれのIDとのセットを、送受信部323に送信する。送信されるセットは、一個でも複数個でもよいが、記憶メディア装置311から送信されるデータのサイズは、送受信部323から送信されるデータフレームのデーサイズよりも小さい方が好ましいと考えられる。
送受信部323が受信したセットに含まれているIDに対応したIDが、第一比較対象記憶域317から検索される。それにより、検索されたIDに対応した第一比較対象が特定される。比較部327は、特定された第一比較対象と、上記受信したセットに含まれている第二比較対象との比較を行う。
ここで、例えば、図12に示すように、K=2の場合において、ライトデータC及びライトデータDが含まれたデータフレームが送信され、且つ、ライトデータC及びライトデータDが間違いなくデータ記憶域321から読み出されたならば、第一比較対象も第二比較対象も、ライトデータC及びライトデータDに基づいて作成されたものなので、比較の結果として、適合を得ることができる。しかし、ライトデータC及びライトデータDが含まれたデータフレームが送信されたにも関わらず、アドレスの指定ミス等により、誤って、データ記憶域321からライトデータB及びライトデータCが読み出されたならば、第一比較対象はライトデータC及びライトデータDに基づいて作成されたものであるの対し、第二比較対象はライトデータB及びライトデータCに基づいて作成されたものとなるので、比較の結果として、不適合が得られてしまう。
比較の結果として不適合が得られた場合、図12に一点鎖線で示すように、キャッシュ取得部325が、再度、ライトデータC及びライトデータDを取得する。具体的には、例えば、適合が得られなかった第一比較対象に対応付けられているIDから、その第一比較対象がどのライトデータに基づいて作成されたものであるかが特定され、キャッシュ取得部325は、特定されたライトデータC及びDをキャッシュ領域307から取得される。この場合には、その取得されたライトデータC及びDを含んだデータフレームが送受信部323から再送される。
一方、比較の結果として、適合が得られた場合、図12に二点鎖線で示すように、データ削除部341が、ライトデータC及びDをキャッシュ領域307から消去する。具体的には、例えば、適合が得られた第一比較対象に対応付けられているIDから、その第一比較対象がどのライトデータに基づいて作成されたものであるかが特定され、データ削除部341は、特定されたライトデータC及びDをキャッシュ領域307から消去する。
この実施形態によれば、記憶メディア311に正しくライトデータが書き込まれたか否かが検出されるまで、記憶制御装置315に、記憶メディア311に書き込まれるべきライトデータが残っており、書込みエラーが検出された場合には、そのライトデータを再度使用すれば済む。このため、ライトデータの復元のための処理が不要になるので、記憶制御装置315の性能劣化が抑えられる。
また、この実施形態によれば、記憶メディア313にK個のライトデータが書き込まれる際に、それらK個のライトデータについての第二比較対象が生成される。生成された第二比較対象が、送受信部323に返送され、書込みエラーの有無の検出のための比較が行われる。これにより、ホスト装置301からのIO要求に応答してライトデータを記憶メディア313から読み出すよりも前の時点で、書込みエラーの有無の検出を行うことができる。なお、IDと第二比較対象とのセットは、第二比較対象記憶域319に書かれたときに直ぐに、返送されても良いし、或る程度の数が溜まったときに複数のセットが返送されてもよい。前者であれば、書込みエラーの有無が早い時点で検出することができ、後者であれば、送受信部324から送受信部323へのデータフレームに生じ得る空きのサイズを小さくすることができる。
以上が、本実施形態についての説明である。
なお、この実施形態では、第一比較対象生成部325等の上記各部は、コンピュータプログラムであってもよいし、ハードウェア回路であってもよいし、コンピュータプログラムとハードウェアとの組み合わせであってもよい。
また、第一比較対象生成部325、第一比較対象記憶域317及び比較部327の少なくとも一つは、記憶メディアアダプタ309に備えられてもよいし、記憶メディアアダプタ309とは別の場所に備えられても良い。
また、第二比較対象生成部333及び第二比較対象記憶域319の少なくとも一方は、記憶メディア装置311に備えられても良いし、記憶メディア装置311とは別の場所に備えられても良い。
また、記憶メディア装置311が、ハードディスクドライブそれ自体或いはそのドライブを備えた装置である場合には、そのハードディスクドライブは、高信頼性のドライブ(例えばファイバチャネルドライブ)であっても、低信頼性のドライブ(例えば、SAS(Serial Attached SCSI)ドライブ或いはSATA(Serial ATA)ドライブ)であっても良い。しかし、本実施形態に係る記憶制御装置315は、記憶メディアへの書込みエラーが検出されてそれをカバーする場合、記憶制御装置315の性能の劣化を抑えられるので、低信頼性のドライブにより有効であると考えられる。
以下、図面を参照して、上述した実施形態についてのより具体的な実施例を説明する。
図1は、本発明の一実施形態の一実施例に係る記憶制御装置の構成例を示す。
記憶制御装置100は、例えばRAID(Redundant Array of Independent Disks)のようなディスクアレイ装置である。記憶制御装置100は、例えば、記憶制御装置100が行う処理を制御する制御部101と、RAIDグループ210と、サービスプロセッサ(SVP)281とを備える。制御部101は、例えば、一又は複数のディスクアダプタ(以下、DKA)120と、一又は複数のチャネルアダプタ(以下、CHA)110と、キャッシュメモリ130と、共有メモリ140と、スイッチング制御部270とを備える。
RAIDグループ210は、複数のハードディスク装置150を含んでおり、例えば、RAID1やRAID5等のRAIDに基づく冗長記憶を提供する。各ハードディスク装置150は、例えば、ハードディスクドライブそれ自体であってもよいし、キャニスタ(図示せず)内にハードディスクドライブを備えた装置であってもよい。各ハードディスク装置150が提供する物理的な記憶領域上には、論理的な記憶領域である論理ボリューム(以下、VOL)6を少なくとも一つ以上設定可能である。VOL6には、ホスト装置180から送信される複数のライトデータが記憶することができる。
各DKA120は、各ハードディスク装置150との間のデータ授受を制御するものである。各DKA120は、例えば、マイクロプロセッサ(以下、MP)120M、ROM、RAM等を含んだマイクロコンピュータシステムとして構成される。また、各DKA120は、ダイレクトメモリアクセスのためのコントローラ120Dや、ハードディスク装置150へのデータ転送を制御する転送制御部3を備えることもできる。DKA120は、例えば、記憶制御装置100内に複数設けられる。転送制御部3は、例えば、SCSIやiSCSI等に基づいて、ハードディスク装置150との間でブロックレベルのデータ転送を行う。
各CHA110は、接続パス190を介して、ホスト装置180からライトデータを受信する。接続パス190は、通信ネットワークであっても良いし、専用のパスラインであっても良い。各CHA110は、DKA120と同様に、マイクロコンピュータシステムとして構成可能である。例えば、各CHA110は、MP110Mや、DMAコントローラ113や、転送制御部111を備える。DMAコントローラ113は、ホスト装置180からのライトデータにLA(論理ブロックアドレス)を付加したり、ホスト装置180へ送信すするデータからLAを除去したりするLA付加/削除部112を備える。以下、ホスト装置180からのライトデータにLA等の別のデータが付加されたものを、「データユニット」と表記する。
キャッシュメモリ(以下、「CM」と記載する場合あり)130は、例えば、揮発または不揮発の半導体メモリから構成することができる。キャッシュメモリ130は、ホスト装置180からのライトデータや、VOL6から読み出されたライトデータを記憶することができる。
共有メモリ(以下、「SM」と記載する場合あり)140は、例えば、不揮発または揮発の半導体メモリから構成することができる。共有メモリ140は、例えば、ホスト装置180から受信した各種コマンドや、記憶制御装置100の制御に使用する制御情報等を記憶する。コマンドや制御情報等は、複数の共有メモリ140によって、冗長記憶されてもよい。なお、キャッシュメモリ130と共有メモリ140とは、それぞれ別々のメモリとして構成することもできるし、あるいは、メモリの一部をキャッシュメモリ領域として使用し、同一のメモリの別の一部を共有メモリ領域として使用することもできる。
スイッチング制御部270は、各DKA120と、各CHA110と、キャッシュメモリ130と、共有メモリ140とを、それぞれ相互に接続するものである。スイッチング制御部270は、例えば、超高速クロスバスイッチ等から構成することができる。
SVP(Service Processor)281は、例えば内部ネットワーク(例えばLAN)282を介して、記憶制御装置100内の各部の状態を収集し監視する。SVP281は、収集した内部状態の情報を生データのままで、あるいは、統計処理したデータとして、外部の管理端末(不図示)に出力する。SVP281が収集可能な情報としては、例えば、装置構成、電源アラーム、温度アラーム、入出力速度(例えば単位はIOPS(IO要求数/秒))等が挙げられる。システム管理者は、管理端末(図示せず)からSVP281を介して、RAID構成の設定変更や、各種パッケージ(例えば、CHA110やDKA120)の閉塞処理等を行うことができる。
次に、記憶制御装置100が行う処理の一例について説明する。CHA110は、接続パス190を介して、ホスト装置180からライト命令及びライトデータを受信する。受信されたライト命令は共有メモリ140に記憶され、受信されたライトデータはキャッシュメモリ130に記憶される。DKA120は、共有メモリ140を随時参照している。DKA120は、共有メモリ140に記憶されている未処理のライト命令を発見すると、このライト命令に従って、キャッシュメモリ130からライトデータを読み出し、アドレス変換等を行う。DKA120は、ライト命令によって指定されたVOL6を構成する各ハードディスク装置150に、ライトデータを書き込む。
ホスト装置180からのリード命令を処理する場合を説明する。CHA110は、ホスト装置180からリード命令を受信すると、このリード命令を共有メモリ140に記憶させる。DKA120は、共有メモリ140内で未処理のリード命令を発見すると、このリード命令によって指定されたVOL6を構成する各ハードディスク装置150からライトデータを読み出す。DKA120は、読み出したライトデータをキャッシュメモリ130に記憶させる。また、DKA120は、要求されたライトデータの読出しが完了した旨を、共有メモリ140を介して、CHA110に通知する。CHA110は、キャッシュメモリ130からライトデータを読み込み、ホスト装置180に送信する。
以上が、本実施例における記憶制御装置100の構成例である。なお、言うまでも無いが、記憶制御装置100は、上述した構成に限定する必要は無い。例えば、記憶制御装置100は、制御情報やライトデータ等を記憶することができるメモリと、ホスト装置180に対するインターフェース装置(以下、「I/F」と略記)と、ハードディスク装置150に対するI/Fと、メモリ上の情報に基づきそれらのI/Fを介した通信等を制御する制御部(例えばCPU)とにより構成されてもよい。
図2は、DKAの構成例とハードディスク装置の構成例とを示す。
DKA120は、例えば、ファイバチャネルループを介して、ハードディスク装置150に接続される。DKA120は、メモリインターフェース1と、ローカルメモリ9と、転送制御部3と、比較器13とを備える。
メモリインターフェース1は、CM130やSM140に対するインターフェース装置であり、CM130やSM140との間で情報の授受を行う。
ローカルメモリ9は、例えば、揮発または不揮発の半導体メモリから構成することができる。ローカルメモリ9は、COM/CRC格納領域11を有する。COM/CRC可能領域11には、送信エリア11Tと、返信エリア11Rとが存在する。送信エリア11Tには、フレーム番号と、CRCと、ハードディスク装置に対するコマンド(以下、「COM」と表記)とを含んだ第一の情報セットが一又は複数個記録される。返信エリア11Rには、返信フレーム43に含まれているフレーム番号、COM及びCRC´の第二の情報セットが、一又は複数個記録される。
ここで、返信フレーム43とは、ハードディスク装置150からDKA120に送信されるフレームのことである。返信フレーム43には、DKA120に対するコマンド(以下、「COM´」と表記)と、一又は複数の第二情報セット(すなわち、フレーム番号、COM及びCRC´を含んだ情報セット)と、この返信フレーム43におけるCRC(以下、これを「CRC´´」と表記)とが含まれている。
返信フレーム43に対し、送信フレーム41が存在する。送信フレーム41は、DKA120からハードディスク装置150に送信されるフレームである。送信フレーム41には、COMと、K個のデータユニットと、K個のデータユニットに基づいて生成されたCRCとが含まれている。データユニットには、ホスト装置180からのライトデータと、そのライトデータについてのLA(CHA110において付加されたLA)とが含まれる。また、データユニットには、データユニットを所定サイズにするためのヌルデータを含めることもできる。
以下、単に「CRC」と言う場合には、DKA120からハードディスク装置150に送信されるK個のデータユニットに基づいて生成されたCRCを表すものとする。それに対し、「CRC´」と言う場合には、ハードディスク装置150における後述のドライブキャッシュメモリ35から読み出されたK個のデータユニットに基づいて生成されたCRCを表すものとする。また、「CRC´´」と言う場合には、返信フレーム43におけるCRCを表すものとする。
転送制御部3は、送信フレーム41の送信順序を管理するフレーム順序管理部5と、少なくともK個のデータユニットを蓄積することができる容量を有したデータバッファ7と、データバッファ7に蓄積されたK個のデータユニットに基づいてCRCを計算するCRC計算部15と、送信フレーム41に含められるCOMを生成するCOM生成部17とを備える。フレーム順序管理部5、CRC計算部15及びCOM生成部17は、ハードウェア回路、コンピュータプログラム及びそれらの組み合わせであってもよい。
比較器13は、送信エリア11Tにおける或る第一情報セット中のCRC及びCOMと、その或る第一情報セットに対応した、返信エリア11Rにおける第二情報セット中のCRC´及びCOMとを比較し、比較の結果を出力する装置である。比較器13は、比較の結果を例えばMP120Mに出力することができる。
ハードディスク装置150は、ドライブキャッシュメモリ(以下、ドライブCM)35と、転送制御部23と、CRC´計算部21と、ディスクリーダライタ40と、ディスク150Dとを備える。
ドライブCM35は、例えば、揮発または不揮発の半導体メモリから構成することができる。ドライブCM35は、データ格納空間37と、CRC´/COM格納空間39とを有する。データ格納空間37は、一又は複数のデータユニットを記憶するための複数のサブ空間と、複数のサブ空間をそれぞれ特定するための複数のアドレスとを有する。CRC´/COM格納空間39は、CRC´とCOMとを含んだ第三の情報セットを記憶するための複数のサブ空間と、複数のサブ空間をそれぞれ特定するための複数のアドレスとを有する。
転送制御部23は、送信フレーム41の送信順序を管理するフレーム順序管理部25と、少なくともK個のデータユニットを蓄積することができる容量を有したデータバッファ27と、ドライブCM35を管理するメモリ管理部29と、返信フレーム43におけるCRC´´を計算するCRC´´計算部31と、返信フレーム43に含められるCOM´を生成するCOM´生成部33とを備える。フレーム順序管理部25、CRC´´計算部31、メモリ管理部29、及びCOM´生成部33は、ハードウェア回路、コンピュータプログラム及びそれらの組み合わせであってもよい。メモリ管理部29は、データ格納空間37に対して読出し開始のアドレスを指定したり、CRC´/COM格納空間39に未読の第三情報セットがどれだけ蓄積されたかを監視したり等を行う。
CRC´計算部21は、ドライブCM35から読み出されてディスク150Dに書き込まれるK個のデータユニットに基づくCRC´を計算する。
ディスクリーダライタ40は、データ格納空間37に対して指定された読出し開始アドレスからデータユニットを読み出し始め、読み出したデータユニットをディスク150Dに書き込む。ディスクリーダライタ40は、読み出し開始アドレスからデータユニットを読んだ場合には、次のアドレスからデータユニットを読む。これを繰り返すことによって、ディスクリーダライタ40は、複数個のデータユニットをディスク150Dに書き込むことができる。ディスクリーダライタ40は、例えば、ディスク上に位置合わせされるヘッドや、ヘッドの位置を制御する位置制御部を備えた装置である。
図3は、ディスクへの書込みエラーの有無が検出されるまでの処理の流れの一例と、その検出結果に応じて行われる処理の流れの一例とを示す。以下、図2及び図3を参照して、それらの処理の流れを説明する。また、適宜、図4乃至図11を参照して、それらの処理の流れにおいてどの記憶域がどのように更新されるかも説明する。なお、図2に記載の(A)乃至(F)は、図3に記載の(A)乃至(F)にそれぞれ対応する。また、図4乃至図11において、データユニットは、「DATA」と表記され、且つ、フレーム番号がNである送信フレーム41に含められるデータユニットは、「DATA(N)」と表記される。また、図4乃至図11において、フレーム番号がNである送信フレーム41に含められるCOMは、「COM(N)」と表記され、その送信フレーム41に含められるCRCは、「CRC(N)」と表記され、その送信フレーム41に含められていたはずのK個のデータユニットに基づいて生成されたCRC´は「CRC´(N)」と表記される。ここで、「含められていたはずの」としたのは、データ格納空間37に対してアドレス指定ミスがあった等の理由により、本来読み出されるはずのK個のデータユニットとは別のK個のデータユニットが読み出されてしまうことがあり得るからである。
CHA110が、ホスト装置180から受信したライトデータにLAを付加してデータユニットを生成し、生成したデータユニットを、図4に示すように、CM130上の所定のキャッシュ領域131に書く。また、CHA110が、そのデータユニットをディスクに書き込むことの書込み要求を、SM140上の所定の制御情報格納域141に書く。
DKA120は、定期的に制御情報格納域141を参照し、未処理の要求を検出し、その要求が読み出し要求の場合には(ステップS1でNO)、例えば前述した読み出し処理を行い、書込み要求である場合には(S1でYES)、その書込み要求に応答した処理の実行を開始する。
まず、DKA120のメモリインターフェース1が、キャッシュ領域131からデータユニットを取得する(S2)。そのデータユニットには、CM130とDKA120間のコマンド(図2では「コマンドA」と表記)及びCRC(図2では「CRC:A」と表記)が付加されている。これらのコマンド及びCRCは、メモリインターフェース1の受信後に、外される。メモリインターフェース1が受信したデータユニットは、転送制御部3のデータバッファ7に蓄積される。
K個のデータユニットがデータバッファ7に蓄積されたならば、転送制御部3が、プロトコル変換処理として、ハードディスク装置への送信プロトコルに従う送信フレーム41の生成処理を開始する(S3)。例えば、フレーム番号0の送信フレーム43が送信される場合、CRC計算部15が、その送信フレーム43に含められるK個のデータユニットに基づいてCRC(0)を計算し、COM生成部17が、その送信フレーム43に含めるCOM(0)を生成する(S4)。計算されたCRC(0)及び生成されたCOM(0)は、送信エリア11Tに格納される(S5)。また、その際、例えばフレーム順序管理部5によって、送信エリア11T上で、CRC(0)及びCOM(0)のセットにフレーム番号0が対応付けられる。また、例えばMP120Mによって、送信エリア11T上で、CRC(0)及びCOM(0)のセットにLA群が対応付けられる。ここで言う「LA群」とは、CRCがどのK個のデータユニットに基づいて生成されたかを特定可能にするために、CRCの生成に使用されたKのデータユニットにそれぞれ含まれているK個のLAを言う。図4乃至図11では、CRC(N)に対応したLA群を「LA(N)群」と表記される。このように、フレーム番号0、CRC(0)、COM(0)及びLA(0)群が書かれた様子は、図5に示される。
転送制御部3は、生成されたCOM(例えばCOM(0))と、計算されたCRC(例えばCRC(0))と、そのCRCの計算に使用されたK個のデータユニットとを含んだ送信フレーム41を生成し、その送信フレーム41をハードディスク装置150に送信する(S6)。
ハードディスク装置150の転送制御部23が、送信フレーム41を受信し、その送信フレーム41に含まれているK個のデータユニットを、データ格納空間37におけるK個のサブ空間にそれぞれ格納する(S7)。また、転送制御部23は、送信フレーム41内のCOMを、CRC´/COM格納空間39に格納する。K個のデータユニットとCOMとがドライブCM35に格納された様子を図6に示す。
ディスク150Dへの書込み要求が発行される(S8)。例えば、転送制御部23が、ディスクリーダライタ40に対し、その書込み要求を発行する。この処理は、S7の後に直ちに行われても良いし、メモリ管理部29によって、データ格納空間37に所定個数以上のデータユニットが格納されたと判断された場合に行われても良い。
データ格納空間37に対して読み出し開始アドレスが指定される(S9)。これは、例えば、メモリ管理部29が、ハードディスク装置150のファームウェアにより行うことができる。
ディスクリーダライタ40は、データ格納空間37に対して指定された読出し開始アドレスから順次K個のデータユニットを読み出し始める。ディスクリーダライタ40は、読み始めたデータユニット内のLAに基づいて、ヘッドの位置あわせ処理や、データユニットが書かれるディスクの回転処理を行う(S10)。或る時間をかけて、ヘッドの位置決めが完了する(S13)。ヘッドの位置あわせ処理が開始されてヘッドの位置決めが完了するまで、或る程度の時間(例えば数秒)かかる。そこで、処理速度の向上のために、ヘッドの位置決め処理に並行して、後述のS11及びS12の処理が行われる。
すなわち、CRC´計算部21が、ディスクリーダライタ40により指定された読み出し開始アドレスから順次読み出されるK個のデータユニットに基づいてCRC´を計算する(S11)。この処理は、ヘッド位置決め処理に要する時間よりも短い時間(例えば数ミリ秒)で行うことができる。CRC´計算部21は、計算したCRC´を、CRC´/COM格納空間39上で、CRC´が対応付けられていないCOMに対応付ける(図3のS12)。例えば、計算されたCRC´が、フレーム番号0の送信フレーム41内のK個のデータユニットに基づいて計算されたCRC´(0)の場合には、そのCRC´(0)は、COM(0)に対応付けられる。その様子と、読み出し開始アドレスが指定された様子とを、図7に示す。
ヘッドの位置決め完了後、読み出されたデータユニットがディスクへ書き込まれる(S14)。
送信フレーム41が受信される都度に、上述した処理が行われるので、データ格納空間37及びCRC´/COM格納空間39に登録される情報の量が増える。その様子を、図8に示す。
メモリ管理部29によって、読み出されたデータユニットがデータ格納空間37に存在するデータユニットで最終のものであるか、或いは、所定個数以上のCRC´及びCOMのセットがCRC´/COM格納空間39に格納されたか否かが判断される(S15)。
S15において、読み出されたデータユニットがデータ格納空間37に存在するデータユニットで最終のものである場合には、ディスクへの書込みが完了する(S16A)。
また、S15において、読み出されたデータユニットが最終のものであることと、所定個数以上のCRC´及びCOMのセットが格納されたこととの少なくとも一方が判断された場合には、返信フレームの生成処理及び送信処理が行われる(S16B)。具体的には、例えば、COM´生成部33が、返信フレーム43に含めるCOM´を生成する。転送制御部23が、所定個数(例えば図8ではX個)のCRC´及びCOMを読み出し、フレーム番号、CRC´及びCOMを含んだ情報セットを所定個数準備する(所定個数未満であってもよい)。CRC´´計算部31が、返信フレーム43についてのCRC´´を計算する。転送制御部23が、生成されたCOM´と、準備された所定個数の情報セットと、計算されたCRC´´とを含んだ返信フレーム43を生成し、生成された返信フレーム43をDKA120に送信する。なお、図4乃至図11では、CRC´/COM格納空間39には、送信エリア11T及び返信エリア11Rとは異なり、フレーム番号が格納されないが、どのCRC´及びCOMがどのフレーム番号に対応しているかは、フレーム順序管理部25により管理することができ、それにより、返信フレーム43において、各CRC´COMのセットに対して正しいフレーム番号を付加することができる。これは、送信エリア11T及び返信エリア11Rについても同様である。もちろん、CRC´/COM格納空間39に、送信エリア11T及び返信エリア11Rと同様に、フレーム番号がCRC´及びCOMのセットに対応付けられても良い。例えば、送信フレーム41を受信する都度に、フレーム順序管理部25が、フレーム番号をCRC´/COM格納空間39に記録しても良い。
DKA120の転送制御部3は、返信フレーム43を受信した場合、その返信フレーム内の情報セット(フレーム番号、CRC´及びCOM)を、前述した第二情報セットとして返信エリア11Rに格納する(S17)。
比較機13が、返信エリア11Rに格納された各CRC´及びCOMと、送信エリア11Tに格納されている各CRC及びCOMとを比較する(S18)。具体的には、例えば、比較機13は、返信エリア11Rにおける第二情報セット中のフレーム番号と同じフレーム番号を含んだ第一情報セットを探し、その第二情報セット内のCRC´及びCOMと、探し出された第一情報セット内のCRC及びCOMとを比較し、比較の結果を、例えばMP120Mに出力する。返信フレーム43内にX個の情報セットが格納されていた場合には、図9に例示するように、比較機13は、X個のCRC´及びCOMの各々と、X個のCRC及びCOMの各々とについて、上記のような比較処理を行う。
例えば、S9において、COM(N)及びCRC(N)に対応したK個のデータユニットについて、読み出し開始アドレスとして正しいアドレスが指定された場合には、COM(N)及びCRC(N)に対応したK個のデータユニットがデータ格納空間37から読み出され、そのK個のデータユニットに基づいてCRC´(N)が生成される。故に、この場合には、CRC´(N)及びCOM(N)と、CRC(N)及びCOM(N)とは整合する。しかし、読み出し開始アドレスとして誤ったアドレスが指定された場合には、COM(N)及びCRC(N)に対応した正しいK個のデータユニットとは別の誤ったK個のデータユニット(例えば、正しいK個のデータユニットとは全部又は一部が異なるK個のデータユニット)がデータ格納空間37から読み出され、その誤ったK個のデータユニットに基づいてCRC´(N)が生成されてしまう。故に、この場合には、CRC´(N)及びCOM(N)と、CRC(N)及びCOM(N)とは不整合となる。また、上記のようにアドレス指定にミスが生じた等のエラーが発生した場合には、比較処理が行われないまま送信エリア11Tに残ってしまうCRCも存在する可能性がある。
S18の比較の結果、不整合が得られた場合には、例えば、MP120Mが、その不整合についてのCRC(N)に対応したLA(N)群を用いて、CRC(N)の計算に使用されたK個のデータユニットを特定し、特定されたK個のデータユニットをキャッシュ領域131に要求する(S19)。これにより、そのK個のデータユニットが再度キャッシュ領域131からDKA120に送られる。なお、S19の処理は、例えば、MP120Mが、送信エリア11Tに、フレーム番号が連続していない未処理の第一情報セットを検出した場合に、その第一情報セット(例えば、フレーム番号が3,5,6,…となっていた場合には、フレーム番号3を含んだ第一情報セット)内のCRCについても、行うことができる。
一方、S18の比較の結果、整合が得られた場合には、例えば、MP120Mが、整合が得られたCRC(N)に対応したLA(N)群を用いて、CRC(N)の計算に使用されたK個のデータユニットを特定し、特定されたK個のデータユニットをキャッシュ領域131から削除することの要求(以下、デステージ要求)を、SM140の制御情報格納域141に書く(S20)。これによりライト処理が終了する(S21)。なお、そのデステージ要求がCHA110によって検出された場合、CHA110が、上記特定されたK個のデータユニットをキャッシュ領域131から消去する。その様子を図10に示す。
以上の一連の処理において、もし、キャッシュ領域131、送信エリア11T、返信エリア11R、データ格納空間37及びCRC´/COM格納空間39の少なくとも一つにおいて、満杯になってしまった場合には、図11に例示するように、最も古い情報に最新の情報が上書きされる(ラップラウンド)。
以上、上述した実施例によれば、ディスクへの書込みエラーの有無が検出されるまで、CM130に、ホスト装置180からのライトデータが残っている。このため、ディスクへの書込みエラーが生じた場合に、ディスクからのデータ読み出しを行って、正しいライトデータを復元するといったことを行うことなく、正しいライトデータをディスク150Dに書き込むことを行うことができる。
また、上述した実施例によれば、たとえディスクへの書込みエラーが生じても、CM130に残っているライトデータを再度ディスク150Dに書き込むという処理を行えばよいので、記憶制御装置100の性能劣化を抑えつつ、信頼性の高いデータの書込みを提供することができる。
なお、上述した実施例では、記憶制御装置100に備えられる複数のハードディスク装置150は、図13Aに例示するように、FCドライブ(ファイバチャネルインターフェースを有するハードディスクドライブ)のみであっても良いし、図13Bに例示するように、SATAドライブのみであっても良いし、図13Cに例示するように、SASドライブのみであっても良いし、図13Dに例示するように、FCドライブとATAドライブ(例えばSASドライブ又はSATAドライブ)との混在であっても良い。FCドライブとATAドライブとが混在する場合、例えば、DKA120は、データユニットをディスクに格納する場合、その格納先がATAドライブの場合、図3に例示した処理を行うことを選択し、その格納先がFCドライブの場合には、図3に例示した処理を行わないことを選択しても良い。この選択処理は、例えば、MP120Mが、図3のS1でYESの後に、SM140上の制御情報を参照し(S499)、格納先がFCドライブかATAドライブかを判定し(S500)、FCドライブであると判定された場合には、図3のS2以降の処理を行わないことを選択し(S501)、ATAドライブであると判定された場合には、図3のS2以降の処理を行うことを選択することができる(S502)。制御情報には、例えば、VOLの番号(或いはLA)と、そのVOL(又はLA)を有するハードディスクドライブの種類との対応関係が記述されている。
以上、本発明の好適な実施形態及び実施例を説明したが、本発明は、それらの実施形態及び実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、CRCに代えて、複数のデータユニットのハッシュ値や圧縮データなど、別種の比較対象が採用されてもよい。また、Kの値は、固定値であっても良いし、可変値であってもよい。
図1Aは、本発明の一実施形態に係るデータ処理システムが行う第一の複製処理の概要を示す。図1Bは、そのデータ処理システムが行う第二の複製処理の概要を示す。 図2は、更新データ4の構成例を示す。 図3は、ライトデータVOL及びJNLVOLの構成例であって、特に、図2に例示した更新データ4が表す構成例を示す。 図4は、キャッシュ領域に複数のデータユニットが書かれた様子を示す。 図5は、送信エリアに第一の情報セットが書かれた様子を示す。 図6は、或るデータフレームに含まれているK個のデータユニットがデータ格納空間に書かれた様子と、そのデータフレームに含まれているCOMがCRC´/COM格納空間に書かれた様子とを示す。 図7は、データ格納空間から読み出されたK個のデータユニットに基づいて生成されたCRC´がCRC´/COM格納空間に書かれた様子を示す。 図8は、所定個数以上のCRC´及びCOMのセットがCRC´/COM格納空間に書かれた様子を示す。 図9は、返信エリア内の各CRC´と送信エリア内の各CRCとが比較される様子を示す。 図10は、比較の結果として適合が得られたCRCに対応するK個のデータユニットがキャッシュメモリから消去された様子を示す。 図11は、キャッシュ領域、送信エリア、返信エリア、データ格納空間及びCRC´/COM格納空間がそれぞれ満杯になった場合に行われるラップラウンドの様子を示す。 図12は、本発明の一実施形態の概要を示す。 図13Aは、本発明の一実施形態の一実施例において、複数のハードディスク装置がFCドライブである場合の例を示す。図13Bは、その実施例において、複数のハードディスク装置がSATAドライブである場合の例を示す。図13Cは、その実施例において、複数のハードディスク装置がSASドライブである場合の例を示す。図13Dは、その実施例において、複数のハードディスク装置にFCドライブとATAドライブとが混在する場合の例を示す。
符号の説明
301…ホスト装置、303…プロセッサ、305…ホストアダプタ、307…キャッシュ領域、309…記憶メディアアダプタ、311…記憶メディア装置、313…記憶メディア、315…記憶制御装置、317…第一比較対象記憶域、319…第二比較対象記憶域、321…データ記憶域、323…送受信部、324…送受信部、325…キャッシュ取得部、327…比較部、331…記憶メディア書込み部、333…第二比較対象生成部、341…データ削除部

Claims (16)

  1. 書込み対象のデータであるライトデータを送信するホスト装置から前記ライトデータを受信し記憶メディアに書き込む記憶制御装置において、
    データを記憶する記憶メディアを備えた記憶メディア装置と、
    前記ホスト装置から受信したライトデータを一時的に記憶するキャッシュ領域と、
    前記キャッシュ領域に記憶されたライトデータを前記キャッシュ領域から取得し、前記取得したライトデータを前記記憶メディア装置に転送する記憶メディアアダプタと、
    プロセッサと
    を備え、
    前記記憶メディアアダプタは、
    前記キャッシュ領域からライトデータを取得されたライトデータを蓄積するデータバッファと、
    前記データバッファに少なくともK個(Kは一以上の整数)のライトデータが蓄積された場合に、前記K個のライトデータについての第一の比較対象を生成する第一比較対象生成部と、
    前記生成された第一比較対象を記憶する第一比較対象記憶域と、
    前記K個のライトデータを含んだデータフレームを前記記憶メディア装置に送信する送信機であるアダプタ送信機と
    を備え、
    前記記憶メディア装置は、
    前記記憶メディアアダプタから前記データフレームを受信する受信機である記憶メディア受信機と、
    少なくとも一つのライトデータを記憶するサブ領域と、前記サブ領域を特定するためのアドレスとをそれぞれ複数個有し、前記受信されたデータフレームに含まれているK個のライトデータを、前記複数のサブ領域のうちの少なくとも一つのサブ領域に蓄積するデータ記憶域と、
    前記データ記憶域の複数のアドレスから読み出し開始のアドレスを指定するアドレス指定するアドレス指定部と、
    前記指定されたアドレスが表すサブ領域からライトデータを読出し、前記読み出されたライトデータを前記記憶メディアに書き込む記憶メディア書込み部と、
    K個のライトデータが前記データ記憶域から読み出される場合に、前記読み出されるK個のライトデータについての第二の比較対象を生成する第二比較対象生成部と、
    前記生成された第二比較対象を記憶する第二比較対象記憶域と、
    前記第二比較対象記憶域に記憶された第二比較対象を前記記憶メディアアダプタに送信する送信機である記憶メディア送信機と
    を備え、
    前記記憶メディアアダプタが、更に、
    前記第二比較対象を受信する受信機であるアダプタ受信機と、
    前記受信された第二比較対象と、前記第一比較対象記憶域に記憶されている第一比較対象とを比較する比較機と
    を備え、
    前記プロセッサが、前記比較機による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのどの第一比較対象にも前記受信された第二比較対象が適合しない場合、過去に送信されたK個のライトデータを前記キャッシュ領域から前記記憶メディアアダプタに取得させ、
    前記アダプタ送信機が、前記取得されたK個のライトデータを含んだ前記データフレームを前記記憶メディア装置に再送する、
    記憶制御装置。
  2. 前記プロセッサが、前記比較機による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのいずれか一つの第一比較対象に前記受信された第二比較対象が適合した場合、その第一比較対象に対応したK個のライトデータを前記キャッシュ領域から消去する、
    請求項1記載の記憶制御装置。
  3. 前記記憶制御装置が、
    第一のプロセッサを有し、前記ライトデータをホスト装置から受信し、前記受信したライトデータを前記キャッシュ領域に書き込むチャネルアダプタと、
    前記チャネルアダプタと前記記憶メディアアダプタの両方がアクセス可能な記憶域である共有記憶域と
    を更に備え、
    前記記憶メディアアダプタが、第二のプロセッサを有し、
    前記第二のプロセッサが、前記比較機による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのいずれか一つの第一比較対象に前記受信された第二比較対象が適合した場合、適合したことを表す情報を前記共有記憶域に書き込み、
    前記第一のプロセッサが、前記共有記憶域に前記適合したことを表す情報が記憶されていることを検出した場合に、その第一比較対象に対応したK個のライトデータを前記キャッシュ領域から消去する、
    請求項2記載の記憶制御装置。
  4. 前記第一比較対象及び前記第二比較対象は、前記K個のライトデータについてのエラー検出用のコードを含んだデータ群である、
    請求項1記載の記憶制御装置。
  5. 前記第一比較対象記憶域は、複数の第一比較対象の中から少なくとも一つの第一比較対象を識別するための第一の識別情報を記憶し、
    前記記憶メディア送信機は、少なくとも一つの第二比較対象と、前記少なくとも一つの第二比較対象に対応した第二の識別情報とを前記記憶メディアアダプタに送信し、
    前記比較機は、前記少なくとも一つの第二比較対象と、前記第二の識別情報に適合する第一の識別情報から識別される少なくとも一つの第一比較対象とを比較する、
    請求項1記載の記憶制御装置。
  6. 前記第一の識別情報は、前記第一の比較対象に対応したK個のライトデータを含むデータフレームの送信順番を表したフレーム番号を含み、
    前記第二の識別情報は、前記第二の比較対象に対応付けられたフレーム番号を含む、
    請求項5記載の記憶制御装置。
  7. 前記記憶メディア送信機は、複数の第二比較対象を含んだ情報群を前記記憶メディアアダプタに送信し、
    前記情報群のデータサイズは、前記アダプタ送信機が送信する前記データフレームのデータサイズ以下である、
    請求項1記載の記憶制御装置。
  8. 前記第一比較対象記憶域は、複数の第一比較対象の中から第一比較対象を識別するための第一の識別情報を記憶し、
    前記記憶メディア送信機は、第二比較対象と、前記第二比較対象に対応した第二の識別情報とのセットを複数個含んだ前記情報群を前記記憶メディアアダプタに送信し、
    前記比較機は、前記情報群に含まれている各第二比較対象と、その第二比較対象に対応した第二識別情報に適合する第一の識別情報から識別される第一比較対象とを比較する、
    請求項7記載の記憶制御装置。
  9. 前記記憶メディア装置は、ハードディスク装置であり、
    前記ハードディスク装置は、ハードディスクドライブそれ自体又はハードディスクドライブを備えた装置であり、
    前記ハードディスクドライブが、ATAドライブである、
    請求項1記載の記憶制御装置。
  10. 前記記憶メディア装置は、ハードディスク装置であり、
    前記ハードディスク装置は、ハードディスクドライブそれ自体又はハードディスクドライブを備えた装置であり、
    前記記憶制御装置が、高信頼性のハードディスク装置と、それよりも低信頼性のハードディスク装置を備え、
    前記記憶メディアアダプタが、前記高信頼性のハードディスク装置と、前記低信頼性のハードディスク装置の両方に接続されており、
    前記高信頼性のハードディスク装置は、高信頼性のドライブそれ自体又はそれを備えた装置であり、
    前記低信頼性のハードディスク装置は、前記高信頼性のドライブよりも低信頼性のドライブそれ自体又はそのドライブを備えた装置であり、
    前記比較機が、ライトデータの送信先が低信頼性のハードディスク装置の場合に、前記比較を行う、
    請求項1記載の記憶制御装置。
  11. 書込み対象のデータであるライトデータを送信するホスト装置から前記ライトデータを受信し記憶メディアに書き込む記憶制御装置が実行する記憶制御方法において、
    前記記憶制御装置は、記憶メディアを有する記憶メディア記憶装置を備え、
    前記記憶メディア記憶装置は、少なくとも一つのライトデータを記憶するサブ領域と、前記サブ領域を特定するためのアドレスとをそれぞれ複数個有するデータ記憶域を有し、
    前記記憶制御方法は、
    ホスト装置からライトデータを受信するステップと、
    ライトデータを一時的に記憶するキャッシュ領域に前記受信したライトデータを書き込むステップと、
    前記キャッシュ領域に書き込まれているK個(Kは一以上の整数)のライトデータについての第一の比較対象を生成するステップと、
    前記生成された第一比較対象を第一比較対象記憶域に書き込むステップと、
    前記K個のライトデータを含んだデータフレームを生成し、前記生成されたデータフレームを、記憶メディアを有する記憶メディア装置に送信するステップと、
    前記記憶メディア装置が受信したデータフレームに含まれているK個のライトデータを、前記データ記憶域における複数のサブ領域のうちの少なくとも一つのサブ領域に書き込むステップと、
    前記データ記憶域の複数のアドレスから読み出し開始のアドレスを指定するステップと、
    前記指定されたアドレスが表すサブ領域からライトデータを読出し、前記読み出されたライトデータを前記記憶メディアに書き込むステップと、
    K個のライトデータが前記データ記憶域から読み出される場合に、前記読み出されるK個のライトデータについての第二の比較対象を生成するステップと、
    前記生成された第二比較対象を第二比較対象記憶域に書き込むステップと、
    前記第二比較対象記憶域に記憶された第二比較対象を送信するステップと、
    前記送信された第二比較対象と、前記第一比較対象記憶域に記憶されている第一比較対象とを比較するステップと、
    比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのどの第一比較対象にも前記第二比較対象が適合しない場合、過去に送信されたK個のライトデータを前記キャッシュ領域から取得し、前記取得されたK個のライトデータを含んだ前記データフレームを前記記憶メディア装置に再送するステップと
    を有する記憶制御方法。
  12. 書込み対象のデータであるライトデータを送信するホスト装置から前記ライトデータを受信し記憶メディアに書き込む記憶制御装置において、
    データを記憶する記憶メディアと、
    ホスト装置からのライトデータを一時的に記憶するキャッシュ領域と、
    前記キャッシュ領域に書き込まれているK個(Kは一以上の整数)のライトデータを取得するキャッシュ取得部と、
    前記K個のライトデータについての第一の比較対象を生成する第一比較対象生成部と、
    前記生成された第一比較対象を記憶する前記第一比較対象記憶域と、
    少なくとも一つのライトデータを記憶するサブ領域と、前記サブ領域を特定するためのアドレスとをそれぞれ複数個有し、前記K個のライトデータを、前記複数のサブ領域のうちの少なくとも一つのサブ領域に記憶するデータ記憶域と、
    前記データ記憶域の複数のアドレスから読み出し開始のアドレスを指定するアドレス指定部と、
    前記指定されたアドレスが表すサブ領域からライトデータを読出し、前記読み出されたライトデータを前記記憶メディアに書き込む記憶メディア書込み部と、
    K個のライトデータが前記データ記憶域から読み出される場合に、前記読み出されるK個のライトデータについての第二の比較対象を生成する第二比較対象生成部と、
    前記生成された第二比較対象と、前記第一比較対象記憶域に記憶されている第一比較対象とを比較する比較部と
    を備え、
    前記比較部による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのどの第一比較対象にも前記第二比較対象が適合しない場合、前記キャッシュ取得部が、K個のライトデータを前記キャッシュ領域から取得し、
    前記データ記憶域が、前記取得されたK個のライトデータを記憶する、
    記憶制御装置。
  13. 前記比較部による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのいずれか一つの第一比較対象に前記受信された第二比較対象が適合した場合、その第一比較対象に対応したK個のライトデータを前記キャッシュ領域から消去するデータ消去部を更に備える、
    請求項12記載の記憶制御装置。
  14. 前記第一比較対象及び前記第二比較対象は、前記K個のライトデータについてのエラー検出用のコードを含んだデータ群である、
    請求項12記載の記憶制御装置。
  15. 前記第一比較対象記憶域が、複数の第一比較対象の中から第一比較対象を識別するための第一の識別情報を記憶し、
    前記記憶制御装置が、第二比較対象に対応した第二の識別情報に適合する第一の識別情報を前記第一比較対象記憶域から特定する特定部を更に備え、
    前記比較部が、前記特定された第一の識別情報から識別される第一比較対象と、前記第二の識別情報に対応した第二比較対象とを比較する、
    請求項12記載の記憶制御装置。
  16. 前記記憶メディアを備える記憶メディア装置と、
    前記キャッシュ領域におけるK個のライトデータを含んだデータフレームを生成し、前記生成されたデータフレームを前記記憶メディア装置に送信するデータフレーム送信部と
    を更に備え、
    前記第一の識別情報は、前記第一の比較対象に対応したK個のライトデータを含むデータフレームの送信順番を表したフレーム番号を含み、
    前記第二の識別情報は、前記第二の比較対象に対応付けられたフレーム番号を含む、
    請求項15記載の記憶制御装置。
JP2004322307A 2004-11-05 2004-11-05 記憶メディアへの書込みエラーを検出する記憶制御装置及び方法 Withdrawn JP2006134064A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004322307A JP2006134064A (ja) 2004-11-05 2004-11-05 記憶メディアへの書込みエラーを検出する記憶制御装置及び方法
US11/022,781 US7570447B2 (en) 2004-11-05 2004-12-28 Storage control device and method for detecting write errors to storage media

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004322307A JP2006134064A (ja) 2004-11-05 2004-11-05 記憶メディアへの書込みエラーを検出する記憶制御装置及び方法

Publications (1)

Publication Number Publication Date
JP2006134064A true JP2006134064A (ja) 2006-05-25

Family

ID=36316034

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004322307A Withdrawn JP2006134064A (ja) 2004-11-05 2004-11-05 記憶メディアへの書込みエラーを検出する記憶制御装置及び方法

Country Status (2)

Country Link
US (1) US7570447B2 (ja)
JP (1) JP2006134064A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071047A (ja) * 2006-09-13 2008-03-27 Kwok-Yan Leung ディスクインターフェースカード
JP2009537899A (ja) * 2006-05-18 2009-10-29 ラムバス・インコーポレーテッド 制御情報、読み出しデータおよび/または書き込みデータにおけるエラーを検出および識別するシステム

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934812B1 (en) * 2001-10-22 2005-08-23 Apple Computer, Inc. Media player with instant play capability
US8151259B2 (en) 2006-01-03 2012-04-03 Apple Inc. Remote content updates for portable media devices
US7724716B2 (en) 2006-06-20 2010-05-25 Apple Inc. Wireless communication system
US7831199B2 (en) 2006-01-03 2010-11-09 Apple Inc. Media data exchange, transfer or delivery for portable electronic devices
US7706637B2 (en) * 2004-10-25 2010-04-27 Apple Inc. Host configured for interoperation with coupled portable media player device
JP2006185352A (ja) * 2004-12-28 2006-07-13 Fujitsu Ltd 外部記憶制御装置およびそのためのプログラム
US7593782B2 (en) 2005-01-07 2009-09-22 Apple Inc. Highly portable media device
US7360112B2 (en) * 2005-02-07 2008-04-15 International Business Machines Corporation Detection and recovery of dropped writes in storage devices
GB0507912D0 (en) * 2005-04-20 2005-05-25 Ibm Disk drive and method for protecting data writes in a disk drive
JP2006309375A (ja) * 2005-04-27 2006-11-09 Hitachi Ltd システム情報に基づいて動作する記憶装置システム及びその記憶装置システムの制御方法
US9459960B2 (en) 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US7831882B2 (en) * 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
US8300841B2 (en) 2005-06-03 2012-10-30 Apple Inc. Techniques for presenting sound effects on a portable media player
US7930369B2 (en) 2005-10-19 2011-04-19 Apple Inc. Remotely configured media device
US8654993B2 (en) * 2005-12-07 2014-02-18 Apple Inc. Portable audio device providing automated control of audio volume parameters for hearing protection
US8255640B2 (en) * 2006-01-03 2012-08-28 Apple Inc. Media device with intelligent cache utilization
US7673238B2 (en) 2006-01-05 2010-03-02 Apple Inc. Portable media device with video acceleration capabilities
US20070166683A1 (en) * 2006-01-05 2007-07-19 Apple Computer, Inc. Dynamic lyrics display for portable media devices
US7562285B2 (en) 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
US8050181B2 (en) * 2006-02-14 2011-11-01 Jds Uniphase Corporation Sliding frame comparator in a network diagnostic device
US7848527B2 (en) 2006-02-27 2010-12-07 Apple Inc. Dynamic power management in a portable media delivery system
US8352805B2 (en) 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US8358273B2 (en) * 2006-05-23 2013-01-22 Apple Inc. Portable media device with power-managed display
US8341524B2 (en) 2006-09-11 2012-12-25 Apple Inc. Portable electronic device with local search capabilities
US8090130B2 (en) 2006-09-11 2012-01-03 Apple Inc. Highly portable media devices
US7729791B2 (en) * 2006-09-11 2010-06-01 Apple Inc. Portable media playback device including user interface event passthrough to non-media-playback processing
US7589629B2 (en) 2007-02-28 2009-09-15 Apple Inc. Event recorder for portable media device
KR100921748B1 (ko) * 2007-06-04 2009-10-15 삼성전자주식회사 Ecc 회로를 포함하는 메모리 시스템 및 그 구동 방법
WO2009108562A2 (en) * 2008-02-25 2009-09-03 Rambus Inc. Code-assisted error-detection technique
JP2010055210A (ja) * 2008-08-26 2010-03-11 Hitachi Ltd ストレージシステム及びデータ保証方法
JP5112246B2 (ja) * 2008-10-09 2013-01-09 株式会社日立製作所 ストレージシステム及び通信方法
US8468417B2 (en) 2009-02-18 2013-06-18 Micron Technology, Inc. Data integrity in memory controllers and methods
US11132251B2 (en) * 2012-05-31 2021-09-28 Samsung Electronics Co., Ltd. Enhanced checksum system
US9286933B2 (en) 2012-11-27 2016-03-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for controlled data processor operational marginalization
US8854762B2 (en) 2012-12-10 2014-10-07 Lsi Corporation Systems and methods for X-sample based data processor marginalization
US8854763B2 (en) 2012-12-20 2014-10-07 Lsi Corporation Systems and methods for managed operational marginalization
US8873187B1 (en) 2013-05-10 2014-10-28 Lsi Corporation Systems and methods for data processor marginalization based upon bit error rate
US9292379B2 (en) * 2013-09-28 2016-03-22 Intel Corporation Apparatus and method to manage high capacity storage devices
US9058115B1 (en) 2013-12-09 2015-06-16 Lsi Corporation Systems and methods for multi-dimensional data processor operational marginalization
JP6507470B2 (ja) * 2014-02-04 2019-05-08 富士通株式会社 情報処理装置、情報処理システム及び障害検出方法
US9979416B2 (en) 2014-12-10 2018-05-22 Rambus Inc. Memory controller and method of data bus inversion using an error detection correction code
CN111819547A (zh) 2018-03-26 2020-10-23 拉姆伯斯公司 命令/地址通道错误检测
RU210791U1 (ru) * 2021-10-02 2022-05-04 Федеральное государственное бюджетное образовательное учреждение высшего образования «Брянский государственный инженерно-технологический университет» Рабочее оборудование модульной дорожной машины-ресайклера

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000347815A (ja) 1999-06-07 2000-12-15 Hitachi Ltd ディスクアレイシステム
US6681364B1 (en) * 1999-09-24 2004-01-20 International Business Machines Corporation Cyclic redundancy check for partitioned frames
US7065702B2 (en) * 2001-04-12 2006-06-20 Siliquent Technologies Ltd. Out-of-order calculation of error detection codes
US7131050B2 (en) * 2002-02-28 2006-10-31 Lsi Logic Corporation Optimized read performance method using metadata to protect against drive anomaly errors in a storage array
US7372651B2 (en) * 2003-03-07 2008-05-13 Quantum Corporation Introducing a noise signal into a read-back signal when data is written to a removable data storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009537899A (ja) * 2006-05-18 2009-10-29 ラムバス・インコーポレーテッド 制御情報、読み出しデータおよび/または書き込みデータにおけるエラーを検出および識別するシステム
JP2008071047A (ja) * 2006-09-13 2008-03-27 Kwok-Yan Leung ディスクインターフェースカード

Also Published As

Publication number Publication date
US20060098320A1 (en) 2006-05-11
US7570447B2 (en) 2009-08-04

Similar Documents

Publication Publication Date Title
JP2006134064A (ja) 記憶メディアへの書込みエラーを検出する記憶制御装置及び方法
US10089027B2 (en) Information processing system
US8601348B2 (en) Error checking addressable blocks in storage
US6928578B2 (en) System, method, and computer program for selectable or programmable data consistency checking methodology
US6766491B2 (en) Parity mirroring between controllers in an active-active controller pair
US7779202B2 (en) Apparatus and method for controlling disk array with redundancy and error counting
US9377960B2 (en) System and method of using stripes for recovering data in a flash storage system
US8234542B2 (en) Storage controller and method for controlling input and output of data between a storage apparatus and a host computer
WO2013160970A1 (en) Storage system and storage control apparatus
US20130290629A1 (en) Storage system and storage apparatus
US8762681B2 (en) Blocked based end-to-end data protection for extended count key data (ECKD)
US7849258B2 (en) Storage apparatus and data verification method for the same
WO2002071230A1 (en) Utilizing parity caching and parity logging while closing the raid 5 write hole
US8180952B2 (en) Storage system and data guarantee method
US7454686B2 (en) Apparatus and method to check data integrity when handling data
US10067833B2 (en) Storage system
US10229742B2 (en) Flash memory device
US11482294B2 (en) Media error reporting improvements for storage drives
US7594051B2 (en) Storage apparatus
US10014983B2 (en) System, receiving device, and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070919

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090525