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

news2024/11/27 6:16:19

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验


文章目录

    • 3.1 总线的基本概念
      • 3.1.1 总线的定义
      • 3.1.2 总线的分类
        • 片内总线
        • 系统总线
        • 通信总线
    • 3.2 总线特性及性能指标
      • 3.2.1 总线特性
      • 3.2.2 总线性能指标
      • 3.2.3 总线标准
    • 3.3 总线结构
      • 3.3.1 单总线结构
      • 3.3.2 多总线结构
        • 双总线结构
        • 三总线结构
        • 扩展总线结构
    • 3.4 总线控制
      • 3.4.1 总线判优控制
      • 3.4.2 总线通信控制
        • 同步通信
        • 异步通信
        • 半同步通信
        • 分离式通信

在第一章中,我们分别了解了构成计算机的硬件,若要使得计算机正常工作,必须通过线路将各个器件进行连接,连接方式不同,对计算机工作的影响也不同。


3.1 总线的基本概念


3.1.1 总线的定义


计算机系统的五大部件之间的互连方式有两种:

  • 分散连接:各部件之间使用单独的连线,以运算器为中心;

  • 总线连接:将各部件连到一组公共信息传输线上,以以存储器为中心。

    早期的计算机大多数用分散连接方式,其内部连线十分复杂,当 I/O 设备与存储器交换信息时,都需经过运算器,致使运算器停止运算,严重影响了 CPU 的工作效率。

    由此我们引出总线的定义

  • 连接各个部件的信息传输线,是各个部件共享的传输介质;

  • 构成计算机系统的互联机构,是多个系统功能部件之间进行数据传送的公共通路。

    采用总线连接可以极大优化分散连接带来的一些列问题:

在这里插入图片描述

CPU 与主存之间再开辟一条总线,称为存储总线。这组总线速度高,仅供主存与 CPU 之间传输信息。这样既提高了传输效率,又减轻了系统总线的负担,还保留了 I/O 设备与存储器交换信息时不经过 CPU 的特点。现代计算机大多数采用各类总线结构


3.1.2 总线的分类


片内总线


片内总线:指芯片内部的总线,如在CPU芯片内部,寄存器与寄存器之间、寄存器与算逻单元 ALU 之间都由片内总线连接。


系统总线


系统总线:指 CPU、主存、I/O 设备各大部件之间的信息传输线。

按系统总线传输信息的不同分为:

  • 数据总线:传输各功能部件之间的数据信息。双向传输,其位数与机器字长、存储字长有关。
  • 地址总线:指出数据总线上的源数据或目的数据在主存单元的地址或 I/O 设备的地址。单向传输,其位数与存储单元的个数有关。
  • 控制总线:发出各种控制信号的传输线。**对控制线而言,单向传输。对于控制总线总体来说,双向传输。**此外,控制总线还起到监视各部件状态的作用。对 CPU 而言,控制信号既有输出,又有输入。

通信总线


通信总线:用于计算机系统之间或者计算机系统与其他系统之间的通信。

按照传输方式分为:

  • 串行通信总线:数据在单条 1 位宽的传输线上,一位一位地按顺序分时传送,适用远距离(数千公里)的数据传输。
  • 并行通信总线:数据在多条并行 1 位宽的传输线上,同时由源传送到目的地,适用近距离(小于 30m)的数据传输。

3.2 总线特性及性能指标


3.2.1 总线特性


总线的特性可分为:

  • 机械特性:总线的物理连接方式(根数、插头、插座形状,引脚排列方式)。
  • 电气特性:每根线上信号的传递方向及有效电平范围。
  • 功能特性:每根线的功能(地址、数据、控制)。
  • 时间特性:规定了每根总线在什么时间有效(时序关系)。

3.2.2 总线性能指标


总线性能指标如下:

  • 总线宽度:指数据总线的根数,用 bit \text{bit} bit(位)表示,多少位就是多少根线。
  • 总线带宽:总线的数据传输速率,即单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量:
    • 单位 MBps \text{MBps} MBps(兆字节每秒)表示。
    • 计算方法:总线工作频率( MHz \text{MHz} MHz × \times × 总线宽度( B \text{B} B)。
    • 例如:总线工作频率为 33  MHz 33\text{ MHz} 33 MHz,总线宽度为 32 32 32 位( 32  bit = 4  B 32 \text{ bit}=4\text{ B} 32 bit=4 B),则总线带宽为 33 × ( 32 ÷ 8 ) = 132  MBps 33 \times (32 \div 8 ) = 132 \text{ MBps} 33×(32÷8)=132 MBps
  • 时钟同步/异步:总线上的数据与时钟同步工作的总线称为同步总线,与时钟不同步工作的总线称为异步总线。
  • 总线复用:一条信号线上分时传送两种信号,如:地址线和数据线复用。
  • 信号线数:地址总线、数据总线和控制总线三种总线数的总和。
  • 总线控制方式:包括突发工作、自动配置、仲裁方式、逻辑方式、计数方式等。
  • 其他指标:负载能力、电源电压、总线宽度能否扩展等。

3.2.3 总线标准


总线标准:可视为系统与各模块、模块与模块之间的一个互连的标准界面。 其优点如下:

  • 简化系统设计;

  • 简化系统结构,提高系统可靠性;

  • 便于系统的扩充和更新。

    此外,为了使不同厂家生产的相同功能部件可以互换使用,就需要进行系统总线的标准化工作。

    目前流行的总线标准有如下几种:

  • ISA 总线:由 IBM 推出,又称AT总线,它使用独立于 CPU 的总线时钟,因此 CPU 可以采用比总线频率更高的时钟,有利于 CPU 性能的提高。

  • EISA 总线:基于 ISA 扩充开放的总线标准,与 ISA 可以完全兼容,从 CPU 中分离出了总线控制权,是一种具有智能化的总线,能支持多个总线主控器和突发方式(总线上可进行成块的数据传送)的传输。

  • VESA总线:由 VESA 提出的局部总线标准,又称为 VL-BUS(Local BUS)总线。通过局部总线控制器,将高速 I/O 设备直接挂在 CPU 上,实现 CPU 与高速 I/O 设备之间的高速数据交换。

  • PCI 总线:由 Intel 公司推出,具有高性能,高兼容性,高扩展性,支持多主设备,即插即用等特点。

  • ACP 总线:由 Intel 公司推出,显示卡专用的局部总线,采用点对点通道方式,以主存作为帧缓冲器,实现了高速存取。

  • RS-232C 总线:由美国电子工业协会 EIA 推荐的一种串行通信总线标准。

  • USB 总线:由 CompaqDECIBMIntelMicrosoftNECNorthern Telecom 等七大公司于 199411 月联合开发的计算机串行接口总线标准。具有真正的即插即用、通用连接、高速传输、标准统一等特点。


3.3 总线结构


3.3.1 单总线结构


在这里插入图片描述

如图是单总线结构的示意,这种结构简单,也便于扩充,但所有的传送都通过这组共享总线,因此极易形成计算机系统的瓶颈。它也不允许两个以上的部件在同一时刻向总线传输信息,这就必然会影响系统工作效率的提高。


3.3.2 多总线结构


双总线结构


在这里插入图片描述

双总线结构的特点是将速度较低的 I/O 设备从单总线上分离出来,形成主存总线与 I/O 总线分开的结构。图中通道是一个具有特殊功能的处理器,CPU 将一部分功能下放给通道,使其对 I/O 设备具有统一管理的功能,以完成外部设备与主存储器之间的数据传送,其系统的吞吐能力可以相当大。这种结构大多用于大、中型计算机系统。


三总线结构


在这里插入图片描述

在三总线结构中,任一时刻只能使用一种总线。主存总线与 DMA 总线不能同时对主存进行存取,I/O 总线只有在 CPU 执行 I/O 指令时才能用到。以下另一种三总线结构的示意图:

在这里插入图片描述


扩展总线结构


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

在这里插入图片描述


3.4 总线控制


3.4.1 总线判优控制


众多部件共享总线,在争夺总线使用权时,应按各部件的优先等级来解决

总线判优控制分为:

  • 集中式:将控制逻辑集中在一处(如在CPU中)

  • 分布式:将控制逻辑分散在与总线连接的各个部件或设备上。

    常见的集中控制优先权仲裁方式有以下三种:

  • 链式查询:只需很少几根线就能按一定优先次序实现总线控制,并且很容易扩充设备,但对电路故障很敏感,且优先级别低的设备可能很难获得请求。

  • 计数器定时查询:不如链式查询方式敏感,但增加了控制线(设备地址)数,控也较复杂。

  • 独立请求方式:电响应速度快,优先次序控制灵活(通过程序改变),但控制线数量多,总线控制更复杂。


3.4.2 总线通信控制


众多部件共享总线,在通信时间上,则应按分时方式来处理

即以获得总线使用权的先后顺序分时占用总线,即哪一个部件获得使用权,此刻就由它传送,下一部件获得使用权,接着下一时刻传送。这样一个接一个轮流交替传送。

通常将完成一次总线操作的时间称为总线周期,分为:

  • 申请分配阶段:由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定下一传输周期的总线使用权授于某一申请者。

  • 寻址阶段:取得了使用权的主模块通过总线发出本次要访问的从模块(或从设备)的地址及有关命令,启动参与本次传输的从模块。

  • 传数阶段:主模块和从模块进行数据交换,数据由源模块发出,经数据总线流入目的模块。

  • 结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权。

    总线通信控制主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调如何配合。通常用四种方式:同步通信、异步通信、半同步通信和分离式通信。


同步通信


通信双方由统一时标控制数据传送称为同步通信

时标通常由CPU的总线控制部件发出,送到总线上的所有部件;也可以由每个部件各自的时序发生器发出,但必须由总线控制部件发出的时钟信号对它们进行同步。

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

在同步通信的总线系统中,总线传输周期越短,数据线的位数越多,直接影响总线的数据传输率。


异步通信


异步通信克服了同步通信的缺点,允许各模块速度的不一致性,给设计者充分的灵活性和选择余地。

它没有公共的时钟标准,不要求所有部件严格的统一操作时间,而是采用应答方式(又称握手方式),即当主模块发出请求(Request)信号时,一直等待从模块反馈回来“响应”(Acknowledge)信号后,才开始通信。当然,这就要求主、从模块之间增加两条应答线(握手交互信号线Handshaking)。

异步通信有以下应答方式:

  • 不互锁:
    • 主模块发出请求信号后,不必等待接到从模块的回答信号,而是经过一段时间,确认从模块已收到请求信号后,便撤销其请求信号;
    • 从模块接到请求信号后,在条件允许时发出回答信号,并且经过一段时间(这段时间的设置对不同设备而言是不同的)确认主模块已收到回答信号后,自动撤销回答信号。
  • 半互锁:
    • 主模块发出请求信号,必须待接到从模块的回答信号后再撤销其请求信号,有互锁关系;
    • 从模块在接到请求信号后发出回答信号,但不必等待获知主模块的请求信号已经撤销,而是隔一段时间后自动撤销其回答信号,无互锁关系。
  • 全互锁:
    • 主模块发出请求信号,必须待从模块回答后再撤销其请求信号;
    • 从模块发出回答信号,必须,待获知主模块请求信号已撤销后,再撤销其回答信号。

在这里插入图片描述

异步串行通信的数据传送速率用波特率来衡量。

波特率是指单位时间内传送二进制数据的位数,单位用 bps (位/秒)表示,记作波特。


半同步通信


半同步通信既保留了同步通信的基本特点,又像异步通信那样,允许不同速度的模块和谐地工作

为此增设了一条“等待”(WAIT)响应信号线,采用插人时钟(等待)周期的措施来协调通信双方的配合问题。

  • 优点:其控制方式比异步通信简单,在全系统内各模块又在统一的系统时钟控制下同步工作,可靠性较高,同步结构较方便。

  • 缺点:对系统时钟频率不能要求太高,故从整体上来看,系统工作的速度还不是很高。

    半同步通信适用于系统工作速度不高但又包含了由许多工作速度差异较大的各类设备组成的简单系统。


分离式通信


以上三种通信方式都是从主模块发出地址和读写命令开始,直到数据传输结束。在整个传输周期中,系统总线的使用权完全由占有使用权的主模块和由它选中的从模块占据。除了申请总线这一阶段外,其余时间主要花费在如下方面:

  • ①主模块通过传输总线向从模块发送地址和命令。

  • ②从模块按照命令进行读数据的必要准备。

  • ③从模块经数据总线向主模块提供数据。

    由 ② 可见,对系统总线而言,从模块内部读数据过程并无实质性的信息传输,总线纯属空闲等待

    由此提出了分离式的思想:

  • 首先,将一个传输周期(或总线周期)分解为两个子周期。

  • 第一个子周期中:

    • 主模块 A A A 在获得总线使用权后将信息经总线传输后,由有关的从模块 B B B 接收。
    • 主模块 A A A 向系统总线发布这些信息后立即放弃总线使用权,以便其他模块使用。
  • 第二个子周期中:

    • B B B 模块收到 A A A 模块发送的命令信号,经过内部处理后,将 A A A 模块所需的数据准备好,便由 B B B 模块申请总线使用权.
    • 一旦获准, B B B 模块便将 A A A 模块所需数据发送送到总线上,供 A模块接收。
  • 显然地,上述两个传输子周期都只有单方向的信息流,每个模块都变成了主模块。

    这种通信方式的特点如下:

  • 各模块欲占用总线使用权都必须提出申请。

  • 在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式传送,不再等待对方的回答信号。

  • 各模块在准备数据的过程中都不占用总线,使总线可接受其他模块的请求。

  • 总线被占用时都在做有效工作,或者通过它发送命令,或者通过它传送数据,不存在空闲等待时间,充分地利用了总线的有效占用。

这种方式控制比较复杂,一般在普通微型计算机系统很少采用

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

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

相关文章

AD域备份和恢复工具

Microsoft的本地Active Directory备份和恢复功能不适用于对象级备份和属性级还原。使用RecoveryManager Plus,您不仅可以备份和还原所有AD对象,还可以备份和还原其他基本AD元素,例如架构属性,组成员身份信息和Exchange属性。此外&…

字符串中<br>处理

需求: 后端返回的字符串中带有br换行符,前端需要处理行内及行尾的换行符。具体需求可分为以下两个: 若是字符串末尾有换行符,需要去掉。若是字符串内有换行符,有两种需求:①将换行符转换成逗号或其它符号&…

年薪30万,我也曾达到人生巅峰,入职字节一个月,却被无情被裁......

今年的金三银四并不像往年那样有铺天盖地的岗位和约不过来的面试机会,再看正在招聘的岗位,动不动就要求代码能力,能开发自动化测试平台,能对已有xxx框架二次开发,还要上机笔试,变态程度不亚于古代皇帝选妃了…

uni-app Some selectors are not allowed in component wxss解决方案

报错信息如下 Some selectors are not allowed in component wxss, including tag name selectors, ID selectors, and attribute selectors. 注意看尾巴, (./uni_modules/uni-load-more/components/uni-load-more/uni-load-more.wxss:65:29) 打开这个组件uni-lo…

工厂在智慧升级过程中,企业需要用到哪些系统呢?

今天我们优先来分析一下流程制造型企业的需求。流程制造行业智能工厂要实现智能化,必须包含生产管理、供应链管理、工艺管理、设备管理、质量管理等全生命周期业务流程,那么这个全生命周期业务流程相对应的平台就会有以下几大平台来分别实现智能化&#…

Linux驱动开发—最详细应用程序调用驱动程序解析

Linux下应用程序调用驱动程序流程 Linux下进行驱动开发,完全将驱动程序与应用程序隔开,中间通过C标准库函数以及系统调用完成驱动层和应用层的数据交换。驱动加载成功以后会在“/dev”目录下生成一个相应的文件,应用程序通过对“/dev/xxx” (xxx 是具体的驱动文件名字) 的文…

深度分析2种最常用待办事项清单法+工具实操

建待办事项清单的方法有很多种,你可能已经熟悉了其中一种,但没有了如指掌,恐怕也没有想过哪种方法最适合自己,给大家整理当下职场最常用的两个代办清单事项方法,只需看这两个就够你用几年了。 一、四象限法 “四象限…

全面分析前端的网络请求方式(对ajax理解的勘误)

文章目录前言AjaxFetchAxios三者关系前言 在掘金看到一篇关于ajax和fetch以及aixos的文章,才发现自己对ajax的理解是错误的,一直以为ajax就是js中xhr对象,把他们两之间画上了等号,殊不知从根本上就理解错了。 这里就不对原生的xh…

疯狂的SOVA:Android银行木马“新标杆”

2021年8月初,一款针对Android银行APP的恶意软件出现在人们的视野中,ThreatFabric 安全研究人员首次发现了这一木马,在其C2服务器的登录面板,研究人员发现,攻击者将其称之为SOVA。 ** SO** ** V** ** A简介** 在俄语中…

Mac Maven环境搭建安装和配置详细步骤

一、Maven简介Maven 是 Apache 软件基金会的一个开源项目,是一个优秀的项目构建工具,它用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、测试、打包和发布等工作。二、Mavende优点1、原来的项目中需要的jar包必须手动“复制”、”粘贴” 到WEB-INF/l…

产品经理必懂的技术知识

API 是不是经常听见程序猿小哥哥A说:“这个简单,直接调用现成的接口就可实现。 一会儿程序猿小哥哥B说:“你这个不行,我们的第三方服务接口不支持。” 此时你的心里活动:API ≈ 听不懂 啥子是接口哦?接口…

git合并分支

在复杂系统的开发过程中,我们经常需要通过不同的功能或环境分支来进行管理,那么开发阶段完成时,还需要进行合并,下边分享一下合并的流程:首先确保要合并的两个分支 本地分支与远程分支一致可以通过IDEA切换对应分支拉取…

【已解决】解决IDEA的maven刷新依赖时出现Connot reconnect错误

前言 小编我将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注一下!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!让我们在成长的道路上互相学习&#…

SAP分析云2023年第一季度亮点更新介绍

本文介绍了SAP分析云2023年第1季度的季度发布(QRC)新功能和增强功能。较于以往的版本,这次的更新在系统管理和服务管理、增强分析、业务内容交付、仪表盘和故事设计、Microsoft集成等方面做了产品的功能更新改进。那就和阿拓一起看看吧&#…

工作中,python真的有用吗?

普通上班族学Python有用吗? 那么,我也在这里提出一个问题:Python究竟适不适合办公人士来学习,以及学了之后究竟能不能给我的工作来带质一般的飞跃? 以我的亲身经历为例,我可以很负责的告诉大家&#xff0c…

Liunx服务器安装SVN

一、下载svn安装包链接:https://pan.baidu.com/s/1gkS0tef2kQP6nvXOS64hUw 提取码:cyuw二、SVN安装部署通过sftp将文件拉取到目的主机路径:/usr/package 跳转文件路径: cd /usr/package 执行解压命令:tar -zxvf subversion-1.14.2.tar.gz 执行…

Mysql的安装、语法、优化

1 数据库 数据库是存储数据,管理数据的仓库。 常见的数据库有两种: 关系型数据库:数据关系紧密。关系模型是二维表格模型,一个关系型数据库就是由二维表及其之间的关系组成的一个数据集合。 Oracle、MySQL、SQLServer、Access…

基础算法一:同向双指针

同向双指针——滑动窗口 讲解实例:LeetCode209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合…

二叉树、二叉搜索树、二叉树的最近祖先、二叉树的层序遍历【零神基础精讲】

来源0x3f:https://space.bilibili.com/206214 文章目录二叉树[104. 二叉树的最大深度](https://leetcode.cn/problems/maximum-depth-of-binary-tree/)[111. 二叉树的最小深度](https://leetcode.cn/problems/minimum-depth-of-binary-tree/)[129. 求根节点到叶节点…

工时表软件在项目中的作用 帮助企业管理项目成员的工时

企业的不断发展离不开每一个成功交付的项目,但在任何一个项目中,人力成本是主要的成本之一,员工的工作效率高低影响着项目成本和质量的关键点。如果想要降低整个项目的成本那就需要对员工工时更加精准的把控,所以规范管理员工时间…