Timer ARM926EJ-S循环计数器

Timer ARM926EJ-S循环计数器,timer,embedded,arm,real-time-clock,Timer,Embedded,Arm,Real Time Clock,我正在使用ARM926EJ-S,试图弄清楚ARM是否能给CPU的周期计数器(例如,一个可读寄存器)。我猜a#表示CPU通电后的循环数 在我的系统中,我只有低分辨率的外部RTC/定时器。我想能够实现一个高分辨率定时器 非常感谢 arm-9没有配备Cortex系列中包含的PMU(性能监控单元)。描述了PMU。linux内核支持使用PMU进行性能基准测试。有关perf工具集的文档,请参阅 对arm-9有点不确定,需要进一步挖掘…arm-9没有配备Cortex系列中包含的PMU(性能监控单元)。描述了P

我正在使用ARM926EJ-S,试图弄清楚ARM是否能给CPU的周期计数器(例如,一个可读寄存器)。我猜a#表示CPU通电后的循环数

在我的系统中,我只有低分辨率的外部RTC/定时器。我想能够实现一个高分辨率定时器


非常感谢

arm-9没有配备Cortex系列中包含的PMU(性能监控单元)。描述了PMU。linux内核支持使用PMU进行性能基准测试。有关
perf
工具集的文档,请参阅


对arm-9有点不确定,需要进一步挖掘…

arm-9没有配备Cortex系列中包含的PMU(性能监控单元)。描述了PMU。linux内核支持使用PMU进行性能基准测试。有关
perf
工具集的文档,请参阅


对arm-9有点不确定,需要进一步挖掘…

您可能只有两个选择:

  • 使用指令周期精确模拟器;这里的问题是,有效地模拟外围设备和外部刺激可能很复杂或不可能

  • 使用外围硬件定时器。在大多数情况下,您将无法以ARM9的典型核心时钟速率运行这样的计时器,并且在计时周期的任意一侧都会有一个超限的计时器,但它可以用于在更大或更长的代码运行部分上提供执行时间,这可能比循环计数更实用


虽然周期计数可能在某种程度上可扩展到不同的时钟速率,但它仍然受到内存和I/O等待状态的限制,因此,除了在微观分析层面之外,它可能不像性能指标那样有用,而更大的性能提升通常是通过更开阔的视野来实现的。

您可能只有两个选择:

  • 使用指令周期精确模拟器;这里的问题是,有效地模拟外围设备和外部刺激可能很复杂或不可能

  • 使用外围硬件定时器。在大多数情况下,您将无法以ARM9的典型核心时钟速率运行这样的计时器,并且在计时周期的任意一侧都会有一个超限的计时器,但它可以用于在更大或更长的代码运行部分上提供执行时间,这可能比循环计数更实用


虽然周期计数可能在某种程度上可扩展到不同的时钟速率,但它仍然受到内存和I/O等待状态的限制,因此除了在微观分析层面之外,它可能没有作为性能指标看起来那么有用,而更大的性能增益通常是通过更广泛的视角来实现的。

感谢您的快速回答!。。。但是您确定ARM926EJ-S存在PMU吗?。。。我知道它存在于Cortex/ARM11?..@Eyal 926没有PMU,正如我说的,我需要进一步挖掘:-)哦。。。没有注意到最后一个喜欢那里。。。很抱歉所以我的问题还没有解决,我想…@Eyal:不是,我会说它已经结束了。如果答案是“不”,再等也不会是“是”。弗雷德里克提出“再挖一点”,以检查是否有办法在缺少PMU的情况下获得计时器信息。。。你认为我得到我的答案了吗?…谢谢你的快速回答!。。。但是您确定ARM926EJ-S存在PMU吗?。。。我知道它存在于Cortex/ARM11?..@Eyal 926没有PMU,正如我说的,我需要进一步挖掘:-)哦。。。没有注意到最后一个喜欢那里。。。很抱歉所以我的问题还没有解决,我想…@Eyal:不是,我会说它已经结束了。如果答案是“不”,再等也不会是“是”。弗雷德里克提出“再挖一点”,以检查是否有办法在缺少PMU的情况下获得计时器信息。。。你认为我得到我的答案了吗?…关于“#这将表示CPU通电后的周期数”,如果这样的寄存器是32位,处理器速度是200MHz,那么在通电后,计数器将持续21秒多一点,然后重新运行。如果这是您真正想要的,那么通电后的时间不能有效地用指令周期来衡量。ARM926可能只有能够以总线速度运行的计时器。关于“这将表示CPU通电后的周期数”,如果这样的寄存器为32位,处理器速度为200MHz,您的计数器在通电后将持续21秒多一点,然后再重新启动。如果这是您真正想要的,则开机后的时间不能有效地用指令周期来衡量。ARM926可能只有能够以总线速度运行的计时器。非常感谢!。。。我想我没有“立即”的解决办法。。。但是我会考虑你的建议!!!非常感谢你!。。。我想我没有“立即”的解决办法。。。但是我会考虑你的建议!!!