计算机组织与结构
冯诺依曼计算机
采用二进制形式表示数据和指令;指令由操作码和地址码组成
将程序和数据存放在存储器中,使计算机在工作时从存储器取出指令加以执行,自动完成计算任务:“存储程序”和“程序控制”
指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现
计算机由存储器、运算器、控制器、输入和输出设备五大基本部件组成,规定了 5 部分的基本功能
数的表示
真值:现实中真实的数值
机器数:计算机中用 0 和 1 数码组合表达的数值
定点数:固定小数点的位置表达数值的机器数
定点整数:将小数点固定在机器数的最右侧表达的整数
定点小数:将小数点固定在机器数的最左侧表达的小数
浮点数:小数点浮动表达的实数
无符号数:只表达 0 和正整数的定点整数
有符号数:表达负整数、0 和正整数的定点整数
符号位需要占用一个位,常用机器数的最高位
0 表示正数、1 表示负数
具有原码、反码、补码、移码
数的机器码表示
掌握原码、补码、反码、移码的定义、特性、相互转换
浮点数的表示方法
规格化表示原则
存储器
分类
按存储介质分
半导体存储器:用半导体器件组成的存储器
磁表面存储器:用磁性材料做成的存储器
按存储方式分
随机存储器:任何存储单元的内容都能被随机存取,且存取时间和存储单元的物理位置无关
顺序存储器:只能按某种顺序来存取,存取时间和存储单元的物理位置有关
按存储器的读写功能分:ROM,RAM
按信息的可保存性分:非永久记忆,永久记忆
按在计算机系统中的作用分:主存、辅存、高速缓存、控制存储器
SRAM/DRAM
SRAM:用作小容量、高效率的内存多用作 Cache
DRAM:用作主存,需要定期对存储矩阵所有行逐一刷新
存储器与 CPU 的连接方式
CPU 对存储器进行读/写操作,首先由地址总线给出地址信号,然后要对存储器发出读操作或写操作的控制信号,最后在数据总线上进行信息交流
所以存储器与 CPU 之间需要
地址线的连接
数据线的连接
控制线的连接
存储器芯片的容量是有限的,为了满足实际存储器的容量要求,需要对存储器进行扩展
存储器拓展
位拓展法
只加长每个存储单元的字长,而不增加存储单元的数量
字拓展法
仅增加存储单元的数量,而各单元的位数不变
字位同时拓展法
既增加存储单元的数量,也加长各单元的位数
Cache 存储器
在相对容量较大而速度较慢的主存与高速处理器之间设置的少量但快速的存储器
主要目的:提高存储器速度
为追求高速,包括管理在内的全部功能由硬件实现
Cache 命中率
Cache 访问效率
Cache 结构
Cache 的数据块称为行(线 Line,槽 Slot
主存的数据块称为块(Block)
行与块是等长的,包含 k=2w 个主存字
Cache 由数据存储器和标签存储器组成
数据存储器:高速缓存主存数据
标签存储器:保存数据所在主存的地址信息
主存与 Cache 的地址映射
Cache 通过地址映射(mapping)的方法确定主存块与 Cache 行之间的对应关系,确定一个主存块应该存放到哪个 Cache 行中
全相联映射(fully associative mapping)
可以将一个主存块存储到任意一个 Cache 行
优点:命中率较高,Cache 的存储空间利用率高
缺点:线路复杂,成本高,速度低
直接映射(direct mapping)
将一个主存块存储到唯一的一个 Cache 行
优点:硬件简单,容易实现
缺点:命中率低, Cache 的存储空间利用率低
组相联映射(set associative mapping)
可以将一个主存块存储到唯一的一个 Cache 组中任意一个行
组间采用直接映射,组内为全相联
硬件较简单,速度较快,命中率较高
替换问题
新主存块要进入 Cache,决定替换哪个原主存块
直接映射,只能替换唯一的一个 Cache 行
全相联和组相联,需要选择替换策略(算法)
最不常用(LFU: least-frequently used) 替换使用次数最少的块
最近最少使用法(LRU: least-recently used) 本指替换近期最少使用的块,实际实现的是替换最久没有被使用的块
随机法(random) 随意选择被替换的块,不依赖以前的使用情况
指令系统
指令格式
单字长二地址指令
操作码字段 OP 长度为 7 位,可指定 128 条指令
源寄存器和目标寄存器都是通用寄存器(可分别指定 16 个)。两个操作数均在寄存器中,所以是寄存器-寄存器型指令
这种指令结构常用于算术逻辑运算类指令
操作码拓展技术
常用数据寻址方式
隐含寻址:在指令中不明显地给出操作数的地址
寄存器寻址:指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。即操作数不放在内存中,而是放在通用寄存器中
立即寻址:指令的地址字段指出的不是操作数的地址,而直接是操作数本身
直接寻址:在指令格式的地址字段中,直接给出操作数在内存的地址
寄存器间接寻址:指令中指定的寄存器中的内容不是操作数,而是操作数的地址
基址(寄存器相对)寻址:基址寄存器的内容加上指令中给定的形式地址(偏移量),形成操作数的有效地址
中央处理器
CPU 的基本组成
控制器完成对整个计算机系统操作的协调与指挥
控制机器从内存中取出一条指令,并指出下一条指令在内存中的位置
对指令进行译码,并产生相应的操作控制信号,送往相应的部件,启动规定的动作
指挥并控制 CPU、内存与输入/输出(I/O)设备之间数据流动的方向
运算器是数据加工处理部件,所进行的全部操作由控制器发出的控制信号指挥
执行所有的算术运算
执行所有的逻辑运算,并进行逻辑测试
指令周期
一个完整的指令周期由若干机器周期:
取指周期——间址周期——执行周期——中断周期
所有指令的第一个机器周期必为取指周期
一个基本的 CPU 周期包含 4 个时钟周期,对于某些 CPU 周期可以包含更多的时钟周期
不同指令的指令周期所包含的时钟周期个数不一定相同
时序信号
计算机的协调动作需要时间标志,而且需要采用多级时序体制。而时间标志则用时序信号来体现
硬布线控制器中,时序信号往往采用主状态周期-节拍电位-节拍脉冲三级体制
主状态周期(指令周期):包含若干个节拍周期,可以用一个触发器的状态持续时间来表示
节拍电位(机器周期):表示一个 CPU 周期的时间,包含若干个节拍脉冲
节拍脉冲(时钟周期):表示较小的时间单位
微程序控制器中,时序信号则一般采用节拍电位-节拍脉冲二级体制
微指令和微程序
微指令
一个 CPU 周期中,实现一定操作功能的一组微命令的组合
微指令一般包含操作控制字段和顺序控制字段
操作控制:用于发出管理和指挥全机工作的控制信号
顺序控制:用于决定产生下一条微指令的地址
所有的微指令都存放于控制存储器中,使用微地址访问
微程序
能实现一条机器指令功能的多条微指令序列
每条机器指令都对应着一段微程序
微程序控制器
微程序控制器主要构成部件
控制存储器(CM)
存放实现全部指令系统的微指令
由只读存储器构成,要求速度快,读出周期短
微指令寄存器
存放由控制存储器读出的一条微指令信息
微地址寄存器:决定将要访问的下一条微指令的地址
微命令寄存器:保存一条微指令的操作控制字段和判别测试字段的信息
地址转移逻辑
用于跳跃寻址微指令时,承担自动完成修改微地址的任务
并行处理技术
并行性(Parallelism):
在同一时刻或是同一时间间隔内完成两种或两种以上性质相同或不相同的工作
同时性(Simultaneity):同一时刻发生的并行性
并发性(Concurrency):同一个时间间隔内发生的并行性
并行性的等级
指令内部并行:微操作之间(相容微命令信号)
指令级并行(ILP:Instruction Level Parallel)
线程级并行(TLP:Thread Level Parallel )
程序级并行
系统级并行:分布式系统、多机系统、机群系统
提高并行性的技术途径
时间重叠(Time-interleaving)= 时间并行
多个过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分
资源重复(Resource-replication)= 空间并行
通过重复设置资源(尤其是硬件资源),提高性能
资源共享(Resource-sharing)
使多个任务按一定时间顺序轮流使用同一套硬件设备
CPU 流水线
流水线实际上是把一个功能部件分解成多个独立的子功能部件(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依靠多个子功能部件并行工作来缩短所有任务的执行时间
流水线有助于提高整个程序(所有任务)的吞吐率,但并没有减少每个指令(任务)的执行时间
流水线各个功能段所需时间应尽量相等。否则,时间长的功能段将成为流水线的“瓶颈”
流水线的主要问题
结构相关(资源冲突):当指令重叠执行过程中,硬件资源满足不了指令重叠执行的要求
数据相关(数据冲突) :在同时执行的多条指令中,一条指令依赖前一条指令的执行结果(数据)却无法得到
控制相关(控制冲突):流水线遇到分支指令或其他改变 PC 值的指令
CPU 性能评价
总线系统
总线是构成计算机系统的互连机构,是多个系统功能部件之间进行数据传送的公共通路
总线的结构形态
内部总线:CPU 内部连接各寄存器及运算部件之间的总线
系统总线:CPU 同计算机系统的其他高速功能部件,如存储器、通道等互相连接的总线
I/O 总线:中低速 I/O 设备间互相连接的总线
总线仲裁
主设备(Master):控制总线完成数据传输
从设备(Slave):被动实现数据交换
总线仲裁:决定当前控制总线的主设备
集中仲裁:中央仲裁器负责
分布仲裁:比较各个主设备仲裁号决定
外围设备
显示设备
像素:组成图像的最小单位,显示器上的发光点
分辨率:显示器所能表示的像素个数
分辨率=水平点数 × 垂直点数;如 1280×1024
彩色显示器:每个像素由红、绿、蓝三色组成
如果红、绿、蓝三色都用 8 个二进制位表达(RGB),则彩色图像就具有 224(16M)种颜色
磁盘
记录面
磁盘片表面
一个盘片有上下两个记录面
磁道
记录面上一系列同心圆
最外圈为 0 磁道 ,依次为 1、2、……、N 磁道
每个磁道的存储容量均相同
不同盘片的相同磁道构成一个柱面
扇区
同心圆上的一段磁道区域
每个扇区的存储容量也相同
存储密度
道密度:沿磁盘半径方向单位长度上的磁道数,单位为道/英寸
位密度:是磁道单位长度上能记录的二进制代码位数,单位为位/英寸
面密度:位密度和道密度的乘积,单位为位/平方英寸
相关概念
道距:相邻两磁道中心线之间的距离;
道宽:磁化轨迹的宽度。
存储容量
存储容量=记录面数 × 每面磁道数 × 磁道容量
非格式化容量
磁记录表面可以利用的磁化单元总数
格式化容量
按照某种特定的记录格式所能存储信息的总量,也就是用户可以真正使用的容量。
格式化容量一般是非格式化容量的 60%—70%。
平均存取时间
存取时间=找道时间+等待时间
定位时间(找道时间)
将磁头定位至所要求的磁道上所需的时间
等待时间
找道完成后,盘片将所要访问信息转到磁头下方的时间
平均找道时间
最大与最小找道时间的平均值,约为 10~20ms
平均等待时间
与磁盘转速有关,是磁盘旋转一周时间的一半
硬盘转速为 7200 转/分,故平均等待时间约为 4ms。
输入输出系统
I/O 接口电路
计算机的外围(外部)设备多种多样
工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大
外设不能与 CPU 直接相连,必须经过中间电路(I/O 接口电路)再与系统相连
I/O 接口电路是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路
I/O 端口的编址
I/O 端口(Port)泛指 I/O 地址,对应 I/O 接口寄存器
一个接口电路可以具有多个 I/O 端口,每个端口用来保存和交换不同的信息
数据寄存器、状态寄存器和控制寄存器占有的 I/O 地址常依次被称为数据端口、状态端口和控制端口,用于保存数据、状态和控制信息
输入、输出端口可以是同一个 I/O 地址
接口电路占用的 I/O 端口有两类编排形式
I/O 端口单独编址
I/O 端口与存储器统一编址
CPU 对外围设备的管理方式
CPU 和外设之间信息交换的方式
程序控制下的数据传送
通过 CPU 执行程序中的 I/O 指令来完成传送
程序查询方式
程序中断方式
直接存储器存取 DMA 方式
外设经 DMA 控制器向 CPU 申请总线,由 DMA 控制器利用系统总线完成外设和存储器间的数据传送
通道方式
通道(I/O 处理器)管理外设,完成传送和数据处理
外围处理机方式
通道方式的进一步发展,基本独立于主机工作
程序中断方式
处理器在执行程序过程中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序
中断源:引起中断的事件或原因
例如:
外设的数据传送请求
系统定时请求
电源掉电等故障
运算出错等错误
程序异常或调试请求
DMA 方式
克服程序控制传送的不足:
外设 →CPU→ 存储器
外设 ←CPU← 存储器
直接存储器存取 DMA:
外设 → 存储器
外设 ← 存储器
特点比较:
查询传送: 简单实用,效率较低
中断传送:外设主动,可与 CPU 并行工作,但每次传送需要大量额外时间开销
DMA 传送:CPU 释放总线,由 DMA 控制器管理,外设直接和存储器进行数据传送,适合大量、快速数据传送
简答题
第一章
冯·诺依曼计算机的主要设计思想是什么?它包括哪些组成部分?
采用二进制形式表示数据和指令。指令由操作码和地址码组成。
将程序和数据存放在存储器中,计算机在工作时从存储器取出指令加以执行,自动完成计算任务。这就是“存储程序”和“程序控制”。
指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现。
计算机由存储器、运算器、控制器、输入和输出设备五大基本部件组成。
如何理解计算机的概念?
计算机是一种以电子器件为基础的,不需人的直接干预,能够对各种数字化信息进行快速算术和逻辑运算的工具,是一个由硬件、软件组成的复杂的自动化设备。
以电子器件为物质基础,即研究的对象是电子数字计算机
不需要人的直接干预,说明具有自动化能力,其前提是存储程序
处理各种数字化信息,计算机以二进制编码作为数字化编码及运算的基础
具有算逻运算能力,基本运算操作是算术和逻辑运算
计算机是快速工具,主要取决于两个因素:一是电子器件,二是存储程序
由硬件和软件组成
指令和数据均存放在内存中,计算机如何区分指令还是数据?
时间上:在取指周期中,CPU 从内存读出的信息一定是指令;二执行周期中从内存读出或写入的信息一定是数据。
空间上:指令一定流向控制器;而数据则是在内存(或寄存器)与运算器之间流动。
CPU 的性能指标有哪些?其概念是什么?
把运算器和控制器合在一起称为中央处理器,简称 CPU。其性能指标主要有以下几个方面
吞吐量:表示一台计算机在某一时间间隔内能够处理的信息量
响应时间:表示从输入有效到系统产生响应之间的时间间隔,用时间单位来度量
利用率:在给定的时间间隔内系统被实际使用的时间所占的比率,用百分比表示
处理机字长:指处理机运算器中一次能够完成二进制运算的位数,如 32 位、64 位
总线宽度:一般指 CPU 中运算器与存储器之间进行互联的内部总线二进制位数
存储器容量:存储器中所有存储单元的总数,通常用 KB、MB、GB、TB 来表示
存储器带宽:单位时间内从存储器读出的二进制数信息量,一般用字节数/秒表示
主频、时钟周期:CPU 的工作节拍受主时钟控制,主时钟是不断产生固定频率的时钟,主时钟的频率 f 称为 CPU 的主频,度量单位是 MHz、GHz;主频的倒数称为 CPU 时钟周期 T,T=1/f,度量单位是 μs、ns
CPU 执行时间:表示 CPU 执行一般程序所占用的 CPU 时间,CPU 执行时间=CPU 时钟周期数 ×CPU 时钟周期
CPI:表示每条指令周期数,即执行一条指令所需的平均时钟周期数,CPI=执行某段程序所需的 CPU 时钟周期数/程序包含的指令条数
MIPS: Million Instructions Per Second 的缩写,表示平均每秒执行多少百万条定点指令数,MIPS=指令数/(程序执行时间 ×10^6)
FLOPS: Floating-pint Operations Per Second 的缩写,表示每秒执行浮点操作的次数,用来衡量机器浮点操作的性能,FLOPS=程序中的浮点操作次数/程序执行时间
什么是存储容量、单元地址、数据字、指令字?
存储容量:存储器所有存储单元的总数。通常用单位 KB、MB、GB、TB 等表示。
单元地址:存储器是由许多存储单元组成,每个存储单元的编号称为单元地址
某字代表要处理的数据,称为数据字
某字为一条指令,称为指令字
现代计算机系统如何进行多级划分?这种分积观点对计算机设计会产生什么影响?
第一级是微程序设计级或逻辑电路级,是一个实在的硬件级,由硬件直接执行
第二级是一般机器级,称为机器语言级,也是硬件级,它由微程序来解释执行
第三级是操作系统级,它由操作系统程序实现
第四级是汇编语言级,由汇编程序支持和执行,它给程序人员提供一种符号形式语言,以减少程序编写的复杂性
第五级是高级语言级,它是面向用户的,为方便用户编写应用程序而设置的
系统分级对计算机设计产生的影响
采用这种用一系列的级来组成和计算机的概念和技术,对了解计算机如何组成提供了一种好的结构和体制。
用这种分级的观点来设计计算机,对保证产生一个良好的系统结构也是很有帮助的。
第二章
在浮点数中,阶码的正负和尾数正负各代表什么含义?对实际数值的正负与大小有何影响?
阶码为正,表示将尾数扩大
阶码为负,表示将尾数缩小
尾数的正负代表浮点数的正负
第三章
cache 与虚存的异同
cache 与虚存的相同点
出发点相同:二者都是为了提高存储系统的性能价格比而构造的分层存储体系,都力图使存储系统的性能接近高速存储器,而价格和容量接近低速存储器
原理相同:都是利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器
cache 与虚存的不同点
侧重点不同:cache 主要解决主存与 CPU 的速度差异问题,虚存主要是解决存储器容量问题
数据通路不同:CPU 与 cache 和主存之间均有直接访问通路,而虚存所依赖的辅存与 CPU 之间不存在直接的数据通路
透明性不同:cache 对系统程序员和应用程序员均透明,虚存对系统程序员不透明,只对应用程序员透明
未命中时的损失不同:主存未命中时虚存系统的性能损失要远大于 cache 未命中时的损失
静态存储依靠什么存储信息?动态存储器又依赖什么原理存储信息?比较它们的优缺点
静态存储器以双稳态触发器为存储信息的物理单元,依靠内部交叉反馈保存信息,速度较快,不需要动态刷新,但集成度稍低,功耗大
动态存储靠电容上暂存电荷来存储信息,电容上有电荷为 1,无电荷为 0,集成度高,工号小,速度稍慢,需定时刷新
说明 Cache 的地址映射作用和方法?
Cache 通过地址映射的方法确定主存块与 cache 行之间的对应关系,确定一个主存块应该存放到哪个 cache 行中。
全相联映射:每个主存块可以放到任何一个 cache 块中,最灵活但实现的成本代价最大。
直接映射:每个主存块只能放到一个唯一对应的 cache 块中,实现简单但 cache 利用率低。
组相联映射:每个主存块唯一对应一个 cache 组,但可放到组内任何一个块中,是前两种方式的折中。
说明 cache 的替换策略
cache 工作原理要求它尽量保存最新数据,必然要产生替换,直接映射的 cache,不涉及替换算法,全相连和组相联 cache,就要从允许存放新主存块的若干特定行中选取一行换出
最不经常使用(LFU)算法
将一段时间内被访问次数最少的那行数据换出
每行设置一个计数器,从 0 开始计数,每访问一次,将访行的计数器增 1。当需要替换时,将计数值最小的行换出,同时将这些行的计数器都清零
该算法将计数周期限定在对两次替换之间的间隔时间内,不能严格反映近期访问情况
近期最少使用(LRU)算法
将近期内长久未被访问过的行换出
每行也设置一个计数器,cache 每命中一次,命中行的计数器清零,其它各行计数器增 1。当需要替换时,将计数值最大的行换出
保护了刚拷贝到 cache 中的新数据行,有较高的命中率,应用广泛,但实现的硬件较复杂
随机替换
从特定的行位置中随机地选取一行换出
在硬件上容易实现,且速度也比前两种策略快
降低了命中率和 cache 工作效率
cache 的写操作策略
cache 内容是主存部分内容的拷贝,应当与主存内容保持一致
写回法
当 CPU 写 cache 命中时,只修改 cache 的内容,而不立即写入主存;只有当此行被换出时才写回主存
若写未命中,则将此块整个拷贝到 cache 后对其进行修改
可减少访问主存的次数,但存在不一致性的隐患
实现这种方法时,每个 cache 行必须配置一个修改位,以反映此行是否被 CPU 修改过
全写法
当写 cache 命中时,cache 与主存同时发生写修改,较好地维护了 cache 与主存内容的一致性
当写 cache 未命中时,直接向主存进行写入
cache 中每行无需设置一个修改位以及相应的判断逻辑
缺点是降低了 cache 的功效
根据修改过的主存块是否放入 cache 可分为
写不分配法:把所要写的字写入主存,而包括所写的字在内的块不写入 cache
写分配法:把所要写的字写入主存,而包括所写的字在内的块写入 cache
写一次法
基于写回法并结合全写法的写策略
写命中与写未命中的处理方法与写回法基本相同,只是第一次写命中时要同时先写入主存
便于维护系统全部 cache 的一致性
DRAM 存储器为什么要刷新?有哪几种常用的刷新方法?
DRAM 存储器采用电容存放信息,由于电容漏电,保存信息经过一段时间会丢失,故用刷新保证信息不丢失。
常用的刷新方式有集中式刷新和分布式刷新
集中式刷新特点
对芯片的正常读/写周期不产生影响
会造成芯片“死时间”过长的问题
分散式刷新-方法 1
将每一行的刷新插入到正常的读/写周期之中,有两点缺陷
增加了系统周期,进而降低了系统速度
刷新过于频繁
分散式刷新-方法 2(异步式刷新)
是前两种方式的结合,2ms 内分散地把 128 行刷新一遍:2000μs÷128≈15.5μs,即每隔 15.5μs 刷新一行。
计算机存储系统分哪几个层次?每一层次主要采用什么存储介质?其存储容量和存取速度的相对值如何变化?
分为高速 cache—主存—辅存三级层次结构,容量从小到大,速度从高到低
存储介质:
cache SRAM
主存 DRAM
辅存 磁表面存储器
段式虚拟存储器对程序员是否透明?请说明原因
虚拟管理是由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实现存储管理系统程序不透明,而段是按照程序的自然分界划分的长度可以动态改变的区域。通常,程序员把子程序、操作数和常数等不同类型的数据划分到不同的段中,并且每个程序可以有多个相同类型的段。由于分段是由程序员完成的,所以段式虚拟存储器对程序员而言不是透明的,但虚存到实存的地址映射是由系统软件辅助完成的,故对应用程序而言,段式虚拟存储器是“半透明”的。
在一个进程的执行过程中,是否其所有页面都必须处在主存中?
在有虚拟存储管理的系统中,程序不是一次性装入内存才运行,所以不是所有页面都必须处在主存中,而是根据程序的局部性,有的页面在主存,有的页面在辅存。
为什么在页式虚拟存储器地址变换时可以用物理页号与页内偏移量直接拼接成物理地址,而在段式虚拟存储器地址变换时必须用段起始地址与段内偏移量相加才能得到物理地址?
由于物理页与虚拟页的页面大小相同,且为 2 的整数次幂,所以页式虚拟存储器地址变换时可以用物理页号与页内偏移量直接拼接成物理地址。而段式虚拟存储器的各段大小不同,且段起始地址任意,所以必须用段起址与段内偏移量相加才能得到物理地址
在虚存实现过程中,有些页面会在内存与外村之间被频繁地换入和换出,使系统效率急剧下降。这种现象称为颠簸。请解释产生颠簸的原因,并说明防止颠簸的办法。
产生的原因主要有
分配的页面数太少
替换策略不佳
防止颠簸的办法
适当增加分配给用户程序的页面数
选取 LRU 或更好的替换策略
第四章
指令是灵活多变的,体现在哪些方面?
指令格式多样
寻址方式丰富
指令类型多种
操作码位数可随地址码个数变化而变化(扩展操作码方式)
指令长度可变
什么叫指令?什么叫指令系统?
指令是计算机执行某种操作的命令,也就是常说的机器指令。一台机器中所有机器指令的集合,称这台计算机的指令系统。
一个较完整的指令系统应包括哪几类指令?
一个较完整的指令系统,应包括数据传送指令、算术运算指令、逻辑运算指令、程序控制指令、输入输出指令、字符串指令、特权指令等。
指令的数据寻址方式有哪些?
操作数的寻址方式:形成操作数的有效地址的方法
操作数的寻址过程:把操作数的形式地址,根据寻址方式特征位变换为操作数的有效地址的过程
隐含寻址
特点:在指令中不明显地给出操作数的地址
单地址的指令格式,在指令地址字段中,没有指明第二操作数地址,而是规定累加寄存器 AC 作为第二操作数地址,AC 对单地址指令格式来说就是一个隐含地址
立即寻址
特点:指令的地址字段指出的不是操作数的地址,而是操作数本身
指令中直接给出了操作数,不需要通过访问内存来取数,因而指令执行时间很短
直接寻址
特点:在指令格式的地址字段中,直接给出操作数在内存的地址 A
指令字中的形式地址 A,就是操作数的有效地址 EA,通常把形式地址 A 又称为直接地址
用 D 表示操作数,那么直接寻址的表达式为:D = (A)
间接寻址
特点:形式地址 A 不是操作数 D 的真正地址,而是操作数地址的指示器,即:A 的内容才是操作数的有效地址
有效地址 EA = (A)
寄存器寻址
特点:操作数不放在内存中,而是放在通用寄存器中,D = R
指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号
寄存器间接寻址
特点:指令中指定的寄存器中的内容不是操作数,而是操作数的地址,即:EA = (R)
指明的操作数是在内存中
偏移寻址
直接寻址和寄存器间接寻址的结合,有效地址 EA = A + (R),要求指令中有两个地址字段,至少其中一个是显式的
相对寻址
特点:把程序计数器 PC 的内容加上指令中给出的形式地址 A,进而形成操作数的有效地址,即:EA = A + (PC)
形式地址 A 称为偏移量,其值可正可负,有效地址是当前指令地址(当前 PC 值)的一个上下范围的偏移,便于程序在内存中成块搬动
相对寻址方式中,指令所提供的相对地址实质上是一种以下条指令在内存中首地址为基准位置的偏移量
基址寻址
特点:将 CPU 中基址寄存器的内容加上指令中给定的形式地址 A,而形成操作数的有效地址,即 E = () + A
基址寄存器的位数可以大于形式地址 A 的位数,从而可以扩大操作数的寻址范围
变址寻址
特点:把 CPU 中某个变址寄存器的内容与偏移量 A 相加,形成操作数有效地址,即 EA = () + A
形式地址 A 给出基准地址,给出偏移量,为重复操作的完成提供一种有效机制
段寻址
微型机中采用了段寻址方式,其实质还是基址寻址,基地址就是 CPU 中的段寄存器
堆栈寻址
堆栈有两种形式:寄存器堆栈和存储器堆栈
存储原则:先进后出
数据的存取都通过栈顶,需要一个隐式或显式的堆栈指示器(寄存器)
堆栈指令:PUSH、POP
第五章
简述机器指令和微指令的关系
一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。即一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。
从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与内存储器有关,后者与控制存储器有关。
每一个 CPU 周期对应一条微指令
说明 CPU 中有哪些寄存器?它们的功能是什么?
数据缓冲寄存器(DR)
暂时存放 ALU 的运算结果,或来自内存或来自 I/O 接口的一个数据字
作为 ALU 运算结果和通用寄存器之间的缓冲
补偿 CPU 和内存、外围设备之间在操作速度上的差别
指令寄存器(IR):保存当前正在执行的一条指令
程序计数器(PC)
PC 中存放的是下一条指令在内存中的地址
程序执行前,程序的第一条指令所在的内存单元送入 PC
顺序执行指令时,PC 自增
遇到转移指令时,PC 的内容由转移指令来规定
具有信息寄存和计数两种功能
数据地址寄存器(AR)
保存当前 CPU 所访问的数据存储器地址
采用电位-脉冲方式,即电位输入端对应数据信息位,脉冲输入端对应控制信号,在控制信号作用下,瞬时将信息打入寄存器
通用寄存器:当运算器需执行算术或逻辑运算时,为 ALU 提供一个工作区
程序状态字寄存器(PSWR)
又称状态条件寄存器
保存由算术运算指令和逻辑运算指令运行或测试结果建立的各种条件代码
保存中断和系统工作状态等信息
属于运算器的组成部分
RISC 机器具有什么优点,试简单论述
RISC 的三个基本要素
一个有限的简单的指令系统
CPU 配备大量的通用寄存器
强调对指令流水线的优化
RISC 机器的特征
使用等长指令,典型长度是 4 个字节(32 位)
寻址方式少且简单,一般为 2、3 种,最多不超过 4 种,绝不出现存储器间接寻址方式
只有取数指令和存数指令访问存储器。指令中最多出现 RS 型指令,绝不出现 SS 型指令
指令集中的指令数目一般少于 100 种,指令格式一般少于 4 种
指令功能简单,控制器多采用硬布线方式,以期更快的执行速度
平均而言,所有指令的执行时间为一个处理时钟周期
指令格式中用于指派整数寄存器的个数不少于 32 个,用于指派浮点数寄存器的个数不少于 16 个
强调通用寄存器资源的优化使用
支持指令流水并强调指令流水的优化使用
RISC 技术的复杂性在它的编译程序,因此软件系统开发时间比 CISC 机器长
CPU 的功能是什么?由什么组成?
中央处理器(Central Processing Unit)是计算机的核心部件,通常简称为 CPU,控制计算机自动完成取指令和执行指令任务
CPU 的功能
指令控制:程序的顺序控制
操作控制:产生各种操作信号(微操作信号)
时间控制:控制操作信号的有效时间(时序信号发生器)
数据加工:对数据进行算术运算和逻辑运算(ALU)
CPU 的基本组成
控制器:由程序计数器、指令寄存器、指令译码器、时序产生器(产生并发出计算机所需要的时序控制信号)和操作控制器(根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据通路)组成
从指令 cache 中取出一条指令,并指出下一条指令在指令 cache 中的位置
对指令进行译码或测试,并产生相应的操作控制信号,启动规定的动作
指挥并控制 CPU、数据 cache 和输入/输出(I/O)设备之间数据流动的方向
运算器:由 ALU、通用寄存器、DR 和 PSWR 组成
cache
芯片级总线
什么是指令周期、机器周期和时钟周期?三者有何关系?
指令周期:CPU 从内存取出一条指令并执行完这条指令的时间总和
CPU 周期:又称机器周期,是所有指令执行过程中的一个基准时间,通常取从内存读取一个指令字的最短时间
时钟周期:又称 T 周期或节拍脉冲,是处理操作的最基本单位,是机器主频的倒数,一个 CPU 周期包含个 T 周期
1 个指令周期 = 若干个 CPU 周期,1 个 CPU 周期 = 若干个 T 周期,每个指令周期内的机器周期数可以不等,每个机器周期内的时钟周期数也可以不等。
简述 CPU 的不同控制方式
控制方式:控制不同操作序列时序信号的方法
同步控制方式:在任何情况下,已定的指令在执行时所需的 CPU 周期数和时钟周期数都固定不变
完全同步控制方式:采用完全统一的、具有相同时间间隔和相同数目的节拍电位作为机器周期来运行各种不同的指令
采用不定长机器周期:将大多数操作安排在一个较短的机器周期内完成,对某些时间较长的操作,则采取延长机器周期的方法来解决
中央控制与局部控制结合:将大部分指令安排在固定的机器周期完成,对少数复杂指令采用另外的时序进行定时
异步控制方式:一般采用两条控制线,即“请求”线和“回答”线
每条指令、每个操作控制信号需要多少时间就占用多少时间
每条指令的指令周期可由多少不等的机器周期数组成
用这种方式形成的操作控制序列没有固定的 CPU 周期数(节拍电位)或严格的时钟周期(节拍脉冲)与之同步
联合控制方式:同步控制和异步控制相结合的方式
情况 1:大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束
情况 2:机器周期的节拍脉冲数固定,但是各条指令周期的周期数不固定
区分微命令、微操作、微指令和微程序
微命令:控制部件通过控制线向执行部件发出各种控制命令
微操作:执行部件接收微命令后所进行的操作
微命令和微操作是一一对应的
微命令是微操作的控制信号,微操作是微命令的操作过程
微操作是执行部件中最基本的操作
微操作具有互斥性和相容性
互斥性:不能同时或不能在同一个节拍内并行执行
相容性:能够同时或在同一个节拍内并行执行
微指令:在机器的一个 CPU 周期中,一组实现一定操作功能的微命令的组合,构成一条微指令
微程序:微指令序列
一个程序由多条机器指令组成,每条机器指令由多条微指令组成,微指令序列构成微程序
简述硬布线控制器和微程序控制器的比较
微程序控制原理:将微操作控制信号按一定规则进行信息编码形成控制字(微指令),一条机器指令对应一段“程序”,该程序存放在控制存储器中,当机器运行时,一条又一条地读出这些微指令,从而产生全机所需要的各种操作控制信号,使相应部件执行所规定的操作。因为“程序”的执行结果是实现一条机器指令的功能,所以称为“指令的微程序”。
硬布线控制器的基本思想:把控制部件看作为产生专门固定时序控制信号的逻辑电路,逻辑电路以使用最少元件和取得最高操作速度为设计目标
硬布线控制器和微程序控制器的相同之处:根据指令操作码和时序信号,产生各种控制信号,以便正确地建立各种数据通路,完成取指令和执行指令的控制
硬布线控制器的优点:速度快
硬布线控制器的主要缺点:一旦设计完成,不可能通过其他的修改添加新功能
微程序控制的主要优点:具有规整性、灵活性、可维护性
微程序控制的主要缺点:速度慢
说明并比较微指令格式的种类
水平型微指令:一次能定义并执行多个并行操作微命令的微指令,格式为:控制字段 + 判别测试字段 + 下地址字段
按照控制字段的编码方法不同,水平型微指令分为三种
全水平型(不译码法)微指令
在微指令的操作控制字段中每一个微命令都用一位信息表示,对应于一种微操作
设计微指令时,选用或不选用某个微命令,只要将表示该微命令的相应位设置成 1 或 0
优点:简单、直观、执行速度快,微命令的并行控制能力强,编制的微程序短
缺点:微指令字比较长
字段译码法(编码表示法)水平型微指令
把一组相斥性的微命令信号组成一个小组(即一个字段),通过小组(字段)译码器对每一个微命令信号进行译码,译码输出作为操作控制信号
优点:使微指令字大大缩短
缺点:由于增加了译码电路,使微程序的执行速度稍稍减慢
直接和译码相混合的水平型微指令
把直接表示法与编码表示法混合使用,以便能综合考虑指令字长、灵活性、执行微程序速度等方面的要求
在微指令中还可附设一个常数字段。该常数可作为操作数送入 ALU 运算,也可作为计数器初值用来控制微程序循环次数
垂直型微指令
在微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能
其结构类似于机器指令的结构
实现一条机器指令的微程序要比水平型微指令编写的微程序长得多,它是采用较长的微程序结构去换取较短的微指令结构
水平型微指令与垂直型微指令的比较
水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则较差
水平型微指令执行一条指令的时间短,垂直型微指令执行时间长
由水平型微指令解释指令的微程序,有微指令字段较长而微程序短的特点。垂直型微指令则相反
水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握
简述提高并行性的技术途径
时间并行:指时间重叠,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度
空间并行:指资源重复
时间并行+空间并行:指时间重叠和资源重复的综合应用
说明流水线中的主要问题和解决方法
流水线实际上是把一个功能部件分解成多个独立的子功能(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依靠多个子功能部件并行工作来缩短所有任务的执行时间
资源相关:是指多条指令进入流水线后,在同一机器时钟周期内争用同一个功能部件所发生的冲突
采用延迟 IF 法避开相关
增设一个存储器,将指令和数据分别存放在两个存储器中
采用多端口存储器结构
数据相关:由于多条指令的重叠处理,当后继指令所需的操作数刚好是前一指令的运算结果时,便发生数据相关冲突
在流水 CPU 的运算器中设置若干运算结果缓冲寄存器,暂时保留运算结果,以便于后继指令直接使用,这称为“向前”或定向传送技术
控制相关:控制相关冲突是由转移指令引起的,会使流水线发生断流
延迟转移法
由编译程序重排指令序列来实现
基本思想:先执行再转移
在转移指令之后让已进入流水线的一条或几条没有数据相关和控制相关的有效指令先执行,而转移指令被延迟执行
转移预测法
用硬件方法来实现,依据指令过去的行为来预测将来的行为
通过使用转移取和顺序取两路指令预取队列器以及目标指令 cache,可将转移预测提前到取指阶段进行
第六章
简述总线的基本概念和分类和特性
总线是构成计算机系统的互连机构,是多个系统功能部件之间进行数据传送的公共通路
一个单处理器系统中的总线,大致分为三类
内部总线:CPU 内部连接各寄存器及运算部件之间的总线
系统总线:CPU 同计算机系统的其他高速功能部件,如存储器、通道等互相连接的总线
I/O 总线:中、低速 I/O 设备之间相互连接的总线
总线的特性
物理特性:总线的物理连接方式,包括总线的根数,总线的插头、插座的形状,引脚线的排列方式等
功能特性:描述总线中每一根线的功能
电气特性:定义每一根线上信号的传递方向及有效电平范围。送入 CPU 的信号叫输入信号(IN),从 CPU 发出的信号叫输出信号(OUT)
时间特性:定义了每根线在什么时间有效,规定了总线上各信号有效的时序关系
比较单总线、多总线结构的性能特点
单总线结构是通过一组总线连接整个计算机系统的各大功能部件,即各大部件之间的所有的信息传送都通过这组总线
优点是允许 I/O 设备之间或 I/O 设备与内存之间直接交换信息,只需 CPU 分配总线使用权,不需要 CPU 干预信息的交换,即总线资源是由各大共能部件分时共享的
缺点是由于全部系统部件都连接在一组总线上,总线的负载很重,可能使其吞吐量达到饱和甚至不能胜任的程度,故多为小型机和微型机采用
多总线结构是通过桥、CPU 总线、系统总线和 I/O 总线彼此相连,各大部件的信息传送不是只通过系统总线
高速、中速、低速设备连接到不同的总线上同时进行工作
提高了总线的效率和吞吐量
处理器结构的变化不影响高速总线
简述总线集中式仲裁的分类和特点
链式查询方式
优点:只用很少几根线就能按一定优先次序实现总线仲裁,判优方法简单,扩充设备容易
缺点:对询问链的电路故障很敏感;查询链的优先级是固定的,如果优先级高的设备出现频繁的请求时,优先级较低的设备可能长期不能使用总线
计数器定时查询方式
每次计数可以从 0 开始,也可以从上次的中止点开始
计数器的初值也可用程序来设置,可以方便改变优先次序,这种灵活性以增加线数为代价
独立请求方式
响应时间快,确定优先响应的设备所花费的时间少
既可以预先固定,也可以通过程序来方便地改变优先次序,对优先次序的控制相当灵活
可以用屏蔽(禁止)某个请求的办法,封锁来自无效设备的请求
这种方式需增加的线数较多(N 个设备,需要 2N 根线),仲裁器
区分总线的定时方式和总线数据传送模式
同步总线定时
采用公共时钟,每个功能模块什么时候发送或接收信息都由统一时钟规定,传输频率较高
同步定时适用于总线长度较短、各功能模块存取事件比较接近的情况
异步总线定时
在异步定时协议中,后一事件出现在总线上的时刻取决于前一事件的出现,即建立在应答式或互锁机制基础上
这种系统中,不需要统一的公共时钟信号,总线周期的长度是可变的
异步时序的互锁关系
半同步总线定时
在同步总线定时协定的基础上稍加改动,扩展为半同步总线定时
整体上仍然采用同步操作方式,其总线周期是时钟周期的整数倍,增加一根联络信号线,由此信号决定是否需要增加时钟周期
适应能力大大提升,现代的许多同步总线已扩展为半同步总线
周期分裂式总线定时
将一个读周期分解成两个分离的传输子周期
第一个子周期:主方发送地址和命令及有关信息后,立即和总线断开,供其它设备使用
第二个子周期:被读的设备重新申请总线使用权后将数据通过总线发向请求数据的设备
要求读数据的双方都是总线主方
以硬件复杂度的提高换取总线性能的提升
总线数据传送模式
读、写操作
块传送操作
写后读、读修改写操作
广播、广集操作
第七章
第八章
CPU 管理外围设备有几种方式?总结每一种方式的特点。
程序查询方式:CPU 的操作和外围设备的操作能够同步,且硬件结构比较简单,输入和输出控制和传输完全由 CPU 处理,降低了 CPU 的效率
程序中断方式:一般适用于随机出现的服务,且一旦提出要求应立即进行,CPU 不需要对外设进行状态查询,节省了 CPU 的时间开销,但硬件结构稍复杂一些
直接内存访问(DMA)方式:时间传送不需要 CPU 的中转而在内存和外设间直接传送,数据传送速度很高,传送速率仅收到内存访问时间的限制。需要更多硬件,适用于内存和高速外设之间大批数据交换的场合
通道方式:可以实现对外设的统一管理和外设与内存之间的数据传送,完全将 CPU 从 I/O 控制工作中解放出来,大大提高了 CPU 的工作效率
外围处理机方式:是通道方式的进一步发展,基本上独立于主机工作,结构更接近一般处理机
简述查询方式和中断方式的主要异同点
两种方式都是以 CPU 为中心的控制方式,都需要 CPU 执行程序来进行 I/O 数据传送。
程序程序式控制简单,但系统效率很低,无法实现并行操作
中断式通过服务程序完成数据交换,实现了主机与外设的并行性
比较说明中断方式与 DMA 方式的异同
相同点:二者都由随机请求引起
不同点
中断方式通过执行处理程序进行处理,DMA 方式直接依靠硬件实现数据直传
中断方式可处理复杂事件、控制中低速 I/O 操作,DMA 方式适用于简单的、高速的数据批量传送
CPU 响应中断应具备哪些条件?
CPU 接收到中断请求信号
CPU 允许中断
一条指令执行完毕
以可屏蔽中断为例,说明一次完整的中断过程主要包括哪些环节?
中断请求
中断判优
中断响应
中断服务
中断返回
程序中断方式的四个标志触发器的具体功能
准备就绪触发器(RD):一旦设备做好依次数据的接收或发送,便发出一个设备动作完毕信号,使 RD 标志置位。在中断发送中,该标志用作为中断源触发器,简称中断触发器
允许中断触发器(EI):可以通过软件设置来控制是否允许某设备发出中断请求
EI 为 1 时,某设备可以向 CPU 发出中断请求
EI 为 0 时,则不能向 CPU 发出中断请求,某中断源的中断请求被禁止
中断请求触发器(IR):暂存中断请求线上由设备发出的中断请求信号。当 IR 标志位 1 时,表示设备已经发出了中断请求
中断屏蔽触发器(IM):CPU 是否受理中断或批准中断的标志
IM 标志为 0,CPU 可以受理外界中断请求
IM 标志为 1,CPU 不受理外界中断请求
中断服务程序入口地址的获取有哪些?
向量中断方式:由硬件在中断周期中完成查找中断源、中断排队与判优、获取中断服务程序的入口地址
查询中断方式:由软件查询中断源,获取中断服务程序的入口地址
区分中断向量、中断向量表、中断向量地址和中断向量号的概念
中断向量:中断服务程序的入口地址
中断向量表:系统中所有的中断向量按顺序放在内存指定位置的一张表
中断向量地址:存放中断向量的单元地址
中断向量号:不同的中断类型指定不同的中断向量号,经过查询中断向量表可得到响应中断向量
Last updated