TWI660346B - 記憶體管理方法以及儲存控制器 - Google Patents
記憶體管理方法以及儲存控制器 Download PDFInfo
- Publication number
- TWI660346B TWI660346B TW107131605A TW107131605A TWI660346B TW I660346 B TWI660346 B TW I660346B TW 107131605 A TW107131605 A TW 107131605A TW 107131605 A TW107131605 A TW 107131605A TW I660346 B TWI660346 B TW I660346B
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- refresh
- target
- phase
- instructions
- Prior art date
Links
Classifications
-
- 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/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本發明提供一種記憶體管理方法。所述方法包括:儲存獲取的第一指令至指令佇列,其中反應於判定所述第一指令為刷新指令,根據當前刷新階段設定所述刷新指令與對應的第二指令的刷新階段值,計算對應當前刷新階段的刷新階段計數值,並且調整所述當前刷新階段;從所述指令佇列中選擇新的目標指令,根據所述目標指令的目標刷新階段值以及對應的目標刷新階段計數值來執行所述目標指令,其中非預設值的所述目標刷新階段計數值會被調整;根據調整後的所述目標刷新階段計數值判斷是否回應主機系統對應所述目標刷新階段值的目標刷新指令已經執行完畢。
Description
本發明是有關於一種記憶體管理方法,且特別是有關於一種適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的記憶體管理方法與儲存控制器。
傳統的SATA(Serial Advanced Technology Attachment)介面的固態硬碟(配置有可複寫式非揮發性記憶體模組的儲存裝置)會使用進階主機控制器介面(Advanced Host Controller Interface,以下稱AHCI)標準,其允許軟體與SATA儲存裝置溝通。一般來說,AHCI具有32個指令深度,即,允許主機系統同一時間內下達32個指令。
但是,隨著硬體本身的進展,SATA介面的固態硬碟也演化為PCIe(Peripheral Component Interconnect express)介面的固態硬碟,並且PCIe介面的固態硬碟會使用非揮發性記憶體主機控制器介面(Non-Volatile Memory express,以下稱NVMe)標準。一般來說,NVMe具有65536個指令深度,即,允許主機系統同一時間內下達65536個指令。也就是說,因為NVMe標準可提供近兩千倍的指令深度,儲存控制器所需要管理的來自主機系統的指令的數量也會隨之大量增加。
因此,要如何在NVMe標準下管理所接收到的大量指令,進而提昇PCIe介面的固態硬碟的處理指令的效率,是本領域人員研究的課題之一。
本發明提供一種記憶體管理方法(亦稱,主機指令管理方法)與儲存控制器,可有效率地消化指令佇列中的多個指令,並且降低刷新指令所造成的資源搶奪。
本發明的一實施例提供適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的一種記憶體管理方法。所述方法包括下列步驟:(1)從指令緩衝器獲取新的第一指令,並且判斷所述第一指令是否為刷新指令(Flush Command),其中反應於判定所述第一指令為所述刷新指令,執行步驟(2a),其中反應於判定所述第一指令不為所述刷新指令,執行步驟(2b);(2a)將所述刷新指令儲存至指令佇列(Command Queue)中,根據所述刷新指令來辨識所述指令佇列中對應所述刷新指令的一或多個第二指令,並且計數所述刷新指令與所述一或多個第二指令的總數以成為對應一當前刷新階段的刷新階段計數值;根據所述當前刷新階段來設定所述指令佇列中的所述刷新指令與所述一或多個第二指令各自的刷新階段值,並且將所述當前刷新階段從多個刷新階段中的第一刷新階段調整至第二刷新階段;以及根據所述指令佇列中的一或多個刷新指令的總數以及所述指令佇列的剩餘空間來執行步驟(1)或步驟(3);(2b) 將所述第一指令儲存至指令佇列,並且根據所述指令佇列的所述剩餘空間來執行步驟(1)或步驟(3);(3) 不從所述指令緩衝器獲取新的第一指令,並且執行步驟(4);(4) 從所述指令佇列的一或多個非刷新指令中選擇新的目標指令,辨識所述目標指令的目標刷新階段值以及對應所述目標刷新階段值的目標刷新階段計數值,其中反應於所述目標指令不具有所述目標刷新階段值,執行步驟(5a),其中反應於所述目標指令具有所述目標刷新階段值,執行步驟(5b);(5a)執行所述目標指令,並且反應於完成所述目標指令的執行,從所述指令佇列中刪除所述目標指令,並且執行步驟(1);(5b)改變所述目標刷新階段計數值,並且根據改變後的所述目標刷新階段計數值執行步驟(5a)或步驟(5c);(5c)執行所述目標指令,回應一主機系統對應所述目標刷新階段值的目標刷新指令已經執行完畢,將所述目標刷新階段計數值設定為所述預設值,並且執行步驟(1)。
本發明的一實施例提供用於控制配置有可複寫式非揮發性記憶體模組的儲存裝置的一種儲存控制器。所述儲存控制器包括:連接介面電路、記憶體介面控制電路、主機指令管理電路單元以及處理器。連接介面電路用以耦接至主機系統。記憶體介面控制電路用以耦接至所述可複寫式非揮發性記憶體模組。處理器耦接至所述連接介面電路、所述記憶體介面控制電路及所述主機指令管理電路單元。所述處理器,其中所述處理器用以指示所述主機指令管理電路單元執行一主機指令管理操作。所述主機指令管理操作包括下列步驟:(1) 所述主機指令管理電路單元用以從指令緩衝器獲取新的第一指令,並且判斷所述第一指令是否為刷新指令(Flush Command),其中反應於判定所述第一指令為所述刷新指令,執行步驟(2a),其中反應於判定所述第一指令不為所述刷新指令,執行步驟(2b);(2a) 所述主機指令管理電路單元用以將所述刷新指令儲存至指令佇列(Command Queue)中,根據所述刷新指令來辨識所述指令佇列中對應所述刷新指令的一或多個第二指令,並且計數所述刷新指令與所述一或多個第二指令的總數以成為對應一當前刷新階段的刷新階段計數值;所述主機指令管理電路單元更用以根據所述當前刷新階段來設定所述指令佇列中的所述刷新指令與所述一或多個第二指令各自的刷新階段值,並且將所述當前刷新階段從多個刷新階段中的第一刷新階段調整至第二刷新階段;以及所述主機指令管理電路單元更用以根據所述指令佇列中的一或多個刷新指令的總數以及所述指令佇列的剩餘空間來執行步驟(1)或步驟(3);(2b) 所述主機指令管理電路單元用以將所述第一指令儲存至指令佇列,並且根據所述指令佇列的所述剩餘空間來執行步驟(1)或步驟(3);(3) 所述主機指令管理電路單元用以不從所述指令緩衝器獲取新的第一指令,並且執行步驟(4);(4) 所述主機指令管理電路單元用以從所述指令佇列的一或多個非刷新指令中選擇新的目標指令,辨識所述目標指令的目標刷新階段值以及對應所述目標刷新階段值的目標刷新階段計數值,其中反應於所述目標指令不具有所述目標刷新階段值,執行步驟(5a),其中反應於所述目標指令具有所述目標刷新階段值,執行步驟(5b);(5a) 所述主機指令管理電路單元用以指示所述處理器執行所述目標指令,並且反應於完成所述目標指令的執行,所述主機指令管理電路單元用以從所述指令佇列中刪除所述目標指令,並且執行步驟(1);(5b) 所述主機指令管理電路單元用以改變所述目標刷新階段計數值,並且根據改變後的所述目標刷新階段計數值執行步驟(5a)或步驟(5c);(5c) 所述主機指令管理電路單元用以指示所述處理器執行所述目標指令,並且回應所述主機系統對應所述目標刷新階段值的目標刷新指令已經執行完畢,所述主機指令管理電路單元更用以將所述目標刷新階段計數值設定為所述預設值,並且執行步驟(1)。
基於上述,本實施例所提供的記憶體管理方法以及儲存控制器,可在指令佇列接收到刷新指令的時候,根據當前刷新階段來記錄對應的刷新階段值至指令佇列中的所述刷新指令與對應所述刷新指令的多個指令,記錄對應的刷新階段計數值,並且更新當前刷新階段,但不會直接根據所接收的刷新指令來執行與清空指令佇列中對應所述刷新指令的非刷新指令。此外,更根據不同的條件來調整所記錄的刷新階段計數值,以管理指令佇列中對應不同刷新階段的指令,進而完成所接收之刷新指令。也就是說,本實施例所提供的記憶體管理方法以及儲存控制器,可使指令佇列中對應所述刷新指令的非刷新指令不會具有特別的優先權(避免了所述非刷新指令的資源搶奪),以避免延遲了其他指令的執行。如此一來,儲存裝置可在平滑地消化(執行)指令佇列中的所有指令的過程中,可順便完成所接收的刷新指令,進而增進了儲存裝置的資料存取效率與工作效率。此外,刷新階段計數值的使用以可讓儲存控制器可有效率地管理目前在指令佇列中的對應不同刷新階段的多個指令。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本實施例中,儲存裝置包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與儲存裝置控制器(亦稱,儲存控制器或儲存控制電路)。此外,儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至儲存裝置或從儲存裝置中讀取資料。
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。
請參照圖1,主機系統(Host System)10包括處理器(Processor)110、主機記憶體(Host Memory)120及資料傳輸介面電路(Data Transfer Interface Circuit)130。在本實施例中,資料傳輸介面電路130耦接(亦稱,電性連接)至處理器110與主機記憶體120。在另一實施例中,處理器110、主機記憶體120與資料傳輸介面電路130之間利用系統匯流排(System Bus)彼此耦接。
儲存裝置20包括儲存控制器(Storage Controller)210、可複寫式非揮發性記憶體模組(Rewritable Non-Volatile Memory Module)220及連接介面電路(Connection Interface Circuit)230。其中,儲存控制器210包括處理器211、資料管理電路(Data Management Circuit)212與記憶體介面控制電路(Memory Interface Control Circuit)213。
在本實施例中,主機系統10是透過資料傳輸介面電路130與儲存裝置20的連接介面電路230耦接至儲存裝置20來進行資料的存取操作。例如,主機系統10可經由資料傳輸介面電路130將資料儲存至儲存裝置20或從儲存裝置20中讀取資料。
在本實施例中,處理器110、主機記憶體120及資料傳輸介面電路130可設置在主機系統10的主機板上。資料傳輸介面電路130的數目可以是一或多個。透過資料傳輸介面電路130,主機板可以經由有線或無線方式耦接至儲存裝置20。儲存裝置20可例如是隨身碟、記憶卡、固態硬碟(Solid State Drive,SSD)或無線記憶體儲存裝置。無線記憶體儲存裝置可例如是近距離無線通訊(Near Field Communication,NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板也可以透過系統匯流排耦接至全球定位系統(Global Positioning System,GPS)模組、網路介面卡、無線傳輸裝置、鍵盤、螢幕、喇叭等各式I/O裝置。
在本實施例中,資料傳輸介面電路130與連接介面電路230是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準的介面電路。並且,資料傳輸介面電路130與連接介面電路230之間是利用快速非揮發性記憶體介面標準(Non-Volatile Memory express,NVMe)通訊協定來進行資料的傳輸。
然而,必須瞭解的是,本發明不限於此,資料傳輸介面電路130與連接介面電路230亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、通用序列匯流排(Universal Serial Bus,USB)標準、SD介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、eMCP介面標準、CF介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。此外,在另一實施例中,連接介面電路230可與儲存控制器210封裝在一個晶片中,或者連接介面電路230是佈設於一包含儲存控制器210之晶片外。
在本實施例中,主機記憶體120用以暫存處理器110所執行的指令或資料。例如,在本範例實施例中,主機記憶體120可以是動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)等。然而,必須瞭解的是,本發明不限於此,主機記憶體120也可以是其他適合的記憶體。
儲存控制器210用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統10的指令在可複寫式非揮發性記憶體模組220中進行資料的寫入、讀取與抹除等運作。
更詳細來說,儲存控制器210中的處理器211為具備運算能力的硬體,其用以控制儲存控制器210的整體運作。具體來說,處理器211具有多個控制指令,並且在儲存裝置20運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
值得一提的是,在本實施例中,處理器110與處理器211例如是中央處理單元(Central Processing Unit,CPU)、微處理器(micro-processor)、或是其他可程式化之處理單元(Microprocessor)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)或其他類似電路元件,本發明並不限於此。
在一實施例中,儲存控制器210還具有唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當儲存控制器210被致能時,處理器211會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組220中之控制指令載入至儲存控制器210的隨機存取記憶體中。之後,處理器211會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。在另一實施例中,處理器211的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組220的特定區域,例如,可複寫式非揮發性記憶體模組220中專用於存放系統資料的實體儲存單元中。
在本實施例中,如上所述,儲存控制器210還包括資料管理電路212與記憶體介面控制電路213。應注意的是,儲存控制器210各部件所執行的操作亦可視為儲存控制器210所執行的操作。
其中,資料管理電路212耦接至處理器211、記憶體介面控制電路213與連接介面電路230。資料管理電路212用以接受處理器211的指示來進行資料的傳輸。例如,經由連接介面電路230從主機系統10(如,主機記憶體120)讀取資料,並且將所讀取的資料經由記憶體介面控制電路213寫入至可複寫式非揮發性記憶體模組220中(如,根據來自主機系統10的寫入指令來進行寫入操作)。又例如,經由記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的一或多個實體單元中讀取資料(資料可讀取自一或多個實體單元中的一或多個記憶胞),並且將所讀取的資料經由連接介面電路230寫入至主機系統10(如,主機記憶體120)中(如,根據來自主機系統10的讀取指令來進行讀取操作)。在另一實施例中,資料管理電路212亦可整合至處理器211中。
記憶體介面控制電路213用以接受處理器211(或空白單元管理電路模組215)的指示,配合資料管理電路212來進行對於可複寫式非揮發性記憶體模組220的寫入(亦稱,程式化,Programming)操作、讀取操作或抹除操作。例如,根據空白單元管理電路模組215的指示使用特定的讀取電壓來進行對於可複寫式非揮發性記憶體模組220的一儲存單元的讀取操作。
舉例來說,處理器211可執行寫入指令序列,以指示記憶體介面控制電路213將資料寫入至可複寫式非揮發性記憶體模組220中;處理器211可執行讀取指令序列,以指示記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的對應讀取指令的一或多個實體單元中讀取資料;處理器211可執行抹除指令序列,以指示記憶體介面控制電路213對可複寫式非揮發性記憶體模組220進行抹除操作。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示對可複寫式非揮發性記憶體模組220執行相對應的寫入、讀取及抹除等操作。在一實施例中,處理器211還可以下達其他類型的指令序列給記憶體介面控制電路213,以對可複寫式非揮發性記憶體模組220執行相對應的操作。
此外,欲寫入至可複寫式非揮發性記憶體模組220的資料會經由記憶體介面控制電路213轉換為可複寫式非揮發性記憶體模組220所能接受的格式。具體來說,若處理器211要執行寫入或讀取指令以存取可複寫式非揮發性記憶體模組220,處理器211會傳送對應的指令序列給記憶體介面控制電路213以指示記憶體介面控制電路213執行對應的操作。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,耗損平衡操作或垃圾回收操作等等)的相對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
可複寫式非揮發性記憶體模組220是耦接至儲存控制器210(記憶體介面控制電路213)並且用以儲存主機系統10所寫入之資料。可複寫式非揮發性記憶體模組220可以是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、三階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、四階記憶胞(Quadruple Level Cell,QLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存4個位元的快閃記憶體模組)、三維NAND型快閃記憶體模組(3D NAND flash memory module)或垂直NAND型快閃記憶體模組(Vertical NAND flash memory module)等其他快閃記憶體模組或其他具有相同特性的記憶體模組。可複寫式非揮發性記憶體模組220中的記憶胞是以陣列的方式設置。
在本實施例中,可複寫式非揮發性記憶體模組220具有多個字元線,其中所述多個字元線的每一個字元線包括多個記憶胞。同一條字元線上的多個記憶胞會組成一或多個實體程式化單元(實體頁面)。此外,多個實體程式化單元可組成一個實體單元(實體區塊或實體抹除單元)。在本實施例中,一個實體程式化單元可具有不同類型的實體頁面。舉例來說,在一實施例中,對於三階記憶胞NAND型快閃記憶體模組來說,三階記憶胞NAND型快閃記憶體模組的一個實體程式化單元可具有第一類型實體頁面與第二類型實體頁面。所述第一類型實體頁面例如為儲存一個位元值的下實體頁面(Lower Physical Page);所述第二類型實體頁面例如為各自儲存一個位元值的中實體頁面(Middle Physical Page)與上實體頁面(Upper Physical Page)。又例如,在一實施例中,對於三階記憶胞NAND型快閃記憶體模組來說,三階記憶胞NAND型快閃記憶體模組的一個實體程式化單元可具有第一類型實體頁面、第二類型實體頁面與第三類型實體頁面。所述第一類型實體頁面例如為儲存一個位元值的下實體頁面;所述第二類型實體頁面例如為儲存一個位元值的中實體頁面;所述第三類型實體頁面例如為儲存一個位元值的上實體頁面。一般來說,當欲寫入資料至三階記憶胞NAND型快閃記憶體模組的一個實體程式化單元的上、中、下實體頁面時,會依序從下實體頁面開始寫入資料,再寫入至中實體頁面,最後寫入至上實體頁面。
在本實施例中,實體抹除單元為抹除之最小單位,即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。每一實體抹除單元會具有多個實體程式化單元。一個實體抹除單元可以是指任意數目的實體程式化單元組成,視實務上的需求而定。
在以下實施例中,是以一個實體區塊作為一個實體抹除單元(亦可稱為,實體單元)的範例,並且每一個實體程式化單元被視為一個實體子單元。此外,必須瞭解的是,當處理器211對可複寫式非揮發性記憶體模組220中的實體程式化單元(或實體單元)進行分組以執行對應的管理操作時,此些實體程式化單元(或實體單元)是被邏輯地分組,而其實際位置並未更動。
儲存控制器210會配置多個邏輯單元給可複寫式非揮發性記憶體模組220。主機系統10是透過所配置的邏輯單元來存取儲存在多個實體單元中的使用者資料。在此,每一個邏輯單元可以是由一或多個邏輯位址組成。例如,邏輯單元可以是邏輯區塊(Logical Block)、邏輯頁面(Logical Page)或是邏輯扇區(Logical Sector)。在本實施例中,邏輯單元為邏輯區塊,並且邏輯子單元為邏輯頁面。每一邏輯單元具有多個邏輯子單元。一個邏輯單元可以是映射至一個實體單元,並且一個邏輯子單元可以是映射至一個實體子單元。
此外,儲存控制器210會建立邏輯轉實體位址映射表(Logical To Physical address mapping table)與實體轉邏輯位址映射表(Physical To Logical address mapping table),以記錄配置給可複寫式非揮發性記憶體模組220的邏輯位址(如,邏輯區塊、邏輯頁面或邏輯扇區)與實體位址(如,實體抹除單元、實體程式化單元、實體扇區)之間的映射關係。換言之,儲存控制器210可藉由邏輯轉實體位址映射表來查找一邏輯單元所映射的實體位址,並且儲存控制器210可藉由實體轉邏輯位址映射表來查找一實體位址所映射的邏輯位址。然而,上述有關邏輯位址與實體位址映射的技術概念為本領域技術人員之慣用技術手段,不再贅述於此。
在本實施例中,錯誤檢查與校正電路214是耦接至處理器211並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當處理器211從主機系統10中接收到寫入指令時,錯誤檢查與校正電路214會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code,ECC)及/或錯誤檢查碼(error detecting code,EDC),並且處理器211會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組220中。之後,當處理器211從可複寫式非揮發性記憶體模組220中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路214會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。此外,在錯誤檢查與校正程序後,若成功解碼所讀取之資料,錯誤檢查與校正電路214可回傳錯誤位元值(亦稱,錯誤位元數目)給處理器211。
在一實施例中,儲存控制器210還包括緩衝記憶體216與電源管理電路217。緩衝記憶體是耦接至處理器211並且用以暫存來自於主機系統10的資料與指令、來自於可複寫式非揮發性記憶體模組220的資料或其他用以管理儲存裝置20的系統資料,以讓處理器211可快速地從緩衝記憶體216中存取所述資料、指令或系統資料。電源管理電路217是耦接至處理器211並且用以控制儲存裝置20的電源。
應注意的是,在本實施例中,連接介面電路230具有指令緩衝器(Command Buffer)2301,以暫存來自主機系統10的指令(亦稱,主機指令)。所暫存的主機指令會再被傳送至主機指令管理電路單元215所管理的指令佇列中,以做進一步的管理。所述指令緩衝器(Command Buffer)2301例如是靜態隨機存取記憶體或其他類似的記憶體/儲存電路。
在本實施例中,主機指令管理電路單元215包括指令佇列管理電路2151與刷新階段計數電路2152。所述處理器211會指示主機指令管理電路單元215來執行主機指令管理操作。主機指令管理電路單元215各部件所執行的操作亦可視為主機指令管理電路單元215所執行的操作。主機指令管理電路單元215(或指令佇列管理電路2151)用以管理指令佇列,所述指令佇列用以根據指令接收順序來儲存從指令緩衝器2301所接收的主機指令。此外,主機指令管理電路單元215(或刷新階段計數電路2152)亦可用以記錄與管理關於指令佇列中的主機指令的資訊,如,對應所接收的主機指令的刷新階段與刷新階段計數值,或是刷新階段計數表。
以下會配合多個圖式來詳細說明主機指令管理電路單元215如何進行主機指令管理操作的細節以及指令佇列管理電路2151與刷新階段計數電路2152的功能。
圖2A與圖2B是根據本發明的一實施例所繪示的記憶體管理方法的流程圖。應注意的是,圖2A與2B所繪示的的記憶體管理方法亦可稱為主機指令管理方法。此外,節點A、B、C僅用以接續流程,以使說明清楚,並不限制本發明。請同時參照圖1、圖2A與圖2B,在步驟S201中,指令佇列管理電路2151從指令緩衝器2301獲取新的第一指令。所獲取的第一指令將會被儲存在指令佇列管理電路2151的指令佇列(Command Queue)中。
具體來說,主機系統10的處理器110可經由資料傳輸介面電路下達指令(亦稱,主機指令)給儲存裝置。所述主機指令會被暫存在指令緩衝器2301。所述主機指令可區分為刷新指令(Flush Command)與非屬於刷新指令的指令(亦稱,非刷新指令)。對應一個識別單元(或對應執行緒(Thread),或對應命名空間(Namespace))的所述刷新指令用以指示將對應所述識別單元的多個非刷新指令從指令佇列中刪除。本發明並不限於所述刷新指令所對應的識別單元。例如,在另一實施例中,識別單元包括且不限於:(1)客戶端(Client);(2)終端(Terminal);(3)實體(Entity)。
所述非刷新指令包括且不限於:(1)讀取指令(Read Command)、寫入指令(Write Command)等用以存取資料的指令;以及(2)修剪指令(Trim Command)、開電指令、關電指令、休眠指令等用以控制儲存裝置的控制指令。
以下先利用圖3A與圖3B說明指令緩衝器從主機系統接收指令的流程。
圖3A與圖3B為根據本發明的一實施例所繪示的指令緩衝器從主機系統接收指令的示意圖。請參照圖3A,為了方便說明,假設指令緩衝器2301僅具有儲存3個指令的空間。在時間點T1.1,主機系統10的處理器110經由資料傳輸介面電路130下達指令N11至指令緩衝器2301(如,箭頭D31所示)。所述指令N11中的「N」用以表示此指令為非刷新指令;「11」中的第一個「1」用以表示此指令是對應識別單元“1”,並且「11」中的第二個「1」用以表示此指令是對應識別單元“1”的第“1”個指令。所述識別單元“1”的識別碼例如是“ID1”。
接著,在時間點T1.2,指令緩衝器2301會以先進先出(First In First Out,FIFO)方式來儲存所接收到的指令N11(如,箭頭A31所示)。也就是說,儲存在指令緩衝器2301中的多個指令會依照時間先後來排列,並且較先被儲存的指令會較先被讀取(獲取)。
接著,在時間點T1.3,主機系統10的處理器110經由資料傳輸介面電路130下達指令N21至指令緩衝器2301(如,箭頭D32所示)。在時間點T1.4,指令緩衝器2301會以先進先出方式來儲存所接收到的指令N21(如,箭頭A32所示)。所述指令N21排列在指令N11後方。
請參照圖3B,接著,在時間點T1.5,主機系統10的處理器110經由資料傳輸介面電路130下達指令F2至指令緩衝器2301(如,箭頭D33所示)。所述指令F1中的「F」用以表示此指令為刷新指令;「2」用以表示此指令是對應識別單元“2”。 所述識別單元“2”的識別碼例如是“ID2”。
在時間點T1.6,指令緩衝器2301會以先進先出方式來儲存所接收到的指令F2(如,箭頭A33所示)。所述指令F2排列在指令N21後方。所述指令N21、F2皆對應相同的識別單元“2’。所述刷新指令F2用以指示將先於刷新指令F2的對應相同識別單元“2”的所有特定指令刪除(例如,刷新指令F2用以指示刪除指令N21)。此外,應注意的是,在本實施例中,刷新指令F2所對應的特定指令屬於寫入指令。舉例來說,假設主機系統先後傳送了讀取指令、寫入指令與刷新指令(此三個指令皆對應相同的識別單元)至指令緩衝器2301。在此例子中,所述刷新指令只用以指示刪除所述寫入指令(並不會指示刪除所述讀取指令)。為了方便說明,以下實施例所出現的非刷新指令皆為寫入指令。
接著,在時間點T1.7,主機系統10的處理器110經由資料傳輸介面電路130下達指令N12至指令緩衝器2301(如,箭頭D34所示)。由於指令緩衝器2301已經沒有任何空間(已滿),指令N12便不能夠被儲存在指令緩衝區2301。此時,處理器211可指示主機指令管理電路單元215執行主機指令管理操作,以消化指令緩衝器2301所儲存的從主機系統所接收到的指令,進而使指令緩衝器2301可清出空間來接收指令N12。
圖4A至圖4D為根據本發明的一實施例所繪示的管理指令佇列的示意圖。請參照圖4A,在時間點2.1,如箭頭D41所示,接續上述的例子,主機指令管理電路單元215從指令緩衝區2301獲取新的指令 (亦稱,第一指令)N11。即,指令N11被傳送(讀取)至主機指令管理電路單元215的指令佇列管理電路2151,並且指令佇列管理電路2151儲存指令N11至指令佇列400。此外,刷新階段計數電路2152記錄分別對應多個刷新階段P1~P3的多個刷新階段計數值410(1)~410(3)。在本實施例中,所述多個刷新階段計數值410(1)~410(3)已被初始化為預設值(如,“0”)。在另一實施例中,所述預設值可被初始化為“-1”、空值(即,NULL)或其他適當的數值。
在本實施例中,刷新階段計數電路2152可利用刷新階段計數表410來記錄所述分別對應多個刷新階段P1~P3的多個刷新階段計數值410(1)~410(3)。所述刷新階段P1~P3是依據循環(Round Robin)方式來排列的。即,刷新階段P2排列在刷新階段P1後;刷新階段P3排列在刷新階段P2後;刷新階段P1排列在刷新階段P3後。此外,刷新階段計數電路2152更記錄當前刷新階段,其用以表示目前的刷新階段為所述多個刷新階段P1~P3的其中之一。在本實施例中,反應於特定事件(如,從所述指令緩衝器2301所接收的第一指令為刷新指令),刷新階段計數電路2152會依據循環方式排列的刷新階段P1~P3來將當前刷新階段從一個刷新階段(亦稱,第一刷新階段)切換(調整)至排列在所述第一刷新階段後的刷新階段(亦稱,第二刷新階段)。例如,當前刷新階段可從刷新階段P1被調整至刷新階段P2;當前刷新階段可從刷新階段P2被調整至刷新階段P3;當前刷新階段可從刷新階段P3被調整至刷新階段P1。所述當前刷新階段例如被初始化為刷新階段P1。所記錄的當前刷新階段可整合至刷新階段計數表中(例如,利用特定欄位來標記當前刷新階段為所述多個刷新階段P1~P3的其中之一)。所述多個刷新階段P1~P3會依據先後接收的多個刷新指令而被切換(調整)。
請再回到圖2A,接著,在步驟S202,指令佇列管理電路2151判斷所述第一指令是否為刷新指令。根據所獲取的第一指令來決定執行步驟S203(S202à否)或S208(S202à是)。在步驟S203中,指令佇列管理電路2151將所述第一指令儲存至指令佇列。
舉例來說,請參照圖4A,指令佇列管理電路2151判定指令N11不為刷新指令,並且,如箭頭A41所示,將所述指令N11儲存至指令佇列401中(時間點2.2)。應注意的是,此時,指令N11的刷新階段值尚未被設定(空白的)。
接著,在步驟S204,指令佇列管理電路2151判斷所述指令佇列是否具有剩餘空間。其中,反應於判定所述指令佇列具有剩餘空間,執行步驟S201;反應於判定所述指令佇列不具有剩餘空間,執行步驟S205。
舉例來說,如圖4A所示,指令佇列400具有5個剩餘空間;指令佇列401具有4個剩餘空間(一個剩餘空間已被用來儲存指令N11)。在將所述指令N11儲存至指令佇列401後,指令佇列管理電路2151判定所述指令佇列401具有剩餘空間,並且執行步驟S201,以繼續從指令緩衝區2301獲取另個指令(新的第一指令)。舉例來說,請參照圖4B,在時間點T2.3,如箭頭D42所示,指令N21從指令緩衝區2301被獲取。在時間點T2.4,如箭頭A42所示,指令佇列管理電路2151判定指令N21不是刷新指令,並且將指令N21儲存到指令佇列402,並且排列在指令N11後。
接著,由於指令佇列管理電路2151判定所述指令佇列402具有剩餘空間,指令佇列管理電路2151執行步驟S201,以繼續從指令緩衝區2301獲取另個指令(新的第一指令)。如圖4C所繪示,在時間點T2.5,如箭頭D43所示,新的指令F2被獲取,指令佇列管理電路2151判定指令F2為刷新指令,並且接續至步驟S208。
在步驟S208中,指令佇列管理電路2151將所述刷新指令儲存至所述指令佇列中,根據所述刷新指令來辨識所述指令佇列中對應所述刷新指令的一或多個第二指令,並且計數所述刷新指令與所述一或多個第二指令的總數以成為對應當前刷新階段的刷新階段計數值。
具體來說,在時間點T2.6,如箭頭A43所示,所述刷新指令F2被儲存至所述指令佇列403中。此外,反應於判定所接收的第一指令F2為刷新指令,指令佇列管理電路2151根據刷新指令F2來辨識所述指令佇列403中對應所述刷新指令F2的一或多個第二指令。詳細來說,指令佇列管理電路2151可辨識所述刷新指令F2對應識別單元“2”,並且辨識所述刷新指令F2是用以刪除指令佇列403中的對應識別單元“2”的一或多個寫入指令。基此,指令佇列管理電路2151會判定指令N21為對應刷新指令F2的第二指令(因為,指令N21為對應識別單元“2”的寫入指令)。接著,刷新階段計數電路2152更會計數在目前的指令佇列中所述刷新指令F2與所述第二指令N21的總數以成為對應當前刷新階段(即,第一刷新階段P1)的刷新階段計數值。也就是說,在接收到刷新指令後,指令佇列管理電路2151會認定所述刷新指令與對應的第二指令是屬於同一個刷新階段,並且刷新階段計數電路2152會計算此刷新指令與對應的第二指令的總數,將此總數記錄為對應所述刷新階段的刷新階段計數值。
接著,在步驟S209中,指令佇列管理電路215根據所述當前刷新階段來設定所述指令佇列中的所述刷新指令與所述一或多個第二指令各自的刷新階段值,並且刷新階段計數電路2152將所述當前刷新階段從多個刷新階段中的第一刷新階段調整至第二刷新階段。
例如,請參照圖4C,指令佇列管理電路215根據當前刷新階段“P1”來設定指令佇列403中的刷新指令F2與對應的第二指令N21的刷新階段值,即,將指令佇列403中的刷新指令F2與對應的第二指令N21的刷新階段值皆標記為“P1”。應注意的是,由於指令N11並非對應刷新指令F2(指令N11不是對應識別單元“2”。指令佇列管理電路215不會設定指令N11的刷新階段值(即,指令N11的刷新階段值保持空白)。
接著,刷新階段計數電路2152將所述當前刷新階段從多個刷新階段中的第一刷新階段P1調整至第二刷新階段P2(如箭頭A44所示)。此外,刷新階段計數電路2152更將對應第一階段P1(當前刷新階段為“P1”)的刷新階段計數值410(1)從預設值修改為“2”。 換言之,刷新階段計數表會從刷新階段計數表410更新為刷新階段計數表411。應注意的是,所述預設值亦可被設定為非0的其他數值。
本發明並不限於上述經由當前刷新階段來設定刷新階段值的方法。例如,在另一實施例中,指令佇列管理電路2151會根據所述刷新指令與對應所述刷新指令的一或多個第二指令共同的識別單元來將所述識別單元的識別碼作為刷新階段值,以設定所述所述指令佇列中的所述刷新指令與對應所述刷新指令的一或多個第二指令的刷新階段值(皆為相同的識別碼)。舉例來說,假設所述指令F2、N21皆對應識別單元“2”。 指令佇列管理電路2151可直接將所述指令F2、N21的所述刷新階段值設定為“ID2”。此外,刷新階段計數電路2152亦可記錄對應刷新階段“ID2”的刷新階段值為“2”(因為所述指令F2、N21的總數為二個)。換言之,原本的「P1」可被所述指令F2、N21的識別單元的識別碼「ID2」所替代。
請再回到圖2A,接著,在步驟S210中,指令佇列管理電路2151判斷所述指令佇列中的一或多個刷新指令的總數是否大於階段上限值。其中,反應於判定指令佇列中的所述一或多個刷新指令的總數大於階段上限值,指令佇列管理電路2151執行步驟205;反應於判定指令佇列中的所述一或多個刷新指令的總數不大於階段上限值,指令佇列管理電路2151執行步驟S204。
具體來說,在本實施例中,所述階段上限值的數值為所述多個刷新階段P1~P3的總數減一(即,3-1=2)。也就是說,所述階段上限值用來限制讓被標記至指令佇列中的刷新階段值的總數最多為所有可記錄的刷新階段計數值的總數(3)。即,若所有刷新階段的刷新階段計數值皆已被使用(被使用的刷新階段值的總數為3),此時指令佇列管理電路2151會執行步驟S205,以停止獲取新的第一指令。
例如,如圖4C中下方的例子,指令佇列管理電路2151會判定指令佇列403中的刷新指令僅有指令F2,即,指令佇列403中的所有的刷新指令的總數(即,1)不大於階段上限值。接著,整個流程會接續至步驟S204,以接續判斷指令佇列是否有剩餘空間來儲存新的指令。
此時,在步驟S204中,指令佇列管理電路2151會判定指令佇列403具有2個剩餘空間,並且接續至步驟S201。請參照圖4D,假設指令緩衝區2301從主機系統10接收到3個指令N12、F1、N31。從時間點T2.7開始,如上述的流程所說明的,指令N12與指令F1會陸續地被獲取(如箭頭D44所示),並且指令N12、F1被儲存至指令佇列404中(如箭頭A45所示)。
此外,由於指令F1為刷新指令,指令佇列管理電路2151會辨識對應刷新指令F1的多個指令N11、N12,並且指令佇列管理電路2151根據當前刷新階段“P2”來設定指令佇列404中刷新指令F1的刷新階段值為“P2”,設定對應刷新指令的第二指令N11、N12的刷新階段值為“P2”。刷新階段計數電路2152根據刷新指令F1與對應的第二指令N11、N12的總數來將對應刷新階段“P2”的刷新計數值410(2)記錄為“3”(不再是預設值),並且調整當前刷新階段至“P3”(如箭頭46所示)。
接著,流程接續至步驟S210。此時,在步驟210中,指令佇列管理電路2151判定所述指令佇列中的一或多個刷新指令的總數不大於階段上限值。接著,整個流程會接續至步驟S204。然而,此時指令佇列管理電路2151會判定指令佇列404不具有剩餘空間,並且執行步驟S205。在步驟S205中,指令佇列管理電路2151不從所述指令緩衝器2301獲取新的第一指令。接著,在步驟206中,指令佇列管理電路2151從所述指令佇列的一或多個非刷新指令中選擇新的目標指令,辨識所述目標指令的目標刷新階段值以及對應所述目標刷新階段值的目標刷新階段計數值。其中,反應於所述目標指令具有所述目標刷新階段值,執行步驟S211;反應於所述目標指令不具有所述目標刷新階段值,執行步驟S207。以下利用圖5A至圖5C來說明。
圖5A至圖5C為根據本發明的另一實施例所繪示的管理指令佇列的示意圖。
請參照圖5A,舉例來說,在時間點3.1中,指令佇列管理電路2151會辨識指令佇列404中的一或多個非刷新指令,即,指令N11、N21、N12。指令佇列管理電路2151會依據預設的規則來從指令N11、N21、N12中選擇其中一個來作為目標指令。為了方便說明,所述預設的規則是先進先出方式。即,指令N11、N21、N12中最先被儲存至指令佇列的非刷新指令會被先選擇以作為新的目標指令。在圖5A的例子中,如箭頭E51所示,指令N11被選擇為目標指令,並且指令佇列管理電路2151辨識指令N11的刷新階段值(亦稱,目標刷新階段值)為“P2”。根據目標刷新階段值“P2”,指令佇列管理電路2151根據刷新階段計數電路2152所記錄的對應刷新階段“P2”的刷新階段計數值410(2)辨識到“3”(如,根據目標刷新階段與刷新階段計數表查找到目標刷新階段計數值為“3”)。
請參照圖2B,在步驟S211中,刷新階段計數電路2152將所述目標刷新階段計數值減一。例如,在時間點T3.2,反應於所述目標指令具有所述目標刷新階段值,刷新階段計數電路2152將所述目標刷新階段計數值減1,即,對應刷新階段P2的刷新階段計數值410(2)從“3”被調整為“2”(如箭頭A51所示)。
在減去1後,指令佇列管理電路2151會判斷所述目標刷新階段計數值是否等於1。反應於所述目標刷新階段計數值等於1,接續至步驟S212;反應於所述目標刷新階段計數值不等於1,接續至步驟S207。
舉例來說,在上述例子中,由於目標刷新階段計數值為“2”,並不等於1。因此,流程接續至步驟S207,指令佇列管理電路2151指示處理器211執行所述目標指令,並且反應於完成所述目標指令的執行,指令佇列管理電路2151從所述指令佇列中刪除所述目標指令。如圖5A的箭頭D51所示,指令N11被傳送至處理器211,以使處理器211根據指令N11來執行相應的操作。應注意的是,本發明並不限於處理器211執行指令的細節。接著,如箭頭A52所示,指令佇列管理電路2151從所述指令佇列404中刪除所述目標指令N11與對應的目標刷新階段值“P2”。此時,指令佇列405具有一個剩餘空間(因刪除了所述目標指令N11與對應的目標刷新階段值“P2”)。
接著,整體流程再回到步驟S201。請參照圖5B,舉例來說,假設指令緩衝區2301具有3個主機指令N31、F3、N13。在時間點T3.3,如箭頭D52所示,指令N31被獲取。在時間點T3.4,如箭頭A53所示,指令N31會被儲存至指令佇列406,此時,由於指令佇列406已經沒有剩餘空間,流程再度執行步驟S205以及步驟S206。
舉例來說,請參照圖5C,在時間點T3.5,如箭頭E52所示,指令佇列管理電路2151選擇指令N21作為目標指令,並且將對應的目標刷新階段計數值410(1)從“2”減至“1”(如箭頭A54所示)。此時,如箭頭A55所示,反應於所述目標刷新階段計數值410(1)等於1,接續至步驟S212。在步驟212中,指令佇列管理電路2151指示處理器211執行所述目標指令,反應於完成所述目標指令的執行,刪除所述指令佇列中的所述目標指令。步驟S212相似於步驟S207,細節不再贅述(如,箭頭D53所示)。舉例來說,如箭頭A56所示,在時間點T3.6,指令N21與對應的刷新階段值“P1”會被刪除。然而,不同於步驟S207的後續步驟S201,指令佇列管理電路2151執行完步驟S212後,接續至步驟S213。即,指令佇列管理電路2151更刪除所述指令佇列中的所述目標刷新指令,並且回應主機系統對應所述目標刷新階段值的所述目標刷新指令已經執行完畢。因為刷新指令F2所指示的欲刪除的指令(如,指令N21)皆已被刪除。因此,如箭頭R51所示,指令佇列管理電路2151會指示處理器211(或指令佇列管理電路2151本身)回應主機系統10所述刷新指令F2已執行完畢。
應注意的是,從上述例子可知道,本實施例在接收刷新指令F2後且在回應刷新指令F2被執行完畢之前的期間,刷新指令F2本身並不會被執行且其他不是對應所述刷新指令F2的非刷新指令(如,指令N11)也會順便被執行。此外,當刷新指令F2所對應的第二指令皆被執行後,主機系統10可直接接收到刷新指令F2已經執行完畢的回應。換言之,本實施例的主機指令管理操作並不會因為接收刷新指令而使先於刷新指令的其他的非對應刷新指令的非刷新指令的執行順序被搶奪,進而避免了刷新指令所導致的資源搶奪的現象。
接著,接續至步驟S214,刷新階段計數電路2152將所述目標刷新階段計數值設定為所述預設值。舉例來說,如箭頭A57所示,在回應對應目標刷新階段值“P1”的刷新指令F2已經執行完畢後,目標刷新階段計數值410(1)被設定為預設值(如,“0”)。接著,整體流程回到步驟201。
值得一提的是,反應於指令緩衝器2301與指令佇列皆不具有任何指令,主機指令管理電路單元215會結束上述記憶體管理方法的所有步驟。此外,反應於經由空的指令緩衝器2301從該主機系統10接收到一個指令,處理器211可指示主機指令管理電路單元215開始執行上述步驟S201。其中,若在執行步驟S201過程中,指令緩衝器2301不具有可被獲取的所述新的第一指令(例如,指令緩衝器2301為空的),執行步驟S206。
綜上所述,本實施例所提供的記憶體管理方法以及儲存控制器,可在指令佇列接收到刷新指令的時候,根據當前刷新階段來記錄對應的刷新階段值至指令佇列中的所述刷新指令與對應所述刷新指令的多個指令,記錄對應的刷新階段計數值,並且更新當前刷新階段,但不會直接根據所接收的刷新指令來執行與清空指令佇列中對應所述刷新指令的非刷新指令。此外,更根據不同的條件來調整所記錄的刷新階段計數值,以管理指令佇列中對應不同刷新階段的指令,進而完成所接收之刷新指令。也就是說,本實施例所提供的記憶體管理方法以及儲存控制器,可使指令佇列中對應所述刷新指令的非刷新指令不會具有特別的優先權(避免了所述非刷新指令的資源搶奪),以避免延遲了其他指令的執行。如此一來,儲存裝置可在平滑地消化(執行)指令佇列中的所有指令的過程中,可順便完成所接收的刷新指令,進而增進了儲存裝置的資料存取效率與工作效率。此外,刷新階段計數值的使用以可讓儲存控制器可有效率地管理目前在指令佇列中的對應不同刷新階段的多個指令。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機系統
20‧‧‧儲存裝置
110、211‧‧‧處理器
120‧‧‧主機記憶體
130‧‧‧資料傳輸介面電路
210‧‧‧儲存控制器
212‧‧‧資料管理電路
213‧‧‧記憶體介面控制電路
214‧‧‧錯誤檢查與校正電路
215‧‧‧主機指令管理電路單元
2151‧‧‧指令佇列管理電路
2152‧‧‧刷新階段計數電路
216‧‧‧緩衝記憶體
217‧‧‧電源管理電路
220‧‧‧可複寫式非揮發性記憶體模組
230‧‧‧連接介面電路
2301‧‧‧指令緩衝器
S201、S202、S203、S204、S205、S206、S207、S208、S209、S210、S211、S212、S213、S214‧‧‧記憶體管理方法的流程步驟
A、B、C‧‧‧節點
N11、N21、N22、N31、N12、F1、F2、F3‧‧‧指令
410、411‧‧‧刷新階段計數表
A31~A33、A41~A46、A51~A57、D31~D34、D41~D44、D51~D53、R51、E51~E52‧‧‧箭頭
400~407‧‧‧指令佇列
410(1)~410(3)‧‧‧刷新階段計數值
P1~P3‧‧‧刷新階段
T1.1~T1.7、T2.1~T2.8、T3.1~T3.6‧‧‧時間點
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。 圖2A與圖2B是根據本發明的一實施例所繪示的記憶體管理方法的流程圖。 圖3A與圖3B為根據本發明的一實施例所繪示的指令緩衝器從主機系統接收指令的示意圖。 圖4A至圖4D為根據本發明的一實施例所繪示的管理指令佇列的示意圖。 圖5A至圖5C為根據本發明的另一實施例所繪示的管理指令佇列的示意圖。
Claims (12)
- 一種記憶體管理方法,適用於配置有一可複寫式非揮發性記憶體模組的一儲存裝置,所述方法包括下列步驟: (1)從指令緩衝器獲取新的第一指令,並且判斷該第一指令是否為刷新指令(Flush Command),其中反應於判定該第一指令為該刷新指令,執行步驟(2a),其中反應於判定該第一指令不為該刷新指令,執行步驟(2b); (2a)將該刷新指令儲存至指令佇列(Command Queue)中,根據該刷新指令來辨識該指令佇列中對應該刷新指令的一或多個第二指令,並且計數該刷新指令與所述一或多個第二指令的總數以成為對應一當前刷新階段的刷新階段計數值; 根據該當前刷新階段來設定該指令佇列中的該刷新指令與所述一或多個第二指令各自的刷新階段值,並且將該當前刷新階段從多個刷新階段中的第一刷新階段調整至第二刷新階段;以及 根據該指令佇列中的一或多個刷新指令的總數以及該指令佇列的剩餘空間來執行步驟(1)或步驟(3); (2b) 將該第一指令儲存至指令佇列,並且根據該指令佇列的該剩餘空間來執行步驟(1)或步驟(3); (3) 不從該指令緩衝器獲取新的第一指令,並且執行步驟(4); (4) 從該指令佇列的一或多個非刷新指令中選擇新的目標指令,辨識該目標指令的目標刷新階段值以及對應該目標刷新階段值的目標刷新階段計數值,其中反應於該目標指令不具有該目標刷新階段值,執行步驟(5a),其中反應於該目標指令具有該目標刷新階段值,執行步驟(5b); (5a)執行該目標指令,並且反應於完成該目標指令的執行,從該指令佇列中刪除該目標指令,並且執行步驟(1); (5b)改變該目標刷新階段計數值,並且根據改變後的該目標刷新階段計數值執行步驟(5a)或步驟(5c); (5c)執行該目標指令,回應一主機系統對應該目標刷新階段值的目標刷新指令已經執行完畢,將該目標刷新階段計數值設定為該預設值,並且執行步驟(1)。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該指令緩衝器用以從該主機系統接收指令,其中上述方法更包括下列步驟: 反應於該指令緩衝器與該指令佇列皆不具有任何指令,結束上述記憶體管理方法的所有步驟;以及 反應於經由空的該指令緩衝器從該主機系統接收到一個指令,開始執行上述步驟(1) , 其中上述步驟(1)的從指令緩衝器獲取該新的第一指令的步驟包括反應於該指令緩衝器不具有可被獲取的該新的第一指令,執行步驟(4)。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該指令佇列被維護於主機指令管理電路單元中,該指令佇列的所有指令皆各自被標記對應的刷新階段值,其中一刷新階段計數表被維護於該主機指令管理電路單元中,並且該刷新階段計數表記錄有多個刷新階段與分別對應該些刷新階段的多個刷新階段計數值,其中上述步驟(4)包括: 依據一先進先出方式(First In First Out)來從該指令佇列的所述一或多個非刷新指令中選擇該目標指令;以及 從指令佇列中辨識該目標指令的被標記的該目標刷新階段值,並且根據該目標刷新階段值從該刷新階段計數表中查找對應目標刷新階段計數值。
- 如申請專利範圍第1項所述的記憶體管理方法,其中上述步驟(5b)包括: 反應於該目標指令具有該目標刷新階段值,將該目標刷新階段計數值減一,以改變該目標刷新階段計數值; 判斷改變後的該目標刷新階段計數值是否等於1,其中反應於該目標刷新階段計數值不等於1,執行步驟(5a), 其中反應於該目標刷新階段計數值等於1,執行步驟(5c), 其中該步驟(5c)包括: 反應於完成該目標指令的執行,刪除該指令佇列中的該目標指令以及該目標刷新指令。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該刷新指令用以指示將該指令佇列的所述一或多個第二指令刪除,並且該刷新指令與所述一或多個第二指令皆對應相同的識別單元,其中上述步驟(2a)包括: 不根據該刷新指令執行所述一或多個第二指令,並且不刪除所述一或多個第二指令; 記錄該刷新階段計數值,以對應該些刷新階段中的該第一刷新階段, 其中該些刷新階段以循環(Round Robin)方式排列,並且該第二刷新階段排列在該第一刷新階段之後。
- 如申請專利範圍第5項所述的記憶體管理方法,其中上述步驟(2a)的根據該指令佇列中的所述一或多個刷新指令的該總數以及該指令佇列的剩餘空間的步驟包括: 判斷該指令佇列中的所述一或多個刷新指令的總數是否大於一階段上限值, 其中反應於判定所述一或多個刷新指令的該總數大於該階段上限值,執行步驟(3), 其中反應於判定所述一或多個刷新指令的該總數不大於該階段上限值,判斷該指令佇列是否具有該剩餘空間,其中反應於判定該指令佇列不具有該剩餘空間,執行步驟(3),其中反應於判定該指令佇列具有該剩餘空間,執行步驟(1)。
- 一種儲存控制器,用於控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置,該儲存控制器包括: 一連接介面電路,用以耦接至一主機系統,其中該連接介面電路包括一指令緩衝器,用以暫存來自該主機系統的指令; 一記憶體介面控制電路,用以耦接至該可複寫式非揮發性記憶體模組; 一主機指令管理電路單元;以及 一處理器,耦接至該連接介面電路、該記憶體介面控制電路及該主機指令管理電路單元,其中該處理器用以指示該主機指令管理電路單元執行一主機指令管理操作,該主機指令管理操作包括下列步驟: (1) 該主機指令管理電路單元用以從指令緩衝器獲取新的第一指令,並且判斷該第一指令是否為刷新指令(Flush Command),其中反應於判定該第一指令為該刷新指令,執行步驟(2a),其中反應於判定該第一指令不為該刷新指令,執行步驟(2b); (2a) 該主機指令管理電路單元用以將該刷新指令儲存至指令佇列(Command Queue)中,根據該刷新指令來辨識該指令佇列中對應該刷新指令的一或多個第二指令,並且計數該刷新指令與所述一或多個第二指令的總數以成為對應一當前刷新階段的刷新階段計數值; 該主機指令管理電路單元更用以根據該當前刷新階段來設定該指令佇列中的該刷新指令與所述一或多個第二指令各自的刷新階段值,並且將該當前刷新階段從多個刷新階段中的第一刷新階段調整至第二刷新階段;以及 該主機指令管理電路單元更用以根據該指令佇列中的一或多個刷新指令的總數以及該指令佇列的剩餘空間來執行步驟(1)或步驟(3); (2b) 該主機指令管理電路單元用以將該第一指令儲存至指令佇列,並且根據該指令佇列的該剩餘空間來執行步驟(1)或步驟(3); (3) 該主機指令管理電路單元用以不從該指令緩衝器獲取新的第一指令,並且執行步驟(4); (4) 該主機指令管理電路單元用以從該指令佇列的一或多個非刷新指令中選擇新的目標指令,辨識該目標指令的目標刷新階段值以及對應該目標刷新階段值的目標刷新階段計數值,其中反應於該目標指令不具有該目標刷新階段值,執行步驟(5a),其中反應於該目標指令具有該目標刷新階段值,執行步驟(5b); (5a) 該主機指令管理電路單元用以指示該處理器執行該目標指令,並且反應於完成該目標指令的執行,該主機指令管理電路單元用以從該指令佇列中刪除該目標指令,並且執行步驟(1); (5b) 該主機指令管理電路單元用以改變該目標刷新階段計數值,並且根據改變後的該目標刷新階段計數值執行步驟(5a)或步驟(5c); (5c) 該主機指令管理電路單元用以指示該處理器執行該目標指令,並且回應該主機系統對應該目標刷新階段值的目標刷新指令已經執行完畢,該主機指令管理電路單元更用以將該目標刷新階段計數值設定為該預設值,並且執行步驟(1)。
- 如申請專利範圍第7項所述的儲存控制器,其中該指令緩衝器用以從該主機系統接收指令,其中上述方法更包括下列步驟: 反應於該指令緩衝器與該指令佇列皆不具有任何指令,該主機指令管理電路單元結束上述記憶體管理方法的所有步驟;以及 反應於經由空的該指令緩衝器從該主機系統接收到一個指令,該主機指令管理電路單元開始執行上述步驟(1) , 其中上述步驟(1)的從指令緩衝器獲取該新的第一指令的步驟包括反應於該指令緩衝器不具有可被獲取的該新的第一指令,執行步驟(4)。
- 如申請專利範圍第7項所述的儲存控制器,其中該指令佇列被維護於該主機指令管理電路單元中,該指令佇列的所有指令皆各自被標記對應的刷新階段值,其中一刷新階段計數表被維護於該主機指令管理電路單元中,並且該刷新階段計數表記錄有該些刷新階段與分別對應該些刷新階段的多個刷新階段計數值,其中上述步驟(4)包括: 該主機指令管理電路單元依據一先進先出方式(First In First Out)來從該指令佇列的所述一或多個非刷新指令中選擇該目標指令;以及 該主機指令管理電路單元從指令佇列中辨識該目標指令的被標記的該目標刷新階段值,並且根據該目標刷新階段值從該刷新階段計數表中查找對應目標刷新階段計數值。
- 如申請專利範圍第7項所述的儲存控制器,其中上述步驟(5b)包括: 反應於該目標指令具有該目標刷新階段值,該主機指令管理電路單元將該目標刷新階段計數值減一,以改變該目標刷新階段計數值; 該主機指令管理電路單元判斷改變後的該目標刷新階段計數值是否等於1,其中反應於該目標刷新階段計數值不等於1,執行步驟(5a), 其中反應於該目標刷新階段計數值等於1,執行步驟(5c), 其中該步驟(5c)包括: 反應於完成該目標指令的執行,該主機指令管理電路單元刪除該指令佇列中的該目標指令以及該目標刷新指令。
- 如申請專利範圍第7項所述的儲存控制器,其中該刷新指令用以指示將該指令佇列的所述一或多個第二指令刪除,並且該刷新指令與所述一或多個第二指令皆對應相同的識別單元,其中上述步驟(2a)包括: 該主機指令管理電路單元不根據該刷新指令執行所述一或多個第二指令,並且不刪除所述一或多個第二指令; 該主機指令管理電路單元記錄該刷新階段計數值,以對應該些刷新階段中的該第一刷新階段, 其中該些刷新階段以循環(Round Robin)方式排列,並且該第二刷新階段排列在該第一刷新階段之後。
- 如申請專利範圍第11項所述的儲存控制器,其中上述步驟(2a)的根據該指令佇列中的所述一或多個刷新指令的該總數以及該指令佇列的剩餘空間的步驟包括: 該主機指令管理電路單元判斷該指令佇列中的所述一或多個刷新指令的總數是否大於一階段上限值, 其中反應於判定所述一或多個刷新指令的該總數大於該階段上限值,執行步驟(3), 其中反應於判定所述一或多個刷新指令的該總數不大於該階段上限值,該主機指令管理電路單元判斷該指令佇列是否具有該剩餘空間,其中反應於判定該指令佇列不具有該剩餘空間,執行步驟(3),其中反應於判定該指令佇列具有該剩餘空間,執行步驟(1)。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107131605A TWI660346B (zh) | 2018-09-07 | 2018-09-07 | 記憶體管理方法以及儲存控制器 |
US16/218,437 US10635358B2 (en) | 2018-09-07 | 2018-12-12 | Memory management method and storage controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107131605A TWI660346B (zh) | 2018-09-07 | 2018-09-07 | 記憶體管理方法以及儲存控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI660346B true TWI660346B (zh) | 2019-05-21 |
TW202011399A TW202011399A (zh) | 2020-03-16 |
Family
ID=67348227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107131605A TWI660346B (zh) | 2018-09-07 | 2018-09-07 | 記憶體管理方法以及儲存控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10635358B2 (zh) |
TW (1) | TWI660346B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI726381B (zh) * | 2019-02-26 | 2021-05-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
US11055004B2 (en) | 2019-02-26 | 2021-07-06 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
US11080203B2 (en) | 2019-02-26 | 2021-08-03 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
US11126558B2 (en) | 2019-02-26 | 2021-09-21 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
US11182286B2 (en) | 2019-02-26 | 2021-11-23 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
TWI840734B (zh) * | 2022-01-10 | 2024-05-01 | 群聯電子股份有限公司 | 指令管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11086778B2 (en) * | 2018-10-15 | 2021-08-10 | Texas Instruments Incorporated | Multicore shared cache operation engine |
US11403228B2 (en) * | 2020-02-18 | 2022-08-02 | Micron Technology, Inc. | Memory device page program sequence |
TWI810095B (zh) * | 2022-10-18 | 2023-07-21 | 慧榮科技股份有限公司 | 資料儲存裝置與寫入緩存器管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI405209B (zh) * | 2009-04-01 | 2013-08-11 | Phison Electronics Corp | 資料管理方法及使用此方法的快閃儲存系統與控制器 |
US9165337B2 (en) * | 2013-05-31 | 2015-10-20 | Qualcomm Incorporated | Command instruction management |
US9467511B2 (en) * | 2012-01-17 | 2016-10-11 | Intel Corporation | Techniques for use of vendor defined messages to execute a command to access a storage device |
US20180136840A1 (en) * | 2016-11-16 | 2018-05-17 | Sandisk Technologies Llc | Storage operation queue |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7574565B2 (en) * | 2006-01-13 | 2009-08-11 | Hitachi Global Storage Technologies Netherlands B.V. | Transforming flush queue command to memory barrier command in disk drive |
JP2012234254A (ja) * | 2011-04-28 | 2012-11-29 | Toshiba Corp | メモリシステム |
US10534709B2 (en) * | 2016-08-31 | 2020-01-14 | Sandisk Technologies Llc | Flush command consolidation |
JP2018160155A (ja) * | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | 記憶装置 |
US10289552B2 (en) * | 2017-05-03 | 2019-05-14 | Western Digital Technologies, Inc. | Storage system and method for flush optimization |
US10606488B2 (en) * | 2017-06-30 | 2020-03-31 | Intel Corporation | Selective data flush in a storage device |
KR102608825B1 (ko) * | 2018-04-26 | 2023-12-04 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이의 동작 방법 |
-
2018
- 2018-09-07 TW TW107131605A patent/TWI660346B/zh active
- 2018-12-12 US US16/218,437 patent/US10635358B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI405209B (zh) * | 2009-04-01 | 2013-08-11 | Phison Electronics Corp | 資料管理方法及使用此方法的快閃儲存系統與控制器 |
US9467511B2 (en) * | 2012-01-17 | 2016-10-11 | Intel Corporation | Techniques for use of vendor defined messages to execute a command to access a storage device |
US9165337B2 (en) * | 2013-05-31 | 2015-10-20 | Qualcomm Incorporated | Command instruction management |
US20180136840A1 (en) * | 2016-11-16 | 2018-05-17 | Sandisk Technologies Llc | Storage operation queue |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI726381B (zh) * | 2019-02-26 | 2021-05-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
US11055004B2 (en) | 2019-02-26 | 2021-07-06 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
US11080203B2 (en) | 2019-02-26 | 2021-08-03 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
US11126558B2 (en) | 2019-02-26 | 2021-09-21 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
US11182286B2 (en) | 2019-02-26 | 2021-11-23 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
TWI840734B (zh) * | 2022-01-10 | 2024-05-01 | 群聯電子股份有限公司 | 指令管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Also Published As
Publication number | Publication date |
---|---|
TW202011399A (zh) | 2020-03-16 |
US10635358B2 (en) | 2020-04-28 |
US20200081655A1 (en) | 2020-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI660346B (zh) | 記憶體管理方法以及儲存控制器 | |
CN107844431B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
US11216362B2 (en) | Data storage device and operating method thereof | |
US9933975B1 (en) | Data transmission method, memory storage device and memory control circuit unit | |
US20210064521A1 (en) | Data storage device and operating method thereof | |
TW201727647A (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI648634B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
US11693567B2 (en) | Memory performance optimization method, memory control circuit unit and memory storage device | |
TW201947402A (zh) | 記憶體管理方法以及儲存控制器 | |
CN107025063B (zh) | 内存管理方法、内存储存装置及内存控制电路单元 | |
TW202016937A (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI796882B (zh) | 讀取干擾檢查方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI686697B (zh) | 記憶體管理方法以及儲存控制器 | |
TWI648739B (zh) | 記憶體管理方法與儲存控制器 | |
CN113867640A (zh) | 存储器轮询方法、存储器存储装置及存储器控制电路单元 | |
KR102330394B1 (ko) | 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법 | |
US11573732B2 (en) | Storage device, memory system comprising the same, and operation method thereof | |
TWI670599B (zh) | 記憶體管理方法以及儲存控制器 | |
US10884660B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
CN110879794B (zh) | 存储器管理方法以及存储控制器 | |
CN110908592B (zh) | 存储器管理方法以及存储控制器 | |
CN117632038B (zh) | 损耗平衡方法、存储器存储装置及存储器控制电路单元 | |
TWI840734B (zh) | 指令管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
US20230147477A1 (en) | Storage device, memory system comprising the same, and operation method thereof |