TWI647566B - 資料儲存裝置與資料處理方法 - Google Patents

資料儲存裝置與資料處理方法 Download PDF

Info

Publication number
TWI647566B
TWI647566B TW107102032A TW107102032A TWI647566B TW I647566 B TWI647566 B TW I647566B TW 107102032 A TW107102032 A TW 107102032A TW 107102032 A TW107102032 A TW 107102032A TW I647566 B TWI647566 B TW I647566B
Authority
TW
Taiwan
Prior art keywords
logical address
group
bits
address
bit
Prior art date
Application number
TW107102032A
Other languages
English (en)
Other versions
TW201933114A (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 TW107102032A priority Critical patent/TWI647566B/zh
Priority to CN201810718460.6A priority patent/CN110059031B/zh
Application granted granted Critical
Publication of TWI647566B publication Critical patent/TWI647566B/zh
Priority to US16/249,099 priority patent/US10698814B2/en
Publication of TW201933114A publication Critical patent/TW201933114A/zh

Links

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/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
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • 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
    • 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
    • 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/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
    • 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
    • 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
    • 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)
  • Memory System (AREA)

Abstract

一種資料儲存裝置,包括一記憶體裝置以及一記憶體控制器。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置,並建立一實體位址至邏輯位址對照表以及一邏輯位址群組記錄表。實體位址至邏輯位址對照表包含了連續的實體位址及其對應之邏輯位址。邏輯位址群組記錄表標註了多個邏輯位址群組的狀態。每一個邏輯位址群組的狀態係用來表示實體位址至邏輯位址對照表中是否有記錄位於該邏輯位址群組之中的任一邏輯位址。邏輯位址群組記錄表包含複數維度之群組位元,邏輯位址群組記錄表利用複數群組位元區別不同的邏輯位址群組。當記憶體控制器接收用以要求將一第一特定邏輯位址的資料寫入至記憶體裝置之一寫入命令時,記憶體控制器根據第一特定邏輯位址決定出第一特定邏輯位址於各維度所對應之群組位元,並且對應地設定等群組位元之一數位值。

Description

資料儲存裝置與資料處理方法
本發明係有關於一種資料處理方法,可有效提升資料儲存裝置的存取效能,並且大幅縮短搜尋出所需之實體位址的時間。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合SD/MMC規格、CF規格、MS規格與XD規格的記憶卡、固態硬碟、嵌入式多媒體記憶卡(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效率的存取控制也變成一個重要的議題。
在資料儲存裝置操作的過程中通常會在本身的緩衝記憶體中儲存一實體位址至邏輯位址對照表或是至少一個邏輯位址至實體位址對照表,而在記憶體控制器接收到一讀取命令時可以從上述對照表搜尋出所需的實體位址。然而,隨著區塊的大小增加及所包含的資料頁也跟著變多的情形下,上述對照表的大小也會大幅增加,因此搜尋出所需之實體位址的時間也會增加許多,因此影響到資料儲存裝置的存取效能。
有鑒於此,本發明提出一種資料處理方法,可有效提升資料儲存裝置的存取效能,並且大幅縮短搜尋出所需之 實體位址的時間。
本發明揭露一種資料儲存裝置,包括一記憶體裝置以及一記憶體控制器。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置,並建立一實體位址至邏輯位址對照表以及一邏輯位址群組記錄表。實體位址至邏輯位址對照表包含了連續的實體位址及其對應之邏輯位址。邏輯位址群組記錄表標註了多個邏輯位址群組的狀態。每一個邏輯位址群組的狀態係用來表示實體位址至邏輯位址對照表中是否有記錄位於該邏輯位址群組之中的任一邏輯位址。邏輯位址群組記錄表包含複數維度之群組位元,邏輯位址群組記錄表利用複數群組位元區別不同的邏輯位址群組。當記憶體控制器接收用以要求將一第一特定邏輯位址的資料寫入至記憶體裝置之一寫入命令時,記憶體控制器根據第一特定邏輯位址決定出第一特定邏輯位址於各維度所對應之群組位元,並且對應地設定等群組位元之一數位值。
本發明揭露一種資料處理方法,適用於一資料儲存裝置,資料儲存裝置包括一記憶體裝置以及一記憶體控制器,記憶體控制器耦接記憶體裝置,用以存取記憶體裝置,該方法包括:建立一實體位址至邏輯位址對照表,其中實體位址至邏輯位址對照表包含了連續的實體位址及其對應之邏輯位址;建立一邏輯位址群組記錄表,其中邏輯位址群組記錄表標註了多個邏輯位址群組的狀態,每一個邏輯位址群組的狀態係用來表示實體位址至邏輯位址對照表中是否有記錄位於邏輯位址群 組之中的任一邏輯位址,並且其中邏輯位址群組記錄表包含複數維度之群組位元,邏輯位址群組記錄表利用複數群組位元區別不同的邏輯位址群組;接收用以要求將一第一特定邏輯位址的資料寫入至記憶體裝置之一寫入命令;以及根據第一特定邏輯位址決定出第一特定邏輯位址於各維度所對應之群組位元,並且對應地設定等群組位元之一數位值。
100‧‧‧資料儲存裝置
110‧‧‧記憶體控制器
112‧‧‧微處理器
112M‧‧‧唯讀記憶體
112C‧‧‧程式碼
114‧‧‧控制邏輯
116‧‧‧緩衝記憶體
118‧‧‧介面邏輯
120‧‧‧記憶體裝置
130‧‧‧主機裝置
132‧‧‧編碼器
134‧‧‧解碼器
200‧‧‧實體位址至邏輯位址對照表
210、220‧‧‧快閃記憶體晶片
310_1、310_2‧‧‧邏輯位址至實體位址對照表
400、500‧‧‧邏輯位址群組記錄表
B_0、B_M‧‧‧記憶體區塊
Bit_0、Bit_1、Bit_2、Bit_3、Bit_4、Bit_5、Bit_6、Bit_7、*Bit_0、*Bit_1、*Bit_2、*Bit_3、*Bit_4、*Bit_5、*Bit_6、 *Bit_7、*Bit_7、**Bit_0、**Bit_1、**Bit_2、**Bit_3‧‧‧群組位元
LBA_0、LBA_1、LBA_2、LBA_5、LBA_6、LBA_7、LBA_100、LBA_255、LBA_256、LBA_257、LBA_258、LBA_350、、LBA_500、LBA_511‧‧‧邏輯位址
P0、P1、P2、P3、P4、P5、PN‧‧‧資料頁
Section_0、Section_1、Section_2、Section_7、Section_8、Section_9、Section_10、Section_15、Section_16、Section_17、Section_18、Section_31、Section_56、Section_57、Section_58、Section_63‧‧‧邏輯位址群組
第1圖係顯示根據本發明之一實施例所述之記憶體裝置的示意圖。
第2圖係顯示根據本發明之一實施例所述之記憶體裝置及對應之實體位址至邏輯位址對照表的示意圖。
第3圖係顯示根據本發明之一實施例所述之邏輯位址至實體位址對照表的示意圖。
第4圖係顯示根據本發明之一實施例所述之邏輯位址群組記錄表所記錄的邏輯位址群組示意圖。
第5圖係顯示根據本發明之一實施例所述之邏輯位址群組記錄表示意圖。
第6圖係顯示根據本發明之一實施例所述之於資料儲存裝置應用多維度之邏輯位址群組記錄表之對應資料處理方法流程圖。
第7A圖與第7B圖係顯示根據本發明之一實施例所述之二維邏輯位址群組記錄表之各維度之群組位元與邏輯位址群組編號示意圖。
第8A圖與第8B圖係顯示根據本發明之一實施例所述之三維邏輯位址群組記錄表之各維度之群組位元與邏輯位址群組編號示意圖。
第9圖係顯示根據本發明一實施例所述之存取記憶體裝置的流程圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置100的示意圖。資料儲存裝置100包括一記憶體裝置120,例如,一快閃記憶體(Flash Memory)模組,以及一記憶體控制器110,且記憶體控制器110用來存取(Access)記憶體裝置120。根據本發明一實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對記憶體裝置120之存取。控制邏輯114包含了一編碼器132以及一解碼器134,其中編碼器132用來對寫入到記憶體裝置120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),而解碼器134用來將從記憶體裝置120所讀出的資料進行解碼。
於典型狀況下,記憶體裝置120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個記憶體區塊(Block),而該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行抹除資料運作係以區塊為單位來進行。另外,一記憶體區塊可記錄(包含)特定數量的資料頁(Page),其中該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制記憶體裝置120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主機裝置(Host Device)130溝通。緩衝記憶體116係以隨機存取記憶體(Random Access Memory,RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,SRAM),但本發明不限於此。
在一實施例中,資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,資料儲存裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置, 以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是該電子裝置的一處理器。
主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者進一步控制、管理資料儲存裝置100。
第2圖係顯示根據本發明之一實施例所述之記憶體裝置及對應之實體位址至邏輯位址對照表的示意圖。根據本發明之一實施例,記憶體裝置120可包含多個快閃記憶體晶片,例如快閃記憶體晶片210、220,每一個快閃記憶體晶片包含了多個記憶體區塊B_0~B_M,而每一個記憶體區塊包含了N個資料頁P0~PN,其中N為一正整數。在以下的說明中,記憶體控制器110係將資料循序寫入到快閃記憶體晶片210的記憶體區塊B_0的資料頁,然而,需注意的是,上述的“記憶體區塊”在實作上也可以是包含了多個晶片之位於不同平面(plane)的多個記憶體區塊(一般稱為“超級區塊”),舉例來說,假設快閃記憶體晶片210、220均包含了兩個平面(plane),而記憶體區塊B_0及B_M是位於不同的平面,則快閃記憶體晶片210的記憶體區塊B_0、B_M以及快閃記憶體晶片220的記憶體區塊B_0、B_M可以構成一個超級區塊。為了便於說明,以下段落關於記憶體裝置的存取係以記憶體區塊B_0為例做說明,但本領域技術人員可推知其同樣適用於超級區塊。
在資料寫入至記憶體區塊B_0時,微處理器112會建立一實體位址至邏輯位址對照表(以下稱P2L對照表)200,並 將此P2L對照表200儲存於緩衝記憶體116之中,其中P2L對照表200包含記憶體區塊B_0中的連續之資料頁的實體位址P0~PN,以及所對應之邏輯位址。詳細來說,記憶體控制器110首先將來自主機裝置130且具有邏輯位址LBA_5的資料寫入至資料頁P0中,接著,依序將來自主機裝置130且具有邏輯位址LBA_500、LBA_350、LBA_6、LBA_7、LBA_100的資料分別寫入至資料頁P1~P5。此外,在記憶體區塊B_0的所有資料頁P0~PN都完成資料寫入之後,微處理器112可將P2L對照表200儲存至記憶體模組120。需注意的是,在本實施例中,邏輯位址的序號代表著其順序,而連續的序號代表著連續的邏輯位址。
如上述,隨著記憶體裝置的容量增加,其所包含的記憶體區塊及資料頁的數量也跟著變多的情形下,上述P2L對照表200的大小也會大幅增加,因此根據P2L對照表200搜尋出所需之實體位址的時間也會增加許多,進而影響到資料儲存裝置的存取效能。
有鑒於此,本發明提出一種多維度之邏輯位址群組記錄表架構及於資料儲存裝置應用此多維度之邏輯位址群組記錄表之對應資料處理方法,可有效提升資料儲存裝置的存取效能、節省記錄表所佔用的記憶體空間,並且大幅提升判斷實體位址之精準度及縮短搜尋出所需之實體位址的時間。
根據本發明之一實施例,除上述P2L對照表外,微處理器112可另外建立一邏輯位址群組記錄表(Logical address section table),亦可稱目前記憶體區塊命中記錄表(Current Block Hit Table,縮寫為CBHT),並儲存在緩衝記憶體116中, 其中邏輯位址群組記錄表標註了多個邏輯位址群組的狀態,其中每一個邏輯位址群組的該狀態係用來表示P2L對照表200中是否有記錄位於該邏輯位址群組之中的任一邏輯位址,即,目前接收資料的記憶體區塊(例如,目前記憶體區塊,諸如上述之記憶體區塊B_0)是否存有該邏輯位址群組之中的任一邏輯位址的資料。如此一來,每當記憶體控制器110接收到一讀取命令以要求讀取該記憶體裝置中的一資料時,可先根據對應之邏輯位址群組於邏輯位址群組記錄表所對應之狀態決定是否搜尋P2L對照表200。
當讀取位址所屬之邏輯位址群組於邏輯位址群組記錄表所對應之狀態指示出P2L對照表200記錄有位於該邏輯位址群組之中的任一邏輯位址,則記憶體控制器110可進一步搜尋P2L對照表200。當讀取位址所屬之邏輯位址群組於邏輯位址群組記錄表所對應之狀態指示出P2L對照表200並未記錄位於該邏輯位址群組之中的任一邏輯位址,則記憶體控制器110無須搜尋P2L對照表200,而改為搜尋其他對照表(以下將有更詳細的介紹),以縮短搜尋出所需之實體位址的時間。
根據本發明之一實施例,每一個邏輯位址群組係包含了一邏輯位址範圍,且該邏輯位址範圍係相同於該記憶體裝置所使用之一邏輯位址至實體位址對照表的範圍。一般而言,記憶體裝置120中會儲存一個全域邏輯位址至實體位址對照表(以下稱GL2P對照表),該全域邏輯位址至實體位址對照表包含有多個局部邏輯位址至實體位址對照表(以下稱L2P對照表),而每一個L2P對照表都包含了一邏輯位址範圍的映射資訊。於 一使用情境中,記憶體區塊可依據其使用狀態區分為目前區塊(current block)、資料區塊(data block)以及空閒區塊(spare block)。當主機裝置130寫入資料至資料儲存裝置100時,微處理器112可從空閒區塊中選取一個記憶體區塊作為目前區塊,並且將資料寫入該目前區塊,並且在緩衝記憶體116中維護該目前區塊的P2L對照表。當目前區塊寫滿時,微處理器112可將目前區塊的P2L對照表儲存到記憶體裝置120,並且依據P2L對照表更新記憶體裝置120中的多個L2P對照表。接著,目前區塊之使用狀態會轉換為資料區塊。
第3圖係顯示根據本發明之一實施例所述之邏輯位址至實體位址對照表的示意圖。圖示的L2P對照表310_1、310_2包含了連續的邏輯位址及對應的實體位址,其中第一個L2P對照表310_1用來儲存邏輯位址LBA_0~LBA_255所對應到之實體位址(需注意,不一定每一個邏輯位址相對應的實體位址都存在,例如,當一邏輯位置相對應的實體位址不存在時可以”0xFFFFFF”表示)、第二個L2P對照表310_2用來儲存邏輯位址LBA_256~LBA_511所對應到之實體位址、第三個L2P對照表用來儲存LBA_512~LBA_767所對應到之實體位址、...以此類推。
因此,於本發明之一實施例中,第一邏輯位址群組(例如,Section_0)可包含邏輯位址範圍LBA_0~LBA_255,亦即,當邏輯位址LBA_0~LBA_255之中有任一邏輯位址被記錄於P2L對照表200中時,記憶體控制器110可對應地設定第一邏輯位址群組於邏輯位址群組記錄表所對應之狀態,用以藉由此 狀態指示出P2L對照表200記錄有位於第一邏輯位址群組之中的至少一邏輯位址。
根據本發明之一實施例,所述之邏輯位址群組記錄表為一多維度的記錄表,其包含複數維度之群組位元(Section Bit)。所述之邏輯位址群組記錄表利用複數群組位元區別不同的邏輯位址群組。
第4圖係顯示根據本發明之一實施例所述之邏輯位址群組記錄表中所記錄的邏輯位址群組示意圖。根據本發明之一實施例,邏輯位址群組記錄表400包含至少一第一維度之一或多個群組位元以及一第二維度之一或多個群組位元,例如第一維度之群組位元Bit_0、Bit_1、Bit_2、...Bit_7,以及第二維度之群組位元*Bit_0、*Bit_1、*Bit_2、...*Bit_7。各維度所使用的群組位元數量可依設計的需求任意地被選擇,因此,並不限於本範例中所使用的8個位元。一般而言,當記憶體容量越大時,若使用的位元數越多,記憶體控制器110可正確判斷出所欲讀取之邏輯位址所對應之實體位址資訊是否被儲存於P2L對照表的精準度越高。
根據本發明之一實施例,邏輯位址群組記錄表係利用這些群組位元所對應之數位值來表示各邏輯位址群組的狀態,其中第一維度之群組位元用以表示複數個邏輯位址群組編號相差一固定值的邏輯位址群組的狀態,第二維度之群組位元用以表示複數個具有連續邏輯位址群組編號的邏輯位址群組的狀態。舉例而言,第一維度之群組位元Bit_0用以表示邏輯位址群組Section_0、Section_8、Section_16...等的狀態(其中 的數字即代表邏輯位址群組編號),群組位元Bit_1用以表示邏輯位址群組Section_1、Section_9、Section_17...等的狀態,並以此類推。第二維度之群組位元*Bit_0用以表示邏輯位址群組Section_0~Section_7的狀態,群組位元*Bit_1用以表示邏輯位址群組Section_8~Section_15...等的狀態,並以此類推。因此,第一維度之群組位元Bit_x結合第二維度之群組位元*Bit_n係用以表示邏輯位址群組Section_(8n+x)的狀態,其中n與x可為0或一正整數,其數值範圍取決於各維度所使用的群組位元數量,藉此區別不同的邏輯位址群組。
需注意的是第4圖所示的邏輯位址群組記錄表400僅是一個範例說明,而非是作為本發明的限制。只要邏輯位址群組記錄表400可以利用多維度之群組位元來表達P2L對照表200中是否有記錄位於各個邏輯位址群組之中的任一邏輯位址,其細節內容可以有不同的變化,而這些設計上的變化均應隸屬於本發明的範疇。此外,需注意的是第4圖所示的邏輯位址群組數量僅是為了簡化說明而呈現的一個範例,記憶體裝置120所包含的邏輯位址群組數量實際上係取決於記憶體裝置120的容量。
根據本發明之一實施例,第一維度之群組位元Bit_x與第二維度之群組位元*Bit_n之數位值可被設定為“0”或“1”,邏輯位址群組記錄表係利用這些群組位元所被設定之數位值來表示這些群組位元所對應之邏輯位址群組的狀態。舉例而言,當群組位元Bit_0之數位值被設定為一既定數值,例如,數值“1”時,表示P2L對照表200中有記錄邏輯位址群組 Section_0、Section_8、Section_16...等之中的任一邏輯位址群組所包含之任一邏輯位址。同理,當群組位元*Bit_0之數位值被設定為一既定數值,例如,數值“1”時,表示P2L對照表200中有記錄邏輯位址群組Section_0~Section_7之中的任一邏輯位址群組所包含之任一邏輯位址。
另一方面,當群組位元Bit_0之數位值被設定為另一既定數值,例如,數值“0”時,表示P2L對照表200中並未記錄邏輯位址群組Section_0、Section_8、Section_16...等之中的任一邏輯位址群組所包含之任一邏輯位址。同理,當群組位元*Bit_0之數位值被設定為一既定數值,例如,數值“0”時,表示P2L對照表200中並未記錄邏輯位址群組Section_0~Section_7之中的任一邏輯位址群組所包含之任一邏輯位址。
換言之,當群組位元Bit_0與*Bit_0之數位值均被設定為數值“1”時,表示P2L對照表200中有記錄邏輯位址群組Section_0所包含之任一邏輯位址。
第5圖係顯示根據本發明之一實施例所述之邏輯位址群組記錄表示意圖。邏輯位址群組記錄表500例示出邏輯位址群組記錄表所紀錄的內容,其中(*Bit,Bit)顯示出各群組位元之數位值。根據本發明之一實施例,當邏輯位址群組記錄表中一特定邏輯位址群組所對應之所有群組位元之數位值均被設定為數值“1”時,例如,圖中所示之狀態(1,1),表示P2L對照表200中有記錄該特定邏輯位址群組所包含之任一邏輯位址。
第6圖係顯示根據本發明之一實施例所述之於資 料儲存裝置應用此多維度之邏輯位址群組記錄表之對應資料處理方法流程圖。首先,記憶體控制器110建立一實體位址至邏輯位址對照表(步驟S602)。如上述,實體位址至邏輯位址對照表包含了連續的實體位址及其對應之邏輯位址。接著,記憶體控制器110建立一多維度之邏輯位址群組記錄表(步驟S604)。多維度之邏輯位址群組記錄表標註了多個邏輯位址群組的狀態,每一個邏輯位址群組的該狀態係用來表示該實體位址至邏輯位址對照表中是否有記錄位於該邏輯位址群組之中的任一邏輯位址。多維度之邏輯位址群組記錄表包含複數維度之群組位元,並利用這些群組位元區別不同的邏輯位址群組。接著,每當接收用以要求將一特定邏輯位址的資料寫入至該記憶體裝置之一寫入命令時(步驟S606),記憶體控制器110根據此特定邏輯位址決定出此邏輯位址於各維度所對應之群組位元,並且對應地設定該等群組位元之一數位值(步驟S608)。
根據本發明之一實施例,邏輯位址包含複數位元,於步驟S608中,記憶體控制器110可根據不同的位元計算出邏輯位址於不同維度所對應之群組位元為何,再對應地設定這些群組位元之數位值。舉例而言,記憶體控制器110可先根據一特定邏輯位址的位元取得此特定邏輯位址所對應之一邏輯位址群組編號,再根據此邏輯位址群組編號判斷出此特定邏輯位址至少各維度所對應之一群組位元為何。
第7A圖與第7B圖係顯示根據本發明之一實施例所述之二維邏輯位址群組記錄表之各維度之群組位元與邏輯位址群組編號示意圖。根據本發明之一實施例,假設一個邏輯位 址包含14個位元,而一個邏輯位址群組被設定為包含了256個邏輯位址,則記憶體控制器110可先將邏輯位址的最末的8個位元捨棄,直接獲得此邏輯位址所對應之邏輯位址群組編號。即,自最低有效位元(LSB)至最高有效位元(MSB)的方向直接選擇8個位元捨棄之,以獲得對應之邏輯位址群組編號。經捨棄部分位元後,此邏輯位址剩餘的位元(二進位表示)經轉換後即為圖中所示之邏輯位址群組編號(十進位表示)。
接著,假設第一維度使用K個群組位元,其中K為一正整數,則記憶體控制器110可將此邏輯位址之群組編號模除(module operation,表示為mod)K,所得之餘數即為此邏輯位址所對應之第一維度的群組位元。舉例而言,假設群組編號模除K(Section_No mod K)之後所得之餘數為0,表示此邏輯位址於第一維度的群組位元為Bit_0,若群組編號模除K(Section_No mod K)之後所得之餘數為1,表示此邏輯位址於第一維度的群組位元為Bit_1,並以此類推。
接著,假設第一維度使用K個群組位元,第二維度使用L個群組位元,其中L為一正整數,則記憶體控制器110可將此邏輯位址之群組編號先除以K,再將所得之商數模除L,所得之餘數即為此邏輯位址所對應之第二維度的群組位元。舉例而言,假設群組編號模先除以K之後所得之商數再模除L所得之餘數為0,表示此邏輯位址於第一維度的群組位元為*Bit_0,若群組編號先除以K之後所得之商數再模除L所得之餘數為1,表示此邏輯位址於第一維度的群組位元為*Bit_1,並依此類推。
上述的操作,實際上等同於直接取邏輯位址之部分位元進行轉換,兩者可得到相同的結果。更具體的說,記憶體控制器110可直接取該等位元之一第一部分進行二進位至十進位轉換,即可得此邏輯位址於第一維度的群組位元,以及直接取該等位元之一第二部分進行二進位至十進位轉換,即可得此邏輯位址於第二維度的群組位元。舉例而言,假設一特定邏輯位址為11001000001111,其所對應之邏輯位址群組編號為50。記憶體控制器110藉由直接將(自最低有效位元(LSB)至最高有效位元(MSB)的方向選擇)第9~11個位元010進行二進位至十進位轉換後,可得此邏輯位址第一維度的群組位元為2,以及將第12~14個位元110進行二進位至十進位轉換後,可得此邏輯位址第二維度的群組位元為6,其結果與上述計算相等。
換言之,根據本發明之一實施例,於實作上,可根據邏輯位址之位元數量決定出邏輯位址群組記錄表欲使用的維度數量,以及各維度需使用多少個群組位元。於上述範例中,將邏輯位址捨棄最末的8個位元後所剩餘之6個位元進一步分成兩個部分,各部分包含3個位元,即,使用兩個維度建立邏輯位址群組記錄表,並且各維度包含了2^3=8個群組位元。
第8A圖與第8B圖係顯示根據本發明之一實施例所述之三維邏輯位址群組記錄表之各維度之群組位元與邏輯位址群組編號示意圖。於此實施例中,假設一個邏輯位址包含14個位元,而一個邏輯位址群組被設定為包含了256個邏輯位址,則記憶體控制器110可先將邏輯位址的最末的8個位元捨棄,直接獲得此邏輯位址所對應之邏輯位址群組編號。
接著,假設第一維度使用K個群組位元,第二維度使用L個群組位元,第三維度使用M個群組位元,其中K、L、M為一正整數,則記憶體控制器110可將此邏輯位址之群組編號模除K,所得之餘數即為此邏輯位址所對應之第一維度的群組位元。接著,記憶體控制器110可將此邏輯位址之群組編號先除以K,再將所得之商數模除L,所得之餘數即為此邏輯位址所對應之第二維度的群組位元。接著,記憶體控制器110可將此邏輯位址之群組編號先除以K,再將所得之商數除以L,再將所得之商數模除M,所得之餘數即為此邏輯位址所對應之第三維度的群組位元。
以邏輯位址群組編號為50的邏輯位址為例,假設第一維、第二維度及第三維度均使用4個群組位元,記憶體控制器110可將群組編號50模除4,所得之餘數為2,此即為第一維度的群組位元。記憶體控制器110再將此群組編號50先除以4,再將所得之商數12模除4,所得之餘數為0,此即為第二維度的群組位元。記憶體控制器110再將此群組編號50先除以4,再將所得之商數12除以4,再將所得之商數3模除4,所得之餘數為3,此即為第三維度的群組位元。
上述的操作亦等同於直接取邏輯位址之部分位元進行轉換,兩者可得到相同的結果。更具體的說,記憶體控制器110可直接取該等位元之一第一部分進行二進位至十進位轉換,即可得此邏輯位址於第一維度的群組位元,直接取該等位元之一第二部分進行二進位至十進位轉換,即可得此邏輯位址於第二維度的群組位元,以及直接取該等位元之一第三部分進 行二進位至十進位轉換,即可得此邏輯位址於第三維度的群組位元,並以此類推。舉例而言,假設一特定邏輯位址為11001000001111,其所對應之邏輯位址群組編號為50。記憶體控制器110藉由直接將(自最低有效位元(LSB)至最高有效位元(MSB)的方向選擇)第9~10個位元10進行二進位至十進位轉換後,可得此邏輯位址第一維度的群組位元為2,將第11~12個位元00進行二進位至十進位轉換後,可得此邏輯位址第二維度的群組位元為0,以及第13~14個位元11進行二進位至十進位轉換後,可得此邏輯位址第二維度的群組位元為3,其結果與上述計算相等。
當邏輯位址群組記錄表欲使用的維度數量大於3時,亦可依循上述計算方式得出各維度之群組位元。
第9圖係顯示根據本發明一實施例所述之存取記憶體裝置的流程圖。流程可起始於記憶體控制器110接收來自主機裝置130的至少一寫入命令,以將多筆資料寫入至記憶體裝置120的一區塊中,例如,記憶體區塊B_0。在步驟S902中,記憶體控制器110將資料寫入至記憶體區塊,並同步建立/更新P2L對照表與邏輯位址群組記錄表,例如P2L對照表200與邏輯位址群組記錄表500。如上述,記憶體控制器110可根據寫入命令所包含之第一特定邏輯位址取得第一特定邏輯位址於各維度所對應之群組位元。
在步驟S904中,記憶體控制器110接收到來自主機裝置130的一讀取命令,以要求自記憶體裝置120中讀取具有一第二特定邏輯位址的資料。接著,在步驟S906中,記憶體控制 器110判斷該第二特定邏輯位址所對應的一邏輯位址群組的狀態。舉例而言,記憶體控制器110判斷該第二特定邏輯位址所屬的一邏輯位址群組的複數群組位元之數位值是否均被設定為一既定數值,例如,數值“1”。如上述,記憶體控制器110可根據讀取命令所包含之第二特定邏輯位址取得第二特定邏輯位址於各維度所對應之群組位元,並確認這些群組位元於邏輯位址群組記錄表中所記錄之數位值。若是,流程進入步驟S908;若否,則流程進入步驟S912。
值得注意的是,根據本發明之其他實施例,於步驟S906中,記憶體控制器110亦可逐一判斷第二特定邏輯位址於各維度所對應之群組位元之數位值是否被設定為既定數值。若有任一維度的群組位元之數位值未被設定為既定數值,則流程進入步驟S912。
根據本發明之一實施例,當第二特定邏輯位址(讀取位址)所對應之邏輯位址群組的複數群組位元之數位值於邏輯位址群組記錄表均被設定為一既定數值時,表示此讀取位址所對應之邏輯位址群組的狀態為P2L對照表記錄有位於該邏輯位址群組之中的任一邏輯位址。因此,記憶體控制器110根據各群組位元之數位值判斷P2L對照表中是否有記錄位於該第二特定邏輯位址所對應的一邏輯位址群組之中的任一邏輯位址,以決定是否搜尋P2L對照表。
在步驟S908中,記憶體控制器110搜尋P2L對照表,並判斷第二特定邏輯位址是否位於P2L對照表中。若是,流程進入步驟S910;若否,則流程進入步驟S912。在步驟S910中, 記憶體控制器110可以直接地從儲存在緩衝記憶體116中的P2L對照表中來搜尋出第二特定邏輯位址所對應的實體位址,並根據所搜尋到的實體位址以自記憶體裝置120中找到儲存在該實體位址的資料。
在步驟S912中,由於第二特定邏輯位址所對應的邏輯位址群組的複數群組位元之數位值並未均被設定為一既定數值,因此代表著P2L對照表中並未儲存有關於第二特定邏輯位址的資訊(亦即,記憶體區塊B_0未包含具有第二特定邏輯位址的資料),因此,記憶體控制器110便不需要對P2L對照表進行搜尋的操作,而直接地判斷緩衝記憶體116上是否具有包含第二特定邏輯位址的L2P對照表。舉例來說,假設第二特定邏輯位址為LBA_700,則記憶體控制器110判斷緩衝記憶體116中是否儲存具有LBA_512~LBA_767相關資訊的L2P對照表,若是,流程進入步驟S914;若否,流程進步入步驟S916。
在步驟S914中,由於緩衝記憶體116儲存具有LBA_512~LBA_767相關資訊的L2P對照表,故記憶體控制器110可以直接自此L2P對照表中讀取搜尋出第二特定邏輯位址LBA_700所對應的實體位址,並根據所搜尋到的實體位址以自記憶體裝置120中讀取儲存在該實體位址的資料。
在步驟S916中,由於緩衝記憶體116不具有LBA_512~LBA_767相關資訊的L2P對照表,故記憶體控制器110自記憶體裝置120中讀取具有LBA_512~LBA_767相關資訊的L2P對照表並儲存到緩衝記憶體116中。接著,在步驟S918中,記憶體控制器110自載入的L2P對照表中讀取搜尋出特定邏 輯位址LBA_700所對應的實體位址,並根據所搜尋到的實體位址以自記憶體裝置120中讀取儲存在該實體位址的資料。
後續流程可以回到步驟S902以繼續將資料寫入區塊B_0並同步建立/更新P2L對照表與邏輯位址群組記錄表,或是進入步驟S904以接收下一個讀取命令。另外,若是記憶體控制器110繼續對區塊B_0進行資料寫入,則由於所寫入的資料有可能是先前寫入資料的更新資料(亦即,具有相同的邏輯位址),因此,為了避免後續的查找錯誤,一旦區塊B_0有資料寫入,先前因為讀取命令所載入的一或多個L2P對照表會被設為無效,亦即緩衝記憶體116中的L2P對照表會被標記為無效或是刪除。
參考以上的實施例所述,當記憶體控制器110接收到讀取命令的時候,會直接參考儲存在緩衝記憶體116中的邏輯位址群組記錄表來判斷讀取命令所包含的邏輯位址是否有可能包含在緩衝記憶體116的P2L對照表中,而若是邏輯位址群組記錄表指出讀取命令所包含的邏輯位址不存在於P2L對照表時,記憶體控制器110便不需要對P2L對照表進行搜尋,而可以直接從緩衝記憶體116的L2P對照表、或是自記憶體裝置120所載入的L2P對照表來取得所需的實體位址。因此,本發明之實施例可以確實降低無效搜尋P2L對照表的次數,故可以加速快閃記憶體控制器的讀取速度,增進系統效能。
此外,於本發明之實施例中,邏輯位址群組記錄表所使用的維度數量,以及各維度需使用群組位元數量均可彈性地選擇,如此可進一步減少邏輯位址群組記錄表於緩衝記憶 體116所占用的空間。如上述,於本發明之實施例中,可根據邏輯位址之位元數量(即,記憶體裝置120的記憶體容量大小)決定出邏輯位址群組記錄表欲使用的維度數量,以及各維度需使用的群組位元數量。
舉例而言,若記憶體裝置120所包含的邏輯位址可被區分為64個邏輯位址群組,則若僅以一個維度的邏輯位址群組記錄表來表示此64個邏輯位址群組的狀態,需要使用64個群組位元。當記憶體裝置120的記憶體容量增加,一個維度的邏輯位址群組記錄表所需的群組位元數量也會隨之線性地增加。
若如本發明之第7A圖與第7B圖所示之實施例,使用兩個維度的邏輯位址群組記錄表來表示此64個邏輯位址群組的狀態,則僅需使用16個群組位元(即,8+8=16),相較於一個維度的邏輯位址群組記錄表,所需的群組位元數量已大幅減少。
若如本發明之第8A圖與第8B圖所示之實施例,使用三個維度的邏輯位址群組記錄表來表示此64個邏輯位址群組的狀態,則僅需使用12個群組位元(即,4+4+4=12),相較於一個維度的邏輯位址群組記錄表,所需的群組位元數量更進一步地被減少。
同理,若使用更多維度(例如,四個、五個...等)的邏輯位址群組記錄表來表示此64個邏輯位址群組的狀態,則所需使用的群組位元可再被減少。當記憶體裝置120的記憶體容量越大時,藉由使用多維度邏輯位址群組記錄表以降低緩衝記 憶體116所占用的空間的效益更加明顯。
此外,若以相等數量的群組位元來建立不同維度的邏輯位址群組記錄表,則維度數量越多,邏輯位址群組記錄表的精準度越高。舉例而言,當緩衝記憶體116的空間僅允許使用16個群組位元建立邏輯位址群組記錄表,而記憶體裝置120所包含的邏輯位址可被區分為64個邏輯位址群組時,則若僅以一個維度的邏輯位址群組記錄表來表示此64個邏輯位址群組的狀態,將導致每四個邏輯位址群組必須共用一個群組位元,此時邏輯位址群組記錄表的精準度僅為25%。
若以兩個(或以上)維度的邏輯位址群組記錄表來表示此64個邏輯位址群組的狀態,則各邏輯位址群組都可對應於一組唯一的群組位元,此時邏輯位址群組記錄表的精準度為100%。換言之,當可使用的群組位元數量相同時,維度越高的邏輯位址群組可區別的邏輯位址群組越多,精準度越高。
因此,藉由本發明提出一種多維度之邏輯位址群組記錄表架構及於資料儲存裝置應用此多維度之邏輯位址群組記錄表之對應資料處理方法,可有效提升資料儲存裝置的存取效能、節省記錄表所佔用的記憶體空間,並且大幅提升判斷實體位址之精準度及縮短搜尋出所需之實體位址的時間。
申請專利範圍中用以修飾元件之“第一”、“第二”等序數詞之使用本身未暗示任何優先權、優先次序、各元件之間之先後次序、或方法所執行之步驟之次序,而僅用作標識來區分具有相同名稱(具有不同序數詞)之不同元件。
雖然本發明已以較佳實施例揭露如上,然其並非 用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。

Claims (14)

  1. 一種資料儲存裝置,包括:一記憶體裝置;以及一記憶體控制器,耦接該記憶體裝置,用以存取該記憶體裝置,並建立一實體位址至邏輯位址對照表以及一邏輯位址群組記錄表,其中該實體位址至邏輯位址對照表包含了連續的實體位址及其對應之邏輯位址,其中該邏輯位址群組記錄表標註了多個邏輯位址群組的狀態,其中每一個邏輯位址群組的該狀態係用來表示該實體位址至邏輯位址對照表中是否有記錄位於該邏輯位址群組之中的任一邏輯位址,並且其中該邏輯位址群組記錄表包含複數維度之群組位元,該邏輯位址群組記錄表利用複數群組位元區別不同的邏輯位址群組,並且其中當該記憶體控制器接收用以要求將一第一特定邏輯位址的資料寫入至該記憶體裝置之一寫入命令時,該記憶體控制器根據該第一特定邏輯位址決定出該第一特定邏輯位址於各維度所對應之該群組位元,並且對應地設定該等群組位元之一數位值。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中該邏輯位址群組記錄表係利用該等群組位元所對應之該數位值來表示各邏輯位址群組的狀態。
  3. 如申請專利範圍第1項所述之資料儲存裝置,其中該邏輯位址群組記錄表包含至少一第一維度之一或多個群組位元以及一第二維度之一或多個群組位元,並且其中當該記憶體控制器接收一讀取命令以要求讀取該記憶體裝置中的一資料時,該記憶體控制器根據該讀取命令所包含之一第二特定邏輯位址取得該第二特定邏輯位址於該第一維度所對應之一第一群組位元以及於該第二維度所對應之一第二群組位元。
  4. 如申請專利範圍第3項所述之資料儲存裝置,其中該記憶體控制器更根據該邏輯位址群組記錄表中所記錄之該第一群組位元之該數位值及該第二群組位元之該數位值判斷該實體位址至邏輯位址對照表中是否有記錄位於該第二特定邏輯位址所屬之該邏輯位址群組之中的任一邏輯位址,以決定是否搜尋該實體位址至邏輯位址對照表。
  5. 如申請專利範圍第4項所述之資料儲存裝置,其中當該第一群組位元之該數位值及該第二群組位元之該數位值均被設定為一既定數值時,該記憶體控制器決定搜尋該實體位址至邏輯位址對照表,以得到與該第二特定邏輯位址相對應的一特定實體位址,以供自該記憶體裝置中讀取該資料。
  6. 如申請專利範圍第1項所述之資料儲存裝置,其中該每一個邏輯位址群組係包含了一邏輯位址範圍,且該邏輯位址範圍係相同於該記憶體裝置所使用之一邏輯位址至實體位址對照表的範圍。
  7. 如申請專利範圍第1項所述之資料儲存裝置,其中該第一特定邏輯位址包含複數位元,該記憶體控制器根據不同的位元計算出該第一特定邏輯位址於不同維度所對應之該等群組位元。
  8. 一種資料處理方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置以及一記憶體控制器,該記憶體控制器耦接該記憶體裝置,用以存取該記憶體裝置,該方法包括:建立一實體位址至邏輯位址對照表,其中該實體位址至邏輯位址對照表包含了連續的實體位址及其對應之邏輯位址;建立一邏輯位址群組記錄表,其中該邏輯位址群組記錄表標註了多個邏輯位址群組的狀態,每一個邏輯位址群組的該狀態係用來表示該實體位址至邏輯位址對照表中是否有記錄位於該邏輯位址群組之中的任一邏輯位址,並且其中該邏輯位址群組記錄表包含複數維度之群組位元,該邏輯位址群組記錄表利用複數群組位元區別不同的邏輯位址群組;接收用以要求將一第一特定邏輯位址的資料寫入至該記憶體裝置之一寫入命令;以及根據該第一特定邏輯位址決定出該第一特定邏輯位址於各維度所對應之該群組位元,並且對應地設定該等群組位元之一數位值。
  9. 如申請專利範圍第8項所述之資料處理方法,其中該邏輯位址群組記錄表係利用該等群組位元所對應之該數位值來表示各邏輯位址群組的狀態。
  10. 如申請專利範圍第8項所述之資料處理方法,其中該邏輯位址群組記錄表包含至少一第一維度之一或多個群組位元以及一第二維度之一或多個群組位元,並且該方法更包括:接收一讀取命令以要求讀取該記憶體裝置中的一資料;以及根據該讀取命令所包含之一第二特定邏輯位址取得該第二特定邏輯位址於該第一維度所對應之一第一群組位元以及於該第二維度所對應之一第二群組位元。
  11. 如申請專利範圍第10項所述之資料處理方法,更包括:根據該邏輯位址群組記錄表中所記錄之該第一群組位元之該數位值及該第二群組位元之該數位值判斷該實體位址至邏輯位址對照表中是否有記錄位於該第二特定邏輯位址所屬之該邏輯位址群組之中的任一邏輯位址,以決定是否搜尋該實體位址至邏輯位址對照表。
  12. 如申請專利範圍第11項所述之資料處理方法,更包括:當該第一群組位元之該數位值及該第二群組位元之該數位值均被設定為一既定數值時,決定搜尋該實體位址至邏輯位址對照表,以得到與該第二特定邏輯位址相對應的一特定實體位址,以供自該記憶體裝置中讀取該資料。
  13. 如申請專利範圍第8項所述之資料處理方法,其中該每一個邏輯位址群組係包含了一邏輯位址範圍,且該邏輯位址範圍係相同於該記憶體裝置所使用之一邏輯位址至實體位址對照表的範圍。
  14. 如申請專利範圍第8項所述之資料處理方法,其中該第一特定邏輯位址包含複數位元,並且其中根據該第一特定邏輯位址決定出該第一特定邏輯位址於各維度所對應之該群組位元,並且對應地設定該等群組位元之一數位值之步驟更包括:根據不同的位元計算出該第一特定邏輯位址於不同維度所對應之該等群組位元。
TW107102032A 2018-01-19 2018-01-19 資料儲存裝置與資料處理方法 TWI647566B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW107102032A TWI647566B (zh) 2018-01-19 2018-01-19 資料儲存裝置與資料處理方法
CN201810718460.6A CN110059031B (zh) 2018-01-19 2018-07-03 数据储存装置与数据处理方法
US16/249,099 US10698814B2 (en) 2018-01-19 2019-01-16 Data storage devices and data processing methods

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107102032A TWI647566B (zh) 2018-01-19 2018-01-19 資料儲存裝置與資料處理方法

Publications (2)

Publication Number Publication Date
TWI647566B true TWI647566B (zh) 2019-01-11
TW201933114A TW201933114A (zh) 2019-08-16

Family

ID=65804151

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107102032A TWI647566B (zh) 2018-01-19 2018-01-19 資料儲存裝置與資料處理方法

Country Status (3)

Country Link
US (1) US10698814B2 (zh)
CN (1) CN110059031B (zh)
TW (1) TWI647566B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI707234B (zh) * 2019-05-20 2020-10-11 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
CN111966606A (zh) * 2019-05-20 2020-11-20 慧荣科技股份有限公司 数据储存装置与数据处理方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200137181A (ko) 2019-05-29 2020-12-09 에스케이하이닉스 주식회사 메모리 시스템에서 맵정보를 전송하는 장치
KR20210004322A (ko) 2019-07-04 2021-01-13 에스케이하이닉스 주식회사 메모리 시스템에서 맵정보 및 리드카운트를 전송하는 장치 및 방법
KR102666123B1 (ko) * 2019-07-05 2024-05-16 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20200123684A (ko) 2019-04-22 2020-10-30 에스케이하이닉스 주식회사 메모리 시스템에서 맵 정보를 전송하는 장치
US11422942B2 (en) 2019-04-02 2022-08-23 SK Hynix Inc. Memory system for utilizing a memory included in an external device
KR20200139433A (ko) 2019-06-04 2020-12-14 에스케이하이닉스 주식회사 컨트롤러의 동작 방법 및 메모리 시스템
TWI724427B (zh) * 2019-05-22 2021-04-11 群聯電子股份有限公司 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
CN113312294B (zh) * 2020-02-27 2024-06-18 瑞昱半导体股份有限公司 电子装置以及通讯方法
CN113885779B (zh) * 2020-07-02 2024-03-12 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置
US20240320095A1 (en) * 2023-03-23 2024-09-26 Silicon Motion, Inc. Method and apparatus for performing table management of memory device in predetermined communications architecture with aid of flexible table page grouping

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5946714A (en) * 1996-10-21 1999-08-31 Mitsubishi Denki Kabushiki Kaisha Semiconductor storage device utilizing address management tables and table state maps for managing data storage and retrieval
US20080320214A1 (en) * 2003-12-02 2008-12-25 Super Talent Electronics Inc. Multi-Level Controller with Smart Storage Transfer Manager for Interleaving Multiple Single-Chip Flash Memory Devices
TW200921385A (en) * 2007-11-15 2009-05-16 Genesys Logic Inc Storage system for improving efficiency in accessing flash memory and method for the same
TW200935221A (en) * 2008-02-13 2009-08-16 Genesys Logic Inc System for securing an access to flash memory device and method for the same
US20140281145A1 (en) * 2013-03-15 2014-09-18 Western Digital Technologies, Inc. Atomic write command support in a solid state drive
WO2014144449A1 (en) * 2013-03-15 2014-09-18 Skyera, Inc. Apparatus and method for translation from multi-dimensional to linear address space in storage
US20150347229A1 (en) * 2014-05-30 2015-12-03 Sandisk Technologies Inc. Method and System for Dynamic Word Line Based Configuration of a Three-Dimensional Memory Device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04506720A (ja) * 1990-03-23 1992-11-19 イーストマン・コダック・カンパニー ディジタル・データ処理システムのための仮想メモリ管理及び割付け装置
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
WO2009086693A1 (zh) * 2008-01-07 2009-07-16 Fortune Spring Technology (Shenzhen) Corporation 逻辑与物理地址索引转换管理方法
TWI512467B (zh) * 2014-09-02 2015-12-11 Silicon Motion Inc 實體儲存對照表維護方法以及使用該方法的裝置
US9846552B2 (en) * 2014-11-13 2017-12-19 Toshiba Memory Corporation Memory device and storage system having the same
TWI545433B (zh) * 2015-03-04 2016-08-11 慧榮科技股份有限公司 實體儲存對照表維護方法以及使用該方法的裝置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5946714A (en) * 1996-10-21 1999-08-31 Mitsubishi Denki Kabushiki Kaisha Semiconductor storage device utilizing address management tables and table state maps for managing data storage and retrieval
US20080320214A1 (en) * 2003-12-02 2008-12-25 Super Talent Electronics Inc. Multi-Level Controller with Smart Storage Transfer Manager for Interleaving Multiple Single-Chip Flash Memory Devices
TW200921385A (en) * 2007-11-15 2009-05-16 Genesys Logic Inc Storage system for improving efficiency in accessing flash memory and method for the same
TW200935221A (en) * 2008-02-13 2009-08-16 Genesys Logic Inc System for securing an access to flash memory device and method for the same
US20140281145A1 (en) * 2013-03-15 2014-09-18 Western Digital Technologies, Inc. Atomic write command support in a solid state drive
WO2014144449A1 (en) * 2013-03-15 2014-09-18 Skyera, Inc. Apparatus and method for translation from multi-dimensional to linear address space in storage
US20150347229A1 (en) * 2014-05-30 2015-12-03 Sandisk Technologies Inc. Method and System for Dynamic Word Line Based Configuration of a Three-Dimensional Memory Device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI707234B (zh) * 2019-05-20 2020-10-11 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
CN111966606A (zh) * 2019-05-20 2020-11-20 慧荣科技股份有限公司 数据储存装置与数据处理方法
CN111966606B (zh) * 2019-05-20 2024-03-12 慧荣科技股份有限公司 数据储存装置与数据处理方法

Also Published As

Publication number Publication date
US10698814B2 (en) 2020-06-30
CN110059031A (zh) 2019-07-26
TW201933114A (zh) 2019-08-16
US20190227929A1 (en) 2019-07-25
CN110059031B (zh) 2022-09-20

Similar Documents

Publication Publication Date Title
TWI647566B (zh) 資料儲存裝置與資料處理方法
TWI650644B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
TWI692690B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI661303B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN109426619B (zh) 访问快闪存储器模块的方法及相关闪存控制器与电子装置
TWI829251B (zh) 管理記憶裝置之方法與相關的記憶裝置
US9514057B2 (en) Storage module and method for managing logical-to-physical address mapping
US10606744B2 (en) Method for accessing flash memory module and associated flash memory controller and electronic device
CN112506814B (zh) 一种存储器及其控制方法与存储系统
TWI749279B (zh) 資料儲存裝置與資料處理方法
CN113900582A (zh) 数据处理方法及对应的数据储存装置
CN111966281B (zh) 数据储存装置与数据处理方法
US10546640B2 (en) Data protecting method and memory storage device
CN113835617B (zh) 数据处理方法及对应的数据储存装置
TWI758944B (zh) 資料處理方法及對應之資料儲存裝置
TWI695264B (zh) 資料儲存裝置與資料處理方法
TWI798034B (zh) 記憶體控制器與資料處理方法
TWI852599B (zh) 記憶裝置、快閃記憶體控制器及其控制方法
TWI766431B (zh) 資料處理方法及對應之資料儲存裝置
TW202032376A (zh) 資料儲存裝置與資料處理方法
TW201941069A (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TW201947594A (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置