计算机组成原理 — 系统总线

系统总线

大家好呀,我是小笙,最近我开启了计算机组成原理的知识总结和分享,希望对大家有点帮助!

总线的基本概念

总线是连接各个部件的信息传输线,是各个部件共享的传输介质。(注意:在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的信息)

为什么会出现总线?

  • 分散式设计的需求

    分散式设计体现在各个部件需要升级以及迭代发展,如果需要将这些部件统一起来或者说连接起来,就产生了总线的概念

  • 标准化和模块化

    为了降低成本和提高生产效率,计算机制造商开始寻求一种标准化方法来连接不同的硬件组件

  • IBM的早期贡献

    在20世纪70年代,IBM在其大型计算机系统中引入了系统总线的概念。特别是IBM System/360系列,它们使用了标准化总线来连接CPU、内存和I/O设备,这标志着系统总线在商业计算机中的广泛应用

在随后的系统总线中快速发展并不断的演变,从 ISA总线到 EISA、VESA 总线,再到 PCI总线,系统总线的速度和带宽不断提高,支持更多的设备和更复杂的系统

总线的分类

总线的分类标准有很多,比如按照数据传送方式来分,可以分成串行和并行,或者按照总线的使用范围分等等,接下来让我们按照连接的部件不同,分成三类总线

主要分为三部分,分别是片内总线、系统总线、通信总线

image-20240123215955319

注意点

  • 注意区别总线和系统总线之间的概念和范围等等的区别

    • 定义:

      ​ 总线:总线是一种用于在计算机内部或计算机与外部设备之间传输数据的通信链路。它可以包含数据线、地址线和控制线。总线可以是并行或串行的,可以是单向或双向的,并且可以用于传输各种类型的信息。
      ​ 系统总线:系统总线是连接计算机主要组件(如CPU、内存和I/O设备)的内部总线。它是计算机内部数据传输的主要通道,通常包括数据总线、地址总线和控制总线

    • 范围和功能:

      ​ 总线:这个术语更广泛,可以指任何类型的通信链路,包括但不限于系统总线、I/O总线、内部总线、外部总线等。
      ​ 系统总线:它是特定于计算机内部的一种总线,主要负责CPU和内存之间的数据传输,以及CPU与其他系统组件的通信。

    • 应用场景:

      ​ 总线:广泛应用于各种电子设备中,不仅限于计算机,还可以用于嵌入式系统、通信设备等。
      ​ 系统总线:专用于计算机内部,是构建计算机系统的核心部分。

  • 通信总线中,串行和并行通信的数据传送速率都与距离成反比,并行通信适宜于近距离的数据传输(通常小于30m);串行通信适宜于远距离传送,可以从几米达数千公里

总线特性及性能指标

​ 总线是计算机系统中的一种通信机制,它允许不同组件(如CPU、内存、外设等)之间进行数据传输。总线的特性及性能指标是衡量其效率、可靠性和适用性的重要参数。以下是一些主要的总线特性和性能指标:

总线特性
  1. 并行与串行
    • 并行总线:多个数据位同时传输,提高了数据传输速率。
    • 串行总线:数据位逐个传输,通常用于较长距离的通信。
  2. 宽度:总线的宽度决定了可以同时传输的数据位数。例如,16位总线可以一次性传输16位数据
  3. 速度:总线的速度通常以时钟速率(MHz)来衡量,它决定了总线每秒可以传输多少个数据周期
  4. 数据传输模式
    • 同步传输:数据传输在时钟信号的同步下进行。
    • 异步传输:数据传输不依赖于时钟信号,而是使用握手协议。
  5. 总线仲裁:总线仲裁决定了多个设备请求使用总线时的优先级和处理机制
  6. 可扩展性:总线是否支持扩展,以便连接更多的设备
  7. 热插拔:总线是否支持在不关闭系统的情况下添加或移除设备
性能指标
  1. 带宽:单位时间内可以传输的最大数据量,通常以每秒位数(bps)或兆比特每秒(Mbps)来衡量
  2. 传输速率:数据通过总线的实际速度,受总线类型、宽度、时钟速率等因素影响
  3. 延迟:数据从源头传输到目的地所需的时间,包括传输延迟和仲裁延迟
  4. 吞吐量:单位时间内总线实际传输的数据量,通常受到带宽和延迟的限制
  5. 错误率:总线在数据传输过程中发生错误的频率
  6. 可靠性:总线在长时间运行中的稳定性,以及是否能够容忍错误
  7. 兼容性:总线是否支持不同类型和版本的设备
总线标准(了解)

​ 总线标准是计算机行业中的一种规范,它定义了硬件设备之间如何进行通信和连接。制定总线标准的目的是为了便于机器的扩充和新设备的添加,同时确保不同厂商生产的硬件设备具有兼容性和互换性。以下是一些常见的总线标准:

  1. ISA 总线:1984年,IBM公司为推出PC/AT机而建立的系统总线标准。支持64K I/O地址空间、16M主存地址空间的寻址,以及15级硬中断和7级DMA通道
  2. EISA 总线:在ISA总线基础上进行扩展,提供了更多的功能和性能
  3. MCA 总线:1987年,IBM公司推出的一种局部总线标准,具有较高的性能和带宽
  4. VESA 局部总线:1992年,VESA组织推出的一种高性能局部总线,主要应用于图形加速卡
  5. PCI 总线:1993年,英特尔、微软、Compaq等公司共同制定的一种局部总线标准,具有即插即用、高性能等特点,广泛应用于现代计算机系统中
  6. AGP 总线:1996年,英特尔推出的一种专门用于图形加速卡的局部总线,以提高显示性能
  7. USB 总线:1996年,英特尔、微软、Compaq等公司共同制定的一种外部总线标准,具有即插即用、热插拔等特点,广泛应用于各种外设连接

总线的结构

总线结构通常可分为单总线结构和多总线结构两种

单总线结构框图
概述

将CPU、主存、I/O设备都挂在一组总线上,允许 I/O设备之间、I/O设备与CPU、主存之间直接交换信息

image-20230623102817881
单总线的利弊分析
  • 优势:结构简便,便于扩充 I/O接口和设备
  • 劣势:不允许两个设备同时和 CPU 进行数据传输,将会严重影响系统的工作效率

根本问题:数据传输速率不匹配,CPU 和 I/O 设备 、主存的传输速度不匹配,因此出现了多总线结构如下


面向 CPU 的双总线结构框架图
概述

为了提高数据处理能力和系统的扩展性,设计了两条独立的总线,通常分为前端总线和后端总线

前端总线

  • 负责CPU与内存之间的数据传输
  • 它的频率通常与CPU的外频相同,直接影响到CPU与内存之间的通信速度

后端总线

  • 负责连接低速外设,如USB、IDE、SATA等
  • 处理一些外设的数据传输,以及一些系统管理功能

以下为简易示意图方便理解(M 总线类似前端总线 ; I/O 总线类似后端总线)

image-20230623103202710

面向 CPU 的双总线结构利弊

优势

  • 分离高速与低速传输:通过前端和后端总线的分离,高速设备(如CPU和内存)与低速设备(如硬盘、USB设备)的通信被分开,减少了互相干扰,提高了系统整体性能
  • 扩展性:双总线结构允许系统设计者根据需要独立升级前端总线和后端总线的速度和带宽,提高了系统的扩展性

劣势

  • 复杂性:双总线结构增加了系统设计的复杂性,需要更多的硬件组件,增加了成本和故障点
  • 成本:双总线结构需要额外的芯片和电路设计,这可能会提高整体成本

面向存储器的双总线结构框架图
概述

为了提高存储器访问效率和系统带宽,设计了两条独立的总线专门用于处理存储器相关的数据传输。其中一条总线用于处理CPU到内存的数据传输,另一条总线用于处理I/O设备到内存的数据传输。

image-20230623103639873

面向存储器的双总线结构的利弊

优势

  • 并行处理:CPU和I/O设备可以并行访问内存,提高了系统带宽和效率
  • 提升I/O性能:I/O设备可以直接访问内存,提高了I/O操作的速度

劣势

  • 成本:双总线结构增加了系统设计的复杂性,可能导致成本上升
  • 能耗和热量:需要更多的布线可能意味着更高的能耗和热量产生

双总线结构框架图
概述

将速度较低的I/O设备从单总线上分离出来,形成主存总线与I/O总线分开的结构。CPU将一部分功能下放给通道,使其对I/O设备具有统一管理的功能,以完成外部设备与主存储器之间的数据传送

image-20230623111828712
传统微型计算机的总线结构示例
image-20240126223636538
三总线结构框架图

image-20230623113100642


四总线结构框架图

为了进一步提高I/O设备的性能,使其更快地响应命令,又出现了四总线结构

image-20230623113853232
PCI 总线结构示例
image-20240126224044530

总线的控制

主要包括判优控制(或称仲裁逻辑)和通信控制

总线的判优控制

主要目的:决定在多个设备同时请求使用总线时,哪一个设备将获得总线的控制权

集中式判优控制
概述
  • 一个专门的硬件单元(如总线控制器)负责决定哪个设备可以访问总线

  • 集中式判优控制可以是静态的或动态的控制

    • 静态判优控制(如固定优先级)按照预定的优先级顺序来决定访问权限

    • 动态判优控制(如轮询或基于请求的优先级)则根据当前的请求情况动态调整优先级

链式查询方式

原理:设备接口通过BR向总线控制部件发送请求(占用总线请求),BG通过链式方式查询第一个向总线控制部件发送请求的设备,该设备更新总线为忙并占用总线

image-20230623131640902

优点

  • 通过一个“令牌”或者“标记”在设备间传递,确保每个设备都有机会获得总线访问权
  • 实现相对简单,只需要一个逻辑令牌沿着设备链传递

缺点

  • 访问顺序固定,如果某个设备不需要立即访问总线,会造成总线资源的浪费
  • 如果令牌传递中的某个设备故障,可能会影响整个总线系统的运行
计数器定时查询方式

原理:总线控制部件中有计数器,如果 BR 中有设备向总线控制部件发送请求并且总线控制部件没有被占用的情况,则开启计数器,通过设备地址轮询查找每个设备的请求情况(该查询情况中与每条设备连接的线是并行的,相互之间不会受到影响)

image-20230623131730293

优点

  • 通过计数器值来选择下一个访问总线的设备,可以实现更公平的访问
  • 可以根据系统的实时负载情况动态调整每个设备的访问概率

缺点

  • 实现起来比固定优先级和轮询复杂,需要额外的逻辑来维护和更新计数器值
  • 由于计数器可能导致任何设备在任意时刻获得总线,实时性要求高的设备可能无法保证快速响应
独立请求方式

原理:每个设备接口都有单独的 BG、BR线,当部分设备接口向总线控制部件发送请求时候,总线控制部件通过排队器来决定设备的优先级并作出快速的响应

image-20230623132743458

优点

  • 设备在需要时立即发出请求,无需等待,适用于实时性要求高的系统
  • 每个设备根据自己的需要请求总线,不受其他设备的影响

缺点

  • 当多个设备同时请求总线时,需要额外的机制来解决冲突,如“最高优先级胜出”或“先请求先服务”
  • 需要更复杂的控制逻辑来处理多个请求,并确保公平性和效率
三种判空控制方式的简易对比

image-20230623133719208

分布式判优控制(了解)
概述

分布式判优控制是一种在计算机网络或通信系统中使用的仲裁机制,其中仲裁逻辑分布在各个网络节点上,而不是集中在一个单一的位置

优点
  • 分布式判优可以减少中央控制单元的负担,提高系统的整体效率
  • 节点可以快速做出本地决策,减少了通信延迟
  • 即使某些节点出现故障,其他节点仍然可以继续工作
缺点
  • 多个节点可能同时请求访问共享资源,需要有效的冲突解决机制
  • 设计和实现分布式判优控制比集中式判优更加复杂
分布式判优示例
  • CSMA/CD:在发送数据前先监听信道,如果信道忙则等待,如果检测到碰撞则停止发送并等待随机时间后重试
  • CSMA/CA:类似于CSMA/CD,但增加了碰撞避免机制,例如在发送数据前先发送一个预约信号
  • Token Ring:令牌在网络中传递,只有持有令牌的节点才能发送数据

总线通信控制

目的:计算机系统中用于管理和协调通过总线(一种用于传输数据的通信链路)的数据传输的技术。在多设备系统中,总线通信控制至关重要,因为它确保了数据的有效传输,同时避免了冲突和数据丢失 => 总的来说,解决通信双方 协调配合 问题

总线的传输周期
  • 申请分配阶段: 主模块申请,总线仲裁决定
  • 寻址阶段: 主模块向从模块给出地址和指令
  • 传数阶段: 主模块和从模块进行数据交换
  • 结束阶段: 主模块撤销相关的信息
总线通信的四种方式
  • 同步通信: 由统一时标控制数据传送
  • 异步通信(不互锁、半互锁、全互锁): 采用应答方式,没有公共时钟标准
  • 半同步通信: 同步、异步结合(允许不同传输速度的主从模块传输数据)
  • 分离式通信: 充分挖掘系统总线每个瞬间的潜力
同步通信
  • 同步式数据输入

    T1:主模块发地址 ; T2:主模块发读命令 ;T3:从模块提供数据 ;T4 :主模块撤销读命令,从模块撤销数据

    image-20240127155222134

  • 同步式数据输出(类似输入)

    image-20240127155504357

  • 同步通信的利弊

    • 规定明确、统一,模块间的配合简单一致
    • 主、从模块时间配合属于强制性“同步”,必须在限定时间内完成规定的要求。并且对所有从模块都用同一限时,这就势必造成,对各不相同速度的部件而言,必须按最慢速度的部件来设计公共时钟,严重影响总线的工作效率,也给设计带来了局限性,缺乏灵活性
异步通信

概述

异步通信是一种数据传输方式,在这种方式中,发送方和接收方不需要以相同的时钟速率或同步方式操作(允许各模块的速度不一致)

异步通信中的应答方式用于确认消息的接收,以确保通信的可靠性。根据确认机制的不同,可以分为以下三种类型:

image-20240127160320673

  • 不互锁

    • 在这种模式下,发送方在发送消息后不会等待接收方的任何确认。发送方可以立即继续发送其他消息,而无需关心接收方是否已经成功接收 ()
    • 这种方式的优点是传输速度快,因为它不需要等待确认,但缺点是缺乏可靠性,因为发送方不知道消息是否已经被接收
  • 半互锁

    • 半互锁方式是介于不互锁和全互锁之间的一种模式。发送方在发送消息后会等待一个短时间窗口,如果在这段时间内接收到接收方的确认,则继续执行下一个任务;如果没有收到确认,发送方可能会重发消息或采取其他措施
    • 这种方式提高了可靠性,但仍然允许发送方在一定时间内继续执行其他任务,从而提高了效率

    注意:半互锁这个术语在不同的上下文中可能有不同的含义,有时它指的是发送方在等待确认时可以执行其他操作,但不会发送新的消息

  • 全互锁

    • 在全互锁模式下,发送方在发送消息后会完全阻塞,直到接收到接收方的确认。只有当确认被接收到后,发送方才会继续发送后续的消息
    • 这种方式提供了最高的可靠性,因为它确保每个消息都被接收方正确处理。但这也可能导致发送方的资源在等待确认时被浪费,降低了系统的整体效率

适用的场景

  • 不互锁:适用于对实时性要求较高的场合,例如,在实时操作系统或视频流传输中,可以容忍一定程度的丢包
  • 半互锁:适用于对可靠性有一定要求,但同时也需要保持通信效率的场合,如大多数网络通信
  • 全互锁:适用于对数据可靠性要求极高的场合,如金融交易、文件传输等,即使牺牲一些效率也要确保数据的完整性
半同步通信

概述

结合了同步通信和异步通信的特点。传输的一部分是同步的,而另一部分则是异步的

以半同步通信数据输入为例(起始同步,中间等待异步)

  • T1:主模块发出地址信息
  • T2: 主模块发出命令
  • Tw:当WAIT为低电平时,也就是进入等待(也就是异步情况)
  • T3:从模块提供数据
  • T4:主模块撤销读命令,从模块撤销数据

image-20240127161109345

分离式通信

概述

它允许发送方和接收方在时间和空间上解耦。在这种通信模型中,消息的生产者和消费者不必直接相互知晓,也不必同时在线或实时交互。分离式通信常用于分布式系统、异步处理和消息队列场景中

传输周期(只有单方向的信息流)

  • 子周期1:主模块申请占用总线后,将命令、地址以及其他有关信息发送到系统总线上,使用完后即放弃总线的使用权
  • 子周期2:当从模块接收到请求信息,开始准备数据。当数据准备好之后,从模块申请占用总线后,将各种信息送至总线上,使用完后即放弃总线的使用权

分离式通信特点

  • 各模块有权申请占用总线
  • 采用同步方式通信,不等对方回答
  • 各模块准备数据时,不占用总线
  • 总线被占用时,无空闲

分离式通信的应用场景

  • 分布式系统:在分布式系统中,不同的服务可能运行在不同的机器上,分离式通信有助于这些服务之间的解耦合
  • 事件驱动架构:在事件驱动的系统中,事件生产者发布事件到中央消息总线,而事件消费者订阅它们感兴趣的事件
  • 后台处理:对于耗时的后台任务,如视频转码、数据分析等,可以通过分离式通信将任务放入队列中,由后台工作线程异步处理

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

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

相关文章

数据结构(顺序表)

文章目录 一、线性表1、线性表1.1、线性表的定义1.2、线性表的操作 2、顺序表2.1、顺序表的实现--静态分配2.2、顺序表的实现--动态分配2.2、顺序表的特点 3、顺序表的基本操作3.1、插入操作3.2、删除操作3.3、查找操作3.2、按位查找3.2、按值查找 一、线性表 1、线性表 1.1、…

keil使用教程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据 总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重…

【教程】MobaXterm软件Keygen快速生成注册码

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 1、去官网安装正版软件,比如23.6版本的:MobaXterm free Xserver and tabbed SSH client for Windows 2、打开这个网站,输入信息:MobaXterm Keygen 3、将自动下载的C…

LeetCode:1706. 球会落何处(Java 模拟)

目录 1706. 球会落何处 题目描述: 实现代码与解析: 原理思路: 1706. 球会落何处 题目描述: 用一个大小为 m x n 的二维网格 grid 表示一个箱子。你有 n 颗球。箱子的顶部和底部都是开着的。 箱子中的每个单元格都有一个对角线…

Linux系统——函数与数组

目录 一、函数 1.函数的定义 2.使用函数 3.定义函数的方法 4.函数举例 4.1判断操作系统 4.2判断ip地址 5.查看函数列表 6.删除函数 7.函数返回值——Return 8.函数的作用范围 9.函数传参 10.函数递归 10.1病毒 10.2阶乘 10.2.1 用for循环 10.2.2函数阶乘 10.…

一篇文章带你了解C++中隐含的this指针

文章目录 一、this指针的引出二、this指针的特性【面试题】 一、this指针的引出 我们先来定义一个日期类Date,下面这段代码执行的结果是什么呢? class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}v…

VMware虚拟机部署Linux Ubuntu系统

本文介绍基于VMware Workstation Pro虚拟机软件,配置Linux Ubuntu操作系统环境的方法。 首先,我们需要进行VMware Workstation Pro虚拟机软件的下载与安装。需要注意的是,VMware Workstation Pro软件是一个收费软件,而互联网中有很…

6.【SpringBoot3】登录优化-redis

1. SpringBoot 集成 redis 示例 在之前实现的登录接口中,用户登录成功后会生成一个令牌响应给浏览器,之后浏览器访问其他接口时,都要携带该令牌,接受拦截器的检验,如果令牌有效就放行,允许访问后续接口&am…

SpringBoot之分页查询的使用

背景 在业务中我们在前端总是需要展示数据,将后端得到的数据进行分页处理,通过pagehelper实现动态的分页查询,将查询页数和分页数通过前端发送到后端,后端使用pagehelper,底层是封装threadlocal得到页数和分页数并动态…

【开源】基于JAVA+Vue+SpringBoot的用户画像活动推荐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 兴趣标签模块2.3 活动档案模块2.4 活动报名模块2.5 活动留言模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 数据流程设计3.4 E-R图设计 四、系统展示五、核心代码5.1 查询兴趣标签5.2 查询活动推荐…

Procexp64.exe —— 强大的进程管理器

1,简介 Process Explorer 是一款增强型的任务管理器,你可以使用它方便地管理你的程序进程,能强行关闭任何程序。 除此之外,它还详尽地显示计算机信息:CPU、内存使用情况,DLL、句柄信息,很酷的…