关于计算机原理:计算机组成原理之总线设计

43次阅读

共计 2950 个字符,预计需要花费 8 分钟才能阅读完成。

文章起源 cxuan 的本人公众号:计算机组成原理之总线设计

公众号很多硬核文章,跪求大家关注~~~

上面开始正题。

咱们晓得,计算机是由五大部件组成的:运算器、存储器、控制器、输出设施和输出设备 ,这个概念比拟形象,简略一点来说就是 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,全网流传超过 10w+,微信搜寻「程序员 cxuan」关注公众号后,在后盾回复 cxuan,支付全副 PDF,这些 PDF 如下

六本 PDF 链接

正文完
 0