1. AMDAHL定律:
计算机系统整体性能速度的提升(加速率),取决于某个特定部件本身的加速率和该部件在系统中的使用率。
S = 1/( (1-f) + f/k )
S代表系统整体性能的加速率。f表示较快部件完成的工作部分。k是新部件的加速率。
2. 外围设备的速度分级:
a. 速度极慢或简单的外围设备:
CPU直接接收数据或发出数据
b. 慢速或中速的外围设备:
采用异步定时方式
c. 高速的外围设备:
同步定时方式。
3. 输入输出体系结构:
输入输出(I/O)定义为在外部设备和由CPU及主存储器组成的主机系统之间移动编码数据的一个子系统部件。输入输出子系统包括(但不限于)以下部分:
a) 用于I/O功能的主存储器模块
b) 提供将数据从系统中移入和移出所需要的总线通道
c) 主机和外围设备中的控制模块
d) 连接外部元件的接口,例如连接键盘和磁盘
e) 连接主机系统和外围设备的电缆或其他通信链接
I/O模块主要负责主存储器和某个特定设备的接口之间的数据传递。接口是专门设计的电路,用来与某种系统的外围设备通信,例如键盘、磁盘或打印机。
在发送设备和接受设备之间交换的各种信号的具体形式和信号所代表的意义称为协议。
协议包括:命令信号、状态信号、数据传递信号。大多数数据交换协议中,接受设备必须对命令和发送过来的数据作出应答,或指示接受设备已经准备好接收数据。这种类型的协议交换被称为“握手”。
负责处理大量数据信息的外部设备通常都有缓冲存储器。磁盘驱动器的专用存储器通常是速度很快的高速缓存。然而打印机上通常配备较慢的RAM。
设备控制电路负责从系统的缓冲器中提取或输入数据,以确保在需要时可以及时获取数据。在写磁盘时,设备控制电路的工作还包括对磁盘进行合适的定位以确保数据可以写到某个特定的磁盘区域。
磁盘和磁带属于持久性存储。
4. I/O的控制方法(信息交换方式):
计算机系统通常有4种I/O控制方法:
1) 程序控制I/O:
使用程序控制的I/O的计算机系统需要为每个I/O设备至少准备一个专用的寄存器。CPU会不断监视每个寄存器,等到数据的到达。这种方法称为轮询(pollin)。因此程序控制I/O有时也被称为轮询的I/O。
这种方法的好处是可以通过编程来控制每个外部设备的行为。采用这种方式工作的CPU会持续处于一个繁忙等待的循环中,直到开始服务某个I/O请求。如果没有I/O任务要进行处理,CPU就无法从事任何有用的工作。
2) 中断控制I/O:
中断控制的I/O与程序控制的I/O正好相反。使用中断控制方式的CPU不再需要持续的查询其附属设备是否有任何输入请求,而是在有数据发送需求时由外部设备来通知CPU。如果没有外部设备发出服务请求来中断CPU,CPU就可以继续执行其他任务。通常使用CPU的标志寄存器中的一个二进制位来指示中断信号。
中断控制的I/O程序控制的I/O的相似之处是:他们都可以对I/O服务程序进行修改来使用外部硬件设备的改变。
a. 程序中断方式的基本I/O接口:
程序中断由外设接口状态和CPU两方面控制。在接口方面,有准备就绪标志(RD)和允许中断标志(EI)。在CPU方面,有中断请求标志(IR)和中断屏蔽标志(IM)
RD:一旦设备做好一次数据的接收或发送,便发出一个设备动作完毕的信号,使RD置为1。在中断方式中,该标志作为中断源触发器,简称中断触发器。
EI:EI为1,设备可向CPU发出中断请求。EI为0,设备禁止向CPU发出请求。设置EI的目的在于可通过软件来控制是否允许某设备发出中断请求。
IR:暂存中断请求线上由设备发出的中断请求信号。当IR标志为1时,表示设备发出中断请求。
IM:表示CPU是否受理中断或批准中断的标志。IM为0,可受理中断请求,IM为1,CPU不受理中断请求。
内部中断只要有错误发生,就发出中断请求!
b. 单级中断和多级中断:
单级中断:
所有的中断源都属于同一级。所有中断源触发器排成一行,其优先次序是离CPU近的优先级高。
当CPU响应中断时,由硬件直接产生一个固定的地址(即向量地址),向量地址指出每个中断服务程序入口,这种方法常称为向量中断。
多级中断:
多级中断原则:优先级别高的中断源可以中断优先级别低的中断源的服务程序。
一个系统若有n级中断,CPU就有n个中断请求触发器(IR)总称中断请求寄存器。与之对应有n个中断屏蔽触发器(IM),总称中断屏蔽寄存器。
在某一级中断被响应后,要置1(关闭)本级和优先权低于本级的中断屏蔽触发器。置0(开放)更高级的中断屏蔽触发器。
多级中断可以实现中断嵌套,同一级不同的中断源则不能嵌套,必须处理完一个中断再响应处理同一级内其他中断源。
和单级中断情况类似,在多级中断中也使用中断堆栈保存线程信息
c. CPU响应中断请求的条件:
① CPU处于允许(开放)中断的状态;
② 无DMA请求,至少有一个中断源请求中断;
③ 通常一条指令执行完。
d. 中断周期所执行的隐指令:
1. 识别中断源:
CPU向外发出中断应答信号INTA,表示CPU对中断的认可。外部的中断控制器收到该信号后,对产生中断请求信号的各个中断源通过排队判优,将选中的中断源的向量码送到数据总线上,CPU在撤消INTA信号前取走中断向量码。
2. 保护断点:
中断发生时,程序计数器PC的值(即下条指令的地址)记录着程序的“断点”,状态寄存器PSW的值,它记录了程序当时的一些“现场”,比如,进位位、溢出位、符号位、为零位等,为了在中断服务程序执行完毕以后,能够正确地返回到原来主程序被中断的断点,将两者的内容依次压入堆栈。
3. 关中断:
将中断允许标志IF清零。
4. 确定中断服务程序入口地址(向量中断)
向量中断:当CPU响应中断时,由硬件直接产生一个固定的地址(即向量地址),由向量地址指出每个中断源设备的中断服务程序入口地址,这种具有产生向量地址的中断系统称为向量中断。
中断向量:在向量中断中,中断服务程序入口单元的地址。
向量表:将各中断源的中断向量连续编排形成一中断向量表。表的内容是相应的中断处理程序入口地址,通常是在内存中开辟的一块存储单元。
中断向量地址(简称为向量地址):存放中断向量的单元地址。
总结: 在中断响应周期中,执行中断隐指令,这由硬件完成。中断响应周期的操作不包括中断服务。中断服务是通过软件实现的。
e. 中断处理过程的现场保护:
在中断处理过程中,有两种现场需要“保护”
⑴断点的“保护” :在“中断响应周期”中由硬件完成。
断点(即PC的值,PSW的值)是任何中断处理都必须保护的重要“现场”,所以放在“中断响应周期”中由硬件完成,以提高中断响应的速度。
⑵寄存器的保护:在中断处理程序中由软件完成。
寄存器只是中断处理程序中用到的寄存器,不同的中断处理程序使用的寄存器名称不同,个数也不等,因而保护的寄存器往往放在中断处理程序中由软件完成。
f. 中断嵌套:
中断嵌套的关键
(1)中断处理程序中开放中断,并且靠堆栈的“先进后出”保证中断的逐级返回 。
(2)确定中断的优先级。中断的优先级就是CPU响应中断请求的优先次序。
当正在进行某个中断处理时,与它同级或比它优先级低的中断请求不能被响应,只有比它优先级高的中断请求才可能被响应。
由于中断的优先级是CPU响应中断请求的优先次序。优先级的确定非常重要,中断屏蔽则是利用屏蔽技术改变各设备的优先级,使计算机适应各种场合的需要。
中断的优先级包含两层含义:
第一层是中断响应优先级:中断响应优先级,由中断响应的硬件排队电路决定,不便于变动。
第二层是中断处理优先级:中断处理的优先级可以由屏蔽码来决定。通常把屏蔽码看成软排队。
中断处理的优先级可以不同于中断响应优先级。
为每个中断请求设置一个屏蔽位。并且将多个中断源的屏蔽位放在一起,用一个地址对其寻址,称为屏蔽寄存器,通过屏蔽指令填入屏蔽码。
屏蔽码的设置原则是:
若该中断处理程序的优先级是哪一级就将屏蔽字中相应级的位及其比它优先级更低的位置“1”,
即将与该请求同级的以及优先级低的请求屏蔽掉。这样,在多重中断嵌套中,嵌入的只能是优先级更高的中断。
(3)中断处理程序流程:
1.前处理部分
① 将在中断处理程序过程中用到的一些通用寄存器的内容转存(保护);
② 按多级中断的原则设置新的中断范围;
③ 开中断以允许中断的嵌套
2.中断服务
按中断源的服务要求执行中断服务程序
3.恢复部分
① 关中断以便于恢复现场的进行;
② 恢复原屏蔽字;
③ 开中断以便中断返回后可响应新的中断。
设置新的中断范围 (交换屏蔽字) 和开中断是为了在中断处理的过程中允许中断嵌套,即中断处理程序的过程中允许再响应更高级别的中断请求,这将在后面详细介绍。若不允许中断嵌套,则不需要这两部分。
3) 直接存储器存取I/O:
a. 基本概念:
不管采用程序控制I/O,或者中断控制I/O,CPU都要从I/O设备移入和移出数据。在I/O过程中,CPU会运行一些指令。如果使用某个专用芯片来编程,这就是直接存储器存取(DMA)的思想来源。
DMA方式是一种在数据交换过程完全由硬件(DMA控制器)实现外设与内存直接交换信息的工作方式。DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存与外设之间进行。由于CPU根本不参加传送操作,因此省略了CPU取指令、取数和送数等操作。在数据传送过程中,也不需要像中断方式那样执行现场保存、现场恢复等工作。内存地址的修改、传送字个数的计数也直接由硬件完成,而不是用软件实现。
在DMA方式中,数据传送前的准备工作,以及传送结束后的处理工作都是由软件完成。DMA控制器仅负责数据传送,这是由硬件线路直接实现的。
如果系统使用DMA,就不需要CPU执行冗长的I/O指令。CPU必须为DMA控制器提供要传输数据字节的地址、字节数、以及目标设备或存储器地址。这种通信联系通常要利用CPU上的专用I/O寄存器来完成。一旦在存储器装入所要求的数值后,CPU会发送信号到DMA子系统,由DMA来负责I/O的细节过程,而CPU会继续执行下一个任务。在完成I/O处理后,DMA子系统会发送另一次中断请求通知CPU。
DMA控制器和CPU共享存储器总线。任一时刻只能够有一个设备控制这条总线。
b. DMA的传送方式:
1. 在DMA工作时,停止CPU访问内存的操作。
2. 周期挪用:当有DMA请求时,CPU让出一个存储周期实现DMA数据交换。
情况1:有DMA请求时,CPU无访内要求时无影响。
情况2:有DMA请求时,CPU也要求访内,则先DMA操作,后 CPU操作。
适用于设备读写周期大于内存存储周期的情况。
3. DMA与CPU交替访内
把CPU周期划分为DMA控制器访内和CPU访内两个阶段,实现DMA与CPU交替访内。
适用于CPU周期大于主存存储周期的DMA。
c. DMA控制器的组成:
1. 内存地址计数器(DMAR):寄存DMA访内地址,有加1功能;
2. 数据缓冲寄存器(DBR):暂存要交换的数据;
3. 字计数器(WCR)存放交换数据个数的补码,有加1功能;初始化时由CPU装入待传送的数据块长度初值,通常由补码表示。
4. DMA请求标志:为1时发DMA请求;
5. 控制/状态逻辑: 控制DMAR、WCR、传送类型、协调等;
6. 中断机构: 一组数据交换完毕, 向CPU发程序中断请求;
d. DMA数据传送的过程:
1. 初始准备 :由程序设置初始参数,体现了程序的介入。
2. DMA传送:DMA请求àDMA响应àDMA访问内存
3. 结束处理 :数据块传送结束,由中断服务程序处理。可以是中止DMA操作或为传送另一块数据而进行初始化的工作。
e. 与程序中断的比较:
1. 程序中断是用服务程序处理中断事件,实质上是CPU的程序切换。DMA则是由DMA控制器控制数据的交换,每交换一次,CPU“让出”一个存储周期;
2. 程序中断可完成较复杂的处理,DMA只能实现数据的传输和简单的加工,如加1等;
3. 程序中断开销大于DMA,DMA是以硬件为代价换取CPU时间;
4. DMA和程序中断的响应时间不同:CPU响应中断与响应DMA请求的时间不同。CPU对中断的响应是在执行完一条指令之后,而对DMA的响应则可以在指令执行过程中的任何两个存储周期之间。
5. DMA的优先级别高于一般的程序中断。
4) 通道控制I/O:
在数据传输工程中,程序控制的I/O每次传输一个字节,中断控制的I/O每次可以按一个字节,或者是小数据块的形式来处理数据。DMA方法则是面向数据块的I/O处理方式,它只是在一组字节的传输完成后才会中断CPU。因此与中断I/O相比,只需要很少的CPU参与。大部分大型计算机都采用I/O通道的智能型DMA接口。
利用通道控制的I/O,一个或多个的I/O处理器可以控制多条不同的I/O路径,这些路径被称为通道路径。通道路径可以组合在一起(复用),允许设备仅仅通过一个控制器来进行管理。一个多路复用的通道被称为多路复用器通道。而服务于磁盘控制器和其他“快速”备的通道称为选择器通道。
I/O通道由一些被称为I/O处理器(IOP)的小CPU来控制。IOP具有执行程序的能力,包括执行算术逻辑指令和分支转移指令。
IOP执行由主机处理器放置在主系统存储器中的程序。这些程序,由一系列通道命令字(CCW)组成,不但包括实际的传输指令,还包括控制I/O设备的命令。一旦将I/O程序放置到内存后,主机的处理器将发出一个启动子通道的命令,通知IOP在哪可以找到程序的内存地址。在IOP完成任务后,它会在内存中放置任务已经完成的信息,并且向CPU发送一个中断信号。然后CPU会得到该完成信息,作出相应处理。
独立的DMA与通道控制的I/O的主要区别在于I/O处理器的智能特性。IOP能够对协议进行协商,发出各种设备命令,将存储译码转换为内存译码,并可独立于主机的CPU来传输多个完整的文件或文件组。而主机只负责为I/O操作创建程序指令,以及通知IOP在哪可以找到这些程序指令。
像独立的DMA一样,一个IOP必须从CPU中窃取存储器周期。但与独立的DMA不同的是,通道控制的I/O系统都配备单独的总线,用来帮助隔离主机和I/O操作。
5. I/O总线操作:
系统总线是一个由计算机系统中多个组件共享的资源。
必须控制对该共享资源的访问,这也是为什么需要一套控制总线的原因。
分离存储器总线和I/O总线是个好想法,让内存有其自己的总线,内存的数据传输可以是同步的。I/O总线不能同步操作。I/O的控制电路置于I/O总线上,并且在I/O设备之间进行协商以决定每个设备可能使用总线的时刻。
区分同步传输和异步传输:同步传输要求传输的发送者和接收者共享一个公共的定时时钟,但是异步总线协议也同样要求有一个时钟来作为定位和描绘信号转变。
6. 深入讨论中断控制I/O:
系统中每个外设都会连接一条中断请求线。中断控制芯片对于每条中断线都有一个输入端。只要有中断线信号被断言确认有效,控制器就会对该中断进行译码,同时激活CPU上的中断输入信号(INT)。当CPU已经处理好该中断时,CPU就会发送一个INTA信号,一旦得到这个确认信号,中断控制器就可撤销INT信号。
通常我们会把如何优先处理哪个设备固化在中断控制器中。
7. 磁盘技术:
磁盘驱动器被称为随机存储设备,有时也称为直接存储设备。磁盘上每个存储单元,称为扇区,都有独一无二的存取地址。扇区按照同心圆环的形式划分成一圈圈的磁道。磁道是从磁盘最外边的磁道0开始连续编号的。在一条磁道分布的圆周上,扇区的分配顺序可能是不连续,这允许驱动器电路有时间在读取下一个扇区之前处理完扇区进程的内容。这种方法称为交叉存储技术。当今大多数硬盘驱动器读取磁盘采用一次读取一条磁道的方式,现在所有交叉存储技术已经不再流行了。
1) 硬盘驱动器:
硬盘包括控制电路和一个或多个金属或玻璃盘片(称为碟片)。磁盘的读/写头通常安装在一个旋转的磁盘驱动臂上。
对于一个堆叠的磁盘结构,磁盘上的各个磁道上下一一对应,形成一个圆柱面。
硬盘的可用面上都有一个磁头,硬盘磁头从不会触及磁盘的表面,而是悬浮在磁盘表面的上方。当磁盘系统断电后,磁头退到一个安全的地方,这一过程称为停靠磁头。如果读写头接触到磁盘的表面,将损坏磁盘,这种情况称为磁头撞损。
寻道时间是指磁盘驱动臂定位到指定的磁道上所需的时间。寻道时间并不包括磁头读取磁盘目录的时间。磁盘目录将逻辑文件信息,映射到对应的物理扇区地址。一些高性能磁盘驱动器,会在磁盘的每个可用面的每个磁道上都提供一个读写头,这样实际可以消除寻道时间。
旋转延迟是读写头定位到指定的扇区上方所需要的时间。旋转延迟时间和寻道时间的和称为存取时间。将存取时间与从磁盘上实际读取数据所需要的时间相加,就得到了传输时间。反应时间是旋转速度的直接函数。反应时间用来衡量在驱动臂定位到目标磁道后,目标扇区移动到读/写头的下方位置所需要的时间总量。
由于每次执行读写操作之前都必须先读取磁盘目录,所以磁盘目录的存放位置对磁盘驱动器的整体性能有重大影响。
目录存放的是磁盘逻辑组织的一个要素,磁盘的逻辑组织与磁盘的操作系统密切相关。磁盘的逻辑组织的一个主要方面是扇区和逻辑地址之间的映射关系。由于磁盘包括很多扇区,不可能为每个扇区都保存一个标记。操作系统以群组的形式为扇区分配地址,称为区块。每个块中扇区数目决定了分配表的大小。