计算机技术与软件专业技术资格(水平)考试中级软件设计师复习资料——第一章:计算机组成与体系结构

本文详细介绍了如何进行R进制到十进制及反之的转换,包括按权展开法和短除法,以及二进制转换八进制和十六进制的方法。此外,还涉及了浮点数运算、流水线的吞吐率、加速比和效率计算,展示了计算机体系结构中的关键概念和技术应用。
摘要由CSDN通过智能技术生成

目录

软考学习

image

image

计算机组成与体系结构

数据的表示

R进制转十进制使用按权展开法

其具体操作方式为:

将R进制数的每一位数值用Rk(R的k次方)形式表示,即幂的底数是R,指数为k,k与该位和小数点之间的距离有关。当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加1。

具体步骤如下:

  1. 将R进制数从右到左按位展开,每一位数字与其对应的权重进行相乘
  2. 权重从右到左依次为R^0, R^1, R^2, R^3, …,其中R为进制数
  3. 计算每一位数字与对应权重的乘积,并将结果累加得到十进制数的值

举个例子,假设要将二进制数1101转换成十进制数:

  1. 从右到左按位展开,即1、1、0、1。
  2. 权重从右到左为20=1、21=2、22=4、23=8。
  3. 计算乘积:1 * 1 + 1 * 2 + 0 * 4 + 1 * 8 = 1 + 2 + 0 + 8 = 11。

所以二进制数1101转换为十进制数为11。

image-20230801151249027

十进制转R进制使用短除法

具体步骤如下:

  1. 选择要转换的十进制数作为被除数,选择R作为除数
  2. 进行除法操作,将被除数除以除数得到商和余数
  3. 余数即为R进制数的最低位数字
  4. 将商作为新的被除数,重复步骤2和步骤3,直到商为0为止
  5. 将得到的余数按照从下到上的顺序排列,即为转换后的R进制数。

举个例子,假设要将十进制数45转换成八进制数:

  1. 选择被除数为45,选择除数R为8。
  2. 45 ÷ 8 = 5 余 5,所以最低位是5。
  3. 将商5作为新的被除数,继续进行除法操作。
  4. 5 ÷ 8 = 0 余 5,所以次低位也是5。
  5. 商为0,所以停止计算。
  6. 将得到的余数按照从下到上的顺序排列,即为转换后的八进制数,此例中为55。

所以十进制数45转换为八进制数为55。

例如将94转换为二进制数。【最后不被2整除的1,直接进入到二进制中】

image-20230801151424259

二进制转八进制与十六进制数

二进制转换为八进制数的步骤如下:

  1. 将二进制数从右到左每三位一组进行分组。如果最左边的组不足三位,可在左边补0
  2. 将每组的二进制数转换为对应的八进制数字
  3. 将每组的八进制数字按照从左到右的顺序排列,即为转换后的八进制数。

举个例子,假设要将二进制数1011101转换为八进制数:

  1. 分组:010 111 101。
  2. 对应的八进制数字分别为2 7 5。
  3. 将八进制数字按照从左到右的顺序排列,得到转换后的八进制数为275。

所以二进制数1011101转换为八进制数275。

转换为十六进制数的步骤类似,但是每组对应于十六进制数的一位。

二进制转换为十六进制数的步骤如下:

  1. 将二进制数从右到左每四位一组进行分组。如果最左边的组不足四位,可在左边补0。
  2. 将每组的二进制数转换为对应的十六进制数字。
  3. 将每组的十六进制数字按照从左到右的顺序排列,即为转换后的十六进制数。

image-20230801151831206

原码反码补码移码

原码->反码->补码->移码 后面的每一步都是在前一步的基础上去实现的

  • 原码是数值的直接表示形式,用最高位表示符号,其余位表示数值的绝对值。

  • 反码是在原码的基础上,将正数的反码保持不变,而负数的反码是将原码中除符号位以外的每一位取反。(最左边第一位数字表示正负,0为正,1为负)

  • 补码是在反码的基础上,将正数的补码保持不变,而负数的补码是在反码的基础上加1

  • 移码是在补码的基础上,将符号位取反,即正数的移码与补码相同,而负数的移码是在符号位上添加1。

    ​ 这四种表示方法都是用于表示有符号整数的编码形式,其中原码通常用于人类可读的形式,而反码、补码和移码主要用于计算机内部运算。它们的使用可以解决了在使用原码表示负数时出现的计算问题,特别是在进行加减法运算时的处理。

image-20230801152501768

image-20230801152734088

浮点数运算

1、小数点前只能有一位数字

2、两指数不同的浮点数相加,应把指数低的数转换为高指数,在进行相加

image-20230801153056510

image-20230802102118855

image-20230802102210568

如上题:

流水线周期:为执行时间最长的一段,固为2ns

指令全部执行所需时间:每一条指令执行的时间+(总指令条数-1)* 流水线周期,

为2+2+1+(100-1)* 2 = 203(理论结果)

如答案未给出这个结果,再改用实践公式再试一遍

(流水线分成了几部分 +(总指令条数-1))* 流水线周期,即(3+(100-1))* 2 = 204

流水线吞吐率计算

image-20230802102417054

  • 吞吐率:指令条数 / 流水线执行时间
  • 指令条数:题目所设想总共有多少条指令
  • 流水线执行时间:同样分为理论和实践,一般我们所选用理论:每一条指令执行的时间+(总指令条数-1) 流水线周期*
  • 流水线最大吞吐率=1 / 流水线周期

image-20230802102437403

依照上面那道例题,吞吐率TP 就等于 100/203

而流水线最大吞吐率=1 / 流水线周期,为1 / 2

流水线的加速比

image-20230802102519280

  • 流水线的加速比 = 不使用流水线执行时间/使用流水线执行时间
  • 不使用流水线执行时间 = 各部分所花费的时间总和 * 总指令数

image-20230802102559907

例题中去求不使用流水线执行时间 = 各部分所花费的时间总和 * 总指令数

= (2 + 2 + 1)* 100 = 500

所以流水线的加速比 = 不使用流水线执行时间/使用流水线执行时间

= 100 / 500 = 1 / 5

流水线的效率
  • 流水线的效率 = 流水线的设备利用率
  • 流水线的效率 = n个任务占用的时空区 / k个流水段的总的时空区
  • n个任务占用的时空区 : 每个任务所占用的时空区相加 * n(任务数)
  • k个流水段的总的时空区 : 时空图中最大的时空区数 * n(任务数)

image-20230802102924055

image-20230802103036701

例题中,求n个任务占用的时空区 : 每个任务所占用的时空区相加 * n(任务数):(t + t + t +3t)*4 = 24t

k个流水段的总的时空区 : 时空图中最大的时空区数 * n(任务数):15t * 4 = 60t

故流水线的效率 = n个任务占用的时空区 / k个流水段的总的时空区 :15t / 60t = 1 / 4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

放下华子我只抽RuiKe5

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

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

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

打赏作者

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

抵扣说明:

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

余额充值