



全文预览已结束
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3 4 卷第2 2 期计算机工程 2 0 0 8 年1 1 月 V o L 3 4 N o 2 2 C o m p u t e rE n g i n e e r i n g N o v e m b e r2 0 0 8 开发研究与设计技术 文章编号一l I H H 卜 甜2 8 2 I I J 8 J 2 2 0 2 4 卅2文献标识码 A 中圈分类号 N 9 4 5 系统级动态二进制翻译器的中断处理策略 龙开文 付字阜 七海交通大学徼电产学院 上海2 0 0 2 4 0 摘要 中断处理策略足影响系统级动态二进制翻译系统性能的丰要因素之一 该文通过分析中断的被动处理策略对系统性能的影响 提 出在目标代码执行阶段 E 动处理中断的策略 并加以实现 实验结果表明 中断的主动处理策略优于被动处理策略 关砖诃 中断处理 系统级动态二进制翻洋 操作系统 I n t e r r u p tH a n d l i n gS t r a t e g yi nS y s t e m l e v e l 1 1 n J 一 V n a m l CB l n a r Vlr a n S I a t o r L o N GK a i w e n F UY u z h u o S c h o o lo fM i c r o e l e c t r o n i c s S h a n g h a iJ i a o t o n gU n i v e r s i t y S h a n g h a i2 0 0 2 4 0 A b s t r a c t I n t e r r u p th a n d l i n gs t r a t e g yi so n eo fm a i nf a c t o r si n f l u e n c i n gc h a r a c t e r i s t i co fs y s t e m l e v e ld y n a m i cb i n a r yt r a n s l a t o rs y s t e m B a s e do n t h ep e r f o r m a n c ea n a l y s i so fp a s s i v ei n t e r r u p th a n d l i n gs t r a t e g y t h i sp a p e rp r e s e n t sap r o a c t i v es t r a t e g yt oh a n d l ei n t e r r u p tw h i c hO c c u r Sa tt h e t r a n s l a t e dc o d e se x e c u t i o ns t a g e T h i ss t r a t e g yi sa l s oi m p l e m e n t e d E x p e r i m e n t a lr e s u l t ss h o wt h a tt h ep r o a c t i v es t r a t e g ya d v a n c e so v e rt h e p a s s i v eo n e K e yw o r d s li n t e r r u p th a n d l i n g s y s t e m l e v e ld y n a m i cb i n a r yt r a n s l a t i o n o p e r a t i n gs y s t e m 1 概述 动态二进制翻译分为应用程序级翻译和系统级翻译 应 用程序级二进制翻译器只翻译基于操作系统的应用程序 系 统级二进制翻译器需要模拟整个硬件平台 并翻译运行在该 平台上的所有程序f 包括操作系统 系统级二进制翻译系统一般都趋向于精确中断 如同精 确异常一样 常采用I u l I I 退 r o l lb a c k 机制 即在发生中断 异常后能把发生中断 异常前的源机器状态还原出来 为实现 精确中断和精确异常 有以下2 种实现方式 C r u s o e l 2 I 由硬 件支持 通过影子寄存器来保存精确状态 I A 一3 2 3 1 采用还原 点检测机制 一旦发生异常就从最近的还原点恢复出精确的 机器状态 但回退机制比较耗时 如I A 3 2E L 做一次回退操 作要花近1 0 4 个时钟周期 本文主要讨沦在系统级动态二进制翻译器中如何处理中 断才能提高翻译器的整体性能 在分析运用被动策略处理中 断的基础上 提出在翻译代码执行阶段主动处理中断的策略 减少了在提交中断时调用回退机制产生的开销 并依次介绍 2 种实现方法 1 在生成翻译代码块阶段插入中断检测代码 2 在翻译代码块执行阶段重定向出E 1 地址到中断处理的程 序 通过运行S P E C 2 0 0 0I N T 评估这2 种中断处理策略对翻 译器整体性能的影响 从而说明主动策略的2 种实现方法是 可行的 2 主动中断处理策略 本文把I n t e l 公司的应用程序级二进制翻译器I A 一3 2E L 扩展为系统级二进制翻译器 使未经修改的I A 一3 2L i n u x 操作 系统能够运行在l t a n i u m 手台t 动态二进制翻译器按基本块或超级块进行翻译 翻译器 在基本块内优化 当翻译块在执行过程中发生异常或中断时 需要调用回退机制恢复出精确的源机器状态 但由于中断是 异步事件 与当前执行的指令序列没有直接联系 因此町以 被延迟到翻译块的边界进行处理 若中断发生在翻译块执行阶段外则被延迟处理 当中断 发生在翻译块执行阶段时 本文提供2 种处理策略 主动中 断处理策略 将中断延迟到翻译块边界进行处理 被动中断 处理策略 在翻译块内调用回退机制实现精确中断的方式 主动中断策略有以F2 个特点 I 避免回退机制产生的开销 在I A 3 2E L 中利用被动中 断处理策略运行S P E C 2 0 0 0 I N T 执行回退机制的时间占程序 执行时间的8 2 避免生成只运行一次的翻译块 被动中断处理策略从 一个翻译块内恢复出精确的源机器状态后会从源代码块的相 应中断点处开始生成一个基本块 它不在原有基本块的正常 执行序列中 除非中断再次打中同一点 否则这个翻译块只 被执行一次 由于这样的概率很小 因此有多少次中断就生 成多少个只运行一次的翻译块 比如 L i n u x 的默认时钟频 率是lK H z 这增加了翻译代码块C a c h e 的内存压力 且由 于控制流的频繁切换 降低了I c a c h e 的命中率 为克服被动中断处理策略的缺陷 引入主动中断处理策 略 在翻译器跳去执行翻译代码块前先枪查是否有等待处理 的中断 直接跳转是动态二进制翻译器常用的优化技术 在 翻译代码问形成循环 若不打断翻译代码的执行就无法返回 作者筒介 龙开文 1 9 8 2 男 硕士研究生 主研方向 计算机系 统结构 付宇卓 教授 博土 收稿日期 2 0 0 8 0 2 1 0 E m a i l k a i v e n s j t u e d u c n 一2 4 5 万方数据 翻译器 翻译代码块间的直接跳转如图l 所示 源机器代码块 目标机器代码块 图1奢译代码块问直接赡转 以下是对图1 的说明 S 代表源机器代码块 丁代表翻译 生成的目标机器代码块 当翻泽器开始翻译执行s l 对应的目 标机器代码块丁l 时 发现其前驱 的目标机器代码块7 1 D 已经存在 则把7 1 D 的出口修改成跳转到7 l 从而在7 1 0 和 丁l 间形成直接跳转 当翻译到S 2 时 发现其后继册和s l 对应的目标代码块7 1 D 和丁1 都已存在 则直接把他的出口 指向7 1 0 和r 1 从而形成丁2 到7 1 0 和丁1 的直接跳转 根据插入中断检测代码的时机 实现主动中断处理策略 有以下2 种方式 2 1 翻译阶段插入中断检测代码 在翻译目标机器代码块时为每个翻译代码块添加一个前 缀 以检查是否有等待处理的中断 该指令序列如下 A a d dr 2 i r q p e n d f l a g g P L dr 3 f r 2 c m p n ep 3 r 0 r 3 p 3 b r c o n d s p n t m a n yp e n d i n g i r q h a n d l e r B p 3 br c o n d s p n t m a n yp e n d i n g i r q h a n d l e r 如果用内存变量来标记等待处理的中断 那么生成指令 序列A 它包含4 条指令 且不能同时执行 利用I t a n i u m 架 构的条件执行机制能把这个前缀优化为一条指令 即指令序 列B 先预留一个预测寄存器p 3 来标记当前是否有等待处理 的中断 当中断发生在翻译代码块执行阶段时 翻译器的中 断服务程序总把p 3 置为T R U E 同时返回被中断的点继续执 行 若中断发生在7 1 D 执行阶段 则丁I 的块首会跳到p e n d i n g i r q h a n d l e r 并把p 3 置为F A L S E 同时开始模拟硬件提交中 断的过程 2 2 运行时重定位翻译代码块出口 当中断发生在翻译代码块执行阶段时取消当前代码块到 其他翻译代码块的直接跳转 使其跳到p e n d i n g i r q h a n d l e r 该过程如图2 所示 源机器代码块 目标机器代码块 一2 4 6 一 目2 运行时动态修改叠译代码块 当中断发生在翻译代码块砣的执行阶段时取消砣到7 1 0 和丁l 的直接跳转 并将其跳转目标定位到p e n d i n g i r q h a n d l e r 该算法的实现需要以下3 个模块的协作 1 翻译器记录翻译代码块之间的直接跳转 目标机器代 码块问的直接跳转在其翻译和执行阶段形成 在上述2 个阶 段中只要记录每个目标机器块出口跳转指令的位置以及跳转 目标即可 2 翻译器中断服务程序取消直接跳转 当中断发生时翻 译器的中断服务程序依次执行下述步骤 1 把中断号放入中 断等待队列Q 2 判断中断是否打中目标机器代码块 若没 打中则恢复执行被中断的指令 若打中则继续执行 3 将砣 的所有直接跳转目标改为p e n d i n g i r q h a n d l e r 4 刷新所有跳 转指令对应的指令缓存 I c a c h e 由于修改了正在运行的指 令 因此I A 6 4 架构要求软件刷新I C a c h e 才能保证指令缓存 I C a c h e 和数据缓存D C a c h e 的一致性 5 返回执行中断点继 续执行 3 在p e n d i n g i r q h a n d l e r 中处理延迟中断 具体步骤如 下 1 检查7 2 的原有直接跳转目标两 丁1 是否存在 若存在 则霞建与T 2 的直接跳转 2 检查中断等待队列Q 是否为空 若为空则执行3 若不为空则执行4 3 如果原有直接跳转 目标存在则跳过去执行 如果不存在则跳到翻译器莆新开始 翻译 4 从等待队列Q 中取出中断号 并开始模拟硬件提交 中断的过程 3 实验结果 本文采用S P E CC I N T 2 0 0 0 对主动中断处理策略进行性 能评估和分析 测试程序运行在频率为1 6G H z 的安腾2 机 器上 I A 一3 2 操作系统内核采用L i n u xK e r n e l2 6 1 1 并使用 操作系统默认的时钟中断频率1K H z 该测试系统没有配置 网络 硬盘中断和时钟中断是主要的中断源 图3 给出了主 动中断处理策略的加速比情况 掌 丑 制 晨 2 9 9 8 1 1 22 6 l 生卫 l I 6 8 一 1 06 7 81 6 n j 门 1 I j 一 f J 1 广 g e e m e c r a 竹yp a r s e f g a pv o r t e x b z i p 2g e o m e 卸 圈3 主动中断处理策麝加速比 从图中可以看出 所有测试程序的运行效率得到提高 加速比的几何平均数为1 1 6 8 但各个测试程序获得的加速 比差异较大 选取其中加速比最高的g a p 和最低的g c c 进行 分析可以发现 g c c 有4 2 的时钟中断发生在目标机器代码 执行阶段 g a p 有近9 7 的时钟中断发生在目标机器代码的 执行阶段 这会产生更多状态恢复的开销 因此 增加了产 生更多加速比的机会 同时由于安腾架构的L l 缓存被独立分 成指令缓存和数据缓存 因此要由软件维护其与内存的一致 性 被动中断处理策略会使用状态恢复机制不断刷新L l 缓 存 造成缓存缺失 c a c h em i s s 这是g a p 在主动策略下获得 较大加速比的间接原因 图4 给出了在翻译阶段插入检测代码以实现主动中断处 理策略所带来的静态检测代价 从图中可以看出 这种方法 的代价的几何平均数为1 5 4 但用内存变量作为全局标志 下转第2 4 9 页 硝如 加b m 0 万方数据 二次开发工具包 羹萋 t f 剞 L I 卜 7 I w e b 应用服务模块 f 疑爿 言 寒 耋量 7 I 颦 制 f 瞄 氅 1 基础数据分析模块I 籍 千 1 广 空闸数据引擎 S D E 数据库访问引擎Il 文件系统访问引擎l 数据格式转换引擎 ttt R 础地fr 基础地胡 j 习囿 数据库数据库 圈l 城市地质领域信息管理与服务系统体系结构 从图l 可以看出 系统采用3 层C S 模式与B S 模式相 结合的体系结构 对涉及专业应用的模块采用3 层C S 模式 而对涉及W e b 应用的模块采用B S 模式 涉及专业应用的部 分可划分为3 个层次 基础数据存储管理层 数据访问控制 层以及数据分析应用和表示层 其中 数据访问控制层是数 据存储管理与数据分析应用的中间层 它向数据分析应用层 提供统一的数据存取访问接口 屏蔽底层数据存储管理的不 同策略和实现细节 数据访问控制层提供的数据库访问引擎 文件系统访问引擎以及数据格式转换引擎分别向数据库 文 件系统以及具有不同文件格式的数据源提供一致的数据访问 接口 在数据分析应用和表示层中 数据录入模块是系统的 主要构件之一 提供数据标准化 数据质最检查以及数据转 入转出功能 空间数据可视化引擎与基础数据分析模块也都 是系统的核心基础构件 这蜂模块的需求变动相对较少 同 时也为系统的专业分析及W e b 应用服务模块提供服务 上述 构件的功能接口还可作为系统再开发时的基本A P I 封装在二 次开发工具包中 W e b 信息发布和数据服务采用B S 体系结 构模式 该模式中应用服务器的功能完全基于W e b 应用服务 模块来实现 系统在运行和部署过程中与该体系结构相对应 的典型网络环境如图2 所示 政府决策 管理部门其他专业应用部门 司习 终端f l 户 公众用户 L 一目 主羔 数据J 幸服务器应辟J 服务器w e b 服筹器安全与认i l E 服务器 城市地质信息管理与服务系统管理巾心 图2 城市地质信息管理与服务系统的兵塑运行部署罔络环境 C S 模式的客户端在内部局域网中工作 其他用户则通 过专用网络或瓦联网来访问系统 4 结束语 本文分析了城市地质领域信息管理与服务系统的功能性 与非功能性需求特性 并在此基础上讨论与该系统匹配的软 件体系结构模式 提出包括安全与认证服务体系和二次开发 能力在内的以3 层C S 模式为主 B S 模式为辅的混合体系 结构模式 目的在于分析城市地质领域内信息管理与服务系 统中可复用的功能构件 理清各构件问的关系 保证各构件 在不同城市的应用系统中具有较高的可复用性以及良好的呵 扩展性 降低系统开发和大规模推广应用的成本 参考文献 l 中国地质调查局 城市地质数据库与成果兰维可视化信息系统 建设指南 Z 1 北京 中国地质调查局 2 0 0 5 2 李安波 闾国年 孟萃萃 等 城市地质空间信息系统研究与建 设 计算机应用研究 2 0 0 7 2 4 3 1 3 2 1 3 4 2 0 2 3 孙亚琴 唐卫 陈锁忠 等 基于三层C S 结构的城市地质环 境信息系统 J 计算机工程 2 0 0 6 3 2 2 1 2 6 l 一2 6 3 4 1 吴冲龙 牛瑞卿 刘刚 等 城市地质信息系统建没的目标与 解决方案 J 地质科技情报 2 0 0 3 2 2 3 6 7 7 2 5 尚建嘎 刘修国 花卫华 城市地质特定领域软件体系结构 J 地球科学 2 0 0 6 31 5 6 7 3 6 7 7 6 1 朱良峰 吴信才 刘修困 城市三维地质信息系统初探 J J 地理 与地理信息科学 2 0 0 4 2 0 5 3 6 4 0 上接第2 4 6 页 其代价增加了近4 倍 达到7 3 8 这种方法还依赖于基本 块的粒度 基本块大小 粒度越小 静态检测代价越大 9 6 0 83 0 j 一一一I 4 5 0 78 6 0 0 8 8 0 87 0 49 0 0 7 7一一1 E 一 7 霄7 0 M 1 6 0 j8 0 J J 帆 7 1 8 0 o 2 2 0 一 I 自0 f 5 4 喇 运行S P E C 2 0 0 0 I N T 时获得近1 2 的加速比 参考文献 1 A l t m a nE E b c i o g l uK G s c h w i n dM e ta 1 A d v a n c e sa n dF u t u r e C h a l l e n g e si nB i n a r yT r a n s l a t i o na n dC o m p i l a t i o n z C i t e S e e r X 2 0 0 1 2 D e h n e r tJ G r a n tB B a n n i n gJ e ta 1 T h eT r a n s m e mC o d eM o r p h i n g 鲜 抓y k 甲2 即 3 圈4 簪态检测代价 4 结束语 主动中断处理策略避免了执行回退机制产生的开销以及 生成只运行一次的翻译代码块对内存和程序执行流程的影 响 实验结果表明 主动中断处理策略的整体性能稳定 在 S o f t w a r e U s i n gS p e c u l a t i o n R e c o v e r ya n dA d a p t i v eR e t r a n s l a t i o n t oA d d r e s sR e a l l i f eC h a l l e n g e s Z C i t e S e e r X 2 0 0 3 L e o n i dB T e v iD O m aE e ta 1 I A 3 2E x e c u t i o nL a y e r A T w o p h a s eD y n a m i cT r a n s l a t o rD e s i g n e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 砂石运输管理岗位职责
- 医疗服务质量会议纪要范文
- 影视制作项目工期保证体系及措施
- 粉尘爆炸基本知识培训课件
- 鱼美术培训机构课件
- 钽铌镧还原冶炼工招聘考核试卷及答案
- 锅炉设备试压工作业指导书
- 广告隐私保护-洞察及研究
- 海藻资源开发-洞察及研究
- 篮球投篮课件
- ISO 55013-2024 资产管理-数据资产管理指南(中文版-雷泽佳翻译-2024)
- JT-T-445-2021汽车底盘测功机
- DB50-T 1557.3-2024 气象灾害风险预警等级 第3部分:低温雨雪冰冻
- 大学生安全教育课件(共41张)
- HG-T 4823-2023 电池用硫酸锰
- 《光伏发电工程安全预评价规程》(NBT 32039-2017)
- Facebook广告操作流程和广告效果数据
- 从局部到整体:5G系统观-完整版
- 高中生物开学第一课【知识精研+能力提升】高一上学期生物人教版必修1
- (完整word)工程造价咨询公司管理制度
- 电子商务运营管理培训教材
评论
0/150
提交评论