什么是前端总线,后端总线,内部总线、系统总线,外部总线,地址总线,数据总线,控制总线

article/2025/9/17 0:32:30

文章
部分内容来自于 电子发烧友 内部总线、系统总线和外部总线汇总
部分内容来自于 知乎 前端总线,系统总线,内部总线,外部总线

本文是在两篇文章的基础上进行了二次加工,对两篇文章的精华内容进行了提炼,删掉了对理解主题不重要的,或已经过时的内容。并且为了更好的理解,自己又加了一些文字和图片。

说在前面的话

对于这样的概念不需要太过于纠结,看完以后心中有个大体的把握即可,因为概念性的东西没有标准答案,而且国内外各种资料相互“打架”,众说纷纭,造成现在这样一种概念混乱的局面。重要的是知道了这些概念之后,在以后的实际解决问题中,头脑能比较清楚就行。


好了,正文开始

什么是前端总线,内部总线、系统总线和外部总线?

首先把这个问题仅限于x86平台。其他cpu架构不见得是这么分。并且仅限于2000-2009年范围。这些概念也许只有DIYer圈知道。近几年intel的动作频频,把南北桥都要合并了。这个问题,再过几年也许就没意义了。
++++++++++++++++++++++++++我是时间线++++++++++++++++++++++++++++++++++++
2009年,英特尔和AMD已采用单芯片组技术,取代原有的南桥/北桥方案。Intel平台北桥被内置到CPU中。还有一些处理器,比如Intel超低压CPU、Intel Xeon D等Intel CPU已经内置南桥。


什么是总线

总线(Bus)是供多个部件分时共享的公共信息传送线路,一个系统的总线结构决定了该计算机系统的数据通路及系统结构。如今,几乎所有的计算机系统中都采用了总线结构。

在微型计算机中,总线以及所连接的部件都安放在主板(Main Board)上。计算机在运
行中对于系统内的部件和外部设备的控制都通过主板实现,主板的组成与布局也影响着系
统的运行速度、稳定性和可扩展性。

从另一个角度来看,如果说主板(Mother Board)是一座城市,那么总线就像是城市里的公共汽车(bus),能按照固定行车路线,传输来回不停运作的比特(bit)。这些线路在同一时间内都仅能负责传输一个比特。因此,必须同时采用多条线路才能发送更多数据,而总线可同时传输的数据数就称为宽度(width),以比特为单位,总线宽度愈大,传输性能就愈佳。

总结:个人感觉总线就是为了主板上各种东西的通信,建立的一些逻辑电路。


总线的分类

总线应用很广,形态多样,从不同的角度可以有不同的分类方法。下面列举几种。

1.按照总线传递的信号性质分类

按照总线传递的信号性质,可将其分为 3 种。
(1)地址总线(Address Bus,AB),用来传递地址信息。
(2)数据总线(Data Bus,DB),用来传递数据信息。
(3)控制总线(Control Bus,CB),用来传递各种控制信号。

2.按照总线所处的位置分类

按照总线所处的位置分为机内总线和机外总线。

机内总线分为片内总线片外总线片内总线CPU 芯片内部用于在寄存器、ALU 以及控制部件之间传输信号的总线;片外总线CPU 芯片之外,用于连接 CPU、内存以及 I/O设备的总线。

机外总线与外围设备接口的总线,实际上是一种外设的接口标准。目前在微型计算机上流行的接口标准有 IDE、SCSI、USB 和 IEEE 1394 等。

3. 按照总线在系统中连接的主要部件分类

按照总线在系统中连接的主要部件,可以将总线分为 5 种。
(1)存储总线:连接存储器。
(2)DMA 总线:连接 DMA 控制器。
(3)系统总线:连接 I/O 通道总线和各扩展槽。
(4)I/O(设备)总线:连接外部设备控制芯片。
(5)局部总线:通常是一种实现高速数据传送的高性能总线,用来在高度集成的外设控制器器件,扩展板和处理器/存储器系统之间提供一种内部连接机制。

4. 按照总线传输的数据单位分类

按照总线传输的数据单位分为串行总线和并行总线。图 3.2 为两者示意图。
在这里插入图片描述
(1)串行总线按位进行传输,每次传输一个位的数据。
(2)并行数据每次传输多位,通常有 8b、16b、32b 和 64b 等几种。所以,并行传输除了控制信号、电源等之外,要传输多少位数据,就需要多少根数据线。

5. 按照发送端与接收端有无共同的时钟分类

按照发送端与接收端有无共同的时钟,总线可以分为同步总线异步总线等类型。

6. 按照系统中使用的总线数量分类

大多数总线都是以相同方式构成的,其不同之处仅在于总线中数据线和地址线的数目,以及控制线的多少及功能。按照系统中使用的总线的条数可以分为单总线结构、双总线结构和多总线结构。

单总线结构

单总线结构使用一组单一的系统总线来连接 CPU、主存和 I/O 设备。在这类系统中,同一类信息在不同部件间传递时,通过同一组总线,或者说,所有的模块都挂在同一组总线上
在这里插入图片描述
这种总线结构连接灵活、易于扩充。单总线结构容易扩展成多 CPU 系统,这只要在总线上挂接多个 CPU 即可。因所有信息都在一组系统总线上传送,故信息传输的吞吐量受到限制。
在这里插入图片描述

双总线结构

双总线结构保持了单总线结构简单、易于扩充的优点,又在 CPU 和主存之间有一组专门高速总线,使 CPU 可与主存迅速交换信息,而主存不必经过 CPU 仍可通过总线与外设之间实现 DMA 操作。这样,缓解了对系统总线和 CPU 的压力,提高了系统的效率。
在这里插入图片描述
由于各种设备对于总线的要求不同,在设备不断增加的形势下,总线趋向于分级的总线结构。

三级总线结构。

在双总线的基础上增加了I/0总线,这条线就是所有外设与“通道“通信的一条线。”通道“乍一听好像很抽象,其实就是南桥芯片。各芯片组厂商的南桥名称都有所不同,例如英特尔称之为I/O路径控制器(ICH)或平台路径控制器(PCH)。
在这里插入图片描述
上图中的”通道“就是下图的局部I/O控制器,I/O总线就是下面的扩展总线。
在这里插入图片描述
这种三级总线结构一般用于 I/O 设备性能相差不大的情况。在高速的视频设备、网络、硬盘等大量涌现的情况下,将它们与低速设备(如打印机、低速串口设备)接在同一条总线上,非常影响系统的效率。进一步的改进是为这些高速设备设立一条单独的高速总线,形成如图 3.4 所示的由系统总线、局部总线、高速总线和扩展总线组成的四级总线结构
在这里插入图片描述

上面已经对总线进行比较全面的分类,不过仅仅只是分了类,缺乏一些详细的内容,下面的部分就来补充一下,帮助理解的更全面。

补充

1、总线按功能和规范可分为五大类型:数据总线地址总线控制总线扩展总线局部总线

地址总线:是专门用来传送地址的,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线总是单向的,这与数据总线不同,地址总线的位数决定了CPU可直接寻址的内存空间大小

控制总线:用来传送控制信号时序信号。控制信号中,有的是微处理器送往存储器和I/O接口电路的;也有是其它部件反馈给CPU的,比如:中断申请信号、复位信号、总线请求信号、设备就绪信号等。

  • 一般规定送入 CPU 的信号称为输入信号(IN),从 CPU 发出的信号称为输出信号(OUT)。例如,地址总线是输出线,数据总线是双向传送,控制总线一般是单向的,有输出的也有输入的,如下图
    在这里插入图片描述

数据总线地址总线控制总线也统称为系统总线,即通常意义上所说的总线。常见的系统总线看下面的图
在这里插入图片描述
上述这些标准中有些已经被淘汰,有些正在被应用,有些即将被应用

2、按照传输数据的方式划分,可以分为串行总线并行总线。串行总线中,二进制数据逐位通过一根数据线发送到目的器件;并行总线的数据线通常超过2根。常见的串行总线有SPI、I2C、USB及RS232等。

3、按照时钟信号是否独立,可以分为同步总线异步总线。同步总线的时钟信号独立于数据,而异步总线的时钟信号是从数据中提取出来的。SPI、I2C是同步串行总线,RS232采用异步串行总线。

4、微机中总线一般有内部总线系统总线外部总线内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。
在这里插入图片描述


内部总线

内部总线原是指南桥芯片与北桥芯片之间的连线。下图南北桥中间的Internal Bus就是内部总线
在这里插入图片描述
在早期的主板上,对于Intel来说,这条内部总线有专门的名字,叫DMI(Direct Media Interface,直接媒体接口)。

现在英特尔和AMD已采用单芯片组技术,取代原有的南桥/北桥方案。所以现在的内部总线不再是原来的意思了。

外部总线上,还有一些零碎的低速小芯片。这个一般用户接触不到,是给制造商的开发人员用的。例如网卡需要一片eeprom来存唯一的MAC地址。很多pci卡上都能找到这些小flash。某些pci卡还有温度传感器。网卡的MAC和PHY之间也要有总线来读取链接速度、是否link等信息。控制这些小芯片使用诸如I2C SPI总线,即所谓的内部总线。

科普时间

I2C总线:I2C(Inter-IC)总线是同步通信的一种特殊形式,在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。

SPI总线:SPI(Serial Peripheral Interface:串行外设接口)。SPI接口主要应用在EEPROMFLASH,实时时钟之间。


前端总线

前端总线(FSB,Front Side Bus)是指中央处理器数据总线的专门术语,此总线负责中央处理器和北桥芯片间的数据传递。现在的x86处理器内置了存储器控制器,FSB已被Intel QPI和AMD HyperTransport取代,QPI和HyperTransport在下面有科普。

某些带有L2和L3缓存(Cache)的CPU,通过后端总线(Back Side Bus,下面会介绍后端总线)实现这些缓存和中央处理器的连接,而此总线的数据传输速率总是高于前端总线。

通俗的说,前端总线(FSB)就是CPU和北桥、内存的连接总线了。北桥是PCI/PCIe 总线的发源地。但是由于技术的进步,FSB已经被取代,AMD很早就开始采用自己的HyperTransport(后续版本更改为HyperTransport Link简称HT link)代替了FSB来提高cpu与内存等芯片的数据传输速度,而intel亦采用QuickPathInterconnect(QPI)技术。但是总体上讲,这两种技术都是FSB的进化。

科普时间

QPI

快速通道互联(英语:Intel QuickPath Interconnect,缩写:QPI),是一种由英特尔开发并使用的点对点处理器互连架构,用来实现CPU之间的互联。英特尔在2008年开始用QPI取代以往用于至强(Xeon)、安腾处理器的前端总线(FSB)。

HyperTransport

HyperTransport总线技术,简称“HT总线”,是AMD开发的一种处理器的互连技术。

前方高能 HT and HTT

卖场中常有“HT总线”与日后英特尔“HT技术”的混淆,然而这两个是截然不同的技术。HT一般指HyperTransport,或简称HT总线,一般情况下HyperTransport联合会都是使用全称“HyperTransport”以免造成歧义。而应用于奔腾4处理器、英特尔Nehalem微架构及其后续微架构之处理器的“HT技术”,英特尔的官方简称是HTT,Hyper-Threading Technology 或简称HT Technology(HT技术)。


后端总线

后端总线(BSB,Back Side Bus):带有L2和L3缓存(Cache)的计算机中,负责中央处理器和外部缓存(经常为第二级缓存)之间的数据传递的数据通道。后端总线传输速率总是高于前端总线。用于处理缓存数据的后端总线实际上是以CPU时钟速度运行。在在90年代中期,后端总线曾是保持数据移动的重要路径。Intel公司的Pentium II和Pentium Pro都使用所谓的芯片外缓存(Cache),与保存在传统内存中的数据相比,这类缓存将经常使用的数据靠近(在访问数据所需的距离和时间上)主处理单元保存。连线将CPU连接到第二级(L2)缓存并以CPU时钟速度在CPU与L2缓存之间交换数据。
在这里插入图片描述


系统总线

特指 PCI/PCIe 总线。这是Intel主导发展的总线标准。

什么?还有EISA、VESA总线?请把他们遗忘在20世纪吧。胜者为王。

人的大脑和其他的器官、四肢,大部分靠脊髓相连。PCI/PCIe 总线 ,就相当于x86架构机器的脊髓。其他内部总线、外部总线,都是挂在系统总线上的。USB、SATA、1394,统统是 PCI/PCIe 总线的下级。主要因为PCI/PCIe 总线带宽高;拥有硬件探测能力;改进的标准能热插拔。顺带提一下,因为PCI/PCIe 总线的硬件探测能力,加上微软定义的几套PC制造标准,我们才能一张xp盘装无数的x86机器。

科普时间

PCI总线:PCI(Peripheral Component Interconnect)外设元件互连标准。PCI总线是当前最流行的总线之一,它是由Intel公司推出的一种系统总线。它定义了32位数据总线,且可扩展为64位。PCI总线主板插槽的体积比原ISA总线插槽还小,其功能比VESA、ISA有极大的改善,支持突发读写操作,最大传输速率可达132MB/s,可同时支持多组外围设备。PCI总线不能兼容现有的ISA、EISA、MCA总线,但它不受制于处理器,是基于奔腾等新一代微处理器而发展的总线。
在这里插入图片描述
在这里插入图片描述


外部总线

诸如USB,SATA,IDE,1394,串口,以太网,这些暴露给普通用户插的,就是外部总线。前面提到过,他们都是PCI/PCIe 总线 的下级。例如在PCI/PCIe 总线上,USB控制器是pci设备。在USB总线上,USB控制器又是头头,U盘是设备。 U盘里的数据想去cpu,得经由 usb总线 -->pci总线–>前端总线–>CPU

科普一下USB
USB总线:通用串行总线USB是由Intel、Compaq、Digital、IBM、Microsoft、NEC、NorthernTelecom等7家世界著名的计算机和通信公司共同推出的一种新型接口标准。它基于通用连接技术,实现外设的简单快速连接,达到方便用户、降低成本、扩展PC连接外设范围的目的。它可以为外设提供电源,而不像普通的使用串、并口的设备需要单独的供电系统。
在这里插入图片描述

总结:

PC上一般有五种总线:

  • 数据总线(Data Bus):在CPU与RAM之间来回传送需要处理或是需要储存的数据。
  • 地址总线(Address Bus):用来指定在RAM(Random Access Memory)之中储存的数据的地址。
  • 控制总线(Control Bus):将微处理器控制单元(Control Unit)的信号,传送到周边设备,一般常见的为USB Bus和1394 Bus
  • 扩展总线(Expansion Bus):可连接扩展槽和电脑。
  • 局部总线(Local Bus):取代更高速数据传输的扩展总线。

PS

做底层开发的,其实根本不关心内部总线、外部总线、系统总线这些叫法,因为这些叫法都不标准,充满歧义。真正干活时,总是明确地指出总线的具体名称:USB、PCIE、I2C、SPI。


http://chatgpt.dhexx.cn/article/rEfyi5Zr.shtml

相关文章

地址总线是单向还是双向_「计算机组成原理」:总线、地址总线、数据总线和控制总线...

总线(Bus):是计算机各种功能部件之间传送信息的公共通信干线. 总线(Bus):是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制…

计算机控制总线传输的是,总线,地址总线,数据总线和控制总线

总线(Bus): 这是一条通用的通信干线,可以在计算机的各种功能组件之间传输信息. 它是由电线组成的变速箱线束. 根据计算机传输的信息类型,计算机的总线可以分为数据总线和地址. 总线和控制总线分别用于传输数据,数据地址和控制信号. 总线是一种…

计算机64位地址总线,地址总线与数据总线的关系,功能和宽度

1. 地址总线与数据总线之间的关系 数据总线用于传输数据. 每条数据线传输一个二进制位64位处理器 数据总线,而8条线恰好传输一个字节. 但是,地址总线传输地址,每个地址也传输一个二进制位,而8条地址线传输8个二进制位. 这8个二进制位具有2 ^ 8个不同的变化,因此它们可用于…

地址总线

现在我们知道,CPU是通过地址总线来指定存储器单元的。可见地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。 现假设,一个CPU有10根地址总线,让我们来看一下它的寻址情况。我们知道,在电子计算机…

地址总线、物理地址、虚拟地址讲解

什么是地址总线? 地址总线(Address Bus ;又称位址总线)属于一种电脑总线(一部份),是由CPU或有DMA能力的单元,用来沟通这些单元想要存取(读取/写入)电脑内存元件/地方的实体位址。 换而言之,就…

计算机总线详解(数据总线、地址总线、控制总线)

文章目录 1 概述2 总线分类2.1 数据总线 Data Bus2.2 地址总线 Address Bus2.3 控制总线 Control Bus 3 扩展3.1 常考题3.2 百度百科 - 总线 Bus 1 概述 总线(Bus) 是计算机各种功能部件之间传送信息的 公共通信干线如果说 主板(Mother Boar…

总线之地址总线、数据总线、控制总线

https://www.cnblogs.com/codexlx/p/13252705.html 1.地址总线: CPU是通过地址总线来指定存储单元的,因此总线地址上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址 一个CPU有N根地址线,那么可以说这个CPU的地址总线…

CentOS8 arm64架构 鲲鹏服务器上安装zabbix-agent

1、使用系统yum源中自带的资源安装 查看yum中自带的zabbix资源包 sudo yum list |grep zabbix安装 sudo install zabbix40-agent.aarch64 # 填写自己服务器上的资源2、下载资源包安装 获取官网下载地址 zabbix官网下载.aarch64.rpm的资源包,地址 搜索需要的包 …

ARM64(aarch64)下安装tensorflow

首先从Github下载安装包: tensorflow-on-arm 选择合适的版本,例如tensorflow-1.14.0-cp35-none-linux_aarch64.whl 命名规则:cp35代表python3.5,aarch64表示架构信息 wget https://github.com/lhelontra/tensorflow-on-arm/rele…

QEMU启动ARM64 Linux内核

目录 前言前置知识virt开发板ARM处理器家族简介 安装qemu-system-aarch64安装交叉编译工具交叉编译ARM64 Linux内核交叉编译ARM64 Busybox使用busybox制作initramfs使用QEMU启动ARM64 Linux内核 前言 本文介绍采用 qemu 模拟ARM-64bit开发板(针对ARM-32bit的有另一…

centos for arm64

Arm64的centos版本自7.5.1804以后不再和7.4、7.3、7.2等之前的一样直接提供一个rootfs.tar.xz的压缩包,全部变成了ISO的安装文件,因此需要EFI来引导安装,如果Aarch64的cpu用的是uboot就只有干瞪眼了,笔者花了一翻功夫,…

ARM64逆向基础

为什么要学ARM64? android 5.0系统就开始引入Arm64-v8a,它用于支持全新的AArch64架构,这个架构也就是我们要学习的arm64汇编。目前android系统已经发展到anroid 11版本。因此现在主流的apk都是支持AArch64架构。那么我们利用IDA(…

第一章 QEMU虚拟机与ARM64平台搭建

系列文件目录 《ARM64体系结构结构编程与实践》学习与应用记录 第一章 QEMU虚拟机与ARM64平台搭建 文章目录 系列文件目录本章前言一、ubuntu虚拟机安装1.ubuntu20.04镜像下载2.镜像安装3.工具安装 二、代码下载1.git配置2.runninglinuxkernel代码下载3.代码编译 总结 本章前言…

搭建arm64的qemu环境

说明 qemu在调试内核方面还是比较方便、效率的。以前基本上多是用arm32的平台,网上大部分资源也是关于arm32的。现在arm64的也比较普遍了,最近刚好要看一些内核的东西,花了2天的时间搭建了这个环境,希望看到的朋友少走弯路&#…

x86_64(intel64、amd64)和ARM64的区别以及发展

文章目录 区别引用 区别 ARM64架构 ARM 公司研发的,用的是精简指令集(追求节能,低功耗)。通常用于手机、平板等CPU,目前笔记本电脑也会采用ARM64构架的CPU,比如mac m1就是arm64(查看命令:uname…

x86 x64 arm64的区别

x86 x64 arm64的区别 源地址:https://www.cnblogs.com/zhaoqingqing/p/13145115.html 我们常说的高通 865,麒麟990 不是 CPU 是 SoC(System On Chip),SoC 除了 CPU 外,还有 GPU,还有可选的浮…

Python线性方程求解-矩阵左除“\“、右除“/“

目录 1 线性方程组求解方法 2 左除“\”→AxB 3 右除"/"→xAB 4 其它说明 1 线性方程组求解方法 如果AxB,则xA\B,称为左除;如果xAB,则xB/A,称为右除。 式中x为未知数。一般情况下,左除用的系…

Matlab:用矩阵的除法替代逆运算的操作(inv)

在matlab中直接用逆运算常常会提示,建议用矩阵的左除或右除替换,因为inv(A)*b速度更慢且准确度更低。 matlab中部分详细信息:为了求解线性方程组,矩阵的逆主要是理论值。 切勿使用矩阵的逆 ,即 x inv(A)*b 来求解线性…

逆矩阵的概念、应用和求解

目录 逆矩阵的概念 求解逆矩阵 应用例子 可能没有逆矩阵 求解逆-方法1:初等行运算(高斯-若尔当) 求解逆-方法2:余子式、代数余子式和伴随 求解逆-方法3:程序库 逆矩阵的概念 矩阵运算中,…

利用矩阵的逆(伪逆)与除法求解

利用矩阵的逆(伪逆)与除法求解: 对于线性方程组Axb,若其为恰定方程组且A是非奇异的,则求x最明显的方法便是利用矩阵的逆,即xA\b;若不是恰定方程组,则可利用伪逆来求其一个特解。 运用pinv命令…