TWI502359B - 在非揮發性記憶體中之命令次序重新排列 - Google Patents

在非揮發性記憶體中之命令次序重新排列 Download PDF

Info

Publication number
TWI502359B
TWI502359B TW103101665A TW103101665A TWI502359B TW I502359 B TWI502359 B TW I502359B TW 103101665 A TW103101665 A TW 103101665A TW 103101665 A TW103101665 A TW 103101665A TW I502359 B TWI502359 B TW I502359B
Authority
TW
Taiwan
Prior art keywords
memory
read
command
executing
read command
Prior art date
Application number
TW103101665A
Other languages
English (en)
Other versions
TW201443650A (zh
Inventor
Eyal Gurgi
Tomer Ish-Shalom
Original Assignee
Apple 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 Apple Inc filed Critical Apple Inc
Publication of TW201443650A publication Critical patent/TW201443650A/zh
Application granted granted Critical
Publication of TWI502359B publication Critical patent/TWI502359B/zh

Links

Classifications

    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory

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)
  • Read Only Memory (AREA)

Description

在非揮發性記憶體中之命令次序重新排列
本發明大體係關於資料儲存,且特定言之,係關於用於執行記憶體命令之方法及系統。
在各種資料儲存應用中,主機發出一連串記憶體命令,用於在記憶體中執行。此項技術中已知用於處理連串之記憶體命令之各種技術。一些技術藉由修改執行命令之次序來改良效能。
舉例而言,美國專利申請公開案2009/0172263(其揭示內容被以引用的方式併入本文中)描述一種連接至快閃記憶體模組之儲存控制器。儲存控制器中之執行迴路用以進行與讀取或寫入來自模組之資料有關的任務。迴路包括自一佇列讀取資料結構且進行由該資料結構指定之任務,除非該任務所需之資源不可得到,在該情況下,迴路繼續移動至儲存於另一佇列中之另一資料結構。由迴路繞過之資料結構經週期性地重新訪問,直至完成所有所需之任務。資料結構儲存當完成任務時更新之狀態資訊。
本文中描述的本發明之一實施例提供一種方法,其包括在控制一記憶體之一記憶體控制器中接收引起在該記憶體中的一連串記憶體命令之執行之至少一請求。進行以下識別:雖然一第一記憶體命令在 該連串中出現於一第二記憶體命令前,但該第二記憶體命令之該執行將改良該第一記憶體命令之該執行的一效能。執行該第二記憶體命令,且接著按該改良之執行效能執行該第一記憶體命令。
在一些實施例中,該第一記憶體命令及該第二記憶體命令包括讀取命令,且該效能包括該第一記憶體命令之該執行的一延時。
在一些實施例中,識別該第二記憶體命令之該執行將改良該第一記憶體命令之該效能包括識別該第二記憶體命令自一第二群組記憶體胞元讀取一下部頁,且該第一記憶體命令自一第一群組記憶體胞元讀取一上部頁。在一實施例中,該第一群組等於該第二群組。在一揭示之實施例中,執行該第二記憶體命令包括快取該讀取之下部頁,且執行該第一記憶體命令包括使用該快取之下部頁讀取該上部頁。
在另一實施例中,執行該第二記憶體命令包括使用一或多個第二讀取臨限值讀取該第二群組中之該等記憶體胞元,且執行該第一記憶體命令包括基於該等第二讀取臨限值計算一或多個第一讀取臨限值,及使用該等第一讀取臨限值讀取該第一群組中之該等記憶體胞元。
在又一實施例中,執行該第二記憶體命令包括快取該讀取之下部頁,且執行該第一記憶體命令包括基於該快取之下部頁計算一或多個第一讀取臨限值,及使用該等第一讀取臨限值讀取該第一群組中之該等記憶體胞元。在再一實施例中,執行該第二記憶體命令包括評估該等記憶體胞元之一條件,且執行該第一記憶體命令包括基於該評估之條件讀取該第一群組中之該等記憶體胞元。
在另一實施例中,執行該第二記憶體命令且接著該第一記憶體命令包括對於該記憶體之一給定記憶體區塊,在執行該連串中之任一上部頁讀取命令前執行該連串中之至少預定義之數目個下部頁讀取命令。在一實例實施例中,執行該第二記憶體命令包括估計對該第二群 組之一干擾,且執行該第一記憶體命令包括基於該估計之干擾讀取該第一群組中之該等記憶體胞元。
在一些實施例中,識別該第二記憶體胞元之該執行將改良該第一記憶體胞元之該執行包括識別該第二記憶體胞元讀取具有一降低之干擾級別的一或多個頁。在一實例實施例中,執行該第二記憶體命令包括自由該第二記憶體命令讀取之該等頁獲悉該干擾之一特性,且執行該第一記憶體命令包括使用該獲悉的該干擾之特性消除對由該第一記憶體胞元讀取的至少一頁之該干擾。
在另一實施例中,識別該第二記憶體命令讀取具有一降低之干擾級別的一或多個頁包括識別該第二記憶體胞元讀取一記憶體區塊中之一或多個最後頁。在又一實施例中,該等記憶體胞元之執行由耦接至該記憶體之電路執行,具有該降低之干擾級別的該等頁之識別經在一記憶體控制器中執行,且該方法包括將一指令自該記憶體控制器發送至該電路以保留具有該降低之干擾級別的該等讀取頁以供未來在消除該干擾過程中使用。
在另一實施例中,該第一記憶體命令及該第二記憶體命令包括各別第一及第二讀取命令,且識別該第二記憶體命令之該執行將改良該第一記憶體命令之該效能包括識別期望該第二記憶體命令經按比該第一記憶體命令少的錯誤解碼。
根據本發明之一實施例,額外提供一種裝置,其包括一介面及儲存電路。該介面經組態以與一記憶體通信。該儲存電路經組態以接收引起在該記憶體中的一連串記憶體命令之執行之至少一請求,識別雖然一第一記憶體命令在該連串中出現於一第二記憶體命令前,但該第二記憶體命令之該執行將改良該第一記憶體命令之該執行的一效能,及執行該第二記憶體命令,且接著按該改良之執行效能執行該第一記憶體命令。
根據本發明之一實施例,亦提供一種裝置,其包括一記憶體及儲存電路。該儲存電路經組態以接收引起在該記憶體中的一連串記憶體命令之執行之至少一請求,識別雖然一第一記憶體命令在該連串中出現於一第二記憶體命令前,但該第二記憶體命令之該執行將改良該第一記憶體命令之該執行的一效能,及執行該第二記憶體命令,且接著按該改良之執行效能執行該第一記憶體命令。
20‧‧‧記憶體系統
24‧‧‧記憶體器件
28‧‧‧記憶體胞元陣列
32‧‧‧記憶體胞元
34‧‧‧記憶體區塊
36‧‧‧讀取/寫入(R/W)單元
40‧‧‧記憶體控制器
44‧‧‧介面
48‧‧‧處理器
52‧‧‧主機
自結合圖式進行的本發明之實施例的以下詳細描述,將更充分地理解本發明,其中:圖1為根據本發明之一實施例的示意性說明一記憶體系統之方塊圖;及圖2至圖4為根據本發明之實施例的示意性說明用於執行連串之記憶體命令之方法之流程圖。
綜述
在一典型儲存系統中,一記憶體控制器代表主機儲存且擷取記憶體中之資料。一些儲存協定准許主機命令之失序執行,藉此在使記憶體控制器之操作最佳化及並行化過程中對該記憶體控制器提供較大自由及靈活性。
本文中描述的本發明之實施例提供用於執行連串之記憶體命令(諸如,讀取及寫入命令)的改良之方法及系統雖然本文中描述之實施例主要指非揮發性記憶體系統(諸如,基於快閃之儲存器件),但揭示之技術適用於各種其他類型之記憶體。
在一些實施例中,記憶體控制器接收來自主機的儲存及/或擷取某些資料之一或多個請求。該或該等請求因此對應於待由記憶體中之記憶體控制器執行的一連串記憶體命令(例如,讀取及寫入命令)。
該連串中之該等記憶體命令按某一次序出現。然而,在一些情況下,按一不同次序執行記憶體命令將減小延時或另外改良效能。在本文中描述之一些實施例中,該記憶體控制器識別此等情況且相應地修改記憶體命令之執行次序。
詳言之,記憶體控制器識別第一記憶體命令在該連串中出現於第二記憶體命令前之情形,但在第一命令前執行第二命令將改良第一命令之執行效能。在偵測到此種情形後,記憶體控制器即失序地執行該連串之記憶體命令,使得第二命令實際上在第一命令前執行。討論中之第一及第二命令未必在該連串中連續。換言之,記憶體控制器可改良執行次序,以便改良出現於該連串中某一稍後階段的命令之執行效能。
舉例而言,考慮每一記憶體胞元群組儲存至少一下部頁及一上部頁(常分別被稱作最低有效位元(LSB)頁及最高有效位元(MSB)頁)之多位階胞元(MLC)快閃記憶體。通常,自一群組給定記憶體胞元讀取在MSB頁前之LSB頁相當地更有效率:MSB讀出通常需要知曉LSB資料,且因此讀取LSB頁首先消除多餘的讀取操作。此外,有時可自LSB讀取臨限值推斷用於MSB讀出之讀取臨限值,LSB讀取臨限值相當更快地判定出。
因此,在一些實施例中,記憶體控制器識別MSB讀取命令在連串中出現於來自同一群組記憶體胞元之LSB讀取命令前。記憶體控制器接著在MSB讀取命令前執行LSB讀取命令。結果,MSB讀取命令之執行相當地更快。
在替代實施例中,記憶體控制器修改執行次序以便在MSB讀取命令前執行LSB讀取命令,即使該等命令未定址同一群組記憶體胞元。保持LSB頁之胞元群組與保持MSB頁之胞元群組之間的各種其他關係可用於自LSB讀出獲取資訊且在MSB讀出中使用該資訊。舉例而 言,考慮定義為超區塊之一組實體記憶體區塊。超區塊中的任一LSB頁之讀出可用於估計超區塊之滯留條件。滯留資訊可用以改良超區塊中的任一MSB頁之讀出,不管在與LSB頁相同的實體區塊中或是在不同實體區塊中。
作為另一實例,該連串記憶體命令可包含按某一次序排列的來自一給定記憶體區塊之多個MSB讀取命令及多個LSB讀取命令。在一些實施例中,記憶體控制器修改執行次序,使得至少在MSB讀取命令中之任一者前執行某一數目個LSB讀取命令。在一特定實施例中,記憶體控制器執行針對給定記憶體區塊之所有LSB讀取命令,且接著執行MSB讀取命令。以此方式修改執行次序使記憶體控制器能夠估計基於LSB頁估計記憶體區塊之條件(例如,耐久性、滯留性、讀取臨限值或其他條件),且接著使用此資訊減小MSB讀取命令之延時。
在其他實施例中,記憶體控制器識別該連串中讀取給定記憶體區塊中之一或多個最後頁的一或多個讀取命令,且在來自該區塊之其他讀取命令前執行此等讀取命令。區塊中之最後頁通常含有極少或不含有後型樣相依性(BPD)失真或其他干擾。因而,讀取此等頁在獲悉干擾特性及將此資訊用於改良來自該區塊之其他頁之讀取過程中有用。
總之,揭示之技術藉由首先執行原先稍後出現於該連串中之另一記憶體命令來改良一或多個命令之執行效能。結果,可改良諸如延時及干擾消除品質之效能量測。
系統描述
圖1為根據本發明之一實施例的示意性說明一記憶體系統20之方塊圖。系統20可用於各種主機系統及器件中,諸如,用於計算器件、蜂巢式電話或其他通信終端機、抽取式記憶體模組(有時被稱作「USB隨身碟」)、固態磁碟(SSD)、數位相機、音樂及其他媒體播放 器及/或其中資料被儲存及擷取的任何其他系統或器件中。
系統20包含一記憶體器件24,其將資料儲存於記憶體胞元陣列28中。記憶體陣列包含多個記憶體區塊34。每一記憶體區塊34包含多個類比記憶體胞元32。在本專利申請案之上下文中及在申請專利範圍中,術語「類比記憶體胞元」用以描述保持諸如電壓或電荷的物理參數之連續類比值之任一記憶體胞元。陣列28可包含任何種類之類比記憶體胞元,諸如,NAND(反及)、NOR(反或)及電荷收集快閃記憶體(CTF)快閃胞元、相變RAM(PRAM,亦被稱作相變記憶體(PCM))、氮化物唯讀記憶體(NROM)、鐵電RAM(FRAM)、磁性RAM(MRAM)及/或動態RAM(DRAM)胞元。雖然本文中描述之實施例主要指二維(2D)胞元連接性方案,但揭示之技術亦適用於三維(3D)連接性方案。
儲存於胞元中之電荷位準及/或寫入至胞元內及自胞元讀出之類比電壓或電流在本文中共同地被稱作類比值、類比儲存值或儲存值。儲存值可包含(例如)臨限電壓或任何其他合適種類之儲存值。系統20藉由程式化類比記憶體胞元以呈各別程式化狀態來將資料儲存於該等胞元中,該等程式化狀態亦被稱作程式化層級。該等程式化狀態選自一組有限的可能狀態,且每一程式化狀態對應於某一標稱儲存值。舉例而言,3位元/胞元MLC可經程式化以藉由將八個可能之標稱儲存值中的一者寫入至該胞元內來呈八個可能之程式化狀態中的一者。
記憶體器件24包含一讀取/寫入(R/W)單元36,其將用於儲存於記憶體器件中之資料轉換至類比儲存值,且將其寫入至記憶體胞元32內。在替代實施例中,R/W單元不執行轉換,但具備電壓樣本,亦即,具備用於儲存於胞元中之儲存值。當自陣列28讀取資料時,R/W單元36將記憶體胞元32之儲存值轉換成具有一或多個位元之解析度的數位樣本。資料通常經寫入至被稱作頁之群組中的記憶體胞元,且經自該等記憶體胞元讀取。在一些實施例中,R/W單元可藉由將一或多 個負抹除脈衝施加至胞元來抹除一群組胞元32。通常在整個記憶體區塊中執行抹除。
將資料儲存於記憶體器件24中及自記憶體器件24擷取資料由記憶體控制器40執行。記憶體控制器包含用於與記憶體器件24通信之一介面44,及進行各種記憶體管理功能之一處理器48。記憶體控制器40與主機52通信,用於接受儲存於記憶體器件中之資料,且用於輸出自記憶體器件擷取之資料。記憶體控制器40(且詳言之,處理器48)可以硬體實施。替代地,記憶體控制器可包含執行合適之軟體的微處理器或硬體元件與軟體元件之組合。
圖1之組態為一例示性系統組態,其純粹出於概念清晰起見而加以展示。亦可使用任何其他合適記憶體系統組態。已為了清晰性而自圖省略對理解本發明之原理而言並非必要之元件(諸如,各種介面、定址電路、定時及排序電路及除錯電路)。
雖然圖1之實例展示一單一記憶體器件24,但系統20可包含由記憶體控制器40控制之多個記憶體器件。在圖1中展示之例示性系統組態中,記憶體器件24及記憶體控制器40經實施為兩個分開的積體電路(IC)。然而,在替代實施例中,記憶體器件及記憶體控制器可整合於單一多晶片封裝(MCP)或系統單晶片中(SoC)之分開的記憶體晶粒上,且可由內部匯流排互連。另外替代地,記憶體控制器電路之一些或全部可駐留於其上安置記憶體陣列之同一晶粒上。另外替代地,記憶體控制器40之功能性中的一些或全部可以軟體實施且由處理器或主機系統之其他元件進行。在一些實施例中,可在同一晶粒上或在同一器件封裝中之分開晶粒上製造主機44及記憶體控制器40。
在一些實施例中,記憶體控制器40包含以軟體程式化以執行本文中所描述之功能的通用處理器。可經由(例如)網路將軟體以電子形式下載至處理器,或者,替代地或另外,可將軟體提供及/或儲存於 非暫時性有形媒體(諸如,磁性、光學或電子記憶體)上。
在陣列28之一實例組態中,記憶體胞元32經按列及行排列,且每一記憶體胞元包含一浮動閘電晶體。每一列中的電晶體之閘極由字線連接,且每一行中的電晶體之源極由位元線連接。記憶體陣列通常經劃分為多個頁(亦即,同時程式化及讀取之記憶體胞元群組)。頁有時經再分為區段。在一些實施例中,每一頁包含陣列之一個整列。在替代實施例中,可將每一列(字線)劃分為兩個或兩個以上頁。舉例而言,在一些器件中,將每一列劃分為兩個頁,一個頁包含奇數次序胞元且另一頁包含偶數次序胞元。
通常,記憶體控制器40依頁單元來程式化資料,但抹除整個記憶體區塊34。通常,雖非必要,但一記憶體區塊大約106 個記憶體胞元,而一頁大約103 至104 個記憶體胞元。
接下來的描述描述用於記憶體命令之失序執行的若干實例技術。揭示之技術可由記憶體控制器40及/或由R/W單元36進行。為了清晰起見,接下來的描述參照記憶體器件中之R/W單元36與記憶體控制器40中之處理器48之間的功能之特定劃分。然而,通常,組成揭示之技術的各種任務可以任一合適方式在記憶體控制器與R/W單元之間劃分,或由此等元件中之任一者執行。因此,在本專利申請案之上下文中及在申請專利範圍中,記憶體控制器40與R/W單元36共同地被稱作進行揭示之技術的儲存電路。
記憶體命令之有效率的失序執行
圖2為根據本發明之一實施例的示意性說明用於執行一連串記憶體命令之方法之流程圖。該方法開始於記憶體控制器40接收來自主機52儲存及/或擷取記憶體器件24中之某些資料的一或多個請求,在請求接收步驟60。該或該等請求引起由記憶體器件24中之記憶體控制器40執行一連串記憶體命令。
記憶體控制器40中之處理器48識別保證修改命令序列之執行次序的情境,在重新排序識別步驟64。詳言之,處理器48識別第一記憶體命令在該連串中出現於第二記憶體命令前,但在第一命令前執行第二命令將改良第一命令之執行效能。
在重新排序步驟68,處理器48修改執行次序,以便在第一命令前執行第二命令。在執行步驟72,處理器48根據修改之次序執行記憶體命令,且詳言之,在第一命令前執行第二命令。因此按改良之效能執行第一命令。
接下來之描述給出論證此失序命令執行之若干實例實施例。然而,在替代實施例中,系統20中之儲存電路可以任一其他合適方式修改命令執行次序。
舉例而言,雖然揭示之實施例主要參照讀取命令,但揭示之技術亦可供寫入命令使用,以及按包含讀取及寫入命令兩者之混合序列使用。舉例而言,由於寫入命令通常包含感測記憶體胞元之驗證操作,因此寫入命令亦可充當適用於改良其他讀取或寫入命令之效能的資訊源。
圖3為根據本發明之一實施例的示意性說明用於執行一連串記憶體命令之方法之流程圖。在本實例中,記憶體胞元32包含多位階胞元(MLC),每一者儲存兩個或兩個以上位元之資料。因此,每一群組胞元32(例如,沿著每一字線之胞元)在該等胞元之各別位元中保持至少一下部頁及一上部頁。下部頁及上部頁常分別被稱作最低有效位元(LSB)頁及最高有效位元(MSB)頁。
注意,在一些實施例中,記憶體每胞元群組保持兩個以上頁,例如,在每胞元群組保持三個頁之每胞元三位元MLC記憶體中。術語「下部頁」及「上部頁」(或「LSB頁」及「MSB頁」)指選自儲存於胞元群組中之多個頁的任一對頁,使得下部頁儲存於比上部頁低的有效 位元中。
該方法開始於記憶體控制器40接收來自主機52儲存及/或擷取記憶體器件24中之某些資料的一或多個請求,在請求輸入步驟80。該或該等請求對應於待由記憶體器件24中之記憶體控制器40執行的一連串記憶體命令。
通常,自一群組給定記憶體胞元讀取在MSB頁前之LSB頁相當地更有效率:MSB讀出通常需要知曉LSB資料,且因此讀取LSB頁首先消除多餘的讀取操作。此外,有時可自LSB讀取臨限值推斷用於MSB讀出之讀取臨限值,LSB讀取臨限值相當更快地判定出。
因此,在識別步驟84,處理器48識別來自一群組給定胞元之一MSB讀取命令,及在該連串中出現得比MSB讀取命令晚的來自同一群組胞元之一LSB讀取命令。處理器48首先執行LSB讀取命令,在LSB執行步驟88。
處理器48快取LSB讀取命令之結果,亦即,LSB頁資料,在LSB快取步驟92。可在記憶體控制器中或在記憶體器件中進行快取。處理器48計算用於執行MSB讀取命令之讀取臨限值,在臨限值計算步驟96。詳言之,處理器48至少基於在LSB讀取命令中使用之至少一讀取臨限值計算用於MSB讀取命令的讀取臨限值中之至少一者。另外或替代地,處理器48基於快取之LSB資料計算用於MSB讀取命令的讀取臨限值中之至少一者。
處理器48現在執行MSB讀取命令,在MSB執行步驟100。在執行MSB讀取命令過程中,處理器48使用快取之LSB頁(替代地,或再次讀取具體用於MSB讀取命令之LSB頁),且使用基於LSB臨限值計算之讀取臨限值。結果,MSB讀取命令較簡單地實施且招致較小延時。通常將讀取LSB及MSB頁資料與該連串記憶體命令之其他讀出結果一起提供至主機。
圖4為根據本發明之一實施例的示意性說明用於執行一連串記憶體命令之方法之流程圖。在本實例中,記憶體控制器識別定址記憶體區塊中之(一或多個)最後頁的讀取命令。區塊中之最後頁通常含有相對於其他頁降低之干擾級別。因此,此等頁可適用於在讀取其他頁及消除對其他頁之干擾前獲悉干擾特性。
舉例而言,若某一頁造成對另一頁之干擾,則有益地,首先讀取干擾頁,且接著使用自讀取干擾頁獲得之干擾資訊讀取被干擾之頁。當讀取一記憶體區塊時,有益地,首先讀取最後(未干擾,而非干擾)頁,且接著向後進展。以此次序,每一頁之讀出提供關於對待讀取之接下來的頁之干擾之資訊。
因此,在一些實施例中,記憶體控制器識別命令執行次序,使得首先讀取區塊之最後頁。
該方法開始於記憶體控制器40接收來自主機52儲存及/或擷取記憶體器件24中之某些資料的一或多個請求,在請求輸入步驟110。該或該等請求對應於待由記憶體器件24中之記憶體控制器40執行的一連串記憶體命令。詳言之,該連串包含定址一給定記憶體區塊34中之各別頁的多個讀取命令。
處理器48在該連串中識別,且讀取具有降低之干擾級別的來自給定區塊之一或多個頁,在降低之干擾讀出步驟114。在一實施例中,處理器48識別且讀取定址區塊中之最後頁的一或多個讀取命令,該等最後頁通常含有極少或不含有後型樣相依性(BPD)失真或其他干擾。
在干擾消除定義步驟118中,處理器48自在以上步驟114讀取之頁獲悉干擾之特性,且基於獲悉之特性定義一適當干擾消除方案。
接著,處理器48執行該連串中之其餘讀取命令,定址來自同一區塊之其他頁,在隨後讀出步驟122。在執行其餘讀取命令過程中, 處理器48使用在以上步驟118定義之干擾消除方案消除干擾。結果,干擾消除品質得以改良。
在一些實施例中,序列不讀取整個區塊,或另外不定址區塊中之最後的頁。然而,在自區塊讀取之頁間的最高頁亦可用作降低之干擾頁。
以上圖4之方法可供任一合適的干擾消除方案使用,該干擾消除方案可為類比的或數位的,且其可應用於記憶體控制器中及/或記憶體器件中。當在記憶體器件24中實施干擾消除時,記憶體控制器中之處理器48通常指導記憶體器件中之R/W單元36保留降低之干擾頁資料(或獲悉之干擾特性),用於未來在其他頁中之干擾消除期間使用。為了此目的,記憶體控制器40與記憶體器件24間之干擾可支援專用命令。
在一些實施例中,處理器48先驗地意識到,該連串中之不同讀取命令具有不同的期望錯誤機率。舉例而言,在一些實際情況中,平均而言,錯誤率隨記憶體區塊內之字線索引而增大。換言之,期望自第i個字線之讀出具有比自第j個字線之讀出少的錯誤,對於i<j。在另一情境中,每一字線包含多個碼字,且處理器48知曉平均而言,每一字線中之最後碼字(例如,第四碼字)具有比其他碼字少之錯誤。
在此等實施例中,處理器48可修改讀取命令之執行次序,使得首先執行期望具有較少錯誤之讀取命令。針對若干原因,修改之次序改良隨後讀取命令之執行效能。
舉例而言,自區塊之第一讀出操作可能需要臨限值獲取,亦即,讀取臨限值之初始估計,如與讀取臨限值之增加調整相反。獲取過程通常較短且更可靠,具有極少錯誤。臨限值獲取之結果可用於執行期望具有較多錯誤之隨後讀出操作。作為另一實例,處理器48可使用較低錯誤讀取操作之解碼結果來計算最佳對數似然比(LLR)。此等 LLR或其變換可用於讀取及解碼期望具有較多錯誤之隨後頁。
應瞭解,上文所述之實施例藉由實例來引證,且本發明不限於上文已特別展示及描述之內容。相反,本發明之範疇包括上文描述的各種特徵之組合及子組合,以及將為熟習此項技術者在讀取了前述描述後想到且未揭示於先前技術中之其變化及修改。被以引用的方式併入於本專利申請案中之文件應被視為本申請案之整體部分,惟在任何術語係以與在本說明書中明確或隱含地進行之定義相衝突的方式在此等被併入之文件中定義之程度上除外,應僅考慮本說明書中定義。
20‧‧‧記憶體系統
24‧‧‧記憶體器件
28‧‧‧記憶體胞元陣列
32‧‧‧記憶體胞元
34‧‧‧記憶體區塊
36‧‧‧讀取/寫入(R/W)單元
40‧‧‧記憶體控制器
44‧‧‧介面
48‧‧‧處理器
52‧‧‧主機

Claims (16)

  1. 一種用於執行記憶體命令的方法,其包含:在控制一記憶體之一記憶體控制器中接收引起在該記憶體中的一連串記憶體讀取命令之執行之至少一請求;識別該連串記憶體讀取命令之一第一記憶體讀取命令,其中該第一記憶體至少在一第二記憶體讀取命令之後讀取命令存取該記憶體中之一記憶體區塊之一或多個最後頁且出現於該連串記憶體讀取命令中;執行該第一記憶體讀取命令;消除讀取自該記憶體區塊之該一或多個最後頁的資料中的干擾;根據讀取自該記憶體區塊之該一或多個最後頁的資料之干擾特性來判定一干擾消除方案;及使用該干擾消除方案執行包含在該連串記憶體讀取命令中之其餘記憶體讀取命令。
  2. 如請求項1之方法,其中該第二記憶體讀取命令自一第二群組記憶體胞元讀取一上部頁,且該第一記憶體讀取命令自一第一群組記憶體胞元讀取一下部頁。
  3. 如請求項2之方法,其中該第一群組等於該第二群組。
  4. 如請求項3之方法,其中執行該第一記憶體讀取命令包含快取該讀取之下部頁,且其中執行該其餘記憶體讀取命令包含使用該快取之下部頁讀取該上部頁。
  5. 如請求項2之方法,其中執行該第一記憶體讀取命令包含使用一或多個第一讀取臨限值讀取該第一群組中之該等記憶體胞元,且其中執行該其餘記憶體讀取命令包含執行該第二記憶體讀取 命令,其中該第二記憶體讀取命令包含基於該等第一讀取臨限值計算一或多個第二讀取臨限值,及使用該等第二讀取臨限值讀取該第二群組中之該等記憶體胞元。
  6. 如請求項2之方法,其中執行該第一記憶體讀取命令包含快取該讀取之下部頁,且其中執行該其餘記憶體讀取命令包含執行該第二記憶體讀取命令,其中該第二記憶體讀取命令包含基於該快取之下部頁計算一或多個讀取臨限值,及使用該等讀取臨限值讀取該第二群組中之該等記憶體胞元。
  7. 如請求項2之方法,其中執行該第一記憶體讀取命令包含評估該第一群組記憶體胞元之一條件,且其中執行該其餘記憶體讀取命令包含執行該第二記憶體讀取命令,其中該第二記憶體讀取命令包含基於該評估之條件讀取該第二群組中之該等記憶體胞元。
  8. 如請求項2之方法,其中執行該其餘記憶體讀取命令包含對於該記憶體之一給定記憶體區塊執行該第二記憶體讀取命令,,在執行該連串中之任一上部頁讀取命令前執行該連串中之至少預定義之數目個下部頁讀取命令。
  9. 一種用於執行記憶體命令的裝置,其包含:一介面,其經組態以與一記憶體通信;及儲存電路,其經組態以:接收引起在該記憶體中的一連串記憶體讀取命令之執行之至少一請求;識別該連串記憶體讀取命令之一第一記憶體讀取命令,其中該第一記憶體至少在一第二記憶體讀取命令之後,讀取存取該記憶體中之一記憶體區塊之一或多個最後頁且出現於該連串記憶體讀取命令中; 執行該第一記憶體讀取命令;消除讀取自該記憶體區塊之該一或多個最後頁的資料中的干擾;根據讀取自該記憶體區塊之該一或多個最後頁的資料之干擾特性來判定一干擾消除方案;及使用該干擾消除方案執行包含在該連串記憶體讀取命令中之其餘記憶體讀取命令。
  10. 如請求項9之裝置,其中該第二記憶體讀取命令自一第二群組記憶體胞元讀取一下部頁,且該第一記憶體讀取命令自一第一群組記憶體胞元讀取一上部頁。
  11. 如請求項10之裝置,其中該第一群組等於該第二群組。
  12. 如請求項11之裝置,其中該儲存電路經進一步組態以快取該讀取之下部頁,及使用該快取之下部頁讀取該上部頁。
  13. 如請求項10之裝置,其中該儲存電路經進一步組態以使用一或多個第二讀取臨限值讀取該第二群組中之該等記憶體胞元,基於該等第二讀取臨限值計算一或多個第一讀取臨限值,及使用該等第一讀取臨限值讀取該第一群組中之該等記憶體胞元。
  14. 如請求項10之裝置,其中該儲存電路經進一步組態以:快取該讀取之下部頁;基於該快取之下部頁計算一或多個第一讀取臨限值;及使用該等第一讀取臨限值讀取該第一群組中之該等記憶體胞元。
  15. 如請求項10之裝置,其中該儲存電路經進一步組態以:評估在執行該第一記憶體讀取命令時讀取的該等記憶體區塊之一條件;及基於該評估之條件讀取該第二群組中之該等記憶體胞元。
  16. 如請求項10之裝置,其中對於該記憶體之一給定記憶體區塊, 該儲存電路經進一步組態以在執行該連串中之任一上部頁讀取命令前執行該連串中之至少預定義之數目個下部頁讀取命令。
TW103101665A 2013-02-11 2014-01-16 在非揮發性記憶體中之命令次序重新排列 TWI502359B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/763,928 US9250814B2 (en) 2013-02-11 2013-02-11 Command order re-sequencing in non-volatile memory

Publications (2)

Publication Number Publication Date
TW201443650A TW201443650A (zh) 2014-11-16
TWI502359B true TWI502359B (zh) 2015-10-01

Family

ID=50102175

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103101665A TWI502359B (zh) 2013-02-11 2014-01-16 在非揮發性記憶體中之命令次序重新排列

Country Status (3)

Country Link
US (1) US9250814B2 (zh)
TW (1) TWI502359B (zh)
WO (1) WO2014123644A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286964B2 (en) * 2012-12-21 2016-03-15 Intel Corporation Method, apparatus and system for responding to a row hammer event
US9952981B2 (en) * 2014-09-29 2018-04-24 Apple Inc. Read cache management in multi-level cell (MLC) non-volatile memory
KR102564165B1 (ko) 2016-04-25 2023-08-04 삼성전자주식회사 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법
US10152237B2 (en) * 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10585624B2 (en) 2016-12-01 2020-03-10 Micron Technology, Inc. Memory protocol
US11003602B2 (en) 2017-01-24 2021-05-11 Micron Technology, Inc. Memory protocol with command priority
US10635613B2 (en) 2017-04-11 2020-04-28 Micron Technology, Inc. Transaction identification
US20210272619A1 (en) * 2020-02-28 2021-09-02 Western Digital Technologies, Inc. Data Storage With Improved Read Performance By Avoiding Line Discharge
US11126369B1 (en) 2020-02-28 2021-09-21 Western Digital Technologies, Inc. Data storage with improved suspend resume performance
US12007900B2 (en) * 2022-07-08 2024-06-11 Realtek Semiconductor Corp. Data accessing method and data accessing system capable of providing high data accessing performance and low memory utilization

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114587A1 (en) * 2003-11-22 2005-05-26 Super Talent Electronics Inc. ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
US7127574B2 (en) * 2003-10-22 2006-10-24 Intel Corporatioon Method and apparatus for out of order memory scheduling
TW200733112A (en) * 2005-10-18 2007-09-01 Sandisk Corp Corrected data storage and handling methods
US8316219B2 (en) * 2009-08-31 2012-11-20 International Business Machines Corporation Synchronizing commands and dependencies in an asynchronous command queue

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564304B1 (en) 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching
US6776849B2 (en) 2002-03-15 2004-08-17 Asm America, Inc. Wafer holder with peripheral lift ring
US7388781B2 (en) * 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8848442B2 (en) * 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
KR101556779B1 (ko) 2009-04-17 2015-10-02 삼성전자주식회사 저장 장치의 액세스 방법
US9632954B2 (en) * 2011-11-07 2017-04-25 International Business Machines Corporation Memory queue handling techniques for reducing impact of high-latency memory operations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127574B2 (en) * 2003-10-22 2006-10-24 Intel Corporatioon Method and apparatus for out of order memory scheduling
US20050114587A1 (en) * 2003-11-22 2005-05-26 Super Talent Electronics Inc. ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
TW200733112A (en) * 2005-10-18 2007-09-01 Sandisk Corp Corrected data storage and handling methods
US8316219B2 (en) * 2009-08-31 2012-11-20 International Business Machines Corporation Synchronizing commands and dependencies in an asynchronous command queue

Also Published As

Publication number Publication date
WO2014123644A1 (en) 2014-08-14
TW201443650A (zh) 2014-11-16
US20140229699A1 (en) 2014-08-14
US9250814B2 (en) 2016-02-02

Similar Documents

Publication Publication Date Title
TWI502359B (zh) 在非揮發性記憶體中之命令次序重新排列
US8977805B2 (en) Host-assisted compaction of memory blocks
US8832354B2 (en) Use of host system resources by memory controller
EP2888666B1 (en) Host-assisted compaction of memory blocks
CN106653085B (zh) 储存器件、具有储存器件的存储系统及其操作方法
KR100902008B1 (ko) 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를 포함한 메모리 시스템
CN110678852B (zh) 控制对缓冲器的存储器操作的设备和方法
US9847122B2 (en) Multi-bit memory device and on-chip buffered program method thereof
US11086568B2 (en) Memory system for writing fractional data into nonvolatile memory
US10389380B2 (en) Efficient data path architecture for flash devices configured to perform multi-pass programming
US8266368B2 (en) Memory controller, memory system, and control method for memory system
US10902924B2 (en) Memory system varying pass voltage based on erase count of target memory block and operating method thereof
JP2023531484A (ja) 擬似非同期マルチプレーン独立読み取り
TWI505273B (zh) 類比記憶體單元的稀疏程式化
KR20220044597A (ko) 순차적 slc 판독 최적화
US9548107B1 (en) Semiconductor memory device
US20180217782A1 (en) Buffer operations in memory
US11664079B2 (en) Intervallic dynamic start voltage and program verify sampling in a memory sub-system
US9548125B2 (en) Semiconductor device having multi-level cell and method of reading the same
US20240078042A1 (en) Storage device determining a policy for fetching commands from a plurality of command queues, and method thereof
US12019550B2 (en) Concurrent page cache resource access in a multi-plane memory device
US20230418742A1 (en) Out-of-order programming of first wordline in a physical unit of a memory device
US11756612B2 (en) All levels dynamic start voltage programming of a memory device in a memory sub-system
US20240134570A1 (en) Write operations on a number of planes
US20230393784A1 (en) Data path sequencing in memory systems