摘要: 一 、引子 过去两讲,我为你讲解了通过增加资源、停顿等待以及主动转发数据的方式,来解决结构冒险和数据冒险问题。对于结构冒险,由于限制来自于同一时钟周期不同的指令,要访问相同的硬件资源,解决方案是增加资源。对于数据冒险,由于限制来自于数据之间的各种依赖,我们可以提前把数据转发到下一个指令。 但是即便综 阅读全文
posted @ 2019-08-30 18:58 活的潇洒80 阅读(916) 评论(0) 推荐(0) 编辑
摘要: 一、引子 1、流水线设计需要解决的三大冒险 过去两讲,我为你讲解了流水线设计CPU所需要的基本概念。接下来,我们一起来看看,要想通过流水线设计来提升CPU的吞吐率,我们需要冒哪些风险。 任何一本讲解CPU的流水线设计的教科书,都会提到流水线设计需要解决的三大冒险,分别是 结构冒险(Structura 阅读全文
posted @ 2019-08-30 18:09 活的潇洒80 阅读(2382) 评论(0) 推荐(1) 编辑
摘要: 一、引子 1、现代桌面CPU的最后一场大战 上一讲,我给你初步介绍了CPU的流水线技术。乍看起来,流水线技术是一个提升性能的灵丹妙药。它通过把一条指令的操作切分成更细的多个步骤,可以避免CPU“浪费”。每一个细分的流水线步骤都很简单,所以我们的单个时钟周期的时间就可以设得更短。这也变相地让CPU的主 阅读全文
posted @ 2019-08-30 18:09 活的潇洒80 阅读(792) 评论(0) 推荐(0) 编辑
摘要: 一、引子 前面我们用了三讲,用一个个的电路组合,制作出了一个完整功能的CPU。这里面一下子给你引入了三个“周期”的概念,分别是指令周期、机器周期(或者CPU周期)以及时钟周期。 你可能会有点摸不着头脑了,为什么小小一个CPU,有那么多的周期(Cycle)呢?我们在专栏一开始,不是把CPU的性能定义得 阅读全文
posted @ 2019-08-30 18:09 活的潇洒80 阅读(1191) 评论(0) 推荐(0) 编辑