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

news2024/11/28 10:39:40

第三章 系统总线

笔记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信号,数据准备好了再开始开始同步传输数据。

      在这里插入图片描述

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RockChip Android12 System之MultipleUsers

一:概述 System中的MultipleUsers不同于其他Preference采用system_dashboard_fragment.xml文件进行加载,而是采用自身独立的xml文件user_settings.xml加载。 二:Multiple Users 1、Activity packages/apps/Settings/AndroidManifest.xml <activityandroid:name="S…

Android集成高德天气API 天气预报

1.新建工程项目WeatherForecast。 2.在AndroidManifest文件中添加网络访问相关权限。 <uses-permission android:name"android.permission.INTERNET"/> 3.设计页面布局activity_main.xml&#xff0c;界面效果如图所示。 4.注册高德开放平台&#xff0c;查阅…

代码签名证书有什么作用?有哪些申请步骤?

代码签名证书是一种数字证书&#xff0c;它为软件开发者提供一种验证软件代码真实性和完整性的方法。通过使用代码签名证书&#xff0c;开发者可以确保他们的软件在发布后没有被篡改&#xff0c;并且用户可以信任软件的来源。 什么是代码签名证书&#xff1f; 代码签名证书是提…

小程序 UI 设计缔造独特魅力

小程序 UI 设计缔造独特魅力

【面试干货】抽象类的意义与应用

【面试干货】抽象类的意义与应用 1、为其他子类提供一个公共的类型2、封装子类中重复定义的内容3、定义抽象方法&#xff0c;子类虽然有不同的实现&#xff0c;但是定义时一致的4、示例代码 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在…

jrebel安装使用教程(2022.4.1版本)

本方法适用于jrebel2022.4.1版本&#xff0c;之后的版本不再适用。 1.下载插件 下载地址 2.安装插件 可以通过idea内部安装 也可以将插件解压进idea的安装目录下的plugins。 3.激活 Team URL中填入 https://jrebel.qekang.com/{guid}这里提供两个guid生成地址&#xf…

【AI工作流-AI-Agent】FastGPT新建应用并用openai接口调用

FastGPT 简介 FastGPT是一个AI工作流搭建平台&#xff0c;它是一个开源框架&#xff0c;支持聊天&#xff0c;RAG&#xff08;知识库&#xff09;&#xff0c;工作流编排。 缺点是不支持AI搜索&#xff0c;模型支持需要依赖于第三方部署框架例如oneapi&#xff0c;ollama等。…

aardio - 【库】lock 跨进程读写锁

import win.ui; /*DSG{{*/ var winform win.form(text"aardio form";right272;bottom203;topmost1) winform.add( button{cls"button";text"无锁演示";left27;top132;right120;bottom184;z2}; button2{cls"button";text"有锁演示…

CausalMMM:基于因果结构学习的营销组合建模

1. 摘要 在线广告中&#xff0c;营销组合建模&#xff08;Marketing Mix Modeling&#xff0c;MMM&#xff09; 被用于预测广告商家的总商品交易量&#xff08;GMV&#xff09;&#xff0c;并帮助决策者调整各种广告渠道的预算分配。传统的基于回归技术的MMM方法在复杂营销场景…

修复 Android 手机卡在启动屏幕上的 7 种方法

Android 手机卡在启动屏幕上的情况并不常见。通常&#xff0c;问题出现在应用新更新或安装未知来源的应用程序后。幸运的是&#xff0c;您可以让您的 Android 手机跳过启动屏幕&#xff0c;而无需前往最近的服务中心。 当您的 Android 手机在启动屏幕上陷入无限循环时&#xf…

MSPM0G3507——PWM

在sysconfig中&#xff0c;左侧可以选择MCU的外设&#xff0c;我们找到并点击TIMER-PWM选项卡&#xff0c;在TIMER-PWM中点击ADD&#xff0c;就可以添加定时器下的PWM外设。 这里设置通道0为100Hz的频率&#xff0c;0%占空比的PWM&#xff0c;周期计数值为1000&#xff0c;比较…

有哪些骨传导耳机是比较推荐入手的?精选五款热门骨传导耳机推荐!

耳机基本是每人人手一台&#xff0c;不管是在地铁上还是在公交上&#xff0c;都可以看到很多人戴着耳机度过空余的时光&#xff0c;甚至现在人们在耳机的选择方面更加偏向于骨传导耳机&#xff0c;开放耳道的奇特设计在户外佩戴的时候可以更好的感知到周围的环境音&#xff0c;…

面试突击:深入理解 Java 中的异常

本文已收录于&#xff1a;https://github.com/danmuking/all-in-one&#xff08;持续更新&#xff09; 前言 哈喽&#xff0c;大家好&#xff0c;我是 DanMu。今天想和大家聊聊 Java 中的异常。异常处理是一种重要的概念&#xff0c;因为程序总是会出现各种意料之外的问题&…

分享计算机msvcp100.dll,丢失或找不到的7个解决方法

msvcp100.dll是动态链接库文件对于执行使用 Microsoft Visual C 2010 编译器编译的应用程序至关重要。它包含了 C 标准库的实现&#xff0c;提供了应用程序运行时所需的核心功能&#xff0c;如输入/输出操作、字符串处理、数学运算和异常处理等。若系统中缺失或损坏此文件&…

win10环境配置ollama-ui运行llama3模型

先说我的笔记本电脑配置intel-i7-11390h,4核8处理器&#xff0c;内存16G。显卡NVIDA GeFroce MX450&#xff0c;2G显存&#xff0c;这是一台5000元左右的电脑。 我用它跑roop、sd1.5、ffusion2、ChatTTs还有pythonpytorch的自定义模型&#xff0c;现在用来跑llama3。当然&…

挑战Midjourney,融合近百个SD大模型的通用模型AlbedoBase XL

在SDXL的通用模型中&#xff0c;DreamShaperXL和juggernautXL这2款大模型一直都深受广大AI绘画者的喜爱&#xff0c;不可否认&#xff0c;这2款通用模型在很多方面表现都相当出色。 今天再给大家介绍一款基于SDXL的通用大模型&#xff1a;AlbedoBase XL&#xff0c;作者的目标…

Centos7 Mysql8.3.0 安装地址

MySQL :: Download MySQL Community Server (Archived Versions)

qt 5.6 qmake手册

qt 5.6 qmake手册 &#xff08;笔者翻译的qmake手册&#xff0c;多数是机翻&#xff0c;欢迎评论区纠错修正&#xff09; Qmake工具有助于简化跨不同平台开发项目的构建过程。它自动生成Makefile&#xff0c;因此创建每个Makefile只需要几行信息。您可以将qmake用于任何软件项目…

解决 执行 jar 命令 控制台乱码

Springboot项目&#xff0c;编码为utf8 打包后&#xff0c;为了在控制台运行时不乱码&#xff0c;需要在控制台中依次执行以下命令&#xff1a; 第一步&#xff1a; chcp 65001第二步&#xff1a; java -jar -Dfile.encodingutf-8 你的.jar

使用 GitOps 进行防灾 MinIO

想象一下&#xff0c;您已经花费了无数小时来完善 Docker Swarm 设置&#xff0c;精心设计每项服务&#xff0c;并调整 CI/CD 管道以实现无缝自动化。现在&#xff0c;想象一下这个经过微调的系统被重置为原点&#xff0c;不是因为严重的故障或安全漏洞&#xff0c;而是因为数据…