一、进制的表示和转换
1、进制表示
二进制:表示为B,使用0和1;
十进制:表示为D;
八进制:表示为O,逢8进1;
十六进制:表示为H,9后的数使用字母表示,从A-F;
2、 进制转换
二进制–>八进制和十六进制,分别将二进制每三位和四位为单元转换为八进制和十六进制;
八进制和十六进制–>为二进制是将每位转换为三位和四位二进制;
十进制–>R进制,使用R除余法;
R进制–>十进制,使用每位的权值*该位的介码之和。
二、原码、反码、补码、移码(正数的原反补码不变)
1、原码
0是正数符号,1为负数符号;
数值0的原码有两种+0=0 0000000,-0=1 0000000
2、反码
负数的符号位不变,其余取反;
数值0有两种反码+0=0 0000000,-0=1 1111111
3、补码
符号位不变。
负数的补码,该数的反码加1。
0的补码唯一:-0=+0=0 0000000
4、移码
一般情况下,移码=补码的符号位取反,不分正负
总结:正数的原反补码不变,正数和负数的移码都是在补码基础上符号位取反。负数的反码=符号位不变,原码按位取反;补码=符号位不变,反码最低位+1。
5、浮点数
其中E为阶码,F为尾数。
6、定点数
- 定点整数
- 定点小数
7、溢出
计算时两符号位都参与计算,如果计算结果的两符号位相同,则没有溢出,如果不同则有溢出。或者,当结果的最高位和符号位的进位一致时,没有溢出,否则有溢出。
四、BCD码
用4位二进制数来表示1位十进制数中的0~9这10个数码。在码值运算时,可能进行修正,此时要加六修正,如:9+6=1001+0110=1111显然不等于15,所以此时要用1111+6=1111+0110=0001 0101
五、校验方法和校验码
1、奇偶校验
通过检验程序的数据中1的个数为奇数还是偶数来确定数据传输是否有错误。但是它只能校验出错误而无法对其进行修正,同时虽然双位同时发生错误的概率相当低,但奇偶校验却无法检测出双位错误。- 为了能检测和纠正内存错误,首先出现的是内存“奇偶校验”。内存中最小的单位是比特,也称为“位”,位只有两种状态分别以1和0来标示,每8个连续的比特叫做一个字节(byte)。不带奇偶校验的内存每个字节只有8位,如果其某一位存储了错误的值,就会导致其存储的相应数据发生变化,进而导致应用程序发生错误。而奇偶校验就是在每一字节(8位)之外又增加了一位作为错误检测位。在某字节中存储数据之后,在其8个位上存储的数据是固定的,因为位只能有两种状态1或0,假设存储的数据用位标示为1、1、1、0、0、1、0、1,那么把每个位相加(1+1+1+0+0+1+0+1=5),结果是奇数。对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反。当CPU读取存储的数据时,它会再次把前8位中存储的数据相加,计算结果是否与校验位相一致。从而一定程度上能检测出内存错误,奇偶校验只能检测出错误而无法对其进行修正,同时虽然双位同时发生错误的概率相当低,但奇偶校验却无法检测出双位错误。
- 为了能检测和纠正内存错误,首先出现的是内存“奇偶校验”。内存中最小的单位是比特,也称为“位”,位只有两种状态分别以1和0来标示,每8个连续的比特叫做一个字节(byte)。不带奇偶校验的内存每个字节只有8位,如果其某一位存储了错误的值,就会导致其存储的相应数据发生变化,进而导致应用程序发生错误。而奇偶校验就是在每一字节(8位)之外又增加了一位作为错误检测位。在某字节中存储数据之后,在其8个位上存储的数据是固定的,因为位只能有两种状态1或0,假设存储的数据用位标示为1、1、1、0、0、1、0、1,那么把每个位相加(1+1+1+0+0+1+0+1=5),结果是奇数。对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反。当CPU读取存储的数据时,它会再次把前8位中存储的数据相加,计算结果是否与校验位相一致。从而一定程度上能检测出内存错误,奇偶校验只能检测出错误而无法对其进行修正,同时虽然双位同时发生错误的概率相当低,但奇偶校验却无法检测出双位错误。
- 奇校验:就是让原有数据序列中(包括你要加上的一位)1的个数为奇数,如:1000110(0)你必须添0这样原来有3个1已经是奇数了所以你添上0之后1的个数还是奇数个。
- 偶校验:就是让原有数据序列中(包括你要加上的一位)1的个数为偶数,如:1000110(1)你就必须加1了这样原来有3个1要想1的个数为偶数就只能添1了。
2、海明码
它是奇偶校验的一个扩充,是在原数据间插入校验码。
校验过程:假设数据位有m位,设置验证位k的长度满足纠正错误。
首先,利用2k-1>m+k求出最小的k,确定要插入的校验位的个数。然后利用确定2k-1校验位所在编码的位置,最后使用给出的计算公式计算出相应的海明码。
3、循环冗余CRC校验
由于其出色的检错能力得到了广泛引用,可检测所有小于等于检验位长度的突发错。
- CRC校验码软件生成方法: 借助于多项式除法,其余数为校验字段。 例如:信息字段代码为: 1011001;对应m(x)=x6+x4+x3+1 假设生成多项式为:g(x)=x4+x3+1;则对应g(x)的编码为: 11001 ,x4*m(x)=x10+x8+x7+x4对应的代码记为:10110010000; 采用多项式除法: 得余数为: 1010 (即校验字段为:1010) 发送方:发出的传输字段为: 1 0 1 1 0 0 1 1010 信息字段 校验字段 接收方:使用相同的生成码进行校验:接收到的字段/生成码(二进制除法) 如果能够除尽,则正确, 给出余数(1010)的计算步骤: 除法没有数学上的含义,而是采用计算机的模二除法,即,除数和被除数做异或运算 10110010000 /11001 =11110 11110 11100 = 1010
六、CPU
1、中央处理单元
- 功能
- 程序控制
- 操作控制
- 时间控制
- 数据处理
- 组成
- 运算器
- 算术逻辑单元:ALU
- 累加寄存器:累加器,AC
- 功能:为算术运算提供空间
- 数据缓冲寄存器
- 功能:CPU和内存、外部设配之间的缓冲和中转站
- 状态条件寄存器
- 控制器
- 指令寄存器:IR,缓存指令,供ID调用。
- 程序计数器:PC,寄存信息和计数,存放下一条指令地址的一个块;
- 地址寄存器:AR,存放CPU当前访问地址的单元。
- 指令译码器:ID,编译分析指令,并发出操作。
- 寄存器组
- 专用
- 运算器和控制器使用的
- 通用
- 专用
- 内部总线
- 运算器
- 核心
- 内核,完成计算、接收/存储命令、处理数据
七、体系结构
1、指令系统
- 指令
- 控制计算机执行某操作的命令
- 机器指令的集合
- 分类
- 微指令
- 对硬件的操作
- 机器指令
- 介于硬件和软件
- 宏指令
- 机器指令组成,属于软件
- 微指令
- 指令格式
- 操作码:表明了指令的操作特性与功能
- 地址码:协助表示操作数或操作数的地址
- 根据地址码字段的个数,指令进行如下分类:
- 三操作数指令
- 二操作数指令
- 一操作数指令
- 0操作数指令:无操作数只有操作指令
- 三操作数指令
- 根据地址码字段的个数,指令进行如下分类:
- 寻址方式
- 寻址:确定本条指令的数据地址及下一条欲执行指令的地址
- 方式
- 指令
- 顺序
- 程序计数器按照顺序一个个的查找
- 跳跃
- 在存储器中的操作数中指定了下一条指令的地址,程序计数器会跳入指定的指令,并从该处开始计数
- 顺序
- 数据
- 立即
- 操作数就保存在指令寄存器中
- 直接
- 指令地址保存的是数据所在的存储器的地址
- 间接
- 指令地址保存的是数据所在的存储器地址,存储器的地址又指向另一块地址
- 寄存器
- 数据保存在寄存器组中,指令地址保存的是数据所在寄存器组中的地址
- 寄存器间接
- 寄存器的内容保存的不是操作数,而是操作数在存储器中的地址
- 基址寻址
- 引用的专用寄存器含有一个存储器地址,地址字段含有一个相对于改地址的偏移量。段存储使用的该方式进行的寻址。
- 立即
- 指令
- CISC和RISC
- RISC:Reduced Instruction Set Computer
- 特点
- 选取使用频率较高的一些简单指令,复杂指令的功能由简单指令的组合来完成;
- 只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行;
- CPU中有多个通用寄存器;
- 采用流水线技术,大部分指令在一个时钟周期内完成;
- 控制器采用组合逻辑控制,不用微程序控制;
- 特点
- RISC:Reduced Instruction Set Computer
- 流水线
- 计算
2、安全、可靠性
- 串联系统:R = R1 * R2 * R3 * …*Rn
- 并联系统:R=1-(1-R1)*(1-R2)*…(1-Rn)
- 平均无故障时间(MTBF)
- 两次故障间系统能够正常工作的时间平均值。
- MTBF=1/λ
- 平均修复时间
- 从故障发生到机器修复平均所需的时间。用于表示计算机的可修复性
- 可用性
- 计算机的使用效率,它以系统在执行任务的任意时刻能够正常工作的概率来表示A=MTBF/(MTBF+MTRF)
八、存储器
1、分类
- 按位置
- 内存
- 外存
- 按材料
- 磁
- 半导体
- 光
- 按工作方式
- 读写
- 只读
- 按访问方式
- 按地址
- 按内容
- 按寻址方式
- 随机RAM
- 顺序SAM
- 直接DAM
2、Cache
- 原理
- Cpu与cache之间的数据交换是以字为单位,cache与主存之间以块为单位
- 命中率
- 地址映像:把主存放到cache中,应用某种方法把主存地址定位到cache中
- 直接映像:类似于分页存储
- 把Cache分成若干个区
- 每个区中只能固定调入cache对应块
- 全相联:主存中的块可以映射到cache中的任一块
- 组相联:高速缓存的容量分成组,组内分成页
- 直接映像:类似于分页存储
3、相联存储器
- 按内容访问
- 把数据或数据的一部分作为关键字,将关键字与存储器的每一个单元进行比较,找关键字相同的数据字。
4、虚拟存储器
- 把大程序分成较小的块,放在辅存中,当需要时再调入。
5、外存储器
- 磁盘
- 装有多个盘片
- 所有记录面上相同序号的磁道组成一个圆柱面
- 磁道:盘片中的每个同心圆
- 道密度:沿径向的单位距离的磁道数,单位为tpi
- 扇区:一个磁道沿圆周等分为若干段。
- 磁盘容量
- 非格式化:面数*(磁道数/面)*内圆周长*最大位密度
- 格式化: 面数*(磁道数/面)*(扇区数/道)*(字节数/扇区)
6、输入输出技术
- 内存与接口
- 独立编址方法
- 相互独立隔离
- 统一编址方法
- 统一在公共的地址空间内
- 独立编址方法
- 直接程序控制
- 外设数据的输入输出直接由CPU控制下完成
- 方式分类
- 无条件传送
- 程序查询方式
- 缺点
- 降低CPU的效率
- 对突发事件不能实施响应
- 缺点
- 中断方式
- 原因:IO比较费时,而且CPU要等待IO传输完成才能进行,性能下降
- 原理:当IO完成后向CPU发出中断请求,请求CPU放下手边的工作来处理这个工作。
- 处理方式
- 多中断信号线
- 每个中断源都有自己的中断请求信号线
- 中断软件查询
- 软件设定响应优先级,CPU收到中断信号后转入中断服务去轮询每个中断源确定是谁给它发了信号。
- 菊花链
- IO模块共享一根共同的中断请求线
- 中断请求发出沿着线到CPU,然后CPU向发出者发出中断确认信号,确认后,中断的地方把它的ID传给CPU
- 总线仲裁
- 由它决定谁能发出中断信号
- 中断向量表
- 保存各个中断源的中断服务程序的入口地址
- 多中断信号线
- 优先级控制
- 控制CPU处理中断请求的优先级
- DMA
- 内存与IO间直接成块传送
- 通过DMAC控制系统总线来控制输入和输出。
7、总线结构
- 分类
- 内部
- 系统
- ISA,工业标准总线
- 包括24条地址线,16条数据线,控制总线
- EISA,在ISA基础上发展的32位总线
- PCI
- ISA,工业标准总线
- 外部
- RS-232C,串行外总线
- SCSI,并行外总线
- USB
- IEEE-1394,高速串行外总线
- IEEE-488,并行总线接口标准
有关计算机组成原理的考试知识点也就这么多吧,很多没有去细致的描述,如果有哪些不明白的可以留言一块讨论。