JP2004005651A - データ処理システム、アクセス装置及び記録媒体 - Google Patents
データ処理システム、アクセス装置及び記録媒体 Download PDFInfo
- Publication number
- JP2004005651A JP2004005651A JP2003134425A JP2003134425A JP2004005651A JP 2004005651 A JP2004005651 A JP 2004005651A JP 2003134425 A JP2003134425 A JP 2003134425A JP 2003134425 A JP2003134425 A JP 2003134425A JP 2004005651 A JP2004005651 A JP 2004005651A
- Authority
- JP
- Japan
- Prior art keywords
- data
- recording medium
- storage area
- logical address
- physical address
- 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
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
Abstract
【課題】簡単な構成で、広大な記憶領域を有する記録媒体へのアクセスを可能とするためのデータ処理システム等を提供することである。
【解決手段】記録媒体3が制御ユニット1にセットされると、コントローラ12は記録媒体3よりデバイスIDデータ、CISデータ及びIdentify−Driveデータを読み出し、記録媒体3を認証してIdentify−Driveデータを記憶する。CPU121は、コンピュータ2からの命令に応答して記憶部11から変更Identify−Driveデータを読み出し、これを用いて、コントローラ12が記憶するIdentify−Driveデータを変更する。以後、コントローラ12は、変更後のIdentify−Driveデータが示す条件で記録媒体3にアクセスする。BPTは1個のゾーンにつき作成され、論理ブロックアドレスに基づいてアクセスされる対象のブロックが現存のBPTにより把握されているゾーンにない場合BPTが新規作成される。
【選択図】 図1
【解決手段】記録媒体3が制御ユニット1にセットされると、コントローラ12は記録媒体3よりデバイスIDデータ、CISデータ及びIdentify−Driveデータを読み出し、記録媒体3を認証してIdentify−Driveデータを記憶する。CPU121は、コンピュータ2からの命令に応答して記憶部11から変更Identify−Driveデータを読み出し、これを用いて、コントローラ12が記憶するIdentify−Driveデータを変更する。以後、コントローラ12は、変更後のIdentify−Driveデータが示す条件で記録媒体3にアクセスする。BPTは1個のゾーンにつき作成され、論理ブロックアドレスに基づいてアクセスされる対象のブロックが現存のBPTにより把握されているゾーンにない場合BPTが新規作成される。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、記録媒体を用いたデータ処理システム及び記録媒体へのアクセスを行うためのプログラムを記憶したコンピュータ読み取り可能なプログラム記録媒体に関する。
【0002】
【従来の技術】
コンピュータ等によりアクセス(データの読み書き及び消去)可能な記録媒体として、ハードディスク装置や、MO(Magneto−Optical disk)や、フラッシュメモリが用いられている。これらの記録媒体は、データの保存や複数のコンピュータ間のデータの移転などのために利用されている。
【0003】
【発明が解決しようとする課題】
これらの記録媒体にアクセスするために、記録媒体の記憶領域に割り当てられた論理アドレスと物理アドレスとの対応関係を表すアドレス変換テーブルを記憶領域全域にわたって作成した場合、記録媒体の記憶容量が大きくなるほど、アドレス変換テーブルが含むデータの量も大きくなる。このため、アドレス変換テーブルを記憶するための記憶装置もより記憶容量が大きくなければならない。従って、装置の構成が複雑となる。
【0004】
この発明は上記実状に鑑みてなされたもので、簡単な構成で、広大な記憶領域を有する記録媒体へのアクセスを可能とするためのデータ処理システム及びアクセス装置を提供することを目的とする。
【0005】
【課題を解決するための手段】
上記目的を達成するため、本発明の第1の観点にかかるデータ処理システムは、
データを記憶する複数の記憶領域を備え、各記憶領域には物理アドレスが割り当てられており、且つ、各記憶領域が複数のグループに分類されている記録媒体と、当該記録媒体からのデータの取得、データの消去及び当該記録媒体へのデータ格納を行うアクセス装置と、より構成されるデータ処理システムであって、
前記アクセス装置は、
同一のグループに属する各記憶領域に割り当てられている前記物理アドレスに論理アドレスを対応付けたものを表す変換テーブルを記憶するテーブル記憶手段と、
取得する対象のデータ又は消去する対象のデータを記憶する記憶領域を表す論理アドレスを取得する論理アドレス取得手段と、
変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスするアクセス手段と、
前記論理アドレス取得手段が指定した論理アドレスに対応付けられた物理アドレスを変換テーブルに基づいて特定できるか否かを判別し、特定できないと判別したとき、当該論理アドレスに対応付けられる物理アドレスを割り当てられた記憶領域を含むグループを特定するグループ特定手段と、
変換テーブルを、前記グループ特定手段により特定されたグループに属する各記憶領域に割り当てられている物理アドレスに論理アドレスを対応付けたものを表すように更新するテーブル更新手段と、を備え、
前記アクセス手段は、変換テーブルが更新された後、更新された変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスする、
ことを特徴とする。
【0006】
このようなデータ処理システムによれば、論理アドレスと物理アドレスとの対応付けは記憶領域の全域にわたらず、部分的に行われる。このため、記憶領域が広大であっても、変換テーブルが含む情報の量が節約され、変換テーブルを記憶する手段が必要とする記憶容量は小さくなる。従って、データ処理システムの構成が簡単になる。
【0007】
また、本発明の第2の観点にかかるアクセス装置は、
データを記憶する複数の記憶領域を備え、各記憶領域には物理アドレスが割り当てられており、且つ、各記憶領域が複数のグループに分類されている記録媒体からのデータの取得、データの消去及び当該記録媒体へのデータ格納を行うアクセス装置であって、
同一のグループに属する各記憶領域に割り当てられている前記物理アドレスに論理アドレスを対応付けたものを表す変換テーブルを記憶するテーブル記憶手段と、
取得する対象のデータ又は消去する対象のデータを記憶する記憶領域を表す論理アドレスを取得する論理アドレス取得手段と、
変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスするアクセス手段と、
前記論理アドレス取得手段が指定した論理アドレスに対応付けられた物理アドレスを変換テーブルに基づいて特定できるか否かを判別し、特定できないと判別したとき、当該論理アドレスに対応付けられる物理アドレスを割り当てられた記憶領域を含むグループを特定するグループ特定手段と、
変換テーブルを、前記グループ特定手段により特定されたグループに属する各記憶領域に割り当てられている物理アドレスに論理アドレスを対応付けたものを表すように更新するテーブル更新手段と、を備え、
前記アクセス手段は、変換テーブルが更新された後、更新された変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスする、
ことを特徴とする。
【0008】
このようなアクセス装置によれば、論理アドレスと物理アドレスとの対応付けは記憶領域の全域にわたらず、部分的に行われる。このため、記憶領域が広大であっても、変換テーブルが含む情報の量が節約され、変換テーブルを記憶する手段が必要とする記憶容量は小さくなる。従って、アクセス装置の構成が簡単になる。
【0009】
前記記録媒体は、自らにアクセスする条件を表す条件定義データを記憶していてもよい。この場合、前記アクセス手段は、前記記録媒体より条件定義データを取得し、取得した条件定義データが表す条件に従って、前記記録媒体からのデータの取得、条件定義データ以外のデータの消去、及び条件定義データ以外のデータの記録媒体への格納を行うものであれば、記録媒体へのアクセスが、当該記録場媒体が記憶する条件定義データの内容に従って変更されるので、簡単な構成で、アクセスの条件が異なる複数種類の記録媒体へのアクセスが行われる。
【0010】
前記アクセス装置は、条件定義データのうち変更する対象の部分の変更後の内容を表す変更データを記憶する変更データ記憶手段を更に備えてもよい。
この場合、前記アクセス手段は、前記記録媒体より取得した条件定義データのうち変更する対象の部分を前記変更データに置き換えたものが表す条件に従って、記録媒体にアクセスするものとすれば、記録媒体へのアクセスを行う条件は、変更データの内容に従って変更されるので、簡単な構成で、アクセスの条件が異なる複数種類の記録媒体へのアクセスが行われる。
【0011】
前記変更データ記憶手段に記憶されている変更データを変更する手段を備えるものとすれば、アクセスの条件の変更が容易に行われる。
【0012】
前記記録媒体は、自らを識別する識別データを記憶していてもよい。
この場合、前記アクセス装置は、前記記録媒体より識別データを取得し、取得した識別データに基づいて前記記録媒体にアクセスするか否かを決定する認証手段を備えてもよく、
前記アクセス手段は、前記記録媒体にアクセスしないと前記認証手段が決定したとき前記記録媒体へのアクセスを中止するようにしてもよい。
このような構成を有していれば、記録媒体がアクセスする対象として正当なものであるか否かが予め判別され、記録媒体に格納されたデータの破壊や、不正なアクセスが防止される。
【0013】
前記認証手段は、
照合用の識別データを記憶する識別データ追加記憶手段と、
記録媒体より取得した識別データと照合用の識別データが実質的に一致するか否かを判別し、一致すると判別したとき前記記録媒体にアクセスすることを決定する手段と、を備えるものであってもよい。このような構成を有しているアクセス装置によれば、識別データ追加記憶手段に照合用の識別データを格納すれば、アクセスを行う対象の記録媒体の範囲が任意に拡大されるので、新規な種類の記録媒体へのアクセスが容易に可能となる。
【0014】
前記アクセス装置は、
前記記憶領域のうち、前記データが格納されていないものを特定する空き領域テーブルを作成して記憶する手段を備え、
前記アクセス手段は、前記空き領域テーブルにより特定される前記記憶領域に前記データを格納する手段を備えるものであってもよい。
このような構成を有していれば、データを書き込むべき箇所が記憶領域のうちから迅速に発見され、アクセスが高速になる。
【0015】
また、本発明の第3の観点にかかるコンピュータ読み取り可能な記録媒体は、
データを記憶する複数の記憶領域を備え、各記憶領域には物理アドレスが割り当てられており、且つ、各記憶領域が複数のグループに分類されている記録媒体からのデータの取得、データの消去及び当該記録媒体へのデータ格納を行う機能を有するコンピュータを、
同一のグループに属する各記憶領域に割り当てられている前記物理アドレスに論理アドレスを対応付けたものを表す変換テーブルを記憶するテーブル記憶手段と、
取得する対象のデータ又は消去する対象のデータを記憶する記憶領域を表す論理アドレスを取得する論理アドレス取得手段と、
変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスするアクセス手段と、
前記論理アドレス取得手段が指定した論理アドレスに対応付けられた物理アドレスを変換テーブルに基づいて特定できるか否かを判別し、特定できないと判別したとき、当該論理アドレスに対応付けられる物理アドレスを割り当てられた記憶領域を含むグループを特定するグループ特定手段と、
変換テーブルを、前記グループ特定手段により特定されたグループに属する各記憶領域に割り当てられている物理アドレスに論理アドレスを対応付けたものを表すように更新するテーブル更新手段と、して機能させるためのプログラムを記録したものであって、
前記アクセス手段は、変換テーブルが更新された後、更新された変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスする、
ことを特徴とする。
【0016】
このような記録媒体に記録されたプログラムを実行するコンピュータによれば、論理アドレスと物理アドレスとの対応付けは記憶領域の全域にわたらず、部分的に行われる。このため、記憶領域が広大であっても、変換テーブルが含む情報の量が節約され、変換テーブルを記憶する手段が必要とする記憶容量は小さくなる。従って、コンピュータの構成が簡単なものであってもよくなる。
【0017】
【発明の実施の形態】
以下、この発明の実施の形態を、フラッシュメモリを備えた記録媒体へのアクセスを行うアクセス装置を例とし、図面を参照して説明する。
【0018】
図1は、この発明の実施の形態にかかるアクセス装置の物理的構成を示すブロック図である。
図示するように、このアクセス装置は、制御ユニット1と、コンピュータ2とから構成されている。制御ユニット1は、コンピュータ2が備えるスロットを介して、コンピュータ2に着脱可能に装着されている。
コンピュータ2が備えるスロットは、例えば、PCMCIAバスを中継するためのPCMCIAスロットからなる。
【0019】
制御ユニット1は、記憶部11と、コントローラ12と、スロット13とからなる。
【0020】
記憶部11は、例えば、EEPROM(Electrically Erasable/Programable Read Only Memory)等の記憶装置からなる。
記憶部11は、コントローラ12が行うアクセスに応答し、コンピュータ2から供給されたデータの記憶と、記憶しているデータのコンピュータ2への供給と、記憶しているデータの消去とを行う。
【0021】
記憶部11が有する記憶領域は、図1に示すように、CIS(Card Information Structure)データ領域、変更Identify−Driveデータ領域及び未知デバイス識別データ領域を含む。
具体的には、記憶部11が有する記憶領域にはアドレスが割り当てられており、先頭のアドレスより256バイト分の記憶領域は、CISデータ領域を形成する。CISデータ領域に続く224バイト分の記憶領域は変更Identify−Driveデータ領域を形成し、変更Identify−Driveデータ領域に続く32バイト分の記憶領域は未知デバイス識別データ領域を形成している。
【0022】
CISデータ領域は、後述する記録媒体3へのアクセスを行うためにコントローラ12が消費する電源の電圧の推奨値を表す電源情報などを含むパラメータからなるCISデータを格納している。CISデータに含まれる各々のパラメータの先頭には、例えば、各々のパラメータが何を表すものであるかを識別する所定の識別符号(タプルID)が付されている。従って、各パラメータは、タプルIDを指定すれば特定される。
【0023】
変更Identify−Driveデータ領域は、記録媒体3から供給される後述のIdentify−driveデータの少なくとも一部に代えてコントローラ12が用いるデータである変更Identify−Driveデータを格納している。
【0024】
変更Identify−Driveデータは、例えば、図2に示すデータ構造を有している。図示するように、変更Identify−Driveデータは、以下に(1)〜(3)として示すデータの組、すなわち、
(1)Identify−Driveデータのうち差し替える対象となる連続した部分について、その部分の長さを表す1バイトのデータと、
(2)(1)のデータが表す部分のアドレスを表す1バイトのデータと、
(3)(1)及び(2)のデータが表す部分を差し替えた後の内容を表し、長さが(1)のデータにより示される長さに等しいデータと、
からなる組を、Identify−Driveデータのうち差し替える対象となる連続した部分の個数と同数含んでいる。変更Identify−Driveデータの末尾には、所定の値(例えば、16進値”FFFFh”)を示す終了コードが配置されている。(なお、本明細書及び図6において、末尾に文字”h”を付した数字は16進数を表す。)
【0025】
未知デバイス識別データ領域は、コントローラ12が、後述の処理に従い、コントローラ12自身では識別できない記録媒体3を識別するために用いるデータであるデバイスID(IDentification)データを格納している。
【0026】
デバイスIDデータは、例えば、図3に示すデータ構造を有している。
図示するように、変更デバイスIDデータは、コントローラ12がアクセスできるようにすべき対象のデバイスの種別を表す下位1バイトのデータ及びそのデバイスを識別する情報を示す上位1バイトのデータからなる1ワードのデータを、コントローラ12が認識できるようにする対象のデバイスの個数と同数含んでいる。そして、デバイスIDデータの末尾には、所定の値を示す終了コードが配置されている。
【0027】
CISデータ、変更Identify−Driveデータ及びデバイスIDデータは、制御ユニット1の供給元などによって、予め、CISデータ領域、変更Identify−Driveデータ領域及び未知デバイス識別データ領域に記憶される。
そして、変更Identify−Driveデータは、コンピュータ2がコントローラ12に供給する命令に従って、コントローラ12により更新される。
【0028】
コントローラ12は、図1に示すように、CPU(Central Processing Unit)121と、ROM(Read Only Memory)122と、SRAM(Static Random Access Memory)123とを備えている。
CPU121は、ROM122、SRAM123、記憶部11及びスロット13に接続されており、また、コンピュータ2が備えるPCMCIAスロットを介してコンピュータ2に着脱可能に接続されている。
【0029】
CPU121は、スロット13に記録媒体3が装着されるのを待機し、装着されたことを検知すると、コントローラ12の製造者等によって予めROM122に格納されているプログラムの処理に従って、後述する処理を行う。
そして、CPU121は、アクセス装置を構成するコンピュータ2から供給される命令を取得すると、その命令を実行する。CPU121が実行する命令には、記憶部11にアクセスする命令や、スロット13に装着された記録媒体3にアクセスする命令が含まれる。
【0030】
ROM122は、CPU121が実行する上述のプログラムに加え、CISデータの一部を表す認証情報を格納している。この認証情報は、コントローラ12の製造者等によって予めROM122に格納されている。
【0031】
SRAM123は、CPU121の作業領域として用いられ、また、CPU121が記録媒体3から後述する処理により読み出すCISデータ及びIdentify−Driveデータを記憶する。
また、SRAM123は、CPU121が後述する処理により作成するBSI(Block Search Index)及びBPT(Block Pointer Table)を格納する。
【0032】
BSIは、記録媒体3の各ブロックのいずれが空きブロック(すなわち、リセットされた状態にあるブロック)であるかを表す情報を格納する。
BSIは、このアクセス装置が起動する度にコントローラ12の後述する処理に従って作成され、SRAM123に格納される。
【0033】
記録媒体3のブロックの総数が512個であるときのBSIの構造の一例を図5に示す。図示するように、BSIは、64バイトのデータからなり、先頭のビットから順に、ブロック0からブロック511に1対1に対応し、対応するブロックが空きブロックであるとき”1”、空きブロックでないとき”0”を格納する。
【0034】
BPTは、後述する論理ブロックアドレス及び物理ブロックアドレスの対応関係を示す情報を格納するものであり、BSIが作成される度に後述する処理に従って作成され、SRAM123に格納される。
BPTは、SRAM123の記憶領域中の所定の論理的位置を占め、各々の論理ブロックアドレスに対応付けられた物理ブロックアドレスを記憶するための記憶領域を備える。
【0035】
具体的には、BPTは、例えば図6に示すデータ構造を有する。
すなわち、例えば論理ブロックアドレスの総数が500個である場合、BPTは、図示するように、先頭から1ワード毎に付されたアドレスが1000h〜11F3hである、合計500ワードの記憶領域を備える。
【0036】
そして、BPTを形成する記憶領域に付された各々のアドレスは、論理ブロックアドレスと、BPTを形成する記憶領域に付されたアドレスの最小値(オフセット値)との和に等しい。そして、各々のアドレスを付された1ワードの記憶領域に格納されている内容は、当該アドレスが示す論理ブロックアドレスに対応付けられているブロックの物理ブロックアドレスを表す。
【0037】
具体的には、例えば図6に示すように、アドレス1001hを付された記憶領域に値”005Ah”が格納されており、オフセット値が1000hであるとする。この場合は、物理ブロックアドレスが005Ahであるブロックには、論理ブロックアドレスとして0001hが対応付けられている。
【0038】
ただし、各々のアドレスを付された記憶領域に格納されている内容が所定の値を表す場合(例えば、図示するように、値”07FFh”を表す場合)は、その値を格納している記憶領域のアドレスが示す論理ブロックアドレスには、物理ブロックアドレスが対応付けられていないことを表す。
【0039】
スロット13は、コントローラ12に接続されており、また、EEPROM等からなる記録媒体3を着脱可能に装着する。
【0040】
記録媒体3が有する記憶領域は、例えば図4に示すように8912個のページからなり、各々のページは528バイトの記憶容量を有する。ページには連続的に0から8191までのページアドレスが付与され、各ページに含まれるメモリセルには、連続的に0から527までの番地が与えられている。
【0041】
各ページは、先頭から16ページ単位で1つのブロックを構成する。各ブロックは8キロバイトの記憶容量を有し、記憶領域全体は、512個のブロックから構成され、先頭から連続的に0から511までの物理ブロックアドレスを与えられている。
【0042】
また、各ページは、図示するように、先頭から512バイトの領域を占めるデータ領域と、末尾16バイトを占める冗長部とから構成される。
データ領域には、本来のデータ(コンピュータ2から供給され書き込まれるデータや、コンピュータ2に供給される対象となるデータ)が格納され、冗長部には、本来のデータの内容が破壊されていないことを確認するためのエラーチェックコード等が格納される。
【0043】
また、各々のブロックに属する各ページの冗長部には、そのブロックに割り当てられている論理ブロックアドレスの値が格納される。
論理ブロックアドレスは、記録媒体3が後述する動作により読み書きされるときに、コントローラ12により、データ読み書きの単位として認識される単位である。論理ブロックアドレスが割り当てられているブロックの総量は、記録媒体3が物理的に備えるブロックの総量より小さい所定量、例えば500個である。
【0044】
記録媒体3は、制御ユニット1のコントローラ12より、特定のブロックのデータを消去するよう指示されると、当該ブロックに含まれるすべてのメモリセルの記憶内容をリセットする(例えば、記録媒体3がNAND型のフラッシュメモリからなる場合は、各メモリセルの記憶値を「1」とする)。
【0045】
記録媒体3には、記録媒体3の製造者等によって、予め、CISデータ及びIdentify−Driveデータが格納されている。
【0046】
CISデータは、それがコントローラ12がアクセスの対象とする正常な記録媒体3に記録されているものである場合、制御ユニット1の記憶部11のCISデータ領域に格納されているCISデータと実質的に同一のものである。
【0047】
Identify−Driveデータは、記録媒体3を識別するパラメータや、記録媒体3の記憶領域の構造を表すパラメータや、データの読み書きの手法や速度を指定するパラメータを含むデータである。これらのパラメータは、Identify−Driveデータの中で所定の順序で並んでおり、各パラメータは、Identify−Driveデータの先頭からの位置を指定すれば、特定される。
【0048】
CISデータの少なくとも一部及びIdentify−Driveデータの少なくとも一部は、記録媒体3のブロックのうち、外部からのアクセスにより記憶内容を更新することが実質的にできない特定のブロックに記憶されている。従って、コントローラ12は、記録媒体3に格納されているCISデータ及びIdentify−Driveデータのうち、上述の特定のブロックに記憶されている内容を更新することを実質的に禁止される。
【0049】
また、記録媒体3は、コントローラ12のCPU121より後述するデバイスIDデータ取得用のコマンドを供給されたとき、CPU121にデバイスIDデータを返送するロジック回路等を備える。
【0050】
デバイスIDデータは、それがコントローラ12がアクセスの対象とする正常な記録媒体3に記録されているものである場合、コントローラ12のCPU121が後述の処理により正当なものであると判別する所定のデータであるか、あるいは、記憶部11の未知デバイス識別データ領域に格納されているデバイスIDデータと実質的に同一のものである。
【0051】
コンピュータ2はパーソナルコンピュータ等からなり、PCMCIAスロットを備え、OS及びドライバを表すプログラムデータを記憶し、電源投入後、OSを実行する。そして、PCMCIAスロットに制御ユニット1が装着されたことを検知すると、OSの処理に従ってドライバを起動する。
【0052】
ドライバの処理を行うコンピュータ2は、コントローラ12に上述の命令を供給したり、記憶部11や記録媒体3に書き込む対象のデータを供給して、CPU121に、記憶部11や記録媒体3へのアクセスを行わせる。そして、自らが供給した命令に従ってCPU121が記憶部11や記録媒体3から読み出して自らに供給したデータを、CPU121より取得する。
【0053】
(動作)
次に、このアクセス装置の動作を、図7を参照して説明する。
図7は、初期処理を示すフローチャートである。
【0054】
(初期処理)
このアクセス装置が起動し、制御ユニット1のスロット13に記録媒体3が装着されると、制御ユニット1のコントローラ12のCPU121は、スロット13に記録媒体3が装着されたことを検知し、図7に示す初期処理を実行する。
【0055】
初期処理を開始すると、CPU121は、記録媒体3に、デバイスIDデータ取得用のコマンドを供給し、このコマンドに応答して記録媒体3が自己に返送したデバイスIDデータを取得する(ステップS11)。そして、取得したデバイスIDデータが、自己がアクセスの対象とし得る記録媒体3を表す正当なものであるか否かを判別し(ステップS12)、正当なものと判別すると処理をステップS14に移す。
【0056】
一方、正当なものでないと判別すると、記憶部11の未知デバイス識別データ領域よりデバイスIDデータを読み出し、記録媒体3から読み出したデバイスIDが、記憶部11から読み出したデバイスIDデータのいずれかと合致するか否かを判別する(ステップS13)。
【0057】
CPU121は、ステップS13で合致すると判別すると処理をステップS14に移し、合致しないと判別すると、正常な記録媒体3がスロット13に装着されていないものとして処理を終了する。
処理を終了すると、CPU121は、以後、新たに正常な記録媒体3が装着されたことを検知するまでの間、コンピュータ2より命令が供給されても、その命令を取得しない。このため、CPU121は、新たに正常な記録媒体3が装着されたことを検知するまでの間、記録媒体3のデータ領域へのアクセスを実質的に行わない。
【0058】
ステップS14で、CPU121は、ROM122より、CISデータの一部を表す認証情報を読み出し、更に、記録媒体3のうちCISデータ及びIdentify−Driveデータが格納されている特定のブロックよりCISデータを読み出す。また、CPU121は、当該特定のブロックよりIdentify−Driveデータも読み出して、SRAM123に格納する。
なお、ステップS14で、CPU121は、記録媒体3が記憶するCISデータの全体を読み出す必要はなく、記録媒体3が記憶するCISデータのうち、正常なCISデータであればROM122から読み出した認証情報と実質的に一致しているべき特定の部分を読み出せば足りる。
【0059】
次に、CPU121は、記録媒体3が制御ユニット1により制御可能なものであるか否かを確認するため、記録媒体3から読み出したCISデータのうち、そのCISデータが正常なものであればROM122から読み出した認証情報と実質的に一致しているべき部分が、その認証情報と現に実質的に一致するか否かを判別する(ステップS15)。
そして、一致しないと判別すると、制御ユニット1により制御可能な記録媒体3がスロット13に装着されていないものとして処理を終了する。
【0060】
一方、一致すると判別すると、CPU121は、記憶部11のCISデータ領域よりCISデータを読み出してSRAM123の記憶領域に格納する(ステップS16)。そして、SRAM123の記憶領域のうち、BPT及びBSIを格納する部分の初期化を行う(ステップS17)。
【0061】
ステップS17においてCPU121は、具体的には、SRAM123の記憶領域のうちBPTを格納する部分について、1ワード毎に付された上述のアドレスにより示される各区画に、物理ブロックアドレスが対応付けられていないことを示す所定の値(例えば、上述の値”07FFh”)を書き込む。また、BSIを格納する部分のビットの論理値を、すべて”0”とする。
【0062】
次に、CPU121は、記録媒体3の各ブロックのうち、未だ論理ブロックアドレスを読み出されていないブロックであって最も物理ブロックアドレスが若いものを特定し、特定されたブロックに属するページの冗長部より、論理ブロックアドレスを読み出す(ステップS18)。
【0063】
そして、CPU121は、BPTを格納するためのSRAM123の記憶領域中、記録媒体3から読み出した論理ブロックアドレスに相当するアドレスを付された部分に、その論理ブロックアドレスを読み出したブロックの物理ブロックアドレスを書き込む(ステップS19)。これにより、BPTに、物理ブロックアドレスと論理ブロックアドレスとの対応付けを示す新たな情報が追加される。
【0064】
次に、CPU121は、ステップS18で最後に論理ブロックアドレスを読み出したブロックが空きブロックであるか否かを判別する(ステップS20)。具体的には、ステップS18で最後に論理ブロックアドレスを読み出したブロックに属するページの冗長部に、所定の形式の空きブロックコードが格納されているか否かを判別する。
【0065】
そして、空きブロックでないと判別すると、CPU121は、処理をステップS22に移す。一方、空きブロックであると判別すると、CPU121は、その空きブロックを示す物理ブロックアドレスから、BSIを格納するためのSRAM123の記憶領域中、その物理ブロックアドレスを示すビットの位置を算出し、そのビットの論理値を”1”に書き換え(ステップS21)、処理をステップS22に移す。
【0066】
ステップS22で、CPU121は、ステップS18で論理ブロックアドレスを読み出したブロックの次のブロックが存在するか否かを判別し、存在すると判別すると、処理をステップS18に戻す。存在しないと判別すると、初期処理を終了する。
以上説明した初期処理により、CISデータを用いた記録媒体3の認証及びIdentify−Driveデータの読込が行われ、BSI及びBPTが作成される。
【0067】
(Identify−Driveデータの変更の処理)
記録媒体3より読み込まれ、SRAM123の記憶領域に格納されたIdentify−Driveデータは、その後、コンピュータ2が、CPU121に、Identify−Driveデータの変更を指示する命令を供給したとき、CPU121が行う処理に従って更新される。
具体的には、CPU121は、コンピュータ2よりIdentify−Driveデータの変更を指示する命令を供給されると、その命令に応答し、記憶部11の変更Identify−Driveデータ領域より、変更Identify−Driveデータを読み出す。
そして、SRAM123に格納されているIdentify−Driveデータのうち、読み出した変更Identify−Driveデータに含まれる(1)及び(2)のデータが示す部分を、その変更Identify−Driveデータの(3)のデータが示す内容に更新する。
【0068】
以上の処理を行う結果、例えば、変更Identify−Driveデータに、予め、記録媒体3へのアクセスの条件のうちコンピュータ2の仕様に依存するものを格納しておけば、コンピュータ2からの命令に従ってIdentify−Driveデータが更新された時点以降、コンピュータ2の仕様に適合する条件での記録媒体3へのアクセスが可能となる。
【0069】
例えば、Identify−Driveデータに記録媒体3へのアクセスの最大速度を指定する情報が含まれていて、一方で、コンピュータ2がコントローラ12にアクセスする最大速度が、コントローラ12が記録媒体3にアクセスする最大速度より遅いとする。
この場合は、変更Identify−Driveデータに、予め、記録媒体3へのアクセスの最大速度を、コンピュータ2がコントローラ12にアクセスする最大速度以下の値に指定する情報を含めておく。そして、この情報を、Identify−Driveデータに記録媒体3へのアクセスの最大速度を指定する情報と差し替えるようにすると、コントローラ12による記録媒体3へのアクセスの最大速度は、コンピュータ2がコントローラ12にアクセスする最大速度以下に制限される。
【0070】
(変更Identify−Driveデータの変更の処理)
そして、変更Identify−Driveデータの内容を変更するときは、コンピュータ2が、CPU121に、変更Identify−Driveデータの変更を指示する命令と、変更後の変更Identify−Driveデータとを、CPU121に供給する。
【0071】
CPU121は、変更Identify−Driveデータの変更を指示する命令と、変更後の変更Identify−Driveデータとを供給されると、記憶部11に現に格納されているIdentify−Driveデータを消去する。そして、消去されたIdentify−Driveデータが格納されていた位置に、コンピュータ2より供給されたIdentify−Driveデータを書き込む。
【0072】
これにより、変更Identify−Driveデータの内容は変更され、その後再度初期処理が行われると、変更後の変更Identify−Driveデータの内容に従って、SRAM123に格納されるIdentify−Driveデータが変更される。
【0073】
(データ読み出しの処理)
初期処理が終了すると、制御ユニット1のCPU121は、コンピュータ2より、記録媒体3へのアクセスの指示を受け付ける。
コンピュータ2は、CPU121に記録媒体3からのデータの読み出しを指示するときは、読み出しを指示する命令と、データを読み出す対象となる記憶領域を指定する情報とを、CPU121に供給する。
【0074】
データを読み出す対象の記憶領域を指定する情報としては、具体的には、例えば、記録媒体3の記憶領域の大きさに相当する大きさの仮想の記憶領域を、シリンダ、ヘッド及びセクタの3段階の階層に従って区分した場合の各区画を表すCHS(Cylinder−Head−Sector)形式の情報が用いられる。
【0075】
ただし、データを読み出す対象の記憶領域を指定する情報の形式は任意であり、例えば、記録媒体3の記憶領域の大きさに相当する大きさの仮想の記憶領域を512バイト毎の区画に分け、各区画に0から始まる連番を付した場合の当該連番、すなわちLBA(Logic Block Address)形式の情報を用いてもよい。
【0076】
データの読み出しを指示する命令と、データを読み出す対象の記憶領域を指定する情報とを供給されたCPU121は、記憶領域を特定する情報を変換して、以下に(A)及び(B)として表す情報を作成する。
【0077】
すなわち、CPU121は、
(A)指定された記憶領域が、記録媒体3の記憶領域のうち、いずれの論理ブロックアドレスを付されたブロックに相当するか、を表す情報と、
(B)指定された記憶領域が、(A)の情報により表されるブロックの中のどの位置にあるページに相当するか、を表す情報と、
を作成する。なお、(A)の情報が示すブロックの数は1個に限られず、(B)の情報が示すページの数も1個に限られない。
【0078】
次に、CPU121は、(A)の情報が示す論理ブロックアドレスに対応付けられている物理ブロックアドレスを、BPTより索出する。そして、索出された物理ブロックアドレスと、上述の(B)の情報とより、読み出す対象のページを特定し、そのページよりデータを読み出す。
以上説明した処理により記録媒体3よりデータが読み出される。
【0079】
(データ書き込みの処理)
また、コンピュータ2は、記録媒体3へのデータの書き込みを指示するときは、CPU121に、記録媒体3へのデータの書き込みを指示する命令と、書き込む対象のデータと、データを書き込む対象となる記憶領域を指定する情報とを供給する。
【0080】
データの書き込みを指示する命令と、書き込む対象のデータと、データを書き込む対象となる記憶領域を指定する情報とを供給されたCPU121は、記憶領域を特定する情報を変換して、上述の(A)及び(B)の情報を作成する。
そして、CPU121は、BSIを検索して、(A)の情報が示すブロックの個数と同数の空きブロックの物理ブロックアドレスを索出する。
【0081】
次に、CPU121は、(A)の情報が示す論理ブロックアドレスに対応付けられている物理ブロックアドレスをBPTより索出する。そして、BPTより索出された物理ブロックアドレスを付された各ブロックに属するページを、(B)の情報が示すページ(書き込み該当ページ)と、その他のページ(非該当ページ)とに分類する。
【0082】
ただし、(A)の情報が示す論理ブロックアドレスに対応付けられている物理ブロックアドレスが存在しない場合、CPU121は、BSIより索出された物理ブロックアドレスが示すブロックに、コンピュータ2より供給された書き込み対象のデータを書き込む。
そして、CPU121はBSIの内容を変更し、変更後のBSIの内容が、データが書き込まれたブロックが空きブロックであることを表さないようにする。また、CPU121は、BPTのうち、物理ブロックアドレスが対応付けられていないことを示す情報が書き込まれている記憶領域に、新たにデータを書き込まれたブロックの物理ブロックアドレスを書き込む。そして、BSI及びBPTの内容の変更が完了すると、処理を終了する。
【0083】
一方、(A)の情報が示す論理ブロックアドレスに対応付けられている物理ブロックアドレスが存在する場合、CPU121は、索出された物理ブロックアドレスにより示されるブロックと、(A)の情報が示す各ブロックとを1対1に対応付ける。そして、(A)の情報が示す各々のブロックに属するページに記憶されている内容を、当該ブロックに対応付けられたブロック中、先頭からの順番が当該ページと同一であるページに転記する。
ただし、書き込み該当ページであると分類されたページの内容は転記せず、そのページの内容に代えて、コンピュータ2から供給された書き込み対象のデータのうち、その書き込み該当ページに書き込むべきものとして供給された部分を書き込む。
【0084】
また、CPU121は、BSIより索出された各々の空きブロックへのデータの書き込みが完了する毎に、その空きブロックに対応付けられたブロックをリセットし、リセットしたブロックに属するページの冗長部に、空きブロックコードを書き込む。
【0085】
そして、CPU121はBPTにアクセスし、変更後のBPTのうち、リセットされたブロックの物理ブロックアドレスが格納されている記憶領域に、書き込みが完了したブロックの物理ブロックアドレスを上書きする。これにより、リセットされたブロックに従前対応付けられていた論理ブロックアドレスは、新たに書き込みが完了したブロックに対応付けられる。
また、CPU121はBSIにもアクセスし、変更後のBSIの内容が、書き込みが完了したブロックが空きブロックであることを表さないようにし、リセットされたブロックが空きブロックであることを表すようにする。
【0086】
そして、CPU121は、BSIより索出されたすべての空きブロックへのデータの書き込みと、BSI及びBPTの変更とが終了すると、書き込みの処理を終了する。
以上説明した処理により、コンピュータ2から供給されたデータが記録媒体3に格納される。また、BSIの内容が、データの書き込みの結果新たに生じた空きブロック及び消滅した空きブロックを示すよう変更される。一方、BPTの内容も変更され、新たに空きブロックとなったブロックに割り当てられていた論理ブロックアドレスが、そのブロックに従前から記録されていたデータの転記を受けたブロックに新たに割り当てられる。
【0087】
(データ消去の処理)
また、コンピュータ2は、記録媒体3に格納されているデータを、同一ブロックに格納されているもの毎に一括して消去するときは、データの消去を指示する命令と、消去の対象となるデータがあるブロックを示す論理ブロックアドレスとを、CPU121に供給する。
【0088】
CPU121は、データの消去を指示する命令と、消去の対象となるデータがあるブロックを示す論理ブロックアドレスとを供給されると、その論理ブロックアドレスに対応付けられている物理ブロックアドレスを、BPTより索出する。そして、CPU121は、索出された物理ブロックアドレスにより示されるブロックをリセットし、リセットしたブロックに属するページの冗長部に、空きブロックコードを書き込む。
【0089】
次に、CPU121は、SRAM123に格納されているBSIの内容を変更し、変更後のBSIの内容が、リセットされたブロックが空きブロックであることを表すようにして、処理を終了する。
【0090】
以上説明した処理により、記録媒体3に格納されたデータがブロック単位で消去され、消去の結果新たに生じた空きブロックを示す情報がBSIに加えられる。
なお、必ずしもブロック単位で表されない任意の範囲の記憶領域に格納されたデータを消去する場合は、コンピュータ2から供給されたデータを書き込むべきところを、何らの書き込み操作を行わないようにして、上述のデータ書き込みの処理を行えばよい。
【0091】
なお、このアクセス装置の構成は、上述のものに限られない。
例えば、変更Identify−Driveデータに限らず、CISデータ及びデバイスIDデータも、コンピュータ2がコントローラ12に供給する命令に従って、コントローラ12により更新されてよい。
【0092】
また、CPU121は、コンピュータ2から命令が供給されるのを待ってIdentify−Driveデータの内容を変更する必要はなく、例えば上述の初期処理の終了直後などの任意のタイミングで、記憶部11の変更Identify−Driveデータ領域より、変更Identify−Driveデータを読み出してよい。そして、SRAM123に格納されているIdentify−Driveデータのうち、読み出した変更Identify−Driveデータに含まれる(1)及び(2)のデータが示す部分を、その変更Identify−Driveデータの(3)のデータが示す内容に更新するようにしてよい。
【0093】
また、記録媒体3の記憶領域は、更に、複数のゾーンに分類されていてもよい。
具体的には、例えば図8に示すように、記録媒体3の記憶領域は、32768個のページからなり、先頭から16ページ単位で、合計2048個のブロックを構成するものとし、各ブロックは先頭から連続的に0から2047までの物理ブロックアドレスを与えられているものとする。
そして、先頭から1024個のブロックが1個のゾーンを構成し、残りのブロックが更に1個のゾーンを構成し、先頭のゾーンから順に0及び1のゾーンアドレスを与えられているものとする。
【0094】
また、各ゾーンに属するブロックに割り当てられる論理ブロックアドレスがとり得る値の範囲は、CPU121が実行するプログラムにより予め定められているものとする。
具体的には、例えば、ゾーン0に属するブロックに割り当てられる論理ブロックアドレスは、0000h以上03E7h以下の範囲の値をとり、ゾーン1に属するブロックに割り当てられる論理ブロックアドレスは、03E8h以上07CFh以下の範囲の値をとるように定められているものとする。
【0095】
記録媒体3の記憶領域が図8に示す論理的構造を有している場合、BPTは、いずれかのゾーンにつき、そのゾーンに属する各ブロックの論理ブロックアドレスと物理ブロックアドレスとの対応関係を表す情報を格納するようにしてもよい。
この場合、CPU121は、例えば、BPTがいずれのゾーンに属するブロックの論理ブロックアドレスと物理ブロックアドレスとの対応関係を示しているかを示す情報を記憶するか、あるいはSRAM123に記憶させる。
また、この場合、コントローラ12のCPU121は、上述した初期処理では、BPTに、例えばゾーン0に属する各ブロックの物理ブロックアドレスと論理ブロックアドレスとの対応関係を表す情報を格納するようにする。
【0096】
CPU121がコンピュータ2の指示に従って記録媒体3よりデータの読み出しを行うとき、コンピュータ2より供給された論理ブロックアドレスを割り当てられるゾーンを特定する。また、CPU121は、自己あるいはSRAM123が記憶している情報より、BPTが現に論理ブロックアドレスと物理ブロックアドレスとの対応関係を示している対象のゾーンを特定する。
そして、CPU121は、特定された2つのゾーンが実質的に一致するか否かを判別する。
【0097】
両者が一致すると判別したとき、CPU121は、コンピュータ2より供給された論理ブロックアドレスに対応付けられた物理ブロックアドレスをBPTより索出し、索出された物理ブロックアドレスを上述の(A)の情報として用いる。一方、一致しないと判別したとき、CPU121は、記録媒体3に現に格納されているBPTが含む物理ブロックアドレスが示すブロックのない方のゾーンについて、上述のステップS15〜S20の処理を行い、新たなBPTを作成する。そして、CPU121は、コンピュータ2より供給された論理ブロックアドレスをキーとしてBPTを再度検索し、その論理ブロックアドレスに対応付けられた物理ブロックアドレスを索出し、上述の(A)の情報として用いる。
【0098】
以上、この発明の実施の形態を説明したが、この発明のアクセス装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、記録媒体3を装着するスロットを備えるパーソナルコンピュータに上述の動作を実行するためのプログラムを格納した媒体(フレキシブルディスク、CD−ROM等)から該プログラムをインストールすることにより、上述の処理を実行するアクセス装置を構成することができる。
【0099】
また、例えば、通信ネットワークの掲示板(BBS)に該プログラムをアップロードし、これを通信ネットワークを介して配信してもよい。
そして、該プログラムを起動し、OSの制御下に、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行することができる。
【0100】
なお、OSが処理の一部を分担する場合、あるいは、OSが本願発明の1つの構成要素の一部を構成するような場合には、記録媒体には、その部分を除いたプログラムを格納してもよい。この場合も、この発明では、その記録媒体には、コンピュータが実行する各機能又はステップを実行するためのプログラムが格納されているものとする。
【0101】
【発明の効果】
以上説明したように、この発明によれば、簡単な構成で、広大な記憶領域を有する記録媒体へのアクセスを可能とするためのデータ処理システム、アクセス装置及び記録媒体が実現される。
【図面の簡単な説明】
【図1】本発明の実施の形態にかかるアクセス装置の構成を示すブロック図である。
【図2】Identify−Driveデータのデータ構造を模式的に示す図である。
【図3】デバイスIDデータのデータ構造を模式的に示す図である。
【図4】記録媒体の記憶領域の論理的構造を模式的に示す図である。
【図5】BSIのデータ構造を模式的に示す図である。
【図6】BPTの構成の一例を示す図である。
【図7】初期処理を示すフローチャートである。
【図8】図4の記憶領域の変形例の論理的構造を模式的に示す図である。
【符号の説明】
1 制御ユニット
11 記憶部
12 コントローラ
121 CPU
122 ROM
123 SRAM
13 スロット
2 コンピュータ
3 記録媒体
【発明の属する技術分野】
本発明は、記録媒体を用いたデータ処理システム及び記録媒体へのアクセスを行うためのプログラムを記憶したコンピュータ読み取り可能なプログラム記録媒体に関する。
【0002】
【従来の技術】
コンピュータ等によりアクセス(データの読み書き及び消去)可能な記録媒体として、ハードディスク装置や、MO(Magneto−Optical disk)や、フラッシュメモリが用いられている。これらの記録媒体は、データの保存や複数のコンピュータ間のデータの移転などのために利用されている。
【0003】
【発明が解決しようとする課題】
これらの記録媒体にアクセスするために、記録媒体の記憶領域に割り当てられた論理アドレスと物理アドレスとの対応関係を表すアドレス変換テーブルを記憶領域全域にわたって作成した場合、記録媒体の記憶容量が大きくなるほど、アドレス変換テーブルが含むデータの量も大きくなる。このため、アドレス変換テーブルを記憶するための記憶装置もより記憶容量が大きくなければならない。従って、装置の構成が複雑となる。
【0004】
この発明は上記実状に鑑みてなされたもので、簡単な構成で、広大な記憶領域を有する記録媒体へのアクセスを可能とするためのデータ処理システム及びアクセス装置を提供することを目的とする。
【0005】
【課題を解決するための手段】
上記目的を達成するため、本発明の第1の観点にかかるデータ処理システムは、
データを記憶する複数の記憶領域を備え、各記憶領域には物理アドレスが割り当てられており、且つ、各記憶領域が複数のグループに分類されている記録媒体と、当該記録媒体からのデータの取得、データの消去及び当該記録媒体へのデータ格納を行うアクセス装置と、より構成されるデータ処理システムであって、
前記アクセス装置は、
同一のグループに属する各記憶領域に割り当てられている前記物理アドレスに論理アドレスを対応付けたものを表す変換テーブルを記憶するテーブル記憶手段と、
取得する対象のデータ又は消去する対象のデータを記憶する記憶領域を表す論理アドレスを取得する論理アドレス取得手段と、
変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスするアクセス手段と、
前記論理アドレス取得手段が指定した論理アドレスに対応付けられた物理アドレスを変換テーブルに基づいて特定できるか否かを判別し、特定できないと判別したとき、当該論理アドレスに対応付けられる物理アドレスを割り当てられた記憶領域を含むグループを特定するグループ特定手段と、
変換テーブルを、前記グループ特定手段により特定されたグループに属する各記憶領域に割り当てられている物理アドレスに論理アドレスを対応付けたものを表すように更新するテーブル更新手段と、を備え、
前記アクセス手段は、変換テーブルが更新された後、更新された変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスする、
ことを特徴とする。
【0006】
このようなデータ処理システムによれば、論理アドレスと物理アドレスとの対応付けは記憶領域の全域にわたらず、部分的に行われる。このため、記憶領域が広大であっても、変換テーブルが含む情報の量が節約され、変換テーブルを記憶する手段が必要とする記憶容量は小さくなる。従って、データ処理システムの構成が簡単になる。
【0007】
また、本発明の第2の観点にかかるアクセス装置は、
データを記憶する複数の記憶領域を備え、各記憶領域には物理アドレスが割り当てられており、且つ、各記憶領域が複数のグループに分類されている記録媒体からのデータの取得、データの消去及び当該記録媒体へのデータ格納を行うアクセス装置であって、
同一のグループに属する各記憶領域に割り当てられている前記物理アドレスに論理アドレスを対応付けたものを表す変換テーブルを記憶するテーブル記憶手段と、
取得する対象のデータ又は消去する対象のデータを記憶する記憶領域を表す論理アドレスを取得する論理アドレス取得手段と、
変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスするアクセス手段と、
前記論理アドレス取得手段が指定した論理アドレスに対応付けられた物理アドレスを変換テーブルに基づいて特定できるか否かを判別し、特定できないと判別したとき、当該論理アドレスに対応付けられる物理アドレスを割り当てられた記憶領域を含むグループを特定するグループ特定手段と、
変換テーブルを、前記グループ特定手段により特定されたグループに属する各記憶領域に割り当てられている物理アドレスに論理アドレスを対応付けたものを表すように更新するテーブル更新手段と、を備え、
前記アクセス手段は、変換テーブルが更新された後、更新された変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスする、
ことを特徴とする。
【0008】
このようなアクセス装置によれば、論理アドレスと物理アドレスとの対応付けは記憶領域の全域にわたらず、部分的に行われる。このため、記憶領域が広大であっても、変換テーブルが含む情報の量が節約され、変換テーブルを記憶する手段が必要とする記憶容量は小さくなる。従って、アクセス装置の構成が簡単になる。
【0009】
前記記録媒体は、自らにアクセスする条件を表す条件定義データを記憶していてもよい。この場合、前記アクセス手段は、前記記録媒体より条件定義データを取得し、取得した条件定義データが表す条件に従って、前記記録媒体からのデータの取得、条件定義データ以外のデータの消去、及び条件定義データ以外のデータの記録媒体への格納を行うものであれば、記録媒体へのアクセスが、当該記録場媒体が記憶する条件定義データの内容に従って変更されるので、簡単な構成で、アクセスの条件が異なる複数種類の記録媒体へのアクセスが行われる。
【0010】
前記アクセス装置は、条件定義データのうち変更する対象の部分の変更後の内容を表す変更データを記憶する変更データ記憶手段を更に備えてもよい。
この場合、前記アクセス手段は、前記記録媒体より取得した条件定義データのうち変更する対象の部分を前記変更データに置き換えたものが表す条件に従って、記録媒体にアクセスするものとすれば、記録媒体へのアクセスを行う条件は、変更データの内容に従って変更されるので、簡単な構成で、アクセスの条件が異なる複数種類の記録媒体へのアクセスが行われる。
【0011】
前記変更データ記憶手段に記憶されている変更データを変更する手段を備えるものとすれば、アクセスの条件の変更が容易に行われる。
【0012】
前記記録媒体は、自らを識別する識別データを記憶していてもよい。
この場合、前記アクセス装置は、前記記録媒体より識別データを取得し、取得した識別データに基づいて前記記録媒体にアクセスするか否かを決定する認証手段を備えてもよく、
前記アクセス手段は、前記記録媒体にアクセスしないと前記認証手段が決定したとき前記記録媒体へのアクセスを中止するようにしてもよい。
このような構成を有していれば、記録媒体がアクセスする対象として正当なものであるか否かが予め判別され、記録媒体に格納されたデータの破壊や、不正なアクセスが防止される。
【0013】
前記認証手段は、
照合用の識別データを記憶する識別データ追加記憶手段と、
記録媒体より取得した識別データと照合用の識別データが実質的に一致するか否かを判別し、一致すると判別したとき前記記録媒体にアクセスすることを決定する手段と、を備えるものであってもよい。このような構成を有しているアクセス装置によれば、識別データ追加記憶手段に照合用の識別データを格納すれば、アクセスを行う対象の記録媒体の範囲が任意に拡大されるので、新規な種類の記録媒体へのアクセスが容易に可能となる。
【0014】
前記アクセス装置は、
前記記憶領域のうち、前記データが格納されていないものを特定する空き領域テーブルを作成して記憶する手段を備え、
前記アクセス手段は、前記空き領域テーブルにより特定される前記記憶領域に前記データを格納する手段を備えるものであってもよい。
このような構成を有していれば、データを書き込むべき箇所が記憶領域のうちから迅速に発見され、アクセスが高速になる。
【0015】
また、本発明の第3の観点にかかるコンピュータ読み取り可能な記録媒体は、
データを記憶する複数の記憶領域を備え、各記憶領域には物理アドレスが割り当てられており、且つ、各記憶領域が複数のグループに分類されている記録媒体からのデータの取得、データの消去及び当該記録媒体へのデータ格納を行う機能を有するコンピュータを、
同一のグループに属する各記憶領域に割り当てられている前記物理アドレスに論理アドレスを対応付けたものを表す変換テーブルを記憶するテーブル記憶手段と、
取得する対象のデータ又は消去する対象のデータを記憶する記憶領域を表す論理アドレスを取得する論理アドレス取得手段と、
変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスするアクセス手段と、
前記論理アドレス取得手段が指定した論理アドレスに対応付けられた物理アドレスを変換テーブルに基づいて特定できるか否かを判別し、特定できないと判別したとき、当該論理アドレスに対応付けられる物理アドレスを割り当てられた記憶領域を含むグループを特定するグループ特定手段と、
変換テーブルを、前記グループ特定手段により特定されたグループに属する各記憶領域に割り当てられている物理アドレスに論理アドレスを対応付けたものを表すように更新するテーブル更新手段と、して機能させるためのプログラムを記録したものであって、
前記アクセス手段は、変換テーブルが更新された後、更新された変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスする、
ことを特徴とする。
【0016】
このような記録媒体に記録されたプログラムを実行するコンピュータによれば、論理アドレスと物理アドレスとの対応付けは記憶領域の全域にわたらず、部分的に行われる。このため、記憶領域が広大であっても、変換テーブルが含む情報の量が節約され、変換テーブルを記憶する手段が必要とする記憶容量は小さくなる。従って、コンピュータの構成が簡単なものであってもよくなる。
【0017】
【発明の実施の形態】
以下、この発明の実施の形態を、フラッシュメモリを備えた記録媒体へのアクセスを行うアクセス装置を例とし、図面を参照して説明する。
【0018】
図1は、この発明の実施の形態にかかるアクセス装置の物理的構成を示すブロック図である。
図示するように、このアクセス装置は、制御ユニット1と、コンピュータ2とから構成されている。制御ユニット1は、コンピュータ2が備えるスロットを介して、コンピュータ2に着脱可能に装着されている。
コンピュータ2が備えるスロットは、例えば、PCMCIAバスを中継するためのPCMCIAスロットからなる。
【0019】
制御ユニット1は、記憶部11と、コントローラ12と、スロット13とからなる。
【0020】
記憶部11は、例えば、EEPROM(Electrically Erasable/Programable Read Only Memory)等の記憶装置からなる。
記憶部11は、コントローラ12が行うアクセスに応答し、コンピュータ2から供給されたデータの記憶と、記憶しているデータのコンピュータ2への供給と、記憶しているデータの消去とを行う。
【0021】
記憶部11が有する記憶領域は、図1に示すように、CIS(Card Information Structure)データ領域、変更Identify−Driveデータ領域及び未知デバイス識別データ領域を含む。
具体的には、記憶部11が有する記憶領域にはアドレスが割り当てられており、先頭のアドレスより256バイト分の記憶領域は、CISデータ領域を形成する。CISデータ領域に続く224バイト分の記憶領域は変更Identify−Driveデータ領域を形成し、変更Identify−Driveデータ領域に続く32バイト分の記憶領域は未知デバイス識別データ領域を形成している。
【0022】
CISデータ領域は、後述する記録媒体3へのアクセスを行うためにコントローラ12が消費する電源の電圧の推奨値を表す電源情報などを含むパラメータからなるCISデータを格納している。CISデータに含まれる各々のパラメータの先頭には、例えば、各々のパラメータが何を表すものであるかを識別する所定の識別符号(タプルID)が付されている。従って、各パラメータは、タプルIDを指定すれば特定される。
【0023】
変更Identify−Driveデータ領域は、記録媒体3から供給される後述のIdentify−driveデータの少なくとも一部に代えてコントローラ12が用いるデータである変更Identify−Driveデータを格納している。
【0024】
変更Identify−Driveデータは、例えば、図2に示すデータ構造を有している。図示するように、変更Identify−Driveデータは、以下に(1)〜(3)として示すデータの組、すなわち、
(1)Identify−Driveデータのうち差し替える対象となる連続した部分について、その部分の長さを表す1バイトのデータと、
(2)(1)のデータが表す部分のアドレスを表す1バイトのデータと、
(3)(1)及び(2)のデータが表す部分を差し替えた後の内容を表し、長さが(1)のデータにより示される長さに等しいデータと、
からなる組を、Identify−Driveデータのうち差し替える対象となる連続した部分の個数と同数含んでいる。変更Identify−Driveデータの末尾には、所定の値(例えば、16進値”FFFFh”)を示す終了コードが配置されている。(なお、本明細書及び図6において、末尾に文字”h”を付した数字は16進数を表す。)
【0025】
未知デバイス識別データ領域は、コントローラ12が、後述の処理に従い、コントローラ12自身では識別できない記録媒体3を識別するために用いるデータであるデバイスID(IDentification)データを格納している。
【0026】
デバイスIDデータは、例えば、図3に示すデータ構造を有している。
図示するように、変更デバイスIDデータは、コントローラ12がアクセスできるようにすべき対象のデバイスの種別を表す下位1バイトのデータ及びそのデバイスを識別する情報を示す上位1バイトのデータからなる1ワードのデータを、コントローラ12が認識できるようにする対象のデバイスの個数と同数含んでいる。そして、デバイスIDデータの末尾には、所定の値を示す終了コードが配置されている。
【0027】
CISデータ、変更Identify−Driveデータ及びデバイスIDデータは、制御ユニット1の供給元などによって、予め、CISデータ領域、変更Identify−Driveデータ領域及び未知デバイス識別データ領域に記憶される。
そして、変更Identify−Driveデータは、コンピュータ2がコントローラ12に供給する命令に従って、コントローラ12により更新される。
【0028】
コントローラ12は、図1に示すように、CPU(Central Processing Unit)121と、ROM(Read Only Memory)122と、SRAM(Static Random Access Memory)123とを備えている。
CPU121は、ROM122、SRAM123、記憶部11及びスロット13に接続されており、また、コンピュータ2が備えるPCMCIAスロットを介してコンピュータ2に着脱可能に接続されている。
【0029】
CPU121は、スロット13に記録媒体3が装着されるのを待機し、装着されたことを検知すると、コントローラ12の製造者等によって予めROM122に格納されているプログラムの処理に従って、後述する処理を行う。
そして、CPU121は、アクセス装置を構成するコンピュータ2から供給される命令を取得すると、その命令を実行する。CPU121が実行する命令には、記憶部11にアクセスする命令や、スロット13に装着された記録媒体3にアクセスする命令が含まれる。
【0030】
ROM122は、CPU121が実行する上述のプログラムに加え、CISデータの一部を表す認証情報を格納している。この認証情報は、コントローラ12の製造者等によって予めROM122に格納されている。
【0031】
SRAM123は、CPU121の作業領域として用いられ、また、CPU121が記録媒体3から後述する処理により読み出すCISデータ及びIdentify−Driveデータを記憶する。
また、SRAM123は、CPU121が後述する処理により作成するBSI(Block Search Index)及びBPT(Block Pointer Table)を格納する。
【0032】
BSIは、記録媒体3の各ブロックのいずれが空きブロック(すなわち、リセットされた状態にあるブロック)であるかを表す情報を格納する。
BSIは、このアクセス装置が起動する度にコントローラ12の後述する処理に従って作成され、SRAM123に格納される。
【0033】
記録媒体3のブロックの総数が512個であるときのBSIの構造の一例を図5に示す。図示するように、BSIは、64バイトのデータからなり、先頭のビットから順に、ブロック0からブロック511に1対1に対応し、対応するブロックが空きブロックであるとき”1”、空きブロックでないとき”0”を格納する。
【0034】
BPTは、後述する論理ブロックアドレス及び物理ブロックアドレスの対応関係を示す情報を格納するものであり、BSIが作成される度に後述する処理に従って作成され、SRAM123に格納される。
BPTは、SRAM123の記憶領域中の所定の論理的位置を占め、各々の論理ブロックアドレスに対応付けられた物理ブロックアドレスを記憶するための記憶領域を備える。
【0035】
具体的には、BPTは、例えば図6に示すデータ構造を有する。
すなわち、例えば論理ブロックアドレスの総数が500個である場合、BPTは、図示するように、先頭から1ワード毎に付されたアドレスが1000h〜11F3hである、合計500ワードの記憶領域を備える。
【0036】
そして、BPTを形成する記憶領域に付された各々のアドレスは、論理ブロックアドレスと、BPTを形成する記憶領域に付されたアドレスの最小値(オフセット値)との和に等しい。そして、各々のアドレスを付された1ワードの記憶領域に格納されている内容は、当該アドレスが示す論理ブロックアドレスに対応付けられているブロックの物理ブロックアドレスを表す。
【0037】
具体的には、例えば図6に示すように、アドレス1001hを付された記憶領域に値”005Ah”が格納されており、オフセット値が1000hであるとする。この場合は、物理ブロックアドレスが005Ahであるブロックには、論理ブロックアドレスとして0001hが対応付けられている。
【0038】
ただし、各々のアドレスを付された記憶領域に格納されている内容が所定の値を表す場合(例えば、図示するように、値”07FFh”を表す場合)は、その値を格納している記憶領域のアドレスが示す論理ブロックアドレスには、物理ブロックアドレスが対応付けられていないことを表す。
【0039】
スロット13は、コントローラ12に接続されており、また、EEPROM等からなる記録媒体3を着脱可能に装着する。
【0040】
記録媒体3が有する記憶領域は、例えば図4に示すように8912個のページからなり、各々のページは528バイトの記憶容量を有する。ページには連続的に0から8191までのページアドレスが付与され、各ページに含まれるメモリセルには、連続的に0から527までの番地が与えられている。
【0041】
各ページは、先頭から16ページ単位で1つのブロックを構成する。各ブロックは8キロバイトの記憶容量を有し、記憶領域全体は、512個のブロックから構成され、先頭から連続的に0から511までの物理ブロックアドレスを与えられている。
【0042】
また、各ページは、図示するように、先頭から512バイトの領域を占めるデータ領域と、末尾16バイトを占める冗長部とから構成される。
データ領域には、本来のデータ(コンピュータ2から供給され書き込まれるデータや、コンピュータ2に供給される対象となるデータ)が格納され、冗長部には、本来のデータの内容が破壊されていないことを確認するためのエラーチェックコード等が格納される。
【0043】
また、各々のブロックに属する各ページの冗長部には、そのブロックに割り当てられている論理ブロックアドレスの値が格納される。
論理ブロックアドレスは、記録媒体3が後述する動作により読み書きされるときに、コントローラ12により、データ読み書きの単位として認識される単位である。論理ブロックアドレスが割り当てられているブロックの総量は、記録媒体3が物理的に備えるブロックの総量より小さい所定量、例えば500個である。
【0044】
記録媒体3は、制御ユニット1のコントローラ12より、特定のブロックのデータを消去するよう指示されると、当該ブロックに含まれるすべてのメモリセルの記憶内容をリセットする(例えば、記録媒体3がNAND型のフラッシュメモリからなる場合は、各メモリセルの記憶値を「1」とする)。
【0045】
記録媒体3には、記録媒体3の製造者等によって、予め、CISデータ及びIdentify−Driveデータが格納されている。
【0046】
CISデータは、それがコントローラ12がアクセスの対象とする正常な記録媒体3に記録されているものである場合、制御ユニット1の記憶部11のCISデータ領域に格納されているCISデータと実質的に同一のものである。
【0047】
Identify−Driveデータは、記録媒体3を識別するパラメータや、記録媒体3の記憶領域の構造を表すパラメータや、データの読み書きの手法や速度を指定するパラメータを含むデータである。これらのパラメータは、Identify−Driveデータの中で所定の順序で並んでおり、各パラメータは、Identify−Driveデータの先頭からの位置を指定すれば、特定される。
【0048】
CISデータの少なくとも一部及びIdentify−Driveデータの少なくとも一部は、記録媒体3のブロックのうち、外部からのアクセスにより記憶内容を更新することが実質的にできない特定のブロックに記憶されている。従って、コントローラ12は、記録媒体3に格納されているCISデータ及びIdentify−Driveデータのうち、上述の特定のブロックに記憶されている内容を更新することを実質的に禁止される。
【0049】
また、記録媒体3は、コントローラ12のCPU121より後述するデバイスIDデータ取得用のコマンドを供給されたとき、CPU121にデバイスIDデータを返送するロジック回路等を備える。
【0050】
デバイスIDデータは、それがコントローラ12がアクセスの対象とする正常な記録媒体3に記録されているものである場合、コントローラ12のCPU121が後述の処理により正当なものであると判別する所定のデータであるか、あるいは、記憶部11の未知デバイス識別データ領域に格納されているデバイスIDデータと実質的に同一のものである。
【0051】
コンピュータ2はパーソナルコンピュータ等からなり、PCMCIAスロットを備え、OS及びドライバを表すプログラムデータを記憶し、電源投入後、OSを実行する。そして、PCMCIAスロットに制御ユニット1が装着されたことを検知すると、OSの処理に従ってドライバを起動する。
【0052】
ドライバの処理を行うコンピュータ2は、コントローラ12に上述の命令を供給したり、記憶部11や記録媒体3に書き込む対象のデータを供給して、CPU121に、記憶部11や記録媒体3へのアクセスを行わせる。そして、自らが供給した命令に従ってCPU121が記憶部11や記録媒体3から読み出して自らに供給したデータを、CPU121より取得する。
【0053】
(動作)
次に、このアクセス装置の動作を、図7を参照して説明する。
図7は、初期処理を示すフローチャートである。
【0054】
(初期処理)
このアクセス装置が起動し、制御ユニット1のスロット13に記録媒体3が装着されると、制御ユニット1のコントローラ12のCPU121は、スロット13に記録媒体3が装着されたことを検知し、図7に示す初期処理を実行する。
【0055】
初期処理を開始すると、CPU121は、記録媒体3に、デバイスIDデータ取得用のコマンドを供給し、このコマンドに応答して記録媒体3が自己に返送したデバイスIDデータを取得する(ステップS11)。そして、取得したデバイスIDデータが、自己がアクセスの対象とし得る記録媒体3を表す正当なものであるか否かを判別し(ステップS12)、正当なものと判別すると処理をステップS14に移す。
【0056】
一方、正当なものでないと判別すると、記憶部11の未知デバイス識別データ領域よりデバイスIDデータを読み出し、記録媒体3から読み出したデバイスIDが、記憶部11から読み出したデバイスIDデータのいずれかと合致するか否かを判別する(ステップS13)。
【0057】
CPU121は、ステップS13で合致すると判別すると処理をステップS14に移し、合致しないと判別すると、正常な記録媒体3がスロット13に装着されていないものとして処理を終了する。
処理を終了すると、CPU121は、以後、新たに正常な記録媒体3が装着されたことを検知するまでの間、コンピュータ2より命令が供給されても、その命令を取得しない。このため、CPU121は、新たに正常な記録媒体3が装着されたことを検知するまでの間、記録媒体3のデータ領域へのアクセスを実質的に行わない。
【0058】
ステップS14で、CPU121は、ROM122より、CISデータの一部を表す認証情報を読み出し、更に、記録媒体3のうちCISデータ及びIdentify−Driveデータが格納されている特定のブロックよりCISデータを読み出す。また、CPU121は、当該特定のブロックよりIdentify−Driveデータも読み出して、SRAM123に格納する。
なお、ステップS14で、CPU121は、記録媒体3が記憶するCISデータの全体を読み出す必要はなく、記録媒体3が記憶するCISデータのうち、正常なCISデータであればROM122から読み出した認証情報と実質的に一致しているべき特定の部分を読み出せば足りる。
【0059】
次に、CPU121は、記録媒体3が制御ユニット1により制御可能なものであるか否かを確認するため、記録媒体3から読み出したCISデータのうち、そのCISデータが正常なものであればROM122から読み出した認証情報と実質的に一致しているべき部分が、その認証情報と現に実質的に一致するか否かを判別する(ステップS15)。
そして、一致しないと判別すると、制御ユニット1により制御可能な記録媒体3がスロット13に装着されていないものとして処理を終了する。
【0060】
一方、一致すると判別すると、CPU121は、記憶部11のCISデータ領域よりCISデータを読み出してSRAM123の記憶領域に格納する(ステップS16)。そして、SRAM123の記憶領域のうち、BPT及びBSIを格納する部分の初期化を行う(ステップS17)。
【0061】
ステップS17においてCPU121は、具体的には、SRAM123の記憶領域のうちBPTを格納する部分について、1ワード毎に付された上述のアドレスにより示される各区画に、物理ブロックアドレスが対応付けられていないことを示す所定の値(例えば、上述の値”07FFh”)を書き込む。また、BSIを格納する部分のビットの論理値を、すべて”0”とする。
【0062】
次に、CPU121は、記録媒体3の各ブロックのうち、未だ論理ブロックアドレスを読み出されていないブロックであって最も物理ブロックアドレスが若いものを特定し、特定されたブロックに属するページの冗長部より、論理ブロックアドレスを読み出す(ステップS18)。
【0063】
そして、CPU121は、BPTを格納するためのSRAM123の記憶領域中、記録媒体3から読み出した論理ブロックアドレスに相当するアドレスを付された部分に、その論理ブロックアドレスを読み出したブロックの物理ブロックアドレスを書き込む(ステップS19)。これにより、BPTに、物理ブロックアドレスと論理ブロックアドレスとの対応付けを示す新たな情報が追加される。
【0064】
次に、CPU121は、ステップS18で最後に論理ブロックアドレスを読み出したブロックが空きブロックであるか否かを判別する(ステップS20)。具体的には、ステップS18で最後に論理ブロックアドレスを読み出したブロックに属するページの冗長部に、所定の形式の空きブロックコードが格納されているか否かを判別する。
【0065】
そして、空きブロックでないと判別すると、CPU121は、処理をステップS22に移す。一方、空きブロックであると判別すると、CPU121は、その空きブロックを示す物理ブロックアドレスから、BSIを格納するためのSRAM123の記憶領域中、その物理ブロックアドレスを示すビットの位置を算出し、そのビットの論理値を”1”に書き換え(ステップS21)、処理をステップS22に移す。
【0066】
ステップS22で、CPU121は、ステップS18で論理ブロックアドレスを読み出したブロックの次のブロックが存在するか否かを判別し、存在すると判別すると、処理をステップS18に戻す。存在しないと判別すると、初期処理を終了する。
以上説明した初期処理により、CISデータを用いた記録媒体3の認証及びIdentify−Driveデータの読込が行われ、BSI及びBPTが作成される。
【0067】
(Identify−Driveデータの変更の処理)
記録媒体3より読み込まれ、SRAM123の記憶領域に格納されたIdentify−Driveデータは、その後、コンピュータ2が、CPU121に、Identify−Driveデータの変更を指示する命令を供給したとき、CPU121が行う処理に従って更新される。
具体的には、CPU121は、コンピュータ2よりIdentify−Driveデータの変更を指示する命令を供給されると、その命令に応答し、記憶部11の変更Identify−Driveデータ領域より、変更Identify−Driveデータを読み出す。
そして、SRAM123に格納されているIdentify−Driveデータのうち、読み出した変更Identify−Driveデータに含まれる(1)及び(2)のデータが示す部分を、その変更Identify−Driveデータの(3)のデータが示す内容に更新する。
【0068】
以上の処理を行う結果、例えば、変更Identify−Driveデータに、予め、記録媒体3へのアクセスの条件のうちコンピュータ2の仕様に依存するものを格納しておけば、コンピュータ2からの命令に従ってIdentify−Driveデータが更新された時点以降、コンピュータ2の仕様に適合する条件での記録媒体3へのアクセスが可能となる。
【0069】
例えば、Identify−Driveデータに記録媒体3へのアクセスの最大速度を指定する情報が含まれていて、一方で、コンピュータ2がコントローラ12にアクセスする最大速度が、コントローラ12が記録媒体3にアクセスする最大速度より遅いとする。
この場合は、変更Identify−Driveデータに、予め、記録媒体3へのアクセスの最大速度を、コンピュータ2がコントローラ12にアクセスする最大速度以下の値に指定する情報を含めておく。そして、この情報を、Identify−Driveデータに記録媒体3へのアクセスの最大速度を指定する情報と差し替えるようにすると、コントローラ12による記録媒体3へのアクセスの最大速度は、コンピュータ2がコントローラ12にアクセスする最大速度以下に制限される。
【0070】
(変更Identify−Driveデータの変更の処理)
そして、変更Identify−Driveデータの内容を変更するときは、コンピュータ2が、CPU121に、変更Identify−Driveデータの変更を指示する命令と、変更後の変更Identify−Driveデータとを、CPU121に供給する。
【0071】
CPU121は、変更Identify−Driveデータの変更を指示する命令と、変更後の変更Identify−Driveデータとを供給されると、記憶部11に現に格納されているIdentify−Driveデータを消去する。そして、消去されたIdentify−Driveデータが格納されていた位置に、コンピュータ2より供給されたIdentify−Driveデータを書き込む。
【0072】
これにより、変更Identify−Driveデータの内容は変更され、その後再度初期処理が行われると、変更後の変更Identify−Driveデータの内容に従って、SRAM123に格納されるIdentify−Driveデータが変更される。
【0073】
(データ読み出しの処理)
初期処理が終了すると、制御ユニット1のCPU121は、コンピュータ2より、記録媒体3へのアクセスの指示を受け付ける。
コンピュータ2は、CPU121に記録媒体3からのデータの読み出しを指示するときは、読み出しを指示する命令と、データを読み出す対象となる記憶領域を指定する情報とを、CPU121に供給する。
【0074】
データを読み出す対象の記憶領域を指定する情報としては、具体的には、例えば、記録媒体3の記憶領域の大きさに相当する大きさの仮想の記憶領域を、シリンダ、ヘッド及びセクタの3段階の階層に従って区分した場合の各区画を表すCHS(Cylinder−Head−Sector)形式の情報が用いられる。
【0075】
ただし、データを読み出す対象の記憶領域を指定する情報の形式は任意であり、例えば、記録媒体3の記憶領域の大きさに相当する大きさの仮想の記憶領域を512バイト毎の区画に分け、各区画に0から始まる連番を付した場合の当該連番、すなわちLBA(Logic Block Address)形式の情報を用いてもよい。
【0076】
データの読み出しを指示する命令と、データを読み出す対象の記憶領域を指定する情報とを供給されたCPU121は、記憶領域を特定する情報を変換して、以下に(A)及び(B)として表す情報を作成する。
【0077】
すなわち、CPU121は、
(A)指定された記憶領域が、記録媒体3の記憶領域のうち、いずれの論理ブロックアドレスを付されたブロックに相当するか、を表す情報と、
(B)指定された記憶領域が、(A)の情報により表されるブロックの中のどの位置にあるページに相当するか、を表す情報と、
を作成する。なお、(A)の情報が示すブロックの数は1個に限られず、(B)の情報が示すページの数も1個に限られない。
【0078】
次に、CPU121は、(A)の情報が示す論理ブロックアドレスに対応付けられている物理ブロックアドレスを、BPTより索出する。そして、索出された物理ブロックアドレスと、上述の(B)の情報とより、読み出す対象のページを特定し、そのページよりデータを読み出す。
以上説明した処理により記録媒体3よりデータが読み出される。
【0079】
(データ書き込みの処理)
また、コンピュータ2は、記録媒体3へのデータの書き込みを指示するときは、CPU121に、記録媒体3へのデータの書き込みを指示する命令と、書き込む対象のデータと、データを書き込む対象となる記憶領域を指定する情報とを供給する。
【0080】
データの書き込みを指示する命令と、書き込む対象のデータと、データを書き込む対象となる記憶領域を指定する情報とを供給されたCPU121は、記憶領域を特定する情報を変換して、上述の(A)及び(B)の情報を作成する。
そして、CPU121は、BSIを検索して、(A)の情報が示すブロックの個数と同数の空きブロックの物理ブロックアドレスを索出する。
【0081】
次に、CPU121は、(A)の情報が示す論理ブロックアドレスに対応付けられている物理ブロックアドレスをBPTより索出する。そして、BPTより索出された物理ブロックアドレスを付された各ブロックに属するページを、(B)の情報が示すページ(書き込み該当ページ)と、その他のページ(非該当ページ)とに分類する。
【0082】
ただし、(A)の情報が示す論理ブロックアドレスに対応付けられている物理ブロックアドレスが存在しない場合、CPU121は、BSIより索出された物理ブロックアドレスが示すブロックに、コンピュータ2より供給された書き込み対象のデータを書き込む。
そして、CPU121はBSIの内容を変更し、変更後のBSIの内容が、データが書き込まれたブロックが空きブロックであることを表さないようにする。また、CPU121は、BPTのうち、物理ブロックアドレスが対応付けられていないことを示す情報が書き込まれている記憶領域に、新たにデータを書き込まれたブロックの物理ブロックアドレスを書き込む。そして、BSI及びBPTの内容の変更が完了すると、処理を終了する。
【0083】
一方、(A)の情報が示す論理ブロックアドレスに対応付けられている物理ブロックアドレスが存在する場合、CPU121は、索出された物理ブロックアドレスにより示されるブロックと、(A)の情報が示す各ブロックとを1対1に対応付ける。そして、(A)の情報が示す各々のブロックに属するページに記憶されている内容を、当該ブロックに対応付けられたブロック中、先頭からの順番が当該ページと同一であるページに転記する。
ただし、書き込み該当ページであると分類されたページの内容は転記せず、そのページの内容に代えて、コンピュータ2から供給された書き込み対象のデータのうち、その書き込み該当ページに書き込むべきものとして供給された部分を書き込む。
【0084】
また、CPU121は、BSIより索出された各々の空きブロックへのデータの書き込みが完了する毎に、その空きブロックに対応付けられたブロックをリセットし、リセットしたブロックに属するページの冗長部に、空きブロックコードを書き込む。
【0085】
そして、CPU121はBPTにアクセスし、変更後のBPTのうち、リセットされたブロックの物理ブロックアドレスが格納されている記憶領域に、書き込みが完了したブロックの物理ブロックアドレスを上書きする。これにより、リセットされたブロックに従前対応付けられていた論理ブロックアドレスは、新たに書き込みが完了したブロックに対応付けられる。
また、CPU121はBSIにもアクセスし、変更後のBSIの内容が、書き込みが完了したブロックが空きブロックであることを表さないようにし、リセットされたブロックが空きブロックであることを表すようにする。
【0086】
そして、CPU121は、BSIより索出されたすべての空きブロックへのデータの書き込みと、BSI及びBPTの変更とが終了すると、書き込みの処理を終了する。
以上説明した処理により、コンピュータ2から供給されたデータが記録媒体3に格納される。また、BSIの内容が、データの書き込みの結果新たに生じた空きブロック及び消滅した空きブロックを示すよう変更される。一方、BPTの内容も変更され、新たに空きブロックとなったブロックに割り当てられていた論理ブロックアドレスが、そのブロックに従前から記録されていたデータの転記を受けたブロックに新たに割り当てられる。
【0087】
(データ消去の処理)
また、コンピュータ2は、記録媒体3に格納されているデータを、同一ブロックに格納されているもの毎に一括して消去するときは、データの消去を指示する命令と、消去の対象となるデータがあるブロックを示す論理ブロックアドレスとを、CPU121に供給する。
【0088】
CPU121は、データの消去を指示する命令と、消去の対象となるデータがあるブロックを示す論理ブロックアドレスとを供給されると、その論理ブロックアドレスに対応付けられている物理ブロックアドレスを、BPTより索出する。そして、CPU121は、索出された物理ブロックアドレスにより示されるブロックをリセットし、リセットしたブロックに属するページの冗長部に、空きブロックコードを書き込む。
【0089】
次に、CPU121は、SRAM123に格納されているBSIの内容を変更し、変更後のBSIの内容が、リセットされたブロックが空きブロックであることを表すようにして、処理を終了する。
【0090】
以上説明した処理により、記録媒体3に格納されたデータがブロック単位で消去され、消去の結果新たに生じた空きブロックを示す情報がBSIに加えられる。
なお、必ずしもブロック単位で表されない任意の範囲の記憶領域に格納されたデータを消去する場合は、コンピュータ2から供給されたデータを書き込むべきところを、何らの書き込み操作を行わないようにして、上述のデータ書き込みの処理を行えばよい。
【0091】
なお、このアクセス装置の構成は、上述のものに限られない。
例えば、変更Identify−Driveデータに限らず、CISデータ及びデバイスIDデータも、コンピュータ2がコントローラ12に供給する命令に従って、コントローラ12により更新されてよい。
【0092】
また、CPU121は、コンピュータ2から命令が供給されるのを待ってIdentify−Driveデータの内容を変更する必要はなく、例えば上述の初期処理の終了直後などの任意のタイミングで、記憶部11の変更Identify−Driveデータ領域より、変更Identify−Driveデータを読み出してよい。そして、SRAM123に格納されているIdentify−Driveデータのうち、読み出した変更Identify−Driveデータに含まれる(1)及び(2)のデータが示す部分を、その変更Identify−Driveデータの(3)のデータが示す内容に更新するようにしてよい。
【0093】
また、記録媒体3の記憶領域は、更に、複数のゾーンに分類されていてもよい。
具体的には、例えば図8に示すように、記録媒体3の記憶領域は、32768個のページからなり、先頭から16ページ単位で、合計2048個のブロックを構成するものとし、各ブロックは先頭から連続的に0から2047までの物理ブロックアドレスを与えられているものとする。
そして、先頭から1024個のブロックが1個のゾーンを構成し、残りのブロックが更に1個のゾーンを構成し、先頭のゾーンから順に0及び1のゾーンアドレスを与えられているものとする。
【0094】
また、各ゾーンに属するブロックに割り当てられる論理ブロックアドレスがとり得る値の範囲は、CPU121が実行するプログラムにより予め定められているものとする。
具体的には、例えば、ゾーン0に属するブロックに割り当てられる論理ブロックアドレスは、0000h以上03E7h以下の範囲の値をとり、ゾーン1に属するブロックに割り当てられる論理ブロックアドレスは、03E8h以上07CFh以下の範囲の値をとるように定められているものとする。
【0095】
記録媒体3の記憶領域が図8に示す論理的構造を有している場合、BPTは、いずれかのゾーンにつき、そのゾーンに属する各ブロックの論理ブロックアドレスと物理ブロックアドレスとの対応関係を表す情報を格納するようにしてもよい。
この場合、CPU121は、例えば、BPTがいずれのゾーンに属するブロックの論理ブロックアドレスと物理ブロックアドレスとの対応関係を示しているかを示す情報を記憶するか、あるいはSRAM123に記憶させる。
また、この場合、コントローラ12のCPU121は、上述した初期処理では、BPTに、例えばゾーン0に属する各ブロックの物理ブロックアドレスと論理ブロックアドレスとの対応関係を表す情報を格納するようにする。
【0096】
CPU121がコンピュータ2の指示に従って記録媒体3よりデータの読み出しを行うとき、コンピュータ2より供給された論理ブロックアドレスを割り当てられるゾーンを特定する。また、CPU121は、自己あるいはSRAM123が記憶している情報より、BPTが現に論理ブロックアドレスと物理ブロックアドレスとの対応関係を示している対象のゾーンを特定する。
そして、CPU121は、特定された2つのゾーンが実質的に一致するか否かを判別する。
【0097】
両者が一致すると判別したとき、CPU121は、コンピュータ2より供給された論理ブロックアドレスに対応付けられた物理ブロックアドレスをBPTより索出し、索出された物理ブロックアドレスを上述の(A)の情報として用いる。一方、一致しないと判別したとき、CPU121は、記録媒体3に現に格納されているBPTが含む物理ブロックアドレスが示すブロックのない方のゾーンについて、上述のステップS15〜S20の処理を行い、新たなBPTを作成する。そして、CPU121は、コンピュータ2より供給された論理ブロックアドレスをキーとしてBPTを再度検索し、その論理ブロックアドレスに対応付けられた物理ブロックアドレスを索出し、上述の(A)の情報として用いる。
【0098】
以上、この発明の実施の形態を説明したが、この発明のアクセス装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、記録媒体3を装着するスロットを備えるパーソナルコンピュータに上述の動作を実行するためのプログラムを格納した媒体(フレキシブルディスク、CD−ROM等)から該プログラムをインストールすることにより、上述の処理を実行するアクセス装置を構成することができる。
【0099】
また、例えば、通信ネットワークの掲示板(BBS)に該プログラムをアップロードし、これを通信ネットワークを介して配信してもよい。
そして、該プログラムを起動し、OSの制御下に、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行することができる。
【0100】
なお、OSが処理の一部を分担する場合、あるいは、OSが本願発明の1つの構成要素の一部を構成するような場合には、記録媒体には、その部分を除いたプログラムを格納してもよい。この場合も、この発明では、その記録媒体には、コンピュータが実行する各機能又はステップを実行するためのプログラムが格納されているものとする。
【0101】
【発明の効果】
以上説明したように、この発明によれば、簡単な構成で、広大な記憶領域を有する記録媒体へのアクセスを可能とするためのデータ処理システム、アクセス装置及び記録媒体が実現される。
【図面の簡単な説明】
【図1】本発明の実施の形態にかかるアクセス装置の構成を示すブロック図である。
【図2】Identify−Driveデータのデータ構造を模式的に示す図である。
【図3】デバイスIDデータのデータ構造を模式的に示す図である。
【図4】記録媒体の記憶領域の論理的構造を模式的に示す図である。
【図5】BSIのデータ構造を模式的に示す図である。
【図6】BPTの構成の一例を示す図である。
【図7】初期処理を示すフローチャートである。
【図8】図4の記憶領域の変形例の論理的構造を模式的に示す図である。
【符号の説明】
1 制御ユニット
11 記憶部
12 コントローラ
121 CPU
122 ROM
123 SRAM
13 スロット
2 コンピュータ
3 記録媒体
Claims (9)
- データを記憶する複数の記憶領域を備え、各記憶領域には物理アドレスが割り当てられており、且つ、各記憶領域が複数のグループに分類されている記録媒体と、当該記録媒体からのデータの取得、データの消去及び当該記録媒体へのデータ格納を行うアクセス装置と、より構成されるデータ処理システムであって、
前記アクセス装置は、
同一のグループに属する各記憶領域に割り当てられている前記物理アドレスに論理アドレスを対応付けたものを表す変換テーブルを記憶するテーブル記憶手段と、
取得する対象のデータ又は消去する対象のデータを記憶する記憶領域を表す論理アドレスを取得する論理アドレス取得手段と、
変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスするアクセス手段と、
前記論理アドレス取得手段が指定した論理アドレスに対応付けられた物理アドレスを変換テーブルに基づいて特定できるか否かを判別し、特定できないと判別したとき、当該論理アドレスに対応付けられる物理アドレスを割り当てられた記憶領域を含むグループを特定するグループ特定手段と、
変換テーブルを、前記グループ特定手段により特定されたグループに属する各記憶領域に割り当てられている物理アドレスに論理アドレスを対応付けたものを表すように更新するテーブル更新手段と、を備え、
前記アクセス手段は、変換テーブルが更新された後、更新された変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスする、
ことを特徴とするデータ処理システム。 - データを記憶する複数の記憶領域を備え、各記憶領域には物理アドレスが割り当てられており、且つ、各記憶領域が複数のグループに分類されている記録媒体からのデータの取得、データの消去及び当該記録媒体へのデータ格納を行うアクセス装置であって、
同一のグループに属する各記憶領域に割り当てられている前記物理アドレスに論理アドレスを対応付けたものを表す変換テーブルを記憶するテーブル記憶手段と、
取得する対象のデータ又は消去する対象のデータを記憶する記憶領域を表す論理アドレスを取得する論理アドレス取得手段と、
変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスするアクセス手段と、
前記論理アドレス取得手段が指定した論理アドレスに対応付けられた物理アドレスを変換テーブルに基づいて特定できるか否かを判別し、特定できないと判別したとき、当該論理アドレスに対応付けられる物理アドレスを割り当てられた記憶領域を含むグループを特定するグループ特定手段と、
変換テーブルを、前記グループ特定手段により特定されたグループに属する各記憶領域に割り当てられている物理アドレスに論理アドレスを対応付けたものを表すように更新するテーブル更新手段と、を備え、
前記アクセス手段は、変換テーブルが更新された後、更新された変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスする、
ことを特徴とするアクセス装置。 - 前記記録媒体は、自らにアクセスする条件を表す条件定義データを記憶しており、
前記アクセス手段は、前記記録媒体より条件定義データを取得し、取得した条件定義データが表す条件に従って、前記記録媒体からのデータの取得、条件定義データ以外のデータの消去、及び条件定義データ以外のデータの記録媒体への格納を行うものである、
ことを特徴とする請求項2に記載のアクセス装置。 - 条件定義データのうち変更する対象の部分の変更後の内容を表す変更データを記憶する変更データ記憶手段を更に備え、
前記アクセス手段は、前記記録媒体より取得した条件定義データのうち変更する対象の部分を前記変更データに置き換えたものが表す条件に従って、記録媒体にアクセスする、
ことを特徴とする請求項3に記載のアクセス装置。 - 前記変更データ記憶手段に記憶されている変更データを変更する手段を備える、
ことを特徴とする請求項4に記載のアクセス装置。 - 前記記録媒体は、自らを識別する識別データを記憶しており、
前記記録媒体より識別データを取得し、取得した識別データに基づいて前記記録媒体にアクセスするか否かを決定する認証手段を備え、
前記アクセス手段は、前記記録媒体にアクセスしないと前記認証手段が決定したとき前記記録媒体へのアクセスを中止する、
ことを特徴とする請求項2乃至5のいずれか1項に記載のアクセス装置。 - 前記認証手段は、
照合用の識別データを記憶する識別データ追加記憶手段と、
記録媒体より取得した識別データと照合用の識別データが実質的に一致するか否かを判別し、一致すると判別したとき前記記録媒体にアクセスすることを決定する手段と、を備える、
ことを特徴とする請求項6に記載のアクセス装置。 - 前記記憶領域のうち、前記データが格納されていないものを特定する空き領域テーブルを作成して記憶する手段を備え、
前記アクセス手段は、前記空き領域テーブルにより特定される前記記憶領域に前記データを格納する手段を備える、
ことを特徴とする請求項2乃至7のいずれか1項に記載のアクセス装置。 - データを記憶する複数の記憶領域を備え、各記憶領域には物理アドレスが割り当てられており、且つ、各記憶領域が複数のグループに分類されている記録媒体からのデータの取得、データの消去及び当該記録媒体へのデータ格納を行う機能を有するコンピュータを、
同一のグループに属する各記憶領域に割り当てられている前記物理アドレスに論理アドレスを対応付けたものを表す変換テーブルを記憶するテーブル記憶手段と、
取得する対象のデータ又は消去する対象のデータを記憶する記憶領域を表す論理アドレスを取得する論理アドレス取得手段と、
変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスするアクセス手段と、
前記論理アドレス取得手段が指定した論理アドレスに対応付けられた物理アドレスを変換テーブルに基づいて特定できるか否かを判別し、特定できないと判別したとき、当該論理アドレスに対応付けられる物理アドレスを割り当てられた記憶領域を含むグループを特定するグループ特定手段と、
変換テーブルを、前記グループ特定手段により特定されたグループに属する各記憶領域に割り当てられている物理アドレスに論理アドレスを対応付けたものを表すように更新するテーブル更新手段と、して機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記アクセス手段は、変換テーブルが更新された後、更新された変換テーブル及び取得された論理アドレスに基づいて、その論理アドレスに対応付けられた物理アドレスを特定し、特定された物理アドレスを割り当てられている記憶領域にアクセスする、
ことを特徴とする記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003134425A JP2004005651A (ja) | 2003-05-13 | 2003-05-13 | データ処理システム、アクセス装置及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003134425A JP2004005651A (ja) | 2003-05-13 | 2003-05-13 | データ処理システム、アクセス装置及び記録媒体 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10195230A Division JP2000030375A (ja) | 1998-07-10 | 1998-07-10 | データ処理システム、アクセス装置及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004005651A true JP2004005651A (ja) | 2004-01-08 |
Family
ID=30438079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003134425A Pending JP2004005651A (ja) | 2003-05-13 | 2003-05-13 | データ処理システム、アクセス装置及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004005651A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006008972A1 (ja) * | 2004-07-15 | 2006-01-26 | Sony Corporation | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
-
2003
- 2003-05-13 JP JP2003134425A patent/JP2004005651A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006008972A1 (ja) * | 2004-07-15 | 2006-01-26 | Sony Corporation | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3588231B2 (ja) | データ処理システム及びブロック消去型記憶媒体 | |
JP4238514B2 (ja) | データ記憶装置 | |
US8291155B2 (en) | Data access method, memory controller and memory storage system | |
US5933846A (en) | Rewritable ROM file device having read/write buffer access control via copy of rewritable area | |
JP4206688B2 (ja) | データ処理装置及びデータ処理方法 | |
US8312554B2 (en) | Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus | |
JP5295778B2 (ja) | フラッシュメモリ管理方法 | |
KR100980309B1 (ko) | 호스트 디바이스 및 메모리 시스템 | |
JP4884382B2 (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 | |
US8145829B2 (en) | Flash memory device capable of preventing read disturbance | |
US20030070036A1 (en) | Memory system for data storage and retrieval | |
JP2005516264A (ja) | 不揮発性メモリ上で実行されるブロック書き込み動作時間を低減させる方法および装置 | |
US6272611B1 (en) | Computer data storage medium having a virtual disk drive and memory management method therefor | |
JPWO2005103903A1 (ja) | 不揮発性記憶システム | |
JP2010152913A (ja) | セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成 | |
JP2009244962A (ja) | メモリシステム | |
US8954692B2 (en) | File protecting method and system, and memory controller and memory storage apparatus thereof | |
US20070136510A1 (en) | Storage device, memory managing device, memory managing method, and program | |
JP2000030375A (ja) | データ処理システム、アクセス装置及び記録媒体 | |
CN111506255B (zh) | 基于nvm的固态硬盘元数据管理方法及系统 | |
US20130036257A1 (en) | Memory system which can avoid unavailability due to operation error by user | |
JP3826115B2 (ja) | 記憶装置、メモリ管理方法及びプログラム | |
JP2004005651A (ja) | データ処理システム、アクセス装置及び記録媒体 | |
WO2020039927A1 (ja) | 不揮発性記憶装置、ホスト装置、及びデータ記憶システム | |
JP4334331B2 (ja) | フラッシュメモリのアクセス制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Effective date: 20051028 Free format text: JAPANESE INTERMEDIATE CODE: A971007 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051101 |
|
A02 | Decision of refusal |
Effective date: 20060228 Free format text: JAPANESE INTERMEDIATE CODE: A02 |