计算机组成原理笔记---王道考研

本文详细介绍了计算机组成原理的基础知识,包括机器字长、操作系统、编译器和汇编器的作用,以及中央处理器(CPU)的工作原理。此外,还讲解了进位计数制的转换、真值和机器数的表示,特别是BCD码的种类和应用。同时,提到了字符编码如ASCII码和汉字编码,以及校验码如奇偶校验和CRC码的原理。
摘要由CSDN通过智能技术生成

计算机系统概述

计算机硬件系统的主要指标:机器字长,储存容量,运算速度,可配置外设等。
机器字长:机器字长是指CPU一次能处理的数据位数。

操作系统: 管理计算机中的资源以便程序在其中运行的程序。
编译器:将高级语言翻译成机器语言。
汇编器:将指令从 助记符号 的形式翻译成 二进制码。
嵌入式系统:嵌入在其他设备中的计算机,运行已经设计好的成语程序实现相应功能(如计算机洗衣机等)。

中央处理器(CPU): 计算机中的核心部件,执行程序中的指令,具有加法,测试和控制其他部件的功能。
控制器:在处理器中根据程序的指令来指示运算器,储存器和I/O设备的部件。
寄存器:暂时存放数据和运算结果等。

储存容量:指储存器可以存放数据的数量(如字节数),它包括主存和辅存。
主存:可以由CPU通过主线直接访问的储存器 (如内存) 。
辅存:CPU不能直接访问,必须通过I/O接口和地址变换
等方法才能访问的储存器(如硬盘,优盘)。

在一个芯片中集成几十万上百万个晶体管的工艺:超大规模集成电路(VLSI)。
计算机硬件与底层软件之间的特定纽带:机器指令。

进位计数制及其相互转换

二进制转换为八,十六进制:
从最低有效位(LSD)开始,三位一划分,组成八进制数。四位一划分,组成十六进制数。高位不足用0补齐。

由于二进制信息位数多,在开发程序,调试程序,阅读机器内部代码时,通常用八进制和十六进制来等价的表示二进制信息,主要是为了书写阅读方便,在机器内部的表示并无区别,都仍为二进制。

反之
八,十六进制转换为二进制:
每位八进制数用3位二进制数替换,每位十六进制数用四位二进制数替换。

注意:在八进制数,十进制数和十六进制数之间的相互转换中,以二进制为之间会容易很多。

真值和机器数:

对于+5,-8等等这样的带正负号的数,称之为真值,我们可以用0代表正+,1代表负-,这样就将一个真值完全数字化了,被数字化的真值就称作机器数(机器数分为 原码,反码,补码和移码)。

BCD码

二进制编码的十进制数(Binary-Coded Decimal, BCD)是以二进制数来编码表示十进制数的0~9 。
常见的BCD码分为有权码(如8421(最常用),2421,5421等)和无权码(如余三码和格雷码)
(1)8421BCD码
对于一个多为的十进制,将它的每一位替换为 四位的二进制,最后再用十六进制的C表示“+”,D表示“-”,且符号位放在最后。
e.g. +325 = (0011 0010 0101 1100)
- 325 = (0011 0010 0101 1101)
8421BCD码(表0 ~ 9)遇见1001就产生进位,不像普通的二进制码遇到1111菜产生进位10000 。

(2)2421BCD码
2421码表示十进制数时,若十进制数大于等于5,则2421码的最高位是1,若十进制数小于5,则2421码的最高位是0 。
e.g. ( 5 ) 10 (5)_{10} (5)10 = ( 1011 ) 2421 B C D (1011)_{2421BCD} (1011)2421BCD = ( 0101 ) 8421 B C D (0101)_{8421BCD} (0101)8421BCD

(3)余三码
在8421码的基础上加十进制数3(二进制0011)

字符和字符串

字符编码ASCII码
计算机中的信息包括 数据信息控制信息 ,数据信息又分为 数值非数值 信息。非数值信息和控制信息包括字母,各种控制符号和图形符号等,它们都以二进制编码的方式存入计算机,这种对字母和符号进行编码的二进制代码称为字符代码,最常用的字符编码是ASCII码。

通过记住ASCII码表中常用的字符大写字符A,小写字母a与数字0,可以推导出其他大小写字母和数字的ASCII码。
e.g. A的ASCII码为十进制数65,则可以推出 B 的ASCII码为 65 + 1 = 66 ,Z 的ASCII码为65 + 25 = 90 。

汉字编码
汉字编码主要包括汉字的 输入编码汉字内码汉字字形 码,国标码和区位码是输入编码。
国 标 码 = ( 区 位 码 ) 16 + 2020 H 国标码 = (区位码)_{16} + 2020H =16+2020H
汉 字 内 码 = ( 国 标 码 ) 16 + 8080 H 汉字内码 = (国标码)_{16} + 8080H =16+8080H

校验码

检错编码:常见的检错编码有 奇偶校验码循环冗余校验码(CRC),可以在接收端解码时检查出传输的错误,但不能纠正错误。

  1. 奇偶校验码,在信息码的基础上加一位校验码,可加在信息码的前面或后面,分为 奇校验偶校验
    奇校验: 添加一位校验码后,是的整个码字里1的个数为奇数,接收端收到数据后检验码字中1的个数,若为奇数个则认为没有出错;若为偶数个,则说明传输过程中数据发生了改变,要求重发。
    偶校验: 添加一位校验码后,是的整个码字里1的个数为偶数,接收端收到数据后检验码字中1的个数,若为偶数个则认为没有出错;若为奇数个,则说明传输过程中数据发生了改变,要求重发。

由此可见,有一位数据发生改变时,通过奇偶校验可以检测出来,但不知道是哪一位出错了;同时,如果数据中同时有偶数位发生改变(2,4,6…)则奇偶校验是检测不到数据发生了变化,所以它的查错能力有限。

  1. 循环冗余校验(CRC)码(又称多项式校验码)
    奇偶校验码检错率较低不实用,在计算机网络和数据通信中,用的最多的就是检错率高,开销小,易实现的循环冗余校验码,它的构造与多项式运算有关。

    M ( x ) M(x) M(x)代表发送信息的多项式, G ( x ) 为 生 成 多 项 式 G(x)为生成多项式 Gx代表校验位信息。

    e.g. 循环冗余校验码的构造过程:
    假设 M ( x ) = x 3 + 1 M(x) = x^3 +1 M(x)=x3+1 ; G ( x ) = x 3 + x + 1 G(x) = x^3 + x + 1 G(x)=x3+x+1
    M(x)所代表的二进制代码:1001
    G(x)所代表的二进制代码:1011

以G(x)为例,说明由多项式推导出二进制代码的过程:
G ( x ) = 1 × X 3 + 0 × X 2 + 1 × X 1 + 1 × X 0 G(x) = 1×X^3 + 0×X^2 + 1×X^1 + 1×X^0 G(x)=1×X3+0×X2+1×X1+1×X0 ,多项式各项次数代表位置,系数为该位置上二进制的值,即1011

将M(x)所代表的二进制码向左移G(x)的最高次数,这里是3次,得到1001000。
将1001000 (左移后的M(x)代表的二进制码) 对1011 (G(x)代表的二进制码)做模二除法得到余数110,将其与被除数1001相拼接得到1001110,记为循环冗余校验码。

关于模2除法的具体做法下面举个例子
在这里插入图片描述
上商的规则是看余数部分的首位,全部使用”异或“操作。当余数的位数小于除数时,该余数即为最后余数。
步骤分析:首先将10110010000中前五位看作部分余数,首位为1商上1,结果为11110,首位为1商上1 ;结果为01111,首位为0商上0,上述计算过程省略了这一步,直接到11110,首位为1商上1;结果为01110,首位为0商上0,同样这一步被省略,直接到11100,首位为1商上1;结果为01010,首位为0商上0;结果为1010,部分余数小于除数的位数,最后余数为1010。

循环冗余校验码的重要特性:

  1. 具有r检测位的多项式能够检测出所有小于或等于r的突发错误。
  2. 长度大于r + 1 的错误逃脱的概率是 1 2 r \frac 1{2^r} 2r1

注意:循环冗余校验码只有在生成多项式G(x)选的十分合适的情况下,才有纠错功能,但这通常是很困难的,所以我们可以默认循环冗余校验码不具有纠错功能,秩序掌握其检错功能。

3.海明码(又称 汉明码)
纠错编码:在接收端不仅可以检查出错误,而且能纠正检查出来的错误。在k位信息位中插入r位校验码,整个码字的长度就为k + r。每一位数据不是0就是1,有r位数据就能表示出 2 r 2^r 2r种状态,每种状态代表一个码元发生了错误

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值