TWI708144B - 快閃記憶體的命名空間操作裝置及電腦程式產品 - Google Patents

快閃記憶體的命名空間操作裝置及電腦程式產品 Download PDF

Info

Publication number
TWI708144B
TWI708144B TW108139846A TW108139846A TWI708144B TW I708144 B TWI708144 B TW I708144B TW 108139846 A TW108139846 A TW 108139846A TW 108139846 A TW108139846 A TW 108139846A TW I708144 B TWI708144 B TW I708144B
Authority
TW
Taiwan
Prior art keywords
namespace
logical
length
address
updated
Prior art date
Application number
TW108139846A
Other languages
English (en)
Other versions
TW202018514A (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 TW202018514A publication Critical patent/TW202018514A/zh
Application granted granted Critical
Publication of TWI708144B publication Critical patent/TWI708144B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明提出一種快閃記憶體的命名空間操作裝置,包含:快閃控制器及處理單元。處理單元從主裝置接收命名空間設定更新命令,請求更新儲存單元的命名空間的命名空間長度;判斷是否能夠支援更新後的命名空間長度;以及當能夠支援更新後的命名空間長度時,更新命名空間的邏輯-實體對照表,用來允許命名空間儲存更新後的命名空間長度的使用者資料。

Description

快閃記憶體的命名空間操作裝置及電腦程式產品
本發明涉及儲存裝置,尤指一種快閃記憶體的命名空間操作裝置及電腦程式產品。
快閃記憶裝置通常分為NOR快閃記憶裝置與NAND快閃記憶裝置。NOR快閃記憶裝置為隨機存取裝置,主裝置(Host)可於位址腳位上提供任何存取NOR快閃記憶裝置的位址,並及時地從NOR快閃記憶裝置的資料腳位上獲得儲存於該位址上的資料。相反地,NAND快閃記憶裝置並非隨機存取,而是序列存取。NAND快閃記憶裝置無法像NOR快閃記憶裝置一樣,可以存取任何隨機位址,主裝置反而需要寫入序列的位元組(Bytes)的值到NAND快閃記憶裝置中,用以定義請求命令(Command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(快閃記憶裝置中寫入作業的最小資料塊)或一個區塊(快閃記憶裝置中抹除作業的最小資料塊)。
快速非揮發性記憶體(Non-Volatile Memory Express,NVMe)的命名空間管理命令(Namespace Management command)可用來建立(Create)及刪除(Delete)命名空間。除了以上所述的操作外,使用者可能需要增加命名空間的長度或在不同命名空間之間進行資料搬移的進階操作。然而,目前的規範並不支援這些進階操作。因此,本發明提出一種快閃記憶裝置的命名空間操作方法及裝置,用以支援這些進階 操作。
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。
本發明提出一種快閃記憶體的命名空間操作裝置,包含:快閃控制器及處理單元。快閃控制器耦接儲存單元,並且處理單元耦接快閃控制器。處理單元從主裝置接收命名空間設定更新命令,請求更新儲存單元的命名空間的命名空間長度;判斷是否能夠支援該更新後的命名空間長度;以及當能夠支援該更新後的命名空間長度時,更新命名空間的邏輯-實體對照表,允許此命名空間儲存更新後的命名空間長度的使用者資料。其中,命名空間長度表示邏輯區塊的總數目,並且邏輯-實體對照表儲存相應於每一邏輯區塊的儲存單元中的實體位址資訊。
本發明另提出一種快閃記憶體的命名空間操作裝置,包含:快閃控制器及處理單元。快閃控制器耦接儲存單元,並且處理單元耦接快閃控制器。處理單元從主裝置接收跨命名空間資料搬移命令,請求將儲存單元中的第一命名空間的第一邏輯位址的使用者資料搬移至儲存單元中的第二命名空間的第二邏輯位址的儲存空間;以及驅動快閃控制器將第一邏輯-實體對照表中第一邏輯位址所對應的第一實體位址資訊貼上第二邏輯-實體對照表中第二邏輯位址所對應的項目。其中第一邏輯-實體對照表相應於第一命名空間,以及第二邏輯-實體對照表相應於第二命名空間。
本發明更提出一種電腦程式產品,用於快閃記憶體的命名空間操作,包含可被處理單元載入並執行的程式碼,以完成如上所述的操作。
上述實施例的優點之一,當命名空間被建立及依附後,還允許主裝置可以增加此命名空間的長度及容量。
上述實施例的另一優點,因為不牽涉不同命名空間的任何實際的使 用者資料搬移,避免耗費空間及頻寬來儲存及傳輸一連串的讀取及寫入命令以及完成元件。
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。
100:快閃記憶系統架構
110:主裝置
120、131:隨機存取記憶體
130:儲存裝置
133:處理單元
135:快閃控制器
137:存取介面
137_0:存取子介面
139:儲存單元
139_0_0~139_0_i:儲存子單元
210:資料線
230_0~230_i:晶片致能控制訊號
310、1210、1230、1710、1730:邏輯-實體對照表
330、330-0~330-3:實體位址資訊
350:實體區塊
351:實體區域
410、430、450、470:輸出入通道
410_0~410_m、430_0~430_m、450_0~450_m、470_0~470_m:資料平面
490_0~490_n:超頁面
P#0~p#(n):實體頁面
510、530:佇列
S611~S636、S1110~S1170、S1610~S1640:方法步驟
712、732、752、812、832、912、1412:命令
714、734、754、814、834、914、1414:執行結果
720、740、760、780、820、840、920、1420:操作
1010~1070、1510~1570:欄位
1310~1340、1810~1830:程式模塊
圖1為依據本發明實施例的快閃記憶體的系統架構示意圖。
圖2為存取子介面與多個儲存子單元的連接示意圖。
圖3為實體儲存對照示意圖。
圖4為儲存單元的資料組織示意圖。
圖5為命令佇列示意圖。
圖6為管理或資料存取命令的執行步驟的流程圖。
圖7為命名空間建立及依附的順序圖。
圖8為命名空間解依附及刪除的順序圖。
圖9為依據本發明實施例的命名空間設定更新的順序圖。
圖10為依據本發明實施例的命名空間更新命令的資料結構示意圖。
圖11為依據本發明實施例的命名空間更新操作的方法流程圖。
圖12為依據本發明實施例的邏輯-實體對照表的擴充示意圖。
圖13為依據本發明實施例的命名空間設定更新操作的功能模塊示意圖。
圖14為依據本發明實施例的跨命名空間資料搬移的順序圖。
圖15為依據本發明實施例的跨命名空間資料搬移命令的資料結構示意圖。
圖16為依據本發明實施例的跨命名空間資料搬移的方法流程圖。
圖17為依據本發明實施例的不同命名空間的邏輯-實體對照表的實體位址資訊搬移示意圖。
圖18為依據本發明實施例的跨命名空間資料搬移操作的功能模塊示意圖。
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
參考圖1。快閃記憶系統架構100包含主裝置110、隨機存取記憶體(Random Access Memory RAM)120及儲存裝置130。主裝置110運作時可依據其需求而建立佇列(Queue)。此系統架構可實施於個人電腦、筆記型電腦(Laptop PC)、平板電腦、手機、數位相機、數位攝影機等電子產品。隨機存取記憶體120中的特定區域可配置作為資料緩衝器及佇列等,以及儲存裝置操作參數及命名空間變數。儲存裝置130可包含處理單元133。處理單元133可從主裝置110接收命名空間管理命令,並據此指示快閃控制器135執行增加命名空間長度或容量(Namespace Size or Capacity),以及跨命名空間的資料搬移操作。命名空間的長度或容量由可以以邏輯區塊的數量來表示,每一邏輯區塊都分配有一個邏輯區塊位址。邏輯區塊的大小可由格式化邏輯區塊位址(Formatted LBA Size)長度所決定,例如4KB,其中,邏輯區塊除了包括使用者資料之外,亦可包括元資料(Metadata)。命名空間長度可指特定命名空間中以邏輯區塊為單位的總數目。例如,長度為n的命名空間包含第0至n-1邏輯區塊位址(logical block address,LBA)LBA#0~LBA#(n-1)的邏輯區塊。命名空間容量可指特定命名 空間可供主裝置110儲存邏輯區塊的最大數目。主裝置110及處理單元133間較佳採用快速非揮發記憶體(Non-Volatile Memory express,NVMe)通信協定以進行溝通。主裝置110及處理單元133中之任一者可使用多種方式實施,如使用通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行指令(Instructions)、宏碼(Macrocode)或微碼(Microcode)時,提供之後描述的功能。隨機存取記憶體120及131可儲存執行過程中需要的資料,例如,變數、資料表等。
儲存裝置130另包含快閃控制器135、存取介面137及儲存單元139,並且快閃控制器135透過存取介面137與儲存單元139溝通,詳細來說,可採用雙倍資料率(Double Data Rate DDR)通訊協定,例如,開放NAND快閃(Open NAND Flash Interface ONFI)、雙倍資料率開關(DDR Toggle)或其他介面。儲存裝置130的快閃控制器135透過存取介面137寫入使用者資料到儲存單元139中的指定位址(目的位址),以及從儲存單元139中的指定位址(來源位址)讀取使用者資料。存取介面137使用數個電子訊號來協調快閃控制器135與儲存單元139間的資料與命令傳遞,包含資料線(data line)、時脈訊號(clock signal)與控制訊號(control signal)。資料線可用以傳遞命令、位址、讀出及寫入的資料;控制訊號線可用以傳遞晶片致能(Chip Enable CE)、位址提取致能(Address Latch Enable ALE)、命令提取致能(Command Latch Enable CLE)、寫入致能(Write Enable WE)等控制訊號。處理單元133與快閃控制器135可分開存在或整合於同一晶片中。
儲存單元139可包含多個儲存子單元,每個儲存子單元,各自使用關聯的存取子介面與快閃控制器135進行溝通。一或多個儲存子單元可封裝在一個晶粒(Die)之中。儲存裝置130可包含j個存取子介面,每一個存取子介面連接i個儲存子單元。存取子介面及其後連接的儲存子單元又可統稱為輸出入通道,並可以邏輯單元編號識別。換句 話說,i個儲存子單元共享一個存取子介面。例如,儲存裝置130包含4個輸出入且每一個輸出入連接4個儲存單元時,儲存裝置130一共擁有16個儲存子單元。快閃控制器135可驅動存取子介面中之一者,從指定的儲存子單元讀取,或寫入資料至指定的儲存子單元。每個儲存子單元擁有獨立的晶片致能(CE)控制訊號。換句話說,當欲對指定的儲存子單元進行資料讀取時,需要驅動關聯的存取子介面來致能此儲存子單元的晶片致能控制訊號。參考圖2。快閃控制器135可透過存取子介面137_0使用獨立的晶片致能控制訊號230_0_0至230_0_i從連接的儲存子單元139_0_0至139_0_i中選擇出其中一者,接著,透過共享的資料線210_0從選擇出的儲存子單元的指定位址讀取資料。
參考圖3。邏輯-實體對照表310較佳依照順序儲存相應於每一邏輯位址(或邏輯區塊位址)的實體位址資訊。邏輯-實體對照表310所需的空間較佳與邏輯位址的總數成正比。邏輯位址可以邏輯區塊位址表示,每一個LBA對應到一個固定大小的邏輯區塊,例如512位元組(Bytes),並儲存至一實體位址。舉例來說,邏輯-實體對照表310依序儲存從LBA#0至LBA#65535的實體位址資訊。數個連續邏輯位址(例如LBA#0至LBA#7)的資料可形成一個主頁面(Host Page)。實體位址資訊330可以四個位元組表示:第1個位元組330-0紀錄(實體)區塊編號((Physical)Block Number)),第2個位元組330-1紀錄(實體)頁面編號(及偏移量(offset);第3個位元組330-2紀錄(實體)平面編號,最後1個位元組330-3紀錄邏輯單元編號(Logical Unit Number,LUN)。例如,相應於LBA#2的實體位址資訊330可指向區塊350中的一個區域351。
參考圖4。儲存單元139包含多個平面(Planes)410_0至410_m、430_0至430_m、450_0至450_m及470_0至470_m,每一平面或多個平面置於一個邏輯單元編號中。平面410_0至410_m及共享的存取子介面稱 為輸出入通道410,平面430_0至430_m及共享的存取子介面稱為輸出入通道430,平面450_0至450_m及共享的存取子介面稱為輸出入通道450,及平面470_0至470_m及共享的存取子介面稱為輸出入通道470,其中,m可為2的次方的整數(例如2、4、8、16、32等),輸出入通道410、430、450及470可使用邏輯單元編號識別。平面410_0至470_m中之每一者包含多個區塊(Blocks),每個區塊包含多個頁面(Pages)P#0至P#(n),每個頁面包含多個區段(Sectors)(例如,4個、8個等),其中,n可為767或1535等。每個頁面包含多個NAND記憶體單元(Memory Cells),並且NAND記憶體單元可為單層式單元(Single-Level Cells SLCs)、多層式單元(Multi-Level Cells MLCs)、三層式單元(Triple-Level Cells TLCs)或四層式單元(Quad-Level Cells QLCs)。於一些實施例中,當每一個NAND記憶體單元為單層式單元而可記錄2個狀態時,平面410_0至470_0中的頁面P#0可虛擬形成超頁面(Super Page)490_0,平面410_0至470_0中的頁面P#1可虛擬形成超頁面490_1,依此類推。於另一些實施例中,當每一個NAND記憶體單元為多層式單元而可記錄4個狀態時,一個實體字元線可包含頁面P#0(可稱為最低位元頁面,Most Significant Bit MSB page)、頁面P#1(可稱為最高位元頁面,Least Significant Bit LSB page),依此類推。於更另一些實施例中,當每一個NAND記憶體單元為三層式單元而可記錄8個狀態時,一個實體字元線可包含頁面P#0(可稱為最低位元頁面,MSB page)、頁面P#1(可稱為中間位元頁面,CSB,Center Significant Bit page)及頁面P#2(可稱為最高位元頁面,LSB page)。當每一個NAND記憶體單元為四層式單元而可記錄16個狀態時,除了MSB、CSB以及LSB頁面之外,更包括TSB(可稱為頂部位元,TSB,Top Significant Bit)頁面。
儲存單元139運作時,頁面為資料寫入或編程的最小單位,大小例如為4KB,此時實體位址可表示為頁面編號;如果頁面包含多個區 段,例如:4個區段,每一區段可儲存4KB的資料時,則區段可為資料管理的最小單位,此時實體位址可表示為頁面的區段編號(Sector Number)或區段在頁面的偏移量(Offset)。另外,一般而言,區塊為資料抹除的最小單位。
圖5為指令佇列的示意圖。指令佇列可包含遞交佇列(Submission Queue SQ)510及完成佇列(Completion Queue CQ)530,分別用以暫存主裝置指令以及完成元件(Completion Element CE)。遞交佇列510及完成佇列530較佳建立在同一裝置中,例如,遞交佇列510及完成佇列530較佳建立在主裝置的記憶體中,亦可建立在儲存裝置130的記憶體中。遞交佇列510及完成佇列530亦可建立在不同的裝置中。遞交佇列510及完成佇列530中之每一者包含多筆項目(Entry)的集合。遞交佇列510中的每一筆項目儲存一個主裝置指令,主裝置指令又可區分別管理命令(Administration Command),如辨認(Identify)、設定特徵(Set Feature)、命名空間管理(Namespace Management)、命名空間依附(Namespace Attachment)命令等;及輸出入命令(I/O Command),如抹除、讀取、寫入命令等,亦可稱為資料存取命令。雖然圖5只顯示二個佇列510及530,但熟習此技藝人士可建立二種遞交佇列510,分別為管理遞交佇列(Administration Submission Queue)及輸出入遞交佇列(I/O Submission Queue),分別用以暫存來自主裝置110的管理命令及資料存取命令,同樣的,熟習此技藝人士可建立二種完成佇列530,分別為管理完成佇列(Administration Completion Queue)及輸出入完成佇列(I/O Completion Queue),用以分別儲存關聯至管理命令及資料存取命令的完成元件。
完成佇列530中的每一筆項目儲存關聯至一個管理命令或資料存取命令的完成元件,此完成元件用以回報主裝置指令的執行結果,例如:成功或失敗,亦可作為確認訊息。集合中的項目依序存放。集合的操作基本原則是由結束位置(或稱為佇列尾,Tail)新增項目(可 稱為入列),執行位於開始位置(或稱為佇列頭,Head)的項目(可稱為出列),其中,入列或出列一次的項目總數可大於等於一。第一個新增至遞交佇列510或完成佇列530的命令或訊息,之後,也將會是第一個被替代或更新的。主裝置110可寫入管理或資料存取命令至遞交佇列510,並且處理單元133從遞交佇列510讀取(或稱為提取Fetch)最早到達的管理或資料存取命令並執行。於管理或資料存取命令執行完成後,處理單元133寫入完成元件至完成佇列530,主裝置110可讀取或提取完成元件而判斷管理或資料存取命令的執行結果。
參考圖6。主裝置110產生並寫入管理命令或資料存取命令至遞交佇列510(步驟S611)。接著,主裝置110發出遞交門鈴(Submission Doorbell)給處理單元133(步驟S612),用以通知處理單元133關於遞交佇列510中已寫入一個管理命令或資料存取命令的資訊,並更新遞交佇列510的佇列尾的值。於此須注意的是,步驟S611及步驟S612又可稱為主裝置110發出管理命令或資料存取命令給儲存裝置130。處理單元133接收到遞交門鈴後(步驟S631),從遞交佇列510讀取位於佇列頭的管理命令或資料存取命令(步驟S632),並且執行管理命令或資料存取命令所指定的作業(例如,辨認、參數設定、命名空間管理、命名空間依附、抹除、資料讀取、寫入等)(步驟S633)。
於此須注意的是,步驟S631及步驟S632又可稱為儲存裝置130接收從主裝置110發出的管理命令或資料存取命令。當指定的作業完成後,處理單元133產生並寫入完成元件至完成佇列530(步驟S634)用以通知主裝置110相應於特定管理命令或資料存取命令的作業的執行結果以及狀態資訊,並且發出中斷給主裝置110(步驟S635)。接收中斷後(步驟S613),主裝置110從完成佇列530讀取位於佇列頭的完成元件(步驟S613)以判斷特定管理命令或資料存取命令的執行結果。如果執行失敗,更可依據完成元件中的狀態資訊進行失敗原因的判 斷。接著,主裝置110發出完成門鈴給處理單元133(步驟S614)。接收完成門鈴後(S636),處理單元133得知完成佇列530中更新的佇列頭的值。於此須注意的是,步驟S634及步驟S635又可稱為儲存裝置130回覆主裝置110執行管理命令或資料存取命令的執行結果。於此須注意的是,步驟S613及步驟S614又可稱為主裝置110從儲存裝置130接收執行管理命令或資料存取命令的執行結果。
於步驟S612及S614,主裝置110可設定相應寄存器(Registers)來向處理單元133發出遞交門鈴及結束門鈴。
參考圖7,當儲存裝置130連接至主裝置110並完成初始化後,主裝置110可發出辨認命令(Identify Command)712給儲存裝置130。儲存裝置130執行前置操作720完畢後,主裝置110可從儲存裝置130接收執行結果714,其中,辨認命令712可為控制器辨認命令以請求控制器資料結構(Controller Data Structure)。控制器資料結構描述控制器能力及特性(Controller Capabilities and Features),如包含外設組件互聯(Peripheral Component Interconnect)供應商識別碼、序號、韌體版本、最大資料傳輸長度、控制器識別碼等欄位。控制器資料結構可更描述管理命令集屬性及可選控制器能力,如可選管理命令集支援(Optional Admin Command Support OACS)等欄位。OACS欄位可記載控制器是否支援命名空間管理及依附命令的資訊。
除了控制器辨認命令之外,辨認命令712亦可為一般命名空間辨認命令以請求一般命名空間的資料結構(Namespace Data Structure),例如:一般命名空間能力(Common Namespace Capabilities),包含命名空間長度(Namespace Size,NSZE)、命名空間容量(Namespace Capacity,NCAP)等欄位。辨認命令712中的第10雙字組的第0位元組可用來區分請求的標的為控制器資料結構或命名空間資料結構。
於前置操作720,處理單元133可讀取唯讀記憶體(未顯示於圖1)或讀取儲存單元139來獲得控制器及命名空間資料結構中需要的資訊, 並且上傳控制器及命名空間資料結構的內容至辨認命令712中指定的隨機存取記憶體120的位址,用以讓主裝置110讀取。
之後,主裝置110可參考以上所述控制器及命名空間資料結構的內容,並發出命名空間管理命令732給儲存裝置130以建立一個新的命名空間。主裝置110可於隨機存取記憶體120分配4K位元組,用以儲存欲建立的命名空間資料結構的內容,其中的第0至383位元組為定義命名空間欄位(Identify Namespace field)。例如,第0至7位元組為命名空間長度(Namespace Size)欄位,值為0x0FFFFFF,而第8至15位元組為命名空間容量(Namespace Capacity)欄位,值為0x0FFFFFF。為建立新的命名空間,主裝置110可於命名空間管理命令732中指出這是一個建立操作(如第10雙字組中第0至3位元所示),並提供指向命名空間資料結構的內容的儲存位址(記憶體位址)(如第6至7雙字組或第6至9雙字組所示)。
於命名空間建立操作740,處理單元133可從可用命名空間識別碼(Namespace Identifier NSID)中分配一個給請求的命名空間,例如:0x00,並可儲存命名空間長度及容量欄位的值至隨機存取記憶體131及/或儲存單元139。儲存裝置130成功執行命名空間#0建立操作740後,主裝置110可從儲存裝置130接收執行結果734,包含儲存裝置130分配的命名空間識別碼,及命名空間#0建立成功的資訊。
在另一實施例中,主裝置110發出命名空間管理命令732以建立命名空間時,發出命名空間管理命令732,包含命名空間識別碼,例如:0x00,於命名空間建立操作740時,儲存裝置130依據命名空間管理命令732建立命名空間#0。
當命名空間#0成功建立後,主裝置110可發出命名空間依附命令752給儲存裝置130,用以將此命名空間#0依附到一或多個控制器。主裝置110可於第10雙字組的第0至3位元指出此命令請求控制器依附操作(Controller Attach Operation)。儲存裝置130成功執行命名空間依 附操作760後,主裝置110可從儲存裝置130接收執行結果754,包含命名空間#0依附成功的資訊。
當成功建立命名空間#0及依附命名空間#0至控制器後,主裝置110開始命名空間#0的資料存取780。例如,讀取命名空間#0中特定邏輯區塊位址的使用者資料,於命名空間#0寫入特定邏輯區塊位址的使用者資料等。
參考圖8。主裝置110可發出命名空間解依附命令812給儲存裝置130,用以解除命名空間#0到特定控制器的依附。主裝置110可於第10雙字組的第0至3位元指出此命令請求控制器解依附操作(Controller Detach Operation)。儲存裝置130成功執行命名空間解依附操作820後,主裝置110可從儲存裝置130接收執行結果814,包含命名空間#0解依附成功的資訊。
當命名空間#0到特定控制器的所有依附都成功解除後,主裝置110可發出命名空間管理命令832給儲存裝置130,用以刪除命名空間#0。主裝置110可於命名空間管理命令832中指出這是一個刪除操作(如第10雙字組中第0至3位元),並提供欲刪除命名空間的命名空間識別碼(如第1雙字組),例如:對應至命名空間#0的值0x00。儲存裝置130成功執行命名空間#0的刪除操作840後,主裝置110可從儲存裝置130接收執行結果834,包含刪除命名空間#0執行成功的資訊。
然而,當一個命名空間被建立及依附後,目前並沒有調整已建立的命名空間的長度或容量的機制,造成主裝置110無法增加此命名空間的長度或容量。例如,儲存裝置130有1TB的可用空間而命名空間#0的長度或容量只佔64GB,但主裝置110無法將64GB的命名空間的長度或容量增加至128GB。為解決此缺陷,本發明實施例提出一種命名空間設定更新機制,允許主裝置110可以增加命名空間的長度或容量。
參考圖9。以命名空間#0為例,當命名空間#0被建立及依附後,主 裝置110可發出命名空間設定更新命令912給儲存裝置130,用以請求增加命名空間#0的長度或容量。除了發出命名空間設定更新命令912之外,主裝置110更可以於隨機存取記憶體120分配4K位元組,用以儲存命名空間#0更新後的的資料結構的內容,其中的第0至383位元組為定義命名空間欄位,例如,第0至7位元組為命名空間長度欄位,可填入更新後的命名空間長度的值,例如:0x1FFFFFF(以邏輯區塊為單位)。第8至15位元組為命名空間容量欄位,可填入更新後的命名空間容量值,例如:0x1FFFFFF。一般來說,命名空間長度與命名空間容量的值相等。但是,當主裝置110希望預留空間(over provision)作為資料搬移或其他操作的緩衝區時,更新後命名空間容量的值,例如:0x1FFFF00,小於更新後命名空間長度的值。於一些實施例,除了命名空間長度欄位及命名空間長度欄位,更新後的命名空間資料結構的其餘每一位元組可設為虛假值(如0x00、0xFF,或其他預設的值),因此,儲存裝置130可忽略這些虛假值。
命名空間設定更新命令912的格式如圖10所示。命名空間設定更新命令912為64位元組命令。第0雙字組的第0位元組紀錄操作碼(opcode)1010,用以通知儲存裝置130此為命名空間管理命令。第0雙字組的第2至3位元組紀錄命令識別碼1030,此命令識別碼1030較佳為依序產生,作為命名空間設定更新命令912識別的依據,也用以讓完成佇列530中的一個對應的完成元件關聯至命名空間設定更新命令912。第1雙字組紀錄欲更新的命名空間#0的識別碼1080,其值0x00。主裝置110可於第10雙字組中第0至3位元的選擇欄位1070指出這是一個更新操作。主裝置110於第6至7雙字組的主要記憶體位址欄位1050,或於第6至9雙字組的主要記憶體位址欄位1050及延伸記憶體位址欄位1060提供指向隨機存取記憶體120中儲存更新後命名空間資料結構的起始位址,用以讓儲存裝置130依據該記憶體位址從隨機存取記憶體120取得更新後的命名空間長度及容量。
雖然以上描述主裝置110使用隨機存取記憶體120儲存命名空間長度或容量,供儲存裝置130讀取,但是,於另一些實施例中,主裝置110可直接在命名空間設定更新命令912中直接提供更新後的命名空間長度或容量的值等資訊,避免佔用隨機存取記憶體120的空間及節省主裝置110及儲存裝置130間的傳輸頻寬,更可加速命名空間設定更新命令912的執行。例如,將更新後的命名空間長度的值儲存於主要記憶體位址欄位1050,或將更新後的命名空間容量的值儲存於延伸記憶體位址欄位1060。
在另一實施例中,操作碼1010表示此為命名空間設定更新命令912,如此一來,選擇欄位1070則可省略不用。
另外,於發出命名空間管理命令912給儲存裝置130之前,主裝置110可先發出辨認命令712給儲存裝置130以取得命名空間#0的原資料結構,並以原資料結構為基礎,調整必要的參數,包括:命名空間長度或命名空間容量的值,以作為命名空間#0更新後的資料結構。另外,主裝置110亦可發出一般命名空間辨認命令以取得一般命名空間長度或容量的值,並以此值作為邏輯區塊的最大值。之後,依序取得每一已建立的命名空間的命名空間長度或容量的值,即可得知未分配邏輯區塊的值。如此一來,主裝置110可將部份或全部未分配邏輯區塊的值加至命名空間#0的命名空間長度或容量的值,作為命名空間#0更新後的命名空間長度或容量的值。
命名空間設定更新操作920較佳由處理單元133以較高優先權予以執行。命名空間設定更新操作920的細節說明如下:參考圖11。處理單元133可從遞交佇列510取得命名空間設定更新命令912(步驟S1110),並且依據命名空間設定更新命令912取得更新後命名空間長度或容量(步驟S1120),其中,更新後命名空間長度或容量可由命名空間設定更新命令912的內容或儲存在指定記憶體位置的資料結構中取得。
接著,處理單元133判斷是否能夠支援更新後命名空間長度或容量(步驟S1130)。處理單元133可將更新後命名空間長度或容量的值加上其他所有命名空間的命名空間長度或容量的值後,再判斷是否超過邏輯區塊的最大值,或是更新後命名空間長度或容量的值與原始命名空間長度或容量的值間的差值是否小於未分配邏輯區塊的值。
當判斷無法支援更新後命名空間長度或容量(步驟S1130中”否”的路徑),處理單元133可寫入包含執行失敗訊息的完成元件至完成佇列530(步驟S1170)。否則(步驟S1130中”是”的路徑),處理單元133可儲存此命名空間的更新後命名空間長度或容量至隨機存取記憶體131及/或儲存單元139(步驟S1140)。
處理單元133更新此命名空間的邏輯-實體對照表(步驟S1150)。一般而言,邏輯-實體對照表可分割成複數個子邏輯-實體對照表,因此,處理單元133可更新子邏輯-實體對照表的數量以更新邏輯-實體對照表。另外,處理單元133可預先建立子邏輯-實體對照表,或是等到需要存取子邏輯-實體對照表時再建立子邏輯-實體對照表。處理單元133寫入包含執行成功訊息的完成元件至完成佇列530(步驟S1160)。
參考圖12。假設命名空間(更新前)的原始長度或容量為64GB,則處理單元133建立邏輯-實體對照表1210以儲存邏輯區塊位址0x0000000至0x0FFFFFF與實體位址的對應資訊,以管理64GB的使用者資料。當儲存裝置130收到主裝置110發出的命名空間設定更新命令912的請求,例如:將此命名空間的長度或容量增加至128GB時,處理單元133可於原來的邏輯-實體對照表1210之後增加新的邏輯-實體對照表1230,使邏輯區塊位址由0x0FFFFFF延申至0x1FFFFFF,以管理128GB的使用者資料。邏輯-實體對照表1230中每一項目的實體位址資訊可先填入虛假值(如0x00000000、0xFFFFFFFF,或其他),或是等到主裝置110存取邏輯區塊位址0x1000000至0x1FFFFFF時再建立邏輯-實體對照表1230。
處理單元133所執行命名空間設定更新操作920的方法步驟,可用一或多個功能模塊組成的電腦程式產品來實現。這些功能模塊存儲於非揮發性儲存裝置,並且可被處理單元133於特定時間點載入並執行。參考圖13。處理單元133執行命名空間設定讀取模塊1310以完成步驟S1110及S1120的操作,執行判斷模塊1320以完成步驟S1130的操作,當不滿足判斷模塊1320的判斷時執行命名空間長度或容量擴充模塊1330以完成步驟S1140及S1150的操作,並且執行完成元件寫入模塊1340以完成步驟S1160及S1170的操作。命名空間設定讀取模塊1310可包含NVMe介面的驅動程式及NVMe命令解析器(parser),用以從主裝置110接收命令,辨認命令及請求操作的類型,以及包含直接記憶體存取控制器(Direct Memory Access DMA controller)的驅動程式,用以從隨機存取記憶體120讀取特定命名空間的更新後長度及容量。命名空間長度或容量擴充模塊1330可包含快閃控制器135的驅動程式,用以透過存取介面137寫入特定命名空間的更新後長度及容量至儲存單元139。完成元件寫入模塊1340可包含NVMe介面的驅動程式及NVMe完成元件的產生程式碼,用以產生完成元件以及通知主裝置110完成元件已寫入,以及包含直接記憶體存取控制器的驅動程式,用以寫入完成元件至隨機存取記憶體120中的完成佇列。
此外,目前沒有跨命名空間的資料搬移機制。例如:欲搬移命名空間#0的使用者資料至命名空間#1時,主裝置110需要發出一系列命名空間#0的讀取命令給儲存裝置130,用以讀取使用者資料並儲存至隨機存取記憶體120的資料緩衝區,接著,發出一系列命名空間#0的解除分配(Deallocate)命令給儲存裝置130,用以刪除這些使用者資料。然後,主裝置110再發出一系列命名空間#1的寫入命令給儲存裝置130,用以將資料緩衝區的使用者資料寫入命名空間#1。然而,使用如上所述的讀取、解除分配及寫入命令來完成跨命名空 間的資料搬移,會讓佇列耗費大量空間儲存一連串的讀取、解除分配及寫入命令以及完成元件,並且隨機存取記憶體120也需要耗費大量頻寬傳輸從儲存單元139讀取的資料以及傳輸欲寫入儲存單元139的資料,以及耗費大量空間儲存從儲存單元139讀取的資料。此外,主裝置110及處理單元133亦需要耗費大量運算資源處理這一連串的讀取及寫入命令,而這將使儲存裝置130無法維持適當的運算資源以及時回應主裝置110的資料存取命令,造成儲存裝置130的系統效能低落。
為解決上述問題,參考圖14,當命名空間被建立及依附後,主裝置110可發出跨命名空間資料搬移命令1412給儲存裝置130,用以指示儲存裝置130將來源命名空間,例如:命名空間#0,的來源邏輯區塊位址的使用者資料以內部搬移的方式搬移到目的命名空間,例如:命名空間#1,的目的邏輯區塊位址,其中,來源邏輯區塊位址與目的邏輯區塊位址的值可以相同,亦可以不同。
參考圖15,跨命名空間資料搬移命令1412為64位元組命令。第0雙字組的第0位元組紀錄操作碼1510,用以通知儲存裝置130此為跨命名空間資料搬移命令。第0雙字組的第2至3位元組紀錄命令識別碼1530,此命令識別碼1530較佳為依序產生,作為跨命名空間資料搬移命令1412識別的依據,也用以讓完成佇列530中的一個對應的完成元件關聯至跨命名空間資料搬移命令1412。第1雙字組紀錄目的命名空間的識別碼1580,而第6至7雙字組紀錄起始目的邏輯區塊編號1550。第2雙字組紀錄來源命名空間的識別碼1590,而第10至11雙字組紀錄起始來源邏輯區塊編號1560。第12雙字組的第0至1位元組紀錄搬移數量1570。起始來源邏輯區塊編號1560及搬移數量1570定義來源命名空間中一段連續邏輯區塊位址,而起始目的邏輯區塊編號1550及搬移數量1570定義目的命名空間中一段連續邏輯區塊位址。
跨命名空間資料搬移操作1420的細節說明如下:參考圖16。跨命名空間資料搬移操作1420可由處理單元133於載入並執行有關的韌體時實施。處理單元133可從遞交佇列510取得跨命名空間資料搬移命令1412,請求將來源命名空間的指定邏輯區塊位址的使用者資料搬移至目的命名空間的指定邏輯區塊位址的儲存空間(步驟S1610)。接著,處理單元133從來源邏輯-實體對照表(即相應於來源命名空間識別碼1590的邏輯-實體對照表)中的起始來源項目(即起始來源邏輯區塊編號1560指出的項目)開始剪下(或者先進行複製,待複製完成後解除分配)指定數量的實體位址資訊(步驟S1620),以及從目的邏輯-實體對照表(即相應於目的命名空間識別碼1580的邏輯-實體對照表)中的起始目的項目(即起始目的地邏輯區塊編號1550指出的項目)開始依序儲存這些剪下的實體位址資訊(步驟S1630)。於步驟S1620前,處理單元133可驅動快閃控制器135用以從儲存單元139讀取相應部分的來源邏輯-實體對照表及目的邏輯-實體對照表,並儲存至隨機存取記憶體131。如步驟S1620及S1630的剪下與貼上可指隨機存取記憶體131的資料更新。於步驟S1630後,處理單元133可驅動快閃控制器135用以將更新後的相應部分的來源邏輯-實體對照表及目的邏輯-實體對照表寫入儲存單元139。最後,處理單元133可寫入包含執行成功訊息的完成元件至完成佇列530(步驟S1640)。圖16描述的方法流程並不牽涉任何使用者資料的實際移動,因此可有效解決如上所述的問題。
舉例來說,主裝置110可配置兩個命名空間,用以分別儲存機密及非機密資料,分別可稱為機密命名空間(Confidential Namespace)與公開命名空間(Public Namespace)。機密命名空間的存取權限或資格較佳由主裝置110所決定。例如,主裝置110只允許屬於機密群組的帳號存取機密命名空間中的使用者資料,而公開命名空間允許具有一般使用者的帳號就可以存取其中的使用者資料。當一些機密資料 變更為公開資料時,主裝置110可將這些資料從機密命名空間搬移到公開命名空間。此應用可使用如上所述的跨命名區域的資料搬移機制。參考圖17。假設跨命名空間資料搬移命令1412指示將命名空間#0的邏輯區塊位址#1~#2的使用者資料變更成命名空間#1的邏輯區塊位址#3~#4的使用者資料,則處理單元133剪下邏輯-實體對照表1710(相應於命名空間#0)中的第1至2項目所記錄的實體位址資訊,並儲存至邏輯-實體對照表1730(相應於命名空間#1)中的第3至4項目中。
處理單元133所執行跨命名空間資料搬移操作1420的方法步驟,可用一或多個功能模塊組成的電腦程式產品來實現。這些功能模塊存儲於非揮發性儲存裝置,並且可被處理單元133於特定時間點載入並執行。參考圖18。處理單元133執行跨命名空間資料搬移命令讀取模塊1810以完成步驟S1610的操作,執行邏輯-實體對照表更新模塊1820以完成步驟S1620及S1630的操作,並且執行完成元件寫入模塊1830以完成步驟S1640的操作。跨命名空間資料搬移命令讀取模塊1810可包含NVMe介面的驅動程式及NVMe命令解析器,用以從主裝置110接收命令,以及辨認命令及請求操作的類型。邏輯-實體對照表更新模塊1820可包含快閃控制器135的驅動程式,用以透過存取介面137從儲存單元139讀取相應部分的來源邏輯-實體對照表及目的地邏輯-實體對照表以及寫入更新後的實體位址資訊至儲存單元139。完成元件寫入模塊1830可包含NVMe介面的驅動程式及NVMe完成元件的產生程式碼,用以產生完成元件以及通知主裝置110完成元件已寫入,以及包含直接記憶體存取控制器的驅動程式,用以寫入完成元件至隨機存取記憶體120中的完成佇列。
本發明所述的方法中的全部或部分步驟可以電腦程式實現,例如電腦的作業系統、電腦中特定硬體的驅動程式、或軟體應用程式。此外,也可實現於如上所示的其他類型程式。所屬技術領域具有通常 知識者可將本發明實施例的方法撰寫成電腦程式,為求簡潔不再加以描述。依據本發明實施例方法實施的電腦程式.可儲存於適當的電腦可讀取資料載具,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。
雖然圖1中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然圖11及16的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
S1110~S1170:方法步驟

Claims (17)

  1. 一種快閃記憶體的命名空間操作裝置,包含:一快閃控制器,耦接一儲存單元;以及一處理單元,耦接該快閃控制器,從一主裝置接收一命名空間設定更新命令,請求更新該儲存單元的一命名空間的一命名空間長度,其中該命名空間長度表示一邏輯區塊的總數目;判斷是否能夠支援該更新後的命名空間長度;以及當能夠支援該更新後的命名空間長度時,更新該命名空間的一邏輯-實體對照表,用來允許該命名空間儲存該更新後的命名空間長度的使用者資料,其中該邏輯-實體對照表儲存相應於每一邏輯區塊的該儲存單元中的實體位址資訊。
  2. 如請求項1所述的快閃記憶體的命名空間操作裝置,其中,當該更新後的命名空間長度的值加上其他所有命名空間的命名空間長度的值不超過邏輯區塊的最大值時,或者當該更新後的命名空間長度的值與原始命名空間長度的值間的差值小於未分配邏輯區塊的值時,上述處理單元判斷能夠支援該更新後的命名空間長度。
  3. 如請求項1所述的快閃記憶體的命名空間操作裝置,其中,當無法支援該更新後的命名空間長度時,上述處理單元回覆一更新失敗訊息給該主裝置。
  4. 如請求項1所述的快閃記憶體的命名空間操作裝置,其中,該處理單元從該命名空間設定更新命令取得一記憶體位址;以及依據該記憶體位址從該命名空間操作裝置外的一隨機存取記憶體讀取該更新後的命名空間長度的值。
  5. 如請求項4所述的快閃記憶體的命名空間操作裝置,其中該記憶體位址指向一命名空間資料結構的一起始位址,以及該命名空間資料結構包含一欄位,用以儲存該更新後的命名空間長度的值。
  6. 如請求項1所述的快閃記憶體的命名空間操作裝置,其中,該處理單元從該命名空間更新命令取得該更新後的命名空間長度的值。
  7. 如請求項1所述的快閃記憶體的命名空間操作裝置,其中該更新後的命名空間長度的值大於該命名空間的原先設定長度的值。
  8. 如請求項1所述的快閃記憶體的命名空間操作裝置,其中該命名空間已經依附至一控制器。
  9. 一種快閃記憶體的命名空間操作裝置,包含:一快閃控制器,耦接一儲存單元;以及一處理單元,耦接該快閃控制器,從一主裝置接收一跨命名空間資料搬移命令,請求將該儲存單元中的一第一命名空間的一第一邏輯位址的使用者資料搬移至該儲存單元中的一第二命名空間的一第二邏輯位址的儲存空間;以及驅動該快閃控制器將一第一邏輯-實體對照表中該第一邏輯位址所對應的一第一實體位址資訊貼上一第二邏輯-實體對照表中該第二邏輯位址所對應的項目,其中該第一邏輯-實體對照表相應於該第一命名空間,以及該第二邏輯-實體對照表相應於該第二命名空間。
  10. 如請求項9所述的快閃記憶體的命名空間操作裝置,其中,該第一邏輯位址表示連續的一第一邏輯區塊位址,以及該第二邏輯位址表示連續的一第二邏輯區塊位址。
  11. 如請求項9所述的快閃記憶體的命名空間操作裝置,其中,該跨命名空間資料搬移命令包含一第一命名空間識別碼、一第二命名空間識別碼、一第一邏輯區塊編號、一第二邏輯區塊編號以及一搬移數量,該第一命名空間識別碼表示該第一命名空間,該第二命名空間識別碼表示該第二命名空間,該第一邏輯區塊編號及該搬移數量定義該第一邏輯位址,以及該第二邏輯區塊編號及該搬移數量定義該第二邏輯位址。
  12. 如請求項9所述的快閃記憶體的命名空間操作裝置,其中,該第 一命名空間為一機密命名空間及該第二命名空間為一公開命名空間,或者該第一命名空間為該公開命名空間及該第二命名空間為該機密命名空間;該機密命名空間只允許屬於機密群組的帳號存取資料;以及該公開命名空間允許具有一般使用者的帳號存取資料。
  13. 如請求項9所述的快閃記憶體的命名空間操作裝置,其中,該處理單元不為因應該跨命名空間資料搬移命令而搬移該儲存單元中的第一命名空間的該第一邏輯位址的使用者資料。
  14. 一種電腦程式產品,用於快閃記憶體的命名空間操作,包含由一處理單元載入並執行的程式碼:從一主裝置接收一命名空間設定更新命令,請求更新一儲存單元的一命名空間的一命名空間長度,其中該命名空間長度表示一邏輯區塊的總數目;判斷是否能夠支援該更新後的命名空間長度;以及當能夠支援該更新後的命名空間長度時,更新該命名空間的一邏輯-實體對照表,用來允許該命名空間儲存該更新後的命名空間長度的使用者資料,其中該邏輯-實體對照表儲存相應於每一邏輯區塊的該儲存單元中的實體位址資訊。
  15. 如請求項14所述的電腦程式產品,更包含程式碼:當該更新後的命名空間長度的值加上其他所有命名空間的命名空間長度的值不超過邏輯區塊的最大值時,或者當該更新後的命名空間長度的值與原始命名空間長度的值間的差值小於未分配邏輯區塊的值時,判斷能夠支援該更新後的命名空間長度。
  16. 一種電腦程式產品,用於快閃記憶體的命名空間操作,包含由一處理單元載入並執行的程式碼:從一主裝置接收一跨命名空間資料搬移命令,請求將一儲存單元中的一第一命名空間的一第一邏輯位址的使用者資料搬移至該儲存單元中的一第二命名空間的一第二邏輯位址的儲存空間;以 及將一第一邏輯-實體對照表中該第一邏輯位址所對應的一第一實體位址資訊貼上一第二邏輯-實體對照表中該第二邏輯位址所對應的項目,其中該第一邏輯-實體對照表相應於該第一命名空間,以及該第二邏輯-實體對照表相應於該第二命名空間。
  17. 如請求項16所述的電腦程式產品,其中,該第一命名空間為一機密命名空間及該第二命名空間為一公開命名空間,或者該第一命名空間為該公開命名空間及該第二命名空間為該機密命名空間;該機密命名空間只允許屬於機密群組的帳號存取資料;以及該公開命名空間允許具有一般使用者的帳號存取資料。
TW108139846A 2018-06-22 2018-08-24 快閃記憶體的命名空間操作裝置及電腦程式產品 TWI708144B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862688743P 2018-06-22 2018-06-22
US62/688,743 2018-06-22

Publications (2)

Publication Number Publication Date
TW202018514A TW202018514A (zh) 2020-05-16
TWI708144B true TWI708144B (zh) 2020-10-21

Family

ID=68968259

Family Applications (2)

Application Number Title Priority Date Filing Date
TW107129704A TWI678618B (zh) 2018-06-22 2018-08-24 快閃記憶裝置的命名空間操作方法及裝置
TW108139846A TWI708144B (zh) 2018-06-22 2018-08-24 快閃記憶體的命名空間操作裝置及電腦程式產品

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW107129704A TWI678618B (zh) 2018-06-22 2018-08-24 快閃記憶裝置的命名空間操作方法及裝置

Country Status (3)

Country Link
US (2) US11307992B2 (zh)
CN (2) CN110633048B (zh)
TW (2) TWI678618B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11119929B2 (en) * 2019-01-31 2021-09-14 Marvell Asia Pte, Ltd. Low latency inter-chip communication mechanism in multi-chip processing system
US11656992B2 (en) 2019-05-03 2023-05-23 Western Digital Technologies, Inc. Distributed cache with in-network prefetch
JP7475989B2 (ja) * 2020-06-26 2024-04-30 キオクシア株式会社 メモリシステムおよび制御方法
US11765250B2 (en) 2020-06-26 2023-09-19 Western Digital Technologies, Inc. Devices and methods for managing network traffic for a distributed cache
US11675706B2 (en) 2020-06-30 2023-06-13 Western Digital Technologies, Inc. Devices and methods for failure detection and recovery for a distributed cache
KR20220003786A (ko) 2020-07-02 2022-01-11 삼성전자주식회사 스토리지 장치의 동작 방법
US11736417B2 (en) 2020-08-17 2023-08-22 Western Digital Technologies, Inc. Devices and methods for network message sequencing
KR20220053808A (ko) 2020-10-23 2022-05-02 삼성전자주식회사 멀티 네임스페이스 스토리지 장치, 상기 스토리지 장치를 포함하는 전자 시스템 및 상기 스토리지 장치의 동작 방법
CN117149093B (zh) * 2023-10-27 2024-03-26 四川省华存智谷科技有限责任公司 一种通过ssd缩容提升存储系统可靠性的方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160342463A1 (en) * 2015-05-20 2016-11-24 Kabushiki Kaisha Toshiba Data protection in a namespace
CN106255967A (zh) * 2014-03-31 2016-12-21 亚马逊科技公司 分布式存储系统中的命名空间管理
CN106484587A (zh) * 2015-08-26 2017-03-08 华为技术有限公司 一种命名空间管理方法、装置及计算机系统
US20170083434A1 (en) * 2015-09-23 2017-03-23 Hanan Potash Computer processor with operand/variable-mapped namespace
CN107273061A (zh) * 2017-07-12 2017-10-20 郑州云海信息技术有限公司 一种固态硬盘创建多namespace的方法及系统
CN107305606A (zh) * 2016-04-20 2017-10-31 中兴通讯股份有限公司 应用文件的处理方法及装置和文件的访问方法及装置
TWI622890B (zh) * 2016-12-29 2018-05-01 慧榮科技股份有限公司 建立多重命名空間方法與存取多重命名空間的資料的方法
TW201818249A (zh) * 2016-10-31 2018-05-16 三星電子股份有限公司 操作對多重名稱空間進行管理的儲存裝置的方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489708B2 (en) * 2010-04-06 2013-07-16 Microsoft Corporation Virtual application extension points
US9003071B2 (en) * 2013-03-13 2015-04-07 Futurewei Technologies, Inc. Namespace access control in NVM express PCIe NVM with SR-IOV
KR102025180B1 (ko) * 2013-08-08 2019-09-26 삼성전자주식회사 스토리지 시스템 및 그것의 쓰기 방법
US9696935B2 (en) * 2015-04-24 2017-07-04 Kabushiki Kaisha Toshiba Storage device that secures a block for a stream or namespace and system having the storage device
US10866910B2 (en) * 2015-09-28 2020-12-15 Sandisk Technologies Llc Systems, methods, and computer-readable media for managing instruction fetch in virtual computing environments
JP2017107318A (ja) * 2015-12-08 2017-06-15 株式会社東芝 メモリシステム、情報処理装置および処理方法
JP6448571B2 (ja) * 2016-03-08 2019-01-09 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
US10402092B2 (en) * 2016-06-01 2019-09-03 Western Digital Technologies, Inc. Resizing namespaces for storage devices
US10452419B2 (en) * 2016-09-09 2019-10-22 Huawei Technologies Co., Ltd. Device virtualization for containers
US10162523B2 (en) * 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10866732B2 (en) * 2017-03-10 2020-12-15 Toshiba Memory Corporation Namespace re-sizing
JP6785205B2 (ja) * 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
JP2019079464A (ja) * 2017-10-27 2019-05-23 東芝メモリ株式会社 メモリシステムおよび制御方法
US10866963B2 (en) * 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US11288180B2 (en) * 2018-01-19 2022-03-29 Micron Technology, Inc. Management of storage resources allocated from non-volatile memory devices to users
US10764180B1 (en) * 2018-02-20 2020-09-01 Toshiba Memory Corporation System and method for storing data using software defined networks

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106255967A (zh) * 2014-03-31 2016-12-21 亚马逊科技公司 分布式存储系统中的命名空间管理
US20160342463A1 (en) * 2015-05-20 2016-11-24 Kabushiki Kaisha Toshiba Data protection in a namespace
CN106484587A (zh) * 2015-08-26 2017-03-08 华为技术有限公司 一种命名空间管理方法、装置及计算机系统
US20170083434A1 (en) * 2015-09-23 2017-03-23 Hanan Potash Computer processor with operand/variable-mapped namespace
CN107305606A (zh) * 2016-04-20 2017-10-31 中兴通讯股份有限公司 应用文件的处理方法及装置和文件的访问方法及装置
TW201818249A (zh) * 2016-10-31 2018-05-16 三星電子股份有限公司 操作對多重名稱空間進行管理的儲存裝置的方法
TWI622890B (zh) * 2016-12-29 2018-05-01 慧榮科技股份有限公司 建立多重命名空間方法與存取多重命名空間的資料的方法
CN107273061A (zh) * 2017-07-12 2017-10-20 郑州云海信息技术有限公司 一种固态硬盘创建多namespace的方法及系统

Also Published As

Publication number Publication date
TWI678618B (zh) 2019-12-01
CN110633048B (zh) 2022-11-08
US20190391928A1 (en) 2019-12-26
CN110633048A (zh) 2019-12-31
US20220197818A1 (en) 2022-06-23
CN115421671A (zh) 2022-12-02
US11307992B2 (en) 2022-04-19
TW202001569A (zh) 2020-01-01
TW202018514A (zh) 2020-05-16

Similar Documents

Publication Publication Date Title
TWI708144B (zh) 快閃記憶體的命名空間操作裝置及電腦程式產品
US10782910B2 (en) Methods for internal data movements of a flash memory device and apparatuses using the same
US9395921B2 (en) Writing data using DMA by specifying a buffer address and a flash memory address
KR20170008153A (ko) 비휘발성 장치에서 데이터 속성 기반 데이터 배치를 활용하기 위해 컴퓨터를 구동하는 경험적 인터페이스
US11675698B2 (en) Apparatus and method and computer program product for handling flash physical-resource sets
US11249911B2 (en) Storage device, memory system, and operating method for managing host-resident L2P map cache
US20170031631A1 (en) Storage device and method of operating the same
US20200089619A1 (en) Data storage device and method of deleting namespace thereof
TWI726475B (zh) 快閃記憶體的資料內部搬移方法以及使用該方法的裝置
US11687262B2 (en) Memory system and method of operating the same
US20220100425A1 (en) Storage device, operating method of storage device, and operating method of computing device including storage device
WO2019090493A1 (zh) 内存块回收方法和装置
TW202026891A (zh) 閃存的資料寫入方法及電腦程式產品
TWI756854B (zh) 管理資料儲存的方法及裝置以及電腦程式產品
CN111813703A (zh) 数据储存装置及逻辑至物理地址映射表的更新方法
US11573732B2 (en) Storage device, memory system comprising the same, and operation method thereof
WO2020224662A1 (zh) 使用cmb提供开放通道存储设备
TWI835027B (zh) 更新主機與閃存位址對照表的方法及電腦程式產品及裝置
TWI760884B (zh) 主機效能加速模式的資料讀取方法及裝置
US20230147477A1 (en) Storage device, memory system comprising the same, and operation method thereof
WO2024060944A1 (zh) 键值存储方法及系统
KR20220159270A (ko) 스토리지 장치 및 그 동작 방법
CN116149540A (zh) 更新主机与闪存地址对照表的方法和计算机可读取存储介质和装置
KR20240006932A (ko) 메모리 컨트롤러 및 이를 포함하는 저장 장치
TW202321921A (zh) 更新主機與閃存位址對照表的方法及電腦程式產品及裝置