单总线和多总线的区别

2023-05-16

在计算机系统的硬件组成中,总线(Bus)是不可缺少的一部分,将各大基本部件按照一定的方式链接起来就构成了计算机硬件系统。就目前来讲,许多微型计算机的各大部件之间都是用总线链接起来的。
    总线是一组能够为各部件提供服务的公共信息传送线路,它能够分时地发送与接收各部件的信息,是计算机系统各部件之间传输地址、数据和控制信息的公共通道,CPU通过总线实现读取指令,并实现与内存、外设之间的数据交换,在CPU、内存与外设确定的情况下,总线速度是制约计算机整体性能的关键,总线的性能对于解决系统瓶颈、提高整个微机系统的性能有着十分重要的影响。因此在微型计算机二十多年的发展过程中,总线结构也不断地发展变化。总线结构已成为微机性能的重要指标之一。

一、总线分类

    1. 片内总线和片外总线

    片内总线是CPU内部的寄存器、算术逻辑部件、控制部件以及总线接口部件之间的公共信息通道。

    片外总线则泛指CPU与外部器件之间的公共信息通道。

    我们通常所说的总线大多是指片外总线。有的资料上也把片内总线叫做内部总线或内总线(Internal Bus),把片外总线叫做外部总线或外总线(External Bus)。

    2. CPU总线、系统总线和外设总线

    CPU总线是从CPU引脚上引出的连接线,用来实现CPU与外围控制芯片和功能部件之间的连接。

    系统总线也称为I/O通道总线,用来与存储器和扩充插槽上的各扩充板卡相连接。常见的系统总线有ISA、PCI、PCI-E等。系统总线是通过专用的逻辑电路的对CPU总线的信号在空间与时间上进行逻辑重组转换而来。

    外设总线是指计算机主机与外部设备接口的总线,实际上是一种外设的接口标准。目前在微型计算机上流行的接口标准有:IDE(EIDE/ATA,SATA)、SCSI、USB和IEEE 1394四种。前两种主要用于连接硬盘、光驱等外部存储设备,后面两种可以用来连接多种外部设备。

    3.地址总线、数据总线和控制总线

    几乎所有的总线都要传输三类信息:数据、地址和控制/状态信号,相应地每一种总线都可认为是由数据总线、地址总线和控制总线构成。

    数据总线(Data Bus,DB)用于在各个部件/设备之间传输数据信息。

    地址总线(Address Bus,AB)用于在CPU(或DMA控制器)与存储器、I/O接口之间传输地址信息。

    控制总线(Control Bus,CB)用于在CPU(或DMA控制器)与存储器、I/O接口之间传输控制和状态信息。
      
从微机体系结构来看,有两种总线结构,即单总线结构和多总线结构。在多总线结构中,又以双总线结构为主。

1. 单总线结构

      计算机的各个部件均由系统总线相连,在单总线结构中,CPU与主存之间、CPU与I/O设备之间、I/O设备与主存之间、各种设备之间都通过系统总线交换信息。单总线结构的优点是控制简单方便,扩充方便。但由于所有设备部件均挂在单一总线上,使这种结构只能分时工作,即同一时刻只能在两个设备之间传送数据,这就使系统总体数据传输的效率和速度受到限制,这是单总线结构 的主要缺点。单总线结构图如下所示:
 

                                                                 

2. 双总线结构
    双总线结构又分为面向CPU的双总线结构和面向存储器的双总线结构。
    面向CPU的双总线结构如下图所示。其中一组总线是CPU与主存储器之间进行信息交换的公共通路,称为存储总线。另一组是CPU与I/O设备之间进行信息交换的公共通路,称为输入/输出总线(I/O总线)。外部设备通过连接在I/O总线上的接口电路与CPU交换信息。
                                                          

    由于在CPU与主存储器之间、CPU与I/O设备之间分别设置了总线,从而提高了微机系统信息传送的速率和效率。但是由于外部设备与主存储器之间没有直接的通路,它们之间的信息交换必须通过CPU才能进行中转,从而降低了CPU的工作效率(或增加了CPU的占用率。一般来说,外设工作时要求CPU干预越少越好。CPU干预越少,这个设备的CPU占用率就越低,说明设备的智能化程度越高),这是面向CPU的双总线结构的主要缺点。
       面向存储器的双总线结构保留了单总线结构的优点,即所有设备和部件均可通过总线交换信息。与单总线结构不同的是在CPU与存储器之间,又专门设置了一条高速存储总线,使CPU可以通过它直接与存储器交换信息。面向存储器的双总线结构信息传送效率较高,这是它的主要优点。但CPU与I/O接口都要访问存储器时,仍会产生冲突。这种总线结构的示意图如下。
                                                       

二、总线的性能指标
    1)总线带宽BW
    总线的带宽指的是单位时间内总线上可传送的数据量,即我们常说的每秒钟传送多少字节。单位是字节/秒(B/s)或兆字节/秒(MB/s)。与总线带宽密切相关的两个概念是总线宽度和总线的工作频率。
    2)总线宽度W
  总线的宽度指的是总线能同时传送的数据位数,即我们常说的16位、32位、64位等总线宽度的概念。在工作频率固定的条件下,总线的带宽与总线的宽度成正比。
    3)总线工作频率f
    总线的工作频率即总线的时钟频率,以MHz为单位。它是指用于协调总线上的各种操作的时钟信号的频率。工作频率越高则总线工作速度越快。
    总线带宽、总线宽度、总线工作频率三者之间的关系就像高速公路上的车流量、车道数和车速的关系。车流量取决于车道数和车速,车道数越多、车速越快则车流量越大。同样,总线带宽取决于总线宽度和工作频率,总线宽度越宽,工作频率越高,则总线带宽越大。当然,单方面提高总线的宽度或工作频率都只能部分提高总线的带宽,并容易达到各自的极限。只有两者配合才能使总线的带宽得到更大的提升。
       总线带宽的计算公式如下:
        BW =(W/8)× f/每个存取周期的时钟数
【例】总线时钟频率为100MHz的32位总线,若每两个时钟周期完成一次总线存取操作,则总线带宽=32/8×100/2=200MB/s。 
三、嵌入式软件层面的单总线和多总线的区别
      对于嵌入式软件编程来说,由于单总线结构是将CPU、I/O和存储器都接在同一总线上,因此对内存的操作和对I/O的操作可以使用相同的指令系统,但是对于多总线结构,由于CPU和主存、CPU和I/O之间使用不同的系统总线,因此,操作内存和操作I/O使用不同的指令,即:不能用操作内存的方式去操作I/O端口。

     单总线的典型代表(ARM架构的CPU),多总线的典型代表(X86架构的CPU)。

http://blog.chinaunix.net/uid-29399573-id-4205380.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单总线和多总线的区别 的相关文章

随机推荐

  • 点云传统滤波算法

    点云滤波 分割功能滤波直通滤波条件滤波提取索引滤波 下采样类滤波体素滤波均匀采样滤波 去除噪声点类滤波统计滤波半径滤波高斯滤波双边滤波随机采样一致滤波投影滤波 本文介绍了各种滤波算法的原理以及给出了相关实现方法 分割功能滤波 分割功能滤波是
  • K-d树和八叉树

    K d树 xff1a 解决KNN近邻问题查找效率 对于一个k维的超平面 xff0c 在KD树每一层的构建中都选择一个维度来进行划分 xff0c 将k维的数据空间分为两部分 xff0c 并使其尽量平衡 然后如此递归下去 也就是说假如我们要储存
  • C++突击面试

    目录 1 编译内存相关 1 1 C 43 43 程序编译过程 1 2 C 43 43 内存管理 1 3 栈和堆的区别 1 4 变量的区别 1 5 全局变量定义在头文件中有什么问题 xff1f 1 6 内存对齐 1 7 什么是内存泄露 1 8
  • 自动驾驶 规划综述

    Motion Planning What is motion planning 规划的本质是 xff1a 搜索问题 好 的规划就是一个目标函数 xff1a 求最优解 Motion Planning的三个领域 Robotic Fields 生
  • 数值最优化

    书 xff1a Numerical Optimization 文档 xff1a 安全验证 知乎 知乎 xff0c 中文互联网高质量的问答社区和创作者聚集的原创内容平台 xff0c 于 2011 年 1 月正式上线 xff0c 以 让人们更好
  • Qlist的用法

    QList是一种表示链表的模板类 QList是Qt的一种泛型容器类 它以链表方式存储一组值 xff0c 并能对这组数据进行快速索引 xff0c 还提供了快速插入和删除等操作 QList QLinkedList和QVector提供的操作极其相
  • QT QTableView 获取某行的所有信息

    1 信号槽 显示信息 connect ui gt tableView SIGNAL clicked QModelIndex this SLOT show list 2 获取当前行的行号 int row 61 ui gt tableView
  • ubuntu 开发环境配置记录

    目录 1 VIM及zsh配置记录2 Ubuntu 配置FTP服务器3 Ubuntu 配置SSH服务器4 Ubuntu 更换软件源 1 VIM及zsh配置记录 xvim tools rar 是别人已经搭建好的环境 xff0c 下文仅为对其配置
  • CMakeLists.txt 编辑语法学习

    已hello cpp为源文件 构建一个CMakeLists txt 1 2 3 cmake minimum required VERSION 2 8 project hello add executable hello hello cpp
  • CentOS yum有时出现“Could not retrieve mirrorlist ”的解决办法——resolv.conf的配置

    错误如下 xff1a root 64 localhost svn yum install gcc c 43 43 x86 64 已加载插件 xff1a fastestmirror langpacks Could span class hlj
  • JSP九大内置对象的作用和用法总结

    JSP全名为Java Server Pages xff0c 中文名叫java服务器页面 JSP中一共预先定义了9个这样的对象 xff0c 分别为 xff1a request response session application out
  • 搭建vscode+vue环境

    一 安装vue js 1 简介 Vue js xff08 读音 vju 类似于 view xff09 是一套构建用户界面的 渐进式框架 与其他重量级框架不同的是 xff0c Vue 采用自底向上增量开发的设计 Vue 的核心库只关注视图层
  • 2G、3G、4G网络制式上下行频率、速率比较

    本文介绍第二代 xff08 2G xff09 移动通信系统和第三代 xff08 3G xff09 移动通信系统常见制式基础知识 xff0c 主要有2G xff08 GSM900 EGSM DCS1800 PCS1800 xff09 3G x
  • 23种设计模式UML图

  • lvs负载均衡基础知识梳理

    https www cnblogs com kevingrace p 6137975 html
  • 微内核和宏内核

    https zhuanlan zhihu com p 53612117
  • ARMv7-A/R/M系列 --- 简介

    1 简介在ARM11之后的处理器家族 xff0c 改采Cortex命名 xff0c 并针对高 中 低阶分别划分为A R M三大处理器 像是高阶手机用的Coretex A系列 xff0c 或者是微控制器所使用的Coretex M系列 xff0
  • ubuntu-C++Demo处理数据的一些小知识点

  • enum类型变量的使用和赋值

    enum 是枚举型 union 是共用体 xff0c 成员共用一个变量缓冲区 现在基本已经不用了 枚举类型 在实际问题中 xff0c 有些变量的取值被限定在一个有限的范围内 例如 xff0c 一个星期内只有七天 xff0c 一年只有十二个月
  • 单总线和多总线的区别

    在计算机系统的硬件组成中 xff0c 总线 xff08 Bus xff09 是不可缺少的一部分 xff0c 将各大基本部件按照一定的方式链接起来就构成了计算机硬件系统 就目前来讲 xff0c 许多微型计算机的各大部件之间都是用总线链接起来的