计算机组成原理笔记-第3章 系统总线

第三章 系统总线

笔记PDF版本已上传至Github个人仓库:CourseNotes,欢迎fork和star,拥抱开源,一起完善。

该笔记是最初是没打算发网上的,所以很多地方都为了自我阅读方便,我理解了的地方就少有解释;我不理解的地方理解后加上的解释便很多。

因此,若读者在阅读过程中遇到错误或理解问题,请评论区留言或者私信,我们一起讨论:看到会及时回复。

3.1 总线的基本概念

  • 以存储器为中心的双总线结构

在这里插入图片描述

3.2 总线的分类

  • 片内总线:芯片内部各部件之间的的总线,如CPU内部连接各寄存器及运算器之间的总线。
  • 系统总线:计算机各部件之间 的信息传输线
    • 数据总线双向 与机器字长、存储字长有关,但不一定等于字长,一个字可以分多次传输
    • 地址总线单向 与存储地址、 I/O地址有关,和 MAR 位数相等
    • 控制总线双向,存储器读、存储器写,总线允许、中断确认,中断请求、总线请求。
  • 通信总线:用于 计算机系统之间 或 计算机系统与其他系统(如控制仪表、移动通信等)
  • 按照传输方式分类
    • 并行通信总线:同一时刻,可以传输多个bit位的信号,有多少个信号位就需要多少根信号线。并行通讯的效率高,但是对信号线路要求也很高,很容易产生干扰,反而传输速度不能很快。
    • 串行通信总线:同一时刻,只能传输一个bit位的信号,只需要一根信号线。串行通讯效率较低,但是对信号线路要求低,抗干扰能力强,传输速度可以很快。

3.3 总线特性及性能指标

  • 总线特性
    • 机械特性:尺寸、形状、管脚数及排列顺序
    • 电气特性:传输方向和有效的 电平 范围
    • 功能特性 :每根传输线的功能,如地址线,数据线,控制线,反馈线
    • 时间特性:信号的时序 关系
  • 总线的性能指标
    • 总线宽度:数据线的根数
    • 标准传输率 :每秒传输的最大字节数(MBps)
    • 时钟同步/异步: 同步、不同步
    • 总线复用:地址线 与 数据线 复用,8086的20根地址线和16根数据线复用,减少芯片的管脚数量。
    • 信号线数地址线、数据线和控制线的总和
    • 总线控制方式 :突发、自动、仲裁、逻辑、计数

3.4 总线结构

  • 单总线结构

在这里插入图片描述

  • 双总线结构

    通道既是硬件数据通路,又是具有特殊功能的处理器,由通道对I/O统一管理

    通道的作用:①存储;②串并转换;③计算

  • 三总线结构
    • 主存总线和DMA总线不能同时工作,要进行判优工作。
    • 当主存总线和DMA总线出现竞争时,我们把优先权交给DMA总线

在这里插入图片描述

  • 三总线结构的又一形式
    • 在此结构中,主机由缓存主存CPU组成,而不再是2部分组成。

在这里插入图片描述

  • 四总线结构

在这里插入图片描述

  • 传统微型机总线结构

在这里插入图片描述

  • VL-BUS局部总线结构

在这里插入图片描述

  • PCI 总线结构

  • 多层 PCI 总线结构

3.5 总线控制

3.5.1 总线判优控制
  • 主设备( 模块): 对总线有 控制权

  • 从设备( 模块) :响应 从主设备发来的总线命令

  • 总线判优控制两种方式:分布式(针对多机系统)集中式

    下面给出集中式的三种优先权仲裁方式,注意其中(BS总线忙、BR总线请求、BG总线同意)

    • 链式查询

      • 缺点:①请求不公平,越靠近总线控制部件,优先级越高;②不可靠,一旦BG链断裂,其后接口均无法再获得BG信号。
    • 计数器定时查询

      在这里插入图片描述

      • 缺陷:计数器的设计要重点考虑,是总线同意后重置位还是继续计数
    • 独立请求方式

      在这里插入图片描述

      • 缺陷:线路冗余
3.5.2 总线通信控制
  • 总线传输周期

    • 申请分配阶段:主模块申请,总线仲裁决定
    • 寻址阶段:主模块向从模块给出 地址 和 命令
    • 传输阶段:主模块和从模块 交换数据
    • 结束阶段:主模块 撤消有关信息
  • 总线通信:为解决通信双方 协调配合 问题

    • 同步通信

      由 统一时标 控制数据传送 ,一般在总线长度比较短,各个部件速度比较一致的时候使用,存在短板效应。

      地址线为高电平有效,读命令为低电平有效,数据线为高电平有线;三线非方波是因为操作不是一瞬间的,而是有缓冲时间的。

      地址线传输一直有信号是因为数据具有指向性,一旦地址失效,则传输无法寻址,因此必须长期有效才行。

    在这里插入图片描述

    • 异步通信

      异步通信克服了同步通信的缺点,允许各模块速度的不一致性,它没有公共的时钟标准,,不要求所有部件严格的统一操作时间,而是采用应答方式。

      异步通信的应答方式又可分为不互锁、半互锁和全互锁三种类型

      • 不互锁:通信双方非必须收到对方的响应消息才做出反应,如,主模块发送请求信号后,过了一段时间,自动确认从模块已收到,此时主动撤销请求信号,而不是等到从模块的回答才撤销;从模块亦然。
      • 半互锁:此时主模块对从模块持有锁,须等到从模块的回答才撤销请求信号;而从模块依然无锁,回答后过一段时间自动撤销回答信号。
      • 全互锁:双方均持有锁。

      以上三种应答方式,我们可用下图进行表述:

      在这里插入图片描述

      异步串行通信的数据传送速率用波特率来衡量。波特率是指单位时间内传送二进制数据的位数,单位用bps(位/秒)表示,记作波特,特别注意的是严格来说,波特率与比特率不同,仅仅在一个一个波特位用一个比特位表示时,波特率和比特率相等。

    • 半同步通信

      同步、异步 结合,发送方 用系统 时钟前沿 发信号,接收方 用系统 时钟后沿 判断、识别。增加一条 “等待”响应信号。当从设备数据没有准备好时发出 WAIT ‾ \overline {\text{WAIT}} WAIT信号,数据准备好了再开始开始同步传输数据。

      在这里插入图片描述

      上面三种数据通信的共同点

      • 主模块发地址、命令 需占用总线
      • 从模块准备数据 不占用总线
      • 从模块向主模块发数据 占用总线
    • 分离式通信

      主模块申请占用总线发地址 、命令,使用完后放弃总线的使用权;从模块准备数据完毕后,从模块申请占用总线(身份转换为主设备),向主模块发数据。从模块准备数据是不占用总线的,这时候其他设备可以请求总线,充分挖掘系统总线每个瞬间的潜力。

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

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

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

相关文章

Android自定义View之不得不知道的文件attrs

其中demo_style如下:一般都是放的.9图片,为了方便就放个颜色了 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190820183209784.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLm NzZG4ubmV0L3FxXzQyNzYxMz…

IDS使用规则

ids入侵检测系统 Snort(基于特征的入侵检测系统) 软硬件配套 snort官网链接:Snort - Network Intrusion Detection & Prevention System(https://www.snort.org) 环境:centos7,拖动需要开共享粘贴板和开双向 一、daq 1、预装dap所需程序 yum inst…

Unity 限时免费资源 - FANTASTIC万圣节资源包

Unity 资源 - FANTASTIC - Halloween Pack 万圣节包 前言资源包内容领取兑换码 前言 亲爱的 Unity 游戏开发者们,今天要给大家介绍一款限时免费的优质资源包 - FANTASTIC - Halloween Pack 万圣节资源包。 这个资源包为您的游戏创作带来了丰富的万圣节主题元素。其…

《STM32 HAL库》CAN通信系列函数详尽解析——HAL_CAN_Init()

食用指南:本文主要内容为梳理CAN初始化函数主要运行逻辑及重点功能实现代码的详尽解析。函数源码在文末,建议在阅读源码之后观看。 CAN相关寄存器图: 主要逻辑分析: 下面分点梳理函数的主要逻辑(注意逻辑序号&#xf…

Python提取PDF文本和图片,以及提前PDF页面中指定矩形区域的文本

前言 从PDF中提取内容能帮助我们获取文件中的信息,以便进行进一步的分析和处理。此外,在遇到类似项目时,提取出来的文本或图片也能再次利用。要在Python中通过代码提取PDF文件中的文本和图片,可以使用 Spire.PDF for Python 这个…

为什么五笔没人用了?

五笔输入法现在较少人使用的原因主要有以下几点: 学习门槛高:五笔输入法的学习难度相对较大,需要掌握所有的字根,全面了解编码的规律,并学习每个字的拆字原则,这要求用户有相当高的耐心和时间去学习和练习…

openh264 帧级码率控制原理:RcCalculatePictureQp 函数

RcCalculatePictureQp 函数 函数功能 在码控中,当eSliceType为P_SLICE时 计算 P 帧的帧级量化参数QP 值。 函数原理过程 初始化各类变量;计算帧复杂度iFrameComplexity,如果iUsageType是SCREEN_CONTENT_REAL_TIME,重复赋值帧复…

MySQL【触发器、存储过程、函数、范式】

day53 MySQL 触发器 创建触发器:(before : 前置触发器、after :后置触发器) 语法: delimiter xx 指定分隔符xxcreate trigger 触发器名 [before | after] 触发事件 on 表名 for each row 执行语句begin…

maven:中央仓库验证方式改变:401 Content access is protected by token

前几天向maven中央仓库发布版本,执行上传命令mvn release:perform时报错了: [ERROR] Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.13:deploy (injected-nexus-deploy) on project xxxxx: Failed to deploy artifacts: …

智慧互联,Vatee万腾平台引领新潮流

在数字化、智能化的新时代,智慧互联正成为推动社会进步的重要力量。在这一潮流中,Vatee万腾平台凭借其卓越的技术实力和创新理念,正引领着新潮流,将智慧互联的理念融入生活的方方面面。 Vatee万腾平台是一个以大数据、云计算、人工…

C#利用SignalR实现通信事例Demo

1.服务端安装SignalR的Nuget包 dotnet add package Microsoft.AspNet.SignalR --version 2.4.3 2.接下来,创建一个ChatHub类,它是SignalR通信的核心: using Microsoft.AspNetCore.SignalR;public class ChatHub : Hub {public static Dict…

聊聊 C# dynamic 类型,并分享一个将 dynamic 类型变量转为其它类型的技巧和实例

前言 dynamic 是一种有别于传统变量类型的动态类型声明,刚开始接触可能在理解上会有些困难,可以简单地把它理解为一个盲盒,你可以任意猜测盒子有什么东西,并认为这些东西真正存在而进行处理,等到真正打开时&#xff0…

文章自动生成器,在线AI写作工具

随着人工智能AI技术的发展,AI技术被应用到越来越多的场景。对于需要创作内容的同学来说,AI写作-文章内容自动生成器是一个非常好的辅助工具。AI写作工具可以提升我们的创作效率,快速的生成文章,然后在根据需求进行调整修改即可。下…

语法制导的翻译和属性文法

属性的分类 1.综合属性 重写规则(产生式)左部符号的属性是综合属性。一个结点相应文法符号的属性值通过语法分析树中它的子节点的属性之值计算(自底向上) 2.继承属性 出现在重写规则右部的符号的属性。一个结点相应文法符号的属性…

概念描述——TCP/IP模型中的两个重要分界线

TCP/IP模型中的两个重要分界线 协议的层次概念包含了两个也许不太明显的分界线,一个是协议地址分界线,区分出高层与低层寻址操作;另一个是操作系统分界线,它把系统与应用程序区分开来。 高层协议地址界限 当我们看到TCP/P软件的…

没等来百度惊艳的All in AI,却等来了国产之光的盘古大模型 5.0

6月21日,华为开发者大会(HDC 2024)在广东东莞正式开幕。盘古大模型5.0的更新,也是此次HDC2024的另一项重头戏。在过去的一年中,盘古大模型正在疯狂向各行各业渗透。 此次,华为方面展示了他们在具身智能、医…

【面向对象】复习(二)

内存对齐 class A{ static int a; } int main(){ A obj; cout<<sizeof(obj); } 在你的代码中&#xff0c;class A 包含一个静态成员变量 a。静态成员变量不属于类的任何特定实例&#xff0c;而是属于整个类。因此&#xff0c;在计算类的实例大小时&#xff0c;静态…

C语言入门系列:指针入门(超详细)

文章目录 一&#xff0c;什么是指针1&#xff0c;内存2&#xff0c;指针是什么&#xff1f; 二&#xff0c;指针的声明1&#xff0c;声明指针类型变量2&#xff0c;二级指针 三&#xff0c;指针的计算1&#xff0c;两个指针运算符1.1 *运算符1.2 & 运算符1.3 &运算符与…

状态压缩DP——AcWing 291. 蒙德里安的梦想

状态压缩DP 定义 状态压缩DP是一种利用二进制数来表示状态的动态规划算法。它通过将状态压缩成一个整数&#xff0c;从而减少状态数量&#xff0c;提高算法效率。 运用情况 状态压缩DP通常用于解决具有状态转移和最优解性质的问题&#xff0c;例如组合优化、图论、游戏等问…

python-邮票组合问题

[题目描述] 某人有四张3分的邮票和三张5分的邮票&#xff0c;用这些邮票中的一张或若干张可以得到多少种不同的邮资&#xff1f;输入格式&#xff1a; 此题无输入。输出格式&#xff1a; 输出可以得到不同邮资的数量。 样例输入 无样例输出 19数据范围&#xff1a; 对于100%的…