0%

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

数据的表示

进制表示

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

例:
二进制11010.11 = 1 x 2^4 + 1 x 2^3 + 0 x 2^2 + 1 x 2^1 + 0 x 2^0 + 1 x 2^-1 + 1 x 2^-2=26.75
六进制532.13 = 5 x 6^2 + 3 x 6^1 + 2 x 6^0 + 1 x 6^-1 + 3 x 6^-2

进制转换

二进制与八进制

二进制转八进制:

从小数点开始,小数点前从小数点开始向左每三位为一组,最后不足三位的可以添0补足,小数点后向右每三位一组,不足三位必须添0补齐。然后将每组按权相加,即得到八进制数。

八进制转二进制:

同上面相似,从小数点开始向左右开始,把每一位数转换成二进制即可。

二进制与十六进制

二进制转十六进制:

与二进制和八进制的转换相似,每四位一组,然后再按权相加。需要注意的是,9之后的数用字母A--F表示,如13应表示为D。(注:末尾为H表示该数是十六进制数)

十六进制转二进制:

与八进制转二进制方法相同。

注:八进制与十六进制的转换,需先转为二进制,再转换成八进制或十六进制。

十进制转R进制

十进制转R进制可以使用短除法。如将十进制的83转成3进制:

    3|83    余数  2
    3|27            0
    3|9            0
    3|3            0
       1            1

最后再从下往上读其余数,即十进制的83用3进制表示为:10002 。

详情参考:https://www.bilibili.com/video/BV1yU4y1371J?p=3

源码反码补码移码

码值转换
源码:把一个数转成二进制即为它的源码(若为带符号的,取其最高位,每8位一组,不足8位的在前面添0补齐,正数首位为0,负数首位为1)。
反码:正数的反码是其本身,负数的反码是在其原码的基础上符号位不变,其余各个位取反
补码:正数的补码就是其本身,负数的补码是在其反码的基础上+1
移码:不管正负数,只要将其补码的符号位取反即可

表示范围:

表示范围

详情参考:https://www.bilibili.com/video/BV1yU4y1371J?p=4

计算机结构

传统计算机一般由以下部分组成:运算器、控制器、存储器、I/O设备,运算器和控制器共同组成CPU(中央处理器),存储器又分为内存储器(RAM、ROM)和外存储器(硬盘、U盘、磁带等)。

运算器的构成:

  1. 算术逻辑单元ALU
  2. 累加寄存器AC
  3. 数据缓冲寄存器DR
  4. 状态条件寄存器PSw

控制器的构成:

  1. 程序计数器PC
  2. 指令寄存器IR
  3. 指令译码器
  4. 时序部件

参考:
https://www.bilibili.com/video/BV1yU4y1371J?p=4

https://blog.csdn.net/L_gentleman/article/details/93377576

flynn分类法

flynn分类法

CISC与RISC

CISC与RISC

参考:
https://www.bilibili.com/video/BV1yU4y1371J?p=4

流水线

  1. 基本概念

    流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可以同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。

指令执行顺序: 取指—>分析—>执行

如图所示,在未使用流水线的情况下,需要先完成某一条指令的执行操作后,再进行下一条指令的操作;当使用了流水线后,只要前一条指令的一部分操作已完成,那么就会开始下一条指令的对应操作,从而减少了指令的处理时间。

  1. 流水线的计算

直接上例题:

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

知识引入:

  • 流水线周期(▲t ):执行时间最长的一段
  • 流水线计算公式:
    1. 一条指令执行完毕时间+(指令条数-1)* 流水线周期
    2. 理论公式:(t1+t2+t3+…+tk)+(n-1)*▲t (考的比较多)
    3. 实践公式:(k+n-1)*▲t
  • k表示把一条指令分为了几部分
  • n表示一共有多少条指令

解答:

在本题中,由于三部分时间最长的为取指和分析两部分,它们的时间都为2ns,即流水线周期为2;指令共有三部分,即k为3

使用理论公式计算:(2+2+1)+(100-1)*2=203ns

使用实践公式计算:(3+100-1)*2=204ns

  1. 流水线吞吐量计算

流水线的吞吐率(Though Put rate,TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。公式如下:

TP=指令条数/流水线执行时间

流水线最大吞吐率: TP(max)=1/▲t

以上面的例题为例,其流水线周期为2ns,共有100条指令,执行完所有指令消耗的时间为203ns,那么该流水线的吞吐率为:

TP = 100/203; 最大吞吐率为: TP(max) = 1 / 2
  1. 流水线加速比计算

公式:
S = 不使用流水线执行时间/使用流水线执行时间

前面提到不使用流水线时,需要等当前指令执行结束后再开始执行下一条指令,因此,在这种情况下,执行一条指令所需要的时间为2+2+1=5ns,共有100条指令,故执行完所有指令所需的时间为500ns,而使用流水线的执行时间仅为203ns,所以流水线加速比为:

S = 500 / 203

计算机层次化存储结构

计算机存储结构如图:

cache的基本概念

cache的功能:提高CPU数据的I/O速率,突破了冯·诺依曼瓶颈,即CPU与存储系统间数据传送贷款限制。

在计算机存储体系中,cache是访问速度最快的层次。 使用cache改善系统性能的依据是程序的局部性原理。

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

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

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

磁盘

磁盘结构与参数

参考:
https://www.bilibili.com/video/BV1yU4y1371J?p=4

如果觉得对你有用的话,不妨支持一下