メモリカード及びメモリカードの制御方法
【課題】ホスト機器がアクセスするアドレスによるアクセス速度の低下を抑制可能なメモリカード及びメモリカードの制御方法を提供する。
【解決手段】 ホスト機器20との間でデータ転送が可能なメモリカード10であって、ホスト機器20からアクセスされる半導体メモリ11と、メモリカード10の動作情報に基づきアクセスにおける推奨アドレスを決定し、その推奨アドレスをホスト機器20に出力するアクセス制御部12とを備え、半導体メモリ11は推奨アドレスが割り振られたデータの読み出し処理又は書き込み処理を行う。
【解決手段】 ホスト機器20との間でデータ転送が可能なメモリカード10であって、ホスト機器20からアクセスされる半導体メモリ11と、メモリカード10の動作情報に基づきアクセスにおける推奨アドレスを決定し、その推奨アドレスをホスト機器20に出力するアクセス制御部12とを備え、半導体メモリ11は推奨アドレスが割り振られたデータの読み出し処理又は書き込み処理を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホスト機器との間でデータ転送を行うメモリカード及びメモリカードの制御方法に関する。
【背景技術】
【0002】
ホスト機器に接続されたメモリカードに搭載される半導体メモリとして、例えばNAND型フラッシュメモリのように、ある程度の数のデータをまとめて読み出し処理及び書き込み処理を行う半導体メモリが採用される場合がある(例えば、特許文献1参照。)。上記半導体メモリでは、ホスト機器がアクセスする半導体メモリのアドレスにより、アクセスに対する半導体メモリの処理時間が変動する場合がある。ここで、アクセスに対する「処理時間」とは、書き込み処理或いは読み出し処理に要する時間である。
【0003】
例えば、NAND型フラッシュメモリは、ブロック単位でしかデータ消去を行えない。1つのブロックは、複数の、書き込み単位であるページを含んでいる。このため、ブロックに記憶されたデータの一部のみを書き換える場合は、書き換える新データを新ブロックに書き込む。更に、旧データ(新データに書き換えられるデータ)を含む旧ブロックから、書き換えられないデータを新ブロックにコピーする。書き換えられないデータのコピー動作が多発すると、データの書き換えにおけるオーバーヘッドが非常に増大することになる。つまり、アクセスがあった場合の半導体メモリの処理速度(アクセス速度)が低下する。
【0004】
一方、ブロックに記憶されたデータをすべて書き換える場合は、書き換えられないデータを旧ブロックから新ブロックにコピーする必要がなく、ブロックに記憶されたデータの一部のみを書き換える場合に比べてアクセス速度が速い。
【0005】
以上に述べたように、アクセスされるアドレスによりアクセス速度が異なり、そのアクセスに対するメモリの処理時間が変動する場合がある。その結果、ホスト機器がアクセスするアドレスに起因してメモリカードの性能が低下するという問題があった。
【特許文献1】特開平7−122088号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は、ホスト機器がアクセスするアドレスによるアクセス速度の低下を抑制可能なメモリカード及びメモリカードの制御方法を提供する。
【課題を解決するための手段】
【0007】
本発明の第1の特徴は、ホスト機器との間でデータ転送が可能なメモリカードであって、(イ)ホスト機器からアクセスされる半導体メモリと、(ロ)メモリカードの動作情報に基づきアクセスにおける推奨アドレスを決定し、その推奨アドレスをホスト機器に出力するアクセス制御部とを備え、半導体メモリは推奨アドレスが割り振られたデータの読み出し処理又は書き込み処理を行うメモリカードであることを要旨とする。
【0008】
本発明の第2の特徴は、ホスト機器との間でデータ転送が可能なメモリカードの制御方法であって、(イ)メモリカードに搭載された半導体メモリにアクセスする際に、メモリカードの動作情報に基づき決定されたアクセスにおける推奨アドレスをメモリカードから読み出すステップと、(ロ)読み出された推奨アドレスに基づいて、半導体メモリに対して推奨アドレスが割り振られたデータの読み出し処理又は書き込み処理を行うステップとを含むメモリカードの制御方法であることを要旨とする。
【発明の効果】
【0009】
本発明によれば、ホスト機器がアクセスするアドレスによるアクセス速度の低下を抑制可能なメモリカード及びメモリカードの制御方法を提供できる。
【発明を実施するための最良の形態】
【0010】
次に、図面を参照して、本発明の第1及び第2の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す第1及び第2の実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【0011】
(第1の実施の形態)
本発明の第1の実施の形態に係るメモリカードは、図1に示すように、ホスト機器20との間でデータ転送が可能なメモリカード10であって、ホスト機器20からアクセスされる半導体メモリ11と、メモリカード10の動作情報に基づきアクセスにおける推奨アドレスを決定し、その推奨アドレスをホスト機器20に出力するアクセス制御部12とを備え、半導体メモリ11は推奨アドレスが割り振られたデータの読み出し処理又は書き込み処理を行う。「推奨アドレス」とは、例えば、ある書き込み処理が完了した時点における、次の書き込み処理に要する時間が最も短いアドレスである。又、「動作情報」とは、例えばデータ格納状態或いは半導体メモリ11の機能等の、半導体メモリ11のアクセスに対する処理時間に影響を与える情報である。
【0012】
アクセス制御部12は、アドレス決定部121、及びアドレス出力部122を備える。アドレス決定部121は、半導体メモリ11の状態を監視し、ホスト機器20からのアクセスにおける推奨アドレスを決定する。アドレス出力部122は、推奨アドレスをホスト機器20に出力する。更に、メモリカード10は、複数の推奨アドレスを格納する推奨アドレス格納部13を備える。
【0013】
複数のデータからなるブロック(以下において、「小ブロック」という。)にそれぞれ論理ブロックアドレス(LBA)が割り当てられ、メモリカード10は、LBA順にブロック単位で半導体メモリ11の書き込み処理又は読み出し処理を行う。半導体メモリ11の書き込み処理において、半導体メモリ11に設定された格納用のブロック(以下において、「大ブロック」という。)に小ブロックは格納される。そして、LBA順に大ブロックに小ブロックが格納される仕様の場合には、半導体メモリ11にLBAが不連続な書き込みがあったとき、大ブロックに格納済みの小ブロックを移動させながら、小ブロックをLBA順に大ブロックに格納する。小ブロック及び大ブロックの例を、図2に示す。図2に示す小ブロックは、1ページを528バイトとした4×8ページ分のデータである。このとき、図2に示すように、2112バイト×128ページからなる大ブロックは、2112バイト(4ページ)×8ページの小ブロックを16個格納できる。
【0014】
大ブロックにLBA順に小ブロックが格納されるように小ブロックを移動することを、以下において「再格納」という。再格納を行った場合、書き込み処理に要する時間が増大する。つまり、アクセスがあった場合のメモリの処理速度(アクセス速度)が低下する。
【0015】
一方、LBAが連続する書き込みの場合は、大ブロックに格納された小ブロックの再格納を行う必要がなく、大ブロックの空き領域に小ブロックを追記すればよい。したがって、LBAが連続する書き込みの場合は、LBAが不連続な書き込みの場合に比べてアクセス速度が早い。ここで、「追記」とは、小ブロックの再格納をすることなく、大ブロックに小ブロックを書き込む処理をいう。
【0016】
尚、半導体メモリ11の消去単位のブロックサイズ(以下において「消去ブロックサイズ」という。)は大ブロックである。半導体メモリ11に、例えばNAND型フラッシュメモリ等が採用可能である。
【0017】
図1に示した半導体メモリ11の書き込み処理の例を、図3〜図6を用いて説明する。図3〜図6において、例えば小ブロックLBA00hはLBA「00h」が割り当てられた小ブロックを示す。
【0018】
図3に示すように、大ブロックB1に小ブロックLBA00h〜LBA0Fhが格納されている。又、大ブロックB2に小ブロックLBA10h〜LBA1Fhが格納されている。ハッチングされた小ブロックLBA07h、LBA08h、LBA14h〜LBA18hは、これらの小ブロックと同一のLBAが割り当てられた小ブロックが、半導体メモリ11に新たに書き込まれたことを示す。即ち、大ブロックB3に小ブロックLBA07h〜LBA08hが新たに格納され、大ブロックB4に小ブロックLBA14h〜LBA18hが新たに格納されている。大ブロックB1に格納された小ブロックLBA07h〜LBA08h、及び大ブロックB2に格納された小ブロックLBA14h〜LBA18hは使用されないため消去可能である。しかし、半導体メモリ11は大ブロック単位にデータ消去を行うため、大ブロックB1に格納された小ブロックLBA07h〜LBA08h、及び大ブロックB2に格納された小ブロックLBA14h〜LBA18hは消去されずに半導体メモリ11に格納されている。以下において、大ブロックB1、B2等の、新たに書き込まれる小ブロックを格納できない大ブロックを「旧アサインブロック」という。一方、大ブロックB3、B4等の、新たに書き込まれる小ブロックを格納可能な大ブロックを「新アサインブロック」という。
【0019】
図4は、図3に示した状態の半導体メモリ11に小ブロックLBA09hが新たに書き込まれた状態を示す。大ブロック内にLBA順に小ブロックが格納されるため、新たに書き込まれた小ブロックLBA09hは、大ブロックB3に格納された小ブロックLBA08hの次に格納される。
【0020】
図5は、図3に示した状態の半導体メモリ11に小ブロックLBA19hが新たに書き込まれた状態を示す。新たに書き込まれた小ブロックLBA19hは、大ブロックB4に格納された小ブロックLBA18hの次に格納される。
【0021】
図6は、図3に示した状態の半導体メモリ11の大ブロックB5に小ブロックLBA0Ahが新たに書き込まれた状態を示す。小ブロックLBA0Ahは、大ブロックB3に格納された小ブロックLBA08h、及び大ブロックB4に格納された小ブロックLBA18hのいずれにも連続しない。そのため、図6に示すように、新アサインブロックとして大ブロックB5が設定され、新たに書き込まれた小ブロックLBA0Ahは大ブロックB5の先頭に格納される。
【0022】
ところで、新たな大ブロックを無制限に設定すると、半導体メモリ11におけるメモリ領域の無駄が多くなる。そのため、一般に、大ブロックが無制限に設定されないような制約が設けられる。例えば新アサインブロックの数は旧アサインブロックの数以下にするという制約が設定される。その場合、図6に示すように再格納が行われる。具体的には、大ブロックB1に格納された小ブロックLBA09hが大ブロックB3に格納された小ブロックLBA08hの次に格納される。次に、大ブロックB1に格納された小ブロックLBA0Bh〜LBA0Fhが大ブロックB3に格納される。そして、大ブロックB1に格納された小ブロックLBA00h〜LBA06hが大ブロックB3に格納される。新たな小ブロックLBA0Ahが大ブロックB5に格納されたため、大ブロックB1に格納された小ブロックLBA0Ahは再格納されない。その後、大ブロックB1は消去される。その結果、新アサインブロックの数と旧アサインブロックの数は同数になる。上記の小ブロックの再格納を行うことにより、半導体メモリ11におけるメモリ領域の無駄を削減することができる。
【0023】
LBAが連続しない小ブロックの書き込みの場合は、上記に説明した小ブロックの再格納が行われるため、LBAが連続する小ブロックの書き込みの場合に比べて書き込み処理に要する時間が増大する。つまり、半導体メモリ11における書き込み処理に要する時間は、半導体メモリ11のデータ格納状態及び書き込まれた小ブロックのLBAによって変動する。
【0024】
図1に示したホスト機器20は、例えばパーソナルコンピュータやデジタルカメラ等であり、メモリカード10に接続可能である。
【0025】
既に述べたように、半導体メモリ11の消去ブロックサイズは大ブロックであるが、ホスト機器20は、半導体メモリ11の消去ブロックサイズが小ブロックであると想定して、メモリカード10にアクセスする。例えば、小ブロックのサイズが16kバイトの場合、ホスト機器20は、16kバイト単位で論理アドレス及び物理アドレスの割り当てを行う。論理ブロックアドレス(LBA)は、小ブロックのサイズ単位で割り当てられた論理アドレスであり、物理ブロックアドレスは、小ブロックのサイズ単位で割り当てられた物理アドレスである。
【0026】
ホスト機器20が、例えば小ブロックの物理ブロックアドレスによるランダムな書き込みコマンドをメモリカード10に出力すると、メモリカード10は、物理ブロックアドレスやデータのほか、データに付随する小ブロックの論理ブロックアドレスを取得する。そして、メモリカード10は、既に説明したように、小ブロックの論理ブロックアドレスが連続するように、小ブロックを大ブロックに格納する。その結果、大ブロックに格納されたデータの一部のみを書き換える処理が少なくなる。
【0027】
ホスト機器20は、カード制御装置21、入力装置22及び出力装置23を備える。又、カード制御装置21は、バッファ部211、入力制御部212及び出力制御部213を備える。入力制御部212に制御されて、デジタルカメラ等に搭載された電荷結合素子(CCD)やマイク等の入力装置22から転送されたデータが、バッファ部211に格納される。又、出力装置23を介して、バッファ部211から読み出されたデータが図示を省略するコンピュータ等に転送される。
【0028】
バッファ部211は、小ブロック単位でデータを格納する。バッファ部211に格納された複数の小ブロックに、半導体メモリ11にアクセスするためのLBAがそれぞれ割り当てられる。
【0029】
出力制御部213によって、バッファ部211とメモリカード10間のデータ転送が制御される。具体的には、出力制御部213は、アドレス出力部122から入力された推奨アドレスに基づき、バッファ部211に格納された複数の小ブロックのうち推奨アドレスが割り当てられた小ブロックを、半導体メモリ11にアクセスする小ブロックに決定する。そして、出力制御部213は、決定した小ブロックをバッファ部211から読み出し、メモリカード10に転送する。又、出力制御部213は、メモリカード10から読み出された小ブロックをバッファ部211に格納する。
【0030】
図1に示したメモリカード10及びホスト機器20からなるメモリカードシステムの動作例を、図7に示すタイミングチャートを用いて説明する。図7に示したタイミングチャートは、メモリカード10がNAND型フラッシュメモリと同一のインタフェースを有している場合のタイミングチャートの例である。したがって、図7のタイミングチャートに示された信号は、図8に示されるNAND型フラッシュメモリの制御信号等である。図8に示した信号「DATA」は、メモリカード10とホスト機器20間で転送されるコマンド、アドレス及びデータを示す。信号「CLE」、「−WE」、「ALE」及び「−RE」の組み合わせで、コマンド、アドレス及びデータが区別される。信号「−CE」は、メモリカード10へのアクセスを明示する。又、信号「R/−B」は、メモリカード10の内部状態を示す。信号「−WP」はメモリカード10への書き込みを禁止する。尚、信号名の最初に符号「−」が付されている信号は、ローレベルの場合に有効になる。信号名の最初に符号「−」が付されていない信号は、ハイレベルの場合に有効になる。
【0031】
図7に示したタイミングチャートの時刻t0に、信号「DATA」としてデータ入力コマンド「80h」がメモリカード10に入力される。次いで1ページ分のデータがバッファ部211からメモリカード10に転送される。転送されたデータがメモリカード10内部に格納された後、時刻t1において、信号「DATA」として書き込みコマンド「10h」がメモリカード10に入力される。そして、メモリカード10内部に格納されたデータが半導体メモリ11の大ブロックに書き込まれる。アクセス制御部12は、半導体メモリ11のデータ格納状態を監視し、推奨アドレスを推奨アドレス格納部13に格納する。例えば、時刻t2おける半導体メモリ11のデータ格納状態が図3に示す状態であったとする。その場合、アクセス制御部12は、追記可能なLBA「09h」及びLBA「19h」を推奨アドレスとする。
【0032】
時刻t2において、信号「DATA」としてステータスリードコマンド「70h」がメモリカード10に入力され、ステータスリードが行われる。「ステータスリード」は、メモリカード10での書き込み処理の良否を確認するために行われる。ステータスリードコマンドが入力されたメモリカード10は、時刻t3において、読み込み処理が正常に行われたか否かを示すステータス信号STを出力する。
【0033】
その後、時刻t4以降に、信号「DATA」として推奨アドレスがメモリカード10からホスト機器20に出力される。推奨アドレス格納部13にLBA「09h」及びLBA「19h」が格納されている場合、アドレス出力部122は、例えば、時刻t4にLBA「09h」を、時刻t5にLBA「19h」を出力制御部213に出力する。
【0034】
出力制御部213は、メモリカード10に転送する小ブロックのLBAをLBA「09h」或いはLBA「19h」に決定する。そして、出力制御部213は、バッファ部211に格納された小ブロックから、LBA「09h」或いはLBA「19h」が割り振られた小ブロックをメモリカード10に転送する。そして、半導体メモリ11は推奨アドレスが割り振られた小ブロックLBA09h或いはLBA19hの書き込み処理を行う。その結果、半導体メモリ11での再格納が行われず、再格納による書き込み処理時間の増大を抑制することができる。ただし、バッファ部211に推奨アドレスを割り振られた小ブロックが無い場合には、次の書き込み処理において再格納が必要になるときがある。
【0035】
ステータス信号STが出力された時刻t3では、図1に示した半導体メモリ11はデータを出力する状態に設定されており、ホスト機器20はメモリカード10から転送されるデータを受け取る状態である。したがって、時刻t3の直後においては、半導体メモリ11及びホスト機器20の状態を変更せずに、メモリカード10からホスト機器20に推奨アドレスを出力できる。つまり、ステータスリードの直後にメモリカード10からホスト機器20に推奨アドレスを出力することにより、全体の処理時間の増大を抑制できる。
【0036】
以上の説明においては、推奨アドレスが半導体メモリ11の大ブロックに追記可能なLBAである例を示した。つまり、半導体メモリ11のデータ格納状態に基づき決定される、半導体メモリ11に追記可能なLBAを半導体メモリ11の動作情報として、アクセス制御部12が推奨アドレスを決定する例を示した。他に、半導体メモリ11に書き込みを行った後に続けて半導体メモリ11に書き込む場合に、書き込み速度の低下を抑制する半導体メモリ11の物理アドレス(PBA)を推奨アドレスにすることができる。又、信頼性の高い書き込み処理を行えるPBAを推奨アドレスにすることができる。ここで、「PBA」は、メモリや入出力ポート等に実際に割り振られたアドレスである。以下に、推奨アドレスとして採用可能なPBAの例を示す。
【0037】
図9は、半導体メモリ11が複数のNAND型フラッシュメモリチップによって構成された例を示す。以下において、メモリチップに含まれる1つのページバッファ及びそのページバッファを共有するメモリセルを「ディストリクト」という。即ち、図9は、半導体メモリ11がディストリクトD1及びディストリクトD2によって構成された例を示す。ディストリクトD1は、メモリセル部D11及びページバッファD12を備える。ページバッファD12に1ページ分のデータが格納される。そして、書き込み処理時には、ページバッファD12からデータが一括してメモリセル部D11に転送される。一方、読み出し処理時には、メモリセル部D11の1ページ分のデータがページバッファD12に一括して格納される。ディストリクトD1と同様に、ディストリクトD2はメモリセル部D21及びページバッファD22を備える。メモリセル部D11及びD21のハッチングされたページP1及びP2は、データの読み出し或いは書き込みが行われたページを示す。
【0038】
ディストリクトD1及びディストリクトD2によって半導体メモリ11が構成されていることを半導体メモリ11の動作情報として、アクセス制御部12は推奨アドレスを決定する。つまり、互いに異なるディストリクトD1のPBAとディストリクトD2のPBAを推奨アドレスとしてメモリカード10から出力制御部213に出力することにより、ディストリクトD1及びディストリクトD2に同時にアクセス可能となる。その結果、半導体メモリ11へのアクセス速度を向上することができる。
【0039】
次に、推奨アドレスとして採用可能なPBAの他の例を示す。図10(a)〜図10(d)は、半導体メモリ11を構成するディストリクトD3が、メモリセル部D31、ページバッファD32及びデータキャッシュD33を備える例を示す。ディストリクトD3は、ページバッファD32及びデータキャッシュD33の2つの一時記憶領域を有するため、以下に説明するページコピー動作が可能である。即ち、ディストリクトD3は、データキャッシュD33に格納されたデータをホスト機器20に読み出す処理と、ページバッファD32に格納されたデータをメモリセル部D31に書き込む処理を同時に行うことができる。或いは、ホスト機器20からデータキャッシュD33にデータを書き込む処理と、ページバッファD32に格納されたデータをメモリセル部D31に書き込む処理を、ディストリクトD3は同時に行うことができる。そのため、ディストリクトD3によれば、ページコピー動作を高速に行うことが可能である。
【0040】
例えば、図10(a)に示すように、ページバッファD32に格納されたデータD(M)をページMに書き込みながら、ページM+Rに書き込むデータD(M+R)がデータキャッシュD33に格納される。次いで、図10(b)に示すように、データキャッシュD33に格納されたデータD(M+R)がページバッファD32に移動される。そして、図10(c)に示すように、ページNに格納されていたデータD(N)がデータキャッシュD33に格納される。その後、図10(D)に示すように、ページバッファD32に格納されたデータD(M+R)をページM+Rに書き込みながら、データキャッシュD33に格納されたデータD(N)がディストリクトD3から読み出される。そのため、ディストリクトD3に対するアクセス速度を向上することができる。
【0041】
一般に、図10(a)〜図10(d)に示したデータキャッシュD33を利用してディストリクトD3にアクセス可能なアドレスは、半導体メモリ11に採用されるディストリクトの種類によって異なる。そのため、データキャッシュD33を有することを半導体メモリ11の動作情報として、アクセス制御部12は推奨アドレスを決定する。つまり、データキャッシュD33を利用してアクセス可能なアドレスを推奨アドレスとしてメモリカード10から出力制御部213に出力することにより、メモリカード10に対するアクセス速度を向上することができる。
【0042】
次に、図1に示した半導体メモリ11に多値NAND型フラッシュメモリを採用した場合に、推奨アドレスを使用することによって高速且つ信頼性の高い書き込み処理を行う例を示す。多値NAND型フラッシュメモリは、複数のページで同一のメモリセル部を共有する。図1に示した半導体メモリ11に多値NAND型フラッシュメモリを採用した場合に、同一のメモリセルを共有している複数のページのうち、1つのページのみを書き込み処理に使用することによって、アクセス速度及び書き込まれたデータの信頼性を向上することができる。
【0043】
例えば、図11に示すように、ページ0〜127を有するメモリセル部が、ロワーページAとアッパーページBによって共有されている場合を考える。ここで、ロワーページAのみに書き込みを行うために、例えばページ3にデータが書き込まれた直後に、推奨アドレスとしてページ6のアドレスをメモリカード10から出力制御部213に出力する。図11に示すように、ページ3及びページ6はロワーページA上の連続したページである。したがって、ロワーページAのみに書き込みが行われる。一方、アッパーページBのみに書き込みを行うために、例えばページ9にデータが書き込まれた直後に、推奨アドレスとしてページ12のアドレスをメモリカード10から出力制御部213に出力する。
【0044】
以上に説明したように、メモリセル部がロワーページAとアッパーページBによって共有されていることを半導体メモリ11の動作情報として、アクセス制御部12はロワーページA或いはアッパーページBに割り振られたページのみを推奨アドレスに決定する。そして、ロワーページAとアッパーページBのうちの一方のページのみに書き込むことにより、高速且つ信頼性の高い書き込み処理が行われる。
【0045】
本発明の第1の実施の形態に係るメモリカード10は、アクセス時において最も処理時間が短いアドレス又は信頼性の高いアクセスが可能な半導体メモリ11のアドレスを推奨アドレスとしてホスト機器20に出力する。そして、ホスト機器20が推奨アドレスを参照して半導体メモリ11にアクセスするデータを決定する。その結果、ホスト機器20によるメモリカード10へのアクセスの高速化及び高信頼性化を実現することができる。つまり、本発明の第1の実施の形態に係るメモリカード10によれば、メモリカードシステム全体の性能を向上することができる。又、上記では半導体メモリ11の書き込み処理の場合について説明したが、読み出し処理の場合も同様にメモリカード10からホスト機器20に推奨アドレスを出力することにより、メモリカードシステム全体の性能を向上できる。
【0046】
(第2の実施の形態)
本発明の第2の実施の形態に係わるメモリカード100は、図12に示すように、半導体メモリ110及びメモリコントローラ120を備える。メモリカード100は、ホスト機器20と接続可能である。図12に示したホスト機器20は、図1で説明したホスト機器20と同様の構成である。
【0047】
半導体メモリ110は、第1の実施の形態で説明した半導体メモリ11と同様に、アクセスされるアドレスによって、そのアクセスに対する処理時間が変動する。半導体メモリ110は、メモリコア111、アクセス制御回路112及び推奨アドレス格納回路113を備える。メモリコア111は、例えば図9や図10(a)〜図10(d)に示したディストリクトD1〜D3等によって構成される。アクセス制御回路112は、メモリコア111の動作情報に基づき推奨アドレスを決定する。アクセス制御回路112は、アドレス決定回路1121及びアドレス出力回路部1122を備える。アドレス決定回路1121は、メモリコア111の状態を監視し、ホスト機器20のアクセスにおける推奨アドレスを決定する。アドレス出力回路部1122は、推奨アドレスをメモリコントローラ120に出力する。推奨アドレス格納回路113は、アクセス制御回路112が決定した推奨アドレスを格納する。
【0048】
メモリコントローラ120は、バッファ回路1201、入力制御回路1202及び出力制御回路1203を備える。バッファ回路1201は、ホスト機器20からメモリカード100に転送されたデータ、及び半導体メモリ110から読み出されたデータを格納する。入力制御回路1202によって、ホスト機器20とバッファ回路1201間のデータ転送が制御される。出力制御回路1203によって、半導体メモリ110とバッファ回路1201間のデータ転送が制御される。更に、出力制御回路1203は、アクセス制御回路112から転送された推奨アドレスに基づき、バッファ回路1201に格納されたデータから半導体メモリ110にアクセスするデータを決定する。
【0049】
以上に説明したように、図12に示した半導体メモリ110は、第1の実施の形態におけるメモリカード10と同様に、推奨アドレスを決定して出力する機能を有する。そして、図12に示したメモリコントローラ120は、ホスト機器20と同様に、推奨アドレスに基づき半導体メモリ110に書き込むデータのアドレスを決定する機能を有する。即ち、図12に示した半導体メモリ110は、推奨アドレス決定時において最も高速或いは信頼性の高いアクセスが可能なアドレスを推奨アドレスとしてメモリコントローラ120に出力する。そしてメモリカード100は、推奨アドレスを参照して、ホスト機器20から転送されてバッファ回路1201に格納されたデータのうちから、半導体メモリ110に書き込むデータを決定する。その結果、ホスト機器20によるメモリカード100へのアクセスの高速化及び高信頼性を実現することができる。
【0050】
又、図12に示したメモリカード100によれば、ホスト機器20が図12に示したカード制御装置21を有さない場合でも、推奨アドレスを利用したアクセスが可能である。他は、第1の実施の形態と実質的に同様であり、重複した記載を省略する。
【0051】
上記のように、本発明は第1及び第2の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。つまり、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【0052】
【図1】本発明の第1の実施の形態に係るメモリカードの構成を示す模式図である。
【図2】本発明の第1の実施の形態に係る半導体メモリの構造の例を示す模式図である。
【図3】本発明の第1の実施の形態に係る半導体メモリのデータ格納方法を説明するための模式図である(その1)。
【図4】本発明の第1の実施の形態に係るメモリのデータ格納方法を説明するための模式図である(その2)。
【図5】本発明の第1の実施の形態に係る半導体メモリのデータ格納方法を説明するための模式図である(その3)。
【図6】本発明の第1の実施の形態に係る半導体メモリのデータ格納方法を説明するための模式図である(その4)。
【図7】本発明の第1の実施の形態に係るメモリカードの動作例を説明するためのタイミングチャートである。
【図8】本発明の第1の実施の形態に係る半導体メモリの信号を説明するための表である。
【図9】本発明の第1の実施の形態に係る半導体メモリの構造の他の例を示す模式図である。
【図10】本発明の第1の実施の形態に係るメモリカードによるページコピー動作を説明するための半導体メモリの状態を示す模式図であり、図10(a)は書き込み処理時の半導体メモリの状態を示し、図10(b)はページバッファへのデータ転送時の半導体メモリの状態を示し、図10(c)はデータキャッシャへのデータ転送時の半導体メモリの状態を示し、図10(d)は読み出し処理時の半導体メモリの状態を示す。
【図11】本発明の第1の実施の形態に係る半導体メモリの構造の更に他の例を示す模式図である。
【図12】本発明の第2の実施の形態に係るメモリカードの構成を示す模式図である。
【符号の説明】
【0053】
10、100…メモリカード
11、110…半導体メモリ
12…アクセス制御部
13…推奨アドレス格納部
20…ホスト機器
21…カード制御装置
120…メモリコントローラ
121…アドレス決定部
122…アドレス出力部
211…バッファ部
212…入力制御部
213…出力制御部
1121…アドレス決定回路
1122…アドレス出力回路部
1201…バッファ回路
1202…入力制御回路
1203…出力制御回路
【技術分野】
【0001】
本発明は、ホスト機器との間でデータ転送を行うメモリカード及びメモリカードの制御方法に関する。
【背景技術】
【0002】
ホスト機器に接続されたメモリカードに搭載される半導体メモリとして、例えばNAND型フラッシュメモリのように、ある程度の数のデータをまとめて読み出し処理及び書き込み処理を行う半導体メモリが採用される場合がある(例えば、特許文献1参照。)。上記半導体メモリでは、ホスト機器がアクセスする半導体メモリのアドレスにより、アクセスに対する半導体メモリの処理時間が変動する場合がある。ここで、アクセスに対する「処理時間」とは、書き込み処理或いは読み出し処理に要する時間である。
【0003】
例えば、NAND型フラッシュメモリは、ブロック単位でしかデータ消去を行えない。1つのブロックは、複数の、書き込み単位であるページを含んでいる。このため、ブロックに記憶されたデータの一部のみを書き換える場合は、書き換える新データを新ブロックに書き込む。更に、旧データ(新データに書き換えられるデータ)を含む旧ブロックから、書き換えられないデータを新ブロックにコピーする。書き換えられないデータのコピー動作が多発すると、データの書き換えにおけるオーバーヘッドが非常に増大することになる。つまり、アクセスがあった場合の半導体メモリの処理速度(アクセス速度)が低下する。
【0004】
一方、ブロックに記憶されたデータをすべて書き換える場合は、書き換えられないデータを旧ブロックから新ブロックにコピーする必要がなく、ブロックに記憶されたデータの一部のみを書き換える場合に比べてアクセス速度が速い。
【0005】
以上に述べたように、アクセスされるアドレスによりアクセス速度が異なり、そのアクセスに対するメモリの処理時間が変動する場合がある。その結果、ホスト機器がアクセスするアドレスに起因してメモリカードの性能が低下するという問題があった。
【特許文献1】特開平7−122088号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は、ホスト機器がアクセスするアドレスによるアクセス速度の低下を抑制可能なメモリカード及びメモリカードの制御方法を提供する。
【課題を解決するための手段】
【0007】
本発明の第1の特徴は、ホスト機器との間でデータ転送が可能なメモリカードであって、(イ)ホスト機器からアクセスされる半導体メモリと、(ロ)メモリカードの動作情報に基づきアクセスにおける推奨アドレスを決定し、その推奨アドレスをホスト機器に出力するアクセス制御部とを備え、半導体メモリは推奨アドレスが割り振られたデータの読み出し処理又は書き込み処理を行うメモリカードであることを要旨とする。
【0008】
本発明の第2の特徴は、ホスト機器との間でデータ転送が可能なメモリカードの制御方法であって、(イ)メモリカードに搭載された半導体メモリにアクセスする際に、メモリカードの動作情報に基づき決定されたアクセスにおける推奨アドレスをメモリカードから読み出すステップと、(ロ)読み出された推奨アドレスに基づいて、半導体メモリに対して推奨アドレスが割り振られたデータの読み出し処理又は書き込み処理を行うステップとを含むメモリカードの制御方法であることを要旨とする。
【発明の効果】
【0009】
本発明によれば、ホスト機器がアクセスするアドレスによるアクセス速度の低下を抑制可能なメモリカード及びメモリカードの制御方法を提供できる。
【発明を実施するための最良の形態】
【0010】
次に、図面を参照して、本発明の第1及び第2の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す第1及び第2の実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【0011】
(第1の実施の形態)
本発明の第1の実施の形態に係るメモリカードは、図1に示すように、ホスト機器20との間でデータ転送が可能なメモリカード10であって、ホスト機器20からアクセスされる半導体メモリ11と、メモリカード10の動作情報に基づきアクセスにおける推奨アドレスを決定し、その推奨アドレスをホスト機器20に出力するアクセス制御部12とを備え、半導体メモリ11は推奨アドレスが割り振られたデータの読み出し処理又は書き込み処理を行う。「推奨アドレス」とは、例えば、ある書き込み処理が完了した時点における、次の書き込み処理に要する時間が最も短いアドレスである。又、「動作情報」とは、例えばデータ格納状態或いは半導体メモリ11の機能等の、半導体メモリ11のアクセスに対する処理時間に影響を与える情報である。
【0012】
アクセス制御部12は、アドレス決定部121、及びアドレス出力部122を備える。アドレス決定部121は、半導体メモリ11の状態を監視し、ホスト機器20からのアクセスにおける推奨アドレスを決定する。アドレス出力部122は、推奨アドレスをホスト機器20に出力する。更に、メモリカード10は、複数の推奨アドレスを格納する推奨アドレス格納部13を備える。
【0013】
複数のデータからなるブロック(以下において、「小ブロック」という。)にそれぞれ論理ブロックアドレス(LBA)が割り当てられ、メモリカード10は、LBA順にブロック単位で半導体メモリ11の書き込み処理又は読み出し処理を行う。半導体メモリ11の書き込み処理において、半導体メモリ11に設定された格納用のブロック(以下において、「大ブロック」という。)に小ブロックは格納される。そして、LBA順に大ブロックに小ブロックが格納される仕様の場合には、半導体メモリ11にLBAが不連続な書き込みがあったとき、大ブロックに格納済みの小ブロックを移動させながら、小ブロックをLBA順に大ブロックに格納する。小ブロック及び大ブロックの例を、図2に示す。図2に示す小ブロックは、1ページを528バイトとした4×8ページ分のデータである。このとき、図2に示すように、2112バイト×128ページからなる大ブロックは、2112バイト(4ページ)×8ページの小ブロックを16個格納できる。
【0014】
大ブロックにLBA順に小ブロックが格納されるように小ブロックを移動することを、以下において「再格納」という。再格納を行った場合、書き込み処理に要する時間が増大する。つまり、アクセスがあった場合のメモリの処理速度(アクセス速度)が低下する。
【0015】
一方、LBAが連続する書き込みの場合は、大ブロックに格納された小ブロックの再格納を行う必要がなく、大ブロックの空き領域に小ブロックを追記すればよい。したがって、LBAが連続する書き込みの場合は、LBAが不連続な書き込みの場合に比べてアクセス速度が早い。ここで、「追記」とは、小ブロックの再格納をすることなく、大ブロックに小ブロックを書き込む処理をいう。
【0016】
尚、半導体メモリ11の消去単位のブロックサイズ(以下において「消去ブロックサイズ」という。)は大ブロックである。半導体メモリ11に、例えばNAND型フラッシュメモリ等が採用可能である。
【0017】
図1に示した半導体メモリ11の書き込み処理の例を、図3〜図6を用いて説明する。図3〜図6において、例えば小ブロックLBA00hはLBA「00h」が割り当てられた小ブロックを示す。
【0018】
図3に示すように、大ブロックB1に小ブロックLBA00h〜LBA0Fhが格納されている。又、大ブロックB2に小ブロックLBA10h〜LBA1Fhが格納されている。ハッチングされた小ブロックLBA07h、LBA08h、LBA14h〜LBA18hは、これらの小ブロックと同一のLBAが割り当てられた小ブロックが、半導体メモリ11に新たに書き込まれたことを示す。即ち、大ブロックB3に小ブロックLBA07h〜LBA08hが新たに格納され、大ブロックB4に小ブロックLBA14h〜LBA18hが新たに格納されている。大ブロックB1に格納された小ブロックLBA07h〜LBA08h、及び大ブロックB2に格納された小ブロックLBA14h〜LBA18hは使用されないため消去可能である。しかし、半導体メモリ11は大ブロック単位にデータ消去を行うため、大ブロックB1に格納された小ブロックLBA07h〜LBA08h、及び大ブロックB2に格納された小ブロックLBA14h〜LBA18hは消去されずに半導体メモリ11に格納されている。以下において、大ブロックB1、B2等の、新たに書き込まれる小ブロックを格納できない大ブロックを「旧アサインブロック」という。一方、大ブロックB3、B4等の、新たに書き込まれる小ブロックを格納可能な大ブロックを「新アサインブロック」という。
【0019】
図4は、図3に示した状態の半導体メモリ11に小ブロックLBA09hが新たに書き込まれた状態を示す。大ブロック内にLBA順に小ブロックが格納されるため、新たに書き込まれた小ブロックLBA09hは、大ブロックB3に格納された小ブロックLBA08hの次に格納される。
【0020】
図5は、図3に示した状態の半導体メモリ11に小ブロックLBA19hが新たに書き込まれた状態を示す。新たに書き込まれた小ブロックLBA19hは、大ブロックB4に格納された小ブロックLBA18hの次に格納される。
【0021】
図6は、図3に示した状態の半導体メモリ11の大ブロックB5に小ブロックLBA0Ahが新たに書き込まれた状態を示す。小ブロックLBA0Ahは、大ブロックB3に格納された小ブロックLBA08h、及び大ブロックB4に格納された小ブロックLBA18hのいずれにも連続しない。そのため、図6に示すように、新アサインブロックとして大ブロックB5が設定され、新たに書き込まれた小ブロックLBA0Ahは大ブロックB5の先頭に格納される。
【0022】
ところで、新たな大ブロックを無制限に設定すると、半導体メモリ11におけるメモリ領域の無駄が多くなる。そのため、一般に、大ブロックが無制限に設定されないような制約が設けられる。例えば新アサインブロックの数は旧アサインブロックの数以下にするという制約が設定される。その場合、図6に示すように再格納が行われる。具体的には、大ブロックB1に格納された小ブロックLBA09hが大ブロックB3に格納された小ブロックLBA08hの次に格納される。次に、大ブロックB1に格納された小ブロックLBA0Bh〜LBA0Fhが大ブロックB3に格納される。そして、大ブロックB1に格納された小ブロックLBA00h〜LBA06hが大ブロックB3に格納される。新たな小ブロックLBA0Ahが大ブロックB5に格納されたため、大ブロックB1に格納された小ブロックLBA0Ahは再格納されない。その後、大ブロックB1は消去される。その結果、新アサインブロックの数と旧アサインブロックの数は同数になる。上記の小ブロックの再格納を行うことにより、半導体メモリ11におけるメモリ領域の無駄を削減することができる。
【0023】
LBAが連続しない小ブロックの書き込みの場合は、上記に説明した小ブロックの再格納が行われるため、LBAが連続する小ブロックの書き込みの場合に比べて書き込み処理に要する時間が増大する。つまり、半導体メモリ11における書き込み処理に要する時間は、半導体メモリ11のデータ格納状態及び書き込まれた小ブロックのLBAによって変動する。
【0024】
図1に示したホスト機器20は、例えばパーソナルコンピュータやデジタルカメラ等であり、メモリカード10に接続可能である。
【0025】
既に述べたように、半導体メモリ11の消去ブロックサイズは大ブロックであるが、ホスト機器20は、半導体メモリ11の消去ブロックサイズが小ブロックであると想定して、メモリカード10にアクセスする。例えば、小ブロックのサイズが16kバイトの場合、ホスト機器20は、16kバイト単位で論理アドレス及び物理アドレスの割り当てを行う。論理ブロックアドレス(LBA)は、小ブロックのサイズ単位で割り当てられた論理アドレスであり、物理ブロックアドレスは、小ブロックのサイズ単位で割り当てられた物理アドレスである。
【0026】
ホスト機器20が、例えば小ブロックの物理ブロックアドレスによるランダムな書き込みコマンドをメモリカード10に出力すると、メモリカード10は、物理ブロックアドレスやデータのほか、データに付随する小ブロックの論理ブロックアドレスを取得する。そして、メモリカード10は、既に説明したように、小ブロックの論理ブロックアドレスが連続するように、小ブロックを大ブロックに格納する。その結果、大ブロックに格納されたデータの一部のみを書き換える処理が少なくなる。
【0027】
ホスト機器20は、カード制御装置21、入力装置22及び出力装置23を備える。又、カード制御装置21は、バッファ部211、入力制御部212及び出力制御部213を備える。入力制御部212に制御されて、デジタルカメラ等に搭載された電荷結合素子(CCD)やマイク等の入力装置22から転送されたデータが、バッファ部211に格納される。又、出力装置23を介して、バッファ部211から読み出されたデータが図示を省略するコンピュータ等に転送される。
【0028】
バッファ部211は、小ブロック単位でデータを格納する。バッファ部211に格納された複数の小ブロックに、半導体メモリ11にアクセスするためのLBAがそれぞれ割り当てられる。
【0029】
出力制御部213によって、バッファ部211とメモリカード10間のデータ転送が制御される。具体的には、出力制御部213は、アドレス出力部122から入力された推奨アドレスに基づき、バッファ部211に格納された複数の小ブロックのうち推奨アドレスが割り当てられた小ブロックを、半導体メモリ11にアクセスする小ブロックに決定する。そして、出力制御部213は、決定した小ブロックをバッファ部211から読み出し、メモリカード10に転送する。又、出力制御部213は、メモリカード10から読み出された小ブロックをバッファ部211に格納する。
【0030】
図1に示したメモリカード10及びホスト機器20からなるメモリカードシステムの動作例を、図7に示すタイミングチャートを用いて説明する。図7に示したタイミングチャートは、メモリカード10がNAND型フラッシュメモリと同一のインタフェースを有している場合のタイミングチャートの例である。したがって、図7のタイミングチャートに示された信号は、図8に示されるNAND型フラッシュメモリの制御信号等である。図8に示した信号「DATA」は、メモリカード10とホスト機器20間で転送されるコマンド、アドレス及びデータを示す。信号「CLE」、「−WE」、「ALE」及び「−RE」の組み合わせで、コマンド、アドレス及びデータが区別される。信号「−CE」は、メモリカード10へのアクセスを明示する。又、信号「R/−B」は、メモリカード10の内部状態を示す。信号「−WP」はメモリカード10への書き込みを禁止する。尚、信号名の最初に符号「−」が付されている信号は、ローレベルの場合に有効になる。信号名の最初に符号「−」が付されていない信号は、ハイレベルの場合に有効になる。
【0031】
図7に示したタイミングチャートの時刻t0に、信号「DATA」としてデータ入力コマンド「80h」がメモリカード10に入力される。次いで1ページ分のデータがバッファ部211からメモリカード10に転送される。転送されたデータがメモリカード10内部に格納された後、時刻t1において、信号「DATA」として書き込みコマンド「10h」がメモリカード10に入力される。そして、メモリカード10内部に格納されたデータが半導体メモリ11の大ブロックに書き込まれる。アクセス制御部12は、半導体メモリ11のデータ格納状態を監視し、推奨アドレスを推奨アドレス格納部13に格納する。例えば、時刻t2おける半導体メモリ11のデータ格納状態が図3に示す状態であったとする。その場合、アクセス制御部12は、追記可能なLBA「09h」及びLBA「19h」を推奨アドレスとする。
【0032】
時刻t2において、信号「DATA」としてステータスリードコマンド「70h」がメモリカード10に入力され、ステータスリードが行われる。「ステータスリード」は、メモリカード10での書き込み処理の良否を確認するために行われる。ステータスリードコマンドが入力されたメモリカード10は、時刻t3において、読み込み処理が正常に行われたか否かを示すステータス信号STを出力する。
【0033】
その後、時刻t4以降に、信号「DATA」として推奨アドレスがメモリカード10からホスト機器20に出力される。推奨アドレス格納部13にLBA「09h」及びLBA「19h」が格納されている場合、アドレス出力部122は、例えば、時刻t4にLBA「09h」を、時刻t5にLBA「19h」を出力制御部213に出力する。
【0034】
出力制御部213は、メモリカード10に転送する小ブロックのLBAをLBA「09h」或いはLBA「19h」に決定する。そして、出力制御部213は、バッファ部211に格納された小ブロックから、LBA「09h」或いはLBA「19h」が割り振られた小ブロックをメモリカード10に転送する。そして、半導体メモリ11は推奨アドレスが割り振られた小ブロックLBA09h或いはLBA19hの書き込み処理を行う。その結果、半導体メモリ11での再格納が行われず、再格納による書き込み処理時間の増大を抑制することができる。ただし、バッファ部211に推奨アドレスを割り振られた小ブロックが無い場合には、次の書き込み処理において再格納が必要になるときがある。
【0035】
ステータス信号STが出力された時刻t3では、図1に示した半導体メモリ11はデータを出力する状態に設定されており、ホスト機器20はメモリカード10から転送されるデータを受け取る状態である。したがって、時刻t3の直後においては、半導体メモリ11及びホスト機器20の状態を変更せずに、メモリカード10からホスト機器20に推奨アドレスを出力できる。つまり、ステータスリードの直後にメモリカード10からホスト機器20に推奨アドレスを出力することにより、全体の処理時間の増大を抑制できる。
【0036】
以上の説明においては、推奨アドレスが半導体メモリ11の大ブロックに追記可能なLBAである例を示した。つまり、半導体メモリ11のデータ格納状態に基づき決定される、半導体メモリ11に追記可能なLBAを半導体メモリ11の動作情報として、アクセス制御部12が推奨アドレスを決定する例を示した。他に、半導体メモリ11に書き込みを行った後に続けて半導体メモリ11に書き込む場合に、書き込み速度の低下を抑制する半導体メモリ11の物理アドレス(PBA)を推奨アドレスにすることができる。又、信頼性の高い書き込み処理を行えるPBAを推奨アドレスにすることができる。ここで、「PBA」は、メモリや入出力ポート等に実際に割り振られたアドレスである。以下に、推奨アドレスとして採用可能なPBAの例を示す。
【0037】
図9は、半導体メモリ11が複数のNAND型フラッシュメモリチップによって構成された例を示す。以下において、メモリチップに含まれる1つのページバッファ及びそのページバッファを共有するメモリセルを「ディストリクト」という。即ち、図9は、半導体メモリ11がディストリクトD1及びディストリクトD2によって構成された例を示す。ディストリクトD1は、メモリセル部D11及びページバッファD12を備える。ページバッファD12に1ページ分のデータが格納される。そして、書き込み処理時には、ページバッファD12からデータが一括してメモリセル部D11に転送される。一方、読み出し処理時には、メモリセル部D11の1ページ分のデータがページバッファD12に一括して格納される。ディストリクトD1と同様に、ディストリクトD2はメモリセル部D21及びページバッファD22を備える。メモリセル部D11及びD21のハッチングされたページP1及びP2は、データの読み出し或いは書き込みが行われたページを示す。
【0038】
ディストリクトD1及びディストリクトD2によって半導体メモリ11が構成されていることを半導体メモリ11の動作情報として、アクセス制御部12は推奨アドレスを決定する。つまり、互いに異なるディストリクトD1のPBAとディストリクトD2のPBAを推奨アドレスとしてメモリカード10から出力制御部213に出力することにより、ディストリクトD1及びディストリクトD2に同時にアクセス可能となる。その結果、半導体メモリ11へのアクセス速度を向上することができる。
【0039】
次に、推奨アドレスとして採用可能なPBAの他の例を示す。図10(a)〜図10(d)は、半導体メモリ11を構成するディストリクトD3が、メモリセル部D31、ページバッファD32及びデータキャッシュD33を備える例を示す。ディストリクトD3は、ページバッファD32及びデータキャッシュD33の2つの一時記憶領域を有するため、以下に説明するページコピー動作が可能である。即ち、ディストリクトD3は、データキャッシュD33に格納されたデータをホスト機器20に読み出す処理と、ページバッファD32に格納されたデータをメモリセル部D31に書き込む処理を同時に行うことができる。或いは、ホスト機器20からデータキャッシュD33にデータを書き込む処理と、ページバッファD32に格納されたデータをメモリセル部D31に書き込む処理を、ディストリクトD3は同時に行うことができる。そのため、ディストリクトD3によれば、ページコピー動作を高速に行うことが可能である。
【0040】
例えば、図10(a)に示すように、ページバッファD32に格納されたデータD(M)をページMに書き込みながら、ページM+Rに書き込むデータD(M+R)がデータキャッシュD33に格納される。次いで、図10(b)に示すように、データキャッシュD33に格納されたデータD(M+R)がページバッファD32に移動される。そして、図10(c)に示すように、ページNに格納されていたデータD(N)がデータキャッシュD33に格納される。その後、図10(D)に示すように、ページバッファD32に格納されたデータD(M+R)をページM+Rに書き込みながら、データキャッシュD33に格納されたデータD(N)がディストリクトD3から読み出される。そのため、ディストリクトD3に対するアクセス速度を向上することができる。
【0041】
一般に、図10(a)〜図10(d)に示したデータキャッシュD33を利用してディストリクトD3にアクセス可能なアドレスは、半導体メモリ11に採用されるディストリクトの種類によって異なる。そのため、データキャッシュD33を有することを半導体メモリ11の動作情報として、アクセス制御部12は推奨アドレスを決定する。つまり、データキャッシュD33を利用してアクセス可能なアドレスを推奨アドレスとしてメモリカード10から出力制御部213に出力することにより、メモリカード10に対するアクセス速度を向上することができる。
【0042】
次に、図1に示した半導体メモリ11に多値NAND型フラッシュメモリを採用した場合に、推奨アドレスを使用することによって高速且つ信頼性の高い書き込み処理を行う例を示す。多値NAND型フラッシュメモリは、複数のページで同一のメモリセル部を共有する。図1に示した半導体メモリ11に多値NAND型フラッシュメモリを採用した場合に、同一のメモリセルを共有している複数のページのうち、1つのページのみを書き込み処理に使用することによって、アクセス速度及び書き込まれたデータの信頼性を向上することができる。
【0043】
例えば、図11に示すように、ページ0〜127を有するメモリセル部が、ロワーページAとアッパーページBによって共有されている場合を考える。ここで、ロワーページAのみに書き込みを行うために、例えばページ3にデータが書き込まれた直後に、推奨アドレスとしてページ6のアドレスをメモリカード10から出力制御部213に出力する。図11に示すように、ページ3及びページ6はロワーページA上の連続したページである。したがって、ロワーページAのみに書き込みが行われる。一方、アッパーページBのみに書き込みを行うために、例えばページ9にデータが書き込まれた直後に、推奨アドレスとしてページ12のアドレスをメモリカード10から出力制御部213に出力する。
【0044】
以上に説明したように、メモリセル部がロワーページAとアッパーページBによって共有されていることを半導体メモリ11の動作情報として、アクセス制御部12はロワーページA或いはアッパーページBに割り振られたページのみを推奨アドレスに決定する。そして、ロワーページAとアッパーページBのうちの一方のページのみに書き込むことにより、高速且つ信頼性の高い書き込み処理が行われる。
【0045】
本発明の第1の実施の形態に係るメモリカード10は、アクセス時において最も処理時間が短いアドレス又は信頼性の高いアクセスが可能な半導体メモリ11のアドレスを推奨アドレスとしてホスト機器20に出力する。そして、ホスト機器20が推奨アドレスを参照して半導体メモリ11にアクセスするデータを決定する。その結果、ホスト機器20によるメモリカード10へのアクセスの高速化及び高信頼性化を実現することができる。つまり、本発明の第1の実施の形態に係るメモリカード10によれば、メモリカードシステム全体の性能を向上することができる。又、上記では半導体メモリ11の書き込み処理の場合について説明したが、読み出し処理の場合も同様にメモリカード10からホスト機器20に推奨アドレスを出力することにより、メモリカードシステム全体の性能を向上できる。
【0046】
(第2の実施の形態)
本発明の第2の実施の形態に係わるメモリカード100は、図12に示すように、半導体メモリ110及びメモリコントローラ120を備える。メモリカード100は、ホスト機器20と接続可能である。図12に示したホスト機器20は、図1で説明したホスト機器20と同様の構成である。
【0047】
半導体メモリ110は、第1の実施の形態で説明した半導体メモリ11と同様に、アクセスされるアドレスによって、そのアクセスに対する処理時間が変動する。半導体メモリ110は、メモリコア111、アクセス制御回路112及び推奨アドレス格納回路113を備える。メモリコア111は、例えば図9や図10(a)〜図10(d)に示したディストリクトD1〜D3等によって構成される。アクセス制御回路112は、メモリコア111の動作情報に基づき推奨アドレスを決定する。アクセス制御回路112は、アドレス決定回路1121及びアドレス出力回路部1122を備える。アドレス決定回路1121は、メモリコア111の状態を監視し、ホスト機器20のアクセスにおける推奨アドレスを決定する。アドレス出力回路部1122は、推奨アドレスをメモリコントローラ120に出力する。推奨アドレス格納回路113は、アクセス制御回路112が決定した推奨アドレスを格納する。
【0048】
メモリコントローラ120は、バッファ回路1201、入力制御回路1202及び出力制御回路1203を備える。バッファ回路1201は、ホスト機器20からメモリカード100に転送されたデータ、及び半導体メモリ110から読み出されたデータを格納する。入力制御回路1202によって、ホスト機器20とバッファ回路1201間のデータ転送が制御される。出力制御回路1203によって、半導体メモリ110とバッファ回路1201間のデータ転送が制御される。更に、出力制御回路1203は、アクセス制御回路112から転送された推奨アドレスに基づき、バッファ回路1201に格納されたデータから半導体メモリ110にアクセスするデータを決定する。
【0049】
以上に説明したように、図12に示した半導体メモリ110は、第1の実施の形態におけるメモリカード10と同様に、推奨アドレスを決定して出力する機能を有する。そして、図12に示したメモリコントローラ120は、ホスト機器20と同様に、推奨アドレスに基づき半導体メモリ110に書き込むデータのアドレスを決定する機能を有する。即ち、図12に示した半導体メモリ110は、推奨アドレス決定時において最も高速或いは信頼性の高いアクセスが可能なアドレスを推奨アドレスとしてメモリコントローラ120に出力する。そしてメモリカード100は、推奨アドレスを参照して、ホスト機器20から転送されてバッファ回路1201に格納されたデータのうちから、半導体メモリ110に書き込むデータを決定する。その結果、ホスト機器20によるメモリカード100へのアクセスの高速化及び高信頼性を実現することができる。
【0050】
又、図12に示したメモリカード100によれば、ホスト機器20が図12に示したカード制御装置21を有さない場合でも、推奨アドレスを利用したアクセスが可能である。他は、第1の実施の形態と実質的に同様であり、重複した記載を省略する。
【0051】
上記のように、本発明は第1及び第2の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。つまり、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【0052】
【図1】本発明の第1の実施の形態に係るメモリカードの構成を示す模式図である。
【図2】本発明の第1の実施の形態に係る半導体メモリの構造の例を示す模式図である。
【図3】本発明の第1の実施の形態に係る半導体メモリのデータ格納方法を説明するための模式図である(その1)。
【図4】本発明の第1の実施の形態に係るメモリのデータ格納方法を説明するための模式図である(その2)。
【図5】本発明の第1の実施の形態に係る半導体メモリのデータ格納方法を説明するための模式図である(その3)。
【図6】本発明の第1の実施の形態に係る半導体メモリのデータ格納方法を説明するための模式図である(その4)。
【図7】本発明の第1の実施の形態に係るメモリカードの動作例を説明するためのタイミングチャートである。
【図8】本発明の第1の実施の形態に係る半導体メモリの信号を説明するための表である。
【図9】本発明の第1の実施の形態に係る半導体メモリの構造の他の例を示す模式図である。
【図10】本発明の第1の実施の形態に係るメモリカードによるページコピー動作を説明するための半導体メモリの状態を示す模式図であり、図10(a)は書き込み処理時の半導体メモリの状態を示し、図10(b)はページバッファへのデータ転送時の半導体メモリの状態を示し、図10(c)はデータキャッシャへのデータ転送時の半導体メモリの状態を示し、図10(d)は読み出し処理時の半導体メモリの状態を示す。
【図11】本発明の第1の実施の形態に係る半導体メモリの構造の更に他の例を示す模式図である。
【図12】本発明の第2の実施の形態に係るメモリカードの構成を示す模式図である。
【符号の説明】
【0053】
10、100…メモリカード
11、110…半導体メモリ
12…アクセス制御部
13…推奨アドレス格納部
20…ホスト機器
21…カード制御装置
120…メモリコントローラ
121…アドレス決定部
122…アドレス出力部
211…バッファ部
212…入力制御部
213…出力制御部
1121…アドレス決定回路
1122…アドレス出力回路部
1201…バッファ回路
1202…入力制御回路
1203…出力制御回路
【特許請求の範囲】
【請求項1】
ホスト機器との間でデータ転送が可能なメモリカードであって、
前記ホスト機器からアクセスされる半導体メモリと、
前記メモリカードの動作情報に基づき前記アクセスにおける推奨アドレスを決定し、該推奨アドレスを前記ホスト機器に出力するアクセス制御部
とを備え、前記半導体メモリは前記推奨アドレスが割り振られたデータの読み出し処理又は書き込み処理を行うことを特徴とするメモリカード。
【請求項2】
前記アクセス制御部は、前記半導体メモリの書き込み処理の良否を確認するステータスリードの直後に、前記推奨アドレスを前記ホスト機器に出力することを特徴とする請求項1に記載のメモリカード。
【請求項3】
前記アクセス制御部は、前記半導体メモリのデータ格納状態に基づき決定される前記半導体メモリに追記可能なアドレスを前記推奨アドレスとして決定することを特徴とする請求項1又は2に記載のメモリカード。
【請求項4】
ホスト機器との間でデータ転送が可能なメモリカードの制御方法であって、
前記メモリカードに搭載された半導体メモリにアクセスする際に、前記メモリカードの動作情報に基づき決定された前記アクセスにおける推奨アドレスを前記メモリカードから読み出すステップと、
前記読み出された推奨アドレスに基づいて、前記半導体メモリに対して前記推奨アドレスが割り振られたデータの読み出し処理又は書き込み処理を行うステップ
とを含むことを特徴とするメモリカードの制御方法。
【請求項5】
前記半導体メモリの書き込み処理の良否を確認するステータスリードの直後に、前記推奨アドレスを読み出すステップを行うことを特徴とする請求項4に記載のメモリカードの制御方法。
【請求項1】
ホスト機器との間でデータ転送が可能なメモリカードであって、
前記ホスト機器からアクセスされる半導体メモリと、
前記メモリカードの動作情報に基づき前記アクセスにおける推奨アドレスを決定し、該推奨アドレスを前記ホスト機器に出力するアクセス制御部
とを備え、前記半導体メモリは前記推奨アドレスが割り振られたデータの読み出し処理又は書き込み処理を行うことを特徴とするメモリカード。
【請求項2】
前記アクセス制御部は、前記半導体メモリの書き込み処理の良否を確認するステータスリードの直後に、前記推奨アドレスを前記ホスト機器に出力することを特徴とする請求項1に記載のメモリカード。
【請求項3】
前記アクセス制御部は、前記半導体メモリのデータ格納状態に基づき決定される前記半導体メモリに追記可能なアドレスを前記推奨アドレスとして決定することを特徴とする請求項1又は2に記載のメモリカード。
【請求項4】
ホスト機器との間でデータ転送が可能なメモリカードの制御方法であって、
前記メモリカードに搭載された半導体メモリにアクセスする際に、前記メモリカードの動作情報に基づき決定された前記アクセスにおける推奨アドレスを前記メモリカードから読み出すステップと、
前記読み出された推奨アドレスに基づいて、前記半導体メモリに対して前記推奨アドレスが割り振られたデータの読み出し処理又は書き込み処理を行うステップ
とを含むことを特徴とするメモリカードの制御方法。
【請求項5】
前記半導体メモリの書き込み処理の良否を確認するステータスリードの直後に、前記推奨アドレスを読み出すステップを行うことを特徴とする請求項4に記載のメモリカードの制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2007−249662(P2007−249662A)
【公開日】平成19年9月27日(2007.9.27)
【国際特許分類】
【出願番号】特願2006−72956(P2006−72956)
【出願日】平成18年3月16日(2006.3.16)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成19年9月27日(2007.9.27)
【国際特許分類】
【出願日】平成18年3月16日(2006.3.16)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]