TWI400707B - 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統 - Google Patents
快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統 Download PDFInfo
- Publication number
- TWI400707B TWI400707B TW098123229A TW98123229A TWI400707B TW I400707 B TWI400707 B TW I400707B TW 098123229 A TW098123229 A TW 098123229A TW 98123229 A TW98123229 A TW 98123229A TW I400707 B TWI400707 B TW I400707B
- Authority
- TW
- Taiwan
- Prior art keywords
- logical
- flash memory
- blocks
- block
- logical blocks
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種用於快閃記憶體的邏輯區塊管理方法及使用此方法的快閃記憶體控制電路與快閃記憶體儲存系統。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。固態硬碟就是一種以NAND快閃記憶體作為儲存媒體的儲存裝置。
一般來說,快閃記憶體儲存裝置中的快閃記憶體模組會具有多個實體區塊,且這些實體區塊會由快閃記憶體儲存裝置的快閃記憶體控制器邏輯地分組為系統區(system area)、資料區(data area)、備用區(spare area)與取代區(replacement area)。系統區的實體區塊是用以儲存快閃記憶體儲存裝置的相關重要資訊,而取代區的實體區塊是用以取代資料區或備用區中已損壞的實體區塊損壞,因此在一般存取狀態下,主機系統是無法存取系統區與取代區中的實體區塊。至於歸類為資料區的實體區塊中會儲存由寫入指令所寫入的有效資料,而備用區中的實體區塊是用以在執行寫入指令時替換資料區中的實體區塊。具體來說,當快閃記憶體儲存裝置接受到主機系統的寫入指令而欲對資料區的實體區塊進行寫入時,快閃記憶體儲存裝置會從備用區中提取一實體區塊並且將在資料區中欲寫入的實體區塊中的有效舊資料與欲寫入的新資料寫入至從備用區中提取的實體區塊中並且將已寫入新資料的實體區塊邏輯地關聯為資料區,並且將原本資料區的實體區塊進行抹除並邏輯地關聯為備用區。為了能夠讓主機系統能夠順利地存取以輪替方式儲存資料的實體區塊,快閃記憶體儲存裝置會提供邏輯區塊給主機系統。也就是說,快閃記憶體儲存裝置會透過在邏輯區塊-實體區塊對映表(logical block-physical block mapping table)中記錄與更新邏輯區塊與資料區的實體區塊之間的對映關係來反映實體區塊的輪替,所以主機系統僅需要針對所提供邏輯區塊進行寫入而快閃記憶體儲存裝置會依據邏輯區塊-實體區塊對映表對所對映的實體區塊進行讀取或寫入資料。
然而,由於快閃記憶體製程上的進步而使得每一實體區塊的設計容量會越來越大的同時,上述搬移有效舊資料的時間會相對地增加,因而降低整體系統的效能。另外,當快閃記憶體儲存裝置用作為安裝電腦作業系統的儲存媒體時,作業系統會經常性地存取特定資料(例如,檔案配置表(File Allocation Table,FAT),在上述運作機制下快閃記憶體憶體儲存裝置的實體區塊會被頻繁地進行抹除以完成資料的更新。然而,實體區塊的抹除次數是有限的(例如,實體區塊抹除一萬次後就會損壞),因此在頻繁地抹除實體區塊的情況下,快閃記憶體儲存裝置的壽命將大幅縮短。
一般來說,使用者或作業系統在儲存裝置上儲存資料皆有一特定使用態樣。例如,某些邏輯區塊的使用頻率較高,而某些邏輯區塊的使用頻率較低。因此,若能依據每一邏輯區塊的使用頻率來設計不同的寫入機制,則將可有效地提升快閃記憶體儲存裝置的效能,延長快閃記憶體儲存裝置的壽命。然而,在快閃記憶體儲存裝置的資源有限下,如何能夠在兼顧運作效能下於每次執行存取指令時區別出較常使用與較少使用之邏輯區塊,將是能否實現「依據每一邏輯區塊的使用頻率來設計不同的寫入機制」的關鍵。
本發明提供一種邏輯區塊管理方法,其能夠有效地區分寫入次數(或頻率)較高的邏輯區塊與寫入次數(或頻率)較低的邏輯區塊。
本發明提供一種快閃記憶體控制電路,其能夠執行上述邏輯區塊管理方法以有效地區分寫入次數(或頻率)較高的邏輯區塊與寫入次數(或頻率)較低的邏輯區塊。
本發明提供一種快閃記憶體儲存系統,其能夠執行上述邏輯區塊管理方法以有效地區分寫入次數(或頻率)較高的邏輯區塊與寫入次數(或頻率)較低的邏輯區塊。
本發明範例實施例提出一種邏輯區塊管理方法,用於管理一快閃記憶體儲存裝置的多個邏輯區塊。本邏輯區塊管理方法包括提供一快閃記憶體控制器,將邏輯區塊分組為多個邏輯區域,並且記錄邏輯區塊與邏輯區域之間的對映關係,其中每一邏輯區塊對映邏輯區域的其中之一。本邏輯區塊管理方法也包括為每一邏輯區塊計數一使用次數值,並且由快閃記憶體控制器依據使用次數值調整邏輯區塊與邏輯區域之間的對映關係。
在本發明之一範例實施例中,上述之記錄邏輯區塊與邏輯區域之間的對映關係的步驟包括建立一邏輯區塊-邏輯區域對映表以記錄邏輯區塊與邏輯區域之間的對映關係。
在本發明之一範例實施例中,上述之邏輯區域至少包括一熱邏輯區域與一冷邏輯區域。
在本發明之一範例實施例中,上述之由快閃記憶體控制器依據使用次數值調整邏輯區塊與邏輯區域之間的對映關係的步驟包括:判斷上述冷邏輯區域中的邏輯區塊的使用次數值是否大於一使用次數門檻值,其中當其中一個邏輯區塊的使用次數值大於使用次數門檻值時,則將此邏輯區塊分組為上述熱邏輯區域,從上述熱邏輯區域中選擇其中一個邏輯區塊,並且將所選擇的邏輯區塊分組為上述冷邏輯區域。
在本發明之一範例實施例中,上述所選擇的邏輯區塊的使用次數值為不大於所述熱邏輯區域中其他邏輯區塊的使用次數值。
在本發明之一範例實施例中,上述使用次數值包括邏輯區塊被主機系統下達寫入指令的次數或被寫入資料的扇區(sector)數。
在本發明之一範例實施例中,上述邏輯區塊管理方法更包括由快閃記憶體控制器調整上述使用次數值,其中上述使用次數值會被歸零或以一運算式來重新計算。
本發明範例實施例提出一種快閃記憶體控制電路,用於管理一快閃記憶體儲存裝置的多個邏輯區塊。本快閃記憶體控制電路包括微處理器單元、快閃記憶體介面單元、主機介面單元、區塊管理單元。快閃記憶體介面單元與主機介面單元是耦接至微處理器單元。區塊管理單元是耦接至微處理器單元,用以將邏輯區塊分組為多個邏輯區域,並且為每一邏輯區塊計數一使用次數值,其中區塊管理單元依據使用次數值調整邏輯區塊與邏輯區域之間的對映關係。
在本發明之一範例實施例中,上述之區塊管理單元包括記憶體管理單元與使用計數單元。記憶體管理單元用以記錄邏輯區塊與邏輯區域之間的對映關係,其中每一邏輯區塊對映邏輯區域的其中之一。使用計數單元用以計數每一邏輯區塊的使用次數值。
在本發明之一範例實施例中,上述之記憶體管理單元在一邏輯區塊-邏輯區域對映表中記錄邏輯區塊與邏輯區域之間的對映關係。
在本發明之一範例實施例中,上述之記憶體管理單元判斷上述冷邏輯區域中的邏輯區塊的使用次數值是否大於一使用次數門檻值,其中當其中一個邏輯區塊的使用次數值大於使用次數門檻值時,則記憶體管理單元將此邏輯區塊分組為上述熱邏輯區域,從上述熱邏輯區域中選擇其中一個邏輯區塊,並且將所選擇的邏輯區塊分組為上述冷邏輯區域。
本發明一範例實施例提出一種快閃記憶體儲存系統,其包括連接器、快閃記憶體晶片與快閃記憶體控制器。快閃記憶體控制器耦接連接器與快閃記憶體晶片,用以配置多個邏輯區塊且將邏輯區塊分組為多個邏輯區域,並且記錄邏輯區塊與邏輯區域之間的對映關係,其中每一邏輯區塊對映邏輯區域的其中之一。此外,快閃記憶體控制器更用以為每一邏輯區塊計數一使用次數值,並且依據使用次數值調整邏輯區塊與邏輯區域之間的對映關係。
在本發明之一範例實施例中,上述之快閃記憶體控制器在一邏輯區塊-邏輯區域對映表中記錄邏輯區塊與邏輯區域之間的對映關係。
在本發明之一範例實施例中,上述之快閃記憶體控制器判斷上述冷邏輯區域中的邏輯區塊的使用次數值是否大於一使用次數門檻值,其中當其中一個邏輯區塊的使用次數值大於使用次數門檻值時,則快閃記憶體控制器將此邏輯區塊分組為上述熱邏輯區域,從上述熱邏輯區域中選擇其中一個邏輯區塊,並且將所選擇的邏輯區塊分組為上述冷邏輯區域。
本發明一範例實施例提出一種快閃記憶體儲存系統,其包括連接器、快閃記憶體晶片與快閃記憶體控制器。快閃記憶體控制器耦接連接器與快閃記憶體晶片,用以配置多個邏輯區塊與將實體區塊至少分組為一資料區與一備用區,其中每一邏輯區塊對應至少一實體區塊。此外,快閃記憶體控制器為每一邏輯區塊計數一使用次數值,並且依據此使用次數值將邏輯區塊中的至少一邏輯區塊分組為至少一熱邏輯區域。
在本發明之一範例實施例中,上述之快閃記憶體儲存系統更包括一暫存區,其中當主機系統的寫入資料屬於熱邏輯區域中的其中一個邏輯區塊時,則上述快閃記憶體控制器將寫入資料儲存於此暫存區中。
在本發明之一範例實施例中,上述之暫存區為一動態隨機存取記憶體或一單層記憶胞NAND快閃記憶體。
基於上述,本發明透過依據邏輯區塊的使用次數值來動態地調整邏輯區塊與邏輯區域的對映關係,由此有效地依據邏輯區域來識別寫入次數(或頻率)較高的邏輯區塊與寫入次數(或頻率)較低的邏輯區塊。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是根據本發明一範例實施例所繪示的快閃記憶體儲存系統的概要方塊圖。
請參照圖1,通常快閃記憶體儲存裝置100會與主機系統200一起使用,以使主機系統200可將資料儲存至快閃記憶體儲存裝置100中或從快閃記憶體儲存裝置100中讀取資料。在本範例實施例中,快閃記憶體儲存裝置100為固態硬碟(Solid State Drive,SSD)。但必須瞭解的是,在本發明另一範例實施例中快閃記憶體儲存裝置100亦可以是記憶卡或隨身碟。
快閃記憶體儲存裝置100包括快閃記憶體控制器(亦稱快閃記憶體控制電路)110、連接器120與快閃記憶體晶片130。
快閃記憶體控制器110會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統200的指令在快閃記憶體晶片130中進行資料的寫入、讀取與抹除等運作。快閃記憶體控制器110包括微處理器單元152、區塊管理單元154、快閃記憶體介面單元156、主機介面單元158與緩衝記憶體160。
微處理器單元152為快閃記憶體控制器100的主控單元,用以與區塊管理單元154、快閃記憶體介面單元156、主機介面單元158與緩衝記憶體160等協同合作以進行快閃記憶體儲存裝置100的各種運作。
區塊管理單元154耦接至微處理器單元152,並且用以處理主機系統200的指令,及執行根據本發明範例實施例的區塊管理與資料寫入機制。區塊管理單元154具有記憶體管理單元172與使用計數單元174,其中記憶體管理單元172用以執行根據本範例實施例的區塊管理機制,而使用計數單元174用以計數區塊的寫入次數。記憶體管理單元172與使用計數單元174的運作將於以下配合圖式作詳細說明。
在本範例實施例中,記憶體管理單元172與使用計數單元174是以一韌體型式實作在快閃記憶體控制器110中。例如,將包括多個程式指令的記憶體管理單元172與使用計數單元174燒錄至一程式記憶體(例如,唯讀記憶體(Read Only Memory,ROM))中並且將此程式記憶體嵌入在快閃記憶體控制器110中,當快閃記憶體儲存裝置100運作時,記憶體管理單元172與使用計數單元174的多個機器指令會由微處理器單元152來執行以完成根據本發明實施例的區塊管理機制、資料寫入機制與寫入次數的計數機制。
在本發明另一範例實施例中,記憶體管理單元172與使用計數單元174的控制指令亦可以程式碼型式儲存於快閃記憶體晶片130的特定區域(例如,快閃記憶體中專用於存放系統資料的系統區)中。同樣的,當快閃記憶體儲存裝置100運作時,記憶體管理單元172與使用計數單元174的多個控制指令會由微處理器單元152來執行。此外,在本發明另一範例實施例中,記憶體管理單元172與使用計數單元174亦可以一硬體型式實作在快閃記憶體控制器110中。
快閃記憶體介面單元156是耦接至微處理器單元152並且用以存取快閃記憶體晶片130。也就是說,欲寫入至快閃記憶體晶片130的資料會經由快閃記憶體介面單元156轉換為快閃記憶體晶片130所能接受的格式。
主機介面單元158是耦接至微處理器單元152並且用以接收與識別主機系統200所傳送的指令。也就是說,主機系統200所傳送的指令與資料會透過主機介面單元158來傳送至微處理器單元152。在本範例實施例中,主機介面單元158為序列先進附件(Serial Advanced Technology Attachment,SATA)介面。然而,必須瞭解的是本發明不限於此,主機介面單元158亦可以是通用序列匯流排(Universal Serial Bus,USB)介面、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394介面、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)、安全數位(secure digital,SD)介面、記憶棒(Memory Sick,MS)介面、多媒體儲存卡(Multi Media Card,MMC)介面、小型快閃(Compact Flash,CF)介面、整合式驅動電子介面(Integrated Device Electronics,IDE)或其他適合的資料傳輸介面。
緩衝記憶體160是耦接至微處理器單元152並且用以暫時地儲存系統資料(例如,邏輯區塊-實體區塊對映表)或者主機系統200所讀取或寫入的資料。在本範例實施例中,緩衝記憶體160為靜態隨機存取記憶體(static random access memory,SRAM)。然而,必須瞭解的是,本發明不限於此,動態隨機存取記憶體(Dynamic Random Access memory,DRAM)、磁阻式記憶體(Magnetoresistive Random Access Memory,MRAM)、相變化記憶體(Phase Change Random Access Memory,PRAM)或其他適合的記憶體亦可應用於本發明。
此外,雖未繪示於本範例實施例中,但快閃記憶體控制器110亦更包括錯誤校正單元與電源管理單元等用於控制快閃記憶體的一般功能模組。
連接器120是耦接至快閃記憶體控制器110並且用以透過匯流排300連接主機系統200。在本範例實施例中,連接器120為SATA連接器。然而,必須瞭解的是本發明不限於此,連接器110亦可以是USB連接器、IEEE 1394連接器、PCI Express連接器、SD連接器、MS連接器、MMC連接器、CF連接器、IDE連接器或其他適合的連接器。
快閃記憶體晶片130是耦接至快閃記憶體控制器110並且用以儲存資料。快閃記憶體晶片130具有實體區塊310-(0)~310-(N),其中實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。每一實體區塊通常會分割為數個頁面(page)。由於在本範例實施例中,快閃記憶體晶片130為MLC NAND快閃記憶體,因此,頁面為程式化(program)的最小單元。換言之,頁面為寫入資料或讀取資料的最小單元。每一頁面通常包括使用者資料區與冗餘區。使用者資料區用以儲存使用者的資料,而冗餘區用以儲存系統的資料(例如,錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code)。在本範例實施例中,快閃記憶體晶片130的每一頁面具有16個扇區的容量,一般來說,一個扇區為512位元組,因此一個頁面為8千位元組。然而,必須瞭解的是,本發明不限於此,在本發明另一範例實施例中,一個頁面亦可為16千位元組、4千位元組、2千位元組或其他適當的大小。在本範例實施中,快閃記憶體晶片130為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體。然而,必須瞭解的是,本發明不限於此。在本發明另一範例實施例中,單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體亦可應用於本發明。
圖2是根據本發明範例實施例所繪示的快閃記憶體晶片的概要方塊圖。記憶體管理單元172會將快閃記憶體晶片130的實體區塊310-(0)~310-(N)邏輯地分組為系統302區、資料區304、備用區306與取代區308,在此實體區塊310-(0)~310-(N)為快閃記憶體晶片130出廠時好的實體區塊。
邏輯上屬於系統區302的實體區塊310-(0)~310-(S)是用以記錄系統資料,此系統資料包括關於快閃記憶體晶片的製造商與型號、每一快閃記憶體模組的區域數、每一區域的實體區塊數、每一實體區塊的頁面數等。
邏輯上屬於資料區304的實體區塊310-(S+1)~310-(M)用以儲存使用者的資料,一般來說就是主機系統200所存取之邏輯區塊所對映的實體區塊。也就是說,資料區的實體區塊為儲存有效資料的單元。
邏輯上屬於備用區306的實體區塊310-(M+1)~310-(K)是用以輪替資料區中的實體區塊,因此在備用區中的實體區塊為空或可使用的單元,即無記錄資料或標記為已沒用的無效資料。也就是說,資料區與備用區的實體區塊會以輪替方式來儲存主機系統200對快閃記憶體儲存裝置100寫入的資料。
邏輯上屬於取代區308中的實體區塊310-(K+1)~310-(N)是替代實體區塊。例如,快閃記憶體晶片130於出廠時會預留4%的實體區塊作為更換使用。也就是說,當系統區、資料區與備用區中的實體區塊損毀時,預留於取代區中的實體區塊可用以取代損壞的實體區塊(即,壞的實體區塊(bad block))。因此,倘若取代區中仍存有可用之實體區塊且發生實體區塊損毀時,記憶體管理單元172會從取代區中提取可用的實體區塊來更換損毀的實體區塊。倘若取代區中無可用之實體區塊且發生實體區塊損毀時,則快閃記憶體儲存裝置100將會被宣告為寫入保護(write protect),而無法再寫入資料。
如前所述,當快閃記憶體控制器110欲在資料區的實體區塊中寫入或更新資料時,記憶體管理單元172會從備用區中提取一個實體區塊,並且將新資料以及欲更新之實體區塊中的有效舊資料寫入至從備用區中所提取的實體區塊。然後,記憶體管理單元172將儲存新資料之實體區塊關聯為資料區,而對資料區中欲更新之實體區塊執行抹除指令並將抹除後之實體區塊關聯為備用區。
由於快閃記憶體儲存裝置100是以上述輪替方式儲存主機系統200欲儲存之資料,因此快閃記憶體控制器110會提供邏輯區塊350-0~350-H給主機系統200以進行資料存取,並且提供轉換層250來將邏輯區塊350-0~350-H對映至快閃記憶體晶片130的實體區塊310-(S+1)~310-(M)。
在本範例實施例中,轉換層250具有邏輯區塊-實體區塊對映表(logical block-physical block mapping table)以記錄邏輯區塊所對映的實體區塊。也就是說,主機系統200僅需在所提供之邏輯區塊350-0~350-H上存取資料,而快閃記憶體控制器110會依據邏輯區塊-實體區塊對映表來在實際儲存資料的實體區塊中寫入與讀取資料。
此外,值得一提的是,邏輯區塊-實體區塊對映表會被儲存於快閃記憶體晶片130中(例如,系統區302或資料區304),並且在快閃記憶體儲存裝置100運作期間,邏輯區塊-實體區塊對映表會被載入至緩衝記憶體160中使記憶體管理單元172能夠讀取與更新。然而,在緩衝記憶體160的儲存空間有限下,緩衝記憶體160無法暫存記錄所有邏輯區塊的對映關係的邏輯區塊-實體區塊對映表。因此,在本範例實施例中記憶體管理單元172會將邏輯區塊350-0~350-H分組為多個邏輯區域(logical zone),並且以邏輯區域為單位來配置邏輯區塊-實體區塊對映表260-0~260-T。具體來說,每一邏輯區塊會屬於其中一個邏輯區域,而記憶體管理單元172會為每一邏輯區域配置一邏輯區塊-實體區塊對映表。基此,當主機系統200欲存取某一邏輯區塊時,記憶體管理單元172會依據欲存取之邏輯區塊所屬的邏輯區域來從快閃記憶體晶片130中載入對應的邏輯區塊-實體區塊對映表,並且依據對應的邏輯區塊-實體區塊對映表來進行資料的存取。之後,當需存取另一邏輯區域的邏輯區塊時,記憶體管理單元172會將目前使用之邏輯區塊-實體區塊對映表回存至快閃記憶體晶片130中並載入對應的另一邏輯區塊-實體區塊對映表。
為能夠識別每一邏輯區塊所對映的邏輯區域,在本範例實施例中,轉換層250包括邏輯區塊-邏輯區域對映表270以記錄邏輯區塊與邏輯區域的對映關係。例如,邏輯區塊-邏輯區域對映表270會被儲存在快閃記憶體晶片130中(例如,系統區302或資料區304),並且在快閃記憶體儲存裝置100運作時,記憶體管理單元172會將邏輯區塊-邏輯區域對映表270載入至緩衝記憶體160並且依據邏輯區塊-邏輯區域對映表270來載入對應的邏輯區塊-實體區塊對映表。另外,在快閃記憶體儲存裝置100準備停止運作時,記憶體管理單元172會將邏輯區塊-邏輯區域對映表270回存至快閃記憶體晶片130中。
圖3是根據本發明範例實施例所繪示的邏輯區塊-邏輯區域對映表的範例,其中假設邏輯區塊的數目為9且邏輯區域的數目為3。然而,必須瞭解的是,圖3僅為一簡化範例以方便說明,本發明不限於此。例如,在實際的運作上,邏輯區塊的數目為2048個且邏輯區域的數目為64個。
請參照圖3,邏輯區塊-邏輯區域對映表270包括9個方塊,而每一方塊代表1個邏輯區塊,其中方塊是依照由左至右且由上至下的方向排列並且分別地代表邏輯區塊350-0~350-8。另外,每一方塊中所記錄的值是表示此方塊對應之邏輯區塊所屬的邏輯區域。例如,邏輯區塊350-0、350-3與350-6屬於邏輯區域LZ1,邏輯區塊350-1、350-4與350-7屬於邏輯區域LZ2,以及邏輯區塊350-2、350-5與350-8屬於邏輯區域LZ3。
此外,在本範例實施例中,轉換層250更包括邏輯區塊使用計數表280以記錄每一邏輯區塊對應的使用次數值。具體來說,使用計數單元174會在每當主機系統200對邏輯區塊執行寫入指令時,於對應的使用次數值上計數(例如,於寫入次數值上加1)。例如,當主機系統200對某一邏輯區塊中的一頁面下達一寫入指令時,則寫入次數值會加1,之後,當主機系統200又再一次的對同一邏輯區塊中的一頁面下達另一寫入指令時,則此邏輯區塊的寫入次數值則會再加1,即此邏輯區塊的寫入次數值(即,使用次數值)會為2)。類似地,例如,邏輯區塊使用計數表280會被儲存在快閃記憶體晶片130中(例如,系統區302或資料區304),並且在快閃記憶體儲存裝置100運作時,使用計數單元174會將使用計數表280載入至緩衝記憶體160以進行更新,而在快閃記憶體儲存裝置100準備停止運作時,使用計數單元174會將使用計數表280回存至快閃記憶體晶片130中。在本範例實施例中,邏輯區塊使用計數表280是類似於邏輯區塊-邏輯區域對映表270(如圖3所示),其差異僅在於邏輯區塊使用計數表280的方塊內的值是表示使用次數值。特別是,在本發明另一範例實施例中,邏輯區塊使用計數表280與邏輯區塊-邏輯區域對映表270亦可整合於單一表單中來表示。
值得一提的是,在本範例實施例中,記憶體管理單元172會根據邏輯區塊的使用狀態來動態地調整邏輯區塊-邏輯區域對映表270中邏輯區域與邏輯區塊的對映關係。具體來說,使用計數單元174會在快閃記憶體儲存裝置100運作期間記錄主機系統200於每一邏輯區塊中下達寫入指令的次數作為使用次數值,而記憶體管理單元172會在當邏輯區塊的使用次數值大於一使用次數門檻值時調整邏輯區域與邏輯區塊的對映關係,使得經常被寫入資料的邏輯區塊集中於同一個邏輯區域。在此,使用次數門檻值是由快閃記憶體儲存裝置設計人員於出廠時即完成設定,也就是說,使用次數門檻值是快閃記憶體儲存裝置設計上的選擇,不同的需求可做相對應的調整及最佳化。例如,在本範例實施例中,使用次數門檻值是被設定為99。
圖4是根據本發明範例實施例所繪示之動態地調整邏輯區塊-邏輯區域對映表的範例,其中記憶體管理單元172會依據使用次數值將邏輯區塊依序地分組至邏輯區域LZ1、邏輯區域LZ2與邏輯區域LZ3。也就是說,當快閃記憶體儲存裝置100在被使用一段時間後,邏輯區域LZ1中的邏輯區塊的被主機系統下達寫入指令的次數(或頻率)會大於邏輯區域LZ2中的邏輯區塊,而邏輯區域LZ2中的邏輯區塊的被主機系統下達寫入指令的次數(或頻率)會大於邏輯區域LZ3中的邏輯區塊。在此,被主機系統下達寫入指令的次數(或頻率)較高的邏輯區域稱為熱邏輯區域,而被主機系統下達寫入指令的次數(或頻率)較低的邏輯區域稱為冷邏輯區域。
請參照圖4,假設邏輯區塊的數目為9(即,邏輯區塊350-0~350-8)且邏輯區域的數目為3(即,邏輯區域LZ1~LZ3),其中圖4的(a)是顯示快閃記憶體儲存裝置100於出廠時邏輯區塊與邏輯區域的對映關係以及邏輯區塊的初始使用次數值。
之後,當主機系統200在邏輯區塊中下達寫入指令的次數持續累積一段時間後(如圖4的(b)所示),記憶體管理單元172會判斷邏輯區塊350-8的使用次數值已大於使用次數門檻值,例如上述使用次數值為99,因此記憶體管理單元172會進行邏輯區塊與邏輯區域之對映關係的調整。具體來說,記憶體管理單元172會更新邏輯區塊-邏輯區域對映表270以將邏輯區塊350-8調整為屬於邏輯區域LZ2同時將邏輯區域LZ2中使用次數值最低的邏輯區塊(即,邏輯區塊350-7)調整為屬於邏輯區域LZ3(如圖4的(c)所示),並且記憶體管理單元172會更新邏輯區域LZ2與LZ3所對應的邏輯區塊-實體區塊對映表。
值得一提的是,在本範例實施例中,記憶體管理單元172是將邏輯區域LZ2中使用次數值最低的邏輯區塊調整為屬於邏輯區域LZ3。然而,本發明不限於此,在本發明另一範例實施例中,記憶體管理單元172亦可從邏輯區域LZ2中隨機挑選一個邏輯區塊來調整為屬於邏輯區域LZ3。
此外,在完成邏輯區塊與邏輯區域之對映關係的調整後,使用計數單元174會重新調整使用次數值。例如,在本範例實施例中,使用計數單元174會將每一使用次數值除以2作為新的使用次數值(如圖4的(c)所示)。
類似地,當快閃記憶體儲存裝置100運作一段時間後(如圖4的(d)所示),記憶體管理單元172會判斷邏輯區塊350-8的使用次數值大於使用次數門檻值而再次進行邏輯區塊與邏輯區域之對映關係的調整,其中記憶體管理單元172會將邏輯區塊350-8調整為屬於邏輯區域LZ1同時將邏輯區域LZ1中使用次數值最低的邏輯區塊(即,邏輯區塊350-0)調整為屬於邏輯區域LZ2,且使用計數單元174會重新調整使用次數值(如圖4的(e)所示)。
在快閃記憶體儲存裝置100運作期間,類似於圖4所述之邏輯區塊與邏輯區域之對映關係的調整會不斷的被進行,由此邏輯區塊將會依據其使用次數(或頻率)被分群至對應的邏輯區域中。亦即,較常被寫入的邏輯區塊會被不斷的調整,直到較常被寫入的邏輯區塊已被調整為屬於最熱之邏輯區域為止。
在本範例實施例中,當執行完邏輯區塊與邏輯區域之對映關係的調整後,使用計數單元174是將每一邏輯區塊的使用次數值除以一預設值的運算式來調整使用次數值。然而,本發明不限於此,例如,在本發明另一範例實施例中,使用計數單元174亦可將所有使用次數值歸零或者以其他適當的運算式來調整使用次數值。
此外,在圖4所示的範例中,邏輯區域LZ1是最熱的邏輯區域,邏輯區域LZ2是次熱之邏輯區域,而邏輯區域LZ3是冷邏輯區域。然而,本發明不限於此,在本發明另一範例實施例中,邏輯區域LZ2可以是最熱的邏輯區域,邏輯區域LZ3是次熱之邏輯區域,而邏輯區域LZ1是冷邏輯區域。
圖5是根據本發明範例實施例所繪示的邏輯區塊管理方法的流程圖。
請參照圖5,首先,在步驟S501中快閃記憶體儲存裝置100會被連接至主機系統200並初始化。具體來說,若快閃記憶體儲存裝置100為第一次被使用時,快閃記憶體控制器110會格式化快閃記憶體晶片130並配置邏輯區塊350-0~350-H以對映快閃記憶體晶片130的實體區塊,其中邏輯區塊會被分群為多個邏輯區域(如圖3所示)。另外,若快閃記憶體儲存裝置100非第一次被使用時,快閃記憶體控制器110會從快閃記憶體晶片130中載入相關的資訊(例如,邏輯區塊-邏輯區域對映表、邏輯區塊-實體區塊對映表、使用計數表等)
之後,在步驟S503中快閃記憶體控制器110會待命並判斷從主機系統200接收的指令是否為寫入指令。必須瞭解的是,在本範例實施例中,邏輯區塊與邏輯區域之對映關係的調整是與邏輯區塊被主機系統下達寫入指令的次數有關,因此在圖5的流程圖中僅描述接收到寫入指令的狀態。倘若在步驟S503中判斷所接收的指令不是寫入指令時,則圖5所示的流程會執行步驟S503。
倘若在步驟S503中判斷所接收到的指令是寫入指令時,則在步驟S505中使用計數單元174會計數寫入此資料的邏輯區塊的使用次數值,並且在步驟S507中記憶體管理單元172會判斷所計數的使用次數值是否大於使用次數門檻值。
倘若在步驟S507中判斷所計數的使用次數值非大於使用次數門檻值時,則圖5所示的流程會執行步驟S503。
倘若在步驟S507中判斷所計數的使用次數值大於使用次數門檻值時,則在步驟S509中記憶體管理單元172會判斷寫入此資料的邏輯區塊是否已屬於最熱的邏輯區域中。倘若在步驟S509中判斷寫入此資料的邏輯區塊已屬於最熱的邏輯區域(例如,圖4所示的邏輯區域LZ1)時,則圖5所示的流程會執行步驟S503。反之,倘若在步驟S509中判斷寫入此資料的邏輯區塊非屬於最熱的邏輯區域時,則在步驟S511中記憶體管理單元172會調整邏輯區塊與邏輯區域之間的對映關係。調整邏輯區塊與邏輯區域之間的對映關係的方式已配合圖4詳細描述如前,在此不重複描述。之後,在步驟S513中使用計數單元174會調整所有邏輯區塊的使用次數值,然後圖5所示的流程會執行步驟S503。在此,圖5所示的流程會於快閃記憶體裝置100停止運作時結束。
基於上述,快閃記憶體控制器110可有效地區別邏輯區塊的存取頻率,並且當主機系統200存取邏輯區塊時,依據不同的使用次數(或頻率)利用對應的寫入機制來提升快閃記憶體儲存裝置100的存取效能。例如,當主機系統200欲寫入資料至被主機系統下達寫入指令的次數(或頻率)較高的邏輯區塊時,快閃記憶體控制器110可先將此資料暫存於快閃記憶體儲存裝置100的暫存區(例如,在快閃記憶體儲存裝置100中的動態隨機存取記憶體(未繪示))中,而當主機系統200欲寫入資料至被主機系統下達寫入指令的次數(或頻率)較低的邏輯區塊時,快閃記憶體控制器110才直接地將資料寫入至快閃記憶體晶片130中。或者,在快閃記憶體儲存裝置是由一個SLC NAND快閃記憶體與一個MLC NAND快閃記憶體所組成的例子中,當主機系統200欲寫入資料至被主機系統下達寫入指令的次數(或頻率)較高的邏輯區塊時,快閃記憶體控制器110會將此資料寫入至SLC NAND快閃記憶體中,而當主機系統200欲寫入資料至被主機系統下達寫入指令的次數(或頻率)較低的邏輯區塊時,快閃記憶體控制器110會資料寫入至MLC NAND快閃記憶體中。
值得一提的是,在本範例實施例中,使用計數單元174是依據寫入指令來計數邏輯區塊的使用次數,作為每一邏輯區塊的使用態樣。然而,本發明不限於此,在本發明另一範例實施例中,邏輯區塊的使用次數亦可根據其被寫入、讀取與狀態回覆指令的次數或者被寫入之資料量來計算。例如,當以被寫入之資料量作為使用次數時,使用計數單元174會根據每次主機系統200寫入至邏輯區塊之資料的扇區(sector)數來計數使用次數。例如,當主機系統200寫入5個扇區的資料至某一邏輯區塊時,則此邏輯區塊的使用次數會被加5。
此外,在本範例實施例中,記憶體管理單元172與使用計數單元174是以區塊(即,邏輯區塊與實體區塊)為單位來實作本範例實施例的區塊管理機制。然而,在本發明不限於此,在本發明另一範例實施例中,記憶體管理單元172與使用計數單元174亦可以具多個區塊的單元(Unit)為單位來管理快閃記憶體晶片130。例如,在將2個邏輯(實體)區塊視為1個邏輯(實體)單元的例子中,記憶體管理單元172會以具有2個邏輯(實體)區塊的邏輯(實體)單元為單位來進行資料抹除,而使用計數單元174會以具有2個邏輯(實體)區塊的邏輯(實體)單元為單位來計數每一邏輯單元的寫入次數。
綜上所述,本發明範例實施例透過動態地調整邏輯區塊與邏輯區域的對映關係,可有效地將寫入頻率較高的邏輯區塊與寫入頻率較低的邏輯區塊區分出來,由此可根據不同的使用樣態擬定對應的寫入策略,進而提升快閃記憶體儲存裝置的效能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100...快閃記憶體儲存裝置
110...快閃記憶體控制器
152...微處理器單元
154...區塊管理單元
156...快閃記憶體介面單元
158...主機介面單元
160...緩衝記憶體
172...記憶體管理單元
174...使用計數單元
120...連接器
130...快閃記憶體晶片
200...主機系統
250...轉換層
260-0~260-T...邏輯區塊-實體區塊對映表
270...邏輯區塊-邏輯區域對映表
280...使用計數表
300...匯流排
302...系統區
304...資料區
306...備用區
308...取代區
310-0~310-N...實體區塊
320...儲存區
330...取代區
350-0~350-H...邏輯區塊
S501、S503、S505、S507、S509、S511、S513...邏輯區塊管理步驟
圖1是根據本發明一範例實施例所繪示的快閃記憶體儲存系統的概要方塊圖。
圖2是根據本發明範例實施例所繪示的快閃記憶體晶片的概要方塊圖。
圖3是根據本發明範例實施例所繪示的邏輯區塊-邏輯區域對映表的範例。
圖4是根據本發明範例實施例所繪示之動態地調整邏輯區塊-邏輯區域對映表的範例。
圖5是根據本發明範例實施例所繪示的邏輯區塊管理方法的流程圖。
S501、S503、S505、S507、S509、S511、S513...邏輯區塊管理步驟
Claims (24)
- 一種邏輯區塊管理方法,用於管理一快閃記憶體儲存裝置的多個邏輯區塊,該邏輯區塊管理方法包括:提供一快閃記憶體控制器;將該些邏輯區塊分組為多個邏輯區域;記錄該些邏輯區塊與該些邏輯區域之間的對映關係,其中每一該些邏輯區塊對映該些邏輯區域的其中之一;為每一該些邏輯區塊計數一使用次數值;以及由該快閃記憶體控制器依據該些使用次數值調整該些邏輯區塊與該些邏輯區域之間的對映關係。
- 如申請專利範圍第1項所述之邏輯區塊管理方法,其中記錄該些邏輯區塊與該些邏輯區域之間的該些對映關係的步驟包括:建立一邏輯區塊-邏輯區域對映表以記錄該些邏輯區塊與該些邏輯區域之間的對映關係。
- 如申請專利範圍第1項所述之邏輯區塊管理方法,其中該些邏輯區域至少包括一熱邏輯區域與一冷邏輯區域。
- 如申請專利範圍第3項所述之邏輯區塊管理方法,其中由該快閃記憶體控制器依據該些使用次數值調整該些邏輯區塊與該些邏輯區域之間的對映關係的步驟包括:判斷該冷邏輯區域中的該些邏輯區塊的該些使用次數值是否大於一使用次數門檻值;以及當該冷邏輯區域的該些邏輯區塊中的其中一個邏輯區塊的使用次數值大於該使用次數門檻值時,則將該邏輯區塊分組為該熱邏輯區域,從該熱邏輯區域的該些邏輯區塊中選擇其中一個邏輯區塊,並且將所選擇的邏輯區塊分組為該冷邏輯區域。
- 如申請專利範圍第4項所述之邏輯區塊管理方法,其中所選擇的邏輯區塊的使用次數值為不大於該熱邏輯區域中其他該些邏輯區塊的使用次數值。
- 如申請專利範圍第1項所述之邏輯區塊管理方法,其中該些使用次數值包括該些邏輯區塊被一主機系統下達寫入指令的次數或被寫入資料的扇區(sector)數。
- 如申請專利範圍第1項所述之邏輯區塊管理方法,更包括由該快閃記憶體控制器調整該些使用次數值,其中該些使用次數值會被歸零或以一運算式來重新計算。
- 一種快閃記憶體控制電路,用於管理一快閃記憶體儲存裝置的多個邏輯區塊,該快閃記憶體控制電路包括:一微處理器單元;一快閃記憶體介面單元,耦接至該微處理器單元;一主機介面單元,耦接至該微處理器單元;一區塊管理單元,耦接至該微處理器單元,用以將該些邏輯區塊分組為多個邏輯區域且為每一該些邏輯區塊計數一使用次數值,其中該區塊管理單元依據該些使用次數值調整該些邏輯區塊與該些邏輯區域之間的對映關係。
- 如申請專利範圍第8項所述之快閃記憶體控制電路,其中該區塊管理單元包括:一記憶體管理單元,用以記錄該些邏輯區塊與該些邏輯區域之間的對映關係,其中每一該些邏輯區塊對映該些邏輯區域的其中之一;以及一使用計數單元,用以計數每一該些邏輯區塊的使用次數值。
- 如申請專利範圍第9項所述之快閃記憶體控制電路,其中該記憶體管理單元在一邏輯區塊-邏輯區域對映表中記錄該些邏輯區塊與該些邏輯區域之間的對映關係。
- 如申請專利範圍第9項所述之快閃記憶體控制電路,其中該些邏輯區域至少包括一熱邏輯區域與一冷邏輯區域。
- 如申請專利範圍第11項所述之快閃記憶體控制電路,其中該記憶體管理單元判斷該冷邏輯區域中的該些邏輯區塊的該些使用次數值是否大於一使用次數門檻值,其中當其中一個該些邏輯區塊的使用次數值大於該使用次數門檻值時,則該記憶體管理單元將該邏輯區塊分組為該熱邏輯區域,從該熱邏輯區域中選擇其中一個該些邏輯區塊,並且將所選擇的邏輯區塊分組為該冷邏輯區域。
- 如申請專利範圍第12項所述之快閃記憶體控制電路,其中所選擇的邏輯區塊的使用次數值為不大於該熱邏輯區域中其他該些邏輯區塊的使用次數值。
- 如申請專利範圍第8項所述之快閃記憶體控制電路,其中該些使用次數值包括該些邏輯區塊被一主機系統下達寫入指令的次數或被寫入資料的扇區(sector)數。
- 一種快閃記憶體儲存系統,包括:一連接器;一快閃記憶體晶片;以及一快閃記憶體控制器,耦接該連接器與該快閃記憶體晶片,用以配置多個邏輯區塊且將該些邏輯區塊分組為多個邏輯區域,並且記錄該些邏輯區塊與該些邏輯區域之間的對映關係,其中每一該些邏輯區塊對映該些邏輯區域的其中之一,其中該快閃記憶體控制器更用以為每一該些邏輯區塊計數一使用次數值,並且依據該些使用次數值調整該些邏輯區塊與該些邏輯區域之間的對映關係。
- 如申請專利範圍第15項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器在一邏輯區塊-邏輯區域對映表中記錄該些邏輯區塊與該些邏輯區域之間的對映關係。
- 如申請專利範圍第15項所述之快閃記憶體儲存系統,其中該些邏輯區域至少包括一熱邏輯區域與一冷邏輯區域。
- 如申請專利範圍第17項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器判斷該冷邏輯區域中的該些邏輯區塊的該些使用次數值是否大於一使用次數門檻值,其中當其中一個該些邏輯區塊的使用次數值大於該使用次數門檻值時,則該快閃記憶體控制器將該其中一個邏輯區塊分組為該熱邏輯區域,從該熱邏輯區域中選擇其中一個該些邏輯區塊,並且將所選擇的邏輯區塊分組為該冷邏輯區域。
- 如申請專利範圍第18項所述之快閃記憶體儲存系統,其中所選擇的邏輯區塊的使用次數值為不大於該熱邏輯區域中其他該些邏輯區塊的使用次數值。
- 如申請專利範圍第15項所述之快閃記憶體儲存系統,其中該些使用次數值包括該些邏輯區塊被一主機系統下達寫入指令的次數或被寫入資料的扇區(sector)數。
- 一種快閃記憶體儲存系統,包括:一連接器;一快閃記憶體晶片,包括多個實體區塊;以及一快閃記憶體控制器,耦接該連接器與該快閃記憶體晶片,用以配置多個邏輯區塊與將該些實體區塊至少分組為一資料區與一備用區,其中每一該些邏輯區塊對應至少一實體區塊,該快閃記憶體控制器為每一該些邏輯區塊計數一使用次數值,並且依據該使用次數值將該些邏輯區塊中的至少一邏輯區塊分組為至少一熱邏輯區域。
- 如申請專利範圍第21項所述之快閃記憶體儲存系統,其中該些使用次數值包括該些邏輯區塊被一主機系統下達寫入指令的次數或被寫入資料的扇區(sector)數。
- 如申請專利範圍第22項所述之快閃記憶體儲存系統,更包括一暫存區,其中當該主機系統的寫入資料屬於該熱邏輯區域中的其中一個邏輯區塊時,則該快閃記憶體控制器將該寫入資料儲存於該暫存區中。
- 如申請專利範圍第23項所述之快閃記憶體儲存系統,其中該暫存區為一動態隨機存取記憶體或一單層記憶胞NAND快閃記憶體。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW098123229A TWI400707B (zh) | 2009-07-09 | 2009-07-09 | 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統 |
| US12/552,798 US9098395B2 (en) | 2009-07-09 | 2009-09-02 | Logical block management method for a flash memory and control circuit storage system using the same |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW098123229A TWI400707B (zh) | 2009-07-09 | 2009-07-09 | 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201103025A TW201103025A (en) | 2011-01-16 |
| TWI400707B true TWI400707B (zh) | 2013-07-01 |
Family
ID=43428331
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW098123229A TWI400707B (zh) | 2009-07-09 | 2009-07-09 | 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US9098395B2 (zh) |
| TW (1) | TWI400707B (zh) |
Families Citing this family (83)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8239735B2 (en) * | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
| CN103280239B (zh) | 2006-05-12 | 2016-04-06 | 苹果公司 | 存储设备中的失真估计和消除 |
| US8595573B2 (en) | 2006-12-03 | 2013-11-26 | Apple Inc. | Automatic defect management in memory devices |
| CN101715595A (zh) | 2007-03-12 | 2010-05-26 | 爱诺彼得技术有限责任公司 | 存储器单元读取阈的自适应估计 |
| WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
| US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
| US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
| US8300478B2 (en) | 2007-09-19 | 2012-10-30 | Apple Inc. | Reducing distortion using joint storage |
| US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
| US8527819B2 (en) | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
| KR101509836B1 (ko) | 2007-11-13 | 2015-04-06 | 애플 인크. | 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택 |
| US8225181B2 (en) * | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
| US8209588B2 (en) * | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
| US8456905B2 (en) | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
| US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
| US8493783B2 (en) | 2008-03-18 | 2013-07-23 | Apple Inc. | Memory device readout using multiple sense times |
| US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
| US8498151B1 (en) | 2008-08-05 | 2013-07-30 | Apple Inc. | Data storage in analog memory cells using modified pass voltages |
| US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
| US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
| US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
| US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
| US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
| US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
| US8397131B1 (en) | 2008-12-31 | 2013-03-12 | Apple Inc. | Efficient readout schemes for analog memory cell devices |
| US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
| US8228701B2 (en) * | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
| US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
| US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
| US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
| US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
| US8988800B1 (en) | 2009-09-15 | 2015-03-24 | Marvell International Ltd. | Error correction for storage devices |
| US8402217B2 (en) | 2009-09-15 | 2013-03-19 | Marvell International Ltd. | Implementing RAID in solid state memory |
| US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
| WO2011061724A1 (en) * | 2009-11-23 | 2011-05-26 | Amir Ban | Memory controller and methods for enhancing write performance of a flash device |
| US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
| US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
| US8677203B1 (en) | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
| US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
| US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
| US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
| US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
| US8767459B1 (en) | 2010-07-31 | 2014-07-01 | Apple Inc. | Data storage in analog memory cells across word lines using a non-integer number of bits per cell |
| US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
| US8493781B1 (en) | 2010-08-12 | 2013-07-23 | Apple Inc. | Interference mitigation using individual word line erasure operations |
| US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
| US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
| US9501392B1 (en) * | 2011-05-12 | 2016-11-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of a non-volatile memory module |
| US8782370B2 (en) | 2011-05-15 | 2014-07-15 | Apple Inc. | Selective data storage in LSB and MSB pages |
| US9176864B2 (en) | 2011-05-17 | 2015-11-03 | SanDisk Technologies, Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
| US9141528B2 (en) | 2011-05-17 | 2015-09-22 | Sandisk Technologies Inc. | Tracking and handling of super-hot data in non-volatile memory systems |
| KR101438716B1 (ko) | 2011-08-09 | 2014-09-11 | 엘에스아이 코포레이션 | I/o 디바이스 및 컴퓨팅 호스팅 상호동작 |
| TWI457755B (zh) * | 2011-08-22 | 2014-10-21 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與儲存裝置 |
| CN102968385B (zh) * | 2011-08-31 | 2016-01-20 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与储存装置 |
| US9158700B2 (en) * | 2012-01-20 | 2015-10-13 | Seagate Technology Llc | Storing cached data in over-provisioned memory in response to power loss |
| US9026887B2 (en) * | 2012-03-15 | 2015-05-05 | Micron Technology, Inc. | Physical page, logical page, and codeword correspondence |
| US9690695B2 (en) * | 2012-09-20 | 2017-06-27 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
| US20140122774A1 (en) * | 2012-10-31 | 2014-05-01 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method for Managing Data of Solid State Storage with Data Attributes |
| US8984251B2 (en) | 2012-12-04 | 2015-03-17 | Apple Inc. | Hinting of deleted data from host to storage device |
| US9274954B1 (en) * | 2012-12-18 | 2016-03-01 | Netapp, Inc. | Caching data using multiple cache devices |
| US9395924B2 (en) * | 2013-01-22 | 2016-07-19 | Seagate Technology Llc | Management of and region selection for writes to non-volatile memory |
| US9715445B2 (en) | 2013-03-14 | 2017-07-25 | Sandisk Technologies Llc | File differentiation based on data block identification |
| WO2014185914A1 (en) * | 2013-05-16 | 2014-11-20 | Hewlett-Packard Development Company, L.P. | Deduplicated data storage system having distributed manifest |
| WO2014209234A1 (en) * | 2013-06-26 | 2014-12-31 | Agency For Science, Technology And Research | Method and apparatus for hot data region optimized dynamic management |
| TWI517165B (zh) * | 2014-03-31 | 2016-01-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
| US9431052B2 (en) | 2014-06-26 | 2016-08-30 | Marvell World Trade Ltd. | Two dimensional magnetic recording systems, devices and methods |
| KR20160150384A (ko) | 2015-06-22 | 2016-12-30 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
| US9760437B2 (en) | 2015-07-01 | 2017-09-12 | International Business Machines Corporation | Error correction based on thermal profile of flash memory device |
| US9733861B2 (en) * | 2015-07-24 | 2017-08-15 | Sk Hynix Memory Solutions Inc. | Data temperature profiling by smart counter |
| US20170168944A1 (en) * | 2015-12-15 | 2017-06-15 | Facebook, Inc. | Block cache eviction |
| US20170168956A1 (en) * | 2015-12-15 | 2017-06-15 | Facebook, Inc. | Block cache staging in content delivery network caching system |
| US10185666B2 (en) | 2015-12-15 | 2019-01-22 | Facebook, Inc. | Item-wise simulation in a block cache where data eviction places data into comparable score in comparable section in the block cache |
| US9967139B2 (en) * | 2015-12-15 | 2018-05-08 | Quanta Computer Inc. | Remote zone management of JBOD systems |
| KR20170099437A (ko) * | 2016-02-23 | 2017-09-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
| US10254981B2 (en) * | 2016-12-12 | 2019-04-09 | International Business Machines Corporation | Adaptive health grading for a non-volatile memory |
| TWI689816B (zh) * | 2018-03-06 | 2020-04-01 | 群聯電子股份有限公司 | 區塊管理方法、記憶體控制電路單元與記憶體儲存裝置 |
| JP2020170477A (ja) * | 2019-04-05 | 2020-10-15 | 株式会社バッファロー | 記憶装置、その制御方法、及びプログラム |
| US11501847B2 (en) | 2019-09-27 | 2022-11-15 | Samsung Electronics Co., Ltd. | Nonvolatile memory device with address re-mapping |
| KR102821422B1 (ko) | 2019-09-27 | 2025-06-17 | 삼성전자주식회사 | 비휘발성 메모리 장치 |
| CN111158604B (zh) * | 2019-12-31 | 2022-02-11 | 西南科技大学 | 一种闪存颗粒阵列的物联网时间序列数据存储与检索方法 |
| US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
| US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
| US11960753B2 (en) * | 2021-08-25 | 2024-04-16 | Western Digital Technologies, Inc. | Solution for super device imbalance in ZNS SSD |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020087563A1 (en) * | 2001-01-02 | 2002-07-04 | Sanjay Ghemawat | System and method for reorganizing data storage in accordance with usage frequency |
| CN1967504A (zh) * | 2005-11-18 | 2007-05-23 | 凌阳科技股份有限公司 | 闪存的控制装置与方法 |
| US20070226402A1 (en) * | 2006-03-07 | 2007-09-27 | Hitachi Sytsems & Services, Ltd. | Data management and control system in semiconductor flush memory and semiconductor flush memory accommodation apparatus |
| US20070276987A1 (en) * | 2004-02-26 | 2007-11-29 | Super Talent Electronics, Inc. | Source and Shadow Wear-Leveling Method and Apparatus |
| US20080104152A1 (en) * | 2006-10-27 | 2008-05-01 | Hewlett-Packard Development Company, L.P. | Memory piece categorization |
| US20090019244A1 (en) * | 2004-09-17 | 2009-01-15 | Keiichi Maeda | Information Record/Read Apparatus |
| US20090049234A1 (en) * | 2007-08-14 | 2009-02-19 | Samsung Electronics Co., Ltd. | Solid state memory (ssm), computer system including an ssm, and method of operating an ssm |
| US20090089501A1 (en) * | 2007-09-28 | 2009-04-02 | Samsung Electronics Co., Ltd. | Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8078794B2 (en) * | 2000-01-06 | 2011-12-13 | Super Talent Electronics, Inc. | Hybrid SSD using a combination of SLC and MLC flash memory arrays |
| CN100573476C (zh) * | 2005-09-25 | 2009-12-23 | 深圳市朗科科技股份有限公司 | 闪存介质数据管理方法 |
| US8112588B2 (en) * | 2009-02-26 | 2012-02-07 | Red Hat, Inc. | Sorting cache objects based on access counters reset upon garbage collection |
-
2009
- 2009-07-09 TW TW098123229A patent/TWI400707B/zh active
- 2009-09-02 US US12/552,798 patent/US9098395B2/en active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020087563A1 (en) * | 2001-01-02 | 2002-07-04 | Sanjay Ghemawat | System and method for reorganizing data storage in accordance with usage frequency |
| US20070276987A1 (en) * | 2004-02-26 | 2007-11-29 | Super Talent Electronics, Inc. | Source and Shadow Wear-Leveling Method and Apparatus |
| US20090019244A1 (en) * | 2004-09-17 | 2009-01-15 | Keiichi Maeda | Information Record/Read Apparatus |
| CN1967504A (zh) * | 2005-11-18 | 2007-05-23 | 凌阳科技股份有限公司 | 闪存的控制装置与方法 |
| US20070226402A1 (en) * | 2006-03-07 | 2007-09-27 | Hitachi Sytsems & Services, Ltd. | Data management and control system in semiconductor flush memory and semiconductor flush memory accommodation apparatus |
| US20080104152A1 (en) * | 2006-10-27 | 2008-05-01 | Hewlett-Packard Development Company, L.P. | Memory piece categorization |
| US20090049234A1 (en) * | 2007-08-14 | 2009-02-19 | Samsung Electronics Co., Ltd. | Solid state memory (ssm), computer system including an ssm, and method of operating an ssm |
| US20090089501A1 (en) * | 2007-09-28 | 2009-04-02 | Samsung Electronics Co., Ltd. | Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201103025A (en) | 2011-01-16 |
| US9098395B2 (en) | 2015-08-04 |
| US20110010489A1 (en) | 2011-01-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI400707B (zh) | 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統 | |
| TWI386802B (zh) | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 | |
| TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
| TWI467581B (zh) | 複合式儲存裝置及其複合式儲存媒體控制器與定址方法 | |
| TWI447735B (zh) | 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統 | |
| TWI537728B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
| CN101957797B (zh) | 闪速存储器逻辑区块管理方法及其控制电路与储存系统 | |
| TWI700635B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
| US9274943B2 (en) | Storage unit management method, memory controller and memory storage device using the same | |
| TWI584122B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
| TWI585770B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
| US20120304000A1 (en) | Restoring storage devices based on flash memories and related circuit, system, and method | |
| TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
| US9268688B2 (en) | Data management method, memory controller and memory storage apparatus | |
| CN104102585A (zh) | 映射信息记录方法、存储器控制器与存储器储存装置 | |
| TWI435329B (zh) | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 | |
| CN104765569B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
| TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
| CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
| TWI451439B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
| CN102193869B (zh) | 存储器管理与写入方法及其存储器控制器与储存系统 | |
| TWI486766B (zh) | 資料處理方法、記憶體控制器與記憶體儲存裝置 | |
| TWI417884B (zh) | 用於快閃記憶體的資料存取方法、儲存系統與控制器 | |
| CN101425338B (zh) | 非易失性存储器的写入方法及使用此方法的控制器 | |
| TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |