软考(软件设计师)学习总结 -- 计算机组成与结构

数据的表示

进制转换:
在这里插入图片描述

十进制转R进制 : 整数位短除法逆序,小数点后乘二取整正序
二进制转八进制与十六进制 : 从小数点处向两边,3/4位为一位转换
在这里插入图片描述

原码反码补码移码:

原码: 二进制形式,最高位为符号位,正的符号位为0,负数的符号位1
反码: 正数的跟原码一样,负数的反码除符号位外取反
补码: 正数的跟原码一样,负数的补码为反码 + 1
移码: 作浮点运算的介码,不管是正数还是负数,都在补码的基础上对符号位取反
在这里插入图片描述

数值的表示范围:

补码的表示范围多一个是因为 +0 和 -0 的补码相同,少占用一个编码。
在这里插入图片描述

浮点数运算:
在这里插入图片描述
两个浮点数进行运算时需要先进性对阶:将小阶向大阶对齐(阶数化大),同时位数右移n位(M化小)。
在这里插入图片描述

计算机结构

CPU结构(运算器与控制器的组成):
在这里插入图片描述
运算器:

算术逻辑单元ALU: 跟运算相关
累加寄存器AC: 常用于ALU执行算数逻辑运算提供数据并暂存运算结果的寄存器
数据缓冲寄存器DR: 对内存储器进行读写操作的时候,用来暂存数据的寄存器
状态条件寄存器PSW: 记录运算中产生的标志信息,每一位单独使用,成为标志位(进位,溢出,中断…)

控制器:控制整个计算机各部件有条不紊的工作,其基本功能是取指令与执行指令

程序计数器PC: 用来存放指令地址,运行时用来获取下一条指令的位置。
指令寄存器IR: 存储正在执行的指令,存储位数由指令字长决定。
指令译码器ID: 分析指令的操作码,来决定操作的性质与分法。
时序部件: CPU执行指令时根据时序部件发出的时钟信号进行相应操作,在取指阶段读取指令,在分析和执行阶段读取数据。

输入输出方式

I/O设备管理软件一般分为四层:中断处理程序、设备驱动程序、与设备无关系统软件、用户级软件。
在这里插入图片描述

常用的输入输出方式有:无条件传输、中断、程序查询、DMA方式

程序中断

中断是一种非常重要的技术,输入输出设备和主机交换数据、分时操作、实时系统、计算机网络和分布式计算机系统中都要用到中断技术。为了提高响应中断的速度,通常把所有中断服务程序的入口地址(中断向量)汇集为中断向量表。

程序中断: 程序运行时,CPU暂时终止现行程序,而转去处理更紧迫的事件,在处理完成后CPU将自动返回原程序继续执行。

进行中断处理时,为了能够返回到被中断的程序继续执行,需要保护现场。实现多级中断嵌套时,可以使用堆栈来保护断点和现场。

中断响应时间: 从发出中断请求到开始进入中断服务程序所需的时间。

DMA:

直接内存存取DMA:在内存与I/O传送数据块过程中,不需要CPU的任何干涉,只需要CPU在过程考试启动与过程结束时的处理,实际操作由DMA硬件直接执行完成

在微机系统中,BIOS(基本输入输出系统),是一个固化到计算机内主板上一个ROM芯片上的程序,用来保存计算机最重要的基本输入输出的程序、开机自检程序、系统自动启动程序,可以从CMOS中读写系统设置的具体信息。

指令系统

局部性原理:

局部性原理主要是指计算机在处理相关的数据和程序的时候,一般都会有某一个时段集中的去访问某些指令或者读取某些空间的数据。
在这里插入图片描述
时间局部性:程序中某条指令被执行,则不久的将来,该指令可能再次被执行。
空间局部性:程序访问某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。
工作集理论::将频繁访问的页面的集合打包起来,使频繁访问的可以一起调入进来,短时间内不被替换出Cache,以提高效率。

寻址方式:

立即数寻址:操作数包含在指令中。
直接寻址:操作数存放在内存单元中,指令中给出操作数内存单元的地址。
寄存器寻址:操作数存放在寄存器中,指令中存放操作数的寄存器名。
寄存器间接寻址:操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中。
间接寻址:指令中给出操作数地址的地址。
相对寻址:指令地址吗给出一个偏移量,操作数地址等于本指令的地址加上该偏移量。
变址寻址:操作数地址等于编制寄存器的内容加偏移量。

CISC和RISC:

在这里插入图片描述

CISC 指令长度不固定,指令数量多,使用频率差别大,支持多种寻址方式,通过微程序控制技术实现。
RISC指令长度固定,指令数量尽量少,寻址方式少,增加了寄存器数目而减少了访问次数,采用硬布线的方式快速完成指令译码。

流水线:

在这里插入图片描述
流水线计算:

计算公式:*一条指令所需时间+(指令条数-1)时间最长的指令的一段
在这里插入图片描述

流水线吞吐率:

在这里插入图片描述

例:输入8条指令时的吞吐率:
在这里插入图片描述
TP=8/(3▲t*7+7▲t)=8/28▲t

流水线的加速比计算:
在这里插入图片描述

流水线的效率计算:当流水线的每一个工作段的时长是相等的情况,效率最高

在这里插入图片描述

Flynn分类法:
在这里插入图片描述

层次化存储结构

CPU对计算器的访问速度:寄存器 > Cache > 内存 > 外存

计算机系统中高速缓存一般采用SRAM,集成度低、速度快、成本高;内存一般采用DRAM,集成度高,但需要动态刷新;外存一般采用磁盘存储,速度慢、容量大、便宜。采用分级存储体系来解决速度、存储容量和成本之间的矛盾。

在这里插入图片描述

虚拟存储器由主存-辅存两级存储器组成,为用户提供一个比主存储器大得多的可随机访问的地址空间技术。

Cache:

Cache是高速缓存存储器,为了提高系统处理速度将主存部分存储空间中的内容(按照局部性原理选取的最常用或不久将使用的内容)复制到工作速度更快的Cache中,Cache与主存之间的映射都是由硬件自动实现的

Cache与主存之间的映射关系:
全相联映射:主存中任一块都可以映射到Cache中任一块。冲突概率低、空间利用率高、成本高、查表慢。
直接相联映射:主存中的某j块只能映射到Cache中满足特定关系的某i块。硬件简单、不需要相连存储器(一种按内容访问的存储器)、访问速度快、冲突率高、空间利用率低。
组相联映射:兼顾两种方式的优点,将主存与Cache按同样的大小划分为块。块与块之间采用直接映射,快内部采用全相联映射。

主存:
在这里插入图片描述

随机存取存储器(RAM),只读存储器(ROM),内存属于随机存取存储器,特点: 内存一旦断电,内存当中的数据都将被清除掉。只读存储器(ROM):断电之后依然能存储相应的信息。

存储器划分:
访问方式: 按地址访问寄存器、按内容访问寄存器
寻址方式:
随机存储器RAM:对于任何存储单元存入和读取数据,访问任何一个存储单元所需时间是相同的。
顺序存储器SAM:访问数据所需的时间与数据所在的存储位置相关,磁带是典型的顺序存储器
直接存储器DAM:介于随机与顺序存取之间的一种寻址方式。

主存的编址实际上就是将芯片组成相应的存储器。

例题:在这里插入图片描述
答案:B、A

磁盘工作原理:

在这里插入图片描述

例题:
在这里插入图片描述
在这里插入图片描述
答案:C、B

总线系统

在这里插入图片描述

总线结构:

  • 内部总线: 微机内部各个外围的芯片与处理器之间的总线
  • 系统总线: 微机中各个插件板和系统板之间的总线
  • 外部总线: 微机和外部设备的总线。

三总线结构:
数据总线DB:用来传输数据
地址总线AB:假设地址总线是32位,说明他代表的地址空间是232
控制总线CB:发送控制信号的总线

串行总线:将数据一位一位传输,数据线只需一根(双向两根),适合长距离数据传输,但是传输速度慢,性能不高。
并行总线:将数据多为同时传输,传输速度快,但是长距离下成本高。
专用总线:可以连接设备实现最佳匹配。

总线宽度: 总线的线数,即数据信号的并行传输能力。
总线带宽: 总线的最大数据传输率,即每秒传输的数据总量。总线宽度与时钟频率共同决定总店带宽。

可靠性分析

串联系统: 整个系统的子系统都必须正常运行,整个系统才正常。
在这里插入图片描述
并联系统: 并联是多个子系统并在一起,并联的时候只要有一个子系统正常运行,则整个子系统就能正常运行。
在这里插入图片描述
模冗余系统:
在面向一些高可靠性的系统的要求的时候,提高系统可靠性可以通过冗余的方式来进行(R1,R2…Rm,多个模块是独立的,都做同样职能,都做同样的计算,它们分别计算出结果,系统到底采纳哪一个结果则通过表决来决定,所以R1~Rm的结果都会汇总到表决器)少数服从多数。
在这里插入图片描述
混合系统:
从整体来讲,属于串行,可以先将中间并联和右边并列的分别求出可靠度,然后再看作一个串行,将可靠度累乘起来。
在这里插入图片描述

软件质量基础:可靠性、可用性、可维护性

可靠性: 系统对于给定时间间隔内、在给定条件下无失效运作的概率,MTTF/(1+MTTF),MTTF(平均无故障时间)
可用性: 给定时间点上,一个系统,能够按照规格说明正确运行的概率。MTBF/(1+MTBF),MTBF(平均失效间隔时间)
可维护性: 给定条件下,在规定时间间隔内,使用规定的过程和资源完成维护活动的概率。1/(1+MTTR),MTTR(平均修复时间)

差错控制

在这里插入图片描述
A、B的码距: 将A的编码变为B的编码需要改的位数。

校验方法:
奇偶校验:若有奇数个数据位出错,则可以检测出该错误并加以纠正。串口通信中使用奇偶校验作为校验方法。

循环冗余校验: 采用模二运算(按位异或)来构造校验位进行校验(可以检错,不可以纠错),广泛用于数据通信领域和磁介质存储系统中。
循环校验码CRC:利用生成多项式进行编码,由
k个数据位后跟r个校验位
组成。
在这里插入图片描述

在这里插入图片描述

海明校验码:

海明码利用奇偶性进行检错和纠错,被广泛应用于内存。
海明码数据位与校验位之间关系:2k≥n+k+1,n是数据位,k是校验位

在这里插入图片描述

热门文章

暂无图片
编程学习 ·

C语言二分查找详解

二分查找是一种知名度很高的查找算法,在对有序数列进行查找时效率远高于传统的顺序查找。 下面这张动图对比了二者的效率差距。 二分查找的基本思想就是通过把目标数和当前数列的中间数进行比较,从而确定目标数是在中间数的左边还是右边,将查…
暂无图片
编程学习 ·

GMX 命令分类列表

建模和计算操作命令: 1.1 . 创建拓扑与坐标文件 gmx editconf - 编辑模拟盒子以及写入子组(subgroups) gmx protonate - 结构质子化 gmx x2top - 根据坐标生成原始拓扑文件 gmx solvate - 体系溶剂化 gmx insert-molecules - 将分子插入已有空位 gmx genconf - 增加…
暂无图片
编程学习 ·

一文高效回顾研究生课程《数值分析》重点

数值分析这门课的本质就是用离散的已知点去估计整体,就是由黑盒子产生的结果去估计这个黑盒子。在数学里这个黑盒子就是一个函数嘛,这门课会介绍许多方法去利用离散点最大化地逼近这个函数,甚至它的导数、积分,甚至微分方程的解。…
暂无图片
编程学习 ·

在职阿里5年,一个28岁女软测工程师的心声

简单的先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少) ​ 编辑切换为居中…
暂无图片
编程学习 ·

字符串左旋c语言

目录 题目: 解题思路: 第一步: 第二步: 第三步: 总代码: 题目: 实现一个函数,可以左旋字符串中的k个字符。 例如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符…
暂无图片
编程学习 ·

设计模式--观察者模式笔记

模式的定义与特点 观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式&#xf…
暂无图片
编程学习 ·

睡觉突然身体动不了,什么是睡眠痽痪症

很多朋友可能有这样的体验,睡觉过程中突然意识清醒,身体却动弹不了。这时候感觉非常恐怖,希望旁边有一个人推自己一下。阳光以前也经常会碰到这样的情况,一年有一百多次,那时候很害怕晚上到来,睡觉了就会出…
暂无图片
编程学习 ·

深入理解C++智能指针——浅析MSVC源码

文章目录unique_ptrshared_ptr 与 weak_ptrstd::bad_weak_ptr 异常std::enable_shared_from_thisunique_ptr unique_ptr 是一个只移型别(move-only type,只移型别还有std::mutex等)。 结合一下工厂模式,看看其基本用法&#xff…
暂无图片
编程学习 ·

@TableField(exist = false)

TableField(exist false) //申明此字段不在数据库存在,但代码中需要用到它,通知Mybatis-plus在做写库操作是忽略它。,.
暂无图片
编程学习 ·

Java Web day15

第十二章文件上传和下载 一、如何实现文件上传 要实现Web开发中的文件上传功能,通常需要完成两步操作:一.是在Web页面中添加上传输入项;二是在Servlet中读取上传文件的数据,并保存到本地硬盘中。 需要使用一个Apache组织提供一个…
暂无图片
编程学习 ·

【51nod 2478】【单调栈】【前缀和】小b接水

小b接水题目解题思路Code51nod 2478 小b接水 题目 输入样例 12 0 1 0 2 1 0 1 3 2 1 2 1输出样例 6解题思路 可以发现最后能拦住水的都是向两边递减高度(?) 不管两个高积木之间的的积木是怎样乱七八糟的高度,最后能用来装水的…
暂无图片
编程学习 ·

花了大半天写了一个UVC扩展单元调试工具

基于DIRECTSHOW 实现的,用的是MFC VS2019. 详见:http://www.usbzh.com/article/detail-761.html 获取方法 加QQ群:952873936,然后在群文件\USB调试工具&测试软件\UVCXU-V1.0(UVC扩展单元调试工具-USB中文网官方版).exe USB中文网 USB中文…
暂无图片
编程学习 ·

贪心(一):区间问题、Huffman树

区间问题 例题一:区间选点 给定 N 个闭区间 [ai,bi]请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。 输出选择的点的最小数量。 位于区间端点上的点也算作区间内。 输入格式 第一行包含整数 N,表示区间数。 接下来 …
暂无图片
编程学习 ·

C语言练习实例——费氏数列

目录 题目 解法 输出结果 题目 Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:「若有一只免子每个月生一只小免子,一个月后小免子也开始生产。起初只有一只免子,一个月后就有两只免子,二个月后有三只免子…
暂无图片
编程学习 ·

Android开发(2): Android 资源

个人笔记整理 Android 资源 Android中的资源,一般分为两类: 系统内置资源:Android SDK中所提供的已经定义好的资源,用户可以直接拿来使用。 用户自定义资源:用户自己定义或引入的,只适用于当前应用的资源…
暂无图片
编程学习 ·

零基础如何在短时间内拿到算法offer

​算法工程师是利用算法处理事物的职业 算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。 如果一个算法有缺陷,或不适合于某个问题,执…
暂无图片
编程学习 ·

人工智能:知识图谱实战总结

人工智能python,NLP,知识图谱,机器学习,深度学习人工智能:知识图谱实战前言一、实体建模工具Protegepython,NLP,知识图谱,机器学习,深度学习 人工智能:知识图…
暂无图片
编程学习 ·

【无标题】

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…