现代处理器设计学习笔记(二)

本文探讨了流水线处理器的设计原理与优化方法,包括如何保持流水线各阶段的均衡、统一指令类型减少外部碎片以及减少流水线停顿等。还讨论了RISC与CISC架构的特点。

1 流水线局限性

1)流水线地每一段可以看作是一个组合逻辑F加上一个锁存器L,信号通过F后在L锁存;

        T_MAX通过F地最大传输延迟;

        T_MIN通过F地最小传输延迟;

        T_L正确建立时钟信号所需要地额外时间,包括必要地建立和保持时间。

时钟周期 T > T_MAX - T_MIN + T_L

T_MAX - T_MIN可以趋向于0(延长最小传输路径)

T_L受整个系统内时钟信号分布影响;

性能权衡:流水线深度和价格;

2 指令流水线

指令周期:逻辑概念,处理一条指令地时间延迟;

机器周期:物理概念,流水线的时钟周期;

1)一致的运算分量

        量化流水段,将指令周期分解成多个机器周期的过程。

        尽量减少内部碎片,对存储器的访问是关键,寻址方式优化;

        保持流水线均衡;

2)重复的运算

        多功能流水线,处理多种不同的指令,减少每种指令的无效或空闲的机器周期

        即减少外部碎片,要对不同指令需要的子运算序列资源进行整合。

        统一指令类型;

3)独立的运算

        减少流水线停顿,内部机制检测指令间发生的相关,并保证指令相关不会导致错误。

        尤其是存储器访问有关,指令相关有可能导致流水线停顿,导致失效。

3 流水线处理器

1)流水线保持均衡;

取指 --> 译码 --> 执行 --> 访存 --> 回写

取值 --> 译码 --> 取操作数 --> 执行 --> 存储

基本的是分为5个分量,但不局限;

量化流水线可以将多个分量合成一个分量,也可以将1个分量进一步分成多个分量;

同时需要考虑硬件能力,一个机器周期内可以处理几次读写请求;

2)指令类型统一

指令分成3种类型:

ALU指令:完成算数和逻辑运算;(寄存器)

ld/st指令:完成数据在寄存器及存储器间的移动;(memory,带偏移的寄存器寻址)

分支指令:控制指令执行的顺序;(PC相对寻址,带偏移的寄存器寻址)

 

资源整合为6级流水,load使用6级,其他3种指令使用5级;

ALU:一个空闲周期MEM

ST:不需要WB

branch:不需要WB

三个优化目标:

1. 减少所有指令类型需要的资源总量

2. 提高所有流水段的利用率

3. 减少每种指令类型的总延迟(如果某指令的空闲周期不可避免,尝试把它放到流水线末尾)

3)流水线停顿减少

如果有指令相关,化解相关可能会导致流水线停顿;

真相关:RAW,先写后读

反相关:WAR,先读后写

输出相关:WAW,写后写

存储器数据相关/寄存器数据相关/控制相关

1. 停止执行发生相关的指令,并保证对相关寄存器的读写是按正常顺序进行的;

2. 通过定向路径减少开销:新增物理的定向路径 forwarding path输出数据;

3. 流水线互锁机制:检测出所有的流水线相关,并保证所有相关得到满足;

4 流水线处理器

1)RISC

        以MIPS 32bit为例

 

 2)CISC

 

《超标量处理器设计》讲述超标量(SuperScalar)处理器设计现代的高性能处理器都采用了超标量结构,大至服务器和高性能PC的处理器,小至平板电脑和智能手机的处理器,无一例外。《超标量处理器设计》以超标量处理器的流水线为主线展开内容介绍。《超标量处理器设计》主要内容包括超标量处理器的背景知识、流水线、顺序执行和乱序执行两种方式的特点;Cache的一般性原理、提高Cache性能的方法以及超标量处理器中的Cache,尤其是多端口的Cache;虚拟存储器的基础知识、页表、TLB和Cache加入流水线后的工作流程;分支预测的一般性原理、在超标量处理器中使用分支预测时遇到的问题和解决方法以及如何在分支预测失败时对处理器的状态进行恢复;一般的RISC指令集体系的简单介绍;指令解码的过程,尤其是超标量处理器中的指令解码;寄存器重命名的一般性原理、重命名的方式、超标量处理器中使用寄存器重命名时遇到的问题和解决方法以及如何对寄存器重命名的过程实现状态恢复;指令的分发(Dispatch)和发射(Issue)、发射过程中的流水线、选择电路和唤醒电路的实现过程;处理器中使用的基本运算单元、旁路网络、Cluster结构以及如何对Load/Store指令的执行过程进行加速;重排序缓存(ROB)、处理器状态的管理以及超标量处理器中对异常的处理过程;经典的Alpha21264处理器的介绍。在本书中使用了一些现实世界的超标量处理器作为例子,以便于读者加深对超标量处理器的理解和认识。 《超标量处理器设计》可用作高等院校电子及计算机专业研究生和高年级本科生教材,也可供自学者阅读。
1. 处理器的基本结构 处理器是计算机中最重要的组成部分之一,它负责执行指令、存储和处理数据。处理器的基本结构包括运算器、控制器、寄存器、存储器和总线。 - 运算器:负责执行算术和逻辑运算,包括加法、减法、乘法、除法、与、或、非等操作。 - 控制器:负责管理指令的执行顺序和处理器的操作模式,包括指令译码、指令执行、分支控制、中断处理等。 - 寄存器:处理器内部的一种高速存储器,用于暂时存储指令和数据。常见的寄存器包括累加器、程序计数器、指令寄存器等。 - 存储器:计算机用于存储程序和数据的设备,包括内存、硬盘、U盘等。 - 总线:计算机内部各个组成部分之间传输数据和指令的通道,包括地址总线、数据总线和控制总线。 2. 处理器的指令集和编程模型 处理器的指令集是处理器能够执行的操作的集合,包括算术操作、逻辑操作、传输操作等。不同的处理器有不同的指令集,例如x86指令集、ARM指令集等。 编程模型是指程序员在编写程序时所使用的抽象模型,它描述了程序员如何使用处理器的指令集来编写程序。常见的编程模型包括传统的CISC模型和现代的RISC模型。 3. 处理器的性能指标 处理器的性能指标包括时钟频率、IPC、吞吐量和延迟等。 - 时钟频率:处理器内部时钟的运行频率,通常以GHz为单位。 - IPC(Instructions Per Cycle):每个时钟周期内处理器执行的指令数量。 - 吞吐量:单位时间内处理器能够执行的指令数量。 - 延迟:指令从发出到执行完成所需要的时间。 4. 处理器的发展历程 处理器的发展历程经历了从单核心到多核心的演变,以及从CISC模型到RISC模型的转变。 - 单核心处理器:早期的计算机使用单核心处理器处理器的性能主要依赖于时钟频率的提升。 - 多核心处理器:随着计算机应用的发展,多核心处理器逐渐被引入计算机中,可以同时执行多个任务,提高了计算机的并行处理能力。 - RISC模型:在处理器的指令集设计上,RISC模型强调简洁、规范的指令集,使得处理器设计更加高效,提高了处理器的性能。 5. 处理器的未来发展方向 处理器的未来发展主要集中在以下几个方向: - 集成度的提高:将更多的处理器核心、缓存、内存控制器等集成到处理器中,提高处理器的性能。 - 异构计算:在处理器中引入异构计算单元,例如GPU、FPGA等,提高处理器的计算能力。 - 量子计算:引入量子计算的技术,实现更高效的计算处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值