软件设计师备考笔记(二)计算机组成与体系结构
目录
总概
数据的表示
计算机结构
Flynn分类法
CISC和RISC
流水线技术
系统存储
总线系统
可靠性
校验码
总概(题型、考点)
- 分值:6分左右,占比高
各题型考点及需要的掌握程度
数据表示
进制转换
存储体系中:在计算多少块芯片组成多大的存储空间时需要用到进制转换
网络部分:IP地址,子网掩码等
原码、补码、反码
计算机结构:考频高
寄存器划分问题:能把寄存器正确划分如运算器和控制器
常见寄存器的作用;
Flynn分类法
- 把计算机分为四大类,但多单只存在理论
CISC和RISC:
- 能区分两种计算机指令集的特点
流水线技术
- 考察计算方面知识;
存储系统:
理解相关概念
懂得相关计算方法
总线系统
- 了解基础分类和概念
可靠性
- 串联、并联、串联并联混合情况的计算
校验码
了解校验码的作用
了解CRC和海明校验码
数的表示
进制转换
N进制转十进制
每一位数与其权值之和就是十进制表示的值
- 权值:R进制时,第一位数表示R0、第二位数表示R1……
- 权值:R进制时,第一位数表示R0、第二位数表示R1……
十进制转N进制:辗转相除法
转为几进制时左边就除以几;二进制除2、四进制除4;
二进制、八进制、十六进制的特殊转换
二进制转八进制时从右往左数每三位数表示一个八进制数值;
二进制转八进制时从右往左数每四位数表示一个八进制数值;
源码、补码、反码、移码
演化关系
由于普通二进制无法表示负数;所以使用首位表示正负,即原码;
但是,直接使用原码做计算会出现很多错误;如1-1=-2;
然后发现,如果负数符号位不变,后面真值取反,再计算就能得到正确答案;
- 反码+反码=反码;然后还要对结果取反
虽然结果对了,但是0有两种形态,即正0和负0;这并不符合生活常识;
于是生成了补码,正数的补码是本身,而负数的补码等于反码+1;
补码+补码=补码;然后还要对结果再取补码;
补码的-1用 1000 0000 表示;(因为补码没有-0,所以所有的负数都要-1表示)
补码的好处
现在计算机中使用补码保存数据而非常用的二进制;
只有补码能够表示正负、直接运算能得到正确结果、只有一个0;
补码能把减法转换为加法运算,使计算机硬件只用到加法器;
四种码的定义
原码:
- 首位用来表示数值正负的二进制字符串,0表示正数、1表示负数;
反码:
正数的反码是它本身,负数的反码是:最高符号位不变其位取反;
反码相加后结果取反得到计算加法后得到负数正确值
补码:
正数时是它本身,负数时在反码的基础上+1
用 1000 0000表示-1;
移码:
对首位进行取反;
表示在数轴上看着正常点,因为正数的首位是0而负数首位是1,此时负数在正数右边,不符合常理,所以出现移码;
表示范围
因为补码没有-0所以负数范围多了一个数;
浮点数运算
浮点数实际上就是科学计数法的方式
注意事项
对浮点数相加时,需要先转换为同阶才能计算
结果需要格式化:小数点左边只能是有一位数,且取值范围位1-9;不能是0其他;
计算机结构
主机的基本构成
- 主机只包括cpu和主存储器(内存),平时电脑中的显卡等实际上是外设
两侧绿框内为寄存器
运算器和控制器构成
运算器
加法减法等运算在运算器里面做
算术逻辑单ALU:算数相关
累加寄存器AC:实际是通用寄存器,运算中存储需要运算的值时用到
数据缓冲寄存器DR:对内存进行操作时暂存数据
状态条件寄存器PSW:存储运算过程中相应的标志位的,比如 运算的进位、溢出、中断等状态的保存
控制器
需要控制部件的运作,控制整个cpu的交互,由控制器完成
程序计数器PC:程序运行时,要运行下一条指令,下一条指令在哪个位置就是由PC完成的,顺序执行则原地址+1,否则+更多
指令寄存器IR:指令相关的都是控制器
指令译码器:
时序部件:
Flynn分类法
分类方式
依靠指令流和数据流分类
- 指令流和数据流都是两种分类(单和多),因此两者间组合能组成4总计算机体系结构;
四种计算机体系结构
单单:以前的PC机,单核cpu,现在的基本都是多核,不属于单单了
单多:,一条指令多个运算部件同时计算,不过每个部件输入不同,适合对数组处理(对很多数据进行同种操作)。阵列处理机。
多单:理论模型,不具备意义和价值
多多:多处理器、计算机集群
CISC与RISC(高频考点)
CISC:计算机没有大规模通用时提出的,一个机构需要计算机,从硬件到指令都是定制的。之后再在指令基础上编程。每个机构的计算机不通用;
RISC:计算机成为了大众品,所有机构都是想买一台计算机回去,装上软件就能跑。于是只留下基本指令,复杂指令靠基本指令完成(乘法换成加法)
引入了寄存器:绝大部分操作是针对寄存器操作的,因为寄存器快的一批
因为精简指令集指令重复指令更多,所以更适合寄存器;
流水线
概念
传统模式:安装一辆车,是吧所有零件给一群工人,工人们自己安装;但是装车有先后顺序,同一时刻下只有一部分工人在工作;
改进:根据车辆的安装流程建立流水线,当前工人完成一个步骤后就将该车辆传给下一个步骤的工人,而当前工人处理下一辆车;流水线启动后每个工人的工作时间都能最大效率利用;
关键点:计算机处理一个事务(车辆安装)时,可将该事务分为多个步骤(车轮、车门),且每个步骤由不同的部件(不同的工人)负责;
上图中下方的两张图空白区域都表示对应部件没有工作的时间;
未使用流水线前空闲率较高,总时长也高;
流水线计算
总时长计算
理论公式:一个完整周期的时长+(N-1)*最耗时步骤时长
- 最耗时步骤时长视为流水线周期
实践公式:(k+n-1)*流水线周期;
- k为流水线的步骤数;实际上是将一个完整周期时长等同化为 k个流水线周期;
基本用理论公式,没有正确答案就用实践公式
答案:理论公式时203;实践公式是204;
吞吐率计算
- 单位时间内能完成的任务数量
加速比
- 不使用流水线和使用流水线的总时长的比值;
流水线效率
流水线设备的利用率
计算方式
将时空图画出来后,计算阴影面积;
阴影面积和总面积的比值就是利用率
层次化存储结构
整体结构
- 快的容量一般很小,慢的容量大
CaChe
是一种性价比方案,通过按内容存储的方式运转,也叫相联存储器;速度远高于按地址存储
Cache一般以k、M为单位;
虽然空间很小,但是加了几Kcache偶计算机执行速度会快很多,因为计算机普遍有局部性原理
局部性原理:刚刚执行的指令又要执行
Cache就相当于一个循环体,能直接执行循环,而不是经过内存等流程才调用指令(传统模式);
一初始化语句执行一遍,循环执行一百万次,频繁执行相同内容,这时放入cache读取,速度快很多
计算系统平均周期
计算公式:
- 命中率*访问cache所需时长+(1-命中率)*内存访问时长
- 命中率*访问cache所需时长+(1-命中率)*内存访问时长
局部性原理
计算机处理相关的数据和程序的时候,一般会出现某一时间段集中访问某些指令,或集中读取某些空间的数据
分为
空间局部性:如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。
- 解决方法:把需要频繁访问的页面的集合打包起来,一起放入cache不用进内存,提高效率
时间局部性:被引用过一次的存储器位置在未来会被多次引用(通常在循环中)
主存的分类
随机存取存储器
- 即RAM:内存一般使用这种,断电就数据消失;
只读存储器
- 即ROM:掉电后信息还在,一般存储bios系统的芯片是ROM存储芯片
主存编址(计算题)
主存的编址问题就是把芯片组成相应规格的的存储器问题
- 常见问题:什么规格的芯片,要多少块,组成按什么方式编址的存储空间。
N*M位的存储器,看作有N个地址空间,每个地址空间大小为 M bit ;
- 8*4,有八个地址空间,每个地址空间存储四个bit的信息
- 8*4,有八个地址空间,每个地址空间存储四个bit的信息
计算
1.先将c7fff加一,变为c8000
2.减法后,得到1c000(借位时相加16而不是10)
3.转为十进制,约为112k
磁盘结构和参数
- 考试内容开始缩减
常见的磁盘
软盘
机械硬盘
ps:固态硬盘(SSD)不是磁盘结构
磁盘结构
多个涂有特殊材质的环形盘面叠加起来(多叠盘面);
每个盘面都有配套的磁头;
盘面划分为多个扇区
一个碟可以有两个盘面,注意
工作方式
磁盘工作时,盘面旋转,磁头沿盘面半径方向摆
要读取的数据和磁头在不同的扇区的时候,盘面转动,直到该扇区到达磁头位置
盘面一般只能一个方向旋转,所以最坏的可能性下,盘面需要转动约一圈,磁头才能到目标区域
若读取一连串数据,并处理时,若读取到第二个数据时,缓冲区仍不可放入,那么将跳过这次读取,盘面继续旋转,直到某次转动到该扇区时,缓冲区也可以放入;
盘面为了到达指定位置转动消耗的时间称为 等待时间
盘面数据读取时间计算
- 往往会结合缓冲区一起考
单缓冲区
- 只有一个缓存区,当我把数据读取出来后,就放入缓冲区中开始处理
问题1解析
当缓冲区处理数据的时候,磁盘转动不会停下(一直匀速转动),所以当缓冲区处理完R0数据时,磁头已经在R2了,而题目要求顺序读取,所以需要再转动一圈才能到R1
所以R0~R9 读取、处理并将扇区挪到正确位置需要33+3毫秒(一圈+一个扇),R10相当于不用转动需要6毫秒(3ms读取数据+3ms处理数据;),所有加起来花费366ms
问题2解析
- 右边是优化后的磁盘分布,这种方式6秒一次(3ms读取数据+3ms处理数据后,刚好挪动到下一数据所在位),11次共66毫秒
总线
三种分类
内部总线
微机内部各个外围芯片与处理器间的总线
芯片级别
系统总线
微机中各个插件板和系统板间的总线
插件板层级(例如:VGA口、PCI接口)
外部总线
- 微机和外部设备的总线
系统总线的分类
数据总线:传输数据的
- 32位计算机,表示计算机一个字是32各bit位。总线宽度就是32各bit位,一个周期能传输的数据量就是32个bit位
地址总线:
假设地址总线是32位的,表示它代表的地址空间是 32个bit位,2^32–>4G;
32位计算机能管理的内存最大4g,有的时候会调用一些总线做其他用途,内存会更小
- 硬件支持(地址总线64位时)时才能安装64位
控制总线:发送相应控制信号
可靠信分析
串联系统与并联系统
串行
- 所有系统都必须正常运行
并联
- 有一个能用系统就正常运行
可靠度与失效率计算方法
串联
- 可靠度:R=R1R2R3……Rn
- 失效率:入=入1+入2+入3……+入n
- 失效率公式实际上时近似公式,只有子系统多且失效率极低时适合使用;
并联
可靠率:R=1-(1-R1)(1-R2)……*(1-Rn)
即,1-所有系统同时失效的概率;
失效率(常用):1-可靠率
正经公式为下图中 μ 的计算方式;
N模冗余模型
几乎不考
少数服从多数原则,R1到Rm给出的答案中,数量最多的视为最终结果;
可靠性:带入下图公式
串并联混合系统
常考
转换为并联系统或串联系统再计算;
下图转为了串联系统计算,即将两个并联计算出结构后,当成一个系统,形成串联再计算;
差错控制
保证数据传输后能发现错误,并纠正;
分为两类
检错:检查错误;
纠错:检查错误,并将错误纠正;
ps:能 纠错的前提是 网络稳定 ,即使发生数据错误也不会错的太多;
码距
编码过程中往往通过增大码距的方式达到检错效果
原理:把每一个bit都重复多次,那么接收到数据之后,如果该bit上,绝大部分都是1只有极少数是0,那么可以认为该bit正确值为1;(类似N模冗余模型)
当码距为2时,有检错能力(两个bit值不同,则该bit位错误)
当码距位3时,有纠错能力(网络稳定情况下),有两个bit为1,一个bit为0,那么该bit实际表示为1;
循环校验码CRC
只能检错不能纠错
原理:进行信息编码时,尾部加入校验信息,让编码后的数据能够和循环校验码的生成多项式(会给出)相除,余数为0;如果接受方校验时,余数不为0则传输出现了错误
计算过生成数据编码时用到的除法是模2除法
实际是将数据段处于公式的将余数放入原数据段后面,那么生成好的编码除以公式后,余数一定为0;
和商无关,不用管商是什么;
模2除法
1、被除数的首位为1,商为1
2、被除数的首位为0,商为0
3、模2除法等同于按位异或,要保证每次除完首位都为0,才能进行右移
4、如果右移后,被除数首位为零,就除以全零(而非除数)
5、计算时每次右移一位,当被除数的位数小于除数,其为余数
CRC下的模2除法
因为不用考虑商是否正确,所以遇到前面是 0 时,可以直接将0跳过;
- 跳过几个0,商就增加几个0
- 跳过几个0,商就增加几个0
PS:模2算法,和跳过0的方式计算,得到的余数相同;
异或
如果a、b两个值不相同,则异或结果为1。
如果a、b两个值相同,异或结果为0。
口诀:相同取0,相异取1
CRC码计算
1.在原始报文后补多项式二进制位数-1个0
2.将公式转化为二进制码
- 有几次方就表示该权值对应的二进制位位1,没有则为0;
3.用数据段除(模2除法)以公式转换的码,当余数少于公式转换来的码的二进制位数时,剩下的余数视为CRC码
4.用余数把刚刚补位的0替换掉,就是完整的待传输数据
海明码(高频、难点)
可以检错也可以纠错
校验位在编码信息中的2的N次方位上,N=0,1,2,3……
如果放1个信息位,那么需要3位长度的数据串表示
- 1号位和2号位是校验位;
如果放2个信息位,那么需要5位长度的数据串表示
- 1、2、4位是校验位;
校验位和信息位的关系
存储相应信息位需要的数据位数 公式
2^r>=N+r+1
N位信息位的个数;
r是校验位的个数;
校验位的计算
1.将信息位化为二进制
例:
7=22+21+2^0;
6=22+21;
5=22+20;
2.若有对应权值,则该权值的具体值对应的校验位受该信息位影响;
例
- 5、6、7号位都有22这一权值,22=4,即4号位受5、6、7号位影响;
3.校验位的具体值等于:对他有影响的所有数据为对应的值的异或
例
- 因为5、6、7号位影响4号位,所以4号位的值位(I4异或I3异或I2);其中I4、I3、I2分别表示7、6、5号位的具体值;
- 因为5、6、7号位影响4号位,所以4号位的值位(I4异或I3异或I2);其中I4、I3、I2分别表示7、6、5号位的具体值;
纠错方法
假设其它位置信息都对,有一位出错了;
- 例:上图中右下角图的001变成了000;
接收到信息后按原来产生校验位的方式再生成一次校验位;
把收到的校验位和产生的校验位做异或操作;
- 000和001异或后得到 001;
异或后的结果就能表示第几个位置信息错了;
这时只要把这位数取反就能纠正错误了;
软件设计师备考笔记(二)计算机组成与体系结构相关推荐
- 软件设计师备考笔记(一)软考概述
目录 考试的历史 培训课程安排计划 推荐参考书籍 策略:先建体系,后整理知识点 幸福曲线 考试大纲 考试形式 学习方法: 历史 从日本引进的考试:以前叫高级程序员考试,IT领域细化后分为了软件设计师: ...
- 软件设计师备考笔记(炸薯条的视频)
视频还没看完(软件工程上下.算法.试题四),排版还没拍好,2022上半年考试凉了,下半年又凉了.哎,明年再战吧 目录 计算机网络对用户"透明"是什么意思? RISC与CISC 流水 ...
- 软件设计师备考笔记(十)软件工程(开发模型、结构化设计、软件测试)
目录 软件开发模型 信息系统开发方法 需求分类 结构化设计 软件测试 软件开发模型 瀑布模型 历史 盛极一时,但被淘汰:有重大缺陷,会导致项目失败(延期.超支.做不下去) 注意事项:每个阶段(绿框)末 ...
- 软件工程概述(软件设计师备考笔记)
目录 第九章.软件开发模型(重点) 第一节.瀑布模型 第二节.原型.演化模型.增量模型(解决用户需求分析困难) 第三节.螺旋模型(强调风险分析) 第四节.V模型(强调测试) 第五节.喷泉模型与RAD( ...
- 软件设计师备考笔记(四) 数据库系统(重点)
目录 数据库模式 ER模型 关系代数于元组演算 依赖关系 规范化理论 并发控制 数据库完整性约束 分布式数据库 数据仓库与数据挖掘 考法 规范化理论和关系代数必考上午题目 分布式和数据仓库等下午可能出 ...
- 数据库系统(软件设计师备考笔记)
目录 第三章.数据库系统(重点) 第一节.数据库概述 第二节.数据库系统--三级模式-两级映射 第三节.数据库设计过程 第四节.ER模型 第五节.关系代数(必考) 第六节.规范化理论--函数依赖 第七 ...
- 软件设计师备考笔记(五)计算机网络
目录 七层模型 常见协议 计算机网络的分类 网络规划与设计 IP地址与子网划分 HTML常见标签 网络接入技术 IPv6 信息安全 网络安全–防火墙 七层模型 历史于发展 计算机网络就是构建在七层模型 ...
- 数据结构与算法应用(软件设计师备考笔记)
目录 第十二章.数据结构及算法应用 第一节.分治法 第二节.回溯法 第三节.贪心法 第四节.动态规划法 第五节.哈夫曼编码 第十二章.数据结构及算法应用 第一节.分治法 其基本思想是把一个比较大的.复 ...
- 软件设计师考点笔记二
第二章 操作系统 进程管理-进程的状态 三态模型和五态模型 前趋图 主要理解任务并行和先后关系. 进程的同步与互斥 互斥:同一时刻只允许一个人操作. 同步:是指在互斥的基础上(大多数情况),通过其它机 ...
最新文章
- C#中DateTime.Now.Ticks的用法和说明
- CORS在Spring中的实现
- window.open 打开新窗口被拦截的其他解决方法
- python3-numpy IO load()、save()、savez()、loadtxt()、savetxt()、tofile()、fromfile()
- Python常用模块集锦
- unzip直接覆盖解压
- android view 平滑,Android移动view动画问题(让移动更平滑)
- 基于HyperVID数据集训练自己的车型识别系统
- 自学单片机能找到工作吗?能有出路吗?
- php获取当前页面链接_php怎么获取当前完整url地址
- ireport java 变量_iReport —— 使用 JavaBean 作为数据源
- 一个移动开发老码农的书单
- Rollup-前端模块化打包工具入门
- Obsidian基本使用
- 利用计算机画统计图.doc,信息技术应用利用计算机画统计图.pptx
- 痛失PC霸主的联想,刘军将迎来艰难之战
- catia怎样倒2d_CATIA的3D图怎么完美转换成CAD的2D工程图
- 分享通达信选股公式源码
- Caffe源码(三):layer 分析
- HTML转换成PDF 指定网页转换PDF(实际上是截取网页) pdf.js , dompdf , html2ps , wkhtmltopdf