超标量处理器设计学习笔记(通俗易懂版)(一)总体设计思路和概念解释

1.影响处理器执行程序所需时间的因素主要有3个,total instructions(程序所包含的指令的总数量,总量越多,需要的时间越久),instructions per cycle(每个时钟周期能所执行的指令个数,简称IPC),cycle time(时钟频率),超标量处理器的设计就是提升IPC来缩短程序执行的时间。

2.超标量处理器的概念

(1)标量处理器:每个时钟周期最多执行一条指令,IPC<=1

(2)超标量处理器(superscalar):每个时钟周期可以执行多条指令,IPC可以>1,其中超标量处理器又分为顺序执行(in-order)和乱序执行(out-of-order)。(后面会对顺序执行和乱序执行进行详细解释)

2.标量处理器知识回顾

(1)计算机执行一条指令通常需要五个阶段

        ·取指令(fetch):使用PC寄存器里的值作为地址,从地址对应的指令存储器中取出指令,并且将取出的指令放到指令寄存器中。(如果各种存储器、寄存器之类的名字没概念很头大,可以先不用管这些,只需要知道存储器在CPU外围,速度较慢,寄存器在CPU内部,速度很快,重点放在理解这套操作的逻辑上)

        ·指令译码(decode):对指令进行解码,并且根据解码的值读取出寄存器得到源操作数。注: add r3,r2,r1//该指令的功能是将寄存器r1和r2里的值相加,结果送入r3,其中r1,r2就是源操作数。

        ·指令执行(execute):根据指令的类型完成计算(如加减乘除)

        ·访存(memory):将执行的结果写入到存储器(只对需要访问内存的指令起作用,其他指令在这个阶段不会做任何事情)

        ·写回(write back):将指令运算的结果写回到目的寄存器中。(为什么要写回,因为这一步运算得出的结果可能是下一步运算的源操作数)

(2)流水线技术

      上面提到的CPU执行一条指令需要5个步骤,假设每个步骤需要一个时钟周期的时间来完成(有些可能需要更多个时钟周期,此处以1时钟周期为例),则执行完一条指令做需要的时间为5个时钟周期。当前这条指令执行完(花费了5个时钟周期)之后,重新重复上面的步骤,再花费5时钟周期执行下一条指令,如此往复。这种执行方式有致命的缺点,例如当前执行的指令正在进行取指令阶段,那后面的译码、执行、访存、写回模块都必须等待,一直等待到执行到自己这一步才开始工作,工作完之后继续进入下一轮等待。这造成了极大的资源浪费。因此流水线技术应运而生,流水线技术就是将上面划分出来的五个模块各自独立运行,具体原理见下图。

由图中可以看出,在第5个时钟周期之后,五个模块全部同时开始进入工作,不再有长时间的空闲等待的现象,由原来每5个时钟周期执行完成一条指令提升为每个时钟周期执行完一条指令(上图中的第5个时钟周期之后)(假设前提是每个步骤都能在一个时钟周期内完成),极大的提高了各个模块资源的利用率。下图为经典五级流水线结构图:

前面假设的是每个步骤都能在一个时钟周期内完成,这种假设是为了方便阐述流水线的思想,但是这并不是实际情况,实际情况是每个步骤可能需要的时间不同,比如

在这种各个阶段所需要的时间不同的情况下,耗时最长的阶段决定了CPU的执行速度,及上图的流水线中执行一条指令的时常为11ns(可以思考一下为什么?)。

以上的设计并非是最好的设计,我们可以对这个流水线进行优化,优化方向有两个:1、为功耗优化  2、为性能优化

(1)为功耗优化,可以进行流水及合并,例如

将执行流水段和访存流水段合并,合并后执行一条指令的时长为15ns,相较于原先的11ns变慢了一点,但是却可以节省了硬件资源,降低了功耗。

(2)为性能优化,可以拆分流水线,例如

拆分流水线后缩短的指令执行的时间,但是流水级数的增加也会带来很多问题,会消耗更多的硬件资源,更大的功耗,更复杂的控制逻辑。

未完待续。。。。

超标处理器设计》讲述超标(SuperScalar)处理器设计,现代的高性能处理器都采用了超标结构,大至服务器和高性能PC的处理器,小至平板电脑和智能手机的处理器,无一例外。《超标处理器设计》以超标处理器的流水线为主线展开内容介绍。《超标处理器设计》主要内容包括超标处理器的背景知识、流水线、顺序执行和乱序执行两种方式的特点;Cache的一般性原理、提高Cache性能的方法以及超标处理器中的Cache,尤其是多端口的Cache;虚拟存储器的基础知识、页表、TLB和Cache加入流水线后的工作流程;分支预测的一般性原理、在超标处理器中使用分支预测时遇到的问题和解决方法以及如何在分支预测失败时对处理器的状态进行恢复;一般的RISC指令集体系的简单介绍;指令解码的过程,尤其是超标处理器中的指令解码;寄存器重命名的一般性原理、重命名的方式、超标处理器中使用寄存器重命名时遇到的问题和解决方法以及如何对寄存器重命名的过程实现状态恢复;指令的分发(Dispatch)和发射(Issue)、发射过程中的流水线、选择电路和唤醒电路的实现过程;处理器中使用的基本运算单元、旁路网络、Cluster结构以及如何对Load/Store指令的执行过程进行加速;重排序缓存(ROB)、处理器状态的管理以及超标处理器中对异常的处理过程;经典的Alpha21264处理器的介绍。在本书中使用了一些现实世界的超标处理器作为例子,以便于读者加深对超标处理器的理解和认识。 《超标处理器设计》可用作高等院校电子及计算机专业研究生和高年级本科生教材,也可供自学者阅读。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值