问题标签 [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.
arm - 错误:未声明“HZ”(在此函数中首次使用)
我正在尝试设置Dhrystone
出现以下错误的位置。
错误:未声明“HZ”(在此函数中首次使用)
我不知道 HZ 变量的意义。我可以通过注释包含 HZ 变量的代码来直接编译代码。但这是否是正确的做法。请在这方面帮助我。
arm - 获取 dhrystone 可执行文件后如何运行 dhrystone
我使用以下命令 gcc dhrystone_1.c dhrystone_2.c -DHZ=60 -o dhrystone 编译了 dhrystone 并获得了可执行文件。现在我如何在我的代码上使用可执行文件(dhrystone)来计算消耗的 cpu 周期数。请告诉我。
c - 内存大小加载和存储惩罚分析?
使用 ocount 对代码进行分析显示更多的带有惩罚的周期和更少的带有惩罚的周期。我试图理解为什么惩罚标志打开时会有更多的惩罚?
bash - 我们可以确定地为命令计时吗?
我们知道,在 bash 中,time foo
会告诉我们命令 foo 需要多长时间才能执行。但是存在如此多的可变性,这取决于不相关的因素,包括当时机器上运行的其他内容。似乎应该有一些确定性的方法来测量程序运行需要多长时间。处理器周期数,也许?流水线级数?
有没有办法做到这一点,或者如果没有,至少可以获得更有意义的时间测量?
pipeline - 流水线门 2015
考虑下面给出的机器指令序列:
在上述序列中,R0
toR8
是通用寄存器。在所示指令中,第一个寄存器存储对第二个和第三个寄存器执行的操作的结果。该指令序列将在具有以下 4 个阶段的流水线指令处理器中执行:
- 指令获取和解码(IF),
- 操作数获取 (OF),
- 执行操作 (PO) 和
- 写回结果 (WB)。
对于任何指令IF
,OF
和WB
阶段每个都需要 1 个时钟周期。该PO
阶段需要 1 个时钟周期用于ADD
或SUB
指令,3 个时钟周期用于MUL
指令,5 个时钟周期用于DIV
指令。流水线处理器使用从 PO 阶段到 OF 阶段的操作数转发。执行上述指令序列所用的时钟周期数为
由于它明确给出了从 PO 到 OF 阶段应该使用操作数转发,所以上面的答案应该是 15 个时钟周期。
但在许多地方,答案是 13 个时钟周期。当我们使用从 PO 到 PO 的操作数转发时,将会有 13 个答案。
我的答案:
很多地方给出的答案:
谁能告诉哪个答案是正确的?
assembly - 循环计数和指令数,MSP430 上的汇编编程
我有一个为 MSP430 编写的汇编程序,它执行以下操作:
- 加载到内存中 - 纯文本
- 加载到内存中 - 密钥
- 使用密钥加密纯文本
现在我想计算仅执行加密所需的周期数和指令数。我该怎么办?加密算法非常复杂,不是我可以从草稿纸背面计算出循环数的算法。
如果需要,我可以提供任何其他信息。提前致谢。
assembly - 计算 Intel 8086 的时钟周期
我已经在 Intel 8086 仿真器上工作了大约一个月。我决定开始计算周期以使仿真更准确,并与 PIT 正确同步。
每条指令使用的时钟周期在英特尔的用户手册中有详细说明,但我想知道它们是如何计算的。例如,我为XCHG mem8,reg8
指令推导出了以下步骤 - 根据手册,这需要 17 个时钟周期:
- 解码指令的第二个字节:+1 个周期;
- 将第一个操作数从内存转移到临时位置:+7 个周期;
- 将第二个操作数从寄存器转移到内存目的地:+8 个周期;
- 将第一个操作数从临时位置转移到寄存器目标:+1 个周期。
但我可能完全错了,因为我的推理似乎不适用于所有说明。例如,我无法理解为什么PUSH reg
指令需要 11 个时钟周期,而POP reg
指令只需要 8 个时钟周期。
那么,你能告诉我每条指令是如何花费时钟周期的,或者更确切地说是一种理解这些数字来自哪里的通用方法吗?
谢谢你。
linux - Python:计算数据链路层上两次事件之间的 CPU 周期
有 2 个主机:本地和远程。我想做以下事情:
从 L2(数据链路层)RTS 帧上的本地机器发送,并检查当时的 CPU 周期(时刻 A)。框架正在远程机器上接收。远程发送应答。在本地,我得到了这个答案(CTS-frame)。再次检查 CPU 周期(时刻 B)。
我需要计算 A 和 B 之间的 CPU 周期:Ncycles = BA(这样想)。
仅在本地,不使用远程主机。CPU本地机器有MIPS架构。
我试图通过 Scapy 做到这一点,但不明白如何。
- 我可以通过 Python-scipt 在本地机器上发送 RTS 帧并接收 CTS 帧吗?
- 是否可以计算这些事件之间的 CPU 周期?
- 如果在 Python 上无法实现,我应该使用什么?
提前致谢。
c++ - 一个进程如何能够获得许多 CPU 周期?
我注意到 VLC 媒体播放器在执行从 MP4 到 MP3 的文件转换时有时会占用高达 98% 的 CPU。我的理解是操作系统试图平衡每个进程的时间,所以这引起了我的注意。我有一种感觉,像磁盘碎片整理程序和防病毒这样的程序也可能需要如此大的处理器周期。它是如何在代码(C,C++)中实现的?
if-statement - 嵌套 If 条件和逻辑 AND 操作
//从 CPU 周期高于 1 或低于 1 的意义上来说,哪个更好?哪个需要更多的 CPU 周期?
哪个需要更多的 CPU 周期?