首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >哈佛的建筑有冯·诺依曼的瓶颈吗?

哈佛的建筑有冯·诺依曼的瓶颈吗?
EN

Stack Overflow用户
提问于 2019-02-26 09:45:04
回答 2查看 1.2K关注 0票数 1

通过命名和这个文章,我觉得答案是否定的,但我不明白为什么。瓶颈在于从内存中获取数据的速度。你是否能同时获取指令似乎无关紧要。你不是还得等到数据出来吗?假设获取数据需要100个cpu周期,执行指令需要1次,那么提前执行1个周期的能力似乎并不是一个很大的改进。我在这里错过了什么?

上下文:我遇到了这个文章,它说幽灵错误不会因为投机性的执行而被修复。我认为投机性的执行,例如分支预测,对哈佛的架构也是有意义的。我说的对吗?我知道投机性的执行对冯·诺依曼的架构更有好处,但是有多少呢?有人能给出一个粗略的数字吗?因为冯·诺依曼的建筑,我们能在多大程度上说幽灵会继续存在?

EN

回答 2

Stack Overflow用户

发布于 2019-02-27 21:35:47

术语"von瓶颈“不仅仅是指哈佛对von架构。这是关于存储程序计算机的整个想法,这是约翰·冯·诺依曼发明的。

(根据上下文的不同,有些人可能会使用它来表示代码获取和数据访问之间的竞争;这确实加剧了没有拆分缓存的整个内存瓶颈。或者我混淆了术语和我在这个答案的其余部分中讨论的处理器的更普遍的内存瓶颈不应该被称为von瓶颈,尽管这是一个真实的东西。参见现代微处理器90分钟指南!中的内存墙部分)

von瓶颈同样适用于两种存储程序计算机.甚至是将数据保存在RAM中的固定功能(而不是存储程序)处理器。(没有可编程着色器的旧GPU基本上是固定功能,但仍有访问数据的内存瓶颈)。

通常,当循环遍历大数组或基于指针的数据结构(如链接列表)时,这是最相关的,因此代码适合于指令缓存,而且在数据访问过程中也不必被获取。(计算机太老,甚至连缓存都没有,我不想争论慢的语义,即使存在时间和/或空间局部性,对它们来说也是冯·诺依曼的瓶颈。)

https://whatis.techtarget.com/definition/von-Neumann-bottleneck指出,缓存和预取是我们解决von瓶颈的一部分,更快/更宽的总线使瓶颈更大。但是只有内存中处理器/ 随机存取存储器之类的东西才真正解决了它,即一个ALU直接连接到内存单元,所以计算和存储之间没有中心瓶颈,计算容量与存储大小成正比。但是具有CPU和独立RAM的von在大多数情况下工作得很好,以至于它不会很快消失(考虑到大缓存和智能硬件预取,以及无序执行和/或SMT来隐藏内存延迟)。

John是早期计算领域的先驱,他的名字被附加在两个不同的概念中也就不足为奇了。

哈佛与冯·诺依曼的问题是程序内存是否位于单独的地址空间(以及单独的总线);这是存储程序计算机的实现细节。

谱:是的,只是关于数据访问和分支预测,而不是将代码作为数据访问,反之亦然。如果您首先可以在哈佛架构中的程序内存中获得幽灵攻击(例如,通过运行一个正常的程序来进行系统调用),那么它可以运行在von上。

我知道投机性的执行对冯·诺依曼的架构更有好处,但是有多少呢?

什么?不是的。这里一点关系都没有。当然,所有高性能的现代CPU都是von。(使用拆分的L1i / L1d缓存,但程序和数据内存不分离,共享相同的地址空间和物理存储。拆分L1缓存通常被称为“修改的哈佛”,这在x86以外的ISAs上有一些意义,因为L1i与数据缓存不一致,所以在以代码的形式执行新存储的字节之前,需要特殊的刷新指令。x86有连贯的指令缓存,所以它是非常详细的实现。)

有些嵌入式CPU是真正的哈佛大学,程序内存连接到Flash,数据地址空间映射到RAM。但是通常这些CPU的性能都很低。流水线,但顺序,只使用分支预测的指令预取.

但是,如果您确实构建了一个具有完全独立程序和数据存储器的非常高性能的CPU (因此,从一个复制到另一个CPU就必须经过CPU),那么与现代高性能CPU基本上没有任何不同。L1i缓存丢失的情况很少见,它们是否与数据访问竞争并不是很重要。

不过,我想您会一直拆分缓存;通常,现代CPU都统一了L2和L3缓存,因此,或多或少地取决于工作负载(代码大小是否大),L2和L3最终可能会保存代码。也许您仍然会使用带有一个额外位的统一缓存来区分代码地址和数据地址,从而允许您的大型外部缓存在两个地址空间之间进行竞争性共享。

票数 4
EN

Stack Overflow用户

发布于 2019-07-19 16:00:25

哈佛建筑是一种独立的指令和数据存储器,它缓解了von的瓶颈。Backus的原始瓶颈的定义解决了一个比指令或数据获取更普遍的问题,并讨论了CPU/内存接口。在钱的报价 Backus之前的一段中谈到了查看这辆公共汽车的实际流量,

具有讽刺意味的是,很大一部分通信量并不是有用的数据,而仅仅是由名称组成的数据名称,以及仅用于计算这些名称的操作和数据。

在哈佛的体系结构中,有一个分离的I/D总线,这是不会改变的。它仍将主要由名字组成。

所以答案是很难拒绝。哈佛架构缓解了冯·诺依曼( von Neumann )的瓶颈,但并没有解决这个问题。坦率地说,这是一个更快的冯·诺依曼瓶颈。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54882556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档