前言:去年备研学习计算机组成原理的一些笔记,因为主要为了应付考试,记得比较仓促,仅供参考。
文章目录
总线与输入输出系统
总线与输入输出系统概述
- 组成计算机的三类模块:CPU、存储器、I/O设备
- 互连结构(互连网络):连接这三类模块通路的集合。
- 专用通路:仅在两个部件之间传递信息的通路。
- 共享(公用)总线:在不同时刻(分时)传递不同部件之间信息的通路。
总线:计算机系统中多个部件或设备共用的传递信息的电子通道。
输入输出系统的组成:
- 输入输出设备
- 输入输出接口
- 输入输出控制器
- 输入输出控制管理软件
输入输出系统的功能:
- 将各种输入输出设备有效地接入到计算机系统中;
- 将计算机外部的输入设备的信息输入到计算机内部,以便能够得到加工处理,该功能简称为输入操作;
- 将计算机内部存储或加工处理的信息输出到计算机之外,以提供给计算机外部的输出设备使用,该功能简称为输出操作。
- 数据在外存中进行存、取的操作。
外设的分类:
- 字符设备(Character device)
- 块设备(Block device)
基本输入输出技术:
- 程序查询方式
- 中断控制方式
- DMA(直接存储器存取)方式
- 通道控制方式
控制地址数据总线
总线
总线类型与结构
总线设备:
- 主设备(Master)
- 从属设备(Slave)
按连接层次分类:
- 片内总线
- 系统总线
- 通信总线
按数据位数分类:
- 并行总线
- 串行总线
按用法分类:
- 专用总线:只连接一对功能部件
- 公用(共享)总线
总线的特性:
- 机械特性
- 电气特性
- 功能特性
- 时间特性
总线的性能指标:
- 总线带宽
- 总线宽度
- 总线负载
单总线结构
多总线结构
总线的信息传输方式
计算机系统功能的实现:两类操作相互配合。
- 数据在功能部件内部进行加工处理;
- 数据在功能部件之间进行有效传输。
总线数据传输方式
总线上进行一次传输的过程:
- 传输请求
- 总线仲裁
- 部件/设备寻址
- 数据传输
- 总线释放
数据传输的基本方式:
- 并行传送方式
- 传输速率高,需要较多的数据线
- 串行传送方式
- 只用一条数据线,传送距离远
- 分时传送方式
- 消息传送方式
总线通信方式
同步通信方式
-
优点:速度快,接口逻辑简单。
-
缺点:
- 总线上的每个设备必须以相同的时钟频率运行,且时钟速率依慢速设备而定;
- 时钟偏移问题:总线时钟频率↑总线长度↓
-
异步通信方式
- 无时钟信号线
- 使用握手协议
- 非互锁、半互锁、全互锁
- 串行异步通信:不用握手信号、无时钟信号
总线仲裁
主方:启动一个总线周期
从方:响应主方的请求
多处理器系统,各CPU模块的总线请求:公平I/O模块的总线请求:优先级。
总线仲裁(Bus Arbitration):用来决定哪个主设备可以使用总线的选择机制。
按照总线仲裁电路位置不同,仲裁方式可分为:
- 集中式仲裁
- 链式查询方式(菊花链)
- 计数器定时查询方式(轮询)
- 独立请求方式
- 分布式仲裁(如:SCSI总线)
集中式仲裁:链式查询(菊花链)
.png)
特点:使用总线的优先次序完全由“总线可用”线所接部件的物理位置来决定,离总线控制器越近的部件其优先级越高。
优点
- 优先级选择算法简单。
- 用于分配总线所需的线数少,只需要3根,且不取决于部件的数量→可扩充性好。
- 价格便宜。
- 易于通过多重设置“总线可用”线来提高其系统的可靠性。
缺点
- 可靠性差:“总线可用”线失效,会导致系统瘫痪。
- 灵活性差:优先级顺序固定。
- 总线使用的分配速度低。
集中式仲裁:计数器定时查询(轮询)
.png)
优点
- 灵活性好:总线使用的优先级可由程序控制改变。
- 可靠性高:某个部件失效不会使系统瘫痪。
缺点
- 所增加的控制总线较多,需要 2+[log2n] 根。
- 可扩充性较差,受限于查询控制线的根数。
- 控制器较复杂,价格较高。
- 总线的分配速度不高。
集中式仲裁:集中式仲裁:独立请求

优点
- 总线分配速度高,无需检测是哪个设备要求使用总线。
- 灵活性好:总线使用的优先级可由程序控制改变。
- 可靠性高:某个部件失效不会使系统瘫痪。
缺点
- 所增加的辅助控制总线线数多,需要2N+1根。
- 可扩充性差。
- 控制器复杂,价格高。
分布式仲裁(了解即可)
以太网总线:冲突检测分布式仲裁方案
Futurebus+总线:并行竞争分布式仲裁方案
典型的总线(看书的详细介绍,注意常见总线特点)
典型的系统总线(内总线)
- ISA总线
- PCI总线、PCI-E总线
- 特征:
- 不依赖处理器
- 每条总线支持256个功能设备
- 支持多达256条PCI总线
- 低功耗
- 支持猝发式事务处理(数据传输)
- 33/66MHz最高时钟频率
- 32/64位数据总线宽度
- 访问时间:2时钟周期写,3时钟周期读
- 并发的总线操作
- 支持总线主设备
- 隐藏的总线仲裁:集中式的独立请求仲裁方式,PCI规范未规定仲裁算法
- 特征:
典型的通信总线(外总线)
- RS-232C
- USB
- IEEE-1394
- SCSI
- SAS
- ATA
- SATA
输入输出接口(了解)
输入输出系统的构成:
- CPU或I/O处理器
- 总线
- I/O接口
- I/O设备
- I/O管理控制软件

I/O接口作用及模型
I/O接口的作用:I/O设备 <–>总线
- 传递数据
- 设备选择
- 设备控制
- 信号形式转换
- 速度匹配
- 数据缓存
- 错误检测
- 负载匹配
- 支持中断
- ……
程序员看到的I/O接口:接口内部可读写的寄存器或缓冲器。
典型的I/O接口模型:

I/O地址编址方式
I/O地址的两种编码方式:
- 存储器映射方式(统一编址方式)
- 将主存与I/O设备放置在同一个地址空间中。
- I/O设备与主存使用相同的指令和控制信号。
- 不需要专门的I/O指令,可以简化控制。
- 在地址空间确定的情况下,两者的地址扩充相互制约。
- Motorola 680X0系列采用此方式。
- I/O映射方式(独立编址方式)
- 主存与I/O设备使用各自独立的地址空间。
- 要求系统提供专门的I/O指令。
- 对主存与I/O设备采用不同的读/写控制信号。
- 便于系统调试与维护,便于主存与I/O地址空间的扩展。
- I/O设备的操作不够灵活。
- Intel微处理器采用此方式。
I/O接口设计
简单的I/O设备:接口芯片,地址译码
- 三态缓冲器
- 锁存器
- 可编程并行接口芯片
- 可编程串行接口芯片
复杂的I/O设备:I/O控制器
- 单片机
- 微控制器(MCU)
- 嵌入式处理器
输入输出技术
输入输出技术:
- 程序查询方式:Programmed I/O
- 中断方式:Interrupt-driven I/O
- 直接存储器存取(DMA)方式Direct Memory Access,DMA
- I/O通道方式:I/O channel
- 操作系统的支持
程序查询
I/O接口中要有状态寄存器,记录I/O设备的工作状态。
查询设备状态由CPU执行指令实现。
数据传输操作由CPU执行指令实现。

程序查询方式的限制:
- I/O数据传输速率低。
- CPU工作效率较低。(需要一直监视着)
- 不能保证及时响应I/O设备的I/O服务请求。
中断(重点!!!)
中断:
- 实现主机与多台外设的并行工作。
- 实现故障诊断与处理。
- 对随机事件在规定时间内做出实时响应与处理。
中断:中断源在需要得到CPU服务时,请求CPU暂停现行工作转向为中断源服务,服务完成后,再让CPU回到原工作状态继续完成被打断的工作。
被中断的程序重新运行时必须处于和被中断前完全相同的状态。
中断源:引起中断发生的源头。
- CPU内部:计算机系统工作异常、运算溢出、功能调用、…
- CPU外部:系统电源掉电、设备或线路故障、定时器时间到、启动或停止I/O设备、I/O设备输入输出操作、…
- 非屏蔽中断源
- 可屏蔽中断源
内中断/软件中断:由内部中断源引发的中断。不可屏蔽
外中断/硬件中断:由外部中断源引发的中断。可屏蔽、非屏蔽。
中断过程(重点)
- 中断源向CPU发中断请求信号;
- CPU结束当前指令的执行,检测中断请求信号(中断要在中断周期产生,而中断周期处于最后一个指令周期);
- CPU(允许中断且该中断未被屏蔽)向提出请求的中断源发出中断响应信号INT-ACK ,转向4、,否则,CPU继续执行下一条指令,转向2、;
- CPU进行断点保护,PSW、断点(PC)地址保存在堆栈中;被响应的中断源撤消中断请求信号,并为CPU提供中断处理程序入口地址的相关信息;
- CPU识别中断源,获得中断处理程序入口地址(首地址),并将其装入PC,转向执行中断处理程序;
- CPU执行中断处理程序(跳转到B程序了);
- CPU执行中断返回指令IRET,恢复被保存在堆栈中的断点信息,回到断点处继续执行原程序。

中断实现过程注意:中断要在中断周期产生,而中断周期处于最后一个指令周期,所以指令n执行完毕后,才会进入中断。中断返回时才从指令n+1开始。
而异常可以在任何一个阶段产生。
中断响应时间:从发中断请求,到进入中断服务程序所需的时间。
中断源的选择与识别
基本原则
- 中断判优:当多个中断源同时提出中断请求时,只有优先级最高的中断源的请求被选择,并被CPU处理。
- 中断优先级:Interrupt priority levels,IPL
- 优先级高的中断源:
- 重要的、需及时响应的中断源
- 内部中断(或异常)
- 优先级低的中断源:
- 重要性低、慢速的中断源
- 外部中断,非屏蔽中断优先级 > 可屏蔽中断
- 中断嵌套:Interrupt nesting
- 当高优先级中断正被CPU服务时,所有低优先级中断被禁止;高优先级中断请求可以打断低优先级中断服务。
中断优先级控制:
- 软件
- 方案简单,可以灵活地修改中断源的优先级别;
- 查询、判优靠程序实现,占用CPU时间,判优速度慢。
- 硬件
- 判优速度快,节省CPU时间;
- 但是成本较高;
- 一旦设计完成,将难以改变其优先级别。
【例】
【解】
中断方式的实现

硬件设计
- 中断控制逻辑
- 中断请求与优先级仲裁逻辑
- I/O接口
软件设计
- 初始化程序
- 中断处理程序
中断的用途
- CPU与I/O设备并行工作
- 硬件故障自动处理与自动恢复
- 灵活的人机通信
- 随机事件的实时处理
- 多任务切换
- 用户程序与系统程序的通信
- 多处理机通信
中断的开销
- 执行中断处理程序
- 响应时间,中断源识别时间(非向量中断)
- 信息保护
- 恢复时间
【例】某中断系统响应中断需要50ns,执行中断处理程序至少需要150ns,其中有60ns用于软件额外开销。那么,该系统的中断频率最大是多少?中断额外开销时间占中断时间的比例是多少?有一个字节设备,数据传输率为10MB/s,如果以中断方式且每次中断传送一个数据,那么该系统能实现这个传输要求吗?
【解】
∵ 最短的中断间隔时间=最短的中断时间=50+150=200(ns)
∴ 最大的中断频率=1/200ns=5×106(次/s)
中断额外开销时间=中断系统响应时间+软件额外开销
=50+60=110(ns)
中断额外开销时间占中断时间的比例=110/200=55%
∵ 设备数据传输率为10MB/s,
即传输数据的间隔时间=0.1μs<最短的中断间隔时间,
∴ 该系统不能实现这个传输要求。
DMA(直接存储器存取)(重点!!!)
DMA就是要使得一个硬件子系统来直接访问系统内存,并且不占用CPU的运算能力把CPU解放出来。

DMA传输过程:
- CPU执行初始化DMAC的程序。
- I/O设备向DMAC发出DMA请求信号DREQ(此时也是中断),DMAC向CPU提出DMA请求DMA-REQ。
- CPU在DMA断点处响应DMA请求:放弃总线的控制,使DMA-ACK有效。
- DMAC使DACK有效,通知提出请求的I/O设备做好数据传输的准备,同时,DMAC接管总线,开始控制I/O设备与主存之间直接的数据传输。
- DMA传输期间,每传送一个数据,DMAAR加1,DC减1。
- 当 (DC)=0时,DMAC使DMA传输正常结束;当(DC) ≠ 0时,重复执行步骤3、。
- DMA传输结束,DMAC通知CPU,并放弃对系统总线的控制。
DMA过程
DMA中断可以在任何一个执行周期相应(普通中断需要等到执行到中断周期才能被响应)。

DMA与中断的比较

记住DMA不占用CPU。
可看出,使用DMA时CPU使用效率更高。
DMA工作机制
-
DMAC与CPU的总线控制权交换方式
- 周期挪用(窃取)方式
两种情况:
- 隐藏周期DMA:窃取总线
- 暂停CPU方式:抢总线
特点: - 当主存工作速度高出外设较多时,可提高主存的利用率,且对CPU的影响较小。
- 高速主机系统常采用这种方法。
- 存储器分时方式
原来的一个存取周期分成两个时间片,一片分给CPU,一片分给DMAC。
- 无需申请和归还总线。
- 需要主存的工作速度提高一倍。
- 停止CPU方式
- DMAC:申请总线→独占总线→释放总线
- 控制简单;主存利用率不高。
- 扩展时钟周期方式
- 周期挪用(窃取)方式
-
DMAC的数据传输模式
- 字节传输模式
- 数据块传输模式
- 请求传输模式
【例】
一般要求DMA连接的I/O设备应是快速的,如视频接收器和硬盘。已知视频接收器在0.02s接收512×512B,硬盘的位密度50kb/英寸、转速7200转/分、磁道半径(内道)0.9英寸,试计算视频接收器和硬盘的数据传输率。
【解】
视频接收器的传输率 = (512 × 512B) / (2 × 10(−2)s) ≈ 13.1MBps
硬盘的传输率 = (50𝑘𝑏 /英寸) × (7200转 / min) (1min / 60𝑠) × (2𝜋×0.9 英寸 / 转) ≈ 33.93 Mbps
【例】
某计算机CPU的主频为500MHz,CPI为2(即平均每条指令的执行周期为2个时钟周期)。若某外设的数据传输速率为0.5MB/s,采用中断方式与主机进行数据传送,以32bit为传送单位。对应的中断服务程序包含20条指令,中断服务过程中的其他开销相当于5条指令的执行时间。
【解】
I/O通道(重点!!!)
更智能的
在大型计算机系统中,如果仅仅采用程序控制、DMA等基本输入输出方式来管理外围设备,会引起如下问题:
- 所有外围设备的输入输出工作全部由CPU承担,使得CPU不能专心于用户程序;
- 大型计算机系统中的外围设备很多,但一般并不同时工作,如果为每台设备都配置一个接口,必然是一种浪费 —— 特别是DMA接口,硬件代价很高。
在大型计算机系统中采用通道处理机的目的:
- 使CPU摆脱繁重的输入输出负担;
- 共享输入输出接口。
CPU只负责“数据处理”,将“传输控制”功能下放给通道。
通道的基本功能:
- 接受CPU的I/O指令,按指令要求与指定的外设通信;
- 执行内存中属于该通道的通道程序,控制外设与内存之间的数据传送。
- 从外设得到状态信息,与通道本身的状态信息一起送至内存指定单元,供CPU使用。
- 将外设及通道本身的中断请求按次序及时报告CPU。
通道(I/O channel)方式:利用专用的I/O处理器控制I/O操作的方式。
通道结构与类型
I/O通道的类型:
- 选择通道
- 数组多路通道
- 字节多路通道
字节多路通道
适于字符类低速外围设备,通道的数据宽度为单字节,以字节交叉方式轮流的为多台外部设备服务。如光电机。
字节多路通道包含有多个子通道,每个子通道连接一个设备控制器。
选择通道
选择通道为优先级高的高速外围设备服务,如磁盘。数据传送以成块方式进行。
每个选择通道只有一个以成组方式工作的子通道,逐个为多台高速外围设备服务。
数组多路通道

通道流量
通道流量:通道在数据传送期内,单位时间内传送的字节数。
极限流量:通道能达到的最大流量。
与下列因素有关:
- 工作方式
- 数据传送期内选择一次设备的时间TS
- 传送一个字节的时间TD的长短
三种通道的极限流量:
fmaxselect = N/(TS+NTD) = 1/(TS/N+TD)
fmaxblock = K/(TS+KTD) = 1/(T/K+TD~)
fmaxbyte = 1/(TS+TD)
通道实际最大流量与连接在这个通道上的所有设备的数据传输率的关系如下:
𝑓_(𝑏𝑦𝑡𝑒,𝑗)=∑_(𝑖=1)^(𝑝_𝑗)𝑓_(𝑖,𝑗)
fblock,j = max{fi,j}
fselect,j = max{fi,j}
其中,
j为通道的编号
fi,j为第j通道上所挂的第i台设备的字节传送速率
pj为第j号通道中所接设备的台数
【例】
【解】
注意计算单位!!!