TWI744111B - 查找表建立暨記憶體位址查詢方法、主機記憶體位址查找表建立方法與主機記憶體位址查詢方法 - Google Patents

查找表建立暨記憶體位址查詢方法、主機記憶體位址查找表建立方法與主機記憶體位址查詢方法 Download PDF

Info

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
Application number
TW109141349A
Other languages
English (en)
Other versions
TW202219773A (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 瑞昱半導體股份有限公司
Application granted granted Critical
Publication of TWI744111B publication Critical patent/TWI744111B/zh
Publication of TW202219773A publication Critical patent/TW202219773A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • 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 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個儲存空間的物理位址。舉例而言,該第二級查找表佔用一第二記憶體空間,該第二記憶體空間小於該第一記憶體空間,從而能減少消耗該從機的儲存空間。另舉例而言,上述第二記憶體空間不大於該第一記憶體空間的
Figure 02_image001
,該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)

  1. 一種查找表建立暨記憶體位址查詢方法,用來建立複數個查找表以依據該複數個查找表查詢一主機的一分配記憶體的物理位址,該方法是由耦接至該主機的一從機來執行,包含: 查詢儲存於該主機的一主機記憶體緩存描述表(HMB descriptor list),以得知該分配記憶體的資訊; 依據該分配記憶體的資訊,將該分配記憶體分為N個儲存空間,其中該N為大於二的整數; 於該N個儲存空間中儲存一第一級查找表指出該N個儲存空間的物理位址,其中該第一級查找表佔用一第一記憶體空間; 將該第一記憶體空間分為M個儲存空間,其中該M為大於一的整數,且該M小於該N; 於該從機中儲存一第二級查找表指出該M個儲存空間的物理位址; 指定一邏輯位址; 依據該邏輯位址查詢該第二級查找表,以得到一第一索引指出該M個儲存空間中一第一儲存空間的一第一物理位址;以及 依據該第一索引查詢該第一級查找表,以得到儲存於該第一儲存空間的一第二索引,該第二索引指出該N個儲存空間之一的物理位址。
  2. 如請求項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個儲存空間的物理位址。
  3. 一種主機記憶體位址查找表建立方法,用來建立複數個查找表用於查找一主機的一分配記憶體的物理位址,該方法是由耦接至該主機的一從機來執行,包含: 查詢儲存於該主機的一主機記憶體緩存描述表(HMB descriptor list),以得知該分配記憶體的資訊; 依據該分配記憶體的資訊,將該分配記憶體分為N個儲存空間,其中該N為大於二的整數; 於該N個儲存空間中儲存一第一級查找表指出該N個儲存空間的物理位址,其中該第一級查找表佔用一第一記憶體空間; 將該第一記憶體空間分為M個儲存空間,其中該M為大於一的整數,且該M小於該N;以及 於該從機中儲存一第二級查找表指出該M個儲存空間的物理位址。
  4. 如請求項3之方法,其中該分配記憶體為複數個離散記憶體空間。
  5. 如請求項3之方法,其中該N個儲存空間的任二個的大小相等。
  6. 如請求項3之方法,其中該M個儲存空間的任二個的大小相等。
  7. 如請求項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個儲存空間的物理位址。
  8. 如請求項3之方法,其中該第二級查找表佔用一第二記憶體空間,該第二記憶體空間小於該第一記憶體空間。
  9. 一種主機記憶體位址查詢方法,用來依據複數個查找表查詢一主機的一分配記憶體的物理位址,該方法是由耦接至該主機的一從機來執行,包含: 指定一邏輯位址; 依據該邏輯位址查詢一第二級查找表,以得到一第一索引指出M個儲存空間中一第一儲存空間的一第一物理位址,其中該第二級查找表儲存於該從機中,該M為大於一的整數;以及 依據該第一索引查詢一第一級查找表,以得到位於該第一儲存空間的一第二索引指出N個儲存空間之一的物理位址,其中該第一級查找表儲存於該N個儲存空間中,該N個儲存空間屬於該主機的該分配記憶體,該N為大於該M的整數,該第一級查找表所佔用的儲存空間為該M個儲存空間的總和。
  10. 如請求項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個儲存空間的物理位址。
TW109141349A 2020-11-10 2020-11-25 查找表建立暨記憶體位址查詢方法、主機記憶體位址查找表建立方法與主機記憶體位址查詢方法 TWI744111B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작 방법과 메모리 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
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) 文件页面管理单元、处理设备和文件页面管理方法