TWI646546B - 資料儲存裝置以及記憶體讀取方法 - Google Patents

資料儲存裝置以及記憶體讀取方法 Download PDF

Info

Publication number
TWI646546B
TWI646546B TW106127272A TW106127272A TWI646546B TW I646546 B TWI646546 B TW I646546B TW 106127272 A TW106127272 A TW 106127272A TW 106127272 A TW106127272 A TW 106127272A TW I646546 B TWI646546 B TW I646546B
Authority
TW
Taiwan
Prior art keywords
instruction
flash memory
queue
external
identification code
Prior art date
Application number
TW106127272A
Other languages
English (en)
Other versions
TW201911327A (zh
Inventor
謝銘昌
許哲瑋
洪文琦
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW106127272A priority Critical patent/TWI646546B/zh
Priority to CN201810048616.4A priority patent/CN109390026B/zh
Priority to US15/922,669 priority patent/US20190050167A1/en
Application granted granted Critical
Publication of TWI646546B publication Critical patent/TWI646546B/zh
Publication of TW201911327A publication Critical patent/TW201911327A/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Abstract

一種資料儲存裝置接收主機所發送之外部指令,包括:複數快閃記憶體空間以及控制晶片。控制晶片接收外部指令並佇列於第一指令佇列,並將上述外部指令轉譯為複數操作指令且依序執行操作指令以分別操作快閃記憶體空間。控制晶片更將識別碼給予操作指令之至少一特定操作指令,用以追蹤至少一特定操作指令之執行結果。

Description

資料儲存裝置以及記憶體讀取方法
本發明係有關於一種快閃式資料儲存裝置及其讀取方法,特別係有關於能夠並列執行錯誤更正處理之快閃式資料儲存裝置及其讀取方法。
由於快閃式記憶體進行讀取操作的時候皆需要進行錯誤更正解碼(ECC decode)之動作,而錯誤更正解碼所需花費的時間取決於錯誤更正解碼器的頻寬與效率。往往在執行到讀取直接記憶體存取(read DMA)的指令時,都需要等待錯誤更正解碼器的結果來判斷錯誤更正是否成功。
由於錯誤更正解碼器係由多個通道所共用,當多個通道同時共用錯誤解碼器的時候,會產生一段很長的延遲時間。因此,我們有必要針對快閃式記憶體的讀取流程進行最佳化。
有鑑於此,本發明提出一種資料儲存裝置,接收一主機所發送之一外部指令,包括:複數快閃記憶體空間以及一控制晶片。上述控制晶片接收上述外部指令並佇列於一第一指令佇列,其中上述控制晶片將上述外部指令轉譯為複數操作 指令,其中上述控制晶片依序執行上述操作指令以分別操作上述快閃記憶體空間,其中上述控制晶片更將一識別碼給予上述操作指令之至少一特定操作指令,用以追蹤上述至少一特定操作指令之一執行結果。
根據本發明之一實施例,上述控制晶片包括:一輸入/輸出控制器以及一中央處理單元。上述輸入/輸出控制器透過一輸入/輸出介面接收上述外部指令。上述中央處理單元將接收之上述外部指令佇列於一內部指令佇列,並依順序以及優先權將上述內部指令佇列之上述外部指令傳送至上述第一指令佇列。
根據本發明之一實施例,上述控制晶片更包括:一快閃記憶體控制器。上述快閃記憶體控制器包括上述第一指令佇列以及一第二指令佇列,其中上述快閃記憶體控制器將上述第一指令佇列之上述外部指令轉譯為上述操作指令,並將上述操作指令佇列於上述第二指令佇列。
根據本發明之一實施例,上述快閃記憶體控制器將上述識別碼給予上述至少一特定操作指令,其中當上述快閃記憶體控制器執行上述至少一特定操作指令時,上述快閃記憶體控制器同時輸出上述識別碼以及上述至少一特定操作指令至一ECC編/解碼器,其中上述ECC編/解碼器根據上述至少一特定操作指令產生上述處理結果以及處理資料。
根據本發明之一實施例,上述ECC編/解碼器更將上述處理結果以及上述處理資料與上述識別碼建立關聯性,其 中上述快閃記憶體控制器週期性地根據上述識別碼存取上述執行結果,並判斷上述執行結果是否成功,其中當上述快閃記憶體控制器判斷上述執行結果為不成功時,上述快閃記憶體控制器執行一資料回覆程序。
本發明更提出一種記憶體讀取方法,適用於複數快閃記憶體空間,包括:接收一主機發送之一外部指令;將上述外部指令轉譯為複數操作指令;將一識別碼給予上述操作指令之至少一特定操作指令;依序執行上述操作指令以分別操作上述快閃記憶體空間;以及根據上述識別碼,追蹤上述至少一特定操作指令之一執行結果。
根據本發明之一實施例,記憶體讀取方法更包括:將接收之上述外部指令佇列於一第一指令佇列;將上述第一指令佇列之上述外部指令轉譯為上述操作指令;將上述操作指令佇列於一第二佇列;以及當執行上述至少一特定操作指令時,同時輸出上述識別碼以及上述至少一特定操作指令。
根據本發明之一實施例,記憶體讀取方法更包括:週期性地根據上述識別碼存取上述至少一特定操作指令之一執行結果;以及判斷上述執行結果是否成功。
根據本發明之一實施例,記憶體讀取方法更包括:當判斷上述執行結果為成功時,將上述外部指令對應之上述操作指令自上述第二指令佇列移除;以及當判斷上述執行結果為不成功時,執行一資料回覆程序。
100‧‧‧資料儲存裝置
110‧‧‧控制晶片
10‧‧‧主機
111‧‧‧輸入/輸出介面
112‧‧‧輸入/輸出控制器
113‧‧‧中央處理單元
114‧‧‧快閃記憶體控制器
115‧‧‧DRAM控制器
CQ#1‧‧‧第一指令佇列
CQ#2‧‧‧第二指令佇列
DRAM‧‧‧動態隨機存取記憶體
Flash#1‧‧‧第一快閃記憶體空間
Flash#2‧‧‧第二快閃記憶體空間
Flash#3‧‧‧第三快閃記憶體空間
Flash#4‧‧‧第四快閃記憶體空間
NVMe#0‧‧‧外部指令
CMD#0~CMD#4‧‧‧讀取指令
SP#0~SP#4‧‧‧狀態輪詢指令
DO#0~DO#4‧‧‧資料輸出指令
ID#0、ID#1‧‧‧識別碼
S302~S316‧‧‧步驟流程
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置之方塊圖;第2圖係顯示根據本發明之一實施例所述之操作指令執行時程之示意圖;第3圖係顯示根據本發明之一實施例所述之操作指令執行方法之流程圖;以及第4圖係顯示根據本發明之另一實施例所述之操作指令執行時程之示意圖。
以下說明為本發明的實施例。其目的是要舉例說明本發明一般性的原則,不應視為本發明之限制,本發明之範圍當以申請專利範圍所界定者為準。
值得注意的是,以下所揭露的內容可提供多個用以實踐本發明之不同特點的實施例或範例。以下所述之特殊的元件範例與安排僅用以簡單扼要地闡述本發明之精神,並非用以限定本發明之範圍。此外,以下說明書可能在多個範例中重複使用相同的元件符號或文字。然而,重複使用的目的僅為了提供簡化並清楚的說明,並非用以限定多個以下所討論之實施例以及/或配置之間的關係。此外,以下說明書所述之一個特徵連接至、耦接至以及/或形成於另一特徵之上等的描述,實際可包含多個不同的實施例,包括該等特徵直接接觸,或者包含其它額外的特徵形成於該等特徵之間等等,使得該等特徵並非直接接觸。
第1圖係顯示根據本發明之一種實施方式所實現 的資料儲存裝置之方塊圖,其中採用快閃記憶體(Flash Memory)作為儲存媒體。為了方便說明,第1圖僅圖解單一通道藉晶片致動信號(Chip Enable Signals)交錯操作的複數個快閃記憶體空間,在此以第一快閃記憶體空間Flash#1、第二快閃記憶體空間Flash#2、第三快閃記憶體空間Flash#3與第四快閃記憶體空間Flash#4作為說明解釋。第一快閃記憶體空間Flash#1、第二快閃記憶體空間Flash#2、第三快閃記憶體空間Flash#3與第四快閃記憶體空間Flash#4可為不同的晶粒(Dies),也可為不同的邏輯單元(LUN)。當通道大於一時,可複製第1圖的架構以及適當的調整,即可滿足使用者的需求。
第1圖更圖解資料儲存裝置100的控制晶片110,可依據主機10的外部指令(例如:NVMe指令)而操作第一快閃記憶體空間Flash#1、第二快閃記憶體空間Flash#2、第三快閃記憶體空間Flash#3與第四快閃記憶體空間Flash#4。資料儲存裝置可使用動態隨機存取記憶體(Dynamic Random Access Memory,)DRAM作為資料緩衝器以加速資料的存取,但DRAM為非必要元件。控制晶片110包括輸入/輸出介面111、輸入/輸出控制器112、中央處理單元113、快閃記憶體控制器114以及DRAM控制器115。輸入/輸出控制器112透過輸入/輸出介面111,接收主機10所發出之外部指令。中央處理單元113可將輸入/輸出控制器112所接收外部指令佇列至內部指令佇列CQ#0(圖中並未顯示),再依序或依優先權設定而將外部指令傳送至快閃記憶體控制器114。內部指令佇列CQ#0較佳可由建立 於控制晶片110內建的靜態記憶體(Static Random Access Memory)SRAM中,亦可透過DRAM控制器115建立於DRAM。
快閃記憶體控制器114較佳建立第一指令佇列CQ#1以及第二指令佇列CQ#2於控制晶片110所內建的SRAM中,第一指令佇列CQ#1可用以佇列外部指令,第二指令佇列CQ#2可用以佇列由外部指令轉譯後的快閃記憶體操作指令(以下簡稱操作指令),再依據操作指令對第一快閃記憶體空間Flash#1、第二快閃記憶體空間Flash#2、第三快閃記憶體空間Flash#3與第四快閃記憶體空間Flash#4進行操作。另外,中央處理單元113與快閃記憶體控制器114較佳整合於同一晶片中,亦可分別獨立存在(即,不同的晶片)。
控制晶片110更包括ECC編/解碼器,其中,ECC編碼器可依據資料而產生同位碼(Parity Code,PC),之後,ECC解碼器可依據此同位碼而對資料進行錯誤更正。如果資料不含任何錯誤位元或錯誤位元的總數不超過一門檻值,則ECC解碼器可依據同位碼而更正資料中的錯誤位元,並回傳更正成功之訊息,反之,則回傳更正失敗之訊息。快閃記憶體控制器114可將資料以及同位碼儲存至第一快閃記憶體空間Flash#1、第二快閃記憶體空間Flash#2、第三快閃記憶體空間Flash#3或第四快閃記憶體空間Flash#4之任一者,其中,資料以及同位碼較佳儲存於快閃記憶體空間的同一資料儲存空間,例如,同一資料頁;資料以及同位碼可相鄰地儲存,亦可分開地儲存。
以資料讀取為例,由於ECC編/解碼器所佔用的電 路面積龐大,因此,在資料讀取過程中,通常是將來自數個快閃記憶體空間,例如:第一快閃記憶體空間Flash#1和第一快閃記憶體空間Flash#2,的資料以及同位碼傳輸至一個ECC編/解碼器,或是將來自所有快閃記憶體空間,例如:第一快閃記憶體空間Flash#1、第一快閃記憶體空間Flash#2、第三快閃記憶體空間Flash#3與第四快閃記憶體空間Flash#4,的資料以及同位碼傳輸至一個ECC編/解碼器,由上述可知,ECC編/解碼器的編/解碼能力將決定資料儲存裝置的存取效能。另外,由於ECC編/解碼器執行編/解碼所需的時間較長,所以成為資料儲存裝置系統效能的瓶頸。因此,如何有效率地執行操作指令或減少資料編/解碼所需的時間成為一個重要的技術課題。
第2圖係顯示根據本發明之一實施例所述之操作指令執行的示意圖。以資料讀取為例,如第2圖所示,外部指令NVMe#0轉譯成三個操作指令,分別為讀取指令CMD#0,狀態輪詢指令(Status Polling)SP#0以及資料輸出指令(Data Output)DO#0。另外,外部指令與操作指令可為一對一對應,應可一對多對應,例如,讀取指令CMD#0~1,狀態輪詢指令ST#0~1以及資料輸出指令DO#0~1皆對應至外部指令NVMe#0。
資料輸出指令DO#0可將快閃記憶體空間的資料及同位碼傳送至ECC編/解碼器。另外,快閃記憶體空間與ECC編/解碼器之間的資料傳輸較佳透過DMA方式,以加速快閃記憶體空間與ECC編/解碼器之間的資料傳輸速度,亦可降低資料傳輸對中央處理單元113或快閃記憶體控制器114的負載。
資料輸出指令DO的執行時間更包括ECC編/解碼器的執行時間。由於ECC編/解碼器進行資料更正需要一段時間,且有可能發生更正失敗的事件,因此,執行資料輸出指令DO#0後,除了需等待資料和同位碼從快閃記憶體空間傳送至ECC編/解碼器所需的時間之外,快閃記憶體控制器114更需等待ECC編/解碼器回傳資料更正的執行結果。如果執行結果為更正成功,則快閃記憶體控制器114可執行下一個操作指令,例如:讀取指令CMD#1;如果執行結果為更正失敗,則快閃記憶體控制器114啟動資料回復(recovery)程序,藉由重新設定快閃記憶體空間的操作條件,並重新執行讀取指令CMD#0、狀態輪詢指令ST#0以及資料輸出指令DO#0,直到執行結果為更正成功為止。
第3圖係顯示根據本發明之一實施例所述之操作指令執行方法之流程圖,適用於以非揮發性記憶體作為儲存媒體的資料儲存裝置。步驟S302:接收並佇列外部指令。中央處理單元113接收來自主機10的外部指令,並將外部指令佇列至內部指令佇列CQ#0。快閃記憶體控制器114接收來自中央處理單元113的外部指令,並將外部指令佇列至第一指令佇列CQ#1。
步驟S304:產生對應外部指令之複數操作指令。快閃記憶體控制器114依序將佇列於第一指令佇列CQ#1的外部指令轉譯成複數個操作指令,例如:將外部指令轉譯成讀取指令CMD#0、狀態輪詢指令ST#0以及資料輸出指令DO#0,並 將這些操作指令佇列至第二指令佇列CQ#2,再伺機依序執行這些操作指令。
步驟S306:給予其中之一複數操作指令一個識別碼,此識別碼可用以追踪特定操作指令的執行結果,例如,快閃記憶體控制器114將識別碼ID#0給予資料輸出指令DO#0,將識別碼ID#1給予資料輸出指令DO#1。另外,快閃記憶體控制器114也可以給予複數操作指令一個識別碼,而非特定操作指令一個識別碼,例如,給予讀取指令CMD#0、狀態輪詢指令ST#0以及資料輸出指令DO#0識別碼ID#0;給予讀取指令CMD#1,狀態輪詢指令ST#1以及資料輸出指令DO#1識別碼ID#1。
第4圖係顯示根據本發明之另一實施例所述之操作指令執行時程之示意圖。如第4圖所示,識別碼ID#0係給予資料輸出指令DO#0,識別碼ID#1係給予資料輸出指令DO#1。
步驟S308:依序執行複數操作指令。如圖4所示,快閃記憶體控制器114依序執行讀取指令CMD#0、狀態輪詢指令ST#0、資料輸出指令DO#0、讀取指令CMD#1、狀態輪詢指令ST#1、資料輸出指令DO#1等等。
步驟S310:輸出識別碼。快閃記憶體控制器114於執行特定操作指令時,同時或跟著輸出識別碼。例如,執行資料輸出指令DO#0時,同時或跟著輸出識別碼ID#0至ECC編/解碼器,執行資料輸出指令DO#1時,同時或跟著輸出識別碼ID#1至ECC編/解碼器。換句話說,ECC編/解碼器除了收到來自於快閃記憶體空間Flash的資料及同位碼外,更收到並記錄來自於 快閃記憶體控制器114的識別碼,並將資料與識別碼建立關連。在執行完步驟S310之後,快閃記憶體控制器114可重新執行步驟S308,無需等待ECC編/解碼器回傳執行結束。由於無需等待ECC編/解碼器的執行結束,下一個操作指令就能直接執行,加速操作指令的執行速度,達到本發明的目的。如第4圖所示,執行資料輸出指令DO#0及執行資料輸出指令DO#1所佔用的時間明顯地縮短。
步驟S312:依據識別碼存取執行結果。ECC編/解碼器完成資料解密之後,便將資料、執行結果與識別碼建立關連,並儲存至SRAM中。快閃記憶體控制器114可週期性地或依據其他設定來檢查SRAM所儲存的資料,並依據識別碼來找尋資料輸出指令DO的執行結果。
步驟S314:判斷執行結果是否成功。假設SRAM中有一筆資料DT#0、執行結果表示更正成功且識別碼為ID#0,則快閃記憶體控制器114判定資料輸出指令DO#0的執行結果為更正成功,可結束本發明的流程;或者,重新執行步驟S302;更甚者,可將讀取指令CMD#0、狀態輪詢指令ST#0以及資料輸出指令DO#0自第二指令佇列CQ#2中移除,使第二指令佇列CQ#2可以容納其他操作指令。
假設SRAM中有一筆資料DT#1、執行結果表示更正失敗且識別碼為ID#1,則快閃記憶體控制器114判定資料輸出指令DO#1的執行結果為更正失敗,則執行步驟S316:執行資料回復程序,試著再更正資料DT#1。由於資料回復程序為習知 技藝,故不多作說明。
以上所述為實施例的概述特徵。所屬技術領域中具有通常知識者應可以輕而易舉地利用本發明為基礎設計或調整以實行相同的目的和/或達成此處介紹的實施例的相同優點。所屬技術領域中具有通常知識者也應了解相同的配置不應背離本創作的精神與範圍,在不背離本創作的精神與範圍下他們可做出各種改變、取代和交替。說明性的方法僅表示示範性的步驟,但這些步驟並不一定要以所表示的順序執行。可另外加入、取代、改變順序和/或消除步驟以視情況而作調整,並與所揭露的實施例精神和範圍一致。

Claims (9)

  1. 一種資料儲存裝置,接收一主機所發送之一外部指令,包括:複數快閃記憶體空間;以及一控制晶片,接收上述外部指令並佇列於一第一指令佇列,其中上述控制晶片將上述外部指令轉譯為複數操作指令,其中上述控制晶片依序執行上述操作指令以分別操作上述快閃記憶體空間,其中上述控制晶片更將一識別碼給予上述操作指令之至少一特定操作指令,用以追蹤上述至少一特定操作指令之一執行結果。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中上述控制晶片包括:一輸入/輸出控制器,透過一輸入/輸出介面接收上述外部指令;以及一中央處理單元,將接收之上述外部指令佇列於一內部指令佇列,並依順序以及優先權將上述內部指令佇列之上述外部指令傳送至上述第一指令佇列。
  3. 如申請專利範圍第2項所述之資料儲存裝置,其中上述控制晶片更包括:一快閃記憶體控制器,包括上述第一指令佇列以及一第二指令佇列,其中上述快閃記憶體控制器將上述第一指令佇列之上述外部指令轉譯為上述操作指令,並將上述操作指令佇列於上述第二指令佇列。
  4. 如申請專利範圍第3項所述之資料儲存裝置,其中上述快閃記憶體控制器將上述識別碼給予上述至少一特定操作指令,其中當上述快閃記憶體控制器執行上述至少一特定操作指令時,上述快閃記憶體控制器同時輸出上述識別碼以及上述至少一特定操作指令至一ECC編/解碼器,其中上述ECC編/解碼器根據上述至少一特定操作指令產生上述處理結果以及處理資料。
  5. 如申請專利範圍第4項所述之資料儲存裝置,其中上述ECC編/解碼器更將上述處理結果以及上述處理資料與上述識別碼建立關聯性,其中上述快閃記憶體控制器週期性地根據上述識別碼存取上述執行結果,並判斷上述執行結果是否成功,其中當上述快閃記憶體控制器判斷上述執行結果為不成功時,上述快閃記憶體控制器執行一資料回覆程序。
  6. 一種記憶體讀取方法,適用於複數快閃記憶體空間,包括:接收一主機發送之一外部指令;將上述外部指令轉譯為複數操作指令;將一識別碼給予上述操作指令之至少一特定操作指令;依序執行上述操作指令以分別操作上述快閃記憶體空間;以及根據上述識別碼,追蹤上述至少一特定操作指令之一執行結果。
  7. 如申請專利範圍第6項所述之記憶體讀取方法,更包括:將接收之上述外部指令佇列於一第一指令佇列;將上述第一指令佇列之上述外部指令轉譯為上述操作指令;將上述操作指令佇列於一第二佇列;以及當執行上述至少一特定操作指令時,同時輸出上述識別碼以及上述至少一特定操作指令。
  8. 如申請專利範圍第7項所述之記憶體讀取方法,更包括:週期性地根據上述識別碼存取上述至少一特定操作指令之一執行結果;以及判斷上述執行結果是否成功。
  9. 如申請專利範圍第8項所述之記憶體讀取方法,更包括:當判斷上述執行結果為成功時,將上述外部指令對應之上述操作指令自上述第二指令佇列移除;以及當判斷上述執行結果為不成功時,執行一資料回覆程序指令隊列;以及當判斷上述第二資料執行上述錯誤更正處理失敗時,將上述第二讀取指令再次堆疊於上述快閃指令隊列。
TW106127272A 2017-08-11 2017-08-11 資料儲存裝置以及記憶體讀取方法 TWI646546B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW106127272A TWI646546B (zh) 2017-08-11 2017-08-11 資料儲存裝置以及記憶體讀取方法
CN201810048616.4A CN109390026B (zh) 2017-08-11 2018-01-18 资料储存装置以及读取方法
US15/922,669 US20190050167A1 (en) 2017-08-11 2018-03-15 Flash Storage Devices Executing ECC in Parallel and Methods Thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106127272A TWI646546B (zh) 2017-08-11 2017-08-11 資料儲存裝置以及記憶體讀取方法

Publications (2)

Publication Number Publication Date
TWI646546B true TWI646546B (zh) 2019-01-01
TW201911327A TW201911327A (zh) 2019-03-16

Family

ID=65274962

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106127272A TWI646546B (zh) 2017-08-11 2017-08-11 資料儲存裝置以及記憶體讀取方法

Country Status (3)

Country Link
US (1) US20190050167A1 (zh)
CN (1) CN109390026B (zh)
TW (1) TWI646546B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI742565B (zh) * 2019-06-06 2021-10-11 旺宏電子股份有限公司 記憶體裝置、電子裝置以及與其相關的讀取方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131383A1 (en) * 2006-08-22 2011-06-02 Mosaid Technologies Incorporated Modular command structure for memory and memory system
US8112693B2 (en) * 2007-05-02 2012-02-07 Samsung Electronics Co., Ltd. Error control code apparatuses and methods of using the same
US8310880B2 (en) * 2010-03-05 2012-11-13 248 Solid State, Inc. Virtual channel support in a nonvolatile memory controller
US20160147664A1 (en) * 2014-11-21 2016-05-26 International Business Machines Corporation Dynamic partial blocking of a cache ecc bypass

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4821372B2 (ja) * 2006-03-03 2011-11-24 富士ゼロックス株式会社 画像読み取り装置
US8321627B1 (en) * 2011-10-06 2012-11-27 Google Inc. Memory operation command latency management
TWI497515B (zh) * 2012-07-10 2015-08-21 Silicon Motion Inc 快閃記憶體控制器、快閃記憶體偵錯方法
TWI514389B (zh) * 2012-09-03 2015-12-21 Silicon Motion Inc 快閃記憶體控制器和快閃記憶體控制方法
US10133627B2 (en) * 2015-12-11 2018-11-20 SK Hynix Inc. Memory device controller with mirrored command and operating method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131383A1 (en) * 2006-08-22 2011-06-02 Mosaid Technologies Incorporated Modular command structure for memory and memory system
US8112693B2 (en) * 2007-05-02 2012-02-07 Samsung Electronics Co., Ltd. Error control code apparatuses and methods of using the same
US8310880B2 (en) * 2010-03-05 2012-11-13 248 Solid State, Inc. Virtual channel support in a nonvolatile memory controller
US20160147664A1 (en) * 2014-11-21 2016-05-26 International Business Machines Corporation Dynamic partial blocking of a cache ecc bypass

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI742565B (zh) * 2019-06-06 2021-10-11 旺宏電子股份有限公司 記憶體裝置、電子裝置以及與其相關的讀取方法
US11182302B2 (en) 2019-06-06 2021-11-23 Macronix International Co., Ltd. Memory device, electronic device, and associated read method

Also Published As

Publication number Publication date
CN109390026A (zh) 2019-02-26
TW201911327A (zh) 2019-03-16
CN109390026B (zh) 2021-10-19
US20190050167A1 (en) 2019-02-14

Similar Documents

Publication Publication Date Title
US8914700B2 (en) Data processing method, apparatus and system
US10108372B2 (en) Methods and apparatuses for executing a plurality of queued tasks in a memory
US9411405B2 (en) Method for reducing power consumption in solid-state storage device
US20190384700A1 (en) Methods and apparatuses for requesting ready status information from a memory
JP5032027B2 (ja) 半導体ディスク制御装置
JP5107880B2 (ja) データ転送処理装置及び方法
US20160306588A1 (en) Solid state disk and data moving method
TW202042050A (zh) 利用自我調整寫緩衝區釋放的存儲介質編程
EP2727115B1 (en) Rank-specific cyclic redundancy check
US10983874B2 (en) Processing a recover state input/output request
US20120102262A1 (en) Memory control device, storage device, and memory control method
WO2015035536A1 (zh) 在基于闪存的存储系统中构建raid的方法及系统
US8713410B2 (en) Data storage apparatus, memory control apparatus and method for controlling flash memories
US11245420B2 (en) Apparatus and method for recovering a data error in a memory system
US20170160952A1 (en) Memory controller, memory system, and information processing system
US8359425B2 (en) Memory control device, memory device, and shutdown control method
US11837277B2 (en) Dual slc/qlc programming and resource releasing
TWI646546B (zh) 資料儲存裝置以及記憶體讀取方法
KR20200052842A (ko) 메모리 시스템, 메모리 모듈 및 메모리 시스템의 동작 방법
US20190004942A1 (en) Storage device, its controlling method, and storage system having the storage device
US20120017116A1 (en) Memory control device, memory device, and memory control method
TWI564809B (zh) 單一中斷服務常式執行緒中處理關連於多個請求的返回實體的方法以及使用該方法的裝置
US9245600B2 (en) Semiconductor device and operating method thereof
US8862965B1 (en) Decoding failure management
US11336296B2 (en) Controller and memory system having the controller