TWI744111B - 查找表建立暨記憶體位址查詢方法、主機記憶體位址查找表建立方法與主機記憶體位址查詢方法 - Google Patents
查找表建立暨記憶體位址查詢方法、主機記憶體位址查找表建立方法與主機記憶體位址查詢方法 Download PDFInfo
- Publication number
- TWI744111B TWI744111B TW109141349A TW109141349A TWI744111B TW I744111 B TWI744111 B TW I744111B TW 109141349 A TW109141349 A TW 109141349A TW 109141349 A TW109141349 A TW 109141349A TW I744111 B TWI744111 B TW I744111B
- Authority
- TW
- Taiwan
- Prior art keywords
- storage spaces
- memory
- host
- storage
- look
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/651—Multi-level translation tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical 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 Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種查找表建立暨記憶體位址查詢方法能夠讓一從機快速地得到一主機之一分配記憶體的一物理位址。該方法由該從機來執行,包含:查詢一主機記憶體緩存描述表以得知該分配記憶體的資訊;按該資訊將該分配記憶體分為N個儲存空間;使用該N個儲存空間的一第一記憶體空間,以儲存一第一級查找表指出該N個儲存空間的物理位址;將該第一記憶體空間分為M個儲存空間;於該從機的記憶體儲存一第二級查找表指出該M個儲存空間的物理位址;按一邏輯位址查詢該第二級查找表,以得到一第一索引指出該M個儲存空間中一第一儲存空間的一第一物理位址;按該第一索引查詢該第一級查找表,以得到一第二索引指出該N個儲存空間之一的物理位址。
Description
本發明是關於記憶體,尤其是關於查找表建立暨記憶體位址查詢方法、主機記憶體位址查找表建立方法與主機記憶體位址查詢方法。
主機記憶體緩存(Host Memory Buffer; HMB)是主機分配一段特定的主機記憶體空間(後稱HMB空間)給從機使用的技術。在HMB的致能期間,該HMB空間僅能被從機使用(讀或寫),主機不可修改該HMB空間的描述列表(Descriptor List),也不可修改該HMB空間中的儲存資料。HMB的導入對於降低從機與主機之間資訊交換的整體延遲和存取時間有重要的意義。
圖1顯示HMB描述列表的原理。如圖1所示,主機可能提供一些離散的記憶體分頁(Memory Page)110作為一HMB空間給從機使用,並藉由HMB描述列表120來描述這些離散的記憶體空間。當從機要存取該HMB空間時,通常需要查詢HMB描述列表120來找到該次存取所需要的記憶體位址與讀/寫範圍(Size),然後從機就可自由地對該HMB空間進行讀寫。一般HMB描述列表是由主機維護,且儲存在主機中。
圖2顯示一般系統單晶片(SoC)系統中從機的固件與從機的硬體合作完成存取一HMB空間的示意圖。如圖2所示,從機的固件將HMB 描述列表轉換成一個邏輯位址到物理位址的查找表210,並將此表儲存在從機記憶體中,然後從機的硬體會根據從機的固件提供的邏輯位址220去查詢該查找表,以得到對應該邏輯位址的物理位址,接著從機的硬體會自動完成存取該HMB空間之離散的記憶體空間230。上述作法的優點在於從機的固件可操縱連續的邏輯位址,減少了軟體的需求;但當上述查找表的條數過於多時,從機的硬體須消耗大量資源來找到該邏輯位址的映射,這會讓從機的性能降低,並失去HMB原本的美意。
本揭露的目的之一在於提供一種查找表建立暨記憶體位址查詢方法
、主機記憶體位址查找表建立方法與主機記憶體位址查詢方法,以作為先前技術的改良。
本揭露之查找表建立暨記憶體位址查詢方法的一實施例是用來建立複數個查找表以依據該複數個查找表查詢一主機的一分配記憶體的一物理位址,此實施例是由耦接至該主機的一從機來執行,包含下列步驟:查詢儲存於該主機的一主機記憶體緩存描述表,以得知該分配記憶體的資訊;依據該分配記憶體的資訊,將該分配記憶體分為N個儲存空間,其中該N為大於二的整數;於該N個儲存空間中儲存一第一級查找表指出該N個儲存空間的物理位址,其中該第一級查找表佔用一第一記憶體空間;將該第一記憶體空間分為M個儲存空間,其中該M為大於一的整數,且該M小於該N;於該從機中儲存一第二級查找表指出該M個儲存空間的物理位址;指定一邏輯位址;依據該邏輯位址查詢該第二級查找表,以得到一第一索引指出該M個儲存空間中一第一儲存空間的一第一物理位址;以及依據該第一索引查詢該第一級查找表,以得到儲存於該第一儲存空間的一第二索引指出該N個儲存空間的其中之一。
本揭露之主機記憶體位址查找表建立方法的一實施例是用來建立複數個查找表用於查找一主機的一分配記憶體的一物理位址,該方法是由耦接至該主機的一從機來執行,包含下列步驟:查詢儲存於該主機的一主機記憶體緩存描述表,以得知該分配記憶體的資訊;依據該分配記憶體的資訊,將該分配記憶體分為N個儲存空間,其中該N為大於二的整數;於該N個儲存空間中儲存一第一級查找表指出該N個儲存空間的物理位址,其中該第一級查找表佔用一第一記憶體空間;將該第一記憶體空間分為M個儲存空間,其中該M為大於一的整數,且該M小於該N;以及於該從機中儲存一第二級查找表指出該M個儲存空間的物理位址。
本揭露之主機記憶體位址查詢方法的一實施例是用來依據複數個查找表查詢一主機的一分配記憶體的一物理位址,此實施例是由耦接至該主機的一從機來執行,包含下列步驟:指定一邏輯位址;依據該邏輯位址查詢一第二級查找表,以得到一第一索引指出M個儲存空間中一第一儲存空間的一第一物理位址,其中該第二級查找表儲存於該從機中,該M為大於一的整數;以及依據該第一索引查詢一第一級查找表,以得到儲存於該第一儲存空間的一第二索引指出N個儲存空間的其中之一,其中該第一級查找表儲存於該N個儲存空間中,該N個儲存空間屬於該主機的該分配記憶體,該N為大於該M的整數,該第一級查找表所佔用的儲存空間為該M個儲存空間的總和。
有關本發明的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
本揭露包含查找表建立暨記憶體位址查詢方法、主機記憶體位址查找表建立方法與主機記憶體位址查詢方法,該些方法是為了快速地依據一邏輯位址找到一主機記憶體物理位址,並為了減少消耗一從機的記憶體空間。
圖3顯示本揭露之查找表建立暨記憶體位址查詢方法的一實施例,該實施例是由耦接至一主機(例如:圖4的主機410)的一從機(例如:圖4的從機420)來執行,該主機與該從機之間的關係如圖4所示。圖3的實施例先建立複數個查找表,然後依據該複數個查找表查詢該主機的一分配記憶體(allocated memory)的一物理位址,該複數個查找表與該分配記憶體之間的關係如圖5所示。請參閱圖3-5,圖3的實施例包含下列步驟:
S310:查詢儲存於該主機的一主機記憶體緩存描述表(HMB descriptor list),以得知該分配記憶體的資訊。舉例而言,該分配記憶體是由複數個離散記憶體空間構成。另舉例而言,該主機記憶體緩存描述表是該主機基於非易失性記憶體主機控制器介面規範(Non-Volatile Memory Host Controller Interface Specification)所建立的一描述表。值得注意的是,該主機記憶體緩存描述表可儲存於該主機的分配記憶體中或該主機的其它儲存電路中。
S320:依據該分配記憶體的資訊,將該分配記憶體分為N個儲存空間(例如:圖5的N個儲存空間510包含1
st空間至N
th空間),其中該N為大於二的整數。舉例而言,該N個儲存空間的任二個的大小相等。另舉例而言,該N個儲存空間的每一個的大小為該主機所定義的最小儲存單位(例如:4096位元組)。
S330:於該N個儲存空間中儲存一第一級查找表(例如:圖5的第一級查找表520)指出該N個儲存空間的物理位址,其中該第一級查找表佔用一第一記憶體空間。舉例而言,該第一級查找表包含N個索引分別指出該N個儲存空間的物理位址。
S340:將該第一記憶體空間分為M個儲存空間(例如:圖5的1
st儲存空間至M
th儲存空間),其中該M為大於一的整數,且該M小於該N。舉例而言,該M個儲存空間的任二個的大小相等。另舉例而言,該M個儲存空間的每一個的大小為該主機所定義的最小儲存單位(例如:4096位元組)。再舉例而言,該N個儲存空間的任二個的大小相等,該M個儲存空間的任二個的大小相等,該N與該M的關係為N=K×(M-1)+P,該K為正整數,該P為不大於該K的正整數,該M個儲存空間儲存N個索引指出該N個儲存空間的物理位址;更明確地說,該M個儲存空間中(M-1)個儲存空間的每一個儲存K個索引,該K個索引分別指出該N個儲存空間中K個儲存空間的物理位址,該M個儲存空間中剩餘的一個儲存空間儲存P個索引,該P個索引分別指出該N個儲存空間中P個儲存空間的物理位址。
S350:於該從機的一儲存裝置(例如:圖4的裝置記憶體422)中儲存一第二級查找表(例如:圖5第二級查找表530)指出該M個儲存空間的物理位址。舉例而言,該第二級查找表佔用一第二記憶體空間,該第二記憶體空間小於該第一記憶體空間,從而能減少消耗該從機的儲存空間。另舉例而言,上述第二記憶體空間不大於該第一記憶體空間的
,該K的定義如步驟S340所述。另舉例而言,該第二級查找表包含M組索引,每組索引指出該M個儲存空間之一所儲存的K個索引。再舉例而言,該第二級查找表為一邏輯至物理位址映射表,用來依據一邏輯位址提供一相對應的物理位址。
S360:指定一邏輯位址。舉例而言,該邏輯位址是由該從機依其運作需求決定。
S370:依據該邏輯位址查詢該第二級查找表,以得到一第一索引指出該M個儲存空間中一第一儲存空間的一第一物理位址。舉例而言,該第一儲存空間儲存K個索引,每個索引所在的儲存位置對應一物理位址,該第一物理位址是該K個索引所對應之K個物理位址的其中之一。另舉例而言,該第一索引本身是該第一物理位址或其相關資訊。
S380:依據該第一索引查詢該第一級查找表,以得到儲存於該第一儲存空間的一第二索引指出該N個儲存空間之一的物理位址。舉例而言,該第二索引本身是該物理位址或其相關資訊。於一範例性實作中,N、M、K與P之定義如前所述,從M個儲存空間找出關聯該邏輯位址者最多耗費M次判斷操作,從K個索引中找出符合該第一索引者最多耗費K次判斷操作,而先前技術從N個索引中找出關聯一邏輯位址者最多會耗費“N=K×(M-1)+P ≫ M+K”次判斷操作,因此,本例比先前技術更有效率。
請參閱圖4。由圖4及前述說明可知,分配記憶體412為主機410的記憶體,主機記憶體緩存描述表414與第一級查找表4122儲存於主機410中,第二級查找表4222儲存於從機420的裝置記憶體422中。值得注意的是,主機410與從機420是依據它們之間的傳輸協定(例如:NVMe協定)決定它們的角色。另值得注意的是,在得到該第二索引出該N個儲存空間之一的物理位址後,從機420便可據以向主機410發起讀/寫請求,以完成存取該分配記憶體412。
圖3的方法可區分為一主機記憶體位址查找表建立方法(圖3的S310~S350)與一主機記憶體位址查詢方法(圖3的S360~S380),二方法可分開地執行,並可搭配其它已知或自行開發的查找表建立方法與位址查詢方法。該主機記憶體位址查找表建立方法的一實施例如圖6所示,用來建立複數個查找表用於查找一主機的一分配記憶體的一物理位址,是由耦接至該主機的一從機來執行。圖6的實施例包含下列步驟:
S610:查詢儲存於該主機的一主機記憶體緩存描述表,以得知該分配記憶體的資訊。
S620:依據該分配記憶體的資訊,將該分配記憶體分為N個儲存空間,其中該N為大於二的整數。
S630:於該N個儲存空間中儲存一第一級查找表指出該N個儲存空間的物理位址,其中該第一級查找表佔用一第一記憶體空間。
S640:將該第一記憶體空間分為M個儲存空間,其中該M為大於一的整數,且該M小於該N。
S650:於該從機的一儲存裝置中儲存一第二級查找表指出該M個儲存空間的物理位址。
前述主機記憶體位址查詢方法的一實施例如圖7所示,用來依據複數個查找表查詢一主機的一分配記憶體的一物理位址,是由耦接至該主機的一從機來執行。圖7的實施例包含下列步驟:
S710:指定一邏輯位址。
S720:依據該邏輯位址查詢一第二級查找表,以得到一第一索引指出M個儲存空間中一第一儲存空間的一第一物理位址,其中該第二級查找表儲存於該從機的一裝置記憶體中,該M為大於一的整數。
S730:依據該第一索引查詢一第一級查找表,以得到儲存於該第一儲存空間的一第二索引指出N個儲存空間的其中之一,其中該第一級查找表儲存於該N個儲存空間中,該N個儲存空間屬於該主機的該分配記憶體,該N為大於該M的整數,該第一級查找表所佔用的儲存空間為該M個儲存空間的總和。
由於本領域具有通常知識者能夠參酌圖1-5的實施例來瞭解圖6-7之實施例的細節與變化,重複及冗餘之說明在此予以節略。
請注意,在實施為可能的前提下,本技術領域具有通常知識者可選擇性地實施前述任一實施例中部分或全部技術特徵,或選擇性地實施前述複數個實施例中部分或全部技術特徵的組合,藉此增加本發明實施時的彈性。
綜上所述,本發明能夠快速地依據一邏輯位址快速找到一主機記憶體物理位址,並能減少消耗一從機的記憶體空間。
雖然本發明之實施例如上所述,然而該些實施例並非用來限定本發明,本技術領域具有通常知識者可依據本發明之明示或隱含之內容對本發明之技術特徵施以變化,凡此種種變化均可能屬於本發明所尋求之專利保護範疇,換言之,本發明之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
110:記憶體分頁
120:主機記憶體緩存(HMB)描述列表
210:邏輯位址到物理位址的查找表
220:邏輯位址
230:主機記憶體緩存(HMB)空間的離散記憶體空間
S310~S380:步驟
410:主機
412:分配記憶體
4122:第一級查找表
414:主機記憶體緩存描述表
420:從機
422:裝置記憶體
4222:第二級查找表
510:N個儲存空間
520:第一級查找表
530:第二級查找表
S610~S650:步驟
S710~S730:步驟
[圖1]顯示先前技術之主機記憶體緩存描述列表的原理;
[圖2]顯示一般系統單晶片系統中從機的固件與從機的硬體合作完成存取主機記憶體緩存空間的示意圖;
[圖3]顯示本揭露之查找表建立暨記憶體位址查詢方法的一實施例;
[圖4]顯示圖3所述之主機與從機之間的關係;
[圖5]顯示圖3所述之複數個查找表與分配記憶體之間的關係;
[圖6]顯示本揭露之主機記憶體位址查找表建立方法的一實施例;以及
[圖7]顯示本揭露之主機記憶體位址查詢方法的一實施例。
S310~S380:步驟
Claims (10)
- 一種查找表建立暨記憶體位址查詢方法,用來建立複數個查找表以依據該複數個查找表查詢一主機的一分配記憶體的物理位址,該方法是由耦接至該主機的一從機來執行,包含: 查詢儲存於該主機的一主機記憶體緩存描述表(HMB descriptor list),以得知該分配記憶體的資訊; 依據該分配記憶體的資訊,將該分配記憶體分為N個儲存空間,其中該N為大於二的整數; 於該N個儲存空間中儲存一第一級查找表指出該N個儲存空間的物理位址,其中該第一級查找表佔用一第一記憶體空間; 將該第一記憶體空間分為M個儲存空間,其中該M為大於一的整數,且該M小於該N; 於該從機中儲存一第二級查找表指出該M個儲存空間的物理位址; 指定一邏輯位址; 依據該邏輯位址查詢該第二級查找表,以得到一第一索引指出該M個儲存空間中一第一儲存空間的一第一物理位址;以及 依據該第一索引查詢該第一級查找表,以得到儲存於該第一儲存空間的一第二索引,該第二索引指出該N個儲存空間之一的物理位址。
- 如請求項1之方法,其中該N個儲存空間的任二個的大小相等,該M個儲存空間的任二個的大小相等,該N與該M的關係為N=K×(M-1)+P,該K為正整數,該P為不大於該K的正整數,該M個儲存空間中(M-1)個儲存空間的每一個包含K個索引,該K個索引分別指出該N個儲存空間中K個儲存空間的物理位址,該M個儲存空間中剩餘的一個儲存空間包含P個索引,該P個索引分別指出該N個儲存空間中P個儲存空間的物理位址。
- 一種主機記憶體位址查找表建立方法,用來建立複數個查找表用於查找一主機的一分配記憶體的物理位址,該方法是由耦接至該主機的一從機來執行,包含: 查詢儲存於該主機的一主機記憶體緩存描述表(HMB descriptor list),以得知該分配記憶體的資訊; 依據該分配記憶體的資訊,將該分配記憶體分為N個儲存空間,其中該N為大於二的整數; 於該N個儲存空間中儲存一第一級查找表指出該N個儲存空間的物理位址,其中該第一級查找表佔用一第一記憶體空間; 將該第一記憶體空間分為M個儲存空間,其中該M為大於一的整數,且該M小於該N;以及 於該從機中儲存一第二級查找表指出該M個儲存空間的物理位址。
- 如請求項3之方法,其中該分配記憶體為複數個離散記憶體空間。
- 如請求項3之方法,其中該N個儲存空間的任二個的大小相等。
- 如請求項3之方法,其中該M個儲存空間的任二個的大小相等。
- 如請求項3之方法,其中該N個儲存空間的任二個的大小相等,該M個儲存空間的任二個的大小相等,該N與該M的關係為N=K×(M-1)+P,該K為正整數,該P為不大於該K的正整數,該M個儲存空間中(M-1)個儲存空間的每一個包含K個索引,該K個索引分別指出該N個儲存空間中K個儲存空間的物理位址,該M個儲存空間中剩餘的一個儲存空間包含P個索引,該P個索引分別指出該N個儲存空間中P個儲存空間的物理位址。
- 如請求項3之方法,其中該第二級查找表佔用一第二記憶體空間,該第二記憶體空間小於該第一記憶體空間。
- 一種主機記憶體位址查詢方法,用來依據複數個查找表查詢一主機的一分配記憶體的物理位址,該方法是由耦接至該主機的一從機來執行,包含: 指定一邏輯位址; 依據該邏輯位址查詢一第二級查找表,以得到一第一索引指出M個儲存空間中一第一儲存空間的一第一物理位址,其中該第二級查找表儲存於該從機中,該M為大於一的整數;以及 依據該第一索引查詢一第一級查找表,以得到位於該第一儲存空間的一第二索引指出N個儲存空間之一的物理位址,其中該第一級查找表儲存於該N個儲存空間中,該N個儲存空間屬於該主機的該分配記憶體,該N為大於該M的整數,該第一級查找表所佔用的儲存空間為該M個儲存空間的總和。
- 如請求項9之方法,其中該N個儲存空間的任二個的大小相等,該M個儲存空間的任二個的大小相等,該N與該M的關係為N=K×(M-1)+P,該K為正整數,該P為不大於該K的正整數,該M個儲存空間中(M-1)個儲存空間的每一個包含K個索引,該K個索引分別指出該N個儲存空間中K個儲存空間的物理位址,該M個儲存空間中剩餘的一個儲存空間包含P個索引,該P個索引分別指出該N個儲存空間中P個儲存空間的物理位址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011248893.3A CN114461536A (zh) | 2020-11-10 | 2020-11-10 | 查找表建立及内存地址查询方法 |
CN202011248893.3 | 2020-11-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI744111B true TWI744111B (zh) | 2021-10-21 |
TW202219773A TW202219773A (zh) | 2022-05-16 |
Family
ID=80782837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109141349A TWI744111B (zh) | 2020-11-10 | 2020-11-25 | 查找表建立暨記憶體位址查詢方法、主機記憶體位址查找表建立方法與主機記憶體位址查詢方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11669445B2 (zh) |
CN (1) | CN114461536A (zh) |
TW (1) | TWI744111B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023044521A (ja) * | 2021-09-17 | 2023-03-30 | キオクシア株式会社 | メモリシステム |
US11816337B2 (en) * | 2021-12-06 | 2023-11-14 | Western Digital Technologies, Inc. | Enterprise host memory buffer |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI446182B (zh) * | 2007-06-29 | 2014-07-21 | Thomson Licensing | 主機和機件間經過管路之資料轉移方法及裝置 |
CN108932203A (zh) * | 2017-05-29 | 2018-12-04 | 爱思开海力士有限公司 | 数据处理系统和数据处理方法 |
CN110083481A (zh) * | 2019-04-28 | 2019-08-02 | 深圳忆联信息系统有限公司 | 基于hmb的逻辑物理映射表保护方法、装置及固态硬盘 |
CN111008156A (zh) * | 2018-10-04 | 2020-04-14 | 三星电子株式会社 | 存储设备和操作存储设备的方法 |
CN111090388A (zh) * | 2018-10-24 | 2020-05-01 | 三星电子株式会社 | 使用主机存储器缓冲器的数据存储设备及其操作方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7886126B2 (en) * | 2005-01-14 | 2011-02-08 | Intel Corporation | Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system |
US10007433B2 (en) * | 2015-01-21 | 2018-06-26 | Sandisk Technologies Llc | Systems and methods for performing adaptive host memory buffer caching of transition layer tables |
CN108139902A (zh) * | 2015-10-16 | 2018-06-08 | 科内克斯实验室公司 | 用于提供混合模式来访问ssd驱动器的方法和装置 |
US10970226B2 (en) * | 2017-10-06 | 2021-04-06 | Silicon Motion, Inc. | Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device |
JP6995723B2 (ja) * | 2018-09-19 | 2022-01-17 | キオクシア株式会社 | メモリシステム、ストレージシステム、および制御方法 |
KR20200121645A (ko) * | 2019-04-16 | 2020-10-26 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작 방법과 메모리 시스템 |
-
2020
- 2020-11-10 CN CN202011248893.3A patent/CN114461536A/zh active Pending
- 2020-11-25 TW TW109141349A patent/TWI744111B/zh active
-
2021
- 2021-07-20 US US17/380,064 patent/US11669445B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI446182B (zh) * | 2007-06-29 | 2014-07-21 | Thomson Licensing | 主機和機件間經過管路之資料轉移方法及裝置 |
CN108932203A (zh) * | 2017-05-29 | 2018-12-04 | 爱思开海力士有限公司 | 数据处理系统和数据处理方法 |
CN111008156A (zh) * | 2018-10-04 | 2020-04-14 | 三星电子株式会社 | 存储设备和操作存储设备的方法 |
CN111090388A (zh) * | 2018-10-24 | 2020-05-01 | 三星电子株式会社 | 使用主机存储器缓冲器的数据存储设备及其操作方法 |
CN110083481A (zh) * | 2019-04-28 | 2019-08-02 | 深圳忆联信息系统有限公司 | 基于hmb的逻辑物理映射表保护方法、装置及固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
US11669445B2 (en) | 2023-06-06 |
CN114461536A (zh) | 2022-05-10 |
TW202219773A (zh) | 2022-05-16 |
US20220147449A1 (en) | 2022-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804350B (zh) | 一种内存访问方法及计算机系统 | |
JP6460497B2 (ja) | ファイルアクセス方法およびファイルアクセス装置、ならびに記憶装置 | |
JP2019067417A (ja) | 最終レベルキャッシュシステム及び対応する方法 | |
TWI804466B (zh) | 擷取記憶體中儲存的資料的方法與去重複模組 | |
WO2016082191A1 (zh) | 访问文件的方法和装置 | |
WO2015014302A1 (zh) | 基于多级缓存的数据读/写方法、装置和计算机系统 | |
CN111414248B (zh) | 内存管理方法、装置及计算设备 | |
CN105740164A (zh) | 支持缓存一致性的多核处理器、读写方法、装置及设备 | |
US11210020B2 (en) | Methods and systems for accessing a memory | |
TWI744111B (zh) | 查找表建立暨記憶體位址查詢方法、主機記憶體位址查找表建立方法與主機記憶體位址查詢方法 | |
US20150113230A1 (en) | Directory storage method and query method, and node controller | |
CN111061655B (zh) | 存储设备的地址转换方法与设备 | |
WO2021244155A1 (zh) | 一种进程间通信方法以及进程间通信装置 | |
CN111512290B (zh) | 文件页表管理技术 | |
WO2013101158A1 (en) | Metadata management and support for phase change memory with switch (pcms) | |
WO2021072721A1 (zh) | 一种地址翻译方法及装置 | |
WO2018024214A1 (zh) | Io流调节方法与装置 | |
WO2021062982A1 (zh) | 管理hmb内存的方法、装置、计算机设备及存储介质 | |
WO2023051000A1 (zh) | 内存管理方法、装置、处理器及计算设备 | |
CN115794669A (zh) | 一种扩展内存的方法、装置及相关设备 | |
WO2024093517A1 (zh) | 内存管理方法及计算设备 | |
CN115658588B (zh) | 一种axi总线的id压缩装置及方法 | |
US10331385B2 (en) | Cooperative write-back cache flushing for storage devices | |
US11650736B2 (en) | SGL processing acceleration method and storage device | |
WO2016049893A1 (zh) | 文件页面管理单元、处理设备和文件页面管理方法 |