JP4748708B2 - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP4748708B2
JP4748708B2 JP2005080453A JP2005080453A JP4748708B2 JP 4748708 B2 JP4748708 B2 JP 4748708B2 JP 2005080453 A JP2005080453 A JP 2005080453A JP 2005080453 A JP2005080453 A JP 2005080453A JP 4748708 B2 JP4748708 B2 JP 4748708B2
Authority
JP
Japan
Prior art keywords
data
block
identifier
controller
section
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
Application number
JP2005080453A
Other languages
English (en)
Other versions
JP2006260468A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2005080453A priority Critical patent/JP4748708B2/ja
Priority to US11/377,434 priority patent/US7610436B2/en
Priority to CNB2006100596617A priority patent/CN100517270C/zh
Publication of JP2006260468A publication Critical patent/JP2006260468A/ja
Priority to HK06114107.5A priority patent/HK1094050A1/xx
Application granted granted Critical
Publication of JP4748708B2 publication Critical patent/JP4748708B2/ja
Active 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

Landscapes

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

Description

本発明は、半導体装置に関し、特に、フラッシュメモリを備える半導体装置に関する。
近年、フラッシュメモリとEEPROM(Electrically Erasable Programmable Read Only Memory)の両方が組み込まれている半導体装置が一般的になっている(例えば、特許文献1参照)。このようなフラッシュメモリとEEPROMとの両方が組み込まれている半導体装置においては、記憶させる内容に応じて、フラッシュメモリとEEPROMとが使い分けられていた。これは、フラッシュメモリにデータを書き込む場合、ブロック単位でデータを消去してからでないと、任意のデータが書き込めないためである。
特開2002−334024号公報
しかしながら、電子機器にフラッシュメモリとEEPROMの両方を搭載することは、コストの観点からみれば大きなデメリットである。従って、フラッシュメモリをEEPROMのように扱うことができる技術が望まれている。
以下に、[発明を実施するための最良の形態]で使用される番号・符号を用いて、[課題を解決するための手段]を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明に係る半導体装置(1)は、複数のブロックを有するフラッシュメモリ(3)と、フラッシュメモリ(3)にアクセス可能なコントローラ(2,4)とを備える。複数のブロックは、第1ブロック(10)と第2ブロック(20)を有する。第1ブロック(10)は、複数種類のデータ(D1〜D3)のそれぞれに関して、種類を示す識別子(ID1〜ID3)とデータ長とを対応付けて格納する。第2ブロック(20)は、複数の使用データを、複数の使用データのそれぞれの識別子(ID1〜ID3)と共に格納する。また、第2ブロック(20)は、連続する複数のセクション(21〜27)を有する。複数のセクション(21〜27)のそれぞれは、1つの使用データと、その1つの使用データの識別子を格納する。
第2ブロック(20)にアクセスする際、コントローラ(2,4)は「スキップ処理」を行う。このスキップ処理において、コントローラ(2,4)は、複数のセクション(21〜27)の中の第1セクションにアクセスし、第1セクションに格納された識別子(ID)を読み出す。次に、コントローラ(2,4)は、第1ブロック(10)を参照することによって、読み出された識別子(ID)に対応するデータ長を取得する。そして、コントローラ(2,4)は、取得したデータ長に基づいて、第1セクションの次に位置する第2セクションにアクセスする。
第2ブロック(20)に新たな使用データを書き込む際、コントローラ(2,4)は、上記スキップ処理を繰り返すことによって、第2ブロック(20)のうちデータがイレースされている空き領域(30)を検索する。そして、コントローラ(2,4)は、検索された空き領域(30)に、新たな使用データと新たな使用データに対応する識別子(ID)を書き込むことによって、新たなセクションを形成する。
一方、第2ブロック(20)から複数種類のデータのうち第1データを読み出す際も、コントローラ(2,4)は、上記スキップ処理を繰り返す。各々のスキップ処理において、読み出された識別子(ID)が第1データに対応する識別子(ID)である場合、コントローラ(2,4)は、該当するセクションのアドレスによって読み出し対象アドレスを更新する。そして、コントローラ(2,4)は、第2ブロック(20)のうちデータがイレースされている空き領域(30)にアクセスした時点での読み出し対象アドレスを参照して、第1データを読み出す。
EEPROMの場合、あるユーザアプリケーションの使用データを扱うためには、1つのセクションだけ用いられればよい。つまり、あるセクションに使用データが格納され、その使用データが消去された後に、そのセクションに新たな使用データが書き込まれればよい。しかしながら、フラッシュメモリ(3)の場合、消去はブロック単位で行われるので、1つのセクションに格納されたデータだけを消去するわけにはいかない。
本発明によれば、あるセクションに格納されたデータが書き換えられる代わりに、新たなデータは、空き領域(30)に追加的に書き込まれていく。また、読み出し動作時には、最も直近に書き込まれた読み出し対象データが読み出されている。ここで、セクション毎に使用データと共に格納される識別子(ID)が、効果的に利用されている。すなわち、セクション毎に格納された識別子を順番に参照することによって、最も後ろのアドレスに格納された読み出し対象データを見つけ出すことが可能となる。
このように、本発明によれば、1つのアプリケーション毎に、使用データが書き込まれ、また、読み出されている。つまり、フラッシュメモリ(3)の外から見れば、1つのアプリケーション毎に使用データが更新されているかのように見える。従って、本発明によれば、フラッシュメモリ(3,8)を、EEPROMのように扱うことが可能となる。
本発明に係る半導体装置によれば、フラッシュメモリをEEPROMのように扱うことが可能となる。
本発明に係る半導体装置によれば、フラッシュメモリの書き換え可能回数が増加する。
本発明に係る半導体装置によれば、フラッシュメモリへのデータの書き込み時間が短縮される。
添付図面を参照して、本発明による半導体装置を説明する。
1.構成
図1は、本発明に係る半導体装置の構成を示すブロック図である。半導体装置1は、CPU2、フラッシュメモリ3、フラッシュコントローラ4、RAM5、及び周辺マクロ6を備えている。フラッシュコントローラ4は、フラッシュメモリ3に対する読み書きを制御する。CPU2は、RAM5と周辺マクロ6にアクセス可能であり、また、フラッシュコントローラ4を介してフラッシュメモリ3にアクセス可能である。ユーザプログラムは、CPU2により実行される。フラッシュメモリ3は、各種データやプログラムを格納するためのプログラム領域7に加えて、EEPROM代替領域8を有している。本発明によれば、このEEPROM代替領域8が、EEPROMの代替として用いられる。
図2は、本発明に係る半導体装置1に搭載されたフラッシュメモリ3の構成を示す概念図である。図2に示されるように、フラッシュメモリ3は、複数のブロックB0、B1、B2・・・を有している。フラッシュメモリ3においては、この1つのブロックが消去単位となる。これら複数のブロックのうちいくつかのブロックが、本発明に係るEEPROM代替領域8として用いられる。具体的には、EEPROM代替領域8は、データ長格納領域10とデータ格納領域20から構成されている。
データ長格納領域10として、複数のブロックB0、B1・・・のうち少なくとも1つのブロックが用いられる。例えば図2において、ブロックBlがデータ長格納領域10として用いられている。本発明において、複数のユーザプログラムのそれぞれに対応して複数種類のデータが用いられるとする。データ長格納領域10としてのブロックBlは、それら複数種類のデータのそれぞれに関して、識別子とデータ長とを対応付けて格納している。つまり、ブロックBlは、複数種類のデータに関して、識別子とデータ長との対応関係を一括管理している。この識別子は、データの種類を識別するためのIDである。
以下の説明において、簡単のため、3種類のデータD1〜D3が用いられるとする。それらデータD1〜D3のそれぞれを識別するために、識別子ID1〜ID3が用いられるとする。また、3種類のデータD1〜D3のデータ長は、それぞれ2バイト、2バイト、4バイトであるとする。この時、図2に示されるように、データ長格納領域10としてのブロックBlには、データD1の識別子(ID1)と、データD1のデータ長(2バイト)とが関連付けられて格納される。また、ブロックBlには、データD2の識別子(ID2)と、データD2のデータ長(2バイト)とが関連付けられて格納される。更に、ブロックBlには、データD3の識別子(ID3)と、データD3のデータ長(4バイト)とが関連付けられて格納される。
また、データ格納領域20として、複数のブロックB0、B1・・・のうち少なくとも1つのブロックが用いられる。例えば図2において、ブロックBm〜Bnがデータ格納領域20として用いられている。データ格納領域20の各々のブロックは、複数のデータ(使用データ)を格納するために用いられる。ここで、各ブロックは、複数の使用データを、対応する上記識別子と共に格納する。
例として、図2には、ブロックBmの内容が示されている。この1つのブロックBmは、複数のセクション(21〜27・・・)に区分され得る。各セクションには、1つの使用データと、その使用データに対応する識別子が格納されている。例えば、セクション21には、2バイトのデータD1−1と共に、データD1の識別子ID1が格納されている。セクション22には、2バイトのデータD2−1と共に、データD2の識別子ID2が格納されている。セクション23には、4バイトのデータD3−1と共に、データD3の識別子ID3が格納されている。セクション24には、2バイトのデータD1−2と共に、データD1の識別子ID1が格納されている。セクション25には、4バイトのデータD3−2と共に、データD3の識別子ID3が格納されている。セクション26には、2バイトのデータD2−2と共に、データD2の識別子ID2が格納されている。セクション27には、2バイトのデータD2−3と共に、データD2の識別子ID2が格納されている。
これら複数のセクション21〜27は、ブロックBmの先頭アドレスから順番に配置されている。すなわち、ブロックBmは連続する複数のセクションを有し、その複数のセクションのそれぞれは、1つの使用データ(D)と、その1つの使用データの識別子(ID)を格納している。また、図2に示されるように、各々のセクションにおいて、識別子(ID)は先頭アドレスに格納され、1つの使用データ(D)は先頭アドレスに続くアドレスに格納されると好適である。
以上に示されたデータ長格納領域10とデータ格納領域20が、本発明に係るEEPROM代替領域8を構成する。後に示されるように、データ長格納領域10とデータ格納領域20を用いることによって、フラッシュメモリ3中のEEPROM代替領域8を、EEPROMのように扱うことが可能となる。
尚、図1に示されたCPU2、フラッシュメモリ3、フラッシュコントローラ4、RAM5、周辺マクロ6は、1チップ上に構成されていてもよい。その場合、半導体装置1は、マイクロコンピュータである。
2.動作
図1に示されたCPU2あるいはフラッシュコントローラ4によって、フラッシュメモリ3(EEPROM代替領域8)に対する書き込み・読み出し動作が実行される。まず、既出の図1を参照することによって、書き込み・読み出し動作を概略的に説明する。
書き込み時、ユーザプログラムやそれによって設定された周辺マクロ6等から、CPU2へトリガが入る。これにより、外部センサ値や周辺マクロ6の状態などが、RAM5中の特定の領域に格納される。次に、ファームウェアやユーザプログラムにより、EEPROM代替領域8中で、データが書き込まれる適当な位置が検索される。そして、フラッシュコントローラ4により、RAM5の特定領域に格納されているデータが、フラッシュメモリ3のEEPROM代替領域8の適当な箇所に書き込まれる。データの書き込みが終了すると、フラッシュコントローラ4は、CPU2に書き込みが終了したことを通知する。
読み出し時、ユーザプログラムやそれによって設定された周辺マクロ6等からトリガが入る。次に、ファームウェアやユーザプログラムにより、EEPROM代替領域8中で、最新のデータが書き込まれている位置が検索される。そして、CPU2が、フラッシュメモリ3のEEPROM代替領域8から、必要なデータを読み出す。
以下、本発明に係る書き込み動作および読み出し動作が詳細に説明される。
(書き込み動作)
図3は、本発明に係る書き込み動作を示すフローチャートである。また、図4は、書き込み動作の一例を示している。この例において、データ格納領域20としてのブロックBmのセクション21〜24には、それぞれデータD1−1、データD2−1、データD3−1、及びデータD1−2が既に格納されているとする。また、セクション24に続く領域には、データが書き込まれていないとする。そのセクション24に続く領域は、空き領域(未書き込み領域)30と参照される。このような状態のブロックBmに、新たなデータD3−2が書き込まれる場合を考える。
まず、CPU2あるいはフラッシュコントローラ4(以下、コントローラと参照される)は、ブロックBmの先頭アドレス、すなわちセクション21の先頭アドレスにアクセスする(ステップS10)。そして、コントローラは、そのセクション21の先頭アドレスに格納された識別子を読み込む(ステップS11)。この時、そのセクション21の先頭アドレスのデータは、イレース状態を示す“1”(“FFH”)ではなく、データD1の識別子ID1である(ステップS12;No)。
次に、コントローラは、データ長格納領域10(図2参照)に格納されたデータ長テーブルを参照する。それにより、コントローラは、読み出された識別子ID1に対応するデータ長(2バイト)を取得する(ステップS13)。次に、コントローラは、取得したデータ長(2バイト)に基づいて、次のセクション22の先頭アドレス、すなわち3バイト先のアドレスにアクセスする(ステップS14)。
続いて、コントローラは、セクション22の先頭アドレスに格納された識別子を読み込む(ステップS11)。そのセクション22の先頭アドレスのデータは、データD2の識別子ID2である(ステップS12;No)。よって、コントローラは、データ長格納領域10を参照し、読み出された識別子ID2に対応するデータ長(2バイト)を取得する(ステップS13)。そして、コントローラは、取得したデータ長(2バイト)に基づいて、次のセクション23の先頭アドレス、すなわち3バイト先のアドレスにアクセスする(ステップS14)。
以下、同様な処理が繰り返される。これら繰り返されるステップS11〜S14は、以下、「スキップ処理」と参照される。本発明に係るコントローラは、各セクションに格納された識別子(ID)と、データ長格納領域10で一括管理されているデータ長とに基づいて、スキップ処理を繰り返し実行する。これにより、ブロックBmの先頭アドレスから、セクション22、23、24の先頭アドレスに対して順番にアクセスが行われる。
コントローラは、セクション24の先頭アドレスの次に、3バイト先のアドレスに格納されたデータを読み込む(ステップS11)。この時、図4に示されるように、そのアドレスのデータは、イレース状態を示す“1”(“FFH”)である(ステップS12;Yes)。よって、コントローラは、そのアドレスが空き領域30の先頭アドレスであると判定(認識)し、その空き領域30に、新たなデータD3−2とその新たなデータD3−2の識別子ID3を書き込む(ステップS15)。具体的には、コントローラは、空き領域30の先頭アドレスに識別子ID3を書き込み、その先頭アドレスに続くアドレスに新たなデータD3−2(4バイト)を書き込む。
このように、本発明に係るコントローラは、「スキップ処理」を繰り返すことによって、データ格納領域20のうちデータがイレースされている空き領域30を検索する。そして、コントローラは、検索された空き領域30に、新たなデータとその識別子を書き込む。これにより、新たなセクション25が形成される。ブロックBmが使用データで一杯になった場合、コントローラは、データ格納領域20の他のブロック(例えば、ブロックBn)に、新たな使用データを書き込む。また、最新の格納データは、そのブロックBnにコピーされる。使用データで一杯になったブロックBmに対しては、一括消去が実行されればよい。
(読み出し動作)
図5は、本発明に係る読み出し動作を示すフローチャートである。また、図6は、読み出し動作の一例を示している。この例において、データ格納領域20としてのブロックBmのセクション21〜25には、それぞれデータD1−1、データD2−1、データD3−1、データD1−2、データD3−2が格納されているとする。また、セクション25に続く領域には、空き領域(未書き込み領域)30であるとする。このような状態のブロックBmから、複数種類のデータのうち、データD1(読み出し対象データ)が読み出される場合を考える。
まず、コントローラは、ブロックBmの先頭アドレス、すなわちセクション21の先頭アドレスにアクセスする(ステップS20)。そして、コントローラは、そのセクション21の先頭アドレスに格納された識別子を読み込む(ステップS21)。この時、そのセクション21の先頭アドレスのデータは、イレース状態を示す“1”(“FFH”)ではなく、データD1の識別子ID1である(ステップS22;No)。
次に、コントローラは、読み出された識別子が、読み出し対象データに対応する識別子であるかどうか判定する(ステップS23)。この場合、読み出された識別子はID1であり、読み出し対象データはデータD1である。従って、コントローラは、読み出された識別子が、読み出し対象データの識別子であると判定する(ステップS23;Yes)。そして、コントローラは、セクション21の先頭アドレスを、「読み出し対象アドレス」として、RAM5に格納する(ステップS24)。
また、コントローラは、データ長格納領域10(図2参照)に格納されたデータ長テーブルを参照する。それにより、コントローラは、読み出された識別子ID1に対応するデータ長(2バイト)を取得する(ステップS25)。次に、コントローラは、取得したデータ長(2バイト)に基づいて、次のセクション22の先頭アドレス、すなわち3バイト先のアドレスにアクセスする(ステップS26)。
続いて、コントローラは、セクション22の先頭アドレスに格納された識別子を読み込む(ステップS21)。そのセクション22の先頭アドレスのデータは、データD2の識別子ID2である(ステップS22;No)。この場合、読み出された識別子ID2は、読み出し対象データD1の識別子ではない(ステップS23;No)。よって、ステップS24は実行されない。コントローラは、データ長格納領域10を参照し、読み出された識別子ID2に対応するデータ長(2バイト)を取得する(ステップS25)。そして、コントローラは、取得したデータ長(2バイト)に基づいて、次のセクション23の先頭アドレス、すなわち3バイト先のアドレスにアクセスする(ステップS26)。
以下、同様な処理が繰り返される。これら繰り返されるステップS21〜S26は、読み出し動作における「スキップ処理」である。本発明に係るコントローラは、各セクションに格納された識別子(ID)と、データ長格納領域10で一括管理されているデータ長とに基づいて、スキップ処理を繰り返し実行する。各スキップ処理において、読み出された識別子が読み出し対象データD1の識別子かどうか判定される(ステップS23)。これにより、コントローラは、アクセス中のセクションが読み出し対象データを格納しているかどうか認識することができる。例えば、セクション24の先頭アドレスにアクセスした際、コントローラは、読み出された識別子ID1によって、そのセクション24が読み出し対象データD1を格納していることを認識する。この場合、そのセクション24の先頭アドレスによって、RAM5に格納されている読み出し対象アドレスを更新する(ステップS24)。
コントローラは、セクション25の先頭アドレスの次に、5バイト先のアドレスに格納されたデータを読み込む(ステップS21)。この時、図6に示されるように、そのアドレスのデータは、イレース状態を示す“1”(“FFH”)である(ステップS22;Yes)。よって、コントローラは、そのアドレスが空き領域30の先頭アドレスであると判定(認識)する。この時点でRAM5に保持されている読み出し対象アドレスは、最新のデータD1(D1−2)が格納されているアドレスを指し示している。従って、コントローラは、現時点での読み出し対象アドレスを参照し、セクション24から、最新の読み出し対象データであるデータD1−2を読み出す(ステップS27)。
このように、本発明に係るコントローラは、「スキップ処理」を繰り返すことによって、データ格納領域20のうちデータがイレースされている空き領域30を検索する。また、このスキップ処理と同時に、コントローラは、読み出された識別子を参照することによって、読み出し対象アドレスを更新する。これにより、コントローラは、最新の読み出し対象データが格納されているセクションを見つけ出すことが可能となる。
3.効果
EEPROMの場合、あるユーザアプリケーションの使用データを扱うためには、1つのセクションだけ用いられればよい。つまり、あるセクションに使用データが格納され、その使用データが消去された後に、そのセクションに新たな使用データが書き込まれればよい。しかしながら、フラッシュメモリの場合、消去はブロック単位で行われるので、1つのセクションに格納されたデータだけを消去するわけにはいかない。
本発明によれば、あるセクションに格納されたデータが書き換えられる代わりに、新たなデータは、空き領域30に追加的に書き込まれていく。また、上述の通り、読み出し動作時には、最も直近に書き込まれた読み出し対象データが読み出されている。ここで、セクション毎に使用データと共に格納される識別子(ID)が、効果的に利用されている。すなわち、セクション毎に格納された識別子を順番に参照することによって、最も後ろのアドレスに格納された読み出し対象データを見つけ出すことが可能となる。
このように、本発明によれば、1つのアプリケーション毎に、使用データが書き込まれ、また、読み出されている。つまり、フラッシュメモリ3の外から見れば、1つのアプリケーション毎に使用データが更新されているかのように見える。従って、本発明によれば、フラッシュメモリ3(EEPROM代替領域8)を、EEPROMのように扱うことが可能となる。
また、本発明によれば、識別子とデータ長との対応関係が、データ長格納領域10に格納されている。あるセクションから読み出された識別子に対応するデータ長を参照することによって、コントローラは、次のセクションに素早くアクセスすることができる。すなわち、識別子に基づく「スキップ処理」によって、データ格納領域20へのアクセス処理を高速化することが可能となる。
ここで、使用データと共に識別子とデータ長を、“セクション毎”に格納する手法が考えられる。しかしながら、この手法によれば、各セクションのサイズがデータ長を示す情報分だけ大きくなってしまい、また、データ長を示す情報が冗長となる。本発明によれば、データ長格納領域10が、識別子とデータ長との対応関係を、“一括して”管理している。従って、各セクションのサイズが縮小される。また、データ長を示す情報の冗長性が解消される。このように、本発明に係るフラッシュメモリ3において、1つのブロック中の領域が有効に利用されている。
1つのブロック中の領域が有効に利用されることにより、更に、次のような効果が得られる。本発明において、フラッシュメモリ3をEEPROMのように扱うために、新たなデータは、空き領域30に追加的に書き込まれていく。よって、各セクションのサイズが縮小されることは、1つのブロックが一杯になるまでのデータの書き込み回数が増加することを意味する。使用データで一杯になったブロックは、一括消去が行われた後、再度利用される。よって、多数の書き込み処理が行われる場合、あるブロックは繰り返し使用される。ここで、あるブロックが一杯になるまでの書き込み回数が増加すると、多数回の書き込みが行われる際のそのブロックの使用頻度は減少する。使用頻度が減少するため、データ格納領域20におけるフラッシュメモリセルの寿命が延びる。すなわち、本発明によれば、フラッシュメモリの“書き換え可能回数”が増加する。
更に、本発明によれば、1種類のデータ毎に書き込みが行われる。データ更新のたびに全種類のデータを書き込む必要はない。従って、フラッシュメモリ3へのデータの書き込み時間が短縮される。また、上述の通り、1つのセクション毎にデータ長が格納される場合と比較して、各セクションのサイズは縮小している。これによっても、データの書き込み時間が短縮される。
本発明に係るフラッシュメモリ3が使用される場合、半導体装置1の信頼性が向上し、また使用可能なアプリケーションも増加する。
図1は、本発明に係る半導体装置の構成を示すブロック図である。 図2は、本発明に係る半導体装置に搭載されたフラッシュメモリの構成を示す概念図である。 図3は、本発明に係る半導体装置における書き込み動作を示すフローチャートである。 図4は、本発明に係る半導体装置における書き込み動作の一例を示す図である。 図5は、本発明に係る半導体装置における読み出し動作を示すフローチャートである。 図6は、本発明に係る半導体装置における読み出し動作の一例を示す図である。
符号の説明
1 半導体装置
2 CPU
3 フラッシュメモリ
4 フラッシュコントローラ
5 RAM
6 周辺マクロ
7 プログラム領域
8 EEPROM代替領域
10 データ長格納領域
20 データ格納領域
21〜27 セクション
30 空き領域

Claims (6)

  1. 複数のブロックを有するフラッシュメモリと、
    前記フラッシュメモリにアクセス可能なコントローラと
    を具備し、
    前記複数のブロックは、
    複数種類のデータのそれぞれに関して、種類を示す識別子とデータ長とを対応付けて格納する第1ブロックと、
    複数の使用データを、前記複数の使用データのそれぞれの前記識別子と共に格納する第2ブロックと
    を有し、
    前記第2ブロックは、連続する複数のセクションを有し、
    前記複数のセクションのそれぞれは、前記複数の使用データの1つと前記1つの使用データの前記識別子を格納し、
    前記第2ブロックにアクセスする際、前記コントローラはスキップ処理を行い、
    前記スキップ処理において、前記コントローラは、前記複数のセクションの中の第1セクションにアクセスし、前記第1セクションに格納された前記識別子を読み出し、前記第1ブロックを参照することによって、前記読み出された識別子に対応する前記データ長を取得し、前記取得したデータ長に基づいて、前記第1セクションの次に位置する第2セクションにアクセスし、
    前記第2ブロックから前記複数種類のデータのうち第1データを読み出す際、前記コントローラは、前記スキップ処理を繰り返し、
    各々の前記スキップ処理において、前記読み出された識別子が前記第1データに対応する前記識別子である場合、前記コントローラは、該当するセクションのアドレスによって読み出し対象アドレスを更新し、
    前記コントローラは、前記第2ブロックのうちデータがイレースされている空き領域にアクセスした時点での前記読み出し対象アドレスを参照して、前記第1データを読み出す
    半導体装置。
  2. 複数のブロックを有するフラッシュメモリと、
    前記フラッシュメモリにアクセス可能なコントローラと
    を具備し、
    前記複数のブロックは、
    複数種類のデータのそれぞれに関して、種類を示す識別子とデータ長とを対応付けて格納する第1ブロックと、
    複数の使用データを、前記複数の使用データのそれぞれの前記識別子と共に格納する第2ブロックと
    を有し、
    前記第2ブロックは、連続する複数のセクションを有し、
    前記複数のセクションのそれぞれは、前記複数の使用データの1つと前記1つの使用データの前記識別子を格納し、
    前記複数のセクションの各々において、前記識別子は先頭アドレスに格納され、前記1つの使用データは前記先頭アドレスに続くアドレスに格納され、
    前記第2ブロックにアクセスする際、前記コントローラはスキップ処理を行い、
    前記スキップ処理において、前記コントローラは、前記複数のセクションの中の第1セクションの前記先頭アドレスにアクセスし、前記第1セクションの前記先頭アドレスに格納された前記識別子を読み出し、前記第1ブロックを参照することによって、前記読み出された識別子に対応する前記データ長を取得し、前記取得したデータ長に基づいて、前記第1セクションの次に位置する第2セクションの前記先頭アドレスにアクセスし、
    前記第2ブロックから前記複数種類のデータのうち第1データを読み出す際、前記コントローラは、前記第2ブロックの先頭アドレスに格納された前記識別子を読み出し、前記スキップ処理を繰り返し、
    各々の前記スキップ処理において、前記読み出された識別子が前記第1データに対応する前記識別子である場合、前記コントローラは、該当するセクションの前記先頭アドレスによって読み出し対象アドレスを更新し、
    前記コントローラは、前記第2ブロックのうちデータがイレースされている空き領域にアクセスした時点での前記読み出し対象アドレスを参照して、前記第1データを読み出す
    半導体装置。
  3. 請求項に記載の半導体装置であって、
    前記第2ブロックに新たな使用データを書き込む際、
    前記コントローラは、
    前記スキップ処理を繰り返すことによって、前記第2ブロックのうちデータがイレースされている空き領域を検索し、
    前記検索された空き領域に、前記新たな使用データと前記新たな使用データに対応する前記識別子を書き込むことによって、新たなセクションを形成する
    半導体装置。
  4. 請求項に記載の半導体装置であって、
    前記第2ブロックに新たな使用データを書き込む際、
    前記コントローラは、
    前記第2ブロックの先頭アドレスに格納された前記識別子を読み出し、前記スキップ処理を繰り返すことによって、前記第2ブロックのうちデータがイレースされている空き領域を検索し、
    前記検索された空き領域に、前記新たな使用データと前記新たな使用データに対応する前記識別子を書き込むことによって、新たなセクションを形成する
    半導体装置。
  5. 請求項3又は4に記載の半導体装置であって、
    前記複数のブロックは他の第2ブロックを更に有し、
    前記第2ブロックがデータで満たされた場合、前記コントローラは、前記他の第2ブロックに前記新たな使用データを書き込む
    半導体装置。
  6. 請求項1乃至のいずれかに記載の半導体装置であって、
    前記フラッシュメモリ及び前記コントローラは、1つのマイクロコンピュータチップに形成された
    半導体装置。
JP2005080453A 2005-03-18 2005-03-18 半導体装置 Active JP4748708B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005080453A JP4748708B2 (ja) 2005-03-18 2005-03-18 半導体装置
US11/377,434 US7610436B2 (en) 2005-03-18 2006-03-17 Semiconductor device having flash memory with a data length table
CNB2006100596617A CN100517270C (zh) 2005-03-18 2006-03-17 具有闪存的半导体设备
HK06114107.5A HK1094050A1 (en) 2005-03-18 2006-12-22 Semiconductor device having flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005080453A JP4748708B2 (ja) 2005-03-18 2005-03-18 半導体装置

Publications (2)

Publication Number Publication Date
JP2006260468A JP2006260468A (ja) 2006-09-28
JP4748708B2 true JP4748708B2 (ja) 2011-08-17

Family

ID=37002693

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005080453A Active JP4748708B2 (ja) 2005-03-18 2005-03-18 半導体装置

Country Status (4)

Country Link
US (1) US7610436B2 (ja)
JP (1) JP4748708B2 (ja)
CN (1) CN100517270C (ja)
HK (1) HK1094050A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101978361B (zh) 2008-02-20 2013-06-05 索尼电脑娱乐公司 存储器控制方法以及装置、存储器访问控制方法
JP2010026794A (ja) * 2008-07-18 2010-02-04 Sony Computer Entertainment Inc メモリ制御装置及び方法、コンピュータプログラム
JP2010020586A (ja) 2008-07-11 2010-01-28 Nec Electronics Corp データ処理装置
JP2011002945A (ja) * 2009-06-17 2011-01-06 Renesas Electronics Corp 半導体装置
WO2011007511A1 (ja) * 2009-07-16 2011-01-20 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム
JP2011154547A (ja) * 2010-01-27 2011-08-11 Toshiba Corp メモリ管理装置及びメモリ管理方法
US8321626B2 (en) * 2010-03-31 2012-11-27 Gainspan Corporation Management of configuration data using persistent memories requiring block-wise erase before rewriting
JP5366159B2 (ja) * 2011-09-06 2013-12-11 ルネサスエレクトロニクス株式会社 半導体装置及びマイクロコンピュータ
JP2015082166A (ja) * 2013-10-22 2015-04-27 ルネサスエレクトロニクス株式会社 データ格納用フラッシュメモリの管理方法およびそのプログラム
CN109086004A (zh) * 2018-07-19 2018-12-25 江苏华存电子科技有限公司 一种闪存中块类型的识别方法
WO2020124609A1 (zh) * 2018-12-22 2020-06-25 华为技术有限公司 一种处理芯片、方法及相关设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09231113A (ja) * 1995-12-22 1997-09-05 Dainippon Printing Co Ltd Icカード
JP3954698B2 (ja) * 1997-08-29 2007-08-08 パナソニック コミュニケーションズ株式会社 メモリー制御装置
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
JP2002244935A (ja) * 2001-02-20 2002-08-30 Mitsubishi Electric Corp 記憶管理装置および記憶管理方法
JP2002334024A (ja) 2001-05-11 2002-11-22 Denso Corp 電子制御装置
JP2004164493A (ja) * 2002-11-15 2004-06-10 Wescom Inc 不揮発性メモリのデータ管理システム、不揮発性メモリのデータ管理方法、およびそのプログラム
JP4419415B2 (ja) * 2003-03-28 2010-02-24 三菱電機株式会社 記録方式
JP4213532B2 (ja) * 2003-07-15 2009-01-21 株式会社東芝 不揮発性半導体記憶装置

Also Published As

Publication number Publication date
HK1094050A1 (en) 2007-03-16
US7610436B2 (en) 2009-10-27
JP2006260468A (ja) 2006-09-28
US20060212646A1 (en) 2006-09-21
CN100517270C (zh) 2009-07-22
CN1834941A (zh) 2006-09-20

Similar Documents

Publication Publication Date Title
JP4748708B2 (ja) 半導体装置
JP5032172B2 (ja) 統合メモリ管理装置及び方法並びにデータ処理システム
US8381018B2 (en) Method for data recovery for flash devices
US8327064B2 (en) Data processor with flash memory, and method for accessing flash memory
US20140181378A1 (en) Control device, control method, and program
JP2005174279A (ja) フラッシュメモリ、そのためのマッピング制御装置及び方法
US9870826B2 (en) Memory apparatus and data access method thereof by using multiple memories for lifetime extension
TWI450271B (zh) 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
JP2010287049A (ja) メモリシステムおよびメモリシステムの管理方法
JP5695112B2 (ja) データ記憶装置、データの記憶方法および車載用制御装置
CN103389942A (zh) 控制装置、存储装置及存储控制方法
US10248526B2 (en) Data storage device and data maintenance method thereof
KR101826778B1 (ko) 플래쉬 라이프 사이클 및 성능 개선을 고려한 eeprom 에뮬레이션 구현 방법
JP5520098B2 (ja) データ処理方法、プログラムおよびシステム
JP4594944B2 (ja) メモリ制御装置
JP6618941B2 (ja) 管理装置、情報処理装置および管理方法
JP2008047155A (ja) 一括消去型不揮発性メモリおよび携帯電話
JP6040895B2 (ja) マイクロコンピュータ及び不揮発性メモリのブロック管理方法
TWI453747B (zh) 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
JP2009276883A (ja) 半導体補助記憶装置
JP2014112419A (ja) 携帯端末装置、ソフトウェア更新方法、動作制御方法及びプログラム
JP2011215871A (ja) 書き込み装置、書き込み方法、及び書き込みプログラム
JP2009104430A (ja) フラッシュディスク装置
JP2005339450A (ja) フラッシュメモリのデータ管理方式
JP5838783B2 (ja) フラッシュメモリへのデータ書き込み方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110422

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4748708

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350