type
status
date
slug
summary
tags
category
icon
password
考试回忆版(2023)计算题简答题分析题设计题第一章: 计算机系统概论冯·诺伊曼机(P8)计算机的工作步骤(P13)计算机的主要技术指标(P17)补充章节:数字逻辑一、数字逻辑及集成电路1.基本逻辑关系2.复合逻辑3.运算规则4.基本定理5.逻辑函数的表示法6.逻辑函数的标准型形式7.逻辑函数的简化——卡诺图二、集成门电路1.逻辑门电路2.逻辑电路设计3.组合逻辑电路三、时序逻辑电路1.触发器2.寄存器 Register3.计数器第三章:系统总线一、总线的基本概念二、总线的分类三、总线特性及性能指标特性性能指标四、总线标准五、总线控制总线判优控制总线通信控制第四章:存储器字、字节一、概述1.分类(P68)2.层次结构(P70)二、主存储器(P73)1.半导体存储芯片2.随机存取存储器 P763.只读存储器4.存储器与CPU的连接5.存储器的校验6.提高访存速度DRAM与SRAM(P77)高速缓冲存储器Cache(P109)Cache的基本设计Cache的读写Cache-主存地址映射直接映射全相联映射组相联映射第五章:输入输出系统输入输出系统组成(P156)I/O设备与主机的联系方式I/O设备编址方式设备寻址传送方式联络方式连接方式I/O设备与主机信息传送的控制方式(P162)程序查询方式程序中断方式直接存储器存取(DMA)I/O接口(P186)程序查询方式(P190)程序中断方式(P193)程序中断的接口电路程序中断的处理过程中断服务程序(背图)DMA方式(P201)DMA接口DMA的工作过程第六章:计算机的运算方法一、 无符号数和有符号数1.无符号数2.有符号数3.进制4.真值 机器数二、带符号数的编码方式1.原码表示法2.反码表示法3.补码表示法4.移码表示法原码、补码和反码三、数的定点表示和浮点表示1.定点2.浮点规格化数四、加法器 Adder五、定点运算1.算术移位2.定点加减法3.溢出判断硬件框图4.定点乘法5.定点除法6.浮点四则运算7.算术逻辑单元第七章:指令系统指令的基本格式(P300)指令字长操作数和操作(P304)访存次数数据寻址(P310)立即(数)寻址直接寻址隐含寻址间接寻址寄存器寻址寄存器间接寻址基址寻址变址寻址相对寻址堆栈寻址指令设计(P323)RISC的主要特征CISC的主要特征RISC和CISC的比较第八章:CPU的结构和功能CPU的结构(P337)CPU的寄存器指令周期数据流中断系统(P359)中断的基本问题单重中断和多重中断中断请求和中断判优形成中断服务程序入口地址中断响应中断屏蔽第九章:控制单元的功能多级时序系统各种周期(375)执行周期控制单元(CU)第十章:控制单元的设计组合逻辑电路和微程序控制器微程序设计(P403)微程序控制单元微指令的编码(控制)方式微指令序列地址的形成
考试回忆版(2023)
计算题
补码加减法 判断溢出
最大负数浮点数规格化表示 浮点数二进制十六进制转换求真值
补码一位乘(2023考了补码一位乘)
计算有效地址和相对寻址 作业题改数
简答题
冯诺依曼计算机特点 核心思想
中断响应后周期? 该周期前面后面是什么阶段?硬件向量寻找中断服务程序入口地址
高速设备与主机交换数据 为什么不用中断?应该用什么(DAM)
微指令后继微地址的形成方式(举例3种) 画图并说明微程序控制器中如何根据操作码形成相应微程序入口地址
举例说明扩展操作码技术 三地址12 二地址60 一地址16
单管动态RAM原理 为什么需要刷新?
分析题
组相联地址映射,主存地址格式、Cache地址格式,主存映射到哪一块 czy作业改数
完成微操作及节拍安排 两字指令 add ACC,mem 执行周期要写控制信号 类似下面这题
设计题
卡诺图 原题
设计映射结构 最大4KROM(用2片4K*4位扩展) 相邻12KRAM(4K*8+8K*8)要求使用芯片数最少
第一章: 计算机系统概论
Key point:
计算机软硬件概念
冯诺依曼计算机的特点
计算机硬件的主要技术指标
冯·诺伊曼机(P8)
冯诺依曼计算机的特点:
- 计算机由运算器,存储器,控制器,输入设备和输出设备五部分组成
- 指令和数据以同等地位存放于存储器中,并可按地址寻访(区分方式见下面问题)
- 指令和数据均由二进制数表示
- 指令由操作码和地址码构成,操作码用来表示操作的性质,地址码用来表示操作数在存储器的位置
- 指令在存储器内按顺序存放,通常是按顺序执行,特定条件下可根据运算结果或特定条件改变执行顺序(使用跳转类指令)
- 机器以运算器为中心。
计算机是如何区分存储器中的指令和数据的:
CPU可通过两种手段来区分访存取来的是指令还是数据。
1)通过不同的时间段区分:在指令的取指阶段访存取出的是指令;在指令的执行阶段访存取来的即为操作数,也就是数据。
2)通过不同的地址来源和目的地址区分:由PC提供访存地址,取来的即为指令,送往指令寄存器IR;由指令的地址码部分提供访存地址取来的是操作数(数据),送往数据寄存器。
计算机的工作步骤(P13)
现代计算机可以认为由三大部分组成:CPU 、I/O 设备及主存储器。其中,CPU 与主存储器合起来,称为主机,I/O 设备又可称为外部设备。
各部件的作用
- CPU包括运算器和控制器两个部分;其中,ALU(算术逻辑单元)是运算器的核心器件,用来完成算数和逻辑运算;CU(控制单元)是控制器的核心器件,用来解释存储器中的指令,并发出各种操作命令来执行指令。
- 主存储器用来存放程序和数据,它可以直接与CPU交换信息;
- I/O设备受CPU控制,用来完成相应的输入输出操作。
计算机的主要技术指标(P17)
- 机器字长:CPU 一次能处理数据的位数,通常与 CPU 寄存器位数有关。
- 存储容量:主存容量和辅存容量。
- 运算速度:与许多因素有关,主频,操作类型,主存速度等。
画出计算机硬件组成框图,说明各部件的作用及计算机硬件的主要技术指标?
答:1)框图如下:
现代计算机可以认为由三大部分组成:CPU 、I/O设备及主存储器。其中,CPU与主存储器合起来,称为主机, I/O设备又可称为外部设备。
2)各部件的作用
- CPU包括运算器和控制器两个部分;其中,ALU是运算器的核心器件,用来完成算术和逻辑运算;CU是控制器的核心器件,用来解释存储器中的指令,并发出各种操作命令来执行指令。
- 主存储器用来存放程序和数据,它可以直接与CPU交换信息;
- I/O设备受CPU控制,用来完成相应的输入输出操作。
3) 主要技术指标: 机器字长、存储容量(内存容量)和运算速度。
英文代号:
CPU: Central Processing Unit 中央处理器
PC: Program Counter 程序计数器 用来存放当前欲执行指令的地址
IR: Instruction Register 指令寄存器 用来存放当前的指令,内容来自主存的MDR
CU: Control Unit 控制单元
ALU: Arithmetic Logic Unit 算术逻辑单元
ACC: Accumulator 累加器
MQ: Multiplier-Quotient Register 乘商寄存器
X: 操作数寄存器
MAR: Memory Address Register 存储器地址寄存器 用来存放欲访问的存储单元的地址
MDR: Memory Data Register 存储器数据寄存器 用来存放从存储体某单元取出的代码或者准备往某存储单元存入的代码,其位数与存储字长相等
I/O: Input/Output Equipment 输入输出设备
MIPS: Million Instruction Per Second 百万条指令每秒 机器运算速度的计量单位(单位时间内执行的平均条数)
CPI: Cycle Per Instruction 执行一条指令所需的时钟周期(机器主频的倒数)
FLOPS: Floating Point Operation Per Second 浮点运算次数每秒 衡量运算速度
补充章节:数字逻辑
一、数字逻辑及集成电路
1.基本逻辑关系
与 或 非
2.复合逻辑
3.运算规则
4.基本定理
5.逻辑函数的表示法
6.逻辑函数的标准型形式
- 最小项
定义: 在一个具有n个变量的逻辑函数中,如果一个与项包含了所有n个的变量,而且每个变量都是以原变量或反变量的形式作为一个因子仅出现一次,那么这样的与项就称为该逻辑函数的一个最小项。对于n个变量的全部最小项共有2^n个。
最小项编号:为了表达方便,人们通常用mi表示最小项,其下标i为最小项的编号。编号的方法是:最小项中的原变量取1,反变量取0,则最小项取值为一组二进制数,其对应的十进制数便为该最小项的编号。
性质:
- 最大项
定义:一个或项包含了所有的n个变量,每个变量都以原/反变量的形式作为因子仅出现一次
性质:
- 将逻辑函数展开为两种标准式
7.逻辑函数的简化——卡诺图
每个方块(最小项)代表一种输入组合
真值表、卡诺图 ⇒ 逻辑代数式:
将真值表/卡诺图中的1的项相加,写成“与或式”
- 利用卡诺图化简规则:
- 逻辑相邻:相邻单元输入变量的取值只能有一位不同
- 若两个最小项中只有一个变量以原、反状态相区别,则称它们为逻辑相邻。逻辑相邻的项可以合并,消去一个因子。
- 相邻单元的个数是个,并组成矩形时,可以合并。
- 先找面积尽量大的组合进行化简,可以减少更多的因子。
- 各最小项可以重复使用。
- 所有的1都被圈过后,化简结束。
- 化简后的逻辑式是各化简项的逻辑和。
- 圈的数目越少越简;圈内的最小项越多越简。
- 卡诺图中所有的 1 都必须圈到,不能合并的 1 必须单独画圈。
逻辑函数的化简结果不唯一
二、集成门电路
1.逻辑门电路
2.逻辑电路设计
3.组合逻辑电路
输出状态仅与当时的输入状态有关,而与过去输入状态无关
- 译码器 decode
- 数据选择器 MUX
- 数据分配器
三、时序逻辑电路
时序电路:(有记忆)
电路某一时刻的输出不仅决定于该时刻的输入,还与以前的状态有关。以前的状态就是存储电路的输出。
1.触发器
(1)基本R-S触发器
- 电路组成与符号:由两个与非门交叉耦合组成
- 输入信号:S、R
- 输出信号:Q,
- 工作原理(略 理解不考)
(2)电位触发器
R-S型电位触发器)同步触发器)
当触发器的同步控制信号E为约定的状态时,触发器接收数据,输入数据的变化引起输出改变;
当E为非约定信号时,触发器状态保持不变。
(3)边沿触发器
- 触发器只有在时钟CP某一约定跳变(正跳变或负跳变)到来时,才接收输入数据
- 在CP=O及CP=1期间,输入的数据变化不会引起触发器输出状态的变化
- 时钟P的非约定跳变不会引起触发器输出状态的变化
时钟CP:使触发器在同步信号(时钟脉冲)到达时才按输入信号改变状态
(4)主从触发器
- 主从RS触发器
- 主从J-K触发器
2.寄存器 Register
移位寄存器
- 单向移位寄存器
- 双向移位寄存器
3.计数器
第三章:系统总线
key point
什么是系统总线
系统总线分类
集中式优先仲裁方法
总线通讯控制
一、总线的基本概念
- 总线传输的特点是: 某一时刻只允许有一个部件向总线发送信息,但多个部件可以同时从总线上接收相同的信息。
- 总线: 总线是连接各个部件的信息传输线,是各个部件共享的传输介质
- 总线结构:
- 面向 CPU 的双总线结构框图 特点:便于增删设备,但I/O设备与主存交换信息时要占用CPU,降低了CPU的工作效率。
- 单总线结构框图 特点:CPU工作效率有所提高,但经常发生系统总线抢占冲突,影响整机的工作速度。
- 以存储器为中心的双总线结构框图 特点:提高了传输效率,但仍然会发生系统总线抢占冲突。
二、总线的分类
- 片内总线 芯片内部的总线
- 系统总线 计算机各大部件之间的信息传输线
- 数据总线 双向 与机器字长、存储字长有关 其根数与存储字长相同,是机器字长的整数倍
- 地址总线 单向 与存储地址、 I/O地址有关 根数越多,寻址空间越大,即CPU能访问的存储单元的个数越多
- 控制总线 用来发出各种控制信号的传输线 有出(存储器读、存储器写、总线允许、中断确认) 有入(中断请求、总线请求)
- 通信总线 用于计算机系统之间或计算机系统与其他系统(如用于控制仪表的RS485总线等)之间的通信 按传输方式分为两类:串行通信和并行通信
三、总线特性及性能指标
特性
- 机械特性 尺寸、形状、管脚数及排列顺序
- 电气特性 传输方向和有效的电平范围
- 功能特性 每根传输线的功能(地址、数据、控制)
- 时间特性 信号的时序关系
性能指标
- 总线宽度:数据总线的根数
- 总线带宽:总线的数据传输速率,即单位时间内总线上传输数据的位数 单位:MBps(兆字节每秒)
- 时钟同步/异步 总线上的数据与时钟(不)同步工作的总线
- 总线复用:一条信号线上分时传送两种信号
- 信号线数:地址总线、数据总线、控制总线三种总线数的总和
- 总线控制方式:并发、自动、仲裁、逻辑、计数
- 其他指标:负载能力、电源电压等
四、总线标准
总线标准 | 全称 | 数据线 | 总线时钟 | 带宽 |
ISA | Industry Standard Architecture,工业标准体系结构 | 16 | 8 MHz(独立) | 33 MBps
|
EISA | Extended Industry Standard Architecture,扩展的ISA | 32
| 8 MHz(独立)
| 33 MBps |
VESA(VL-BUS) | Video Electronics Standards Association,视频电子标准协会 | 32
| 32 MHz(CPU)
| 133 MBps |
PCI | Peripheral Component Interconnect,外部设备互连 | 32
64 | 33 MHz(独立)
64 MHz(独立)
| 132 MBps
528 MBps
|
AGP | Accelerated Graphics Port,加速图形接口 | 32
| 66.7 MHz(独立)
133 MHz(独立)
| 266 MBps
533 MBps
|
RS-232C | Recommended Standard,RS | 串行通信
总线标准
| 数据终端设备(计算机)和数据通信设备(调制解调器)之间的标准接口
| |
USB | Universal Serial Bus,通用串行总线 | 串行接口
总线标准
| 普通无屏蔽双绞线;带屏蔽双绞线最高
| 1.5 Mbps (USB1.0)
12 Mbps (USB1.1)
480 Mbps (USB2.0) |
五、总线控制
总线判优控制
- 原因:总线判优控制解决多个部件同时申请总线时的使用权分配问题; 如多个主设备同时要使用总线时,就由总线控制器的判优、仲裁逻辑按一定的优先级顺序,确定那个主设备能使用总线,只有获得总线使用权的主设备才能开始传送数据。
- 分类:
- 集中式:将控制逻辑集中在一处(如CPU)
- 链式查询 只需很少几根线就能按照一定优先次序实现总线控制,易于扩充设备,对电路故障最敏感,且优先级别低的设备可能很难获得请求
- 计数器定时查询 优先级设置较灵活,对故障不敏感,连线及控制过程较复杂
- 独立请求方式 响应速度快,优先次序控制灵活(通过程序改变),但控制线数量多,总线控制更复杂。
- 分布式:将控制逻辑分散在与总线连接的各个部件或设备上
(确定总线使用权属于哪个设备,链式查询2根线,计数器定时查询根线,独立请求方式根线)
总线通信控制
- 同步通信 通信双方由统一时标控制数据传送称为同步通信。
- 优点:规定明确、统一,模块间的配合简单一致。
- 缺点:当系统中各部件工作速度差异较大时,总线工作效率明显下降,缺乏灵活性。
- 一般用于总线长度较短、各部件存取时间比较一致的场合。
假设总线的时钟频率为100MHz,总线的传输周期为4个时钟周期,总线的宽度为32位,求总线的带宽。
带宽=时钟频率×总线宽度/总线时钟周期数
=100MHz×32b/4
=800Mbps
=100MBps
一个时钟的周期:
总线传输周期:
总线宽度:32位 = 4B(字节)
总线的数据传输率:
若想提高一倍数据传输率,可:将总线宽度改为64位,或将时钟频率增加到200MHz
总线传输周期越短,数据线的位数越多,直接影响总线的数据传输率。
- 异步通信 没有公共时钟标准,不要求所有部件严格的统一操作时间,而是采用应答方式(握手方式),即当主模块发出请求信号时,一直等待从模块反馈回来“响应”(Acknowledge)信号后,才开始通信。
控制方式较同步复杂,灵活性高,当系统中各部件工作速度差异较大时,有利于提高总线工作效率。
在异步串行传送系统中,字符格式为:1个起始位、8个数据位、1个校验位、2个终止位。若要求每秒传送120个字符,试求传送的波特率和比特率。
解:一帧包含:1+8+1+2=12位
故波特率为:(1+8+1+2)120=1440bps
比特率为:8*120=960bps
波特率指单位时间内传送二进制数据的位数,单位用bps(位/秒)表示,记作波特
- 半同步通信
- 分离式通信
阴极射线管(Cathode Ray Tube)
CPI:执行一条指令所需要的时钟周期数 = 总时钟周期数/IC;IC:总指令数
MIPS:每秒执行多少百万条指令 = 指令条数/(执行时间x106) = 主频/CPI
第四章:存储器
Key point:
存储系统的层次结构
静态RAM和动态RAM的不同点
动态RAM为什么要刷新?各种刷新方式的特点,说明各种刷新方法的过程
半导体存储器的扩展(设计题:连线或补充连线,会分析地址译码过程)
主存地址、Cache地址个字段的划分,Cache地址映射,给你一个特定的主存地址映射成具体的Cache地址
存储器使用带宽衡量速度,带宽指单位时间内存储器存取的信息量。需要注意
字、字节
计算机进行数据处理时,一次存取、加工和传送的数据长度称为字。一个字通常由多个字节组成。字长又称作“机器字长”,顾名思义,就是字的长度,这里的长度用位来表示。
在信息处理中,一群字作为一个单元来处理的称为“字块”.也称“字组”。
Big endian(大端,高位字节地址作为字地址) 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节);而 Little endian 则相反,它认为第一个字节是最低位字节(按照从低地址到高地址的顺序存放据的低位字节到高位字节)。
一、概述
1.分类(P68)
- 按存储介质分类
- 半导体存储器:由半导体器件组成的存储器。
- 优点:体积小、功耗低、存取时间短
- 缺点:当电源消失时,所存信息也随之丢失,是一种易失性存储器。
- 按其材料不同又可分为双极型(TTL)半导体存储器(特点:高速)和MOS半导体存储器(特点:高集成度,制造简单,成本低廉,功耗小,广泛应用)。
- 磁表面存储器
- 在金属或塑料基体的表面上涂一层磁性材料作为记录介质,工作时磁层随载磁体高速运转,用磁头在磁层上进行读/写操作。
- 特点:非易失性。
- 按载磁体形状的不同,可分为磁盘、磁带和磁鼓。
- 磁芯存储器
- 磁芯是由硬磁材料做成的环形元件,在磁芯中穿有驱动线(通电流)和读出线,这样便可以进行读/写操作。
- 特点:非易失性。体积过大、工艺复杂、功耗太大,目前几乎已不采用。
- 光盘存储器
- 是应用激光在记录介质(磁光材料)上进行读/写的存储器。
- 特点:非易失性。记录密度高、耐用性好、可靠性高、可互换性强,越来越用于计算机系统。
- 按存取方式分类:
- 随机存储器:存取时间与物理地址无关(随机访问)
- 随机访问存储器(RAM,Random-Access-Memory),在程序的执行过程中可读可写
- 只读存储器(ROM,Read/Random-Only-Memory),在程序的执行过程中只读。用于工业控制的固化程序。
- 存取时间与物理地址有关(串行访问)
- 顺序存取存储器:磁带
- 直接存取存储器:磁盘
叠瓦盘的最顶和最底部的两个盘面是不用的,例如10个盘片只有18个有效盘面。
- 按照作用进行分类:
RAM中:静态RAM更快,集成度更高,成本更高(详见下面”DRAM与SRAM“)。
根据原始数据的进入方式,ROM被分成了几类:
- MROM(Mask - ROM):生产过程里写入数据。
- PROM(Programmable - ROM):使用烧录设备烧写进去,只能烧录一次(微程序控制器一般使用PROM保存微程序)。
- EPROM(Erasable Programmable - ROM):使用紫外线擦除的可编程ROM,一般会有一个用于擦除的窗口,擦除的耗时比较长。
- EEPROM(Electrically Erasable Programmable - ROM):电擦除的可编程ROM,一般能擦写十几万次。
Flash:使用半导体结构模拟磁盘结构,逻辑上和磁盘一样。
2.层次结构(P70)
三级存储体系:
图中所示的缓存是一个片外缓存,也就是CPU外部的缓存,位于主板上。通常来讲,我们所讨论的都是CPU内的缓存。
高速缓存用于解决主存和CPU之间IO能力的差异,显然,当CPU的访问命中率高的时候缓存可以有效拉高访问效率。
存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?
存储器的层次结构主要体现在Cache—主存和主存—辅存这两个存储层次上。
- Cache—主存层次主要解决CPU和主存速度不匹配的问题,在存储系统中主要对CPU访存起加速作用。从CPU的角度看,该层次的速度接近于Cache,而容量和每位价格却接近于主存。这就解决了存储器的高速度和低成本之间的矛盾;
- 主存—辅存层次主要解决存储系统的容量问题,在存储系统中主要起扩容作用。从程序员的角度看,其所使用的存储器的容量和每位价格接近于辅存,而速度接近于主存。该层次解决了大容量和低成本之间的矛盾。
主存与 Cache 之间的数据调度是由硬件自动完成的,对程序员是透明的。而主存—辅存之间的数据调度,是由硬件和操作系统(采用虚拟存储技术)共同完成的。
二、主存储器(P73)
图中的驱动器、译码器和读写电路均制作在存储芯片中,而MAR和MDR制作在CPU芯片内。存储芯片和CPU芯片可通过总线连接。
1.半导体存储芯片
半导体存储芯片的基本结构
译码驱动能把地址总线送来的地址信号翻译成对应存储单元的选择信号,该信号在读/写电路的配合下完成对被选中单元的读/写操作。
读/写电路包括读出放大器和写入电路,用来完成读/写操作。
存储芯片通过地址总线、数据总线和控制总线与外部连接。
地址线是单向输入的,其位数与芯片容量有关。
数据线是双向的,其位数与芯片可读出或写入的数据位数有关。数据线的位数与芯片容量有关。
地址线和数据线的位数共同反应存储芯片的容量。
控制线主要有读/写控制线和片选线两种。
存储芯片片选线的作用:用16K×1位的存储芯片组成64K×8位的存储器
片选线
读/写控制线
半导体三极管
只要栅极电压>源级电压,那么漏极电压=源极电压,或者说三极管是导通的。(栅极电压高则通)
半导体存储芯片的译码驱动方式
- 线选法
特点是用一根字选择线(字线),直接选中一个存储单元的各位。结构简单,只适用于容量不大的存储芯片。
如:当地址线为1111时,第15根字线被选中,最后一行的8位代码可直接读出或写入。
- 重合法
2.随机存取存储器 P76
随机存取存储器按其存储信息的原理不同,可分为静态RAM和动态RAM两大类。
静态RAM(SRAM)
利用双稳态触发器存储信息,速度快,非破坏性读出
用途:高速缓存
(1)静态RAM基本单元电路
T1~T4 触发器(交叉耦合)
T5、T6 行开关(受行地址选择控制)
T7、T8 列开关(受列地址选择控制,不包含在基本单元电路内,芯片内同一列的各个基本单元电路所共有)
A 触发器原端
A` 触发器非端
静态RAM属于易失性半导体存储器(电源掉电时,原存信息丢失)
(2)静态RAM芯片举例
Intel2114芯片
图中存储矩阵由64 ×64个基本单元电路组成,列I/O电路即读/写电路。
10根地址线分为行地址A8~A3,和列地址A9、A2、A1、 A0,4根数据线为~,它们是受输入/输出三态门控制的双向总线。
当和均为低电平时,输人三态门打开,~,上的数据即写入到指定地址单元中。
当为低电平、为高电平时,输出三态门打开,列I/O电路的输出经片内总线输出至数据线,~上。
P76—P79
(3)静态RAM读/写时序
P78—P780
动态RAM(DRAM)
依靠电容上的存储电荷存储信息
集成度最高(同晶体管数存储信息多),但信息易失,需要定时刷新内容
用途:作主存。
(1)动态RAM的基本单元电路
常见的动态RAM基本单元电路靠电容存储电荷的原理来寄存信息。若电容上存有足够多的电荷表示存“1”,电容上无电荷表示存“0”。
再生或刷新:电容上的电荷一般只能维持1~2ms。因此即使电源不掉电,信息也会丢失,为此,必须在2ms内对其所有存储单元恢复一次原状态,这个过程称为再生或刷新。
读出时,字线上的高电平使T导通,若C_s有电荷,经T管在数据线上产生电流,可视为读出“1”。若无电荷,则数据线上无电流,视为读出“0”。
读操作结束后,C_s的电荷释放完毕,故为破坏性读出。
写入时,字线为高电平使T导通,若数据线上为高电平,经T管对C_s充电,使其存“1”;若数据线为低电平,则C_s经T放电,使其无电荷而存“0”。
(2)动态RAM芯片举例
- 三管动态RAM芯片
4.8试比较静态RAM和动态RAM各自的特点。
参考答案要点:
1)静态RAM:依靠双稳态触发器保存二进制代码,只要不断电,信息就不会丢失,非破坏性读出,功耗较大,集成度较低,速度快,每位价格高,适合于作Cache或存取速度要求较高的小容量主存。
2)动态RAM:依靠电容存储电荷来保存二进制代码,需刷新电路进行动态刷新,存取速度较慢;功耗小,集成度高,每位价格低,适合于作大容量主存。
(3) 动态 RAM 时序
(4)动态 RAM 刷新(P86)
刷新的过程实质上是先将原存信息读出,再由刷新放大器形成原信息并重新写入的再生过程。
需要刷新的原因有两点:
- 主要原因:由于电容极板漏抗的存在,存储于电容中的电荷存在泄漏的情况,这会导致动态 RAM 存储单元中的原存信息丢失。
- 最常用的单管动态 RAM 的读出为破坏性读出。
因此需要按照一定周期进行刷新,通常这个时间为 ,称为刷新周期或再生周期(在一定的时间内,对动态RAM的全部基本单元电路做一次刷新)。刷新是S一行行进行的。刷新方式有三种:
- 集中刷新:在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此时必须停止读/写操作,这段时间称为“死时间”,又称访存的“死区”。
- 分散刷新:指对每行存储单元的刷新分散到每个存取周期内完成。不存在停止读/写操作的死时间,但每个存储周期长了,整个系统速度降低了。
- 异步刷新:用最大刷新间隔除以单元行数算出每个存储单元行的最大刷新时间问隔,以这个间隔为刷新周期。降低了冲突的概率。
4.9为什么要刷新?简要说明动态RAM刷新的几种方式及其特点。
答案要点:
1)原因有两点:
① 主要原因:由于电容极板漏抗的存在,存储于电容中的电荷存在泄漏的情况,这会导致动态RAM存储单元中的原存信息丢失。
② 此外,最常用的单管动态RAM的读出为破坏性读出。
综合上述两点,动态RAM必须要进行刷新。
2)动态RAM的刷新方式有集中式刷新、分散式刷新、异步式刷新和透明式刷新等四种方式。(只答前三种也可)
各种刷新方式的特点如下:
集中式刷新:在最大刷新间隔时间内,集中安排一段时间进行刷新。其缺点是进行刷新时必须停止读、写操作。这对主机而言是个“死区”
分散式刷新:刷新工作安排在系统的存取周期内进行,对主机而言不再有“死区”。但该方式加长了系统的存取周期,存在无谓刷新,降低了整机运行效率。因此,分散方式刷新不适用于高速存储器。
异步式刷新:结合了上述两种方式的优点,充分利用了最大刷新间隔。相对于分散式刷新而言,它减少了刷新次数;相对于集中方式来说,主机的“死区”又缩短很多。因此,这种方式使用得比较多。
透明式刷新:该方式不占用CPU时间,对CPU而言是透明的操作;但控制线路复杂。
3.只读存储器
4.存储器与CPU的连接
存储器扩展(P91)
存储器扩展有三种方式:
- 位扩展:增加存储字长,如让 2 个 1K*4 扩展为 1K*8,本质上就是让一个地址同时选中两片芯片,两片芯片分别存储这个数据的前后部分(高低位)。
太简单,没有考过
- 字扩展:增加存储器字的数量,如让 2 个 1K*4 扩展为 2K*4,本质上就是把译码前的信号当作地址扩展,译码片选后的信号控制多个芯片的使能端,使一个“地址”只选中一个芯片,因为这时的“地址”位数扩大了(多了片选译码的输入位),实现了存储字的扩展。
字扩展一定需要译码器辅助转换地址。通常将高位地址接到译码器输入,输出接到片选线上。
- 字、位扩展:结合起来,一个扩展地址通过译码片选出一个输出位,让这一位同时接两个位扩展芯片的使能端,实现字位扩展结合。
存储器与CPU的连接
主存地址空间分配、
合理选用存储芯片
- 存放系统程序、标准子程序和各类常数:ROM
- 用户编程、系统程序工作区:RAM
画出存储芯片的片选逻辑图
5.存储器的校验
求汉明码
配奇原则
1的个数为偶数:1,奇数:0
6.提高访存速度
DRAM与SRAM(P77)
- SRAM存储信息的原理为双稳态触发器原理,非破坏性读出,即读出后仍保持原状态,不需要再生,电源断电时丢失信息(做实验用的 MM214 就是静态存储器)。功耗较大,集成度较低,速度快,每位价格高,适合于作 Cache 或存取速度要求较高的小容量主存。
- DRAM存储信息的原理为靠电容存储电荷原理,不断电也会丢失,需要刷新,比静态集成度高,能耗低,各类计算机广泛使用。但是存取速度慢于静态的。每位价格低,适合于作大容量主存。
DRAM的行、列地址按先后顺序传送,相比SRAM减少了芯片引脚,封装尺寸也减少。
高速缓冲存储器
Cache(P109)
Cache的出现建立在程序访问的局部性上。一般Cache 采用高速的 SRAM 制作, 其价格比主存高,但因其容量远小于主存,因此能很好地解决速度和成本的矛盾。
以全相联映射技术为例,说明在带有 Cache 的存储系统中,“读”操作是怎样完成的:当 CPU 发出主存地址后,地址映射变换机构按照全相联映射方式将主存地址标记与 Cache 所有字块的标记进行比较,以判断出所访主存字(主存地址的内容)是否已在 Cache 中。若命中,直接访问 Cache,将该字送至 CPU;若未命中,一方面要访问主存,将该字传送给 CPU,与此同时,要按照全相联映射方式转换的 Cache 地址将该字所在的主存块装入 Cache,如果此时 Cache 已装满,就要执行替换算法,腾出空位才能将新的主存块调入。
Cache的基本设计
Cache的操作对用户是零感知的,自动进行读写。
将 位的低位作为一个字块,所有操作都以字块为最小单位。因为主存地址空间大于Cache地址空间,所以Cache需要一部分空间作为“标记”区分具体是哪一块主存字块。
Cache主要需要三个部分:
- Cache存储体:以块为单位与主存交换信息。大多采用多体结构提高性能。
- 地址映射变换机构:将CPU送来的主存地址转换为cache地址。进行主存块号与Cache块号之间的转换。
- 替换机构
Cache的读写
Cache的读操作很简单,但写操作比较复杂,因为对 Cache 块内写人的信息,必须与被映射的主存块内的信息完全一致。当程序运行过程中需对菜个单元进行写操作时,会出现如何使 Cache 与主存内容保特一致的问题。日前主要采用以下几种方法。
- 写直达法:写操作时既写入Cache也写入主存,会增加访存次数。
- 写回法:先写入Cache,使用一个标志位表示数据是“清”还是“浊”,在替换该字块时根据情况写回主存。
Cache-主存地址映射
直接映射
设主存容量为 1MB,采用直接映射方式的 Cache 容量为 16KB,块长为 4,每字 32 位。试问主存地址为 ABCDEH 的存储单元在 Cache 中的什么位置?主存地址 ABCDEH,Cache 的地址为 14 位,其中字块内地址为 4 位,Cache 字块地址为 10 位。采用直接映射方式,只要将主存地址后 14 位地址与 Cache的 14 位地址相同就行了。因此:ABCDEH = 1010 1011 1100 1101 1110B
,其中,后 14 位地址为11 1100 1101 1110
,用十六进制描述为3CDEH
,这就是指定的主存单元在 Cache 中的位置。
补充题3以直接映像方式为例,说明在带有Cache的存储系统中,“读”操作是怎样完成的。
参考答案要点:
当CPU发出主存地址后,Cache地址映射机构按照直接映射方式将主存地址标记与Cache特定字块的标记进行比较,以判断出所访主存字(主存地址的内容)是否已在Cache中。若命中,直接访问Cache,将该字送至CPU;若未命中,一方面要访问主存,将该字传送给CPU,与此同时,要按照直接映射方式转换的Cache地址将该字所在的主存块装入Cache,如果此时Cache已装满,就要执行替换算法,腾出空位才能将新的主存块调入。
全相联映射
组相联映射
可以理解为通过编组将直接映射的Cache块减少;对于一组内的字块按照全相联方式进行动态的映射。
Cache-主存地址映射有直接映射方式、全相联映射方式和组相联映射方式三种。
直接映射方式的特点: 主存的字块只可以和固定的Cache字块对应,优点是方式直接,硬件实现电路简单,成本低,缺点是利用率低,同时命中率和效率较低。
全相联映射方式主存中的字块可以和Cache的任何字块对应,优点是方式灵活利用率高;缺点是所需逻辑电路复杂,使用成本太高。
组相联映射方式是对前两种映射方式的折衷,组间直接映射,组内全相联映射。其特点是集中了两个方式的优点,成本也不太高,是目前应用最为广泛的Cache映射方式。
第五章:输入输出系统
Key point:
主机和外设之间的信息传递的控制方式,各自的特点
I/O设备可以不看
程序查询方式的特点
程序中断的概念
I/O中断处理过程,CUP响应中断的条件,中断服务程序的流程,单重中断和多重中断的区别
DMA方式访存有哪几种方法,DMA的工作工程(几个阶段,分别做什么),DMA和程序中断有什么不同点(比较)具体一点,程序中断和 DMA二者的响应过程有何不同
输入输出系统组成(P156)
输入输出系统由I/O软件和I/O硬件两部分组成。
I/O软件的主要任务为:
- 将用户编制的程序(或数据)输入主机内。
- 将运算结果输送给用户。
- 实现输入输出系统与主机工作的协调等
I/O软件包括I/O指令和通道指令。
I/O指令是机器指令的一类,由操作码、命令码、设备码组成。其中,命令码体现I/O设备的具体操作,例如:
- 将数据从I/O设备输入主机。
- 将数据从主机输出至I/O设备。
- 状态测试,检查I/O设备处于Busy还是Ready状态。
- 形成某些操作命令。
通道指令是具有通道的I/O系统专门设置的指令。
在带有接口的I/O系统,其I/O硬件一般包括接口模块及I/O设备两大部分。
I/O设备与主机的联系方式
I/O设备编址方式
通常将I/O设备码看作地址码,对I/O地址码的编址可采用两种方式:
- 统一编址:将I/O地址看做存储器地址的一部分。
- 不统一(单独)编址:I/O地址和存储器地址是分开的,所有对I/O设备的访问必须使用专门的I/O指令。
I/O采用统一编址,进行输入输出操作的指令是访存指令;I/O采用不统一编制,进行输入输出操作指令是输入输出指令。
设备寻址
通过接口电路中的设备选择电路,便可选中要交换信息的设备。根据I/O指令的设备码字段直接指出该设备的设备号。
传送方式
传送方式可以分为:
- 并行传送:对于n位地址的数据并行传送,传送速度快,但需要使用n根数据线
- 串行传送:传送速度较慢,但只需要一根数据线和一根地线。
当I/O设备与主机距离很远时,采用串行传送较为合适。
联络方式
立即响应方式:
对于十分缓慢的设备,当其与CPU联系时往往已经处于等待状态,因此只要指令一到就可以响应。
异步工作采用应答信号联络:
在工作速度不匹配的情况下按照异步方式工作。
使用“Ready”和“Strobe”信号来进行应答工作。
同步工作采用同步时标联络:
同步工作场景下要求CPU和I/O设备速度完全同步,此时需要专门的同步时标控制。
连接方式
包括辐射连接方式(对I/O设备的增删都比较困难)和总线连接方式。
I/O设备与主机信息传送的控制方式(P162)
I/O 设备与主机交换信息时,共有 5 种控制方式:程序查询方式、程序中断方式、DMA 方式、I/O 通道方式和 I/O 处理机方式。其中前 3 种方式是基本的且广泛应用的控制方式。
三种方式的工作特点:
项目 | 程序中断方式 | DMA方式 |
数据传送 | 程序传送 | 硬件传送 |
CPU响应时间 | 一条指令结束时响应 | 指令周期内的任一存取周期结束时 |
处理异常 | 可以 | 不可以 |
是否中断现行程序 | 是(需要保护现场) | 否 |
优先级 | 低 | 高 |
DMA方式主要用于大批数据的传送,例如读写磁盘、图像处理、高速数据采集系统,提高系统吞吐量。
5.3 I/O设备与主机交换信息时,共有哪几种控制方式?简述它们的特点。
参考答案要点:
I/O设备与主机交换信息时,共有5种控制方式:程序查询方式、程序中断方式、DMA方式、I/O通道方式和I/O处理机方式。其中前3种方式是基本且仍然广泛应用的控制方式。
程序查询方式的特点:控制简单,硬件开销小;CPU与外设是串行工作的,系统效率低。适用于CPU不太忙且传送速度要求不太高的场合。
程序中断方式的特点:CPU和外设可并行工作,提高了CPU的效率,不仅适于主机和外设之间的数据交换,还特别适于对外界随机事件的处理。适用于CPU较忙,传送速度不太高的系统中,尤其适合实时控制及紧急事件的处理。
DMA方式的特点:完全由硬件(DMA控制器)负责完成信息交换,信息传递从以CPU为中心,转为以内存为中心,CPU和外设可并行工作,对高速大批量数据传送特别有用。但缺点是只能进行简单数据交换,电路结构复杂,硬件开销大。
程序查询方式
CPU 通过程序不断查询 I/O 设备是否已做好准备,若设备未准备就绪,就继续查询,直到查得设备准备就绪,就将数据从 IO 接口送至 CPU。这种方式下 CPU 和 IO 设备处于串行工作状态,在反复的查询过程中 CPU 不能执行原程序,相当于原地踏步,工作效率不高。程序查询方式中,CPU与设备串行工作,传送与主程序串行工作。
程序中断方式
CPU 启动 I/O 设备后,继续执行自身程序,只是当 I/O 设备准备就绪并向CPU 发出中断请求后才予以响应。这种方式解决了 CPU 原地踏步的问题。CPU与设备并行工作,传送与主程序串行工作。
直接存储器存取(DMA)
主存与 IO 设备之问有一条数据通路,不需要调用中断服务程序就可以直接访问主存。当这种访问与 CPU 访问主存发生冲突时,CPU 总是将总线占有权让给DMA,通常这个时长是一个读取周期,此时称为窃取周期。
I/O接口(P186)
总线方式的 I/O 接口包括:数据线+设备选择线+命令线+状态线
接口的功能和组成:
- 选址
- 传送命令
- 传送数据
- 反映I/O设备工作状态
接口按照不同的标准可以分为不同的类型,包括:
- 数据传送方式:串行接口、并行接口
- 功能选择的灵活性:可编程接口、不可编程接口
- 通用性:通用接口、专用接口
- 数据传送控制方式:程序性接口、DMA接口
程序查询方式(P190)
程序查询方式的核心问题在于每时每刻不断查询 IO 设备是否准备就绪。
1.测试指令:用来查询I/O设备是否已经准备就绪
2.传送指令:当I/O设备已准备就绪时,执行传送指令
3.转移指令:当I/O设备未准备就绪,执行转移指令,转至测试指令,继续测试I/O设备的状态。
根据例题的计算,程序查询方式对于鼠标的响应还算可以,但频繁的查询完全无法应对磁盘IO。
程序中断方式(P193)
在I/O设备与主机交换信息时,由于设备本身机电特性的影响,其工作速度较低,与 CPU 无法匹配,因此,CPU 启动设备后,往往需要等待一段时间才能实现主机与I/O设备之间的信息交换。如果在设备准备的同时,CPU 不作无谓的等待,而继续执行现行程序,只有当I/O设备备就绪向 CPU 提出请求后,再暂时中断 CPU 现行程序转I/O服务程序,这便产生了IO中断。
补充题1:CPU 响应的中断的条件是什么?响应中断后CPU将进入什么工作周期?该工作周期前后各是什么阶段?
参考答案要点:
1、CPU响应中断的条件可以归纳为三条:
1)有中断请求;
2)CPU允许中断,即中断允许状态IF=1(或EINT=1);
3)一条指令执行结束。
2、响应中断后CPU将进入中断周期,该工作周期之前是指令的执行阶段,之后是取指阶段。
程序中断的接口电路
为了实现I/O中断,其接口电路中需要配置相关的硬件:
- 中断请求触发器(INTR)和中断屏蔽触发器(MASK)
- 排队器:当多个中断源同时向 CPU 提出请求时,CPU 只能按中断源的不同性质对其排队,给予不同等级的优先权,并按优先等级的高低子以啊应。就I/O中断而言,速度越高的I/O设备,优先级越高。
- 中断向量地址形成部件(设备编码器)
向量地址和中断服务程序的入口地址是两个不同的概念
CPU 总是在统一的时间,即每条指令执行阶段的最后时刻,查询所有的设备是否有中断请求
程序中断的处理过程
大致可以划分为如下阶段:
- 中断请求
- 中断判优
- 中断响应
- 中断服务
- 中断返回
中断服务程序(背图)
大致可以划为如下几个阶段:
- 保护现场:由中断隐指令保护程序的断点;中断服务程序保护通用寄存器和状态寄存器的内容。
- 中断服务(设备服务)
- 恢复现场
- 中断返回
根据能否在中断中处理新的中断可以划分为多重中断(中断嵌套)和单重终端,二者处理关中断的时机有区别。
补充题2:程序中断方式中“保护现场”的含义是什么?“保护现场”是如何实现的?
参考答案要点:
1)保护现场的含义有两重,一是保存程序的断点,二是保存通用寄存器和状态寄存器的内容;
2)保存程序断点由中断隐指令通过硬件电路完成;而保存通用寄存器和状态寄存器的内容则由中断服务程序完成,通常是由压栈指令(PUSH)压入堆栈保存/在中断服务程序的起始部分安排若干条存数指令,将寄存器的内容存至存储器中保存。
DMA方式(P201)
DMA方式下主存与I/O设备之问有一条数据通路不需要调用中断服务程序就可以直接访问主存。
由于DMA接口和CPU共享主存,这有可能导致访问的冲突,为此有三种解决方法:
- 停止CPU访问主存:适合数据传输率很高的I/O设备,但还是会浪费很多时间在准备数据上。
因此DMA可以设置一个小存储器,先将数据写入小存储器,再和主存交换数据,提高单次传输的数据吞吐。
- 周期挪用(周期窃取):在这种方法中,每当I/O设备发出 DMA 请求时,I/O设备便挪用或窃取总线占用权一个或几个主存周期,而 DMA 不请求时,CPU 仍继续访问主存。
应该指出,I/O设备每挪用一个主存周期都要申请总线控制权、建立总线控制权和归还总线控制权。因此,尽管传送一个字对主存而言只占用一个主存周期,但对 DMA 接口而言,实质上要占2-5个主存周期(由逻辑线路的延迟特性而定)。因此周期挪用的方法比较适合于I/O设备的读/写周期大于主存周期的情况。
DMA 访问主存有三种可能:
(1)CPU 此时不访存
(2)CPU 正在访存(总线周期结束即可转让控制权)
(3)CPU 与 DMA 同时请求访存:此时 CPU 将总线控制权让给 DMA
优点:既实现了 I/O 传送,又较好地发挥了主存与 CPU 的效率,被广泛采用。
- DMA与CPU交替访问
周期挪用是什么?
周期挪用(周期窃取):在这种方法中,每当I/O设备发出 DMA 请求时,I/O设备便挪用或窃取总线占用权一个或几个主存周期,而 DMA 不请求时,CPU 仍继续访问主存。
DMA 访问主存有三种可能:
(1)CPU 此时不访存
(2)CPU 正在访存(总线周期结束即可转让控制权)
(3)CPU 与 DMA 同时请求访存:此时 CPU 将总线控制权让给 DMA
优点:既实现了 I/O 传送,又较好地发挥了主存与 CPU 的效率,被广泛采用。
DMA 与主存交换数据的三种方式(不常考)
(1)停止 CPU 访问主存:控制简单,未充分发挥 CPU 对主存的利用率(主存有空闲);
(2)周期挪用:既实现了 I/O 传送,又较好地发挥了主存与 CPU 的效率,被广泛采用;
(3)DMA 与 CPU 交替访问:不需要申请、建立、归还总线的使用权,但是硬件逻辑复杂。
DMA接口
DMA 接口的功能:
- 向 CPU 申请DMA传送
- 处理总线控制权的转交
- 在DMA期间管理系统总线
- 确定传送的起始地址和数据长度
- 数据传送完成后发出 DMA 完成信号
DMA接口中也有一系列硬件提供支持,例如:
- 主存地址寄存器(Addr Reg, AR):在开始传送数据前由CPU写入,每交换一次+1指向下一块主存。
- 字计数器(Word Counter,WC):记录总字数,通常以交换字数的补码值预置,每传送一个字+1,直到全部传送完毕到高位溢出。
- 数据缓冲寄存器(BR)
- DMA控制逻辑
- 中断机构
- 设备地址寄存器(DAR)
DMA的工作过程
DMA的工作划分为三个阶段:
- 预处理:向DMA传输主存起始地址、设备地址、传送数据个数并启动设备。CPU执行主程序实现DMA传送的初始化设置。
- 数据传送:分批传送数据,结束后向CPU申请中断。由DMA控制器实现内存和外设间的数据传送。
- 后处理:中断服务程序做DMA结束处理。中断处理程序判断传送的正误,对写入主存的数据进行校验,完成善后工作。(校验送入主存的数据是否正确;决定是否继续用DMA传送其他数据库块,若继续传送,则又要对DMA接口进行初始化,若不需要传送,则停止外设;测试在传送过程中是否发生错误,若出错,则转错误诊断及处理错误程序。
以硬盘读写为例,说明在主机和外设之间进行数据传送,为什么需要采用DMA方式?
一些高速外设,如硬盘、光盘等I/O设备,经常需要和主存进行大批量的数据交换;若采用程序查询方式或程序中断方式来完成,即通过CPU执行程序来完成数据交换,数据交换都是以字或字节为单位,速度较慢,极可能造成数据的丢失,因而不能满足批量数据的高速传递需求。因此,需要借助于硬件,比如DMA控制器来实现主存和高速外设之间的直接数据传送。
补充题3:高速外设与主机进行数据交换,为何不选用程序中断方式?应该以何种方式完成?为什么?
参考答案要点:
一些高速外设,如硬盘、光盘等I/O设备,经常需要和主存进行大批量的数据交换;若采用程序中断方式来完成,也即CPU通过执行中断服务程序来完成,数据交换都是以字或字节为单位,且需要CPU芯片上的寄存器作为中间媒介,速度慢,无法满足此类外设的批量数据高速传输的需求,从而造成数据的丢失。
应该采用DMA方式完成。因为该方式是在内存和外设间建立了直连数据通路,借助于专门的硬件(DMA控制器)接管总线,实现访存,比之程序中断方式这种借助于软件实现的数据交换,速度要快得多,从而更适合于高速外设与主机之间的数据交换。
补充题4:简述DMA方式和中断方式的异同点?请说明DMA方式不能取代程序中断方式的理由。
参考答案要点:
- 相同点: 1)两种方式均为目前在微型机中主机与外设广泛采用的信息交换方式。 2)两种方式下主机和外设之间均可实现一定程度的并行工作。
- 不同点体现为如下几个方面: 1)数据传送:程序中断方式通过软件(中断服务程序)来完成信息交换;而DMA方式则是通过硬件(DMA控制器)来实现的。 2)响应时间:前者在一条指令执行结束时响应,后者在一个存取周期结束时响应; 3)随机事件处理能力:中断传送方式不仅适合于一般的信息交换,还适合对随机事件的处理;DMA方式仅适合简单数据的高速传输; 4)工作过程:前者是程序切换,需保存现场;后者是总线占有权的切换,无需保存现场。 5)优先级:通常情况下,DMA请求的优先级高于中断请求的优先级。
- DMA方式不能取代程序中断方式,理由如下:
1)DMA方式只能用于高速外设与内存之间的简单数据传递,却不能像中断方式那样能够处理复杂的随机事件;
2)在DMA方式的数据传送全过程中,本身需要利用中断方式来完成DMA传送的后处理。
补充题5:一个DMA 接口可采用周期窃取方式把字(32位)传送到存储器,它支持的最大批量为 4KB,现有的设备的传输率为 4MB/s。若存取周期为 100 ns, 一次预处理需1μs,每处理一次中断需 2μs。假设字之间的传输是无间隙的,若忽略预处理所需的时间,试问采用 DMA方式每秒因数据传输需占用处理器多少时间?如果完全采用中断方式(一次中断传送一个字)又需占用处理器多少时间? 由此可以得出什么结论?
参考答案要点:
1) 每个存取周期传输1个字(32位),即4个字节
则传送4MB则需要1M个存取周期,考虑到每传送4KB,即1K个字,需中断处理一次。因此,DMA方式每秒因数据传输占用处理器的时间:
0.1μs×1M +2μs×(1M/1K)=106.9ms
2)若采用中断方式,每传送一个字需要申请一次中断,则需占用处理器的时间:
2μs×1M=2.097s
3)若采用中断方式,完成1M个字的传输需至少2.097秒才能完成,无法满足高速外设数据传输的要求,会造成数据丢失。因此,对于高速外设与内存之间的成组数据交换,宜采用DMA方式完成传输。
第六章:计算机的运算方法
Key point:
进位计数制之间的转换(包括整数部分和小数部分)
定点数:原、反、补码之间的转换
浮点数:给你一个给定格式的浮点数代码,能否写出其真值
移位操作(逻辑移位、算术移位)
二进制补码的加减运算及溢出判断
给定原码一位乘法和定点补码一位乘法的计算过程(步骤)
原码恢复余数除法 原码不恢复余数除法
浮点数的加减运算(对阶 尾数相加减 结果规格化)
浮点数乘法(阶码相加 尾数相乘 结果规格化)
ALU的功能和组成(仅了解)
一、 无符号数和有符号数
计算机中的数均放在寄存器中,通常称 寄存器的位数 为 机器字长。
1.无符号数
取值范围: ~
无符号数,指的是没有符号的数,也就是说寄存器中的每一位都可以用来存放数值。
因为没有符号,所以 8 位寄存器可以存放范围大小的数字,即 0 ~ 255。同理,16 位寄存器可以存放范围大小的数字,即 0 ~ 65535。
2.有符号数
取值范围: ~
有符号数与无符号数恰好相反,在存放有符号数的时候,要在寄存器中留出对应的位来存放正负符号。
正:0 负:1
3.进制
4.真值 机器数
真值:带 ”+“ 或 ”-“ 符号
机器数: 把符号数字化 0正 1负
二、带符号数的编码方式
1.原码表示法
- 整数:
其中,x 为真值,n 为整数的位数。注意,在上述公式中,逗号是用来隔开符号位和数值位的形式。
比如:当真值x=+1110时,,当x=-1110时,
字节为n+1时,原码整数范围为: (无法表示)
- 小数:
其中,x 为真值,n 为小数的位数。
比如:当真值x=0.1101时,,当x=-0.1101时,
字节为n+1时,原码小数范围为: (无法表示-1)
注:x=0时,
0有两种表示形式
原码的特点:简单、直观,但是在计算机中实现其加减法不方便。
2.反码表示法
符号位不变,
- 整数
其中,x 为真值,n 为整数的位数。
比如:当真值x=+1101时,,当x=-1101时,
- 小数
其中,x 为真值,n 为小数的位数。
比如:当真值x=0.0110时,,当x=-0.0110时,
注:x=0时,
0有两种表示形式
3.补码表示法
- 整数
其中,x 为真值,n 为整数的位数。
- 小数
其中,x 为真值,n 为小数的位数。
注:,即 “零” 的表示形式只有一种。
小技巧1:当真值为负时,补码可用 原码除符号位外,每位取反,末位加 1 求得。
小技巧2:还有一种简单的计算方案: 假设有一个数的原码是 1,0001010101011101011110000 ,想算补码,那么我们首先从右往左一个一个找,找什么呢?找第一次出现的 “1”。在本例子中,“1” 出现在 从右往左数 第 5 位。 现在不要眨眼,我们从右侧第 6 位开始,把后面 除了符号位以外 的东西全部 按位取反,得到1,1110101010100010100010000 ,这就是我们要的补码!!!!!!
4.移码表示法
补码符号位取反
原码、补码和反码
总结:
- 设为真值,为绝对值,说明[−x∗]补=[−x]补能否成立?
当x为真值,x∗为绝对值时,[−x∗]补=[−x]补不能成立。[−x∗]补=[−x]补的结论只在x>0时成立。当x<0时,由于[−x∗]补是一个负值,而[−x]补是一个正值,因此此时[−x∗]补不等于[−x]补。
- 讨论若[x]补>[y]补,是否有x>y?
若[x]补>[y]补,不一定有x>y。 [x]补>[y]补时x>y的结论只在 x>0、y>0,及 x<0、y<0时成立。当x>0、y<0时,有x>y,但由于负数补码的符号位为1,则[x]补<[y]补。同样,当x<0、y>0时,有x<y,但[x]补>[y]补。
注意:
- 绝对值小的负数其值反而大,且负数的绝对值越小,其补码值越大。因此, 当x<0、y<0时,若[x]补>[y]补,必有x<y。
- 补码的符号位和数值位为一体,不可分开分析。
- 完整的答案应分四种情况分析,但也可通过充分分析一种不成立的情况获得正确答案。
- 由于补码0的符号位为0,因此x、y=0可归纳到>0的一类情况讨论。
- 什么是机器零?若要求全0表示机器零,浮点数的阶码和尾数应采取什么机器数形式?
机器零指机器数所表示的零的形式,它与真值零的区别是:机器零在数轴上表示为“0”点及其附近的一段区域,即在计算机中小到机器数的精度达不到的数均视为“机器零”,而真零对应数轴上的一点(0点)。若要求用“全0”表示浮点机器零,则浮点数的阶码应用移码、尾数用补码表示(此时阶码为最小阶、尾数为零,而移码的最小码值正好为“0”,补码的零的形式也为“0”,拼起来正好为一串0的形式)。
设浮点数字长为16位,写出下列各种情况下它能表示的数的范围。设机器数采用1位符号位,答案均用十进制数表示。
(1)无符号数
(2)原码表示的定点小数
(3)补码表示的定点小数
(6)浮点数的格式为:阶码6位(含一位阶符),尾数10位(含一位数符)。机器数采用原码形式,分别写出其对应的正数和负数的真值范围。
(7)浮点数的格式为:阶码6位(含一位阶符),尾数10位(含一位数符)。机器数采用补码规格化形式,分别写出其对应的正数和负数的真值范围。
参考答案: 这题答案有问题 与书上不一致(按书本为准) 如此有争议感觉不能考吧(
(1)无符号数:0~-1或0~65535
(2)原码表示的定点小数:
正数区间:~1-,负数区间:-(1-)~ -
(3)补码表示的定点小数:
正数区间:~1-,负数区间:-1~ -
补码比原码多表示一个-1
(6) 最小正数:0.000000001×=2-9×2-30
最大正数:0.111111111×20,11111=(1-2-9)×2+31
最小负数:1.111111111×20,11111= -(1-2-9)×2+31
最大负数:1.000000001×21,11110= -2-9×2-30
因此,正数表示范围为:2-9×2-30 ~ (1-2-9)×2+31
负数表示范围为:-(1-2-9)×2+31 ~ -2-9×2-30
(7) 最小正数:0.100000000×21,00001=2-1×2-31
最大正数:0.111111111×20,11111=(1-2-9)×2+31
最小负数:1.000000000×20,11111= -1×2+31
最大负数:1.011111111×21,00001= -(2-9+2-1)×2-31
因此,正数表示范围为:2-1×2-31 ~ (1-2-9)×2+31
负数表示范围为:-1×2+31 ~ -(2-9+2-1)×2-31
三、数的定点表示和浮点表示
1.定点
小数点固定在某一位置的数为定点数
- 小数点位于数符和第一数值位之间:纯小数
- 小数点位于数值位之后:纯整数
2.浮点
(1)表示格式
(2)表示范围
(3)区别
规格化数
规格化数的定义为:
r=2,21≤∣S∣≤1
基数不同,规格化形式不同(指原码或真值):
- 基数r=2,尾数最高位为1;尾数左移一位,阶码-1
对于补码,要求的是符号位和第一数位不同
- 基数r=4,尾数最高两位不全为0;尾数左移两位,阶码-1
- 基数r=8,尾数最高三位不全为0;尾数左移三位,阶码-1
基数 r 越大,所能表示的浮点数范围越大,但精度越低。
详细比较参照该表:
S>0 | 规格化形式 | S<0 | 规格化形式 |
真值 | 0.1xxxxx | 真值 | -0.1xxxxx |
原码 | 0.1xxxxx | 原码 | 1.1xxxxx |
补码 | 0.1xxxxx | 补码 | 1.0xxxxx |
反码 | 0.1xxxxx | 反码 | 1.0xxxxx |
有两个特例:
- S=−21=−0.1000...0时,[S]原=1.100...0,[S]补=1.100...0,不符合要求,所以[−21]补不是规格化数
- S=−1,[S]补=1.000...0符号条件,所以[−1]补是规格化数
补充题 某规格化浮点数字长 16 位,尾数在前、阶码在后,其中尾数 10 位(含 1 位数 符),阶码 6 位(含 1 位阶符),阶码、尾数均用补码表示。
(1)求此规格化浮点数表示的最大负数的编码(用十六进制数表示)。
(2)若浮点数代码为C7F7H,求其真值(用十进制数表示)。
浮点数尾数在前,阶码在后(包含符号位)
四、加法器 Adder
6.23 画出实现Booth算法的运算器框图,要求如下:
(1)寄存器和全加器均用方框表示,指出寄存器和全加器的位数。
(2)说明加和移位的次数。
Subtraction
五、定点运算
1.算术移位
逻辑移位和算术移位的区别:
- 逻辑移位是对逻辑数或无符号数进行的移位,其特点是不论左移还是右移,空出位均补0,移位时不考虑符号位。
- 算术移位是对带符号数进行的移位操作,其关键规则是移位时符号位保持不变,空出位的补入值与数的正负、移位方向、采用的码制等有关。补码或反码右移时具有符号延伸特性。左移时可能产生溢出错误,右移时可能丢失精度。
2.定点加减法
补码加减法:
连同符号位一起相加,符号位产生的进位自然丢掉。
小数加法示例:
整数加法示例:
3.溢出判断
运算结果超出结果数据类型的表示范围,称为溢出(overflow)
- 正溢:超出最大正数
- 负溢:超出最小负数
由于数的表示能力有限,有时会出现符号位溢出的情况,有两种判断溢出的方式:
- 一位符号位判溢出:参加操作的两个数(减法时即为被减数和“求补”以后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出。
最高有效位的进位和符号位的进位进行异或,若为1,则为溢出
- 两位符号位判溢出:结果的双符号位相同表示未溢出,不同为溢出。最高符号位表示真正的符号。
- 00:结果为正,无溢出
- 01:正溢
- 10:负溢
- 11:结果为负,无溢出
硬件框图
4.定点乘法
乘法运算可用加和移位实现,若位数n=4,就是加 4 次,移 4 次。
由乘数的末位决定被乘数是否与原部分积相加,然后右移 1 位形成新的部分积,同时乘数右移1 位(末位移丢),空出高位存放部分积的低位。被乘数只与部分积的高位相加。
用**移位的次数(n次)**判断乘法是否结束。
- 原码一位乘法
乘积的符号位单独处理,数值部分为绝对值相乘。移位为逻辑移位。
已知x=−0.1110,y=0.1101,求[x⋅y]原:
部分积 | 乘数 | 说明 |
0.0000 | !1101 | 部分积一开始为0 |
+0.1110 | ㅤ | 乘数最后一位为1,加被乘数 |
0.1110 | ㅤ | ㅤ |
0.0111 | 0!110 | 右移一位 |
+0.0000 | ㅤ | 乘数最后一位为0,不加被乘数 |
0.0111 | 0! | ㅤ |
0.0011 | 10!11 | 右移一位 |
+0.1110 | ㅤ | +x∗ |
1.0001 | 10! | ㅤ |
0.1000 | 110!1 | 右移一位 |
+0.1110 | ㅤ | +x∗ |
1.0110 | 110! | ㅤ |
0.1011 | 0110! | 右移一位,结束 |
- 补码乘(Booth算法)
Booth算法不是唯一的补码乘法算法。
Booth算法的计算步骤主要依靠判断和的关系,可以总结为下表:
yi-yi+1 | yi+1−yi | 操作 |
00 | 0 | 右移一位 |
01 | 1 | +[x]补,右移一位 |
10 | -1 | +[−x]补,右移一位 |
11 | 0 | 右移一位 |
已知x=+0.0011,y=−0.1011,求[x+y]补:
先计算补码,得到[x]补=0.0011,[−x]补=1.1101,[y]补=1.0101。
部分积 | 乘数 | 操作 |
00.0000 | 1.01010 | 最后一个0是补充上去的 |
+11.1101 | ㅤ | 乘数最后两位为 10 ,+[−x]补 |
11.1101 | ㅤ | ㅤ |
11.1110 | 1!1.0101 | 右移一位(1/4) |
+00.0011 | ㅤ | 乘数最后两位为 01 ,+[x]补 |
00.0001 | 1! | ㅤ |
00.0000 | 11!1.010 | 右移一位(2/4) |
+11.1101 | ㅤ | 乘数最后两位为 10 ,+[−x]补 |
11.1101 | 11! | ㅤ |
11.1110 | 111!1.01 | 右移一位(3/4) |
+00.0011 | ㅤ | 乘数最后两位为 01 ,+[x]补 |
00.0001 | 111! | ㅤ |
00.0000 | 1111!1.0 | 右移一位(4/4) |
+11.1101 | ㅤ | 乘数最后两位为 10 ,+[−x]补 |
11.1101 | 1111! | 结束 |
5.定点除法
恢复余数法
商符和商值分开
余数为负时,需加上除数,将其恢复成原来的余数,逻辑左移一位。 上商0
余数为正时,逻辑左移一位,减去除数。 上商1
不恢复余数法(加减交替法)
余数为正(够减),上商”1“,+[−y∗]补;余数为负,上商“0”,+[y∗]补。
已知x=−0.1011,y=−0.1101,求[yx]原:
先计算需要的补码:[x∗]补=1.0101,[y∗]补=0.1101,[−y∗]补=1.0011。
余数 | 商 | 操作 |
0.1011 | 0.0000 | ㅤ |
+1.0011 | ㅤ | 余数为正,+[−y∗]补 |
1.1110 | 0 | 余数为负,上0 |
1.1100 | 0 | 左移一位 |
+0.1101 | ㅤ | 余数为负,+[y∗]补 |
0.1001 | 01 | 余数为正,上1 |
1.0010 | 01 | 左移一位 |
+1.0011 | ㅤ | 余数为正,+[−y∗]补 |
0.0101 | 011 | 余数为正,上1 |
0.1010 | 011 | 左移一位 |
+1.0011 | ㅤ | 余数为正,+[−y∗]补 |
1.1101 | 0110 | 余数为负,上0 |
1.1010 | 0110 | 左移一位 |
+0.1101 | ㅤ | 余数为负,+[y∗]补 |
0.0111 | 01101 | 余数为正,上1 |
补码除法(不是考试内容)
根据余数和[y]补的符号位判断上商和计算新余数:
[Ri]补和[y]补 | 商 | 新余数 |
同号 | 1 | 2[Ri]补+[−y]补 |
异号 | 0 | 2[Ri]补+[y]补 |
已知x=−0.1011,y=0.1101,求[yx]补:
计算出[x]补=1.0101,[y]补=0.1101,[−y]补=1.0011
余数 | 商 | 操作 |
1.0101 | 0.0000 | ㅤ |
+0.1101 | ㅤ | 异号,做加法 |
0.0010 | 1 | 同号上1 |
0.0100 | 1 | 左移一位 |
+1.0011 | ㅤ | 同号,做减法 |
1.0111 | 10 | 异号,上0 |
0.1110 | 10 | 左移一位 |
+0.1101 | ㅤ | 异号,做加法 |
1.1011 | 100 | 异号,上0 |
1.0110 | 100 | 左移一位 |
+0.1101 | ㅤ | 异号,做加法 |
0.0011 | 1001 | 同号上1 |
0.0110 | 10011 | 末位恒置1 |
6.浮点四则运算
浮点加减法
使用双符号位法
特例: 不是规格化的数
是规格化的数
浮点数乘法
阶码相加,尾码相乘
浮点数除法
阶码相减,尾码相乘
7.算术逻辑单元
(了解)
浮点表示法的特点:
① 优点:在有限位数(即不增加字长)内,既能保证有较大的取值范围,又能保证较高的精度。
② 缺点:浮点运算步骤多,速度慢,硬件成本较高 。
第七章:指令系统
Key point:
指令的基本格式
操作码的扩展
寻址方式的含义及有效地址的计算(基址寻址和变址寻址的异同点)
指令的基本格式(P300)
指令是计算机执行某种操作的命令,也就是常说的机器指令。一台机器中所有机器指令的集合,称这台计算机的指令系统。
指令由操作码和地址码构成,其中操作码的长度可以是固定的也可以是变化的。
前者将操作码集中放在指令字的一个字段内,这种格式便于硬件设计,指令译码时间短,广泛用于字长较长的、大中型计算机和小型计算机以及RISC。
对于长度不固定的指令,其操作码分散在指令字的不同字段中。这种格式可有效地压缩操作码的平均长度,在字长较短的微型计算机中被广泛采用。
通常使用扩展操作码技术,使操作码的长度随地址数的减少而增加。
例如以 4 为一段的地址码,每少一个地址就会多出 2^4 个空的状态,这些状态就可以保存新的指令;但是,需要注意在扩展操作码方式下,例如 2^4=16 个状态只能使用其中的 15 个,另一个状态需要用来留作标识是否启用低位的扩展操作码。
地址码的变化可以用如下表格来归纳:
ㅤ | 第一地址 | 第二地址 | 第三地址 | 第四地址 | 特点 |
四地址指令 | 第一操作数地址 | 第二操作数地址 | 结果地址 | 下个指令地址 | 共需要四次访存 |
三地址指令 | 第一操作数地址 | 第二操作数地址 | 结果地址 | -- | 使用PC指向下一个指令的地址 |
二地址指令 | 第一操作数地址 | 第二操作数地址 | -- | -- | 使用CPU内寄存器保存中间结果,减少一次访存操作 |
一地址指令 | -- | 第二操作数地址 | -- | -- | 其中一个操作数地址隐含在寄存器内 |
零地址指令 | -- | -- | -- | -- | 空操作等指令,或者隐藏在堆栈指针中 |
通过使用硬件资源(PC、ACC寄存器)可以减少访存次数,扩大寻址空间。
设指令字长为 16 位,采用扩展操作码技术,每个操作数的地址为 6 位。如果定义了 13 条二地址指令,试问还可安排多少条一地址指令?
另一个题:
某机指令字长 16 位,每个操作数的地址码为 6 位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式。 若零地址指令有 M 种,一地址指令有 N 种,则二地址指令最多有几种? 若操作码位数可变,则二地址指令最多允许有几种?
操作码定长:二地址指令条数=16-M-N
操作码变长(采用操作码扩展技术):
设二地址指令有 X 种,则有如下的等式:((16−X)∗(2^6−N))∗2^6=M则 X=16−(M/2^12+N/2^6),其中 M/2^12+ N/2^6 取上整数。
指令字长
在早期计算机中,指令字长、存储字长和机器字长往往是相等的;现在一台机器的指令系统可以采用位数不同的指令,即指令系统是可以变长的。
操作数和操作(P304)
访存次数
数据寻址(P310)
指令寻址比较简单,分为顺序寻址和跳跃寻址,其中跳跃寻址通过转移类指令实现。
指令字中有专门的一段用来标识寻址方式,通常指令字中的地址也并不是真实地址,被称为形式地址(用A表示),通过寻址方式确定的地址为有效地址(用EA表示)。
寻址方式 | 寻址特点 | 地址关系 |
立即(数)寻址 | A就是操作数本身,使用补码格式 | -- |
直接寻址 | A就是EA | EA=A |
隐含寻址 | 操作数地址隐藏在操作码或某个寄存器里 | -- |
间接寻址 | 形式地址为保存有效地址的字的地址 | EA=(A) |
寄存器寻址 | ㅤ | EA=Ri |
寄存器间接寻址 | ㅤ | EA=(Ri) |
基址寻址 | ㅤ | EA=A+(BR) |
变址寻址 | ㅤ | EA=A+(IX) |
相对寻址 | ㅤ | EA=(PC)+A |
堆栈寻址 | ㅤ | ㅤ |
立即(数)寻址
形式地址本身就是操作数,使用补码表示。
直接寻址
形式地址本身就是有效地址。
隐含寻址
隐含寻址是指指令字中不明显地给出操作数的地址,其操作数的地址隐含在操作码或某个寄存器中。例如,一地址格式的加法指令只给出一个操作数的地址,另一个操作数隱含在累加器 ACC 中,这样累加器 ACC 成了另一个数的地址。
间接寻址
指令字中的形式地址不直接指出操作数的地址,而足指出探作数有效地址所在的存储单元地址,也就是说,有效地址是由形式地址间接提供的
对于一个指令字长为16位的指令,一次间接寻址的寻址范围为216=64K字,也就是说间接取了一个完整的16位作为地址;多次间址的寻址范围为215=32K字,因为其中一个被用来表示是否为最后一次间址。
寄存器寻址
在奇存器寻址的指令宇中,地址码字段直接指出了奇存器的编号。其操作数在由R,所指的寄存器内。由于操作数不在主存中,故寄存器寻址在指令执行阶段无需访存,减少了执行时间。
寄存器间接寻址
因有效地址不足存放在仔储单元中,而是存放在寄存器中,故称其为寄存器间接寻址,它比间接寻址少访存一次。
基址寻址
基址寻址需设有基址寄存器 BR。其操作数的有效地址 EA 等于指令字中的形式地址与基址寄存器中的内容(称为基地址)相加。
基址寄存器可采用隐式的和显式的两种。
- 隐式:在计算机内专门设有一个基址寄存器BR,使用时用户不必明显指出该基址奇存器,只需由指令的寻址特征位反映出基址寻址即可。
- 显式:在一组通用寄存器里,由用户明确指出哪个寄存器用做基址寄存器,存放基地址。
基址寻址可以扩大操作数的寻址范国,因基址寄存器的位数可以大于形式地址 A 的位数。
当主存容量较大时,若采用直接寻址,因受A的位数限制,无法对主存所有单元进行访问,但采用基址寻址便可实现对主存空间的更大范围寻访。例如,将主存空间分为若干段,每段首地址存于基址寄存器中,段内的位移量由指令字中形式地址 A指出,这样操作数的有效地址就等于基址寄存器内容与段内位移量之和,只要对基址寄存器的内容作修改,便可访问主存的任一单元。
基址寻址在多道程序中极为有用。用户可不必考虑自己的程序存于主存的哪一空间区域。完全可由操作系统或管理程序根据主存的使用状况,赋予基址寄存器内一个初始值(即基地址),便可将用户程序的逻辑地址转化为主存的物理地址(实际地址),把用户程序安置于主存的某一空间区域。
例如,对于一个具有多个寄存器的机器来说,用户只需指出哪一个寄存器作为基址寄存器即可,至于这个基址寄存器应赋予何值,完全由操作系统或管理程序根据主存空间状况来确定。在程序执行过程中,用户不知道自己的程序在主存的哪个空间,用户也不可終改基址寄存器的内容,以确保系统安全可岸地运行。
变址寻址
变址寻址与基址寻址的有效地址形成过程极为相似。由于两者的应用场合不同,因此从本质来认识,它们还是有较大的区别。
- 基址寻址主要用于为程序或数据分配存储空间,故基址寄存器的内容通常由操作系统或管理程序确定,在程序的执行过程中其值是不可变的,而指令字中的A是可变的。
- 在变址寻址中,变址寄存器的内容是由用户设定的,在程序执行过程中其值可变,而指令字中的A 是不可变的。
变址寻址主要用于处理数组问题,在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。
比较基址寻址和变址寻址:
- 相同点:二者都可有效地扩大指令寻址范围。
- 不同点:
- 二者的使用方式不同。 变址寻址方式:在程序执行过程中变址寄存器的值可变,指令字中的A不可变。适合于处理一维数组。 基址寻址方式:在程序执行过程中基址寄存器的值不可变,指令字中的A可变;适用于扩大有限字长指令的访存空间。
- 二者的应用目的不同。 变址寻址方式面向用户,用于对成批数据的连续的便捷访问; 基址寻址方式面向系统,用于为程序分配存储空间及扩大访存空间。
相对寻址
相对寻址的有效地址是将程序计数器PC 的内容(即当前指令的地址)与指令字中的形式地址 A 相加而成。
相对寻址常被用于转移类指令,转移后的目标地址与当前指令有一段距离,称为相对位移量,它由指令字的形式地址 A 给出,故A 又称位移量。位移量A可正可负,通常用补码表示。
堆栈寻址
可被视为一种隐含寻址。
指令设计(P323)
RISC的主要特征
RISC Reduced Instruction Set Computer 精简指令系统计算机
选用使用频度较高的一些简单指令,复杂指令的功能由简单指令来组合
指令长度固定、指令格式种类少、寻址方式少
只有 LOAD / STORE 指令访存
CPU中有多个通用寄存器
采用流水技术 一个时钟周期内完成一条指令
采用组合逻辑实现控制器
采用优化的编译程序
CISC的主要特征
CISC Complex Instruction Set Computer 复杂指令系统计算机
系统指令复杂庞大,各种指令使用频度相差大
指令长度不固定、指令格式种类多、寻址方式多
访存指令不受限制
CPU中设有专用寄存器
大多数指令需要多个时钟周期执行完毕
采用微程序控制器
难以用优化编译生成高效的目标代码
RISC和CISC的比较
- RISC更能充分利用 VLSI 芯片的面积
- RISC 更能提高计算机运算速度 指令数、指令格式、寻址方式少,通用寄存器多,采用 组合逻辑 ,便于实现指令流水
- RISC 便于设计,可降低成本,提高可靠性
- RISC 有利于编译程序代码优化
- RISC 不易实现指令系统兼容
第八章:CPU的结构和功能
Key point:
CPU的功能和组成
指令周期的概念
中断周期内CPU要完成哪几项操作
借助中断屏蔽技术改变中断处理的优先级,绘制CPU运行轨迹图
CPU的结构(P337)
CPU包括控制器和运算器。
控制器的基本功能:
- 取指令
- (间址)
- 分析指令
- 执行指令
CPU的结构包括:
- ALU
- 寄存器
- 中断系统
- CU:提供完成全部指令操作的微操作命令序列部件。
- 系统、内部总线
CPU的寄存器
寄存器可以大致分为几类:
- 用户可见寄存器:通用寄存器、数据寄存器、地址寄存器、条件码寄存器
- 控制和状态寄存器:MAR、MDR、PC和IR
其中四个寄存器非常重要,分别用于:
- MAR:存储器地址寄存器,用于存放将被访问的存储单元的内存地址
- MDR:存储器数据寄存器,用于存储将要存入或者读出的数据
- PC:程序计数器
- IR:指令寄存器
指令周期
CPU取出并执行完一个指令的全部时间被称为一个指令周期。指令周期的长度取决于指令,并不是固定的,并且指令周期的子周期也不固定,可以包括取指周期、间址周期、执行周期、中断周期。为了区分这四个周期,CPU内设置了相应的标志触发器。
指令周期的长度固定吗?不固定。由于计算机中各种指令执行所需的时间差异很大,因此为了提高 CPU运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是不一致的,也就是说指令周期对于不同的指令来说不是一个固定值。指令周期长度不一致的根本原因在于设计人员,为了提高CPU运行效率而这样安排的,指令功能不同,需完成的微操作复杂程度亦不同,因此,不同指令的指令周期也不同。
子周期 | 访存目的 | 标志触发器 | 触发条件 | 功能 |
取值周期 | 取指令 | FE | 总是 | 取出指令 |
间址周期 | 获取有效地址 | IND | 当使用间接方式寻址时 | 取出有效地址 |
执行周期 | 取操作数 | EX | 绝大多数指令 | 执行指令内容 |
中断周期 | 保存程序断点 | INT | 有中断请求且处于开中断 | 处理中断 |
- I/O设备
在中断周期中,CPU应完成关中断、保存断点和转中断服务程序入口三个操作
8.2 什么是指令周期?指令周期是否有一个固定值?为什么?
参考答案要点:
1)指令周期是指CPU每取出并执行一条指令所需的全部时间。
2)指令周期不是一个固定值。
3)由于计算机指令集中各种指令的操作功能不同,执行该指令时所需完成的微操作复杂程度亦不同。比如,有的指令的执行需安排间址周期,有的指令其执行阶段的操作步骤复杂,如浮点运算指令,因此,指令执行阶段所花的时间有较大差异。
若硬性要求所有指令执行时间一致,那么那些执行频率很高的简单指令,其指令周期中很多时间就浪费掉了,这反而会影响到程序的总体执行效率。
8.3 画出指令周期的流程图,分别说明图中每个子周期的作用。
参考答案要点:
流程图如下:
取指周期:完成取指令和分析指令的操作。
间址周期:取操作数的有效地址。
执行周期:执行指令的操作。
中断周期:将程序断点保存到存储器,转向中断服务程序入口。
8.5中断周期前是什么阶段?中断周期后又是什么阶段?在中断周期CPU应完成什么操作?
中断周期前是指令的执行阶段(处于执行周期)。中断周期后是取指令阶段(处于取指周期)。在中断周期中,CPU应完成关中断、保存断点和寻找中断服务程序入口地址三个操作。
数据流
中断系统(P359)
中断概念
计算机在执行过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运
行,转向对这些异常情况或特殊请求的处理,处理结束后返回到现行程序的间断
处,继续执行原程序,这就是“中断”。
中断的基本问题
引起中断的各种因素:
- 人为设置的中断(自愿中断)
- 程序性事故
- 硬件故障
- 外部事件
能引起中断的各个因素都被称为中断源,中断源包括:
- 不可屏蔽中断:比如电源掉电
- 可屏蔽中断:使用屏蔽机构屏蔽
在完整设置的中断系统下,需要满足中断请求&没有屏蔽&允许中断的条件才能响应中断。
中断周期的操作由中断隐指令(也就是硬件自动完成)完成,包括三箱操作:
- 关中断
- 保存程序断点(PC的内容)
- 寻找中断服务程序的入口地址值
计算机为了管理中断,在硬件上通常有哪些设置:
- 中断请求触发器(INTR):对中断源发来的中断请求信号进行登记
- 中断优先级排队器:对同时提出的多个中断请求信号进行裁决,选择一个最紧迫的进行响应
- 向量编码器:向量中断时产生向量地址
- 中断允许触发器(EINT):CPU的中断总开关
- 中断标记触发器(INT):用来建立中断周期状态(出现在指令周期附近,四个指令周期有各自的标记触发器)
当INT=1时,进入中断周期,执行中断隐指令的操作
- 中断屏蔽触发器(MASK):对可屏蔽的中断源进行开、关中断操作。
采用程序中断技术时,指令系统中往往需要有相关指令支持,例如开中断、关中断和中断返回。
单重中断和多重中断
单重中断和多重中断主要区别在“开中断”的时间,单重中断在中断服务程序的最后中断返回时才开中断,多重中断在进入中断服务程序完成保护现场后就开中断。
中断请求和中断判优
为了判断中断源,需要为每个中断源设置中断请求(标记)触发器,INTR。若干个INTR组合到一起,设置在CPU内可以构成一个中断请求标记寄存器。INTR也可以不设置在CPU内,而是各个中断源内,例如I/O设备的中断就是在各个接口电路内的。
任何中断系统都需要保证在一个时刻只响应一个中断源的请求,这就需要对中断请求进行判优,可以通过硬件排队和软件排队实现。
硬件排队也分为两种,分贝时链式排队器和CPU内的排队器。
形成中断服务程序入口地址
入口地址的寻找也可以分别通过硬件向量法和软件查询法实现,绝大多数情况下使用硬件向量法实现。
硬件向量法的实现有包括两种,分别是:
- 在向量地址内存内存放一条无条件转移指令
- 设置向量地址表,存放在存储器内。
补充题6:简述寻找中断服务程序入口地址的两种方法,各有何特点?
参考答案要点:
这两种方法分别是硬件向量法和软件查询法。
- 硬件向量法:利用分散设置在各个接口电路或设置在CPU芯片内的专门硬件(向量地址形成部件)产生向量地址,再根据向量地址访问相应内存单元,其内容即为中断服务程序入口地址。该方法速度快,被现代计算机普遍采用。
- 软件查询法:利用中断识别程序,按中断源的优先级从高到低,依次查询是哪个中断源发出的中断请求。当查询到某一中断源有中断请求时,通过无条件转移指令,直接跳转到该中断源的中断服务程序入口,机器便能自动进入中断处理。该方法可灵活改变中断源的优先级,控制方便,但查询时间较长。
中断响应
通常来讲,CPU固定在指令周期的最后处理中断请求。但是在一些情况下,一个指令周期可能很长,导致一些中断请求会被错过,这时可以在指令执行过程中添加一系列“查询断点”。
CPU进入中断周期时,需要进行保护程序断点、寻找中断服务程序的入口地址和关中断的操作,这是由一条中断隐指令实现的。中断隐指令是计算机指令系统中没有的指令,他是CPU在中断周期内有硬件自动完成的一条指令。
中断屏蔽
中断屏蔽技术适用于解决多重中断的场景。
要实现多重中断,需要确保两个条件:
- 提前设置“开中断”指令
- 优先级别高的中断源有权中断优先级别低的中断源
为了保证这一点,引入了屏蔽技术
为了实现屏蔽,设备需要配备抓们的屏蔽触发器MASK。将若干屏蔽触发器组合在一起构成的也就是一个屏蔽寄存器,其中保存的内容被称为屏蔽字。通过在中断服务恒旭中设置适当的屏蔽字,能够对优先级别不同的中断源起到屏蔽作用。
严格来讲,优先级包括响应优先级和处理优先级。其中响应优先级是由排队器上的物理连接顺序决定的,屏蔽字可以改变的是处理优先级。
因此,在中断服务程序的相应位置还需要进行“置屏蔽字”和“恢复屏蔽字”的操作。
第九章:控制单元的功能
Key point:
周期、机器周期和时钟周期(节拍)三者之间的关系
给定数据通路结构,给定指令(具有特定的寻址方式),写出来操作流程图,结合时序信号)
了解一下控制方式
三种周期:
- CPU 每取出并执行一条指令所需的全部时间叫指令周期
- 机器周期是在同步控制的机器中,所有指令执行过程中(执行一步相对完整的操作)的一个基准时间,通常以访问一次存储器所需的时间(访存周期)作为一个机器周期
- 时钟周期是指计算机主工作时钟的周期时间,它是计算机运行时最基本的时序单位,通常时钟周期等于计算机主频的倒数。
指令周期常常用若干个机器周期数来表示,机器周期也叫 CPU 周期;而一个机器周期又包含若干个时钟周期。
9.3 什么是指令周期、机器周期和时钟周期?三者有何关系?(画图说明)
参考答案要点:
指令周期:CPU每取出并执行一条指令所需的全部时间叫指令周期;
机器周期(也叫CPU工作周期):是在同步控制的机器中,所有指令执行过程中的一个基准时间,通常以访问一次存储器所需的时间作为一个机器周期;
时钟周期(又叫节拍):是CPU工作时钟的周期时间(主频的倒数),它是控制计算机操作的最小时间单位。
三者之间的关系:一个指令周期包含若干个机器周期,而一个机器周期又包含若干个时钟周期。
多级时序系统
机器周期是所有指令执行过程中的一个基准时间,机器周期取决于指令的功能及组件的速度。通常,以访问一次存储器的时间定为基准时间比较合适。
在一个周期里又可以完成若干个微操作,每个微操作也需要一定的时间。通过时钟发生器,可以产生时钟信号,通过节拍发生器就可以产生节拍,一个节拍的宽度就是一个时钟周期。在一个节拍内可以完成一个或几个同时执行的操作。节拍是计算机操作的最小时间单位。
总的来讲,一个指令完成的指令周期内包含若干个机器周期,每个机器周期包含若干时钟周期(节拍)。
各种周期(375)
取值周期:
- (PC) -> MAR
- M(R), M(MAR) -> MDR
- MDR -> IR
- (PC) +1 -> PC
间址周期:
- IR(AD) -> MAR
- M(R), M(MAR) -> MDR
- MDR -> IR(AD)
此处指令寄存器的数据地址字段比 MDR 的长度要小,这样写会有错误,此处是为了突出间址
执行周期
控制单元(CU)
控制单元具有发出各种微操作命令(即控制信号)序列的功能。
第十章:控制单元的设计
Key point:
组合逻辑控制器和微程序控制器的比较,各自的优缺点
说明微程序控制器的基本原理和工作过程
微程序控制器后继微地址的形成,尤其是如何根据操作码形成相应微程序入口地址
组合逻辑电路和微程序控制器
补充题5: 分析比较组合逻辑控制方式和微程序控制方式。
参考答案要点:
1)产生微命令的方法及核心器件:组合逻辑控制器由组合逻辑电路提供微命令,其核心器件是由各种门电路构成的复杂树形网络;微程序控制器由存储逻辑(微指令)提供微命令,其核心器件是控制存储器。
2)规整性:组合逻辑控制器设计不规整,微程序控制器设计规整;
3)可扩展性:组合逻辑控制器不易修改和扩充,后者则易于修改和扩充;
4)组合逻辑控制器执行指令快,微程序控制器执行指令速度慢;
5)前者多用于RISC架构机器,后者多用于CISC架构的系列机。
6)时序划分:组合逻辑控制三级时序:工作周期、节拍、工作脉冲,微程序控制二级时序:节拍电位、节拍脉冲
试比较组合逻辑控制器和微程序控制器的特点:
- 产生方法及器件:组合逻辑控制器由组合逻辑电路提供微命令,其核心器件是由各种门电路构成的复杂树形网络;微程序控制器由存储逻辑(微指令)提供微命令,其核心器件是控制存储器。
- 规整性:组合逻辑控制器设计不规整,微程序控制器设计规整
- 可扩展性:组合逻辑控制器不易修改和扩充,后者则易于修改和扩充
- 速度:组合逻辑控制器执行指令快,微程序控制器执行指令速度慢
说明组合逻辑控制器和微程序控制器在组成和原理上的异同:
- 相同:
- 基本功能相同,提供计算机各个部件协同运行所需的控制信号。
- 基本组成也相同,PC、IR及几个步骤完成一条指令的具体功能。
- 不同:
- 处理指令执行步骤方法不同。组合逻辑控制器是利用节拍发生器的节拍信号区分指令执行步骤;微程序控制器通过微指令地址的衔接区分指令执行步骤
- 提供控制信号的方案不同。组合逻辑控制器采用组合逻辑电路直接产生控制信号;微程序控制器是通过微地址译码期找到控存单元,取出的微指令经过解码才是控制信号。
使用组合电路涉及的 CU 会十分复杂,因此我们将CPU内的各个控制信号组合成一条条微指令,每个微指令包括若干微操作命令,这些微操作命令通过改变CPU的状态来实现一个指令。
微程序设计(P403)
微指令和微操作的关系,微指令和机器指令的关系,微程序和程序的关系
控制部件通过控制线向执行部件发出各种控制命令,通常这种控制命令叫做微命令,而执行部件接受微命令后所执行的操作就叫做微操作;微指令由若干微命令组合而成。
微程序控制器的基本工作原理:将控制器所需要的微操作命令,以微代码的形式编成微指令,存在专门的控制存储器中,CPU执行机器指令时,从控制存储器中取出微指令,对微指令中的操作控制字段进行解释,即产生执行机器指令所需的微操作命令序列。其具体的工作过程如下:
- 将用户程序的首地址送到PC,然后进入取值阶段。
- 取机器指令:从控制存储器中读取“取指微指令”,用产生的微命令控制CPU访存,读取机器指令,并送入指令寄存器IR。
- 形成微程序入口地址:根据机器指令的操作码,通过微地址形成电路,产生与该机器指令对应的微程序入口地址,并送入CMAR。
- 逐条取出机器指令对应的微程序并执行。
- 返回取指微指令,开始又一条机器指令的执行。如此不断重复,直到整个程序执行完为止。
微程序的实现核心是一个只读的高速存储器,并针对每一个指令编写对应的微程序,微程序保存到存储器上,包含了若干条微操作命令。
简述微程序控制器的基本工作原理。参考答案要点:
- 将控制器所需要的微操作命令(控制信号),以微代码的形式编成微指令,若干条微指令构成微程序,存在CPU的控制存储器中;
- CPU执行机器指令时,找到微程序入口,从控制存储器中逐条取出构成微程序的微指令;
- 对微指令中的操作控制字段进行解释,即产生执行机器指令所需的微操作命令序列。
(注意:和微程序控制的工作过程区分开)
(附:微程序控制器的工作过程)(不常考)
一条机器指令的读取与执行就是其对应的一段微程序的读取与执行,可以分为四步:
(1)从 CM 中读取“取指微指令”并执行,该微程序的执行就完成从主存取出一条机器指令(公操作)
(2)由取出的机器指令的操作码,经“微地址形成部件”,产生该指令对应的微程序入口地址
(3)由入口微地址,逐条取出微指令执行,产生该机器指令的执行所需要的微命令序列
(4)该段程序执行结束,使微地址指向取指微程序入口,又回到“取指微程序”,开始下一条机器指令的取指与执行
微程序控制单元
- 控制存储器(控存)是核心部件,用来存放全部的微程序
- CMAR是控存地址寄存器
- CMDR是控存数据寄存器
- 顺序逻辑用来控制微指令序列,生成下一条微指令
一条微指令包含两个字段,分别是操作控制字段和顺序控制字段(指出下条微指令的地址)
微指令的编码(控制)方式
- 直接编码方式
- 字段直接编码(显示编码)方式:将所有控制字段分成若干段,例如需要并发8个命令时分为8段。
- 字段间接编码(隐式编码)方式:一个字段的一些微命令需要另一个字段来解释。
- 混合编码
- 其他
10.10 微指令的操作控制主要有几种编码方式?各有何特点?哪一种控制速度更快?
参考答案要点:
一)主要有三种编码方式:1)直接编码方式;2)字段直接编码方式;3)字段间接编码方式。
二)特点: 1)直接编码:操作控制字段中,每一位代表一个微命令,简单直观,执行速度快,但微指令字长太长,控存成本高;2)字段直接编码:将互斥的微命令编入一个字段,通过译码产生所需微命令。微指令字长较短,增加了译码时间,减慢了执行速度;3)字段间接编码:一个字段的微命令兼由其它字段来解释。进一步缩短字长,但削弱了并行控制能力。
三)直接编码方式控制速度更快。
微指令序列地址的形成
多种形成方式,前两种为主:
- 直接由微指令的下地址字段指出(断定方式)
- 根据机器指令的操作码形成。 当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件(实际是一个编码器,其输入为指令操作码,输出就是对应该机器指令微程序的首地址。可以使用 PROM 实现,以指令的操作码作为PROM的地址,而相应的存储单元内容就是对应该指令微程序的首地址。)
- 增量计数器。类似PC的实现。
- 分支转移
- 通过测试网络形成
- 由硬件产生微程序入口地址。例如机器冷启动和中断。
一个CU内也可以通过多路选择器配合外部的状态来实现多种方式的选择。
微指令的地址有几种形成方式?各有何特点?
1)断定方式。该方式直接由微指令的下地址字段指出,属于最基本的也是最常用的微指令地址形成方式。
2)微地址形成部件生成。该方式根据机器指令的操作码经微地址形成部件编码形成。
3)增量计数器法(增量方式)。即(CMAR)+1->CMAR,该方式要求微指令在控存中顺序存储。
4)分支转移。该方式根据各种标志位决定微指令分支转移的地址,主要用于条件转移指令。
5)通过测试网络形成。该方式下,微指令地址中的高段由 H 段地址码直接形成,低段为测试地址,通过检测若干测试源(比如触发器)的状态确定。
6)由硬件产生微程序入口地址。该方式下,诸如取指微程序入口地址、中断周期微程序入口地址等由专门的硬件电路产生。
补充题4:微指令后继微地址的形成方式有哪几种?对于其中的根据机器指令的操作码形成微程序入口地址的方法,请画图做出说明。
参考答案要点:
一)微指令后继微地址的形成方式主要有6种,包括:
1)断定方式 直接由微指令的下地址字段指出(断定方式)
2)根据机器指令的操作码形成 当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成
3)增量计数器法(增量方式)(CMAR) + 1 → CMAR
4)分支转移方式
5)通过测试网络形成
6)由硬件产生微程序入口地址
二)根据操作码形成微程序入口地址的方法
如上图所示,机器指令取至指令寄存器后,指令的操作码作为微地址形成部件的输入,来形成微指令的地址。因此,可以把微地址形成部件理解为一个编码器。微地址形成部件可采用PROM实现,即以指令的操作码作为PROM的地址,而相应的存储单元中就存放着对应该指令微程序的首地址。
- 作者:Rainnn
- 链接:https://tangly1024.com/article/181ce441-7e71-42f8-9b56-da4c37c975b6
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。