CN111475429B - 存储器访问方法 - Google Patents
存储器访问方法 Download PDFInfo
- Publication number
- CN111475429B CN111475429B CN201910069975.2A CN201910069975A CN111475429B CN 111475429 B CN111475429 B CN 111475429B CN 201910069975 A CN201910069975 A CN 201910069975A CN 111475429 B CN111475429 B CN 111475429B
- Authority
- CN
- China
- Prior art keywords
- page address
- mapping table
- logical
- physical page
- memory
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种存储器访问方法,该存储器访问方法包括:选择步骤,选择原始映射表的多个分割部分中的一个以便使用所选择的分割部分中的一个物理页面地址作为起始物理页面地址;扫描步骤,扫描所选择的分割部分的每个条目以便搜索所选择的分割部分中被随机映射的条目;确定步骤,确定创建简化映射表所需要的存储器空间是否小于所选择的分割部分所需要的存储器空间;以及存储步骤,根据确定步骤的结果来选择性地存储起始物理页面地址、在搜索中找到的被随机映射的条目的数量以及记录在每个被随机映射的条目中的逻辑页面地址和物理页面地址,以便创建简化映射表。
Description
技术领域
各个实施例总体涉及一种存储器访问方法,并且更特别地,涉及一种能够读取存储器装置以建立逻辑至物理地址映射表并且提高存储器性能的存储器访问方法。
背景技术
在一般计算机架构中,存储器装置通常为阶层式设计。例如,主存储器通常为低位阶存储器装置,并且高速缓存存储器通常为高位阶存储器装置。由于高速缓存存储器的访问时间短于主存储器的访问时间,因此,处理器可设计成首先在高速缓存存储器中搜索被请求的数据。当处理器未能在高速缓存存储器中找到被请求的数据时,处理器然后在主存储器中搜索此数据。
当在高速缓存存储器中找到被请求的数据时,这被称为高速缓存命中(cachehit)。当在高速缓存存储器中搜索但是未找到被请求的数据,这被称为高速缓存失误(cache miss)。高速缓存命中率被定义为高速缓存命中与高速缓存存储器上执行的搜索的比例。高速缓存失误率被定义为高速缓存失误与高速缓存存储器上执行的搜索的比例。高速缓存命中率和高速缓存失误率可用作存储器性能的衡量。
由处理器生成的地址被称为逻辑地址,加载到存储器装置中的地址被称为物理地址。由于通过处理器在存储器装置上执行的读取操作或写入操作与逻辑地址和物理地址之间的转换有关,因此必须设置逻辑至物理地址映射表以适于记录或搜索转换结果。
当存储逻辑至物理地址映射表时,必然会占用存储器空间,并且随着隐藏数据量越来越大,使得无法将完整的映射表存储在高速缓存存储器中。因此,映射表被划分成分割部分(partition),并且条目(entry)必须被存储使得连续的逻辑页面地址以及对应映射的物理页面地址被记录在映射表的每个分割部分上。然而,高速缓存存储器的容量通常仅能够存储多个分割部分中的一些。
例如,当完整的映射表存储在主存储器中并且被等分成40个分割部分时,高速缓存存储器的容量仅能够存储40个分割部分之中的 4个分割部分。高速缓存命中率只有10%(4/40),但高速缓存失误率却为90%(36/40)。在每次高速缓存失误后,处理器都必须从主存储器中搜索被请求的数据,从而在每次高速缓存失误检查映射到逻辑页面地址的物理页面地址。因此,在高速缓存命中率不高时,对存储器效率有负面影响。
发明内容
各个实施例提供一种存储器访问方法,该存储器访问方法读取存储器装置以便创建简化映射表使得存储简化映射表所需要的存储器空间小于存储原始映射表所需要的存储器空间。
实施例提供一种存储器访问方法,包括选择步骤、扫描步骤、确定步骤及存储步骤以便选择性地创建简化映射表。
在选择步骤中,可以选择原始映射表的多个分割部分中的一个以便使用所选择的分割部分中的一个物理页面地址作为起始物理页面地址。
在扫描步骤中,可以扫描所选择的分割部分的每个条目以便搜索所选择的分割部分中被随机映射的条目。
在确定步骤中,可以确定创建简化映射表所需要的存储器空间是否小于所选择的分割部分所需要的存储器空间。
在存储步骤中,可以根据确定步骤的确定结果来选择性地存储起始物理页面地址、被随机映射的条目的数量以及记录在每个被随机映射的条目中的逻辑页面地址和物理页面地址以便创建简化映射表。
在实施例中,当确定步骤的确定结果为“是”时,可以执行存储步骤,使得第二存储器装置存储起始物理页面地址、被随机映射的条目的数量以及记录在每个被随机映射的条目中的逻辑页面地址和物理页面地址,以便创建简化映射表,并且当确定步骤的确定结果为“否”时,可以不执行存储步骤,并且将所选择的分割部分存储在第二存储器装置中。
在实施例中,存储器访问方法可进一步包括搜索步骤:根据命令,在存储简化映射表的第二存储器装置中搜索对应映射到逻辑页面地址的物理页面地址;当从简化映射表的任意条目中搜索到逻辑页面地址时,通过简化映射表获取对应映射到逻辑页面地址的物理页面地址;并且当从简化映射表的全部条目中未搜索到逻辑页面地址时,通过起始物理页面地址及逻辑页面地址的偏移量(offset)来计算对应映射到逻辑页面地址的物理页面地址。
在实施例中,存储器访问方法可进一步包括组合步骤:重复选择步骤、扫描步骤、确定步骤及存储步骤以创建多个简化映射表;组合多个简化映射表以创建一个简化组合映射表;并且将该简化组合映射表存储在第二存储器装置中。
在实施例中,存储器访问方法可进一步包括搜索步骤:根据命令,在存储简化组合映射表的第二存储器装置中搜索对应映射到逻辑页面地址的物理页面地址;当从简化组合映射表的任意条目中搜索到逻辑页面地址时,通过简化组合映射表获取对应映射到逻辑页面地址的物理页面地址;并且当从简化组合映射表的全部条目中未搜索到逻辑页面地址时,通过由起始物理页面地址及逻辑页面地址的偏移量的计算来获取对应映射到逻辑页面地址的物理页面地址。
在实施例中,搜索步骤可通过二分搜索(binary search)方法来执行。
在实施例中,存储器装置可进一步包括第一存储器装置以及第二存储器装置。第一存储器装置可包括原始映射表,并且将原始映射表划分成多个分割部分,其中原始映射表的每个分割部分可存储多个条目以便记录多个连续逻辑页面地址以及对应映射到逻辑页面地址的多个物理页面地址。
在实施例中,第一存储器装置可以为主存储器,第二存储器装置可以为高速缓存存储器。
实施例提供一种存储器访问方法,用于创建简化映射表,该存储器访问方法由计算机装置执行,该计算机装置包括第一存储器装置以及第二存储器装置,该第一存储器装置包括原始映射表且将原始映射表划分成分割部分,原始映射表的每个分割部分存储多个条目以便记录多个连续的逻辑页面地址以及对应映射到逻辑页面地址的多个物理页面地址,存储器访问方法包括选择步骤、扫描步骤及存储步骤。
在选择步骤中,可以选择原始映射表的多个分割部分中的一个以便使用所选择的分割部分中的一个物理页面地址作为起始物理页面地址。
在扫描步骤中,可以扫描所选择的分割部分的每个条目以便搜索所选择的分割部分中被随机映射的条目。
在存储步骤中,可以选择性地存储起始物理页面地址、被随机映射的条目的数量以及记录在每个被随机映射的条目中的逻辑页面地址和物理页面地址。
在实施例中,存储器访问方法可进一步包括确定步骤:确定创建简化映射表所需要的存储器空间是否小于所选择的分割部分所需要的空间,其中确定步骤在存储步骤之后执行。
实施例提供一种方法,选择性地包括根据预设大小将完整的逻辑至物理地址映射数据顺序地划分成多个逻辑至物理地址分割部分,并且选择包括在预设比例内的随机映射的一个逻辑至物理地址分割部分的步骤。
该方法可以包括以下步骤。首先,可确定并且高速缓存所选择的逻辑至物理地址分割部分中与第一逻辑至物理页面地址的偏移量对应的起始物理页面地址,可高速缓存所选择的逻辑至物理地址分割部分中的多个随机映射,并且可以与高速缓存所选择的逻辑至物理地址分割部分中的多个随机映射的方法相同的方式高速缓存其它顺序映射。
因此,通过根据实施例的存储器访问方法创建的简化映射表可以替换所选择的分割部分(即,原始映射表中的一个未简化的分割部分)。另外,由于简化映射表所需要的存储器空间小于所选择的分割部分所需要的存储器空间,因此能够实现节省存储器空间的效果。此外,依照根据实施例的存储器访问方法,由于简化组合映射表通过具有固定容量的高位阶存储器装置(例如,高速缓存存储器)来创建,因此能够实施更多的分割部分,从而提高命中率(例如,高速缓存命中率)。另外,进一步公开了一种通过不同于传统方法的高速缓存方法实施所选择的逻辑至物理地址分割部分的方法。
附图说明
图1是示出根据实施例的存储器访问方法的流程图。
图2是示出原始映射表的分割部分的示图。
图3是示出简化映射表的示图。
图4是示出根据另一实施例的存储器访问方法的流程图。
图5是示出根据另一实施例的存储器访问方法的流程图。
图6是示出根据又一实施例的存储器访问方法的流程图。
图7是示出根据实施例的存储器访问方法的流程图。
具体实施方式
将参照附图通过以下实施例描述本公开的优点和特征以及用于实现优点和特征的方法。然而,本公开不限于本文描述的实施例,而是可以不同方式实现。提供所公开的实施例是为了详细描述本发明,使得本公开所属领域的技术人员可以容易地实施本发明。在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这样的短语的不同参考不一定针对相同的实施例。
图1是示出根据实施例的存储器访问方法的流程图。参照图 1,存储器访问方法可以包括选择步骤S110、扫描步骤S120及存储步骤S130。
存储器访问方法可由计算机装置执行,该计算机装置包括高位阶存储器装置(例如,高速缓存存储器)与低位阶存储器装置(例如,主存储器)。低位阶存储器装置可包括完整的原始逻辑至物理地址映射表(原始映射表)。原始映射表可被划分成多个分割部分(或段)。存储在原始映射表的每个分割部分中的多个条目记录连续的多个逻辑页面地址及对应映射到多个逻辑页面地址的多个物理页面地址。
图2是示出原始映射表中的一个分割部分的示图。参照图2,分割部分中存在32个条目。每个条目记录一个逻辑页面地址(或逻辑页面编号(LPN))以及映射到该逻辑页面地址的物理页面地址 (或物理页面编号(PPN))。在示出的实施例中,图2的多个逻辑页面地址通过偏移量来表示。第一条目记录一个逻辑页面地址(偏移量0)及一个相应的物理页面地址1314。第二条目记录另一个逻辑页面地址(偏移量1)及一个相应的物理页面地址111。
连续记录32个逻辑页面地址。例如,当由偏移量0表示的逻辑页面地址是1024时,由偏移量1表示的逻辑页面地址是1025,并且由偏移量2表示的逻辑页面地址是1026。
不同分割部分的偏移量可表示不同的逻辑页面地址。例如,在另一分割部分中,由偏移量0表示的逻辑页面地址可以是512,由偏移量1表示的逻辑页面地址可以是513,并且由偏移量2表示的逻辑页面地址可以是514。
全部分割部分可以构成完整的原始映射表。例如,可以存在40 个分割部分,且每个分割部分可以包括32个条目。当每个条目记录一个逻辑页面地址时,完整的原始映射表可包括1280个连续的逻辑页面地址0至1279以及1280个相应的物理页面地址。
在本实施例中,由于在原始映射表中所描述的数据为逻辑至物理地址映射数据,因此完整的原始映射表可表示为完整的逻辑至物理地址映射数据,而选择的分割部分可以等同于选择的逻辑至物理地址分割部分。
另外,在本实施例中的原始映射表可以被均等地或不均等地划分成多个分割部分。此外,原始映射表可以根据设定大小顺序地将完整的逻辑至物理地址映射表划分成多个逻辑至物理地址分割部分。例如,当设定大小为128字节(包括32个条目)且原始映射表为5000字节(包括1250个条目)时,原始映射表可以被顺序地划分成40个分割部分。39个分割部分的大小可以为128字节,1个分割部分的大小可以为8(即,5000-39*128=8)字节。
在图2中,大部分的物理页面地址编号(PPN)可以是连续的 (即,大部分的逻辑页面地址可以被顺序地映射到物理页面地址),仅有少数的物理页面地址可以不依照编号顺序。这是因为,当不失一般性时,大部分的映射是顺序映射(即,多个连续逻辑页面地址被连续映射到多个连续物理页面地址)。因此,仅有小部分的映射是随机映射。此外,在图2中,随机映射条目的逻辑页面地址可以是以下六个条目,即:偏移量0(PPN 1314)、偏移量21(PPN38)、偏移量22(PPN 614)、偏移量23(PPN 1129)、偏移量24(PPN 531)以及偏移量29(PPN999)。
参照图1和图2,在选择步骤S110中,可选择原始映射表的多个分割部分中的一个分割部分作为选择的分割部分,并且分割部分中的一个的物理页面地址可用作起始物理页面地址。例如,图2的分割部分可以为完整的原始映射表的40个分割部分中的一个。在选择步骤S110中,图2的分割部分可以是选择的分割部分。以这种方式,第一条目(偏移量0)的物理页面地址可用作起始物理页面地址。虽然第一条目(偏移量0)的物理页面地址是1314,但由于第一条目是随机映射,因此起始物理页面地址可被校正为110。
在扫描步骤S120中,可以扫描选择的分割部分的每个条目以便在选择的分割部分中搜索被随机映射的条目。例如,当图2的分割部分在选择步骤S110中被选择时,第一条目(偏移量0)至最后条目(偏移量31)可以在扫描步骤S120中被顺序地扫描以便搜索被随机映射的条目。在图2中,可以搜索到逻辑页面地址为偏移量 0、偏移量21、偏移量22、偏移量23、偏移量24及偏移量29的六个被随机映射的条目。
在存储步骤S130中,为了创建简化映射表,高位阶存储器装置 (例如,高速缓存存储器)可存储起始物理页面地址、被随机映射的条目的数量及每个被随机映射的条目中记录的逻辑页面地址和物理页面地址。
图3是示出简化映射表的示图。参照图3,简化映射表可记录第一数据(即,起始物理页面地址)datal、第二数据(即,被随机映射的条目的数量)data2以及第三数据(即,被随机映射的全部条目)data3。第一至第六被随机映射的条目可以表示为数据data3_l至data3_6。
在传统方法中,高位阶存储器装置(例如,高速缓存存储器) 必须以完整的方式存储选择的分割部分中的每个条目。例如,假设每个条目所需要的存储器容量为4字节,当存储图2的分割部分时,传统高位阶存储器需要128(=32*4)字节的存储空间,才能记录选择的分割部分。相反,假设存储第一数据(即,起始物理页面地址)datal需要4字节、存储第二数据(即,被随机映射的条目的数量)data2需要4字节以及存储第三数据(即,被随机映射的全部条目)data3需要30(=6*5)字节,则图3所示的简化映射表只需要 38(4+4+30)字节的存储空间,就能以完整的方式存储选择的分割部分。
在上述示例的计算中,需要5字节而不是4字节以存储第三数据(即,被随机映射的每个条目)data3。每个条目单独需要1字节插入标记或代码。因此,作为被随机映射的条目的相应条目与未被随机映射的条目区别开来。
在上述示例中,存储一个分割部分的简化映射表所需要的存储器空间(即,38字节)远小于存储一个分割部分的原始映射表所需要的存储器空间(即,128字节)。因此,根据本实施例的存储器访问方法可节省90字节的存储器存储空间。
图4是示出根据另一实施例的存储器访问方法的流程图。参照图4,除了图1的存储器访问方法的步骤之外,图4的存储器访问方法进一步包括确定步骤S140。在确定步骤S140中,可以确定简化映射表所需要的存储器空间是否小于选择的分割部分(即,原始映射表中的一个未简化分割部分)所需要的存储器空间。
在上述示例中,由于简化映射表所需要的存储器空间(即,38 字节)小于选择的分割部分所需要的存储器空间(即,128字节),因此在步骤S140中进行的确定的结果为“是”。
下面描述另一示例,该示例是有可能的但可能性相当低。由于大部分的条目使用随机映射,因此简化映射表所需要的存储器空间 (假设30个条目使用随机映射,则为4+4+30*5=158字节)大于选择的分割部分所需要的存储器空间(128字节)。因此,在这个示例中,在步骤S140中进行的确定的结果为“否”。
确定步骤S140的结果(确定结果)可用于确定选择的分割部分是否必须用简化映射表来替换。具体地,当确定结果为“是”时,意味着使用简化映射表可以节省存储器空间。因此必须使用简化映射表来代替原始映射表的分割部分。另一方面,当确定结果为“否”时,意味着如果使用简化映射表则需要更多存储器空间。因此不应使用简化映射表来代替原始映射表的选择的分割部分。因此,与根据确定步骤S140的结果而选择性地执行的图4的存储步骤 S130相比,图1的存储步骤S130在任何情况下都会执行。
由于确定步骤S140可通过算法执行,可以通过算法分别计算简化映射表所需要的存储器空间以及原始映射表的分割部分所需要的存储器空间,并且可以比较两个值以得到确定结果。高位阶存储器装置(例如,高速缓存存储器)可以根据确定结果确定存储简化映射表还是存储选择的分割部分。
如上所述,图4示出在存储步骤S130之前执行确定步骤S140 的情况。当确定结果为“是”时,可执行存储步骤S130,并且当确定结果为“否”时,可不执行存储步骤S130。也就是说,可以不创建分割部分的简化映射表。当确定结果为“否”时,与传统方法中一样,可存储选择的分割部分。
然而,在其它可实施的实施例中,可以在存储步骤S130之后执行确定步骤S140,可以在产生确定结果之前首先存储简化映射表。因此,本发明不限于图4中所示的步骤的执行顺序。
图5是示出根据另一实施例的存储器访问方法的流程图。参照图5,除了图1的存储器访问方法的步骤之外,图5的存储器访问方法进一步包括搜索步骤S150。搜索步骤S150可根据可由计算机装置的处理器生成的命令来执行。
命令可以是用于读取存储在高位阶或低位阶存储器装置中的数据的读取命令。读取命令可从高位阶存储器装置请求数据,因此可导致将对高速缓存存储器执行的搜索。由于高位阶存储器装置中的原始映射表的分割部分已经用简化映射表替换,所以当被请求的数据的逻辑页面地址存在于分割部分中时,可以使用简化映射表来读取数据。
例如,参照图2和图3,当被请求的数据的逻辑页面地址为 1027,并且与图2的分割部分对应的逻辑页面地址为1024至1055 时,被请求的数据的逻辑页面地址1027属于分割部分的逻辑页面地址1024至1055,因此可以使用简化映射表。由于第一条目的逻辑页面地址为1024,因此可计算出与被请求的数据的逻辑页面地址对应的第四条目。可选地,计算余数(1027%32=3)(1027模32=3),可得知被请求的数据的逻辑页面地址对应于分割部分的偏移量3的条目。
在获取与被请求的数据的逻辑页面地址对应的分割部分的第四条目(偏移量3)之后,可以确定简化映射表中是否存在偏移量3 的条目。
下面将描述搜索步骤S150的搜索方法。在第一次搜索中,将第一被随机映射的条目data3_l与被请求的数据的逻辑页面地址进行比较。然后,当发现偏移量0不同于偏移量3时,第一次搜索被视为已失败。在第二次搜索中,将第二被随机映射的条目data3_2的偏移量与被请求的数据的逻辑页面地址的偏移量进行比较。然后,当发现偏移量21不同于偏移量3时,第二次搜索被视为已失败。在上述示例中,由于在第二次搜索中已经发现条目的偏移量21大于被请求的数据的偏移量3,因此无须执行第三次至第六次搜索。也就是说,因为第三至第六被随机映射的条目data3_3至data3_6的偏移量大于被请求的数据的偏移量3,所以无需将第三至第六被随机映射的条目data3_3至data3_6的偏移量与被请求的数据的偏移量3进行比较。因此确定被请求的数据的逻辑页面地址不存在于简化映射表的全部条目中。
下面将描述搜索步骤S150的另一种搜索方法。执行搜索的次数与被随机映射的条目的数量相同。在图2和图3的上述示例中,由于被随机映射的条目的数量为6,因此将第一至第六被随机映射的条目data3_1至data3_6的偏移量与被请求的数据的偏移量进行比较。也就是说,执行六次比较操作。然后,确定被请求的数据的偏移量不存在于简化映射表的全部条目中。
上述搜索步骤可以通过二分搜索方法来执行。在第一次搜索中,可以在六个被随机映射的条目之中选择第三条目(即,偏移量 22)和第四条目(即,偏移量23),并且可以计算两个偏移量的平均值。然后,可将平均值(即,22.5)与被请求的数据的偏移量3 进行比较。由于被请求的数据的偏移量3小于平均值(即,22.5),因此在下一次搜索中,可仅对第一至第三条目执行搜索。在第二次搜索中,可在三个被随机映射的条目之中选择中间条目(即,第二条目)。然后,可将第二条目的偏移量21与被请求的数据的偏移量 3进行比较。由于被请求的数据的偏移量3小于第二条目的偏移量 21,因此在下一次搜索中,可仅对第一条目执行搜索。在第三次搜索中,当发现第一条目的偏移量0不同于被请求的数据的偏移量3 时,确定被请求的数据的偏移量不存在于简化映射表的全部条目中。
无论使用哪一种搜索方法,被请求的数据的偏移量对应或不对应简化映射表中的一个条目。上述搜索方法的主要差异在于搜索次数的不同。
当从简化映射表的任意条目中搜索到被请求的数据的逻辑页面地址时,由逻辑页面地址映射的物理页面地址可以通过简化映射表来获取。当从简化映射表的全部条目中未搜索到被请求的数据的逻辑页面地址时,映射到逻辑页面地址的物理页面地址可以通过起始物理页面地址及偏移量来计算。
例如,在上述示例中,由于可以从第三条目中搜索到具有逻辑页面地址1046的数据(偏移量22),因此可以看出映射到被请求的数据的逻辑页面地址的物理页面地址为614。然而,由于具有逻辑页面地址1027的数据(偏移量3)不存在于任何条目中,因此可以看出通过由起始物理页面地址及偏移量的计算,映射到被请求的数据的逻辑页面地址的物理页面地址为113:起始物理页面地址110+ 偏移量3=113。
图6是示出根据又一实施例的存储器访问方法的流程图。参照图6,除了图1的存储器访问方法的步骤之外,图6的存储器访问方法进一步包括组合步骤S160以及搜索步骤S170。
在组合步骤S160中,可重复选择步骤S110、扫描步骤S120以及存储步骤S130以创建多个简化映射表,并且可组合该多个简化映射表以创建一个简化组合映射表。
例如,假设高位阶存储器装置(例如,高速缓存存储器)的容量为512字节,并且多个简化映射表中利用足够数量简化的映射表所需要的存储器空间为64字节或更少。在这种情况下,64字节被设计成设定大小,并且八个分割部分的简化映射表(512/64=8)可存储在高速缓存存储器中,该八个分割部分的简化映射表在设定大小 (64字节)内,包括随机映射(即,一个或多个随机映射条目),并且在设定比例内被随机映射。关于设定比例,例如,当其为0.25 时,在32个条目之中选择八个或更少的随机映射条目 (8/32=0.25)。
与传统方法的高速缓存存储器相比,仅可以存储设定大小(128 字节)内的四个分割部分(512/128=4)。在组合多个简化映射表以创建简化组合映射表之后,更多个分割部分(8大于4)可存储在具有相同容量的存储器装置中,从而增加高速缓存命中率。例如,高速缓存命中率从10%(即,4/40)增加至20%(即,8/40),从而提高存储器装置的访问性能。
搜索步骤S170类似于图5的搜索步骤S150,除了在搜索步骤 S170中搜索简化组合映射表。
图7是示出根据实施例的存储器访问方法的流程图。参照图 7,该方法根据预设大小将完整的逻辑至物理地址映射数据顺序地划分成多个逻辑至物理地址分割部分,并且选择一个逻辑至物理地址分割部分。选择的逻辑至物理地址分割部分应包括随机映射,并且包括在选择的逻辑至物理地址分割部分中的被随机映射的分割部分的数量应该在预设比例内。
例如,当存在L+M+N个逻辑至物理地址分割部分(其中L、 M、N为正整数)、设定比例为0.25、L个逻辑至物理地址分割部分的随机映射数量超过设定比例、M个逻辑至物理地址分割部分的随机映射数量为0、并且N个逻辑至物理地址分割部分包括不超过设定比例的随机映射时,N个逻辑至物理地址分割部分中的一个应被选择作为选择的逻辑至物理地址分割部分。
图7的方法可包括下列步骤。在第一步骤S210中,可确定并且高速缓存选择的逻辑至物理地址分割部分中与第一逻辑至物理页面地址的偏移量对应的起始物理页面地址。在第二步骤S220中,可高速缓存选择的逻辑至物理地址分割部分中的多个随机映射。在第三步骤S230中,可以与高速缓存选择的逻辑至物理地址分割部分中的多个随机映射的方法相同的方式高速缓存其它顺序映射。
通过上述步骤,本实施例的存储器访问方法可根据本发明的实施例的高速缓存方法与传统方法不同地实施选择的逻辑至物理地址分割部分。
综上所述,通过根据本发明的实施例的存储器访问方法所创建的简化映射表能够替换选择的分割部分(即,原始映射表中的一个未简化的分割部分)。另外,由于简化映射表所需要的存储器空间小于选择的分割部分所需要的存储器空间,因此能够节省存储器空间。此外,根据本发明的存储器访问方法,由于简化组合映射表通过具有固定容量的高位阶存储器装置(例如,高速缓存存储器)来创建,因此能够实施更多的分割部分,从而提高命中率(例如,高速缓存命中率)。另外,进一步公开了一种通过与传统方法不同的高速缓存方法来实施选择的逻辑至物理地址分割部分的方法。
虽然已经示出并描述了各个实施例,但是本领域技术人员根据本公开将理解的是,所描述的实施例是可以在本发明的范围内进行各种修改的示例。因此,不应基于所描述的实施例来限制本文描述的数据存储装置的操作方法。相反,本发明涵盖落入权利要求的范围内的所有修改和变型。
Claims (12)
1.一种存储器访问方法,包括:
选择步骤,选择原始映射表的多个分割部分中的一个以便使用所选择的分割部分中的一个物理页面地址作为起始物理页面地址;
扫描步骤,扫描所选择的分割部分的每个条目以便搜索所选择的分割部分中被随机映射的条目;
确定步骤,确定创建简化映射表所需要的存储器空间是否小于所选择的分割部分所需要的存储器空间;以及
存储步骤,根据所述确定步骤的结果来选择性地存储所述起始物理页面地址、在搜索中找到的所述被随机映射的条目的数量以及记录在每个被随机映射的条目中的逻辑页面地址和物理页面地址,以便创建所述简化映射表,
其中存储器装置包括第一存储器装置以及第二存储器装置,并且
其中所述第一存储器装置包括被划分成所述分割部分的所述原始映射表,所述原始映射表的每个分割部分存储多个条目以便记录多个连续逻辑页面地址以及对应映射到所述逻辑页面地址的多个物理页面地址。
2.根据权利要求1所述的存储器访问方法,其中当所述确定步骤的结果指示创建所述简化映射表所需要的存储器空间小于所选择的分割部分所需要的存储器空间时,执行所述存储步骤使得第二存储器装置存储所述起始物理页面地址、所述被随机映射的条目的数量以及记录在每个被随机映射的条目中的逻辑页面地址和物理页面地址,以便创建所述简化映射表,并且
当所述确定步骤的确定结果指示创建所述简化映射表所需要的存储器空间不小于所选择的分割部分所需要的存储器空间时,不执行所述存储步骤,并且将所选择的分割部分存储在所述第二存储器装置中。
3.根据权利要求1所述的存储器访问方法,进一步包括搜索步骤:
根据命令,在存储所述简化映射表的第二存储器装置中搜索对应映射到逻辑页面地址的物理页面地址;
当在所述简化映射表的任意条目中搜索到所述逻辑页面地址时,通过所述简化映射表获取对应映射到所述逻辑页面地址的所述物理页面地址;并且
当在所述简化映射表的全部条目中未搜索到所述逻辑页面地址时,通过所述起始物理页面地址及所述逻辑页面地址的偏移量来计算对应映射到所述逻辑页面地址的所述物理页面地址。
4.根据权利要求3所述的存储器访问方法,其中所述搜索步骤通过二分搜索方法来执行。
5.根据权利要求1所述的存储器访问方法,进一步包括组合步骤:
重复所述选择步骤、所述扫描步骤、所述确定步骤及所述存储步骤以创建多个简化映射表;
组合所述多个简化映射表以创建一个简化组合映射表;并且
将所述简化组合映射表存储在第二存储器装置中。
6.根据权利要求5所述的存储器访问方法,进一步包括搜索步骤:
根据命令,在存储所述简化组合映射表的所述第二存储器装置中搜索对应映射到逻辑页面地址的物理页面地址;
当在所述简化组合映射表的任意条目中搜索到所述逻辑页面地址时,在所述简化组合映射表中获取对应映射到所述逻辑页面地址的所述物理页面地址;并且
当在所述简化组合映射表的全部条目中未搜索到所述逻辑页面地址时,通过由所述起始物理页面地址及所述逻辑页面地址的偏移量的计算来获取对应映射到所述逻辑页面地址的所述物理页面地址。
7.根据权利要求6所述的存储器访问方法,其中所述搜索步骤通过二分搜索方法来执行。
8.根据权利要求7所述的存储器访问方法,其中所述第一存储器装置包括主存储器,并且所述第二存储器装置包括高速缓存存储器。
9.一种存储器访问方法,用于创建简化映射表,所述存储器访问方法由计算机装置执行,所述计算机装置包括第一存储器装置以及第二存储器装置,所述第一存储器装置包括被划分成分割部分的原始映射表,所述原始映射表的每个分割部分存储多个条目以便记录多个连续逻辑页面地址以及对应映射到所述逻辑页面地址的多个物理页面地址,所述存储器访问方法包括:
选择步骤,选择所述原始映射表的多个分割部分中的一个以便使用所选择的分割部分中的一个物理页面地址作为起始物理页面地址;
扫描步骤,扫描所选择的分割部分的每个条目以便搜索所选择的分割部分的多个条目之中被随机映射的条目;以及
存储步骤,选择性地存储所述起始物理页面地址、在扫描中找到的所述被随机映射的条目的数量以及记录在每个被随机映射的条目中的逻辑页面地址和物理页面地址。
10.根据权利要求9所述的存储器访问方法,进一步包括确定步骤:确定创建所述简化映射表所需要的存储器空间是否小于所选择的分割部分所需要的空间,其中所述确定步骤在所述存储步骤之后执行。
11.一种存储器访问方法,包括:
根据设定大小将完整的逻辑至物理地址映射数据顺序地划分成多个逻辑至物理地址分割部分;
选择一个逻辑至物理地址分割部分,所选择的逻辑至物理地址分割部分包括相对于所选择的逻辑至物理地址分割部分中的全部映射条目,在设定比例内的随机映射条目;
确定并且高速缓存所选择的逻辑至物理地址分割部分中与第一逻辑至物理页面地址对应的起始物理页面地址;
高速缓存所选择的逻辑至物理地址分割部分中的所述随机映射条目;并且
高速缓存所选择的逻辑至物理地址分割部分中剩余的顺序映射条目。
12.一种访问存储器装置的方法,包括:
在原始映射表中的多个分割部分之中选择一个分割部分,所选择的分割部分包括被随机映射的条目;
确定创建简化映射表所需要的第一存储器空间是否小于所选择的分割部分所需要的第二存储器空间;并且
当确定所述第一存储器空间小于所述第二存储器空间时,基于所选择的分割部分中作为起始物理页面地址的一个物理页面地址、所选择的分割部分中被随机映射的条目的数量以及记录在每个被随机映射的条目中的逻辑页面地址和物理页面地址来创建所述简化映射表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910069975.2A CN111475429B (zh) | 2019-01-24 | 2019-01-24 | 存储器访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910069975.2A CN111475429B (zh) | 2019-01-24 | 2019-01-24 | 存储器访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475429A CN111475429A (zh) | 2020-07-31 |
CN111475429B true CN111475429B (zh) | 2023-08-29 |
Family
ID=71743965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910069975.2A Active CN111475429B (zh) | 2019-01-24 | 2019-01-24 | 存储器访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475429B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103026346A (zh) * | 2010-07-27 | 2013-04-03 | 国际商业机器公司 | 包括固态存储器设备的存储系统中的逻辑到物理地址映射 |
CN103064641A (zh) * | 2013-02-05 | 2013-04-24 | 威盛电子股份有限公司 | 非易失性存储装置及其操作方法 |
CN104714894A (zh) * | 2015-03-18 | 2015-06-17 | 清华大学 | 一种分层的基于随机映射的相变内存磨损均衡方法及系统 |
CN104731713A (zh) * | 2015-03-18 | 2015-06-24 | 清华大学 | 基于随机映射的相变内存磨损均衡方法及系统 |
CN105765907A (zh) * | 2013-11-22 | 2016-07-13 | 微软技术许可有限责任公司 | 用于提供实时或接近实时的纠正反馈的性能监测 |
US9552289B1 (en) * | 2014-11-25 | 2017-01-24 | Seagate Technology Llc | Bitwise addressing of entries in a forward lookup table |
CN106484618A (zh) * | 2016-10-10 | 2017-03-08 | 中国电力科学研究院 | 一种基于访存依赖对的并行重放方法和装置 |
CN107222248A (zh) * | 2016-03-17 | 2017-09-29 | 深圳市中兴微电子技术有限公司 | 信道质量指示确定方法及装置、通信设备 |
CN108628772A (zh) * | 2017-03-24 | 2018-10-09 | 希捷科技有限公司 | 用于管理数据存储设备中的映射数据的装置和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100573476C (zh) * | 2005-09-25 | 2009-12-23 | 深圳市朗科科技股份有限公司 | 闪存介质数据管理方法 |
-
2019
- 2019-01-24 CN CN201910069975.2A patent/CN111475429B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103026346A (zh) * | 2010-07-27 | 2013-04-03 | 国际商业机器公司 | 包括固态存储器设备的存储系统中的逻辑到物理地址映射 |
CN103064641A (zh) * | 2013-02-05 | 2013-04-24 | 威盛电子股份有限公司 | 非易失性存储装置及其操作方法 |
CN105765907A (zh) * | 2013-11-22 | 2016-07-13 | 微软技术许可有限责任公司 | 用于提供实时或接近实时的纠正反馈的性能监测 |
US9552289B1 (en) * | 2014-11-25 | 2017-01-24 | Seagate Technology Llc | Bitwise addressing of entries in a forward lookup table |
CN104714894A (zh) * | 2015-03-18 | 2015-06-17 | 清华大学 | 一种分层的基于随机映射的相变内存磨损均衡方法及系统 |
CN104731713A (zh) * | 2015-03-18 | 2015-06-24 | 清华大学 | 基于随机映射的相变内存磨损均衡方法及系统 |
CN107222248A (zh) * | 2016-03-17 | 2017-09-29 | 深圳市中兴微电子技术有限公司 | 信道质量指示确定方法及装置、通信设备 |
CN106484618A (zh) * | 2016-10-10 | 2017-03-08 | 中国电力科学研究院 | 一种基于访存依赖对的并行重放方法和装置 |
CN108628772A (zh) * | 2017-03-24 | 2018-10-09 | 希捷科技有限公司 | 用于管理数据存储设备中的映射数据的装置和方法 |
Non-Patent Citations (1)
Title |
---|
64位高性能微处理器中存储管理单元的研究与实现;张冰淳;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20080415;I137-5 * |
Also Published As
Publication number | Publication date |
---|---|
CN111475429A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10303596B2 (en) | Read-write control method for memory, and corresponding memory and server | |
CN107066393B (zh) | 提高地址映射表中映射信息密度的方法 | |
JP3399520B2 (ja) | 圧縮メイン・メモリの仮想非圧縮キャッシュ | |
US8321624B2 (en) | Memory device and management method of memory device | |
EP1550952A2 (en) | Address mapping method and mapping information managing method for flash memory, and flash memory using the same | |
US8621134B2 (en) | Storage tiering with minimal use of DRAM memory for header overhead | |
US7065613B1 (en) | Method for reducing access to main memory using a stack cache | |
JP2015512604A (ja) | 暗号ハッシュ・データベース | |
US7464100B2 (en) | Reorganization-free mapping of objects in databases using a mapping chain | |
JP2017188094A5 (ja) | メモリモジュールの重複メモリ除去方法、及びそのためのdramメモリモジュール | |
CN112597072A (zh) | 一种Flash存储器的数据更新方法和装置 | |
US10754786B2 (en) | Memory access method using simplified mapping table requiring smaller memory space | |
JP2007220107A (ja) | 不揮発性メモリのマッピング情報管理装置及び方法 | |
US9852074B2 (en) | Cache-optimized hash table data structure | |
CN113835639B (zh) | 一种i/o请求处理方法、装置、设备及可读存储介质 | |
KR102321346B1 (ko) | 대용량 ssd 장치를 위한 데이터 저널링 방법 | |
CN111475429B (zh) | 存储器访问方法 | |
CN110309081B (zh) | 基于压缩存储和地址映射表项的ftl读写数据页的方法 | |
US10698834B2 (en) | Memory system | |
US20050102465A1 (en) | Managing a cache with pinned data | |
US10877698B2 (en) | Semiconductor device for managing cold addresses of nonvolatile memory device | |
CN113342706A (zh) | 一种基于非易失性内存的写优化可扩展哈希索引结构以及插入、刷新和删除方法 | |
KR100859989B1 (ko) | 플래시 메모리의 공간정보 관리장치 및 그 방법 | |
CN112699060A (zh) | 一种数据块的管理方法、系统及存储介质 | |
CN116010298B (zh) | Nand型闪存地址映射的方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |