TW201812782A - 重試讀取方法以及使用該方法的裝置 - Google Patents

重試讀取方法以及使用該方法的裝置 Download PDF

Info

Publication number
TW201812782A
TW201812782A TW105134400A TW105134400A TW201812782A TW 201812782 A TW201812782 A TW 201812782A TW 105134400 A TW105134400 A TW 105134400A TW 105134400 A TW105134400 A TW 105134400A TW 201812782 A TW201812782 A TW 201812782A
Authority
TW
Taiwan
Prior art keywords
microcode
retry
read
reading
item
Prior art date
Application number
TW105134400A
Other languages
English (en)
Other versions
TWI648742B (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 上海寶存信息科技有限公司
Publication of TW201812782A publication Critical patent/TW201812782A/zh
Application granted granted Critical
Publication of TWI648742B publication Critical patent/TWI648742B/zh

Links

Classifications

    • 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/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • 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
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • 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
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本發明的實施例提出一種重試讀取方法,由處理單元執行,包含以下步驟。於系統開機時,產生重試讀取作業的微碼及儲存重試讀取作業的微碼至指令緩存器。於系統開機後,從主裝置接收到重試讀取命令;以及驅動狀態機,用以執行指令緩存器中的重試讀取作業的微碼。

Description

重試讀取方法以及使用該方法的裝置
本發明關連於一種快閃記憶體裝置,特別是一種重試讀取方法以及使用該方法的裝置。
快閃記憶體裝置通常分為NOR快閃裝置與NAND快閃裝置。NOR快閃裝置為隨機存取裝置,而可於位址腳位上提供任何的位址,用以存取NOR快閃裝置的主裝置(host),並及時地由NOR快閃裝置的資料腳位上獲得儲存於該位址上的資料。相反地,NAND快閃裝置並非隨機存取,而是序列存取。NAND快閃裝置無法像NOR快閃裝置一樣,可以存取任何隨機位址,主裝置反而需要寫入序列的位元組(bytes)的值到NAND快閃裝置中,用以定義請求命令(command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(在快閃記憶體中的一個寫入作業的最小資料塊)或一個區塊(在快閃記憶體中的一個抹除作業的最小資料塊)。實際上,NAND快閃裝置通常從記憶體單元(memory cells)上讀取或寫入完整的數頁資料。當一整頁的資料從陣列讀取到裝置中的緩存器(buffer)後,藉由使用提取訊號(strobe signal)順序地敲出(clock out)內容,讓主單元可逐位元組或字元組(words)存取資料。
NAND快閃裝置的體積越來越小,而資料保留、資料干擾等因素會造成越來越難正確讀取資料。資料重試基本上為一個試誤迴圈(trial-and-error loop),控制器從預設資料表中的第一到最後一個設定嘗試不同閥值電壓(threshold voltage),直到原始位元的錯誤數目低於錯誤檢查校正能力並回復正確的資料。當NAND快閃裝置老化,預先設定的閥值電壓不足以正確讀取資料,且會越來越頻繁的進行重試讀取,造成效能降低。因此,本發明提出一種重試讀取方法以及使用該方法的裝置,用以提升重試讀取的效率。
本發明的實施例提出一種重試讀取方法,由處理單元執行,包含以下步驟。於系統開機時,產生重試讀取作業的微碼及儲存重試讀取作業的微碼至指令緩存器。於系統開機後,從主裝置接收到重試讀取命令;以及驅動狀態機,用以執行指令緩存器中的重試讀取作業的微碼。
本發明的實施例提出一種重試讀取裝置,包含指令緩存器、狀態機及處理單元。處理單元耦接指令緩存器及狀態機,並且於系統開機時,產生重試讀取作業的微碼及儲存重試讀取作業的微碼至指令緩存器。於系統開機後,處理單元從主裝置接收到重試讀取命令;以及驅動狀態機,用以執行指令緩存器中的重試讀取作業的微碼。
10‧‧‧系統
110‧‧‧處理單元
120‧‧‧狀態機
130‧‧‧錯誤檢查修正單元
141‧‧‧非揮發性記憶體
143‧‧‧指令緩存器
145‧‧‧先進先出緩存器
147‧‧‧資料緩存器
150‧‧‧存取介面
160‧‧‧主裝置
170‧‧‧存取介面
170_0~170_j‧‧‧存取子介面
180‧‧‧儲存單元
180_0_0~180_j_i‧‧‧儲存子單元
320_0_0~320_0_i‧‧‧晶片致能控制訊號
40_1、40_2、...、40_n‧‧‧記錄
40_1_1、40_1_2、...、40_1_m1‧‧‧重試參數
40_2_1、40_2_2、...、40_2_m2‧‧‧重試參數
40_n_1、40_n_2、...、40_n_mn‧‧‧重試參數
S510~S540‧‧‧方法步驟
S610~S670‧‧‧方法步驟
第1圖係依據本發明實施例之快閃記憶體的系統架構示意 圖。
第2圖係依據本發明實施例之存取介面與儲存單元的方塊圖。
第3圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。
第4圖係依據本發明實施例的重試參數的儲存示意圖。
第5圖係依據本發明實施例的產生微碼的方法流程圖。
第6圖係依據本發明實施例的重試讀取方法流程圖。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。快閃記憶體的系統架構10中包含處理單元110, 用以寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。詳細來說,處理單元110透過存取介面170寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。處理單元110可使用多種方式實施,例如以專用硬體電路或通用硬體(例如,單一處理器、具平行處理能力的多處理器或其他具運算能力的處理器),並且從先進先出(FIFO,First-In-First-Output)緩存器145提取指令及依據指令驅動存取介面170。系統架構10使用數個電子訊號來協調處理單元110與儲存單元180間的資料與命令傳遞,包含資料線(data line)、時脈訊號(clock signal)與控制訊號(control signal)。資料線可用以傳遞命令、位址、讀出及寫入的資料;控制訊號線可用以傳遞晶片致能(chip enable,CE)、位址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、寫入致能(write enable,WE)等控制訊號。存取介面170可採用雙倍資料率(double data rate,DDR)通訊協定與儲存單元180溝通,例如,開放NAND快閃(open NAND flash interface,ONFI)、雙倍資料率開關(DDR toggle)或其他介面。處理單元110另可使用存取介面150透過指定通訊協定與主裝置160進行溝通,例如,通用序列匯流排(universal serial bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)或其他介面。
儲存單元180可包含多個儲存子單元,每一個儲存 子單元實施於一個晶粒(die)上,各自使用關聯的存取子介面與處理單元110進行溝通。第2圖係依據本發明實施例之存取介面與儲存單元的方塊圖。快閃記憶體10可包含j+1個存取子介面170_0至170_j,存取子介面又可稱為通道(channel),每一個存取子介面連接i+1個儲存子單元。換句話說,i+1個儲存子單元共享一個存取子介面。例如,當快閃記憶體10包含4個通道(j=3)且每一個通道連接4個儲存單元(i=3)時,快閃記憶體10一共擁有16個儲存單元180_0_0至180_j_i。處理單元110可驅動存取子介面170_0至170_j中之一者,從指定的儲存子單元讀取資料。每個儲存子單元擁有獨立的晶片致能(CE)控制訊號。換句話說,當欲對指定的儲存子單元進行資料讀取時,需要驅動關聯的存取子介面致能此儲存子單元的晶片致能控制訊號。第3圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。處理單元110可透過存取子介面170_0使用獨立的晶片致能控制訊號320_0_0至320_0_i來從連接的儲存子單元180_0_0至180_0_i中選擇出其中一者,接著,透過共享的資料線310_0從選擇出的儲存子單元的指定位置讀取資料。
於一種實施方式中,當透過存取介面150從主裝置160接收到重試讀取命令(retry-read command)時,處理單元110從非揮發性記憶體141將重試讀取的軟體程序(software routine)推入先進先出緩存器(FIFO,First-in-first-out buffer)145,然後再循序從先進先出緩存器145提取指令執行。處理單元110可包含運算邏輯單元(ALU,Arithmetic and Logic Unit)以及位移器(bit shifter)。運算邏輯單元負責執行布林運算(如AND、OR、 NOT、NAND、NOR、XOR、XNOR等),而位移器負責位移運算及位元旋轉。
本發明實施例提出一種重試讀取方法,用以改進以上實施方式的效率。非揮發性記憶體141儲存不同儲存單元類型的重試參數(retry parameters)。第4圖係依據本發明實施例的重試參數的儲存示意圖。假設快閃記憶體可支援n種不同類型的儲存單元:非揮發性記憶體141儲存n筆記錄40_1至40_n,每筆紀錄關連於特定類型的儲存單元,並且以快閃識別碼(flash ID,identifier)區別。每一筆紀錄中包含多個回合的重試參數,每一者包含驅動存取介面170進行資料讀取的設定值。例如,紀錄40_1包含m1回合的重試參數40_1_1至40_1_m1;紀錄40_1包含m2回合的重試參數40_2_1至40_2_m2;以及紀錄40_1包含mn回合的重試參數40_n_1至40_n_mn,其中m1至mn中之任二者可為相同或不同的整數。第5圖係依據本發明實施例的產生微碼(microcode)的方法流程圖。於系統開機時(boot time),處理單元110載入並執行特定軟體程序(software routine)時實施此方法,用以產生重試讀取作業的微碼以及儲存重試讀取作業的微碼至指令緩存器(instruction buffer)143。首先,處理單元110取得關連於儲存單元180的快閃識別碼(步驟S510)。於一個例子中,處理單元110可透過存取介面170詢問儲存單元180,接著,從儲存單元180接收快閃識別碼。於另一個例子中,快閃記憶體出廠時,儲存單元180的快閃識別碼儲存於非揮發性記憶體141。處理單元110可從非揮發性記憶體141讀取快閃識別碼。接著,處理單元110從非揮發性記憶體141讀取相應於 快閃識別碼的紀錄,例如紀錄40_1至40_n中之一者(步驟S520)。接著,處理單元110反覆執行一個迴圈,用以產生包含多個回合的重試讀取微碼(retry-read microcodes)(步驟S531至S537)。於迴圈中,詳細來說,處理單元110讀取記錄中的一個重試參數(步驟S531),產生使用此重試參數進行重試讀取的微碼(步驟S533),以及儲存微碼至指令緩存器143(步驟S535)。於步驟S533,產生的微碼如表1所示: 每一個微碼包含2個位元組的操作碼(Opcode)以及0~8個位元組的操作元(operand)。微碼”Set Param[i]”於執行時,設定用以驅動存取介面170讀取資料的寄存器,其中,操作元”Param[i]”包含於第i回合的步驟S531所讀取的重試參數。微碼”Read”於產生時,不包含任何操作元,而是將來於執行時由處理單元110提供資料讀取的通道編號及實體位址。微碼”Read”執行時透過存取介面170依據通道編號及實體位址從儲存單元180讀取資料並將結果儲存至資料緩存器(data buffer)147,讀取結果包含錯誤檢查修正碼(ECC,error check-and-correction code)。微碼”Check_ECC”於執行時,驅動錯誤檢查修正單元(ECC unit)130檢查資料緩存器147中的結果。錯誤檢查修正單元130 使用錯誤檢查修正碼檢查讀取結果中的資料是否有錯,如果是則嘗試修正錯。當讀取結果中的資料正確或錯誤可被修正時,回覆資料正確的訊息。否則,回覆資料錯誤的訊息。微碼”Cond_Jump addr”於執行時,依據回覆的訊息決定即將執行的下一個微碼,其中,處理單元110依據重試參數的數目計算操作元”addr”。若訊息顯示資料正確,則提取位址”addr”的微碼;若訊息顯示資料錯誤,則提取下一個位址的微碼。
於迴圈的最後一個步驟,判斷是否讀取完所有的重試參數(步驟S537)。若否(步驟S537中”否”的路徑),繼續下一個回合的重試參數讀取(步驟S531)。若是(步驟S537中”是”的路徑),結束迴圈並儲存重試讀取作業結束微碼至指令緩存器143(步驟S540)。於步驟S540,產生的微碼如表2所示: 微碼”Restore”於執行時,將驅動存取介面170讀取資料的寄存器設定回預設值,並且通知處理單元110重試讀取作業結束,用以將控制權交還給處理單元110。
最終儲存於指令緩存器143的微碼如表3所示: 指令緩存器143中儲存m組重試讀取的微碼”Set Param[i]”、”Read”、”Check_ECC”及”Cond_Jump addr”,並且在最後一組(亦即是第m組)重試讀取的微碼之後加上微碼”Restore”,其中微碼”Restore”存放於位址”addr”。
系統開機成功後,當透過存取介面150從主裝置160接收到重試讀取命令時,處理單元110從非揮發性記憶體141讀取並執行特殊讀取命令,此命令包含指令緩存器143中第一個微碼的位址,以及儲存單元180中的通道編號及實體位址。當特殊讀取命令執行時,處理單元110將指令緩存器143中第一個微碼的位址,以及儲存單元180的通道編號及實體位址傳送給狀態機(state machine)120,並驅動狀態機120開始作業。狀態機120特別設計來執行指令緩存器143中的微碼,用以完成重試讀取作業。狀態機120於運算時耗費較處理單元110為少的資源。此外,相較於以上所述使用處理單元110的實施方 式,狀態機120只是循序從指令緩存器143提取指令執行,並不需要在非揮發性記憶體141及先進先出緩存器145之間做指令搬移。第6圖係依據本發明實施例的重試讀取方法流程圖。此方法由狀態機120載入並執行指令緩存器143中的微碼時實施。狀態機120反覆執行一個迴圈(步驟S610至S650),直到重試讀取成功為止(步驟S650中”是”的路徑)。於每一個回合中,狀態機120依據重試參數設定用以驅動存取介面170讀取資料的寄存器(步驟S610),透過存取介面170依據通道編號及實體位址從儲存單元180讀取資料並將結果儲存至資料緩存器147(步驟S630),以及驅動錯誤檢查修正單元130來判斷重試讀取是否成功(步驟S650)。如果是(步驟S650中”是”的路徑),結束迴圈;否則(步驟S650中”否”的路徑),進行下一回合的重試參數設定(步驟S610)。迴圈結束後,狀態機120將驅動存取介面170讀取資料的寄存器設定回預設值,並且通知處理單元110重試讀取作業結束(步驟S670)。
雖然第1至3圖中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第5至6圖的處理步驟採用特定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權 利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。

Claims (18)

  1. 一種重試讀取方法,由一處理單元執行,包含:於系統開機時,產生一重試讀取作業的微碼及儲存上述重試讀取作業的微碼至一指令緩存器;以及於系統開機成功後,透過一第一介面從一主裝置接收到一重試讀取命令;以及驅動一狀態機,用以執行上述指令緩存器中的上述重試讀取作業的微碼。
  2. 如申請專利範圍第1項所述的重試讀取方法,其中,上述重試讀取作業的微碼包含多個回合的重試讀取微碼,以及一重試讀取作業結束微碼。
  3. 如申請專利範圍第2項所述的重試讀取方法,於系統開機時,產生一重試讀取作業的微碼及儲存上述重試讀取作業的微碼至一指令緩存器的步驟中,更包含:取得關連於一儲存單元的一快閃識別碼;從一非揮發性記憶體讀取多筆紀錄中相應於上述快閃識別碼的一者,其中上述紀錄包含多個重試參數;依據上述重試參數產生上述重試讀取微碼以及儲存上述重試讀取微碼至上述指令緩存器;以及儲存上述重試讀取作業結束微碼至上述指令緩存器。
  4. 如申請專利範圍第3項所述的重試讀取方法,其中,上述紀錄關連於不同類型的儲存單元,以及,於上述取得關連於一儲存單元的一快閃識別碼的步驟中,更包含:詢問上述儲存單元來取得上述快閃識別碼。
  5. 如申請專利範圍第3項所述的重試讀取方法,其中,上述紀 錄關連於不同類型的儲存單元,以及,於上述取得關連於一儲存單元的一快閃識別碼的步驟中,更包含:從上述非揮發性記憶體讀取上述快閃識別碼。
  6. 如申請專利範圍第3項所述的重試讀取方法,其中,每一上述回合的上述重試讀取微碼包含一第一微碼、一第二微碼、一第三微碼以及一第四微碼,上述第一微碼包含上述重試參數中之一者,於執行時依據上述重試參數設定用以驅動一第二存取介面讀取資料的一寄存器,上述第二微碼於執行時透過上述存取介面讀取資料並將一結果儲存至一資料緩存器,上述第三微碼於執行時驅動一錯誤檢查修正單元檢查上述結果,以及上述第四微碼於執行時依據上述錯誤檢查修正單元的一回覆訊息決定是否接著提取並執行上述重試讀取作業結束微碼。
  7. 如申請專利範圍第6項所述的重試讀取方法,其中,上述第四微碼包含上述重試讀取作業結束微碼的一位址。
  8. 如申請專利範圍第7項所述的重試讀取方法,其中,上述第四微碼於執行且上述回覆訊息指出資料正確時,接著依據上述位址提取上述重試讀取作業結束微碼。
  9. 如申請專利範圍第8項所述的重試讀取方法,其中,上述重試讀取作業結束微碼於執行時,將上述寄存器設定回預設值,並且通知上述處理單元重試讀取作業結束,用以將控制權交還給上述處理單元。
  10. 一種重試讀取裝置,包含:一指令緩存器; 一狀態機;以及一處理單元,耦接上述指令緩存器及上述狀態機,於系統開機時,產生一重試讀取作業的微碼及儲存上述重試讀取作業的微碼至上述指令緩存器,以及於系統開機後,透過一第一介面從一主裝置接收到一重試讀取命令;以及驅動上述狀態機,用以執行上述指令緩存器中的上述重試讀取作業的微碼。
  11. 如申請專利範圍第10項所述的重試讀取裝置,其中,上述重試讀取作業的微碼包含多個回合的重試讀取微碼,以及一重試讀取作業結束微碼。
  12. 如申請專利範圍第11項所述的重試讀取裝置,更包含:一非揮發性記憶體;其中,上述處理單元取得關連於一儲存單元的一快閃識別碼;從上述非揮發性記憶體讀取多筆紀錄中相應於上述快閃識別碼的一者,其中上述紀錄包含多個重試參數;依據上述重試參數產生上述重試讀取微碼以及儲存上述重試讀取微碼至上述指令緩存器;以及儲存上述重試讀取作業結束微碼至上述指令緩存器。
  13. 如申請專利範圍第12項所述的重試讀取裝置,其中,上述紀錄關連於不同類型的儲存單元,以及,上述處理單元詢問上述儲存單元來取得上述快閃識別碼。
  14. 如申請專利範圍第13項所述的重試讀取裝置,其中,上述紀錄關連於不同類型的儲存單元,以及,上述處理單元從上述非揮發性記憶體讀取上述快閃識別碼。
  15. 如申請專利範圍第14項所述的重試讀取裝置,其中,每一上述回合的上述重試讀取微碼包含一第一微碼、一第二微碼、一第三微碼以及一第四微碼,上述第一微碼包含上述重試參數中之一者,於執行時依據上述重試參數設定用以驅動一第二存取介面讀取資料的一寄存器,上述第二微碼於執行時透過上述存取介面讀取資料並將一結果儲存至一資料緩存器,上述第三微碼於執行時驅動一錯誤檢查修正單元檢查上述結果,以及上述第四微碼於執行時依據上述錯誤檢查修正單元的一回覆訊息決定是否接著提取並執行上述重試讀取作業結束微碼。
  16. 如申請專利範圍第15項所述的重試讀取裝置,其中,上述第四微碼包含上述重試讀取作業結束微碼的一位址。
  17. 如申請專利範圍第16項所述的重試讀取裝置,其中,上述第四微碼於執行且上述回覆訊息指出資料正確時,接著依據上述位址提取上述重試讀取作業結束微碼。
  18. 如申請專利範圍第17項所述的重試讀取裝置,其中,上述重試讀取作業結束微碼於執行時,將上述寄存器設定回預設值,並且通知上述處理單元重試讀取作業結束,用以將控制權交還給上述處理單元。
TW105134400A 2016-09-05 2016-10-25 重試讀取方法以及使用該方法的裝置 TWI648742B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??201610801448.2 2016-09-05
CN201610801448.2A CN107797821B (zh) 2016-09-05 2016-09-05 重试读取方法以及使用该方法的装置

Publications (2)

Publication Number Publication Date
TW201812782A true TW201812782A (zh) 2018-04-01
TWI648742B TWI648742B (zh) 2019-01-21

Family

ID=61280916

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105134400A TWI648742B (zh) 2016-09-05 2016-10-25 重試讀取方法以及使用該方法的裝置

Country Status (3)

Country Link
US (1) US10199108B2 (zh)
CN (1) CN107797821B (zh)
TW (1) TWI648742B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108519920B (zh) * 2018-03-14 2020-12-01 口碑(上海)信息技术有限公司 一种调度重试方法及装置
KR102549584B1 (ko) * 2018-03-27 2023-06-30 삼성전자주식회사 메모리 모듈을 포함하는 메모리 시스템, 메모리 모듈, 그리고 메모리 모듈의 동작 방법
CN109062503B (zh) * 2018-07-10 2021-08-17 深圳忆联信息系统有限公司 提升ssd断电后读重试效率的方法、装置及计算机设备
CN111104044B (zh) * 2018-10-25 2024-04-30 上海宝存信息科技有限公司 数据储存装置及其适应性数据读取方法
TWI690928B (zh) * 2019-01-10 2020-04-11 慧榮科技股份有限公司 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置
CN115686164A (zh) * 2021-07-26 2023-02-03 瑞昱半导体股份有限公司 供电端装置、供电系统以及非暂态电脑可读取媒体
TWI807919B (zh) * 2022-07-14 2023-07-01 群聯電子股份有限公司 資料重讀方法、記憶體儲存裝置及記憶體控制電路單元

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974544A (en) * 1991-12-17 1999-10-26 Dell Usa, L.P. Method and controller for defect tracking in a redundant array
US5483641A (en) * 1991-12-17 1996-01-09 Dell Usa, L.P. System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities
US6434087B1 (en) * 1995-01-25 2002-08-13 Discovision Associates Optical disc system and method for controlling bias coil and light source to process information on a storage medium
US5721816A (en) * 1996-07-29 1998-02-24 Kusbel; Paul F. Adaptive recovery of read and write errors in a disc drive
JPH10134528A (ja) * 1996-10-25 1998-05-22 Internatl Business Mach Corp <Ibm> 記録装置およびエラー回復方法
US7111202B2 (en) 2002-06-28 2006-09-19 Hewlett-Packard Development Company, L.P. Autonomous boot failure detection and recovery
KR100524989B1 (ko) * 2003-10-04 2005-10-31 삼성전자주식회사 데이터 저장 시스템에서의 리트라이 개선 방법 및 이를이용한 디스크 드라이브
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US20070089032A1 (en) * 2005-09-30 2007-04-19 Intel Corporation Memory system anti-aliasing scheme
KR20130034522A (ko) * 2011-09-28 2013-04-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 리드 방법, 및 이를 수행하는 장치
US8645811B2 (en) * 2011-10-27 2014-02-04 Dell Products L.P. System and method for selective error checking
CN103164361B (zh) * 2011-12-08 2016-01-13 炬芯(珠海)科技有限公司 与存储器传输数据的装置及其传输数据的方法
US9665521B2 (en) * 2012-05-18 2017-05-30 Dell Products, Lp System and method for providing a processing node with input/output functionality by an I/O complex switch
US9436474B2 (en) * 2012-07-27 2016-09-06 Microsoft Technology Licensing, Llc Lock free streaming of executable code data
CN102902644B (zh) * 2012-09-28 2016-02-17 忆正科技(武汉)有限公司 一种闪存控制器以及闪存控制方法
TWI489469B (zh) 2013-03-26 2015-06-21 Phison Electronics Corp 資料讀取方法、控制電路、記憶體模組與記憶體儲存裝置
JPWO2015037159A1 (ja) * 2013-09-13 2017-03-02 株式会社東芝 半導体記憶装置及びメモリシステム
JP2015056198A (ja) 2013-09-13 2015-03-23 株式会社東芝 メモリチップ、記憶装置および読み出し方法
TWI515734B (zh) 2014-03-13 2016-01-01 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置
US9608670B2 (en) * 2014-07-14 2017-03-28 International Business Machines Corporation Reliable data reading with data set screening by error injection
US9569120B2 (en) 2014-08-04 2017-02-14 Nvmdurance Limited Adaptive flash tuning
TWI562158B (en) * 2014-10-13 2016-12-11 Silicon Motion Inc Non-volatile memory device and controller
CN105389134B (zh) * 2015-12-11 2019-01-04 华中科技大学 一种闪存接口控制方法及装置
TWI615852B (zh) * 2017-01-19 2018-02-21 群聯電子股份有限公司 記憶體重讀方法、記憶體儲存裝置及記憶體控制電路單元

Also Published As

Publication number Publication date
TWI648742B (zh) 2019-01-21
CN107797821B (zh) 2021-10-08
US20180068734A1 (en) 2018-03-08
US10199108B2 (en) 2019-02-05
CN107797821A (zh) 2018-03-13

Similar Documents

Publication Publication Date Title
TWI648742B (zh) 重試讀取方法以及使用該方法的裝置
US11151027B2 (en) Methods and apparatuses for requesting ready status information from a memory
US9971647B2 (en) Apparatus and method for programming ECC-enabled NAND flash memory
US10108372B2 (en) Methods and apparatuses for executing a plurality of queued tasks in a memory
US8812784B2 (en) Command executing method, memory controller and memory storage apparatus
US9110786B2 (en) Read operation prior to retrieval of scatter gather list
KR102111741B1 (ko) 임베디드 멀티미디어 카드 및 이의 동작 방법
US10891243B2 (en) Memory bus MR register programming process
CN107665722B (zh) 存储装置、包括存储装置的系统以及操作存储装置的方法
US8869004B2 (en) Memory storage device, memory controller thereof, and data transmission method thereof
US10445252B2 (en) Storage device and operating method performed by the same
KR20180104839A (ko) 데이터 전송 트레이닝 방법 및 이를 수행하는 데이터 저장 장치
US20150347151A1 (en) System and method for booting from a non-volatile memory
TWI592866B (zh) 固態硬碟系統的原子寫入方法以及使用該方法的裝置
TWI685744B (zh) 指令處理方法及使用所述方法的儲存控制器
CN113424165A (zh) 在存储器子系统处的编程操作的中断
TWI582599B (zh) 資料傳輸方法、記憶體控制器、資料傳輸系統
US9710193B2 (en) Method of detecting memory modules, memory control circuit unit and storage apparatus
US20240211278A1 (en) Storage device and operating method thereof
TWI705330B (zh) 資料儲存裝置以及參數改寫方法
US20240176542A1 (en) Interworking method external device and storage device
US20230043925A1 (en) Storage device and operating method thereof
TW202139001A (zh) 閃存裝置的開卡電腦程式產品及方法以及裝置
TW201832067A (zh) 資料讀取方法及其記憶體儲存裝置