JP2010538385A - セクタの集合を利用したキャッシュ運用方法及びキャッシュ装置 - Google Patents

セクタの集合を利用したキャッシュ運用方法及びキャッシュ装置 Download PDF

Info

Publication number
JP2010538385A
JP2010538385A JP2010523923A JP2010523923A JP2010538385A JP 2010538385 A JP2010538385 A JP 2010538385A JP 2010523923 A JP2010523923 A JP 2010523923A JP 2010523923 A JP2010523923 A JP 2010523923A JP 2010538385 A JP2010538385 A JP 2010538385A
Authority
JP
Japan
Prior art keywords
cache
sectors
memory
flash memory
sector
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
Application number
JP2010523923A
Other languages
English (en)
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2010538385A publication Critical patent/JP2010538385A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/462Track or segment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

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

Abstract

セクタの集合を利用したキャッシュ運用方法及びキャッシュ装置に係り、該キャッシュ運用方法は、ホストから所定のデータを保存装置に所定のセクタに書き込むことを要請され、書き込みが要請された所定のセクタを含む所定のセクタ集合のために、キャッシュ・メモリが割り当てられているか否かを判断し、セクタ集合のために、キャッシュ・メモリを割り当て、割り当てられたキャッシュ・メモリに書き込みが要請されたデータを保存していて、セクタの集合単位で一度に書き込みを行うことによって、保存装置のアクセス速度が速くなる。

Description

本発明は、キャッシュ運用方法及びその方法によるキャッシュ装置に係り、さらに詳細には、保存装置、特に保存装置の書き込み及び消去回数を最小化できるように、データをキャッシングする方法及び装置に関する。
フラッシュ・メモリは、電気的にデータを消したり書き込むことができる不揮発性記憶素子である。マグネチックディスクを基にした保存装置に比べ、フラッシュ・メモリは、電力消耗が少なく、かつ小サイズであり、マグネチックディスク・メモリの代案として研究及び開発が活発に進められている。特に、デジタルカメラ、モバイルホン、PDA(personal digital assistant)のようなモバイル機器のメモリだけではなく、大容量ハードディスクを代替するSSD(solid state disk)として脚光を浴びることが予想される。
フラッシュ・メモリは、データ書き換えが自由なハードディスクとは異なり、データ書き換えが不可能である。従って、すでに使用中である領域にデータを書き換えるためには、書き換え以前のデータを消去(erase)せねばならない。すなわち、メモリブロックを、書き込み可能な初期状態に戻さなければならない。フラッシュ・メモリを動作させるにあたって消去は、書き込みに比べて非常に長い時間がかかる。また、書き込みがページ(page)単位で行われるのに比べて消去は、ページの集合であるブロック単位で行われるために、書き込みが要請されていないページまで、共に消去せねばならないという非効率さがある。
かような消去及び書き込みの遂行単位の不一致によって、書き込みの遂行性能は、読み取りに比べて顕著に落ちる。従って、フラッシュ・メモリを基にした保存装置の設計において、書き込み及び消去の性能改善は、核心技術に該当する。従来技術によるキャッシュ運用方法及びキャッシュ装置は、このようなフラッシュ・メモリ固有の特性を考慮しないために、前述の書き込み及び消去の性能改善に一助にならないという短所がある。
図1は、従来技術によるキャッシュ運用方法を説明するための図面である。
ホスト装置110が、セクタ単位でデータの書き込み(write)または読み取り(read)を要請すれば、キャッシュ装置120は、書き込みまたは読み取りが要請されたセクタを臨時(temporally)に保存する。書き込みが要請されたセクタを、保存装置130に直ちに書き込まず、キャッシュ・メモリに臨時的に保存する。読み取りが要請されたセクタは、保存装置130から読み取ってきて、キャッシュ・メモリに臨時的に保存し、ホスト装置110が、直接保存装置130から読み取らず、キャッシュ装置120から読み取ってくるようにする。
キャッシュ運用方法として、LRU(least recently used)アルゴリズムを使用する場合、キャッシュ・メモリに臨時的に保存されているセクタのうち、最も以前に参照されたセクタを順番に保存装置130にフラッシュ(flush)し、最も最近に参照された(MRU)セクタだけ保存することによって、ホスト装置110のアクセスが、キャッシュ装置120でヒット(hit)される確率を高める。
フラッシュ・メモリは、前述のように、消去がメモリブロック単位で行われ、1つのフラッシュ・メモリブロックには、複数個のセクタが保存される。従って、従来技術によるキャッシュ装置120をフラッシュ・メモリに適用すれば、セクタをフラッシュするたびに、セクタが保存されるブロックをいずれも消去し、書き換えなければならないと言う短所がある。
本発明が解決しようとする技術的課題は、書き込み単位と消去単位とが一致しないフラッシュ・メモリのような保存装置の特性を考慮してデータをキャッシング(caching)できるキャッシュ運用方法及びキャッシュ装置を提供するにおいて、前記キャッシュ運用方法を実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供するところにある。
前記技術的課題を解決するための本発明によるキャッシュ運用方法は、ホストから、保存装置の所定のセクタへの所定のデータ書き込みを要請される段階と、前記所定のセクタを含む所定のセクタの集合のために、キャッシュ・メモリが割り当てられているか否かを判断する段階と、前記判断結果に基づいて選択的に、前記セクタ集合のためにキャッシュ・メモリを割り当てる段階と、前記セクタ集合のために割り当てられたキャッシュ・メモリに、前記書き込みが要請されたデータを保存する段階とを含む。
本発明によるさらに望ましい実施形態によれば、前記保存装置は、フラッシュ・メモリであることを特徴とする。
本発明によるさらに望ましい実施形態によれば、前記キャッシュ運用方法は、前記キャッシュ・メモリに保存されたデータに基づいて、前記フラッシュ・メモリに保存されている前記セクタの集合を更新する段階をさらに含む。
本発明によるさらに望ましい実施形態によれば、前記更新する段階は、前記セクタの集合のうち、前記書き込みが要請された所定のセクタを除外した残りのセクタに保存されたデータを、前記フラッシュ・メモリから読み取る段階と、前記残りのセクタに保存されたデータと、前記書き込みが要請されたデータとに基づいて、前記セクタの集合に保存するデータを生成する段階と、前記生成されたデータを、前記フラッシュ・メモリに書き込む段階とを含む。
前記技術的課題を解決するための本発明によるキャッシュ運用方法は、ホストから保存装置の所定のセクタに保存されたデータの読み取りを要請される段階と、前記所定のセクタを含むセクタ集合のために、キャッシュ・メモリが割り当てられているか否かを判断する段階と、前記判断結果に基づいて選択的に、前記セクタの集合のためにキャッシュ・メモリを割り当て、前記読み取りが要請されたデータを、前記フラッシュ・メモリから読み取り、前記セクタの集合のために割り当てられたキャッシュ・メモリに保存する段階と、前記キャッシュ・メモリに保存された前記読み取りが要請されたデータを、前記ホストに伝送する段階とを含む。
本発明によるさらに望ましい実施形態によれば、前記保存装置は、フラッシュ・メモリであることを特徴とする。
前記技術的課題を解決するための本発明によるキャッシュ装置は、ホストから、保存装置の所定のセクタへの所定のデータ書き込みを要請されるホストインターフェースと、前記書き込みが要請された所定のセクタを含む所定のセクタ集合のために、キャッシュ・メモリが割り当てられているか否かを判断し、前記判断結果に基づいて選択的に、前記セクタの集合のためにキャッシュ・メモリを割り当てる制御部と、前記割り当て結果によって、前記書き込みが要請されたデータを保存するキャッシュ・メモリとを含む。
前記技術的課題を解決するための本発明によるキャッシュ装置は、ホストから保存装置の所定のセクタに保存されたデータの読み取りを要請されるホストインターフェースと、前記所定のセクタを含むセクタのグループのためにキャッシュ・メモリが割り当てられているか否かを判断し、前記判断結果に基づいて選択的に、前記セクタの集合のためにキャッシュ・メモリを割り当てる制御部と、前記割り当て結果によって、前記読み取りが要請されたデータを、前記フラッシュ・メモリから読み取って保存するキャッシュ・メモリとを含み、前記ホストインターフェースは、前記キャッシュ・メモリに保存された前記読み取りが要請されたデータを、前記ホストに伝送することを特徴とする。
前記技術的課題を解決するために本発明によるシステムは、所定のデータをフラッシュ・メモリの所定のセクタに書き込むことを要請したり、前記所定のデータを、前記フラッシュ・メモリの所定のセクタから読み取ることを要請するホストと、前記書き込み要請または前記読み取り要請によって、前記所定のセクタを含むセクタの集合単位でキャッシュ・メモリを管理し、前記所定のデータをキャッシングするキャッシュ装置と、前記キャッシュ装置から前記セクタ集合単位でデータを受信して書き込みまたは読み取りを行うフラッシュ・メモリとを含む。
前記技術的課題を解決するために本発明は、前記キャッシュ運用方法を実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供する。
本発明によれば、保存装置、特にフラッシュ・メモリの特性を考慮してセクタの集合単位でキャッシュ・メモリを管理でき、フラッシュ・メモリの書き込み及び書き込みのための消去回数を最小化できる。
書き込み及び書き込みのための消去回数が最小化されることによって、フラッシュ・メモリのアクセス速度が向上し、フラッシュ・メモリの寿命が長くなる。
従来技術によるキャッシュ運用方法を説明するための図である。 本発明によるキャッシュ装置を含むシステムを図示する図である。 本発明の一実施形態によるキャッシュ運用方法を図示する図である。 本発明の一実施形態によるセクタの集合を更新する方法を図示する図である。 本発明の一実施形態による書き込み要請によるキャッシュ運用方法を説明するためのフローチャートである。 本発明の一実施形態による読み取り要請によるキャッシュ運用方法を説明するためのフローチャートである。
以下、図面を参照しつつ、本発明の望ましい実施形態について詳細に説明する。
図2は、本発明によるキャッシュ装置210を含むシステムを図示する。図2を参照すれば、本発明によるキャッシュ装置210は、ホストインターフェース212、制御部214、キャッシュ・メモリ216及び更新部218を含む。以下、保存装置として、フラッシュ・メモリ230を例にして説明する。しかし、本発明によるキャッシュ装置及びキャッシュ運用方法が、フラッシュ・メモリのように、単位で書き込みと消去とを行うあらゆるメモリに適用されうることは、本発明が属する技術分野で当業者であるならば、容易に理解できるであろう。
ホスト装置220は、フラッシュ・メモリ230に対する書き込みまたは読み取りの要請をキャッシュ装置210に伝送する。データを、フラッシュ・メモリ230の所定のセクタに書き込むことを要請したり、フラッシュ・メモリ230の所定のセクタに保存されているデータの読み取りを要請する。
キャッシュ装置210は、ホスト装置220の書き込みまたは読み取りの要請によって、セクタの集合単位でキャッシュ・メモリを管理する。セクタの集合というのは、書き込みまたは読み取りが要請されたセクタを含む複数のセクタのグループを意味する。セクタの集合は、フラッシュ・メモリ230の消去単位に基づいて決定され、一般的に、複数個の連続したセクタである。詳細な内容は、図3と関連して後述する。
ホストインターフェース212は、ホスト装置220が伝送する書き込みまたは読み取りの要請を受信する。
制御部214は、ホストインターフェース212が受信した書き込みまたは読み取りの要請によって、書き込みまたは読み取りが要請されたセクタを含むセクタ集合のために、キャッシュ・メモリ216が割り当てられているか否かを判断する。図3を参照しつつ、詳細に説明する。
図3は、本発明の一実施形態によるキャッシュ運用方法を図示する。図3を参照すれば、制御部214は、セクタの集合(sector set)310ないし330単位で、キャッシュ・メモリ216を管理する。前述のように、フラッシュ・メモリ230は、書き換えを行えないために、データを保存しているメモリブロックをまず消去した後、ブロック単位で書き込みを行わねばならない。従って、制御部214は、フラッシュ・メモリ230の消去単位に基づいて決定されたセクタの集合単位でキャッシュ・メモリ216を管理する。
フラッシュ・メモリ230のメモリ素子が1個である場合には、フラッシュ・メモリのブロック一つが消去単位であるから、メモリブロック一つに割り当てられたセクタ(sector)がセクタの集合になる。しかし、フラッシュ・メモリ230が複数個のメモリ素子を有している場合には、それぞれのメモリ素子に含まれているブロックが同時に消去されうるので、消去単位は、(メモリブロック)×(メモリ素子の個数)となる。
セクタの集合が、フラッシュ・メモリ230の消去単位に基づいて決定されれば、制御部214は、ホスト装置220によって書き込みまたは読み取りが要請されたセクタの集合310ないし330のためにキャッシュ・メモリを割り当て、セクタの集合単位でキャッシュ・メモリを管理する。
図3に図示された例の通り、それぞれのセクタの集合310ないし330のためにキャッシュ・メモリを割り当て、ホスト装置が書き込みまたは読み取りを要請したセクタだけキャッシュ・メモリに保存し、ホスト装置にアクセスさせる。
キャッシュ装置210からフラッシュ・メモリ230にフラッシュ(flush)を行うときには、それぞれのセクタの集合でないセクタの集合単位で、フラッシュを行うことによって、フラッシュ・メモリの書き込み回数を最小化する。図1と関連し、前述の従来技術によるキャッシュ装置120をフラッシュメモリに適用すれば、セクタ単位でフラッシュが行われるので、セクタ一つがフラッシュされるたびに、セクタが保存されるメモリブロック全部を消去し、書き込みを行わねばならなかった。しかし、本発明によるキャッシュ装置は、セクタの集合単位でフラッシュが行われるので、フラッシュ・メモリ230にフラッシュする回数を減らすことができる。従って、フラッシュ・メモリの書き込み及び書き込みのための消去回数が減る。
フラッシュするセクタの集合を選択するアルゴリズムは、従来技術と同じLRU(least recently used)アルゴリズムが利用されうる。換言すれば、最も以前に参照されたセクタの集合をフラッシュするように実施形態を構成できる。
図3に図示された例で、Sector Set #5 310が最も最近に参照された(MRU:most recently used)セクタの集合であり、参照された順番にセクタの集合がキャッシュ・メモリに保存されていると仮定すれば、Sector Set #9 330が最も以前に参照されたセクタの集合である。従って、ホスト装置の書き込みまたは読み取りの要請によって、新たなセクタの集合のためにキャッシュ・メモリを割り当てる場合、制御部214は、Sector Set #9 330をフラッシュ・メモリにフラッシュし、新たなセクタの集合のために、キャッシュ・メモリを割り当てる。
もし最も最近に参照されたセクタの集合を決定するときには、それぞれのセクタの集合に含まれたセクタが、最も最近に参照されたか否かによって決定する。もしSector Set #1 320のセクタ322ないし328のうち、一つでも最も最近に参照されれば、Sector Set #1 320全部が最も最近に参照されたセクタの集合になる。
再び図2を参照すれば、制御部214がセクタの集合単位でキャッシュ・メモリ216を管理する具体的な方法は、ホスト装置が書き込みを要請したのか、読み取りを要請したのかによって変わる。制御部214のキャッシュ運用方法について、書き込みと読み取りとに分けてを説明する。
(1)書き込み
ホストインターフェース212がホストから受信した要請が、所定のセクタに対する書き込み要請であるならば、制御部214はまず、書き込みが要請されたセクタを含むセクタ集合のために、キャッシュ・メモリ216が割り当てられているか否かを判断する。
セクタ集合のために、キャッシュ・メモリ216が割り当てられていなければ、更新部218を制御し、最も以前に参照されたセクタの集合をフラッシュ・メモリ230にフラッシュし、セクタの集合のためにキャッシュ・メモリ216を割り当てた後、割り当てられたキャッシュ・メモリに書き込みが要請されたデータを保存する。セクタ集合のために、キャッシュ・メモリ216がすでに割り当てられていれば、割り当てられたキャッシュ・メモリに書き込みが要請されたデータを保存する。
(2)読み取り
ホストインターフェース212がホストから受信した要請が所定のセクタに対する読み取り要請であるならば、制御部214は、読み取りが要請されたセクタを含むセクタ集合のために、キャッシュ・メモリ216が割り当てられているか否かを判断する。
セクタ集合のために、キャッシュ・メモリ216が割り当てられていなければ、更新部218を制御し、最も以前に参照されたセクタの集合をフラッシュ・メモリ230にフラッシュし、セクタ集合のために、キャッシュ・メモリ216を割り当てる。その後、読み取りが要請されたデータをフラッシュ・メモリ230から読み取り、割り当てられたキャッシュ・メモリに保存する。
セクタ集合のために、キャッシュ・メモリ216がすでに割り当てられていれば、割り当てられたキャッシュ・メモリに、読み取りが要請されたデータが存在するか否かを判断する。キャッシュ・メモリ216は、セクタの集合に含まれるセクタのうち、過去にホスト装置220がアクセスしたセクタのデータだけ保存している。従って、セクタ集合のために、キャッシュ・メモリ216が割り当てられていても、キャッシュ・メモリ216に読み取りが要請されたデータが存在しないこともある。その場合、制御部214は、フラッシュ・メモリ230から、読み取りが要請されたデータを読み取り、セクタの集合のために割り当てられたキャッシュ・メモリに保存する。
更新部218は、制御部214の制御によって、キャッシュ・メモリ216に保存されたセクタの集合をフラッシュ・メモリにフラッシュする。新たなセクタの集合のためにキャッシュ・メモリ216を割り当てるために、最も以前に参照されたセクタの集合をフラッシュ・メモリ230にフラッシュする。キャッシュ・メモリ216に保存されているデータに基づいて、フラッシュ・メモリ230に保存されているセクタの集合を更新することによって、フラッシュを行う。図4を参照しつつ、詳細に説明する。
図4は、本発明の一実施形態によるセクタの集合を更新する方法を図示する。
Sector Set #9 410が、フラッシュ・メモリ230にフラッシュされる場合を仮定して説明する。セクタの集合が16個のセクタからなり、セクタの集合のうち、からセクタ0,12及び15だけホスト装置220によってアクセスされ、キャッシュ・メモリ216にセクタ0,12及び15だけ保存されている。前述のように、フラッシュ・メモリの特性によって、セクタの集合は、消去単位に基づいて決定され、消去単位に該当するメモリブロックを全部消去し、一度に書き込みを行わねばならない。従って、Sector Set #9をフラッシュ・メモリに書き込むためには、全体セクタの集合に対して、一度に書き込みを行わねばならない。
従って、更新部218は、フラッシュ・メモリ230から、Sector Set #9 420のうち、キャッシュ・メモリに保存されていない残りのセクタのデータを読み取り、書き込みを行うSector Set #9 430を生成する。セクタ1ないし11,13及び14をフラッシュ・メモリ230から読み取り、キャッシュ・メモリに保存されているセクタ0,12及び15と読み取ってきたセクタとを結合し、フラッシュ・メモリに書き込みを行うSector Set #9 430を生成する。生成されたセクタの集合をフラッシュ・メモリ230にさらに書き込むことによって、フラッシュを行う。フラッシュ・メモリに保存されている更新前のSector Set #9 420は、書き込みを行う前に消去される。
図5は、本発明の一実施形態による書き込み要請によるキャッシュ運用方法を説明するためのフローチャートである。
段階510でキャッシュ装置は、ホスト装置から、保存装置の所定のセクタへの所定のデータ書き込みを要請される。フラッシュ・メモリにアクセスするホスト装置が伝送する書き込み要請を受信する。
段階520でキャッシュ装置は、書き込みが要請されたセクタを含むセクタ集合のために、キャッシュ・メモリが割り当てられているか否かを判断する。本発明によるキャッシュ運用方法は、セクタ単位ではないフラッシュ・メモリの消去単位に基づいて決定されたセクタの集合単位で、キャッシュ・メモリを管理する。従って、書き込みが要請されたセクタではないセクタ集合のために、キャッシュ・メモリが割り当てられているか否かを判断する。
セクタ集合のために、キャッシュ・メモリが割り当てられていなければ、段階522でキャッシュ装置は、キャッシュ・メモリに保存されている最も以前に参照されたセクタの集合をフラッシュ・メモリにフラッシュし、書き込みが要請されたセクタを含むセクタ集合のために、キャッシュ・メモリを新しく割り当てる。
段階520でセクタ集合のために、すでにキャッシュ・メモリが割り当てられていると判断されるか、または段階522で新たにセクタ集合のために、キャッシュ・メモリが割り当てられれば、段階530でキャッシュ装置は、割り当てられたキャッシュ・メモリに書き込みが要請されたデータを保存する。
段階540でキャッシュ装置は、段階530で保存されたデータに基づいて、フラッシュ・メモリに保存されたセクタの集合を更新する。段階530で、キャッシュ・メモリから、データが保存されたセクタの集合がフラッシュ・メモリにフラッシュされる。
図4と関連して前述した通り、セクタの集合のうち、キャッシュ・メモリに保存されていないセクタのデータをフラッシュ・メモリから読み取ってきて、読み取ってきたセクタのデータと、キャッシュ・メモリに保存されているデータとを結合する。結合の結果、フラッシュ・メモリに書き込みを行うセクタの集合が生成され、これをフラッシュ・メモリに書き込む。フラッシュ・メモリに保存されている更新前のセクタの集合は、書き込みを行う前にフラッシュから消去される。
図6は、本発明の一実施形態による読み取り要請によるキャッシュ運用方法を説明するためのフローチャートである。図6を参照すれば、段階610でキャッシュ装置は、ホスト装置から保存装置に所定のセクタに保存されたデータの読み取りを要請される。
段階620でキャッシュ装置は、段階610の読み取り要請によって読み取りが要請されたセクタを含むセクタ集合のために、キャッシュ・メモリが割り当てられているか否かを判断する。
段階620でセクタ集合のために、キャッシュ・メモリが割り当てられていると判断されれば、段階622でキャッシュ装置は、セクタの集合のために割り当てられたキャッシュ・メモリに、読み取りが要請されたセクタのデータが存在するか否かを判断する。セクタの集合のために割り当てられたキャッシュ・メモリには、セクタの集合に含まれたセクタのうち、過去にホスト装置がアクセスしたセクタのデータだけ保存されている。従って、段階622でキャッシュ装置は、もう一度読み取りが要請されたデータがセクタの集合のために割り当てられたキャッシュ・メモリに存在するか否かを判断する。
段階620でセクタ集合のために、キャッシュ・メモリが割り当てられていないと判断されれば、段階624でキャッシュ装置は、セクタ集合のためにキャッシュ・メモリを割り当てる。
段階630でキャッシュ装置は、読み取りが要請されたデータをフラッシュ・メモリから読み取り、割り当てられたキャッシュ・メモリに保存する。セクタ集合のために、すでにキャッシュ・メモリが割り当てられているが、段階622で、読み取りが要請されたデータが、割り当てられたキャッシュ・メモリにはないと判断された場合、及びセクタ集合のために、キャッシュ・メモリが割り当てられておらず、段階624でセクタ集合のために、新たにキャッシュ・メモリを割り当てた場合に、読み取りが要請されたデータをフラッシュ・メモリから読み取り、セクタの集合のために割り当てられたキャッシュ・メモリに保存する。
段階640でキャッシュ装置は、読み取りが要請されたデータをホスト装置に伝送する。段階630で、フラッシュ・メモリから読み取ってキャッシュ・メモリに保存した場合、または段階622で、すでにキャッシュ・メモリに保存されていると判断された場合、読み取りが要請されたデータをホスト装置に伝送する。
本発明によるシステムは、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取り可能なデータが保存されるあらゆる種類の記録装置を含む。記録媒体の例としては、ROM(read-only memory)、RAM(random-access memory)、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などがあって、またキャリアウェーブ(例えばインターネットを介した伝送)の形態で具現されるものも含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散され、分散方式でコンピュータで読み取り可能なコードが保存されて実行されうる。
本発明は、たとえ限定された実施形態と図面とによって説明したとしても、本発明が、前記の実施形態に限定されるものではなく、これは、本発明が属する分野で当業者であるならば、このような記載から、多様な修正及び変形が可能であろう。従って、本発明の思想は、特許請求の範囲によるのみ把握されるものであり、それと均等であるか、または等価的な変形は、いずれも本発明の思想の範疇に属するものである。

Claims (21)

  1. キャッシュ運用方法において、
    ホストから、保存装置の所定のセクタへの所定のデータ書き込みを要請される段階と、
    前記所定のセクタを含む所定のセクタ集合のために、キャッシュ・メモリが割り当てられているか否かを判断する段階と、
    前記判断結果に基づいて選択的に、前記セクタ集合のためにキャッシュ・メモリを割り当てる段階と、
    前記セクタの集合のために割り当てられたキャッシュ・メモリに、前記書き込みが要請されたデータを保存する段階とを含むことを特徴とするキャッシュ運用方法。
  2. 前記保存装置は、
    フラッシュ・メモリであることを特徴とする請求項1に記載のキャッシュ運用方法。
  3. 前記キャッシュ・メモリに保存されたデータに基づいて、前記フラッシュ・メモリに保存されている前記セクタの集合を更新する段階をさらに含むことを特徴とする請求項2に記載のキャッシュ運用方法。
  4. 前記更新する段階は、
    前記セクタの集合のうち、前記書き込みが要請された所定のセクタを除外した残りのセクタに保存されたデータを、前記フラッシュ・メモリから読み取る段階と、
    前記残りのセクタに保存されたデータと、前記書き込みが要請されたデータとに基づいて、前記セクタの集合に保存するデータを生成する段階と、
    前記生成されたデータを、前記フラッシュ・メモリに書き込む段階とを含むことを特徴とする請求項3に記載のキャッシュ運用方法。
  5. 前記セクタの集合は、
    前記フラッシュ・メモリの消去単位に基づいて決定されることを特徴とする請求項2に記載のキャッシュ運用方法。
  6. 前記消去単位は、
    前記フラッシュ・メモリのブロックサイズの整数倍であることを特徴とする請求項5に記載のキャッシュ運用方法。
  7. キャッシュ運用方法において、
    ホストから保存装置の所定のセクタに保存されたデータの読み取りを要請される段階と、
    前記所定のセクタを含むセクタ集合のために、キャッシュ・メモリが割り当てられているか否かを判断する段階と、
    前記判断結果に基づいて選択的に、前記セクタの集合のためにキャッシュ・メモリを割り当て、前記読み取りが要請されたデータを、前記フラッシュ・メモリから読み取り、前記セクタの集合のために割り当てられたキャッシュ・メモリに保存する段階と、
    前記キャッシュ・メモリに保存された前記読み取りが要請されたデータを、前記ホストに伝送する段階とを含むことを特徴とするキャッシュ運用方法。
  8. 前記保存装置は、
    フラッシュ・メモリであることを特徴とする請求項7に記載のキャッシュ運用方法。
  9. 前記キャッシュ・メモリに保存する段階は、
    前記セクタ集合のために、キャッシュ・メモリが割り当てられていなければ、前記セクタの集合のためにキャッシュ・メモリを割り当てる段階と、
    前記読み取りが要請されたデータを、前記フラッシュ・メモリから読み取る段階と、
    前記セクタの集合のために割り当てられたキャッシュ・メモリに保存する段階とを含むことを特徴とする請求項8に記載のキャッシュ運用方法。
  10. 前記キャッシュ・メモリに保存する段階は、
    前記セクタ集合のために、キャッシュ・メモリがすでに割り当てられていれば、前記セクタの集合のために割り当てられているキャッシュ・メモリに、前記読み取りが要請されたデータが存在するか否かを判断する段階と、
    前記読み取りが要請されたデータが、前記セクタの集合のために割り当てられているキャッシュ・メモリに存在するか否かによって選択的に、前記読み取りが要請されたデータを、前記フラッシュ・メモリから読み取る段階と、
    前記セクタの集合のために割り当てられたキャッシュ・メモリに保存する段階とを含むことを特徴とする請求項8に記載のキャッシュ運用方法。
  11. 前記セクタの集合は、
    前記フラッシュ・メモリの消去単位に基づいて決定されることを特徴とする請求項8に記載のキャッシュ運用方法。
  12. 前記消去単位は、
    前記フラッシュ・メモリのブロックサイズの整数倍であることを特徴とする請求項11に記載のキャッシュ運用方法。
  13. キャッシュ装置において、
    ホストから、保存装置の所定のセクタへの所定のデータ書き込みを要請されるホストインターフェースと、
    前記書き込みが要請された所定のセクタを含む所定のセクタ集合のために、キャッシュ・メモリが割り当てられているか否かを判断し、前記判断結果に基づいて選択的に、前記セクタ集合のためにキャッシュ・メモリを割り当てる制御部と、
    前記割り当て結果によって、前記書き込みが要請されたデータを保存するキャッシュ・メモリとを含むことを特徴とするキャッシュ装置。
  14. 前記保存装置は、
    フラッシュ・メモリであることを特徴とする請求項13に記載のキャッシュ装置。
  15. 前記キャッシュ・メモリに保存されたデータに基づいて、前記フラッシュ・メモリに保存されている前記セクタの集合を更新する更新部をさらに含むことを特徴とする請求項14に記載のキャッシュ装置。
  16. 前記セクタの集合は、
    前記フラッシュ・メモリの消去単位に基づいて決定されることを特徴とする請求項14に記載のキャッシュ装置。
  17. キャッシュ装置において、
    ホストから保存装置の所定のセクタに保存されたデータの読み取りを要請されるホストインターフェースと、
    前記所定のセクタを含むセクタのグループのためにキャッシュ・メモリが割り当てられているか否かを判断し、前記判断結果に基づいて選択的に、前記セクタ集合のためにキャッシュ・メモリを割り当てる制御部と、
    前記割り当て結果によって、前記読み取りが要請されたデータを、前記フラッシュ・メモリから読み取って保存するキャッシュ・メモリとを含み、
    前記ホストインターフェースは、前記キャッシュ・メモリに保存された前記読み取りが要請されたデータを、前記ホストに伝送することを特徴とするキャッシュ装置。
  18. 前記保存装置は、
    フラッシュ・メモリであることを特徴とする請求項17に記載のキャッシュ装置。
  19. 前記セクタの集合は、
    前記フラッシュ・メモリの消去単位に基づいて決定されることを特徴とする請求項18に記載のキャッシュ装置。
  20. 所定のデータをフラッシュ・メモリの所定のセクタに書き込むことを要請したり、前記所定のデータを、前記フラッシュ・メモリの所定のセクタから読み取ることを要請するホストと、
    前記書き込み要請または前記読み取り要請によって、前記所定のセクタを含むセクタの集合単位でキャッシュ・メモリを管理し、前記所定のデータをキャッシングするキャッシュ装置と、
    前記キャッシュ装置から前記セクタ集合単位でデータを受信して書き込みまたは読み取りを行うフラッシュ・メモリとを含むシステム。
  21. 前記セクタの集合は、
    前記フラッシュ・メモリの消去単位に基づいて決定されることを特徴とする請求項20に記載のシステム。
JP2010523923A 2007-09-05 2007-11-08 セクタの集合を利用したキャッシュ運用方法及びキャッシュ装置 Pending JP2010538385A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070089972A KR20090024971A (ko) 2007-09-05 2007-09-05 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치
PCT/KR2007/005608 WO2009031727A1 (en) 2007-09-05 2007-11-08 Cache management method and cache device using sector set

Publications (1)

Publication Number Publication Date
JP2010538385A true JP2010538385A (ja) 2010-12-09

Family

ID=40429027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010523923A Pending JP2010538385A (ja) 2007-09-05 2007-11-08 セクタの集合を利用したキャッシュ運用方法及びキャッシュ装置

Country Status (5)

Country Link
US (1) US20100161890A1 (ja)
EP (1) EP2186008A4 (ja)
JP (1) JP2010538385A (ja)
KR (1) KR20090024971A (ja)
WO (1) WO2009031727A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4762261B2 (ja) * 2008-03-12 2011-08-31 株式会社東芝 メモリシステム
US8499120B2 (en) * 2008-10-17 2013-07-30 Seagate Technology Llc User selectable caching management
KR101105127B1 (ko) * 2010-04-16 2012-01-16 성균관대학교산학협력단 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치
US20120110239A1 (en) * 2010-10-27 2012-05-03 Seagate Technology Llc Causing Related Data to be Written Together to Non-Volatile, Solid State Memory
US8918581B2 (en) 2012-04-02 2014-12-23 Microsoft Corporation Enhancing the lifetime and performance of flash-based storage
US20170351452A1 (en) * 2016-06-01 2017-12-07 Intel Corporation Dynamic host memory buffer allocation
KR20210045506A (ko) 2018-09-17 2021-04-26 마이크론 테크놀로지, 인크. 하이브리드 듀얼 인-라인 메모리 모듈에서의 캐시 작업
CN111324554B (zh) * 2020-02-18 2022-03-18 日立楼宇技术(广州)有限公司 闪存数据的管理方法及装置、电梯控制器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784886A (ja) * 1993-09-13 1995-03-31 Matsushita Electric Ind Co Ltd キャッシュメモリ制御方法およびキャッシュメモリ制御装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5726937A (en) * 1994-01-31 1998-03-10 Norand Corporation Flash memory system having memory cache
US6026027A (en) * 1994-01-31 2000-02-15 Norand Corporation Flash memory system having memory cache
US6418506B1 (en) * 1996-12-31 2002-07-09 Intel Corporation Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array
US6209003B1 (en) * 1998-04-15 2001-03-27 Inktomi Corporation Garbage collection in an object cache
CN1088218C (zh) * 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US6477622B1 (en) * 2000-09-26 2002-11-05 Sun Microsystems, Inc. Simplified writeback handling
US20020069317A1 (en) * 2000-12-01 2002-06-06 Chow Yan Chiew E-RAID system and method of operating the same
US6782452B2 (en) * 2001-12-11 2004-08-24 Arm Limited Apparatus and method for processing data using a merging cache line fill to allow access to cache entries before a line fill is completed
TW569219B (en) * 2002-09-30 2004-01-01 Via Tech Inc Architecture and method for updating cache data
JP3587842B2 (ja) * 2002-12-17 2004-11-10 沖電気工業株式会社 データ書き換え装置およびデータ書き換え方法ならびにフラッシュメモリ装置
US7093072B2 (en) * 2003-02-21 2006-08-15 Enterasys Networks, Inc. Methods for improved data caching
US7055016B2 (en) * 2003-04-30 2006-05-30 Sun Microsystems, Inc. Computer system including a memory controller configured to perform pre-fetch operations
US7062615B2 (en) * 2003-08-29 2006-06-13 Emulex Design & Manufacturing Corporation Multi-channel memory access arbitration method and system
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7269708B2 (en) * 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
US7457922B2 (en) * 2004-11-20 2008-11-25 International Business Machines Corporation Cache line placement prediction for multiprocessor non-uniform cache architecture systems
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US8370562B2 (en) * 2007-02-25 2013-02-05 Sandisk Il Ltd. Interruptible cache flushing in flash memory systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784886A (ja) * 1993-09-13 1995-03-31 Matsushita Electric Ind Co Ltd キャッシュメモリ制御方法およびキャッシュメモリ制御装置

Also Published As

Publication number Publication date
EP2186008A1 (en) 2010-05-19
US20100161890A1 (en) 2010-06-24
EP2186008A4 (en) 2011-08-10
KR20090024971A (ko) 2009-03-10
WO2009031727A1 (en) 2009-03-12

Similar Documents

Publication Publication Date Title
US11893238B2 (en) Method of controlling nonvolatile semiconductor memory
US8180955B2 (en) Computing systems and methods for managing flash memory device
US9384123B2 (en) Memory system
JP4931810B2 (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
JP5295778B2 (ja) フラッシュメモリ管理方法
US7395384B2 (en) Method and apparatus for maintaining data on non-volatile memory systems
JP4679581B2 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法
JP2010538385A (ja) セクタの集合を利用したキャッシュ運用方法及びキャッシュ装置
US20130275650A1 (en) Semiconductor storage device
JP2011530133A (ja) キャッシュコンテンツの記憶管理
KR100608602B1 (ko) 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
JP2009545819A (ja) 段階的ガーベッジコレクション
CN110674056B (zh) 一种垃圾回收方法及装置
US20080263282A1 (en) System for Caching Data
JP4551328B2 (ja) 情報記録媒体におけるデータ領域管理方法、及びデータ領域管理方法を用いた情報処理装置
JP5570406B2 (ja) メモリコントローラ、及びデータ記録装置
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
JP2008197981A (ja) 半導体記憶装置
JP4558054B2 (ja) メモリシステム
KR100638638B1 (ko) 플래시 메모리의 제어 방법
KR100514756B1 (ko) 플래쉬 메모리를 파일 시스템으로 라이트하기 위한캐쉬처리 방법
JP2010176305A (ja) 情報処理装置およびデータ記憶装置
KR100982440B1 (ko) 단일 플래시 메모리의 데이터 관리시스템
KR101373613B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬를 포함하는 하이브리드 스토리지 장치
JP2020115275A (ja) 情報処理装置およびプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120612

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121218