软考
计算机硬件组成
计算机的基本硬件系统由运算器、控制器、存储器、输入设备、输出设备组成。
- 运算器、控制器等部件被集成在一起统称为中央处理单元。CPU是硬件系统的核心,用于数据的加工处理、能够完成各种算数、逻辑运算及控制功能。
- 存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于临时存放程序、数据及中间结果。而后者容量大、速度慢,可以长期保存程序和数据。
- 输入和输出设备合称为外部设备,输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。
中央处理单元(CPU)
CPU的功能:
- 程序控制: CPU通过执行指令来控制程序的执行顺序,这是CPU的重要功能。
- 操作控制: 一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。
- 时间控制: CPU对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。
- 数据处理: CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理,数据加工处理的结果被人们所利用。所以,对数据的加工处理也是CPU最根本的任务。
此外,CPU还需要对系统内部和外部的中断(异常)做出响应,进行相应的处理。
CPU的组成:CPU主要由运算器、控制器、寄存器组和内部总线等部件组成。
- 运算器:由算术逻辑单元ALU(实现对数据的算术和逻辑运算)、累加寄存器AC(运算结果或源操作数的存放区)、数据缓冲寄存器DR(暂时存放内存的指令或数据)和状态条件寄存器PSW(保存指令运行结果的条件码内容,如溢出标志等)组成。执行所有的算数运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如与、或、非、比较等。
- 控制器:由指令寄存器IR(暂存CPU执行指令)、程序计数器pc(存放指令执行地址)、地址寄存器AR(保存当前CPU所访问的内存地址)、指令译码器ID(分析指令操作码)等组成。控制整个CPU的工作,最为重要。
- CPU依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令cpu分别去取指令或者数据。
考点:
- 哪些寄存器属于控制器?哪些寄存器属于运算器?
- 每个寄存器的功能?
校验码
- 码距:就单个编码A:00而言,其码距为1,因为其只需要改变一位就变成另一个编码。在两个编码中,从A码变B码转换所需要改变的位数为码距,如A:00要转换为B:11,码距为2。一般来说,码距越大,越利于纠错和检错。
- 奇偶校验码:在编码中增加1位校验位来使编码中1的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变为2。
- 奇校验:编码中,含有奇数个1,发送给接收方
冗余校验码CRC
- CRC只能检错,不能纠错。使用CRC编码,需要 先约定一个生成多项式G(x)。 生成多项式的最高位和最低位必须是1。假设原始信息有m位,则对应多项式M(x)。生成校验码思想就是在原始信息位后追加若干校验位,使得追加的信息能被G(x)整除。接收方接收到带校验位的信息,然后用G(x)整除。余数为0,则没有错误,反之则发生错误。
- 例:假设原始信息串为10110,CRC的生成多项式为G(x)=x^4+x+1,求CRC校验码。
- 在原始信息位后面添0,假设生成多项式的阶为r,则在原始信息位后添加r个0, 本题中,G(x)阶为4,则在原始信息串后加4个0,得到的新串为101100000,作为被除数。
- 由多项式得到除数,多项式中x的幂指数存在的位置1,不存在的位置0。 本题中,x的幂指数为0,1,4的变量都存在,而幂指数为2,3的不存在,因此得到串10011。
- 生成CRC校验码,将前两步得出的被除数和除数进行模2(异或)除法运算(即不进位也不借位的除法运算)。
- 得到余数1111。注意:余数不足r,则余数左边用若干个0补齐。如求得余数为11,r=4,则补两个0得到0011。
- 生成最终发送信息串,将余数添加到原始信息后。上例中,原始信息为10110,添加余数1111后,结果为10110 1111。发送方将此数据发送给接收方。
- 接收方进行校验。接收方的CRC校验过程与生成过程类似,接收方接收了带校验和的帧后,用多项式G(x)来除。余数为0,则表示信息无错;否则要求发送方重传。注意:收发双方需要使用相同的生成多项式
- 模2除法:模2除法需要用到模2加减法,规则如下:同为0,异为1js
//不需要考虑进位和借位 0 ± 0 = 0 1 ± 1 = 0 0 ± 1 = 1 1 ± 0 = 1 例: 1101 ± 1001 = 0100 计算如下: 1 1 0 1 ± 1 0 0 1 ----------- 0 1 0 0 - 模2除法规则:假设被除数X和除数P,余数R。
- X处于P(对X和P做模2加减法),当前X首位为1时,商1,为0时商0。
- 所得余数R去除首位。若R第一位为0,将其作为新的被除数,除以0,此时其首位为0,商即为0。若R第一位为1,将其作为新的被除数,除以P,此时首位为1,商即为1。
- 重复第2步直到R位数少于P位数。
js1 0 1 1 //商 --------------- 1 1 1 1 0 0 0 //被除数,注意首位为1 1 1 0 1 //被除数首位为1,除以除数 --------------- 0 1 0 0 0 0 //余数去除首位,作为新的被除数 0 0 0 0 //被除数首位为0,除以0 --------------- 1 0 0 0 0 //余数去除首位,作为新的被除数 1 1 0 1 //被除数首位为1,除以除数 --------------- 1 0 1 0 //余数去除首位,作为新的被除数 1 1 0 1 //被除数首位为1,除以除数 --------------- 1 1 1 //余数,此时余数位数少于除数,不能继续除了
指令系统
- 计算机指令的组成:一条指令由操作码和操作数两部分组成,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。
- 计算机指令执行过程:取指令--分析指令--执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;而后由指令译码器进行分析,分析指令操作码;最后执行指令,取出指令执行所需的源操作数。
- 指令寻址方式:
- 顺序 寻址方式:当执行一段程序时,是一条指令接着一条指令地顺序执行。
- 跳跃 寻址方式:指下一条指令的地址码 不是由程序计数器给出,而是由本条指令给出。 程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。
- 指令操作数的寻址方式:
- 立即寻址方式: 指令的地址码字段指出的不是地址,而是操作数本身。
- 直接寻址方式: 在指令的地址字段中直接指出操作数在主存中的地址。
- 间接寻址方式: 指令地址码字段所指向的存储单元中存储的是操作数的地址。
- 寄存器寻址方式: 指令中的地址码是寄存器的编号。
- 基址寻址方式: 将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,其优点是可以扩大寻址能力。
- 变址寻址方式: 变址寻址方式计算有效地址的方法与基址寻址方式很相似,它是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。
