计算机组成原理
2021-09-17 15:58:03 1 举报
AI智能生成
计算机考研408组成原理全科思维导图
作者其他创作
大纲/内容
组成原理-2-数据表示
定点数的表示与运算
定点数的表示
无符号数:整个机器字长全为数值位,没有符号。 n位数的表示范围 0~(2^n) - 1
有符号数:最高位位符号位。0→正、 1→负号。 表示范围和码的形式有关。
不同的码
原码
最高位表符号,其他表示真值。
小数: 【-(1 - 2^-n) <= x <= 1 - 2^-n】 对称
整数: 【-((2^n) - 1) <= x <= (2^n) -1】对称
0的表示: 【+0】= 00000 【-0】=10000
补码
符号位始终不变,数值为变化。 负数表示范围比正数多一。
正数数值为和原码一样,负数数值为各位取反,末位加一
小数: 【-1 <= x <= 1-(2^-n)】
整数:【-2^n <= x <= (2^n)-1】
0的表示:唯一 【+0】=【-0】=00000
【-x】的补码 = 【x】补码 符号位取反,数值位取反+1
反码
符号位始终不变,正数不变,负数符号位取反
小数:【-(1-(2^-n) <= x <= 1-(2^-n)】对称和原码一样
整数: 【-((2^n)-1 <= x <=(2^n)-1)】
0的表示不唯一 【+0】= 00000 【-0】11111
移码:一般表示浮点数的阶码,只能表示整数。 移码=补码的符号位取反
定点数运算
移位运算
算术移位
对象是有符号数,移位过程中符号位不变
注意移位过程中的添补原则
左移:把数据往左移,小数点右移。数据被放大。
逻辑移位
把操作数视为无符号数
不管左右移,都是补0
循环移位【要理解】
带进位标识符:进位标志符号和数据位一起参与移位
不带进位标志符:不管左右移动,进位标志位也随着改变
加减运算:相加直接运行,相减求出减数的相反值变成相加
溢出判断
一位符号位:若参加运算的两个数符号位相同,且结果符号位与之不相同。则溢出。
双符号位:结果双符号位相同:未溢出。 结果符号位不同:溢出。 最高位是真正的符号。
整数类型及转换
有无符号的转换:最高位被当作符号位或者数值为,其余不变。
不同字长的整数转换
大字长 → 小字长:多余的高位直接去掉
小字长 → 大字长:高位不够补符号位
浮点数的表示与运算
格式:N = (r^E) * M 【E:是阶码,M是尾数】
规格化:要求尾数的最高位是有效值。
左规:数据放大,阶码减小。 可能需要多次
右规:数据缩小,阶码增大。 只需要一次
IEEE754标准【短浮点数为例】
数符 | 阶码(补码) | 尾数(原码)
1 8 23
1 8 23
通式: (-1)^s * 1.M * 2(E-127)
【s=0 正;s=0负】【M最多为23个1】【E的取值 1~254】
1.M 的 1 一般省略,称为隐含尾数。
注意最值判断。
浮点数的运行步骤
对阶:小阶向大阶看齐。 小阶右移,缩小,使阶码变大。 对阶只存在右移
尾数求和:对阶后的尾数进行相加减
规格化:【双符号位】尾数的最高位与符号位不同时需要规格化。左规或者右规。
舍入:对阶和右规中可能会把尾数的低位丢失。末尾是0直接舍去,末尾是1舍去再加1。
溢出判断:浮点数的溢出由阶码的符号决定。双符号位为例:阶码符号位异号则溢出。
组成原理-3-存储系统
存储器概述
分类
作用:主存【DRAM】、辅存【ROM】、高速缓存【SRAM】 主存和Cache都是RAM
方式
随机存储器【RAM】
(快) 掉电易失
(快) 掉电易失
静态随机存储器【SRAM】
构成:双稳态触发器
特点:速度快、集成度低、功耗大、贵
动态随机存储器【DRAM】
构成:栅极电容
特点:速度慢(相对)、易集成、便宜、容量大
刷新(维持电荷即数据):2ms
集中刷新:固定一段时间专门用来刷新、刷新时停止存储器的读写操作所以 有 死时间(访存死区)
分散刷新:工作周期中刷新、无死区。一个工作周期前部分用来读取,后部分用来刷新。会增长存取时间。
异步刷新:平均化刷新时间、上面两种方式的结合。还是会存在死区
备注:刷新单位是行,所以只需要行地址。 对CPU是透明的
备注:地址线复用技术 只需原来地址线的1/2,按行和列两次传送
导致需要行列两根选通线(课本P82)
导致需要行列两根选通线(课本P82)
计算引脚数量。需要读写控制线(一根或者两根)、片选线。 【注意:DRAM需要行选通和列选通,但片选又被行选通替代】
只读存储器【ROM】
(慢) 非易失
(慢) 非易失
MROM 不能写入
PROM 一次写入
EPROM 多次写入(次数有限,所以不能取代RAM)
Flash Memory U盘
SSD 固态硬盘
层次化结构
(快→慢、小→大、贵→便宜):寄存器——Cache——主存——磁盘——光盘
【主—Cache】 间数据调动由硬件完成(对所有程序员透明)、 【主—辅】 间数据调动由软硬件结合完成(对应用程序员透明)
CPU与主存的连接
连接原理:数据、地址、控制 三根总线连接 地址线和控制线是单向的(从CPU到主存)
主存物理扩存
位扩展(8K×1位) 、字扩展(8K×1位) 、 字位同时(8K×1位)
片选:(字扩展) 高位地址线用作片选、线不够时用 译码器
CPU访存提速方法
双端口RAM(空间上并行):有两组相互独立的总线分别接在存储器上,支持同时异步的访问(RAW,RAR会出错)
多模块访存器(时间上并行)
单体多字:一个存储体,但是每个存储单元存放多个字且可以一次读出。地址要顺序排列于同一存储单元(指令和数据要连续存放)
多体并行
高位交叉:体号+地址 访问完当前模块才能访问下一个(还是串行存取,还是顺序存储器) 不能提速,只能提高容量。
低位交叉
地址+体号 流水线模式并行访问 (注:只是访问,不含传输 13年真题)
计算:块数m >= 存取周期T / 总线传输周期r 连续存取m个字t = T + (m-1)*r
Cache
全透明
全透明
目的:缓解CPU和主存间的速度差
映射方式:直接映射(有行号)、全相联(需要按内容寻址的相联存储器支持)、组相联(有组号) 需要一位有效位
替换算法:随机、先进先出(FIFO)、最近最少使用(LRU)【依据局部性原理、需要替换控制位(2路一位、4路两位)】 、最不经常使用【一位计数器】
写策略:
写命中: 全写法(Cache和主存同时写)、写回法(换出时才写,需要一个标志位(脏位))
写不命中:写分配(主存块调入Cache后再写)、非写分配(直接写入主存)
虚拟存储(x详细看OS)
系统程序员不透明
系统程序员不透明
目的:虚拟扩大主存
页式:划分同样大小的页、页表在主存中、内部碎片
快表(TLB):高速缓冲器组成、是副本、(注意命中组合)
段式:按照程序的逻辑结构划分、起始地址+段长、便于共享、有外部碎片
段页式:二者结合、先分段,再分页 、(交换信息是还是以页为单位)
备注:用户编程的是虚拟地址、
组成原理-4-指令系统
指令格式
基本格式【操作码+地址码】
零地址【OP】
无操作数:停机指令、关中断指令、空操作指令
零地址:从栈顶得到两个数运算再放回栈顶
一地址【OP+A1】
单目的操作数:OP(A1)→A1 (加1、减1、求反、求补、移位)
隐含一个操作数:(ACC) OP A1 → ACC,另一个操作数由ACC提供,结果也存入ACC
二地址【OP+A1+A2】:(A1) OP (A2) → A1 ,(A1是目的操作数,A2是源操作数) 目的操作数保存结果
三地址【OP+A1+A2+A3】: (A1) OP (A2) → A3
扩展操作码方法:在操作码中留出低位用作扩展区分标志,把部分地址码用作操作码。
寻址方式
指令寻址(寻找下一条指令)
顺序寻址【通过PC自加】,跳跃寻址【某种计算方式得到】(跳跃的结果是修改PC的值,下一条指令还是由PC给出。但是可能≠PC+1)
数据寻址(寻址操作数)
EA是操作数的真实地址
EA是操作数的真实地址
隐含寻址:不给地址,数据来自ACC。
立即数寻址:地址字段是操作数本身,取数不访存。执行时间短
直接寻址:EA=A。
间接寻址:EA = (A),可以是多次间址
寄存器寻址:EA=R,EA是寄存器R的编号,操作数为该寄存器里面的值 高度注意
寄存器间接寻址:EA=(R),注意和上面区分
相对寻址:EA = (PC)+A , 用于转移指令 (注意指令占字节数对应的PC自加问题 。eg:指令X占2B,PC+2,因为每取一字节PC都自加一次)
基址寻址:EA=(BR)+A,(面向OS,A可变,BR不可变)有利于多道程序设计、编制浮动程序
变址寻址:EA=(IX)+A,(面向用户,处理数组问题,A是首地址所以不变,IX可变由用户确定)
CISC和RISC的对比
CISC【复杂】:指令多、字长不固定、随意访存、寄存器少、微程序控制、可以使用流水线 Intel的X86架构
RISC【精简】:指令少、字长要固定、只有存取指令才能访存、寄存器多、硬布线控制、一定使用流水线 MacBook 的最新M1
备注
地址指定方式
大端方式:给出的地址是操作数最高有效字节(MSB)的地址【正常】
小端方式:给出的地址是操作数最低有效字节(LSB)的地址【倒置】以存储单元为单位
原数为:1234FF00
组成原理-5-中央处理器
CPU的功能和基本结构
组成
运算器:数据加工处理中心【算术逻辑单元ALU、暂存寄存器、累加器ACC、通用寄存器组(可见)、程序状态字(可见)、移位器、计数器】
控制器:发出命令控制计算机【程序计数器PC(可见)、指令寄存器IR、指令译码器(只对操作码译码)、地址寄存器MAR、数据寄存器MDR、时序系统、
微操作信号发生器】
微操作信号发生器】
功能
指令控制、操作控制、时间控制、数据加工、中断处理
指令字长和机器字长没什么关系。但指令字长一般取存储字长的整数倍
指令的执行过程
指令周期
指令周期>机器周期>时钟周期、中断查询在指令执行结束前
数据流
取指周期(取指令):(PC)→MAR、M(MAR)→MDR、(PC)+1→PC、MDR→IR
间指周期(取操作数地址):取操作数有效地址。Ad(IR)→XX,具体情况看题目
执行周期(取数运行):各种运算操作
中断周期:处理中断请求(指令完成前)
执行方案
单指令周期:串行、固定指令的时钟周期
多指令周期:串行、各指令时钟周期数不同
流水线:并行解决指令执行
数据通路
内部总线:CPU内部公共数据通路、多部件共享、一条或者多条、不可同时发,但是能同时收【性能低、有冲突】
专用通路:根据数据和地址的流动方向安排数据线路、【性能高、硬件量大】
注意:再写指令周期节拍功能的时候,一段要保证每个时钟周期,总线上只能有一个数据,不能出现冲突。
控制器
硬布线
构成:组合逻辑门电路、触发器
由硬件给出控制信号、
微指令
构成:存储逻辑实现,把指令设计成微程序
机器指令编写成一个微程序→微程序由若干微指令组成→微指令由微操作命令组成【微命令是微操作的控制信号、微操作是微命令的执行过程】
微程序数 >= 机器指令 + 1 【1为公共取指微程序】
主存储器和控制存储器
主存在CPU外,RAM和ROM实现;用于存放程序和数据
控制存储器在CPU内,ROM实现;用于存放微程序
编码方式(微指令控制字段编码方式)
直接编码:一个微命令占一位(0,1控制),速度快,并行性好,但指令过长
字段直接编码:把互斥的微命令放同一字段,相同的放在不同字段。每段留出一个空白位
字段间接编码:A字段微命令需要B字段微命令解释
微指令地址形成方式
下地址字段(存在于指令中)也称为断定方式
机器指令操作码形成
CMAR+1、分支转移、直接产生等
微指令格式
水平型:一个控制信号占一位、【程序短,指令长,快、便于并行】
垂直型:微操作码编译,类似于机器指令操作码【程序长,指令短,慢】
混合型:以垂直为基础,加入并行操作,两者结合
对比:微程序:慢、规整、CISC、容易扩充修改。
指令流水线
定义
顺序执行,knt
K次重叠,(k+n-1)t
分类
流水线级别:部件功能级、处理机级、处理机间
功能
单功能:只能实现一种固定功能
多功能:同时或者不同时实现多功能
静动态
静:同一时间内,各段只能按同一种功能的连接方式
动:同一时间内,不同的段实现不同的功能
线性
线性:每个功能段只允许经过一次,没有反馈回路
非线性:某些段数次经过流水线,有反馈
影响因素
数据冲突(数据冒险):下一条要用到上一条的数据(WAR,WAW)
暂停时钟周期
数据旁路:设置相关专用通路(不经过寄存器,直接相邻指令传输)
编译优化,调整指令顺序
控制冲突(控制冒险):在转移,调用,返回等指令时改变PC会断流
分支预测:生产转移目标地址
静态:预测条件不满足、继续执行(不作为)
动态:根据历史预测
预取目标命令、加快形成条件码、提高猜准率
性能指标
吞吐率:任务/时间
加速比:未加速/加速 结果>1
效率:总面积/时空区面积 结果>1
其他
超标量流水线:每个时钟周期并发多条独立指令、空间换时间(某一时间,指令完全并行)
超流水线:时钟周期再分段、一个时钟周期一个功能部件多次使用
超长指令字:编译程序发现指令间的并行性、组合成超长指令字
组成原理-6-总线
总线概述
基本概念
定义:总线是一组能为多个部件分时共享的公共信息传送线路
分时:同一时刻只允许一个部件向总线发送信息
共享:某一时刻可以又多个部件从总线接收相同的信息
总线特性
机械特性:尺寸、形状
电气特性:传输方向和电平范围
功能特性:每根传输线的功能
时间特性:信号和时序的关系
猝发传送:一个总线周期内传输 存储地址连续的 多个数据字
分类
片内总线:芯片内部的总线,CPU内部 寄存器与寄存器之间、寄存器与ALU之间的公共连接线
系统总线
数据总线:传输各个功能部件之间的数据。 双向传输总线。位数与机器字长、存储字长有关。
地址总线:指出数据在主存单元或I/O端口的地址。 单向、位数与主存地址空间有关。
控制总线:传输控制信息。双向。
通信总线:也称为外部总线。计算机系统之间或与其它系统之间的信息传输线。
系统总线结构
单总线结构:把CPU、主存I/O设备都挂在一组总线上
双总线结构(通道作为桥梁)
主存总线:CPU、主存、通道之间的一组线
I/O总线:各个外设和通道之间的一组线
三总线结构
主存总线:CPU和主存之间
I/O总线:CPU和各类外设之间
DMA总线:内存和高速外设之间
总线复用技术:一种线在不同的时间传输不同的信息。
总线操作和定时
总线传输阶段: 申请分配阶段、寻址阶段、传输阶段、结束阶段
同步定时方式:系统采用一个统一的时钟信号来协调发送和接收双方的传送。
异步定时方式
不互锁:发送和接收双发随意发送和撤回 信号
半互锁:发送方需要收到接收方的”回答“信号后才能撤回。
全互锁:发送方需收到接收方的”回答“后才能撤回。接收方需收到发送方的 撤回后 才能撤回自己的”回答”信号
总线标准
参考王道书P279
眼熟: ISA、EISA、VESA、PCI、AGP、RS-232C、USB、PCMCIA、IDE、SCSI、SATA
组成原理-7-I/O系统
特点
1、接口是指外设与主机间数据传输的逻辑部件
2、I/O设备通过设备控制器与系统总线相连
3、通道程序放在主存中
外部设备
输入设备:键盘鼠标
输出设备
显示器:(CTR的字符显示器中ASCII放在VRAM中)
打印机:工作原理分类(击打式和非击打式),工作方式分类(点阵、针式、喷墨式、激光)
外存储器
辅助存储器(容量大、便宜、反复利用、脱机存档、非破坏性读出、速度慢、结构复杂)
磁盘阵列(考过):RAID把多个独立的物理磁盘组成一个逻辑盘。方案:镜像、海明码纠错、奇偶校验。
I/O接口
功能
主机与外设的通信联络控制(时序配合问题) 即:协调不同工作速度的外设和主机间交换信息。
地址译码和设备选择
数据缓冲。有数据缓冲寄存器
信号格式转换
传送控制命令和状态信息
接口的基本结构: 地址线:端口地址; 控制线:读写控制; 数据线:其他(包括控制命令)【端口 加 寄存器和控制逻辑组成接口】
I/O端口编址
统一编制:把I/O端口当作存储器单元进行地址分配。根据地址码区分【优:端口有较大的编址空间,操作灵活;缺:占地址,使内存容量变小】
独立编址:独立编址,用专门的I/O指令来访问【优:容易区分。缺:指令少】
I/O方式
程序查询方式:不断查询外设状态,启动I/O时,CPU会有“踏步”现象。
程序中断
工作流程:
中断请求:中断源向CPU发出中断请求。
中断判优:故障中断>I/O中断、 硬件故障一般是最高级的、其次是软件、高速设备优于低速、输入优于输出等
响应条件:有中断源、CPU运行并且开中断、当前指令执行结束。
中断隐指令:关中断、保存断点(保存PC的值)、引出中断服务程序(把地址传给PC)
中断向量:找到中断服务程序的入口地址(也叫中断向量)
中断处理过程:保现场和屏蔽字、执行中断服务程序、恢复现场、中断返回
多重中断
概念:在执行中断服务的时候又来了中断程序
条件:在中断服务程序中设置了开中断、优先级高的优于优先级低的。
分类
内中断:处理器和内存内部产生的中断(运算错误、访存错误、页面失效、上溢、非法指令、特权指令、除数为0) 下溢当作机器0 不需要中断
外中断:处理器和内存以外发生的中断
硬中断:外部硬件产生的中断; 软中断:指令中断
DMA
基础
完全由硬件进行成组信息传送的控制方式
DMA与接口之间有一条直接数据通路 I/O与主机并行、程序与传送并行
DMA控制器
组成:主存地址计数器、传送长度计数器、数据缓冲寄存器、DMA请求触发器、“控制/状态”逻辑、中断机构
功能:接受外设发出的DMA请求,向CPU发总线请求,接管总线控制权,确定地址以及长度并自动修改,规定传送方向,向CPU报告结束
DMA传送方式
停止CPU访问主存:CPU不工作或保持原始状态
DMA与CPU交替访存:(CPU周期>主存周期)把CPU周期拆分,一部分给DMA访存,一部分自己访存
周期挪用:DMA的优先级>CPU,CPU让I/O设备挪用一两个周期
DMA传送过程
预处理:CPU测试I/O设备的状态,制初值,等待DMA请求
数据传送:完全由DMA控制
后处理:DMA控制器向CPU发出中断请求,CPU来收尾,并且检验传入主存的数据是否正确
DMA与中断方式的区别
中断需要CPU的支持、 DMA只有在预处理和后处理的时候需要CPU
中断响应在每条指令执行完毕、 DMA在每个机器周期后都可以(只要CPU不占用总线就能响应)
DMA 的优先级高于中断请求
中断方式靠程序传送 DMA靠硬件传送
0 条评论
下一页