计算机组成原理基础知识点

计算机组成原理基础知识点

1. 概论

1.1 计算机系统

1.2 冯~诺依曼计算机的特点

  1. 计算机由五大部件组成:存储器,运算器,控制器,输入设备,输出设备。
  2. 指令和数据以同等地位存于存储器,可按地址顺序访问。
  3. 指令和数据用二进制表示。
  4. 指令由操作码和地址码组成。
  5. 存储程序,程序在计算机中顺序存放。
  6. 以运算器为中心。

1.3 计算机硬件的主要技术指标

1. 机器字长:CPU一次可以处理数据的二进制位数

2. 存储容量:包含主存容量与辅存容量

主存容量:主存中存放的二进制代码的总位数

                  存储容量=存储单元个数 * 存储字长

辅存容量:通常用字节表示。

 3. 运算速度

2. 系统总线

2.1 总线

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统

按照位置不同,算机的总线可以划分为片内总线、系统总线、通信总线

2.1.1 片内总线

指芯片内部的总线,如在CPU芯片内部,寄存器和寄存器之间,寄存器和算术逻辑单元ALU之间都由片内总线连接。

2.1.2 系统总线

指CPU、主存、I/O设备各大部件之间的信息传输,又可以划分为数据总线、地址总线、控制总线,分别用来传输数据、数据地址和控制信号。

2.1.3 数据总线(DB)

传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关。

2.1.4 地址总线(AB)

用来指出数据总线上源数据或目的数据在主存单元的地址或I/O设备的地址,与存储单元个数有关。

2.1.5 控制总线(CB)

用来控制各部件在数据总线和地址总线上的操作。 用来发出各种控制信号的传输线。控制总线可以是单向的,也可以是双向的。

2.1.6 通信总线

用于计算机系统之间或计算机系统与其他系统之间的铜线。

按传输方式可以分为两种:串行通信并行通信。

2.1.7 串行通信

串行通信指数据在单条1位宽的传输线上,一位一位的按顺序分时发送。
1字节的信息在串行通信中要分8次从地位到高位按顺序逐次传送。

2.1.8 并行通信

并行通信指数据在多条1位宽的传输线上,同时由源传送到目的地。

并行通信适用于近距离的数据传输,串行通信适用于远距离。 数据传输速率与距离成反比。

2.2 总线特性

2.3 总线的性能指标

2.4 总线判优

2.5 总线传输周期

  1. 申请分配阶段:主设备申请,总线仲裁(总线判优逻辑)
  2. 寻址阶段:主设备将地址、命令发送给从设备
  3. 传数阶段:交换数据
  4. 结束阶段:主模块撤销消息

2.6 总线通信的四种方式

同步通信:由统一时标 控制数据传送;

异步通信:采用 应答方式,没有公共时钟标准; 不互锁 半互锁 全互锁; 

半同步通信: 同步 、 异步结合;

分离式通信: 充分挖掘系统总线每个瞬间的潜力; 充分提高了总线的有效占用;

3. 存储器

3.1 存储器概论

3.3.1 按照存储介质分类

(1)半导体存储器:体积小,功耗低,存取时间短(易失性)。  TTL(高速)、MOS(高集成度)。
(2)磁表面存储器: 磁盘、磁带、磁鼓(非易失性)。
(3)磁芯存储器:(目前几乎已不被采用)硬磁材料、环状元件。(不易失,永久记忆存储器,体积大,工艺复杂,大功耗)
(4)光盘存储器 激光、磁光材料(非易失)。
其中,半导体存储器为易失性存储器或称随机存取存储器。磁表面存储器、磁芯存储器、光盘存储器为非易失性存储器。
易失性存储器:RAM。可作为操作系统或其他正在运行程序的临时存储介质(可称作系统内存)。当电源关闭时不能保留数据,数据容易丢失。

3.3.2 按存取方式分类

(1)顺序访问:存取时间与物理地址无关
随机存储器RAM:可读可写,掉电丢失,用于构建主存。 分为SRAM,DRAM。

                 SRAM:(以触发器原理寄存信息)适合做主存

                 DRAM:(以电容充放电原理寄存信息)适合做缓存

项目DRAM(主存)SRAM(缓存)
存储原理电容触发器
集成度高(一个晶体管一个电熔)低(六个晶体管)
芯片引脚多(高速度)
功耗少(刷新用电)
价格
速度慢(主要有读写与充电)
刷新


只读存储器ROM:只读。这种寄存器通常用来存放固定不变的程序、常数或者用于操作系统的固化,它与随机存储器可以共同作为主存的一部分,构成主存的地址域。
(2)串行访问:存取时间与物理地址有关
这种存储器由于信息所在位置不同,使得读写时间不同
顺序存取存储器:如磁带存储器,不论信息处于什么位置,读写时都从介质的始端顺序查找。
直接存取存储器:如磁盘存储器,首先指出存储器的磁道,然后再按照顺序寻找数据。
 

3.3.3 在计算机中的应用分类

3.3.4 主存的结构

3.3.5 缓存—主存—缓存三级存储系统
3.3.6 主存的技术指标
  • 存储容量:主存中存放的二进制代码的总位数,存储单元总数、存储空间的大小、字数、字节数。
  • 存储速度:由存取时间和存取周期表示。
  • 存取时间:从存储器给出地址一直到得到稳定的数据输入(输出)——存储器的访问时间(读出时间、写入时间)。
  • 存取周期:连续两次独立的存储器操作(读或写)所需的最小间隔时间。
  • 存储器带宽:单位时间里存储器所存取的信息量,数据传输速率技术指标。

3.2 半导体存储芯片

3.2.1 基本结构

地址线:反映芯片字节数量(10根地址线芯片的字节数位2^10/1024K)
数据线:反映芯片单个字节的位数(4根数据线代表一个字节4位)
片选线:反映是否选择当前的芯片
读写控制线:表示当前数据的读与写

地址线(单向)数据线(双向)芯片容量
342^3*4位
3.2.2 半导体存储芯片的译码驱动方式

主要是用于:地址总线给出了地址后如何在内存中找到存储单元。方法 线选法,重合法
1.线选法

特点:一根字选线对应一根存储单元
工作原理: 这里有 4根地址线 A1,A2,A3,A4,这四根地址线可以表示 16 个存储单元,在内存中对应了16根字线,可以看到是 0~15,选中0000这个存储单元,其余 15根不选中。用下面的8根位线直接为单元内每一位传输数据

缺点: 适合存储容量不大的芯片。

2.重合法


特点: 将线选法中单一的地址译码器分成了行地址译码器和列地址译码器,行和列的交汇处共同锁定一个单元。
工作原理: 加入选中行地址译码器为 00000,这时0行一整行都被选中。然后让列地址译码器为00000,那么就可以确定是0行0列的这个单元
适用性: 更适合存储大的内存芯片

3.2.3 SRAM 

组成:

读操作:

写操作:

读写总结:

3.2.4 DRAM

组成:

破坏性读出:靠电容存储电荷的原理来寄存信息,若电容上有足够多的电荷表示存“1”,电容上五点和表示存“0”。

3.2.5 DRAM刷新原理

1. 动态RAM共有三种刷新方式:集中刷新,分散刷新,异步刷新
2. 刷新的实质:先将原信息读出,再由刷新放大器形成原信息重新写入的再生成的过程。刷新是一行行进行的,必须在刷新周期内

3. 为什么要进行刷新:存储单元被访问是随机的,有些存储单元可能长时间的不被访问,不4. 进行存储器的读写操作,其存储单元内的原信息就可能会丢失。

5. 刷新周期:对DRAM的所有存储单元恢复一次原状态的时间间隔

6. 刷新间隔:两次刷新的起始时间差(某行从第一次刷新到第二次刷新的等待时间)

7. 行刷新间隔:两行刷新的起始时间差

8. 刷新时间:规定的一个周期内刷新的总时间

集中刷新:在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新。

               优点:速度高。
               缺点:存在死区,死时间长。

分散刷新:是指对每行存储单元的刷新分散到每个存储周期内完成。

                优点:无死区。
                缺点:存取周期长,整个系统的速度降低了。                                

异步刷新:前两种方式的结合,缩短了死时间,充分利用了最大刷新间隔为2ms的特点。

3.3 存储器容量的扩展

3.3.1 位扩展

3.3.2 字扩展

3.3.3 位扩展与字扩展小结

3.3.4 字,位扩展

3.4 存储器与CPU的连接

对于 存储器与CPU的连接 我们一般需要考虑以下问题:

  1. 存储芯片的选择
  2. 地址线的连接
  3. 数据线的连接
  4. 片选线的连接
  5. 读写线的连接

以下面例题位例进行讲解:

对于第一问,想要确定容量我们有两种方式可以进行计算。

1. 终值-初值+1:

 6000H-67FFH的范围为(67FF-6000+1)=800

对于十六进制数据进行二进制转换:(800)==> (1000 0000 0000) ==> 2^11 = 2K

2.终值-初值:(数有多少个连1)

6000H-67FFH的范围(67FF-6000)=7FF

对于十六进制数据进行二进制转换:(7FF)==> (0111 1111 1111) ==>  2K

对于第二问我们只要记住:

就可以了,画图也就非常简单啦。

画图可以参考上面的字扩展与位扩展的连线图。

3.5 Cache

3.5.1 为什么引入Cache?

3.5.2 Cache 的读写

3.5.3 Cache的效率

3.5.4 Cache的基本结构

3.5.5 Cache--Memory地址映射

直接映射

i = j mod c

例题:主存512KB,Cache4KB,1字块=16字,1字=32位=4B。

地址总长:

                 512KB = 2^19B ==> 主存的地址位数 = 19

主存字块标记:

                       主存字块标记位数 = 主存地址位数 - cache字块地址位数-字块内地址位数

                      主存字块标记位数 = 19 - 6 - 6 = 7

cache字块地址:

                        4KB /(4B * 16) = 64 = 2^6

                        cache字块地址位数 = 6

字块内地址: 所以1字块=2^4 * 2^2 =2*6b ==> 字块内地址=6

主存字块标记Cache字块地址字块内地址

全相联映射

计算方法同上面的直接映射,只是主存字块标记 = 主存字块标记 + Cache字块地址

主存字块标记字块内地址

组相联映射

主存字块标记组地址字块内地址

4. 运算器

4.1 数的表示

4.1.1 数的表示方法

现在以+5 和 -5 为例,以5个机器字长,第一位为符号位。

数值+5-5
二进制+101-101
真值+ 0101- 0101
原码0 01011 0101
反码0 01011 1010
补码0 01011 1011
移码1 01010 0100
要着重了解他们之间的相互转换。
其中有一点要牢记: 补码对于0的表示方法是唯一的

对于小数有定点小数浮点数。对于定点小数我们分为纯小数纯整数两种类型,

纯小数类型,小数点在最前方,小数点前面的一位为符号位,确定数的正负。

例如-0.1011就是1.1011,+0.1011就是0.1011。

对于纯整数,小数点则在数的后面,我们也就不用写了。

对于浮点数类型,我们可以参考科学计数法。

N = S * r^j

j的大小确定了数的大小范围,S的大小确定数的精度。

4.1.2 数的表示范围

机器字长为n位,其中有一位符号位,则表示数的位数有n-1位。(下面的范围是非常重要的)

原码: -( 2 ^ (n-1) - 1) ~ +2 ^ (n-1) - 1

补码: - 2 ^ (n-1) ~ +2 ^ (n-1) - 1

4.1.3 补码的加减运算

补码的加法:

1)符号位参与运算

2)补码相加,结果仍然是补码

具体情况看下面例题:

转换补码结果
+30 11010 0011
+20 11100 0010
-31 00111 1101
-21 00101 1110
(3+2)补3补 + 2补0 1101 + 0 11100 0101
(3-2)补3补+(-2)补0 1101 +1 00100 0001
(-3+2)补-3)补+2补1 0011 + 0 11101 0001
(-3-2)bu-3)补+(-2) 补1 0011 +1 0010 10101
补码的减法转换成加法就可以了。

其余同加法一样即可。

其中要区分好补码与变补                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

4.1.4 判溢出

4.1.5 移位运算

移位运算包括算术移位与逻辑移位,对于移位运算

4.2 原码一位乘法

对于原码一位乘法,以下面这个例题为例。

首先我们先要确定A,B,C的值,对于A,B我们因为要进行加减运算所以给与双符号位,具体看下面

确定好A,B,C的之后,运算过程一定要有步数,条件,操作,A,C。条件以C的最后一位来看,

当Cn为1时,对A进行+B操作,

当Cn为0时,对A进行加0操作,

然后统一进行右移操作,在最前面进行补0,直到C没有小数。

4.3 补码一位乘法

对于补码一位乘法我们以下的题为例,基本步骤同原码一位乘法,第一步我们依旧首先确定A,B,C的值,相对于前面不同的就是我们要求一个-B。

接下来的步骤和前面一样,只是判定的条件由Cn变为了C(n+1)-Cn

当C(n+1)-Cn为1时,对A进行+B操作,

当C(n+1)-Cn为0时,对A进行加0操作,

当C(n+1)-Cn为-1时,对A进行加-B操作,

之后对于A,C进行右移操作,在最前面要补一位数。

当执行操作为+B时补1,否则补0;

4.4 原码恢复余数除法

首先我们以定点小数为例,对于这个进行除法运算。

接下来我们看看原码恢复余数除法,首先我们记住下面的规则。

以下面这个例题来演示一下我们的原码恢复余数除法

4.5 原码不恢复余数除法

我们依旧以上面的这道题为例来了解一下原码不恢复余数除法。

接下来我们开始做题

对此我们小结一下

4.6 浮点数的四则运算

对于浮点数的四则运算我们要牢记五个步骤,

对阶:使两数阶码相等,小阶向大阶对齐。

尾数求和:求和即可

规格化:

舍入

判溢出

4.7 汉明码

5. 指令系统

5.1 指令

指令(又称机器指令):
是指示计算机执行某种操作的命令,是计算机运行的最小功能单位
一台计算机的所有指令的集合构成该机的指令系统,也称为指令集
注:一台计算机只能执行自己指令系统中的指令,不能执行其他系统的指令。

5.1.1 指令的一般格式:

5.1.2 指令的分类

5.2 寻址方式

5.2.1 指令寻址

1.顺序寻址

       由于指令在内存中是顺序存放,当执行一段程序时,通常是一条指令接一条指令的顺序执行。为了能够指示下一条欲执行指令的指令地址,CPU内部有一个程序计数器 PC (指令指针寄存器IP),每执行一条指令其值自动加1,指向下一条欲执行指令的指令地址。这种程序顺序执行的过程我们称为指令的顺序寻址。PC 就是用来做指令追踪

2.跳跃寻址

       当程序执行循环指令或者转移指令时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址不是由程序计数器PC加1产生,而是将本条指令给出的目标地址装入PC作为下条指令的地址。

5.2.2 操作数寻址
操作码(op)地址码(x)

形式地址是指令字中的地址,有效地址是操作数的内存地址。寻址过程就是通过寻址特征位把操作数的形式地址,变换为有效地址的过程。

主要分类:

1.立即寻址 (操作数=D)

操作数就是形式地址。不访存,快。

2.直接寻址(EA=A)

指令格式的形式地址 A 中直接指出操作数的有效地址EA。

3.间接寻址(EA=(A))

指令字中的形式地址不直接指出操作数的地址,而是指出操作数有效地址所在的存储单元地址。多次访存,慢。

4.隐含寻址

指令字中不明显地给出操作数的地址,其操作数的地址隐含在操作码或某个寄存器中。

5.寄存器寻址(EA=Ri)

地址码字段直接指出了寄存器编号,其操作数在寄存器内。

6.寄存器间接寻址(EA=(Ri))

寄存器中的内容不是操作数,而是操作数所在主存单元的地址号

7.基址寻址(EA=(BR)+A)

BR内容不变 ,A变

8.变址寻址(EA=(IX)+A)

A变,IX内容不变。

9.相对寻址(EA=PC+A)

10.堆栈寻址(了解即可)

6. 控制器

6.1 结构与功能

1.结构:

1)运算器部件通过数据总线与内存储器、输入设备和输出设备传送数据。
2)输入设备和输出设备通过接口电路与总线相连。
3)内存储器、输入设备和输出设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线与其他部件传输数据。
4)控制器部件从数据总线接收指令信息,从运算器部件接收转移指令地址,送出指令地址到地址总线,并向其他部件提供运行所需的控制信号。

2.功能:

1)从主存中取出指令和指出下一条指令的地址
2)进行指令译码、测试,产生对应的控制信号
3)指挥并控制 CPU、主存、I/O之间的数据流

6.2 周期

6.2.1 时钟周期

时钟信号控制节拍发生器产生宽度为一个时钟周期的节拍。

6.2.2 机器周期

通常以存取周期作为基准时间,即内存中读取一个指令字的最短时间作为机器周期。

6.2.3 指令周期

一条指令从主存取出到执行完成的时间。

6.2.4 取指周期

6.2.5 间址周期

6.2.6 执行周期

6.3 CPU控制方式

6.3.1 同步控制

指系统有一个统一的时钟,所有控制信号均来自这个统一的时钟信号;通常以最长的微操作序列和最繁琐的微操作为标准,采取完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行不同指令。优点是电路简单,缺点是速度慢。
 

6.3.2 异步控制

指不存在基准时标信号,各部件按自身固有的速度工作,通过应答方式联络;优点是运行速度快,缺点是控制电路复杂。

6.3.3 联合控制


是同步控制、异步控制的折中,对不同指令的微操作实行大部分采用同步控制、小部分采用异步控制的方法。

6.4 微程序

将每条机器指令编写成一个微程序,每个微程序包含若干微指令,每条微指令对应一个或几个微操作命令

6.4.1 微命令和微操作


一条机器指令可分解为一个微操作序列,而微操作是计算机中最基本、不可再分的操作。
在微程序控制的计算机中,将控制部件向执行部件发出的各种控制命令称为微命令。
微命令的相容性:指那些可以同时产生、共同完成某一些微操作的命令。
微命令的互斥性:指在机器中不允许同时出现的微命令。
微命令的相容与互斥是相对的,不是绝对的。


6.4.2 微指令与微周期


微指令:若干微命令的集合,存放微指令的控制存储器的单元地址称为微地址;一条微指令包括:操作控制字段(操作码字段),用于产生某一步操作所需的各种操作信号;顺序控制字段(微地址码字段),用于控制产生下一条要执行的微指令地址。
微周期:指从控制存储器中读取一条微指令并执行相应微操作所需的时间。
 

6.4.3 主存储器与控制存储器


主存储器用于存放程序和数据,位于 CPU 外部,用 RAM 实现;控制存储器(CM)用于存放微程序,在 CPU 内部,用 ROM 实现。


6.4.4 程序与微程序


程序是指令的有序集合,用于完成特定的功能;微程序是微指令的有序集合,一条指令的功能由一段微程实现。微程序用于描述机器指令,是机器指令的实时解释器,由计算机设计者事先编制好并存放在控制存储器中,一般不提供给用户;程序由机器指令组成,由软件设计人员事先编制好并存放在主存或辅存中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值