计算机组成原理期末复习知识点

自己整理的康磊版的《计算机组成原理——基于MIPS结构》计组相关的知识点,看过的小可爱们点个赞叭~整理不易qwq
欢迎捉虫

计组复习
1.计算机系统概述
1.1计算机系统组成

在这里插入图片描述

硬件是基础,软件是灵魂,缺一不可。

1.2冯诺依曼结构

特点:

①计算机由五大部件构成,即计算机=存储器+运算器+控制器+输入设备+输出设备。

②所有的程序(包括指令和数据)都是用二进制形式存储在内存中的。

③计算机应该能够自动按照程序的要求顺序执行指令。(按地址顺序执行)
在这里插入图片描述

冯诺依曼体系结构:程序及其操作数据一同存储。

哈佛体系结构:程序和操作数据分开存储。

1.3计算机的性能指标

①字长:计算机运算器中一次能够完成二进制数运算的位数。

②存储容量:

1 K B = 2 10 B , 1 M B = 2 20 B , 1 G B = 2 30 B , 1 T B = 2 40 B , 1 P B = 2 50 B 1KB=2^{10} B,1MB=2^{20} B, 1GB=2^{30} B, 1TB=2^{40} B, 1PB=2^{50} B 1KB=210B1MB=220B1GB=230B1TB=240B1PB=250B

③运算速度:

一个程序的CPU执行时间=程序的时钟周期数×时钟周期

​ (1)主频是CPU时钟信号的频率,是时钟周期的倒数。

f c p u = 1 t c p u f_{cpu}=\frac{1}{t_{cpu}} fcpu=tcpu1

f c p u f_{cpu} fcpu是CPU的频率, t c p u t_{cpu} tcpu是时钟周期。

​ (2)平均指令执行速度:

V m = 1 T m V_m=\frac{1}{T_m} Vm=Tm1

​ 单位:MIPS(每秒百万条指令)

​ (3)CPI是每条指令执行时所花费的平均时钟周期数。

  ​CPU时钟周期数=程序的指令数×每条指令的平均时钟周期数。

1.4计算机层次结构

在这里插入图片描述

特点:各层次之间关系紧密,上层是下层功能的扩展,下层是上层的基础

2.运算方法和运算器
2.1数据表示

二进制

2.2定点数的表示
  • 原码

    ​ 符号位为“0”表示正数,“1”表示负数

  • 反码

    ​ 正数:反码=原码=补码

    ​ 负数:原码→反码:符号位一致,数值位取反。

    ​ 补码→反码:减去单位“1”

  • 补码

    ​ 正数:补码=原码

    ​ 负数:原码 → 补码:符号位不变,从低位到高位第一个“1”不变,其余数值位取反。

    ​ 反码→补码:加上单位“1”

  • 移码
    ​  移码的实质:将有符号数转变为无符号数。
    ​  符号位1表示正数,符号位0表示负数。
    ​  补码为移码的符号位取反,数值位相同。
    补码和移码中数值“0”是唯一的,原码和反码的“0”有“+0”和“-0”之分。

2.3浮点数的表示

①IEEE标准

单精度:

S符号位 1位 E阶码 8位 (总是1) M尾数 23位

阶码:移码方式

尾数:最高有效位为1,省略。

对于一个规格化的浮点数N来说,N=(-1)S*2(E-127)

2.4非数值数据表示

①输入机器后,计算机需要将汉字转换为内码进行存储、交换和检索。

汉字内码=国标码+8080H

②奇偶校验

  • 奇校验
    • 奇数个1为0
    • 偶数个1为1
  • 偶校验
    • 偶数个1为0
    • 奇数个1为1
2.5定点数的加减运算
  • [ x ] 补 + [ y ] 补 = [ x + y ] 补 ( m o d 2 ) [x]_{补}+[y]_{补}=[x+y]_{补}(mod2) [x]+[y]=[x+y](mod2)

  • 进位舍去

    双符号位:

  • 0 0正数

  • 1 1负数

  • 0 1正溢(上溢)

  • 1 0负溢(下溢)

注意:先补0再取反,符号位在补的0前面

2.6浮点数运算
  • 0操作数检查
  • 对阶
    • 阶码相同
    • 小数向大数对阶,尾数右移
  • 尾数相加
  • 结果规格化
    • 双符号位数据不相等
      • 向右规格化
        • 尾数右移1位,阶码加1
    • 单符号位与数据最高位相等
      • 向左规格化
        • 尾数左移n位,阶码相应减n
  • 舍入处理
    • 0舍1入
    • 恒置1
  • 溢出处理
3.存储系统
3.1存储器概述

①存储器分类:

​ (1)按存储介质分类:

   ● 半导体存储器(集成度高、功耗低、速度快)

   ● 磁表面存储器(存储容量大、位价低、非破坏性读出、信息可以长期保存)

   ● 光盘存储器(非易失)

​ (2)按数据存取分类:

    ● 随机存取存储器(RAM)

  ● 顺序存取存储器(SAM)(用于外部辅助存储器)

  ● 直接存取存储器(DAM)(如硬盘)

​ (3)按在计算机中的作用分类:

  ● 主存储器

  ● 外存储器

  ● 高速缓冲存储器(速度快、位价低、容量小)

②主存储器的性能指标

 (1)存储容量

   存储容量=存储单元个数×存储字长(bit)

 (2)存储速度

   ● 存取时间:主存从接收到读出或写入命令开始,直到完成数据的读出和写入操作所需的时间。

   ● 存储周期:连续两次读或写操作之间最短的间隔时间。(存储周期大于存取时间)。

   ● 主存带宽:每秒主存可读或写的数据量。单位:位每秒(b/s)

​ (3)位价

   存储器中每一位的价格。

③存储器的体系结构

在这里插入图片描述

这种存储结构可以分为缓存—主存和主存—辅存两个层次。

​ (1)缓存—主存层次

  主要解决CPU和主存之间速度不匹配的问题。

  数据访问速度更接近缓存的速度,存储容量和价位接近于主存,因此解决了主存储器速度和价格之间的矛盾。

​ (2)主存—辅存层次

  用于存放大量暂时不用的程序和数据。

  访问速度接近主存,容量和价位接近辅存。

● 三级存储层次总效果:存取速度接近于缓存的,存储容量是辅存的,存储器的价位接近于辅存,解决了存储器速度、容量和成本三者之间的矛盾。(基于程序局部性原理构建)

3.2 主存储器的内部结构

①存储芯片:地址译码器、驱动电路、读/写控制电路。

②半导体存储芯片的译码驱动方式:

 ● 一维地址移码方式

  ● 只有一个地址译码器。

  ● 字选线选择某个字的所有位。

  ● 存储阵列中每一行的所有位对应一个字,共用一根字选择线;

  ● 每一列对应不同字的同一位,且与公用的位线相连接。

 ● 二维地址移码方式(大量减少译码器选通线的数量)

  ● 存储体中的存储单元按照阵列方式排列

  ● 需要X和Y两个地址译码器,X称为行译码器,Y称为列译码器。
  ● 只有X译码器和Y译码器同时选中的行、列交叉位置的存储单元才被选中。

③主存储器和CPU和连接

 主存储器和CPU是通过总线**(数据总线、地址总线、控制总线)**连接的。

  • 首先由地址总线给出地址信号
  • 然后发出读操作或写操作的控制信号
  • 最后在数据总线上进行信息交流
3.3随机访问存储器RAM

半导体存储器根据功能可分为随机存储器(RAM)只读存储器(ROM)

RAM根据存储原理不同可分为静态RAM**(SRAM)和动态RAM(DRAM)**

①静态存储器(SRAM)

特点:速度快,成本高。

②动态存储器(DRAM)

特点:信息动态变化,廉价。

​ ● DRAM的存储元是依靠电容存储数据的,需要刷新。

 (1)集中刷新

   特点:芯片的刷新操作集中在64μs。

 (2)分散刷新

   特点:将存取周期平均分为基本周期,每个基本周期有两段,一段访问,一段刷新。

 (2)异步刷新

   特点:将存储周期分为几个时间段,每个时间段最后一个存取周期进行刷新。

3.4只读存储器ROM

数据只能读出不能读入,即内容不能更改。

按照工作原理分:

​ (1)掩膜型只读存储器MROM

​ (2)可编程一次的只读存储器PROM

​ (3)紫外线可擦除可编程只读存储器EPROM(高密度,低成本)

​ (4)电可擦除可编程只读存储器EEPROM(电擦除、快速)

   ●字擦除擦除一个存储单元

   ●块擦除擦除一个数据块中所有存储单元

​ (5)闪存FLASH

  综合了EPROM和EEPROM的优点。

   ●低电压可读不可写

   ●高电压可写

   ●bios、u盘等

3.5半导体存储器扩展

存储器总容量=存储器字数×存储单元字长=字数×字长

①位扩展(扩字长):将现有芯片扩展成一个能够满足存储器字长要求的模块。(字数是一致的)

②字扩展(扩字数):用满足存储单元字长的芯片或模块构成存储器,以满足存储器的字数要求。

按照主存容量选择存储芯片数量:

假定一个主存的容量为M×N位,若使用S×T位的芯片构成,则所需存储芯片的数量为S=(M/S)×(N/T)

​ ● 系统程序区选择ROM,用户程序区必须是RAM。

3.6高速存储器

提高存储器速度的方法:

(1)双端口存储器:从硬件角度增加访问存储器端口数量。

(2)单体多字存储器:增加每个存储单元字长。

(3)多体交叉存储器:

  1.高位地址交叉:扩大存储器的容量。

  2.地位地址交叉:一种流水线方式的并行存储器。

(4)相联存储器(CAM):按照存储内容*对存储器进行访问

3.7高速缓冲存储器

①Cache工作原理

基于程序局部性原理:程序在执行时呈现出局部性的规律。

  • 时间局部性:一条指令被执行了,则不久后可能再次被执行。
  • 空间局部性:某一存储单元被调用,在一定时间内,与它相邻的单元可能被使用

Cache技术:

  • 利用程序访问的局部性现象,把程序中正在使用的部分(活跃块)存放在一个小容量的高速 Cache中,使CPU的访存操作大多针对Cache进行
  • 解决高速CPU和低速主存之间速度不匹配的问题,使程序的执行速度大大提高

​ (1)Cache和主存的块划分:以块为单位整体进行,因此Cache和主存的存储空间被划分成若干个大小相同的数据存储块。

在这里插入图片描述

例:假设主存和Cache都是按字节编址,主存容量为1MB,按每块512B划分,Cache容量为8KB,按照上图划分,主存地址的位数n=20位( 1 M B = 2 20 B 1MB=2^{20} B 1MB=220B),块内地址的位数b=9位(每块512B, 512 = 2 9 512=2^9 512=29),主存的块号尾数m=20-9=11位。所以主存被划分成 2 11 2^{11} 211(2048块)个块,因为Cache的块与主存快一样大,即Cache的b=9,Cache的总地址位数是13位(8KB= 2 13 2^{13} 213),所以Cahce块号的位数c=13-9=4位,即Cache被划分为 2 4 2^4 24(16)个块。

补充:按字编址:按一个机器字的存储单元的编址。如对于这个256M内存来说,它的寻址范围是64M,而每个内存地址可以存储32bit数据

​ 按字节编址:按存放一个字节(8bit)的存储单元来编址。如对于这个256M内存来说,它的寻址范围是256M,而每个内存地址可以存储8bit数据

​ (2)Cache的主要性能指标

  1. Cache的命中率

h = N c N c + N m h=\frac{N_c}{N_c+N_m} h=Nc+NmNc(cache次数 / 总次数)

N c N_c Nc是程序执行期间从Cache获得数据的次数, N m N_m Nm是访问主存的次数。

  2.平均访问时间

t a = h t c + ( 1 − h ) t m t_a=ht_c+(1-h)t_m ta=htc+(1h)tm(命中率 x cache存取周期 + (1-命中率)x 主存存取时间)

t c t_c tc表示Cache的访问时间, t m t_m tm表示主存的访问时间。

  3.效率

e = t c t a e=\frac{t_c}{t_a} e=tatc(命中时cache存取时间 / 平均访问时间)

②地址映射和变换

地址映射:将主存的地址放入Cache块的规则。

地址变换:将主存地址转换成Cache地址的过程。

常见的地址映射方式:全相联映射、直接映射和组相联映射。

​ (1)全相联映射:

   没有规则,即主存的每一块都可以放入到Cache的任意一块去。

  • 计算:

   Cache地址格式:b(Cache块号,c位) w(块内地址,b位)

   主存地址格式:B(主存块号,m位) W(块内地址,b位)

​   Cache的块内地址w与主存的块内地址W是一样的。

  • 优点:Cache的块冲突率最小,Cache的利用率高。
  • 缺点:目录表成本高,地址变换时间长,访问速度慢。

(2)直接相联

  主存中的一块只能映射到Cache中的某一特定块去。

  • 计算:

   Cache地址格式:b(Cache块号,c位) w(块内地址,b位)

   主存地址格式:G(组号,m-c位) B(组内块号,c位) W(块内地址,b位)

  主存的组内块号B=Cahce的组内块号b。

  主存的块内偏移W=Cahce的块内偏移w。

G是主存标记。

  • 优点:硬件实现简单,访问速度快。
  • 缺点:Cache的块冲突率比较高,Cache的命中率低。

(3)组相联映射

   组间采用直接映射,组内采用全相联映射。

  • 计算:

   Cache地址格式:g(组号,s位) b(组内块,t位) w(块内地址,b位)

   主存地址格式:G(组号,m-s位) B(组内块号,s位) W(块内地址,b位)

  G是主存标记。

  Cache组号g=主存的组内块号B。

  Cache的块内偏移w=主存的块内偏移W。

  • 优点:变换速度快,块的冲突概率比较低,块的利用率大幅度提高。
  • 缺点:实现难度和造价要比直接映射高。

补充:按字节编址,搞清楚每块多少字节,32位(4个字节)。按字编址,搞清楚每块多少个字。算出来的就是块内偏移地址。

③Cache替换策略:

  • 随机算法(RAN)
  • 先进先出算法(FIFO)
  • 最近最少使用算法(LRU)

④Cache与主存的一致性

​ (1)写回法:

   命中时,只修改CaChe内容,块被换出时写入主存。

​ (2)写直达法:

   命中时,CaChe与主存同时修改。

​ (3)写一次法:

   第一次写入内存,后续和写回法一致。

4.总线技术
4.1 总线概述

总线:计算机中各个部件之间传送信息的公共数据通路,是计算机系统的互联机构。

特点:共享性和独占性。

①总线分类:

(1)按照总线的结构层次分类:

  • 片内总线

    • 连接各基本逻辑单元的线路。
  • 局部总线

    • 用于芯片一级的连接。
  • 系统总线

    • CPU同计算机系统的其他功能部件(如存储器、通道等)连接的总线。
  • 外部总线

    • 用来连接外部设备或其他计算机的总线, 又称为I/O接口。

(2)按照总线的功能分类:

按照传输信息的功能:

  • 数据总线
    • 传送数据信息,是双向的。
    • 数据线的根数称为数据总线的宽度。
    • 每一根数据线每次传送1位二进制数。
  • 地址总线
    • 传送CPU发出的地址信息,是单向的。
    • 地址总线的宽度决定了计算机系统能够使用的最大的存储器容量。
  • 控制总线
    • 在主机和外部设备之间传送控制信号、时序信号和状态信号等,是单向的。
    • CPU通过控制总线向内存或外部设备发出控制命令。

(3)按照数据传输格式分类:

按照总线传输的数据格式分:

  • 并行总线
    • 用多位数据线同时传输多位数据。
  • 串行总线
    • 只使用一根数据线传输数据,一次只能传送一位数据。

(4)按照时序控制方式分类:

按照总线的时序控制方式分:

  • 同步总线
    • 有一个统一的公共时钟信号。
    • 适用于连接在总线上的部件速率差异不大的情况。
    • 控制简单、数据传输率高。
  • 异步总线
    • 没有一个统一的公共时钟。
    • 适用于总线上各设备速度差异较大的场合。
    • 其通信控制电路较复杂。

②总线性能指标:

总线宽度、总线工作频率和总线带宽。

  • 总线宽度
    • 总线能同时传送的二进制数据的位数。
  • 总线工作频率
    • 总线每秒传输数据的次数,是总线工作速度的重要指标。
  • 总线带宽
    • 单位时间内总线上传送数据的位数,用每秒传输数据的字节数表示。

总线带宽=总线宽度×总线工作频率。

③总线设计规范:

物理规范、功能规范、电气规范和时间规范。

4.2 系统总线结构

①单总线结构

  • 使用一条单一的系统总线来连接CPU、主存和I/O设备

  • 在这里插入图片描述

  • 优点:容易扩展多CPU系统

  • 缺点:只能分时工作;信息传送吞吐量受限。

②双总线结构

  • 在CPU和主存之间专门设置了一组高速的存储总线。

  • 在这里插入图片描述

  • 系统效率的提高:以增加硬件复杂度为代价。

③多总线结构

  • 涉及多种类型的总线。
  • 南桥、北桥和扩展I/O控制器。
  • 以增加硬件复杂度为代价。
4.3 总线仲裁
  • 决定共享总线的部件如何获得总线的使用权(控制权)的问题
  • 主动模式(主方)
    • 可启动一个总线周期
    • 每一次总线操作只能有一个主方占用总线控制权
  • 被动模式(从方)
    • 只能响应主方的请求
    • 每一次总线操作可以有多个从方

①集中式总线仲裁

​ (1)链式查询方式:

   ● BG信号的传送方式,串行地从一个设备接口传送的下一个设备接口。通过接口的优先级排队电路来实现的

   ▼优点:

    ● 只用很少几根线就能按一定的优先次序实现总线仲裁

    ● 很容易扩充新的设备

   ▼缺点:

    ● 对查询链的电路故障非常敏感

    ● 查询链的优先级是固定的

​ (2)计数器定时查询方式:

   ● 总线上的任一设备需要使用总线时,通过BR线发出总线请求,BR线开始计数。

   ▼优点:灵活性好。

   ▼缺点:扩充性稍差,最大设备受限于计数器的位数。

​ (2)独立请求方式:

   优点:响应速度快。

②分布式总线仲裁:

  • 不需要中央仲裁器,每个潜在的主方功能模块都有自己的仲裁号和仲裁器
  • 每个仲裁器将仲裁总线上得到的号与自己的号进行比较
    • 总裁总线上的号大
      • 不予响应,并撤销其仲裁号
  • 以优先级仲裁策略为基础的
4.4 总线的通信方式

①总线周期阶段:

  • 总线请求
  • 总线仲裁
  • 寻址(目的地址)
  • 信息传送
  • 状态返回(或错误报告)

②方式:

  • 同步通信

    • 事件出现在总线上的时刻由总线时钟信号来确定
    • 在这里插入图片描述
  • 异步通信

    • 后一事件出现在总线上的时刻取决于前一事件的出现

    • 在这里插入图片描述

    • 优点

      • 总线周期长度可变,不把响应时间强加到功能模块上
    • 缺点

      • 以增加总线的复杂度和成本为代价
  • 半同步控制方式

    • 结合同步和异步的特点
4.5 总线的信息传送

①串行传送

  • 只有一条传输线,且采用脉冲传送

  • 低位在前,高位在后,每位都需要一个位时间
    -在这里插入图片描述

  • 优点:只需要一条传输线,成本低。

  • 缺点:传送速度慢。

②并行传送

  • 用并行方式传送二进制信息时,对应于每个数据位都需要一条单独的传输线

  • 在这里插入图片描述

  • 优点:传送速度快。

  • 缺点:要求线数多,成本高。

③并串行传送

  • 将被传送信息分为若干组,组内采用并行传送,组件采用串行传送。

④分时传送

  • 总线复用
    • 在某个传输线上既传送地址信息又传送数据信息。
    • 需要划分时间片
  • 共享总线的部件分时使用总线
5.指令系统
5.1 指令系统概述

①指令:是计算机硬件能够识别并直接执行操作的命令。

②指令系统:

  • 复杂指令系统计算机(CISC):Inter IA-32(x86)
    • 结构复杂,硬件的研制周期长,开发成本高,系统性能较低
    • 特点:
      • 具有庞大的指令系统
      • 采用可变长度的指令格式
      • 指令的寻址方式繁多
      • 指令系统中包括一些特殊用途的指令
  • 精简指令系统计算机(RISC):IBE PowerPC and Cell,DEC,SUN SPARC,HP HO-PA,SGI,MIPS
    • 优化了硬件设计,提高运行速度,提高了机器性能
    • 优点:
      • 指令数量少,选用使用频率高的简单指令
      • 指令长度固定,指令格式种类少,寻址方式种类少
      • 大多数指令都在一个机器周期内完成
      • 通用寄存器数量多
5.2 指令的格式

①指令的基本格式:操作码字段(OP)+地址码字段(A)

②操作码格式:

​ (1)固定长度操作码

​ (2)可变长度操作码

   ● 通过操作码字段的扩展实现

③地址码格式:

(1)三地址指令:

​ ● OP A 3 A_3 A3 A 2 A_2 A2 A 1 A_1 A1

A 3 A_3 A3 A 2 A_2 A2 表示两个源操作数, A 1 A_1 A1表示一个目的操作数。

​ ● MIPS机器的R型指令采用三地址指令

​ (2)二地址指令

​ ● OP A 2 A_2 A2 A 1 A_1 A1

A 1 A_1 A1表示源操作数, A 2 A_2 A2 为目的操作数。

​ (3)一地址指令

  ● OP A 1 A_1 A1

​ 表示两个操作数的指令,另一个操作数是隐含的。

​ (4)零地址指令

   ● 无需操作数,操作数是默认的。

5.3 寻址方式

①指令寻址:

  1. 顺序寻址:指令一条一条按顺序执行。
  2. 跳跃寻址:实现分支和循环程序、子程序调用。

②数据寻址:

  1. 立即寻址

    • 指令的地址码字段指出操作数本身
  2. 寄存器寻址

    • 指令中的地址码是寄存器的编号
  3. 存储器寻址

    (1)直接寻址:
       ● 在指令的地址字段中直接指出操作数在主存中的地址

    (2)间接寻址:
       ● 指令地址码字段所指向的存储单元中存储操作数的地址

    (3)寄存器间接寻址:
        ● 寄存器内容是操作数地址

    (4)基址寻址和变址寻址:
       ● 基址寻址:将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。
       ● 变址寻址:将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。

    (5)相对寻址:

    ● 相对于当前的指令地址而言的寻址方式

    ● 常用于程序转移类的指令

    ● 把程序计数器PC的内容加上指令中的形式地址而形成操作数的有效地址

(6)组合寻址:

  将不同的寻址方式组合起来使用。

(7)堆栈寻址:

  ● 堆栈寻址对存储器的访问实质:寄存器间接寻址。

5.4指令的分类

①数据传送类指令

  • 寄存器间传送指令、存储器的存数指令(LOAD)、取数指令(STORE)、堆栈指令、数据交换指令、数据块传送指令。

②算术/逻辑运算类指令

  • 算术运算指令、逻辑运算指令。

③移位类指令

  • 算术移位指令、逻辑移位指令、循环移位指令。

④程序控制类指令

  • 转移类指令、子程序调用指令、返回指令。

⑤输入/输出类指令

⑥其他指令

5.5 MIPS 32指令简介
  1. 寄存器组:

    ①通用寄存器:

在这里插入图片描述

②特殊功能寄存器

  • HI和LO两个寄存器用来存储整数乘/除和乘/加操作的结果,
  • 特殊功能程序计数器PC

③FPU寄存器

  1. MIPS的指令格式

    ①R型指令:

在这里插入图片描述

​ (1)Opcode:操作码,R型固定为000000 。

​ (2)rs:源操作数寄存器编号。
​ (3)rt:另一个源操作数寄存器编号。
​ (4)rd:目的操作数寄存器编号。

​ (5)Shamt:移位指令的移位次数编码,非移位指令此字段为0.

​ (6)Funct:对R型指令的子功能操作码。

②I型指令:

在这里插入图片描述

​ (1)opcode:操作码,表明该指令的基本功能。

​ (2)rs:第一个操作数寄存器编号,指示源操作数。

​ (3)rt:第二个操作数寄存器编号,指示目的操作数。

​ (4) Immediate:立即数或偏移量。

③J型指令:

在这里插入图片描述

​ ● J型指令是为了实现远距离的程序转移而设置的。

​ ● J指令有无条件转移指令J ( Opcode=02 )和跳转并链接 JAL(( Opcode=03 )两条指令。
​ ● J指令的功能是实现程序的转移。

  1. MIPS的寻址方式

    ①数据寻址:

    ​ ● 寄存器寻址

    ​ ● 立即数寻址

    ​ ● 基址寻址

    ②指令寻址:

    ​ ● 相对寻址

    ​ ● 寄存器间接寻址

    ​ ● 伪直接寻址

    5.6常用MIPS汇编指令
6.中央处理器
6.1 CPU功能

①指令控制

  控制指令的执行顺序

②操作控制

  控制指令进行操作

③时序控制

  对各种操作实施定时控制

④数据加工

  对数据进行算术和逻辑运算

⑤中断控制

  处理突发事件

6.2 CPU的内部结构

在这里插入图片描述

①运算器

​ (1)组成

  算术逻辑单位(ALU)

  数据寄存器(DR)

  程序状态字寄存器(PSW)

  累加寄存器(AC)

​ (2)主要功能

  ● 执行所有算术运算

  ● 执行所有逻辑运算并进行逻辑测试。

②控制器(CU)

  主要功能

   ● 取指令,并指出下一条指令在主存中的位置

   ● 译码,并产生相应的操作控制信号

   ● 指挥并控制CPU、主存和输入输出设备之间数据流动的方向

③中断系统

  处理各种中断,详情看第七章。

④寄存器

 CPU内部暂存各种信息和数据的部件。

​ 可分为:

​ (1)可见寄存器

   数据寄存器(DR)

   累加寄存器(AC)

   地址寄存器(AR)

​ (2)隐含寄存器

  ▼程序计数器(PC)

    ● 指出下一条指令在主存储器中的地址

    ● 寄存信息+计数

    ● 控制器

  ▼指令寄存器(IR)

    ● 保存当前正在执行的一条指令

    ● 控制器

  ▼程序状态字寄存器(PSW)

   ● 表征当前运算的状态及程序的工作方式

   ● 运算器

  ▼存储器地址寄存器(MAR)

   ● 存放访问存储单元地址

   ● 与系统地址总线相联

  ▼存储器数据寄存器(MDR)

   ● 存放CPU与主存交换的数据

   ● 与系统地址总线相联

6.3 CPU的指令周期

指令的执行:取指令→分析指令→执行指令

指令周期:CPU取出一条指令并执行该指令所需的时间

  取指周期:指令周期的第一阶段需要从内存中将指令取出来的时间。

  间址周期:取出的指令含有间接寻址方式,间接寻址的时间。(非必要)

  执行周期:指令执行阶段的CPU周期。

  中断周期:完成中断响应的处理工作时间。(非必要)

6.4 指令执行流程

指令的执行是从取指周期开始的。

指令实例:

​ ①RS型加法运算指令: A D D R 0 , R 1 ADD R_0,R_{1} ADDR0,R1

​ 指令功能: R 0 ← ( R 0 ) + M ( ( R 1 ) ) R_{0}←(R_{0})+M((R_{1})) R0R0+M((R1)),把 R 0 R_{0} R0的内容和存储器中以 R 1 R_{1} R1内容为地址的存储单元中的内容相加,结果送到 R 0 R_{0} R0

​ ②SS型减法运算指令: S U B ( R 0 ) , A ( R 1 ) SUB(R_{0}),A(R_{1}) SUBR0AR1

​ 指令功能: M ( ( R 0 ) ) ← M ( ( R 0 ) ) − M ( ( R 1 ) + A ) M((R_{0}))←M((R_{0}))-M((R_{1})+A) M((R0))M((R0))M((R1)+A)

​ ③无条件转移指令:JMP A

​ 指令功能:PC←A,A是指令中的形式地址。

6.5 控制器的实现

① CPU的执行时间:由一个程序的执行时间决定

t e x e c t_{exec} texec=一个程序的执行时间=程序所有指令的执行时间

​ =指令数× 时 钟 周 期 数 一 条 指 令 \frac{时钟周期数}{一条指令} ×时钟周期

​ =指令数×CPI× t c l k t_{clk} tclk=指令数× C P I f c l k \frac{CPI}{f_{clk}} fclkCPI

​ 其中,CPI表示指令的时钟周期数, t c l k t_{clk} tclk表示CPU的时钟周期, f c l k f_{clk} fclk表示CPU的时钟频率。

● 要提高CPU的速度,就要降低程序的执行时间,可以采取的措施:降低CPI,提高f。

②影响CPU效率的因素

​ (1)程序中指令的数量

程序中指令的数量由以下几个因素决定:

任务,算法,编程语言,编译器,处理器的指令集

​ (2)CPI

   单周期CPU,CPI=1,多周期CPU,CPI>1,超流水结构,CPI<1。

​ (3)时钟频率 f c l k f_{clk} fclk

   单周期的时钟频率比较低。

6.6 单周期CPU

①单周期CPU特点:每一条指令的执行需要一个时钟周期,一条指令执行完再执行下一条指令。

②相关部件:

 (1)指令存取部件:

    从IM中取出当前的指令,并自动对PC更新。

  分三个部分:

   ● 程序计数器PC

    ● PC更新模块NPC

    ● IM

 (2)指令译码器ID:

    对从IM取出的机器码指令进行译码输出,作为寄存器、运算器和控制器的控制输入信号。

 (3)寄存器组RF:

   受时钟信号控制。

 (4)运算器ALU:

   实现算术或逻辑运算。

 (5)存储器:

   程序和数据分开存放。

    ● 指令存储器IM:存放程序,是只读存储器

    ● 数据存储器DM:存储程序运行过程中的数据,是可读写的。

 (6)其他部件:

   如符号扩展部件、多路选择器和控制器等。

③工作过程:

  一个指令的5个处理过程:

  ● 取指令(IF)

  ● 指令译码(ID)

  ● 指令执行(EXE)

  ● 存储器访问(MEM)(非必须)

  ● 结果访问(WB)(非必须)

④指令

按照指令功能分为3类:

  ● 基本算术逻辑运算指令ADDU、SUBU、AND、ADDIU。

  ● 基本程序控制转移指令BNE、J。

  ● 基本数据存取指令SW、LW。

6.7 控制器的实现

①组合逻辑控制器:

所有的控制命令都是由逻辑门电路产生的。

  • 应用:RISC处理器和一些巨型计算机。
  • 优点:速度较快,其速度主要取决于逻辑电路的延迟。
  • 缺点:

​ ● 控制器功能的检查和调试困难,设计效率低。

​ ● 修改和扩展指令功能都很困难。

②微程序控制器:

​ (1)基本思想:

  ● 将微操作控制信号按一定规则进行编码,形成微指令,存放到一个只读存储器里

  ● 当机器运行时,逐条读出这些微指令,从而产生全机所需要的各种操作控制信号,使相应部件执行所规定的操作。

​ (2)特点:

  ● 将控制信号存储在由ROM实现的CM中

  ● 结构规整,只有地址译码器和控制存储器(规整性)

  ● 可以灵活修改控制器的功能,便于发现存在的错误和增加新的指令。(灵活性、可维护性)

③两种控制器的比较:

  • 实现方式
    • 组合逻辑控制
      • 逻辑门电路
      • 比较复杂,很难修改指令或增加指令
    • 微程序控制
      • 控制存储器和微指令寄存器直接控制
      • 比较规整,可修改或增加指令
  • 性能
    • 组合逻辑控制速度快
      • 取决于电路的延迟
6.8 多周期CPU

①指令周期的分配:

给5个步骤(取指令(IF),指令译码(ID),指令执行(EXE),存储器访问(MEM),结果访问(WB))分别分配了一个时钟周期。

R型和I型指令需要4个时钟周期,BNE和J指令需要3个时钟周期,LW指令需要5个时钟周期。

6.9 流水线CPU

①描述

  ● 将一个计算任务细分成若干个子任务,每个子任务都由专门的功能部件进行处理,
  ● 一个计算任务的各个子任务由流水线上各个功能部件轮流进行处理(即各子任务在流水线的各个功能阶段并发执行),最终完成工作。
  ● 这样,不必等到上一个计算任务完成,就可以开始下一个计算任务的执行
②本质

  ● 将一个重复的时序过程分解成若干个子过程
  ● 每一个子过程都可有效地在其专用功能段上与其他子过程同时执行

③影响流水线性能的因素

​ (1)资源相关

  ● 存储器相关

    解决:1.采用双端口存储。

       2.将第五条指令延时一个时钟周期后再进入IF阶段。

  ● 寄存器相关

   解决:1.将指令存储器和数据存储器分离。

      2.对RF的读写操作采用不同的时刻。

​ (2)数据相关

数据相关是流水线中最常见的造成断流的原因。

  ● 寄存器数据相关

    解决:1.延时法。

       2.前项短路控制。

  ● 与LW指令有关的数据相关

    解决:1.优化编译。

​ (3)控制相关

   解决:1.增加延迟。

​ 2.优化编译。

​ 3.动态分支预测。

7.输入/输出系统
7.1 概述

①基本功能:

  • 确定一次数据传输过程中的源端设备和目的端设备。
  • 确保I/O设备和主机之间能够顺利地进行信息交换。

②组成:

  • 硬件:系统总线、I/O接口、I/O设备及设备控制器等。
  • 软件:用户的I/O程序、设备驱动程序和设备控制程序。

③外围设备和主机的链接方式:

  • 总线型连接方式
    • CPU需要亲自处理外设的请求和数据传递工作
    • 优点:系统模块化成都较高,I/O接口扩充方便。
  • 通道型方式
    • 由通道控制器实现主机与外部设备之间的数据交换。
    • 用于大型主机系统,用于连接数量多、类型多且速度差异大的各种外部设备。
  • I/O处理机方式(IOP方式)
    • 独立于主机工作。

④控制方式:

  1. 直接程序控制方式
    • CPU掌握主动权,外设只能被动接受CPU的操作。
    • 优点:控制逻辑简单,需要硬件结构简单。
  2. 程序中断方式
    • 外围设备用来“主动”通知CPU,准备发送或接收数据的一种方式。
  3. 直接存储器存取方式
    • DMA控制器从CPU完全接管对总线的控制权
    • 数据交换不经过CPU而直接在主存和外围设备之间进行,以便高速传送数据
    • 优点:
      • 数据传送速度高
      • 传送速率仅受限于主存的访问时间

在这里插入图片描述

7.2 I/O接口

①I/O接口的功能:

  • 识别设备地址,选择指定的端口。
  • 实现数据的传送与缓冲。
  • 实现信号形式和数据格式转换。
  • 逻辑控制。

②I/O接口的基本结构:

按照传输信息的功能分:

  • 数据信息
    • 数字量
    • 模拟量
    • 开关量
  • 控制信息
  • 状态信息

基本电路:

  • 设备选择电路:用于接收总线传来的地址信息。
  • DR(数据端口):用于存放主机与外设之间要传递的数据信息。
  • CR(控制端口):用于存放主机向外设发送的控制信息。
  • SR(状态端口):用于存放外设或接口的工作状态。
  • 控制电路:如中断控制逻辑、DMA控制逻辑等。

③接口的编址方式:

  • 统一编制:

    • CPU对I/O端口的访问可以采用访问存储器的方法。
    • 优点:
      • CPU可使用访存指令对I/O端口进行操作,寻址方式十分灵活和方便。
      • 不需要用专门的指令及控制信号对存储器或I/O端口的操作进行选择,使得硬件相对简单。
    • 缺点:
      • 内存容量减小。
      • 程序的可读性不好。
  • 独立编址:

    • 主存和I/O端口都有各自的地址空间,分别独立进行编址。
    • 优点:
      • I/O端口具有独立的地址空间,不占有内存空间。
      • 由于程序中访问存储器和访问I/O端口分别使用不同的指令,因此程序的可读性较好。
    • 缺点:
      • I/O指令的功能简单,其寻址方式简单,编写程序不够方便。
      • 需要设置用于选择I/O设备或存储器的专用控制信号。

④I/O接口的分类:

  1. 按数据传送格式分类:

    • 串行接口:逐位的。
    • 并行接口:一个字或一个字节的所有位同时传送的。
  2. 按时序的控制方式分类:

    • 同步控制接口
    • 异步控制接口
  3. 按信息传输的控制方式分类:

    • 按照I/O设备与主机之间交换信息时控制方式的不同。

      I/O接口方式分:直接程序程序中断传送方式、直接存储器存储方式,通道方式和I/O处理机方式。

⑤MIPS机中的I/O编址与访问:

  • MIPS机器中I/O和存储器采用统一编址方式,可以直接使用访存指令LW和SW指令访问I/O设备。
7.3直接程序控制

①程序查询方式的处理过程:

  • 直接控制方式

    • 适合于有定时采样和定时控制的外设。
  • 程序查询方式

    • 完全通过程序来控制的。

    • 完成一次数据传输步骤:

      1. 向外设发出启动命令

      2. 读取外设的工作状态

      3. 判断外设是否准备就绪

      4. CPI将数据写入接口的数据缓冲寄存器,或将接口中缓存寄存器的数据读入。

        1、2、4对外设的访问都是通过I/O指令完成的。

②程序查询方式的接口:

  • CR ( CommandRegister ):接收来自CPU的命令。

  • SR ( StatusRegister ):记录外设工作状态,可以用特定的某一位表示外设就绪与否。

    当设备的状态信息较多时,可以用每一位表示一种状态。

  • DR( DataRegister ):缓存传输的数据。

程序查询控制方式适用于

  • CPU速度不高,并且 CPU工作效率问题不是很重要
  • 需要调试或诊断I/O接口及设备

缺点:

  • CPU与外围设备无法并行工作,CPU效率很低。
  • 不能响应来自外部的随机请求,CPU无法处理突发事件。
7.4 程序中断控制

①中断的基本概念:

  • 中断:暂时中断现有程序的执行,转去执行另一服务程序。

  • 中断向量:中断服务程序在内存中存放的入口地址,即首地址

  • 中断服务程序:为处理突发或有意安排的任务而预先编写的程序。

  • 中断的分类

    1. 按照中断的产生方式分类:
      • 硬件中断:由某个硬件设备的中断请求信号引发的中断。
      • 软件中断:由执行中断软指令引发的中断。
    2. 按照中断的可预测性分类:
      • 强迫中断:由硬件故障或软件出错产生。
      • 自愿中断:计算机系统出于管理的需要,自愿进入的中断。
    3. 按照中断源所处的位置分类:
      • 内部中断:来自主机内部设备的中断请求,如电源故障、CPU故障、软中断等。
      • 外部中断:来自主机外,由外设提出的中断,如键盘、显示器、打印机、硬盘等。
    4. 按照中断的可控制性分类:
      • 某个外部设备能否提出中断请求是由其接口的中断屏蔽字控制的, CPU可以编程实现对屏蔽字的设置
        一般外设提出的中断都是可屏蔽中断
      • 不可屏蔽中断:一些要求CPU必须响应的中断请求,如硬件、主机故障等。
        软件中断是不可屏蔽中断
    5. 按照中断服务程序入口地址的生成方式分类:
      • 向量中断:中断向量是根据中断源的类型号,通过查询主存中的中断向量表得到的。
      • 非向量中断:中断服务的入口地址是通过执行软件(如中断服务总程序)来获得的。

②中断的完整过程:

  1. 中断请求

    • 独立请求方式:
      • 每个中断源都有独自的中断请求线,有多根请求线被直接送往CPU。
      • CPU可以立即确定具体的中断源。
      • 优点:便于实现向量中断,因为可以方
        便地通过编码电路形成向量地址。
      • 缺点:由于CPU的中断请求连线数量有限,中断源的数量难以扩充。
    • 单线请求方式:
      • CPU只有一根中断请求信号,各中断源的请求信号通过三态门汇集到一根公共请求线。
      • 优点:减少CPU的引脚,也便于中断源的扩展。
      • 缺点:需要通过链式查询逻辑来确定优先级最高的中断源,所以响应速度会慢一些。
    • 二维请求方式:
      • CPU可以有多根中断请求线,它们有固定的优先级,称为主优先级。每个中断请求线又可以连接多个中断源,这些中断源又按照单线的方式确定优先级。
      • 优点:可以迅速判断中断源,便于扩充中断源的数量
  2. 中断判优

    • 硬件判优:
      • 独立请求方式
      • 单线请求方式
    • 软件判优:
      • 软件查询方式(适用于低速和中速设备)
    • 中断优先级划分规律:
      • 硬件故障中断的优先级是最高的,因为这类情况的出现会使程序无法运行。
      • 程序错误中断次之,这类错误即使程序继续运行也没有意义。
      • DMA请求优先于输入/输出数据传输的中断请求。
      • 在外部设备中,高速设备的中断优先级高于低速设备实时控制设备的中断优先级高于普通数传设备
  3. 中断响应

    • 中断响应:CPU停止执行现行程序,转去处理中断请求。

    • 中断周期:指程序指针PC由断点转向中断服务程序首地址的时间

      (1)相应中断的条件:

      ​ ● 有中断请求

      ​ ● CPU允许接受中断请求

      (2)相应中断的时间点

      (3)中断隐指令:

      ​ ● 保护断点

      ​ ● 转向中断服务程序

      ​ ● 关中断

  4. 中断处理

    • 多级中断流程:保护现场、开中断、设备服务、恢复现场和中断返回。
    • 单级中断流程:保护现场、设备服务、恢复现场、开中断和中断返回。
  5. 中断返回

③多级中断技术:

  • 条件

    1. 设置中断屏蔽触发器EINT :实现对所有中断源的中断允许。处理器通过专用的开中断指令或关中断指令设置EINT的状态。

      补充:

      • EINT=1:开中断,允许CPU接收中断请求并为各中断源服务;
      • EINT=0:关中断,CPU拒绝所有中断请求。
    2. 设置中断允许触发器E:实现对某个特定的中断源的中断允许通过I/O指令设置中断源接口设备中EI的状态。

      补充:

      • EI=1:该设备可以向CPU发出中断请求。
      • EI=0:该中断请求不能发给CPU,即被禁止。
  • 实现多级中断必须满足:

    (1)EINT=1。

    (2)高级别的中断可以打断优先级别低的中断。

  • 中断屏蔽字改变中断源优先级:(0-表示开发,1-表示屏蔽)

  • 中断具体操作看书P285-P290.

7.5 DMA技术

①DMA方式概述:

  • DMA方式的基本原理:完全由硬件执行I/O传送的工作方法。

  • DMA方式的特点:

    • 以响应随机请求的方式,实现主存与I/o设备间的快速数据传送。
    • 数据传送时,仅需占用系统总线。DMA传送的插入不影响CPU本身的程序执行状态,除了访问主存的冲突外,CPU可以继续执行自己的程序,提高了CPU的利用率。
    • DMA方式只能处理简单的数据传送,难以识别与处理复杂的情况。
  • DMA的传送方式:

    • CPU暂停访存方式:
      • 优点:控制简单、适于传输率很高的外设实现成组数据传送。
      • 缺点:**CPU工作受影响。**DMA访存时CPU基本上处于停止状态。**主存周期没有被充分利用。**即使IO设备高速运行,但两个数据之间的准备间隔时间也总大于一个存储周期,所以主存周期没有被充分利用。
    • 周期挪用方式:
      • 停止CPU访内的DMA方法比较,周期挪用方法既实现了IO传送,又较好地发挥了内存和CPU的效率。
      • 周期挪用的方法适用于IO设备读写周期大于内存存储
        周期的情况。
    • DMA与CPU交替访内存方式。

②DMA控制器的基本结构:

  • DMA控制器的组成:
    • 主存地址寄存器MAR
    • 字计数器WC
    • 设备地址寄存器DAR
    • 控制/状态寄存器CSR
    • 数据缓冲寄存器DBR
    • 中断机构
    • DMA控制逻辑

③DMA的工作过程:

  • 传送前预处理
  • 数据传送:
    • DMA的数据传送是以数据块为基本单位进行的。
  • DMA传送后处理

④DMA控制器的类型:

  • 选择型DMA控制器:

    • 选择型DMA控制器只增加少量硬件达到了为多个外围设备服务的目的,它特别适合数据传输率很高以至接近内存存取速度的设备
  • 多路型DMA控制器:

    • 多路型DMA控制器适合于同时为多个慢速外围设备服务。
7.6 通道

①通道的功能:

  • 通道是一个特殊功能的处理器,有自己的指令和程序专门负责数据输入输出的传输控制。

②通道的类型

选择通道:

  • 选择通道(高速通道)是指在物理上它可以连接多个设备,但是这些设备不能同时工作,在某一段时间内通道只能选择一个设备进行工作。
  • 主要用于连接高速外围设备。
  • 缺点:通道的利用率低。

多路通道

  • 多路转换通道,在同一时间能处理多个I/0设备的数据传送。分为:
    • 数组多路通道
      • 数组多路通道在物理上可以连接多个设备,且在一段时间内能交替执行多个设备的通道程序。
    • 字节多路通道
      • 主要用于连接大量的低速设备。

字节多路通道和数组多路通道的不同之处:

数组多路通道与设备之间数据传送的基本单位是数据块。而字节多路通道与设备之间数据传送的基本单位是字节

复习题
简答题
  1. 在计算机的主存中,通常设置一定的ROM区,并且ROM与RAM统一编址,请指出设置ROM区的目的。

    答:由于ROM为只读存储器,它在断电的情况下,保存的信息不会丢失,故可用于存放-些下一次启动时所需的信息,或者存放需要显示和打印的字符点阵信息。在计算机中,由于启动时需要一段启动程序来检测系统的好坏,从磁盘上装载操作系统,以及显示屏幕上显示信息的点阵等需要,这些都存储在ROM中。这样需要ROM,否则计算机将不可能启动。

    目的:用于存放操作系统的初始引导程序

  2. 某计算机字长32b,其中地址码长度22b,若主存按字编址,主存的最大容量是多少(字)?

    解:主存的最大容量= 2 22 2^{22} 222/22=1M字。

    若主存按字节编址,主存的最大容量是多少(字节)?

    解:主存的最大容量=222=4M字节。

  3. 多级存储系统的建立基于什么原理?简述这一原理。
    答:多级结构的存储器系统的运行原理,或者说他们的性价比/价格比,是建立在程序运行的局部原理之上的。程序运行的局部性原理主要体现在如下3个方面:

    (1)时间方面,在一小段时间内,最近被访问的程序和数据可能会再次被访问;

    (2)空间方面,这些最近被访问过的程序和数据,往往集中在一片存储区域中;

    (3)在指令执行顺序方面,指令顺序执行比转移指令的可能性要大(大约5:1)。

  4. 试描述挥发性存储器和非挥发性存储器各自的特点,并各举2个实例。

    • 挥发性存储器:断电后信息丢失:SRAM、DRAM
    • 非挥发性存储器:断电后信息不丢失:磁盘、ROM
  5. 什么是存储器的带宽?若存储器的数据总线宽度为 32位,存取周期为200ns,则存储器的带宽是多少?

    答:存储器的带宽指单位时间内从存储器进出信息的最大数量。
    存储器带宽 = 1/200ns ×32 位 = 160M 位 / 秒 = 20MB/ 秒 = 5M 字 / 秒 注意 :字长 32 位,不是 16 位。(注: 1ns= 1 0 − 9 10^{-9} 109s )

  6. CPU对DMA请求和中断请求的响应时间是否一样?为什么?

    答:不一样,因为两种方式的交换速度相差很大,因此CPU必须以更短的时间间隔查询并响应DMA请求。

  7. 什么是多重中断?实现多重中断的必要条件是什么?

    答:多重中断是指:当CPU执行某个中断服务程序的过程中,发生了更高级、更紧迫的事件,CPU暂停现行中断服务程序的执行,转去处理该事件的中断,处理完返回现行中断服务程序继续执行的过程。
    实现多重中断的必要条件是:在现行中断服务期间,中断允许触发器为1,即开中断。

  8. 主存一般有哪两种选址方式?简述其特点

    答:一维地址译码方式和二维地址译码方式。特点看3.2主存储器的内部结构的②半导体存储芯片的译码驱动方式。

  9. 什么是中断优先权?中断嵌套的含义是什么?

    • 中断优先级:指当有两个或以上的中断源同时申请中断,系统会优先响应优先级高的中断源。
    • 中断嵌套:指在中断执行的过程中,如果有一个优先级较高的中断源发送中断请求,系统会打断正在执行的中断转而处理更高优先级中断源的中断事件。
  10. 什么是I/O接口?为什么在计算机系统中需要设置I/O接口会起到 什么样的作用?

    • I/O接口:指计算机中将主机与外部设备或其他外部系统进行连接的接口逻辑。
    • I/O接口是主机与外设链接的桥梁,通过接口可以实现主机和外设之间的信息交换。
  11. 描述中断方式输入输出控制的工作流程。

    • CPU 在发出启动外设的命令后继续执行其他操作。
    • 当外设完成数据准备工作后主动向主机提出中断申请,请求CPU进行数据处理。
    • CPU 在响应中断后通过执行该设备的中断服务程序完成数据传输工作。
  12. 简述以下指令的执行过程:(1)lw r24, 100(r15) (2)sw r6, 82(r9)

    • lw指令(装载字):
      • 根据程序计数器, 从存储器取出指令,并把PC + 4
      • 对指令进行译码,从寄存器堆读出寄存器15中的数据
      • 计算存储器地址:该数据与立即数100相加
      • 访存:相加的结果作为存储器地址, 从存储器中读出数据
      • 把该数据写入寄存器24
    • sw指令(存储字):
      • 根据程序计数器, 从存储器取出指令,并把PC + 4
      • 对指令进行译码,从寄存器堆读出寄存器9中的数据
      • 计算存储器地址:该数据与立即数82相加
      • 把寄存器6中的数据写入相加得出来的结果地址中。
  13. MIPS有哪三种类型指令?各举一指令实例,并说明该指令的功能。

    • R、I、J型。
    • 寄存器类型add rd,rs,rt 把寄存器rs和rt内容相加,结果存在寄存器rd中
    • 立即数类型addi rt,rs,imm 把寄存器rs数据和无符号立即数imm相加,结果存放在rt中
    • 跳转类型j addr 把26位的立即数addr左移两位,再与PC+4的高四位拼接
  14. 程序中断方式DMA方式
    数据传送程序(软件)硬件
    响应时间
    处理异常情况不能
    中断请求传送数据处理结束
    优先级

    从以上5个方面比较DMA 方式与程序中断方式。

  15. MIPS CPU指令格式有哪三种,试分别写出它们的指令格式。

    答:看5.5 MIPS的32指令简介

    R型指令:|Opcode|rs|rt|rd|Shamt|Funct|
    I型指令:|Opcode|rs|rt|immediate|
    J型指令:|Opcode|JumpAddr|

  16. MIPS指令的寻址方式有哪几种?试举例说明。

    • MIPS处理器大多指令都是顺序寻址方式,程序转移涉及的寻址方式有三种:
      1. 相对寻址
        BEQ rs,rt,label
        BEQ t 1 , t1, t1,t2,label,当 t 1 = t1= t1=t2时,指令转移地址是PC=PC+label

      2. 寄存器间接寻址
        JALR $1,$3将PC+4的值保存到$1中,然后执行PC=$s3

      3. 伪直接寻址
        J label指令执行时32位的转移地址是将PC的高4位和26位的JumpAddr左移两位拼接构成的,PC={PC[31:28],label<<2}

  17. 试说明以下指令的功能。

    (1)sll r13, r12, 25 ; 答:r13=r12<<25

    (2)addi r3, r1, -1 ; 答:r3←(r1)+ -1

    (3) lui r29, 0xffff ;答: r29 ← 0xffff<<16 ;将16位立即数放到目标寄存器高16 位,目标寄存器的低16位填0

综合题
  1. 机器字长32位,主存容量为1MB,16个通用寄存器,共32条指令,请设计双地址指令格式,要求有立即数、直接、寄存器、寄存器间接、变址、相对六种寻址方式。

    答:根据题意,有32种操作码,故OP字段占5位,16个通用寄存器各占4位(源目的);寻址模式字段X占3位;剩余字段D为立即数和直接寻址使用,指令格式如下:

在这里插入图片描述

寻址模式定义如下:

X=000, 立即数=D

X=001, 直接寻址,E=D

X=010, 寄存器直接寻址

X=011, 寄存器间接寻址, E=®

X=100, 变址寻址,E=® +D

X=101, 相对寻址,E=(PC)+D

  1. 某机器字长为32位,主存容量为2M*32位,单字长指令,且存储字长等于指令字长,有168种操作,操作码位数固定,采用寄存器寻址、 寄存器间接寻址、 立即寻址、直接寻址和间接寻址。CPU中有32个32位通用寄存器。试回答:

    1. 设计三地址指令,画出三地址指令格式并指出各字段的作用;

    2. 该指令直接寻址的最大范围;

    3. 寄存器间接寻址范围;

    4. 立即数(补码表示的有符号机器数)的范围(用十进制数表示)

      1. OPXrsrtrdD
        835556

        OP:操作码(
        X:寻址方式
        rs:源寄存器地址
        rt:另外一个源寄存器地址
        rd:目的寄存器地址
        D:为立即数和间接寻址使用26-1

      2. 26-1

      3. 0~232-1 , 4GW

      4. -32 ~ 31

  2. 一个容量为16K×32位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片? 1K×4位,2K×8位,4K×4位,16K×1位,4K×8位,8K×8位

    • 解:地址线和数据线的总和=14+32 =46根;(14由24+10得出)

    • 选择不同的芯片时,各需要的片数为:

      • 1K×4:(16K×32)/(1K×4)=16×8= 128片

      • 2K×8:(16K×32)/(2K×8)= 8×4= 32片

      • 4K×4:(16K×32)/(4K×4)=4×8 =32片

      • 16K×1:(16K×32)/(16K×1)= 1×32 = 32片

      • 4K×8:(16K×32)/(4K×8)= 4x4 = 16片

      • 8K×8:(16K×32)/(8K×8)= 2×4=8片

      • 补充:地址线的数量n满足:2^n>=存储容量的比特数,解出最小的n,即是地址线的数量

        地址线是用来读取或写入数据的,所以数据线的数量,与存储单元的位数相同。

  3. 某计算机有如下部件:ALU,主存M,主存数据寄存器MDR,主存地址寄存器MAR,指令寄存器IR,控制器CU,程序计数器PC,通用寄存器R0~R15,暂存器RA和RB。假设每个机器周期包含4个过程时钟周期。

    (1)请设计一个CPU,画出采用总线结构的计算机结构图,将以上逻辑部件组

    成一个数据通路,并标明数据流动的方向

    (2)写出“SUB R12 ,( R6 )” 指令的操作流程,说明执行过程和机器周期。该指令的功能为:R12 ← ( R 12 ) -M (( R 6 )) , M (( R 6 ))表示寄存器间接寻址,( R12 )采用寄存器寻址。

在R那边加上4~15寄存器就好了。在这里插入图片描述

(2):(PC)←MAR 送当前指令地址到MAR

​ M→MDR→IR,(PC)+1 取当前指令到IR,PC+1为取下条指令做准备

​ 译码

​ ( R 12 R_{12} R12)→C,取 R 12 R_{12} R12操作数→暂存器RA

​ ( R 6 R_{6} R6)→MAR R 6 R_{6} R6中的内容是内存地址

​ M→MDR→D 从内存取出数→暂存器RB

​ (C)-(D)→ R 12 R_{12} R12 暂存器RA和RB中的数相减后送到 R 12 R_{12} R12

  1. 设主存容量为2M字,Cache容量为64K字,块长为16字。若存储字长为32位,存储器按字节寻址,请设计Cache地址格式,Cache中可装入多少块数据?写出以下三种映射方式下主存的地址格式。

    (1)在直接映射方式下,设计主存地址格式。

    (2)在四路组相联映射方式下,设计主存地址格式。

    (3)在全相联映射方式下,设计主存地址格式

    答:(1):主存容量为2MB=221B,Cache容量为64KB=216B,块的大小为16×4B=64B=26B,则Cache可分为64KB/64B=1024块=210块;主存按照Cache的容量课分为2M/64KB=32个区,每个区中共64KB/64B=1024=210

    所以主存地址的结构:

    5位10位6位
    区号块号块内偏移地址

    (2):四路组相联=每组块数4,Cache有1024块=210,则

    ​ 1024/4=256块=28

    主存地址格式:

    7位8位6位
    组号组内块号块内偏移地址

    (3):全相联映射的主存地址格式:

    15位6位
    块号块内偏移地址
填空题
  1. 一个较完善的指令系统,应当有**数据处理 、数据存储 、 数据传输 、程序控制** 四大类指令。

  2. 根据通道的工作方式,通道分为 选择 通道和 多路 通道两种类型。

  3. 有一位科学家对现代计算机的产生有重大贡献。后人为了纪念他,把他提出的计算机结构称为 冯.诺依曼 计算机。

  4. 目前广泛使用的辅助存储器有 磁盘存储器光盘存储器

  5. 相联存储器不按地址而是按 内容 访问的存储器,在cache中用来存放 行地址,在虚拟存储器中用来存放 段表

  6. 主存块和Cache块可按 全相联 、 _直接方式 和_组相联 三种方式进行映射

  7. 当前的CPU由__运算器__ 、 控制器Cache组成。

  8. 计算机系统中,传输信息采用的方式有 数据总线、 地址总线和控制总线

  9. 浮点加、减法运算的步骤是 0操作数检查、对阶、尾数相加、结果规格化、舍入处理和溢出处理

  10. 在计算机系统中,多个系统部件之间信息传送的公共通路称为 总线 。就其所传送信息的性质而言,在公共通路上传送的信息包括 地址 、 数据 、控制信息

  11. CPU从 主存 取出一条指令并执行这条指令的时间和称为 指令周期

  12. 为了解决多个主设备同时竞争总线控制权,必须具有总线仲裁部件。

  13. 一个定点数由符号位数值域两部分组成。按小数点位置不同,定点数有定点小数纯整数 两种表示方法。

  14. 对存储器的要求是__速度快__, 容量大价格低。为了解决这三方面的矛盾 ,计算机采用多级存储体系结构。

  15. 当今的CPU 芯片除了包括定点运算器和控制器外,还包括 cache浮点运算器和 存储管理等部件。

  16. 计算机系统中的存储器分为 内存外存 。在CPU执行程序时,必须将指令存放 内存中。

  17. 为节省引脚数,DRAM 芯片大都采用地址线复用技术。假定一个DRAM 芯片的地址引脚线为8 根,则该芯片的存储阵列中有 64K 个位单元。

  18. 某系统总线的一个存取周期最快为3个总线时钟周期,总线在一个总线周期中可以存取32位数据。如总线的时钟频率为8.33MHz,则总线的带宽是 99.96×106 (3×4×8.33×106

  19. CPU中,保存当前正在执行的指令的寄存器为指令寄存器,保存当前正在执行的指令的地址的寄存器为数据地址存储器 ,保存CPU访存地址的寄存器为程序计数器

  20. 若X= -0.1001 、Y= 0.0101 ,则 [X]原 = 1.001, [X]补 = 1.0111,[-X]补 = 0.1001, [Y]原 = 0.0101,[Y]补 =0.0101,[-Y]补 = 1.1011,[X+Y] 补 =1.1100。

  21. 在多周期CPU中 ,指令的每个执行步骤用 1 个时钟周期。单周期CPU执行3条指令用 1个时钟周期。

  22. 在多周期CPU中,每条指令的取指令周期都做两件事情: 取指令PC + 4

  23. 双端口存储器和多模块交叉存储器属于并行存储器结构,其中前者采用空间 并行 技术,后者采用时间并行技术。

  24. DMA控制器按其结构,分为选择型 DMA控制器和 多路型 DMA控制器。前者适用于高速设备,后者适用于慢速设备。

  25. Intel 的x86指令系统结构属于 CISC 类型, SGI/MIPS 的MIPS指令系统结构属于 __RISC __类型。

  26. MIPS指令系统中,一般通过对 操作码 的不同编码定义不同的含义, 操作码相同时,再由 功能码 定义不同的含义。

  27. I/O设备与主机进行数据交换的三种基本方式有: 程序程序查询 、 中断方式 、 DMA ,其中DMA 方式是磁盘等高速外设特有的I/O方式。

  28. 某计算机主存容量为128KB,其中ROM区为16KB,其余为RAM区,按字节编址。现要用2K x 4位的ROM芯片和4K x 8位的RAM芯片来设计该存储器,则需要上述规格的ROM芯片数和RAM芯片数分别是 1628

  29. 奇校验中,如果数据位中1的个数为偶数,校验位就为 1;如果数据位中1的个数为奇数,校验位就为 0 ;总之,数据位中1的个数加上校验位中1的个数总为奇数

  30. 在多周期CPU中 ,指令的每个执行步骤用___1___个时钟周期。j指令所用周期数为 2,sw指令所用周期数为 4

  31. 在多周期CPU中 ,lui指令的执行步骤是取指令sif、指令译码sid、 执行指令sexe和写回结果swb,共4个时钟周期。

  32. 使用Cache是基于指令和数据具有访问的__程序局部性__特征,分为__指令Cache__和数据Cache

  • 25
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值