问题标签 [cpu-cycles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
126 浏览

arduino - 更高的时钟信号频率实际上意味着什么?

我有一个带有 ATmega328 处理器的 Arduino。它可以在 3.3V 下运行,在 5V 时净时钟信号频率约为 12 MHz 和 16 Mhz。

我将 IMU 连接到运行 AHRS 算法的 Arduino,将加速度计、陀螺仪和磁力计数据转换为方向数据。

在这种情况下,16 MHz 的更高频率实际上意味着什么?

AHRS 的计算速度是否会更快,从而获得更低的延迟?我可以更频繁地轮询传感器吗?我想更深入地了解我在这里所做的事情。

0 投票
1 回答
941 浏览

c - 如何计算空闲 CPU 周期?

我想计算空闲的 CPU 周期。我试图在互联网上找到这个问题的答案。但答案并不令人满意。我询问计算空闲 CPU 周期,但答案是 CPU 利用率/CPU 使用率。

请告诉我如何用c语言计算给定时间间隔的空闲CPU周期?我正在研究减少 CPU 能量的速度设置算法调度

在这个算法中,我遇到了我想用 c 计算的术语 idle_cycles。

0 投票
0 回答
905 浏览

ios - MCR 和 MRC 指令用法

在这里,我编写了代码来查找函数所占用的周期数,但是在第一个 MCR 指令时出现错误,任何人都可以建议我如何解决这个问题。这段代码是用 XCODE 编写并在 ios 上运行的。

0 投票
1 回答
197 浏览

cpu - 一个方法调用是否需要一个 CPU 周期?

假设我们有以下方法

调用此方法会消耗一个 cpu 周期吗?因为 1 GHz 中有 10 亿个周期。

0 投票
1 回答
3915 浏览

performance - Why do memory instructions take 4 cycles in ARM assembly?

Memory instructions such as ldr, str or b take 4 cycles each in ARM assembly.

Is it because each memory location is 4 bytes long?

0 投票
3 回答
1857 浏览

arduino - Arduino uno 中用于数字读取和计数脉冲的 CPU 周期

我正在尝试以时间量子计算HB100 微波传感器脉冲的数量。200ms

这是代码:

我需要知道数字读取周期。我正在将传感器的最后状态与当前状态进行比较,如果进行了更改(从低到高),则计数器会增加。但是,我的柜台总是0

  • 代码是否正确(if条件)?
  • 我需要一些延迟吗?
  • 可以计算这些脉冲吗?

这是微波传感器的逻辑分析仪输出:

在此处输入图像描述


编辑:如果我delay(1);之前添加,if那么计数器不再是 0。

0 投票
1 回答
396 浏览

z80 - 为什么在 Z80 上 ADD 是 4 个周期?

我使用这个 ALU 框图作为学习材料:http ://www.righto.com/2013/09/the-z-80-has-4-bit-alu-heres-how-it.html

我对电子产品不熟悉。我目前认为需要一个时钟周期来将数据从寄存器或锁存器移动到另一个寄存器或锁存器,最终通过逻辑门网。

所以这是我对和 ADD 发生的事情的理解:

  • 周期 1:将寄存器移动到内部锁存器
  • 周期 2:将低半字节内部锁存器移动到内部结果锁存器(通过 ALU)
  • 周期 3,并行:
    • 将高半字节内部锁存器移动到目标寄存器(通过 ALU)
    • 将内部结果锁存器移动到寄存器

我认为操作周期 3 是并行完成的,因为有两个 4 位总线(用于高半字节和低半字节)并且寄存器总线似乎是 8 位。

0 投票
1 回答
1325 浏览

c - 在 C 中使用“perf_event”计算 CPU 周期会产生与“perf”不同的值

我尝试通过一个简短的 C 代码片段来计算单个进程的 CPU 周期。MWE 是cpucycles.c

cpucycles.c(主要基于手册页示例

接下来,我编译它,设置 perf_event 访问权限,启动一个 CPU 使用率最高的进程,并通过perf我的cpucycles.

显然,对于我的 3 GHz CPU,只有“perf”中的“3072358388”CPU 周期是正确的。为什么我的“cpucycles”返回这么小的值?

0 投票
1 回答
48 浏览

processing-efficiency - 哪一个需要更少的 cpu 时钟周期来执行?毕达哥拉斯公式或“if”子句中整数之间的 16 个比较?

大概的答案就足够了。我想检查 2 个相同大小的矩形是否重叠 1) 现有代码检查一个矩形的所有 (x,y) 是否与另一个矩形的所有 (x,y) 一致。所以总共进行了 16 次比较 2)我的改进 - 计算每个矩形的左上角之间的距离并检查该距离是否小于矩形的对角线。

此外,任何讨论 CPU 时钟周期数/每次编码操作在 CPU 上执行一次所需的时间的书籍/材料都值得赞赏。

0 投票
1 回答
573 浏览

opcode - 了解 STM8 流水线

我试图了解 STM8 流水线,以便能够预测我的代码需要多少周期。

我有这个例子,我在每个 GPIO 引脚上切换 4 个周期。IFFloop在 4 字节边界 + 3 处对齐,引脚保持活动 5 个周期(即比它应该多一个)。我想知道为什么?

更多上下文:

  • bset/bres是4字节指令,nop1字节。
  • nop//指令每个需要 1bsetbres周期。
  • jra指令需要两个周期。我认为在第一个周期中,指令缓存被下一个 32 位值填充,即在这种情况下nop只有指令。第二个周期实际上只是 CPU 在解码下一条指令时被停止。

所以在循环中:

  1. bres清除引脚
  2. jra,管道刷新,nop获取
  3. nop解码,bset获取
  4. nop执行、bset解码、下一次nop获取
  5. bset执行设置引脚
  6. nop,bres
  7. nop
  8. nop,bres解码
  9. bres执行清除引脚

据此,该引脚应在 4 个周期内保持低电平,在 4 个周期内保持高电平,但在 5 个周期内保持高电平。

在任何其他对齐情况下,引脚按预期为低/高 4 个周期。

我认为,如果 PIN 在一个额外的周期内保持高电平,那一定意味着执行管道在bset指令之后停止(nop此后的 s 提供了足够的时间来确保bres稍后可以立即执行)。但根据我的理解nop(对于 6.)已经在 4 中获取。

知道如何解释这种行为吗?我在手册中找不到任何提示。