目录
一、计算机思想——概念
1、冯诺依曼计算机
通过内部存储器安放存储程序,成功解决了当时计算机存储容量太小,运算速度过慢的问题。
2、现代计算机框图
二、CPU——各个部件的功能
ACC:ACC(Accumulator)是累加器A缩写。
累加器A是一个具有特殊用途的二进制8位寄存器,专门用来存放操作数或运算结果。
在CPU执行某种运算前,两个操作数中的一个通常应放在累加器A中,运算完成后累加器A中便可得到运算结果。
ALU:算术逻辑单元(arithmetic and logic unit) 是能实现多组算术运算和逻辑运算的组合逻辑电路
PSW:程序状态寄存器PSW是计算机系统的核心部件控制器的一部分。
PSW用来存放两类信息:
- 一类是体答现当前指令执行结果的各种状态信息,如有无进位(CF位),有无溢出(OF位),结果正负(SF位),结果是否为零(ZF位),奇偶标志位(PF位)等;
- 另一类是存放控制信息,如允许中断(IF位),跟踪标志(TF位)等。
1、CPU各部件操作运行流程
(1)CPU部件构成
CPU由运算器和控制器两部分构成,运算器和控制器组成部件如下图所示:
运算器的组成:
- 算数逻辑单元ALU:数据的算术运算和逻辑运算
- 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用来传送和暂存数据,可参与算数逻辑运算,并保存运算结果
- 数据缓冲寄存器DR:写内存时,暂存指令或数据
- 状态条件寄存器PSW:存状态标志与控制标志、如中断、溢出标致等
控制器的组成:
- 程序计数器PC:存放下一条指令所单元的地址,当执行一条指令时,处理器首先需要从PC中取出指令在内存中的地址,通过地址总线寻址获取。
- 指令寄存器IR:存储从内存中读取的即将执行的指令
- 指令译码器ID:指令译码器,对指令中的操作码字段进行分析解释
- 地址寄存器AR:用来保存当前CPU所访问的内存单元地址
- 时序部件:提供时序控制信号
(2)CPU各部件执行流程
PC总是指向下一条指令的地址
- 当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到寄存器中,即将程序计数器PC中的内容送到地址总线上,此过程称为“取指令”。
- 与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。
- 此后经过分析指令,执行指令,完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。
(M)AR(地址寄存器)
AR寄存器存储数据所在存储单元的存储地址,AR寄存器放置在CPU中,跟存储器隔离开来,主要原因是CPU内的运行速度要比存储器快。
时序部件
控制计算机每一个操作步骤的时间顺序
现代计算机硬件执行步骤图:
一条加法指令的执行步骤:
取指:PC(程序计算器)—1—>(M)AR(地址寄存器)—2—>M(存储器)—3—>(M)DR(数据寄存器,值)—4—>IR(指令寄存器,即将执行)
分析:IR(指令寄存器,即将执行)—5—>ID(指令译码器,分开地址码和操作码,操作码进入控制器,地址码取数据)——>CPU控制器
执行:CPU控制器—6—>IR(指令寄存器,即将执行)—6—>(M)AR(地址寄存器)—7—>M(存储器)—8—>(M)DR(数据寄存器,值)—9—>ACC(累加器)
典型真题一
试题分析
选项A指令寄存器用来存放从内存中读取的指令。
选项B通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。
选项C程序计数器是用于存放下一条指令所在单元的地址。 当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,即将程序计数器PC中的内容送到地址总线上,此过程称为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。
选项D状态寄存器用于存放状态标志与控制标志如,中断标志、溢出标志等。
参考答案:B
典型真题二
试题分析
PC(程序计数器)是用于存放下一条指令所在单元的地址。当执行一条指令时,处理器首先需要从PC中取出指令在内存中的地址,通过地址总线寻址获取。
选项A 指令寄存器用来存放从内存中读取的指令。
选项B 通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。
选项D 状态寄存器用于存放状态标志与控制标志,如中断标志、溢出标志等。
参考答案:C
三、主存——计算芯片组合个数/进制转换
存储器的基本单位是存储单元,一般以8位二进制为一个存储单元,每个存储单元都有一个地址,一般用十六进制数表示。
一个存储单元可以存储8bit的数据。
数据总线:一次处理n位数据,则数据总线的长度为n。
n的位数为一个字的长度。比如,现在计算机一次可处理32位或者64位的数据,那么32位或者64位都为一个字。
地址总线:假如需要n位二进制数来表示所有的地址,则地址总线的个数为n。
比如现在有8个地址,那么总线的个数就可以为3(2的3次方)根。这是因为,一个二进制可以为1和0两种情况,所以3位2进制就可以表示8个地址。
典型真题一
内存按字节编址,地址从A4000H到CBFFFH,共有 (1) 个字节。若用存储容量为32K×8bit的存储芯片构成该内存,至少需要 (2) 片。
- A、80K B、96K C、160K D、192K
- A、2 B、5 C、8 D、10
典型真题二
试题分析:
寻址空间范围:
8FFFFH-84000H+1=C000H=12*16^3=12*2^12=48k。内存容量为48K*8bit,一片芯片是容量为8K×4bit,共需要12片。
参考答案:C
四、存储器——概念
存储器分类图示:
存储器的容量、速度、价格关系图
典型真题一
试题分析
存储器中数据常用的存取方式有顺序存取、直接存取、随机存取和相联存取等4种。
(1)顺序存取:存储器的数据以记录的形式进行组织。对数据的访问必须按特定的线性顺序进行。磁带存储器采用顺序存取的方式。
(2)直接存取:与顺序存取相似,直接存取也使用一个共享的读写装置对所有的数据进行访问。但是,每个数据块都拥有唯一的地址标识,读写装置可以直接移动到目的数据块的所在位置进行访问。存取时间也是可变的。磁盘存储器采用直接存取的方式。
(3)随机存取:存储器的每一个可寻址单元都具有自己唯一的地址和读写装置,系统可以在相同的时间内对任意一个存储单元的数据进行访问,而与先前的访问序列无关。主存储器采用随机存取的方式。
(4)相联存取:相联存取也是一种随机存取的形式,但是选择某一单元进行读写是取决于其内容而不是其地址。与普通的随机存取方式一样,每个单元都有自己的读写装置,读写时间也是一个常数。使用相联存取方式,可以对所有的存储单元的特定位进行比较,选择符合条件的单元进行访问。为了提高地址映射的速度,Cache采取相联存取的方式。
参考答案:(1)D (2)B
五、校验码——概念和公式
信息保存在电容中,如遇电磁环境干扰,会导致电容的充放电或触发器的翻转,存在存储器的信息可能会出错。
1、码距与检错纠错
一个编码系统的码距就是整个编码系统中任意(所有)两个码字的最小距离。
若一个编码系统有四种编码分别为:0000,0011,1100,1111,此编码系统中0000与1111的码距为4;0000与0011的码距为2,是此编码系统的最小码距。因此该编码系统的码距为2。
- 在一个码组内为了检测e个误码,要求最小码距应该满足:d>=e+1
- 在一个码组内为了纠正t个误码,要求最小码距应该满足: d>=2t+1
- 同时纠错检错:d>=e+t+1
假如我们现在要对A,B两个字母进行编码。我们可以选用不同长度的编码,以产生不同码距的编码,分析它们的检错纠错能力。
1、若用1位长度的二进制编码。若A=0,B=1。这样A,B之间的最小码距为1。
合法码:{0,1}; 非法码:{0,1}; // 无法检错纠错
2、若用2位长度的二进制编码,可选用11,00作为合法编码,也可以选用01,10作为合法编码。若以A=00,B=11为例,A、B之间的最小码距为2。
合法码:{11,00}; 非法码:{10,01}; // 检1位错,无法纠错
3、若用3位长度的二进制编码,可选用111,000作为合法编码。A,B之间的最小码距为3。
合法码:{111,000}; 非法码:{001,010,011,100,101,110}; // 检1位错,纠1位错
2、奇偶校验
偶校验:1的个数为偶数个,只能发现奇数个位出错的情况
3、海明码
只需要记住海明码建立在奇偶校验的基础上的结论就可以了
典型真题
试题分析
海明码数据位与校验位之间的关系可以采用下述公式表示:
2^k≥n+k+1,其中数据位是n位,校验位是k位。因此第5题套入公式可得需要6位校验位。
参考答案:D
4、CRC循环冗余校验码——中级不考
解题步骤:
(1)化解多项式为10011
(2)信息码加0做模二加运算(不进位加法)
(3)得到的余数即为校验码
(3)得到的余数即为校验码
最终的信息位+校验位为:101111100
典型真题
若信息码字为111000110,生成多项式G(X)=X5+X3+X+1,则计算出的 CRC校验码为( )。
A. 01101 B. 11001
C. 001101 D. 011001
试题分析
多项式为101011,信息码右边补5个0后与多项式做模二除法(即11100011000000 ➗ 101011),得余数即可。模2除法与算术除法类似,但每一位除的结果不影响其它位,即不向上一位借位,所以实际
上就是异或(相同为0,不同为1)。
参考答案:B