(57)【要約】【課題】バッファに格納された情報及び当該情報に関する冗長情報についての高速アクセスを可能にする。【解決手段】ハードディスクドライブ装置１００のＨＤＣ１に含まれるバッファブロック４２が、ユーザデータ含むデータを受信する受信制御部２０１と、当該データからユーザデータの誤りを訂正するための冗長情報を取得する冗長情報取得部２０２と、ユーザデータの受信に応じて、当該ユーザデータを、バッファＲＡＭ２が備える複数のメモリバンクの少なくとも一つ以上に対して、当該メモリバンクの先頭アドレスから所定のアドレスまでに書き込むデータ書込制御部２１１と、ユーザデータの受信に応じて、当該ユーザデータの冗長情報を、当該ユーザデータが書き込まれたメモリバンクと別のメモリバンクに対して、当該メモリバンクの所定のアドレスから最後のアドレスまでに書き込む冗長情報書込制御部２１２と、を備える。【選択図】図２
2010287128.tif 000002
【特許請求の範囲】
【請求項１】
情報を受信する受信手段と、
受信した前記情報の誤りを訂正するための冗長情報を取得する取得手段と、
前記情報の受信に応じ、当該情報を、記憶手段が備える複数のメモリバンクの少なくとも一つ以上に対して、当該メモリバンクの先頭アドレスから所定のアドレスまでに書き込む情報書込手段と、
前記情報の受信に応じ、当該情報の前記冗長情報を、当該情報が書き込まれた前記メモリバンクと別のメモリバンクに対して、当該メモリバンクの前記所定のアドレスから最後のアドレスまでに書き込む冗長情報書込手段と、
を備えたことを特徴とするコントローラ。
【請求項２】
前記情報書込手段は、前記情報を受信する度に、当該情報を、記憶手段が備える複数のメモリバンクの少なくとも一つ以上に対して、当該メモリバンクの先頭アドレスから所定のアドレスまでに書き込み、
前記冗長情報書込手段は、前記情報を受信する度に、当該情報の前記冗長情報を、当該情報が書き込まれた前記メモリバンクと別のメモリバンクに対して、当該メモリバンクの前記所定のアドレスから最後のアドレスまでに書き込むこと、
を特徴とする請求項１に記載のコントローラ。
【請求項３】
前記情報を書き込むアドレスに基づいて、当該情報の前記冗長情報のアドレスを特定する特定手段を、さらに備えることを特徴とする請求項１又は２に記載のコントローラ。
【請求項４】
前記情報書込手段は、さらに、前記情報を書き込む論理アドレスの各桁を、前記記憶手段のロウアドレスの前記先頭アドレスから前記所定のアドレス、メモリバンク、及びカラムアドレスの順に割り当て、当該割り当てられたロウアドレス、メモリバンク、及びカラムアドレスが指し示す記憶領域に当該情報を書き込み、
前記特定手段は、前記冗長情報の論理アドレスとして、最上位ビットから所定のビットまで１を設定し、当該所定のビット以降を前記情報の論理アドレスに基づいた値を設定し、
前記冗長情報書込手段は、さらに、前記特定手段により特定された前記論理アドレスの各桁を、前記記憶手段のロウアドレス、メモリバンク、及びカラムアドレスの順に割り当て、当該割り当てられたロウアドレス、メモリバンク、及びカラムアドレスが指し示す記憶領域に当該冗長情報を書き込むこと、
を特徴とする請求項３に記載のコントローラ。
【請求項５】
前記特定手段は、さらに、前記情報の前記論理アドレスのうち、メモリバンクに割り当てられる桁の値を反転させた値を、前記冗長情報の前記論理アドレスのメモリバンクに割り当てられる桁の値として設定すること、
を特徴とする請求項４に記載のコントローラ。
【請求項６】
先頭アドレスから所定のアドレスまでに、任意の情報を保持する第１のメモリバンクと、
前記所定のアドレスから最後のアドレスまでに、前記任意の情報の誤りを訂正するための冗長情報を保持している第２のメモリバンクと、
を備えたことを特徴とする記憶媒体。
【請求項７】
受信手段が、情報を受信する受信ステップと、
取得手段が、受信した前記情報の誤りを訂正するための冗長情報を取得する取得ステップと、
情報書込手段が、前記情報の受信に応じ、当該情報を、記憶手段が備える複数のメモリバンクの少なくとも一つ以上に対して、当該メモリバンクの先頭アドレスから所定のアドレスまでに書き込む情報書込ステップと、
冗長情報書込手段が、前記情報の受信に応じ、当該情報の前記冗長情報を、当該情報が書き込まれた前記メモリバンクと別のメモリバンクに対して、当該メモリバンクの前記所定のアドレスから最後のアドレスまでに書き込む冗長情報書込ステップと、
を有することを特徴とする情報制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データと、当該データに関する冗長情報と、を管理するコントローラ、記憶媒体、及び情報制御方法に関する。
【背景技術】
【０００２】
従来からハードディスクドライブ装置では、磁気ディスクにデータを書き込む際に、一時的にデータを格納するためのメモリを備えている。当該メモリは、コンピュータ技術の向上に伴い、大容量化及び小型化する傾向にある。
【０００３】
そして、当該メモリにデータを格納する際に、エラーが生じる可能性も増加している。このようなエラーを抑止するための手法としては、誤り訂正符号（ＥＣＣ）を適用することが提案されている。また、当該データをハードディスクドライブ装置に接続されたホストシステムから受信したデータや、磁気ディスクから読み込まれたデータにエラーが生じないように、予め様々なＣＲＣやパリティなどの様々な情報を付与する傾向にある。さらに、ユーザが自由にできるデータ等も付与されることがある。これら読み書きの対象となるデータに付与される情報を、冗長情報とする。
【０００４】
ところで、ハードディスクコントローラでは、バッファメモリとして一般的に利用されるＤＲＡＭなどのメモリでは、高速にアクセスするためにバーストアクセスをカラム方向に連続して実行する方法が一般的である。そして、バーストアクセスを用いてカラム方向で読み出すデータのサイズは、通常５１２バイト又はこの倍数である。
【０００５】
従来までは、ハードディスクコントローラと、ハードディスクのホストと、のデータ転送は、５１２バイト固定で行っていたため、ＤＲＡＭへのデータの転送は、上述のバーストアクセスで簡単に実現できていた。
【０００６】
しかしながら、近年、ホストからのデータ転送は、５１２バイト固定ではなく、上述したように冗長情報が付与される傾向がある。この場合、固定データ長のデータと、冗長情報とを、このままＤＲＡＭに連続に書き込むと、ロウアドレス等をまたいだ中途半端な形式でデータが格納される事になり、アドレスポインタの管理が難しくなる。また、メモリに対するアクセススピードも遅くなるという問題がある。
【０００７】
そこで、特許文献１に記載された技術では、エラー訂正符号と、データとを別のメモリバンクに格納する技術が提案されている。特許文献１に記載された技術により、エラー訂正符号とデータとを別のメモリバンクから並列して読み出すことが可能なので、アクセススピードの低下を抑止できる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−１１５３９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１の技術では、メモリバンク毎にエラー訂正符号の配置が異なるため、メモリの読み書きを行う際にマスク処理などの処理をメモリバンク毎に制御を行う必要がある。
【００１０】
本発明は、上記に鑑みてなされたものであって、アドレス管理を容易にするコントローラ、記憶媒体、及び情報制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明にかかるコントローラは、情報を受信する受信手段と、受信した前記情報の誤りを訂正するための冗長情報を取得する取得手段と、前記情報の受信に応じ、当該情報を、記憶手段が備える複数のメモリバンクの少なくとも一つ以上に対して、当該メモリバンクの先頭アドレスから所定のアドレスまでに書き込む情報書込手段と、前記情報の受信に応じ、当該情報の前記冗長情報を、当該情報が書き込まれた前記メモリバンクと別のメモリバンクに対して、当該メモリバンクの前記所定のアドレスから最後のアドレスまでに書き込む冗長情報書込手段と、を備えたことを特徴とする。
【００１２】
また、本発明にかかる記憶媒体は、先頭アドレスから所定のアドレスまでに、任意の情報を保持する第１のメモリバンクと、前記所定のアドレスから最後のアドレスまでに、前記任意の情報の誤りを訂正するための冗長情報を保持している第２のメモリバンクと、を備えたことを特徴とする。
【００１３】
また、本発明にかかる情報制御方法は、受信手段が、情報を受信する受信ステップと、取得手段が、受信した前記情報の誤りを訂正するための冗長情報を取得する取得ステップと、情報書込手段が、前記情報の受信に応じ、当該情報を、記憶手段が備える複数のメモリバンクの少なくとも一つ以上に対して、当該メモリバンクの先頭アドレスから所定のアドレスまでに書き込む情報書込ステップと、冗長情報書込手段が、前記情報の受信に応じ、当該情報の前記冗長情報を、当該情報が書き込まれた前記メモリバンクと別のメモリバンクに対して、当該メモリバンクの前記所定のアドレスから最後のアドレスまでに書き込む冗長情報書込ステップと、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、冗長情報と共に情報が格納された場合であっても高速アクセスできるとともに、冗長情報及び情報の管理を容易にできるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、ハードディスクドライブ装置のハードウェア構成を示す図である。
【図２】図２は、バッファブロックの構成を示したブロック図である。
【図３】図３は、本実施の形態にかかるユーザデータと冗長情報とがバッファＲＡＭ上に書き込まれた配置を示した説明図である。
【図４】図４は、ユーザデータの論理アドレスと、当該ユーザデータがデータ書込制御部により書き込まれるバッファＲＡＭ上のアドレスと、を示した図である。
【図５】図５は、本実施の形態と異なる変形例における、ユーザデータの論理アドレスと、当該ユーザデータがデータ書込制御部により書き込まれるバッファＲＡＭ上のアドレスと、を示した図である。
【図６】図６は、アドレス特定部による冗長情報の書き込み先のアドレスの特定手順を説明した図である。
【図７】図７は、アドレス特定部が用いる論理アドレスの変換式を格納したテーブルを示した図である。
【図８】図８は、アドレス特定部により、特定された冗長情報を書き込む論理アドレスを示した説明図である。
【図９】図９は、バッファＲＡＭが１２８ＭｂｉｔＳＤＲＡＭであって、ユーザデータが５１２バイトで、冗長情報のサイズが１６ビットの場合の冗長情報の論理アドレスの例を示した図である。
【図１０】図１０は、バッファＲＡＭが１２８ＭｂｉｔＳＤＲＡＭであって、ユーザデータが５１２バイトで、冗長情報のサイズが３２ビットの場合の冗長情報の論理アドレスの例を示した図である。
【図１１】図１１は、本実施の形態にかかるハードディスクドライブ装置における、バッファＲＡＭに記憶させるまでの処理の手順を示すフローチャートである。
【図１２】図１２は、本実施の形態にかかるハードディスクドライブ装置における、バッファＲＡＭからユーザデータを読み出し、リード・ライト部に送信するまでの処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下に添付図面を参照して、この発明にかかるコントローラ、記憶媒体、及び情報制御方法の最良な実施の形態を詳細に説明する。
【００１７】
（第１の実施の形態）
図１に示すように、本実施の形態にかかるハードディスクドライブ装置１００は、ＨＤＣ１と、バッファＲＡＭ２と、モータドライバ６と、ボイスコイルモータ（以下、ＶＣＭと称す）７と、スピンドルモータ（以下、ＳＰＭと称す）８と、磁気ディスク９と、ＲＡＭ１０と、ＲＯＭ１１と、磁気ヘッド１３と、アーム１４と、軸１２と、ヘッドＩＣ３と、を備え、伝送路２０を介してホストシステム２１と接続されている。
【００１８】
ＳＰＭ８は、磁気ディスク９を定常回転させるためのモータとする。ＶＣＭ７は、図示しないマグネットと駆動コイルとからなり、モータドライバ６から供給される電力で、磁気ヘッド１３を目的の位置に移動させる駆動を行う。
【００１９】
モータドライバ６は、ＳＰＭ８及びＶＣＭ７を駆動させるために、ＳＰＭ８及びＶＣＭ７のそれぞれに電流を流す制御を行う。
【００２０】
磁気ディスク９は、異なる径毎にトラックを備えている。そして、各トラックには、ホストシステムから転送されるデータを記録するための領域(データ領域)が配置されている。そして、データ領域は、読み書き可能な複数のセクタで構成されている。このような構成を磁気ディスク９が備えると共に、磁気ヘッド１３が、磁気ディスク９の半径方向に移動することで、任意のトラックの任意のセクタに対して、磁気ヘッド１３が走査を行うことができる。そして、磁気ヘッド１３が磁気ディスク９のセクタを走査することで、データの読み出し及び書き込みを行うことができる。
【００２１】
磁気ヘッド１３は、アーム１４に保持されている。そして、磁気ヘッド１３は、サーボデータからトラックの位置情報を読み出すと共に、磁気ディスク９を走査し、データの読み出し及び書き込みを行う。アーム１４は、ＶＣＭ７の駆動力により軸１２を中心とした回転運動を行い、磁気ヘッド１３を磁気ディスク９の半径方向に移動させる。
【００２２】
ヘッドＩＣ３は、例えば、磁気ヘッド１３が読み出した微弱な信号を増幅する機能を備える。
【００２３】
ＲＯＭ１１は、ＨＤＣ１（例えばＭＰＵ４１）で用いられるコントロールプログラムを記憶している。ＲＡＭ１０は、ＨＤＣ１（例えばＭＰＵ４１）が変素数等を格納する作業領域として使用される。
【００２４】
ＨＤＣ（ハードディスクコントローラ）１は、ハードディスクドライブ装置１００を制御する目的で設計されたＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、リード
・ライト部４と、メイン制御部５とを備えている。
【００２５】
リード・ライト部４は、サーボブロック３１と、リード・ライトブロック３２と、を備える。サーボブロック３１は、主に磁気ヘッド１３の位置決め処理に必要な信号処理を行う。リード・ライトブロック３２は、データの読み出し・書き込みのための信号処理を行う。
【００２６】
メイン制御部５は、ＭＰＵ４１と、バッファブロック４２と、ホストブロック４３とを備えている。
【００２７】
ホストブロック４３は、ホストシステム２１とのインタフェース制御を行う。また、ホストブロック４３は、ホストシステム２１とデータの受け取り、又は受け渡しを行う際、５１２バイト単位で行うものとする。
【００２８】
ＭＰＵ４１は、読み出し・書き込み処理を行う。データの読み書きを行うトラックをサーチするとともに、データの読み書きの位置を管理する。また、ＭＰＵ４１は、探し出してきたトラックにデータを書き込む、又は探し出してきたトラックからデータを読み出すような場合には、リード・ライト部４などに指示を送る。
【００２９】
次に、リード要求に基づく制御について説明する。磁気ヘッド１３の位置決め実施時に、磁気ヘッド１３から読み出され、ヘッドＩＣ３で増幅されたアナログ信号は、ＨＤＣ１のリード・ライト部４に送られる。そして、リード・ライト部４は、増幅したアナログ信号を復号化する。メイン制御部５が、復号化されたアナログ信号から、ホストシステム２１に転送すべきデータを生成する。このデータは一旦バッファＲＡＭ２に格納されてからホストシステム２１に転送される。
【００３０】
次に、ライト要求に基づく制御について説明する。ホストシステム２１からメイン制御部５に転送されたデータは、一旦バッファＲＡＭ２に格納された後、メイン制御部５からリード・ライト部４へ送られ、リード・ライト部４によって符号化された書き込みデータは、ヘッドＩＣ３を経由して磁気ヘッド１３によって磁気ディスク９に書き込まれる。
【００３１】
バッファＲＡＭ２は、磁気ディスク９から読み出した又はホストシステム２１から受信したデータ等を、一時的に記憶する。そして、バッファＲＡＭ２に記憶されたデータは、リード・ライト部４又はホストシステム２１に出力される。
【００３２】
本実施の形態にかかるハードディスクドライブ装置１００では、バッファＲＡＭ２に、ＳＤＲＡＭを用い、当該バッファＲＡＭ２は４つのメモリバンクで構成されているものとする。そして、バッファＲＡＭ２では、各メモリバンクで、ロウアドレスと、カラムアドレスとによりデータの格納先を特定できるものとする。
【００３３】
そして、高速アクセスを行うバーストアクセスでは、バッファＲＡＭ２でカラム方向に連続して実行するものとする。このバッファＲＡＭ２における、カラム方向のサイズは、５１２バイトの倍数とする。なお、バッファＲＡＭ２をＳＤＲＡＭに制限するものではなく、ＤＲＡＭなど他のメモリユニットを利用しても良い。
【００３４】
そして、本実施の形態にかかるハードディスクドライブ装置１００では、バッファＲＡＭ２に対してアクセスする際、メモリインタリーブ方式を適用して、複数のメモリバンクに対して同時並行（連続的に）でアクセスできる。
【００３５】
バッファブロック４２は、バッファＲＡＭ２に対して制御を行う。そこで、本実施の形
態にかかるバッファブロック４２の詳細な構成について説明する。
【００３６】
図２は、バッファブロック４２の構成を示したブロック図である。図２に示すように、バッファブロック４２は、受信制御部２０１と、冗長情報取得部２０２と、メモリアクセス制御部２０３と、誤り訂正部２０４と、送信制御部２０５と、を備え、バッファＲＡＭ２に対して読み出し、書き込み制御を行っている。
【００３７】
ところで、従来においては、ハードディスクドライブ装置とホストシステムとの間のデータ転送は、５１２バイト単位で行っていた。そして、バッファＲＡＭ２のカラム方向のサイズが５１２バイトの倍数のため、バッファＲＡＭ２へのデータ転送は、上述のバーストアクセスで簡単に実現できる。
【００３８】
しかしながら、近年、ホストシステムからのデータ転送では、パリティやＣＲＣ、ＥＣＣ等のデータ（冗長情報）が付加されたデータが転送されるため、このままバッファＲＡＭ２に書き込むと、バンクアドレスやロウアドレスをまたいだ中途半端な位置にデータが格納される。この場合、アドレスポインタ管理が難しくなり、アクセススピードの遅延も生じる。
【００３９】
そこで、本実施の形態にかかるハードディスクドライブ装置１００では、パリティやＣＲＣ、ＥＣＣ等の冗長情報を、ユーザデータと別のメモリバンクに一括して格納することとした。これにより、ユーザデータの管理を従来と同様に行えるとともに、当該ユーザデータと冗長情報とをメモリインタリーブ方式により同時並行でアクセスすることで、高速の読み出し／書き込みを可能としている。次に、バッファブロック４２の各構成について説明する。
【００４０】
受信制御部２０１は、ホストブロック４３を介して、ホストシステム２１からデータを受信する。また、受信制御部２０１は、リード・ライト部４が磁気ディスク９から読み出したデータを受信する。なお、これら受信したデータには、冗長情報とユーザデータとが含まれているものとする。
【００４１】
ユーザデータとは、ホストシステム２１等で実際に利用されるデータとし、例えば、文書データ、画像データ、動画像データのほか、ソフトウェアなどを含むものとする。また、ユーザデータは、５１２バイト単位で構成されている。
【００４２】
冗長情報は、ユーザデータに関する情報であって、例えば、ハードディスクドライブ装置１００とホストシステム２１とが通信する際にユーザデータに付与されたデータとする。より詳細な例としては、パリティ、ＣＲＣ、ＥＣＣなどとする。また、冗長情報は、ＨＤＣ１内で当該ユーザデータの誤りを訂正するために生成された符号等であっても良い。
【００４３】
また、受信制御部２０１は、リード・ライト部４又はホストブロック４３から、バッファＲＡＭ２のユーザデータの読み出し命令を受信する。当該読み出し命令を受信した場合に、リード・ライト部４が磁気ディスク９にユーザデータを書き込む準備、又はホストブロック４３がホストシステム２１に送信する準備ができものとして、データ読込制御部２１３が、バッファＲＡＭ２から当該ユーザデータの読み出しを行う。
【００４４】
冗長情報取得部２０２は、受信したデータから、当該データに含まれていた冗長情報を取得する。また、本実施の形態にかかる冗長情報取得部２０２では、受信したデータから冗長情報を取得したが、ユーザデータの誤りを検出するための誤り訂正符号を冗長情報取得部２０２が生成し、生成した誤り訂正符号を冗長情報としても良い。
【００４５】
メモリアクセス制御部２０３は、データ書込制御部２１１と、冗長情報書込制御部２１２と、データ読込制御部２１３と、冗長情報読込制御部２１４と、アドレス特定部２１５とを備える。
【００４６】
本実施の形態にかかるメモリアクセス制御部２０３では、メモリインタリーブ方式により、ユーザデータと冗長情報とを、バッファＲＡＭ２のそれぞれ異なるメモリバンクから同時並行で読み込みを行うことを可能としている。
【００４７】
アドレス特定部２１５は、書き込み又は読み出しの対象となるユーザデータの論理アドレスに基づいて、当該ユーザデータに対応する冗長情報の書込先又は読み出し先の論理アドレスを特定する。なお、具体的な手法については後述する。
【００４８】
本実施の形態においては、論理アドレスの各桁を、バッファＲＡＭ２のロウアドレス、メモリバンク、カラムアドレスの順に割り当てられるものとする。
【００４９】
そして、本実施の形態にかかるアドレス特定部２１５は、当該冗長情報の格納先の論理アドレスを、割り当てられるロウアドレスが所定のアドレスから最後端アドレスまであって、ユーザデータの格納先のメモリバンクと別のメモリバンクになるように特定する。
【００５０】
なお、本実施の形態にかかるではロウアドレスを１２ビットとし、所定のアドレスを“111111110000"とする。
【００５１】
データ書込制御部２１１は、受信制御部２０１がデータを受信する毎に、当該データに含まれるユーザデータを、バッファＲＡＭ２が有するメモリバンクの少なくとも一つ以上に対して、当該メモリバンクの先頭アドレスから所定のアドレスまでに書き込む。なお、データ書込制御部２１１の書込処理は、データを受信する毎に必ず行うことに制限するものではなく、データの受信に応じて実行すれば良いものとする。
【００５２】
冗長情報書込制御部２１２は、受信制御部２０１がデータを受信する毎に、冗長情報取得部２０２が取得した冗長情報を、アドレス特定部２１５が特定したアドレスに書き込む。これにより、ユーザデータの書き込まれたメモリバンクと別のメモリバンクであって、所定のアドレスから最後端アドレスまでに書き込まれることになる。なお、冗長情報書込制御部２１２の書込処理は、データを受信する毎に必ず行うことに制限するものではなく、データの受信に応じて実行すれば良いものとする。
【００５３】
図３は、本実施の形態にかかるユーザデータと冗長情報とがバッファＲＡＭ２上に書き込まれた配置を示した説明図である。図３に示すように、バッファＲＡＭ２は、第１〜第４のメモリバンクを有するものとする。そして、各メモリバンクにおいて、ロウアドレスと、カラムアドレスとから、データの書き込み／読み出し先のアドレスを特定できる。
【００５４】
そして、図３に示すように、データ書込制御部２１１は、ユーザデータの書き込み先を示す論理アドレスの各桁を最上位ビットから順に、バッファＲＡＭ２（ＳＤＲＡＭ）のロウアドレス（先頭アドレスから所定のアドレスまで）、メモリバンク、及びカラムアドレスに割り当てる。そして、データ書込制御部２１１は、当該割り当てられたロウアドレス、メモリバンク、及びカラムアドレスで指定されるメモリセルに対してユーザデータを書き込む。
【００５５】
図４は、ユーザデータの論理アドレスと、当該ユーザデータが書き込まれるバッファＲＡＭ２上のアドレスと、を示した図である。図４に示す例では、６４ＭｂｉｔＳＤＲＡＭ（×１６）とする。そして、データを格納する論理アドレスの各桁をＡ２１〜Ａ０で示し
た場合、データ書込制御部２１１は、最上位ビットＡ２１〜Ａ１０（１２ビット）までをロウアドレスに割り当て、Ａ９〜Ａ８の２桁（２ビット）をメモリバンクに割り当て、Ａ７〜最下位ビットＡ０（８ビット）までをカラムアドレスに割り当て、ユーザデータを書込制御する。
【００５６】
本実施の形態は、バッファＲＡＭ２が６４ＭｂｉｔＳＤＲＡＭであって、ユーザデータが５１２バイトで、冗長情報のサイズが１６ビットの場合であるが、当然ながら、このような実施の形態以外にも適用できる。そこで変形例について説明する。
【００５７】
図５は、本実施の形態と異なる変形例にかかる、ユーザデータの論理アドレスと、当該ユーザデータが書き込まれるバッファＲＡＭ２上のアドレスと、を示した図である。図５に示す例では、１２８ＭｂｉｔＳＤＲＡＭ（×１６）とする。そして、データを格納する論理アドレスの各桁をＡ２２〜Ａ０で示した場合、データ書込制御部２１１は、最上位ビットＡ２２〜Ａ１１（１２ビット）までをロウアドレスに割り当て、Ａ１０〜Ａ９の２桁（２ビット）をメモリバンクに割り当て、Ａ８〜最下位ビットＡ０（９ビット）までをカラムアドレスに割り当て、ユーザデータを書込制御する。
【００５８】
本実施の形態において、バーストアクセスでユーザデータを書き込む場合について説明する。まず、データ書込制御部２１１は、あるロウアドレスの第１のメモリバンクであって、各カラムアドレスで指定されるメモリセルにユーザデータを書き込んだ後、当該あるロウアドレスの第２のメモリバンクであって、各カラムアドレスで指定されるメモリセルにユーザデータを書き込む。そして、当該書込処理を継続し、当該あるロウアドレスの第４のメモリバンクの各カラムアドレスで指定されるメモリセル全てにユーザデータを書き込んだ後、当該あるロウアドレスの次のロウアドレスであって、第１のメモリバンクから再び、各カラムアドレスで指定されるメモリセルにユーザデータを書き込む。このようにデータ書込制御部２１１は、複数のロウアドレス又はメモリバンクに対しても、連続的にユーザデータを書き込むこともできる。
【００５９】
そして、当該データ書込制御部２１１が、図３の符号３０１で示された各メモリセルに、ユーザデータを書込制御した後、アドレス特定部２１５が、当該データの冗長情報の書き込み先として、符号３０２で示したメモリ領域内に含まれるように論理アドレスを特定する。
【００６０】
具体的には、アドレス特定部２１５は、冗長情報の論理アドレスについて上位を‘１'に固定する。そして、冗長情報書込制御部２１２が、特定された論理アドレスの各桁（ビット）を、バッファＲＡＭ２のロウアドレス、メモリバンク、及びカラムアドレスの順に割り当てる。これにより、冗長情報は、バッファＲＡＭ２のアドレス空間で所定のアドレス以降の最終領域（図３の符号３０２の領域）に固めて配置される。
【００６１】
次に、本実施の形態にかかるアドレス特定部２１５による、冗長情報の論理アドレスの具体的な特定手法について説明する。図６は、アドレス特定部２１５による冗長情報の書き込み先のアドレスの特定手順を説明した図である。図６に示すように、冗長情報の書き込み先の論理アドレスは、最上位ビットから所定のビットまでの値を‘１'に固定する。その後、アドレス特定部２１５は、それ以降の桁（ビット）の値に、ユーザデータの（ロウアドレスに割り当てられていた）論理アドレスを最上位ビットの値から順に割り当てる。
【００６２】
ただし、冗長情報の論理アドレスの桁のうち、バンクアドレスに割り当てられる桁から異なる処理が必要となる。具体的には、アドレス特定部２１５は、冗長情報の論理アドレスでバンクアドレスに割り当てられる２桁（２ビット）の値を、ユーザデータのバンクア
ドレスに割り当てられた桁の値に基づいて設定する。より詳細には、上位１ビットにはユーザデータの上位１ビットの値がそのまま設定され、下位１ビットには、ユーザデータの下位１ビットの値を反転させた値が設定される。これにより、データの書き込み先のメモリバンクと、冗長情報の書き込み先のメモリバンクとを異ならせることができる。
【００６３】
さらに、アドレス特定部２１５は、冗長情報の論理アドレスでそれ以降の桁に、ユーザデータの残りのロウアドレス及びカラムアドレスに割り当てられた桁の値を割り当てる。ただし、冗長情報及びバッファＲＡＭ２のデータサイズによっては、図６のテーブルで示したように、「ユーザデータのカラムアドレスに割り当てられた論理路アドレス上位ビット」を、割り当てる必要がない場合もある。
【００６４】
ただし、ロウアドレスの所定のアドレス〜最後のアドレスまでは、冗長情報格納用のアドレスとして確保する。本実施の形態では、ロウアドレス"11111111????"(?は‘0'又は‘1')を冗長情報の格納用のアドレスとし、ユーザデータ等の書込を禁止する。
【００６５】
次に、ユーザデータの論理アドレスを、当該ユーザデータに関する冗長情報の論理アドレスに変換する式について説明する。図７は、アドレス特定部２１５が用いる論理アドレスの変換式を示した図である。なお、本実施の形態は、ＳＤＲＡＭ６４Ｍｂｉｔで、冗長情報１６ビットのため、符号７０１に示すレコードのみ用いる。なお、Ａ[ｍ:ｎ]は、ユーザデータの論理アドレスの上記Ａｍ〜Ａｎまでの値を示し、"~"は、値の反転記号を示す。そして、図７で示した式を用いることで、アドレス特定部２１５は、ユーザデータの論理アドレスから、冗長情報の論理アドレスを算出できる。当該式を用いて算出された論理アドレスは、後述する。
【００６６】
また、図７の符号７０１で示す変換式で、ユーザデータのＡ７〜Ａ０を利用しないのは、ユーザデータのデータサイズと、冗長情報のデータサイズの違いに基づく。すなわち、ユーザデータのデータサイズは５１２バイト（＝４０９６ビット）であるのに対し、冗長情報のデータサイズは１６ビットである。そして、４０９６／１６＝２５６となる。つまり、ユーザデータ一つ格納できる記憶領域に冗長情報が２５６個格納できるため、ユーザデータの論理アドレスの下位８ビットは不要となる。
【００６７】
なお、図７の他のレコードは、ＳＤＲＡＭのサイズ及び冗長情報のサイズのいずれか一つ以上が異なる変形例を示している。また、図７に示した全ての式が予め格納されたＨＤＣ１を生産し、当該ＨＤＣ１が搭載されるハードディスクドライブ装置のバッファＲＡＭの容量及び通信に用いる冗長情報のサイズに応じて、アドレス特定部２１５が、使用する変換式を切り替えてもよい。
【００６８】
図８は、アドレス特定部２１５により、特定された冗長情報を書き込む論理アドレスを示した説明図である。当該論理アドレスは、図７の符号７０１で示した式に基づいて算出されたものとする。なお、図８において、Ａ２１〜Ａ０はユーザデータの論理アドレスの各桁の値を示し、Ａ’２１〜Ａ’０は、冗長情報の論理アドレスの各桁の値を示すものとする。
【００６９】
そして、図８に示すように、冗長情報の論理アドレスは、Ａ’２１〜Ａ’１４までに‘１’が設定される。さらに、Ａ’１３〜Ａ’０までに、ユーザデータの論理アドレスＡ２１〜Ａ１８、Ａ９、Ａ８を反転した値、Ａ１７〜Ａ１０の値が設定される。このように、Ａ’８にＡ８の反転した値が設定されたことで、ユーザデータの格納先のメモリバンクと、冗長情報の格納先のメモリバンクとを異ならせることができる。
【００７０】
そして、冗長情報書込制御部２１２は、冗長情報の論理アドレスの各桁のうち、Ａ’２
１〜Ａ’１０までをロウアドレスに割り当て、Ａ’９及びＡ’８をメモリバンクに割り当て、Ａ’７〜Ａ’０までをカラムアドレスに割り当て、冗長情報の書込制御を行う。
【００７１】
本実施の形態にかかるアドレス特定部２１５は、上述した簡単な演算で、冗長情報の書込アドレスを特定できるため、アドレスを特定する際の演算負荷を軽減することができる。
【００７２】
図８は、本実施の形態のバッファＲＡＭ２が６４ＭｂｉｔＳＤＲＡＭであって、ユーザデータが５１２バイトで、冗長情報のサイズが１６ビットの場合について説明した。当然ながら、このような実装以外にも適用できる。そこで変形例について説明する。
【００７３】
図９は、バッファＲＡＭ２が１２８ＭｂｉｔＳＤＲＡＭであって、ユーザデータが５１２バイトで、冗長情報のサイズが１６ビットの場合の冗長情報の論理アドレスの例を示した図である。そして、図９に示すように、冗長情報の論理アドレスは、Ａ’２２〜Ａ’１５までに‘１’が設定される。さらに、Ａ’１４〜Ａ’０までに、ユーザデータの論理アドレスＡ２２〜Ａ１９、Ａ１０、Ａ９の反転値、Ａ１８〜Ａ１１及びＡ８の値が設定される。
【００７４】
次に、図１０は、バッファＲＡＭ２が１２８ＭｂｉｔＳＤＲＡＭであって、ユーザデータが５１２バイトで、冗長情報のサイズが３２ビットの場合の冗長情報の論理アドレスの例を示した図である。そして、図１０に示すように、冗長情報の論理アドレスは、Ａ’２２〜Ａ’１６までに‘１’が設定される。さらに、Ａ’１５〜Ａ’０までに、ユーザデータの論理アドレスＡ２２〜Ａ１８、Ａ１０、Ａ９を反転した値、Ａ１７〜Ａ１１、及びＡ８、‘−’が設定される。なお、Ａ０が‘−’なのは冗長情報が、３２ビットのため、Ａ０は使用しないためである。
【００７５】
本実施の形態においては、上述した書込制御を行うことで、冗長情報とユーザデータとを別のメモリバンクに格納することで、同一メモリバンクに格納した際に、当該ユーザデータの書き出しで生じる、複数回のＳＤＲＡＭアクセス(アクティブからプリチャージまで)を抑止し、バッファＲＡＭ２の使用効率を向上させることができる。
【００７６】
データ読込制御部２１３は、バッファＲＡＭ２が備える４個のメモリバンクの少なくとも一つ以上のメモリバンクから、ユーザデータを読み出す。
【００７７】
冗長情報読込制御部２１４は、データ読込制御部２１３のユーザデータの読み出しと同時並行で、データ読込制御部２１３が読み出したユーザデータに対応する冗長情報を、アドレス特定部２１５により特定されたアドレスから読み出す。なお、冗長情報読込制御部２１４の読み出し先は、データ読込制御部２１３のメモリバンクと異なるため、同時並行で読み出しが可能であり、読み出し時間を短縮することができる。
【００７８】
誤り訂正部２０４は、冗長情報読込制御部２１４が読み出した冗長情報に誤りを訂正するための符号等が含まれている場合に、当該符号を用いて、データ読込制御部２１３が読み出したユーザデータの訂正を行う。
【００７９】
送信制御部２０５は、読み出したユーザデータと、必要に応じて冗長情報とを、リード・ライト部４又はホストブロック４３に対して送信する。
【００８０】
次に、本実施の形態にかかるハードディスクドライブ装置１００における、ホストシステム２１から受信したデータを、バッファＲＡＭ２に記憶させるまでの処理について説明する。図１１は、本実施の形態にかかるハードディスクドライブ装置１００における上述
した処理の手順を示すフローチャートである。
【００８１】
まず、受信制御部２０１が、ホストシステム２１から、データを受信する（ステップＳ１１０１）。その後、冗長情報取得部２０２が、受信したデータから、冗長情報を取得する（ステップＳ１１０２）。なお、冗長情報は受信したデータから取得するのではなく、冗長情報取得部２０２が受信したデータに含まれるユーザデータから、当該ユーザデータのｎ誤りを訂正するための誤り訂正符号を生成し、当該誤り訂正符号を冗長情報としてもよい。
【００８２】
その後、データ書込制御部２１１が、受信したデータに含まれていたユーザデータを、バッファＲＡＭ２に対して書込制御する（ステップＳ１１０３）。
【００８３】
そして、アドレス特定部２１５は、ステップＳ１１０３で書込制御されたユーザデータの書き込み先のアドレスを、図７で示した変換式を用いて変換し、冗長情報の書き込み先のアドレスを特定する（ステップＳ１１０４）。当該変換式で冗長情報の書き込み先アドレスを特定することで、ユーザデータの書き込み先のメモリバンクと、冗長情報の書き込み先のメモリバンクとを異ならせると共に、冗長情報をバッファＲＡＭ２の所定のロウアドレス領域（所定アドレス〜最後端アドレス）とする。
【００８４】
その後、冗長情報書込制御部２１２が、ステップＳ１１０２で取得された冗長情報を、ステップＳ１１０４で特定されたアドレスに書き込む制御を行う（ステップＳ１１０５）。
【００８５】
上述した処理手順で、ユーザデータと冗長情報とを別メモリバンクに格納できるので、同時並行で読み出すことが可能となる。
【００８６】
次に、本実施の形態にかかるハードディスクドライブ装置１００における、バッファＲＡＭ２からユーザデータを読み出して、リード・ライト部４に送信するまでの処理について説明する。図１２は、本実施の形態にかかるハードディスクドライブ装置１００における上述した処理の手順を示すフローチャートである。
【００８７】
まずは、受信制御部２０１が、リード・ライト部４からユーザデータの読み出し命令を受信する（ステップＳ１２０１）。
【００８８】
そして、アドレス特定部２１５が、図７で示した変換式を用いて、読み出し命令で読み出されるユーザデータの格納先のアドレスから、当該ユーザデータに対応する冗長情報のアドレスを特定する（ステップＳ１２０２）。
【００８９】
次に、データ読込制御部２１３が、当該読み出し命令に従って、バッファＲＡＭ２のメモリバンクから、ユーザデータの読出制御を行う（ステップＳ１２０３）。
【００９０】
メモリインタリーブを用いることで、当該ユーザデータの読出制御と並行して、冗長情報読込制御部２１４が、特定されたアドレスに格納された冗長情報を、ユーザデータと別メモリバンクから読出制御を行う（ステップＳ１２０４）。
【００９１】
読み出された後、必要に応じて誤り訂正部２０４が、読み出した冗長情報（に含まれている誤り訂正符号等）に基づいて、読み出したユーザデータの誤り訂正を行う（ステップＳ１２０５）。なお、誤り訂正手法は、周知を問わず、あらゆる手法を用いて良いものとして説明を省略する。
【００９２】
そして、送信制御部２０５は、読み出したユーザデータと、必要に応じて冗長情報とを、リード・ライト部４に送信制御する（ステップＳ１２０６）。
【００９３】
上述した処理手順で示したように、ユーザデータと、冗長情報とは、別メモリバンク格納されているため、同時並行的に連続アクセス可能であるため、読み出し時間を短縮することができる。
【００９４】
上述したように、本実施の形態にかかるハードディスクドライブ装置１００では、ユーザデータと冗長情報とを、バンクインターリーブで連続アクセス出来るように別メモリバンクに配置する、アドレスオフセットのアルゴリズムを提供する。
【００９５】
また、本実施の形態にかかるハードディスクドライブ装置１００では、ユーザデータのアクセスと連続して冗長情報のデータも、バンクインターリーブで高速アクセスすることができる。
【００９６】
また、本実施の形態にかかるハードディスクドライブ装置１００では、上述した変換式（アルゴリズム）を用いることで、ユーザデータがバッファＲＡＭ２のカラムアドレスに従って格納されるので、ユーザデータに対しては従来と同様のＤＲＡＭアクセスを可能とするとともに、メモリインタリーブにより冗長情報の高速アクセスを可能としている。
【００９７】
これにより、ハードディスクドライブ装置１００では、冗長情報と、ユーザデータを同一の記憶領域に格納することによって生じるアドレスポインタ管理が複雑になることを抑止できる。また、ハードディスクドライブ装置１００では、冗長情報などのデータサイズが小さい冗長情報に対する余分なアクセスが余分に発生ずるのを抑止し、バッファＲＡＭ２の使用効率が悪くなることを抑止する。
【００９８】
本実施の形態にかかるハードディスクドライブ装置１００では、冗長情報は、ユーザデータを格納する領域と別の領域を予め設定しておくことで、アドレスポインタの管理を容易にすることができる。
【００９９】
本実施の形態にかかるハードディスクドライブ装置１００では、論理アドレスの各ビットを、ロウアドレス、メモリバンク、及びカラムアドレスに割り当てることで、ユーザデータの格納先が一意に決まるため、アドレス管理が容易になり、回路実装が非常に容易に実現出来る。そして、冗長情報の論理アドレスも同様に、各ビットをロウアドレス、メモリバンク、及びカラムアドレスに割り当てることで、アドレス管理が容易になり、冗長情報の格納先が一意に決まるため、回路実装が非常に容易に実現出来る。
【０１００】
なお、本実施の形態にかかるＨＤＣ１内のバッファブロック４２で実行されるデータ処理プログラムは、ＲＯＭ等に予め組み込まれて提供される。
【０１０１】
本実施の形態にかかるＨＤＣ１内のバッファブロック４２で実行されるデータ処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【０１０２】
さらに、本実施の形態にかかるＨＤＣ１内のバッファブロック４２で実行されるデータ処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施の形態にかかるＨＤＣ１内のバッファブロック４２で実行されるデータ処理
プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１０３】
本実施の形態の本実施の形態にかかるＨＤＣ１内のバッファブロック４２で実行されるデータ処理プログラムは、上述した各部（受信制御部、冗長情報取得部、メモリアクセス制御部、誤り訂正部、送信制御部）を含むモジュール構成となっており、実際のハードウェアとしてはＭＰＵがＲＯＭからデータ処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、受信制御部、冗長情報取得部、メモリアクセス制御部、誤り訂正部、送信制御部が主記憶装置上に生成されるようになっている。
【０１０４】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【０１０５】
１…ＨＤＣ、２…バッファＲＡＭ、３…ヘッドＩＣ、４…リード・ライト部、５…メイン制御部、６…モータドライバ、７…ＶＣＭ、８…ＳＰＭ、９…磁気ディスク、１０…ＲＡＭ、１１…ＲＯＭ、１２…軸、１３…磁気ヘッド、１４…アーム、２０…伝送路、２１…ホストシステム、３１…サーボブロック、３２…リード・ライトブロック、４１…ＭＰＵ、４２…バッファブロック、４３…ホストブロック、１００…ハードディスクドライブ装置、２０１…受信制御部、２０２…冗長情報取得部、２０３…メモリアクセス制御部、２０４…誤り訂正部、２０５…送信制御部、２１１…データ書込制御部、２１２…冗長情報書込制御部、２１３…データ読込制御部、２１４…冗長情報読込制御部、２１５…アドレス特定部
【図１】
2010287128.tif 000003
【図２】
2010287128.tif 000004
【図３】
2010287128.tif 000005
【図４】
2010287128.tif 000006
【図５】
2010287128.tif 000007
【図６】
2010287128.tif 000008
【図７】
2010287128.tif 000009
【図８】
2010287128.tif 000010
【図９】
2010287128.tif 000011
【図１０】
2010287128.tif 000012
【図１１】
2010287128.tif 000013
【図１２】
2010287128.tif 000014
【手続補正書】
【提出日】平成22年3月16日(2010.3.16)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
上述した課題を解決し、目的を達成するために、本発明にかかるコントローラは、情報を受信する受信手段と、前記情報の誤りを訂正するための冗長情報を抽出する冗長情報抽出手段と、前記情報を、記憶手段の第１のメモリバンクに対して、当該第１のメモリバンクの先頭アドレスから所定のアドレスまでに書き込み、前記情報の前記冗長情報を、前記記憶手段の第２のメモリバンクに対して、当該第２のメモリバンクの前記所定のアドレスから最後のアドレスまでに書き込む書込手段と、を備えたことを特徴とする。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
また、本発明にかかる情報制御方法は、受信手段が、情報を受信する受信ステップと、冗長情報抽出手段が、前記情報の誤りを訂正するための冗長情報を抽出する抽出ステップと、書込手段が、前記情報を、記憶手段の第１のメモリバンクに対して、当該第１のメモリバンクの先頭アドレスから所定のアドレスまでに書き込み、前記情報の前記冗長情報を、前記記憶手段の第２のメモリバンクに対して、当該第２のメモリバンクの前記所定のアドレスから最後のアドレスまでに書き込む書込ステップと、を有することを特徴とする。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
情報を受信する受信手段と、
前記情報の誤りを訂正するための冗長情報を抽出する冗長情報抽出手段と、
前記情報を、記憶手段の第１のメモリバンクに対して、当該第１のメモリバンクの先頭アドレスから所定のアドレスまでに書き込み、前記情報の前記冗長情報を、前記記憶手段の第２のメモリバンクに対して、当該第２のメモリバンクの前記所定のアドレスから最後のアドレスまでに書き込む書込手段と、
を備えたことを特徴とするコントローラ。 
【請求項２】
前記書込手段は、前記情報を受信した場合に、当該情報と前記冗長情報とを書き込むこと、を特徴とする請求項１に記載のコントローラ。 
【請求項３】
前記情報のアドレスに基づいて、前記冗長情報のアドレスを特定する特定手段を、さらに備えることを特徴とする請求項１又は２に記載のコントローラ。 
【請求項４】
前記書込手段は、さらに、前記情報の第１の論理アドレスの各桁を、前記記憶手段のロウアドレスの前記先頭アドレスから前記所定のアドレス、メモリバンク、及びカラムアドレスのそれぞれに割り当て、前記ロウアドレス、メモリバンク、及びカラムアドレスが指し示す記憶領域に前記情報を書き込むこと、
を特徴とする請求項３に記載のコントローラ。 
【請求項５】
前記特定手段は、さらに、前記第１のメモリバンクに割り当てられた、前記第１の論理アドレスの桁の値を反転させた値を、前記第２のメモリバンクに割り当てられた、前記冗長情報の第２の論理アドレスの桁として設定すること、
を特徴とする請求項４に記載のコントローラ。 
【請求項６】
先頭アドレスから所定のアドレスまでに、任意の情報を保持する第１のメモリバンクと、
前記所定のアドレスから最後のアドレスまでに、前記任意の情報の誤りを訂正するための冗長情報を保持している第２のメモリバンクと、
を備えたことを特徴とする記憶媒体。 
【請求項７】
受信手段が、情報を受信する受信ステップと、
冗長情報抽出手段が、前記情報の誤りを訂正するための冗長情報を抽出する抽出ステップと、
書込手段が、前記情報を、記憶手段の第１のメモリバンクに対して、当該第１のメモリバンクの先頭アドレスから所定のアドレスまでに書き込み、前記情報の前記冗長情報を、前記記憶手段の第２のメモリバンクに対して、当該第２のメモリバンクの前記所定のアドレスから最後のアドレスまでに書き込む書込ステップと、
を有することを特徴とする情報制御方法。