繁体   English   中英

带有流水线的 cpu 中的 CPI

[英]CPI in cpu's with pipelining

考虑在 CPU 中,添加指令的 CPI 为 0.5(它通过流水线在一个周期内执行两条添加指令)。 因此,当我们要计算 10 条加法指令的 CPU 时间时,我们乘以 10 * 0.5 * 2(时钟周期时间为 2 纳秒),一切正常。

但是当根据公式只有一个加法指令时,我们乘以 1 * 0.5 * 2 这是不正确的。 因为执行加法指令至少需要一个时钟周期。

考虑在CPU中,add指令的CPI是0.5(它通过流水线在一个周期内执行两条add指令)

但是当根据公式只有一个加法指令时,我们乘以 1 * 0.5 * 2 这是不正确的。

您混淆了延迟和吞吐量。

吞吐量描述了在给定时间内可以执行的操作数。 您使用的 CPI 是吞吐量。 因此,如果您说 CPI=0.5,则表示每个周期可以提供 2 个添加结果。

延迟是对指令(或操作、内存读取等)开始和结束之间时间的度量。 它与吞吐量无关,并与处理器中的级数相关。

所以如果你看单个add指令,它的持续时间显然不是半个周期。 最近奔腾的流水线在 14 到 19 个周期之间(但旧版本的流水线长达两倍)。 单个添加的持续时间约为 15 个周期(最多)。

因此,当我们要计算 10 条加法指令的 CPU 时间时,我们乘以 10 * 0.5 * 2(时钟周期时间为 2 纳秒),一切正常。

否。其他因素可能会产生影响,如依赖性以及与其他指令的一般交互。 CPI 被引入作为衡量完整程序中每条指令的平均周期数的方法。 当前计算机的复杂性使得在不执行程序的情况下几乎不可能准确估计 CPI。 因此,为了得到它,我们对程序进行计时,然后除以执行指令的数量。 这将考虑内存访问、依赖性、分支错误预测等,这对于想要了解其程序速度的最终用户来说是有意义的。 您的估计是理论上的,在现实生活中从未发生过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM