TWI537816B - 非揮發性儲存裝置與控制器進行的控制方法 - Google Patents
非揮發性儲存裝置與控制器進行的控制方法 Download PDFInfo
- Publication number
- TWI537816B TWI537816B TW103135327A TW103135327A TWI537816B TW I537816 B TWI537816 B TW I537816B TW 103135327 A TW103135327 A TW 103135327A TW 103135327 A TW103135327 A TW 103135327A TW I537816 B TWI537816 B TW I537816B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- controller
- data
- physical
- storage device
- Prior art date
Links
Classifications
-
- 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
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是關於非揮發性記憶體的儲存裝置與控制器進行的控制方法,且特別是關於具有異常狀況後修復功能的非揮發性記憶體的儲存裝置與控制器。
快閃記憶體等非揮發性記憶體近年來快速發展,並且出現在各式各樣的電子裝置。目前看來,接下來不管是容量或是技術的發展,還會繼續加強。一旦越來越多的資料被放在這類的非揮發性記憶體,為了確保儲存資料的正確性與安全性,如果發生異常現象,例如突然斷電等,提供有效而且可靠的修復機制也就越來越重要。
在修復的過程中,有些時候會發現空間不足的現象,這時候就需要對於實體區塊進行重新的配置。為了存取的效率,有些時候並不會將實體區塊的每個資料頁填滿。因此,在實體區塊重新配置的操作時,就會將資料頁進行搬移以釋放出額外的空間。這樣的操作有時候也會稱為垃圾重整(Garbage Collection)。例如將多個實體區塊的資料頁搬移到到同一個實體區塊,以釋放出新的實體區塊。隨著使用者對於速度的要求越來越高,這些重新配置的操作往往被要求在很短的時間內完
成。然而,要直接加快存儲速度通常會立刻增加成本。因此,如何能夠找出一個比較好的空間重置方法,就成了一件非常有價值的工作。
本發明提供一種非揮發性儲存裝置,包含一非揮發性存儲器,劃分成複數實體區塊,每一實體區塊包含複數實體頁;一連接界面,供連接至一主機;以及一控制器,連接到該連接界面,其中該控制器在進行一區塊重新配置時,重新調整資料存在於該複數實體區塊的位置,以取得可用實體區塊;並且該區塊重新配置的一部份資料搬移在該控制器初始運作時進行,該區塊重新配置的另一部份資料搬移在該控制器處理來自該主機的一讀取命令時進行。
本發明提供一種控制器進行的控制方法,用於一非揮發性儲存裝置,該非揮發性儲存裝置包含一非揮發性存儲器與一連接界面,該非揮發性儲存器劃分成複數實體區塊,每一實體區塊劃分成複數實體頁,該連接界面連接一主機,該控制器控制該非揮發性儲存裝置時包含:該控制器在進行一區塊重新配置時,重新調整資料存在於該複數實體區塊的位置,以取得可用實體區塊;並且該區塊重新配置的一部份資料搬移在該控制器初始運作時進行,該區塊重新配置的另一部份資料搬移在該控制器處理來自該主機的一讀取命令時進行。
10‧‧‧電腦
12‧‧‧隨身碟
20‧‧‧主機
22‧‧‧資料儲存裝置
24‧‧‧記憶體模組
41‧‧‧系統區塊群組
43‧‧‧資料區塊群組
45‧‧‧備用區塊群組
102‧‧‧USB傳輸介面
201‧‧‧管理模組
203‧‧‧第一傳輸介面
221‧‧‧微控制器
223‧‧‧記憶體管理模組
225‧‧‧重組編碼模組
227‧‧‧第二傳輸介面
229‧‧‧緩衝記憶體
231‧‧‧第一模組介面
241‧‧‧第二模組介面
243‧‧‧控制電路
245‧‧‧記憶體區塊陣列
130~132P、B1~PB9‧‧‧實體區塊
P1~P12‧‧‧頁
LB0~LB3‧‧‧邏輯區塊
1321、1322、P_1~P_N‧‧‧資料頁
1301、1301‧‧‧已寫入資料頁
VG_0~VG_N‧‧‧電壓
M_1~M_K‧‧‧記憶單元
VT_1~VT_7、VT_1’~VT_7’‧‧‧操作電壓
VLSB、VCSB1、VCSB2、VMSB1~VMSB4‧‧‧電壓
L0~L7‧‧‧區間
1401、1403、1405、14011~14013、14031~14032、14051~14052‧‧‧步驟
圖1舉例說明根據本發明第一實施例的使用方式。
圖2舉例說明根據發明第一實施例的一種實作示意圖。
圖3舉例說明實體區塊與頁之間的關聯。
圖4舉例說明邏輯區塊被分成三種區域。
圖5舉例說明邏輯區塊跟實體區塊之間的對應關係。
圖6舉例說明邏輯區塊和實體區塊之間的關聯。
圖7例示一個NAND結構快閃記憶體的記憶元件的一個區塊。
圖8是一個三層式儲存單元(TLC)的快閃記憶體儲存單元存放電量跟操作電壓的示意圖。
圖9例示如果對儲存單元施加操作電壓VT_1所可能發生的情形。
圖10例示在一次的讀取操作時,依序使用7個不同的電壓對儲存單元進行讀取操作。
圖11例示用來找CSB的方法。
圖12例示用來找MSB的方法。
圖13例示對於實體區塊進行空間重新配置的做法。
圖14例示根據本發明實施例的一種空間配置做法。
本發明提供的實施例包括能夠快速有效進行區塊重整配置的非揮發性儲存裝置以及其中的控制器。在異常狀況結束後,控制器會進入初始運作的階段。在初始設定的時候,控制器會設定對應的參數,檢查可能的錯誤。此外,控制器還會判斷是否有實體區塊的空間是否足夠進行後續的操作。在符
合一定預設條件下,控制器便會開始啟動實體區塊的重整配置操作。將多個沒有用滿的實體區塊上的實體頁合併到新的實體區塊,並且釋放可用的實體區塊。
相對於過去的做法,對於實體區塊的重整配置操作,或成為垃圾整理(Garbage Collection),並不一定全部都要在初始階段就完成。有些比較耗時的資料搬移,可以在控制器後續進行其他讀取操作的時候,抓時間空檔予以進行。此外,控制器也可以將部份的資料搬移挪到處理一般寫入操作的時候進行。
透過這樣的方式,在異常狀態結束,並且控制器嘗試進行修復的操作時,就不用因為堅持要在初始階段要完成所有的資料搬移,而造成耗時過久的情況。
以下將先介紹這些實施例所可適用的架構,之後透過圖示解釋這些實施例的概念。
請參照圖1,其舉例示範根據本發明第一實施例的使用示意圖。
電腦10具有USB傳輸介面102,並且電腦10透過USB傳輸介面102對隨身碟12進行資料存取的操作。這個例子只是作為說明,並非用於限制本發明的範圍。舉例來說,電腦10可替換成各種電子裝置,例如手機、平板電腦、電視、相機等各類需要資料儲存裝置的電子設備。隨身碟12可替換成連接在電腦10外部的其他類別外接儲存裝置,也可替換成固定安裝在電腦內部的內部儲存裝置。USB傳輸介面102可替換成各種資料傳輸介面,例如IEEE1394介面、SATA介面、MS介面、MMC
介面、SD介面、CF介面、IDE介面、PCI介面等。
以隨身碟、外接硬碟或是內接磁盤或是快閃盤為例,當這些資料儲存裝置經由傳輸介面被連接到電腦等電子裝置時,電腦等電子裝置會對這些資料儲存裝置進行資料讀取,以判斷這些資料儲存裝置是否已經格式化。如果尚未格式化,電腦等電子裝置通常會詢問使用者是否對資料儲存裝置進行格式化操作。當使用者決定對資料儲存裝置進行格式化,電腦等電子裝置可發出命令給資料儲存裝置,由資料儲存裝置自行按照命令進行格式化。另一種做法是,電腦等電子裝置會提供格式化所需的細節控制指令,例如在資料儲存裝置中建立檔案對照表、預設數值填寫等等。
請參照圖2,其舉例示範圖1對應的裝置內部架構的一種實作方式。
主機20具有管理模組201與第一傳輸介面203。主機20透過管理模組201的硬體或軟體或軟體硬體的組合,經由第一傳輸介面203存取資料儲存裝置22。這裡提到的主機20可以對應到圖1的電腦10。其中管理模組201的範例包括在主機上執行,負責檔案與資料儲存的作業系統、對應的驅動程式以及相關的控制電路的組合。
資料儲存裝置22則具有第二傳輸介面227、微控制器221、緩衝記憶體229、記憶體管理模組223、重組編碼模組225以及第一模組介面231。資料儲存裝置22更具有記憶體模組24,而記憶體模組24則具有第二模組介面241、控制電路243與記憶體區塊陣列245。
在這個範例中,第二傳輸介面227與主機20的第一傳輸介面203對應,提供例如機械、電子跟相關的信號傳輸處理。緩衝記憶體227作為資料儲存裝置22在讀出跟寫入資料時,作為信號傳輸過程的緩衝或是建構快取架構使用。整個資料儲存裝置22的運作則主要由微控制器221執行預定的指令碼,在適當的時候產生適當的控制信號來控制各個元件的操作。記憶體管理模組223與重組編碼模組225可透過電路硬體來實作,或透過電路配合給微控制器221執行的指令碼進行運作,也可全部透過對應的指令碼實作,由微控制器221執行。
第一模組介面231用來跟記憶體模組24進行溝通。記憶體模組24內的第二模組介面241跟第一模組介面231對應,控制電路243根據微控制器221的指令對記憶體區塊陣列245進行存取。記憶體區塊陣列245可包括複數個快閃記憶體實體區塊。
記憶體管理模組223包括處理邏輯跟對照表格,用來將記憶體區塊陣列245的實體區塊跟邏輯區塊進行比對紀錄。此外,資料儲存裝置22也可以包括錯誤更正模組(未圖示)等。
其中,重組編碼模組225負責對寫入記憶體模組24的原始資料進行重組編碼,產生對應的重組編碼資料,以及對於從記憶體模組24讀出的重組編碼資料進行反重組編碼,以還原回原始資料的數值。這包括對於特定位置的位元進行位置交換、反相部分位置的位元、對於奇數位址跟偶數位址的資料用不同的方式進行反重組編碼等等。
重組編碼的目的可以包括資料的穩定性。舉例來
說,在快閃記憶體中,假如相鄰單元存放的數值相同,例如都是0或都是1,有可能會因為電子特性,影響到儲存資料存放的穩定性。換言之,透過進行重組編碼,是相鄰單元存放的數字可以盡量是0與1交錯,就能增加資料存放的穩定性。因此,具有重組編碼功能,就能使用成本更低的快閃記憶體,而仍能維持一定的儲存品質。
重組編碼也可以基於各種其他的目的,例如避免存在資料儲存裝置的資料被未經授權者讀取等等。重組編碼也可以使用任何目前已經知道或日後開發的各種編碼方式,只要能夠將原始資料進行編碼、解碼後再還原回原始資料,都算是重組編碼的範圍。
請參照圖3,其舉例說明在快閃記憶體中,實體區塊與頁之間的關係。
在圖3中,總共有四個實體區塊PB1、PB2、PB3跟PB4。每個實體區塊裡頭進一步區隔成複數個頁,P1、P2、P3到P12。在這個範例中,一個實體區塊對應到12個頁,當然,在實際的設計中,一個實體區塊包括的頁數目可以作各種不同的調整。在不同的應用環境中,有可能對於實體區塊、頁給予不同的名稱,或甚至對於實體區塊跟頁進行分組。這些都是熟悉此項技術領域的人所熟悉的,所以在此不再贅述。
對於快閃記憶體來說,例如NAND快閃記憶體或是NOR快閃記憶體,對於沒有使用過的快閃記憶體要進行資料寫入動作前,實體區塊必須先進行抹除動作。抹除動作以實體區塊作為基本單位,而寫入則可以頁作為基本單位。經過抹除過
的實體區塊接著就能對想寫入的頁進行資料寫入。然而,如果某個頁已經被進行寫入操作,要再進行寫入操作的話,就必須先對包括這個頁的實體區塊進行抹除的處理。
由於實體區塊的範圍大於頁的範圍,所以,如果要進行上述曾經寫入過的頁再進行寫入時,就必須先進行資料的搬移。換言之,對於邏輯上同樣位址的資料,可能在資料寫入跟重新寫入的過程,從一個實體區塊被搬移到另一個實體區塊。
接著,請參照圖4,其示範一種將實體區塊進行分類的做法。
所有的實體區塊被區分成三類,系統區塊群組41、資料區塊群組43跟備用區塊群組45。系統區塊群組41包括用來存放邏輯區塊跟實體區塊的對照表、微控制器的指令碼、各種指標等系統資料。除了系統區塊群組41,資料區塊群組43則指那些用來實際存放資料的實體區塊。備用區塊群組45則用來存放用來作資料搬移與備用的實體區塊。
如上所述,當進行對曾經寫過的頁要再進行寫入時,需要先進行抹除操作才能進行。換言之,這個頁所處的實體區塊的其他頁的資料也要一起先複製到別的實體區塊,這個實體區塊就從備用區塊群組45中挑選。等資料複製到這個備用區塊群組45的實體區塊後,這個實體區塊被分類到資料區塊群組43,而原先的實體區塊則經過抹除操作被分類到備用區塊群組45。
換言之,不但對應到邏輯位址的實體區塊可能一
直在改變,甚至哪個實體區塊對應到哪個區域也在改變。因此系統必須紀錄邏輯區塊與實體區塊之間的對應關係。
請參照圖5,其例示邏輯區塊與實體區塊的對應關係。在這個例子中,邏輯區塊LB0對應到實體區塊PB5,邏輯區塊LB1對應到實體區塊PB0,邏輯區塊LB3對應到實體區塊PB6,而邏輯區塊LB3則對應到實體區塊PB9。
資料儲存裝置可以透過對照表或其他方式來儲存這些對應關係。
圖6舉例示範用一個對照表來紀錄邏輯區塊跟實體區塊之間的對應關係。在圖6的例子中,邏輯區塊435對應到實體區塊221,邏輯區塊212對應到實體區塊779,邏輯區塊112對應到實體區塊832,並且邏輯區塊554對應到實體區塊21。
請參考圖6,其例示一個NAND結構快閃記憶體的記憶元件的一個區塊(block)。在這個區塊中具有一定數目的資料頁(page),亦即P_0、P_1、P_2到P_N。每一個資料頁則具有M_0、M_1、M_2到M_K個記憶單元(cell)。透過對每資料頁設定適當的電壓VG_0、VG_1、VG_2到VG_N,可讀取存於每個儲存單元的浮動閘(Floating Gate)的電位,進而得到每個儲存單元所存放的資料。
對於單層式儲存單元(SLC)快閃記憶體來說,每個儲存單元只存放一個位元的資料,也就是0或1。此時,理論上,只要給每資料頁適當的一個設定電壓VG_0、VG_1、VG_2到VG_N,就可以偵測出到底儲存單元存放的電量,而得出對應的資料值。
相對的,假如是多層式儲存單元(MLC)快閃記憶體,針對一次的讀取動作就需要施加多個不同的設定電壓,以判斷到底儲存單元裡頭存放的電量到底是多少,而換算出實際存放的資料內容。
圖7是一個三層式儲存單元(TLC)的快閃記憶體儲存單元存放電量跟操作電壓的示意圖。在這個示意圖中可看到,一個儲存單元根據儲存的電量落在L0、L1、L2...L7區間,而代表存放的位元資料分別為111,011,001,...110。
對於這樣的儲存單元,理論上,在施加VT_1的操作電壓時,偵測電路可以判斷到底儲存單元存放的電量是屬於L0這一邊,也就是資料111,或是L1,L2,L3,L4,L5,L6,L7那一邊,也就是資料為111,011,001,101,100,000或110。
透過有次序的施加多個不同的電壓組合,理論上就可以判斷出所有三個位元的資料,也就是最大位元MSB(Most Significant Bit)、CSB(Central Significant Bit)與LSB(Least Significant Bit)的資料內容。
但是,如上所述,隨著半導體製程持續朝密集化以及微小化的方向發展,以及快閃記憶體為了降低成本或是使用時間越來越長,相關的電路以及記憶體儲存單元的穩定性的問題越來越大。
圖8例示一種可能的狀況,也就是如果對儲存單元施加操作電壓VT_1,有可能因為位元狀態間出現部分重疊或甚至位移,導致解讀出的資料發生不正確的情形。在這樣的情況下,就需要透過各種不同錯誤校驗方法,或是動態調整操作電
壓來解決資料判斷不準確的問題。
圖9例示在一次的讀取操作時,依序使用7個不同的電壓對儲存單元進行讀取操作,偵測儲存單元內浮動閘的電量,以判讀儲存單元存放的資料的LSB數值到底是0還是1。
從圖10可以清楚看到,如果儲存單元儲存的電量分佈落在VLSB的左側L0,L1,L2,L3,代表LSB的內容是0。相反的,如果是落在VLSB的右側L4,L5,L6,L7,則代表LSB的內容是1。
由於在狀態間有重疊的問題,因此,可依序施加不同的電壓VLSB,VLSB+D,VLSB-D,VLSB+2D,VLSB-2D,VLSB+3D,VLSB-3D。藉此,假如儲存單元的電量分佈剛好落在例如VLSB+D與VLSB之間,就可以從偵測的結果得到一定的情報。
每次施加一個電壓可以得到一個位元結果,因此7次電壓就可以得到7個位元。這7個位元總共有八種可能的組合。由這7個位元對應的位元序(bit sequence),可配合LDPC的解碼電路跟方法,用來計算校驗碼以及用來找出正確的位元資料,也就是利用所取得之軟資訊(soft information)搭配LDPC與BCH等方法,用來進行錯誤校驗。
圖11例示用來找CSB的方法。由於CSB代表第二個位元,在圖5中可看到如果儲存單元的電量是落在L2,L3,L4,L5則代表儲存單元儲存的CSB是0。另一方面,如果儲存單元的電量落在L0,L1,L6,L7區間,則代表儲存單元儲存的CSB是1。在這樣的配置下,可以理解的是需要使用VCSB1與
VCSB2兩個操作電壓來過濾出到底儲存單元的電量是落在哪個區間。
相似於上述的說明,VCSB1與VCSB2也可以施加多個步進調整量,依序多次用不同的電壓進行讀取的動作。每次讀取的結果產生位元序,可搭配LDPC與BCH等方法,用來進行錯誤校驗。
圖12例示用來找MSB的方方法。由於MSB代表最高的位元,在圖6中可看到如果儲存單元的電量是落在L0,L3,L4,L7區間,則代表儲存單元存放的MSB位元為1。相對的,假如儲存單元的電量是落在L1,L2,L5,L6區間,則代表儲存單元存放的MSB位元為0。
相似於上述的說明,VMSB1,VMSB2,VMSB3,VMSB4也可以施加多個步進調整量,依序多次用不同的電壓進行讀取的動作。每次讀取的結果產生位元序,可搭配LDPC與BCH等方法,用來進行錯誤校驗。
在上述的各種架構說明後,以下配合圖示進一步說明本發明實施例在異常狀態後,進行修復操作時,對於實體區塊重新進行配置的做法。當然,這樣的配置方法不限於一定要在異常狀態後才可以執行。
請參考圖13。在圖13中,有兩個實體區塊130跟131。這兩個實體區塊130、131並沒有寫滿所有的資料頁。斜線區域的已寫入資料頁1301、1302代表有寫入有效資料的部份。為了更有效利用實體區塊的空間,已寫入資料頁1301跟1302被合併寫到新的實體區塊132,構成資料頁1321、1322。當資料搬移
完成後,實體區塊130、131就可以釋放出來,給之後的寫入操作進行使用。
換言之,在這樣的實體區塊資料重新配置後,浪費的空間可以被減少,資料頁也能被有效的利用。但這樣的資料配置需要進行比較耗時的資料搬移。因此,在以下的實施例中,在控制器進行讀取或寫入的操作時,利用空檔,將未完成的資料搬移繼續完成。
請參考圖14,其例示根據發明的實體空間重新配置的一種做法。控制器在異常狀態結束後,會先進入初始階段(步驟1401),在初始階段下,控制器會進行一些基本的其他初始設定(步驟14011)、控制器也會根據一些參數與統計數字判斷是否需要開始進行空間重新配置的操作(步驟14012)。如果需要的話,控制器就會開始進行規劃與資料搬移的操作(步驟14013)。在這些空間重新配置的操作中,最耗時的常常是資料搬移的過程。為了避免使用者需要進行過度漫長的等待。控制器會在一預定時間結束時,就先離開初始階段。換言之,使用者就可以開始對於存儲裝置進行讀寫的操作。
接著,當控制器收到主機(例如所連接的電腦)傳來的讀取命令的時候(步驟1403),控制器除了處理讀取命令以外(步驟14031,控制器還會找空檔,繼續進行之前未完成的資料搬移操作(步驟14032)。
此外,當控制器收到主機傳來的讀取命令的時候(步驟1405),控制器除了進行寫入的操作(步驟14051),也會利用空檔,繼續進行之前未完成的資料搬移操作(步驟14053)。
透過這樣的做法,包括在異常狀態結束後,控制器就能儘快完成初始操作,讓使用者開始使用存儲裝置,而不需要等待過長的時間。
綜上所陳,本發明無論就目的、手段及功效,在在均顯示其迥異於習知技術之特徵,懇請 貴審查委員明察,早日賜准專利,俾嘉惠社會,實感德便。惟應注意的是,上述諸多實施例僅係為了便於說明而舉例而已,本發明所主張之權利範圍自應以申請專利範圍所述為準,而非僅限於上述實施例。
1401、1403、1405、14011~14013、14031~14032、14051~14052‧‧‧步驟
Claims (18)
- 一種非揮發性儲存裝置,包含:一非揮發性存儲器,劃分成複數實體區塊,每一實體區塊包含複數實體頁;一連接界面,供連接至一主機;以及一控制器,連接到該連接界面,其中該控制器在進行一區塊重新配置時,重新調整資料存在於該複數實體區塊的位置,以取得可用實體區塊;並且該區塊重新配置的一部份資料搬移在該控制器初始運作時進行,該區塊重新配置的另一部份資料搬移在該控制器處理來自該主機的一讀取命令時進行,其中該初始運作包含從一異常狀態進行一恢復處理的對應操作。
- 如申請專利範圍第1項所述的非揮發性儲存裝置,其中該控制器進行該初始運作限制在一處理時間內完成,在處理該初始運作的操作外的剩餘時間,用來進行該區塊重新配置的該部份資料搬移。
- 如申請專利範圍第2項所述的非揮發性儲存裝置,其中對於不同狀況下的該初始運作所包含的操作需要的時間不同,進行該區塊重新配置的該部份資料搬移的數量也不同。
- 如申請專利範圍第1項所述的非揮發性儲存裝置,其中該區塊重新配置的更另一部份資料搬移在該控制器處理來自該主機的一寫入命令時進行。
- 如申請專利範圍第1項所述的非揮發性儲存裝置,其中在該區塊重新配置時,找出存放在複數個實體區塊的複數實體 頁,整合到一個實體區塊,以釋放可用的實體區塊空間。
- 如申請專利範圍第1項所述的非揮發性儲存裝置,其中該控制器透過一表格記錄該些操作實體區塊的改些實體頁對應到邏輯區塊的邏輯頁的關係,在該區塊重新配置時,該控制器更新該表格。
- 如申請專利範圍第1項所述的非揮發性儲存裝置,其中在該區塊重新配置後,該控制器選取一個實體區塊當做操作實體區塊,在接收該主機的一寫入命令時,該控制器將對應該寫入命令的資料寫入到該操作實體區塊。
- 如申請專利範圍第1項所述的非揮發性儲存裝置,其中該非揮發性存儲器為一閃存記憶體。
- 如申請專利範圍第1項所述的非揮發性儲存裝置,其中該非揮發性存儲器為一閃存硬碟。
- 一種控制器進行的控制方法,用於一非揮發性儲存裝置,該非揮發性儲存裝置包含一非揮發性存儲器與一連接界面,該非揮發性儲存器劃分成複數實體區塊,每一實體區塊劃分成複數實體頁,該連接界面連接一主機,該控制器控制該非揮發性儲存裝置時包含:該控制器在進行一區塊重新配置時,重新調整資料存在於該複數實體區塊的位置,以取得可用實體區塊;並且該區塊重新配置的一部份資料搬移在該控制器初始運作時進行,該區塊重新配置的另一部份資料搬移在該控制器處理來自該主機的一讀取命令時進行,其中該初始運作包含從一異常狀態進行一恢復處理的對應操作。
- 如申請專利範圍第10項所述的控制器進行的控制方法,其中該控制器進行該初始運作限制在一處理時間內完成,在處理該初始運作的操作外的剩餘時間,用來進行該區塊重新配置的該部份資料搬移。
- 如申請專利範圍第11項所述的控制器進行的控制方法,其中對於不同狀況下的該初始運作所包含的操作需要的時間不同,進行該區塊重新配置的該部份資料搬移的數量也不同。
- 如申請專利範圍第10項所述的控制器進行的控制方法,其中該區塊重新配置的更另一部份資料搬移在該控制器處理來自該主機的一寫入命令時進行。
- 如申請專利範圍第10項所述的控制器進行的控制方法,其中在該區塊重新配置時,找出存放在複數個實體區塊的複數實體頁,整合到一個實體區塊,以釋放可用的實體區塊空間。
- 如申請專利範圍第10項所述的控制器進行的控制方法,其中該控制器透過一表格記錄該些操作實體區塊的改些實體頁對應到邏輯區塊的邏輯頁的關係,在該區塊重新配置時,該控制器更新該表格。
- 如申請專利範圍第10項所述的控制器進行的控制方法,其中在該區塊重新配置後,該控制器選取一個實體區塊當做操作實體區塊,在接收該主機的一寫入命令時,該控制器將對應該寫入命令的資料寫入到該操作實體區塊。
- 如申請專利範圍第10項所述的控制器進行的控制方法,其 中該非揮發性存儲器為一閃存記憶體。
- 如申請專利範圍第10項所述的控制器進行的控制方法,其中該非揮發性存儲器為一閃存硬碟。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103135327A TWI537816B (zh) | 2014-10-13 | 2014-10-13 | 非揮發性儲存裝置與控制器進行的控制方法 |
US14/614,444 US9483212B2 (en) | 2014-10-13 | 2015-02-05 | Non-volatile memory devices and control methods therefor |
CN201510065535.1A CN105988718B (zh) | 2014-10-13 | 2015-02-09 | 非挥发性储存装置与控制器进行的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103135327A TWI537816B (zh) | 2014-10-13 | 2014-10-13 | 非揮發性儲存裝置與控制器進行的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201614479A TW201614479A (en) | 2016-04-16 |
TWI537816B true TWI537816B (zh) | 2016-06-11 |
Family
ID=55655471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103135327A TWI537816B (zh) | 2014-10-13 | 2014-10-13 | 非揮發性儲存裝置與控制器進行的控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9483212B2 (zh) |
CN (1) | CN105988718B (zh) |
TW (1) | TWI537816B (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI539282B (zh) * | 2014-10-13 | 2016-06-21 | 慧榮科技股份有限公司 | 非揮發性儲存裝置與控制器 |
TWI612473B (zh) * | 2017-03-22 | 2018-01-21 | 慧榮科技股份有限公司 | 垃圾回收方法以及使用該方法的裝置 |
CN108037725B (zh) * | 2017-12-08 | 2019-09-03 | 中冶南方工程技术有限公司 | 一种读写plc数据的方法和装置 |
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 |
JP6901427B2 (ja) * | 2018-03-27 | 2021-07-14 | キオクシア株式会社 | ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法 |
WO2019222958A1 (en) | 2018-05-24 | 2019-11-28 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
WO2020000136A1 (en) | 2018-06-25 | 2020-01-02 | Alibaba Group Holding Limited | System and method for managing resources of a storage device and quantifying the cost of i/o requests |
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 |
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 |
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 |
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 |
US11200337B2 (en) | 2019-02-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for user data isolation |
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 |
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 |
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 |
US11379447B2 (en) | 2020-02-06 | 2022-07-05 | Alibaba Group Holding Limited | Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller |
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 |
US11449386B2 (en) | 2020-03-20 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory |
US11169881B2 (en) | 2020-03-30 | 2021-11-09 | Alibaba Group Holding Limited | System and method for facilitating reduction of complexity and data movement in erasure coding merging on journal and data storage drive |
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 |
US11301173B2 (en) | 2020-04-20 | 2022-04-12 | Alibaba Group Holding Limited | Method and system for facilitating evaluation of data access frequency and allocation of storage device 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 |
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 |
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 |
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 |
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 |
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 |
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 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078794B2 (en) * | 2000-01-06 | 2011-12-13 | Super Talent Electronics, Inc. | Hybrid SSD using a combination of SLC and MLC flash memory arrays |
EP1797645B1 (en) * | 2004-08-30 | 2018-08-01 | Google LLC | Systems and methods for providing nonvolatile memory management in wireless phones |
KR100669349B1 (ko) * | 2005-12-02 | 2007-01-16 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 읽기 방법 |
US9477587B2 (en) * | 2008-04-11 | 2016-10-25 | Micron Technology, Inc. | Method and apparatus for a volume management system in a non-volatile memory device |
JP2009282678A (ja) * | 2008-05-21 | 2009-12-03 | Hitachi Ltd | フラッシュメモリモジュール及びストレージシステム |
TWI385517B (zh) * | 2008-12-05 | 2013-02-11 | Apacer Technology Inc | Storage device and data management method |
KR101033465B1 (ko) * | 2008-12-30 | 2011-05-09 | 주식회사 하이닉스반도체 | 플래쉬 메모리 장치 및 및 이를 위한 리드동작 제어 방법 |
KR101594124B1 (ko) * | 2009-04-09 | 2016-02-16 | 삼성전자주식회사 | 비휘발성 램, 이를 포함하는 솔리드 스테이트 드라이브, 및 이를 포함하는 컴퓨터 시스템 |
KR101624969B1 (ko) * | 2009-05-26 | 2016-05-31 | 삼성전자주식회사 | 메모리 시스템 및 그것의 배드 블록 관리 방법 |
WO2010144587A2 (en) * | 2009-06-12 | 2010-12-16 | Violin Memory, Inc. | Memory system having persistent garbage collection |
JP4703753B2 (ja) * | 2009-09-30 | 2011-06-15 | 株式会社東芝 | 情報処理装置、半導体記憶装置、及びプログラム |
WO2011123151A1 (en) * | 2010-04-02 | 2011-10-06 | Tabula Inc. | System and method for reducing reconfiguration power usage |
JP2012173814A (ja) * | 2011-02-17 | 2012-09-10 | Canon Inc | 情報処理装置及び情報処理装置を制御する制御方法 |
TWI443512B (zh) | 2011-07-13 | 2014-07-01 | Phison Electronics Corp | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
WO2013038442A1 (en) * | 2011-09-13 | 2013-03-21 | Hitachi, Ltd. | Storage system comprising flash memory, and storage control method |
CN103246610B (zh) * | 2012-02-14 | 2016-06-15 | 中国科学院上海微系统与信息技术研究所 | 基于单类型存储器的嵌入式系统的动态存储管理方法 |
US8725936B2 (en) * | 2012-03-30 | 2014-05-13 | Hitachi, Ltd. | Storage system with flash memory, and storage control method |
TWI476590B (zh) * | 2012-05-31 | 2015-03-11 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
CN103593296B (zh) * | 2012-08-15 | 2016-05-18 | 群联电子股份有限公司 | 数据储存方法、存储器控制器与存储器储存装置 |
US8910109B1 (en) * | 2013-08-12 | 2014-12-09 | Altera Corporation | System level tools to support FPGA partial reconfiguration |
US9142324B2 (en) * | 2013-09-03 | 2015-09-22 | Sandisk Technologies Inc. | Bad block reconfiguration in nonvolatile memory |
-
2014
- 2014-10-13 TW TW103135327A patent/TWI537816B/zh active
-
2015
- 2015-02-05 US US14/614,444 patent/US9483212B2/en active Active
- 2015-02-09 CN CN201510065535.1A patent/CN105988718B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20160103631A1 (en) | 2016-04-14 |
CN105988718B (zh) | 2019-03-22 |
CN105988718A (zh) | 2016-10-05 |
TW201614479A (en) | 2016-04-16 |
US9483212B2 (en) | 2016-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI537816B (zh) | 非揮發性儲存裝置與控制器進行的控制方法 | |
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
KR102094334B1 (ko) | 비휘발성 멀티-레벨 셀 메모리 시스템 및 상기 시스템에서의 적응적 데이터 백업 방법 | |
US9177656B2 (en) | Data writing method, memory storage device and memory controlling circuit unit | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI451249B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI495998B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
US20200089566A1 (en) | Apparatus for diagnosing memory system and operating method thereof | |
CN110727398B (zh) | 存储器系统及其操作方法 | |
CN106155582B (zh) | 非挥发性储存装置与控制器 | |
TWI539282B (zh) | 非揮發性儲存裝置與控制器 | |
US20150161042A1 (en) | Memory management method, memory controlling circuit unit, and memory storage device | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI506438B (zh) | 資料儲存裝置及其管理方法 | |
TWI523030B (zh) | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI467590B (zh) | 資料處理方法、記憶體控制器及記憶體儲存裝置 | |
TWI521346B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI605457B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9652378B2 (en) | Writing method, memory controller and memory storage device | |
TWI622044B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI673719B (zh) | 在快閃記憶體上提升存取效能之控制方法 |