TWI514403B - 用於執行一複製回復操作之方法及控制器 - Google Patents

用於執行一複製回復操作之方法及控制器 Download PDF

Info

Publication number
TWI514403B
TWI514403B TW099143836A TW99143836A TWI514403B TW I514403 B TWI514403 B TW I514403B TW 099143836 A TW099143836 A TW 099143836A TW 99143836 A TW99143836 A TW 99143836A TW I514403 B TWI514403 B TW I514403B
Authority
TW
Taiwan
Prior art keywords
controller
flash memory
data
host
memory device
Prior art date
Application number
TW099143836A
Other languages
English (en)
Other versions
TW201135746A (en
Inventor
Robert D Selinger
Gary Lin
Paul Lassa
Chaoyang Wang
Original Assignee
Sandisk Technologies Inc
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 Sandisk Technologies Inc filed Critical Sandisk Technologies Inc
Publication of TW201135746A publication Critical patent/TW201135746A/zh
Application granted granted Critical
Publication of TWI514403B publication Critical patent/TWI514403B/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
    • 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
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

用於執行一複製回復操作之方法及控制器
NAND快閃記憶體裝置通常用於由諸如一個人電腦之一主機儲存資料。舉例而言,一主機可與使用一NAND介面(諸如開放NAND快閃記憶體介面(ONFI))之一NAND快閃記憶體裝置通信。一主機可發送至一NAND快閃記憶體裝置之一命令之一個實例係一「複製回復(copy-back)」命令。在操作中,主機將一源位址及一複製回復讀取命令發送至NAND快閃記憶體裝置,NAND快閃記憶體裝置回應於此而在其非揮發性記憶體中讀取來自源位址之資料,且將該資料寫入在NAND快閃記憶體裝置內部之一暫存器中。接下來,主機將一目的地位址及一複製回復程式化命令發送至NAND快閃記憶體裝置,NAND快閃記憶體裝置回應於此將資料自暫存器中讀取出且寫入至其非揮發性記憶體中之目的地位址中。由於該資料未被發送回至主機,因此一複製回復操作避免佔據主機與NAND快閃記憶體裝置之間的通信匯流排,且避免要求主機分配處理功率及額外負擔以執行標準讀取及用以移動資料之程式化操作。然而,儘管亦移動與資料一起儲存之任何錯誤校正碼(ECC)位元,但NAND快閃記憶體裝置不對該資料執行ECC檢查及錯誤校正。因此,將傳播存在於資料中之任何錯誤。
本發明由申請專利範圍界定,且不應將本章節中之任何內容視為對彼等申請專利範圍之一限定。
藉由引用,下文所述之實施例提供一種用於執行一複製回復操作之方法及控制器。在一個實施例中,與一主機及至少一個快閃記憶體裝置通信之一控制器自該主機接收一源位址及一複製回復讀取命令。該控制器將該源位址及複製回復讀取命令發送至該至少一個快閃記憶體裝置,該至少一個快閃記憶體裝置回應於此而自源位址讀取資料且將該資料寫入該至少一個快閃記憶體裝置中之一暫存器中。該控制器自該至少一個快閃記憶體裝置接收該資料及與該資料相關聯之錯誤校正碼,且自主機接收一目的地位址及一複製回復程式化命令。控制器判定該錯誤校正碼是否指示在該資料中存在一錯誤。在該錯誤校正碼不指示在資料中存在一錯誤之情況下,控制器將目的地位址及複製回復程式化命令發送至該至少一個快閃記憶體裝置,該至少一個快閃記憶體裝置回應於此而將該資料自該暫存器讀取出且寫入至該至少一個快閃記憶體裝置中之目的地位址。在該錯誤校正碼指示在該資料中存在一錯誤之情況下,該控制器校正該資料且將目的地位址、經校正資料及一程式化命令發送至該至少一個快閃記憶體裝置。額外實施例係關於在該複製回復操作期間修改資料。
揭示其它實施例,且可獨立地使用所述實施例中之每一者或將其結合在一起來使用。現在將參照附圖描述所述實施例。
導論
下述實施例係關於快閃記憶體控制器及用於隨其等使用之方法。在一個實施例中,提供用於執行一複製回復命令之一控制器及方法。在轉至此及其他實施例之前,提供實例性控制器架構之一概述及NAND介面及NAND介面協定之一論述。
實例性控制器架構
現轉至圖示,圖1係其中一控制器100透過一第一介面125與一主機120(具有一主機控制器121)通信且透過一或多個第二介面135與一或多個快閃記憶體裝置130通信之一實施例之一系統。(第二介面135之數目可匹配快閃記憶體裝置130之數目,或第二介面135之數目可大於或小於快閃記憶體裝置130之數目(例如,一單個第二介面135可支援多個快閃記憶體裝置))。如本文中所使用,措詞「與...通信」意指直接與...通信或透過一或多個組件(其等可能或可能不在本文中顯示或闡述)間接地與...通信。
一「主機」係能夠透過控制器100直接地或透過本文中命名或未命名之一或多個組件間接地存取該一或多個快閃記憶體裝置130之任一實體。一主機可採取任一適合形式,諸如但不限於一個人電腦、一行動電話、一遊戲裝置、一個人數位助理(PDA)、一電子郵件/文字訊息收發裝置、一數位相機、一數位媒體(例如MP3)播放器、一GPS導航裝置、一個人導航系統(PND)、一行動網際網路裝置(MID)及一TV系統。相依於應用,主機120可採取一硬體裝置、一軟體應用程式化或硬體與軟體之一組合之形式。
「快閃記憶體裝置」係指含有複數個快閃記憶體胞及用於在該等快閃記憶體胞內儲存資料之任一必要控制電路之(一或多個)裝置。在一個實施例中,快閃記憶體胞係NAND記憶體胞,但亦可使用其他記憶體技術,諸如包含一次可程式化記憶體元件及/或可重新寫入記憶體元件之被動元件陣列。(應注意,在此等實施例中,一非NAND型快閃記憶體裝置仍可使用一NAND介面及/或NAND命令及協定)。一被動元件陣列之一個實例係三維記憶體陣列。如本文中使用,三維記憶體陣列係包含在一單個矽基板上彼此上下垂直堆疊之複數個記憶體胞層之一記憶體陣列。以此方式,三維記憶體陣列係一單片積體電路結構,而非複數個彼此緊鄰地封裝或晶粒接合之積體電路裝置。雖然三維記憶體陣列係較佳,但該記憶體陣列可替代地採取二維(平面)陣列之形式。以下專利文檔(其以引用方式併入本文中)闡述三維記憶體陣列之適合組態,其中三維記憶體陣列係組態為複數個層級,其中字線及/或位元線共用於各層級之間:第6,034,882號、第6,185,122號、第6,420,215號、第6,631,085號及第7,081,377號美國專利。而且,快閃記憶體裝置130可係一單個記憶體晶粒或多個記憶體晶粒。因此,在申請專利範圍中使用之措詞「一快閃記憶體裝置」可係指僅一個快閃記憶體裝置或多於一個快閃記憶體裝置。
如圖1中顯示,控制器100亦包括用於控制控制器100之操作且基於自主機120接收之一命令(例如,讀取、寫入、抹除等)及一位址來執行一記憶體操作之一控制模組140。如本文使用,一「模組」可包含硬體、軟體、韌體或其任一組合。舉例而言,一「模組」可採取之形式之實例包含但不限於一微處理器或處理器及儲存可由(微)處理器執行之電腦可讀程式化碼(例如,軟體或韌體)之一電腦可讀媒體、邏輯閘、開關、一專用積體電路(ASIC)、一可程式化邏輯控制器、及一嵌入式微控制器中之一或多者。(下列章節提供一「模組」可採取之各種形式之實例)。如圖1中顯示,控制器100可包含一或多個額外模組150,其等用於提供包含但不限於資料擾碼、行置換、處置寫入中止及/或程式化故障(經由安全區)、讀取清理(read scrubbing)、耗損平均、壞區塊及/或備用區塊管理、錯誤校正碼(ECC)功能、錯誤偵測碼(EDC)功能、狀態功能、加密功能、錯誤恢復及位址映射(例如,邏輯對實體區塊之映射)。以下章節提供關於此等功能之更多細節,以及其他功能之額外實例。
儘管控制器100及快閃記憶體裝置130在圖1中係顯示為兩個分開之方框,但應瞭解,控制器100及快閃記憶體裝置130可以任一適合方式配置。圖2A、圖2B及圖2C係圖解說明控制器及快閃記憶體裝置之不同配置之方塊圖。在圖2A中,控制器200及快閃記憶體裝置230係封裝於不同封裝260、270中。於此實施例中,一晶粒間介面可介接於控制器200與快閃記憶體裝置230之間。如本文使用,一「晶粒間介面」(例如,一晶粒間NAND介面)操作以介接於駐存於相異晶粒上之電子電路之兩個相異單元之間(例如,舉例而言,以使用一或多個專用協定提供用於電子電路之相異單元彼此通信之必要實體及邏輯基礎建設)。因此,該晶粒間介面包含用於介接於駐存於單獨晶粒上之電子電路之兩個相異單元之間的必要實體元件(例如,墊、輸出端、輸入驅動器等等)。
在圖2B中,控制器200及快閃記憶體裝置230二者駐存於一共同多晶片封裝280中。於此實施例中,一晶粒間介面可介接於建造於兩個相異晶粒上之控制器200與快閃記憶體裝置230之間,該兩個相異晶粒係封裝於共同多晶片封裝280中。在圖2C中,控制器200及快閃記憶體裝置230係整合於一相同晶粒290上。作為另一替代,控制器200及/或快閃記憶體裝置230可建造於兩個相異晶粒上,其中此等晶粒中之一者或二者完全不具有封裝。舉例而言,於諸多應用程式化中,由於節省空間之一需要,將記憶體晶粒安裝於完全不具有封裝之電路板上。
應注意,於此等配置中之每一者中,控制器200在實體上位於遠離主機處。此允許將控制器200及快閃記憶體裝置230視為一單獨電路單元,該單獨電路單元可用於各種各樣的主機中。
如參照圖1所提及,控制器100使用一第一介面125與主機120通信,且使用第二介面135與快閃記憶體裝置130通信。大體而言,第一介面125及第二介面135可採取任一適合形式。然而,於一當前較佳之實施例(其將在下文中與圖3結合地闡述)中,第一介面125及第二介面135皆係使用NAND介面協定之NAND介面。在轉至圖3之前,以下章節提供NAND介面及NAND介面協定之一大體論述。
NAND介面及NAND介面協定
一NAND介面協定用於使用(舉例而言)資料線及諸如ALE(位址鎖存器啟用)、CLE(命令鎖存器啟用)及WE#(寫入啟用)之控制信號來協調在一NAND快閃記憶體裝置與一主機之間的命令及資料傳送。即使迄今為止術語「NAND介面協定」尚未在形式上由一標準體標準化,但NAND快閃記憶體裝置之製造商皆允許極其類似之協定來支援NAND快閃記憶體功能之基本子集。此使得在其電子產品中使用NAND裝置之顧客可使用來自任一製造商之NAND裝置而不必使其硬體或軟體適應與一專用供應商之裝置一起操作。應注意,至少在某種程度上,即使是除此基本功能子集外亦提供額外功能之NAND供應商亦確保提供基本功能以提供與其他供應商所使用之協定之相容性。
在一既定裝置(例如,一控制器、一快閃記憶體裝置、一主機等等)包含用於支援NAND介面協定(例如,用於與使用一NAND介面協定之另一裝置介接)所必需之元件(例如,硬體、軟體、韌體或其任一組合)之情況下,該既定裝置據稱包括、包含或具有一「NAND介面」。(如本文使用,術語「介面」可係指一單個介面或多個介面。因此,申請專利範圍中之術語「介面」可係指僅一個介面或多於一個介面)。於此應用中,術語「NAND介面協定」(或簡稱「NAND介面」)係指介於一發起裝置與一回應裝置之間的一介接協定,該介接協定大體而言遵循在一主機與一NAND快閃記憶體裝置之間的用於基本讀取、寫入及抹除操作之協定,即使其不完全與所有時序參數相容、不完全相對於由NAND裝置支援之其他命令而相容、或含有NAND裝置不支援之額外命令。一NAND介面協定之一個適合實例係一介面協定,其使用在功能上等效於在與一Toshiba TC58NVG1S3B NAND裝置(或一Toshiba TC58NVG2D4B NAND裝置)介接以供用於讀取(操作碼00H)、寫入(操作碼80H)、及抹除(操作碼60H)時使用之位元組序列之所傳送位元組之序列,且亦使用在功能上等效於上述NAND裝置之CLE、ALE、CE、WE及RE信號之控制信號。
應注意,一NAND界面協定係不對稱的,乃因主機(而非快閃記憶體裝置)經由一NAND介面起始互動。此外,一既定裝置(例如,一控制器)之一介面(例如,一NAND介面或與另一協定相關聯之一介面)可係一「主機側介面」(例如,該既定裝置經調適以使用該主機側介面與一主機互動),或該既定裝置之介面可係一「快閃記憶體裝置側介面」(例如,該既定裝置經調適以使用該快閃記憶體裝置側介面與一快閃記憶體裝置互動)。術語「快閃記憶體裝置側介面」、「快閃記憶體裝置側介面」及「快閃記憶體側介面」在本文中互換地使用。
此等術語(亦即,「主機側介面」及「快閃記憶體裝置側介面」)不應與術語「主機型介面」及「快閃記憶體型介面」(其係本文中用於在一NAND介面協定之兩側之間區分之術語)混淆,乃因此協定並非對稱的。此外,由於主機起始該互動,應注意,據稱在一既定裝置包含用於實施主機側之NAND介面協定(亦即,用於提供一NAND主機及起始該NAND協定互動)之必要硬體及/或軟體之情況下該裝置具有一「主機型介面」。類似地,由於該快閃記憶體裝置不起始該互動,應注意,據稱在一既定裝置包含用於實施快閃記憶體側之NAND協定(亦即,用於提供一NAND快閃記憶體裝置)之必要硬體及/或軟體之情況下該裝置具有一「快閃記憶體型介面」。
通常,「主機型介面」(亦即,充當主機角色之彼等介面)係「快閃記憶體裝置側介面」(亦即,其與快閃記憶體裝置或具有仿真一快閃記憶體裝置之硬體互動),而「快閃記憶體裝置型介面」(亦即,充當快閃記憶體裝置角色之彼等介面)通常係「主機側介面」(亦即,其與主機或具有仿真一主機之硬體互動)。
由於NAND裝置之複雜度,一「NAND控制器」可用於控制一電子系統中之一NAND裝置之使用。可能由不具有介入NAND控制器之一主機直接操作及使用一NAND裝置,此構架具有諸多劣勢。首先,主機不得不個別地操縱NAND裝置之控制信號(例如,CLE或ALE)中之每一者,此對於主機而言係繁複且耗時的。第二,對錯誤校正碼(ECC)之支援為主機提供一負荷。至少出於此等原因,「無控制器」架構通常相對較慢且低效。
於某些習用控制器架構中,一NAND控制器與使用一NAND介面之一快閃記憶體裝置互動,且與使用一標準非NAND介面(諸如USB或SATA)之一主機互動。亦即,於此等習用控制器架構中,NAND控制器不輸出一NAND介面至主機。事實上,由於不具有內建NAND支援且出於彼目的需要一外部控制器之一主機處理器通常不具有一NAND介面且不能直接連接至輸出一NAND介面之一裝置且因此不利用具有一主機側NAND介面之一控制器,因此此期望係合理的。另一方面,具有內建NAND支援之一主機處理器通常亦包含一內建NAND控制器且可直接連接至一NAND裝置,且因此不需要一外部NAND控制器。
美國專利第7,631,245號「NAND Flash Memory Controller Exporting a NAND Interface」(其以引用方式併入本文中)揭示一種新型NAND控制器,其特徵在於其輸出至主機側之介面係一NAND介面之事實。以此方式,NAND控制器將與一標準NAND快閃記憶體裝置所輸出之介面具有相同類型之介面輸出至主機。該控制器在快閃記憶體裝置側上亦較佳地具有一NAND介面,其中控制器充當朝向NAND快閃記憶體裝置之一主機之角色,且充當朝向主機之一NAND裝置之角色。
輸出一NAND介面之實例性NAND快閃記憶體控制器
返回至圖示,圖3係一實施例之一實例性控制器300之一方塊圖。如圖3中顯示,控制器300包含用於控制控制器300之操作之一控制模組340及視情況包含用於提供其他功能之一或多個額外模組350。其他功能之實例包含但不限於資料擾碼、行置換、處置寫入中止及/或程式化故障(經由安全區)、讀取清理、耗損平均、壞區塊及/或備用區塊管理、錯誤校正碼(ECC)功能、錯誤偵測碼(EDC)功能、狀態功能、加密功能、錯誤恢復及位址映射(例如,邏輯對實體區塊之映射)。以下圖表闡述此等功能中之某些功能,且此文件中之後幾個章節闡述此等功能中之其他功能。
「資料擾碼」或「擾碼」係一輸入位元序列至一輸出位元序列之一可逆轉變,因此輸出位元序列中之每一位元係該輸入位元序列中及一輔助位元序列中之數個位元之一函數。儲存於一快閃記憶體裝置中之資料可經擾碼以藉由產生更隨機之資料型樣來減少資料型樣相依之敏感度、干擾效應、或錯誤。關於資料擾碼之更多資訊可見於下述專利文件中:美國專利申請案第11/808,906號、第12/209,697號、第12/251,820號、第12/165,141號及第11/876,789號以及PCT申請案第PCT/US08/88625號。
「行置換」係指整體地映射或置換壞行、行之部分或甚至個別胞之各種實施方案。適合類型之行置換技術可見於美國專利第7,379,330號及第7,447,066號中。
在寫入至快閃記憶體裝置方面存在數個潛在問題,其中在邏輯上或實體上相鄰之資料可在其中嘗試寫入該資料之位置外側被破壞。一個實例係在對記憶體之一個區(例如,一胞、頁或區塊)之一寫入出現故障且某些周圍記憶體之內容可被破壞時。此係稱為一「程式化故障」或「程式化干擾」。稱為「寫入中止」之一類似效應係在過早地(舉例而言,在非期望地移除電力時)終止一寫入(或程式化)操作時。於兩種情形中,如美國專利第6,988,175號中闡述,存在可用於自一「風險區」主動複製資料至一「安全區」以處置寫入中止及程式化故障之演算法。
「讀取清理」或更大體而言「清理」係關於再新及校正儲存於一快閃記憶體裝置中之資料以補償干擾之技術。一清理操作需要讀取若干個區中可已接收而曝露出可能為干擾信號之資料及在此資料被判定為已被干擾之情況下執行某一校正動作。讀取清理進一步闡述於美國專利第7,012,835號、第7,224,607號及第7,477,547號中。
快閃記憶體裝置可被不均勻地寫入,而「損耗平均」係指嘗試使記憶體胞在其使用壽命內被寫入之次數均衡之技術。實例性損耗平均技術係闡述於美國專利第6,230,233號及第6,594,183號中。
大體而言,快閃記憶體裝置製造有過量(大於所界定之最小容量)之區塊。在出廠測試期間或在裝置使用期間,可發現某些區塊係「壞的」或「有缺陷的」,意指其等不能正確地儲存資料且需要被置換。類似地,可存在過量(大於所界定之最小容量)之「好」區塊,其等可用作「備份」直至另一區塊出現故障或變得有缺陷。記錄此等額外區塊分別稱為壞區塊管理及備用區塊管理。關於壞區塊及備用區塊管理之更多資訊可見於美國專利第7,171,536號中。
如上文提及,關於此等不同功能模組及其等如何用於實例性控制器架構中之額外資訊係提供於此文件中之下文中。
返回至該等圖示,亦如圖3中顯示,控制器300包含用於與一或多個NAND快閃記憶體裝置330介接之一或多個快閃記憶體裝置側NAND介面335(例如,1至8個記憶體晶粒)。此外,應注意,快閃記憶體裝置側NAND介面335亦係一主機型NAND介面(亦即,其經調適以經由NAND介面起始互動且將一主機提供給一NAND快閃記憶體裝置330)。控制器300亦包含一主機側NAND介面325,其用於介接至支援一NAND介面協定之一主機320(具有一主機控制器321)。此主機側NAND介面325亦係一快閃記憶體型NAND介面(例如,控制器300經調適以將一NAND快閃記憶體儲存裝置提供給主機320)。NAND介面之實例包含但不限於開放NAND快閃記憶體介面(ONFI)、雙態觸變模式(TM)及一高效能快閃記憶體介面,諸如在美國專利第7,366,029號中闡述之一個介面,該專利以引用方式併入本文中。控制器300可視情況包含一或多個額外之主機側介面,用於使用諸如SD、USB、SATA或MMC介面之非NAND介面將控制器300介接至主機。而且,介面325、335可使用相同或不同NAND介面協定。
應注意,控制器300及快閃記憶體裝置330可用於任一期望之系統環境中。舉例而言,在一個實施方案中,製造有一或多個控制器300/快閃記憶體裝置330單元之一產品係用於一固態驅動器(SSD)中。作為另一實例,控制器300可用於使用一南橋(Southbridge)控制器介接至快閃記憶體裝置之OEM設計中。
使用輸出一NAND介面至一主機之一NAND快閃記憶體控制器存在數個優勢。為充分理解此等優勢,首先考量當前控制器架構之現實。今日,存在兩種類型之NAND介面:一「原始」介面及一「經管理」介面。藉助一原始介面,基本記憶體曝露有諸如讀取、程式化及抹除之原生命令,且期望外部控制器提供諸如ECC、缺陷管理及快閃記憶體轉譯之記憶體管理功能。藉助一經管理介面,透過某些較高位準之介面,管理諸如磁區/頁/區塊或文檔之邏輯項,且控制器管理記憶體管理功能。
然而,可將「管理」NAND所需要之韌體集劃分為兩個類別。第一類別係主要管理主機介面、物件(及讀取/修改/寫入序列)及緩存之通用快閃記憶體軟體。此係稱為「主機管理」層。第二類別係快閃記憶體專用管理功能,其進行(舉例而言)ECC、資料擾碼、及專用錯誤恢復及錯誤防止技術(如主動讀取清理及複製下部頁區塊)以防止由於寫入中止、電力故障及寫入錯誤所致之資料損失。此係稱為「裝置管理」層。
第一類別之軟體相對恆定且可由包含OS供應商、晶片集及控制器供應商及嵌入式裝置供應商之各種公司提供。大體而言,假設存在可能想要在其設計中使用快閃記憶體之M個專用系統/OS/ASIC。第二個集係潛在地專屬於個別公司且甚至專用於某些記憶體設計及世代。大體而言,假設存在N個不同記憶體專用設計點。今日,此係用以快閃記憶體管理之一全有或全無(all-or-nothing)方法-購買原始NAND或經管理NAND。此亦意指一解決方案必須合併M個系統及主機管理環境中之一者與N個記憶體裝置管理環境中之一者。大體而言,此意指或(1)具有第二種知識之一快閃記憶體供應商必須為包含ASIC控制器及主機介面軟體之所有層提供一解決方案,且針對該M個不同主機機會進行M個不同設計,或(2)任一獨立ASIC及韌體公司幾乎沒有機會在不進行N個不同設計之前提下定製其對專用記憶體設計之解決方案,或(3)兩個公司不得不一起工作,潛在地曝露有價值之商務秘密及IP及/或針對每一記憶體設計實施不同解決方案。此亦可在M個不同主機解決方案不得不經修改以接受任一新記憶體設計之情況下產生一上市時間延遲。
藉由使用輸出一NAND介面至一主機之一NAND快閃記憶體控制器,提供一新邏輯介面,其使用現有實體NAND介面及命令(諸如舊型非同步、ONFI或TM)以在原始或實體NAND上方及邏輯或經管理NAND下方產生一新邏輯介面,產生在主機控制器中不需要ECC之「虛擬」原始NAND記憶體,及停用主機ECC(乃因無需來自主機之ECC以保護NAND記憶體)。舉例而言,此新邏輯介面亦可在此介面位準「下方」提供資料擾碼、清理、干擾、安全區處置、損耗平均、及壞區塊管理(以僅曝露好區塊)。
此不同邏輯介面就包含ONFI區塊抽象(BA)或Toshiba LBA之標準快閃記憶體介面或經管理NAND介面而言提供數個優勢。舉例而言,可隨記憶體類型及世代(例如,NAND對3D(或NOR)及5Xnm對4Xnm對3Xnm)而變化之記憶體專用功能之分離允許不同量之ECC、針對錯誤防止及校正方案(諸如處置干擾及安全區)之供應商唯一且記憶體唯一方案,且允許供應商唯一演算法在控制器及韌體內保持「秘密」。另外,在此邏輯介面位準處之技術(及供應商)之間存在更多共性,此使得上市時間更快。此外,此允許更接近於1:1命令操作,意指經改良及更可預測之效能對經管理之NAND或其他更高位準之介面。
存在與此控制器架構相關聯之額外優勢。舉例而言,其允許來自系統之主機及其他部分之記憶體技術之獨立改良、測試及改革。其亦可允許下一代記憶體之更簡單及更快發展,乃因用以支援彼等記憶體之改變係更局域化的。此外,其允許記憶體製造商保護用於管理原始快閃記憶體之秘密演算法。而且,頁管理可與文檔系統及/或其他邏輯映射整合在一起。因此,在與標準外部介面(電及命令集)組合時,此架構使得更容易設計出代溝更明顯的原始快閃記憶體。
使用此架構存在至少一個其他次級利益-控制器300在外部介面上僅提供一單個電負載,且驅動在MCP內部之原始快閃記憶體。此允許在不增加快閃記憶體通道之數目之前提下,潛在地系統容量越大,外部介面之速度越高(由於較少負載),且對原始快閃記憶體裝置之內部介面之速度越高(由於極緊密受控之內部設計(基板連接)係可能的)。
與此實施例之控制器相關聯之另一優勢係其可用於透過使用不同主機及記憶體匯流排來潛在地以不同速度提供一「分裂匯流排」架構(亦即,主機與控制器之間的匯流排可不同於控制器與快閃記憶體裝置之間的匯流排)。(如本文使用,一「匯流排」係具有相同介面之多個裝置(例如,晶片或晶粒)之一電連接。舉例而言,一點對點連接係兩個裝置之間的一匯流排,但多數介面標準支援使多個裝置連接至同一電匯流排)。此架構在可潛在地具有數以百計之快閃記憶體裝置之固態驅動器(SSD)中尤其係期望的。在習用SSD架構中,當前解決方案係封裝一多晶片封裝(MCP)中之N個正常快閃記憶體裝置,但此仍在一匯流排上產生N個負載,進而產生N倍的電容及電感。一匯流排上之負載越多,其操作越慢。舉例而言,一個當前架構可支援具有1至4個裝置之一80 MHz操作,但可僅支援具有8至16個裝置之一40 MHz操作。此與期望-在使用越多裝置之情況下速度越高-係相反的。此外,越多裝置意味著對主機與記憶體MCP之間的越多實體分離之需要。舉例而言,在使用16個封裝之情況下,其將在一任意拓撲(例如,一匯流排或星形(或任意短)拓撲)中在一相對大的實體距離(例如,數英吋)上擴展。此亦減少任一電介面之潛在效能。因此,舉例而言,為獲得300 MHz之傳送(忽略匯流排寬度),可使用四個快速匯流排或八個慢速匯流排。然而,快速匯流排可僅各自支援四個快閃記憶體裝置,或總計16個裝置,此不足以用於今日之多數SSD。在匯流排運行較快之情況下,可減少介面連接(插腳及類比介面)之數目,以及潛在地主機中之暫存器及邏輯件的量。
由於此實施例中之控制器300將主機與原始快閃記憶體裝置之間的互連分裂成一單獨主機側介面及一快閃記憶體側介面,且其中間有一緩衝器,因此主機匯流排具有較少負載且可運行兩倍至四倍地快。此外,由於記憶體匯流排係在MCP內部,因此其可由於短距離及所涉及之有限負載而具有較低功率、較高速度及較低電壓。此外,該兩個匯流排可以不同頻率及不同寬度運行(例如,一個側可使用一8位元匯流排,且另一側可使用一16位元匯流排)。
儘管某些架構可插入標準收發器以去耦合此等匯流排,但此實施例之控制器300可使用緩衝且可以不同速度運行此等介面。此允許控制器300亦匹配兩個不同速度之匯流排,舉例而言,以140 MB/秒運行之一快閃記憶體側介面匯流排及以132或166 MB/秒運行之一ONFI匯流排。一習用匯流排收發器涉及將不得不撿取該兩個匯流排中之較低者且於此實例中以132 MB/秒運行,而此實施例之控制器300可藉由以166 MB/秒運行ONFI匯流排來達成140 MB/秒且基本上具有閒置週期。因此,此實施例之控制器300以可能的較低成本及/或較低電力提供較高效能且提供不同產品(例如,不同速度及寬度之主機及記憶體匯流排,一典型系統中之主機上之較少負載(此達成至主機介面之記憶體匯流排頻寬之較快操作及聚合),及具有介面轉譯之主機及記憶體側上之不同介面)之間的介面靈活性。
如上文提及,一單個控制器亦可具有至快閃記憶體裝置之多個快閃記憶體側介面335,此亦使得實現原始快閃記憶體裝置之間的進一步並行性及至控制器內之傳送,此允許快閃記憶體側介面比主機側介面325運行得更慢(以及更快)。一單個控制器亦可具有可連接至不同主機控制器介面之多個主機側介面,以允許存取快閃記憶體裝置之更大並行性,分享該控制器,或更好地匹配快閃記憶體側介面之速度(該快閃記憶體側介面將出於上文所闡述之原因而比主機側介面更快)。
輸入一NAND介面至一主機之另一優勢係關於一分佈式控制器架構之使用。今日,快閃記憶體裝置通常實施有一單個位準之控制器。在大型固態驅動器(SSD)中,可存在數以十計或甚至數以百計之快閃記憶體裝置。在高效能裝置中,可期望使在此等快閃記憶體裝置(其等可係功率受約束的)中之盡可能多的快閃記憶體裝置中之平行操作繼續。今日已存在600 MB/秒之介面規格,且此等仍在增加。為達到此效能位準需要極快速之控制器、記憶體及ECC模組。今日,高效能控制器構建有一個或少量數目個ECC模組及一或兩個微處理器以處置記憶體裝置管理。由於某些功能(諸如ECC)對記憶體裝置本身極為局域化,在此實施例之控制器300處,可利用裝置之一雙層網路。特定而言,主機320可管理主機介面及邏輯內容之高位準映射,且一或多個控制器300可管理一或多個原始NAND快閃記憶體裝置以提供記憶體裝置功能(例如,ECC)之局部管理,及由於控制器300與主機320之並行執行及在不同記憶體上並行處置不同操作之多個控制器300之並行執行所致之此等功能之執行的並行性。與SSD中之習用控制器(其在一個方位執行記憶體裝置管理功能)相比,藉由將此等功能分裂成兩層,此架構可以兩種方式利用並行效能(例如,在主機與從動裝置之間,及在多個從動裝置之間)。此使得在不必設計可處置較高總效能位準(例如,600 MB/秒)之一單個ECC模組或微處理器之前提下實現彼速率。
此架構之再一優勢係可發展原始記憶體之一較高位準之抽象,以便系統開發商無需瞭解記憶體之錯誤恢復或低位準細節,諸如ECC及資料擾碼,乃因控制器300可用於除處置諸如讀取、抹除及程式化干擾等記憶體專用功能及安全區外亦可用於執行彼等功能。此支援位準在本文中係稱為「經校正」快閃記憶體,其在邏輯上係介於原始快閃記憶體與經管理NAND之間。另一方面,此架構就一邏輯位準處之頁或區塊管理而言並非完全經管理記憶體,且可要求主機具備頁及區塊之邏輯至實體映射。然而,控制器300仍可將某些快閃記憶體管理約束提供給主機及其韌體,諸如可僅程式化整頁,頁必須在一區塊中依序寫入,且頁在必須抹除整個區塊之前可僅被寫入一次。亦可由控制器300執行損耗平均以確保大致均衡地使用實體區塊之實體區塊;然而,主機320可負責提供此功能。而且,控制器300較佳地為主機320提供至NAND之頁及區塊中之整頁讀取及寫入操作。邏輯頁大小及區塊大小之特性將可能與下伏NAND相同(除非支援部分頁操作)。原始NAND中之每一實體頁中之備用區之主體將由控制器300用於ECC及其元資料。控制器300可具備使用系統可用於元資料管理之少量備用位元組。
與經由一NAND介面偵測一傳輸錯誤相關之實施例
參照圖3,傳輸錯誤可發生於在經由至主機側NAND介面325之一NAND介面匯流排將資料自主機320發送至控制器300時。由於ECC係在控制器300內產生及檢查,因此不存在保護經由主機側NAND介面325傳輸之資料的ECC。現將與圖4結合地論述此問題及一所提議解決方案。
圖4係用於將資料寫入至一或多個快閃記憶體裝置430及自該一或多個快閃記憶體裝置430讀取資料之一控制器400之一方塊圖。如圖4中顯示,此實施例中之控制器400包括經組態以使用一NAND介面協定在控制器400與一主機420(具有一主機控制器421)之間傳送資料之一第一NAND介面425,以及經組態以使用一NAND介面協定在控制器400與一或多個快閃記憶體裝置430之間傳送資料之第二NAND介面435。如上文論述,由每一介面425、435使用之NAND介面協定可係相同協定或可係不同協定。亦如上文論述,控制器400及快閃記憶體裝置430可封裝於不同封裝中,可皆駐存於一共同多晶片封裝中,或可整合於同一晶粒上。而且,在一個實施例中,主機420執行邏輯至實體位址映射,因此主機420經由第一NAND介面425為控制器400提供一實體位址以及用於寫入或讀取至彼實體位址之一命令。
於此實施例中,控制器400包括用以控制控制器400之操作之一控制模組440、一錯誤偵測碼(EDC)模組450(例如一ECC編碼器/解碼器)及一錯誤校正碼(ECC)模組460(例如,一ECC編碼器/解碼器)。EDC模組450操作以基於輸入資料產生一錯誤偵測碼,且ECC模組460操作以基於輸入資料產生一錯誤校正碼。於此實施例中,控制模組440經組態以使用一ECC碼校正錯誤(例如,控制模組440之部分係一ECC校正引擎)。如此上下文中使用之資料可包含將儲存或擷取之正常資料頁以及用於儲存由主機420或控制器400計算之位址、旗標或資料之標頭、元資料或備用欄位。一錯誤偵測碼允許偵測但不校正至少一個錯誤,而一錯誤校正碼允許偵測及校正至少一個錯誤。可偵測及/或校正之錯誤數目相依於所使用之錯誤偵測碼方案及錯誤校正碼方案之類型。適合類型之錯誤偵測碼方案包含但不限於:一或多個位元組之一檢查和、一縱向冗餘檢查(LRC)、一循環冗餘檢查(CRC)或一8b/10b碼。適合類型之錯誤校正碼方案包含但不限於漢明碼(Hamming code)及雷德-所羅門碼(Reed-Solomon code)。
圖5及圖6分別係圖解說明此實施例中之控制器400如何用於寫入及讀取操作中之流程圖500、600。首先轉至圖5中之流程圖500,控制器400經由第一NAND介面425自主機420接收一寫入命令、資料及與該資料相關聯之一錯誤偵測碼(行動510)。(由於主機420未必意識到其正將命令發出至一控制器之事實,其可能假設其正與其可能處置之類型之一標準NAND快閃記憶體儲存裝置介接)。錯誤偵測碼可在資料之前、之後或與資料混合發送,且在一個實施例中,該錯誤偵測碼係含有該資料之一資料封包之一標頭(例如,8至16個備用位元組)之部分。如上文論述,錯誤偵測碼允許偵測但不校正該資料中之至少一個錯誤。接下來,EDC模組450基於該資料產生一錯誤偵測碼,且控制模組440比較所產生之錯誤偵測碼與自主機420接收之錯誤偵測碼(行動520)。基於此比較,控制模組440判定所產生之錯誤偵測碼是否匹配自主機420接收之錯誤偵測碼(行動530)。在所產生之錯誤偵測碼不匹配自主機420接收之錯誤偵測碼之情況下,控制模組440將指示在自主機420至控制器400之資料傳輸中出現一錯誤之一信號發送至主機420(行動540)。主機420可隨後將該資料重新發送至控制器400。然而,在所產生之錯誤偵測碼匹配自主機420接收之錯誤偵測碼之情況下,寫入過程繼續,其中ECC模組460基於該資料產生一錯誤校正碼(行動550)。如上文論述,錯誤校正碼允許偵測及校正該資料中之至少一個錯誤。控制模組440然後經由第二NAND介面435將該資料及錯誤校正碼儲存於快閃記憶體裝置430中。再次地,根據NAND介面協定發出該命令,包含命令位元組、位址位元組、標頭位元組及含有主機之資料位元組及由ECC模組460產生之對應ECC位元二者之資料位元組。以此方式,快閃記憶體裝置430甚至不必瞭解其正間接地經由控制器400而不直接自主機420接收資訊。
現轉至圖6中,流程圖600圖解說明如何在一讀取操作中使用控制器400。如圖6中顯示,控制器400自主機420接收一讀取命令(行動610)。控制器400然後自快閃記憶體裝置430讀取資料及與該資料相關聯之一錯誤校正碼(行動620)。如上文提及,該錯誤校正碼允許偵測及校正該資料中之至少一個錯誤。接下來,ECC模組460基於該資料產生一錯誤校正碼,且控制模組440(例如,使用一ECC校正引擎)比較所產生之錯誤校正碼與自快閃記憶體裝置430接收之錯誤校正碼(行動630)。基於彼比較,控制模組440判定所產生之錯誤校正碼是否匹配自快閃記憶體裝置430接收之錯誤校正碼(行動640)。在所產生之錯誤校正碼不匹配自快閃記憶體裝置430接收之錯誤校正碼之情況下,控制模組440嘗試校正該資料中之錯誤(行動650)。(如上文論述,相依於所使用的ECC方案,控制模組440可能能夠校正一個或多於一個所偵測錯誤,或該控制模組可使用其他方式嘗試校正該錯誤)。在該校正不成功之情況下,可將指示發生一儲存錯誤之一信號發送至主機420。然而,在所產生之錯誤校正碼匹配自快閃記憶體裝置430接收之錯誤校正碼之情況下,該讀取過程繼續,其中EDC模組450基於該資料產生一錯誤偵測碼(行動660)。如上文論述,該錯誤偵測碼允許偵測但不校正該資料中之至少一個錯誤。控制模組440然後將該資料及錯誤偵測碼發送至主機420(行動670)。主機420然後將基於該資料及任選標頭產生其自身之錯誤偵測碼,並比較其與自控制器420接收之錯誤偵測碼。在該等碼不匹配之情況下,主機420將瞭解發生一傳輸錯誤且可將一信號發送至控制器400以重新發送該資料。
如自此等流程圖500、600可見,此實施例避免可能出現於經由第一NAND介面425在主機420與控制器400之間發送資料時的傳輸錯誤。在某些控制器架構中,於一寫入操作中,主機產生ECC且將ECC及資料發送至控制器,控制器將ECC及資料二者儲存於快閃記憶體裝置中。類似地,於一讀取操作中,控制器自快閃記憶體裝置擷取資料及ECC且將該資料及ECC發送至主機。於此等架構中,ECC不僅用於避免記憶體裝置錯誤,而且亦用於避免在主機與控制器之間的介面傳輸錯誤。然而,於此實施例中,是控制器400而非主機420產生ECC以將資料儲存於快閃記憶體裝置430中。藉由使主機420產生EDC及使控制器400檢查關於寫入之EDC及藉由使控制器400產生EDC及使主機420檢查關於讀取之EDC,此實施例提供用於即使在主機420不產生用於儲存之ECC的情況(如在習用控制器架構下)下亦避免經由第一NAND介面425之傳輸錯誤。此外,儘管使得主機產生EDC及使得控制器檢查EDC且然後產生ECC之過程係用於提供至主機之一非NAND介面(例如,USB)之某些先前控制器架構中,此實施例亦可用於其中主機及控制器經由使用一NAND協定之一NAND介面通信之控制器架構中,如圖3及圖4中顯示。此外,某些現有主機介面協定(尤其地,諸如SATA、SAS、FC及PCIe之串列介面協定)提供某一種類的每封包CRC,其可用於偵測傳輸錯誤且此資訊可經由主機420傳遞及附加至資料封.包且用於一類似目的。然而,經由外部主機介面之資料傳送(諸如SATA)可具有與經由第一NAND介面425發送至控制器400之頁不同的一傳送長度,且可能需要作出適當調整。
在上文中,由主機420及由EDC模組450計算之EDC亦可係比ECC模組450所使用之ECC形式更簡單之一形式。舉例而言,經由第一NAND介面425使用之ECC僅需偵測或校正傳輸錯誤,而經由第二NAND介面435使用之ECC較佳地用於偵測及校正NAND儲存錯誤,其可能需要一較長或較複雜之ECC。
與在一快閃記憶體系統中提供讀取狀態及備用區塊管理資訊有關之實施例
返回至該等圖示,圖7係包含一控制模組740、一錯誤校正碼(ECC)模組750、一狀態模組760及一備用區塊管理模組770之一實施例之一控制器700之一圖解說明。控制器700可分別經由第一介面725及第二介面735與一主機720(具有一主機控制器721)及快閃記憶體裝置730通信。第一介面725及第二介面735可採取任一適合形式,且在一個實施例中係NAND介面,如上文結合圖3所闡述。然而,亦可使用諸如但不限於USB及SATA之其他非NAND型介面。另外,控制器700可置於上文論述之任一實體配置中,舉例而言在封裝於一記憶體系統中之一單獨晶粒上,該記憶體系統亦含有自主機及快閃記憶體獨立封裝之一或多個快閃記憶體晶粒及諸如此類。
控制模組740可組態用於控制控制器700之操作及基於自主機720接收之一命令(例如,讀取、寫入、抹除等)及位址執行一記憶體操作。一ECC模組750係用於判定在處置自快閃記憶體中之記憶體區塊擷取或發送至該等記憶體區塊之資料時是否已出現一錯誤(諸如一讀取或寫入錯誤)之過程中。控制器700可經組態以應用大量錯誤校正碼(ECC)演算法中之任一者來偵測讀取錯誤,及在特定錯誤校正碼演算法之能力內校正某些已偵測錯誤。控制器700處置錯誤校正編碼之應用,以便主機720經由根據錯誤校正演算法處理之第一介面725接收資料,而不是必須在主機處進行錯誤校正。(另一選擇係,ECC模組750可用一錯誤處置模組置換,該錯誤處置模組可使用除ECC外或替代ECC之其他錯誤恢復技術。於此替代中,控制器700將仍校正該資料,因此經由第一介面725發送之資料不要求由主機720進行進一步錯誤處理(例如,計算一單個錯誤碼或藉助一電壓移位重新讀取))。相反地,在寫入操作期間,控制器700處置錯誤編碼資料且經由第二介面735傳送該ECC編碼及資料以供儲存於快閃記憶體裝置730上。
狀態模組760與ECC模組750合作以提供與快閃記憶體裝置730上之特定操作狀態有關之資料給主機720。舉例而言,狀態模組760可檢閾控制器700中之錯誤分析活動,且基於一讀取錯誤是否已被偵測到、是否已被校正或是否係不可校正的來準備關於讀取錯誤資訊之狀態資訊。由於主機、控制器及快閃記憶體配置,在其中主機720將通常不處置自快閃記憶體裝置730擷取之資料之錯誤分析或校正處,主機720將不具有一讀取操作之狀態之細節。狀態模組760允許追蹤此資訊且將其提供給主機720,以便主機720可就如何發送或請求資料或將資料發送或請求至何處來對記憶體做出任何期望調整。主機720亦可使用此狀態觸發某一其他主動或預防操作,諸如損耗平均、資料重新定位或讀取清理。
狀態模組760可以數種格式中之一者將狀態資訊提供給主機720。在其中狀態模組準備用於傳輸至主機720之讀取狀態資訊之情況下,讀取狀態可係附加的以自快閃記憶體擷取資料,如圖8A及圖8C中指示。(應注意,此等圖示中顯示之欄位可呈任一次序)。圖8A圖解說明一資料傳送格式800,其中在由控制器700處理錯誤分析之後將自快閃記憶體擷取之資料置於具有一標頭802、一資料有效負載區段804及一狀態位元806之一訊息中,其等可被填充至兩個或更多個位元組(因此,「位元」當在申請專利範圍中使用時可係指一單個位元或一或多個位元,諸如一或多個位元組)。此狀態位元806可係供主機720使用之一二進制成功或失敗指示。狀態位元806將不必重新讀取錯誤之類型或程度之間加以區分,但將把一旗標提供給主機720,警示其已遭遇某種形式之錯誤。另一選擇係,該狀態位元可係用於攜載與維持於主機720中或由控制器700維持之一查找表中之一錯誤訊息相關聯之一編碼值之一單個欄位。圖8B類似於圖8A,但狀態位元806'係包含為標頭802'之部分,其將在正常情況下由控制器700在讀取時填充,且不存在分離狀態位元欄位。
另一選擇係,如圖8C中所見,資料傳送格式808可包含一標頭810、資料有效負載區段812及一狀態區段814,該狀態區段814具有配置於狀態區段814中之多個欄位816中之一或多個位元。在圖8C之配置中,關於狀態之更詳細資訊可關於讀取錯誤來傳送,且將可用於主機720。在狀態訊息之一個實施方案中,僅讀取錯誤資訊可被提供給主機720。在其他實施方案中,狀態資訊可經配置以運送由控制模組740偵測且由控制器700之狀態模組760格式化之讀取、寫入及抹除錯誤資訊中之一或多者。於再一實施例中,狀態區段814之欄位816亦可、或作為另一選擇提供關於備用區塊管理之資料。在以下章節中提供關於由控制器700之備用區塊管理模組770參與或報告之備用區塊管理活動之細節。圖8C之多欄位實施例提供用於與將報告之一記憶體操作相關聯之錯誤組合之一機制。圖8D類似於圖8C,但狀態欄位814'係標頭810'之部分,且可類似地由多個欄位816'組成。
於另一實施例中,可在所保留欄位或供應商唯一欄位中之一者中之狀態暫存器或延伸狀態暫存器中指示一讀取之結果或成功/失敗。然而,除輪詢忙碌狀態外,今日之主機控制器可能不必查找狀態暫存器或延伸狀態暫存器中之讀取錯誤。回應於程式化或抹除命令經由第二介面735報告程式化及抹除錯誤(此係自一原始NAND裝置報告之標準錯誤),且可將此資訊傳回至主機。對此一錯誤之正常回應係分配一新區塊,複製來自具有錯誤之區塊之任何當前有效資料頁,且具有指示此現在係有效區塊之任何元資料,且然後將具有錯誤之現存區塊標記為壞的。於一個實施例中,控制器可指示程式化或抹除故障且將其留給主機控制器以執行以上複製及元資料管理。於另一實施例中,控制器可執行此等操作及在控制器內管理該壞區塊。於此情形中,其可能與所出現之一錯誤相比對主機控制器完全透明,或控制器可指示其採取此可校正動作(舉例而言,主機可將此記錄為已發生一軟錯誤)。因此,概言之,此等位元可指示出現主機必須管理之一錯誤,出現控制器已管理(且僅通知主機)之一錯誤,或該錯誤可由控制器處置且自主機隱藏。
用信號通知一錯誤之可替代方法(諸如單個狀態位元806或806'、具有多個欄位816或816'之狀態區段814或814'、或經由狀態暫存器或延伸狀態暫存器中之位元)將統稱為一「錯誤信號」。於另一實施例中,除此等錯誤信號中之一或多者外,控制器700可經組態以與錯誤信號之一或多者之使用相結合將詳細狀態資訊儲存於一習知位置中。舉例而言,控制器700之狀態模組760可將詳細狀態資訊(例如,讀取狀態資料)儲存於快閃記憶體裝置730上或控制器700中之主機可回應於接收錯誤信號中之一或多者而存取之一預定位置中。因此,在主機想要關於該狀態之額外細節(例如,一讀取錯誤)之情況下,該狀態位元或欄位可不再運送除指示更多資訊對主機可用之一旗標以外的資訊。而且,由位元或欄位標出之額外狀態資訊可儲存於由控制器700追蹤之一位置中,主機可藉由將用以擷取狀態資訊之一普通命令發送至控制器700來存取該位置,而不是主機需要瞭解該位置及擷取該狀態資訊。
在使用附加有圖8A之狀態訊息格式之單個位元之情況下(其中該位元表示錯誤校正之成功或失敗之判定),該位元可實施為針對一可用介面協定呈一延伸讀取格式之一供應商專用位元之部分,諸如自開放NAND快閃記憶體介面工作組可用之ONFI 2.0。如上文所述,亦可使用向主機720警示將狀態模組致使儲存於一位置處之更詳細資訊的多位元狀態資訊或單位元或多位元資訊格式。
圖9顯示狀態欄位900之一個可能配置,該狀態欄位可放置於圖8A至圖8D之實施例中之位置806、806'、814、814'中,或在其中主機720可在狀態可用性之通知或自控制器700擷取該資訊之後請求進一步資訊之實施例中儲存於控制器700或快閃記憶體裝置730中。狀態欄位900可包含指示一讀取操作之成功或失敗之一欄位902、提供關於是否已執行諸如ECC校正之一校正之資訊的欄位904、及標出是否存在一「硬」ECC故障(亦即,其中資料已丟失)之一欄位906。除讀取狀態資訊外,狀態欄位900亦可包含表示控制器700是否偵測到一程式化或抹除錯誤之一或多個欄位908。如下文進一步論述,亦可包含與備用區塊管理有關之狀態資訊,諸如表示一區塊複製及重新映射之一欄位910、請求一主機傳回一新備用區塊之一欄位912、及向主機720指示已存在關於快閃記憶體裝置730中之一有缺陷區塊之嘗試操作之一欄位914。一或多個額外欄位916可經配置以處置對一特定應用可係必要之其他狀態資訊。舉例而言,此一欄位916可指示軟錯誤之數目(亦即,由ECC校正之錯誤)。
圖10圖解說明可在控制器700上操作以供將讀取狀態資訊提供給主機720之一實施例之一種方法之一流程圖1000。控制器700首先自主機720接收一讀取命令(行動1002)。為讀取該資料,控制器700將一讀取命令發出至快閃記憶體裝置730(行動1004),且快閃記憶體裝置730經由第二介面735將具有錯誤校正碼之一資料頁傳回至控制器700(行動1006)。控制器700之ECC模組760引導對所擷取資料之一錯誤分析(行動1008)。該錯誤分析或處置可係一錯誤校正碼演算法或其他錯誤校正機制。在使用一ECC演算法之情況下,控制器700計算關於來自快閃記憶體裝置730之所擷取資料之ECC位元組,且比較所計算之ECC位元組與先前儲存且藉助該資料擷取之彼等ECC位元組。在所計算之ECC位元組與所擷取之ECC位元組不匹配之情況下,控制器700識別一錯誤(行動1010)。在所計算ECC與所儲存ECC之間的差可由控制器700校正之情況下,控制器700將在經由第一介面725傳送該資料之前完全校正該資料,且將把該錯誤識別為一「軟」或可校正錯誤。另一選擇係,在該錯誤足夠嚴重以使得ECC演算法或其他錯誤恢復程序不能補償該錯誤之情況下,控制器700將識別用信號通知一資料損失已發生之一硬錯誤。然後經由第一介面725將自快閃記憶體裝置730讀取之經校正資料與以一資料訊息格式(諸如上文論述之資料訊息格式800、800'、808、808'中之一者)附加之狀態資訊一起發送至主機720(行動1012)。
參照提供一讀取狀態錯誤之方法,即在圖10.中圖解說明之一實施例,可僅在控制器700讀取及分析之每一資訊頁結束時計算及提供讀取狀態錯誤,以便不中斷多個頁之流動,且使得哪些頁可含有錯誤變得顯而易見。另外,於另一實施例中,期望使控制器700可自快閃記憶體裝置730讀取資料且在該資料進入及已處理快閃記憶體之一完整頁之前計算ECC。舉例而言,在頁大小係8千位元組(KB)之情況下,控制器700可以2 KB區段為單位計算ECC,其中每一2 KB區段包括小於一頁,因為在完成該頁之每一部分之後,可針對表示頁之彼部分之彼資訊檢查或校正ECC。在已將一或多個2 KB區段自快閃記憶體裝置730傳送至控制器700之後,控制器700可在已針對彼頁將該資料之最後一者自快閃記憶體傳送至控制器之前同時開始經由第一介面725傳送經錯誤校正之資料。
好、壞及備用區塊管理實施例
再次參照圖9,如上文提及,狀態欄位900可包含關於備用區塊管理之資訊,例如欄位910至914,其可用於處置管理可隨快閃記憶體之可用壽命週期發展之壞(有缺陷)區塊所需之備用區塊。如圖7中顯示,一備用區塊管理模組770可包含於控制器700中以按數個方式中之一者操作。相依於所採用之特定備用區塊管理模式,可利用資訊之一或多個欄位,諸如實例性欄位910至914。
大體而言,快閃記憶體裝置製造有過量(大於所界定之最小容量)之區塊。在出廠測試期間或在裝置使用期間,可發現某些區塊係「壞的」或「有缺陷的」,意指其等不能正確地儲存資料且需要被置換。類似地,可存在過量(大於所界定之最小容量)之「好」區塊,其等可用作「備份」直至另一區塊發生故障或變得有缺陷。記錄此等額外區塊分別稱為壞區塊管理及備用區塊管理。此等概念將更詳細地闡述於以下段落中,其係指圖12A及圖12B中顯示之一實例性快閃記憶體裝置1200之區塊。
圖12A顯示設計及製造有記憶體之總計1000個區塊之一實例之一裝置之區塊之一實體視圖。於此圖示中,該等區塊係以實體次序顯示,且每一白色區塊1210表示快閃記憶體裝置之一獨立區塊(僅顯示該1000個區塊中之若干個)。每一黑色區塊1220表示在製造時有缺陷之一區塊(其等隨機地分佈於此實例中)。圖12B顯示同一部分1200之一抽象視圖,其中各種好區塊及壞區塊顯示為一起編組(且不以實體次序)。針對諸如1200之一部分之一實例性供應商資料表單可指示在該部分之壽命結束時可可靠地具有至少900個好區塊,如1230中顯示。針對專用實例性快閃記憶體裝置1200,存在950個好(白色)區塊(未完全顯示)及50個壞(黑色)區塊(未完全顯示)。該50個壞區塊(在製造或初始測試時)顯示為在邏輯上一起編組為1260。
於該實例中繼續,該資料表單亦可指定在其指定使用壽命期間不多於10個區塊可發生故障,因此此等區塊係顯示為「最小備份」1240。因此,裝置1200必須在製造時具有一最小值為910個好區塊(否則工廠將不裝運此一裝置,乃因其將不符合該資料表單)。其他40個好(白色)區塊(該950個好區塊與該910保證好區塊之間的差)被視為「額外備用」區塊且顯示為1240。額外備份之數目未必可靠,且可在理論上在90(在不存在壞區塊之情況下,儘管此極為罕見)與0(暗示90個壞區塊,此將恰好滿足資料表單要求)之間變化。統一地,最小備份與額外備份亦可稱為「備用區塊」。
通常,一主機將直接藉助原始快閃記憶體處置備用區塊管理。舉例而言,一標準主機可使掃描一快閃記憶體中之所有區塊之其自身控制器查找一專用符號,以判定哪些區塊係可用區塊及哪些區塊不可用(亦稱為有缺陷或「壞」區塊)。因此,在將諸如上文所述且如在1200中詳細顯示之快閃記憶體裝置730之一快閃記憶體製造為具有1000個記憶體區塊之情況下,主機控制器將通常分析所有1000個區塊且識別好區塊及壞區塊。然後該典型主機控制器可使用該940個好區塊(於此實例中)之全部或一子集,且將10個區塊保留為備用區塊以供用於在當前可用區塊變壞時置換當前可用區塊。其亦可使用其找到的任何額外備用(好)區塊(例如,於此實例中為40個)。藉由如圖7中所述利用具有一備用區塊管理模組770之一控制器700,通常由一主機處置之備用區塊管理之不同態樣可由控制器700之備用區塊管理模組770接替。
於一個實施方案中,備用區塊管理模組770可選擇性地經組態以按三個備用區塊管理操作模式中之一者操作:(1)一無管理模式,其中控制器700不提供備用區塊之管理且主機720自身掃描區塊缺陷;(2)一完全管理之備用區塊管理模式,其中控制器700向主機720僅提供N個好的邏輯區塊,其中N係一資料表單參數且可在快閃記憶體上可用之一參數頁中讀取;及(3)一分裂備用區塊管理模式,其中主機可使用額外備用區塊但控制器700可請求一主機釋放此等額外區塊中之某些區塊,以供在控制器之備用區塊供應落至低於一期望位準時由控制器700使用。
儘管控制器700在處於集合單獨主機720、控制器700及快閃記憶體裝置730之一製造設備處或甚至經預起動以供由一專用原始裝備製造商(OEM)使用時仍可由主機720利用,但控制器700中之備用區塊管理模組770可經組態以在已選擇一不同備用區塊管理模式之後改變該備用區塊管理模式。
參照圖11之流程圖1100,在起動控制器700中之備用區塊管理模組時,當在一OEM處之原始起動時或在重設一先前選定模式時,控制器700接收識別一期望操作模式之一選擇命令(行動1102)。在該選擇命令指示已選定該無管理備用區塊管理模式(行動1104)之情況下,備用區塊管理模組770准許主機720直接掃描快閃記憶體裝置730以識別可用區塊及壞區塊(行動1106)。於該無管理模式下,亦避免控制器700管理備用區塊使用。作為替代,在備用區塊管理模組770識別可指示一壞區塊(諸如一不可校正ECC故障(欄位906)或一程式化或抹除故障(欄位908))之一錯誤時,控制器700亦可通知主機720彼特定區塊需要使用一適當狀態欄位(諸如欄位910(圖9))複製及重新映射。(欄位908亦可係兩個欄位,一個用於程式化故障且另一個用於抹除故障,或其等可組合於一個欄位中)。
儘管在無管理備用區塊管理模式下備用區塊管理可整體地移交至主機720,但控制器700仍可掃描若干備用區塊且保持彼等對主機720不可見以用於錯誤恢復。換言之,藉由使用具有最大1000個區塊之一快閃記憶體之圖12中之實例,資料表單可顯示一最小保證區塊數目為900且一最大保證區塊數目為990。在該專用部分中之好區塊之真實數目係950之情況下,在主機720掃描好區塊之前控制器700隱藏10個區塊供其自身使用的情況下主機720將僅找出940個好區塊。控制器700藉由不實地指示該等隱藏區塊係壞區塊而自主機720隱藏好區塊,乃因控制器700知曉其正隱藏哪些區塊。舉例而言,在控制器700決定隱藏區塊X之情況下,在主機讀取區塊X時,其可傳回任意資料與一有缺陷區塊旗標。同樣,根據自主機至區塊X之任何抹除或程式化請求,控制器可用信號通知一抹除或程式化錯誤。
參照備用區塊管理之第二模式(行動1108),在完全管理模式下,備用區塊管理模組780在快閃記憶體裝置730中執行所有區塊掃描以識別好區塊,及僅將N個好區塊提供給主機控制器,其中N係可在保證數目個可用區塊之快閃記憶體之參數頁中讀取之一資料表單參數(行動1110、1112)。控制器700然後僅允許該N個好區塊上之主機操作。控制器700將任何額外好區塊保持為其可用於錯誤處置之備份(行動1114)。再次參照上文圖12中所述之具有1000個區塊之假想快閃記憶體,N可係900,其中控制器700將保持所有50個額外可用區塊為備份,且在其等回應於一當前好區塊變壞而被備用區塊管理模組780加以使用之前主機720不存取此等備份。
上文提及之第三備用區塊管理模式(即分裂管理)准許控制器700與主機720之間的合作以使用額外區塊1250(亦即,大於資料表單上之保證數目減去原始保留為備份之任何區塊之彼等區塊)。可使得此等額外備用區塊對主機720可用以最佳化主機操作。於該分裂管理技術之一個實施例中,在藉助用於分裂區塊管理之一命令起動該備用區塊管理之情況下(行動1116),控制器700之備用區塊管理模組770掃描快閃記憶體裝置730以找出好區塊及壞區塊且將該等好區塊中之若干個區塊(例如五個)保留為備用區塊供用於錯誤恢復(行動1118)。控制器700可發現所有好區塊且僅將該等好區塊「顯示」給主機。
舉例而言,控制器700可讀取快閃記憶體裝置730之參數頁且判定在專用快閃記憶體中存在多少剩餘的好區塊。該類別之快閃記憶體裝置之產品資料表單可報告可能的好區塊之最小及最大數目(例如,900至990)。因此,再次參照具有1000個可能區塊之一假想快閃記憶體之以上實例,其中950個區塊係由備用區塊管理模組770掃描且發現實際上可用,則在控制器700將此等好區塊中之5個保留為備用區塊之情況下,其將945個好區塊報告給主機720(行動1120)。因此,主機720將不知曉存在5個其他好區塊。控制器700可將該等好區塊重新映射至移除壞區塊之一緊湊邏輯位址範圍內(例如,將好區塊之位址順序地重新映射為0至N)(行動1122)。在主機720對大於N之位址嘗試一讀取、程式化或抹除操作之情況下,控制器700將報告一錯誤。藉由使用圖9之資料欄位900作為一實例,此錯誤可在欄位914中附加資料而由備用區塊管理模組770報告,以便在主機720想要到控制器規定範圍外時其相信其正定址一有缺陷區塊。
於該分裂管理模式之一替代實施例中,代替掃描快閃記憶體裝置730中之所有區塊,備用區塊管理模組780可僅掃描及保留一好區塊集以保持為其自身之備用區塊,且允許主機720掃描所有區塊以判定哪些為好的及哪些為有缺陷的。於分裂管理模式之此替代實施方案中,在主機720嘗試對備用區塊管理模組770已標識為備用區塊之區塊中之一者執行一讀取、程式化或抹除操作時,控制器700將指示該區塊中之一缺陷或記錄一錯誤。舉例而言,控制器700可在適當位元組中插入用於標記有缺陷區塊之一缺陷旗標,或其可佔據呈讀取狀態之一欄位,諸如圖9中之「對一有缺陷區塊之嘗試操作」欄位914。主機720然後將出於其目的而使用所有其他可用區塊,包含除在參數頁中保證之數目外的彼等可用區塊。
不管採用哪一版本之分裂區塊管理技術,主機720將通常能夠出於其自身利益(例如改良效能或耐久性)而使用大於最小值之任何額外備用區塊,但於該兩種情形下主機720可不依賴於多於最小數目的區塊。因此,於此實例中,主機將具有其可使用之45個額外區塊(950個總計可用,減去5個保留的,對資料表單上之900個保證最小值)。
藉助分裂管理模式,當控制器700遭遇需要一備用區塊之一錯誤(諸如一程式化或抹除錯誤)時,備用區塊管理模組770使用其備份中之一者置換新發現之有缺陷區塊。於此實例中,該備份將係如上文識別而保留之該五個區塊中之一者。在使用備用區塊之後,備用區塊管理模組780將具有少於其通常維持之最小數目個備用區塊(亦即,5個),且將通告主機720其需要另一備用區塊(行動1124)。自控制器700之備用區塊管理模組780提供給主機720之通告可係經由藉助所擷取資料傳回之狀態值中之一欄位。舉例而言,在圖9中,可在欄位912中傳達請求傳回一額外區塊供用作一備份之一旗標。於此實例中,主機720將需要傳回該45個額外區塊中之一者,其先前能夠使用但超出被保證為必須存取之最小數目。主機720可藉由藉助一設定特徵命令將資訊寫入至一專用位址或偏移或藉由使用一供應商唯一命令(其中區塊位址作為其位址欄位)而向控制器700指示正傳回哪一區塊供用作一備份。
於該分裂管理模式下,大於由針對一類別記憶體之資料表單保證之最小值之額外區塊將在主機720可使用但可稍後被再召回為備份之額外品與立即保留用於控制器700之備份之間「分離」。此區別於其中控制器700不能請求任何額外區塊且具有其可使用之固定數目個備用區塊之無管理模式,且區別於其中所有額外區塊係由控制器700使用且不可用於主機720之完全管理模式。具有備用區塊管理之完全或部分(分裂)控制器管理模式之靈活性可藉由減少一主機控制器之所需複雜度而在典型主機管理或備用區塊資訊方面提供一優勢。
儘管在圖7之圖9之實例中已闡述讀取狀態之具體實例,但該狀態模組亦可用於使用正常錯誤狀態位元判定寫入(亦稱為「程式化」)或抹除錯誤並將其自控制器傳達至主機。另外,控制器亦可視需要在錯誤狀態下使用一保留或供應商唯一欄位以指示彼額外狀態可用。在接收此等錯誤指示符(讀取狀態錯誤、正常寫入或抹除錯誤、或額外狀態可用欄位)中之任一者時,主機可讀取此額外狀態資訊,其一實例係顯示於圖9中。在ONFI 2.0中之現有狀態暫存器欄位中之位元2、3或4可用於用信號通知該額外狀態。另外,儘管狀態資訊及備用區塊管理係顯示為相同訊息格式之部分,但在其他實施例中控制器可經組態以僅提供狀態資訊或備用區塊管理資訊中之一者。
已闡述供與一快閃記憶體一起使用之一改良獨立控制器,其可處置錯誤分析及錯誤校正,與一主機合作以數個模式中之一者管理與用於錯誤恢復之備用區塊有關之通信,及提供關於由主機存取之一訊息欄位中之讀取命令或寫入及抹除錯誤之狀態資訊。本文所揭示之方法及控制器准許由與一主機分離之一控制器之活動,該主機可允許一主機控制器具有一更簡化設計,且在向一主機提供與控制器之活動有關之資訊的同時准許可與一快閃記憶體中之一主機一起使用之一相異控制器之定製架構,以使得可達成各種位準之控制器及主機合作與最佳化。
實例性NAND快閃記憶體控制器實施例
此區段論述一種實例性控制器架構且提供關於上文論述之各種功能性模組中之某些之更多細節。如上文提及,一「模組」可以任一適合方式實施,諸如藉助硬體、軟體/韌體或其一組合,且一「模組」之功能性可由一單個組件或分佈於控制器中之數個組件之間來執行。
現返回至圖示,圖13A係圖3之NAND控制器300之一當前較佳實施方案之一圖示。應瞭解,此等圖示中顯示之組件中之任一者可實施為硬體、軟體/韌體、或其一組合。於此實施方案中,圖3中之第一NAND介面325係由主機介面模組(「HIM」)3010實施。HIM 3010係支援「主機側介面」作為一「快閃記憶體裝置型介面」之一邏輯集合。HIM 3010包括一先進先出(「FIFO」)模組3080、一控制單元3090、一循環冗餘檢查(「CRC」)模組3100(但可使用另一類型之錯誤偵測碼(「EDC」)模組)、一命令暫存器3110、一位址暫存器3120、及一主機直接記憶體存取(「HDMA」)單元3130。於此實施例中,HIM 3010採取一ONFI HIM之形式。如下文將更詳細論述,某些HIM針對相對大量之資料自一主機控制器接收一高位準請求,該資料跨越數個頁,且NAND控制器判定需要哪些動作以滿足該請求。作為對比,一ONFI HIM自一主機控制器接收數個較小大小的請求(例如,針對個別頁),因此要求ONFI HIM同時處置多個(例如,八個)讀取及寫入請求。
返回至圖13A,圖3之第二NAND介面335於此處係由一快閃記憶體介面模組(「FIM」)3020實施。於一當前實施例中,FIM 3020實施為產生「裝置側介面」作為一「主機型介面」之邏輯及一低位準可程式化序列器之一集合。於此實施例中,FIM 3020包括一命令暫存器3140、一位址暫存器3150、一ECC編碼模組3160、一ECC解碼模組3170、一資料擾碼器3180及一資料解擾碼器3190。
在NAND控制器300內部係一處理器3040,其具有本端ROM、碼RAM及資料RAM。一中央匯流排3030連接處理器3040、HIM 3010、FIM 3020及下文所述之其他模組,且用於在所示不同模組之間傳送資料。此雙向匯流排3030可係具有至每一內部組件之實際連接之一電匯流排,或用於與一ARC微處理器結合地使用之一先進高速匯流排(「AHB」),其使用一互連矩陣在邏輯上連接各種模組。中央匯流排3030可傳輸資料、控制信號,或二者兼備。NAND控制器300亦包括用於暫時儲存正被讀取或寫入之資料頁之一緩衝器RAM(「BRAM」)3050,及用於校正錯誤之一ECC校正引擎3060。NAND控制器300進一步包括用於執行加密/解密功能之一加密模組3070。
NAND控制器300可進一步包括一行置換模組,其在此處係由FIM序列器、處理器3040中之韌體實施,或較佳地在少量邏輯及位於FIM 3020中之一表中實施。該行置換模組允許快閃記憶體裝置330(圖3)含有關於壞行位置之資訊。該壞行位址資訊係含於快閃記憶體裝置330中,且在任一讀取或寫入操作之前由韌體掃描。在韌體掃描快閃記憶體裝置330之後,其構建一壞行位址表,其中壞行位置將由行置換模組使用。就快閃記憶體寫入操作而言,行置換模組針對在一壞行位址表中偵測到的位址插入該資料(0xFFFF)。就快閃記憶體讀取操作而言,將丟棄來自壞行位址之資料。
藉助當前大致闡述之NAND控制器300之組件,現將提供NAND控制器300之實例性寫入及讀取操作。首先轉至一寫入操作,HIM 3010中之FIFO 3080充當來自一主機控制器之一撥入寫入命令、位址及資料之一緩衝器,且使彼等元件與系統卡域同步。CRC模組3100檢查該撥入資訊以判定是否出現任何傳輸錯誤。(CRC模組3100係上文論述之EDC模組之一實例)。該CRC模組產生或檢查一錯誤偵測碼以作為一端對端資料保護方案之部分檢查傳輸錯誤。在未偵測到錯誤之情況下,控制單元3090將自FIFO 3080接收之命令解碼,且將其儲存於命令暫存器3110中,且亦將位址儲存於位址暫存器3120中。經由中央匯流排3030將自主機控制器接收之資料透過HDMA AHB介面3130發送至BRAM 3050。控制單元3090將一中斷發送至處理器3040,處理器3040回應於此讀取來自命令暫存器3080及位址暫存器3120之命令,且基於該命令設定在FIM 3020中之資料路徑且將該命令儲存於FIM之命令暫存器3140中。處理器3040亦將來自NAND介面325之位址轉譯成一內部NAND位址,且將其儲存於FIM之位址暫存器3150中。在將執行邏輯至實體位址轉換之情況下,處理器3040可使用一映射表以產生正確之實體位址。處理器3040亦可執行下文所述之一或多個額外功能。處理器3040然後設定自BRAM 3050至FIM 3020之一資料傳送。
FIM 3020獲取來自位址暫存器3150之值且依照NAND介面335之標準將其格式化。將儲存於BRAM 3050中之資料發送至加密模組3070以供加密,且然後透過資料擾碼器3180發送。資料擾碼器3180將該資料擾碼且將該資料輸出至FIM之ECC編碼器3160,ECC編碼器3160產生將與該資料一起儲存之ECC同位元。然後藉助寫入命令經由第二NAND介面將該資料及ECC位元傳送至快閃記憶體裝置以供儲存。作為可出現於寫入期間之一額外功能之一實例,在啟用對寫入中止或程式化故障之保護的情況下或在該寫入請求係至一上部頁位址之情況下,處理器3040可針對對應之下部頁經由第二NAND介面將一讀取命令發送至快閃記憶體裝置,且然後發送一程式化命令以藉由將其寫入回至快閃記憶體裝置330中之另一位置來使其複製至一安全區內(一備用暫存區)內。當在寫入上部頁時出現一錯誤之情況下,仍可自該安全區讀取回該下部頁且校正該錯誤。(此係上文論述之用於經由安全區處置寫入中止及/或程式化故障之模組之一實例)。
現轉至一讀取操作,HIM 3010自一主機控制器接收一讀取命令,且處理器3040讀取該命令及邏輯位址。在將執行邏輯至實體位址轉換之情況下,處理器3040中之韌體可使用一映射表以產生校正實體位址。(此係上文論述之位址映射模組之一實例)。然後該韌體經由第二NAND介面335將該實體位址發送至快閃記憶體裝置330。在該讀取存取之後,經由該NAND介面傳送該資料,將其解碼及用於產生針對錯誤校正之症狀碼資料,由資料解擾碼器3190解擾碼,且然後經由中央匯流排3030發送至BRAM 3050。ECC校正引擎3060係用於校正儲存於BRAM 3050中之資料之可使用ECC校正之任何錯誤。由於該ECC可計算及儲存於一實體頁之部分中,因此在接收或校正該頁之每一部分或在一旦已傳送該資料之全部時處理器3040可被中斷。然後加密模組3070對該資料執行一解密操作。由於第一NAND介面325及第二NAND介面335可以不同速度操作,且該韌體可使用儲存及轉發技術或速度匹配緩衝來傳送該資料,因此上文所述時序係靈活的。在將該資料發送回至主機控制器時,其係透過HIM 3010發送,且傳輸CRC係經由第一NAND介面325發送回至主機以檢查傳輸錯誤。
如上文提及,除處置自主機控制器發送之命令外,處理器3040可與主機發送之任何專用命令非同步或獨立地執行一或多個額外功能。舉例而言,在ECC校正引擎3060偵測到一可校正軟錯誤之情況下,ECC校正引擎3060可校正該軟錯誤且亦中斷處理器3040記錄頁位置,以便可在一稍後之時間點處讀取清理該對應區塊。處理器3040可執行之其他實例性後臺任務係損耗平均及壞區塊與備用區塊之映射,如下文所述。
再次回到該等圖示,圖13B係顯示一實施例之一NAND控制器之一更詳細視圖之一方塊圖。如藉助圖13A中顯示之控制器,此實施例中之控制器含有一ONFI HIM 3200及一FIM 3260,其等透過一中央匯流排(於此處,用於資料路徑之一先進微控制器匯流排架構(「AMBA」)、高效能匯流排(「AHB」)、多層矩陣匯流排3270及用於共同路徑之一先進周邊匯流排(「APB」)3330)通信。ONFI HIM3200及FIM 3260可係與該等處理器中之任一者相關聯。舉例而言,ONFI HIM 3200可係與運行儲存於一MRAM 3290中之ARC碼之一ARC600微處理器3280(具有一內建快取3285)相關聯。大體而言,ARC600 3280用於來自ONFI HIM 3200之服務中斷,及管理資料路徑設置及將資訊傳送至快閃記憶體控制RISC 3250。快閃記憶體控制RISC 3250係可與FIM 3260一起使用之微處理器,且大體而言藉由產生微控制碼至FIM 3260中之各種組件來處置設定FIM 3260之功能。更具體而言,快閃記憶體控制RISC 3250設定FIM 3260中之快閃記憶體直接記憶體存取(「FDMA」)模組3440,其與AHB匯流排3270通信且產生AHB匯流排協定命令以自DRAM 3220讀取資料。快閃記憶體控制RISC 3250亦設定含有ECC編碼器及解碼器之EDC模組3450。MRAM 3240儲存用於運行快閃記憶體控制RISC 3250之碼。
此實施例中之NAND控制器亦含有儲存用以使得控制器在啟動時運行之指令碼之一ROM 3210。NAND控制器之額外組件包含一DRAM 3220、一ECC校正引擎3230、一加密模組3300、一APB橋接器3310、一中斷控制器3320、及一時鐘/重設管理模組3340。
加密模組3300根據先進加密標準(AES)使用一128、192或256位元密鑰加密及解密資料之128位元區塊。針對寫入操作,在自主機接收資料及由ONFI HIM將其發送至BRAM 3050(圖13A)之後,ARC600處理器3280產生具有加密操作之界定參數之一控制區塊。然後加密模組3300執行加密操作及將所得資料儲存至BRAM 3050,及中斷ARC600處理器3280以指示該資料已就緒。針對讀取操作,在ECC引擎完成BRAM 3050中之錯誤校正之後,ARC600處理器3280產生具有解密操作之界定參數之一控制區塊。然後加密模組3300執行解密操作及將所得資料儲存至BRAM 3050及中斷ARC600處理器3280以指示資料已就緒。
現更詳細地轉至ONFI HIM 3220及FIM 3260,ONFI HIM 3220包括以一非同步模式或一源同步模式操作(其係ONFI標準之部分)之一ONFI介面3350。(非同步(或「async」)模式係在藉助用於寫入之WE#信號及用於讀取之RE#信號鎖存資料時。源同步(或「源(src)sync」)係在藉助該資料轉發選通(DQS)以指示何時應鎖存該資料時)。ONFI HIM 3200亦含有一命令FIFO 3360、一資料FIFO 3370、一資料控制器3380、一暫存器組態模組3400、一主機直接記憶體存取(「HDMA」)模組3410、及一CRC模組3415,其等如上文所述與圖13A結合地使用。ONFI HIM 3200進一步含有分別用於與APB匯流排3330及AHB匯流排3270通信之一APB介面3390及一AHB埠3420。FIM 3260包括包含一EDC編碼器及一EDC解碼器之一EDC模組3450、一快閃記憶體協定序列器(「FPS」)3430(其基於由快閃記憶體控制RISC 3250或ARC600微處理器3280提供之微控制碼產生命令至NAND匯流排)、一FDMA 3440、一資料擾碼器/解擾碼器3470及一NAND介面3460。
擾碼器/解擾碼器3470在快閃記憶體寫入傳送(擾碼)及快閃記憶體讀取傳送(解擾碼)二者期間執行一資料轉變。儲存於快閃記憶體裝置330中之資料可經擾碼以降低資料型樣相依之敏感度、干擾效應、或藉由產生更多隨機資料型樣所致之錯誤。藉由跨越記憶體裝置330中之頁以一移位型樣擾碼該資料,可顯著地改良該記憶體之可靠性。擾碼器/解擾碼器3470實時處理資料且使用暫存器存取由ARC600處理器3280或快閃記憶體控制RISC 3250組態。ECC檢查位元產生係在擾碼之後執行。ECC錯誤偵測係在解擾碼之前執行,而校正係在解擾碼之後執行。
此實施例中之NAND控制器大致如上文參照圖13A所述來處理寫入及讀取操作。舉例而言,針對一寫入操作,命令FIFO 3360及資料FIFO 3370儲存一呼入寫入命令及資料,且CRC模組3415檢查該呼入資訊以判定是否存在任何傳輸錯誤。在未偵測到錯誤之情況下,資料控制器3380將自命令FIFO 3360接收之命令解碼且將其儲存於暫存器組態模組3400中之一命令暫存器中。將自主機控制器接收之位址儲存於暫存器組態模組3400中之位址暫存器中。將自主機控制器接收之資料透過HDMA 3410發送至DRAM 3220。資料控制器3380然後將一中斷發送至ARC600 3280或快閃記憶體控制RISC 3250,ARC600 3280或快閃記憶體控制RISC 3250讀取來自命令暫存器之命令,讀取來自位址暫存器之位址,且將控制傳遞至快閃記憶體控制RISC 3250以設定FIM 3260以開始讀取來自FRAM 322之資料及執行ECC及資料擾碼操作,將其結果發送至快閃記憶體裝置330以供儲存。ARC600微處理器3280及/或FIM 3260可執行額外操作。舉例而言,FIM 3260可執行行置換,且以下操作可使用ARC600微處理器3280與FIM 360一起執行:壞區塊及備用區塊管理、安全區、讀取清理、及損耗平均。下文將更詳細闡述此等操作。
針對一讀取操作,ONFI HIM 3200在接收一讀取命令時將一中斷發送至ARC600微處理器3280。ARC600微處理器3280然後將該命令及位址資訊傳送至快閃記憶體控制RISC 3250,快閃記憶體控制RISC 3250設定FPS 3430以產生至NAND快閃記憶體裝置330之一讀取命令。一旦該資料就緒以被自NAND快閃記憶體裝置330讀取,FPS 3430就開始將讀取命令發送至NAND匯流排。該讀取資料通過NAND介面單元3460至資料解擾碼器3470且然後通過EDC模組3450,EDC模組3450產生用於ECC校正之症狀碼位元。然後將該資料及症狀碼位元經由FDMA 3440傳遞且儲存於DRAM 3220中。快閃記憶體控制RISC 3250然後設定ECC校正引擎3230以校正任何錯誤。加密模組3300可在此時解密該資料。ARC600微處理器3280然後接收一中斷且程式化ONFI HIM 3200中之暫存器組態模組3400以聲明該資料已就緒以被自DRAM 3220讀取。基於此資訊,ONFI HIM 3200自DRAM 3220讀取資料且將其儲存於資料FIFO 3370中。ONFI HIM 3200然後將一就緒信號發送至主機控制器以用信號通知該資料就緒以被讀取。
如上文提及,不同於其他HIM,一ONFI HIM自一主機控制器接收數個小大小之請求(例如,針對個別頁),以便要求ONFI HIM同時處置多個(例如,八個)讀取及寫入請求。以此方式,在ONFI HIM與具有其他HIM之主機控制器之間存在更多雙向通信。與通信中之此增加頻率一起的係用以處置多個讀取及寫入請求之更多並行處理。
圖13C及圖13D分別圖解說明用於讀取及寫入操作之一ONFI HIM之邏輯操作。首先轉至圖13C,此實施例之ONFI HIM 3480透過一ONFI匯流排3490自一主機控制器接收一讀取命令。ONFI HIM 3480可以一非同步或一源同步模式操作,且經由信號多工器3500、3530將該讀取命令傳達至一命令FIFO 3540。(ONFI HIM 3480可分別使用非同步及ONFI源同步組件3510、3520以一非同步模式及源同步模式使用)。ONFI HIM 3480亦將自主機控制器接收之位址儲存於一邏輯單元編號(「LUN」)位址FIFO 3550中。(此實施例中之NAND控制器支援被視為可由LUN位址定址之獨立實體之多個邏輯單元。)該命令及位址係自FIFO 3540、3550讀取至同步此等項之一命令及資料控制器3560中。命令及資料控制器3560然後將一中斷發送至系統暫存器控制器3570,系統暫存器控制器3570產生一中斷至ARC600微控制器。ARC600微控制器然後自系統暫存器控制器3570中之暫存器讀取LUN位址,且自快閃記憶體裝置讀取資料之過程係如上文所述。當將所有讀取資料寫入至DRAM時,ARC600微處理器程式化系統暫存器控制器3570中之狀態暫存器以通知ONFI HIM 3480該資料就緒以被讀取。ONFI HIM 3480然後使用讀取請求控制單元3585透過HDMA 3580讀取資料。將讀取資料儲存於針對每一LUN 3595分割之讀取資料FIFO 3590中。一旦完成,則將一就緒指示符儲存於狀態暫存器中,且使該資料流動至主機控制器。
現轉至圖13D,在一寫入操作中,透過一ONFI 3410匯流排自一主機控制器接收一寫入命令。ONFI HIM 3400經由信號多工器3420、3450將寫入命令傳達至一命令FIFO 3460。(ONFI HIM 3400可分別使用非同步及ONFI源同步組件3430、3440以一非同步模式及源同步模式使用)。ONFI HIM 3400亦將自主機控制器接收之位址儲存於一邏輯單元編號(「LUN」)位址FIFO 3470中。將自主機控制器接收之資料儲存於一寫入資料FIFO 3520。將命令及位址自FIFO 3460、3470讀取至同步此等項之一命令及資料控制器3480中。命令及資料控制器3480然後將一中斷發送至系統暫存器控制器3490,系統暫存器控制器3490產生一中斷至ARC600微控制器。ARC600微控制器然後自系統暫存器控制器3490中之暫存器讀取LUN位址,且根據一寫入操作設定控制器之過程係如上文所述。HDMA 3530具有與AHB匯流排3550通信之一AHB埠3540且將該資料發送至DRAM。CRC模組3545檢查該資料中之傳輸錯誤。一旦已將該資料儲存於快閃記憶體裝置330中且快閃記憶體裝置330指示程式化操作之就緒及狀態是成功還是失敗,則將一就緒指示符儲存於系統暫存器控制器3490中之狀態暫存器中,指示ONFI HIM 3400就緒用於來自主機控制器之另一命令。
返回至圖13A,NAND控制器300亦可處置程式化故障及抹除故障。在程式化附加至快閃記憶體介面模組3020(下文中稱FIM)之NAND快閃記憶體裝置330時,NAND記憶體裝置330將程式化操作之成功或失敗報告給NAND控制器300(或視情況透過主機介面模組3010(下文中稱HIM)報告給ONFI主機)。NAND記憶體裝置330由於NAND記憶體胞之缺陷或由於NAND記憶體胞就抹除及程式化循環而言之有限耐久性而在記憶體之期望壽命期間可經歷某一數目之程式化故障。
NAND記憶體裝置330將在程式化頁操作未成功完成時將一失敗(FAIL)狀態傳回至控制器300。控制器處理器3040(圖13A)或快閃記憶體協定序列器3430(圖13B)驗證每一程式化頁操作之成功或失敗。大體而言,任一單個程式化頁操作之故障將導致處理器3040(或視情況地,ONFI主機)將整個NAND區塊(其可含有多個頁)視為有缺陷。該有缺陷區塊將不再被使用。通常,控制器300將把尚未被成功程式化之資料及該有缺陷區塊中之前述頁中之任何資料複製至另一置換區塊(一備用區塊)。控制器300可使用FIM 3020、資料解擾碼器3190及ECC解碼器3170及在需要時應用ECC校正將前述頁讀取至BRAM 3050中。然後以正常方式使用FIM 3020將該資料寫入至該置換區塊中。
程式化故障之一個態樣係,程式化一個頁之一故障可破壞先前被程式化之另一頁中之資料。通常,針對在實體上組織有在記憶體陣列中共用一字線之上部邏輯頁及下部邏輯頁之MLC NAND記憶體,此係可能的。一典型使用將係把資料程式化至一下部頁中且將接續資料程式化至上部頁中。當在字線上程式化上部頁時出現一程式化故障時防止下部頁中之資料損失之一個方法係在程式化上部頁之前讀取下部頁資料。該下部頁資料可被讀取至控制器BRAM 3050中,且可額外地被程式化至非揮發性快閃記憶體裝置330中之一暫存區中(有時稱為一「安全區」)。因此保留於BRAM 3050或安全區中之資料將隨之避免由於一程式化故障所致之損失,且尤其地在其中在NAND記憶體裝置330之下部頁中被破壞且不能再被成功讀取之情形中將可用於被複製至置換區塊。
某些NAND故障模式可能可類似地破壞記憶體陣列之其他區(諸如在毗鄰字線上)中之資料。將其他潛在脆弱資料讀取至控制器BRAM 3050中及/或將該資料保存於一暫存或安全區中之此方法亦可用於在此等環境中保護資料。
在抹除附加至FIM 3020之NAND快閃記憶體裝置330時,NAND記憶體裝置330將區塊抹除操作之成功或失敗報告給NAND控制器300(或視情況透過HIM 3010報告給ONFI主機)。當該抹除操作未成功完成時NAND記憶體裝置330將把一失敗(FAIL)狀態傳回至控制器300。快閃記憶體協定序列器3430中之控制器處理器3040或電路驗證每一抹除操作之成功或失敗。大體而言,任一抹除操作之故障將致使處理器3040(或ONFI主機)將整個NAND區塊視為有缺陷。該有缺陷區塊將不再被使用且將一備用區塊用於其位置處。
NAND控制器300亦可在快閃記憶體裝置內處置程式化干擾、抹除干擾及讀取干擾。
內部NAND程式化操作可能影響或干擾記憶體陣列之其他區,致使在嘗試讀取彼等其他區時之錯誤。避免程式化干擾故障之一個方法係與程式化操作結合地對潛在脆弱區執行讀取或「讀取清理」操作,以便在干擾效應變為不可校正或不可恢復錯誤之前偵測到該等干擾效應。一旦偵測到一干擾條件(藉由讀取清理操作期間之高軟錯誤率),控制器處理器3040(或外部ONFI主機)可將該資料複製至快閃記憶體裝置330中之另一區。
該等內部NAND抹除操作可能影響或干擾記憶體陣列之其他區,致使在嘗試讀取彼等其他區時之錯誤。避免抹除干擾故障之一個方法係與抹除操作結合地對潛在脆弱區執行讀取或「讀取清理」操作,以便在干擾效應變為不可校正或不可恢復錯誤之前偵測到該等干擾效應。一旦偵測到一干擾條件,控制器處理器3040(或外部ONFI主機)可將該資料複製至快閃記憶體裝置330中之另一區。
內部NAND讀取操作可能影響或干擾記憶體陣列之其他區,致使在讀取彼等其他區時之錯誤。干擾效應有時可在多次讀取操作上累積。避免程式化干擾故障之一個方法係與讀取操作結合地對潛在脆弱區執行讀取或「讀取清理」操作,以在干擾效應變為不可校正或不可恢復錯誤之前偵測到該等干擾效應。一旦偵測到一干擾條件,則控制器處理器3040(或外部ONFI主機)可將該資料複製至快閃記憶體裝置330中之另一區。
現參照圖13A,NAND控制器300以下述方式處置讀取錯誤。通常,透過FIM 3020程式化至NAND記憶體裝置330中之資料具有附加於該資料且與該資料一起儲存於NAND陣列中之一錯誤偵測碼或錯誤校正碼。控制器300出於此功能而使用ECC編碼器3160。當將此資料自快閃記憶體陣列讀取至BRAM 3050時,ECC解碼器3170自該資料重新產生ECC碼且比較其與在被程式化至快閃記憶體時附加至該資料之ECC碼。在該資料與被寫入之資料一致之情況下,ECC電路指示不存在任何資料錯誤。當在所讀取資料中偵測到某些不同且該不同足夠小以在ECC可校正之能力範圍內之情況下,「校正」或修改所讀取資料(通常含有於BRAM 3050中)以由處理器3040控制時由ECC校正引擎3060將其重新儲存為原始值。在該資料錯誤超出ECC校正能力範圍之情況下,發生一「不可校正」讀取錯誤。通常,一不可校正讀取錯誤將導致在讀取時將一錯誤狀態傳回至主機介面。
防止不可校正讀取錯誤或在偵測到一錯誤時恢復之一種方法係針對控制器300(或外部ONFI主機)重試該讀取操作。該重試可使用移位之邊際位準或其他機制以減少資料內之錯誤,可能消除錯誤或將錯誤數目減少至在ECC校正能力內之一位準。
視情況地,在恢復一讀取錯誤時,或在恢復該資料所需之ECC校正量滿足或超出某一臨限值時,該資料可被重新寫入至同一區塊或另一區塊以將該資料復原至一無錯誤或改良條件。該原始資料位置可視情況地被視為有缺陷的,於此情形下其可被標記為有缺陷且不再被使用。
再次參照圖13A,NAND控制器300亦可處置寫入中止。寫入中止係在一程式化或抹除操作在發展中時對控制器300及NAND記憶體裝置330之非期望功率損失。該功率損失可導致NAND記憶體裝置330中之不完整程式化或抹除條件,其可導致不可校正讀取錯誤。於某些情形中,諸如藉助MLC NAND,可藉由對一字線之上部頁之一被中止之程式化操作(類似於上文所述之程式化故障條件)破壞共用一字線之其他頁(亦即,一下部頁)。
存在用以減小或消除寫入中止錯誤或最小化其衝擊之數個方法。一種方法係使用一低電壓偵測電路通告處理器3040該電力已被中斷。處理器3040然後可允許當前程式化或抹除操作完成但不允許新操作開始。理想地,當前操作將具有足夠時間及充足電力來完成。
一替代方法(可能與低電壓偵測方法結合地使用)係將電容或一電池(或某一替代電力供應源)添加至電力供應電路以擴充可用於完成程式化或抹除操作之電力。
另一方法係提供類似於上文所述之一暫存「安全區」。在上部頁程式化開始之前,存在於下部頁中之在一上部頁程式化期間可係脆弱的之任何「老」資料可被讀取及保存於安全區中。其將在一電力損失事件之情形中提供對先前程式化資料之保護。於某些實施方案中,不能讀取在一寫入中止情形中被破壞之資料係可接受的,但必須保護其他可能不相關之較老資料。
另一方法係在該控制器被接通時搜尋潛在寫入中止錯誤。在發現可被判定(或假設)為一寫入中止之一結果之一錯誤之情況下,可丟棄該錯誤資料。於此情形中,控制器300有效地回復至先前資料,且被中斷之操作係如其未發生一般。
再次參照圖13A,NAND控制器300亦可對記憶體引導損耗平均。損耗平均係一種藉由在所有實體區塊之間更均衡地分佈區塊使用(否則將以正常快閃記憶體管理演算法之一結果出現)來增加總產品耐久力及使用壽命之方法。此係藉由將「冷」區塊迫使至備用區塊池(該「冷」區塊又將用於主機資料更新)且同時將資料自「冷」區塊(尚未由主機更新)移至一「熱」區塊來完成。此調換將導致混合「熱」及「冷」區塊。該調換可係隨機地或循環地為該調換選擇區塊或基於一熱計數(程式化-抹除循環之數目)分析來選擇區塊而完成。該調換可週期性地(即在每100個區塊循環中)完成,通常由一系統參數校準以在總系統效能與區塊使用之均等之間平衡以平衡損耗及效能額外負擔。
一實例性高位準序列係:
1. 排程損耗平均操作。
2. 藉由熱計數分析或基於隨機或循環來識別「熱」及「冷」區塊。
3. 將資料自選定「冷」區塊複製至自由區塊池中之選定「熱」自由區塊。
4. 將「冷」區塊釋放至自由區塊池。結果,該自由區塊池由一冷區塊代替一熱區塊佔據。
諸如基於分析之區塊選擇之某些操作可被跳過。在區塊損耗分佈被偵測為均等之情況下,損耗平均操作本身亦可被跳過。
損耗平均操作及熱計數管理係由處理器3040在韌體中執行,以便熱控制器121(圖3)將不知曉此等內務快閃記憶體區塊位準操作。
參照圖13A,控制器300亦可在偵測到一讀取干擾時對快閃記憶體裝置330實施讀取清理。對快閃記憶體裝置330內之NAND記憶體陣列之一個區之讀取操作可影響或干擾記憶體陣列之其他區,致使胞自一個狀態移位至另一狀態,且最終致使在嘗試讀取先前儲存至彼等其他區之資料時的位元錯誤。該等干擾效應可在多次讀取操作上累積,最終導致可超出系統之資料校正能力範圍之一位元錯誤數目。超出該系統校正能力範圍之錯誤係稱為不可校正錯誤。避免程式化干擾故障之一種方法係對潛在脆弱區執行讀取或「清理」操作,以在干擾效應變為不可校正或不可恢復錯誤之前偵測到干擾效應。一旦偵測到一干擾條件(通常藉由偵測在所讀取資料上存在大量錯誤位元),處理器3040可大致藉由將該資料複製至NAND記憶體陣列之另一區來將該資料移動至記憶體中之另一區以「再新」該資料。
讀取清理複製通常係由ECC校正引擎3060可發現之可校正ECC錯誤觸發(圖13A),在一主機讀取操作、一內部系統讀取操作之進程期間的區塊讀取中,或藉由一經排程讀取清理掃描。系統讀取操作係由快閃記憶體儲存系統讀取儲存於NAND快閃記憶體中之韌體、參數或映射資訊所需之彼等操作。讀取清理掃描係一區塊中之用以判定是否已干擾其間含有之任何資料之所有資料之一讀取。區塊係通常在一主機讀取或系統讀取操作之進程期間已部分地讀取該等區塊時選擇用於一讀取清理掃描,但亦可使用其他標準(諸如隨機地)或經由透過記憶體區塊之判定性排序來選擇。由於一讀取清理掃描操作花費時間且影響系統之資料通量,該系統可藉由使用一隨機選擇、一計數器或其他機構來選擇僅週期性地或不頻繁地用於讀取清理掃描之區塊。排程頻率可經校準以在系統效能需要與在被干擾資料變得不可校正之前偵測到該等資料所需之頻率之間平衡。在偵測到具有高於一預定臨限值之某一錯誤位元數目之一可校正錯誤時,針對該區塊排程該讀取清理複製。
讀取清理複製係一種藉以在具有可校正ECC錯誤之所有資料之校正之後自被干擾區塊讀取資料且將其寫入至另一區塊之方法。然後可將原始區塊傳回至共同自由區塊池且最終藉助其他資料抹除及寫入。讀取清理掃描及讀取清理複製排程將由處理器3040在韌體中之NAND控制器300中完成,以便主機控制器121將不知曉此等內務快閃記憶體區塊位準操作。
與執行一複製回復命令有關之實施例
如在上文之背景區段中闡述,藉助一典型複製回復操作,一NAND快閃記憶體裝置自其非揮發性記憶體中之一源位址讀取資料且至一內部暫存器中,且然後將該資料自該暫存器寫入至該非揮發性記憶體中之一目的地位址中。由於該NAND快閃記憶體裝置不對其在一複製回復操作中內部移動之資料執行錯誤校正碼(ECC)操作,因此存在於該資料中之任何錯誤將被傳播。於此等實施例中,介接於一主機與一或多個NAND快閃記憶體裝置之間的一控制器用於提供ECC功能及其他最佳化以克服此等問題。儘管可使用任一適合架構,但此等實施例將與圖3中顯示之架構結合地來闡述。(應注意,不應將NAND介面之使用與來自圖3之其他細節及對應論述視為在申請專利範圍內,除非其中明確陳述)。於此實施例中,圖3中之控制模組340採取操作以執行圖14中顯示之行動之電路的形式。如本文使用,舉例而言,「電路」可採取一微處理器或處理器及儲存可由該(微)處理器執行之電腦可讀程式化碼(例如,軟體或韌體)之一電腦可讀媒體、邏輯閘、開關、一專用積體電路(ASIC)、一可程式化邏輯控制器、及一嵌入式微控制器中之一或多者之形式,如上文論述及圖解說明。
現轉至圖14中之流程圖1400,控制器300自主機320接收一源位址及一複製回復讀取命令(行動1410)。然後控制器300將該源位址及複製回復讀取命令發送至快閃記憶體裝置330(行動1420)。回應於此命令,快閃記憶體裝置330自其非揮發性記憶體中之源位址讀取資料且將該資料寫入至一內部暫存器中,該內部暫存器可係在非揮發性記憶體中或快閃記憶體裝置330中之某一其他位置中。(術語「暫存器」、「快閃記憶體」及「緩衝器」係在本文中可互換地使用)。接下來,控制器300自快閃記憶體裝置330接收該資料及與該資料相關聯之錯誤校正碼(行動1430),且自主機320接收一目的地位址及一複製回復程式化命令(行動1440)。然後控制器300判定該錯誤校正碼是否指示在資料中存在一錯誤(行動1450)。在該錯誤校正碼不指示在資料中存在一錯誤之情況下,控制器300將該目的地位址及該複製回復程式化命令發送至快閃記憶體裝置330(行動1460),回應於此快閃記憶體裝置330自該暫存器讀出該資料且將該資料寫入至目的地位址。然而,在該錯誤校正碼指示在該資料中存在一錯誤之情況下,控制器300校正該資料(舉例而言,使用上文所述之ECC校正技術)且將目的地位址、經校正資料及一程式化命令發送至快閃記憶體裝置330(行動1470)。
存在與此等實施例相關聯之數個優勢。舉例而言,不同於其中NAND快閃記憶體在不檢查ECC之前提下複製資料(因此傳播任何錯誤)之先前複製回復操作,在此等實施例處,控制器300檢查及校正錯誤,因此改良資料之可靠性。而且,藉由在控制器300未偵測到一錯誤之情況下允許NAND快閃記憶體裝置繼續其正常複製寫入操作來最佳化效能,乃因控制器300由於NAND快閃記憶體裝置已具有其需要之資料而無需花費時間或頻寬經由NAND介面將相同資料發送回至NAND快閃記憶體裝置。
於一個實施例中,上述功能係使用類似於在ONFI 2.0說明書之頁122至124上界定之複製回復功能之一命令及位址序列來實施。舉例而言,參照圖3及專用ONFI命令,主機320將經由第一介面325將一讀取命令(x'00')後跟源位址及一x'35'複製回復讀取命令發送至控制器300。控制器300將經由第二介面335將同一讀取命令、源位址及x'35'複製回復讀取命令發送至快閃記憶體裝置330。此將導致快閃記憶體裝置330將資料自其NAND陣列讀取至NAND晶粒上之一暫存器中,且經由第二介面335將該資料傳送至控制器300中之BRAM 3050中(見圖13A)。控制器300將執行如上文所述之ECC校正。視情況地,亦可經由第一介面325將該資料傳送至主機320。
在完成該讀取之後,主機320將經由第一介面325將一複製回復程式化命令(x'85')後跟目的地位址及一x'MM'命令發送至控制器300,其中x'MM'係任一未使用之命令碼。(視情況地,此操作序列可能已由一不同複製回復程式化命令(除x'35'及x'00'或複製回復程式化命令x'85'外之某一命令)用信號通知)。現在控制器300可相依於是否已做出一ECC校正來採取兩個動作中之一者。在不存在ECC校正之情況下,控制器300將經由第二介面335將一複製回復寫入命令與目的地位址及一x'10'命令一起發送至快閃記憶體裝置330,因此避免將該資料發送回至快閃記憶體裝置之額外傳送時間。然而,在存在一可校正ECC錯誤之情況下,控制器300將經由第二介面235將一正常程式化命令(與經校正資料一起)x'80'與目的地位址及一x'10'命令一起發出至快閃記憶體裝置330。在完成此等命令中之任一者之後,控制器300可經由第一介面325對主機320用信號通知完成。
存在可與此等實施例一起使用之諸多替代方案。舉例而言,在一個替代方案中,將資料自相同快閃記憶體晶粒或邏輯單元(LUN)中之一個平面複製至另一平面。於此替代方案中,源位址及目的地位址可係在不同平面中,其中主機320選擇一不同平面(例如,在ONFI中之一不同交插位址)。當該暫存器係共用於不同平面之間時,可使用如上文所述之方法。然而,在不存在一共用暫存器之情況下,較佳地可執行行動1470,即使錯誤校正碼不指示該資料中之一錯誤。
在另一替代方案中,將該資料自一個晶粒或LUN複製至另一晶粒或LUN。上文所述方法大致用於此處,但於此替代方案中,主機可將一讀取狀態增強命令發出至源LUN以唯一地識別該資料來自何處(在多個複製回復讀取可由不同源LUN並行處理之情況下,應選擇該複製回復寫入操作之源)。而且,針對該複製回復程式化命令,主機320可選擇一目的晶粒或LUN。由於先前複製回復讀取之控制器儲存內容可係與LUN或晶粒相關聯,因此此亦可包含使得源LUN或晶粒與目的LUN或晶粒忙碌,乃因LUN或晶粒二者可能在完成此命令序列之前不能處理其他命令。而且,藉助上文提及之替代方案,當在LUN或晶粒之間不存在一共用暫存器之情況下,即使錯誤校正碼不指示該資料中之一錯誤,仍可較佳地執行行動1470。在此等替代方案中之任一者中,亦可使用一或多個新的及唯一的命令碼以進一步指定此等操作係跨平面、跨LUN或跨晶粒的。作為再一替代方案,可不藉助ECC校正而在不同平面及/或不同LUN(或晶粒)上執行複製回復讀取及寫入。控制器300之使用啟用此操作,乃因在ONFI 2.0說明書中,一頁暫存器係專用於每一平面。
在再一替代方案中,在其中複製發生於相同平面及相同晶粒中之情況下,複製回復讀取及複製回復寫入之正常使用仍可用於不藉助ECC校正而將資料傳送至快閃記憶體裝置中之內部暫存器及自其傳送出。然而,藉由指定一設定或獲取特徵命令中之一唯一(例如,供應商保留)欄位,可將複製回復讀取/複製回復寫入之預設行為設定為自動地進行自快閃記憶體裝置至控制器300之BRAM中之傳送以執行上文所述ECC校正及其他操作。以此方式,轉換一位元可允許控制器300視情況地以任一模式操作。舉例而言,在一個實施例中,可將一供應商唯一命令添加至ONFI或TM,ONFI或TM允許主機320將此一命令作為(舉例而言)頁管理或損耗平均之部分發出。其他可能性包含將一額外位元添加至指定複製回復功能通常如何工作之參數頁中、使用可視情況地啟用或停用此模式之一設定特徵命令、及界定指示應執行檢查及校正之一新第二命令位元組(例如,替代ONFI複製回復功能中之x35之xNN之一第二命令位元組)。
另一替代實施例與對複製回復資料之資訊(例如,標頭)之修改(例如,改變或添加)之ECC使用有關。於某些情況下,在複製回復操作期間改變資料。舉例而言,ONFI 2.0說明書之頁122至126論述一主機之藉由發出一改變讀取行命令來改變一頁之一部分(諸如標頭欄位)之能力。然而,其並不提供藉助任一錯誤檢查或校正來如此做之一方式,因此忽略在標頭中遭遇之任何錯誤。而且,存在在先前段落中論述之實施例中之情況,其中控制器300(除主機320外或代替主機320)可能想要改變資料之標頭資訊或另一部分。舉例而言,考量在將控制器300用於其中將資料複製至不同平面或晶粒之一複製回復操作中之情況(例如,在其中區塊及頁之源地及目的地不可能在同一晶粒或平面內之一廢料收集/收回功能中)。於此一情形中,控制器300可針對正被複製之資料之區塊或頁產生標頭資訊。標頭資訊之實例包含但不限於SATA LBA位址(亦即,邏輯位址)、類型欄位(例如,資料對控制)、實體開始位址、一前端位址區塊分組(F群組)中之偏移、資料之運行長度(其可需要在被分解為兩個較小運行之情況下被修改)及一耐久性標籤(亦即,對損耗平均或讀取清理之需要之一指示)。
於此實施例中,控制器300產生ECC位元以在一複製回復操作中覆蓋經修改資料。現將參照圖15中之流程圖1500來論述此實施例。首先,控制器300自主機320接收一源位址及一複製回復讀取命令(行動1510),且將該源位址及複製回復讀取命令發送至快閃記憶體裝置330(行動1520)。控制器300然後自快閃記憶體裝置320接收資料(行動1530)且修改所接收資料(行動1540)。接下來,控制器330針對經修改資料產生錯誤校正碼位元(行動1550)。在控制器330自主機320接收一目的地位址及一複製回復程式化命令時(行動1560),其將目的地位址、具有錯誤校正碼位元之經修改資料及一程式化命令發送至快閃記憶體裝置330(行動1570)。
在另一實施例中,控制模組340可產生對主機控制器321透明之經修改資料中之某些(代替其來自主機控制器321)。控制模組340將通常在其正進行壞區塊管理之情況下修改標頭資料中之某些。舉例而言,其可將邏輯區塊位址及耐久性(或循環計數)資料儲存於標頭欄位中。在控制模組340由於處置來自一寫入錯誤之讀取清理或回復而需要重新定位一區塊時,舉例而言,其可將該區塊複製至一不同實體區塊且需要更新標頭欄位中之某些值。該操作將如上文所述繼續,其中控制器300自快閃記憶體裝置320讀取,修改該資料,且針對經修改資料產生一錯誤校正碼。
相應地,此實施例實現不同平面、晶粒及LUN之間的複製,以及校正ECC錯誤,視情況地包含或重新產生經控制器300或主機320自動地修訂之標頭欄位。如上文,此實施例之功能性可以任一適合方式觸發,諸如但不限於經由該參數頁中之指定複製回復功能總是起作用之一額外位元、經由可視情況地啟用或停用詞模式之一設定特徵命令、或經由指示檢查及校正之一新界定之第二命令位元組(例如,代替ONFI x35命令之ONFI xNN命令之一第二命令位元組)。
應注意,上文提及之源位址及/或目的地位址可係實體位址,或其等可係由控制器300映射至實體位址之邏輯位址。而且,該位址可係一位址範圍(例如,「from_sector」及「to_sector」),或該命令可指定自開始位址起處置之一資料量(例如,磁區數目)。另一選擇係,可估算將自一既定位置起處置之資料量,以便將無需指定將處置之一資料量(例如,在其中NAND快閃記憶體裝置330基於一單個磁區或單個頁操作之情形中)。
而且,應注意,在一複製回復操作之後,在源位址處之原始資料可維持或可不維持於該源位址處。亦即,於此等實施例中,「複製」可係指通常被稱為一「複製」之含義(例如,原始資料在該操作完成之後維持於源位址處)。然而,「複製」亦可係指通常被稱為一「移動」之含義(例如,原始資料在該複製回復操作之後維持於源位址處)。於一個實施例中,該複製回復命令本身指定在原位置處之資料之一移位。舉例而言,該命令可包括指定在源位置處之資料之部署之一參數(例如,在該命令串中之一旗標)。於另一實施例中,在源位置處之資料之部署係暗示於該命令之簡圖中。舉例而言,可界定一「COPY_SECTORS」命令以便該命令本身之語意暗示資料之原始磁區在將該資料寫入至目的地位置之後將維持不被干擾。類似地,可界定一「MOVE_SECTORS」命令以便該命令本身之語意暗示在將該資料寫入至目的地位置之後將採取某一動作(例如,邏輯地刪除源磁區中之該資料)。
如上文提及,在源位址處之該資料之部署可採取各種形式。舉例而言,一種類型之部署係將資料以現況留於源位置處。此類型之部署與通常被視為一「複製」操作之操作一致,乃因在源位置處之資料保留完整。另一類型之部署係實體地抹除(例如,作為一簡單的一遍式抹除或作為一多遍式安全抹除)在源位置處之資料(例如,藉由用若干個零覆寫在源位置處之資料)。此類型之部署與通常被視為一「移動」或「剪切-黏貼」操作之操作一致,乃因在源位置處之資料被移除。此類型之部署在安全環境中可係較佳的,其中期望避免遺留下資料「殘餘」。再一類型之部署係邏輯地刪除在源位置處之資料,其係稱為「修整(trimming)」。藉助此類型之部署,在源位置處之資料並未被實體地抹除,但針對一分配表或檔案之元資料中之該資料之一條目係標記為已刪除、無效或未寫入。以此方式,經修整之磁區可在一廢料收集循環中被忽略,因此其等不必被移除。由於在該位置處之該資料並未被實體地抹除,因此其可稍後被收回(若期望)。儘管在某些類型之記憶體裝置(諸如固態驅動器或其他類型之快閃記憶體裝置)中可使用刪除或修整,但修整可能並非在不具有一分配表之記憶體裝置(諸如硬碟驅動器)處之一可用選項。作為部署類型之再一實例,一命令可指示在該源位置處之該資料之一「任意值(don't care)」條件。關於在此等實施例中可使用之額外變化形式之進一步資訊可見於美國專利申請案第12/338,378號及第12/544,529號中,其等以引用方式併入本文中。
結論
意欲將前述詳細說明理解為對本發明可採取之選定形式之一圖解說明而非對本發明之一界定。本發明之範圍僅將由以下申請專利範圍(包含所有等效內容)來界定。而且,以下請求項中之某些可陳述一組件操作以執行某一功能或組態用於某一任務。應注意,此等並非限制性限定。亦應注意,申請專利範圍中所陳述之行動可以任何次序執行,未必以對其進行陳述之次序執行。
100...控制器
120...主機
121...主機控制器
125...第一介面
130...快閃記憶體裝置
135...第二介面
140...控制模組
150...額外模組
200...控制器
230...快閃記憶體裝置
260...封裝
270...封裝
280...共同多晶片封裝
290...相同晶粒
300...控制器
320...主機
321...主機控制器
325...主機側NAND介面
330...NAND快閃記憶體裝置
335...快閃記憶體側介面
340...控制模組
350...額外模組
400...控制器
420...主機
421...主機控制器
425...第一NAND介面
430...快閃記憶體裝置
435...第二NAND介面
440...控制模組
450...錯誤偵測碼模組
460...錯誤校正碼模組
700...控制器
720...主機
721...主機控制器
725...第一NAND介面
730...快閃記憶體裝置
735...第二NAND介面
740...控制模組
750...錯誤校正碼模組
760...狀態模組
770...備用區塊管理模組
800...資料傳送格式
802...標頭
804...資料有效負載區段
806...狀態位元
800'...資料傳送格式
802'...標頭
804'...資料有效負載區段
806'...狀態位元
808...資料傳送格式
810...標頭
812...資料有效負載區段
814...狀態區段
816...欄位
808'...資料傳送格式
810'...標頭
812'...資料有效負載區段
814'...狀態區段
816'...欄位
1200...快閃記憶體裝置
1210...白色區塊
1220...黑色區塊
1230...好區塊
1240...最小備份
1250...額外備份
1260...壞區塊
3010...主機介面模組
3020...快閃記憶體介面模組
3030...中央匯流排
3040...處理器
3050...緩衝器隨機存取記憶體
3060...錯誤校正碼校正引擎
3070...加密模組
3080...先進先出模組
3090...控制單元
3100...循環冗餘檢查模組
3110...命令暫存器
3120...位址暫存器
3130...主機直接記憶體存取單元
3140...命令暫存器
3150...位址暫存器
3160...錯誤校正碼編碼模組
3170...錯誤校正碼解碼模組
3180...資料擾碼器
3190...資料解擾碼器
3200...開放NAND快閃記憶體介面主機介面模組
3210...唯讀記憶體
3220...動態隨機存取記憶體
3230...錯誤校正碼校正引擎
3240...磁阻式隨機存取記憶體
3250...快閃記憶體控制RISC
3260...快閃記憶體介面模組
3270...多層矩陣匯流排
3280...ARC600微處理器
3285...內建快取
3290...磁阻式隨機存取記憶體
3300...加密模組
3310...先進周邊匯流排橋接器
3320...中斷控制器
3330...先進周邊匯流排
3340...時鐘/重設管理模組
3350...開放NAND快閃記憶體介面介面
3360...命令先進先出模組
3370...資料先進先出模組
3380...資料控制器
3390...先進周邊匯流排介面
3400...暫存器組態模組
3410...主機直接記憶體存取模組
3415...循環冗餘檢查模組
3420...先進高速匯流排埠
3430...快閃記憶體協定序列器
3440...快閃記憶體直接記憶體存取模組
3450...錯誤偵測碼模組
3460...NAND介面
3470...擾碼器/解擾碼器
3480...開放NAND快閃記憶體介面主機介面模組
3490...開放NAND快閃記憶體介面匯流排
3500...信號多工器
3510...非同步組件
3520...開放NAND快閃記憶體介面源同步組件
3530...信號多工器
3540...命令先進先出模組
3550...邏輯單元編號位址先進先出模組
3560...命令及資料控制器
3570...系統暫存器控制器
3580...主機直接記憶體存取
3585...讀取請求控制單元
3590...讀取資料先進先出模組
3595...預取控制單元
圖1係包括一控制器、一主機、及一或多個快閃記憶體裝置之一實施例之一系統之一方塊圖。
圖2A、圖2B及圖2C係圖解說明一實施例之一控制器及快閃記憶體裝置之不同配置之方塊圖。
圖3係一實施例之一實例性控制器之一方塊圖。
圖4係用於將資料寫入至快閃記憶體裝置及自快閃記憶體裝置讀取資料之一實施例之一控制器之一方塊圖。
圖5係一種用於使用一實施例之一控制器在一快閃記憶體裝置中寫入資料之方法之一流程圖。
圖6係一種用於使用一實施例之一控制器自一快閃記憶體裝置讀取資料之方法之一流程圖。
圖7圖解說明組態用於提供讀取狀態及備用區塊管理控制之一實施例之一控制器配置。
圖8A、圖8B、圖8C及圖8D係可由圖7之控制器產生之資料訊息格式之實例。
圖9係可用於在圖8C之資料訊息格式中使用之資料欄位之一實施例。
圖10係一種用於使用圖7之控制器將狀態資訊提供給一主機之一實施例之方法之一流程圖。
圖11係圖解說明使用圖7之控制器管理備用區塊之一個實施例之一流程圖。
圖12A及圖12B係在一實例性快閃記憶體裝置內之好區塊區、壞區塊區及備用區塊區之圖解說明。
圖13A至圖13D係一實施例之實例性控制器之方塊圖。
圖14係一種用於執行一複製回復操作之一實施例之方法之一流程圖。
圖15係一種用於執行其中資料經修改之一複製回復操作之一實施例之方法之一流程圖。
100...控制器
120...主機
121...主機控制器
125...第一介面
130...快閃記憶體裝置
135...第二介面
140...控制模組
150...額外模組

Claims (25)

  1. 一種用於執行一複製回復(copy-back)命令之方法,該方法包括:在與一主機及至少一個快閃記憶體裝置通信之一控制器中執行:自該主機接收一源位址及一複製回復讀取命令;將該源位址及該複製回復讀取命令發送至該至少一個快閃記憶體裝置,其中回應於接收該源位址及該複製回復讀取命令,該至少一個快閃記憶體裝置自該源位址讀取資料,並將該資料寫入在該至少一個快閃記憶體裝置中的一暫存器(register)中;接收儲存在該源位址的資料及與自該至少一個快閃記憶體裝置所接收之資料相關聯之一錯誤校正碼;判定該錯誤校正碼指示在該資料中沒有錯誤;修改(modifying)該所接收的資料,該修改改變或增加資訊,而非校正錯誤;針對來自該至少一個快閃記憶體裝置之經修改資料產生錯誤校正碼位元;自該主機接收一目的地位址及一複製回復程式化命令;及將該目的地位址、具有該等錯誤校正碼位元之該經修改資料及一程式化命令發送至該至少一個快閃記憶體裝置。
  2. 如請求項1之方法,其中該源位址及目的地位址係用於 該至少一個快閃記憶體裝置中之一者中之不同記憶體平面。
  3. 如請求項2之方法,其中該至少一個快閃記憶體裝置中之該暫存器係共用於該等不同平面。
  4. 如請求項1之方法,其中該源位址及目的地位址係用於不同快閃記憶體裝置。
  5. 如請求項1之方法,其中該源位址及該目的地位址係實體位址。
  6. 如請求項1之方法,其中該源位址及該目的地位址係邏輯位址,且其中該方法進一步包括使用該控制器將該等邏輯位址轉譯成實體位址。
  7. 如請求項1之方法,其中該控制器經由一第一介面與該主機通信,且經由一第二介面與該至少一個快閃記憶體裝置通信。
  8. 如請求項7之方法,其中該第一介面及該第二介面中之至少一者包括經組態以使用一NAND介面協定傳送資料之一NAND介面。
  9. 如請求項1之方法,其中由該控制器修改該資料。
  10. 如請求項1之方法,其中由該主機修改該資料。
  11. 如請求項1之方法,其中該修改對該資料的一標頭(header)改變或增加資訊。
  12. 如請求項11之方法,其中該修改對該標頭中的下列一或多者改變或增加資訊:一邏輯區塊位址、一類型欄位、一實體開始位址、一前端位址區塊分組(grouping)、該資 料之一運行(run)長度及一耐久性標籤(endurance tag)。
  13. 一種用於執行一複製回復命令之方法,該方法包含:在與一主機及至少一個快閃記憶體裝置通信之一控制器中執行:自該主機接收一源位址及一複製回復讀取命令;將該源位址及該複製回復讀取命令發送至該至少一個快閃記憶體裝置;針對來自該至少一個快閃記憶體裝置之經修改的資料產生錯誤校正碼位元;自該主機接收一目的地位址及一複製回復程式化命令;及將該目的地位址、具有該等錯誤校正碼位元之該經修改的資料及一程式化命令發送至該至少一個快閃記憶體裝置;其中該源位址及目的地位址係用於該至少一個快閃記憶體裝置之一者中的記憶體之不同平面(planes);及其中該至少一個快閃記憶體裝置中的暫存器並非在該等不同平面間共用(share)。
  14. 一種控制器,其包括:一第一介面,其經組態以在一主機與該控制器之間傳送資料;一第二介面,其經組態以在該控制器與至少一個快閃記憶體裝置之間傳送資料;及電路,其操作以: 自該主機接收一源位址及一複製回復讀取命令;將該源位址及該複製回復讀取命令發送至該至少一個快閃記憶體裝置,其中回應於接收該源位址及該複製回復讀取命令,該至少一個快閃記憶體裝置自該源位址讀取資料,並將該資料寫入在該至少一個快閃記憶體裝置中的一暫存器中;接收儲存在該源位址的資料及與自該至少一個快閃記憶體裝置所接收之資料相關聯之一錯誤校正碼;判定該錯誤校正碼指示在該資料中沒有錯誤;修改該所接收的資料,該修改改變或增加資訊,而非校正錯誤;針對來自該至少一個快閃記憶體裝置之經修改資料產生錯誤校正碼位元;自該主機接收一目的地位址及一複製回復程式化命令;及將該目的地位址、具有該等錯誤校正碼位元之該經修改資料及一程式化命令發送至該至少一個快閃記憶體裝置。
  15. 如請求項14之控制器,其中該源位址及目的地位址係用於該至少一個快閃記憶體裝置中之一者中之不同記憶體平面。
  16. 如請求項15之控制器,其中該至少一個快閃記憶體裝置中之該暫存器係共用於該等不同平面。
  17. 如請求項14之控制器,其中該源位址及目的地位址係用 於不同快閃記憶體裝置。
  18. 如請求項14之控制器,其中該源位址及該目的地位址係實體位址。
  19. 如請求項14之控制器,其中該源位址及該目的地位址係邏輯位址,且其中該電路進一步操作以使用該控制器將該等邏輯位址轉譯成實體位址。
  20. 如請求項14之控制器,其中該第一介面及該第二介面中之至少一者包括經組態以使用一NAND介面協定傳送資料之一NAND介面。
  21. 如請求項14之控制器,其中該資料係由該控制器修改。
  22. 如請求項14之控制器,其中該資料係由該主機修改。
  23. 如請求項14之控制器,其中該修改對該資料的一標頭改變或增加資訊。
  24. 如請求項23之控制器,其中該修改對該標頭中的下列一或多者改變或增加資訊:一邏輯區塊位址、一類型欄位、一實體開始位址、一前端位址區塊分組、該資料之一運行長度及一耐久性標籤。
  25. 一種控制器,其包含:一第一介面,其經組態以在一主機與該控制器之間傳送資料;一第二介面,其經組態以在該控制器與至少一個快閃記憶體裝置之間傳送資料;及電路,其操作以:自該主機接收一源位址及一複製回復讀取命令; 將該源位址及該複製回復讀取命令發送至該至少一個快閃記憶體裝置,其中回應於接收該源位址及該複製回復讀取命令,該至少一個快閃記憶體裝置自該源位址讀取資料,並將該資料寫入在該至少一個快閃記憶體裝置中的一暫存器中;針對來自該至少一個快閃記憶體裝置之經修改的資料產生錯誤校正碼位元;自該主機接收一目的地位址及一複製回復程式化命令;及將該目的地位址、具有該等錯誤校正碼位元之該經修改的資料及一程式化命令發送至該至少一個快閃記憶體裝置;其中該源位址及目的地位址係用於該至少一個快閃記憶體裝置之一者中的記憶體之不同平面;及其中該至少一個快閃記憶體裝置中的該暫存器並非在該等不同平面間共用。
TW099143836A 2009-12-30 2010-12-14 用於執行一複製回復操作之方法及控制器 TWI514403B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/650,263 US8443263B2 (en) 2009-12-30 2009-12-30 Method and controller for performing a copy-back operation

Publications (2)

Publication Number Publication Date
TW201135746A TW201135746A (en) 2011-10-16
TWI514403B true TWI514403B (zh) 2015-12-21

Family

ID=44168955

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099143836A TWI514403B (zh) 2009-12-30 2010-12-14 用於執行一複製回復操作之方法及控制器

Country Status (6)

Country Link
US (2) US8443263B2 (zh)
EP (1) EP2519879B1 (zh)
KR (1) KR101735866B1 (zh)
CN (1) CN102782654B (zh)
TW (1) TWI514403B (zh)
WO (1) WO2011090545A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI663544B (zh) * 2017-03-02 2019-06-21 宏碁股份有限公司 容錯操作方法與使用此方法的電子裝置
US10592329B2 (en) 2017-03-02 2020-03-17 Acer Incorporated Method and electronic device for continuing executing procedure being aborted from physical address where error occurs

Families Citing this family (266)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US8423866B2 (en) * 2009-10-28 2013-04-16 SanDisk Technologies, Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US8634240B2 (en) * 2009-10-28 2014-01-21 SanDisk Technologies, Inc. Non-volatile memory and method with accelerated post-write read to manage errors
US8595411B2 (en) 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
JP4746699B1 (ja) * 2010-01-29 2011-08-10 株式会社東芝 半導体記憶装置及びその制御方法
US20110307758A1 (en) * 2010-06-15 2011-12-15 Fusion-Io, Inc. Apparatus, system, and method for providing error correction
JP4837121B1 (ja) * 2010-06-23 2011-12-14 株式会社東芝 データ記憶装置及びデータ書き込み方法
US9069688B2 (en) 2011-04-15 2015-06-30 Sandisk Technologies Inc. Dynamic optimization of back-end memory system interface
US8464135B2 (en) * 2010-07-13 2013-06-11 Sandisk Technologies Inc. Adaptive flash interface
US8819328B2 (en) 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US9135213B2 (en) * 2011-01-13 2015-09-15 Xilinx, Inc. Extending a processor system within an integrated circuit and offloading processes to process-specific circuits
TWI494948B (zh) * 2011-01-31 2015-08-01 Phison Electronics Corp 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置
TWI464581B (zh) * 2011-02-21 2014-12-11 Etron Technology Inc 非揮發性記憶體模組、非揮發性記憶體處理系統、與相關非揮發性記憶體管理方法
JP5259755B2 (ja) * 2011-02-25 2013-08-07 株式会社東芝 マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法
US9170878B2 (en) 2011-04-11 2015-10-27 Inphi Corporation Memory buffer with data scrambling and error correction
US8924630B2 (en) * 2011-06-21 2014-12-30 Taejin Info Tech Co., Ltd. Semiconductor storage device-based high-speed cache storage system
US8694719B2 (en) 2011-06-24 2014-04-08 Sandisk Technologies Inc. Controller, storage device, and method for power throttling memory operations
US9177609B2 (en) 2011-06-30 2015-11-03 Sandisk Technologies Inc. Smart bridge for memory core
US8432740B2 (en) 2011-07-21 2013-04-30 Sandisk Technologies Inc. Program algorithm with staircase waveform decomposed into multiple passes
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US8726104B2 (en) 2011-07-28 2014-05-13 Sandisk Technologies Inc. Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages
US9003102B2 (en) 2011-08-26 2015-04-07 Sandisk Technologies Inc. Controller with extended status register and method of use therewith
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US8700834B2 (en) * 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US9195530B1 (en) 2011-09-06 2015-11-24 Western Digital Technologies, Inc. Systems and methods for improved data management in data storage systems
US9053809B2 (en) * 2011-11-09 2015-06-09 Apple Inc. Data protection from write failures in nonvolatile memory
US8687421B2 (en) * 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
JP2013114644A (ja) * 2011-12-01 2013-06-10 Fujitsu Ltd メモリモジュールおよび半導体記憶装置
JP5674630B2 (ja) * 2011-12-02 2015-02-25 株式会社東芝 暗号化演算装置を搭載する不揮発性半導体記憶装置
US8700961B2 (en) 2011-12-20 2014-04-15 Sandisk Technologies Inc. Controller and method for virtual LUN assignment for improved memory bank mapping
US9208070B2 (en) 2011-12-20 2015-12-08 Sandisk Technologies Inc. Wear leveling of multiple memory devices
KR20130076430A (ko) * 2011-12-28 2013-07-08 삼성전자주식회사 적응적 카피백 방법 및 이를 이용한 저장 장치
US9141308B2 (en) 2011-12-30 2015-09-22 Sandisk Technologies Inc. Controller and method for using a transaction flag for page protection
US9116620B2 (en) 2011-12-30 2015-08-25 Sandisk Technologies Inc. Controller and method for memory aliasing for different flash memory types
US20130205066A1 (en) * 2012-02-03 2013-08-08 Sandisk Technologies Inc. Enhanced write abort management in flash memory
US9223649B2 (en) * 2012-02-15 2015-12-29 Sandisk Technologies Inc. System and method of sending correction data to a buffer of a non-volatile memory
US8719493B2 (en) * 2012-03-21 2014-05-06 Dell Products L.P. Memory controller-independent memory sparing
US9053008B1 (en) 2012-03-26 2015-06-09 Western Digital Technologies, Inc. Systems and methods for providing inline parameter service in data storage devices
DE102012102856A1 (de) * 2012-04-02 2013-10-02 Minebea Co., Ltd. Vorrichtung und Verfahren zum Lesen und Speichern von Daten
US8811074B2 (en) * 2012-04-03 2014-08-19 Seagate Technology Llc Parametric tracking to manage read disturbed data
US8760922B2 (en) 2012-04-10 2014-06-24 Sandisk Technologies Inc. System and method for micro-tiering in non-volatile memory
US9311226B2 (en) * 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
KR102072449B1 (ko) * 2012-06-01 2020-02-04 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 리페어 방법
US8566671B1 (en) 2012-06-29 2013-10-22 Sandisk Technologies Inc. Configurable accelerated post-write read to manage errors
US9418700B2 (en) * 2012-06-29 2016-08-16 Intel Corporation Bad block management mechanism
TWI497515B (zh) * 2012-07-10 2015-08-21 Silicon Motion Inc 快閃記憶體控制器、快閃記憶體偵錯方法
CN103593252B (zh) * 2012-08-14 2017-06-13 旺宏电子股份有限公司 具有动态错误侦测及更正的存储器
CA2891355C (en) * 2012-11-20 2022-04-05 Charles I. Peddle Solid state drive architectures
US11037625B2 (en) * 2012-11-20 2021-06-15 Thstyme Bermuda Limited Solid state drive architectures
US9171620B2 (en) 2012-11-29 2015-10-27 Sandisk Technologies Inc. Weighted read scrub for nonvolatile memory
KR102002901B1 (ko) * 2013-01-28 2019-07-23 삼성전자 주식회사 메모리 장치, 메모리 시스템 및 이의 제어 방법
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10642505B1 (en) 2013-01-28 2020-05-05 Radian Memory Systems, Inc. Techniques for data migration based on per-data metrics and memory degradation
US9098205B2 (en) 2013-01-30 2015-08-04 Sandisk Technologies Inc. Data randomization in 3-D memory
JP2014157391A (ja) * 2013-02-14 2014-08-28 Sony Corp 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
US10452504B2 (en) * 2013-10-02 2019-10-22 Nxp B.V. Controller area network (CAN) device and method for emulating classic CAN error management
US20150121156A1 (en) 2013-10-28 2015-04-30 Sandisk Technologies Inc. Block Structure Profiling in Three Dimensional Memory
US9213601B2 (en) 2013-12-03 2015-12-15 Sandisk Technologies Inc. Adaptive data re-compaction after post-write read verification operations
US9454422B2 (en) 2014-01-30 2016-09-27 International Business Machines Corporation Error feedback and logging with memory on-chip error checking and correcting (ECC)
US9933980B2 (en) * 2014-02-24 2018-04-03 Toshiba Memory Corporation NAND raid controller for connection between an SSD controller and multiple non-volatile storage units
CN103927131B (zh) * 2014-03-25 2017-02-15 四川和芯微电子股份有限公司 同步闪存u盘的启动方法及其控制系统
US9483295B2 (en) * 2014-03-31 2016-11-01 International Business Machines Corporation Transparent dynamic code optimization
US9384128B2 (en) 2014-04-18 2016-07-05 SanDisk Technologies, Inc. Multi-level redundancy code for non-volatile memory controller
US8918577B1 (en) 2014-06-13 2014-12-23 Sandisk Technologies Inc. Three dimensional nonvolatile memory with variable block capacity
US9613715B2 (en) 2014-06-16 2017-04-04 Sandisk Technologies Llc Low-test memory stack for non-volatile storage
WO2016003449A1 (en) * 2014-07-01 2016-01-07 Hewlett-Packard Development Company, L.P. Memory controller
US9606882B2 (en) * 2014-07-17 2017-03-28 Sandisk Technologies Llc Methods and systems for die failure testing
US9710326B2 (en) * 2014-07-28 2017-07-18 SK Hynix Inc. Encoder by-pass with scrambler
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US20160041762A1 (en) 2014-08-08 2016-02-11 Kabushiki Kaisha Toshiba Memory system, host device and information processing system
CN104199685A (zh) * 2014-08-13 2014-12-10 上海新储集成电路有限公司 一种i/o设备及具有该i/o设备的计算机系统
US10002044B2 (en) 2014-08-19 2018-06-19 Samsung Electronics Co., Ltd. Memory devices and modules
US10002043B2 (en) 2014-08-19 2018-06-19 Samsung Electronics Co., Ltd. Memory devices and modules
US9904626B2 (en) * 2014-08-29 2018-02-27 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system and system on chip
TWI512467B (zh) * 2014-09-02 2015-12-11 Silicon Motion Inc 實體儲存對照表維護方法以及使用該方法的裝置
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9836108B2 (en) * 2014-09-10 2017-12-05 Toshiba Memory Corporation Memory system and controller
US9477549B2 (en) * 2014-09-15 2016-10-25 Sandisk Technologies Llc Methods, systems, and computer readable media for address and data integrity checking in flash memory operations
US9652321B2 (en) * 2014-09-23 2017-05-16 Intel Corporation Recovery algorithm in non-volatile memory
US10008286B2 (en) * 2014-11-07 2018-06-26 Elwha Llc Self-testing data storage devices and methods
TWI545433B (zh) 2015-03-04 2016-08-11 慧榮科技股份有限公司 實體儲存對照表維護方法以及使用該方法的裝置
KR101653999B1 (ko) * 2015-04-02 2016-09-09 서울시립대학교 산학협력단 낸드 플래시 기반의 스토리지 시스템 및 데이터 보존 강화 방법
KR102403266B1 (ko) 2015-06-22 2022-05-27 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US20160378591A1 (en) * 2015-06-24 2016-12-29 Intel Corporation Adaptive error correction in memory devices
US9916091B2 (en) * 2015-07-13 2018-03-13 Samsung Electronics Co., Ltd. Memory system architecture
US10089196B2 (en) 2015-07-14 2018-10-02 Shannon Systems Ltd. Methods for reconfiguring a storage controller when control logic fails and apparatuses using the same
CN106648439B (zh) * 2015-07-14 2019-11-29 上海宝存信息科技有限公司 于控制逻辑错误时重新配置存储控制器的方法及装置
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
US9577854B1 (en) 2015-08-20 2017-02-21 Micron Technology, Inc. Apparatuses and methods for asymmetric bi-directional signaling incorporating multi-level encoding
JP2017045405A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
US10198061B2 (en) 2015-09-01 2019-02-05 Toshiba Memory Corporation Storage and storage system
KR20170050935A (ko) * 2015-11-02 2017-05-11 에스케이하이닉스 주식회사 온 칩 ecc 회로를 포함하는 메모리 장치 및 시스템
KR20170052066A (ko) * 2015-11-03 2017-05-12 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US10210041B2 (en) * 2015-11-05 2019-02-19 SK Hynix Inc. Systems and methods for low latency copy operations in non-volatile memory
US10025664B2 (en) * 2015-12-22 2018-07-17 Western Digital Technologies, Inc. Selective buffer protection
US20170344262A1 (en) * 2016-05-25 2017-11-30 SK Hynix Inc. Data processing system and method for operating the same
US10318185B2 (en) * 2016-07-01 2019-06-11 Intel Corporation Method and apparatus to provide both storage mode and memory mode access to non-volatile memory within a solid state drive
US11449232B1 (en) * 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10853233B2 (en) * 2016-10-18 2020-12-01 Toshiba Memory Corporation Reconstruction of address mapping in a host of a storage system
US10489313B2 (en) 2016-10-31 2019-11-26 Alibaba Group Holding Limited Flash storage failure rate reduction and hyperscale infrastructure robustness enhancement through the MRAM-NOR flash based cache architecture
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
US10261876B2 (en) 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
CN108388405B (zh) 2017-02-02 2021-11-30 慧荣科技股份有限公司 数据储存装置以及其操作方法
TWI643072B (zh) * 2017-02-02 2018-12-01 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
US10803972B2 (en) * 2017-03-06 2020-10-13 Hitachi, Ltd. Flash memory module, storage system, and method of controlling flash memory
JP2018152146A (ja) * 2017-03-09 2018-09-27 東芝メモリ株式会社 半導体記憶装置及びデータ読み出し方法
US10613772B2 (en) * 2017-03-16 2020-04-07 Qualcomm Incorporated Methods and apparatuses for copying a data page in an unmanaged flash memory device
US10164817B2 (en) * 2017-03-21 2018-12-25 Micron Technology, Inc. Methods and apparatuses for signal translation in a buffered memory
US11893265B2 (en) * 2017-05-02 2024-02-06 Google Llc Garbage collection for data storage
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
JP6866785B2 (ja) * 2017-06-29 2021-04-28 富士通株式会社 プロセッサおよびメモリアクセス方法
US10497447B2 (en) * 2017-06-29 2019-12-03 SK Hynix Inc. Memory device capable of supporting multiple read operations
US20190035445A1 (en) * 2017-07-31 2019-01-31 CNEX Labs, Inc. a Delaware Corporation Method and Apparatus for Providing Low Latency Solid State Memory Access
US10915448B2 (en) 2017-08-22 2021-02-09 Seagate Technology Llc Storage device initiated copy back operation
US10860334B2 (en) 2017-10-25 2020-12-08 Alibaba Group Holding Limited System and method for centralized boot storage in an access switch shared by multiple servers
KR102469958B1 (ko) * 2017-10-27 2022-11-25 삼성전자주식회사 블록 주소 없이 액세스되는 불휘발성 메모리 장치 및 그 동작 방법
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10649656B2 (en) 2017-12-28 2020-05-12 Micron Technology, Inc. Techniques to update a trim parameter in non-volatile memory
TWI658465B (zh) * 2018-02-02 2019-05-01 華邦電子股份有限公司 記憶體裝置以及其寫入/抹除方法
US10891239B2 (en) 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
US10725857B2 (en) 2018-02-27 2020-07-28 Western Digital Technologies, Inc. Data storage system for improving data throughput and decode capabilities
US11036578B2 (en) 2018-04-12 2021-06-15 Samsung Electronics Co., Ltd. Semiconductor memory devices and memory systems including the same
IT201800005506A1 (it) * 2018-05-18 2019-11-18 Sistema di elaborazione, relativo circuito integrato e procedimento
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
US10871921B2 (en) 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US10747673B2 (en) 2018-08-02 2020-08-18 Alibaba Group Holding Limited System and method for facilitating cluster-level cache and memory space
US11120882B2 (en) 2018-08-24 2021-09-14 International Business Machines Corporation Error recovery of data in non-volatile memory during read
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10607712B1 (en) * 2018-09-28 2020-03-31 Toshiba Memory Corporation Media error reporting improvements for storage drives
US10656995B2 (en) * 2018-10-03 2020-05-19 Micron Technology, Inc. Copy-back operations in a memory device
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
KR200490682Y1 (ko) 2018-10-25 2019-12-16 아틱스엔지니어링(주) 실차 시험용 소규모 풍동
US10768837B2 (en) * 2018-10-31 2020-09-08 EMC IP Holding Company LLC Non-disruptive migration of a virtual volume in a clustered data storage system
US10795586B2 (en) 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
CN112997162A (zh) * 2018-11-20 2021-06-18 华为技术有限公司 一种删除内存中索引项的方法、装置
US10769018B2 (en) 2018-12-04 2020-09-08 Alibaba Group Holding Limited System and method for handling uncorrectable data errors in high-capacity storage
US11010067B2 (en) * 2018-12-28 2021-05-18 Intel Corporation Defense against speculative side-channel analysis of a computer system
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US10976950B1 (en) * 2019-01-15 2021-04-13 Twitter, Inc. Distributed dataset modification, retention, and replication
US11113270B2 (en) 2019-01-24 2021-09-07 EMC IP Holding Company LLC Storing a non-ordered associative array of pairs using an append-only storage medium
KR102125350B1 (ko) * 2019-01-30 2020-06-22 연세대학교 산학협력단 오류 정정 코드를 이용한 적층형 메모리 장치 및 그 수리 방법
US10860420B2 (en) 2019-02-05 2020-12-08 Alibaba Group Holding Limited Method and system for mitigating read disturb impact on persistent memory
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US10908996B2 (en) * 2019-02-22 2021-02-02 Intel Corporation Distribution of a codeword across individual storage units to reduce the bit error rate
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10783035B1 (en) 2019-02-28 2020-09-22 Alibaba Group Holding Limited Method and system for improving throughput and reliability of storage media with high raw-error-rate
US10891065B2 (en) 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US11079958B2 (en) 2019-04-12 2021-08-03 Intel Corporation Apparatus, system and method for offloading data transfer operations between source and destination storage devices to a hardware accelerator
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
KR102263040B1 (ko) * 2019-04-23 2021-06-09 삼성전자주식회사 멀티 코어 솔리드 스테이트 드라이브의 운용 방법
US11169873B2 (en) * 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US11243699B2 (en) 2019-05-22 2022-02-08 Micron Technology, Inc. System using a restricted operation mode memory indicator
US11169730B2 (en) 2019-06-06 2021-11-09 Micron Technology, Inc. Scrub rate control for a memory device
TWI766194B (zh) * 2019-06-17 2022-06-01 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
CN112100087B (zh) 2019-06-17 2024-04-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112099985B (zh) 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
FR3097987A1 (fr) * 2019-06-26 2021-01-01 STMicroelectronics (Alps) SAS Procede d’adressage d’un circuit integre sur un bus et dispositif correspondant
US10860223B1 (en) * 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
WO2021012162A1 (zh) * 2019-07-22 2021-01-28 华为技术有限公司 存储系统数据压缩的方法、装置、设备及可读存储介质
US11074124B2 (en) 2019-07-23 2021-07-27 Alibaba Group Holding Limited Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
KR20210020694A (ko) * 2019-08-16 2021-02-24 에스케이하이닉스 주식회사 스토리지 장치, 스토리지 장치의 동작 방법, 스토리지 장치 및 스토리지 장치를 제어하는 호스트 장치를 포함하는 컴퓨팅 장치 및 그것의 동작 방법
CN110531937B (zh) * 2019-08-30 2023-01-06 四川效率源信息安全技术股份有限公司 一种针对主控芯片的数据重组方法
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11210167B2 (en) 2019-10-28 2021-12-28 Intel Corporation Memory wordline isolation for improvement in reliability, availability, and scalability (RAS)
US10997019B1 (en) 2019-10-31 2021-05-04 Alibaba Group Holding Limited System and method for facilitating high-capacity system memory adaptive to high-error-rate and low-endurance media
US11200159B2 (en) 2019-11-11 2021-12-14 Alibaba Group Holding Limited System and method for facilitating efficient utilization of NAND flash memory
US11119847B2 (en) 2019-11-13 2021-09-14 Alibaba Group Holding Limited System and method for improving efficiency and reducing system resource consumption in a data integrity check
KR102157571B1 (ko) 2019-11-21 2020-09-18 주식회사 파두 메모리 시스템
US11175984B1 (en) 2019-12-09 2021-11-16 Radian Memory Systems, Inc. Erasure coding techniques for flash memory
JP2021099642A (ja) * 2019-12-20 2021-07-01 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
US11615029B2 (en) 2019-12-30 2023-03-28 Micron Technology, Inc. Full multi-plane operation enablement
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US10872622B1 (en) 2020-02-19 2020-12-22 Alibaba Group Holding Limited Method and system for deploying mixed storage products on a uniform storage infrastructure
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11256617B2 (en) * 2020-04-01 2022-02-22 Micron Technology, Inc. Metadata aware copyback for memory devices
US11327884B2 (en) 2020-04-01 2022-05-10 Micron Technology, Inc. Self-seeded randomizer for data randomization in flash memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11599546B2 (en) 2020-05-01 2023-03-07 EMC IP Holding Company LLC Stream browser for data streams
US11604759B2 (en) 2020-05-01 2023-03-14 EMC IP Holding Company LLC Retention management for data streams
US11262938B2 (en) * 2020-05-05 2022-03-01 Silicon Motion, Inc. Method and apparatus for performing access management of a memory device with aid of dedicated bit information
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11526279B2 (en) * 2020-05-12 2022-12-13 Intel Corporation Technologies for performing column architecture-aware scrambling
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11599420B2 (en) 2020-07-30 2023-03-07 EMC IP Holding Company LLC Ordered event stream event retention
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11309052B2 (en) * 2020-08-25 2022-04-19 Micron Technology, Inc. Read voltage calibration for copyback operation
US11567665B2 (en) * 2020-08-31 2023-01-31 Micron Technology, Inc. Data dispersion-based memory management
US11556267B2 (en) * 2020-08-31 2023-01-17 Micron Technology, Inc. Data management during a copyback operation
US11513871B2 (en) 2020-09-30 2022-11-29 EMC IP Holding Company LLC Employing triggered retention in an ordered event stream storage system
US11755555B2 (en) 2020-10-06 2023-09-12 EMC IP Holding Company LLC Storing an ordered associative array of pairs using an append-only storage medium
US11599293B2 (en) 2020-10-14 2023-03-07 EMC IP Holding Company LLC Consistent data stream replication and reconstruction in a streaming data storage platform
KR20220060385A (ko) * 2020-11-04 2022-05-11 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11494111B2 (en) * 2020-12-17 2022-11-08 Micron Technology, Inc. Data operation based on valid memory unit count
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11556270B2 (en) * 2021-01-07 2023-01-17 EMC IP Holding Company LLC Leveraging garbage collection for raid transformation
US11816065B2 (en) 2021-01-11 2023-11-14 EMC IP Holding Company LLC Event level retention management for data streams
US20220222008A1 (en) * 2021-01-14 2022-07-14 Silicon Motion, Inc. Method for managing flash memory module and associated flash memory controller and memory device
CN114780014A (zh) * 2021-01-22 2022-07-22 伊姆西Ip控股有限责任公司 管理元数据存储单元的方法、电子设备和计算机程序产品
US11573854B2 (en) * 2021-02-02 2023-02-07 Nvidia Corporation Techniques for data scrambling on a memory interface
DE102021102777A1 (de) * 2021-02-05 2022-08-11 Infineon Technologies Ag Verarbeitung von in einem speicher gespeicherter daten
TWI766582B (zh) * 2021-02-17 2022-06-01 群聯電子股份有限公司 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元
US20220291858A1 (en) * 2021-03-15 2022-09-15 Pure Storage, Inc. Utilizing programming page size granularity to optimize data segment storage in a storage system
US11775197B2 (en) * 2021-03-25 2023-10-03 Kyocera Document Solutions Inc. Single command for reading then clearing dynamic random access memory
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11740828B2 (en) * 2021-04-06 2023-08-29 EMC IP Holding Company LLC Data expiration for stream storages
US11740821B2 (en) * 2021-04-12 2023-08-29 EMC IP Holding Company LLC Cost-aware garbage collection for cloud storage
US12001881B2 (en) 2021-04-12 2024-06-04 EMC IP Holding Company LLC Event prioritization for an ordered event stream
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11954537B2 (en) 2021-04-22 2024-04-09 EMC IP Holding Company LLC Information-unit based scaling of an ordered event stream
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
US11640253B2 (en) 2021-06-01 2023-05-02 Western Digital Technologies, Inc. Method to use flat relink table in HMB
US11681460B2 (en) 2021-06-03 2023-06-20 EMC IP Holding Company LLC Scaling of an ordered event stream based on a writer group characteristic
US11513720B1 (en) * 2021-06-11 2022-11-29 Western Digital Technologies, Inc. Data storage device having predictive analytics
US11543993B1 (en) * 2021-06-17 2023-01-03 Western Digital Technologies, Inc. Fast garbage collection in zoned namespaces SSDs
US11520510B1 (en) * 2021-07-21 2022-12-06 International Business Machines Corporation Extending the lifespan of a flash-based storage device
US11735282B2 (en) 2021-07-22 2023-08-22 EMC IP Holding Company LLC Test data verification for an ordered event stream storage system
US11733893B2 (en) * 2021-07-28 2023-08-22 International Business Machines Corporation Management of flash storage media
US11902171B2 (en) * 2021-07-30 2024-02-13 Global Unichip Corporation Communication system between dies and operation method thereof
US11907564B2 (en) * 2021-08-03 2024-02-20 Yadro International Ltd. Method of and system for initiating garbage collection requests
US11922047B2 (en) * 2021-09-16 2024-03-05 EMC IP Holding Company LLC Using RPO as an optimization target for DataDomain garbage collection
JP2023044330A (ja) * 2021-09-17 2023-03-30 キオクシア株式会社 メモリシステムおよび制御方法
US11847334B2 (en) * 2021-09-23 2023-12-19 EMC IP Holding Company LLC Method or apparatus to integrate physical file verification and garbage collection (GC) by tracking special segments
US11971850B2 (en) 2021-10-15 2024-04-30 EMC IP Holding Company LLC Demoted data retention via a tiered ordered event stream data storage system
CN113986128B (zh) * 2021-10-26 2024-05-28 杭州宏杉科技股份有限公司 Lun数据复制方法及装置
US20230136274A1 (en) * 2021-11-04 2023-05-04 Softiron Limited Ceph Media Failure and Remediation
US11841766B2 (en) * 2021-12-10 2023-12-12 Micron Technology, Inc. Memory array error correction
US20230195351A1 (en) * 2021-12-17 2023-06-22 Samsung Electronics Co., Ltd. Automatic deletion in a persistent storage device
US12001706B2 (en) * 2022-01-21 2024-06-04 Micron Technology, Inc. Predictive sanitization of an array of memory with capacitive cells and/or ferroelectric cells
US11886735B2 (en) * 2022-03-22 2024-01-30 Micron Technology, Inc. Data movement based on address table activity
US11934656B2 (en) * 2022-04-11 2024-03-19 Netapp, Inc. Garbage collection and bin synchronization for distributed storage architecture
US11941297B2 (en) 2022-04-11 2024-03-26 Netapp, Inc. Garbage collection and bin synchronization for distributed storage architecture
KR20230152501A (ko) * 2022-04-27 2023-11-03 한국과학기술원 플래시 기반 저장 장치 및 그 카피백 동작 방법
US11977779B2 (en) * 2022-05-11 2024-05-07 Bank Of America Corporation Smart queue for distributing user requests to automated response generating systems
US11947452B2 (en) * 2022-06-01 2024-04-02 Micron Technology, Inc. Controlling variation of valid data counts in garbage collection source blocks
US20240012579A1 (en) * 2022-07-06 2024-01-11 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for data placement in a storage device

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050289314A1 (en) * 2004-06-23 2005-12-29 Adusumilli Vijaya P Simultaneous external read operation during internal programming in a flash memory device
US20080052449A1 (en) * 2006-08-22 2008-02-28 Jin-Ki Kim Modular command structure for memory and memory system
US20080068886A1 (en) * 2006-08-28 2008-03-20 Samsung Electronics Co., Ltd. Flash Memory Devices Having Multi-Page Copyback Functionality and Related Block Replacement Methods
US20080101116A1 (en) * 2006-10-31 2008-05-01 Hynix Semiconductor Inc. Multi-level cell copyback program method in a non-volatile memory device
US20080229000A1 (en) * 2007-03-12 2008-09-18 Samsung Electronics Co., Ltd. Flash memory device and memory system
US20090070651A1 (en) * 2007-09-06 2009-03-12 Siliconsystems, Inc. Storage subsystem capable of adjusting ecc settings based on monitored conditions
US20090193058A1 (en) * 2008-01-29 2009-07-30 Denali Software, Inc. System and method for providing copyback data integrity in a non-volatile memory system
US20090276560A1 (en) * 2008-04-30 2009-11-05 Apple Inc. Copyback Optimization for Memory System

Family Cites Families (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
US5430859A (en) 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5532962A (en) 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5799168A (en) 1996-01-05 1998-08-25 M-Systems Flash Disk Pioneers Ltd. Standardized flash controller
US5818757A (en) 1996-07-22 1998-10-06 Invox Technology Analog and multi-level memory with reduced program disturb
JP3565687B2 (ja) 1997-08-06 2004-09-15 沖電気工業株式会社 半導体記憶装置およびその制御方法
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US5943283A (en) 1997-12-05 1999-08-24 Invox Technology Address scrambling in a semiconductor memory
US6081851A (en) 1997-12-15 2000-06-27 Intel Corporation Method and apparatus for programming a remote DMA engine residing on a first bus from a destination residing on a second bus
US6034882A (en) 1998-11-16 2000-03-07 Matrix Semiconductor, Inc. Vertically stacked field programmable nonvolatile memory and method of fabrication
US6498851B1 (en) 1998-11-25 2002-12-24 Sandisk Corporation Data encryption and signal scrambling using programmable data conversion arrays
US6181599B1 (en) 1999-04-13 2001-01-30 Sandisk Corporation Method for applying variable row BIAS to reduce program disturb in a flash memory storage array
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6857061B1 (en) * 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
JP2001297038A (ja) 2000-04-11 2001-10-26 Toshiba Corp データ記憶装置および記録媒体並びに記録媒体制御方法
DE60037877T2 (de) 2000-04-13 2009-01-29 A-DATA TECHNOLOGY Co., Ltd., Chung Ho City Multi-Schnittstellenspeicherkarte und Anpassungsmodul dafür
US6420215B1 (en) 2000-04-28 2002-07-16 Matrix Semiconductor, Inc. Three-dimensional memory array and method of fabrication
US6631085B2 (en) 2000-04-28 2003-10-07 Matrix Semiconductor, Inc. Three-dimensional memory array incorporating serial chain diode stack
US6266273B1 (en) 2000-08-21 2001-07-24 Sandisk Corporation Method and structure for reliable data copy operation for non-volatile memories
US20030120858A1 (en) 2000-09-15 2003-06-26 Matrix Semiconductor, Inc. Memory devices and methods for use therewith
US7020739B2 (en) 2000-12-06 2006-03-28 Tdk Corporation Memory controller, flash memory system having memory controller and method for controlling flash memory device
US6591330B2 (en) 2001-06-18 2003-07-08 M-Systems Flash Disk Pioneers Ltd. System and method for flexible flash file
JP4059473B2 (ja) 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
US6760805B2 (en) 2001-09-05 2004-07-06 M-Systems Flash Disk Pioneers Ltd. Flash management system for large page size
TW516118B (en) 2001-09-11 2003-01-01 Leadtek Research Inc Decoding conversion device and method capable of supporting multiple memory chips and their application system
GB0123412D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
US6859856B2 (en) 2001-10-23 2005-02-22 Flex P Industries Sdn. Bhd Method and system for a compact flash memory controller
US6704852B2 (en) 2001-11-16 2004-03-09 Key Technology Corporation Control device applicable to flash memory card and method for building partial lookup table
US6977847B2 (en) 2001-11-23 2005-12-20 M-Systems Flash Disk Pioneers Ltd. Detecting partially erased units in flash devices
TWI240861B (en) 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US6683817B2 (en) 2002-02-21 2004-01-27 Qualcomm, Incorporated Direct memory swapping between NAND flash and SRAM with error correction coding
US20030206442A1 (en) 2002-05-02 2003-11-06 Jerry Tang Flash memory bridiging device, method and application system
US6721820B2 (en) 2002-05-15 2004-04-13 M-Systems Flash Disk Pioneers Ltd. Method for improving performance of a flash-based storage system using specialized flash controllers
JP4100968B2 (ja) 2002-06-06 2008-06-11 株式会社日立製作所 データマッピング管理装置
US7081377B2 (en) 2002-06-27 2006-07-25 Sandisk 3D Llc Three-dimensional memory
KR100448905B1 (ko) 2002-07-29 2004-09-16 삼성전자주식회사 낸드플래쉬메모리를 시스템구동 및 저장용으로 사용하는장치
KR101174308B1 (ko) 2002-10-28 2012-08-16 쌘디스크 코포레이션 비휘발성 저장 시스템들에서 자동 웨어 레벨링
US7171536B2 (en) 2002-10-28 2007-01-30 Sandisk Corporation Unusable block management within a non-volatile memory system
US8037229B2 (en) 2002-11-21 2011-10-11 Sandisk Technologies Inc. Combination non-volatile memory and input-output card with direct memory access
US20050055479A1 (en) 2002-11-21 2005-03-10 Aviad Zer Multi-module circuit card with inter-module direct memory access
EP1443519B1 (en) 2003-01-31 2007-11-14 STMicroelectronics S.r.l. Embeddable flash memory system for non-volatile storage of code, data and bit-streams for embedded FPGA configurations
US7069370B2 (en) 2003-01-31 2006-06-27 Toshiba Corporation USB memory storage apparatus with integrated circuit in a connector
JP4550439B2 (ja) * 2003-02-28 2010-09-22 東芝メモリシステムズ株式会社 Ecc制御装置
US6988175B2 (en) 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
KR100560767B1 (ko) 2003-09-02 2006-03-13 삼성전자주식회사 탈착 가능한 저장 장치를 포함하는 시스템 및 그것의 제어방법
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
TWI226643B (en) 2003-10-31 2005-01-11 C One Technology Corp Simulated SmartMedia/xD-Picture memory card using any nonvolatile memory
US7594135B2 (en) 2003-12-31 2009-09-22 Sandisk Corporation Flash memory system startup operation
US7350044B2 (en) 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US7136973B2 (en) 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
JP3892851B2 (ja) 2004-02-04 2007-03-14 株式会社東芝 メモリカード及び半導体装置
US8019928B2 (en) 2004-02-15 2011-09-13 Sandisk Il Ltd. Method of managing a multi-bit-cell flash memory
JP4398750B2 (ja) 2004-02-17 2010-01-13 株式会社東芝 Nand型フラッシュメモリ
US7818492B2 (en) 2004-02-26 2010-10-19 Supertalent Electronics, Inc. Source and shadow wear-leveling method and apparatus
KR100648243B1 (ko) 2004-03-19 2006-11-24 삼성전자주식회사 낸드 플래시 메모리를 사용하는 메모리 카드
US7177977B2 (en) 2004-03-19 2007-02-13 Sandisk Corporation Operating non-volatile memory without read disturb limitations
JP4357331B2 (ja) 2004-03-24 2009-11-04 東芝メモリシステムズ株式会社 マイクロプロセッサブートアップ制御装置、及び情報処理システム
US7406572B1 (en) 2004-03-26 2008-07-29 Cypress Semiconductor Corp. Universal memory circuit architecture supporting multiple memory interface options
US7057939B2 (en) 2004-04-23 2006-06-06 Sandisk Corporation Non-volatile memory and control with improved partial page program capability
KR100678047B1 (ko) * 2004-05-06 2007-02-02 삼성전자주식회사 낸드 플래시 메모리를 구비한 이동 통신 단말기 및 그의부팅 방법
US7139199B2 (en) 2004-06-28 2006-11-21 Intel Corporation Flash memory file system with transacted operations
EP1797645B1 (en) 2004-08-30 2018-08-01 Google LLC Systems and methods for providing nonvolatile memory management in wireless phones
JP4406339B2 (ja) 2004-09-21 2010-01-27 株式会社東芝 コントローラ、メモリカード及びその制御方法
US7149119B2 (en) 2004-09-30 2006-12-12 Matrix Semiconductor, Inc. System and method of controlling a three-dimensional memory
JP4828816B2 (ja) 2004-10-25 2011-11-30 株式会社東芝 メモリカード、半導体装置、及びメモリカードの制御方法
US20060239450A1 (en) 2004-12-21 2006-10-26 Michael Holtzman In stream data encryption / decryption and error correction method
US6980471B1 (en) 2004-12-23 2005-12-27 Sandisk Corporation Substrate electron injection techniques for programming non-volatile charge storage memory cells
US7177191B2 (en) 2004-12-30 2007-02-13 Sandisk 3D Llc Integrated circuit including memory array incorporating multiple types of NAND string structures
US7187583B2 (en) 2005-01-25 2007-03-06 Phison Electronics Corp. Method for reducing data error when flash memory storage device using copy back command
JP4896011B2 (ja) * 2005-03-31 2012-03-14 スパンション エルエルシー 半導体装置及びその制御方法
KR100673703B1 (ko) * 2005-06-14 2007-01-24 주식회사 하이닉스반도체 멀티 레벨 셀들을 포함하는 플래시 메모리 장치의 카피백동작 제어 방법
US7345907B2 (en) 2005-07-11 2008-03-18 Sandisk 3D Llc Apparatus and method for reading an array of nonvolatile memory cells including switchable resistor memory elements
US7362604B2 (en) 2005-07-11 2008-04-22 Sandisk 3D Llc Apparatus and method for programming an array of nonvolatile memory cells including switchable resistor memory elements
US7362611B2 (en) 2005-08-30 2008-04-22 Micron Technology, Inc. Non-volatile memory copy back
US7170788B1 (en) 2005-09-09 2007-01-30 Sandisk Corporation Last-first mode and apparatus for programming of non-volatile memory with reduced program disturb
US7218552B1 (en) 2005-09-09 2007-05-15 Sandisk Corporation Last-first mode and method for programming of non-volatile memory with reduced program disturb
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7640424B2 (en) 2005-10-13 2009-12-29 Sandisk Corporation Initialization of flash storage via an embedded controller
US7447066B2 (en) 2005-11-08 2008-11-04 Sandisk Corporation Memory with retargetable memory cell redundancy
US7349258B2 (en) 2005-12-06 2008-03-25 Sandisk Corporation Reducing read disturb for non-volatile storage
US7262994B2 (en) 2005-12-06 2007-08-28 Sandisk Corporation System for reducing read disturb for non-volatile storage
EP1895418B1 (en) 2005-12-09 2015-04-01 Panasonic Corporation Nonvolatile memory device, method of writing data, and method of reading out data
US7355889B2 (en) 2005-12-19 2008-04-08 Sandisk Corporation Method for programming non-volatile memory with reduced program disturb using modified pass voltages
US7355888B2 (en) 2005-12-19 2008-04-08 Sandisk Corporation Apparatus for programming non-volatile memory with reduced program disturb using modified pass voltages
KR20070076849A (ko) 2006-01-20 2007-07-25 삼성전자주식회사 메모리 카드의 카피백 동작을 수행하는 장치 및 방법
US7499326B2 (en) 2006-04-12 2009-03-03 Sandisk Corporation Apparatus for reducing the impact of program disturb
US7426137B2 (en) 2006-04-12 2008-09-16 Sandisk Corporation Apparatus for reducing the impact of program disturb during read
US7436713B2 (en) 2006-04-12 2008-10-14 Sandisk Corporation Reducing the impact of program disturb
US7366029B2 (en) 2006-04-24 2008-04-29 Sandisk Corporation High-performance flash memory data transfer
US7852690B2 (en) 2006-05-15 2010-12-14 Apple Inc. Multi-chip package for a flash memory
WO2008017204A1 (en) 2006-08-01 2008-02-14 Intel Corporation Heap manager for a multitasking virtual machine
US20080046641A1 (en) 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080046630A1 (en) 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US7440323B2 (en) 2006-11-02 2008-10-21 Sandisk Corporation Reducing program disturb in non-volatile memory using multiple boosting modes
US7468911B2 (en) 2006-11-02 2008-12-23 Sandisk Corporation Non-volatile memory using multiple boosting modes for reduced program disturb
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
US8127200B2 (en) 2006-12-24 2012-02-28 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors
US7433241B2 (en) 2006-12-29 2008-10-07 Sandisk Corporation Programming non-volatile memory with reduced program disturb by removing pre-charge dependency on word line data
US7463531B2 (en) 2006-12-29 2008-12-09 Sandisk Corporation Systems for programming non-volatile memory with reduced program disturb by using different pre-charge enable voltages
US7450430B2 (en) 2006-12-29 2008-11-11 Sandisk Corporation Programming non-volatile memory with reduced program disturb by using different pre-charge enable voltages
US7468918B2 (en) 2006-12-29 2008-12-23 Sandisk Corporation Systems for programming non-volatile memory with reduced program disturb by removing pre-charge dependency on word line data
US7984360B2 (en) 2006-12-31 2011-07-19 Ramot At Tel Aviv University Ltd. Avoiding errors in a flash memory by using substitution transformations
KR100813630B1 (ko) 2007-02-07 2008-03-14 삼성전자주식회사 독출 성능을 향상할 수 있는 플래시 메모리 시스템 및그것의 독출 방법
US7477547B2 (en) 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US7865473B2 (en) 2007-04-02 2011-01-04 International Business Machines Corporation Generating and indicating incremental backup copies from virtual copies of a data set
US8074034B2 (en) 2007-07-25 2011-12-06 Agiga Tech Inc. Hybrid nonvolatile ram
US7584308B2 (en) * 2007-08-31 2009-09-01 International Business Machines Corporation System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel
TW200915339A (en) * 2007-09-28 2009-04-01 Super Talent Electronics Inc Electronic data flash card with various flash memory cells
US8301912B2 (en) 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
US20090282267A1 (en) 2008-05-09 2009-11-12 Ori Stern Partial scrambling to reduce correlation
US8154918B2 (en) 2008-06-30 2012-04-10 Sandisk Il Ltd. Method for page- and block based scrambling in non-volatile memory
KR101086857B1 (ko) * 2008-07-25 2011-11-25 주식회사 팍스디스크 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
US8281062B2 (en) 2008-08-27 2012-10-02 Sandisk Il Ltd. Portable storage device supporting file segmentation and multiple transfer rates
US8429330B2 (en) 2008-09-12 2013-04-23 Sandisk Technologies Inc. Method for scrambling data in which scrambling data and scrambled data are stored in corresponding non-volatile memory locations
KR101515621B1 (ko) * 2008-09-26 2015-04-29 삼성전자주식회사 반도체 디스크 장치 및 그것의 랜덤 데이터 처리 방법
US20100161932A1 (en) * 2008-12-18 2010-06-24 Ori Moshe Stern Methods for writing data from a source location to a destination location in a memory device
US20110041005A1 (en) 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US20110041039A1 (en) 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US20110040924A1 (en) 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US7818525B1 (en) * 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
US8595411B2 (en) 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8187936B2 (en) 2010-06-30 2012-05-29 SanDisk Technologies, Inc. Ultrahigh density vertical NAND memory device and method of making thereof
JP2012137994A (ja) * 2010-12-27 2012-07-19 Toshiba Corp メモリシステムおよびその制御方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050289314A1 (en) * 2004-06-23 2005-12-29 Adusumilli Vijaya P Simultaneous external read operation during internal programming in a flash memory device
US20080052449A1 (en) * 2006-08-22 2008-02-28 Jin-Ki Kim Modular command structure for memory and memory system
US20080068886A1 (en) * 2006-08-28 2008-03-20 Samsung Electronics Co., Ltd. Flash Memory Devices Having Multi-Page Copyback Functionality and Related Block Replacement Methods
US20080101116A1 (en) * 2006-10-31 2008-05-01 Hynix Semiconductor Inc. Multi-level cell copyback program method in a non-volatile memory device
US20080229000A1 (en) * 2007-03-12 2008-09-18 Samsung Electronics Co., Ltd. Flash memory device and memory system
US20090070651A1 (en) * 2007-09-06 2009-03-12 Siliconsystems, Inc. Storage subsystem capable of adjusting ecc settings based on monitored conditions
US20090193058A1 (en) * 2008-01-29 2009-07-30 Denali Software, Inc. System and method for providing copyback data integrity in a non-volatile memory system
US20090276560A1 (en) * 2008-04-30 2009-11-05 Apple Inc. Copyback Optimization for Memory System

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI663544B (zh) * 2017-03-02 2019-06-21 宏碁股份有限公司 容錯操作方法與使用此方法的電子裝置
US10592329B2 (en) 2017-03-02 2020-03-17 Acer Incorporated Method and electronic device for continuing executing procedure being aborted from physical address where error occurs

Also Published As

Publication number Publication date
EP2519879B1 (en) 2013-10-23
KR101735866B1 (ko) 2017-05-15
WO2011090545A2 (en) 2011-07-28
WO2011090545A3 (en) 2012-04-12
US8443263B2 (en) 2013-05-14
EP2519879A2 (en) 2012-11-07
USRE46013E1 (en) 2016-05-24
CN102782654B (zh) 2015-03-11
TW201135746A (en) 2011-10-16
CN102782654A (zh) 2012-11-14
US20110161784A1 (en) 2011-06-30
KR20120107126A (ko) 2012-09-28

Similar Documents

Publication Publication Date Title
TWI514403B (zh) 用於執行一複製回復操作之方法及控制器
US20110041039A1 (en) Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US20110040924A1 (en) Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US20110041005A1 (en) Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
USRE46201E1 (en) Method and controller for performing a sequence of commands
US8291295B2 (en) NAND flash memory controller exporting a NAND interface
US10152249B2 (en) Data memory device and controller with interface error detection and handling logic
TWI514139B (zh) 實體頁、邏輯頁及碼字對應
US8001444B2 (en) ECC functional block placement in a multi-channel mass storage device
US9348693B2 (en) Data accessing method for flash memory module
US20220050741A1 (en) Apparatus and method for sharing data in a data processing system
JP2014507717A (ja) より高いレベルの冗長な情報の計算
US8607123B2 (en) Control circuit capable of identifying error data in flash memory and storage system and method thereof
US11216217B2 (en) Data transfer method after data encryption function is disabled and memory storage device
JP2019023936A (ja) 記憶装置及びメモリシステム

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees