JP5564314B2 - コードの動的再配置方法及びこれを利用した装置 - Google Patents

コードの動的再配置方法及びこれを利用した装置 Download PDF

Info

Publication number
JP5564314B2
JP5564314B2 JP2010087530A JP2010087530A JP5564314B2 JP 5564314 B2 JP5564314 B2 JP 5564314B2 JP 2010087530 A JP2010087530 A JP 2010087530A JP 2010087530 A JP2010087530 A JP 2010087530A JP 5564314 B2 JP5564314 B2 JP 5564314B2
Authority
JP
Japan
Prior art keywords
code object
storage medium
information
loaded
code
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.)
Expired - Fee Related
Application number
JP2010087530A
Other languages
English (en)
Other versions
JP2010244679A5 (ja
JP2010244679A (ja
Inventor
俊範 朴
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.)
Seagate Technology International
Original Assignee
Seagate Technology International
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 Seagate Technology International filed Critical Seagate Technology International
Publication of JP2010244679A publication Critical patent/JP2010244679A/ja
Publication of JP2010244679A5 publication Critical patent/JP2010244679A5/ja
Application granted granted Critical
Publication of JP5564314B2 publication Critical patent/JP5564314B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44584Portable applications, i.e. making applications self-contained, e.g. U3 standard
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Stored Programmes (AREA)

Description

本発明は、データ保存装置及びそれについてのソフトウェア設計方法に関する。
一般的に、ディスクドライブを駆動するSOC(System On Chip、以下、SOC)に使われるメモリのサイズは固定的であり、埋め込みシステムという限界によってサイズ小さいという限界を有している。これは、ディスクドライブの機能を行うためのコードとデータとを保存するメモリの使用に容量的制限を持つようになる。
したがって、制限された容量のSOCのメモリを利用して多様な機能を行えるように、ディスクドライブでの動的コード再配置を実現させる研究が必要になった。本発明に関する先行技術文献には、特許文献1及び2がある。
米国特許第7,398,381号明細書 特開2002−032975号公報
本発明が解決しようとする課題は、システム動作中にローディングされているコードオブジェクトを動的に再配置するコードの動的再配置方法を提供するところにある。
本発明が解決しようとする他の課題は、システム動作中にローディングされているコードオブジェクトを動的に再配置する方式が適用されたディスクドライブを提供するところにある。
前記課題を達成するための本発明の一実施形態によるコードの動的再配置方法は、新たなコードオブジェクトを第1記録媒体にローディングさせるための要求が発生する場合に、前記要求された新たなコードオブジェクトがローディングされる第1記録媒体の動的再配置領域を割り当てるステップと、前記第1記録媒体の動的再配置領域で行われたタスクに関する情報を第2記録媒体に書込む(ライトする:write)ステップと、前記第2記録媒体に保存されている複数のコードブジェクトのうち、前記要求された新たなコードオブジェクトを選択して、前記第1記録媒体に割り当てられた動的再配置領域にローディングさせるステップと、前記新たにローディングされるコードオブジェクトについてのタスク実行に必要な情報を生成させるステップと、を含むことを特徴とする。
前記動的再配置領域を割り当てるステップは、前記第1記録媒体にローディングされているタスクの優先順位に基づいて、最も低い順位のタスク順にタスクを選択して、前記要求された新たなコードオブジェクトがローディングされる第1記録媒体の動的再配置領域を割り当てることが望ましい。
前記動的再配置領域に書込まれる新たなコードオブジェクトが以前に行われたコードオブジェクトである場合には、前記第2記録媒体に保存されているタスクに関する情報として、前記新たなコードオブジェクトについてのタスク実行に必要な情報を生成させることが望ましい。
前記動的再配置領域に書込まれる新たなコードオブジェクトが、以前に行われたコードオブジェクトではない場合には、前記新たなコードオブジェクトに相応するタスク実行に必要な情報を初期化させることが望ましい。
前記タスク実行に必要な情報は、少なくともタスク制御ブロック情報及びスタック情報を含むことが望ましい。
前記第1記録媒体は、RAM(Random Access Memory)を備え、前記第2記録媒体はディスクを備えることが望ましい。
前記第1記録媒体の動的再配置領域で行われたタスクに関する情報は、ディスクのメンテナンスシリンダー領域に書込まれることが望ましい。
前記他の課題を達成するための本発明の一実施形態によるディスクドライブは、システムで行われるタスクに相応するコードオブジェクトがローディングされる第1記録媒体と、複数のコードオブジェクトを保存する第2記録媒体と、コードオブジェクトの動的再配置命令にしたがって、前記第1記録媒体にローディングされているコードブジェクトのうち、選択された一つ以上のコードオブジェクトを、前記第2記録媒体に保存されている複数のコードオブジェクトのうち、一つ以上のコードオブジェクトで代替させるプロセッサーと、を備えることを特徴とする。
前記プロセッサーは、コードオブジェクト管理ユニットを備え、前記コードオブジェクト管理ユニットを通じて、コードオブジェクトが保存された位置情報、コードオブジェクトについてのタスク実行に必要なタスク制御ブロック及びスタック情報を管理することが望ましい。
前記プロセッサーは、コードオブジェクトの動的再配置命令にしたがって、前記第1記録媒体に新たにローディングするコードオブジェクトに対する保存領域を割り当て、前記割り当てられた保存領域で行われたタスクに関する情報を第2記録媒体に保存した後、前記第2記録媒体から新たにローディングするコードオブジェクトを読み出して、前記第1記録媒体に割り当てられた保存領域に上書きするように制御することが望ましい。
前記プロセッサーは、前記コードオブジェクトの動的再配置命令にしたがって、前記第2記録媒体から新たにローディングするコードオブジェクトを読み出して前記第1記録媒体に割り当てられた保存領域に上書きする時、新たにローディングされるコードオブジェクトが以前に行われたコードオブジェクトである場合に、前記第2記録媒体に保存されているタスクに関する情報として、前記新たなコードオブジェクトについてのタスク実行に必要なタスク制御ブロック及びスタック情報を生成させることが望ましい。
前記プロセッサーは、前記第1記録媒体にローディングされているタスクの優先順位に基づいて、最も低い順位のタスク順にタスクを選択して、前記要求された新たなコードオブジェクトがローディングされる第1記録媒体の動的再配置領域を割り当てることが望ましい。
以上説明したように本発明によれば、システム動作中にローディングされているコードオブジェクトを動的に再配置することができるようになる。
本発明の一実施形態によるディスクドライブの構成図である。 本発明の一実施形態によるディスクドライブでのソフトウェア運用体系図である。 本発明の一実施形態によるコードの動的再配置方法のフローチャートである。 本発明によるコードの動的再配置方法によってディスクドライブをMP3プレーヤーで動作させる実施例を示す構成図である。 図4でのデータ処理過程を示す図面である。 本発明の一実施形態によるディスクドライブに備えられたヘッドディスクアセンブリーの細部構成図である。
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施例を例示する添付図面及び図面に記載された内容を参照せねばならない。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
図1に示したように、本発明の一実施形態によるディスクドライブは、プロセッサー(PROCESSOR)110、ROM(Read Only Memory)120、RAM(Random Access Memory)130、メディアインターフェース(MEDIA I/F)140、メディア(MEDIA)150、ホストインターフェース(HOST I/F)160、ホスト機器(HOST)170、外部インターフェース(External I/F)180及びバス(BUS)190を備える。
プロセッサー110は、コマンドを解釈し、解釈された結果によってディスクドライブの構成手段を制御する役割を行う。特に、プロセッサー110は、コードオブジェクト管理ユニットを備えており、コードオブジェクト管理ユニットを利用してメディア150に保存されているコードオブジェクトをRAM 130にローディングさせ、またRAM 130にローディングされているコードオブジェクトの動的再配置を行うように制御する。コードオブジェクトの動的再配置実行過程については、後述する。
ROM 120には、ディスクドライブを動作させるのに必要なプログラムコード及びデータが保存されている。
RAM 130には、プロセッサー110の制御によってROM 120またはメディア150に保存されたプログラムコード及びデータがローディングされる。特に、本発明では、プロセッサー110の制御によって、RAM 130にローディングされているコードオブジェクトが動的に再配置される。
メディア150は、ディスクドライブの主記録媒体としてディスクを備える。ディスクドライブでのディスクが備えられたヘッドディスクアセンブリーの細部構成を、図6に示した。
図6を参照すれば、ヘッドディスクアセンブリーは、スピンドルモータ14によって回転される少なくとも一つのディスク12を備えている。ディスクドライブは、ディスク12表面に隣接して位置した変換器16も備えている。
変換器16は、それぞれのディスク12の磁界を感知または磁化させることによって、回転するディスク12で情報をリード/ライト(読込み/書込み)できる。典型的に変換器16は、各ディスク12の表面に結合されている。たとえ単一の変換器16と図示されて説明されているとして、これは、ディスク12を磁化させるためのライト用変換器と、ディスク12の磁界を感知するために分離されたリード用変換器とからなっていると理解されねばならない。リード用変換器は、磁気抵抗(MR:Magneto−Resistive)素子で構成される。変換器16は、通例的にヘッドとも呼ばれる。
変換器16は、スライダー20に統合されうる。スライダー20は、変換器16とディスク12の表面との間に空気軸受を生成させる構造になっている。スライダー20は、ヘッドジンバルアセンブリー22に結合されている。ヘッドジンバルアセンブリー22は、ボイスコイル26を持つアクチュエータアーム24に付着されている。ボイスコイル26は、ボイスコイルモータ(VCM:Voice Coil Motor)30を特定するように、マグネチックアセンブリー28に隣接して位置している。ボイスコイル26に供給される電流は、軸受アセンブリー32に対しアクチュエータアーム24を回転させるトルクを発生させる。アクチュエータアーム24の回転は、ディスク12の表面を横切って変換器16を移動させる。
情報は、典型的にディスク12の環状トラック内に保存される。各トラック34は、一般的に複数のセクターを備えている。各セクターは、データフィールドと識別フィールドとを備えている。識別フィールドは、セクター及びトラック(シリンダー)を識別するグレーコードとで構成されている。ディスク12の記録可能な領域には論理ブロックアドレスが割り当てられる。ディスクドライブで論理ブロックアドレスはシリンダー/ヘッド/セクター情報に変換されて、ディスク12の記録領域が指定される。ディスク12は、ユーザが接近できないメンテナンスシリンダー領域と、ユーザが接近できるユーザデータ領域とに区切られる。変換器16は、他のトラックにある情報をリードまたはライトするために、ディスク12の表面を横切って移動する。
ディスク12には、ディスクドライブの多様な機能を具現させるための複数のコードオブジェクトが保存されうる。一例として、MP3プレーヤー機能を行うためのコードオブジェクト、ナビゲーション機能を行うためのコードオブジェクト、多様なビデオゲームを行うためのコードオブジェクトなどがディスク12に保存されうる。
再び図1を参照すれば、メディアインターフェース140は、プロセッサー110がメディア150をアクセスして、情報をライトまたはリードできるように処理する構成手段であり、細部的に、ヘッドディスクアセンブリーを制御するサーボ回路及びデータリード/ライトのための信号処理を行うリード/ライトチャンネル回路を備える。
ホストインターフェース160は、パソコンなどのホスト機器とのデータリード/ライト処理を可能にする手段であって、例えば、SATA(Serial Advanced Technology Attachment)インターフェース、PATA(Parallel Advanced Technology Attachment)インターフェース、USB(Universal Serial Bus)インターフェースなどの多様な規格のインターフェースを利用できる。
そして、外部インターフェース180は、ディスクドライブに設置された入/出力端子を通じて外部装置とのデータリード/ライト処理を可能にする手段であって、例えば、AGP(Accelerated Graphics port)インターフェース、USBインターフェース、IEEE1394インターフェース、PCMCIA(Personal Computer Memory Card International Association)インターフェース、LANインターフェース、ブルートゥースインターフェース、HDMI(High Definition Multimedia Interface)、PCI(Programmable Communication Interface)、ISA(Industry Standard Architecture)インターフェース、PCI−E(Peripheral Component Interconnect−Express)インターフェース、エクスプレスカードインターフェース、SATAインターフェース、PATAインターフェース、シリアルインターフェースなどの多様な規格のインターフェースを利用できる。
バス190は、ディスクドライブ構成手段間の情報を伝達する役割を行う。
なお、プロセッサー110によってディスクドライブでのコードオブジェクトの動的再配置を実行させる動作について、図2に図示されたソフトウェア運用体系図を参照して説明する。
図2に示したように、ハードディスクドライブ(HDD)のメディア150には複数のコードオブジェクト(Code Object 1〜N)が保存されている。
ROM 120には、ブートイメージ(Boot Image)及び圧縮されたRTOSイメージ(packed RTOS Image)が保存されている。
HDDメディア150であるディスクには、複数のコードオブジェクト(Code Object 1〜N)が保存されている。ディスクに保存されたコードオブジェクトは、ディスクドライブの動作に必要なコードオブジェクトだけではなく、ディスクドライブに拡張できる多様な機能に関連したコードオブジェクトを含む。一例として、MP3プレーヤー機能、ナビゲーション機能、ビデオゲーム機能などの多様な機能を行うコードオブジェクトがディスクに保存されうる。
RAM 130には、ブーティング過程でROM 120からブートイメージを読み出して圧縮解除されたRTOSイメージがローディングされる。そして、HDDメディア150に保存されているホストインターフェース、及び外部インターフェース実行に必要なコードオブジェクトがRAM 130にローディングされる。もちろん、RAM 130には、データを保存するための領域(DATA AREA)も割り当てられている。
チャンネル(CHANNEL)回路200には、データリード/ライトのための信号処理を行うのに必要な回路が内蔵されており、サーボ(SERVO)回路210には、データリード/ライトを行うためにヘッドディスクアセンブリーを制御するのに必要な回路が内蔵されている。
RTOS(Real Time Operating System)110Aは、リアルタイム運用体系プログラムであって、ディスクを利用した多重プログラム運用体系である。多様に割り当てられたタスクによって、優先順位の早い前位(foreground)ではリアルタイム多重処理を行い、優先順位の遅い後位(background)では一括処理を行う。そして、ディスクからのコードオブジェクトのローディングと、ディスクへのコードオブジェクトのアンローディングとを行う。
RTOS 110Aは、コードオブジェクト管理ユニット(Code Object Management Unit;COMU)110−1、コードオブジェクトローダー(Code Object Loader;COL)110−2、メモリハンドラー(Memory Handler;MH)110−3、チャンネル制御モジュール(Channel Control Module;CCM)110−4及びサーボ制御モジュール(Servo Control Module;SCM)110−5を管理して、要請された命令によるタスクを行う。RTOS 110Aはまた、アプリケーション(Application)プログラム220を管理する。
COMU 110−1は、コードオブジェクトが記録されている位置情報を保存し、仮想アドレスを実際アドレスに変換させ、バスを仲裁する処理を行う。また、行われているタスクの優先順位についての情報も保存されている。そして、コードオブジェクトについてのタスク実行に必要なタスク制御ブロック(Task Control Block;TCB)情報及びスタック情報も管理する。
COL 110−2は、COMU 110−1を利用してHDDメディア150に保存されているコードオブジェクトをRAM 130にローディングさせるか、RAM 130に保存されているコードオブジェクトをHDDメディア150にアンローディングさせる処理を行う。
MH 110−3は、ROM 120またはRAM 130にデータをライトまたはリードする処理を行う。
CCM 110−4は、データリード/ライトのための信号処理を行うのに必要なチャンネル制御を行い、SCM 110−5は、データリード/ライトを行うためにヘッドディスクアセンブリーを含むサーボ制御を行う。
まず、RTOS 110Aは、ディスクドライブのブーティング過程で、ディスクドライブ制御に必要なコードオブジェクトをRAM 130にローディングさせる。
したがって、ブーティング過程を行えば、RAM 130にローディングされたコードオブジェクトを利用して、ディスクドライブを動作させられる。
もし、ディスクドライブ動作中にRAM 130にローディングされているコードオブジェクトによって行われる機能以外の追加的な機能を行うためのコードオブジェクトの動的再配置要求が発生すれば、RTOS 110Aは、COMU 110−1を利用して、RAM 130にローディングされているコードオブジェクトを、次のように再配置する。
まず、RTOS 110Aは、コードオブジェクトの動的再配置要求が発生すれば、COMU 110−1を利用して、RAM 130にローディングされているコードオブジェクトによるタスクの優先順位に基づいて、最も低い順位のタスク順にタスクを選択する。次いで、RTOS 110Aは、COL 110−2を利用して、選択されたタスクのTCB情報とスタック情報とを、HDDメディア150であるディスクにライトする。選択されたタスクのTCBとスタック情報とは、ディスクのメンテナンスシリンダー領域に保存することが望ましい。
RTOS 110Aは、COMU 110−1を利用して、要求された新たなコードオブジェクトが保存されているディスクの位置情報を獲得した後、COL 110−2を利用して、ディスクに保存されているコードブジェクトのうち、要求された新たなコードオブジェクトを、RAM 130で遅い順位で選択されたタスクが存在していた領域に上書きする。
次いで、RTOS 110Aは、COMU 110−1を利用して、以前に行われたコードオブジェクトであるかどうかを判断する。以前に行われたコードオブジェクトである場合には、該当コードオブジェクトに関連したTCB情報とスタック情報とをディスクから読み出して、RAM 130にローディングされた新たなコードオブジェクトについてのタスク実行に必要なTCB情報とスタック情報とに決定する。もし、新たにローディングされたコードオブジェクトが以前に行われたコードオブジェクトではない場合には、新たなコードオブジェクトについてのタスク情報であるTCB及びスタック情報を初期化させる。
これらの動作によって、システムを再ブーティングさせずに、RAM 130に新たな機能を行うためのコードオブジェクトをローディングさせることができる。
次いで、本発明によるコードの動的再配置実行方法を、図1の構成図及び図3のフローチャートを参照して時系列的に説明する。
まず、プロセッサー110は、コードオブジェクトの動的再配置要求が発生したかどうかを判断する(S310)。コードオブジェクトの動的再配置要求は、ブーティング実行後にRAM 130にローディングされているコードオブジェクトを新たなコードオブジェクトで代替する必要性がある場合に発生する。コードオブジェクトの動的再配置要求は、ホスト機器170から受信され、また外部インターフェース180に接続された機器から受信されることもある。
ステップ310(S310)の判断結果、コードオブジェクトの動的再配置要求が発生した場合に、プロセッサー110は内蔵されているCOMUを利用して、第1記録媒体での動的再配置領域を割り当てる(S320)。ここで、第1記録媒体はRAM 130になりうる。具体的に、動的再配置領域割当方式は、RAM 130にローディングされているコードオブジェクトによるタスクの優先順位に基づいて、最も遅い順位のタスク順にタスクを選択し、選択されたタスクが行われる領域を動的再配置領域に割り当てる。
ステップ310(S310)で、動的再配置領域に割り当てられた領域で行われたタスクに関する情報であるTCB情報とスタック情報とを、第2記録媒体にライトする(S330)。ここで、第2記録媒体は、HDDのメディア150であるディスクになりうる。一例として、RAM 130の動的再配置領域に割り当てられた領域で行われたタスクに関する情報であるTCB情報とスタック情報とを、ディスクのメンテナンスシリンダー領域に保存することができる。
次いで、第2記録媒体に保存されているコードブジェクトのうち、要求された新たなコードオブジェクトを読み出して、第1記録媒体に割り当てられた動的再配置領域に上書きする(S340)。
次いで、第1記録媒体の動的再配置領域に新たにローディングされたコードオブジェクトが以前に行われたコードオブジェクトであるかどうかを判断する(S350)。これは、COMUに保存されたコードオブジェクト履歴を確認して、新たにローディングされたコードオブジェクトが以前に行われたコードオブジェクトであるかどうかを判断できる。
ステップ350(S350)の判断結果、ローディングされたコードオブジェクトが以前に行われたコードオブジェクトである場合には、該当コードオブジェクトに関連したTCB情報とスタック情報とを第2記録媒体から読み出して、RAM 130にローディングされた新たなコードオブジェクトについてのタスク実行に必要なTCB情報とスタック情報とに設定する(S360)。
もし、ステップ350(S350)の判断結果、ローディングされたコードオブジェクトが以前に行われたコードオブジェクトではない場合には、新たなコードオブジェクトについてのタスク実行に必要なTCB情報及びスタック情報を初期化させる(S370)。
これらの方式によって、HDDがブーティングされて行われている途中で、コードオブジェクトの動的再配置を行える。
本発明によるコードオブジェクトの動的再配置方法をディスクドライブに適用してMP3プレーヤー機能を追加する一実施形態について、図4を参照して説明する。
図4に示したように、本発明の一実施形態によるディスクドライブは、プロセッサー110、ROM 120、RAM 130、ハードディスクドライブ(HDD)のメディア150及びデジタル/アナログ変換部230を備える。
メディア150には、ディスクドライブに必要なコードオブジェクトだけではなく、MP3デコーディングコード150−1及びMP3ファイル150−2が保存されている。
ディスクドライブがブーティングされて、RAM 130にディスクドライブ動作に必要なコードオブジェクトがローディングされて動作する途中で、ディスクドライブでMP3プレーヤー機能を実行させようとする要求が発生すれば、プロセッサー110は、前述したようなコードオブジェクトの動的再配置方式によって、メディア150に保存されているMP3デコーディングコード150−1をRAM 130にローディングさせる。
次いで、入力される命令に基づいてプロセッサー110は、メディア150からMP3ファイル150−2を読み出してRAM 130にローディングさせる。RAM 130にローディングされているMP3デコーディングコード150−1を利用して、RAM 130にローディングされたMP3ファイル150−2をデコーディング処理してデジタル/アナログ変換部230に出力する。
デジタル/アナログ変換部230でMP3デコーディング処理されたデジタル信号を、アナログ信号に変換してスピーカー(図示せず)に出力すれば、ディスクドライブでMP3プレーヤー機能を行える。
図5は、図4で行われるデータ処理過程を示す図面である。
メディア150、RAM 130及びキュー(Queue)バッファ130−3はディスクドライブ1000に内蔵される構造を持ち、デジタル/アナログ変換部230及びスピーカー240は、ディスクドライブの外部インターフェースに接続される外部機器2000に内蔵される構造を持つ。もちろん、外部機器2000に含まれた構成要素をディスクドライブ1000にいずれも内蔵することができ、場合によって、デジタル/アナログ変換部230のみをディスクドライブ1000に内蔵されるように設計してもよい。
コードオブジェクトの動的再配置方式によって、RAM 130にMP3デコーディングコード130−2をローディングさせた後、外部インターフェースを通じて接続されたMP3再生命令が入力されれば、プロセッサー110は、メディア150からMP3ファイルを読み出してRAM150にローディングさせる。
次いで、プロセッサー110の制御によって、RAM 130でMP3ファイル130−1を、デコーディングコード130−2を利用してデコーディング処理して、キューバッファ130−3に出力する。それにより、キューバッファ130−3に保存されたデータは、所定の順序にしたがって、外部インターフェースを通じてデジタル/アナログ変換部230に出力され、デジタル/アナログ変換部230で処理されたアナログ信号は、スピーカー240に最終出力される。
したがって、ディスクドライブに別途のMP3デコーディング回路を追加しなくても、ソフトウェア設計でドライブをMP3プレーヤーで動作させられるようになった。
再び図1を参照すれば、メディア150にディスクドライブ動作に必要なコードオブジェクトだけではなく、ディスクドライブで具現しようとする追加的な機能を行うためのコードオブジェクトを保存し、ブーティング後にRAM 130にローディングされたコードオブジェクトに対する動的再配置を実行すれば、ディスクドライブで多様な機能を行える。
メディア150にディスクドライブ固有の機能以外に、例えば、MP3プレーヤー、ナビゲーション、ビデオゲームなどの機能を行うためのコードオブジェクトを保存しておき、本発明によるコードオブジェクトの動的再配置方式を適用すれば、ディスクドライブでディスクドライブ固有の機能以外に多様な機能を具現できるようになる。
すなわち、コードオブジェクトの動的再配置方式を適用して、ディスクドライブをMP3プレーヤー、ナビゲーション機器、ビデオゲーム機で動作させうるようになる。もちろん、ディスクドライブをMP3プレーヤーで動作させるためには、外部インターフェース180に、図5に示したようなデジタル/アナログ変換器及びスピーカー240を備える外部機器を接続させねばならない。また、ディスクドライブをナビゲーション機器で動作させるためには、外部インターフェース180にディスプレー機器を接続させればよい。
したがって、外部インターフェース180に連結される機器によって、ディスクドライブでのコードオブジェクトの動的再配置を行えば、ソフトウェア設計によってディスクドライブを多様な機器で動作させうる。
もちろん、外部インターフェース180だけではなく、ホストインターフェース160を通じて接続された機器に対応するように、コードオブジェクトの動的再配置を行うこともできる。
参考までに、ディスクドライブを通信用ストレージで動作させるためには、一例として、プロセッサー110にTCP/IPアクセラレーションエンジン(Acceleration Engine)とイーサネット(登録商標)MAC(Media Access Control)を支援するモジュールを追加し、これと関連したソフトウェアを動的に再配置すればよい。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
本発明は多様な形態の保存装置に適用でき、特に、本発明をHDD及び多様な方式のメモリ装置などの保存装置が含まれたデータ保存システムに適用する場合に、システムのメモリを拡張させなくても多様な機能を具現できるようになる。
110 プロセッサー(PROCESSOR)
120 ROM
130 RAM
140 メディアインターフェース(MEDIA I/F)
150 メディア(MEDIA)
160 ホストインターフェース(HOST I/F)
170 ホスト機器(HOST)
180 外部インターフェース(External I/F)
190 バス(BUS)

Claims (11)

  1. 第1の記憶媒体と、
    第2の記憶媒体と、
    プロセッサとを備え、
    前記プロセッサは、
    新たなコードオブジェクトを前記第1の記憶媒体へローディングするための指令を受信し、
    前記新たなコードオブジェクトを前記第1の記憶媒体へローディングするための十分な空間がない場合に、古いコードオブジェクトを含む前記第1の記憶媒体の領域を動的再配置領域として割り当て、
    前記古いコードオブジェクトに関連するタスクに関するタスク制御ブロック情報およびスタック情報を前記第2の記憶媒体へ記憶し、
    割り当てられた前記動的再配置領域に前記新たなコードオブジェクトを書込み、
    ローディングされた前記新たなコードオブジェクト関連するタスクを実行するのに先立って、
    前記新たなコードオブジェクトが以前に実行されたコードオブジェクトの場合には、タスク制御ブロック情報およびスタック情報を前記第2の記憶媒体からローディングし、
    前記新たなコードオブジェクトが以前に実行されたコードオブジェクトではない場合には、タスク制御ブロック情報およびスタック情報を初期化する、装置。
  2. 前記プロセッサは、
    コードオブジェクトについての位置情報、タスク制御ブロック情報、および前記コードオブジェクトに関するタスク実行に関連したスタック情報を管理するように構成されたコードオブジェクト管理システムを含む、請求項1に記載の装置。
  3. 前記プロセッサは、前記第1の記憶媒体にローディングされたコードオブジェクトに関連したタスクの優先順位に基づいて、前記動的再配置領域を割り当てるようにさらに構成される、請求項1に記載の装置。
  4. 前記第1の記憶媒体は、ランダムアクセスメモリを含み、
    前記第2の記憶媒体は、ディスクを含む、請求項1に記載の装置。
  5. 前記第2の記憶媒体は、前記第1の記憶媒体から分離した不揮発性メモリである、請求項1に記載の装置。
  6. 前記第1の記憶媒体を含むシステムオンチップをさらに備える、請求項1に記載の装置。
  7. 新たなコードオブジェクトを第1の記憶媒体へローディングするための要求を受信するステップと、
    前記新たなコードオブジェクトを前記第1の記憶媒体へローディングするための十分な空間がない場合に、古いコードオブジェクトを含む前記第1の記憶媒体の領域を動的再配置領域として割り当てるステップと、
    前記古いコードオブジェクトに関連するタスクに関するタスク制御ブロック情報およびスタック情報を第2の記憶媒体へ記憶するステップと、
    割り当てられた前記動的再配置領域に前記新たなコードオブジェクトを書込むステップと、
    ローディングされた前記新たなコードオブジェクト関連するタスクを実行するのに先立って、
    前記新たなコードオブジェクトが以前に実行されたコードオブジェクトの場合には、タスク制御ブロック情報およびスタック情報を前記第2の記憶媒体からローディングするステップと、
    前記新たなコードオブジェクトが以前に実行されたコードオブジェクトではない場合には、タスク制御ブロック情報およびスタック情報を初期化するステップとを含む、方法。
  8. 前記動的再配置領域を割り当てるステップは、前記第1の記憶媒体にローディングされたタスクの優先順位に基づいて、前記動的再配置領域を割り当てるステップを含み、
    より低い優先順位を有するタスクは、前記古いコードオブジェクトとしてより早く選択される、請求項7に記載の方法。
  9. 前記第1の記憶媒体は、ランダムアクセスメモリを含み、
    前記第2の記憶媒体は、ディスクを含む、請求項7に記載の方法。
  10. 以前に実行された前記古いコードオブジェクトに関連するタスクに関するタスク制御ブロック情報およびスタック情報を、前記ディスクのメンテナンスシリンダ領域に書込むステップをさらに含む、請求項9に記載の方法。
  11. 前記第2の記憶媒体は、前記第1の記憶媒体から分離した不揮発性メモリである、請求項7に記載の方法。
JP2010087530A 2009-04-06 2010-04-06 コードの動的再配置方法及びこれを利用した装置 Expired - Fee Related JP5564314B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020090029492A KR101663545B1 (ko) 2009-04-06 2009-04-06 코드의 동적 재배치 방법 및 이를 이용한 디스크 드라이브
KR10-2009-0029492 2009-04-06

Publications (3)

Publication Number Publication Date
JP2010244679A JP2010244679A (ja) 2010-10-28
JP2010244679A5 JP2010244679A5 (ja) 2013-07-04
JP5564314B2 true JP5564314B2 (ja) 2014-07-30

Family

ID=42289788

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010087530A Expired - Fee Related JP5564314B2 (ja) 2009-04-06 2010-04-06 コードの動的再配置方法及びこれを利用した装置

Country Status (4)

Country Link
US (1) US8468321B2 (ja)
EP (1) EP2239660A1 (ja)
JP (1) JP5564314B2 (ja)
KR (1) KR101663545B1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990072A (zh) * 2019-11-08 2020-04-10 杭州智控网络有限公司 价签屏幕多驱动动态加载方法
CN112860444B (zh) * 2021-04-26 2021-08-20 腾讯科技(深圳)有限公司 内存调用信息的确定方法和装置、存储介质及电子设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2776809B2 (ja) * 1987-05-29 1998-07-16 株式会社日立製作所 データ退避方式
US6279108B1 (en) * 1987-06-02 2001-08-21 Seagate Technology Llc Programmable microcontroller architecture for disk drive system
JPH01222335A (ja) * 1988-03-01 1989-09-05 Hitachi Ltd マルチタスク処理方式
KR100322573B1 (ko) * 1998-06-19 2002-03-08 윤종용 주기억장치와 보조기억장치사이의 스와핑 장치및 방법, 그 장치를 채용한 웹비디오 폰
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
KR20000039273A (ko) 1998-12-11 2000-07-05 윤종용 바이오스 코드를 갖는 저장 매체를 구비한 컴퓨터 시스템 및이의 동작 방법
DE10040974A1 (de) * 2000-08-22 2002-03-14 Giesecke & Devrient Gmbh Verfahren zur virtuellen Vergrößerung des Stacks eines tragbaren Datenträgers
FR2817055B1 (fr) 2000-11-22 2003-02-14 Gemplus Card Int Execution d'une application dans un objet electronique portable a faible capacite de memoire
US20020083160A1 (en) 2000-12-21 2002-06-27 Don Middleton Method and apparatus for managing applications and data in a mobile device
US20020128068A1 (en) * 2001-03-09 2002-09-12 Randall Whitten Jon Marcus Method and apparatus for managing data in a gaming system
KR20020078229A (ko) 2001-04-06 2002-10-18 엘지전자 주식회사 임베디드 시스템의 메모리 제어방법
US20040168078A1 (en) * 2002-12-04 2004-08-26 Brodley Carla E. Apparatus, system and method for protecting function return address
JP2004272393A (ja) * 2003-03-05 2004-09-30 Matsushita Electric Ind Co Ltd Cpu内蔵型lsiおよびこれを用いた光ディスク装置並びにlsi装置
JP2005189907A (ja) * 2003-12-24 2005-07-14 Toshiba Corp ディスク装置
JP2005338952A (ja) * 2004-05-24 2005-12-08 Sony Corp プログラム分岐方法
US7398381B2 (en) 2004-12-10 2008-07-08 Intel Corporation Utilizing paging to support dynamic code updates
US20060225060A1 (en) * 2005-01-19 2006-10-05 Khalid Goyan Code swapping in embedded DSP systems
US7613876B2 (en) * 2006-06-08 2009-11-03 Bitmicro Networks, Inc. Hybrid multi-tiered caching storage system
KR100801014B1 (ko) * 2006-08-21 2008-02-04 삼성전자주식회사 Dos 부트 프로그램을 내장한 디스크를 구비하는 하드 디스크 드라이브와 그를 포함하는 컴퓨터 시스템, 상기 하드 디스크 드라이브의 펌웨어 다운로드 방법 및 그를 포함하는 기록 매체
US8719498B2 (en) * 2007-08-24 2014-05-06 Samsung Electronics Co., Ltd. Data storage device and data providing method therein
US8321874B2 (en) * 2008-09-30 2012-11-27 Microsoft Corporation Intelligent context migration for user mode scheduling

Also Published As

Publication number Publication date
EP2239660A1 (en) 2010-10-13
US20100257311A1 (en) 2010-10-07
JP2010244679A (ja) 2010-10-28
KR101663545B1 (ko) 2016-10-07
US8468321B2 (en) 2013-06-18
KR20100111100A (ko) 2010-10-14

Similar Documents

Publication Publication Date Title
US9009433B2 (en) Method and apparatus for relocating data
US9830939B1 (en) Workload balancing for multiple actuators
US7461202B2 (en) Method and apparatus using hard disk drive for enhanced non-volatile caching
KR100801015B1 (ko) 하이브리드 하드 디스크 드라이브와 데이터 저장 방법
US9063659B2 (en) Method and apparatus for data sector cluster-based data recording
KR101854206B1 (ko) 라이트 방법 및 그 방법을 이용하는 저장 장치
KR101874324B1 (ko) 리드 또는 라이트 동작 제어 방법, 그 방법을 이용하는 저장 장치 및 컴퓨터 시스템
KR20130007357A (ko) 주소 사상 정보 관리 방법 이를 적용한 저장 장치
US20120072755A1 (en) Method of controlling operation mode of storage device, and storage device implementing the storage
KR20020011996A (ko) 디스크 드라이브 제어기 회로 및 결함이 있고/있거나원하지 않는 섹터들을 공전하는 방법
KR101674015B1 (ko) 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체
US20130031317A1 (en) Method and apparatus for redirecting data writes
KR20120121742A (ko) 주소 사상 정보 관리 방법, 디스크 드라이브에서의 액세스 방법, 네트워크를 통한 주소 사상 정보 관리 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체
US20080025706A1 (en) Information recording apparatus and control method thereof
KR20120121741A (ko) 데이터 리드 방법 및 이를 적용한 저장 장치
KR20060042133A (ko) 데이터 기억 장치, 그 제어 방법 및 자기 디스크 기억 장치
JP5598984B2 (ja) ライト欠陥復旧方法、データ保存装置及び記録媒体
JP5564314B2 (ja) コードの動的再配置方法及びこれを利用した装置
US9389803B2 (en) Method for controlling interface operation and interface device applying the same
CN110289022B (zh) 盘装置
JP2007034537A (ja) 複合型記憶装置、データ書込方法及びプログラム
KR20110048776A (ko) 기록매체의 디펙 처리 방법과 이를 적용한 데이터 저장 장치 및 저장매체
JP2011076707A (ja) 記録媒体のゾーンレイアウト設定方法、データ記録装置、ディスクドライブ及び記録媒体
JP2014142748A (ja) 記憶装置およびその制御方法
US20150026427A1 (en) Data reassign method and storage device

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20130401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130405

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140521

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140610

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140616

R150 Certificate of patent or registration of utility model

Ref document number: 5564314

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees