计算机组成原理与体系结构

第一章、计算机组成原理与体系结构

1、数据的表示

1.1.进制转换

1️⃣R进制转十进制:使用按权展开法,其具体操作方式为︰将R进制数的每一位数值用Rk形式表示,即幂的底数是R,指数为k ,k与该位和小数点之间的距离有关。当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加1。

例如:
二进制10100.01=1 * 24 + 1 * 22 + 1 * 2-2
七进制 602.03=6 * 72+ 2 * 70+3 * 7-2

2️⃣十进制转R进制:使用短除法例如将94转换为二进制数。
在这里插入图片描述
3️⃣二进制转八进制:将二进制从小数点开始,对二进制整数部分向左每3位分成一组,不足3位的向高位补0凑成3位;对二进制小数部分向右每3位分成一组,不足3位的向低位补0凑成3位
在这里插入图片描述
4️⃣二进制转为十六进制:将二进制从小数点开始,对二进制整数部分向左每4位分成一组,不足4位的向高位补0凑成4位;对二进制小数部分向右每4位分成一组,不足4位的向低位补0凑成4位
在这里插入图片描述

1.2.原码、反码、补码、移码

原码,反码,补码和移码的相关概念一:对于正数,原码和反码,补码都是一样的,都是正数本身。

对于负数:
原码是符号位为1,数值部分取X绝对值的二进制。
反码是符号位为1,其它位是原码取反。
补码是符号位为1,其它位是原码取反,未位加1。
移码不管正负数,只要将其补码的符号位取反即可
在这里插入图片描述
数值表示范围
在这里插入图片描述

1.3.数据的表述

浮点数表示N=M*Re
其中M称为尾数,e是指数,R为基数
在这里插入图片描述

1000=1.0103
119=1.19
102
相加:
对阶 :1.19102=0.119103
尾数计算:1.0+0.119=1.119
结果格式化(个位不能为0,也不能为1位以上):0.119=1.119*10-1

2、计算机结构

在这里插入图片描述
DR:我们在对内存储器进行读写操作的时候,用来暂存数据的
PSW:用来存储在运算的过程中的相关的标志位的

3、Flynn分类法

能分清体系结构的代表
在这里插入图片描述

4、CISC与RISC

能分清两个指令的区分
在这里插入图片描述

5、流水线技术

5.1、流水线的基本概念

流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度
在这里插入图片描述
未使用流水线执行指令,大量时间浪费,使用流水线执行指令,取指的同时分析或执行,节约了时间

5.2、流水线的计算

在这里插入图片描述

执行分为两段,流水线建立时间,

∶若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别是取指2ns,分析2ns,执行1ns。那么,流水线周期是多少?100条指令全部执行完毕需要的时间是多少?

流水线周期:执行时间最长的那一段时间 2ns
理论公式:执行分为两段,第一部分流水线建立时间(2ns+2ns+1ns)。第二部分n-1 条指令×流水线周期(100-1)×2 结果 5+198=203
实践公式:把每一段都看成一个流水线周期那么长,就是执行时间的 1ns看成2ns
k 分几段k就是几,这里分了3段 结果 (3+ 99)×2=204

5.3、流水线吞吐率计算

流水线的吞吐率(Though Put rate,TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。计算流水线吞吐率的最基本的公式如下:
在这里插入图片描述
上面案例:TP=100/203≈0.4926
流水线最大吞吐率:
在这里插入图片描述
TPmax=1/2=0.5

5.4、流水线加速比计算

完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。计算流水线加速比的基本公式如下:
在这里插入图片描述
上面案例:不使用流水线执行时间(5×100=500)
S=500/203

5.5、流水线的效率

流水线的效率是指流水线的设备利用率。在时空图上,流水线的效率定义为n个任务占用的时空区与k个流水段总的时空区之比
在这里插入图片描述

在这里插入图片描述
计算流水线效率的公式为:
在这里插入图片描述
T0=n任务占用的时空区(△t+△t+△t+3△t)×4
kTk=k个流水段的总的时空区(15△t)×4
E=24△t/60△t

6、存储系统

6.1、层次化存储结构

在这里插入图片描述
速度最快,效率最高寄存器,在cpu中
cache高速缓存存储器
速度快,容量小。速度慢,容量大

6.2、Cache

Cache的功能:提高CPU数据输入输出的速率,突破冯·诺依曼瓶颈,即CPU与存储系统间数据传送带宽限制。
在计算机的存储系统体系中,Cache是访问速度最快的层次。
使用Cache改善系统性能的依据是程序的局部性原理

如果以h代表对Cache的访问命中率,t1表示Cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为t3,则:

t3=h×t1+(1-h)×t2

其中,(1-h)又称为失效率(为命中率)

假如:
t1=1ns
t2=1us=1000ns
h=95%(cpu从Cache读取,如果数据在Cache中就会命中,如果没有就在内存中调用)
t3=95%×1ns+(1-95%)×1000ns=50.95ns
引入Cache后速度大大加快

6.3、局部性原理

时间局部性
空间局部性
工作集理论:工作集是讲程运行时被频繁访问的页面集合

int i,s=0;
for(i=1;i<1000;;i++)
	for(j=1;j<1000;j++)
		s+=j;
		
printf("结果为:%d",s)

把循环调用到Cache中,cpu直接总Cache中调用数据,体现时间局部性。
对于数组的访问,每个空间都需要初始化,访问了第一个空间,想要继续访问第二个空间,体现空间局部性。

6.4、主存-分类

在这里插入图片描述
内存属于随机存取存储器,断电后数据丢失
只读存储,断电后不会丢失

主存-编址
在这里插入图片描述
在这里插入图片描述

大地址-小地址+1
C7FFFH+1=C8000H
C8000H-ACFFFH=EC000H
EC000H/1024=112

112K×16/28×16K×X=1
求X=4

6.5、磁盘结构与参数

在这里插入图片描述
存取时间=寻道时间+等待时间(平均定位时间+转动延迟)
注意:寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。

要读取磁盘的信息,首先要把磁头定位到我们目标的磁道上面,这个需要消耗一定的时间,这个时间被称为寻道时间
第二个是旋转延迟时间,也称为等待时间 ,在一个磁道上面会分为很多个扇区,这一小块一个磁道上面的一小段,是扇区,存储数据就存在扇区上面,磁头要找到这一数据要转到相对应的扇区。
例题:
在这里插入图片描述
在这里插入图片描述

7、总线系统

根据总线所处的位置不同,总线通常被分成三种类型,分别是
1️⃣内部总线
内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;
2️⃣系统总线
而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;

  1. 数据总线
    数据总线是CPU与内存或其他器件之间的数据传送的通道,它的宽度就是总共有多少根数据线来传数据,1根线能传1位,这个数对应字长,也就是同一时间可以处理的二进制位数,我们通常所说的多少位处理器中的多少位,就是指的数据总线宽度。
  2. 地址总线
    CPU通过地址总线来指定存储单元,地址总线的宽度就是能寻址到的地址的位数,最小寻址单位是字节,比如32位寻址,那寻址空间就是2^32B=4GB这么大的内存空间,我们通常所说的多少位操作系统中的多少位,就是指的是地址总线宽度。
  3. 控制总线
    作用是反映数据的状态和传输方式,是地址总线的扩展和补充,CPU通过控制总线对外部器件进行控制,控制总线的宽度决定了CPU对外部器件的控制能力

3️⃣外部总线
外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。

8、可靠性

8.1、串联系统与并联系统

串联模型
在这里插入图片描述
串联系统只要一个环节出问题,系统就不能运行
可靠度:累乘
失效率:累加(近似公式)
并联模型
在这里插入图片描述
只有当所有子系统都失效,系统才会失效
可靠度:1-(1-0.9)3
失效率:1-可靠度

8.2、模冗余系统与混合系统

在这里插入图片描述

在这里插入图片描述

9、校验码

9.1、CRC与海明校验码

什么是检错和纠错?
检错就是检查出错误
纠错不但要检查出来,还要将其纠正
往往是通过加冗余信息来实现的
在编码过程中,往往是通过增加码距达到想要的效果
什么是码距?
一个编码系统的码距是整个编码系统中任意(所有)两个码字的最小距离。
例:
若用1位长度的二进制编码。若A=1,B=0。这样A,B之间的最小码距为1.
若用2位长度的二进制编码,若以A=11,B=00为例,A、B之间的最小码距为2。
若用3位长度的二进制编码,可选用111,000作为合法编码。A,B之间的最小码距为3。
码距与检错、纠错有何关系?
1.在一个码组内为了检测e个误码,要求最小码距d应该满足:d>=e+1
2.在一个码组内为了纠正t个误码,要求最小码距d应该满足:d>=2t+1

在这里插入图片描述
海明码(Hamming Code)是一种可以检测和纠正数据传输过程中出现的错误的编码方式,也称为海明校验码。它是由美国数学家理查德·海明于1947年发明的。

海明码通过在数据中添加冗余位的方式,可以检测出单个错误位的发生,并且可以进行纠正。其主要思想是:将数据按位组织成二进制矩阵,然后在每一列、每一行以及对角线上添加一个奇偶校验位,使得每个数据位都参与到多个奇偶校验位的计算中,从而实现检错纠错的功能。

海明码的编码过程如下:

  1. 确定要传输的信息,假设有n个二进制位
  2. 计算校验位的个数k,使得2^k ≥ n+k+1,即校验位的个数k应满足2^k ≥ n+k+1
  3. 将n个二进制位按顺序排列,然后在二进制矩阵中按列将它们存储起来。
  4. 对于每个列,计算奇偶校验位,方法是将该列所有二进制位的值异或起来,然后将结果作为该列的奇偶校验位。
  5. 将所有的奇偶校验位按顺序添加到二进制矩阵的最后,得到n+k个二进制位的海明码。

海明码的纠错过程如下:

  1. 接收方收到n+k个二进制码,将它们按照同样的规则分成k+1列。
  2. 对于每一列,计算奇偶校验位,得到一个结果。
  3. 如果有某个结果不为0,则表示该列的数据位出现了错误,需要进行纠错。
  4. 纠错的方法是将出错的数据位取反,得到正确的数据位
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑伴你而行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值