CN101356509B - 用于在请求式页面调度系统中支持虚拟存储器管理的数据压缩方法 - Google Patents
用于在请求式页面调度系统中支持虚拟存储器管理的数据压缩方法 Download PDFInfo
- Publication number
- CN101356509B CN101356509B CN2006800504149A CN200680050414A CN101356509B CN 101356509 B CN101356509 B CN 101356509B CN 2006800504149 A CN2006800504149 A CN 2006800504149A CN 200680050414 A CN200680050414 A CN 200680050414A CN 101356509 B CN101356509 B CN 101356509B
- Authority
- CN
- China
- Prior art keywords
- data block
- data
- compression
- physical
- virtual
- 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.)
- Expired - Fee Related
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
-
- 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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- 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/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
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)
- Mobile Radio Communication Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一虚拟存储器管理单元(306)包括一冗余插入模块(307),所述冗余插入模块被用于将冗余插入到将被压缩的一编码数据流中,以便在压缩之后各逻辑数据块适合于来自一组有给定尺寸的、相等大小的物理数据块的不同物理数据块。例如,所述冗余可以由空操作(NOP)指令提供给将被压缩的编码数据流,所述空操作指令由多个有给定长度(L)的伪序列来表示,每个伪序列包含多个相等的二进制或十六进制的填充值。
Description
相关申请数据
本申请要求于2006年1月4日提交的美国临时申请序列号60/756,143的权益,其公开内容全文在此引入以作为参考。
技术领域
本发明总地涉及在根据虚拟存储器管理技术组织的请求式页面调度系统中进行数据压缩的领域。其特别涉及在计算设备上的存储器管理系统及相应的方法,所述系统和方法支持用于将由所述计算设备的数据处理单元访问的虚拟地址空间转换为物理地址空间的虚拟存储器管理和请求式页面调度。
背景技术
由于应用程序大小的日益增加,现代操作系统使用虚拟存储器管理的概念,通过以下方式来显著地扩展在下面也被称为“主存”或“主存储器”的计算设备的随机存取存储器(RAM)的可见尺寸,即:利用在例如硬盘驱动器或USB记忆棒的被称为“交换设备”的永久(非易失性)存储装置上的被称为“辅助存储器”或“二级存储器”的另一个存储器的存储区来备份RAM。此交换进程因此允许多任务系统在所述计算设备上运行许多时间分片的进程。例如,运行在所述计算设备上的一活动进程能够被准许访问可由所述计算设备的数据处理单元访问的全部虚拟地址空间。空闲进程能够被换出到所述二级存储器,并且当又轮到它们时保持准备好运行。能够由此数据处理单元访问的虚拟地址空间典型地被分成页面帧,并且一转换机制被应用来将由运行的进程发出的虚拟地址引用(reference)变换为包含所述进程所要求的指令或内容数据的物理页面。当操作系统缺乏物理页面时,近来还没有被使用的页面能够被写到上述交换设备中。新近可用的页面帧于是能被提供给活动的进程。当稍后一进程需要被高速缓存在交换设备上的页面帧时,发生页面失效并且不得不从所述交换设备中将数据取装回来。问题在于,由于页面失效数目的增加,用于其工作区大小不适应所述主存储器的应用的吞吐量显著地降级。盘存取等待时间通常大约为几十毫秒,其远长于存储器存取时间,后者通常大约为几十或几百纳秒。因此,最近的研究已提出压缩存储页面要优于将它们换出到盘。这隐藏了与盘存取有关联的长的等待时间,因为当页面失效发生时页面必须只是被解压缩。在下文中也被称为通用术语“存储器管理系统”的这样的压缩存储系统能够以多种方式来实现,包括诸如举例而言,修改操作系统核心的软件方案,以及诸如举例而言,压缩的高速缓冲存储器线的硬件实现。前面的方案要求访问核心源代码,因此也可能不容易跨不同的操作系统来转移(ported)。另一方面,硬件实现也可能会增加计算设备的成本。
如上所述,虚拟存储器管理技术能够被应用来扩展应用对计算设备的主存的视图,但其也可以用来实际执行直接来自集成到或连接到所述计算设备的存储器模块-例如硬盘驱动器或USB记忆棒-的应用程序的机器代码,其在其他情况下不允许直接执行物理上存储在所述存储器模块中的程序数据。常规地,利用被分成多个逻辑数据块的二级存储器,每个逻辑数据块包括单个物理数据块或一个以上的有相等大小的物理数据块,表示数据的最小可读单元,并且当需要时,从所述二级存储器中请求的数据被复制到所述主存储器。当二级存储器的存储区中的逻辑数据块被运行在计算设备上的应用的特定进程访问时,该逻辑数据块被复制到所述主存储器的指定存储区中。为了节省所述二级存储器的存储容量,要被存储在二级存储器中的数据(例如,要由访问所述主存储器和所述二级存储器的应用执行的软件程序的机器代码)能够被压缩,可以通过在将这些数据复制到主存储器时解压缩它们而使之对于访问所述二级存储器的所有应用都透明。然而,被压缩的数据的大小是未知的,这可能在复制所述数据时导致问题。能够通过使用一指针(也称为“索引”)来查找被压缩的数据,所述指针分别指示压缩的逻辑数据块在哪里开始和结束,但所利用的压缩过程经常(通常在超过全部情况的50%中)导致被压缩的逻辑数据块越过物理块的边界,这使得需要访问比所需的要多的压缩逻辑数据块以便能够解压缩和复制单个逻辑数据块。正如从现有技术所知的,应对上述识别的问题的途径是将这些压缩的逻辑数据块中的一些从二级存储器中高速缓存到主存储器,但是此途径的有效性是未知的。
大多数情况下,编码的数据(如,软件机器源代码)能够被压缩到其原始大小的50%到60%之间的一个量。如果要存储在二级存储器中的所有数据块能够被压缩到它们原始大小的一半,则将有可能以具有逻辑数据块的一半大小(或是那个大小的任意整数倍)的物理数据块的形式来存储逻辑数据块。这将使得索引搜索多余且编码数据的装入较快。然而,情况几乎不曾这样。
发明内容
鉴于上述内容,本发明提供一种用于压缩要存储在二级存储器中的逻辑数据块的更有效的压缩过程,以便避免在所述数据的逻辑地址空间中费时的索引搜索。
根据本发明的一个方面,本发明提供一种安装在计算设备上的请求式页面调度系统的虚拟存储器管理单元,其中所述请求式页面调度系统由根据虚拟存储器管理技术组织的操作系统来进行控制,其被用于通过将数据(例如,在最近的一特定时间段内尚未被使用的数据)从集成在所述计算设备内的存储器模块的可寻址存储区交换到用于永久地存储这些数据的存储装置,来将可由所述计算设备的数据处理单元访问的虚拟地址空间转换为物理地址空间。所述存储装置能够被实现为所述计算设备的集成存储器模块(例如,内部随机存取存储器)或者实现为不包含在所述计算设备内的外部交换设备(诸如举例而言,一硬盘驱动器或USB记忆棒)。根据一个实施例,所述虚拟存储器管理单元包含冗余插入模块,用于将冗余插入到将被压缩的编码数据流中,使得在压缩之后各逻辑数据块适合于(fit into)来自一组有给定尺寸的、相等大小的物理数据块的不同物理数据块。所述冗余可以通过易于压缩的任意种类的适当填充数据、填充操作和重复图案等来形成。例如,所述冗余可以由空操作(NOP)指令来给出。这些NOP指令能够由多个有给定长度L的伪序列(dummy sequence)来表示,借此每个伪序列包含多个相等的或重复的填充值。
数据流可以包含任意种类的数据,例如内容数据、媒体数据、程序数据、机器代码、任意种类的软件程序或软件功能、应用等等。
例如,所提到的伪序列的每一个可以由多个零值来组成。这些伪序列的数目能够被有利地选择,使得要被存储在所述存储装置中的来自编码数据流的每个逻辑数据块被压缩为其原始大小的几分之一(fraction),这导致在压缩之后各逻辑数据块适合于来自一组相等大小的物理数据块的不同物理数据块的事实,每个物理数据块具有的大小是所述逻辑数据块原始大小的几分之一。例如,上述的要被存储在存储装置中的来自编码数据流的每个逻辑数据块可以被压缩到其原始大小的一半。
根据本发明的另一方面,本发明提供一种用于支持计算设备上的虚拟存储器管理和请求式页面调度的数据压缩方法,其中所述计算设备运行根据虚拟存储器管理技术组织的操作系统,用于通过将数据从集成在所述计算设备内的存储器模块的可寻址存储区交换到用于永久地存储这些数据的存储装置,来将可由所述计算设备的数据处理单元访问的虚拟地址空间转换为物理地址空间。由此,此数据压缩方法的特征在于将冗余插入将被压缩的编码数据流(例如,一应用程序的机器代码的一部分)的步骤。已经被所述冗余扩展的编码数据流然后被提交给一数据压缩过程,在程序数据的情况下其可以在编译机器代码所需的时间期间被执行,使得在所述数据压缩过程之后各逻辑数据块适合于来自一组有给定尺寸的、相等大小的物理数据块的不同物理数据块,并且所获得的压缩版本的扩展数据流最终被存储在所述存储装置中。
根据此数据压缩方法,将被压缩的编码数据流能够被任意种类的填充数据、填充函数、重复图案等来填满,例如由NOP指令来填满,所述NOP指令由有特定长度L(例如,32位)的伪序列(例如,“0x00000000”)来表示,在下文中被称为“填充符(padding)”,其中每个伪序列包含给定数目的相等的填充值。这具有增强用于压缩编码数据流的数据压缩过程的性能的效果。例如,每个伪序列可以由特定数目的零值来组成(“填零”)。有了足够的填充符,则要被存储在存储装置中的来自编码数据流的每个逻辑数据块被压缩为其原始大小的几分之一,使得在压缩之后各逻辑数据块适合于来自一组相等大小的物理数据块的不同物理数据块,每个物理数据块具有的大小是所述逻辑数据块原始大小的几分之一。例如,如上所述的要被存储在存储装置中的来自编码数据流的每个逻辑数据块可以被压缩到其原始大小的一半。根据本发明的所建议的方法因此包含以下步骤:压缩将被存储的编码数据的每个逻辑数据块;如果所应用的压缩过程产生太大的压缩数据块,则将上面定义的冗余增加到所述编码数据流中;然后重新压缩原始的(未压缩的)编码数据流,直到每个压缩的数据块适合于有给定尺寸的物理数据块。
然而,仍可能有出现问题的情况,比如存储在所述二级存储器中的数据很难压缩,这通常适用于已经被压缩的数据,诸如举例而言,压缩的音频数据和加密的内容数据。因此,这些种类的数据不可以用在此描述的方式来进行处理,并且应该被存储在二级存储器的特定部分中(一般是在文件系统中)。另一个问题是如何将所述伪序列填充入将被压缩的编码数据、而不引起在计算设备上运行的应用的性状的改变,所述应用可以访问主存储器和二级存储器。如果编码数据流包含具有软件函数的软件代码或者由其组成,则冗余能够被插入在相邻的函数中间或者插入在相应的函数中或相应的函数内。术语“函数”意图包括任意种类的软件代码部分,例如子程序、函数调用等等。任意种类的冗余能够被用于在相邻的函数之间插入。为了在函数中或者函数内插入,必须选择冗余,使得当执行所述函数时其不改变软件的性状,所述冗余例如是空操作指令或无条件转移指令。
与将NOP指令插入原始编码数据有关的改变能够在这些数据的目标代码中进行。在原始编码数据上执行这些改变可能会导致不可忽略的可测量延迟,但实际上就一切情况而论,这都没有任何关系。如果不能用这种方式适配编码数据,则有可能填充来自没有应用任何虚拟存储器管理技术的二级存储器的驻留存储区的数据或者来自使用另一虚拟存储器管理技术的存储区的数据。
本发明也致力于可直接装入计算设备的内部存储器中的计算机程序产品,其中所述计算机程序产品包含当运行在所述计算设备上时执行如上所述的数据压缩方法的机器代码。
尽管描述了上述主题,但应该注意到根据本发明的所述虚拟存储器管理单元及数据压缩方法不限于如上所述的在计算设备中应用,而是能够有利地应用于运行根据虚拟存储器管理技术组织的操作系统的任何电子装置(例如便携式无线电通信设备,诸如移动电话、寻呼机、电子记事本、智能电话等)中,所述虚拟存储器管理技术通过将数据从集成在所述电子装置中的至少一个存储器模块的至少一个可寻址存储区交换到被用于永久地存储这些数据的存储装置(例如,RAM),来将可由此电子装置的集成数据处理单元访问的虚拟地址空间转换为物理地址空间。
应该强调的是,术语“包含/包括”当用于本说明书时被应用来规定所叙述的特征、整体、步骤或组件的存在,但不排除一个或更多个其它的特征、整体、步骤、组件或其组合的存在或者添加。
附图说明
根据以下的描述、附加的权利要求和附图,本发明的特征、方面和优点将变得明显。
图1a显示一图表,所述图表举例说明将虚拟地址转换为物理地址的处理过程,
图1b显示借助页面目录、页面映射和页面表的、从虚拟地址到物理地址的转换,
图1c显示通过使用转换后备缓冲器(TLB)从虚拟地址到物理地址的转换,
图2显示用于执行如图1a-c所示的虚拟地址转换的处理过程的更详细的存储器管理结构,
图3显示存储器管理系统,
图4a是一流程图,用于图解说明在对存储于一外部交换设备上的一页面帧的访问中出现页面失效的情况下典型的页面调入操作,
图4b是一流程图,用于图解说明一典型的存储器压缩算法,
图5显示一框图,所述框图图解说明根据本发明的存储器管理系统的设立,
图6a显示一流程图,所述流程图图解说明根据本发明的、用于在计算设备上支持虚拟存储器管理和请求式页面调度的数据压缩方法,以及
图6b显示一更详细的流程图,用于图解说明由图6a中所示的流程图所图解说明的数据压缩方法中的步骤S603。
具体实施方式
在下文中,将相对于特别的实施例和相关于附图来更详细地说明本发明。
图1a中显示了一图表,所述图表举例说明了将由运行在计算设备上的应用所使用的虚拟地址102转换为可由所述计算设备访问的外部交换设备上的物理地址空间的物理地址106的处理过程,所述虚拟地址包括页面数据和页面偏移量,所述物理地址包括帧编号后随以帧偏移量。所应用的转换算法104典型地是基于由所述计算设备的存储器管理系统所提供的“页面表”的使用。即使所述转换算法104在处理器之间可能稍微变化并且有时可以以软件来实现,但现代的处理器全部都使用一般来说相同的方法来借助页面表将虚拟页面编号转换为物理帧编号,所述页面表通过将选定数目的虚拟页面编号与物理帧编号关联起来的数组实现。因为大多数进程的虚拟地址空间都既大又稀,所以页面表项目仅被分配给这样的虚拟地址空间的实际被使用的那些部分。为了确定相应于一给定虚拟地址的物理地址,必须定位一适当的页面表和该页面表中的正确项目。
对于使用三级页面表的系统,一虚拟地址102被细分成四个字段:目录偏移量字段,其规定在一预处理页面目录104a中的项目,其中所述项目包含页面映射表104b的地址;映射偏移量字段,其规定在所述规定的页面映射表104b中的偏移量,所述映射偏移量给出页面表104c的地址;表偏移量字段,其包含用于通过返回物理页面帧的编号来规定一选择的页面表104c的索引;以及最后,页面偏移量字段,用于规定一物理帧中的页面偏移量,所述物理帧包含由所述虚拟地址所指的数据。这个地址解析过程被描绘在图1b中。在这一点上,应该注意到,如果应用存储器段,则通常在执行涉及所述页面表的任何操作之前发生段转换。
由于必须访问多个存储器位置以解析每个虚拟存储器地址的事实,利用页面表的虚拟地址转换是一种相对昂贵的操作。为了加速这些映射,一种被称为“转换后备缓冲器”(TLB)的专用高速关联存储器存储被使用。TLB高速缓存最近使用的虚拟页面编号到物理页面帧的映射。每次虚拟存储器访问时,TLB中的所有项目均被检查,以查看是否它们中的一些包含正确的虚拟页面编号。在已经发现用于一虚拟页面编号的项目的情况下,已经发生一TLB命中(hit),并且立即访问相应的物理页面帧。否则,这意味着在TLB未中(miss)的情况下,以前面论述的方式来查阅适当的页面表。然后通过替换一映射,将所发现的映射添加到所述TLB。图1c显示通过使用TLB 104d来从虚拟地址到物理地址的转换,并且举例说明TLB命中发生了什么。
因为局域性(locality)的原理,TLB转换实际上工作得很好。然而系统设计者已经注意到,代码和数据展现出不同的局域性模式。为了防止在这些模式之间的干扰,用于高速缓存代码和数据的高速缓冲存储器经常被分开;因为相似的理由,大多数现代的处理器访问分离的代码和数据TLB。由此,CPU高速缓冲区将所引用的存储器标记为代码或数据,这取决于其是否被发送给一指令译码器。每当一指令被从存储器中取装时,都经由代码TLB将指令指针转换为物理地址。当数据被取装或存储时,中央处理单元(CPU)使用分离的数据TLB用于转换处理过程。为代码和数据使用不同的TLB单元便允许处理器维持对最近使用的存储器的更精确的表示。此外,使用分离的TLB防止对代码(数据)的频繁随机访问使TLB过载。因为大多数的代码和数据引用展现出高度的局域性,所以小的、但快速的存储装置(例如,芯片内的高速缓冲存储器)和一较大、但慢得多的存储装置(诸如举例而言,一DRAM存储器)的组合能够接近一大的且快速的存储装置的性能。
由于存储器管理单元将虚拟地址空间呈递给运行的应用,所以应用不必知道其有效使用的存储器的物理部分。因此,即使一程序的虚拟地址空间是连续的,其使用的存储器的物理区域也可能不连续。这为操作系统呈现了很大的机会。它不但允许在系统上运行多个应用(每个都具有映射到不同物理页面的它自己的独特虚拟地址空间),而且也允许计算设备的操作系统只在物理存储器中保持在当前时间实际需要的每个应用的那些部分。因为不是虚拟存储器的所有页面都可以映射到一个物理页面,所以必须有方式让所述计算设备的中央处理单元(CPU)通知操作系统什么时候虚拟地址没有物理映射。CPU通过使用页面失效中断来做到这一点。为了这个目的,CPU将已经导致页面失效的虚拟地址存储在一内部寄存器中,并且接着借助一中断处理程序来用信号通知操作系统。操作系统于是更新从虚拟到物理地址的映射,使得被请求的虚拟地址能够被映射到特定的物理地址。这意味着将应用程序的一段交换到盘或任何其它存储装置上的物理存储器中。然后,操作系统通过从所述中断返回来用信号通知CPU去重试该中断的指令。如果操作系统确定虚拟地址无效,例如,如果虚拟地址指的是还未被分配的存储器,则操作系统也可以选择中止应用的执行。
图2显示用于执行如图1a-c所示的虚拟地址转换的上述处理过程的更详细的存储器管理结构。这个存储器管理结构利用32位虚拟地址202,所述虚拟地址202被细分为三个字段:a)由三个最高有效位31到29组成的段寄存器编号;b)由位28到12组成的页面编号;以及c)由位11到0组成的页面偏移量。通常,使用一个分段过程,其有助于减少页面描述符205d中的信息冗余。段编号间接地由段寄存器编号来给出,所述段寄存器编号被用于从一组八个段寄存器203a中指定一个寄存器。这八个段寄存器由操作系统在初始化过程期间以及每次任务切换时来装入。如果一个任务需要超过八个段引用,则它能够将一个新的段的编号装入到段寄存器203a中或使用一个特定的前缀指令。根据图2中所示的地址解析机制,来自段描述符203b的基地址被添加到虚拟页面地址202,以产生线性地址204。在那之后,线性页面地址204通过两级页面表方案被转换为物理页面地址206,所述两级页面表方案包括页面目录表205c和页面表205c′,其中所述页面表205c′可以包含用于不同页面大小(4千字节、64千字节或1兆字节)的页面描述符205d,以便匹配相应的应用所需的不同种类的存储器。对于64千字节和1兆字节的页面,线性页面地址的剩余位被用作地址偏移量,使得取决于页面大小,总的偏移量字段的范围可以从12到20位。尽管转换虚拟地址需要两次存储器访问,但为了维持可接受的性能,应用了常规的完全关联的64个项目的TLB(未示出)。
图3显示一框图,所述框图举例说明了根据现有技术的典型存储器管理系统的设立,所述存储器管理系统包含以具有集成TLB 306a的可装入设备驱动器模块306的形式来实现的存储器管理单元(MMU)。这个存储器管理系统提供对数据的压缩的存储器中高速缓存的支持。当其在交换设备上使用时其主要的好处为人所知,但其还可以在诸如图3所示的计算设备301的传统文件系统装置上使用。上述存储器管理系统的系统结构包括请求式页面调度系统305以及外部交换设备308,所述请求式页面调度系统包含MMU 306、用于高速缓存压缩的页面的驱动程序存储器304a和未被压缩的存储器304b。因此一旦设备驱动程序306被装入,其对于系统表现为一常规的块设备(block device)。其被格式化为交换分区并作为交换设备被添加到存储器管理系统。当所述计算设备301的操作系统试图换出一页面时,其发送一写请求到交换设备308。MMU 306解译该写请求、压缩所述页面并接着将所述压缩的页面复制到所述交换设备308的内部存储器中先前保留的存储区。当一进程试图在以后的某一时间通过发送一读请求到所述交换设备308来访问这个页面时,所述设备驱动程序306解译这个读请求并接着解压缩所请求的页面。因为页面的解压缩比从盘中读出数据快得多,所以用于一应用的总的执行时间被显著减少。如从图3中所能够获得的,能够由所述计算设备301的CPU 302a访问的虚拟(预MMU)高速缓冲存储器302b与MMU 306并行地工作,并且假如所述页面描述符205d被存储在TLB 306a中而相应的项目被存储在所述虚拟高速缓冲存储器302b中,则虚拟高速缓冲存储器302b和MMU 306每个均同时输出一特定的物理地址,使得高速缓冲区标记能够与图2中所示的页面描述符205d的物理地址进行比较。
为了更好地了解典型的存储器管理系统的操作,简要地回顾这样的系统的标准页面调度操作是有帮助的。当被写到盘的页面被访问时(S405),其必须明确地从所述交换设备中取装回来并被放入一空闲的物理页面帧中。如图4a中所示的流程图所图解说明的,这导致一页面失效(S406)并导致一页面调入操作(S407)。如上所述,盘访问比直接存储器存取慢几个数量级。操作系统能够设法通过切换到另一可运行的进程或通过主动地从盘中预取装页面来隐藏这种盘访问的等待时间。然而在许多计算环境中,没有其它能够被运行以隐藏盘访问等待时间的进程。另一方面,只有当应用的页面引用模式能够被精确地预测时,从盘中预取装页面才能完美地工作。对于一般的情况来说,就计算资源而言这是不可能的或者是昂贵得惊人的。因此交换守护程序(例如,代理)经常试图通过群集(clustering)页面调入来利用大多数应用程序所展示出的引用信息的局域性。然而仍存在经由存储器压缩的性能改善的相当可观的空间。存储器压缩所基于的思想是通过将换出的页面帧以压缩的格式、但仍在物理存储器中存储,而隐藏所述盘访问等待时间。在随后页面失效时,压缩的页面能够迅速地被解压缩并接着被提供给应用程序。上述物理存储器在逻辑上被分成两部分:未压缩的存储器和压缩的存储器,其中所述未压缩的存储器高速缓存来自于所述压缩的存储器的经常使用的页面。这个压缩的存储器进而又高速缓存来自交换设备的页面并由核心设备驱动程序来进行管理。
在图4b中显示经常应用的存储器压缩算法。在已经根据装入时间参数分配某核心存储器之后(S408),所述存储器被切成例如256字节的固定尺寸的存储桶。这些存储桶然后被一起链成一链接的列表。也是在装入时间处规定的交换文件的大小被用来创建一页面表,每一交换页面一个项目。这个页面表项目包括指向持有一压缩页面的存储桶链的开始的指针以及这个压缩页面的大小。压缩页面所需要的存储器的量取决于这个页面的内容以及所应用的存储器压缩算法。在某些情况下,由于来自压缩算法的一些恒定的数据额外开销,压缩数据可能实际上更大。在这样的情况下,应用伪(dummy)压缩算法,其仅仅制作所述页面的拷贝。用于页面的存储器压缩算法被编码在一页面表项目中。如果对大量页面完成的压缩(S415)很差,则可能没有足够的存储器被保留来存储它们。在那时,MMU不应分配更多的存储器,因为系统已经经受严重的存储器压力,所述压力可能导致不稳定。因此,该算法开始将压缩页面写到盘(S417),因此使用包含盘访问历史的列表来确定哪些页面是不太经常使用的页面。在所述页面表中的一特定项目指示一页面是否在盘上,其中页面可以以未压缩的形式被存储在盘上。如果对压缩存储器中的页面的访问未中,则可能从盘提供所述页面(S412b)而不必解压缩它,当所述页面被存储于压缩的存储器中时将会不得不进行解压缩(S412a)。
有了对虚拟存储器的硬件支持,便能够在TLB内查找虚拟地址。如果对于存储在所述TLB中的特定页面编号存在匹配(TLB命中),则检索物理帧编号并能够继续存储器访问。然而如果没有匹配,其被称为TLB未中(S409),则第二调用端口(port-of-call)是页面表。硬件结构能够为待安装的页面失效处理程序提供机会,使得能够处理TLB未中。此页面失效处理程序能够在所述页面表中查找地址映射,并查看在这个页面表中是否存在映射。如果存在映射,则将其写回给所述TLB并重新开始失效的指令,结果是将再次访问TLB,将找到所述映射,并且所述转换最终将成功。然而,当对于虚拟地址没有可获得的转换或者当一请求页面因为物理存储器已满而不驻留在所述物理存储器中时,这样的页面表查找可能不成功,对于虚拟地址没有可获得的转换意味着对所述虚拟地址的存储器访问或者不正确或者无效。在第一种情况下,所述程序可以被停止并且可以触发一错误信号。在第二种情况下,所述页面正常地被存储在其它地方,诸如举例而言,在盘上。为了处理这种情况,所述页面必须从盘中取出(S412b)并接着放入一物理存储器(S413)。当该物理存储器未满(这意味着询问S416能够被回答“是”)时,所述页面被写入所述物理存储器并且相应的页面表项目被修改,以便指出其在所述物理存储器中是可获得的。在那之后,映射被写入TLB并且失效的指令被重新开始。此外,该页面表必须被更新,以便将由所述页面占用的存储桶标记为忙(S418)。另一方面,当物理存储器已满且没有空闲帧可用时-这意味着询问S416必须被回答“否”,存储在所述物理存储器中的页面必须与需要被写入到所述物理存储器中的页面一起被交换。此外,页面表必须被更新,以便标明以前存储在所述物理存储器中的页面不再被存储在那里。在那之后,该映射被写入TLB并且失效的指令被重新开始。
图5中显示一框图,所述框图举例说明如上所述的根据本发明的存储器管理系统的建议的设立。此设立与如参考图3所描述的根据现有技术的传统的存储器管理系统的不同之处在于集成在所述计算设备301内的一冗余插入模块307(RIM),所述RIM 307连接到计算设备的集成MMU 306,以便可以访问由所述MMU 306提供的上述TLB 306a。根据本发明,所述RIM 307被应用来将由多个有给定长度L的伪序列表示的空操作(NOP)指令插入到将通过一算法压缩的编码数据流中,所述算法由所述MMU 306的一集成压缩模块(未示出)来实现,其中这些伪序列的每一个包括多个相等的填充值。
图6a中描述的一流程图举例说明了根据本发明的上述数据压缩方法。每次已经接收到压缩一编码数据流的请求时(S601),由所述RIM 307来执行将冗余(诸如举例而言,由多个有给定长度L的伪序列表示的NOP指令)插入(S602)到将被压缩的编码数据流中的过程,因此产生一扩展的数据流。由此,每一个所述伪序列包括多个相等的二进制或十六进制填充值。在那之后,该扩展数据流被提交给数据压缩过程(S603),使得在压缩之后所述逻辑数据块的每个适合于来自一组有给定尺寸的、相等大小的物理数据块的不同物理数据块,并且所述压缩版本的扩展数据流被存储(S604)在所述存储装置308中。
图6b显示一更详细的流程图,所述流程图图解说明由图6a中所示的流程图所图解说明的上述数据压缩方法中的步骤S603。在将被存储在上述存储装置308中的编码数据流的每个逻辑数据块已经被压缩以后(S603a),所述过程检查(S603b)这些压缩数据块中的每个是否适合于有给定尺寸的物理数据块。如果情况是这样,则如上所述继续所述过程到步骤S604。否则,如参考图6a在前一段落中所述的另一个伪序列被添加(S603c)到编码数据流,并且接着对由所述另一个伪序列扩展的编码数据流再次压缩(S603d),直到每个压缩数据块适合于有所述给定尺寸的物理数据块。
Claims (10)
1.一种安装在计算设备上的请求式页面调度系统的虚拟存储器管理单元,所述请求式页面调度系统由根据虚拟存储器管理技术而组织的操作系统来进行控制,用于通过将数据从集成在所述计算设备内的存储器模块的可寻址存储区交换到用于永久地存储这些数据的存储装置,来将可由所述计算设备的数据处理单元访问的虚拟地址空间转换为物理地址空间,所述虚拟存储器管理单元包含冗余插入模块,用于将冗余插入将被压缩的编码数据流中,使得在压缩之后各逻辑数据块适合于来自一组有给定尺寸的、有相等大小的物理数据块的不同物理数据块,
其中所述冗余由空操作指令来给出,所述空操作指令由多个有给定长度的伪序列来表示,每个伪序列包含多个相等的填充值。
2.根据权利要求1所述的虚拟存储器管理单元,其中所述冗余包含易于压缩的数据或函数。
3.根据权利要求1所述的虚拟存储器管理单元,其中选择所述冗余,使得要被存储在所述存储装置中的来自编码数据流的每个逻辑数据块被压缩为其原始大小的几分之一,使得在压缩之后各逻辑数据块适合于来自一组相等大小的物理数据块中的不同物理数据块,每个物理数据块具有的大小是所述逻辑数据块原始大小的所述几分之一。
4.一种安装在计算设备上的请求式页面调度系统的虚拟存储器管理单元,所述请求式页面调度系统由根据虚拟存储器管理技术而组织的操作系统来进行控制,用于通过将数据从集成在所述计算设备内的存储器模块的可寻址存储区交换到用于永久地存储这些数据的存储装置,来将可由所述计算设备的数据处理单元访问的虚拟地址空间转换为物理地址空间,所述虚拟存储器管理单元包含冗余插入模块,用于将冗余插入将被压缩的编码数据流中,使得在压缩之后各逻辑数据块适合于来自一组有给定尺寸的、有相等大小的物理数据块的不同物理数据块,其中选择所述冗余,使得要被存储在所述存储装置中的来自编码数据流的每个逻辑数据块被压缩为其原始大小的几分之一,使得在压缩之后各逻辑数据块适合于来自一组相等大小的物理数据块中的不同物理数据块,每个物理数据块具有的大小是所述逻辑数据块原始大小的所述几分之一。
5.一种用于在计算设备上支持虚拟存储器管理和请求式页面调度的数据压缩方法,其中所述计算设备运行根据虚拟存储器管理技术而组织的操作系统,用于通过将数据从集成在所述计算设备内的存储器模块的可寻址存储区交换到用于永久地存储这些数据的存储装置,来将可由所述计算设备的数据处理单元访问的虚拟地址空间转换为物理地址空间,所述数据压缩方法包含:
将冗余插入将被压缩的编码数据流,从而产生扩展数据流;
将所述扩展数据流提交给数据压缩过程,使得在压缩之后各逻辑数据块适合于来自一组有给定尺寸的、有相等大小的物理数据块的不同物理数据块;以及
将所获得的压缩版本的扩展数据流存储在所述存储装置中,
其中所述冗余由空操作指令来给出,所述空操作指令由多个有给定长度的伪序列来表示,每个伪序列包含多个相等的填充值。
6.根据权利要求5所述的数据压缩方法,进一步包含:
压缩将被存储在所述存储装置中的编码数据流的每个逻辑数据块,
如果所应用的压缩过程产生一系列压缩数据块,其中每个压缩数据块均大于为将存储在所述存储装置中的物理数据块所规定的给定大小,则将冗余添加到所述编码数据流;以及
重新压缩所述编码数据流,直到每个压缩数据块适合于有该给定大小的物理数据块。
7.根据权利要求5所述的数据压缩方法,其中所述冗余包含易于压缩的数据或函数。
8.根据权利要求5所述的数据压缩方法,其中所述伪序列被插入在由运行在所述计算设备上的应用执行的软件程序的连续函数调用之间,所述函数调用引起对所述应用的性状的任何改变,或者所述伪序列被插入在所述应用的软件程序的子程序内,这是在所述软件程序的源代码包含无条件转移以绕过所述子程序的情况下。
9.根据权利要求5所述的数据压缩方法,其中选择所述伪序列的数目,使得要被存储在所述存储装置中的来自编码数据流的每个逻辑数据块被压缩为其原始大小的几分之一,使得在压缩之后各逻辑数据块适合于来自一组相等大小的物理数据块的不同物理数据块,每个物理数据块具有的大小是所述逻辑数据块原始大小的所述几分之一。
10.一种用于在计算设备上支持虚拟存储器管理和请求式页面调度的数据压缩方法,其中所述计算设备运行根据虚拟存储器管理技术而组织的操作系统,用于通过将数据从集成在所述计算设备内的存储器模块的可寻址存储区交换到用于永久地存储这些数据的存储装置,来将可由所述计算设备的数据处理单元访问的虚拟地址空间转换为物理地址空间,所述数据压缩方法包含:
将冗余插入将被压缩的编码数据流,从而产生扩展数据流;
将所述扩展数据流提交给数据压缩过程,使得在压缩之后各逻辑数据块适合于来自一组有给定尺寸的、有相等大小的物理数据块的不同物理数据块;以及
将所获得的压缩版本的扩展数据流存储在所述存储装置中,
其中选择所述冗余,使得要被存储在所述存储装置中的来自编码数据流的每个逻辑数据块被压缩为其原始大小的几分之一,使得在压缩之后各逻辑数据块适合于来自一组相等大小的物理数据块的不同物理数据块,每个物理数据块具有的大小是所述逻辑数据块原始大小的所述几分之一。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75614306P | 2006-01-04 | 2006-01-04 | |
US60/756,143 | 2006-01-04 | ||
US11/355,221 US7512767B2 (en) | 2006-01-04 | 2006-02-15 | Data compression method for supporting virtual memory management in a demand paging system |
US11/355,221 | 2006-02-15 | ||
PCT/EP2006/006517 WO2007076903A1 (en) | 2006-01-04 | 2006-07-04 | Data compression method for supporting virtual memory management in a demand paging system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101356509A CN101356509A (zh) | 2009-01-28 |
CN101356509B true CN101356509B (zh) | 2012-07-04 |
Family
ID=37027039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800504149A Expired - Fee Related CN101356509B (zh) | 2006-01-04 | 2006-07-04 | 用于在请求式页面调度系统中支持虚拟存储器管理的数据压缩方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7512767B2 (zh) |
EP (1) | EP1969475B1 (zh) |
CN (1) | CN101356509B (zh) |
AT (1) | ATE465450T1 (zh) |
DE (1) | DE602006013881D1 (zh) |
WO (1) | WO2007076903A1 (zh) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7162609B2 (en) * | 2003-12-03 | 2007-01-09 | Marvell International Ltd. | Translation lookaside buffer prediction mechanism |
US7616218B1 (en) | 2005-12-05 | 2009-11-10 | Nvidia Corporation | Apparatus, system, and method for clipping graphics primitives |
US7610541B2 (en) * | 2006-03-08 | 2009-10-27 | International Business Machines Corporation | Computer compressed memory system and method for storing and retrieving data in a processing system |
US9176975B2 (en) * | 2006-05-31 | 2015-11-03 | International Business Machines Corporation | Method and system for transformation of logical data objects for storage |
US8594441B1 (en) | 2006-09-12 | 2013-11-26 | Nvidia Corporation | Compressing image-based data using luminance |
US8543792B1 (en) | 2006-09-19 | 2013-09-24 | Nvidia Corporation | Memory access techniques including coalesing page table entries |
US8347064B1 (en) | 2006-09-19 | 2013-01-01 | Nvidia Corporation | Memory access techniques in an aperture mapped memory space |
US8352709B1 (en) | 2006-09-19 | 2013-01-08 | Nvidia Corporation | Direct memory access techniques that include caching segmentation data |
US8601223B1 (en) | 2006-09-19 | 2013-12-03 | Nvidia Corporation | Techniques for servicing fetch requests utilizing coalesing page table entries |
US8700883B1 (en) | 2006-10-24 | 2014-04-15 | Nvidia Corporation | Memory access techniques providing for override of a page table |
US8707011B1 (en) | 2006-10-24 | 2014-04-22 | Nvidia Corporation | Memory access techniques utilizing a set-associative translation lookaside buffer |
US8504794B1 (en) | 2006-11-01 | 2013-08-06 | Nvidia Corporation | Override system and method for memory access management |
US8533425B1 (en) | 2006-11-01 | 2013-09-10 | Nvidia Corporation | Age based miss replay system and method |
US8347065B1 (en) | 2006-11-01 | 2013-01-01 | Glasco David B | System and method for concurrently managing memory access requests |
US8706975B1 (en) | 2006-11-01 | 2014-04-22 | Nvidia Corporation | Memory access management block bind system and method |
US8607008B1 (en) | 2006-11-01 | 2013-12-10 | Nvidia Corporation | System and method for independent invalidation on a per engine basis |
US8700865B1 (en) * | 2006-11-02 | 2014-04-15 | Nvidia Corporation | Compressed data access system and method |
JP5032172B2 (ja) * | 2007-03-28 | 2012-09-26 | 株式会社東芝 | 統合メモリ管理装置及び方法並びにデータ処理システム |
US8135900B2 (en) * | 2007-03-28 | 2012-03-13 | Kabushiki Kaisha Toshiba | Integrated memory management and memory management method |
JP2008269363A (ja) * | 2007-04-20 | 2008-11-06 | Hitachi Ltd | 記憶制御装置および記憶制御方法 |
WO2008154411A2 (en) * | 2007-06-06 | 2008-12-18 | Hewlett-Packard Development Company, L.P. | Binary-level update of compressed read-only file systems |
US8724895B2 (en) | 2007-07-23 | 2014-05-13 | Nvidia Corporation | Techniques for reducing color artifacts in digital images |
GB2460636A (en) * | 2008-05-30 | 2009-12-09 | Symbian Software Ltd | Storing operating-system components in paged or unpaged parts of memory |
US8373718B2 (en) | 2008-12-10 | 2013-02-12 | Nvidia Corporation | Method and system for color enhancement with color volume adjustment and variable shift along luminance axis |
US20100274772A1 (en) * | 2009-04-23 | 2010-10-28 | Allen Samuels | Compressed data objects referenced via address references and compression references |
US20120047498A1 (en) * | 2010-08-18 | 2012-02-23 | Giovanni Motta | Updating machine-readable instructions in an electronic device |
CN102571845A (zh) * | 2010-12-20 | 2012-07-11 | 南京中兴新软件有限责任公司 | 一种分布式存储系统的数据存储方法及装置 |
CN108108188B (zh) * | 2011-03-25 | 2022-06-28 | 英特尔公司 | 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段 |
US9329996B2 (en) * | 2011-04-27 | 2016-05-03 | Veris Industries, Llc | Branch circuit monitor with paging register |
JP2012257041A (ja) * | 2011-06-08 | 2012-12-27 | Sony Corp | 通信装置、通信システム、通信方法及びプログラム |
US9378560B2 (en) * | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
WO2012113206A1 (zh) * | 2011-08-15 | 2012-08-30 | 展讯通信(上海)有限公司 | 移动终端中请求页面调度方法、控制器以及移动终端 |
US9183015B2 (en) * | 2011-12-19 | 2015-11-10 | Vmware, Inc. | Hibernate mechanism for virtualized java virtual machines |
US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
US9880846B2 (en) | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
US9639464B2 (en) | 2012-09-27 | 2017-05-02 | Mellanox Technologies, Ltd. | Application-assisted handling of page faults in I/O operations |
US8745276B2 (en) * | 2012-09-27 | 2014-06-03 | Mellanox Technologies Ltd. | Use of free pages in handling of page faults |
US8914458B2 (en) * | 2012-09-27 | 2014-12-16 | Mellanox Technologies Ltd. | Look-ahead handling of page faults in I/O operations |
US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
US10108424B2 (en) | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
EP2972836B1 (en) | 2013-03-15 | 2022-11-09 | Intel Corporation | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
US9547600B2 (en) * | 2013-07-30 | 2017-01-17 | Vmware, Inc. | Method and system for restoring consumed memory after memory consolidation |
US9448827B1 (en) * | 2013-12-13 | 2016-09-20 | Amazon Technologies, Inc. | Stub domain for request servicing |
WO2015142341A1 (en) * | 2014-03-20 | 2015-09-24 | Hewleet-Packard Development Company, L. P. | Dynamic memory expansion by data compression |
US10120832B2 (en) | 2014-05-27 | 2018-11-06 | Mellanox Technologies, Ltd. | Direct access to local memory in a PCI-E device |
US10031857B2 (en) | 2014-05-27 | 2018-07-24 | Mellanox Technologies, Ltd. | Address translation services for direct accessing of local memory over a network fabric |
CN105975301B (zh) | 2016-04-29 | 2018-09-04 | 北京小米移动软件有限公司 | 内存清理方法及装置、电子设备 |
KR20180001681A (ko) * | 2016-06-27 | 2018-01-05 | 에스케이하이닉스 주식회사 | 메모리 시스템, 이의 어드레스 맵핑 방법 및 억세스 방법 |
CN107870867B (zh) * | 2016-09-28 | 2021-12-14 | 北京忆芯科技有限公司 | 32位cpu访问大于4gb内存空间的方法与装置 |
SE544272C2 (en) * | 2018-11-14 | 2022-03-22 | Zeropoint Tech Ab | Accessing compressed computer memory |
CN112486860A (zh) * | 2019-09-11 | 2021-03-12 | 伊姆西Ip控股有限责任公司 | 管理存储系统的地址映射的方法、设备和计算机程序产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0927934A1 (en) * | 1997-06-30 | 1999-07-07 | Matsushita Electric Industrial Co., Ltd. | File managing device, file managing method, and recording medium stored with file managing program |
US6510499B1 (en) * | 2000-06-22 | 2003-01-21 | International Business Machines Corporation | Method, apparatus, and article of manufacture for providing access to data stored in compressed files |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6266753B1 (en) * | 1997-07-10 | 2001-07-24 | Cirrus Logic, Inc. | Memory manager for multi-media apparatus and method therefor |
US20050132161A1 (en) * | 2003-12-15 | 2005-06-16 | Nokia Corporation | Creation of virtual memory space in a memory |
JP2005217842A (ja) * | 2004-01-30 | 2005-08-11 | Fujitsu Ltd | データ圧縮方法、データ復元方法及びそのプログラム |
US7243191B2 (en) * | 2004-08-31 | 2007-07-10 | Intel Corporation | Compressing data in a cache memory |
-
2006
- 2006-02-15 US US11/355,221 patent/US7512767B2/en not_active Expired - Fee Related
- 2006-07-04 CN CN2006800504149A patent/CN101356509B/zh not_active Expired - Fee Related
- 2006-07-04 WO PCT/EP2006/006517 patent/WO2007076903A1/en active Application Filing
- 2006-07-04 EP EP06754667A patent/EP1969475B1/en not_active Not-in-force
- 2006-07-04 DE DE602006013881T patent/DE602006013881D1/de active Active
- 2006-07-04 AT AT06754667T patent/ATE465450T1/de not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0927934A1 (en) * | 1997-06-30 | 1999-07-07 | Matsushita Electric Industrial Co., Ltd. | File managing device, file managing method, and recording medium stored with file managing program |
US6510499B1 (en) * | 2000-06-22 | 2003-01-21 | International Business Machines Corporation | Method, apparatus, and article of manufacture for providing access to data stored in compressed files |
Also Published As
Publication number | Publication date |
---|---|
WO2007076903A1 (en) | 2007-07-12 |
ATE465450T1 (de) | 2010-05-15 |
US7512767B2 (en) | 2009-03-31 |
US20070157001A1 (en) | 2007-07-05 |
EP1969475B1 (en) | 2010-04-21 |
CN101356509A (zh) | 2009-01-28 |
EP1969475A1 (en) | 2008-09-17 |
DE602006013881D1 (de) | 2010-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101356509B (zh) | 用于在请求式页面调度系统中支持虚拟存储器管理的数据压缩方法 | |
KR101310412B1 (ko) | 프레임 관리를 이용한 동적 주소 변환 방법 | |
US8799621B2 (en) | Translation table control | |
KR101175615B1 (ko) | 인출 보호를 가진 동적 어드레스 변환 | |
JP5602638B2 (ja) | フォーマット制御を有する動的アドレス変換 | |
KR101944876B1 (ko) | 파일 액세스 방법 및 장치 및 스토리지 디바이스 | |
EP3702924B1 (en) | Technology for managing memory tags | |
US7398371B2 (en) | Shared translation look-aside buffer and method | |
US11347650B2 (en) | Word type/boundary propagation with memory performance applications | |
KR101787851B1 (ko) | 다중 페이지 크기 변환 색인 버퍼(tlb)용 장치 및 방법 | |
US11334499B2 (en) | Method for locating metadata | |
US20110238946A1 (en) | Data Reorganization through Hardware-Supported Intermediate Addresses | |
CN102792296B (zh) | 移动终端中请求页面调度方法、控制器以及移动终端 | |
US20050138264A1 (en) | Cache memory | |
US20090024798A1 (en) | Storing Data | |
Mejia Alvarez et al. | Memory Management | |
Kwon et al. | Replacement and swapping strategy to improve read performance of portable consumer devices using compressed file systems | |
CN111527480A (zh) | 数据处理装置中的地址转换 | |
MX2008005091A (en) | Caching memory attribute indicators with cached memory data | |
JPH0679294B2 (ja) | アドレス変換方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120704 Termination date: 20150704 |
|
EXPY | Termination of patent right or utility model |