计算机组成原理期末复习

一、计算机系统概述(10分)

题目:计算机性能指标、冯诺依曼的三点核心内容。

计算机性能指标

字长:计算机的字长一般指的是CPU一次处理的数据位数,字长与计算机内部寄存器、运算器、数据总线的位宽相同。字长影响计算精确度,字长越长,计算精度就越高。影响数据的表示范围和精度,字长越长,定点数的表示范围越大。

主存容量:主存容量是指主存能存储的最大信息量,增加主存容量能减少程序运行期间访问辅存的次数,有利于提高程序的执行速度。主存可以按照字节编址和字编址,即每个存储单元存储的二进制位数不一样。

时钟周期:计算机中最基本、最小的时间单位。是时钟频率的倒数。

CPI:是指执行每条指令所需要的平均时钟周期数。

CPU时间:CPU时间即反映CPU全速工作时完成该进程所花费的时间。与cpi、时钟频率和指令条数有关。

IPC:指每个时钟周期CPU能执行的指令条数,是CPI 的倒数。

MIPS:计算机每秒执行指令的次数。

MFLOPS:计算机每秒执行浮点运算的次数。

冯诺依曼的三点核心内容

  • 采用二进制作为数字计算机数制基础。
  • 提出存储程序程序控制的思想。
  • 计算机的硬件系统包含运算器控制器存储器输入设备输出设备五大部件。

二、数据的表示和运算(10分)

补码加减法的实现:

补码加法: [ X + Y ] 补 = [ X ] 补 + [ Y ] 补 [X + Y]_{补} = [X]_{补} + [Y]_{补} [X+Y]=[X]+[Y]

补码减法: [ X − Y ] 补 = [ X ] 补 + [ − Y ] 补 = [ X ] 补 − [ Y ] 补 [X - Y]_{补} = [X]_{补} + [-Y]_{补} = [X]_{补} - [Y]_{补} [XY]=[X]+[Y]=[X][Y]

求补公式: [ − Y ] 补 = [   [ Y ] 补 ] 补 [-Y]_{补}=[ \ [Y]_{补}]_{补} [Y]=[ [Y]] ps:对 [ Y ] 补 [Y]_{补} [Y]逐位取反(连同符号位),末位加一。

移位规则

正数补码(包括原码)移位规则:数符不变,空位补0

负数补码移位规则:数符不变,左移时空位补0,右移时空位补1

浮点计算步骤:对阶(小阶对大阶)、尾数运算、规格化、舍入、溢出判断。

规格化:x > 0 时, x = 0.1xxxx(补) x < 0 时, x = 1.0xxxx(补)

例一:两浮点数x = 2101×0.11011011,y = 2111× (-0.10101100)。假设尾数在计算机中以补码表示,可存储10位尾数,2位符号位,阶码以补码表示,双符号位,求x + y。

将x,y转换为浮点格式: [ x ] 浮 [x]_{浮} [x]=00101,00.11011011 [ y ] 浮 [y]_{浮} [y]=00111,11.01010100

对阶: [ x ] 浮 [x]_{浮} [x] = 00111,00.0011011011 保留位

尾数求和: [ x + y ] 浮 [x+y]_{浮} [x+y]=00111,11.1000101011

结果规格化: [ x + y ] 浮 [x+y]_{浮} [x+y]=00110,11.000101011

舍入处理: [ x + y ] 浮 [x+y]_{浮} [x+y]=00110,11.00010101

例二:A = (0.1101) × 21 ,B = (-0.1010) × 23,求 A + B = ? 其浮点数的格式:补码表示,阶码4位(含1位阶符),尾数6位(含2位数符)

转化为浮点类型: [ A ] 补 [A]_补 [A]=0001,00.1101 [ B ] 补 [B]_补 [B]=0011,11.0110

对阶: [ A ] 补 [A]_补 [A]=0011,00.0011

尾数的加减: [ A + B ] 补 [A+B]_补 [A+B] = 11.1001

规格化: [ A + B ] 补 [A+B]_补 [A+B]=0010,11.0010

例三:两个十进制数X=-0.875×21,Y=0.625×22,将X, Y用浮点数表示,设阶码4位(含阶符2位)、尾数6位
(含数符2位);通过补码运算规则求 Z = X - Y。

转化为浮点类型: [ X ] 补 [X]_补 [X]= 0001,11.0010 [ Y ] 补 [Y]_补 [Y]= 0010, 00.1010

对阶: [ X ] 补 [X]_补 [X]= 0010,11.1001

尾数相减: [ X ] 补 [X]_补 [X]=11.1001 , [ Y ] 补 [Y]_补 [Y]=00.1010, [ - Y ] 补 [-Y]_补 [Y]=11.0110, [ X − Y ] 补 [X-Y]_补 [XY]= [ X ] 补 [X]_补 [X]+ [ - Y ] 补 [-Y]_补 [Y]= 11.1001+11.0110 = 10.1111

规格化: [ X − Y ] 补 [X-Y]_补 [XY]= 0010,10.1111,规格化结果: [ X − Y ] 补 [X-Y]_补 [XY] = 0011,11.0111

1﹑某机字长16位,浮点数格式为8位阶码和8位尾数,规格化,阶码和尾数均以双符号位的补码形式表示。求A+B和A-B的浮点数形式,最后结果要求规格化且用十六进制表示。
(1)A= -48,B=63 (2)A= -0.875,B=5

在这里插入图片描述
在这里插入图片描述

2﹑现需设计实现某型浮点计算机,约定其浮点数字长为16位,其中:阶码6位,含2位阶符;尾数10位,含2位数符,补码表示,规格化表达。若现有两个十进制数据: A=13/128,B=7/64,求A+B和A-B浮点数形式,最后结果要求规格化且用十六进制表示。

在这里插入图片描述

三、CPU子系统(45分)

指令格式

固定操作码拓展操作码

固定长度操作码

  • 操作码位数和位置是固定的
  • 多用于指令较长或可变字长指令格式

特点: 读取和识别指令简单,译码简单、迅速。

拓展操作码

设某指令系统指令字长16位,每个地址码为6位。若要求设计二地址指令15条、一地址指令34条,问最多还可设计多少条零地址指令?

在这里插入图片描述

例. 某机为定长指令字结构,指令长度为16位,每个操作数的地址码长6 位,指令分无操作数、单操作数和双操作数三类。若双操作数指令有K条,无操作数指令有L条,为单操作数最多有多少条?

设单操作数指令有X条,

分析:

1)双操作数指令有K条,其最大指令数24条;留有24-K个编码可以扩展到单+无操作数指令。 24-K个编码以及中间的6位一共有(24-K)*26个编码。

2)若其中单操作数指令有X条,则留有(24-K)×26 – X个编码可以扩展到无操作数指令。 (24-K)×26 – X个编码以及最后6位

3)无操作数指令有:((24-K)×26 - X)×26

则 ((24-K)×26 - X)×26 >= L 即,X ≤ (24-K)×26 - (L / 26 )

∴ 单操作数指令最多: (24-K)×26 - (L / 26 )条。

寻址方式

多种寻址方式的特点;
指令的二进制表示形式,指令功能(英文指令翻译为二进制)

  1. 立即寻址:所需的操作数由指令直接给出,称为立即数寻址方式

    特点

    • 不需再次访存,速度快
    • 操作数固定,无法修改

    特别注意

    • 只能用于源操作数字段
    • 常用来给寄存器和存储单元赋值
  2. 存储器直接寻址:地址码给出的就是操作数S所在主存单元的实际地址

    特点

    • 执行阶段访问一次存储器
    • D的位数决定了该指令操作数的寻址范围
    • 有效地址是指令的一部分,不能随程序的需要而动态改变,因此指令只能访问某个固定的主存单元
  3. 寄存器直接寻址:如果指令的地址码部分给出的是某通用寄存器编号R,,R,寄存器中存放着操作数,则称为寄存器直接寻址。

    优点

    • CPU中的寄存器的访问速度比主存快
    • 寄存器数远远少于主存单元数,存放寄存器号的字段位数少,可以有效地缩短指令长度,提高工作速度
  4. 间接寻址:地址码部分给出的是存放操作数地址的内存单元的地址,这个地址叫做间接地址

    特点

    • 间址单元作为地址指针,只要修改指针,同一条指令就可以在不同时间访问不同的存储单元
    • 地址不变,但地址里面的内容改变了
  5. 寄存器间接寻址:地址字段所指的寄存器中存放的是操作数的地址。

    用途:把就寄存器作为地址指针

    寄存器间接寻址方式的优点:

    • CPU中的寄存器的访问速度比主存快
    • 寄存器数远远少于主存单元数,存放寄存器号的字段位数少,可以有效地缩短指令长度,提高工作速度
    • 寄存器本身的位数可以很多,足以提供较长的地址码
  6. 相对寻址,记得pc+1

  7. 变址寻址,可以改变变址寄存器的值。作用是查找二维表、按下标顺序访问一维数组元素。

  8. 基址寻址,基址寄存器的值一经设定,在程序执行过程中不再改变。可以通过不同的形式地址D访问不同的存储地址。

某计算机字长为16位,主存地址空间大小为128KB,按字编址。采用单字长指令格式,指令各字段定义如图,转移地址采用相对寻址方式,相对偏移量用补码表示。寻址方式如图。

在这里插入图片描述

(1)该指令系统最多可有多少条指令?该计算机最多有多少个通用寄存器?存储器地址寄存器MAR和存储器数据寄存器MDR至少需要多少位?

(2)转移指令的目标地址范围是多少?

(3)若操作码0010B表示加法操作,助记符为add,寄存器R4,R5的编号分别为100B和101B,R4的内容为1234H,R5的内容为5678H,地址1234H中的内容为5678H,地址5678H中的内容为1234H,则汇编语句add (R4),(R5)+ 逗号前为源操作数,逗号后为目的操作数,对应的机器码是多少?用十六进制表示。该指令执行以后,哪些寄存器和存储单元的内容会发生改变?改变后的内容是什么?

解:(1)该指令系统最多可有16条指令;该机最多有8个通用寄存器(6-8位,8个通用寄存器);因为地址空间大小为128 KB,按字编址,故共有64K个存储单元;地址位数为16位,所以MAR至少为16位;因为字长为16位,所以MDR至少为16位。

(2)转移指令的目标地址范围为0000H~FFFFH。

(3)对于汇编语句“add(R4),(R5)+”,对应的机器码为:0010 001 100 010 101B,用十六进制表示为2315H。“add(R4),(R5)+”指令执行后,R5和存储单元5678H的内容会改变。执行后,R5的内容从5678H变为5679H,存储单元5678H中的内容从1234H变为68ACH。

模型机

根据模型机写出指令流程和控制信号

模型机

在这里插入图片描述

mov指令
在这里插入图片描述
在这里插入图片描述

双操作数
在这里插入图片描述

控制器

控制器的类型及其结构(框图),分析组合逻辑控制器和微程序控制器

组合逻辑控制器

在这里插入图片描述

微命令发生器:将产生微命令的条件综合化简,形成逻辑式,用组合逻辑电路实现
PC:当前指令在存储器中的位置
IR:存放当前正在执行的指令

微程序控制器

微程序控制:

  • 将并发信号事先存储为微指令
  • 完成指令所需的控制信号按格式编写成微指令,存放到控制存储器

依据读来的机器指令的操作码找到与之对应的一段微程序的入口地址,并按由指令具体功能所确定的次序,逐条从控制存储器中读出微指令。

根据微地址寄存器(μAR)的内容,从CM的0号单元读出一条“取指令”的微指令,送到μAR。产生有关控制信号,存储器将机器指令送往IR,并修改PC的内容。

IR中机器指令的操作码通过微地址形成这条指令对应的微程序入口地址,送入μAR。
根据μAR中微地址从CM中取出对应微程序的第一条微指令,产生有关控制信号,由顺序控制字段形成下一条微指令地址,送入μAR,重复第3步直到该机器指令的微程序执行完。
执行完一条机器指令的微程序后,返回到CM的0号微地址单元,重复第1步。

在这里插入图片描述

两种控制器的比较

采用组合逻辑设计方法设计控制单元,微操作控制部件的线路结构十分庞杂,不规整,而且指令系统功能越全,微操作命令越多,线路就越复杂。一旦控制部件构成后,除非重新设计和物理上对它重新布线,否则要想增加新的控制功能是不可能的。组合逻辑控制的最大优点是速度较快。

微程序控制器是为了克服组合逻辑控制器线路复杂、不易修改的缺点而提出的,用类似存储程序的办法,来解决微操作命令序列的形成。就是把一条机器指令看成一个微程序,每一个微程序包含若干条微指令,每一条微指令对应一个或几个微操作。然后把这些微程序存到一个存储器中,用寻找用户程序机器指令的办法来寻找每个微程序中的微指令,逐条执行每一条微指令,也就相应地完成了一条机器指令的全部操作。 微程序控制器同组合逻辑控制器相比较,具有设计规整、调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计。但是由于它使用了控制存储器,所以指令的执行速度比组合逻辑控制器慢。

组合逻辑控制器和微程序控制器,两种控制器各有长处和短处。组合逻辑控制器设计麻烦,结构复杂,一旦设计完成,就不能再修改或扩充,但它的速度快。微程序控制器设计方便,结构简单,修改或扩充都方便,修改一条机器指令的功能,只需重编所对应的微程序;要增加一条机器指令,只需在控制存储器中增加一段微程序,但是,它是通过执行一段微程。具体对比如下:组合逻辑控制器又称硬布线控制器,由逻辑电路构成,完全靠硬件来实现指令的功能。

四、存储器子系统(20分)

五、I/O 子系统(10分)

数据传送方式(查询、中断、直接)
I/O端口编址方式(CPU与外设之间有接口,达到速度匹配的目的)

数据传送方式

立即程序传送:在CPU 与慢速变化的设备交换数据时,可以认为它们总是处于“就绪"状态,随时可以进行数据传送,这就是无条件传送,或称立即传送、同步传送。适合于状态很少改变的简单设备,如LED数码管、按键或按纽等。这种传送有前提:外设必须随时就绪。

程序查询方式:CPU在执行程序时需要不断查询外部设备的状态,如果设备的数据传送没有准备好,CPU就反复查询,只有当设备准备好,CPU才能用I/O指令传输数据。数据的输入/输出都必须经过CPU ;CPU与设备间是串行工作,所以CPU的使用效率低。

程序中断方式:在程序执行过程中,由于某个随机事件的请求,暂停现程序的执行,转去执行一段处理此随机事件的程序,处理完后又回到原程序继续执行,这一过程叫“程序中断”。其特点是:(1)当数据传送“准备好”时由设备主动向CPU提出中断请求;(2)具有随机性;(3 )CPU与设备是并行工作的;(4)一般用于低速设备的数据传送。

DMA方式:依靠硬件在主存与I/O设备之间进行直接的数据传送,在传送期间不需要CPU程序干预。特点:速度快,适用于主存与高速I/O设备间的简单数据传送。

I/O 端口编址方式

1 与存储器统一编址

将I/O接口中的寄存器与内存单元统一编址,访问I/O接口如同访问内存
特点:操作灵活,不用专用I/O指令(如MOV或进行其它操作);占用内存部分地址

2 I/O 端口单独编址

设置单独I/O地址空间分时共享地址总线,设置专用的信号来区分是访问存储器与l/O,设置专用I/O指令
特点:不占用存储空间;专用I/O指令,灵活性差

接口

泛指两个设备(软,硬)之间的交接部分。

六、OPEN QUESTION(5分)

题目:谈谈你对未来计算机发展的看法

  • 8
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值