TWI643067B - 三維非及閘快閃記憶體及其記憶體管理方法 - Google Patents

三維非及閘快閃記憶體及其記憶體管理方法 Download PDF

Info

Publication number
TWI643067B
TWI643067B TW106112592A TW106112592A TWI643067B TW I643067 B TWI643067 B TW I643067B TW 106112592 A TW106112592 A TW 106112592A TW 106112592 A TW106112592 A TW 106112592A TW I643067 B TWI643067 B TW I643067B
Authority
TW
Taiwan
Prior art keywords
memory
physical memory
block
physical
memory block
Prior art date
Application number
TW106112592A
Other languages
English (en)
Other versions
TW201837714A (zh
Inventor
吳晋賢
周煜
Original Assignee
國立臺灣科技大學
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 國立臺灣科技大學 filed Critical 國立臺灣科技大學
Priority to TW106112592A priority Critical patent/TWI643067B/zh
Publication of TW201837714A publication Critical patent/TW201837714A/zh
Application granted granted Critical
Publication of TWI643067B publication Critical patent/TWI643067B/zh

Links

Landscapes

  • Memory System (AREA)

Abstract

本發明提供之三維非及閘快閃記憶體中,實體記憶體區塊層具有複數個通道,每個通道係連接至複數個實體記憶體區塊,且每個實體記憶體區塊具有複數個實體記憶體分頁。記憶體管理方法主要根據實體記憶體區塊之空間使用率、實體記憶體分頁的使用情況,以及快閃記憶體轉換層所使用之映射方式來挑選目標記憶體區塊以進行記憶體管理,例如,進行資料的複製與移動或者將實體記憶體區塊抹除。

Description

三維非及閘快閃記憶體及其記憶體管理方法
本發明乃是關於一種三維非及閘快閃記憶體及其記憶體管理方法,特別是指一種能夠提高記憶體中空間使用率的三維非及閘快閃記憶體及其記憶體管理方法。
對受管理的快閃記憶體儲存效能的要求正變得越來越高。緊湊型消費電子產品(諸如智慧手機、平板、以及遊戲裝置)需要性價比高並且低功耗的儲存方案。受管理的與非型或NOT AND(NAND)快閃記憶體設備的示例包括嵌入式多媒體卡(eMMC)、通用快閃記憶體儲存(UFS)、外部串列先進技術附件(eSATA)、球柵陣列(BGA)SATA、通用序列匯流排(USB)驅動器、安全數位(SD)卡、通用用戶身份模組(USIM)卡、以及緊湊式快閃記憶卡。NAND設備普遍用於行動應用,因為它們低成本並且低功耗。
快閃記憶體為常見的一種非揮發性儲存技術,牽涉電性抹除與編程技術。以非及閘型的快閃記憶體(NAND FLASH)為例,主要用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)...等產品。非及閘型的快閃記憶體之儲存陣列包括複數個區塊(blocks),且是以完整區塊為抹除單位。使用過的區塊需整區塊抹除(erase)後,方能視為閒置區塊(spare block)待配置使用。「垃圾收集(Garbage Collection)」用於收集多個區塊中 零散的有效資料至特定區塊,使只殘留無效資料的該些區塊得以被抹除為閒置區塊。然而,「垃圾收集」應用在傳統技術上需要相當的運算資源。快閃記憶體的實體空間通常包括複數個區塊(blocks)。一區塊需要完整抹除(erase)後方能被重新配置。
本發明實施例提供一種高空間使用率之三維非及閘快閃記憶體,其主要包括快閃記憶體轉換層、實體記憶體區塊層與虛擬記憶體區塊層。快閃記憶體轉換層係用以接收主機系統傳送來的一邏輯位址,並將所接收的邏輯位址映射至一實體位址,以進行資料之寫入或讀取。實體記憶體區塊層具有複數個通道,每個通道係連接至複數個實體記憶體區塊,且每個實體記憶體區塊具有複數個實體記憶體分頁。虛擬記憶體區塊層具有複數個虛擬記憶體區塊,且每個虛擬記憶體區塊具有複數個虛擬記憶體分頁。虛擬記憶體區塊中的該些虛擬記憶體分頁係分別平均地對應至各通道之實體記憶體區塊中的該些實體記憶體分頁,且每一實體位址係對應至虛擬記憶體區塊層中複數個虛擬記憶體區塊之一。
於本發明之一實施例中,於實體記憶體區塊層中,每個通道下每個實體記憶體區塊中不相鄰之四個實體記憶體分頁組成一個記憶體分割區塊,且每個虛擬記憶體區塊係由不同通道下之該些實體記憶體區塊之一中的記憶體分割區塊之一所組成。
於本發明之一實施例中,透過實體位址與對應之複數個虛擬記憶體區塊之一,快閃記憶體轉換層將資料平均且同時地寫入至不同通道下之實體 記憶體區塊中的實體記憶體分頁,或將資料平均且同時地由不同通道下之實體記憶體區塊中的實體記憶體分頁讀取。
於本發明之一實施例中,於實體記憶體區塊中,當其中一個記憶體分割區塊被使用時,與被使用之記憶體分割區塊相鄰之兩個記憶體分割區塊不允許被使用。
本發明實施例亦提供一種能提高空間使用率之記憶體管理方法。此種記憶體管理方法適用於三維非及閘快閃記憶體,且此三維非及閘快閃記憶體主要包括快閃記憶體轉換層、實體記憶體區塊層與虛擬記憶體區塊層。實體記憶體區塊層具有複數個通道,每個通道係連接至複數個實體記憶體區塊,且每個實體記憶體區塊具有複數個實體記憶體分頁。於實體記憶體區塊層中,每個通道下每個實體記憶體區塊中不相鄰之四個實體記憶體分頁組成一記憶體分割區塊,以使每個實體記憶體區塊具有四個記憶體分割區塊。此記憶體管理方法包括:步驟A:判斷是否存在已使用空間大於50%之實體記憶體區塊,且優先選擇已使用空間大於50%之實體記憶體區塊來進行資料的抹除或移動;步驟B:若不存在已使用空間大於50%之實體記憶體區塊,則判斷是否存在已使用空間等於50%之實體記憶體區塊,且優先選擇已使用空間等於50%之實體記憶體區塊來進行資料的抹除或移動;以及步驟C:若不存在已使用空間等於50%之實體記憶體區塊,則選擇已使用空間小於50%之實體記憶體區塊來進行資料的抹除或移動。於步驟A~C中,資料的抹除或移動係根據有效之實體記憶體分頁的占有比例與各通道中空閒之實體記憶體區塊的占有比例來進行。
於本發明之一實施例中,步驟A還包括以下步驟:步驟A-1:判斷實體記憶體區塊中的該些實體記憶體分頁是否均無效;以及 步驟A-1’:若實體記憶體區塊中的該些實體記憶體分頁均無效,則將實體記憶體區塊整個抹除。
於本發明之一實施例中,步驟A還包括以下步驟:步驟A-2:判斷有效之實體記憶體分頁是否僅存在於實體記憶體區塊之其中一個記憶體分割區塊;以及步驟A-2’:若有效之實體記憶體分頁僅存在於實體記憶體區塊之其中一個記憶體分割區塊,則將記憶體分割區塊中的資料複製並移動至通道下實體記憶體區塊之其中一記憶體分割區塊中,且將實體記憶體區塊整個抹除。
於本發明之一實施例中,步驟A還包括以下步驟:步驟A-3:判斷實體記憶體區塊之其中兩個記憶體分割區塊中是否均存在有效之實體記憶體分頁,且判斷快閃記憶體轉換層所使用之映射方式是否為分頁映射;步驟A-3’:若於實體記憶體區塊之其中兩個記憶體分割區塊中均存在有效之實體記憶體分頁,且快閃記憶體轉換層所使用之映射方式為分頁映射,則於快閃記憶體轉換層以分頁映射的方式將有效之實體記憶體分頁中的資料進行複製後,將實體記憶體區塊整個抹除;以及步驟A-3”:若於實體記憶體區塊之兩個記憶體分割區塊中均存在有效之實體記憶體分頁,但快閃記憶體轉換層所使用之映射方式為區塊映射或混和映射,則將記憶體分割區塊中的資料複製並移動至通道下實體記憶體區塊中的一記憶體分割區塊中,且將實體記憶體區塊整個抹除。
於本發明之一實施例中,步驟B還包括以下步驟:步驟B-1:判斷有效之實體記憶體分頁是否僅存在於實體記憶體區塊之其中一個記憶體分割區塊;以及步驟B-1’:若有效之實體記憶體分頁僅存在於實體記憶體區塊中的一個記憶體分割區塊,則將記憶體分割區塊中的資料複製並移動至實體記憶體區塊中其它空閒之記憶體分割區塊。
於本發明之一實施例中,步驟B還包括以下步驟:步驟B-2:判斷實體記憶體區塊中的兩個記憶體分割區塊中是否均存在有效之實體記憶體分頁,且判斷快閃記憶體轉換層所使用之映射方式是否為分頁映射;步驟B-2’:若實體記憶體區塊中的兩個記憶體分割區塊中均存在有效之實體記憶體分頁,且快閃記憶體轉換層所使用之映射方式為分頁映射,則快閃記憶體轉換層以分頁映射的方式將有效之實體記憶體分頁中的資料進行複製;以及步驟B-2”:若實體記憶體區塊中的兩個記憶體分割區塊中均存在有效之實體記憶體分頁,但快閃記憶體轉換層所使用之映射方式為區塊映射或混和映射,則將兩個記憶體分割區塊中的資料複製並移動至實體記憶體區塊中其他空閒之記憶體分割區塊。
於本發明之一實施例中,步驟C還包括以下步驟:步驟C-1:判斷實體記憶體區塊是否僅存在無效與空閒之實體記憶體分頁;以及步驟C-1’:若實體記憶體區塊僅存在無效與空閒之實體記憶體分頁,則將實體記憶體區塊中被使用之記憶體分割區塊中空閒的實體記憶體分頁標示為無效。
於本發明之一實施例中,步驟C還包括以下步驟:步驟C-2:判斷有效之實體記憶體分頁是否僅存在於一個記憶體分割區塊,且判斷位於記憶體分割區塊之邊界位置的實體記憶體分頁是否皆為無效;以及步驟C-2’:若有效之實體記憶體分頁僅存在於一個記憶體分割區塊,且位於記憶體分割區塊之邊界位置的實體記憶體分頁皆為無效,則將實體記憶體區塊中被使用之記憶體分割區塊中空閒的實體記憶體分頁標示為無效。
於本發明之一實施例中,步驟C還包括以下步驟:步驟C-3:再次判斷有效之實體記憶體分頁是否僅存在於一個記憶體分割區塊;以及步驟C-3’:經再次判斷,若有效之實體記憶體分頁僅存在於一個記憶體分割區塊,則將記憶 體分割區塊中的資料複製並移動至實體記憶體區塊中其他空閒之記憶體分割區塊,且將實體記憶體區塊中被使用之記憶體分割區塊中空閒的實體記憶體分頁標示為無效。
於本發明之一實施例中,步驟C還包括以下步驟:步驟C-4:判斷實體記憶體區塊中的兩個記憶體分割區塊中是否均存在有效之實體記憶體分頁,且判斷快閃記憶體轉換層所使用之映射方式是否為分頁映射;步驟C-4’:若實體記憶體區塊中的兩個記憶體分割區塊中均存在有效之實體記憶體分頁,且快閃記憶體轉換層所使用之映射方式為分頁映射,則於快閃記憶體轉換層以分頁映射的方式將有效之實體記憶體分頁中的資料進行複製後,將兩個記憶體分割區塊中空閒的實體記憶體分頁標示為無效;以及步驟C-4”:若實體記憶體區塊中的兩個記憶體分割區塊中均存在有效之實體記憶體分頁,但快閃記憶體轉換層所使用之映射方式為區塊映射或混和映射,則將兩個記憶體分割區塊中的資料複製並移動至通道下實體記憶體區塊中的另兩個記憶體分割區塊中,且將兩個記憶體分割區塊中空閒之實體記憶體分頁標示為無效。
總的來說,本發明所提供之能提高空間使用率之三維非及閘快閃記憶體及其記憶體管理方法能夠根據實體記憶體區塊已被使用之空間的大小、實體記憶體區塊中實體記憶體分頁的使用情況,以及快閃記憶體轉換層所使用之映射方式,從三維非及閘快閃記憶體中各個實體記憶體區塊中挑選目標記憶體區塊以進行記憶體管理,例如,進行資料的複製與移動、空閒的實體記憶體分頁標示為無效,或者將實體記憶體區塊抹除。如此一來,便能夠有效地提高三維非及閘快閃記憶體的空間使用率。
為使能更進一步瞭解本發明之特徵及技術內容,請參閱以下有關本發明之詳細說明與附圖,但是此等說明與所附圖式僅係用來說明本發明,而非對本發明的權利範圍作任何的限制。
10‧‧‧實體記憶體區塊層
20‧‧‧虛擬記憶體區塊層
30‧‧‧寫入緩衝器
A、B、C‧‧‧步驟
A-1、A-1’、A-2、A-2’、A-3、A-3’、A-3”‧‧‧步驟
B-1、B-1’、B-2、B-2’、B-2”‧‧‧步驟
C-1、C-1’、C-2、C-2’、C-3、C-3’、C-4、C-4’、C-4”‧‧‧步驟
C1~C4‧‧‧通道
FTL‧‧‧快閃記憶體轉換層
M‧‧‧主機系統
P0~P15‧‧‧實體記憶體分頁
PHB‧‧‧實體記憶體區塊
VP0~VP7‧‧‧虛擬記憶體分頁
VB‧‧‧虛擬記憶體區塊
〔圖1〕係為根據本發明例示性實施例所繪示之能提高空間使用率之三維非及閘快閃記憶體的示意圖。
〔圖2A~圖2C〕係為根據本發明例示性實施例所繪示之能提高空間使用率之記憶體管理方法的流程圖。
〔圖3A〕係為圖2A所繪示之能提高空間使用率之記憶體管理方法中步驟A-1與A-1’的示意圖。
〔圖3B〕係為圖2A所繪示之能提高空間使用率之記憶體管理方法中步驟A-2與A-2’的示意圖。
〔圖3C〕係為圖2A所繪示之能提高空間使用率之記憶體管理方法中步驟A-3與A-3’的示意圖。
〔圖3D〕係為圖2A所繪示之能提高空間使用率之記憶體管理方法中步驟A-3”的示意圖。
〔圖4A〕係為圖2B所繪示之能提高空間使用率之記憶體管理方法中步驟B-1與B-1’的示意圖。
〔圖4B〕係為圖2B所繪示之能提高空間使用率之記憶體管理方法中步驟B-2與B-2’的示意圖。
〔圖4C〕係為圖2B所繪示之能提高空間使用率之記憶體管理方法中步驟B-2”的示意圖。
〔圖5A〕係為圖2C所繪示之能提高空間使用率之記憶體管理方法中步驟C-1與C-1’的示意圖。
〔圖5B〕係為圖2C所繪示之能提高空間使用率之記憶體管理方法中步驟C-2與C-2’的示意圖。
〔圖5C〕係為圖2C所繪示之能提高空間使用率之記憶體管理方法中步驟C-3與C-3’的示意圖。
〔圖5D〕係為圖2C所繪示之能提高空間使用率之記憶體管理方法中步驟C-4與C-4’的示意圖。
〔圖5E〕係為圖2C所繪示之能提高空間使用率之記憶體管理方法中步驟C-4”的示意圖。
在下文將參看隨附圖式更充分地描述各種例示性實施例,在隨附圖式中展示一些例示性實施例。然而,本發明概念可能以許多不同形式來體現,且不應解釋為限於本文中所闡述之例示性實施例。確切而言,提供此等例示性實施例使得本發明將為詳盡且完整,且將向熟習此項技術者充分傳達本發明概念的範疇。在諸圖式中,類似數字始終指示類似元件。
〔能提高空間使用率之三維非及閘快閃記憶體的實施例〕
請參照圖1,圖1為根據本發明例示性實施例所繪示之能提高空間使用率之三維非及閘快閃記憶體的示意圖。如圖1所示,本實施例所提供之三維 非及閘快閃記憶體主要包括快閃記憶體轉換層FTL、實體記憶體區塊層10與虛擬記憶體區塊層20。實體記憶體區塊層10具有複數個通道C1~C4,每個通道C1~C4係連接至複數個實體記憶體區塊PHB,且每個實體記憶體區塊PHB具有複數個實體記憶體分頁P0~P15。
本實施例所提供之三維非及閘快閃記憶體其特色之一係在於,快閃記憶體轉換層FTL與實體記憶體區塊層10之間設置有虛擬記憶體區塊層20。虛擬記憶體區塊層20具有複數個虛擬記憶體區塊VB,且每個虛擬記憶體區塊VB具有複數個虛擬記憶體分頁VP0~VP7。進一步說明,虛擬記憶體區塊VB中的該些虛擬記憶體分頁VP0~VP7係分別平均地對應至各通道C1~C4之實體記憶體區塊PHB中的實體記憶體分頁P0~P15。舉例來說,通道C1下的實體記憶體區塊PHB中的實體記憶體分頁P0、P2係分別對應至虛擬記憶體區塊VB中的虛擬記憶體分頁VP0、VP4,通道C2下的實體記憶體區塊PHB中的實體記憶體分頁P0、P2係分別對應至虛擬記憶體區塊VB中的虛擬記憶體分頁VP1、VP5,通道C3下的實體記憶體區塊PHB中的實體記憶體分頁P0、P2係分別對應至虛擬記憶體區塊VB中的虛擬記憶體分頁VP2、VP6,且通道C4下的實體記憶體區塊PHB中的實體記憶體分頁P0、P2係分別對應至虛擬記憶體區塊VB中的虛擬記憶體分頁VP3、VP7。
於本實施例中,當快閃記憶體轉換層FTL接收主機系統M傳送來的邏輯位址,並將所接收的邏輯位址映射至一實體位址,以進行資料之寫入或讀取時,快閃記憶體轉換層FTL係將前述由不同通道C1~C4下之實體記憶體區塊PHB中的實體記憶體分頁P0、P2組成的虛擬記憶體區塊VB視為一般的實體記憶體區塊。也就是說,根據所接收的邏輯位址,快閃記憶體轉換層FTL所映射出的 實體位址係對應於虛擬記憶體區塊層20中之複數個虛擬記憶體區塊VB之一,且此虛擬記憶體區塊VB由不同通道C1~C4下之實體記憶體區塊PHB中的實體記憶體分頁P0、P2所組成。
如此一來,快閃記憶體轉換層FTL便能將資料平均且同時地寫入至不同通道下之實體記憶體區塊PHB中的實體記憶體分頁P0、P2,或將資料平均且同時地由不同通道下之實體記憶體區塊PHB中的實體記憶體分頁P0、P2讀取。
除此之外,於本實施例中,在實體記憶體區塊層20中,每個通道C1~C4下每個實體記憶體區塊PHB中不相鄰之四個實體記憶體分頁組成記憶體分割區塊PB。當其中一個記憶體分割區塊PB被使用時,與被使用之記憶體分割區塊PB相鄰之兩個記憶體分割區塊PB不允許被使用。為便於理解,復請參照圖1,以通道C1下的一個實體記憶體區塊PHB為例,此實體記憶體區塊PHB包含實體記憶體分頁P0~P15。不相鄰之四個實體記憶體分頁P0、P2、P5、P7組成一個記憶體分割區塊PB;同理,不相鄰之四個實體記憶體分頁P1、P3、P4、P6亦組成一個記憶體分割區塊PB,不相鄰之四個實體記憶體分頁P8、P10、P13、P15亦組成一個記憶體分割區塊PB,不相鄰之四個實體記憶體分頁P9、P11、P12、P14亦組成一個記憶體分割區塊PB。
於此實體記憶體區塊PHB中,當由實體記憶體分頁P0、P2、P5、P7組成之記憶體分割區塊PB被使用時,由實體記憶體分頁P1、P3、P4、P6組成之記憶體分割區塊PB以及由實體記憶體分頁P9、P11、P12、P14組成之記憶體分割區塊PB係與由實體記憶體分頁P0、P2、P5、P7組成之記憶體分割區塊PB相鄰,故不允許被使用。然而,由實體記憶體分頁P8、P10、P13、P15組成之記憶體分 割區塊PB與由實體記憶體分頁P0、P2、P5、P7組成之記憶體分割區塊PB不相鄰(如圖1所示之斜線網底標示),故能夠被使用。
此外,本發明所提供之三維非及閘快閃記憶體更包括寫入緩衝器30,其連接至快閃記憶體轉換層FTL。根據本揭露內容之寫入緩衝機制,在寫入緩衝器以可寫在同一實體區塊的資料為單位進行LRU的排序,當叢聚空間可以以一個實體區塊為單位進行寫入操作時,可以增加多通道架構的存取效率。本揭露內容之寫入緩衝器30為非揮發性記憶體,其可以避免斷電時的資料遺失,並寫入緩衝器30的資料若存在於實體記憶體區塊層10,則將實體記憶體區塊層10相對應的有效頁面標示為無效(Invalid)狀態,藉此可以提高寫入鄰近皆為無效頁面(Invalid Page)的空白頁面(Free Page)的機會,且增加可安全寫入的空白頁面的數量與提升實體區塊在回收時的空間使用率。
〔能提高空間使用率之記憶體管理方法的實施例〕
本實施例提供之記憶體管理方法適用於如前述實施例所提供之三維非及閘快閃記憶體,故請同時參照圖1以利理解。
簡言之,本實施例提供之記憶體管理方法所適用的三維非及閘快閃記憶體主要包括快閃記憶體轉換層、實體記憶體區塊層與一虛擬憶體區塊層,其中,實體記憶體區塊層具有複數個通道,每個通道係連接至複數個實體記憶體區塊,且每個實體記憶體區塊具有複數個實體記憶體分頁。此外,於實體記憶體區塊層中,每個通道下每個實體記憶體區塊中不相鄰之四個該實體記憶體分頁組成一個記憶體分割區塊,以使每個實體記憶體區塊具有四個記憶體分割區塊(如圖1所示之由實體記憶體分頁P0、P2、P5、P7組成之記憶體分割區塊、由實體記憶體分頁P1、P3、P4、P6組成之記憶體分割區塊、由實體記憶體分頁P8、P10、 P13、P15組成之記憶體分割區塊,以及由實體記憶體分頁P9、P11、P12、P14組成之記憶體分割區塊)。
請參照圖2A至圖2C,圖2A至圖2C為根據本發明例示性實施例所繪示之能提高空間使用率之記憶體管理方法的流程圖。如圖2A所示,本實施例所提供之記憶體管理方法主要利用以下步驟來實現:步驟A:判斷是否存在已使用空間大於50%之實體記憶體區塊,且優先選擇已使用空間大於50%之實體記憶體區塊來進行資料的抹除或移動;步驟B:若不存在已使用空間大於50%之實體記憶體區塊,則判斷是否存在已使用空間等於50%之實體記憶體區塊,且優先選擇已使用空間等於50%之實體記憶體區塊來進行資料的抹除或移動;以及步驟C:若不存在已使用空間等於50%之實體記憶體區塊,則選擇已使用空間小於50%之實體記憶體區塊來進行資料的抹除或移動。尤其,於步驟A~C中,記憶體的管理,如:資料的抹除或移動,係根據有效之實體記憶體分頁的占有比例與各通道中空閒之實體記憶體區塊的占有比例來進行。
接下來,將進一步描述本實施例所提供之記憶體管理方法中步驟A~C的細節。
[步驟A]
如步驟A所述,本實施例所提供之記憶體管理方法會先判斷是否存在已使用空間大於50%之實體記憶體區塊,並優先選擇已使用空間大於50%之實體記憶體區塊來進行記憶體管理的相關動作。
若存在已使用空間大於50%之實體記憶體區塊,即進入步驟A-1,以判斷實體記憶體區塊中已使用的該些實體記憶體分頁是否均無效。若實體記憶體區塊中已使用的該些實體記憶體分頁均為無效,即進入步驟A-1’。請同時參 照圖2A與圖3A,圖3A為圖2A所繪示之能提高空間使用率之記憶體管理方法中步驟A-1與A-1’的示意圖。圖3A所繪示之實體記憶體區塊中已使用的該些實體記憶體分頁均為無效(以灰色網底標示),因此於步驟A-1’中便將此實體記憶體區塊整個抹除。
另一方面,若實體記憶體區塊中已使用的該些實體記憶體分頁並非均無效,即進入步驟A-2,以判斷有效之實體記憶體分頁是否僅存在於實體記憶體區塊之其中一個被使用之記憶體分割區塊。請同時參照圖2A與圖3B,圖3B為圖2A所繪示之能提高空間使用率之記憶體管理方法中步驟A-2與A-2’的示意圖。步驟A-2’為若有效之實體記憶體分頁僅存在於該實體記憶體區塊之其中一個記憶體分割區塊,則將該記憶體分割區塊中的資料複製並移動至同一通道下另一實體記憶體區塊之其中一記憶體分割區塊中,且將該實體記憶體區塊整個抹除,但不以同一通道下另一實體記憶體區塊為限。
若步驟A-2判斷為否,則進入到步驟A-3之判斷。請同時參照圖2A與圖3C,圖3C為圖2A所繪示之能提高空間使用率之記憶體管理方法中步驟A-3與A-3’的示意圖。步驟A-3判斷實體記憶體區塊之其中兩個記憶體分割區塊中是否均存在有效之該實體記憶體分頁,且判斷快閃記憶體轉換層所使用之映射方式是否為分頁映射。如果步驟A-3之判斷為是,則進行步驟A-3’於快閃記憶體轉換層以分頁映射的方式將有效之實體記憶體分頁中的資料進行複製後,將實體記憶體區塊整個抹除。
如果步驟A-3之判斷為否,則進入到步驟A-3”。請同時參照圖2A與圖3D,圖3D為圖2A所繪示之能提高空間使用率之記憶體管理方法中步驟A-3”的示意圖。步驟A-3”為若於實體記憶體區塊之兩個記憶體分割區塊中均存在有 效之實體記憶體分頁,但快閃記憶體轉換層所使用之映射方式為區塊映射或混和映射,則將記憶體分割區塊中的資料複製並移動至同一通道下另一實體記憶體區塊中的記憶體分割區塊中,且將實體記憶體區塊整個抹除,但不以同一通道下另一實體記憶體區塊為限。
[步驟B]
接下來要說明的是,如步驟B所述,本實施例所提供之記憶體管理方法會先判斷是否存在已使用空間等於50%之實體記憶體區塊,並優先選擇已使用空間等於50%之實體記憶體區塊來進行記憶體管理的相關動作。
若存在已使用空間等於50%之實體記憶體區塊,即進入步驟B-1,以判斷有效之實體記憶體分頁是否僅存在於實體記憶體區塊之其中一個記憶體分割區塊。請同時參照圖2B與圖4A,圖4A為圖2B所繪示之能提高空間使用率之記憶體管理方法中步驟B-1與B-1’的示意圖。如果步驟B-1之判斷為是,則進入到步驟B-1’以將記憶體分割區塊中的資料複製並移動至同一實體記憶體區塊中其它空閒之記憶體分割區塊,但不以同一實體記憶體區塊為限。
如果步驟B-1之判斷為否,則進入到步驟B-2以判斷實體記憶體區塊中的兩個記憶體分割區塊中是否均存在有效之實體記憶體分頁,且判斷快閃記憶體轉換層所使用之映射方式是否為分頁映射。請同時參照圖2B與圖4B,圖4B為圖2B所繪示之能提高空間使用率之記憶體管理方法中步驟B-2與B-2’的示意圖。如果步驟B-2之判斷為是,則進入到步驟B-2’,快閃記憶體轉換層以分頁映射的方式將有效之實體記憶體分頁中的資料進行複製。
如果步驟B-2之判斷為否,則進入到步驟B-2”。請同時參照圖2B與圖4C,圖4C為圖2B所繪示之能提高空間使用率之記憶體管理方法中步驟B-2” 的示意圖。也就是說,若實體記憶體區塊中的兩個記憶體分割區塊中均存在有效之實體記憶體分頁,但快閃記憶體轉換層所使用之映射方式為區塊映射或混和映射,則將兩個記憶體分割區塊中的資料複製並移動至同一實體記憶體區塊中其他空閒之記憶體分割區塊,但不以同一實體記憶體區塊為限。
[步驟C]
接下來要說明的是,如步驟C所述,本實施例所提供之記憶體管理方法會先判斷是否存在已使用空間小於50%之實體記憶體區塊,並優先選擇已使用空間小於50%之實體記憶體區塊來進行記憶體管理的相關動作。
若存在已使用空間小於50%之實體記憶體區塊,即進入步驟C-1以判斷實體記憶體區塊是否僅存在無效與空閒之實體記憶體分頁。請同時參照圖2C與圖5A,圖5A為圖2C所繪示之能提高空間使用率之記憶體管理方法中步驟C-1與C-1’的示意圖。如果步驟C-1之判斷為是,則進入到步驟C-1’以將實體記憶體區塊中被使用之記憶體分割區塊中空閒的實體記憶體分頁標示為無效。
如果步驟C-1之判斷為否,則進入到步驟C-2,以判斷有效之實體記憶體分頁是否僅存在於一個記憶體分割區塊,且判斷位於記憶體分割區塊之邊界位置的實體記憶體分頁是否皆為無效。請同時參照圖2C與圖5B,圖5B為圖2C所繪示之能提高空間使用率之記憶體管理方法中步驟C-2與C-2’的示意圖。如果步驟C-2之判斷為是,則進入到步驟C-2’以將實體記憶體區塊中被使用之記憶體分割區塊中空閒的實體記憶體分頁標示為無效。
如果步驟C-2之判斷為否,則進入到步驟C-3以再次判斷有效之實體記憶體分頁是否僅存在於一個記憶體分割區塊。請同時參照圖2C與圖5C,圖5C為圖2C所繪示之能提高空間使用率之記憶體管理方法中步驟C-3與C-3’的示 意圖。如果步驟C-3之判斷為是,則進入到步驟C-3’以將記憶體分割區塊中的資料複製並移動至同一實體記憶體區塊中其它空閒之記憶體分割區塊,且將實體記憶體區塊中被使用之記憶體分割區塊中空閒的實體記憶體分頁標示為無效,但不以同一實體記憶體區塊為限。
如果步驟C-3之判斷為否,則進入到步驟C-4以判斷實體記憶體區塊中的兩個記憶體分割區塊中是否均存在有效之該實體記憶體分頁,且判斷該快閃記憶體轉換層所使用之映射方式是否為分頁映射。請同時參照圖2C與圖5D,圖5D為圖2C所繪示之能提高空間使用率之記憶體管理方法中步驟C-4與C-4’的示意圖。如果步驟C-4之判斷為是,則進入到步驟C-4’,意即該快閃記憶體轉換層以分頁映射的方式將有效之實體記憶體分頁中的資料進行複製後,將兩個記憶體分割區塊中空閒的實體記憶體分頁標示為無效。如果步驟C-4之判斷為否,則進入到步驟C-4”。
請同時參照圖2C與圖5E,圖5E為圖2C所繪示之能提高空間使用率之記憶體管理方法中步驟C-4”的示意圖。也就是說,若實體記憶體區塊中的兩個記憶體分割區塊中均存在有效之實體記憶體分頁,但快閃記憶體轉換層所使用之映射方式為區塊映射或混和映射,則將兩個記憶體分割區塊中的資料複製並移動至同一通道下另一實體記憶體區塊中的另兩個記憶體分割區塊中,且將兩個記憶體分割區塊中空閒之實體記憶體分頁標示為無效,但不以同一通道下另一實體記憶體區塊為限。
〔實施例的可能功效〕
綜上所述,本發明所提供之能提高空間使用率之三維非及閘快閃記憶體及其記憶體管理方法能夠根據實體記憶體區塊已被使用之空間的大小、 實體記憶體區塊中實體記憶體分頁的使用情況,以及快閃記憶體轉換層所使用之映射方式,從三維非及閘快閃記憶體中各個實體記憶體區塊中挑選目標記憶體區塊以進行記憶體管理,例如,進行資料的複製與移動、空閒的實體記憶體分頁標示為無效,或者將實體記憶體區塊抹除。如此一來,便能夠有效地提高三維非及閘快閃記憶體的空間使用率。
以上所述僅為本發明之實施例,其並非用以侷限本發明之專利範圍。
本發明在上文中已以較佳實施例揭露,然熟習本項技術者應理解的是,該實施例僅用於描繪本發明,而不應解讀為限制本發明之範圍。應注意的是,舉凡與該實施例等效之變化與置換,均應設為涵蓋於本發明之範疇內。因此,本發明之保護範圍當以申請專利範圍所界定者為準。

Claims (11)

  1. 一種能提高空間使用率之三維非及閘快閃記憶體,包括:一快閃記憶體轉換層,用以接收一主機系統傳送來的一邏輯位址,將該邏輯位址映射至一實體位址,以進行資料之寫入或讀取;一寫入緩衝器,連接至該快閃記憶體轉換層;一實體記憶體區塊層,具有複數個通道,每個通道係連接至複數個實體記憶體區塊,且每個實體記憶體區塊具有複數個實體記憶體分頁;以及一虛擬記憶體區塊層,具有複數個虛擬記憶體區塊,且每個虛擬記憶體區塊具有複數個虛擬記憶體分頁;其中,該虛擬記憶體區塊中的該些虛擬記憶體分頁係分別平均地對應至各通道之該實體記憶體區塊中的該實體記憶體分頁,且該實體位址係對應至該虛擬記憶體區塊層中之該複數個虛擬記憶體區塊之一;於該實體記憶體區塊層中,每個通道下每個實體記憶體區塊中不相鄰之四個該實體記憶體分頁組成一記憶體分割區塊,且當其中一個該記憶體分割區塊被使用時,與被使用之該記憶體分割區塊相鄰之兩個該記憶體分割區塊不允許被使用;透過該實體位址與對應之該複數個虛擬記憶體區塊之一,該快閃記憶體轉換層將資料平均且同時地寫入至不同通道下之該實 體記憶體區塊中的該實體記憶體分頁,或將資料平均且同時地由不同通道下之該實體記憶體區塊中的該實體記憶體分頁讀取;若該寫入緩衝器的資料存在於該實體記憶體區塊層,則該三維非及閘快閃記憶體將該實體記憶體區塊層相對應的有效頁面標示為無效狀態。
  2. 一種能提高空間使用率之記憶體管理方法,適用於一三維非及閘快閃記憶體,該三維非及閘快閃記憶體包括一快閃記憶體轉換層、一寫入緩衝器、一實體記憶體區塊層與一虛擬記憶體區塊層,其中該實體記憶體區塊層具有複數個通道,每個通道係連接至複數個實體記憶體區塊,每個實體記憶體區塊具有複數個實體記憶體分頁,且於該實體記憶體區塊層中,每個通道下每個實體記憶體區塊中不相鄰之四個該實體記憶體分頁組成一記憶體分割區塊,以使每個實體記憶體區塊具有四個該記憶體分割區塊,該記憶體管理方法包括:步驟A:判斷是否存在已使用空間大於50%之該實體記憶體區塊,且優先選擇已使用空間大於50%之該實體記憶體區塊來進行資料的抹除或移動;步驟B:若不存在已使用空間大於50%之該實體記憶體區塊,則判斷是否存在已使用空間等於50%之該實體記憶體區塊,且優先選擇已使用空間等於50%之該實體記憶體區塊來進行資料的抹除或移動;以及 步驟C:若不存在已使用空間等於50%之該實體記憶體區塊,則選擇已使用空間小於50%之該實體記憶體區塊來進行資料的抹除或移動;其中,於步驟A~C中,根據有效之該實體記憶體分頁的占有比例與各通道中空閒之該實體記憶體區塊的占有比例來進行資料的抹除或移動;其中當其中一個該記憶體分割區塊被使用時,與被使用之該記憶體分割區塊相鄰之兩個該記憶體分割區塊不允許被使用;若該寫入緩衝器的資料存在於該實體記憶體區塊層,則將該實體記憶體區塊層相對應的有效頁面標示為無效狀態。
  3. 如請求項2所述之記憶體管理方法,其中步驟A還包括以下步驟:步驟A-1:判斷該實體記憶體區塊中的該些實體記憶體分頁是否均無效;以及步驟A-1’:若該實體記憶體區塊中的該些實體記憶體分頁均無效,則將該實體記憶體區塊整個抹除。
  4. 如請求項3所述之記憶體管理方法,其中步驟A還包括以下步驟:步驟A-2:判斷有效之該實體記憶體分頁是否僅存在於該實體記憶體區塊之其中一個該記憶體分割區塊;以及步驟A-2’:若有效之該實體記憶體分頁僅存在於該實體記憶體區塊之其中一個該記憶體分割區塊,則將該記憶體分割 區塊中的資料複製並移動至同一通道下另一實體記憶體區塊之其中一記憶體分割區塊中,且將該實體記憶體區塊整個抹除。
  5. 如請求項4所述之記憶體管理方法,其中步驟A還包括以下步驟:步驟A-3:判斷該實體記憶體區塊之其中兩個該記憶體分割區塊中是否均存在有效之該實體記憶體分頁,且判斷該快閃記憶體轉換層所使用之映射方式是否為分頁映射;步驟A-3’:若於該實體記憶體區塊之其中兩個該記憶體分割區塊中均存在有效之該實體記憶體分頁,且該快閃記憶體轉換層所使用之映射方式為分頁映射,則於該快閃記憶體轉換層以分頁映射的方式將有效之該實體記憶體分頁中的資料進行複製後,將該實體記憶體區塊整個抹除;以及步驟A-3”:若於該實體記憶體區塊之兩個該記憶體分割區塊中均存在有效之該實體記憶體分頁,但該快閃記憶體轉換層所使用之映射方式為區塊映射或混和映射,則將該記憶體分割區塊中的資料複製並移動至同一通道下另一實體記憶體區塊中的一記憶體分割區塊中,且將該實體記憶體區塊整個抹除。
  6. 如請求項2所述之記憶體管理方法,其中步驟B還包括以下步驟: 步驟B-1:判斷有效之該實體記憶體分頁是否僅存在於該實體記憶體區塊之其中一個該記憶體分割區塊;以及步驟B-1’:若有效之該實體記憶體分頁僅存在於該實體記憶體區塊中的一個該記憶體分割區塊,則將該記憶體分割區塊中的資料複製並移動至同一實體記憶體區塊中其它空閒之記憶體分割區塊。
  7. 如請求項6所述之記憶體管理方法,其中步驟B還包括以下步驟:步驟B-2:判斷該實體記憶體區塊中的兩個該記憶體分割區塊中是否均存在有效之該實體記憶體分頁,且判斷該快閃記憶體轉換層所使用之映射方式是否為分頁映射;步驟B-2’:若該實體記憶體區塊中的兩個該記憶體分割區塊中均存在有效之該實體記憶體分頁,且該快閃記憶體轉換層所使用之映射方式為分頁映射,則該快閃記憶體轉換層以分頁映射的方式將有效之該實體記憶體分頁中的資料進行複製;以及步驟B-2”:若該實體記憶體區塊中的兩個該記憶體分割區塊中均存在有效之該實體記憶體分頁,但該快閃記憶體轉換層所使用之映射方式為區塊映射或混和映射,則將兩個該記憶體分割區塊中的資料複製並移動至同一實體記憶體區塊中其他空閒之該記憶體分割區塊。
  8. 如請求項2所述之記憶體管理方法,其中步驟C還包括以下步驟:步驟C-1:判斷該實體記憶體區塊是否僅存在無效與空閒之該實體記憶體分頁;以及步驟C-1’:若該實體記憶體區塊僅存在無效與空閒之該實體記憶體分頁,則將該實體記憶體區塊中被使用之該記憶體分割區塊中空閒的該實體記憶體分頁標示為無效。
  9. 如請求項8所述之記憶體管理方法,其中步驟C還包括以下步驟:步驟C-2:判斷有效之該實體記憶體分頁是否僅存在於一個該記憶體分割區塊,且判斷位於該記憶體分割區塊之邊界位置的該實體記憶體分頁是否皆為無效;以及步驟C-2’:若有效之該實體記憶體分頁僅存在於一個該記憶體分割區塊,且位於該記憶體分割區塊之邊界位置的該實體記憶體分頁皆為無效,則將該實體記憶體區塊中被使用之該記憶體分割區塊中空閒的該實體記憶體分頁標示為無效。
  10. 如請求項9所述之記憶體管理方法,其中步驟C還包括以下步驟:步驟C-3:再次判斷有效之該實體記憶體分頁是否僅存在於一個該記憶體分割區塊;以及步驟C-3’:經再次判斷,若有效之該實體記憶體分頁僅存在於一個該記憶體分割區塊,則將該記憶體分割區塊中的資 料複製並移動至同一實體記憶體區塊中其他空閒之記憶體分割區塊,且將該實體記憶體區塊中被使用之該記憶體分割區塊中空閒的該實體記憶體分頁標示為無效。
  11. 如請求項10所述之記憶體管理方法,其中步驟C還包括以下步驟:步驟C-4:判斷該實體記憶體區塊中的兩個該記憶體分割區塊中是否均存在有效之該實體記憶體分頁,且判斷該快閃記憶體轉換層所使用之映射方式是否為分頁映射;步驟C-4’:若該實體記憶體區塊中的兩個該記憶體分割區塊中均存在有效之該實體記憶體分頁,且該快閃記憶體轉換層所使用之映射方式為分頁映射,則於該快閃記憶體轉換層以分頁映射的方式將有效之該實體記憶體分頁中的資料進行複製後,將該兩個記憶體分割區塊中空閒的該實體記憶體分頁標示為無效;以及步驟C-4”:若該實體記憶體區塊中的兩個該記憶體分割區塊中均存在有效之該實體記憶體分頁,但該快閃記憶體轉換層所使用之映射方式為區塊映射或混和映射,則將該兩個記憶體分割區塊中的資料複製並移動至同一通道下另一實體記憶體區塊中的另兩個記憶體分割區塊中,且將該兩個記憶體分割區塊中空閒之該實體記憶體分頁標示為無效。
TW106112592A 2017-04-14 2017-04-14 三維非及閘快閃記憶體及其記憶體管理方法 TWI643067B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW106112592A TWI643067B (zh) 2017-04-14 2017-04-14 三維非及閘快閃記憶體及其記憶體管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106112592A TWI643067B (zh) 2017-04-14 2017-04-14 三維非及閘快閃記憶體及其記憶體管理方法

Publications (2)

Publication Number Publication Date
TW201837714A TW201837714A (zh) 2018-10-16
TWI643067B true TWI643067B (zh) 2018-12-01

Family

ID=64797042

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106112592A TWI643067B (zh) 2017-04-14 2017-04-14 三維非及閘快閃記憶體及其記憶體管理方法

Country Status (1)

Country Link
TW (1) TWI643067B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI721660B (zh) * 2019-11-22 2021-03-11 財團法人工業技術研究院 控制資料讀寫裝置與方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100223420A1 (en) * 2009-02-27 2010-09-02 Samsung Electronics Co., Ltd. Memory system and data management method of flash translation layer thereof
CN102224489A (zh) * 2008-11-24 2011-10-19 汤姆森特许公司 包括快闪转换层的快闪存储器及其中存储文件的方法
TW201229754A (en) * 2010-10-29 2012-07-16 Samsung Electronics Co Ltd Memory system, data storage device, user device and data management method thereof
US20130339572A1 (en) * 2011-12-29 2013-12-19 Blaise Fanning Multi-level memory with direct access
US20140208004A1 (en) * 2013-01-22 2014-07-24 Lsi Corporation Translation layer partitioned between host and controller
TW201510723A (zh) * 2009-09-03 2015-03-16 Pioneer Chip Technology Ltd 以頁面為基礎管理快閃儲存裝置
TW201612908A (en) * 2014-07-03 2016-04-01 Sandisk Technologies Inc On-chip copying of data between NAND flash memory and ReRAM of a memory die
TW201633138A (zh) * 2015-03-06 2016-09-16 愛思開海力士有限公司 記憶體系統及其操作方法
TW201706855A (zh) * 2015-05-21 2017-02-16 美光科技公司 記憶體中之轉譯後備緩衝器

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102224489A (zh) * 2008-11-24 2011-10-19 汤姆森特许公司 包括快闪转换层的快闪存储器及其中存储文件的方法
US20100223420A1 (en) * 2009-02-27 2010-09-02 Samsung Electronics Co., Ltd. Memory system and data management method of flash translation layer thereof
TW201510723A (zh) * 2009-09-03 2015-03-16 Pioneer Chip Technology Ltd 以頁面為基礎管理快閃儲存裝置
TW201229754A (en) * 2010-10-29 2012-07-16 Samsung Electronics Co Ltd Memory system, data storage device, user device and data management method thereof
US20130339572A1 (en) * 2011-12-29 2013-12-19 Blaise Fanning Multi-level memory with direct access
US20140208004A1 (en) * 2013-01-22 2014-07-24 Lsi Corporation Translation layer partitioned between host and controller
TW201612908A (en) * 2014-07-03 2016-04-01 Sandisk Technologies Inc On-chip copying of data between NAND flash memory and ReRAM of a memory die
TW201633138A (zh) * 2015-03-06 2016-09-16 愛思開海力士有限公司 記憶體系統及其操作方法
TW201706855A (zh) * 2015-05-21 2017-02-16 美光科技公司 記憶體中之轉譯後備緩衝器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI721660B (zh) * 2019-11-22 2021-03-11 財團法人工業技術研究院 控制資料讀寫裝置與方法

Also Published As

Publication number Publication date
TW201837714A (zh) 2018-10-16

Similar Documents

Publication Publication Date Title
US11243878B2 (en) Simultaneous garbage collection of multiple source blocks
US11416391B2 (en) Garbage collection
US9715444B2 (en) Storage device having nonvolatile memory device and write method
US20160062885A1 (en) Garbage collection method for nonvolatile memory device
KR101735142B1 (ko) 비휘발성 메모리 어레이에서 동시적 백그라운 및 포그라운드 동작들을 위한 방법 및 시스템
EP2291746B1 (en) Hybrid memory management
CN101288054B (zh) 闪存管理方法、系统、存储设备、以及闪存设备
US9223696B2 (en) Data storage device for holding erasure of victim block having valid page copied to merge block and method of operating the same
US20110264884A1 (en) Data storage device and method of operating the same
US20100257308A1 (en) Host stop-transmission handling
US11249897B2 (en) Data storage device and operating method thereof
KR20130019567A (ko) 마이그레이션 관리자를 포함하는 메모리 시스템
US9372802B2 (en) Data writing method, hard disc module, and data writing system
US20120297117A1 (en) Data storage device and data management method thereof
US20130103893A1 (en) System comprising storage device and related methods of operation
CN111158579B (zh) 固态硬盘及其数据存取的方法
TW201440058A (zh) 非揮發性記憶體之記憶體干擾減少
TW201801089A (zh) 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
KR101081948B1 (ko) 불휘발성 메모리 장치 및 그것의 데이터 저장 방법
CN112130749B (zh) 数据储存装置以及非挥发式存储器控制方法
TWI643067B (zh) 三維非及閘快閃記憶體及其記憶體管理方法
CN112230849A (zh) 存储器控制方法、存储器存储装置及存储器控制器
CN104423892A (zh) 数据写入方法、磁盘模块以及数据写入系统
TW201624288A (zh) 快取記憶體裝置及非暫態電腦可讀取記錄媒體
US20240168669A1 (en) Non-volatile memory device and storage device