软件设计师必考精华 - 计算机基础

本文详细介绍了计算机基础,包括进制转换、浮点数表示、存储器组织、磁盘调度和输入输出技术。讨论了浮点数的规格化处理、溢出处理以及定点数与浮点数的区别。此外,还涵盖了冯诺依曼体系结构,CPU组件的功能,如程序计数器、指令寄存器和存储器层次结构,以及Cache的工作原理。最后,讨论了中断技术、DMA和总线带宽计算。
摘要由CSDN通过智能技术生成

目录

计算机基础

1、进制转换

2、常见编码

3、计算机体系结构

4、流水线

5、存储器

6、磁盘调度

7、输入输出技术

习题和易错点


计算机基础

1、进制转换

浮点数的表示范围:​ ~ ​,M表示尾数,R表示阶码

浮点数相加。首先要对阶,小阶向大阶看齐,尾数右移,然后进行位、尾数处理

  • 阶码决定范围,常用移码表示

  • 尾数决定精度,补码原码表示

规格化处理:是指对不满足规格化的尾数进行处理,当尾数可能发生溢出时(尾数绝对值>1),应该调整阶码,M的范围[0.5,1)

溢出处理:尾数相加不是真正的溢出,因为可以向右规格化处理,阶码溢出时真正的溢出。阶码下溢出,结果为0,阶码上溢出(阶码向右规格化处理时发生),溢出标志会置1

定点数和浮点数表示时,小数点表示一个约定的范围,不占位数

十进制整数转二进制十进制小数转二进制
除2,取余数,直到商0 第一次相除,得到最低位乘积小数部分乘2取整 第一次相乘得到最高位
53%2(1)—26%2(0)—13%2(1)—6%2(0)—3%2(1)—1%2(1) (53) — 1101010.125 x 2 = 0.25(0)—0.25 x 2(0)—0.5 x 2 —1.0(1) (0.125) — (0.001)
二进制转八进制八进制转二进制
整数部分从右到左,三位并一位,左侧补0 小数部分从左到右,三位并一位,右侧补0一位变三位
码制定点整数定点小数
原码和反码​ ~ ​(-0、+0)-(1-2-{n-1}-1) ~ 1 - 2-{n-1}
补码和移码​~ ​(0此时有唯一编码+0)-1 ~ 1-2-{n-1}​(共有2n个数

正数的原码= 反码 = 补码,负数的补码 = 原码(除符号位)按位取反 + 1

最高位是符号位,0表示正数,1表示负数

为何要用补码表示和运算数据:简化计算机运存部件的设计(设计补码的目的是让符号位能与有效值一起参与运算,从而简化运算)

16位补码为FFFFH,对应的十进制数是 -1

逻辑运算符号法则
或(并集)+ 或 ​有1则1,无1则0
与(交集)· 或 ​有0 则0,全1则1
~取反
异或⊕ 或 xor相同0,不同则1

移位运算:

一个数左移n位,相当于乘 ​,一个数右移n位,相当于除 ​

2、常见编码

海明码利用奇偶性,可以检错和纠错:​

循环冗余码模2运算来构件校验位

哈夫曼编码(最优二叉树):带权节点路径长度最短

奇/偶校验:以二进制中1的个数是奇数还是偶数,无法进行错误校正

3、计算机体系结构

冯诺依曼体系结构:运算器、控制器、存储器、输入/输出设备,5大部分组成

image-20210526092350238

CPU = 运算器 + 控制器 + 寄存器组 + 内部总线(不包括I/O总线)

主机 = CPU + 内存

外设:其他部件

程序计数器PC

  • 程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时决定,因此PC的内容是程序第一条指令的地址

  • 执行指令时,CPU自动修改PC内容,使其保持的总是将要执行的下一条指令的地址,由于大多数指令顺序执行,所以修改过程为PC+1

  • 当遇到转移指令时,后继指令的地址根据当前指令的地址 + 偏移量得到,或者根据转移指令直接转移到目标地址(常用于跟踪指令地址

  • 编写汇编语言时,程序员可以访问的是PC(因为程序员编写程序,控制的是程序的执行过程),而指令寄存器IR对用户完全透明

  • 指令和数据均存放在内存中,通常由PC(程序计数器)提供存储单元地址取出的是指令,由指令地址码部分提供存储单元地址取出的是数据。因此通过不同的寻址方式来区别指令和数据

控制器特点
程序计数器 PC指向下一条指令的地址,CPU去主存取得指令,有自动增加功能
指令寄存器 IR保存当前正在执行的指令,位数取决于字长 计算机指令包括操作码和地址码,执行一条指令时,操作码和地址码都应该放入指令寄存器IR
地址寄存器 AR存放CPU当前访问的内存单元
数据寄存器 DR包含累加器AR、暂存算术运算或逻辑运算的操作数和结果 节省读取数据时,所占用的总线和访问存储器的时间
指令译码器对获取指令进行译码
寻址方式说明
立即寻址直接给出操作码
直接寻址直接给出操作码的地址或寄存器号(寄存器寻址)
间接寻址给出指向操作码地址的地址
变址寻址给出地址,需要与特定的地址值相加,得到操作码地址
CISCRISC
指令多,复杂指令少,不丰富
寻址方式丰富寻址方式少,简化逻辑
编程容易,灵活编程体量大,源程序长
机器指令系统越来越庞大 芯片设计复杂度高适合硬布线逻辑来执行

RISC的三种流水线

  • 超流水线技术:时间换空间,增加流水线级数、提高主频,在相同时间执行更多机器指令

  • 超标量技术:空间换时间

  • 超长指令字:VLIW:(Very Long Instruction Word)一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度

4、流水线

  • 串行:每条指令顺序执行,一条执行完才能执行下一条

  • 并行流水线:提高了利用率和吞吐率,但是对于执行单指令执行来说,并没有

    • 区别采用异步控制,明显提速的同时,增加阻塞概率,所以不会明显提高整体性能

    • 取决于最长的指令周期

    • 流水线时间计算 = 最长的​t1 ​ (n -1 )+(​t1 + ​t2 + ​t3)

    • 流水线吞吐率 = ​ 或最长流水段操作时间的倒数

5、存储器

存储系统存储结构
CPU寄存器通用寄存器
主存Cache高速缓存 主存
辅存磁盘 可移动存储

image-20210526095717552

相联存储器CAM(Content Addressable Memory):按内容访问,速度非常快

BIOS(基本输入输出系统,保存计算机最重要的基本输入输出,开机自检和系统自启动)保存在主板上的ROM中

CPU访问存储器的速度排序:通用寄存器 > Cache > 内存 > 硬盘

采用分级存储是为了解决:存储容量、成本和速度之间的矛盾

虚拟存储器 = 主存 + 辅存

缓存:是介于CPU存储器和内存间的高速存储器,容量比内存小,速度更快

  • 解决了CPU运行速度和内存读写速度不匹配的问题

  • 缓存容量的大小是CPU性能重要指标

  • 缓存的结构和大小对CPU影响很大

Cache高速缓存

  • 利用程序访问的局部性原理

  • 主存部分内容的拷贝/副本,选取最常使用的或者将来仍将使用的

  • 命中率主存​

判断CPU访问的内容是否在Cache中,通过命中率来判定

  • 若命中:在

    • 通过地址映射,把主存地址转换为Cache地址,访问Cache

  • 没命中:不在

    • 读操作:从主存中读取数据,按照替换原则,把数据装入Cache

    • 写操作:把数据写入主存

硬件自动完成Cache与主存间的地址映射

Cache并不能扩大主存容量,他们是两个独立的部分

Cache地址的映像方式

  • 直接映像:主存中每一块,映射到Cache中特定的一块,一对一

  • 组相连映像:组间直接映射,组内全相连映射,折中

  • 全相连映像:主存中任意一块,可以映射到Cache任意位置,一对多

冲突排序:全相连映像 < 组相连映像 < 直接映像

image-20210526100727745

W 存储容量 = 大地址 - 小地址 + 1

需要芯片数量默认​

开放系统的数据存储中,属于网络化存储的是:网络接入存储 NAS(Network Attached Storage)存储区域网络 SAN(Storage Area Network)

计算机系统部件可靠度:

串联:R = R1​ R2 ​ Rn

并联:R = 1-(1-R1) ​ (1-R2) ​ (1-Rn)

6、磁盘调度

独立磁盘冗余阵列RAID,特点和块数

  • RAID0:数据分成数据块保存在不同驱动器上,没有校验功能,没有冗余技术,所以利用率最高,一旦损坏,阵列数据全部丢失,2块

  • RAID1:安全性最好,空间利用率50%,最低,2块

  • RAID2:使用海明码校验和纠错,2块

  • RAID3:使用单独的一块进行奇偶校验,3块

  • RAID5:常用于IO较频繁的事物上,3块

  • RAID10:最高安全性和高性能,4块

先来先服务算法和最短寻找时间(当前磁臂到访问磁道的距离)算法可能会随时改变移动臂的移动方向

磁盘调度先进行移臂调度,再进行旋转调度

可靠性 :系统从正常运行到发生故障 MTTF/(1+MTTF) — 平均故障时间

可用性:任何时间都能及时工作 MTBF/(1+MTBF) — 两次故障的平均时间

7、输入输出技术

  • 中断技术:计算机执行过程中,出现异常或请求,CPU保存正在执行程序的现场,用程序计数器PC保存,等中断服务处理完成后,自动返回原程序继续执行

  • 中断响应时间,是指从发出中断请求到开始进入中断服务程序所需的时间,不包括中断处理过程、中断结束等

    • 中断向量可以提供中断服务程序的入口地址

  • DMA:传输数据时,CPU只参与初始化工作,DMA完成数据传输和具体操作,不需要CPU参与,传输速度最快

    • 主存与外设之间建立通路

    • 占用的是系统总线

    • CPU是在一个总线周期结束时,响应DMA请求的

      • 指令周期:取出并执行一条指令的时间

      • 总线周期:一个访存储器或I/O端口操作所用的时间

      • 时钟周期:是处理操作的最基本单位

      • 时钟周期之间的关系:一个指令周期由若干个总线周期组成,而一个总线周期时间又包含有若干个时钟周期

程序查询、无条件传送、中断都需要CPU参与

名称用途
数据总线双向数据传输,DB的宽度决定CPU和其他设备的交换位数 分时发送数据,同时并行接收数据
地址总线只单向传输,CPU发送的地址信息,AB决定CPU最大寻址能力
控制总线传送控制信息信号、时序信号、状态信息,传输方向固定 CB每一根线单向传输,总体是双向传输

总线带宽 = 总线宽度(总线一次性输出二进制位的位数) ​ 总线频率(一秒钟传输数据的次数)

例2:总线宽度64bit,时钟频率100Mhz,总线上每5个时钟周期传送64bit,那么总线带宽?

总线带宽 = (64/8bit) ​ (100Mhz/5) = 160Mb/s

总线带宽 = 时钟频率 ​ 每个总线周期传送的字节数/每个总线周期的时钟周期数

例:系统总线一个周期传送32位数据,一个总线周期包括6个时钟周期数,总线时钟频率66MHZ,那么总线带宽?

总线带宽 = 66MHZ ​ (32/8bit)/6 = 44Mb/s

习题和易错点

2X的补码是90H,X的真值?

90H = 10010000,该数为负数,反码10001111,源码11110000 即 -112,得X=-56

Flymn分类法(根据Single、Multi判断)

  • SISD:单指令单数据流

  • SIMD

  • MISD多指令流多单数据流,只有理论意义没有实践意义

  • MIMD

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值