TWI486966B - 快閃記憶體儲存裝置、其控制器與寫入管理方法 - Google Patents
快閃記憶體儲存裝置、其控制器與寫入管理方法 Download PDFInfo
- Publication number
- TWI486966B TWI486966B TW099103360A TW99103360A TWI486966B TW I486966 B TWI486966 B TW I486966B TW 099103360 A TW099103360 A TW 099103360A TW 99103360 A TW99103360 A TW 99103360A TW I486966 B TWI486966 B TW I486966B
- Authority
- TW
- Taiwan
- Prior art keywords
- flash memory
- thread
- write
- memory chip
- unit
- Prior art date
Links
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Description
本發明是有關於一種快閃記憶體的應用,且特別是有關於一種管理快閃記憶體之寫入操作的方法以及使用此方法的快閃記憶體控制器與快閃記憶體儲存裝置。
一般來說,快閃記憶體儲存裝置中的快閃記憶體晶片(chip)會被劃分為多個實體區塊(block),而每個實體區塊更被劃分為多個實體頁面(page)。其中,實體區塊是快閃記憶體的最小抹除(erase)單位,實體頁面則是快閃記憶體的最小寫入(program)單位。
由於在對快閃記憶體的記憶胞進行程式化時,僅能將記憶胞的值由1程式化為0,因此無法將資料直接寫入已被程式化過的實體頁面。換句話說,必須先將已儲存有資料的頁面抹除之後才可重新程式化該頁面。然而,正因快閃記憶體的抹除是以實體區塊為單位,故在需要對存有舊資料的實體頁面執行抹除運作時,必須將此實體頁面所屬的整個實體區塊進行抹除。
基於快閃記憶體係以實體頁面作為寫入單元,並以實體區塊作為抹除單元的這項特性,快閃記憶體晶片中的實體區塊大致上會被區分為資料區(data area)與備用區(spare area)。其中,屬於資料區的實體區塊是已被用來儲存資料的實體區塊,而屬於備用區的實體區塊則是未被使用的實體區塊。當主機欲將資料寫入至快閃記憶體儲存
裝置時,快閃記憶體儲存裝置的控制電路會從備用區中提取實體區塊來寫入資料,並且將所提取的實體區塊關聯至資料區。並且,在將對資料區的實體區塊執行抹除運作之後,將已抹除的實體區塊關聯至備用區。
本發明提供一種快閃記憶體之寫入管理方法,用以確保寫入指令能在規定的時限內完成。
本發明提供一種快閃記憶體儲存裝置,其所執行的快閃記憶體之寫入管理方法能確保寫入指令可在規定的時限內完成。
本發明提供一種快閃記憶體控制器,其所執行的快閃記憶體之寫入管理方法能確保寫入指令能在規定的時限內完成。
本發明提出一種快閃記憶體之寫入管理方法,用於至少存在第一執行緒與第二執行緒的快閃記憶體儲存裝置,此快閃記憶體儲存裝置包括快閃記憶體晶片。此方法包括定義預設寫入單位,接收第一寫入指令。此方法還包括當判斷負責執行第一寫入指令的是第一執行緒時,將快閃記憶體晶片的控制權分配至第一執行緒。在第一執行緒完成預設寫入單位的資料寫入動作後,令第一執行緒釋放快閃記憶體晶片的控制權。
在本發明之一範例實施例中,其中在分配快閃記憶體晶片的控制權至第一執行緒的步驟之後,此方法更包括若在第一執行緒進行預設寫入單位之資料寫入動作的期間,
接收到需由第二執行緒負責執行的第二寫入指令,則在第一執行緒釋放快閃記憶體晶片的控制權後,將快閃記憶體晶片的控制權分配至第二執行緒。在第二執行緒將第二寫入指令所對應的第二寫入資料寫入至快閃記憶體晶片後,令第二執行緒釋放快閃記憶體晶片的控制權。
在本發明之一範例實施例中,其中在令第二執行緒釋放快閃記憶體晶片之控制權的步驟之後,此方法更包括判斷第一執行緒是否已完成第一寫入指令所對應之第一寫入資料的寫入動作。若否,則將快閃記憶體晶片的控制權分配至第一執行緒,在第一執行緒完成預設寫入單位的資料寫入動作後,令第一執行緒釋放快閃記憶體晶片的控制權。
在本發明之一範例實施例中,其中在分配快閃記憶體晶片的控制權至第一執行緒的步驟之後,此方法更包括若在第一執行緒進行預設寫入單位之資料寫入動作的期間,未接收到其他寫入指令,則在第一執行緒釋放快閃記憶體晶片的控制權後,判斷第一執行緒是否已完成第一寫入指令所對應之第一寫入資料的寫入動作。若否,則將快閃記憶體晶片的控制權分配至第一執行緒,並在第一執行緒完成預設寫入單位的資料寫入動作後,令第一執行緒釋放快閃記憶體晶片的控制權。
在本發明之一範例實施例中,其中第一執行緒用以執行智慧卡(smart card)應用程式。此方法更包括在第一寫入指令為應用程式協定資料單元(Application Protocol Data Unit,APDU)指令時,判定負責執行第一寫入指令
的是第一執行緒。
在本發明之一範例實施例中,其中第二執行緒用以執行安全數位(Secure Digital,SD)卡讀寫應用程式。
在本發明之一範例實施例中,其中預設寫入單位所包括的實體頁面數量小於快閃記憶體晶片中實體區塊所包括的實體頁面數量。
從另一個觀點來看,本發明提出一種快閃記憶體儲存裝置。其中,至少有第一執行緒與第二執行緒存在於此快閃記憶體儲存裝置。此快閃記憶體儲存裝置包括快閃記憶體晶片、連接器,以及快閃記憶體控制器。連接器係用以耦接主機,並接收主機下達的寫入指令。快閃記憶體控制器耦接至快閃記憶體晶片與連接器,用以定義預設寫入單位。其中,在連接器接收到主機下達的第一寫入指令後,快閃記憶體控制器在判斷負責執行第一寫入指令的是第一執行緒時,將快閃記憶體晶片的控制權分配至第一執行緒,並在第一執行緒完成預設寫入單位的資料寫入動作後,令第一執行緒釋放該快閃記憶體晶片的控制權。
在本發明之一範例實施例中,其中若在第一執行緒進行預設寫入單位之資料寫入動作的期間,連接器接收到主機下達且需由第二執行緒負責執行的第二寫入指令,快閃記憶體控制器在第一執行緒釋放快閃記憶體晶片的控制權後,將快閃記憶體晶片的控制權分配至第二執行緒,並在第二執行緒將第二寫入指令所對應的第二寫入資料寫入至快閃記憶體晶片後,令第二執行緒釋放快閃記憶體晶片的
控制權。
在本發明之一範例實施例中,其中在令第二執行緒釋放快閃記憶體晶片之控制權後,快閃記憶體控制器在判斷第一執行緒尚未完成第一寫入指令所對應之第一寫入資料的寫入動作時,將快閃記憶體晶片的控制權分配至第一執行緒,並在第一執行緒完成預設寫入單位的資料寫入動作後,令第一執行緒釋放快閃記憶體晶片的控制權。
在本發明之一範例實施例中,其中在分配快閃記憶體晶片的控制權至第一執行緒後,若在第一執行緒進行預設寫入單位之資料寫入動作的期間,連接器未接收到主機下達的其他寫入指令,快閃記憶體控制器在第一執行緒釋放快閃記憶體晶片的控制權後,判斷第一執行緒是否已完成第一寫入指令所對應之第一寫入資料的寫入動作。若第一執行緒尚未完成第一寫入資料的寫入動作,快閃記憶體控制器將快閃記憶體晶片的控制權分配至第一執行緒,並在第一執行緒完成預設寫入單位的資料寫入動作後,令第一執行緒釋放快閃記憶體晶片的控制權。
在本發明之一範例實施例中,其中第一執行緒用以執行智慧卡應用程式,快閃記憶體控制器在第一寫入指令為應用程式協定資料單元指令時,判定負責執行第一寫入指令的是第一執行緒。
在本發明之一範例實施例中,其中第二執行緒用以執行安全數位卡讀寫應用程式。
在本發明之一範例實施例中,其中預設寫入單位所包
括的實體頁面數量小於快閃記憶體晶片中實體區塊所包括的實體頁面數量。
從又一觀點來看,本發明提出一種快閃記憶體控制器,配置於耦接至主機的快閃記憶體儲存裝置中。此快閃記憶體儲存裝置至少存在第一執行緒與第二執行緒,並包括快閃記憶體晶片。快閃記憶體控制器包括微處理器單元、快閃記憶體晶片介面單元、主機介面單元以及資源分配單元。快閃記憶體晶片介面單元耦接至微處理器單元,用以耦接至快閃記憶體晶片。主機介面單元耦接至微處理器單元,用以耦接至主機。資源分配單元耦接至微處理器單元,用以定義預設寫入單位。其中,主機介面單元接收主機下達的第一寫入指令,資源分配單元在判斷負責執行第一寫入指令的是第一執行緒時,將快閃記憶體晶片的控制權分配至第一執行緒,並在第一執行緒完成預設寫入單位的資料寫入動作後,令第一執行緒釋放快閃記憶體晶片的控制權。
基於上述,對於同時具有智慧卡應用程式以及安全數位卡讀寫應用程式這兩種執行緒的快閃記憶體儲存裝置來說,本發明使得智慧卡應用程式對快閃記憶體晶片進行的資料寫入動作可被安全數位卡讀寫應用程式中斷。據此,確保安全數位卡讀寫應用程式在執行來自主機的寫入指令時,不會超過安全數位卡規範所定義的寫入指令完成時限。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖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、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖1D是繪示圖1A所示的快閃記憶體儲存裝置100的方塊圖。請參照圖1D,快閃記憶體儲存裝置100包括連接器102、快閃記憶體控制器104與快閃記憶體晶片106。
連接器102耦接至快閃記憶體控制器104並且用以耦接至主機系統1000。在本範例實施例中,連接器102所支援的傳輸介面種類為安全數位介面。然而在其他範例實施例中,連接器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)介面等任何適用的介面,在此並
不加以限制。
快閃記憶體晶片106係用以儲存如檔案配置表(File Allocation Table,FAT),增強型文件系統(New Technology File System,NTFS)等檔案系統資訊,以及儲存如影音檔案、文字檔等一般性資料。
快閃記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並根據主機系統1000的指令在快閃記憶體晶片106中進行資料的寫入、讀取與抹除等運作。快閃記憶體控制器104包括主機介面單元1042、微處理器單元1044、資源分配單元1046,以及快閃記憶體晶片介面單元1048。
主機介面單元1042用以透過連接器102來耦接至主機系統1000。在本範例實施例中,主機介面單元1042具有SD介面,而在其他範例實施例中,主機介面單元1042也可以是符合MMC介面、SATA介面、PATA介面、IEEE 1394介面、PCI Express介面、USB介面、MS介面、CF介面、IDE介面或其他介面標準的介面單元。
快閃記憶體晶片介面單元1048係用以使快閃記憶體控制器104耦接至快閃記憶體晶片106。據以讓快閃記憶體控制器104對快閃記憶體晶片106進行相關運作。
如圖1D所示,主機介面單元1042、資源分配單元1046以及快閃記憶體晶片介面單元1048均耦接至微處理器單元1044,而微處理器單元1044是快閃記憶體控制器104的主控單元,用以和主機介面單元1042、快閃記憶體晶片
介面單元1048以及資源分配單元1046等元件協同合作,以進行快閃記憶體晶片106的各種運作。
資源分配單元1046用以在快閃記憶體儲存裝置100耦接至主機系統1000時分配快閃記憶體晶片106的讀寫控制權。而資源分配單元1046的詳細運作方式將於以下再作詳細說明。
在本範例實施例中,資源分配單元1046例如是即時作業系統(Real Time Operation System,RTOS)。在另一範例實施例中,資源分配單元1046也能以韌體形式實作於快閃記憶體控制器104。例如,將包括多個控制指令的資源分配單元1046燒錄至一程式記憶體(例如唯讀記憶體(Read Only Memory,ROM)),並且將此程式記憶體嵌入在快閃記憶體控制器104。在快閃記憶體儲存裝置100運作時,微處理器單元1044將執行資源分配單元1046的多個控制指令,據以完成快閃記憶體晶片106的讀寫控制權分配機制。
在本發明的另一範例實施例中,快閃記憶體儲存裝置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的電源。
在本範例實施例中,至少有第一執行緒與第二執行緒同時存在於快閃記憶體儲存裝置100(如圖3所示之第一執行緒310與第二執行緒320)。亦即,記憶體儲存裝置100係採用多執行緒架構。第一執行緒310與第二執行緒320均可透過快閃記憶體晶片介面單元1048來讀寫快閃記憶體晶片106。舉例而言,本範例實施例之快閃記憶體晶片106至少被劃分為第一分割區106A與第二分割區106B,其中第一執行緒310係負責管理第一分割區106A,
第二執行緒320則負責管理第二分割區106B,唯有用以管理該分割區的執行緒才能對該分割區進行資料的讀寫動作。值得一提的是,第一執行緒310與第二執行緒320個別具有不同的快閃記憶體管理規則,因此在接收來自主機系統1000的寫入指令後,第一執行緒310與第二執行緒320所採取之邏輯區塊與實體區塊間的轉換規則也可以不同。
由於第一執行緒310與第二執行緒320都必須透過快閃記憶體晶片介面單元1048來讀寫快閃記憶體晶片106,因此需要資源分配單元1046對快閃記憶體晶片106的控制權進行管理與分配,以確保第一執行緒310與第二執行緒320均有機會存取快閃記憶體晶片106。
在本範例實施例中,資源分配單元1046定義有一預設寫入單位,此預設寫入單位所包括的實體頁面數量小於快閃記憶體晶片106中實體區塊所包括的實體頁面數量。例如,預設寫入單位可以是一個實體頁面。在第一執行緒310已取得快閃記憶體晶片106之控制權的情況下,資源分配單元1046會在第一執行緒310每次完成預設寫入單位的資料寫入動作後,決定下一個能取得快閃記憶體晶片106控制權的是哪個執行緒。
具體來說,在主機介面單元1042接收主機系統1000下達的第一寫入指令後,微處理器單元1044可根據第一寫入指令的種類、內容或欲寫入資料之邏輯位址來判斷負責執行第一寫入指令的是哪個執行緒。當判斷負責執行第一
寫入指令的是第一執行緒310時,微處理器單元1044將第一寫入指令傳送至第一執行緒310,同時資源分配單元1046將快閃記憶體晶片106的控制權分配至第一執行緒310。此時,第一執行緒310可透過快閃記憶體晶片介面單元1048將資料寫入快閃記憶體晶片106的第一分割區106A。然而無論第一寫入指令所對應的第一寫入資料是否已被完整地寫入至快閃記憶體晶片106,一旦第一執行緒310完成預設寫入單位的資料寫入動作,資源分配單元1046便會令第一執行緒310釋放快閃記憶體晶片106的控制權。
接著,資源分配單元1046決定是否要將能存取快閃記憶體晶片106的權力轉交至第二執行緒320,或者是將快閃記憶體晶片106的控制權再次分配給第一執行緒310。
倘若在第一執行緒310進行預設寫入單位之資料寫入動作的期間,主機介面單元1042接收到主機系統1000下達且需由第二執行緒320負責執行的第二寫入指令,資源分配單元1046會在第一執行緒310釋放快閃記憶體晶片106的控制權後,將快閃記憶體晶片106的控制權分配至第二執行緒320。此時第二執行緒320可透過快閃記憶體晶片介面單元1048將資料寫入快閃記憶體晶片106的第二分割區106B。待第二執行緒320將第二寫入指令所對應的第二寫入資料寫入至快閃記憶體晶片106後,資源分配單元1046才令第二執行緒320釋放快閃記憶體晶片106的控制權。爾後,若判斷第一執行緒310尚未完成第一寫入指
令所對應之第一寫入資料的寫入動作,資源分配單元1046將快閃記憶體晶片106的控制權再次分配給第一執行緒310。同樣地,一旦第一執行緒310完成預設寫入單位的資料寫入動作,資源分配單元1046便令第一執行緒310釋放快閃記憶體晶片106的控制權。
倘若在第一執行緒310進行預設寫入單位之資料寫入動作的期間,主機介面單元1042並未接收到主機系統1000下達的其他寫入指令,資源分配單元1046則會在第一執行緒310釋放快閃記憶體晶片106的控制權後,判斷第一執行緒310是否已完成第一寫入指令所對應之第一寫入資料的寫入動作。若否,資源分配單元1046將快閃記憶體晶片106的控制權重新分配給第一執行緒310。而在第一執行緒310完成預設寫入單位的資料寫入動作後,資源分配單元1046令第一執行緒310釋放快閃記憶體晶片106的控制權。
如上所述,第一執行緒310一次只會寫入符合預設寫入單位大小的資料,隨後便釋放快閃記憶體晶片106的控制權,並由資源分配單元1046判斷接著能存取快閃記憶體晶片106的是哪個執行緒。若在第一執行緒310進行預設寫入單位之資料寫入動作的期間,快閃記憶體儲存裝置100接獲主機系統1000下達的另一寫入指令,且該寫入指令需由第二執行緒320負責執行,由於第二執行緒320具有較高的快閃記憶體晶片106使用優先權,因此即便第一執行緒310尚未完成其所接收之寫入指令的動作(亦即,
此時第一執行緒310與第二執行緒320都需要將資料寫入快閃記憶體晶片106),資源分配單元1046仍會將快閃記憶體晶片106的控制權交付給第二執行緒320。
也因為第一執行緒310的寫入動作可被第二執行緒320中斷,因此在第一執行緒310負責的寫入指令尚未完成之前,需使用至少兩個實體區塊來記錄處理中的資料。
詳細地說,假設預設寫入單位為一個實體頁面。在接獲需由第一執行緒310負責執行的第一寫入指令後,若第一寫入指令所欲寫入的實體區塊A中第0至2個實體頁面已儲存有資料,且第一寫入指令是要更新第2個頁面的內容。在第一執行緒310取得快閃記憶體晶片106的控制權後,如圖4A所示,需自快閃記憶體晶片106的備用區提取一個新的實體區塊B,並將位於實體區塊A之頁面A(0)中的資料寫入實體區塊B的頁面B(0),隨後釋放快閃記憶體晶片106的控制權。
若第一執行緒310在將位於實體區塊A之頁面A(0)的資料寫入實體區塊B之頁面B(0)的過程中,快閃記憶體儲存裝置100並未接獲主機系統1000傳來的其他寫入指令,由於第一寫入指令的動作尚未完成,因此資源分配單元1046再度將快閃記憶體晶片106的控制權分配給第一執行緒310。接下來如圖4B所示,第一執行緒310將位於實體區塊A之頁面A(1)中的資料寫入實體區塊B之頁面B(1),隨後釋放快閃記憶體晶片106的控制權。
倘若在第一執行緒310將位於實體區塊A之頁面A(1)
的資料寫入實體區塊B之頁面B(1)的過程中,快閃記憶體儲存裝置100接獲需由第二執行緒320負責執行的第二寫入指令,那麼在第一執行緒310釋放快閃記憶體晶片106的控制權後,快閃記憶體晶片106的控制權會被轉移至第二執行緒320。待第二執行緒320完成第二寫入指令,資源分配單元1046才令第二執行緒320釋放快閃記憶體晶片106的控制權。
此時由於第一寫入指令尚未完成,因此資源分配單元1046接著將快閃記憶體晶片106的控制權交付給第一執行緒310。如圖4C所示,第一執行緒310在將欲更新的新資料寫入至實體區塊B之頁面B(2)後,第一寫入指令便已完成。由於第一執行緒310一次只做一個頁面的資料寫入動作,因此必需等待完成第一寫入指令之後,才能抹除實體區塊A中的舊資料,並將實體區塊A邏輯地關聯為備用區。
此外,在另一範例實施例中一旦微處理器單元1044將需由第一執行緒310負責的工作指令(如寫入、讀出或抹除資料)交由第一執行緒310執行,無論該工作指令是否完成,在主機系統1000詢問時,快閃記憶體控制器104都將回應主機系統1000接收到工作指令的回覆訊息,爾後在第一執行緒310完成工作指令時不再另外產生其他回覆訊息。然而,針對需由第二執行緒320負責執行的工作指令(如寫入、讀出或抹除資料),則必須在第二執行緒320完全地完成該工作指令後(例如完成寫入指令的資料寫入動作),待主機系統1000發出詢問時才回應主機系統1000
已完成工作的回覆訊息。
此外,在又一範例實施例中,第一或第二執行緒可在接收到工作指令後,主動回覆主機系統1000已接收到一工作指令,且第一或第二執行緒亦可在完成工作指令後,主動回覆主機系統1000該工作已完成。
圖5是根據本發明之一範例實施例所繪示快閃記憶體之寫入管理方法的流程圖。
請參閱圖5,在步驟510中,快閃記憶體儲存裝置100接收來自主機系統1000的第一寫入指令。如步驟520所示,當判斷負責執行第一寫入指令的是第一執行緒310時,快閃記憶體控制器104中的資源分配單元1046將快閃記憶體晶片106的控制權分配給第一執行緒310。
在步驟530中,資源分配單元1046判斷第一執行緒310是否已完成預設寫入單位的資料寫入動作。若是,則在步驟540中,資源分配單元1046令第一執行緒310釋放快閃記憶體晶片106的控制權。
接著在步驟550中,資源分配單元1046判斷在第一執行緒310進行預設寫入單位之資料寫入動作的期間,快閃記憶體儲存裝置100是否接收到主機系統1000下達且需由第二執行緒320負責執行的第二寫入指令。
若在第一執行緒310進行預設寫入單位之資料寫入動作的期間,快閃記憶體儲存裝置100並未接收需由第二執行緒320負責執行的第二寫入指令,則本範例實施例所述之流程將進入步驟580。
若在第一執行緒310進行預設寫入單位之資料寫入動作的期間,快閃記憶體儲存裝置100有接收到需由第二執行緒320負責執行的第二寫入指令,則在步驟560中,資源分配單元1046將快閃記憶體晶片106的控制權分配給第二執行緒320,並如步驟570所示,在第二執行緒320將第二寫入指令所對應的第二寫入資料寫入至快閃記憶體晶片106後,資源分配單元1046令第二執行緒320釋放快閃記憶體晶片106的控制權,接著進入步驟580。
在步驟580中,資源分配單元1046判斷第一執行緒310是否已完成第一寫入指令所對應之第一寫入資料的寫入動作。若是,則完成此快閃記憶體之寫入管理方法的流程。若否,則如步驟590所示,資源分配單元1046將快閃記憶體晶片106的控制權分配給第一執行緒310。接下來此快閃記憶體之寫入管理方法的流程將回到步驟530,並反覆執行步驟530至步驟590直到第一執行緒310完成第一寫入指令為止。
圖6是根據本發明又一範例實施例所繪示的快閃記憶體儲存裝置的概要方塊圖。請參閱圖6,快閃記憶體儲存裝置600與圖1D所示之快閃記憶體儲存裝置100相似,差別在於快閃記憶體儲存裝置600的快閃記憶體控制器604中,除了主機介面單元1042、微處理器單元1044、資源分配單元1046,以及快閃記憶體晶片介面單元1048之外,還包括智慧卡晶片介面單元6041。且快閃記憶體控制器604除了藉由快閃記憶體晶片介面單元1048耦接快閃記
憶體晶片106之外,另外透過智慧卡晶片介面單元6041耦接至智慧卡晶片607。
在本範例實施例中,智慧卡晶片介面單元6041符合ISO 7816規範。快閃記憶體儲存裝置600至少同時存在第一執行緒與第二執行緒。其中,第一執行緒係用以執行針對特定目的所開發的應用程式,例如智慧卡(smart card)應用程式,而第二執行緒用以執行安全數位卡(Secure Digital Card)讀寫應用程式。一般來說,智慧卡應用程式的資料存取量會小於安全數位卡讀寫應用程式,且智慧卡應用程式的存取速度也較慢。
智慧卡應用程式係用以和智慧卡晶片607溝通,同時也能存取快閃記憶體晶片106中的資料。安全數位卡讀寫應用程式則是用以存取快閃記憶體晶片106中的資料。其中,安全數位卡讀寫應用程式具有較高的快閃記憶體晶片106使用優先權。
若主機介面單元1042所接收之第一寫入指令欲更新快閃記憶體晶片106中的資料,微處理器單元1044在第一寫入指令為應用程式協定資料單元(Application Protocol Data Unit,APDU)指令時,判定負責執行第一寫入指令的是智慧卡應用程式,並將第一寫入指令傳至智慧卡應用程式。資源分配單元1046亦會將快閃記憶體晶片106的控制權分配給智慧卡應用程式。
由於智慧卡應用程式一次只能執行預設寫入單位(本範例實施例假設預設寫入單位為一個實體頁面)的資料寫
入動作。在完成預設寫入單位的資料寫入動作後,便必須釋放快閃記憶體晶片106的控制權。倘若在智慧卡應用程式完成預設寫入單位之資料寫入動作的期間,主機系統1000下達了需由安全數位卡讀寫應用程式執行的第二寫入指令,接下來便會由安全數位卡讀寫應用程式取得快閃記憶體晶片106的控制權。由於快閃記憶體儲存裝置600的詳細運作方式與快閃記憶體儲存裝置100相同或相似,故在此不再贅述。
在此範例實施例中,假設在快閃記憶體晶片106中每個實體區塊包括128個實體頁面,而每個實體頁面大小為4K位元組(byte)。那麼在寫入指令會伴隨合併(merge)實體區塊的情況下,完成該寫入指令所需要的時間大約為150毫秒(ms)。其中,一個頁面的平均讀寫時間約為1.15ms。
目前,在安全數位卡的規範中,已規定每個寫入指令的完成時間都必須小於250ms。在本範例實施例中,由於智慧卡應用程式一次只能執行一個實體頁面的資料寫入動作(亦即,實體區塊的合併動作需分次完成),即便是在智慧卡應用程式正在寫資料時,快閃記憶體儲存裝置600接收到需由安全數位卡讀寫應用程式負責的第二寫入指令且執行第二寫入指令需合併實體區塊,安全數位卡讀寫應用程式完成第二寫入指令的時間也不會超過安全數位卡規範所定義的250ms。詳細地說,安全數位卡讀寫應用程式完成第二寫入指令的時間是智慧卡應用程式寫入一個實體
頁面之資料的時間與安全數位卡讀寫應用程式將第二寫入指令所對應之第二寫入資料寫入至快閃記憶體晶片106的時間的總和。其中,安全數位卡讀寫應用程式將第二寫入資料寫入至快閃記憶體晶片106的時間最多不超過150ms。
必需特別說明的是,在上述範例實施例中雖然是以同時存在兩個執行緒的快閃記憶體儲存裝置來對本發明進行說明,然而在本發明的其他範例實施例中,快閃記憶體儲存裝置也可同時存在兩個以上的執行緒,在此並不對執行緒的種類與數量加以限制。
綜上所述,本發明所述之快閃記憶體儲存裝置、其控制器與寫入管理方法適用於同時存在至少兩個執行緒的快閃記憶體儲存裝置。本發明令其中之一特定執行緒每完成預設寫入單位的資料寫入動作後便釋放快閃記憶體晶片的控制權,進而讓其他執行緒有機會獲得快閃記憶體晶片的控制權,以減少等待特定執行緒完成寫入動作的時間。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100、600‧‧‧快閃記憶體儲存裝置
102‧‧‧連接器
104、104’、604‧‧‧快閃記憶體控制器
1042‧‧‧主機介面單元
1044‧‧‧微處理器單元
1046‧‧‧資源分配單元
1048‧‧‧快閃記憶體晶片介面單元
106‧‧‧快閃記憶體晶片
2002‧‧‧緩衝記憶體
2004‧‧‧錯誤校正單元
2006‧‧‧電源管理單元
310‧‧‧第一執行緒
320‧‧‧第二執行緒
A(0)、A(1)、A(2)、B(0)、B(1)、B(2)‧‧‧頁面
510~590‧‧‧本發明之一範例實施例所述之快閃記憶體之寫入管理方法的各步驟
6041‧‧‧智慧卡介面單元
607‧‧‧智慧卡晶片
圖1A是根據本發明之一範例實施例所繪示使用快閃記憶體儲存裝置的主機系統。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/
輸出裝置與快閃記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與快閃記憶體儲存裝置的示意圖。
圖1D是繪示圖1A所示的快閃記憶體儲存裝置的概要方塊圖。
圖2是根據本發明另一範例實施例所繪示的快閃記憶體控制器的方塊圖。
圖3是繪示圖1A所示的快閃記憶體儲存裝置的運作示意圖。
圖4A、4B、4C是根據本發明一範例實施例所繪示之合併實體區塊之操作的示意圖。
圖5是根據本發明之一範例實施例所繪示快閃記憶體之寫入管理方法的流程圖。
圖6是根據本發明又一範例實施例所繪示的快閃記憶體儲存裝置的概要方塊圖。
510~590‧‧‧本發明之一範例實施例所述之快閃記憶體之寫入管理方法的各步驟
Claims (15)
- 一種快閃記憶體之寫入管理方法,用於至少存在一第一執行緒與一第二執行緒的一快閃記憶體儲存裝置,該快閃記憶體儲存裝置包括一快閃記憶體晶片與一快閃記憶體控制器,該方法包括:定義一預設寫入單位;接收一第一寫入指令,其中該第一寫入指令是對應至一第一寫入資料,其中該第一寫入資料的數量是大於該預設寫入單位的數量;當判斷負責執行該第一寫入指令的是該第一執行緒時,分配該快閃記憶體晶片的控制權至該第一執行緒;在該第一執行緒完成該預設寫入單位的資料寫入動作後,令該第一執行緒釋放該快閃記憶體晶片的控制權;在令該第一執行緒釋放該快閃記憶體的控制權後,該快閃記憶體控制器判斷該第二執行緒是否要求該快閃記憶體晶片的控制權;以及當該第二執行緒未要求該快閃記憶體晶片的控制權時,該快閃記憶體控制器分配該快閃記憶體晶片的控制權至該第一執行緒。
- 如申請專利範圍第1項所述之快閃記憶體之寫入管理方法,其中在分配該快閃記憶體晶片的控制權至該第一執行緒的步驟之後,該方法更包括:若在該第一執行緒進行該預設寫入單位之資料寫入動作的期間,接收到需由該第二執行緒負責執行的一第二 寫入指令,則在該第一執行緒釋放該快閃記憶體晶片的控制權後,分配該快閃記憶體晶片的控制權至該第二執行緒;以及在該第二執行緒將該第二寫入指令所對應的一第二寫入資料寫入至該快閃記憶體晶片後,令該第二執行緒釋放該快閃記憶體晶片的控制權。
- 如申請專利範圍第2項所述之快閃記憶體之寫入管理方法,其中在令該第二執行緒釋放該快閃記憶體晶片之控制權的步驟之後,該方法更包括:判斷該第一執行緒是否已完成該第一寫入指令所對應之該第一寫入資料的寫入動作;若否,則分配該快閃記憶體晶片的控制權至該第一執行緒;以及在該第一執行緒完成該預設寫入單位的資料寫入動作後,令該第一執行緒釋放該快閃記憶體晶片的控制權。
- 如申請專利範圍第1項所述之快閃記憶體之寫入管理方法,其中在分配該快閃記憶體晶片的控制權至該第一執行緒的步驟之後,該方法更包括:若在該第一執行緒進行該預設寫入單位之資料寫入動作的期間,未接收到其他寫入指令,則在該第一執行緒釋放該快閃記憶體晶片的控制權後,判斷該第一執行緒是否已完成該第一寫入指令所對應之該第一寫入資料的寫入動作;若否,則分配該快閃記憶體晶片的控制權至該第一執 行緒;以及在該第一執行緒完成該預設寫入單位的資料寫入動作後,令該第一執行緒釋放該快閃記憶體晶片的控制權。
- 如申請專利範圍第1項所述之快閃記憶體之寫入管理方法,其中該第一執行緒用以執行一智慧卡(smart card)應用程式,該方法更包括:若該第一寫入指令為一應用程式協定資料單元(Application Protocol Data Unit,APDU)指令,則判定負責執行該第一寫入指令的是該第一執行緒。
- 如申請專利範圍第1項所述之快閃記憶體之寫入管理方法,其中該第二執行緒用以執行一安全數位(Secure Digital,SD)卡讀寫應用程式。
- 如申請專利範圍第1項所述之快閃記憶體之寫入管理方法,其中該預設寫入單位所包括的實體頁面數量小於該快閃記憶體晶片中一實體區塊所包括的實體頁面數量。
- 一種快閃記憶體儲存裝置,至少有一第一執行緒與一第二執行緒存在於該快閃記憶體儲存裝置,該快閃記憶體儲存裝置包括:一快閃記憶體晶片;一連接器,用以耦接一主機,並接收該主機下達的寫入指令;以及一快閃記憶體控制器,耦接至該快閃記憶體晶片與該連接器,用以定義一預設寫入單位,其中在該連接器接收到該主機下達對應至一第一寫 入資料的一第一寫入指令後,並且該第一寫入資料的數量是大於該預設寫入單位的數量,該快閃記憶體控制器在判斷負責執行該第一寫入指令的是該第一執行緒時,分配該快閃記憶體晶片的控制權至該第一執行緒,在該第一執行緒完成該預設寫入單位的資料寫入動作後,令該第一執行緒釋放該快閃記憶體晶片的控制權,在令該第一執行緒釋放該快閃記憶體的控制權後,該快閃記憶體控制器判斷該第二執行緒是否要求該快閃記憶體晶片的控制權;以及當該第二執行緒未要求該快閃記憶體晶片的控制權時,該快閃記憶體控制器分配該快閃記憶體晶片的控制權至該第一執行緒。
- 如申請專利範圍第8項所述之快閃記憶體儲存裝置,其中若在該第一執行緒進行該預設寫入單位之資料寫入動作的期間,該連接器接收到該主機下達且需由該第二執行緒負責執行的一第二寫入指令,該快閃記憶體控制器在該第一執行緒釋放該快閃記憶體晶片的控制權後,分配該快閃記憶體晶片的控制權至該第二執行緒,並在該第二執行緒將該第二寫入指令所對應的一第二寫入資料寫入至該快閃記憶體晶片後,令該第二執行緒釋放該快閃記憶體晶片的控制權。
- 如申請專利範圍第9項所述之快閃記憶體儲存裝置,其中在令該第二執行緒釋放該快閃記憶體晶片之控制權後,該快閃記憶體控制器決定該第一執行緒是否已完成該第一寫入資料的寫入動作,倘若該第一執行緒尚未完成 該第一寫入指令所對應之該第一寫入資料的寫入動作時,分配該快閃記憶體晶片的控制權至該第一執行緒,並在該第一執行緒完成該預設寫入單位的資料寫入動作後,令該第一執行緒釋放該快閃記憶體晶片的控制權。
- 如申請專利範圍第8項所述之快閃記憶體儲存裝置,其中在分配該快閃記憶體晶片的控制權至該第一執行緒後,若在該第一執行緒進行該預設寫入單位之資料寫入動作的期間,該連接器未接收到該主機下達的其他寫入指令,該快閃記憶體控制器在該第一執行緒釋放該快閃記憶體晶片的控制權後,判斷該第一執行緒是否已完成該第一寫入指令所對應之該第一寫入資料的寫入動作,若該第一執行緒尚未完成該第一寫入資料的寫入動作,該快閃記憶體控制器分配該快閃記憶體晶片的控制權至該第一執行緒,並在該第一執行緒完成該預設寫入單位的資料寫入動作後,令該第一執行緒釋放該快閃記憶體晶片的控制權。
- 如申請專利範圍第8項所述之快閃記憶體儲存裝置,其中該第一執行緒用以執行一智慧卡應用程式,該快閃記憶體控制器在該第一寫入指令為一應用程式協定資料單元指令時,判定負責執行該第一寫入指令的是該第一執行緒。
- 如申請專利範圍第8項所述之快閃記憶體儲存裝置,其中該第二執行緒用以執行一安全數位卡讀寫應用程式。
- 如申請專利範圍第8項所述之快閃記憶體儲存裝置,其中該預設寫入單位所包括的實體頁面數量小於該快閃記憶體晶片中一實體區塊所包括的實體頁面數量。
- 一種快閃記憶體控制器,配置於耦接至一主機的一快閃記憶體儲存裝置中,該快閃記憶體儲存裝置至少存在一第一執行緒與一第二執行緒,並包括一快閃記憶體晶片,該快閃記憶體控制器包括:一微處理器單元;一快閃記憶體晶片介面單元,耦接至該微處理器單元,用以耦接至該快閃記憶體晶片;一主機介面單元,耦接至該微處理器單元,用以耦接至該主機;以及一資源分配單元,耦接至該微處理器單元,用以定義一預設寫入單位,其中該主機介面單元接收該主機下達的一第一寫入指令,其中該第一寫入指令是對應至一第一寫入資料,並且該第一寫入資料的數量大於該預設寫入單位的數量,其中在該微處理器單元判斷負責執行該第一寫入指令的是該第一執行緒時,該資源分配單元分配該快閃記憶體晶片的控制權至該第一執行緒,並在該第一執行緒完成該預設寫入單位的資料寫入動作後,令該第一執行緒釋放該快閃記憶體晶片的控制權,在令該第一執行緒釋放該快閃記憶體的控制權後,判斷該第二執行緒是否要求該快閃記憶體晶片的控制權;以及當該第二執行緒未要求該快閃 記憶體晶片的控制權時,分配該快閃記憶體晶片的控制權至該第一執行緒。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099103360A TWI486966B (zh) | 2010-02-04 | 2010-02-04 | 快閃記憶體儲存裝置、其控制器與寫入管理方法 |
US12/728,446 US9507702B2 (en) | 2010-02-04 | 2010-03-22 | Method of performing write access by distributing control rights to threads, memory controller and flash memory storage device using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099103360A TWI486966B (zh) | 2010-02-04 | 2010-02-04 | 快閃記憶體儲存裝置、其控制器與寫入管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201128655A TW201128655A (en) | 2011-08-16 |
TWI486966B true TWI486966B (zh) | 2015-06-01 |
Family
ID=44342629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099103360A TWI486966B (zh) | 2010-02-04 | 2010-02-04 | 快閃記憶體儲存裝置、其控制器與寫入管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9507702B2 (zh) |
TW (1) | TWI486966B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140082313A1 (en) * | 2012-09-14 | 2014-03-20 | International Business Machines Corporation | Storage class memory evacuation |
US11108698B2 (en) * | 2017-02-03 | 2021-08-31 | Microsoft Technology Licensing, Llc | Systems and methods for client-side throttling after server handling in a trusted client component |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822244A (en) * | 1997-09-24 | 1998-10-13 | Motorola, Inc. | Method and apparatus for suspending a program/erase operation in a flash memory |
US20040003167A1 (en) * | 2002-06-27 | 2004-01-01 | Hiroyuki Kimura | Microcomputer |
US6782440B2 (en) * | 2000-07-26 | 2004-08-24 | T.N.S. Holdings, Inc. | Resource locking and thread synchronization in a multiprocessor environment |
US20050050283A1 (en) * | 2003-08-29 | 2005-03-03 | Eddie Miller | Multi-channel memory access arbitration method and system |
US7032081B1 (en) * | 2000-07-31 | 2006-04-18 | M-Systems Flash Disk Pioneers Ltd. | System and method for enabling non-volatile memory to execute code while operating as a data storage/processing device |
US20070045425A1 (en) * | 2005-08-24 | 2007-03-01 | Satoshi Yoshida | Memory card |
US20070239926A1 (en) * | 2006-03-28 | 2007-10-11 | Yevgen Gyl | Method and device for reduced read latency of non-volatile memory |
WO2008001189A2 (en) * | 2006-06-27 | 2008-01-03 | Gemalto Sa | A thread controller for simultaneous process of data transfer sessions in a personal token |
TW200846910A (en) * | 2007-04-23 | 2008-12-01 | Microsoft Corp | Hints model for optimization of storage devices connected to host and write optimization schema for storage devices |
US7472258B2 (en) * | 2003-04-21 | 2008-12-30 | International Business Machines Corporation | Dynamically shared group completion table between multiple threads |
US20090031314A1 (en) * | 2007-07-25 | 2009-01-29 | Microsoft Corporation | Fairness in memory systems |
WO2009086417A1 (en) * | 2007-12-21 | 2009-07-09 | Rambus Inc. | Flash memory timing pre-characterization for use in ormal operation |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7234139B1 (en) * | 2000-11-24 | 2007-06-19 | Catharon Productions, Inc. | Computer multi-tasking via virtual threading using an interpreter |
-
2010
- 2010-02-04 TW TW099103360A patent/TWI486966B/zh active
- 2010-03-22 US US12/728,446 patent/US9507702B2/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822244A (en) * | 1997-09-24 | 1998-10-13 | Motorola, Inc. | Method and apparatus for suspending a program/erase operation in a flash memory |
US6782440B2 (en) * | 2000-07-26 | 2004-08-24 | T.N.S. Holdings, Inc. | Resource locking and thread synchronization in a multiprocessor environment |
US7032081B1 (en) * | 2000-07-31 | 2006-04-18 | M-Systems Flash Disk Pioneers Ltd. | System and method for enabling non-volatile memory to execute code while operating as a data storage/processing device |
US20040003167A1 (en) * | 2002-06-27 | 2004-01-01 | Hiroyuki Kimura | Microcomputer |
US7472258B2 (en) * | 2003-04-21 | 2008-12-30 | International Business Machines Corporation | Dynamically shared group completion table between multiple threads |
US20050050283A1 (en) * | 2003-08-29 | 2005-03-03 | Eddie Miller | Multi-channel memory access arbitration method and system |
US20070045425A1 (en) * | 2005-08-24 | 2007-03-01 | Satoshi Yoshida | Memory card |
US20070239926A1 (en) * | 2006-03-28 | 2007-10-11 | Yevgen Gyl | Method and device for reduced read latency of non-volatile memory |
WO2008001189A2 (en) * | 2006-06-27 | 2008-01-03 | Gemalto Sa | A thread controller for simultaneous process of data transfer sessions in a personal token |
TW200846910A (en) * | 2007-04-23 | 2008-12-01 | Microsoft Corp | Hints model for optimization of storage devices connected to host and write optimization schema for storage devices |
US20090031314A1 (en) * | 2007-07-25 | 2009-01-29 | Microsoft Corporation | Fairness in memory systems |
WO2009086417A1 (en) * | 2007-12-21 | 2009-07-09 | Rambus Inc. | Flash memory timing pre-characterization for use in ormal operation |
Also Published As
Publication number | Publication date |
---|---|
US9507702B2 (en) | 2016-11-29 |
TW201128655A (en) | 2011-08-16 |
US20110191524A1 (en) | 2011-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10360156B2 (en) | Data storage device using host memory and method of operating same | |
TWI409633B (zh) | 快閃記憶體儲存裝置、其控制器與資料寫入方法 | |
TWI463317B (zh) | Memory device and control method thereof | |
TWI446349B (zh) | 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
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 | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
US9164804B2 (en) | Virtual memory module | |
TWI489272B (zh) | 保護資料的方法、記憶體控制器與記憶體儲存裝置 | |
KR102595233B1 (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
WO2019000982A1 (zh) | 一种存储系统、固态硬盘和数据存储方法 | |
CN109213423B (zh) | 基于地址屏障无锁处理并发io命令 | |
CN103473182A (zh) | 非挥发性存储器存取方法及非挥发性存储器控制器 | |
TWI486966B (zh) | 快閃記憶體儲存裝置、其控制器與寫入管理方法 | |
KR101549569B1 (ko) | 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치 | |
TW201426314A (zh) | 資料傳輸方法、記憶體控制器、資料傳輸系統 | |
CN102193745B (zh) | 快闪存储器储存装置、其控制器与写入管理方法 | |
CN107562639B (zh) | 擦除块读请求处理方法与装置 | |
TWI697778B (zh) | 資料儲存裝置與資料處理方法 | |
CN111338998B (zh) | 基于amp系统的flash访问处理方法及装置 | |
TWI503841B (zh) | 寫入方法、記憶體控制器與記憶體儲存裝置 | |
KR20220044069A (ko) | 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 컴퓨팅 장치의 동작 방법 | |
CN109213424B (zh) | 并发io命令的无锁处理方法 | |
TWI569201B (zh) | 控制方法、記憶體控制器與資料傳輸系統 | |
US20240241657A1 (en) | Storage device and method of operating the same |