-
-
[求助]X86体系架构中的RDTSC(读取时间戳计数器)指令的问题!
-
发表于:
2008-2-12 20:27
6715
-
[求助]X86体系架构中的RDTSC(读取时间戳计数器)指令的问题!
X86体系架构中有一条指令rdtsc,用此指令可以计算程序中特定指令段的执行所用的CPU周期。
目前我只打算用其来测试一条存储器访问指令的周期,但我要非常精确的数值,目前困扰我的问题如下:
1. 根据CPU编程手册给出,RDTSC指令为非串行化指令,也就是说该指令可能和接下来要被测试运行时间的指令在各个细分步骤上是流水线运行的,我如何确定一条存储器访问指令从指令发射开始直到指令动作全部完成所经历的周期数?
2. 因为存储器访问需要几百个CPU周期,在这期间,运行RDTSC指令的线程会不会被操作系统切换,如果被切换,我认为想得到精准的周期数则完全不可能了。
3. 一条存储器访问指令,比如从内存地址为A的位置读取一个字节到寄存器的指令,它的执行时间可不可以用CPU频率,内存主频率和主板总线速率等这些系统参数计算出来啊!如果是测试一段程序可能会有误差,但我只要测试一条指令,这个有没有办法?
谢谢!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课