JP2008250919A - 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム - Google Patents

情報処理装置、および情報処理方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP2008250919A
JP2008250919A JP2007094752A JP2007094752A JP2008250919A JP 2008250919 A JP2008250919 A JP 2008250919A JP 2007094752 A JP2007094752 A JP 2007094752A JP 2007094752 A JP2007094752 A JP 2007094752A JP 2008250919 A JP2008250919 A JP 2008250919A
Authority
JP
Japan
Prior art keywords
data
recording
write
sector
control unit
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.)
Granted
Application number
JP2007094752A
Other languages
English (en)
Other versions
JP4992515B2 (ja
Inventor
Ryogo Ito
亮吾 伊藤
Hiroshi Shimono
浩 下野
Junichi Yokota
淳一 横田
Tatsuya Hine
龍哉 日根
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2007094752A priority Critical patent/JP4992515B2/ja
Priority to US12/032,037 priority patent/US8065495B2/en
Publication of JP2008250919A publication Critical patent/JP2008250919A/ja
Application granted granted Critical
Publication of JP4992515B2 publication Critical patent/JP4992515B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1879Direct read-after-write methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B2020/1218Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
    • G11B2020/1232Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc sector, i.e. the minimal addressable physical data unit
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1265Control data, system data or management information, i.e. data used to access or process user data
    • G11B2020/1267Address data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1288Formatting by padding empty spaces with dummy data, e.g. writing zeroes or random data when de-icing optical discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • G11B2020/183Testing wherein at least one additional attempt is made to read or write the data when a first attempt is unsuccessful
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】論理セクタと物理セクタのデータ区分に差異がある記録装置における改善されたデータ記録構成を実現する。
【解決手段】アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証し、異なる場合に、メディア対応制御部を介して物理セクタ単位の記録データを取得してメモリに格納し、格納した物理セクタデータの一部の論理セクタデータをアプリケーションから入力するセクタ単位の記録データによって更新し、更新処理後の物理セクタデータをメディア対応制御部に出力するリードモディファイライト(RMW)処理を実行する。
【選択図】図6

Description

本発明は、情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、例えばハードディスクなどを記録媒体としてデータ記録再生処理を行なう構成において、アプリケーションやデバイスドライバの利用するアクセス単位としてのデータ単位と、記録媒体(HDDなど)内部の管理するデータ単位とが異なるシステムにおいて適用される情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。
デジタルビデオカメラやPC、その他の情報処理機器においては、ハードディスクなどのメディア(情報記録媒体)を利用した情報記録や情報再生処理が行なわれる。メディア(情報記録媒体)を利用した情報記録や情報再生処理を実行する場合、アプリケーションが記録データの生成、あるいは再生データの指定を行ない、メディア(情報記録媒体)に対応するデバイスドライバを介してメディア(情報記録媒体)に対する記録データの出力、またはメディア(情報記録媒体)からの再生データの入力を行なう。
例えばアプリケーションやデバイスドライバは、512B(バイト)単位のLBA(Logical Block Addressing)を適用したアクセスを行う。この512B(バイト)のLBAアクセス単位が記録媒体、例えばHDD内部の管理データ単位と一致している場合には問題がないが一致しないシステムにおいて問題が発生することがある。
具体的には、例えばHDD内部のアクセス単位として、N個の論理セクタ(Logical Sector)をひとまとめにした物理セクタ(Physical Sector)を利用するものがある。HDD内部の管理単位を大きくすることで、例えばECC(Error Correction Code)の設定単位を大きくして処理効率を高め、ECCデータの削減により記憶領域の効率的利用が図られるといった効果がある。
このように、上位層(アプリケーションやデバイスドライバ)のデータアクセス単位と、メディア(情報記録媒体)内の制御部のデータアクセス単位が異なり、メディア内のアクセス単位が、上位層のアクセス単位より大きな設定である場合、例えば、上位層からメディアに対してあるデータ記録または再生領域の指定がなされた場合、メディア内部では、指定領域と一括管理されているデータ領域についても、まとめて読み出しや記録処理が実行されることになる。
例えば、アプリケーションが、メディアに記録されたデータを読み出して更新する場合、アプリケーション側の更新処理は論理セクタ単位で実行するが、メディア内部(例えばHDD内部)では一旦、更新予定のセクタデータを含むメディアのアクセス単位、すなわち物理セクタ単位でデータが読み取られてメディア内部のメモリに一時的に保持され、アプリケーションからデバイスドライバ経由で入力した更新データ部分のみが更新されて再記録されることになる。
このような処理において、メディア内部で物理セクタの読み取りエラーが発生した場合を想定する。更新された論理セクタのデータはアプリケーションによって更新されたデータに置き換えられて例えばメディアの非常用データ記録領域であるスペア領域に記録される。しかし、更新された論理セクタと同じ物理セクタに含まれる非更新セクタデータについては、メディア内部で発生した読み取りエラーによって、メディア内部のメモリに一時的に保持されたダミーデータがそのままスペア領域に記録されてしまうことになり、その非更新データは消失したと同様の事態が発生してしまう。この場合、上位のアプリケーションやデバイスドライバは、データ消失について全く検知できない状態となる。
なお、半導体メモリなどでは、ガベッジコレクション、すなわち、同一の消去ブロック内で、書き込み対象となるクラスタより後ろに記録済みのクラスタがある場合にメモリ領域を確保する処理を行なわれるが、例えば特許文献1(特開2003−308240)では、このようなカベッジコレクションを頻繁に発生させないように各種情報をメディア上に配置する工夫について開示している。しかし、例えばHDDなどの記録メディアでは、FATなどのファイルシステムに関する情報のレイアウトをコントロールすることは現実的に限界があり困難である。
特開2003−308240号公報
本発明は、上述した状況に鑑みてなされたものであり、例えばハードディスクなどを利用したデータ記録再生処理を行なうシステムにおいて、アプリケーションやデバイスドライバの利用するアクセス単位と記録媒体(HDDなど)内部の管理単位との差異がある場合でも、データ消失の発生を上位層において検知し、不測のデータ消失の防止を実現する情報処理装置、および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
記録メディアに対するデータ記録処理を実行する情報処理装置であり、
アプリケーションから入力する記録メディアに対する記録データをメディア対応制御部に出力するアクセス制御部を有し、
前記アクセス制御部は、
前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証し、異なる場合に、前記メディア対応制御部を介して物理セクタ単位の記録データを取得してメモリに格納し、格納した物理セクタデータの一部の論理セクタデータをアプリケーションから入力するセクタ単位の記録データによって更新し、更新処理後の物理セクタデータを前記メディア対応制御部に出力するリードモディファイライト(RMW)処理を実行する構成であることを特徴とする情報処理装置にある。
さらに、本発明の情報処理装置の一実施態様において、前記アクセス制御部は、1物理セクタに含まれる論理セクタ数[N]に基づいて、前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証する処理を実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記アクセス制御部は、さらに、論理セクタと物理セクタとの対応関係の位相変化が発生する位相変換点[X]に基づいて、前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証する処理を実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記アクセス制御部は、前記リードモディファイライト(RMW)処理の実行において、前記アプリケーションから論理セクタ単位で入力する記録データを格納する第1メモリ領域から、リードモディファイライト(RMW)用メモリ領域に対して、前記リードモディファイライト(RMW)処理対象となる論理セクタデータのコピー処理を実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記アクセス制御部は、前記アプリケーションから入力する記録データの記録処理に際して、記録データに対応する管理情報リストとして、記録データに対応する論理ブロックアドレス(LBA)、記録データのセクタ数であるセクタカウント、論理セクタナンバのオフセット情報であるオフセット情報を記録した書き込みリストを生成し、書き込みリストを参照した記録処理を行なう構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記アクセス制御部は、さらに、論理セクタと物理セクタとの対応関係の位相変化が発生する位相変換点[X]が存在し、前記アプリケーションから論理セクタ単位で入力する記録データが、前記位相変換点[X]の前後に渡るデータである場合、位相変換点[X]前の記録データに対する第1書き込みリストと、位相変換点[X]後の記録データに対する第2書き込みリストを生成する処理を実行する構成であることを特徴とする。
さらに、本発明の第2の側面は、
情報処理装置において、記録メディアに対するデータ記録処理を実行する情報処理方法であり、
アクセス制御部が、アプリケーションから入力する記録メディアに対する記録データをメディア対応制御部に出力するアクセス制御ステップを実行し、
前記アクセス制御ステップは、
前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かの検証を行なう検証ステップと、
前記検証ステップにおいて、異なるとの検証結果が得られた場合、前記メディア対応制御部を介して物理セクタ単位の記録データを取得してメモリに格納し、格納した物理セクタデータの一部の論理セクタデータをアプリケーションから入力するセクタ単位の記録データによって更新し、更新処理後の物理セクタデータを前記メディア対応制御部に出力するリードモディファイライト(RMW)処理を実行するリードモディファイライト(RMW)処理ステップと、
を実行するステップであることを特徴とする情報処理方法にある。
さらに、本発明の情報処理方法の一実施態様において、前記アクセス制御ステップは、1物理セクタに含まれる論理セクタ数[N]に基づいて、前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証する処理を実行することを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記アクセス制御ステップは、さらに、論理セクタと物理セクタとの対応関係の位相変化が発生する位相変換点[X]に基づいて、前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証する処理を実行することを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記アクセス制御ステップは、前記リードモディファイライト(RMW)処理の実行において、前記アプリケーションから論理セクタ単位で入力する記録データを格納する第1メモリ領域から、リードモディファイライト(RMW)用メモリ領域に対して、前記リードモディファイライト(RMW)処理対象となる論理セクタデータのコピー処理を実行することを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記アクセス制御ステップは、前記アプリケーションから入力する記録データの記録処理に際して、記録データに対応する管理情報リストとして、記録データに対応する論理ブロックアドレス(LBA)、記録データのセクタ数であるセクタカウント、論理セクタナンバのオフセット情報であるオフセット情報を記録した書き込みリストを生成し、書き込みリストを参照した記録処理を行なうことを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記アクセス制御ステップは、さらに、論理セクタと物理セクタとの対応関係の位相変化が発生する位相変換点[X]が存在し、前記アプリケーションから論理セクタ単位で入力する記録データが、前記位相変換点[X]の前後に渡るデータである場合、位相変換点[X]前の記録データに対する第1書き込みリストと、位相変換点[X]後の記録データに対する第2書き込みリストを生成する処理を実行することを特徴とする。
さらに、本発明の第3の側面は、
情報処理装置において、記録メディアに対するデータ記録処理を実行させるコンピュータ・プログラムであり、
アクセス制御部に、アプリケーションから入力する記録メディアに対する記録データをメディア対応制御部に出力させるアクセス制御ステップを実行し、
前記アクセス制御ステップは、
前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かの検証を行なう検証ステップと、
前記検証ステップにおいて、異なるとの検証結果が得られた場合、前記メディア対応制御部を介して物理セクタ単位の記録データを取得してメモリに格納し、格納した物理セクタデータの一部の論理セクタデータをアプリケーションから入力するセクタ単位の記録データによって更新し、更新処理後の物理セクタデータを前記メディア対応制御部に出力するリードモディファイライト(RMW)処理を実行するリードモディファイライト(RMW)処理ステップと、
を含むステップであることを特徴とするコンピュータ・プログラムにある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムにおいてコンピュータ可読な形式で提供する記憶媒体などによって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の一実施例構成によれば、記録メディア(情報記録媒体)に対するデータ記録処理を行なう情報処理装置のアクセス制御部において、アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証し、異なる場合に、メディア対応制御部を介して物理セクタ単位の記録データを取得してメモリに格納し、格納した物理セクタデータの一部の論理セクタデータをアプリケーションから入力するセクタ単位の記録データによって更新し、更新処理後の物理セクタデータをメディア対応制御部に出力するリードモディファイライト(RMW)処理を実行する構成としたので、デバイスドライバとメディア対応制御部間では、すべて物理セクタ単位のデータの入出力が実現され、デバイスドライバ側でデータ更新を伴わない論理セクタデータについての確認を行なうことができ、データ消失などの不測の事態の発生を上位層において把握可能となる。
以下、図面を参照しながら、本発明の情報処理装置、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。説明は、以下の各項目に従って行なう。
1.上位層(アプリケーションやデバイスドライバ)のアクセス単位と、メディア(情報記録媒体)のアクセス単位の差に基づく問題点
2.本発明に従ったメディア(情報記録媒体)のアクセス処理の概要
3.情報処理装置の構成例および処理例
4.情報処理装置の実行する処理のシーケンス詳細
5.情報処理装置のハードウェア構成例
[1.上位層(アプリケーションやデバイスドライバ)のアクセス単位と、メディア(情報記録媒体)のアクセス単位の差に基づく問題点]
まず、上位層(アプリケーションやデバイスドライバ)のアクセス単位と、メディア(情報記録媒体)のアクセス単位の差に基づく問題点について、図1〜図3を参照して説明する。
以下の実施例では、
上位層(アプリケーションやデバイスドライバ)からのメディアのアクセスが、512B(バイト)単位のLBA(Logical Blovk Addressing)指定のアクセス、すなわち論理セクタ(Logical Sector)単位で実行され、
HDD等のメディア(情報記録媒体)内部のアクセス単位が、上記論理セクタN個分の物理セクタ(Phisical Sector)単位で実行される例について説明する。なお、Nは2以上である。
図1に、デバイスドライバのアクセス単位である論理セクタ(LBA)と、メディア、すなわちHDDのアクセス単位である物理セクタとの対応例を示す。図1には(a)論理セクタ、(b)物理セクタを示している。本例では、物理セクタは2つの論理セクタからなる。すなわち1物理セクタに含まれる論理セクタ数:N=2である。
Nは、
N=(物理セクタ)÷(論理セクタ)
によって算出される値であり、「HDD内部で実際にひとまとめとして管理される論理セクタ数」を意味する。
また、図1に示す論理セクタ(LBA=60)の隣が1つ空いて(X)が記入され、その後に論理セクタ(LBA=61)が設定されている。このように、論理セクタと物理セクタの対応関係が変化するポイントが設定される場合がある。すなわち、「位相が変化するLBA」であり、この位相変化点の論理セクタ(LBA)を[X]とする。図1に示す例ではX=61となる。
LBA=0〜X−1の領域では、
物理セクタナンバ=論理セクタナンバ(LBA)×M÷N(M≧0)
という関係が成立するが、
LBA=X〜MAXの領域では、その関係が成立せず、
例えば、図に示すように1物理セクタに含まれる論理セクタ数:N=2の場合、
物理セクタナンバ=(論理セクタナンバ(LBA)+1)×M÷N(M≧0)
という関係になる。
図1に示している例は、N=2であり、例えば、LBA=2に格納されている情報とLBA=3に格納されている情報がHDD内部ではひとまとめに管理され、物理セクタナンバ=1の情報として管理される。データの記録または再生処理において、HDD内部では、物理セクタ単位でメディアからのデータ読み取りまたはメディアに対するデータ書き込みが実行される。
また、図1は、
位相変化点:X=61
とした例であり、LBA=0〜60までの領域は、LBAの偶数アドレス(0,2,4,6・・・)が、物理セクタの先頭と揃っているが、LBA=61以降の領域は、LBAの奇数アドレス(61,63,65・・・)が、物理セクタの先頭と揃うことになる。
図2および、図3を参照して、
上位層(アプリケーションやデバイスドライバ)のアクセス単位=(論理セクタ(LBA))と、
メディア(情報記録媒体)のアクセス単位=物理セクタ、
これらが異なる場合のアクセス処理における問題点について説明する。
図2には、図1と同様、
1物理セクタに含まれる論理セクタ数:N=2
位相変換点:X=61
このXとNを有するセクタ対応の一部を示している。
デバイスドライバが、HDDに対して、
書き込み開始LBA=77、
書き込みセクタ数=1、
と指定して書き込み要求を発行した場合、HDD内部では、図2に示す通り、以下の流れでハードディスクに対するデータ書き込み処理が実行される。
(ステップS11)
物理セクタナンバ=39のLBA=77〜78の内容をHDD内部バッファに読み出す。
(ステップS12)
HDD内部バッファでLBA=77のデータを更新、この更新データは上位のデバイスドライバから供給される。
(ステップS13)
更新後のLBA=77〜78の内容を、物理セクタナンバ=39の内容として書き込む
このような処理によって、更新データの記録が実行される。この処理から理解されるようにLBA=78のデータは、単にHDD内部でHDD内部バッファに読みだされ、再書き込みがなされるのみとなる。
図3を参照して、図2の処理例における問題点について説明する。図3は、図2の処理例において、HDD内部での処理であるステップS11のHDD内部バッファへのデータ読み出し処理においてエラー発生した場合の処理である。HDD内部では、図3に示す通り、以下の流れでハードディスクに対するデータ書き込み処理が実行される。
(ステップS21)
物理セクタナンバ=39のLBA=77〜78の内容をHDD内部バッファに読み出す。この時点で、読み出し処理に失敗したとする。
(ステップS22)
HDD内部バッファには、読み出しエラーのため、物理セクタナンバ=39のLBA=77〜78に対応するダミーデータが設定され、このダミーデータに対して、LBA=77のデータを更新する。この更新データは上位のデバイスドライバから供給される。
(ステップS13)
更新後のLBA=77〜78の内容を、物理セクタナンバ=39の内容として、読み出しエラーの発生時に利用される領域であるスペア領域(交替セクタ)にデータが書き込まれる。
上記シーケンスでデータ更新がなされると、スペア領域(交替セクタ)に書き込まれるデータは、
LBA=77:デバイスドライバから提供された更新データ、
LBA=78:HDD内部の設定したダミーデータ
となる。
すなわち、更新対象のLBA以外のLBA=78のデータは消失してしまうという事態が発生することになる。このような状態が発生しても上位のアプリケーションやデバイスドライバは、LBA=78のデータが消失したことを検出できず、正常な記録がなされたものと判断してしまう。
[2.本発明に従ったメディア(情報記録媒体)のアクセス処理]
本発明の情報処理装置では、図3を参照して説明したような事態の発生を防止する構成を提案する。以下、本発明の処理例について説明する。
本発明の情報処理装置は、図3のような状況に陥ることを回避するため、上位層、例えばアプリケーションまたはデバイスドライバにおいて、少なくとも、1物理セクタに含まれる論理セクタ数:Nを意識して書き込み要求を発行する。なお、位相変化点を有するシステムでは、位相変化点:Xについても考慮した処理を行なうことが好ましい。
デバイスドライバによって実行されるメディア、例えばHDDに対する書き込み要求の発行処理は、少なくとも1物理セクタに含まれる論理セクタ数:Nを意識した書き込み要求の発行処理として実行される。具体的には、記録メディアの内部バッファに対するメディアからのデータ読み出し、更新、再書き込み処理を必要とする処理が発生するか否かを判定して、書き込み要求を行なう。
記録メディアの内部バッファに対するメディアからのデータ読み出し、更新、再書き込み処理は、図2、図3のフローに示す処理であり、リードモディファイライト(RMW:Read−Modify−Write)処理と呼ばれる。このリードモディファイライト処理が発生する場合、デバイスドライバ自身のアクセス可能なメモリ領域に、記録メディアの内部バッファに対するメディアからのデータ読み出しデータを書き込み、デバイスドライバのアクセス可能なメモリ領域において物理セクタ単位で、データ読み出し、更新、再書き込み処理を実行する。
具体的な処理例について、図4以下を参照して説明する。リードモディファイライト(RMW:Read−Modify−Write)処理は、デバイスドライバのデータアクセス開始位置または終了位置の境界が、記録メディア(HDDなど)のアクセス単位である物理セクタの境界と一致しない場合に実行する。すなわち、この場合には、デバイスドライバ自身のアクセス可能なメモリ領域(デバイスドライバ対応のバッファ領域)に、記録メディアの内部バッファに対するメディアからのデータ読み出しデータを書き込み、デバイスドライバのアクセス可能なメモリ領域において物理セクタ単位で、データ読み出し、更新、再書き込み処理を実行する。
図4(A)〜(C)は、デバイスドライバのデータアクセス態様に応じたリードモディファイライト(RMW:Read−Modify−Write)処理の要否について説明する図である。
図4(A)は、デバイスドライバのデータアクセス開始位置と、終了位置の2つの境界の両者とも、記録メディア(HDDなど)のアクセス単位である物理セクタの境界と一致する場合の例であり、この場合は、リードモディファイライト(RMW:Read−Modify−Write)処理は不要となる。
図4(B)は、デバイスドライバのデータアクセス開始位置と、終了位置の2つの境界のいずれかが、記録メディア(HDDなど)のアクセス単位である物理セクタの境界と一致しない場合の例であり、この場合は、リードモディファイライト(RMW:Read−Modify−Write)処理が必要となる。
図4(B−a)は、デバイスドライバのデータアクセス開始位置が、記録メディア(HDDなど)のアクセス単位である物理セクタの境界と一致しない場合の例であり、この場合は、データアクセス開始位置の論理セクタナンバの前の論理セクタナンバを含む1つの物理セクタを処理対象としたリードモディファイライト(RMW:Read−Modify−Write)処理が必要となる。
図4(B−b)は、デバイスドライバのデータアクセス終了位置が、記録メディア(HDDなど)のアクセス単位である物理セクタの境界と一致しない場合の例であり、この場合は、データアクセス終了位置の論理セクタナンバの後の論理セクタナンバを含む1つの物理セクタを処理対象としたリードモディファイライト(RMW:Read−Modify−Write)処理が必要となる。
図4(C)は、デバイスドライバのデータアクセス開始位置と、終了位置の2つの境界のいずれもが、記録メディア(HDDなど)のアクセス単位である物理セクタの境界と一致しない場合の例であり、この場合は、アクセス開始位置では、データアクセス開始位置の論理セクタナンバの前の論理セクタナンバを含む1つの物理セクタ、アクセス終了位置では、データアクセス終了位置の論理セクタナンバの後の論理セクタナンバを含む1つの物理セクタを処理対象としたリードモディファイライト(RMW:Read−Modify−Write)処理が必要となる。
図5は、図4(A)〜(C)の各書き込み態様に応じたリードモディファイライト処理の要否をデータアクセス開始位置と終了位置に区分して示したテーブルである。データアクセスを実行するデバイスドライバ(アプリケーションでもよい)は、データアクセスを実行する場合のアドレス情報(LBA)に基づいて、図4、図5に示す(A),(B−a),(B−b),(C)のいずれに対応するかを判定して、RMW(リートモディファイライト)の要否を判定して、必要な場合はRMW(リートモディファイライト)を実行する。
デバイスドライバにおいて、アドレス情報(LBA)に基づくRMW要否判定処理は、以下のようにして実行される。
まず、書き込み開始LBAと書き込みセクタ数がアプリケーションにおいて決定される。さらに、デバイスドライバは、
書き込み終了LBA=書き込み開始LBA+書き込みセクタ数−1
として書き込み終了LBAを算出する。
さらに、
1物理セクタに含まれる論理セクタ数:N
位相変換点:X
これらのパラメータを入力して、以下のアルゴリズムに従ったRMW要否判定処理を実行する。
if(書き込み開始LBA<X){
判別基準となるLBA=0;
}else{
判別基準となるLBA=X;

if(書き込み開始LBA−判別基準LBA)%N){
データ先頭に対して、RMW(リードモディファイライト)が必要;
}else{
データ先頭に対して、RMW(リードモディファイライト)は不要;

if(書き込み終了LBA−判別基準LBA)%N){
データ終端に対して、RMW(リードモディファイライト)が必要;
}else{
データ終端に対して、RMW(リードモディファイライト)は不要;
このように、デバイスドライバは、
書き込み開始LBA、
書き込みセクタ数、
1物理セクタに含まれる論理セクタ数:N
位相変換点:X
これらのデータに基づいて、
書き込み終了LBA=書き込み開始LBA+書き込みセクタ数−1
として書き込み終了LBAを算出し、上記アルゴリズムに従ったRMW要否判定処理を実行する。この判定処理によってRMW(リードモディファイライト)が必要とされた場合は、デバイスドライバのアクセス可能なメモリ(バッファ)に物理セクタ単位でメディアからのデータ読み取り、更新、再書き込み処理を伴うリードモディファイライト(RMW)処理を実行する。
図4、図5に示す(A),(B−a),(B−b),(C)の各ケースにおける具体的な処理例について説明する。図4(A)は、デバイスドライバのデータアクセス開始位置と、終了位置の2つの境界の両者とも、記録メディア(HDDなど)のアクセス単位である物理セクタの境界と一致する場合の例であり、この場合は、リードモディファイライト(RMW:Read−Modify−Write)処理は不要となる。
図4(B)は、デバイスドライバのデータアクセス開始位置と、終了位置の2つの境界のいずれかが、記録メディア(HDDなど)のアクセス単位である物理セクタの境界と一致しない場合の例であり、この場合は、リードモディファイライト(RMW:Read−Modify−Write)処理が必要となる。
図4(B−a)は、デバイスドライバのデータアクセス開始位置が、記録メディア(HDDなど)のアクセス単位である物理セクタの境界と一致しない場合の例であり、この場合は、データアクセス開始位置の論理セクタナンバの前の論理セクタナンバを含む1つの物理セクタを処理対象としたリードモディファイライト(RMW:Read−Modify−Write)処理が必要となる。
この(B−a)のケースにおけるリードモディファイライト処理を含むデータ記録処理について図6、図7を参照して説明する。図6(1)は、図4(B−a)と同様の図であり、データアクセス開始位置に相当する論理セクタナンバの前の論理セクタナンバを含む1つの物理セクタを処理対象としたリードモディファイライト(RMW:Read−Modify−Write)処理が必要となることを示している。
図6(2)は、このリードモディファイライト(RMW)を実行する際のデバイスドライバにおけるメモリ各のデータコピー処理を説明する図である。デバイスドライバは、データ記録等の処理に際して記録データをアプリケーションから受領する。この受領データがデバイスドライバのアクセス可能な第1のメモリ領域に記録される。このデータが図6(2)の(M1)第1メモリ領域に示すデータである。このデータは、図6(1)に示すデータと同じである。デバイスドライバはこの受領データから、リードモディファイライト(RMW:Read−Modify−Write)処理が必要となるデータを選択して(M2)RMW用メモリ(バッファ)に記録する。このRMW用メモリ(バッファ)には、情報記録媒体(HDD)の制御部から受領した物理セクタ単位のデータが先行して記録され、その後、この物理セクタに対応する論理セクタデータが、(M1)第1メモリ領域から選択されてメモリ間コピーを実行し、情報記録媒体(HDD)の制御部から受領した物理セクタ単位のデータの少なくとも一部のセクタデータが上書されて更新される。この更新データを含む物理セクタ単位のデータが情報記録媒体(HDD)に出力される。
デバイスドライバは、このようにリードモディファイライト(RMW:Read−Modify−Write)処理の対象とされるデータ図6(1)(2)に示す[D1]についてはこのようなRMW用メモリを利用した処理を実行し、その他のデータ、すなわち、RMW処理対象とならないデータ[D2]は、RMW用メモリを経由せず、(M1)第1メモリ領域から、直接、情報記録媒体(HDD)に出力する。
デバイスドライバにおける処理シーケンスについて図7を参照して説明する。まず、ステップS51において、デバイスドライバは、リードモディファイライト(RMW:Read−Modify−Write)処理の読み出し用の論理セクタアドレス(LBA)を決定する。このLBAは、図6(2)の(M2)RMW用メモリ(バッファ)に示すLBA1に相当する。すなわち物理セクタ単位の開始位置に対応する論理セクタアドレス(LBA)を決定する。ステップS52において、決定したLBA(LBA1)から、Nセクタ分のデータを記録メディアから読み出す。Nは、1つの物理セクタに含まれる論理セクタ数である。例えば図6に示す例ではN=2であり、2つの論理セクタ分のデータ、すなわち1つの物理セクタ分のデータがメデイアから読み出され、(M2)RMW用メモリ(バッファ)に記録される。
次に、ステップS53において、(M2)RMW用メモリ(バッファ)に記録された1つの物理セクタデータに対して、アプリケーションから受領したデータに基づく更新処理を実行する。この処理は、図6(2)に示すメモリ間コピー処理として実行される。次に、ステップS54において、更新されたRMW用バッファの内容をメデイアに記録する。その後、ステップS55においてRMW処理対象以外のデータ、すなわち図6に示すデータ[D2]をメディアに記録する。このような処理によってデータ記録処理が行なわれる。
次に、図4(B−b)のケースにおけるリードモディファイライト処理を含むデータ記録処理について図8、図9を参照して説明する。図8(1)は、図4(B−b)と同様の図であり、データアクセス終了位置に相当する論理セクタナンバの後の論理セクタナンバを含む1つの物理セクタを処理対象としたリードモディファイライト(RMW:Read−Modify−Write)処理が必要となることを示している。
図8(2)は、このリードモディファイライト(RMW)を実行する際のデバイスドライバにおけるメモリ各のデータコピー処理を説明する図である。デバイスドライバは、データ記録等の処理に際して記録データをアプリケーションから受領する。この受領データがデバイスドライバのアクセス可能な第1のメモリ領域に記録される。このデータが図8(2)の(M1)第1メモリ領域に示すデータである。このデータは、図8(1)に示すデータと同じである。デバイスドライバはこの受領データから、リードモディファイライト(RMW:Read−Modify−Write)処理が必要となるデータを選択して(M2)RMW用メモリ(バッファ)に記録する。このRMW用メモリ(バッファ)には、情報記録媒体(HDD)の制御部から受領した物理セクタ単位のデータが先行して記録され、その後、この物理セクタに対応する論理セクタデータが、(M1)第1メモリ領域から選択されてメモリ間コピーを実行し、情報記録媒体(HDD)の制御部から受領した物理セクタ単位のデータの少なくとも一部のセクタデータが上書されて更新される。この更新データを含む物理セクタ単位のデータが情報記録媒体(HDD)に出力される。
デバイスドライバは、このようにリードモディファイライト(RMW:Read−Modify−Write)処理の対象とされるデータ図8(1)(2)に示す[D1]についてはこのようなRMW用メモリを利用した処理を実行し、その他のデータ、すなわち、RMW処理対象とならないデータ[D2]は、RMW用メモリを経由せず、(M1)第1メモリ領域から、直接、情報記録媒体(HDD)に出力する。
デバイスドライバにおける処理シーケンスについて図9を参照して説明する。まず、ステップS71において、デバイスドライバは、リードモディファイライト(RMW:Read−Modify−Write)処理の対象とならないデータ、すなわち図8に示すデータ[D2]をメディアに記録する。次に、ステップS72において、リードモディファイライト(RMW:Read−Modify−Write)処理の読み出し用の論理セクタアドレス(LBA)を決定する。このLBAは、図8(2)の(M2)RMW用メモリ(バッファ)に示すLBA1に相当する。すなわち物理セクタ単位の開始位置に対応する論理セクタアドレス(LBA)を決定する。ステップS73において、決定したLBA(LBA1)から、Nセクタ分のデータを記録メディアから読み出す。Nは、1つの物理セクタに含まれる論理セクタ数である。例えば図8に示す例ではN=2であり、2つの論理セクタ分のデータ、すなわち1つの物理セクタ分のデータがメデイアから読み出され、(M2)RMW用メモリ(バッファ)に記録される。
次に、ステップS74において、(M2)RMW用メモリ(バッファ)に記録された1つの物理セクタデータに対して、アプリケーションから受領したデータに基づく更新処理を実行する。この処理は、図8(2)に示すメモリ間コピー処理として実行される。次に、ステップS54において、更新されたRMW用バッファの内容をメデイアに記録する。このような処理によってデータ記録処理が行なわれる。
図4、図5に示す(C)のケースは、図6、図7を参照して説明したデータ記録開始位置におけるリードモディファイライト(RMW:Read−Modify−Write)処理と、データ記録終了位置におけるリードモディファイライト(RMW:Read−Modify−Write)処理の、両処理とも実行することになる。
[3.情報処理装置の構成例および処理例]
次に、本発明の一実施例に係る情報処理装置の構成例および処理例について説明する。本発明の情報処理装置は、情報記録媒体に対するデータ記録、または情報記録媒体からのデータ再生処理を行なう装置である。情報処理装置は例えばデジタルビデオカメラ、PCなどの装置である。
情報処理装置の構成について、図10、図11を参照して説明する。図10は、ハードディスク等の情報記録媒体284をアクセスしてデータ記録あるいはデータ読み取りを実行する情報処理装置の構成を処理階層別に示している。図10に示すように、ハードディスク等の情報記録媒体284に対してデータを記録したり、記録媒体に記録されているデータを読み出して利用したりする場合には、ユーザからの処理要求を受け付け、またユーザインタフェースを提供するなどのユーザとの窓口として最上層にアプリケーションプログラム281が存在する。その下層に情報記録媒体284上のファイルを管理するためのファイルシステム(ファイル管理プログラム)282とファイルシステムからの情報に基づいて情報記録媒体284を制御するデバイスドライバ283とが存在する。
情報記録媒体284に対してデータを記録、または情報記録媒体284からデータを再生する場合には、例えばアプリケーションプログラム281を介する要求がファイルシステム282、デバイスドライバ283に伝えられ、ファイルシステム282、デバイスドライバ283の機能によりデータの書き込み、再生が実行される。従来と同様の処理によって、ファイルシステム⇔デバイスドライバ⇔記録媒体(ハードディスク)といった構成で処理は行なわれる。
データ記録を行なう場合に、複数の異なるファイルを継続記録ファイルとして適用する場合は、ファイルシステムによって適用されるファイルアロケーションテーブル(FAT)に対する特殊コードの記録を行なう。また、データ再生を実行する場合に複数の異なるファイルを継続記録ファイルとして適用する場合は、FATからの特殊コードの検出を条件として、ファイルの切り替えを実行する。
図10に示すシステム構成中のファイルシステムをさらに詳細に示した構成図を図11に示す。図11に示す構成は、図10と同様、情報記録媒体に対するデータ記録および情報記録媒体からのデータ取得、再生処理を実行する情報処理装置のシステム構成を示す図であり、ハードディスクやフラッシュメモリ等の情報記録媒体361,362に対してデータを記録したり、記録媒体に記録されているデータを読み出して利用する処理を実行する情報処理装置のシステム構成を示している。
図11にも、図10と同様、アプリケーション300の下層に情報記録媒体361,362上のファイルを管理するためのファイルシステム(ファイル管理プログラム)310とファイルシステム310からの情報に基づいて情報記録媒体361,362を制御するデバイスドライバ350とを示している。図11に示す例では2つの情報記録媒体361,362を示している。例えば、図1他を参照して説明した論理セクタ単位と物理セクタ単位が一致しないハードディスクと、その他のフラッシュメモリなどの記録媒体である。デバイスドライバ350は、記録デバイスである情報記録媒体361,362に対応するデバイスドライバ351,352を有する。
アプリケーション300、ファイルシステム310、デバイスドライバ350は、各構成部の処理に必要なプログラムやパラメータの格納、データ処理におけるワーク領域としてメモリ370をアクセスして利用する。例えば、図6、図8を参照して説明した
(M1)第1メモリ
(M2)RMW用メモリ(バッファ)
これらのメモリ領域は、メモリ370に設定される。
アプリケーション300には、情報記録媒体361,362に対するデータ記録処理を実行する記録アプリケーション301、情報記録媒体361,362に記録されたデータの再生処理を実行する再生アプリケーション302、接続機器による処理を実行するUSB接続アプリケーション303など、処理に応じたアプリケーションが含まれる。ユーザはこれらのアプリケーションを選択して様々な処理を実行することになる。
ファイルシステム310は、記録媒体の種別やフォーマット情報などを含む各記憶媒体対応のマウントドライブ情報311,312を保持し、マウントドライブ情報311,312に従って、ハードディスク等の情報記録媒体を適用したデータ記録、再生制御を実行する。ファイルシステム310は、データ記録再生制御を実行する記録再生制御部320と、メディア制御を実行するメディア制御部330を有する。記録再生制御部320の実行する処理は、メディア非依存型のメディア共通の処理であり、メディア制御部330の実行する処理は、メディア依存型の処理である。
記録再生制御部320は、ファイルアロケーションテーブル(FAT)の記録、参照処理を実行するFAT制御部321と、データ記録位置情報としてのクラスタの決定処理、クラスタ番号に基づく再生位置決定処理を実行するクラスタ制御部322と、ファイルに対応する情報を格納したディレクトリエントリ(図3参照)を生成、または参照する処理を実行するディレクトリエントリ制御部323を有する。ディレクトリエントリ制御部323は、アプリケーション300からの記憶手段やファイル指定情報に基づいて特定のファイルに対応するディレクトリエントリを取得し、例えばファイル再生の場合は、ディレクトリエントリから先頭クラスタ番号を取得し、クラスタ制御部322に提供する。
メディア制御部330は、位置算出部331を有し、クラスタ制御部322の決定するクラスタ情報やFATのクラスタ連鎖情報に基づいて、デバイスドライバ350を制御し、クラスタ番号によってデータ記録、またはデータ再生を実行するディスクの位置を決定し、決定した位置情報に従って、デバイスドライバ350を介してデータ記録、または当該ディスク位置からのデータ再生を実行する。
ファイルシステム310内のアクセス制御部340は、アプリケーションに応じた記憶手段のアクセス制御を行う。アクセス制御部340は、メディア非依存型のメディア共通の処理を実行するメディア制御部330と、メディア依存型の処理を実行するメディア制御部330の双方において、それぞれの処理に応じたアクセス制御を実行する。デバイスドライバ351,352内にもそれぞれアクセス制御部353,354があり、これらのアクセス制御部の少なくともいずれかの制御部の制御の下で先に説明したリードモディファイライト(RMW)を伴うアクセス制御処理を実行する。
なお、記録メディアである情報記録媒体361,362内部には、メディアに対するデータの記録処理や再生処理を実行するメディア対応制御部363,364が構成され、例えばハードディスクによって構成される情報記録媒体361のメディア対応制御部363は物理セクタ単位でのハードディスクに対するデータアクセスを実行する。
[4.情報処理装置の実行する処理のシーケンス詳細]
次に、図12以下のフローチャートを参照して本発明の情報処理装置において実行する各種の処理シーケンスについて説明する。まず、図12、図13を参照して、ファイルシステムの起動処理と、デバイスドライバの起動処理シーケンスについて説明する。
起動処理は、情報処理装置の起動時に実行される処理である。まず、図12を参照して、ファイルシステムの起動処理について説明する。ステップS101において初期化処理1として、例えば装着されたメディアの種類の判別、判別したメディアのフォーマット情報の取得処理が実行される。ステップS102において、不揮発性メモリに予め記録されているアクセス制御情報をファイルシステムのアクセス可能なメモリ領域(例えば図11に示すRAMの一部)に保持する。
不揮発性メモリに予め記録されているアクセス制御情報は、図に示すように、先に図1他を参照して説明した
位相変換点:X、
1物理セクタに含まれる論理セクタ数:N、
これらの情報である。次にステップS103において、初期化処理2として、上位アプリケーションからのコマンド入力待機状態への最終的な処理が実行される。この後、アプリケーションからのコマンドが入力され、入力に従った処理が実行可能となる。
次に、図13を参照してデバイスドライバの起動処理について説明する。ステップS121において初期化処理1として、例えば装着されたメディアの種類の判別、判別したメディアのフォーマット情報の取得処理が実行される。ステップS122において、ファイルシステムより受け取ったアクセス制御情報に含まれる、
1物理セクタに含まれる論理セクタ数:N、
このNの値に基づいてRMW用バッファを確保し、さらに、
位相変換点:X、
1物理セクタに含まれる論理セクタ数:N、
これらのN,Xの値をデバイスドライバのアクセス可能なメモリ領域(例えば図11に示すRAMの一部)に保持する。
次にステップS123において、初期化処理2として、上位アプリケーションからのコマンド入力待機状態への最終的な処理が実行される。この後、アプリケーションからのコマンドが入力され、入力に従った処理が実行可能となる。
次に、図14以下を参照してデバイスドライバの実行するリードモディファイライト(RMW:Read−Modify−Write)処理等の詳細シーケンスについて説明する。
図14は、例えばデバイスドライバのアクセス制御部の制御の下に実行されるリードモディファイライト(RMW:Read−Modify−Write)処理の実行を含むデータ書き込みにおける全体処理シーケンスを示すフローチャートである。図14に含まれる各処理の詳細シーケンスは図15以下に示している。すなわち、
図14のステップS201の書き込みリスト(Writeリスト)作成処理は、図15のフローチャート、
図14のステップS205の端数書き込み処理Aは、図16のフローチャート、
図14のステップS207の非端数書き込み処理は、図17のフローチャート、
図14のステップS209の端数書き込み処理Bは、図18のフローチャート、
である。
図14のフローに従って、各処理ステップについて説明する。まず、ステップS201において、デバイスドライバは、書き込みリスト(Writeリスト)を生成する。書き込みリストは、情報記録媒体に対する記録データに対応して設定される情報リストであり、例えばアプリケーションから受領する書き込み開始LBAと書き込みセクタ数などに基づいて生成する情報から構成されるリストである。なお、デバイスドライバは、図6、図8を参照して説明したように、アプリケーションから受領した書き込みデータを格納する(M1)第1メモリ領域と、物理セクタ単位のデータが記録可能な(M2)RMW用メモリを利用可能である。
ステップS201の書き込みリスト(Writeリスト)生成処理の詳細シーケンスについて図15に示すフローチャートを参照して説明する。デバイスドライバのアクセス制御部は、アプリケーションから入力する記録データの記録処理に際して、記録データに対応する管理情報リストとして、記録データに対応する論理ブロックアドレス(LBA)、記録データのセクタ数であるセクタカウント、論理セクタナンバのオフセット情報であるオフセット情報を記録した書き込みリストを生成し、書き込みリストを参照した記録処理を行なう。
まずデバイスドライバは、ステップS251において、アプリケーションから受領する書き込み開始LBAと書き込みセクタ数から書き込み終了LBAを算出する。この算出は、先に説明したように、
書き込み終了LBA=書き込み開始LBA+書き込みセクタ数−1
上記算出式に従って実行する。
ステップS252において、開始セクタ(LBA)と位相変化点(X)とを比較し、
開始セクタ(LBA)<位相変化点(X)
であるか否かを判定する。
開始セクタ(LBA)<位相変化点(X)
である場合は、ステップS253に進み、
第1書き込みリスト(Writeリスト1)LBA=開始セクタ(LBA)
第1書き込みリスト(Writeリスト1)セクタカウント=受領セクタ数
第1書き込みリスト(Writeリスト1)オフセット=0
とする。
一方、ステップS252において、開始セクタ(LBA)<位相変化点(X)でないと判定された場合は、ステップS254に進み、
第1書き込みリスト(Writeリスト1)LBA=開始セクタ(LBA)−X
第1書き込みリスト(Writeリスト1)セクタカウント=セクタ数
第1書き込みリスト(Writeリスト1)オフセット=X
とする。
これらの設定は、書き込み開始セクタが位相変化点[X]の前の場合は、ステップS253において、第1書き込みリストの設定を、アプリケーションから受領した書き込み開始LBAと書き込みセクタ数をそのまま用い、書き込み開始セクタが位相変化点[X]の後の場合は、ステップS254において、第1書き込みリストの設定を、アプリケーションから受領した書き込み開始LBAの調整として、[X]分の値要請を実行し、
第1書き込みリスト(Writeリスト1)LBA=開始セクタ(LBA)−X
第1書き込みリスト(Writeリスト1)オフセット=X
の調整を実行して書き込みリストを生成する処理を示している。
さらに、書き込み開始セクタが位相変化点[X]の前の場合は、ステップS253の処理の後、ステップS255において、書き込み終了LBAが位相変化点[X]以上であるか否かを検証して、書き込み終了LBAが位相変化点[X]以上である場合には、ステップS256において、第1書き込みリスとの更新および第2書き込みリスト(Writeリスト2)の生成処理を実行する。
第1書き込みリスト(Writeリスト1)セクタカウント=X−第1書き込みリストLBA
第2書き込みリスト(Writeリスト2)LBA=0
第2書き込みリスト(Writeリスト2)セクタカウント=セクタ数−第1書き込みリスト(Writeリスト1)セクタカウント=セクタ数
第2書き込みリスト(Writeリスト2)オフセット=X
とする。
この処理は、書き込み開始セクタが位相変化点[X]の前で、書き込み終了セクタが位相変化点[X]以後にある場合、位相変化点[X]の前の書き込みデータについては、第1書き込みリストを使用し、位相変化点[X]以後の書き込みデータについては、第2書き込みリストを使用するため、2つのリストを生成するものである。
ステップS255において、書き込み終了LBAが位相変化点[X]以上でない場合は、ステップS256の処理は実行することなく、第1書き込みリストの生成のみの処理となる。
例えば、アプリケーシヨンから、受領したデータが、
書き込み開始LBA=30、
書き込みセクタ数=200、
であり、図1に示すように位相変化点[X]=61である場合には第1書き込みリストと第2書き込みリストの2つのリストが生成される。それぞれのリストには以下のデータが設定される。
第1書き込みリスト
(a)第1書き込みリストLBA=30
(b)第1書き込みリストセクタカウント=X−30
(c)第1書き込みリストオフセット=0
第2書き込みリスト
(a)第2書き込みリストLBA=0
(b)第2書き込みリストセクタカウント=200−(X−30)
(c)第2書き込みリストオフセット=X
この書き込みリスト(Writeリスト)の生成後、図14に示すフローのステップS202に進む。ステップS202では、(M1)第1メモリ領域に格納したデータの先頭の書き込みデータの開始位置に相当するアドレスを現在バッファアドレスとする初期設定を実行し、さらに、ステップS203において、
書き込みリスト(Writeリスト)の書き込み開始LBAを現在LBAとして設定し、
書き込みリスト(Writeリスト)の書き込みセクタ数を残り転送セクタ数として設定する。
なお、第1書き込みリストの他に第2書き込みリストがある場合は、第1書き込みリストから先に利用して処理を行なう。
次に、ステップS204において、書き込みリスト(Writeリスト)の論理セクタ(LBA)が、N、すなわち、
1物理セクタに含まれる論理セクタ数:N、
によって割り切れるか否かを検討する。
なお、[WriteリストLBA%N]は、WriteリストLBAをNで割った場合の値を示す。割り切れる場合は、ステップS206に進み、割り切れない場合は、ステップS205の端数書き込み処理Aを実行した後、ステップS206に進む。
ステップS204において、書き込みリスト(Writeリスト)の論理セクタ(LBA)が1物理セクタに含まれる論理セクタ数:Nによって割り切れない場合のステップS205の端数書き込み処理Aの実行は、図6を参照して説明した処理、すなわち、書き込みデータの開始位置がリードモディファイライト(RMW)処理の対象となる場合である。
ステップS205の端数書き込み処理Aの詳細シーケンスについて、図16に示すフローチャートを参照して説明する。なお、端数書き込み処理とは、物理セクタ単位の論理セクタの書き込みデータがアプリケーションから受領されない論理セクタ部分の書き込み処理である。
デバイスドライバは、図16に示すフローのステップS301において、端数書き込みセクタ数を、下式に従って算出する。
端数書き込みセクタ数=N−(WriteリストLBA%N)
この算出式によって、例えば図6に示すデータ[D1]部分に含まれるアプリケーションから受領したセクタ数が算出される。
次に、ステップS302において、
残り転送セクタ数<端数書き込みセクタ数
上記が成立するか否かを検証する。この判定処理は、ステップS301で算出した端数書き込みセクタ数より残り転送セクタ数が小さいか否かを判定する処理であり、小さくない場合はステップS304に進み、小さい場合は、ステップS303に進み、
端数書き込みセクタ数=残り転送セクタ数
の設定を実行した後、ステップS304に進む。
ステップS304では、
端数書き込みLBA=書き込みリスト(Writeリスト)LBA
端数書き込みオフセット=書き込みリスト(Writeリスト)オフセット
端数書き込みバッファアドレス=バッファアドレス
これらの設定を実行する。
このステップS304の処理は、端数書き込み処理を実行するデータの、書き込みリスト(Writeリスト)上のデータとの対応を設定するための処理である。
この処理の後、ステップS305において、端数書き込み処理、すなわちリードモディファイライト(RMW)処理を含むデータ書き込みが実行される。なお、このステップS305の処理については、図19を参照して後段で説明する。
ステップS305において、端数書き込み処理、すなわちリードモディファイライト(RMW)処理を含むデータ書き込みが実行された後、ステップS306において、データ更新、すなわち、
現在LBA+=端数書き込みセクタ数
残り転送セクタ数−=端数書き込みセクタ数
現在バッファアドレス+=端数書き込みセクタ数×512
これらの書き込みデータに対応する情報更新を実行する。
すなわち、現在LBAを端数書き込みセクタ数分増加させ、残り転送セクタ数を端数書き込みセクタ数分減少させ、現在バッファアドレスを端数書き込みセクタ数×512分増加させる。なお、本例では、1セクタ(論理セクタ)=512バイトの設定であり、アドレスはバイトデータとして設定される例である。
この端数書き込み処理Aが終了すると、図14のステップS206に進み、残り転送セクタ数が[N]、すなわち、
1物理セクタに含まれる論理セクタ数[N]以上のセクタ数(論理セクタ数)であるか否かを判定する。残り転送セクタ数がNセクタ(論理セクタ数)未満である場合は、ステップS208に進み、残り転送セクタ数がNセクタ(論理セクタ数)以上である場合は、ステップS207で、非端数書き込み処理を実行した後、ステップS208に進む。
ステップS207の非端数書き込み処理は、例えば図6に示すデータ[D2]部分の書き込み処理に相当する。すなわち物理セクタ単位でアプリケーションから書き込みデータを受領してデータ書き込みを行える部分のデータ記録処理である。
ステップS207の非端数書き込み処理の詳細シーケンスについて、図17に示すフローを参照して説明する。この処理は、物理セクタ単位での書き込みデータがアプリケーションから受領されるデータ区間であり、先に、図6等を参照して説明したように、リードモディファイライト(RMW)を伴わないデータ記録処理として実行される。
まず、ステップS351において、データ記録処理に適用するコマンドの設定処理として、
コマンド発行LBA=現在LBA+Writeリストオフセット
コマンド発行セクタ数=(残り転送セクタ数÷N)×N
コマンド発行バッファアドレス=現在バッファアドレス
これらの設定を行う。これは、物理セクタ単位での書き込みの可能なデータ区間において、論理セクタ対応のコマンド発行LBA、コマンド発行セクタ数、コマンドセ発行バッファアドレスの設定を行うものであり、図6に示す(M1)をバッファとして記録媒体に対する書き込みを実行するメディア(HDD)にデータを渡すための設定である。ステップS352ではステップS351で設定した情報に従って書き込みコマンドを発行し、物理セクタ単位でのデータ書き込みが実行される。この処理によって、物理セクタ単位の書き込みが残り転送セクタ数に応じて連続して実行される。
この書き込み処理の終了後、ステップS353において、データ更新、すなわち、
現在LBA+=コマンド発行セクタ数
残り転送セクタ数−=コマンド発行セクタ数
現在バッファアドレス+=コマンド発行×512
これらの書き込みデータに対応する情報更新を実行する。
すなわち、現在LBAをコマンド発行セクタ数分増加させ、残り転送セクタ数をコマンド発行セクタ数分減少させ、現在バッファアドレスをコマンド発行セクタ数×512分増加させる。なお、本例では、1セクタ(論理セクタ)=512バイトの設定であり、アドレスはバイトデータとして設定される例である。
この非端数書き込み処理が終了すると、図14のステップS208に進み、残り転送セクタ数が0以上のセクタ数(論理セクタ数)であるか否かを判定する。残り転送セクタ数が0である場合は、ステップS210に進み、残り転送セクタ数が0セクタ(論理セクタ数)以上である場合は、ステップS209で、端数書き込み処理Bを実行した後、ステップS210に進む。
ステップS209の端数書き込み処理Bは、例えば図8に示すデータ[D1]部分の書き込み処理に相当する。データ記録終了位置において、物理セクタ単位でアプリケーションから書き込みデータが受領されず、リードモディファイライト(RMW)を伴うデータ記録処理として実行される。
ステップS209の端数書き込み処理Bの詳細シーケンスについて、図18に示すフローを参照して説明する。この処理は、物理セクタ単位での書き込みデータがアプリケーションから受領されないデータ区間であり、先に、図8等を参照して説明したように、リードモディファイライト(RMW)を伴うデータ記録処理として実行される。
まず、ステップS401において、
端数書き込みLBA=現在LBA
端数書き込みオフセット=書き込みリスト(Writeリスト)オフセット
端数書き込みセクタ数=残り転送セクタ数
端数書き込みバッファアドレス=バッファアドレス
これらの設定を実行する。
このステップS401の処理は、端数書き込み処理を実行するデータの、書き込みリスト(Writeリスト)上のデータとの対応を設定するための処理である。
この処理の後、ステップS402において、端数書き込み処理、すなわちリードモディファイライト(RMW)処理を含むデータ書き込みが実行される。なお、このステップS402の処理については、図19を参照して後段で説明する。
ステップS402において、端数書き込み処理、すなわちリードモディファイライト(RMW)処理を含むデータ書き込みが実行された後、ステップS403において、データ更新、すなわち、
現在LBA+=端数書き込みセクタ数
残り転送セクタ数−=端数書き込みセクタ数
現在バッファアドレス+=端数書き込みセクタ数×512
これらの書き込みデータに対応する情報更新を実行する。
すなわち、現在LBAを端数書き込みセクタ数分増加させ、残り転送セクタ数を端数書き込みセクタ数分減少させ、現在バッファアドレスを端数書き込みセクタ数×512分増加させる。なお、本例では、1セクタ(論理セクタ)=512バイトの設定であり、アドレスはバイトデータとして設定される例である。
この端数書き込み処理Bが終了すると、図14のステップS210に進み、第2書き込みリスト(Writeリスト2)があるか否かを判定し、ある場合は、ステップS203に戻り、第2書き込みリスト(Writeリスト2)について、ステップS203以下の処理を実行する。
このようにして、記録データの開始位置に端数データがある場合と、記録データの終了位置に端数データがある場合には、それぞれ端数書き込み処理A、端数書き込み処理Bにおいてリードモディファイライト(RMW)を伴うデータ記録処理が実行される。
図16のフローにおけるステップS305と、図18のフローにおけるステップS402の端数書き込み処理の詳細シーケンスについて、図19に示すフローチャートを参照して説明する。
まず、端数書き込み処理の最初のステップS451では、端数書き込み開始LBAを以下の算出式に従って設定する。
端数書き込み開始LBA=端数書き込みLBA+端数書き込みオフセット
さらに、位相変化直前LBAを以下の式に従って算出する。
位相変化直前LBA=(X÷N)×N
なお、(X÷N)は、位相変化点[X]を1物理セクタに含まれる論理セクタ数[N]で割った場合の整数部分を意味する。例えば、図1を参照して説明した例では、
N=2、
X=61であり、
(X÷N)=30となり、
位相変化直前LBA=(X÷N)×N
=30×2=60
として位相変化直前LBA=60が算出される。
次に、ステップS452において、ステップS451で算出した[位相変化直前LBA]と、[端数書き込み開始LBA]と位相変換点[X]を比較する。
位相変化直前LBA≦端数書き込み開始LBA<X
上記比較式が成立する場合は、ステップS455に進む。上記比較式が成立しない場合は、ステップS453に進む。
上記比較式が成立する場合は、端数書き込み開始LBAが、位相変化直前LBA以上でかつX以下において発生する特殊な例である。この特殊な例以外は、ステップS453に進む。ステップS453では、端数書き込み処理用のコマンド等の設定を実行する。具体的には、
コマンド発行LBA=(端数書き込みLBA÷N)×N+端数書き込みオフセット
コマンド発行バッファアドレス=RMW用バッファアドレス
コマンド発行セクタ数=N
モディファイ用バッファアドレスA=RMW用バッファアドレス+(端数書き込みLBA%N)×512
モディファイ用バッファアドレスB=端数書き込みバッファアドレス
モディファイサイズ=端数書き込みセクタ×512
これらの設定を実行する。
なお、(端数書き込みLBA÷N)は、端数書き込みLBAをNで割ったときの整数値である。
コマンド発行LBAを、(端数書き込みLBA÷N)×N+端数書き込みオフセットとして設定し、コマンド発行バッファアドレスをRMW用バッファアドレスとする。なお、RMW用バッファは、例えば、図6(2)や図8(2)に示す(M2)RMW用メモリ領域に相当する。
さらに、コマンド発行セクタ数を1つの物理セクタに対応する論理セクタ数であるNとする。これは物理セクタ単位の書き込みを実行することを意味する。さらに、
モディファイ用バッファアドレスA=RMW用バッファアドレス+(端数書き込みLBA%N)×512として、
モディファイ用バッファアドレスB=端数書き込みバッファアドレス
とする。
モディファイ用バッファアドレスAは、例えば図6(2)、図8(2)に示す(M2)RMW用メモリ領域のアドレスAであり、モディファイ用バッファアドレスBは、例えば図6(2)、図8(2)に示す(M1)第1メモリ領域のアドレスBである。さらに、モディファイサイズ=端数書き込みセクタ×512とする。本例では、論理セクタは512バイトであるとしている。
次に、ステップS454において、リードモディファイライト処理を実行する。このリードモディファイライト処理の処理シーケンスを図20に示すフローチャートを参照して説明する。この処理は、先に、図6、図8を参照して説明した処理であり、物理セクタ単位で記録メディアから読み出したデータを(M2)RMW用メモリ領域に保持した上で、(M1)第1メモリ領域のデータを(M2)RMW用メモリ領域にコピーして、データ更新を実行して、物理セクタ単位で記録メディアに記録する処理である。
ステップS501において、リードモディファイライト処理を実行する対象となる論理セクタを含む物理セクタを読み出して、図6や図8に示す(M2)RMW用メモリ領域に保持し、ステップS502において、モディファイ用バッファアドレスBから、モディファイ用バッファアドレスAへモディファイサイズ分コピー処理を実行して、ステップS503において、書き込みコマンドを発行し、(M2)RMW用メモリ領域においてデータ更新のなされたデータを物理セクタ単位で記録メディアに記録する。この処理によって、図19に示すステップS454の処理が実行される。
図19のフローにおけるステップS452の判定において、
位相変化直前LBA≦端数書き込み開始LBA<X
上記比較式が成立すると判定された場合は、ステップS455に進む。上記比較式が成立する場合は、端数書き込み開始LBAが、位相変化直前LBA以上でかつX以下において発生する特殊な例である。この特殊な例の場合は、
ステップS455において、
X−位相変化直前LBA==端数書き込みセクタ数
が成立するか否かを判定する。
例えば、図1に示すX=61の場合、位相変化直前LBA=60となり、端数書き込みセクタ数=61−60=1が成立するか否かを判定する。
X−位相変化直前LBA==端数書き込みセクタ数
上記式が成立する場合は、ステップS456において、端数書き込み処理用のコマンド等の設定を実行し、上記式が成立しない場合は、ステップS458において、端数書き込み処理用のコマンド等の設定を実行する。すなわち、端数書き込みセクタ数が位相変化点の直前まで存在するか否かによって、設定コマンドを変更するものである。
上記式が成立する場合、すなわち、端数書き込みセクタ数が位相変化点の直前まで存在する場合は、ステップS456において端数書き込み処理用のコマンド等の設定を以下のように実行する。すなわち、
コマンド発行LBA=(端数書き込みLBA÷N)×N+端数書き込みオフセット
コマンド発行バッファアドレス=RMW用バッファアドレス
コマンド発行セクタ数=端数書き込みセクタ数
これらのコマンドを設定語、ステップS457において書き込みコマンドを実行する。このような場合は、リードモディファイライト処理は実行することなく、端数データのみの書き込みが実行される。
一方、上記式が成立しない場合、すなわち、端数書き込みセクタ数が位相変化点の直前まで存在しない場合は、ステップS458において端数書き込み処理用のコマンド等の設定を以下のように実行する。すなわち、
コマンド発行LBA=(端数書き込みLBA÷N)×N+端数書き込みオフセット
コマンド発行バッファアドレス=RMW用バッファアドレス
コマンド発行セクタ数=N
モディファイ用バッファアドレスA=RMW用バッファアドレス+(端数書き込みLBA%N)×512
モディファイ用バッファアドレスB=端数書き込みバッファアドレス
モディファイサイズ=端数書き込みセクタ×512
これらの設定を実行する。
これらの処理の後、ステップS454の処理、すなわち、図20を参照して説明したリードモディファイライト処理が実行される。
このようにして、本発明の情報処理装置では、アプリケーションからデバイスドライバに渡された記録データについて検証し、記録開始セクタあるいは記録終了セクタに端数の論理セクタが存在する場合、すなわち、物理セクタ単位での書き込みデータの一部が欠落している場合に、特殊な場合、すなわち、図19に示すステップS435の判定がYesとなる場合を除いて、リードモディファイライトを実行する。すなわちデバイスドライバが物理セクタ単位のデータを記録メディアから取得して、その取得データをRMW用メモリ領域に保持して、アプリケーションから受領した更新された論理セクタデータをコピーして、その後、物理セクタ単位のデータとして記録メディア(HDDなど)に出力する構成とした。
すなわち、本発明の情報処理装置のデバイスドライバは、アプリケーションから入力する記録メディアに対する記録データをメディア対応制御部に出力するアクセス制御部を有し、アクセス制御部は、アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証し、異なる場合に、メディア対応制御部を介して物理セクタ単位の記録データを取得してメモリに格納し、格納した物理セクタデータの一部の論理セクタデータをアプリケーションから入力するセクタ単位の記録データによって更新し、更新処理後の物理セクタデータをメディア対応制御部に出力するリードモディファイライト(RMW)処理を実行する。
具体的には、アクセス制御部は、1物理セクタに含まれる論理セクタ数[N]や、論理セクタと物理セクタとの対応関係の位相変化が発生する位相変換点[X]に基づいて、アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証する処理を実行する。
また、図6、図8を参照して説明したように、アクセス制御部は、リードモディファイライト(RMW)処理の実行において、アプリケーションから論理セクタ単位で入力する記録データを格納する第1メモリ領域から、リードモディファイライト(RMW)用メモリ領域に対して、リードモディファイライト(RMW)処理対象となる論理セクタデータのコピー処理を実行する。
また、アクセス制御部は、アプリケーションから入力する記録データの記録処理に際して、記録データに対応する管理情報リストとして、記録データに対応する論理ブロックアドレス(LBA)、記録データのセクタ数であるセクタカウント、論理セクタナンバのオフセット情報であるオフセット情報を記録した書き込みリストを生成し、書き込みリストを参照した記録処理を行なう。さらに、リスト生成に際して、論理セクタと物理セクタとの対応関係の位相変化が発生する位相変換点[X]が存在し、アプリケーションから論理セクタ単位で入力する記録データが、位相変換点[X]の前後に渡るデータである場合、位相変換点[X]前の記録データに対する第1書き込みリストと、位相変換点[X]後の記録データに対する第2書き込みリストを生成する。
[5.情報処理装置のハードウェア構成例]
次に、上述した処理を実行する情報処理装置の構成例として、デジタルビデオカメラと、PCの装置構成例について、図21、図22を参照して説明する。
まず、図21を参照してデジタルビデオカメラの構成例について説明する。デジタルビデオカメラは、画像を撮像して、撮像することにより得た画像データをドライブ432を介して磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等の各種情報記録媒体に記録する撮像モードと、画像入出力部414や音声入出力部416あるいは通信部431を通じて供給を受けたデータを記録媒体に記録したり、記録媒体に記録されているデータを再生したりするVTRモードとを備えたものである。
撮像モードは、動画を撮像すると共に、これと同時に収音するようにした音声とを記録媒体に記録する動画撮像モードと、静止画を撮像する静止画撮像モードとを備えている。また、VTRモード時においては、記録ボタンスイッチなどによって構成される操作入力部420を操作することにより供給されるデータの記録が行われるようにされ、再生ボタンスイッチを操作することにより記録媒体に記録されている目的とするデータを再生することができる。
図21に示すように、デジタルビデオカメラは、光学レンズ部411、光電変換部412、カメラ機能制御部402、画像信号処理部413、画像入出力部414、液晶ディスプレイ415、音声入出力部416、音声信号処理部417、通信部431、制御部(CPU)401、内蔵メモリ(RAM)418、内蔵メモリ(ROM)419、操作入力部420、情報記録媒体に対するドライブ432、さらに、各構成部に対する電力供給を行なう電源441を備えたものである。
制御部(CPU)401は、ROM419に格納された各種の処理プログラムに従って処理を実行する。RAM418は、各処理において途中結果を一時記憶するなど、主に作業領域として用いられる。先に、図6、図8を参照して説明した(M1)第1メモリ、(M2)RMW用メモリなどが設定される。
操作入力部401は、動画撮影モード、静止画撮影モード、VTRモードなどの動作モードを切り換えるモード切り換えキー、静止画の撮影のためのシャッターキー、動画を撮影するための撮影開始キー、録画キー、再生キー、停止キー、早送りキー、早戻しキーなどの種々の操作キーや機能キーなどを備え、ユーザからの操作入力を受け付けて、受け付けた操作入力に応じた電気信号を制御部(CPU)401に供給する。
制御部(CPU)401は、ユーザからの操作入力に応じて、目的とする処理を行うためのプログラムをROM419から読み出して実行し、各部を制御することによって、ユーザからの指示に応じた処理の制御を行う。デジタルビデオカメラは、情報記録媒体として、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等の各種情報記録媒体を装着可能であり、これらの情報記録媒体にドライブ432を介して各種の情報を記録し、また、これらの情報記録媒体に記録された情報を再生する。磁気ディスクとしてのハードディスクは例えば先に図1を参照して説明したような設定である。
次に、図22を参照して、上述した処理を実行する情報処理装置の一例としてのPCのハードウェア構成例について説明する。CPU(Central Processing Unit)501は、OS(Operating System)に対応する処理や、上述の実施例において説明したデータ記録、あるいはデータ再生処理などを実行するデータ処理部として機能する。これらの処理は、情報処理装置のROM、ハードディスクなどのデータ記憶部に格納されたコンピュータ・プログラムに従って実行される。
ROM(Read Only Memory)502は、CPU501が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)503は、CPU501の実行において使用するプログラムや、その実行において適宜変化するパラメータ、前述の図6、図8を参照して説明した(M1)第1メモリ、(M2)RMW用メモリなどが設定される。これらはCPUバスなどから構成されるホストバス504により相互に接続されている。前述した管理情報の記録処理に際しても、RAM503を作業領域としてデータの更新などが実行される。
ホストバス504は、ブリッジ505を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス506に接続されている。
キーボード508、ポインティングデバイス509は、ユーザにより操作される入力デバイスである。ディスプレイ510は、液晶表示装置またはCRT(Cathode Ray Tube)などから成り、各種情報をテキストやイメージで表示する。
HDD(Hard Disk Drive)511は、ハードディスクを内蔵し、ハードディスクを駆動する。ハードディスクは例えば先に図1を参照して説明した設定を持つ。また、ハードディスクは、画像データファイルの格納領域として利用されるとともに、データ処理プログラム等、各種コンピュータ・プログラムが格納される。
ドライブ512は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体521に記録されているデータまたはプログラムを読み出して、そのデータまたはプログラムを、インタフェース507、外部バス506、ブリッジ505、およびホストバス504を介して接続されているRAM503に供給する。
接続ポート514は、外部接続機器522を接続するポートであり、USB,IEEE1394等の接続部を持つ。接続ポート514は、インタフェース507、および外部バス506、ブリッジ505、ホストバス504等を介してCPU501等に接続されている。通信部515は、ネットワークに接続され、その他の情報処理装置との通信を実行する。
なお、図21、図22に示す情報処理装置の構成例は、装置の一例であり、情報処理装置は、図21、図22に示す構成に限らず、上述した実施例において説明した処理を実行可能な構成であればよい。
なお、本発明は、HDD(ハードディスクドライブ)に限らず、前述した
1物理セクタに含まれる論理セクタ数:N、
位相変換点:X、
これらに相当する性質を有するランダムアクセス可能なメディア全般に適用可能である。ファイルシステムの例としては、例えばFAT16/32など、その他のファイルシステムにおいてもて起用可能である。また、着脱可能なメディアに対しても、本体内蔵のメディアと同様にして適用可能なものである。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本発明の一実施例構成によれば、記録メディア(情報記録媒体)に対するデータ記録処理を行なう情報処理装置のアクセス制御部において、アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証し、異なる場合に、メディア対応制御部を介して物理セクタ単位の記録データを取得してメモリに格納し、格納した物理セクタデータの一部の論理セクタデータをアプリケーションから入力するセクタ単位の記録データによって更新し、更新処理後の物理セクタデータをメディア対応制御部に出力するリードモディファイライト(RMW)処理を実行する構成としたので、デバイスドライバとメディア対応制御部間では、すべて物理セクタ単位のデータの入出力が実現され、デバイスドライバ側でデータ更新を伴わない論理セクタデータについての確認を行なうことができ、データ消失などの不測の事態の発生を上位層において把握可能となる。
デバイスドライバのアクセス単位である論理セクタ(LBA)と、メディア、すなわちHDDのアクセス単位である物理セクタとの対応例について説明する図である。 上位層のアクセス単位である論理セクタとメディアのアクセス単位である物理セクタが異なる場合のアクセス処理における問題点について説明する図である。 上位層のアクセス単位である論理セクタとメディアのアクセス単位である物理セクタが異なる場合のアクセス処理における問題点について説明する図である。 リードモディファイライト(RMW:Read−Modify−Write)処理およびその要否について説明する図である。 リードモディファイライト(RMW:Read−Modify−Write)処理の要否判定処理について説明する図である。 リードモディファイライト(RMW:Read−Modify−Write)処理の具体例について説明する図である。 リードモディファイライト(RMW:Read−Modify−Write)処理のシーケンスについて説明するフローチャートを示す図である。 リードモディファイライト(RMW:Read−Modify−Write)処理の具体例について説明する図である。 リードモディファイライト(RMW:Read−Modify−Write)処理のシーケンスについて説明するフローチャートを示す図である。 本発明の一実施例に係る情報処理装置のシステム構成について説明する図である。 本発明の一実施例に係る情報処理装置のシステム構成について説明する図である。 本発明の一実施例に係る情報処理装置におけるファイルシステム起動処理について説明するフローチャートを示す図である。 本発明の一実施例に係る情報処理装置におけるデバイスドライバ起動処理について説明するフローチャートを示す図である。 本発明の一実施例に係る情報処理装置におけるリードモディファイライトを含むデータ記録処理のシーケンスについて説明するフローチャートを示す図である。 図14のステップS201の書き込みリスト(Writeリスト)作成処理のシーケンスについて説明するフローチャートを示す図である。 図14のステップS205の端数書き込み処理Aのシーケンスについて説明するフローチャートを示す図である。 図14のステップS207の非端数書き込み処理のシーケンスについて説明するフローチャートを示す図である。 図14のステップS209の端数書き込み処理Bのシーケンスについて説明するフローチャートを示す図である。 端数書き込み処理の実行処理のシーケンスについて説明するフローチャートを示す図である。 リードモディファイライト(RMW)処理の実行処理のシーケンスについて説明するフローチャートを示す図である。 本発明の情報処理装置の一実施例としてのデジタルビデオカメラの構成例について説明する図である。 本発明の情報処理装置の一実施例としてのPCの構成例について説明する図である。
符号の説明
281 アプリケーション
282 ファイルシステム
283 デバイスドライバ
284 情報記録媒体
300 アプリケーション
301 記録アプリケーション
302 再生アプリケーション
303 USB接続アプリケーション
310 ファイルシステム
311,312 マウントドライブ情報
320 記録再生制御部
321 FAT制御部
322 クラスタ制御部
323 ディレクトリエントリ制御部
330 メディア制御部
331 位置算出部
340 アクセス制御部
350,351,352 デバイスドライバ
354,355 アクセス制御部
361,362 情報記録媒体
363,364 メディア対応制御部
370 メモリ
401 制御部(CPU)
402 カメラ機能制御部
411 光学レンズ部
412 光電変換部
413 画像信号処理部
414 画像入出力部
415 液晶ディスプレイ
416 音声入出力部
417 音声処理部
418 内蔵メモリ(RAM)
419 内蔵メモリ(ROM)
420 操作入力部
431 通信部
432 ドライブ
441 電源
501 CPU(Central Processing Unit)
502 ROM(Read-Only-Memory)
503 RAM(Random Access Memory)
504 ホストバス
505 ブリッジ
506 外部バス
507 インタフェース
508 キーボード
509 ポインティングデバイス
510 ディスプレイ
511 HDD(Hard Disk Drive)
512 ドライブ
514 接続ポート
515 通信部
521 リムーバブル記録媒体
522 外部接続機器

Claims (13)

  1. 記録メディアに対するデータ記録処理を実行する情報処理装置であり、
    アプリケーションから入力する記録メディアに対する記録データをメディア対応制御部に出力するアクセス制御部を有し、
    前記アクセス制御部は、
    前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証し、異なる場合に、前記メディア対応制御部を介して物理セクタ単位の記録データを取得してメモリに格納し、格納した物理セクタデータの一部の論理セクタデータをアプリケーションから入力するセクタ単位の記録データによって更新し、更新処理後の物理セクタデータを前記メディア対応制御部に出力するリードモディファイライト(RMW)処理を実行する構成であることを特徴とする情報処理装置。
  2. 前記アクセス制御部は、
    1物理セクタに含まれる論理セクタ数[N]に基づいて、前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証する処理を実行する構成であることを特徴とする請求項1に記載の情報処理装置。
  3. 前記アクセス制御部は、さらに、
    論理セクタと物理セクタとの対応関係の位相変化が発生する位相変換点[X]に基づいて、前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証する処理を実行する構成であることを特徴とする請求項2に記載の情報処理装置。
  4. 前記アクセス制御部は、
    前記リードモディファイライト(RMW)処理の実行において、
    前記アプリケーションから論理セクタ単位で入力する記録データを格納する第1メモリ領域から、リードモディファイライト(RMW)用メモリ領域に対して、前記リードモディファイライト(RMW)処理対象となる論理セクタデータのコピー処理を実行する構成であることを特徴とする請求項1に記載の情報処理装置。
  5. 前記アクセス制御部は、
    前記アプリケーションから入力する記録データの記録処理に際して、記録データに対応する管理情報リストとして、記録データに対応する論理ブロックアドレス(LBA)、記録データのセクタ数であるセクタカウント、論理セクタナンバのオフセット情報であるオフセット情報を記録した書き込みリストを生成し、書き込みリストを参照した記録処理を行なう構成であることを特徴とする請求項1に記載の情報処理装置。
  6. 前記アクセス制御部は、さらに、
    論理セクタと物理セクタとの対応関係の位相変化が発生する位相変換点[X]が存在し、前記アプリケーションから論理セクタ単位で入力する記録データが、前記位相変換点[X]の前後に渡るデータである場合、位相変換点[X]前の記録データに対する第1書き込みリストと、位相変換点[X]後の記録データに対する第2書き込みリストを生成する処理を実行する構成であることを特徴とする請求項5に記載の情報処理装置。
  7. 情報処理装置において、記録メディアに対するデータ記録処理を実行する情報処理方法であり、
    アクセス制御部が、アプリケーションから入力する記録メディアに対する記録データをメディア対応制御部に出力するアクセス制御ステップを実行し、
    前記アクセス制御ステップは、
    前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かの検証を行なう検証ステップと、
    前記検証ステップにおいて、異なるとの検証結果が得られた場合、前記メディア対応制御部を介して物理セクタ単位の記録データを取得してメモリに格納し、格納した物理セクタデータの一部の論理セクタデータをアプリケーションから入力するセクタ単位の記録データによって更新し、更新処理後の物理セクタデータを前記メディア対応制御部に出力するリードモディファイライト(RMW)処理を実行するリードモディファイライト(RMW)処理ステップと、
    を実行するステップであることを特徴とする情報処理方法。
  8. 前記アクセス制御ステップは、
    1物理セクタに含まれる論理セクタ数[N]に基づいて、前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証する処理を実行することを特徴とする請求項7に記載の情報処理方法。
  9. 前記アクセス制御ステップは、さらに、
    論理セクタと物理セクタとの対応関係の位相変化が発生する位相変換点[X]に基づいて、前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かを検証する処理を実行することを特徴とする請求項8に記載の情報処理方法。
  10. 前記アクセス制御ステップは、
    前記リードモディファイライト(RMW)処理の実行において、
    前記アプリケーションから論理セクタ単位で入力する記録データを格納する第1メモリ領域から、リードモディファイライト(RMW)用メモリ領域に対して、前記リードモディファイライト(RMW)処理対象となる論理セクタデータのコピー処理を実行することを特徴とする請求項7に記載の情報処理方法。
  11. 前記アクセス制御ステップは、
    前記アプリケーションから入力する記録データの記録処理に際して、記録データに対応する管理情報リストとして、記録データに対応する論理ブロックアドレス(LBA)、記録データのセクタ数であるセクタカウント、論理セクタナンバのオフセット情報であるオフセット情報を記録した書き込みリストを生成し、書き込みリストを参照した記録処理を行なうことを特徴とする請求項7に記載の情報処理方法。
  12. 前記アクセス制御ステップは、さらに、
    論理セクタと物理セクタとの対応関係の位相変化が発生する位相変換点[X]が存在し、前記アプリケーションから論理セクタ単位で入力する記録データが、前記位相変換点[X]の前後に渡るデータである場合、位相変換点[X]前の記録データに対する第1書き込みリストと、位相変換点[X]後の記録データに対する第2書き込みリストを生成する処理を実行することを特徴とする請求項11に記載の情報処理方法。
  13. 情報処理装置において、記録メディアに対するデータ記録処理を実行させるコンピュータ・プログラムであり、
    アクセス制御部に、アプリケーションから入力する記録メディアに対する記録データをメディア対応制御部に出力させるアクセス制御ステップを実行し、
    前記アクセス制御ステップは、
    前記アプリケーションから論理セクタ単位で入力する記録データの記録開始位置または記録終了位置が、前記メディア対応制御部の管理するメディアに対するアクセス単位である物理セクタの区分位置と異なるか否かの検証を行なう検証ステップと、
    前記検証ステップにおいて、異なるとの検証結果が得られた場合、前記メディア対応制御部を介して物理セクタ単位の記録データを取得してメモリに格納し、格納した物理セクタデータの一部の論理セクタデータをアプリケーションから入力するセクタ単位の記録データによって更新し、更新処理後の物理セクタデータを前記メディア対応制御部に出力するリードモディファイライト(RMW)処理を実行するリードモディファイライト(RMW)処理ステップと、
    を含むステップであることを特徴とするコンピュータ・プログラム。
JP2007094752A 2007-03-30 2007-03-30 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム Expired - Fee Related JP4992515B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007094752A JP4992515B2 (ja) 2007-03-30 2007-03-30 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US12/032,037 US8065495B2 (en) 2007-03-30 2008-02-15 Apparatus, method and computer program for processing information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007094752A JP4992515B2 (ja) 2007-03-30 2007-03-30 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2008250919A true JP2008250919A (ja) 2008-10-16
JP4992515B2 JP4992515B2 (ja) 2012-08-08

Family

ID=39794080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007094752A Expired - Fee Related JP4992515B2 (ja) 2007-03-30 2007-03-30 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Country Status (2)

Country Link
US (1) US8065495B2 (ja)
JP (1) JP4992515B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211888A (ja) * 2009-03-12 2010-09-24 Toshiba Storage Device Corp ディスク記憶装置
JP2016530648A (ja) * 2013-09-06 2016-09-29 ウェスタン デジタル テクノロジーズ インコーポレーテッド ハードウェアにおけるデータフレームセグメントの選択的なマージを提供する高性能システム
JP2017041076A (ja) * 2015-08-19 2017-02-23 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5540918B2 (ja) * 2010-06-15 2014-07-02 ソニー株式会社 情報消去装置、情報消去方法
US10541009B2 (en) * 2017-12-28 2020-01-21 Intel Corporation Write data mask for power reduction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112832A (ja) * 1998-09-30 2000-04-21 Hitachi Ltd 情報記録方法および記録媒体ならびに情報処理装置
JP2000305860A (ja) * 1999-04-23 2000-11-02 Toshiba Corp 情報記憶システム及び同システムに於ける記憶制御方法
JP2002015507A (ja) * 2000-06-30 2002-01-18 Sony Corp データ記録方法およびディスク装置
JP2010211888A (ja) * 2009-03-12 2010-09-24 Toshiba Storage Device Corp ディスク記憶装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4238514B2 (ja) 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
US7277986B2 (en) * 2005-03-30 2007-10-02 Emc Corporation Sector-edge cache

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112832A (ja) * 1998-09-30 2000-04-21 Hitachi Ltd 情報記録方法および記録媒体ならびに情報処理装置
JP2000305860A (ja) * 1999-04-23 2000-11-02 Toshiba Corp 情報記憶システム及び同システムに於ける記憶制御方法
JP2002015507A (ja) * 2000-06-30 2002-01-18 Sony Corp データ記録方法およびディスク装置
JP2010211888A (ja) * 2009-03-12 2010-09-24 Toshiba Storage Device Corp ディスク記憶装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211888A (ja) * 2009-03-12 2010-09-24 Toshiba Storage Device Corp ディスク記憶装置
JP2016530648A (ja) * 2013-09-06 2016-09-29 ウェスタン デジタル テクノロジーズ インコーポレーテッド ハードウェアにおけるデータフレームセグメントの選択的なマージを提供する高性能システム
JP2017041076A (ja) * 2015-08-19 2017-02-23 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム

Also Published As

Publication number Publication date
JP4992515B2 (ja) 2012-08-08
US8065495B2 (en) 2011-11-22
US20080239886A1 (en) 2008-10-02

Similar Documents

Publication Publication Date Title
JP4955099B2 (ja) 光ディスクドライブ装置
JP2007122221A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2010198407A (ja) 情報処理装置、およびデータ記録制御方法、並びにプログラム
JP4992515B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2007233638A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2016149051A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
JP4487954B2 (ja) データ記録装置、データ記録方法、及びプログラム
JP5216003B2 (ja) 記録装置
JP2010237907A (ja) ストレージ装置および記録方法
JP2007193886A (ja) ディスク装置、データ書込み制御方法およびコマンド制御方法
JP2008250918A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8560789B2 (en) Disk apparatus, data replicating method onto disk apparatus and program recording medium
JP2009059444A (ja) 情報処理装置および情報処理方法
JP2011159239A (ja) 記録装置及びその制御方法
JP2010033396A (ja) 情報処理装置、および情報処理方法、並びにプログラム
JP2007108853A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2006323462A (ja) ファイルコピー装置およびファイルコピー方法
JP2006260158A (ja) 情報処理装置、情報処理方法、プログラム
JP2010015385A (ja) 情報処理装置、および情報処理方法、並びにプログラム
JP2007059004A (ja) 情報処理装置および方法、プログラム並びに記録媒体
JP2004171670A (ja) 記録再生装置及び記録再生方法
JP2008117491A (ja) 記録装置、記録方法、およびプログラム
JP4972909B2 (ja) データ記録装置
JP2008262381A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2010211880A (ja) ディスクドライブ装置、その制御方法、プログラム、及び、記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120322

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: 20120410

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120423

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees