IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 【计算机组成原理】知识梳理(五)中央处理器 -> 正文阅读

[游戏开发]【计算机组成原理】知识梳理(五)中央处理器

5.1 CPU的功能和组成

?

1.CPU的功能

指令控制(程序的顺序控制)
操作控制(一条指令由若干操作信号实现)
时间控制(指令各个操作实施时间的定时)
数据加工(算术运算和逻辑运算)

?2.CPU的基本组成

中央处理器 CPU= 运算器 + 控制器
运算器
ALU
累加器
暂存器
控制器
程序计数器 (PC) 、指令寄存器 (IR) 、数据缓冲器 (DR) 、地址寄存器 (AR) 、通用寄存器、状态寄存器 (PSW) 、时序发生器、指令译码器 (ID) 、总线

3.CPU中的主要寄存器

DR 缓冲寄存器 / 地址寄存器 AR
n
中转站
补偿速度差别
IR 指令寄存器
PC 程序计数器
PSW 程序状态寄存器
AC 累加器
通用寄存器

4.操作控制器

数据通路 : 各个部件之间传送信息的通路。
操作控制器可分为时序逻辑型、存储逻辑型、时序逻辑与存储逻辑结合型三种
硬布线控制器 ( 组合逻辑 ) 是采用时序逻辑技术来实现的
微程序控制器 ( 存储逻辑 ) 是采用存储逻辑来实现的;
混合类型 前两种方式的组合

5.2 指令周期?

指令周期? CPU 从内存取出一条指令并执行这条指令的时间总和。
CPU 周期?? 又称机器周期, CPU 访问一次内存所花的时间较长,因此用从内存读取一条指令字的最短时间来定义。
时钟周期? 通常称为节拍脉冲或 T 周期。一个 CPU 周期包含若干个时钟周期

下面我们用一个模型机来介绍指令周期概念

主要包括:取指(令)周期、(指令)执行周期

????????????????????????程序执行过程:框架原理

分析内容:指令的操作过程

分析对象:典型指令
CLA 指令: 0 →AC
指令性质
非访内存指令
二个 CPU 周期
操作过程
取指令阶段
执行指令阶段
ADD 指令: AC +( D AC
STA 指令: AC D
NOP 指令:空操作

????????????????? JMP指令:D→PC?

取指令阶段

PC →AR
PC 1 →PC
AR →ABUS
M →DR
DR →IR
IR OP )→指令译码器
译码及指令识别

CLR指令执行过程

操作控制器送信号给 ALU
ALU 响应控制信号,执行 AC 清零工作

ADD指令

指令性质
访内指令
三个 CPU 周期
操作过程
取指令阶段
执行指令阶段
送操作数地址
两操作数相加

送操作数地址:IR(地址码字段)AR

两操作数相加

AR →ABUS
M→DR
AC DR→AC

STA指令

AC →D
访内指令
三个 CPU 周期
取指令
送操作数地址
存数

存数操作

AC →DR
AR →ABUS
DR →DBUS
DBUS →M

NOP指令

第一个 CPU 周期执行取指令码,操作过程与其它指令相同
第二个 CPU 周期为执行指令,不执行任何动作

JMP指令

取指令阶段操作相同
执行指令阶段
IR (地址码部分) PC

指令周期的描述

文字描述
数据通路图描述
示意图描述
方框图语言描述
一个方框代表一个 CPU 周期
菱形框代表某种判别或测试
~ 代表公操作

双总线结构机器的数据通路图

一条指令包括一个取指令周期和一个及一个以上的执行周期组成
在每个 CPU 周期中数据通路是明确的
数据通路的建立及操作受到操作控制器的控制,决定于是什么指令。

5.3 时许产生器

时序产生器
计算机的协调动作需要时间标志,而时间标志则是用时序信号来体现的。
硬布线控制器中,时序信号往往采用主状态周期 - 节拍电位 (CPU 周期 )- 节拍脉冲 ( 时钟周期 ) 三级体制。
在微程序控制器中,时序信号比较简单,一般采用节拍电位 - 节拍脉冲二级体制。

组成:

时钟源
环形脉冲发生器
节拍脉冲和读写时序译码逻辑
启停控制逻辑

?环形脉冲发生器

环形脉冲发生器与时序信号译码

启停控制逻辑

? 启动、停机是随机的,对读 / 写时序信号也需要由启停逻辑加以控制。
? 当运行触发器为“ 1” 时,打开时序电路。当计算机启动时,一定要从第 1 个节拍脉冲前沿开始工作。
? 当运行触发器“ 0” 时,关闭时序产生器。停机时一定要在第 4 个节拍脉冲结束后关闭时序产生器。

控制方式

同步控制方式
定义:不同指令在执行时所需的机器周期数和时钟周期数都是固定不变的。
三种方案
采用完全统一的机器周期执行各种不同的指令
采用不定长的机器周期(将大多数操作安排在一个较短的机器周期内完成,对某些时间紧张的操作,则采取延长机器周期的办法来解决)
中央控制与局部控制结合(将大多数指令安排在固定的机器周期完成(称为中央控制),对少数复杂指令采用另外的时序进行定时(称为局部控制))
异步控制方式
控制方式:
每条指令的指令周期由不等长的机器周期数组成
根据执行部件的信号决定指令周期的结束
特点:
每条指令、每个操作控制信号需要多少时间就占用多少时间
操作控制序列没有固定的 CPU 周期数和时钟周期数与之同步
联合控制方式
同步方式与异步方式相结合的方式
其一,大部分操作序列同步的(机器周期数固定),少量操作采用执行部件的应答
其二,机器周期中的时钟周期数固定,各指令的机器周期数不固定(微程序控制)

5.4 微程序控制器

微程序控制计算机: 概念

微命令
由控制部件向执行部件发出的各种控制命令
微操作
执行部件在微命令的控制下完成的基本操作
微指令
一组实现一定功能的微命令的集合
微程序
完成一条机器指令功能的微指令序列的集合
控制存储器
存放微指令的存储器

?

微程序控制信号的编号与意义

例: 加法指令所需的控制信号

(1) 取指

指令地址送AB: PC →AB(1)

从存储器取指令送DB:

ADS(21), M/IO#=1 (22), W/R#=0 (23)

指令送IR: DB →IR(5)

PC+1: PC+1(3)

(2) 计算操作数地址

取源操作数地址码:

Rs1→GR(8), (rs1)→ALU(10), disp→ALU(4)

加法运算: +(13)

有效地址送AR: ALU →AR(19)

(3) 取操作数

操作数地址送AB: AR →AB(20)

由存储器将操作数送DB:

ADS(21), M/IO#=1 (22), W/R#=0 (23)

操作数送DR: DB →DR(6)

(4) 执行加法运算并送结果

两个源操作数送ALU:

rs→GR (9), (rs)→ALU(11), DR→ALU(12)

加法运算: +(13)

送结果: ALU GR(17)

微程序指令的组织

?典型运算的微程序流程图

微程序控制器简图

微地址形成方法

计数器方式
多路转移方式

?

微程序设计的目标

微指令字的长度
控制存储器的容量
微程序的执行速度
微程序设计的灵活性

微指令编码

直接控制法
控制字段中的每一位表示一个微命令
缺点 :
控制字段长 , 如三 , 四百位
控制存储器容量要大
字段直接译码法
把互斥的微命令编为一组
对微命令进行编码 , 留出一个代码表示本段不发微命令
增设微命令译码器
字段间接编译法

一个字段的某些微命令由另一个字段的某些微命令来解释

: 字段A受字段B的控制

常数字段

作为操作数送入ALU运算

作为计算机器初值来控制微程序的循环次数

?微指令格式

水平型微指令
在一条微指令中定义 , 并执行多个并行操作微指令
采用直接控制法 , 字段编译法 ( 直接或间接 )
垂直型微指令
微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能
特点
一条微指令只要求能控制实现一 / 二种操作
格式类似于指令 , 有微操作码字段

水平型微指令和垂直型微指令的比较?

水平型并行操作能力强 , 效率高 ; 垂直型则差
一条垂直型微指令一般只能完成一个操作
水平型微指令的执行时间短 , 而垂直型则长
由水平型微指令解释的微程序短 , 而垂直型则长
水平型微指令难掌握 , 而垂直型则较易掌握
水平型微指令与机器指令的差别很大

5.5 硬布线控制器

硬布线控制器的设计步骤

1.绘制指令流程图

2.列出微操作时间表

3.微操作的逻辑综合

?

??

微操作时间表

微操作的综合逻辑

对前两个步骤进行综合分析、归类,然后写出各微操作信号的逻辑表达式(由时序信号、指令译码信号及条件码、状态标志产生的)。

各种微操作的逻辑表达式

?

可编程逻辑阵列(PLA)控制逻辑?

硬布线控制器的构成

?

?

??

5.6 流水CPU

并行处理技术

时间并行
时间重叠
改善操作流程:流水线技术
空间并行
资源重复
增加冗余部件,如增加多操作部件处理机和超标量处理机

?

MIPS指令执行阶段?

1) IFetch: 取指令,PC+1

2) Decode Instruction:指令译码,读寄存器

3) Execute:

计算操作数地址
运算

4) Memory:

: 从内在读数据
: 写数据到内存

5) Write Back: 写数据到寄存器

?

指令流水时空图

?

?

流水方式和非流水方式比较

假设
内存存取需 2ns
ALU 运算需 2ns
寄存器读写需 1ns
非流水方式
lw : IF + Read Reg+ ALU + Memory + Write Reg = 2 + 1 + 2 + 2 + 1 = 8ns
add : IF + Read Reg+ ALU + Write Reg = 2 + 1 + 2 + 1 = 6ns
流水方式
Max( IF,Read Reg,ALU,Memory,Write Reg) = 2 ns

非流水时空图

?

超标量超流水

?

流水线中相关问题

指令相关问题影响流水的性能
资源相关
流水执行的多条指令同时使用同一个部件
数据相关
流水执行的多条指令访问相同的数据
RAW WAR WAW
控制相关
转移指令引起的相关?

单个存储器?

解决方法
不能以增加内存的方式来解决
增加 L1 cache ,且将数据 L1 cache 和指令 L1 cache 分开
当两个 cache 都没命中时,需要更复杂的硬件控制?
寄存器

事实上寄存器的读写时间非常快:比 ALU 阶段的一半时间还少
解决方法:一种简单的方法
通常寄存器的写操作在前半个时钟周期内
通常寄存器的读操作在后半个时钟周期内
结论:
可以将寄存器读、写操作放在同一个时钟周期内

?数据相关:寄存器

?向前传输避免数据相关

?硬件实现

有向前传输的数据相关

?

数据相关

流水线中有三类数据相关冲突:先写后读相关( RAW);先读后写相关( WAR);写-写相关(WRW)。判断以下三组指令各存在哪种类型的数据相关。

(1) I1:  ADD R1R2R3 ;  (R2) + (R3)->R1

  I2:  SUB R4R1R5 ;   (R1) - (R5)->R4

(2) I3:  STA M(x)R3 ;    (R3)->M(x)

?????????????????????????????????????????????? M(x)是存储器单元

  I4:  ADD R3R4R5 ;  (R4)+(R5)->R3

(3) I5:  MUL R3R1R2 ;  (R1)×(R2)->R3

????? I6:  ADD R3R4R5 ;   (R4) + (R5)->R3

控制相关?

引起原因:转移指令
解决办法:
转移预测法
硬件方法
转移取( 53%MIPS
顺序取( 47%
延迟转移法
编译优化: Branch-delay slots

延迟槽

?

Pentium CPU

非固定长度指令格式, 9 种寻址方式, 191 条指令,兼具有 RISC CISC 特性,不过我们还是将其看成 CISC
提供了更加灵活的存储器寻址结构,可以支持传统的 4k 大小的页面,也可以支持 4M 大小的页面
动态转移预测技术
32 位微处理器(主要寄存器宽度为 32 位)
Pentium 结构图

5.7 RICS CPU?

三个基本要素
一个有限的简单的指令集
CPU 配备大量的通用寄存器
强调对指令流水的优化
特点 :
指令数量少。一般少于 100
使用等长指令。目前典型长度为 4 个字节
寻址方式简单。一般 2-3 种,不超过 4
只有 LOAD/STORE 访问存储器。没有 SS 型指令
大部分指令可以单周期执行
控制器多采用硬布线方式
采用延迟转移技术
较多的寄存器
RISC 强调编译优化
实例 MC88110
CPU 结构框图(见下图)
12 个执行功能部件
3 Cache (指令,数据和目标指令)
两个寄存器堆(通用寄存器堆、扩展寄存器堆)
六条 80 位宽的内部总线
  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:25:48  更:2022-03-21 21:27:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 19:00:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码