Performance 计算每个指令的周期

Performance 计算每个指令的周期,performance,assembly,cpu-architecture,Performance,Assembly,Cpu Architecture,据我所知,要计算CPI,它是指令类型的百分比乘以循环数,对吗?机器类型是否包含此计算的任何部分 我有一个问题,问我是否应该建议更改 机器1:在2.5GHz机器上,40%R-5循环,30%lw-6循环,15%sw-6循环,15%beq 3循环 机器2:在2.7GHz机器上,40%R-5循环,30%lw-6循环,15%sw-6循环,15%beq 4循环 根据我的计算,机器1的CPI为5.15,而机器2的CPI为5.3。忽略机器的GHz并说更改不是一个好主意,或者我必须将机器考虑在内,这样可以吗?我认

据我所知,要计算CPI,它是指令类型的百分比乘以循环数,对吗?机器类型是否包含此计算的任何部分

我有一个问题,问我是否应该建议更改

机器1:在2.5GHz机器上,40%R-5循环,30%lw-6循环,15%sw-6循环,15%beq 3循环

机器2:在2.7GHz机器上,40%R-5循环,30%lw-6循环,15%sw-6循环,15%beq 4循环


根据我的计算,机器1的CPI为5.15,而机器2的CPI为5.3。忽略机器的GHz并说更改不是一个好主意,或者我必须将机器考虑在内,这样可以吗?

我认为重点是评估设计更改,使指令占用更多时钟,但允许您提高时钟频率。(也就是说,倾向于像奔腾4这样的速度恶魔设计,而不是像苹果A7/A8 ARM内核那样的brainiac。)

因此,您需要计算每秒指令数,以查看哪一条指令能在相同的实时量下完成更多的工作。
(时钟/秒)/(时钟/秒)=insn/秒
,从单元中取消
时钟

你的消费物价指数计算看起来还可以;我没有检查它,但是是的,它是根据指令组合的周期加权平均值


这些数字显然是超级简化的;任何值得在2.5GHz下构建的CPU都会有某种分支预测,因此分支的成本不仅仅是3或4个指令泡泡。平均每个指令需要5个周期是可怜的。(大多数流水线设计的目标是每个时钟至少有一条指令。)

缓存和超标量CPU也会导致指令之间的复杂交互,这取决于它们是否依赖于早期的结果


但这有点类似于如果考虑将L1d缓存负载使用延迟增加1个周期(例如),如果这样可以使其脱离关键路径,并让您提高时钟频率,您可能会做的事情。反之亦然,以降低频率为代价,收紧延迟或减少某些东西上的管道级数量。

每条指令的周期数是一个周期数。就平均值而言,ghz并不重要。但是,我们可以从你们的数字中看出,一条指令是多个时钟,但处理器的速度不同

因此,虽然在速度更快的处理器上执行相同的任务需要更多的周期,但处理器的速度确实弥补了这一点,因此很明显,这是一个关于处理器速度是否考虑了额外时钟的问题

5.15周期/指令/2.5(千兆)周期/秒,周期抵消你得到的 2.06秒/(千兆)指令或(纳米)秒/指令

5.30/2.7=1.96296(纳米)秒/指令

速度越快,花费的时间就越少,因此运行程序的速度就越快

另一种方法是检查数学

对于较慢机器上的100个时钟周期,其中15%为beq。所以100个时钟中有15个,也就是5个beq指令。相同的5条beq指令在速度较快的机器上占用20个时钟,因此速度较快的机器上相同的指令总共占用105个时钟

在2.5ghz时为100个周期,在2.7ghz时为105个周期

我们需要足够的时间

hz是循环/秒,我们希望在顶部显示秒 所以我们想要

循环/(循环/秒)使循环取消,并使秒位于顶部

1/2.5=0.400(400皮秒) 1/2.7=0.370

0.400*100=40.00时间单位 0.370*105=38.85时间单位

因此,尽管需要5个以上的周期,处理器的速度差异足够快,可以进行补偿

2.7/2.5=1.08
105/100=1.05

所以2.5*1.05=2.625,所以2.625ghz或更快的处理器运行该程序的速度更快

那么,更换电脑的规则是什么呢?是不是把更少的时间定义为更换电脑的理由?更好的定义是什么?耗电量越大,耗电速度越快,耗电时间可能越短,但耗电量可能不是线性的,因此尽管耗电时间较短,但耗电量可能会更大。我假设这个问题没有那么详细,这意味着它是模糊的,这意味着它本身就是一个写得很差的问题,所以它会转到教科书或讲座定义为另一个处理器更改阈值的地方

免责声明:如果你在家庭作业/考试中漏掉了这个问题,不要怪我


在这样的学术实践之外,现实世界充满了流水线处理器(不是所有的,但大多数编写程序的人都是为其编写程序的),基本上你不能按照每种指令类型的时钟周期来计算数字,因为有一大堆因素。让你们明白,这是一个很好的练习,但在现实世界的处理器上尝试这种特定的练习是困难和危险的。危险的是,尽管你努力工作,但你可能会错误地衡量某些东西,并得出错误的结论,从而提出不好的建议。同时,有一个非常现实的情况是,更快的ghz确实提高了部分执行率,但另一部分会受到影响,这是净收益还是净损失。或者,一个新处理器设计的速度更快或更慢,其性能可能比旧处理器更好,但并非所有的功能都会更好,这是一个折衷,然后我们进入“更好”的领域意味着。

每个指令都有自己的循环,如CPU白皮书中所定义,我相信管道和1级/2级缓存也可能会干扰结果。换句话说,不同的机器和CPU可能会产生不同的结果。这似乎是一个家庭作业,为了学习基础知识,您可以假设您可以计算每条指令的周期。虽然现实情况是,您经常不能,并且它随代码和系统的不同而变化,但同一机器代码可以有多种不同的功能