可以增加一个寄存器来确定时钟速率?
-
22-07-2019 - |
题
可以递增(在循环中)的寄存器的使用来确定(有效)时钟速率? 我自然认为是可以的,但我评论说CPU的可植入超标量技术,使这种计算没用的。 我还被告知寄存器上CPU递增可以在不到一个时钟周期来完成。
是这样吗?
解决方案
没有,不可靠。 ,它需要增加一个寄存器的周期数可以在不同类型的处理器之间有所不同,您还必须包括循环的开销。在任何现代的操作系统,你将不得不面对抢占式多任务,所以你不知道的进程调度程序是怎样的CPU时间去给你。根据其他进程多少工作做,你可能会得到很多或很少的CPU时间,这样你就可以执行每秒寄存器递增的数量是高度可变的。
此外,在多核环境中,时钟可能不以相同的速率打勾。如果您被任务调度出于某种原因或其它内核之间移动时,你的时钟速率可能会变幻莫测。
有越来越时钟速率的更好的方法,如要求它的操作系统(当然,如何做到这一点与操作系统而异)。
其他提示
不,你不能用它来确定时钟速率。有不能保证一个寄存器可以恰好一次每个时钟递增。
什么CPU,你定位?有确定的时钟速率,至少在x86的更明确的方式。
不隶属于 StackOverflow