[go: up one dir, main page]

JP4762323B2 - アクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法 - Google Patents

アクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法 Download PDF

Info

Publication number
JP4762323B2
JP4762323B2 JP2009049826A JP2009049826A JP4762323B2 JP 4762323 B2 JP4762323 B2 JP 4762323B2 JP 2009049826 A JP2009049826 A JP 2009049826A JP 2009049826 A JP2009049826 A JP 2009049826A JP 4762323 B2 JP4762323 B2 JP 4762323B2
Authority
JP
Japan
Prior art keywords
data
block
storage
storage block
group
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
Application number
JP2009049826A
Other languages
English (en)
Other versions
JP2010204961A (ja
Inventor
光正 羽根田
陽子 河野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009049826A priority Critical patent/JP4762323B2/ja
Priority to US12/707,161 priority patent/US8370564B2/en
Publication of JP2010204961A publication Critical patent/JP2010204961A/ja
Application granted granted Critical
Publication of JP4762323B2 publication Critical patent/JP4762323B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本発明は、アクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法に関し、例えば、記憶装置の良好ブロックを有効に利用することができるアクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法に関する。
従来、フラッシュメモリ等の情報処理装置に設けられる不揮発性メモリは、所定のメモリセル単位で形成されるメモリブロックが複数配列されたバンクを複数備える。例えば、図9に示すように、不揮発性メモリ700には、複数のメモリブロックを有するN+1個のバンク(Bank0〜BankN)が横一列に設けられている。
より具体的には、各バンクには、2つのダイDie0,Die1が横一列に設けられており、各ダイごとに、M+2個のメモリブロックBlock0〜BlockM+1および2つのSRAM(Static Random Access Memory)SRAM0,SRAM1が設けられている。Block0〜BlockM+1は、各ダイ上において縦二列(Block0、Block2、・・・BlockMの列およびBlock1、Block3、・・・BlockM+1の列)で配置されている。また、SRAM0は、Block0、Block2、・・・BlockMの列(偶数番号の列)に属するメモリブロックに書き込むデータを一時的に記憶し、SRAM1は、Block1、Block3、・・・BlockM+1の列(奇数番号の列)に属するメモリブロックに書き込むデータを一時的に記憶する。そして、各メモリブロックは、ページと呼ばれる複数ビット単位で区切られたメモリセルをL+1個(page0〜pageL)を含む。
このような不揮発性メモリ700に対してデータを書き込む際、情報処理装置は、各バンクに存在する特定のメモリブロック同士を1つのグループとし、各グループ内の複数のメモリブロックに対してデータの書き込みを一度に行う。具体的には、情報処理装置は、各メモリブロックの列において先頭から同一順番に位置するメモリブロック同士を一つのグループとする。
例えば、情報処理装置は、図9に示すように、各メモリブロックの列において先頭に位置するメモリブロック同士(各ダイにおけるBlock0およびBlock1)を一つのグループとし、当該グループに属する複数のメモリブロックに対しデータの書き込みを一度に行う。このように、情報処理装置は、各バンクに対してデータを並列的に書き込むことによって、処理速度の向上を図っている。なお、不揮発性メモリ700に含まれるグループを、各メモリブロックの列の先頭から順にそれぞれグループ#1〜グループ#Kとする。
ところで、不揮発性メモリには、不良ブロックが存在する場合がある。不良ブロックとは、データを記録できないメモリセルを含んだメモリブロックであり、工場出荷時から存在するものの他、度重なる使用により良好ブロックが劣化して不良ブロックとなるものもある。
従来の不揮発性メモリは、同一グループ内に1つでも不良ブロックが存在する場合、書き込み性能を維持するため、当該不良ブロックを含むグループの全てのメモリブロックに対してデータの書き込みを行わないこととしている。例えば、図9に示すように、ハッチングを施したメモリブロック710a〜710d、すなわち、Bank0,Die0のBlock2(メモリブロック710a)、Bank0,Die1のBlock2(メモリブロック710b)、Bank0,Die1のBlock3(メモリブロック710c)、BankN,Die0のBlockM(メモリブロック710d)を不良ブロックとする。この場合、情報処理装置は、メモリブロック710a〜710cを含むグループおよびメモリブロック710dを含むグループに対してデータの書き込みを行わない。
なお、情報処理装置は、各グループに対するデータ書き込みの可否をメモリ管理テーブルにより管理する。メモリ管理テーブルは、図10に示すように、不揮発性メモリ700に含まれるグループ#1〜グループ#Kについて、当該グループに対してデータの書き込みが可能か否か(すなわち、当該グループに不良ブロックが含まれるか否か)を示す書込み可否情報を記憶する。例えば、グループ#Kには不良ブロック710dが含まれるため(図9参照。)、メモリ管理テーブルには、グループ#Kに対応する書込み可否情報として、当該グループに対するデータ書き込みができないことを示す「不可」が記憶される。情報処理装置は、データ書き込みを行う際、このメモリ管理テーブルを参照して、データを書込むグループを決定する。
このように、不良ブロックを含むグループの全てのメモリブロックに対してデータの書き込みを行わないこととすると、当該グループに属する良好ブロックまで使用できなくなるため、実質的に使用可能な記憶容量が少なくなるという問題があった。すなわち、図9に示すような場合、良好ブロックである、Bank0,Die0におけるBlockM,Block3,BlockM+1、Bank0,Die1におけるBlockM,BlockM+1、BankN,Die0におけるBlock2,Block3,BlockM+1、BankN,Die1におけるBlock2,Block3,BlockM,BlockM+1に対してデータの書き込みを行うことができなくなる。
このような問題を解決するため、例えば、特許文献1には、不揮発性メモリ内の良好ブロックを有効に利用するためのアクセス制御方法が開示されている。具体的には、特許文献1に記載のアクセス制御方法では、図11に示すように、複数のバンク(Bank0〜Bank3)に属するメモリブロックを、不良ブロックを回避しつつ1つずつ選択してグループ化させる。すなわち、特許文献1に記載のアクセス制御方法では、各バンクの同一アドレスに属するメモリブロック(従来のグループ)に不良ブロックが含まれる場合、当該不良ブロックと同じバンクに属する他のメモリブロック(すなわち、他のグループに属するメモリブロック)を当該不良ブロックの代わりとして使用する。
例えば、図11に示すように、各バンクのAddress0に位置するメモリブロックからなるグループにおいて、Bank1のAddress0に位置するメモリブロックが不良ブロックであるとする。この場合、特許文献1に記載のアクセス制御方法では、Bank1のAddress0に位置する不良ブロックの代わりに、Bank1のAddress5に位置するメモリブロックを用いてデータの書き込みを行う。すなわち、この場合、Bank0,Address0のメモリブロック、Bank1,Address5のメモリブロック、Bank2,Address0のメモリブロック、Bank3,Address0のメモリブロック(図11において番号「1」が付されたメモリブロック)が1つのグループとなる。このように、特許文献1に記載のアクセス制御方法によれば、従来と同様に全てのバンクに対してデータを同時に書き込みつつ、従来の不揮発性メモリにおいて書き込むことのできなかった良好ブロックを使用することができる。
特開2004−265162号公報
しかしながら、特許文献1に記載のアクセス制御方法では、データを書き込む際、データの同時書込みを全てのバンクに対して行うため、例えば1つのバンクに不良ブロックが集中した場合、良好ブロックを有効に利用することができないおそれがある。例えば、図11に示すように、各バンクは、Address0〜Address7で示される8つのメモリブロックをそれぞれ有する。このうち、Bank0,Bank2,Bank3には不良ブロックがそれぞれ1つずつ存在するが、Bank1には5つの不良ブロックが存在するとする。
このような場合、特許文献1に記載のアクセス制御方法を用いてデータの書き込みを行うと、Bank0,Bank2,Bank3には書込み可能な良好ブロックがそれぞれ7つ存在するが、Bank1には良好ブロックが3つしか残っていないため、3つのグループしか作ることができない。そのため、Bank0,Bank2,Bank3に存在する7つの良好ブロックのうちの4つ(Bank0のAddress4〜7のメモリブロック、Bank2のAddress4,5〜7のメモリブロック、Bank3のAddress4〜7のメモリブロック)は、データを書き込むことのできない良好ブロックとなる。
開示の技術は、上述した従来技術による問題点を解消するためになされたものであり、記憶装置の良好ブロックをより有効に利用することができるアクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法を提供することを目的とする。
本願の開示するアクセス制御装置は、一つの態様において、記憶領域を複数の記憶ブロックに区切られた記憶装置に対して、所定の記憶ブロック群ごとにデータの書き込みを行うアクセス制御装置であって、前記記憶ブロックごとに、当該記憶ブロックが、データの記録が可能な良好ブロックであるか或いはデータの記録が不可能な不良ブロックであるかを示す記録可否情報を記憶する管理情報記憶部と、前記記憶ブロック群ごとにデータを書き込む場合に、前記管理情報記憶部に記憶された記録可否情報に基づき、当該記憶ブロック群の良好ブロックにのみデータを書き込むアクセス処理部とを備える。
本願の開示するアクセス制御装置の一つの態様によれば、不揮発性メモリ内の良好ブロックをより有効に利用することができるという効果を奏する。
図1は、本実施例における情報処理装置の構成を示すブロック図である。 図2は、本実施例におけるフラッシュメモリのメモリ構成の一例を示す図である。 図3は、本実施例におけるメモリ管理テーブルの一例を示す図である。 図4は、本実施例におけるアクセス制御方法を説明するための図である。 図5は、本実施例におけるメモリアドレスのイメージ図である。 図6は、本実施例におけるデータ書込み処理の処理手順を示すフローチャートである。 図7は、本実施例におけるデータ読出し処理の処理手順を示すフローチャートである。 図8は、アクセス制御プログラムを実行するコンピュータを示す図である。 図9は、従来における不揮発性メモリのメモリ構成の一例を示す図である。 図10は、従来におけるメモリ管理テーブルの一例を示す図である。 図11は、特許文献1に記載のアクセス制御方法を説明するための図である。
以下に、本願の開示するアクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例では、記憶装置として、不揮発性メモリであるフラッシュメモリを用いる場合について説明するが、本願に開示する技術は、例えば、DRAM(Dynamic Random Access Memory)などの揮発性メモリやHDD(Hard Disk Drive)などのディスク装置に対しても有効である。
本実施例にかかるアクセス制御方法は、フラッシュメモリ内の複数のSRAMにデータを一時記憶した後、当該フラッシュメモリ内の複数のメモリブロックに対して各SRAMからデータを並列的に書き込む場合に、不良ブロックに対応するSRAMには、ダミーデータを一時記憶させ、SRAMから読み出されたダミーデータを不良ブロック以外のブロックに書込ませることにより、不良ブロックが存在する場合におけるメモリ使用効率を高めることができる。
まず、本実施例にかかる情報処理装置の構成について、図面を参照して説明する。図1は本実施例における情報処理装置の構成を示すブロック図、図2は本実施例におけるフラッシュメモリのメモリ構成の一例を示す図、図3は本実施例におけるメモリ管理テーブルの一例を示す図である。なお、本実施例では、情報処理装置の一例として、停電時において、停電時給電ユニットから供給される電力を用いて、キャッシュメモリ内のデータをフラッシュメモリに退避させる機能を有する情報処理装置について説明する。ただし、本願に開示する技術は、このような機能を有しない情報処理装置に対しても適用することができる。
図1に示すように、本実施例にかかる情報処理装置1は、電源供給ユニット2と、停電時給電ユニット3と、給電対象ユニット10とを含む。電源供給ユニット2は、通常時において給電対象ユニット10に対して電力の供給を行う。停電時給電ユニット3は、停電によって電源供給ユニット2からの電力供給がなされなくなった場合に、給電対象ユニット10に対して電力供給を行う大容量のコンデンサまたはバッテリー等である。
給電対象ユニット10は、CPU(Central Processing Unit)11と、メモリコントローラ12と、キャッシュメモリ13と、フラッシュメモリ14と、フラッシュメモリコントローラ15とを含む。CPU11は、キャッシュメモリ13やフラッシュメモリ14に記憶されたデータの計算・加工を行う演算処理装置である。
メモリコントローラ12は、CPU11からのキャッシュメモリ13へのアクセスを制御する装置である。また、メモリコントローラ12は、PCI-XやPCIeなどのバスによりフラッシュメモリコントローラ15と接続されており、CPU11からのフラッシュメモリ14に対するデータの書き込み要求や読み出し要求をフラッシュメモリコントローラ15へ受け渡す。特に、本実施例にかかるメモリコントローラ12は、停電時において、停電時給電ユニット3からの電力を用いて、キャッシュメモリ13に記憶されたデータをフラッシュメモリ14に書き込む処理を行う。これにより、揮発性メモリであるキャッシュメモリに一時的に保持されているデータの消失を防ぐことができる。
キャッシュメモリ13は、DDR SDRAM(Double Date Rate Synchronous DRAM)などの揮発性メモリであり、例えば、フラッシュメモリ14に書き込むべきデータを一時的に保持する。記憶装置としてのフラッシュメモリ14は、各種データを記憶する不揮発性メモリである。フラッシュメモリ14は、所定のメモリセル単位で形成されるメモリブロック(記憶ブロックに相当。)が複数配列されたバンクを複数備える。具体的には、フラッシュメモリ14には、図2に示すように、複数のメモリブロックを含んだ2個のバンク(Bank0,Bank1)が横一列に設けられている。また、各バンクには、2つのダイ(Die0およびDie1)が横一列に設けられており、ダイごとに、10個のメモリブロック(Block0〜Block9)および2つのSRAM(SRAM0,SRAM1)が設けられている。このように、本実施例にかかるフラッシュメモリ14は、記憶領域が複数のメモリブロックに区切られている。なお、図2は、フラッシュメモリ14の論理的な構成を示すものであり、必ずしもバンクやダイが物理的に横一列に並んでいる必要はない。
Block0〜Block9は、各ダイ上において縦二列(Block0、Block2、・・・Block8の列およびBlock1、Block3、・・・Block9の列)で配置されている。また、SRAM0は、Block0、Block2、・・・Block8の列(以下、「偶数ブロック」とする。)に属するメモリブロックに書き込むデータを一時的に記憶し、SRAM1は、Block1、Block3、・・・Block9の列(以下、「奇数ブロック」とする。)に属するメモリブロックに書き込むデータを一時的に記憶する。そして、各メモリブロックは、ページと呼ばれる複数ビット単位で区切られたメモリセルをN+1個(page0〜pageN)を含む。なお、偶数ブロックや奇数ブロックもバンクやダイと同様、必ずしも物理的に縦一列に並んでいる必要はない。
本実施例において、情報処理装置1は、バンクごとに存在する特定のメモリブロック同士を1つのグループとする。ここで、「特定のメモリブロック同士」とは、各メモリブロックの列において同じ位置に存在するメモリブロック同士を意味する。例えば、図2に示すように、各メモリブロックの列においてSRAM側を先頭とすると、当該先頭に位置するメモリブロック同士(各ダイに存在するBlock0およびBlock1)を一つのグループとする。以下では、Block0およびBlock1を含むグループをグループ#1、Block2およびBlock3を含むグループをグループ#2、Block4およびBlock5を含むグループをグループ#3、Block6およびBlock7を含むグループをグループ#4、Block8およびBlock9を含むグループをグループ#5とする。
このように、異なるSRAMからデータを書き込まれるメモリブロック同士をグルーピングすることにより、フラッシュメモリ14に対してデータを効率的に書き込むことができる。かかる点については、後述する。
アクセス制御装置としてのフラッシュメモリコントローラ15は、キャッシュメモリ13に記憶されたデータをフラッシュメモリ14に書き込んだり、メモリコントローラ12からのデータ読出し要求に基づきフラッシュメモリ14からデータを読み出したりする場合に、フラッシュメモリ14へのアクセスを制御する。フラッシュメモリコントローラ15は、管理情報記憶部20と、制御部21とを含む。管理情報記憶部20は、フラッシュメモリ14へのアクセス制御に必要な情報を記憶する。特に、管理情報記憶部20は、メモリ管理テーブル200を有する。
図3に示すように、メモリ管理テーブル200は、フラッシュメモリ14に含まれる全てのメモリブロックについて、当該メモリブロックが、データの記録が可能な良好ブロックであるか或いはデータの記録が不可能な不良ブロックであるかを示す記録可否情報を記憶する。例えば、列がBank0,Die0,偶数ブロック、行がグループ#3の欄は、図2におけるBank0,Die0のBlock4に関する記録可否情報を記憶する欄であり、当該メモリブロックが良好ブロックであることを示す「可」を記憶する。同様に、列がBank1,Die0,奇数ブロック、行がグループ#2の欄は、図2におけるBank1,Die0のBlock3に関する記録可否情報を記憶する欄であり、当該メモリブロックが不良ブロックであることを示す「不可」を記憶する。
また、メモリ管理テーブル200は、ダミーデータ書込み用グループ識別フラグを記憶する。ここで、ダミーデータ書込み用グループとは、後述するダミーデータが書込まれるメモリブロックが属するグループであり、詳細については、後述する。このダミーデータ書込み用グループ識別フラグがセットされているグループがダミーデータ書込み用グループとなる。
制御部21は、フラッシュメモリコントローラ15全体を制御する。制御部21は、アクセス処理部210を有する。なお、本実施例にかかる制御部21は、DMA(Direct Memory Access)によるデータ転送を行うDMAエンジンである。
アクセス処理部210は、フラッシュメモリ14へのデータの書込み処理及びフラッシュメモリ14からのデータの読出し処理を制御する。ここで、アクセス処理部210は、フラッシュメモリ14にデータを書き込む場合、メモリブロックのグループ(グループ#1〜#5)を所定のメモリブロック群(記憶ブロック群に相当。)として、グループごとにデータの書き込みを行う。
具体的には、アクセス処理部210は、フラッシュメモリコントローラ15にデータを書き込む前に、各メモリブロックに対して書き込むべきデータを、それぞれのメモリブロックに対応するSRAMに書き込む。例えば、Bank0,Die0のBlock0に書き込むべきデータは、当該メモリブロックに書き込まれる前に、Bank0,Die0のSRAM0に書き込まれる。そして、1つのグループに含まれるメモリブロックに書き込むべきデータを、それぞれのメモリブロックに対応するSRAMに全て書き込むと、アクセス処理部210は、各SRAMに記憶されたデータを、それぞれのSRAMに対応するメモリブロックに対して一斉に書き込む。
このように、アクセス処理部210は、データを書き込む場合、1つのグループに属するメモリブロックに対して書き込むべきデータを、各メモリブロックに対応するSRAMに記憶した後、これらメモリブロックに対してSRAMから一度にデータを書き込む。これにより、データの書き込み速度を上げることができる。なお、以下において、SRAMに記憶したデータをメモリブロックに書き込む動作をプログラミングと称する場合がある。
特に、本実施例にかかるアクセス処理部210は、各グループに対してデータを書き込む場合、メモリ管理テーブル200に記憶された記録可否情報に基づき、当該グループに含まれる良好ブロックに対してのみデータを書き込む。以下、本実施例にかかるアクセス制御方法について、図面を参照して具体的に説明する。図4は本実施例におけるアクセス制御方法を説明するための図、図5は本実施例におけるメモリアドレスのイメージ図である。
例えば、図4に示すように、フラッシュメモリ14に書き込むべきデータとして、Data0〜Data16がキャッシュメモリ13に記憶されているとする。アクセス処理部210は、これらのデータをグループ#1から順にグループ単位で書き込む場合、先ず、グループ#1に属するメモリブロックが良好ブロックであるか否かをメモリ管理テーブル200に基づき判定する。この結果、グループ#1に属するメモリブロックのうち、Bank0,Die0のBlock0、Bank1,Die0のBlock0、Bank1,Die1のBlock1が良好ブロックであると判定すると、アクセス処理部210は、これら3つのメモリブロックに対して、それぞれData0、Data1、Data2を書き込む。すなわち、グループ#1における不良ブロックであるBank0,Die0のBlock1、Bank0,Die1のBlock0、Bank0,Die1のBlock1、Bank1,Die0のBlock1及びBank1,Die1のBlock0(図4においてハッチングが施されたメモリブロック)に対してはデータは書き込まれない。
ところで、上述したように、本実施例にかかるアクセス処理部210は、フラッシュメモリ14にデータを書き込む場合、フラッシュメモリ14上の全てのSRAMを使用してメモリブロックへのデータの書き込みを同時に行う。そのため、良好ブロックにのみデータを書き込む場合であっても、プログラミングの際に不良ブロックに対するアクセスも発生してしまう。このような事態に対処するため、本実施例にかかるアクセス処理部210は、当該不良ブロックに対応するSRAMに対してダミーデータの書込み処理を行う。
しかしながら、アクセス処理部210は、例えば、データを書き込もうとしたメモリブロックが度重なる使用により劣化して不良ブロックとなっており、データの書き込みに失敗したような場合、書き込みに失敗したデータを他のメモリブロックへ書き移すといった処理を行う。そのため、ダミーデータを不良ブロックへ書き込んだ場合、ダミーデータを他のメモリブロックへ書き写すという無駄な処理が発生してしまう。そこで、本実施例では、フラッシュメモリ14へのデータ書込みの際に、SRAMから不良ブロックへの書き込みが発生することを防ぐために、不良ブロックに対応するSRAMは、ダミーデータを不良ブロックに書き込むのではなく、当該不良ブロックに対応する良好ブロックに対して書き込む。
具体的には、アクセス処理部210は、フラッシュメモリ14に書き込むべきデータ(例えば、Data0〜Data16。)を各SRAMに記憶する際、良好ブロックに対応するSRAMには正式なデータ(Data0〜Data16の何れか。)を書き込む一方、不良ブロックに対応するSRAMにはダミーデータを書き込む。
そして、各SRAMに記憶されたデータをそれぞれに対応するメモリブロックに一度に書き込む際、アクセス処理部210は、正式なデータについては良好ブロックに書き込み、ダミーデータについては不良ブロックに対応する他のメモリブロックに書き込む。ここで、不良ブロックに対応する他のメモリブロックとは、不良ブロックと同じSRAMに対応する良好ブロックである。
より具体的には、本実施例では、フラッシュメモリ14に存在するメモリブロックのグループ#1〜#5のうち、全てのメモリブロックが良好ブロックであるグループの少なくとも1つをダミーデータ書込み用のグループとする。したがって、本実施例では、図3に示すようにグループ#5がダミーデータ用のグループとなる。また、グループ#5に属するメモリブロック(Bank0,Die0のBlock8、Bank0,Die0のBlock9、Bank0,Die1のBlock8、Bank0,Die1のBlock9、Bank1,Die0のBlock8、Bank1,Die0のBlock9、Bank1,Die1のBlock8、Bank1,Die1のBlock9)が、ダミーデータ書込み用のメモリブロックとなる。
ここで、アクセス処理部210は、どのグループがダミーデータ書込み用のグループであるかを、メモリ管理テーブル200に記憶されたダミーデータ書込み用グループ識別フラグを参照することにより判別する。例えば、図3に示すように、グループ#5に対応する欄にダミーデータ書込み用グループ識別フラグがセットされている場合、アクセス処理部210は、グループ#5がダミーデータ書込み用のグループであると判別する。
そして、アクセス処理部210は、SRAMからフラッシュメモリ14にダミーデータを書き込む場合、当該SRAMに対応する、ダミーデータ書込み用のグループに属するメモリブロックに対してダミーデータを書き込む。例えば、グループ#1へのデータ書込み処理が行われる場合、Bank0,Die0のSRAM1に記憶されたダミーデータは、Bank0,Die0のBlock1ではなく、Bank0,Die0のBlock9に書き込まれる。また、グループ#3へのデータ書込み処理が行われる場合も同様に、Bank0,Die0のSRAM1に記憶されたダミーデータは、Bank0,Die0のBlock5ではなく、Bank0,Die0のBlock9に書き込まれる。
このように、本実施例にかかるアクセス処理部210は、あるグループに対してデータを書込む場合、正式なデータについては当該グループに属する良好ブロックに書き込み、ダミーデータについては、当該グループ内の不良ブロックに対応する、ダミーデータ書込み用のグループに属するメモリブロックに書き込む。例えば、グループ#1へのデータ書込み処理を行う場合、アクセス処理部210は、正式なデータであるData0〜Data2をそれぞれBank0,Die0のBlock0、Bank1,Die0のBlock0及びBank1,Die1のBlock1に書き込むとともに、ダミーデータをそれぞれBank0,Die0のBlock1、Bank0,Die1のBlock0、Bank0,Die1のBlock1、Bank1,Die0のBlock1及びBank1,Die1のBlock0へ書き込む。
ここで、メモリブロックにデータが何も書き込まれていない状態とは、当該メモリブロックに「1」が書き込まれている状態を示す。そして、当該メモリブロックに対するデータの書き込みは、当該メモリブロックに書き込まれている「1」の情報を「0」に書換えることにより行われる。また、既にデータが書き込まれているメモリブロックに対して別のデータを書き込む場合は、当該メモリブロックに記憶されているデータを一旦消去して当該メモリブロックの状態を「1」にした後(この処理をイレース処理をいう。)、当該メモリブロックに「0」を書き込む。このイレース処理は、メモリブロックの劣化の最大の原因となっている。ダミーデータ書込み用のメモリブロックは、他のメモリブロックと比較してデータ(ダミーデータ)が書込まれる回数が多い。そのため、書き込みごとにイレース処理を行うこととすると、すぐに劣化して不良ブロックとなり、ダミーデータ書込み用のメモリブロックとしての機能を果たさなくなるおそれがある。
そこで、本実施例において、アクセス処理部210は、ダミーデータ用のグループに属するメモリブロックに対して、ダミーデータとして「1」を書き込む。このように、ダミーデータ書込み用のメモリブロックに対して、ダミーデータとして「1」を上書きしていくことにより、ダミーデータの書き込みごとにイレース処理を行う必要がなくなるため、ダミーデータ書込み用のメモリブロックの劣化を防ぐことができる。
また、アクセス処理部210は、フラッシュメモリ14からデータを読み出す場合、メモリ管理テーブル200に記憶された記録可否情報に基づき、各メモリブロックからデータを読み出す。具体的には、アクセス処理部210は、各メモリブロックの記録可否情報を参照し、当該メモリブロックが良好ブロックであれば、当該メモリブロックに記憶されたデータを読み出す。一方、メモリブロックが不良ブロックであれば、データの読み出しは行わない。
なお、フラッシュメモリ14へアクセスする場合、アクセス処理部210は、データを書き込むべきメモリブロックをメモリアドレスにより指定し、このメモリアドレスをデータとともにSRAMに記憶する。ここで、メモリアドレスは、図5に示すように、Page番号(アドレス:02〜07bit)と、Block番号(アドレス:08〜18bit)と、Die番号(アドレス:19bit)と、Bank番号(アドレス:20,21bit)とを含む。そして、SRAMは、記憶したデータをメモリアドレスにより指定されたメモリブロックに書き込む。
次に、本実施例にかかる情報処理装置1の具体的動作について図面を参照して説明する。先ず、本実施例にかかるデータ書込み処理について説明する。図6は、本実施例におけるデータ書込み処理の処理手順を示すフローチャートである。
図6に示すように、データ書込み処理を開始すると、アクセス処理部210は、メモリ管理テーブル200から1つのグループの記録可否情報を取り出す(ステップS101)。具体的には、アクセス処理部210は、データ書き込みが行われる順に記録可否情報をグループ単位で取り出す。すなわち、アクセス処理部210は、図3に示すように、各グループに含まれる8つの記録可否情報をグループ#1→グループ#2→グループ#3→グループ#4→グループ#5の順に取り出す。
続いて、アクセス処理部210は、ステップS101で取り出した複数の記録可否情報の中から1つの記録可否情報を取り出す(ステップS102)。具体的には、アクセス処理部210は、取り出した8つの記録可否情報の中から、1つの記録可否情報をデータの書き込みが行われる順に取り出す。例えば、ステップS101において、グループ#1に含まれる8つの記録可否情報を取り出した場合、アクセス処理部210は、これら8つの記録可否情報の中から、先ず、Bank0,Die0の偶数ブロックに該当する記録可否情報を取り出す。
続いて、アクセス処理部210は、ステップS102において取り出した記録可否情報が「可」であるか否かを判定する(ステップS103)。なお、メモリ管理テーブル200には、メモリブロックが良好ブロックである場合(「可」である場合)は、該当する欄に「0」が記憶され、メモリブロックが不良ブロックである場合(「不可」である場合)は、該当する欄に「1」が記憶される。そして、アクセス処理部210は、取り出した記録可否情報が「0」である場合は、当該記録可否情報が「可」であると判定する。
この処理において、取り出した記録可否情報が「可」であると判定すると(ステップS103肯定)、アクセス処理部210は、当該記録可否情報に対応するメモリブロックのメモリアドレス及び正式なデータを、当該メモリブロックに対応するSRAMに書き込む(ステップS104)。
例えば、ステップS102において取り出した記録可否情報が、Bank0,Die0の偶数ブロックに該当する記録可否情報であり、図3に示すように、当該記録可否情報が「可」であるとする。この場合、アクセス処理部210は、当該記録可否情報に対応するメモリブロックであるBank0,Die0のBlock0のメモリアドレス及び当該メモリブロックに書き込むべき正式なデータ(例えば、図4に示す「Data0」。)を、当該メモリブロックに対応するBank0,Die0のSRAM0に書き込む。
一方、ステップS102において取り出した記録可否情報が「可」でない場合(ステップS103否定)、アクセス処理部210は、該当するメモリブロックに対応するダミーデータ書込み用のメモリブロックのメモリアドレス及びダミーデータを、当該メモリブロックに対応するSRAMに書き込む(ステップS105)。
例えば、ステップS102において取り出した記録可否情報が、Bank0,Die0の奇数ブロックに該当する記録可否情報であり、図3に示すように、当該記録可否情報が「不可」であるとする。この場合、アクセス処理部210は、該当するメモリブロック(Bank0,Die0のBlock1)に対応するダミーデータ書込み用のメモリブロック(Bank0,Die0のBlock9)のメモリアドレス及びダミーデータを、当該メモリブロック(Bank0,Die0のBlock9)に対応するBank0,Die0のSRAM1に書き込む。
続いて、アクセス処理部210は、所定データサイズの書き込みを行ったか否かを判定する(ステップS106)。具体的には、アクセス処理部210は、フラッシュメモリ14に書き込むべきデータ(例えば、Data0〜Data16。)をSRAMに全て記憶したか否かを判定する。
より具体的には、アクセス処理部210は、データの書き込み要求を受けた場合、該要求に応じて書き込むべきデータのデータサイズに基いて、該データを書き込む記憶ブロックのブロック数(以下、「書込みブロック数」という)を割り出す。そして、アクセス処理部210は、割り出した書込みブロック数を所定の記憶領域に記憶する。また、アクセス処理部210は、ステップS102において取り出した記録可否情報が「可」であると判定した回数をカウントし、カウント数を所定の記憶領域に記憶しておく。
そして、アクセス処理部210は、所定の記憶領域に記憶した上記カウント数と書込みブロック数とが一致した場合、所定データサイズの書き込みを行ったと判定する。例えば、書き込み要求に応じて書き込むべきデータのデータサイズに基づき割り出した書込みブロック数が17個であった場合、アクセス処理部210は、ステップS102において取り出した記録可否情報が「可」であると判定した回数のカウント数が17回に達すると、所定データサイズの書き込みを行ったと判定する。なお、書込みブロック数は、書込み要求を受けるごとにアクセス処理部210により更新される。
この処理において、所定データサイズの書き込みがなされたと判定した場合(ステップS106肯定)、アクセス処理部210は、プログラミングを行う(ステップS107)。すなわち、アクセス処理部210は、各SRAMに記憶した正式なデータあるいはダミーデータを対応するメモリブロックに一度に書き込む。この際、各SRAMは、メモリアドレスより指定されるメモリブロックに対して、正式なデータまたはダミーデータを書き込む。なお、アクセス処理部210は、どのグループがダミーデータ書込み用のグループであるかを、メモリ管理テーブル200に記憶されたダミーデータ書込み用グループ識別フラグを参照することにより判別する。
一方、ステップS106において所定データサイズの書き込みを行っていないとき(ステップS106否定)、アクセス処理部210は、処理をステップS108へ移行する。ステップS108において、アクセス処理部210は、未処理の記録可否情報が存在するか否かを判定する。具体的には、アクセス処理部210は、ステップS101において取り出した8つの記録可否情報のうち、ステップS103〜S106までの処理を行っていない記録可否情報が存在するか否かを判定する。この処理において、未処理の記録可否情報が存在すると判定すると(ステップS108肯定)、アクセス処理部210は、処理をステップS102へ移行し、次にデータを書き込むべきメモリブロックに対応する記録可否情報を取り出す。
一方、未処理の記録可否情報が存在しない場合(ステップS108否定)、アクセス処理部210は、処理をステップS109へ移行する。なお、未処理の記録可否情報が存在しない場合とは、換言すると、フラッシュメモリ14上の全てのSRAMに対して、正式なデータあるいはダミーデータが記録された場合である。
ステップS109において、アクセス処理部210は、プログラミングを行う。すなわち、アクセス処理部210は、各SRAMに記憶した正式なデータあるいはダミーデータを対応するメモリブロックに一度に書き込む。この際、各SRAMは、メモリアドレスより指定されるメモリブロックに対して、正式なデータまたはダミーデータを書き込む。
続いて、アクセス処理部210は、未処理のグループが存在するか否かを判定する(ステップS110)。すなわち、アクセス処理部210は、メモリ管理テーブル200から記録可否情報を未だ取出していないグループが存在するか否かを判定する。この処理において、未処理のグループが存在すると判定した場合(ステップS110肯定)、アクセス処理部210は、処理をステップS101へ移行し、次にデータを書き込むべきグループの記録可否情報を取り出す。一方、ステップS110において未処理のグループが存在しない場合(ステップS110否定)、あるいは、ステップS107の処理を終えた場合、アクセス処理部210は、データ書込み処理を終了する。
続いて、本実施例にかかるデータ読出し処理について説明する。図7は、本実施例におけるデータ読出し処理の処理手順を示すフローチャートである。
図7に示すように、データ読込み処理を開始すると、アクセス処理部210は、メモリ管理テーブル200から1つのグループの記録可否情報を取り出す(ステップS201)。具体的には、アクセス処理部210は、データ読出しが行われる順に記録可否情報をグループ単位で取り出す。続いて、アクセス処理部210は、ステップS201で取り出した複数の記録可否情報の中から1つの記録可否情報を取り出す(ステップS202)。具体的には、アクセス処理部210は、取り出した8つの記録可否情報の中から、1つの記録可否情報をデータの読出しが行われる順に取り出す。
続いて、アクセス処理部210は、ステップS202において取り出した記録可否情報が「可」であるか否かを判定する(ステップS203)。この処理において、取り出した記録可否情報が「可」であると判定すると(ステップS203肯定)、アクセス処理部210は、当該記録可否情報に対応するメモリブロックに記憶されているデータを読み出す(ステップS204)。ステップS204の処理を終えたとき、あるいは、ステップS202において取り出した記録可否情報が「可」でない場合(ステップS203否定)、アクセス処理部210は、所定データサイズの読出しを行ったか否かを判定する(ステップS205)。
具体的には、アクセス処理部210は、フラッシュメモリ14から読出すべきデータ(例えば、Data0〜Data16。)を全て読出したか否かを判定する。より具体的には、アクセス処理部210は、データの読み出し要求を受けた場合、該要求に応じて読み出すべきデーを記憶している記憶ブロックのブロック数(以下、「読出しブロック数」という)を所定の記憶領域に記憶する。また、アクセス処理部210は、ステップS202において取り出した記録可否情報が「可」であると判定した回数をカウントし、カウント数を所定の記憶領域に記憶しておく。
そして、アクセス処理部210は、所定の記憶領域に記憶した上記カウント数と読出しブロック数とが一致した場合、所定データサイズの読み出しを行ったと判定する。例えば、読出しブロック数が17個であった場合、アクセス処理部210は、ステップS202において取り出した記録可否情報が「可」であると判定した回数のカウント数が17回に達すると、所定データサイズの読み出しを行ったと判定する。なお、読出しブロック数は、読出し要求を受けるごとにアクセス処理部210により更新される。
ステップS205の処理において、所定データサイズの読出しを行っていないとき(ステップS205否定)、アクセス処理部210は、未処理の記録可否情報が存在するか否かを判定する(ステップS206)。この処理において、未処理の記録可否情報が存在すると判定すると(ステップS206肯定)、アクセス処理部210は、処理をステップS202へ移行し、次にデータを読出すべきメモリブロックに対応する記録可否情報を取り出す。一方、未処理の記録可否情報が存在しない場合(ステップS206否定)、アクセス処理部210は、処理をステップS201へ移行し、次にデータを読出すべきグループの記録可否情報を取り出す。一方、ステップS205において所定データサイズの読出しを行ったと判定すると(ステップS205肯定)、アクセス処理部210は、データ読出し処理を終了する。
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、上記実施例に示した制御部21と同様の機能を有するアクセス制御プログラムを実行するコンピュータの一例を説明する。図8は、アクセス制御プログラムを実行するコンピュータを示す図である。
図8に示すように、コンピュータ600は、HDD610、CPU620、ROM630及びRAM640をバス650で接続して構成される。
ROM630には、上記の実施例と同様の機能を発揮するアクセス制御プログラム、つまり、アクセス処理プログラム631が予め記憶されている。そして、CPU620が、アクセス処理プログラム631をROM630から読み出して実行することにより、アクセス処理プログラム631は、アクセス処理プロセス621として機能する。
なお、HDD610には、アクセス処理プロセス621によって利用される各種データが格納されている。CPU620は、HDD610に格納された各種データを読み出して、RAM640に格納し、アクセス処理プロセス621が、RAM640に格納された各種データを利用して、データ書込み処理などの各種処理を実行する。
上述してきたように、本実施例では、メモリブロックごとに、当該メモリブロックが、データの記録が可能な良好ブロックであるか或いはデータの記録が不可能な不良ブロックであるかを示す記録可否情報を記憶し、この記録可否情報に基づき、当該メモリブロック群の良好ブロックに対してのみデータを書き込むこととしたので、不揮発性メモリ内の良好ブロックをより有効に利用することができる。
また、例えば、特許文献1に記載のアクセス制御方法は、あるグループに不良ブロックが含まれる場合、当該不良ブロックの代わりに、本来ならば他のグループに属するメモリブロックを用いてデータを一度に書き込む。そのため、データを順に読み出す場合、不良ブロックに書き込まれるはずだったデータがどのメモリブロックに書き込まれたかを特定する必要があり、処理が煩雑となるおそれがある。一方、本実施例にかかるアクセス制御方法によれば、1つのグループに属するメモリブロックに対してのみデータを一度に書き込むため、読出し処理が煩雑となるおそれがない。
また、本実施例では、不良ブロックを含むグループに対してデータの書込みを行う際、当該グループに含まれる不良ブロックに対応するダミーデータ書込み用のメモリブロックに対してダミーデータを書き込むこととしている。そのため、グループ単位でのデータの一斉書き込みを行うことで書き込み速度の向上を図りつつも、不良ブロックへの書き込みを防止することで、ダミーデータが他のメモリブロックに書き直されるといった自体を防ぐことができる。また、不良ブロックへのアクセスによるエラーの発生も防止できる。
また、本実施例では、ダミーデータを「1」としている。そのため、ダミーデータ書き込み用のメモリブロックにダミーデータを書き込む場合は、「1」が上書きするだけでよく、イレース処理を行う必要がなくなるため、ダミーデータ書込み用のメモリブロックの劣化を防ぐことができる。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)記憶領域を複数の記憶ブロックに区切られた記憶装置に対して、所定の記憶ブロック群ごとにデータの書き込みを行うアクセス制御装置であって、前記記憶ブロックごとに、当該記憶ブロックが、データの記録が可能な良好ブロックであるか或いはデータの記録が不可能な不良ブロックであるかを示す記録可否情報を記憶する管理情報記憶部と、前記記憶ブロック群ごとにデータを書き込む場合に、前記管理情報記憶部に記憶された記録可否情報に基づき、当該記憶ブロック群の良好ブロックにのみデータを書き込むアクセス処理部とを備えたことを特徴とするアクセス制御装置。
(付記2)前記アクセス処理部は、複数の前記記憶ブロック群のうち、属する記憶ブロックの全てが良好ブロックである記憶ブロック群の少なくとも1つをダミーデータ書込み用の記憶ブロック群とし、不良ブロックを含む記憶ブロック群に対してデータの書込みを行う場合、当該記憶ブロック群に含まれる不良ブロックに対応する、前記ダミーデータ書込み用の記憶ブロック群に属する記憶ブロックに対してダミーデータを書き込むことを特徴とする付記1に記載のアクセス制御装置。
(付記3)前記アクセス処理部は、前記ダミーデータ用の記憶ブロック群に属する記憶ブロックに対して、前記ダミーデータとして1を書込むことを特徴とする付記2に記載のアクセス制御装置。
(付記4)前記アクセス処理部は、書込み要求に応じて書込むべきデータのデータサイズに基づき割り出される書込みブロック数を所定の記憶領域に記憶するとともに、前記管理情報記憶部に記憶された記録可否情報に基づき記憶ブロックが良好ブロックであると判定した回数を所定の記憶領域に記憶し、前記良好ブロックであると判定した回数が前記書込みブロック数と一致した場合、書き込み要求に応じて書込むべきデータの全てを記憶ブロックに書込んだと判定することを特徴とする付記1〜3の何れか1つに記載のアクセス制御装置。
(付記5)前記アクセス処理部は、前記書込みブロック数を、前記書込み要求を受けるごとに更新することを特徴とする付記4に記載のアクセス制御装置。
(付記6)記憶領域を複数の記憶ブロックに区切られた記憶装置を備え、前記記憶装置に対して、所定の記憶ブロック群ごとにデータの書き込みを行う情報処理装置であって、前記記憶ブロックごとに、当該記憶ブロックが、データの記録が可能な良好ブロックであるか或いはデータの記録が不可能な不良ブロックであるかを示す記録可否情報を記憶する管理情報記憶部と、前記記憶ブロック群ごとにデータを書き込む場合に、前記管理情報記憶部に記憶された記録可否情報に基づき、当該記憶ブロック群の良好ブロックにのみデータを書き込むアクセス処理部とを備えたことを特徴とする情報処理装置。
(付記7)前記アクセス処理部は、複数の前記記憶ブロック群のうち、属する記憶ブロックの全てが良好ブロックである記憶ブロック群の少なくとも1つをダミーデータ書込み用の記憶ブロック群とし、不良ブロックを含む記憶ブロック群に対してデータの書込みを行う場合、当該記憶ブロック群に含まれる不良ブロックに対応する、前記ダミーデータ書込み用の記憶ブロック群に属する記憶ブロックに対してダミーデータを書き込むことを特徴とする付記6に記載の情報処理装置。
(付記8)前記アクセス処理部は、前記ダミーデータとして、前記ダミーデータ用の記憶ブロック群に属する記憶ブロックに1を書込むことを特徴とする付記7に記載の情報処理装置。
(付記9)記憶領域を複数の記憶ブロックに区切られた記憶装置に対して、所定の記憶ブロック群ごとにデータの書き込みを行うアクセス制御プログラムであって、前記記憶ブロック群ごとにデータを書き込む場合に、当該記憶ブロック群に含まれる各記憶ブロックが、データの記録が可能な良好ブロックであるか或いはデータの記録が不可能な不良ブロックであるかを示す記録可否情報に基づき、当該記憶ブロック群の良好ブロックにのみデータを書き込むアクセス処理手順をコンピュータに実行させることを特徴とするアクセス制御プログラム。
(付記10)前記アクセス処理手順は、複数の前記記憶ブロック群のうち、属する記憶ブロックの全てが良好ブロックである記憶ブロック群の少なくとも1つをダミーデータ書込み用の記憶ブロック群とし、不良ブロックを含む記憶ブロック群に対してデータの書込みを行う場合、当該記憶ブロック群に含まれる不良ブロックに対応する、前記ダミーデータ書込み用の記憶ブロック群に属する記憶ブロックに対してダミーデータを書き込むことを特徴とする付記9に記載のアクセス制御プログラム。
(付記11)前記アクセス処理手順は、前記ダミーデータとして、前記ダミーデータ用の記憶ブロック群に属する記憶ブロックに1を書込むことを特徴とする付記9に記載のアクセス制御プログラム。
(付記12)記憶領域を複数の記憶ブロックに区切られた記憶装置に対して、所定の記憶ブロック群ごとにデータの書き込みを行うアクセス制御方法であって、前記記憶ブロック群ごとにデータを書き込む場合に、当該記憶ブロック群に含まれる各記憶ブロックが、データの記録が可能な良好ブロックであるか或いはデータの記録が不可能な不良ブロックであるかを示す記録可否情報に基づき、当該記憶ブロック群の良好ブロックにのみデータを書き込むアクセス処理ステップを含んだことを特徴とするアクセス制御方法。
(付記13)前記アクセス処理ステップは、複数の前記記憶ブロック群のうち、属する記憶ブロックの全てが良好ブロックである記憶ブロック群の少なくとも1つをダミーデータ書込み用の記憶ブロック群とし、不良ブロックを含む記憶ブロック群に対してデータの書込みを行う場合、当該記憶ブロック群に含まれる不良ブロックに対応する、前記ダミーデータ書込み用の記憶ブロック群に属する記憶ブロックに対してダミーデータを書き込むことを特徴とする付記12に記載のアクセス制御方法。
(付記14)前記アクセス処理ステップは、前記ダミーデータとして、前記ダミーデータ用の記憶ブロック群に属する記憶ブロックに1を書込むことを特徴とする付記13に記載のアクセス制御方法。
1 情報処理装置
11 CPU
12 メモリコントローラ
13 キャッシュメモリ
14 フラッシュメモリ(記憶装置)
15 フラッシュメモリコントローラ(アクセス制御装置)
20 管理情報記憶部
21 制御部
200 メモリ管理テーブル
210 アクセス処理部

Claims (6)

  1. 記憶領域を複数の記憶ブロックに区切られた記憶装置に対して、所定の記憶ブロック群ごとにデータの書き込みを行うアクセス制御装置であって、
    前記記憶ブロックごとに、当該記憶ブロックが、データの記録が可能な良好ブロックであるか或いはデータの記録が不可能な不良ブロックであるかを示す記録可否情報を記憶する管理情報記憶部と、
    前記記憶ブロック群ごとにデータを書き込む場合に、前記管理情報記憶部に記憶された記録可否情報に基づき、複数の前記記憶ブロック群のうち、記憶ブロックの全てが良好ブロックである記憶ブロック群の少なくとも1つをダミーデータ書込み用の記憶ブロック群とし、不良ブロックを含む記憶ブロック群に対してデータの書込みを行う場合、当該記憶ブロック群に含まれる不良ブロックに対応する、前記ダミーデータ書込み用の記憶ブロック群に属する記憶ブロックに対してダミーデータを書き込むアクセス処理部と
    を備えたことを特徴とするアクセス制御装置。
  2. 前記アクセス処理部は、前記ダミーデータ用の記憶ブロック群に属する記憶ブロックに対して、前記ダミーデータとして1を書込むことを特徴とする請求項に記載のアクセス制御装置。
  3. 記憶領域を複数の記憶ブロックに区切られた記憶装置を備え、前記記憶装置に対して、所定の記憶ブロック群ごとにデータの書き込みを行う情報処理装置であって、
    前記記憶ブロックごとに、当該記憶ブロックが、データの記録が可能な良好ブロックであるか或いはデータの記録が不可能な不良ブロックであるかを示す記録可否情報を記憶する管理情報記憶部と、
    前記記憶ブロック群ごとにデータを書き込む場合に、前記管理情報記憶部に記憶された記録可否情報に基づき、複数の前記記憶ブロック群のうち、属する記憶ブロックの全てが良好ブロックである記憶ブロック群の少なくとも1つをダミーデータ書込み用の記憶ブロック群とし、不良ブロックを含む記憶ブロック群に対してデータの書込みを行う場合、当該記憶ブロック群に含まれる不良ブロックに対応する、前記ダミーデータ書込み用の記憶ブロック群に属する記憶ブロックに対してダミーデータを書き込むアクセス処理部と
    を備えたことを特徴とする情報処理装置。
  4. 前記アクセス処理部は、前記ダミーデータとして、前記ダミーデータ用の記憶ブロック群に属する記憶ブロックに1を書込むことを特徴とする請求項に記載の情報処理装置。
  5. 記憶領域を複数の記憶ブロックに区切られた記憶装置に対して、所定の記憶ブロック群ごとにデータの書き込みを行うアクセス制御プログラムであって、
    前記記憶ブロック群ごとにデータを書き込む場合に、当該記憶ブロック群に含まれる各記憶ブロックが、データの記録が可能な良好ブロックであるか或いはデータの記録が不可能な不良ブロックであるかを示す記録可否情報に基づき、複数の前記記憶ブロック群のうち、記憶ブロックの全てが良好ブロックである記憶ブロック群の少なくとも1つをダミーデータ書込み用の記憶ブロック群とし、不良ブロックを含む記憶ブロック群に対してデータの書込みを行う場合、当該記憶ブロック群に含まれる不良ブロックに対応する、前記ダミーデータ書込み用の記憶ブロック群に属する記憶ブロックに対してダミーデータを書き込むアクセス処理手順
    をコンピュータに実行させることを特徴とするアクセス制御プログラム。
  6. 記憶領域を複数の記憶ブロックに区切られた記憶装置に対して、所定の記憶ブロック群ごとにデータの書き込みを行うアクセス制御方法であって、
    前記記憶ブロック群ごとにデータを書き込む場合に、当該記憶ブロック群に含まれる各記憶ブロックが、データの記録が可能な良好ブロックであるか或いはデータの記録が不可能な不良ブロックであるかを示す記録可否情報に基づき、複数の前記記憶ブロック群のうち、記憶ブロックの全てが良好ブロックである記憶ブロック群の少なくとも1つをダミーデータ書込み用の記憶ブロック群とし、不良ブロックを含む記憶ブロック群に対してデータの書込みを行う場合、当該記憶ブロック群に含まれる不良ブロックに対応する、前記ダミーデータ書込み用の記憶ブロック群に属する記憶ブロックに対してダミーデータを書き込むアクセス処理ステップ
    を含んだことを特徴とするアクセス制御方法。
JP2009049826A 2009-03-03 2009-03-03 アクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法 Expired - Fee Related JP4762323B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009049826A JP4762323B2 (ja) 2009-03-03 2009-03-03 アクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法
US12/707,161 US8370564B2 (en) 2009-03-03 2010-02-17 Access control device, information processing device, access control program and access control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009049826A JP4762323B2 (ja) 2009-03-03 2009-03-03 アクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法

Publications (2)

Publication Number Publication Date
JP2010204961A JP2010204961A (ja) 2010-09-16
JP4762323B2 true JP4762323B2 (ja) 2011-08-31

Family

ID=42679247

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009049826A Expired - Fee Related JP4762323B2 (ja) 2009-03-03 2009-03-03 アクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法

Country Status (2)

Country Link
US (1) US8370564B2 (ja)
JP (1) JP4762323B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4818395B2 (ja) * 2009-05-20 2011-11-16 富士通株式会社 ストレージ装置及びデータコピー方法
US10303618B2 (en) * 2012-09-25 2019-05-28 International Business Machines Corporation Power savings via dynamic page type selection
JP2015215675A (ja) * 2014-05-08 2015-12-03 富士通株式会社 制御装置、制御方法、及び制御プログラム
JP6213438B2 (ja) * 2014-09-26 2017-10-18 京セラドキュメントソリューションズ株式会社 画像形成装置
JP7074454B2 (ja) 2017-10-30 2022-05-24 キオクシア株式会社 計算機システムおよび制御方法
JP7074453B2 (ja) * 2017-10-30 2022-05-24 キオクシア株式会社 メモリシステムおよび制御方法
KR20220046308A (ko) * 2020-10-07 2022-04-14 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3741258B2 (ja) 2000-03-31 2006-02-01 シャープ株式会社 半導体記憶装置およびその救済方法
JP2004145964A (ja) * 2002-10-24 2004-05-20 Matsushita Electric Ind Co Ltd 半導体メモリ、半導体メモリ製造方法、メモリカードおよび半導体メモリ制御方法
JP2004265162A (ja) 2003-03-03 2004-09-24 Renesas Technology Corp 記憶装置およびアドレス管理方法
US20050144516A1 (en) 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
US7350044B2 (en) * 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
JP4256307B2 (ja) * 2004-06-21 2009-04-22 株式会社東芝 メモリカード
JP4946102B2 (ja) 2006-03-10 2012-06-06 ソニー株式会社 不揮発性メモリシステムおよび不揮発性メモリの管理方法
JP4171749B2 (ja) * 2006-04-17 2008-10-29 Tdk株式会社 メモリコントローラおよびフラッシュメモリシステム
JP4719167B2 (ja) * 2007-02-19 2011-07-06 株式会社東芝 半導体メモリ情報蓄積装置とその書き込み不良対策方法

Also Published As

Publication number Publication date
US8370564B2 (en) 2013-02-05
JP2010204961A (ja) 2010-09-16
US20100228930A1 (en) 2010-09-09

Similar Documents

Publication Publication Date Title
US10255192B2 (en) Data storage device and data maintenance method thereof
JP4762323B2 (ja) アクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法
US8037232B2 (en) Data protection method for power failure and controller using the same
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
US8407397B2 (en) Block management method for flash memory and controller and storage system using the same
US8055834B2 (en) Method for preventing read-disturb happened in non-volatile memory and controller thereof
KR101014040B1 (ko) 디램 버퍼 관리 장치 및 방법
JP2006031696A (ja) バッドブロック管理部を含むフラッシュメモリシステム
US9213629B2 (en) Block management method, memory controller and memory stoarge apparatus
US20090198875A1 (en) Data writing method for flash memory, and controller and system using the same
WO2014132346A1 (ja) 半導体ストレージ
US8296503B2 (en) Data updating and recovering methods for a non-volatile memory array
WO2010115332A1 (zh) 闪存坏块的利用方法
US10509697B2 (en) Data storage device and operating method therefor
US10929303B2 (en) Data storage device utilizing virtual blocks to improve performance and data storage method thereof
CN102301428A (zh) 存储器装置、存储器管理装置及存储器管理方法
TWI490869B (zh) 應用於快閃記憶體的方法與相關的控制器
TWI450271B (zh) 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
US20090164869A1 (en) Memory architecture and configuration method thereof
US20090210612A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
JP2012521032A (ja) Ssdコントローラおよびssdコントローラの動作方法
JP2019114031A (ja) メモリシステム及び制御方法
US8832358B2 (en) Data writing method, memory controller and memory storage apparatus
CN105589810B (zh) 数据储存器件及其操作方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110316

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: 20110531

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110607

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4762323

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees