计算机组成原理
接上篇续
文章目录
三、中央处理器
6、计算机的运算方法
6.1、无符号数和有符号数
-
无符号数
计算机中的数均放在寄存器中,通常称寄存器的位数为机器字长。所谓无符号数,即没有符 号的数,在寄存器中的每一位均可用来存放数值。
当存放有符号数时,则需留出位置存放符号。
因此,在机器字长相同时,无符号数与有符号数所对应的数值范围是不同的。以机器字长为16位为例,无符号数的表示范围为0 ~65 535,而有符号数的表示范围为-32768 ~ +32767。 -
有符号数
- 机器数与真值
- 原码
- 补码
- 反码
- 移码
6.2、数的定点表示和浮点表示
-
定点表示
小数点固定在某一位置的数为定点数,有以下两种方式:
当小数点位于数符和第一数值位之间时,机器内的数为纯小数;当小数点位于数值位之后时,机器内的数为纯整数。采用定点数的机器称为定点机。数值部分的位数n决定了定点机中数的表示范围。 -
浮点表示
浮点数即小数点的位置可以浮动的数。通常可表示为N = S x r j ,S为尾数,j为阶码,r是基数。 -
定点数和浮点数的比较
略 -
举例
略 -
IEEE754标准
略
6.3、定点运算
-
移位运算
算术移位规则
逻辑移位和逻辑移位的区别:
有符号数的移位称为算术移位,无符号数的移位称为逻辑移位。逻辑移位的规则是:逻辑左移时,高位移丢,低位添0;逻辑右移时,低位移丢,高位添0。
-
加法与减法运算
- 补码加减法
- 溢出判断
- 用一位符号位判断
- 用两位符号位判断
- 补码加减法
-
乘法运算
- 原码一位乘
- 原码两位乘
- 补码一位乘
- 补码两位乘
-
除法运算
- 原码除法
- 补码除法
6.4、浮点四则运算
-
浮点数加减法
①对阶,使两数的小数点位置对齐。
②尾数求和,将对阶后的两尾数按定点加减运算规则求和(差)。
③规格化,为增加有效数字的位数,提高运算精度,必须将求和(差)后的尾数规格化。
④舍入,为提高精度,要考虑尾数右移时丢失的数值位。
⑤溢出判断,即判断结果是否溢出。 -
浮点数乘除法
6.5、算术逻辑单元
略
7、指令系统
7.1、机器指令
机器语言是由一条条语句构成的,每一条语句又能准确表达某种语义。人们习惯把每一条机器语言的语句称为机器指令,而又将全部机器指令的集合称为机器的指令系统。因此机器的指令系统集中反映了机器的功能。
- 指令的一般格式
指令由操作码和地址码组成。 - 指令字长
指令字长取决于操作码的长度.操作数地址的长度和操作数地址的个数。不同机器的指令字长是不相同的。
7.2、操作数类型和操作类型
-
操作数类型
- 地址
- 数字
- 字符
- 逻辑数据
-
数据存储器中的存放方式
存储器中数据的存放由两种:对准边界和不对准边界。
两种字节的次序有两种:低字节为低地址和高字节为低地址。
-
操作类型
- 数据传送
- 算术逻辑操作
- 移位
- 转移
- 输入输出
- 其他
7.3、寻址方式
- 指令寻址
- 顺序寻址
顺序寻址可通过程序计数器PC加1,自动形成下一条指令的地址。 - 跳跃寻址
跳跃寻址通过转移类指令实现。
- 顺序寻址
- 数据寻址
数据寻址方式种类较多,在指令字中必须设一字段来指明属于哪一种寻址方式。指令的地址码字段通常都不代表操作数的真实地址,把它称为形式地址,记作A。操作数的真实地址称为有效地址,记作EA,它是由寻址方式和形式地址共同来确定的。由此可得指令的格式应如图所示:
7.4、指令格式举例
略
7.5、RISC技术
RISC即精简指令系统计算机(ReducedInstructionSetComputer),与其对应的是CISC,即复杂指令系统计算机( Complex Instruction Set Computer) 。
8、CPU的结构和功能
8.1、CPU的结构
- CPU的功能
对于冯·诺依曼结构的计算机而言,一旦程序进人存储器后,就可由计算机自动完成取指令和执行指令的任务,控制器就是专用于完成此项工作的,它负责协调并控制计算机各部件执行程序的指令序列,其基本功能是取指令、分析指令和执行指令。
CPU必须具有控制程序的顺序执行(称指令控制)、产生完成每条指令所需的控制命令(称操作控制)、对各种操作加以时间上的控制(称时间控制)、对数据进行算术运算和逻辑运算(数据加工)以及处理中断等功能。 - CPU结构框图
要取指令,必须有一个寄存器专用于存放当前指令的地址; 要分析指令,必须有存放当前指令的寄存器和对指令操作码进行译码的部件; 要执行指令,必须有一个能发出各种操作命令序列的控制部件CU; 要完成算术运算和逻辑运算.必须有存放操作数的寄存器和实现算逻运算的部件ALU; 为了处理异常悄况和特殊请求,还必须有中断系统。
- CPU的寄存器
-
用户可见寄存器
用户可对这类寄存器编程,以及通过优化使CPU因使用这类寄存器而减少对主存的访问次数。可分为:- 通用寄存器
- 数据寄存器
- 地址寄存器
- 条件码寄存器
-
控制和状态寄存器
用户不可对这类寄存器编程,它们被控制部件使用,以控制CPU的操作,也可被带有特权的操作系统程序使用,从而控制程序的执行。以下四种在指令执行过程中起重要作用:- MAR:存储器地址寄存器,用于存放将被访问的存储单元的地址。
- MDR:存储器数据寄存器,用于存放欲存人存储器中的数据或最近从存储器巾读出的数据。
- PC:程序计数器,存放现行指令的地址,通常具有计数功能。当遇到转移类指令时,PC的值可被修改。
- IR:指令寄存器,存放当前欲执行的指令。
-
- 控制单元和中断系统
控制单元(CU)是提供完成计算机全部指令操作的微操作命令序列部件。现代计算机中微操作命令序列的形成方法有两种:一种是组合逻辑设计,为硬连线逻辑;另一种是微程序设计方法,为存储逻辑
。
8.2、指令周期
-
基本概念
CPU每取出并执行一条指令所需的全部时间称为指令周期,也即CPU完成一条指令的时间。取指阶段完成取指令和分析指令的操作,又称取指周期;执行阶段完成执行指令的操作,又称执行周期。在大多数情况下,CPU就是按“取指 一 执行 一 再取指 一 再执行”的顺序自动工作的。
-
指令周期的数据流
略
8.3、指令流水
由前面各章的介绍可知,为了提高访存速度,一方前要提高存储芯片的性能,另一方面可以从体系结构上,如采用多体.Cache 等分级存储措施来提高存储器的性能/价格比。为了提高主机与I/O交换信息的速度,可以采用DMA方式,也可以采用多总线结构,将速度不一的I/O分別挂到不同带宽的总线上,以解决总线的瓶颈问题。为了提高运算速度,可以采用高速芯片和快速进位链,以及改进算法等措施。为了进一步提高处理机速发,通常可从提高器件的性能和改进系统的结构、开发系统的并行性两方面入手。
-
指令流水原理
指令流水类似于工厂的装配线,装配线利用了产品在装配的不同阶段其装配过程不同这一特点,使不同产品处在不同的装配段上,即每个装配段同时对不同产品进行加工,这样可大大提高装配效率。将这种装配生产线的思想用到指令的执行上,就引出了指令流水的概念。
如果指令执行阶段不访问主存,则完全可以利用这段时间取下一条指令,这样就使取下一条指令的操作和执行当前指令的操作同时进行,这就是两条指令的重叠,即指令的二级流水。
由指令部件取出一条指令,并将它暂存起来,如果执行部件空闲,就将暂存的抬令传给执行部件执行。与此同时,指令部件又可取出下一条指令并暂存起来,这称为指令预取。显然,这种工作方式能加速指令的执行。为了进一步提高处理速度,可将指令的处理过程分解为更细的几个阶段:
取指(FI):从存储器取出一条指令并暂时存人指令部件的缓冲区。
指令译码(DI):确定操作性质和操作数地址的形成方式。
计算操作数地址(CO):计算操作数的有效地址,涉及寄存器间接寻址、间接寻址、变址、基址.相对寻址等各种地址计算方式。
取操作数( FO) :从存储器中取操作数(若操作数在寄存器中,则无须此阶段)。
执行指令(EI):执行指令所需的操作,并将结果存于目的位置(寄存器中)。
写操作数(WO):将结果存入存储器。 -
影响流水线性能的因素
-
结构相关
结构相关是当指令在重叠执行过程中,不同指令争用同–功能部件产生资源冲突时产生的,故又有资源相关之称。 -
数据相关
数据相关是流水线中的各条指令因重叠操作,可能改变对操作数的读写访问顺序,从而导致了数据相关冲突。 -
控制相关
控制相关主要是由转移指令引起的。统计表明,转移指令约占总指令的1/4左右,比起数据相关来,它会使流水线丧失更多的性能。当转移发生时,将使流水线的连续流动受到破坏。
-
-
流水线性能
-
吞吐率
在指令级流水线中,吞吐率是指单位时间内流水线所完成指令或输出结果的数量。吞吐率又有最大吞吐率和实际吞吐率之分。 -
加速比
流水线的加速比是指m段流水线的速度与等功能的非流水线的速度之比。 -
效率
效率是指流水线中各功能段的利用率。
-
-
流水线中的多发技术
- 超标量技术
- 超流水线技术
- 超长指令字技术
-
流水线结构
-
指令流水线结构
指令流水线是将指令的整个执行过程用流水线进行分段处埋,典型的指令执行过程分为“取指令 — 指令译码 一 形成地址 一 取操作数 — 执行指令 — 回写结果 — 修改指令指针"这几个阶段。 -
运算流水线
上述讨论的指令流水线是指令级的流水技术,实际上流水技术还可用于部件级。
-
8.4、中断系统
-
概述
为了提高计算机的效率,为了处理一些异常情况以及实时控制、多道程序和多处理机的需要,提出了中断的概念。引起中断的各种因素:人为设置的中断、系统性事故、硬件故障、I/O设备、外部事件。
-
中断请求标记和中断判优逻辑
-
中断请求标记
为了判断是哪个中断源提出请求,在中断系统中必须设置中断请求标记触发器,简称中断请求触发器,记作 INTR。当其状态为“1”时,表示中断源有请求。这种触发器可集中设在CPU内,组成一个中断请求标记寄存器。 -
中断判优逻辑
任何一个中断系统,在任一时刻,只能响应一个中断源的请求。但许多中断源提出请求都是随机的,当某一时刻有多个中断源提出中断请求时,中断系统必须按其优先顺序予以响应,这称为中断判优。
中断判优可用硬件实现,也可用软件实现:- 硬件排队
- 软件排队
-
-
中断服务程序入口地址的寻找
- 硬件向量法
硬件向量法就是利用硬件产生向逢地址,再由向量地址找到中断服务程序的入口地址。 - 软件查询法
用软件寻找中断服务程序入口地址的方法称为软件查询法。
- 硬件向量法
-
中断响应
-
中断响应的条件
CPU响应!O中断的条件是允许中断触发器必须为“I”。 -
响应中断的时间
与响应I/O中断一样,CPU总是在指令执行周期结束后,响应任何中断源的清求。在指令执行周期结束后,若有中断,CPU则进人中断周期;若无中断,则进入下一条指令的取指周期。 -
中断隐指令
CPU响应中断后,即进入中断周期。在中断周期内,CPU 要自动完成一系列操作,具体如下:( 1)保护程序断点
保护程序断点就是要将当前程序计数器PC的内容(程序断点)保存到存储器中。它可以存在存储器的特定单元(如О号地址)内,也可以存入堆栈。
(2)寻找中断服务程序的入口地址
由于中断周期结束后进人下条指令(即中断服务程序的第一条指令)的取指周期,因此在中断周期内必须设法找到中断服务程序的入口地址。由于入口地址有两种方法获得,因此在中断周期内也有两种方法寻找入口地址。
其一,在中断周期内,将向量地址送至PC(对应硬件向量法),使CPU执行下一条无条件转移指令,转至中断服务程序的人口地址。
其二,在中断周期内,软件查询入口地址的程序(又称中断识别程序)首地址送至PC,使CPU执行中断识别程序,找到人口地址(对应软件查询法)。
(3)关中断
CPU进入中断周期,意昧着CPU响应了某个中断源的请求,为了确保CPU响应后所需做的一系列操作不至于又受到新的中断请求的干扰,在中断周期内必须自动关中断,以禁止CPU再次响应新的中断请求。当进人中断周期时,INT为“1”状态,触发器原端输出有一个正跳变,经反相后产生一个负跳变,使EINIT置"0" ,即关中断。上述保护断点、寻找人口地址和关中断这些操作都是在中断周期内由一条中断隐指令完成的。
所谓中断隐指令,即在机器指令系统中没有的指令,它是CPU 在中断周期内由硬件自动完成的一条指令。
-
-
保护现场和恢复现场
保护现场应该包括保护程序断点和保护CPU内部各寄存器内容的现场两个方面。程序断点的现场由中断隐指令完成,各寄存器内的现场可在中断服务程序中由用户(或系统)用机器指令编程实现。
恢复现场是指在中断返回前,必须将寄存器的内容恢复到中断处理前的状态,这部分工作也由中断服务程序完成。 -
中断屏蔽技术
中断屏薇技术主要用于多重中断。-
多重中断的概念
当CPU正在执行某个中断服务程序时,另一个中断源又提出了新的中断请求,而CPU又响应了这个新的请求,暂时停止正在运行的服务程序,转去执行新的中断服务程序,这称为多重中断,又称中断嵌套。 -
实现多重中断的条件
①提前设置开中断指令
②优先级别高的中断源有权中断优先级别低的中断源 -
屏蔽技术
- 屏蔽触发器与屏蔽字
对应每个中断请求触发器就有一个屏蔽触发器,将所有屏蔽触发器组合在一起,便构成一个屏蔽寄存器,屏蔽寄存器的内容称为屏敲字。屏蔽字与中断源的优先级别是一一对应的。 - 屏蔽技术可改变优先等级
严格地说,优先级包含响应优先级和处理优先级。
响应优先级是指CPU响应各中断源请求的优先次序,这种次序往往是硬件线路已设置好的,不便于改动。
处理优先级是指CPU实际对各中断源请求的处埋优先次序。如果不采用屏蔽技术,响应的优先次序就是处理的优先次序。
- 屏蔽触发器与屏蔽字
-
多重中断的断电保护
多重中断时,每次中断出现的断点都必须保存起来。中断系统对断点的保存都是在中断周期内由中断隐指令实现的,对用户是透明的。断点可以保存在堆栈中,也可保存在特定的存储单元内。
-
四、控制单元
计算机之所以能自动协调地工作,是由于控制单元CU地统一指挥。
9、控制单元的功能
9.1、微操作命令的分析
控制单元具有发出各种微操作命令(即控制信号)序列的功能。
- 取指周期
- 间址周期
间址周期完成取操作数有效地址的任务。 - 执行周期
不同执行指令执行周期的微操作是不同的。- 非访存指令
- 访存指令
- 转移类指令
- 中断周期
在执行周期结束时刻, CPU要查询是否有请求中断的事件发生,如果有则进入中断周期。在中断周期,由中断隐指令自动完成保护断点、寻找中断服务程序人口地址以及硬件关中断的操作。
9.2、控制单元的功能
-
控制单元的外特性
-
控制信号举例
控制单元的主要功能就是能发出各种不同的控制信号。- 不采用CPU内部总线的方式
- 采用CPU内部总线的方式
-
多级时序系统
-
机器周期
机器周期可看做是所有指令执行过程中的一个基准时间,机器周期取决于指令的功能及器件的速度。机器内的各种操作大致可归属为对CPU内部的操作和对主存的操作两大类,由于CPU内部的操作速度较快,CPU访存的操作时间较长,因此,通常以访问一次存储器的时问定为基准时间较为合理,这个基准时间就是机器周期。
又由于不论执行什么指令,都需要访问存储器取出指令,因此在存储字长等于指令字长的前提下,取指周期也可看做机器周期。 -
时钟周期(节拍、状态)
在一个机器周期用可完成若干个微操作,每个微操作都需要一定的时问,可用时钟信号来控制产生每一个微操作命令。时钟就好比计算机的心脏,只要接通电源,计算机内就会产生时钟信号。时钟信号可由机器主振电路(如晶体振荡器)发出的脉冲信号经整形(或倍频、分频)后产生,时钟信号的频率即为CPU主频
。用时钟信号控制节拍发生器,就可产生节拍。每个节拍的宽度正好对应一个时钟周期。在每个节拍内机器可完成一个或几个需同时执行的操作,它是控制计算机操作的最小时间单位。 -
多级时序系统
一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期(节拍),每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数也可以不等。
机器周期、节拍(状态)组成丫多级时序系统。
一般来说, CPU的主频越快,机器的运行速度也越快。在机器周期所含时钟周期数相同的前提下,两机平均指令执行速度之比等于两机主频之比。
实际上机器的速度不仅与主频有关,还与机器周期中所含的时钟周期数以及指令周期中所含的机器周期数有关。同样主频的机器,由于机器周期所含时钟周期数不同,运行速度也不同。机器周期所含时钟周期数少的机器,速度更快。
-
-
控制方式
控制单元控制一条指令执行的过程实质上是依次执行一个确定的微操作序列的过程。由于不同指令所对应的微操作数及其复杂程度不同,因此每条指令和每个微操作所需的执行时间也不同。通常将如何形成控制不同微操作序列所采用的时序控制方式称为CU的控制方式。常见的有以下几种:-
同步控制
同步控制方式是指,任何一条指令或指令中任何一个微操作的执行都是事先确定的,并且都是受统一基准时标的时序信号所控制的方式。- 采用定长的机器周期
- 采用不定长的机器周期
- 采用中央控制和局部控制相结合的方法
-
异步控制
异步控制方式不存在基准时标信号,没有固定的周期节拍和严格的时钟同步,执行每条指令和每个操作需要多少时间就占用多少时间。这种方式微操作的时序由专门的应答线路控制,即当CU发出执行某―微操作的控制信号后,等待执行部件完成了该操作后发回“回答”(或“结束”)信号,再开始新的微操作,使CPU没有空闲状态,但因需要采用各种应答电路,故其结构比同步控制方式复杂。 -
联合控制
同步控制和异步控制下相结合就是联合控制方式。这种方式对各种不同指令的微操作实行大部分统一,小部分区别对待的办法。 -
人工控制
人工控制是为了调机和软件开发的需要,在机器面板或内部设置一些开关或按键,来达到人工控制的目的。
-
-
多级时序系统实例分析
略
10、控制单元的设计
10.1、组合逻辑设计
-
组合逻辑控制单元框图
控制单元的时钟输入实际上是一个脉冲序列,其频率即为机器的主频,它使CU能按一定的节拍(T)发出各种控制信号。节拍的宽度应满足数据信息通过数据总线从源到目的所需的时间。以时钟为计数脉冲,近过一个计数器,又称节拍发生器,便可产生一个与时钟周期等宽的节拍序列。
如果将指令译码和节拍发生器从CU中分离出来,便可得简化的控制单元框图。
-
微操作的节拍安排
略 -
组合逻辑设计步骤
略
10.2、微程序设计(略)
- 微程序设计思想的产生
- 微程序控制单元框图及工作原理
- 微指令的编码方式
- 微指令序列地址的形成
- 微指令格式
- 静态微程序设计和动态微程序设计
- 毫微程序设计
- 串行微程序控制和并行微程序控制
- 微程序设计举例