TWI672591B - 用於管理記憶體中的資料的方法及設備 - Google Patents
用於管理記憶體中的資料的方法及設備 Download PDFInfo
- Publication number
- TWI672591B TWI672591B TW107116904A TW107116904A TWI672591B TW I672591 B TWI672591 B TW I672591B TW 107116904 A TW107116904 A TW 107116904A TW 107116904 A TW107116904 A TW 107116904A TW I672591 B TWI672591 B TW I672591B
- Authority
- TW
- Taiwan
- Prior art keywords
- command
- time interval
- delay time
- circuit
- variable delay
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明揭示用於管理記憶體諸如快閃記憶體中的資料的方法和設備。根據一些實施例,記憶體模組具有非揮發性記憶體(NVM)和記憶體模組電子器件(MME)電路。控制器電路向MME電路傳送第一命令以對NVM的選定位址執行選定動作。在可變延遲時間間隔之後,由控制器電路將第二命令傳送到MME電路,作為有關第一命令的狀態請求。可變延遲時間間隔係基於在第一命令之前發出的對於選定位址的狀態請求的累計計數來判定。
Description
本揭露的各種實施例大致上係關於記憶體諸如但不限於快閃記憶體中的資料管理。
根據一些實施例,設備包括記憶體模組和控制器電路。記憶體模組包括非揮發性記憶體(NVM)和記憶體模組電子器件(MME)電路,該記憶體模組電子器件(MME)電路經組態以將資料程式化到NVM的固態非揮發性記憶體單元並從NVM的固態非揮發性記憶體單元讀取資料。控制器電路經組態以向記憶體模組傳送第一命令,該第一命令包括NVM內的選定位址以及待由MME電路採取的與選定位址相關的選定動作。控制器電路進一步經組態以隨後在可變延遲時間間隔結束時向記憶體模組傳送第二命令,該第二命令包括與第一命令的完成相關聯的狀態請求。回應於由控制器電路向記憶體模組先前傳送的對於在第一命令傳送之前發出的與選定位址相關聯的先前命令的狀態請求的累計計數來選擇可變延遲時間間隔。
在另外的實施例中,方法包括從控制器電路向記憶體模組的記憶體模組電子器件(MME)電路傳送第一命令的步驟,該第一命令包括記憶體模組的非揮發性記憶體(NVM)中選定位址以及待由MME電路採取的與該位址相關的選定動作。回應於第一命令的傳送來起始可變延遲時間間隔。在可變延遲時間間隔結束時,將第二命令從控制器電路傳送到MME電路,作為與第一命令的完成相關聯的狀態請求。回應於控制器電路向記憶體模組先前傳送的對於在第一命令傳送之前選定位址的狀態請求的累計計數來選擇可變延遲時間間隔。
根據下面的詳細討論和附圖,可以理解可表徵各種實施例的這些和其他特徵。
100‧‧‧資料處理系統/系統
102‧‧‧主機設備/主機
104‧‧‧資料儲存設備/設備
106‧‧‧控制器
108‧‧‧記憶體模組/快閃記憶體
110‧‧‧資料儲存設備/設備/SSD
112‧‧‧控制器電路/控制器
114‧‧‧記憶體模組/前端控制器/控制器
116‧‧‧核心控制器/控制器
118‧‧‧後端控制器/控制器
120‧‧‧控制器記憶體
122‧‧‧映射結構
124‧‧‧快取
126‧‧‧緩衝區
128‧‧‧硬體輔助電路
130‧‧‧記憶體模組電子器件電路/MME
132‧‧‧快閃記憶體陣列/快閃記憶體
134‧‧‧晶粒
136‧‧‧緩衝記憶體/緩衝區
138‧‧‧緩衝區
140‧‧‧命令
142‧‧‧操作碼
144‧‧‧位址
146‧‧‧解碼器
148‧‧‧緩衝區
150‧‧‧時序圖
160‧‧‧計時器電路
162‧‧‧累計統計表/累計統計方塊
164‧‧‧訓練算法
166‧‧‧平均電路
168‧‧‧延遲表
170‧‧‧環境感測器
172‧‧‧步驟/方塊
174‧‧‧方塊
176‧‧‧步驟
178‧‧‧步驟
180‧‧‧步驟
182‧‧‧步驟
184‧‧‧桶分析圖
186‧‧‧條形
188‧‧‧曲線
190‧‧‧曲線
192‧‧‧間隔
194‧‧‧間隔
200‧‧‧資料處理常規
202‧‧‧步驟
204‧‧‧步驟
206‧‧‧步驟/方塊
208‧‧‧步驟
210‧‧‧步驟
212‧‧‧步驟
214‧‧‧步驟
216‧‧‧步驟
218‧‧‧步驟
圖1提供根據各種實施例的資料儲存裝置的功能方塊表示。
圖2顯示根據一些實施例的被表徵係固態硬碟(SSD)的圖1的裝置的各態樣。
圖3顯示一些實施例中圖2的控制器與記憶體模組電子器件(MME)之間的資料和命令流。
圖4是控制器向MME發出的命令的示意格式。
圖5是時序圖,顯示控制器和MME用來傳輸命令、狀態請求和資料的拉式系統(pull system)。
圖6顯示控制器為NVM內的不同位置確立可變延遲時間間隔的方式。
圖7是指示圖6中的控制器的操作的程序流程圖。
圖8是桶示意圖(bucket diagram),顯示對於命令群體的過早狀態請求的累計數量。
圖9是針對NVM內的選定位置對選定的延遲時間間隔的自適應調整的圖形表示。
圖10顯示NVM的固態記憶體單元的不同群體。
圖11顯示由NVM內的不同位置執行的相同命令的不同命令執行間隔。
圖12是說明根據一些實施例執行的步驟的資料處理常規的流程圖。
本揭露大致上係關於管理儲存於記憶體諸如但不限於固態硬碟(SSD)的快閃記憶體中的資料。
多種資料儲存記憶體是本領域已知的。一些記憶體由固態記憶體單元形成,這些固態記憶體單元將與累計電荷的量相關的資料儲存在浮閘結構諸如使用快閃記憶體上。在可將新資料寫入到給定的快閃記憶體位置之前,一般需要抹除操作。
一些快閃記憶體裝置包括快閃記憶體模組和控制器。使用拉式系統,由此控制器向記憶體模組發出命令,並隨後檢查以判定是否已完成所請求的命令。這往往會增加需要向記憶體模組發出命令的次數,諸如在命令發出之後反覆檢查狀態的情況下。
對於記憶體模組的製造商常見的是,為各種命令諸如讀取、寫入(程式化)和抹除操作指定特定的命令完成時間。已經發現,此類規格可係最佳情況值,並且可不表示在不同位置處且在不同環境條件和狀態下的實際系統操作。
命令完成時間的變化可以以多種方式不利地影響控制器和記憶體模組之間的資料傳輸性能。如果命令完成時間明顯長於預期,則可由控制器發出多個狀態請求,將使用「未就緒(not ready)」類型返回狀態對每個狀態請求作出回應。此類過早狀態請求的處理可消耗控制器和記憶體模組兩者的大量處理資源。另一方面,如果以明顯快於預期的速率完成命令,則控制器不必等待命令完成,就可發出狀態請求並進行到後續步驟,諸如向其他過程發出命令或傳輸資料。
因此,本揭露的各種實施例整體涉及用於管理記憶體,諸如但不限於固態硬碟(SSD)中的快閃記憶體中的資料的設備和方法。如下面所解釋,一些實施例提供控制器電路,該控制器電路經組態以與記憶體模組通訊。記憶體模組包括記憶體模組電子器件(MME)電路和非揮發性記憶體(NVM)。NVM由多個固態非揮發性記憶體單元,諸如快閃記憶體陣列形成。控制器電路經組態以向記憶體模組傳送第一命令,該第一命令包括位址資訊和第一操作碼,該第一操作碼識別待由記憶體模組採取的與位址資訊相關的第一動作。
控制器電路進一步經組態以隨後向記憶體模組傳送第二命令,該第二命令包括與第一命令相關聯的狀態請求。回應於由控制電路基於與第一命令的位址資訊相關聯的歷史統計所判定的自適應或
可變延遲時間間隔來發出第二命令。這樣,控制器電路基於記憶體模組的所觀察到的行為而自適應地調整延遲時間以更緊密地匹配該模組的實際命令完成時間性能。
從提供資料處理系統100的圖1的回顧開始,可以理解各種實施例的這些和其他特徵與優點。系統100包括主機裝置102和資料儲存裝置104。資料儲存裝置104包括控制器106和記憶體模組108。控制器是可程式化處理器及/或基於硬體的電路,其提供頂層通訊和控制功能以便實現向和從記憶體模組108中的非揮發性記憶體(NVM)儲存設備的資料傳輸。可經由選定的協定來提供主機裝置和資料儲存裝置之間的資料傳輸。
圖2顯示總體上對應於圖1中的裝置104的資料儲存裝置110。裝置110經組態以經由一個或多個快速周邊組件介面(Peripheral Component Interface Express,PCIe)埠與主機裝置(諸如圖1中的102)通訊的固態硬碟(SSD),但可使用其他配置。
SSD 110包括控制器電路112和記憶體模組114。控制器電路112(下文稱「控制器」)包括前端控制器114、核心控制器116和後端控制器118。前端控制器114執行主機I/F功能,後端控制器118指示使用記憶體模組114進行資料傳輸,並且核心控制器116提供對該裝置的頂層控制。
每個控制器114、116和118包括在合適的記憶體位置中具有相關聯的程式化(例如,韌體、FW)的單獨可程式化處理器,以及用以執行資料管理和傳輸功能的各種硬體元件。這僅僅是對一個
實施例的說明;在其他實施例中,單個可程式化處理器(或少於三個可程式化處理器)可經組態以使用合適的記憶體位置中的相關聯的FW來執行前端程序、核心程序和後端程序中的每一者。進一步可使用純粹基於硬體的控制器組態。各種控制器可整合到單晶片系統(single system on chip,SOC)積體電路裝置中,或可根據需要分佈在各種分立裝置之間。
控制器記憶體120表示由控制器112用作本機記憶體的各種形式的揮發性和非揮發性記憶體(例如,SRAM、DDR DRAM、快閃記憶體等)。各種資料結構和資料集可由記憶體儲存,該記憶體包括一個或多個映射結構122、用於映射資料和其他控制資訊的一個或多個快取124、以及用於在資料傳輸期間暫時儲存主機(使用者)資料的一個或多個資料緩衝區126。非基於處理器的硬體輔助電路128可根據需要由一個或多個控制器實現某些記憶體管理任務的卸載。硬體電路118不利用可程式化處理器,而是使用各種形式的硬接線邏輯電路,諸如特殊應用積體電路(ASIC)、閘邏輯電路、現場可程式化閘陣列(FPGA)等。
記憶體模組114包括記憶體模組電子器件電路130(下文稱「MME」)和快閃記憶體陣列132。MME 130包括讀取/寫入/抹除(R/W/E)電路以及其他結合到記憶體模組114中以將資料寫入到快閃記憶體132的控制電路。MME可由以下形成:在記憶體中具有相關聯的程式化的一個或多個可程式化處理器電路,及/或經調適以使用控制器112執行各種命令和資料傳輸的硬體電路。
快閃記憶體132包括多個快閃晶粒134(稱為晶粒0至晶粒3)。雖然僅顯示三個晶粒,但可使用任何數量。MME 130可操作以沿著使用相關聯的晶粒134確立的每個通道(路徑(lane))執行並行資料傳輸操作。快閃記憶體可根據需要經配置為單個儲存層或多個層。
雖然並非限制性的,但本領域的技術人員應當理解,當代SSD和其他資料儲存裝置系統可以由可從此類裝置的來源商購獲得的積體記憶體模組諸如114形成。可由裝置製造商將記憶體模組整合到SSD中,該裝置製造商提供控制器功能並定製控制器以與記憶體模組一起操作。因此控制器和記憶體模組是跨越一個或多個限定的資料和命令介面進行通訊的單獨操作實體。通常使用「拉式(pull)」系統,其中控制器112發出命令,然後由記憶體模組114反覆檢查(輪詢)這些命令的狀態以判定是否已完成這些命令。
圖3更詳細地顯示控制器112和MME 130的各態樣。MME緩衝記憶體136結合到MME 130中或以其他方式由MME 130利用,以暫時儲存在快閃記憶體132和控制器112的主機資料緩衝區138之間傳輸的資料。為了實現此類資料傳輸,控制器112向MME 130發出各種命令,諸如讀取命令、寫入命令、抹除命令、資料傳輸命令和狀態命令(也稱為狀態請求)。MME 130提供各種命令狀態回應以提供控制器命令的狀態的指示。
當從快閃記憶體132讀取資料時,控制器112以一定格式發出讀取命令,該格式識別要從記憶體返回到控制器的所請求的資
料,以便後續傳輸到與SSD 110耦接的外部主機裝置(例如,圖1中的主機102)。MME 130排程並執行讀取命令,並且將所擷取的資料放入本機MME緩衝區136中。控制器112隨後發出一個或多個狀態請求,諸如讀取狀態增強(RSE)命令,其請求與所擷取的資料相關聯的狀態。MME 130回應於每個狀態請求而提供讀取狀態。
如果MME 130尚未完成資料讀取操作,則MME可發出「命令仍待決(command still pending)」類型讀取狀態(也稱「未就緒」回應)的信號。一旦完成資料讀取操作,MME就發出「傳輸就緒」讀取狀態(也稱為「就緒」回應)的信號,該狀態指示所擷取的資料在MME緩衝區136中待決並且準備好傳輸到主機緩衝區138。控制器112隨後發出傳輸(XFER)命令以將資料從MME緩衝區1136傳輸到主機緩衝區138,之後將資料傳輸到請求主機裝置。
可以以類似方式執行寫入(程式化)操作。控制器112向MME 130發出寫入命令,並且在等待傳輸到MME緩衝區136以進行後續處理和寫入到快閃記憶體108之際,將寫入資料傳輸到主機緩衝區138。MME 130將向控制器112發出命令完成類型回應的信號以指示資料已成功寫入到快閃記憶體。
由控制器112發出抹除命令以抹除快閃記憶體132內的記憶體的選定的單元,諸如構成可一次抹除的記憶體的最小單元的某些抹除區塊(erasure block)。抹除區塊可被分組成稱為垃圾收集單元(garbage collection unit,GCU)的較大的多方塊集合。回應於抹除命令,MME 130將排程垃圾收集操作,其中受影響的區塊內的目前(有
效)資料被複製到新位置,這些區塊被抹除,然後在等待後續分配以儲存新資料之際放入分配池中。應當理解,可抹除記憶體諸如NAND快閃在可使用新資料重寫給定位置之前通常需要抹除操作。
控制器112向MME 130發出的這些和其他各種命令可採取如圖4所述的一般形式。例示性命令140包括操作碼142和位址144。操作碼142是多位元序列,該多位元序列由MME 130的操作解碼器146解碼以表示待由MME採取的所需操作或動作。第一多位元序列可表示讀取命令,第二多位元序列可表示程式化命令,以此類推。
位址144表示將對其執行命令的對應記憶體位置。位址144被加載到MME 130的位址緩衝區148。該位址可採取多種形式,並且可包括識別特定晶粒、平面、垃圾收集單元(GCU)、抹除區塊、頁面、列、行偏移等的值。可使用列及/或行定址兩者。可根據需要將其他元素結合到命令格式中,諸如標頭、同位位元(parity bit)等,但係了簡化說明,省略了這些元素。
此時應當注意,給定命令的特定格式將取決於係規定控制器和MME之間的I/O通訊而確立的通訊協定。命令諸如狀態請求可包括操作碼部分但不包括對應位址部分等。
圖5提供時序圖150以顯示在控制器112和MME 130之間的選定的命令的處理期間執行的操作的一般序列。在圖5中,可以設想,該命令是讀取命令以從MME內的選定位置讀取選定的資料量。由控制器112向MME 130發出具有圖4所示格式的讀取命令。
一旦接收到讀取命令,MME就繼續從快閃記憶體132排程和執行對所請求的資料的讀取。
在給定的等待週期(延遲時間)之後,控制器發出第一讀取狀態請求。MME解碼該命令(讀取狀態請求),判定系統的狀態(該命令的執行仍在進行中)並且發出回應(未就緒)。控制器經歷後續的等待時間,然後向MME發出第二讀取狀態請求。第二等待時間可係與第一等待時間相同的持續時間,或較短的等待時間可用於第二間隔。在第一狀態請求與第二狀態請求之間的中介時間中,完成讀取命令並且將資料移動到MME緩衝區136(圖3)。
MME處理第二讀取狀態,這一次指示資料就緒。然後是來自控制器的傳輸命令,並且在等待傳輸到請求主機之際將資料從MME緩衝區136傳輸到主機緩衝區138(圖3)。應當理解,諸如寫入命令和抹除命令的其他命令將遵循類似序列:發出頂層命令,然後是一個或多個狀態請求以追蹤該命令的進度,接下來一旦該命令被指示係已完成,就進行後續處理。
根據系統的組態和工作負荷,可由相應控制器和MME同時處理與圖5所示類似的好幾百或幾千個命令序列。雖然圖5中僅發出了兩個狀態請求,但應當理解,可在給定命令的未決期間發出任何數量的附加狀態請求。由此得出,為許多未決命令發出許多未成功的狀態請求可在主機資料I/O傳輸期間向控制器和MME兩者提供顯著負荷。與此同時,為了移除這些過早請求而顯著延長狀態請求之間
的延遲可能不利地降低有效主機資料I/O資料傳輸速率,這是由於MME可能在控制器請求命令的狀態很早以前完成這些命令。
控制器112經組態以自適應地調整各種類型的命令所遇到的各種延遲時間以更好地管理狀態命令的發出並匹配MME 130的實際性能。圖6顯示了與各種操作電路相結合的控制器112,這些操作電路結合到控制器中或以其他方式由控制器利用。與控制器一樣,各種電路可根據需要在硬體及/或韌體(程式化)中實現。
這些電路包括計時器電路160、作為資料結構儲存於本機記憶體中的累計統計表162、訓練算法164、平均電路166、也作為資料結構儲存於本機記憶體中的延遲表168、以及一個或多個環境感測器170。可使用其他佈置方式,包括機率(布隆(bloom))濾波器的使用。控制器利用這些各種電路來係命令類型、位置(例如,不同晶粒、頁面等)和環境條件(例如,溫度、命令佇列深度等)的不同組合確立適當的延遲時間或經過時間的延遲間隔。隨後諸如通過遞增或遞減,相對於對各種組合的先前累計統計來連續地調整延遲時間。
圖7顯示一些實施例中的一般處理流程以描述圖6的電路的操作。出於提供具體說明的目的,圖7的流程將被設想係覆蓋控制器112所發出的讀取命令的群體以從特定位置諸如選定的晶粒134(例如,晶粒0)擷取先前儲存的資料。命令群體可用於所有環境條件,或可係在裝置在選定的環境溫度範圍內操作時執行的命令子集。這允許控制器在其他溫度範圍(或其他環境條件)係讀取命令選擇一
個或多個不同延遲時間,前提條件是其他溫度範圍(或其他環境條件)被認係是統計上顯著的。
如步驟172所示的那樣發出每個讀取命令。然後在174處起始計時器以計數出與先前選定的線增量相對應的經過時間間隔。另外,每次可使用相同延遲間隔,諸如X微秒,或可使用X ms的更長初始延遲時間,然後是對於每個連續讀取請求的Y ms的更短延遲(其中X>Y)。在一個實例中,X可能大約係40至45ms,並且如果使用的話,Y可能大約係5至10ms。可使用其他值。
如在步驟176處所示,在每個延遲週期增量結束時發出狀態請求,並且MME 130與「未就緒」或「就緒」回應(參見圖5)相對應。在步驟178處,累計過早狀態請求(即,返回「未就緒」指示的請求)的總數。
一旦已累計足夠數量的統計,就在步驟180處分配新的基線延遲值,諸如X-A或X+B。在一些情況下,可從累計資料內推出獲得該回應所需的時間的平均值。在步驟182處儲存新的基線延遲值,並將其用於進一步的讀取請求。這樣,該系統可繼續自適應地調整基線延遲,以在已完成這些命令之後提供狀態時減少不必要的(過早的)狀態請求和非期望的延遲。在一些情況下,可使用累計計數屏蔽位元以使控制器能夠略去已知係錯誤的某些計數。這就能夠判定更準確的移動平均(running average)或其他累計統計。
圖8是桶分析圖184,顯示來自圖7的操作的不同數量累計過早狀態請求的各種條形186(桶)。圖8中累計的資料顯示從0
到N-1的不同相對相應數量過早狀態請求。與所測試的組合相關聯的變異量以及在連續狀態請求之間使用的增量往往會影響總體分佈的形狀。
然而,可以設想,隨時間推移,所獲得的分佈本質上將略微呈高斯分佈,其中峰值或以其他平均值方式處於平均命令完成時間附近。可在統計上顯著數量的命令內累計諸如圖8中所表示的資料以得出一個或多個新的合適基線延遲值。在一些情況下,可設定平均值,使得發出較少數量的可接受過早狀態請求,諸如1至2個請求或某個其他值。
圖9顯示曲線188,指示對於給定組合而言隨時間推移可對延遲時間施加的自適應調整。可以設想,延遲時間將收斂於穩定狀態值或範圍。隨時間推移,諸如溫度、老化、讀取干擾效應、因無法校正的錯誤引起的讀取恢復效應等環境因素可計入適當延遲時間的自適應調整中。調整的量可限於最大增量或減量值以將滯後添加到系統並且確保向最佳延遲值的閉迴路收斂性。可易於應用求平均值、滾動窗口、曲線擬合、回歸分析和其他技術以得出下一調整延遲值。相關聯的位置的合適量的先前歷史資料可保持在記憶體中(參見例如圖6中的累計統計方塊162)並且用於新的計算。
在一些情況下,相同晶粒或其他記憶體結構內的不同位置可提供顯著不同的回應時間。圖10顯示被程式化係多層單元(MLC)的不同快閃記憶體單元的一系列群體曲線190。每個MLC儲存總共兩位元。一列記憶體單元(例如,耦接到抹除區塊內的共用字線)可經
組態為MLC,以同時儲存資料的下頁面和資料的上頁面。下頁面由程式化狀態的最高有效位元(MSB)表示,並且上頁面由最低有效位元(LSB)表示。可使用其他記錄方案,包括SLC(單層單元)、TLC(三層單元)、QLC(四層單元)等。
可通過將一個或多個電壓臨限施加於單元的控制閘來判定相應群體的程式化狀態。以V1至V4顯示了四個此類電壓臨限。一般來講,電壓臨限的施加往往會使低於臨限的單元(例如,在圖10的左邊)處於導電狀態,並且往往會使高於臨限的單元(例如,在圖10的右邊)保持處於通常非導電的狀態。
由此得出,資料的下頁面的讀取速度可快於資料的上頁面,依據是僅需要施加單個電壓臨限(例如,V3)就可識別相應狀態的MSB,並因此恢復資料的下頁面。需要施加附加臨限(例如,V2、V4)來識別相應狀態的LSB並恢復資料的上頁面。因此,控制器112可進一步針對要擷取資料的哪個頁面來調整基線延遲。如果請求的是下頁面,則可使用第一延遲值,而如果請求的是上(或高)頁面,則可使用更長的第二延遲值。在一些情況下,可基於下頁面(SLC資料)的擷取來判定基線延遲值,並且可將小增量添加到基線延遲值以考慮從相同組的單元擷取上頁面或高頁面資料所需的附加時間。
不同類型的命令往往需要顯著不同量的平均時間來完成。例如,讀取命令可需要X ms,寫入命令可需要Y ms,並且抹除命令可需要Z ms(其中X<Y<Z)。然而,來自選定的抹除塊或抹除
塊組的所有頁面往往可分別提供類似的讀取時間性能、寫入時間性能和抹除時間性能。在這種情況下,可在每個抹除塊基礎上係每種類型的命令計算平均值,並根據需要針對頁面位置進行調整。然而,不同晶粒134可表現出顯著不同的延遲時間以便完成各種指令操作,使得一個晶粒提供(X,Y,Z)的平均讀取/寫入/抹除時間,而另一個晶粒提供(A,B,C)的不同平均讀取/寫入/抹除時間。
圖11顯示對於快閃陣列內的兩個不同位置的兩個單獨命令執行間隔的圖形表示。第一命令執行間隔表示於192處並且表示從時間T0到時間T1的平均經過時間以完成指向第一選定的晶粒X上的第一選定的頁面W的選定的命令的執行。第二更長命令執行間隔表示於194處並且表示平均經過時間以完成對第二選定的晶粒Z中的第二選定的頁面Y的相同類型的命令的執行,該平均經過時間從時間T0延伸到時間T2。
例示性可變延遲時間間隔表示係從T0到時間T3的經過時間。如上所述,可變延遲時間間隔表示從第一命令(時間T0的選定動作)的傳送到第二命令(時間T3的狀態請求)的後續傳送的時間間隔。可以看出,在時間T3處發出狀態請求可係這兩個執行間隔的次優解決方案;該延遲可被認為對於晶粒X較長(方塊172)並且對於晶粒Z太短(方塊174)。因此獨立地定製單獨延遲將係驅動器提供增強的輸送量性能,這是由於更短的延遲間隔可用於更快的晶粒X,並且更長的延遲間隔可用於更慢的晶粒Z,並且將減少過早和不必要延遲的狀態請求的數量。
如上所述,在一些情況下,將對給定類型的命令的給定位置計算初始基線延遲,然後可使用諸如頁面位置、環境因素、資料老化、程式化/抹除計數、讀取干擾計數等其他因素使初始基線延遲遞增或遞減以提供最終延遲值。可以回想到,總的說來,可能最佳的是選擇平均提供相對較少數量的過早狀態請求的基線延遲。如上文在圖7至圖8中所討論,這些統計的持續累計可向控制器提供反饋以增大或減小現有設置。可繼續使用給定設置直到達到臨限極限(對於單獨命令,或對於平均數量的命令而言)或獲得過早狀態請求的數量。
圖12顯示資料處理常規200的流程圖以總結前述討論的各態樣。可以設想,該常規表示在主機裝置102所發出的各種資料傳輸命令的處理期間控制器112進行的操作。各種步驟可對應於結合在由一個或多個可程式化處理器所執行的程式化中的程序指令流。該常規僅僅是示例性的,並且可視需要根據本揭露進行修改。
在步驟202處,最初由控制器112向MME 130發出資料傳輸命令。這可採取任何數量的合適形式,包括讀取命令、寫入命令或抹除命令。在步驟204處,從記憶體(諸如延遲表168,圖6)重新調用與該命令的位址(例如,如圖4中的命令的位址部分)相關聯的延遲時間的基線值。在步驟206處,使用該基線值起始計時器(諸如計時器電路160,圖6)以表示對應於該基線值的經過時間間隔。
決策步驟208提供回路以判定經過時間間隔是否已完成;當其已完成時,控制器112繼續在步驟210處向MME 130發出第一狀態請求命令。步驟212指示命令執行是否已完成;即,MME
是返回「未就緒」還是「就緒」狀態。如果未完成,則該常規返回到方塊206以便執行第二時間間隔。如上所討論,該第二時間間隔可係與第一時間間隔相同的持續時間,或可係不同時間間隔。可以設想,這些時間間隔將全都相同或後續時間間隔將更短,但不必一定如此;可以設想不同的配置,其中可能有利的是在某些情形下提供更長的時間間隔。
一旦MME指示該命令已成功完成,該流程就從步驟212進行到步驟214,在此如上文在圖5中所討論的那樣擷取資料。此時,控制器112繼續根據需要執行其他步驟以完成該常規的處理。另外,控制器112在步驟216處判定是否要調整現有基線延遲值。如果是這樣,則在步驟218處如上所討論的那樣分析相關聯的位置的累計統計以得出新的基線值,然後在步驟202的後續操作期間儲存和使用該新的基線值。
在一些情況下,控制器112可在持續操作期間提供各種延遲時間的即時調整,使得系統隨時間推移而連續自適應地調整。該方法的優點在於系統能密切監測並匹配記憶體模組114的目前性能。在其他情況下,可如圖7和圖9中所提供的那樣累計資料,並且控制器112可在離線或低需求間隔期間執行校正常規以確立適當的延遲間隔。在另外的其他實施例中,控制器112可定期執行測試校正讀取(例如,從系統中的每個晶粒/抹除區塊組合讀取至少一個頁面)以評估目前延遲值並根據需要進行調整。
雖然已在快閃記憶體的環境中描述各種實施例,但這僅僅是例示性的。各種實施例可易於實現為其他形式的固態記憶體,包括但不限於自旋力矩轉移隨機存取記憶體(spin-torque transfer random access memory,STRAM)、電阻式隨機存取記憶體(resistive random access memory,RRAM)、相變隨機存取記憶體(phase change random access memory,PCRAM)、磁性隨機存取記憶體(magnetic random access memory,MRAM)等。
應當理解,即使在前述描述中已經闡述了本揭露的各種實施例的許多特徵和優點,以及各種實施例的結構和功能的細節,但該詳細描述也僅僅是示例性的,並且可在表述所附申請專利範圍的用語的廣泛一般意義所指示的最大程度上,尤其是在本揭露的原理內對部件的結構和佈置方式做細節改變。
Claims (20)
- 一種用於管理一記憶體中的資料的設備,其包括:一記憶體模組,該記憶體模組包括一非揮發性記憶體(non-volatile memory,NVM)和一記憶體模組電子器件(memory module electronics,MME)電路,該MME電路經組態以將資料程式化到該NVM的固態非揮發性記憶體單元並從該NVM的固態非揮發性記憶體單元讀取資料;及一控制器電路,該控制器電路經調適以向該記憶體模組傳送一第一命令,該第一命令包括該NVM內的一選定位址以及待由該MME電路採取的與該選定位址相關的一選定動作,該控制器電路進一步經調適以隨後在一可變延遲時間間隔結束時向該記憶體模組傳送一第二命令,該第二命令包括與該第一命令的完成相關聯的一狀態請求,該可變延遲時間間隔之選擇係回應於由該控制器電路向該記憶體模組先前傳送的對於在該第一命令的該傳送之前發出的與該選定位址相關聯的先前命令的狀態請求的一累計計數(accumulated count)。
- 如請求項1之設備,其中該MME電路經組態以在一命令執行間隔內執行該第一命令,其中該MME電路進一步經組態以回應於在該命令執行間隔結束之前接收到該第二命令的該狀態請求而向該控制器電路傳送一未就緒狀態,且其中該MME電路進一步經組態以回應於在該命令執行間隔結束之後接收到該第二命令的該狀態請求而向該控制器電路傳送一就緒狀態。
- 如請求項2之設備,其中可變延遲時間間隔係一第一可變延遲時間間隔,且其中該控制器電路進一步經組態以對回應於該第二命令的該狀態請求而從該MME電路接收到該未就緒狀態作出回應,而在一第二可變延遲時間間隔結束時向該記憶體模組傳送一第三命令,該第三命令包括與該第一命令的完成相關聯的一第二狀態請求。
- 如請求項3之設備,其中該第一可變延遲時間間隔和該第二可變延遲時間間隔各自具有相同持續時間。
- 如請求項3之設備,其中該第二可變延遲時間間隔的持續時間短於該第一可變延遲時間間隔的持續時間。
- 如請求項1之設備,其中針對介於傳送用於該NVM中的複數個不同位址中每個位址的命令與該等命令的相關聯狀態請求之間的經過時間持續時間,該控制器電路針對該複數個不同位址中的每個位址使用一不同的可變延遲時間間隔。
- 如請求項1之設備,其中該可變延遲時間間隔係一第一可變延遲時間間隔,且該選定動作係讀取、寫入或抹除操作中之一選定者,且其中該控制器電路在介於向該記憶體模組傳送一第三命令以執行與該選定位址相關聯的該等讀取、寫入或抹除操作中之一剩餘者與發出一狀態請求以判定該第三命令的一狀態之間,使用一不同的第二可變延遲時間間隔。
- 如請求項1之設備,其中該控制器電路藉由以下方式判定該可變延遲時間間隔:對於向該記憶體模組傳送的與該選定位址相關聯的複數個連續命令,使用一初始延遲時間間隔來累計與該複數個連續命令中的每個連續命令相關聯的過早狀態請求的一各別數量,以及回應於該等過早狀態請求的一群體分佈而調整該初始延遲時間間隔以得出該可變延遲時間間隔,其中該等過早狀態請求中的每個過早狀態請求包括由該MME電路給出的關於該相關聯的命令尚未完成的一指示。
- 如請求項1之設備,其中該NVM包括具有複數個晶粒的一NAND快閃記憶體陣列,且其中該選定位址包括從該複數個晶粒中選擇的一晶粒。
- 如請求項1之設備,其進一步包括一延遲表(delay table),該延遲表作為一資料結構儲存於一本機記憶體中,該延遲表為該控制器電路提供用於該複數個晶粒中的每個晶粒之一不同的可變延遲時間間隔。
- 如請求項1之設備,其中該NVM的該等固態非揮發性記憶體單元經組態為多位元單元,使得該選定位址包括至少儲存資料的一第一頁面和資料的一第二頁面的該等固態非揮發性記憶體單元的一選定群組,其中該可變延遲時間間隔係與該選定位址處的資料的該第一頁面相關聯的一第一可變延遲時間間隔,且其中該控制器電路進一步在介於發出與該選定位址處的資料的該第二頁面相關聯的一第三命令與發出一第四命令作為有關該第三命令的完成的一狀態請求之間,使用一不同的第二可變延遲時間間隔。
- 如請求項1之設備,其中該第一命令包括一第一操作碼部分和一位址部分,該第一操作碼部分作為指示待由該MME電路採取的該選定動作的一多位元值,該位址部分作為識別該NVM中該選定位址的一多位元值,且其中該第二命令包括一第二操作碼部分,該第二操作碼部分作為請求有關該第一命令中的該第一操作碼部分的完成的一狀態的一多位元值。
- 如請求項1之設備,其中該第二命令係在該第一命令之後由該控制器電路針對該選定位址發出的下一緊接命令,使得該控制器電路在該第一命令與該第二命令之間不針對該選定位址發出任何中介命令。
- 一種用於管理一記憶體中的資料的方法,其包括:從一控制器電路向一記憶體模組的一記憶體模組電子器件(MME)電路傳送一第一命令,該第一命令包括該記憶體模組的一非揮發性記憶體(NVM)中之一選定位址以及待由該MME電路採取的與該位址相關的一選定動作;回應於該第一命令的該傳送來起始一可變延遲時間間隔;以及在該可變延遲時間間隔結束時從該控制器電路向該MME電路傳送一第二命令,該第二命令包括與該第一命令的完成相關聯的一狀態請求,該可變延遲時間間隔之選擇係回應於由該控制器電路向該記憶體模組先前傳送的對於在該第一命令的該傳送之前該選定位址的狀態請求的一累計計數。
- 如請求項14之方法,其中該可變延遲時間間隔係具有一第一持續時間的一第一間隔,且其中該方法進一步包括對回應於該第二命令的該狀態請求而由該控制器電路從該MME電路接收到關於該選定動作未完成的一指示作出回應,而使該可變延遲時間間隔遞增至一第二間隔,該第二間隔具有一更長的第二持續時間。
- 如請求項14之方法,其中該可變延遲時間間隔係一第一可變延遲時間間隔,且其中該控制器電路進一步經組態以對回應於該第二命令的該狀態請求而從該MME電路接收到該未就緒狀態作出回應,而在一第二可變延遲時間間隔結束時向該記憶體模組傳送一第三命令,該第三命令包括與該第一命令的完成相關聯的一第二狀態請求。
- 如請求項14之方法,其進一步包括:由該MME電路在一命令執行間隔內執行該第一命令;以及回應於在該命令執行間隔結束之前接收到該第二命令的該狀態請求而由該MME電路向該控制器電路傳送一未就緒狀態。
- 如請求項14之方法,其進一步包括:由該MME電路在一命令執行間隔內執行該第一命令;回應於在該命令執行間隔結束之後接收到該第二命令的該狀態請求而由該MME電路向該控制器電路傳送一就緒狀態;以及回應於該就緒狀態而由該控制器電路向該MME電路傳送一第三命令,以採取與該第一命令相關聯的一第二選定動作。
- 如請求項14之方法,其進一步包括藉由以下方式判定該可變延遲時間間隔的大小:使用一初始延遲時間間隔來累計與用於該選定位址的複數個連續命令中的每個連續命令相關聯的過早狀態請求的一各別數量,其中該等過早狀態請求中的每個過早狀態請求包括由該MME電路給出的關於該相關聯的命令尚未完成的一指示;以及回應於該等過早狀態請求的一群體分佈而調整該初始延遲時間間隔以得出該可變延遲時間間隔。
- 如請求項14之方法,其中該NVM包括具有複數個晶粒的一NAND快閃記憶體陣列,其中該選定位址包括從該複數個晶粒中選擇的一晶粒,且其中該方法進一步包括在介於一命令之發出與針對該等剩餘晶粒中的每個剩餘晶粒的一後續狀態請求之間,使用一不同的可變延遲時間間隔。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/606,549 US10140027B1 (en) | 2017-05-26 | 2017-05-26 | Data transfers with adaptively adjusted polling times |
US15/606,549 | 2017-05-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201901440A TW201901440A (zh) | 2019-01-01 |
TWI672591B true TWI672591B (zh) | 2019-09-21 |
Family
ID=64315827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107116904A TWI672591B (zh) | 2017-05-26 | 2018-05-18 | 用於管理記憶體中的資料的方法及設備 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10140027B1 (zh) |
JP (1) | JP6805205B2 (zh) |
KR (1) | KR102154781B1 (zh) |
CN (1) | CN108932110B (zh) |
TW (1) | TWI672591B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI718532B (zh) * | 2019-05-10 | 2021-02-11 | 技嘉科技股份有限公司 | 固態硬碟以及固態硬碟的效能優化方法 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10474361B1 (en) * | 2018-05-02 | 2019-11-12 | Seagate Technology Llc | Consolidating non-volatile memory across multiple storage devices for front end processing |
KR102655360B1 (ko) * | 2018-12-13 | 2024-04-05 | 에스케이하이닉스 주식회사 | 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법 |
US11086528B2 (en) * | 2018-12-14 | 2021-08-10 | SK Hynix Inc. | Memory controller and memory system having the same |
TWI784120B (zh) * | 2019-01-17 | 2022-11-21 | 韓商愛思開海力士有限公司 | 用於儲存裝置之記憶體控制器、儲存裝置、儲存裝置之控制方法以及記錄媒體 |
US10685722B1 (en) * | 2019-01-24 | 2020-06-16 | Western Digital Technologies, Inc. | Method and system for improving performance of a storage device using asynchronous independent plane read functionality |
CN109979508A (zh) * | 2019-03-15 | 2019-07-05 | 合肥沛睿微电子股份有限公司 | 固态硬盘装置与相关的固态硬盘控制电路 |
US11669272B2 (en) * | 2019-05-31 | 2023-06-06 | Micron Technology, Inc. | Predictive data transfer based on availability of media units in memory sub-systems |
US10949115B2 (en) | 2019-06-24 | 2021-03-16 | Western Digital Technologies, Inc. | Flash memory polling |
KR20210041829A (ko) * | 2019-10-08 | 2021-04-16 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 |
CN111078146B (zh) * | 2019-12-13 | 2023-11-14 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
US11468960B2 (en) | 2019-12-31 | 2022-10-11 | Micron Technology, Inc. | Semiconductor device with selective command delay and associated methods and systems |
CN113867640A (zh) * | 2021-09-28 | 2021-12-31 | 合肥兆芯电子有限公司 | 存储器轮询方法、存储器存储装置及存储器控制电路单元 |
US11836384B2 (en) | 2022-03-10 | 2023-12-05 | Western Digital Technologies, Inc. | Automatic prediction timers adaptation |
CN115269468B (zh) * | 2022-09-29 | 2023-01-24 | 北京特纳飞电子技术有限公司 | 状态读取指令发送方法、装置、存储设备和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080209112A1 (en) * | 1999-08-04 | 2008-08-28 | Super Talent Electronics, Inc. | High Endurance Non-Volatile Memory Devices |
US20140047170A1 (en) * | 2012-05-04 | 2014-02-13 | Lsi Corporation | Maintaining ordering via a multi-level map of a solid-state media |
US20150154118A1 (en) * | 2013-12-04 | 2015-06-04 | Sandisk Technologies Inc. | Storage Module and Method for Managing Logical-to-Physical Address Mapping |
US20160019160A1 (en) * | 2014-07-17 | 2016-01-21 | Sandisk Enterprise Ip Llc | Methods and Systems for Scalable and Distributed Address Mapping Using Non-Volatile Memory Modules |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5159672A (en) * | 1989-12-28 | 1992-10-27 | Intel Corporation | Burst EPROM architecture |
US6804741B2 (en) | 2002-01-16 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Coherent memory mapping tables for host I/O bridge |
US8533401B2 (en) | 2002-12-30 | 2013-09-10 | Intel Corporation | Implementing direct access caches in coherent multiprocessors |
US7844778B2 (en) | 2006-07-11 | 2010-11-30 | International Business Machines Corporation | Intelligent cache replacement mechanism with varying and adaptive temporal residency requirements |
US20090172213A1 (en) * | 2007-12-31 | 2009-07-02 | Sowmiya Jayachandran | Command completion detection in a mass storage device |
KR101507122B1 (ko) * | 2008-04-29 | 2015-04-01 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 액세스 방법 |
US8825940B1 (en) | 2008-12-02 | 2014-09-02 | Siliconsystems, Inc. | Architecture for optimizing execution of storage access commands |
US9176859B2 (en) | 2009-01-07 | 2015-11-03 | Siliconsystems, Inc. | Systems and methods for improving the performance of non-volatile memory operations |
US10079048B2 (en) | 2009-03-24 | 2018-09-18 | Western Digital Technologies, Inc. | Adjusting access of non-volatile semiconductor memory based on access time |
CN101692647B (zh) * | 2009-10-12 | 2012-03-14 | 清华大学 | 路由器中采用IPv6头封装IPv4包的隧道转发系统 |
US8495299B2 (en) | 2009-11-16 | 2013-07-23 | Microsoft Corporation | Non-blocking data transfer via memory cache manipulation |
US9772651B2 (en) * | 2012-09-14 | 2017-09-26 | Samsung Electronics Co., Ltd. | Embedded multimedia card (eMMC), host controlling eMMC, and method operating eMMC system including the use of a switch command defining an adjustment delay for a data signal |
US9032177B2 (en) * | 2012-12-04 | 2015-05-12 | HGST Netherlands B.V. | Host read command return reordering based on time estimation of flash read command completion |
US9250901B2 (en) | 2013-03-12 | 2016-02-02 | Intel Corporation | Execution context swap between heterogeneous functional hardware units |
US9405672B2 (en) | 2013-06-25 | 2016-08-02 | Seagate Technology Llc | Map recycling acceleration |
US9824004B2 (en) * | 2013-10-04 | 2017-11-21 | Micron Technology, Inc. | Methods and apparatuses for requesting ready status information from a memory |
US9093160B1 (en) * | 2014-05-30 | 2015-07-28 | Sandisk Technologies Inc. | Methods and systems for staggered memory operations |
KR20170001237A (ko) * | 2015-06-26 | 2017-01-04 | 에스케이하이닉스 주식회사 | 상태 읽기를 수행하는 메모리 시스템 및 그것의 동작 방법 |
-
2017
- 2017-05-26 US US15/606,549 patent/US10140027B1/en active Active
-
2018
- 2018-05-18 TW TW107116904A patent/TWI672591B/zh not_active IP Right Cessation
- 2018-05-21 JP JP2018097209A patent/JP6805205B2/ja active Active
- 2018-05-25 CN CN201810545652.1A patent/CN108932110B/zh active Active
- 2018-05-28 KR KR1020180060386A patent/KR102154781B1/ko active IP Right Grant
- 2018-11-27 US US16/201,767 patent/US10664168B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080209112A1 (en) * | 1999-08-04 | 2008-08-28 | Super Talent Electronics, Inc. | High Endurance Non-Volatile Memory Devices |
US20140047170A1 (en) * | 2012-05-04 | 2014-02-13 | Lsi Corporation | Maintaining ordering via a multi-level map of a solid-state media |
US20150154118A1 (en) * | 2013-12-04 | 2015-06-04 | Sandisk Technologies Inc. | Storage Module and Method for Managing Logical-to-Physical Address Mapping |
US20160019160A1 (en) * | 2014-07-17 | 2016-01-21 | Sandisk Enterprise Ip Llc | Methods and Systems for Scalable and Distributed Address Mapping Using Non-Volatile Memory Modules |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI718532B (zh) * | 2019-05-10 | 2021-02-11 | 技嘉科技股份有限公司 | 固態硬碟以及固態硬碟的效能優化方法 |
US11262914B2 (en) | 2019-05-10 | 2022-03-01 | Giga-Byte Technology Co., Ltd. | Solid-state drive and performance optimization method for solid-state drive |
Also Published As
Publication number | Publication date |
---|---|
JP2018200689A (ja) | 2018-12-20 |
US10664168B2 (en) | 2020-05-26 |
KR20180129696A (ko) | 2018-12-05 |
US20180341403A1 (en) | 2018-11-29 |
US10140027B1 (en) | 2018-11-27 |
CN108932110B (zh) | 2021-08-13 |
CN108932110A (zh) | 2018-12-04 |
JP6805205B2 (ja) | 2020-12-23 |
KR102154781B1 (ko) | 2020-09-10 |
US20190095099A1 (en) | 2019-03-28 |
TW201901440A (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI672591B (zh) | 用於管理記憶體中的資料的方法及設備 | |
US11145369B2 (en) | Apparatuses and methods for adjusting write parameters based on a write count | |
US9898199B2 (en) | Data storage device and operating method thereof | |
US10949115B2 (en) | Flash memory polling | |
US9916880B2 (en) | Apparatuses, circuits, and methods for biasing signal lines | |
CN111381777A (zh) | 用于受管理存储器的仲裁技术 | |
CN111382002B (zh) | 具有动态ecc电压和频率的方法和系统 | |
US20210349662A1 (en) | Implementing variable number of bits per cell on storage devices | |
CN111382097A (zh) | 用于受管理存储器的仲裁技术 | |
US11342013B2 (en) | Memory system and operating method to set target command delay time to merge and process read commands | |
TW202006530A (zh) | 用於計數器更新操作之設備及方法 | |
US11861207B2 (en) | Management of erase suspend and resume operations in memory devices | |
US20230143181A1 (en) | Write buffer control in managed memory system | |
US11321014B2 (en) | Memory system, memory controller, and operating method for performing status check based on status check delay information | |
US11630764B2 (en) | Memory system, memory controller, and method for operating same | |
US11307918B2 (en) | Memory controller performing recovery operation, operating method of the same, and memory system including the same | |
US11775221B2 (en) | Memory system, memory controller, and method for operating same | |
US20220179796A1 (en) | Memory system and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |