JP2014182449A - メモリコントローラ - Google Patents
メモリコントローラ Download PDFInfo
- Publication number
- JP2014182449A JP2014182449A JP2013055010A JP2013055010A JP2014182449A JP 2014182449 A JP2014182449 A JP 2014182449A JP 2013055010 A JP2013055010 A JP 2013055010A JP 2013055010 A JP2013055010 A JP 2013055010A JP 2014182449 A JP2014182449 A JP 2014182449A
- Authority
- JP
- Japan
- Prior art keywords
- address
- storage device
- data
- physical address
- nonvolatile memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
【課題】一次記憶装置と二次記憶装置を1種類のメモリに統合する。
【解決手段】実施形態に係わるメモリコントローラは、アドレス変換テーブル19と、アドレス変換テーブル19に基づいて、一次記憶装置にアクセスするための第1の論理アドレスの変換を行い、かつ、二次記憶装置にアクセスするための第2の論理アドレスの変換を行うアドレス変換回路20と、第1の論理アドレスを受けることにより、不揮発メモリ14を一次記憶装置としてアクセスし、第2の論理アドレスを受けることにより、不揮発メモリ14を二次記憶装置としてアクセスする制御回路17とを備える。
【選択図】図1
【解決手段】実施形態に係わるメモリコントローラは、アドレス変換テーブル19と、アドレス変換テーブル19に基づいて、一次記憶装置にアクセスするための第1の論理アドレスの変換を行い、かつ、二次記憶装置にアクセスするための第2の論理アドレスの変換を行うアドレス変換回路20と、第1の論理アドレスを受けることにより、不揮発メモリ14を一次記憶装置としてアクセスし、第2の論理アドレスを受けることにより、不揮発メモリ14を二次記憶装置としてアクセスする制御回路17とを備える。
【選択図】図1
Description
実施形態は、メモリコントローラに関する。
例えば、マイコン、画像処理プロセッサ、音声処理プロセッサなどの計算機システムとしての情報処理装置は、一次記憶装置としてのメインメモリと、二次記憶装置としてのストレージメモリとを備えるのが一般的である。
メインメモリとしては、一般的に、DRAM(Dynamic random access memory)が使用される。また、ストレージメモリとしては、計算機システム内に組み込み易いことから、NANDフラッシュメモリが使用されることが多い。
しかし、情報処理装置内に、メインメモリとストレージメモリという2種類のメモリを設けることは、情報処理装置の低コスト化に不利である。また、メインメモリのDRAMは、揮発性であり、意図しない電源オフによりデータが消滅する、という問題がある。
実施形態は、一次記憶装置と二次記憶装置を1種類のメモリに統合するための技術を提案する。
実施形態によれば、メモリコントローラは、アドレス変換テーブルと、前記アドレス変換テーブルに基づいて、一次記憶装置にアクセスするための第1の論理アドレスの変換を行い、かつ、二次記憶装置にアクセスするための第2の論理アドレスの変換を行うアドレス変換回路と、前記第1の論理アドレスを受けることにより、不揮発メモリを前記一次記憶装置としてアクセスし、前記第2の論理アドレスを受けることにより、前記不揮発メモリを前記二次記憶装置としてアクセスする制御回路とを備える。
以下、図面を参照しながら実施形態を説明する。
1. 基本コンセプト
以下の実施例では、NANDフラッシュメモリなどの不揮発メモリを、一次記憶装置として、及び、二次記憶装置として併用するためのメモリコントローラを提案する。即ち、基本コンセプトは、メインメモリとストレージメモリとを1種類のメモリに統合した情報処理装置(計算機システム)を実現することにある。
以下の実施例では、NANDフラッシュメモリなどの不揮発メモリを、一次記憶装置として、及び、二次記憶装置として併用するためのメモリコントローラを提案する。即ち、基本コンセプトは、メインメモリとストレージメモリとを1種類のメモリに統合した情報処理装置(計算機システム)を実現することにある。
このように、不揮発メモリを一次/二次記憶装置として使用すれば、例えば、メインメモリとしてのDRAMを省略できる。即ち、計算機システムの部品数の削減により、低コスト化を図ることができる。また、不揮発メモリを一次記憶装置として使用することにより作業中のデータが意図しない電源オフにより消滅する、といった事態も防止できる。
但し、この基本コンセプトによる計算機システム内に、メインメモリとしてのDRAMや、キャッシュメモリとしてのSRAM(Static random access memory)などを組み込むことにより、システムの性能向上を図ることも可能である。
また、不揮発メモリを一次/二次記憶装置として使用するとき、ホストからみたときのアクセス制御方法が変更されないことが望ましい。即ち、ホストは、従来と同様に、一次記憶装置と二次記憶装置が存在するものとして(各メモリの種類は認識しない)、アクセス制御を行えるのが望ましい。
そのために、メモリコントローラと、それにより制御される不揮発メモリとを備える不揮発メモリ装置(メモリシステム)を、情報処理装置内に設ける。メモリコントローラは、例えば、SSD(Solid state drive)、メモリカードや、USBメモリなどの既存のNANDコントローラとは異なり、不揮発メモリを一次記憶装置として使用する第1の動作、及び、不揮発メモリを二次記憶装置として使用する第2の動作を、それぞれ共通のメモリコントローラにて制御する。
このようにすれば、従来の計算機システムにおける既存のハードウェア及びソフトウェアを変更することなく、上述のメモリシステムを従来の計算機システムに組み込むだけで、この基本コンセプトによる計算機システムを実現することができるため、システムの開発費を抑えることができる。
さらに、不揮発メモリを一次/二次記憶装置として使用するとき、一次記憶装置及び二次記憶装置間のデータ移動は、同一メモリ(不揮発メモリ)内で行われる。これは、不揮発メモリ内での書き込み/消去回数を、二次記憶装置又は補助記憶装置としてのみ使用される不揮発メモリよりも多くすることを意味する。
そこで、この基本コンセプトによる計算機システムにおいて、例えば、不揮発メモリとして、書き込み/消去回数の制限を持つNANDフラッシュメモリを使用するときは、上述の第1及び第2の動作に伴う不揮発メモリ内でのデータ移動(データコピー)の回数を、できるだけ減らす新たなウェアレベリング(Wear leveling)技術も提案する。
これにより、本システムを使用したときの不揮発メモリ内での書き込み/消去回数を減らし、書き込み/消去回数の制限を持つ不揮発メモリの寿命を延ばすことができる。
2. 情報処理装置
図1は、情報処理装置の主要部を示している。
図1は、情報処理装置の主要部を示している。
情報処理装置(計算機システム)は、演算装置(ホスト)10、不揮発メモリ装置11、及び、これらを接続するバス12を備える。
演算装置10は、プログラム(ソフトウェア)に基づき論理アドレスを生成し、データの読み出し/書き込みを実行する。
不揮発メモリ装置(メモリシステム)11は、一次記憶装置及び二次記憶装置としてデータの保存に使用される。不揮発メモリ装置11は、メモリコントローラ13及び不揮発メモリ14を備える。不揮発メモリ14は、例えば、NANDフラッシュメモリ、MRAM(Magnetic random access memory)、ReRAM(Resistive random access memory)などである。
メモリコントローラ13は、演算装置10からの指示に従い、一次記憶装置及び二次記憶装置としての不揮発メモリ14の動作を制御する。この動作は、読み出し動作、書き込み動作及び消去動作に加え、不揮発メモリ14を一次記憶装置又は二次記憶装置として使用することに起因して発生する新たな動作を含む。
メモリコントローラ13は、アドレス変換モジュール15、不揮発メモリ制御インターフェイス(I/F)16、及び、制御回路17を備える。アドレス変換モジュール15は、バスインターフェイス18−1,18−2、アドレス変換テーブル19、及び、アドレス変換回路20を備える。
不揮発メモリ制御インターフェイス16は、不揮発メモリ14に接続される。例えば、不揮発メモリ14が複数のパッケージを備えるとき、不揮発メモリ制御インターフェイス16は、これら複数のパッケージに対応して複数のチャネルを備えていてもよい。また、複数のパッケージがNANDフラッシュメモリのとき、各パッケージは、SLC(Single level cell)であってもよいし、MLC(Multi level cell)であってもよい。
バスインターフェイス18−1は、一次記憶装置としての不揮発メモリ14内のデータをアクセスするときのインターフェイスである。また、バスインターフェイス18−2は、二次記憶装置としての不揮発メモリ14内のデータをアクセスするときのインターフェイスである。
バスインターフェイス18−1,18−2は、それぞれ、読み出し/書き込みコマンドなどの制御信号又はデータを入力する複数の端子、及び、データを読み出し/書き込みするための論理アドレスを入力する複数の端子を備える。
本例では、不揮発メモリ装置11は、一次記憶装置としてのバスインターフェイス18−1と、二次記憶装置としてのバスインターフェイス18−2とを備える。但し、これに代えて、不揮発メモリ装置11は、一次記憶装置及び二次記憶装置としての共通の1つのバスインターフェイスを備えるようにしてもよい。
アドレス変換テーブル19は、演算装置10からの論理アドレスと、不揮発メモリ14の物理アドレスとの対応関係を記憶する。アドレス変換回路20は、アドレス変換テーブル19に基づいて、論理アドレスから物理アドレスへの変換を行う。
制御回路17は、不揮発メモリ14を一次記憶装置又は二次記憶装置として使用することに起因して発生する新たな動作を制御する。例えば、論理アドレスと物理アドレスとの対応関係を記憶するアドレス変換テーブル19の更新(書き換え)を行う。具体的なアドレス変換テーブル19の更新方法については、実施例で説明する。
以上の情報処理装置によれば、一次記憶装置及び二次記憶装置が1つの不揮発メモリ装置11に統合されるため、計算機システムの部品数の削減により低コスト化を図ることができる。また、不揮発メモリ14を一次記憶装置として使用するか、又は、二次記憶装置として使用するかは、不揮発メモリ装置11内のメモリコントローラ13により制御される。従って、演算装置10は、既存のハードウェア及びソフトウェアによりデータ処理を行うことができるため、システムの開発費を抑えることができる。
3. 実施例
以下の実施例では、図1のメモリコントローラ13による書き込み/読み出しの制御方法について説明する。
以下の実施例では、図1のメモリコントローラ13による書き込み/読み出しの制御方法について説明する。
(1) 二次記憶装置へのデータライト
図2は、二次記憶装置へのデータライトを示している。
図2は、二次記憶装置へのデータライトを示している。
図1の情報処理装置及び図2のフローチャートに基づき、二次記憶装置へのデータライトを説明する。
二次記憶装置にアクセスするための第2の論理アドレスLAxは、例えば、演算装置10からバスインターフェイス18−2を介してアドレス変換回路20に入力される。
制御回路17は、不揮発メモリ14内の物理アドレスPAzに、第2の論理アドレスLAxを割り当てる(ステップST1)。また、例えば、図3に示すように、制御回路17は、物理アドレスPAzに第2の論理アドレスLAxが割り当てられたアドレス変換テーブル19を作成する(ステップST2)。
この後、制御回路17は、不揮発メモリ14の物理アドレスPAzへのアクセスを行い、当該物理アドレスPAzへデータをライトする(ステップST3)。
尚、データのライト(ステップST3)は、アドレス変換テーブルの作成(ステップST2)と並行して行ってもよいし、アドレス変換テーブルの作成(ステップST2)前に行ってもよい。
(2) データリード
図4は、データリードを示している。
図4は、データリードを示している。
図1の情報処理装置及び図4のフローチャートに基づき、データリードを説明する。
まず、二次記憶装置としての不揮発メモリからのデータリードを説明する。
二次記憶装置にアクセスするための第2の論理アドレスLAxは、例えば、演算装置10からバスインターフェイス18−2を介してアドレス変換回路20に入力される。アドレス変換テーブル19は、例えば、図3に示すように、第2の論理アドレスLAxは不揮発メモリ14内の物理アドレス(第1の物理アドレス)PAzに割り当てられた第1の状態を記憶している。
アドレス変換回路20は、アドレス変換テーブル19に基づき、第2の論理アドレスLAxを不揮発メモリ14内の物理アドレスPAzに変換する(ステップST11)。
この後、二次記憶装置へのアクセスが確認されると(ステップST12)、二次記憶装置から一次記憶装置へのデータの移動又はコピーは、実質的なデータの移動又はコピーを行わず、制御回路17は、例えば、図5に示すように、当該物理アドレスPAzに、一次記憶装置にアクセスするための論理アドレス(第1の論理アドレス)LAyを割り当てる(ステップST13)。
また、制御回路17は、アドレス変換テーブル19を、上述の第1の状態から、物理アドレスPAzに、二次記憶装置にアクセスするための第2の論理アドレスLAx及び一次記憶装置にアクセスするための第1の論理アドレスLAyの双方が割り当てられた第2の状態へ、更新する(ステップST14)。
この操作(アドレス変換テーブルの更新)により、不揮発性メモリ14内でのデータの移動又はコピーを行わずに、見かけ上は二次記憶装置から一次記憶装置へのデータの移動又はコピーが行われたことになる。
この後、制御回路17は、不揮発メモリ14の物理アドレスPAzへのアクセスを行い、当該物理アドレスPAzからデータをリードする(ステップST15)。
また、制御回路17は、一次記憶装置にアクセスするための第1の論理アドレスLAyをホストに通知する(ステップST16)。
尚、データのリード(ステップST15)は、アドレス変換テーブルの更新(ステップST13及びST14)と並行して行ってもよいし、アドレス変換テーブルの更新(ステップST3及びST4)前に行ってもよい。
また、ホストへの論理アドレスLAyの通知(ステップST16)は、第1の論理アドレスLAyの割り当て(ステップST13)後ならば、どの時点で行ってもよい。
このように、本例では、二次記憶装置に対してデータリードが行われると、アドレス変換テーブル19を更新するだけで、二次記憶装置から一次記憶装置へのデータの移動又はコピーが実質的に行われたことになる。
これにより、一次記憶装置又は二次記憶装置としての不揮発メモリ14内でのデータの移動又はコピーを減らすことができ、例えば、書き込み/消去回数の制限を持つ不揮発メモリの寿命を延ばすことができる。
次に、一次記憶装置としての不揮発メモリからのデータリードを説明する。
アドレス変換テーブル19は、例えば、図5に示すように、物理アドレスPAzに第2の論理アドレスLAx及び第1の論理アドレスLAyの双方が割り当てられた第2の状態へ更新されているものとする。
一次記憶装置にアクセスするための第1の論理アドレスLAyは、例えば、演算装置10からバスインターフェイス18−1を介してアドレス変換回路20に入力される。アドレス変換回路20は、アドレス変換テーブル19に基づき、第1の論理アドレスLAyを不揮発メモリ14内の物理アドレスPAzに変換する(ステップST11)。
一次記憶装置へのアクセスが確認されると(ステップST2)、制御回路17は、不揮発メモリ14の物理アドレスPAzへのアクセスを行い、当該物理アドレスPAzからデータをリードする(ステップST17)。
(3) 一次記憶装置内でのデータ書き換え
図6は、一次記憶装置内でのデータ書き換えの第1例を示している。
図6は、一次記憶装置内でのデータ書き換えの第1例を示している。
図1の情報処理装置及び図6のフローチャートに基づき、一次記憶装置内でのデータ書き換えの第1例を説明する。この例では、第1の論理アドレスLAyに更新データをライトする場合を考える。
まず、一次記憶装置にアクセスするための第1の論理アドレスLAyは、例えば、演算装置10からバスインターフェイス18−1を介してアドレス変換回路20に入力される。この場合、アドレス変換回路20は、アドレス変換テーブル19に基づき、第1の論理アドレスLAyを不揮発メモリ14内の物理アドレス(第1の物理アドレス)PAzに変換する(ステップST21)。
次に、第1の物理アドレスPAzが第1の論理アドレスLAyの他に異なる論理アドレスにも割り当てられているか否かを確認する(ステップST22)。すなわち、第1の物理アドレスPAzに対し、一次記憶装置にアクセスするための第1の論理アドレスと二次記憶装置にアクセスするための第2の論理アドレスの双方が割り当てられているかを確認する。
そして、2つの第1及び第2の論理アドレスLAy、LAxが1つの物理アドレスPAzに割り当てられているとき(例えば、アドレス変換テーブル19が図8(a)を示すとき)、第1の物理アドレスPAzのデータ(旧データ)を不揮発メモリ14の新たな物理アドレス(第2の物理アドレス)PAnewにコピーする(ステップST23)。
また、例えば、図8に示すように、第2の物理アドレスPAnewに、一次記憶装置にアクセスするための第1の論理アドレスLAyを割り当てる(ステップST24)。
さらに、第2の物理アドレスPAnewのデータ(旧データ)を、更新データに書き換える(ステップST25)。
これにより、更新データが第2の物理アドレスPAnewにライトされる。
次に、例えば、制御回路17は、図8(a)の状態から、図8(b)の状態へアドレス変換テーブル19を更新する(ステップST26)。すなわち、第1の物理アドレスPAzに第2の論理アドレスLAxが割り当てられ、かつ、第2の物理アドレスPAnewに第1の論理アドレスLAyが割り当てられる。
尚、アドレス変換テーブルの更新(ステップST26)は、第1の論理アドレスLAyの割り当て(ステップST24)後ならば、どの時点で行ってもよい。
これにより、一次記憶装置内のデータと二次記憶装置内のデータが1つの物理アドレスPAzに記憶される場合(図8(a)に示す場合)でも、一次記憶装置内でのデータの書き換え(第2の物理アドレスPAnewへの更新データのライト)のみが行われ、二次記憶装置内のデータ(第1の物理アドレスPAzのデータ)は、そのまま保護される。
また、本例の意味することころは、一次記憶装置内のデータの書き換えが行われないときは、一次記憶装置内のデータと二次記憶装置内のデータが1つの物理アドレスPAzに常に記憶されている(図8(a)に示す状態のまま)ということである。従って、書き込み/消去回数の制限を持つ不揮発メモリ14の書き込み/消去回数を減らし、その寿命を延ばすことができる。
なお、1つの物理アドレスに対し2つの論理アドレスが割り当てられている場合、二次記憶装置内のデータの書き換えが行われる場合にも本例と同様に実施することができる。すなわち、その二次記憶装置にアクセスするための論理アドレスを新たな物理アドレスに割り当て、新たな物理アドレスへ更新データをライトすることで二次記憶装置にもデータ更新可能である。
一方、上述のステップST22において、二次記憶装置にアクセスするための第2の論理アドレスLAxに割り当てられた物理アドレスと、一次記憶装置にアクセスするための第1の論理アドレスLAyに割り当てられた第1の物理アドレスとが異なるとき、当該第1の物理アドレスPAzのデータを書き換える(ステップST27)。
例えば、アドレス変換テーブル19が図8(b)に示す状態を記憶するとき、第1の論理アドレスLAyは、第2の物理アドレスPAnewに変換される。第2の物理アドレスPAnewは、二次記憶装置のデータが記憶される第1の物理アドレスPAzとは異なるため、第2の物理アドレスPAnewのデータを書き換えれば、一次記憶装置内のデータが書き換えられたことになる。
図7は、一次記憶装置内でのデータ書き換えの第2例を示している。
図1の情報処理装置及び図7のフローチャートに基づき、一次記憶装置内でのデータ書き換えの第2例を説明する。
まず、一次記憶装置にアクセスするための論理アドレス(第1の論理アドレス)LAyは、例えば、演算装置10からバスインターフェイス18−1を介してアドレス変換回路20に入力される。この場合、アドレス変換回路20は、アドレス変換テーブル19に基づき、第1の論理アドレスLAyを不揮発メモリ14内の物理アドレス(第1の物理アドレス)PAzに変換する(ステップST31)。
次に、第1の物理アドレスPAzが第1の論理アドレスLAyの他に異なる論理アドレスにも割り当てられているか否かを確認する(ステップST32)。すなわち、第1の物理アドレスPAzに対し、一次記憶装置にアクセスするための第1の論理アドレスと二次記憶装置にアクセスするための第2の論理アドレスの双方が割り当てられているかを確認する。
そして、2つの第1及び第2の論理アドレスLAy、LAxが1つの物理アドレスPAzに割り当てられているとき(例えば、アドレス変換テーブル19が図8(a)を示すとき)、更新データを不揮発メモリ14の新たな物理アドレス(第2の物理アドレス)PAnewにライトする(ステップST33)。
次に、第2の物理アドレスPAnewに、一次記憶装置にアクセスするための第1の論理アドレスLAyを割り当てる(ステップST34)。
次に、例えば、制御回路17は、図8(a)の状態から、図8(b)の状態へのアドレス変換テーブル19を更新する(ステップST35)。すなわち、第1の物理アドレスPAzに第2の論理アドレスLAxが割り当てられ、かつ、第2の物理アドレスPAnewに第1の論理アドレスLAyが割り当てられる。
これにより、一次記憶装置内のデータと二次記憶装置内のデータが1つの物理アドレスPAzに記憶される場合(図8(a)に示す状態)でも、一次記憶装置内でのデータの書き換え(新たな物理アドレスPAnewへの更新データのライト)のみが行われ、二次記憶装置内のデータ(物理アドレスPAzのデータ)は、そのまま保護される。
なお、1つの物理アドレスに対し2つの論理アドレスが割り当てられている場合、二次記憶装置内のデータの書き換えが行われる場合にも本例と同様に実施することができる。すなわち、その二次記憶装置にアクセスするための論理アドレスを新たな物理アドレスに割り当て、新たな物理アドレスへ更新データをライトすることで二次記憶装置にもデータ更新可能である。
一方、上述のステップST32において、二次記憶装置にアクセスするための第2の論理アドレスLAxに割り当てられた物理アドレスと、一次記憶装置にアクセスするための第1の論理アドレスLAyに割り当てられた第1の物理アドレスPAzとが異なるとき、当該第1の物理アドレスPAzのデータを書き換える(ステップST36)。
例えば、アドレス変換テーブル19が図8(b)に示すとき、第1の論理アドレスLAyは、第2の物理アドレスPAnewに変換される。第2の物理アドレスPAnewは、二次記憶装置のデータが記憶される第1の物理アドレスPAzとは異なるため、第2の物理アドレスPAnewのデータを書き換えれば、一次記憶装置内のデータが書き換えられたことになる。
図9は、一次記憶装置内でのデータ書き換えの第3例を示している。
図1の情報処理装置及び図9のフローチャートに基づき、一次記憶装置内でのデータ書き換えの第3例を説明する。
まず、一次記憶装置にアクセスするための論理アドレス(第1の論理アドレス)LAyは、例えば、演算装置10からバスインターフェイス18−1を介してアドレス変換回路20に入力される。この場合、アドレス変換回路20は、アドレス変換テーブル19に基づき、第1の論理アドレスLAyを不揮発メモリ14内の物理アドレス(第1の物理アドレス)PAzに変換する(ステップST41)。
次に、第1の物理アドレスPAzが第1の論理アドレスLAyの他に異なる論理アドレスにも割り当てられているか否かを確認する(ステップST42)。すなわち、第1の物理アドレスPAzに対し、一次記憶装置にアクセスするための第1の論理アドレスと二次記憶装置にアクセスするための第2の論理アドレスの双方が割り当てられているかを確認する。
そして、2つの第1、第2の論理アドレスLAy、LAxが1つの物理アドレスPAzに割り当てられているとき(例えば、アドレス変換テーブル19が図8(a)を示すとき)、第1の物理アドレスPAzのデータ(旧データ)を不揮発メモリ14の新たな物理アドレス(第2の物理アドレス)PAnewにコピーする(ステップST43)。
また、例えば、図10(b)に示すように、第2の物理アドレスPAnewに、二次記憶装置にアクセスするための第2の論理アドレスLAxを割り当てる(ステップST44)。
さらに、第1の物理アドレスPAzのデータ(旧データ)を、更新データに書き換える(ステップST45)。
これにより、更新データが第1の物理アドレスPAzにライトされる。
次に、例えば、図10に示すように、制御回路17は、アドレス変換テーブル19を、図10(a)に示す状態から、第1の物理アドレスPAzに第1の論理アドレスLAyが割り当てられ、かつ、第2の物理アドレスPAnewに第2の論理アドレスLAxが割り当てられた図10(b)に示す状態へ、更新する(ステップST46)。
尚、アドレス変換テーブルの更新(ステップST46)は、第2の論理アドレスLAxの割り当て(ステップST44)後ならば、どの時点で行ってもよい。
一方、上述のステップST42において、二次記憶装置にアクセスするための第2の論理アドレスLAxに割り当てられた物理アドレスと、一次記憶装置にアクセスするための第1の論理アドレスLAyに割り当てられた物理アドレスPAzとが異なるとき、当該物理アドレスPAzのデータを書き換える(ステップST47)。
例えば、アドレス変換テーブル19が図10(b)に示す状態を記憶しているとき、第1の論理アドレスLAyは、第1の物理アドレスPAzに変換される。第1の物理アドレスPAzは、二次記憶装置のデータが記憶される第2の物理アドレスPAnewとは異なるため、第1の物理アドレスPAzのデータを書き換えれば、一次記憶装置内のデータが書き換えられたことになる。
なお、1つの物理アドレスに対し2つの論理アドレスが割り当てられている場合、二次記憶装置内のデータの書き換えが行われる場合にも本例と同様に実施することができる。すなわち、同じ物理アドレスが割り当てられている一次記憶装置にアクセスするための論理アドレスを新たな物理アドレスに割り当て、かつ、新たな物理アドレスに元のデータをコピーする。元の物理アドレスへ更新データをライトすることで二次記憶装置にもデータ更新可能である。
(4) ウェアレベリング動作
上述のデータ書き換え(図6、図7及び図9)に起因する書き込み/消去回数(wear)を平滑化(leveling)する技術を説明する。
上述のデータ書き換え(図6、図7及び図9)に起因する書き込み/消去回数(wear)を平滑化(leveling)する技術を説明する。
図1の不揮発メモリ14として、NANDフラッシュメモリのような書き込み/消去回数の制限を持つメモリを使用するときは、特定のブロック(特定の物理アドレス)のみを集中して使用すると、その特定のブロックが使用禁止(バッドブロック)となり、メモリ容量の低下を招く。従って、上述のデータ書き換え技術を採用するときは、以下の新たなウェアレベリング動作を採用し、不揮発メモリの寿命を延ばすのが望ましい。
図11は、情報処理装置の主要部を示している。
同図は、図1に対応する。図11の情報処理装置の特徴は、図1の情報処理装置に、ウェアレベリング回路21を追加した点にあり、その他の点については、図1の情報処理装置と同じである。そこで、図11では、図1と同じ要素については図1と同じ符号を付すことにより、その詳細な説明を省略する。
同図は、図1に対応する。図11の情報処理装置の特徴は、図1の情報処理装置に、ウェアレベリング回路21を追加した点にあり、その他の点については、図1の情報処理装置と同じである。そこで、図11では、図1と同じ要素については図1と同じ符号を付すことにより、その詳細な説明を省略する。
ウェアレベリング回路21は、メモリコントローラ13内に配置され、上述のデータ書き換え(図6、図7及び図9)に起因する書き込み/消去回数を平滑化(leveling)する。
図12は、図6のデータ書き換えにウェアレベリング技術を適用した例を示している。
図11の情報処理装置及び図12のフローチャートに基づき、ウェアレベリング動作を説明する。
まず、図6と同様に、ステップST21及びST22を実行する。
次に、2つの第1、第2の論理アドレスLAy、LAxが1つの物理アドレス(第1の物理アドレス)PAzに割り当てられているとき、不揮発メモリ14の全物理アドレスに対する書き込み/消去回数を参照する(ステップST23−1)。
不揮発メモリ14の全物理アドレスに対する書き込み/消去回数は、例えば、ウェアレベリング回路21内に記憶される。ウェアレベリング回路21は、不揮発メモリ14の全物理アドレスに対する書き込み/消去回数に基づき、当該第1の物理アドレスPAzのデータをコピーする新たな物理アドレス(第2の物理アドレス)PAnewを決定する(ステップST23−2)。
例えば、書き込み/消去回数がブロックごとに設定されるとき、最も少ない書き込み/消去回数を有するブロック内の物理アドレスを第2の物理アドレスPAnewとする。
そして、第1の物理アドレスPAzのデータを、不揮発メモリ14の第2の物理アドレスPAnewにコピーする(ステップST23−3)。
この後、図6と同様に、ステップST24〜ST27を実行する。
図13は、図7のデータ書き換えにウェアレベリング技術を適用した例を示している。
図11の情報処理装置及び図13のフローチャートに基づき、ウェアレベリング動作を説明する。
まず、図7と同様に、ステップST31及びST32を実行する。
次に、2つの第1、第2の論理アドレスLAy、LAxが1つの物理アドレス(第1の物理アドレス)PAzに割り当てられているとき、不揮発メモリ14の全物理アドレスに対する書き込み/消去回数を参照する(ステップST33−1)。
不揮発メモリ14の全物理アドレスに対する書き込み/消去回数は、例えば、ウェアレベリング回路21内に記憶される。ウェアレベリング回路21は、不揮発メモリ14の全物理アドレスに対する書き込み/消去回数に基づき、更新データをライトする新たな物理アドレス(第2の物理アドレス)PAnewを決定する(ステップST33−2)。
例えば、書き込み/消去回数がブロックごとに設定されるとき、最も少ない書き込み/消去回数を有するブロック内の物理アドレスを第2の物理アドレスPAnewとする。
そして、更新データを、不揮発メモリ14の第2の物理アドレスPAnewにライトする(ステップST33−3)。
この後、図7と同様に、ステップST34〜ST36を実行する。
図14は、図9のデータ書き換えにウェアレベリング技術を適用した例を示している。
図11の情報処理装置及び図14のフローチャートに基づき、ウェアレベリング動作を説明する。
まず、図9と同様に、ステップST41及びST42を実行する。
次に、2つの第1、第2の論理アドレスLAy、LAxが1つの物理アドレス(第1の物理アドレス)PAzに割り当てられているとき、不揮発メモリ14の全物理アドレスに対する書き込み/消去回数を参照する(ステップST43−1)。
不揮発メモリ14の全物理アドレスに対する書き込み/消去回数は、例えば、ウェアレベリング回路21内に記憶される。ウェアレベリング回路21は、不揮発メモリ14の全物理アドレスに対する書き込み/消去回数に基づき、当該第1の物理アドレスPAzのデータをコピーする新たな物理アドレス(第2の物理アドレス)PAnewを決定する(ステップST43−2)。
例えば、書き込み/消去回数がブロックごとに設定されるとき、最も少ない書き込み/消去回数を有するブロック内の物理アドレスを第2の物理アドレスPAnewとする。
そして、第1の物理アドレスPAzのデータを、不揮発メモリ14の新たな物理アドレスPAnewにコピーする(ステップST43−3)。
この後、図9と同様に、ステップST44〜ST47を実行する。
以上、説明したように、本例では、ウェアレベリング回路を設けることにより、上述のデータ書き換え(図6、図7及び図9)に起因する書き込み/消去回数を平滑化することができる。
従って、図1の不揮発メモリ14として、NANDフラッシュメモリのような書き込み/消去回数の制限を持つメモリを使用するときは、不揮発メモリ14内のブロック(物理アドレス)の書き込み/消去回数を均一化することができ、不揮発メモリ14の寿命を延ばすことができる。
(5) 初期化(initialization)
図1又は図11の情報処理装置において、演算装置(ホスト)10は、不揮発メモリ14に対して、特定エリア内の論理アドレスのデータを初期化する指示を行う場合がある。この場合、初期化の指示がある度に、実際に、初期化の対象となる論理アドレスに割り当てられた物理アドレスのデータを初期化(消去)を行うと、不揮発メモリ14の書き込み/消去回数が不要に増加することがある。
図1又は図11の情報処理装置において、演算装置(ホスト)10は、不揮発メモリ14に対して、特定エリア内の論理アドレスのデータを初期化する指示を行う場合がある。この場合、初期化の指示がある度に、実際に、初期化の対象となる論理アドレスに割り当てられた物理アドレスのデータを初期化(消去)を行うと、不揮発メモリ14の書き込み/消去回数が不要に増加することがある。
以下、この課題を解決する初期化動作を説明する。
図15は、初期化動作を示している。
図1又は図11の情報処理装置及び図15のフローチャートに基づき、初期化動作を説明する。
まず、演算装置10は、不揮発メモリ装置11に初期化を指示する。即ち、初期化を行うエリア(二次記憶装置)内の論理アドレスは、例えば、演算装置10からバスインターフェイス18−2を介してメモリコントローラ13内に入力される。
また、メモリコントローラ13は、初期化を行うエリア内の論理アドレスをチェックする(ステップST51)。
次に、初期化の対象となる論理アドレスに割り当てられた物理アドレスのデータを無効データにする(ステップST52)。即ち、初期化の対象となる論理アドレスに割り当てられた物理アドレスの不揮発性メモリ14内のデータの初期化(消去)は行わない。
例えば、1つのブロック内の複数の物理アドレスの一部のデータについて初期化を行うとき、その都度、初期化を行うと、そのブロック内の初期化の対象とならない残りの物理アドレスの有効データを移動させなければならない。これは、その有効データについて、新たな物理アドレスへの書き込みを意味するため、結果として、不揮発メモリ14に対する書き込み/消去回数を増加させる。
一方、1つのブロック内の複数の物理アドレスの一部のデータについて初期化を行うとき、上述のように、そのブロック内の初期化の対象となる物理アドレスのデータを無効データとすれば、そのブロック内の初期化の対象とならない残りの物理アドレスの有効データは、そのままにしておくことができるため、新たな物理アドレスへの書き込みが発生することはない。これにより、不揮発メモリ14の書き込み/消去回数の増加を抑えることができる。
尚、実際の初期化(データ消去)は、例えば、1つのブロック内に有効データが含まれなくなったときに行えばよい。
次に、初期化の対象となる論理アドレスに割り当てられた物理アドレスのデータが初期化(無効化)されたことを示すフラグを立てる(ステップST53)。
例えば、図16に示すように、アドレス変換テーブル19内にデータが初期化されているか否かを判定するためのフラグを追加する。
この例では、演算装置10から論理アドレスLA1のデータを初期化する指示がなされた場合を示す。この場合、論理アドレスLA1のデータが初期化されたことを示すフラグが“1”に設定される。また、論理アドレスLA1に割り当てられた物理アドレスPA1のデータは、実際には初期化されていないが、無効データとなる。
論理アドレスLA2,LA3は、初期化されていないので、それらに対応するフラグは“0”のままである。即ち、論理アドレスLA2,LA3に割り当てられた物理アドレスPA2,PA3のデータは、有効データである。
次に、初期化が完了した旨を演算装置(ホスト)10に通知する(ステップST54)。
以上、説明したように、本例では、論理アドレスのデータが初期化されたか否かは、アドレス変換テーブル19内のフラグにより判断し、初期化の対象となる論理アドレスに割り当てられた物理アドレスの不揮発性メモリ14内のデータが実際に初期化されているか否かは問わない。即ち、物理アドレスの初期化(データ消去)は、例えば、1つのブロック内に有効データが含まれなくなったときに行えばよいため、不揮発メモリ14内の書き込み/消去回数を減らすことができる。
従って、不揮発メモリ14として、NANDフラッシュメモリのような書き込み/消去回数の制限を持つメモリを使用するときは、論理アドレスの初期化の指示に対して、不揮発メモリ14内のブロック(物理アドレス)の書き込み/消去回数を減らすことができ、不揮発メモリ14の寿命を延ばすことができる。
(6) データ書き換えの禁止
特定エリア(一次記憶装置又は二次記憶装置)内でのデータ書き換えを禁止する動作を説明する。
特定エリア(一次記憶装置又は二次記憶装置)内でのデータ書き換えを禁止する動作を説明する。
図1又は図11の情報処理装置において、演算装置(ホスト)10は、不揮発メモリ14に対して、特定エリア内の論理アドレスのデータを保護する指示を行う場合がある。この場合、上述のデータ書き換え(図6、図7及び図9)を制限する必要がある。
以下、特定エリア内でのデータ書き換えを禁止する動作を説明する。
図17は、データ書き換えの禁止を設定する動作を示している。
図1又は図11の情報処理装置及び図17のフローチャートに基づき、データ書き換えの禁止を設定する動作を説明する。
まず、演算装置10は、不揮発メモリ装置11にデータの保護を指示する。即ち、データの書き換えを禁止するエリア(例えば、二次記憶装置)内の論理アドレスは、例えば、演算装置10からバスインターフェイス18−2を介してメモリコントローラ13内に入力される。
また、メモリコントローラ13は、データの書き換えを禁止するエリア内の論理アドレスをチェックする(ステップST61)。
次に、アドレス変換回路20により、データの書き換えを禁止するエリア内の論理アドレスを物理アドレスに変換する(ステップST62)。
最後に、当該物理アドレスに対するデータ書き換えが禁止されたことを示すフラグを立てる(ステップST63)。
例えば、図19に示すように、アドレス変換テーブル19内にデータが保護されているか否かを判定するためのフラグを追加する。
この例では、演算装置10から論理アドレスLA1のデータの書き換えを禁止する指示がなされた場合を示す。この場合、論理アドレスLA1のデータが保護されていることを示すフラグが“1”に設定される。一方、論理アドレスLA2,LA3は、保護されていないので、それらに対応するフラグは“0”のままである。
次に、データの保護(データ書き換えの禁止)の設定が完了した旨を演算装置(ホスト)10に通知する(ステップST64)。
図18は、データ書き換えを禁止するエリア内にアクセスする場合の動作を示している。
図1又は図11の情報処理装置及び図18のフローチャートに基づき、データ書き換えを禁止するエリア内にアクセスする場合の動作を説明する。
まず、論理アドレスは、例えば、演算装置10からバスインターフェイス18−2を介して、不揮発メモリ装置11内のメモリコントローラ13内に入力される。この論理アドレスを、アドレス変換回路20により物理アドレスに変換する(ステップST71)。
次に、当該物理アドレスに対するデータ書き換えが禁止されているか否かをチェックする(ステップST72)。
そして、当該物理アドレスに対するデータ書き換えが禁止されているとき、即ち、当該物理アドレスのデータが保護されているときは、その旨を演算装置(ホスト)10に通知する(ステップST73)。この場合、当該物理アドレスに対するデータ書き換えは、行われない。
一方、当該物理アドレスに対するデータ書き換えが禁止されていないとき、即ち、当該物理アドレスのデータが保護されていないときは、例えば、図6、図7、図9のステップST22、ST32、ST42に移行する。この後は、これら図6、図7、図9のフローチャートに従ってデータ書き換えが実行される。
以上、本例によれば、特定エリア(一次記憶装置又は二次記憶装置)内でのデータ書き換えを禁止する機能を付加したことにより、特定エリア内のデータを保護しつつ、上述のデータ書き換え(図6、図7及び図9)を行うことができる。
(7) エラー訂正回路
図1又は図11の情報処理装置において、不揮発メモリ14に対するデータのリード/ライトは、一般的に、エラー訂正機能を付加した状態で行われる。この場合、一次記憶装置としての不揮発メモリ14に対するエラー訂正能力と二次記憶装置としての不揮発メモリ14に対するエラー訂正能力とは、互いに異なるのが望ましい。
図1又は図11の情報処理装置において、不揮発メモリ14に対するデータのリード/ライトは、一般的に、エラー訂正機能を付加した状態で行われる。この場合、一次記憶装置としての不揮発メモリ14に対するエラー訂正能力と二次記憶装置としての不揮発メモリ14に対するエラー訂正能力とは、互いに異なるのが望ましい。
図20は、情報処理装置の主要部を示している。
同図は、図1に対応する。図20の情報処理装置の特徴は、図1の情報処理装置に、第1及び第2のエラー訂正回路(ECC)22−1,22−2を追加した点にあり、その他の点については、図1の情報処理装置と同じである。そこで、図20では、図1と同じ要素については図1と同じ符号を付すことにより、その詳細な説明を省略する。
第1のエラー訂正回路22−1は、一次記憶装置としての不揮発メモリ14からリードされたデータを訂正する能力を有する。また、第2のエラー訂正回路22−2は、二次記憶装置としての不揮発メモリ14からリードされたデータを訂正する能力を有する。第1及び第2のエラー訂正回路22−1,22−2の能力は、互いに異なる。
ここで、第1及び第2のエラー訂正回路22−1,22−2の能力とは、エラー訂正可能なビット数、エラー訂正時間(処理時間)、消費電力などを含む。
本例では、第1及び第2のエラー訂正回路22−1,22−2の能力を、独立に設定可能な点に特徴を有する。
例えば、一次記憶装置としての不揮発メモリ14からリードされたデータを訂正する第1のエラー訂正回路22−1は、エラー訂正時間及び消費電力を重視した能力に設定される。これに対し、二次記憶装置としての不揮発メモリ14からリードされたデータを訂正する第2のエラー訂正回路22−2は、エラー訂正可能なビット数を重視した能力に設定される。
尚、第1及び第2のエラー訂正回路22−1,22−2の能力は、不揮発メモリ14の使用年数、ライト/イレーズ回数などに応じて変化させることもできる。
本例では、一次記憶装置のための第1のエラー訂正回路22−1と、二次記憶装置のための第2のエラー訂正回路22−2とを、独立に設けているが、これに代えて、一次記憶装置及び二次記憶装置に共通に1つのエラー訂正回路を設けてもよい。
この場合、その1つのエラー訂正回路の能力は、不揮発メモリが一次記憶装置として使用されるか、又は、二次記憶装置として使用されるか、に応じて、自動的に変更されるのが望ましい。
(8) キャッシュメモリ
図1、図11、又は、図20の情報処理装置において、一次記憶装置としての不揮発メモリ14にアクセスされるデータのうち、アクセス回数が非常に多いデータについては、不揮発メモリ14よりも高速にリード可能なキャッシュメモリ(例えば、SRAM)へ移動させるのが望ましい。
図1、図11、又は、図20の情報処理装置において、一次記憶装置としての不揮発メモリ14にアクセスされるデータのうち、アクセス回数が非常に多いデータについては、不揮発メモリ14よりも高速にリード可能なキャッシュメモリ(例えば、SRAM)へ移動させるのが望ましい。
図21は、情報処理装置の主要部を示している。
同図は、図1に対応する。図21の情報処理装置の特徴は、図1の情報処理装置に、キャッシュメモリ23を追加した点にあり、その他の点については、図1の情報処理装置と同じである。そこで、図21では、図1と同じ要素については図1と同じ符号を付すことにより、その詳細な説明を省略する。
キャッシュメモリ23は、一次記憶装置としての不揮発メモリ14にアクセスされるデータのうち、アクセス回数が非常に多いデータを、一時的に記憶する。そして、演算装置(ホスト)10からデータリードの指示があったときは、高速リードが可能なキャッシュメモリ23からデータをリードし、これを演算装置10に転送する。
図22は、アクセス頻度が高いデータをキャッシュメモリへコピーするシーケンスを示している。
まず、演算装置(ホスト)10によりデータリードが指示されると、アドレス変換回路20により、論理アドレスが物理アドレスに変換される(ステップST81)。
次に、データリードが不揮発メモリ(一次又は二次記憶装置)14へのアクセスにより行われるか否かを判定する(ステップST82)。
データリードが不揮発メモリ14へのアクセスにより行われるときは、当該論理アドレスへのアクセス回数をインクリメントする(ステップST83)。
例えば、当該論理アドレスへのアクセス回数は、アドレス変換テーブル19内に記憶される。即ち、図23に示すように、物理アドレスPAz1に割り当てられた論理アドレスLAyに対応するアクセス回数を1だけ増やす。本例では、論理アドレスLAyへのアクセス回数が8に設定される場合を示す。
尚、図23において、物理アドレスPAz2に割り当てられた論理アドレスLAxは、二次記憶装置としての不揮発メモリ14へのアクセスを示している。
次に、アクセス回数が閾値を超えたか否かを判定する(ステップST84)。
閾値は、経験則に基づいて予め設定される。例えば、特定の論理アドレスについて、一定期間内に一定回数以上のアクセスがあったときは、その特定の論理アドレスのデータのアクセス頻度が多いと判断し、そのデータを、不揮発メモリ(一次記憶装置)14からキャッシュメモリ23へ移動させる(ステップST85)。
例えば、図24に示すように、論理アドレスLAyへのアクセス回数(91回)が閾値(8回)を超えたときは、論理アドレスLAyに割り当てられた物理アドレスPAz1のデータをキャッシュメモリ23の物理アドレスPAz3にコピーした後、物理アドレスPAz1のデータを無効データにする。
最後に、キャッシュメモリ23の物理アドレスPAz3に論理アドレスLAyが割り当てられた状態に、アドレス変換テーブル19を更新する(ステップST86)。
これにより、次回から、論理アドレスLAyのデータは、キャッシュメモリ23から高速にリードすることができる。
これに対し、アクセス回数が閾値以下のとき(例えば、8回以下のとき)は、ステップST5及びST6を行わずに、本シーケンスを終了する(ステップST84)。
また、特定の論理アドレスについて、例えば、一定期間内に一定回数以上のアクセスがなかったときは、特定の論理アドレスへのアクセス回数をリセットしてもよい。この場合、より正確に、特定の論理アドレスに対するアクセス頻度を判定することができる。
尚、不揮発メモリ14からキャッシュメモリ23へのデータ移動が行われると、その後のデータリードは、キャッシュメモリ23へのアクセスにより行われ、不揮発メモリ14へのアクセスにより行われない。
即ち、データリードがキャッシュメモリ23へのアクセスにより行われるときは、本シーケンスを終了する(ステップST82)。
以上、本例によれば、一次記憶装置としての不揮発メモリ14にアクセスされるデータのうち、アクセス回数が非常に多いデータについては、不揮発メモリ14からキャッシュメモリ23へデータをコピーする。これにより、アクセス頻度が高いデータについては、キャッシュメモリ23から高速にデータリードを行うことができる。
3. 適用例
上述の実施例は、マイコン、画像処理プロセッサ、音声処理プロセッサなどの計算機システム全般に適用可能である。
上述の実施例は、マイコン、画像処理プロセッサ、音声処理プロセッサなどの計算機システム全般に適用可能である。
4. むすび
実施形態によれば、一次記憶装置と二次記憶装置を1種類のメモリに統合することができる。
実施形態によれば、一次記憶装置と二次記憶装置を1種類のメモリに統合することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10: 演算装置(ホスト)、 11: 不揮発メモリ装置、 12: バス、 13: メモリコントローラ、 14: 不揮発メモリ、 15: アドレス変換モジュール、 16: 不揮発メモリ制御インターフェイス、 17: 制御回路、 18−1,18−2: バスインターフェイス、 19: アドレス変換テーブル、 20: アドレス変換回路、 21: ウェアレベリング回路、 22−1,22−2: エラー訂正回路、 23: キャッシュメモリ。
Claims (5)
- アドレス変換テーブルと、
前記アドレス変換テーブルに基づいて、一次記憶装置にアクセスするための第1の論理アドレスを物理アドレスへの変換を行い、かつ、二次記憶装置にアクセスするための第2の論理アドレスを物理アドレスへの変換を行うアドレス変換回路と、
前記第1の論理アドレスを受けることにより、不揮発メモリを前記一次記憶装置としてアクセスし、前記第2の論理アドレスを受けることにより、前記不揮発メモリを前記二次記憶装置としてアクセスする制御回路とを具備し、
前記制御回路は、
前記不揮発メモリの第1の物理アドレスに前記第2の論理アドレスが割り当てられた第1の状態が前記アドレス変換テーブルにより記憶され、かつ、前記第2の論理アドレスのデータをリードするとき、前記アドレス変換回路により前記第2の論理アドレスを前記第1の物理アドレスに変換し、
前記第1の物理アドレスに新たに前記第1の論理アドレスを割り当て、
前記第1の状態から、前記第1の物理アドレスに前記第1及び第2の論理アドレスの双方が割り当てられた第2の状態へ前記アドレス変換テーブルを更新する
メモリコントローラ。 - アドレス変換テーブルと、
前記アドレス変換テーブルに基づいて、一次記憶装置にアクセスするための第1の論理アドレスを物理アドレスへの変換を行い、かつ、二次記憶装置にアクセスするための第2の論理アドレスを物理アドレスへの変換を行うアドレス変換回路と、
前記第1の論理アドレスを受けることにより、不揮発メモリを前記一次記憶装置としてアクセスし、前記第2の論理アドレスを受けることにより、前記不揮発メモリを前記二次記憶装置としてアクセスする制御回路と
を具備するメモリコントローラ。 - 前記制御回路は、
前記不揮発メモリの第1の物理アドレスに前記第1及び第2の論理アドレスの双方が割り当てられている第1の状態が前記アドレス変換テーブルにより記憶され、かつ、前記一次記憶装置としての前記不揮発メモリのデータを書き換えるとき、前記アドレス変換回路により前記第1の論理アドレスを前記第1の物理アドレスに変換し、
更新データを前記不揮発メモリの第2の物理アドレスに書き込み、
前記第2の物理アドレスに前記第1の論理アドレスを割り当て、
前記第1の状態から、前記第1の物理アドレスに前記第2の論理アドレスが割り当てられ、かつ、前記第2の物理アドレスに前記第1の論理アドレスが割り当てられた第2の状態へ、前記アドレス変換テーブルを更新する
請求項2に記載のメモリコントローラ。 - 前記制御回路は、
前記不揮発メモリの第1の物理アドレスに前記第1及び第2の論理アドレスの双方が割り当てられている第1の状態が前記アドレス変換テーブルにより記憶され、かつ、前記一次記憶装置としての前記不揮発メモリのデータを書き換えるとき、前記アドレス変換回路により前記第1の論理アドレスを前記第1の物理アドレスに変換し、
前記不揮発メモリの第2の物理アドレスに前記第1の物理アドレスのデータをコピーし、
前記第2の物理アドレスに前記第1の論理アドレスを割り当て、
更新データを前記第2の物理アドレスに書き込み、
前記第1の状態から、前記第1の物理アドレスに前記第2の論理アドレスが割り当てられ、かつ、前記第2の物理アドレスに前記第1の論理アドレスが割り当てられた第2の状態へ、前記アドレス変換テーブルを更新する
請求項2に記載のメモリコントローラ。 - 前記制御回路は、
前記不揮発メモリの第1の物理アドレスに前記第1及び第2の論理アドレスの双方が割り当てられている第1の状態が前記アドレス変換テーブルにより記憶され、かつ、前記一次記憶装置としての前記不揮発メモリのデータを書き換えるとき、前記アドレス変換回路により前記第1の論理アドレスを前記第1の物理アドレスに変換し、
前記第1の物理アドレスのデータを前記不揮発メモリの第2の物理アドレスにコピーし、
前記第2の物理アドレスに前記第2の論理アドレスを割り当て、
前記第1の物理アドレスのデータを書き換え、
前記第1の状態から、前記第1の物理アドレスに前記第1の論理アドレスが割り当てられ、かつ、前記第2の物理アドレスに前記第2の論理アドレスが割り当てられた第2の状態へ、前記アドレス変換テーブルを更新する
請求項2に記載のメモリコントローラ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013055010A JP2014182449A (ja) | 2013-03-18 | 2013-03-18 | メモリコントローラ |
US13/957,675 US20140281159A1 (en) | 2013-03-18 | 2013-08-02 | Memory controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013055010A JP2014182449A (ja) | 2013-03-18 | 2013-03-18 | メモリコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014182449A true JP2014182449A (ja) | 2014-09-29 |
Family
ID=51533837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013055010A Pending JP2014182449A (ja) | 2013-03-18 | 2013-03-18 | メモリコントローラ |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140281159A1 (ja) |
JP (1) | JP2014182449A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9311508B2 (en) * | 2013-12-27 | 2016-04-12 | Intel Corporation | Processors, methods, systems, and instructions to change addresses of pages of secure enclaves |
US20160085695A1 (en) | 2014-09-24 | 2016-03-24 | Intel Corporation | Memory initialization in a protected region |
US10126962B2 (en) | 2016-04-22 | 2018-11-13 | Microsoft Technology Licensing, Llc | Adapted block translation table (BTT) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06131266A (ja) * | 1992-09-25 | 1994-05-13 | Internatl Business Mach Corp <Ibm> | ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置 |
JP2004362464A (ja) * | 2003-06-06 | 2004-12-24 | Sony Corp | 不揮発メモリを利用したコンピュータシステム |
US20090235013A1 (en) * | 2005-10-27 | 2009-09-17 | Un Sik Seo | Mass Storage Device Having Both Xip Function and Storage Function |
JP2014063358A (ja) * | 2012-09-21 | 2014-04-10 | Fixstars Corp | 情報処理装置、情報処理方法、およびプログラム |
-
2013
- 2013-03-18 JP JP2013055010A patent/JP2014182449A/ja active Pending
- 2013-08-02 US US13/957,675 patent/US20140281159A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06131266A (ja) * | 1992-09-25 | 1994-05-13 | Internatl Business Mach Corp <Ibm> | ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置 |
JP2004362464A (ja) * | 2003-06-06 | 2004-12-24 | Sony Corp | 不揮発メモリを利用したコンピュータシステム |
US20090235013A1 (en) * | 2005-10-27 | 2009-09-17 | Un Sik Seo | Mass Storage Device Having Both Xip Function and Storage Function |
JP2011517789A (ja) * | 2005-10-27 | 2011-06-16 | エムジン カンパニー リミテッド | 直接実行制御機能とストレージ機能が複合された大容量保存装置 |
JP2014063358A (ja) * | 2012-09-21 | 2014-04-10 | Fixstars Corp | 情報処理装置、情報処理方法、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20140281159A1 (en) | 2014-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144888B (zh) | 存储器系统 | |
US11030093B2 (en) | High efficiency garbage collection method, associated data storage device and controller thereof | |
JP5612514B2 (ja) | 不揮発性メモリコントローラ及び不揮発性記憶装置 | |
US7739443B2 (en) | Memory controller, memory device and control method for the memory controller | |
US8180953B2 (en) | Data accessing method for flash memory, and storage system and controller system thereof | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US8621139B2 (en) | Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same | |
US8037232B2 (en) | Data protection method for power failure and controller using the same | |
US7529879B2 (en) | Incremental merge methods and memory systems using the same | |
US9122498B2 (en) | Firmware code loading method, memory controller and memory storage apparatus | |
JP2008181380A (ja) | メモリシステムおよびその制御方法 | |
JP2012203443A (ja) | メモリシステムおよびメモリシステムの制御方法 | |
US8694748B2 (en) | Data merging method for non-volatile memory module, and memory controller and memory storage device using the same | |
KR20110015023A (ko) | 하이브리드 메모리 관리 | |
KR20190054426A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US9122583B2 (en) | Memory controller and memory storage device and data writing method | |
US20200264805A1 (en) | Nonvolatile semiconductor memory device | |
US8423707B2 (en) | Data access method for flash memory and storage system and controller using the same | |
JP2018160189A (ja) | メモリシステム | |
JP2013033337A (ja) | 情報処理装置及び半導体記憶装置 | |
JP2014182449A (ja) | メモリコントローラ | |
JP5494086B2 (ja) | 不揮発性記憶装置および不揮発性メモリコントローラ | |
US11218164B2 (en) | Data storage device and non-volatile memory control method | |
KR100780963B1 (ko) | 메모리 카드 및 메모리 카드의 구동 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150610 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150623 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20151020 |