(57)【特許請求の範囲】
【請求項１】
上位システムからのデータの書き込み、及び読み出し可能の記憶媒体に対する書き込みデータ又は/及び読み出しデータの一時的な蓄積を行うメモリと、
前記一時記憶メモリに対する書き込み又は/及び読み出しを管理するメモリマネージャーと、
前記上位システムと前記メモリとの間の書き込み又は/及び読み出しの処理速度差を補完する第一の格納メモリと、
前記記憶媒体と前記一時記憶メモリとの間の書き込み及び読み出しの処理速度差を補完する第二の格納メモリとを備え、
前記メモリマネージャーは、比較部を有し、前記第一の格納メモリに保持された診断用データを前記一時記憶メモリに対して書き込み、書き込まれたデータを前記一時記憶メモリから読み出し、前記第二の格納メモリ内に格納し、
前記比較部は、前記第一の格納メモリ内の前記診断用データと前記第二の格納メモリ内の読出データとを比較し、比較結果が不一致ならば異常と判断することを特徴とするメモリ診断機能を有する記憶装置。
【請求項２】
請求項１において、
前記第一の格納メモリと前記第二の格納メモリがFIFOメモリで構成されていることを特徴とするメモリ診断機能を有する記憶装置。
【請求項３】
上位システムからのデータの書き込み、及び読み出し可能の記憶媒体と、前記記憶媒体に対する書き込みデータ又は/及び読み出しデータの一時的な蓄積を行う一時記憶メモリと、前記一時記憶メモリに対する書き込み及び読み出しを管理するメモリマネージャーと、前記上位システムと前記一時記憶メモリとの間の書き込み又は/及び読み出しの処理速度差を補完する第一の格納メモリと、前記記憶媒体と前記一時記憶メモリとの間の書き込み又は/及び読み出しの処理速度差を補完する第二の格納メモリとを備える記憶装置における前記一時記憶メモリの診断方法であって、
前記第一の格納メモリ内の診断用データを、前記一時記憶メモリに対して書き込み、
書込データを前記一時記憶メモリから読み出し、前記第二の格納メモリ内に格納し、
前記メモリマネージャー内の比較部により、前記第一の格納メモリ内の前記診断用データと前記第二の格納メモリ内の読出データとを比較し、
比較結果が不一致ならば異常と判断することを特徴とするメモリ診断方法。
【請求項４】
上位システムからのデータの書き込み又は/及び読み出し可能の記憶媒体に対するデータの書き込み、又は/及び読み出しの際に、一時的な蓄積を行う一時記憶メモリと、
前記一時記憶メモリに対する前記データの書き込み又は/及び読み出しを管理するメモリマネージャーと、
前記上位システムと前記メモリとの間の書き込み又は/及び読み出しの処理速度差を補完する第一の格納メモリと、
前記憶媒体と前記メモリとの間の書き込み又は/及び読み出しの処理速度差を補完する第二の格納メモリとを備え、
前記メモリマネージャーは、巡回冗長符号を算出する巡回冗長符号算出部と、巡回冗長符号を比較する比較部とを有し、前記第一の格納メモリに予め設定された所定の診断用データに基づいて生成される書込データを前記一時記憶メモリに書き込み、前記書込データを前記一時記憶メモリから読み出し、
前記巡回冗長符号算出部は、前記一時記憶メモリに対する前記書込データの書き込みの際に、前記書込データに基づいた巡回冗長符号を算出し、前記一時記憶メモリに前記書込データとともに前記算出された巡回冗長符号を書き込み、読み出された読出データに基づいた巡回冗長符号を算出し、
前記比較部は、前記書込データに基づいた巡回冗長符号と、前記読出データに基づいた巡回冗長符号を比較し、比較結果が不一致ならば異常と判断することを特徴とするメモリ診断機能を有する記憶装置。
【請求項５】
請求項４において、
前記第一の格納メモリと前記第二の格納メモリとがFIFOメモリで構成されていることを特徴とするメモリ診断機能を有する記憶装置。
【請求項６】
請求項４において、
前記メモリマネージャーは、前記書込データの書き込み、もしくは、前記読出データの読み出し毎に所定の数が加減算されるシードを算出し、
前記巡回冗長符号算出部は、前記書込データ、もしくは、前記読出データに対して前記算出されたシードを付加することにより、同一の前記書込データ、もしくは、前記読出データから異なる巡回冗長符号を得ることを特徴とするメモリ診断機能を有する記憶装置。
【請求項７】
請求項４において、
前記書込データは、複数の前記診断用データで構成されることを特徴とするメモリ診断機能を有する記憶装置。
【請求項８】
上位システムからのデータの書き込み又は/及び読み出し可能の記憶媒体に対するデータの書き込み、又は、読み出しの際に、一時的な蓄積を行う一時記憶メモリと、前記一時記憶メモリに対する前記データの書き込み、又は、読み出しを管理するメモリマネージャーと、前記上位システムと前記一時記憶メモリとの間の書き込み、及び、読み出しの処理速度差を補完する第一の格納メモリと、前記憶媒体と前記一時記憶メモリとの間の書き込み及び読み出しの処理速度差を補完する第二の格納メモリとを備える記憶装置における前記一時記憶メモリの診断方法であって、
前記メモリマネージャーにより、前記第一の格納メモリ内の予め設定された所定の診断用データに基づいて生成される書込データを前記一時記憶メモリに対して書き込み、
前記メモリマネージャー内の巡回冗長符号算出部により、前記書込データに基づいた巡回冗長符号を算出し、前記一時記憶メモリに対して前記書込データとともに前記算出された巡回冗長符号を書き込み、
前記メモリマネージャーにより、書き込まれた巡回冗長符号を前記一時記憶メモリから読み出し、
前記メモリマネージャーにより、前記書込データを前記一時記憶メモリから読み出し、
前記メモリマネージャー内の巡回冗長符号算出部により、読み出された読出データに基づいた巡回冗長符号を算出し、
前記メモリマネージャー内の比較部により、前記書込データに基づいた巡回冗長符号と、前記読出データに基づいた巡回冗長符号を比較し、比較結果が不一致ならば異常と判断することを特徴とするメモリ診断方法。
【請求項９】
請求項８において、
前記メモリマネージャーは、前記書込データの書き込み、もしくは、前記読出データの読み出し毎に所定の数が加減算されるシードを算出し、
前記巡回冗長符号算出部は、前記書込データ、もしくは、前記読出データに対して前記算出されたシードを付加することにより、同一の前記書込データ、もしくは、前記読出データから異なる巡回冗長符号を得ることを特徴とするメモリ診断方法。
【請求項１０】
請求項８において、
前期書込データは、複数の前記診断用データで構成されることを特徴とするメモリ診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ診断機能を有する記憶装置、及び記憶装置におけるメモリ診断方法に関する。
【背景技術】
【０００２】
現在、コンピュータ等の情報処理装置には様々なメモリが搭載されている。それらのメモリに対して、データを書き込み、保持し、正常に読み出すことができるかどうかの診断が行われている。その診断方法の一つとして、特許文献１に記載の技術は、メモリに対してアクセスするバスの占有権を１アドレスの診断毎にマイクロプロセッサから診断起動・停止回路へと渡し、マイクロプロセッサの占有を低減したものである。【０００３】
メモリの中には、ハードディスク装置において、ホストコンピュータとディスクとの間でやりとりされるデータを一時的に蓄積するために備えられるSDRAMがある。ディスクとホストコンピュータとに介在するこのSDRAMに対しても、ハードディスク装置が起動する際に、データを書き込み、保持し、正常に読み出すことができるかどうかの診断が行われる。【０００４】
図１は、ハードディスク装置と、ホストコンピュータと、介在するSDRAMとの構成を示した図である。ここで、ホストコンピュータ6は、記憶媒体7に対して書き込みや読み出しを行う。SDRAM2はその間に存在し、書き込みデータや読み出しデータの一時的な蓄積を行う。ここで、記憶媒体７は、磁気ディスクであり、アクセスに必要な磁気ヘッドアセンブリなどを含む。また、第一の格納メモリ4は、ホストコンピュータ6とSDRAM2との間の書き込みと読み出しの速度差を補完するための機構（FIFO）である。そして、第二の格納メモリ5は、記憶媒体7とSDRAM2との間の書き込みと読み出しの速度差を補完するための機構（FIFO）である。メモリマネージャー1は、SDRAM2に対する書き込みや読み出しを管理するハードウェアである。そして、マイクロプロセッサ3は、ハードディスク装置全体を管理し、スピンドルモーターの起動・停止などを行う。【０００５】
図２は、ハードディスク装置の起動から、使用可能状態に至るまでの動作フローである。ステップS1では、電源投入後マイクロプロセッサ3が動作を開始する。次に、ステップS2では、第一の格納メモリ4、第二の格納メモリ5、SDRAM2などが初期化される。その後、ステップS3では、SDRAM2の初期診断が行われる。さらに、ステップS4では、マイクロプロセッサ3、サーボコントローラーのレジスタ等の初期化などが行われる。最後にステップS5では、スピンドルモーターが起動しディスクが定常回転にいたる。これらのステップを経て、ハードディスク装置は使用可能状態となる。【０００６】
この際、全てのステップには、なんらかの形でファームウェアが関わっており、並行して複数のステップが実行されることはなかった。【０００７】
ここで、図１に戻り、ハードディスク装置とホストコンピュータ６とに介在するSDRAM２の従来の初期診断の詳細を説明する。この初期診断は、マイクロプロセッサ３を用いて行われる。【０００８】
マイクロプロセッサ３は２バイトの診断用データを生成し、SDRAM２の書き込みと読み出しを管理するメモリマネージャー１に診断用データを送る。メモリマネージャー１は、診断用データをマイクロプロセッサ３から受け、マイクロプロセッサ３によって指定されたSDRAM２のアドレス上に診断用データを書き込む。次に、メモリマネージャー１は、直前に書き込みを行ったアドレスからデータを読み出す。読み出されたデータは、メモリマネージャー１からマイクロプロセッサ３に送られ、マイクロプロセッサ３内で書き込みデータと読み出しデータとの比較が行われる。【０００９】
全てのメモリ領域に対してこの比較動作を行うには、診断用データが２バイトであるため、２バイトずつの書き込みと読み出しを全領域に対して行わなければならない。２バイトのデータの書き込みや読み出しのたびに、行アドレスを与えるタイミングを伝えるための信号であるRAS（Row Address Strobe）や列アドレスを与えるタイミングを伝えるための信号であるCAS（Column Address
Strobe）を待たなければならないため、長い時間が必要となる。ハードディスク装置が使用可能となるまでの時間に対する制約上、全メモリ領域を診断することはできず、全メモリ領域を分割し、全メモリ領域の一部の領域しか診断することができなかった。
【特許文献１】特開平７−２７１６７９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記の方法では、メモリ診断がマイクロプロセッサに展開されるファームウェアに基づき、２バイトずつの診断用データ書き込みと読み出しが行われるため、処理速度が遅い。また、全メモリ領域の一部の領域のみの診断となるため、全領域を診断する場合に比べて信頼性が劣る。【００１１】
したがって、本発明の目的は、従来ファームウェアに基づいてマイクロプロセッサによって行われていたメモリ診断を、ハードウェアを用いて大規模のデータの一括書き込みと読み出しを行うことにより、メモリ診断の速度を速め、且つ、マイクロプロセッサを開放することにより他の処理と並行に行うことを可能とすることである。さらに、それにともないメモリの全領域を診断し、メモリ診断の信頼性を向上することである。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明の第一の側面によれば、ホストコンピュータからのデータの書き込み、及び読み出し可能の記憶媒体と、前記記憶媒体に対する書き込みデータ及び読み出しデータの一時的な蓄積を行うSDRAMと、前記SDRAMに対する書き込み及び読み出しを管理するメモリマネージャーと、前記ホストコンピュータと前記SDRAMとの間の書き込み及び読み出しの処理速度差を補完する第一の格納メモリと、  前記記憶媒体と前記SDRAMとの間の書き込み及び読み出しの処理速度差を補完する第二の格納メモリとを備えるメモリ診断機能を有する記憶装置において、前記メモリマネージャーは、比較部を有し、前記第一の格納メモリに保持された診断用データを前記SDRAMに対して書き込み、書き込まれたデータを前記SDRAMから読み出し、前記第二の格納メモリ内に格納し、前記比較部は、前記第一の格納メモリ内の前記診断用データと前記第二の格納メモリ内の読出データとを比較し、比較結果が不一致ならば異常を通知することを特徴とする。【００１３】
また、本発明の第二の側面によれば、ホストコンピュータからのデータの書き込み、及び読み出し可能の記憶媒体と、前記記憶媒体に対する書き込みデータ及び読み出しデータの一時的な蓄積を行うSDRAMと、前記SDRAMに対する書き込み及び読み出しを管理するメモリマネージャーと、前記ホストコンピュータと前記SDRAMとの間の書き込み及び読み出しの処理速度差を補完する第一の格納メモリと、前記記憶媒体と前記SDRAMとの間の書き込み及び読み出しの処理速度差を補完する第二の格納メモリとを備える記憶装置における前記SDRAMの診断方法であって、前記第一の格納メモリ内の診断用データを、前記SDRAMに対して書き込み、書込データを前記SDRAMから読み出し、前記第二の格納メモリ内に格納し、前記メモリマネージャー内の比較部により、前記第一の格納メモリ内の前記診断用データと前記第二の格納メモリ内の読出データとを比較し、比較結果が不一致ならば異常を通知することを特徴とする。【００１４】
また、本発明の第三の側面によれば、ホストコンピュータからのデータの書き込み及び読み出し可能の記憶媒体と、前記記憶媒体に対するデータの書き込み、及び、読み出しの際に、一時的な蓄積を行うSDRAMと、前記SDRAMに対する前記データの書き込み、及び、読み出しを管理するメモリマネージャーと、前記ホストコンピュータと前記SDRAMとの間の書き込み及び読み出しの処理速度差を補完する第一の格納メモリと、前記憶媒体と前記SDRAMとの間の書き込み及び読み出しの処理速度差を補完する第二の格納メモリとを備えるメモリ診断機能を有する記憶装置において、前記メモリマネージャーは、巡回冗長符号を算出する巡回冗長符号算出部と、巡回冗長符号を比較する比較部とを有し、前記第一の格納メモリに予め設定された所定の診断用データに基づいて生成される書込データを前記SDRAMに書き込み、前記書込データを前記SDRAMから読み出し、前記巡回冗長符号算出部は、前記SDRAMに対する前記書込データの書き込みの際に、前記書込データに基づいた巡回冗長符号を算出し、前記SDRAMに前記書込データとともに前記算出された巡回冗長符号の書き込みを行う。次に、読み出された読出データに基づいた巡回冗長符号を算出し、前記比較部は、前記書込データに基づいた巡回冗長符号と、前記読出データに基づいた巡回冗長符号を比較し、比較結果が不一致ならば異常を通知することを特徴とする。【００１５】
また、上記発明の第三の側面において、さらに好ましい実施例では、前記メモリマネージャーは、前記書込データの書き込み、もしくは、前記読出データの読み出し毎に所定の数が加減算されるシードを算出し、前記巡回冗長符号算出部は、前記書込データ、もしくは、前記読出データに対して前記算出されたシードを付加することにより、同一の前記書込データ、もしくは、前記読出データから異なる巡回冗長符号を得ることを特徴とする。【００１６】
また、上記発明の第三の側面において、さらに好ましい実施例では、前記書込データは、複数の前記診断用データで構成されることを特徴とする。【００１７】
また、本発明の第四の側面によれば、ホストコンピュータからのデータの書き込み及び読み出し可能の記憶媒体と、前記記憶媒体に対するデータの書き込み、及び、読み出しの際に、一時的な蓄積を行うSDRAMと、前記SDRAMに対する前記データの書き込み、及び、読み出しを管理するメモリマネージャーと、前記ホストコンピュータと前記SDRAMとの間の書き込み、及び、読み出しの処理速度差を補完する第一の格納メモリと、前記憶媒体と前記SDRAMとの間の書き込み及び読み出しの処理速度差を補完する第二の格納メモリとを備える記憶装置における前記SDRAMの診断方法であって、前記メモリマネージャーにより、前記第一の格納メモリ内の予め設定された所定の診断用データに基づいて生成される書込データを前記SDRAMに対して書き込み、前記メモリマネージャー内の巡回冗長符号算出部により、前記書込データに基づいた巡回冗長符号を算出し、前記SDRAMに対して前記書込データとともに前記算出された巡回冗長符号を書き込み、前記メモリマネージャーにより、書き込まれた巡回冗長符号を前記SDRAMから読み出し、前記メモリマネージャーにより、前記書込データを前記SDRAMから読み出し、前記メモリマネージャー内の巡回冗長符号算出部により、読み出された読出データに基づいた巡回冗長符号を算出し、前記メモリマネージャー内の比較部により、前記書込データに基づいた巡回冗長符号と、前記読出データに基づいた巡回冗長符号を比較し、比較結果が不一致ならば異常を通知することを特徴とする。【００１８】
また、上記発明の第四の側面において、好ましい実施例では、前記格納メモリがFIFOメモリで構成されていることを特徴とする。【００１９】
また、上記発明の第四の側面において、さらに好ましい実施例では、前記メモリマネージャーは、前記書込データの書き込み、もしくは、前記読出データの読み出し毎に所定の数が加減算されるシードを算出し、前記巡回冗長符号算出部は、前記書込データ、もしくは、前記読出データに対して前記算出されたシードを付加することにより、同一の前記書込データ、もしくは、前記読出データから異なる巡回冗長符号を得ることを特徴とする。【００２０】
また、上記発明の第四の側面において、さらに好ましい実施例では、前期書込データは、複数の前記診断用データで構成されることを特徴とする。
【発明の効果】
【００２１】
本発明のメモリ診断機能は、格納メモリに格納された診断データをハードウェアによってSDRAMに対して書き込み、読み出し、比較を行うことにより、診断時間を短縮し、SDRAMの全領域に対する診断を可能にする。また、マイクロプロセッサを用いることなくメモリ診断を行うことができるため、他の動作を並行して行うことを可能にする。
【図面の簡単な説明】
【００２２】
【図１】ハードディスク装置と、ホストコンピュータと、介在するSDRAMとの構成を示  した図である。
【図２】ハードディスク装置の起動から、使用可能状態に至るまでの動作フローである  。
【図３】本発明の第一の実施形態におけるメモリ診断機能を有するハードディスク装置  の構成図である。
【図４】メモリマネージャーに対するリクエストを処理するアービトレーション機構の  図である。
【図５】本発明の第一の実施形態におけるメモリ診断の動作フローである。
【図６】本発明の第二の実施形態におけるメモリ診断機能を有するハードディスク装置  の構成図である。
【図７】本発明の第二の実施形態におけるメモリ診断の動作フローである。
【図８】本発明の第二の実施形態におけるSDRAMに書き込まれるデータを示す図である  。
【図９】巡回冗長符号の説明図である。
【図１０】本発明のメモリ診断機能を有したハードディスク装置の動作フローと、本発明  のメモリ診断機能を有していないハードディスク装置の動作フローを示す図で  ある。
【符号の説明】
【００２３】
1 メモリマネージャー
2 SDRAM
3 マイクロプロセッサ
4 第一の格納メモリ（FIFO）
5 第二の格納メモリ（FIFO）
6 ホストコンピュータ
7 記憶媒体
【発明を実施するための最良の形態】
【００２４】
以下、図面に従って本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。【００２５】
図３は、本発明の第一の実施形態におけるメモリ診断機能を有するハードディスク装置の構成図である。SDRAM２に対する書き込みと読み出しを管理するメモリマネージャー１は、ホストコンピュータ６、記憶媒体７、ハードディスク装置全体を管理するマイクロプロセッサ３に接続されている。メモリマネージャー１とホストコンピュータ６の間には、第一の格納メモリ４が存在している。また、メモリマネージャー１と記憶媒体７の間には、第二の格納メモリ５が存在している。本実施形態では、図３内の点線内部がメモリ診断装置となる。【００２６】
なお、本発明の第一の実施形態において、第一の格納メモリ４と第二の格納メモリ５はそれぞれFIFOで構成される。通常、ハードディスク装置には、一時的に書き込みと読み出しのデータを蓄積するためのSDRAM２と、記憶媒体７とSDRAM２との間のデータ転送速度の差を補完するためのFIFOと、ホストコンピュータ６とSDRAM２との間のデータ転送速度の差を補完するためのFIFOが備えられている。これらの既存のFIFOを用いてメモリ診断装置を構成すれば、従来の回路の変更を最小限に抑えることができ、メモリ診断装置の規模も最小限に抑えることができる。【００２７】
図４は、メモリマネージャー１に対するリクエストを処理するアービトレーション機構の図である。メモリマネージャー１は、SDRAM２に対する書き込みや読み出しなどの様々なリクエストをアービトレーション機構を用いて処理する。たとえば、メモリマネージャー１に対するリクエストとしては、第一の格納メモリ４のデータから巡回冗長符号（CRC）を生成しSDRAM２への書き込み、またはその読み出しに対するリクエストR1、第二の格納メモリ５内のデータから巡回冗長符号を生成しSDRAM２への書き込み、またはその読み出しに対するリクエストR2、第一の格納メモリ４とSDRAM２との間のデータの書き込みと読み出しに対するリクエストR3、第二の格納メモリ５とSDRAM２との間のデータの書き込みと読み出しに対するリクエストR4、マイクロプロセッサ３からのSDRAM２に対するアクセスに対するリクエストR5などが存在する。【００２８】
図４のアービトレーション機構は、発生したリクエストを時計回りに処理する。たとえば、第一の格納メモリ４のデータをSDRAM２に書き込みたい場合には、リクエストR3が発生し、リクエストR3の処理の後にリクエストR4、リクエストR5、リクエストR1の順でチェックが行われる。リクエストが全く発生していない場合は、アイドル状態でループしている。【００２９】
SDRAM２の初期診断の際に、第一の格納メモリ４の中には、診断用データが格納されている。このデータはマイクロプロセッサ３に生成されたものであっても、ホストコンピュータ６から転送されたものであってもよい。この診断用データは、メモリマネージャー１を介してSDRAM２に書き込まれ、直ちにメモリマネージャー１に読み出される。読み出されたデータは、第二の格納メモリ５に格納される。そして、第一の格納メモリ４の中のデータと第二の格納メモリ５の中のデータを、メモリマネージャー１内の比較部が比較することによりSDRAM２の診断が行われる。【００３０】
図５は、本発明の第一の実施形態におけるメモリ診断の動作フローである。最初に、ファームウェアに基づいて動作するマイクロプロセッサ３によってメモリ診断の開始位置と終了位置が決定する（処理工程P1-1）。そして、マイクロプロセッサ３は、メモリマネージャー１の初期診断機能を起動する（処理工程P1-2）。処理工程P1-1と処理工程P1-2はファームウェアで実現され、以降はメモリマネージャー１のハードウェアで実現される。【００３１】
メモリマネージャー１は第一の格納メモリ４内の診断用データを、SDRAM２に書き込む（処理工程P1-3）。このとき、図４のアービトレーション機構には、リクエストR3が発生し、処理される。次に、書き込まれたアドレス上のデータを直ちに読み出し、第二の格納メモリ５内に格納する（処理工程P1-4）。このとき、図４のアービトレーション機構には、リクエストR4が発生し、処理される。メモリマネージャー内の比較部は、第一の格納メモリ４内のデータと第二の格納メモリ５内のデータとを比較する（処理工程P1-5）。その際に、不一致が検出されれば、直ちに異常と判断しSDRAM２の診断は終了する（処理工程P1-6）。一致であれば、ポインタの位置が終了位置であるかどうかを確認する（処理工程P1-7）。終了位置でなければ、SDRAM２のポインタのインクリメントを行い（処理工程P1-8）、SDRAM２に対する診断用データの書き込み（処理工程P1-3）に戻る。処理工程P1-3から処理工程P1-8までのループは、ポインタの位置が終了位置に達するまで繰り返される。ポインタが終了位置に達すると、メモリ診断機能は正常終了する（処理工程P1-9）。【００３２】
SDRAM２が８メガバイトの領域を持ち、第一の格納メモリ４と第二の格納メモリ５とが、それぞれ128バイトの大きさを持つとすれば、SDRAM２の全領域を診断するのに、書き込み、読み出し、比較のループ（処理工程P1-3から処理工程P1-8までのループ）は、65536回で済むことになる。従来のように、２バイトごとの書き込み、読み出し、比較のループでは、SDRAM２の全領域を診断しようとすれば、４メガ回のループが必要であることから、大幅な改善といえる。ループ回数の減少により、書き込み、読み出し、比較の際のオーバーヘッド時間を省略することができ大幅な時間短縮となる。【００３３】
このようにして、本発明の第一の実施形態において、従来ファームウェアに基づいてマイクロプロセッサ３によって行われていたメモリ診断を、ハードウェアによって大規模のデータの一括書き込みと読み出しを行うことにより、メモリ診断の速度を速め、且つ、マイクロプロセッサ３を開放することにより他の処理と並行に行うことを可能にする。結果として、SDRAM２の全領域を診断でき、信頼性を向上することができる。【００３４】
尚、本発明の第一の実施形態において、記憶装置の例としてハードディスク装置を用いて説明したが、本発明はメモリを有する装置、製品に対しても同様に適用可能である。【００３５】
図６は、本発明の第二の実施形態におけるメモリ診断機能を有するハードディスク装置の構成図である。SDRAM２に対する書き込みと読み出しを管理するメモリマネージャー１は、ホストコンピュータ６、記憶媒体７、ハードディスク装置全体を管理するマイクロプロセッサ３に接続されている。メモリマネージャー１とホストコンピュータ６の間には、第一の格納メモリ４が存在し、また、メモリマネージャー１と記憶媒体７の間には、第二の格納メモリ５が存在している。本実施形態では、図６内の点線内部がハードディスク装置となる。【００３６】
なお、本発明の第二の実施形態において、第一の格納メモリ４と第二の格納メモリ５はそれぞれFIFOで構成される。通常、ハードディスク装置には、一時的に書き込みと読み出しのデータを蓄積するためのSDRAM２と、記憶媒体７とSDRAM２との間のデータ転送速度の差を補完するためのFIFOと、ホストコンピュータ６とSDRAM２との間のデータ転送速度の差を補完するためのFIFOが備えられている。これらの既存のFIFOを用いてメモリ診断装置を構成すれば、従来の回路の変更を最小限に抑えることができ、メモリ診断装置の規模も最小限に抑えることができる。【００３７】
第一の格納メモリ４の中には、診断用データが格納されている。このデータはマイクロプロセッサ３に生成されたものであっても、ホストコンピュータ６から転送されたものであってもよい。この診断用データは、メモリマネージャー１を介してSDRAM２に対して、書き込み終了位置に達するまで繰り返し書き込まれる。この際、シードと512バイトの書き込みデータから巡回冗長符号が計算され（計算方法は後述）、SDRAM２の一部に書き込まれる。なお、シードは、初期診断起動時に０に初期化され、開始位置から512バイトの診断データの書き込み毎にインクリメントされる４バイトデータである。また、SDRAM２上の１セクタは、512バイトで構成されており、第一の格納メモリ4と第二の格納メモリ5とがそれぞれ128バイトとすると、SDRAM2への書き込み及び、読み出しの際は、4回分のデータ転送が行われることとなる。【００３８】
その後、メモリマネージャー１は書き込み開始位置から1セクタのデータとそれに対応する巡回冗長符号を読み出し、読み出された１セクタのデータから再び巡回冗長符号を計算する。メモリマネージャー１内の比較部は、読み出された巡回冗長符号と計算された巡回冗長符号比較することにより、SDRAM２の診断が行われる。【００３９】
図７は、本発明の第二の実施形態におけるメモリ診断の動作フローである。最初に、ファームウェアによって動作するマイクロプロセッサ３によってメモリ診断の開始位置と終了位置が決定する（処理工程P2-1）。そして、マイクロプロセッサは、メモリマネージャー１の初期診断機能を起動する（処理工程P2-2）。処理工程P2-1と処理工程P2-2はファームウェアで実現され、以降はメモリマネージャー１のハードウェアで実現される。【００４０】
メモリマネージャー１は、第一の格納メモリ４上の診断用データを、ポインタをインクリメントしながら（処理工程P2-5）SDRAM２に順次書き込む（処理工程P2-3）。このとき、図４のアービトレーション機構には、第一の格納メモリ４からSDRAM２への書き込みに対するリクエストR3が発生する。その際に、メモリマネージャー１内の巡回冗長符号算出部は、１セクタ分の書き込みデータと、それに対応するシードとから巡回冗長符号を算出し、SDRAM２の開始位置に順次書き込む。このときアービトレーション機構には、４回のリクエストR3が発生し、最後にリクエストR1が一度で発生する。マイクロプロセッサ３が最初に設定した終了位置に到達したことが確認されると（処理工程P2-4）、書き込みを停止し、ポインタを初期化する（処理工程P2-6）。【００４１】
図８は本発明の第二の実施形態におけるSDRAM２に書き込まれるデータを示す図である。第一の格納メモリ４に格納されていた128バイトの診断用データは、処理工程P2-1で決定されたメモリ診断開始位置（図８のデータ書き込み開始位置）から順次書き込まれ、４回分の書き込みで512バイトの1セクタを形成する。1セクタ分の書き込み毎にシードはインクリメントされ、１セクタ分のデータと組み合わせて巡回冗長符号が算出される。そして、データ書き込み終了位置となる予定の位置から、対応する巡回冗長符号が順次書き込まれる。診断用データは最終的にデータ書き込み終了位置に達し、それに対応する巡回冗長符号はCRC書き込み終了位置にまで達する。【００４２】
次に、図７に戻り、メモリマネージャー１の初期診断機能は、ポインタをインクリメントしながら（処理工程P2-10）、書き込まれたデータと巡回冗長符号を読み出す（処理工程P2-7）。このとき、アービトレーション機構にはSDRAM２から第二の格納メモリ５へのデータの読み出しに対するリクエストR4が４回発生し、最後に巡回冗長符号の読み出しに対するリクエストR2が発生する。ここで、この巡回冗長符号はメモリマネージャー１内の比較部に送られる。読み出されたデータと対応するシードから、メモリマネージャー１内の巡回冗長符号算出部は、巡回冗長符号を算出し（処理工程P2-8）、比較部に巡回冗長符号を送る。【００４３】
比較部に送られた２つの巡回冗長符号は比較され（処理工程P2-11）、２つの巡回冗長符号が一致する場合は、終了位置かどうかの確認が行われる（処理工程P2-13）。２つの巡回冗長符号が一致しない場合は、メモリマネージャー１の初期診断機能は異常を検知し、終了する（処理工程P2-12）。【００４４】
最後にSDRAMの全領域が完了したかを終了位置と確認が行われる際に、終了位置でないと判断された場合には、再びSDRAM２からのデータと巡回冗長符号の読み出しが行われ、繰り返される。終了位置であると判断された場合には、メモリマネージャー１の初期診断機能は正常終了する（処理工程P2-14）。【００４５】
図９は巡回冗長符号の説明図である。128バイトの診断用データは、変化せず、同一のデータ（図９では、AB・・・X）が繰り返し第一の格納メモリ４からSDRAM２に書き込まれる。128バイトの診断用データの４回の書き込みに対して、４バイトのシードは１回インクリメントされる。512バイトのデータにシードを付加した516バイトのデータをある定数で除算することによって、４バイトの巡回冗長符号を得る。メモリマネージャー１は516バイトの領域を除算のために確保する必要はなく、４バイトのシードと128バイトの診断用データを連結した132バイトデータをある定数で除算する。さらにその余りと、診断用データを連結した132バイトデータをある定数で再び除算する。このようにして４回の除算を繰り返した余りが巡回冗長符号となる。図９に示すように、シードが１セクタ毎にインクリメントされるため、同じAB・・・Xという512バイトのデータに対して異なった巡回冗長符号（abcd、efgh、等）を得る。【００４６】
メモリマネージャー１内の比較部は512バイトの領域の診断に対して、4バイトの巡回冗長符号を比較すればいいので効率がよい。521バイトのデータを直接的に比較する場合に比べ、巡回冗長符号４バイトを比較する場合は、比較の量が１／128となる。また、SDRAM２から読み出した512バイトのデータを保持する必要もなくなる。【００４７】
ここで、第一の格納メモリ４からSDRAM２に対する100セクタ分の診断用データとそれに対応する巡回冗長符号の書き込みの場合を例にとり、アービトレーション機構の動作とともに説明する。アービトレーション機構は、初期診断機能の開始と同時にスタートし、何のリクエストも発生していない場合には、アイドル状態で図４のようにループしている。そこで、SDRAM２に対する第一の格納メモリ４からの書き込みのリクエストR3が発生する。第一の格納メモリ４からの128バイトの診断用データの書き込み後、リクエストR1、R2、R4、R5は発生していないので、再び発生しているリクエストR3が処理される。１セクタ分の512バイトの処理が終了するまでリクエストR3は４回発生する。４回のリクエストR3の処理の後、巡回冗長符号の生成と書き込みのリクエストR1が発生し、書き込まれた512バイトのデータに対する巡回冗長符号が生成され書き込まれる。以後、リクエストR3の４回とリクエストR1の１回の処理を合計100回繰り返すことで100セクタ分の診断用データとそれに対応する巡回冗長符号の書き込みが行われる。【００４８】
次に、書き込まれた100セクタ分の読み出しとそれに対応する巡回冗長符号の比較をアービトレーション機構の動作とともに説明する。100セクタ分のデータの書き込みの終了後、ポインタとシードは初期化され、データと巡回冗長符号の読み出しが開始される。アービトレーション機構には、SDRAM２から第二の格納メモリ５への読み出しに対するリクエストR4が発生し、これが1セクタ分を処理するために４回繰り返される。このとき4回の読み出しデータとシードに対応する巡回冗長符号が算出される。その後、SDRAM２に書き込まれた巡回冗長符号を読み出すリクエストR1が発生し、処理される。２つの巡回冗長符号は比較され、不一致ならば異常が検出され診断は終了する。100セクタ分の読み出しには、以上の動作が100回繰り返され初期診断機能は正常終了する。【００４９】
このようにして、本発明の第二の実施形態において、ハードウェアによってメモリを診断することと、一度に比較的大きなサイズのデータの書き込みと読み出しを行うことにより、メモリ診断の高速化を実現することができる。これによってSDRAM２の全領域を診断し、信頼性を向上することができる。また、従来ファームウェアに基づいてマイクロプロセッサによって行われていたメモリ診断をハードウェアによって行うことにより、マイクロプロセッサを開放し他の処理を行うことを可能とする。【００５０】
図１０は、本発明のメモリ診断機能を有したハードディスク装置の動作フローと、本発明のメモリ診断機能を有していない従来のハードディスク装置の初期動作シーケンスを示す図である。下側に示した太い矢印は、本発明のメモリ診断機能を有したハードディスク装置の初期動作シーケンスであり、上側の細い矢印は本発明のメモリ診断機能を有していないハードディスク装置の動作フローを示している。【００５１】
マイクロプロセッサ３内でファームウェアの展開が行われるステップS1と、第一の格納メモリ４と第二の格納メモリ５とSDRAM２などが初期化されるステップS2では、両者に差はない。しかし、SDRAM２の初期診断が行われるステップS3では、本発明のメモリ診断機能を有していないハードディスク装置による初期診断の方が早く完了する。これは、本発明のメモリ診断機能は、８MBを330msで診断するのに対して、従来の技術では512KBを250msで診断するためである。しかし、本発明のメモリ診断機能ではマイクロプロセッサ３を占有しないため、ステップS3の終了を待たずに、マイクロプロセッサ３に展開されたファームウェアの初期化、サーボコントローラーの初期化などが行われるステップS4へと移行できる。従来のメモリ診断機能では、ステップS3の終了を待ってステップS4へと移行する。スピンドルモーターを起動するステップS5は両者に差はなく、結局、時間差T1の分だけ時間短縮が可能となる。【００５２】
このようにして、本発明のメモリ診断機能をハードディスク装置に適用することによって、電源の投入から使用可能状態に至るまでの時間を短縮し、全メモリ領域の診断が可能となる。【００５３】
尚、本発明の第二の実施形態は、ハードディスク装置のSDRAMに対し適用される例を用いて説明したが、一般のメモリに対して適用することも可能である。【００５４】
さらに、本発明の第二の実施形態において、記憶装置の例としてハードディスク装置を用いて説明したが、本発明は上位システムとの間に一時的にデータを蓄積するバッファメモリもしくはキャッシュメモリの機能を果たすメモリを有する一般の装置、製品や、磁気テープ装置、光ディスク装置、光磁気ディスク装置等の可換型記憶媒体を使用した装置やシステムに適用可能である。【００５５】
上位システムとしてパソコンなどのホストコンピュータで説明してきたか、ハードディスクビデオレコーダのような記憶装置を内蔵する製品の場合は上位プロッセッサ（ＣＰＵ等）であり、記憶装置に対するデータ転送制御を行うものが上位システムに該当する。
【産業上の利用可能性】
【００５６】
以上図面に従い説明したように、本発明により、格納メモリに格納された診断データをハードウェアによってSDRAMに対して書き込み、読み出し、比較を行うことにより、診断時間を短縮し、SDRAMの全領域に対する診断を可能にするメモリ診断機能を有する記憶装置が提供される。また、このメモリ診断機能を有する記憶装置は、マイクロプロセッサを占有することなくメモリ診断を行うことができるため、他の動作を並行して行うことを可能にする。
【図１】
0004435180.tif 000002
【図２】
0004435180.tif 000003
【図３】
0004435180.tif 000004
【図４】
0004435180.tif 000005
【図５】
0004435180.tif 000006
【図６】
0004435180.tif 000007
【図７】
0004435180.tif 000008
【図８】
0004435180.tif 000009
【図９】
0004435180.tif 000010
【図１０】
0004435180.tif 000011