动态二进制代码翻译[2][VM Versatile platforms for systems and process]
2008-11-25 06:21
609 查看
递增式二进制翻译
高级控制由模拟管理器运行时提供
其它主要元素:解释器,二进制翻译器
关键点——>解释器首先处理原始的源二进制码。
每块源二进制码翻译后保存在块。。。正中。翻译越多,消耗越多内存。有潜在浪费内存,因为有的指令很少用到。为了减少内存消耗,典型地使用code cahe,cade cash,保存最近使用过得翻译过的二进制码。详细过程见第三章,本章内,假设 code cash足够大。
一个映射表用来连接源二进制代码的spc与翻译过的二进制代码TPC,这个表提供一个code cash的索引,一般用hash table来实现。
Spc提取自翻译过的二进制码,tpc指向翻译过的代码块,位于code cash里面。如果em想查找一块翻译过的代码,就需要查询map,在映射表中查询spc对应的tpc如果存在,则对应的代码块已经翻译过,如果不存在,则说明在code cash中无此代码块,需要调用解释器进行进一步的翻译。
==
系统每次翻译一块源代码块,简单翻译方案
动态翻译单元块basic bloack有不同于传统的静态翻译单元块。静态的单元块只有一个代码入口一个代码出口,所有的静态单元块都起于一个分支指令,并终结于下一个分支指令之前。动态单元块的生成取决于实际发生的控制流,开始于条件分支指令,结束于下一个条件分支指令。全部过程如下:
第一,装载源二进制码于内存中;二,em开始调用解释器翻译源二进制码;三,解释器动态生成翻译代码块并且将翻译代码块置于code cash中,同时在映射表中设置对应的spc和tpc;四,当遇到条件分支或者条件跳转指令时,解释器便完成一个动态单元块的翻译;五,em根据源二进制码的控制流进行执行,如果下一个指令已经翻译过,则执行该指令。如未翻译,则生成下一个动态单元块。一个值得注意的情况是,如果跳转指令是跳转到一个已翻译过的中间位置,则需要将此块分解为两个单元块。
高级控制由模拟管理器运行时提供
其它主要元素:解释器,二进制翻译器
关键点——>解释器首先处理原始的源二进制码。
每块源二进制码翻译后保存在块。。。正中。翻译越多,消耗越多内存。有潜在浪费内存,因为有的指令很少用到。为了减少内存消耗,典型地使用code cahe,cade cash,保存最近使用过得翻译过的二进制码。详细过程见第三章,本章内,假设 code cash足够大。
一个映射表用来连接源二进制代码的spc与翻译过的二进制代码TPC,这个表提供一个code cash的索引,一般用hash table来实现。
Spc提取自翻译过的二进制码,tpc指向翻译过的代码块,位于code cash里面。如果em想查找一块翻译过的代码,就需要查询map,在映射表中查询spc对应的tpc如果存在,则对应的代码块已经翻译过,如果不存在,则说明在code cash中无此代码块,需要调用解释器进行进一步的翻译。
==
系统每次翻译一块源代码块,简单翻译方案
动态翻译单元块basic bloack有不同于传统的静态翻译单元块。静态的单元块只有一个代码入口一个代码出口,所有的静态单元块都起于一个分支指令,并终结于下一个分支指令之前。动态单元块的生成取决于实际发生的控制流,开始于条件分支指令,结束于下一个条件分支指令。全部过程如下:
第一,装载源二进制码于内存中;二,em开始调用解释器翻译源二进制码;三,解释器动态生成翻译代码块并且将翻译代码块置于code cash中,同时在映射表中设置对应的spc和tpc;四,当遇到条件分支或者条件跳转指令时,解释器便完成一个动态单元块的翻译;五,em根据源二进制码的控制流进行执行,如果下一个指令已经翻译过,则执行该指令。如未翻译,则生成下一个动态单元块。一个值得注意的情况是,如果跳转指令是跳转到一个已翻译过的中间位置,则需要将此块分解为两个单元块。
相关文章推荐
- 动态二进制代码翻译[1][VM Versatile platforms for systems and process]
- Font Configuration and Customization for Open Source Systems - 白皮书翻译和深入
- Creating INF Files for Multiple Platforms and Operating Systems
- "Programming Microsoft DirectShow for Digital Video and Television"中简介的翻译
- Methodologies and Software Engineering for Agent Systems: The Agent-Oriented Software Engineering Ha
- 论文翻译(1)FaceNet: A Unified Embedding for Face Recognition and Clustering
- Institute for robotics and process control
- Interference Analysis and Reduction for Wireless Systems
- Fixing Pathfinding Once and For All (个人翻译)
- API Guides/App Components/Process and Thread翻译
- 翻译 | Keras : Deep Learning library for Tensorflow and Theano
- Internet Security: A Jumpstart for Systems Administrators and IT Managers
- (翻译)Shaders for Game Programming and Artists--Chapter 1
- [翻译]SQL Server And XML: FOR XML EXPLICIT - Part 1
- "Programming Microsoft DirectShow for Digital Video and Television"中简介的翻译收
- 分布式事务2PC论文翻译(Concurrency Control and Recovery in Database Systems )
- Custom Sublime Text Build Systems For Popular Tools And Languages
- 对Can We MakeOperating SystemsReliable and Secure 的翻译
- 翻译:ORB-SLAM: a Versatile and Accurate Monocular SLAM System
- 刘兵《Entity and aspect extraction for opinion mining 》翻译笔记