文章目录
一、计算机的概念(一)计算机的基本组成(二)五大部件的功能(三)计算机硬件的主要技术指标二、CPU(中央处理器)(一)CPU 的基本概念(二)CPU 指令集(三)CPU的主要性能指标三、指令系统和指令流水(一)指令的组成(二)CPU指令的执行过程(三)指令周期1、指令周期的关系2、指令周期的组成(四)指令流水四、存储器(一)存储器分类(二)高速缓存中的命中率(三)内存地址编址(四)虚拟内存五、计算机的运算方法(一)无符号数和有符号数(二)数的定点和浮点表示(三)原码、补码、反码与移码(四)移位运算六、系统总线(一)总线的概念(二)总线的分类七、中断(一)中断、中断向量、中断源(二)中断系统的分类(三)中断服务程序(四)DMA方式一、计算机的概念
(一)计算机的基本组成
计算机由硬件系统和软件系统两个部分组成,从硬件系统来看,主要由运算器
、存储器
、控制器
、输入设备
和输出设备
五个部分组成,如下: 但现代计算机可简化将五大部件认为由三部分组成,即CPU
(中央处理器,运算器+控制器)、主存储器
和I/O设备
(Input /Output),其中CPU和主存储器可以称为主机,I/O设备可以称为外部设备。(二)五大部件的功能
机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成。
1、运算器
运算器由ALU
、累加器
、通用寄存器
和数据暂存器
等组成,它用于完成算术运算和逻辑运算,并将运算的结果暂存在运算器中(通用寄存器用于存放操作数、中间结果以及各地址信息等,常见的通用寄存器有数据寄存器、地址指针寄存器、累加寄存器等等)。
算术逻辑单元(ALU):是用于完成算术运算和逻辑运算的逻辑电路,它是CPU的执行单元,即CPU的核心组成部分,由And(与门) 和Or(或门)构成,其基本功能为加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、求补等操作。
2、存储器
存储器是计算机系统中的存储设备,用于存放程序和数据
,它根据控制器
指定位置进行存入和存出操作。
3、控制器
控制器,是计算机系统的控制中心,用于控制程序和数据的输入、运行以及处理运算结果,它由程序计数器PC
、指令寄存器IR
、地址寄存器AR
、数据寄存器DR
和指令译码器
等部分组成,控制器从存储器中逐条取出指令,经过分析后向目标位置部件发送控制信号
,从而使计算机完成指令。
4、输入设备和输出设备
输入设备和输出设备合并称为I/O设备
,输入设备将人们熟悉的信息形式转换为机器能识别的信息形式,而输出设备相反,例如键盘、鼠标等是输入设备;打印机、显示器等是输出设备。
(三)计算机硬件的主要技术指标
1、机器字长
CPU进行一次运算所能处理的二进制数据位数
称为机器字长,以单位bit(位
,也称为比特)来衡量,位是数据存储的最小单位【1字节=8位(1byte=8bit)】,由于是二进制代码,即1和0,其中每一个1或0就是一位(bit)。
它通常与CPU的寄存器位数有关,机器字长越长,数的表示范围越大且精度也越高,目前大多数常用计算机处理器都为64位,即64位的计算机,其CPU一次可以处理的二进制数据位数为64位。
2、存储容量
存储容量包括主存容量和辅存容量,主存容量是指主存中存放的二进制代码的总位数,它等于存储单元个数×存储字长,主存中有两个寄存器,分别为存储器地址寄存器(MAR)和存储器数据寄存器(MDR),其中MAR存放将访问的存储单元地址,其位数代表存储单元的个数;MDR存放从存储体中取出的代码或将向某存储单元存入的代码,其位数代表存储字长。辅存通常以字节数表示。
例如,MAR为16位,MDR为32位,则存储单元个数为216=65536,即64K个存储字(1K=1024=210),存储字长为32,所以存储容量为216×32=221=2M(1M=1024K=220)位,也等于218byte(1byte(字节)=8bit(位))。
3、运算速度
常用单位时间内执行指令的平均条数来衡量计算机的运算速度,单位为百万条指令每秒(MIPS)
,另外还有CPI或FLOPS也可以衡量。
二、CPU(中央处理器)
(一)CPU 的基本概念
CPU(中央处理器,Center processing units),又称为微处理器,它是运算器+控制器
组合起来的,这是由于这两者在逻辑关系和电路结构上联系十分紧密。常与CPU相提到的还有GPU(图形处理器,Graphics processing unit)、NPU(网络处理器,Neural-network Processing Unit)等,这里简单了解一下,GPU是用作图像和图形相关运算工作的微处理器,从而使显卡(显卡用于转换驱动,即计算机系统要显示的信息进行转换驱动,并向输出设备输出并显示)减少取CPU的依赖;NPU采用“数据驱动并行计算”的架构,特别擅长处理视频、图像类的海量多媒体数据。
以下两张图:
1、OPPO发布首个自研NPU芯片 马里亚纳 MariSilicon X。
2、麒麟9000E和麒麟9000的差别。
(二)CPU 指令集
CPU用来计算和控制计算机系统的一套指令集合
称为指令集,可将指令集分为精简指令集(RISC)和复杂指令集(CISC)两种,精简指令集采用简单的指令,而复杂指令集采用复杂的指令,如下表:
(三)CPU的主要性能指标
1、主频 (CPU的时钟频率)
时钟频率,其单位为MHz或GHz,它用于表示CPU运算和处理数据的速度
,由于计算机的操作在时钟信号的控制下分步进行的,每个时钟信号周期完成一步操作,时钟频率的高低在很大程度上反映了CPU速度的快慢(CPU内数字脉冲信号震荡的速度),但单从时钟频率上并不能代表CPU的整体性能,因为它只是CPU性能的一个方面。
2、缓存(高速存储器)
缓存是位于CPU与内存之间的高速存储器
,其速度比内存快
(比随机存储器RAM快),缓存主要解决CPU运行速度与内存读写速度不匹配的问题,所以说缓存容量的大小也是衡量CPU的主要性能指标之一,它对CPU速度的影响很大。
缓存分为一级缓存、二级缓存和三级缓存等,一级缓存位于CPU内核旁边,它的容量最小;二级缓存是处理器内部的一些缓冲存储器;三级缓存可以提升大数据计算时处理器的性能。
3、另外,衡量CPU的主要性能指标的还有位和字长。
三、指令系统和指令流水
(一)指令的组成
CPU中一条指令由一组二进制代码来表示,指令是由操作码
和地址码
组成的,一条指令必须有一个操作码,但是可以有多个地址码。
操作码,用于指明指令要完成的操作
,如加法、减法、移位等等,其位数反映了机器的操作种类,即机器允许的指令条数
,若操作码占X位,则该机器最多包含2X条指令。地址码,用于指出操作数的地址(一或两个)
、结果的地址以及下一条指令的地址。
(二)CPU指令的执行过程
CPU指令的执行过程简单可以概括为:首先通过指令译码器
对操作码进行测试,以便识别所要求的操作,操作码经过译码
后,向控制器发出具体的对应信号。控制器的基本功能为取指令
、分析指令
和执行指令
,即CPU指令的执行过程如下三个步骤:
1、取指令
控制器根据程序计数器
(PC)提供的指令地址从主存储器
中读取指令,送到主存数据缓冲器
中,然后再送往CPU内的指令寄存器
(IR)中,同时改变PC的内容
,使其指向下一条指令地址或紧跟当前指令的立即数或地址码。
2、分析指令
分析
控制器要发出的指令所对应的操作
,且分析参与此次操作的操作数地址
,根据寻址方式计算地址,然后到存储器中取操作数;若是双操作数指令,这需两个取数周期来取操作数;另外若无操作数指令,则直接进入下一个过程。
3、执行指令
形成操作控制信号序列,通过对运算器、存储器以及I/O设备的操作,执行每条指令。
总之,CPU必须具有控制程序的顺序执行(指令控制)、产生完成每条指令所需的控制命令(操作控制)、对各种操作加以时间上的控制(时间控制)、对数据进行算术运算和逻辑运算(数据加工)以及处理中断等功能。
(三)指令周期
1、指令周期的关系
指令周期可以划分为几个不同的阶段,每个阶段所需的时间称为机器周期,也称为CPU工作周期或基本周期,这个周期是处理操作的最基本单位,另外机器周期又由若干个时钟周期组成。
2、指令周期的组成
按刚刚上述CPU指令的处理过程来看,也就是完成一条指令的全部时间等于取指令、分析指令和执行指令所花的时间总和,所以我们将CPU每取出并执行
一条指令所需的全部时间称为指令周期,也就是CPU完成一条指令的时间。另外将完成取指令和分析指令的操作所花的时间称为取指周期,而执行指令所花的时间称为执行周期,如下图:
当对于间接寻址的命令来说,还要在取指周期和执行周期之间加一个间址周期,此时需先访问一次存储器,取出有效地址,然后再访问存储器,从而取出操作数,如下图:
准确的来说,一个完整的指令周期包括取指周期、间址周期、执行周期和中断周期四个子周期,其中间址周期的存在是判断是否有间接寻址,中断周期的存在是判断是否有中断,即中间址周期和中断周期不一定包含在每个指令周期内,所以我们一开始所述一般的指令周期包括指令周期包含两部分。
(四)指令流水
指令流水原理也就是将指令分解成多个小步骤,其中各个步骤相互,重叠,从而可以使多条命令并行处理从而提高效率,例如下图是指令的二级流水:
流水线中执行的总时间主要取决于流水操作步骤中耗时时间最长的操作
,设流水线由N段组成,每段所需时间分别为t,其中tj为时间最长的那一段的执行时间,则完成M个任务的实际时间为每段时间的总和+(M-1)×tj。
流水线性能通常用吞吐率、加速比和效率三项指标来衡量,如下:
1、吞吐率
在单位时间内流水线可以处理的任务或执行指令的数量称为吞吐率,吞吐率分为最大吞吐率和实际吞吐率,其中实际吞吐率总是小于最大吞吐率
。
最大吞吐率是指流水线在连续流动达到稳定状态后所获得的吞吐率,若各段时间均为△t,则最大吞吐率
Tpmax如下:实际吞吐率是指流水线完成n条指令的实际吞吐率,对于m段的指令流水线,若各段时间均为△t,则在m段流水线上完成n条指令的时间为T=m△t+(m-1)△t,连续处理n条指令,其实际吞吐率
Tp如下(当n≫m时,Tp≈Tpmax):
2、加速比
加速比是指m段流水线的工作速度
与等功能的非流水线工作速度
之比,若数值越大,则说明该流水线的工作安排方式越好。
设流水线各段时间均为△t,在m段流水线上完成n条指令的时间为T1=m△t+(m-1)△t,但对于等效的非流水线工作,其所需时间为T2=nm△t,即加速比Sp为(当n≫m时,Sp≈m):
3、效率
效率是指流水线中各功能段的利用率,利用率等于加速比Sp/m(m为流水线的段数),也等于Tp△t(流水线各段时间为△t)。
四、存储器
(一)存储器分类
存储器分类有很多分类方法,
1、按存储器在计算机中的作用
可分类如下几种存储器:
2、按数据的存取方式可分为以下五种存储器:
1、RAM和ROM
常说的比如手机或电脑内存多少G+多少G也就是指的是RAM和ROM(运行内存即对应的RAM,而ROM则是存储容量),它们最大的区别是数据的易失性
,即一旦断电后RAM所存储的数据将随之丢失,所以在计算机和数字系统中RAM用来暂时存储程序、数据和中间结果,常用于主存和高速缓存中;
DRAM以电容充电放电原理来寄存信息,SROM以触发器原理来寄存信息,其中SRAM在不断电的情况下,其储存的信息一直不会丢失,而DRAM会随着时间的延长而逐渐消失,它只能保持很短的时间,所以需要定时对其刷新来保持信息不丢失。
ROM是固定的,它是非易失性存储器
,所以它被用作操作系统的固化,即只能对存储的内容读出,但不能对其重新写入修改,ROM的读取速度通常比RAM慢一些。
总的来说,RAM和ROM这两种存储器共同作为主存的一部分,统一构成主存的地址域。
2、SAM
SAM存储器只能按照某种顺序进行顺序存取
,存取时间的长短与信息在存储体上的物理位置有关,例如磁带就是SAM的一种。
3、DAM
DAM采用直接存取方式对信息进行存取,当存取时,直接指向
该存储器的某个范围
(某个磁道),然后在范围内进行顺序检索
,找到地址后再进行读写操作,所以说这种存储器的存取时间与信息所在的物理位置有关。
4、CAM
CAM是一种基于数据内容进行访问
的存储器,写入数据时,自动选择一个未使用的空单元进行存储;读取数据时,不直接使用存储单元的地址,而是使用该数据或该数据的一部分内容来检索地址
,由于它能同时对所有存储单元的数据进行比较,是并发进行的,所以CAM速度非常快。
闪存
闪存,也称为快闪存储器,它是一种电子式可清除程序化只读存储器(ROM)的形式,即使断电后数据也不会丢失,所以说它是一种非易失性存储器
,而RAM断电后数据会丢失;随机存取存储器(RAM)是以字节为单位来改写数据,而闪存存储是以固定的区块为单位
,由于闪存写入次数有限制,且读写速度相对于RAM较慢
,所以不适合作为主存
,但可将其作为ROM的替代品
使用。
(二)高速缓存中的命中率
在高速缓存中,设直接访问主存的时间为M秒,访问高速缓存的时间为N秒,CPU访问内存的平均时间为L秒,命中率为H,则满足L=M×(1-H)+N×H
。
(三)内存地址编址
编址是给内存单元进行编号,通常通过十六进制
数字表示,按照从小到大连续编排成为内存的地址,其中每个内存单元的大小为一个字节,即8bit,其内存容量等于最高地址-最低地址+1
。
(四)虚拟内存
虚拟内存属于计算机内存管理技术,它会开辟一个逻辑连续的内存
(一段连续完整的地址空间),在物理上,它通常被分隔成多个物理内存碎片,还有部分存储在外部磁盘存储器上,只有在需要时才进行数据交换。
五、计算机的运算方法
(一)无符号数和有符号数
前面已经讲到过,CPU进行一次运算所能处理的二进制数据位数称为机器字长,以单位bit(位,也称为比特)来衡量,即寄存器的位数
为机器字长,在寄存器中每一位都用于存放数值,在计算机中参与运算的数分为两类:无符号数和有符号数。
这两种数的区别是,有符号数在存放时,需在其最高位留位置用于存放其符号【正号“+
”代表0
,负号“-
”代表1
】,而无符号数不需要,当机器字长相同的情况下,两种数对应的数值范围是不同的。
如下,以机器字长为4位为例,无符号数的数值范围与有符号数值范围是不同的:
(二)数的定点和浮点表示
在计算机中,小数点的表示方法有两种,分为定点表示和浮点表示,我们将分别用定点表示和浮点表示的数称为定点数和浮点数。定点数的小数点的位置是固定的,当其位于机器数的符号和第一数值位之间时,这种数称为纯小数,而小数点位于数值位之后的机器数称为纯整数。
浮点数其小数点的位置可以浮动,表示方法:N=S×rj,即浮点数由阶码j、尾数S和基数r组成。
总的来说,浮点数在数的表示范围、数的精度、溢出处理等方面上均优于定点数,但在运算规则、运算速度及硬件成本方面不如浮点数。
(三)原码、补码、反码与移码
1、原码
原码是直接用二进制表示的数值的编码,但在数值前添加了一位符号(+代表0,-代表1),在计算机中通常不使用原码表示数据。若一个定点整数或定点小数为正数
,则它们的原码为其本身
,当为负数
时,定点整数的原码为2n-X,定点小数的原码为1-X,另外整数的符号位与数值位之间通过逗号“,
”隔开,小数的符号位与数值位之间通过小数点“.
”隔开。
例如求下列定点整数和定点小数的原码:
注:例如8位原码的表示范围为-127至-0以及+0至127,一共256个。
2、反码
正数
的反码也是其本身
,而负数的反码是对其原码的所有位,除符号位之外按位取反(1->0,0->1),从而得到反码;负数的反码也可以通过公式求得,其中定点整数的反码为2n+1-1+X,定点小数的反码为2-2-n+X。
例如求下列定点整数和定点小数的反码:
3、补码
正数
的补码与原码、反码一样,都是其本身
,而负数的补码是对其原码所有位,除符号位之外按位取反(1->0,0->1),并在末位补加1【简述为取反加一
】,它比反码就多了加1这个步骤;负数的补码也可以通过公式求得,其中定点整数的补码为2n+1+X,定点小数的补码为2+X。
例如求下列定点整数和定点小数的补码:
注:例如8位补码的表示范围为-127至0至127,一共256个。
4、移码
移码又称为增码,是符号位取反的补码,即移码与补码只是符号位相反
,一般用做浮点数的阶码表示,因此只用于整数
,目的是保证
浮点数的机器零为全零
。
(四)移位运算
对于一个正数
,由于其原码=补码=反码,所以经过经过移位后出现的空位以0补齐
;而对于负数
,由于各种编码的表示形式不同,所以当机器数移位时,对空位的补齐要根据相关规则来进行补齐,如下表:
六、系统总线
(一)总线的概念
总线是计算机中各功能部件之间传送信息的公共通信干线
,计算机使用总线结构便于增减外设
,同时减少了信息传输线的条数
,可以提高系统的可扩展性
。
(二)总线的分类
总线可分为内部总线和系统总线,内部总线是指CPU内部连接各寄存器的总线,系统总线是指CPU与主存储器及外部设备接口相连的·总线。按照计算机所传输的信息种类,计算机的总线可以划分为数据总线
(DB)、地址总线
(AB)和控制总线
(CB),它们分别用来传输数据、数据地址和控制信号。1、数据总线
数据总线用于传输各功能部件之间的数据信息
,它一般是双向总线
,其位数称为数据总线宽度,它是衡量系统性能的一个重要参数。
2、地址总线
地址总线是单向总线
,它用于指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址,地址线的位数与存储单元的个数有关,若地址线的根数为M,则对应的存储单元个数(地址总线可访问的最大存储容量)为2M字节。
3、控制总线
控制总线是用于发出各种控制信号
的传输线,各部件能在不同时刻占有总线使用权,需通过控制总线实现,通常来说它也是单向总线
。
七、中断
(一)中断、中断向量、中断源
当计算机在执行程序的过程中,出现异常情况或特殊请求,计算机停止了现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回到现行程序的间断处,继续执行原程序,称为中断
,而中断程序的入口地址称为中断向量
,另外我们把凡是能向CPU提出中断请求的各种因素称为中断源
,同时还要注意当多个中断源同时向CPU提出中断请求时,此时CPU坚持一个原则,即任何瞬间只接受一个中断源的请求。(二)中断系统的分类
中断系统可以根据对中断处理策略的不同分类为单级中断系统和多级中断系统,单级在响应某一中断请求后,在此期间不允许被其他中断源打断
,也就是只能等其执行完毕;而多级中具有多个不同优先级的中断源
,其中优先级级别高的可以打断优先级级别低的中断服务程序,从而以程序嵌套
的方式进行工作。
(三)中断服务程序
一般中断服务程序的流程分为以下四个部分:
CPU暂停现行程序,此时保护程序的断点
(由中断隐指令完成)和保存CPU中各种寄存器的值
(由中断服务程序完成),称为保护现场,中断服务程序的最后一条指令是中断返回指令
,当执行结束后,即中断返回至原程序的断点处,从而整个完整的程序中断处理过程完成。
(四)DMA方式
当CPU处理I/O事件时有大量数据需处理时,通常不使用中断,而是使用使CPU效率更高的DMA控制方式
,在该方式下,主存和外设之间建立了直接的数据通路
,其中具体操作由DMA控制器来实行和完成(不需要CPU参与),当数据传送完成后再将信息反馈给CPU,这样就提高了I/O系统处理数据的能力,并减少了CPU周期的浪费,例如磁盘适合用DMA方式来实现输入输出操作。