JP2008146335A - データ転送制御装置、データ転送制御プログラムおよびデータ転送制御方法 - Google Patents

データ転送制御装置、データ転送制御プログラムおよびデータ転送制御方法 Download PDF

Info

Publication number
JP2008146335A
JP2008146335A JP2006332499A JP2006332499A JP2008146335A JP 2008146335 A JP2008146335 A JP 2008146335A JP 2006332499 A JP2006332499 A JP 2006332499A JP 2006332499 A JP2006332499 A JP 2006332499A JP 2008146335 A JP2008146335 A JP 2008146335A
Authority
JP
Japan
Prior art keywords
data
data transfer
buffer
sector
storage medium
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
JP2006332499A
Other languages
English (en)
Inventor
Yoshiyuki Jufuku
義幸 寿福
Masayuki Furuta
昌之 古田
Yoshinobu Shimokawa
良信 下川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006332499A priority Critical patent/JP2008146335A/ja
Priority to EP07019711A priority patent/EP1930812A2/en
Priority to US11/907,397 priority patent/US20080140950A1/en
Priority to CNA2007101674571A priority patent/CN101196863A/zh
Publication of JP2008146335A publication Critical patent/JP2008146335A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

【課題】データ転送の処理能力の低下を回避しながら、バッファの容量を最小アクセス単位以下に抑えることを課題とする。
【解決手段】バッファは、記憶媒体との間および制御部との間で転送ビット数(電気的に同一のタイミングで転送されるデータのビット数)の整数倍の容量を有するものであって、バッファと記憶媒体との間で転送ビット数単位でデータ転送を行うことと並行して、制御部とバッファとの間で転送ビット数単位でデータ転送を行い、バッファにおけるデータの出力(入力)の回数をカウントし、回数が1セクタを転送ビット数で除算した数分カウントしたことを示した場合に、1セクタ分のデータが記憶媒体に向けて出力(入力)されたことをカウントし、カウントされたセクタ数と、記憶媒体においてバッファから入力(出力)されたセクタ数とを比較して、データ転送が正常に行われたか否かを判定する。
【選択図】 図1

Description

この発明は、データ転送制御装置、データ転送制御プログラムおよびデータ転送制御方法に関する。
従来より、交換装置などのボードに搭載される記憶媒体として、メモリー・カード(Memory Card)など、着脱可能な記憶媒体(リムーバブル・メディア:Removable media)の使用が増加している。メモリー・カードとは、フラッシュ・メモリ(Flash Memory)と呼ばれるROM(Read Only Memory)を採用するカード型の小型記憶媒体のことであり、SanDisk社が開発したコンパクト・フラッシュ(CF:Compact Flash)などがその一例として挙げられる。
ところで、フラッシュ・メモリに対するアクセス(ライト処理、リード処理)は、フラッシュ・メモリと制御部(フラッシュ・メモリとの間でデータ転送を行う部)との間にバッファが設けられることで実現されるのが一般的である。具体的に説明すると、フラッシュ・メモリに対するアクセス単位である1ブロック(ライト処理、リード処理の単位)が、1セクタ(最小アクセス単位)である場合には、例えば、図12の(A)に示すように、フラッシュ・メモリと制御部との間に1セクタ分の容量のバッファが設けられる。そして、ライト処理であれば、データ転送を制御するデータ転送制御装置が、1セクタ分のデータを制御部から一括してバッファに転送し、次に、バッファに転送した1セクタ分のデータを一括してフラッシュ・メモリに転送する。また、1ブロックが複数セクタである場合には、図12の(B)に示すように、1セクタ分の容量のバッファが複数設けられ、データ転送制御装置が、かかるデータ転送を1セクタごとに順次行う。
もっとも、上記した手法では、データ転送制御装置は、バッファに対するデータ転送が1セクタ分のデータについて完了するまで、バッファに転送したデータをフラッシュ・メモリに転送することができないことから、データ転送の処理能力が低下する。また、1ブロックが複数セクタである場合には、1セクタ分の容量のバッファが複数設けられなければならない。このため、例えば、特許文献1に開示されている手法では、図13の(A)よび(B)に示すように、フラッシュ・メモリと制御部との間にバッファが2つ設けられ、制御部とバッファとの間のデータ転送、および、バッファとフラッシュ・メモリとの間のデータ転送を並行して行うことで、データ転送の処理能力の低下を回避している。また、1ブロックが複数セクタである場合には、データ転送制御装置が、転送セクタ数をカウントすることで、1セクタ分の容量のバッファによって複数セクタ分のデータ転送を実現している。
特開2002−288034号公報
ところで、上記した従来の技術では、以下に説明するように、データ転送の処理能力の低下を回避しながら、バッファの容量を抑えることができないという課題がある。すなわち、特許文献1に開示される手法では、確かに、2つのバッファが設けられ、アクセス制御装置がデータ転送を並行して行うことで、データ転送の処理能力の低下を回避することは可能であるが、結果として、1セクタ分の容量のバッファが2つ設けられなければならないことから、バッファの容量を抑えることができない。
そこで、この発明は、上記した従来技術の課題を解決するためになされたものであり、データ転送の処理能力の低下を回避しながら、バッファの容量を最小アクセス単位以下に抑えることが可能なデータ転送制御装置、データ転送制御プログラムおよびデータ転送制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1に係る発明は、所定のセクタ数のデータを当該所定のセクタ数単位でデータを管理する記憶媒体との間でデータ転送する制御部を有し、当該制御部と当該記憶媒体との間でバッファを介して行われる当該データ転送を制御するデータ転送制御装置であって、前記バッファは、前記記憶媒体との間および前記制御部との間で電気的に同一のタイミングで転送されるデータのビット数を示す転送ビット数の整数倍の容量を有するものであって、当該バッファと当該記憶媒体との間で当該転送ビット数単位でデータ転送を行うことと並行して、当該制御部と当該バッファとの間で当該転送ビット数単位でデータ転送を行うデータ転送手段と、前記バッファにおける前記記憶媒体に向けたデータの出力および/または当該記憶媒体からのデータの入力の回数をカウントするデータカウント手段と、前記データカウント手段によってカウントされた前記回数が、1セクタを前記転送ビット数で除算した数分カウントしたことを示した場合に、1セクタ分のデータが前記記憶媒体に向けて出力されたことおよび/または当該記憶媒体から入力されたことをカウントし、当該出力されたセクタ数および/または入力されたセクタ数をカウントするセクタカウント手段と、前記セクタカウント手段によってカウントされた前記セクタ数と、前記記憶媒体において前記バッファから入力されたセクタ数および/または当該バッファに向けて出力されたセクタ数とを比較して、当該データ転送が正常に行われたか否かを判定する判定手段と、を備えたことを特徴とする。
また、請求項2に係る発明は、上記の発明において、前記バッファは、1セクタ分の容量を有するものであって、前記制御部と前記バッファとの間で1セクタ分のデータ転送が行われた後に、当該制御部と当該バッファとの間で当該転送された1セクタ分のデータを転送するデータ転送、および/または、前記バッファと前記記憶媒体との間で1セクタ分のデータ転送が行われた後に、前記制御部と前記バッファとの間で当該転送された1セクタ分のデータを転送するデータ転送を行う一括データ転送手段と、データ転送を行うに際し、前記データ転送手段によるデータ転送、または、前記一括データ転送手段によるデータ転送のいずれか一つを選択する選択手段と、をさらに備えたことを特徴とする。
また、請求項3に係る発明は、上記の発明において、前記データ転送手段によって前記制御部と前記記憶媒体との間で転送するデータが終了した際に、前記データカウント手段によってカウントされた前記回数が前記1セクタ分に満たない場合には、1セクタを充填する回数分の所定のデータを出力および/または入力するデータ充填手段をさらに備えたことを特徴とする。
また、請求項4に係る発明は、上記の発明において、前記記憶媒体に管理されたデータを消去する指示を受け付けて当該データを消去するデータ消去手段と、データ転送を継続する所定の時間を設定する継続時間設定手段とをさらに備え、前記データ転送手段は、前記継続時間設定手段によって前記所定の時間が設定された場合には、前記データ消去手段によって前記指示を受け付けた場合であっても、当該所定の時間はデータ転送を継続することを特徴とする。
また、請求項5に係る発明は、所定のセクタ数のデータを当該所定のセクタ数単位でデータを管理する記憶媒体との間でデータ転送する制御部を有し、当該制御部と当該記憶媒体との間でバッファを介して行われる当該データ転送を制御するデータ転送制御方法をコンピュータに実行させるデータ転送制御プログラムであって、前記バッファは、前記記憶媒体との間および前記制御部との間で電気的に同一のタイミングで転送されるデータのビット数を示す転送ビット数の整数倍の容量を有するものであって、当該バッファと当該記憶媒体との間で当該転送ビット数単位でデータ転送を行うことと並行して、当該制御部と当該バッファとの間で当該転送ビット数単位でデータ転送を行うデータ転送手順と、前記バッファにおける前記記憶媒体に向けたデータの出力および/または当該記憶媒体からのデータの入力の回数をカウントするデータカウント手順と、前記データカウント手順によってカウントされた前記回数が、1セクタを前記転送ビット数で除算した数分カウントしたことを示した場合に、1セクタ分のデータが前記記憶媒体に向けて出力されたことおよび/または当該記憶媒体から入力されたことをカウントし、当該出力されたセクタ数および/または入力されたセクタ数をカウントするセクタカウント手順と、前記セクタカウント手順によってカウントされた前記セクタ数と、前記記憶媒体において前記バッファから入力されたセクタ数および/または当該バッファに向けて出力されたセクタ数とを比較して、当該データ転送が正常に行われたか否かを判定する判定手順と、をコンピュータに実行させることを特徴とする。
請求項1または5の発明によれば、所定のセクタ数のデータを所定のセクタ数単位でデータを管理する記憶媒体との間でデータ転送する制御部を有し、制御部と記憶媒体との間でバッファを介して行われるデータ転送を制御するデータ転送制御装置であって、バッファは、記憶媒体との間および制御部との間で電気的に同一のタイミングで転送されるデータのビット数を示す転送ビット数の整数倍の容量を有するものであって、バッファと記憶媒体との間で転送ビット数単位でデータ転送を行うことと並行して、制御部とバッファとの間で転送ビット数単位でデータ転送を行い、バッファにおける記憶媒体に向けたデータの出力および/または記憶媒体からのデータの入力の回数をカウントし、カウントされた回数が、1セクタを転送ビット数で除算した数分カウントしたことを示した場合に、1セクタ分のデータが記憶媒体に向けて出力されたことおよび/または記憶媒体から入力されたことをカウントし、出力されたセクタ数および/または入力されたセクタ数をカウントし、カウントされたセクタ数と、記憶媒体においてバッファから入力されたセクタ数および/またはバッファに向けて出力されたセクタ数とを比較して、データ転送が正常に行われたか否かを判定するので、データ転送の処理能力の低下を回避しながら、バッファの容量を最小アクセス単位以下に抑えることが可能になる。
また、請求項2の発明によれば、バッファは、1セクタ分の容量を有するものであって、制御部とバッファとの間で1セクタ分のデータ転送が行われた後に、制御部とバッファとの間でこの転送された1セクタ分のデータを転送するデータ転送、および/または、バッファと記憶媒体との間で1セクタ分のデータ転送が行われた後に、制御部とバッファとの間でこの転送された1セクタ分のデータを転送するデータ転送を行う一括データ転送手段を備え、データ転送を行うに際し、データ転送手段によるデータ転送、または、一括データ転送手段によるデータ転送のいずれか一つを選択するので、五月雨方式のデータ転送(バッファと記憶媒体との間で転送ビット数単位でデータ転送を行うことと並行して、制御部とバッファとの間で転送ビット数単位でデータ転送を行う)と一括データ転送とのいずれかを選択することが可能になる。
また、請求項3の発明によれば、制御部と記憶媒体との間で転送するデータが終了した際に、カウントされた回数が1セクタ分に満たない場合には、1セクタを充填する回数分の所定のデータを出力および/または入力するので、記憶媒体におけるビジー状態(スタック)を回避することが可能になる。
また、請求項4の発明によれば、記憶媒体に管理されたデータを消去する指示を受け付けてデータを消去する手段と、データ転送を継続する所定の時間を設定する手段とを備え、所定の時間が設定された場合には、指示を受け付けた場合であっても、所定の時間はデータ転送を継続するので、記憶媒体に管理されたデータがライト処理時等に破壊されることを回避することが可能になる。
以下に添付図面を参照して、本発明に係るデータ転送制御装置、データ転送制御プログラムおよびデータ転送制御方法の実施例を詳細に説明する。なお、以下では、以下の実施例で用いる主要な用語、実施例1に係るデータ転送制御装置の概要および特徴、実施例1に係るデータ転送制御装置の構成および処理の手順、実施例1の効果を順に説明し、次に、他の実施例について説明する。
[用語の説明]
まず最初に、以下の実施例で用いる主要な用語を説明する。以下の実施例で用いる「記憶媒体」とは、交換装置などのボードに搭載される記憶媒体のことであり、フラッシュ・メモリと呼ばれるROM(Read Only Memory)を採用するカード型の小型記憶媒体など(例えば、コンパクト・フラッシュなど)を想定している。このような「記憶媒体」は、MPU(Micro Processing Unit)において演算処理された演算処理結果などの情報を一時的に記憶する目的に利用される。すなわち、同じくボードに搭載される「制御部」と「記憶媒体」との間で、演算処理結果などの情報が「データ転送」されることで、情報が「記憶媒体」に一時的に書き込まれたり(ライト処理)、「記憶媒体」に一時的に書き込まれた情報が再び「制御部」によって読み出されたりする(リード処理)。
ここで、「記憶媒体」は、1セクタ(例えば、512byteなど)もしくは複数セクタ(例えば、2セクタなど)の「セクタ数単位」でデータを管理する。このため、「制御部」は、「記憶媒体」が管理する単位のセクタ数のデータを「記憶媒体」との間でデータ転送することになる。具体的に例を挙げて説明すると、「記憶媒体」が2セクタ単位でデータを管理する場合には、「制御部」は、「記憶媒体」との間で2セクタのデータをデータ転送する。
ところで、「制御部」と「記憶媒体」との間で行われるデータ転送は、「制御部」と「記憶媒体」との間で直接データが入出力されることによって行われるものではない。「制御部」におけるデータの入出力の速度と「記憶媒体」におけるデータの入出力の速度とには乖離があるため、「制御部」と「記憶媒体」との間に「バッファ」が介在し、この「バッファ」が速度の違いを吸収するなどすることで、「制御部」と「記憶媒体」との間のデータ転送が行われる。このように、データ転送は、「制御部」と「バッファ」との間のデータ転送、および、「バッファ」と「記憶媒体」との間のデータ転送の2段階で行われることから、「データ転送制御装置」は、「バッファ」を介在させることに起因するデータ転送の処理能力の低下を回避するように、データ転送を制御しなければならない。
[実施例1に係るデータ転送制御装置の概要および特徴]
続いて、図1を用いて、実施例1に係るデータ転送制御装置の概要および特徴を説明する。図1は、実施例1に係るデータ転送制御装置の概要および特徴を説明するための図である。
実施例1に係るデータ転送制御装置は、上記したように、所定のセクタ数のデータを、所定のセクタ数単位でデータを管理する記憶媒体との間でデータ転送する制御部を有し、かかる制御部と記憶媒体との間でバッファを介して行われるデータ転送を制御することを概要とし、データ転送の処理能力の低下を回避しながら、バッファの容量を最小アクセス単位以下に抑えることを主たる特徴とする。
この主たる特徴について簡単に説明すると、実施例1におけるバッファは、転送ビット数の整数倍の容量を有する。ここで、転送ビット数とは、バッファと記憶媒体との間やバッファと制御部との間で、電気的に同一のタイミングで転送されるデータのビット数のことである。具体的に例を挙げて説明すると、例えば、バッファであるレジスタの幅が2バイト(16ビット)である場合には、バッファと記憶媒体との間やバッファと制御部との間で、2バイト(16ビット)のデータが電気的に同一のタイミングで転送される。
この時、転送ビット数は「16ビット」であり、16ビット、32ビット、48ビットなどが16ビットの整数倍であるが、実施例1においては、バッファが、転送ビット数の整数倍の容量であり、かつ、1セクタ分の容量であると想定し、また、1セクタを512バイトであると想定するので、結局、バッファは、転送ビット数(16ビット)の256倍の容量を有することになる(512バイト÷2バイト=256)。なお、実施例1においては、1セクタが512バイトであると想定し、バッファが1セクタ分の容量であると想定するが(この場合には一括データ転送を選択することが可能になる)、本発明はこれに限られるものではなく、バッファが転送ビット数の整数倍の容量であれば、具体的な1セクタのサイズやバッファの容量はいずれでもよい。
このような構成のもと、実施例1に係るデータ転送制御装置は、バッファと記憶媒体との間で転送ビット数単位でデータ転送を行うこと(図1の(1)−1を参照)と並行して、制御部とバッファとの間で転送ビット数単位でデータ転送を行う(図1の(1)−2を参照)。実施例1においては、ライト処理について説明することとすると、例えば、データ転送制御装置は、図1の(1)−1および(1)−2に示すように、まず、バッファと記憶媒体との間で2バイトの『data1』のデータ転送を行うことと並行して、制御部とバッファとの間で2バイトの『data254』のデータ転送を行う。次に、データ転送制御装置は、バッファと記憶媒体との間で2バイトの『data2』のデータ転送を行うことと並行して、制御部とバッファとの間で2バイトの『data255』のデータ転送を行う。そして、データ転送制御装置は、このようなデータ転送を繰り返す。なお、バッファの容量以上のデータについては、バッファに向けてサイクリックにデータ転送される。
この時、データ転送制御装置は、バッファにおける記憶媒体に向けたデータの出力の回数をカウントする(図1の(2)を参照)。例えば、データ転送制御装置は、データの出力の回数を、「256」からカウントダウンすることでカウントする。なお、実施例1においては、カウントダウンする手法について説明するが、本発明はこれに限られるものではなく、カウントアップする手法など、カウントする具体的な手法はいずれでもよい。
そして、データ転送制御装置は、カウントされたデータの出力の回数が、1セクタを転送ビット数で除算した数分カウントしたことを示した場合に、1セクタ分のデータが記憶媒体に出力されたことをカウントし、出力されたセクタ数をカウントする(図1の(3)を参照)。例えば、データ転送制御装置は、カウントされたデータの出力の回数が「256」を示した場合(「256」からカウントダウンして「1」を示した場合)、「256」は1セクタ(512バイト)を転送ビット数(16ビット)で除算した数であるので、1セクタ分のデータが記憶媒体に出力されたことをカウントし、例えば、「256」が2回カウントされた場合には、出力されたセクタ数として、「2」をカウントする。
その後、データ転送制御装置は、カウントされたセクタ数と、記憶媒体においてバッファから入力されたセクタ数とを比較して、データ転送が正常に行われたか否かを判定する(図1の(4)を参照)。例えば、データ転送制御装置は、カウントされたセクタ数「2」と、記憶媒体においてバッファから入力されたセクタ数「2」とを比較し、比較の結果が一致することから、データ転送が正常に行われたと判定する。
このようにして、実施例1に係るデータ転送制御装置は、データ転送の処理能力の低下を回避しながら、バッファの容量を最小アクセス単位以下に抑えることが可能になる。
[実施例1に係るデータ転送制御装置の構成]
次に、図2〜図4を用いて、実施例1に係るデータ転送制御装置の構成を説明する。図2は、実施例1に係るデータ転送制御装置の構成を示すブロック図であり、図3および図4は、レジスタを説明するための図である。
図2に示すように、実施例1に係るデータ転送制御装置10は、コンパクト・フラッシュ(Compact−Flash)1との間でデータ転送する制御部20を有し、制御部20とコンパクト・フラッシュ1との間でバッファ30を介して行われるデータ転送を制御する。実施例1において、コンパクト・フラッシュ1は、2セクタ単位でデータを管理するものとする。なお、実施例1においては、記憶媒体の一例としてコンパクト・フラッシュの場合を説明するが、本発明はこれに限られるものではなく、コンパクト・フラッシュ以外の他の記憶媒体の場合にも、本発明を同様に適用することができる。
データ転送制御装置10は、制御部20と、バッファ30と、データ転送部/一括データ転送部40と、ライトカウント制御部50と、リードカウント制御部60と、判定部70と、選択部80と、データ消去部90と、FIFO100とから構成される。
制御部20は、所定のセクタ数のデータをコンパクト・フラッシュ1との間でデータ転送するMPU(Micro Processing Unit)であり、本発明に密接に関連するものとしては、演算処理部21と、レジスタ部22とを備える。演算処理部21は、演算処理を行い、演算処理の結果を、コンパクト・フラッシュ1との間でデータ転送する。すなわち、データ転送制御装置10が制御するデータ転送とは、演算処理部21による演算処理の結果などを、コンパクト・フラッシュ1との間で転送することである。具体的には、演算処理部21は、後述するデータ転送部/一括データ転送部40やバッファ30などを介してコンパクト・フラッシュ1に向けて演算処理の結果を出力したり(コンパクト・フラッシュ1に向けたライト処理)、バッファ30やデータ転送部/一括データ転送部40などを介してコンパクト・フラッシュ1から演算処理の結果を入力されたりする(コンパクト・フラッシュからのリード処理)。
レジスタ部22は、演算や実行状態を保持する記憶素子である。具体的には、レジスタ部22は、図2に示すように、役割別のレジスタを各種備えている。ここで、レジスタ部22が備える各種レジスタについて、図3および図4を用いて説明する。
Look−UPレジスタは、例えば、図3の(A)に示すように、8ビット目(7)と25〜32ビット目(24〜31)とに情報を記憶する。まず、『RDY/CMP』は、コンパクト・フラッシュ1に対するリード処理時には、「ビジー解除通知」の役割を果たし、コンパクト・フラッシュ1に対するライト処理時には、「書き込み完了通知」の役割を果たすビットである。すなわち、リード処理時に『0』のビットがセットされている場合は、コンパクト・フラッシュ1が「ビジー中」であることを意味しており、『1』のビットがセットされている場合は、コンパクト・フラッシュ1が「ビジー解除」の状態になったことを意味する。また、ライト処理時に『0』のビットがセットされている場合は、コンパクト・フラッシュ1が「書き込み中」であることを意味しており、『1』のビットがセットされている場合は、コンパクト・フラッシュ1が「書き込み完了」の状態になったことを意味する。
次に、『CF検出ERR』は、「ソフト検出したコンパクト・フラッシュアクセス時のエラー要因通知」の役割を果たすビットである。すなわち、『UNC』(25ビット目)に『1』のビットがセットされている場合は、「修復不可のECCエラー」を検出したことを意味しており、『DWF』(26ビット目)に『1』のビットがセットされている場合は、「コンパクト・フラッシュカード内のライト不良」を検出したことを意味しており、『BBK』(27ビット目)に『1』のビットがセットされている場合は、「バットブロック」を検出したことを意味しており、『INDF』(28ビット目)に『1』のビットがセットされている場合は、「アクセス対象のセクタにエラーがあるか、そのセクタが存在しないこと」を検出したことを意味しており、『ABRT』(29ビット目)に『1』のビットがセットされている場合は、「Abored Command」を検出したことを意味しており、『AMNF』(30ビット目)に『1』のビットがセットされている場合は、「一般的なエラー」を検出したことを意味している。
FIFO追加レジスタは、例えば、図3の(B)に示すように、1〜8ビット目(0〜7)と、9〜16ビット目(8〜15)と、17〜30ビット目(16〜29)と、31〜32ビット目(30〜31)とに情報を記憶する。まず、『Sector−Count』は、コンパクト・フラッシュ1の一括処理単位(管理する単位のセクタ数)を設定する役割を果たすビットである。また、『Offset Address』は、コンパクト・フラッシュのオフセットアドレスを指定する役割を果たすビットである。データ転送制御装置10は、指定されたオフセットアドレスおよびセクタ数に基づいて、コンパクト・フラッシュ1のいずれのアドレスからライト処理するか(リード処理するか)について制御する。『W/R識別』は、リード処理とライト処理とを識別する役割を果たすビットである。
起動制御レジスタは、例えば、図3の(C)に示すように、1ビット目(0)に情報を記憶する。『起動』は、データ転送のトリガの役割を果たすビットである。例えば、制御部20とバッファ30との間で1セクタ分の全データ(512byte)のデータ転送が行われた後に、『起動』に『1』のビットがセットされた場合は、一括データ転送部によるデータ転送となり、最初に『起動』に『1』のビットがセットされた後に、制御部20とコンパクト・フラッシュ1との間でデータ転送が行われた場合は、データ転送部によるデータ転送となる。
RESET制御レジスタは、例えば、図3の(D)に示すように、1ビット目(0)に情報を記憶する。『RST』は、コンパクト・フラッシュ1に対してリセット(コンパクト・フラッシュ1に管理されたデータの消去)を行う役割を果たすビットである。『RST』に『1』のビットがソフト制御でセットされた場合は、データ消去部90によって、コンパクト・フラッシュ1に対するリセットが行われる。なお、RESET制御レジスタおよびデータ消去部90は、特許請求の範囲に記載の「データ消去手段」に対応する。
リード完了Bit設定レジスタは、例えば、図4の(E)に示すように、1ビット目(0)に情報を記憶する。『READ完了』は、「リード完了通知」の役割を果たすビットである。『READ完了』に『1』のビットがセットされた場合は、リード処理が完了したことを意味する。
保護用リセット遅延タイマ設定レジスタは、例えば、図4の(F)に示すように、1〜8ビット目(0〜7)と9ビット目(8)とに情報を記憶する。『設定初期タイマ値』は、データ転送を継続する所定の時間を設定する役割を果たすビットである。『FLG』は、ライト処理時に『1』のビットがセットされる。ライト処理時には、まず、保護用リセット遅延タイマ設定レジスタがセットされ、次に、ライト処理に必要な情報が制御部20にセットされ、その後、起動制御レジスタがセットされる。すると、非同期にリセット(コンパクト・フラッシュ1に管理されたデータの消去)の指示を受け付けた場合であっても、保護用リセット遅延タイマ設定レジスタに設定された所定の時間は、データ転送が継続される。これは、コンパクト・フラッシュ1が、ライト処理中のリセット(その他、電源断など)に対する保証をしていないためである。なお、保護用リセット遅延タイマ設定レジスタは、特許請求の範囲に記載の「継続時間設定手段」に対応する。
書き込みフラグクリアレジスタは、例えば、図4の(G)に示すように、9ビット目(8)に情報を記憶する。『FLG』は、コンパクト・フラッシュ書き込み用(ライト処理)のフラグをクリアする指示の役割を果たすビットである。『FLG』に『0』のビットがセットされた場合は、無視され、『1』のビットがセットされた場合は、書き込み用のフラグはクリアされる。
図2に戻り、バッファ30は、制御部20とコンパクト・フラッシュ1との間で行われるデータ転送に介在する記憶素子(データ格納レジスタ)である(図4の(H)を参照)。実施例1において、バッファ30は、転送ビット数の整数倍の容量を有する。ここで、転送ビット数とは、バッファ30とコンパクト・フラッシュ1との間や、バッファ30と制御部20との間で、電気的に同一のタイミングで転送されるデータのビット数のことである。具体的に例を挙げて説明すると、例えば、バッファ30(データ格納レジスタ)の幅が2バイト(16ビット)である場合には、バッファ30とコンパクト・フラッシュ1との間や、バッファ30と制御部20との間で、2バイト(16ビット)のデータが電気的に同一のタイミングで転送される。
実施例1においては、バッファ30が転送ビット数の整数倍の容量であり、かつ、1セクタ分の容量であると想定し、また、1セクタを512バイトであると想定するので、結局、バッファ30は、転送ビット数(16ビット)の256倍の容量を有することになる。なお、バッファ30は、特許請求の範囲に記載の「バッファ」に対応する。
データ転送部/一括データ転送部40は、バッファ30とコンパクト・フラッシュ1との間で転送ビット数単位でデータ転送を行うことと並行して、制御部20とバッファ30との間で転送ビット数単位でデータ転送を行うデータ転送部、および、バッファ30とコンパクト・フラッシュ1との間で1セクタ分のデータ転送が行われた後に、制御部20とバッファ30との間でこの1セクタ分のデータを転送するデータ転送等を行う一括データ転送部である。具体的には、データ転送部/一括データ転送部40は、選択部80による選択を受け付け、選択されたデータ転送(データ転送部によるデータ転送、または、一括データ転送部によるデータ転送のいずれか一つ)を行う。
データパディング部41は、データ転送部によって制御部20とコンパクト・フラッシュ1との間で転送するデータが終了した際に、ライトデータカウント部51によってカウントされた回数が1セクタ分に満たない場合には、コンパクト・フラッシュ1に向けて1セクタを充填する回数分の所定のデータを出力する。例えば、データパディング部41は、「FF」または「00」等の任意のデータをパディング(充填)し、データ転送のスタックを回避する(コンパクト・フラッシュ1においてバッファ30から入力されたセクタ数等をカウントしているため、ビジー状態となることを回避する)。なお、データ転送部/一括データ転送部40は、特許請求の範囲に記載の「データ転送手段」および「一括データ転送手段」に対応し、データパディング部41は、「データ充填手段」に対応する。
ライトカウント制御部50は、ライトデータカウント部51およびセクタカウント部52を制御する。ライトデータカウント部51は、バッファ30におけるコンパクト・フラッシュ1に向けたデータの出力の回数をカウントする。セクタカウント部52は、ライトデータカウント部51によってカウントされた出力の回数が、1セクタを転送ビット数で除算した数分カウントしたことを示した場合に、1セクタ分のデータがコンパクト・フラッシュ1に向けて出力されたことをカウントし、出力されたセクタ数をカウントする。なお、ライトデータカウント部51は、特許請求の範囲に記載の「データカウント手段」に対応し、セクタカウント部52は、特許請求の範囲に記載の「セクタカウント手段」に対応する。
リードカウント制御部60は、リードデータカウント部61およびセクタカウント部62を制御する。リードデータカウント部61は、バッファ30におけるコンパクト・フラッシュ1からのデータの入力の回数をカウントする。セクタカウント部62は、リードデータカウント部61によってカウントされた入力の回数が、1セクタを転送ビット数で除算した数分カウントしたことを示した場合に、1セクタ分のデータがコンパクト・フラッシュ1から入力されたことをカウントし、入力されたセクタ数をカウントする。なお、リードデータカウント部61は、特許請求の範囲に記載の「データカウント手段」に対応し、セクタカウント部62は、特許請求の範囲に記載の「セクタカウント手段」に対応する。
判定部70は、セクタカウント部51によってカウントされたセクタ数と、コンパクト・フラッシュ1においてバッファ30から入力されたセクタ数とを比較して、データ転送が正常に行われたか否かを判定したり、セクタカウント部62によってカウントされたセクタ数と、コンパクト・フラッシュ1においてバッファ30に向けて出力されたセクタ数とを比較して、データ転送が正常に行われたか否かを判定するなどする。例えば、判定部70は、セクタカウント部52によってカウントされたセクタ数と、コンパクト・フラッシュ1においてバッファ30から入力されたセクタ数とを比較し、比較の結果が一致する場合には、データ転送が正常に行われたと判定する。なお、判定部70は、特許請求の範囲に記載の「判定手段」に対応する。
選択部80は、データ転送を行うに際し、データ転送部によるデータ転送、または、一括データ転送部によるデータ転送のいずれか一つを選択する。なお、選択部80は、特許請求の範囲に記載の「選択手段」に対応する。
データ消去部90は、コンパクト・フラッシュ1に管理されたデータを消去する指示を受け付けて、データを消去する。また、データ消去部90は、障害検出時は、ハード自律でコンパクト・フラッシュ1に対してデータを消去する。なお、RESET制御レジスタおよびデータ消去部90は、特許請求の範囲に記載の「データ消去手段」に対応する。
FIFO100は、First-In First-Outのバッファである。本発明におけるFIFO100は、データ転送の速度の違いを吸収するなどの目的で備えられている。なお、FIFO100も独自のカウンタを備えるが、本発明のライトカウント制御部50やリードカウント制御部60が備えるカウンタとは異なる趣旨のものである。
[実施例1に係るデータ転送制御装置による処理の手順]
次に、図5〜図9を用いて、実施例1に係るデータ転送制御装置による処理の手順を説明する。図5は、実施例1におけるデータ転送処理手順およびカウント処理手順を示すフローチャートであり、図6は、実施例1における判定処理手順を示すフローチャートであり、図7は、実施例1における選択処理手順を示すフローチャートであり、図8は、実施例1におけるデータ充填処理手順を示すフローチャートであり、図9は、実施例1における継続時間設定処理手順を示すフローチャートである。
[データ転送処理手順およびカウント処理手順]
まず、データ転送制御装置10は、制御部20のFIFO追加レジスタに、セクタ数を設定する(ステップS501)。例えば、データ転送制御装置10は、制御部20のFIFO追加レジスタに、セクタ数「2」を設定する。
次に、データ転送制御装置10は、データ転送部/一括データ転送部40において、データ転送部によるデータ転送を開始する(ステップS502)。具体的には、データ転送制御装置10は、データ転送部/一括データ転送部40において、バッファ30とコンパクト・フラッシュ1との間でデータ転送を行うことと並行して、制御部20とバッファ30との間でデータ転送を行うデータ転送を開始する。
続いて、データ転送制御装置10は、ライトデータカウント部51において、バッファ30におけるコンパクト・フラッシュ1に向けたデータの出力の回数をカウントする(ステップS503)。例えば、データ転送制御装置10は、ライトデータカウント部51において、データの出力の回数を、「256」からカウントダウンすることでカウントする。
そして、データ転送制御装置10は、セクタカウント部52において、1セクタ分のデータがコンパクト・フラッシュ1に向けて出力されたか否かを判定する(ステップS504)。具体的には、データ転送制御装置10は、セクタカウント部52において、ライトデータカウント部51においてカウントされた回数が、1セクタを転送ビット数で除算した数(実施例1において、「256」)分カウントしたことを示したか否かを判定する。
判定の結果、1セクタ分のデータが出力されたことをカウントしていない場合には(ステップS504否定)、データ転送制御装置10は、セクタカウント部52において、1セクタ分のデータがコンパクト・フラッシュ1に向けて出力されたか否かを判定する処理に戻る。一方、判定の結果、1セクタ分のデータが出力されたことをカウントした場合には(ステップS504肯定)、データ転送制御装置10は、セクタカウント部52において、出力されたセクタ数をカウントする(ステップS505)。
[判定処理手順]
まず、データ転送制御装置10は、判定部70において、「コンパクト・フラッシュ1においてバッファ30から入力されたセクタ数」を受け付けたか否かを判定する(ステップS601)。
受け付けていない場合には(ステップS601否定)、データ転送制御装置10は、判定部70において、「コンパクト・フラッシュ1においてバッファ30から入力されたセクタ数」を受け付けたか否かを判定する処理に戻る。一方、受け付けた場合には(ステップS601肯定)、データ転送制御装置10は、判定部70において、セクタカウント部52においてカウントされたセクタ数と、「コンパクト・フラッシュ1においてバッファ30から入力されたセクタ数」とを比較する(ステップS602)。
続いて、データ転送制御装置10は、判定部70において、比較の結果が一致したか否かを判定する(ステップS603)。一致した場合には(ステップS603肯定)、データ転送制御装置10は、判定部70において、データ転送が正常に行われたことを判定する(ステップS604)。一方、一致しなかった場合には(ステップS603否定)、データ転送制御装置10は、判定部70において、データ転送が正常に行われなかったことを判定する(ステップS605)。
[選択処理手順]
まず、データ転送制御装置10は、選択部80において、選択を受け付けたか否かを判定する(ステップS701)。選択を受け付けていない場合には(ステップS701否定)、データ転送制御装置10は、選択部80において、選択を受け付けたか否かを判定する処理に戻る。一方、選択を受け付けた場合には(ステップS701肯定)、データ転送制御装置10は、選択部80において、選択されたデータ転送がデータ転送部によるデータ転送か否かを判定する(ステップS702)。
判定の結果、データ転送部によるデータ転送の場合には(ステップS702肯定)、データ転送制御装置10は、起動制御レジスタにビットをセットし(ステップS703)、データ転送部によるデータ転送を開始する(ステップS704)。
一方、データ転送部によるデータ転送ではない場合には(ステップS702否定)、データ転送制御装置10は、一括データ転送部によるデータ転送を開始し(ステップS705)、次に、起動制御レジスタにビットをセットする(ステップS706)。
[データ充填処理手順]
まず、データ転送制御装置10は、データパディング部41において、制御部20とコンパクト・フラッシュ1との間で転送するデータが終了したか否かを判定する(ステップS801)。判定の結果、転送するデータが終了したと判定されていない場合には(ステップS801否定)、データ転送制御装置10は、データパディング部41において、制御部20とコンパクト・フラッシュ1との間で転送するデータが終了したか否かを判定する処理に戻る。
一方、判定の結果、転送するデータが終了したと判定する場合には(ステップS801肯定)、データ転送制御装置10は、データパディング部41において、ライトデータカウント部51によってカウントされた回数が、1セクタ分に満たないか否かを判定する(ステップS802)。
判定の結果、1セクタ分に満たないと判定された場合には(ステップS802肯定)、データ転送制御装置10は、データパディング部41において、1セクタを充填する回数分のデータを出力する(ステップS803)。一方、判定の結果、1セクタ分を満たすと判定された場合には(ステップS802否定)、データ転送制御装置10は、データパディング部41における処理を終了する。
[継続時間設定処理手順]
まず、データ転送制御装置10は、制御部20の保護用リセット遅延タイマ設定レジスタにおいて、継続時間の設定を受け付けたか否かを判定する(ステップS901)。継続時間の設定を受け付けていない場合には(ステップS901否定)、データ転送制御装置10は、制御部20の保護用リセット遅延タイマ設定レジスタにおいて、継続時間の設定を受け付ける処理に戻る。
一方、継続時間の設定を受け付けた場合には(ステップS901肯定)、データ転送制御装置10は、データ転送部/一括データ転送部40によるデータ転送を開始する(ステップS902)。
次に、データ転送制御装置10は、データ消去部90において、コンパクト・フラッシュ1に管理されたデータを消去する指示を受け付けたか否かを判定する(ステップS903)。データを消去する指示を受け付けていない場合には(ステップS903否定)、データ転送制御装置10は、データ消去部90において、コンパクト・フラッシュ1に管理されたデータを消去する指示を受け付けたか否かを判定する処理に戻る。
一方、データを消去する指示を受け付けた場合には(ステップS903肯定)、データ転送制御装置10は、継続時間を経過したか否かを判定する(ステップS904)。継続時間を経過していないと判定した場合には(ステップS904否定)、データ転送制御装置10は、継続時間を経過したか否かを判定する処理に戻る。
一方、継続時間を経過したと判定した場合には(ステップS904肯定)、データ転送制御装置10は、データ消去部90において、コンパクト・フラッシュ1に管理されたデータを消去する(ステップS905)。
[実施例1の効果]
上記してきたように、実施例1によれば、所定のセクタ数のデータを所定のセクタ数単位でデータを管理する記憶媒体との間でデータ転送する制御部を有し、制御部と記憶媒体との間でバッファを介して行われるデータ転送を制御するデータ転送制御装置であって、バッファは、記憶媒体との間および制御部との間で電気的に同一のタイミングで転送されるデータのビット数を示す転送ビット数の整数倍の容量を有するものであって、バッファと記憶媒体との間で転送ビット数単位でデータ転送を行うことと並行して、制御部とバッファとの間で転送ビット数単位でデータ転送を行い、バッファにおける記憶媒体に向けたデータの出力および/または記憶媒体からのデータの入力の回数をカウントし、カウントされた回数が、1セクタを転送ビット数で除算した数分カウントしたことを示した場合に、1セクタ分のデータが記憶媒体に向けて出力されたことおよび/または記憶媒体から入力されたことをカウントし、出力されたセクタ数および/または入力されたセクタ数をカウントし、カウントされたセクタ数と、記憶媒体においてバッファから入力されたセクタ数および/またはバッファに向けて出力されたセクタ数とを比較して、データ転送が正常に行われたか否かを判定するので、データ転送の処理能力の低下を回避しながら、バッファの容量を最小アクセス単位以下(1セクタ以下)に抑えることが可能になる。
また、実施例1によれば、バッファにおける記憶媒体に向けたデータの出力および/または記憶媒体からのデータの入力の回数をカウントし、出力されたセクタ数および/または入力されたセクタ数をカウントすることから、任意のブロック数やセクタ数を指定して、制御部と記憶媒体との間のデータ転送をすることが可能になる。
また、実施例1によれば、バッファは、1セクタ分の容量を有するものであって、制御部とバッファとの間で1セクタ分のデータ転送が行われた後に、制御部とバッファとの間でこの転送された1セクタ分のデータを転送するデータ転送、および/または、バッファと記憶媒体との間で1セクタ分のデータ転送が行われた後に、制御部とバッファとの間でこの転送された1セクタ分のデータを転送するデータ転送を行う一括データ転送手段を備え、データ転送を行うに際し、データ転送手段によるデータ転送、または、一括データ転送手段によるデータ転送のいずれか一つを選択するので、五月雨方式のデータ転送(バッファと記憶媒体との間で転送ビット数単位でデータ転送を行うことと並行して、制御部とバッファとの間で転送ビット数単位でデータ転送を行う)と一括データ転送とのいずれかを選択することが可能になる。
また、実施例1によれば、制御部と記憶媒体との間で転送するデータが終了した際に、カウントされた回数が1セクタ分に満たない場合には、1セクタを充填する回数分の所定のデータを出力および/または入力するので、記憶媒体におけるビジー状態(スタック)を回避することが可能になる。
すなわち、記憶媒体においては、バッファから入力されたセクタ数やバッファに向けて出力されたセクタ数をカウントしているので、1セクタに満たないデータが入力されたり出力された場合にビジー状態(スタック)になるおそれがあるが、1セクタを充填する回数分のデータを出力または入力する(パディングする)ことで、ビジー状態を回避することが可能になる。
また、実施例1によれば、記憶媒体に管理されたデータを消去する指示を受け付けてデータを消去する手段と、データ転送を継続する所定の時間を設定する手段とを備え、所定の時間が設定された場合には、指示を受け付けた場合であっても、所定の時間はデータ転送を継続するので、記憶媒体に管理されたデータがライト処理時等に破壊されることを回避することが可能になる。
ところで、これまで実施例1として、データ転送制御装置がライト処理のデータ転送を制御する事例について説明したが、本発明はこれに限られるものではなく、データ転送制御装置がリード処理のデータ転送を制御する事例についても、本発明を同様に適用することができる。そこで、以下では、実施例2として、データ転送制御装置がリード処理のデータ転送を制御する事例について、図10および図11を用いて説明する。図10は、実施例2におけるデータ転送処理手順およびカウント処理手順を示すフローチャートであり、図11は、実施例2における判定処理手順を示すフローチャートである。
[データ転送処理手順およびカウント処理手順]
まず、データ転送制御装置10は、実施例1と同様、制御部20のFIFO追加レジスタに、セクタ数を設定し(ステップS1001)、データ転送部/一括データ転送部40において、データ転送部によるデータ転送を開始する(ステップS1002)。
続いて、データ転送制御装置10は、リードデータカウント部61において、バッファ30におけるコンパクト・フラッシュ1からのデータの入力の回数をカウントする(ステップS1003)。例えば、データ転送制御装置10は、リードデータカウント部61において、データの入力の回数を、「256」からカウントダウンすることでカウントする。
そして、データ転送制御装置10は、セクタカウント部62において、1セクタ分のデータがコンパクト・フラッシュ1から入力されたか否かを判定する(ステップS1004)。具体的には、データ転送制御装置10は、セクタカウント部62において、リードデータカウント部61においてカウントされた回数が、1セクタを転送ビット数で除算した数(実施例2において、「256」)分カウントしたことを示したか否かを判定する。
判定の結果、1セクタ分のデータが入力されたことをカウントしていない場合には(ステップS1004否定)、データ転送制御装置10は、セクタカウント部62において、1セクタ分のデータがコンパクト・フラッシュ1から入力されたか否かを判定する処理に戻る。一方、判定の結果、1セクタ分のデータが入力されたことをカウントした場合には(ステップS1004肯定)、データ転送制御装置10は、セクタカウント部62において、入力されたセクタ数をカウントする(ステップS1005)。
[判定処理手順]
まず、データ転送制御装置10は、判定部70において、「コンパクト・フラッシュ1においてバッファ30に向けて出力されたセクタ数」を受け付けたか否かを判定する(ステップS1101)。
受け付けていない場合には(ステップS1101否定)、データ転送制御装置10は、判定部70において、「コンパクト・フラッシュ1においてバッファ30に向けて出力されたセクタ数」を受け付けたか否かを判定する処理に戻る。一方、受け付けた場合には(ステップS1101肯定)、データ転送制御装置10は、判定部70において、セクタカウント部62においてカウントされたセクタ数と、「コンパクト・フラッシュ1においてバッファ30に向けて出力されたセクタ数」とを比較する(ステップS1102)。
続いて、データ転送制御装置10は、判定部70において、比較の結果が一致したか否かを判定する(ステップS1103)。一致した場合には(ステップS1103肯定)、データ転送制御装置10は、判定部70において、データ転送が正常に行われたことを判定する(ステップS1104)。一方、一致しなかった場合には(ステップS1103否定)、データ転送制御装置10は、判定部70において、データ転送が正常に行われなかったことを判定する(ステップS1105)。
ところで、これまで実施例1および実施例2に係るデータ転送制御装置について説明したが、本発明は上記した実施例以外にも種々の異なる形態にて実施されてよいものである。そこで、以下では、実施例3に係るデータ転送制御装置として、異なる実施例を説明する。
上記の実施例では、バッファが1セクタ分の容量を有するものであって、データ転送制御装置が選択部を有し、五月雨方式のデータ転送と一括データ転送とのいずれかを選択する手法について説明したが、本発明はこれに限られるものではなく、バッファが1セクタ分より少ない容量を有するものであって、データ転送制御装置が選択部を有せず、五月雨方式のデータ転送のみを行う手法にも、本発明を同様に適用することができる。
また、上記の実施例では、データ転送制御装置が、制御部と記憶媒体との間で転送するデータが終了した際に、カウントされた回数が1セクタ分に満たない場合には、1セクタを充填する回数分の所定のデータを出力や入力するデータ充填部を備える手法を説明したが、本発明はこれに限られるものではなく、データ転送制御装置が、データ充填部を備えない手法にも、本発明を同様に適用することができる。なお、この場合には、データ転送制御装置は、記憶媒体におけるビジー状態(スタック)を回避するその他の対策を講じることになる。
また、上記の実施例では、データ転送制御装置が、データ消去部と継続時間設定部とを備え、所定の時間が設定された場合には、消去(リセット)の指示を受け付けた場合であっても、所定の時間はデータ転送を継続する手法を説明したが、本発明はこれに限られるものではなく、データ転送制御装置が、データ消去部と継続時間設定部とを備えない手法にも、本発明を同様に適用することができる。なお、この場合には、記憶媒体に管理されたデータがライト処理時等に破壊されることを回避するその他の対策を講じることになる。
また、上記の実施例では、所定のセクタ数(例えば、2セクタなど)のデータ転送が終了した後に、カウントされたセクタ数「2」と記憶媒体において入力(出力)されたセクタ数「2」とを比較して、データ転送の正常性を判定する手法について説明したが、本発明はこれに限られるものではなく、正常性の判定は、1セクタごとに行う手法(例えば、1セクタのデータ転送が終了した後に、カウントされたセクタ数「1」と記憶媒体において入力されたセクタ数「1」とを比較して、データ転送の正常性を判定するなど)にも、本発明を同様に適用することができる。
[システム構成等]
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる(例えば、記憶媒体に管理されたデータを消去する指示を定期的にデータ転送制御装置に送信するなど)。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示(図2)の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
なお、本実施例で説明したデータ転送制御方法(図5〜図11)は、マイクロ・コントロール・ユニットで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
以上のように、本発明に係るデータ転送制御装置、データ転送制御プログラムおよびデータ転送制御方法は、所定のセクタ数のデータを所定のセクタ数単位でデータを管理する記憶媒体との間でデータ転送する制御部を有し、制御部と記憶媒体との間でバッファを介して行われるデータ転送を制御することに有用であり、特に、データ転送の処理能力の低下を回避しながら、バッファの容量を最小アクセス単位以下に抑えることに適する。
実施例1に係るデータ転送制御装置の概要および特徴を説明するための図である。 実施例1に係るデータ転送制御装置の構成を示すブロック図である。 レジスタを説明するための図である。 レジスタを説明するための図である。 実施例1におけるデータ転送処理手順およびカウント処理手順を示すフローチャートである。 実施例1における判定処理手順を示すフローチャートである。 実施例1における選択処理手順を示すフローチャートである。 実施例1におけるデータ充填処理手順を示すフローチャートである。 実施例1における継続時間設定処理手順を示すフローチャートである。 実施例2におけるデータ転送処理手順およびカウント処理手順を示すフローチャートである。 実施例2における判定処理手順を示すフローチャートである。 従来技術を説明するための図である。 従来技術を説明するための図である。
符号の説明
1 コンパクト・フラッシュ
10 データ転送制御装置
20 制御部
21 演算処理部
22 レジスタ部
30 バッファ(データ格納用レジスタ)
40 データ転送部/一括データ転送部
41 データパディング部
50 ライトカウント制御部
51 ライトデータカウント部
52 セクタカウント部
60 リードカウント制御部
61 リードデータカウント部
62 セクタカウント部
70 判定部
80 選択部
90 データ消去部
100 FIFO

Claims (5)

  1. 所定のセクタ数のデータを当該所定のセクタ数単位でデータを管理する記憶媒体との間でデータ転送する制御部を有し、当該制御部と当該記憶媒体との間でバッファを介して行われる当該データ転送を制御するデータ転送制御装置であって、
    前記バッファは、前記記憶媒体との間および前記制御部との間で電気的に同一のタイミングで転送されるデータのビット数を示す転送ビット数の整数倍の容量を有するものであって、当該バッファと当該記憶媒体との間で当該転送ビット数単位でデータ転送を行うことと並行して、当該制御部と当該バッファとの間で当該転送ビット数単位でデータ転送を行うデータ転送手段と、
    前記バッファにおける前記記憶媒体に向けたデータの出力および/または当該記憶媒体からのデータの入力の回数をカウントするデータカウント手段と、
    前記データカウント手段によってカウントされた前記回数が、1セクタを前記転送ビット数で除算した数分カウントしたことを示した場合に、1セクタ分のデータが前記記憶媒体に向けて出力されたことおよび/または当該記憶媒体から入力されたことをカウントし、当該出力されたセクタ数および/または入力されたセクタ数をカウントするセクタカウント手段と、
    前記セクタカウント手段によってカウントされた前記セクタ数と、前記記憶媒体において前記バッファから入力されたセクタ数および/または当該バッファに向けて出力されたセクタ数とを比較して、当該データ転送が正常に行われたか否かを判定する判定手段と、
    を備えたことを特徴とするデータ転送制御装置。
  2. 前記バッファは、1セクタ分の容量を有するものであって、
    前記制御部と前記バッファとの間で1セクタ分のデータ転送が行われた後に、当該制御部と当該バッファとの間で当該転送された1セクタ分のデータを転送するデータ転送、および/または、前記バッファと前記記憶媒体との間で1セクタ分のデータ転送が行われた後に、前記制御部と前記バッファとの間で当該転送された1セクタ分のデータを転送するデータ転送を行う一括データ転送手段と、
    データ転送を行うに際し、前記データ転送手段によるデータ転送、または、前記一括データ転送手段によるデータ転送のいずれか一つを選択する選択手段と、
    をさらに備えたことを特徴とする請求項1に記載のデータ転送制御装置。
  3. 前記データ転送手段によって前記制御部と前記記憶媒体との間で転送するデータが終了した際に、前記データカウント手段によってカウントされた前記回数が前記1セクタ分に満たない場合には、1セクタを充填する回数分の所定のデータを出力および/または入力するデータ充填手段をさらに備えたことを特徴とする請求項1または2に記載のデータ転送制御装置。
  4. 前記記憶媒体に管理されたデータを消去する指示を受け付けて当該データを消去するデータ消去手段と、
    データ転送を継続する所定の時間を設定する継続時間設定手段とをさらに備え、
    前記データ転送手段は、前記継続時間設定手段によって前記所定の時間が設定された場合には、前記データ消去手段によって前記指示を受け付けた場合であっても、当該所定の時間はデータ転送を継続することを特徴とする請求項1〜3のいずれか一つに記載のデータ転送制御装置。
  5. 所定のセクタ数のデータを当該所定のセクタ数単位でデータを管理する記憶媒体との間でデータ転送する制御部を有し、当該制御部と当該記憶媒体との間でバッファを介して行われる当該データ転送を制御するデータ転送制御方法をコンピュータに実行させるデータ転送制御プログラムであって、
    前記バッファは、前記記憶媒体との間および前記制御部との間で電気的に同一のタイミングで転送されるデータのビット数を示す転送ビット数の整数倍の容量を有するものであって、当該バッファと当該記憶媒体との間で当該転送ビット数単位でデータ転送を行うことと並行して、当該制御部と当該バッファとの間で当該転送ビット数単位でデータ転送を行うデータ転送手順と、
    前記バッファにおける前記記憶媒体に向けたデータの出力および/または当該記憶媒体からのデータの入力の回数をカウントするデータカウント手順と、
    前記データカウント手順によってカウントされた前記回数が、1セクタを前記転送ビット数で除算した数分カウントしたことを示した場合に、1セクタ分のデータが前記記憶媒体に向けて出力されたことおよび/または当該記憶媒体から入力されたことをカウントし、当該出力されたセクタ数および/または入力されたセクタ数をカウントするセクタカウント手順と、
    前記セクタカウント手順によってカウントされた前記セクタ数と、前記記憶媒体において前記バッファから入力されたセクタ数および/または当該バッファに向けて出力されたセクタ数とを比較して、当該データ転送が正常に行われたか否かを判定する判定手順と、
    をコンピュータに実行させることを特徴とするデータ転送制御プログラム。
JP2006332499A 2006-12-08 2006-12-08 データ転送制御装置、データ転送制御プログラムおよびデータ転送制御方法 Pending JP2008146335A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006332499A JP2008146335A (ja) 2006-12-08 2006-12-08 データ転送制御装置、データ転送制御プログラムおよびデータ転送制御方法
EP07019711A EP1930812A2 (en) 2006-12-08 2007-10-09 Data transfer control apparatus, recording medium storing data transfer control program, and data transfer control method
US11/907,397 US20080140950A1 (en) 2006-12-08 2007-10-11 Data transfer control apparatus, recording medium storing data transfer control program, and data transfer control method
CNA2007101674571A CN101196863A (zh) 2006-12-08 2007-10-25 数据传送控制装置和数据传送控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006332499A JP2008146335A (ja) 2006-12-08 2006-12-08 データ転送制御装置、データ転送制御プログラムおよびデータ転送制御方法

Publications (1)

Publication Number Publication Date
JP2008146335A true JP2008146335A (ja) 2008-06-26

Family

ID=39277213

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006332499A Pending JP2008146335A (ja) 2006-12-08 2006-12-08 データ転送制御装置、データ転送制御プログラムおよびデータ転送制御方法

Country Status (4)

Country Link
US (1) US20080140950A1 (ja)
EP (1) EP1930812A2 (ja)
JP (1) JP2008146335A (ja)
CN (1) CN101196863A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5101668B2 (ja) * 2009-11-27 2012-12-19 株式会社東芝 デジタルビデオ収録再生装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913215A (en) * 1996-04-09 1999-06-15 Seymour I. Rubinstein Browse by prompted keyword phrases with an improved method for obtaining an initial document set
US6728879B1 (en) * 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
JP4082913B2 (ja) * 2002-02-07 2008-04-30 株式会社ルネサステクノロジ メモリシステム
JP3890285B2 (ja) * 2002-10-23 2007-03-07 キヤノン株式会社 ファイル記録システム及びファイル転送方法

Also Published As

Publication number Publication date
CN101196863A (zh) 2008-06-11
EP1930812A2 (en) 2008-06-11
US20080140950A1 (en) 2008-06-12

Similar Documents

Publication Publication Date Title
KR102413755B1 (ko) 리텐션 특성에 의한 성능 저하를 복구하는 저장 장치의 동작 방법 및 이를 포함하는 데이터 처리 시스템의 동작 방법
EP2866137A1 (en) Apparatus, program, and method for controlling storage devices
CN112823331B (zh) 用于具有较细粒度的并行多租户ssd中的数据恢复的系统和方法
JP4983474B2 (ja) 仮想ライブラリ装置、仮想ライブラリシステム、仮想ライブラリ装置の論理ボリューム複写方法。
JP2008090778A (ja) 不揮発性メモリ用メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、不揮発性メモリのメモリ制御方法
JP4992835B2 (ja) ディスク記憶装置およびプログラム
JP5152006B2 (ja) 記憶装置、記憶装置のデータ転送方法
WO2015145932A1 (ja) 不揮発性メモリ装置
US9213486B2 (en) Writing new data of a first block size to a second block size using a write-write mode
WO2014126263A1 (en) Storage controlling device, storage controlling method, storage system and program
JP2005107838A (ja) ディスクアレイコントローラ及びログ情報記録方法
JP2006072435A (ja) ストレージシステムおよびデータ記録方法
JP6052288B2 (ja) ディスクアレイ制御装置、ディスクアレイ制御方法及びディスクアレイ制御プログラム
JP2003288317A (ja) 端数ブロックデータ転送を検出し補償するシステムおよび方法
JP2008146335A (ja) データ転送制御装置、データ転送制御プログラムおよびデータ転送制御方法
JP4245021B2 (ja) ストレージ装置、ストレージシステム、ストレージ装置の制御方法
JP2007233838A (ja) メモリシステムの制御方法
JP2006004078A (ja) ディスク制御装置、ディスクパトロール方法およびディスクパトロールプログラム
JP2019220787A (ja) 制御装置、画像形成装置、制御方法及び制御プログラム
JP6556980B2 (ja) ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
US20160253242A1 (en) Storage apparatus and storage system
JP6073717B2 (ja) ストレージ制御装置及びストレージシステム
US9977624B2 (en) Storage control apparatus and storage control method
JP5661313B2 (ja) 記憶装置
JP2007004720A (ja) ストレージ装置およびストレージ装置のデータ転送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090512