第四章 处理器体系结构
1基本知识:
(1)处理器:执行一系列指令完成相应功能
(2)指令体系结构:处理器支持的指令和指令的字节级编码
(3)指令集在机器型号上有着一定要求(不同型号相互兼容)
(4)通过处理多条指令的不同部分(流水线)提高性能
2定义Y86体系结构
(1)过程:定义指令集(对操作及位长定义),寄存器标识符定义,编码(将每一条指令根据固定格式翻译成唯一的二进制编码,整数采用小端法编码,根据地址及指令长度更新指针)
,对细节把握
(2)遇到异常时停止指令执行(完整设计中会调用异常处理程序)
(3)逻辑门,存储器和时钟等基础知识,同时介绍HCL语言,清晰明确的显示出所有候选条件,类似C语言switch语句
3定义指令实现阶段(同体系结构课本)
(1)取值,译码,执行,访存,写回,更新PC
(2)对指令跟踪执行,定义保存变量和模块值(valC),这样在介绍硬件结构时可通过相关标识进行表示
4硬件结构
SEQ:完全顺序执行,使用较少的硬件资源,需要信号向后传递,导致处理太慢;
SEQ+:和SEQ相比在时钟周期开始时更新PC值,提前确定下条指令地址
PIPE-:在SEQ+各阶段间加入流水寄存器,对信号重新排列,通过暂停方式处理数据冒险
PIPE:在PIPE-基础上可以通过转发处理数据冒险,避免了停顿,提升吞吐量
5流水线
(1)由时钟信号控制,使多条指令不同阶段可以同时执行,增加了延迟,提升吞吐量
(2)问题:流水阶段长度不一,流水线深度过大插入寄存器影响性能
(3)因为存在反馈的流水线(即一条指令可能需要多次执行某个操作,或使用某个数据,访问某个存储器或寄存器)导致流水线冒险(数据,控制)
(4)数据冒险解决方案:暂停(系统判断是否会产生冒险,会则插入气泡,延迟下条指令执行),转发(使产生的结果理解送入需要的位置,避免暂停),加载\使用(当存储器读发生较晚时需要暂停和转发机制同时使用)
(5)异常处理
(6)控制逻辑和机制
处理return:暂停流水线直到ret指令到达写回阶段
加载/使用冒险:在对存储器读和使用之间需要暂停一个周期
预测错误分支:当预测失败时应该可以返回到之前状态,去掉错误指令
异常:出现异常时,停止后序指令执行,并避免当前异常指令写回
(7)性能分析
CPI=1+处罚项(预测错误+返回+暂停)
目标:使CPI=1;一个周期执行一条指令
对流水线的理解:
(1)流水线主要讲解流水线的概念,分类,根据是否存在反馈回路分为线性非线性流水线,
对非线性流水线的调度,本质就是想办法使流水线执行起来不冲突,在教材上通过预约表冲突向量的方式并考虑到吞吐量计算出最佳调度方案;
(2)
再一次阅读课本,很容易也很清晰的理解整个过程,指令执行使用流水线技术,就是在整体上在固定的时间有效完成更多的事情。