TWI398768B - 快閃式記憶體及操作一快閃式記憶體之方法 - Google Patents

快閃式記憶體及操作一快閃式記憶體之方法 Download PDF

Info

Publication number
TWI398768B
TWI398768B TW097107644A TW97107644A TWI398768B TW I398768 B TWI398768 B TW I398768B TW 097107644 A TW097107644 A TW 097107644A TW 97107644 A TW97107644 A TW 97107644A TW I398768 B TWI398768 B TW I398768B
Authority
TW
Taiwan
Prior art keywords
data
area
block
flash memory
cache
Prior art date
Application number
TW097107644A
Other languages
English (en)
Other versions
TW200907675A (en
Inventor
Chia Hsin Chen
Chunkun Lee
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of TW200907675A publication Critical patent/TW200907675A/zh
Application granted granted Critical
Publication of TWI398768B publication Critical patent/TWI398768B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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
    • 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

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)
  • Read Only Memory (AREA)

Description

快閃式記憶體及操作一快閃式記憶體之方法
本發明係關於一種操作一快閃式記憶體之方法。更具體而言,本發明係關於一種操作一具有一快取區及複數個不同區塊之快閃式記憶體之方法。
在世界各地所廣泛使用之快閃式記憶體配備有一控制器及緩衝區。通常,在存取快閃式記憶體時,控制器將資料自主機預先載入緩衝區中。然後,控制器將預先載入之資料透過一快取區寫入至快閃式記憶體之各區塊。因此,緩衝區容量不能小於單一區塊。
隨著半導體技術之發展,區塊容量隨之增大,且快閃式記憶體之密度亦在增大。為確保順利進行資料傳輸,區塊容量之增大使得亦必需增大緩衝區之容量。然而,使用愈大之緩衝區即意味著控制器之製造成本愈高。
因此,在不增大緩衝區容量之情況下使資料傳輸順利進行甚為重要。
本發明之主要目的係提供一種操作一快閃式記憶體之方法。該快閃式記憶體包含一快取區,該快取區用以於資料傳輸期間在將資料儲存於快閃式記憶體中之前自主機預先載入該資料。
藉由使用快取區,該快閃式記憶體之控制器可不再使用緩衝區,或者可使用一小於快閃式記憶體單一區塊之緩衝區。由此使資料傳輸保持順利進行。為達成該目的,將該記憶體之各區塊劃分成不同之資料傳輸類別。
在參閱圖式及隨後描述之實施方式後,此技術領域具有通常知識者便可瞭解本發明之其他目的,以及本發明之技術手段及實施態樣。
在下文說明中,將參照實施例來說明本發明,其係關於一種操作一快閃式記憶體之方法以及一種用於以新穎方式儲存資料之快閃式記憶體。然而,本發明之實施例並非用以將本發明限定至任何特定的環境、應用或實施方式。因此,下文對實施例之說明僅係出於闡釋而非限定目的。需說明者,在以下實施例及圖式中,與本發明非直接相關之元件已省略而未顯示。
第1圖係顯示本發明之較佳實施例,其係為一快閃式記憶體1,包含一控制器11、一區塊儲存區12、以及一快取區13。區塊儲存區12包含複數個區塊,例如第1圖中所示之區塊120。各該區塊之容量適可分為複數個分頁,其中各該分頁包含複數個區段。於該較佳實施例中,一個分頁包含入個區段。更具體而言,對於多級儲存(multi-level-cell;MLC)快閃式記憶體,一個區塊包含128個分頁。
區塊儲存區12係用以儲存來自主機之資料,耦合至區塊儲存區12及控制器11之快取區13則用以預先載入該資料。耦合至快取區13之控制器11係用以判斷該資料之容量是否滿足一預定規則,以產生一判斷結果並根據該判斷結果而將該資料置入該快取區。該預定規則及該判斷結果之詳情將於下文予以說明。
於寫入週期期間,快閃式記憶體1自主機(例如一PC)接收資料101,同時控制器11透過快取區13將資料101置入區塊儲存區12。由於控制器11每次僅將一個分頁寫入區塊儲存區12中,因而快取區13中被置入區塊儲存區12中之預先載入之資料101等於一個分頁。於此種情形中,一個分頁可保持4K位元組之資料。
當來自主機之資料101不足一分頁時,控制器11便將資料101預先載入快取區13中,自區塊儲存區12取出臨時資料,並發送該臨時資料至快取區13以填補該分頁。然後,控制器11寫入資料101及該臨時資料至區塊儲存區12之一區塊。
為達成上述操作,控制器11將區塊儲存區12劃分成三種區塊。於第2a-2c圖中,區塊儲存區12包含一第二區域121、一第一區域122及一第三區域123。各該第一區域122、第二區域121及第三區域123分別包含至少一區塊。以下實例係例示快閃式記憶體1之操作。假定資料101僅包含六個區段而不足一個完整分頁之八個區段,第2a圖例示控制器11將資料101置入快取區13。第2b圖例示控制器11自第三區域123取出具有二區段之資料102,並發送至快取區13。資料102先前係儲存於第三區域123中並相關於資料101。資料102被標記為資料101之補充資料。一旦資料101被傳輸至控制器11,控制器便決定自第三區域123取出資料102。第2c圖例示控制器11寫入一個兼具資料101及資料102之分頁至第一區域122。當第一區域122達到其具有複數個分頁之容量時,控制器11便移除第一區域122之內容並將其置於第二區域121中。然後,第一區域122便能夠自主機接收新資料。亦即,控制器11先將資料置入第一區域122,然後於第一區域122填滿時將該資料移動至第二區域121。
當第一區域122接收到具有冗余區段之資料時,該資料並不包含完整之分頁。因此,控制器11不將具有冗余區段之資料寫入第一區域122,而是寫入第三區域123。亦即,控制器11將該資料置入第一區域122,然後於第一區域122未填滿時將該資料移動至第三區域12。於該實施例中,快閃式記憶體1之控制器11不需要使用一緩衝區暫時儲存來自主機之資料。快閃式記憶體1之快取區13被分配用以於資料被寫入區塊儲存區12之前緩衝該資料。
第3圖顯示快閃式記憶體1之操作之一流程圖。於步驟111中,由控制器11接收具有冗余區段之資料,其中該資料並不包含完整之分頁。於步驟112中,將該具有冗余區段之資料暫時儲存於快取區13中。於步驟113中,將該具有冗余區段之資料寫入至第三區域123。
第4圖顯示本發明之另一較佳實施例。該較佳實施例係為一快閃式記憶體2,包含一控制器21、一區塊儲存區22及一快取區23。區塊儲存區22包含複數個區塊。各該區塊之容量適可分為複數個分頁,其中各該分頁分別包含複數個區段。如上所述,對於多級儲存快閃式記憶體,一個區塊包含128個分頁,且該16十億位元記憶體包含4096個區塊。與前一實施例之主要區別在於,此處之控制器21包含一緩衝區211。區塊儲存區22包含一第二區域221、一第一區域222及一第三區域223。各該區塊適可分為複數個具有不同位址之分頁。快閃式記憶體2自一主機接收資料201。
第5圖顯示快閃式記憶體2之操作之一流程圖。將資料201於透過快取區23傳輸至區塊儲存區22之前暫時儲存於緩衝區211中。於步驟301中,主機決定第一區域222中用於傳輸資料201之至少一位址。於步驟302中,主機將資料201傳輸至控制器21之緩衝區211。於步驟303中,控制器21產生一判斷結果,以指示資料201之傳輸是否使用先前資料,該先前資料係儲存於第二區域221或第三區域223中。若資料201之傳輸係使用先前資料一此意味著資料201將從快取區23之中間位置寫入快取區23,則執行步驟304以增加一補充資料至資料201,藉以填充快取區23之中間位置之前的空位。然後,執行步驟305,以將資料201自緩衝區211寫入至快取區23。而若資料201之傳輸未使用先前資料,則於步驟303之後緊接著執行步驟305。
於步驟306中,控制器21檢查主機是否停止傳輸資料。若主機未停止傳輸資料,則執行步驟307,以檢查快取區23是否填滿。若快取區23未填滿,則該流程進行至步驟305。反之,該流程進行至步驟308,以由控制器21將快取區23中之資料寫入至第一區域222。
於步驟306中,若主機停止傳輸資料,則產生一傳輸狀態,然後執行步驟309以檢查快取區23是否填滿。若快取區23尚未填滿,則該流程繼續進行步驟310,以驅使次一資料傳輸不利用來自步驟303之先前資料。於步驟311中,控制器21將快取區23中之資料寫入至第三區域223。相反,若快取區23填滿,則執行步驟312以驅使次一資料傳輸利用來自步驟303之先前資料。於步驟313中,控制器21將快取區23中之資料寫入至第一區域222。需注意,步驟311或步驟313係於控制器21執行用以存取區塊儲存區22之命令時執行。於另一實施例中,步驟308、311及313至少其中之一包含執行糾錯碼(Error Correction Code;EEC)操作之步驟。
當第一區域222填滿時,控制器21將第一區域222之資料移動至第二區域221,並抹除第一區域222以供儲存來自主機之新資料。
藉由利用快閃式記憶體中之快取區自主機預先載入資料,可使控制器之緩衝區小於單一區塊或完全省掉緩衝區。此時,資料傳輸仍能保持順利進行。
該流程中各步驟之次序並非係對本發明之限定。熟習此項技術者在閱讀本說明書後可修改其次序。舉例而言,步驟313可於步驟312之前執行,且步驟311可於步驟310之前執行。
上述之實施例僅用來例舉本發明之實施態樣,以及闡釋本發明之技術特徵,並非用來限制本發明之範疇。任何熟悉此技術者可輕易完成之改變或均等性之安排均屬於本發明所主張之範圍,本發明之權利範圍應以申請專利範圍為準。
1...快閃式記憶體
2...快閃式記憶體
11...控制器
12...區塊儲存區
13...快取區
21...控制器
22...區塊儲存區
23...快取區
101...資料
102...資料
120...區塊
121...第二區域
122...第一區域
123...第三區域
201...資料
211...緩衝區
221...第二區域
222...第一區域
223...第三區域
第1圖係為本發明之一較佳實施例;第2a-2c圖係為該較佳實施例之操作之例示圖;第3圖係為第1圖所示較佳實施例之操作之一流程圖;第4圖係為本發明之另一較佳實施例;以及第5圖係為第4圖所示較佳實施例之操作之一流程圖。
無(因係流程圖)

Claims (15)

  1. 一種快閃式記憶體,連接至一主機,該快閃式記憶體包含:一區塊儲存區,用以儲存來自該主機之資料;一快取區,耦合至該區塊儲存區,用以預先載入該資料;以及一控制器,耦合至該快取區,用以決定該資料之一容量是否符合一預定規則,並產生一判斷結果,以指示該資料之傳輸是否利用一先前資料,且根據該判斷結果,增加一補充資料至該資料,以及將該資料置入該快取區。
  2. 如請求項1所述之快閃式記憶體,其中該區塊儲存區包含複數區塊,各該區塊之容量適可分為複數分頁,當該資料之容量不小於一分頁時,該控制器將該資料置入該區塊儲存區。
  3. 如請求項2所述之快閃式記憶體,其中該控制器自該區塊儲存區取出一補充資料,並於該資料之容量小於一分頁時,將該補充資料傳送至該快取區,該補充資料適足以填補該分頁。
  4. 如請求項1所述之快閃式記憶體,其中該控制器係用以將該資料由該快取區置入該區塊儲存區。
  5. 如請求項4所述之快閃式記憶體,其中該區塊儲存區包含:一第一區域,包含至少一區塊;一第二區域,包含至少一區塊;以及一第三區域,包含至少一區塊;其中該控制器先將該資料置入該第一區域,然後於該第一區域填滿時,將該資料移動到該第二區域。
  6. 如請求項4所述之快閃式記憶體,其中該區塊儲存區包含:一第一區域,包含至少一區塊;一第二區域,包含至少一區塊;以及一第三區域,包含至少一區塊;其中該控制器先將該資料置入該第一區域,然後於該第一區域未被填滿時,將該資料移動到該第三區域。
  7. 如請求項1所述之快閃式記憶體,其中該控制器更包含一緩衝區,用以於該資料傳輸到該快取區前,暫時地儲存該資料。
  8. 一種操作一快閃式記憶體之方法,該快閃式記憶體耦合至一主機,該快閃式記憶體包含一控制器、一快取區、以及一區塊儲存區,該方法用以於該快閃式記憶體與該主機間傳輸一資料,包含下列步驟:接收由該主機所傳送之該資料;產生一判斷結果,以指示該資料之傳輸是否利用一先前資料;根據該判斷結果,增加一補充資料至該資料;傳輸該資料至該快取區;產生一傳輸狀態;以及根據該傳輸狀態,決定次一資料傳輸之一傳輸模式。
  9. 如請求項8所述之方法,該控制器包含一緩衝區,該方法更包含下列步驟:於該資料傳輸到該快取區前,暫時地儲存該資料於該緩衝區。
  10. 如請求項8所述之方法,其中該增加一補充資料至該資料之步驟,係於當該資料之傳輸利用到該先前資料時被執行。
  11. 如請求項8所述之方法,該區塊儲存區包含一第一區域,具有至少一區塊、一第二區域,具有至少一區塊、以及一第三區域,具有至少一區塊,其中該傳輸狀態指示該主機停止傳輸資料,且該快取區已滿,該決定次一資料傳輸之一傳輸模式之步驟係執行以驅使該次一資料傳輸利用該先前資料,同時該方法更包含將該快取區內之該資料寫入該第一區域之步驟。
  12. 如請求項8所述之方法,該區塊儲存區包含一第一區域,具有至少一區塊、一第二區域,具有至少一區塊、以及一第三區域,具有至少一區塊,其中該傳輸狀態指示該主機停止傳輸資料,且該快取區未滿,該決定次一資料傳輸之一傳輸模式之步驟係執行以驅使該次一資料傳輸利用該先前資料,同時該方法更包含將該快取區內之該資料寫入該第三區域之步驟。
  13. 如請求項8所述之方法,其中該傳輸狀態指示該主機持續傳輸資料,且該快取區已滿,該方法更包含將該快取區內之該資料寫入該區塊儲存區之步驟。
  14. 如請求項13所述之方法,該區塊儲存區包含一第一區域,具有至少一區塊、一第二區域,具有至少一區塊、以及一第三區域,具有至少一區塊,該方法包含下列步驟:將該資料置入該第一區域;以及 當該第一區域已滿時,將該資料移動到該第二區域。
  15. 如請求項13所述之方法,該區塊儲存區包含一第一區域,具有至少一區塊、一第二區域,具有至少一區塊、以及一第三區域,具有至少一區塊,該方法包含下列步驟:將該資料置入該第一區域;以及當該第一區域未滿時,將該資料移動到該第三區域。
TW097107644A 2007-08-15 2008-03-05 快閃式記憶體及操作一快閃式記憶體之方法 TWI398768B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US95592907P 2007-08-15 2007-08-15
US12/014,991 US7962683B2 (en) 2007-08-15 2008-01-16 Flash memory, and method for operating a flash memory

Publications (2)

Publication Number Publication Date
TW200907675A TW200907675A (en) 2009-02-16
TWI398768B true TWI398768B (zh) 2013-06-11

Family

ID=40363884

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097107644A TWI398768B (zh) 2007-08-15 2008-03-05 快閃式記憶體及操作一快閃式記憶體之方法

Country Status (3)

Country Link
US (1) US7962683B2 (zh)
CN (1) CN101369251B (zh)
TW (1) TWI398768B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011209973A (ja) * 2010-03-30 2011-10-20 Hitachi Ltd ディスクアレイ構成プログラム、計算機、計算機システム
US20110283048A1 (en) * 2010-05-11 2011-11-17 Seagate Technology Llc Structured mapping system for a memory device
TWI425357B (zh) 2010-09-27 2014-02-01 Silicon Motion Inc 用來進行區塊管理之方法以及記憶裝置及控制器
US8892809B2 (en) * 2010-10-25 2014-11-18 Marvell World Trade Ltd. Data compression and encoding in a memory system
US8713261B1 (en) * 2011-03-11 2014-04-29 Emc Corporation Caching techniques
WO2015196470A1 (zh) 2014-06-27 2015-12-30 华为技术有限公司 一种将数据写入闪存装置的方法、闪存装置和存储系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212848A1 (en) * 2002-05-09 2003-11-13 Wen-Tsung Liu Double interface CF card
US20050030791A1 (en) * 2003-08-04 2005-02-10 Phison Electronics Corp. Method writing data to a large block of a flash memory cell
US20060155922A1 (en) * 2004-12-16 2006-07-13 Gorobets Sergey A Non-volatile memory and method with improved indexing for scratch pad and update blocks
US20060212645A1 (en) * 2004-12-07 2006-09-21 Ocz Technology Group, Inc. On-device data compression to increase speed and capacity of flash memory-based mass storage devices
TWI283405B (en) * 2004-07-28 2007-07-01 Headway Technologies Inc Vortex magnetic random access memory
TWI283815B (en) * 2005-03-21 2007-07-11 Intel Corp Apparatus and method to perform reconfigurable parallel processing, wireless communication system, and computer-readable storage medium storing thereon instructions

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08212019A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
CN1147933C (zh) * 2002-04-22 2004-04-28 信息产业部电子第15研究所 高速大容量快闪固态存储器的制作方法
CN100347685C (zh) * 2002-08-29 2007-11-07 松下电器产业株式会社 用于将数据写入快闪存储设备的半导体存储器的装置和方法
US7769944B2 (en) * 2004-10-01 2010-08-03 Supertalent Electronics, Inc. Partial-write-collector algorithm for multi level cell (MLC) flash
JP5002201B2 (ja) * 2006-06-30 2012-08-15 株式会社東芝 メモリシステム
US7953954B2 (en) * 2007-01-26 2011-05-31 Micron Technology, Inc. Flash storage partial page caching

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212848A1 (en) * 2002-05-09 2003-11-13 Wen-Tsung Liu Double interface CF card
US20050030791A1 (en) * 2003-08-04 2005-02-10 Phison Electronics Corp. Method writing data to a large block of a flash memory cell
TWI283405B (en) * 2004-07-28 2007-07-01 Headway Technologies Inc Vortex magnetic random access memory
US20060212645A1 (en) * 2004-12-07 2006-09-21 Ocz Technology Group, Inc. On-device data compression to increase speed and capacity of flash memory-based mass storage devices
US20060155922A1 (en) * 2004-12-16 2006-07-13 Gorobets Sergey A Non-volatile memory and method with improved indexing for scratch pad and update blocks
TWI283815B (en) * 2005-03-21 2007-07-11 Intel Corp Apparatus and method to perform reconfigurable parallel processing, wireless communication system, and computer-readable storage medium storing thereon instructions

Also Published As

Publication number Publication date
CN101369251A (zh) 2009-02-18
US7962683B2 (en) 2011-06-14
TW200907675A (en) 2009-02-16
US20090049233A1 (en) 2009-02-19
CN101369251B (zh) 2012-01-11

Similar Documents

Publication Publication Date Title
US8677058B2 (en) Memory system selecting write mode of data block and data write method thereof
US9805799B2 (en) Devices and methods of managing nonvolatile memory device having single-level cell and multi-level cell areas
JP4729062B2 (ja) メモリシステム
TWI396081B (zh) 快閃儲存器之部分頁面快取
US10714186B2 (en) Method and apparatus for dynamically determining start program voltages for a memory device
US20090150597A1 (en) Data writing method for flash memory and controller using the same
TWI398768B (zh) 快閃式記憶體及操作一快閃式記憶體之方法
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
KR20090117787A (ko) 시스템 관리를 위한 mlc 선택된 멀티-프로그램
JP5259138B2 (ja) 記憶装置
US12014063B2 (en) Control method for flash memory controller and associated flash memory controller and storage device
US9122583B2 (en) Memory controller and memory storage device and data writing method
TWI823784B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置
US11714752B2 (en) Nonvolatile physical memory with DRAM cache
TW202011201A (zh) 快閃記憶體控制器及相關的存取方法及電子裝置
TWI692688B (zh) 快閃記憶體控制器及相關電子裝置
US11507289B2 (en) Storage device, controller and method for operating storage device
WO2010024506A1 (en) Flash based storage device using page buffer as write cache and method of using the same
US20220269440A1 (en) Control method for flash memory controller and associated flash memory controller and storage device
CN111488118B (zh) 管理闪存模块的方法及相关的闪存控制器与电子装置
US11782788B2 (en) Error-correction-detection coding for hybrid memory module
TWI746927B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI769100B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI787627B (zh) 電子裝置、快閃記憶體控制器及其存取方法