TWI409633B - 快閃記憶體儲存裝置、其控制器與資料寫入方法 - Google Patents

快閃記憶體儲存裝置、其控制器與資料寫入方法 Download PDF

Info

Publication number
TWI409633B
TWI409633B TW099103361A TW99103361A TWI409633B TW I409633 B TWI409633 B TW I409633B TW 099103361 A TW099103361 A TW 099103361A TW 99103361 A TW99103361 A TW 99103361A TW I409633 B TWI409633 B TW I409633B
Authority
TW
Taiwan
Prior art keywords
physical
data
flash memory
written
logical
Prior art date
Application number
TW099103361A
Other languages
English (en)
Other versions
TW201128389A (en
Inventor
Chih Jen Hsu
Yi Hsiang Huang
Chung Lin Wu
Original Assignee
Phison Electronics Corp
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 Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to TW099103361A priority Critical patent/TWI409633B/zh
Priority to US12/766,265 priority patent/US8706952B2/en
Publication of TW201128389A publication Critical patent/TW201128389A/zh
Application granted granted Critical
Publication of TWI409633B publication Critical patent/TWI409633B/zh

Links

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
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7202Allocation control and policies
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Landscapes

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

Description

快閃記憶體儲存裝置、其控制器與資料寫入方法
本發明是有關於一種資料寫入方法,且特別是有關於一種兼具寫入速度與儲存容量的資料寫入方法、快閃記憶體儲存裝置及快閃記憶體控制器。
由於快閃記憶體(Flash Memory)具有非揮發性、省電、體積小以及內部無機械結構等特性,因此被廣泛地應用於各種電子裝置。有越來越多如記憶卡或隨身碟等可攜式儲存裝置是以快閃記憶體作為其中的儲存媒體。
快閃記憶體具有多個實體區塊(physical block),且每一實體區塊具有多個實體頁面(page),其中在實體區塊寫入資料時必須依據實體頁面的順序依序地寫入資料。此外,快閃記憶體依據每一記憶胞能儲存的位元數可區分為單層記憶胞(Single Level Cell,SLC)反及(NAND)快閃記憶體與多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體。在SLC NAND快閃記憶體中每一個記憶胞僅能儲存一個位元的資料。而在MLC NAND快閃記憶體中,每個記憶胞所儲存的電荷可被區分為多個位準。因此,在MLC NAND快閃記憶體中,一個記憶胞可儲存多個位元的資料。基此,在相同記憶胞數目下,MLC NAND快閃記憶體之頁面數會是SLC NAND快閃記憶體之頁面數的數倍。
MLC NAND快閃記憶體之實體區塊的程式化可分為多階段。以2層記憶胞為例,實體區塊的程式化可分為2階段。第一階段是下頁(lower page)的寫入部分,其物理特性類似於SLC NAND快閃記憶體,在完成第一階段之後才程式化上頁(upper page)。一般來說,下頁的程式化速度會快於上頁數倍。
然而,程式化速度較快的頁面通常僅是整個區塊的部分頁面,因此若單獨使用程式化速度較快的頁面雖能提升寫入速度,但相對來說快閃記憶體的可用容量也將大幅減少。據此,為了盡可能地使用所有的儲存容量,程式化速度快或慢的頁面都將被使用,這將導致資料寫入速度變慢,而無法提升整體的寫入效率。
本發明提供一種資料寫入方法,在提升資料寫入速度的同時,不對儲存裝置之可用儲存容量造成負面影響。
本發明提供一種快閃記憶體儲存裝置,提升其寫入速度並確保不過度減少其中快閃記憶體的可使用空間。
本發明提供一種快閃記憶體控制器,用於具有快閃記憶體的儲存裝置,使其兼具寫入速度以及儲存容量的優勢。
本發明提出一種資料寫入方法,用於具有快閃記憶體的儲存裝置,其中快閃記憶體包括多個記憶胞且上述記憶胞係劃分為多個實體區塊,每一實體區塊包括多個實體位址,上述實體位址包括至少一快速實體位址與至少一慢速實體位址,且將資料寫入至快速實體位址的速度快於將資料寫入至慢速實體位址的速度,而每一記憶胞用以儲存n個位元,n為大於1的整數。此資料寫入方法包括將上述實體區塊至少分組為一資料區(data area)與一備用區(spare area),設定預設區塊數量並自備用區提取m個實體區塊,以及配置多個邏輯區塊且每一邏輯區塊包括多個邏輯位址,其中每一邏輯區塊映射至資料區的其中一個實體區塊。此方法還包括接收主機所下達的第一寫入指令,此第一寫入指令包括第一寫入資料與第一邏輯位址,依據第一邏輯位址與預設區塊數量決定m個實體區塊所表示之暫存區的邏輯位址範圍。此方法包括在判斷第一寫入資料所欲寫入的所有邏輯位址在暫存區的邏輯位址範圍內時,使用快速模式將第一寫入資料寫入至m個實體區塊中。其中在快速模式中僅使用實體位址的快速實體位址來寫入資料。
在本發明之一範例實施例中,此方法更包括當第一寫入資料所欲寫入的所有邏輯位址不在暫存區的邏輯位址範圍內時,使用正常模式將第一寫入資料寫入至快閃記憶體之其他的實體區塊中。其中在正常模式中使用實體位址的快速實體位址與慢速實體位址來寫入資料。
在本發明之一範例實施例中,此方法更包括接收主機所下達的第二寫入指令,第二寫入指令包括第二寫入資料與第二邏輯位址。判斷第二寫入資料所欲寫入的所有邏輯位址是否在暫存區的邏輯位址範圍內。當第二寫入資料所欲寫入的所有邏輯位址不在暫存區的邏輯位址範圍內時,使用正常模式將第二寫入資料寫入至快閃記憶體之其他的實體區塊中。其中在正常模式中使用實體位址的快速實體位址與慢速實體位址來寫入資料。
在本發明之一範例實施例中,此方法更包括當第二寫入資料所欲寫入的所有邏輯位址在暫存區的邏輯位址範圍內時,判斷暫存區是否被寫滿。當暫存區已被寫滿,則將暫存區中的有效資料搬移至快閃記憶體之其他的實體區塊中,並使用快速模式將第二寫入資料寫入至m個實體區塊中。
在本發明之一範例實施例中,此方法更包括當暫存區未被寫滿時,判斷第二寫入資料所欲寫入的所有邏輯位址與m個實體區塊中已寫入資料的邏輯位址是否重複。若有重複,則將暫存區中的有效資料搬移至快閃記憶體之其他的實體區塊中,並使用快速模式將第二寫入資料寫入至m個實體區塊中。
在本發明之一範例實施例中,其中當第二寫入資料所欲寫入的所有邏輯位址與m個實體區塊中已寫入資料的邏輯位址無重複時,使用快速模式將第二寫入資料寫入至m個實體區塊中。
在本發明之一範例實施例中,此資料寫入方法更包括判斷第一寫入資料的大小是否大於或等於一預設值。當第一寫入資料的大小是大於或等於預設值且第一寫入資料所欲寫入的所有邏輯位址在暫存區的邏輯位址範圍內時,則使用快速模式將第一寫入資料寫入至m個實體區塊中。
從另一觀點來看,本發明提出一種快閃記憶體儲存裝置,包括連接器、快閃記憶體,以及快閃記憶體控制器。其中連接器係用以耦接主機,並接收主機所下達的寫入指令。快閃記憶體包括多個記憶胞且上述記憶胞係劃分為多個實體區塊,每一實體區塊包括多個實體位址,上述實體位址包括至少一快速實體位址與至少一慢速實體位址。其中,將資料寫入至快速實體位址的速度快於將資料寫入至慢速實體位址的速度,而每一記憶胞用以儲存n個位元,n為大於1的整數。快閃記憶體控制器耦接至快閃記憶體與連接器,用以將上述實體區塊至少分組為資料區與備用區,設定預設區塊數量並自備用區提取m個實體區塊,以及配置多個邏輯區塊且每一邏輯區塊包括多個邏輯位址,而每一邏輯區塊映射資料區的其中一個實體區塊。當快閃記憶體控制器接收主機所下達的第一寫入指令,而第一寫入指令包括第一寫入資料與第一邏輯位址時,快閃記憶體控制器依據第一邏輯位址與預設區塊數量決定m個實體區塊所表示之暫存區的邏輯位址範圍,並判斷第一寫入資料所欲寫入的所有邏輯位址是否在暫存區的邏輯位址範圍內。當第一寫入資料所欲寫入的所有邏輯位址在暫存區的邏輯位址範圍內,快閃記憶體控制器使用快速模式將第一寫入資料寫入至m個實體區塊中,其中在快速模式中僅使用實體位址中的快速實體位址來寫入資料。
在本發明之一範例實施例中,其中當第一寫入資料所欲寫入的所有邏輯位址不在暫存區的邏輯位址範圍內時,快閃記憶體控制器使用正常模式將第一寫入資料寫入至快閃記憶體之其他的實體區塊中。其中在正常模式中係使用實體位址中的快速實體位址與慢速實體位址來寫入資料。
在本發明之一範例實施例中,其中當快閃記憶體控制器接收主機所下達的第二寫入指令,而第二寫入指令包括第二寫入資料與第二邏輯位址時,快閃記憶體控制器判斷第二寫入資料所欲寫入的所有邏輯位址是否在暫存區的邏輯位址範圍內。當第二寫入資料所欲寫入的所有邏輯位址不在暫存區的邏輯位址範圍內時,快閃記憶體控制器使用正常模式將第二寫入資料寫入至快閃記憶體之其他的實體區塊中。其中在正常模式中使用實體位址中的快速實體位址與慢速實體位址來寫入資料。
在本發明之一範例實施例中,其中當第二寫入資料所欲寫入的所有邏輯位址在暫存區的邏輯位址範圍內時,快閃記憶體控制器判斷暫存區是否被寫滿。當暫存區已被寫滿時,快閃記憶體控制器將暫存區中的有效資料搬移至快閃記憶體之其他的實體區塊中,並使用快速模式將第二寫入資料寫入至m個實體區塊中。當暫存區未被寫滿時,快閃記憶體控制器判斷第二寫入資料所欲寫入的所有邏輯位址與m個實體區塊中已寫入資料的邏輯位址是否重複。若有重複,快閃記憶體控制器將暫存區中的有效資料搬移至快閃記憶體之其他的實體區塊中,並使用快速模式將第二寫入資料寫入至m個實體區塊。若無重複,快閃記憶體控制器則使用快速模式將第二寫入資料寫入至m個實體區塊中。
從又一觀點來看,本發明提出一種快閃記憶體控制器,配置於耦接至主機的快閃記憶體儲存裝置中,此快閃記憶體儲存裝置具有快閃記憶體,快閃記憶體包括多個記憶胞且上述記憶胞係劃分為多個實體區塊,每一實體區塊包括多個實體位址,上述實體位址包括至少一快速實體位址與至少一慢速實體位址,而將資料寫入至快速實體位址的速度快於將資料寫入至慢速實體位址的速度,其中每一記憶胞用以儲存n個位元,n為大於1的整數。快閃記憶體控制器包括微處理器單元、快閃記憶體介面單元、主機介面單元以及記憶體管理單元。快閃記憶體介面單元耦接至微處理器單元用以耦接至快閃記憶體。主機介面單元耦接至微處理器單元,用以耦接至主機。記憶體管理單元耦接至微處理器單元,用以將上述實體區塊至少分組為資料區與備用區。記憶體管理單元設定預設區塊數量並自備用區提取m個實體區塊,以及配置多個邏輯區塊且每一邏輯區塊包括多個邏輯位址,其中各邏輯區塊映射至資料區的其中一個實體區塊。當主機介面單元接收主機所下達的第一寫入指令,而第一寫入指令包括第一寫入資料與第一邏輯位址時,記憶體管理單元依據第一邏輯位址與預設區塊數量決定m個實體區塊所表示之暫存區的邏輯位址範圍,並判斷第一寫入資料所欲寫入的所有邏輯位址是否在暫存區的邏輯位址範圍內。當第一寫入資料所欲寫入的所有邏輯位址在暫存區的邏輯位址範圍內時,記憶體管理單元使用快速模式將第一寫入資料寫入至m個實體區塊中,其中在快速模式中僅使用實體位址中的快速實體位址來寫入資料。
在本發明之一範例實施例中,其中當第一寫入資料所欲寫入的所有邏輯位址不在暫存區的邏輯位址範圍內時,記憶體管理單元使用正常模式將第一寫入資料寫入至快閃記憶體之其他的實體區塊中,其中在正常模式中係使用實體位址中的快速實體位址與慢速實體位址來寫入資料。
基於上述,本發明係動態地決定暫存區的邏輯位址範圍,只要所欲寫入的資料是位於暫存區的邏輯位址範圍內,便利用暫存區中的快速實體位址來儲存資料,以增加寫入速度。等儲存裝置進入閒置狀態時,再對暫存區中的資料進行處理。如此一來,在利用快閃記憶體中具有較快寫入速度的實體位址來提升資料寫入速度之餘,也不會對快閃記憶體的可用空間造成負面影響。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉範例實施例,並配合所附圖式作詳細說明如下。
圖1A是根據本發明之範例實施例所繪示的使用快閃記憶體儲存裝置的主機系統。
請參照圖1A,主機系統1000包括電腦1100與輸入/輸出(Input/Output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(Random Access Memory,RAM)1104、系統匯流排1108以及資料傳輸介面1110。輸入/輸出裝置1106包括如圖1B所示的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明範例實施例中,快閃記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的處理,主機系統1000可將資料寫入至快閃記憶體儲存裝置100或從快閃記憶體儲存裝置100中讀取資料。例如,快閃記憶體儲存裝置100可以是如圖1B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216。
一般而言,主機系統1000為可儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中,主機系統1000亦可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機1310時,快閃記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(Memory Stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖1D是繪示圖1A所示的快閃記憶體儲存裝置100的方塊圖。請參照圖1D,快閃記憶體儲存裝置100包括連接器102、快閃記憶體控制器104與快閃記憶體106。
連接器102耦接至快閃記憶體控制器104並且用以耦接至主機系統1000。在本範例實施例中,連接器102所支援的傳輸介面種類為通用序列匯流排(Universal Serial Bus,USB)介面。而在其他範例實施例中,連接器102的傳輸介面種類也可以是序列先進附件(Serial Advanced Technology Attachment,SATA)介面、平行先進附件(Parallel Advanced Technology Attachment,PATA)介面、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394介面、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)介面、安全數位(Secure Digital,SD)介面、記憶棒(Memory Stick,MS)介面、多媒體儲存卡(Multimedia Card,MMC)介面、小型快閃(Compact Flash,CF)介面,或整合驅動電子(Integrated Drive Electronics,IDE)介面等任何適用的介面,在此並不加以限制。
快閃記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並根據主機系統1000的指令在快閃記憶體106中進行資料的寫入、讀取與抹除等運作。快閃記憶體控制器104包括主機介面單元1042、微處理器單元1044、記憶體管理單元1046,以及快閃記憶體介面單元1048。
快閃記憶體控制器104藉由主機介面單元1042並透過連接器102以耦接至主機系統1000。在本範例實施例中,主機介面單元1042具有USB介面,而在其他範例實施例中,主機介面單元1042也可以是符合SATA介面、PATA介面、IEEE 1394介面、PCI Express介面、SD介面、MS介面、MMC介面、CF介面、IDE介面或其他介面標準的介面單元。
此外,快閃記憶體控制器104係透過快閃記憶體介面單元1048耦接快閃記憶體106,據以對快閃記憶體106進行相關運作。
如圖1D所示,主機介面單元1042、記憶體管理單元1046以及快閃記憶體介面單元1048均耦接至微處理器單元1044,而微處理器單元1044是快閃記憶體控制器104的主控單元,用以和主機介面單元1042、快閃記憶體介面單元1048以及記憶體管理單元1046等元件協同合作,以進行快閃記憶體106的各種運作。
記憶體管理單元1046用以在快閃記憶體儲存裝置100耦接至主機系統1000時執行一暫存管理機制。而記憶體管理單元1046的詳細運作方式將於以下再作詳細說明。
在本發明的另一範例實施例中,快閃記憶體儲存裝置100中的快閃記憶體控制器更包括其他功能模組。圖2是依照本發明之另一範例實施例所繪示之快閃記憶體控制器的方塊圖,請參照圖2。在快閃記憶體控制器104’中,除了包括主機介面單元1042、微處理器單元1044、記憶體管理單元1046以及快閃記憶體介面單元1048之外,另外還包括緩衝記憶體2002、錯誤校正單元2004,以及電源管理單元2006。
詳細地說,緩衝記憶體2002耦接至微處理器單元1044,用以暫存來自於主機系統1000的資料,或暫存來自於快閃記憶體106的資料。
錯誤校正單元2004耦接至微處理器單元1044,用以執行一錯誤校正程序以確保資料的正確性。具體來說,當快閃記憶體控制器104’接收到來自主機系統1000的寫入指令時,錯誤校正單元2004會為對應此寫入指令的寫入資料產生相應的錯誤校正碼(Error Correcting Code,ECC),而此寫入資料與相應的錯誤校正碼將被一併寫入至快閃記憶體106。而當快閃記憶體控制器104’接收到來自主機系統1000的讀取指令時,則會從快閃記憶體106中讀取對應此讀取指令的資料及其錯誤校正碼。此時,錯誤校正單元2004會依據此錯誤校正碼對所讀取的資料執行錯誤校正程序。
電源管理單元2006耦接至微處理器單元1044,用以控制快閃記憶體儲存裝置100的電源。
快閃記憶體106係用以儲存如檔案配置表(File Allocation Table,FAT)等檔案系統資訊,以及儲存如影音檔案、文字檔等一般性資料。在本範例實施例中,快閃記憶體106為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體,亦即,快閃記憶體106包括多個記憶胞,且每一記憶胞係用以儲存n個位元(n為大於1的整數)。上述記憶胞係劃分為多個實體區塊,每一實體區塊包括多個實體位址,而上述實體位址包括至少一快速實體位址與至少一慢速實體位址。其中,將資料寫入至任一快速實體位址的速度會快於將資料寫入至任一慢速實體位址的速度。
在本範例實施例中,記憶體管理單元1046至少會將快閃記憶體106中的所有實體區塊邏輯地分組為資料區(data area)與備用區(spare area),在其他範例實施例中,實體區塊則例如會被邏輯地分組為系統區(system area)、資料區(data area)、備用區(spare area)與取代區(replacement area)。
記憶體管理單元1046根據一預設區塊數量自備用區提取m個實體區塊以作為暫存區。舉例來說,m可以是預設區塊數量與n的乘積,但並不以此為限。假設以B表示預設區塊數量,那麼當快閃記憶體106之每一記憶胞係用以儲存2個位元時,記憶體管理單元1046例如會自備用區提取2×B個實體區塊作為暫存區。而當快閃記憶體106之每一記憶胞係用以儲存3個位元時,記憶體管理單元1046可從備用區提取3×B個實體區塊作為暫存區。
在本範例實施例中,當判斷要將資料寫入暫存區時,記憶體管理單元1046僅會把資料寫入這m個實體區塊所包括之所有實體位址中的快速實體位址。假設快閃記憶體106中的每一記憶胞可儲存2個位元,其中各實體區塊所包括的多個實體位址可分為下頁(lower page)與上頁(upper page),由於將資料寫入下頁的速度會快於將資料寫入上頁的速度,因此記憶體管理單元1046將下頁視為快速實體位址。若快閃記憶體106的每一記憶胞可儲存3個位元,各實體區塊所包括的多個實體位址則可分為資料寫入速度遞減的下頁、中頁,以及上頁,那麼記憶體管理單元1046例如會將下頁作為快速實體位址,又或者是將下頁及中頁視為快速實體位址。換言之,記憶體管理單元1046可將實體區塊中具有最快寫入速度的實體位址視為快速實體位址,或是將實體區塊中具有最快以及較快寫入速度的實體位址一併視為快速實體位址。
假設m是預設區塊數量與n的乘積,且記憶體管理單元1046只會將具有最快寫入速度的實體位址視為能寫入資料的快速實體位址,那麼暫存區中可儲存資料的容量將與預設區塊數量所對應的儲存容量相等。
由於快閃記憶體儲存裝置100是以輪替使用快閃記憶體106中的實體區塊來儲存主機系統1000欲寫入的資料,因此記憶體管理單元1046會配置多個邏輯區塊以供主機系統1000存取資料。其中,每個邏輯區塊包括多個邏輯位址,每個邏輯區塊映射資料區的其中一個實體區塊,且該邏輯區塊中的每一邏輯位址係映射至對應實體區塊中的一實體位址。據此,主機系統1000僅需依據邏輯位址來存取資料,而記憶體管理單元1046會在所映射的實體位址中實際地讀取或寫入資料。
在本範例實施例中,當主機介面單元1042接收到主機系統1000所下達的第一寫入指令所包括的第一寫入資料與第一邏輯位址時,記憶體管理單元1046便會依據預設區塊數量及第一寫入指令中的第一邏輯位址,決定m個實體區塊所表示之暫存區的邏輯位址範圍。假設第一邏輯位址為A,且預設區塊數量的容量可儲存Lnum 個邏輯位址,那麼m個實體區塊所表示之暫存區的邏輯位址範圍便是A至A+Lnum -1。進一步來說,隨著第一邏輯位址的不同,暫存區的邏輯位址範圍也不相同。
記憶體管理單元1046首先根據第一寫入指令的內容判斷第一寫入資料所欲寫入的所有邏輯位址是否在暫存區的邏輯位址範圍之內。若是,記憶體管理單元1046會使用一快速模式將第一寫入資料寫入至m個實體區塊中。其中,快速模式表示記憶體管理單元1046僅會使用暫存區所包括之所有實體位址中的快速實體位址來寫入資料,從而大幅提升寫入資料的速度。將第一寫入資料寫入m個實體區塊之快速實體位址的方式將於以下配合圖示再作說明。
然而,若第一寫入資料所欲寫入的所有邏輯位址並未在暫存區的邏輯位址範圍之內(亦即,第一寫入資料的大小超過暫存區的可用儲存容量),記憶體管理單元1046則會使用一正常模式將第一寫入資料寫入至快閃記憶體106的其他的實體區塊中。在正常模式中,記憶體管理單元1046會使用實體位址的快速實體位址與慢速實體位址來寫入資料。記憶體管理單元1046必須將在資料區中欲寫入之實體區塊內的有效資料以及欲寫入的新資料搬移到提取自備用區的實體區塊,由於此時寫入資料的方式與一般透過輪替實體區塊來儲存資料的方式相同,故不贅述。
在本範例實施例中,一旦主機系統1000於一段預設時間(例如0.2秒)都沒有下達指令至快閃記憶體儲存裝置100,記憶體管理單元1046便判斷快閃記憶體儲存裝置100進入閒置狀態。此時,記憶體管理單元1046會將已寫入至m個實體區塊中的所有資料都搬移至從備用區所提取的實體區塊並將所提取的實體區塊關聯至資料區,並對這m個實體區塊的內容加以清除,以便於下次使用。
倘若在進行上述搬移與清除的動作之前,主機系統1000再次下達了另一寫入指令至快閃記憶體儲存裝置100,記憶體管理單元1046則會根據此次接收之寫入指令所欲寫入的所有邏輯位址是否在暫存區的邏輯位址範圍之內,進而決定要利用暫存區來儲存資料,或是透過一般資料寫入的方式將資料寫入至快閃記憶體106。
為了方便說明,在此稱主機系統1000接著下達的寫入指令為第二寫入指令,且第二寫入指令包括第二寫入資料與第二邏輯位址。當第二寫入資料所欲寫入的所有邏輯位址不在暫存區的邏輯位址範圍內時,記憶體管理單元1046使用正常模式將第二寫入資料寫入至快閃記憶體106的其他實體區塊中,換言之,當第二寫入資料所欲寫入的所有邏輯位址部份在暫存區的邏輯位址範圍內與部分不在暫存區的邏輯位址範圍內時,記憶體管理單元1046亦使用正常模式將第二寫入資料寫入至快閃記憶體106的其他實體區塊中。
當第二寫入資料所欲寫入的所有邏輯位址在暫存區的邏輯位址範圍內時,記憶體管理單元1046接著判斷暫存區是否被寫滿(亦即,判斷m個實體區塊中的所有快速實體位址是否都已寫入資料)。
當暫存區已被寫滿時,記憶體管理單元1046將暫存區中的有效資料搬移至快閃記憶體106的其他實體區塊中,並使用快速模式將第二寫入資料寫入至m個實體區塊中。搬移暫存區中有效資料以及使用快速模式寫入第二寫入資料的方式容後再詳述之。
在暫存區未被寫滿的情況下,記憶體管理單元1046接著判斷第二寫入資料所欲寫入的所有邏輯位址與m個實體區塊(暫存區)中已寫入資料的邏輯位址是否重複。
若第二寫入資料所欲寫入的所有邏輯位址與m個實體區塊中已寫入資料的邏輯位址有重複時,記憶體管理單元1046將暫存區中的有效資料搬移至快閃記憶體106之其他的實體區塊中,並使用快速模式將第二寫入資料寫入至m個實體區塊中。而在第二寫入資料所欲寫入的所有邏輯位址與m個實體區塊中已寫入資料的邏輯位址並無重複時,記憶體管理單元1046則直接使用快速模式將第二寫入資料寫入至m個實體區塊中。
以下說明當記憶體管理單元1046判斷暫存區已被寫滿,或是當所欲寫入的邏輯位址與m個實體區塊中已有資料寫入之邏輯位址重複時,記憶體管理單元1046搬移有效資料及使用快速模式來寫入資料的詳細方式。
在一範例實施例中,記憶體管理單元1046會對整個暫存區進行整理,並在清除暫存區所包括的實體區塊後,重新決定暫存區的邏輯位址範圍。詳細地說,記憶體管理單元1046將在目前作為暫存區的m個實體區塊中的所有有效資料搬移至從備用區提取的實體區塊中,接著將提取自備用區的實體區塊關聯至資料區。接下來,記憶體管理單元1046抹除原本作為暫存區的m個實體區塊,並將這m個實體區塊關聯至備用區。記憶體管理單元1046會再度自備用區提取m個實體區塊以作為暫存區,並依據第二邏輯位址與預設區塊數量重新決定新提取之m個實體區塊所對應的暫存區邏輯位址範圍。最後,記憶體管理單元1046使用快速模式將第二寫入資料寫入至此m個實體區塊中。
在另一範例實施例中,記憶體管理單元1046僅會對暫存區中發生重複寫入情況的位址進行處理。記憶體管理單元1046首先將重複的邏輯位址中的有效資料搬移到提取自備用區的實體區塊中,接著再使用快速模式將第二寫入資料寫入至m個實體區塊中。
圖3A是根據本發明之一範例實施例所繪示之暫存區與其邏輯位址範圍的對應關係示意圖。在本範例實施例中假設預設區塊數量為50,快閃記憶體106中每一記憶胞係用以儲存2個位元,快閃記憶體106中的每一實體區塊包括兩個實體位址,且記憶體管理單元1046從備用區提取100個實體區塊來當作暫存區。如圖3A所示,這100個實體區塊例如被編號為P_B0 至P_B99 ,而實體區塊P_B0 至P_B99 所包括的實體位址例如被編號為P0 至P199 。另外假設在實體位址P0 至P199 中,實體位址P0 、P2 、P4 、...、P198 等被編號為雙數的實體位址係屬於快速實體位址。必須特別說明的是,上述假設只是為了方便說明而舉出的範例,並不用以限制本發明的範圍。
當快閃記憶體儲存裝置100接收到主機系統1000下達的第一寫入指令與其中的第一寫入資料時,倘若第一寫入指令所包括之第一邏輯位址為L0 ,那麼暫存區(即實體區塊P_B0 至P_B99 )所對應的邏輯位址範圍便是邏輯位址L0 至L99 。換句話說,邏輯位址L0 係對應至實體區塊P_B0 中的實體位址P0 ,邏輯位址L1 則對應至實體區塊P_B1 中的實體位址P2 ,以此類推。
倘若第一寫入資料所欲寫入的所有邏輯位址為邏輯位址L0 至L29 ,由於邏輯位址L0 至L29 完全在暫存區的邏輯位址範圍之內,因此記憶體管理單元1046會利用快速模式將第一寫入資料對應地寫入實體位址P0 、P2 、P4 、...、P58
然而倘若第一寫入資料所欲寫入的邏輯位址為邏輯位址L0 至L100 ,由於邏輯位址L0 至L100 有部份超出暫存區的邏輯位址範圍,因此記憶體管理單元1046會利用正常模式將第一寫入資料寫入至快閃記憶體106的其他實體區塊。
在完成資料寫入的動作後,記憶體管理單元1046會在判斷快閃記憶體儲存裝置100進入閒置狀態時,對暫存區中的資料進行搬移。假設在此之前,快閃記憶體儲存裝置100又接收到主機系統1000下達的第二寫入指令以及對應的第二寫入資料。倘若第二寫入資料所欲寫入的是邏輯位址L50 至L59 ,由於上述邏輯位址都在暫存區的邏輯位址範圍內,因此記憶體管理單元1046便會將第二寫入資料對應地寫入暫存區,亦即,將第二寫入資料寫入實體位址P100 、P102 、P104 、...、P118 。。
但若第二寫入資料所欲寫入的所有邏輯位址有部份超過暫存區的邏輯位址範圍(例如當第二寫入資料所欲寫入的是邏輯位址L50 至L110 ),或所欲寫入的邏輯位址完全超過暫存區的邏輯位址範圍(例如當第二寫入資料所欲寫入的是邏輯位址L199 至L250 ),那麼記憶體管理單元1046便會依照一般快閃記憶體的寫入方式,以正常模式將第二寫入資料寫入至快閃記憶體106的其他實體區塊中。
任何在快閃記憶體儲存裝置100進入閒置狀態之前所接收到的寫入指令,只要寫入指令所欲寫入的邏輯位址全部都在暫存區的邏輯位址範圍(即邏輯位址L0 至L99 )之內,寫入指令所對應的寫入資料便會被對應地儲存至實體區塊P_B0 至P_B99 的快速實體位址。
一旦記憶體管理單元1046判斷快閃記憶體儲存裝置100進入閒置狀態,記憶體管理單元1046會將寫入在實體區塊P_B0 至P_B99 中的所有資料搬移至提取自備用區的實體區塊,並清除實體區塊P_B0 至P_B99 的內容。換言之,這些被取作為暫存區的實體區塊將再度被關聯至快閃記憶體106的備用區。
爾後,當快閃記憶體儲存裝置100接收到寫入指令以及對應的寫入資料時,若寫入指令中的邏輯位址為L51 ,那麼如圖3B所示,記憶體管理單元1046會將邏輯位址L51 至L150 定義為暫存區目前的邏輯位址範圍。此時,記憶體管理單元1046自備用區所提取100個實體區塊(例如被編號為P_B0 至P_B99 )將對應至邏輯位址L51 至L150 。舉例來說,邏輯位址L51 是對應至實體區塊P_B0 中的實體位址P0 ,而邏輯位址L150 則對應至實體區塊P_B99 中的實體位址P198
決定暫存區的邏輯位址範圍後,只要寫入指令所欲寫入的邏輯位址全部在暫存區的邏輯位址範圍(即邏輯位址L51 至L150 )之內,寫入指令所對應的寫入資料便會被對應地儲存至實體區塊P_B0 至P_B99 的快速實體位址。
如上所述,當所欲寫入的位址在暫存區的邏輯位址範圍內時,便利用暫存區中對應的快速實體位址來暫存資料,以加快資料寫入的速度。一旦完成寫入動作,再利用快閃記憶體儲存裝置100進入閒置狀態時對暫存區中的資料進行搬移。由於暫存區的邏輯位址範圍會依據決定範圍時所接收之寫入指令的邏輯位址而有所變動,因此具有較快寫入速度的並非固定的邏輯位址,而會動態改變。
圖4是根據本發明之一範例實施例所繪示之寫入速度與時間的曲線圖。如圖4所示,只要暫存區尚有空間便能以較快的速度進行資料寫入(例如時間區間0-t1 所示)。一旦暫存區已滿(如時間點t1 ),寫入速度將回復為一般寫入資料的速度。但在利用快閃記憶體儲存裝置100進入閒置狀態的時間而清除暫存區後(例如時間點t2 ),接下來收到寫入指令的寫入速度將再次提升(例如時間區間t2 -t3 所示)。
圖5是根據本發明之一範例實施例所繪示資料寫入方法的流程圖。
如圖5所示,在步驟510中,快閃記憶體儲存裝置100接收主機系統1000下達的寫入指令,此寫入指令包括寫入資料與邏輯位址。
接著在步驟515中,快閃記憶體控制器104中的記憶體管理單元1046依據邏輯位址與預設區塊數量,決定提取自備用區的m個實體區塊所表示之暫存區的邏輯位址範圍。
在步驟520中,記憶體管理單元1046判斷寫入資料所欲寫入的邏輯位址是否在暫存區的邏輯位址範圍內。若是,則在步驟530中,記憶體管理單元1046使用快速模式將寫入資料寫入至m個實體區塊中。若否,則在步驟525中,記憶體管理單元1046使用正常模式將寫入資料寫入至快閃記憶體106的其他實體區塊。
接著在步驟535中,記憶體管理單元1046判斷快閃記憶體儲存裝置100是否進入閒置狀態。若快閃記憶體儲存裝置100並未進入閒置狀態,在步驟550中,記憶體管理單元1046判斷快閃記憶體儲存裝置100是否接收主機系統1000下達的另一寫入指令。若並未收到寫入指令,記憶體管理單元1046會重複步驟535及550的判斷。期間,若記憶體管理單元1046判斷快閃記憶體儲存裝置100進入閒置狀態,則如步驟540所示,記憶體管理單元1046將已寫入在m個實體區塊中的有效資料搬移至快閃記憶體106的其他實體區塊,並清除這m個實體區塊的內容。而當快閃記憶體儲存裝置100接收到另一寫入指令時,在步驟560中,記憶體管理單元1046判斷此寫入指令所包括之寫入資料欲寫入的所有邏輯位址是否都在暫存區的邏輯位址範圍內。若否,則如步驟525所示,記憶體管理單元1046使用正常模式將寫入資料寫入至快閃記憶體106的其他實體區塊。若是,則在步驟570中,記憶體管理單元1046判斷暫存區是否被寫滿。
當暫存區被寫滿時,如步驟590所示,記憶體管理單元1046將暫存區中的有效資料搬移至快閃記憶體之其他的實體區塊中,並使用快速模式將第二寫入資料寫入至m個實體區塊中。
然而當暫存區未被寫滿時,則如步驟580所示,記憶體管理單元1046判斷寫入資料所欲寫入的所有邏輯位址與暫存區中已寫入資料的邏輯位址是否重複。若有重複,則在步驟590中,記憶體管理單元1046將暫存區中的有效資料搬移至快閃記憶體之其他的實體區塊中,並使用快速模式將第二寫入資料寫入至m個實體區塊。若並未重複,則如步驟530所示,記憶體管理單元1046使用快速模式將寫入資料寫入至m個實體區塊中。
如圖5所示,一旦決定暫存區的邏輯位址範圍之後,本範例實施例所述之資料寫入方法會重複步驟530至590的流程,直到記憶體管理單元1046判斷快閃記憶體儲存裝置100進入閒置狀態,再對暫存區中的資料進行整理。爾後,當快閃記憶體儲存裝置100又接收其他的寫入指令時,則會再次透過圖5所示之各步驟,重新決定暫存區的邏輯位址範圍,並將資料寫入至快閃記憶體106中。
在本發明的一範例實施例中,唯有當記憶體管理單元1046判斷主機系統1000所下達之寫入指令對應的寫入資料大小均超過一預設值時,才會利用暫存區來完成快速寫入資料的目的。又或者,記憶體管理單元1046會在判斷接收到特定數量之寫入指令所欲寫入的資料大小都超過預設值,且上述寫入資料所欲寫入的邏輯位址連續時,才開始利用暫存區完成快速寫入資料的目的。在本發明的一範例實施例中,上述預設值為5MB,,但本發明並不以此為限。
在本發明的一範例實施例中,預設區塊數量的多寡可根據寫入資料的大小做調整。當記憶體管理單元1046判斷主機系統1000的行為是連續寫入(sequential write)且資料量較大時,便可提高預設區塊數量,以更進一步地提升寫入資料的效率。
綜上所述,本發明所述之資料寫入方法、快閃記憶體儲存裝置與快閃記憶體控制器係提取部分實體區塊作為暫存區,當判斷可使用暫存區時,便將資料寫入暫存區中的快速實體位址,進而增加寫入速度。等待儲存裝置進入閒置狀態,再搬移暫存區中的資料。據此,在不過度減少快閃記憶體之可用容量的前提下,達到提升資料寫入速度的目的。
雖然本發明已以範例實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000...主機系統
1100...電腦
1102...微處理器
1104...隨機存取記憶體
1106...輸入/輸出裝置
1108...系統匯流排
1110...資料傳輸介面
1202...滑鼠
1204...鍵盤
1206...顯示器
1208...印表機
1212...隨身碟
1214...記憶卡
1216...固態硬碟
1310...數位相機
1312...SD卡
1314...MMC卡
1316...記憶棒
1318...CF卡
1320...嵌入式儲存裝置
100...快閃記憶體儲存裝置
102...連接器
104、104’...快閃記憶體控制器
1042...主機介面單元
1044...微處理器單元
1046...記憶體管理單元
1048...快閃記憶體介面單元
106...快閃記憶體
2002...緩衝記憶體
2004...錯誤校正單元
2006...電源管理單元
L0 、L1 、L51 、L99 、L100 、L150 、LH ...邏輯位址
P0 、P1 、P2 、P3 、P198 、P199 ...實體位址
P_B0 、P_B1 、P_B99 ...實體區塊
t1 、t2 、t3 ...時間點
510~590...本發明之一範例實施例所述資料寫入方法的各步驟
圖1A是根據本發明範例實施例所繪示的使用快閃記憶體儲存裝置的主機系統。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與快閃記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與快閃記憶體儲存裝置的示意圖。
圖1D是繪示圖1A所示快閃記憶體儲存裝置的方塊圖。
圖2是根據本發明另一範例實施例所繪示的快閃記憶體控制器的方塊圖。
圖3A、3B是根據本發明之一範例實施例所繪示的暫存區與其邏輯位址範圍的對應關係示意圖。
圖4是根據本發明之一範例實施例所繪示之寫入速度與時間的曲線圖。
圖5是根據本發明之一範例實施例所繪示資料寫入方法的流程圖。
510~590...本發明之一範例實施例所述資料寫入方法的各步驟

Claims (15)

  1. 一種資料寫入方法,用於具有一快閃記憶體的一儲存裝置,其中該快閃記憶體包括多個記憶胞且該些記憶胞係劃分為多個實體區塊,每一該些實體區塊包括多個實體位址,該些實體位址包括至少一快速實體位址與至少一慢速實體位址,且寫入資料至該至少一快速實體位址的速度快於寫入資料至該至少一慢速實體位址的速度,其中每一記憶胞用以儲存n個位元,n為大於1的整數,該資料寫入方法包括:將該些實體區塊至少分組為一資料區(data area)與一備用區(spare area);設定一預設區塊數量並自該備用區提取m個實體區塊;配置多個邏輯區塊且每一該些邏輯區塊包括多個邏輯位址,其中每一該些邏輯區塊映射該資料區的實體區塊的其中之一;接收一主機所下達的一第一寫入指令,該第一寫入指令包括一第一寫入資料與一第一邏輯位址;依據該第一邏輯位址與該預設區塊數量決定該m個實體區塊所表示之一暫存區的邏輯位址範圍;判斷該第一寫入資料所欲寫入的所有邏輯位址是否在該暫存區的邏輯位址範圍內;以及當該第一寫入資料所欲寫入的所有邏輯位址在該暫存區的邏輯位址範圍內時,則使用一快速模式將該第一寫入資料寫入至該m個實體區塊中,其中在該快速模式中僅使用該些實體位址的快速實體位址來寫入資料。
  2. 如申請專利範圍第1項所述之資料寫入方法,其中在判斷該第一寫入資料所欲寫入的所有邏輯位址是否在該暫存區的邏輯位址範圍內的步驟之後,該方法更包括:當該第一寫入資料所欲寫入的所有邏輯位址不在該暫存區的邏輯位址範圍內時,則使用一正常模式將該第一寫入資料寫入至該快閃記憶體之其他的實體區塊中,其中在該正常模式中使用該些實體位址的快速實體位址與慢速實體位址來寫入資料。
  3. 如申請專利範圍第1項所述之資料寫入方法,更包括:接收該主機所下達的一第二寫入指令,該第二寫入指令包括一第二寫入資料與一第二邏輯位址;判斷該第二寫入資料所欲寫入的所有邏輯位址是否在該暫存區的邏輯位址範圍內;以及當該第二寫入資料所欲寫入的所有邏輯位址不在該暫存區的邏輯位址範圍內時,使用一正常模式將該第二寫入資料寫入至該快閃記憶體之其他的實體區塊中,其中在該正常模式中使用該些實體位址的快速實體位址與慢速實體位址來寫入資料。
  4. 如申請專利範圍第3項所述之資料寫入方法,其中在判斷該第二寫入資料所欲寫入的所有邏輯位址是否在該暫存區之邏輯位址範圍內的步驟後,更包括:當該第二寫入資料所欲寫入的所有邏輯位址在該暫存區的邏輯位址範圍內時,判斷該暫存區是否被寫滿;以及當該暫存區已被寫滿時,搬移該暫存區中的有效資料至該快閃記憶體之其他的實體區塊中,並使用該快速模式將該第二寫入資料寫入至該m個實體區塊中。
  5. 如申請專利範圍第4項所述之資料寫入方法,其中在判斷該暫存區是否被寫滿的步驟之後,更包括:當該暫存區未被寫滿時,判斷該第二寫入資料所欲寫入的所有邏輯位址與該m個實體區塊中已寫入資料的邏輯位址是否重複;以及當該第二寫入資料所欲寫入的所有邏輯位址與該m個實體區塊中已寫入資料的邏輯位址有重複時,搬移該暫存區中的有效資料至該快閃記憶體之其他的實體區塊中,並使用該快速模式將該第二寫入資料寫入至該m個實體區塊中。
  6. 如申請專利範圍第5項所述之資料寫入方法,其中在判斷該第二寫入資料所欲寫入的所有邏輯位址與該m個實體區塊中已寫入資料的邏輯位址是否重複的步驟之後,更包括:當該第二寫入資料所欲寫入的所有邏輯位址與該m個實體區塊中已寫入資料的邏輯位址無重複時,使用該快速模式將該第二寫入資料寫入至該m個實體區塊中。
  7. 如申請專利範圍第1項所述之資料寫入方法,更包括:判斷該第一寫入資料的大小是否大於或等於一預設值,當該第一寫入資料的大小是大於或等於該預設值且該第一寫入資料所欲寫入的所有邏輯位址在該暫存區的邏輯位址範圍內時,則使用該快速模式將該第一寫入資料寫入至該m個實體區塊中。
  8. 一種快閃記憶體儲存裝置,包括:一連接器,用以耦接一主機,並接收該主機下達的寫入指令;一快閃記憶體,該快閃記憶體包括多個記憶胞且該些記憶胞係劃分為多個實體區塊,每一該些實體區塊包括多個實體位址,該些實體位址包括至少一快速實體位址與至少一慢速實體位址,其中寫入資料至該至少一快速實體位址的速度快於寫入資料至該至少一慢速實體位址的速度,而每一記憶胞用以儲存n個位元,n為大於1的整數;以及一快閃記憶體控制器,耦接至該快閃記憶體與該連接器,用以將該些實體區塊至少分組為一資料區與一備用區,設定一預設區塊數量並自該備用區提取m個實體區塊,以及配置多個邏輯區塊且每一該些邏輯區塊包括多個邏輯位址,而每一該些邏輯區塊映射該資料區的實體區塊的其中之一,當該快閃記憶體控制器接收該主機所下達的一第一寫入指令,而該第一寫入指令包括一第一寫入資料與一第一邏輯位址時,該快閃記憶體控制器依據該第一邏輯位址與該預設區塊數量決定該m個實體區塊所表示之一暫存區的邏輯位址範圍,並判斷該第一寫入資料所欲寫入的所有邏輯位址是否在該暫存區的邏輯位址範圍內,當該第一寫入資料所欲寫入的所有邏輯位址在該暫存區的邏輯位址範圍內,該快閃記憶體控制器使用一快速模式將該第一寫入資料寫入至該m個實體區塊中,其中在該快速模式中僅使用該些實體位址的快速實體位址來寫入資料。
  9. 如申請專利範圍第8項所述之快閃記憶體儲存裝置,其中當該第一寫入資料所欲寫入的所有邏輯位址不在該暫存區的邏輯位址範圍內時,該快閃記憶體控制器使用一正常模式將該第一寫入資料寫入至該快閃記憶體之其他的實體區塊中,其中在該正常模式中使用該些實體位址的快速實體位址與慢速實體位址來寫入資料。
  10. 如申請專利範圍第8項所述之快閃記憶體儲存裝置,其中當該快閃記憶體控制器接收該主機所下達的一第二寫入指令,而該第二寫入指令包括一第二寫入資料與一第二邏輯位址時,該快閃記憶體控制器判斷該第二寫入資料所欲寫入的所有邏輯位址是否在該暫存區的邏輯位址範圍內,當該第二寫入資料所欲寫入的所有邏輯位址不在該暫存區的邏輯位址範圍內時,該快閃記憶體控制器使用一正常模式將該第二寫入資料寫入至該快閃記憶體之其他的實體區塊中,其中在該正常模式中使用該些實體位址的快速實體位址與慢速實體位址來寫入資料。
  11. 如申請專利範圍第10項所述之快閃記憶體儲存裝置,其中當該第二寫入資料所欲寫入的所有邏輯位址在該暫存區的邏輯位址範圍內時,該快閃記憶體控制器判斷該暫存區是否被寫滿,當該暫存區已被寫滿時,該快閃記憶體控制器搬移該暫存區中的有效資料至該快閃記憶體之其他的實體區塊中,並使用該快速模式將該第二寫入資料寫入至該m個實體區塊中。
  12. 如申請專利範圍第11項所述之快閃記憶體儲存裝置,其中當該暫存區未被寫滿時,該快閃記憶體控制器判斷該第二寫入資料所欲寫入的所有邏輯位址與該m個實體區塊中已寫入資料的邏輯位址是否重複,當該第二寫入資料所欲寫入的所有邏輯位址與該m個實體區塊中已寫入資料的邏輯位址有重複時,該快閃記憶體控制器搬移該暫存區中的有效資料至該快閃記憶體之其他的實體區塊中,並使用該快速模式將該第二寫入資料寫入至該m個實體區塊中。
  13. 如申請專利範圍第12項所述之快閃記憶體儲存裝置,其中當該第二寫入資料所欲寫入的所有邏輯位址與該m個實體區塊中已寫入資料的邏輯位址無重複時,該快閃記憶體控制器使用該快速模式將該第二寫入資料寫入至該m個實體區塊中。
  14. 一種快閃記憶體控制器,配置於耦接至一主機的一快閃記憶體儲存裝置中,該快閃記憶體儲存裝置具有一快閃記憶體,該快閃記憶體包括多個記憶胞且該些記憶胞係劃分為多個實體區塊,每一該些實體區塊包括多個實體位址,該些實體位址包括至少一快速實體位址與至少一慢速實體位址,而寫入資料至該至少一快速實體位址的速度快於寫入資料至該至少一慢速實體位址的速度,其中每一記憶胞用以儲存n個位元,n為大於1的整數,該快閃記憶體控制器包括:一微處理器單元;一快閃記憶體介面單元,耦接至該微處理器單元,用以耦接至該快閃記憶體;一主機介面單元,耦接至該微處理器單元,用以耦接至該主機;以及一記憶體管理單元,耦接至該微處理器單元,用以將該些實體區塊至少分組為一資料區與一備用區,設定一預設區塊數量並自該備用區提取m個實體區塊,以及配置多個邏輯區塊且每一該些邏輯區塊包括多個邏輯位址,其中每一該些邏輯區塊映射該資料區的實體區塊的其中之一,當該主機介面單元接收該主機所下達的一第一寫入指令,而該第一寫入指令包括一第一寫入資料與一第一邏輯位址時,該記憶體管理單元依據該第一邏輯位址與該預設區塊數量決定該m個實體區塊所表示之一暫存區的邏輯位址範圍,並判斷該第一寫入資料所欲寫入的所有邏輯位址是否在該暫存區的邏輯位址範圍內,當該第一寫入資料所欲寫入的所有邏輯位址在該暫存區的邏輯位址範圍內時,該記憶體管理單元使用一快速模式將該第一寫入資料寫入至該m個實體區塊中,其中在該快速模式中僅使用該些實體位址的快速實體位址來寫入資料。
  15. 如申請專利範圍第14項所述之快閃記憶體控制器,其中當該第一寫入資料所欲寫入的所有邏輯位址不在該暫存區的邏輯位址範圍內時,該記憶體管理單元使用一正常模式將該第一寫入資料寫入至該快閃記憶體之其他的實體區塊中,其中在該正常模式中使用該些實體位址的快速實體位址與慢速實體位址來寫入資料。
TW099103361A 2010-02-04 2010-02-04 快閃記憶體儲存裝置、其控制器與資料寫入方法 TWI409633B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW099103361A TWI409633B (zh) 2010-02-04 2010-02-04 快閃記憶體儲存裝置、其控制器與資料寫入方法
US12/766,265 US8706952B2 (en) 2010-02-04 2010-04-23 Flash memory storage device, controller thereof, and data programming method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW099103361A TWI409633B (zh) 2010-02-04 2010-02-04 快閃記憶體儲存裝置、其控制器與資料寫入方法

Publications (2)

Publication Number Publication Date
TW201128389A TW201128389A (en) 2011-08-16
TWI409633B true TWI409633B (zh) 2013-09-21

Family

ID=44342630

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099103361A TWI409633B (zh) 2010-02-04 2010-02-04 快閃記憶體儲存裝置、其控制器與資料寫入方法

Country Status (2)

Country Link
US (1) US8706952B2 (zh)
TW (1) TWI409633B (zh)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110119408A (ko) * 2010-04-27 2011-11-02 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI471862B (zh) 2011-08-19 2015-02-01 Silicon Motion Inc 快閃記憶體控制器
TWI476590B (zh) * 2012-05-31 2015-03-11 Phison Electronics Corp 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TWI454913B (zh) * 2012-06-26 2014-10-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN103593255B (zh) * 2012-08-15 2016-12-21 群联电子股份有限公司 数据管理方法、记忆存储存储器与记忆存储控制器
KR101986355B1 (ko) * 2012-09-14 2019-06-05 삼성전자주식회사 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법
US8656255B1 (en) * 2013-03-15 2014-02-18 Avalanche Technology, Inc. Method for reducing effective raw bit error rate in multi-level cell NAND flash memory
TW201503768A (zh) * 2013-07-05 2015-01-16 Phison Electronics Corp 焊墊結構及應用其之印刷電路板與記憶體儲存裝置
CN103425438B (zh) * 2013-07-15 2016-08-10 记忆科技(深圳)有限公司 优化固态硬盘写请求的方法及其固态硬盘
TWI545572B (zh) 2014-12-12 2016-08-11 群聯電子股份有限公司 記憶胞程式化方法、記憶體控制電路單元與記憶體儲存裝置
CN105761754B (zh) * 2014-12-19 2020-01-07 群联电子股份有限公司 存储单元编程方法、存储器控制电路单元与存储装置
US10019314B2 (en) 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
CN111679787B (zh) 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
KR20190037668A (ko) * 2017-09-29 2019-04-08 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10891239B2 (en) 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
TWI687809B (zh) * 2018-02-13 2020-03-11 點序科技股份有限公司 快閃記憶體儲存裝置與寫入管理方法
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
CN111902804B (zh) 2018-06-25 2024-03-01 阿里巴巴集团控股有限公司 用于管理存储设备的资源并量化i/o请求成本的***和方法
US10871921B2 (en) 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
CN110874184B (zh) * 2018-09-03 2023-08-22 合肥沛睿微电子股份有限公司 快闪记忆体控制器及相关电子装置
KR20200029085A (ko) * 2018-09-07 2020-03-18 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
US10795586B2 (en) * 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10891065B2 (en) 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11074124B2 (en) 2019-07-23 2021-07-27 Alibaba Group Holding Limited Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
CN114415944A (zh) * 2021-12-27 2022-04-29 深圳忆联信息***有限公司 固态硬盘物理块管理方法、装置、计算机设备及存储介质
CN114296656A (zh) * 2021-12-31 2022-04-08 深圳大普微电子科技有限公司 平面编程方法及其闪存设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
TW200731065A (en) * 2005-08-03 2007-08-16 Sandisk Corp Non-volatile memory with scheduled reclaim operations
US20070300011A1 (en) * 2004-05-27 2007-12-27 Takashi Oshima Memory card, semiconductor device, and method of controlling semiconductor memory
TW200907789A (en) * 2007-06-27 2009-02-16 Sandisk Corp Phased garbage collection and house keeping operations in a flash memory system
TW200926183A (en) * 2007-12-07 2009-06-16 Phison Electronics Corp Flash memory data writing method and controller using the same
TW200931412A (en) * 2008-01-07 2009-07-16 Phison Electronics Corp Flash memory storage apparatus, flash memory controller and switching method thereof
TW200935422A (en) * 2008-02-05 2009-08-16 Phison Electronics Corp Flash memory data writing method and controller thereof
TW200937427A (en) * 2008-02-29 2009-09-01 Phison Electronics Corp Block management method for flash memory, controller and storage system thereof
TW200951979A (en) * 2008-06-09 2009-12-16 Phison Electronics Corp Data writing method for flash memory and storage system and controller using the same
TW201003391A (en) * 2008-07-10 2010-01-16 Phison Electronics Corp Block management method and storage system and controller thereof

Family Cites Families (8)

* Cited by examiner, † Cited by third party
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
JP2008009919A (ja) * 2006-06-30 2008-01-17 Toshiba Corp カードコントローラ
KR100833188B1 (ko) * 2006-11-03 2008-05-28 삼성전자주식회사 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템
TWI425523B (zh) * 2008-03-25 2014-02-01 Asmedia Technology Inc 混合型快閃儲存裝置及其操作方法
US8060719B2 (en) * 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
US7941592B2 (en) * 2008-08-14 2011-05-10 Bonella Randy M Method and apparatus for high reliability data storage and retrieval operations in multi-level flash cells
US8832353B2 (en) * 2009-04-07 2014-09-09 Sandisk Technologies Inc. Host stop-transmission handling
US8307241B2 (en) * 2009-06-16 2012-11-06 Sandisk Technologies Inc. Data recovery in multi-level cell nonvolatile memory

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US20070300011A1 (en) * 2004-05-27 2007-12-27 Takashi Oshima Memory card, semiconductor device, and method of controlling semiconductor memory
TW200731065A (en) * 2005-08-03 2007-08-16 Sandisk Corp Non-volatile memory with scheduled reclaim operations
TW200907789A (en) * 2007-06-27 2009-02-16 Sandisk Corp Phased garbage collection and house keeping operations in a flash memory system
TW200926183A (en) * 2007-12-07 2009-06-16 Phison Electronics Corp Flash memory data writing method and controller using the same
TW200931412A (en) * 2008-01-07 2009-07-16 Phison Electronics Corp Flash memory storage apparatus, flash memory controller and switching method thereof
TW200935422A (en) * 2008-02-05 2009-08-16 Phison Electronics Corp Flash memory data writing method and controller thereof
TW200937427A (en) * 2008-02-29 2009-09-01 Phison Electronics Corp Block management method for flash memory, controller and storage system thereof
TW200951979A (en) * 2008-06-09 2009-12-16 Phison Electronics Corp Data writing method for flash memory and storage system and controller using the same
TW201003391A (en) * 2008-07-10 2010-01-16 Phison Electronics Corp Block management method and storage system and controller thereof

Also Published As

Publication number Publication date
TW201128389A (en) 2011-08-16
US8706952B2 (en) 2014-04-22
US20110191525A1 (en) 2011-08-04

Similar Documents

Publication Publication Date Title
TWI409633B (zh) 快閃記憶體儲存裝置、其控制器與資料寫入方法
US8812784B2 (en) Command executing method, memory controller and memory storage apparatus
TWI506430B (zh) 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
TWI479313B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8386905B2 (en) Error correcting method, and memory controller and memory storage system using the same
US9880742B2 (en) Valid data merging method, memory controller and memory storage apparatus
US8392649B2 (en) Memory storage device, controller, and method for responding to host write commands triggering data movement
TWI446349B (zh) 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器
TWI470431B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
US9304900B2 (en) Data reading method, memory controller, and memory storage device
US9177656B2 (en) Data writing method, memory storage device and memory controlling circuit unit
TWI421870B (zh) 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
TWI698749B (zh) 資料儲存裝置與資料處理方法
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN106445401B (zh) 表格更新方法、存储器储存装置及存储器控制电路单元
TWI523030B (zh) 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置
US9001585B1 (en) Data writing method, memory control circuit unit and memory storage apparatus
US9804983B2 (en) Controlling method, connector, and memory storage device
TWI533309B (zh) 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
TWI514141B (zh) 記憶體位址管理方法、記憶體控制器與記憶體儲存裝置
TWI521346B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
US8589620B2 (en) Data writing method, memory controller, and memory storage apparatus
TWI553477B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI697778B (zh) 資料儲存裝置與資料處理方法