我知道有五个阶段 -> IF、ID、EX、MEM、WB。并且时钟周期由最长的阶段决定。我不明白的是,当有一条指令未使用所有阶段时会发生什么,例如添加不需要 MEM 阶段的指令,并假设时钟周期为 200ps,所以它意味着对于使用所有阶段的指令,执行需要 1000ps。执行不使用 MEM stege 的指令是否需要同样的 1000ps(这意味着浪费了 200ps)?谢谢!
所以我得到了这个算法我需要计算它的时间复杂度
就像
for i=1 to n do
k=i
while (k<=n) do
FLIP(A[k])
k = k + i
Run Code Online (Sandbox Code Playgroud)
whereA是一个布尔数组,FLIP 原样翻转当前值。因此它是O(1).
现在我明白应该调用内部 while 循环
n/1+n/2+n/3+...+n/n
Run Code Online (Sandbox Code Playgroud)
如果我是对的,但是否有用于此类计算的公式?
这里很困惑