计算机组成原理之总线设计

发布者:心动代码最新更新时间:2021-05-26 来源: eefocus关键字:总线  CPU  主存 手机看文章 扫描二维码
随时随地手机看文章

我们知道,计算机是由五大部件组成的:运算器、存储器、控制器、输入设备和输出设备,这个概念比较抽象,简单一点来说就是 CPU 包含运算器和控制器,存储器也就指的是内存,而输入输出设备分别指的是键盘和显示器。计算机这几个部件之间是需要共同协作完成信息处理的,那么,这几大部件之间如何进行通信呢?靠的是系统总线,这也是我们这篇文章讨论的重点。

 

认识总线

总线是将两个计算机或者多个功能单元连接在一起并允许它们相互交换数据的一种通路。总线还可以将计算机和外部设备连接在一起。总线是计算机系统非常重要的组成部分。关于需要知道下面这几个概念。

 

总线宽度:一般用并行数据通路的数量来定义总线的宽度,一般总线的宽度有 8 位、16 位、32 位、64 位,我们现在最常用的就是 64 位总线,一条 64 位宽的总线一次能够传输 64 位也就是 8 个字节信息。

 

带宽:带宽是衡量数据在总线上传输速率的一项指标。在保持数据传输速率不变的情况下提高并行通路的数量,可以提高总线的带宽。

 

延迟:延迟是从发出数据传输请求到实际数据传输的时间间隔。

 

    总线分类

    下面我们主要介绍两种总线,一种是片内总线,一种是系统总线,片内总线一般指的是 CPU 芯片内部、寄存器和寄存器之间、寄存器和算术单元 ALU 之间的连接。

     

    而系统总线主要是指 CPU 和内存、内存和 IO 设备、CPU 和 IO 设备等各大部件的信息传输介质。系统总线按照传输信息的不同主要分为下面三类。

     

    地址线

    数据线

    控制线

     

       

      下面我们就来具体了解一下这三类总线。

       

      地址总线

      地址总线主要用于传输源数据或者目的数据在主存单元中的地址。

       

      CPU 通过地址总线来指定存储单元的位置的,地址总线上能传送多少信息,CPU 就可以对多少个存储单元进行寻址。

       

       

      上图中 CPU 和内存中间信息交换通过了 10 条地址总线,每一条线能够传递的数据都是 0 或 1 ,所以上图一次 CPU 和内存传递的数据是 2 的十次方。

       

      所以,如果 CPU 有 N 条地址总线,那么可以说这个地址总线的宽度是 N 。这样 CPU 可以寻找 2 的 N 次方个内存单元。

       

      数据总线

      数据线顾名思义就是一次传递数据的位数,数据总线的位数就是数据总线宽度。

       

      CPU 与内存或其他部件之间的数据传送是由数据总线来完成的。数据总线的宽度决定了 CPU 和外界的数据传输速度。8 根数据总线可以一次传送一个 8 位二进制数据(即一个字节)。16 根数据总线一次可以传输两个字节,32 根数据总线可以一次传输四个字节。。。。。。

       

      控制总线

      控制总线是在总线上发出控制信号的传输线,常见的控制信号有:时钟(同步操作)、复位(初始化操作)、中断请求/响应、存储器读写、IO 读写等。

       

      CPU 与其他部件之间的控制是通过 控制总线 来完成的。有多少根控制总线,就意味着 CPU 提供了对外部器件的多少种控制。所以,控制总线的宽度决定了 CPU 对外部部件的控制能力。

       

      以运算器为主的连接方式

      在互联网的早期阶段,大多数总线采用的是分散连接(还有一种是总线连接,后面说),这种连接方式如下图所示

       

       

      从图上可以看到,运算器是这种分散连接的核心部分,这种连接方式会出现问题,当你的 CPU 正在忙于计算时,发生了 IO 与存储器的信息交换,此时你的运算器也就是 CPU 不得不停下来,这就导致了运算器运行的中断,严重影响了 CPU 的工作效率。

       

      你想,当你正在写文章的时候,你对象问你:你今天怎么不理我?所以你就得放下工作和她聊天;当你处理好她的情绪后继续写了 5 分钟文章,这时你的读者发表了长篇大论向你咨询问题,这时候你总不能不回复吧,所以你此时又要放下写文章,继而帮助他解决问题,由此可见,你写文章的效率会高吗?CPU 也是一样的道理。

       

      当然你也可以选择进入专注模式不回复,这就要视事情的优先级而定了,CPU 也是一样的。

       

      总线设计

      以存储器为主的连接方式

      后来,为了改善这种情况,出现了以存储器 为中心的结构,这种结构如下所示

       

       

      可以看到,这种连接方式以存储器为核心,图中主要涉及的部件功能如下

       

      输入设备将常用的信息转换为机器能够识别的数据形式,常见的有键盘和鼠标等

       

      存储器用于存放指令和数据

       

      运算器用来完成算数和逻辑运算,并将运算结果暂存在运算器内

       

      控制器用来完成指挥、控制程序和数据的输入、运行和处理运算结果

       

      输出设备的转换过程就是输入设备的逆过程,即将运算结果转换为人们可以熟知的形式

       

        由于运算器和控制器在电路结构上的关系非常紧密,所以通常将运算器和控制器统称为 CPU,把输入/输出设备统称为 IO设备,存储器就是内存。

         

        所以现代计算机的构成一般就是 CPU + 存储器 + 输入/输出设备。

         

        使用这种连接方式后,使 IO 与主存之间的信息交换可以不经过运算器,并且随着中断、DMA 技术的发展和成熟,使 CPU 效率得到很大的提高。

         

        但是使用这种方式,仍然不能解决 IO 设备和主机之间连接的灵活性,因为当我们想增加一种 IO 设备时,这种连接方式却无法处理,由此出现了总线的连接方式。

         

        以 CPU 为主的双总线连接方式

        总线采用的是多种 IO 部件共享的连接方式,总线实际上是由许多传输线组成,每条线可一位一位的传输二进制数据,比如 16 条传输线可以同时传输 16 位二进制代码。

         

        下面是一种以 CPU 为中心的双总线结构

         

         

        上图的这种连接方式就是一种总线的连接方式,它将各部件连接到一组公共传输线上。从图中可以体会出双总线的概念:其中一组总线连接 CPU 和内存,称为存储总线;另一组用来建立 CPU 和各 I/O 设备之间交换信息的通道,称为 IO 总线。

         

        这种连接方式也会出现问题,当多个部件与总线相连时,如果两个及以上的部件同时发送消息,那么势必会产生信号冲突,导致传输无效。所以,在同一时刻只允许有一个部件发送消息,但是可以有多个部件接收消息。

         

        单总线结构设计

        如果将 CPU 、主存和 IO 设备通过 IO 接口都挂到一组总线上,就形成了单总线的连接方式。

         

         

        这里思考一个问题,你觉得单总线的连接方式和以 CPU 为主的双总线的连接方式相比,最大的区别在哪里?

         

        以 CPU 为主的双总线连接方式中,CPU 和 IO 总线的交互需要 CPU 参与,CPU 和内存的交互也需要 CPU 参与,所以 CPU 无时无刻都在做功,这也得亏是 CPU ,换个其他人得累死。

         

        单总线连接连接方式,因为 CPU 、内存和 IO 都挂在同一个总线上,所以内存和 IO 交互不需要 CPU 的参与,这就是最大的改变。这种连接方式同样也会出现问题,因为只有一组总线,当各个部件都需要交换信息时,就会发生冲突,所以,在这种设计中,需要设定总线占用优先级,让各个组件按照优先级顺序来依次占用总线。这也是为什么编程语言中使用锁作为线程安全性的真正原因。

         

        还有一个问题是 CPU 没有和内存直接交互,大大影响工作效率。

         

        以存储器为中心的双总线结构

        还有一种连接方式是以存储器为中心的双总线结构,它的设计如下

         

         

        这种总线设计结构就很舒服了。它是在上面单总线结构的基础上,在 CPU 和内存之间增加了一条存储总线,在 IO 使用系统总线频率比较高的时候,CPU 和内存可以通过存储总线交互,这样既大大加快了系统工作效率,又降低了总线开销。还保留了内存和 IO 交互时不需要经过 CPU 的特点。

         

        后记

        这次尝试写了一下计算机组成原理相关的文章,到时候可以和计算机基础那本 PDF 合并一下,不知道计算机组成相关的大家感兴趣么,如果感兴趣,可以帮我点个赞哟~

        关键字:总线  CPU  主存 引用地址:计算机组成原理之总线设计

        上一篇:U3C智能云台摄像机评测
        下一篇:办公显示器或将成为华为的下一个发力点

        推荐阅读最新更新时间:2024-11-10 07:50

        CAN、I2S、I2C、SPI、SSP总线对比
          一、SPI总线说明   串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口,Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU。SPI 用于CPU与各种外围器件进行全双工、同步串行通讯。SPI可以同时发出和接收串行数据。它只需四条线就可以完成MCU与各种外围器件的通讯,这四条线是:串行时钟线(CSK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效从机选择线CS。这些外围器件可以是简单的TTL移位寄存器,复杂的LCD显示驱动器,A/D、D/A转换子系统或其他的MCU。当
        [嵌入式]
        HSA标准问世 CPU/GPU协同处理效能激增
            异质系统架构(HSA)第一项标准可望在今年内发布。HSA基金会创始会员之一的超微(AMD)日前透露,该会将于今年底前公布首项晶片异质运算标准--HSA统一记忆体架构(hUMA),加速中央处理器(CPU)和绘图处理器(GPU)内部快取(Cache)共用记忆体的设计架构成形,让两大异质晶片的协同运作能更加顺畅,进而提升系统效能。 超微软体与架构运算方案总监楚含进指出,hUMA系SoC设计的重大技术突破,将使晶片运算效能激增。 超微大中华区游戏、软体暨异质运算技术总监楚含进表示,行动运算装置处理器正面临平行处理效率不佳、异质核心资料互传缓慢、绘图运算负荷及整体功耗大增等诸多瓶颈;而一味扩充CPU、GPU核心数量的传统方式,提升效能
        [手机便携]
        51单片机IO口模拟串口通讯C源程
        51 IO口模拟串口通讯C源程 #include reg51.h sbit BT_SND =P1^0; sbit BT_REC =P1^1; #define MODE_QUICK #define F_TM F0 #define TIMER0_ENABLE TL0=TH0; TR0=1; #define TIMER0_DISABLE TR0=0; sbit ACC0= ACC^0; sbit ACC1= ACC^1; sbit ACC2= ACC^2; sbit ACC3= ACC^3; sbit ACC4= ACC^4; sbit ACC5= ACC^5; sbit ACC6= ACC^6; sbit ACC7= ACC^
        [单片机]
        总线技术基础学习
          如果一座只能容一个人来往的独木桥,两端的人都想要过桥,为了不拥挤、阻塞,那我们就得采取有效的办法。比如规定某段时间哪端的人过桥,另一端的人就等着该他过桥的时间段的到来,同时也还可以规定人多时要按先来后到或年龄长幼的次序过桥。在这不经意间,我们就体会到了现代电子信息数据通过总线按时分系统传输的最原始的思想。     现代网络信息的发展,特别是对于成本和空间而言,总线传输替代点对点传输是目前发展的热点,它的出现将给信息传输上提供了最大的方便和最有效的技术解决方案。假如一个微处理器与它的部件和外围设备都分别用点对点的线路来连接通讯,则所有连线将会错综复杂,甚至难以实现。     目前与我们生活习习相关的一系列活动都无不牵涉
        [嵌入式]
        PIC单片机车载仪表带CAN总线通讯源代码
        单片机源程序如下: ;****************************************************************************** ; * ; Filename: FB_ZHU_JI_PIC16LF1947.ASM * ; Date: 2012.01.6 * ; File Version: 1.0 * ;
        [单片机]
        发动机测试系统中can总线的应用
          引 言   现场的总线控制系统(FCS)将是新世纪自动控制系统发展的主流,是继DCS后新一代的控制系统。现场总线是综合自动化发展的需要,同时智能仪器仪表则为现场总线的出现奠定了基础。   CAN(Controller Area Network)是现场总线的一种,最早是德国Bosch公司在上世纪80年代推出的,主要应用于汽车内部检测以及控制系统间的数据通信。CAN总线通信协议充分考虑了工业现场环境,采用了ISO-OSI模型中的三层,即物理层,数据层和应用层。CAN总线规范已被国际标准化组织制订为国际标准ISO11898,并得到了多家著名半导体器件生产商的支持,推出了各种集成CAN协议的芯片产品。CAN总线目前已经被广泛应
        [嵌入式]
        基于CAN总线的汽车开关电器盒设计
        随着现代汽车工业技术的不断发展进步,车上安装的电子设备在不断增加,从而使汽车综合控制系统中,有大量控制信号需要进行实时交换.CAN 总线作为一种可靠的汽车计算机网络总线,已经被广泛地推广到汽车控制系统的各个应用领域.将CAN 总线技术应用到汽车开关电器盒中,可使得各汽车计算机控制单元能够通过CAN 总线得到开关电器盒中的工作数据,又能对开关电器盒的各个继电器进行精准的控制,从而达到减少汽车线束.提高通信可靠性.降低系统成本.避免系统功能重复.提高系统工作效率的目的. 1 汽车开关电器盒设计方案 本开关电器盒采用的是基于Microchip 公司生产的PIC18F45K80 芯片作为主芯片的设计方案.该芯片不仅具有一般单片机所具有的全
        [电源管理]
        基于CAN<font color='red'>总线</font>的汽车开关电器盒设计
        深度好文—RS-485现场总线的数字隔离选型考虑
        本文开篇先来稍作科普,众所周知,隔离可防止高电压对敏感电子组件造成损坏或对人造成伤害,另外它还可以透过大的地电位差消除通讯链路中的接地回路,来保持信号完整性。而经常用于恶劣环境下的工业和仪器设备应用中的RS-485总线规范符合真正多点通信网络的要求,根据该标准,单个(双线)总线上最多可以连接32个驱动器和32个接收器。部分RS-485收发器改变输入阻抗以允许最多8倍的节点连接至同一总线。 RS-485系统通常用于连接多个系统,电缆铺设距离很长(有时超过4000米),因此总线和所连接的各系统之间的隔离非常关键。今年越来越普及的数字隔离技术在RS-485电缆网络和与之连接的系统之间提供了重要的隔离,并防止过压瞬变,同时避免在RS-
        [电源管理]
        深度好文—RS-485现场<font color='red'>总线</font>的数字隔离选型考虑
        小广播
        最新嵌入式文章
        何立民专栏 单片机及嵌入式宝典

        北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

        换一换 更多 相关热搜器件

         
        EEWorld订阅号

         
        EEWorld服务号

         
        汽车开发圈

        电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved