中级软件设计师(软考)笔记——计算机与体系结构

计算机体系结构

进制的转换

1、R进制转十进制使用按权展开法
    
    将R进制数的每一位数乘以它的权,然后相加,即可求得对应的十进制数值

2、十进制转R进制使用短除法
    
    整数部分:除R取余,知道商为0为止,将余数逆序排列
    小数部分:乘R取整,直到小数部分为0,将整数顺序排列

3、二进制转八进制与十六进制
    
    二进制数转 八 或 十六 进制数是,从小数点向左和向右把每 3 或 4个二进制数分成一组,
    直接写出每一组所代表的数值,小数点后不足位数补0
    
    八 或 十六 进制数转成二进制数时,从小数点向左和向右将一个数分成 3 或者 4个二进制数,
    按顺序排列,得到的就是转换后的二进制数

原码、反码、补码、移码

a、正数的原码、反码、补码都是相同的
b、负数的反码是在原码的基础上 除符号位(第一位)其它位取反;补码是在反码的基础上加一
    负数补码转原码 —— 除符号位之外全部取反再加一
c、移码在补码基础上把符号位取反

使用补码进行加减法运算

数值表示范围

在这里插入图片描述

定点数

 定点数:所有数据的小数点位置是固定的,小数点位置在数据最高位的是定点小数(即小数点在符号位后面),
 在最低位的是定点整数(即小数点在最右边)    注:小数点不占位数

浮点的运算

浮点数表示:
    N = 尾数 * 基数 ^ 指数 ——>  3.14 * 10 ^ 3 ,其中3.14是尾数,10是基数,3是指数

运算过程:
    对阶(把阶码小的往大的移) > 尾数计算 > 结果格式化
    
    例如:3.14 * 10^3 + 1.2 * 10^5 = 0.0314 * 10^5 + 1.2 * 10^5
    
    
特点:
    1、一般尾数用补码,阶码用移码表示 (3.14 * 10 ^ 3 、0.314 * 10 ^ 4、0.0314 * 10 ^ 5 —— 3、4、5就是阶码)
    2、阶码的位数决定数的表示范围,位数越多范围越大
    3、尾数的位数决定数的有效精度,位数越多精度越高
    4、对阶时,小数向大数看齐
    5、对阶时通过较小数的位数右移实现的
浮点数的存储:

以3.14 * 10^-5表示

阶符 阶码 数符 尾数
1为负数、0为正数 指数数值 尾数正负 n^m前面的数
1 -5 0 3.14

计算机结构

  • 主机
    • CPU
      • 运算器
        1、算术逻辑单元ALU —— 执行算术运算、逻辑运算
        2、累加寄存器AC —— 通用寄存器,为ALU提供工作区域用在暂存数据
        3、数据集缓冲寄存器DR —— CPU与内存的桥梁,数据读和写
        4、状态条件寄存器(有时候属于运算器、有时候属于控制器)PSW —— 存状态标志与控制标志
      • 控制器
        1、程序计数器PC —— 存储下一条需要执行指令的地址
        2、指令寄存器IR —— 存放即将执行的指令
        3、指令译码器ID —— 分析(翻译)指令功能
        4、时序部件 —— 产生控制指令所需要的时间信号
    • 主存储器(内存)
  • 外部设备
    • 输入设备
    • 输出设备
    • 辅助存储器(外存、硬盘)

计算机体系结构分类 —— Flynn分类

在这里插入图片描述

指令的基本概念

一条指令就是机器语言的一个语句,它是一组具有意义的二进制代码,格式如下:
| 操作码字段(计算机的操作,加减……) | 地址码字段(操作数的地址) |

从其地址结构的角度可以分为:三地址指令(三个操作数,操作码)、二地址指令、一地址指令、零地址指令

寻址方式

  • 立即寻址方式 —— 操作数直接在指令中,速度快,灵活性差
  • 直接寻址方式 —— 指令中存放的是操作数的地址
  • 间接寻址方式 —— 指令中存放了一个地址,这个地址对应的内容是操作数的地址
  • 寄存器寻址方式 —— 寄存器存放操作数
  • 寄存器间接寻址方式 —— 寄存器内存放的是操作数的地址

☆CISC(复杂指令集计算机)、RISC(精简指令集计算机)

CISC:指令数量多,使用频率差别大,可变格式
    实现方式:微程序控制技术(微码)
    特点:复杂,指令数量多,频率差别大,多寻址
    
RISC:指令数量少,使用频率接近,顶长格式
    实现方式:增加了通用寄存器,硬布线逻辑控制为主,适合采用流水线
    特点:精简,指令数量少,操作寄存器,单周期,少寻址,多通用寄存器,流水线

流水线

概念:流水线技术是把并行性或者并发性嵌入到计算机系统里的一种形式,它会把重复顺序处理过程分解为若干子过程,每个子过程都能在专用的独立模块上有效地并发工作。提高部件利用率和平均执行速度。

流水线周期:执行时间最长的一段,即取指、分析、执行三个里面时间最长的--max{取指,分析,执行}

总时间 = 第一条指令执行时间 + (指令条数 - 1) * 流水线周期
理论公式 :(t1 + t2 + ... +tk) + (n - 1) * △t (k为一条指令k个步骤)
实践公式: k * △t + (n-1) * △t

超标量流水线:内装多条流水线来同时执行多个处理,其实质是以空间换时间,内装流水线的条数称为其 度

流水线吞吐率计算

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

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

流水线最大吞吐率
    TPmax = 1 /  △t (流水线周期分之一)

层次化存储结构

从上到下容量一次增大、速度减慢

CPU —— 寄存器,最快,容量小,成本高
Cache —— 按内容存取
内存(主存) —— 分两类:随机存储器(RAM)、只读存储器(ROM)
外存(辅存) —— 硬盘、光盘、U盘等
  • Cache
    • 在计算机的存储系统体系中,Cache是访问速度最快的层次(仅次于CPU的寄存器)
    • 使用Cache改善系统性能的依据是程序的局部性原理
    • 以h表示Cache的访问命中率,t1表示Cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用“Cache+主存储器”的系统平均周期为t3,则:
      t3 = h * t1 + (1 - h) * t2
      (1-h)又被称为失效率
  • Cache-映像
    • 直接相联映像: 硬件电路较简单,但冲突率很高,灵活性差
    • 全相联映像: 冲突率最低,十分灵活,但电路难以设计和实现,变换比较复杂,速度比较慢
    • 组相联映像:直接相联和全相联的折中
    • 地址映像是将主存与Cache的存储空间划分为若干大小相同的页(或者称为块)

主存-编址与计算

  • 存储单元
  • 按字编址 :存储体的存储单元是字存储单元,即最小寻址单位是一个字
  • 按字节编址 :存储体的存储单元是字节存储单元,即最小寻址单位是一个字节
根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数:
    总片数 = 总容量 / 每片的容量

例:若内存地址区间为4000H ~ 43FFH,每个存储单元可存储16位二进制数,该内存区域用4片存储器芯片构成,则构成该内存所用的存储器芯片容量是多少?
总容量 = (43FFH - 4000H + 1)* 16 bit = 2^10 * 16 bit = 2^14 bit
总片数 = 4
则每片的容量 = 2^14 bit / 4 = 256 * 16 bit

总线

一条总线同一时刻仅允许一个设备发送,但允许多个设备接收

分类:

  • 数据总线:用来传送数据信息,是双向的
  • 地址总线:用于传送CPU发出的地址信息,是单向的
  • 控制总线:用来传送控制信号、时序信号和状态信号等

串联系统和并联系统

求可靠性:
串联:所有的可靠性相乘   R = R1 * R2 * R3 * ... * Rn
并联:R = 1 - (1 - R1) * (1 - R2) * ... * (1 - Rn)

校验码

码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据校验码的码距
例如,用4位二进制表示16中状态,则有16个不同的码字,此时码距为1.如0000与0001

奇偶校验:通过在编码中增加一位校验码来使编码中的1的个数为奇数或者偶数

奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码

奇校验:整个校验码中的“1”的个数为奇数
偶校验:整个校验码中的“1”的个数为偶数

奇偶校验,可以检查1位的错误,不可纠错

循环校验码CRC

在发送端先把数据划分为组,假定每组 k 个比特。假定传送的数据M = 101001(k=6)。
CRC运算就是在数据M的后面添加供差错检测用的n位冗余码,然后构成一个帧发送出去,一共发送(k + n)位。
n位冗余码用以下方法得出。用二进制的模2运算进行2n乘M的运算。相当于在M后面添加n个0得到的(k + n)位的数除
以收发双方事先商定的长度为(n + 1)位的除数P,得出商是Q而余数是R(n位,比P少一位)。
然后余数R就作为冗余码拼接在数据M的后面发送出去。

【例如】:要发送的数据M = 101001(k = 6)。假定除数P = 1101(即n = 3),然后通过模2除法运算,得到商Q = 110101(没什么作用),余数R = 001,所以发送的帧为 101001001 。 然后在接收端吧接收到的数据以帧为单位进行CRC检测:
把收到的每一个帧都除以同样的除数P,然后检查此时得到的余数R,若传输无差错,则,R应该为0.

在这里插入图片描述
在这里插入图片描述

海明校验码,可检错,也可纠错

数据位是n位,校验位是k位,则:

2^k - 1 ≥ n + k

猜你喜欢

转载自blog.csdn.net/weixin_44215175/article/details/113005548