TWI479315B - 記憶體儲存裝置、其記憶體控制器與資料寫入方法 - Google Patents
記憶體儲存裝置、其記憶體控制器與資料寫入方法 Download PDFInfo
- Publication number
- TWI479315B TWI479315B TW101123898A TW101123898A TWI479315B TW I479315 B TWI479315 B TW I479315B TW 101123898 A TW101123898 A TW 101123898A TW 101123898 A TW101123898 A TW 101123898A TW I479315 B TWI479315 B TW I479315B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- logical
- unit
- units
- memory
- 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
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)
- Read Only Memory (AREA)
Description
本發明是有關於一種資料寫入方法,且特別是有關於一種用於可複寫式非揮發性記憶體模組的資料寫入方法及使用此方法的記憶體儲存裝置與其記憶體控制器。
可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小與無機械結構等特性,故被廣泛地應用於數位相機、手機與MP3等各種可攜式電子裝置。而固態硬碟就是一種以快閃記憶體作為儲存媒體的儲存裝置。
一般來說,快閃記憶體儲存裝置的快閃記憶體模組會劃分為多個實體區塊,其中實體區塊更劃分為多個實體頁面,而實體區塊是快閃記憶體的抹除單位並且實體頁面是快閃記憶體的寫入單位。由於在程式化快閃記憶體之記憶胞時,僅能執行單向的程式化(即,僅能將記憶胞的值由1程式化為0),因此無法對已程式化的實體頁面(即,存有舊資料的頁面)直接進行寫入,而是必須先將此實體頁面抹除後方可重新程式化。特別是,由於快閃記憶體的抹除是以實體區塊為單位,因此當欲將存有舊資料的實體頁面執行抹除運作時,必須對此實體頁面所屬的整個實體區塊進行抹除。因此,快閃記憶體模組的實體區塊會被區分為資料區與閒置區,其中資料區的實體區塊是已被使用來
儲存資料的實體區塊,而備用區中的實體區塊是未被使用的實體區塊,其中當主機系統欲寫入資料至快閃記憶體儲存裝置時,快閃記憶體儲存裝置的控制電路會從備用區中提取實體區塊來寫入資料,並且將所提取的實體區塊會關聯為資料區。並且,當資料區的實體區塊被執行抹除運作(erase operation)後,已抹除的實體區塊會被關聯為備用區。
傳統的快閃記憶體模組是以一個實體頁面作為每次進行資料存取時的基本存取單位,然而時下主機系統的基本存取單位可小於一個實體頁面的容量。舉例來說,倘若一個實體頁面的容量為16千位元組(Kilobyte,KB)且基本存取單位為4KB,當主機系統接續下達寫入指令且每筆資料為4KB時,快閃記憶體儲存裝置的控制器可將資料暫存在快閃記憶體模組的緩存單元,待主機系統欲寫入的資料已湊滿16KB後,再將其一併程式化至實體頁面。據此可利用一個程式化時間(program time)來處理四筆資料。
上述方式雖能提升資料寫入的速度,然而若主機系統欲一次讀取出大量的資料,則可能因為資料散佈在不同的實體頁面,反而需要花費更多的時間來完成讀取操作。
有鑑於此,本發明提供一種資料寫入方法、記憶體控制器與記憶體儲存裝置,能有效地提升後續進行資料讀取的速度。
本發明提出一種資料寫入方法,用於一可複寫式非揮發性記憶體模組,此可複寫式非揮發性記憶體模組具有多個實體抹除單元,且各實體抹除單元具有多個實體程式化單元。此方法包括配置多個邏輯程式化單元以映射可複寫式非揮發性記憶體模組中的部份實體程式化單元,並將每個邏輯程式化單元劃分為多個邏輯管理單元,其中各邏輯管理單元的大小等於主機系統之基本存取單位的容量。此方法還包括接收來自主機系統的第一資料,且第一資料係寫入上述邏輯程式化單元中的第一邏輯程式化單元。此方法還包括判斷第一資料的邏輯起始位址是否與第一邏輯程式化單元之各邏輯管理單元的起始位址都不對齊及/或第一資料的邏輯結束位址是否與第一邏輯程式化單元之各邏輯管理單元的結束位址都不對齊。若是,此方法更包括使用大於基本存取單位的第二資料來填補第一資料,據以產生寫入資料並且將寫入資料寫入到至少其中一個實體程式化單元。
在本發明之一範例實施例中,其中在接收來自主機系統之第一資料的步驟之後,此資料寫入方法更包括判斷第一資料是否為連續資料。當第一資料為連續資料時,則直接執行使用第二資料填補第一資料以產生寫入資料的步驟。
在本發明之一範例實施例中,其中判斷第一資料是否為連續資料的步驟包括當第一資料的資料量到達資料量門檻值時,則判定第一資料為連續資料。
在本發明之一範例實施例中,其中在接收來自主機系統之第一資料的步驟之後,此資料寫入方法更包括判斷可複寫式非揮發性記憶體模組的已使用容量是否超過使用量門檻值。當已使用容量超過使用量門檻值時,則直接執行使用第二資料填補第一資料以產生寫入資料的步驟。
在本發明之一範例實施例中,其中第二資料是預讀取(pre-read)自第一邏輯程式化單元所映射的實體程式化單元。
在本發明之一範例實施例中,其中寫入資料的資料量等於一個實體程式化單元的容量。
從另一觀點來看,本發明提出一種記憶體控制器,用於具有可複寫式非揮發性記憶體模組的記憶體儲存裝置,此記憶體控制器包括主機系統介面、記憶體介面,以及記憶體管理電路。其中,主機系統介面用以耦接主機系統。記憶體介面用以耦接可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組具有多個實體抹除單元,且每一實體抹除單元具有多個實體程式化單元。記憶體管理電路耦接至主機系統介面與記憶體介面,用以配置多個邏輯程式化單元以映射可複寫式非揮發性記憶體模組中的部份實體程式化單元,並將每一個邏輯程式化單元劃分為多個邏輯管理單元,其中各邏輯管理單元的大小等於主機系統之基本存取單位的容量。記憶體管理電路更用以接收來自主機系統的第一資料,其中第一資料係寫入上述邏輯程式化單元中的第一邏輯程式化單元。記憶體管理電路更用
以判斷第一資料的邏輯起始位址是否與第一邏輯程式化單元之各邏輯管理單元的起始位址都不對齊及/或第一資料的邏輯結束位址是否與第一邏輯程式化單元之各邏輯管理單元的結束位址都不對齊。若是,記憶體管理電路更用以使用大於基本存取單位的第二資料填補第一資料以產生寫入資料,並且將寫入資料寫入到至少其中一個實體程式化單元。
在本發明之一範例實施例中,其中記憶體管理電路更用以在接收來自主機系統的第一資料後,判斷第一資料是否為連續資料。當第一資料為連續資料時,記憶體管理電路更用以直接使用第二資料填補第一資料來產生寫入資料。
在本發明之一範例實施例中,其中當第一資料的資料量到達資料量門檻值時,記憶體管理電路判定第一資料為連續資料。
在本發明之一範例實施例中,其中記憶體管理電路更用以在接收來自主機系統的第一資料後,判斷可複寫式非揮發性記憶體模組的已使用容量是否超過使用量門檻值。當已使用容量超過使用量門檻值時,記憶體管理電路更用以直接使用第二資料填補第一資料以產生寫入資料。
在本發明之一範例實施例中,其中第二資料是預讀取自第一邏輯程式化單元所映射的實體程式化單元。
在本發明之一範例實施例中,其中寫入資料的資料量等於一個實體程式化單元的容量。
從又一觀點來看,本發明提出一種記憶體儲存裝置,其包括可複寫式非揮發性記憶體模組、連接器以及記憶體控制器。其中,可複寫式非揮發性記憶體模組具有多個實體抹除單元,且每一實體抹除單元具有多個實體程式化單元。連接器用以耦接主機系統。記憶體控制器耦接至可複寫式非揮發性記憶體模組與連接器,用以配置多個邏輯程式化單元以映射可複寫式非揮發性記憶體模組中的部份實體程式化單元,並將每個邏輯程式化單元劃分為多個邏輯管理單元,其中各邏輯管理單元的大小等於主機系統之基本存取單位的容量。其中記憶體控制器更用以接收來自主機系統的第一資料,此第一資料係寫入上述邏輯程式化單元中的第一邏輯程式化單元。其中記憶體控制器更用以判斷第一資料的邏輯起始位址是否與第一邏輯程式化單元之各邏輯管理單元的起始位址都不對齊及/或第一資料的邏輯結束位址是否與第一邏輯程式化單元之各邏輯管理單元的結束位址都不對齊。若是,記憶體控制器更用以使用大於基本存取單位的第二資料填補第一資料以產生寫入資料,並且將寫入資料寫入到至少其中一個實體程式化單元。
在本發明之一範例實施例中,其中記憶體控制器更用以在接收來自主機系統的第一資料後,判斷第一資料是否為連續資料。當第一資料為連續資料時,記憶體控制器更用以直接使用第二資料填補第一資料以產生寫入資料。
在本發明之一範例實施例中,其中當第一資料的資料量到達資料量門檻值時,記憶體控制器判定第一資料為連
續資料。
在本發明之一範例實施例中,其中記憶體控制器更用以在接收來自主機系統的第一資料後,判斷可複寫式非揮發性記憶體模組的已使用容量是否超過使用量門檻值。當已使用容量超過使用量門檻值時,記憶體控制器更用以直接使用第二資料填補第一資料以產生寫入資料。
在本發明之一範例實施例中,其中第二資料是預讀取自第一邏輯程式化單元所映射的實體程式化單元。
在本發明之一範例實施例中,其中寫入資料的資料量等於一個實體程式化單元的容量。
基於上述,本發明範例實施例所示之資料寫入方法、記憶體控制器與記憶體儲存裝置是在主機系統欲寫入沒有對齊任何邏輯管理單元之起始與結束位址的資料時,利用大於主機系統之基本存取單位的另一資料進行填補後再將其寫入可複寫式非揮發性記憶體模組。據此能提升後續從可複寫式非揮發性記憶體模組中讀出資料的速度。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝
置中讀取資料。
圖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所示的記憶卡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所示之記憶體儲存裝置100的方塊圖。請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
連接器102耦接至記憶體控制器104,並且用以耦接主機系統1000。在本範例實施例中,連接器102所支援的傳輸介面種類為序列先進附件(Serial Advanced Technology Attachment,SATA)介面。然而在其他範例實施例中,連接器102的傳輸介面種類也可以是通用序列匯流排(Universal Serial Bus,USB)介面、多媒體儲存卡(Multimedia Card,MMC)介面、平行先進附件(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)介面、小型快閃(Compact Flash,CF)介面,或整合驅動電子(Integrated Drive Electronics,IDE)介面等任何適用的介面,在此並不加以限制。
記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。其中,記憶體控制器104更特別用以根據本範例實施例之資料寫入方法來處理主機系統1000欲寫入可複寫式非揮發性記憶體模組106的資料。本範例實施例之資料寫入方法將於後配合圖示再作說明。
可複寫式非揮發性記憶體模組106耦接至記憶體控制器104。可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組,但本發明不限於此,可複寫式非揮發性記憶體模組106也可以是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、其他快閃記憶體模組或任何具有相同特性的記憶體模組。進一步來說,可複寫式非揮發性記憶體模組106包括多個實體抹除單元,而每一實體抹除單元具有多個實體程式化單元。屬於同一個實體抹除單元的實體程式化單元可被獨立地寫入且被同時地抹除。也就是說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。在一範例實施例中,實體抹除單元為實體區塊,而實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
圖3是根據本發明一範例實施例所繪示的記憶體控制器的概要方塊圖。請參照圖3,記憶體控制器104包括主
機系統介面1041、記憶體管理電路1043,以及記憶體介面1045。
主機系統介面1041耦接至記憶體管理電路1043,並透過連接器102以耦接主機系統1000。主機系統介面1041係用以接收與識別主機系統1000所傳送的指令與資料。據此,主機系統1000所傳送的指令與資料會透過主機系統介面1041而傳送至記憶體管理電路1043。在本範例實施例中,主機系統介面1041對應連接器102而為SATA介面,而在其他範例實施例中,主機系統介面1041也可以是USB介面、MMC介面、PATA介面、IEEE 1394介面、PCI Express介面、SD介面、MS介面、CF介面、IDE介面或符合其他介面標準的介面。
記憶體管理電路1043係用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路1043具有多個控制指令,在記憶體儲存裝置100被運轉(power on)時,上述控制指令會被執行以實現本範例實施例之資料寫入方法。
在一範例實施例中,記憶體管理電路1043的控制指令是以韌體型式來實作。例如,記憶體管理電路1043具有微處理器單元(未繪示)與唯讀記憶體(未繪示),且上述控制指令是被燒錄在唯讀記憶體中。當記憶體儲存裝置100運作時,上述控制指令會由微處理器單元來執行以完成本範例實施例之資料寫入方法。
在本發明另一範例實施例中,記憶體管理電路1043
的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,可複寫式非揮發性記憶體模組106中專用於存放系統資料的系統區)中。此外,記憶體管理電路1043具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。其中,唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路1043的隨機存取記憶體中。之後,微處理器單元會運轉上述控制指令以執行本範例實施例之資料寫入方法。
此外,在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以一硬體型式來實作。舉例來說,記憶體管理電路1043包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106中的實體抹除單元。記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中。記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料。記憶體抹除單元用以對可複寫式非揮發性記憶體模組106下
達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除。而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
記憶體介面1045耦接至記憶體管理電路1043,以使記憶體控制器104與可複寫式非揮發性記憶體模組106相耦接。據此,記憶體控制器104可對可複寫式非揮發性記憶體模組106進行相關運作。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面1045轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明之另一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路3002。錯誤檢查與校正電路3002耦接至記憶體管理電路1043,用以執行錯誤檢查與校正程序以確保資料的正確性。具體而言,當記憶體管理電路1043接收到來自主機系統1000的寫入指令時,錯誤檢查與校正電路3002會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),且記憶體管理電路1043會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106。之後當記憶體管理電路1043從可複寫式非揮發性記憶體模組106中讀取資料時,會同時讀取此資料對應的錯誤檢查與校正碼,且錯誤檢查與校正電路3002會依據此錯誤檢查與校正碼對所讀取的資料執行錯
誤檢查與校正程序,以識別該筆資料是否存在錯誤位元。
在本發明之另一範例實施例中,記憶體控制器104還包括緩衝記憶體3004。緩衝記憶體3004可以是靜態隨機存取記憶體(Static Random Access Memory,SRAM)、或動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)等,本發明並不加以限制。緩衝記憶體3004耦接至記憶體管理電路1043,用以暫存來自於主機系統1000的指令與資料,或暫存來自於可複寫式非揮發性記憶體模組106的資料。
在本發明又一範例實施例中,記憶體控制器104還包括電源管理電路3006。電源管理電路3006耦接至記憶體管理電路1043,用以控制記憶體儲存裝置100的電源。
圖4、5是根據本發明之一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。
在以下描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組106之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組106的實體抹除單元進行上述操作。
請參照圖4,本範例實施例之可複寫式非揮發性記憶體模組106包括實體抹除單元410(0)~410(N)。記憶體控制器104中的記憶體管理電路1043會將實體抹除單元410(0)~410(N)邏輯地分組為資料區502、閒置區504、系
統區506與取代區508。其中,圖4所標示的F、S、R與N為正整數,代表各區配置的實體抹除單元數量,其可由記憶體儲存裝置100的製造商依據所使用之可複寫式非揮發性記憶體模組106的容量來設定。
邏輯上屬於資料區502與閒置區504的實體抹除單元是用以儲存來自於主機系統1000的資料。舉例來說,資料區502的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區504的實體抹除單元是用以寫入新資料的實體抹除單元。換句話說,閒置區504的實體抹除單元為空或可使用的實體抹除單元(無記錄資料或標記為已沒用的無效資料)。當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理電路1043會從閒置區504中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區502的實體抹除單元。或者,當需要對一邏輯抹除單元執行資料合併程序時,記憶體管理電路1043會從閒置區504提取實體抹除單元並將資料寫入其中,以替換原先映射此邏輯抹除單元的實體抹除單元。
邏輯上屬於系統區506的實體抹除單元是用以記錄系統資料。舉例來說,系統資料包括關於可複寫式非揮發性記憶體模組106的製造商與型號、可複寫式非揮發性記憶體模組106的實體抹除單元數、每一實體抹除單元的實體程式化單元數等等。
邏輯上屬於取代區508的實體抹除單元是用以在資料區502、閒置區504或系統區506中的實體抹除單元損毀
時,取代損壞的實體抹除單元。具體而言,在記憶體儲存裝置100運作期間,倘若取代區508中仍存有正常之實體抹除單元且資料區502的實體抹除單元損壞時,記憶體管理電路1043會從取代區508中提取正常的實體抹除單元來更換資料區502中損壞的實體抹除單元。倘若取代區508中無正常之實體抹除單元且發生實體抹除單元損毀時,則記憶體管理電路1043會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
也因此,在記憶體儲存裝置100的運作過程中,資料區502、閒置區504、系統區506與取代區508的實體抹除單元會動態地變動。例如,用以輪替儲存資料的實體抹除單元會變動地屬於資料區502或閒置區504。
請參照圖5,為了讓主機系統1000能對可複寫式非揮發性記憶體模組106進行存取,記憶體管理電路1043會配置數個邏輯抹除單元610(0)~610(L)以映射資料區502中的實體抹除單元410(0)~410(F-1)。其中,每一邏輯抹除單元包括多個邏輯程式化單元,而邏輯抹除單元610(0)~610(L)中的邏輯程式化單元會映射實體抹除單元410(0)~410(F-1)中的實體程式化單元。
詳言之,記憶體管理電路1043將所配置的邏輯抹除單元610(0)~610(L)提供給主機系統1000,並維護邏輯位址-實體位址映射表以記錄邏輯抹除單元610(0)~610(L)與實體抹除單元410(0)~410(F-1)的映射關係。因此,當主機系統1000欲存取一邏輯位址時,記憶體管理電路1043會
確認此邏輯位址所對應的邏輯抹除單元與邏輯程式化單元,再透過邏輯位址-實體位址映射表找到其所映射的實體程式化單元來進行存取。
在本範例實施例中,記憶體管理電路1043所配置的每一邏輯程式化單元是由數個邏輯扇區(sector)所組成,這些邏輯扇區與所屬之邏輯程式化單元對應的實體程式化單元中的實體扇區相互對應。記憶體管理電路1043會將上述邏輯扇區劃分為數個邏輯管理單元,其中每一邏輯管理單元的大小等於主機系統1000之基本存取單位的容量。
舉例來說,假設每一邏輯程式化單元具有32個邏輯扇區,由於每個邏輯扇區的大小為512位元組,因此每一邏輯程式化單元的容量為16千位元組(Kilobyte,KB)。而倘若主機系統1000的基本存取單位為4千位元組,則記憶體管理電路1043會將每一邏輯程式化單元劃分為4個邏輯管理單元。
以圖6所示之邏輯程式化單元LP(0)為例,邏輯程式化單元LP(0)具有邏輯扇區LSA(0)~LSA(31),記憶體管理電路1043將邏輯扇區LSA(0)~LSA(7)劃分為第一邏輯管理單元LZ(0)、將邏輯扇區LSA(8)~LSA(15)劃分為第二邏輯管理單元LZ(1)、將邏輯扇區LSA(16)~LSA(23)劃分為第三邏輯管理單元LZ(2),並且將邏輯扇區LSA(24)~LSA(31)劃分為第四邏輯管理單元LZ(3)。其中,第一邏輯管理單元LZ(0)的起始位址為第0位元組,而結束位址為第4千位元組。第二邏輯管理單元LZ(1)的起始
位址為第4千位元組,而結束位址為第8千位元組。第三邏輯管理單元LZ(2)的起始位址為第8千位元組,而結束位址為第12千位元組。第四邏輯管理單元LZ(3)的起始位址為第12千位元組,而結束位址為第16千位元組。
由於每一邏輯管理單元的大小與基本存取單位的容量相同,而可複寫式非揮發性記憶體模組106的程式化必須以實體程式化單元為單位,故在圖6所示之範例實施例中,邏輯程式化單元LP(0)包括四個基本存取單位,表示可複寫式非揮發性記憶體模組106中的每一實體程式化單元的至多可放置四筆不同邏輯位址的資料。
在主機系統1000欲將資料寫入可複寫式非揮發性記憶體模組106時,倘若欲寫入之資料量不大時,代表主機系統1000可能是單純要將零散的小資料寫入可複寫式非揮發性記憶體模組106,或是要對已記錄在可複寫式非揮發性記憶體模組106的連續資料進行部分內容的更新。若是後者的情況,主機系統1000往後一次性地將這筆連續資料讀出的機會甚高。然而,因基本存取單位小於一個邏輯程式化單元的容量,因此在對某筆連續資料的不同位址進行數次更新後,該筆連續資料可能會被分散儲存在不同的實體程式化單元中,此會造成日後主機系統1000要完整讀出該筆資料時,記憶體管理電路1043必需花費數倍的忙碌時間(busy time)才能把資料完整讀出。詳言之,記憶體管理電路1043每對一個實體程式化單元進行讀取時,可複寫式非揮發性記憶體模組106便會進入一忙碌狀態,此狀
態下記憶體管理電路1043無法對可複寫式非揮發性記憶體模組106下達其他指令或進行額外的操作,而處於忙碌狀態的時間即為忙碌時間。以圖6所示之架構為例,若主機系統1000要讀取一筆連續且大小為16千位元組的資料,記憶體管理電路1043至多必須對4個不同的實體程式化單元進行讀取才能取得完整的資料,因此需要4倍的忙碌時間才能完成主機系統1000下達的一個讀取指令。
為了避免更新資料與舊有效資料分別被儲存在不同的實體程式化單元而降低日後的讀取速度,記憶體管理電路1043會透過填補資料的方式來提高實體程式化單元中的資料連續性。
詳細地說,當記憶體儲存裝置100接收到主機系統1000欲寫入至可複寫式非揮發性記憶體模組106的資料(以下稱為第一資料)時,記憶體管理電路1043會判斷第一資料的邏輯起始位址是否與所寫入之邏輯程式化單元中各個邏輯管理單元的起始位址都不對齊,記憶體管理電路1043還會判斷第一資料的邏輯結束位址是否與所寫入之邏輯程式化單元中各個邏輯管理單元的結束位址都不對齊。若邏輯起始位址沒有對齊其中某個邏輯管理單元的起始位址及/或邏輯結束位址沒有對齊其中某個邏輯管理單元的結束位址,則記憶體管理電路1043會使用大於基本存取單位的另一資料(以下稱為第二資料)來填補第一資料以產生一寫入資料,並且將寫入資料寫入可複寫式非揮發性記憶體模組106。換言之,在前述條件成立的情況下,
主機系統1000原本欲寫入的第一資料會在被填補一個大於基本存取單位的第二資料後,才被寫入可複寫式非揮發性記憶體模組106。
以下將以數個範例實施例說明當主機系統1000欲將第一資料寫入圖6之邏輯程式化單元LP(0)時,記憶體管理電路1043是否會對第一資料進行填補。
請參閱圖7,在本範例實施例中假設第一資料是寫入至邏輯扇區LSA(3)~LSA(6),由於第一資料的邏輯起始位址與邏輯管理單元LZ(0)~LZ(3)個別的起始位址都不對齊,且第一資料的邏輯結束位址與邏輯管理單元LZ(0)~LZ(3)個別的結束位址也都不對齊,因此記憶體管理電路1043會使用第二資料來填補第一資料以產生寫入資料。
請參閱圖8,在本範例實施例中,第一資料是寫入至邏輯扇區LSA(5)~LSA(15)。雖然第一資料的邏輯結束位址對齊邏輯管理單元LZ(1)的結束位址,然而由於第一資料的邏輯起始位址與邏輯管理單元LZ(0)~LZ(3)個別的起始位址都不對齊,因此記憶體管理電路1043仍會使用第二資料來填補第一資料以產生寫入資料。在另一範例實施例中,倘若第一資料的邏輯起始位址有對齊某一邏輯管理單元(例如,邏輯管理單元LZ(2))的起始位址,但若第一資料的邏輯結束位址與邏輯管理單元LZ(0)~LZ(3)個別的結束位址都不對齊,記憶體管理電路1043亦會使用第二資料填補第一資料以產生寫入資料。
而在圖9所示之範例實施例中,第一資料是寫入至邏輯扇區LSA(0)~LSA(7)。由於第一資料的邏輯起始位址與邏輯結束位址分別對齊了邏輯管理單元LZ(0)的起始位址以及結束位址,因此記憶體管理電路1043將不對第一資料進行填補動作,而直接以第一資料作為準備寫入可複寫式非揮發性記憶體模組106的寫入資料。
在一範例實施例中,記憶體管理電路1043用來填補第一資料的第二資料是儲存在第一資料所屬之邏輯程式化單元所映射的實體程式化單元中。基此,記憶體管理電路1043在根據邏輯位址-實體位址映射表找出第一資料所屬之邏輯程式化單元LP(0)所對應的實體程式化單元PP(0)後,便會自實體程式化單元PP(0)預讀取(pre-read)出第二資料。
舉例來說,當記憶體管理電路1043要將第一資料填補為符合一個實體程式化單元之容量(即,寫入資料的資料量等於一個實體程式化單元的容量)時,第二資料則為實體程式化單元PP(0)中不對應第一資料所寫入之邏輯扇區的其他實體扇區中的資料。例如,假設圖6之邏輯程式化單元LP(0)中的邏輯扇區LSA(0)~LSA(31)是對應實體程式化單元PP(0)中的實體扇區PSA(0)~PSA(31),那麼在圖7所示之範例實施例中,第二資料為實體程式化單元PP(0)之實體扇區PSA(0)~PSA(2)、PSA(7)~PSA(31)中的資料。而在圖8所示之範例實施例中,第二資料為實體程式化單元PP(0)之實體扇區PSA(0)~PSA(4)、PSA(16)~PSA(31)中
的資料。將第一資料以此方式填補後再寫入一實體程式化單元,則可以確保在主機系統1000要對包含此資料的一整段連續位址進行讀取時,能一次性地讀取出連續資料,而不再需要對數個實體程式化單元進行讀取。
值得一提的是,在另一範例實施例中,寫入資料的資料量也可以略小於一個實體程式化單元的容量。例如,當寫入資料的資料量為一個實體程式化單元的四分之三容量時,圖7所示之範例實施例中,記憶體管理電路1043例如會預讀取實體程式化單元PP(0)之實體扇區PSA(0)~PSA(2)、PSA(7)~PSA(23)中的資料來作為第二資料。而在圖8所示之範例實施例中,記憶體管理電路1043例如會預讀取實體程式化單元PP(0)之實體扇區PSA(0)~PSA(4)、PSA(16)~PSA(23)中的資料來做為第二資料。
在又一範例實施例中,寫入資料的資料量也可以超過一個實體程式化單元的容量,例如可為兩個實體程式化單元的容量。本發明之寫入資料的大小並不侷限於上述範例實施例,換言之,只要所填補之第二資料的資料量大於基本存取單位,即屬於本發明之範疇。
另外,當主機系統1000欲將一筆連續資料寫入可複寫式非揮發性記憶體模組106,日後再將此筆連續資料整體讀取出的機率相當高,基此,在本發明的另一範例實施例中,在接收來自主機系統1000的第一資料後,記憶體管理電路1043會判斷第一資料是否為連續資料。若為連續資
料,則不論第一資料的邏輯起始位址與邏輯結束位址是否有對齊任何邏輯管理單元的起始與結束位址,記憶體管理電路1043都將利用大於基本存取單位的第二資料填補第一資料以產生寫入資料。
舉例來說,記憶體管理電路1043可藉由比較第一資料的資料量是否到達一資料量門檻值來判斷第一資料是否為連續資料。若資料量到達資料量門檻值,記憶體管理電路1043判定第一資料為連續資料。為了方便說明,假設資料量門檻值為基本存取單位之容量的兩倍。在圖10所示之範例實施例中,第一資料係寫入邏輯程式化單元LP(0)的邏輯扇區LSA(16)~LSA(31),由於其資料量為基本存取單位之容量的兩倍,因此會被判定為連續資料。在此情況下,即便第一資料的邏輯起始位址對齊邏輯管理單元LZ(2)的起始位址,且第一資料的邏輯結束位址對齊邏輯管理單元LZ(3)的結束位址,記憶體管理電路1043仍會利用一個大於基本存取單位的第二資料來填補第一資料,以產生準備寫入可複寫式非揮發性記憶體模組106的寫入資料。其中,第二資料例如是邏輯程式化單元LP(0)所映射之實體程式化單元PP(0)中的實體扇區PSA(0)~PSA(15)的資料。另外,倘若第一資料係寫入邏輯程式化單元LP(0)的邏輯扇區LSA(8)~LSA(23),記憶體管理電路1043會以實體程式化單元PP(0)之實體扇區PSA(0)~PSA(7)以及PSA(24)~PSA(31)的資料來做為第二資料。在本範例實施例中,是以將第一資料補滿至一個實體程式化單元的容量
為目標來預讀取出第二資料,亦即,寫入資料的資料量會等於一個實體程式化單元的容量。然而第二資料的資料量並不以此為限,只要大於基本存取單位則屬於本發明之第二資料的範疇。
在本發明的又一範例實施例中,在接收來自主機系統1000的第一資料後,記憶體管理電路1043判斷可複寫式非揮發性記憶體模組106的已使用容量是否超過一使用量門檻值。當已使用容量超過使用量門檻值,表示記憶體儲存裝置100已快存滿資料,而使用者可能很快會將記憶體儲存裝置100中的資料讀出並備份至其他儲存裝置。故在此情況下,記憶體管理電路1043會直接使用第二資料填補第一資料以產生寫入資料。亦即,無論第一資料的邏輯起始位址與邏輯結束位址是否有對齊任何邏輯管理單元的起始與結束位址,記憶體管理電路1043都會對其進行填補動作。據此提升後續進行讀取操作的速度。
圖11是根據本發明之一範例實施例所繪示之資料寫入方法的流程圖。
請參閱圖11,首先如步驟S1110所示,記憶體管理電路1043配置多個邏輯程式化單元以映射可複寫式非揮發性記憶體模組106中的部份實體程式化單元,並將每個邏輯程式化單元劃分為多個邏輯管理單元。
接著在步驟S1120中,記憶體管理電路1043接收來自主機系統1000的第一資料,且第一資料係寫入第一邏輯程式化單元。
如步驟S1130所示,記憶體管理電路1043判斷位於第一邏輯程式化單元的第一資料的邏輯起始位址是否與各邏輯管理單元的起始位址都不對齊及/或位於第一邏輯程式化單元的第一資料的邏輯結束位址是否與各邏輯管理單元的結束位址都不對齊。
若步驟S1130的判斷結果為是,則在步驟S1140中,記憶體管理電路1043使用大於基本存取單位的第二資料填補第一資料以產生寫入資料。
而倘若步驟S1130的判斷結果為否,則如步驟S1145所示,記憶體管理電路1043直接以第一資料做為寫入資料。須說明的是,倘若第一資料小於一個實體程式化單元,則記憶體管理電路1043會將其填補至等於實體程式化單元的大小後再做為寫入資料。
由於可複寫式非揮發性記憶體模組106的程式化必須以實體程式化單元為單位,因此在步驟S1150中,記憶體管理電路1043判斷寫入資料的資料量是否等於一個實體程式化單元的容量。
若寫入資料的資料量未達一實體程式化單元的容量,則如步驟S1160所示,記憶體管理電路1043將寫入資料暫存在緩衝記憶體3004,並等待主機系統1000下達其他寫入指令而使得緩衝記憶體3004中的資料量到達一實體程式化單元的容量時,再將緩衝記憶體3004中的資料實際寫入至可複寫式非揮發性記憶體模組106。
然而,倘若寫入資料的資料量本身已達一個實體程式
化單元的容量,則如步驟S1170所示,記憶體管理電路1043將寫入資料寫入至實體程式化單元。
綜上所述,本發明所述之資料寫入方法、記憶體儲存裝置及記憶體控制器能在主機系統欲寫入資料時,判斷資料的邏輯起始與結束位址是否與所屬邏輯程式化單位中各邏輯管理單元的起始與結束位址都不對齊。若都不對齊,則從可複寫式非揮發性記憶體模組中預讀取出大於基本存取單位的資料來進行填補,之後再寫入可複寫式非揮發性記憶體模組。據此確保寫入實體程式化單元之資料的連續性,從而有效提升往後讀取資料的速度。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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‧‧‧可複寫式非揮發性記憶體模組
1041‧‧‧主機系統介面
1043‧‧‧記憶體管理電路
1045‧‧‧記憶體介面
3002‧‧‧錯誤檢查與校正電路
3004‧‧‧緩衝記憶體
3006‧‧‧電源管理電路
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧資料區
504‧‧‧閒置區
506‧‧‧系統區
508‧‧‧取代區
610(0)~610(L)‧‧‧邏輯抹除單元
LP(0)‧‧‧邏輯程式化單元
LSA(0)~LSA(31)‧‧‧邏輯扇區
LZ(0)~LZ(3)‧‧‧邏輯管理單元
S1110~S1170‧‧‧本發明之一範例實施例所述之資料寫入方法的各步驟
圖1A是根據本發明一範例實施例繪示之使用記憶體儲存裝置的主機系統的示意圖。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明一範例實施例繪示之記憶體控制器的概要方塊圖。
圖4、5是根據本發明之一範例實施例所繪示之管理複寫式非揮發性記憶體模組的示意圖。
圖6是根據本發明之一範例實施例所繪示之邏輯程式化單元的示意圖。
圖7、8、9、10是根據本發明之一範例實施例所繪示之寫入第一資料之邏輯程式化單元的示意圖。
圖11是根據本發明之一範例實施例所繪示之資料寫入方法的流程圖。
S1110~S1170‧‧‧本發明之一範例實施例所述之資料寫入方法的各步驟
Claims (18)
- 一種資料寫入方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體抹除單元,且各該些實體抹除單元具有多個實體程式化單元,該方法包括:配置多個邏輯程式化單元以映射該可複寫式非揮發性記憶體模組中的部份實體程式化單元,並將各該些邏輯程式化單元劃分為多個邏輯管理單元,其中各該些邏輯管理單元包括多個邏輯扇區,並且各該些邏輯管理單元的大小等於一主機系統之一基本存取單位的容量;接收來自該主機系統的一第一資料,且該第一資料係寫入該些邏輯程式化單元中的一第一邏輯程式化單元;判斷該第一資料的一邏輯起始位址是否與該第一邏輯程式化單元的各該些邏輯管理單元的一起始位址都不對齊及/或該第一資料的一邏輯結束位址是否與該第一邏輯程式化單元的各該些邏輯管理單元的一結束位址都不對齊;若是,則使用大於該基本存取單位的一第二資料填補該第一資料以產生一寫入資料;以及將該寫入資料寫入至該些實體程式化單元的至少其中之一。
- 如申請專利範圍第1項所述之資料寫入方法,其中在接收來自該主機系統之該第一資料的步驟之後,更包括:判斷該第一資料是否為連續資料;以及 當該第一資料為連續資料時,則直接執行使用該第二資料填補該第一資料以產生該寫入資料的步驟。
- 如申請專利範圍第2項所述之資料寫入方法,其中判斷該第一資料是否為連續資料的步驟包括:當該第一資料的資料量到達一資料量門檻值時,則判定該第一資料為連續資料。
- 如申請專利範圍第1項所述之資料寫入方法,其中在接收來自該主機系統之該第一資料的步驟之後,更包括:判斷該可複寫式非揮發性記憶體模組的一已使用容量是否超過一使用量門檻值;以及當該已使用容量超過該使用量門檻值時,則直接執行使用該第二資料填補該第一資料以產生該寫入資料的步驟。
- 如申請專利範圍第1項所述之資料寫入方法,其中該第二資料是預讀取(pre-read)自該第一邏輯程式化單元所映射的實體程式化單元。
- 如申請專利範圍第1項所述之資料寫入方法,其中該寫入資料的資料量等於一個實體程式化單元的容量。
- 一種記憶體控制器,用於具有一可複寫式非揮發性記憶體模組的一記憶體儲存裝置,該記憶體控制器包括:一主機系統介面,用以耦接一主機系統;一記憶體介面,用以耦接該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,且各該些實體抹除單元具有多個實體程式化單 元;以及一記憶體管理電路,耦接至該主機系統介面與該記憶體介面,用以配置多個邏輯程式化單元以映射該可複寫式非揮發性記憶體模組中的部份實體程式化單元,並將各該些邏輯程式化單元劃分為多個邏輯管理單元,其中各該些邏輯管理單元包括多個邏輯扇區,並且各該些邏輯管理單元的大小等於該主機系統之一基本存取單位的容量,其中該記憶體管理電路更用以接收來自該主機系統的一第一資料,其中該第一資料係寫入該些邏輯程式化單元中的一第一邏輯程式化單元,其中該記憶體管理電路更用以判斷該第一資料的一邏輯起始位址是否與該第一邏輯程式化單元的各該些邏輯管理單元的一起始位址都不對齊及/或該第一資料的一邏輯結束位址是否與該第一邏輯程式化單元的各該些邏輯管理單元的一結束位址都不對齊,若是,該記憶體管理電路更用以使用大於該基本存取單位的一第二資料填補該第一資料以產生一寫入資料,並且將該寫入資料寫入至該些實體程式化單元的至少其中之一。
- 如申請專利範圍第7項所述之記憶體控制器,其中該記憶體管理電路更用以在接收來自該主機系統的該第一資料後,判斷該第一資料是否為連續資料,當該第一資料為連續資料時,該記憶體管理電路更用以直接使用該第二資料填補該第一資料以產生該寫入資 料。
- 如申請專利範圍第8項所述之記憶體控制器,其中當該第一資料的資料量到達一資料量門檻值時,該記憶體管理電路判定該第一資料為連續資料。
- 如申請專利範圍第7項所述之記憶體控制器,其中該記憶體管理電路更用以在接收來自該主機系統的該第一資料後,判斷該可複寫式非揮發性記憶體模組的一已使用容量是否超過一使用量門檻值,當該已使用容量超過該使用量門檻值時,該記憶體管理電路更用以直接使用該第二資料填補該第一資料以產生該寫入資料。
- 如申請專利範圍第7項所述之記憶體控制器,其中該第二資料是預讀取自該第一邏輯程式化單元所映射的實體程式化單元。
- 如申請專利範圍第7項所述之記憶體控制器,其中該寫入資料的資料量等於一個實體程式化單元的容量。
- 一種記憶體儲存裝置,包括:一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體抹除單元,且各該些實體抹除單元具有多個實體程式化單元;一連接器,用以耦接一主機系統;以及一記憶體控制器,耦接至該可複寫式非揮發性記憶體模組與該連接器,用以配置多個邏輯程式化單元以映射該可複寫式非揮發性記憶體模組中的部份實體程式化單元, 並將各該些邏輯程式化單元劃分為多個邏輯管理單元,其中各該些邏輯管理單元包括多個邏輯扇區,並且各該些邏輯管理單元的大小等於該主機系統之一基本存取單位的容量,其中該記憶體控制器更用以接收來自該主機系統的一第一資料,其中該第一資料係寫入該些邏輯程式化單元中的一第一邏輯程式化單元,其中該記憶體控制器更用以判斷該第一資料的一邏輯起始位址是否與該第一邏輯程式化單元的各該些邏輯管理單元的一起始位址都不對齊及/或該第一資料的一邏輯結束位址是否與該第一邏輯程式化單元的各該些邏輯管理單元的一結束位址都不對齊,若是,該記憶體控制器更用以使用大於該基本存取單位的一第二資料填補該第一資料以產生一寫入資料,並且將該寫入資料寫入至該些實體程式化單元的至少其中之一。
- 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器更用以在接收來自該主機系統的該第一資料後,判斷該第一資料是否為連續資料,當該第一資料為連續資料時,該記憶體控制器更用以直接使用該第二資料填補該第一資料以產生該寫入資料。
- 如申請專利範圍第14項所述之記憶體儲存裝置,其中當該第一資料的資料量到達一資料量門檻值時,該記憶體控制器判定該第一資料為連續資料。
- 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器更用以在接收來自該主機系統的該第一資料後,判斷該可複寫式非揮發性記憶體模組的一已使用容量是否超過一使用量門檻值,當該已使用容量超過該使用量門檻值時,該記憶體控制器更用以直接使用該第二資料填補該第一資料以產生該寫入資料。
- 如申請專利範圍第13項所述之記憶體儲存裝置,其中該第二資料是預讀取自該第一邏輯程式化單元所映射的實體程式化單元。
- 如申請專利範圍第13項所述之記憶體儲存裝置,其中該寫入資料的資料量等於一個實體程式化單元的容量。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW101123898A TWI479315B (zh) | 2012-07-03 | 2012-07-03 | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 |
| US13/632,167 US20140013030A1 (en) | 2012-07-03 | 2012-10-01 | Memory storage device, memory controller thereof, and method for writing data thereof |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW101123898A TWI479315B (zh) | 2012-07-03 | 2012-07-03 | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201403319A TW201403319A (zh) | 2014-01-16 |
| TWI479315B true TWI479315B (zh) | 2015-04-01 |
Family
ID=49879400
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW101123898A TWI479315B (zh) | 2012-07-03 | 2012-07-03 | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20140013030A1 (zh) |
| TW (1) | TWI479315B (zh) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI486766B (zh) * | 2012-05-11 | 2015-06-01 | Phison Electronics Corp | 資料處理方法、記憶體控制器與記憶體儲存裝置 |
| US9396131B1 (en) | 2013-02-08 | 2016-07-19 | Workday, Inc. | Dynamic three-tier data storage utilization |
| US9501426B1 (en) * | 2013-02-08 | 2016-11-22 | Workday, Inc. | Dynamic two-tier data storage utilization |
| US9870318B2 (en) * | 2014-07-23 | 2018-01-16 | Advanced Micro Devices, Inc. | Technique to improve performance of memory copies and stores |
| KR102333220B1 (ko) | 2015-09-24 | 2021-12-01 | 삼성전자주식회사 | 불휘발성 메모리 시스템의 동작 방법 |
| KR20200054534A (ko) * | 2018-11-12 | 2020-05-20 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
| TWI701552B (zh) * | 2019-03-22 | 2020-08-11 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
| CN111767005B (zh) * | 2019-04-01 | 2023-12-08 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200601030A (en) * | 2003-12-30 | 2006-01-01 | Sandisk Corp | Non-volatile memory and method with phased program failure handling |
| US20060136655A1 (en) * | 2004-12-16 | 2006-06-22 | Gorobets Sergey A | Cluster auto-alignment |
| US20080195833A1 (en) * | 2007-02-13 | 2008-08-14 | Samsung Electronics Co., Ltd. | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit |
| US20110099326A1 (en) * | 2009-10-27 | 2011-04-28 | Samsung Electronics Co., Ltd. | Flash memory system and defragmentation method |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6185666B1 (en) * | 1999-09-11 | 2001-02-06 | Powerquest Corporation | Merging computer partitions |
| US7296139B1 (en) * | 2004-01-30 | 2007-11-13 | Nvidia Corporation | In-memory table structure for virtual address translation system with translation units of variable range size |
| US8307148B2 (en) * | 2006-06-23 | 2012-11-06 | Microsoft Corporation | Flash management techniques |
| KR20090031102A (ko) * | 2007-09-21 | 2009-03-25 | 삼성전자주식회사 | 이동식 저장 장치의 포맷 방법 및 장치 |
| EP2225643B1 (en) * | 2007-12-28 | 2020-05-06 | Toshiba Memory Corporation | Semiconductor storage device |
| CN101978361B (zh) * | 2008-02-20 | 2013-06-05 | 索尼电脑娱乐公司 | 存储器控制方法以及装置、存储器访问控制方法 |
| JP4745356B2 (ja) * | 2008-03-01 | 2011-08-10 | 株式会社東芝 | メモリシステム |
| US8069299B2 (en) * | 2008-06-30 | 2011-11-29 | Intel Corporation | Banded indirection for nonvolatile memory devices |
| JP2010015197A (ja) * | 2008-06-30 | 2010-01-21 | Toshiba Corp | ストレージ制御装置、データ復元装置およびストレージシステム |
| WO2010035124A1 (en) * | 2008-09-29 | 2010-04-01 | Sandisk Il Ltd. | File system for storage device which uses different cluster sizes |
| EP2180408B1 (en) * | 2008-10-23 | 2018-08-29 | STMicroelectronics N.V. | Method for writing and reading data in an electrically erasable and programmable nonvolatile memory |
| TWI399643B (zh) * | 2009-12-31 | 2013-06-21 | Phison Electronics Corp | 快閃記憶體儲存系統及其控制器與資料寫入方法 |
| US20130103889A1 (en) * | 2011-10-25 | 2013-04-25 | Ocz Technology Group Inc. | Page-buffer management of non-volatile memory-based mass storage devices |
-
2012
- 2012-07-03 TW TW101123898A patent/TWI479315B/zh active
- 2012-10-01 US US13/632,167 patent/US20140013030A1/en not_active Abandoned
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200601030A (en) * | 2003-12-30 | 2006-01-01 | Sandisk Corp | Non-volatile memory and method with phased program failure handling |
| US20060136655A1 (en) * | 2004-12-16 | 2006-06-22 | Gorobets Sergey A | Cluster auto-alignment |
| US20080195833A1 (en) * | 2007-02-13 | 2008-08-14 | Samsung Electronics Co., Ltd. | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit |
| US20110099326A1 (en) * | 2009-10-27 | 2011-04-28 | Samsung Electronics Co., Ltd. | Flash memory system and defragmentation method |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201403319A (zh) | 2014-01-16 |
| US20140013030A1 (en) | 2014-01-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI526830B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI575374B (zh) | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI479492B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
| TWI479315B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
| US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
| US8589619B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
| US8489942B1 (en) | Memory management method, and memory controller and memory storage device using the same | |
| TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
| TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
| US20130332653A1 (en) | Memory management method, and memory controller and memory storage device using the same | |
| TWI523030B (zh) | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
| CN113885808A (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
| US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
| CN103136111B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
| TWI817315B (zh) | 映射表管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
| CN102567221B (zh) | 数据管理方法、存储器控制器与存储器储存装置 | |
| CN103544118B (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
| CN104536906A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
| CN103365790B (zh) | 存储器控制器、存储装置与数据写入方法 | |
| CN114203239A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
| TWI635495B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI813362B (zh) | 部分抹除管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
| CN103853666B (zh) | 存储器、其存储控制器与数据写入方法 | |
| TWI648629B (zh) | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI826161B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |