软考 - 计算机组成与结构

news2025/7/9 11:13:04

数据计算

数据的进制转化

十六进制符号 0X 或 H,可表示为0x18F 或 18FH

m进制转n进制:先将m进制转化为十进制数,再将十进制数转化为n进制数(2进制可直接转8进制(3位)和16进制(4位))

注意:小数部分转换不考

数的编码方式

机器数:使用二进制计数制,小数点则隐含,不占位置。机器数有无符号 和 有符号之分。

真值:机器数对应的实际数值

  • 正整数:原码=补码=反码

  • 负整数:

    • 反码=原码符号位不变,其他按位取反
    • 补码=反码+1(同样符号位不变)
例1:1
原码:0 000 0001(最高位为符号位,正数为0,负数为1)
反码:0 000 0001
补码:0 000 0001
移码:1 000 0001(不分正负,在补码基础上符号位取反)

例2:-1
原码:1 000 0001(最高位为符号位,负数为1)
反码:1 111 1110(符号位不变,其他按位取反)
补码:1 111 1111(补码=反码+1)
移码:0 111 1111

浮点数

浮点数表示

在这里插入图片描述

浮点数:表示方法为 N=F*2^E, 其中E称为阶码,F称为尾数

  • 阶符:阶码的符号,0表示正数,1表示负数

  • 阶码:带符号的纯整数,确定数值范围

  • 尾符:尾数的符号,0表示正数,1表示负数

  • 尾数:带符号的纯小数,确定数值精度

浮点数表示
十进制 85.125 = 0.85125*10^2
二进制 101.011 = 0.101011*2^3

浮点数运算

  • 对阶:即使两个数的阶码相同,小阶向大阶看起,较小阶码增加几位,尾数就右移几位
  • 尾数规格化:即带符号尾数的补码

算数运算和逻辑运算

校验码

转自:https://www.cnblogs.com/VersionP1/p/7779251.html

校验码作用:

加进一些冗余码,使合法数据编码出现某些错误时,就成为非法编码。

码距:

在两个编码中,从A码到B码转换所需要改变的位数称为码距。一般来说,码距越大,越利于纠错和检错。

奇偶校验码

为一个字节补充一个二进制位(校验位0或1)的方式,使字节自身的 8 位和该校验位含有 1 值的位数一定为奇数或偶数。

奇校验只能发现奇数个错误位,偶校验只能发现偶数个错误位,奇偶校验码只能查错不能纠错。

举例:
原始数据:0010 1100
奇校验:0010 11000  //校验位为0,3个1  奇数个1
// 如果错误是偶数个1,可以检验;反之不能
偶校验:0010 11001  //校验位为1,4个1 偶数个1
// 如果错误是奇数个1,可以检验;反之不能

海明校验码

  1. 海明校验码是放在2的幂次位上的,即“1,2,4,8,16,32······”;也是利用奇偶性校验数据,是一种多重奇偶检验检错机制

信息位为m的原始数据,需要加入k位的校验码,它满足m+k<=2^k-1;

举例: 计算原始信息位为101101100的海明校验码?
先用m+k+1<2^k计算出校验位:9+k+1 <2^k→k=4,即校验位为4位。
因为海明校验码是放在2的幂次位上,所以插在位置1,2,4,8中。
原始信息的数据如下图所示,标出需要用到的校验码

然后将校验码校验的位置记录下来:
校验码1(位置1):3,5,7,9,11,13
校验码2(位置2):3,6,7,10,11
校验码3(位置4):5,6,7,12,13
校验码4(位置8):9,10,11,12,13

然后做异或运算(相同时为0,不同时为1)
校验码1(位置1):1 xor 0 xor 1 xor 0 xor 1 xor 0 = 1
校验码2(位置2):1 xor 1 xor 1 xor 1 xor 1 = 1
校验码3(位置4):0 xor 1 xor 1 xor 0 xor 0 = 0
校验码4(位置8):0 xor 1 xor 1 xor 0 xor 0 = 0 

在这里插入图片描述

在这里插入图片描述

循环冗余校验码CRC【模2运算】

原理:

CRC检验原理实际上就是在一个**p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列;**附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系。如果因干扰等原因使数据序列中的某一位或某些位发生错误,这种特定关系就会被破坏。

CRC码的特点:

  • 位数要少于原编码
  • 收尾为1
  • 自行决定

求校验码

CRC码并非是校验码,但需要通过CRC码来获得校验码。

具体校验码的话要先让原编码加上CRC码位数个0(即CRC码有的多少位,就要加上多少位0在原编码的后面)然后用新原编码除CRC码,得到的余数就是校验码

例子: 原编码:1001001011的校验码?
则CRC码可以为10011,也可以为11001等 
但是:10010这种不可以【收尾为1】,1001101011也不行【位数要少于原编码】

给定条件:
原编码=1010001101
CRC码设为:110101
校验码有5位,因此 - 新原编码:101000110100000
然后用新原编码除以CRC码: 校验码就是01110

计算机系统基础知识

  • 计算机的硬件基本系统由五大部分组成:运算器、控制器、存储器、输入设备、输出设备

  • 存储器分为 内部存储器(内存) 和 外部存储器(硬盘、光盘)

  • 输入设备和输出设备统称为外部设备(外设)

  • 主机:中央处理单元(CPU,运算器+控制器)+主存储器

在这里插入图片描述

中央处理单元CPU

中央处理单元组成:由运算器、控制器、寄存器组和内部总线组成。

中央处理单元功能:实现程序控制、操作控制、时间控制、数据处理功能

运算器

运算器组成:

  • 算术逻辑单元ALU(实现对数据的算数和逻辑运算)
  • 累加寄存器AC(运算结果或源操作数的存放区)
  • 数据缓冲寄存器DR(暂时存放内存的指令或数据)
  • 状态条件寄存器PSW(保存指令运行结果的条件码内容,如溢出指标等)组成。

运算器功能:

执行所有的算术运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如与、或、非、比较等。

控制器

控制器组成:

  • 由指令寄存器IR(暂存CPU执行指令)
  • 程序计数器PC(存放指令执行地址)
  • 地址寄存器AR(保存当前CPU所访问的内存地址)
  • 指令译码器(分析指令操作码)等组成。

控制器功能:

控制整个CPU的工作,最为重要,包括程序控制,时序控制等。

计算机指令

计算机指令的组成:

一条指令由操作码和操作数两部分组成,操作码决定要完成的操作(加减乘除),操作书指参加运算的数据及其所在的单元地址。

在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。

计算机指令的执行过程:

取指令 – 分析指令 – 执行指令三个步骤 。

首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR,而后由指令译码器进行分析,分析指令操作码,最后执行指令,取出指令执行所需的源操作数。

指令寻址方式

顺序寻址方式:当执行一段程序时,是一条指令接着一条指令地顺序执行。

跳跃寻址方式:指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。

指令操作数寻址方式

- 立即寻址方式: 指令的地址码字段指出的不是地址,而是操作数本身。

- 直接寻址方式:在指令的地址字段中直接指出操作数在主存中的地址。

- 间接寻址方式:指令地址码字段所指向的存储单元存储的是操作数的地址。

- 寄存器寻址方式:指令中的地址码是寄存器的编号。

CPU基本工作过程

CPU = ALU(算数逻辑单元) ➕ CU(控制单元)

举个例子加强理解:
CPU => 工厂核心的车间
运算器 => 普工(只负责运算)
寄存器 => 工具人(传递和搬运数据)
控制器 => 车间主管(管理调剂所有普工和工具人)
cache => 小板车,多个车间之间共享数据

CPU的基本工作是执行存储的指令序列,即程序。程序的执行过程实际上是不断地取出指令、分析指令、执行指令的过程。

在这里插入图片描述

在这里插入图片描述

计算机体系结构分类

转自:https://blog.csdn.net/flysh13/article/details/124060791

Flynn分类法

基于 指令流和数据流 对计算机进行分类

  • 指令流由控制部分处理,多指令流就有多个控制部分
  • 数据流由处理流来处理,多数据流就有多个处理器
  • 主存模块用来存储,对于指令和数据都需要多个
  • 根据计算机特性,是由指令控制数据的传输,一条数据流不能被多条指令控制,MISD不可能
  • S(Single)M(Multiple)I(Instructions)D(Data)

在这里插入图片描述

指令系统

  • CISC 复杂指令系统,兼容性强,指令繁多,长度可变,由微程序实现。

  • RISC 精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器,硬件布线逻辑控制)

  • C(Complex)R(Reduce)

在这里插入图片描述

指令流水线

流水线的目的是为了提高计算机的运算速度,利用并行技术来进行执行指令。

在这里插入图片描述

流水线的相关计算

https://blog.csdn.net/qq_44762290/article/details/119730632 洗衣机的例子生动形象!

流水线周期: 指令分成不同执行段,其中执行时间最长的段为流水线周期。

流水线执行时间: 1条指令总执行时间+(总指令条数-1)X 流水线周期

流水线吞吐率: 总指令条数/ 流水线执行时间

流水线加速比:不使用流水线总执行时间 / 使用流水线总执行时间

RISC中的流水线技术:

  • 超流水线:时间换空间

  • 超标量流水线技术:空间换时间

  • 超长指令字VLIW:同时执行多条指令,发挥软件作用

存储系统

计算机存储结构层次

计算机采用分级存储体系的主要目的是为了解决存储容量,成本和速度之间的主要矛盾问题。

在这里插入图片描述

两级存储映像为:Cache-主存,主存-辅存(虚拟存储体系)

局部性原理

**总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内,**包括下面两个方面:

时间局部性原理【循环】-如果一个数据项正在被访问,那么在近期它可能被再次访问,即在相邻的时间里会访问同一个数据项。

空间局部性原理【数组】- 在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能时相近的,即相邻的空间地址会被被连续访问。

高速缓存Cache

用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成。其内容是主存内存的副本拷贝,对程序员来说是透明的。

Cache由控制部分和存储部分组成,存储器存储数据,控制部分判断CPU要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换。

地址映射:

在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读写信息,这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映射,由硬件自动完成映射,分为下列三种方式:

  • 直接映射:将Cache存储器等分成块,主存也等分成块并编号。主存中的块与Cache中块的对应关系是固定的,也即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费

  • 全相联映像:同样都是等分成块并编号。**主存中任意一块都与Cache中任意一块对应。**因此可以随意调入Cache任意位置,但地址变换复杂,速度较慢。因为主存可以随意调入Cahce任意块,只有当Cache满了才会发生块冲突,是最不容易发生块冲突的映像方式。像一个list一样,每次循环遍历,满了就淘汰旧的

  • 组组相连映像: 前面两种方式的结合,将Cache存储器先分块再分组,主存也同样先分块再分组,组间采用直接映像,即主存中组号与Cahce中组号相同的组才能命中,但是组内全相联映像,也即组号相同的两组内的所有块可以任意掉换。

Cache命中率

当CPU所访问的数据在Cache中时,称为命中,直接从Cache中读取数据,否则没有命中,需要从主存中读取所需的数据。

主存编址

例题:
地址编号从 80000H 到 BFFFFH 且按字节编址的内存容量为 (?)KB??
若用14k*4bit的存储器芯片构成该内存,共需 (?) 片??
重点须知:
K = 1024  k = 1000
1B = 1024 bit

内存单元个数 : BFFFFH - 80000H +1 = 40000H (个)
内存单元总大小:40000H * 1 = 40000H (B) -- 按字节编制,每个内存单元大小为一个字节
内存容量即为  40000H(B)=256(KB)

16K*4bit = 8(KB)
芯片个数:256/8=32(个)

虚拟存储器

**虚拟存储器技术是将很大的数据分成许多较小的块,全部存储在外存中。运行时,将用到的数据调入主存中,马上要用到的数据置于缓存中,这样一边运行一边进行所需数据块的调入/调出。对于应用程序员来说,有比实际主存空间大得多的虚拟主存空间。基本层次为主存 – 缓存 – 外存 **

  • 在操作系统的分页部分提及

输入输出技术

  • **程序控制(查询)方式:**CPU主动查询外设是否完成数据传输,效率极低

  • **程序中断方式:**外设完成数据传输后,向CPU发送中断,等待CPU处理数据,效率相对较高

  • DMA方式(直接主存存取):CPU只需要完成必要的初始化等操作,数据传输的整个过程都由DMA控制器来完成,在主存和外设之间建立直接的数据通路,效率很高!

    • 在一个总线周期结束后,CPU会响应DMA请求开始读取数据
  • **通道:**也是一种处理机,内部具有独立的处理系统,使数据传输独立于CPU

总线结构

从广义上来讲:任何链接两个以上电子元器件的导线都可以称为总线,通常分为以下三类:

内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线

系统总线:是板级总线,用于计算机内部各部分之间的连接,具体分为数据总线(并行数据传输位数),地址总线(系统可管理的内存空间的大小),控制总线(传送控制命令)。代表由ISA总线,EISA总线,PCI总线。

外部总线:设备一级的总线,微机和外部设备的总线。代表的有RS232(串行总线-低速,长距离),SCSI(并行总线),USB(通用串行总线,即插即用,支持热插拔)

  • 题目中总线指的是系统总线,具体分为数据总线(并行数据传输位数),地址总线(系统可管理的内存空间的大小),控制总线(传送控制命令)。

系统可靠性分析

系统可靠性可以用平均故障间隔时间MTBF来衡量,公式为 MTBF/(1+MTBF)

平均无故障时间 MTTF=1/失效率
平均故障修复时间 MTTR=1/修复率
平均故障间隔时间 MTBF=MTTF + MTTR
系统可用性 =MTTF /(MTTF+MTTR)* 100%
串联,并联,混合模式
串联系统,一个设备部可靠,整个系统崩溃:
R = R1 X R2 X R3 …Rn
并联系统,所有设备都不可靠,整个系统才崩溃:
R =1- (1 -R1) X(1- R2) X(1- R3) …X(1-Rn)

学习资料

  • CPU工作原理:https://blog.csdn.net/Lucky_mzc/article/details/124235722

  • 指令流水线详解:https://blog.csdn.net/qq_44762290/article/details/119730632

  • Cache3种地址映射:https://blog.csdn.net/qq_54494937/article/details/120843738

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/9238.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python如何自动操作电脑桌面应用程序

前言 本文是该专栏的第2篇,后面会持续分享python的各种黑科技知识,值得关注。 熟悉python的朋友,都知道python可以做自动化,比如说selenium,pyppeteer,airtest等等。 但你是否听说过python可以来自动操作电脑桌面的应用程序呢,趟若临时接到某个需求,让你用python脚本…

基于zynq7100的OV5640摄像头照相机实验,提供工程源码和技术支持

目录1.设计架构2.工程简介3.zynq配置4.sd卡文件系统FATFS配置5.sd卡文件系统FATFS读写测试6.OV5640摄像头显示测试7.OV5640摄像头循环拍照测试8.OV5640摄像头按键拍照测试9.上板调试10.福利领取1.设计架构 设计框图如下&#xff1a; 采用Xilinx官方推荐的VDMA架构实现图像缓存…

TiDB丨一次TiDB GC阻塞引发的“惨案”......

前不久&#xff0c;从项目一线同学得到某集群的告警信息&#xff0c;某个时间段 TiDB duration 突然异常升高&#xff0c;持续时间6小时左右&#xff0c;需要定位到具体原因。 于是乎&#xff0c;我们就来一场关于TiDB GC阻塞的排查...... 分析过程 第一招 初步判断 既然…

Docker+nginx在CVM的机器远程发布hellogin

有两种方式&#xff0c;一种通过docker容器安装&#xff0c;一种是直接安装, 这里我们通过docker服务安装 常用操作 images是查询当前机器上所有的镜像有哪些 docker images删除镜像 docker rmi [MAGE ID ]可以查当前运行中的容器 docker ps -a开始/停止/删除容器 docker…

动态树的最值

一 问题描述 一棵树有 N 个节点&#xff0c;每个节点都有一个权值 Wi &#xff0c;有 4 种操作。 ① 1 x y &#xff0c;在两个节点 x、y 之间添加一条新边。因此&#xff0c;在这种操作之后&#xff0c;两棵树将连接成一棵新树。 ② 2 x y &#xff0c;在树集合中找到包含节…

LeetCOde-剑指46-把数字翻译成字符串

1、动态规划法 我们通过观察可以发现&#xff0c;假如我们使用数组dp[i]dp[i]dp[i]来记录前iii位可能构成的字符串个数&#xff1a;1、当新加入的第i1i1i1位和第iii位能够构成一个大于9小于26的数字时&#xff0c;dp[i1]dp[i]dp[i−1]dp[i1]dp[i]dp[i-1]dp[i1]dp[i]dp[i−1]&a…

容器化部署(k8s)任务调度平台xxl-job(部署过程及踩坑问题记录)

文章预览&#xff1a;1 部署过程&#xff08;下方ip代表服务器的ip哈&#xff09;1.1 制作服务打包镜像DockerFile1.2 制作执行脚本run.sh1.3 jar包上上传1.4 kuboard创建----配置信息2 踩坑问题记录2.1 日志抛出异常2.2 原因分析2.3 过程分析及解决2.4 执行调度测试导入sql等过…

Baklib|SaaS产品,实现企业流程数字化

正如许多科技潮流一样&#xff0c;“SaaS”这个词也逐渐成为企业经理们谈论的话题。然而&#xff0c;如果您对“SaaS”一无所知&#xff0c;您可能会感到困惑并容易忽略它。那么&#xff0c;什么是“SaaS”&#xff1f;它的优点是什么&#xff1f;它如何帮助企业实现数字化转型…

SSM+VUE+ElementUI实现宠物领养系统,期末大作业

SSMVUEElementUI实现宠物领养系统 系统角色 领养人&#xff0c;管理员 系统功能 本系统的功能主要分为四大模块&#xff1a; 领养人用户模块&#xff1a;注册、领养人登录、申请领养、查看小动物信息、发布留言领养机构员工用户模块&#xff1a;领养机构员工登录、增加小动…

地平线开发者社区真心话大冒险,邀你闯关!

Hello&#xff01; 各位初次见面的萌新和久经沙场的社牛 目前开发者社区已成立两年有余 感谢大家一路上的支持和理解 今天&#xff0c;我们也准备了一些小礼品 希望倾听大家作为用户和开发者的真心话 同时&#xff0c;也欢迎初次见面的萌新们一同冒险 期待陪伴大家走过更…

Protect Privacy from Gradient Leakage Attack in Federated Learning

wangjunxiao/GradDefense: Defense against Gradient Leakage Attack (github.com) Summary 针对DGA和DIA攻击&#xff0c;提出了一个轻量、保证训练准确性、够用的的防御机制。防御机制主要包括随机layer添加扰动&#xff0c;然后进行梯度补偿来减少噪声对模型准确性的影响。…

CORS处理跨域问题

“前后端分离的项目必然会遇到一个典型的问题——跨域问题。” 跨域 要解决跨域问题&#xff0c;首先得知道什么是跨域&#xff1f; 首先&#xff0c;跨域是访问的域名或IP、端口三者有一不同都属于跨域。&#xff08;注意请求路径不是&#xff09;&#xff0c;即使在本地测试&…

【计算机网络】学习笔记--第一章

【计算机网络】学习笔记--第一章基本概念端系统之间的通信客户-服务器方式&#xff08;C/S方式&#xff09;对等连接方式&#xff1a;三种交换方式电路交换&#xff08;Circuit Switching&#xff09;分组交换&#xff08;Packet Switching&#xff09;报文交换&#xff08;Mes…

centos7 安装与卸载 Mysql 5.7.27(详细完整教程)

目录 卸载 安装 卸载 1、关闭MySQL服务 systemctl stop mysqld2、使用 rpm 命令查看已安装的安装包 [nameVM-20-12-centos mysql1]$ rpm -qa|grep mysql 3、使用yum卸载安装的mysql [nameVM-20-12-centos mysql1]$ sudo yum remove mysql mysql-server mysql-libs mysql…

【LeetCode每日一题:775.全局倒置与局部倒置~~~维护前缀最大值】

题目描述 给你一个长度为 n 的整数数组 nums &#xff0c;表示由范围 [0, n - 1] 内所有整数组成的一个排列。 全局倒置 的数目等于满足下述条件不同下标对 (i, j) 的数目&#xff1a; 0 < i < j < n nums[i] > nums[j] 局部倒置 的数目等于满足下述条件的下标 …

Air780E连接点灯科技-LuatOS

前面发了腾讯云点灯以后&#xff0c;有朋友提到了点灯科技&#xff0c;人家都叫点灯科技了&#xff0c;那咱们学点灯必须连一下试试呀。本文将记录如何将设备连接点灯云平台&#xff0c;并通过手机进行远程控制 先上成果演示 一、点灯云准备 下载点灯科技的app-blinker&#…

Offsets 获取该行的起始索引 start=offsets (x)

获取数据列的第 x 行&#xff0c;通过 Offsets 获取该行的起始索引 startoffsets (x) 和下一行的起始索引 endoffsets (x1)&#xff0c;然后使用这两个索引通过 Bytes 获取具体数据对应的字节流 bytes.slice (start,end)&#xff0c;最后按照字段类型做相应的转换即可。 注&am…

QGC二次开发基础

文章目录 前言一、添加文件到QGC工程二、添加界面三、QML和C++交互四、信号与槽五、测试前言 QGC 4.2.4 一、添加文件到QGC工程 在qgroundcontrol/src目录下创建SimpleTest文件夹 在文件夹中创建SimpleTest.cpp、SimpleTest.h和SimpleTest.qml三个文件 在qgroundcontrol.p…

锁竞争导致的慢sql分析

线上在同步用户时&#xff0c;经常出现简单sql的慢日志。根据方法找到代码&#xff0c;发现方法内使用redisson进行锁操作&#xff0c;waiTime和leaseTime都为3秒,数据库操作比较简单&#xff0c;只是一个简单的用户更新操作。代码简化后如下 Override Transactional(rollback…

客流分析统计摄像头可定制算法程序自动判断识别提醒

客流分析统计摄像头是一个专门为商业零售业企业开发的智能客流量统计分析系统。客流统计分析系统能实时、动态、准确、连续地记录着经营场地的客流的数据信息&#xff0c;既有当前客流又有历史客流&#xff0c;既有不同时段的&#xff0c;又有不同区域客流数据。 客流分析统计摄…