一、计算机的概念
(一)计算机的基本组成
计算机由硬件系统和软件系统两个部分组成,从硬件系统来看,主要由运算器
、存储器
、控制器
、输入设备
和输出设备
五个部分组成,如下:
- 现代计算机可简化将五大部件认为由三部分组成,即
CPU
(中央处理器,运算器+控制器)、主存储器
和I/O设备
(Input /Output),其中CPU和主存储器可以称为主机,I/O设备可以称为外部设备。
(二)五大部件的功能
机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成。
1、运算器
- 运算器由
算术逻辑单元
(ALU)、累加器
(AC)、通用寄存器
和数据暂存器
等组成,它用于完成算术运算和逻辑运算,并将运算的结果暂存在运算器中(通用寄存器用于存放操作数、中间结果以及各地址信息等,常见的通用寄存器有数据寄存器、地址指针寄存器、累加寄存器等等)。【CPU执行算术运算或者逻辑运算时,常将源操作数和结果暂存在AC中】
算术逻辑单元(ALU):是用于完成算术运算和逻辑运算的逻辑电路,它是CPU的执行单元,即CPU的核心组成部分,由And(与门) 和Or(或门)构成,其基本功能为加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、求补等操作。
2、存储器
- 存储器是计算机系统中的存储设备,用于
存放程序和数据
,它根据控制器指定位置进行存入和存出操作。
3、控制器
- 控制器,是计算机系统的控制中心,它决定计算机运行过程的自动化,用于控制程序和数据的输入、运行以及处理运算结果,由
程序计数器PC
、指令寄存器IR
、地址寄存器AR
、数据寄存器DR
和指令译码器ID
等部分组成,控制器从存储器中逐条取出指令,经过分析后向目标位置部件发送控制信号
,从而使计算机完成指令。
以下是各部件以及各种寄存器的作用:
名称 | 作用 |
---|---|
程序计数器PC | 也称为指令计数器,指出下条指令在主存中的存放地址,从而CPU取得指令,其功能是计数、存储信息,另外它也可以临时存储算术/逻辑运算结果 |
指令寄存器IR | 寄存,即保存当前正在执行的这条指令的代码 |
地址寄存器AR | 存放CPU当前访问的内存单元地址 |
数据寄存器DR | 暂存从内存储器中读出或写入的指令或数据 |
指令译码器ID | 译码,对获取的指令进行译码,并产生信号使计算机各部件完成指令 |
例如,程序员可以通过汇编语言访问程序计数器PC,可以通过指令进行改变,但 不能访问指令寄存器IR、存储器数据寄存器MDR、存储器地址寄存器MAR等。
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)两种,精简指令集采用简单的指令,而复杂指令集采用复杂的指令,如下表:
不同点 | 精简指令集(RISC) | 复杂指令集(CISC) |
---|---|---|
指令数量 | 简单 | 复杂 |
CPU中通用寄存器数量 | 多 | 较少 |
控制器实现 | 硬布线控制,即组合逻辑器 | 微程序控制器 |
指令执行方式 | 并行处理(采用超标量和超流水线结构) | 顺序串行执行 |
计算机各部分利用率 | 高 | 低 |
指令执行速度 | 快 | 较慢 |
编程的便利性 | 较难 | 较容易 |
(三)CPU的主要性能指标
1、主频 (CPU的时钟频率)
时钟频率,其单位为MHz或GHz,它用于表示CPU运算和处理数据的速度
,由于计算机的操作在时钟信号的控制下分步进行的,每个时钟信号周期完成一步操作,时钟频率的高低在很大程度上反映了CPU速度的快慢(CPU内数字脉冲信号震荡的速度),但单从时钟频率上并不能代表CPU的整体性能,因为它只是CPU性能的一个方面。
2、缓存(高速存储器)
缓存是位于CPU与内存之间的高速存储器
,其速度比内存快
(比随机存储器RAM快),缓存主要解决CPU运行速度与内存读写速度不匹配的问题,所以说缓存容量的大小也是衡量CPU的主要性能指标之一,它对CPU速度的影响很大。
缓存分为一级缓存、二级缓存和三级缓存等,一级缓存位于CPU内核旁边,它的容量最小;二级缓存是处理器内部的一些缓冲存储器;三级缓存可以提升大数据计算时处理器的性能。
3、另外,衡量CPU的主要性能指标的还有位和字长。
三、指令系统和指令流水
(一)指令的组成
CPU中一条指令由一组二进制代码来表示,指令是由操作码
和地址码
组成的,一条指令必须有一个操作码,但是可以有多个地址码。
- 操作码,用于
指明指令要完成的操作
,如加法、减法、移位等等,其位数反映了机器的操作种类,即机器允许的指令条数
,若操作码占X位,则该机器最多包含2X条指令。 - 地址码,用于
指出操作数的地址(一或两个)
、结果的地址以及下一条指令的地址。
(二)CPU指令的执行过程
- CPU指令的执行过程简单可以概括为:首先通过
指令译码器ID
对操作码进行测试,以便识别所要求的操作,操作码经过译码
后,向控制器发出具体的对应信号。
控制器的基本功能为取指令
、分析指令
和执行指令
,即CPU指令的执行过程如下三个步骤:
1、取指令
控制器根据程序计数器
(PC)提供的指令地址从主存储器
中读取指令,送到主存数据缓冲器
中,然后再送往CPU内的指令寄存器
(IR)中,同时改变PC的内容
,使其指向下一条指令地址或紧跟当前指令的立即数或地址码。
2、分析指令
分析
控制器要发出的指令所对应的操作
,且分析参与此次操作的操作数地址
,根据寻址方式计算地址,然后到存储器中取操作数;若是双操作数指令,这需两个取数周期来取操作数;另外若无操作数指令,则直接进入下一个过程。
3、执行指令
形成操作控制信号序列,通过对运算器、存储器以及I/O设备的操作,执行每条指令。
总之,CPU必须具有控制程序的顺序执行(指令控制)、产生完成每条指令所需的控制命令(操作控制)、对各种操作加以时间上的控制(时间控制)、对数据进行算术运算和逻辑运算(数据加工)以及处理中断等功能。
(三)指令的寻址方式
寻址方式是指确定本条指令的数据地址以及下一条将要执行的指令地址的方法,它分为指令寻址和数据寻址,这里简单介绍指令寻址,主要针对数据寻址展开(介绍主要的几个数据寻址)。
1、指令寻址
指令寻址又分为顺序寻址和跳跃寻址,顺序寻址通过程序计数器PC
加1,自动形成下一条指令的地址;跳跃寻址通过转移类指令
实现。
2、数据寻址
- 在指令系统中的各种寻址方式中,获取操作数最快的是
立即寻址
,它的执行速度最快,在取指令时一并将操作数取出。 直接寻址
不需要专门计算操作数的地址,只对主存访问一次,但必须修改形式地址的值才能修改操作数的地址,形式地址的位数限制了操作数的寻址范围。间接寻址中
有效地址由形式地址间接提供,它与直接寻址相比扩大了操作数的寻址范围,另外一个优点是便于编制程序。寄存器寻址
中寄存器直接寻址,在其指令执行阶段无须访问主存,减少了执行时间,且由于指令字较短,也节省了存储空间。
例、若某计算机字长为32位,内存容量为2GB,按字编址,则寻址范围为____________。
解:由1GB=1024MB,1MB=1024KB,1KB=1024B,且1B=8bit可得:
内存容量2GB=2×1024×1024×1024×8位,
由于计算机字长为32位,所以存储单元的个数为2×1024×1024×1024×8/32=512×1024×1024,即512MB,
所以寻址范围为512M。
(四)指令周期
1、指令周期的关系
指令周期可以划分为几个不同的阶段,每个阶段所需的时间称为机器周期,也称为CPU工作周期或基本周期,这个周期是处理操作的最基本单位,另外机器周期又由若干个时钟周期组成。
2、指令周期的组成
- 按刚刚上述CPU指令的处理过程来看,也就是完成一条指令的全部时间等于取指令、分析指令和执行指令所花的时间总和,所以我们将CPU每
取出并执行
一条指令所需的全部时间称为指令周期,也就是CPU完成一条指令的时间。
另外将完成取指令和分析指令的操作所花的时间称为取指周期,而执行指令所花的时间称为执行周期,如下图:
当对于间接寻址的命令来说,还要在取指周期和执行周期之间加一个间址周期,此时需先访问一次存储器,取出有效地址,然后再访问存储器,从而取出操作数,如下图:
- 准确的来说,一个完整的指令周期包括取指周期、间址周期、执行周期和中断周期四个子周期,其中间址周期的存在是判断是否有间接寻址,中断周期的存在是判断是否有中断,即中间址周期和中断周期不一定包含在每个指令周期内,所以我们一开始所述一般的指令周期包括指令周期包含两部分。
(五)指令流水
指令流水原理也就是将指令分解成多个小步骤,其中各个步骤相互,重叠,从而可以使多条命令并行处理从而提高效率,例如下图是指令的二级流水:
流水线中执行的总时间主要取决于流水操作步骤中耗时时间最长的操作
,设流水线由N段组成,每段所需时间分别为t,其中tj为时间最长的那一段的执行时间,则完成M个任务的实际时间为每段时间的总和+(M-1)×tj
。
例、某四级指令流水线分别完成取指、取数、运算、保存结果四步操作,其完成相应操作的时间依次为1ns、2ns、3ns、4ns。
①求该流水线的操作周期至少为多长时间?
②求执行完100条指令后需多长时间?
答:①可知其中执行时间最长的操作时间为T=4ns,故该流水线的操作周期至少为4ns。
②T总=(1+2+3+4)+(100-1)×4=406ns。
例、将一条指令的执行过程分解为取指、分析、执行三步,按照流水方式执行,若取指时间为4△t,分析时间为2△t,执行时间3△t,则执行100条指令需要的时间为___________△t。
解:建立时间为:4△t+2△t+3△t=9△t,
由于该流水线的操作周期为4△t,每4△t执行完一条指令,所以:
9△t+(100-1)×4△t=405△t。
流水线的性能通常用吞吐率、加速比和效率三项指标来衡量,如下:
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)。
四、存储
(一)开放系统
- 基于Windows、Linux和Unix等操作系统的服务器称为
开放系统
,开放系统的数据存储方式分为内置存储和外挂存储。
其中外挂存储可根据连接的方式分为直连式存储(DAS)和网络化存储,常用的网络化存储有网络接入存储(NAS)和存储区域网络(SAN)。
(二)计算机存储体系
一般计算机系统中有两种存储体系,如下:
1、Cache存储体系
由高速缓冲存储器Cache
和主存储器
组成,主要目的是提高存储器速度,对系统程序员以上均透明;
2、虚拟存储体系
由在线磁盘存储器
和主存储器
等辅存组成,主要目的是扩大存储器容量,对应用程序员透明。
虚拟内存属于计算机内存管理技术,它会开辟一个逻辑连续的内存(一段连续完整的地址空间),在物理上,它通常被分隔成多个物理内存碎片,还有部分存储在外部磁盘存储器上,只有在需要时才进行数据交换。
(三)主存和Cache
- 主存(主存储器)主要由
存储体
、控制线路
、地址寄存器
、数据寄存器
和地址译码电路
组成(地址译码电路将地址转换成对应的存储单元地址),主存储器用于存放将要参与运行的程序和数据
。
另外为了使主存的速度与CPU速度相匹配,会在主存与CPU之间插入一种比主存速度更快、容量更小的高速缓冲存储器Cache
,它也称为缓存,现通常将Cache制作在CPU内。由硬件自动通过地址映射将主存的程序按一定的方法装进Cache中,从而建立主存与Cache的地址对应关系。
计算机中CPU对存储访问的速度由快到慢的顺序依次为:
寄存器>Cache>内存>硬盘
(四)存储器分类
存储器分类有很多分类方法,
1、按存储器在计算机中的作用
可分类如下几种存储器:
2、按数据的存取方式
可分为以下五种存储器:
(1)RAM和ROM
常说的比如手机或电脑内存多少G+多少G也就是指的是RAM和ROM(运行内存即对应的RAM,而ROM则是存储容量),它们最大的区别是数据的易失性
,即一旦断电后RAM所存储的数据将随之丢失,所以在计算机和数字系统中RAM用来暂时存储程序、数据和中间结果,常用于主存和高速缓存中;ROM是固定的,它是非易失性存储器
,所以它被用作操作系统的固化,即只能对存储的内容读出,但不能对其重新写入修改,ROM的读取速度通常比RAM慢一些。
DRAM以电容充电放电原理来寄存信息,SROM以触发器原理来寄存信息,其中SRAM在不断电的情况下,其储存的信息一直不会丢失,而DRAM会随着时间的延长而逐渐消失,它只能保持很短的时间,所以需要定时对其刷新来保持信息不丢失。
- 总的来说,RAM和ROM这两种存储器共同作为主存的一部分,统一构成主存的地址域,其中由于DRAM需要刷新,速度较低,但其成本也低,所以用作主存储器,即
计算机系统的主存主要是由DRAM构成的
,而SRAM无须刷新、功耗小、速度快,但其集成度低,常用于CPU与主存之间的高速缓存。
(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
。
例1、内存单元按字节编址,求地址0000A000H-0000BFFFH共有多少个存储单元。
答:M=[(0000B-0000A)+1]×4K=2×4K=8K,所以共有8K个存储单元。
例2、内存单元按字节编址,地址为A0000H到CFFFFH,共有_________字节,若用存储器芯片存储容量为64K×8bit来构成,则至少需________片。
答:M=(D-A)+1=CFFFF-A0000+1=30000H个地址空间,转为二进制则为:0011 0000 0000 0000 0000=192K,按字节编制为192KB,所以192K×8/64K×8=3片。
例3、内存单元按字节编址,若用存储容量为32K×8bit的存储器芯片构成从地址A0000H到DFFFFH的内存,求至少需要多少片芯片。
答:M=[(D-A)+1]×64K=256K,即共256K个存储单元,256/32=8,所以至少需要8片芯片。
五、计算机的运算方法
(一)无符号数和有符号数
前面已经讲到过,CPU进行一次运算所能处理的二进制数据位数称为机器字长,以单位bit(位,也称为比特)来衡量,即寄存器的位数
为机器字长,在寄存器中每一位都用于存放数值,在计算机中参与运算的数分为两类:无符号数和有符号数。
这两种数的区别是,有符号数在存放时,需在其最高位留位置用于存放其符号【正号“+
”代表0
,负号“-
”代表1
】,而无符号数不需要,当机器字长相同的情况下,两种数对应的数值范围是不同的。
符号 | 有符号数的符号含义 |
---|---|
+ | 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补齐
;而对于负数
,由于各种编码的表示形式不同,所以当机器数移位时,对空位的补齐要根据相关规则来进行补齐,如下表:
真值 | 补齐代码 |
---|---|
正数 | 以0补齐 |
负数 | 原码以0补齐;反码以1补齐;补码若左移以0补齐,若右移以1补齐 |
六、系统总线
(一)总线的概念
总线是计算机中各功能部件之间传送信息的公共通信干线
,计算机使用总线结构便于增减外设
,同时减少了信息传输线的条数
,可以提高系统的可扩展性
。
(二)总线的分类
- 总线可分为内部总线和系统总线,内部总线是指CPU内部连接各寄存器的总线,系统总线是指CPU与主存储器及外部设备接口相连的·总线。
按照计算机所传输的信息种类,计算机的总线可以划分为数据总线
(DB)、地址总线
(AB)和控制总线
(CB),它们分别用来传输数据、数据地址和控制信号,如下:
1、数据总线
数据总线用于传输各功能部件之间的数据信息
,它一般是双向总线
,其位数称为数据总线宽度,它是衡量系统性能的一个重要参数。
2、地址总线
地址总线是单向总线
,它用于指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址,地址线的位数与存储单元的个数有关,若地址线的根数为M,则对应的存储单元个数(地址总线可访问的最大存储容量)为2M字节。
3、控制总线
控制总线是用于发出各种控制信号
的传输线,各部件能在不同时刻占有总线使用权,需通过控制总线实现,通常来说它也是单向总线
。
(三)总线周期
总线周期是指在CPU完成一次访问指令缓存或I/O端口操作所需要的时间,CPU响应直接内存存取
(DMA)请求时,只能是完成一个总线周期结束时。
七、中断
(一)中断、中断向量、中断源
- 当计算机在执行程序的过程中,出现异常情况或特殊请求,计算机停止了现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回到现行程序的间断处,继续执行原程序,称为
中断
,而中断程序的入口地址称为中断向量
,另外我们把凡是能向CPU提出中断请求的各种因素称为中断源
,同时还要注意当多个中断源同时向CPU提出中断请求时,此时CPU坚持一个原则,即任何瞬间只接受一个中断源的请求。
(二)中断系统的分类
中断系统可以根据对中断处理策略的不同分类为单级中断系统和多级中断系统,单级在响应某一中断请求后,在此期间不允许被其他中断源打断
,也就是只能等其执行完毕;而多级中具有多个不同优先级的中断源
,其中优先级级别高的可以打断优先级级别低的中断服务程序,从而以程序嵌套
的方式进行工作,即为了便于实现多级中断,使用堆栈
来保护断点和现场最有效(实现中断嵌套后进先出的栈来保护断点和现场)。
(三)中断服务程序
一般中断服务程序的流程分为以下四个部分:
CPU暂停现行程序,此时保护程序的断点
(由中断隐指令完成)和保存CPU中各种寄存器的值
(由中断服务程序完成),称为保护现场,中断服务程序的最后一条指令是中断返回指令
;当执行结束后,即中断返回至原程序的断点处,从而整个完整的程序中断处理过程完成。
(四)DMA方式
当CPU处理I/O事件时有大量数据需处理时,通常不使用中断,而是使用使CPU效率更高的DMA控制方式
,在该方式下,主存和外设之间建立了直接的数据通路
,其中具体操作由DMA控制器来实行和完成(不需要CPU参与),当数据传送完成后再将信息反馈给CPU,这样就提高了I/O系统处理数据的能力,并减少了CPU周期的浪费,例如磁盘适合用DMA方式来实现输入输出操作。