计算机组成原理(超详解!!) 第八节 总线系统

1.总线的概念和结构形态

1.总线(BUS)的基本概念

是构成计算机系统的互联机构,是多个系统功能部件(运算器、控制器、存储器、输入/输出设备)之间进行数据传送的公共通路。 

由传输信息的电路和管理信息传输的协议组成。

总线往往是计算机数据交换的中心,总线的结构、技术和性能都直接影响着计算机系统的性能和效率。

总线分类

(1)内部总线:CPU内部连接各寄存器及运算部件之间的总线。

(2)系统总线:CPU同计算机系统的其他高速功能部件(存储器、通道等)间互相连接的总线。  

(3) I/O总线:中、低速I/0设备间互相连接的总线。

注:在任何时刻,只可以有一个部件向总线上发送信息,但却可以有一个或多个部件同时接收信息。

总线结构

组成:连接设备的信号线,即总线通道;总线上的设备;管理总线的部件,即总线控制器。

(1) 总线通道

按照信号类型可分为数据总线、控制总线和地址总线。只是逻辑上的划分。

数据总线宽度是决定连接到总线上的设备可能获得的最大性能的决定因素之一,也是影响系统性能的关键因素之一。

地址总线是标明发送或接收数据的设备编号信号线。其宽度决定了总线上连接设备的能力。

控制总线用于控制总线设备对数据线和地址线的使用。

控制信号主要完成设备之间进行信息交换时的定时和命令。其中定时信号标明有效地址和数据出现在总线上的时间。命令信号定义总线上所要完成的操作。

(2) 总线上的设备

主设备(Master)和从设备(Slave)。

主设备能够申请总线使用权,而从设备不具有总线使用权。

(3) 总线接口

是连接功能部件和总线的桥梁,它完成功能部件的信号和总线信号之间的协调和转换,因此具有对总线和设备两个方面的工作。

总线连接的主要优点

(1)多个部件之间采用总线连接方式,可大大降低部件间互连的复杂性,大幅度减少连线数量。

(2)由于多个部件之间连接的多个控制接口变成了每个部件与总线间的一个连接接口,连接接口的器材量大幅度减少。

(3)如果设备之间没有或者很少有多个部件同时进行信息交换,采用总线方式连接这些部件可有效发挥总线连接的优点。

总线物理实现

总线特性

①物理特性:总线的物理连接方式,包括总线的根数、总线的插头、插座形状、引脚线排列方式等。

②功能特性:描述总线中每一根线的功能。

③电气特性:定义每一根线上信号的传递方向及有效电平范围。一般规定送入CPU的信号叫输入信号、从CPU发出的信号叫输出信号。

④时间特性:定义每根线在什么时间有效,即规定总线上各信号有效的时序关系。

几种常用的标准总线

ISA(Industrial Standard Architecture)总线:工业标准结构总线,8位(后来16位)数据线,20位(后来24位)地址线,工作频率8.33MHz。

EISA(Extended Industrial Standard Architecture )总线:扩展工业标准结构总线,16或32位数据线,32位地址线,工作频率8.33MHz,支持Burst方式传输数据。

VESA(Video Electronics Standard Association)总线:32位局部总线,连接显卡、网卡等,最高工作频率33MHz。没有严格标准,各厂家产品兼容性差,针对80486。

PCI( Peripheral Component Interface)总线:外围部件互连总线(局部总线),V1.0支持33MHz工作频率,32位地址和数据线互用;V2.1支持66MHz工作主频,64位地址和数据线互用。

衡量总线性能的指标

①总线宽度; ②总线控制方式;③时钟模式;④总线复用;⑤信号线数;⑥总线带宽;⑦其它标准:如总线负载能力,电源电压等。

总线带宽:总线本身所能达到的最高传输速率, 单位:MB/S(兆字节/秒)。

影响总线带宽的因素:    

(1)  总线布线长度;    

(2)  总线驱动器/接受器性能;    

(3)  连接在总线上的模块数;

2.总线的连接方式

1.单总线结构

特点:使用一条单一的系统总线来连接CPU、主存和I/O设备。在单总线结构中,要求连接到总线上的逻辑部件必须高速运行,以便在某些设备需要使用总线时,能迅速获得总线控制权;而当不再使用总线时,能迅速放弃总线控制权。否则,由于一条总线由多种功能部件共用,可能导致很大的时间延迟。    

要求:连到总线上的逻辑部件必须高速运行。    

单总线系统中,对输入/输出设备的操作,完全和主存的操作方法一样来处理。    

某些外围设备也可以指定地址。此时外围设备通过与CPU中的控制部件交换信息的方式占有总线。

2.多总线

在CPU、主存、I/O之间互联采用多条总线。如图所示。

高速的CPU总线:CPU和cache之间采用

系统总线:主存连在其上。

高速总线上可以连接高速LAN(100Mb/s局域网)、视频接口、图形接口、SCSI接口(支持本地磁盘驱动器和其他外设)、Firewire接口(支持大容量I/O设备)。高速总线通过扩充总线接口与扩充总线相连,扩充总线上可以连接串行方式工作的I/O设备。

通过桥CPU总线、系统总线和高速总线彼此相连。桥实质上是一种具有缓冲、转换、控制功能的逻辑电路。

多总线结构体现了高速、中速、低速设备连接到不同的总线上同时进行工作,以提高总线的效率和吞吐量,而且处理器结构的变化不影响高速总线。

3.总线的内部结构

数据传送总线:由地址线、数据线、控制线组成;为减少布线,数据线和地址线常采用多路复用方式。    

仲裁总线:总线请求线和总线授权线。    

中断和同步总线:用于处理带优先级的中断操作,包括中断请求线和中断认可线。    

公用线:包括时钟信号线、电源线、地线、系统复位线以及加电或断电的时序信号线等。

2.总线接口

1.信息的传送方式

(1)码元    信息传输通道中,携带数据信息的信号单元。

(2)波特率(码元传输率)    每秒钟通过信道传输的码元数。是传输信道频宽的指标。

(3)码元时间    波特率的倒数,即传输一位码元的时间。

1. 串行传送

只用一条传输线,且采用脉冲传送。    

在串行传送时,按照顺序来传送表示一个数码的所有二进制位的脉冲信号,每次一位。    

当使用脉冲信号传递连续的“1”或“0”数码时,必须采用某种时序格式,以便使接收设备能加以识别,通常采用“位时间”(即一个二进制位在传输线上占用的时间长度),一般低位在前,高位在后。      

在串行传送时,被传送的数据需要在发送部件进行并—串变换,即拆卸,在接收部件进行串—并变换,称为装配。

2.并行传送  

每个数据位单独占用一条传输线。这样每一条线分别代表了二进制数的不同位值。 一般采用电位传送,系统总线都采用“并行传送”方式。

3.分时传送    

一是采用总线复用方式,如在传输线上既传输数据又传送地址,为此必须划分时间片来实现传送任务;二是共享总线的部件分时使用总线。

接口的基本概念:

I/O设备适配器,广义上讲,接口指CPU和主存、外围设备之间通过总线进行连接的逻辑部件。接口在它动态连接的部件间起“转换器”的作用,以实现彼此间的信息传送。

接口通常具有的功能:

控制:靠程序的指令信息来控制外围设备的动作。

缓冲:作为缓冲器,用以补偿各种设备在速度上的差异。

状态:监视外围设备的工作状态并保存状态信息,供CPU询问外围设备时进行分析之用。

转换:完成任何要求的数据转换。

整理:完成一些特别的功能,如修改字计数器或当前AR。

程序中断:外围设备向CPU请求某种动作时,接口即发生一个中断请求信号到CPU。   

适配器必须有的两个接口:      

(1) 和系统总线的接口,其数据交换一定是并行方式;  

(2) 和外设的接口,可能是并行或串行;

分类:串行数据接口和并行数据接口。

3.总线的仲裁、定时和数据传送模式

总线控制器:是总线系统的核心,任务是管理总线的使用,包括总线上设备的管理和设备使用总线过程的管理。其物理上不一定是一个独立的控制器,其功能可分布到总线的各个部件或者设备上。

功能:总线系统资源的管理:总线系统资源有存储空间,设备端口,通道、中断等。总线控制器具有资源分配、冲突判定、设备选择、启动、复位等功能。

功能模块状态:主动和被动。

提出:为解决多个主设备同时竞争总线控制权的问题,必须具有总线仲裁部件,以某种方式选择其中一个主设备作为总线下一次的主方。    

对多个主设备提出的占用总线请求,一般采用优先级或公平策略进行仲裁。被授权的主方在当前总线周期一结束,即接管总线,开始新的信息传送。

总线占用期:主方持续控制总线的时间。

1.总线的仲裁

按照总线仲裁电路的位置不同,仲裁方式分为集中式仲裁和分布式仲裁。

1.集中式仲裁

仲裁电路集中在一起,通常由一个模块实现。每功能模块有两条线连到中央仲裁器:一条为送往仲裁器的总线请求信号线BR,一条是仲裁器送出的总线授权信号线BG。

1)链式查询方式

特点: 共用一条总线授权线,总线授权信号BG串行地从一个I/O接口传送到下一个I/O接口,如果该接口没有请求,则继续往下查询;如果有总线请求,则BG信息不再向下查询,该接口获得总线控制权。

共用一个BS线表示当前总线是否被使用着。各设备的优先级是按照BG线上离中央仲裁器的远近来确定。    

优点:只用很少几根线就能按一定优先次序实现总线仲裁,且可方便地扩充设备。    

缺点:对询问链电路故障敏感,优先级固定而不能调整、速度慢。

2)计数器定时查询方式  

总线上任一设备要求使用总线时,通过BR线发出总线请求。中央仲裁器接到请求信号以后,在BS线为“0”的情况下让计数器开始计数,计数值通过一组地址线发向设备,每个设备接口都有一个设备地址判别电路,当地址线上的计数值与请求总线的设备地址一致时,该设备设置“1”BS线,获得总线使用权,此时中止(pause not stop)计数查询。    

比较:少了一条BG线,可改变优先次序,对电路的故障不如链式敏感,但增加了主控线数,控制较复杂。

优点:设备优先级可以改变,仲裁策略灵活性高。

3)独立请求方式  

每一共享总线的设备均有一对BRi和BGi,当设备要使用总线时,便发出总线请求信号,中央仲裁器有一个排队电路,根据一定的优先次序决定首先响应哪个设备的请求,给设备以授权信号。  

优点:响应时间最快;对优先次序的控制相当灵活(可以预先固定、也可以通过程序来改变,还可屏蔽某个设备的总线请求)。 

对于单CPU系统总线,中央仲裁器又称总线控制器,是CPU的一部分,而按照目前的总线标准中央仲裁器一般是单独功能模块。

2.分布式仲裁    

不需要中央仲裁器,每个主方都有自己的仲裁号和仲裁器;当总线申请时,把各自唯一的仲裁号发到共享的总线上,每个仲裁器把仲裁线上的号和自己的号比较,如果总线上的号大,则它的总线请求不予响应,并撤销它的仲裁号。最后,获胜的仲裁号留在仲裁总线上。

4.总线的定时和数据传送模式

1.总线的定时(时序协议)

总线的一次信息传送过程:请求总线、总线仲裁、寻址、信息传送、状态返回(或错误报告)。  

为了同步主从方的操作,必须制定定时协议。定时就是指事件出现在总线上的时序关系 。

同步定时(时序)

总线操作的各个过程由共用的总线时钟信号控制

适合速度相当的器件互连总线,否则需要准备好信号让快速器件等待慢速器件

微处理器控制的总线时序采用同步时序

异步定时(时序)

总线操作需要握手联络(应答)信号控制

数据传输的开始伴随有启动(选通或读写)信号

数据传输的结束有一个确认信号,进行应答

1. 同步定时    

事件出现在总线上的时刻由总线时钟信号来确定。

优点:规定明确、统一、模块间配合简单一致。  

缺点:主从模块时间配合属强制性同步,必须在限定时间内完成规定的要求,并且对所有模块都用同一限时,势必造成对不相同速度的部件而言,必须按最慢的速度部件来设计公共时钟,严重影响总线工作效率。

适用范围:仅适合总线长度较短、各个功能模块存取时间比较接近的情况。

2. 异步定时    

建立在应答式或互锁机制基础之上,后一事件出现在总线上的时刻取决于前一事件的出现。  

优点:不需要统一的公共时钟,总线周期的长度可变,不把响应时间强加到功能模块上,允许快速和慢速的功能模块都能连接到同一总线上,给设计者以充分的灵活和选择余地。    

缺点:增加了总线的复杂性和成本。

异步时序的互锁关系:

2.总线数据传送模式

读、写操作:读操作是由从方到主方的数据传送;写操作是由主方到从方的数据传送。一般,主方先以一个总线周期发出命令和从方地址,经过一定的延时再开始数据传送总线周期。为了提高总线利用率,减少延时损失,主方完成寻址总线周期后可让出总线控制权,以使其他主方完成更紧迫的操作。然后再重新竞争总线,完成数据传送总线周期。

块传送操作:只需给出块的起始地址,然后对固定块长度的数据一个接一个地读出或写入。对于CPU(主方)存储器(从方)而言的块传送,常称为猝发式传送,其块长一般固定为数据线宽度(存储器字长)的4倍。例如一个64位数据线的总线,一次猝发式传送可达256位。这在超标量流水中十分有用。

写后读、读修改写操作:这是两种组合操作。只给出地址一次(表示同一地址),或进行先写后读操作,或进行先读后写操作。前者用于校验目的,后者用于多道程序系统中对共享存储资源的保护。这两种操作和猝发式操作一样,主方掌管总线直到整个操作完成。

广播、广集操作:一般而言,数据传送只在一个主方和一个从方之间进行。但有的总线允许一个主方对多个从方进行写操作,这种操作称为广播。与广播相反的操作称为广集,它将选定的多个从方数据在总线上完成AND或OR操作,用以检测多个中断源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/701256.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络传输,请每次都开启 TCP_NODELAY

原文:Marc Brooker - 2024.05.09 (注:不必过于担心这个问题,大部分现代库,语言(如 Go),代理(如 Envoy),都默认设置了 TCP_NODELAY。如果遇到网络…

6. 第K小的和-二分

6.第K小的和 - 蓝桥云课 (lanqiao.cn) #include <bits/stdc.h> #define int long long #define endl \n using namespace std; int n,m,k,an[100005],bm[100005]; int check(int x){int res0;//序列C中<x的数的个数for(int i0;i<n;i){//遍历数组A&#xff0c;对于每…

工厂数字化转型实现路线

工厂数字化转型实现路线 随着科技的飞速发展&#xff0c;数字化转型已成为当今社会的热门话题。尤其是对于工厂企业而言&#xff0c;数字化转型更是一种必然趋势。然而&#xff0c;在这个过程中&#xff0c;许多企业面临着种种困难和挑战。因此&#xff0c;探讨工厂企业数字化转…

练习题(2024/5/13)

1移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5]示例 2&#xff1a; …

如何对基本公共服务均等化进行统计监测

党的十九大指出“履行好政府再分配调节职能&#xff0c;加快推进基本公共服务均等化&#xff0c;缩小收入分配差距”&#xff0c;提出到2035年基本公共服务均等化基本实现。国务院相继于2012年和2017年发布了《国家基本公共服务体系“十二五”规划》和《“十三五”推进基本公共…

基于安装包安装数据库时出现的问题分析及总结

数据库在数据初始化后并不会出现错误&#xff0c;这个时候在启动数据库时会出现启动不成功&#xff0c;不知道问题是什么要学会通过查看日志发现问题&#xff0c;日志就在Data文件夹下。 错误类型1 数据库在初始化后数据库启动不起来 原因&#xff1a;可能是配置文件my.ini一些…

深入探索内存映射:mmap和共享内存的工作原理及区别

目录标题 1. 引言 1.1 内存映射的定义1.2 mmap 系统调用概述 2. 内存映射基础 2.1 内存映射的定义2.2 mmap 系统调用概述2.3 mmap 系统调用和直接使用IPC共享内存之间的差异 3. mmap 与文件 I/O 3.1. 传统文件 I/O 的局限性3.2. mmap 的优势 4. 内存映射的工作原理&…

力扣HOT100 - 198. 打家劫舍

解题思路&#xff1a; 动态规划 class Solution {public int rob(int[] nums) {int len nums.length;if (nums null || len 0) return 0;if (len 1) return nums[0];int[] dp new int[len];dp[0] nums[0];dp[1] Math.max(nums[0], nums[1]);for (int i 2; i < len;…

智能AI数字人系统 打造无人直播间 主播形象任意选择!

系统概述 智能AI数字人系统是一种结合人工智能、计算机图形学、语音合成等技术的综合性系统。该系统能够模拟人类的外貌、行为和语言&#xff0c;为用户提供逼真的交互体验。在无人直播间场景下&#xff0c;智能AI数字人系统可以扮演主播角色&#xff0c;与观众进行实时互动&a…

AIConnect 综合算力服务网络:引领智能未来,创造无限可能性!

2022年11月30日&#xff0c;由OpenAI开发的大模型聊天机器人GPT-3发布&#xff0c;首个完全意义上通过图灵测试的人工智能诞生了。这一里程碑事件的启发了人们对AI技术的发展和应用。在短短两年的时间里&#xff0c;各式各样的聊天AI&#xff0c;图片生成AI&#xff0c;视频生成…

Springboot+MybatisPlus如何实现分页和模糊查询

实现分页查询的时候我们需要创建一个config配置类 1、创建MybatisPlusConfig类 Configuration //表明这是一个配置类 ConditionalOnClass(Value{PaginationInterceptor.class} //ConditionalOnClass:当指定的类存在时&#xff0c;才会创建对应的Bean // 这里当PaginationInt…

【Linux】用户组、用户、文件权限(ugo权限),权限掩码,chmod,chown,suid,sgid,sticky,su,sudo

用户组 注意&#xff1a;普通用户只能查看有哪些组&#xff0c;不能创建/修改/删除&#xff0c;会提示&#xff1a;用户名 is not in the sudoers file.This incident will be reported. groupadd 用户组名新建用户组cat /etc/group查看有哪些组&#xff08;普通用户可以操作…