JP2014197265A - Semiconductor memory device - Google Patents
Semiconductor memory device Download PDFInfo
- Publication number
- JP2014197265A JP2014197265A JP2013071894A JP2013071894A JP2014197265A JP 2014197265 A JP2014197265 A JP 2014197265A JP 2013071894 A JP2013071894 A JP 2013071894A JP 2013071894 A JP2013071894 A JP 2013071894A JP 2014197265 A JP2014197265 A JP 2014197265A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- cache memory
- flash memory
- cache
- 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.)
- Granted
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 24
- 230000015654 memory Effects 0.000 claims abstract description 227
- 238000012545 processing Methods 0.000 abstract description 6
- 238000000034 method Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 8
- 238000013403 standard screening design Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- XZBYDGRCLDKSJX-UHFFFAOYSA-N 1-[2-[[2-hydroxy-3-(4-methylphenoxy)propyl]-methylamino]ethyl-methylamino]-3-(4-methylphenoxy)propan-2-ol Chemical compound C=1C=C(C)C=CC=1OCC(O)CN(C)CCN(C)CC(O)COC1=CC=C(C)C=C1 XZBYDGRCLDKSJX-UHFFFAOYSA-N 0.000 description 3
- 239000000428 dust Substances 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
本発明の実施形態は、低速で大容量のフラッシュメモリを使用した半導体メモリ装置に関する。 Embodiments described herein relate generally to a semiconductor memory device using a low-speed and large-capacity flash memory.
現在、一般的に販売されているSSD(半導体ディスク)は、記憶媒体としてそのほとんどがNANDフラッシュメモリを使用している。また、その構造は、基板上にNANDフラッシュメモリチップとNANDフラッシュコントローラ(LSI)を実装している。こうした一般市場向けのSSD製品は大量生産され、メモリチップもチップメーカーから大量に購入することによりチップ単価を安く抑えることができ、製品一台当たりの価格も低く抑えることができる。また、メモリチップを直接制御することにより性能(スピード)を最大限に伸ばすことも可能となる。 Currently, most commonly sold SSDs (semiconductor disks) use NAND flash memory as a storage medium. Further, the structure is such that a NAND flash memory chip and a NAND flash controller (LSI) are mounted on a substrate. Such SSD products for the general market are mass-produced, and by purchasing a large number of memory chips from a chip manufacturer, the unit price of the chip can be kept low, and the price per product can be kept low. In addition, the performance (speed) can be maximized by directly controlling the memory chip.
しかし、特定用途または特定顧客向けの特殊仕様で少量生産品のような場合には、メモリチップの購入数も少量となり価格が割高になってしまう。また、メモリチップもたびたび新しい仕様(デザインルール)の製品に生まれ変わっていくため、そのたびに装置(=製品自体)も新しくしなければならなくなり、製品単価にしめる開発費の割合が大きくなり、さらに価格が高くなってしまうという欠点がある。 However, in the case of a small quantity product with a special specification for a specific use or a specific customer, the number of purchased memory chips is also small and the price is high. In addition, since memory chips are often reborn to products with new specifications (design rules), the device (= product itself) must be renewed each time, and the ratio of development costs to the product unit price increases. Has the disadvantage of becoming expensive.
このような少量生産とならざるを得ないような製品の場合には、コンパクトフラッシュ(登録商標)メモリ(以下、CFメモリと略す)を代表とするフラッシュメモリカードが有効となる。フラッシュメモリカードのインターフェイスは、それぞれの規格で決まっており、内部で使用しているNANDフラッシュチップのメーカや容量等に関係しないので、容量が大きくなる場合もあるかもしれないが、それを除けば、ほぼ同じコンパチブル品として使用し続けることができる。カードメーカは、NANDメモリチップを大量に購入し生産するため、CFメモリカードを使用すればSSDに負けないくらいの低コストで半導体メモリ装置を作ることができる可能性がある。 In the case of such a product that is inevitably produced in a small amount, a flash memory card represented by a compact flash (registered trademark) memory (hereinafter abbreviated as a CF memory) is effective. The interface of the flash memory card is determined by each standard and is not related to the manufacturer or capacity of the NAND flash chip used internally, so the capacity may increase. Can continue to be used as almost the same compatible product. Since card manufacturers purchase and produce NAND memory chips in large quantities, if a CF memory card is used, there is a possibility that a semiconductor memory device can be manufactured at a cost as low as an SSD.
CFメモリは、電力が遮断されても記憶した内容が保持される不揮発性であること、また繰り返しデータの書込みや消去ができること、振動や騒音がなく、消費電力が少ない等の特長を有することから、記憶装置として幅広く利用されている。そして、一般的にCFメモリやSD(Secure Digital)メモリには、NANDフラッシュメモリが使用されている。 CF memory is non-volatile that retains its stored contents even when power is cut off, and can repeatedly write and erase data, has no vibration and noise, and has low power consumption. It is widely used as a storage device. In general, NAND flash memory is used for CF memory and SD (Secure Digital) memory.
NANDフラッシュメモリにおけるデータの書込み又は消去は、フラッシュメモリを構成しているブロック単位で行われている。また、フラッシュメモリに書込まれたデータを書換える場合は、前のデータをブロック単位で消去し、新しいデータを書込むという処理が行われる。しかし、NANDフラッシュメモリは特性上寿命があり、その書込み回数には上限がある。したがって、効率の悪い無駄な書込み又は消去は、フラッシュメモリの寿命を短くする一因となる。 Data writing or erasing in the NAND flash memory is performed in units of blocks constituting the flash memory. In addition, when data written in the flash memory is rewritten, the previous data is erased in units of blocks and new data is written. However, the NAND flash memory has a lifetime in terms of characteristics, and there is an upper limit on the number of times of writing. Thus, inefficient useless writing or erasing contributes to shortening the lifetime of the flash memory.
また、フラッシュメモリカードはNANDコントローラを内蔵しており、NANDコントローラはNANDの制御をすべて行っている。一般的に、NANDコントローラは性能が遅く、フラッシュメモリカードを使用して記憶装置を構成した場合に、SSD並の性能を出すことは、よほどの工夫をしない限りほとんど不可能に近い。 Further, the flash memory card has a built-in NAND controller, and the NAND controller performs all NAND control. In general, the performance of a NAND controller is slow, and when a storage device is configured using a flash memory card, it is almost impossible to achieve the performance equivalent to that of an SSD unless special efforts are made.
例えばCFメモリを単体で使用するシステム、またはCFメモリを使用したフラッシュメモリ装置(SSD)では、図9に示すように、ホストまたはSSDシステム(SSD内でのCFメモリ制御部)AとCFメモリBはPATAインターフェイスCを介して接続されている。そして、CFメモリBはNANDコントローラB1とNANDチップB2から構成されている。このような構成において、ホストAからNANDチップB2に格納したデータをアクセスする場合、ホストAからNANDコントローラB1にアクセス指令を出し、NANDコントローラB1がNANDチップB2をアクセスして、その結果をホストAに出力する動作となる。このような構成では、NANDコントローラB1の処理速度がホストAに比べて極端に遅いという課題がある。 For example, in a system that uses a CF memory alone or a flash memory device (SSD) that uses a CF memory, as shown in FIG. 9, a host or SSD system (CF memory control unit in the SSD) A and a CF memory B Are connected via the PATA interface C. The CF memory B includes a NAND controller B1 and a NAND chip B2. In such a configuration, when accessing data stored in the NAND chip B2 from the host A, the host A issues an access command to the NAND controller B1, the NAND controller B1 accesses the NAND chip B2, and the result is displayed on the host A. The operation to output to. In such a configuration, there is a problem that the processing speed of the NAND controller B1 is extremely slow compared to the host A.
それは、単純にCFメモリBを必要な容量分だけ並べて、論理アドレスを固定してCFメモリBに割り当てた様なシステムでは、性能低下が顕著に現れる。特に、ホストAからCFメモリBに保存されたデータを書換える場合は、CFメモリBの内部でNANDチップB2からデータを一度読み出し、書換えデータがあるセクタのみを上書きし、消去済みのNANDチップB2に書き戻すという処理が行われる。この動作は、1セクタのみ書き換える場合でも、NANDチップB2の特性上1ブロック全体を書き換えなければならない。これにより、処理が遅いというだけではなく、ブロック消去が大量に発生することによるNANDチップB2の寿命低下という致命的な欠点にもつながっていた。 That is, in a system in which the CF memory B is simply arranged in the necessary capacity and the logical address is fixed and assigned to the CF memory B, the performance degradation is noticeable. In particular, when the data stored in the CF memory B is rewritten from the host A, the data is once read from the NAND chip B2 in the CF memory B, overwritten only on the sector having the rewritten data, and the erased NAND chip B2 The process of writing back to is performed. In this operation, even when only one sector is rewritten, the entire block must be rewritten due to the characteristics of the NAND chip B2. As a result, not only is the processing slow, but it also leads to a fatal defect that the life of the NAND chip B2 is reduced due to a large amount of block erasure.
一方、キャッシュメモリの技術分野においては、1バイト単位でのデータの書換えを行う場合には、物理ブロック単位に消去を行ってから書換えるようにしていることから、書換えの必要のない部分まで書換えを行い、書換え回数が増えてしまう欠点がある。その技術的課題に着目して、書換えデータを書込む際、その書換えデータと1番目エリアの書換え対象位置のデータとの排他的論理和をとり、さらに、この排他的論理和のデータと2番目エリアの前記位置のデータとの排他的論理和をとる処理を順次繰り返し、その過程で当該エリアの前記位置のデータが初期値であったとき、そのエリアの前記位置にそれまでに求めた排他的論理和のデータを書き込む方法がある。 On the other hand, in the technical field of cache memory, when data is rewritten in units of 1 byte, it is rewritten after erasing in units of physical blocks. And the number of rewrites increases. Paying attention to the technical problem, when rewriting data is written, the exclusive OR of the rewriting data and the data at the position to be rewritten in the first area is taken, and further, the exclusive OR data and the second data are taken. The process of taking an exclusive OR with the data of the area in the area is sequentially repeated, and in the process, when the data of the position of the area is the initial value, the exclusive obtained previously to the position of the area There is a method of writing logical sum data.
本発明が解決しようとする課題は、低速で大容量のフラッシュメモリを用いるシステムで、キャッシュメモリの1セクタ単位毎に設定されるフラグの内容を用いてフラッシュメモリに対するライトバックの処理およびガーベージコレクションの処理を効率よく実行することのできる半導体メモリ装置を提供することを目的とする。 The problem to be solved by the present invention is a system using a low-speed and large-capacity flash memory, and a write-back process and garbage collection for the flash memory using the contents of a flag set for each sector of the cache memory. It is an object of the present invention to provide a semiconductor memory device capable of executing processing efficiently.
実施形態に係る半導体メモリ装置は、CPUと、低速で大容量のフラッシュメモリと、前記フラッシュメモリに記憶される一部のデータを記憶し、複数のセクタから構成されるページ単位でアクセスされるキャッシュメモリと、外部のホストからのライトコマンドにより転送されるデータを保持すると共に、前記キャッシュメモリのアクセスを制御するホストインターフェイスと、前記キャッシュメモリの前記セクタ毎に設定されるフラグであって、前記ホストからの前記データ、または前記フラッシュメモリからのデータが書き込まれた場合は有効ビットを、それらのデータがない場合は非有効ビットを示すフラグが前記CPUによって設定されるフラグレジスタを有し、前記フラッシュメモリから前記キャッシュメモリに各ページのデータをコピーする際に、前記フラグレジストの内容が前記非有効ビットを示すセクタのみに前記キャッシュメモリの内容を書き換える制御手段と、を具備し、前記コピーが終了した後の前記キャッシュメモリの複数ページの書換え済みデータを前記フラッシュメモリに書き戻すことを特徴とする。 A semiconductor memory device according to an embodiment stores a CPU, a low-speed, large-capacity flash memory, a part of data stored in the flash memory, and a cache accessed in units of pages composed of a plurality of sectors A host interface for holding memory and data transferred by a write command from an external host and controlling access to the cache memory; and a flag set for each sector of the cache memory, the host A flag register that is set by the CPU with a valid bit when the data from the flash memory or the data from the flash memory is written, and a flag indicating a non-valid bit when there is no such data, Each page of data from memory to the cache memory Control means for rewriting the contents of the cache memory only to sectors in which the contents of the flag register indicate the invalid bit when copying, and a plurality of pages of the cache memory after the copying is completed. The rewritten data is written back to the flash memory.
また、実施形態に係る半導体メモリ装置は、CPUと、低速で大容量のフラッシュメモリと、前記フラッシュメモリに記憶される一部のデータを記憶し、複数のセクタから構成されるページ単位でアクセスされるキャッシュメモリと、前記キャッシュメモリの前記セクタ毎に設定されるフラグであって、前記CPUがガーベージコレクションを実行すると判断した時に、非有効ビットを示すフラグが設定されるフラグレジスタを有し、前記フラッシュメモリから前記キャッシュメモリに有効なページのデータをコピーする際に、前記フラグレジストの前記非有効ビットに基づき前記キャッシュメモリの割り当てられた領域に書き込む制御手段と、を具備し、前記コピーが終了した後の前記キャッシュメモリの複数ページの書換え済みデータを前記フラッシュメモリに書き戻すことを特徴とする。 The semiconductor memory device according to the embodiment stores a CPU, a low-speed, large-capacity flash memory, and a part of data stored in the flash memory, and is accessed in units of pages composed of a plurality of sectors. A cache memory and a flag set for each sector of the cache memory, the flag register having a flag indicating an invalid bit when the CPU determines to execute garbage collection, Control means for writing to the allocated area of the cache memory based on the invalid bit of the flag register when copying valid page data from the flash memory to the cache memory, and the copying is completed After the rewritten data of multiple pages of the cache memory after Characterized in that it is written back to the serial flash memory.
本発明によれば、ライトコマンド時、フラッシュメモリの内容を一部分書き換える際に発生するフラッシュメモリのリード動作をできるだけ減らすことができる。また、有効なデータだけが一個所にまとめられ、ガーベージ(ゴミ)しか含まない再生可能なセクタの領域が生成できるガーベージコレクションの動作を効率的に行うことができる。 According to the present invention, it is possible to reduce as much as possible the read operation of the flash memory that occurs when the contents of the flash memory are partially rewritten during a write command. Further, only the valid data is collected in one place, and a garbage collection operation capable of generating a reproducible sector area containing only garbage (garbage) can be performed efficiently.
以下、本発明の実施形態に係る半導体メモリ装置を、図面を参照して説明する。
まず、ライトコマンド時、フラッシュメモリの内容を一部分書き換える際に発生する、フラッシュメモリのリード動作をできるだけ減らすことについて説明する。
Hereinafter, a semiconductor memory device according to an embodiment of the present invention will be described with reference to the drawings.
First, a description will be given of reducing as much as possible the read operation of the flash memory that occurs when a part of the contents of the flash memory is rewritten at the time of a write command.
図1は、実施形態に係る半導体メモリ装置並びに同装置を用いたシステムブロックを示す図である。図2において、半導体メモリ装置100は、CPU110、CPUバス120、フラッシュメモリ(ここでは、CFメモリを用いているので、以下ではCFメモリと称する)130、CFコントローラ140、キャッシュメモリ(DRAM)150、キャッシュコントローラ160、ホストインターフェイス170、ローカルバス180、RAM190、ROM195を有している。半導体メモリ装置100のホストインターフェイス170は、外部のホスト200のホストバス210と接続されている。CFメモリ130は、メインメモリを構成するもので、低速・大容量のメモリである。キャッシュメモリ150は、CFメモリ130に格納されるデータの一部のデータの写しを記憶する高速・小容量のメモリである。
FIG. 1 is a diagram illustrating a semiconductor memory device according to an embodiment and a system block using the device. In FIG. 2, a
そして、半導体メモリ装置100のCPUバス120には、CPU110、CFコントローラ140、RAM190、ROM195などが接続されている。また、ローカルバス180には、キャッシュコントローラ160、ホストインターフェイス170、CFコントローラ140などが接続されている。CPUバス120とローカルバス180は、直接およびCFコントローラ140を経由して接続されている。CPU110は、CFコントローラ140を介してCFメモリ130をアクセスすることができる。また、CPU110は、キャッシュコントローラ160又はCFコントローラ140−キャッシュコントローラ160を介してキャッシュメモリ150をアクセスすることができる。RAM190、ROM195は、OS、ファームウェア、及びアプリケーション等のプログラムの格納領域、並びに実行時の作業領域となるメモリである。
A CPU 110, a
ホスト200と半導体メモリ装置100のホストインターフェイス170とを接続するホストバス210は、例えばSCSIバスやSATAバスである。ホストインターフェイス170は、ホストバス210を介してホスト200との間のコマンド、データの転送を制御する。ホスト200からライトするデータ又はホスト200へのリードするデータは、一時的にキャッシュメモリ150に蓄えられる。つまり、ホスト200から半導体メモリ装置100に対するリード/ライトコマンド実行時には、ホストインターフェイス170、キャッシュコントローラ160を介してキャッシュメモリ150との間でデータがやりとりされる。
A host bus 210 that connects the
ホスト200からのライトコマンド実行時は、ホスト200から送られてきたライトデータをホストインターフェイス170で保持した後、キャッシュメモリ150に転送する。キャッシュメモリ150は、ページ単位で管理されている。例えば、1ページ=64セクタのサイズとする。その後、キャッシュメモリ150のライトデータは、CFメモリ130に転送される。キャッシュメモリ150とCFメモリ130との間の転送の最小サイズは、例えば1ページである。
When executing a write command from the
ホスト200からのリードコマンド実行時は、キャッシュメモリ150がヒットしているかミスしているかによって、それ以前のライトキャッシュに対して実行されたライトコマンドによるライトデータか、またはCFメモリ130からキャッシュメモリ150に転送されたデータが、ホスト200に転送される。CFメモリ130の制御は、CFコントローラ140が行う。これらCFコントローラ140、ホストインターフェイス170、及びキャッシュコントローラ160等の全体を制御するのがCPU110である。
When executing a read command from the
(キャッシュメモリの構造)
次に、キャッシュメモリ150の構造について説明する。キャッシュメモリ150は、一般的に数MB(メガバイト)〜数十MBの容量がある。ここでは、図2に示すように、キャッシュメモリ150の容量を、例えば64MBとし、例えば1ページ=64セクタ=32KB(キロバイト)単位で管理することにする。したがって、キャッシュメモリ150は、64MB÷32KB=2048ページで構成される。
キャッシュメモリ150の各ページ情報として、図3に示すように、
(1)論理アドレス
(2)ヴァリッドフラグ「V」(1ビット)
(3)Dフラグ(64ビット)
(4)LRU情報
という4種類の値を有する。これら4つの値を格納する場所は、どこでも構わないが、例えばCPU空間にあるRAM190上でも構わない。これら4つの値を1セット(1ページ分)として、2048ページ分保有しておく。
(Cache memory structure)
Next, the structure of the cache memory 150 will be described. The cache memory 150 generally has a capacity of several megabytes (MB) to several tens of megabytes. Here, as shown in FIG. 2, the capacity of the cache memory 150 is assumed to be 64 MB, for example, and one page = 64 sectors = 32 KB (kilobytes). Therefore, the cache memory 150 is composed of 64 MB ÷ 32 KB = 2048 pages.
As each page information of the cache memory 150, as shown in FIG.
(1) Logical address (2) Valid flag “V” (1 bit)
(3) D flag (64 bits)
(4) It has four types of values called LRU information. The four values may be stored anywhere, but may be stored on the RAM 190 in the CPU space, for example. These four values are stored as one set (one page) for 2048 pages.
(1)論理アドレスは、ページに対応する論理アドレスであり、ホスト200からのリード/ライトコマンドで指定されるアドレスと同じ意味である。値としては、各64セクタの先頭のアドレス、例えば0x000000,0x000040,0x000080,‥‥という値を持つ。
(2)ヴァリッドフラグ「V」は、そのページが有効か否かを示すフラグである。有効ならばV=“1”、無効ならばV=“0”となる。
(3)Dフラグは、ページ内の各セクタに有効なデータが存在するかどうかを示すフラグであり、ここの例では1ページ=64セクタなので、Dフラグは64ビットである。
(4)LRU−U/LRU−Dは、キャッシュメモリ150の空きページがなくなって、ページの追い出しの必要性が発生したときに、2048ページの内のどのページから追い出していくかを決めるための情報である。LRUとは、Least Recently Usedアルゴリズムである。このアルゴリズムは、「最も昔に使用された」ページから追い出しを行うという、追い出しの順番を決める方法の一つである。値としては0〜2047までの値、2つで1セットを構成している。例えば、あるページ(ページ番号M)について、現在N番目にアクセスされたページだとする。LRU情報はポインタ値となっていて、LRU−Uは、自分よりひとつ上(より新しくアクセスされた)ページのページ番号を示す。LRU−Dは、自分よりひとつ下のページを指す。このように各ページは上下2方向の数珠つなぎになっている。
(1) A logical address is a logical address corresponding to a page, and has the same meaning as an address specified by a read / write command from the
(2) The valid flag “V” is a flag indicating whether or not the page is valid. If it is valid, V = "1", and if invalid, V = "0".
(3) The D flag is a flag indicating whether or not there is valid data in each sector in the page. In this example, since 1 page = 64 sectors, the D flag is 64 bits.
(4) LRU-U / LRU-D decides which page of 2048 pages is to be ejected when there is no more free page in the cache memory 150 and there is a need to purge the page. Information. LRU is a least recently used algorithm. This algorithm is one of the methods for determining the order of eviction, in which eviction starts from the “oldest used” page. As a value, one value is composed of two values from 0 to 2047. For example, it is assumed that a certain page (page number M) is currently the Nth accessed page. The LRU information is a pointer value, and LRU-U indicates the page number of a page that is one higher than that of itself (newly accessed). LRU-D indicates a page one level lower than itself. In this way, each page is a daisy chain in two directions.
ここで、キャッシュメモリ150のページ番号Mがアクセスされたとすると、このエントリは最も最近使用されたということで、最上位に移動される。最上位への移動処理は、現在つながっている数珠の位置から切り離して、一番上位の端に繋ぎ変える。切られたN−1番目とN+1番目をつなぎ直さなければならないが、それらが何ページ目かは2つのポインタ(LRU−U/LRU−D)を見ればわかる。 Here, if the page number M in the cache memory 150 is accessed, this entry is moved to the top because it has been used most recently. The movement process to the top is separated from the position of the currently connected rosary and connected to the top end. The cut N-1 and N + 1 must be reconnected, but the page number of these can be found by looking at the two pointers (LRU-U / LRU-D).
キャッシュメモリ150がヒットしているかミスしているかは、リード/ライトコマンドで指定されたアドレスと同じアドレスで、かつ、ヴァリッドフラグ「V」が“1”のページが存在するかどうかを調べればよい。 Whether the cache memory 150 is hit or missed can be determined by checking whether or not there is a page having the same address as that specified by the read / write command and the valid flag “V” is “1”. Good.
次に、ホスト200から半導体メモリ装置100へ書き込み動作について説明する。
ホスト200からライトコマンドが半導体メモリ装置100のホストインターフェイス170に発行されると、ホストインターフェイス170は、CPU110に割込みを掛けてライトコマンドが受信したこと、およびコマンド内容を知らせる。CPU110は、書き込みアドレスがキャッシュメモリ150でヒットしているかどうかを調べ、ヒットしていたならば該当するキャッシュメモリ150のアドレス位置にライトデータを転送するようホストインターフェイス170を設定して、ライトデータの書き込み動作を実行する。
Next, a write operation from the
When a write command is issued from the
もしも、キャッシュメモリ150に対するライトキャッシュがミス(キャッシュミス)であったならば、キャッシュメモリ150に1ページ分の新しい領域を割り当てて、このキャッシュメモリ150の新しい領域のアドレス位置にヒットするライトデータを転送するようホストインターフェイス170を設定して、ライトデータの書き込み動作を実行する。もしも、キャッシュメモリ150に空きページが無い場合には、キャッシュ追い出しアルゴリズム(こここでは、LRUアルゴリズム)により、最も過去にアクセスされたページをCFメモリ130に書き戻し(=ライトバック)、空きページを確保する。
If the write cache for the cache memory 150 is a miss (cache miss), a new area for one page is allocated to the cache memory 150, and write data that hits the address position of the new area of the cache memory 150 is assigned. The
(ライトバック)
CPU110は、キャッシュメモリ150からCFメモリ130へのライトバックをページ単位で行う。まず、CPU110は、図2に示すキャッシュメモリ150の各ページのDフラグレジスタに“0”となっているビット(セクタ)が存在するかどうかを調べる。もしも“0”のセクタがあったならば、CFメモリ130の対応するセクタからのデータをキャッシュメモリ150の当該セクタに読み込まなければならない。
(Write back)
The CPU 110 performs write back from the cache memory 150 to the
(Dフラグを使用したCFメモリ/キャッシュメモリの動作)
CPU110は、CFメモリ130からデータを読み込む際に、キャッシュメモリ150のDフラグが“1”となっているセクタを避けてデータを転送しなければならない。つまり、キャッシュメモリ150のDフラグが“0”(有効なセクタ)のセクタに対してのみリード動作を実行する。しかし、ヒットしているページならばライトデータがまばらに存在する、言い換えればDフラグに“1”と“0”がランダムに混在した状態となっている可能性は十分考えられる。そのような場合、いちいち“0”のセクタだけ選び出して、それに対応するCFメモリ130にリード動作を行うことは処理的に煩雑すぎるし、実際に動作を行った場合にCFメモリ130のオーバヘッドが大きすぎて実用的な性能を出すことができない。
(Operation of CF memory / cache memory using D flag)
When reading data from the
そこで実施形態では、Dフラグが“0”のセクタのみに対してのみデータの読み出しを行ったかのように動作する機構をキャッシュメモリ150に設けた。ここでは、一例としてキャッシュメモリ150を一般的なDRAMとして説明するが、より高速なSDRAM、DDR等でも同じ原理である。 Therefore, in the embodiment, the cache memory 150 is provided with a mechanism that operates as if data is read only from the sector having the D flag of “0”. Here, the cache memory 150 is described as a general DRAM as an example, but the same principle applies to higher speed SDRAM, DDR, and the like.
図4は、DフラグレジスタによるCFメモリ130からのデータをキャッシュメモリ150に書き換える機構を示す図である。この機構は、キャッシュコントローラ160にDフラグレジスタ(64ビットのシフトレジスタ)300を設ける。Dフラグレジスタ300は、CFメモリ130からキャッシュメモリ150への1セクタ毎のデータ転送に応じて1ビットずつシフト動作する。キャッシュコントローラ160は、キャッシュメモリ150を構成するDRAM330を制御するために、DRAM330に対しアドレス、R/Wの制御信号等のDRAM制御信号を出力する。DRAM330のデータ信号は、CFメモリ130又はホストインターフェイス170から入出力される。DRAM330は、メーカ毎にいろいろな種類のものが販売されているが、どのDRAMにもライトプロテクトの信号端であるDM(Input data mask)信号端子が存在する。ただし、各メーカやメモリの種類によって信号名が違ったり、形態が異なっていたりするが、原理は同じである。
FIG. 4 is a diagram showing a mechanism for rewriting data from the
そこで実施形態では、Dフラグレジスタ300の出力端とDRAM330のDM端子とを接続する構成とする。DRAM330は、このDM信号「H」=“1”が入力されると、ライトプロテクト(書き込み禁止)を掛けることができる。実施形態ではこの原理を利用して、Dフラグレジスタ300の値が“0”の有効なセクタのみに対してデータの書き換えが行える仕組みを実現する。一方、Dフラグレジスタ300の値が“1”のセクタに対しては、ライトプロテクトが掛かり、DRAM330の内容がそのまま保持される。
Therefore, in the embodiment, the output terminal of the
次に、図5のフローチャートを用いて、図4の動作について説明する。先ず、CPU110は、CFメモリ130から1ページ(64セクタ)分のデータをリードするよう、CFコントローラ140に対して指令を出す(S100)。即ち、キャッシュメモリ側の状態(有効ではないセクタ)により、CFメモリ130に対してセクタ単位に頻繁にリード要求を行う必要がない。一方、CPU110は、キャッシュコントローラ160のDフラグレジスタ300に、CFメモリ130から読み込もうとしているキャッシュの1ページに対応するDフラグの値(64ビット)をセットする(S110)。
Next, the operation of FIG. 4 will be described using the flowchart of FIG. First, the CPU 110 issues a command to the
キャッシュコントローラ160は、CFメモリ130から1セクタずつリードデータが送られてくる度にキャッシュメモリ150のDRAM330に対してライト動作を行うが、同時に転送先のアドレスに連動してDフラグレジスタ300の値をDRAM330のDM端子に出力する。Dフラグレジスタ300は、1セクタ転送毎に1ビットずつシフトする。これにより、Dフラグレジスタ300の値が“1”の場合には、CFメモリ130から1セクタ分データが転送されているのにかかわらず、DRAM330は書き換えられずに元のデータを維持することができる。一方、Dフラグレジスタ300の値が“0”の場合には、CFメモリ130から転送される1セクタ分データがDRAM330に書き込まれる(S120)。そして、CFメモリ130からの1ページ分の書き換えが終了したかをチェックし(S130)、終了していなければ、S120を繰り返し実行する。64セクタ分のデータをCFメモリ130からキャッシュメモリ150のDRAM330に転送し終わった後は、CPU110は、キャッシュメモリ150の当該書き込み対象ページ(64セクタ)のDフラグにすべて“1”をセットし、処理を終了する(S140)。
The cache controller 160 performs a write operation on the
(ライトバック)
キャッシュメモリ150からCFメモリ130へのライトバックは、ページ単位で行うが、一般的にCFメモリ130は物理ブロック単位でイレーズ/ライトを行うため、物理ブロック分をまとめてライトバックを行わなければならない。もしも、物理ブロックのサイズと異なるサイズでCFメモリ130に対してライトしたとすると、CFメモリ130の内部では書き換えないデータが発生するためリード・モディファイ・ライトを行わなければならなくなる。すると、CFメモリ130を構成するNANDメモリ間でのデータ読み出し/書き戻しが大量に発生し、オーバヘッドでCFメモリ130は大幅な性能低下に陥ってしまう。
(Write back)
Write back from the cache memory 150 to the
また、キャッシュメモリ150の1ページも物理ブロックと同じサイズにすれば話が単純になるが、キャッシュメモリ150のページサイズを大きくしすぎると総ページ数が減り、ミスする確率が上がってしまう。これにより、逆に性能が低下してしまうため、サイズは十分検討して決める必要がある。 Further, if one page of the cache memory 150 is made the same size as the physical block, the story becomes simple. However, if the page size of the cache memory 150 is made too large, the total number of pages decreases, and the probability of misses increases. As a result, the performance deteriorates, and the size needs to be determined after careful consideration.
従って、ライトバック動作では、1物理ブロック(例えば、2048セクタ=32ページ)で行うために、CFメモリ130上で常に連続した1物理ブロック(ここでは、2048セクタ)分の領域を確保しなければならない。このため、CFメモリ130上のアドレスとライトバックされたキャッシュメモリ150に対応する以下の3種類のアドレス変換テーブルを用意する。
(a)論理−物理アドレス変換テーブル
(b)物理−論理アドレス変換テーブル
(c)ヴァリッドページフラグテーブル
Therefore, since the write back operation is performed in one physical block (for example, 2048 sectors = 32 pages), an area for one continuous physical block (here, 2048 sectors) must be secured on the
(A) Logical-physical address conversion table (b) Physical-logical address conversion table (c) Valid page flag table
(a)論理−物理アドレス変換テーブルは、通常のライトバックで必要となるテーブルで、ホスト200からリード/ライトコマンドが出力された際に、要求されたデータがCFメモリ130のどこに格納されているかを調べるためのテーブルである。リード/ライトコマンドで指定されたアドレスが論理アドレスであり、このテーブルによって対応する物理アドレスが求められる。
(b)物理−論理アドレス変換テーブルは、逆にCFメモリ130上のアドレス(物理アドレス)を入力すると論理アドレスが求まるテーブルである。これは、ガーベージコレクションと呼ばれる動作の時に必要となる。
(c)ヴァリッドページフラグテーブルは、CFメモリ130の64セクタ毎に1ビット、4バイト当たりCFメモリの2048セクタ分に相当する。
(A) The logical-physical address conversion table is a table necessary for normal write-back, and where the requested data is stored in the
(B) A physical-logical address conversion table is a table in which a logical address is obtained when an address (physical address) on the
(C) The valid page flag table corresponds to 1 bit per 64 sectors of the
(ガーベージコレクション)
次に、ガーベージコレクションの効率的な動作について説明する。
1物理ブロック(例えば、32ページ(2048セクタ単位))でライトバックする場合、CFメモリ130に一度ライトしたデータは当然ながらいつかは書き換えられる。すると、CFメモリ130上でキャッシュメモリ150のページ(64セクタ)単位で古いデータ(ガーベージ:ゴミ)が残ることになる。この古いデータをそのままにしておくと、CFメモリ130全体にガーベージが散乱して、連続した32ページ(2048セクタ)が確保できなくなり、ライトバックができなくなる。
(Garbage collection)
Next, an efficient operation of garbage collection will be described.
When writing back in one physical block (for example, 32 pages (in 2048 sector units)), the data once written in the
図6は、CFメモリ130上のガーベージ発生の一例を示す図である。図中、1つの升目はページ単位のデータを示し、各行が1物理ブロック単位のデータを示すものとする。また、網掛け部の四角は、ガーベージが発生したページ(無効なデータ)を示している。その結果、図6(a)の例では、下から1行目のブロックと下から4つ目のブロックのみにしか、1物理ブロック(例えば、2048セクタ)のデータが確保できなくなっている。
FIG. 6 is a diagram illustrating an example of garbage generation on the
そこで、そのような状況を判断したCPU110は、CFメモリ130中の各物理ブロックで、ガーベージの発生が多い物理ブロック(図6(a)の例では、1行目、3行目、6行目)を抽出し、CFコントローラ140に対し、それらの各物理ブロックの中で有効なページ(図6の例では、符号(a),(b)‥‥(h))を読み出し、1物理ブロック分のデータをキャッシュメモリ150に集めるリード動作を実行する。その後、CPU110はCFコントローラ140に対し、キャッシュメモリ150に書き込んだ1物理ブロック分のデータをCFメモリ130にライトバックする指令を出す。これにより、CFメモリ130は図6(b)に示すように、最下位のブロックに有効なページが寄せ集められた1物理ブロックのデータが格納されると共に、1行目、3行目、6行目のブロックにはゴミしか含まない再生可能な1物理ブロック(例えば、2048セクタ)の領域が生成される。このゴミしか含まないブロックには、次回のライトバック時に新しいブロックデータを上書きすることができる。この動作により、ガーベージコレクションが完了する。
Therefore, the CPU 110 that has determined such a situation, in each physical block in the
(Dフラグを使用したガーベージコレクション動作)
図7は、上述したガーベージコレクションを行うときに、図5に示したDフラグレジスタを用いて、CFメモリ130の有効なページ(図6の符号(a),(b)‥‥(h))を読み出して、キャッシュメモリ150に書き込を行う回路を示している。
(Garbage collection operation using the D flag)
FIG. 7 shows an effective page of the CF memory 130 (reference numerals (a), (b),... (H) in FIG. 6) using the D flag register shown in FIG. A circuit for reading and writing to the cache memory 150 is shown.
図8は、ガーベージコレクションにおける、CPU110又はCFコントローラ140又はキャッシュコントローラ160の動作を示すフローチャートである。CPU110は、ガーベージコレクションが必要と判断したとき、上述したヴァリッドページフラグテーブルを検索して、4バイト毎(=32ページ分)に“1”のビット数(有効なページ数)を数える動作を64回(2048セクタ)行い、ガーベージ(ゴミ)をたくさん含んでいる個所を調べる。即ち、4バイト中の値が“1”のビットを数え、その数が少ない個所を調べる。4バイト中にひとつでも“1”のビットがあると言うことは、その他の“0”のビットは全てゴミということである。そこで、“1”のビット数が少ない4バイトを見つけたら、その中で“1”のビットに対応するCFメモリ130の例えば64セクタの論理アドレスを物理−論理アドレス変換テーブルから求める。論理アドレスが求まったらそれらをすべて一旦キャッシュメモリ150に読み出す(S200)。
FIG. 8 is a flowchart showing the operation of the CPU 110, the
この読み出し動作時、CPU110は、図7に示すDフラグレジスタ300(64ビット)にオール“0”の値をセットする。そして、例えば図6(a)に示したCFメモリ130のページ(a)の64セクタをキャッシュメモリ150に割り当てると共に、ヴァリッドフラグを“1”に設定して、CFコントローラ140に指令する(S210)。すると、CFコントローラ140は、ライトバック動作の要領にて、CFメモリ130から読み出した各セクタのデータをキャッシュメモリ150を構成するDRAM330の割り当てた領域に書き込む(S220)。この時、キャッシュコントローラ160のDフラグレジスタ300の値はオール“0”であるため、DRAM330に対するライトプロテクションはディセーブルされている。つまり、通常の書込み動作が行われる。CFコントローラ140は、このようなCFメモリ130からの読み出しと、キャッシュメモリ150への書込み動作をページ(a)の64セクタ分を実行して(S230)、1ページ分の移動動作を実行する。CFコントローラ140は、他の有効ページ(図6(a)のページ(b)、(c)‥‥(g))についても同様の動作を行う(S240,S250)。これにより、キャッシュメモリ150の割り当てられた領域には、1物理ブロック分のデータの移動が完了する。
During this read operation, the CPU 110 sets a value of all “0” in the D flag register 300 (64 bits) shown in FIG. Then, for example, the 64 sectors of page (a) of the
その後、CPU110は、CFコントローラ140に対しライトバック指令を出すと、CFコントローラ140は、キャッシュメモリ150の当該1物理ブロックのデータをCFメモリ130へ書き戻す(S260)。これにより、CFメモリ130は、図6(b)の状態に遷移する。つまり、CFメモリ130は図6(b)に示すように、最下位のブロックに有効なページが寄せ集められた1物理ブロックのデータが格納されると共に、1行目、3行目、6行目のブロックにはゴミしか含まない再生可能な1物理ブロック(例えば、2048セクタ)の領域が生成される。よって、図7に示した回路を用いることによって、ホスト200からライトデータ無しのライトコマンドが送られたのと同じ動作になり、すべての処理を単純化することができる。
Thereafter, when the CPU 110 issues a write back command to the
ここで期待できる効果は、上記したガーベージコレクションを行うべき領域、例えば2048セクタは現在ゴミがどんどん増えている個所であって、その付近に対してホスト200からライトコマンドにより書き換えが多数発生していると考えられる。すると、残った有効なページ(64セクタ)も近々書き換えられる可能性が高い。Dフラグレジスタ300を使用せずにガーベージコレクションを単独で行うと、その現時点でのゴミはすべて取り除くことができるが、本実施形態のようにDフラグレジスタ300を使用してガーベージコレクションを行えば、今回割り当てた1ページも後々ライトコマンドにより埋められて、CFメモリ130から読み出す必要がなくなる可能性が大きくなる。これによりガーベージコレクションのスピードも向上する。したがって、Dフラグレジスタ300を使用することにより、ライトコマンド実行時の効率化、高速化することができる。また、ガーベージコレクションを単純化、効率化することができる。
The effect that can be expected here is the area where garbage collection is performed, for example, 2048 sector, where the garbage is increasing at present, and a large number of rewrites are generated by the write command from the
以上、本実施形態によれば、ライトコマンド時のフラッシュメモリのリード動作では、キャッシュメモリのセクタ単位にDフラグを持たせ、ライトデータを転送したキャッシュメモリのセクタ、またはCFメモリから読み出したデータを転送したキャッシュメモリのセクタに対してDフラグを“1”として有効なデータが存在することを判断できるようにしておく。ライトコマンド実行時には、そのDフラグに基づき、“1”の場合はライトプロテクトを掛け、“0”のセクタにのみにCFメモリからのデータを書き込むとこで、キャッシュメモリ上には書き換えられたデータ、又は過去にあったデータしか存在しないようにする。そして、ページすべてにデータが揃った時点でCFメモリに書き戻す。これにより、キャッシュメモリを構成するDRAMのライト動作を削減することができる。 As described above, according to the present embodiment, in the read operation of the flash memory at the time of the write command, the D flag is provided for each sector of the cache memory, and the sector of the cache memory to which the write data is transferred or the data read from the CF memory The D flag is set to “1” for the transferred cache memory sector so that it can be determined that valid data exists. When executing the write command, based on the D flag, if “1”, the write protection is applied, and the data from the CF memory is written only in the sector “0”, so that the rewritten data on the cache memory, Alternatively, only the data that existed in the past should exist. Then, the data is written back to the CF memory when all the pages have data. Thereby, the write operation of the DRAM constituting the cache memory can be reduced.
また、ガーベージコレクションでは、CFメモリの有効なページのデータをキャッシュメモリに移動した後、ライトバックする動作にあっても、キャッシュメモリのDRAMに対しDフラグをオール“0”に設定してCFメモリの有効ページの内容をキャッシュメモリにコピーすることができるため、ホストからライトデータ無しのライトコマンドが送られたのと同じ動作になり、すべての処理を単純化することができる。 In the garbage collection, even if the data of the valid page of the CF memory is moved to the cache memory and then written back, the D flag is set to “0” for the DRAM of the cache memory and the CF memory. Since the contents of the valid page can be copied to the cache memory, the operation is the same as when a write command without write data is sent from the host, and all processing can be simplified.
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組み合わせを行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, changes, and combinations can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
100‥半導体メモリ装置、110‥CPU、120‥CPUバス、130‥CFメモリ、140‥CFコントローラ、150‥キャッシュメモリ、160‥キャッシュコントローラ、170‥ホストインターフェイス、180‥ローカルバス、200‥ホスト、210‥ホストバス、300‥Dフラグレジスタ、330‥キャッシュメモリのDRAM、
DESCRIPTION OF
Claims (4)
低速で大容量のフラッシュメモリと、
前記フラッシュメモリに記憶される一部のデータを記憶し、複数のセクタから構成されるページ単位でアクセスされるキャッシュメモリと、
外部のホストからのライトコマンドにより転送されるデータを保持すると共に、前記キャッシュメモリのアクセスを制御するホストインターフェイスと、
前記キャッシュメモリの前記セクタ毎に設定されるフラグであって、前記ホストからの前記データ、または前記フラッシュメモリからのデータが書き込まれた場合は有効ビットを、それらのデータがない場合は非有効ビットを示すフラグが前記CPUによって設定されるフラグレジスタを有し、前記フラッシュメモリから前記キャッシュメモリに各ページのデータをコピーする際に、前記フラグレジストの内容が前記非有効ビットを示すセクタのみに前記キャッシュメモリの内容を書き換える制御手段と、
を具備し、
前記コピーが終了した後の前記キャッシュメモリの複数ページの書換え済みデータを前記フラッシュメモリに書き戻すことを特徴とする半導体メモリ装置。 CPU,
Low-speed, large-capacity flash memory,
A cache memory that stores a part of the data stored in the flash memory and is accessed in units of pages composed of a plurality of sectors;
A host interface for holding data transferred by a write command from an external host and controlling access to the cache memory;
A flag set for each sector of the cache memory, in which the valid bit is written when the data from the host or the data from the flash memory is written, and the invalid bit when there is no such data And a flag register that is set by the CPU, and when copying the data of each page from the flash memory to the cache memory, only the sector in which the content of the flag register indicates the invalid bit A control means for rewriting the contents of the cache memory;
Comprising
A semiconductor memory device, wherein a plurality of pages of rewritten data in the cache memory after the copying is completed is written back to the flash memory.
低速で大容量のフラッシュメモリと、
前記フラッシュメモリに記憶される一部のデータを記憶し、複数のセクタから構成されるページ単位でアクセスされるキャッシュメモリと、
前記キャッシュメモリの前記セクタ毎に設定されるフラグであって、前記CPUがガーベージコレクションを実行すると判断した時に、非有効ビットを示すフラグが設定されるフラグレジスタを有し、前記フラッシュメモリから前記キャッシュメモリに有効なページのデータをコピーする際に、前記フラグレジストの前記非有効ビットに基づき前記キャッシュメモリの割り当てられた領域に書き込む制御手段と、
を具備し、
前記コピーが終了した後の前記キャッシュメモリの複数ページの書換え済みデータを前記フラッシュメモリに書き戻すことを特徴とする半導体メモリ装置。 CPU,
Low-speed, large-capacity flash memory,
A cache memory that stores a part of the data stored in the flash memory and is accessed in units of pages composed of a plurality of sectors;
A flag that is set for each sector of the cache memory, and a flag register that sets a flag indicating an invalid bit when the CPU determines to execute garbage collection; Control means for writing to the allocated area of the cache memory based on the non-valid bit of the flag register when copying valid page data to the memory;
Comprising
A semiconductor memory device, wherein a plurality of pages of rewritten data in the cache memory after the copying is completed is written back to the flash memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013071894A JP6027479B2 (en) | 2013-03-29 | 2013-03-29 | Semiconductor memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013071894A JP6027479B2 (en) | 2013-03-29 | 2013-03-29 | Semiconductor memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014197265A true JP2014197265A (en) | 2014-10-16 |
JP6027479B2 JP6027479B2 (en) | 2016-11-16 |
Family
ID=52358016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013071894A Active JP6027479B2 (en) | 2013-03-29 | 2013-03-29 | Semiconductor memory device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6027479B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006163474A (en) * | 2004-12-02 | 2006-06-22 | Fujitsu Ltd | Storage device, control method thereof, and program |
JP2008299530A (en) * | 2007-05-30 | 2008-12-11 | Internatl Business Mach Corp <Ibm> | Technique for caching data to be written in main memory |
-
2013
- 2013-03-29 JP JP2013071894A patent/JP6027479B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006163474A (en) * | 2004-12-02 | 2006-06-22 | Fujitsu Ltd | Storage device, control method thereof, and program |
JP2008299530A (en) * | 2007-05-30 | 2008-12-11 | Internatl Business Mach Corp <Ibm> | Technique for caching data to be written in main memory |
Also Published As
Publication number | Publication date |
---|---|
JP6027479B2 (en) | 2016-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868618B2 (en) | Data reading and writing processing from and to a semiconductor memory and a memory of a host device by using first and second interface circuits | |
JP7115899B2 (en) | MEMORY MODULE FOR WRITE AND FLASH SUPPORT IN HYBRID MEMORY AND METHOD OF OPERATION THEREOF | |
US9378131B2 (en) | Non-volatile storage addressing using multiple tables | |
TWI559138B (en) | Memory device and method for managing memory | |
US8688894B2 (en) | Page based management of flash storage | |
JP5762930B2 (en) | Information processing apparatus and semiconductor memory device | |
US20100088459A1 (en) | Improved Hybrid Drive | |
US10310764B2 (en) | Semiconductor memory device and storage apparatus comprising semiconductor memory device | |
US11301331B2 (en) | Storage device and operating method of storage device | |
TWI699650B (en) | Memory device and computer system | |
US12086467B2 (en) | Read performance of memory devices | |
JP2007528079A (en) | Flash controller cache structure | |
KR20170087043A (en) | Mechanism enabling the use of slow memory to achieve byte addressability and near-dram performance with page remapping scheme | |
JP2009294982A (en) | Disk device and its control method | |
CN113243007A (en) | Storage class memory access | |
US20230120184A1 (en) | Systems, methods, and devices for ordered access of data in block modified memory | |
JP6018531B2 (en) | Semiconductor memory device | |
JP2012068765A (en) | Memory controller, flash memory system with memory controller, and control method of flash memory | |
JP6027479B2 (en) | Semiconductor memory device | |
US12105968B2 (en) | Systems, methods, and devices for page relocation for garbage collection | |
JP2011128826A (en) | Storage device and storage method for semiconductor nonvolatile memory | |
JP2020115275A (en) | Information processing device and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150615 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160531 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160726 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160726 |
|
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: 20161004 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161014 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6027479 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |