计算机组成原理的学习笔记(12)--总线和IO系统
总线
1. 组成
总线主要由三种信号线组成:
数据线:用于传输实际的数据,宽度决定了数据传输的并行性。
地址线:传输内存或I/O设备的地址,决定了系统可以寻址的最大内存空间。
控制线:传输控制信息,协调设备间的操作,确保数据正确传输。
2. 结构
总线可以按功能和设计架构分为不同的结构,主要包括以下几种:
2.1 单总线结构
单总线结构指计算机系统内所有部件(如CPU、内存、I/O设备等)共享一条总线。这种结构简单,硬件开销低,但随着设备增多,竞争激烈,容易出现瓶颈。
2.2 双总线结构
双总线结构通常将内存总线和I/O总线分开,这样可以有效地分担总线带宽,提高整体性能。常见于需要高性能内存访问的系统。
2.3 三总线结构
三总线结构进一步将高速I/O设备与其他设备分开,专门为I/O设备提供单独的高速总线。这样可以避免I/O设备与CPU或内存的争用,提高数据传输效率。
3. 性能指标
总线的性能指标主要涉及以下几个方面:
数据传输速率:指单位时间内通过总线传输的数据量,通常用MBps或Gbps表示。
宽度:8位/32位等,表示总线一次可以传输的数据位数。
带宽:总线的数据传输宽度和传输速率的乘积,表示总线一次可以传输的数据量。
延迟:数据从一个设备到达另一个设备所需的时间,低延迟意味着更高效的数据传输。
总线复用:通过在同一条总线上传输多种信号(如地址、数据、控制信号),减少了硬件资源的需求,提高了总线的利用率。
总线周期:总线进行一次完整数据传输所需的时间。
最大容量:总线能够支持的最大内存或设备数量。
4. 总线标准
常见的总线标准有很多,主要包括以下几种:
4.1 ISA
由IBM推出,常用于早期的8位和16位计算机。
最大传输率为16 MBps,地址线24位,数据线16位。
4.2 EISA
在ISA的基础上扩展,支持更高的传输率(最大33 MBps),使用32位数据线和32位地址线,改进了传输效率。
4.3 VESA
由VESA提出,主要用于显卡等高带宽需求的设备,最大传输速率可达133 MBps,采用32位或64位数据线。
4.4 PCI
提供更高性能的总线标准,支持即插即用,33 MHz的时钟频率,数据传输速率为132 MBps,支持32位和64位数据通道。
4.5 PCIe
基于串行通信,支持更高的带宽,最新版本支持的传输速率可达8 Gbps。
4.6 AGP
专为显卡设计的总线,具有较高的带宽,最大传输速率可达533 MBps。
4.7 USB
做到了真·即插即用,主要用于外设连接,支持热插拔,传输速率从1.5 Mbps到10 Gbps不等。
4.8 RS-232C
用于串行数据交换,通常用于20米以内的通信,广泛应用于早期的计算机外设。
5. 总线仲裁
总线仲裁是多设备系统中用于决定哪个设备能够访问总线的机制。常见的仲裁方式有:
5.1 链式仲裁
每个设备按顺序连接,优先级由设备在链条中的位置决定,简单但效率较低,适合设备数量较少的系统。
5.2 计数器仲裁
每个设备有一个计数器,设备的优先级由计数器的值决定。优先级动态变化,避免了“饥饿”问题,适用于设备较多的系统,
5.3 独立请求仲裁
每个设备可以独立发出请求,仲裁器根据请求决定哪个设备获得总线。灵活且高效,但可能出现争用和复杂的仲裁机制。
5.4 总线仲裁机制的应用
不同的总线仲裁机制适用于不同的系统,主要的选择标准包括:
设备数量:设备数量多时,计数器仲裁和独立请求仲裁较为高效。
系统复杂性:较为简单的系统可能使用链式仲裁,较为复杂的系统则可以选择计数器仲裁和独立请求仲裁。
公平性要求:如果系统中设备间的公平性要求较高,计数器仲裁和独立请求仲裁更为合适。
5.5 总线仲裁的优缺点总结
链式仲裁
实现简单,硬件开销小,适合设备数量少的系统,只需要两根线便可实现功能。
效率低,设备数量多时存在等待延迟,可能产生优先级反转问题。
计数器仲裁
提供动态优先级调整,较高的公平性,适合多设备系统,需要log(n) + 1根线来实现。
实现复杂,硬件开销大,需要全局同步。
独立请求仲裁
灵活高效,设备独立请求,适用于灵活的设备间竞争,需要2n根线实现。
可能导致争用,仲裁复杂,低优先级设备可能无法及时获得总线。
6.总线通信控制
同步通信:
规定明确,简单,但具有局限性。
异步通信:
采取握手方式,一问一答的方式实现,克服了同步通信的缺点,但控制逻辑更复杂,传输率更低。
分为不互锁,半互锁,全互锁式(TCP协议的三次握手)。
半同步通信:
前两者的结合。
分离式通信:
将传输周期分为两个子周期,A为主设备,B为访问的设备
第一个子周期,A占用总线向B设备发送信息,之后立即退出占用总线。
第二个子周期,B设备接受到了A设备发送的信息,在内部准备好A需要的信息后,再占用总线向A发送信息。
总的来说节省了等待B设备准备数据的时间,但设计更加复杂。
I/O系统
1. 组成
1.1 I/O软件
I/O指令:
由操作码/命令码/设备码组成。
命令码:表示具体的操作类型,如输入、输出、状态检测等。
操作码:标识该命令为I/O指令。
通道指令:
通道是操作系统与I/O设备交互的一个重要组成部分,负责处理与I/O设备相关的操作。
通道指令是指通过通道进行I/O操作时所使用的指令,它通常是计算机硬件的一部分,直接影响设备的工作和数据传输。
1.2 I/O硬件
采取接口模块的I/O系统:
接口模块/I/O设备。
I/O通道:
通道/设备控制器/I/O设备
I/O总线
2. I/O接口
2.1 功能
选址功能:
I/O接口负责为每个外部设备分配一个唯一的地址,这样计算机系统能够通过该地址访问特定的I/O设备。
数据缓冲:
I/O接口使用缓冲区存储数据,以解决设备速度差异问题,避免因传输速率不匹配而导致的数据丢失或过载。
串并转换:
对于串行通信的设备和并行通信的计算机,I/O接口负责进行串行与并行数据格式的转换,以保证数据传输的兼容性。
电平转换:
计算机内部和外部设备通常使用不同的电压标准,I/O接口负责将信号电平转换,使设备能够正确理解信号。
传送控制命令:
I/O接口发送控制命令,确保I/O设备能够按时启动、停止或执行特定的操作。
反馈状态信息:
I/O接口不断监控设备的状态,并反馈给计算机,告知设备是否处于就绪、忙碌、错误等状态.
2.2 I/O接口的基本组成
I/O接口的基本组成通常包括以下几个关键部分:
设备选择电路
当设备码匹配时,发出设备选择信号,选择并激活目标I/O设备。该电路确保数据和控制信号被发送到正确的设备。
命令寄存器/命令译码器
命令寄存器:用于暂时存储通过命令线传输过来的命令码。
命令译码器:对命令寄存器中的命令进行解析,决定该执行的操作类型,如读、写、状态检测等。
数据缓冲寄存器 (DBR)
用于暂存即将传输的数据或已接收的数据,解决计算机和外部设备之间的速度差异问题。数据缓冲寄存器确保数据在适当时刻被正确传输和处理。
状态触发器
包括完成触发器(D)和工作触发器(B),用于表示设备的工作状态和操作完成状态。这些触发器提供设备当前状态的实时反馈。
中断请求触发器
发送中断请求信号,当设备完成任务或发生异常情况时,触发中断请求,通知CPU进行处理。
中断屏蔽触发器
实现对中断请求的屏蔽功能,用于控制哪些中断信号需要被忽略,防止不需要的中断干扰正常的操作。
2.3 I/O端口及其编址
端口
指的是接口电路中的一些寄存器,包括数据端口,控制端口,状态端口。
编址
统一编址:将I/O地址看成存储器地址的一部分,可以通过CPU直接进行访问,缺点是减少了主存的容量。
不统一编址:I/O地址和存储器地址完全分开,两者独立,但与此同时需要专门的I/O指令进行访问,结构更清晰,但指令系统更加复杂。
3. I/O方式
3.1 程序查询方式
定义:在程序查询方式下,CPU通过不断查询设备的状态寄存器来判断I/O操作是否完成,是否可以进行下一步操作。
过程:程序轮询外设的状态寄存器,检查是否就绪,如果未就绪则继续查询,直到操作完成。
特点:
简单易实现,但效率较低。
占用CPU资源,CPU在等待期间无法执行其他任务。
常用于I/O操作较少、延迟要求不高的场景。
3.2 DMA方式 (Direct Memory Access)
定义:DMA方式通过DMA控制器直接将数据在I/O设备和内存之间传输,CPU仅在初始化传输时参与,不需要进行数据传输过程中的干预。
过程:CPU向DMA控制器发送命令,DMA控制器负责直接在内存和I/O设备之间传输数据,传输完成后生成中断通知CPU。
特点:
提高了数据传输效率,释放了CPU的处理能力。
适用于大量数据传输的场景,如磁盘、网络、音视频处理等。
需要额外的硬件支持(DMA控制器)。
支持更高的带宽和低延迟。
最后更新于