JP5273780B2 - メモリアクセス制御方法及びメモリ制御装置、コンピュータプログラム - Google Patents
メモリアクセス制御方法及びメモリ制御装置、コンピュータプログラム Download PDFInfo
- Publication number
- JP5273780B2 JP5273780B2 JP2008150479A JP2008150479A JP5273780B2 JP 5273780 B2 JP5273780 B2 JP 5273780B2 JP 2008150479 A JP2008150479 A JP 2008150479A JP 2008150479 A JP2008150479 A JP 2008150479A JP 5273780 B2 JP5273780 B2 JP 5273780B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- writing
- written
- area
- flag information
- 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.)
- Active
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
また、不具合発生後、回復時に、書込完了を示す情報を参照することにより、書込完了していたブロックの再書込を行うことにより、適正にデータの回復処理を行うという技術もある(特許文献2)。
本発明のメモリアクセス制御方法は、所定のデータサイズを1回の書込単位とするデータ領域と、このデータ領域からのデータ読込時に参照されるヘッダ領域とを有するメモリへのアクセスを制御する装置が実行する方法であって、書込対象となる実データを取得し、取得した実データのサイズに応じて1又は複数の書込単位分のデータ領域を前記メモリにおいて確保するとともに、確保した書込単位分のデータ領域を前記実データの最初のものから最後のものまでシーケンシャルに関連付け、当該実データについて何番目の書込単位かを表す第1フラグ情報を前記ヘッダ領域に書き込んだ後、前記データ領域に対して当該書込単位の実データの書込を行い、該実データの書込が正常に終了したことを検知したときは、書込終了を表す第2フラグ情報を前記第1フラグ情報と関連付けて前記ヘッダ領域に書き込む段階と、前記実データについての前記ヘッダ領域を参照し、当該ヘッダ領域に前記第2フラグ情報が書き込まれておらず、あるいは前記第2フラグ情報が書き込まれていても前記第1フラグ情報が最後の書込単位のものでない場合は、前記データ領域に既に書き込まれているすべての実データを無効データとして扱う段階とを有する方法である。
不揮発性メモリ5の構造例を図2に示す。
不揮発性メモリ5は、複数のブロックで構成される。すなわち、初期データ用の初期データブロック51、管理領域ブロック52及びデータ書込用の実データブロック53を有している。これらのブロック51〜53は、例えばメモリ初期化時、あるいは、再構築時に、メモリ制御装置1により形成される。
ヘッダブロックは、どのデータブロックのどのアドレスにどのデータが存在し、その書込状態がどのようになっているかを示すヘッダ情報を書き込むためのブロックである。データブロックは、メモリ制御装置1が外部(アプリケーション等)より取得し、装置内で実際に扱うデータ(実データという)を書き込むためのブロックである。
書き込まれているデータの検索(読込)は、最新エントリ、つまり最後のエントリから開始される。シーケンス番号は、書込が進むにつれて小さい値となり、最後は0となる。従って、検索時に、フラグに「SEQ」があり、且つ、シーケンス番号が最後を示す「0」であれば、それ以降に続くフラグ「TOP_SEQ」までの実データは、正しくデータブロックに書き込まれて、有効な書込状態であることを示す。逆に、検索(読込)時に、フラグに「SEQ」があり、且つ、シーケンス番号が「0」以外であれば、それ以降に続くフラグ「TOP_SEQ」までの実データは無効、つまり無いものとして扱う。
次に、メモリ制御装置1の動作を具体的に説明する。
1.書込処理(概要)
まず、書込処理の概要を説明する。メモリ制御装置1は、書込処理を、空き領域を有するデータブロックの探索、そのデータブロックの書込領域を管理するヘッダブロックへのSMの情報書込、そのデータブロックへの実データの書込、並びに、ヘッダブロックへのEMの情報書込の順に行う。
書込処理に際しては、既にデータが書き込まれているデータおよび情報の読込処理が先行する。本実施形態による読込処理では、既に書き込まれているデータ、情報が有効かものか無効なものかの判定を伴うことを特徴の一つとしている。
以下、この読込処理を、図7の手順説明図を参照して説明する。
メモリ制御装置1は、該当のアライメントアドレスのデータを読み込み、フラグに関する変数fragsを「0」にセットする(ステップS201,S202)。その後、ヘッダブロックの最新エントリを検索する(ステップS203)。この処理は、具体的には、ヘッダブロックの最後のエントリから、逆順に検索し、初めてSM又はEMが書かれているエントリを見つけ出す処理である。
メモリ制御装置1は、このエントリにおけるEMの論理アドレスが正しく書かれているかどうかを判定する(ステップS204)。正しく書き込まれていない場合であって、調べるエントリがまだある場合は、1つ前のエントリに移動する(ステップS204:No、S205:Yes、S206)。正しく書き込まれておらず、調べるエントリもない場合は、必要なデータ分をすべて有効データが存在しないことを示す「FFH」とし(ステップS204:No、S205:No、S207)、元の処理に戻る(ステップS208)。
以上の処理により、実データの書込が正常に終了しているかどうかは、SMおよびEMのヘッダ情報が正常に書き込まれたかどうかで判定することができる(ステップS204参照)。すなわち、EMの論理アドレスの書込は、ヘッダブロックへのSMの書込、データブロックへの実データの書込の後に行われるので、SMの書込途中、SMだけが書き込まれた状態、実データの書込途中、SMおよび実データが書き込まれた状態、EMの書込途中、つまり、EMの論理アドレスが正しく書き込まれていない状態は、いずれも書込が未完了の状態とみなすことができる。
また、エントリは16バイトアライメントなので、論理アドレスは必ず「XXX0H」の形で表される。従って、EMの論理アドレスが「XXX0H」以外、例えば「XXXFH」の形で書き込まれている場合、書込は何らかの不具合で異常終了したことになる。
従って、SMおよびEMの情報、特にEMの論理情報を参照することにより、ある複数バイトのデータが正常に書き込めたか、書き込めなかったかのどちらかを必ず保証することができる。書き込むデータのサイズも、1バイト、4バイトのような固定的なものである必要がない。任意のサイズとすることができる。
「www.test1.aaa.co.jp/test123456.html」
従来技術の場合は、中途半端なサイズでの書込状態があり得るが、本実施形態のメモリ制御装置1では、このような事態が発生しない。このことを、具体的に説明する。
図9は、上記データが正常に書かれた状態を示す。このデータを「Da」とする。Daは33バイトのデータなので、16バイトアライメントの下では3回の書込(16バイト、16バイト、1バイトの順)が行われることになる。正常であれば、図9のようにSMとEMとのペアは3つ存在し、かつ、最初のエントリのSMのフラグ(TS、S)およびシーケンス番号(2)とそれ以外のエントリのSMのそれらとの間には、必ず違いがある。特にシーケンス番号は、「2」,「1」,「0」のように連続して減少しなければならず、シーケンス番号が「0」のときのフラグは「S」でなければならない。
図7のステップS203の処理によれば、この状態での最新エントリは、2番目のエントリ(図10の(2)部分)である。しかし、このエントリ(2)のEMの論理アドレスは正しくないので、書かれていないエントリとみなされる(ステップS204〜S206参照)。1つ前のエントリ(図10の(1)の部分)に戻ると、EMの論理アドレスは正しいが、フラグが「S」でシーケンス番号が「0」という条件を満たさないので、このエントリに対応するデータブロックのデータは無効データであるとして、無効処理に移る(図7のステップS215参照)。無効データは、SMにフラグTSが表れるエントリまでである。図10の例では、エントリ(1)自身までということになる。つまり、これまで書かれた実データは、読込時にすべて無いものとみなされる。
図12は、D1をデータブロックおよびヘッダブロックに正常に書き込んだ状態を示す図である。5000Hのアドレスから16バイトのデータは、図4に示したものと同じようになり、SMには、実データD1についてフラグ設定無しを表す「0」およびシーケンシャル番号「0」、EMについては、同一論理アドレスの直前のエントリ位置は「なし」で、書き込まれている論理アドレスは「0X5000」となる。
Claims (6)
- 所定のデータサイズを1回の書込単位とするデータ領域と、このデータ領域からのデータ読込時に参照されるヘッダ領域とを有するメモリへのアクセスを制御する装置が実行する方法であって、
書込対象となる実データを取得し、取得した実データのサイズに応じて1又は複数の書込単位分のデータ領域を前記メモリにおいて確保するとともに、確保した書込単位分のデータ領域を前記実データの最初のものから最後のものまでシーケンシャルに関連付け、当該実データについて何番目の書込単位かを表す第1フラグ情報を前記ヘッダ領域に書き込んだ後、前記データ領域に対して当該書込単位の実データの書込を行い、該実データの書込が正常に終了したことを検知したときは、書込終了を表す第2フラグ情報を前記第1フラグ情報と関連付けて前記ヘッダ領域に書き込む段階と、
前記実データについての前記ヘッダ領域を前記最後の書込単位から逆順に参照し、前記最後の書込単位のヘッダ領域に前記第2フラグ情報が書き込まれておらず、あるいは前記最後の書込単位のヘッダ領域に前記第2フラグ情報が書き込まれていても前記第1フラグ情報が最後の書込単位のものでない場合は、前記1又は複数の書込単位分のデータ領域に既に書き込まれているすべての実データを無効データとして扱う段階とを有し、
前記装置は、前記無効データが書き込まれているデータ領域および前記ヘッダ領域の書込状態を保持したまま、書込対象となる新たな実データを取得し、取得した新たな実データのサイズを書き込むための前記データ領域を新たに確保する、
メモリアクセス制御方法。 - 前記第1フラグ情報は、確保した書込単位の数を最大値とするシーケンス番号を含んでおり、
前記装置は、前記実データの前記データ領域への正常な書込が進む度に、最初の書込単位を起点とし、最後の書込単位であることを表す数値を終点として、前記シーケンス番号を逐次小さい値に更新し、更新したシーケンス番号を当該書込単位の第1フラグ情報として前記ヘッダ領域に書き込む、
請求項1記載のメモリアクセス制御方法。 - 前記第2フラグ情報は、書込単位毎に、その直前の書込単位を識別するための識別情報と、前記実データが書き込まれた位置を表す論理アドレスとを含んでおり、
前記装置は、前記第1フラグ情報の前記ヘッダ領域への書込と、前記実データの前記データ領域への書込とがいずれも正常に実行されたときに前記第2フラグ情報を生成し、この第2フラグ情報を当該第1フラグ情報とペアで参照される領域に書き込む、
請求項2記載のメモリアクセス制御方法。 - 前記装置は、前記保持してあるデータ領域および前記ヘッダ領域の書込状態を、一定の消去条件を満たしたときに、一括して消去する、
請求項1記載のメモリアクセス制御方法。 - 所定のデータサイズを1回の書込単位とするデータ領域と、このデータ領域からのデータ読込時に参照されるヘッダ領域とを有するメモリへのアクセスを制御するメモリ制御装置であって、
書込対象となる実データを取得する実データ取得手段と、
取得した実データのサイズに応じて1又は複数の書込単位分のデータ領域を前記メモリにおいて確保するとともに、確保した書込単位分のデータ領域を前記実データの最初のものから最後のものまでシーケンシャルに関連付け、当該実データについて何番目の書込単位かを表す第1フラグ情報を前記ヘッダ領域に書き込んだ後、前記データ領域に対して当該書込単位の実データの書込を行い、該実データの書込が正常に終了したことを検知したときは、書込終了を表す第2フラグ情報を前記第1フラグ情報と関連付けて前記ヘッダ領域に書き込む書込手段と、
前記実データについての前記ヘッダ領域を、前記最後の書込単位から逆順に参照し、前記最後の書込単位のヘッダ領域に前記第2フラグ情報が書き込まれておらず、あるいは前記最後の書込単位のヘッダ領域に前記第2フラグ情報が書き込まれていても前記第1フラグ情報が最後の書込単位のものでない場合は、前記1又は複数の書込単位分のデータ領域に既に書き込まれているすべての実データを無効なデータとして扱う読込手段とを有し、
前記書込手段は、前記無効データが書き込まれているデータ領域および前記ヘッダ領域の書込状態を保持したまま、書込対象となる新たな実データを取得し、取得した新たな実データのサイズを書き込むための前記データ領域を新たに確保する、
メモリ制御装置。 - 所定のデータサイズを1回の書込単位とするデータ領域と、このデータ領域からのデータ読込時に参照されるヘッダ領域とを有するメモリへのアクセスが可能なコンピュータを、書込対象となる実データを取得する実データ取得手段、
取得した実データのサイズに応じて1又は複数の書込単位分のデータ領域を前記メモリにおいて確保するとともに、確保した書込単位分のデータ領域を前記実データの最初のものから最後のものまでシーケンシャルに関連付け、当該実データについて何番目の書込単位かを表す第1フラグ情報を前記ヘッダ領域に書き込んだ後、前記データ領域に対して当該書込単位の実データの書込を行い、該実データの書込が正常に終了したことを検知したときは、書込終了を表す第2フラグ情報を前記第1フラグ情報と関連付けて前記ヘッダ領域に書き込む書込手段、および、
前記実データについての前記ヘッダ領域を、前記最後の書込単位から逆順に参照し、前記最後の書込単位のヘッダ領域に前記第2フラグ情報が書き込まれておらず、あるいは前記最後の書込単位のヘッダ領域に前記第2フラグ情報が書き込まれていても前記第1フラグ情報が最後の書込単位のものでない場合は、前記1又は複数の書込単位分のデータ領域に既に書き込まれているすべての実データを無効なデータとして扱う読込手段として機能させ、
更に、前記書込手段を、前記無効データが書き込まれているデータ領域および前記ヘッダ領域の書込状態を保持したまま、書込対象となる新たな実データを取得し、取得した新たな実データのサイズを書き込むための前記データ領域を新たに確保するよう機能させる、
コンピュータプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008150479A JP5273780B2 (ja) | 2008-06-09 | 2008-06-09 | メモリアクセス制御方法及びメモリ制御装置、コンピュータプログラム |
US12/867,584 US8595413B2 (en) | 2008-02-20 | 2008-12-09 | Memory control method and device, memory access control method, computer program, and recording medium |
PCT/JP2008/072724 WO2009104330A1 (ja) | 2008-02-20 | 2008-12-09 | メモリ制御方法及び装置、メモリアクセス制御方法、コンピュータプログラム、記録媒体 |
CN2008801281804A CN101978361B (zh) | 2008-02-20 | 2008-12-09 | 存储器控制方法以及装置、存储器访问控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008150479A JP5273780B2 (ja) | 2008-06-09 | 2008-06-09 | メモリアクセス制御方法及びメモリ制御装置、コンピュータプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009295089A JP2009295089A (ja) | 2009-12-17 |
JP5273780B2 true JP5273780B2 (ja) | 2013-08-28 |
Family
ID=41543189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008150479A Active JP5273780B2 (ja) | 2008-02-20 | 2008-06-09 | メモリアクセス制御方法及びメモリ制御装置、コンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5273780B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101739386B1 (ko) * | 2010-08-23 | 2017-05-24 | 엘지전자 주식회사 | 메모리 장치 및 그 제어 방법 |
JP5451682B2 (ja) * | 2011-05-20 | 2014-03-26 | 株式会社東海理化電機製作所 | フラッシュメモリ装置 |
CN117707434B (zh) * | 2024-02-02 | 2024-05-17 | 深圳曦华科技有限公司 | 一种Flash的数据写入方法、装置、车辆以及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5200959A (en) * | 1989-10-17 | 1993-04-06 | Sundisk Corporation | Device and method for defect handling in semi-conductor memory |
JPH10320984A (ja) * | 1997-05-15 | 1998-12-04 | Sharp Corp | 記憶装置 |
JP3863479B2 (ja) * | 2002-10-30 | 2006-12-27 | Necトーキン株式会社 | Icカード |
JP2008077669A (ja) * | 2007-10-09 | 2008-04-03 | Mitsubishi Electric Corp | 記録方式 |
-
2008
- 2008-06-09 JP JP2008150479A patent/JP5273780B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2009295089A (ja) | 2009-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3692313B2 (ja) | 不揮発性メモリの制御方法 | |
US8595413B2 (en) | Memory control method and device, memory access control method, computer program, and recording medium | |
JP4037605B2 (ja) | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 | |
KR20050069925A (ko) | 비휘발성 기억장치의 제어방법 | |
JP2004127185A (ja) | メモリカード | |
JP2007133487A (ja) | ファイル管理方法、装置、およびプログラム | |
JP2008033801A (ja) | メモリデータ管理装置 | |
KR100370893B1 (ko) | 일괄 소거형 비휘발성 메모리 장치 | |
US20050278480A1 (en) | Method of writing data into flash memory | |
JPH10124384A (ja) | 不揮発性半導体メモリの制御方法 | |
JP5273780B2 (ja) | メモリアクセス制御方法及びメモリ制御装置、コンピュータプログラム | |
JP2005115561A (ja) | フラッシュrom制御装置 | |
JP5066894B2 (ja) | 記憶媒体制御装置 | |
JP2009093528A (ja) | メモリデータ管理装置 | |
JP4794530B2 (ja) | 半導体装置および携帯電話 | |
JP4826232B2 (ja) | 情報処理装置およびブートプログラムの書き換え方法 | |
US6646917B1 (en) | Storage device managing nonvolatile memory by converting logical address to physical address of nonvolatile memory | |
JP4513786B2 (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 | |
JP3826115B2 (ja) | 記憶装置、メモリ管理方法及びプログラム | |
JP2004078902A (ja) | 記憶装置、メモリ管理方法及びプログラム | |
JP6040895B2 (ja) | マイクロコンピュータ及び不揮発性メモリのブロック管理方法 | |
JP2009276883A (ja) | 半導体補助記憶装置 | |
JP2010092113A (ja) | 記憶装置、電子装置、および、データ管理方法 | |
US7313648B2 (en) | Corruption tolerant method and system for deploying and modifying data in flash memory | |
JP3978720B2 (ja) | データ記憶方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100714 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100818 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20101125 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20110111 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110304 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130205 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130325 |
|
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: 20130416 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130510 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5273780 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |