考虑一个多级计算机,其中所有级别都不同。每个级别的指令都是下面级别的指令的m倍;也就是说,一个级别的r指令可以执行m级r-1指令的工作,如果一级程序需要k秒运行,等效程序需要多长时间在2,3和4级,假设n级r指令是否需要解释单个r + 1指令?
这是我提出的解决方案。任何人都可以确认或评论吗?
这是我最终提出的解决方案。任何人都可以验证或评论吗?
Level (r) Level-1 Instructions (m) Time
4 m^3 t(q) ==(m^3q+n+nm+nm^2) (k/q)
3 m^2 t(q) =(m^2q+n+nm)(k/q)
2 m t(q) = (mq+n)(k/q)
1 1 t(q) = k
为了计算包含q级-1指令的给定程序的运行时间t(q),我们必须考虑每个级别r指令所代表的指数增加的1级指令数(显示为m ^( r-1))和执行程序的每一层的解释所需的额外数量的1级指令(显示为nm ^(r-1))。用于由较低级别解释的附加级别1指令也必须被添加到r> 2的最终等式中。最后,对于每个等式,我们可以通过乘以一个等级-1循环的执行时间所使用的等级1指令的总数来确定程序运行的秒数,由(k / q)计算。
免责声明:这是作业,作业已经交上。我根本无法得到这个问题的语义,我真的很想理解它。
答案 0 :(得分:1)
我认为你们这一切都太复杂了。问题陈述说,换句话说,每层的运行速度比上面的层快几倍。因此,第2层以1 / m的时间完成程序,第3层以1 / m * 1 / m完成,依此类推。所以最后的等式只是:
t(q)= k /(m ** q)
答案 1 :(得分:0)
这只是一个递归函数:
t(q, r) = q*k if r == 1
t(q, r) = q*t(m, r-1) + t(n, r-1)
现在解释:
This is obvious since it was stated in the question (I parameterized k as the elementary unit, k is the time for one level 1 instruction):
t(q, r) = q*k if r == 1
The amount of time it takes to execute a function with q r-1 instructions
t(q, r) =
q times the amount of the time it takes for m level r-1 instruction
q*t(m, r-1)
plus the time it takes for n level r-1 instructions
+ t(n, r-1)
答案 2 :(得分:0)
我不确定任务定义是否完整,因为如果是,我没有看到任何其他理智的方法来解决它而不是简化它。
所以这里有一些我认为的事情:
以下是这些先决条件的答案:
q=number of level one program instructions
t(q, r)=time necessary to execute q **level 1** instructions on level r comp
t(1, r)=time necessaty to execute one instruction on level r comp
t(1, 1)=time necessary to execute one instruction on level 1 comp
t(q, 1)/m^(r-1)=time to execute q **native** instructions on level r comp
t(q, 1)=k
t(1, 1)=k/q
t(q,r)=(time to interpret q non-native instructions/convert them to native) + (time to actually execute the code)
t(q,r)=t(qn, 1)/m^(r-1) + t(q, 1)/m^(r-1)
t(q,r)=(time to execute qn native instructions) + (time to execute q native instructions)
t(q,r)=nt(q, 1)/m^(r-1) + t(q, 1)/m^(r-1)
t(q,r)=(n+1)t(q, 1)/m^(r-1)
t(q,r)=(n+1)k/m^(r-1)
如果3个假设中的任何一个是错误的,你需要引入新的未知函数,因此答案将变成一个未知函数的方程式,这个方程式将是无用的,但比这个更无用。这个更漂亮:)
顺便说一句你需要查看你在大学的练习,看看如何解决类似的任务,以确保解决问题是正确的。
答案 3 :(得分:0)
问题只是说明如果它在1级需要k个单位的时间,那么k / m单位就会在第二级获得......