计算机组成原理-3-系统总线

3. 系统总线

文章目录

  • 3. 系统总线
    • 3.1 总线的基本概念
    • 3.2 总线的分类
    • 3.3 总线特性及性能指标
    • 3.4 总线结构
    • 3.5 总线控制
      • 3.5.1 总线判优控制
      • 3.5.2 总线通信控制

  • 本笔记参考哈工大刘宏伟老师的MOOC《计算机组成原理(上)_哈尔滨工业大学》、《计算机组成原理(下)_哈尔滨工业大学》。
  • 或者是B站《计算机组成原理(哈工大刘宏伟)135讲(全)高清》,大家一起听比较热闹。
  • 中文教材:《计算机组成原理(第二版)-唐朔飞.pdf》、《学习指导与习题解答(第2版)-唐朔飞.pdf》
  • 本篇笔记对应课程第三章(下图加粗)。

3.1 总线的基本概念

  首先来讨论为什么需要总线?计算机基本的硬件包括CPU、内存条、固态硬盘、越来越多的io设备,这些器件之间显然需要相互通信才能配合工作。为了实现相互通信,可以采用“分散连接”的方法,把需要通信的器件单独连接起来,好处是通信互不干扰,但连接线的数量会随着设备的增多指数增长,并且新设备也难以加入;更好的方法就是设立一个公用的通信“总线”,谁需要通信谁就占用总线、其他人等待,实际上大量的io之间很少相互通信,所以这样设置更加合理,可扩展性非常好。

图3-1 串行、并行传输示意图

参考视频:【官方双语】并行和串行有啥区别?

  总线是连接各个部件的信号传输线,是各个部件共享的传输介质。总线上信息的传送方式有“串行”、“并行”两种。由于并行传输有信号间干扰、信号同步、成本高等问题,所以并行传输速率不一定比串行传输快,通常情况下传输距离较长时(外部IO)串行传输、传输距离较短时(主板内)并行传输。下面来看3种总线结构的举例:

图3-2 单总线结构、面向CPU的双总线结构、以存储器为中心的双总线结构
  1. 单总线结构:所有设备都连接到一条总线上,是最简单的总线结构。缺点是当“主存”和“io设备”进行数据输入/输出时,“CPU”无法和“主存”通信导致执行程序暂停,会大大减低CPU的运行效率。另外,如果设备很多,总线就会很长,主存和远端设备进行数据传输的时候时间延迟也会很长。当然,也存在“总线争用”问题。
  2. 面向CPU的双总线结构:“主存”只和“CPU”连接,好处是“CPU”运行程序时的效率大大提升;缺点是“主存”无法和“io设备”直接通信,需要进行数据输入/输出时,“CPU”运行程序还是会被打断。
  3. 以存储器为中心的双总线结构:如上图所示,在“单总线”的基础上,添加一个“CPU”和“主存”之间的存储总线,也就是专门开辟了“CPU”和“主存”的总线,兼顾了程序运行/数据传输的功能。但实际上,目前的内存条还是会分时复用这两条总线,相信未来硬件技术会突破这一问题。

3.2 总线的分类

图3-3 总线的分类

根据总线的位置进行分类:

  1. 片内总线:芯片内部的总线。
  2. 系统总线:计算机各部件之间的信息传输线。再根据传输的信号不同,分为:
  • 数据总线:双向,与机器字长、存储字长有关。通常,数据总线宽度≤机器字长=存储字长。
  • 地址总线:单向,由CPU或主设备发出,与存储地址、I/O地址有关。
  • 控制总线:输出一般是系统的各个部件传输控制信号、自己的状态信号,比如存储器读、存储器写、总线允许、中断确认等。输入一般是外部设备送给CPU,如中断请求、总线请求等。
  1. 通信总线:用于计算机系统之间计算机系统与其他系统(如控制仪表、移动通信等)之间的通信。

3.3 总线特性及性能指标

图3-4 总线的物理实现

  上图给出了总线的物理实现。可以看到总线就是刻印在主板上,然后在主板的某些位置预留出接口,就可以将不同的器件插在主板上。为了实现插板和总线的有效连接,就需要规定一些总线特性

  1. 机械特性:尺寸、形状、管脚数及排列顺序等。
  2. 电气特性:信号传输方向、有效的电平范围。比如数据线是双向的,地址线是单向的。
  3. 功能特性:每根传输线要实现的功能,比如地址信号、数据信号、控制信号、状态信号。
  4. 时间特性:信号的时序关系,保证电路正常工作。

而在使用总线时,我们最关心的其实是总线的性能指标

  1. 总线宽度:数据线的根数。
  2. 标准传输率:每秒传输的最大字节数(MBps)。
  3. 时钟同步/异步:同步、不同步。注意“不同步”≠“异步”。
  4. 总线复用:地址线与数据线复用,减少芯片的管脚数,进一步减小芯片的体积。比如8086就是20根地址线,数据线复用其中的16根,使用时先传输地址、再传输数据。
  5. 信号线数:地址线、数据线和控制线的总和。
  6. 总线控制方式:突发、自动、仲裁、逻辑、计数。
  7. 其他指标:负载能力(挂载多少io设备)。

  现代计算机比较复杂,计算机各部件的生产、制造、设计越来越专业化,于是这时就要有一个“约定”,使得不同厂家生产的不同器件可以组装在一起,形成一个协调运行的计算机硬件系统。其中对于总线的约定,也就是“总线标准”。“总线标准”也在从简单的、低速的总线,逐渐向高速的、可扩展能力强的总线不断的发展,如下表:

表3-1 不同的总线标准
  • ISA(Industry Standard Architecture,工业标准体系结构):是为PC/AT电脑而制定的总线标准,现已被淘汰。
  • EISA(Extended ISA):是对ISA总线的扩展,兼容ISA总线,现已被淘汰。
  • VESA(Video Electronics Standards Association,视频电子标准协会):由140多家成员公司组成的非盈利国际组织,致力于制订并推广个人计算机和小型工作站视频设备显示相关标准。
  • PCI(Peripheral Component Interconnect,外设部件互连标准):PCI是独立于处理器的结构,形成了一种特殊的中间缓冲器式的设计方式,将CPU和外围设备分隔开,使得外部设备的时钟频率不会影响处理器性能。是个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。现在已经发展为PCIE总线。
  • AGP(Accelerated Graphics Port,加速图像接口):由PCI发展而来。是英特尔推出的一种3D标准图像接口,是点对点的局部总线,主要是为了连接控制芯片和显卡,它能够提供四倍于PCI的效率。
  • RS-232(Recommand Standard-232):是常用的串行通信接口标准之一。
  • USB(Universal Serial Bus,通用串行总线):2024年甚至已经演进出了 USB 80Gbps 标准。

参考视频:USB接口全科普2024版:命名终于变简单了,但厂商不愿意用,雷电5我成替身了?

3.4 总线结构

下面在“3.1-总线的基本概念”基础上,继续分析一些更复杂的多总线结构

图3-5 双总线结构、三总线结构1、三总线结构2、四总线结构
  • 单总线结构:见图3-2。所有设备连接到一条总线上。此时总线会成为系统的瓶颈。
  • 双总线结构:除了前面讲的“面向CPU的双总线”、“以存储器为中心的双总线”,还可以如上图分成主存总线、I/O总线,然后通过“通道”实现 IO 和 CPU/主存 之间的交互。这个“通道”是一个结构简单的专用处理器,一般来说有自己的控制器、指令系统,并且通常由操作系统来编写“通道程序”,而不是人工。
  • 三总线结构1:在“面向CPU的双总线结构”的基础上,增加一条 主存和部分高速IO 直接相连的“DMA总线(Direct Memory Access,直接存储器访问)”。
  • 三总线结构2:随着技术的发展,CPU性能逐渐超过主存性能,于是需要额外增加一个小容量高速cache(如CPU片内缓存)辅助CPU运算,使用“局部总线”与CPU连接。“系统总线”则主要和“扩展总线”相连,外部设备的扩展则全部交给“扩展总线”,极大的增强了外部设备的扩展性,但是会限制某些高速外设的性能
  • 四总线结构:解决了上述“三总线结构2”的问题。也就是将外部设备按照传输速率分开,高速的外设直接连接到“高速总线”上,低速外设还是全部交给“扩展总线”。

下面来看看实际设备中的总线结构

图3-6 传统微型机总线结构、VL-BUS局部总线结构、PCI总线结构、多层PCI总线结构
  • 传统微型机总线结构:双总线,将“系统总线”和“IO总线”分离,非常简单。CPU和存储器通过“系统总线”连接,速度较快;剩下所有外设全部连接到“IO总线”上;“系统总线”通过“标准总线控制器”和“IO总线”相连,实现CPU/主存对外设的控制。
  • VL-BUS局部总线结构:将“高速外设总线”和“低速外设总线”进行分离。
  • PCI总线结构:和上一个结构类似。只不过“高速外设总线”使用PCI总线。
  • 多层PCI总线结构:若总线上挂载设备过多,PCI总线驱动能力不足,于是使用“PCI桥”实现PCI总线的扩展。

3.5 总线控制

本章的重点和难点,主要考虑两个问题:

  1. 总线判优控制:多个设备可能同时发出“占用总线”的请求,这时总线就需要判断哪个设备具有使用的优先权。
  2. 总线通信控制:当两设备占用总线后,如何使用总线进行通信,保证通信过程的正确性。

3.5.1 总线判优控制

图3-7 总线判优控制方法

  首先要明确的是,总线上的主设备(模块)对总线有控制权,从设备(模块)则是响应从主设备发来的总线命令。当然,一条总线上可以有多个主设备。上图给出“总线判优控制方法”:

  • 集中式:将“判优逻辑”放在一个部件上,比如CPU。下面介绍集中式的三种判优逻辑。
  • 分布式:将“判优逻辑”分布到各个设备上。
图3-8 三种集中式的判优逻辑
  • 链式查询:距离优先,优点是结构最简单。所有部件共用BR请求总线,主设备收到请求后,逐个遍历从设备,直到找到第一个提出占用总线的从设备。优先权和距离有关,缺点是距离远的从设备可能一直不会被响应,并且对电路故障非常敏感、速度慢。常用于微型计算机或简单的嵌入式设备中。
  • 计数器定时查询:和链式查询类似,只是引入计数器,可以软件设置遍历的初值。优点是优先级设置灵活,缺点是“设备地址”的位宽和设备总数有关、速度慢
  • 独立请求查询:每个从设备都有两个线连接到主设备,主设备内部设置一个“排队器”进行判优。优点是速度快、缺点是要求主设备有非常多的接口。

个人评论:感觉“独立请求查询”是最笨的,也就适合外设少的情况。

3.5.2 总线通信控制

  “总线通信控制”的目的是解决通信双方协调配合问题。而“总线传输周期”是指主设备和从设备之间,完成一次完整的、可靠的通信所需要的时间,主要分为以下四个阶段:

  • 申请分配阶段:主模块申请和从设备通信,总线仲裁决定。
  • 寻址阶段:主模块向从模块给出地址和命令。
  • 传数阶段:主模块和从模块交换数据。
  • 结束阶段:主模块、从模块撤消有关信息。

那具体到总线的通信方式,主要有以下四种:

  • 同步通信:由统一时标控制数据传送,这个“时标”也就是时钟信号,严格遵循时序。一般要求总线长度较短、各设备读写数据速率相近。
  • 异步通信:采用应答方式,没有公共时钟标准。下面的“半互锁”、“全互锁”若没有收到相应的撤销标志,可以要求对方重发,于是便实现可靠通信。
  • “不互锁”:从设备接收到主设备发送的请求信号后,从设备应答;后面主、从设备自动撤销。
  • “半互锁”:前面都一样,只是主设备等待从设备应答后才撤销、从设备自动撤销。
  • “全互锁”:前面都一样,只是主设备等待从设备应答后才撤销、从设备等待主设备撤销后才撤销。
  • 半同步通信:同步、异步结合,主要为了解决不同速度设备之间的通信。“同步”体现在发送方用系统时钟前沿发信号、接收方用系统时钟后沿判断、识别。“异步”则体现在允许不同速度的模块和谐工作,原理是增加了一条从设备给出的“等待”响应信号WAIT(低电平有效)。

T 1 T_1 T1:主模块发地址。
T 2 T_2 T2:主模块发命令。
T w T_w Tw:当WAIT为低电平时,主模块等待一个 T T T
T w T_w Tw:当WAIT为低电平时,主模块等待一个 T T T

T 3 T_3 T3:从模块将WAIT拉高,同时提供数据。
T 4 T_4 T4:从模块撤销数据,主模块撤销命令。

上述三种通信方式的共同点就是,一个总线传输周期(以输入数据为例)可以分为以下三个阶段:

  1. 主模块发地址、命令【占用总线】。
  2. 从模块准备数据【未释放总线,但总线空闲】。
  3. 从模块向主模块发数据【占用总线】。

可以看到,在第二个阶段,虽然没有数据在总线上传输,但总线未被释放。为了提升总线的利用效率,可以在上述第二个阶段直接释放总线,于是请求数据、接收数据的过程可能被其他设备的通信分隔开,也就是下面的“分离式通信”:

  • 分离式通信:充分提高了总线的有效占用。一个总线传输周期:
  • 阶段1:主模块申请占用总线,使用完后即放弃总线的使用权
  • 阶段2:从模块重新申请占用总线,将信息送至总线上,发送给需要数据的模块。
  • 分离式通信的特点:
  1. 各模块有权申请占用总线。
  2. 采用同步方式通信,不等对方回答。
  3. 各模块准备数据时,不占用总线。比如机械磁盘寻址平均需要十几ms,那么分离式通信就节省了这十几ms的总线占用。
  4. 总线被占用时,无空闲。

参考视频:【CSAPP-深入理解计算机系统】6-2. 机械磁盘——4:12s介绍机械磁盘对扇区的访问时间

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

spring suite搭建springboot操作

一、前言 有时候久了没开新项目了,重新开发一个新项目,搭建springboot的过程都有点淡忘了,所有温故知新。 二、搭建步骤 从0开始搭建springboot 1.创建work空间。步骤FileNewJava Working Set。 2.选择Java Working Set。 3.自…

微信小程序接口请求出错:request:fail url not in domain list:xxxxx

一、微信小程序后台和开发者工具配的不一样导致了这个错误 先说结论: 开发者工具配置了https://www.xxx.cn/prod-api/ 微信后台配置了 https://www.xxx.cn 一、最开始 开发者工具配置了https://www.xxx.cn:7500 微信后台配置了 https://www.xxx.cn 报错:reques…

OPTEE v3.20.0 FVP环境搭建

目录 一、前提条件 二、下载fvp代码 三、下载工具链 四、下载Foundation_Platform FVP平台 五、编译及运行 一、前提条件 1、安装如下的依赖工具 sudo apt-get install android-tools-adb android-tools-fastboot autoconf \ automake bc bison build-essential ccache c…

2024精灵传信系统支持电脑PC端+小程序双端源码

2024精灵传信系统支持电脑PC端小程序双端源码 精灵传信支持在线提交发送短信,查看回复短信,在线购买额度,自定义对接易支付,设置违禁词,支持网站小程序双端。 搭建环境: PHP > 73 MySQL>5.6 Nginx…

当两会热词碰上“人工智能+”,你知道哪些企业算是行业弄潮儿吗?

最近正值全国“两会”的召开,一大批新词热词涌现,聚焦了各行各业的发展,也一定程度上代表了未来的主要发展方向。“未来产业”、“人工智能”、“全国一体化算力体系”等热词的出圈充分表明了信息技术行业是一大发展重点,尤其是人…

护航容器安全:私有Registry在镜像审核中的关键角色与实战策略

在容器化技术日益普及的今天,Docker镜像的质量与安全性成为了构建稳定、可靠应用的关键要素。私有Registry作为镜像的集中存储和分发中心,不仅可以提供镜像的统一管理,还能通过集成镜像审核机制,确保进入生产环境的镜像符合安全与…

如何解决MySQL死锁(看懂MySQL锁日志)

有时候系统在生产运行着,会突然爆出 [40001][1213] Deadlock found when trying to get lock; try restarting transaction 这个时候每个人都会很紧张,因为死锁会影响DB性能,严重时甚至拖垮整个系统。在实际的环境中,很多服务会共…

【电路笔记】-达林顿晶体管

达林顿晶体管 文章目录 达林顿晶体管1、概述2、基本达林顿晶体管配置3、示例4、达林顿晶体管应用5、Sziklai 晶体管对6、ULN2003A 达林顿晶体管阵列7、总结两个双极晶体管的达林顿晶体管配置可针对给定基极电流提供更大的电流切换。 1、概述 达林顿晶体管以其发明者 Sidney Da…

文件包含漏洞之包含NGINX日志文件(常用)

条件:知道目标服务器的日志文件存贮路径,并且存在文件包含漏洞 首先对目标服务器发送一次含有木马的请求,目的是让目标服务器日志中生成含有木马的日志记录。因为发送过程中,使用了url编码,我们抓包进行更改成能够执行…

【Python爬虫】详解BeautifulSoup()及其方法

文章目录 🍔准备工作🌹BeautifulSoup()⭐代码实现✨打印标签里面的内容✨快速拿到一个标签里的属性✨打印整个文档🎆获取特定标签的特定内容 🌹查找标签🎈在文档查找标签 find_all🎈正则表达式搜索 &#x…

echarts geo地图加投影两种方法

方法1,geo中加多个地图图形,叠加。缩放时 可能会不一致,需要捕捉georoam事件,使下层的geo随着上层的geo一起缩放拖曳 geo: [{zlevel: 3,//geo显示级别,默认是0 【最顶层图形】map: BJ,//地图名roam: true,scaleLimit: …

虚拟机VMware上 centos7 的网络配置

第一步:权限的切换 由普通用户切换到管理者/超级用户 用户名为:root 密码为:自己安装 linux 时第一次设置的密码 su -root管理者/超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。当看到你的命令提示符为“$”时&…

VScode 设置个性化背景(保姆级教程)

VS Code设置个性化背景的作用主要体现在以下几个方面: 提升编程体验:个性化背景能够让编程环境更符合个人的审美和习惯,使得长时间在VS Code中进行代码编辑时,能够保持愉悦的心情,从而提高编程效率。减少视觉疲劳&…

微隔离是什么,有什么作用

传统的网络安全架构通常是基于较大的安全区域(如子网或虚拟局域网),在这些区域内的设备可以相互通信。然而,这也意味着一旦内部的设备被威胁或遭到入侵,攻击者可能会在整个安全区域内进行横向移动和渗透。 微隔离通过…

GNSS载波相位平滑伪距基本原理

相位平滑技术:削弱伪距欢测值的随机误差影响 差分技术:削弱欢测方程中的系统误差影响 相位平滑伪距原理: GPS接收机除了提供伪距测量外,可同时提供载波相位测量,由于载波相位测量的精度比码相位的测量精度高2个数量…

蓝桥杯嵌入式第十届省赛 真题+代码

led.c文件 #include "led.h"void Led(uint16_t addr,uint16_t enable) {static uint16_t temp 0x0000;static uint16_t temp_old 0xffff;HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, GPIO_PIN_SET);if(enable)temp | 0x0100 << addr;elsetemp & ~(0x0100 &…

在sql server 2016 always on集群里新增一个数据库节点

本篇博客有对应的word版本&#xff0c;有需要的可以点击这里下载。 一 环境介绍 二 操作步骤 2.1 在新节点上安装sql server软件 略 2.2 在新节点上开启‘故障转移群集功能’ 打开‘服务管理器’&#xff1a; 点击‘添加角色和功能’&#xff1a; 勾选’DNS服务器’&#…

【Godot4.2】2D导航01 - AStar2D及其使用方法

概述 对于2D平台跳跃或飞机大战&#xff0c;以及一些直接用键盘方向键操控玩家的游戏&#xff0c;是根本用不到寻路的&#xff0c;因为只需要检测碰撞就可以了。 但是对于像RTS或战棋这样需要操控玩家到地图指定位置的移动方式&#xff0c;就绝对绕不开寻路了。 导航、碰撞与…

企业培训考试系统数字化解决方案优势有哪些?

企业员工内部培训考试系统&#xff0c;用数字技术和互联网平台&#xff0c;为企业提供高效、便捷、个性化的员工培训服务的解决方案。 企业员工培训考试数字化解决方案不仅能够提供更加高效、灵活和互动的学习体验&#xff0c;还能够帮助企业实现长期的人才发展战略&#xff0…

好委屈,东方甄选为何总是被供应商骗?

东方甄选最近很委屈。 315晚会过后&#xff0c;知名打假人王海爆料&#xff0c;称315晚会曝光的槽头肉扣肉在东方甄选和小杨哥的直播间里销售过。 东方甄选赶忙去问了问供应商情况。 供应商的回答让他感到暖心&#xff0c;表示虽然315晚会曝光了我们公司违规使用糟头肉&…