APP下载

基于多页的龙芯2F软TLB重载入异常处理改进

2011-07-28何炜

网络安全与数据管理 2011年23期
关键词:分配系统

何炜

(江苏自动化研究所,江苏 连云港 222006)

随着软件规模增大,内存需求越来越大。现代系统提出虚空间的概念,软件运行在独立的虚空间中,被访问时才从物理内存中建立与之对应的空间。TLB(Translate Look-aside Buffer)是加速线性地址向物理地址转换的缓冲器,即缓存最近使用过的页的物理地址。使用线性地址和TLB中的存储项进行比较,如果相同就直接获得目标页的物理地址,不需要访问外存,这样可大大提高地址转换速度。

龙芯2F是中科院计算所自主研发的高性能通用64位处理器[1],在龙芯 2F的 Linux系统中,最占 TLB替换处理时间的就是访存操作,减少访存操作就可提高TLB使用效率,从而提高龙芯2F的整体系统性能。现有软TLB技术可减少TLB替换处理时间,多页技术的采用更可以减少TLB替换次数,从而进一步提高TLB替换效率,帮助对龙芯2F系统进行优化。

1 龙芯2F TLB重载入异常处理

龙芯2F系统采用Debian Linux,其TLB只负责地址转译,表项维护由操作系统负责,所以表页发生修改时TLB内容必须被及时更新[2]。Linux系统通过flush_tlb_all、flush_tlb_mm、flush_tlb_page、flush_tlb_range 等函数来操作TLB内容。龙芯2F为了提高TLB重载入异常处理效率,提供了两个TLB专用寄存器K0和K1,这样在进入重载入异常处理时就不需要对用户寄存器进行保存,从而减少操作时间。

TLB重载入异常处理流程为:进入重载入异常处理后,首先获取该进程页全局目录首地址,取得页全局目录和页中间目录内容,然后获取两个连续页表项用来进行TLB替换写入,处理完毕后返回异常处理现场。

2 软TLB处理实现

龙芯2F系统为64位,页表为 3级页表,且操作地址不连续,每次访问三级页表内容时,TLB重载入需要5次访存操作,产生3次左右的Cache失效,使得TLB重载入异常处理时间大大加长。……

登录APP查看全文

猜你喜欢

分配系统
Smartflower POP 一体式光伏系统
基于可行方向法的水下机器人推力分配
WJ-700无人机系统
ZC系列无人机遥感系统
应答器THR和TFFR分配及SIL等级探讨
基于PowerPC+FPGA显示系统
遗产的分配
一种分配十分不均的财富
半沸制皂系统(下)
绩效考核分配的实践与思考