JP3544476B2 - メモリ管理テーブル作成方法 - Google Patents
メモリ管理テーブル作成方法 Download PDFInfo
- Publication number
- JP3544476B2 JP3544476B2 JP25821698A JP25821698A JP3544476B2 JP 3544476 B2 JP3544476 B2 JP 3544476B2 JP 25821698 A JP25821698 A JP 25821698A JP 25821698 A JP25821698 A JP 25821698A JP 3544476 B2 JP3544476 B2 JP 3544476B2
- Authority
- JP
- Japan
- Prior art keywords
- management table
- memory
- memory management
- logical address
- creation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
本発明は、電源遮断時にもデータを保持する機能を持つメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法に関し、特に、メモリ装置の立ち上げ時間の短縮を実現するとともに、それによりシステムが確実に正常動作に入ることを実現するメモリ管理テーブル作成方法に関する。
【0002】
【従来の技術】
フラッシュメモリやFRAMやEEPROMといった不揮発性メモリや、バッテリでバックアップされたRAMなどのメモリを、メモリカードなどに搭載する場合には、ホストの発行するアクセス要求を処理するために、どの論理アドレスのデータがどの物理アドレスに格納されているのかということを管理するメモリ管理テーブルを作成していく必要がある。
【0003】
フラッシュメモリを具体例にして説明するならば、フラッシュメモリは、図23に示すように、データ消去の単位となる例えば512個のブロックに分割されており、そして、これらの各ブロックは、データの格納単位となる例えば8個のセクタを持っている。各セクタに格納されるデータ(例えば512バイトで構成される)には、図24に示すように、ホストの発行した論理アドレスが付加されており、1つのブロックに格納されるデータには、全て同一の論理アドレスが付加されている。
【0004】
メモリ管理テーブルは、この論理アドレスとブロック番号との対応関係を管理することで、論理アドレスから物理アドレスへの変換処理を実行するために用意されるものであり、フラッシュメモリが4個搭載される場合を具体例にして説明するならば、図25や図26に示すようなデータ構造を持つ。
【0005】
図25に示すメモリ管理テーブルについて具体的に説明するならば、このメモリ管理テーブルは、論理アドレス0,4・・・を持つデータはチップ番号0のフラッシュメモリに格納され、論理アドレス1,5・・・を持つデータはチップ番号1のフラッシュメモリに格納され、論理アドレス2,6・・・を持つデータはチップ番号2のフラッシュメモリに格納され、論理アドレス3,7・・・を持つデータはチップ番号3のフラッシュメモリに格納されるという規約を前提にして作成されており、チップ番号0のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス0の格納先ブロック番号、論理アドレス4の格納先ブロック番号、・・・を管理し、チップ番号1のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス1の格納先ブロック番号、論理アドレス5の格納先ブロック番号、・・・を管理し、チップ番号2のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス2の格納先ブロック番号、論理アドレス6の格納先ブロック番号、・・・を管理し、チップ番号3のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス3の格納先ブロック番号、論理アドレス7の格納先ブロック番号、・・・を管理するというデータ構造を持っている。
【0006】
このようなデータ構造を持つメモリ管理テーブルに従って、ホストから論理アドレスを指定してアクセス要求が発行されると、その論理アドレスの指すチップ番号及びブロック番号を特定することで、アクセス先となる物理アドレスを求めることができることになる。
【0007】
このメモリ管理テーブルは、フラッシュメモリのブロックに順番にアクセスして、データの格納されているブロックのブロック番号を検出するとともに、そのデータに付加されている論理アドレスを検出して、その論理アドレスの指すメモリ管理テーブルのエントリーに、検出したブロック番号を格納していくことで生成されることになる。
【0008】
従来のメモリカードなどでは、不揮発性メモリやバッテリでバックアップされたメモリを搭載する場合、メモリに電源を投入することでメモリを立ち上げるときに、内部レジスタに初期値を設定することで初期設定を行うと、それに続けて、メモリにアクセスすることでこのメモリ管理テーブルを作成するという構成を採っていた。
【0009】
そして、このメモリ管理テーブルの作成を完了した時点に、ホストへビジー解除を通知することで、ホストに対して処理要求を許可していくという構成を採っていた。
【0010】
【発明が解決しようとする課題】
しかしながら、従来技術のように、メモリを立ち上げるときに、メモリ管理テーブルの作成を完了させてから、ホストへビジー解除を通知するという構成を採っていると、メモリ管理テーブルが完成するまでに時間がかかることから、ホストは、なかなか処理に入れないという問題点があった。
【0011】
そして、ホストは、アクセス先のメモリカードなどがなかなか立ち上がらないことで、メモリカードなどにエラーが発生したと誤認識してしまうことが起こるという問題点があった。
【0012】
本発明はかかる事情に鑑みてなされたものであって、電源遮断時にもデータを保持する機能を持つメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るときにあって、メモリ装置の立ち上げ時間の短縮を実現するとともに、それによりシステムが確実に正常動作に入ることを実現する新たなメモリ管理テーブル作成方法の提供を目的とする。
【0013】
【課題を解決するための手段】
図1に本発明の原理構成を図示する。
図中、1は本発明を具備するメモリ装置であって、電源遮断時にもデータを保持する機能を持つ1つ又は複数のメモリ10と、ホスト装置2の発行する処理要求を受け取るCPU11と、CPU11の指示に応答してメモリ制御のコマンドを発行することでメモリ10を制御するコントローラ12と、メモリ10とCPU11とコントローラ12との間を接続するバス13とを備えるもの、2はホスト装置であって、メモリ装置1に対して処理要求を発行するものである。
【0014】
14はメモリ管理テーブルであって、例えばCPU11に展開されて、ホスト装置2の発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するもの、15は作成手段であって、CPU11上で動作して、メモリ管理テーブル14を作成するもの、16は検出手段であって、CPU11上で動作して、ホスト装置2から処理要求が発行されたのか否かを検出するもの、17は通知手段であって、ホスト装置2に対してビジー状態の解除を通知するものである。
【0017】
このように構成される本発明のメモリ装置1では、電源が投入されて初期設定が終了すると、作成手段15は、メモリ管理テーブル14の有する項目の一部分の作成に入って、メモリ域を単位にしてメモリ10にアクセスすることで、メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスしたメモリ域の識別子情報とからメモリ管理テーブル14の有する項目の一部分を作成する。このとき、作成手段15は、アクセスするメモリ域の数に制限を課することで、作成するメモリ管理テーブル部分を決定したり、アクセスする時間に制限を課することで、作成するメモリ管理テーブル部分を決定していく。
【0018】
作成手段15がメモリ管理テーブル14の有する項目の一部分を作成すると、通知手段17は、ホスト装置2に対してビジー状態の解除を通知し、それに続けて、作成手段15は、メモリ管理テーブル14の残りの項目部分の作成に入って、ホスト装置2が処理要求を発行するまでの間、メモリ域を単位にしてメモリ10にアクセスすることで、メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスしたメモリ域の識別子情報とからメモリ管理テーブル14を作成していく。
【0019】
そして、メモリ管理テーブル14に未作成部分が残されているときには、その後、作成手段15は、ホスト装置2の発行する処理要求に対する処理を終了することで、ホスト装置2に対してビジー解除を通知した後、次の処理要求が発行されるまでの間、メモリ管理テーブル14の未作成部分を作成していったり、ホスト装置2の処理要求が発行されるときに、その処理要求で指定される論理アドレスの割り付けられるメモリ10にアクセスすることで、メモリ管理テーブル14の未作成部分を作成していく。
【0020】
また、このように構成される本発明のメモリ装置1では、電源が投入されて初期設定が終了すると、通知手段17は、直ちに、ホスト装置2に対してビジー状態の解除を通知し、その後、作成手段15は、ホスト装置2から処理要求が発行されるときに、メモリ管理テーブル14の未作成部分の作成に入って、メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられるメモリ10にアクセスすることで、メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスしたメモリ域の識別子情報とからメモリ管理テーブル14の未作成部分を作成していく。
【0021】
このとき、作成手段15は、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出するときに、メモリ管理テーブル14の未作成部分の作成を中断したり、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスするメモリ域の数に制限を課することで、メモリ管理テーブル14の未作成部分の作成を中断したり、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスする時間に制限を課することで、メモリ管理テーブル14の未作成部分の作成を中断していく。
【0022】
また、このように構成される本発明のメモリ装置1では、電源が投入されて初期設定が終了すると、作成手段15は、メモリ管理テーブル14の有する項目の一部分の作成に入って、メモリ域を単位にしてメモリ10にアクセスすることで、メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスしたメモリ域の識別子情報とからメモリ管理テーブル14の有する項目の一部分を作成する。このとき、作成手段15は、アクセスするメモリ域の数に制限を課することで、作成するメモリ管理テーブル部分を決定したり、アクセスする時間に制限を課することで、作成するメモリ管理テーブル部分を決定していく。
【0023】
作成手段15がメモリ管理テーブル14の有する項目の一部分を作成すると、通知手段17は、ホスト装置2に対してビジー状態の解除を通知し、その後、作成手段15は、ホスト装置2から処理要求が発行されるときに、メモリ管理テーブル14の未作成部分の作成に入って、メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられるメモリ10にアクセスすることで、メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスしたメモリ域の識別子情報とからメモリ管理テーブル14の未作成部分を作成していく。
【0024】
このとき、作成手段15は、処理要求で指定される論理アドレスの割り付けられるメモリ10の持つ全メモリ域へのアクセスを終了するときに、メモリ管理テーブル14の未作成部分の作成を中断したり、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出するときに、メモリ管理テーブル14の未作成部分の作成を中断したり、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスするメモリ域の数に制限を課することで、メモリ管理テーブル14の未作成部分の作成を中断したり、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスする時間に制限を課することで、メモリ管理テーブル14の未作成部分の作成を中断していく。
【0025】
このように、本発明のメモリ装置1では、従来技術のように、初期設定を行った後、メモリ管理テーブル14を完成させてからホスト装置2にビジー解除を通知するという構成を採るのではなくて、メモリ管理テーブル14を作成せずに、直ちに、ホスト装置2にビジー解除を通知したり、メモリ管理テーブル14の有する項目の一部分だけを作成して、ホスト装置2にビジー解除を通知し、その後、ホスト装置2が処理要求を発行するまでの間、メモリ管理テーブル14の未作成部分を作成したり、ホスト装置2が処理要求が発行するときに、その処理要求で指定される論理アドレスの指すメモリ管理テーブル14の未作成部分を作成することで、メモリ管理テーブル14を作成するという構成を採ることから、ホスト装置2は、メモリ装置1が起動された後、迅速に処理に入れるようになる。
【0026】
そして、ホスト装置2は、迅速にメモリ装置1が正常であることを認識できることで、メモリ装置1にエラーが発生しているという誤認識を起こすことなく、処理に入れるようになる。
【0027】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
図2に、本発明の適用されるメモリカード1aを図示する。
【0028】
このメモリカード1aは、パーソナルコンピュータ2aの持つスロットに着脱自在に装着され、複数のフラッシュメモリ20(1つしか搭載されないこともある)を搭載して、パーソナルコンピュータ2aの発行するアクセス要求に応答して、このフラッシュメモリ20へのアクセス処理を実行するものであり、この処理を実現するために、フラッシュメモリ20の他に、ROM22及びSRAM領域23を持つCPU21、フラッシュコントローラ24、ホストコントローラ25、バッファ26、RAM27などを備えるとともに、それらを接続する共通バス28を備えている。
【0029】
このROM22には、フラッシュメモリ20へのアクセスを実現するプログラムが格納されており、CPU21は、パーソナルコンピュータ2aがアクセス要求を発行するときに、そのプログラムに従って、フラッシュコントローラ24に対してアクセス指示を発行することで、フラッシュメモリ20へのアクセスを実行する処理を行う。
【0030】
更に詳細に説明するならば、先頭のフラッシュメモリ20には、搭載されるフラッシュメモリ20の個数などの構成情報が格納されているので、CPU21は、メモリカード1aの起動時に、ROM22に格納されるプログラムに従って、フラッシュメモリ20に記録される1チップ当たりのメモリ容量とその構成情報とを読み出すことで全メモリ容量を特定して、それをパーソナルコンピュータ2aに通知したり、通常の動作時に、パーソナルコンピュータ2aがアドレスを指定してアクセス要求を発行すると、ROM22に格納されるプログラムに従って、その1チップ当たりのメモリ容量から、アクセス先となるフラッシュメモリ20のチップ番号を特定して、そのチップ番号の指すフラッシュメモリ20をイネーブル化しつつ、フラッシュコントローラ24に対してアクセス指示を発行することで、フラッシュメモリ20へのアクセスを実行するなどの処理を行う。
【0031】
フラッシュコントローラ24は、CPU21からフラッシュメモリ20へのアクセス指示が発行されるときに、フラッシュメモリ20にコマンドを発行することで、フラッシュメモリ20へのアクセスを実行する。ホストコントローラ25は、パーソナルコンピュータ2aとの間のインタフェース処理を実行する。バッファ26は、フラッシュメモリ20に書き込むデータや、フラッシュメモリ20から読み出したデータを格納する。RAM27は、CPU21の作業用メモリなどに用いられる。
【0032】
CPU21の持つSRAM領域23には、図25に示したようなデータ構造を持つメモリ管理テーブル230(図1に示したメモリ管理テーブル14に相当する)が展開されるとともに、フラッシュメモリ20の各ブロックにデータが格納されているのか否かを管理する図3に示すようなデータ構造を持つデータ格納管理テーブル231が展開されている。
【0033】
以下説明の便宜上、フラッシュメモリ20として、図23及び図24に説明したものを想定するとともに、メモリ管理テーブル230として、図25に説明したものを想定する。
【0034】
すなわち、メモリカード1aの備えるフラッシュメモリ20は、図23に示すように、データ消去の単位となる512個のブロックに分割されており、これらの各ブロックは、データの格納単位となる8個のセクタを持っている。そして、各セクタは、図24に示すように、528バイトの領域を有しており、512バイトのデータと、そのデータの持つ論理アドレスとを格納する。
【0035】
また、SRAM領域23に展開されるメモリ管理テーブル230は、図25に示すように、チップ番号0のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス0の格納先ブロック番号、論理アドレス4の格納先ブロック番号、・・・を管理し、チップ番号1のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス1の格納先ブロック番号、論理アドレス5の格納先ブロック番号、・・・を管理し、チップ番号2のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス2の格納先ブロック番号、論理アドレス6の格納先ブロック番号、・・・を管理し、チップ番号3のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス3の格納先ブロック番号、論理アドレス7の格納先ブロック番号、・・・を管理している。
【0036】
このメモリ管理テーブル230は、図4に示すように、2バイトの領域を有しており、15ビットで表されるブロック番号と、そのエントリーが空いているときに“1”を表示し、そのエントリーが使用中あるいは未作成のときに“0”を表示する最上位ビット(以下、pビットと称する)とを格納する。
【0037】
ここで、このpビットが“0”で、そのエントリーが使用中のときには、そのエントリーに正規のブロック番号が登録されることになるが、そのエントリーが未作成のときには、そのエントリーにあり得ない非正規のブロック番号が登録されることになる。なお、このメモリ管理テーブル230は、メモリカード1aの電源投入時に、未作成の状態に初期化されることになる。
【0038】
図1で説明したように、本発明では、初期設定を行った後、メモリ管理テーブル230を完成させてからパーソナルコンピュータ2aにビジー解除を通知するのではなくて、メモリ管理テーブル230を作成せずに、直ちに、パーソナルコンピュータ2aにビジー解除を通知したり、メモリ管理テーブル230の有する項目の一部分だけを作成して、パーソナルコンピュータ2aにビジー解除を通知し、その後、メモリ管理テーブル230の未作成部分を作成していくように処理する構成を採っている。
【0039】
このメモリ管理テーブル230の未作成部分の作成処理は、パーソナルコンピュータ2aから処理要求が発行されない間に実行したり、パーソナルコンピュータ2aがアクセス要求が発行するときにそれと同期して実行する構成を採っている。
【0040】
メモリ管理テーブル230の全体的な作成処理の実施例の説明に入る前に、図5ないし図7に示す処理フローに従って、このメモリ管理テーブル230の未作成部分の作成処理について説明する。
【0041】
すなわち、前者の構成に従って、メモリ管理テーブル230の未作成部分の作成処理を行うときには、初期化を実行してパーソナルコンピュータ2aにビジー状態の解除を通知したり、パーソナルコンピュータ2aの処理要求に応答して処理を行って、その処理の終了に同期してパーソナルコンピュータ2aにビジー状態の解除を通知すると、CPU21は、ROM22に格納されるプログラムに従って、図5の処理フローに示すように、先ず最初に、ステップ1で、未処理のフラッシュメモリ20のブロックから、規定の順番に従ってブロックを1つ選択する。例えば、若いチップ番号のフラッシュメモリ20からの順番に従いつつ、先頭ブロックからの順番に従って未処理のブロックを1つ選択するのである。
【0042】
続いて、ステップ2で、そのブロックに格納される論理アドレス(但し、データがないときには、論理アドレスも書き込まれていない)を取得して、その論理アドレスの指すメモリ管理テーブル230のエントリーに、そのブロックのブロック番号を書き込むとともに、pビットに使用中を表示する“0”を書き込む(但し、初期値として未作成を表示する“0”が書き込まれているので、実際にはpビットに対しての書き込み処理は行わない)ことで、そのエントリー部分のテーブルを作成する。
【0043】
続いて、ステップ3で、1つのフラッシュメモリ20の持つ全ブロックの選択を終了したのか否かを判断して、全ブロックの選択を終了したことを判断するときには、ステップ4に進んで、そのフラッシュメモリ20に書き込まれていない論理アドレスの指すメモリ管理テーブル230のエントリーのpビットに、空きを示す“1”を書き込む。一方、ステップ3で、1つのフラッシュメモリ20の持つ全ブロックの選択を終了していないことを判断するときには、このステップ4の処理は行わない。
【0044】
続いて、ステップ5で、全フラッシュメモリ20の持つ全ブロックの選択を終了したのか否かを判断して、選択の終了を判断するときには、処理を終了し、選択の終了を判断しないときには、ステップ6に進んで、パーソナルコンピュータ2aから処理要求が発行されたのか否かを判断して、処理要求が発行されていないことを判断するときには、ステップ1に戻ってテーブル作成処理を続行し、処理要求が発行されたことを判断するときには、後の処理のためにどこまでのテーブル作成処理を行ったのかを記録してから、処理を終了する。
【0045】
このようにして、CPU21は、図5の処理フローを実行することで、パーソナルコンピュータ2aから処理要求が発行されない間、メモリ管理テーブル230の未作成部分を作成していくように処理するのである。
【0046】
また、後者の構成に従って、メモリ管理テーブル230の未作成部分の作成処理を行うときには、パーソナルコンピュータ2aがアクセス要求(フラッシュメモリ20に対するアクセスを指示する処理要求であり、論理アドレスが指定されることになる)が発行すると、CPU21は、ROM22に格納されるプログラムに従って、図6及び図7の処理フローに示すように、先ず最初に、ステップ1で、アクセス要求で指定される論理アドレスの指すメモリ管理テーブル230の管理データ(ブロック番号/pビット)を読み出す。例えば、論理アドレス8が発行されるときには、図25に示すメモリ管理テーブル230に従って、チップ番号0及び行2の指すメモリ管理テーブル230のエントリーに格納される管理データを読み出すのである。
【0047】
続いて、ステップ2で、読み出したpビットが“1”を表示しているのか否かを判断して、“1”を表示していることを判断するとき、すなわち、発行された論理アドレスの指すメモリ管理テーブル230のエントリーが空いていることを判断するときには、ステップ3に進んで、アクセス要求でライトコマンドが発行されたのか否かを判断する。
【0048】
この判断処理に従って、ライトコマンドが発行されたことを判断するときには、ステップ4に進んで、データ格納管理テーブル231を参照することで、発行された論理アドレスの割り付けられるフラッシュメモリ20の持つ空きブロックを探し出して、そのブロックにライトデータを書き込む。例えば、論理アドレス8が発行されるときには、チップ番号0のフラッシュメモリ20の持つ空きブロックを探し出して、その空きブロックにライトデータを書き込むのである。そして、続くステップ5で、発行された論理アドレスの指すメモリ管理テーブル230のエントリーに、データ格納先のブロック番号を書き込むとともに、pビットに、使用中を示す“0”を書き込んで処理を終了する。
【0049】
一方、ステップ3の判断処理に従って、発行されたコマンドがライトコマンドでないことを判断するときには、ステップ6に進んで、そのコマンドに応じた処理を実行する。この処理ルートを経由してステップ6に入る場合、リードコマンドが発行されるときには、データがないことを示すコードをパーソナルコンピュータ2aに転送する処理を行い、消去コマンドが発行されるときには、既に消去されているので、処理終了を示すコードをパーソナルコンピュータ2aに転送する処理を行う。
【0050】
一方、ステップ2でpビットが“1”を表示していないことを判断するとき、すなわち、発行された論理アドレスの指すメモリ管理テーブル230のエントリーが使用中か未作成のどちらかであることを判断するときには、ステップ7(図7の処理フロー)に進んで、そのエントリーに正規のブロック番号が登録されているのか否かを判断する。
この判断処理に従って、発行された論理アドレスの指すメモリ管理テーブル230のエントリーに正規のブロック番号が登録されていることを判断するとき、すなわち、そのエントリーが使用中であることを判断するときには、ステップ3に進んで、上述した処理を行う。ここで、フラッシュメモリ20は上書きできないので、ライトコマンドが発行されるときには、発行された論理アドレスの割り付けられるフラッシュメモリ20の持つ空きブロックを探し出して、その空きブロックにライトデータを書き込むとともに、そのライトデータにより更新される古いデータを消去する処理を行う。
【0051】
なお、この処理ルートを経由するときには、pビットは既に“0”を表示しているので、ステップ5ではpビットに“0”を書き込むことは行わない。また、ステップ6では、リードコマンドが発行されるときには、発行された論理アドレスの割り付けられるフラッシュメモリ20から、ステップ7で取得したブロック番号の指すデータを読み出してパーソナルコンピュータ2aに転送する処理を行い、消去コマンドが発行されるときには、そのデータを消去するとともに、pビットに“1”を書き込む処理を行う。
【0052】
一方、ステップ7の判断処理に従って、発行された論理アドレスの指すメモリ管理テーブル230のエントリーに正規のブロック番号が登録されていないことを判断するとき、すなわち、そのエントリーが未作成であることを判断するときには、ステップ8に進んで、発行された論理アドレスの割り付けられるフラッシュメモリ20の持つブロックを規定の順番(例えば先頭からの順番)に従って1つ選択する。
【0053】
続いて、ステップ9で、ステップ8の選択処理に従ってブロックを選択できたのか否かを判断して、ブロックを選択できたことを判断するときには、ステップ10に進んで、そのブロックに格納される論理アドレス(但し、データがないときには、論理アドレスも書き込まれていない)を取得して、その論理アドレスの指すメモリ管理テーブル230のエントリーに、そのブロックのブロック番号を書き込むとともに、pビットに使用中を表示する“0”を書き込む(但し、初期値として未作成を表示する“0”が書き込まれているので、実際にはpビットに対しての書き込み処理は行わない)ことで、そのエントリー部分のテーブルを作成してから、ステップ8に戻っていく。
【0054】
一方、ステップ9で、ステップ8の選択処理に従ってブロックを選択できないことを判断するとき、すなわち、発行された論理アドレスの割り付けられるフラッシュメモリ20の持つ全ブロックを選択したことを判断するときには、ステップ11に進んで、そのフラッシュメモリ20に書き込まれていない論理アドレスの指すメモリ管理テーブル230のエントリーのpビットに、空きを示す“1”を書き込む。
【0055】
続いて、ステップ12で、ステップ10で取得した論理アドレスに、発行された論理アドレスがあるのか否かを判断して、発行された論理アドレスがあることを判断するときには、ステップ3に進んで、上述した処理を行う。このときには、発行された論理アドレスの指すメモリ管理テーブル230のエントリーに正規のブロック番号が格納された状態となるので、ステップ3以降の処理では、ステップ7を経由してステップ3の処理に入るときと同じ処理を行うことになる。
【0056】
一方、ステップ12の判断処理で、ステップ10で取得した論理アドレスに、発行された論理アドレスがないことを判断するときには、ステップ3に進んで、上述した処理を行う。このときには、発行された論理アドレスの指すメモリ管理テーブル230のエントリーが空いていることになるので、ステップ3以降の処理では、ステップ2を経由してステップ3の処理に入るときと同じ処理を行うことになる。
【0057】
このようにして、CPU21は、図6及び図7の処理フローを実行することで、パーソナルコンピュータ2aからアクセス要求が発行されると、そのアクセス要求で指定される論理アドレスを使って、メモリ管理テーブル230の未作成部分を作成していくように処理するのである。
【0058】
この図6及び図7の処理フローでは、パーソナルコンピュータ2aがアクセス要求を発行するときに、そのアクセス要求で指定される論理アドレスの指すメモリ管理テーブル230のエントリーが未作成であるときには、その論理アドレスの割り付けられるフラッシュメモリ20の持つ全ブロックをサーチして、メモリ管理テーブル230を作成していくという構成を採ったが、図7の処理フローに代えて図8の処理フローを実行することで、その論理アドレスを持つデータが検索された時点で、そのサーチを打ち切ってメモリ管理テーブル230の作成を中断していくという構成を採ることも可能である。
【0059】
更に、このとき、図9(a)に示すように、その論理アドレスを持つデータが検索された時点から、規定の数のブロックまでサーチを続けて、それが終了する時点でメモリ管理テーブル230の作成を中断していくという構成を採ったり、図9(b)に示すように、その論理アドレスを持つデータが検索された時点から、規定時間の間だけサーチを続けて、それが終了する時点でメモリ管理テーブル230の作成を中断していくという構成を採ることも可能である。
【0060】
ここで、アクセス要求で指定される論理アドレスの指すメモリ管理テーブル230のエントリーが未作成であるときに、その論理アドレスの割り付けられるフラッシュメモリ20の持つ全ブロックをサーチするという方法を採ると、そのフラッシュメモリ20を再びサーチする必要がないという利点が得られる。一方、アクセス要求で指定される論理アドレスの指すメモリ管理テーブル230のエントリーが未作成であるときに、その論理アドレスを持つデータが検索された時点で、そのサーチを打ち切るという方法を採ると、アクセス要求に対して迅速に応答できるという利点が得られる。
【0061】
次に、メモリ管理テーブル230の全体的な作成処理について説明する。
図10に、メモリ管理テーブル230の作成処理の処理フローの一例を図示する。
【0062】
この処理フローでは、図11に示すように、初期設定を終了すると、パーソナルコンピュータ2aに対して直ちにビジー解除を通知してから、メモリ管理テーブル230の作成処理に入って、パーソナルコンピュータ2aから立ち上げに必要となる処理要求が発行されると、その作成処理を一時停止して、その処理要求に対する処理を行ってパーソナルコンピュータ2aに対してビジー解除を通知した後、メモリ管理テーブル230が完成されていないときには、パーソナルコンピュータ2aから次の処理要求が発行されるまでの間、メモリ管理テーブル230の作成を続行していくことで、メモリ管理テーブル230を作成するという構成を採っている。
【0063】
すなわち、CPU21は、メモリカード1aに電源が投入されることで立ち上げられると、ROM22に格納されるプログラムに従って、図10の処理フローに示すように、先ず最初に、ステップ1で、パーソナルコンピュータ2aに対してビジーを通知し、続くステップ2で、内部の各レジスタに初期値を設定することで初期化処理を行い、その初期化処理を終了すると、続くステップ3で、パーソナルコンピュータ2aに対してビジー解除を通知する。
【0064】
続いて、ステップ4で、メモリ管理テーブル230の作成に入って、図5の処理フローで説明したように、フラッシュメモリ20の格納データにアクセスすることでメモリ管理テーブル230を作成し、続くステップ5で、パーソナルコンピュータ2aからコマンドや割り込みが発行されることが検出されるまでの間、その作成処理を続けていく。
【0065】
続いて、ステップ5で、パーソナルコンピュータ2aからコマンドや割り込みが発行(この時点で発行される処理要求は、立ち上げに関するもので、メモリ管理テーブル230を使用するアクセス要求ではない)されることが検出されると、ステップ6に進んで、パーソナルコンピュータ2aに対してビジーを通知し、続くステップ7で、メモリ管理テーブル230が作成中であるのか否かを判断して、作成中であることを判断するときには、ステップ8に進んで、メモリ管理テーブル230の作成を一時停止する。
【0066】
続いて、ステップ9で、パーソナルコンピュータ2aの発行したコマンドや割り込みに対する処理を行い、その処理を終了すると、続くステップ10で、パーソナルコンピュータ2aに対してビジー解除を通知し、続くステップ11で、メモリ管理テーブル230が作成中であるのか否かを判断して、作成中でないことを判断するときには、直ちにステップ5に戻り、作成中であることを判断するときには、ステップ12に進んで、メモリ管理テーブル230の作成を再開してから、ステップ5に戻っていく。
【0067】
このようにして、図10の処理フローでは、初期設定を終了すると、メモリ管理テーブル230の作成に入らずに、パーソナルコンピュータ2aに対して直ちにビジー解除を通知して、その後、パーソナルコンピュータ2aが処理要求を発行してこない間、メモリ管理テーブル230を作成していくように処理するのである。
【0068】
図12及び図13に、メモリ管理テーブル230の作成処理の処理フローの他の例を図示する。
この処理フローでは、図14に示すように、初期設定を終了すると、メモリ管理テーブル230の有する項目の一部分を作成した後、パーソナルコンピュータ2aに対してビジー解除を通知し、それに続けて、メモリ管理テーブル230の作成を再開して、パーソナルコンピュータ2aから立ち上げに必要となる処理要求が発行されると、その作成処理を一時停止し、その処理要求に対する処理を行ってパーソナルコンピュータ2aに対してビジー解除を通知した後、メモリ管理テーブル230が完成されていないときには、パーソナルコンピュータ2aから次の処理要求が発行されるまでの間、メモリ管理テーブル230の作成を続行していくことで、メモリ管理テーブル230を作成するという構成を採っている。
【0069】
すなわち、CPU21は、メモリカード1aに電源が投入されることで立ち上げられると、ROM22に格納されるプログラムに従って、図12及び図13の処理フローに示すように、先ず最初に、ステップ1で、パーソナルコンピュータ2aに対してビジーを通知し、続くステップ2で、内部の各レジスタに初期値を設定することで初期化処理を行い、その初期化処理を終了すると、続いて、ステップ3で、メモリ管理テーブル230の作成を開始し、続くステップ4で、その作成を一時停止することで、メモリ管理テーブル230の有する項目の一部分を作成する。
【0070】
続いて、ステップ5で、パーソナルコンピュータ2aに対してビジー解除を通知し、続くステップ6で、メモリ管理テーブル230の作成を再開して、続くステップ7で、パーソナルコンピュータ2aからコマンドや割り込みが発行されることが検出されるまでの間、その作成処理を続けていく。
【0071】
続いて、ステップ7で、パーソナルコンピュータ2aからコマンドや割り込みが発行(この時点で発行される処理要求は、立ち上げに関するもので、メモリ管理テーブル230を使用するアクセス要求ではない)されることが検出されると、ステップ8に進んで、パーソナルコンピュータ2aに対してビジーを通知し、続くステップ9で、メモリ管理テーブル230が作成中であるのか否かを判断して、作成中であることを判断するときには、ステップ10に進んで、メモリ管理テーブル230の作成を一時停止する。
【0072】
続いて、ステップ11で、パーソナルコンピュータ2aの発行したコマンドや割り込みに対する処理を行い、その処理を終了すると、続くステップ12(図13の処理フロー)で、パーソナルコンピュータ2aに対してビジー解除を通知し、続くステップ13で、メモリ管理テーブル230が作成中であるのか否かを判断して、作成中でないことを判断するときには、直ちにステップ7に戻り、作成中であることを判断するときには、ステップ14に進んで、メモリ管理テーブル230の作成を再開してから、ステップ7に戻っていく。
【0073】
このようにして、図12及び図13の処理フローでは、初期設定を終了すると、メモリ管理テーブル230の有する項目の一部分を作成した後、パーソナルコンピュータ2aに対してビジー解除を通知して、その後、パーソナルコンピュータ2aが処理要求を発行してこない間、メモリ管理テーブル230の作成を再開してメモリ管理テーブル230を作成していくように処理するのである。
【0074】
このメモリ管理テーブル230の有する項目の一部分の作成処理は、図15の処理フローに示すように、テーブルの作成時にアクセスするフラッシュメモリ20のブロック数に制限を加えることで実現したり、図16の処理フローに示すように、テーブルの作成時にアクセスするフラッシュメモリ20へのアクセス時間に制限を加えることで実現することになる。
【0075】
図12及び図13の処理フローでは、図14に示すように、初期設定を終了すると、メモリ管理テーブル230の有する項目の一部分を作成し、それに続けて、パーソナルコンピュータ2aに対してビジー解除を通知した後、パーソナルコンピュータ2aが処理要求を発行してこない間、メモリ管理テーブル230の作成を再開していくという構成を採ったが、図17に示すように、パーソナルコンピュータ2aが論理アドレスを指定してアクセス要求(メモリ管理テーブル230を参照する必要のある処理要求)を発行するときに、図6及び図7の処理フローで説明したように、それと同期をとって、メモリ管理テーブル230の作成を再開していくという構成を採ることも可能である。
【0076】
このとき作成するメモリ管理テーブル230の有する項目の一部分は、パーソナルコンピュータ2aが最初に発行してくるアクセス要求で指定される論理アドレス(通常、小さな論理アドレス)に対応付けられる部分を作成していくことが好ましい。そのようにすれば、パーソナルコンピュータ2aが最初に発行してくるアクセス要求に対して、メモリ管理テーブル230が用意されていることになるからである。
【0077】
図18ないし図21に、この構成を採るときに実行する処理フローの一例を図示する。
この図18に示す処理フローに従うときには、CPU21は、先ず最初に、ステップ1で、アクセス要求で指定された論理アドレスの指すメモリ管理テーブル230のエントリーに、データが登録されているのか否かを判断して、登録されていることを判断するときには、図6及び図7の処理フローでも説明したように、メモリ管理テーブル230の作成処理を行うことなく、直ちに、ステップ7に進んで、発行されたコマンドに対する処理を実行する。
【0078】
図25に示すメモリ管理テーブル230を具体例にして説明するならば、例えば、論理アドレス8が発行されるときには、チップ番号0及び行2の指すメモリ管理テーブル230のエントリーに、データが登録されているのか否かを判断して、登録されていることを判断するときには、直ちに、ステップ7に進んで、発行されたコマンドに対する処理を実行するのである。
【0079】
一方、ステップ1で、データが登録されていないことを判断するときには、ステップ2に進んで、発行された論理アドレスの割り付けられるフラッシュメモリ20を特定する。図25に示すメモリ管理テーブル230を具体例にして説明するならば、例えば、論理アドレス8が発行されるときには、チップ番号0のフラッシュメモリ20を特定するのである。
【0080】
続いて、ステップ3で、変数iに“0”をセットし、続くステップ4で、ステップ2で特定したフラッシュメモリ20の持つ変数iの指すブロック(例えば、先頭ブロックからの順番に従って、ブロックと変数iの値との対応関係がとられる)から、データを読み出すことで、ブロック番号とそのデータの持つ論理アドレスとの対応関係を抽出して、メモリ管理テーブル230を作成する。
【0081】
続いて、ステップ5で、ステップ2で特定したフラッシュメモリ20の持つ全ブロックのデータを読み出したのか否かを判断して、読み出していないことを判断するときには、ステップ6に進んで、変数iの値を1つインクリメントしてから、ステップ4に戻っていく。そして、ステップ5で、全ブロックのデータを読み出したことを判断するときには、ステップ7に進んで、発行されたコマンドに対する処理を実行する。
【0082】
このようにして、図18の処理フローでは、アクセス要求で指定された論理アドレスの指すメモリ管理テーブル230のエントリーに、データが登録されていないことを判断するときには、その論理アドレスの割り付けられるフラッシュメモリ20の持つ全ブロックのデータを読み出して、それを用いてメモリ管理テーブル230を作成するのである。
【0083】
この図18の処理フローに従うと、メモリ管理テーブル230の作成のために一度アクセスされたフラッシュメモリ230については、メモリ管理テーブル230の作成のために再度アクセスされることがないという利点が得られるが、発行された論理アドレスが検索されても、フラッシュメモリ20の持つ全ブロックの処理が終了するまでの間は、発行されたコマンドに対する処理に入れないことになる。
【0084】
そこで、発行されたコマンドに対する処理の応答を優先する場合には、図18の処理フローに代えて、図19の処理フローを実行することで、発行された論理アドレスが検索された時点で、メモリ管理テーブル230の作成処理を中断して、直ちに、発行されたコマンドに対する処理に入る構成を採ることになる。
【0085】
この図19の処理フローでは、図18の処理フローのステップ5に相当するステップ5で、発行された論理アドレスを持つブロックを読み出したのか否かを判断して、読み出したことを判断するときには、直ちに、ステップ7に進んで、発行されたコマンドに対する処理を実行していくことで、発行された論理アドレスが検索された時点で、メモリ管理テーブル230の作成処理を中断して、直ちに、コマンドに対する処理に入ることを実現している。
【0086】
図19の処理フローでは、発行された論理アドレスが検索された時点で、直ちに、メモリ管理テーブル230の作成処理を中断していくという構成を採ったが、その後もある程度、メモリ管理テーブル230の作成処理を続行していくという構成を採ることも可能である。
【0087】
図20及び図21に、この構成を実現するための処理フローの一例を図示する。
図20の処理フローでは、図19の処理フローのステップ3に相当するステップ3で、変数jに“0”をセットする構成を採って、図19の処理フローのステップ5に相当するステップ5で、発行された論理アドレスを持つブロックを読み出したことを判断すると、ステップ7に進んで、変数i,jの値を1つインクリメントする。そして、続くステップ8で、変数iの指すメモリ管理テーブル230を作成した後、続くステップ9で、変数jの値が規定値に到達したのか否かを判断して、到達していないことを判断するときにはステップ7に戻り、到達したことを判断するときには、ステップ10に進んで、発行されたコマンドに対する処理に入ることで、発行された論理アドレスが検索された時点から、ある程度、メモリ管理テーブル230の作成処理を続行していくことを実現している。
【0088】
また、図21の処理フローでは、図19の処理フローのステップ5に相当するステップ5で、発行された論理アドレスを持つブロックを読み出したことを判断すると、ステップ7に進んで、タイマを起動し、続くステップ8で、変数iの値を1つインクリメントする。そして、続くステップ9で、変数iの指すメモリ管理テーブル230を作成した後、続くステップ10で、タイマが規定時間をタイムオーバーしたのか否かを判断して、タイムオーバーしていないことを判断するときにはステップ8に戻り、タイムオーバーしたことを判断するときには、ステップ11に進んで、発行されたコマンドに対する処理に入ることで、発行された論理アドレスが検索された時点から、ある程度、メモリ管理テーブル230の作成処理を続行していくことを実現している。
【0089】
図18ないし図21の処理フローについては、図17に示したアクセス要求の発行時点で、メモリ管理テーブル230の未作成部分の作成処理に入ることで説明した。すなわち、初期設定を終了した後、メモリ管理テーブル230の有する項目の一部分を作成して、パーソナルコンピュータ2aにビジー解除を通知した後、アクセス要求が発行されるときに、図18ないし図21の処理フローを実行することで、メモリ管理テーブル230を作成していくことで説明したが、図22に示すアクセス要求の発行時点で実行する構成を採ることも可能である。
【0090】
すなわち、初期設定を終了した後、直ちに、パーソナルコンピュータ2aにビジー解除を通知した後、アクセス要求が発行されるときに、メモリ管理テーブル230を作成していくようにしてもよいのである。
【0091】
図示実施例に従って本発明を説明したが、本発明はこれに限定されるものではない。例えば、実施例では、フラッシュメモリ20を搭載することを具体例にして本発明を説明したが、本発明はフラッシュメモリ20にその適用が限られるものではなく、その他の不揮発性メモリやバッテリバックアップされた揮発性メモリに対しても、そのまま適用できる。
【0092】
【発明の効果】
以上説明したように、本発明のメモリ装置では、論理アドレスと物理アドレスとの間の変換処理に用いるメモリ管理テーブルを作成するときにあって、従来技術のように、初期設定を行った後、メモリ管理テーブルを完成させてからホスト装置にビジー解除を通知するという構成を採るのではなくて、メモリ管理テーブルを作成せずに、直ちに、ホスト装置にビジー解除を通知したり、メモリ管理テーブルの有する項目の一部分だけを作成して、ホスト装置にビジー解除を通知し、その後、ホスト装置が処理要求を発行するまでの間、メモリ管理テーブルの未作成部分を作成したり、ホスト装置が処理要求が発行するときに、その処理要求で指定される論理アドレスの指すメモリ管理テーブルの未作成部分を作成することで、メモリ管理テーブルを作成するという構成を採ることから、ホスト装置は、メモリ装置が起動された後、迅速に処理に入れるようになる。
【0093】
そして、ホスト装置は、迅速にメモリ装置が正常であることを認識できることで、メモリ装置にエラーが発生しているという誤認識を起こすことなく、処理に入れるようになる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】メモリカードの説明図である。
【図3】データ格納管理テーブルの説明図である。
【図4】メモリ管理テーブルの説明図である。
【図5】メモリ管理テーブルの作成処理の処理フローである。
【図6】メモリ管理テーブルの作成処理の処理フローである。
【図7】メモリ管理テーブルの作成処理の処理フローである。
【図8】メモリ管理テーブルの作成処理の処理フローである。
【図9】メモリ管理テーブルの作成中断処理の説明図である。
【図10】メモリ管理テーブルの作成処理の処理フローである。
【図11】メモリ管理テーブルの作成処理の説明図である。
【図12】メモリ管理テーブルの作成処理の処理フローである。
【図13】メモリ管理テーブルの作成処理の処理フローである。
【図14】メモリ管理テーブルの作成処理の説明図である。
【図15】メモリ管理テーブルの作成処理の処理フローである。
【図16】メモリ管理テーブルの作成処理の処理フローである。
【図17】メモリ管理テーブルの作成処理の説明図である。
【図18】メモリ管理テーブルの作成処理の処理フローである。
【図19】メモリ管理テーブルの作成処理の処理フローである。
【図20】メモリ管理テーブルの作成処理の処理フローである。
【図21】メモリ管理テーブルの作成処理の処理フローである。
【図22】メモリ管理テーブルの作成処理の説明図である。
【図23】フラッシュメモリの説明図である。
【図24】フラッシュメモリの説明図である。
【図25】メモリ管理テーブルの説明図である。
【図26】メモリ管理テーブルの説明図である。
【符号の説明】
1 メモリ装置
2 ホスト装置
10 メモリ
11 CPU
12 コントローラ
13 バス
14 メモリ管理テーブル
15 作成手段
16 検出手段
17 通知手段
Claims (17)
- 電源遮断時にもデータを保持する機能を持つ1つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理し、
さらに、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出するときに、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。 - 電源遮断時にもデータを保持する機能を持つ1つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理し、
さらに、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスするメモリ域の数に制限を課することで、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。 - 電源遮断時にもデータを保持する機能を持つ1つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理し、
さらに、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスする時間に制限を課することで、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。 - 電源遮断時にもデータを保持する機能を持つ1つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
メモリの起動時に、初期設定を終了すると、メモリ管理テーブルを作成せずに、直ちに、ホストに対してビジー状態の解除を通知し、
その後、ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理し、
さらに、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出するときに、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。 - 電源遮断時にもデータを保持する機能を持つ1つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
メモリの起動時に、初期設定を終了すると、メモリ管理テーブルを作成せずに、直ちに、ホストに対してビジー状態の解除を通知し、
その後、ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理し、
さらに、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスするメモリ域の数に制限を課することで、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。 - 電源遮断時にもデータを保持する機能を持つ1つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
メモリの起動時に、初期設定を終了すると、メモリ管理テーブルを作成せずに、直ちに、ホストに対してビジー状態の解除を通知し、
その後、ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理し、
さらに、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスする時間に制限を課することで、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。 - 電源遮断時にもデータを保持する機能を持つ1つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
メモリの起動時に、初期設定を終了すると、メモリ管理テーブルの有する項目の一部分の作成に入って、上記メモリ域を単位にして上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの有する項目の一部分を作成し、
それに続いて、ホストに対してビジー状態の解除を通知していくように処理することを、
特徴とするメモリ管理テーブル作成方法。 - 電源遮断時にもデータを保持する機能を持つ1つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
メモリの起動時に、初期設定を終了すると、メモリ管理テーブルの有する項目の一部分の作成に入って、上記メモリ域を単位にして上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの有する項目の一部分を作成し、
それに続いて、ホストに対してビジー状態の解除を通知し、
それに続けて、メモリ管理テーブルの未作成部分の作成に入って、ホストから処理要求が発行されるまでの間、上記メモリ域を単位にして上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルを作成していくように処理することを、
特徴とするメモリ管理テーブル作成方法。 - 請求項7又は8記載のメモリ管理テーブル作成方法において、
メモリの起動時に、アクセスするメモリ域の数に制限を課することで、作成するメモリ管理テーブル部分を決定することを、
特徴とするメモリ管理テーブル作成方法。 - 請求項7又は8記載のメモリ管理テーブル作成方法において、
メモリの起動時に、アクセスする時間に制限を課することで、作成するメモリ管理テーブル部分を決定することを、
特徴とするメモリ管理テーブル作成方法。 - 電源遮断時にもデータを保持する機能を持つ1つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
メモリの起動時に、初期設定を終了すると、メモリ管理テーブルの有する項目の一部分の作成に入って、上記メモリ域を単位にして上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの有する項目の一部分を作成し、
それに続いて、ホストに対してビジー状態の解除を通知し、
その後、ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理することを、
特徴とするメモリ管理テーブル作成方法。 - 請求項11記載のメモリ管理テーブル作成方法において、
メモリの起動時に、アクセスするメモリ域の数に制限を課することで、作成するメモリ管理テーブル部分を決定することを、
特徴とするメモリ管理テーブル作成方法。 - 請求項11記載のメモリ管理テーブル作成方法において、
メモリの起動時に、アクセスする時間に制限を課することで、作成するメモリ管理テーブル部分を決定することを、
特徴とするメモリ管理テーブル作成方法。 - 請求項11ないし13のいずれか1項に記載のメモリ管理テーブル作成方法において、
処理要求で指定される論理アドレスの割り付けられるメモリの持つ全メモリ域へのアクセスを終了するときに、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。 - 請求項11ないし13のいずれか1項に記載のメモリ管理テーブル作成方法において、
処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出するときに、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。 - 請求項11ないし13のいずれか1項に記載のメモリ管理テーブル作成方法において、
処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスするメモリ域の数に制限を課することで、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。 - 請求項11ないし13のいずれか1項に記載のメモリ管理テーブル作成方法において、
処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスする時間に制限を課することで、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25821698A JP3544476B2 (ja) | 1998-09-11 | 1998-09-11 | メモリ管理テーブル作成方法 |
KR1020017003078A KR100590150B1 (ko) | 1998-09-11 | 1999-05-13 | 메모리 관리 테이블 작성 방법 및 메모리 장치 |
PCT/JP1999/002471 WO2000016199A1 (fr) | 1998-09-11 | 1999-05-13 | Procede permettant de realiser une table de gestion de memoire et dispositif de memoire |
US09/801,671 US6625712B2 (en) | 1998-09-11 | 2001-03-09 | Memory management table producing method and memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25821698A JP3544476B2 (ja) | 1998-09-11 | 1998-09-11 | メモリ管理テーブル作成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000090004A JP2000090004A (ja) | 2000-03-31 |
JP3544476B2 true JP3544476B2 (ja) | 2004-07-21 |
Family
ID=17317137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25821698A Expired - Fee Related JP3544476B2 (ja) | 1998-09-11 | 1998-09-11 | メモリ管理テーブル作成方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6625712B2 (ja) |
JP (1) | JP3544476B2 (ja) |
KR (1) | KR100590150B1 (ja) |
WO (1) | WO2000016199A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6565443B1 (en) | 1999-09-14 | 2003-05-20 | Innovative Gaming Corporation | System and method for verifying the contents of a mass storage device before granting access to computer readable data stored on the device |
JPWO2002069127A1 (ja) * | 2001-02-26 | 2004-07-02 | 東京エレクトロンデバイス株式会社 | 記憶媒体制御方法、記憶媒体制御装置、および記憶媒体アダプタ |
JP2003067244A (ja) | 2001-08-24 | 2003-03-07 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置及びその制御方法 |
KR100439507B1 (ko) * | 2002-03-18 | 2004-07-09 | 삼성전기주식회사 | 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법 |
JP2004318940A (ja) * | 2003-04-14 | 2004-11-11 | Renesas Technology Corp | 記憶装置 |
JP4731325B2 (ja) * | 2003-10-27 | 2011-07-20 | パナソニック株式会社 | 記録媒体、データ処理装置及びデータ処理方法 |
JP4521245B2 (ja) * | 2004-10-29 | 2010-08-11 | 富士フイルム株式会社 | 記憶デバイス制御装置及びプログラム |
US7315917B2 (en) | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
JP2007034537A (ja) * | 2005-07-25 | 2007-02-08 | Sony Corp | 複合型記憶装置、データ書込方法及びプログラム |
US8112575B2 (en) | 2006-08-04 | 2012-02-07 | Panasonic Corporation | Memory controller, nonvolatile memory device, access device, and nonvolatile memory system |
US20080091871A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Non-volatile memory with worst-case control data management |
US20080091901A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Method for non-volatile memory with worst-case control data management |
US8327040B2 (en) * | 2009-01-26 | 2012-12-04 | Micron Technology, Inc. | Host controller |
TWI506422B (zh) * | 2009-09-23 | 2015-11-01 | Silicon Motion Inc | 用來管理具有多通道、多途徑的記憶裝置之方法以及相關之記憶裝置及其控制器 |
JP5403160B2 (ja) * | 2010-06-23 | 2014-01-29 | 富士通株式会社 | 通信装置、通信方法、および通信プログラム |
US9253102B2 (en) * | 2013-11-13 | 2016-02-02 | Verizon Patent And Licensing Inc. | Time weighted queuing scheduler for machine-to-machine communications |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5113512A (en) * | 1988-06-21 | 1992-05-12 | Matsushita Electric Industrial Co., Ltd. | System for managing a storage medium reducing physical space needed |
JP2582487B2 (ja) * | 1991-07-12 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 半導体メモリを用いた外部記憶システム及びその制御方法 |
JPH0546328A (ja) * | 1991-08-13 | 1993-02-26 | Fujitsu Ltd | 半導体記憶装置のステージング方法 |
JP3328321B2 (ja) * | 1992-06-22 | 2002-09-24 | 株式会社日立製作所 | 半導体記憶装置 |
US5822784A (en) * | 1993-03-19 | 1998-10-13 | Intel Corporation | Mechanism supporting execute in place read only memory applications located on removable computer cards |
JP3371044B2 (ja) * | 1994-12-28 | 2003-01-27 | 株式会社日立製作所 | ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法 |
JP3706167B2 (ja) * | 1995-02-16 | 2005-10-12 | 株式会社ルネサステクノロジ | 半導体ディスク装置 |
US5666560A (en) * | 1995-08-03 | 1997-09-09 | International Business Machines Corporation | Storage method and hierarchical padding structure for direct access storage device (DASD) data compression |
JP3604466B2 (ja) * | 1995-09-13 | 2004-12-22 | 株式会社ルネサステクノロジ | フラッシュディスクカード |
JP3197815B2 (ja) * | 1996-04-15 | 2001-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 半導体メモリ装置及びその制御方法 |
JP4079506B2 (ja) * | 1997-08-08 | 2008-04-23 | 株式会社東芝 | 不揮発性半導体メモリシステムの制御方法 |
US6119226A (en) * | 1998-01-06 | 2000-09-12 | Macronix International Co., Ltd. | Memory supporting multiple address protocols |
-
1998
- 1998-09-11 JP JP25821698A patent/JP3544476B2/ja not_active Expired - Fee Related
-
1999
- 1999-05-13 KR KR1020017003078A patent/KR100590150B1/ko not_active IP Right Cessation
- 1999-05-13 WO PCT/JP1999/002471 patent/WO2000016199A1/ja active IP Right Grant
-
2001
- 2001-03-09 US US09/801,671 patent/US6625712B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US20010014933A1 (en) | 2001-08-16 |
KR100590150B1 (ko) | 2006-06-15 |
JP2000090004A (ja) | 2000-03-31 |
KR20010086400A (ko) | 2001-09-10 |
WO2000016199A1 (fr) | 2000-03-23 |
US6625712B2 (en) | 2003-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3544476B2 (ja) | メモリ管理テーブル作成方法 | |
JP4206688B2 (ja) | データ処理装置及びデータ処理方法 | |
JP3485938B2 (ja) | 不揮発性半導体メモリ装置 | |
JP4238514B2 (ja) | データ記憶装置 | |
JP2582487B2 (ja) | 半導体メモリを用いた外部記憶システム及びその制御方法 | |
JP4676378B2 (ja) | データ記憶装置およびデータ記憶方法 | |
JP2669365B2 (ja) | 書換え可能なromファイル装置 | |
JPH117505A (ja) | カード型記憶媒体 | |
JP2549034B2 (ja) | 記憶装置 | |
JP2007058840A5 (ja) | ||
JPH06111588A (ja) | 一括消去型不揮発性メモリ | |
JP2008009874A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2004295865A (ja) | 自動ブーティングシステム及び自動ブーティング方法 | |
JP2006065533A (ja) | 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム | |
JPH1040170A (ja) | ディスクキャッシュシステム | |
JP2003280979A (ja) | 情報記憶装置 | |
JPH1063442A (ja) | 半導体ディスク装置 | |
JP4594944B2 (ja) | メモリ制御装置 | |
JPH11272569A (ja) | フラッシュメモリを使用した外部記憶装置のデータ回復方式 | |
JP4663577B2 (ja) | データ記憶装置およびこの初期化方法 | |
CN113918485B (zh) | 一种闪存资料防丢失方法、装置、设备及存储介质 | |
JP2000030375A (ja) | データ処理システム、アクセス装置及び記録媒体 | |
JP2001084180A (ja) | ファイル管理装置 | |
JPH06222985A (ja) | メモリ制御装置 | |
JP3313576B2 (ja) | メモリアクセス制御方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040311 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040330 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040402 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080416 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090416 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090416 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100416 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110416 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110416 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120416 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130416 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140416 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |