TWI531965B - 控制器及用以執行背景操作之方法 - Google Patents

控制器及用以執行背景操作之方法 Download PDF

Info

Publication number
TWI531965B
TWI531965B TW100142993A TW100142993A TWI531965B TW I531965 B TWI531965 B TW I531965B TW 100142993 A TW100142993 A TW 100142993A TW 100142993 A TW100142993 A TW 100142993A TW I531965 B TWI531965 B TW I531965B
Authority
TW
Taiwan
Prior art keywords
command
controller
background
foreground
interface
Prior art date
Application number
TW100142993A
Other languages
English (en)
Other versions
TW201227506A (en
Inventor
保羅A 拉薩
大衛C 布里夫
Original Assignee
桑迪士克科技公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 桑迪士克科技公司 filed Critical 桑迪士克科技公司
Publication of TW201227506A publication Critical patent/TW201227506A/zh
Application granted granted Critical
Publication of TWI531965B publication Critical patent/TWI531965B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Description

控制器及用以執行背景操作之方法
開放NAND快閃介面(ONFI)協定提供支援對一單個「目標」上之多個NAND晶粒(或「邏輯單元」(LUN))或一單個共用ONFI通道上之NAND多晶片堆疊之並行存取。舉例而言,如圖8中所展示,針對含有4個NAND晶粒(LUN 0至LUN3)之一目標ONFI裝置,一抹除、程式化或讀取操作可由主機控制器發佈並在一命令仍在該等LUN中之第四個LUN上在進展中時在該等LUN中之三個LUN上執行。此提供在主機控制器命令到達時所有四個晶粒之重疊陣列存取(最佳利用)。然而,應注意,一次僅此等命令中之一者可在共用通道上傳輸或接收其資料。
在一典型大容量儲存應用程式中,諸如固態磁碟機(SSD),一中央主機控制器將在其串列先進技術附接(SATA)介面上接收命令並轉譯其等以散佈及發佈至多個ONFI目標NAND多晶片堆疊。除將主機命令調度至既定記憶體晶粒外,主機控制器亦可執行記憶體管理/儲存最佳化功能,其通常包含在NAND晶粒池中間的非平凡量的資料移動/複製。無論主機控制器正將一主機命令還是一記憶體管理/儲存最佳化命令調度至每一LUN,該命令皆在彼LUN上無中斷地運行至完成。
本發明係由申請專利範圍界定,且不應將本章節中之任何內容視為對彼等申請專利範圍之一限定。
藉由引用,下文所述之實施例提供一種控制器及用於執行背景操作之方法。在一項實施例中,一控制器具備藉以與一主機及複數個快閃記憶體裝置通信之介面。該控制器含有操作以執行自該主機接收之一前景命令之一處理器,其中該處理器將該前景命令無中斷地執行至完成。該處理器亦操作以執行儲存於該控制器之記憶體中之一背景命令或操作,其中該處理器執行該背景命令直至完成或優先執行一前景命令為止。在優先執行該背景命令之情況下,該處理器可在一稍後時間處重新開始執行該背景命令直至完成為止。
揭示其它實施例,且可獨立地使用所述實施例中之每一者或將其結合在一起來使用。現在將參照附圖闡述該等實施例。
簡介
下列實施例係針對一種控制器及用於執行背景操作之方法。如上文論述,儘管該ONFI協定提供支援對多個NAND LUN之並行存取以在等待主機控制器命令到達的同時允許利用多個NAND LUN,但在進展中之命令必須無中斷地運行至完成,即使該進展中的命令比傳入命令具有更低優先級。此可出現於(舉例而言)該進展中命令係針對一快閃裝置管理操作而傳入命令係針對讀取或寫入使用者資料時。在此等情境中,效能可顯著降級。
為克服此問題及改良效能,下列實施例提供可在應無中斷地執行至完成之操作命令(「前景命令」)與可優先執行一前景命令/由一前景命令中斷並在一稍後時間處繼續之操作命令(「背景命令」)之間進行區分之一控制器。以此方式,不同於通常具有一預定完成時間之前景命令,背景命令可相依於其被前景命令中斷之次數而具有一不確定完成時間。此等實施例亦利用主機控制器通常將不消耗至/自所有NAND LUN之完全並行帶寬之事實。此等實施例亦提供具有用以利用「空閒」時間執行背景命令之機制及規則之一分離前景/背景協定。在一項較佳實施例中,此等機制經設計以與支援當前ONFI標準能力之主機控制器相容。
在轉至與前景命令及背景命令之使用有關的實例性實施例之前,下列章節論述供用於NAND介面及NAND介面協定之一實例性控制器架構。
實例性控制器架構與NAND介面及協定
現返回至圖示,圖1係一實施例之一實例性控制器100之一方塊圖。如圖1中所展示,控制器100透過一第一NAND介面125與一主機120(具有一主機控制器121)通信且透過一或多個第二NAND介面135與一或多個NAND快閃記憶體裝置(或「邏輯單元」(LUN))130通信。(固態磁碟機(SSD)應用程式中之主機控制器可具有一或多個第一NAND介面(例如,八個通道),於此情形中控制器100可僅見到彼等通道中之一者)。如本文中所使用,措詞「與...通信」意指直接與...通信或透過一或多個組件(其等可能在或並不在本文中顯示或闡述)間接地與...通信。而且,儘管將控制器100及快閃記憶體裝置130展示為兩個單獨方框,但應瞭解,控制器100及快閃記憶體裝置130可以任何適合方式配置(例如,封裝於不同封裝中、封裝於一共同多晶片封裝中、及或整合於一相同晶粒上)。在此等配置中之任一者中,較佳地使控制器與主機分離地實體定位。此允許將控制器及快閃記憶體裝置視為一單獨電路單元,該單獨電路單元可用於各種各樣的主機中。
一「主機」係能夠透過控制器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亦包括一處理器105、一佇列110、一或多個狀態暫存器112、一或多個頁緩衝器114及一錯誤校正碼(ECC)模組116。(控制器100可含有在圖1中未展示之其他組件以簡化該圖式)。如本文中使用,一「模組」可包含硬體、軟體、韌體或其任一組合。舉例而言,一「模組」可採取之形式之實例包含但不限於一微處理器或處理器及儲存可由(微)處理器執行之電腦可讀程式化碼(例如,軟體或韌體)之一電腦可讀媒體、邏輯閘、開關、一專用積體電路(ASIC)、一可程式化邏輯控制器、及一嵌入式微控制器中之一或多者。儘管在圖1中展示僅一個模組(ECC模組116),但應瞭解,可使用用於提供其他功能之一或多個額外模組。此等額外模組之實例包含但不限於資料擾碼、行置換、處置寫入中止及/或程式化故障(經由安全區)、讀取清理(read scrubbing)、損耗平均、壞區塊及/或備用區塊管理、錯誤偵測碼(EDC)功能、狀態功能、加密功能、錯誤復原及位址映射(例如,邏輯對實體區塊之映射)。在美國專利申請案第12/539,394、12/539,407、12/539,379、12/650,263、12/650,255及12/539,417號中闡述關於此等各種功能之進一步資訊,該等專利申請案以引用的方式併入本文中。
如上文提及,控制器100使用一第一NAND介面125與主機120通信,及使用第二NAND介面135與快閃記憶體裝置130通信,該第一NAND介面及第二NAND介面係在NAND介面協定下操作。NAND介面之實例包含但不限於開放NAND快閃介面(ONFI)、雙態觸變模式(TM)及一高效能快閃記憶體介面,諸如在美國專利第7,366,029號中闡述之一個介面,該專利以引用方式併入本文中。控制器100可視情況包含一或多個額外的主機側介面,用於使用諸如SD、USB、SATA或MMC介面之非NAND介面將控制器100介接至主機。而且,介面125、135可使用相同或不同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介面或與另一協定相關聯之一介面)可係一「主機側介面」(例如,該給定裝置適於使用該主機側介面與一主機互動),或該給定裝置之介面可係一「快閃記憶體裝置側介面」(例如,該給定裝置適於使用該快閃記憶體裝置側介面與一快閃記憶體裝置互動)。術語「快閃記憶體裝置側介面」、「快閃裝置側介面」及「快閃側介面」在本文中互換地使用。
此等術語(亦即,「主機側介面」及「快閃裝置側介面」)不應與術語「主機型介面」及「快閃型介面」(其係本文中用於在一MAND介面協定之兩側之間進行區分的術語)混淆,乃因此協定並非對稱的。此外,由於主機發起該互動,因此應注意,在一給定裝置包含用於實施主機側之NAND介面協定(亦即,用於呈現一NAND主機及發起NAND協定互動)之必要硬體及/或軟體之情況下該裝置稱為具有一「主機型介面」。類似地,由於該快閃裝置不起始該互動,應注意,在一給定裝置包含用於實施快閃側之NAND協定(亦即,用於呈現一NAND快閃裝置)之必要硬體及/或軟體之情況下該裝置稱為具有一「快閃型介面」。
通常,「主機型介面」(亦即,充當主機角色之彼等介面)係「快閃裝置側介面」(亦即,其與快閃裝置或與模擬一快閃裝置之硬體互動),而「快閃裝置型介面」(亦即,充當快閃裝置角色之彼等介面)通常係「主機側介面」(亦即,其與主機或與模擬一主機之硬體互動)。
在美國專利第7,631,245號及美國專利申請案第12/539,394、12/539,407、12/539,379、12/650,263、12/650,255及12/539,417號中可見關於實例性控制器(及其相對於先前控制器之優勢)之額外資訊,該等專利及專利申請案以引用的方式併入本文中。
最後應注意,控制器100及快閃記憶體裝置130可用於任何期望之系統環境中。舉例而言,在一項實施方案中,製造有一或多個控制器100/快閃記憶體裝置130單元之一產品係用於一固態磁碟機(SSD)中。在圖2中展示一基於SATA之SSD應用程式之一實例,其中一中央主機控制器221存取(在每一ONFI通道上及跨越數個ONFI通道)多個附接ONFI目標,其中每一ONFI目標含有類似於圖1中之控制器100之一控制器,且連接至複數個NAND快閃裝置230。作為另一實例,控制器100可用於使用一南橋控制器以介接至快閃記憶體裝置之OEM設計中。
與前景命令及背景命令相關之實施例
如上文提及,儘管ONFI協定提供支援對多個NAND LUN之並行存取以允許在等待主機控制器命令到達的同時利用多個NAND LUN,但在進展中之命令必須無中斷地運行至完成,即使該進展中的命令比該傳入命令具有更低優先級。舉例而言,此可出現於該進展中的命令係針對執行一快閃裝置管理操作而該傳入命令係針對讀取或寫入使用者資料時。在此等情境中效能可顯著降級。
為克服此問題及改良效能,圖1中之控制器100操作以在前景命令與背景命令之間進行區分並根據一優先級系統執行每一命令。如本文中使用,一「前景命令」係指用於較佳地無中斷地執行至完成且通常具有一預定完成時間之一操作之一命令。一前景命令通常由主機控制器121發佈並發送至NAND控制器100供用於執行。一前景命令之實例包含但不限於一讀取命令、一寫入命令、一抹除命令及一「舊型」間接寫回(copyback)命令。
相比而言,一「背景命令」係指用於可優先執行前景命令/由一前景命令中斷及在一稍後時間處繼續之一操作之一命令。不同於通常具有一預定完成時間之前景命令,背景命令可相依於其被前景命令中斷的次數而具有一不確定完成時間。一背景命令可在當前未執行任何主機前景命令時只要可能即執行。一背景命令可係由主機控制器121發佈並發送至控制器100供用於執行或可由NAND控制器100自身產生。一背景命令之實例包含但不限於資料擾碼、行置換、處置寫入中止及/或程式化故障(經由安全區)、讀取清理、損耗平均、壞區塊及/或備用區塊管理、錯誤偵測碼(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號中。
可有利地用於ONFI協定中之背景處理之一額外背景命令係指一種形式之複製命令。在諸如記憶體卡或SSD卡之大容量儲存應用程式中頻繁地需要複製類型操作。標準ONFI協定(高達v2.2)支援各種複製選項。兩種主要途徑係(1)主機僅執行源頁之一讀取至主機控制器之緩衝記憶體中,然後將彼緩衝器之一程式化命令發佈至目的地頁,及(2)主機將一間接寫回讀取發佈至原始NAND之頁暫存器(在NAND晶粒上)中且然後發佈一間接寫回程式化命令,告知原始NAND將彼相同頁自NAND之頁暫存器傳送至相同原始NAND晶粒上之一新目的地頁。
ONFI v2.3(在2010年8月發行)添加有「EZ NAND」特徵,其提供用於在主機控制器與一組(n個)原始NAND晶粒(LUN)之間添加一中間控制器ASIC。(圖1中之控制器100係支援或與ONFI版本v2.3或更高版本之命令及/或功能部分地或完全地相容之一「EZ NAND控制器」之一實例)。此基於上述兩個選項延伸以支援一「經校正間接寫回」能力,其中將一間接寫回頁讀取至EZ NAND控制器之頁緩衝器中,其中其可係程式化(藉助經校正ECC)至任何目的地LUN/平面/頁(在附接至彼EZ NAND控制器之任何原始NAND晶粒上)之間接寫回。此提供除上文列舉之兩個選項外的一第三選項:(3)主機將一間接寫回讀取發佈至NAND控制器之頁緩衝器114(圖1)中,然後發佈一間接寫回程式化命令告知NAND控制器100將彼相同頁自NAND控制器之頁緩衝器114傳送至任何附接的原始NAND晶粒130上之一新目的地頁中。(ECC係在傳送回至原始NAND晶粒130之前由ECC模組116檢查及校正)。
儘管上述複製選項提供立即資料移動之基礎,但現有ONFI協定並不支援可提供更複雜及更有力的資料移動能力之延伸複製操作。特定而言,ONFI具有下列限制:(a)每主機命令僅複製一單個頁(不計及多平面複製),(b)主機控制器必須發佈及控制一反覆複製操作之每一步驟(例如,讀取、然後程式化),(c)主機必須在將另一命令發佈至相同LUN之前等待彼命令之完成,及(d)ONFI不支援同時操作(例如,可由前景中之短讀取預佔用之背景中之較長可中斷複製,其中背景複製稍後重新開始)。
可使用之另一類型之複製操作係複製清單(CopyList)命令,其提供源頁及目的地頁/區塊之一彈性參數化清單。可使用兩類複製清單命令:複製頁(CopyPage)及複製區塊(CopyBlock)。藉助複製頁命令,將N個頁自源頁複製至目的地頁。複製頁命令可針對一立即回應而在前景中發佈,於此情形中,前景LUN保持忙碌直至讀取及城市化階段完成為止,以便新到達的主機命令不能中斷此命令。藉助複製區塊命令,在背景中將N個頁面自源頁複製至一目的地區塊。將複製區塊命令較佳地發佈為一背景命令,於此情形中該一或多個背景LUN忙碌僅直至接受一複製清單為止,且新到達的主機前景命令可導致複製區塊命令之一「暫停」。由於複製區塊命令並未完成,可發佈一讀取後設資料(ReadMetaData)命令以輪詢該複製區塊命令之部分之完成。(在此文件結束時論述與此等命令相關的額外資訊)。
藉助上文論述之前景/背景特徵,此等實施例可提供解決所提及之ONFI限制之一背景複製能力。具體而言,NAND控制器100可用於實施可在背景中以減小的優先級運行之一多頁可中斷複製命令。NAND控制器100可管理背景操作以便可在任何時間發佈前景命令且並不知曉及並不被進展中的背景命令約束。
返回至該等圖式,圖3係圖解說明在前景命令與背景命令之間進行區分之大體概念之一實施例之一方塊圖。如圖3中所展示,主機控制器121能夠進行本體介面處理(諸如SATA及PCIe)且可發佈前景命令(例如,服務儲存命令,諸如讀取及寫入)及背景命令(例如,快閃記憶體管理命令,諸如複製及移動)兩者。(應注意,儘管在此實例中主機控制器121能夠發佈前景命令及背景命令兩者,但如上文提及,NAND控制器100本身亦可產生一背景命令)。
在NAND控制器100自主機控制器121接收一命令時,其判定該命令係應盡可能快地執行之一前景命令(即使此意指中斷在進展中之一背景命令)還是該命令係可儲存供稍後執行之一背景命令(或在無較高優先級命令等待或在進展中之情況下立即執行)。舉例而言,如圖3中所展示,在該命令係針對具有固定時序之一主機ONFI異動(例如,一抹除命令、一程式化命令、一讀取命令、一舊型間接寫回命令)之情況下,NAND控制器100將該命令處理為一前景命令,賦予該命令頂級優先級並盡可能快地伺服該命令。另一方面,在該命令係針對由於其不具有固定時序因此可被優先執行之一資料移動/重定位命令(例如,一背景複製命令)之情況下,NAND控制器100將該命令處理為一背景命令,賦予該命令較低優先級並整個地或部分地在前景命令之間的時間上伺服該命令。控制器100可基於該命令本身中之某些區分特徵或可使用其他機制來判定一命令是一前景命令還是一背景命令,如下文將論述。
返回至圖1,在控制器100中展示之各種組件可用於實施例上文論述之方法。舉例而言,佇列(記憶體)100可用於儲存背景命令直至其已就緒以執行為止,如下文將論述,佇列100中之背景命令可以任何次序執行,不必以其中該等背景命令儲存於佇列100中之一次序。而且,狀態暫存器112用於指示哪些LUN 130正由一前景或背景命令在其上操作,且頁(資料)緩衝器114用於儲存作為一前景或背景命令之部分正讀取或寫入至LUN 130之資料。(狀態暫存器112及/或頁緩衝器114可經共用以與前景命令及背景命令兩者一起使用,或可與前景命令及背景命令一起使用單獨的狀態及/或頁緩衝器)。ECC模組116較佳地與資料緩衝器一起用於前景命令及背景命令兩者。
鑒於執行背景操作之前述大體論述,下列段落提供額外實施方案細節。應注意,此等細節並不意欲限定申請專利範圍之範疇,且因此不應被讀取至申請專利範圍中除非在其中明確地陳述。大體而言,下列段落係關於下列主題:
I. 區分經由單層級ONFI匯流排協定發送之前景命令及背景命令;
II. 針對前景命令及背景命令之獨立忙指示符;
III. 針對前景命令及背景命令之獨立命令/操作狀態指示符(例如,成功/失敗);
IV. 用於將前景/背景命令仲裁至相同LUN之規則/機制;
V. 用於同時前景/背景命令至相同LUN之一致性規則/機制;
VI. 針對前景/背景命令之回應時間之規範;及
VII. 針對前景/背景命令之資料緩衝管理/共用。
I. 區分經由單層級ONFI匯流排協定發送之前景命令及背景命令
存在數個方式來以保存ONFI 2.2/2.3協定相容性之一透明方式實施自主機至ONFI目標之一前景/背景命令指示。下列係經由具有一8 LUN晶粒封裝之一ONFI匯流排對一前景/背景命令協定之某些實例性實施方案:
1. 主機控制器可僅將前景命令發佈至CE0(晶片賦能/選擇0)上之LUN 0至7,且僅將背景命令發佈至CE1上之相同LUN 0至7。主機控制器將此等視為完全獨立LUN且因此不對其施加任何發佈、排序或忙約束。控制器100知曉其參考相同0至7 LUN且其管理背景命令之交錯/優先執行。
2. 主機控制器及ONFI目標就一廠商特定(VSP)位元/旗標達成一致以在所發佈命令之一位址階段中指定一命令是一前景命令還是背景命令。該目標將前景/背景=0命令引導至(正常ONFI)前景LUN處理,同時該目標將前景/背景=1命令引導至背景LUN處理。(主機控制器可經受對LUN 0至7之發佈或排序相依性)。
3. 在以背景模式(諸如複製)支援僅一小子組命令之情況下,則可界定單獨的賣方專用(「VSP」)命令以區別前景命令(例如,複製頁命令)與背景命令(例如,複製區塊命令)。暗中地,將在前景中立即執行一複製頁命令,而將接受一複製區塊命令用於無立即完成時間或預定完成時間地進行背景處理。
II. 針對前景命令及背景命令之獨立忙指示符
下列係數個實例性方式來以保存ONFI 2.2/2.3協定相容性之一透明方式實施自ONFI目標返回至主機控制器之一前景/背景命令忙指示:
1. 與該兩組前景及背景LUN一起,NAND控制器100可實施兩組狀態暫存器112(一組針對前景命令及另一組針對背景命令),每一組含有一獨立LUN忙位元。前景及背景狀態暫存器112各自具有一個命令之一容量,且控制器100管理該等位元以反映何時前景或背景命令在進展中或已完成,指示是否可提交另一命令用於執行。主機控制器121可藉由將一讀取狀態命令發佈至適當LUN來檢查前景或背景忙狀態。
圖4係其中存在8個LUN且每LUN一個暫存器位置之一實施例之一實例性狀態暫存器之一圖解說明。下列係各種狀態值中之每一者之一簡要說明:
FAIL-在設定為1之情況下,則最後一命令發生故障。在清除至0之情況下,則最後一命令係成功的。在一項實施例中,此位元對讀取、程式化及抹除操作有效。
FAILC-此位元係與在某些實施例中不支援的經快取命令一起使用。
CSP(命令專用)-此位元具有命令專用意義。在某些實施例中,針對讀取操作,在將CSP設定至1之情況下則最後一讀取操作超過ECC臨限值,且主機控制器應採取適當行動(例如,將資料重寫入至一新位置)。在將FAIL設定至1時,CSP位元係「隨意(don't care)」。針對其他操作,保留此位元。
ARDY-此位元係與在某些實施例中不支援之經快取命令一起使用。
RDY-在設定為1之情況下,則LUN或平面位址就緒用於另一命令且該狀態值中之所有其他位元係有效的。在清除至0之情況下,則所發佈之最後一命令尚未完成且狀態暫存器位元5:0無效且應由主機忽略。在快取操作在使用中時,此位元指示是否可接受另一命令,且ARDY指示最後一操作是否完成。
R-保留。
VSP-賣方專用。
WP_n-寫入保護
2. 前景忙可如在標準ONFI中來工作,而背景既定命令(由一前景/背景旗標位元指示)可被本質上「吞噬」(亦即,不指示任何LUN忙)其可在背景中異步處理直至完成為止。主機控制器121可藉由發佈一追蹤讀取狀態-類型命令(諸如一VSP「讀取後設資料」命令)來查詢背景命令之完成,其中NAND控制器100可藉助資料有用負載內之一旗標或計數器來指示背景命令之進展或完成。針對前景命令,可將標準讀取狀態命令發佈至適當LUN。
3. NAND控制器100可支援高達某一所指示佇列深度之前景及/或背景命令之「排佇列」。於此情形中,前景或背景LUN忙位元或將從不變忙,或忙位元將指示已到達佇列110之容量。於此配置中,將較佳地要求主機控制器121絕不超出佇列提交限制,及/或可提供指示佇列中之個別命令當前正執行至之佇列飽和度或參考之一延伸方法。
III. 針對前景命令及背景命令之獨立命令/操作狀態指示符(例如,成功/失敗);
下列係數個實例性方式來以保存ONFI 2.2/2.3協定相容性之一透明方式實施自ONFI目標返回至主機控制器121之一前景/背景命令成功/失敗指示:
1. 藉助上文章節中提及之兩組狀態暫存器112(一組針對前景命令及另一組針對背景命令),每一狀態暫存器可反映其最近完成操作之狀態。主機控制器121可藉由將讀取狀態命令發佈至適當LUN來檢查前景或背景失敗狀態。
2. NAND控制器100結合主機控制器121可提供一延伸狀態機制,其可針對前景及背景操作兩者提供更詳細的狀態報告且可提供用於背景操作之狀態之異步性質之便利處置。
3. NAND控制器100可內部地維持前景命令及背景命令之完成狀態且可在接收一讀取狀態命令及一前景或背景命令之一規範時在相同狀態暫存器位元位置中提供所請求命令(前景或背景)。
IV. 用於將前景/背景命令仲裁至相同LUN之規則/機制
在給定如上文提及之兩組獨立的前景及背景LUN及狀態暫存器112之情況下,NAND控制器100可內部地管理相同LUN上之前景命令及背景命令之交錯(主機控制器121可需要遵守前景與背景位址之間的某些同時存取規則)。大體而言,對進展中的背景操作將暫時地優先執行前景命令。在不存在位址重疊之情況下,則前景命令及背景命令將無衝突。
V. 用於同時前景/背景命令至相同LUN之一致性規則/機制
藉助存取(前景命令及背景命令)至一單個LUN/NAND晶粒之兩個獨立但同時串流之添加容量,控制器100較佳地遵守一組一致性規則以防止在參與到相同記憶體範圍內之交錯操作中時由兩個串流之間的抹除、程式化及讀取之錯誤排序所致的資料危害或資料訛誤。下列係在存在前景及背景實體之同時存取時管理命令一致性之實例性方式:
1. 可使用一簡單「蠻力」方法,其中可固持前景命令(藉由在一背景操作之源LUN及目的地LUN之狀態暫存器中設定「忙」)直至完成該背景操作為止。舉例而言,在狀態暫存器指示兩個LUN係忙(由於一LUN至LUN背景複製/移動操作)之情況下,狀態暫存器可針對讀取及程式化操作之整個持續時間繼續被標記為忙。
2. 主機控制器121可防止前景命令及背景命令之同時發佈,此同時發佈將意指一潛在的記憶體一致性衝突。
3. NAND控制器100可使用內部一致性規則。圖5將用於藉助在LUN至LUN背景複製期間同時主機存取之一實例來圖解說明內部一致性規則之使用。於此實施例中,在主機命令之目標區塊(例如,將讀取或寫入之一區塊位址)與作用背景複製區塊不相同之情況下,則主機命令可無約束地繼續進行。
而且,在一新緩衝器可用之情況下,作用背景複製源LUN(自NAND頁暫存器讀取)之後續主機讀取可繼續進行。將對作用背景複製源LUN之後續主機寫入拖延直至源緩衝器變成目的地緩衝器為止(在新的源緩衝器可用之情況下);否則,直至完成NAND程式複製階段為止。
將作用背景複製目的地LUN之後續主機讀取(程式化至NAND頁暫存器)拖延直至在NAND程式化時間期間將新資料(自源LUN)寫入至目的地LUN緩衝器為止。將後續主機寫入拖延直至完成目的地緩衝器NAND程式(直至完成複製)為止。可採用數個約束。舉例而言,在一項實施例中,較佳地不將LUN至LUN複製視為一目標命令(亦即,所有LUN將變為「忙」)。而且,可較佳地使一(SA,DA)複製操作不穿過LUN或區塊邊界。亦可較佳地約束源LUN之重新寫入及自目的地LUN緩衝器進行讀取直至將目的地LUN程式視為一「成功」為止。
作為另一實例,圖6圖解說明在一LUN至LUN背景複製操作期間用於主機存取之一致性規則,其中一背景複製自源LUN1(P9至P14)至目的地LUN4(P12至P17)。如此圖中圖解說明,針對一主機讀取SA+3(LUN1至P12),源LUN未被該複製修改,因此在任何時間皆允許讀取。針對一主機寫入SA+3(LUN1至P12),在已將源LUN資料傳送至目的地位址(LUN4至P15)之後進行重新寫入係可以的。針對一主機讀取DA+3(LUN4至P15),將該命令保持直至已將一新資料值(自LUN1至P12)傳送至目的地位址(LUN4至P15)為止。一主機寫入DA+3(LUN4至P15)本質上係不允許之下一程式化命令。在NAND技術中,未界定寫入後寫入(WAW)。期望在下一寫入之前首先發生一區塊抹除。
VI. 針對前景/背景命令之回應時間之規範
存在關於可如何處置此之數個選項。在此處詳細說明一個簡單途徑。儘管北京命令通常具有開放時序(直至其完成為止),但前景命令之時序將在一背景命令在進行中時受到某一時間之影響,且存在在一邏輯或實體邊界處中斷其之延時以便切換至前景命令。為解決此,可使用兩組時序參數。一個時序參數係用於標稱/典型最壞情形之抹除、程式化及讀取,其係在多數時間(~>90%)遞送。另一時序參數係針對例外'長的最壞情形抹除、程式化及讀取、在LUN係忙的時或針對致使添加回應延遲之例外/重試/復原類型操作。下列圖表提供此等各種參數之圖解說明:
在僅在ONFI參數頁中報告較長的例外最大值時序之情況下,期望主機控制器將針對此「最壞情形」設定其輪詢間隔,此將導致主機控制器將在>90%時間內勝過此時序之效能不必要地降低一大的量。
VII. 針對前景/背景命令之資料緩衝管理/共用
在一NAND控制器中,諸如圖7中所展示之NAND控制器,其含有一ECC模組716供用於執行ECC功能及將程式化及讀取操作調度至多個LUN/NAND晶粒,較佳地將資料緩衝於主機介面(匯流排0:ONFI)與快閃介面(匯流排1:ONFI、HSI、TM等)之間的頁緩衝器714中。儘管此可在技術上藉助一相當小的FIFO完成,但較佳地藉助至少具有一NAND頁暫存器之大小(例如,8 KB/16 KB)之至少一個緩衝器來實施。此頁緩衝器714可用於儲存寫入至NAND快閃LUN或自NAND快閃LUN讀取之資料。舉例而言,在一頁複製操作之情形中,使用相同緩衝器自讀取階段至程式化階段係有效的。進一步地,由於ONFI支援經由多個LUN之同時操作,因此每LUN提供一個頁緩衝器係有益的,此促進交錯的LUN操作。而且,使用最小大小之僅一單個頁緩衝器(在所有LUN中間共用)將最小化控制器(晶粒大小)之成本,但以增加韌體複雜度(例如,管理共用LUN中間的單個緩衝器)及可能降低效能為代價。
應注意,利用每LUN/晶粒多個頁緩衝器(透過硬體或韌體)將實現重疊的匯流排0傳送(自主機)至針對LUN n在控制器中之一第二緩衝器,而自控制器中之一第一緩衝器(至快閃)之一匯流排1傳送仍將針對彼相同LUN n繼續進行。
假設提供每一作用LUN/晶粒至少一個頁緩衝器且此頁緩衝器在讀取或程式化操作之持續期間係忙的,則可考量可如何使用及共用此等緩衝器。大體而言,資料緩衝器共用可跨越兩個維度來考量:(1)一ONFI目標(控制器+N數目個LUN)上之多個LUN(NAND晶粒)中間的資料緩衝器共用及(2)對相同LUN之前景及背景操作中間的資料緩衝器共用,其與此等實施例有關。
現在,下列段落將論述複製及間接寫回操作之使用及其對前景及背景操作之意義。基線ONFI標稱讀取及程式化操作佔用頁緩衝器直至彼等操作完成為止,然後不再需要其內容。另一方面,複製操作(諸如舊型ONFI中之間接寫回)需要來自第一操作(讀取)之資料以在第二操作(程式化)之後仍然可用。藉助在控制器中使用ECC,可存在對一緩衝器傳送或一「交遞」指示符之需要。
如上文論述,一前景複製頁命令係對某些或不同LUN/晶粒之一間接寫回讀取命令加上一間接寫回程式化命令。藉助此命令,控制器讀取及然後複製/寫入一單個頁。於此過程期間,源LUN在間接寫回讀取命令期間變「忙」,且目的地LUN在間接寫回程式化命令期間變「忙」。此命令使用一單個頁緩衝器。該頁緩衝器首先作為源LUN緩衝器供用於讀取,且然後變成目的地LUN緩衝器供用於程式化。
在目的地LUN並不等於源LUN之情況下,將藉由下列三個方法中之一者較佳地指定一新目的地LUN緩衝器用於間接寫回程式化階段:(1)暗示前一間接寫回讀取LUN緩衝器變成當前間接寫回程式化LUN(亦即,命令接近度),但此排除間接寫回命令之一LUN交錯,(2)界定該間接寫回程式化命令中之一位元欄位以指定哪一頁/LUN緩衝器係資料源,或(c)添加一VBX(虛擬緩衝器交換)命令(例如,將源LUN 3交換至目的地LUN 4)。例如:將源LUN 3交換至目的地LUN 4。
針對前景/背景多頁複製,較佳地指定複製長度(例如,以頁為單位),其將界定一新「間接寫回長度」命令或參數。多個頁將被順序地或隨機地讀取,然後順序地程式化至一目的地區塊。然而,在程式化階段之前讀取數個(>1)頁要求控制器中之更多頁緩衝器。該多頁複製亦可使用僅一個頁緩衝器在背景中執行為(多個頁之)一次一頁,於此情形中源LUN及目的地LUN將係每頁「忙」的(或僅「背景忙」)。如藉助其他背景命令,一背景複製命令可被一前景命令中斷,其中效能係由前景/背景頁緩衝器提供/共用來影響(如下文將論述)。
亦可使用藉助組譯語言佈建(assembly provision)對區塊或子區塊複製之一命令。於此命令中,一散佈收集清單(SGL)可指定多個源頁及單個目的地區塊,其中源LUN及目的地LUN可係相同或不同。可將頁緩衝至二進制快閃頁中直至「摺疊」至MLC/每胞3位元之頁。
如上文提及,前景/背景緩衝器管理可涉及對相同LUN之資料緩衝器選項,該相同LUN將處置在一背景複製(或其他)操作可在相同LUN上在進展中時到達之同時前景操作之情境。如上文論述,可使用專屬前景及背景頁緩衝器,或可在前景命令與背景命令之間共用一單個緩衝器。提供專屬前景頁緩衝器及背景頁緩衝器係最耗費成本的。在一前景命令使用與一背景命令不同之一頁緩衝器之情況下,則該背景頁緩衝器可被暫停且在中斷前景操作期間不被「干擾」。在前景命令完成且一頁緩衝器重載入並非必需時可順利地重新開始此選項。另一方面,在前景命令與背景命令之間共用相同頁緩衝器可減小效能。可藉由前景命令在頁邊界處中斷一背景複製命令,且一前景命令等待直至一背景操作之程式化部分藉助單個LUN緩衝器完成為止,或主機前景命令將優先於該背景複製操作予以執行。此可優先執行該複製之讀取階段(重新開始之複製可稍後重新讀取源頁)且可允許複製之程式化階段之一中止(且稍後重新開始該程式化階段,於此情形中源頁將被重新讀取)。
最後,如上文提及,複製區塊命令係可與此等實施例一起使用之一類型之命令之一實例,且讀取後設資料命令可用於讀取一複製命令之背景操作狀態。下列段落提供關於此等及其他複製相關操作之更多資訊。
在一項實施例中,複製清單命令提供一機制以將頁自各個區塊複製至一完全區塊。此可由主機用於單位階胞(SLC)及多位階胞(MLC)或更大區塊之壓縮,及有效地將資料自SLC移動至MLC或更大。複製較佳地自一區塊之第一頁開始且繼續至區塊之最後一頁。在一項實施例中,存在兩類複製清單命令:複製頁及複製區塊。複製頁將資料自SLC複製至SLC中之完全目的地頁。在該複製已完成之後返回「就緒」。複製區塊將資料自SLC及MLC或更大複製至MLC或更大。一旦該命令已被控制器接受並在背景中出現複製之執行,即返回該命令之「就緒」。
複製清單命令將一LUN內之資料複製至一完全區塊。在下表中給出在一項實施例中之所支援複製清單源及目的地:
複製清單命令將一LUN內之資料複製至一完全區塊。完全SLC區塊程式化可作為一系列複製頁命令出現,每一者在前一命令完成之頁後的頁處開始。完全MLC或更大區塊程式化可作為一系列複製區塊命令出現,每一者在前一命令完成之頁後的頁處開始。為改良複製操作之效率,可支援內部快閃複製。此節省時間及電力乃因複製在不在快閃匯流排上傳送資料且不涉及控制器之情況下在快閃內出現。藉助內部快閃複製,不要求資料之重對準。而且,內部快閃複製可增加錯誤傳播,因此控制器較佳地記錄每一頁可能有多少內部複製。
為支援內部快閃複製,可支援間接寫回頁及間接寫回區塊命令。控制器可在內部複製係可能的情況下做出最終判定。主機可在程式化SLC區塊時接連地組合複製頁及間接寫回頁命令。類似地,主機可在程式化MLC或更大區塊時組合複製區塊及間接寫回區塊命令。
複製頁及複製區塊命令之進展狀態可由讀取後設資料命令給出。讀取後設資料命令可返回所複製之每一傳送單元之後設資料。針對SLC操作,一旦前一複製頁命令完成且返回「就緒」,讀取後設資料命令即可用。讀取後設資料可在所複製之前N個頁上維持。一旦已讀取後設資料,即較佳地抹除所儲存後設資料。
針對MLC或更大操作,讀取後設資料命令可用於標示操作之進展。將最大數目個未處理頁界定為一系統參數(舉例而言,預設16)。控制器較佳地具有內部地儲存多達每LUN每開放區塊16個複製頁之能力(所准許之開放區塊數目可由控制器上之緩衝器空間設定)。當在複製頁上返回狀態時,可將欲複製之額外頁傳送至控制器。在此實例中,只要未處理頁之數目保持低於16,即將接受命令。在此實例中,在應將多於16個頁傳送至控制器時,「就緒」將較佳地保持低直至未處理頁程式化操作之數目落至低於此臨限值。控制器亦較佳地保持忙直至已完成未處理頁程式化操作至一區塊末端。在區塊末端正被程式化時,一新區塊命令較佳地不能被接受直至已完成前一區塊程式化為止。該區塊之後設資料應較佳地在開始一新區塊程式化之前被讀取。
針對間接寫回命令,由於後設資料不可用,因此較佳地僅在讀取後設資料命令中返回已被傳送之區塊之數目。此允許主機判定當前未處理頁之數目及其可發送用於程式化之額外頁之數目。為區分針對複製區塊命令返回之就緒狀態,此等命令可使用CE1,與被賦予CE0之其他命令相反。此允許在複製區塊命令在背景中執行的同時諸如規則程式化及讀取之前景操作繼續。
在一複製清單命令在進展中時,主機較佳地並不程式化目的地區塊或源頁中之任一者。較佳地准許源區塊中之頁之讀取。較佳地僅在一MLC或更大區塊(其係開放以用於程式化且一複製區塊操作針對其而未處理)之程式化已完成之情況下執行指向至彼區塊中之一位址之一讀取命令;否則,較佳地針對該命令返回錯誤狀態。
針對複製區塊及複製清單命令,較佳地在接受該命令之前進行確認核對;否則,較佳地以一命令序列錯誤返回該命令。在複製區塊目的地區塊已作用之情況下,較佳地核對目的地頁係此區塊上之前一複製區塊命令之下一連貫頁。
結論
意欲將前述詳細說明理解為對本發明可採取之選定形式之一圖解說明而非對本發明之一界定。本發明之範圍僅將由以下申請專利範圍(包含所有等效內容)來界定。而且,以下請求項中之某些可陳述一組件操作以執行某一功能或組態用於某一任務。應注意,此等並非限制性限定。亦應注意,申請專利範圍中所陳述之行動可以任何次序執行,未必以對其進行陳述之次序執行。
100...NAND控制器
105...處理器
110...佇列
112...狀態暫存器
114...頁緩衝器
116...錯誤校正碼模組
120...主機
121...控制器
125...NAND介面
130...NAND快閃記憶體裝置
135...NAND介面
221...中央主機控制器
230...NAND快閃裝置
714...頁緩衝器
716...錯誤校正碼模組
圖1係一實施例之一實例性控制器之一方塊圖。
圖2係一實施例之一固態磁碟機之一方塊圖。
圖3係圖解說明在前景命令與背景命令之間進行區分之大體概念之一實施例之一方塊圖。
圖4係一實施例之一實例性狀態暫存器之一圖解說明。
圖5係在一實施例之一控制器中之一致性規則之使用之一圖解說明。
圖6係在針對一LUN至LUN複製之一實施例中之一實例性複製操作期間之一致性規則之一額外圖解說明。
圖7係一實施例之一實例性控制器之一方塊圖。
圖8係一先前技術主機控制器及ONFI目標之一方塊圖。
100...NAND控制器
105...處理器
110...佇列
112...狀態暫存器
114...員緩衝器
116...錯誤校正碼模組
120...主機
121...控制器
125...NAND介面
130...NAND快閃記憶體裝置
135...NAND介面

Claims (52)

  1. 一種控制器,其包括:一第一介面,透過其與一主機通信;一第二介面,透過其與複數個快閃記憶體裝置通信,其中該等快閃記憶體裝置中之至少一者包含一三維記憶體,其中該三維記憶體包含彼此上下垂直堆疊之複數個記憶體胞層;一記憶體,其經組態以儲存複數個背景命令,其中該等背景命令係用於將在該複數個快閃記憶體裝置中之一或多者中執行之操作;一處理器,其與該第一介面及該第二介面及該記憶體通信,其中該處理器操作以:執行經由該第一介面自該主機接收之一前景命令,其中該前景命令係針對將在該複數個快閃記憶體裝置中之一或多者中執行之一操作,且其中該處理器將該前景命令無中斷地執行至完成;執行儲存於該控制器之記憶體中之一背景命令,其中該處理器執行該背景命令直至完成為止或優先執行一前景命令;及在優先執行該前景命令之情況下,在一稍後時間處重新開始執行該背景命令;及一錯誤校正碼模組,其經組態以在自該複數個快閃記憶體裝置讀取一頁資料之部分時,校正該等部分中之錯誤,而非等到自該複數個快閃記憶體裝置讀取整頁資料 之後才校正該等錯誤;其中一前景命令具有一預定完成時間,而一背景命令則否;其中該第一介面及該第二介面中之至少一者包含一NAND介面,其經組態以使用一NAND介面協定傳送資料;及其中該前景命令或該背景命令係將一頁資料程式化至該複數個快閃記憶體裝置中之一記憶體區塊之一命令,及其中回應於將該頁資料程式化至該複數個快閃記憶體裝置中之該記憶體區塊之一失敗,該處理器係進一步經組態以將該頁及該區塊中之先前頁複製至該複數個快閃記憶體裝置中之一置換區塊。
  2. 如請求項1之控制器,其中儲存於該控制器之記憶體中之該等背景命令中之至少一者係經由該第一介面自該主機接收。
  3. 如請求項1之控制器,其中儲存於該控制器之記憶體中之該等背景命令中之至少一者係由該處理器產生。
  4. 如請求項1之控制器,其中一前景命令包括一讀取命令、一寫入命令或一抹除命令。
  5. 如請求項1之控制器,其中一背景命令包括下列命令中之一或多者:一複製命令、一移動命令、一資料擾碼命令、一行置換命令、用以處置寫入中止之一命令、用以處置程式化故障之一命令、一讀取清理命令、一損耗平均命令(wear leveling command)、一壞區塊管理命令、 一備用區塊管理命令、一錯誤偵測碼(EDC)命令、一狀態命令、一加密命令、一錯誤復原命令、及一位址映射命令。
  6. 如請求項1之控制器,其中該處理器進一步操作以針對前景命令及背景命令提供獨立的命令狀態指示符。
  7. 如請求項1之控制器,其中該處理器進一步操作以根據一組規則仲裁衝突的前景命令與背景命令。
  8. 如請求項1之控制器,其中該處理器進一步操作以針對同時的前景命令與背景命令應用一組一致性規則。
  9. 如請求項1之控制器,其中該處理器進一步操作以根據指定回應時間執行前景命令及背景命令。
  10. 如請求項1之控制器,其進一步包括一或多個資料緩衝器,且其中該處理器進一步操作以針對前景命令及背景命令管理該一或多個資料緩衝器之使用。
  11. 如請求項1之控制器,其中該處理器進一步操作以在經由一單層級開放NAND快閃介面(ONFI)匯流排發送之前景命令與背景命令之間進行區分。
  12. 如請求項1之控制器,其中該處理器進一步操作以針對前景命令及背景命令提供獨立的快閃記憶體裝置忙指示符。
  13. 如請求項1之控制器,其中該第一介面係經組態以接收用於個別頁之多個讀取或寫入請求,且該第一介面經組態以同時處置該多個讀取或寫入請求。
  14. 一種用於執行一背景操作之方法,該方法包括: 在與一主機及複數個快閃記憶體裝置通信之一控制器中執行,其中該等快閃記憶體裝置中之至少一者包含一三維記憶體,其中該三維記憶體包含彼此上下垂直堆疊之複數個記憶體胞層;執行自該主機接收之一前景命令,其中該前景命令係針對將在該複數個快閃記憶體裝置中之一或多者中執行之一操作,且其中該控制器將該前景命令無中斷地執行至完成;執行儲存於該控制器之記憶體中之一背景命令,其中該背景命令係針對將在該複數個快閃記憶體裝置中之一或多者中執行之一操作,且其中該控制器執行該背景命令直至完成為止或優先執行一前景命令;在優先執行該背景命令之情況下,在一稍後時間處重新開始執行該背景命令;及在自該複數個快閃記憶體裝置讀取一頁資料之部分時,校正該等部分中之錯誤,而非等到自該複數個快閃記憶體裝置讀取整頁資料之後才校正該等錯誤;其中一前景命令具有一預定完成時間,而一背景命令則否;其中該第一介面及該第二介面中之至少一者包含一NAND介面,其經組態以使用一NAND介面協定傳送資料;及其中該前景命令或該背景命令係將一頁資料程式化至該複數個快閃記憶體裝置中之一記憶體區塊之一命 令,及其中回應於將該頁資料程式化至該複數個快閃記憶體裝置中之該記憶體區塊之一失敗,將該頁及該區塊中之先前頁複製至該複數個快閃記憶體裝置中之一置換區塊。
  15. 如請求項14之方法,其中自該主機接收儲存於該控制器之記憶體中之該等背景命令中之至少一者。
  16. 如請求項14之方法,其中由該控制器產生儲存於該控制器之記憶體中之該等背景命令中之至少一者。
  17. 如請求項14之方法,其中一前景命令包括一讀取命令、一寫入命令或一抹除命令。
  18. 如請求項14之方法,其中一背景命令包括下列命令中之一或多者:一複製命令、一移動命令、一資料擾碼命令、一行置換命令、用以處置寫入中止之一命令、用以處置程式化故障之一命令、一讀取清理命令、一損耗平均命令(wear leveling command)、一壞區塊管理命令、一備用區塊管理命令、一錯誤偵測碼(EDC)命令、一狀態命令、一加密命令、一錯誤復原命令、及一位址映射命令。
  19. 如請求項14之方法,其中該控制器操作以針對前景命令及背景命令提供獨立的命令狀態指示符。
  20. 如請求項14之方法,其中該控制器操作以根據一組規則仲裁衝突的前景命令與背景命令。
  21. 如請求項14之方法,其中該控制器操作以針對同時的前景命令與背景命令應用一組一致性規則。
  22. 如請求項14之方法,其中該控制器操作以根據指定回應時間執行前景命令及背景命令。
  23. 如請求項14之方法,其中該控制器包括一或多個資料緩衝器,且其中該控制器操作以針對前景命令及背景命令管理該一或多個資料緩衝器之使用。
  24. 如請求項14之方法,其中該控制器操作以在經由一單層級開放NAND快閃介面(ONFI)匯流排發送之前景命令與背景命令之間進行區分。
  25. 如請求項14之方法,其中該控制器操作以針對前景命令及背景命令提供獨立的快閃記憶體裝置忙指示符。
  26. 如請求項14之方法,其中該第一介面係經組態以接收用於個別頁之多個讀取或寫入請求,且該第一介面經組態以同時處置該多個讀取或寫入請求。
  27. 一種控制器,其包括:一第一介面,透過其與一主機通信;一第二介面,透過其與複數個快閃記憶體裝置通信,其中該等快閃記憶體裝置中之至少一者包含一三維記憶體,其中該三維記憶體包含彼此上下垂直堆疊之複數個記憶體胞層;一記憶體,其經組態以儲存複數個背景命令,其中該等背景命令係用於將在該複數個快閃記憶體裝置中之一或多者中執行之操作;一處理器,其與該第一介面及該第二介面及該記憶體通信,其中該處理器操作以: 執行經由該第一介面自該主機接收之一前景命令,其中該前景命令係針對將在該複數個快閃記憶體裝置中之一或多者中執行之一操作,且其中該處理器將該前景命令無中斷地執行至完成;執行儲存於該控制器之記憶體中之一背景命令,其中該處理器執行該背景命令直至完成為止或優先執行一前景命令;及在優先執行該前景命令之情況下,在一稍後時間處重新開始執行該背景命令;及一錯誤校正碼模組,其經組態以在自該複數個快閃記憶體裝置讀取一頁資料之部分時,校正該等部分中之錯誤,而非等到自該複數個快閃記憶體裝置讀取整頁資料之後才校正該等錯誤;其中一前景命令具有一預定完成時間,而一背景命令則否;其中該第一介面及該第二介面中之至少一者包含一NAND介面,其經組態以使用一NAND介面協定傳送資料。
  28. 如請求項27之控制器,其中儲存於該控制器之記憶體中之該等背景命令中之至少一者係經由該第一介面自該主機接收。
  29. 如請求項27之控制器,其中儲存於該控制器之記憶體中之該等背景命令中之至少一者係由該處理器產生。
  30. 如請求項27之控制器,其中一前景命令包括一讀取命 令、一寫入命令或一抹除命令。
  31. 如請求項27之控制器,其中一背景命令包括下列命令中之一或多者:一複製命令、一移動命令、一資料擾碼命令、一行置換命令、用以處置寫入中止之一命令、用以處置程式化故障之一命令、一讀取清理命令、一損耗平均命令(wear leveling command)、一壞區塊管理命令、一備用區塊管理命令、一錯誤偵測碼(EDC)命令、一狀態命令、一加密命令、一錯誤復原命令、及一位址映射命令。
  32. 如請求項27之控制器,其中該處理器進一步操作以針對前景命令及背景命令提供獨立的命令狀態指示符。
  33. 如請求項27之控制器,其中該處理器進一步操作以根據一組規則仲裁衝突的前景命令與背景命令。
  34. 如請求項27之控制器,其中該處理器進一步操作以針對同時的前景命令與背景命令應用一組一致性規則。
  35. 如請求項27之控制器,其中該處理器進一步操作以根據指定回應時間執行前景命令及背景命令。
  36. 如請求項27之控制器,其進一步包括一或多個資料緩衝器,且其中該處理器進一步操作以針對前景命令及背景命令管理該一或多個資料緩衝器之使用。
  37. 如請求項27之控制器,其中該處理器進一步操作以在經由一單層級開放NAND快閃介面(ONFI)匯流排發送之前景命令與背景命令之間進行區分。
  38. 如請求項27之控制器,其中該處理器進一步操作以針對 前景命令及背景命令提供獨立的快閃記憶體裝置忙指示符。
  39. 如請求項27之控制器,其中該第一介面係經組態以接收用於個別頁之多個讀取或寫入請求,且該第一介面經組態以同時處置該多個讀取或寫入請求。
  40. 一種用於執行一背景操作之方法,該方法包括:在與一主機及複數個快閃記憶體裝置通信之一控制器中執行,其中該等快閃記憶體裝置中之至少一者包含一三維記憶體,其中該三維記憶體包含彼此上下垂直堆疊之複數個記憶體胞層;執行自該主機接收之一前景命令,其中該前景命令係針對將在該複數個快閃記憶體裝置中之一或多者中執行之一操作,且其中該控制器將該前景命令無中斷地執行至完成;執行儲存於該控制器之記憶體中之一背景命令,其中該背景命令係針對將在該複數個快閃記憶體裝置中之一或多者中執行之一操作,且其中該控制器執行該背景命令直至完成為止或優先執行一前景命令;在優先執行該前景命令之情況下,在一稍後時間處重新開始執行該背景命令;及在自該複數個快閃記憶體裝置讀取一頁資料之部分時,校正該等部分中之錯誤,而非等到自該複數個快閃記憶體裝置讀取整頁資料之後才校正該等錯誤;其中一前景命令具有一預定完成時間,而一背景命 令則否;其中該第一介面及該第二介面中之至少一者包含一NAND介面,其經組態以使用一NAND介面協定傳送資料。
  41. 如請求項40之方法,其中自該主機接收儲存於該控制器之記憶體中之該等背景命令中之至少一者。
  42. 如請求項40之方法,其中由該控制器產生儲存於該控制器之記憶體中之該等背景命令中之至少一者。
  43. 如請求項40之方法,其中一前景命令包括一讀取命令、一寫入命令或一抹除命令。
  44. 如請求項40之方法,其中一背景命令包括下列命令中之一或多者:一複製命令、一移動命令、一資料擾碼命令、一行置換命令、用以處置寫入中止之一命令、用以處置程式化故障之一命令、一讀取清理命令、一損耗平均命令(wear leveling command)、一壞區塊管理命令、一備用區塊管理命令、一錯誤偵測碼(EDC)命令、一狀態命令、一加密命令、一錯誤復原命令、及一位址映射命令。
  45. 如請求項40之方法,其中該控制器操作以針對前景命令及背景命令提供獨立的命令狀態指示符。
  46. 如請求項40之方法,其中該控制器操作以根據一組規則仲裁衝突的前景命令與背景命令。
  47. 如請求項40之方法,其中該控制器操作以針對同時的前景命令與背景命令應用一組一致性規則。
  48. 如請求項40之方法,其中該控制器操作以根據指定回應時間執行前景命令及背景命令。
  49. 如請求項40之方法,其中該控制器包括一或多個資料緩衝器,且其中該控制器操作以針對前景命令及背景命令管理該一或多個資料緩衝器之使用。
  50. 如請求項40之方法,其中該控制器操作以在經由一單層級開放NAND快閃介面(ONFI)匯流排發送之前景命令與背景命令之間進行區分。
  51. 如請求項40之方法,其中該控制器操作以針對前景命令及背景命令提供獨立的快閃記憶體裝置忙指示符。
  52. 如請求項40之方法,其中該第一介面係經組態以接收用於個別頁之多個讀取或寫入請求,且該第一介面經組態以同時處置該多個讀取或寫入請求。
TW100142993A 2010-12-30 2011-11-23 控制器及用以執行背景操作之方法 TWI531965B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/982,833 US8819328B2 (en) 2010-12-30 2010-12-30 Controller and method for performing background operations

Publications (2)

Publication Number Publication Date
TW201227506A TW201227506A (en) 2012-07-01
TWI531965B true TWI531965B (zh) 2016-05-01

Family

ID=45003074

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100142993A TWI531965B (zh) 2010-12-30 2011-11-23 控制器及用以執行背景操作之方法

Country Status (6)

Country Link
US (2) US8819328B2 (zh)
EP (1) EP2659364A1 (zh)
KR (1) KR101821845B1 (zh)
CN (1) CN103282887A (zh)
TW (1) TWI531965B (zh)
WO (1) WO2012091798A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521375B2 (en) 2017-06-22 2019-12-31 Macronix International Co., Ltd. Controller for a memory system
TWI715409B (zh) * 2020-01-08 2021-01-01 點序科技股份有限公司 記憶體管理方法及儲存控制器
TWI789904B (zh) * 2018-05-22 2023-01-11 日商鎧俠股份有限公司 控制非揮發性記憶體之記憶體系統及方法

Families Citing this family (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7652922B2 (en) * 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
CN102449631B (zh) * 2009-05-26 2016-01-20 惠普开发有限公司 用于执行管理操作的系统和方法
US8966201B2 (en) * 2010-12-10 2015-02-24 Sandisk Technologies Inc. Method and system for hijacking writes to a non-volatile memory
US8918595B2 (en) * 2011-04-28 2014-12-23 Seagate Technology Llc Enforcing system intentions during memory scheduling
KR20130052971A (ko) * 2011-11-14 2013-05-23 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법
JP6111575B2 (ja) * 2012-09-19 2017-04-12 富士通株式会社 ストレージ装置、内部処理制御方法および内部処理制御プログラム
US9329990B2 (en) * 2013-01-11 2016-05-03 Micron Technology, Inc. Host controlled enablement of automatic background operations in a memory device
US9348774B2 (en) 2013-01-25 2016-05-24 Seagate Technology Llc Controller-opaque communication with non-volatile memory devices
DE112013006686T5 (de) * 2013-03-06 2015-11-05 Mitsubishi Electric Corp. Programmierbare Steuerung, programmierbares Steuersystem und Verfahren zum Erzeugen einer Ausführungsfehlerinformation
US9430333B2 (en) * 2013-03-14 2016-08-30 Microsoft Technology Licensing, Llc Recovery of application from snapshot
US9898951B2 (en) 2013-04-30 2018-02-20 Sioptica Gmbh Display screen and method for secure representation of information
US9195406B2 (en) 2013-06-28 2015-11-24 Micron Technology, Inc. Operation management in a memory device
US9824004B2 (en) * 2013-10-04 2017-11-21 Micron Technology, Inc. Methods and apparatuses for requesting ready status information from a memory
US20150143027A1 (en) * 2013-11-20 2015-05-21 Sage Microelectronics Corp. Solid state drive with raid functions
US10108372B2 (en) 2014-01-27 2018-10-23 Micron Technology, Inc. Methods and apparatuses for executing a plurality of queued tasks in a memory
KR20150091918A (ko) * 2014-02-04 2015-08-12 삼성전자주식회사 저장 장치 및 그것의 동작 방법
JP6403976B2 (ja) * 2014-04-09 2018-10-10 アルパイン株式会社 コンピュータプログラム、情報処理装置及び処理実行方法
KR102147916B1 (ko) 2014-04-14 2020-08-26 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US9471428B2 (en) 2014-05-06 2016-10-18 International Business Machines Corporation Using spare capacity in solid state drives
KR102251809B1 (ko) 2014-05-28 2021-05-13 삼성전자주식회사 메모리 시스템, 메모리 인터페이스 장치 및 메모리 시스템에서의 인터페이싱 방법
US10402319B2 (en) * 2014-07-25 2019-09-03 Micron Technology, Inc. Apparatuses and methods for concurrently accessing different memory planes of a memory
US9423961B2 (en) 2014-09-08 2016-08-23 Apple Inc. Method to enhance programming performance in multilevel NVM devices
US20160093383A1 (en) * 2014-09-30 2016-03-31 Sandisk Technologies Inc. Method and apparatus for relocating data in non-volatile memory
US9626286B2 (en) * 2014-10-03 2017-04-18 Sandisk Technologies Llc Hardware and firmware paths for performing memory read processes
US9959078B2 (en) 2015-01-30 2018-05-01 Sandisk Technologies Llc Multi-die rolling status mode for non-volatile storage
US10114690B2 (en) 2015-02-13 2018-10-30 Sandisk Technologies Llc Multi-die status mode for non-volatile storage
US9680509B2 (en) * 2015-03-27 2017-06-13 Intel Corporation Errors and erasures decoding from multiple memory devices
US9875053B2 (en) 2015-06-05 2018-01-23 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
US10289327B2 (en) 2015-06-05 2019-05-14 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
KR102367982B1 (ko) 2015-06-22 2022-02-25 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
KR20170001237A (ko) * 2015-06-26 2017-01-04 에스케이하이닉스 주식회사 상태 읽기를 수행하는 메모리 시스템 및 그것의 동작 방법
US9785362B2 (en) * 2015-07-16 2017-10-10 Qualcomm Incorporated Method and apparatus for managing corruption of flash memory contents
TWI556100B (zh) * 2015-10-26 2016-11-01 點序科技股份有限公司 快閃記憶體裝置及其交錯存取方法
US9996280B2 (en) 2016-03-15 2018-06-12 Sandisk Technologies Llc Data register copying for non-volatile storage array operations
CN105843749B (zh) * 2016-03-24 2019-01-25 浙江大学 一种基于FPGA的NAND Flash容错方法
US10481799B2 (en) 2016-03-25 2019-11-19 Samsung Electronics Co., Ltd. Data storage device and method including receiving an external multi-access command and generating first and second access commands for first and second nonvolatile memories
US10108450B2 (en) * 2016-04-21 2018-10-23 Samsung Electronics Co., Ltd. Mechanism for SSDs to efficiently manage background activity with notify
TWI615853B (zh) * 2016-05-18 2018-02-21 瑞昱半導體股份有限公司 記憶體裝置、記憶體控制器與其控制方法
US10423500B2 (en) 2016-06-01 2019-09-24 Seagate Technology Llc Technologies for limiting performance variation in a storage device
US11449232B1 (en) * 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US9940052B2 (en) 2016-09-14 2018-04-10 Micron Technology, Inc. Memory device configuration commands
US20180129559A1 (en) * 2016-11-08 2018-05-10 SK Hynix Inc. Semiconductor memory device, controller, and operating methods thereof
US10572344B2 (en) * 2017-04-27 2020-02-25 Texas Instruments Incorporated Accessing error statistics from DRAM memories having integrated error correction
US10884656B2 (en) * 2017-06-16 2021-01-05 Microsoft Technology Licensing, Llc Performing background functions using logic integrated with a memory
US10956245B1 (en) * 2017-07-28 2021-03-23 EMC IP Holding Company LLC Storage system with host-directed error scanning of solid-state storage devices
US10719474B2 (en) * 2017-10-11 2020-07-21 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices
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
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
CN110413206B (zh) * 2018-04-28 2023-05-30 伊姆西Ip控股有限责任公司 存储系统中的操作控制方法、设备和计算机程序产品
US11379155B2 (en) 2018-05-24 2022-07-05 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10636459B2 (en) 2018-05-30 2020-04-28 Micron Technology, Inc. Wear leveling
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
KR20200011832A (ko) * 2018-07-25 2020-02-04 에스케이하이닉스 주식회사 메모리 시스템에서의 데이터 처리 방법 및 장치
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
CN110858121B (zh) * 2018-08-23 2023-07-11 阿里巴巴集团控股有限公司 后台操作的调度方法及装置
KR20200025518A (ko) * 2018-08-30 2020-03-10 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
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
CN109324828B (zh) * 2018-09-21 2023-06-02 山东华芯半导体有限公司 一种在验证平台中实现闪存多命令并行执行的方法
CN109165076B (zh) * 2018-10-17 2022-03-29 Oppo广东移动通信有限公司 游戏应用程序的显示方法、装置、终端及存储介质
KR20200044460A (ko) * 2018-10-19 2020-04-29 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
CN109614049B (zh) * 2018-12-11 2022-03-25 湖南国科微电子股份有限公司 闪存控制方法、闪存控制器及闪存系统
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
CN110007853B (zh) * 2019-01-30 2022-06-28 镕铭微电子(济南)有限公司 一种Nandflash命令处理方法、装置、终端及存储介质
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US11036544B2 (en) 2019-02-12 2021-06-15 Samsung Electronics Co., Ltd. Memory controller and method controlling suspend mode
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
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
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
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
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
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
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 에스케이하이닉스 주식회사 스토리지 장치, 스토리지 장치의 동작 방법, 스토리지 장치 및 스토리지 장치를 제어하는 호스트 장치를 포함하는 컴퓨팅 장치 및 그것의 동작 방법
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
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
CN111124305B (zh) * 2019-12-20 2021-08-31 浪潮电子信息产业股份有限公司 固态硬盘磨损均衡方法、装置及计算机可读存储介质
US11892956B2 (en) * 2019-12-31 2024-02-06 Micron Technology, Inc. Performance of memory system background operations
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
US11150841B2 (en) * 2020-02-10 2021-10-19 Western Digital Technologies, Inc. NAND dropped command detection and recovery
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
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in 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
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
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
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
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
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
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
US11556272B2 (en) * 2020-09-18 2023-01-17 Kioxia Corporation System and method for NAND multi-plane and multi-die status signaling
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
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
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
KR102459879B1 (ko) * 2021-04-09 2022-10-27 (주)글루시스 Ssd의 랜섬웨어 감지 방법 및 컨트롤러
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
US20210255955A1 (en) * 2021-05-06 2021-08-19 Intel Corporation Disk caching and/or tiering with device internal busy information
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
US11513720B1 (en) 2021-06-11 2022-11-29 Western Digital Technologies, Inc. Data storage device having predictive analytics
US11797228B2 (en) 2021-06-24 2023-10-24 Western Digital Technologies, Inc. Efficient handling of background operations for improving sustained performance of host reads and writes
JP7096938B1 (ja) * 2021-08-27 2022-07-06 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN113703683B (zh) * 2021-08-28 2022-05-13 江苏华存电子科技有限公司 一种单一的优化冗余存储系统的装置

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5479633A (en) * 1992-10-30 1995-12-26 Intel Corporation Method of controlling clean-up of a solid state memory disk storing floating sector data
US6553476B1 (en) * 1997-02-10 2003-04-22 Matsushita Electric Industrial Co., Ltd. Storage management based on predicted I/O execution times
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US6145048A (en) * 1998-09-17 2000-11-07 Micron Technology, Inc. Method of processing system management interrupt requests
US6034882A (en) 1998-11-16 2000-03-07 Matrix Semiconductor, Inc. Vertically stacked field programmable nonvolatile memory and method of fabrication
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
US6553472B2 (en) 2001-01-12 2003-04-22 Sun Microsystems, Inc. Method for programming clock delays, command delays, read command parameter delays, and write command parameter delays of a memory controller in a high performance microprocessor
US6741502B1 (en) 2001-09-17 2004-05-25 Sandisk Corporation Background operation for memory cells
US6839826B2 (en) 2002-02-06 2005-01-04 Sandisk Corporation Memory device with pointer structure to map logical to physical addresses
US7081377B2 (en) 2002-06-27 2006-07-25 Sandisk 3D Llc Three-dimensional memory
US7171536B2 (en) 2002-10-28 2007-01-30 Sandisk Corporation Unusable block management within a non-volatile memory system
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
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US20060053247A1 (en) 2004-09-08 2006-03-09 Hugo Cheung Incremental erasing of flash memory to improve system performance
US7631132B1 (en) * 2004-12-27 2009-12-08 Unisys Corporation Method and apparatus for prioritized transaction queuing
ITMI20050063A1 (it) * 2005-01-20 2006-07-21 Atmel Corp Metodo e sistema per la gestione di una richiesta di sospensione in una memoria flash
US7315917B2 (en) 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US7447078B2 (en) 2005-04-01 2008-11-04 Sandisk Corporation Method for non-volatile memory with background data latch caching during read operations
US7206230B2 (en) 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US7281086B1 (en) * 2005-06-02 2007-10-09 Emc Corporation Disk queue management for quality of service
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
US7379330B2 (en) 2005-11-08 2008-05-27 Sandisk Corporation Retargetable memory cell redundancy methods
US7562180B2 (en) * 2006-03-28 2009-07-14 Nokia Corporation Method and device for reduced read latency of non-volatile memory
US7366029B2 (en) 2006-04-24 2008-04-29 Sandisk Corporation High-performance flash memory data transfer
US8127200B2 (en) 2006-12-24 2012-02-28 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors
US7984360B2 (en) 2006-12-31 2011-07-19 Ramot At Tel Aviv University Ltd. Avoiding errors in a flash memory by using substitution transformations
KR100869675B1 (ko) 2007-02-05 2008-11-21 지인정보기술 주식회사 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법
US8185899B2 (en) * 2007-03-07 2012-05-22 International Business Machines Corporation Prediction based priority scheduling
US7477547B2 (en) 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
EP2003556A1 (fr) * 2007-05-25 2008-12-17 Axalto SA Procédé de traitement par un dispositif électronique portable de commandes applicatives issues de canaux physiques, dispositif et système correspondants
US7904673B2 (en) * 2007-11-20 2011-03-08 Seagate Technology Llc Data storage device with histogram of idle time and scheduling of background and foreground jobs
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
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
US8239613B2 (en) 2008-12-30 2012-08-07 Intel Corporation Hybrid memory device
JP5167410B2 (ja) 2009-01-09 2013-03-21 株式会社日立製作所 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法
TWI386922B (zh) 2009-05-27 2013-02-21 Can improve the efficiency of the implementation of the hard disk device and its reading and writing methods
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
US8850103B2 (en) * 2009-08-28 2014-09-30 Microsoft Corporation Interruptible NAND flash memory
US8473669B2 (en) 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521375B2 (en) 2017-06-22 2019-12-31 Macronix International Co., Ltd. Controller for a memory system
TWI684868B (zh) * 2017-06-22 2020-02-11 旺宏電子股份有限公司 記憶體控制器及其操作方法以及記憶體系統之控制方法
TWI789904B (zh) * 2018-05-22 2023-01-11 日商鎧俠股份有限公司 控制非揮發性記憶體之記憶體系統及方法
TWI808919B (zh) * 2018-05-22 2023-07-11 日商鎧俠股份有限公司 控制非揮發性記憶體之記憶體系統及方法
TWI715409B (zh) * 2020-01-08 2021-01-01 點序科技股份有限公司 記憶體管理方法及儲存控制器

Also Published As

Publication number Publication date
US20120173792A1 (en) 2012-07-05
CN103282887A (zh) 2013-09-04
EP2659364A1 (en) 2013-11-06
KR101821845B1 (ko) 2018-01-24
KR20140001924A (ko) 2014-01-07
US9229655B2 (en) 2016-01-05
TW201227506A (en) 2012-07-01
WO2012091798A1 (en) 2012-07-05
US20140325131A1 (en) 2014-10-30
US8819328B2 (en) 2014-08-26

Similar Documents

Publication Publication Date Title
TWI531965B (zh) 控制器及用以執行背景操作之方法
USRE46201E1 (en) Method and controller for performing a sequence of commands
US9772802B2 (en) Solid-state device management
US8762789B2 (en) Processing diagnostic requests for direct block access storage devices
US8977833B2 (en) Memory system
US9128618B2 (en) Non-volatile memory controller processing new request before completing current operation, system including same, and method
US20170123991A1 (en) System and method for utilization of a data buffer in a storage device
KR101856506B1 (ko) 데이터 저장 장치 및 그것의 데이터 쓰기 방법
US20110041005A1 (en) Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US9081662B2 (en) Memory storage device, memory controller thereof, and method for programming data thereof
EP2519879A2 (en) Method and controller for performing a copy-back operation
WO2011019600A1 (en) Controller and method for detecting a transmission error over a nand interface using error detection code
CN111475438B (zh) 提供服务质量的io请求处理方法及其装置
WO2011019596A2 (en) Controller and method for interfacing between a host controller in a host and a flash memory device
US11372543B2 (en) Zone-append command scheduling based on zone state
CN111435291A (zh) 用于擦除非易失性存储器块中编程的数据的装置和方法
CN116888585A (zh) 用于简单复制命令的基于高速缓存的流
CN118140205A (zh) 用于早期命令取消的存储系统和方法
TW202314526A (zh) 支持交織操作的記憶體裝置和記憶體系統及其操作方法
CN112230841A (zh) 提高存储器系统的输入/输出吞吐量的设备和方法

Legal Events

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