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

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.rhkb.cn/news/327973.html

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

相关文章

数据结构【顺序表】

文章目录 1.顺序表的概念线性表物理结构逻辑结构 2.顺序表的分类2.1静态顺序表2.2动态顺序表 3.顺序表接口的实现头文件(SQList.h)如下源文件初始化顺序表销毁顺序表插入扩容尾插头插 封装扩容函数删除尾删头删 查找元素在指定位置前插入数据情况一(指定的位置不是首元素)情况二…

【机器学习】逻辑回归:智能垃圾邮件分类实例

逻辑回归:智能垃圾邮件分类的利器 一、引言二、逻辑回归概述三、垃圾邮件分类实例数据准备特征选择与建模 四、总结与展望 一、引言 随着互联网的迅猛发展,电子邮件已成为人们日常生活和工作中不可或缺的一部分。然而,与此同时,垃…

[蓝桥杯]真题讲解:合并数列(双指针+贪心)

[蓝桥杯]真题讲解&#xff1a;班级活动&#xff08;贪心&#xff09; 一、视频讲解二、正解代码1、C2、python33、Java 一、视频讲解 [蓝桥杯]真题讲解&#xff1a;合并数列&#xff08;双指针贪心&#xff09; 二、正解代码 1、C #include<bits/stdc.h> #define in…

k8s 网络组件详细 介绍

目录 一 k8s 有哪些网络组件 二 k8s 网络概念 1&#xff0c; k8s 三种网络 2&#xff0c;K8S 中 Pod 网络通信 2.1 Pod 内容器与容器之间的通信 2.2 同一个 Node 内 Pod 之间的通信 2.3 不同 Node 上 Pod 之间的通信 三 Flannel 网络组件 1&#xff0c;Flannel …

K8s源码分析(一)-K8s调度框架及调度器初始化介绍

本文首发在个人博客上&#xff0c;欢迎来踩&#xff01; 文章目录 调度框架介绍K8s scheduler 介绍K8s scheduler的初始化Cobra介绍K8s scheduler中初始化的源代码解析 调度框架介绍 这是官方对于v1.27调度框架的介绍文档&#xff1a;https://v1-27.docs.kubernetes.io/docs/…

使用vue3+ts+vite从零开始搭建bolg(五):layout(持续更新中)

五、layout搭建 5.1静态搭建 在src下创建如图文件夹 这里用logo举例&#xff0c;在scripts里export <script lang"ts">export default {name: Logo,}</script> 然后在layout里引入 //引入左侧菜单顶部用户信息 import Logo from ./logo/index.vue 接…

Spring AOP(概念,使用)

目录 Spring AOPAOP是什么什么是Spring AOPAOP实际开发流程1. 引入依赖2. 编写AOP程序 Spring AOP详解Spring AOP中的核心概念Spring AOP的通知类型六种类型PointCutOrder(切面优先级) Spring AOP AOP是什么 Aspect Oriented Programminig(面向切面编程)切面指的是某一类特定…

“Linux”目录结构and配置网络

了解完命令格式和vi、vim编辑器后&#xff0c;我们来认识一下目录的结构&#xff1a; 一、目录 &#xff08;1&#xff09;目录的特点 windows特点&#xff1a; Windows中有C、D、E盘&#xff0c;每个都是一个根系统 Linux特点&#xff1a; linux中只有一个根&#xff08;单…

C++auto关键字、范围for循环

一、auto关键字 1.1auto简介 在早期C/C中auto的含义是&#xff1a;使用auto修饰的变量&#xff0c;是具有自动存储器的局部变量。 C11中&#xff0c;标准委员会赋予了auto全新的含义即&#xff1a;auto不再是一个存储类型指示符&#xff0c;而是作为一个新的类型指示符来指示编…

记录用python转换headers

转换前 转换后效果 代码如下。注意需要在控制台切换到content.txt所在位置&#xff0c;不然运行代码会报file not found错误 # 假设txt文件内容如下 txt open(content.txt).read()# 使用splitlines()方法将txt内容分割为行&#xff0c;然后使用json.loads()方法将每一行转换为…

每日两题 / 437. 路径总和 III 105. 从前序与中序遍历序列构造二叉树(LeetCode热题100)

437. 路径总和 III - 力扣&#xff08;LeetCode&#xff09; 前序遍历时&#xff0c;维护当前路径&#xff08;根节点开始&#xff09;的路径和&#xff0c;同时记录路径上每个节点的路径和 假设当前路径和为cur&#xff0c;那么ans 路径和(cur - target)的出现次数 /*** D…

【吊打面试官系列】Java高并发篇 - 多线程的价值?

大家好&#xff0c;我是锋哥。今天分享关于 【多线程的价值&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 多线程的价值&#xff1f; 1、发挥多核 CPU 的优势 多线程&#xff0c;可以真正发挥出多核 CPU 的优势来&#xff0c;达到充分利用 CPU 的目的&#…

Linux学习笔记(Socket)

Linux-Socket 1、基础知识2、服务端3、客户端4、读写操作4.1、读写函数4.2、阻塞IO和非阻塞IO 5、例程 1、基础知识 socket用于计算机之间的网络通信&#xff0c;无论是构建服务器还是客户端&#xff0c;我们仅需要三个信息&#xff0c;服务器的ip地址&#xff0c;对应进程的端…

openlayers 热力图 天地图

openlayers 实现热力图 样式可调 在https://blog.csdn.net/qq_36287830/article/details/131844745?spm1001.2014.3001.5501基础上改进来的 关键代码 如果你有数据可以不使用for循环 var blurInput document.getElementById("blur");var rediusInput document.g…

PyQt5编写的一个简易图像处理软件

文章目录 1. 简介2. 准备工作3. 主界面设计4. 功能构建5. 总结 1. 简介 通过编写简易图像处理软件&#xff0c;你可以学习如何使用 PyQt5 构建用户界面&#xff0c;以及如何与用户交互。同时&#xff0c;你还可以学习图像处理技术&#xff0c;如图像读取、傅里叶变换、滤波、增…

【NR学习一】NR中的带宽、子载波间隔、PRB数量、FFT点数与采样率之间的关系

NR中的带宽、子载波间隔、PRB数量、FFT点数与采样率之间的运算关系 在5G NR&#xff08;New Radio&#xff09;系统设计中&#xff0c;带宽&#xff08;Bandwidth&#xff09;、子载波间隔&#xff08;Subcarrier Spacing, SCS&#xff09;、资源块&#xff08;Resource Block…

仓库管理流程详解(附作业流程图)

仓库管理流程在企业的日常运营中至关重要。它不仅是物资流转的核心环节&#xff0c;更关乎着企业的运营效率、成本控制和客户服务水平。一个高效、规范的仓库管理流程能够确保货物从入库到出库的各个环节有序进行&#xff0c;减少资源浪费和时间成本&#xff0c;同时帮助企业实…

泽攸科技无掩模光刻机:引领微纳制造新纪元

在当今科技迅猛发展的时代&#xff0c;微纳制造技术正变得越来越重要。泽攸科技作为这一领域的先行者&#xff0c;推出了其创新的无掩模光刻机&#xff0c;这一设备在微电子制造、微纳加工、MEMS、LED、生物芯片等多个高科技领域展现出了其独特的价值和广泛的应用前景。 技术革…

数据分析(二)——导入外部数据,导入Excel数据,CSV文件,txt文件,HTML网页,数据抽取,DataFrame对象的loc属性与iloc属性

一.导入外部数据 1.导入.xIs或.xIsx文件 pd.read_ excel(io,sheet_ name,header) 1.1常用参数说明 ●io:表示.xIs或.xIsx文件路径或类文件对象 ●sheet name:表示工作表&#xff0c;取值如下表所示 ●header:默认值为0&#xff0c;取第一行的值为列名&#xff0c;数据为除列…

手撸XXL-JOB(四)——远程调用定时任务

Java Socket网络编程 网络编程是Java编程中的重要组成部分&#xff0c;包括服务端和客户端两部分内容。Socket是Java网络编程的基本组件之一&#xff0c;用于在应用程序之间提供双向通信&#xff0c;Socket提供了一种标准的接口&#xff0c;允许应用程序通过网络发送和接收数据…