TW201828035A - 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TW201828035A TW201828035A TW106101491A TW106101491A TW201828035A TW 201828035 A TW201828035 A TW 201828035A TW 106101491 A TW106101491 A TW 106101491A TW 106101491 A TW106101491 A TW 106101491A TW 201828035 A TW201828035 A TW 201828035A
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- data
- amount
- data amount
- predetermined
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 308
- 230000005055 memory storage Effects 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000012544 monitoring process Methods 0.000 claims description 48
- 230000005540 biological transmission Effects 0.000 claims description 43
- 230000004044 response Effects 0.000 claims description 8
- 230000008878 coupling Effects 0.000 claims description 7
- 238000010168 coupling process Methods 0.000 claims description 7
- 238000005859 coupling reaction Methods 0.000 claims description 7
- 230000007246 mechanism Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 22
- 238000012937 correction Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
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
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元。所述方法用於所述記憶體儲存裝置與主機系統之間的資料傳輸操作,其中所述主機系統記錄多個提交佇列,且所述方法包括:從所述主機系統獲得第一提交佇列中的至少一第一指令,並判斷所述至少一第一指令的第一資料量是否符合第一預定條件;當所述第一資料量符合所述第一預定條件時,從主機系統獲得第二提交佇列中的至少一第二指令;以及對所述記憶體儲存裝置中的可複寫式非揮發性記憶體模組依序地執行對應至少一第一指令與至少一第二指令的資料存取操作。
Description
本發明是有關於一種資料傳輸機制,且特別是有關於一種資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
為了配合可複寫式非揮發性記憶體的記憶體儲存裝置(如,固態硬碟)的較高的寫入/讀取速度,許多資料傳輸介面(例如,高速周邊零件連接介面,PCIe介面)也開始支援更高階的資料傳輸協定,例如,快速非揮發性記憶體(Non-Volatile Memory express,NVMe)介面標準,以發揮高速的可複寫式非揮發性記憶體儲存裝置的工作效率。
在快速非揮發性記憶體介面標準下,記憶體儲存裝置的記憶體管理電路會主動地從主機系統依序地讀取主機系統所記錄的每一個提交佇列中的指令,並依照所讀取的先後順序將此些指令暫存於記憶體儲存裝置中的指令佇列中。之後,記憶體管理電路即可根據指令佇列中的指令對可複寫式非揮發性記憶體模組進行資料存取。然而,若一個提交佇列中記錄有對應於使用者所執行之操作的大量指令時,記憶體儲存裝置中的指令佇列的空間將很快地被此提交佇列中的指令用盡。此時,倘若主機系統收到使用者之另一操作,則記憶體儲存裝置中將沒有足夠的空間儲存對應此另一操作的指令,且對應此另一操作的指令必須待已暫存於指令佇列中的大量指令皆被處理後才能被執行。
由此可知,現有的資料傳輸機制並無法滿足對應不同操作之指令被執行的即時性。特別是,當上述使用者之另一操作僅需對少量資料進行存取時,使用者仍需經長時間的等待才能得到系統的回應,進而帶給使用者不佳的操作體驗。
本發明提供一種資料傳輸方法、記憶體儲存裝置與記憶體控制電路單元,其能夠滿足對應不同操作之指令被執行的即時性,進而提升使用者的操作體驗。
本發明的一範例實施例提出一種資料傳輸方法,用於記憶體儲存裝置與主機系統之間的資料傳輸操作,其中所述主機系統記錄多個提交佇列。本資料傳輸方法包括:從所述主機系統獲得第一提交佇列中的至少一第一指令,並判斷所述至少一第一指令的一第一資料量是否符合第一預定條件;當所述第一資料量符合所述第一預定條件時,從所述主機系統獲得第二提交佇列中的至少一第二指令;以及對所述記憶體儲存裝置中的可複寫式非揮發性記憶體模組依序地執行對應所述至少一第一指令與所述至少一第二指令的資料存取操作。
在本發明的一範例實施例中,所述判斷至少一第一指令的第一資料量是否符合第一預定資料量的步驟包括:依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有所述第一數量的第一指令的資料量以獲得所述第一資料量;以及當所述第一資料量大於第一預定資料量時,判定所述第一資料量符合所述第一預定條件,並停止從所述主機系統讀取所述第一提交佇列中的指令。
在本發明的一範例實施例中,所述第二提交佇列的至少一第二指令符合第二預定條件,且第二預定條件為至少一第二指令的第二資料量大於或等於第二預定資料量,其中所述第二預定資料量不同於所述第一預定資料量。
在本發明的一範例實施例中,所述判斷至少一第一指令的第一資料量是否符合第一預定資料量的步驟包括:依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有所述第一數量的第一指令的資料量以獲得所述第一資料量;以及當所述第一資料量非大於第一預定資料量時,判定所述第一資料量符合所述第一預定條件,並停止從主機系統讀取第一提交佇列中的指令,其中第一資料量與第一預定資料量之間的差值小於第一資料量門檻值。
在本發明的一範例實施例中,所述第二提交佇列的至少一第二指令符合第二預定條件,且第二預定條件為至少一第二指令的第二資料量非大於第二預定資料量。其中所述第二資料量與所述第二預定資料量之間的差值小於第二資料量門檻值,其中所述第二預定資料量不同於所述第一預定資料量,且所述第二資料量門檻值不同於所述第一資料量門檻值。
在本發明的一範例實施例中,所述當第一資料量符合第一預定條件時,從主機系統獲得第二提交佇列中符合第二預定條件的至少一第二指令的步驟更包括:將符合第一預定條件的至少一第一指令放入一指令佇列中;以及將所述至少一第二指令放入所述指令佇列中的所述至少一第一指令之後。
在本發明的一範例實施例中,所述至少一第一指令包括寫入指令或讀取指令,以及所述至少一第二指令包括寫入指令或讀取指令。
在本發明的一範例實施例中,所述從主機系統獲得第一提交佇列中的至少一第一指令的步驟是反應於來自所述主機系統的一指令通知。所述指令通知指示所述提交佇列中至少一提交佇列儲存有至少一指令。
在本發明的一範例實施例中,所述記憶體儲存裝置相容於一快速非揮發性記憶體(NVM express)介面標準。
本發明的另一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統,且所述主機系統記錄多個提交佇列。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組,所述記憶體控制電路單元用以從所述主機系統獲得第一提交佇列中的至少一第一指令,並判斷所述至少一第一指令的第一資料量是否符合第一預定條件。所述記憶體控制電路單元更用以當所述第一資料量符合所述第一預定條件時,從所述主機系統獲得第二提交佇列中的至少一第二指令。所述記憶體控制電路單元更用以發送第一存取指令序列以指示對所述可複寫式非揮發性記憶體模組依序地執行對應至少一第一指令與所述至少一第二指令的資料存取操作。
在本發明的一範例實施例中,所述判斷至少一第一指令的第一資料量是否符合第一預定條件的操作中,所述記憶體控制電路單元更用以依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有所述第一數量的第一指令的資料量以獲得所述第一資料量。所述記憶體控制電路單元更用以當所述第一資料量大於或等於第一預定資料量時,判定所述第一資料量符合所述第一預定資料量,並停止從所述主機系統讀取所述第一提交佇列中的指令。
在本發明的一範例實施例中,所述第二提交佇列的至少一第二指令符合第二預定條件,且所述第二預定條件為至少一第二指令的第二資料量或等於第二預定資料量,其中所述第二預定資料量不同於所述第一預定資料量。
在本發明的一範例實施例中,所述判斷至少一第一指令的第一資料量是否符合第一預定條件的操作中,所述記憶體控制電路單元更用以依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有所述第一數量的第一指令的資料量以獲得所述第一資料量。所述記憶體控制電路單元更用以當所述第一資料量非大於第一預定資料量時,判定所述第一資料量符合所述第一預定條件,並停止從所述主機系統讀取該第一提交佇列中的指令,其中所述第一資料量與所述第一預定資料量之間的差值小於第一資料量門檻值。
在本發明的一範例實施例中,所述第二提交佇列的至少一第二指令符合第二預定條件,且所述第二預定條件為所述至少一第二指令的第二資料量非大於第二預定資料量,其中所述第二資料量與第二預定資料量之間的差值小於第二資料量門檻值。其中所述第二預定資料量不同於所述第一預定資料量,且所述第二資料量門檻值不同於所述第一資料量門檻值。
在本發明的一範例實施例中,在當第一資料量符合第一預定條件時,從主機系統獲得第二提交佇列中的至少一第二指令的操作中,所述記憶體控制電路單元更用以將符合所述第一預定條件的所述至少一第一指令放入指令佇列中,以及將所述至少一第二指令放入所述指令佇列中的所述至少一第一指令之後。
在本發明的一範例實施例中,所述至少一第一指令包括寫入指令或讀取指令,以及所述至少一第二指令包括寫入指令或讀取指令。
在本發明的一範例實施例中,所述從主機系統獲得第一提交佇列中的至少一第一指令的的操作是反應於來自所述主機系統的指令通知。所述指令通知指示所述提交佇列中至少一提交佇列儲存有至少一指令。
在本發明的一範例實施例中,所述記憶體儲存裝置相容於一快速非揮發性記憶體介面標準。
本發明的另一範例實施例提供一種記憶體控制電路單元,其用於控制可複寫式非揮發性記憶體模組,所述記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。所述主機介面用以耦接至主機系統,且所述主機系統記錄多個提交佇列。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面與所述記憶體介面,且包括多個監視電路,各個監視電路分別對應至所述提交佇列中的至少一提交佇列。所述記憶體管理電路用以從所述主機系統獲得第一提交佇列中的至少一第一指令,並判斷所述至少一第一指令的第一資料量是否符合第一預定條件。所述記憶體管理電路更用以當所述第一資料量符合所述第一預定條件時,從所述主機系統獲得第二提交佇列中的至少一第二指令。所述記憶體管理電路更用以發送第一存取指令序列以指示對所述可複寫式非揮發性記憶體模組執行對應所述至少一第一指令與所述至少一第二指令的資料存取操作。
在本發明的一範例實施例中,上述監視電路中的第一監視電路用以記錄第一預定資料量,且在判斷至少一第一指令的第一資料量是否符合第一預定條件的操作中,所述記憶體管理電路更用以依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有所述第一數量的第一指令的資料量以獲得所述第一資料量。所述記憶體管理電路更用以當所述第一資料量大於或等於所述第一預定資料量時,判定所述第一資料量符合所述第一預定條件,並停止從所述主機系統讀取所述第一提交佇列中的指令。
在本發明的一範例實施例中,所述監視電路中的第二監視電路用以記錄第二預定資料量,且所述第二提交佇列的所述至少一第二指令符合所述第二預定條件,其中第二預定條件為至少一第二指令的第二資料量大於或等於所述第二預定資料量,其中所述第二預定資料量不同於所述第一預定資料量。
在本發明的一範例實施例中,上述監視電路中的第一監視電路用以記錄第一預定資料量,且在判斷至少一第一指令的第一資料量是否符合第一預定條件的操作中,所述記憶體管理電路更用以依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有所述第一數量的第一指令的資料量以獲得所述第一資料量。所述記憶體管理電路更用以當所述第一資料量非大於所述第一預定資料量時,判定所述第一資料量符合所述第一預定條件,並停止從所述主機系統讀取所述第一提交佇列中的指令。其中所述第一資料量與所述第一預定資料量之間的差值小於第一資料量門檻值。
在本發明的一範例實施例中,所述監視電路中的第二監視電路用以記錄第二預定資料量,且所述第二提交佇列的所述至少一第二指令符合所述第二預定條件。其中第二預定條件為至少一第二指令的第二資料量非大於所述第二預定資料量,且所述第二資料量與所述第二預定資料量之間的差值小於第二資料量門檻值。其中所述第二預定資料量不同於所述第一預定資料量,且所述第二資料量門檻值不同於所述第一資料量門檻值。
在本發明的一範例實施例中,在當第一資料量符合第一預定條件時,從主機系統獲得第二提交佇列中的至少一第二指令的操作中,所述記憶體管理電路更用以將符合所述第一預定條件的所述至少一第一指令放入指令佇列中,以及將所述至少一第二指令放入所述指令佇列中的所述至少一第一指令之後。
在本發明的一範例實施例中,所述至少一第一指令包括寫入指令或讀取指令,以及所述至少一第二指令包括寫入指令或讀取指令。
在本發明的一範例實施例中,所述從主機系統獲得第一提交佇列中的至少一第一指令的操作是反應於來自所述主機系統的指令通知。所述指令通知指示所述提交佇列中至少一提交佇列儲存有至少一指令。
在本發明的一範例實施例中,所述記憶體控制電路單元相容於快速非揮發性記憶體介面標準。
基於上述,上述範例實施例是藉由記憶體管理電路根據對應每一提交佇列的預定資料量來分別地從每一提交佇列中獲取符合預定條件的指令,進而依序地將每一提交佇列中具有特定資料量的指令緩存至記憶體儲存裝置。藉此,提升對應不同操作之指令被執行的即時性。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。圖2是根據本發明的另一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。
請參照圖1與圖2,主機系統11一般包括處理器111、隨機存取記憶體(random access memory, RAM)112、唯讀記憶體(read only memory, ROM)113及資料傳輸介面114。處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114皆耦接至系統匯流排(system bus)110。
在本範例實施例中,主機系統11是透過資料傳輸介面114與記憶體儲存裝置10耦接。例如,主機系統11可經由資料傳輸介面114將資料儲存至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。此外,主機系統11是透過系統匯流排110與I/O裝置12耦接。例如,主機系統11可經由系統匯流排110將輸出訊號傳送至I/O裝置12或從I/O裝置12接收輸入訊號。
在本範例實施例中,處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114可設置在主機系統11的主機板20上。資料傳輸介面114的數目可以是一或多個。透過資料傳輸介面114,主機板20可以經由有線或無線方式耦接至記憶體儲存裝置10。記憶體儲存裝置10可例如是隨身碟201、記憶卡202、固態硬碟(Solid State Drive, SSD)203或無線記憶體儲存裝置204。無線記憶體儲存裝置204可例如是近距離無線通訊(Near Field Communication, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,所提及的主機系統為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。雖然在上述範例實施例中,主機系統是以電腦系統來作說明,然而,圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,在另一範例實施例中,主機系統31也可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統,而記憶體儲存裝置30可為其所使用的安全數位(Secure Digital, SD)卡32、小型快閃(Compact Flash, CF)卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded Multi Media Card, eMMC)341及/或嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)儲存裝置342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
連接介面單元402用以將記憶體儲存裝置10耦接至主機系統11。在本範例實施例中,連接介面單元402是符合高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準,且相容於快速非揮發性記憶體(NVM express)介面標準。具體而言,快速非揮發性記憶體介面標準為一種主機系統與記憶體裝置之間通訊的協議,其定義了記憶體儲存裝置之控制器與主機系統之作業系統之間的暫存器介面、指令集與功能集,並藉由對記憶體儲存裝置的介面標準最佳化,來促進以PCIe介面為主的記憶體儲存裝置之資料存取速度與資料傳輸速率。然而,在另一範例實施例中,連接介面單元402亦可以是符合其他適合的標準。此外,連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元404之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406可以是單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、多階記憶胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、複數階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以電壓(以下亦稱為臨界電壓)的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,進而改變記憶胞的臨界電壓。此改變記憶胞之臨界電壓的操作亦稱為“把資料寫入至記憶胞”或“程式化(programming)記憶胞”。隨著臨界電壓的改變,可複寫式非揮發性記憶體模組406中的每一個記憶胞具有多個儲存狀態。透過施予讀取電壓可以判斷一個記憶胞是屬於哪一個儲存狀態,藉此取得此記憶胞所儲存的一或多個位元。
在本範例實施例中,可複寫式非揮發性記憶體模組406的記憶胞會構成多個實體程式化單元,並且此些實體程式化單元會構成多個實體抹除單元。具體來說,同一條字元線上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元至少可被分類為下實體程式化單元與上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit,LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit,MSB)是屬於上實體程式化單元。一般來說,在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,及/或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。
在本範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面(page)或是實體扇(sector)。若實體程式化單元為實體頁面,則此些實體程式化單元通常包括資料位元區與冗餘(redundancy)位元區。資料位元區包含多個實體扇,用以儲存使用者資料,而冗餘位元區用以儲存系統資料(例如,錯誤更正碼等管理資料)。在本範例實施例中,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte, B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,並且每一個實體扇的大小也可以是更大或更小。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊(block)。
圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504及記憶體介面506。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路502的操作時,等同於說明記憶體控制電路單元404的操作。
在本範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在另一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在另一範例實施例中,記憶體管理電路502的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路502包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的記憶胞或其群組。記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令序列以將資料寫入至可複寫式非揮發性記憶體模組406中。記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令序列以從可複寫式非揮發性記憶體模組406中讀取資料。記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令序列以將資料從可複寫式非揮發性記憶體模組406中抹除。資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組406執行相對應的寫入、讀取及抹除等操作。在一範例實施例中,記憶體管理電路502還可以下達其他類型的指令序列給可複寫式非揮發性記憶體模組406以指示執行相對應的操作。
主機介面504是耦接至記憶體管理電路502並且用以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面504來傳送至記憶體管理電路502。在本範例實施例中,主機介面504是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是耦接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406所能接受的格式。具體來說,若記憶體管理電路502要存取可複寫式非揮發性記憶體模組406,記憶體介面506會傳送對應的指令序列。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行垃圾回收操作等等)的相對應的指令序列。這些指令序列例如是由記憶體管理電路502產生並且透過記憶體介面506傳送至可複寫式非揮發性記憶體模組406。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
在一範例實施例中,記憶體控制電路單元404還包括錯誤檢查與校正電路508、緩衝記憶體510與電源管理電路512。
錯誤檢查與校正電路508是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正操作以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路508會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code, ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路508會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正操作。
緩衝記憶體510是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。電源管理電路512是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
圖6是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。須注意的是,在此描述可複寫式非揮發性記憶體模組406之管理時,“選擇”與“分組”等詞是邏輯上的操作概念。也就是說,可複寫式非揮發性記憶體模組406中各實體元件的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組406的部分實體元件進行操作。
請參照圖6,記憶體管理電路502會將可複寫式非揮發性記憶體模組406的實體單元610(0)~610(B)邏輯地分組至儲存區601與替換區602。儲存區601中的實體單元610(0)~610(A)是用以儲存資料,而替換區602中的實體單元610(A+1)~610(B)則是用以替換儲存區601中損壞的實體單元。例如,若從某一個實體單元中讀取的資料所包含的錯誤過多而無法被更正時,此實體單元會被視為是損壞的實體單元。須注意的是,若替換區602中沒有可用的實體抹除單元,則記憶體管理電路502可能會將整個記憶體儲存裝置10宣告為寫入保護(write protect)狀態,而無法再寫入資料。
在本範例實施例中,每一個實體單元是指一個實體抹除單元。然而,在另一範例實施例中,一個實體單元亦可以是指一個實體位址、一個實體程式化單元或由多個連續或不連續的實體位址組成。記憶體管理電路502會配置邏輯單元612(0)~612(C)以映射儲存區601中的實體單元610(0)~610(A)。在本範例實施例中,每一個邏輯單元是指一個邏輯位址。然而,在另一範例實施例中,一個邏輯單元也可以是指一個邏輯程式化單元、一個邏輯抹除單元或者由多個連續或不連續的邏輯位址組成。此外,邏輯單元612(0)~612(C)中的每一者可被映射至一或多個實體單元。
記憶體管理電路502會將邏輯單元與實體單元之間的映射關係(亦稱為邏輯-實體位址映射關係)記錄於至少一邏輯-實體位址映射表。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路502可根據此邏輯-實體位址映射表來執行對於記憶體儲存裝置10的存取操作。
圖7是根據本發明的一範例實施例所繪示的資料傳輸操作的示意圖。在本範例實施例中,記憶體儲存裝置10是相容於NVM express介面標準。相對於採用序列先進附件(Serial Advanced Technology Attachment, SATA)標準的儲存裝置,記憶體儲存裝置10與主機系統11之間的溝通機制有些許不同。以下將參照圖7來說明本發明之範例實施例的記憶體儲存裝置10與主機系統11之間的資料傳輸機制。
請參照圖7,當主機系統11欲對記憶體儲存裝置10執行存取操作(例如,從記憶體儲存裝置10讀取資料或將資料寫入至記憶體儲存裝置10)時,主機系統11的處理器111會將準備好的指令放置在一個指令佇列(command queue)711中。具體而言,指令佇列711記錄有一個管理員提交佇列(admin submission queue)ASQ與多個提交佇列(submission queue) SQ(0)~SQ(N),其中管理員提交佇列用以存放管理員指令(admin command),且提交佇列用以存放輸出/輸入指令(I/O command)。管理員指令用以配置與管理主機系統,以及用以控制記憶體儲存裝置,而輸出/輸入指令用於主機系統與記憶體儲存裝置之間的資料傳輸。據此,主機系統11的處理器111是將準備好的指令(例如,寫入指令或讀取指令)放置在指令佇列711中的至少一提交佇列中。需注意的是,每一個提交佇列所存放的指令可分別對應於不同使用者所執行的操作,或者同一個使用者所執行的不同類型的操作。舉例而言,不同的提交佇列用以存放執行不同應用程式時所下達或產生的指令(例如,存取指令)。
承上,由於指令佇列711中的至少一提交佇列中儲存有指令,因此,處理器111會傳送一個指令通知給記憶體儲存裝置10(步驟S701),換言之,指令通知用以指示多個提交佇列中至少一提交佇列儲存有至少一指令。須注意的是,在NVM express介面標準下,在主機系統11發出指令通知之後,主機系統11對於記憶體儲存裝置10的主動行為至此結束。
接著,記憶體管理電路502會接收此指令通知並主動地從指令佇列711中讀取並獲得對應於此指令通知的至少一提交佇列中的一或多個指令(步驟S702)。並且,記憶體管理電路502會依照此些指令被讀取的先後順序來將所獲得的指令緩存在一個指令佇列721中。例如,指令佇列721包括多個待完成指令佇列(outstanding command queue)CQ(0)~CQ(M),且所獲得的指令會依序地被緩存至至少一待完成指令佇列中。
之後,記憶體管理電路502會依序地根據待完成指令佇列CQ(0)~CQ(M)中的指令來對可複寫式非揮發性記憶體模組406執行相應的資料存取操作。舉例而言,根據一個讀取指令,記憶體管理電路502會對可複寫式非揮發性記憶體模組406執行一個資料讀取操作並且將所獲得的讀取資料從資料緩存(data buffer)722傳送給主機系統11(步驟S703)。例如,此讀取資料會被存入主機系統11的資料緩存712。或者,根據一個寫入指令,記憶體管理電路502會主動地從主機系統11的資料緩存712中讀取寫入資料並將其緩存於資料緩存722中(步驟S703)。然後,記憶體管理電路502會對可複寫式非揮發性記憶體模組406執行一個資料寫入操作以將緩存在資料緩存722的寫入資料寫入至可複寫式非揮發性記憶體模組406。
對應於一個存取操作之完成,記憶體管理電路502會產生一個完成訊息,並且此完成訊息會被緩存在一個完成佇列(completion queue)723中。此完成訊息用於通知主機系統11相應於一個指令的一個存取操作已完成。在特定的時間點,包含完成訊息的完成資料會被依序地傳送給主機系統11並被緩存在主機系統11的一個完成佇列713中(步驟S704)。根據完成佇列723中的資料,主機系統11可以獲得記憶體儲存裝置10對應於一或多個存取指令的存取資料量以及資料存取速度等等。
在圖7的範例實施例中,指令佇列711例如記錄有65536個提交佇列SQ(0)~SQ(N),而指令佇列721例如包括256個待完成指令佇列CQ(0)~CQ(M),然而,本發明並不限於此。例如,在另一範例實施例中,可視主機系統11的記憶體容量來配置指令佇列711的大小,且提交佇列的數量可大於或小於65536個;並且可根據記憶體儲存裝置10的儲存空間配置需求與執行性能來調整指令佇列721的大小,例如,待完成指令佇列可大於或小於256個。此外,指令佇列711、資料緩存712及完成佇列713是位於主機系統11的隨機存取記憶體112中,並且指令佇列721、資料緩存722及完成佇列723是位於記憶體儲存裝置10的緩衝記憶體510中。然而,在另一範例實施例中,指令佇列711、資料緩存712及完成佇列713中的任一者亦可以是位於主機系統11之其他的儲存媒體中,並且指令佇列721、資料緩存722及完成佇列723中的任一者也可以是位於記憶體儲存裝置10之其他的儲存媒體(例如,可複寫式非揮發性記憶體模組406中)。
圖8A是根據本發明的一範例實施例所繪示的NVM express介面標準所定義之指令獲取機制的示意圖。圖8B是根據本發明的一範例實施例所繪示的NVM express介面標準所定義之另一指令獲取機制的示意圖。
具體而言,NVM express介面標準的規格中定義了兩種指令獲取機制,即,循環(Round Robin, RR)機制與加權循環(Weighted Round Robin, WRR)機制。請參照圖8A,圖8A繪示為以RR機制從主機系統11獲取指令的示意圖。為了方便說明,在此以4個提交佇列SQ(0)~SQ(3)為例來說明記憶體儲存裝置10透過RR機制來獲取指令的操作,然而,本領域具有通常知識者應可理解一個指令佇列711可包括更多個提交佇列,在此並不贅述。需注意的是,在此並不將管理員提交佇列ASQ列入討論,由於管理員提交佇列ASQ所記錄的管理員指令是用以配置、管理主機系統以及控制記憶體儲存裝置,因此其可隨時插入指令且即時地被處理。
詳言之,當主機系統11所記錄的提交佇列SQ(0)~SQ(3)皆儲存有指令時,記憶體儲存裝置10的記憶體管理電路502會在接收到主機系統11的指令通知後依序從提交佇列SQ(0)~SQ(3)中讀取特定數量的指令,例如,記憶體管理電路502會依序在獲取指令操作S81~S84中從提交佇列SQ(0)~SQ(3)中分別讀取10個指令至指令佇列721中。特別是,在RR機制下,記憶體管理電路502會根據所設定的讀取數量來重複執行獲取指令操作S81~S84。
另一方面,圖8B繪示為以WRR機制從主機系統11獲取指令的示意圖。具體而言,WRR機制是基於RR機制的獲取指令操作,不同之處在於,在WRR機制中,提交佇列SQ(0)~SQ(N)可被劃分為具有不同的優先權,且不同的優先權的提交佇列會被設定為對應至不同的讀取數量(即,權重值),亦即,記憶體管理電路502會分別對具有不同優先權的提交佇列讀取不同數量的指令。請參照圖8B,為了方便說明,在此以6個提交佇列SQ(0)~SQ(5)為例來說明記憶體儲存裝置10透過WRR機制來獲取指令的操作。
舉例而言,提交佇列SQ(0)與提交佇列SQ(1)為高優先權,提交佇列SQ(2)與提交佇列SQ(3)為中優先權,而提交佇列SQ(4)與提交佇列SQ(5)為低優先權,並且對應高優先權、中優先權與低優先權的讀取數量例如分別被設為10個、8個與6個。據此,記憶體管理電路502會依序在獲取指令操作S85_1~S85_2中從提交佇列SQ(0)~SQ(1)中分別讀取10個指令,依序在獲取指令操作S86_1~S86_2中從提交佇列SQ(2)~SQ(3)中分別讀取8個指令,以及依序在獲取指令操作S87_1~S87_2中從提交佇列SQ(4)~SQ(5)中分別讀取6個指令,其中分別對應不同優先權之提交佇列的獲取指令操作S85_1~S85_2、獲取指令操作S86_1~S86_2與獲取指令操作S87_1~S87_2會被記憶體管理電路502重複執行。之後,由記憶體管理電路502從提交佇列SQ(0)~SQ(1)所讀取的共20個指令,從提交佇列SQ(2)~SQ(3)所讀取的共16個指令,以及從提交佇列SQ(4)~SQ(5)所讀取的共12個指令會依序在獲取指令操作S801~S803中被緩存至指令佇列721中。並且類似地,記憶體管理電路502會重複執行獲取指令操作S801~S803。
根據上述可知,現有的RR機制或WRR機制皆是以特定數量來限制記憶體管理電路502每一次從提交佇列所提取的指令個數。然而,在此些指令獲取機制下,若一個提交佇列SQ(0)(如圖7所示)中記錄有對應於使用者所執行之操作的大量指令,且其他的提交佇列SQ(1)~提交佇列SQ(N)尚未存有指令時,記憶體管理電路502會持續地從提交佇列SQ(0)讀取至指令佇列721中,則指令佇列721的空間會很快地被提交佇列SQ(0)中的指令用盡。此時,倘若主機系統11收到使用者之另一操作,而將對應於此另一操作的指令記錄於提交佇列SQ(1)中,則指令佇列721中將沒有足夠的空間儲存提交佇列SQ(1)中的指令,且提交佇列SQ(1)中的指令必須待已暫存於指令佇列721中的大量指令皆被處理後才能被執行。或者,在另一情況中,若一個提交佇列SQ(0)中記錄有對應於使用者所執行之操作的大量指令,且每一指令的資料量皆很大;而提交佇列SQ(1)中僅記錄有資料量很小的少量指令時,記憶體管理電路502在從提交佇列SQ(0)中讀取特定數量的指令至指令佇列721後,指令佇列721的空間可能隨即被此特定數量的指令佔滿。換言之,在記憶體管理電路502還未讀取提交佇列SQ(1)中的指令時,指令佇列721就已沒有足夠的儲存空間。
據此,不論是上述何種情況下,提交佇列SQ(1)中的指令必須待已暫存於指令佇列721中的大量指令皆被處理後才能被執行。亦即,僅管使用者的某一個操作僅需對少量資料進行存取時,使用者仍需經長時間的等待才能得到系統的回應,由此可知,現有的資料傳輸機制並無法滿足對應不同操作之指令被執行的即時性。有鑑於此,在本發明範例實施例中,記憶體管理電路502中會配置有對應每一提交佇列的監視電路,以對每一提交佇列讀取特定資料量的指令。
圖9是根據本發明的一範例實施例所繪示的指令獲取機制與資料傳輸的示意圖。
請參照圖9,記憶體管理電路502會配置有監視電路900(0)~監視電路900(N),監視電路900(0)~監視電路900(N)分別對應至提交佇列SQ(0)~提交佇列SQ(N),每一監視電路會記錄有其預定抓取的資料量(亦稱為預定資料量),且每一監視電路所記錄的預定資料量可不相同。特別是,記憶體管理電路502會將預定資料量做為抓取資料的條件(亦稱為預定條件),例如,記憶體管理電路502可根據監視電路900(0)~監視電路900(N)所記錄的預定資料量來從對應的提交佇列SQ(0)~提交佇列SQ(N)獲取具特定資料量的指令。詳言之,符合預定條件之指令的資料量可以是達到預定資料量、超過預定資料量或者未達到預定資料量,且在一範例實施例中,記憶體管理電路502會盡可能將最終所抓取之指令的資料量與預定資料量之間的差值維持在一容忍範圍(亦稱為資料量門檻值)內。據此,記憶體管理電路502透過監視電路900(0)~監視電路900(N)所讀取的分別對應提交佇列SQ(0)~提交佇列SQ(N)之指令會分別具有特定的資料量,而非特定的數量。
舉例而言,監視電路900(0)(亦稱為第一監視電路900(0))所記錄的預定資料量(亦稱為第一預定資料量)為6MB(megabyte),而監視電路900(1)(亦稱為第二監視電路900(1))所記預定資料量(亦稱為第二預定資料量)為4MB。當僅第一監視電路900(0)與第二監視電路900(1)所分別對應的提交佇列SQ(0)(亦稱為第一提交佇列SQ(0))與提交佇列SQ(1) (亦稱為第二提交佇列SQ(1))儲存有對應使用者執行不同應用程式所需執行的指令時,記憶體管理電路502會根據來自主機系統11的指令通知先從提交佇列SQ(0)中讀取資料量符合預定條件(亦稱為第一預定條件)的指令(亦稱為至少一第一指令),再從提交佇列SQ(1)中讀取資料量符合預定條件(亦稱為第二預定條件)的指令(亦稱為至少一第二指令)。在此,第一預定條件對應至第一預定資料量(即,6MB),而第二預定條件對應至第二預定資料量(即,4MB)。並且,記憶體管理電路502會重複執行從提交佇列SQ(0)中讀取資料量符合第一預定條件的至少一第一指令與從提交佇列SQ(1)中讀取資料量符合第二預定條件的至少一第二指令的操作,直到提交佇列SQ(0)與提交佇列SQ(1)中未存放指令或暫時未存放指令時。
記憶體管理電路502會將從提交佇列SQ(0)中所讀取之資料量符合第一預定條件的至少一第一指令與將從提交佇列SQ(1)中所讀取之資料量符合第二預定條件的至少一第二指令緩存至指令佇列721中。詳言之,假設指令佇列721中每一待完成指令佇列CQ(0)~CQ(M)的容量為1MB,則記憶體管理電路502會先將具有特定資料量(例如,約6MB)的至少一第一指令緩存至待完成指令佇列CQ(0)~CQ(5),再將具有特定資料量(例如,約4MB)的至少一第二指令緩存至指令佇列712中,即,將具有特定資料量(例如,約4MB)的至少一第二指令緩存至待完成指令佇列CQ(6)~CQ(9),其中在指令佇列712中至少一第二指令接續於至少一第一指令之後。
據此,在上述第一提交佇列SQ(0)中記錄有對應於使用者所執行之操作的大量指令且每一指令的資料量皆很大(例如,此些大量指令的總資料量大於256MB),且提交佇列SQ(1)中僅記錄有資料量很小的少量指令(例如,此些少量指令的總資料量小於4MB)的情況下,由於記憶體管理電路502會先將具有特定資料量(例如,約6MB)的至少一第一指令緩存至待完成指令佇列CQ(0)~CQ(5),再將上述資料量很小(例如,小於4MB)的至少一第二指令接續地緩存至待完成指令佇列CQ(6)~CQ(9),因此在記憶體管理電路502處理完待完成指令佇列CQ(0)~CQ(5)中之至少一第一指令後,提交佇列SQ(1)中僅存的資料量很小的至少一第二指令即可隨即地被執行。亦或是,若第一提交佇列SQ(0)中記錄有對應於使用者所執行之操作的大量指令,且其他的提交佇列SQ(1)~提交佇列SQ(N)尚未存有指令時,由於記憶體管理電路502會在每讀取完具有特定資料量(例如,約6MB)的至少一第一指令時檢查其他的提交佇列SQ(1)~提交佇列SQ(N)是否有指令被寫入,因此,倘若主機系統11突然收到使用者之另一操作,對應此另一操作的指令亦可以在被記錄於提交佇列SQ(1)~提交佇列SQ(N)中的其中之一後,即時地被記憶體管理電路502所讀取。
如此一來,透過本發明範例實施例的指令獲取機制,僅管某個操作具有大量的指令需被執行,對應於其他操作的指令亦可即時地被執行,由此使用者可感受到其所執行或運作的多個操作被執行的即時性。換言之,在本發明範例實施例中,可避免某個操作佔去記憶體儲存裝置10的大量資源所造成的其他的操作需等待大量之延遲時間才被執行的問題。
圖10是根據本發明的一範例實施例所繪示的從一個提交佇列中獲得符合預定條件的指令的流程圖。
以下將參照圖10來說明本發明是如何判斷從一個提交佇列中所獲得之指令的資料量是否符合預定條件的方法,在此以上述從主機系統11獲得第一提交佇列SQ(0)中符合第一預定條件的至少一第一指令的例子,以及從主機系統11獲得第二提交佇列SQ(1)中符合第二預定條件的至少一第二指令的例子進行說明。在此,所述符合第一預定條件例如是指至少一第一指令的總資料量大於或等於第一預定資料量(例如,6MB)時;而所述符合第二預定條件例如是指至少一第二指令的總資料量大於或等於第二預定資料量(例如,4MB)時。請參照圖10,在步驟S1001中,記憶體管理電路502會依序地讀取多筆具有一數量(亦稱為第一數量)的第一指令,並累加每一筆具有此第一數量的第一指令的資料量以獲得總資料量(亦稱為第一資料量)。接著,在步驟S1003中,記憶體管理電路502會判斷第一資料量是否大於或等於第一預定資料量以決定是否要繼續讀取第一提交佇列中的指令(步驟S1001),或者停止從主機系統11讀取第一提交佇列中的指令(步驟S1005)。
舉例而言,所述第一數量例如為4,第一預定資料量為6MB。在步驟S1001中,記憶體管理電路502會先從第一提交佇列SQ(0)讀取4個指令,並解碼此4個指令以計算其總資料量。假設此時此4個指令的總資料量為7 MB,則記憶體管理電路502會將7 MB視為第一資料量,並判斷第一資料量大於第一預定資料量(即,6MB),因此,在步驟S1005中,記憶體管理電路502會停止從主機系統11讀取第一提交佇列SQ(0)中的指令。換言之,在所累加的第一資料量(即,7MB)一旦超過所述第一預定資料量(即,6MB)時,記憶體管理電路502會判定目前所獲得的具第一資料量(即,7MB)的第一指令已符合所述第一預定條件,並停止從主機系統11讀取第一提交佇列SQ(0)中的指令。此後,記憶體管理電路502會接著從主機系統11獲得第二提交佇列SQ(1)中符合第二預定條件的至少一第二指令。
所述從主機系統11獲得第二提交佇列SQ(1)中符合第二預定條件的至少一第二指令的操作相同或相似於上述從主機系統11獲得第一提交佇列SQ(0)中符合第一預定條件的至少一第一指令的操作,且亦適用上述圖10的步驟。不同之處在於,第一監視電路900(0)與第二監視電路900(1)所記錄的預定資料量可以不相同。類似地,記憶體管理電路502會先從第二提交佇列SQ(1)讀取4個指令,並解碼此4個指令以計算其總資料量。假設此時此4個指令的總資料量為4MB,則記憶體管理電路502會將此4MB視為第二資料量,並判斷此第二資料量(即,4MB)等於(即,非大於)第二預定資料量(即,4MB)。換言之,此時的第二資料量(即,4MB)剛好達到第二預定資料量(即,4MB),因此,記憶體管理電路502會判定具第二資料量的第二指令符合第二預定條件,並停止從主機系統11讀取第二提交佇列SQ(1)中的指令。
本發明上述範例實施例是在所累加的資料量一旦達到或超過預定資料量時,就停止從主機系統11中當前的提交佇列中抓取指令,並切換至下一個提交佇列中抓取指令。如此一來,若當前的提交佇列中儲存有大量資料時,其他提交佇列中之指令亦不會被延遲執行。然而,本發明並不限於此,例如,在另一範例實施例中,記憶體管理電路502是在所累加的資料量還未達到所述預定資料量時,即停止從主機系統11讀取當前的提交佇列中的指令。
圖11是根據本發明的另一範例實施例所繪示的從一個提交佇列中獲得符合預定條件的指令的流程圖。
請參照圖11,在此仍以上述從主機系統11獲得第一提交佇列SQ(0)中符合第一預定條件的至少一第一指令的例子,以及從主機系統11獲得第二提交佇列SQ(1)中符合第二預定條件的至少一第二指令的例子進行說明。舉例而言,所述第一數量例如為4,第一預定資料量為6MB,而所述第一資料量門檻值例如為1MB。在步驟S1101中,記憶體管理電路502會先從第一提交佇列SQ(0)讀取4個指令,並解碼此4個指令以計算其總資料量。假設此時此4個指令的總資料量為2.5 MB,則記憶體管理電路502會將2.5 MB視為第一資料量,並在步驟S1103中,判斷第一資料量雖未大於第一預定資料量,但第一資料量與第一預定資料量之間的差值(即,3.5MB)非小於第一資料量門檻值(即,1MB),因此,記憶體管理電路502會執行步驟S1101以再讀取下一筆具有第一數量的第一指令。例如,記憶體管理電路502接著從第一提交佇列SQ(0)所讀取的下一筆4個指令的總資料量為3MB,則記憶體管理電路502會累加此兩筆指令的總資料量以獲得第一資料量,此時,第一資料量為5.5MB。因此,在步驟S1103中,記憶體管理電路502會判斷目前的第一資料量非大於第一預定資料量,且目前的第一資料量與第一預定資料量之間的差值(即,0.5MB)小於第一資料量門檻值(即,1MB),並執行步驟S1105以停止從主機系統11讀取第一提交佇列SQ(0)中的指令。也就是說,在所累加的第一資料量(即,5.5MB)未達到所述第一預定資料量(即,6MB),但第一資料量與第一預定資料量兩者之間的差值小於第一資料量門檻值時,記憶體管理電路502會判斷再繼續從第一提交佇列SQ(0)讀取下一筆4個指令後所累加的總資料量可能會超過所述第一預定資料量(即,6MB),進而判定目前所獲得的具第一資料量(即,5.5MB)的第一指令已符合所述第一預定條件。
類似地,在判定所取得之至少一第一指令的第一資料量已符合第一預定條件之後,記憶體管理電路502會接續地從主機系統11獲得第二提交佇列SQ(1)中符合第二預定條件的至少一第二指令。所述從主機系統11獲得第二提交佇列SQ(1)中符合第二預定條件的至少一第二指令的操作相同或相似於上述從主機系統11獲得第一提交佇列SQ(0)中符合第一預定條件的至少一第一指令的操作,且亦適用上述圖11中的步驟。不同之處在於,由於第一監視電路900(0)與第二監視電路900(1)所記錄的預定資料量並不相同,因此,第一監視電路900(0)與第二監視電路900(1)各自作為判斷條件的資料量門檻值亦可被設為不同的值,例如,在從主機系統11獲得第二提交佇列SQ(1)中符合第二預定條件的至少一第二指令的操作中,第二資料量門檻值是被設為0.5MB。然而,本發明並不限於此,例如,在另一範例實施例中,第二資料量門檻值亦可被設為與第一資料量門檻值相同的值。
舉例而言,假設第二提交佇列SQ(1)中僅記錄有資料量很小的少量指令,例如,此些少量指令的總資料量為3 MB,則記憶體管理電路502會讀取第二提交佇列SQ(1)中所有的指令(亦稱為至少一第二指令),並將此3MB的資料視為第二資料量。特別是,由於記憶體管理電路502已將第二提交佇列SQ(1)中所有的指令皆讀取出來,且此第二資料量(即,3MB)非大於第二預定資料量(即,4MB)。因此,記憶體管理電路502不會考慮第二資料量(即,3MB)與第二預定資料量(即,4MB)之間的差值是否小於第二資料量門檻值(即,0.5MB),且記憶體管理電路502會判定具第二資料量的第二指令符合第二預定條件,並直接停止從主機系統11讀取第二提交佇列SQ(1)中的指令。如此一來,對應於第二提交佇列SQ(1)中之指令的操作,可即時地被執行且完成,進而使得使用者可感受到其所執行或運作的多個不同的操作被執行的即時性。
應理解,本發明上述第一預定資料量、第二預定資料量、第一資料量門檻值、第二資料量門檻值、第一數量與第二數量的值僅為範例值,而非用以限制本發明。此外,上述第一指令與第二指令例如為寫入指令或讀取指令,具體而言,在本發明範例實施例中,上述從主機系統11獲得第一提交佇列SQ(0)中符合第一預定條件的至少一第一指令的操作中,記憶體管理電路502僅將第一提交佇列SQ(0)中寫入指令或讀取指令的資料量做為判斷是否符合第一預定條件的指令;或者上述從主機系統11獲得第二提交佇列SQ(1)中符合第二預定條件的至少一第二指令的操作中,記憶體管理電路502僅將第二提交佇列SQ(1)中寫入指令或讀取指令的資料量做為判斷是否符合第二預定條件的指令。然而,本發明並不限於此,例如,在另一範例實施例中,第一指令包括寫入指令或讀取指令以外的指令,且第二指令包括寫入指令或讀取指令以外的指令。
需注意的是,本發明並不欲限制每一提交佇列所對應的預定資料量,舉例而言,在本發明範例實施例中,每一個提交佇列所存放的指令可分別對應於不同使用者所執行的操作,或者同一個使用者所執行的不同類型的操作。例如,不同的提交佇列用以存放執行不同應用程式時所下達或產生的指令。據此,記憶體管理電路502可根據對應每一個提交佇列所儲存之指令類型,來設定監視電路900(0)~監視電路900(N)所記錄的預定資料量。也就是說,每一個提交佇列所對應的預定資料量可根據其所儲存之指令類型、性質與重要程度而動態地被調整,例如,在本範例實施例中,對應第二提交佇列SQ(1)的第二預定資料量不同於對應第一提交佇列SQ(0)的第一預定資料量。然而,本發明並不限於此。在另一範例實施例中,不同的提交佇列所對應的監視電路亦可記錄相同的預定資料量,例如,對應第二提交佇列SQ(1)的第二預定資料量可相同於對應第一提交佇列SQ(0)的第一預定資料量。
此外,本發明上述從對應的提交佇列SQ(0)~提交佇列SQ(N)獲取符合預定資料量之指令的操作,是透過硬體電路(即,監視電路900(0)~監視電路900(N))來實作。然而,在另一範例實施例中,從對應的提交佇列SQ(0)~提交佇列SQ(N)獲取符合預定資料量之指令的操作亦可以軟體的形式來實作,本發明並不加以限制。
值的一提的是,在現有的WRR機制底下,每一提交佇列雖可被劃分為具有不同的優先權,例如,不同的優先權的提交佇列對應至不同的權重值(即,指令讀取數量)。然而,由於每一筆指令的資料量並不相同,因此,從不同的優先權的提交指令所提取的不同數量的指令,仍可能具有相同的總資料量。舉例而言,請再參照圖8,記憶體管理電路502根據權重值,從高優先權的提交佇列SQ(0)~SQ(1)中分別讀取10個指令,以及從中優先權的提交佇列SQ(2)~SQ(3)中分別讀取8個指令。倘若提交佇列SQ(0)~SQ(1)中每一筆指令的資料量為4MB,而提交佇列SQ(2)~SQ(3)中每一筆指令的資料量為5MB,則記憶體管理電路502從提交佇列SQ(0)~SQ(1)所讀取的共20個指令的總資料量為80 MB,從提交佇列SQ(2)~SQ(3)所讀取的共16個指令的總資料量亦為80 MB。亦即,僅管不同的優先權的提交佇列具有不同的權重值,從不同的優先權的提交佇列所讀取之指令的總資料量仍可能會相同。換言之,現有的WRR機制底下的權重機制並不客觀,且並未考量到提交佇列中所儲存之指令的類型,也未考量到所讀取之指令的總資料量在記憶體儲存裝置中所佔的資源。反觀本發明,在本發明範例實施例中,記憶體管理電路502可根據指令類型、性質與重要程度來設定每一個提交佇列所對應的預定資料量,且所讀取的分別對應提交佇列SQ(0)~提交佇列SQ(N)之指令會實質上分別具有特定的資料量。據此,本發明範例實施例不僅可解決某個操作佔去記憶體儲存裝置10的大量資源所造成的其他的操作需等待大量之延遲時間才被執行的問題,更考量到每一個提交佇列中指令的類型、性質與重要程度,以有效地達到賦予每一提交佇列之權重值的目的。
圖12是根據本發明的一範例實施例所繪示的資料傳輸方法的流程圖。
請參照圖12,在步驟S1201中,記憶體管理電路502從主機系統11獲得第一提交佇列中的至少一第一指令,並判斷所述至少一第一指令的第一資料量是否符合第一預定條件。
在步驟S1203中,當所述第一資料量符合所述第一預定條件時,獲得第二提交佇列中的至少一第二指令。
接著,在步驟S1205中,記憶體管理電路502對記憶體儲存裝置10中的可複寫式非揮發性記憶體模組406依序地執行對應所述至少一第一指令與所述至少一第二指令的資料存取操作。
然而,圖12中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖12中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖12的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,本發明範例實施例提出的資料傳輸方法、記憶體儲存裝置與記憶體控制電路單元,可根據對應每一提交佇列的預定資料量來分別地從每一提交佇列中獲取具特定資料量的指令,進而依序地將每一提交佇列中具特定資料量的指令緩存至記憶體儲存裝置。如此一來,記憶體儲存裝置將不會因某個具有大量指令的操作而被佔去的大量資源與空間,進而滿足對應不同操作之指令被執行的即時性,由此使用者端將不會產生部分操作需等待大量之延遲時間才被執行的問題。另一方面,透過本發明根據指令類型、性質與重要程度來設定每一個提交佇列所對應的預定資料量的操作,可有效地控制從每一提交佇列所讀取之指令的特定資料量,進而達到賦予每一提交佇列之權重值的目的。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
110‧‧‧系統匯流排
111‧‧‧處理器
112‧‧‧隨機存取記憶體
113‧‧‧唯讀記憶體
114‧‧‧資料傳輸介面
12‧‧‧輸入/輸出(I/O)裝置
20‧‧‧主機板
201‧‧‧隨身碟
202‧‧‧記憶卡
203‧‧‧固態硬碟
204‧‧‧無線記憶體儲存裝置
205‧‧‧全球定位系統模組
206‧‧‧網路介面卡
207‧‧‧無線傳輸裝置
208‧‧‧鍵盤
209‧‧‧螢幕
210‧‧‧喇叭
32‧‧‧SD卡
33‧‧‧CF卡
34‧‧‧嵌入式儲存裝置
341‧‧‧嵌入式多媒體卡
342‧‧‧嵌入式多晶片封裝儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧錯誤檢查與校正電路
510‧‧‧緩衝記憶體
512‧‧‧電源管理電路
601‧‧‧儲存區
602‧‧‧取代區
610(0)~610(B)‧‧‧實體單元
612(0)~612(C)‧‧‧邏輯單元
711、721‧‧‧指令佇列
712、722‧‧‧資料緩存
713、723‧‧‧完成佇列
S701‧‧‧步驟(傳送指令通知)
S702‧‧‧步驟(獲得指令)
S703‧‧‧步驟(傳送讀取資料或獲得寫入資料)
S704‧‧‧步驟(傳送完成資料)
ASQ‧‧‧管理員提交佇列
SQ(0)~SQ(N)‧‧‧提交佇列
CQ(0)~CQ(M)‧‧‧待完成指令佇列
S81~S84‧‧‧循環機制的獲取指令操作
S85_1~S85_2、S86_1~S86_2、S87_1~S87_2、S801~S803‧‧‧權重循環機制的獲取指令操作
900(0)~900(N)‧‧‧監視電路
S1001‧‧‧步驟(依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有此第一數量的第一指令的資料量以獲得第一資料量)
S1003‧‧‧步驟(判斷第一資料量是否大於或等於第一預定資料量)
S1005‧‧‧步驟(停止從主機系統讀取第一提交佇列中的指令)
S1101‧‧‧步驟(依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有此第一數量的第一指令的資料量以獲得第一資料量)
S1103‧‧‧步驟(判斷第一資料量是否非大於第一預定資料量,其中第一資料量與第一預定資料量之間的差值小於第一資料量門檻值)
S1105‧‧‧步驟(停止從主機系統讀取第一提交佇列中的指令)
S1201‧‧‧步驟(從主機系統獲得第一提交佇列中的至少一第一指令,並判斷所述至少一第一指令的第一資料量是否符合第一預定條件)
S1203‧‧‧步驟(當所述第一資料量符合所述第一預定條件時,獲得第二提交佇列中的至少一第二指令)
S1205‧‧‧步驟(對記憶體儲存裝置中的可複寫式非揮發性記憶體模組依序地執行對應所述至少一第一指令與所述至少一第二指令的資料存取操作)
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖2是根據本發明的另一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。 圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。 圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。 圖6是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。 圖7是根據本發明的一範例實施例所繪示的資料傳輸操作的示意圖。 圖8A是根據本發明的一範例實施例所繪示的NVM express介面標準所定義之指令獲取機制的示意圖。 圖8B是根據本發明的一範例實施例所繪示的NVM express介面標準所定義之另一指令獲取機制的示意圖。 圖9是根據本發明的一範例實施例所繪示的指令獲取機制與資料傳輸的示意圖。 圖10是根據本發明的一範例實施例所繪示的從一個提交佇列中獲得符合預定條件的指令的流程圖。 圖11是根據本發明的另一範例實施例所繪示的從一個提交佇列中獲得符合預定條件的指令的流程圖。 圖12是根據本發明的一範例實施例所繪示的資料傳輸方法的流程圖。
Claims (27)
- 一種資料傳輸方法,用於一記憶體儲存裝置與一主機系統之間的一資料傳輸操作,其中該主機系統記錄多個提交佇列,該資料傳輸方法包括: 從該主機系統獲得一第一提交佇列中的至少一第一指令,並判斷該至少一第一指令的一第一資料量是否符合一第一預定條件; 當該第一資料量符合該第一預定條件時,從該主機系統獲得一第二提交佇列的至少一第二指令;以及 對該記憶體儲存裝置中的一可複寫式非揮發性記憶體模組依序地執行對應該至少一第一指令與該至少一第二指令的資料存取操作。
- 如申請專利範圍第1項所述的資料傳輸方法,其中判斷該至少一第一指令的該第一資料量是否符合該第一預定條件的步驟包括: 依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有該第一數量的第一指令的資料量以獲得該第一資料量;以及 當該第一資料量大於或等於一第一預定資料量時,判定該第一資料量符合該第一預定條件,並停止從該主機系統讀取該第一提交佇列中的指令。
- 如申請專利範圍第2項所述的資料傳輸方法,其中該第二提交佇列的該至少一第二指令符合一第二預定條件,且該第二預定條件為該至少一第二指令的一第二資料量大於或等於一第二預定資料量,其中該第二預定資料量不同於該第一預定資料量。
- 如申請專利範圍第1項所述的資料傳輸方法,其中判斷該至少一第一指令的該第一資料量是否符合該第一預定條件的步驟更包括: 依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有該第一數量的第一指令的資料量以獲得該第一資料量;以及 當該第一資料量非大於一第一預定資料量時,判定該第一資料量符合該第一預定條件,並停止從該主機系統讀取該第一提交佇列中的指令,其中該第一資料量與該第一預定資料量之間的差值小於一第一資料量門檻值。
- 如申請專利範圍第4項所述的資料傳輸方法,其中該第二提交佇列的該至少一第二指令符合一第二預定條件,且該第二預定條件為該至少一第二指令的一第二資料量非大於一第二預定資料量,其中該第二資料量與該第二預定資料量之間的差值小於一第二資料量門檻值,其中該第二預定資料量不同於該第一預定資料量,且該第二資料量門檻值不同於該第一資料量門檻值。
- 如申請專利範圍第1項所述的資料傳輸方法,其中當該第一資料量符合該第一預定條件時,從該主機系統獲得該第二提交佇列中的該至少一第二指令的步驟更包括: 將符合該第一預定條件的該至少一第一指令放入一指令佇列中;以及 將該至少一第二指令放入該指令佇列中的該至少一第一指令之後。
- 如申請專利範圍第1項所述的資料傳輸方法,其中該至少一第一指令包括寫入指令或讀取指令,以及該至少一第二指令包括寫入指令或讀取指令。
- 如申請專利範圍第1項所述的資料傳輸方法,其中從該主機系統獲得該第一提交佇列中的該至少一第一指令的步驟是反應於來自該主機系統的一指令通知, 其中該指令通知指示該些提交佇列中至少一提交佇列儲存有至少一指令。
- 如申請專利範圍第1項所述的資料傳輸方法,其中該記憶體儲存裝置相容於一快速非揮發性記憶體(NVM express)介面標準。
- 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統,其中該主機系統記錄多個提交佇列; 一可複寫式非揮發性記憶體模組;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元用以從該主機系統獲得一第一提交佇列中的至少一第一指令,並判斷該至少一第一指令的一第一資料量是否符合一第一預定條件, 其中該記憶體控制電路單元更用以當該第一資料量符合該第一預定條件時,從該主機系統獲得一第二提交佇列中的至少一第二指令, 其中該記憶體控制電路單元更用以發送一第一存取指令序列以指示對該可複寫式非揮發性記憶體模組依序地執行對應該至少一第一指令與該至少一第二指令的資料存取操作。
- 如申請專利範圍第10項所述的記憶體儲存裝置,其中在判斷該至少一第一指令的該第一資料量是否符合該第一預定條件的操作中,該記憶體控制電路單元更用以依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有該第一數量的第一指令的資料量以獲得該第一資料量, 其中該記憶體控制電路單元更用以當該第一資料量大於或等於一第一預定資料量時,判定該第一資料量符合該第一預定條件,並停止從該主機系統讀取該第一提交佇列中的指令。
- 如申請專利範圍第11項所述的記憶體儲存裝置,其中該第二提交佇列的該至少一第二指令符合一第二預定條件,且該第二預定條件為該至少一第二指令的一第二資料量大於或等於一第二預定資料量,其中該第二預定資料量不同於該第一預定資料量。
- 如申請專利範圍第10項所述的記憶體儲存裝置,其中在判斷該至少一第一指令的該第一資料量是否符合該第一預定條件的操作中,該記憶體控制電路單元更用以依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有該第一數量的第一指令的資料量以獲得該第一資料量, 其中該記憶體控制電路單元更用以當該第一資料量非大於一第一預定資料量時,判定該第一資料量符合該第一預定條件,並停止從該主機系統讀取該第一提交佇列中的指令,其中該第一資料量與該第一預定資料量之間的差值小於一第一資料量門檻值。
- 如申請專利範圍第13項所述的記憶體儲存裝置,其中該第二提交佇列的該至少一第二指令符合一第二預定條件,且該第二預定條件為該至少一第二指令的一第二資料量非大於一第二預定資料量,其中該第二資料量與該第二預定資料量之間的差值小於一第二資料量門檻值,其中該第二預定資料量不同於該第一預定資料量,且該第二資料量門檻值不同於該第一資料量門檻值。
- 如申請專利範圍第10項所述的記憶體儲存裝置,其中當該第一資料量符合該第一預定條件時,從該主機系統獲得該第二提交佇列中的該至少一第二指令的操作中,該記憶體控制電路單元更用以將符合該第一預定條件的該至少一第一指令放入一指令佇列中,以及將該至少一第二指令放入該指令佇列中的該至少一第一指令之後。
- 如申請專利範圍第10項所述的記憶體儲存裝置,其中該至少一第一指令包括寫入指令或讀取指令,以及該至少一第二指令包括寫入指令或讀取指令。
- 如申請專利範圍第10項所述的記憶體儲存裝置,其中從該主機系統獲得該第一提交佇列中的該至少一第一指令的操作是反應於來自該主機系統的一指令通知, 其中該指令通知指示該些提交佇列中至少一提交佇列儲存有至少一指令。
- 如申請專利範圍第10項所述的記憶體儲存裝置,其中該記憶體儲存裝置相容於一快速非揮發性記憶體介面標準。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統,其中該主機系統記錄多個提交佇列; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及 一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路包括多個監視電路,且各個監視電路分別對應至該些提交佇列中的至少一提交佇列, 其中該記憶體管理電路用以從該主機系統獲得一第一提交佇列中的至少一第一指令,並判斷該至少一第一指令的一第一資料量是否符合一第一預定條件, 其中該記憶體管理電路用以當該第一資料量符合該第一預定條件時,從該主機系統獲得一第二提交佇列中的至少一第二指令, 其中該記憶體管理電路更用以發送一第一存取指令序列以指示對該可複寫式非揮發性記憶體模組依序地執行對應該至少一第一指令與該至少一第二指令的資料存取操作。
- 如申請專利範圍第19項所述的記憶體控制電路單元,其中該些監視電路中的一第一監視電路用以記錄一第一預定資料量,且在判斷該至少一第一指令的該第一資料量是否符合該第一預定條件的操作中,該記憶體管理電路更用以依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有該第一數量的第一指令的資料量以獲得該第一資料量, 其中該記憶體管理電路更用以當該第一資料量大於或等於該第一預定資料量時,判定該第一資料量符合該第一預定資料量,並停止從該主機系統讀取該第一提交佇列中的指令。
- 如申請專利範圍第20項所述的記憶體控制電路單元,其中該些監視電路中的一第二監視電路用以記錄一第二預定資料量,且該第二提交佇列的該至少一第二指令符合該第二預定條件,其中該第二預定條件為該至少一第二指令的一第二資料量大於或等於該第二預定資料量,且該第二預定資料量不同於該第一預定資料量。
- 如申請專利範圍第19項所述的記憶體控制電路單元,該些監視電路中的一第一監視電路用以記錄一第一預定資料量,且在判斷該至少一第一指令的該第一資料量是否符合該第一預定條件的操作中,該記憶體管理電路更用以依序地讀取多筆具有第一數量的第一指令,並累加每一筆具有該第一數量的第一指令的資料量以獲得該第一資料量, 其中該記憶體管理電路更用以當該第一資料量非大於該第一預定資料量時,判定該第一資料量符合該第一預定條件,並停止從該主機系統讀取該第一提交佇列中的指令,其中該第一資料量與該第一預定資料量之間的差值小於一第一資料量門檻值。
- 如申請專利範圍第22項所述的記憶體控制電路單元,其中該些監視電路中的一第二監視電路用以記錄一第二預定資料量,且該第二提交佇列的該至少一第二指令符合該第二預定條件,其中該第二預定條件為該至少一第二指令的一第二資料量非大於該第二預定資料量,且該第二資料量與該第二預定資料量之間的差值小於一第二資料量門檻值,其中該第二預定資料量不同於該第一預定資料量,且該第二資料量門檻值不同於該第一資料量門檻值。
- 如申請專利範圍第19項所述的記憶體控制電路單元,其中當該第一資料量符合該第一預定條件時,從該主機系統獲得該第二提交佇列中的該至少一第二指令的操作中,該記憶體管理電路更用以將符合該第一預定條件的該至少一第一指令放入一指令佇列中,以及將該至少一第二指令放入該指令佇列中的該至少一第一指令之後。
- 如申請專利範圍第19項所述的記憶體控制電路單元,其中該至少一第一指令包括寫入指令或讀取指令,以及該至少一第二指令包括寫入指令或讀取指令。
- 如申請專利範圍第19項所述的記憶體控制電路單元,其中從該主機系統獲得該第一提交佇列中的該至少一第一指令的操作是反應於來自該主機系統的一指令通知, 其中該指令通知指示該些提交佇列中至少一提交佇列儲存有至少一指令。
- 如申請專利範圍第19項所述的記憶體控制電路單元,其中該記憶體控制電路單元相容於一快速非揮發性記憶體介面標準。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106101491A TWI601060B (zh) | 2017-01-17 | 2017-01-17 | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 |
US15/452,737 US10664167B2 (en) | 2017-01-17 | 2017-03-08 | Data transmitting method, memory storage device and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106101491A TWI601060B (zh) | 2017-01-17 | 2017-01-17 | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI601060B TWI601060B (zh) | 2017-10-01 |
TW201828035A true TW201828035A (zh) | 2018-08-01 |
Family
ID=61011107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106101491A TWI601060B (zh) | 2017-01-17 | 2017-01-17 | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10664167B2 (zh) |
TW (1) | TWI601060B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908591A (zh) * | 2018-09-17 | 2020-03-24 | 群联电子股份有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
TWI717816B (zh) * | 2019-08-28 | 2021-02-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
CN112445417A (zh) * | 2019-09-05 | 2021-03-05 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
TWI793966B (zh) * | 2022-01-10 | 2023-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
US11704065B2 (en) | 2020-11-10 | 2023-07-18 | Kioxia Corporation | Memory system limiting fetching from host submission queue based on free space of corresponding completion queue and control method thereof |
TWI840795B (zh) * | 2021-04-28 | 2024-05-01 | 聯發科技股份有限公司 | 主機系統及其操作方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102353363B1 (ko) * | 2017-08-14 | 2022-01-20 | 에스케이하이닉스 주식회사 | 메모리 시스템의 동작 방법 |
JP6767532B2 (ja) * | 2019-03-11 | 2020-10-14 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
JP2021033845A (ja) * | 2019-08-28 | 2021-03-01 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11372586B2 (en) * | 2020-05-19 | 2022-06-28 | Hewlett Packard Enterprise Development Lp | System and method for regulating NVMe-oF command requests and data flow across a network with mismatched rates |
US11698753B2 (en) * | 2021-02-17 | 2023-07-11 | Kioxia Corporation | Fairshare between multiple SSD submission queues |
US11907577B2 (en) | 2021-12-06 | 2024-02-20 | Western Digital Technologies, Inc. | Command queuing for data storage devices |
TWI840734B (zh) * | 2022-01-10 | 2024-05-01 | 群聯電子股份有限公司 | 指令管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200705180A (en) * | 2005-07-29 | 2007-02-01 | Genesys Logic Inc | Adjustable flash memory management system and method |
US20120221767A1 (en) * | 2011-02-28 | 2012-08-30 | Apple Inc. | Efficient buffering for a system having non-volatile memory |
TWI545588B (zh) * | 2013-02-06 | 2016-08-11 | 群聯電子股份有限公司 | 控制方法、連接器與記憶體儲存裝置 |
CN104008072B (zh) | 2013-02-22 | 2018-06-15 | 群联电子股份有限公司 | 控制方法、连接器与存储器存储装置 |
TWI493455B (zh) * | 2013-07-02 | 2015-07-21 | Phison Electronics Corp | 命令佇列管理方法、記憶體控制器及記憶體儲存裝置 |
CN105740178B (zh) | 2014-12-09 | 2018-11-16 | 扬智科技股份有限公司 | 芯片网络系统以及其形成方法 |
-
2017
- 2017-01-17 TW TW106101491A patent/TWI601060B/zh active
- 2017-03-08 US US15/452,737 patent/US10664167B2/en active Active
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908591A (zh) * | 2018-09-17 | 2020-03-24 | 群联电子股份有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
CN110908591B (zh) * | 2018-09-17 | 2023-05-30 | 群联电子股份有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
TWI717816B (zh) * | 2019-08-28 | 2021-02-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
US11301311B2 (en) | 2019-08-28 | 2022-04-12 | Phison Electronics Corp. | Memory control method, memory storage device, and memory control circuit unit |
CN112445417A (zh) * | 2019-09-05 | 2021-03-05 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN112445417B (zh) * | 2019-09-05 | 2023-02-28 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
US11704065B2 (en) | 2020-11-10 | 2023-07-18 | Kioxia Corporation | Memory system limiting fetching from host submission queue based on free space of corresponding completion queue and control method thereof |
TWI820426B (zh) * | 2020-11-10 | 2023-11-01 | 日商鎧俠股份有限公司 | 記憶體系統及控制方法 |
TWI840795B (zh) * | 2021-04-28 | 2024-05-01 | 聯發科技股份有限公司 | 主機系統及其操作方法 |
TWI793966B (zh) * | 2022-01-10 | 2023-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Also Published As
Publication number | Publication date |
---|---|
US10664167B2 (en) | 2020-05-26 |
TWI601060B (zh) | 2017-10-01 |
US20180203605A1 (en) | 2018-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI601060B (zh) | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI595412B (zh) | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI650639B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
US11086564B2 (en) | Temperature control method, memory storage device and memory control circuit unit | |
TWI658361B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN106775436B (zh) | 数据存取方法、存储器控制电路单元与存储器 | |
CN106874223B (zh) | 数据传输方法、存储器存储装置及存储器控制电路单元 | |
US11216334B1 (en) | Data reading method, memory storage device and memory control circuit unit | |
CN107817943B (zh) | 数据传输方法、存储器存储装置及存储器控制电路单元 | |
CN112463018B (zh) | 指令传送方法、存储器控制电路单元及存储器存储装置 | |
TWI672593B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW202420099A (zh) | 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI757216B (zh) | 溫度控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI739676B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI658402B (zh) | 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN116225329A (zh) | 存储器的性能匹配方法、存储装置及存储器控制电路 | |
US10884660B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
CN112486417A (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TWI810719B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI886949B (zh) | 裝置控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN117632038B (zh) | 损耗平衡方法、存储器存储装置及存储器控制电路单元 | |
TWI728448B (zh) | 指令傳送方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI793966B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN110659229B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 |