teawater 发表于 2005-3-23 16:18:35

skyeye动态翻译完整测试版本

因为这个没登陆用户不能下载附件 所以到
http://www.linuxforum.net/forum/showthreaded.php?Cat=&Board=program&Number=548593
去查看


这次修改是以skyeye 0.8.0 为基础进行修改的
解码执行部分换成了我写的代码 这些代码在思想上参考了qemu的思想 当然在某些地方不同(比如在QEMU作者不清楚实际实现的地方 作出了实现)
跟上次的代码不同 这次支持了FIQ和IRQ 不过没像原来考虑的用信号来驱动 而且使用了开头调用的方式 计划是以后只有TIMER用调用办法驱动 串口等其他东西用IO信号来作 这样效率能更好点
我的测试是uclinux kernel 2.4.24跑到了shell完全起来 我的编译环境是rh 9.0 gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5) 如果编译跑不起来很可能是编译器优化的原因上一个版本我在一个debian上编译执行就出了问题 看了一下发现就是ldm stm那里代码优化造成的问题(这次应该好一点 因为 LDM和STM进行了重写)
现在还是不支持有MMU的MACH以及需要协处理器的MACH

说下我没完成的部分:
1.irq的发生和处理 除了TIMER以外的设备还考虑修改(可能需要每个MACH都改)
2.协处理器指令 还有一些别的指令
3.单个指令最大翻译后指令长度的计算
等等。。。

这次能完全跑了 欢迎大家拿程序跑看看效率如何 如果跑出了问题希望能把情况发给我 谢谢!

测试方法介绍:
将tb.h文件中#define TEA_DEBUG行注释掉
找一个0.8.0 将这些文件解压缩拷贝到sim/arm目录中 然后config make
然后配置一个at91的典型uc环境(我只在这个环境测试过 而且这个环境不需要协处理器指令)然后找一个at91的kernel 一跑 OK 应该就能看见跑到calibrate_delay
如果跑不到没关系 把你的编译执行环境 已经运行后反映的问题发给我 这样就发现了一个bug(-_-!!!大汗) 呵呵

chyyuu 发表于 2005-3-23 16:52:57

good!!!!

halfyear 发表于 2005-3-23 17:13:14

牛!

teawater 发表于 2005-3-23 22:08:19

对执行出错的用户~~~
有一个临时解决的办法(我现在正在开始找各版本的GCC RPM装 争取尽快把因为优化问题造成的出错问题解决掉)
将编译中的优化选项-O2去掉 应该就能跑过去了

chyyuu 发表于 2005-3-24 17:39:02

我在debian 中gcc-3.4编译执行通过,gcc-3.3.5编译通过,执行没过。

chyyuu 发表于 2005-3-25 09:21:32

根据尹文超的初步测试,skyeye with DBCT(dynamic Binary Code Translation)is faster than old skyeye!


-------------------------------
测试了一个小程序,做100*100*1000次循环,

skyeye       耗时 25~25 秒

skyeye+qemu耗时 15~16 秒

   时间是对着手表测试的,不是很精确,但是已经能看出效果了.

   明天我准备下载QEMU网站上提供的专门用于测试的程序包, 看看skyeye+qemu的综合表现.

   为了精确计时,可以向特殊的内存或I/O地址进行写操作,由skyeye取得一个相对时间,
   不知道是否有更好的办法?
-------------------------------

teawater 发表于 2005-3-25 15:03:31

才提高了这么点 经过修改应该还有提升空间

chyyuu 发表于 2005-3-25 16:37:55

应该有很大的空间,目前的测试还不够精确,且skyeye本身还有很多瓶颈。
有时间会进一步分析skyeye的瓶颈。

teawater 发表于 2005-3-26 19:01:46

3.3我已经解决了
3.4把优化打开以后出现的问题也不少 GDB本身的代码都有问题根本编译不过去 我光用3.4编译sim/arm目录中的代码 老样子 优化不开没问题 优化一开问题不少 正在解决

teawater 发表于 2005-3-28 10:12:29

skyeye-0.8.0with DBCT 20050327

因为这个没登陆用户不能下载附件 所以到
http://www.linuxforum.net/forum/showthreaded.php?Cat=&Board=program&Number=549394
去查看附件

修改了不某些版本gcc上编译后不能正常使用的bug 其中condition的实现作了点小变化
编译测试可用gcc版本:
gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
gcc version 3.3.5 (Debian 1:3.3.5-9)
gcc version 3.4.4 20050305 (prerelease) (Debian 3.4.3-10) (编译上有点麻烦 因为skyeye-0.8.0原来一部分代码有问题 无法用3.4编译 所以只能用3.4编译sim/arm目录下的代码)

尝试了一下用gcc-2.95编译 发现一些基本上解决很困难的实现问题 基本上考虑放弃对gcc 3.0以前版本的支持

chyyuu 发表于 2005-4-1 17:39:29

尹文超已经把teawater的最新改动加入到skyeye-0.9.0, 并推出了融合了teawater的dbct的skyeye-0.9.2!
teawater看看,是否有误?

teawater 发表于 2005-4-2 15:49:51

好 我DOWN一个看看 正好我也决定跟新的合一下 以后我就以这个新的为基础弄了

bloves 发表于 2005-5-4 20:04:22

Re: skyeye动态翻译完整测试版本

因为这个没登陆用户不能下载附件 所以到
http://www.linuxforum.net/forum/showthreaded.php?Cat=&Board=program&Number=548593
去查看
这次修改是以skyeye 0.8.0 为基础进行修改的
解码执行部分换成了我写的代码 这些代码在思想上参考了qemu的思想 当然在某些地方不同(比如在QEMU作者不清楚实际实现的地方 作出了实现)
跟上次的代码不同 这次支持了FIQ和IRQ 不过没像原来考虑的用信号来驱动 而且使用了开头调用的方式 计划是以后只有TIMER用调用办法驱动 串口等其他东西用IO信号来作 这样效率能更好点

<<<您好,想问您几个问题,希望解答
*这里您说的C<动态翻译>是否和java目前说的C<动态编译>是一个概念呢?
*我怎么能得到一些关于您说的C<动态编译>的技术资料呢?因为我对C<动态翻译>也比较赶兴趣,请指点。谢谢

teawater 发表于 2005-5-4 20:10:22

这不是对C的动态翻译 当然是针对ARM字节码 JAVA的动态翻译我没接触过 个人觉得这种思想都是类似的吧
动态翻译的资料 你可以看看skyeye-0.9.0或者更新版本对DBCT的实现或者QEMU对动态翻译的实现
SKYEYE支持的HOST和TARGET少 所以可能看起来更简单点。。。

bloves 发表于 2005-5-5 17:44:11

谢谢,我知道是针对ARM字节码。
我下载了skyeye,但文件太多了,我没有找到哪一些和我需要了解的动态翻译是相关的,作者是否能提供一些信息呢?
谢谢。
页: [1] 2
查看完整版本: skyeye动态翻译完整测试版本