(57)【要約】【課題】データ保存装置及びそれについてのソフトウェア設計方法を提供する。【解決手段】新たなコードオブジェクトを第１記録媒体にローディングさせるための要求が発生する場合に、要求された新たなコードオブジェクトがローディングされる第１記録媒体の動的再配置領域を割り当てるステップと、第１記録媒体の動的再配置領域で行われたタスクに関する情報を第２記録媒体に書込むステップと、第２記録媒体に保存されている複数のコードブジェクトのうち、要求された新たなコードオブジェクトを選択して、第１記録媒体に割り当てられた動的再配置領域にローディングさせるステップと、新たにローディングされるコードオブジェクトについてのタスク実行に必要な情報を生成させるステップと、を含むことを特徴とするコードの動的再配置方法。【選択図】図１
2010244679.tif 000002
【特許請求の範囲】
【請求項１】
新たなコードオブジェクトを第１記録媒体にローディングさせるための要求が発生する場合に、前記要求された新たなコードオブジェクトがローディングされる第１記録媒体の動的再配置領域を割り当てるステップと、
前記第１記録媒体の動的再配置領域で行われたタスクに関する情報を、第２記録媒体に書込むステップと、
前記第２記録媒体に保存されている複数のコードブジェクトのうち、前記要求された新たなコードオブジェクトを選択して、前記第１記録媒体に割り当てられた動的再配置領域にローディングさせるステップと、
前記新たにローディングされるコードオブジェクトについてのタスク実行に必要な情報を生成させるステップと、を含むことを特徴とするコードの動的再配置方法。
【請求項２】
前記動的再配置領域を割り当てるステップは、前記第１記録媒体にローディングされているタスクの優先順位に基づいて、最も低い順位のタスク順にタスクを選択して、前記要求された新たなコードオブジェクトがローディングされる第１記録媒体の動的再配置領域を割り当てることを特徴とする請求項１に記載のコードの動的再配置方法。
【請求項３】
前記動的再配置領域に書込まれる新たなコードオブジェクトが以前に行われたコードオブジェクトである場合には、前記第２記録媒体に保存されているタスクに関する情報として、前記新たなコードオブジェクトについてのタスク実行に必要な情報を生成させることを特徴とする請求項１に記載のコードの動的再配置方法。
【請求項４】
前記動的再配置領域に書込まれる新たなコードオブジェクトが、以前に行われたコードオブジェクトではない場合には、前記新たなコードオブジェクトに相応するタスク実行に必要な情報を初期化させることを特徴とする請求項１に記載のコードの動的再配置方法。
【請求項５】
前記タスク実行に必要な情報は、少なくともタスク制御ブロック情報及びスタック情報を含むことを特徴とする請求項１に記載のコードの動的再配置方法。
【請求項６】
前記第１記録媒体は、ＲＡＭを備え、前記第２記録媒体はディスクを備えることを特徴とする請求項１に記載のコードの動的再配置方法。
【請求項７】
前記第１記録媒体の動的再配置領域で行われたタスクに関する情報は、ディスクのメンテナンスシリンダー領域に書込まれることを特徴とする請求項１に記載のコードの動的再配置方法。
【請求項８】
システムで行われるタスクに相応するコードオブジェクトがローディングされる第１記録媒体と、
複数のコードオブジェクトを保存する第２記録媒体と、
コードオブジェクトの動的再配置命令にしたがって、前記第１記録媒体にローディングされているコードブジェクトのうち、選択された一つ以上のコードオブジェクトを、前記第２記録媒体に保存されている複数のコードオブジェクトのうち、一つ以上のコードオブジェクトで代替させるプロセッサーと、を備えることを特徴とするディスクドライブ。
【請求項９】
前記プロセッサーは、コードオブジェクト管理ユニットを備え、前記コードオブジェクト管理ユニットを通じて、コードオブジェクトが保存された位置情報及びコードオブジェクトについてのタスク実行に必要なタスク制御ブロック及びスタック情報を管理することを特徴とする請求項８に記載のディスクドライブ。
【請求項１０】
前記プロセッサーは、
コードオブジェクトの動的再配置命令にしたがって、前記第１記録媒体に新たにローディングするコードオブジェクトに対する保存領域を割り当て、前記割り当てられた保存領域で行われたタスクに関する情報を第２記録媒体に保存した後、前記第２記録媒体から新たにローディングするコードオブジェクトを読み出して、前記第１記録媒体に割り当てられた保存領域に上書きするように制御することを特徴とする請求項８に記載のディスクドライブ。
【請求項１１】
前記プロセッサーは、前記コードオブジェクトの動的再配置命令にしたがって、前記第２記録媒体から新たにローディングするコードオブジェクトを読み出して前記第１記録媒体に割り当てられた保存領域に上書きする時、新たにローディングされるコードオブジェクトが以前に行われたコードオブジェクトである場合に、前記第２記録媒体に保存されているタスクに関する情報として、前記新たなコードオブジェクトについてのタスク実行に必要なタスク制御ブロック及びスタック情報を生成させることを特徴とする請求項８に記載のディスクドライブ。
【請求項１２】
前記プロセッサーは、前記第１記録媒体にローディングされているタスクの優先順位に基づいて、最も低い順位のタスク順にタスクを選択して、前記要求された新たなコードオブジェクトがローディングされる第１記録媒体の動的再配置領域を割り当てることを特徴とする請求項８に記載のディスクドライブ。
【請求項１３】
前記第１記録媒体はＲＡＭを備え、前記第２記録媒体はディスクを備えることを特徴とする請求項８に記載のディスクドライブ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ保存装置及びそれについてのソフトウェア設計方法に関する。
【背景技術】
【０００２】
一般的に、ディスクドライブを駆動するＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ、以下、ＳＯＣ）に使われるメモリのサイズは固定的であり、埋め込みシステムという限界によってサイズ小さいという限界を有している。これは、ディスクドライブの機能を行うためのコードとデータとを保存するメモリの使用に容量的制限を持つようになる。
【０００３】
したがって、制限された容量のＳＯＣのメモリを利用して多様な機能を行えるように、ディスクドライブでの動的コード再配置を実現させる研究が必要になった。本発明に関する先行技術文献には、特許文献１及び２がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第７，３９８，３８１号明細書
【特許文献２】特開２００２−０３２９７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、システム動作中にローディングされているコードオブジェクトを動的に再配置するコードの動的再配置方法を提供するところにある。
【０００６】
本発明が解決しようとする他の課題は、システム動作中にローディングされているコードオブジェクトを動的に再配置する方式が適用されたディスクドライブを提供するところにある。
【課題を解決するための手段】
【０００７】
前記課題を達成するための本発明の一実施形態によるコードの動的再配置方法は、新たなコードオブジェクトを第１記録媒体にローディングさせるための要求が発生する場合に、前記要求された新たなコードオブジェクトがローディングされる第１記録媒体の動的再配置領域を割り当てるステップと、前記第１記録媒体の動的再配置領域で行われたタスクに関する情報を第２記録媒体に書込む（ライトする：ｗｒｉｔｅ）ステップと、前記第２記録媒体に保存されている複数のコードブジェクトのうち、前記要求された新たなコードオブジェクトを選択して、前記第１記録媒体に割り当てられた動的再配置領域にローディングさせるステップと、前記新たにローディングされるコードオブジェクトについてのタスク実行に必要な情報を生成させるステップと、を含むことを特徴とする。
【０００８】
前記動的再配置領域を割り当てるステップは、前記第１記録媒体にローディングされているタスクの優先順位に基づいて、最も低い順位のタスク順にタスクを選択して、前記要求された新たなコードオブジェクトがローディングされる第１記録媒体の動的再配置領域を割り当てることが望ましい。
前記動的再配置領域に書込まれる新たなコードオブジェクトが以前に行われたコードオブジェクトである場合には、前記第２記録媒体に保存されているタスクに関する情報として、前記新たなコードオブジェクトについてのタスク実行に必要な情報を生成させることが望ましい。
【０００９】
前記動的再配置領域に書込まれる新たなコードオブジェクトが、以前に行われたコードオブジェクトではない場合には、前記新たなコードオブジェクトに相応するタスク実行に必要な情報を初期化させることが望ましい。
【００１０】
前記タスク実行に必要な情報は、少なくともタスク制御ブロック情報及びスタック情報を含むことが望ましい。
【００１１】
前記第１記録媒体は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を備え、前記第２記録媒体はディスクを備えることが望ましい。
【００１２】
前記第１記録媒体の動的再配置領域で行われたタスクに関する情報は、ディスクのメンテナンスシリンダー領域に書込まれることが望ましい。
【００１３】
前記他の課題を達成するための本発明の一実施形態によるディスクドライブは、システムで行われるタスクに相応するコードオブジェクトがローディングされる第１記録媒体と、複数のコードオブジェクトを保存する第２記録媒体と、コードオブジェクトの動的再配置命令にしたがって、前記第１記録媒体にローディングされているコードブジェクトのうち、選択された一つ以上のコードオブジェクトを、前記第２記録媒体に保存されている複数のコードオブジェクトのうち、一つ以上のコードオブジェクトで代替させるプロセッサーと、を備えることを特徴とする。
【００１４】
前記プロセッサーは、コードオブジェクト管理ユニットを備え、前記コードオブジェクト管理ユニットを通じて、コードオブジェクトが保存された位置情報、コードオブジェクトについてのタスク実行に必要なタスク制御ブロック及びスタック情報を管理することが望ましい。
【００１５】
前記プロセッサーは、コードオブジェクトの動的再配置命令にしたがって、前記第１記録媒体に新たにローディングするコードオブジェクトに対する保存領域を割り当て、前記割り当てられた保存領域で行われたタスクに関する情報を第２記録媒体に保存した後、前記第２記録媒体から新たにローディングするコードオブジェクトを読み出して、前記第１記録媒体に割り当てられた保存領域に上書きするように制御することが望ましい。
【００１６】
前記プロセッサーは、前記コードオブジェクトの動的再配置命令にしたがって、前記第２記録媒体から新たにローディングするコードオブジェクトを読み出して前記第１記録媒体に割り当てられた保存領域に上書きする時、新たにローディングされるコードオブジェクトが以前に行われたコードオブジェクトである場合に、前記第２記録媒体に保存されているタスクに関する情報として、前記新たなコードオブジェクトについてのタスク実行に必要なタスク制御ブロック及びスタック情報を生成させることが望ましい。
【００１７】
前記プロセッサーは、前記第１記録媒体にローディングされているタスクの優先順位に基づいて、最も低い順位のタスク順にタスクを選択して、前記要求された新たなコードオブジェクトがローディングされる第１記録媒体の動的再配置領域を割り当てることが望ましい。
【発明の効果】
【００１８】
以上説明したように本発明によれば、システム動作中にローディングされているコードオブジェクトを動的に再配置することができるようになる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態によるディスクドライブの構成図である。
【図２】本発明の一実施形態によるディスクドライブでのソフトウェア運用体系図である。
【図３】本発明の一実施形態によるコードの動的再配置方法のフローチャートである。
【図４】本発明によるコードの動的再配置方法によってディスクドライブをＭＰ３プレーヤーで動作させる実施例を示す構成図である。
【図５】図４でのデータ処理過程を示す図面である。
【図６】本発明の一実施形態によるディスクドライブに備えられたヘッドディスクアセンブリーの細部構成図である。
【発明を実施するための形態】
【００２０】
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施例を例示する添付図面及び図面に記載された内容を参照せねばならない。
【００２１】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２２】
図１に示したように、本発明の一実施形態によるディスクドライブは、プロセッサー（ＰＲＯＣＥＳＳＯＲ）１１０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３０、メディアインターフェース（ＭＥＤＩＡ  Ｉ／Ｆ）１４０、メディア（ＭＥＤＩＡ）１５０、ホストインターフェース（ＨＯＳＴ  Ｉ／Ｆ）１６０、ホスト機器（ＨＯＳＴ）１７０、外部インターフェース（Ｅｘｔｅｒｎａｌ  Ｉ／Ｆ）１８０及びバス（ＢＵＳ）１９０を備える。
【００２３】
プロセッサー１１０は、コマンドを解釈し、解釈された結果によってディスクドライブの構成手段を制御する役割を行う。特に、プロセッサー１１０は、コードオブジェクト管理ユニットを備えており、コードオブジェクト管理ユニットを利用してメディア１５０に保存されているコードオブジェクトをＲＡＭ  １３０にローディングさせ、またＲＡＭ  １３０にローディングされているコードオブジェクトの動的再配置を行うように制御する。コードオブジェクトの動的再配置実行過程については、後述する。
【００２４】
ＲＯＭ  １２０には、ディスクドライブを動作させるのに必要なプログラムコード及びデータが保存されている。
【００２５】
ＲＡＭ  １３０には、プロセッサー１１０の制御によってＲＯＭ  １２０またはメディア１５０に保存されたプログラムコード及びデータがローディングされる。特に、本発明では、プロセッサー１１０の制御によって、ＲＡＭ  １３０にローディングされているコードオブジェクトが動的に再配置される。
【００２６】
メディア１５０は、ディスクドライブの主記録媒体としてディスクを備える。ディスクドライブでのディスクが備えられたヘッドディスクアセンブリーの細部構成を、図６に示した。
【００２７】
図６を参照すれば、ヘッドディスクアセンブリーは、スピンドルモータ１４によって回転される少なくとも一つのディスク１２を備えている。ディスクドライブは、ディスク１２表面に隣接して位置した変換器１６も備えている。
【００２８】
変換器１６は、それぞれのディスク１２の磁界を感知または磁化させることによって、回転するディスク１２で情報をリード／ライト（読込み／書込み）できる。典型的に変換器１６は、各ディスク１２の表面に結合されている。たとえ単一の変換器１６と図示されて説明されているとして、これは、ディスク１２を磁化させるためのライト用変換器と、ディスク１２の磁界を感知するために分離されたリード用変換器とからなっていると理解されねばならない。リード用変換器は、磁気抵抗（ＭＲ：Ｍａｇｎｅｔｏ−Ｒｅｓｉｓｔｉｖｅ）素子で構成される。変換器１６は、通例的にヘッドとも呼ばれる。
【００２９】
変換器１６は、スライダー２０に統合されうる。スライダー２０は、変換器１６とディスク１２の表面との間に空気軸受を生成させる構造になっている。スライダー２０は、ヘッドジンバルアセンブリー２２に結合されている。ヘッドジンバルアセンブリー２２は、ボイスコイル２６を持つアクチュエータアーム２４に付着されている。ボイスコイル２６は、ボイスコイルモータ（ＶＣＭ：Ｖｏｉｃｅ  Ｃｏｉｌ  Ｍｏｔｏｒ）３０を特定するように、マグネチックアセンブリー２８に隣接して位置している。ボイスコイル２６に供給される電流は、軸受アセンブリー３２に対しアクチュエータアーム２４を回転させるトルクを発生させる。アクチュエータアーム２４の回転は、ディスク１２の表面を横切って変換器１６を移動させる。
【００３０】
情報は、典型的にディスク１２の環状トラック内に保存される。各トラック３４は、一般的に複数のセクターを備えている。各セクターは、データフィールドと識別フィールドとを備えている。識別フィールドは、セクター及びトラック（シリンダー）を識別するグレーコードとで構成されている。ディスク１２の記録可能な領域には論理ブロックアドレスが割り当てられる。ディスクドライブで論理ブロックアドレスはシリンダー／ヘッド／セクター情報に変換されて、ディスク１２の記録領域が指定される。ディスク１２は、ユーザが接近できないメンテナンスシリンダー領域と、ユーザが接近できるユーザデータ領域とに区切られる。変換器１６は、他のトラックにある情報をリードまたはライトするために、ディスク１２の表面を横切って移動する。
【００３１】
ディスク１２には、ディスクドライブの多様な機能を具現させるための複数のコードオブジェクトが保存されうる。一例として、ＭＰ３プレーヤー機能を行うためのコードオブジェクト、ナビゲーション機能を行うためのコードオブジェクト、多様なビデオゲームを行うためのコードオブジェクトなどがディスク１２に保存されうる。
【００３２】
再び図１を参照すれば、メディアインターフェース１４０は、プロセッサー１１０がメディア１５０をアクセスして、情報をライトまたはリードできるように処理する構成手段であり、細部的に、ヘッドディスクアセンブリーを制御するサーボ回路及びデータリード／ライトのための信号処理を行うリード／ライトチャンネル回路を備える。
【００３３】
ホストインターフェース１６０は、パソコンなどのホスト機器とのデータリード／ライト処理を可能にする手段であって、例えば、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）インターフェース、ＰＡＴＡ（Ｐａｒａｌｌｅｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）インターフェース、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インターフェースなどの多様な規格のインターフェースを利用できる。
【００３４】
そして、外部インターフェース１８０は、ディスクドライブに設置された入／出力端子を通じて外部装置とのデータリード／ライト処理を可能にする手段であって、例えば、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  ｐｏｒｔ）インターフェース、ＵＳＢインターフェース、ＩＥＥＥ１３９４インターフェース、ＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ）インターフェース、ＬＡＮインターフェース、ブルートゥースインターフェース、ＨＤＭＩ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）、ＰＣＩ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｉｎｔｅｒｆａｃｅ）、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）インターフェース、ＰＣＩ−Ｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ−Ｅｘｐｒｅｓｓ）インターフェース、エクスプレスカードインターフェース、ＳＡＴＡインターフェース、ＰＡＴＡインターフェース、シリアルインターフェースなどの多様な規格のインターフェースを利用できる。
【００３５】
バス１９０は、ディスクドライブ構成手段間の情報を伝達する役割を行う。
【００３６】
なお、プロセッサー１１０によってディスクドライブでのコードオブジェクトの動的再配置を実行させる動作について、図２に図示されたソフトウェア運用体系図を参照して説明する。
【００３７】
図２に示したように、ハードディスクドライブ（ＨＤＤ）のメディア１５０には複数のコードオブジェクト（Ｃｏｄｅ  Ｏｂｊｅｃｔ  １〜Ｎ）が保存されている。
【００３８】
ＲＯＭ  １２０には、ブートイメージ（Ｂｏｏｔ  Ｉｍａｇｅ）及び圧縮されたＲＴＯＳイメージ（ｐａｃｋｅｄ  ＲＴＯＳ  Ｉｍａｇｅ）が保存されている。
【００３９】
ＨＤＤメディア１５０であるディスクには、複数のコードオブジェクト（Ｃｏｄｅ  Ｏｂｊｅｃｔ  １〜Ｎ）が保存されている。ディスクに保存されたコードオブジェクトは、ディスクドライブの動作に必要なコードオブジェクトだけではなく、ディスクドライブに拡張できる多様な機能に関連したコードオブジェクトを含む。一例として、ＭＰ３プレーヤー機能、ナビゲーション機能、ビデオゲーム機能などの多様な機能を行うコードオブジェクトがディスクに保存されうる。
【００４０】
ＲＡＭ  １３０には、ブーティング過程でＲＯＭ  １２０からブートイメージを読み出して圧縮解除されたＲＴＯＳイメージがローディングされる。そして、ＨＤＤメディア１５０に保存されているホストインターフェース、及び外部インターフェース実行に必要なコードオブジェクトがＲＡＭ  １３０にローディングされる。もちろん、ＲＡＭ  １３０には、データを保存するための領域（ＤＡＴＡ  ＡＲＥＡ）も割り当てられている。
【００４１】
チャンネル（ＣＨＡＮＮＥＬ）回路２００には、データリード／ライトのための信号処理を行うのに必要な回路が内蔵されており、サーボ（ＳＥＲＶＯ）回路２１０には、データリード／ライトを行うためにヘッドディスクアセンブリーを制御するのに必要な回路が内蔵されている。
【００４２】
ＲＴＯＳ（Ｒｅａｌ  Ｔｉｍｅ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１１０Ａは、リアルタイム運用体系プログラムであって、ディスクを利用した多重プログラム運用体系である。多様に割り当てられたタスクによって、優先順位の早い前位（ｆｏｒｅｇｒｏｕｎｄ）ではリアルタイム多重処理を行い、優先順位の遅い後位（ｂａｃｋｇｒｏｕｎｄ）では一括処理を行う。そして、ディスクからのコードオブジェクトのローディングと、ディスクへのコードオブジェクトのアンローディングとを行う。
【００４３】
ＲＴＯＳ  １１０Ａは、コードオブジェクト管理ユニット（Ｃｏｄｅ  Ｏｂｊｅｃｔ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ；ＣＯＭＵ）１１０−１、コードオブジェクトローダー（Ｃｏｄｅ  Ｏｂｊｅｃｔ  Ｌｏａｄｅｒ；ＣＯＬ）１１０−２、メモリハンドラー（Ｍｅｍｏｒｙ  Ｈａｎｄｌｅｒ；ＭＨ）１１０−３、チャンネル制御モジュール（Ｃｈａｎｎｅｌ  Ｃｏｎｔｒｏｌ  Ｍｏｄｕｌｅ；ＣＣＭ）１１０−４及びサーボ制御モジュール（Ｓｅｒｖｏ  Ｃｏｎｔｒｏｌ  Ｍｏｄｕｌｅ；ＳＣＭ）１１０−５を管理して、要請された命令によるタスクを行う。ＲＴＯＳ  １１０Ａはまた、アプリケーション（Ａｐｐｌｉｃａｔｉｏｎ）プログラム２２０を管理する。
【００４４】
ＣＯＭＵ  １１０−１は、コードオブジェクトが記録されている位置情報を保存し、仮想アドレスを実際アドレスに変換させ、バスを仲裁する処理を行う。また、行われているタスクの優先順位についての情報も保存されている。そして、コードオブジェクトについてのタスク実行に必要なタスク制御ブロック（Ｔａｓｋ  Ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ；ＴＣＢ）情報及びスタック情報も管理する。
【００４５】
ＣＯＬ  １１０−２は、ＣＯＭＵ  １１０−１を利用してＨＤＤメディア１５０に保存されているコードオブジェクトをＲＡＭ  １３０にローディングさせるか、ＲＡＭ  １３０に保存されているコードオブジェクトをＨＤＤメディア１５０にアンローディングさせる処理を行う。
【００４６】
ＭＨ  １１０−３は、ＲＯＭ  １２０またはＲＡＭ  １３０にデータをライトまたはリードする処理を行う。
【００４７】
ＣＣＭ  １１０−４は、データリード／ライトのための信号処理を行うのに必要なチャンネル制御を行い、ＳＣＭ  １１０−５は、データリード／ライトを行うためにヘッドディスクアセンブリーを含むサーボ制御を行う。
【００４８】
まず、ＲＴＯＳ  １１０Ａは、ディスクドライブのブーティング過程で、ディスクドライブ制御に必要なコードオブジェクトをＲＡＭ  １３０にローディングさせる。
したがって、ブーティング過程を行えば、ＲＡＭ  １３０にローディングされたコードオブジェクトを利用して、ディスクドライブを動作させられる。
【００４９】
もし、ディスクドライブ動作中にＲＡＭ  １３０にローディングされているコードオブジェクトによって行われる機能以外の追加的な機能を行うためのコードオブジェクトの動的再配置要求が発生すれば、ＲＴＯＳ  １１０Ａは、ＣＯＭＵ  １１０−１を利用して、ＲＡＭ  １３０にローディングされているコードオブジェクトを、次のように再配置する。
【００５０】
まず、ＲＴＯＳ  １１０Ａは、コードオブジェクトの動的再配置要求が発生すれば、ＣＯＭＵ  １１０−１を利用して、ＲＡＭ  １３０にローディングされているコードオブジェクトによるタスクの優先順位に基づいて、最も低い順位のタスク順にタスクを選択する。次いで、ＲＴＯＳ  １１０Ａは、ＣＯＬ  １１０−２を利用して、選択されたタスクのＴＣＢ情報とスタック情報とを、ＨＤＤメディア１５０であるディスクにライトする。選択されたタスクのＴＣＢとスタック情報とは、ディスクのメンテナンスシリンダー領域に保存することが望ましい。
【００５１】
ＲＴＯＳ  １１０Ａは、ＣＯＭＵ  １１０−１を利用して、要求された新たなコードオブジェクトが保存されているディスクの位置情報を獲得した後、ＣＯＬ  １１０−２を利用して、ディスクに保存されているコードブジェクトのうち、要求された新たなコードオブジェクトを、ＲＡＭ  １３０で遅い順位で選択されたタスクが存在していた領域に上書きする。
【００５２】
次いで、ＲＴＯＳ  １１０Ａは、ＣＯＭＵ  １１０−１を利用して、以前に行われたコードオブジェクトであるかどうかを判断する。以前に行われたコードオブジェクトである場合には、該当コードオブジェクトに関連したＴＣＢ情報とスタック情報とをディスクから読み出して、ＲＡＭ  １３０にローディングされた新たなコードオブジェクトについてのタスク実行に必要なＴＣＢ情報とスタック情報とに決定する。もし、新たにローディングされたコードオブジェクトが以前に行われたコードオブジェクトではない場合には、新たなコードオブジェクトについてのタスク情報であるＴＣＢ及びスタック情報を初期化させる。
【００５３】
これらの動作によって、システムを再ブーティングさせずに、ＲＡＭ  １３０に新たな機能を行うためのコードオブジェクトをローディングさせることができる。
【００５４】
次いで、本発明によるコードの動的再配置実行方法を、図１の構成図及び図３のフローチャートを参照して時系列的に説明する。
【００５５】
まず、プロセッサー１１０は、コードオブジェクトの動的再配置要求が発生したかどうかを判断する（Ｓ３１０）。コードオブジェクトの動的再配置要求は、ブーティング実行後にＲＡＭ  １３０にローディングされているコードオブジェクトを新たなコードオブジェクトで代替する必要性がある場合に発生する。コードオブジェクトの動的再配置要求は、ホスト機器１７０から受信され、また外部インターフェース１８０に接続された機器から受信されることもある。
【００５６】
ステップ３１０（Ｓ３１０）の判断結果、コードオブジェクトの動的再配置要求が発生した場合に、プロセッサー１１０は内蔵されているＣＯＭＵを利用して、第１記録媒体での動的再配置領域を割り当てる（Ｓ３２０）。ここで、第１記録媒体はＲＡＭ  １３０になりうる。具体的に、動的再配置領域割当方式は、ＲＡＭ  １３０にローディングされているコードオブジェクトによるタスクの優先順位に基づいて、最も遅い順位のタスク順にタスクを選択し、選択されたタスクが行われる領域を動的再配置領域に割り当てる。
【００５７】
ステップ３１０（Ｓ３１０）で、動的再配置領域に割り当てられた領域で行われたタスクに関する情報であるＴＣＢ情報とスタック情報とを、第２記録媒体にライトする（Ｓ３３０）。ここで、第２記録媒体は、ＨＤＤのメディア１５０であるディスクになりうる。一例として、ＲＡＭ  １３０の動的再配置領域に割り当てられた領域で行われたタスクに関する情報であるＴＣＢ情報とスタック情報とを、ディスクのメンテナンスシリンダー領域に保存することができる。
【００５８】
次いで、第２記録媒体に保存されているコードブジェクトのうち、要求された新たなコードオブジェクトを読み出して、第１記録媒体に割り当てられた動的再配置領域に上書きする（Ｓ３４０）。
【００５９】
次いで、第１記録媒体の動的再配置領域に新たにローディングされたコードオブジェクトが以前に行われたコードオブジェクトであるかどうかを判断する（Ｓ３５０）。これは、ＣＯＭＵに保存されたコードオブジェクト履歴を確認して、新たにローディングされたコードオブジェクトが以前に行われたコードオブジェクトであるかどうかを判断できる。
【００６０】
ステップ３５０（Ｓ３５０）の判断結果、ローディングされたコードオブジェクトが以前に行われたコードオブジェクトである場合には、該当コードオブジェクトに関連したＴＣＢ情報とスタック情報とを第２記録媒体から読み出して、ＲＡＭ  １３０にローディングされた新たなコードオブジェクトについてのタスク実行に必要なＴＣＢ情報とスタック情報とに設定する（Ｓ３６０）。
【００６１】
もし、ステップ３５０（Ｓ３５０）の判断結果、ローディングされたコードオブジェクトが以前に行われたコードオブジェクトではない場合には、新たなコードオブジェクトについてのタスク実行に必要なＴＣＢ情報及びスタック情報を初期化させる（Ｓ３７０）。
これらの方式によって、ＨＤＤがブーティングされて行われている途中で、コードオブジェクトの動的再配置を行える。
【００６２】
本発明によるコードオブジェクトの動的再配置方法をディスクドライブに適用してＭＰ３プレーヤー機能を追加する一実施形態について、図４を参照して説明する。
【００６３】
図４に示したように、本発明の一実施形態によるディスクドライブは、プロセッサー１１０、ＲＯＭ  １２０、ＲＡＭ  １３０、ハードディスクドライブ（ＨＤＤ）のメディア１５０及びデジタル／アナログ変換部２３０を備える。
【００６４】
メディア１５０には、ディスクドライブに必要なコードオブジェクトだけではなく、ＭＰ３デコーディングコード１５０−１及びＭＰ３ファイル１５０−２が保存されている。
ディスクドライブがブーティングされて、ＲＡＭ  １３０にディスクドライブ動作に必要なコードオブジェクトがローディングされて動作する途中で、ディスクドライブでＭＰ３プレーヤー機能を実行させようとする要求が発生すれば、プロセッサー１１０は、前述したようなコードオブジェクトの動的再配置方式によって、メディア１５０に保存されているＭＰ３デコーディングコード１５０−１をＲＡＭ  １３０にローディングさせる。
【００６５】
次いで、入力される命令に基づいてプロセッサー１１０は、メディア１５０からＭＰ３ファイル１５０−２を読み出してＲＡＭ  １３０にローディングさせる。ＲＡＭ  １３０にローディングされているＭＰ３デコーディングコード１５０−１を利用して、ＲＡＭ  １３０にローディングされたＭＰ３ファイル１５０−２をデコーディング処理してデジタル／アナログ変換部２３０に出力する。
【００６６】
デジタル／アナログ変換部２３０でＭＰ３デコーディング処理されたデジタル信号を、アナログ信号に変換してスピーカー（図示せず）に出力すれば、ディスクドライブでＭＰ３プレーヤー機能を行える。
【００６７】
図５は、図４で行われるデータ処理過程を示す図面である。
【００６８】
メディア１５０、ＲＡＭ  １３０及びキュー（Ｑｕｅｕｅ）バッファ１３０−３はディスクドライブ１０００に内蔵される構造を持ち、デジタル／アナログ変換部２３０及びスピーカー２４０は、ディスクドライブの外部インターフェースに接続される外部機器２０００に内蔵される構造を持つ。もちろん、外部機器２０００に含まれた構成要素をディスクドライブ１０００にいずれも内蔵することができ、場合によって、デジタル／アナログ変換部２３０のみをディスクドライブ１０００に内蔵されるように設計してもよい。
【００６９】
コードオブジェクトの動的再配置方式によって、ＲＡＭ  １３０にＭＰ３デコーディングコード１３０−２をローディングさせた後、外部インターフェースを通じて接続されたＭＰ３再生命令が入力されれば、プロセッサー１１０は、メディア１５０からＭＰ３ファイルを読み出してＲＡＭ１５０にローディングさせる。
【００７０】
次いで、プロセッサー１１０の制御によって、ＲＡＭ  １３０でＭＰ３ファイル１３０−１を、デコーディングコード１３０−２を利用してデコーディング処理して、キューバッファ１３０−３に出力する。それにより、キューバッファ１３０−３に保存されたデータは、所定の順序にしたがって、外部インターフェースを通じてデジタル／アナログ変換部２３０に出力され、デジタル／アナログ変換部２３０で処理されたアナログ信号は、スピーカー２４０に最終出力される。
【００７１】
したがって、ディスクドライブに別途のＭＰ３デコーディング回路を追加しなくても、ソフトウェア設計でドライブをＭＰ３プレーヤーで動作させられるようになった。
【００７２】
再び図１を参照すれば、メディア１５０にディスクドライブ動作に必要なコードオブジェクトだけではなく、ディスクドライブで具現しようとする追加的な機能を行うためのコードオブジェクトを保存し、ブーティング後にＲＡＭ  １３０にローディングされたコードオブジェクトに対する動的再配置を実行すれば、ディスクドライブで多様な機能を行える。
【００７３】
メディア１５０にディスクドライブ固有の機能以外に、例えば、ＭＰ３プレーヤー、ナビゲーション、ビデオゲームなどの機能を行うためのコードオブジェクトを保存しておき、本発明によるコードオブジェクトの動的再配置方式を適用すれば、ディスクドライブでディスクドライブ固有の機能以外に多様な機能を具現できるようになる。
【００７４】
すなわち、コードオブジェクトの動的再配置方式を適用して、ディスクドライブをＭＰ３プレーヤー、ナビゲーション機器、ビデオゲーム機で動作させうるようになる。もちろん、ディスクドライブをＭＰ３プレーヤーで動作させるためには、外部インターフェース１８０に、図５に示したようなデジタル／アナログ変換器及びスピーカー２４０を備える外部機器を接続させねばならない。また、ディスクドライブをナビゲーション機器で動作させるためには、外部インターフェース１８０にディスプレー機器を接続させればよい。
【００７５】
したがって、外部インターフェース１８０に連結される機器によって、ディスクドライブでのコードオブジェクトの動的再配置を行えば、ソフトウェア設計によってディスクドライブを多様な機器で動作させうる。
【００７６】
もちろん、外部インターフェース１８０だけではなく、ホストインターフェース１６０を通じて接続された機器に対応するように、コードオブジェクトの動的再配置を行うこともできる。
【００７７】
参考までに、ディスクドライブを通信用ストレージで動作させるためには、一例として、プロセッサー１１０にＴＣＰ／ＩＰアクセラレーションエンジン（Ａｃｃｅｌｅｒａｔｉｏｎ  Ｅｎｇｉｎｅ）とイーサネット（登録商標）ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）を支援するモジュールを追加し、これと関連したソフトウェアを動的に再配置すればよい。
【００７８】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【００７９】
本発明は多様な形態の保存装置に適用でき、特に、本発明をＨＤＤ及び多様な方式のメモリ装置などの保存装置が含まれたデータ保存システムに適用する場合に、システムのメモリを拡張させなくても多様な機能を具現できるようになる。
【符号の説明】
【００８０】
１１０    プロセッサー（ＰＲＯＣＥＳＳＯＲ）
１２０    ＲＯＭ
１３０    ＲＡＭ
１４０    メディアインターフェース（ＭＥＤＩＡ  Ｉ／Ｆ）
１５０    メディア（ＭＥＤＩＡ）
１６０    ホストインターフェース（ＨＯＳＴ  Ｉ／Ｆ）
１７０    ホスト機器（ＨＯＳＴ）
１８０    外部インターフェース（Ｅｘｔｅｒｎａｌ  Ｉ／Ｆ）
１９０    バス（ＢＵＳ）
【図１】
2010244679.tif 000003
【図２】
2010244679.tif 000004
【図３】
2010244679.tif 000005
【図４】
2010244679.tif 000006
【図５】
2010244679.tif 000007
【図６】
2010244679.tif 000008