TWI595412B - 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI595412B TWI595412B TW105129269A TW105129269A TWI595412B TW I595412 B TWI595412 B TW I595412B TW 105129269 A TW105129269 A TW 105129269A TW 105129269 A TW105129269 A TW 105129269A TW I595412 B TWI595412 B TW I595412B
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- memory
- data
- host system
- access operation
- 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/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
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
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)
- Memory System (AREA)
Description
本發明是有關於一種資料傳輸機制,且特別是有關於一種資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
在某些資料傳輸系統中,當儲存裝置完成主機系統所交辦的存取任務(例如,從儲存裝置中讀取資料或將資料寫入至儲存裝置)之後,儲存裝置會即時地回傳一個完成訊息給主機系統,以藉由此完成訊息告知主機系統相關的存取操作已完成。此外,主機系統也可以根據接收到的完成訊息評估儲存裝置的資料存取速度。
一般來說,儲存裝置會優先使用最高的存取速度來支援主機系統的存取操作。然而,在某些情況下(例如,主機系統連續寫入大量資料時),儲存裝置可能會因為其內部需要進行資料搬移等操作而降低資料存取速度,甚至可能會短時間的暫停存取資料。在完成相關的資料搬移等操作後,儲存裝置會再次回到最高的存取速度。因此,在連續的存取操作中,主機系統根據所接收到的完成訊息會量測到儲存裝置的資料存取速度是相當不穩定的,從而連帶影響到對於儲存裝置的效能評核。
本發明提供一種資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元,可穩定主機系統量測到的資料存取速度。
本發明的一範例實施例提供一種資料傳輸方法,其用於包括可複寫式非揮發性記憶體模組的記憶體儲存裝置,所述資料傳輸方法包括:從主機系統獲得第一指令並計數第一時間值;對所述可複寫式非揮發性記憶體模組執行對應於所述第一指令的第一存取操作;產生對應於所述第一存取操作之完成的第一完成訊息並將所述第一完成訊息緩存在緩存區;以及若所述第一時間值符合第一等待時間值,將緩存在所述緩存區的所述第一完成訊息傳送至所述主機系統。
在本發明的一範例實施例中,所述的資料傳輸方法更包括:計數回應閒置時間值並根據所述回應閒置時間值更新指示值;在開始計數所述回應閒置時間值之後,從所述主機系統獲得第三指令;若所述指示值與所述第三指令所指示存取之資料的資料量符合第一條件,在完成對應於所述第三指令的第三存取操作之後,允許傳送對應於所述第三存取操作之完成的第三完成訊息至所述主機系統;以及若所述指示值與所述第三指令所指示存取之資料的資料量不符合所述第一條件,根據所述指示值與所述第三指令所指示存取之資料的資料量決定第二等待時間值,其中所述第二等待時間值用以控制傳送所述第三完成訊息至所述主機系統的時間點。
在本發明的一範例實施例中,所述的資料傳輸方法更包括:從所述主機系統獲得第四指令;若緩存在所述緩存區之完成訊息的總數達到第一門檻值,暫停對所述可複寫式非揮發性記憶體模組執行對應於所述第四指令的第四存取操作;以及若緩存在所述緩存區之所述完成訊息的所述總數降至第二門檻值,允許執行所述第四存取操作。
在本發明的一範例實施例中,所述的資料傳輸方法更包括:在暫停執行所述第四存取操作之期間,持續將緩存在所述緩存區之完成訊息傳送至所述主機系統。
本發明的另一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組,所述記憶體控制電路單元用以從所述主機系統獲得第一指令並計數第一時間值,所述記憶體控制電路單元更用以發送第一存取指令序列以指示對所述可複寫式非揮發性記憶體模組執行對應於所述第一指令的第一存取操作,所述記憶體控制電路單元更用以產生對應於所述第一存取操作之完成的第一完成訊息並將所述第一完成訊息緩存在緩存區,若所述第一時間值符合第一等待時間值,所述記憶體控制電路單元更用以將緩存在所述緩存區的所述第一完成訊息傳送至所述主機系統。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以計數回應閒置時間值並根據所述回應閒置時間值更新指示值,在開始計數所述回應閒置時間值之後,所述記憶體控制電路單元更用以從所述主機系統獲得第三指令,若所述指示值與所述第三指令所指示存取之資料的資料量符合第一條件,所述記憶體控制電路單元更用以在完成對應於所述第三指令的第三存取操作之後,允許傳送對應於所述第三存取操作之完成的第三完成訊息至所述主機系統,若所述指示值與所述第三指令所指示存取之資料的資料量不符合所述第一條件,所述記憶體控制電路單元更用以根據所述指示值與所述第三指令所指示存取之資料的資料量決定第二等待時間值,其中所述第二等待時間值用以控制傳送所述第三完成訊息至所述主機系統的時間點。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以從所述主機系統獲得第四指令,若緩存在所述緩存區之完成訊息的總數達到第一門檻值,所述記憶體控制電路單元更用以暫停對所述可複寫式非揮發性記憶體模組執行對應於所述第四指令的第四存取操作,若緩存在所述緩存區之所述完成訊息的所述總數降至第二門檻值,所述記憶體控制電路單元更用以允許執行所述第四存取操作。
在本發明的一範例實施例中,在暫停執行所述第四存取操作之期間,所述記憶體控制電路單元更用以持續將緩存在所述緩存區之完成訊息傳送至所述主機系統。
在本發明的一範例實施例中,所述記憶體儲存裝置相容於快速非揮發性記憶體(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是相容於快速非揮發性記憶體(NVM express)介面標準。然而,在另一範例實施例中,連接介面單元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的存取操作。
在本範例實施例中,記憶體儲存裝置10是相容於NVM express介面標準。相對於採用序列先進附件(Serial Advanced Technology Attachment, SATA)標準的儲存裝置,記憶體儲存裝置10與主機系統11之間的溝通機制有些許不同。
圖7是根據本發明的一範例實施例所繪示的資料傳輸操作的示意圖。
請參照圖7,當主機系統11欲對記憶體儲存裝置10執行存取操作(例如,從記憶體儲存裝置10讀取資料或將資料寫入至記憶體儲存裝置10)時,主機系統11的處理器111會將準備好的指令放置在一個指令佇列(command queue)711中。然後,處理器111會傳送一個通知給記憶體儲存裝置10(步驟S701)。在一範例實施例中,步驟S701之操作亦稱為響鈴(ring)。須注意的是,在NVM express介面標準下,在發出通知之後,主機系統11對於記憶體儲存裝置10的主動行為至此結束。
記憶體管理電路502會接收此通知並主動地從指令佇列711中讀取對應於此通知的一或多個指令(步驟S702)。例如,所獲得的指令會被緩存在一個指令佇列721。根據指令佇列721中的指令,記憶體管理電路502會執行相應的存取操作。例如,根據一個讀取指令,記憶體管理電路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、資料緩存712及完成佇列713是位於主機系統11的隨機存取記憶體112中,並且指令佇列721、資料緩存722及完成佇列723是位於記憶體儲存裝置10的緩衝記憶體510中。然而,在另一範例實施例中,指令佇列711、資料緩存712及完成佇列713中的任一者亦可以是位於主機系統11之其他的儲存媒體中,並且指令佇列721、資料緩存722及完成佇列723中的任一者也可以是位於記憶體儲存裝置10之其他的儲存媒體(例如,可複寫式非揮發性記憶體模組406)中。
更具體來看,當記憶體管理電路502從主機系統11獲得一個指令(以下亦稱為第一指令)時,記憶體管理電路502會開始計數一個時間值(以下亦稱為第一時間值)。隨著時間經過,計數的第一時間值會持續增加。另外,記憶體管理電路502也會發送一個存取指令序列(以下亦稱為第一存取指令序列)以指示對可複寫式非揮發性記憶體模組406執行對應於第一指令的一個存取操作(以下亦稱為第一存取操作)。當完成第一存取操作後,記憶體管理電路502會產生對應於第一存取操作之完成的一個完成訊息(以下亦稱為第一完成訊息)並將第一完成訊息緩存在一個緩存區。例如,圖7的範例實施例的完成佇列723即位於此緩存區中,並且此緩存區可以位於緩衝記憶體510或可複寫式非揮發性記憶體模組406中。然後,記憶體管理電路502會判斷第一時間值是否符合一個等待時間值(以下亦稱為第一等待時間值)。若第一時間值不符合第一等待時間值(例如,第一時間值小於第一等待時間值),記憶體管理電路502會持續將第一完成訊息緩存在緩存區中。或者,若第一時間值符合第一等待時間值(例如,第一時間值等於或大於第一等待時間值),記憶體管理電路502會將緩存在緩存區的第一完成訊息傳送至主機系統11。
換言之,在圖7的範例實施例中,即便完成佇列723中有一個以上待傳送的完成訊息,記憶體管理電路502也可能不會立即地將其傳送給主機系統11,而是會等待對應於此完成訊息的時間值達到一個等待時間值之後才會將其傳送給主機系統11。藉由管控傳送每一個完成訊息的時間點或傳送任兩個完成訊息之間的時間間隔,主機系統11可以根據接收到的完成訊息判定記憶體儲存裝置10執行的資料存取速度是穩定的。
圖8是根據本發明的一範例實施例所繪示的管理完成訊息之操作的示意圖。
請參照圖8,假設記憶體管理電路502連續地從主機系統11獲得指令W0~W3,其中每一者都是一個寫入指令。在時間點ti,記憶體管理電路502開始執行對應於指令W0的存取操作。例如,記憶體管理電路502會從主機系統11獲得資料D0並指示可複寫式非揮發性記憶體模組406儲存資料D0。
假設對應於指令W0的存取操作在時間點t0完成,記憶體管理電路502會產生一個完成訊息C0。完成訊息C0會被緩存在一個緩存區(例如,圖7的完成佇列723)並且用於通知主機系統11對應於指令W0的存取操作已完成。然後,記憶體管理電路502會接續執行對應於下一個指令W1的存取操作。例如,記憶體管理電路502會從主機系統11獲得資料D1並指示可複寫式非揮發性記憶體模組406儲存資料D1。
假設對應於指令W1的存取操作在時間點t1完成,記憶體管理電路502會產生一個完成訊息C1。完成訊息C1也會被緩存在上述緩存區並且用於通知主機系統11對應於指令W1的存取操作已完成。然後,記憶體管理電路502會接續執行對應於下一個指令W2的存取操作。例如,記憶體管理電路502會從主機系統11獲得資料D2並指示可複寫式非揮發性記憶體模組406儲存資料D2。
以此類推,在時間點t2,對應於寫入資料D2之存取操作之完成,一個完成訊息C2被產生。完成訊息C2用於通知主機系統11對應於指令W2的存取操作已完成。然後,下一個指令W3的存取操作會被執行並且資料D3會被從主機系統11獲得並且被寫入至可複寫式非揮發性記憶體模組406。在時間點t3,對於資料D3的存取操作完成並且一個完成訊息C3會被產生。完成訊息C3用於通知主機系統11對應於指令W3的存取操作已完成。完成訊息C2與C3皆會被緩存在上述緩存區中。
另一方面,在時間點ti(即,開始執行對應於指令W0的存取操作之時間點),記憶體管理電路502會啟動一個計數器並開始計數對應於指令W0的一個時間值。隨著時間經過,此時間值會逐漸增加。在產生完成訊息C0之後,記憶體管理電路502會判斷此時間值之時間長度是否達到一個等待時間值之時間長度TW,其中時間長度TW長於執行對應於指令W0的存取操作之時間的時間長度(即,時間點ti至t0之間的時間長度)。在時間點t0’,對應於指令W0所計數的時間值之時間長度(即,時間點ti至t0’之間的時間長度)等於時間長度TW,因此記憶體管理電路502將緩存在緩存區中的完成訊息C0傳送給主機系統11。
在時間點t0’(即,發送緩存的完成訊息C0之時間點),記憶體管理電路502會啟動一個計數器並開始計數對應於指令W1的一個時間值。隨著時間經過,此時間值也會逐漸增加。記憶體管理電路502會判斷此時間值之時間長度是否達到一個等待時間值之時間長度TW,其中時間長度TW長於執行對應於指令W1的存取操作之時間的時間長度(即,時間點t0至t1之間的時間長度)。在時間點t1’,對應於指令W1所計數的時間值之時間長度(即,時間點t0’至t1’之間的時間長度)等於時間長度TW,因此記憶體管理電路502將緩存在緩存區中的完成訊息C1傳送給主機系統11。
在時間點t1’(即,發送緩存的完成訊息C1之時間點),記憶體管理電路502會啟動一個計數器並開始計數對應於指令W2的一個時間值。隨著時間經過,此時間值也會逐漸增加。記憶體管理電路502會判斷此時間值之時間長度是否達到另一個等待時間值之時間長度2TW(即,2×TW),其中時間長度2TW長於執行對應於指令W2的存取操作之時間的時間長度(即,時間點t1至t2之間的時間長度)。在時間點t2’,對應於指令W2所計數的時間值之時間長度(即,時間點t1’至t2’之間的時間長度)等於時間長度2TW,因此記憶體管理電路502將緩存在緩存區中的完成訊息C2傳送給主機系統11。
在時間點t2’(即,發送緩存的完成訊息C2之時間點),記憶體管理電路502會啟動一個計數器並開始計數對應於指令W3的一個時間值。隨著時間經過,此時間值也會逐漸增加。記憶體管理電路502會判斷此時間值之時間長度是否達到一個等待時間值之時間長度TW,其中時間長度TW長於執行對應於指令W3的存取操作之時間的時間長度(即,時間點t2至t3之間的時間長度)。在時間點t3’,對應於指令W3所計數的時間值之時間長度(即,時間點t2’至t3’之間的時間長度)等於時間長度TW,因此記憶體管理電路502將緩存在緩存區中的完成訊息C3傳送給主機系統11。
須注意的是,在一範例實施例中,用來控制某一完成訊息之傳送的等待時間值之時間長度會正相關於對應於此完成訊息之指令所指示存取之資料的資料量。例如,在圖8的一範例實施例中,指令W2所指示寫入之資料D2的資料量約為指令W1所指示寫入之資料D1的資料量的兩倍,故用來限制完成訊息C2之傳送的等待時間值之時間長度為用來限制完成訊息C2之傳送的等待時間值之時間長度TW的兩倍(即,2×TW)。
在圖8的一範例實施例中,時間長度TW為一個單位等待時間之時間長度,其對應於一個資料單位。例如,在圖8的一範例實施例中,資料D0、D1及D3各別的資料量都是一個資料單位,例如為8千位元組(8KB);而資料D2的資料量則為二個資料單位,例如為16千位元組(16KB)。此外,某一指令所指示存取之資料的資料量可以用此資料使用的邏輯單元之總數來評估。
在一範例實施例中,亦可利用以下方程式(1)來計算指令Wi的完成訊息所對應的等待時間PVi。
PVi=TW×(NLBi+1) (1)
其中,參數TW表示一個單位等待時間之時間長度,並且參數(NLBi+1)表示指令Wi所指示存取之資料所使用的邏輯單元之總數。例如,根據方程式(1),圖8的指令W1所指示寫入之資料D1所對應的等待時間之時間長度會被設為TW,而W2所指示寫入之資料D2所對應的等待時間之時間長度會被設為2TW,以此類推。
在圖8的範例實施例中,假設在時間點t3之後直到時間點ti’才有下一個指令W4的存取操作需要被執行。因此,在時間點t3’至ti’之間,記憶體儲存裝置10與主機系統之間是處於一個閒置狀態。在此閒置狀態下,沒有完成訊息被傳送給主機系統11。在一範例實施例中,記憶體管理電路502還會計數對應於此閒置狀態之時間長度的一個回應閒置時間值。例如,此回應閒置時間值用以表示閒置狀態之時間長度等於多少個單位等待時間之時間長度總合。記憶體管理電路502會根據此回應閒置時間值更新一個指示值。須注意的是,相對於等待時間值是用來延後相應的完成訊息的傳送時間點,此指示值則是用來縮短或忽略後續指令的等待時間值。
請再次參照圖8,在進入閒置狀態(即,時間點t3’)前,指示值是「0」,表示沒有等待時間值需要被縮短或忽略。在進入閒置狀態後,經過一個單位等待時間,指示值被更新為「1」,表示後續的指令可忽略一個單位等待時間。在時間點ti’,閒置狀態之時間長度達到2個單位等待時間(即,時間長度2TW),因此指示值被更新為「2」,表示後續指令可忽略二個單位等待時間。
在時間點ti’之後,記憶體管理電路502依序執行來自主機系統11之指令W4~W7,其中每一個指令為一個寫入指令。例如,在時間點ti’,記憶體管理電路502會從主機系統11獲得資料D4並指示可複寫式非揮發性記憶體模組406儲存資料D4。假設對應於指令W4的存取操作在時間點t4完成,記憶體管理電路502會產生一個完成訊息C4。完成訊息C4會被緩存在緩存區並且用於通知主機系統11對應於指令W4的存取操作已完成。然後,記憶體管理電路502會接續執行對應於下一個指令W5的存取操作。例如,記憶體管理電路502會從主機系統11獲得資料D5並指示可複寫式非揮發性記憶體模組406儲存資料D5。
以此類推,在時間點t5,對應於寫入資料D5之存取操作之完成,一個完成訊息C5被產生。完成訊息C5用於通知主機系統11對應於指令W5的存取操作已完成。然後,下一個指令W6的存取操作會被執行並且資料D6會被從主機系統11獲得並且被寫入至可複寫式非揮發性記憶體模組406。在時間點t6,對於資料D6的存取操作完成並且一個完成訊息C6會被產生。完成訊息C6用於通知主機系統11對應於指令W6的存取操作已完成。然後,下一個指令W7的存取操作會被執行並且資料D7會被從主機系統11獲得並且被寫入至可複寫式非揮發性記憶體模組406。在時間點t7,對於資料D7的存取操作完成並且一個完成訊息C7會被產生。完成訊息C7用於通知主機系統11對應於指令W7的存取操作已完成。完成訊息C4~C7皆會被緩存在上述緩存區中。
另一方面,對應於完成訊息C4,記憶體管理電路502會判斷指示值與指令W4所指示存取之資料的資料量是否符合某一條件(以下亦稱為第一條件)。例如,當前的指示值為「2」(表示有兩個單位等待時間可被忽略)且資料D4的資料量為一個資料單位,故在產生完成訊息C4之後,記憶體管理電路502會允許立即將完成訊息C4從緩存區傳送給主機系統11。由於對應於完成訊息C4的一個單位等待時間被忽略,指示值會被更新為「1」(表示還有一個單位等待時間可被忽略)。
對應於完成訊息C5,記憶體管理電路502也會判斷指示值與指令W5所指示存取之資料的資料量是否符合第一條件。由於當前的指示值為「1」且資料D5的資料量也為一個資料單位,故在產生完成訊息C5之後,記憶體管理電路502也會允許立即將完成訊息C5從緩存區傳送給主機系統11。由於對應於完成訊息C5的一個單位等待時間被忽略,指示值會被更新為「0」(表示後續沒有單位等待時間可被忽略)。
對應於完成訊息C6,記憶體管理電路502也會判斷指示值與指令W6所指示存取之資料的資料量是否符合第一條件。由於當前的指示值為「0」且資料D6的資料量也為一個資料單位,故在產生完成訊息C6之後,記憶體管理電路502會根據指示值與資料D6的資料量決定另一個等待時間值(以下亦稱為第二等待時間值)。此第二等待時間值用以控制傳送完成訊息C6至主機系統的時間點。例如,假設某一資料的資料量為「N」個資料單位(例如,資料使用「N」個邏輯單元)且當前的指示值為「M」(即,「M」個單位等待時間可被忽略)。若「N-M」之值小於或等於零(即,當前指示值與指令所指示存取之資料的資料量符合第一條件),記憶體管理電路502可直接傳送相應的完成訊息,如完成訊息C4與C5。反之,若「N-M」之值大於零(即,當前指示值與指令所指示存取之資料的資料量不符合第一條件)記憶體管理電路502可將第二等待時間值之時間長度設為「N-M」個單位等待時間之時間長度。例如,由於資料D6的資料量為一個資料單位且當前的指示值為「0」,故對應於完成訊息C6的第二等待時間值之時間長度會被設為一個單位等待時間(例如,1-0=1)之時間長度。因此,在時間點t5(即,發送完成訊息C5之時間點),記憶體管理電路502會開始計數對應於指令W6的時間值並且在等待了一個單位等待時間之後,於時間點t6’將緩存在緩存區中的完成訊息C6傳送給主機系統11。
以此類推,由於資料D7的資料量也為一個資料單位且當前的指示值為「0」,故對應於完成訊息C7的第二等待時間值之時間長度也會被設為一個單位等待時間之時間長度。因此,在時間點t6’(即,發送完成訊息C6之時間點),記憶體管理電路502會開始計數對應於指令W7的時間值並且在等待了一個單位等待時間之後,於時間點t7’將緩存在緩存區中的完成訊息C7傳送給主機系統11。
又例如,在圖8的另一範例實施例中,若指令W4所指示存取之資料的資料量為「5」個資料單位且當前的指示值為「2」(即,「2」個單位等待時間可被忽略),則記憶體管理電路502會將對應於完成訊息C4的第二等待時間值之時間長度設為「3」個(5-2=3)單位等待時間之時間長度(即,3×TW)。藉此,完成訊息C4的傳送會被從時間點ti’延後4個單位等待時間之時間長度。以此類推,其餘的完成訊息之傳輸時間點也可以相應被決定,在此不一一贅述。
須注意的是,雖然圖8的範例實施例是以指示將資料寫入至可複寫式非揮發性記憶體模組406的指令W0~W7作為範例進行說明,但是,在其他未提及的範例實施例中,指令W0~W7亦可以替換為指示從可複寫式非揮發性記憶體模組406讀取資料的指令,並相應地控制回傳通知完成資料讀取操作之完成訊息之時間點,在此便不贅述。
此外,如圖8的範例實施例,藉由將大部分的完成訊息的傳輸時間點延後,並使用回應閒置時間來扣除後續的部分延遲時間,對應於每一個資料單位的完成訊息可以較為穩定的被傳送。例如,平均來看,可約略地將傳輸多個完成訊息的頻率控制在每經過一個單位等待時間之時間長度TW就傳送一個資料單位的完成訊息。例如,時間長度TW可以是10µs,但本發明不限制時間長度TW的值。相應的,主機系統11則可以藉由這些穩定傳送的完成訊息而判定記憶體儲存裝置10的資料存取速度也是穩定的。
在一範例實施例中,記憶體管理電路502還會判斷緩存在緩存區之完成訊息的總數是否達到一個門檻值(以下亦稱為第一門檻值)。若緩存在緩存區之完成訊息的總數達到第一門檻值,記憶體管理電路502會暫停對可複寫式非揮發性記憶體模組406執行對應於來自主機系統11之某一個指令的存取操作。然後,若緩存在緩存區之完成訊息的總數降到另一門檻值(以下亦稱為第二門檻值),記憶體管理電路502會允許執行此被暫停的存取操作,其中第一門檻值會等於或高於第二門檻值。
圖9是根據本發明的另一範例實施例所繪示的管理完成訊息之操作的示意圖。
請參照圖9,在時間點T1之前,許多的資料在記憶體儲存裝置10與主機系統11之間傳輸且許多新的完成訊息被緩存至緩存區中。假設在時間點T1,記憶體管理電路502判定當前緩存在緩存區之完成訊息的總數達到第一門檻值,記憶體管理電路502會暫停對可複寫式非揮發性記憶體模組406執行對應於來自主機系統11之指令的存取操作。同時,也不會有新的完成訊息被加入到緩存區中。但是,在暫停對可複寫式非揮發性記憶體模組406執行對應於來自主機系統11之指令的存取操作之期間,已經緩存在緩存區的完成訊息仍然會被持續傳送給主機系統11。藉此,可避免緩存區中累積過多待回覆的完成訊息。然後,在時間點T2,由於緩存在緩存區之完成訊息的總數降至第二門檻值,故記憶體管理電路502會允許執行原先被暫停的存取操作。例如,在時間點T2之後,資料重新開始被允許在記憶體儲存裝置10與主機系統11之間傳輸並且相應的完成訊息也開始被緩存至緩存區中。
圖10是根據本發明的一範例實施例所繪示的資料傳輸方法的流程圖。
請參照圖10,在步驟S1001中,從主機系統獲得第一指令並計數第一時間值。在步驟S1002中,對可複寫式非揮發性記憶體模組執行對應於第一指令的第一存取操作。在步驟S1003中,產生對應於第一存取操作之完成的第一完成訊息並將第一完成訊息緩存在緩存區。在步驟S1004中,判斷所計數的第一時間是否符合第一等待時間值。若是,在步驟S1005中,將緩存在緩存區的第一完成訊息傳送至主機系統。若否,回到步驟S1004中,直到步驟S1004判斷為是為止。
然而,圖10中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖10中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖10的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,在從主機系統獲得一個存取指令之後,對應於此存取指令的一個時間值會開始計數並且對應於此存取指令的一個存取操作會被執行。在對應於此存取操作之完成的一個完成訊息被產生後,此完成訊息會被緩存在一個緩存區。當所計數的時間值符合一等待時間值時,此完成訊息才會從緩存區中提取並且傳送給主機系統。相對於未對完成訊息之傳送進行延遲,本發明可穩定主機系統量測到的資料存取速度。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
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~S704、S1001~S1005‧‧‧步驟
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖2是根據本發明的另一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。 圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。 圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。 圖6是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。 圖7是根據本發明的一範例實施例所繪示的資料傳輸操作的示意圖。 圖8是根據本發明的一範例實施例所繪示的管理完成訊息之操作的示意圖。 圖9是根據本發明的另一範例實施例所繪示的管理完成訊息之操作的示意圖。 圖10是根據本發明的一範例實施例所繪示的資料傳輸方法的流程圖。
S1001~S1005‧‧‧步驟
Claims (21)
- 一種資料傳輸方法,用於包括一可複寫式非揮發性記憶體模組的一記憶體儲存裝置,該資料傳輸方法包括:從一主機系統獲得一第一指令並計數一第一時間值;對該可複寫式非揮發性記憶體模組執行對應於該第一指令的一第一存取操作;產生對應於該第一存取操作之完成的一第一完成訊息並將該第一完成訊息緩存在一緩存區;以及若該第一時間值符合一第一等待時間值,將緩存在該緩存區的該第一完成訊息傳送至該主機系統,其中該第一等待時間值之時間長度長於執行該第一存取操作的一第二時間值之時間長度。
- 如申請專利範圍第1項所述的資料傳輸方法,其中該第一時間值是從開始執行該第一存取操作之時間點開始計數或從發送對應於一第二存取操作之完成的一第二完成訊息之時間點開始計數,其中該第二存取操作是對應於早於該第一指令而從該主機系統接收的一第二指令而執行。
- 如申請專利範圍第1項所述的資料傳輸方法,其中該第一等待時間值之時間長度正相關於該第一指令所指示存取之資料的資料量。
- 如申請專利範圍第1項所述的資料傳輸方法,更包括: 計數一回應閒置時間值並根據該回應閒置時間值更新一指示值;在開始計數該回應閒置時間值之後,從該主機系統獲得一第三指令;若該指示值與該第三指令所指示存取之資料的資料量符合一第一條件,在完成對應於該第三指令的一第三存取操作之後,允許傳送對應於該第三存取操作之完成的一第三完成訊息至該主機系統;以及若該指示值與該第三指令所指示存取之資料的資料量不符合該第一條件,根據該指示值與該第三指令所指示存取之資料的資料量決定一第二等待時間值,其中該第二等待時間值用以控制傳送該第三完成訊息至該主機系統的一時間點。
- 如申請專利範圍第1項所述的資料傳輸方法,更包括:從該主機系統獲得一第四指令;若緩存在該緩存區之完成訊息的一總數達到一第一門檻值,暫停對該可複寫式非揮發性記憶體模組執行對應於該第四指令的一第四存取操作;以及若緩存在該緩存區之該完成訊息的該總數降至一第二門檻值,允許執行該第四存取操作。
- 如申請專利範圍第5項所述的資料傳輸方法,更包括:在暫停執行該第四存取操作之期間,持續將緩存在該緩存區之完成訊息傳送至該主機系統。
- 如申請專利範圍第1項所述的資料傳輸方法,其中該記憶體儲存裝置相容於一快速非揮發性記憶體(NVM express)介面標準。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以從該主機系統獲得一第一指令並計數一第一時間值,其中該記憶體控制電路單元更用以發送一第一存取指令序列以指示對該可複寫式非揮發性記憶體模組執行對應於該第一指令的一第一存取操作,其中該記憶體控制電路單元更用以產生對應於該第一存取操作之完成的一第一完成訊息並將該第一完成訊息緩存在一緩存區,其中若該第一時間值符合一第一等待時間值,該記憶體控制電路單元更用以將緩存在該緩存區的該第一完成訊息傳送至該主機系統,其中該第一等待時間值之時間長度長於執行該第一存取操作的一第二時間值之時間長度。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該第一時間值是從開始執行該第一存取操作之時間點開始計數或從發送對應於一第二存取操作之完成的一第二完成訊息之時間點開始計數,其中該第二存取操作是對應於早於該第一指令而從該主機系統接收的一第二指令而執行。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該第一等待時間值之時間長度正相關於該第一指令所指示存取之資料的資料量。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以計數一回應閒置時間值並根據該回應閒置時間值更新一指示值,其中在開始計數該回應閒置時間值之後,該記憶體控制電路單元更用以從該主機系統獲得一第三指令,其中若該指示值與該第三指令所指示存取之資料的資料量符合一第一條件,該記憶體控制電路單元更用以在完成對應於該第三指令的一第三存取操作之後,允許傳送對應於該第三存取操作之完成的一第三完成訊息至該主機系統,其中若該指示值與該第三指令所指示存取之資料的資料量不符合該第一條件,該記憶體控制電路單元更用以根據該指示值與該第三指令所指示存取之資料的資料量決定一第二等待時間值,其中該第二等待時間值用以控制傳送該第三完成訊息至該主機系 統的一時間點。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以從該主機系統獲得一第四指令,其中若緩存在該緩存區之完成訊息的一總數達到一第一門檻值,該記憶體控制電路單元更用以暫停對該可複寫式非揮發性記憶體模組執行對應於該第四指令的一第四存取操作,其中若緩存在該緩存區之該完成訊息的該總數降至一第二門檻值,該記憶體控制電路單元更用以允許執行該第四存取操作。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中在暫停執行該第四存取操作之期間,該記憶體控制電路單元更用以持續將緩存在該緩存區之完成訊息傳送至該主機系統。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該記憶體儲存裝置相容於一快速非揮發性記憶體介面標準。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以從該主機系統獲得一第一指令並計數一第一時間值,其中該記憶體管理電路更用以發送一第一存取指令序列以指 示對該可複寫式非揮發性記憶體模組執行對應於該第一指令的一第一存取操作,其中該記憶體管理電路更用以產生對應於該第一存取操作之完成的一第一完成訊息並將該第一完成訊息緩存在一緩存區,其中若該第一時間值符合一第一等待時間值,該記憶體管理電路更用以將緩存在該緩存區的該第一完成訊息傳送至該主機系統,其中該第一等待時間值之時間長度長於執行該第一存取操作的一第二時間值之時間長度。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該第一時間值是從開始執行該第一存取操作之時間點開始計數或從發送對應於一第二存取操作之完成的一第二完成訊息之時間點開始計數,其中該第二存取操作是對應於早於該第一指令而從該主機系統接收的一第二指令而執行。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該第一等待時間值之時間長度正相關於該第一指令所指示存取之資料的資料量。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體管理電路更用以計數一回應閒置時間值並根據該回應閒置時間值更新一指示值,其中在開始計數該回應閒置時間值之後,該記憶體管理電路 更用以從該主機系統獲得一第三指令,其中若該指示值與該第三指令所指示存取之資料的資料量符合一第一條件,該記憶體管理電路更用以在完成對應於該第三指令的一第三存取操作之後,允許傳送對應於該第三存取操作之完成的一第三完成訊息至該主機系統,其中若該指示值與該第三指令所指示存取之資料的資料量不符合該第一條件,該記憶體管理電路更用以根據該指示值與該第三指令所指示存取之資料的資料量決定一第二等待時間值,其中該第二等待時間值用以控制傳送該第三完成訊息至該主機系統的一時間點。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體管理電路更用以從該主機系統獲得一第四指令,其中若緩存在該緩存區之完成訊息的一總數達到一第一門檻值,該記憶體管理電路更用以暫停對該可複寫式非揮發性記憶體模組執行對應於該第四指令的一第四存取操作,其中若緩存在該緩存區之該完成訊息的該總數降至一第二門檻值,該記憶體管理電路更用以允許執行該第四存取操作。
- 如申請專利範圍第19項所述的記憶體控制電路單元,其中在暫停執行該第四存取操作之期間,該記憶體管理電路更用以持續將緩存在該緩存區之完成訊息傳送至該主機系統。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體控制電路單元相容於一快速非揮發性記憶體介面標準。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105129269A TWI595412B (zh) | 2016-09-09 | 2016-09-09 | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 |
US15/352,590 US9933975B1 (en) | 2016-09-09 | 2016-11-16 | Data transmission method, memory storage device and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105129269A TWI595412B (zh) | 2016-09-09 | 2016-09-09 | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI595412B true TWI595412B (zh) | 2017-08-11 |
TW201810013A TW201810013A (zh) | 2018-03-16 |
Family
ID=60189368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105129269A TWI595412B (zh) | 2016-09-09 | 2016-09-09 | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9933975B1 (zh) |
TW (1) | TWI595412B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI648634B (zh) * | 2017-11-16 | 2019-01-21 | 合肥兆芯電子有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
US10592126B2 (en) | 2017-11-07 | 2020-03-17 | Hefei Core Storage Electronic Limited | Memory management method, memory storage device and memory control circuit unit |
TWI739075B (zh) * | 2019-01-03 | 2021-09-11 | 慧榮科技股份有限公司 | 閃存的資料寫入方法及電腦程式產品 |
US11288185B2 (en) | 2019-01-03 | 2022-03-29 | Silicon Motion, Inc. | Method and computer program product for performing data writes into a flash memory |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180009217A (ko) * | 2016-07-18 | 2018-01-26 | 삼성전자주식회사 | 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법 |
JP2019049949A (ja) * | 2017-09-12 | 2019-03-28 | 東芝メモリ株式会社 | ストレージデバイス |
KR20200025518A (ko) * | 2018-08-30 | 2020-03-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
CN110879794B (zh) * | 2018-09-05 | 2023-01-17 | 深圳大心电子科技有限公司 | 存储器管理方法以及存储控制器 |
US11216052B2 (en) * | 2018-09-28 | 2022-01-04 | Advanced Micro Devices, Inc. | Modifying an operating state of a processing unit based on waiting statuses of blocks |
KR20200054004A (ko) * | 2018-11-09 | 2020-05-19 | 삼성전자주식회사 | 호스트와 통신을 수행하는 전자 장치 및 그 동작 방법 |
KR102655360B1 (ko) * | 2018-12-13 | 2024-04-05 | 에스케이하이닉스 주식회사 | 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법 |
CN112817541A (zh) * | 2021-02-24 | 2021-05-18 | 深圳宏芯宇电子股份有限公司 | 写入带宽控制方法、存储器存储装置及存储器控制器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW541457B (en) * | 2000-06-06 | 2003-07-11 | Intel Corp | Method and apparatus for predictive flash memory erase and write times |
TW200416535A (en) * | 2002-12-24 | 2004-09-01 | Intel Corp | Method and apparatus for determining a dynamic random access memory page management implementation |
US20090307412A1 (en) * | 2008-06-06 | 2009-12-10 | Phison Electronics Corp. | Memory management method for non-volatile memory and controller using the same |
TW201430564A (zh) * | 2013-01-31 | 2014-08-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5819053A (en) * | 1996-06-05 | 1998-10-06 | Compaq Computer Corporation | Computer system bus performance monitoring |
TWI467372B (zh) * | 2011-07-06 | 2015-01-01 | Phison Electronics Corp | 指令執行方法、記憶體控制器與記憶體儲存裝置 |
US10409681B2 (en) * | 2015-01-30 | 2019-09-10 | Hewlett Packard Enterprise Development Lp | Non-idempotent primitives in fault-tolerant memory |
-
2016
- 2016-09-09 TW TW105129269A patent/TWI595412B/zh active
- 2016-11-16 US US15/352,590 patent/US9933975B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW541457B (en) * | 2000-06-06 | 2003-07-11 | Intel Corp | Method and apparatus for predictive flash memory erase and write times |
TW200416535A (en) * | 2002-12-24 | 2004-09-01 | Intel Corp | Method and apparatus for determining a dynamic random access memory page management implementation |
US20090307412A1 (en) * | 2008-06-06 | 2009-12-10 | Phison Electronics Corp. | Memory management method for non-volatile memory and controller using the same |
TW201430564A (zh) * | 2013-01-31 | 2014-08-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10592126B2 (en) | 2017-11-07 | 2020-03-17 | Hefei Core Storage Electronic Limited | Memory management method, memory storage device and memory control circuit unit |
TWI648634B (zh) * | 2017-11-16 | 2019-01-21 | 合肥兆芯電子有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI739075B (zh) * | 2019-01-03 | 2021-09-11 | 慧榮科技股份有限公司 | 閃存的資料寫入方法及電腦程式產品 |
US11288185B2 (en) | 2019-01-03 | 2022-03-29 | Silicon Motion, Inc. | Method and computer program product for performing data writes into a flash memory |
US11960396B2 (en) | 2019-01-03 | 2024-04-16 | Silicon Motion, Inc. | Method and computer program product for performing data writes into a flash memory |
Also Published As
Publication number | Publication date |
---|---|
TW201810013A (zh) | 2018-03-16 |
US20180074751A1 (en) | 2018-03-15 |
US9933975B1 (en) | 2018-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI595412B (zh) | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI601060B (zh) | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI615710B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI587135B (zh) | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN109491588B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TW201814526A (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
TWI658361B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI648634B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI607309B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201807580A (zh) | 資料傳輸方法及使用所述方法的儲存控制器與清單管理電路 | |
TWI802068B (zh) | 記憶體效能優化方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN107817943B (zh) | 数据传输方法、存储器存储装置及存储器控制电路单元 | |
TWI649653B (zh) | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI644210B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI766764B (zh) | 記憶體緩衝區管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI688956B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI610171B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI648629B (zh) | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN112394883A (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
TW201719372A (zh) | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI810719B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI823792B (zh) | 映射表更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN114115739B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 |