42 | 总线:计算机内部的高速公路
徐文浩
该思维导图由 AI 生成,仅供参考
专栏讲到现在,如果我再问你,计算机五大组成部分是什么,应该没有人不知道了吧?我们这一节要讲的内容,依然要围绕这五大部分,控制器、运算器、存储器、输入设备和输出设备。
CPU 所代表的控制器和运算器,要和存储器,也就是我们的主内存,以及输入和输出设备进行通信。那问题来了,CPU 从我们的键盘、鼠标接收输入信号,向显示器输出信号,这之间究竟是怎么通信的呢?换句话说,计算机是用什么样的方式来完成,CPU 和内存、以及外部输入输出设备的通信呢?
这个问题就是我们今天要讲的主题,也就是总线。之前很多同学留言问,我什么时候会讲一讲总线。那这一讲,你就要听仔细了。
降低复杂性:总线的设计思路来源
计算机里其实有很多不同的硬件设备,除了 CPU 和内存之外,我们还有大量的输入输出设备。可以说,你计算机上的每一个接口,键盘、鼠标、显示器、硬盘,乃至通过 USB 接口连接的各种外部设备,都对应了一个设备或者模块。
如果各个设备间的通信,都是互相之间单独进行的。如果我们有 个不同的设备,他们之间需要各自单独连接,那么系统复杂度就会变成 。每一个设备或者功能电路模块,都要和其他 个设备去通信。为了简化系统的复杂度,我们就引入了总线,把这个 的复杂度,变成一个 的复杂度。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
计算机总线:硬件通信的关键 计算机总线是系统内部各组件通信的关键通道,类似于公交车,降低了系统复杂度和耦合度。总线由数据线、地址线和控制线组成,传输数据、地址和控制信号。文章介绍了多总线架构和总线裁决,以及事件总线在软件开发中的应用。现代CPU体系结构中的双独立总线也得到了提及。此外,文章还提到了Intel的QPI技术,取代了传统的前端总线。总的来说,本文通过简洁清晰的语言,帮助读者快速了解了计算机总线的概念和相关技术特点。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出计算机组成原理》,新⼈⾸单¥68
《深入浅出计算机组成原理》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(20)
- 最新
- 精选
- 有铭说到总线,我就想起了后端系统演进中,从最初的巨型单体,到具备总线的SOA,到最近完全去掉总线的微服务系统。总线这个东西在计算机体系诞生了很多年了,它虽然降低了各系统通信的复杂度,但是现在看缺点也不少,最典型的就是带宽问题,某些硬件的性能提升速度,超过了总线性能的提升速度,比如典型的使用PCIE的某些硬件,而且现代计算机系统对即时响应提出了更高的要求,总线很明显制约了这个东西。我在想如果微服务这种成百上千的,相互之间调用复杂的结构在现代技术的加持下也被证明是有效的话;那么如果把计算机的每个硬件抽象成1个服务,计算机硬件之间为何不能像微服务那样直接调用呢。当然硬件架构的发展比软件架构是保守和谨慎的多了。可能我这个想法也不太现实
作者回复: 有铭同学, 你好,主要还是软件的修改比起硬件的修改的成本低太多了。而且其实现在大家的微服务,一般都是说一个公司内部的系统里。 如果要多家不同公司之间协作(硬件的显卡、内存、硬盘都来自不桶厂商),传统的企业软件还是有专门的ESB(Enterprise Service Bus)这样的厂商。
2019-08-02335 - -_-|||vue.js 里面有个 eventBus , Vue.prototype.$EventBus
作者回复: 没错,总线(Bus)本身就是来自现实生活中的抽象,无论在底层硬件还是抽象的软件中都有这个模式的应用。
2020-01-185 - 焰火文中的“系统总线与CPU的内存接口相连”这一句不是太懂,这个内存接口是指什么? ARM架构下的cpu芯片与外设相连,它会有一个存储器(里面会分成8个bank)来进行控制和管理IO设备。 浩哥说的这个内存接口与arm的存储器类似么?
作者回复: 焰火同学, 你好,说内存接口的确不太准确,这个我写得有点随意。更准确的说法是内存控制器 Memory Controller,通过这个来连接的总线。
2019-09-222 - 许童童老师你好,总线是否可以理解为硬件上的主板呢?
作者回复: 许童童同学, 你好,不能简单认为就是主板,但是的确就在主板上。主板上还有各种控制芯片,以及各种接口。
2019-08-022 - 小文同学想不到主板上的总线bus,还真的和Guava的bus异曲同工。这篇课程让人既熟悉,又陌生,还充满惊喜。最近在重读《深入理解计算机系统》,要回头读读老师的文章了!2020-05-0529
- 有米如何保证总线上数据的安全性呢?2020-03-1213
- gigglesun"CPU 所代表的控制器和运算器,要和存储器,也就是我们的主内存,以及输入和输出设备进行通信。"看七牛那个架构师讲的,计算机架构中的存储其实指的是寄存器,因为CPU的直接和寄存器打交道,而不是主内存,主内存是一种输入输出设备。2019-08-0713
- coldparkamd最新的epyc已经把pcle通道集成到cpu里面了,是不是总线的概念之后会慢慢弱化?2019-10-041
- 斐波那契总线事件设计模式怎么看有点像观察者模式2019-08-0211
- La Mala Hierba传统的总线架构通常采用共享总线的方式,这意味着多个设备共享同一根总线来进行数据传输。在这种情况下,所有设备必须通过相同的总线进行通信,这可能导致总线成为系统的瓶颈,特别是在处理大量数据时。 共享总线的一个问题是当多个设备尝试同时访问总线时,可能会发生冲突,导致性能下降。此外,随着处理器性能和系统复杂性的增加,共享总线的带宽可能成为限制系统性能的因素。 相比之下,快速通道互联提供的点对点的连接方式允许设备之间直接通信,而无需通过共享总线。这提高了系统的并行性和效率,并且能够更好地适应处理大量数据的要求。因此,Intel的QPI技术引入了点对点连接,以取代传统的共享总线架构,提供更高的带宽和更低的延迟。 而且,与网络协议类似,QPI是一种点对点的互联技术,它的协议定义包括物理层、链路层、路由层、传输层和协议层。这类似于计算机网络中的协议栈,例如 OSI 模型。 具体来说,QPI的层级结构可以与网络协议的层级结构进行类比: 物理层: 处理传输介质、电信号和物理连接的细节。 链路层: 管理点对点连接的建立和维护,类似于数据链路层的功能。 路由层: 处理在不同处理器之间路由数据的过程,类似于网络层的路由功能。 传输层: 负责在两个节点之间提供端到端的通信,确保数据的可靠性和正确性。在某些配置中,特别是双处理器平台上,可能不需要传输层。 协议层: 包括处理特定协议和通信细节的层级。 这种设计使得QPI能够适应不同的系统配置和需求。在某些情况下,比如双处理器平台上的简单两节点配置,可以省略传输层,使得路由层变得最小和最简单。 虽然QPI的设计与网络协议有一些相似之处,但它的主要目的是优化处理器之间的通信,而不是在广域网络上进行数据传输。因此,虽然听起来像网络协议,但它实际上是一种用于系统内部通信的硬件互联技术。2024-02-02归属地:西班牙
收起评论