当前位置: 首页 > 专利查询>浙江大学专利>正文

通用操作系统对CPU二级缓存访问的控制方法技术方案

技术编号:3860164 阅读:311 留言:0更新日期:2012-04-11 18:40
一种通用操作系统对CPU二级缓存访问的控制方法,其特征在于,包括以下步骤: 1)在操作系统中以内存页着色的软件实现方法划分物理索引的缓存: 在物理索引的缓存中,数据在物理内存中的地址决定了数据所映射到的缓存组编号和组内偏移,用来 将数据映射并索引到缓存的哈希函数必须利用物理内存地址中足够的位,从而可以寻址整个缓存;由于当前缓存容量相对较大,物理内存地址中的位数已经超过了内存的页内偏移的位数,物理内存的页编号的低位会与缓存组编号的高位有部分重叠,因此物理内存的页编号决定了缓存中的指定的一部分组,共享相同缓存组编号位的物理内存页的集合构成一个缓存全等类;整个物理内存被划分为多个缓存全等类,具体的个数与二级缓存大小和物理内存页的大小有关; 2)利用缓存区域的结构来控制处理器二级缓存的使用情况:  使用函数控制缓存区域,并利用缓存区域记录被控制的内存页地址的链表和起止地址、缓存全等类的数量、缓存的使用情况、当前应用程序的内存结构的信息; 3)标记为缓存区域 利用操作系统处理虚拟内存缺页的中断函数来保存应用程序访问内存物理页 编号的记录,确定应用程序要访问的缓存地址,从而控制处理器二级缓存的访问范围:当需要将一块应用程序的内存段固定在二级缓存中时,通过更改虚实地址转换页表项中这一块内存的权限位和标记位,使访问到这一块内存时会发生缺页中断,在缺页中断处理函数中,根据页表项中的标记位添加相关的分支,即可进行缓存区域的相关操作; 4)提供系统调用 系统调用将缓存区域的控制函数进行包装以方便地控制缓存区域,只需要在声明要优化的数据结构之前使用设置缓存区域的系统调用,即可优化二级缓存的使用情况。

【技术实现步骤摘要】

本专利技术涉及计算机通用操作系统内存管理
,特别是涉及一种通用操作系统对CPU 二级缓存访问的控制方法。
技术介绍
CPU缓存是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓 存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大 量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。在CPU中加入缓存是一种高效的解决方案,这样整个内存储器就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。CPU在缓存中找到有用的数据被称为命中,当缓存中没有CPU所需的数据时,发生缺失, CPU才访问内存。缓存的工作原理是当CPU要读取一个数据时,首先从缓存中査找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。正是这样的读取机制使CPU读取缓存的命中率非常高,大多数 CPU可达9(^左右,也就是说CPU下一次要读取的数据9(^都在缓存中,只有大约10%需要从 内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。最早先的CPU缓存是整体集成在CPU内部,且容量低。集成在CPU内的缓存渐渐难以满 足CPU的需求,而制造工艺上的限制又不能大幅度提高缓存的容量,因此出现了集成在与 CPU同一块电路板上或主板上的缓存。此时就把CPU内核集成的缓存称为一级缓存,而外部 的称为二级缓存。随着CPU制造工艺的发展,二级缓存也能轻易的集成在CPU内核中,容量也在逐年提升。CPU 二级缓存的出现使得计算机的整体性能得到了又一次巨大的飞跃。二级缓存比内存容量小但速度快,同时比一级缓存容量大但速度略慢,处于计算机存储系统金字塔结构的第二层。影响二级缓存性能的最主要因素就是命中率,而提高命中率的方法主要分为两种第 一种是增加二级缓存容量,用更多的硬件成本换取性能;第二种是用软件方式提高性能,比3如改进缓存替换算法。本专利技术属于后者,补充了二级缓存的管理方法。为了保证CPU访问时有较高的命中率,缓存中的内容应该按一定的算法替换。目前缓存控制器较常用的算法是近似最近最少使用算法,它是将最近一段时间内最少被访问过的 行淘汰出局。这是一种高效、科学的算法,在大多数情况下都有较好的表现。但是在连续多 次按同一顺序遍历的操作上会出现很差的表现,而这种操作却是常常会遇到的。另一方面,缓存内容的替换算法是固化在CPU中的缓存控制器硬件中的,通用操作系统无法改变或者干预这种算法。因此,如果能够提供一种通用操作系统对二级缓存访问的控制方法,就可以在 一定程度上弥补缓存替换算法的不足,并解决通用操作系统无法干预缓存内容的现状,使得 二级缓存的使用更加灵活和高效。
技术实现思路
本专利技术的目的在于克服现有技术中的不足,提供一种通用操作系统对CPU 二级缓存访问的控制方法。通用操作系统是一类操作系统的统称,比如常见的Windows, Linux等都属于通用操作系统。与之相对应的是专用操作系统,或称为实时操作系统,多用于嵌入式领域。通用操作系统有更普遍的应用领域,本专利技术中的方法是针对通用操作系统的。 本专利技术解决其技术问题采用的技术方案包括以下步骤1) 软件缓存划分在操作系统中可以通过内存页着色的方法实现软件划分物理索引的处理器缓存在物理索引的缓存中,数据在物理内存中的地址决定了数据所映射到的缓存组编号和组内偏移,用 来将数据映射并索引到缓存的哈希函数必须利用物理内存地址中足够的位,从而可以寻址整个缓存;由于当前缓存容量相对较大,这些位数已经超过了内存的页内偏移的位数,物理内 存的页编号的低位会与缓存组编号的高位有部分重叠,因此物理内存的页编号决定了缓存中 的指定的一部分组,共享相同缓存组编号位的物理内存页的集合构成了一个缓存全等类,整 个物理内存可以划分为多个缓存全等类,具体的个数与二级缓存大小和物理内存页的大小有 关;2) 缓存区域控制方法在本方法中使用一个名为缓存区域的结构,控制处理器二级缓存的使用情况;缓存区域 中记录了被控制的内存页地址的链表和起止地址、缓存全等类的数量、缓存的使用情况、当 前应用程序的内存结构的信息;控制缓存区域结构的函数包括初始化、释放、向缓存区域增 加内存段、从缓存区域删除内存段、査找一个内存地址是否在指定缓存区域、为缓存区域分 配新的内存页、清除缓存区域的内存页;3) 标记为缓存区域的机制要控制处理器二级缓存的访问范围,首先要确定应用程序要访问的缓存地址;由软件缓 存划分的方法得知,需要保存应用程序访问内存物理页编号的记录;保存访问记录可以利用 操作系统处理虚拟内存缺页的中断函数;当需要将一块应用程序的内存段固定在二级缓存中 时,通过更改虚实地址转换页表项中这一块内存的权限位和标记位,使访问到这一块内存时 会发生缺页中断,在缺页中断处理函数中,根据页表项中的标记位添加相关的分支,即可进 行缓存区域的相关操作;4) 向程序员提供的系统调用程序员通过系统调用来优化二级缓存的使用情况;系统调用将缓存区域的控制函数进行 包装,使得程序员可以方便的控制缓存区域,只需要在声明要优化的数据结构之前使用设置 缓存区域的系统调用即可。本专利技术与
技术介绍
相比,具有的有益的效果是本专利技术通过改进操作系统内核对内存缺页中断和二级缓存的管理机制,添加系统调用, 使得操作系统可以控制二级缓存的访问。该专利技术基于软件缓存划分的方法,利用物理内存页 编号和二级缓存组编号的地址重叠部分可以将内存空间划分为多个缓存全等类。程序员在编写对内存频繁访问的应用程序时,可以通过系统调用对规律性频繁访问且体积庞大的数据结 构进行针对缓存的优化,从而减少二级缓存访问缺失率,显著提高程序性能。(1) 性能提升。操作系统对CPU 二级缓存的替换进行控制,从而克服了固化在缓存控制 器硬件中的替换算法的弱点,大幅度提高二级缓存的命中率,使得程序性能得到显著提升。(2) 可拓展性。基于软件缓存划分和缓存全等类的方法,操作系统中可以设计多种缓存 替换算法。对于具有不同内存访问规律的程序使用不同的缓存替换算法,可以进一步拓展本 专利技术的应用范围。(3) 便捷性。程序员在编写程序时可以方便的利用相关的系统调用优化程序的缓存访问。 附图说明图1是软件缓存划分编号位重叠的示意图。 具体实施例方式在实施通用操作系统对CPU 二级缓存访问的控制方法时,具体方式如下-1)软件缓存划分目前通用CPU 二级缓存普遍利用物理内存地址来确定内存所对应的缓存中的位置,也就是说目前通用CPU二级缓存都是物理索引的缓存;当前的二级缓存容量也已经达到足够大,5使得控制数据映射的哈希函数利用的物理内存地址位数超过了内存页内偏移量的位数,因此 内存的物理页编号的低位与缓存组编号的高位有部分重叠,操作系统可以利用这一部分重叠 的位数进行软件缓存划分。共享相同缓存组编号位的内存物理页的集合构成了一个缓存全等类,每一个类中的内存 页都被映射到缓存中一个固定的区域,不同的类映射到的缓存区域不会相同;可用的缓存全 等类本文档来自技高网
...

【技术保护点】
一种通用操作系统对CPU二级缓存访问的控制方法,其特征在于,包括以下步骤: 1)在操作系统中以内存页着色的软件实现方法划分物理索引的缓存: 在物理索引的缓存中,数据在物理内存中的地址决定了数据所映射到的缓存组编号和组内偏移,用来 将数据映射并索引到缓存的哈希函数必须利用物理内存地址中足够的位,从而可以寻址整个缓存;由于当前缓存容量相对较大,物理内存地址中的位数已经超过了内存的页内偏移的位数,物理内存的页编号的低位会与缓存组编号的高位有部分重叠,因此物理内存的页编号决定了缓存中的指定的一部分组,共享相同缓存组编号位的物理内存页的集合构成一个缓存全等类;整个物理内存被划分为多个缓存全等类,具体的个数与二级缓存大小和物理内存页的大小有关; 2)利用缓存区域的结构来控制处理器二级缓存的使用情况:  使用函数控制缓存区域,并利用缓存区域记录被控制的内存页地址的链表和起止地址、缓存全等类的数量、缓存的使用情况、当前应用程序的内存结构的信息; 3)标记为缓存区域 利用操作系统处理虚拟内存缺页的中断函数来保存应用程序访问内存物理页 编号的记录,确定应用程序要访问的缓存地址,从而控制处理器二级缓存的访问范围:当需要将一块应用程序的内存段固定在二级缓存中时,通过更改虚实地址转换页表项中这一块内存的权限位和标记位,使访问到这一块内存时会发生缺页中断,在缺页中断处理函数中,根据页表项中的标记位添加相关的分支,即可进行缓存区域的相关操作; 4)提供系统调用 系统调用将缓存区域的控制函数进行包装以方便地控制缓存区域,只需要在声明要优化的数据结构之前使用设置缓存区域的系统调用,即可优化二级缓存的使用情况。...

【技术特征摘要】
1、一种通用操作系统对CPU二级缓存访问的控制方法,其特征在于,包括以下步骤1)在操作系统中以内存页着色的软件实现方法划分物理索引的缓存在物理索引的缓存中,数据在物理内存中的地址决定了数据所映射到的缓存组编号和组内偏移,用来将数据映射并索引到缓存的哈希函数必须利用物理内存地址中足够的位,从而可以寻址整个缓存;由于当前缓存容量相对较大,物理内存地址中的位数已经超过了内存的页内偏移的位数,物理内存的页编号的低位会与缓存组编号的高位有部分重叠,因此物理内存的页编号决定了缓存中的指定的一部分组,共享相同缓存组编号位的物理内存页的集合构成一个缓存全等类;整个物理内存被划分为多个缓存全等类,具体的个数与二级缓存大小和物理内存页的大小有关;2)利用缓存区域的结构来控制处理器二级缓存的使用情况使用函数控制缓存区域,并利用缓存区域记录被控制的内存页地址的链表和起止地址、缓存全等类的数量、缓存的使用情况、当前应用程序的内存结构的信息;3)标记为缓存区域利用操作系...

【专利技术属性】
技术研发人员:陈天洲曹满马建良章铁飞项凌翔乔福明黄江伟王春昊缪良华陈剑
申请(专利权)人:浙江大学
类型:发明
国别省市:86

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1