TWI777720B - 用來藉助於裝置側表資訊而在主機效能增幅器架構中進行記憶裝置的存取管理的方法及設備 - Google Patents
用來藉助於裝置側表資訊而在主機效能增幅器架構中進行記憶裝置的存取管理的方法及設備 Download PDFInfo
- Publication number
- TWI777720B TWI777720B TW110129440A TW110129440A TWI777720B TW I777720 B TWI777720 B TW I777720B TW 110129440 A TW110129440 A TW 110129440A TW 110129440 A TW110129440 A TW 110129440A TW I777720 B TWI777720 B TW I777720B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- address
- host
- information
- controller
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明提供一種用來藉助於裝置側表資訊而在一主機效能增幅器架構中進行一記憶裝置的存取管理的方法。該方法可包含:發送該記憶裝置的內部資訊至一主裝置,以容許該主裝置將該記憶裝置的該內部資訊儲存於該主裝置內的一記憶體中以作為位於該主裝置的主機側表資訊;產生並且儲存至少一位址映射控制表的多個條目至一隨機存取記憶體中以作為位於該記憶裝置的裝置側表資訊的至少一部分;依據該至少一位址映射控制表決定與至少兩個邏輯位址相關聯的至少兩個實體位址;以及依據該至少兩個實體位址自該非揮發性記憶體讀取資料。
Description
本發明是關於記憶體控制,尤指一種用來藉助於裝置側表資訊而在一主機效能增幅器(Host Performance Booster, HPB)架構中進行一記憶裝置的存取管理的方法、以及相關設備(apparatus)諸如該記憶裝置、該記憶裝置的控制器、包含有該記憶裝置的電子裝置等等。
記憶裝置可包含有用來儲存資料的快閃記憶體,而存取快閃記憶體的管理相當複雜。該記憶裝置可包含隨機存取記憶體以用於緩衝、管理等目的,而隨機存取記憶體通常有儲存容量不足的問題。相關技術試圖解決上述問題,但反而衍生了更進一步的問題。因此,需要一種新穎的方法和相關架構以在沒有副作用或較不會帶來副作用的情況下解決這些問題。
本發明之一目的在於提供一種用來藉助於裝置側表資訊而在一主機效能增幅器(Host Performance Booster, HPB)架構中進行一記憶裝置的存取管理的方法,並且提供相關設備(apparatus)諸如該記憶裝置、該記憶裝置的控制器、包含有該記憶裝置的電子裝置等等,以解決上述問題。
本發明之另一目的在於提供一種用來藉助於裝置側表資訊而在一主機效能增幅器架構中進行一記憶裝置的存取管理的方法,並且提供相關設備諸如該記憶裝置、該記憶裝置的控制器、包含有該記憶裝置的電子裝置等等,以提升整體效能。
本發明至少一實施例提供一種用來藉助於裝置側表資訊而在一主機效能增幅器架構中進行一記憶裝置的存取管理的方法,其中該方法是可應用於(applicable to)該記憶裝置的一記憶體控制器。該記憶裝置可包含該記憶體控制器以及一非揮發性記憶體,而該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體)。該方法可包含:發送該記憶裝置的內部資訊至一主裝置,以容許該主裝置將該記憶裝置的該內部資訊儲存於該主裝置內的一記憶體中以作為位於該主裝置的主機側表資訊;產生並且儲存至少一位址映射控制表的多個條目至該記憶體控制器內的一隨機存取記憶體中以作為位於該記憶裝置的該裝置側表資訊的至少一部分,其中該至少一位址映射控制表的該多個條目的任一條目包含用於位址映射的位址資訊,以及所述任一條目內的位址資訊指出一實體位址與一邏輯位址之間的一映射關係,其中該主機側表資訊包含由該至少一位址映射控制表的該多個條目所分別載有(carry)的位址資訊;因應來自該主裝置之與至少兩個邏輯位址對應的一讀取請求,依據該至少一位址映射控制表決定與該至少兩個邏輯位址相關聯的至少兩個實體位址,其中該讀取請求載有該主機側表資訊的部分資訊;以及依據該至少兩個實體位址自該非揮發性記憶體讀取與該讀取請求對應的資料,以將該資料回傳至該主裝置。
除了上述方法之外,本發明亦提供一種記憶裝置,而該記憶裝置包含一非揮發性記憶體以及一控制器。該非揮發性記憶體是用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。該控制器耦接至該非揮發性記憶體,並且該控制器是用來控制該記憶裝置的運作。另外,該控制器包含一處理電路以用來依據來自一主裝置的複數個主機命令(command)控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。該控制器另包含耦接至該處理電路的一隨機存取記憶體,其中該隨機存取記憶體是用來提供內部儲存空間給該控制器。例如,該控制器發送該記憶裝置的內部資訊至該主裝置,以容許該主裝置將該記憶裝置的該內部資訊儲存於該主裝置內的一記憶體中以作為位於該主裝置的主機側表資訊;該控制器產生並且儲存至少一位址映射控制表的多個條目至該控制器內的該隨機存取記憶體中以作為位於該記憶裝置的裝置側表資訊的至少一部分,其中該至少一位址映射控制表的該多個條目的任一條目包含用於位址映射的位址資訊,以及所述任一條目內的位址資訊指出一實體位址與一邏輯位址之間的一映射關係,其中該主機側表資訊包含由該至少一位址映射控制表的該多個條目所分別載有(carry)的位址資訊;因應來自該主裝置之與至少兩個邏輯位址對應的一讀取請求,該控制器依據該至少一位址映射控制表決定與該至少兩個邏輯位址相關聯的至少兩個實體位址,其中該讀取請求載有該主機側表資訊的部分資訊;以及該控制器依據該至少兩個實體位址自該非揮發性記憶體讀取與該讀取請求對應的資料,以將該資料回傳至該主裝置。
依據某些實施例,本發明亦提供相關的電子裝置。該電子裝置可包含上述記憶裝置,並且可另包含上述主裝置,而該主裝置可耦接至該記憶裝置。該主裝置可包含:至少一處理器,用來控制該主裝置的運作;以及一電源供應電路,耦接至該至少一處理器,用來提供電源給該至少一處理器以及該記憶裝置。另外,該記憶裝置提供儲存空間給該主裝置。
除了上述方法之外,本發明亦提供一種記憶裝置的控制器,其中該記憶裝置包含該控制器以及一非揮發性記憶體。該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。另外,該控制器包含一處理電路以用來依據來自一主裝置的複數個主機命令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。該控制器另包含耦接至該處理電路的一隨機存取記憶體,其中該隨機存取記憶體是用來提供內部儲存空間給該控制器。例如,該控制器發送該記憶裝置的內部資訊至該主裝置,以容許該主裝置將該記憶裝置的該內部資訊儲存於該主裝置內的一記憶體中以作為位於該主裝置的主機側表資訊;該控制器產生並且儲存至少一位址映射控制表的多個條目至該控制器內的該隨機存取記憶體中以作為位於該記憶裝置的裝置側表資訊的至少一部分,其中該至少一位址映射控制表的該多個條目的任一條目包含用於位址映射的位址資訊,以及所述任一條目內的位址資訊指出一實體位址與一邏輯位址之間的一映射關係,其中該主機側表資訊包含由該至少一位址映射控制表的該多個條目所分別載有(carry)的位址資訊;因應來自該主裝置之與至少兩個邏輯位址對應的一讀取請求,該控制器依據該至少一位址映射控制表決定與該至少兩個邏輯位址相關聯的至少兩個實體位址,其中該讀取請求載有該主機側表資訊的部分資訊;以及該控制器依據該至少兩個實體位址自該非揮發性記憶體讀取與該讀取請求對應的資料,以將該資料回傳至該主裝置。
依據某些實施例,該設備可包含該電子裝置的至少一部分(例如一部分或全部)。例如,該設備可包含該記憶裝置中的該記憶體控制器。又例如,該設備可包含該記憶裝置。在某些例子中,該設備可包含該電子裝置或該電子裝置中的一主裝置。另外,該記憶裝置的該記憶體控制器能依據該方法控制該記憶裝置的運作。例如,該記憶裝置能因應來自該主裝置的一主機命令(command)諸如一寫入命令儲存資料以供該主裝置使用。該記憶裝置能因應來自該主裝置的另一主機命令諸如一讀取命令讀取被儲存的資料,並且提供自該非揮發性記憶體讀取的資料給該主裝置。此外,該非揮發性記憶體可包含一或多個非揮發性記憶體單元諸如一或多個快閃記憶體裸晶、或一或多個快閃記憶體晶片。為了提升該記憶裝置的效能,該主裝置可取的該記憶裝置的某些內部資訊。該主裝置可將先前自該記憶裝置取得的內部資訊直接往回發送給該記憶裝置,以容許該記憶裝置使用該內部資訊,其中該記憶裝置可利用並且共用該主裝置的該隨機存取記憶體。依據某些實施例,該記憶裝置可用來產生或更新與該記憶裝置的該內部資訊對應的該裝置側表資訊。例如,該記憶裝置能自該主裝置接收載有該內部資訊的一部分的一封包,並且依據與該內部資訊對應的該裝置側表資訊復原該內部資訊的更多部分,以提升該記憶裝置的讀取效能。
本發明的方法及設備能確保該記憶裝置能在各種情況下妥善地運作。例如,自該主裝置發送的該內部資訊可能不正確,而本發明的方法及設備能偵測到這個情況並且避免該記憶裝置的故障等。另外,該資訊可能被改變,而本發明的方法及設備能偵測到此狀況並且避免某些安全性問題。此外,本發明的方法及設備能依據與該內部資訊對應的該裝置側表資訊復原該內部資訊的更多部分,以使整體系統適用於(suitable for)依據一或多個較新的標準(例如理應與通用快閃記憶體儲存(Universal Flash Storage, UFS)3.1一併推廣的主機效能增幅器2.0)運作並且改善該記憶裝置的隨機讀取速率。
第1圖為依據本發明一實施例之一電子裝置10的示意圖,其中電子裝置10可包含一主裝置50以及一記憶裝置100。主裝置50可包含統稱為處理器52的至少一處理器(例如一或多個處理器)、一電源供應電路54、以及可通稱為隨機存取記憶體(random access memory, RAM)56的至少一隨機存取記憶體(例如一或多個隨機存取記憶體,諸如動態隨機存取記憶體(dynamic RAM, DRAM)、靜態隨機存取記憶體(Static RAM, SRAM)等等),其中處理器52以及隨機存取記憶體56可透過一匯流排相互耦接,並且可耦接至電源供應電路54以取得電源。處理器52可用來控制主裝置50的操作,電源供應電路54可用來提供電源給處理器52、隨機存取記憶體56以及記憶裝置100,並且輸出一或多個驅動電壓至記憶體裝置100,其中記憶裝置100可提供儲存空間給主裝置50,並且可自主裝置50取得該一或多個驅動電壓以作為記憶裝置100的電源。主裝置50的例子可包含(但不限於)多功能行動電話、平板電腦、可穿戴式裝置、以及個人電腦諸如桌上型電腦及膝上型電腦)。記憶裝置100的例子可包含(但不限於)可攜式記憶裝置(例如符合SD/MMC、CF、MS或XD標準的記憶卡)、固態硬碟(solid state drive, SSD)、以及各種類型的嵌入式記憶體裝置(例如符合UFS或eMMC標準的嵌入式記憶體裝置)。依據本實施例,記憶裝置100可包含一控制器諸如一記憶體控制器110,並且可另包含一非揮發性記憶體(non-volatile memory, NV memory)120,其中該控制器是用來存取非揮發性記憶體120,而非揮發性記憶體120是用來儲存資訊。非揮發性記憶體120可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件),諸如複數個非揮發性記憶體元件122-1、122-2、…、及122-N,其中「N」可表示大於1的正整數。例如,非揮發性記憶體120可以是快閃記憶體,而複數個非揮發性記憶體元件122-1、122-2、…、及122-N可分別是複數個快閃記憶體晶片或複數個快閃記憶體裸晶,但本發明不限於此。
如第1圖所示,記憶體控制器110可包含一處理電路諸如一微處理器112、一儲存單元諸如一唯讀記憶體(read only memory, ROM)112M、一控制邏輯電路114、一隨機存取記憶體116(例如可用靜態隨機處理記憶體的方式來實施)、以及一傳輸介面電路118,其中上述組件的至少一部分(例如一部分或全部)可藉由一匯流排彼此耦接。隨機存取記憶體116可用來提供內部儲存空間給記憶體控制器110(例如可暫時儲存資訊),但本發明不限於此。另外,本實施例的唯讀記憶體112M是用來儲存一程式碼112C,而微處理器112是用來執行程式碼112C以控制非揮發性記憶體120的存取。請注意,程式碼112C也可儲存在隨機存取記憶體116或任何類型的記憶體中。此外,控制邏輯電路114可用來控制非揮發性記憶體120。控制邏輯電路114可包含一錯誤更正碼(error correction code, ECC)電路(第1圖中未示出),該錯誤校正碼電路可進行錯誤更正碼編碼和錯誤更正碼解碼,以保護資料及/或進行錯誤更正,而傳輸介面電路118可符合一特定通訊標準諸如序列先進技術附件(Serial Advanced Technology Attachment, SATA)標準、通用序列匯流排(Universal Serial Bus, USB)標準、快捷外設互聯(Peripheral Component Interconnect Express, PCIE)標準、嵌入式多媒體卡標準(embedded Multi Media Card, eMMC)、或通用快閃記憶體儲存(Universal Flash Storage, UFS)標準,並且可依據該特定通訊標準進行通訊。
在本實施例中,主裝置50可傳送複數個主機命令以及複數個對應的邏輯位址至記憶體控制器110,以間接地存取記憶體裝置100內的非揮發性記憶體120。記憶體控制器110接收該複數個主機命令以及該複數個邏輯位址,並且將該複數個主機命令分別轉譯為記憶體操作命令(可簡稱為操作命令),並且進一步用這些操作命令來控制非揮發性記憶體120以對非揮發性記憶體120中之特定實體位址的記憶單元或資料頁面進行讀取或寫入/編程,其中這些實體位址對應於這些邏輯位址。例如,記憶體控制器110可產生或更新至少一邏輯對實體(logical-to-physical,簡稱H2F)位址映射表以管理實體位址與邏輯位址之間的映射關係。非揮發性記憶體120可儲存一全域(global)H2F位址映射表120T,以供記憶體控制器110控制記憶體裝置100存取在非揮發性記憶體120中的資料。
為便於理解,全域H2F位址映射表120T可位於非揮發性記憶體元件122-1內的一預定區域中,諸如一系統區域,但本發明不限於此。例如,全域H2F位址映射表120T可被劃分為複數個局部(local)H2F位址映射表,而該複數個局部H2F位址映射表可被儲存在非揮發性記憶體元件122-1、122-2、…、和122-N中的一個多個非揮發性記憶體元件,尤其可被分別儲存在非揮發性記憶體元件122-1、122-2、…、和122-N中。當需要時,記憶體控制器110可將全域H2F位址映射表120T的至少一部分(例如一部分或全部)加載到隨機存取記憶體116或其他記憶體中。例如,記憶體控制器110可將複數個局部H2F位址映射表中之一局部H2F位址映射表加載到隨機存取記憶體116中以作為其內的暫時H2F位址映射表116T(在圖中標示為「116T」以求簡明),以供依據局部H2F位址映射表存取在非揮發性記憶體120中的資料,但本發明不限於此。
另外,上述至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件諸如{122-1, 122-2, …, 122-N})可包含複數個區塊(block),其中記憶體控制器110對非揮發性記憶體120進行資料抹除操作的最小單元可以是一個區塊,而記憶體控制器110對非揮發性記憶體120進行資料寫入操作的最小單元可以是一個頁面(page),但本發明不限於此。例如,非揮發性記憶體元件122-1、122-2、…、及122-N中的任一非揮發性記憶體元件122-n(其中「n」可表示區間[1, N]內的任意整數)可包含多個區塊,而該多個區塊中的一區塊可包含並且記錄特定數量的頁面,其中記憶體控制器110可依據一區塊位址以及一頁面位址來存取該多個區塊中的某個區塊內的某個頁面。又例如,非揮發性記憶體元件122-n可包含多個平面(plane),其中一平面可包含一組區塊諸如上述多個區塊,而記憶體控制器110可依據一平面編號(plane number)在該多個平面中指定某個平面,以存取這個平面的某個區塊內的某個頁面。隨著區塊總數的增加,非揮發性記憶體120的儲存空間可變得更大。針對非揮發性記憶體120的製造,可利用許多技術,例如:2D/平面反及閘(2D/planar NAND)快閃記憶體技術,其可將記憶單元排列成單層;以及3D反及閘(3D NAND)快閃記憶體技術,其可將記憶單元排列成多層的垂直堆疊。根據某些實施例,非揮發性記憶體120可實施為具有單層排列的記憶單元的2D/平面反及閘快閃記憶體結構。依據某些實施例,非揮發性記憶體120可實施為具有垂直堆疊的多層儲存單元的3D反及閘快閃記憶體結構,在此狀況下,非揮發性記憶體120的儲存空間可變得非常大。
依據某些實施例,記憶體控制器110可傳送該複數個局部H2F位址映射表中的一局部H2F位址映射表以及這個局部H2F位址映射表的對應的保護資訊(例如這個局部H2F位址映射表的實體位址,諸如最新實體位址以指出這個局部H2F位址映射表被儲存在非揮發性記憶體120中的最新位置)至主裝置50,以供(例如在處理器52的控制之下)被暫時地儲存在隨機存取記憶體56中作為一主機側表(host-side table)諸如一混合表(hybrid table)56T(在圖中標示為「56T」以求簡明),藉此節省隨機存取記憶體116的儲存空間。在此狀況下,當存取記憶裝置100中的資料時,主裝置50可將混合表56T的一或多個混合表條目(table entry)發送至記憶體控制器110,而記憶體控制器110可依據該一或多個混合表條目來存取資料以供主裝置50之用,其中該一或多個混合表條目中的任一混合表條目可包含一實體位址及其保護資訊。若該保護資訊指出這個實體位址(尤指整個混合表56T)是不正確的,記憶體控制器110可依據該局部H2F位址映射表的最新實體位址將該局部H2F位址映射表自非揮發性記憶體120加載至隨機存取記憶體116中,以作為暫時H2F位址映射表116T,並且依據隨機存取記憶體116中的暫時H2F位址映射表116T存取資料。例如,記憶體控制器110可在隨機存取記憶體116中維護一最新表位址表(latest-table-address table),而該最新表位址表可包含該複數個局部H2F位址映射表之各自的最新表位址。當這個局部H2F位址映射表的實體位址與這個局部H2F位址映射表的最新實體位址不匹配時,記憶體控制器110可判斷這個實體位址(尤指整個混合表56T)是不正確的。
第2圖繪示依據本發明一實施例之用來進行一記憶體裝置(諸如第1圖所示之記憶裝置100)的存取管理的方法的控制方案。記憶體控制器110可傳送多個表的組合諸如包含有兩個表T1及T2的混合表HT至主裝置50以作為混合表56T(在圖中標示為「HT = (T2 + T1)」以求簡明),其中這兩個表T1及T2可分別代表該局部H2F位址映射表以及包含有這個局部H2F位址映射表的對應的保護資訊的一保護資訊表。例如,混合表HT可包含分別與一系列邏輯位址對應的多個混合表條目{HTE},且可用來將該系列邏輯位址分別映射至多個混合表條目{HTE}中所記錄的多個相關實體位址。混合表HT的多個混合表條目{HTE}的任一混合表條目HTE(例如其每一混合表條目)可包含表T1的一表條目TE1(例如該多個混合表條目{HTE}所記錄的該多個相關實體位址中的一實體位址)以及表T2的一表條目TE2(例如這個局部H2F位址映射表的保護資訊諸如這個局部H2F位址映射表的實體位址,用以檢查這個局部H2F位址映射表是否正確或是檢查這個實體位址是否正確)。
當自記憶裝置100讀取一或多組資料時,主裝置50可將用來將指出一讀取請求的至少一封包(例如載有(carry)一讀取命令、一起始邏輯位址以及一資料長度的一讀取命令封包)發送至記憶體控制器110,尤其,可將載有多個混合表條目{HTE}中的一對應的混合表條目HTE的一主機效能增幅器(Host Performance Booster,簡稱HPB)條目封包發送至記憶體控制器110,其中該對應的混合表條目HTE可包含一表條目TE1諸如與該起始邏輯位址對應的一相關實體位址、以及一表條目TE2諸如這個局部H2F位址映射表的保護資訊(在圖中標示為「HTE = (TE2 + TE1)」以求簡明)。例如,上述至少一封包可包含該HPB條目封包,並且可用一HPB讀取命令(HPB READ command)的方式來實施,其中該HPB讀取命令可包含一操作碼、指出起始邏輯位址的一邏輯區塊位址(logical block address, LBA)、指出對應的混合表條目HTE的一HPB條目、指出資料長度的一轉換長度等等。依據表條目TE2諸如這個局部H2F位址映射表的保護資訊,記憶體控制器110可判斷表T1諸如這個局部H2F位址映射表(例如表條目TE1諸如與起始邏輯位址對應的相關實體位址)是否正確。例如,當表條目TE2中的保護資訊諸如這個局部H2F位址映射表的實體位址與這個局部H2F位址映射表的最新實體位址匹配時,記憶體控制器110可判斷這個局部H2F位址映射表(例如這個實體位址)是正確的,並且可根據表條目TE1諸如與該起始邏輯位址對應的相關實體位址來進一步存取非揮發性記憶體120中的該一或多組資料以供主裝置50之用。
依據某些實施例,表T1及T2可分別代表至少一局部H2F位址映射表(例如該複數個局部H2F位址映射表中的一或多個局部H2F位址映射表,諸如上列的一或多個實施例所提及的局部H2F位址映射表)以及包含有上述至少一局部H2F位址映射表的對應的保護資訊的一保護資訊表。
第3圖繪示在第2圖所示之控制方案中載有對應的混合表條目HTE的HPB條目封包的例子。由於第3圖所示之HPB條目封包滿足在HPB標準(例如HPB 1.0等等)中所定義的HPB讀取命令的某些需求,因此該HPB條目封包能被用來當作HPB讀取命令,其中對應的混合表條目HTE能被用來當作該HTE條目。
第4圖繪示第2圖所示之控制方案的一HPB條目格式的例子,其中這個HPB條目格式是適用於符合HPB標準的HPB架構。依據第4圖所示之HPB條目格式,在混合表HT的多個混合表條目{HTE}的上述任一混合表條目HTE中,表條目TE1可具有4位元組(byte),而表條目TE2也可具有4位元組。
表1
HPB條目 | T2內容 | T1內容 |
0 | 0x00004030 | 0x0000A000 |
1 | 0x00004030 | 0x0000A001 |
2 | 0x00004030 | 0x0000A002 |
3 | 0x00004030 | 0x0000A003 |
4 | 0x00004030 | 0x0000A004 |
5 | 0x00004030 | 0x0000A005 |
6 | 0x00004030 | 0x0000B009 |
7 | 0x00004030 | 0x0000A007 |
8 | 0x00004030 | 0x0000A008 |
9 | 0x00004030 | 0x0000A009 |
10 | 0x00004030 | 0x0000A00A |
11 | 0x00004030 | 0x0000B00A |
12 | 0x00004030 | 0x0000A00C |
… | … | … |
表1展示混合表HT的例子,其中「…」的符號表示某些表內容被省略以求簡明,而表1的HPB條目{0, 1, …}可表示多個混合表條目{HTE}。另外,表1的T1及T2內容(例如十六進制數值)可分別表示表T1及T2的內容(例如表T1及T2之各自的表條目{TE1}及{TE2})。出現在T1內容的實體位址{0x0000A000, 0x0000A001, …}可作為與該系列邏輯位址對應的相關實體位址的例子,而在T2內容中的實體位址{0x00004030, 0x00004030, …}中重複出現的實體位址0x00004030可作為該局部H2F位址映射表的實體位址的例子。
第5圖繪示依據本發明一實施例之針對利用第2圖所示之控制方案的多個混合表條目{HTE}的某些運作。在一HPB初始化階段,主裝置50可用來取回記憶裝置100的裝置能力、在記憶裝置100中配置一或多個HPB特徵、以及在系統記憶體中分配一HPB區域(例如隨機存取記憶體56)給該主機側表諸如混合表56T。在一主機側快取管理階段,主裝置50可用來基於配置的HPB模式藉由使用HPB標準的HPB讀取緩衝命令(HPB READ BUFFER command)以自記憶裝置100加載多個混合表條目{HTE}。在一HPB讀取命令階段,主裝置50可用來發送載有該邏輯區塊位址、該對應的混合表條目HTE、該轉換長度至記憶裝置100的HPB讀取命令以讀取資料。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
第6圖繪示依據本發明一實施例之針對透過一資料輸入UFS協定資訊單元(UFS Protocol Information Unit,簡稱UPIU)傳遞一組混合表條目{HTE}(例如多個混合表條目{HTE})的某些運作。
在步驟A01中,主裝置50可用來辨認將被激活(activate)的新子區域(sub-region)。
在步驟A02中,主裝置50可用來發送HPB讀取緩衝命令以請求該組混合表條目{HTE}(例如多個混合表條目{HTE})以供將被激活的子區域之用。
在步驟A03中,記憶裝置100可用來依據上述至少一H2F位址映射表(例如該局部H2F位址映射表)產生該組混合表條目{HTE}(例如多個混合表條目{HTE})。
在步驟A04中,記憶裝置可用來利用該資料輸入UPIU傳遞該組混合表條目{HTE}給主裝置50。
在步驟A05中,主裝置50可用來將該子區域的該組混合表條目{HTE}儲存至系統記憶體中(例如隨機存取記憶體56)。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
第7圖繪示依據本發明一實施例之針對第1圖所示之電子裝置10中的記憶裝置100所提供的儲存空間(例如非揮發性記憶體120的儲存空間)的某些HPB區域以及相關HPB子區域。主裝置50可用來利用記憶裝置100所提供的儲存空間以作為至少一邏輯單元諸如至少一分區(partition),並且透過複數個邏輯區位位址存取上述至少一邏輯單元的任一邏輯單元(例如任一分區)。用於存取這個邏輯單元的該複數個邏輯區塊位址的邏輯位址範圍可被劃分為複數個HPB區域諸如HPB區域0、1等等,而該複數個HPB區域的每一HPB區域可被劃分為至少一HPB子區域(例如一或多個HPB子區域)諸如HPB子區域0、1等等。例如,HPB區域0、1等等的每一者可具有L個HPB子區域0、1…、及(L – 1),其中HPB子區域0的HPB子區域0的起始可對應於該邏輯位址範圍的起始(例如第一個邏輯區塊位址諸如圖中標示的「邏輯區塊位址0」),而HPB區域0、1等等的最後一個HPB區域的最後一個HPB子區域的末端可對應於該邏輯位址範圍的末端(例如最後一個邏輯區塊位址諸如圖中標示的「邏輯區塊位址MAX」),但本發明不限於此。另外,HPB子區域0、1…、及(L – 1)可作為第6圖所示之實施例中的子區域的例子。
依據某些實施例,HPB區域0、1等等的每一者的大小以及HPB子區域0、1…、及(L – 1)的每一者的大小可依據各種需求來決定。例如,HPB區域0、1等等的每一者的大小以及HPB子區域0、1…、及(L – 1)的每一者的大小可均為32百萬位元組(megabyte,簡稱MB)。在某些例子中,HPB區域0、1等等的每一者的大小可為32 MB,而HPB子區域0、1…、及(L – 1)的每一者的大小可為4 MB、8 MB或16 MB。
第8圖繪示依據本發明一實施例之一主機控制模式的某些運作。本實施例的步驟A01~A05的運作可與第6圖所示之實施例相同。
在步驟B01中,主裝置50可用來辨認將被停用(deactivate)的區域(例如HPB區域0、1等等的其中一者)。
在步驟B02中,主裝置50可用來發送HPB寫入命令(HPB WRITE BUFFER command)至記憶裝置100以停用該區域。
在步驟B03中,記憶裝置100可用來停用該區域,例如藉由無效化(invalidate)與該區域對應的某些裝置側表資訊。
在步驟C01中,記憶裝置100可用來更新上述至少一H2F位址映射表(例如某個局部H2F位址映射表),例如,因應在記憶體控制器110(例如微處理器112)上執行的垃圾收集(garbage collection, GC)程序的處理結果,但本發明不限於此。
在步驟C02中,記憶裝置100可用來利用一回應UPIU以建議更新主裝置50的系統記憶體(例如隨機存取記憶體56)內的一活躍(active)子區域(例如HPB區域0、1等等的其中一者的HPB子區域0、1…、及(L – 1)的其中一者)的某一組混合表條目{HTE}(例如多個混合表條目{HTE}),其中這組混合表條目{HTE}可在步驟C03的運作前依據上述至少一H2F位址映射表的一先前版本(例如該局部H2F位址映射表的一先前版本)被產生並且由記憶裝置100來提供。
在步驟C03中,主裝置50可用來因應記憶裝置100的建議發出HPB讀取緩衝命令。
在步驟C04中,主裝置50可用來發送HPB讀取緩衝命令以請求一組更新後混合表條目{HTE}(例如多個混合表條目{HTE}的最新版本)以供該活躍子區域之用。
在步驟C05中,記憶裝置100可用來依據最新的H2F位址映射表諸如上述至少一H2F位址映射表的最新版本(例如該局部H2F位址映射表的最新版本)來產生該組更新後混合表條目{HTE}(例如多個混合表條目{HTE}的最新版本)。
在步驟C06中,記憶裝置100可用來利用該資料輸入UPIU來傳遞該組更新後混合表條目{HTE}至主裝置50。
在步驟C07中,主裝置50可用來將這個子區域的該組更新後混合表條目{HTE}儲存至該系統記憶體(例如隨機存取記憶體56)中。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
第9圖繪示依據本發明一實施例之一裝置控制模式的某些運作。
在步驟C11中,記憶裝置100可用來在需要時辨認將被激活的新子區域(例如HPB區域0、1等等的其中一者的HPB子區域0、1…、及(L – 1)的其中一者)及/或將被去活化(inactivate)/停用的區域(例如HPB區域0、1等等的其中一者)。
在步驟C12中,記憶裝置100可用來利用該回應UPIU來建議激活新子區域及/或去活化該區域。
在步驟C13中,主裝置50可用來捨棄不再活躍的HPB區域(例如被去活化的區域)的一組無效混合表條目{HTE}。
在步驟C14中,主裝置50可用來發送該HPB讀取緩衝命令以請求一組混合表條目{HTE}(例如多個混合表條目{HTE})以供將被激活的子區域之用。
在步驟C15中,記憶裝置100可用來依據上述至少一H2F位址映射表(例如某個局部H2F位址映射表)來產生該組混合表條目{HTE}(例如多個混合表條目{HTE})。
在步驟C16中,記憶裝置100可用來利用該資料輸入UPIU以傳遞該組混合表條目{HTE}至主裝置50。
在步驟C17中,記憶裝置100可用來將這個子區域的該組混合表條目{HTE}儲存至該系統記憶體(例如隨機存取記憶體56)中。為簡明起見,本實施例中與先前實施例類似之說明在此不重複贅述。
依據某些實施例,激活運作能以子區域(例如HPB子區域)為單位進行並且管理,而去活化/停用運作能以區域(例如HPB區域)為單位進行並且管理。例如,針對激活運作,該HPB讀取緩衝命令可包含多個欄位諸如HPB_Region、HPB_Sub-region、Allocation_Length等等,以供指出該HPB將被激活、該HPB子區域將被激活、相關分配長度等等。又例如,針對去活化/停用運作,該HPB寫入緩衝命令可包含多個欄位諸如HPB_Region等等,以供指出該HPB區域將被去活化/停用等等。
依據某些實施例,記憶裝置100(例如記憶體控制器110)可用來管理隨機存取記憶體116中的至少一裝置側表(例如一或多個裝置側表),諸如混合表HT、混合表HT的一或多個衍生表(derivative table)、暫時H2F位址映射表116T的一或多個衍生表等等,尤其可依據是否接收到HPB寫入緩衝命令來判斷是否將上述至少一裝置側表註記為無效(invalid)。
第10圖繪示依據本發明一實施例之一種用來藉助於裝置側表資訊而在一HPB架構中進行一記憶裝置諸如第1圖所示之記憶裝置100的存取管理的方法的控制方案。例如,電子裝置10可在該裝置控制模式中運作。
在步驟D01中,記憶裝置100可用來在需要時辨認將被激活的新子區域(例如HPB區域0、1等等的其中一者的HPB子區域0、1、 …、及(L – 1)的其中一者)。
在步驟D02中,記憶裝置100可用來利用該回應UPIU以建議激活該新子區域。
在步驟D03中,主裝置50可用來因應記憶裝置100的建議以發出該HPB讀取緩衝命令。
在步驟D04中,主裝置50可用來發送該HPB讀取緩衝命令以請求混合表HT的多個混合表條目{HTE}以供將被激活的子區域之用。
在步驟D05中,記憶裝置100可用來依據上述至少一H2F位址映射表(例如第2圖所示之實施例所提及的局部H2F位址映射表)產生多個混合表條目{HTE}(例如多個HPB條目諸如表1所示),並且保留包含有多個混合表條目{HTE}的混合表HT,諸如包含有該多個HPB條目的一HPB條目表。
在步驟D06中,記憶裝置100可用來利用該資料輸入UPIU以傳遞多個混合表條目{HTE}至主裝置50。
在步驟D07中,主裝置50可用來將這個子區域的多個混合表條目{HTE}儲存至該系統記憶體(例如隨機存取記憶體56)中。
在步驟D08中,主裝置50可用來發送載有邏輯區塊位址、對應的混合表條目HTE、轉換長度等等的該HPB讀取命令至記憶裝置100以讀取資料。
在步驟D09,記憶裝置100可用來依據邏輯區塊位址、對應的混合表條目HTE、該轉換長度、及/或混合表HT自非揮發性記憶體120讀取資料以供主裝置50之用,以回傳資料給主裝置50。
在步驟D10中,主裝置50可用來自記憶裝置100取得資料以供未來的使用。
在步驟D11中,主裝置50可用來發送該HPB寫入緩衝命令至記憶裝置100以停用包含有該子區域的區域。
在步驟D12中,記憶裝置100可用來捨棄包含有多個混合表條目{HTE}的混合表HT,並且停用該區域。
依據本實施例,記憶裝置100可利用混合表HT的至少一部分(例如一部分或全部)以作為該裝置側表資訊,並且保留混合表HT直到接收到該HPB寫入緩衝命令。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
為便於理解,該方法可用第10圖所示之運作來說明,但本發明不限於此。依據某些實施例,一或多個步驟可在第10圖所示之運作中被新增、刪除、或修改。例如,於電子裝置10運作在該主機控制模式的情況下,第10圖所示之步驟D01及D02可被刪除。又例如,於電子裝置10運作在該主機控制模式的情況下,第10圖所示之步驟D01及D02可被步驟A01取代。
第11圖繪示該裝置側表資訊的例子。如上所述,記憶裝置100可保留該混合表HT直到接收到該HPB寫入緩衝命令。為便於理解,記憶裝置100於步驟D05中所保留的混合表HT可被稱為一裝置側混合表諸如混合表HT(0),而主裝置50於步驟D07所儲存的混合表HT可被稱為一主機側混合表諸如混合表HT(1)。類似地,記憶裝置100於步驟D05中所保留的混合表HT的多個混合表條目{HTE}可被稱為裝置側混合表條目諸如混合表條目{HTE(0)},而主裝置50於步驟D07所儲存的混合表HT的多個混合表條目{HTE}可被稱為主機側混合表條目諸如混合表條目{HTE(1)}。
例如,當接收到該HPB讀取緩衝命令時,記憶裝置100可依據上述至少一H2F位址映射表(例如第2圖的實施例所提及的局部H2F位址映射表)產生混合表HT(0)諸如該HPB條目表並且發送混合表HT(0)至主裝置50,並且可在隨機存取記憶體116諸如該靜態隨機存取記憶體中維護混合表HT(0)(例如該HPB條目表)以使其依然被註記為有效(valid)表資訊,以將混合表HT(0)保留在隨機存取記憶體116中。
針對步驟D09的運作,當接收到該HPB讀取命令,記憶裝置100可參考在隨機存取記憶體116中的混合表HT(0)(例如該HPB條目表),以依據該HPB讀取命令所載有的對應的混合表條目HTE(1)(例如對應的混合表條目HTE(1)的表條目TE1及/或表條目TE2)是否與該裝置側表資訊匹配來判斷或驗證該HPB讀取命令所載有的對應的混合表條目HTE(1)(例如該HPB條目)是否正確。由於多個混合表條目{HTE}(例如{HTE(0)}或{HTE(1)})在混合表HT(例如HT(0)或HT(1))中的排序(ranking)對應於該系列邏輯位址,因此當邏輯區塊位址為該系列邏輯位址的其中一者時,主裝置50可依據該邏輯區塊位址自該系統記憶體(例如隨機存取記憶體56)中的混合表HT(1)取得對應的混合表條目HTE(1),而記憶裝置100可用類似的方式依據該邏輯區塊位址自隨機存取記憶體116中的混合表HT(0)取得該裝置側表資訊諸如一裝置側混合表條目HTE(0),其中裝置側混合表條目HTE(0)為隨機存取記憶體116中的混合表HT(0)的多個混合表條目{HTE(0)}的其中一者,並且具有與該系統記憶體(例如隨機存取記憶體56)中的混合表HT(1)的對應的混合表條目HTE(1)相同的排序。
當對應的混合表條目HTE(1)與保留在隨機存取記憶體116中的混合表HT(0)的這個混合表條目HTE(0)相同時,這表示對應的混合表條目HTE(1)是正確的,記憶裝置100可依據對應的混合表條目HTE(1)(例如其表條目TE1)讀取資料。記憶裝置100可依據對應的混合表條目HTE(1)的表條目TE2是否等於與對應的混合表條目HTE(1)具有相同排序的對應的混合表條目HTE(0)的表條目TE2,來判斷對應的混合表條目HTE(1)是否正確。若對應的混合表條目HTE(1)的表條目TE2等於這個混合表條目HTE(0)的表條目TE2,對應的混合表條目HTE(1)是正確的;否則,對應的混合表條目HTE(1)是不正確的。例如,主裝置50可能已變更該HPB讀取命令所載有的邏輯區塊位址(其可導致變更後的邏輯區塊位址與混合表條目HTE(0)諸如該HPB條目不匹配),或者主裝置50因為惡意軟件(malware)等原因可能已修改對應的混合表條目HTE(1)的表條目TE1(例如與起始邏輯位址相關聯的實體位址,諸如與邏輯區塊位址相關聯的實體區塊位址(physical block address, PBA))。在此狀況下,對應的混合表條目HTE(1)是不正確的。當偵測到對應的混合表條目HTE(1)不正確時,記憶裝置100可依據混合表條目HTE(0)(例如其表條目TE1)讀取資料。
當該HPB讀取命令所載有的轉換長度等於一(例如十六進制數值諸如0x01或01h),記憶裝置100可用來在混合表條目HTE(1)正確的情況下依據混合表條目HTE(1)的表條目TE1(例如實體區塊位址)讀取資料,或者不論混合表條目HTE(1)是否正確均依據混合表條目HTE(0)的表條目TE1(例如實體區塊位址)讀取資料。另外,當HPB讀取命令所載有的轉換長度大於一時,記憶裝置100可依據混合表條目HTE(例如依據混合表條目HTE(0);或者若混合表條目HTE(1)是正確的,依據混合表條目HTE(1))的表條目TE1(例如實體區塊位址)讀取資料的起始部分,並且依據跟在多個混合表條目{HTE(0)}中的混合表條目HTE(0)後面的至少一後續混合表條目的至少一表條目TE1(例如至少一實體區塊位址)讀取該資料的至少一剩餘部分。
為便於理解,假設第11圖的左半部所示之混合表條目{HTE(1)}的深陰影部分可表示主裝置50依據邏輯區塊位址選擇的混合表條目HTE(1)。在此狀況下,第11圖的右半部所示之混合表條目{HTE(0)}的深陰影部分以及淺陰影部分可分別表示混合表條目HTE(0)以及記憶裝置100所選擇的上述至少一後續混合表條目,其中混合表條目{HTE(0)}的陰影部分的總數目可指出該HPB讀取命令所載有的轉換長度等於四(例如1 + 3 = 4),但本發明不限於此。另外,表1的HPB條目{0, 1, …}可作為多個混合表條目{HTE}(例如{HTE(0)}或{HTE(1)})的例子。因此,混合表條目HTE(1)及混合表條目HTE(0)的每一者可包含表1的混合表條目1(例如表內容{0x00004030, 0x0000A001}),其中上述至少一後續混合表條目可分別包含HPB條目{2, 3, 4}(例如表內容{{0x00004030, 0x0000A002}, {0x00004030, 0x0000A003}, {0x00004030, 0x0000A004}})。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
第12圖繪示依據本發明另一實施例之用來藉助於該裝置側表資訊而在該HPB架構中進行該記憶裝置的存取管理的方法的控制方案。例如,電子裝置10可在該裝置控制模式中運作。另外,本實施例的步驟D01~D04、D06~D08、D10及D11的運作可與第10圖所示之實施例相同,其中步驟D05’、D09’及D12’可分別取代上列說明的D05、D09及D12。
在步驟D05’中,記憶裝置100可用來依據上述至少一H2F位址映射表(例如在第2圖所示之實施例中提及的局部H2F位址映射表)產生多個混合表條目{HTE},以供被傳遞至主裝置50,並且將多個混合表條目{HTE}轉換為包含有多個混合表條目{HTE}的混合表HT的至少一衍生表(例如該一或多個衍生表),以供提升讀取效能。混合表HT的上述至少一衍生表可作為隨機存取記憶體116中的上述至少一裝置側表的例子。
在步驟D09’中,記憶裝置100可用來依據邏輯區塊位址、對應的混合表條目HTE、轉換長度、及/或混合表HT的上述至少一衍生表自非揮發性記憶體120讀取資料以供主裝置50之用,以回傳該資料至主裝置50。
在步驟D12’中,記憶裝置100可用來捨棄上述至少一衍生表,並且停用該區域。
依據本實施例,記憶裝置100可利用混合表HT的上述至少一衍生表的至少一部分(例如一部分或全部)以作為該裝置側表資訊,並且保留混合表HT的上述至少一衍生表直到接收到該HPB寫入緩衝命令。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
為便於理解,該方法可用第12圖所示之運作來說明,但本發明不限於此。依據某些實施例,一或多個步驟可在第12圖所示之運作中被新增、刪除、或修改。例如,於電子裝置10運作在主機控制模式的情況下,第12圖所示之步驟D01及D02可被刪除。又例如,於電子裝置10運作在該主機控制模式的情況下,第12圖所示之步驟D01及D02可被步驟A01取代。
依據某些實施例,記憶裝置100可利用混合表HT(例如第11圖所示之混合表HT(0))的至少一部分(例如一部分或全部)以及混合表HT的上述至少一衍生表的至少一部分(例如一部分或全部)以作為該裝置側表資訊,並且保留混合表HT(例如第11圖所示之混合表HT(0))以及混合表HT的上述至少一衍生表直到接收到該HPB寫入緩衝命令。
第13圖繪示該裝置側表資訊的另一個例子。為便於理解,記憶裝置100於步驟D05’中所保留的至少一衍生表可被稱為一衍生表DT(0)。記憶裝置100可保留混合表HT(0)及衍生表DT(0)直到接收到該HPB寫入緩衝命令。例如,當接收到該HPB讀取緩衝命令,記憶裝置100可依據上述至少一H2F位址映射表(例如第2圖所示之實施例所提及的局部H2F位址映射表)產生混合表HT(0)諸如該HPB條目表並且發送混合表HT(0)至主裝置50,並且可在隨機存取記憶體116諸如該靜態隨機存取記憶體中維護混合表HT(0)(例如該HPB條目表)及衍生表DT(0)以使其依然被註記為有效表資訊,以將混合表HT(0)及衍生表DT(0)保留在隨機存取記憶體116中。
針對步驟D09’的運作,當接收到該HPB讀取命令,記憶裝置100可參考在隨機存取記憶體116中的混合表HT(0)(例如該HPB條目表),以依據該HPB讀取命令所載有的對應的混合表條目HTE(1)(例如對應的混合表條目HTE(1)的表條目TE1及/或表條目TE2)是否與該裝置側表資訊匹配來判斷或驗證該HPB讀取命令所載有的對應的混合表條目HTE(1)(例如該HPB條目)是否正確,其中判斷或驗證該HPB讀取命令所載有的對應的混合表條目HTE(1)(例如該HPB條目)是否正確的實施細節可與第11圖所示之實施例相同。當該HPB讀取命令所載有的轉換長度等於一,記憶裝置100可用來在混合表條目HTE(1)正確的情況下依據混合表條目HTE(1)的表條目TE1(例如實體區塊位址)讀取資料,或者不論混合表條目HTE(1)是否正確均依據混合表條目HTE(0)的表條目TE1(例如實體區塊位址)讀取資料。另外,當HPB讀取命令所載有的轉換長度大於一時,記憶裝置100可依據混合表條目HTE(例如依據混合表條目HTE(0);或者若混合表條目HTE(1)是正確的,依據混合表條目HTE(1))的表條目TE1(例如實體區塊位址)讀取資料的起始部分,並且依據衍生表DT(0)的至少一衍生表條目讀取該資料的至少一剩餘部分,其中衍生表DT(0)的上述至少一衍生表條目可指出跟在混合表條目{HTE(0)}中的HTE(0)後面的至少一後續混合表條目的至少一表條目TE1(例如至少一實體區塊位址)的連續性,其中該連續性可表示上述至少一表條目TE1的至少一連續性狀態,諸如相對於多個混合表條目{HTE(0)}中的第一個混合表條目的表條目TE1的連續性的狀態。
為便於理解,假設第13圖的左半部所示之混合表條目{HTE(1)}的深陰影部分可表示主裝置50依據邏輯區塊位址選擇的混合表條目HTE(1)。在此狀況下,第13圖的右半部所示之混合表條目{HTE(0)}的深陰影部分以及淺陰影部分可分別表示記憶裝置100所選擇的混合表條目HTE(0)以及上述至少一後續混合表條目(其至少一表條目TE1諸如至少一實體區塊位址是由衍生表DT(0)的上述至少一衍生表條目指出),其中混合表條目{HTE(0)}的陰影部分的總數目可指出該HPB讀取命令所載有的轉換長度等於四(例如1 + 3 = 4),但本發明不限於此。另外,表1的HPB條目{0, 1, …}可作為多個混合表條目{HTE}(例如{HTE(0)}或{HTE(1)})的例子。因此,混合表條目HTE(1)及混合表條目HTE(0)的每一者可包含表1的混合表條目1(例如表內容{0x00004030, 0x0000A001}),而上述至少一後續混合表條目可分別包含表1的HPB條目{2, 3, 4}(例如表內容{{0x00004030, 0x0000A002}, {0x00004030, 0x0000A003}, {0x00004030, 0x0000A004}})。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
表2
HPB條目 | T2內容 | T1內容 |
0 | 0x00004030 | 0x0000A000 |
1 | 0x00004030 | 0x0000A001 |
2 | 0x00004030 | 0x0000A002 |
3 | 0x00004030 | 0x0000A009 |
4 | 0x00004030 | 0x0000A004 |
5 | 0x00004030 | 0x0000A005 |
6 | 0x00004030 | 0x0000B00A |
7 | 0x00004030 | 0x0000A007 |
… | … | … |
表2展示混合表HT的另一個例子,其中「…」的符號表示某些表內容被省略以求簡明,而表2的HPB條目{0, 1, …}可表示多個混合表條目{HTE}(例如{HTE(0)}或{HTE(1)})。另外,表2的T1及T2內容(例如十六進制數值)可分別表示表T1及T2的內容(例如表T1及T2之各自的表條目{TE1}及{TE2})。出現在T1內容的實體位址{0x0000A000, 0x0000A001, 0x0000A002,0x0000A009
, 0x0000A004, 0x0000A005,0x0000B00A
, 0x0000A007, …}可作為與該系列邏輯位址對應的相關實體位址的例子,而在T2內容中的實體位址{0x00004030, 0x00004030, …}中重複出現的實體位址0x00004030可作為該局部H2F位址映射表的實體位址的例子。
表3
衍生表條目 | 連續性 |
0 | 0 |
1 | 0 |
2 | 0 |
3 | 1 |
4 | 0 |
5 | 0 |
6 | 1 |
7 | 0 |
… | … |
表3展示衍生表DT(0)的例子,其中「…」的符號表示某些表內容被省略以求簡明,而表3的衍生表條目{0, 1, …}可表示衍生表DT(0)的多個衍生表條目{DTE(0)},其中多個衍生表條目{DTE(0)}分別對應於多個混合表條目{HTE}(例如{HTE(0)}或{HTE(1)}),尤其分別指出相對於表條目{TE1}的起始條目的多個混合表條目{HTE}(例如{HTE(0)}或{HTE(1)})的表條目{TE1}的連續性。例如,出現在表2的T1內容的實體位址{0x0000A000, 0x0000A001, 0x0000A002,0x0000A009
, 0x0000A004, 0x0000A005,0x0000B00A
, 0x0000A007, …}中除了某些不連續處(例如斷點)諸如0x0000A009
、0x0000B00A
等等以外的部分可被視為一系列連續實體位址,而衍生表DT(0)的多個衍生表條目{DTE(0)}諸如連續性位元{0, 0, 0,1
, 0, 0,1
, 0, …}可用來指出相對於第一個實體位址0x0000A000的連續性(例如非斷點)諸如0x0000A000、0x0000A001、0x0000A002、0x0000A004、0x0000A005、0x0000A007等等以及相對於第一個實體位址0x0000A000的非連續性(例如斷點)諸如0x0000A009
、0x0000B00A
等等,但本發明不限於此。依據某些實施例,連續性位元{0, 0, 0,1
, 0, 0,1
, 0, …}可取代為其反向版本。依據某些實施例,多個衍生表條目{DTE(0)}的第一個表條目(諸如連續性位元{0, 0, 0,1
, 0, 0,1
, 0, …}的第一個連續性位元0)可予以省略。
依據某些實施例,表2的HPB條目{0, 1, …}以及表3的衍生表條目{0, 1, …}可分別作為多個混合表條目{HTE}(例如{HTE(0)}或{HTE(1)})以及衍生表DT(0)的多個衍生表條目{DTE(0)}的例子。為便於理解,假設第13圖的左半部所示之混合表條目{HTE(1)}的深陰影部分可表示主裝置50依據邏輯區塊位址選擇的混合表條目HTE(1)。在此狀況下,第13圖的右半部所示之混合表條目{HTE(0)}的深陰影部分以及淺陰影部分可分別表示記憶裝置100所選擇的混合表條目HTE(0)以及上述至少一後續混合表條目(其至少一表條目TE1諸如至少一實體區塊位址是由衍生表DT(0)的上述至少一衍生表條目指出),其中混合表條目{HTE(0)}的陰影部分的總數目可指出該HPB讀取命令所載有的轉換長度等於四(例如1 + 3 = 4),但本發明不限於此。另外,表2的HPB條目{0, 1, …}可作為多個混合表條目{HTE}(例如{HTE(0)}或{HTE(1)})的例子。因此,混合表條目HTE(1)及混合表條目HTE(0)的每一者可包含表2的混合表條目1(例如表內容{0x00004030, 0x0000A001}),而上述至少一後續混合表條目可分別包含表2的HPB條目{2, 3, 4}(例如表內容{{0x00004030, 0x0000A002}, {0x00004030,0x0000A009
}, {0x00004030, 0x0000A004}}),其中衍生表DT(0)的上述至少一衍生表條目可包含表3的衍生表條目{2, 3, 4}。
由於衍生表DT(0)的上述至少一衍生表條目諸如表3的衍生表條目{2, 3, 4}可指出跟在HPB條目1後面的後續HPB條目{2, 3, 4}之各自的實體位址{0x0000A002,0x0000A009
, 0x0000A004}相對於表2的HPB條目{0, 1, …}中的HPB條目0的實體位址0x0000A000的連續性,因此記憶裝置100可從實體位址0x0000A001開始讀取位於實體位址0x0000A001到0x0000A004的連續資料,並且讀取位於實體位址0x0000A009
之一片段(segment)的不連續資料(例如斷點資料,諸如一斷點的有效資料),並且以位於實體位址0x0000A009
之該片段的不連續資料取代位於實體位址0x0000A001到0x0000A004的連續資料中之位於實體位址0x0000A003的無效資料,以產生對應於該讀取請求(例如該HPB讀取命令)的資料,並且接著回傳對應於該讀取請求的資料至主裝置50。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
依據某些實施例,假設對應於該讀取請求(例如該HPB讀取命令)的資料為位於0x0000A000至0x0000A002的連續資料。在此狀況下,由於位於0x0000A000至0x0000A002的連續資料全部都是有效資料,因此記憶裝置100可直接從實體位址0x0000A000開始讀取位於實體位址0x0000A000至0x0000A002的連續資料,以產生對應於該讀取請求的資料,而不需要讀取任何片段的非連續資料及取代任何任何無效資料。之後,記憶裝置100可回傳對應於該讀取請求的資料至主裝置50。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
表4
衍生表條目 | 連續性 |
0 | 1 |
1 | 1 |
2 | 1 |
3 | 0 |
4 | 1 |
5 | 1 |
6 | 0 |
7 | 1 |
… | … |
表4展示衍生表DT(0)的另一個例子,其中「…」的符號表示某些表內容被省略以求簡明,而表4的衍生表條目{0, 1, …}可表示衍生表DT(0)的多個衍生表條目{DTE(0)}。表4中所示之連續性位元{1, 1, 1,0
, 1, 1,0
, 1, …}可作為表3中所示之連續性位元{0, 0, 0,1
, 0, 0,1
, 0, …}的反向版本的例子。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
第14圖繪示該裝置側表資訊的另一個例子。記憶裝置100可捨棄在混合表條目HT(0)中的表T2並且保留在混合表條目HT(0)中的表T1,以產生包含有表條目{TE1(0)}的表T1(0),其中表T1(0)可被視為混合表條目HT(0)的壓縮後版本並且可作為毀合表HT的上述至少一衍生表的例子。記憶裝置100可依據表T1(0)直接讀取資料以產生對應於該讀取請求的資料。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
表5
HPB條目 | T1內容 |
0 | 0x0000A000 |
1 | 0x0000A001 |
2 | 0x0000A002 |
3 | 0x0000A009 |
4 | 0x0000A004 |
5 | 0x0000A005 |
6 | 0x0000B00A |
7 | 0x0000A007 |
… | … |
表5展示表T1(0)的一個例子,其中「…」的符號表示某些表內容被省略以求簡明,而表5的HPB條目{0, 1, …}可表示多個表條目{TE1(0)}。另外,表5的T1內容(例如十六進制數值)可表示表T1(0)的內容(例如表T1(0)的表條目{TE1(0)})。出現在T1內容的實體位址{0x0000A000, 0x0000A001, 0x0000A002,0x0000A009
, 0x0000A004, 0x0000A005,0x0000B00A
, 0x0000A007, …}可作為與該系列邏輯位址對應的相關實體位址的例子。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
第15圖繪示該裝置側表資訊的另一個例子。記憶裝置100可產生包含有上述表條目{TE1(0)}的表T1(0),並且藉由捨棄衍生表DT(0)所指出之與一或多個連續性(例如一或多個非斷點)對應的一或多個表條目以及保留衍生表DT(0)所指出之與一或多個非連續性(例如一或多個斷點)對應的一或多個表條目來進一步壓縮表T1(0),以產生包含有剩餘表條目{TE1(0)}的表T1P
(0),其中表T1P
(0)可視為混合表條目HT(0)的壓縮後版本並且可作為混合表HT的上述至少一衍生表的例子。記憶裝置100可依據表T1P
(0)以及衍生表DT(0)讀取資料,以產生對應於該讀取請求的資料。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
表6
HPB條目 | T1內容 |
0 | 0x0000A000 |
3 | 0x0000A009 |
6 | 0x0000B00A |
… | … |
表6展示表T1P
(0)的一個例子,其中「…」的符號表示某些表內容被省略以求簡明,而表6的HPB條目{0, 3, 6, …}可包含與表5的HPB條目{0, 1, …}中的非連續性(例如斷點)對應的HPB條目{0, 3, 6, …},諸如HPB條目0的T1內容(例如0x0000A000)與衍生表DT(0)所指出的非連續性對應的HPB條目{3, 6, …}的T1內容(例如{0x0000A009
,0x0000B00A
, …}),並且可表示在表T1P
(0)中的剩餘表條目{TE1(0)}。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
第16圖繪示該裝置側表資訊的另一個例子。記憶裝置100可產生包含有上述表條目{TE1(0)}的表T1(0)。另外,記憶裝置100可依據表T1(0)以及衍生表DT(0)讀取資料,以產生對應於該讀取請求的資料。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
第17圖繪示該裝置側表資訊的另一個例子。記憶裝置100可產生包含有上述表條目{TE1(0)}的表T1(0)。另外,記憶裝置100可依據表T1(0)以及混合表HT(0)的另一衍生表DT(1)讀取資料,以產生對應於該讀取請求的資料,其中包含有多個衍生表條目{DTE(1)}的衍生表DT(1)取代了包含有多個衍生表條目{DTE(0)}的衍生表DT(0),並且可作為混合表HT的上述至少一衍生表的例子。例如,衍生表DT(1)的多個衍生表條目{DTE(1)}的每一者可包含多於一個位元以載有更多連續性資訊,並且該更多連續性資訊可包含混合表條目{TE1(0)}的多於一個表條目TE1(0)的連續性資訊(例如連續性或非連續性)。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
表7
衍生表條目 | 連續位址長度 |
0 | 0x2 |
1 | 0x1 |
2 | 0x0 |
3 | 0x0 |
4 | 0x1 |
5 | 0x0 |
6 | 0x0 |
7 | … |
… | … |
表7展示衍生表DT(1)的例子,其中「…」的符號表示某些表內容被省略以求簡明,而表7的衍生表條目{0, 1, …}可表示衍生表DT(1)的多個衍生表條目{DTE(1)},其中多個衍生表條目{DTE(1)}分別對應於多個混合表條目{HTE}(例如{HTE(0)}或{HTE(1)}),尤其指出針對多個混合表條目{HTE}(例如{HTE(0)}或{HTE(1)})的表條目{TE1}(例如實體區塊位址)的連續性資訊,諸如分別相對於表條目{TE1(0)}(例如實體區塊位址)的連續位址長度。
依據本實施例,由於表T1(0)可視為混合表HT(0)的壓縮後版本,因此多個衍生表條目{DTE(1)}的任一衍生表條目DTE(1)可對應於表條目{TE1(0)}的某個表條目TE1(0),並且可表示自起始實體位址開始的一或多個連續實體位址(例如一或多個連續實體區塊位址)並且被記錄成在表條目{TE1(0)}中自這個表條目TE1(0)開始的一或多個連續表條目。例如,在表5的T1內容中出現的實體位址{0x0000A000, 0x0000A001, 0x0000A002,0x0000A009
, 0x0000A004, 0x0000A005,0x0000B00A
, 0x0000A007, …}中除了某些不連續處(例如斷點)諸如0x0000A009
、0x0000B00A
等等以外的部分可被視為一系列連續實體位址,而衍生表DT(1)的多個衍生表條目{DTE(1)}諸如連續位址長度{0x2, 0x1, 0x0,0x0
, 0x1, 0x0,0
, …}可用來分別指出自實體位址{0x0000A000, 0x0000A001, 0x0000A002,0x0000A009
, 0x0000A004, 0x0000A005,0x0000B00A
, 0x0000A007, …}起始的連續位址長度。針對在表5的T1內容中出現的實體位址{0x0000A000, 0x0000A001, 0x0000A002,0x0000A009
, 0x0000A004, 0x0000A005,0x0000B00A
, 0x0000A007, …},由於從實體位址0x0000A000開始有三個連續實體位址{0x0000A000, 0x0000A001, 0x0000A002},因此記憶裝置100可記錄從實體位址0x0000A000開始的連續位址長度等於0x2,如表7所示;由於從實體位址0x0000A001開始有兩個連續實體位址{0x0000A001, 0x0000A002},因此記憶裝置100可記錄從實體位址0x0000A001開始的連續位址長度等於0x1,如表7所示;由於從實體位址0x0000A002開始只有一個連續實體位址{0x0000A002},因此記憶裝置100可記錄從實體位址0x0000A002開始的連續位址長度等於0x0,如表7所示;由於從實體位址0x0000A009
開始只有一個連續實體位址{0x0000A009
},因此記憶裝置100可記錄從實體位址0x0000A009
開始的連續位址長度等於0x0,如表7所示;而其餘可依此類推。
由於該連續性資訊諸如該連續位址長度清楚地指出連續性與非連續性,因此記憶裝置100可先讀取連續資料,並且讀取一或多個片段的非連續資料(例如斷點資料)諸如一或多個斷點的有效資料,並且用該一或多個片段的非連續資料取代位於該一或多個斷點的無效資料以產生對應於該讀取請求的資料(例如該HPB讀取命令),並且接著回傳對應於該讀取請求的資料至主裝置50。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
表8
HPB條目 | T1內容 |
0 | 0x0000A000 |
1 | 0x0000A001 |
2 | 0x0000A002 |
3 | 0x0000A003 |
4 | 0x0000A004 |
5 | 0x0000A005 |
6 | 0x0000B009 |
7 | 0x0000A007 |
8 | 0x0000A008 |
9 | 0x0000A009 |
10 | 0x0000A00A |
11 | 0x0000B00A |
12 | 0x0000A00C |
13 | 0x0000A00D |
14 | 0x0000A00E |
15 | 0x0000A00F |
… | … |
表8展示表T1(0)的例子,其中「…」的符號表示某些表內容被省略以求簡明,而表8的HPB條目{0, 1, …}可表示多個表條目{TE1(0)}。另外,表8的T1內容(例如十六進制數值)可表示表T1(0)的內容(例如表T1(0)的表條目{TE1(0)})。出現在T1內容的實體位址{0x0000A000, 0x0000A001, 0x0000A002, 0x0000A003, 0x0000A004, 0x0000A005,0x0000B009
, 0x0000A007, …}可作為與該系列邏輯位址對應的相關實體位址的例子。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
表9
衍生表條目 | 連續性位元圖譜 |
0 | 0xBDF (101111011111) |
1 | 0xDEF (110111101111) |
2 | 0xEF7 (111011110111) |
3 | 0xF7B (111101111011) |
4 | … |
5 | … |
6 | … |
7 | … |
… | … |
表9展示衍生表DT(1)的另一個例子,其中「…」的符號表示某些表內容被省略以求簡明,而表9的衍生表條目{0, 1, …}可表示衍生表DT(1)的多個衍生表條目{DTE(1)},其中多個衍生表條目{DTE(1)}分別對應於多個混合表條目{HTE}(例如{HTE(0)}或{HTE(1)}),尤其指出針對多個混合表條目{HTE}(例如{HTE(0)}或{HTE(1)})的表條目{TE1}(例如實體區塊位址)的連續性資訊,諸如分別相對於表條目{TE1(0)}(例如實體區塊位址)的連續性位元圖譜(continuity bit map)。
依據本實施例,由於表T1(0)可視為混合表HT(0)的壓縮後版本,因此多個衍生表條目{DTE(1)}的任一衍生表條目DTE(1)可對應於表條目{TE1(0)}的某個表條目TE1(0),並且可表示跟在起始記錄實體位址(例如實體區塊位址)後面的多個後續記錄實體位址(例如實體區塊位址)的一連續性位元圖譜並且被記錄成在表條目{TE1(0)}跟在這個表條目TE1(0)後面的多個後續表條目。例如,在表8的T1內容中出現的實體位址{0x0000A000, 0x0000A001, 0x0000A002, 0x0000A003, 0x0000A004, 0x0000A005,0x0000B009
, 0x0000A007, …}中除了某些不連續處(例如斷點)諸如0x0000B009 、 0x0000B00A
等等以外的部分可被視為一系列連續實體位址,而衍生表DT(1)的多個衍生表條目{DTE(1)}諸如連續性位元圖譜{0xBDF, 0xDEF, 0xEF7, 0xF7B …}(例如分別以其二進制數值表示的{101111011111, 110111101111, 111011110111, 111101111011, …})可用來分別指出跟在起始記錄實體位址諸如實體位址{0x0000A000, 0x0000A001, 0x0000A002, 0x0000A003, 0x0000A004, 0x0000A005,0x0000B009
, 0x0000A007, …}後面的多組後續記錄實體位址的連續性位元圖譜。
另外,上列的連續性位元圖譜中的任一連續性位元圖譜(例如每一連續性位元圖譜)的位元數(位元的數量)可等於該多組後續紀錄實體位址的任一組後續紀錄實體位址(例如每一組後續紀錄實體位址)的位址數(例如實體位址的數量),尤其可等於12,但本發明不限於此。在某些例子中,這個位元數與這個位址數可予以變化。針對出現在表8的T1內容的實體位址{0x0000A000, 0x0000A001, 0x0000A002, 0x0000A003, 0x0000A004, 0x0000A005,0x0000B009
, 0x0000A007, …},由於跟在實體位址0x0000A000後面的十二個後續紀錄實體位址{0x0000A001, 0x0000A002, 0x0000A003, 0x0000A004, 0x0000A005,0x0000B009
, 0x0000A007, …}中有十個連續性與兩個非連續性,因此記憶裝置100可將這組實體位址{0x0000A001, 0x0000A002, 0x0000A003, 0x0000A004, 0x0000A005,0x0000B009
, 0x0000A007, …}的連續性位元圖譜紀錄為0xBDF,如表9所示,其中其二進制數值101111011111從最低有效位元(Least Significant Bit, LSB)到最高有效位元(Most Significant Bit, MSB)的各個位元分別指出這組實體位址{0x0000A001, 0x0000A002, 0x0000A003, 0x0000A004, 0x0000A005,0x0000B009
, 0x0000A007, …}的各自的連續/非連續狀態;由於跟在實體位址0x0000A001後面的十二個後續紀錄實體位址{0x0000A002, 0x0000A003, 0x0000A004, 0x0000A005,0x0000B009
, 0x0000A007, …}中有十個連續性與兩個非連續性,因此記憶裝置100可將這組實體位址{0x0000A002, 0x0000A003, 0x0000A004, 0x0000A005,0x0000B009
, 0x0000A007, …}的連續性位元圖譜紀錄為0xDEF,如表9所示,其中其二進制數值110111101111從最低有效位元到最高有效位元的各個位元分別指出這組實體位址{0x0000A002, 0x0000A003, 0x0000A004, 0x0000A005,0x0000B009
, 0x0000A007, …}的各自的連續/非連續狀態;而其餘可依此類推。
由於該連續性資訊諸如該連續性位元圖譜清楚地指出了各個連續性與非連續性,因此記憶裝置100可先讀取連續資料,並且讀取一或多個片段的非連續資料(例如斷點資料)諸如一或多個斷點的有效資料,並且以該一或多個片段的非連續資料取代位於該一或多個斷點的無效資料以產生對應於該讀取請求(例如該HPB讀取命令)的資料,並且接著回傳對應於該讀取請求的資料至主裝置50。為簡明請見,本實施例中與前述實施例類似之說明在此不重複贅述。
依據某些實施例,混合表HT可予以變化。例如,在不需要依據混合表HT的多個混合表條目{HTE}的上述任一混合表條目HTE的表條目TE2檢查該局部H2F位址映射表是否正確或檢查該實體位址是否正確的情況下,在混合表HT中的表T2可用來載有虛設(dummy)資料。又例如,記憶裝置100(例如記憶體控制器110)可事先對混合表HT的多個混合表條目{HTE}分別進行一預定條目處理,例如藉由編碼、擾碼(scramble)、加密(encrypt)等等,並且提供多個混合表條目{HTE}的處理後結果以作為多個混合表條目{HTE}的替代品給主裝置50,並且可對從主裝置50接收的某個處理後結果進行該預定條目處理的一反向條目處理,例如藉由解碼、解擾碼(descramble)、解密(decrypt)等等,以復原多個混合表條目{HTE}的上述任一混合表條目HTE。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
第18圖繪示依據本發明一實施例之一種用來藉助於該裝置側表資訊而在該HPB架構中進行該記憶裝置的存取管理的方法的工作流程。在該處理電路諸如微處理器112的控制下,記憶體控制器110可依據該方法運作,尤其依據該方法控制記憶裝置100的運作。
在步驟S10中,記憶體控制器110可產生或更新上述至少一H2F位址映射表(例如該全域H2F位址映射表120T)以管理實體位址與邏輯位址之間的映射關係,以控制非揮發性記憶體120的資料存取。例如,記憶體控制器110可進行垃圾收集以將有效資料收集至非揮發性記憶體中的一或多個空白實體區塊(例如抹除後的實體區塊),並且對應地更新上述至少一H2F位址映射表(例如該全域H2F位址映射表120T),但本發明不限於此。
在步驟S11中,記憶體控制器110可發送記憶裝置100的內部資訊(例如混合表HT(0))至主裝置50,以容許主裝置50將記憶裝置100的該內部資訊儲存於主裝置50內的一記憶體(例如隨機存取記憶體56)中以作為位於主裝置50的主機側表資訊(例如混合表HT(1))。例如,記憶體控制器110可依據上述至少一H2F位址映射表產生該內部資訊(例如混合表HT(0)),尤其將該複數個局部H2F位址映射表中的該局部H2F位址映射表加載至隨機存取記憶體116中並且將這個局部H2F位址映射表的對應的保護資訊(例如這個局部H2F位址映射表的實體位址,諸如指出這個局部H2F位址映射表在非揮發性記憶體120中被儲存的最新位置的最新實體位置)加入隨機存取記憶體116中,以產生該內部資訊諸如混合表HT(0),以供被發送給主裝置50作為該主機側表資訊諸如混合表HT(1)。
在步驟S12中,記憶體控制器110可產生並且儲存至少一位址映射控制表(例如在上列的一或多個實施例中的一或多個位址映射控制表,諸如混合表HT(0)、表T1(0)、表T1P
(0)等等之中的一或多個表)的多個條目至記憶體控制器110內的隨機存取記憶體116中以作為位於記憶裝置100的該裝置側表資訊的至少一部分(例如一部分或全部)。例如,上述至少一位址映射控制表的該多個條目的任一條目可包含用於位址映射的位址資訊,以及該任一條目內的位址資訊可指出一實體位址與一邏輯位址之間的一映射關係。為便於理解,上述至少一位址映射控制表的該多個條目可分別包含用於位址映射的位址資訊,並且該多個條目所分別載有的位址資訊可分別指出多個實體位址與多個邏輯位址之間的多個映射關係。
請注意,該主機側表資訊(例如混合表HT(1))可包含由上述至少一位址映射控制表的該多個條目所分別載有的位址資訊。如上所述,於步驟D05中被保留在記憶裝置100的混合表HT可被稱為該裝置側混合表諸如混合表HT(0),而於步驟D07中被儲存在主裝置50的混合表HT可被稱為該主機側混合表諸如混合表HT(1)。因此,混合表HT(1)可被視為來自混合表HT(0)。當混合表HT(0)、表T1(0)、表T1P
(0)等等之中的該一或多個表的任一表作為上述至少一位址映射控制表的例子時,該主機側表資訊諸如混合表HT(1)可包含在該任一表的全部條目中的任一條目(例如每一條目)中找到的位址資訊。
在步驟S13中,記憶體控制器110可依據一旗標Flag_DT判斷是否產生該至少一位址映射控制表的至少一個次要映射控制表(在圖中標示為「Flag_DT == 1」以求簡明),其中記憶體控制器110可事先依據一或多個設定(例如預設設定或使用者設定)將旗標Flag_DT設為邏輯值0及1的其中一者。若判斷結果為「是」(例如Flag_DT = 1),進入步驟S14;若判斷結果為「否」(例如Flag_DT = 0),進入步驟S15。
在步驟S14中,在該至少一位址映射控制表的該多個條目被儲存至隨機存取記憶體116以作為位於記憶裝置100的該裝置側表資訊的第一部分的情況下,記憶體控制器110可產生並且儲存該至少一位址映射控制表的該至少一個次要映射控制表至隨機存取記憶體116以作為位於記憶裝置100的該裝置側表資訊的第二部分,其中該至少一個次要映射控制表是關於該裝置側表資訊的第一部分,並且是被用來當作參考資訊以供讀取之用。例如,該至少一個次要映射控制表可包含混合表HT的上述至少一衍生表(例如上列一或多個實施例中的一或多個衍生表,諸如衍生表DT(0)、DT(1)等等的一或多個表)。
在步驟S15中,記憶體控制器110可判斷主裝置50是否發送了用於指出至少一請求的至少一封包至記憶裝置100。若判斷結果為「是」(例如記憶體控制器110從主裝置50接收到上述至少一封包),進入步驟S16;若判斷結果為「否」(例如記憶體控制器110並未從主裝置50接收到封包),進入步驟S15,以等待來自主裝置50的上述至少一封包。
在步驟S16中,因應主裝置50發送了指出上述至少一請求的上述至少一封包,記憶體控制器110可判斷在上述至少一請求中是否存在大於一個單位大小的資料的讀取請求(例如大於一個邏輯位址/邏輯區塊位址的資料讀取的請求,其中轉換長度大於一)。該單位大小可表示與一單一邏輯位址諸如一單一邏輯區塊位址對應的一預定大小,但本發明不限於此。若判斷結果為「是」(例如該讀取請求諸如上述大於一個邏輯位址的資料讀取的請求存在,其中轉換長度大於一),進入步驟S17以依據該讀取請求運作;若判斷結果為「否」(例如該讀取請求諸如上述大於一個邏輯位址的資料讀取的請求不存在,尤其上述至少一請求可包含一非讀(non-reading)請求諸如一寫入請求、或另一類型的讀取請求,諸如帶有轉換長度等於一之僅一個邏輯位址的資料讀取的請求),進入步驟S20以依據其他請求運作。例如,至少載有上述至少一封包中的該讀取請求的起始邏輯位址與資料長度的一讀取命令封包(例如該HPB讀取命令,尤指其命令封包)可指出大於一個單位大小的資料的讀取請求。在此狀況下,上述大於一個單位大小的資料的讀取請求存在,進入步驟S17。
在步驟S17中,因應來自主裝置50之與至少兩個邏輯位址對應的該讀取請求(例如該HPB讀取命令),記憶體控制器可依據上述至少一位址映射控制表及/或上述至少一衍生表決定與該至少兩個邏輯位址相關聯的至少兩個實體位址,其中該讀取請求載有該主機側表資訊的部分資訊,諸如混合表HT(1)的一對應的混合表條目HT(1)。該讀取請求(例如該HPB讀取命令)可指出需要包含有該至少兩個邏輯位址的至少一位址範圍的讀取資料,其中該讀取請求可表示用於讀取包含有該至少兩個邏輯位址的該至少一位址範圍的資料的請求。
例如,在Flag_DT = 0的情況下(其可指出該至少一衍生表在執行步驟S17的期間不存在),記憶體控制器110可運作如下:
(1) 當步驟S12所提及的至少一位址映射控制表代表第11圖所示之混合表HT(0),記憶體控制器110可在步驟S17中依據該至少一位址映射控制表諸如第11圖所示之混合表HT(0)來決定該至少兩個實體位址;以及
(2) 當步驟S12所提及的至少一位址映射控制表代表第14圖所示之表T1(0),記憶體控制器110可在步驟S17中依據該至少一位址映射控制表諸如第14圖所示之表T1(0)來決定該至少兩個實體位址。
在某些例子中,在Flag_DT = 1的情況下(其可指出該至少一衍生表在執行步驟S17的期間存在),記憶體控制器110可運作如下:
(1) 當步驟S12所提及的至少一位址映射控制表代表第13圖所示之混合表HT(0),記憶體控制器110可依據該至少一位址映射控制表諸如第13圖所示之混合表HT(0)並且依據該至少一衍生表諸如第13圖所示之衍生表DT(0)來決定該至少兩個實體位址;
(2) 當步驟S12所提及的至少一位址映射控制表代表第15圖所示之表T1P
(0),記憶體控制器110可依據該至少一位址映射控制表諸如第15圖所示之表T1P
(0)並且依據該至少一衍生表諸如第15圖所示之衍生表DT(0)來決定該至少兩個實體位址;
(3) 當步驟S12所提及的至少一位址映射控制表代表第16圖所示之表T1(0),記憶體控制器110可依據該至少一位址映射控制表諸如第16圖所示之表T1(0)並且依據該至少一衍生表諸如第16圖所示之衍生表DT(0)來決定該至少兩個實體位址;
(4) 當步驟S12所提及的至少一位址映射控制表代表第17圖所示之表T1(0),記憶體控制器110可依據該至少一位址映射控制表諸如第17圖所示之表T1(0)並且依據該至少一衍生表諸如第17圖所示之衍生表DT(1)來決定該至少兩個實體位址。
請注意,該讀取請求(例如該HPB讀取命令)可載有該多個條目中的僅一個(only one)條目(例如與該多個條目中的該至少兩個邏輯位址的其中一者對應的條目)。因應來自主裝置50之與該至少兩個邏輯位址對應的該讀取請求(例如該HPB讀取命令),記憶體控制器110可依據該至少一位址映射控制表並且依據於該多個條目中的該僅一個條目(例如與該多個條目中的該至少兩個邏輯位址的其中一者對應的條目)決定與該至少兩個邏輯位址相關聯的該至少兩個實體位址。為便於理解,記憶體控制器110可自該讀取命令封包(例如該HPB讀取命令封包,尤指其命令封包)取得對應的混合表條目HTE(1),並且藉助於對應的混合表條目HTE(1)決定該至少兩個實體位址,但本發明不限於此。例如,當判斷自該讀取命令封包取得的對應的混合表條目HTE(1)沒有用時,記憶體控制器110可捨棄對應的混合表條目HTE(1)。
在步驟S18中,記憶體控制器110可依據上述至少兩個實體位址自非揮發性記憶體120讀取對應於該讀取請求的資料,以回傳該資料至主裝置50。
在步驟S20中,記憶體控制器110可進行與其他請求對應的其他處理。例如,因應主裝置50發送指出該至少一請求的該至少一封包,記憶體控制器110可判斷在該至少一請求中是否存在一寫入請求。當該寫入請求存在於該至少一請求時,記憶體控制器110可對非揮發性記憶體進行資料寫入(例如資料編程),並且相對應地更新上述至少一H2F位址映射表(例如該全域H2F位址映射表,尤指該複數個局部H2F位址映射表中的一或多者),以供指出該資料寫入的至少一實體位址與至少一邏輯位址之間的至少一最新映射關係。又例如,因應主裝置50發送指出該至少一請求的該至少一封包,記憶體控制器110可判斷僅一個邏輯位址(例如轉換程度等於一)的資料讀取的請求是否存在。當該僅一個邏輯位址的資料讀取的請求存在時,記憶體控制器110可自非揮發性記憶體120讀取該僅一個邏輯位址的資料,例如藉助於自該讀取命令封包取得的對應的混合表條目HTE(1),其中對應的混合表條目HTE(1)可指出用來讀取該僅一個邏輯位址的資料的實體位址,之後可進入步驟S13。為簡明起見,本實施例中與前述實施例類似之說明在此不重複贅述。
在步驟S21中,記憶體控制器110可判斷是否跳到一先前步驟諸如步驟S10及S11的任一者。例如,當判斷需要更新上述至少一H2F位址映射表時,記憶體控制器110可跳到步驟S10。又例如,當判斷需要發送記憶裝置100的內部資訊至主裝置50時(例如該內部資訊諸如混合表HT(0)被改變或更新時),記憶體控制器110可跳到步驟S11。
為便於理解,該方法可用第18圖所示之工作流程來說明,但本發明不限於此。依據某些實施例,一或多個步驟可在第18圖所示之工作流程中被新增、刪除、或修改。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電子裝置
50:主裝置
52:處理器
54:電源供應電路
56:隨機存取記憶體
56T:混合表
100:記憶裝置
110:記憶體控制器
112:微處理器
112M:唯讀記憶體
112C:程式碼
114:控制邏輯電路
116:隨機存取記憶體
116T:暫時H2F位址映射表
118:傳輸介面電路
120:非揮發性記憶體
122-1~122-N:非揮發性記憶體元件
120T:全域H2F位址映射表
HT, HT(0), HT(1):混合表
T1, T1(0), T1P
(0), T2:表
HTE, HTE(0), HTE(1):混合表條目
TE1, TE1(0), TE2:表條目
DT(0), DT(1):衍生表
DTE(0), DTE(1):衍生表條目
MSB:最高有效位元
LSB:最低有效位元
A01~A05, B01~B03, C01~C07, C11~C17, D01~D12, D05’, D09’, D12’:步驟
S10~S21:步驟
第1圖為依據本發明一實施例之一電子裝置的示意圖。
第2圖繪示依據本發明一實施例之用來進行一記憶體裝置諸如第1圖所示之記憶裝置的存取管理的方法的控制方案。
第3圖繪示在第2圖所示之控制方案中載有一對應的混合表條目的一主機效能增幅器(Host Performance Booster,簡稱HPB)條目封包的例子。
第4圖繪示第2圖所示之控制方案的一HPB條目格式的例子。
第5圖繪示依據本發明一實施例之針對利用第2圖所示之控制方案的多個混合表條目的某些運作。
第6圖繪示依據本發明一實施例之針對透過一資料輸入UFS協定資訊單元傳遞一組混合表條目的某些運作。
第7圖繪示依據本發明一實施例之針對第1圖所示之電子裝置中的記憶裝置所提供的儲存空間的某些HPB區域以及相關HPB子區域。
第8圖繪示依據本發明一實施例之一主機控制模式的某些運作。
第9圖繪示依據本發明一實施例之一裝置控制模式的某些運作。
第10圖繪示依據本發明一實施例之一種用來藉助於裝置側表資訊而在一HPB架構中進行一記憶裝置諸如第1圖所示之記憶裝置的存取管理的方法的控制方案。
第11圖繪示該裝置側表資訊的例子。
第12圖繪示依據本發明另一實施例之用來藉助於該裝置側表資訊而在該HPB架構中進行該記憶裝置的存取管理的方法的控制方案。
第13圖繪示該裝置側表資訊的另一個例子。
第14圖繪示該裝置側表資訊的另一個例子。
第15圖繪示該裝置側表資訊的另一個例子。
第16圖繪示該裝置側表資訊的另一個例子。
第17圖繪示該裝置側表資訊的另一個例子。
第18圖繪示依據本發明一實施例之一種用來藉助於該裝置側表資訊而在該HPB架構中進行該記憶裝置的存取管理的方法的工作流程。
S10~S21:步驟
Claims (10)
- 一種用來藉助於裝置側表資訊而在一主機效能增幅器(Host Performance Booster, HPB)架構中進行一記憶裝置的存取管理的方法,該方法是可應用於(applicable to)該記憶裝置的一記憶體控制器,該記憶裝置包含該記憶體控制器以及一非揮發性記憶體,該非揮發性記憶體包含至少一非揮發性記憶體元件,該方法包含: 發送該記憶裝置的內部資訊至一主裝置,以容許該主裝置將該記憶裝置的該內部資訊儲存於該主裝置內的一記憶體中以作為位於該主裝置的主機側表資訊; 產生並且儲存至少一位址映射控制表的多個條目至該記憶體控制器內的一隨機存取記憶體中以作為位於該記憶裝置的該裝置側表資訊的至少一部分,其中該至少一位址映射控制表的該多個條目的任一條目包含用於位址映射的位址資訊,以及所述任一條目內的位址資訊指出一實體位址與一邏輯位址之間的一映射關係,其中該主機側表資訊包含由該至少一位址映射控制表的該多個條目所分別載有(carry)的位址資訊; 因應來自該主裝置之與至少兩個邏輯位址對應的一讀取請求,依據該至少一位址映射控制表決定與該至少兩個邏輯位址相關聯的至少兩個實體位址,其中該讀取請求載有該主機側表資訊的部分資訊;以及 依據該至少兩個實體位址自該非揮發性記憶體讀取與該讀取請求對應的資料,以將該資料回傳至該主裝置。
- 如申請專利範圍第1項所述之方法,其中該至少一位址映射控制表的該多個條目分別包含用於位址映射的位址資訊,以及分別由該多個條目所載有的位址資訊分別指出多個實體位址與多個邏輯位址之間的多個映射關係。
- 如申請專利範圍第1項所述之方法,其中該讀取請求載有於該多個條目中與該至少兩個邏輯位址的其中一者對應的一條目;以及依據該至少一位址映射控制表決定與該至少兩個邏輯位址相關聯的該至少兩個實體位址另包含: 因應來自該主裝置之與該至少兩個邏輯位址對應的該讀取請求,依據該至少一位址映射控制表並且依據與該至少兩個邏輯位址的所述其中一者對應的該條目決定與該至少兩個邏輯位址相關聯的該至少兩個實體位址。
- 如申請專利範圍第1項所述之方法,其中該讀取請求載有該多個條目中的僅一個(only one)條目。
- 如申請專利範圍第4項所述之方法,其中依據該至少一位址映射控制表決定與該至少兩個邏輯位址相關聯的該至少兩個實體位址另包含: 因應來自該主裝置之與該至少兩個邏輯位址對應的該讀取請求,依據該至少一位址映射控制表並且依據於該多個條目中的該僅一個條目決定與該至少兩個邏輯位址相關聯的該至少兩個實體位址。
- 如申請專利範圍第1項所述之方法,其中該至少一位址映射控制表的該多個條目是被儲存於該隨機存取記憶體中以作為位於該記憶裝置的該裝置側表資訊的一第一部分;以及該方法另包含: 產生並且儲存至少一個次要(secondary)映射控制表至該隨機存取記憶體中以作為位於該記憶裝置的該裝置側表資訊的一第二部分,其中該至少一個次要映射控制表是關於該裝置側表資訊的該第一部分,並且被用來當作參考資訊以供讀取之用。
- 如申請專利範圍第6項所述之方法,其中依據該至少一位址映射控制表決定與該至少兩個邏輯位址相關聯的該至少兩個實體位址另包含: 因應來自該主裝置之與該至少兩個邏輯位址對應的該讀取請求,依據該至少一位址映射控制表並且依據該至少一個次要映射控制表決定與該至少兩個邏輯位址相關聯的該至少兩個實體位址。
- 一種記憶裝置,包含: 一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件;以及 一控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置的運作,其中該控制器包含: 一處理電路,用來依據來自一主裝置的複數個主機命令(command)控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體;以及 一隨機存取記憶體,耦接至該處理電路,用來提供內部儲存空間給該控制器; 其中: 該控制器發送該記憶裝置的內部資訊至該主裝置,以容許該主裝置將該記憶裝置的該內部資訊儲存於該主裝置內的一記憶體中以作為位於該主裝置的主機側表資訊; 該控制器產生並且儲存至少一位址映射控制表的多個條目至該控制器內的該隨機存取記憶體中以作為位於該記憶裝置的裝置側表資訊的至少一部分,其中該至少一位址映射控制表的該多個條目的任一條目包含用於位址映射的位址資訊,以及所述任一條目內的位址資訊指出一實體位址與一邏輯位址之間的一映射關係,其中該主機側表資訊包含由該至少一位址映射控制表的該多個條目所分別載有(carry)的位址資訊; 因應來自該主裝置之與至少兩個邏輯位址對應的一讀取請求,該控制器依據該至少一位址映射控制表決定與該至少兩個邏輯位址相關聯的至少兩個實體位址,其中該讀取請求載有該主機側表資訊的部分資訊;以及 該控制器依據該至少兩個實體位址自該非揮發性記憶體讀取與該讀取請求對應的資料,以將該資料回傳至該主裝置。
- 一種包含有申請專利範圍第8項所述之記憶裝置的電子裝置,且另包含: 該主裝置,耦接至該記憶裝置,其中該主裝置包含: 至少一處理器,用來控制該主裝置的運作;以及 一電源供應電路,耦接至該至少一處理器,用來提供電源給該至少一處理器以及該記憶裝置; 其中該記憶裝置提供儲存空間給該主裝置。
- 一種記憶裝置的控制器,該記憶裝置包含該控制器以及一非揮發性記憶體,該非揮發性記憶體包含至少一非揮發性記憶體元件,該控制器包含: 一處理電路,用來依據來自一主裝置的複數個主機命令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體;以及 一隨機存取記憶體,耦接至該處理電路,用來提供內部儲存空間給該控制器; 其中: 該控制器發送該記憶裝置的內部資訊至該主裝置,以容許該主裝置將該記憶裝置的該內部資訊儲存於該主裝置內的一記憶體中以作為位於該主裝置的主機側表資訊; 該控制器產生並且儲存至少一位址映射控制表的多個條目至該控制器內的該隨機存取記憶體中以作為位於該記憶裝置的裝置側表資訊的至少一部分,其中該至少一位址映射控制表的該多個條目的任一條目包含用於位址映射的位址資訊,以及所述任一條目內的位址資訊指出一實體位址與一邏輯位址之間的一映射關係,其中該主機側表資訊包含由該至少一位址映射控制表的該多個條目所分別載有(carry)的位址資訊; 因應來自該主裝置之與至少兩個邏輯位址對應的一讀取請求,該控制器依據該至少一位址映射控制表決定與該至少兩個邏輯位址相關聯的至少兩個實體位址,其中該讀取請求載有該主機側表資訊的部分資訊;以及 該控制器依據該至少兩個實體位址自該非揮發性記憶體讀取與該讀取請求對應的資料,以將該資料回傳至該主裝置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063064379P | 2020-08-11 | 2020-08-11 | |
US63/064,379 | 2020-08-11 | ||
US17/361,227 US11449244B2 (en) | 2020-08-11 | 2021-06-28 | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information |
US17/361,227 | 2021-06-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202207039A TW202207039A (zh) | 2022-02-16 |
TWI777720B true TWI777720B (zh) | 2022-09-11 |
Family
ID=80222854
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110129440A TWI777720B (zh) | 2020-08-11 | 2021-08-10 | 用來藉助於裝置側表資訊而在主機效能增幅器架構中進行記憶裝置的存取管理的方法及設備 |
TW111129695A TWI798144B (zh) | 2020-08-11 | 2021-08-10 | 用來藉助於裝置側表資訊而在主機效能增幅器架構中進行記憶裝置的存取管理的方法及設備 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111129695A TWI798144B (zh) | 2020-08-11 | 2021-08-10 | 用來藉助於裝置側表資訊而在主機效能增幅器架構中進行記憶裝置的存取管理的方法及設備 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11449244B2 (zh) |
CN (1) | CN114077559B (zh) |
TW (2) | TWI777720B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240111455A1 (en) * | 2022-09-30 | 2024-04-04 | Western Digital Technologies, Inc. | Control Table Set Management In Storage Devices |
US11994985B2 (en) * | 2022-10-04 | 2024-05-28 | Silicon Motion, Inc. | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information encoding and decoding |
US11995349B2 (en) * | 2022-10-04 | 2024-05-28 | Silicon Motion, Inc. | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information encoding and decoding |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070118713A1 (en) * | 2005-11-22 | 2007-05-24 | Guterman Daniel C | Memory system for legacy hosts |
TW200935220A (en) * | 2007-12-21 | 2009-08-16 | Sandisk Corp | System and method for implementing extensions to intelligently manage resources of a mass storage system |
US10558393B2 (en) * | 2017-10-20 | 2020-02-11 | Qualcomm Incorporated | Controller hardware automation for host-aware performance booster |
US20200125295A1 (en) * | 2017-10-23 | 2020-04-23 | Micron Technology, Inc. | Host accelerated operations in managed nand devices |
US20200226072A1 (en) * | 2019-01-15 | 2020-07-16 | SK Hynix Inc. | Memory controller having improved map data access performance and method of operating the same |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484056B2 (en) * | 2006-06-29 | 2009-01-27 | Emc Corporation | Partitioning of a storage array into N-storage arrays using full array non-disruptive data migration |
TWI475387B (zh) * | 2012-07-19 | 2015-03-01 | Jmicron Technology Corp | 記憶體控制方法及記憶體控制電路 |
US10331364B2 (en) * | 2015-10-16 | 2019-06-25 | Cnex Labs, Inc. | Method and apparatus for providing hybrid mode to access SSD drive |
US20170300422A1 (en) * | 2016-04-14 | 2017-10-19 | Micron Technology, Inc. | Memory device with direct read access |
GB2557366B (en) * | 2016-12-02 | 2020-10-28 | Advanced Risc Mach Ltd | An apparatus and method for transferring data between address ranges in memory |
JP6967986B2 (ja) * | 2018-01-29 | 2021-11-17 | キオクシア株式会社 | メモリシステム |
KR20200099882A (ko) * | 2019-02-15 | 2020-08-25 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN109992530A (zh) * | 2019-03-01 | 2019-07-09 | 晶天电子(深圳)有限公司 | 一种固态驱动器设备及基于该固态驱动器的数据读写方法 |
US11137914B2 (en) * | 2019-05-07 | 2021-10-05 | Western Digital Technologies, Inc. | Non-volatile storage system with hybrid command |
CN110806987A (zh) * | 2019-10-31 | 2020-02-18 | 江苏华存电子科技有限公司 | 一种在静态随机存取存储器上的混合型映象表 |
US11169744B2 (en) * | 2020-03-31 | 2021-11-09 | Western Digital Technologies, Inc. | Boosting reads of chunks of data |
US11036625B1 (en) * | 2020-04-24 | 2021-06-15 | Micron Technology, Inc. | Host-resident translation layer write command associated with logical block to physical address of a memory device |
CN113900582A (zh) * | 2020-06-22 | 2022-01-07 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
-
2021
- 2021-06-28 US US17/361,227 patent/US11449244B2/en active Active
- 2021-08-09 CN CN202110909556.2A patent/CN114077559B/zh active Active
- 2021-08-10 TW TW110129440A patent/TWI777720B/zh active
- 2021-08-10 TW TW111129695A patent/TWI798144B/zh active
-
2022
- 2022-07-27 US US17/874,329 patent/US11797194B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070118713A1 (en) * | 2005-11-22 | 2007-05-24 | Guterman Daniel C | Memory system for legacy hosts |
TW200935220A (en) * | 2007-12-21 | 2009-08-16 | Sandisk Corp | System and method for implementing extensions to intelligently manage resources of a mass storage system |
US10558393B2 (en) * | 2017-10-20 | 2020-02-11 | Qualcomm Incorporated | Controller hardware automation for host-aware performance booster |
US20200125295A1 (en) * | 2017-10-23 | 2020-04-23 | Micron Technology, Inc. | Host accelerated operations in managed nand devices |
US20200226072A1 (en) * | 2019-01-15 | 2020-07-16 | SK Hynix Inc. | Memory controller having improved map data access performance and method of operating the same |
Also Published As
Publication number | Publication date |
---|---|
CN114077559B (zh) | 2023-08-29 |
CN114077559A (zh) | 2022-02-22 |
TW202246986A (zh) | 2022-12-01 |
US11797194B2 (en) | 2023-10-24 |
US20220365689A1 (en) | 2022-11-17 |
US20220050606A1 (en) | 2022-02-17 |
TW202207039A (zh) | 2022-02-16 |
TWI798144B (zh) | 2023-04-01 |
US11449244B2 (en) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11669444B2 (en) | Computing system and method for controlling storage device | |
US11023371B2 (en) | Memory system and method for controlling nonvolatile memory | |
TWI777720B (zh) | 用來藉助於裝置側表資訊而在主機效能增幅器架構中進行記憶裝置的存取管理的方法及設備 | |
US8799614B2 (en) | Storing compressed data | |
US11847243B2 (en) | Memory system | |
TW201945934A (zh) | 用以在記憶裝置中進行存取管理的方法、相關記憶裝置及其控制器以及相關電子裝置 | |
US11614885B2 (en) | Data processing method for improving access performance of memory device and data storage device utilizing the same | |
TW201440059A (zh) | 用於快閃儲存裝置之半區塊管理 | |
JP2020154603A (ja) | メモリシステム | |
US11630602B2 (en) | Method and apparatus for performing access management of a memory device with aid of dedicated bit information | |
EP4075284A1 (en) | Method and storage device for improving memory performance for intensive read workloads | |
CN113835617A (zh) | 数据处理方法及对应的数据储存装置 | |
TWI839288B (zh) | 用來在主機效能增幅器架構中藉助於裝置側表資訊編碼與解碼進行記憶裝置的存取管理的方法、記憶裝置、電子裝置及控制器 | |
TWI766431B (zh) | 資料處理方法及對應之資料儲存裝置 | |
TWI839289B (zh) | 用來在主機效能增幅器架構中藉助於裝置側表資訊編碼與解碼進行記憶裝置的存取管理的方法、記憶裝置、電子裝置及控制器 | |
JP2024043063A (ja) | メモリシステムおよび制御方法 | |
KR20220072357A (ko) | 컨트롤러, 및 이를 포함하는 메모리 시스템 및 데이터 처리 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |