TWI661352B - 資料儲存裝置及其資料寫入方法 - Google Patents
資料儲存裝置及其資料寫入方法 Download PDFInfo
- Publication number
- TWI661352B TWI661352B TW105130573A TW105130573A TWI661352B TW I661352 B TWI661352 B TW I661352B TW 105130573 A TW105130573 A TW 105130573A TW 105130573 A TW105130573 A TW 105130573A TW I661352 B TWI661352 B TW I661352B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- flash memory
- host
- written
- write
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
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)
Abstract
本發明提供一種資料儲存裝置包括一快閃記憶體以及一控制器。控制器自一主機接收用以指示將複數資料寫入快閃記憶體之複數寫入命令,逐一根據所接到之寫入命令自主機接收資料,其中在接收資料的過程中,當資料中已接收到的資料尚未累積至一既定量時,紀錄已接收到的資料的狀態為尚未確認,當已接收到之資料中之複數第一資料累積至既定量時,將複數第一資料寫入快閃記憶體,並且在所有第一資料被寫入快閃記憶體後,傳送相應於第一資料之複數寫入確認訊號至主機。
Description
本發明係關於一種資料儲存裝置之資料寫入方法;特別係關於一種可一次進行多個寫入命令之資料寫入方法。
快閃記憶體為一種普遍的非揮發性資料儲存裝置,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(即NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)…等使用。
快閃記憶體(如,NAND FLASH)的儲存陣列包括複數個區塊(blocks)。各區塊包括複數頁面(pages)。一般而言,在快閃記憶體中資料讀取的單位是頁面。在以往eMMC的規格中,寫入命令需要逐一執行。換言之,當所接收之寫入命令已執行完畢後,資料儲存裝置才可自主機接收另一個寫入命令之資料以執行另一寫入任務。因此,如何更有效率的執行寫入命令是增進資料儲存裝置效能的重要問題。
本發明所提供之資料儲存裝置以及資料寫入方法可將多筆寫入命令之資料一次寫入快閃記憶體中,以增進資料 族存裝置之寫入效率。
本發明提供一種資料儲存裝置包括一快閃記憶體以及一控制器。控制器自一主機接收用以指示將複數資料寫入快閃記憶體之複數寫入命令,逐一根據所接到之寫入命令自主機接收資料,其中在接收資料的過程中,當資料中已接收到的資料尚未累積至一既定量時,紀錄已接收到的至少一資料的狀態為尚未確認,當資料中已接收到之複數第一資料累積至既定量時,將已接收到之第一資料寫入快閃記憶體,並且在所有第一資料被寫入快閃記憶體後,傳送相應於第一資料之複數寫入確認訊號至主機。
在一實施例中,既定量為快閃記憶體之一寫入單位,並且寫入單位為頁面。另外,每一寫入確認訊號係用以告知主機所相應之第一資料已被寫入快閃記憶體中。
又一實施例中,資料儲存裝置操作於嵌入式快閃記憶體模組(eMMC)規範或者通用快閃記憶體(UFS)規範中之一快取關閉模式(cache off)。
本發明亦提供一種資料儲存裝置包括一快閃記憶體以及一控制器。控制器自一主機接收一切換訊號,並且響應於切換訊號操作於嵌入式快閃記憶體模組(eMMC)規範或者通用快閃記憶體(UFS)規範中之一快取關閉模式,其中在快取關閉模式中,控制器將由複數第一寫入命令所指示之複數第一資料寫入快閃記憶體,並且在所有第一資料被寫入快閃記憶體後,傳送相應於第一寫入命令之複數寫入確認訊號至一主機。
在一實施例中,控制器係自主機接收分別用以寫 入複數資料之複數寫入命令,逐一根據所接收之寫入命令自主機接收資料,並且當資料中已被接收之第一資料累積至一既定量時,將第一資料一次寫入快閃記憶體中。詳細而言,在從第一資料中之第一者被寫入快閃記憶體至第一資料中之最後一者被寫入快閃記憶體的過程中,用以代表快閃記憶體是否忙碌之一忙碌旗標皆維持在一忙碌狀態。
在一實施例中,既定量為快閃記憶體之一寫入單位,並且寫入單位為頁面。另外,每一寫入確認訊號係用以告知主機所相應之第一寫入命令之第一資料已被寫入快閃記憶體中。
本發明亦提供一種資料寫入方法適用於具有一快閃記憶體之一資料儲存裝置。資料寫入方法包括:自一主機接收用以指示將複數資料寫入快閃記憶體之複數寫入命令;逐一根據所接到之寫入命令自主機接收資料;當資料中已接收到的資料尚未累積至一既定量時,紀錄已接收到的至少一資料的狀態為尚未確認;當資料中已接收到之複數第一資料累積至既定量時,將已接收到之第一資料寫入快閃記憶體;以及在所有第一資料被寫入快閃記憶體後,傳送相應於第一資料之複數寫入確認訊號至主機。
在一實施例中,資料儲存裝置操作於嵌入式快閃記憶體模組(eMMC)規範或者通用快閃記憶體(UFS)規範中之一快取關閉模式(cache off)。
本發明又提供一種資料寫入方法適用於具有一快閃記憶體之一資料儲存裝置。資料寫入方法包括:自一主機接 收一切換訊號,並且響應於切換訊號操作於嵌入式快閃記憶體模組(eMMC)規範或者通用快閃記憶體(UFS)規範中之一快取關閉模式。在快取關閉模式中資料寫入方法更包括:將由複數第一寫入命令所指示之複數第一資料寫入快閃記憶體;以及在所有第一資料被寫入快閃記憶體後,傳送相應於第一寫入命令之複數寫入確認訊號至一主機。
在一實施例中,將由寫入命令所指示之資料寫入快閃記憶體之步驟更包括:自主機接收分別用以寫入複數資料之複數寫入命令;逐一根據所接收之寫入命令自主機接收資料;以及當資料中已被接收之第一資料累積至一既定量時,將第一資料一次寫入快閃記憶體中。其中,在從第一資料中之第一者被寫入快閃記憶體至第一資料中之最後一者被寫入快閃記憶體的過程中,用以代表快閃記憶體是否忙碌之一忙碌旗標皆維持在一忙碌狀態。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧動態隨機存取器
180‧‧‧快閃記憶體
W_COMM_1~W_COMM_5‧‧‧寫入命令
DATA1~DATA5‧‧‧資料
D_TRA_R1~D_TRA_R5‧‧‧資料傳送要求
Resp_1~Resp_5‧‧‧寫入確認訊號
NAND_Busy_1~NAND_Busy_5‧‧‧忙碌期間
S400~S416‧‧‧步驟
第1圖係本發明之一種實施例之電子系統之方塊圖。
第2圖係本發明之一種實施例之資料寫入的示意圖。
第3圖係本發明之一種實施例之資料寫入的示意圖。
第4圖係本發明之一種實施例之資料寫入方法之流程圖。
以下將詳細討論本發明各種實施例之裝置及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明 本發明之裝置及使用方法,但非用於限定本發明之範圍。
第1圖係本發明之一種實施例之電子系統之方塊圖。電子系統100包括一主機120以及一資料儲存裝置140。資料儲存裝置140包括一快閃記憶體180以及一控制器160,且可根據主機120所下達的命令操作。值得注意的是,在本發明中之一實施例中,資料儲存裝置140需符合嵌入式快閃記憶體180模組(eMMC)之規範。
控制器160包括一運算單元162、一永久記憶體(如,唯讀記憶體ROM)164以及一隨機存取記憶體(RAM)166。永久記憶體164與所載之程式碼、資料組成韌體(firmware),由運算單元162執行,使控制器160基於該韌體控制該快閃記憶體180。隨機存取記憶體(RAM)166用以暫存以及預取控制器160所需之資料。換言之,控制器160所需要用以讀取資料的參數可被上載至隨機存取記憶體166,以加快控制器160之忙碌時間。值得注意的是,資料儲存裝置140具有用以代表快閃記憶體180是否忙碌之一忙碌旗標,其中忙碌旗標可被設置於快閃記憶體180或者隨機存取記憶體166中。當快閃記憶體180在進行讀取或者寫入資料時,忙碌旗標具有一第一既定值用以代表一忙碌狀態。在快閃記憶體180沒有在進行讀取或者寫入動作時,忙碌旗標具有一第二既定值用以代表一閒置狀態。
在嵌入式快閃記憶體模組(eMMC)規範以及通用快閃記憶體(UFS)規範中具有快取關閉模式(Cache off)以及快閃開啟模式(Cache on)。在快取關閉模式中,資料儲存裝置140必須將自主機120接收之寫入命令所指示之資料寫入快閃記憶 體180後,才可傳送寫入確認訊號給主機120,以告知主機120相應之寫入命令之資料已被寫入快閃記憶體180中。換言之,在快取關閉模式中,資料儲存裝置140回傳寫入確認訊號給主機120時,代表資料已確實寫入資料儲存裝置140中之快閃記憶體180,故資料不會在斷電事件中丟失。在快取開啟模式中,資料儲存裝置140可以在將自主機120接收之寫入命令所指示之資料暫存在隨機存取記憶體166後,即可傳送寫入確認訊號給主機120。在傳送寫入確認訊號給主機120後,控制器160再根據特定之規則將隨機存取記憶體166中之資料寫入快閃記憶體180中。換言之,在快取開啟模式中,資料儲存裝置140回傳寫入確認訊號給主機120時,不代表資料已確實寫入資料儲存裝置140中之快閃記憶體180,故資料可能會在斷電事件中丟失。
第2圖係本發明之一種實施例之資料寫入的示意圖。在第2圖中,資料儲存裝置140操作於嵌入式快閃記憶體模組(eMMC)規範或者通用快閃記憶體180(UFS)規範中之快取關閉模式。首先,主機120傳送複數寫入命令W_COMM_1~W_COMM_4至資料儲存裝置140。在接收到寫入命令W_COMM_1~W_COMM_4後,控制器160先傳送相應於寫入命令W_COMM_1之一資料傳送要求D_TRA_R1至主機120。在接收到資料傳送要求D_TRA_R1後,主機120將相應於寫入命令W_COMM_1的資料DATA1傳送至資料儲存裝置140。接著,控制器160在記憶體忙碌期間NAND_Busy_1中,將所接收之資料DATA1寫入快閃記憶體180中。值得注意的是,在開始將資 料DATA1寫入快閃記憶體180時,控制器160或者快閃記憶體180將忙碌旗標設置為忙碌狀態,並且在資料DATA1寫入完畢後,控制器160或者快閃記憶體180將忙碌旗標設置為閒置狀態。在忙碌旗標被設置為閒置狀態後,控制器160將寫入確認訊號Resp_1傳送至主機120,以告知主機120寫入命令W_COMM_1之資料DATA1已被寫入快閃記憶體180中。接著,控制器160再傳送相應於寫入命令W_COMM_2之一資料傳送要求D_TRA_R2至主機120。在接收到資料傳送要求D_TRA_R2後,主機120將相應於寫入命令W_COMM_2的資料DATA2傳送至資料儲存裝置140。接著,控制器160在記憶體忙碌期間NAND_Busy_2中,將所接收之資料DATA2寫入快閃記憶體180中,其中在開始將資料DATA2寫入快閃記憶體180時,控制器160或者快閃記憶體180將忙碌旗標設置為忙碌狀態,並且在資料DATA2寫入完畢後,控制器160或者快閃記憶體180將忙碌旗標設置為閒置狀態。在忙碌旗標被設置為閒置狀態後,控制器160將寫入確認訊號Resp_2傳送至主機120,以告知主機120寫入命令W_COMM_2之資料DATA2已被寫入快閃記憶體180中。接著,控制器160再傳送相應於寫入命令W_COMM_3之一資料傳送要求D_TRA_R3至主機120。在接收到資料傳送要求D_TRA_R3後,主機120將相應於寫入命令W_COMM_3的資料DATA3傳送至資料儲存裝置140。接著,控制器160在記憶體忙碌期間NAND_Busy_3中,將所接收之資料DATA3寫入快閃記憶體180中,其中在開始將資料DATA3寫入快閃記憶體180時,控制器160或者快閃記憶體180將忙碌旗標設置為忙碌狀態,並且 在資料DATA3寫入完畢後,控制器160或者快閃記憶體180將忙碌旗標設置為閒置狀態。在忙碌旗標被設置為閒置狀態後,控制器160將寫入確認訊號Resp_3傳送至主機120,以告知主機120寫入命令W_COMM_3之資料DATA3已被寫入快閃記憶體180中。接著,控制器160再傳送相應於寫入命令W_COMM_4之一資料傳送要求D_TRA_R4至主機120。在接收到資料傳送要求D_TRA_R4後,主機120將相應於寫入命令W_COMM_4的資料DATA4傳送至資料儲存裝置140。接著,控制器160在記憶體忙碌期間NAND_Busy_4中,將所接收之資料DATA4寫入快閃記憶體180中,其中在開始將資料DATA4寫入快閃記憶體180時,控制器160或者快閃記憶體180將忙碌旗標設置為忙碌狀態,並且在資料DATA4寫入完畢後,控制器160或者快閃記憶體180將忙碌旗標設置為閒置狀態。在忙碌旗標被設置為閒置狀態後,控制器160將寫入確認訊號Resp_4傳送至主機120,以告知主機120寫入命令W_COMM_4之資料DATA4已被寫入快閃記憶體180中。接著,控制器160再傳送相應於寫入命令W_COMM_5之一資料傳送要求D_TRA_R5至主機120。在接收到資料傳送要求D_TRA_R5後,主機120將相應於寫入命令W_COMM_5的資料DATA5傳送至資料儲存裝置140。接著,控制器160在記憶體忙碌期間NAND_Busy_5中,將所接收之資料DATA5寫入快閃記憶體180中,其中在開始將資料DATA5寫入快閃記憶體180時,控制器160或者快閃記憶體180將忙碌旗標設置為忙碌狀態,並且在資料DATA5寫入完畢後,控制器160或者快閃記憶體180將忙碌旗標設置為閒置狀態。在忙碌旗標被設置為閒置狀態後, 控制器160將寫入確認訊號Resp_5傳送至主機120,以告知主機120寫入命令W_COMM_5之資料DATA5已被寫入快閃記憶體180中。
如上所示,控制器160皆係在資料寫入快閃記憶體180後,才傳送寫入確認訊號至主機120。因此,在快取關閉模式中資料儲存裝置140具有較強的資料保護能力。然而,由於快閃記憶體180之最小寫入單位為頁面,故當寫入命令所指示之資料的資料量未滿一個頁面時,控制器160仍需要致使快閃記憶體180對一個頁面進行寫入,造成資料儲存裝置140之寫入效率降低。舉例而言,一個頁面的大小為32KB,每一資料DATA1~DATA5之大小皆為8KB。因此,每一記憶體忙碌期間記憶體忙碌期間NAND_Busy_1~NAND_Busy_5皆需要花費與寫入32KB的資料相同的時間,將8KB的資料寫入快閃記憶體180中,造成寫入效能的不理想。
有鑑於此,本發明之另一實施例基於通用快閃記憶體(UFS)規範在11.3.14.3、11.3.15.3以及11.3.16.3中之規定,提供一種在快取關閉模式中的寫入方法。
詳細而言,控制器160自主機120接收一切換訊號,並且響應於切換訊號操作於嵌入式快閃記憶體模組(eMMC)規範或者通用快閃記憶體(UFS)規範中之快取關閉模式。在快取關閉模式(cache off)中,控制器160自主機120接收複數寫入命令,並且逐一根據所接到之寫入命令自主機120接收資料。在接收資料的過程中,當該等資料中已接收到的資料尚未累積至一既定量時,紀錄已接收到的至少一資料的狀態為尚未確 認。換言之,當該等資料中已接收到的資料尚未累積至一既定量時,紀錄相應於已接收到的至少一資料的寫入確認訊號尚未被傳送至主機120。在一實施例中,資料的狀態可記錄於隨機存取記憶體166中,以特定的位元表示之,但本發明不限於此。在其他實施例中,資料的狀態亦可記錄於其他記憶體,例如快閃記憶體180等等。當該等資料中已接收到之複數第一資料累積至既定量時,將已接收到之第一資料一次寫入快閃記憶體180中,並且在所有第一資料被寫入快閃記憶體180後,傳送相應於所有第一資料之複數寫入確認訊號至主機120,其中在從第一資料中之第一者被寫入快閃記憶體180至第一資料中之最後一者被寫入快閃記憶體180的過程中,忙碌旗標皆維持在忙碌狀態。換言之,控制器160係陸續自主機120接收用以指示將複數資料寫入快閃記憶體180之複數寫入命令,並且以既定量為單位將資料集中在一個記憶體忙碌期間寫入快閃記憶體180中,並且在忙碌期間後,一次將所有在忙碌期間所寫入之資料的寫入確認訊號傳送至主機120。值得注意的是,在所接收之資料累積到既定量之前,所有已接收並且尚未寫入快閃記憶體180之資料的資料狀態皆會被記錄,以在所接收並且尚未寫入之資料累積至既定量時,協助控制器160根據所記錄的資料回傳其相應之寫入確認訊號至主機120。在一實施例中,既定量為快閃記憶體180之一寫入單位(最小寫入單位)。舉例而言,一般的快閃記憶體180的寫入單位為頁面,但本發明不限於此。在其他實施例中,既定量亦可基於快閃記憶體180寫入之規則設計,並且快閃記憶體180之寫入最小單位亦可為區塊(Block) 或者區段(sector)。
第3圖係本發明之一種實施例之資料寫入的示意圖。在第3圖中,資料儲存裝置140操作於嵌入式快閃記憶體模組(eMMC)規範或者通用快閃記憶體180(UFS)規範中之快取關閉模式。首先,主機120傳送複數寫入命令W_COMM_1~W_COMM_5至資料儲存裝置140,其中寫入命令W_COMM_1係用以指示資料儲存裝置140將資料DATA1寫入快閃記憶體180中,寫入命令W_COMM_2係用以指示資料儲存裝置140將資料DATA2寫入快閃記憶體180中,寫入命令W_COMM_3係用以指示資料儲存裝置140將資料DATA3寫入快閃記憶體180中,寫入命令W_COMM_4係用以指示資料儲存裝置140將資料DATA4寫入快閃記憶體180中,並且寫入命令W_COMM_2係用以指示資料儲存裝置140將資料DATA5寫入快閃記憶體180中。值得注意的是,在本實施例中,一個頁面的大小為32KB,每一資料DATA1~DATA5之大小皆為8KB,但本發明不限於此。在接收到寫入命令W_COMM_1~W_COMM_5後,控制器160傳送相應於寫入命令W_COMM_1之一資料傳送要求D_TRA_R1至主機120。在接收到資料傳送要求D_TRA_R1後,主機120將相應於寫入命令W_COMM_1的資料DATA1傳送至資料儲存裝置140。控制器160將所接收之資料DATA1儲存於隨機存取記憶體166中,並且判斷隨機存取記憶體166中尚未被寫入之資料DATA1是否累積至一既定量。在本實施例中,既定量為一個頁面之大小。換言之,資料DATA1的資料量8KB小於既定量32KB,故控制器160先不將資料DATA1寫入快閃記憶體 180中。接著,控制器160繼續傳送相應於寫入命令W_COMM_2之一資料傳送要求D_TRA_R2至主機120。在接收到資料傳送要求D_TRA_R2後,主機120將相應於寫入命令W_COMM_2的資料DATA2傳送至資料儲存裝置140。控制器160將所接收之資料DATA2儲存於隨機存取記憶體166中,並且判斷隨機存取記憶體166中尚未被寫入之資料DATA1~DATA2是否累積至既定量。資料DATA1~DATA2的總資料量為16KB仍小於既定量32KB,故控制器160先不將資料DATA1~DATA2寫入快閃記憶體180中。接著,控制器160繼續傳送相應於寫入命令W_COMM_3之一資料傳送要求D_TRA_R3至主機120。在接收到資料傳送要求D_TRA_R3後,主機120將相應於寫入命令W_COMM_3的資料DATA1傳送至資料儲存裝置140。控制器160將所接收之資料DATA3儲存於隨機存取記憶體166中,並且判斷隨機存取記憶體166中尚未被寫入之資料DATA1~DATA3是否累積至既定量。資料DATA1~DATA3的總資料量為24KB仍小於既定量32KB,故控制器160先不將資料DATA1~DATA3寫入快閃記憶體180中。接著,控制器160傳送相應於寫入命令W_COMM_4之一資料傳送要求D_TRA_R4至主機120。在接收到資料傳送要求D_TRA_R4後,主機120將相應於寫入命令W_COMM_4的資料DATA4傳送至資料儲存裝置140。控制器160將所接收之資料DATA4儲存於隨機存取記憶體166中,並且判斷隨機存取記憶體166中尚未被寫入之資料DATA1~DATA4是否累積至既定量。資料DATA1~DATA4的總資料量為32KB已累積至既定量32KB。因此,控制器在記憶體忙碌期間NAND_Busy_1中,將 儲存於隨機存取記憶體166中之資料DATA1~DATA4一次寫入快閃記憶體180中。值得注意的是,在開始將資料DATA1~DATA4寫入快閃記憶體180時,控制器160或者快閃記憶體180將忙碌旗標設置為忙碌狀態,並且在資料DATA1~DATA4皆寫入完畢後,控制器160或者快閃記憶體180將忙碌旗標設置為閒置狀態。在忙碌旗標被設置為閒置狀態後,控制器160將寫入確認訊號Resp_1~Resp_4傳送至主機120,以告知主機120寫入命令W_COMM_1~W_COMM_4之資料DATA1~DATA4已被寫入快閃記憶體180中。值得注意的是,在某些實施例中,已被寫入快閃記憶體180之資料會從隨機存取記憶體166中被刪除。接著,控制器160繼續傳送相應於寫入命令W_COMM_5之一資料傳送要求D_TRA_R5至主機120。在接收到資料傳送要求D_TRA_R5後,主機120將相應於寫入命令W_COMM_5的資料DATA5傳送至資料儲存裝置140。控制器160將所接收之資料DATA5儲存於隨機存取記憶體166中,並且判斷隨機存取記憶體166中尚未被寫入之資料DATA5是否累積至既定量。由於,目前隨機存取記憶體166中僅有資料DATA5之8KB的資料量需要被寫入快閃記憶體180中,故隨機存取記憶體166中尚未被寫入之資料其並未到達既定量。然而,寫入命令W_COMM_5是最後一個寫入命令。因此,控制器160在忙碌期間NAND_Busy_2中,將儲存於隨機存取記憶體166中之資料DATA5寫入快閃記憶體180中。值得注意的是,在開始將資料DATA5寫入快閃記憶體180時,控制器160或者快閃記憶體180將忙碌旗標設置為忙碌狀態,並且在資料DATA5寫入完畢後, 控制器160或者快閃記憶體180將忙碌旗標設置為閒置狀態。在忙碌旗標被設置為閒置狀態後,控制器160將寫入確認訊號Resp_5傳送至主機120,以告知主機120寫入命令W_COMM_5之資料DATA5已被寫入快閃記憶體180中。同樣的資料量以及同樣的寫入命令,資料儲存裝置140在第2圖之實施例中使用了五個記憶體忙碌期間進行寫入,在第3圖之實施例中僅使用了兩個記憶體忙碌期間進行寫入。另外,在第2圖之實施例中,資料DATA1~DATA5分散在五個不同的頁面中,並且被寫入之頁面的其他空白的空間也無法再被寫入其他資料。在第3圖之實施例中,資料DATA1~DATA4被集中堆疊在一個頁面中,而資料DATA5被儲存於另一個頁面。換言之,資料DATA1~DATA5僅使用了兩個頁面。因此,相較於第2圖之實施例,第3圖之實施利具有較快的寫入速率以及較佳的記憶體空間利用。
第4圖係本發明之一種實施例之資料寫入方法之流程圖。資料寫入方法適用於第1圖所示之資料儲存裝置140。流程開始於步驟S400。值得注意的是,在本實施立中,資料儲存裝置140操作於嵌入式快閃記憶體模組(eMMC)規範或者通用快閃記憶體180(UFS)規範中之快取關閉模式。
在步驟S400中,控制器160自主機120接收用以寫入複數資料之複數寫入命令。
接著,在步驟S402中,控制器160傳送相應於寫入命令中之一者之一資料傳送要求至主機120。舉例而言,如第3圖所示,控制器160在步驟S400中,自主機120接收寫入命令W_COMM_1~W_COMM_5,其中寫入命令W_COMM_1係用以 指示資料儲存裝置140將資料DATA1寫入快閃記憶體180中,寫入命令W_COMM_2係用以指示資料儲存裝置140將資料DATA2寫入快閃記憶體180中,寫入命令W_COMM_3係用以指示資料儲存裝置140將資料DATA3寫入快閃記憶體180中,寫入命令W_COMM_4係用以指示資料儲存裝置140將資料DATA4寫入快閃記憶體180中,並且寫入命令W_COMM_2係用以指示資料儲存裝置140將資料DATA5寫入快閃記憶體180中。接著,在步驟S402中,控制器160則在寫入命令W_COMM_1~W_COMM_5中選擇所相應之資料DATA1~DATA5尚未被傳送至資料儲存裝置140中之一者,以將所選擇之寫入命令相應的資料傳送要求傳送至主機120。
接著,在步驟S404中,控制器160自主機120接收相應於所傳送之資料傳送要求之資料,並且將所接收之資料儲存於隨機存取記憶體166中。舉例而言,如第3圖所示,當控制器160在步驟S402中傳送資料傳送要求D_TRA_R1至主機120時,控制器160則會在步驟S404中接收到資料DATA1,並且將資料DATA1儲存於隨機存取記憶體166中。
接著,在步驟S406中,控制器160判斷隨機存取記憶體166中尚未被寫入之資料是否累積至一既定量。在一實施例中,既定量為快閃記憶體180之一寫入單位(最小寫入單位)。舉例而言,一般的快閃記憶體180的寫入單位為頁面,但本發明不限於此。在其他實施例中,既定量亦可基於快閃記憶體180寫入之規則設計,並且快閃記憶體180之寫入最小單位亦可為區塊(Block)或者區段(sector)。當隨機存取記憶體166中尚未被 寫入之資料已累積至既定量時,流程進行至步驟S412;否則,流程進行至步驟S408。
在步驟S408中,控制器160判斷是否有其他寫入命令所指示之資料尚未儲存至隨機存取記憶體166中。當控制器160判斷所接收之寫入命令中之任一者所指示之資料尚未儲存至隨機存取記憶體166時,流程回到步驟S402,控制器160繼續傳送資料傳送要求至主機120以接收其他資料。當控制器160判斷所接收之寫入命令所有之資料皆儲存至隨機存取記憶體166時,流程進行至步驟S410。
在步驟S410中,控制器160判斷隨機存取記憶體166中是否具有尚未被寫入快閃記憶體180中之資料。當隨機存取記憶體166中有尚未被寫入快閃記憶體180中之資料時,流程進行至步驟S412;否則,流程結束於步驟S410。
在步驟S412中,控制器160開始將儲存於隨機存取記憶體166中之資料,寫入快閃記憶體180中。值得注意的是,在一實施例中,在開始將資料寫入快閃記憶體180時,控制器160或者快閃記憶體180會將忙碌旗標設置為忙碌狀態,並且在資料皆寫入完畢後,控制器160或者快閃記憶體180將忙碌旗標設置為閒置狀態。
接著,在步驟S414中,控制器判斷快閃記憶體180是否閒置。當快閃記憶體180已閒置時,流程進行至步驟S416;否則,控制器160繼續判斷快閃記憶體180是否已閒置。在一實施例中,控制器160係根據忙碌旗標判斷快閃記憶體是否閒置,但本發明不限於此。
在步驟S416中,控制器160將所寫入之資料所相應之寫入確認訊號傳送至主機120,以告知主機120相應之資料已被寫入快閃記憶體180中。詳細而言,如第3圖所示,控制器160在步驟S412中將資料DATA1~DATA4寫入快閃記憶體180中。接著,在步驟S416中,控制器160則傳送相應於資料DATA1~DATA4之確認訊號Resp_1~Resp_4至主機120,以告知主機120寫入命令W_COMM_1~W_COMM_4之資料DATA1~DATA4已被寫入快閃記憶體180中。又另一實施例中,如第3圖所示,控制器160在步驟S412中將資料DATA5寫入快閃記憶體180中。接著,在步驟S416中,控制器160則傳送相應於資料DATA5之確認訊號Resp_5至主機120,以告知主機120寫入命令W_COMM_5之資料DATA5已被寫入快閃記憶體180中。接著,流程回到步驟S406,控制器160繼續判斷隨機存取記憶體166中尚未被寫入之資料是否累積至既定量。
本發明所提供之資料儲存裝置以及資料寫入方法可將多筆寫入命令之資料一次寫入快閃記憶體中,以增進資料族存裝置之寫入效率。詳細而言,本發明所提供之資料儲存裝置以及資料寫入方法藉由一次性地將隨機資料寫入快閃記憶體中以減少快閃記憶體所花費的寫入時間,使得隨機資料被集中於一個頁面中而非分散於不同的頁面。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器, 如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
Claims (18)
- 一種資料儲存裝置,包括:一快閃記憶體;以及一控制器,自一主機接收用以指示將複數資料寫入該快閃記憶體之複數寫入命令,逐一根據所接到之該等寫入命令自該主機接收該等資料,其中在接收該等資料的過程中,當該等資料中已接收到至少一者尚未累積至一既定量時,紀錄已接收到的該至少一資料的狀態為尚未確認,當該等資料中已接收到之複數第一資料累積至該既定量時,將已接收到之該等第一資料寫入該快閃記憶體,並且在所有該等第一資料被寫入該快閃記憶體後,傳送相應於該等第一資料之複數寫入確認訊號至該主機。
- 根據申請專利範圍第1項之資料儲存裝置,其中該既定量為該快閃記憶體之一寫入單位。
- 根據申請專利範圍第2項之資料儲存裝置,其中該寫入單位為頁面。
- 根據申請專利範圍第1項之資料儲存裝置,其中該資料儲存裝置操作於嵌入式快閃記憶體模組(eMMC)規範或者通用快閃記憶體(UFS)規範中之一快取關閉模式(cache off)。
- 根據申請專利範圍第1項之資料儲存裝置,其中每一該等寫入確認訊號係用以告知該主機所相應之該第一資料已被寫入該快閃記憶體中。
- 一種資料儲存裝置,包括:一快閃記憶體;以及一控制器,自一主機接收一切換訊號,並且響應於該切換訊號操作於嵌入式快閃記憶體模組規範或者通用快閃記憶體規範中之一快取關閉模式,其中在該快取關閉模式中,該控制器將由複數第一寫入命令所指示之複數第一資料寫入該快閃記憶體,並且在所有該等第一資料被寫入該快閃記憶體後,傳送相應於該等第一寫入命令之複數寫入確認訊號至一主機;其中,該控制器係自該主機接收分別用以寫入複數資料之複數寫入命令,逐一根據所接收之該等寫入命令自該主機接收該等資料,並且當該等資料中已被接收之該等第一資料累積至一既定量時,將該等第一資料一次寫入該快閃記憶體中。
- 根據申請專利範圍第6項之資料儲存裝置,其中在從該等第一資料中之第一者被寫入該快閃記憶體至該等第一資料中之最後一者被寫入該快閃記憶體的過程中,用以代表該快閃記憶體是否忙碌之一忙碌旗標皆維持在一忙碌狀態。
- 根據申請專利範圍第6項之資料儲存裝置,其中該既定量為該快閃記憶體之一寫入單位,並且該寫入單位為頁面。
- 根據申請專利範圍第6項之資料儲存裝置,其中每一該等寫入確認訊號係用以告知該主機所相應之該第一寫入命令之該第一資料已被寫入該快閃記憶體中。
- 一種資料寫入方法,適用於具有一快閃記憶體之一資料儲存裝置,包括:自一主機接收用以指示將複數資料寫入該快閃記憶體之複數寫入命令;逐一根據所接到之該等寫入命令自該主機接收該等資料;當該等資料中已接收到的資料尚未累積至一既定量時,紀錄已接收到的該至少一資料的狀態為尚未確認;當該等資料中已接收到之複數第一資料累積至該既定量時,將已接收到之該等第一資料寫入該快閃記憶體;以及在所有該等第一資料被寫入該快閃記憶體後,傳送相應於該等第一資料之複數寫入確認訊號至該主機。
- 根據申請專利範圍第10項之資料寫入方法,其中該既定量為該快閃記憶體之一寫入單位。
- 根據申請專利範圍第11項之資料寫入方法,其中該寫入單位為頁面。
- 根據申請專利範圍第10項之資料寫入方法,其中該資料儲存裝置操作於嵌入式快閃記憶體模組規範或者通用快閃記憶體規範中之一快取關閉模式。
- 根據申請專利範圍第10項之資料寫入方法,其中每一該等寫入確認訊號係用以告知該主機所相應之該第一資料已被寫入該快閃記憶體中。
- 一種資料寫入方法,適用於具有一快閃記憶體之一資料儲存裝置,包括:自一主機接收一切換訊號,並且響應於該切換訊號操作於嵌入式快閃記憶體模組規範或者通用快閃記憶體規範中之一快取關閉模式,其中在該快取關閉模式中該資料寫入方法更包括:將由複數第一寫入命令所指示之複數第一資料寫入該快閃記憶體;以及在所有該等第一資料被寫入該快閃記憶體後,傳送相應於該等第一寫入命令之複數寫入確認訊號至一主機;其中,該將由該等第一寫入命令所指示之該等第一資料寫入該快閃記憶體之步驟更包括:自該主機接收分別用以寫入複數資料之複數寫入命令;逐一根據所接收之該等寫入命令自該主機接收該等資料;以及當該等資料中已被接收之該等第一資料累積至一既定量時,將該等第一資料一次寫入該快閃記憶體中。
- 根據申請專利範圍第15項之資料寫入方法,其中在從該等第一資料中之第一者被寫入該快閃記憶體至該等第一資料中之最後一者被寫入該快閃記憶體的過程中,用以代表該快閃記憶體是否忙碌之一忙碌旗標皆維持在一忙碌狀態。
- 根據申請專利範圍第15項之資料寫入方法,其中該既定量為該快閃記憶體之一寫入單位,並且該寫入單位為頁面。
- 根據申請專利範圍第15項之資料寫入方法,其中每一該等寫入確認訊號係用以告知該主機所相應之該第一寫入命令之該第一資料已被寫入該快閃記憶體中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105130573A TWI661352B (zh) | 2016-09-22 | 2016-09-22 | 資料儲存裝置及其資料寫入方法 |
CN201610948265.3A CN107870738A (zh) | 2016-09-22 | 2016-10-26 | 数据储存装置及其数据写入方法 |
US15/694,416 US20180081796A1 (en) | 2016-09-22 | 2017-09-01 | Data Storage Device and Data Writing Method Thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105130573A TWI661352B (zh) | 2016-09-22 | 2016-09-22 | 資料儲存裝置及其資料寫入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201814488A TW201814488A (zh) | 2018-04-16 |
TWI661352B true TWI661352B (zh) | 2019-06-01 |
Family
ID=61620568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105130573A TWI661352B (zh) | 2016-09-22 | 2016-09-22 | 資料儲存裝置及其資料寫入方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20180081796A1 (zh) |
CN (1) | CN107870738A (zh) |
TW (1) | TWI661352B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI704456B (zh) * | 2018-11-22 | 2020-09-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料存取方法 |
CN112965669B (zh) * | 2021-04-02 | 2022-11-22 | 杭州华澜微电子股份有限公司 | 一种数据存储系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201303594A (zh) * | 2011-07-14 | 2013-01-16 | Lsi Corp | 快閃記憶體介質控制器及裝置 |
TWI494757B (zh) * | 2011-09-16 | 2015-08-01 | Toshiba Kk | Memory device |
TWI522792B (zh) * | 2013-02-28 | 2016-02-21 | 英特爾公司 | 用以產生要求之設備、用於記憶體要求之方法、及運算系統 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5664231A (en) * | 1994-04-29 | 1997-09-02 | Tps Electronics | PCMCIA interface card for coupling input devices such as barcode scanning engines to personal digital assistants and palmtop computers |
US6839801B2 (en) * | 2003-01-06 | 2005-01-04 | International Business Machines Corporation | Deferred writing of data to be synchronized on magnetic tape employing a non-volatile store |
JP4418439B2 (ja) * | 2006-03-07 | 2010-02-17 | パナソニック株式会社 | 不揮発性記憶装置およびそのデータ書込み方法 |
JP2012063871A (ja) * | 2010-09-14 | 2012-03-29 | Univ Of Tokyo | 制御装置およびデータ記憶装置 |
US9892798B2 (en) * | 2012-09-11 | 2018-02-13 | Seagate Technology Llc | Data protection for unexpected power loss |
KR101919903B1 (ko) * | 2012-09-14 | 2018-11-19 | 삼성전자 주식회사 | 임베디드 멀티미디어 카드, 이를 제어하는 호스트, 및 이들의 동작 방법 |
KR102025240B1 (ko) * | 2013-04-01 | 2019-11-04 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102181210B1 (ko) * | 2014-01-10 | 2020-11-23 | 삼성전자주식회사 | 저장 장치의 데이터 처리 방법 및 저장 장치 |
TWI498732B (zh) * | 2014-02-20 | 2015-09-01 | Phison Electronics Corp | 資料傳輸方法、記憶體控制電路單元與記憶體儲存裝置 |
US9436397B2 (en) * | 2014-09-23 | 2016-09-06 | Sandisk Technologies Llc. | Validating the status of memory operations |
US9626112B2 (en) * | 2014-12-08 | 2017-04-18 | Symbol Technologies, Llc | eMMC functionality expander |
-
2016
- 2016-09-22 TW TW105130573A patent/TWI661352B/zh active
- 2016-10-26 CN CN201610948265.3A patent/CN107870738A/zh active Pending
-
2017
- 2017-09-01 US US15/694,416 patent/US20180081796A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201303594A (zh) * | 2011-07-14 | 2013-01-16 | Lsi Corp | 快閃記憶體介質控制器及裝置 |
TWI494757B (zh) * | 2011-09-16 | 2015-08-01 | Toshiba Kk | Memory device |
TWI522792B (zh) * | 2013-02-28 | 2016-02-21 | 英特爾公司 | 用以產生要求之設備、用於記憶體要求之方法、及運算系統 |
Also Published As
Publication number | Publication date |
---|---|
TW201814488A (zh) | 2018-04-16 |
US20180081796A1 (en) | 2018-03-22 |
CN107870738A (zh) | 2018-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102187637B1 (ko) | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 소거 방법 | |
TWI409633B (zh) | 快閃記憶體儲存裝置、其控制器與資料寫入方法 | |
KR101702392B1 (ko) | 반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법 | |
US9720820B2 (en) | Data storage device and flash memory control method | |
CN110032333B (zh) | 存储器系统及其操作方法 | |
KR102413755B1 (ko) | 리텐션 특성에 의한 성능 저하를 복구하는 저장 장치의 동작 방법 및 이를 포함하는 데이터 처리 시스템의 동작 방법 | |
US9324435B2 (en) | Data transmitting method, memory control circuit unit and memory storage apparatus | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US20150098271A1 (en) | System and method of storing data in a data storage device | |
CN109697027B (zh) | 包括共享存储器区域和专用存储器区域的数据存储设备 | |
US20120131263A1 (en) | Memory storage device, memory controller thereof, and method for responding host command | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
CN111045593B (zh) | 用来进行读取加速的方法以及数据存储装置及其控制器 | |
CN102096647A (zh) | 多芯片存储器系统和相关的数据传送方法 | |
KR102392844B1 (ko) | 메모리 컨트롤러 및 그것을 포함하는 저장 장치 | |
KR102717019B1 (ko) | 메모리 컨트롤러 및 그것의 동작 방법 | |
KR102456104B1 (ko) | 데이터 신뢰성에 따라 동작 조건을 변경하는 저장 장치의 동작 방법 | |
CN111580744B (zh) | 存储器控制器及其操作方法 | |
JP2016522513A (ja) | オンデマンドブロック管理 | |
JP4267682B1 (ja) | Nandフラッシュメモリのリフレッシュ方法 | |
US9804983B2 (en) | Controlling method, connector, and memory storage device | |
TWI425515B (zh) | 資料儲存裝置及快閃記憶體之資料寫入方法 | |
TWI661352B (zh) | 資料儲存裝置及其資料寫入方法 | |
US9152348B2 (en) | Data transmitting method, memory controller and data transmitting system | |
JP5447617B2 (ja) | フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリ制御方法 |