互连及输入输出组织
一、输入设备和输出设备
输入输出系统:通常把外部设备及其接口线路、I/O控制部件以及I/O软件系统称之。
输入输出组织的功能:
主要用于控制外设与内存、外设与CPU之间进行数据交换。
实现输入输出功能的关键是要解决的问题是:
如何在CPU、主存和外设之间建立一个高效的信息传输“通路”;
怎样将用户的I/O请求转换为成对设备的控制命令;
如何对外设进行编址;
怎样使用CPU方便地寻找到要访问的外设;
I/O硬件和I/O软件如何协调完成主机和外设之间的数据传送等。
输入输出设备(又称外围设备或外部设备,简称外设)是计算机系统与人或它机之间进行信息交换的装置。
输入设备的功能是把数据、命令、字符、图形、图像、声音或电流、电压等信息,以计算机可以接收和识别的二进制代码形式输入到计算机中,供计算机进行处理。
输出设备的功能是把计算机处理的结果,变成人最终可以识别的数字、文字、图形、图像或声音等信息,然后播放、打印或显示输出。
1.键盘
键盘有外壳、按键和电路板三部分组成。按键的结构有两类:
一类是触点式按键,它借助触点开关的接通或断开,来产生电信号;
另一类是非触点式开关,利用电压、电流或电磁场的变化产生输出信号。
按键的排列是一个m*n的二维阵列,每个按键对应该阵列中的一个位置。键盘采用“按列扫描、接地检查”的方式进行工作。
2.鼠标器
鼠标器(mouse)是一种相对定位设备。它能方便地控制屏幕上的光标移动到指定的位置,并通过按键完成各种操作。
根据鼠标器所采用传感器技术的不同,鼠标器可以分为两类:机械式与光电式。
鼠标器的技术指标之一是分辨率,用dpi(dots perinch)表示,它指鼠标在桌上每移动一英寸,光标在屏幕上所移动的像素数。对光电鼠标来说,反映其性能的另一个指标是帧速率,即刷新频率。它指DSP每秒钟可以处理的图像帧数。
鼠标器与主机相连的接口主要有USB或PS/2接口或无线接口。
3.打印机
1.针式打印机
击打式打印机是最早研制成功的计算机打印设备。它以机械力量击打字锤从而使字模隔着色带在纸上打印出字来。按字锤或字模的构成方式来分,又可以分成整字形打印设备和点阵打印设备两类。
打印机通过打印控制器或打印适配器与主机连接,打印控制器由以下基本部件组成:
①数据锁存器:暂存CPU送来的打印数据。
②命令译码器:对CPU送来的命令进行译码,产生打印控制器内部使用的几个命令。
③控制锁存器:锁存CPU送来的控制命令。
④状态锁存器:保存打印机送来的状态信息,以供CPU随时监测用。
2.激光打印机
激光印字由打印机控制器和打印装置两部分组成。打印机控制器一般由肝功能较强的处理器、缓冲存储器以及相应的辅助电路构成,负责与主机的通信、解释主机送来的打印语言。格式化打印内容、光栅化处理等,然后送打印装置进行输出。
彩色激光印字机,一般带有多种颜色的硒鼓,最典型的是C(青色)、M(品红)、Y(黄色)、K(黑色)四种颜色。彩色印刷过程可先由处理器把彩色图像分解成C、M、Y、K四种单色的图像(称为“分色”过程),再由打印装置分4次套色印刷来完成。
3.喷墨打印机
喷墨打印机利用喷墨头喷射出可控的墨滴从而在打印纸上形成文字或图片,也是目前应用较多的一种打印输出设备。
4.显示器
显示器是用来显示数字、字符、图形和图像的设备,它由显示器(也称监视器)和显示控制器组成。
计算机使用的显示器主要分为两种:
- 阴极射线管(CRT)显示器
- LCD液晶平板显示器
1.CRT显示器
它由阴极射线管(CRT)、亮度控制电路(控制栅)以及扫描偏转电路(水平/垂直扫描偏转线圈)等部件构成。CRT显示器采用光栅扫描的方式显示图像。电子束在水平同步信号和垂直同步信号的控制下,在屏幕上按行优先的方式形成光点。
水平扫描周期的倒数称为行频,垂直扫描周期的倒数称为帧频,也称为刷新频率。
液晶显示器的基本原理是基于液晶如下物理特性:
液晶通电时会改变其排列次序,从而影响光线的通过。
显示器工作时有两种模式。一种是字符模式,显示存储器(简称显存、VRAM、也称刷新存储器)中存放的是字符的编码(ASCII码或汉字代码)及其属性(如加亮、闪烁等),其字形信息存放在字符发生器中。另一种模式是图形模式,此时每一字符的点阵信息直接存储在显示存储器中,字符在屏幕上的显示位置可以定位到任意点。
彩色或单色多级灰度图像显示时,每一个像素需要使用多个二进位来表示,每个像素对应的二进位数称为颜色深度。在图形模式下,显示控制器(CRTC)还能实现画图功能。
显示控制器可以集成在主板上,这种情况下,它称为集成显卡;也可以以独立的图形显示卡(简称显卡)的方式插在主板扩充槽中称谓独立显卡。
二、外部存储器
1.磁表面存储原理
磁表面存储器中信息的存取,主要由磁层和磁头来完成。磁层是存放信息的介质,它由非矩形剩磁特性的导磁材料(如氧化铁、镍钴合金等)构成。磁头是实现“磁-电”和“电-磁”转换的元件,由高导磁率的软磁性材料做成铁芯,在铁芯上开有缝隙并绕有线圈。
①信息写入过程
②信息读出过程
③磁表面存储器的性能指标
- 记录密度:道密度和位密度
- 存储容量
- 平均存取时间(average access time)
- 数据传输速率
④数据记录方式
数据记录方式是指将数字信息转换成磁表面的磁化单元所采用的各种方式。由于磁化过程是通过在磁头中通以不同方向的电流来实现的,故记录方式取决于写电流波形的组合方式。
数据记录方式按照写信息所施加的电流波形的极性、频率和相位的不同,分为归零制、不归零制、调相制和调频制等。
2.硬盘存储器
磁盘存储器有硬盘和软盘两种
硬盘存储器主要由三大部分组成:
- 磁记录介质
- 磁盘驱动器
- 磁盘控制器
磁盘控制器包括控制逻辑、时序电路、“并->串”转换和“串->并”转换电路。
磁盘驱动器包括读写电路、读/写转换开关、读/写磁头与磁头定位伺服系统。
磁盘读写是指根据盘地址(柱面号、磁头号、扇区号)读写目标磁道中的指定扇区。因此,其操作可归纳为寻道、旋转等待和读写三种。
磁盘的记录格式:
硬盘的主要技术指标
①硬盘容量
硬盘的未格式化容量是指按道密度和位密度计算出来的容量,它包括了头空、ID域、CRC码等信息,是可利用的所有磁化单元的总数,未格式化容量(或非格式化容量)比格式化后的实际容量要大。
对于低密度存储方式,未格式化容量的计算方法为:
磁盘总容量=记录面数*理论柱面数*内圆周长*位密度
理论柱面数=(有效记录区外径-有效记录区内径)/2*道密度。
一个磁道能记录的二进制信息位(理论值)=内圆周长*位密度
格式化后的实际容量只包含数据区。通常,记录面数约为盘片数的两倍。假定按每个扇区512字节算,则磁盘实际数据容量(也称为格式化容量)的计算公式为:
磁盘实际数据容量=2*盘片数*磁道数/面*扇区数/磁道*512B/扇区
②数据传输率是单位时间内从磁盘盘面上读出或写入的二进制信息量。即:
数据传输率=每分钟转速/60*内圆周长*位密度
③响应时间=排队延迟+控制器时间+寻道时间+旋转等待时间+数据传输时间
寻道时间为磁头移动到指定磁道所需时间。
旋转等待时间指要读写的扇区旋转到磁头下方所需要的时间。
数据传输时间(transfer time)指传输一个扇区的时间(大约0.01ms/扇区)。
由于磁头原有位置与要寻找的目的位置之间远近不一,故寻道时间和旋转等待时间只能取平均值。
磁盘平均存取时间通常近似等于平均寻道时间和平均等待时间之和。
3.冗余磁盘阵列
RAID技术的基本思想是:将多个独立操作的磁盘按某种方式组织成磁盘阵列,以增加容量;并用冗余磁盘技术来进行错误恢复以提高系统可靠性。
RAID技术有以下3个特性:(重要)
①RAID由一组物理磁盘驱动器组成,在操作系统下它们被视为单个逻辑驱动器。
②数据分布在一组物理磁盘上,可以连续分布也可以交叉分布,交叉分布时可以按小条带交叉分布,也可以按大数据块交叉分布。
③冗余磁盘用于存储校验信息,保证磁盘万一损坏时能恢复数据。
RAID方案分为8级(0~7级),并由此派生出RAID 10(结合0和1级)和RAID 30(结合0和3级)和RAID 50(结合0和5级)。
RAID 0不遵循以上特性③,没有冗余,数据分布在多个物理磁盘上。
RAID 1采用镜像盘实现一对一冗余。
RAID 3采用奇偶校验生成单个冗余盘,并使用小条带交叉分布式。
RAID 4也采用一个冗余盘存放奇偶校验码位,采用大数据块交叉方式,每个磁盘的操作独立进行,所以多个小数据量的操作可以在多个磁盘上并行进行,以同时响应多个I/O请求,具有较快的I/O响应时间。
RAID 5与RAID 4的组织方式类似,只是奇偶校验块分布在各个磁盘中,采用独立存取技术和大数据块交叉分布方式,I/O请求的响应速度快。
RAID 6与RAID 4和RAID 5一样,采用独立存取技术和大数据块交叉分布方式。所不同的是RAID 6的冗余信息分布在所有磁盘上并采用双维块奇偶校验。
RAID 7是带cache的磁盘阵列,它在RAID 6的基础上,采用cache技术使传输率和响应速度都有较大提高,cache分块大小和磁盘阵列中数据分块大小相同,一一对应。有两个独立的cache,双工运行。在写入时将数据同时分别写入两个独立的cache;读出时,先从cache中读出,cache中没有要读的信息时,才从RAID中读。
4.U盘和固态硬盘
U盘也称为闪存盘,它采用flash存储器(即闪存)做成,属于非易失性半导体存储器。闪存沿用了EPROM的简单结构和浮栅/热电子注入的编程写入方式,又兼备E^2PROM的可擦除特点,可在计算机内进行擦除和编程写入。因此又称为快擦型电可擦除重编程ROM。
移动硬盘是由微型硬盘配上特制的硬盘盒构成的一个大容量存储器。通过USB和IEEE1394接口和计算机相连接,可以随时插拔。
固态硬盘(solid state disk,SSD)也被称为电子硬盘。它由一种使用NAND闪存组成的外部存储系统,和U盘并没有本质差别,只是容量大,存取性能更好。
SSD中包含一个或多个闪存芯片和闪存翻译层(flash translation layer),其中的闪存芯片相当于硬盘驱动器,闪存翻译层相当于磁盘控制器,用于对逻辑块的请求转换成对底层闪存芯片的访问。
SSD中一个闪存芯片由若干个区块组成,每个区块由若干页组成,通常,页大小为512B4KB,每个区块由32128个页组成,因而区块大小为16KB~512KB,数据可以按页为单位进行读写。当需要些某页信息时,必须先对该页所在的区块进行擦除操作。一旦一个区块被擦除过,区块中的每一页就可以直接再写一次。若某一区块进行了大约100000次重复写之后,就会被磨损而变成坏的区块,不能再被使用。因此,闪存翻译层中有一个专门的均化磨损(wear leveing)逻辑电路,试图将擦除操作平均分布在所有区块上,以最大限度地延长SSD的使用寿命。
SSD通过标准的硬盘接口(SATA或USB)插槽连接到主机上,其外部接口的行为和硬盘一样,处理的也是来自CPU的磁盘逻辑块的读写请求,文件系统以逻辑块为单位在SSD上为文件分配空间。
三、外设与CPU、主存的互连
1.总线概述
互连结构:连接各部件的通路的集合。
分散连接:各部件之间通过单独的连线互连。
总线连接:将多个部件连接到一组公共信息传输线上。
总线是计算机内数据传输的公共路径,用于实现两个或两个以上部件之间的信息交换。
内部总线指芯片内部连接各元件的总线。
系统总线指连接CPU、存储器和各种I/O模块等主要部件的总线。
系统总线通常由一组控制线、一组数据线和一组地址线构成。
也有些总线没有单独的地址线,地址信息通过数据线来传送,这种情况为数据线和地址线复用,称为信号线复用。
同步总线采用公共的时钟信号进行定时,挂接在总线上的所有设备都从时钟线上获得定时信号。
同步总线通常采用并行传输方式。
现在越来越多的总线采用异步串行方式进行传输,每次在一根信号线上传送数据位。通常多个数据通道的组合,可以实现比传统并行总线高得多的数据传输带宽。
总线的性能指标通常包含以下几个方面:
①总线宽度
总线中数据线的条数称为总线宽度,它决定了同时传输的信息位数。
②总线的工作频率
总线的工作频率(也称为总线时钟频率)指用于总线上对各种操作进行定时的时钟信号的频率。通常以MHz或GHz为单位。
③总线的带宽
总线带宽指总线的最大数据传输率,即总线在进行数据传输时单位时间内最多可传输的数据量,不考虑其他如总线裁决、地址传送等所花的时间。总线带宽的计算公式为:
B=W*F/N
其中,
W为总线宽度,通常以字节为单位;
F为总线时钟频率;
N为完成一次数据传送所用的时钟周期数。
④总线的寻址能力
总线的寻址能力主要指由地址位数所确定的可寻址地址空间的大小。
⑤总线的定时方式
按照总线上信息传送的定时方式来分,有三类:
- 同步通信
- 异步通信
- 半同步通信
同步通信总线由时钟信号同步;
异步通信总线指前一个信号的结束就是下一个信号的开始,信息的改变是顺序的;
半同步通信总线则是同步和异步两类总线定时方式的结合。
⑥总线的突发传送
总线上数据传送分正常的非突发方式和突发方式两种。
正常的传送方式在每个传送周期内都是先传送地址,再传送数据。
在突发(burst)传送方式下,总线能够进行连续的成块数据传送,传送开始时,先给数据块在存储器中的首地址,然后连续地传送数据块,后续数据的地址默认为前面数据的地址加1。
⑦总线的负载能力
总线的负载能力指总线上所能挂接的遵循总线电气规范的总线设备的数目。
2.基于总线的互连结构
北桥是一个主存控制器集线器(Memory Controller Hub,MCH)芯片,本质上是一个DMA(Direct Memory Access)控制器,因此,可通过MCH芯片,直接访问主存和显卡中的显存。
南桥是一个I/O控制器集线器(I/O Controller Hub,ICH)芯片,其中可以集成USB控制器、磁盘控制器、以太网控制器等各种外设控制器,也可以通过南桥芯片引出若干主板扩展槽,用以接插一些I/O控制卡,如声卡、视频卡(显卡)、网卡等。
1.处理器总线
早期的Intel微处理器的处理器总线称为前端总线(Front Side Bus,FSB),它是主板上最快的总线,主要用作处理器与北桥芯片进行信息交换。
FSB的传输速率单元实际上是MT/s,通常所说的总线传输速率单位MHz是习惯上的称呼,实际上是时钟频率单位。
Intel Core i7是一个4核处理器芯片,Intel推出Core i7时,北桥芯片的功能被集成到了CPU芯片内,CPU通过存储器总线(即内存条插槽)直接和内存条相连,而在CPU芯片内部的核与核之间、CPU芯片与其他芯片之间,以及CPU芯片与IOH(Input/Output Hub)芯片之间,则通过QPI(QuickPath Interconnect)总线相连。
QPI总线是一种基于包传输的串行高速点对点连接协议,采用差分信号与专门的时钟信号进行传输。QPI总线有20条数据线,发送(TX)和接收方(RX)有各自的时钟信号,每个时钟周期传输两次。一个QPI数据包包含80位,需要两个时钟周期或4次传输,才能完成整个数据包的传送。在每次传输的20位数据中,有16位时有效数据,其余4位用于循环冗余校验。
每个QPI总线的带宽计算公式:
每秒传输次数每次传输的有效数据2
QPI总线的速度单位通常是GT/s,若QPI的时钟频率为2.4GHz,则速度为4.8GT/s,表示每秒钟传输4.8G次数据,并称该QPI频率为4.8GT/s,此时总带宽是4.8GT/s2B2=19.2GB/s。
2.存储器总线
早期的存储器总线由北桥芯片控制,处理器通过北桥芯片和主存储器、图形卡(显卡)以及南桥芯片进行互连。Core i7以后的处理器芯片中集成了内存控制器,因而,存储器总线直接连接到处理器。图中,主存储器可直接插在三通道DDR3-1333 SDRAM的内存插槽(存储器总线)上。
根据芯片组设计时的确定的芯片组能够处理的主存类型的不同,存储器总线有不同的运行速度。
3.I/O总线
I/O总线用于为系统中的各种I/O设备提供输入/输出通路,在物理上通常是主板上的一些I/O扩展槽。
早期的第一代I/O总线有XT总线、ISA总线、EISA总线、VESA总线,这些I/O总线早已被淘汰;
第二代I/O总线包括PCI、AGP、PCI-X;
第三代I/O总线是PCI-Express。
PCI-Express总线采用串行传输方式。两个PCI-Express设备之间以一个链路(link)相连,每个链路可包含多条通路(lane),可能的通路数为1、2、4、8、16或32,PCI-Express n表示具有n个通路的PCI-Express链路。
PCI-Express 1.0规范支持通路中每个方向的发送或接受速率为2.5Gb/s
。因此,PCI-Express 1.0总线的总带宽计算公式(单位为GB/s)如下:
2.5Gb/s 2 通路数 / 10
在PCI-Express 1.0规范下,
PCI-Express 1的总带宽为0.5GB/s;
PCI-Express 2的总带宽为1GB/s;
PCI-Express 16的总带宽为8GB/s。
四、I/O接口
1.I/O接口的基本概念
1.I/O接口
I/O接口是介于外设和I/O总线之间,用来解决各个外设和主机之间的同步与协调、工作速度的匹配和数据格式的转换等问题的逻辑部件。外设的I/O接口又称设备控制器或I/O控制器或I/O控制接口,也称为I/O模块。
I/O接口是连接外设和主机的一个“桥梁”,因此它在外设侧和主机侧各有一个接口。通常把它在主机侧的接口称为内部接口,在外设侧的接口称为外部接口。
2.I/O接口的功能
I/O接口的功能:
①数据缓冲:在I/O接口中引入数据缓冲寄存器,以达到主机和外设工作速度的匹配。
②错误或状态检测:在I/O接口中提供状态寄存器,以保存各种状态信息,供CPU查用。
③控制和定时:接受从系统总线来的控制命令和定时信号,并提供控制和定时逻辑,以实现对数据通信过程的控制。控制命令指通过系统总线中的数据线传送到控制寄存器中的命令字,I/O接口中的外设界面控制逻辑根据命令字的译码结果来控制I/O接口与设备之间的数据通信过程。
④数据格式转换:提供数据格式转换部件(如进行串---并转换的移位寄存器),使通过外部接口得到的数据转换为内部接口需要的格式,或在相反的方向进行数据格式转换。
3.I/O接口的通用结构
4.I/O端口及其编址
I/O端口实际上就是I/O接口中的寄存器。
给所有I/O接口中各个可访问的寄存器进行编址,有两种方式:
- 独立编址
- 统一编址
1.独立编址方式
独立编址方式对所有的I/O端口单独进行编号,使它们成为一个独立的I/O地址空间。指令系统中需要有专门的I/O指令来访问I/O端口,I/O指令中地址码部分给出I/O端口号。
独立编址方式下,I/O地址空间和主存地址空间是两个独立的地址空间,无法从地址码的形式上区分,需用专门的I/O指令来表明访问的是I/O地址空间。CPU执行I/O指令时,会产生I/O读或I/O写总线事务,CPU通过I/O读或I/O写总线事务访问I/O端口。
2.统一编址方式
统一编址方式下,I/O地址空间与主存地址空间统一编址,也即,将主存地址空间分出一部分地址给I/O端口进行编号,根据地址范围就可区分访问的是I/O端口还是主存单元,无需设置专门的I/O指令,只是用一般的访存指令就可以存取I/O端口。
因为这种方法是将I/O端口映射到主存空间的某个地址段上,所以,也被称“为存储器映射方式”。
五、I/O数据传送控制方式
1.程序直接控制I/O方式
I/O数据传送主要有三种不同的控制方式:
- 程序直接控制
- 中断控制
- DMA控制
程序直接控制方式直接通过查询程序来控制主机和外设之间的数据交换,通常有以下两种类型:
1.无条件传送方式
无条件传送方式也称同步传送方式,主要用于对一些简单外设(如开关、继电器、7段显示器或机械式传感器等)在规定的时间用相应的I/O指令对接口中的寄存器进行信息的输入或输出。其实质是通过程序来定时,以同步传送数据。
2.条件传送方式
条件传送方式也称为异步传送方式。通过在查询程序中安排相应的I/O指令,由这些指令直接从I/O接口中取得外设和接口的状态,如:“就绪(Ready)”、“忙(Busy)”、“完成(Done)”等,根据这些状态来控制外设和主机的信息交换。也称为程序查询方式。
CPU和外设之间完成一次数据交换过程:
①CPU执行相应的I/O指令向该接口送出“启动”命令,设备选择电路对CPU送出的地址进行译码,选中本I/O接口;
②I/O接口通过连接电缆向外设发送“启动设备”命令;
③外设准备好一个数据,通过电缆向I/O接口中的数据缓冲寄存器输入数据;
④外设向I/O接口回送“设备工作结束”状态信号;
⑤CPU通过执行指令不断读取I/O接口状态。查询到外设“准备就绪”;
⑥CPU通过执行I/O指令从数据缓冲寄存器读取数据。
根据查询被启动的方式的不同,条件式程序查询方式有两种:
- 定时查询
- 独占查询
①定时查询时指周期性地查询接口状态,每次查询总是一直等到条件满足,才进行一个数据的传送,传送完成后返回。定时查询的时间间隔与设备的数据传输率有关。
②独占查询方式下,CPU被独占用于某设备的I/O,完全控制I/O整个过程,也即CPU花费100%的时间在I/O操作上,此时,外设和CPU完全串行工作。
2.程序中断I/O方式
1.中断的概念
中断控制I/O方式下,一旦外设完成任务,就会向CPU发中断请求。然后CPU暂停正在执行的其他进程,调出中断服务程序来执行。执行结束中断返回,回到被打断的处继续执行。
现代计算机系统中都配有完善的异常和中断处理系统,它们有两个重要的不同点。
①“缺页”或“溢出”等异常事件是在执行特定指令过程中产生的,而中断相对于指令的执行则是异步的。也就是说,中断不和任何指令相关联,也不阻止任何指令的完成。因此,CPU只需要在一条新指令的指令周期开始之前,检测是否有外部发来的中断请求即可。
②异常的发生和异常事件的类型是由CPU自身发现和识别的,不必通过外部的某个信号通知CPU,而对于中断,CPU必须通过对外部中断请求线进行采样,并从总线上获取相应的中断源设备的标识信息,才能获知哪个设备发生了何种中断。
2.中断系统的基本职能和结构
每个计算机系统的中断功能可能不完全相同,但其基本功能有:
①及时记录各种中断请求信号。通常用一个中断请求寄存器来保存。
②自动响应中断请求。CPU在每条指令执行完、下条指令取出前,会自动检测中断请求引脚,发现有中断请求时,则根据情况决定是否响应和响应哪个中断请求。
③自动判优。在有多个中断请求同时产生时,能够判断出哪个中断的优先级高,选择优先级高的中断先被响应。
中断源的识别和判优方法可分为两大类:
- 软件查询
- 硬件判优
①采用软件查询方法:
当CPU检测到中断请求时,通过中断响应,自动转到一个特定的中断查询程序,在中断查询程序中,按中断优先顺序依次查询哪个设备有中断请求,并转到第一个查询到有请求的中断服务程序去执行。对于这种用软件进行中断识别的方式,其中断接口的硬件结构很简单,只要一根中断请求线和一个中断请求寄存器,而且,可通过改变软件中的查询顺序来改变中断响应优先级。
②采用硬件判优方法:
硬件判优方式是一种向量中断方式,它不同于软件查询的中断处理技术。它根据中断控制器接口(如PIC)中的中断判优电路和编码器等,得到当前所有未被屏蔽的中断请求中具有最高响应优先权的中断源类型(即中断源标识信息),通过编码器输出的i最终被送到CPU中,CPU根据i的值找到对应的中断服务程序的首地址PC和初始PSW。
4.保护被中断程序的断点和现场。因为中断响应后要转去执行中断服务程序,而执行完中断服务程序后,还要回到原来的程序继续运行。所以原程序被中止处的指令地址和远程序的程序状态和各寄存器的内容等必须被保存,以便能正确回到原被中止处继续执行。
5.中断屏蔽。
通过中断屏蔽实现多重中断的嵌套执行,中断屏蔽功能通过一个中断屏蔽字寄存器来实现。
中断系统允许CPU在执行某个中断服务程序时,被新的中断请求打断,这就是中断嵌套技术。但是并不是所有的中断处理都可被新的中断打断,对于一些重要的紧急事件的处理,就要设置成不可被其他新中断事件打断,这就是中断屏蔽的概念。
在中断系统中设置中断屏蔽字来实现。屏蔽字中的每一位对应某一个外设或中断源,称为该外设的中断屏蔽位,例如,用“1”表示允许中断,“0”表示不允许中断(即屏蔽中断)。CPU通过在程序中执行相应的指令来修改屏蔽字的内容,从而动态地改变中断处理的先后次序。
中断嵌套(多重中断):
中断系统中存在两种中断优先级:
- 中断响应优先级
- 中断处理优先级
中断响应优先级是由查询程序或中断判优电路决定的优先级,它反映的是多个中断同时请求时选择哪个先被响应。中断处理优先级是由各自的中断屏蔽字来动态设定的,反映了本中断与其他所有中断之间的处理优先关系。在多重中断系统中通常用中断屏蔽字对中断处理优先级进行动态分配。
3.中断过程
中断过程包括两个阶段:
- 中断响应
- 中断处理
中断响应阶段由硬件实现,
而中断处理阶段则由CPU执行中断服务程序来完成,所以中断处理是由软件实现的。
①中断响应
中断响应是指主机发现中断请求,中止现行程序的执行,到调出中断服务程序这一过程,因此,中断响应过程是处理器从一个进程切换到另一个进程的过程。
需要保存两类信息:现场信息和断点信息。
现场信息是用户可见的通用寄存器的内容,这些通用寄存器中存放着程序执行到断点处的现行值;
断点信息是用指令无法直接读取的程序计数器PC和程序状态字寄存器PSWR等的内容。
中断响应的条件:
- CPU处于“开中断”状态。
- 至少要有一个未被屏蔽的中断请求。
- 当前指令刚执行完。
在中断响应周期中,通过执行一条隐指令,完成以下几个操作。
(1)关中断:将中断允许标志置为禁止(即“关中断”)状态,这时将屏蔽掉所有可屏蔽中断请求。
(2)保护断点:将PC和PSW送入栈或特殊寄存器。
(3)识别中断源并转中断服务程序:通过某种方式,获得优先级最高的中断源所对应的中断服务程序的首地址和初始PSW,并分别送PC和PSWR。
②中断处理
中断处理就是CPU执行一个中断服务程序的过程,完全由软件完成。中断服务程序包含三个阶段:
- 准备阶段
- 处理阶段
- 恢复阶段
中断服务程序的典型结构:
如果有开中断和关中断则可以实现多重中断,即中断的嵌套。如果没有,则只能实现单重中断。
3.DMA方式
DMA(Direct Memory Access)称为直接存储器存取,该输入输出方式用专门的DMA接口硬件来控制外设与主存的直接数据交换,数据不通过CPU。通常把专门用来控制总线进行DMA传送的接口硬件称为DMA控制器。在进行DMA传送时,CPU让出总线控制权,由DMA控制器控制总线,通过“窃取”一个主存周期完成和主存之间的一次数据交换,或独占若干个主存周期完成一批数据的交换。
1.三种DMA方式
①CPU停止法:
DMA传输时,由DMA控制器发一个停止信号给CPU,使CPU脱离总线,停止访问主存,直到DMA传送一块数据结束。
②周期挪用法:
DMA传输时,CPU让出一个总线事务周期,由DMA控制器挪用一个主存周期来访问主存,传送完一个数据后立即释放总线。是一种单字传送方式。
③交替分时访问法:
每个存储周期分成两个时间片,一个给CPU,一个给DMA,这样在每个存储周期内,CPU和DMA都可访问存储器。
2.DMA操作步骤
第一步:DMA控制器的预置(初始化)。
进程P1在进行数据传送之前,先通过内核执行一段初始化程序,完成对DMA控制器中各参数寄存器的初始值的设定。主要操作包括以下三个方面。
①准备内存区:
若是从外设输入数据,则进行内存缓冲区的申请,并对缓冲区进行初始化;
若是输出数据到外设,则先在内存准备好数据。
②设置传送参数:
执行I/O指令来测试外设状态,并对DMA控制器设置各种参数。例如,将内存首址传送到地址寄存器,将字计数值传送到字计数器,将读/写命令字传送到控制寄存器,将设备地址传送到设备地址寄存器等。
③发送“启动DMA传送”命令,然后调度CPU执行进程P2。
第二步:DMA数据传送(DMA传送)
CPU对DMA传送参数进行预置并发送“启动DMA传送”命令后,就把数据传送的工作交给了DMA控制器。在整个DMA传送过程中,不再需要CPU的参与,完全由DMA控制器实现数据的传送。DMA控制器将内存地址送到总线,并在总线的读/写控制线上发出“读”命令或“写”命令,随后在数据线上给出数据。DMA控制器每完成一个数据的传送,就将字计数器减1,并修改地址寄存器中的主存地址。当字计数器为0时,完成所有I/O操作。
第三步:DMA结束处理(后处理):
当字计数器为“0”,则发出“DMA结束”中断请求信号给CPU,转入中断服务程序,做一些数据校验等后处理工作。