如题,谢谢
对于 issue 宽度大于 1, 且流水线很深的 CPU, 这个问题是没有多少意义的。
当然, 你可以取平均值。
还要把 cache 也考虑进去。
没有办法精确测试。
指令的长度不一样,而且其周期也不一样。如果用最短指令的话还好。取得pc值,定时器置一定的tick(滴答)值,计数中断后,再取得pc值。(后pc-前pc)/指令长度/tick数=result
[ 本帖最后由 sep 于 2007-12-12 13:01 编辑 ]
最理想的情况下是一个周期一个指令,但是情况很多,不可能精确的!!!
原帖由 jamesr 于 2007-12-22 19:27 发表 正是如此,才说尽量不要使用内存,cache miss的影响可以忽略。
原帖由 jamesr 于 2007-12-22 19:27 发表
正是如此,才说尽量不要使用内存,cache miss的影响可以忽略。
指令本身总该要有地方放吧?除非你的测试程序真的很小,而且系统的负载也非常轻。。。
就目前来说,4发射结构,平均IPC在2左右就很好。对于x86,最新的Core2,理论最大发射数6~8,IPC应该能到3 ???安腾处理器非常特别,最大发射数10以上没问题,IPC应该可以到4~6
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(7)
对于 issue 宽度大于 1, 且流水线很深的 CPU, 这个问题是没有多少意义的。
当然, 你可以取平均值。
还要把 cache 也考虑进去。
没有办法精确测试。
指令的长度不一样,而且其周期也不一样。如果用最短指令的话还好。
取得pc值,定时器置一定的tick(滴答)值,计数中断后,再取得pc值。(后pc-前pc)/指令长度/tick数=result
[ 本帖最后由 sep 于 2007-12-12 13:01 编辑 ]
最理想的情况下是一个周期一个指令,但是情况很多,不可能精确的!!!
指令本身总该要有地方放吧?除非你的测试程序真的很小,而且系统的负载也非常轻。。。
就目前来说,4发射结构,平均IPC在2左右就很好。
对于x86,最新的Core2,理论最大发射数6~8,IPC应该能到3 ???
安腾处理器非常特别,最大发射数10以上没问题,IPC应该可以到4~6