1、计算机系统基础知识
1.1 考点
1.1.1 计算机系统硬件的基本组成
计算机的基本硬件组成系统由运算器、控制器、存储器、输入设备、输出设备五大部件组成。运算器、控制器等部件被集中在一起,统称为中央处理单元(Central Processing Unit,CPU)。CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。存储器是计算机系统中的记忆设备,分为内部存储和外部存储。前者速度快、容量小,一般用于临时存放程序、数据及中间结果。后者容量大、速度慢,可以长期保存程序和数据。输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,输出设备则用于输出计算机运行的结果。
1.1.2 中央处理单元
- CPU的功能
- 程序控制。通过指令来控制程序的执行顺序。
- 操作控制。一条指令的功能由若干操作信号来完成,CPU产生每条指令的操作信号并将操作信号送往不同的部件,控制相应的部件按指令的功能要求进行操作。
- 时间控制。CPU对各种操作进行时间上的控制。
- 数据处理。CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理,数据加工处理结果被人们所利用。对数据加工处理是CPU的根本任务。
- CPU的组成
- 运算器:运算器由算数逻辑单元(Arithmetic and Logic Unit,ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件,完成计算机的各种算术和逻辑运算。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器有以下两个主要的功能:
- 执行所有的算术运算,如加、减、乘、除等基本运算及附加运算。
- 执行所有的逻辑运算并非逻辑测试,如与、或、非、零值测试或两个值的比较等。
- 算数逻辑单元(ALU)。ALU是运算器的重要的组成部件,负责处理数据,实现对数据的算术运算和逻辑运算。
- 累加寄存器(AC)。AC通常简称为累加器,它是一个通用寄存器。其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。
- 数据缓冲寄存器(DR)。在对内存存储器进行读写操作时,用DR暂时存放由内存储器读写的一条指令或一个数据字,并将不同时间段内读写的数据隔离开来。
- 程序状态字寄存器(PSW)。PSW保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码和内容,主要分为状态标志和控制标志,如运算结果进位标志(C)、运算结果溢出标志(V)、运算结果为0标志(Z)、运算结果为负标志(N)、中断标志(I)、方向标志(D)和单步标志等。
- 运算器:运算器由算数逻辑单元(Arithmetic and Logic Unit,ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件,完成计算机的各种算术和逻辑运算。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器有以下两个主要的功能:
- 控制器:运算器只能完成运算,而控制器用于控制整个CPU的工作,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑等几个部分。
- 指令寄存器(IR)。当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入IR暂存,指令译码器根据IR的内容产生各种微操作指令,控制其他的组成部件工作,从而完成所需的功能。
- 程序计数器(PC)。PC具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分为两种情况,一种是顺序执行,另一种是转移执行。在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的内容即是程序第一条指令的地址。指令执行时,CPU将自动修改PC的内容,以便使其保存的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移的地址得到。
- 地址寄存器(AR)。AR保存当前CPU所访问的内存单元的地址。由于内存和CPU存在操作速度上的差异,所以需要使用AR保存地址信息,直到内存的读/写操作完成为止。
- 指令译码器(ID)。指令分为操作码和地址码两部分,为了能执行任何给定的指令,必须对操作码进行分析,以便识别所完成的操作。指令译码器就是对指令中的操作码字段进行分析和解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,从而完成所需的功能。
- 寄存器组:寄存器组可分为专用寄存器和通用寄存器。运算器和控制器中的寄存器是专用寄存器,其作用是固定的。通用寄存器用途广泛并可由程序员规定其用途,其数目因处理器不同而有所差异。
- 内部总线:内部总线(Internal Bus)将处理器的所有结构单元内部相连。它的宽度可以是8位、16位、32位或64位。
- I²C总线。
- SPI总线
- SCI总线
- 多核CPU:核心(Die)又称内核,是CPU最重要的组成部分。多核即在一个单芯片上面集成两个甚至多个处理器内核,其中每个内核都有自己的逻辑单元、控制单元、中断处理器、运算单元,一级Cache(高速缓存)、二级Cache共享或独有,其部件的完整性和单核处理器内核相比完全一致。
1.1.3 数据表示
各种数据在计算机中表示的形式称为机器数,其特点是数的符号0、1表示。机器数对应的实际数值称为该数的真值。机器数又分为无符号数和带符号数两种。无符号数表示正数,在机器数中没有符号位。对于带符号数,机器数的最高位是表示正、负的符号位,其余二进制位表示数值。带符号的机器数可采用原码、反码、补码、移码等编码方式。机器数的这些编码方法称为码制。
- 原码、反码、补码和移码
- 原码:在原码表示中,机器数的最高位是符号位,0表示正,1表示负。
- 反码:在反码表示中,机器数的最高一位是符号位,0表示正,1表示负。当符号位为0时,其余几位即为此数的二进制值;若符号位为1时,需要把它们除符号位按位取反,然后才是这个负数的反码。
- 补码:在补码表示中,机器数的最高位那一位是符号位,0表示正,1表示负。当符号位为0时其余几位就是它的补码;若符号位为1时,它的补码就是它的反码加1.
- 移码:移码表示是在数X上增加一个偏移量来定义的,常用于表示浮点数中的阶码。如果机器字长为n,规定偏移量为
-1,则移码定义为:若X是纯整数,则[X]移=
-1+X(-
-1≤
-1);若X是纯小数,则[X]移=1+X(-1≤X<1)。
- 定点数和浮点数
- 定点数:定点数是指小数点的位置固定不变的数。小数点的位置通常有两种约定方式:定点整数(纯整数,小数点在最低有效数值位之后)和定点小数(纯小数,小数点在最高位有效数值位之前)。
- 浮点数:浮点数是小数点位置不固定的数,它能表示更大范围的数。在浮点数表示法中,阶码通常为带符号的纯整数,尾数为带符号的纯小数。浮点数的表示格式如下:
阶符 阶码 数符 尾数 - 工业标准IEEE 754:IEEE 754是由IEEE制定的有关浮点数的工业标准,被广泛采用。
1.1.4 校验码
计算机系统运行时,各个部件之间要进行数据交换,有两种方法可以确保数据在传送过程中正确无误,一是提高硬件电路的可靠性,二是提高代码的校验能力,包括查错和纠错。通常使用校验码的方法来检测传送的数据是否出错。码距是指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。
- 奇偶校验:奇偶校验是一种简单有效的校验方法。其基本思想是,通过编码中增加一位校验码来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2.对于奇校验,它可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况,即当合法编码中奇数位发生了错误,也就是编码中的1变成0或者0变成1,则该编码中1的个数的奇偶性就发生了变化,从而可以发现错误。
- 海明码:海明码的构成方法是:在数据位之间插入k个校验码,通过扩大码距来实现检错和纠错。设数据位是n位,检验位是k位,则n和k必须满足
- 1 ≥ n+k 的关系。
- 循环冗余校验码:循环冗余校验码(CRC)广泛用于数据通信领域和磁介质存储系统中。它利用生成多项式为k的个数据位产生r个校验位来进行编码,其编码长度为k+r。
1.2 典型例题
例1 常用的虚拟存储器由(1)两级存储器组成。(2013年上半年试题1)
(1)A.主存—辅存 B.主存—网盘
C.Cache—主存 D.Cache—硬盘
解析:虚拟存储器是为了给用户提供更大的随机存取空间而采用的一种存储技术。它将内存与外存结合使用,好像有一个容量极大的内存储器,工作速度接近于主存,每位成本又与辅存相近,在整机形成多层次存储系统。所以虚拟存储器由主存和辅存两级存储器组成。
答案:A
例2 在CPU中,(1)不仅要保证指令的正确执行,还要能够处理异常事件。(2012年下)
(1)A.运算器 B.控制器 C.寄存器组 D.内部总线
解析:控制器负责完成协调和指挥整个计算机系统的操作,是发布命令的决策机构。运算器是数据加工部件,负责执行算术运算和逻辑运算。寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。内部总线将处理器内部的所有结构单元相连。
答案:B
例3 循环冗余校验码(CRC)利用生成多项式进行编码。设数据位为K位,校验位为r位,则CRC码的格式为(1)。(2012年下)
(1)A.k个数据位之后跟r个校验位 B.r个校验位之后跟k个数据位
C.r个校验位随机加入k个数据位中 D.r个检验位等间隔地加入k个数据位中
答案:A
例4 以下关于数的定点表示和浮点表示的叙述中,不正确的是(1).(2012年下)
(1)A.定点表示法表示的数(称为定点数)常分为定点整数和定点小数两种
B.定点表示法中,小数点需要占用一个存储位
C.浮点表示法用阶码和尾数来表示数,称为浮点数
D.在总位数相同的情况下,浮点表示法可以表示更大的数
答案:B
例5 在程序执行过程中,Cache与主存的地址映像由(1)。(2013年下)
(1)A.硬件自动完成 B.程序员调度
C.操作系统管理 D.程序员与操作系统协同完成
答案:A
例6 对于逻辑表达式“x and y or not z”,and 、or、not分别是逻辑与、或、非运算,优先级从高到低为not、and、or,and、or为左结合,not为右结合,若进行短路计算,则(1)。
(1)A.x为真时,整个表达式的值为真,不需要计算y和z的值
B.x为假时,整个表达式的值为假,不需要计算y和z的值
C.x为真时,根据y的值决定是否需要计算z的值
D.x为假时,根据y的值决定是否需要计算z的值
答案:C
例7 若某条无条件转移汇编指令采用直接寻址,则该指令的功能是将指令中的地位码送入(1)。
(1)A.PC(程序计数器) B.AR(地址寄存器)
C.ACC(累加器) D.ALU(算数逻辑单元)
答案:A
例8 计算机中CPU对其访问速度最快的是(1)。(2015年上)
(1)A.内存 B.Cache C.通用寄存器 D.硬盘
答案:C
例9 CPU中译码器的主要作用是进行(1)。(2011年下)
(1)A.地址译码 B.指令译码 C.数据译码 D.选择多路数据至ALU
答案:B
例10 在CPU中用于跟踪指令地址的寄存器是(1)。(2011年上)
(1)A.地址寄存器(MAR) B.数据寄存器(MDR)
C.程序计数器(PC) D.指令寄存器(IR)
答案:C
例11 原码表示法和补码表示法是计算机中用于表示数据的两种编码方式,在计算机系统中常采用补码来表示和运算数据,原因是采用补码可以(1)。(2011年上)
(1)A.保证运算过程与手工运算方法保持一致
B.简化计算机运算部件的设计
C.提高数据的运算速度
D.提高数据的运算精度
答案:B
例12 机器字长为n位的二进制数可以用补码来表示(1)个不同的有符号定点小数。(2015年上)
(1)A.2n B.2n-1 C.2n+1 D.2n-2
答案:A
例13 某机器字长为n,最高位是符号位,其定点整数的最大值为(1)。(2014年上)
(1)A. - 1 B.
- 1 C.
D.
答案:B
例14 属于CPU中算术逻辑单元的部件是(1)。(2014年下)
(1)A.程序计数器 B.加法器
C.指令寄存器 D.指令译码器
答案:B
例15 与Ā⊕B等价的逻辑表达式是(1)。(⊕表示逻辑异或,+表示逻辑加)。(2010年上)
(1)A.A+ B.A⊕
C.A⊕B D.AB+
答案:B