JPWO2005124529A1 - ストレージディスクに対するデータリード方法、データライト方法、及びストレージディスク制御装置 - Google Patents

ストレージディスクに対するデータリード方法、データライト方法、及びストレージディスク制御装置 Download PDF

Info

Publication number
JPWO2005124529A1
JPWO2005124529A1 JP2006514845A JP2006514845A JPWO2005124529A1 JP WO2005124529 A1 JPWO2005124529 A1 JP WO2005124529A1 JP 2006514845 A JP2006514845 A JP 2006514845A JP 2006514845 A JP2006514845 A JP 2006514845A JP WO2005124529 A1 JPWO2005124529 A1 JP WO2005124529A1
Authority
JP
Japan
Prior art keywords
sector
data
buffer
storage disk
read
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.)
Pending
Application number
JP2006514845A
Other languages
English (en)
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.)
Rohm Co Ltd
Original Assignee
Rohm Co Ltd
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 Rohm Co Ltd filed Critical Rohm Co Ltd
Publication of JPWO2005124529A1 publication Critical patent/JPWO2005124529A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • 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
    • G11B2020/10675Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
    • 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
    • G11B2020/10675Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
    • G11B2020/10722Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control wherein the size of the buffer is variable, e.g. by adding additional memory cells for coping with input streams that have high bit rates
    • 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
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10759Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

セクタに対して対応するバッファ領域がどれかを示すバッファ管理用テーブルを設ける。このテーブルによって、バッファ手段(RAM)に、複数のセクタが同じバッファ領域を使用する共有バッファ領域と、セクタが個々に対応する個別のバッファ領域とを設定する。そして、各セクタにデータの処理状況を示すフラグを設ける。これにより、USB−FDDのリード/ライトを使用状況に合わせて高速に行うと共に、RAMバッファの容量を少なくする。また、そのデータのリード/ライトに使用するRAMバッファの領域を、使用状況や他用途の必要度に合わせて、調節可能にする。

Description

本発明は、USB(ユニバーサル・シリアル・バス)等のシリアルデータ転送手段を用いたFDD(フレキシブル・ディスク・ドライブ)等のストレージディスク駆動装置におけるデータリード方法、データライト方法、及びそのストレージディスクドライブ装置に関する。
従来から、FD(フレキシブル・ディスク)のデータの読み取り(以下、リード)や書き込み(以下、ライト)には、USB接続のFDD(フレキシブル・ディスク・ドライブ)装置(以下、USB−FDD装置)が多く用いられている。
このUSB−FDD装置では、データのリード/ライトを行う場合は、まず、FDの目標とするトラックにヘッドを移動させる。
そして、データ・リードを行う場合には、当該トラックの先頭のセクタ(セクタ番号1)から最終のセクタ(セクタ番号N)までのN個のセクタのデータをセクタ順に読みとり、USBを通してデータをセクタ順に送出する。この場合に、FDの回転位置は、先頭セクタのデータからリードできるヘッドの位置にあることは希である。従って、通常は、先頭セクタのデータが読み出せる位置にFDが回転してくるまで、回転待ち時間が発生する。
先頭セクタのデータが読み出せる位置にFDが回転してきた時から、当該トラックのセクタ番号1からセクタ番号Nまでのデータを順次読み出す。読み出されたデータは、USB−FDD装置内のバッファRAMに一時記憶され、その後USBを介して外部のホスト・コンピュータ等に送出される。
また、データ・ライトを行う場合には、先頭セクタにデータが書き込める位置までFDが回転してくるのを待つ。そして、その位置までFDが回転すると、外部のホスト・コンピュータ等から送られてUSB−FDD装置内のバッファRAMに一時記憶されているデータを、当該トラックの先頭のセクタ(セクタ番号1)から最終のセクタ(セクタ番号N)までのN個のセクタへセクタ順に書き込む。
このデータのリード/ライト方法では、トラックの先頭セクタからリードし、またライトするから、先頭セクタのデータ処理が可能になるまで回転待ちが発生してしまう。従って、リード/ライト処理にその回転待ちの分だけ時間遅延が発生してしまう。
この回転待ちに伴う時間遅延を解消するために、ヘッド上に位置するFDのセクタ番号をリード/ライト処理に先行して読み取り、そのセクタ番号の次のセクタからリード/ライトを行うようにする方法が、特許文献1:特開2004−103103号公報、に提案されている。
特許文献1のリード/ライト方法では、リード/ライト処理に要する時間は短くなるが、実際にリード/ライト処理するセクタ順が、FDの回転位置に依存して、番号順にはならず前後してしまう。一方、USB−FDD装置とデータのやり取りを行うホストコンピュータは常に、セクタ番号順のデータを要求する。したがって、基本的に1トラック分(FD1回転分)のデータを格納する記憶容量を持っているRAMがバッファとして必要となる。USB−FDD装置は、高速化と同時に小型化、低価格が求められているので、RAMバッファの容量が大きくなることは好ましくない。
そこで、本発明は、USB等のシリアルデータ転送手段を用いたFDD等のストレージディスク駆動装置におけるデータリード方法、データライト方法、及びそのストレージディスクドライブ装置において、そのリード/ライトを使用状況に合わせて高速に行うと共に、RAMバッファの容量を少なくすることを目的とする。また、そのデータのリード/ライトに使用するRAMバッファの領域を、使用状況や他用途の必要度に合わせて、調節可能にすることを目的とする。
本発明のストレージディスクのデータリード方法は、シリアルデータ転送手段とバッファ手段を含むストレージディスク駆動装置を用いてストレージディスクの複数N個のセクタのデータをリードするデータリード方法において、
先頭のセクタから所定K番目(K<N)のセクタに対して前記バッファ手段のうちの共有のバッファ領域が対応し、K+1番目乃至N番目のセクタに対して前記バッファ手段のうちの個別のバッファ領域がそれぞれ対応するように設定し、
リード要求に応じて次の処理i乃至処理iv、
処理i;ストレージディスクの回転位置に基づいて次にリードするセクタを決定する、
処理ii;決定されたセクタのデータをリードする、
処理iii;リードされたセクタのデータを対応するバッファ領域へ格納する、
処理iv;データが格納されたセクタに対して、データ未処理を示すフラグをセットする、
を繰り返して実行すると共に、
同じくリード要求に応じて次のステップv乃至ステップvi、
処理v;先頭セクタからセクタ番号順に、前記フラグがセットされていることを条件に当該セクタからのデータを該当するバッファ領域から前記シリアルデータ転送手段を介して外部へ転送する、
処理vi;データが転送されたセクタのフラグをクリアする、
を繰り返して実行することを特徴とする。
また、そのストレージディスクのデータリード方法において、前記処理iにおける次にリードするセクタは、データリードの当初においては、ストレージディスクの回転位置がセクタ1番目乃至セクタK番目にあるときはセクタK+1番目であり、その回転位置がセクタK番目以降にあるときは当該セクタの次の順番のセクタであることを特徴とする。
また、そのストレージディスクのデータリード方法において、前記処理iiiにおけるセクタのデータをバッファ領域へ格納するに際し、データリードの当初においては、リードされたセクタのデータが、セクタ1番目乃至セクタK番目のセクタのデータであるときにはバッファ領域に格納せず、K+1番目以降のセクタデータから対応するバッファ領域に順次格納することを特徴とする。
また、そのストレージディスクのデータリード方法において、前記処理iにおける次のリードセクタは、データリードの当初においては、ストレージディスクの回転位置のセクタ番号に関わらず、当該セクタの次の順番のセクタであり、且つ前記処理iiiにおけるセクタのデータをバッファ領域へ格納するに際し、データリードの当初においては、リードされたセクタのセクタ番号に関わらず、対応するバッファ領域に順次格納することを特徴とする。
また、そのストレージディスクのデータリード方法において、前記処理iにおける次にリードするセクタは、ストレージディスクの回転位置のセクタの次の順番のセクタであり、前記処理ivにおけるフラグをセットする際に、そのセクタが先頭のセクタから所定K番目までのセクタである場合には、同じバッファ領域に対応する他のセクタのフラグをクリアすることを特徴とする。
また、そのストレージディスクのデータリード方法において、前記共有のバッファ領域は、リングバッファとして使用される2つ以上のバッファ領域であることを特徴とする。
本発明のストレージディスクのデータライト方法は、シリアルデータ転送手段とバッファ手段を含むストレージディスク駆動装置を用いてストレージディスクの複数N個のセクタへデータをライトするデータライト方法において、
先頭のセクタから所定J番目(J<N)のセクタに対して前記バッファ手段のうちの個別のバッファ領域がそれぞれ対応し、J+1番目乃至N番目のセクタに対して前記バッファ手段のうちの共有のバッファ領域が対応するように設定し、
ライト要求に応じて次の処理Vii乃至処理Viii、
処理Vii;先頭セクタからセクタ番号順に、データ未処理を示すフラグがクリアされていることを条件に、前記シリアルデータ転送手段を介して外部から転送されたデータを該当するバッファ領域へ格納する、
処理Viii;データが格納されたセクタに対して、データ未処理を示すフラグをセットする、
を繰り返して実行すると共に、
同じくライト要求に応じて次の処理ix乃至処理xi、
処理ix;ストレージディスクの回転位置に基づいて次にライトするセクタを決定する、
処理x;決定されたセクタの前記フラグがセットされていることを条件に、ストレージディスクの当該セクタにデータをライトする、
処理xi;データがライトされたセクタに対する前記フラグをクリアする、
を繰り返して実行することを特徴とする。
また、そのストレージディスクのデータライト方法において、前記処理ixにおける次にライトするセクタは、ストレージディスクの回転位置にあるセクタの次の順番のセクタであることを特徴とする。
また、そのストレージディスクのデータライト方法において、前記共有のバッファ領域は、リングバッファとして使用される2つ以上のバッファ領域であることを特徴とする。
本発明のストレージディスク制御装置は、シリアルデータ転送手段USBC11と、バッファ手段15と、ストレージディスク制御手段FDC16、FDD17と、複数N個のセクタからなるセクタ群と共有及び個別対応のバッファ領域からなるバッファ領域群とを対応させるバッファ管理テーブルと、これらのシリアルデータ転送手段USBC11乃至バッファ管理テーブルの各々と結合され且つそれらの制御を司るCPU14を含み、
データリード時には、前記バッファ管理テーブルを、先頭のセクタから所定K番目(K<N)のセクタに対して前記バッファ手段のうちの共有のバッファ領域が対応し、K+1番目乃至N番目のセクタに対して前記バッファ手段のうちの個別のバッファ領域がそれぞれ対応するように設定し、
リード要求に応じて、ストレージディスクの回転位置に基づいて次にリードするセクタを決定し(処理i)、決定されたセクタのデータをリードし(処理ii)、リードされたセクタのデータを対応するバッファ領域へ格納し(処理iii)、データが格納されたセクタに対してデータ未処理を示すフラグをセットする(処理iv)処理を、繰り返して実行すると共に、
同じくリード要求に応じて、先頭セクタからセクタ番号順に、前記フラグがセットされていることを条件に当該セクタからのデータを該当するバッファ領域から前記シリアルデータ転送手段を介して外部へ転送し(処理v)、データが転送されたセクタのフラグをクリアする(処理v)処理を、繰り返して実行し、
データライト時には、前記バッファ管理テーブルを、先頭のセクタから所定J番目(J<N)のセクタに対して前記バッファ手段のうちの個別のバッファ領域がそれぞれ対応し、J+1番目乃至N番目のセククに対して前記バッファ手段のうちの共有のバッファ領域が対応するように設定し、
ライト要求に応じて、先頭セクタからセクタ番号順に、データ未処理を示すフラグがクリアされていることを条件に、前記シリアルデータ転送手段を介して外部から転送されたデータを該当するバッファ領域へ格納し(処理Vii)、データが格納されたセクタに対して、データ未処理を示すフラグをセットする(処理Viii)、処理を繰り返して実行すると共に、
同じくライト要求に応じて、ストレージディスクの回転位置に基づいて次にライトするセクタを決定し(処理ix)、決定されたセクタの前記フラグがセットされていることを条件に、ストレージディスクの当該セクタにデータをライトし(処理x)、データがライトされたセクタに対する前記フラグをクリアする(処理xi)、処理を繰り返して実行することを特徴とする。
また、そのストレージディスク制御装置において、前記K番目、前記J番目及び前記複数N個は、J=N−K、になるように、設定されていることを特徴とする。
本発明によれば、データリード時、データライト時のデータ転送に用いるバッファ手段のバッファ領域(数)を伸縮することができるので、ハードウエア構成を変えることなく、バッファ手段(RAMバッファ)の記憶容量と速度性能のトレードオフを考慮したシステムを構築できる。
また、シリアルデータ転送手段の転送速度や、他装置の使用状況にもよるが、全セクタ分のバッファ領域を持つ特許文献1のものと比して、実質的に同程度の速度性能を得ることも期待できる。
また、一般にUSB−FDD装置に代表される本発明のストレージディスク制御装置は、種々のフォーマットのストレージディスクに対応できるようになっており、各フォーマットによって要求される速度性能も、使用されるバッファ容量も異なる。本発明では、各フォーマットに対して最大の性能が出せるようにバッファ手段の管理を適応的に変えていくことができる。
使用できるバッファ領域(数)が制限される場合に、制限された容量まで一杯に使用して限られたバッファ資源で最大の性能を引き出せる。また、速度性能がさほど要求されない場合には、バッファ手段として使用するバッファ領域(数)を少なくし、残余のバッファ領域は他の用途に使用できる。また、バッファ資源(ハードウエアRAM)を節約できる。
図1は、本発明に係るUSB−FDD装置10の構成を示す図である。
図2は、リード時に使用するバッファ管理テーブルの構造を示す図である
図3は、図2のバッファ領域番号とセクタ番号との対応関係を示す図である。
図4は、リード時の処理を説明するフローチャートである。
図5は、ライト時に使用するバッファ管理テーブルの構造を示す図である。
図6は、図5のバッファ領域番号とセクタ番号との対応関係を示す図である。
図7は、ライト時の処理を説明するフローチャートである。
以下、本発明のUSB(ユニバーサル・シリアル・バス)等のシリアルデータ転送手段を用いたFDD(フレキシブル・ディスク・ドライブ)等のストレージディスク駆動装置におけるデータリード方法、データライト方法、及びそのストレージディスクドライブ装置の実施例について、図を参照して説明する。この実施例では、シリアルデータ転送手段としてUSBを、ストレージディスクとしてFDを、且つバッファ手段として所要のバッファ領域を持つRAMを、それぞれ用いた場合について説明する。この例示に限らず、これらのものと同等のものが使用できる。
図1は、本発明に係るUSB−FDD装置10の構成を示す図である。本発明のUSB−FDD装置10は、USBバス12を介してUSB通信を行うUSBコントローラ(以下、USBC)11と、FDのリード・ライトを行うFD制御手段であるFDコントローラ(以下、FDC)16及びFDD17と、プログラムを格納するファームウエアROM13と、バッファ手段としての複数のバッファ領域を有するRAM15と、これらの各構成要素の制御を司り、プログラ厶を実行するCPU14を有している。
本発明では、FDのデータのリード/ライトを使用状況に合わせて高速に行うと共に、そのデータのリード/ライトに使用するバッファ手段として必要なRAM15の容量を少なくする。また、そのRAM15のバッファ領域を、使用状況や他用途の必要度に合わせて、調節可能にする。このような処理を行うために、バッファ管理用テーブルを設けている。
このバッファ管理用テーブルは、セクタに対して対応するバッファ領域がどれかを示すこと、複数のセクタが同じバッファ領域を使用する場合があること(共有バッファ領域となる)、各セクタに対して未処理のデータがあることを示すフラグを設けること、共有バッファ領域を使用するセクタ数は、バッファ手段として使用できるRAM容量に応じて変え得ること、RAM容量のうちのバッファ手段として用いる容量を変更可能であること等の機能の一部あるいは全部を有している。
このバッファ管理用テーブルは、例えば、ファームウエアROM13に格納されており、CPU14の制御の元にRAM15に読み出される。また、このバッファ管理用テーブルは、例えば、別のデバイスを用いて、ハードウエアで実現する構成でもよい。
まず、図2〜図4を参照して、FDのデータをリードしてUSBバス12側へ送信する場合(以下、リード時)について説明する。
図2は、リード時に使用するバッファ管理テーブルの構造を示す図である。図2において、複数N個のセクタに対して1〜Nのセクタ番号が付されている。各セクタ1〜Nに対応するバッファ領域の番号A〜Rが付されている。複数N個は例えば256であり、バッファ領域数は例えばN個の50%〜90%、好適には75%程度の比率に設定される。この複数N個の数及びそれに対するバッファ領域数の比率は、それぞれ必要に応じて、変更される。
先頭のセクタ1から所定K番目(K<N)のセクタ(この例では、セクタ6)に対してバッファ手段であるRAM15のうちの共有のバッファ領域A、Bが対応するように設定されている。また、K+1番目(この例では、セクタ7)乃至N番目のセクタに対してRAM15のうちの個別のバッファ領域がそれぞれ対応するように設定されている。
共有のバッファ領域A、Bは、2セクタ分のバッファ領域を用いてリングバッファとして動作させる。即ち、FDC16のリードしたデータをバッファ領域Aに格納し、同時にバッファ領域Bに格納されているデータをUSBC11で送信する。この動作を共有のバッファ領域A、Bを交換しながら、セクタ1〜6のデータを送出する。なお、共有のバッファ領域として、2つの領域を用いることとして説明するが、3つ以上のバッファ領域を、共有のバッファ領域として使用してもよい。
未処理フラグは、FDC16がデータをリードしたが、USBC11がそのデータをまだ送信していない場合に、セットされる。即ち、フラグ「1」が立てられる。なお、図2に示した未処理フラグは、個別のバッファ領域C〜Rに対応するセクタ7〜Nにフラグがセットされ、共有のバッファ領域A、Bに対応するセクタ1〜6のフラグがクリアされている状況を、例示している。
図3は、図2のセクタ番号1〜Nとバッファ領域番号A〜Rの関係を、バッファ領域番号A〜Rから見た図である。バッファ領域A、Bはセクタ1〜6で共用され、バッファ領域C〜Rは、個別にセクタ7〜Nに対応している。
図4は、リード時の処理を説明するフローチャートである。図4において、リード要求が発生される(ステップS100)と、まず、FDの目標とするトラックにヘッドを移動させる。そして、FDC処理が開始される(ステップS110)と同時に、USBC処理が開始される(ステップS120)。
FDC処理では、ステップS111において、FDD17のヘッド位置に対するFDの回転位置を例えばIDコマンドを発行することにより得る。このFDの回転位置に基づいて次にリードするセクタを決定する。「次にリードするセクタ」は、セクタの頭からのデータを漏れなく読みとるために、FDの回転位置のセクタの次の順番のセクタである。
ステップS112において、決定されたセクタのデータをリードする。ステップS113において、リードされたセクタのデータを対応するバッファ領域へ格納する。格納先のバッファ領域は図2のバッファ管理テーブルにしたがう。
ステップS114において、データが格納されたセクタに対して、データ未処理を示すフラグをセットする。このフラグをセットする際に、そのセクタが先頭のセクタから所定K番目までのセクタである場合には、同じバッファ領域に対応する他のセクタのフラグをクリアする。即ち、そのセクタのデータが格納されたバッファ領域が共有バッファ領域A(またはB)である場合には、その共有バッファ領域A(またはB)にはそれ以前のデータにそのセクタのデータが上書きして格納される。したがって、上書きされたそれ以前のデータ(他のセクタのデータ)は送信されないことになってしまうので、他のセクタのデータに対するフラグはクリアされる。
個別のバッファ領域K+1(図2の例では、セクタ7)からNでは、データが上書きされることはないから、ステップS114でのフラグのセットだけが行われる。
このステップS111〜ステップS114のFDC処理が、ステップS115でUSBC処理が完了したことが確認されるまで、繰り返して行われる。
なお、ステップS111における「次にリードするセクタ」は、データリードの当初においては、FDの回転位置がセクタ1番目乃至セクタK番目にあるときはセクタK+1番目とし、その回転位置がセクタK番目以降にあるときは当該セクタの次の順番のセクタとしてもよい。
また、ステップ113において、リードされたセクタのデータを対応するバッファ領域に格納するに際し、データリードの当初においては、リードされたセクタのデータが、セクタ1番目乃至セクタK番目のセクタのデータであるときにはバッファ領域に格納せず、K+1番目以降のセクタデータから対応するバッファ領域に順次格納するようにしてもよい。
即ち、FDC処理が開始された当初(データリードの当初)のFDの回転位置がセクタ1番目乃至セクタK番目にあるときは、そのセクタのデータは読み出されてバッファ領域A、Bに格納されても、処理の進行とともに上書きされてしまうから、セクタ1番目乃至セクタK番目のデータの読み出しやバッファ領域への格納を省略する。これにより、データリードの当初における無駄な処理を省くことができる。
USBC処理では、ステップS121において、セクタ番号を示すセクタ変数Iを「1」にセットする。これはUSBC11からUSB12へ転送するセクタデータは、セクタ番号の若い順、即ちセクタ1からセクタ番号順に転送する必要があることによる。以下、セクタ変数Iのセクタを、単にセクタIという。
ステップS122において、セクタIのフラグが「1」かどうか判定し、フラグが「1」でない場合には「1」がセットされるまで、待機する。フラグが「1」と判定されると、そのセクタのデータがFDC16によってリードされたが、未だUSBC11が送信していないことを意味する。
そこで、ステップS123にてセクタIのデータを送信するとともに、セクタIのフラグをクリア(即ち「0」)する(ステップS124)。引き続いて、ステップS125で、セクタ変数Iを「I+1」にセットする。
ステップS126にて、セクタ変数Iが「N+1」になったかどうかを判定する。セクタ変数Iが「N+1」になるまで、ステップS122〜ステップS125の処理を、繰り返して行う。セクタ変数Iが「N+1」になると、当該トランクの全てのセクタ1〜NのデータがUSB12に転送されたことになり、USBC処理が終了する(ステップS127)。また、ステップS115でもUSBC処理完了により、FDC処理が終了する(ステップS116)。
以上のように、リード時に、FDC処理では、FDの回転位置に基づいて次にリードするセクタを決定し、当該セクタに対応するバッファ領域にデータを格納してゆく。ただ、データリードの当初においては、FDの回転位置がセクタ1番目乃至セクタK番目(即ち、共有のバッファ領域に対応する)にあるときは、その間のセクタのデータを2回読みするか、あるいは1回目は読みとらない。また、USBC処理では、特許文献1等と同じく、先頭セクタのデータからUSB12に転送する。したがって、特許文献1に比して原理的には若干の時間遅延が生じることになる。しかし、他装置との共用などの条件を含めたUSBのデータ転送速度と、処理速度(他装置との共用などの条件)や、共有バッファ領域に対応するセクタ数を適切に設定することによって、本発明は、リード時に全セクタ分のバッファ領域を持つ特許文献1のものと比して、実質的に同程度の速度性能を得ることも期待できる。
つぎに、図5〜図7を参照して、USBバス12側からのデータを受信してFDの該当するトラックの各セクタにデータをライトする場合(以下、ライト時)について説明する。
図5は、ライト時に使用するバッファ管理テーブルの構造を示す図であり、基本的には図2のリード時に使用するバッファ管理テーブルと同様である。
この図5では、USBCからは該当するトラックのセクタデータが、先頭セクタのデータから送信されてくるから、これを効率よく受信できるような構造とされている。
先頭のセクタ1から所定J番目(J<N)のセクタ(この例では、セクタN−6)に対してバッファ手段であるRAM15のうちの個別のバッファ領域がそれぞれ対応するように設定されており、N−5番目〜N番目のセクタに対してRAM15のうちの共有のバッファ領域Q、Rが対応するように設定されている。
共有のバッファ領域Q、Rは、2セクタ分のバッファ領域を用いてリングバッファとして動作させる。即ち、USBC11の受信したデータをバッファ領域Qに格納し、同時にバッファ領域Rに格納されているデータをFDC16、FDD17でFDにライトする。この動作を共有のバッファ領域Q、Rを交換しながら、セクタN−5〜Nのデータをライトする。
未処理フラグは、USBC11が受信したが、FDC16、FDD17がまだライトしていない場合に、セットされる。即ち、フラグ「1」が立てられる。なお、図5に示した未処理フラグは、個別のバッファ領域A〜Pに対応するセクタ1〜N−6及び共有のバッファ領域Q、Rに対応するセクタN−5〜N−4にフラグがセットされ、共有のバッファ領域A、Bに対応するセクタN−3〜Nのフラグがクリアされている状況を、例示している。
なお、図5で、セクタ番号とバッファ領域番号との対応は、図2のその対応と比較するといずれかの番号を逆にした形となる。したがって、図5のバッファ領域番号の欄に括弧書きで示したように、図2の対応関係を倒立した形とすることがよい。このように、対応関係を倒立した形とすることによって、データリード時とデータライト時とでバッファ管理テーブルの管理が、容易になる。
図6は、図5のセクタ番号1〜Nとバッファ領域番号A〜Rの関係を、バッファ領域番号A〜Rから見た図である。バッファ領域Q、RはセクタN〜N−5で共用され、バッファ領域A〜Pは、個別にセクタ1〜N−6に対応している。
図7は、ライト時の処理を説明するフローチャートである。図7において、ライト要求が発生される(ステップS200)と、まず、FDの目標とするトラックにヘッドを移動させる。そして、USBC処理が開始される(ステップS210)と同時に、FDC処理が開始される(ステップS220)。
USBC処理では、ステップS211において、セクタ番号を示すセクタ変数Iを「1」にセットする。これはUSB12からUSBC11へ転送され受信されるセクタデータは、セクタ番号の若い順、即ちセクタ1からセクタ番号順に受信される。この転送、受信を速やかに、効率よく行うためである。以下、セクタ変数Iのセクタを、単にセクタIという。
ステップS212において、セクタIの共有バッファのフラグが「0」かどうか判定し、フラグが「0」の時には、ステップS213に進む。フラグが「0」でない場合には「0」にクリアされるまで待機することになる。しかし、バッファ管理テーブルが図5の構造を持つので、セクタ番号1〜N−4までは、待機することはない。セクタ番号N−3以降で、フラグが「1」と判定されることがあるので、その場合には「待機」することになる。
ステップS213にてセクタIのデータを受信し、対応するバッファ領域に格納する。そして、ステップS214で、セクタIのフラグをセット(即ち「1」)する。引き続いて、ステップS215で、セクタ変数Iを「I+1」にセットする。
ステップS216にて、セクタ変数Iが「N+1」になったかどうかを判定する。セクタ変数Iが「N+1」になるまで、ステップS212〜ステップS215の処理を、繰り返して行う。セクタ変数Iが「N+1」になると、当該トラックの全てのセクタ1〜Nのデータが対応するバッファ領域に格納されたことになり、USBC処理が終了する(ステップS217)。
FDC処理では、ステップS221において、FDD17のヘッド位置に対するFDの回転位置を例えばIDコマンドを発行することにより得る。このFDの回転位置に基づいて次にライトするセクタを決定する。「次にライトするセクタ」は、受信したデータを全て書き込むために、FDの回転位置のあるセクタの次の順番のセクタである。
ステップS222において、決定されたセクタのフラグが「1」であるかどうかを判定する。そのセクタのフラグが「1」でなければ、ステップS221に戻り、FDの回転に伴って進行(更新)する次にライトするセクタのフラグ「1」を判定する。
ステップS222において、フラグ「1」と判定されると、ステップS223で当該セクタへデータをライトする。そして、ステップS224において、ライトされたセクタが対応するバッファ領域のフラグをクリア「0」する。
このステップS221〜ステップS224のFDC処理が、ステップS225で全セクタへのデータライト処理が完了したことが確認されるまで、繰り返して行われる。全セクタへのデータライト処理が完了すると、FDC処理は終了する(ステップS226)。
なお、USBC処理の処理速度とFDC処理の処理速度との関係などによって、FDC処理がUSBC処理に追いついてしまうことも予想される。この場合には、USBCで受信したデータを、バッファ手段であるRAM15に格納することなく、FDCに直接転送するようにしてもよい。これにより、ライト処理に要する時間が短縮される。
以上のようにライト時に、また、USBC処理では、特許文献1等と同じく、USB12からは先頭セクタのデータからセクタの順番に受信される。FDC処理は、USBC処理と同時に開始されるが、「次にライトするセクタ」にはFDの回転位置によっては、未だそのセクタへのデータが受信できていない、即ち対応するバッファ領域に格納されていない場合が存在する。したがって、特許文献1に比して原理的には若干の時間遅延が生じることになる。しかし、他装置との共用などの条件を含めたUSBのデータ転送速度と処理速度(他装置との共用などの条件)や、共有バッファ領域に対応するセクタ数を適切に設定することによって、本発明は、ライト時にも全セクタ分のバッファ領域を持つ特許文献1のものと比して、実質的に同程度の速度性能を得ることも期待できる。
そして、本発明では、データリード時、データライト時のデータ転送に用いるバッファ手段15のバッファ領域(数)を伸縮する。これにより、ハードウエア構成を変えることなく、バッファ手段(RAMバッファ)の記憶容量と速度性能のトレードオフを考慮したシステムを構築できる。
また、一般にUSB−FDD装置10は、種々のフォーマットのFDに対応するので、そのフォーマットによって要求される速度性能も、使用されるバッファ容量も異なる。本発明では、各フォーマットに対して最大の性能が出せるようにバッファ手段15の管理を適応的に変えていく。これにより、例えば、使用できるバッファ領域(数N)が制限される場合に、制限された容量まで一杯に使用して限られたバッファ資源で最大の性能を引き出せる。また、速度性能がさほど要求されない場合には、バッファ手段として使用するバッファ領域(数N)を少なくし、残余のバッファ領域(RAM容量のうちバッファ手段として使用しない領域)は他の用途に使用できる。また、バッファ資源(ハードウエアRAM)を節約できる。
本発明に係るストレージディスクに対するデータリード方法、データライト方法、及びストレージディスク制御装置は、USB等のシリアルデータ転送手段を用いたFDD等のストレージディスク駆動装置のリード/ライトを使用状況に合わせて高速に行うと共に、RAMバッファの容量を少なくすることが可能である。

Claims (11)

  1. シリアルデータ転送手段とバッファ手段を含むストレージディスク駆動装置を用いてストレージディスクの複数N個のセクタのデータをリードするデータリード方法において、
    先頭のセクタから所定K番目(K<N)のセクタに対して前記バッファ手段のうちの共有のバッファ領域が対応し、K+1番目乃至N番目のセクタに対して前記バッファ手段のうちの個別のバッファ領域がそれぞれ対応するように設定し、
    リード要求に応じて次の処理i乃至処理iv、
    処理i;ストレージディスクの回転位置に基づいて次にリードするセクタを決定する、
    処理ii;決定されたセクタのデータをリードする、
    処理iii;リードされたセクタのデータを対応するバッファ領域へ格納する、
    処理iv;データが格納されたセクタに対して、データ未処理を示すフラグをセットする、
    を繰り返して実行すると共に、
    同じくリード要求に応じて次のステップv乃至ステップvi、
    処理v;先頭セクタからセクタ番号順に、前記フラグがセットされていることを条件に当該セクタからのデータを該当するバッファ領域から前記シリアルデータ転送手段を介して外部へ転送する、
    処理vi;データが転送されたセクタのフラグをクリアする、
    を繰り返して実行することを特徴とする、ストレージディスクのデータリード方法。
  2. 前記処理iにおける次にリードするセクタは、データリードの当初においては、ストレージディスクの回転位置がセクタ1番目乃至セクタK番目にあるときはセクタK+1番目であり、その回転位置がセクタK番目以降にあるときは当該セクタの次の順番のセクタであることを特徴とする、請求項1に記載のストレージディスクのデータリード方法。
  3. 前記処理iiiにおけるセクタのデータをバッファ領域へ格納するに際し、データリードの当初においては、リードされたセクタのデータが、セクタ1番目乃至セクタK番目のセクタのデータであるときにはバッファ領域に格納せず、K+1番目以降のセクタデータから対応するバッファ領域に順次格納することを特徴とする、請求項1に記載のストレージディスクのデータリード方法。
  4. 前記処理iにおける次のリードセクタは、データリードの当初においては、ストレージディスクの回転位置のセクタ番号に関わらず、当該セクタの次の順番のセクタであり、
    且つ前記処理iiiにおけるセクタのデータをバッファ領域へ格納するに際し、データリードの当初においては、リードされたセクタのセクタ番号に関わらず、対応するバッファ領域に順次格納することを特徴とする、請求項1に記載のストレージディスクのデータリード方法。
  5. 前記処理iにおける次にリードするセクタは、ストレージディスクの回転位置のセクタの次の順番のセクタであり、
    前記処理ivにおけるフラグをセットする際に、そのセクタが先頭のセクタから所定K番目までのセクタである場合には、同じバッファ領域に対応する他のセクタのフラグをクリアすることを特徴とする、請求項1に記載のストレージディスクのデータリード方法。
  6. 前記共有のバッファ領域は、リングバッファとして使用される2つ以上のバッファ領域であることを特徴とする、請求項1に記載のストレージディスクのデータリード方法。
  7. シリアルデータ転送手段とバッファ手段を含むストレージディスク駆動装置を用いてストレージディスクの複数N個のセクタへデータをライトするデータライト方法において、
    先頭のセクタから所定J番目(J<N)のセクタに対して前記バッファ手段のうちの個別のバッファ領域がそれぞれ対応し、J+1番目乃至N番目のセクタに対して前記バッファ手段のうちの共有のバッファ領域が対応するように設定し、
    ライト要求に応じて次の処理Vii乃至処理Viii、
    処理Vii;先頭セクタからセクタ番号順に、データ未処理を示すフラグがクリアされていることを条件に、前記シリアルデータ転送手段を介して外部から転送されたデータを該当するバッファ領域へ格納する、
    処理Viii;データが格納されたセクタに対して、データ未処理を示すフラグをセットする、
    を繰り返して実行すると共に、
    同じくライト要求に応じて次の処理ix乃至処理xi、
    処理ix;ストレージディスクの回転位置に基づいて次にライトするセクタを決定する、
    処理x;決定されたセクタの前記フラグがセットされていることを条件に、ストレージディスクの当該セクタにデータをライトする、
    処理xi;データがライトされたセクタに対する前記フラグをクリアする、
    を繰り返して実行することを特徴とする、ストレージディスクのデータライト方法。
  8. 前記処理ixにおける次にライトするセクタは、ストレージディスクの回転位置にあるセクタの次の順番のセクタであることを特徴とする、請求項7に記載のストレージディスクのデータライト方法。
  9. 前記共有のバッファ領域は、リングバッファとして使用される2つ以上のバッファ領域であることを特徴とする、請求項7に記載のストレージディスクのデータライト方法。
  10. シリアルデータ転送手段と、バッファ手段と、ストレージディスク制御手段と、複数N個のセクタからなるセクタ群と共有及び個別対応のバッファ領域からなるバッファ領域群とを対応させるバッファ管理テーブルと、これらのシリアルデータ転送手段乃至バッファ管理テーブルの各々と結合され且つそれらの制御を司るCPUを含み、
    データリード時には、前記バッファ管理テーブルを、先頭のセクタから所定K番目(K<N)のセクタに対して前記バッファ手段のうちの共有のバッファ領域が対応し、K+1番目乃至N番目のセクタに対して前記バッファ手段のうちの個別のバッファ領域がそれぞれ対応するように設定し、
    リード要求に応じて、ストレージディスクの回転位置に基づいて次にリードするセクタを決定し(処理i)、決定されたセクタのデータをリードし(処理ii)、リードされたセクタのデータを対応するバッファ領域へ格納し(処理iii)、データが格納されたセクタに対してデータ未処理を示すフラグをセットする(処理iv)処理を、繰り返して実行すると共に、
    同じくリード要求に応じて、先頭セクタからセクタ番号順に、前記フラグがセットされていることを条件に当該セクタからのデータを該当するバッファ領域から前記シリアルデータ転送手段を介して外部へ転送し(処理v)、データが転送されたセクタのフラグをクリアする(処理v)処理を、繰り返して実行し、
    データライト時には、前記バッファ管理テーブルを、先頭のセクタから所定J番目(J<N)のセクタに対して前記バッファ手段のうちの個別のバッファ領域がそれぞれ対応し、J+1番目乃至N番目のセクタに対して前記バッファ手段のうちの共有のバッファ領域が対応するように設定し、
    ライト要求に応じて、先頭セクタからセクタ番号順に、データ未処理を示すフラグがクリアされていることを条件に、前記シリアルデータ転送手段を介して外部から転送されたデータを該当するバッファ領域へ格納し(処理Vii)、データが格納されたセクタに対して、データ未処理を示すフラグをセットする(処理Viii)、処理を繰り返して実行すると共に、
    同じくライト要求に応じて、ストレージディスクの回転位置に基づいて次にライトするセクタを決定し(処理ix)、決定されたセクタの前記フラグがセットされていることを条件に、ストレージディスクの当該セクタにデータをライトし(処理x)、データがライトされたセクタに対する前記フラグをクリアする(処理xi)、処理を繰り返して実行することを特徴とする、ストレージディスク制御装置。
  11. 前記K番目、前記J番目及び前記複数N個は、J=N−K、になるように、設定されていることを特徴とする、請求項10に記載のストレージディスク制御装置。
JP2006514845A 2004-06-21 2005-06-15 ストレージディスクに対するデータリード方法、データライト方法、及びストレージディスク制御装置 Pending JPWO2005124529A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004182270 2004-06-21
JP2004182270 2004-06-21
PCT/JP2005/011394 WO2005124529A1 (ja) 2004-06-21 2005-06-15 ストレージディスクに対するデータリード方法、データライト方法、及びストレージディスク制御装置

Publications (1)

Publication Number Publication Date
JPWO2005124529A1 true JPWO2005124529A1 (ja) 2008-04-17

Family

ID=35509880

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006514845A Pending JPWO2005124529A1 (ja) 2004-06-21 2005-06-15 ストレージディスクに対するデータリード方法、データライト方法、及びストレージディスク制御装置

Country Status (5)

Country Link
US (1) US7797482B2 (ja)
JP (1) JPWO2005124529A1 (ja)
CN (1) CN100405280C (ja)
TW (1) TW200601282A (ja)
WO (1) WO2005124529A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866277B (zh) * 2010-06-18 2011-11-16 华为技术有限公司 数据排序方法和装置
CN102541456B (zh) * 2010-12-13 2016-08-24 深圳艾科创新微电子有限公司 一种扇区模式下的闪存写入方法及系统
CN102170478B (zh) * 2011-05-16 2014-02-19 浙江大学 基于autosar协议栈的pdu缓存方法
KR20140146275A (ko) * 2013-06-14 2014-12-26 삼성전자주식회사 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 시스템
US20240028259A1 (en) * 2022-07-21 2024-01-25 Micron Technology, Inc. Buffer allocation for reducing block transit penalty

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0259923A (ja) 1988-08-26 1990-02-28 Hitachi Ltd ディスク制御方法および装置
JPH04336317A (ja) 1991-05-14 1992-11-24 Kobe Nippon Denki Software Kk ディスク装置制御方式
JP3136811B2 (ja) 1992-12-11 2001-02-19 松下電器産業株式会社 代替セクタ処理方法
CA2253729A1 (en) * 1998-11-10 2000-05-10 Newbridge Networks Corporation Flexible threshold based buffering system for use in digital communication devices
JP2000305716A (ja) * 1999-04-23 2000-11-02 Sony Corp ディスク制御装置及びディスク制御方法
US7213087B1 (en) * 2000-08-31 2007-05-01 Hewlett-Packard Development Company, L.P. Mechanism to control the allocation of an N-source shared buffer
JP2004103103A (ja) 2002-09-09 2004-04-02 Y E Data Inc Usb接続のフレキシブルディスクドライブ装置におけるトラックの高速リード/ライト方法
JP2004171411A (ja) * 2002-11-21 2004-06-17 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びバッファメモリの管理方法
JP2006147096A (ja) * 2004-11-22 2006-06-08 Hitachi Global Storage Technologies Netherlands Bv 磁気ディスク媒体、磁気ディスク装置、及び磁気ディスク媒体の回転位置検出方法

Also Published As

Publication number Publication date
US7797482B2 (en) 2010-09-14
WO2005124529A1 (ja) 2005-12-29
US20080253013A1 (en) 2008-10-16
TW200601282A (en) 2006-01-01
CN100405280C (zh) 2008-07-23
CN1910544A (zh) 2007-02-07

Similar Documents

Publication Publication Date Title
CN1159663C (zh) 数据库储库及其访问管理方法
US5664143A (en) Method and apparatus for sorting disk access commands in a rotational position queue according to time differences between the commands
US5619728A (en) Decoupled DMA transfer list storage technique for a peripheral resource controller
JPWO2005124529A1 (ja) ストレージディスクに対するデータリード方法、データライト方法、及びストレージディスク制御装置
CN1864145A (zh) 用于处理输入/输出命令的方法、系统和程序
EP0593174A2 (en) Dual actuator DASD
CN1811741A (zh) 直接存储器存取控制方法、直接存储器存取控制器、信息处理系统及程序
WO2003043254A2 (en) Transferring data using direct memory access
WO2016155474A1 (en) Acceleration framework with direct data transfer mechanism
US6665746B1 (en) System and method for prioritized context switching for streaming data memory transfers
US7130932B1 (en) Method and apparatus for increasing the performance of communications between a host processor and a SATA or ATA device
US6567886B1 (en) Disk drive apparatus and control method thereof
JP2010282422A (ja) データ記憶装置及びデータ転送制御方法
US8291125B2 (en) Speculative read-ahead for improving system throughput
JP2001022529A5 (ja) マルチドライブ記憶システム及びディスクドライブ装置の制御方法
CN1549974A (zh) 在存储区域网络中的异步镜像
GB2361557A (en) Data storage device with data transfer before write instruction
JPH05173718A (ja) 磁気ディスクサブシステム
JP2003316523A (ja) データ記憶装置、実行コマンドの選択方法およびデータ処理方法
CN1274887A (zh) 中断控制系统
EP1517246B1 (en) A method for transferring data and a data transfer interface
US7272680B2 (en) Method of transferring data between computer peripherals
JPH10269138A (ja) キャッシュメモリ制御及びそれを用いたデータ処理装置
JPH08195030A (ja) ディスク装置のデータ転送方法
CN1924862A (zh) 调整计算系统的一个或多个输入/输出参数的装置和方法