软考 - 计算机组成与体系笔记

2023-09-13 14:05:27

数据的表示

进制转化

  • 二进制转十进制(十进制以D表示)
    • 从右往左,用二进制位上的数字乘以2的n次幂的和(n从0开始+1累加)
  • 十进制转二进制(二进制以B表示)
    • 十进制数不断除以2直至到0,得到的余数按从下而上的顺序排列得到的数值
  • 二进制与八进制(八进制以O或Q表示)
    • 二进制从右往左,每三位对应的都是八进制的一位数
  • 二进制与十六进制(十六进制以H表示)
    • 二进制从右往左,每四位对应的都是十六进制的一位数

1B = 8bit
1KB = 2^10B = 1024B
1MB = 2^20B = 1024KB
1G = 2^30B = 1024MB

原码反码补码移码

码制定义数码个数
原码最高位是符号位,其余低位表述数值的绝对值2^n - 1
反码正数的反码与原码相同,负数的反码是其绝对值按位取反(符号位不变)2^n - 1
补码正数的补码与原码相同,负数的补码是其反码末位加1(符号位不变)2^n
移码补码的符号位按位取反2^n

image.png

  • 定点正数,例如8位:-128补码认为规定位1000 0000
  • 定点小数:-1补码人为规定位1000 0000

所以补码负数会多一个值

数据的运算是补码之间的计算

浮点数

N = 尾数 * 基数 ^ 指数

  1. 一般尾数用补码,阶码用移码
  2. 阶码的位数决定数的表示范围,位数越多范围越大
  3. 尾数的位数决定数的有效精度,位数越多精度越高
  4. 对阶时,小数向大数看齐
  5. 对阶是通过较小尾数右移实现的

逻辑运算

  1. 算数运算 乘除 > 加减
  2. 关系运算:大于 小于
  3. 逻辑运算:&& > ||

校验码

  1. 奇偶校验
    1. 只校验,不纠错
  2. CRC循环冗余校验
    1. 只校验,不纠错
    2. 采用模二除法
  3. 海明校验(必考)
    1. 可检错,也可以纠错
    2. 2^r >= m+r+1 m为信息位

CPU组成

考察概念,重点

  1. 运算器
    1. 算数逻辑单元ALU:数据的算术运算和逻辑运算
    2. 累加寄存器AC:通用寄存器,为ALU提供工作区,用在暂存数据
    3. 数据缓冲寄存器DR:写内存时,暂存指令或数据
    4. 状态条件寄存器PSW:存状态标志与控制标志(有争议,也可以归纳到控制器中)
  2. 控制器
    1. 程序计数器PC:存储下一条要执行指令的地址
    2. 指令寄存器IR:存储即将执行的指令
    3. 指令译码器ID:对指令中的操作码字段进行分析解析
    4. 时序部件:提供时序控制信号

寻址方式

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

CISC与RISC

指令系统类型指令寻址方式实现方式其他
CISC(复杂)数量多,使用频率差别不大,可变长格式支持多种微程序控制技术(微码)研制周期长
RISC(精简)数量少,使用频率接近,定长格式,大部分为单周期周玲,操作寄存器,只有Load/Store操作内存支持方式少增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线优化编译,有效支持高级语言

流水线技术

流水线计算公式:

  1. 理论公式 :(t1+t2+…+tk)+(n-1)*t
  2. 实践公式:k*t+(n-1)*t

其中:

  • t1/t2为每条指令的时间
  • n为执行次数
  • t为指令中最长执行时间

吞吐率计算公式
TP = 指令条数 / 流水线执行时间
流水线最大吞吐率
TP(max) = 1 / t

存储系统

必考
CPU -> Cache -> 内存(主存)-> 外存(辅存)

层次化存储结构(时间&空间局部性原理) - 分类

  1. 存储器位置
    1. 内存&外存
  2. 存取方式
    1. 按内容存取:相联存储器(如Cache)
    2. 按地址存取:
      1. 随机存取存储器(如内存)
      2. 顺序存取存储器(如磁盘)
      3. 直接存取存储器(如磁盘)
  3. 工作方式
    1. 随机存取存储器RAM(如内存DRAM)
    2. 只读存储器ROM(如BIOS)

Cache

概念类考察

  1. 直接相联映像:硬件电路简单,冲突率高,映射特定块
  2. 全相联映像: 硬件电路复杂,冲突率低,映射任意一块
  3. 组相连映像: 直接相联与全相联的折中

注:主存与Cache之间的地址映射由硬件直接完成

存储系统

计算类考察

  1. 存储单元
    1. 存储单元个数=最大地址-最小地址+1
  2. 编址内容
    1. 按字编址:存储体的存储单元是字存储单元,即最小寻址单位为一个字
    2. 按字节编制:最小寻址单位为一个字节
  3. 总容量
    1. 总容量=存储单元个数*编址内容

根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数:
总片数=总容量/每片的容量

例题:
内存按字节编址,地址从A0000H到CFFFFH的内存,共有(192KB),若用存储容量为64KB*8bit的存储器芯片构成该内存空间,至少需要(3)片

输入/输出技术(IO)

概念类考察(必考)

  1. 程序控制(查询)方式:I/O能力不高,严重影响CPU利用率
  2. 程序中断方式:鼠标/键盘
    1. I/O系统发出中断请求信号
    2. 保存正在执行程序的现场(保存现场),打断程序当前位置即为断点
    3. 通过中断向量表转入I/O中服务程序
    4. 返回被打断的程序继续执行(恢复现场)
  3. DMA方式:移动硬盘
  4. 通道方式
  5. I/O处理机

总线

了解概念

可靠性

1-2分,了解概念,会计算可靠性
MTTF指平均无故障时间,则计算软件可靠性公式为:
MTTF/(1+MTTF)

性能指标

了解概念,会计算

  • 字长与数据通路宽度
  • 主存容量和存取速度(主频与CPU时钟周期)
  • 运算速度(CPI与IPC)
  • 吞吐量与吞吐率(MIPS与MFLOPS)
  • 响应时间(RT)与完成时间(TAT)
  • 兼容性

CPI:平均每条指令的平均时钟个数
IPC:每时钟周期运行指令个数
MIPS:百万条指令每秒
MFLOPS:百万浮点操作每秒

例题:CPU主频2.8GHz,平均CPI为3.5,运算速度用MIPS表示,约为(800)
image.png

更多推荐

sed简单使用

sed(StreamEditor)流编辑器,对标准输出或文件逐行进行处理语法格式第一种形式:stdout|sed[option]"patterncommand"第二种形式:sed[option]"patterncommand"filesed的选项选项含义-n只打印模式匹配行-e直接在命令行进行sed编辑,默认选项-f编

质数距离(C++筛素数模板题)

给定两个整数L和U,你需要在闭区间[L,U]内找到距离最接近的两个相邻质数C1和C2(即C2−C1是最小的),如果存在相同距离的其他相邻质数对,则输出第一对。同时,你还需要找到距离最远的两个相邻质数D1和D2(即D1−D2是最大的),如果存在相同距离的其他相邻质数对,则输出第一对。输入格式每行输入两个整数L和U,其中L

JavaScript速成课--面向对象程序设计

目录一.类的定义和实例化1.类的定义2.类的实例化二.访问和添加对象的属性和方法1.访问对象的属性和方法2.向对象添加对象属性和方法三.继承1.原型实现继承2.构造函数实现继承3.重新定义继承父类的方法一.类的定义和实例化在JavaScript中没有声明类的关键字,也没有对类访问的权限控制,JavaScript中使用函

力扣刷题:正则表达式匹配、

今日刷题一、正则表达式匹配题目链接:https://leetcode.cn/problems/regular-expression-matching/给你一个字符串s和一个字符规律p,请你来实现一个支持‘.’和‘*’的正则表达式匹配。‘.’匹配任意单个字符‘*’匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串

B树的插入和删除

1.B树的插入1.核心要求对m阶B树——除根节点外,结点关键字个数[m/2]−1≤n≤m−1[m/2]-1≤n≤m-1[m/2]−1≤n≤m−1子树0<关键字1<子树1<关键字2<子树2<…新元素一定是插入到最底层“终端节点”,用“查找”来确定插入位置.2.具体步骤若插入后结点关键字个数未超过上限,则无需做其他处理.在

PX4 固件常用 QGroundControl 参数设置

一、安全检查1.CBRK_USB_CHK(USB连接检查)检查USB连接飞控,若连接则不允许解锁,默认情况下有USB连接时是无法解锁的,如果需要插USB解锁,需要设置为1978482.CBRK_IO_SAFETY(安全开关检查)检查安全开关,安全开关未打开则不允许解锁,默认情况下需要打开安全开关才能解锁,如果需要禁用安

centos7安装安装python3.11,安装Home Assistant

一,下载并编译安装python3.111、python源码地址:https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz2、准备编译环境yumupdate-yyum-ygroupinstall"Developmenttools"yum-yinstallbzip

java基础-并发编程-CountDownLatch(JDK1.8)源码学习

CountDownLatch方法调用与类关系图一、初始化:publicCountDownLatch(intcount)publicCountDownLatch(intcount){if(count<0)thrownewIllegalArgumentException("count<0");this.sync=newSy

LVS负载均衡群集——LVS-NAT模式搭建和LVS-DR模式搭建

目录lvs工作模式1、NAT模式(VS-NAT)2、直接路由模式(VS-DR)3、IP隧道模式(VS-TUN)LVS调度算法LVS群集类型1)负载均衡群集LB2)高可用群集HA3)高性能运输群集HPCLVS-NAT模式搭建1、NFS部署2、web服务器部署(节点服务器)3、负载调度器配置4、使用客户端测试LVS-DR模

pod调度

定向调度通过标签选择器定向调度到node上此调度方式是硬性现在如果匹配不上会调度失败#在node上加标签klabelnodesdev4-workerzone=north#查看kgetnodedev4-worker--show-labels创建pod的yaml文件#通过标签选择器定向调度到指定nodeapiVersion

java运行以jar包的形式运行和tomcat运行的区别和联系?

Java运行以JAR包形式和Tomcat运行之间存在一些区别和联系:区别:部署方式:JAR包形式的Java应用可以作为独立的进程运行,通过命令行或脚本启动。而Tomcat是一个Web服务器和Servlet容器,需要将应用程序打包成WAR文件并部署到Tomcat中。架构:JAR包形式的应用通常是简单的独立应用,将所有的依

热文推荐