计算机组成原理知识点(复习笔记)

计算机五大部件:控制器,运算器,存储器,输入设备,输出设备
冯·诺依曼计算机的特点:
1.计算机由运算器,存储器,控制器,输入设备,输出设备五大部件组成
2.指令和数据以同等地位存放在存储器内,并可按地址寻访
3.指令和数据均用二进制表示
4.指令由操作码和地址码组成
5.指令在存储器内按顺序存放
6.机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成

取指、存数流程:
在这里插入图片描述

计算机硬件的主要技术指标
机器字长:CPU一次能处理数据的位数,与CPU中的寄存器位数有关
存储容量:存储单元个数 × 存储字长,MAR 10 MDR 8 容量1k*8位
运算速度:CPI:执行一条指令所需时钟周期
FLOPS:每秒浮点运算次数

总线的基本概念:总线是各功能部件间传递各类信息的公共通路
系统总线分类:数据总线,地址总线,控制总线
总线宽度:总线中传输线条数,指数据总线的根数,8位表示8根
总线带宽(数据传输速率):每秒传输的最大字节数(MBps)
同步通信
时钟周期*时钟频率=1s
带宽=总线宽度/传输周期

例题

假设总线的时钟频率为100MHz,总线的传输周期为4个时钟周期,总线的宽度为32位,试求总线的数据传输率。若想提高一倍数据传输率,可采取什么措施?

解:
(1)时钟周期为1/100MHz=0.01μs
总线传输周期为0.01μsx4=0.04μs
总线的宽度为32位=4B(字节)
故总线的数据传输率为4B/(0.04μs)=100MBps
(2)不改变总线时钟频率,将数据线的宽度改为64位
也可以仍保持数据宽度为32位,但使总线的时钟频率增加到200MHz。

例题

假定某总线的时钟周期为50ns,每次总线传输需要1个时钟周期,总线宽度为32位,存储器的存储周期为300ns,求同步方式下从该存储器中读一个字(32位)时总线的数据传输率为多少?

解:
送地址和读命令共需一个总线周期时间,50ns;
存储器读数据需要一个存储周期,300ns;
读取数据需要一个总线周期,50ns。
则:
同步方式下从主存读一个字的总时间T=400ns
数据传输率=4B/400ns=10MB/s

异步通信
异步串行通信的数据传送速率用波特率来衡量
波特率:全部位数 * 每秒传送的数据帧
比特率:有效位数 * 每秒传送的数据帧

在异步串行系统中,字符格式为:1个起始位,8个数据位,1个校验位,2个终止位。若要求每秒传送120个字符,求传送的波特率和比特率。
波特率=12012=1440波特
比特率=120
8=960bps or 比特率*(8/12)

半导体存储器:存储元件由半导体器件组成的存储器
优点:体积小,功耗低,存取时间短 缺点:易失性

存储器层次结构:
在这里插入图片描述

主存的基本组成:
在这里插入图片描述

存储单元地址的分配:8位一个字节,大端存储和小端存储
存储器的性能指标:
存储容量:若地址线24根,按字节寻址的范围是2的24次方
存储速度:存取时间+存取周期
存储器带宽:单位时间内存储器存取的信息量 字节/秒 位/秒

已知某存储器存取周期为500ns,每个存取周期可访问16位,则它的带宽是多少500ns=5107s
存储器带宽=16位/5
107s=32*106位/秒=32M位/秒

译码驱动方式:线选法,重合法
静态RAM基本单元电路:6根MOS管组成的触发器电路
动态RAM基本单元电路:三/单管MOS,电容存储电荷,通电表示1

动态ROM的刷新:
集中式刷新:将刷新周期时间分为两部分:前一段时间进行正常的读/写操作,后一段时间作为集中刷新操作时间

分散式刷新:每一行的刷新插入到正常的读/写周期之中

异步式刷新:把刷新操作平均分配到刷新周期内,使得所有行在刷新周期内正好各自刷新一次,相邻两行的刷新间隔=刷新周期/行数

例题

有一个16K×16位的存储器,由1K×4的内部结构为64×64的DRAM芯片构成,则
(1)采用异步刷新方式时,如果刷新周期为2ms,则相邻两行之间的刷新间隔是多少?
(2)采用集中刷新方式时,如果存储周期为0.5µs,则存储器刷新一遍最少需要多少个存储周期?死区占多少时间?

解:(1)2ms/64=31.25µs
(2)需要64个存储周期;死区时间=0.5µs×64=32µs

各种类型ROM的特点:
掩模式只读存储器MROM
可编程只读存储器PROM
紫外线可擦除可编程只读存储器EPROM
电可擦除可编程只读存储器EEPROM
闪速存储器Flash

主存储器容量扩展方法:位扩展、字扩展、字位扩展

存储器与CPU的连接:

例题

设CPU有16根地址线、8根数据线,并用作为访存控制信号(低电平有效),用为读/写控制信号(高电平为读,低电平为写)。现有下列存储芯片:1K×4位RAM,4K×8位RAM,8K×8位RAM,2K×8位ROM,4K×8位ROM,8K×8位ROM及74LS138译码器和各种门电路,如图所示。
画出CPU与存储器的连接图,要求如下: ①主存地址空间分配:
6000H ~ 67FFH为系统程序区。
6800H ~ 6BFFH为用户程序区。 ②合理选用上述存储芯片,说明各选几片。 ③详细画出存储芯片的片选逻辑图。
在这里插入图片描述

解:

在这里插入图片描述

(3)分配地址线:A13 A12 A11 作为C B A
ROM地址线A0-A10 RAM地址线A0-A9 两个1K*4的分别连数据位的高四位和低四位(4)确定片选信号

在这里插入图片描述

例题

假设CPU及芯片同上例,要求最小 8K为系统程序区,相邻
16K为用户程序区,最大4K为系统程序工作区。详细画出存储芯片的片选逻辑并指出存储芯片的种类及片数。

解:
在这里插入图片描述

(3)分配地址线:A15 A14 A13 作为C B A
(4)确定片选信号

汉明码:

检测位位数:2k ≥ n + k + 1
C1 检测的 g1 小组包含第 1,3,5,7,9,11,…… 从0开始,隔1取1
C2 检测的 g2 小组包含第 2,3,6,7,10,11 ,…… 从0开始,隔2取2
C4 检测的 g3 小组包含第 4,5,6,7,12,13,……从0开始,隔4取4

例题

求b4b3b2b1= 0101 按 “偶校验” 配置的汉明码。

C1 C2 0 C4 1 0 1
C1= H3⊕H5⊕H7 = 0
C1= H3⊕H6⊕H7 = 1
C4= H5⊕H6⊕H7 = 0
∴ 0101 的汉明码为 0100101

汉明码纠错:

例题

写出按偶校验配置的汉明码0101101的纠错过程。

H1 H2 H3 H4 H5 H6 H7
0 1 0 1 1 0 1
P4 = H4⊕H5⊕H6⊕H7=1
P2= H2⊕H3⊕H6⊕H7=0
P1= H1⊕H3⊕H5⊕H7=0
P4 P2P1=100
第四位出错,可不纠

例题

假设CPU执行某段程序时,共访问Cache
命中2000次,访问主存50次。已知Cache的存取周期为50ns,主存的存取周期为200ns。求Cache-主存系统的命中率、平均访问时间和效率。

解:
Cache命中率=2000/(2000+50)=0.97
平均访问时间=500.97+200(1-0.97)=54.5ns
效率=访问Cache的时间/平均访问时间100%=50/54.5100%=91.7%

Cache-主存地址映射
直接映射方式:某一主存块只能固定映射到某一缓存块,(分组分序号)
全相联映射方式:某一主存块能映射到任一缓存块(随便坐)
组相联映射方式:某一主存块只能映射到某一缓存组中的任一块(分组随便坐)

例题

假设主存容量为512KB ,Cache容量为4KB,每个字块为16个字,每个字32位。(存储系统按字节编址)
(1)Cache地址有多少位?Cache可容纳多少块? (2)主存地址有多少位?主存可容纳多少块?
(3)在直接映射方式下,主存的第几块映射到Cache中的第5块(设起始字块为第1块)? 画出直接映射方式下主存地址字段中各段的位数
(4)画出直接映射方式下主存地址字段中各段的位数

解:
(1)根据Cache容量为4KB(212=4K) ,Cache地址为12位。
由于每字32位,每个字块16个字,因此每块有512位(29),
Cache容量4KB=215位,故Cache中有=215/29=64块。
(2)根据主存容量为512KB(219=512 K),主存地址为19位。
由于每字32位,每个字块16个字,则主存中共222/29=8192块
(3)在直接映射方式下,由于Cache共有64块,主存共有8192块,因此主存的第5+64n(0n 127)块能映射到Cache的第5块中。
缓存块号=主存块号 mod 缓存块数
N mod 64=5
(4)在直接映射方式下,主存地址字段的各段位数分配如图
在这里插入图片描述

磁盘存储器
在这里插入图片描述

(1)归零制(RZ):正向电流写1,反向电流写0。中间有无电流状态
(2)不归零制(NRZ):只有相邻两位信息不相同时,写电流才改变方向
(3)“见1就翻”的不归零制(NRZ 1):写1时电流才改变方向,写0电流不变

接口和端口的概念:I/O接口:介于主机与外部设备之间的一种缓冲电路称为I/O接口电路,简称I/O接口(Interface)
对于主机,I/O接口提供了外部设备的工作状态及数据;对于外部设备,I/O接口记忆了主机送给外部设备的一切命令和数据,从而使主机与外部设备之间协调一致地工作。

I/O 设备编址方式
在这里插入图片描述

程序查询方式
优点
较好协调主机与外设之间的时间差异
所用硬件少
 缺点
 主机与外设只能串行工作
 一个时间段只能与一个外设进行通讯
 CPU的利用率低
程序中断方式
优点
主机可以与一个或多个外设并行工作,提高了CPU的效率。
缺点
执行中断服务程序时,保护断点等工作占用时间,难以满足成批快速交换数据的要求
中断的概念
中断请求:当外设准备好后,向CPU发出要求传送数据信号,称为中断请求。
中断源:在机器中引起中断产生的事件或发生中断请求的来源统称为中断源。
中断响应:CPU发现中断请求时,中止现行程序执行,并转向中断处理服务程序的过程。
中断服务程序:处理中断的子程序
中断返回:CPU执行完中断服务程序返回到主程序继续执行

I/O中断处理过程

在这里插入图片描述

DMA方式的特点

在这里插入图片描述

浮点数数据格式:阶符 阶码 数符 数码
画出用原码表示的浮点数-0.01011001×25的数据格式,已知阶码为5位(包含一位阶符),尾数为9位(包含一位数符)
0 0101 1 01011001

浮点数的规格化:使尾数真值最高有效位为1

例题

设浮点数字长16位,其中阶码5位(含1位阶符),尾数11位(含1位数符),将十进制数写成二进制定点数和浮点数,并分别写出它在定点机和浮点机中的机器数形式。

解:x = +0.0001101000
定点机中 [x]原 = [x]补 = [x]反 = 0.0001101000
浮点规格化表示:x = 0.1101000000×2-11
浮点机中
[x]原 = 1, 0011; 0. 1101000000
[x]补 = 1, 1101; 0. 1101000000
[x]反 = 1, 1100; 0. 1101000000

IEEE 754标准
类型 符号位S 阶码E(含阶符+127) 尾数M 总位数
短实数 1 8 23 32

例题

将5/32表示成IEEE754单精度格式,并用十六进制书写

解:
(5/32)10 =(0.00101)2=1.01×2-3
按IEEE754单精度格式得:
S=0 M=01000000000000000000000
E=127+(-3)=124=(01111100)2
其机器数表示形式为:
00111110001000000000000000000000
十六进制形式:3E200000H

无符号数的移位称为逻辑移位
有符号数的移位称为算术移位
真值 码制 填补代码
正数 原码、补码、反码 0
负数 原码 0
补码 左移添0
右移添1
反码 1

移的是数值位,符号位不动

补码加法公式
整数 [A]补 + [B]补= [A+B]补(mod 2n+1)
小数 [A]补 + [B]补= [A+B]补(mod 2)
补码减法公式
整数 [A – B]补=[A+(–B )]补= [A]补 + [ – B]补(mod 2n+1)
小数 [A – B]补=[A+(–B )]补= [A]补 + [ – B]补(mod 2)

例题

设 A = -1001,B = –0101,求 [A + B]补

解:
[A]补= 1 , 0 1 1 1
[B]补=1 , 1 0 1 1
[A + B]补=[A]补 + [B]补 =1 1 , 0 0 1 0

例题

设机器数字长为 8 位(含 1 位符号位),且 A =+15, B =+24,求 [A-B]补并还原成真值。

解:A =+15=0,0001111 B=+24=0,0011000 [B]补=0,0011000
[A]补=0, 0001111 [-B]补=1,1101000
[A – B]补=[A]补 + [– B]补= 1, 1110111
[– B]补= [B]补符号位取反,数值位按位取反加1 正数的补码是它本身

原码一位乘

例题

已知 x = – 0.1110 y = – 0.1101 求[x • y]原

解:
X绝对值=0.1110,Y绝对值=0.1101

0 . 0 0 0 0 1101 部分积初始为0

  • 0 . 1 1 1 0 加被乘数
    0 . 1 1 1 0
    0 . 0 1 1 1 0110 部分积、乘数右移1位,
    + 0 .0 0 0 0 加0
    0 .0 1 1 1
    0 .0 0 1 1 1011 部分积、乘数右移1位,
    + 0 .1 1 1 0 加被乘数
    1 .0 0 0 1
    0 .1 0 0 0 1101 部分积、乘数右移1位,
    + 0 .1 1 1 0 加被乘数
    1 .0 1 1 0
    0 .1 0 1 1 0110

例题

已知 [x]补= 1.0101, [y]补= 0.1101 ,求[x·y]补。

解:
因为乘数 y>0,(被乘数无所谓)所以按原码一位乘的算法运算,只是在相加和移位时按补码规则进行(负数补码右移补1)。考虑到运算时可能出现绝对值大于1 的情况(但此刻并不是溢出),故部分积和被乘数取双符号位。

0 0 . 0 0 0 0 1 1 0 1 部分积初始为0

  • 1 1 . 0 1 0 1 加被乘数
    1 1 . 0 1 0 1
    1 1 . 1 0 1 0 1 1 1 0 部分积,乘数右移
    +0 0 . 0 0 0 0 加0
    1 1 . 1 0 1 0
    1 1 . 1 1 0 1 0 1 1 1 部分积,乘数右移
    +1 1 . 0 1 0 1 加被乘数
    1 1 . 0 0 1 0
    1 1 . 1 0 0 1 0 0 1 1 部分积,乘数右移
    +1 1 . 0 1 0 1 加被乘数
    1 0 . 1 1 1 0
    11 . 0 1 1 1 0 0 0 1

如果乘数为负数,需要在最后 加[–x]补,校正

被乘数、乘数符号任意(Booth 算法)
yiyi+1 yi+1-yi 操作说明
0 0 0 部分积右移一位
0 1 1 部分积加[x]补,再右移一位
1 0 -1 部分积加[-x]补,再右移一位
1 1 0 部分积右移一位

例题

已知 [x]补= 0.1101, [y]补=0.1011 ,求[x·y]补。

解:
[-x]补=[-0.1101]补=1.0011 符号位取反,数值位按位取反加1
转成双符号位数据为:11.0011
乘数为5位,最后化成4位停止,最后一次加完不右移
乘数末位增设附加位,初值为0

指令格式:操作码+地址码
两种变长编码方式:Huffman编码;等长扩展码
假设某模型机有7条指令,这些指令的使用频度如表所示。画出哈夫曼树,写出这7条指令的哈夫曼编码,并计算该编码的平均码长。

指令 I1 I2 I3 I4 I5 I6 I7
概率 0.4 0.3 0.15 0.05 0.04 0.03 0.03

1.构建哈夫曼树
2.左零右一写出哈夫曼编码
指令 3.概率 4.哈夫曼编码
I1 0.4 0
I2 0.3 10
I3 0.15 110
I4 0.05 11100
I5 0.04 11101
I6 0.03 11110
I7 0.03 11111
3.平均码长=各自的概率*码长 之和

等长扩展码

例题

假设指令字长为 16 位,操作数的地址码为6 位,指令有零地址、一地址、二地址三种格式。 (1)设操作码固定,若零地址指令有
P种,一地址指令有Q种,则二地址指令最多有几种? (2)采用扩展操作码技术,若二地址指令有X种,零地址指令有Y种,则一地址指令最多有几种?

解:
(1) 操作码位数:16-6-6=4,总共能设置的指令条数:24=16,二地址指令条数:16-P-Q
(2) 设一地址指令最多有M种
则有: [(16-X)×26-M] ×26=Y

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值