TWI484334B - 非揮發記憶體的區域式管理方法 - Google Patents
非揮發記憶體的區域式管理方法 Download PDFInfo
- Publication number
- TWI484334B TWI484334B TW098144806A TW98144806A TWI484334B TW I484334 B TWI484334 B TW I484334B TW 098144806 A TW098144806 A TW 098144806A TW 98144806 A TW98144806 A TW 98144806A TW I484334 B TWI484334 B TW I484334B
- Authority
- TW
- Taiwan
- Prior art keywords
- virtual
- block
- physical
- page
- address
- Prior art date
Links
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Description
本發明是有關於非揮發記憶體(non-volatile memory)的儲存空間管理,且特別是有關於將上述儲存空間劃分為三個層級(level)的一種區域式管理方法。
成本一向是快閃記憶體(flash memory)發展的重要驅動力。一個快閃記憶體晶片是由區塊(block)所組成,每個區塊是由頁面(page)所組成。區塊是資料抹除的基本單位,而頁面是資料讀寫的基本單位。當一個頁面寫入資料之後就不能再寫入資料,必須等到此頁面所屬的區塊被整個抹除(erase)後才能再寫入資料。因此為了效能的考量,要寫入的資料通常會寫入空閒頁面,而不是寫回原來的頁面。也因此需要一個邏輯位址(logical block address,LBA)和實體位址(physical address)的轉換(translation)機制或轉換資訊,這樣才能找到每個邏輯位址的資料存在處。
快閃記憶體可分為低成本的多層單元(multi-level cell,MLC)快閃記憶體,以及傳統較高成本的單層單元(single-level cell,SLC)快閃記憶體。關於快閃記憶體的資料儲存空間,傳統上有許多不同的管理機制被提出。然而隨著成本的下降,快閃記憶體的效能也隨之下滑。再加上多層單元快閃記憶體新增兩個寫入限制:一個是每一個頁面只能寫入一次,另一個是每個區塊內的每個頁面必須循
序寫入。因此使得傳統的管理方法無法管理這些低成本的多層單元快閃記憶體,或是效能變得十分低落。
為了改善存取效能,有研究提出利用特別的方法來管理隨機小量寫入的資料,以提升整體系統效能。有些研究更進一步提出可調性的位址轉換機制來管理大容量的快閃記憶體儲存系統,以提升管理機制的可用性。另外有些不同的研究是利用寫入緩衝區(buffer)來提升快閃記憶體的寫入效能,不過這些機制通常會在系統當機或斷電時產生資料流失,而使得儲存系統喪失資料的一致性(consistency)。
然而這些方法都沒有考慮到管理方法的可擴充性,這個特性在容量快速提升的快閃記憶體儲存裝置而言,是非常重要的特性。另外,多層單元快閃記憶體有比較多的毀損區塊,在使用過程中也比較容易產生新的毀損區塊,頁面的資料錯誤率也較高,然而目前的方法都沒有在考慮管理毀損區塊的同時,亦將毀損區塊中錯誤頁面的資料還原。
本發明提供一種區域式管理方法,用於一非揮發記憶體,可提高非揮發記憶體的資料存取效能,並改善毀損區塊的管理。
上述的非揮發記憶體包括至少一晶片,每一上述晶片包括多個實體區塊,每一上述實體區塊包括多個實體頁
面。上述的區域式管理方法包括下列步驟。首先,將上述晶片的實體區塊劃分為多個實體區域(physical region)和一個額外區域(spare region),每一上述實體區域和該額外區域各包括多個實體區塊。將每一上述實體區域劃分為多個實體區塊集(physical block set),每一上述實體區塊集由不同晶片的同一編號的實體區塊組成。將每一上述實體區塊集劃分為多個實體頁面集(physical page set),每一上述實體頁面集由所屬實體區塊集的每一實體區塊中同一偏移量(offset)的實體頁面組成。上述的區域式管理方法以每一上述實體區塊集為空間分配與空間回收的最小單位,並且以每一上述實體頁面集為資料讀寫的最小單位。
在本發明之一實施例中,上述之非揮發記憶體為多層單元快閃記憶體。
在本發明之一實施例中,上述之區域式管理方法更包括下列步驟。首先,定義一邏輯位址空間(logical space),此邏輯位址空間包括多個虛擬區域(virtual region),每一上述虛擬區域包括多個虛擬區塊(virtual block),每一上述虛擬區塊包括多個虛擬頁面(virtual page)。將每一上述虛擬區域依序對應至上述多個實體區域其中之一。將每一上述虛擬區塊對應至所屬的虛擬區域所對應的實體區域的實體區塊集其中之一。將每一上述虛擬頁面對應至所屬的虛擬區塊所對應的實體區塊集的實體頁面集其中之一。
在本發明之一實施例中,每一上述虛擬區域對應一虛擬區塊表,每一上述虛擬區塊對應一虛擬頁面表,一虛擬
區域表記錄每一上述虛擬區塊表在一隨機存取記憶體(random access memory,RAM)的位址,而且上述區域式管理方法更包括下列步驟。首先,接收一邏輯位址。然後,使用該邏輯位址查閱虛擬區域表、上述虛擬區塊表其中之一與上述虛擬頁面表其中之一,以取得第一邏輯位址所對應的資料在非揮發記憶體的實體位址。
在本發明之一實施例中,上述之區域式管理方法更包括下列步驟。當上述實體區塊其中之一發生毀損,則在額外區域之中和該毀損區塊同一晶片的實體區塊其中,選擇一額外區塊以取代該毀損區塊,並且使用一區塊取代表記錄毀損區塊和額外區塊所屬晶片的編號,以及毀損區塊和額外區塊本身在所屬晶片的編號。
在本發明之一實施例中,每一上述實體區塊集的實體頁面集其中之一被指定為總結頁面集,而且上述區域式管理方法更包括下列步驟。每當一個實體頁面集寫滿資料時,此頁面集的資料就會與其所屬的實體區塊集的同位元檢查碼(checksum)進行一運算,以產生包含實體區塊集內所有資料的同位元檢查碼。當非揮發記憶體所屬的系統關機時,或實體區塊集除了總結頁面集以外的空間都寫滿資料時,將同位元檢查碼寫入總結頁面集。
在本發明之一實施例中,上述之總結頁面集是由實體區塊集的每一實體區塊的最後一個實體頁面所組成。上述資料所進行之運算為互斥或(exclusive-or)運算。上述之同位元檢查碼可用來還原毀損區塊的資料。
本發明提出邏輯位址和實體位址之間的三層式位址轉換架構,以及新穎的毀損區塊管理方法,不但有高度的可擴充性,也能解決某些非揮發記憶體存取效能和可靠性低落的問題。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是依照本發明一實施例的非揮發記憶體105以及邏輯位址空間101的示意圖。圖2是非揮發記憶體105與其三層式位址轉換架構的示意圖。非揮發記憶體105是一個非揮發記憶體儲存系統的一部分。本實施例的非揮發記憶體105為多層單元快閃記憶體,不過在本發明的其他實施例中,可以使用其他種類的非揮發記憶體。非揮發記憶體105包括四個晶片131-134,其中每一個晶片包括多個實體區塊,例如晶片131包括實體區塊141和142。每一個實體區塊包括多個實體頁面(未繪示)。在本發明的其他實施例中,非揮發記憶體可以僅包含一個晶片,也可以由其他數量的晶片組成。
圖3是本實施例中,使用於非揮發記憶體105的一種區域式管理方法的流程圖。以下說明上述區域式管理方法的流程。
首先,將晶片131-134的實體區塊劃分為實體區域150-157和一個額外區域158,其中每一個實體區域
150-157和額外區域158各包括多個實體區塊(步驟310)。將每一個實體區域劃分為多個實體區塊集,其中每一個實體區塊集由不同晶片的同一編號的實體區塊組成(步驟320),例如實體區域150包括實體區塊集160,實體區域157包括實體區塊集167,圖2的實體區域150另包括兩個實體區塊集221和222。接下來,將每一個實體區塊集劃分為多個實體頁面集,每一個實體頁面集由所屬實體區塊集的每一實體區塊中同一偏移量的實體頁面組成(步驟330),例如圖2的實體區塊集221包括實體頁面集231,實體區塊集222包括實體頁面集232。本實施例的區域式管理方法以實體區塊集為空間分配與空間回收的最小單位(步驟340),並且以實體頁面集為資料讀寫的最小單位(步驟350)。進入一個實體區塊集的資料是從第一個實體頁面集循序寫入,以符合多層單元快閃記憶體的寫入限制。
本實施例的區域式管理方法也包括邏輯位址空間101和非揮發記憶體105之間的對應。首先,定義邏輯位址空間101(步驟360)。邏輯位址空間101包括虛擬區域110-117,每一個虛擬區域包括多個虛擬區塊,例如虛擬區域110包括虛擬區塊121和122。每一個虛擬區塊包括多個虛擬頁面(未繪示)。本實施例的區域式管理方法將每一個虛擬區域110-117依序對應至實體區域150-157其中之一(步驟370),將每一個虛擬區塊對應至所屬的虛擬區域所對應的實體區域的實體區塊集其中之一(步驟
380),並且將每一個虛擬頁面對應至所屬的虛擬區塊所對應的實體區塊集的實體頁面集其中之一(步驟390)。
本實施例的儲存系統維護一個虛擬區域表,每一個虛擬區域維護一個對應的虛擬區塊表,而且每一個虛擬區塊維護一個對應的虛擬頁面表。本實施例的儲存系統包括一個隨機存取記憶體(未繪示),用來存放上述儲存系統執行本實施例的區域式管理方法所需的資料。虛擬區域表記錄每一個虛擬區塊表在上述隨機存取記憶體其中的儲存位址。每一個虛擬區塊表記錄對應的虛擬區域的每個虛擬區塊其與對應的實體區塊集的位址轉換資訊。此外,虛擬區塊表也記錄對應的虛擬區域的每個虛擬區塊所對應的虛擬頁面表在上述隨機存取記憶體的位址。每一個虛擬頁面表記錄對應的虛擬區塊的每個虛擬頁面與對應的實體頁面集的位址轉換資訊。
圖4也是本實施例的區域式管理方法的流程圖,此流程用於本實施例的三層式位址轉換架構。以下配合圖2舉例說明圖4流程。
首先,接收輸入至上述儲存系統的邏輯位址201(步驟410),將邏輯位址201分割為虛擬區域位址202、虛擬區塊位址203、以及虛擬頁面位址204(步驟420)。
由於虛擬區域110-117和實體區域150-157按順序一一對應,所以很容易就可以用虛擬區域位址202推算出對應的實體區域所在。接下來,以虛擬區域位址202為索引,查閱虛擬區域表212,取得虛擬區域位址202所對應的虛
擬區域所對應的虛擬區塊表213在隨機存取記憶體的位址241(步驟430)。然後以虛擬區塊位址203為索引,查閱虛擬區塊表213,取得虛擬區塊位址203對應的虛擬區塊的位址轉換資訊242,以及上述虛擬區塊所對應的虛擬頁面表214在隨機存取記憶體的位址243(步驟440)。位址轉換資訊242可以是虛擬區塊位址203對應的虛擬區塊所對應的實體區塊集222在實體區域150之中的偏移量,用以在實體區域150之中定位實體區塊集222。
接下來,以虛擬頁面位址204為索引,查閱虛擬頁面表214,取得虛擬頁面位址204對應的虛擬頁面的位址轉換資訊244(步驟450)。位址轉換資訊244可以是虛擬頁面位址204對應的虛擬頁面所對應的實體頁面集232在實體區塊集222之中的偏移量,用以在實體區塊集222之中定位實體頁面集232。接下來就可以根據虛擬區域位址202、位址轉換資訊242、以及位址轉換資訊244,產生邏輯位址201所對應的資料在非揮發記憶體105的實體位址(步驟460)。
每當存取一個虛擬區域或虛擬區塊,而且儲存系統的隨機存取記憶體中沒有對應的虛擬區塊表或虛擬頁面表,則對應的虛擬區塊表或虛擬頁面表可以從非揮發記憶體105的預設地點讀取,再存入隨機存取記憶體。此外,也可以藉由掃描非揮發記憶體105,在隨機存取記憶體當中直接建立對應的虛擬區塊表或虛擬頁面表。
若是前一種方式,可以將所有虛擬區塊表儲存在額外
區域158。當存取一個虛擬區域時,就從額外區域158讀取對應的虛擬區塊表,將虛擬區塊表存入隨機存取記憶體。當上述儲存系統關機時,若虛擬區塊表自上次讀取之後有更新過,就將虛擬區塊表寫回額外區域158。
至於虛擬頁面表,可將每一個實體區塊集其中的一個實體頁面集指定為總結頁面集,並且將虛擬頁面集存放在總結頁面集。本實施例為了配合多層單元快閃記憶體的循序寫入限制,總結頁面集是由實體區塊集的每一實體區塊的最後一個實體頁面所組成。在本發明其他實施例中,若使用其他種類的非揮發記憶體,則可將其他實體頁面集指定為總結頁面集。當存取一個虛擬區塊時,可以從該虛擬區塊對應的實體區塊集的總結頁面集,讀取該虛擬區塊對應的虛擬頁面表,將虛擬頁面表存入隨機存取記憶體。當儲存系統關機時,如果虛擬頁面表自上次讀取之後有更新過,就將虛擬頁面表寫回對應的總結頁面集。
如果是藉由掃描非揮發記憶體105而直接建立表格的方式,當存取一個虛擬區域時,可以讀取虛擬區域對應的實體區域的每一個實體區塊集其中任何一個實體頁面的額外區所儲存的邏輯位址,例如讀取第一個實體頁面的額外區。這樣可以根據邏輯位址得知每一個實體區塊集對應哪一個虛擬區塊,以建立虛擬區域所對應的虛擬區塊表。由於每個實體區塊集只需要讀取其中一個頁面的額外區,可以很快就建立虛擬區塊表。
虛擬頁面表也能用同樣的方式建立。當存取一個虛擬
區塊時,可讀取虛擬區塊對應的實體區塊集的每一個實體頁面集其中任何一個實體頁面的額外區所儲存的邏輯位址。這樣可以根據邏輯位址得知每一個實體頁面集對應哪一個虛擬頁面,以建立虛擬區塊所對應的虛擬頁面表。由於每個實體頁面集都要讀取一次額外區,而且實體頁面集數量眾多,用這種方式需要很長時間才能建立虛擬頁面表。所以虛擬頁面表在正常情況下都存放在總結頁面集,開機之後可以直接讀取。只有系統當機使得總結頁面集的虛擬頁面表和真實情況不一致,或總結頁面集發生毀損時,才需要以掃描方式建立虛擬頁面表。
至於虛擬區域表則不需要存放在非揮發記憶體105之中,而是可以在儲存系統開機之後,在上述的隨機存取記憶體逐步建立。無論是讀取方式或建立方式,只要隨機存取記憶體中新出現一個虛擬區塊表,就將上述虛擬區塊表的位址增加到虛擬區域表之中即可。
圖5也是本實施例的區域式管理方法的流程圖,此流程用於管理非揮發記憶體105的毀損區塊。以下說明圖5的流程。
首先,每一個實體區塊集都有對應的一段同位元檢查碼(checksum),同位元檢查碼的長度相當於一個實體頁面集的資料容量。每當一個實體頁面集寫滿資料時,此實體頁面集的資料就會與其所屬的實體區塊集的同位元檢查碼進行一預設運算,以產生新的包含實體區塊集內所有資料的同位元檢查碼(步驟510)。本實施例的預設運算為互
斥或運算,而同位元檢查碼的初始值全部為零。根據以上的同位元檢查碼,可修復毀損頁面的資料。當非揮發記憶體105所屬的儲存系統關機時,或上述實體區塊集除了總結頁面集以外的空間都寫滿資料時,將上述同位元檢查碼寫入上述實體區塊集的總結頁面集(步驟520)。
接下來,如果有實體區塊發生毀損,就在額外區域158之中,和毀損區塊同一晶片的實體區塊其中,選擇一個額外區塊,使用此額外區塊取代毀損區塊(步驟530)。使用一個區塊取代表來記錄毀損區塊和額外區塊所屬晶片的編號,以及毀損區塊和額外區塊本身在所屬晶片的編號(步驟540)。下面的表1是區塊取代表的一個範例。依照表1的記錄,1號晶片的3584號實體區塊發生毀損,以同一晶片的3995號實體區塊取代。2號晶片的1號實體區塊發生毀損,以同一晶片的3994號實體區塊取代,依此類推。這樣才能保持實體區塊集和實體頁面集的完整。
接下來,根據前面產生的同位元檢查碼還原毀損區塊的資料(步驟550),毀損資料的還原是以實體頁面為單位。然後將還原的資料寫入前面選出的額外區塊(步驟
560)。流程至此結束。
綜上所述,本發明的三層式位址轉換架構可加速邏輯位址到實體位址的轉換效能,並減少位址轉換時所需要的記憶體,達成高度可擴充性。每當儲存系統關機時,更新過的虛擬區塊表和虛擬頁面表都可以寫回非揮發記憶體。只要儲存系統有正常關機,下一次開機就可以直接取用,所以非常快速,不需要重建虛擬區塊表和虛擬頁面表。而且實際被存取到的虛擬區域和虛擬區塊,其對應表格才會從非揮發記憶體讀出,存入隨機存取記憶體,如此可大幅降低隨機存取記憶體使用量。即使系統毀損,下次開機也只要重建有存取的部分,所以有高度可擴充性和位址轉換效能。上述的三層式位址轉換不會隨非揮發記憶體容量上升而變慢,適合大容量儲存系統。
本發明的非揮發記憶體可包括多個晶片,可透過多重硬體通道(hardware channel)進行平行存取,提升資料存取效能。本發明可利用額外區域和區塊取代表的記錄來取代毀損的實體區塊,使發生毀損的實體區塊集和實體頁面集保有資料存取的平行性。本發明的總結頁面集可存放實體區塊內各頁面資料所產生的同位元檢查碼,來還原實體區塊內任何毀損頁面中所存放的資料,因此毀損區塊內任何毀損頁面內所存放的資料都能還原。
總之,本發明能確實提高非揮發記憶體的存取效能與資料可靠度。
雖然本發明已以實施例揭露如上,然其並非用以限定
本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
101‧‧‧邏輯位址空間
105‧‧‧非揮發記憶體
110-117‧‧‧虛擬區域
121、122‧‧‧虛擬區塊
131-134‧‧‧非揮發記憶體晶片
141、142‧‧‧實體區塊
150-157‧‧‧實體區域
158‧‧‧額外區域
160、167‧‧‧實體區塊集
201‧‧‧邏輯位址
202‧‧‧虛擬區域位址
203‧‧‧虛擬區塊位址
204‧‧‧虛擬頁面位址
212‧‧‧虛擬區域表
213‧‧‧虛擬區塊表
214‧‧‧虛擬頁面表
221、222‧‧‧實體區塊集
231、232‧‧‧實體頁面集
241‧‧‧虛擬區塊表位址
242‧‧‧位址轉換資訊
243‧‧‧虛擬頁面表位址
244‧‧‧位址轉換資訊
310-390、410-460、510-560‧‧‧流程步驟
圖1是依照本發明一實施例的非揮發記憶體以及邏輯位址空間的示意圖。
圖2是圖1的非揮發記憶體與其三層式位址轉換架構的示意圖。
圖3、圖4和圖5是使用於圖1的非揮發記憶體的一種區域式管理方法的流程圖。
101‧‧‧邏輯位址空間
105‧‧‧非揮發記憶體
110-117‧‧‧虛擬區域
121、122‧‧‧虛擬區塊
131-134‧‧‧非揮發記憶體晶片
141、142‧‧‧實體區塊
150-157‧‧‧實體區域
158‧‧‧額外區域
160、167‧‧‧實體區塊集
Claims (15)
- 一種區域式管理方法,用於一快閃記憶體,該快閃記憶體包括至少一晶片,每一上述晶片包括多個實體區塊,每一上述實體區塊包括多個實體頁面,該區域式管理方法包括:將上述晶片的實體區塊劃分為多個實體區域和一個額外區域,每一上述實體區域和該額外區域各包括多個實體區塊;將每一上述實體區域劃分為多個實體區塊集,每一上述實體區塊集由不同晶片的同一編號的實體區塊組成;將每一上述實體區塊集劃分為多個實體頁面集,每一上述實體頁面集由所屬實體區塊集的每一實體區塊中同一偏移量的實體頁面組成;以每一上述實體區塊集為空間分配與空間回收的最小單位;以每一上述實體頁面集為資料讀寫的最小單位;以及當上述實體區塊其中之一發生毀損,則在該額外區域之中和該毀損區塊同一晶片的實體區塊其中,選擇一額外區塊,並使用該額外區塊取代該毀損區塊。
- 如申請專利範圍第1項所述之區域式管理方法,其中該快閃記憶體為多層單元快閃記憶體。
- 如申請專利範圍第1項所述之區域式管理方法,更包括:定義一邏輯位址空間,該邏輯位址空間包括多個虛擬 區域,每一上述虛擬區域包括多個虛擬區塊,每一上述虛擬區塊包括多個虛擬頁面;以及建立上述多個虛擬區域、上述多個虛擬區塊和上述多個虛擬頁面以及上述多個實體區域、上述多個實體區塊集和上述多個實體頁面集之間的對應關係。
- 如申請專利範圍第3項所述之區域式管理方法,其中建立上述對應關係的步驟更包括:將每一上述虛擬區域依序對應至上述多個實體區域其中之一;將每一上述虛擬區塊對應至所屬的該虛擬區域所對應的該實體區域的實體區塊集其中之一;以及將每一上述虛擬頁面對應至所屬的該虛擬區塊所對應的該實體區塊集的實體頁面集其中之一。
- 如申請專利範圍第4項所述之區域式管理方法,其中每一上述虛擬區域對應一虛擬區塊表,每一上述虛擬區塊對應一虛擬頁面表,一虛擬區域表記錄每一上述虛擬區塊表在一隨機存取記憶體的位址,每一上述虛擬區塊表記錄對應的該虛擬區域的每一虛擬區塊與對應的實體區塊集的位址轉換資訊,每一上述虛擬區塊表亦記錄對應的該虛擬區域的每一虛擬區塊所對應的虛擬頁面表在該隨機存取記憶體的位址,每一上述虛擬頁面表記錄對應的該虛擬區塊的每一虛擬頁面與對應的實體頁面集的位址轉換資訊,而且該區域式管理方法更包括:接收一第一邏輯位址;以及 使用該第一邏輯位址查閱該虛擬區域表、上述虛擬區塊表其中之一與上述虛擬頁面表其中之一,以取得該第一邏輯位址所對應的資料在該快閃記憶體的實體位址。
- 如申請專利範圍第5項所述之區域式管理方法,更包括:將該第一邏輯位址分割為一虛擬區域位址、一虛擬區塊位址、以及一虛擬頁面位址;以該虛擬區域位址為索引,查閱該虛擬區域表,取得該虛擬區域位址對應的該虛擬區域所對應的該虛擬區塊表在該隨機存取記憶體的位址;以該虛擬區塊位址為索引,查閱該虛擬區塊表,取得該虛擬區塊位址對應的該虛擬區塊的位址轉換資訊,以及該虛擬區塊所對應的該虛擬頁面表在該隨機存取記憶體的位址;以該虛擬頁面位址為索引,查閱該虛擬頁面表,取得該虛擬頁面位址對應的該虛擬頁面的位址轉換資訊;以及根據該虛擬區域位址與該虛擬區塊表和該虛擬頁面表提供的上述位址轉換資訊,產生該第一邏輯位址所對應的資料在該快閃記憶體的實體位址。
- 如申請專利範圍第5項所述之區域式管理方法,更包括:當存取上述虛擬區域其中之一時,自該額外區域讀取該虛擬區域對應的虛擬區塊表;將該虛擬區塊表存入該隨機存取記憶體;以及 當該快閃記憶體所屬的系統關機時,若該虛擬區塊表自上述讀取之後有更新過,則將該虛擬區塊表寫回該額外區域。
- 如申請專利範圍第5項所述之區域式管理方法,更包括:當存取上述虛擬區域其中之一時,讀取該虛擬區域對應的該實體區域的每一實體區塊集其中一個實體頁面的額外區所儲存的一第二邏輯位址,藉此建立該虛擬區域所對應的虛擬區塊表。
- 如申請專利範圍第5項所述之區域式管理方法,其中每一上述實體區塊集的實體頁面集其中之一為總結頁面集,而且該區域式管理方法更包括:當存取上述虛擬區塊其中之一時,自該虛擬區塊對應的該實體區塊集的總結頁面集讀取該虛擬區塊對應的虛擬頁面表;將該虛擬頁面表存入該隨機存取記憶體;以及當該快閃記憶體所屬的系統關機時,若該虛擬頁面表自上述讀取之後有更新過,則將該虛擬頁面表寫回該總結頁面集。
- 如申請專利範圍第5項所述之區域式管理方法,更包括:當存取上述虛擬區塊其中之一時,讀取該虛擬區塊對應的該實體區塊集的每一實體頁面集其中一個實體頁面的額外區所儲存的一第二邏輯位址,藉此建立該虛擬區塊所 對應的虛擬頁面表。
- 如申請專利範圍第1項所述之區域式管理方法,更包括:使用一區塊取代表記錄該毀損區塊和該額外區塊所屬晶片的編號,以及該毀損區塊和該額外區塊本身在該所屬晶片的編號。
- 如申請專利範圍第1項所述之區域式管理方法,其中每一上述實體區塊集的實體頁面集其中之一為總結頁面集,每一上述實體區塊集對應一同位元檢查碼,而且該區域式管理方法更包括:每當一個實體頁面集寫滿資料時,將該實體頁面集的資料與其所屬的實體區塊集的同位元檢查碼進行一運算,以產生新的包含該實體區塊集內所有資料的同位元檢查碼;以及當該快閃記憶體所屬的系統關機時,或該實體區塊集除了總結頁面集以外的空間都寫滿資料時,將該同位元檢查碼寫入該總結頁面集。
- 如申請專利範圍第12項所述之區域式管理方法,其中該總結頁面集是由該實體區塊集的每一實體區塊的最後一個實體頁面所組成。
- 如申請專利範圍第12項所述之區域式管理方法,其中該運算為互斥或運算。
- 如申請專利範圍第12項所述之區域式管理方法,更包括: 根據該同位元檢查碼還原該毀損區塊的資料;以及將還原的上述資料寫入該額外區塊。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098144806A TWI484334B (zh) | 2009-12-24 | 2009-12-24 | 非揮發記憶體的區域式管理方法 |
US12/702,235 US8341336B2 (en) | 2009-12-24 | 2010-02-08 | Region-based management method of non-volatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098144806A TWI484334B (zh) | 2009-12-24 | 2009-12-24 | 非揮發記憶體的區域式管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201122814A TW201122814A (en) | 2011-07-01 |
TWI484334B true TWI484334B (zh) | 2015-05-11 |
Family
ID=44188848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098144806A TWI484334B (zh) | 2009-12-24 | 2009-12-24 | 非揮發記憶體的區域式管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8341336B2 (zh) |
TW (1) | TWI484334B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI685741B (zh) * | 2016-05-23 | 2020-02-21 | 大陸商合肥沛睿微電子股份有限公司 | 儲存系統之控制裝置及其儲存空間回收方法 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011192240A (ja) * | 2010-03-17 | 2011-09-29 | Sony Corp | 記憶装置および記憶システム |
JP2011192239A (ja) * | 2010-03-17 | 2011-09-29 | Sony Corp | 記憶装置および記憶システム |
US20110283048A1 (en) * | 2010-05-11 | 2011-11-17 | Seagate Technology Llc | Structured mapping system for a memory device |
EP2413329B1 (en) * | 2010-07-28 | 2014-03-26 | Fujitsu Semiconductor Europe GmbH | Electronic apparatuses |
JP2012173778A (ja) * | 2011-02-17 | 2012-09-10 | Sony Corp | 管理装置、および管理方法 |
KR101438716B1 (ko) | 2011-08-09 | 2014-09-11 | 엘에스아이 코포레이션 | I/o 디바이스 및 컴퓨팅 호스팅 상호동작 |
US9317441B2 (en) | 2011-12-22 | 2016-04-19 | Intel Cororation | Indexed page address translation to reduce memory footprint in virtualized environments |
US9218294B1 (en) * | 2012-06-06 | 2015-12-22 | Sk Hynix Memory Solutions Inc. | Multi-level logical block address (LBA) mapping table for solid state |
US9007831B2 (en) * | 2013-03-05 | 2015-04-14 | Micron Technology, Inc. | Memory devices with different sized blocks of memory cells and methods |
US10209904B2 (en) * | 2013-04-09 | 2019-02-19 | EMC IP Holding Company LLC | Multiprocessor system with independent direct access to bulk solid state memory resources |
US9471428B2 (en) * | 2014-05-06 | 2016-10-18 | International Business Machines Corporation | Using spare capacity in solid state drives |
US9792227B2 (en) * | 2014-08-19 | 2017-10-17 | Samsung Electronics Co., Ltd. | Heterogeneous unified memory |
KR102570367B1 (ko) | 2016-04-21 | 2023-08-28 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치를 액세스하는 액세스 방법 |
US20200042466A1 (en) * | 2018-08-03 | 2020-02-06 | Burlywood, Inc. | Power Loss Protection And Recovery |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI262389B (en) * | 2001-12-05 | 2006-09-21 | Advanced Micro Devices Inc | Host bridge, computer system, and method for providing access security for a memory |
TW200731065A (en) * | 2005-08-03 | 2007-08-16 | Sandisk Corp | Non-volatile memory with scheduled reclaim operations |
TWM344552U (en) * | 2008-05-28 | 2008-11-11 | Silicon Power Comp & Comm Inc | Solid state disk |
TW200907789A (en) * | 2007-06-27 | 2009-02-16 | Sandisk Corp | Phased garbage collection and house keeping operations in a flash memory system |
TW200926183A (en) * | 2007-12-07 | 2009-06-16 | Phison Electronics Corp | Flash memory data writing method and controller using the same |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4699515A (en) * | 1984-02-28 | 1987-10-13 | Nippon Kogaku K. K. | Process of transfer of mask pattern onto substrate and apparatus for alignment therebetween |
JP2001243110A (ja) * | 1999-12-20 | 2001-09-07 | Tdk Corp | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法 |
US6574024B1 (en) * | 2000-03-31 | 2003-06-03 | Matsushita Electric Industrial Co., Ltd. | Laser beam homogenization by scanning a beam onto a mask |
KR100644602B1 (ko) * | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
US6510488B2 (en) * | 2001-02-05 | 2003-01-21 | M-Systems Flash Disk Pioneers Ltd. | Method for fast wake-up of a flash memory system |
US6848071B2 (en) * | 2001-04-23 | 2005-01-25 | Sun Microsystems, Inc. | Method and apparatus for updating an error-correcting code during a partial line store |
AU2003282544A1 (en) * | 2002-10-28 | 2004-05-25 | Sandisk Corporation | Automated wear leveling in non-volatile storage systems |
US7278068B1 (en) * | 2003-03-05 | 2007-10-02 | Sierra Design Group | Method and system for providing power-hit tolerant state machines and data storage |
US6901498B2 (en) * | 2002-12-09 | 2005-05-31 | Sandisk Corporation | Zone boundary adjustment for defects in non-volatile memories |
JP2004265162A (ja) * | 2003-03-03 | 2004-09-24 | Renesas Technology Corp | 記憶装置およびアドレス管理方法 |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
-
2009
- 2009-12-24 TW TW098144806A patent/TWI484334B/zh active
-
2010
- 2010-02-08 US US12/702,235 patent/US8341336B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI262389B (en) * | 2001-12-05 | 2006-09-21 | Advanced Micro Devices Inc | Host bridge, computer system, and method for providing access security for a memory |
TW200731065A (en) * | 2005-08-03 | 2007-08-16 | Sandisk Corp | Non-volatile memory with scheduled reclaim operations |
TW200907789A (en) * | 2007-06-27 | 2009-02-16 | Sandisk Corp | Phased garbage collection and house keeping operations in a flash memory system |
TW200926183A (en) * | 2007-12-07 | 2009-06-16 | Phison Electronics Corp | Flash memory data writing method and controller using the same |
TWM344552U (en) * | 2008-05-28 | 2008-11-11 | Silicon Power Comp & Comm Inc | Solid state disk |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI685741B (zh) * | 2016-05-23 | 2020-02-21 | 大陸商合肥沛睿微電子股份有限公司 | 儲存系統之控制裝置及其儲存空間回收方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201122814A (en) | 2011-07-01 |
US8341336B2 (en) | 2012-12-25 |
US20110161562A1 (en) | 2011-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI484334B (zh) | 非揮發記憶體的區域式管理方法 | |
CN107957961B (zh) | 存储设备、存储系统和计算设备 | |
US9176817B2 (en) | Data management in solid state storage devices | |
TWI399644B (zh) | 非揮發記憶體區塊管理方法 | |
US8909986B2 (en) | Data storing method for solid state drive to preserve data integrity after power failure | |
US20210064249A1 (en) | Extending the life of a solid state drive by using mlc flash blocks in slc mode | |
US8788876B2 (en) | Stripe-based memory operation | |
US8407397B2 (en) | Block management method for flash memory and controller and storage system using the same | |
US8489806B2 (en) | Storage apparatus and method of managing data storage area | |
US8332576B2 (en) | Data reading method for flash memory and controller and storage system using the same | |
US9575844B2 (en) | Mass storage device and method of operating the same to back up data stored in volatile memory | |
CN109977034B (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
US20150186225A1 (en) | Data storage device and flash memory control method | |
US10521339B2 (en) | Retired page utilization (RPU) for improved write capacity of solid state drives | |
US20120324148A1 (en) | System and method of protecting metadata from nand flash failures | |
KR20070007264A (ko) | 비순차 갱신 블록 관리를 구비한 비휘발성 메모리 및 방법 | |
KR20070007265A (ko) | 제어 데이터 관리를 구비한 비휘발성 메모리 및 방법 | |
TWI557559B (zh) | 利用快閃記憶體的壞頁來存取資料的方法 | |
CN113838511A (zh) | 具有备份块的缓存编程 | |
US11169871B2 (en) | Data storage device and operating method thereof | |
US9547554B2 (en) | Mass storage device and method of operating the same to store parity data | |
JP7302497B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
US11886741B2 (en) | Method and storage device for improving NAND flash memory performance for intensive read workloads | |
WO2021033445A1 (ja) | コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法 | |
Tran et al. | Efficient Data Recovery Techniques ON Mlc Nand Flash Memory |