有人说处理器“太聪明”,所以你永远不知道执行某些指令序列需要多长时间。我认为你总是有MIN和MAX时间用于任何指令,并且可以使用MAX时间进行时间计算。
答案 0 :(得分:2)
简短的回答:它不可能是核心i7,它不是为硬实时而设计的
更长的版本:问题不是未知的执行时间,它不是为实时设计的整个处理器中断,例如在硬实时应用程序中你会使用大量的中断,因为轮询会给系统增加不必要的延迟但是x64有一个真正的原始中断处理系统,不仅由于巨大的上下文切换开销,isr的性能最好是缓慢的,但它缺少很多功能,如中断优先级,让你控制中断处理的细节
在核电站/飞机等控制系统中,你还需要考虑硬实时操作系统......在这些环境中,由于没有单一的中央控制器,微控制器要好得多系统,而是以网络(例如canbus)方式协同工作的小型系统网络
最后,即使(并且它是一个巨大的if)你成功为intel i7编写了一个硬实时操作系统,它的性能会如此之低以至于不会被使用
这就像用螺丝刀种植钉子一样可能会完成,但是有人有理由使用锤子......
答案 1 :(得分:0)
我特别不了解Core i7,但有一个“最坏情况执行时间”或WCET的概念。您可以获得可以为您估算的工具。我说“估计”是因为考虑到内存延迟,缓存行为,指令流水线等等,它很难解决。我没有使用这些工具,但我怀疑一个简单的保守近似将不得不假设大量的缓存未命中,分支未命中导致流水线停滞等等,这意味着WCET只是一小部分实际表现。