网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月22日
漏签
0
天
龙芯吧
关注:
25,069
贴子:
622,449
看贴
图片
吧主推荐
视频
游戏
1
2
下一页
尾页
119
回复贴,共
2
页
,跳到
页
确定
<<返回龙芯吧
>0< 加载中...
能不能静态地翻译x86软件为mips软件
只看楼主
收藏
回复
eulerzsd
参与
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
根据二者cpu指令架构的特点找到一种对应方法,实在不行上超算模拟X86cpu,运行X86软件,动态分析它的运行过程,翻译成mips,生成一个可以龙芯运行的该软件。
eulerzsd
参与
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个想法理论上可行不可行?
我又换昵称了。
小吧主
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我觉得难,
有很多地址(跳转地址)是没办法静态分析出来的。
我觉得楼主的这个想法可以用程序分析领域中的静态分析和动态分析来解释
我又换昵称了。
小吧主
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
还有,超算的单线程性能一般都还没有桌面强,所以这个模拟估计也很慢很慢
1983zhou1
吧主
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
能部分做到,不过全套应该很难吧,表示不了解,路过,帮水。
leehqsunny
技术
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
可以,并且早就有这种处理方式。就是虚拟机嘛
倾城雪
龙芯3B
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
版权啊,不是你做出来就能用设计版权的
lizheyang2012
龙芯3B
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
对付复杂指令会非常悲剧。
影子枫阁
参与
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼主的意思是: 翻译出一款软件 而不是一种运行方式!!别说行不行 就是可以的话 弄出来不得天天打官司啊。。。。
xxzx610
龙芯1A
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
没听懂
ving8341
龙芯1E
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
有那功夫 好好优化开源软件不更好
eulerzsd
参与
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
自己找的,可见龙芯是很努力的。
二进制翻译技术是实现跨指令系统兼容的重要手段。 二进制翻译技术在宿主机(host) 上用软件模拟出一个目标机/客户机(guest) 指令系统兼容的CPU 来, 从而在宿主机上执行客户机的二进制代码, 达到兼容的目的。 如在MIPS 计算机上模拟X86 指令系统, 从而实现与X86 兼容。 二进制翻译的最大问题是效率问题, 用软件模拟的CPU 比硬件直接实现的CPU 慢很多。 如在MIPS 计算机上使用二进制翻译的方法运行X86 二进制程序, 比起把该程序直接从源代码编译成MIPS 指令并在MIPS计算机上执行, 运行速度一般有数量级的差异。
通过硬件支持和软硬件协同可以有效提高二进制翻译的效率。 虽然不同的通用指令系统结构在功能上都是完备的, 可以通过指令组合实现各种复杂的功能, 但指令的具体定义不同, 翻译起来就会走弯路。 例如, X86 的每条运算指令都要产生EFLAG 标志位, 如果用MIPS 指令来模拟产生EFLAG 标志, 至少需要几十条指令, 如果在MIPS 中增加专门产生EFLAG 的指令, 则翻译起来就可以做到一一对应。 又如, 访存指令都需要进行虚实地址转换, 从X86 到MIPS 的二进制翻译中, 要先把X86 的虚地址转换成X86 的物理地址, 再把X86 的物理地址作为MIPS 的虚地址转换成MIPS 的物理地址,上述转换过程如果由软件实现, 需要十多条指令, 如果在MIPS 的TLB (translation lookahead buffer)中增加一些特定的支持, 就可以直接把X86 的虚地址翻译成MIPS 的物理地址, 彻底消除虚实地址转换的开销。
龙芯CPU 在兼容MIPS 指令系统的基础上通过MIPS 指令系统的UDI (user defined interface)进行扩充, 增加MIPS 中不具备但X86 和ARM 具备的核心功能, 形成龙芯指令系统LoongISA, 使得从X86 和ARM 的二进制到龙芯CPU 的二进制翻译更加方便。 通过软硬结合的二进制翻译, 在龙芯CPU 上流畅运行X86 和ARM 的主流系统及应用, 以弥补MIPS 架构软件生态的不足。 具体地说:(1) 在Linux 操作系统上进行从X86 到LoongISA 的系统级二进制翻译, 以运行MS Windows
eulerzsd
参与
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
系统及其应用。 (2) 在Linux 操作系统上进行从X86 到LoongISA 的应用级二进制翻译, 以运行基于Linux 的X86 应用。 虽然Linux 上的多数应用都可以从开源社区获得并编译到MIPS 环境下执行, 但有少数关键商业应用如Oracle 数据库没有开源版本, 需要建立基于Linux 的从X86 到LoongISA 的二进制翻译。 (3) 在Android 操作系统上进行从ARM 到LoongISA 的应用级二进制翻译, 以运行基于Android的ARM 二进制应用。 Android 系统支持MIPS 指令集, 且其多数应用是基于Dalvik 虚拟机的, 在MIPS 系统上运行没有障碍。 但有少量对性能要求较高的应用中插入了ARM 二进制码, 在MIPS 指令系统上无法直接运行, 因此需要建立从ARM 到LoongISA 的应用级二进制翻译。 龙芯CPU 与X86及ARM 兼容策略如图1 所示。
龙芯二进制翻译系统以LoongISA 指令集兼容不同形态的X86, ARM 指令集, 通过技术手段消除单一指令系统的壁垒, 使得MIPS, X86, ARM 等不同指令集的系统及应用软件能够融合到统一的LoongISA 平台上, 不加区别地运行。 作为中间层的二进制翻译器, 充分利用本地硬件支持最大化地提高模拟效率, 对上层应用软件提供目标指令集的虚拟运行环境。 不同二进制的应用软件与运行的硬件平台之间不再具有决定关系, 用于支持软件开发的编译器、汇编器, 以往被绑定在各自特定的CPU 之上, 现在都能为LoongISA 平台提供软件资源。 实验结果表明, 龙芯软硬结合的二进制翻译技术可以成数量级地提高从X86/ARM 到MIPS 的二进制翻译效率。
龙芯CPU 在兼容MIPS 指令系统的基础上进行扩充, 增加MIPS 中不具备但X86 和ARM 具备的、对二进制翻译影响很大的核心功能, 形成龙芯指令系统LoongISA. 在此基础上, 通过软硬结合的二进制翻译, 在龙芯CPU 上运行X86 和ARM 的主流系统及应用, 以弥补MIPS 架构软件生态的不足。 实验结果表明, 通过软硬件协同优化, 龙芯指令系统融合技术能够消除指令系统之间的壁垒, 使得MIPS, X86, ARM 等不同指令集的软件能够融合到统一的LoongISA 平台上, 不加区
不理look
龙芯2H
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
东西做出来,用的人多了,软件就会有人做了,本来软件商都有源码的,调试下就可以迁移了,用户才是关键!送一亿龙芯电脑,立马有软件公司做龙芯软件。
狼狼de98
龙芯2F
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
表示,据说龙芯方案有意向兼容arm指令集
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示