交换操作的实现方法和装置的制造方法_3

文档序号:8905054阅读:来源:国知局
阔值, 内存控制器就将第一空闲物理内存页面分配给第一数据。
[0093] S203 ;内存控制器判断上述第一请求的优先级是否大于第二阔值。若是,则执行 S204 ;若否,则执行S205。
[0094] S204 ;内存控制器为上述第一数据分配第一空闲物理内存页面。
[0095] S205 ;内存控制器将上述第一数据存储至SWAP分区。
[0096] 具体的,当空闲物理内存页面的数量小于第一阔值,内存控制器会判断上述第一 请求的优先级是否大于第二阔值,若大于,则内存控制器会在为数不多的空闲物理内存页 面中选择第一空闲物理内存页面分配给第一数据;若上述第一请求的优先级小于第二阔 值,则内存控制器会将第一数据存储至SWAP分区中。该种优先级低于第二阔值的请求例 如可w是只访问一次的数据类型,因该数据只需要被访问一次,即访问频度低,则将该数据 存放至SWAP分区中就可W满足要求了。需要说明的是,内存控制器将第一数据直接存储 至SWAP分区中,是基于当前未分配的SWAP分区足够第一数据存储的前提的。也就是说,当 前SWAP分区的状态内存控制器是可知的,因为操作系统会将SWAP分区的信息传递给内存 控制器。该种信息传递的方式可W有多种,一种方式是通过操作系统与内存控制器的通路, 操作系统直接将SWAP分区的具体信息发送给内存控制器;另一种方式是操作系统将记录 SWAP分区信息的地址传递给内存控制器,由内存控制器直接去读取相应的信息。
[0097] 本发明实施例提供的交换操作的实现方法,通过内存控制器接收处理器发送的携 带第一虚拟地址的第一请求,来请求内存控制器为该第一虚拟地址对应的第一数据分配第 一空闲物理内存页面;内存控制器根据当前空闲物理内存空间状态和第一请求的优先级判 断是否为该第一数据分配第一空闲物理内存页面;并且,当内存控制器为第一数据分配了 所述第一空闲物理内存页面之后,内存控制器根据剩余的空闲物理内存空间状态判断是否 启动SWAP换出操作。本发明实施例提供的方法,通过内存控制器来管理计算机系统的物理 内存资源,并通过内存控制器详细分析数据的访问频度W及访问模式,并根据该些信息来 确定是否启动SWAP换出操作,从而降低了操作系统的开销,提高了计算机系统的性能。
[0098] 在上述实施例的基础上,作为本发明实施例的另一种可能的实施方式,本实施例 的涉及的方法是内存控制器为第一数据分配了第一空闲物理内存页面之后,确定是否执行 SWAP换出操作的具体过程,也就是上述S103的具体过程。上述S103具体为:若内存控制 器判断剩余的空闲物理内存空间状态小于第H阔值,则内存控制器启动SWAP换出操作
[0099] 具体的,当内存控制器为第一数据分配第一空闲物理内存页面之后,内存控制器 会检测除去第一空闲物理内存页面后的剩余空闲物理内存空间的状态,当检测到剩余的空 闲物理内存空间状态小于第H阔值时,内存控制器会在非空闲物理内存空间中确定访问频 度小于第五阔值的物理内存页面;并且,内存控制器在SWAP分区中选择第一磁盘片段,将 所述访问频度小于第五阔值的物理内存页面中的数据迁移至第一磁盘片段。可选的,内存 控制器可W将第一数据先写入到缓存中,再将缓存中的数据写入到SWAP分区中的指定位 置中(即第一磁盘片段)。进一步地,上述内存控制器将上述第一数据对应的第一虚拟地址 和所述第一磁盘片段的映射关系增加至SWAP分区映射表中;该SWAP分区映射表包括各个 虚拟地址和各个虚拟地址对应的数据在SWAP分区中的存储位置之间的映射关系。它既可 W存放在内存区域中,也可W存在于SRAM缓存中。表1所示的是SWAP分区映射表中的一 个条目,主要包括了请求的进程号及虚地址(Pid/vad化)、数据长度(length),W及数据在 SWAP分区中的偏移(SWAP-offset)。在内存控制器接收到处理器的数据访问的请求时,需 要判断数据是否在SWAP分区中。如果在SWAP分区中,则可W通过查找SWAP分区映射表, 确定数据在SWAP分区中的位置。
[0100] 表 1
[0101] Pid/vaddr length SWAP-offset
[0102] 本发明实施例提供的交换操作的实现方法,通过内存控制器接收处理器发送的携 带第一虚拟地址的第一请求,来请求内存控制器为该第一虚拟地址对应的第一数据分配第 一空闲物理内存页面;内存控制器根据当前空闲物理内存空间状态和第一请求的优先级判 断是否为该第一数据分配第一空闲物理内存页面;并且,当内存控制器为第一数据分配了 所述第一空闲物理内存页面之后,内存控制器根据剩余的空闲物理内存空间状态判断是否 启动SWAP换出操作。本发明实施例提供的方法,通过内存控制器来管理计算机系统的物理 内存资源,并通过内存控制器详细分析数据的访问频度W及访问模式,并根据该些信息来 确定是否启动SWAP换出操作,从而降低了操作系统的开销,提高了计算机系统的性能。
[0103] 进一步地,在上述实施例的基础上,作为本发明实施例的第H种可能的实施方式, 本实施例涉及的方法是内存控制器确定是否执行SWAP换入操作的具体过程。该过程可W 在上述实施例中的S101之前进行,也可W在S103之后进行,即本实施例的过程并不受限于 上述实施例中内存控制器是否为第一数据分配第一空闲物理内存页面的过程。
[0104]内存控制器可W根据当前SWAP分区的第二数据的访问频度确定是否执行SWAP换 入操作;可选的,还可W判断当前的空闲物理内存页面的数量来判断是否启动SWAP换入操 作。当内存控制器判断当前SWAP分区中的第二数据的访问频度大于第四阔值,即当前SWAP 分区中的第二数据被频繁访问,内存控制器启动SWAP换入操作。如果当前的空闲物理内存 页面较多,那么内存控制器直接分配一个第二空闲物理内存页面,将SWAP分区中的第二数 据迁移到物理页面中。SWAP换入操作的流程与上述SWAP换出操作的流程类似,只是数据 从SWAP分区读入到缓存中,再从缓存中写入到第二空闲物理内存页面中。并且,内存控制 器在执行SWAP换入操作之后,删除SWAP分区映射表中的第二数据对应的虚拟地址和第二 数据原来在SWAP分区中存储位置之间的映射关系,即更新SWAP分区映射表。
[0105] 进一步地,内存控制器还会在页表中增加一个属性,用于指定第一数据和第二数 据是存储在物理内存中,还是存储在SWAP分区中。
[0106] 可选的,内存控制器在判断当前空闲物理内存空间状态时,还会判断当前未分配 的SWAP分区的状态,当内存控制器判断当前空闲物理内存空间状态和当前未分配的SWAP 分区状态均小于第六阔值时,则内存控制器会通知操作系统执行缺页异常(pagefault)处 理。操作系统执行该异常处理的方式可W有很多种,一种方式是杀掉部分第一请求,释放该 第一请求对应的物理内存空间或是SWAP分区的资源。
[0107] 本发明实施例提供的交换操作的实现方法,通过内存控制器根据当前SWAP分区 中的第二数据的访问频度,确定是否启动SWAP换入操作。即本发明实施例通过内存控制器 来管理计算机系统的物理内存资源,并通过内存控制器详细分析数据的访问频度W及访问 模式,并根据该些信息来确定是否执行SWAP换入操作,从而降低了操作系统的开销,提高 了计算机系统的性能。
[010引图3为本发明提供的交换操作的实现方法实施例H的流程示意图。该方法中的所 有步骤可W在上述S101之前,也可W在上述S103之后,或者该方法的执行步骤可W和实施 例一中的方法并行进行;即本实施例的过程并不受限于上述实施例中内存控制器是否为第 一数据分配第一空闲物理内存页面的过程。如图3所示,该方法包括:
[0109]S301 ;内存控制器接收处理器发送的第二请求;其中,该第二请求携带第二虚拟 地址。
[0110] 具体的,第二请求中携带的第二虚拟地址是处理器需要访问的数据对应的第二虚 拟地址,该第二虚拟地址可W与上述第一虚拟地址相同,也可W不同。
[01U] S302 ;内存控制器判断上述第二虚拟地址是否合法;若否,则执行S303 ;若是,贝u 执行S304。
[0112] 可选的,操作系统在为数据分配虚拟地址时,它会有所分配的虚拟地址的范围,并 且会告知内存控制器;当内存控制器判断所接收到的第二请求中的第二虚拟地址越界时, 则就说明第二虚拟地址不合法。当然,内存控制器还可W通过其他的方式判断第二虚拟地 址是否合法,本发明实施例在此并不走限制。
[0113]S303 ;内存控制器上报第二虚拟地址错误给操作系统。
[0114] 可选的,内存控制器可W通过系统中断等方式,将该错误报告给操作系统。
[0115]S304;内存控制器根据页表判断内存控制器是否为上述第二虚拟地址对应的第H 数据分配了存储空间;若是,则执行S305 ;若否,则执行S313。
[0116] 具体的,内存控制器可W根据页表来判断是否为上述第二虚拟地址对应的第H数 据分配了存储空间,获得相应的判断结果。该存储空间可W是物理内存空间,还可W是SWAP 分区。
[0117]S305;内存控制器根据上述页表判断第H数据是否存放于SWAP分区中;若是,贝U 执行S306 ;若否,则执行S309。
[0118]S306 ;内存控制器根据SWAP分区映射表确定第H数据存储在所述SWAP
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1