[go: up one dir, main page]

TWI867952B - 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 - Google Patents

快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 Download PDF

Info

Publication number
TWI867952B
TWI867952B TW113103305A TW113103305A TWI867952B TW I867952 B TWI867952 B TW I867952B TW 113103305 A TW113103305 A TW 113103305A TW 113103305 A TW113103305 A TW 113103305A TW I867952 B TWI867952 B TW I867952B
Authority
TW
Taiwan
Prior art keywords
flash memory
host device
memory module
memory controller
namespace
Prior art date
Application number
TW113103305A
Other languages
English (en)
Other versions
TW202439115A (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 慧榮科技股份有限公司
Publication of TW202439115A publication Critical patent/TW202439115A/zh
Application granted granted Critical
Publication of TWI867952B publication Critical patent/TWI867952B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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

一種快閃記憶體控制器的控制方法包含有:自一主機裝置接收一設置命令;因應設置命令,將一快閃記憶體模組的至少一部分配置為一分區命名空間,其中分區命名空間邏輯上包含有複數個區域;根據分區命名空間的一配置來產生參數資訊;以及將參數資訊傳送至主機裝置,以供主機裝置利用參數資訊來設置複數個區域。

Description

快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存 裝置
本發明係有關於快閃記憶體,且尤指快閃記憶體控制器以及相關控制方法。
在非揮發性記憶體主機控制器介面(non-volatile memory express,NVMe)規範中,一分區命名空間(zoned namespace)被標準化(standardize),然而,由於上述分區命名空間以及其內的每一個區域皆是純粹地從主機裝置的觀點來看的,因此如何提供一種有效的記憶體管理方法來正確地並且快速地進行適當的處理是一個重要議題。
因此,本發明的目的之一在於提供一種能夠將至少一配置設定傳送至主機裝置以供決定區域大小的快閃記憶體控制器以及相關控制方法,以解決上述問題。
根據本發明一實施例,提供了一種快閃記憶體控制器的控制方法, 其中快閃記憶體控制器係用以存取一快閃記憶體模組,快閃記憶體模組包含有複數個區塊,以及該控制方法包含有:自一主機裝置接收一設置命令;因應設置命令,將快閃記憶體模組的至少一部分配置為一分區命名空間,其中分區命名空間邏輯上包含有複數個區域,主機裝置對分區命名空間進行一基於區域的資料寫入操作,複數個區域的每一個區域具有一相同大小,對應於每一個區域的複數個邏輯位址係連續的,以及複數個邏輯位址在複數個區域之間不重疊;根據分區命名空間的一配置來產生參數資訊;以及將參數資訊傳送至主機裝置,以供主機裝置利用參數資訊來設置複數個區域。
根據本發明一實施例,提供了一種快閃記憶體控制器,其中快閃記憶體控制器係用以存取一快閃記憶體模組,快閃記憶體模組包含有複數個區塊,以及快閃記憶體控制器包含有用來儲存一程式碼的一唯讀記憶體以及用來執行程式碼以控制快閃記憶體模組之存取的一微處理器。微處理器另用以:自一主機裝置接收一設置命令;因應設置命令,將快閃記憶體模組的至少一部分配置為一分區命名空間,其中分區命名空間邏輯上包含有複數個區域,主機裝置對分區命名空間進行一基於區域的資料寫入操作,複數個區域的每一個區域具有一相同大小,對應於每一個區域的複數個邏輯位址係連續的,以及複數個邏輯位址在複數個區域之間不重疊;根據分區命名空間的一配置來產生參數資訊;以及將參數資訊傳送至主機裝置,以供主機裝置利用參數資訊來設置複數個區域。
根據本發明一實施例,提供了一種儲存裝置,其中儲存裝置包含有一快閃記憶體模組以及一快閃記憶體控制器。快閃記憶體模組包含有複數個區塊,而快閃記憶體控制器係用以存取快閃記憶體模組,並且另用以:自一主機 裝置接收一設置命令;因應設置命令,將快閃記憶體模組的至少一部分配置為一分區命名空間,其中分區命名空間邏輯上包含有複數個區域,主機裝置對分區命名空間進行一基於區域的資料寫入操作,複數個區域的每一個區域具有一相同大小,對應於每一個區域的複數個邏輯位址係連續的,以及複數個邏輯位址在複數個區域之間不重疊;根據分區命名空間的一配置來產生參數資訊;以及將參數資訊傳送至主機裝置,以供主機裝置利用參數資訊來設置複數個區域。
100:電子裝置
110:主機裝置
120_1~120_B:儲存裝置
122:快閃記憶體控制器
124:快閃記憶體模組
212:微處理器
212C:程式碼
212M:唯讀記憶體
214:控制邏輯
216:緩衝記憶體
218:介面邏輯
232:編碼器
234:解碼器
240:動態隨機存取記憶體
200,B1~BK:區塊
202:浮閘電晶體
BL1~BL3:位元線
WL0~WL6:字元線
410_1,410_2:分區命名空間
420_1,420_2:一般儲存空間
Z0~Z3:區域
LBA_k~LBA_(k+x-1):邏輯位址
600~608,1000~1008,1300~1314:步驟
CH_1~CH_N:通道
CE_1~CE_M:晶片啟用訊號
710_1~710_M,710_(M*(N-1)+1)~710_(M*N):邏輯單元
810_1~810_K,1110_1~1110_K,1120_1~1120_K:超級區塊
P1~PA:頁面
910_1~910_A,1210_1~1210_A:超級頁面
第1圖為依據本發明一實施例之電子裝置的示意圖。
第2圖為依據本發明一實施例之儲存裝置中的快閃記憶體控制器的示意圖。
第3圖為依據本發明一實施例之快閃記憶體模組中的一區塊的示意圖。
第4圖為包含有一般儲存空間以及分區命名空間的快閃記憶體模組的示意圖。
第5圖為被劃分為多個區域的分區命名空間的示意圖。
第6圖為依據本發明第一實施例之儲存裝置的初始化程序的流程圖。
第7圖為依據本發明一實施例之儲存裝置的一配置。
第8圖為依據本發明一實施例之快閃記憶體模組的超級區塊配置的示意圖。
第9圖為依據本發明一實施例之快閃記憶體模組的超級頁面配置的示意圖。
第10圖為依據本發明第二實施例之儲存裝置的初始化程序的流程圖。
第11圖為依據本發明另一實施例之快閃記憶體模組的超級區塊配置的示意圖。
第12圖為依據本發明另一實施例之快閃記憶體模組的超級頁面配置的示意圖。
第13圖為依據本發明第三實施例之儲存裝置的初始化程序的流程圖。
第1圖為依據本發明一實施例之電子裝置100的示意圖。如第1圖所示,電子裝置100可包含有主機裝置110以及複數個儲存裝置120_1~120_B,每一個儲存裝置(例如儲存裝置120_1)可包含有快閃記憶體控制器122以及快閃記憶體模組124,在本實施例中,儲存裝置120_1~120_B中的每一個儲存裝置可以是一固態硬碟(solid-state drive,SSD)或具有快閃記憶體模組的任何儲存裝置,主機裝置110可以是一中央處理單元(central processing unit,CPU)或可用以存取儲存裝置120_1~120_B的其它電子裝置或元件。電子裝置100可以是一伺服器、一個人電腦、一膝上型(筆記型)電腦或任何可攜式電子裝置,應注意的是,雖然第1圖繪示了儲存裝置120_1~120_B,但是在某些實施例中,電子裝置100可能僅具有單一儲存裝置120_1。
第2圖為依據本發明一實施例之儲存裝置120_1的示意圖。如第2圖所示,快閃記憶體控制器122可包含有微處理器212、唯讀記憶體(read only memory,ROM;為簡潔起見,在第2圖中標記為“ROM”)212M、控制邏輯(control logic)214、緩衝記憶體216以及介面邏輯(interface logic)218。唯讀記憶體212M可用以儲存程式碼212C,以及微處理器212可用以執行程式碼212C以控制快閃記憶體模組124的存取。控制邏輯214可包含有編碼器232以及解碼器234,其中編碼器232可用以編碼寫入至快閃記憶體模組124的資料,以產生相對應的檢查碼(check code;亦即錯誤校正碼(error correction code,ECC)),並且解碼器234可用以解碼自快閃記憶體模組124讀取的資料。
在一般情況中,快閃記憶體模組124可包含有複數個快閃記憶體晶片,並且每一個快閃記憶體晶片可包含有複數個區塊。快閃記憶體控制器122可對快閃記憶體模組124進行一基於區塊的抹除(erase)操作,此外,一區塊可具有 特定數量的頁面(page),其中快閃記憶體控制器122可對快閃記憶體模組124進行一基於頁面的寫入操作。在本實施例中,快閃記憶體模組124可以是一3D反及閘型(3D-NAND type)快閃記憶體模組。
實際上,透過微處理器212執行程式碼212C,快閃記憶體控制器122可利用其本身內部的元件來進行許多控制操作,舉例來說,快閃記憶體控制器122可利用控制邏輯214來控制快閃記憶體模組124的存取(尤其是,至少一區塊或至少一頁面的存取),利用緩衝記憶體216來進行所需的緩衝操作,以及利用介面邏輯218來與主機裝置110進行通訊。緩衝記憶體216可藉由隨機存取記憶體(random access memory,RAM)來實現,舉例來說,緩衝記憶體216可以是一靜態隨機存取記憶體(static random access memory,SRAM),但是本發明不以此為限。此外,快閃記憶體控制器122可耦接於動態隨機存取記憶體(dynamic random access memory,DRAM;為簡潔起見,在第2圖中標記為“DRAM”)240,應注意的是,動態隨機存取記憶體240可以一併被包含在快閃記憶體控制器122中,舉例來說,動態隨機存取記憶體240以及快閃記憶體控制器122可共存於同一個封裝(package)中。
在一實施例中,儲存裝置120_1可符合非揮發性記憶體主機控制器介面(non-volatile memory express,NVMe)規範,也就是說,介面邏輯218可符合一特定通訊規範,諸如外部組件互連(Peripheral Component Interconnect,PCI)規範或快速外部組件互連(Peripheral Component Interconnect Express,PCIe)規範,並且可根據該特定通訊規範來進行通訊,舉例來說,介面邏輯218可藉由一連結器來與主機裝置110進行通訊。
第3圖為依據本發明一實施例之在快閃記憶體模組124中的區塊200的示意圖,其中快閃記憶體模組124可以是一3D反及閘型快閃記憶體模組。如第3圖所示,區塊200可包含有複數個記憶體單元(memory cell),諸如第3圖所示之浮閘電晶體(floating gate transistor)202或其它電荷捕捉元件(charge trapping component),一3D反及閘型快閃記憶體架構可透過複數個位元線(bit line;在第3圖中僅繪示位元線BL1~位元線BL3)以及複數個字元線(word line;在第3圖中僅繪示字元線WL0~字元線WL2以及字元線WL4~字元線WL6)來形成,以第3圖中最上方平面為例,在字元線WL0上的所有浮閘電晶體形成至少一頁面、在字元線WL1上的所有浮閘電晶體形成至少另一頁面以及在字元線WL2上的所有浮閘電晶體形成至少再另一頁面,以此類推。此外,字元線WL0與頁面(例如邏輯頁面(logic page))之間的定義可以根據快閃記憶體之寫入方法而有所變化,詳細地來說,當利用單層單元(single-level cell,SLC)的方式來儲存資料時,在字元線WL0上的所有浮閘電晶體僅對應到單一邏輯頁面;當利用多層單元(multi-level cell,MLC)的方式來儲存資料時,在字元線WL0上的所有浮閘電晶體對應到兩個邏輯頁面;當利用三層單元(triple-level cell,TLC)的方式來儲存資料時,在字元線WL0上的所有浮閘電晶體對應到三個邏輯頁面;以及當利用四層單元(quad-level cell,QLC)的方式來儲存資料時,在字元線WL0上的所有浮閘電晶體對應到四個邏輯頁面。3D反及閘型快閃記憶體架構以及字元線與頁面之間的關係已為本領域具有通常知識者所熟知,為了簡潔起見,在此不再重複描述相關細節。
在本實施例中,主機裝置110可藉由傳送一設置命令集(settling command set;諸如一分區命名空間(zoned namespace)命令集)來將快閃記憶體模組124的至少一部分配置成一分區命名空間。請參照第4圖,主機裝置110可將 一設置命令集傳送至快閃記憶體控制器122,以使得快閃記憶體模組124具有至少一分區命名空間(在本實施例中,以分區命名空間410_1以及分區命名空間410_2為例)以及至少一一般儲存空間(general storage space;在本實施例中,以一般儲存空間420_1以及一般儲存空間420_2為例)。分區命名空間410_1可被劃分成多個區域(zone)以供存取,並且主機裝置110必須在分區命名空間410_1中進行一基於邏輯區塊位址(logical block address,LBA)的資料寫入操作,一邏輯區塊位址(簡稱為邏輯位址)可代表一筆512位元組(byte)的資料或一筆4千位元組(kilobyte,KB)的資料,並且主機裝置110需要藉由連續邏輯位址來將資料寫入至一區域中,具體來說,請參照第5圖,分區命名空間410_1可被劃分為多個區域(例如區域Z0~區域Z3),其中區域大小係藉由主機裝置110來設置,並且每一個區域的大小皆相等。此外,每一個區域中的邏輯位址必須是連續的,以及區域之間不存在重疊邏輯位址(亦即一邏輯位址僅可存在於一區域中),舉例來說,倘若每一個區域的大小是“x”個邏輯位址以及區域Z3的起始邏輯位址(starting logical address)是邏輯位址LBA_k的話,則區域Z3係用以利用邏輯位址LBA_k、邏輯位址LBA_(k+1)、邏輯位址LBA_(k+2)、邏輯位址LBA_(k+3)...以及邏輯位址LBA_(k+x-1)來儲存資料。在一實施例中,相鄰區域的邏輯位址亦可以是連續的,舉例來說,區域Z0係用以利用邏輯位址LBA_1~LBA_2000來儲存資料,區域Z1係用以利用邏輯位址LBA_2001~LBA_4000來儲存資料,區域Z2係用以利用邏輯位址LBA_4001~LBA_6000來儲存資料,區域Z3係用以利用邏輯位址LBA_6001~LBA_8000來儲存資料,以此類推。此外,對應於一邏輯位址的資料量可以藉由主機裝置110來決定,舉例來說,對應於一邏輯位址的資料量可以是4千位元組。
此外,當資料被寫入至每一個區域時,該資料係根據該資料之邏輯 位址的順序來被寫入,詳細地來說,快閃記憶體控制器122可根據已寫入資料來設置一寫入點(write point),以控制資料的寫入順序。假設區域Z1係用以利用邏輯位址LBA_2001~邏輯位址LBA_4000來儲存資料,在主機裝置110將對應於邏輯位址LBA_2001~邏輯位址LBA_2051的資料傳送至快閃記憶體控制器122之後,快閃記憶體控制器122可將寫入點設置至下一個邏輯位址LBA_2052,倘若主機裝置110隨後傳送屬於相同區域但不具有邏輯位址LBA_2052的資料的話(例如主機裝置110傳送具有邏輯位址LBA_3000的資料),則快閃記憶體控制器122可拒絕資料寫入操作並且將寫入失敗的訊息回傳至主機裝置110;換句話說,僅當接收到的資料的邏輯位址與寫入點所指出的邏輯位址相同時,快閃記憶體控制器122才會允許資料寫入操作。此外,倘若在多個區域中的資料被交替地寫入的話,每一個區域可具有自己的寫入點。
為了使得分區命名空間410_1與410_2在主機裝置110與儲存裝置120_1的控制下可正常運作,需適當地決定每一個區域的大小。第6圖為依據本發明第一實施例之儲存裝置120_1的初始化程序的流程圖。
在步驟600中,流程開始,快閃記憶體模組124尚未開始進行配置。
在步驟602中,主機裝置110開始啟動(activate)儲存裝置120_1,並且主機裝置將一設置命令集傳送至快閃記憶體控制器122。
在步驟604中,快閃記憶體控制器122開始基於一最佳性能或頻寬設定來配置快閃記憶體模組124,以產生參數資訊。具體上來說,假設快閃記憶體模組124包含有複數個通道CH_1~CH_N,以及通道CH_1~CH_N中的每一個通道 對應於藉由利用晶片啟用訊號(chip enable signal)CE_1~CE_M來啟用的複數個邏輯單元(logical unit,LUN),舉例來說,以第7圖為例,第7圖為依據本發明一實施例之儲存裝置的一配置,其中通道CH_1對應於藉由利用晶片啟用訊號CE_1~CE_M來啟用的邏輯單元710_1~710_M,以及通道CH_N對應於藉由利用晶片啟用訊號CE_1~CE_M來啟用的邏輯單元710_(M*(N-1)+1)~710_(M*N)。在本實施例中,通道CH_1~CH_N可以被平行處理以同時地存取相對應的邏輯單元的其一,舉例來說,當晶片啟用訊號CE_1被啟用以及其它晶片啟用訊號被停用(disable)時,每一個通道的第一個邏輯單元被允許藉由主機裝置110來存取;當晶片啟用訊號CE_2被啟用以及其它晶片啟用訊號被停用時,每一個通道的第二個邏輯單元被允許藉由主機裝置110來存取;以此類推。此外,每一個邏輯單元可以是快閃記憶體模組124內的一裸晶(die),或一裸晶可包含有兩個或更多個邏輯單元。
在一實施例中,通道的數量以及晶片啟用訊號的數量可以根據設計需求來決定,舉例來說,儲存裝置120_1可具有16個通道以及4個晶片啟用訊號(亦即N=16,而M=4)。
由於快閃記憶體模組124支援通道CH_1~CH_N,並且通道CH_1~CH_N可被同時地存取,因此快閃記憶體控制器122可基於快閃記憶體模組124所支援的通道的數量來配置快閃記憶體模組124。
第8圖為依據本發明一實施例之快閃記憶體模組的超級區塊(super block)配置的示意圖。如第8圖所示,邏輯單元710_1~710_(M*N)中的每一個邏輯單元可包含有複數個區塊B1~BK。在超級區塊配置的過程中,快閃記憶體控制 器122可將所有邏輯單元710_1~710_(M*N)中的區塊B1配置為超級區塊810_1,將所有邏輯單元710_1~710_(M*N)中的區塊B2配置為超級區塊810_2,將所有邏輯單元710_1~710_(M*N)中的區塊B3配置為超級區塊810_3,...,以及將所有邏輯單元710_1~710_(M*N)中的區塊BK配置為超級區塊810_K。超級區塊是藉由快閃記憶體控制器122來設置的一邏輯收集區塊,以便於儲存裝置120_1的管理,並且不是一實體收集區塊。在第8圖中,超級區塊810_1可包含有M*N個區塊B1,並且當存取超級區塊810_1時,快閃記憶體控制器122可將超級區塊810_1視為一正常區塊,舉例來說,超級區塊810_1本身為一抹除單元,亦即,雖然超級區塊810_1的M*N個區塊B1可以被單獨地抹除,但快閃記憶體控制器110仍需一起抹除M*N個區塊B1。在本實施例中,快閃記憶體控制器122可暫時地決定與一超級區塊的大小相等的區域。
第9圖為依據本發明一實施例之快閃記憶體模組的超級頁面(super page)配置的示意圖。以超級區塊810_1為例,每一個區塊B1可包含有複數個頁面P1~PA。在超級頁面配置的過程中,快閃記憶體控制器122可將所有邏輯單元710_1~710_(M*N)之區塊B1的頁面P1配置為一超級頁面910_1,將所有邏輯單元710_1~710_(M*N)之區塊B1的頁面P2配置為一超級頁面910_2,將所有邏輯單元710_1~710_(M*N)之區塊B1的頁面P3配置為一超級頁面910_3,...,以及將所有邏輯單元710_1~710_(M*N)之區塊B1的頁面PA配置為一超級頁面910_A。此外,針對超級區塊810_1的資料寫入操作,超級頁面910_1~910_A藉由快閃記憶體控制器122來依序地寫入,換句話說,快閃記憶體控制器122不會開始超級頁面910_2的資料寫入操作直到超級頁面910_1的資料寫入操作完成。
在上述快閃記憶體模組124的配置完成之後,快閃記憶體控制器122 可產生參數資訊,其中參數資訊包含有一區域大小(亦即一超級區塊的大小)、一區塊大小、一頁面大小、一超級頁面大小、一區塊中的頁面數量、對應於一超級區塊的邏輯單元的數量以及快閃記憶體模組124所支援的區域數量(亦即分區命名空間內的超級區塊的數量,例如第8圖中的數值“K”)。
在步驟606中,快閃記憶體控制器122將參數資訊傳送至主機裝置110。
在步驟608中,主機裝置自快閃記憶體控制器122接收參數資訊,並利用參數資訊來設定區域。舉例來說,當傳送區域的資料時,主機裝置110直接地利用快閃記憶體控制器122所提供的區域大小(亦即一超級區塊的大小)來作為後續設定。
在第6圖至第9圖所示之實施例中,藉由利用快閃記憶體控制器122來主動地偵測快閃記憶體模組124的通道數量以決定具有最佳性能或最佳頻寬的區域大小,並且快閃記憶體控制器122直接地通知主機裝置110來利用該區域大小以進行後續區域設定以及資料傳輸,主機裝置110可以較佳的效率與性能來存取儲存裝置120_1。
第10圖為依據本發明第二實施例之儲存裝置的初始化程序的流程圖。
在步驟1000中,流程開始,快閃記憶體模組124尚未開始進行配置。
在步驟1002中,主機裝置110開始啟動儲存裝置120_1,並且主機裝置將一設置命令集傳送至快閃記憶體控制器122。
在步驟1004中,快閃記憶體控制器122將複數個配置設定傳送至主機裝置110,其中該複數個配置設定包含有至少兩個不同的區域大小。
在一實施例中,該複數個配置設定中的一配置設定可以是第8圖所示之超級區塊配置以及第9圖所示之超級頁面配置,亦即,該配置設定可包含有與M*N個區塊相等的區域大小(超級區塊的大小)。此外,該配置設定可另包含有一區塊大小、一頁面大小、一超級頁面大小、一區塊中的頁面數量、對應於一超級快的邏輯單元數量以及快閃記憶體模組124所支援的區域數量(例如第8圖中的數值“K”)。
在一實施例中,該複數個配置設定可具有僅對應於複數個通道之一部分的一超級區塊配置。以第11圖為例,對應於通道CH_1~CH_(N/2)的邏輯單元710_1~710_(M*N/2)中的每一個邏輯單元可包含有複數個區塊B1~BK。在超級區塊配置的過程中,快閃記憶體控制器122可將所有邏輯單元710_1~710_(M*N/2)的區塊B1配置為超級區塊1110_1,將所有邏輯單元710_1~710_(M*N/2)的區塊B2配置為超級區塊1110_2,將所有邏輯單元710_1~710_(M*N/2)的區塊B3配置為超級區塊1110_3,...,以及將所有邏輯單元710_1~710_(M*N/2)的區塊BK配置為超級區塊1110_K。此外,對應於通道CH_(N/2+1)~CH_(N)之邏輯單元710_(M*N/2+1)~710_(M*N)中的每一個邏輯單元可包含有複數個區塊B1~BK,並且快閃記憶體控制器122可將所有邏輯單元710_(M*N/2+1)~710_(M*N)中的區塊B1配置為超級區塊1120_1,將所有邏輯單 元710_(M*N/2+1)~710_(M*N)中的區塊B2配置為超級區塊1120_2,將所有邏輯單元710_(M*N/2+1)~710_(M*N)中的區塊B3配置為超級區塊1120_3,...,以及將所有邏輯單元710_(M*N/2+1)~710_(M*N)中的區塊BK配置為超級區塊1120_K。在第11圖中,超級區塊1110_1包含有M*N/2個區塊B1,並且當存取超級區塊1110_1時,快閃記憶體控制器122可將超級區塊1110_1視為一正常區塊,舉例來說,超級區塊1110_1本身是一抹除單元,亦即,雖然超級區塊1110_1的M*N/2個區塊B1可以單獨地抹除,但快閃記憶體控制器122需一起抹除M*N/2個區塊B1。在本實施例中,快閃記憶體控制器122可暫時地決定與一超級區塊之大小相等的區域。
第12圖為依據本發明另一實施例之快閃記憶體模組的超級頁面配置的示意圖。以超級區塊1110_1為例,多個區塊B1中的每一個區塊B1可包含有複數個頁面P1~PA,在超級頁面配置的過程中,快閃記憶體控制器122可將所有邏輯單元710_1~710_(M*N/2)之區塊B1的頁面P1配置為超級頁面1210_1,將所有邏輯單元710_1~710_(M*N/2)之區塊B1的頁面P2配置為超級頁面1210_2,將所有邏輯單元710_1~710_(M*N/2)之區塊B1的頁面P3配置為超級頁面1210_3,...,以及將所有邏輯單元710_1~710_(M*N/2)之區塊B1的頁面PA配置為超級頁面1210_A。此外,針對超級區塊1110_1的資料寫入,超級頁面1210_1~1210_A係藉由快閃記憶體控制器122來依序地寫入,亦即,快閃記憶體控制器122不會開始進行超級頁面1210_2的資料寫入直到完成超級頁面1210_1的資料寫入。
在本實施例中,複數個配置設定中的一配置設定可以是第10圖所示之超級區塊配置以及第11圖所示之超級頁面配置,亦即,該配置設定可包含有與M*N/2個區塊相等的區域大小(例如超級區塊的大小)。此外,該配置設定可 另包含有區塊大小、頁面大小、超級頁面大小、一區塊中的頁面數量、對應於一超級區塊的邏輯單元數量、快閃記憶體模組124所支援的區域數量(亦即“2K”,其中“K”係第8圖所示之數值)。
在某些實施例中,該複數個配置設定可具有對應於不同通道的超級區塊配置,舉例說,每一個超級區塊可包含有2個或3個通道的區塊,亦即,區域大小可以與2*M個區塊或3*M個區塊相等。
在步驟1006中,在自快閃記憶體控制器122接收到複數個配置設定之後,主機裝置110可根據其本身的應用來擇取該複數個配置設定的其一,舉例來說,倘若主機裝置110藉由連續邏輯位址來將資料寫入至儲存裝置120_1的話,則主機裝置110可擇取具有較高頻寬的配置設定(例如第8圖與第9圖所示之實施例);以及倘若主機裝置110將隨機資料寫入至儲存裝置120_1的話,則主機裝置110可擇取具有較小頻寬的配置設定(例如第11圖與第12圖所示之實施例)。接著,主機裝置110可傳送指示該複數個配置設定中的哪一個配置設定要被快閃記憶體控制器122所擇取的一回應。
在步驟1008中,快閃記憶體控制器122自主機裝置110接收該回應,並利用擇取的配置設定來開始配置快閃記憶體模組124,舉例來說,倘若主機裝置110擇取區域大小與M*N個區塊相等的配置設定的話,則快閃記憶體控制器122可將快閃記憶體模組124配置為第8圖與第9圖所示之實施例。倘若主機裝置110擇取區域大小與M*N/2個區塊相等的配置設定的話,則快閃記憶體控制器122可將快閃記憶體模組124配置為第11圖與第12圖所示之實施例。
在第10圖至第12圖所示之實施例中,藉由利用快閃記憶體控制器122來提供複數個配置設定,主機裝置110可基於其本身的應用來擇取最適合的配置設定,以供快閃記憶體控制器122來進行超級區塊配置以及超級頁面配置。因此,主機裝置110可以較佳的效率與性能來存取儲存裝置120_1。
第13圖為依據本發明第三實施例之儲存裝置的初始化程序的流程圖。
在步驟1300中,流程開始,快閃記憶體模組124尚未開始進行配置。
在步驟1302中,主機裝置110開始啟動儲存裝置120_1,並將一設置命令集傳送至快閃記憶體控制器122。
在步驟1304中,快閃記憶體控制器122開始基於一最佳性能或頻寬設定來配置快閃記憶體模組124,以產生參數資訊。舉例來說,快閃記憶體控制器122可將快閃記憶體模組124配置為第8圖與第9圖所示之實施例。在完成上述快閃記憶體模組124的配置之後,快閃記憶體控制器122可產生參數資訊,其中參數資訊包含有區域大小(亦即一超級區塊的大小)、區塊大小、頁面大小、超級頁面大小、一區塊中的頁面數量、對應於一超級區塊的邏輯單元數量、快閃記憶體模組124所支援的區域數量(亦即第8圖所示之數值“K”)。
在步驟1306中,快閃記憶體控制器122可將參數資訊傳送至主機裝置110。
在步驟1308中,快閃記憶體控制器122可將複數個配置設定傳送至主機裝置110,其中該複數個配置設定可包含有至少兩個不同的區域大小,以及該複數個配置設定的內容可參考上述第10圖所示之實施例。
在步驟1310中,主機裝置110可判斷是否直接地利用參數資訊或擇取其區域大小與參數資訊不同的一配置設定,倘若主機裝置110擇取該複數個配置設定的其一的話,則進入步驟1312;否則,進入步驟1314。
在步驟1312中,主機裝置110可傳送指示該複數個配置設定中的哪一個配置設定要被快閃記憶體控制器122所擇取的一回應,並且快閃記憶體控制器112可對分區命名空間(例如分區命名空間410_1)進行格式化,並利用擇取的配置設定來配置快閃記憶體模組124的分區命名空間。舉例來說,第8圖所示之超級區塊配置被格式化,並進行第11圖所示之新的超級區塊配置。
在步驟1314中,主機裝置110自快閃記憶體控制器122接收參數資訊,並利用參數資訊來設定區域,舉例來說,當傳送區域的資料時,主機裝置110直接地利用快閃記憶體控制器122所提供的區域大小(例如一超級區塊的大小)來作為後續設定。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
1300~1314:步驟

Claims (9)

  1. 一種快閃記憶體控制器的控制方法,其中該快閃記憶體控制器係用以存取一快閃記憶體模組,該快閃記憶體模組包含有複數個區塊,以及該控制方法包含有:自一主機裝置接收一設置命令;因應該設置命令,將該快閃記憶體模組的至少一部分配置為一分區命名空間,其中該分區命名空間邏輯上包含有複數個區域,該主機裝置對該分區命名空間進行一基於區域的資料寫入操作,該複數個區域的每一個區域具有一相同大小,對應於該每一個區域的複數個邏輯位址係連續的,以及該複數個邏輯位址在該複數個區域之間不重疊;根據該分區命名空間的一配置來產生參數資訊,其中該參數資訊包含有該每一個區域的一區域大小;以及將該參數資訊傳送至該主機裝置,以供該主機裝置利用該參數資訊來設置該複數個區域;其中將該快閃記憶體模組的至少一部分配置為該分區命名空間的步驟包含有:將該分區命名空間配置為具有複數個超級區塊,其中該複數個超級區塊的每一個超級區塊包含有分別位於不同邏輯單元的複數個區塊;以及決定與該每一個超級區塊的一大小相等的該區域大小;其中該快閃記憶體控制器係用以透過複數個通道來存取該快閃記憶體模組,並且該複數個通道的每一個通道對應於分別藉由利用複數個晶片啟用訊號來啟用的複數個邏輯單元;以及該每一個超級區塊包含有分別位於所有的該複數個邏輯單元的該複數個區塊。
  2. 一種快閃記憶體控制器的控制方法,其中該快閃記憶體控制器係用以存取一快閃記憶體模組,該快閃記憶體模組包含有複數個區塊,以及該控制方法包含有:自一主機裝置接收一設置命令;因應該設置命令,將該快閃記憶體模組的至少一部分配置為一分區命名空間,其中該分區命名空間邏輯上包含有複數個區域,該主機裝置對該分區命名空間進行一基於區域的資料寫入操作,該複數個區域的每一個區域具有一相同大小,對應於該每一個區域的複數個邏輯位址係連續的,以及該複數個邏輯位址在該複數個區域之間不重疊;根據該分區命名空間的一配置來產生參數資訊;將該參數資訊傳送至該主機裝置,以供該主機裝置利用該參數資訊來設置該複數個區域;將複數個配置設定傳送至該主機裝置;接收用來指示該複數個配置設定中的哪一個配置設定要被擇取的一回應;倘若擇取的配置設定係不同於該分區命名空間的一目前配置的話,則對該分區命名空間進行格式化;以及利用該擇取的配置設定來配置該分區命名空間。
  3. 如申請專利範圍第2項所述之控制方法,其中該複數個配置設定具有至少兩個不同的區域大小。
  4. 一種快閃記憶體控制器,其中該快閃記憶體控制器係用以存取一快閃記憶體模組,該快閃記憶體模組包含有複數個區塊,以及該快閃記憶體 控制器包含有:一唯讀記憶體,用以儲存一程式碼;以及一微處理器,用以執行該程式碼來控制該快閃記憶體模組的存取;其中該微處理器另用以:自一主機裝置接收一設置命令;因應該設置命令,將該快閃記憶體模組的至少一部分配置為一分區命名空間,其中該分區命名空間邏輯上包含有複數個區域,該主機裝置對該分區命名空間進行一基於區域的資料寫入操作,該複數個區域的每一個區域具有一相同大小,對應於該每一個區域的複數個邏輯位址係連續的,以及該複數個邏輯位址在該複數個區域之間不重疊;根據該分區命名空間的一配置來產生參數資訊,其中該參數資訊包含有該每一個區域的一區域大小;以及將該參數資訊傳送至該主機裝置,以供該主機裝置利用該參數資訊來設置該複數個區域;其中將該快閃記憶體模組的至少一部分配置為該分區命名空間的步驟包含有:將該分區命名空間配置為具有複數個超級區塊,其中該複數個超級區塊的每一個超級區塊包含有分別位於不同邏輯單元的複數個區塊;以及決定與該每一個超級區塊的一大小相等的該區域大小;其中該快閃記憶體控制器係用以透過複數個通道來存取該快閃記憶體模組,並且該複數個通道的每一個通道對應於分別藉由利用複數個晶片啟用訊號來啟用的複數個邏輯單元;以及該每一個超級區塊包含有分別位於所有的該複數個邏輯單元的該複數個區塊。
  5. 一種快閃記憶體控制器,其中該快閃記憶體控制器係用以存取一快閃記憶體模組,該快閃記憶體模組包含有複數個區塊,以及該快閃記憶體控制器包含有:一唯讀記憶體,用以儲存一程式碼;以及一微處理器,用以執行該程式碼來控制該快閃記憶體模組的存取;其中該微處理器另用以:自一主機裝置接收一設置命令;因應該設置命令,將該快閃記憶體模組的至少一部分配置為一分區命名空間,其中該分區命名空間邏輯上包含有複數個區域,該主機裝置對該分區命名空間進行一基於區域的資料寫入操作,該複數個區域的每一個區域具有一相同大小,對應於該每一個區域的複數個邏輯位址係連續的,以及該複數個邏輯位址在該複數個區域之間不重疊;根據該分區命名空間的一配置來產生參數資訊;將該參數資訊傳送至該主機裝置,以供該主機裝置利用該參數資訊來設置該複數個區域;將複數個配置設定傳送至該主機裝置;接收用來指示該複數個配置設定中的哪一個配置設定要被擇取的一回應;倘若擇取的配置設定係不同於該分區命名空間的一目前配置的話,則對該分區命名空間進行格式化;以及利用該擇取的配置設定來配置該分區命名空間。
  6. 如申請專利範圍第5項所述之快閃記憶體控制器,其中該複數個配置設定具有至少兩個不同的區域大小。
  7. 一種儲存裝置,包含有:一快閃記憶體模組,包含有複數個區塊;以及一快閃記憶體控制器,用以存取該快閃記憶體模組;其中該快閃記憶體控制器另用以:自一主機裝置接收一設置命令;因應該設置命令,將該快閃記憶體模組的至少一部分配置為一分區命名空間,其中該分區命名空間邏輯上包含有複數個區域,該主機裝置對該分區命名空間進行一基於區域的資料寫入操作,該複數個區域的每一個區域具有一相同大小,對應於該每一個區域的複數個邏輯位址係連續的,以及該複數個邏輯位址在該複數個區域之間不重疊;根據該分區命名空間的一配置來產生參數資訊,其中該參數資訊包含有該每一個區域的一區域大小;以及將該參數資訊傳送至該主機裝置,以供該主機裝置利用該參數資訊來設置該複數個區域;其中將該快閃記憶體模組的至少一部分配置為該分區命名空間的步驟包含有:將該分區命名空間配置為具有複數個超級區塊,其中該複數個超級區塊的每一個超級區塊包含有分別位於不同邏輯單元的複數個區塊;以及決定與該每一個超級區塊的一大小相等的該區域大小;其中該快閃記憶體控制器係用以透過複數個通道來存取該快閃記憶體模組,並且該複數個通道的每一個通道對應於分別藉由利用複數個 晶片啟用訊號來啟用的複數個邏輯單元;以及該每一個超級區塊包含有分別位於所有的該複數個邏輯單元的該複數個區塊。
  8. 一種儲存裝置,包含有:一快閃記憶體模組,包含有複數個區塊;以及一快閃記憶體控制器,用以存取該快閃記憶體模組;其中該快閃記憶體控制器另用以:自一主機裝置接收一設置命令;因應該設置命令,將該快閃記憶體模組的至少一部分配置為一分區命名空間,其中該分區命名空間邏輯上包含有複數個區域,該主機裝置對該分區命名空間進行一基於區域的資料寫入操作,該複數個區域的每一個區域具有一相同大小,對應於該每一個區域的複數個邏輯位址係連續的,以及該複數個邏輯位址在該複數個區域之間不重疊;根據該分區命名空間的一配置來產生參數資訊;將該參數資訊傳送至該主機裝置,以供該主機裝置利用該參數資訊來設置該複數個區域;將複數個配置設定傳送至該主機裝置;接收用來指示該複數個配置設定中的哪一個配置設定要被擇取的一回應;倘若擇取的配置設定係不同於該分區命名空間的一目前配置的話,則對該分區命名空間進行格式化;以及利用該擇取的配置設定來配置該分區命名空間。
  9. 如申請專利範圍第8項所述之儲存裝置,其中該複數個配置設定具 有至少兩個不同的區域大小。
TW113103305A 2023-03-20 2024-01-29 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 TWI867952B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US18/123,336 US12254202B2 (en) 2023-03-20 2023-03-20 Control method of flash memory controller and associated flash memory controller and storage device
US18/123,336 2023-03-20

Publications (2)

Publication Number Publication Date
TW202439115A TW202439115A (zh) 2024-10-01
TWI867952B true TWI867952B (zh) 2024-12-21

Family

ID=92716727

Family Applications (1)

Application Number Title Priority Date Filing Date
TW113103305A TWI867952B (zh) 2023-03-20 2024-01-29 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置

Country Status (3)

Country Link
US (1) US12254202B2 (zh)
CN (1) CN118672937A (zh)
TW (1) TWI867952B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200167274A1 (en) * 2019-12-20 2020-05-28 Intel Corporation Zoned namespace with zone grouping
KR20220098894A (ko) * 2021-01-05 2022-07-12 삼성전자주식회사 비휘발성 메모리 장치를 포함하는 스토리지 장치 및 비휘발성 메모리 장치의 동작 방법
CN115114059A (zh) * 2021-03-19 2022-09-27 美光科技公司 使用区来管理归因于存储装置故障的容量减小
TW202240397A (zh) * 2021-03-31 2022-10-16 慧榮科技股份有限公司 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489052B (zh) * 2018-05-14 2022-11-25 慧荣科技股份有限公司 数据储存装置
US11726679B2 (en) * 2019-11-05 2023-08-15 Western Digital Technologies, Inc. Applying endurance groups to zoned namespaces
US20200089407A1 (en) * 2019-11-22 2020-03-19 Intel Corporation Inter zone write for zoned namespaces
JP7346311B2 (ja) * 2020-01-16 2023-09-19 キオクシア株式会社 メモリシステム
US11194489B2 (en) * 2020-04-27 2021-12-07 Western Digital Technologies, Inc. Zone-based device with control level selected by the host
US11200162B2 (en) * 2020-04-28 2021-12-14 Western Digital Technologies, Inc. Condensing logical to physical table pointers in SSDs utilizing zoned namespaces
US11340986B1 (en) * 2020-12-08 2022-05-24 Western Digital Technologies, Inc. Host-assisted storage device error correction
US11941273B2 (en) * 2022-05-12 2024-03-26 Western Digital Technologies, Inc. Variable capacity Zone Namespace (ZNS) flash storage data path

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200167274A1 (en) * 2019-12-20 2020-05-28 Intel Corporation Zoned namespace with zone grouping
KR20220098894A (ko) * 2021-01-05 2022-07-12 삼성전자주식회사 비휘발성 메모리 장치를 포함하는 스토리지 장치 및 비휘발성 메모리 장치의 동작 방법
CN115114059A (zh) * 2021-03-19 2022-09-27 美光科技公司 使用区来管理归因于存储装置故障的容量减小
TW202240397A (zh) * 2021-03-31 2022-10-16 慧榮科技股份有限公司 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置

Also Published As

Publication number Publication date
CN118672937A (zh) 2024-09-20
US12254202B2 (en) 2025-03-18
TW202439115A (zh) 2024-10-01
US20240319897A1 (en) 2024-09-26

Similar Documents

Publication Publication Date Title
CN115145478B (zh) 快闪存储器控制器的控制方法、快闪存储器控制器以及储存装置
CN106484316B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
TWI807674B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置
TWI859853B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置
CN104346292B (zh) 用来管理一记忆装置的方法、记忆装置与控制器
CN104346288B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
CN111399751B (zh) 闪存控制器、管理闪存模块的方法及相关的电子装置
TWI867952B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置
TWI837829B (zh) 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置
TW202028967A (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI883837B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置
TW202203030A (zh) 電子裝置、快閃記憶體控制器及其存取方法
TWI523016B (zh) 用來管理一記憶裝置之方法以及記憶裝置與控制器
TWI864944B (zh) 控制快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
US12079483B2 (en) Method for accessing flash memory module, flash memory controller, and memory device
US11392326B2 (en) Memory device and method of operating the memory device
TWI852008B (zh) 快閃記憶體控制器與電子裝置