计算机的总线系统

0    58    1

Tags:

👉 本文共约5104个字,系统预计阅读时间或需20分钟。

前言

计算机的冯·诺依曼计算机架构,计算机由五大部件组成。那么,计算机的五大部件是如何连接成一个整体的呢?这就需要依赖总线系统。


学习路线图:

计算机的总线系统


1. 认识计算机总线系统

1.1 什么是总线?

在冯·诺依曼计算机架构中,计算机由控制器、运算器、存储器、输入设备和输出设备五个部分组成,而这五个部分必须进行 “连接” 起来相互通信才能形成一个完整的整体。总线就是连接多个计算机部件的数据通信规范。

计算机的总线系统

—— 图片引用自 Wikipedia

1.2 为什么要使用总线结构?

先解释一下为什么现代的计算机系统要采用总线结构:

  • 原因 1 - 降低复杂性: 这个设计思路跟软件开发中的中介者模式是相同的。总线结构将 N-N 网型拓扑结构简化为 N-1-N 总线型结构或星型+总线型拓扑结构,不仅整体的系统结构清晰许多,可以提高系统稳定性。而且需要使用的布线数目也减少了,制造成本也更低;
  • 原因 2 - 促进标准化: 总线结构提供了一个标准化的数据交换方式,各个硬件按照总线的标准实现接口,而无需考虑对方接口或总线的工作原理,有利于各个部件模块化设计。

计算机的总线系统


2. 总线的内部结构

总线本身的电路功能,又可以拆分成 3 部分:

  • 1、地址总线(Address Bus,AB): 地址总线传输的是地址信号。地址总线是单向的,地址信息只能从主设备发往从设备。地址总线宽度也决定了一个 CPU 的寻址能力,即多大可以访问多少数据空间。举个例子,32 位地址总线可以寻址 4GB 的数据空间;
  • 2、控制总线(Control Bus,CB): 控制总线传输控制或状态信号。控制总线是双向的,信号可以从主模块发往从模块,也可以从从模块发往主模块(例如 CPU 对存储器的读写控制信号,例如 I/O 设备对 CPU 中断请求信号);
  • 3、数据总线(Data Bus,DB): 数据总线传输的是实际的数据信息。数据总线是双向的,数据可以从主模块发往从模块(例如 CPU 向内存的写入操作),也可以从从模块发往主模块(例如 CPU 向内存的读取操作)。

举个例子,当 CPU 要从存储器读取数据时,三类总线的工作过程概要如下:

  • 1、CPU 通过地址总线发送要访问的存储单元的地址信息;
  • 2、CPU 通过控制总线发送读控制信号;
  • 3、存储器通过数据总线发送指定存储单元上的数据,从 CPU 的视角就是读取。

计算机的总线系统


3. 总线系统的架构

理解了总线的概念后,我们先来看总线系统的整体架构,现代计算机中的总线大多采用分层次多总线架构。

3.1 单总线架构和多总线架构

在早期计算机中,会使用单一总线来连接计算机的各个部件,这种结构叫单总线架构。这种结构实现简单,但缺点有 2 个:

  • 缺点 1: 计算机不同组件之间的速度差较大,例如 CPU 与内存或 I/O 设备的速度差非常大,当传输数据量很大时,CPU 经常需要等待;
  • 缺点 2: 所有的信号都要经过同一个共享的总线,不允许两个以上的部件同时传输信号。

计算机的总线系统

因此,单总线系统很容易形成系统的性能瓶颈,就算是增大总线的带宽也无法从根本上解决系统性缺陷。目前,单总线结构只出现在微型计算机中。大多数现代计算机都采用了分层次多总线结构,所有的设计思路都是围绕单总线架构存在的 2 个缺点展开的:

  • 应对缺点 1: 将高速部件和低速部件分为不同层级,不同层级之间使用独立的总线,减少高速部件对低速部件的等待;
  • 应对缺点 2: 增加多条总线,使得数据可以同时在多个部件之间传输。

3.2 双独立总线:片内 & 片外

现代 CPU 中通常会使用高速缓存,由于 “CPU-高速缓存” 和 “CPU - 内存” 的速度差非常大,计算机系统选择在 CPU 芯片内和 CPU 芯片外使用 双独立总线(Dual Independent Bus,DIB):

  • 前端总线(Front Side Bus,FSB): CPU 与外部连接的总线(即 CPU 连接北桥芯片的总线);
  • 后端总线(Back Side Bus,BSB): 也叫本地总线(Local Bus)或片内总线(On-chip Bus),是 CPU 芯片内部独立使用的总线。CPU 芯片内部一个或多个核心、Cache 之间的通信将不需要占用芯片外的系统总线。

提示: 前端总线和系统总线的概念容易混淆,不同资料的说法不一。我的理解是:前端总线是 “特指” 某些 Intel CPU 架构中,CPU 芯片与外部连接的这条总线,而系统总线 “泛指” 连接计算机各个部件的所有总线。小彭在后续专栏内容都会按照此理解讨论。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
计算机的总线系统后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章
验证码:
请关注本站微信公众号,回复“小麦苗博客”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部