[发明专利]用于非一致性内存访问的数据预取方法和装置有效
申请号: | 201110296544.3 | 申请日: | 2011-09-27 |
公开(公告)号: | CN102508638A | 公开(公告)日: | 2012-06-20 |
发明(设计)人: | 谭玺;韦竹林;刘轶;朴明铉 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/345;G06F12/02 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 彭愿洁;李文红 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 一致性 内存 访问 数据 方法 装置 | ||
技术领域
本发明涉及通信领域,尤其涉及用于非一致性内存访问的数据预取方法和装置。
背景技术
目前,磁盘依然是计算机系统的主要存储介质。然而,随着技术的日新月异,磁盘面临着其输入/输出(Input/Output,I/O)带宽比不上中央处理器(Central Processing Unit,CPU)/内存的发展速度和磁盘的访问延迟与CPU/内存的读写速度差距日益扩大的两大挑战。在CPU速度、磁盘传输速度和磁盘I/O访问速度三者中,磁盘I/O访问速度的提高最缓慢,特别地,磁盘I/O访问速度与CPU的速度差距越来越大,磁盘I/O访问时延已经成为制约系统I/O性能的一个最主要的瓶颈。在操作系统层面,异步化是一种非常有效的I/O性能优化策略,数据预取则是实现I/O的异步化的常用方法。
所谓数据预取,是指系统在后台提前进行I/O操作,将所需数据提前加载到内存,以隐藏应用程序的I/O延迟,从而可以有效地提高计算机系统的利用率。与传统的串行处理相比,数据预取提供的异步操作策略可以消除CPU的等待时间,使CPU与磁盘能并行工作,进而从整体上提高系统的I/O性能。数据预取采用模式匹配的方法,即,通过监测应用程度对各个文件的访问序列,维护其历史访问记录,并将其与识别出来的模式逐一进行模式匹配。如果符合某一访问模式的行为特征,即可依此进行数据的预测和预取。具体的实现技术包括启发式预取和知情式预取,其中,启发式预取对上层应用是透明的,通过自动观测程序的历史访问记录,分析其I/O特征,独立自主地预测并预取即将被访问的数据块。
Linux内核2.6.23之后的版本提供了一种基于启发式的按需预取算法,它工作在虚拟文件系统(Virtual File System,VFS)层,对上统一地服务于各种文件读取操作(通过系统调用API),对下独立于具体的文件系统。按需预取算法引入了页面状态和页面缓存状态,采用宽松的顺序性判决条件,对顺序性I/O操作提供有效的支持,包括异步/非阻塞I/O、多线程交织I/O、顺序随机混合I/O、大规模并发I/O等多种操作。当应用程序要进行数据的访问时,通过系统调用接口,经由页面缓存访问一个磁盘文件。内核对这一标准文件访问路径调用预取算法,跟踪应用程序的访问序列,并进行恰当的预取。具体地,Linux提供的基于启发式的按需预取算法主要通过监控应用程序的读请求和页面缓存来判定应用程序的访问模式,再根据访问模式来决定预取的位置和大小等。预取框架大致可分为两大部分:监控部分和判断处理部分,其中,监控部分嵌入在do_generic_file_read()函数等读请求响应历程中,检测请求中的每一个页面是否已经在文件缓存地址空间中,如果没有,则申请一个新的页面,同时应用程序被临时挂起而等待I/O加载该页面,进行同步预读。如果该新页面的偏移量正好是预读参数async_size指向的位置,则为该页面置预取标记(PG_readahead)。在后续的数据预取过程中,当检测到预取标记页面(PG_readahead page),则意味着下一个预取I/O的时机已经到来,系统进行异步预读。匹配部分位于ondemand_readahead()函数,在逻辑上由一组独立的判决模块组成,判断是否是文件开始读、小文件读、顺序读和随机读。按需预取框架支持顺序读和随机读两种访问模式,对小文件读则采取简单的抛弃,不进行数据预取。
无论是Linux内核2.6.23之后版本提供的基于启发式的按需预取算法还是其他数据预取技术,在设计之初,都是面向单处理器系统的。由于单处理器系统本身受到处理器的计算能力、存储器容量和带宽等因素的限制,因此,对应的数据预取设计得相对比较保守,尤其是预取量管理部分:以初次读请求的页面大小为基准,采取以2为因子的倍增策略并设定上限窗口。
随着科学计算、事务处理对计算机性能要求的不断提高,对称多处理器(Symmetrical Multi-Processing,SMP)系统的应用越来越广泛,规模也越来越大。非一致性内存访问(Non-Uniform Memory Access,NUMA)的多处理器系统是由若干通过高速专用网络连接起来的独立节点构成的系统,各个节点可以是单个的CPU或是SMP系统。NUMA系统作为分布式共享存储器结构一类,同时结合了SMP系统易编程性和分布式存储系统高可扩展性的优点,已成为当今高性能服务器的主流体系结构之一。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110296544.3/2.html,转载请声明来源钻瓜专利网。