补充:
- 2.22 三层C/S体系结构
- 2.22 寻址方式
- 2.23 相联存储器
2.01 计算机组成与体系结构前言
本章节分值为6分
数据的表示
2.02 数据的表示(进制的转换)
R转十进制:按权展开法
十进制转R进制:短除法
二进制转八进制和十六进制
二进制转八进制:
- 每三个二进制位可以对应一个八进制位【1对3】
- 从右向左每3个分一段,不足的时候补0
二进制转十六进制:
- 每四个二进制可以对应一个十六进制位【1对4】
- 从右向左每4个分一段,不足的时候补0
- 注:十六进制中10开始为A,后面以此类推为11,12,13,14,15(B,C,D,E,F)
例题讲解【2017上】
要判断字长为 16 位的整数 a 的低四位是否全为 0,则( )。
问题1选项
A.将a与0x000F进行“逻辑与”运算,然后判断运算结果是否等于0
B.将a与0x000F进行“逻辑或”运算,然后判断运算结果是否等于F
C.将a与0x000F进行“逻辑异或”运算,然后判断运算结果是否等于0
D.将a与0x000F 进行“逻辑与”运算,然后判断运算结果是否等于F
答案:A
解析:
- 本题考查计算机组成原理中数据运算基础知识。
- 在逻辑运算中,设A和B为两个逻辑变量,当且仅当A和B的取值都为“真”时,A与B的值为“真”;否则A与B的值为“假”。当且仅当A和B的取值都为“假”时,A或B的值为“假”;否则A或B的值为“真”。当且仅当A、B的值不同时,A异或B为“真”,否则A异或B为“假”。 对于16位二进制整数a,其与0000000000001111(即十六进制数000F)进行逻辑与运算后,结果的高12位都为0,低4位则保留a的低4位,因此,当a的低4位全为0时,上述逻辑与运算的结果等于0。
2.03 数据的表示(原码,反码,补码,移码)
原码
- 将数转为二进制,不足的补0
- 最高位是符号位【前提带符号位】(1为负数,0为正数)
- 不能做加减运算【所以提出了其他的编码方式】
反码
- 正数和原码一样
- 负数:符号位单独处理,剩余位置按位取反(原码基础上)
- 反码做1-1运算:最高位表示负数,后面位数取反得到原码0,则结果是
-0
补码
- 正数和原码一样
- 负数:在反码的基础上
+1
- 反码做1-1运算:1+(-1),结果是0
移码
- 一般用来做浮点运算当中的阶码
- 正负数:给首位取反(补码的基础上)
- 移码由来:由于补码正数是0,在数轴上不好表示(思想观念颠倒),但是用移码就可以表示
- 反码做1-1运算:在移码当中1为正数,所以结果还是0
数值表示范围
- 用8bit位(一个字节)来表示原码的范围用公式算
- 补码范围比原码和反码大的原因:
- 在原码和反码中正0和负0是两种不同的编码
- 原码正0【00000000】和负0【10000000】
- 反码正0【00000000】和负0【11111111】
- 补码正0和负0是相同的编码【00000000】,所以少占用一个编码【位置】
- 所以补码的取值范围要比原码和反码多一个
- 在原码和反码中正0和负0是两种不同的编码
2.04 数据的表示(浮点数运算)
计算机中的浮点数基本概念:
- 针对浮点数进行的相关运算操作
- 计算机中讲到的浮点数其实就是数学当中的科学计数法表示数的方式
浮点数进行加减的运算
- 先对阶
- 指数保持一致【低阶往高阶对】
- 进行尾数的计算
- 结果格式化【前提是不符合浮点数的运算规则(0或1以上的数都不行)】
- 比如结果为:0.119x103就要格式化为:1.119*x102
- 比如结果为:11.9x103就要格式化为:1.119*x104
浮点数补充知识
- 基数可为(2,8,10,16)等
例题讲解【2021下】
考察:数据的表示综合题
计算机结构
2.05 CPU结构(运算器与控制器组成)
计算机结构中的主机与机箱主机的区别:
- 机箱主机内部包括很多比如硬盘,声卡等都属于外设
- 计算机结构中的主机只包括两部分
- CPU
- 运算器
- 控制器
- 内存【主存储器】
- CPU
运算器
基本思想和工作是:做运算的职能
构成:
- 算术逻辑单元ALU:和运算相关【是能实现多组算术运算和逻辑运算的组合逻辑电路。】
- 累加寄存器AC:存一些需要运算的值
- 数据缓冲寄存器DR:在对内存储器做读写操作的时候,用来暂存数据的
- 状态条件寄存器PSW:用来存储在运算的过程中的相关的标志位
- 标志位的概念:运算有时候会溢出,中断等状态的信息需要保存
控制器
基本思想和工作是:控制整个cpu的交互
构成:
- 程序计数器PC:在进行程序运行的时候,运行完当前指令后要进行下一条指令,所以需要知道下一条指令的位置
- 指令寄存器IR:根据地址找到指令【把指令存放到这里】
- 指令译码器ID:这里的指令就是在计算机中有特殊含义的(0,1)二进制字符串【计算机会通过指令移码器来对(0,1)二进制字符串进行翻译,然后来控制特定的软硬件来完成这些功能】
- 时序部件:中间涉及的一些时序控制信号和时序部件
例题讲解【2021上】
Flynn分类法
2.06 Flynn分类法简介
- Flynn分类法从指令流和数据流两个维度来划分
- 指令流和数据流都知识理论层次上的模型
- 单指令流单数据流SISD:
- 应用:单片机
CISC与RISC
2.07 CISC与RISC【考察高,掌握】
考察形式:概念的区别比较
两者的区别:
CISC:
- 复杂
- 不主流
- 背景:在电脑没有普及的时候,呢时候要一台电脑需要定制包括指令系统
- 可变长的指令:指令在系统当中会有一个二进制的编码,编码的长度可以不同
RISC:
- 精简
- 主流
- 背景:随着电脑的普及,想要下一个软件就能跑,通用能力提高,所以就把指令系统精简了,复杂的指令通过精简的来实现。
- 为了提高效率,大量引入了寄存器【只有Load】
- 采用硬布线逻辑(难设计)也是为了提高效率【也称为:组合逻辑控制器】
例题讲解【2021上】
流水线技术【掌握】
考察内容:计算
2.08 流水线的基本概念
执行指令时的步骤为:取值,分析,执行。【也有多段的看题】
流水线主要在封装的环节
2.09 流水线周期及流水线执行时间计算
考试考察:
- 流水线周期计算
- 用流水线执行时间计算公式时先考虑理论公式,如果考试没有相应答案再考虑实践公式
流水线周期:为执行时间最长的一段
- 是指一条指令分成的三个部分当中最长的呢一段时间
- 比如:做一个事情分为几个步骤,其中最耗时的步骤
流水线执行时间计算公式:1条指令执行时间+(指令条数-1)*流水线周期
- 理论公式:(t1+t2+…+tk)+(n-1)*▲t
- 实践公式:(k+n-1)*▲t
- 将指令中每一个不同时间的段都看成一个的流水线周期。
- 指令被分为几段这里的k就是几
2.10 流水线吞吐率计算
2.11 流水线加速比计算&&流水线的效率
流水线加速比计算
- 加速比越高越好
前面例题做讲解:
- 例题讲解:不使用是500,使用是203
流水线的效率
- 虽然用了流水线,依然会浪费很多时间片是浪费的,所以有多少时间片是利用上的呢,这就是流水线的效率。
- 提出这个概念的涵义:如何设计流水线让其效率最高
- 一般时间段都一样的时候效率最高
存储系统
2.12 计算机层次化存储结构
考点掌握:
- 存储整体的结构
- cache相关的知识
- 内存需要掌握的知识
引入cache的目的
- 内存到cpu的过程中,不需要cache也可以,但是加上后效率提高很多
- 应用到了时间局部性原理【就是一个功能使用完之后,可以下一次还会接着使用,如:for】
- 将这些循环性质的存到cache中时,遇到循环就只是cpu和cache做交互,性能就提高很多
- 同理外存要运行的东西也会先存入到cache当中
2.13 Cache的基本概念
考点掌握:
- Cache存取的平均周期时间的计算
访问Cache的命中率概念::
- 当cpu处理某个数据的时候,首先考虑cache,当这个数据在cache当中就称为命中。这个过程中访问的概率就称为
访问Cache的命中率
- 如果没有在cache当中再考虑内存
- 考点:Cache采用静态随机存储器SRAM
结论:
- 用了cache之后是50ns,光用内存是1000ns,这样一看速率提高了20倍
补充:
- 算上cpu:存储器最快的是寄存器,第二就是Cache
- 在计算机存储体系当中,访问速度最快的是Cache
2.14 时间局限性与空间局限性【局部性原理的精讲】
局部性原理:计算机在某一时段,集中的去访问某些指令,某一时段去读取某一空间的数据
由来:解决速度快的成本高,只能做小容量。而成本低的大容量的速度又很慢
时间局部性:刚刚访问完的数据再次访问【for循环存入到cache中】
空间局部性:程序访问一个空间之后立即访问了临近空间的时候【比如数组】
2.15 随机存取存储器与只读存储器
考点:主存的编址
主存的分类
- 考点:主存主要采用动态随机存储器DRAM
随机存取存储器:
- RAM
- 比如:内存
- 特点:如果断电其中的数据会清除掉
只读存储器:
- ROM
- 比如:硬盘
- 特点:断电后仍然可以存储相应的信息
主存概念的补充
个人总结:
随机存取存储器:【采用MOS管,存储信息】
- SRAM和DRAM都是采用MOS管存储信息的。
- SRAM是静态,由于SRAM不需要刷新电路就能够保存数据,所以具有静止存取数据的作用。
- DRAM是动态。而DRAM则需要不停地刷新电路,否则内部的数据将会消失。
只读存储器:【都能掉电存储数据】
- LASH和EEPROM都能掉电存储数据不需要刷新电路
- FLASH按扇区操作
- EEPROM则按字节操作
例题讲解【2021下】
考察:主存概念
例题讲解【2021上】
- 考点:闪存(Flash Memory)
主存的编址
主存的编址概念:
- 将芯片组成相应的存储器
8*4的存储器含义:
- 8:有8个地址空间
- 4:每一个地址空间存储了4个bit位的信息
- 地址单元的计算:
内存地址B-内存地址A+1
- 本题当中先将内存地址B+1,变成
C8000H
- 算k的时候要除以210:结果是112
- 本题当中先将内存地址B+1,变成
2.16 磁盘工作原理【例题的掌握】
考点:
- 磁盘基本运作原理
- 存取时间计算公式
磁盘结构:
- 盘面用来存储数据
- 读取数据专用设备
磁头
- 读取时磁头要移动到相应的磁道上面
存取时间计算公式:寻道时间+等待时间(平均定位时间+转动延迟)
- 寻道时间:读取磁盘的信息,要把磁头定位到对应的磁道上面,所花的时间。
- 等待时间:磁道上分了很多个扇区,磁头在A扇区,读取内容在B扇区,磁头旋转到相应扇区的时间。
- 一般等待时间是指转一圈的平均时间
例题讲解【2021上】
例题讲解【这类题要求掌握一个,其他题基本都雷同】
第一问:
- 结果是C
- 一圈周期为33ms,则一个扇区为3ms
- R0读取需要花费3ms,在单缓冲区做处理的时候又需要3ms,这时候磁头转动不停到了R2开头
- 则要取下一个R1的时候需要转一个周期到R1的开头位置【33ms】
- 所以R0取出并将磁头放到R1的位置加上处理的时间一共是:(33+3)ms
- 一共有R0到R9,10个扇区则一共是:(33+3)*10
- R10取出和处理时间:6
- 最后加上得出结果:(33+3)*10+6ms
第二问:
- 通过改变格式后,取数据和处理数据之后不需要再旋转一个周期,所以共:6ms
- 一共11个记录,时间为:66ms
例题讲解【2021下】
总线系统
2.17 计算机总线【掌握概念】
三种总线代表范围不同:
- 内部总线:芯片与处理器之间的总线——芯片级别的
- 系统总线:插件板与系统板之间的总线——插件板层级的
- 数据总线:用来传输数据的
- 地址总线:是一种计算机总线,是CPU或有DMA能力的单元,用来沟通这些单元想要访问(读取/写入)计算机内存组件/地方的物理地址。
- 控制总线:发送相应控制信号的
- 外部总线:微机与外部之间的总线
总线系统概念补充
按照物理位置分类:
- 内部总线:指主机各模块之间传送信息的通道。(如:连接 CPU、存储器、I/0 接(设备控制器)的总线。)
- 内部部总线(并行):ISA,
PCI
,STD
- 内部部总线(并行):ISA,
- 外部总线: 指系统之间或系统与外部设备之间传送信息的通道。
- 外部总线(串行):USB,IEEE 1394
- 外部总线(并行):ISA(IDE),
SCSI
例题讲解【2021下】
考察:内部总线和外部总线
可靠性
2.18 串联系统与并联系统可靠度计算
考察内容:计算问题
串联系统:
- 有一个环节出了问题,整个系统不能正常运行
- 可靠度计算:R=R1xR2xR3x…xRn
- 失效率计算:只是一个近似的公式,失效率极低的时候才适合用
并联系统:
- 可靠度计算:R=1-(1-R1)x…x(1-Rn)【就是用1-(每一部分的失效率)】
- 失效率计算:公式复杂,直接用
1-可靠度
即可。
N模冗余系统:【了解即可】
混合系统:【考试常考】
- 混合系统的可靠度计算:
- 观察有几个串联和并联
验证码
2.19 校验码的概念
考点:
- CRC与海明校验码的概念和基本操作流程
什么是检错和纠错:
- 检错:检查出错误来
- 纠错:检查出错误并纠正
- 加冗余信息来进行纠正(增大码距的操作方式)
什么是码距:
- 变化多少个位,就得到了另外一个码字。
2.20 循环校验码(CRC)
- 考点:可以检错但是不能纠错的一种编码
原理:
- 给原数补上若干个校验位
- 如果接收方校验的时候,除生成多项式不能余数为0时,就说明传输出现了错误
- 其中用到的除法是一种:模2除法
模2除法:
- 是一种二进制的除法
- 上下按异或操作【异为1,同为0】
CRC校验码例题:
- 生成多项式就是为了看二进制中是0还是1,写出对应二进制
11011
- 在报文数后补0,补的位数是
生成多项式的长度-1
【就是再补余数的位数】 - 进行模2除法,得到的余数替换刚才补充的位数
- 结果与11011做模2除法之后余数为0,结果就算是对的。
2.21 海明校验码【考试难点,但是频率高】
考点:
- 编码规则
- 会计算
- 考点:利用
多组数位的奇偶性
进行检错和纠错的一种编码
校验位与信息位的关系
校验位的位置:
- 是位于整个信息编码当中的2n的位置
- 好处:就可以区分校验位和信息位
通过上面校验位的放置推出下面结论:
- 如果有一个信息位,则编码长度为3
- 如果有两个信息位,则编码长度为5
用数学公式表达上面结论:2r>=4+r+1
具体编码【难点在检验位1,0的计算】
校验位的计算:
- 首先将信息位放到相应的位数上,之后7,6,5都包含22
- 则r2=上述位数对应的信息位做异或操作
- 同理算出
海明校验码的纠错功能
步骤:
- 先算出收到信息的校验码
- 在与原来的校验码做异或操作
- 得出的结果就能指出那个位置是错的【结果为1的校验位】
- 纠正就将错误位置的值取反就可以了
2.22 三层C/S体系结构
例题讲解:
2.22 寻址方式
概念:
- 寻址方式就是处理器根据指令中给出的地址信息来寻找有效地址的方式,是确定本条指令的
数据
地址以及下一条要执行的指令
地址的方法。
知识点
立即寻址方式【重点】
- 特点:操作数(立即数)直接在指令中,速度快,灵活性差
直接寻址方式【重点】
- 特点:指令中存放的是操作数的地址
间接寻址方式
- 特点:指令中存放了一个地址,这个地址对应的内容是操作数的地址。
寄存器寻址方式【重点】
- 特点:寄存器存放操作数
寄存器间接寻址方式
- 特点:寄存器内存放的是操作数的地址
寻址速度比较
立即寻址 > 寄存器寻址 > 直接寻址。
解析:
- 立即寻址的操作数就包含在指令中,取出指令时即可得到操作数,相较于直接寻址和寄存器寻址,立即寻址获取操作数的速度最快。
- 直接寻址的操作数存放在内存中,指令中直接给出操作数所在存储单元的地址。【直接寻址会访问主存】
- 寄存器寻址的操作数存放在寄存器中,指令中给出存放操作数的寄存器名,相较于直接寻址,在寄存器寻址方式中,指令在执行阶段不用访问主存【直接寻址会访问主存】,执行速度较快。
例题讲解【2021下】
立即寻址 > 寄存器寻址 > 直接寻址。
2.23 相联存储器