TWI766207B - 多命名空間的資料存取方法及電腦程式產品 - Google Patents

多命名空間的資料存取方法及電腦程式產品 Download PDF

Info

Publication number
TWI766207B
TWI766207B TW108141368A TW108141368A TWI766207B TW I766207 B TWI766207 B TW I766207B TW 108141368 A TW108141368 A TW 108141368A TW 108141368 A TW108141368 A TW 108141368A TW I766207 B TWI766207 B TW I766207B
Authority
TW
Taiwan
Prior art keywords
metadata
user data
mentioned
logical block
block address
Prior art date
Application number
TW108141368A
Other languages
English (en)
Other versions
TW202101246A (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 TW202101246A publication Critical patent/TW202101246A/zh
Application granted granted Critical
Publication of TWI766207B publication Critical patent/TWI766207B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding 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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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
    • 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/061Improving I/O performance
    • 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/064Management of blocks
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

本發明提出一種多命名空間的資料存取方法,由控制器執行,包含:從主機取得主機寫入命令,和指示寫入的關聯於一個或多個邏輯區塊位址的使用者資料和元資料;以及分別寫入使用者資料和元資料至邏輯單元號的區段中的使用者資料部分和元資料部分,其中,元資料為描述使用者資料的資料,以及元資料部分的長度為裝置端支援的多個邏輯區塊位址格式中的最大元資料長度。

Description

多命名空間的資料存取方法及電腦程式產品
本發明涉及儲存裝置,尤指一種多命名空間的資料存取方法及電腦程式產品。
閃存通常分為NOR閃存與NAND閃存。NOR閃存為隨機存取裝置,中央處理器(Host)可於位址腳位上提供任何存取NOR閃存的位址,並及時地從NOR閃存的資料腳位上獲得儲存於該位址上的資料。相反地,NAND閃存並非隨機存取,而是序列存取。NAND閃存無法像NOR閃存一樣,可以存取任何隨機位址,中央處理器反而需要寫入序列的位元組(Bytes)的值到NAND閃存中,用以定義請求命令(Command)的類型(如,讀取、寫入、抹除等),和用在此命令上的位址。位址可指向一個頁面(閃存中寫入作業的最小資料塊)或一個區塊(閃存中抹除作業的最小資料塊)。
新一代的閃存標準(如快速非揮發性記憶體Non-Volatile Memory Express,NVMe 1.4)允許中央處理器建立多個命名空間,這些命名空間可能使用不同的邏輯區塊位址格式(Logical Block Address,LBA Format)來儲存資料。因應不同的邏輯區塊位址格式,元資料(Metadata)的儲存格式也會不同,元資料是一種描述使用者資料的資料(Data about User Data)。雖然不同邏輯區塊位址格式的資料都能夠搜集成固定長度,例如4KB,但是不同邏輯區塊位址格式的元資料長度卻是不同的,增加裝置端存取NAND閃存中不同LBA格式的使用者資料和元資料的複雜度。因此,本發明提出一種多命 名空間的資料存取方法及電腦程式產品,用於解決如上所述的問題。
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。
本發明提出一種多命名空間的資料存取方法,由控制器執行,包含:從主機取得主機寫入命令,和指示寫入的關聯於一個或多個邏輯區塊位址(Logical Block Addresses,LBAs)的使用者資料和元資料;以及分別寫入使用者資料和元資料至邏輯單元號(Logical Unit Number,LUN)的區段中的使用者資料部分和元資料部分。
本發明另提出一種多命名空間的資料存取的電腦程式產品,包含由控制器的處理單元載入並執行的程式碼:從主機取得主機寫入命令,和其指示寫入的關聯於一個或多個LBAs的使用者資料和元資料,其中,主機寫入命令包含LBA格式代碼;以及依據LBA格式代碼分別寫入使用者資料和元資料至LUN的區段中的使用者資料部分和元資料部分。
元資料為描述使用者資料的資料,以及元資料部分的長度為裝置端支援的多個LBA格式中的最大元資料長度。
上述實施例的優點之一,通過將LUN中所有區段的元資料部分的長度預設為所有LBA格式中最大元資料長度,可兼容所有的LBA格式,而不需要依據不同的LBA格式來配置變動長度的元資料部分,降低寫入和讀取操作的複雜度,以及節省執行這些操作的時間。
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。
100:電子裝置
110:中央處理器
120、131:隨機存取記憶體
130:SSD控制器
132:主機介面
133:第一處理單元
135:記憶體控制器
136:第二處理單元
137:閃存介面
150:邏輯單元號(Logical Unit Numbers LUNs)
150#0~150#15:LUN
CH#0~CH#3:輸出入通道
CE#0~CE#3:致能訊號
220:ECC引擎
230:CRC引擎
240:資料快取
300:區段
310:使用者資料部分
330:元資料部分
350:CRC部分
370:ECC部分
410:使用者資料緩衝區
410#0~410#3:使用者資料緩衝區中的區域
430:元資料緩衝區
430#0~430#3:元資料緩衝區中的區域
450:CRC緩衝區
450#0~450#3:CRC緩衝區中的區域
470:ECC碼緩衝區
S510~S570:方法步驟
S610~S690:方法步驟
S810~S870:方法步驟
圖1依據本發明實施例的閃存系統架構的示意圖。
圖2為閃存介面與邏輯單元號(Logical Unit Number LUN)的連接示意圖。
圖3為依據本發明實施例的LUN中每個區段的資料組織示意圖。
圖4為依據本發明實施例的隨機存取記憶體中的緩衝區劃分示意圖。
圖5為依據本發明實施例的主機寫入命令的執行方法流程圖。
圖6為依據本發明實施例的主機寫入命令的執行方法流程圖。
圖7為依據本發明實施例的不同邏輯區塊位址格式(Logical Block Address LBA Format)的使用者資料、元資料和循環冗餘校驗碼的資料組織示意圖。
圖8為依據本發明實施例的主機讀取命令的執行方法流程圖。
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、”第二”、”第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
必須了解的是,當元件描述為”連接”或”耦接”至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為”直接連接”或”直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如”介於”相對於”直接介於”,或者是”鄰接”相對於”直接鄰接”等等。
參考圖1。電子裝置100包含主機和裝置,例如是個人電腦、筆記型 電腦(Laptop PC)、平板電腦、手機、數位相機、數位攝影機等電子產品。主機可包含中央處理器110和隨機存取記憶體(Random Access Memory,RAM,從裝置的觀點亦可視為外部隨機存取記憶體)120。裝置可包含SSD控制器(SSD Controller)130和邏輯單元號(Logical Unit Numbers,LUNs)150。SSD控制器130可包含第一處理單元133,也可以更包括隨機存取記憶體131以提高SSD控制器130的效能。第一處理單元133可通過主機介面(Host Interface)132從中央處理器110接收命令,並據此指示閃存介面137執行資料讀取、寫入、抹除等操作。中央處理器110及第一處理單元133間可通過主機介面132採用快速非揮發記憶體(Non-Volatile Memory Express,NVMe)等通信協定以進行溝通。中央處理器110及第一處理單元133中的任一個可使用多種方式實施,如使用通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行軟體以及/或韌體指令時,提供之後描述的功能。隨機存取記憶體(從裝置端的觀點,亦可視為本地隨機存取記憶體)131可儲存執行過程中需要的資料,例如,變數、資料表等。隨機存取記憶體131使用靜態隨機存取記憶體(Static Random Access Memory,SRAM)、動態隨機存取記憶體(Dynamic Random Access Memory,DRAM),或以上兩者來實施。
LUNs 150提供大量的儲存空間,通常是數百Gigabytes,甚至是Terabytes,可用於儲存大量的使用者資料,例如高解析度圖片、影片等。LUNs 150中包含控制電路和記憶體陣列,記憶體陣列中的記憶單元可為三層式單元(Triple Level Cells,TLCs)或四層式單元(Quad-Level Cells,QLCs)。
SSD控制器130包含閃存介面137,如此一來,SSD控制器130可透過閃存介面137與LUNs 150溝通。閃存介面137可採用雙倍資料率(Double Data Rate,DDR)通訊協定,例如,開放NAND快閃 (Open NAND Flash Interface,ONFI)、雙倍資料率開關(DDR Toggle)或其他介面。
SSD控制器130可包含第二處理單元136,並透過閃存介面137以操作LUNs 150,例如:輸出頁面寫入(Page Program)命令以寫入使用者資料到LUNs 150中的指定位址(目的位址),以及輸出頁面讀取(Page Read)命令以從LUNs 150中的指定位址(來源位址)讀取使用者資料。閃存介面137使用數個電子訊號來協調與LUNs 150間的資料與命令傳遞,包含資料線(Data Line)、時脈訊號(Clock Signal)與控制訊號(Control Signal)。資料線可用以傳遞命令、位址、讀出和寫入的資料;控制訊號線可用以傳遞晶片致能(Chip Enable,CE)、位址提取致能(Address Latch Enable,ALE)、命令提取致能(Command Latch Enable,CLE)、寫入致能(Write Enable,WE)等控制訊號。
第二處理單元136可控制錯誤檢查修正(Error Check and Correction,ECC)引擎220和循環冗餘校驗碼(Cyclic Redundancy Check,CRC)引擎230的運作。CRC引擎230可對使用者資料或元資料產生循環冗餘校驗碼(CRC),第二處理單元136可利用CRC碼來檢查相應使用者資料或元資料是否含有錯誤位元。ECC引擎220可對使用者資料或元資料產生錯誤檢查修正碼(ECC),ECC碼可為低密度奇偶較驗碼(Low-Density Parity Check Code,LDPC)、BCH碼(BoseChaudhuri-Hocquenghem Code)等,第二處理單元136可利用ECC碼來更正相應使用者資料或元資料的錯誤位元。
第二處理單元136可將使用者資料、元資料、CRC碼或ECC碼暫存至資料快取(Data Cache)240。資料快取240可配置空間作為使用者資料緩衝區410和元資料緩衝區430,用於分別儲存從主機取得並等待寫入至LUNs 150的不同LBA格式的使用者資料和元資料。資料快取240另可配置空間作為CRC緩衝區450以及ECC碼緩衝區470, 如圖4所示。另外,為了加速自LUNs 150的頁面讀取資料以及將資料寫入至LUNs 150的頁面,第二處理單元136可依據預設的格式來將使用者資料310、元資料330、CRC碼350或ECC碼370暫存至資料快取240,如圖3所示。如此一來,第二處理單元136可將預設格式的資料寫入至LUNs 150的頁面,並依據預設格式來解讀LUNs 150的頁面所取得的資料。
參考圖2,閃存介面137可包含四個輸出入通道(I/O Channels,以下簡稱通道)CH#0至CH#3,每一個通道連接四個LUNs,例如,通道CH#0連接LUNs 150#0、150#4、150#8和150#12。每個LUN可以NAND閃存模組實現,並且封裝為獨立的芯片(Die)。第二處理單元136可驅動閃存介面137發出致能訊號CE#0至CE#3中的一個來致能LUNs 150#0至150#3、150#4至150#7、150#8至150#11、或150#12至150#15,接著以並行的方式從致能的LUN讀取使用者資料,或者寫入使用者資料至致能的LUN。
主機可命令SSD控制器130建立一個以上的命名空間(Namespace),例如:建立二個命名空間,每一命名空間皆有獨立的LBA範圍以儲存各自的使用者資料,並採用不同的LBA格式來管理使用者資料。LBA格式定義一個LBA對應到的使用者資料和元資料的儲存空間長度。舉例來說,LBA格式可定義使用者資料的長度為512B(Bytes,位元組)或4KB(Kilo Bytes,千位元組),使用者資料所對應的元資料的長度,例如:0B、8B、16B、32B、64B或128B。為了有效地支援不同的LBA格式,在一些實施方式,SSD控制器130將使用者資料和元資料儲存在不同的LUN,例如,將使用者資料和元資料分別儲存於LUN 150#0和LUN 150#1。在這種實施方式下,SSD控制器130需建立及維護兩種不同的位址(Logical Addresses to Physical Addresses,L2P)映射表:使用者資料L2P映射表,記錄每個LBA的使用者資料記錄於LUNs 150中哪個實體位址的資訊;和元資料 L2P映射表,記錄每個LBA的元資料記錄於LUNs 150中哪個實體位址的資訊。然而,這樣的實施方式中SSD控制器130需要花費額外的運算能力來產生元資料L2P映射表,也需要LUNs 150配置額外的空間來儲存元資料L2P映射表,使用者資料以及元資料的管理及讀取/寫入都會顯著地增加韌體的複雜度以及除錯的難度。
為了克服上述的技術問題,本發明實施例揭露一種全球LBA格式以支援各種不同的LBA格式,其中,全球LBA格式包含二個部份:資料部分以及元資料部分。資料部分的長度與上述LBA格式的長度相同,例如:4KB;元資料部分的長度為128B。由於元資料部分的長度為128B,無論主機要求SSD控制器130採用何種LBA格式,元資料皆可儲存在全球LBA格式中的元資料部分,達到本發明的目的。
另外,為了提供錯誤校驗能力,全球LBA格式更包括二個部份:CRC部分以及ECC部分。CRC部分可儲存用來檢查此區段中的使用者資料和元資料是否含有錯誤位元的CRC碼;ECC部分可儲存能夠用來修正使用者資料和元資料中的錯誤位元的ECC碼。參考圖3,全球LBA格式300的長度例如是4368B,包含4KB的使用者資料部分310、128B的元資料部分330、16B的CRC部分350和128B的長度的ECC部分370。使用者資料部分310可儲存1個4KB長度的使用者資料或者8個512B長度的使用者資料。元資料部分330可儲存關聯於4KB長度的使用者資料的元資料或者關聯於8個512B長度的使用者資料的元資料,或是元資料部分330可儲存8筆元資料,每一筆元資料對應至1個512B長度的使用者資料。
圖5為依據本發明實施例的主機寫入命令的執行方法流程圖,此方法由SSD控制器130載入並執行特定軟體或韌體的程式碼時實施。
步驟S510:從主機取得主機寫入命令,其中,寫入命令包括使用者資料和元資料。隨機存取記憶體120中的特定區域可配置提交佇列(Submission queue)用以儲存主機寫入命令,另一個特定區域可儲 存主機寫入命令所包括的使用者資料和元資料。SSD控制器130可自提交佇列中取得主機寫入命令,再依據主機寫入命令自隨機存取記憶體120取得使用者資料和元資料。SSD控制器130中的記憶體控制器135可使用第三代雙倍資料率(Double Data Rate 3,DDR3)、第四代雙倍資料率(Double Data Rate 4,DDR4)等通訊協定來存取隨機存取記憶體120。
步驟S530:將使用者資料和元資料儲存至資料快取240。參考圖7,SSD控制器130將使用者資料和元資料儲存至資料快取240。資料快取240的使用者資料緩衝區410包含四個長度為4KB的區域(Regions)410#0至410#3,和元資料緩衝區430包含四個長度為128B的區域430#0至430#3。
假設,一個LBA編號對應到512B的使用者資料和8B的元資料。為了符合全球LBA格式,第二處理單元136可概念性地將區域410#0分為8個512B子區(Sub-regions),分別儲存8個LBA的使用者資料。第二處理單元136另可概念性地將區域430#0分為8個16B子區,分別儲存8個LBA的元資料。但由於每個子區儲存8B的元資料後還剩下8B的空間,第二處理單元136可於剩餘的空間填滿虛假值(如區域430#0中填滿斜線的方框)。
假設,一個LBA編號對應到4KB的使用者資料和128B的元資料。第二處理單元136可使用區域410#1的完整空間儲存此LBA的使用者資料,並使用區域430#1的完整空間儲存此LBA的元資料。
假設,一個LBA編號對應到4KB的使用者資料和8B的元資料。第二處理單元136可使用區域410#2的完整空間儲存此LBA的使用者資料,使用區域430#2的8B空間儲存此LBA的元資料,並將其中的剩餘空間填滿虛假資料(如區域430#2中填滿斜線的方框)。
假設,一個LBA編號對應到4KB的使用者資料和64B的元資料。第二處理單元136可使用區域410#3的完整空間儲存此LBA的使用者資 料,使用區域430#3的64B空間儲存此LBA的元資料,並將其中的剩餘空間填滿虛假資料(如區域430#3中填滿斜線的方框)。
步驟S550:對使用者資料和元資料產生CRC碼並將CRC碼儲存至資料快取240。第二處理單元136驅動CRC引擎230並依據資料快取240中的使用者資料和元資料產生CRC碼並儲存至資料快取240中的CRC緩衝區450。參考圖7,CRC緩衝區450包含四個長度為16B的區域450#0至450#3。
參考圖7,第二處理單元136可概念性地將區域450#0分為8個2B子區,分別儲存依據區域410#0中8個子區的資料和區域430#0中8個子區的資料所產生的CRC碼。例如,區域450#0的第1個子區儲存依據區域410#0中第1個子區的資料和區域430#0中第1個子區的資料所產生的CRC碼,依此類推。
步驟S570:依據全球LBA格式而將使用者資料、元資料、CRC碼和ECC碼編程至LUNs 150,其中,ECC碼乃依據使用者資料和元資料所產生。第二處理單元136依序將使用者資料和元資料輸出至ECC引擎220以產生ECC碼,最後,依據全球LBA格式而將使用者資料、元資料、CRC碼和ECC碼編程至LUNs 150中主動區塊的空白頁面。另外,假設一筆使用者資料的長度為4KB,空白頁面的長度為18KB,因此,第二處理單元136可依據全球LBA格式逕行使用者資料、元資料以及其對應的CRC碼和ECC碼編程至空白頁面,剩餘部份則填入虛假值;亦可等到收集4筆使用者資料後,再依據全球LBA格式將4筆使用者資料、元資料以及其對應的CRC碼和ECC碼編程至空白頁面。
圖6為依據本發明實施例的主機寫入命令的執行方法流程圖,此方法由SSD控制器130載入並執行特定軟體或韌體的程式碼時實施。
步驟S610:在資料快取240規劃出多個LBA空間,每一個LBA空間可用以緩衝4KB長度的使用者資料、128B長度的元資料以及16B長 度的CRC碼。
步驟S630:從主機取得主機寫入命令,其中,寫入命令包括使用者資料和元資料。
步驟S650:將使用者資料和元資料儲存至LBA空間中。SSD控制器130將寫入命令的使用者資料和元資料寫入LBA空間中。
步驟S670:對使用者資料和元資料產生CRC碼並將CRC碼儲存至LBA空間中。
步驟S690:依據全球LBA格式而將使用者資料、元資料、CRC碼和ECC碼編程至LUNs 150,其中,ECC碼乃依據使用者資料和元資料所產生。
因應圖3所示每個區段的資料組織實施例,圖8為依據本發明實施例的主機讀取命令的執行方法流程圖,此方法由SSD控制器130載入並執行特定軟體或韌體的程式碼時實施。
步驟S810:從主機取得主機讀取命令,其中,主機讀取命令包括目標命名空間編號以及目標LBA編號。主機讀取命令可包含目標命名空間編號、目標LBA編號、隨機存取記憶體120的位址,即用以儲存讀出的使用者資料和元資料的位址等資訊。目標命名空間編號例如為命名空間#1,目標LBA編號例如為LBA#100。
步驟S820:依據目標命名空間編號、目標LBA編號以及L2P映射表以獲得實體位址。實體位址例如為區塊#10的頁面#20的區段#1。
步驟S830:依據全球LBA格式從實體位址讀取目標資料。目標資料此時的格式如圖3所示。
步驟S840:依據全球LBA格式以及指定的LBA格式來解析目標資料以取得相應於LBA編號的使用者資料、元資料和CRC碼,其中,指定的LBA格式為目標命名空間編號建立時所指定。SSD控制器130可在隨機存取記憶體131或資料快取240中維護LBA格式對照表,包含多筆紀錄,用於儲存每個命名空間對應的LBA格式(也就是指定的 LBA格式)。在一些實施例,每筆記錄可包含兩個欄位:命令空間編號及指定的LBA格式編號。在另一些實施例,每筆記錄可包含三個欄位:命令空間編號、指定的LBA格式的使用者資料長度及元資料長度。第二處理單元136先將目標資料輸入至ECC引擎220中的ECC解碼器進行錯誤糾正。當錯誤糾正完成後,CRC引擎230可輸出相應於LBA編號的使用者資料、元資料和CRC碼。此時使用者資料以及CRC碼的長度為已知,但是元資料的長度為未知。第二處理單元136再依據指定的LBA格式來判斷元資料的有效長度及位置以取得正確的元資料,例如:128B的元資料中僅前8B的資料為正確的元資料。在另一實施例中,第二處理單元136只將輸入部份目標資料至ECC引擎220中的ECC解碼器進行錯誤糾正。當錯誤糾正完成後,CRC引擎230可輸出相應於LBA編號的使用者資料和元資料。
步驟S850:依據CRC碼來判斷相應於LBA編號的使用者資料以及元資料的正確性。第二處理單元136將對應於LBA編號的使用者資料和元資料輸入至CRC引擎230中的CRC解碼器,並比對CRC解碼器所產生的結果是否與CRC碼相同,如果是,流程進入步驟S860;否則,流程進入S870。
步驟S860:輸出對應於LBA編號的使用者資料和元資料至主機。SSD控制器130將對應於LBA編號的使用者資料和元資料儲存至主機讀取命令指定的隨機存取記憶體120的位址。
步驟S870:輸出錯誤訊息至主機。由於相應於LBA編號的使用者資料及元資料所包含的錯誤位元數已超過ECC引擎220的修正能力,因此,ECC引擎220無法輸出正確的相應於LBA編號的使用者資料及元資料,因此,SSD控制器130輸出錯誤訊息至主機。
參考圖7的第一個LBA格式的使用案例,第一處理單元133可讀取頁面緩衝器中相應於區域410#0中關聯於指定一個或多個LBA編號的子區的使用者資料,和頁面緩衝器中相應於區域430#0中關聯於指 定一或多個LBA編號的子區的前8B的元資料。
參考圖7的第二個LBA格式的使用案例,第一處理單元133可讀取頁面緩衝器中相應於區域410#1中的使用者資料,和頁面緩衝器中相應於區域430#1中的元資料。
參考圖7的第三個LBA格式的使用案例,第一處理單元133可讀取頁面緩衝器中相應於區域410#2中的使用者資料,和頁面緩衝器中相應於區域430#2中前8B的元資料。
參考圖7的第四個LBA格式的使用案例,第一處理單元133可讀取頁面緩衝器中相應於區域410#3中的使用者資料,和頁面緩衝器中相應於區域430#3中前64B的元資料。
通過將LUNs 150中所有區段的使用者資料部分的長度預設為所有LBA格式中最大使用者資料長度,和將其中所有區段的元資料部分的長度預設為所有LBA格式中最大元資料長度,可兼容所有的LBA格式,而不需要依據不同的LBA格式來配置變動長度的使用者資料部分和元資料部分,降低寫入和讀取操作的複雜度,和節省執行這些操作的時間。
本發明所述的方法中的全部或部分步驟可以計算機指令實現,例如儲存裝置中特定硬體的驅動程式,或其他類型程式。所屬技術領域具有通常知識者可將本發明實施例的方法撰寫成計算機指令,為求簡潔不再加以描述。依據本發明實施例所述方法實施的計算機指令可儲存於適當的計算機可讀取媒體,例如DVD、CD-ROM、USB碟、硬碟,亦可置於能夠通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。
雖然圖1和圖2中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,以達成更佳的技術效果。此外,雖然圖5、圖6和圖8的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提, 修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
S510~S570:方法步驟

Claims (15)

  1. 一種多命名空間的資料存取方法,由一控制器執行,包含:從一主機取得相應於一命名空間的一主機寫入命令,包含一個或多個邏輯區塊位址的一使用者資料和一元資料,其中,上述命名空間使用一第一邏輯區塊位址格式管理;以及取代上述第一邏輯區塊位址格式而依據一全球邏輯區塊位址格式分別寫入上述使用者資料和上述元資料至一邏輯單元號的一區段中的一使用者資料部分和一元資料部分,其中,上述全球邏輯區塊位址格式定義上述元資料部分的長度固定為上述控制器支援的包含上述第一邏輯區塊位址格式的多個邏輯區塊位址格式中的最大元資料長度。
  2. 如請求項1所述的多命名空間的資料存取方法,其中,上述全球邏輯區塊位址格式定義上述使用者資料部分的長度為上述控制器支援的包含上述第一邏輯區塊位址格式的上述邏輯區塊位址格式中的最大使用者資料長度。
  3. 如請求項1至2中任一項所述的多命名空間的資料存取方法,其中,上述使用者資料部分的長度為4KB,以及上述元資料部分的長度為128B。
  4. 如請求項1至2中任一項所述的多命名空間的資料存取方法,其中,所述邏輯單元號的實體空間包含多個區段,每個上述區段包含使用者資料部分和元資料部分,所有上述使用者資料部分的長度都相同,以及所有上述元資料部分的長度都相同。
  5. 如請求項1所述的多命名空間的資料存取方法,其中,上述邏輯單元號的上述區段包含一循環冗餘校驗部分,上述方法包含:依據關聯於上述邏輯區塊位址的上述使用者資料和上述元資料產生循環冗餘校驗碼;以及 寫入上述循環冗餘校驗碼至上述區段中的上述循環冗餘校驗部分。
  6. 如請求項1所述的多命名空間的資料存取方法,上述方法包含:依據上述第一邏輯區塊位址格式分別安排及儲存上述使用者資料及上述元資料至一頁面緩衝器中的一使用者資料區域和一元資料區域;以及依據上述全球邏輯區塊位址格式分別將上述頁面緩衝器的上述使用者資料區域和上述元資料區域中的資料寫入上述邏輯單元號的上述區段中的上述使用者資料部分和上述元資料部分。
  7. 如請求項1所述的多命名空間的資料存取方法,其中,上述元資料部分儲存上述元資料和一虛假值。
  8. 如請求項1所述的多命名空間的資料存取方法,包含:從上述主機取得相應於上述命名空間的一主機讀取命令,上述主機讀取命令指示讀取上述邏輯區塊位址的上述使用者資料和上述元資料;依據上述全球邏輯區塊位址格式讀取上述邏輯單元號的上述區段中的上述使用者資料部分和上述元資料部分的資料;以及依據上述第一邏輯區塊位址格式輸出上述使用者資料部分中關聯於上述邏輯區塊位址的上述使用者資料以和上述元資料部分中關聯於上述邏輯區塊位址的上述元資料給上述主機。
  9. 如請求項8所述的多命名空間的資料存取方法,上述方法包含:分別儲存上述使用者資料部分和上述元資料部分的資料至一頁面緩衝器中的一使用者資料區域和一元資料區域;以及依據上述第一邏輯區塊位址格式輸出上述使用者資料區域中關聯於上述邏輯區塊位址的上述使用者資料和上述元資料區域中關聯於上述邏輯區塊位址的上述元資料給上述主機。
  10. 如請求項8至9中任一項所述的多命名空間的資料存取方法,其中上述元資料部分儲存上述元資料和一虛假值。
  11. 一種電腦程式產品,用於多命名空間的資料存取,包含由一控制器的一處理單元載入並執行的程式碼:從一主機取得相應於一命名空間的一主機寫入命令,包含一個或多個邏輯區塊位址的一使用者資料和一元資料,其中,上述命名空間使用一第一邏輯區塊位址格式管理;以及取代上述第一邏輯區塊位址格式而依據一全球邏輯區塊位址格式分別寫入上述使用者資料和上述元資料至一邏輯單元號的一區段中的一使用者資料部分和一元資料部分,其中,上述全球邏輯區塊位址格式定義上述元資料部分的長度固定為上述控制器支援的包含上述第一邏輯區塊位址格式的多個邏輯區塊位址格式中的最大元資料長度。
  12. 如請求項11所述的電腦程式產品,其中,上述全球邏輯區塊位址格式定義上述使用者資料部分的長度為上述裝置端支援的上述邏輯區塊位址格式中的包含上述第一邏輯區塊位址格式的最大使用者資料長度。
  13. 如請求項11至12中任一項所述的電腦程式產品,其中,所述邏輯單元號的實體空間包含多個區段,每個上述區段包含使用者資料部分和元資料部分,所有上述使用者資料部分的長度都相同,以及所有上述元資料部分的長度都相同。
  14. 如請求項11至12中任一項所述的電腦程式產品,其中,上述元資料部分儲存上述元資料和一虛假值。
  15. 如請求項11所述的電腦程式產品,包含程式碼:從上述主機取得相應於上述命名空間的一主機讀取命令,上述主機讀取命令指示讀取上述邏輯區塊位址的上述使用者資料和上述元資料;依據上述全球邏輯區塊位址格式讀取上述邏輯單元號的上述區段中的上述使用者資料部分和上述元資料部分的資料;以及 依據上述第一邏輯區塊位址格式輸出上述使用者資料部分中關聯於上述邏輯區塊位址的上述使用者資料和上述元資料部分中關聯於上述邏輯區塊位址的上述元資料給上述主機。
TW108141368A 2019-06-21 2019-11-14 多命名空間的資料存取方法及電腦程式產品 TWI766207B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962864569P 2019-06-21 2019-06-21
US62/864,569 2019-06-21

Publications (2)

Publication Number Publication Date
TW202101246A TW202101246A (zh) 2021-01-01
TWI766207B true TWI766207B (zh) 2022-06-01

Family

ID=73796612

Family Applications (2)

Application Number Title Priority Date Filing Date
TW108135062A TWI719654B (zh) 2019-06-21 2019-09-27 閃存實體資源集合管理裝置及方法以及電腦程式產品
TW108141368A TWI766207B (zh) 2019-06-21 2019-11-14 多命名空間的資料存取方法及電腦程式產品

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW108135062A TWI719654B (zh) 2019-06-21 2019-09-27 閃存實體資源集合管理裝置及方法以及電腦程式產品

Country Status (3)

Country Link
US (3) US11288182B2 (zh)
CN (2) CN112115067A (zh)
TW (2) TWI719654B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220076803A (ko) * 2020-12-01 2022-06-08 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN112558884B (zh) * 2020-12-23 2023-03-14 湖南国科微电子股份有限公司 数据保护方法以及基于NVMe的存储设备
JP2022118489A (ja) * 2021-02-02 2022-08-15 キオクシア株式会社 メモリシステム
CN113093694B (zh) * 2021-03-18 2022-05-20 东风汽车集团股份有限公司 一种基于uds的车载电控单元数据刷写方法及系统
US11977783B2 (en) 2021-10-28 2024-05-07 Silicon Motion, Inc. Method and apparatus for performing data access control of memory device with aid of predetermined command
US20230137938A1 (en) * 2021-10-28 2023-05-04 Silicon Motion, Inc. Method and apparatus for performing data access control of memory device with aid of predetermined command
US20240126438A1 (en) * 2022-10-18 2024-04-18 Qualcomm Incorporated Metadata registers for a memory device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034562A (zh) * 2011-07-14 2013-04-10 Lsi公司 闪存介质控制器中的元数据处理
US20170024137A1 (en) * 2015-07-23 2017-01-26 Kabushiki Kaisha Toshiba Memory system for controlling nonvolatile memory
TWI622890B (zh) * 2016-12-29 2018-05-01 慧榮科技股份有限公司 建立多重命名空間方法與存取多重命名空間的資料的方法
TW201818249A (zh) * 2016-10-31 2018-05-16 三星電子股份有限公司 操作對多重名稱空間進行管理的儲存裝置的方法
TWI659359B (zh) * 2018-04-27 2019-05-11 慧榮科技股份有限公司 控制儲存裝置之方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3197815B2 (ja) * 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
KR100806343B1 (ko) * 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
TW200832440A (en) * 2007-01-25 2008-08-01 Genesys Logic Inc Flash memory translation layer system
US8713283B2 (en) * 2007-06-08 2014-04-29 Sandisk Technologies Inc. Method of interfacing a host operating through a logical address space with a direct file storage medium
US7917803B2 (en) * 2008-06-17 2011-03-29 Seagate Technology Llc Data conflict resolution for solid-state memory devices
US8732388B2 (en) * 2008-09-16 2014-05-20 Micron Technology, Inc. Embedded mapping information for memory devices
TWI395100B (zh) 2009-01-13 2013-05-01 Innostor Technology Corp 應用於快閃記憶體的階級化分層處理資料的方法及相關快閃記憶體裝置
US8589655B2 (en) * 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US8700709B2 (en) 2011-07-29 2014-04-15 Microsoft Corporation Conditional location-based reminders
US9116792B2 (en) 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
KR20150105323A (ko) * 2013-01-08 2015-09-16 바이올린 메모리 인코포레이티드 데이터 스토리지 방법 및 시스템
US9495288B2 (en) 2013-01-22 2016-11-15 Seagate Technology Llc Variable-size flash translation layer
TWI609263B (zh) * 2013-08-16 2017-12-21 司固科技公司 可變大小快閃轉變層
CN104425020A (zh) * 2013-08-23 2015-03-18 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
US20160342545A1 (en) * 2014-02-12 2016-11-24 Hitachi, Ltd. Data memory device
CN106462510B (zh) * 2014-03-06 2019-12-13 伊姆西公司 具有独立直接接入大量固态存储资源的多处理器系统
US20160070644A1 (en) * 2014-09-10 2016-03-10 Netapp, Inc. Offset range operation striping to improve concurrency of execution and reduce contention among resources
US9996473B2 (en) * 2015-11-13 2018-06-12 Samsung Electronics., Ltd Selective underlying exposure storage mapping
JP6523193B2 (ja) * 2016-03-08 2019-05-29 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
US10459644B2 (en) * 2016-10-28 2019-10-29 Western Digital Techologies, Inc. Non-volatile storage system with integrated compute engine and optimized use of local fast memory
US10037152B2 (en) * 2016-12-19 2018-07-31 Alibaba Group Holding Limited Method and system of high-throughput high-capacity storage appliance with flash translation layer escalation and global optimization on raw NAND flash
TWI602074B (zh) 2016-12-29 2017-10-11 慧榮科技股份有限公司 建立多重命名空間方法與存取多重命名空間的資料的方法
JP6765322B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
US10331584B2 (en) * 2017-03-09 2019-06-25 Toshiba Memory Corporation Internal system namespace exposed through use of two local processors and controller memory buffer with two reserved areas
US20190114112A1 (en) * 2017-10-12 2019-04-18 Silicon Motion, Inc. Data storage management method and data storage system with namespace planning
US10545687B1 (en) * 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034562A (zh) * 2011-07-14 2013-04-10 Lsi公司 闪存介质控制器中的元数据处理
US20170024137A1 (en) * 2015-07-23 2017-01-26 Kabushiki Kaisha Toshiba Memory system for controlling nonvolatile memory
TW201818249A (zh) * 2016-10-31 2018-05-16 三星電子股份有限公司 操作對多重名稱空間進行管理的儲存裝置的方法
TWI622890B (zh) * 2016-12-29 2018-05-01 慧榮科技股份有限公司 建立多重命名空間方法與存取多重命名空間的資料的方法
TWI659359B (zh) * 2018-04-27 2019-05-11 慧榮科技股份有限公司 控制儲存裝置之方法

Also Published As

Publication number Publication date
US11449416B2 (en) 2022-09-20
US20200401508A1 (en) 2020-12-24
US11675698B2 (en) 2023-06-13
TW202101227A (zh) 2021-01-01
US11288182B2 (en) 2022-03-29
CN112115067A (zh) 2020-12-22
TWI719654B (zh) 2021-02-21
TW202101246A (zh) 2021-01-01
US20200401509A1 (en) 2020-12-24
CN112115068A (zh) 2020-12-22
US20220374350A1 (en) 2022-11-24

Similar Documents

Publication Publication Date Title
TWI766207B (zh) 多命名空間的資料存取方法及電腦程式產品
JP4829365B1 (ja) データ記憶装置及びデータ書き込み方法
US10509602B2 (en) Data storage device and operating method thereof
TWI791536B (zh) 記憶體控制器、系統及包括記憶體控制器的應用處理器
US20210278998A1 (en) Architecture and design of a storage device controller for hyperscale infrastructure
US20140101386A1 (en) Data storage device including buffer memory
TW201643690A (zh) 資料儲存系統及其特定指令執行方法
TWI489272B (zh) 保護資料的方法、記憶體控制器與記憶體儲存裝置
KR20200121645A (ko) 컨트롤러 및 그것의 동작 방법과 메모리 시스템
TWI523030B (zh) 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置
CN110968522A (zh) 存储器系统及其操作方法、包括存储器系统的数据库系统
KR20200114212A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102530583B1 (ko) 저장 장치 및 메모리 시스템
US11681638B2 (en) Method of synchronizing time between host device and storage device and system performing the same
TWI756854B (zh) 管理資料儲存的方法及裝置以及電腦程式產品
US11216207B2 (en) Apparatus and method for programming user data on the pages and the parity of the page group into flash modules
US20230315646A1 (en) Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same
TWI749490B (zh) 寫入閃存管理表的電腦程式產品及方法及裝置
CN115390747A (zh) 存储设备及其操作方法
TWI754396B (zh) 快閃記憶體的資料儲存方法及裝置以及電腦程式產品
KR20230037255A (ko) 이벤트 로그 관리 방법, 컨트롤러 및 저장 장치
TWI648629B (zh) 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置
KR20210018570A (ko) 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치
TWI835027B (zh) 更新主機與閃存位址對照表的方法及電腦程式產品及裝置
TWI817315B (zh) 映射表管理方法、記憶體控制電路單元與記憶體儲存裝置