TWI446349B - 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器 - Google Patents

非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器 Download PDF

Info

Publication number
TWI446349B
TWI446349B TW099106296A TW99106296A TWI446349B TW I446349 B TWI446349 B TW I446349B TW 099106296 A TW099106296 A TW 099106296A TW 99106296 A TW99106296 A TW 99106296A TW I446349 B TWI446349 B TW I446349B
Authority
TW
Taiwan
Prior art keywords
physical
volatile memory
data
physical block
pages
Prior art date
Application number
TW099106296A
Other languages
English (en)
Other versions
TW201131569A (en
Inventor
Ming Hui Lin
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 TW099106296A priority Critical patent/TWI446349B/zh
Priority to US12/769,025 priority patent/US8667209B2/en
Publication of TW201131569A publication Critical patent/TW201131569A/zh
Application granted granted Critical
Publication of TWI446349B publication Critical patent/TWI446349B/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器
本發明是有關於一種非揮發性記憶體存取方法及使用此方法的非揮發性記憶體控制器與非揮發性記憶體存取系統。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於非揮發性記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。固態硬碟(Solid State Drive,SSD)就是一種以NAND非揮發性記憶體作為儲存媒體的儲存裝置。由於非揮發性記憶體體積小容量大,所以已廣泛用於個人重要資料的儲存。因此,近年非揮發性記憶體產業成為電子產業中相當熱門的一環。
在非揮發性記憶體存取裝置的設計中,非揮發性記憶體晶片具有多個實體區塊(block),且每一個實體區塊具有多個實體頁(page)。其中,實體區塊是非揮發性記憶體的最小抹除(erase)單位,而實體頁則是非揮發性記憶體的最小寫入(program)單位。由於在對非揮發性記憶體的記憶胞(memory cell)進行程式化時,僅能執行單向的程式化(亦即將記憶胞的值由1程式化為0),因此無法將資料直接寫入已被程式化過的實體頁。換句話說,必須先將已儲存有資料的實體頁抹除之後才可重新程式化這個實體頁。然而,正因非揮發性記憶體的抹除是以實體區塊為單位,故在需要對存有舊資料的實體頁執行抹除運作時,必須將此實體頁所屬的整個實體區塊進行抹除。
一般而言,非揮發性記憶體存取裝置的非揮發性記憶體控制器會將非揮發性記憶體晶片內所有的實體區塊邏輯地分組為系統區(system area)、資料區(data area)、備用區(spare area)與取代區(replacement area)。其中,系統區的實體區塊用以儲存與非揮發性記憶體存取裝置相關的重要資訊,而取代區的實體區塊則用以取代資料區或備用區中已損壞的實體區塊(亦即壞實體區塊)。因此,在一般存取狀態下,主機系統是無法存取系統區與取代區中的實體區塊。至於,被歸類為資料區的實體區塊會儲存由寫入指令所寫入的有效資料,而備用區的實體區塊則用以在執行寫入指令時替換資料區的實體區塊。由此可知,當主機系統下達寫入指令的同時,通常會伴隨著兩實體區塊(亦即資料區的實體區塊與備用區的實體區塊)合併的動作,藉以才能完成資料更新的目的。
然而,在某些非揮發性記憶體的應用上,特別是針對具有智慧卡(smart card)的微安全數位記憶體卡(micro secure-digital/SD memory card)而言,這樣的資料更新機制很有可能無法滿足現行微安全數位記憶體卡之規格書所定義完成一個寫入指令的時間。一般而言,微安全數位記憶體卡之規格書已明確定義每一個寫入指令的完成時間必需小於250ms。
本發明提出一種非揮發性記憶體存取方法、系統以及非揮發性記憶體控制器,用以確保執行一寫入指令的時間不超過規格書所定義的時間。
本發明提出一種非揮發性記憶體存取方法,用於管理非揮發性記憶體晶片內的多個實體區塊,且每一實體區塊具有多個實體頁。此非揮發性記憶體存取方法包括當第一實體區塊中相連的多個特定實體頁的其中之一所儲存的資料要被更新時,判斷第一實體區塊是否有足夠空間寫入所述特定實體頁。當第一實體區塊有足夠空間寫入所述特定實體頁時,將所述特定實體頁的有效資料與要被更新的資料寫入至第一實體區塊中。
於本發明的一範例實施例中,非揮發性記憶體存取方法更包括:當第一實體區塊無足夠空間寫入所述特定實體頁時,自所述實體區塊中選擇空的第二實體區塊,並且將所述特定實體頁的有效資料與要被更新的資料寫入至第二實體區塊中。
於本發明的一範例實施例中,每一實體區塊內所有的實體頁包括多個快速實體頁與多個慢速實體頁,而非揮發性記憶體存取方法更包括:將所述特定實體頁的有效資料與要被更新的資料寫入至第一實體區塊或第二實體區塊中的部分快速實體頁與部分慢速實體頁。
於本發明的一範例實施例中,非揮發性記憶體存取方法更包括:將非揮發性記憶體晶片內所有的實體區塊劃分為第一記憶區域與第二記憶區域,其中第一實體區塊與第二實體區塊屬於第一記憶區域。
於本發明的一範例實施例中,非揮發性記憶體存取方法更包括:令搬移第一實體區塊之上述特定實體頁並接著搬移第三實體區塊之所有實體頁的總時間小於或等於一規定時限,其中第三實體區塊屬於第二記憶區域。
於本發明的一範例實施例中,所述特定實體頁為一資料搬移單位,而所述特定實體頁的數量大於或等於2,並小於非揮發性記憶體晶片之每個實體區塊所包括的實體頁總數。
本發明另提出一種非揮發性記憶體存取方法,用於存取非揮發性記憶體晶片內的多個實體區塊。其中每一實體區塊具有多個實體頁,而上述實體頁包括多個快速實體頁與多個慢速實體頁。此非揮發性記憶體存取方法包括當主機系統欲將資料寫入至第一實體區塊時,判斷第一實體區塊中預設數量的實體頁是否已被寫滿。當預設數量的實體頁已被寫滿時,選擇第二實體區塊來寫入資料。其中,預設數量的實體頁為至少2個實體頁,且包括部分快速實體頁與部份慢速實體頁,而當預設數量的實體頁已被寫滿時,第一實體區塊中仍有部份實體頁未被寫入資料。
於本發明的一範例實施例中,非揮發性記憶體存取方法,更包括當預設數量的實體頁未被寫滿時,判斷預設數量的實體頁是否有足夠空間寫入該資料。若是,則將資料寫入至第一實體區塊。若否,則將資料寫入至第二實體區塊。
於本發明的一範例實施例中,其中預設數量小於非揮發性記憶體晶片之每個實體區塊所分別包括的實體頁總數。
本發明另提供一種非揮發性記憶體控制器,配置於非揮發性記憶體存取裝置中,此非揮發性記憶體存取裝置包括非揮發性記憶體晶片,其中非揮發性記憶體晶片包括多個實體區塊,且每一實體區塊具有多個實體頁。非揮發性記憶體控制器包括微處理器單元、非揮發性記憶體介面單元、主機介面單元以及記憶體管理單元。非揮發性記憶體介面單元耦接微處理器單元,用以耦接至非揮發性記憶體晶片。主機介面單元耦接至微處理器單元,用以耦接至主機系統。記憶體管理單元耦接至微處理器單元。其中,當主機系統欲更新上述實體區塊內第一實體區塊中相連的多個特定實體頁其中之一所儲存的資料時,記憶體管理單元判斷第一實體區塊是否有足夠空間寫入上述特定實體頁。當第一實體區塊有足夠空間寫入上述特定實體頁時,將上述特定實體頁的有效資料與要被更新的資料寫入至第一實體區塊中。
於本發明的一範例實施例中,其中當第一實體區塊無足夠空間寫入上述特定實體頁時,記憶體管理單元自所述實體區塊選擇空的第二實體區塊,以寫入上述特定實體頁的有效資料與要被更新的資料。
於本發明的一範例實施例中,其中實體頁包括多個快速實體頁與多個慢速實體頁,而上述特定實體頁的有效資料與要被更新的資料係被寫入至第一實體區塊或第二實體區塊中的部分快速實體頁與部分慢速實體頁。
於本發明的一範例實施例中,其中實體區塊被劃分為第一記憶區域與第二記憶區域,且第一實體區塊與第二實體區塊屬於該第一記憶區域。
於本發明的一範例實施例中,其中上述特定實體頁為一資料搬移單位,且上述特定實體頁的數量大於或等於2,並小於非揮發性記憶體晶片之每一實體區塊所各別包括的實體頁總數。
本發明提出一種非揮發性記憶體控制器,配置於非揮發性記憶體存取裝置中,非揮發性記憶體存取裝置包括非揮發性記憶體晶片,其中非揮發性記憶體晶片包括多個實體區塊,且每一實體區塊具有多個實體頁,而上述實體頁包括多個快速實體頁與多個慢速實體頁。非揮發性記憶體控制器包括微處理器單元、非揮發性記憶體介面單元、主機介面單元以及記憶體管理單元。非揮發性記憶體介面單元耦接微處理器單元,用以耦接至非揮發性記憶體晶片。主機介面單元耦接至微處理器單元,用以耦接至主機系統。記憶體管理單元耦接至微處理器單元。其中,當主機系統欲寫入資料至上述實體區塊中的第一實體區塊時,記憶體管理單元判斷第一實體區塊中預設數量的實體頁是否已被寫滿。其中,預設數量的實體頁為至少2個實體頁,且包括部分快速實體頁與部份慢速實體頁。當預設數量的實體頁已被寫滿時,第一實體區塊中仍有部份實體頁未被寫入資料,而記憶體管理單元選擇第二實體區塊以寫入資料。
於本發明的一範例實施例中,其中當預設數量的實體頁未被寫滿時,記憶體管理單元判斷預設數量的實體頁是否有足夠空間寫入資料。若是,以第一實體區塊寫入資料。若否,以第二實體區塊寫入資料。
於本發明的一範例實施例中,其中預設數量小於非揮發性記憶體晶片之每一實體區塊所分別包括的實體頁總數。
本發明更提供一種非揮發性記憶體存取系統,包括非揮發性記憶體晶片、連接器,以及非揮發性記憶體控制器。非揮發性記憶體晶片具有多個實體區塊,且每一實體區塊具有多個實體頁。連接器用以耦接至主機系統。非揮發性記憶體控制器耦接至非揮發性記憶體晶片與連接器,當主機系統欲更新上述實體區塊中第一實體區塊中相連的多個特定實體頁其中之一所儲存的資料時,非揮發性記憶體控制器判斷第一實體區塊是否有足夠空間寫入上述特定實體頁。若是,將上述特定實體頁的有效資料與要被更新的資料寫入至第一實體區塊中。
於本發明的一範例實施例中,其中當第一實體區塊無足夠空間寫入上述特定實體頁時,非揮發性記憶體控制器自上述實體區塊選擇空的第二實體區塊,以寫入上述特定實體頁的有效資料與要被更新的資料。
於本發明的一範例實施例中,其中實體頁包括多個快速實體頁與多個慢速實體頁,而上述特定實體頁的有效資料與要被更新的資料係被寫入至第一實體區塊或第二實體區塊中的部分快速實體頁與部分慢速實體頁。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉多個實施例,並配合所附圖式,作詳細說明如下,但是上述一般描述及以下實施方式僅為例示性及闡釋性的,其並不能限制本發明所欲主張之範圍。
現將詳細參考本發明之實施例,並在附圖中說明所述實施例之實例。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件代表相同或類似部分。
圖1A是根據本發明之範例實施例所繪示之使用非揮發性記憶體存取裝置之主機系統的示意圖。其中,非揮發性記憶體存取裝置亦可稱為非揮發性記憶體存取系統。
請參照圖1,主機系統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所示的記憶卡1214、隨身碟1212,或固態硬碟(Solid State Drive,SSD) 1216。
主機系統1000為可儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來進行說明,然而,在本發明另一範例實施例中,主機系統1000亦可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機1310時,非揮發性記憶體存取裝置則為其所使用的安全數位(Secure Digital,SD)卡1312、多媒體記憶(Multimedia Card,MMC)卡1314、記憶棒(Memory Stick) 1316、小型快閃(Compact Flash,CF)卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示的非揮發性記憶體存取裝置的概要方塊圖。請參照圖2,非揮發性記憶體存取裝置100包括連接器102、非揮發性記憶體控制器104,以及非揮發性記憶體晶片106。
連接器102耦接至非揮發性記憶體控制器104,並且用以耦接至主機系統1000。在本範例實施例中,連接器102所支援的傳輸介面種類為安全數位介面(SD interface)。然而在其他範例實施例中,連接器102的傳輸介面種類也可以是多媒體儲存卡(Multimedia Card,MMC)介面、序列先進附件(Serial Advanced Technology Attachment,SATA)介面、平行先進附件(Parallel Advanced Technology Attachment,PATA)介面、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394介面、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)介面、通用序列匯流排(Universal Serial Bus,USB)介面、記憶棒(Memory Stick,MS)介面、小型快閃(Compact Flash,CF)介面,或整合驅動電子(Integrated Drive Electronics,IDE)介面等任何適用的介面,在此並不加以限制。
非揮發性記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在非揮發性記憶體晶片106中進行資料的寫入、讀取與抹除等運作。
於本範例實施例中,非揮發性記憶體晶片106為快閃記憶體晶片,快閃記憶體晶片具有多個實體區塊(block),且每一實體區塊具有多個實體頁(page)。非揮發性記憶體晶片106用以儲存如檔案配置表(File Allocation Table,FAT)等檔案系統資訊,以及儲存如影音檔案、文字檔等一般性資料。在本範例實施例中,非揮發性記憶體晶片106為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體晶片。然而本發明不限於此,非揮發性記憶體晶片106亦可是單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體晶片。
詳細地說,在目前NAND快閃記憶體技術中,NAND快閃記憶體晶片可根據每一記憶胞中可儲存的位元數區分為SLC NAND快閃記憶體晶片與MLC NAND快閃記憶體晶片。在對SLC NAND快閃記憶體晶片的記憶胞進行程式化(program)時僅能執行單階的程式化,因此每一記憶胞僅能儲存一個位元。而MLC NAND快閃記憶體晶片之實體區塊的程式化則可分為多階段。例如,以2層記憶胞為例,實體區塊的程式化可分為2階段。第一階段是下頁(lower page)的寫入部分,其物理特性類似於SLC NAND快閃記憶體晶片,而在完成第一階段之後才會程式化上頁(upper page)。其中下頁的寫入速度會快於上頁。因此,每一實體區塊所包括的實體頁可區分為慢速實體頁(即,上頁)與快速實體頁(即,下頁)。
類似地,在8層記憶胞或16層記憶胞的案例中,記憶胞會包括更多個實體頁並且會以更多階段來寫入。在此,將寫入速度最快的實體頁稱為下頁,其他寫入速度較慢的實體頁統稱為上頁,亦即,上頁包括具有不同寫入速度的多個實體頁。而在其他範例實施例中,上頁也可為寫入速度最慢的實體頁,或者寫入速度最慢與部份寫入速度快於寫入速度最慢實體頁的實體頁。例如,在4層記憶胞中,下頁為寫入速度最快與寫入速度次快的實體頁,上頁則為寫入速度最慢與寫入速度次慢的實體頁。
於本範例實施例中,非揮發性記憶體控制器104包括微處理器單元202、記憶體管理單元204、主機介面單元206,以及非揮發性記憶體介面單元208。
微處理器單元202為非揮發性記憶體控制器104的主控單元,用以與記憶體管理單元204、主機介面單元206與非揮發性記憶體介面單元208等協同合作,以進行非揮發性記憶體存取裝置100的各種運作。
記憶體管理單元204耦接至微處理器單元202,用以執行一非揮發性記憶體存取機制。在本範例實施例中,記憶體管理單元204可以韌體型式實作在非揮發性記憶體控制器104中。例如,將包括多個控制指令的記憶體管理單元204燒錄至一程式記憶體(例如,唯讀記憶體(Read Only Memory,ROM))中,並且將此程式記憶體嵌入在非揮發性記憶體控制器104。當非揮發性記憶體存取裝置100運作時,微處理器單元202將執行記憶體管理單元204的多個控制指令,據以執行非揮發性記憶體存取機制。記憶體管理單元204的詳細運作方式將於以下配合圖式再作說明。
主機介面單元206耦接至微處理器單元202,並且耦接至主機系統100。主機介面單元206用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面單元206來傳送至微處理器單元202。在本範例實施例中,主機介面單元206為符合SD介面,而在其他範例實施例中,主機介面單元1042也可以是符合MMC介面、SATA介面、PATA介面、IEEE 1394介面、PCI Express介面、USB介面、MS介面、CF介面、IDE介面或其他介面標準的介面單元。
非揮發性記憶體介面單元208耦接至微處理器單元202,並且用以使非揮發性記憶體控制器104耦接至非揮發性記憶體晶片106,藉以讓非揮發性記憶體控制器104對非揮發性記憶體晶片106進行相關運作。也就是說,欲寫入至非揮發性記憶體晶片106的資料會經由非揮發性記憶體介面單元208轉換為非揮發性記憶體晶片106所能接受的格式。
在另一範例實施例中,非揮發性記憶體控制器104更包括緩衝記憶體252、電源管理單元254,以及錯誤校正單元256。
緩衝記憶體252耦接至微處理器單元202,並且用以暫存來自於主機系統1000的資料與指令,或者用以暫存來自於非揮發性記憶體晶片106的資料。
電源管理單元254耦接至微處理器單元202,並且用以控制非揮發性記憶體存取裝置100的電源。
錯誤校正單元256耦接至微處理器單元202,並且用以執行一錯誤校正程序以確保資料的正確性。具體來說,當記憶體管理單元204從主機系統1000中接收到寫入指令時,錯誤校正單元256會為對應此寫入指令的寫入資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理單元204會將此寫入資料與對應的錯誤校正碼寫入至非揮發性記憶體晶片106中。之後,當記憶體管理單元204從非揮發性記憶體晶片106中讀取資料時會同時讀取此資料對應的錯誤校正碼,並且錯誤校正單元256會依據此錯誤校正碼對所讀取的資料執行錯誤校正程序。
在本範例實施例中,非揮發性記憶體控制器104包括一個以上的執行緒,該些執行緒將由非揮發性記憶體控制器104中的一即時作業系統(Real Time Operation System,RTOS)單元(未繪示)進行排程。亦即,非揮發性記憶體存取裝置100係採用多執行緒架構,且即時作業系統單元係用來管理與決定該些執行緒的執行順序。必須特別說明的是,本發明並不對執行緒的數量及其工作內容加以限制。
為了方便說明,在此假設非揮發性記憶體控制器104包括兩個執行緒(如圖3所示之第一執行緒310與第二執行緒320)。第一執行緒310與第二執行緒320必須透過非揮發性記憶體介面單元208對非揮發性記憶體晶片106進行存取。假設非揮發性記憶體存取裝置100是具有智慧卡(smart card)的微安全數位記憶體卡(micro SD memory card),那麼第一執行緒310例如是智慧卡應用程式,用以執行與智慧卡相關的指令,而第二執行緒320則例如是負責接收來自主機系統1000的指令,並從非揮發性記憶體晶片106讀寫資料。在本範例實施例中,雖然第一執行緒310與第二執行緒320均有存取非揮發性記憶體晶片106的需求,但相較之下第一執行緒310的資料存取量會小於第二執行緒320。且必須特別說明的是,在非揮發性記憶體控制器104中的即時作業系統單元將需由第一執行緒310負責的指令交付給第一執行緒310後,非揮發性記憶體控制器104便可回應主機系統1000一個工作執行完畢的訊息(回應的方式可以在主機系統1000詢問時回傳訊息,或由非揮發性記憶體控制器104主動將訊息傳至主機系統1000),此舉是為了避免第一執行緒310解析指令內容耗時過久。然而,在即時作業系統單元將需由第二執行緒320負責的指令交付給第二執行緒320後,則必須等待第二執行緒320實際完成工作(例如寫入資料)後,非揮發性記憶體控制器104才會回傳工作完成的訊息。
在本範例實施例中,非揮發性記憶體晶片106至少被劃分為第一記憶區域106A與第二記憶區域106B。其中,第一執行緒310係用以對第一記憶區域106A進行存取,可處理要將資料寫入至第一記憶區域106A的寫入指令。而第二執行緒320則是用以對第二記憶區域106B進行存取,能處理要將資料寫入至第二記憶區域106B的寫入指令。進一步來說,關於第一記憶區域106A的寫入指令為智慧卡存取指令,而關於第二記憶區域106B的寫入指令為安全數位記憶卡存取指令。
一般而言,非揮發性記憶體控制器104在執行主機系統1000所下達的寫入指令時,通常需要伴隨對兩實體區塊進行合併的動作,藉以完成資料更新的目的。然而,微安全數位記憶體卡的規格書已明確定義每一個寫入指令的完成時間必需小於或等於一規定時限(即250毫秒(ms))。
假設本範例實施例中每個實體頁的大小為4K位元組(byte),且每個實體區塊具有128個實體頁。實際量測數據的估算結果顯示,完成兩個實體區塊之合併動作的所需時間約為155.8ms。據此假設非揮發性記憶體控制器104接獲需由第一執行緒310執行的寫入指令,且該寫入指令會產生兩實體區塊的合併動作,倘若在第一執行緒310將資料寫入非揮發性記憶體晶片106的期間,主機系統1000又下達了需由第二執行緒320執行的寫入指令,由於第一執行緒310與第二執行緒320均必須透過非揮發性記憶體介面單元208才能對非揮發性記憶體晶片106進行存取,因此第二執行緒320須等待第一執行緒310完成區塊合併動作後才能存取非揮發性記憶體晶片106。若第二執行緒320所執行的寫入指令也會產生兩實體區塊的合併動作,那麼第二執行緒320完成寫入指令的總時間約為311.6ms(即,155.8×2),而超過微安全數位記憶體卡之規格書所定義的規定時限250ms。
為了要有效地解決這樣的問題,當主機系統1000下達的寫入指令是要存取非揮發性記憶體晶片106之第一記憶區域106A中的某一個實體區塊(以下稱之為第一實體區塊),表示該寫入指令需由第一執行緒310執行。若該寫入指令要更新在第一實體區塊中相連的數個特定實體頁其中之一所儲存的資料時,記憶體管理單元204首先判斷第一實體區塊是否有足夠空間寫入上述特定實體頁。
若第一實體區塊有足夠空間寫入上述特定實體頁,記憶體管理單元204便令第一執行緒310將上述特定實體頁的有效資料以及要被更新的資料寫入至第一實體區塊中。然而在第一實體區塊無足夠空間寫入上述特定實體頁時,記憶體管理單元204自第一記憶區域106A所包括的實體區塊中選擇一個空的實體區塊(以下稱之為第二實體區塊),並令第一執行緒310將上述特定實體頁的有效資料與要被更新的資料寫入至第二實體區塊中。必須特別說明的是,在將上述特定實體頁的有效資料與要被更新的資料寫入至第一實體區塊時,第一執行緒310係利用第一實體區塊中的部分快速實體頁與部分慢速實體頁來寫入資料。同樣地,在需要將上述特定實體頁的有效資料與要被更新的資料寫入至第二實體區塊時,第一執行緒310係利用第二實體區塊中的部分快速實體頁與部分慢速實體頁來寫入資料。
由此可見在本範例實施例中,上述特定實體頁係定義為一資料搬移單位,特定實體頁的數量大於或等於2,並且小於非揮發性記憶體晶片106之每個實體區塊所分別包括的實體頁總數。於此,假設非揮發性記憶體晶片106中一個實體區塊具有128個實體頁,則資料搬移單位例如是4個實體頁(即特定實體頁的數量為4),但並不限制於此。
以圖4A為例,假設第一實體區塊內4個特定實體頁P0-P3中的特定實體頁P2所儲存的資料要被更新,且第一實體區塊內的實體頁P4-P127皆未存有資料時,記憶體管理單元204會判斷出第一實體區塊有足夠空間來寫入4個特定實體頁的資料。據此,記憶體管理單元204會令第一執行緒310先將第一實體區塊內特定實體頁P0、P1與P3的所儲存的資料(亦即有效資料)讀出,接著再將所讀出的資料與新資料(亦即需被更新的資料)寫入至第一實體區塊內的實體頁P4-P7。
然而如圖4B所示之範例實施例,假設第一實體區塊內特定實體頁P123-P126中的特定實體頁P125所儲存的資料要被更新,且第一實體區塊內僅剩下實體頁P127未存有資料時,則記憶體管理單元204會判斷出第一實體區塊未有足夠空間來寫入4個特定實體頁的資料。如此一來,記憶體管理單元204會令第一執行緒310先自第一記憶區域106A選擇一個空的第二實體區塊,並將第一實體區塊內特定實體頁P123、P124與P126的所儲存的資料(亦即有效資料)讀出,接著再將所讀出的資料與新資料寫入至第二實體區塊內的實體頁P0-P3,。
在此,第一執行緒310係以4個實體頁作為一個資料搬移單位。因此,每當要更新第一記憶區域106A的資料時,記憶體管理單元204會在同一實體區塊中判斷有無足夠的記憶空間來進行資料更新,若無足夠的記憶空間,才會找尋新的實體區塊來進行資料更新。有鑒於此,最新的資料一定是位於實體區塊中最後一個含資料的資料搬移單位中。由於所更新的資料在一個實體區塊中只佔有幾個實體頁的容量而已,所以第一執行緒310欲於第一記憶區域106A內進行資料更新時並不會發生兩個完整區塊的資料合併的現象。據此提升第一執行緒310在第一記憶區域106A中執行寫入動作的速度。
圖5是依照本發明之一範例實施例所繪示在第一執行緒310將資料寫入非揮發性記憶體晶片106的期間,主機系統1000又下達一個要由第二執行緒320執行之寫入指令的時序圖。如圖5所示,假設第一執行緒310在時間點t1 至t3 之間能透過非揮發性記憶體介面單元208將資料寫入非揮發性記憶體晶片106。由於第一執行緒310完成寫入動作所需的時間與資料搬移單位所包括的實體頁數量有關,因此資料搬移單位所包括的實體頁數量越少,第一執行緒310完成寫入動作所需的時間便越短。舉例來說,假設一個實體頁的大小為4K位元組且一個實體區塊具有128個實體頁,據實際量測數據的估算結果顯示,讀寫一個實體頁的平均時間約為1.15ms。若本範例實施例中資料搬移單位所包括的實體頁數量為1,那麼第一執行緒310完成寫入動作的所需時間T13 便是1.15ms。
若非揮發性記憶體控制器104在時間點t2 接收到需存取非揮發性記憶體晶片106之第二記憶區域106B的寫入指令(在此稱該寫入指令要存取的實體區塊為第三實體區塊),表示該寫入指令需由第二執行緒320執行。第二執行緒320需等待第一執行緒310完成寫入動作(即時間點t3 )後,方能透過非揮發性記憶體介面單元208將資料寫入非揮發性記憶體晶片106。若第二執行緒320負責執行的寫入指令需伴隨實體區塊的合併,記憶體管理單元204會依照一般非揮發性記憶體的資料存取機制,自非揮發性記憶體晶片106中選擇一個空的實體區塊以利於與第三實體區塊進行區塊合併,進而完成資料的更新。據估算,在需要合併兩實體區塊的情況下第二執行緒320實際進行資料寫入的時間T34 大約為155.8ms,而即便是加上等待第一執行緒310完成寫入動作的所需時間T13 後,第二執行緒320完成一寫入指令的總時間T14 (即155.8ms+1.15ms)仍會小於微安全數位記憶體卡之規格書所定義完成一個寫入指令的規定時限(即250ms)。
從上述範例實施例所描述的內容可知,針對第一記憶區域106A所採取的管理方案是為了要盡量縮減第一執行緒310存取第一記憶區域106A的時間,所以當第一執行緒310對第一記憶區域106A進行存取時,不但會限制資料搬移單位的大小,同時必需往下找尋同一實體區塊是否有足夠記憶空間來進行資料更新,故而不會發生兩個實體區塊的合併動作,以利縮短第一執行緒310對第一記憶區域106A進行存取的時間。
另一方面,針對第二記憶區域106B的管理方案是為了要盡量利用第二記憶區域106B內每一實體區塊的儲存空間,所以當第二執行緒320對第二記憶區域106B進行存取時,會執行一般的非揮發性記憶體管理機制。
然而,由於記憶體管理單元204會採用兩種不同的管理方案來管理非揮發性記憶體晶片106中的第一記憶區域106A與第二記憶區域106B,所以即便是在非揮發性記憶體控制器104中的第一執行緒310在將資料寫入第一記憶區域106A的期間,第二執行緒320接獲需將資料寫入第二記憶區域106B的寫入指令,也能確保第一執行緒310與第二執行緒320先後將資料寫入非揮發性記憶體晶片106的總時間能小於微安全數位記憶體卡之規格書所定義完成一個寫入指令的規定時限。
圖6是根據本發明之一範例實施例所繪示非揮發性記憶體存取方法的流程圖。
請參照圖6,本範例實施例之非揮發性記憶體存取方法係用以管理非揮發性記憶體晶片106內的多個實體區塊,且每一實體區塊具有多個實體頁。本範例實施例之非揮發性記憶體存取裝置100係採用多執行緒架構,亦即在非揮發性記憶體控制器104中包括即時作業系統單元以及多個執行緒(例如第一執行緒310與第二執行緒320),且該些執行緒是由即時作業系統單元做排程管理,且第一執行緒310與第二執行緒320可透過非揮發性記憶體介面單元208存取非揮發性記憶體晶片106。
首先如步驟610所示,將非揮發性記憶體晶片106內所含之實體區塊劃分為第一記憶區域106A與第二記憶區域106B。其中第一執行緒310為存取第一記憶區域106A,而第二執行緒320為存取第二記憶區域106B。
接著在步驟620中,接收主機系統1000所傳送的寫入指令,且該寫入指令欲寫入的是第一記憶區域106A中的某一實體區塊(以下稱之為第一實體區塊),故需由第一執行緒310執行此寫入指令。假設此寫入指令是要對第一實體區塊中相連的多個特定實體頁其中之一所儲存的資料進行更新。
接下來如步驟630所示,由非揮發性記憶體控制器104中的記憶體管理單元204判斷第一實體區塊是否有足夠空間能用以寫入上述特定實體頁。
當第一實體區塊有足夠空間寫入上述特定實體頁時,如步驟640所示,將上述特定實體頁的有效資料與要被更新的資料寫入至第一實體區塊中,藉以完成資料更新。而當第一實體區塊無足夠空間寫入上述特定實體頁時,如步驟650所示,選擇同樣位於第一記憶區域106A並且為空的一第二實體區塊,用以將上述特定實體頁的有效資料與要被更新的資料寫入至第二實體區塊中,藉以完成資料更新。
如圖6所示之各步驟,第一執行緒310是以n個特定實體頁作為資料搬移單位。其中n大於或等於2,同時小於非揮發性記憶體晶片之每個實體區塊所包括的實體頁總數。在第一執行緒310是以圖6所示之方式來寫入資料的情況下,即便是當第一執行緒310在將資料寫入非揮發性記憶體晶片106的期間,主機系統1000又傳送了需由第二執行緒320執行的寫入指令(例如要將資料寫入第二記憶區域106B中的某一實體區塊),由於資料搬移單位所包括的實體頁數量小於一個實體區塊所包括的實體頁總數,第一執行緒310將不會有合併兩個實體區塊的動作產生。因此只要將資料搬移單位所包括實體頁的數量降至一定程度,不論第二執行緒320負責的寫入指令是否需要伴隨實體區塊的合併,第二執行緒320完成寫入指令的總時間都將不會超過規定時限。
在另一範例實施例中,在第一執行緒310所能存取的第一記憶區域106A中,所包括的每一實體區塊都只使用預設數量的實體頁來寫入資料。其中,預設數量小於非揮發性記憶體晶片106之每個實體區塊所包括的實體頁總數,且預設數量的實體頁為至少2個實體頁,其包括部分快速實體頁與部份慢速實體頁。舉例來說,預設數量的實體頁可以是2個快速實體頁以及2個慢速實體頁,但本發明並不以此為限。
預設數量的大小係根據微安全數位記憶體卡之規格書所定義完成一個寫入指令的規定時限(即250ms)、合併兩個實體區塊的平均時間,以及讀寫一個實體頁的平均所需時間這幾項參數所求得。舉例來說,預設數量Pnum 的上限值可經由下列計算式求得:
其中,WCMDtime 為規格書定義的規定時限,Mergetime 為合併兩個實體區塊的平均時間,而ONEPAGERW 則是讀寫一個實體頁的平均所需時間。假設非揮發性記憶體晶片106中每個實體頁的大小為4K位元組,且每個實體區塊具有128個實體頁,據估算要合併兩個實體區塊的平均時間Mergetime 為155.8ms,而讀寫一個實體頁的平均所需時間ONEPAGERW 為1.15ms。透過上述計算式可求得預設數量Pnum 的上限值為81。亦即,在第一記憶區域106A中每個實體區塊最多只能使用81個實體頁來寫入資料。
據此,當非揮發性記憶體控制器104接獲需由第一執行緒310所執行的寫入指令時,若該寫入指令是要將資料寫入第一記憶區域106A中的某一實體區塊(以下稱之為第一實體區塊),那麼非揮發性記憶體控制器104中的記憶體管理單元204首先判斷第一實體區塊中預設數量的實體頁是否已被寫滿。
若第一實體區塊中預設數量的實體頁已被寫滿,記憶體管理單元204會從第一記憶區域106A中另外選擇一個實體區塊(以下稱之為第二實體區塊)用以寫入資料。在此必須強調的是,在第一實體區塊中預設數量的實體頁已被寫滿之時,第一實體區塊中仍有部份的實體頁未被寫入資料。而在第一執行緒310將資料寫入第二實體區塊時,係使用第二實體區塊中的部份快速實體頁以及部份慢速實體頁來寫入資料。
然而若第一實體區塊中預設數量的實體頁尚未被寫滿,記憶體管理單元204接著判斷預設數量的實體頁是否還有足夠空間可用以寫入資料。若是,第一執行緒310便將資料寫入至第一實體區塊。亦即,將資料寫入預設數量實體頁中還未有資料寫入之處。但若預設數量實體頁的空間不足,記憶體管理單元204則會自第一記憶區域106A包括的實體區塊中另外選擇一個實體區塊(例如第二實體區塊),進而讓第一執行緒310將資料寫入第二實體區塊。
在本範例實施例中,當主機系統1000下達了需由第一執行緒310執行的寫入指令時,記憶體管理單元204會以限制每個實體區塊僅有預設數量之實體頁可用來寫入資料的方式,避免合併兩個實體區塊的情況產生。據此,倘若在第一執行緒310執行寫入指令的期間,主機系統1000下達需由第二執行緒320執行的寫入指令,即便該寫入指令會伴隨兩個實體區塊的合併,第二執行緒320完成該寫入指令的總時間也不會超過微安全數位記憶體卡之規格書所定義完成一個寫入指令的規定時限。
圖7是根據上述範例實施例所繪示非揮發性記憶體存取方法的流程圖。請參閱圖7,首先如步驟710所示,將非揮發性記憶體晶片106所含之實體區塊劃分成能被第一執行緒310所存取的第一記憶區域106A以及能被第二執行緒320所存取的第二記憶區域106B。
接著在步驟720中,接收主機系統1000所傳送的寫入指令,且該寫入指令欲寫入的是第一記憶區域106A中的第一實體區塊。
如步驟730所示,記憶體管理單元204判斷第一實體區塊中預設數量的實體頁是否已被寫滿。若預設數量的實體頁已被寫滿,則如步驟740所示,記憶體管理單元204選擇第一記憶區域106A中的第二實體區塊進而讓第一執行緒310來寫入資料。
倘若第一實體區塊中預設數量的實體頁尚未被寫滿,則在步驟750中,記憶體管理單元204判斷第一實體區塊中預設數量的實體頁是否有足夠空間可以寫入資料。若空間足夠,則如步驟760所示,第一執行緒310將資料寫入至第一實體區塊。反之若空間不足,則如步驟770所示,第一執行緒310將資料寫入至第二實體區塊。
透過上述方式,記憶體管理單元204避免第一執行緒310在執行寫入指令時產生需合併兩個實體區塊的情況,從而降低第二執行緒320等待第一執行緒310完成寫入動作的時間,以確保完成一個寫入指令的時間不會超過微安全數位記憶體卡之規格書所規範的規定時限。
綜上所述,本發明所提出的非揮發性記憶體存取方法、系統及非揮發性記憶體控制器透過控制一個執行緒之資料搬移單位的大小,進而確保兩執行緒先後將資料寫入非揮發性記憶體晶片的總時間能小於微安全數位記憶體卡之規格書所定義每一個寫入指令的完成時限。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。
另外,本發明的任一範例實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
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...非揮發性記憶體控制器
106...非揮發性記憶體晶片
106A...第一記憶區域
106B‧‧‧第二記憶區域
202‧‧‧微處理器單元
204‧‧‧記憶體管理單元
206‧‧‧主機介面單元
208‧‧‧非揮發性記憶體介面單元
252‧‧‧緩衝記憶體
254‧‧‧電源管理單元
256‧‧‧錯誤校正單元
310‧‧‧第一執行緒
320‧‧‧第二執行緒
P0~P127‧‧‧實體頁
t1 、t2 、t3 、t4 ‧‧‧時間點
T13 ‧‧‧第一執行緒寫入資料的時間
T34 ‧‧‧第二執行緒寫入資料的時間
T14 ‧‧‧總時間
610~650‧‧‧本發明之一範例實施例所述之非揮發性記憶體存取方法的各步驟
710~770‧‧‧本發明之另一範例實施例所述之非揮發性記憶體存取方法的各步驟
圖1A是根據本發明第一範例實施例繪示使用非揮發性記憶體存取裝置的主機系統。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與非揮發性記憶體存取裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與非揮發性記憶體存取裝置的示意圖。
圖2是繪示圖1A所示的非揮發性記憶體存取裝置的概要方塊圖。
圖3是繪示圖1A所示的非揮發性記憶體存取裝置的運作示意圖。
圖4A與圖4B是根據本發明一範例實施例所繪示之資料更新的示意圖。
圖5是根據本發明之一範例實施例所繪示第一執行緒與第二執行續執行寫入指令的時序圖。
圖6是根據本發明之一範例實施例所繪示非揮發性記憶體存取方法的流程圖。
圖7是根據本發明之另一範例實施例所繪示非揮發性記憶體存取方法的流程圖。
610~650...本發明之一範例實施例所述之非揮發性記憶體存取方法的各步驟

Claims (14)

  1. 一種非揮發性記憶體存取方法,用於存取一非揮發性記憶體晶片內的多個實體區塊,其中每一該些實體區塊具有多個實體頁,該非揮發性記憶體存取方法包括:接收用以更新儲存於一第一實體區塊的一資料的一更新資料,其中該第一實體區塊包括多個特定實體頁,該些特定實體頁包括一第一實體頁以及多個第二實體頁,該資料儲存於該第一實體頁並且該些第二實體頁儲存一有效資料;判斷該第一實體區塊是否有足夠空間寫入該更新資料與該有效資料,其中該更新資料不同於該有效資料;以及當該第一實體區塊有足夠空間寫入該更新資料與該有效資料時,將該更新資料寫入該第一實體區塊的一第三實體頁中,並自該些第二實體頁直接複製該有效資料至該第一實體區塊的多個第四實體頁中。
  2. 如申請專利範圍第1項所述之非揮發性記憶體存取方法,更包括:當該第一實體區塊無足夠空間寫入該更新資料與該有效資料時,自該些實體區塊選擇空的一第二實體區塊;自該第一實體區塊複製該有效資料至該第二實體區塊中;以及將該有效資料寫入至該第二實體區塊中。
  3. 如申請專利範圍第2項所述之非揮發性記憶體存取 方法,其中該些實體頁包括多個快速實體頁,而該非揮發性記憶體存取方法更包括:將該更新資料與該有效資料寫入至該些快速實體頁中。
  4. 如申請專利範圍第2項所述之非揮發性記憶體存取方法,更包括:劃分該些實體區塊為一第一記憶區域與一第二記憶區域,其中該第一實體區塊與該第二實體區塊屬於該第一記憶區域。
  5. 如申請專利範圍第4項所述之非揮發性記憶體管理方法,更包括:令寫入該更新資料與該有效資料並接著搬移儲存於一第三實體區塊之所有實體頁的資料至一第四實體區塊的總時間小於或等於一規定時限,其中該第三實體區塊與該第四實體區塊屬於該第二記憶區域。
  6. 如申請專利範圍第1項所述之非揮發性記憶體存取方法,其中該些特定實體頁為一資料搬移單位,而該些特定實體頁的數量大於或等於2,並小於該非揮發性記憶體晶片之每一該些實體區塊所分別包括的一實體頁總數。
  7. 一種非揮發性記憶體控制器,配置於一非揮發性記憶體存取裝置中,該非揮發性記憶體存取裝置包括一非揮發性記憶體晶片,其中該非揮發性記憶體晶片包括多個實體區塊,且每一該些實體區塊具有多個實體頁,該非揮發性記憶體控制器包括: 一微處理器單元;一非揮發性記憶體介面單元,耦接該微處理器單元,用以耦接至該非揮發性記憶體晶片;一主機介面單元,耦接至該微處理器單元,用以耦接至一主機系統;以及一記憶體管理單元,耦接至該微處理器單元,其中,當該記憶體管理單元接收用以更新儲存於一第一實體區塊的一資料的一更新資料時,該記憶體管理單元更用以判斷該第一實體區塊是否有足夠空間寫入該更新資料與在第一實體區塊中的一有效資料,其中該更新資料不同於該有效資料,其中該第一實體區塊包括一第一實體頁以及多個第二實體頁,該資料儲存於該第一實體頁並且該些第二實體頁儲存該有效資料;當該第一實體區塊有足夠空間寫入該更新資料與在該第一實體區塊中的該有效資料時,該記憶體管理單元更用以將該更新資料寫入至該第一實體區塊的一第三實體頁中,並且該記憶體管理單元更用以自該些第二實體頁直接複製該有效資料至該第一實體區塊的多個第四實體頁中。
  8. 如申請專利範圍第7項所述之非揮發性記憶體控制器,其中當該第一實體區塊無足夠空間寫入該更新資料與在該第一實體區塊中的該有效資料時,該記憶體管理單元自該些實體區塊選擇空的一第二實體區塊,以寫入該更新資料與自該第一實體區塊所複製的該有效資料。
  9. 如申請專利範圍第8項所述之非揮發性記憶體控制器,其中該些實體頁包括多個快速實體頁與多個慢速實體頁,並且該記憶體管理單元用以將該更新資料與該有效資料寫入至該第一實體區塊或該第二實體區塊中的該些快速實體頁中。
  10. 如申請專利範圍第8項所述之非揮發性記憶體控制器,其中該些實體區塊被劃分為一第一記憶區域與一第二記憶區域,且該第一實體區塊與該第二實體區塊屬於該第一記憶區域。
  11. 如申請專利範圍第7項所述之非揮發性記憶體控制器,其中該些特定實體頁為一資料搬移單位,且該些特定實體頁的數量大於或等於2,並小於該非揮發性記憶體晶片之每一該些實體區塊所分別包括的一實體頁總數。
  12. 一種非揮發性記憶體存取系統,包括:一非揮發性記憶體晶片,具有多個實體區塊,且每一該些實體區塊具有多個實體頁;一連接器,用以耦接至一主機系統;以及一非揮發性記憶體控制器,耦接至該非揮發性記憶體晶片與該連接器,其中當該非揮發性記憶體控制器接收用以更新儲存於一第一實體區塊的一資料的一更新資料時,該非揮發性記憶體控制器更用以判斷該第一實體區塊是否有足夠空間寫入該更新資料與在第一實體區塊中的一有效資料,其中該更新資料不同於該有效資料,其中該第一實體區塊包括一第一實體頁以及多個第 二實體頁,該資料儲存於該第一實體頁並且該些第二實體頁儲存該有效資料;當該第一實體區塊有足夠空間寫入該更新資料與在該第一實體區塊中的該有效資料時,該非揮發性記憶體控制器更用以將該更新資料寫入至該第一實體區塊的一第三實體頁中,並且該非揮發性記憶體控制器更用以自該些第二實體頁直接複製該有效資料至該第一實體區塊的多個第四實體頁中。
  13. 如申請專利範圍第12項所述之非揮發性記憶體存取系統,其中當該第一實體區塊無足夠空間寫入該更新資料與在該第一實體區塊中的該有效資料時,該非揮發性記憶體控制器自該些實體區塊選擇空的一第二實體區塊,以寫入更新資料與自該第一實體區塊所複製的該有效資料。
  14. 如申請專利範圍第13項所述之非揮發性記憶體存取系統,其中該些實體頁包括多個快速實體頁與多個慢速實體頁,並且該非揮發性記憶體控制器用以將該更新資料與該有效資料寫入至該第一實體區塊或該第二實體區塊中的該些快速實體頁中。
TW099106296A 2010-03-04 2010-03-04 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器 TWI446349B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW099106296A TWI446349B (zh) 2010-03-04 2010-03-04 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器
US12/769,025 US8667209B2 (en) 2010-03-04 2010-04-28 Non-volatile memory access method and system, and non-volatile memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW099106296A TWI446349B (zh) 2010-03-04 2010-03-04 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器

Publications (2)

Publication Number Publication Date
TW201131569A TW201131569A (en) 2011-09-16
TWI446349B true TWI446349B (zh) 2014-07-21

Family

ID=44532282

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099106296A TWI446349B (zh) 2010-03-04 2010-03-04 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器

Country Status (2)

Country Link
US (1) US8667209B2 (zh)
TW (1) TWI446349B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468142B2 (en) 2008-08-06 2013-06-18 Fujitsu Limited Caching query results with binary decision diagrams (BDDs)
TWI417727B (zh) * 2010-11-22 2013-12-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與回應主機指令的方法
CN102999437B (zh) * 2011-09-19 2015-12-16 群联电子股份有限公司 数据搬移方法、存储器控制器与存储器储存装置
CN103077124B (zh) * 2011-10-25 2015-11-18 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
CN104126181A (zh) * 2011-12-30 2014-10-29 英特尔公司 作为随机存取存储器的非易失性半导体存储装置的系统存取的薄变换
US8990541B2 (en) 2012-09-12 2015-03-24 International Business Machines Corporation Compacting Memory utilization of sparse pages
JP6119682B2 (ja) * 2014-06-27 2017-04-26 株式会社デンソー 電子制御装置
US10452586B2 (en) * 2017-04-17 2019-10-22 Intel Corporation Avoid thread switching in cache management
KR102474596B1 (ko) * 2017-12-06 2022-12-05 삼성전자주식회사 반도체 장치
TWI787627B (zh) * 2020-07-02 2022-12-21 慧榮科技股份有限公司 電子裝置、快閃記憶體控制器及其存取方法
CN114415944A (zh) * 2021-12-27 2022-04-29 深圳忆联信息系统有限公司 固态硬盘物理块管理方法、装置、计算机设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7057937B1 (en) * 1992-03-17 2006-06-06 Renesas Technology Corp. Data processing apparatus having a flash memory built-in which is rewritable by use of external device
US7620769B2 (en) * 2000-01-06 2009-11-17 Super Talent Electronics, Inc. Recycling partially-stale flash blocks using a sliding window for multi-level-cell (MLC) flash memory
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US7039788B1 (en) * 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
US7085909B2 (en) * 2003-04-29 2006-08-01 International Business Machines Corporation Method, system and computer program product for implementing copy-on-write of a file
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
KR100684887B1 (ko) * 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US7583545B2 (en) * 2006-05-21 2009-09-01 Sandisk Il Ltd Method of storing data in a multi-bit-cell flash memory
KR100895855B1 (ko) * 2007-05-18 2009-05-06 삼성전자주식회사 메모리 셀들의 소거 속도 편차를 줄이는 플래시 메모리장치 및 그것의 소거 방법
US7779217B2 (en) 2007-05-21 2010-08-17 Sandisk Il Ltd. Systems for optimizing page selection in flash-memory devices
CN101640069B (zh) 2008-08-01 2013-12-18 群联电子股份有限公司 用于闪速存储器的平均磨损方法与平均磨损系统
JP4551958B2 (ja) * 2008-12-22 2010-09-29 株式会社東芝 半導体記憶装置および半導体記憶装置の制御方法

Also Published As

Publication number Publication date
TW201131569A (en) 2011-09-16
US20110219172A1 (en) 2011-09-08
US8667209B2 (en) 2014-03-04

Similar Documents

Publication Publication Date Title
TWI446349B (zh) 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器
TWI409633B (zh) 快閃記憶體儲存裝置、其控制器與資料寫入方法
US8392649B2 (en) Memory storage device, controller, and method for responding to host write commands triggering data movement
US8812784B2 (en) Command executing method, memory controller and memory storage apparatus
US8386699B2 (en) Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same
TWI515735B (zh) 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置
US10101914B2 (en) Memory management method, memory control circuit unit and memory storage device
US9880742B2 (en) Valid data merging method, memory controller and memory storage apparatus
US9176865B2 (en) Data writing method, memory controller, and memory storage device
US9519436B1 (en) Memory erasing method, memory controller, and memory storage apparatus
US9304900B2 (en) Data reading method, memory controller, and memory storage device
US8667210B2 (en) Memory management method, memory controller and memory storage apparatus
US8423838B2 (en) Block management method, memory controller, and memory storage apparatus
US20120110243A1 (en) Data writing method, memory controller, and memory storage apparatus
TWI421870B (zh) 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
US8812772B2 (en) Data merging method for non-volatile memory and controller and storage apparatus using the same
US8914587B2 (en) Multi-threaded memory operation using block write interruption after a number or threshold of pages have been written in order to service another request
US9037781B2 (en) Method for managing buffer memory, memory controllor, and memory storage device
US9223688B2 (en) Data storing method and memory controller and memory storage device using the same
US20160110112A1 (en) Data writing method, memoey control circuit unit and memory storage apparatus
US9652378B2 (en) Writing method, memory controller and memory storage device
US9268554B2 (en) Controlling method, memory controller, and data transmission system
US20230161698A1 (en) Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management