如果电荷的速度没有改变,计算机又会变得更快吗?


48

人人都知道,自发明以来,计算速度已大大提高,而且看来还将继续。但是有一件事让我感到困惑:如果您今天在某种材料上流过电流,它的传播速度与50年前使用相同的材​​料一样。

考虑到这一点,计算机如何变得更快?处理器设计的哪些主要领域赋予了如此惊人的速度?

我认为可能是以下一项或多项:

  • 较小的处理器(电流流动的距离较小,但在我看来,您在这里只能获得少量收益)。
  • 更好的材料

4
这是一个很好的问题。当然,材料本身并不那么重要-在过去的100年中,汽车已经变得越来越快,但是汽油仍然是相同的汽油(或多或少),只有发动机变得更加高效。最初的答案可以在这里找到,但是我希望更多详细的答案会在后面。
Ran G.

大小是一个大问题。但是afaik我们已经达到(或接近)芯片设计中的物理障碍。(我不是这里的专家,其他人会对此有所了解)。当然,处理器的大小不是唯一的参数。
A.Schulz 2015年

CPU的节拍频率受所用材料中电子的速度限制,但其他因素主导了它。
拉斐尔

因为一开始它们并没有达到最佳速度,但现在仍然不是。光速不是决定速率的步骤。
user207421'9

Answers:


54

如果您今天在某种材料上流过电流,则其传播速度与50年前使用相同材料时的速度相同。

考虑到这一点,计算机如何变得更快?处理器设计的哪些主要领域赋予了如此惊人的速度?

您会得出错误的结论,因为您的最初假设是错误的:您认为CPU速度等于CPU中电子的速度。

实际上,CPU是一些同步数字逻辑。其速度的极限是逻辑方程的输出应在一个时钟周期内保持稳定。使用晶体管实现的逻辑,限制主要与使晶体管切换所需的时间有关。通过减小它们的通道大小,我们可以使它们切换得更快。这是50年来提高CPU最大频率的主要原因。今天,我们还修改了晶体管的形状以提高其开关速度,但是据我所知,今天只有英特尔,Global Foundries和台积电能够制造FinFET。

但是,还有其他一些方法可以提高CPU的最大时钟速度:如果将逻辑方程式分解为几个较小的方程式,则可以使每一步更快,并且具有更高的时钟速度。您还需要更多的时钟周期来执行相同的操作,但是,通过使用流水线技术,可以使每秒的指令速率遵循您的时钟速率。

如今,电子的速度已成为极限:在10GHz时,电信号的传播距离不能超过3cm。这大约是当前处理器的大小。为避免此问题,芯片中可能有几个独立的同步域,从而减少了信号传播的限制。但这只是一个限制因素,其中包括晶体管开关速度,散热,EMC以及其他因素(但我不在硅铸造行业)。


这是好信息。我以前从未考虑过时钟速度的上限。
尼克

3
10GHz时的3厘米很乐观。电线中的电子往往比真空中的光子很多。
8bittree

6
@ 8bittree:电子的速度无关紧要,不是吗?重要的是信号速度,该速度要快得多。
哈里·约翰斯顿

1
@HarryJohnston Hmm ... 根据Wikipedia看来您是正确的。但是信号本身仍然比光慢。而10GHz的3厘米是基于真空中的光线
8bittree

1
除了较小的晶体管更快之外,您还可以在芯片上添加更多。电路存在时间/空间折衷,因此更多的晶体管意味着更快的电路。即。您可以只用几十个晶体管制成一个32位加法器,但是要计算一次加法会花费很多时钟信号。最新的Intel CPU可以在一个时钟周期内完成,我想这需要100,000个晶体管。
BlueRaja-Danny Pflughoeft 2015年

15

有很多复杂的变量会影响总体CPU速度,但主要的变量是时钟速度,该速度在2000年代中期增加,但由于物理限制而趋于平坦。在此期间,每个芯片的功耗也增加了,以弥补芯片的丢失/泄漏。CPU芯片变得太热,冷却技术变得越来越重要,并且无法施加更多的功率(实际上不会熔化它们!)。

Extremetech.com进行的一项不错的调查指出,摩尔定律实际上主要是由Dennard标度推动的。后者在2000年代中期崩溃。芯片“速度”(其中“速度”是作为整体代码执行时间而不仅仅是时钟速度来衡量)中还有许多其他设计因素/改进,它们往往掩盖了硬件功能的拐点,例如缓存,CPU并行性/多核,分支预测等),并添加了较小的栅极宽度(因此,每个芯片的栅极数量更多,以实现其他功能)。栅极宽度也趋于停止减小,或者至少每一代减小得不太快。

为什么这些限制趋势不是很清楚?对这些趋势了解最多的某些实体“损失最大”,而实际上很少公开。例如,市值数十亿美元的英特尔不太可能发布专有内部数据,这些数据会指出未来性能的极限或下降。

即将出现的新可能性可能会导致全新的趋势(但其中有些涉及几乎完全不同的技术/制造技术),包括光子芯片,将芯片分层放置的3-D芯片,量子计算,纳米技术(例如纳米管)晶体管等



我一直希望的一件事是开发操作系统和语言,以支持内核组的概念,每个组具有统一的内存系统,所有内核也都可以访问公用内存系统。一段代码应该有可能说“我想产生一个线程,该线程始终与我看到的内存完全相同”,并让系统确保所有应该看到相同内存的线程都在该线程上运行。相同的核心。如果有这样的保证,某些算法可以变得更加高效,但是在许多系统上,唯一的...
supercat 2015年

...实现这一目标的方法是让应用程序选择CPU内核,并且不允许线程在其他任何线程上运行,这种方法确实非常可怕。
超级猫

2
在过去的十年中,时钟速度并未显着提高。添加内核,在一条指令中执行一组指令等,以减少其他地方的瓶颈,例如。内存带宽都是现代CPU“速度”的主要贡献者。
JamesRyan 2015年

5

委托其他处理器

另一个考虑(除了其他好的答案)是将任务委派给其他处理器。在早期的计算时代,只有一个处理器。对于图形,该计算与同一CPU中的其他计算共享。现在,我们有用于图形处理的单独处理器。

多核

许多现代处理器在同一块硅片中具有多个内核。因为它们共享相同的硅片,所以减慢了将芯片外的另一个核心/处理器的运行速度对它们的影响不大。示例:图形处理器。

内存和地址扩展

早期的8位微处理器的寻址范围比当今的32位和64位处理器小。现代处理器具有更大的内存范围,这意味着可以在内存中执行更多计算,而不必访问外部存储。

这也适用于片上存储器。较大的地址空间可在靠近中央核的地方提供较大的存储器,同时仍在硅片外部保留较大的地址空间。

管道和缓存

随着存储器的价格越来越便宜,现代计算机现在正在实现更复杂的数据和指令管道以及数据和指令缓存。通过减少从较慢的内存(芯片外部)到内部缓存的取数据的速度,可以加快执行速度。一些处理器具有for在其指令高速缓存中包含循环的能力。

摘要

当今的计算机速度要快得多,这不仅是由于晶体管和硅技术的进步,还归功于将任务委派给其他处理器/内核。内存变得更快,更便宜,使处理器可以在CPU附近拥有大量内存。地址范围允许更多的内存,这意味着更少的外部存储器访问。较大的寄存器大小允许每个周期读取更多数据(32位系统为4个字节,8位系统为1个字节)。多核允许并行操作,而不是序列化它们。


4

几乎全部计算机速度的进步都来自以下领域之一:

较小的晶体管

使晶体管变小有两件事:

  1. 它们在物理上靠得更近,因此电信号从源传播到目的地所花费的时间更短。因此,尽管电信号的传播速度不超过50年前,但如今它们的传播距离通常更短
  2. 芯片上可以包含更多的晶体管,这意味着可以同时完成更多的“工作”。添加的晶体管越多,寻找有用的工作就越困难,但是使用了许多巧妙的技巧(请参阅下文)。

每个指令更多的“有用的工作”

例如,某些处理器缺少指令以乘或除整数。而是必须使用慢速的软件例程来执行此任务。添加乘法和除法指令可大大加快处理速度。添加浮点指令可以加快需要浮点数的软件的速度。

每个指令执行更多“有用的工作”的重要方式是增加字长。可以对32位数字执行操作的CPU与16位或8位CPU相比,执行同一任务所需的指令通常要少得多。

某些处理器支持一次执行多项操作的指令,尤其是对多个数据项(SIMD)执行相同操作的指令

每个周期更多指令

“时钟周期”是处理器从当前状态进入下一个状态的方式。从某种意义上讲,它是处理器一次可以完成的最小工作单元。但是,一条特定指令占用的时钟周期数取决于处理器的设计。

随着流水线处理器的出现,单独的指令“重叠”成为可能,即一条指令将在前一条指令完成之前开始。但是,某些指令会使下一条指令无效,直到下一条指令被部分执行后才会知道,因此事情可能变得复杂。(流水线处理器包括确保一切正常的逻辑,但性能特征更为复杂。)

超标量处理器将其带入了一个新的高度,从字面上允许两个指令同时执行,并且无序执行则将其进一步执行了一步,从而允许乱序执行指令。这些功能需要对指令流进行分析,确定哪些指令不会相互冲突。

尽管还有其他技巧(例如分支预测推测执行),但更重要的是总体情况:

  • 每条指令需要一定数量的时钟周期才能完成(不一定恒定)
  • 但是可以同时进行多个指令
  • 因此每个周期有一个可测量的指令 ”,对于高端处理器,该 > 1
  • 但这在很大程度上取决于工作量

每秒更多的周期

换句话说,时钟速度更高。时钟速度的增加不仅增加了产生的热量,而且还需要更加严格的芯片设计,因为电路稳定的时间限制更短。直到2000年代达到一些实际极限时,我们才从这一里程中获得了很多成就。

数据在正确的时间正确的位置

尽管由于晶体管的缩小,CPU中的组件之间的距离越来越近,但CPU和RAM的距离仍然相差5-10厘米。如果一条指令需要RAM中的某些内容,那么该指令将不需要5或6个周期即可完成,大约需要200个周期。这是冯·诺依曼瓶颈问题。

我们对此的主要武器是缓存。最近访问的数据更有可能再次被访问,因此它们被保存在CPU芯片内的特殊内存(称为高速缓存)中,从而使访问速度更快。

但是,其他技术(例如流水线分支预测)可以帮助处理器在等待数据到达的同时做一些有用的工作,并预测很快将需要哪些数据。

多个和/或专用处理器

为单个处理器编写软件要比为多个处理器编写软件容易得多。但是,有时性能/成本/功耗方面的好处使其值得。

同样,某些处理器特别适合于某些任务。例如,GPU是专门为渲染2D和3D图形和效果所需的计算而设计的。

多核处理器本质上是单个芯片上的多个处理器。


3

当计算机每单位时间可以执行更多计算时,它们被视为更快。每次计算的执行速度可能不会比以前快,但是有更多的计算正在执行。一个很好的类比是跑步者采取的步骤数。如果跑步者按照摩尔定律行事,则该跑步者每两年可以采取两倍的步伐。从本质上讲,跑步者将在两年前以相同的时间覆盖两倍的距离。距离除以时间等于速度。2 X距离等于2 X速度。


3

计算机/ CPU的处理能力实际上是电能传输的速度,而是可以打开和关闭的速度。在电流流动和不流动之间切换的速度越快,您在CPU内处理或沿线路传输的信息就越多。


2

对于PC中使用的典型处理器,十多年来,散热一直是限制因素,PC中的风冷处理器被限制在约4 GHz。水冷将其提高到大约5 ghz,而氮气冷却已被用于将时钟频率提高到6 ghz至6.5 ghz。

时钟速率基本上是电压与电路逻辑大小(切换状态改变需要多长时间)的函数。电压越高或电路逻辑越小,速率越快,但这会带来散热问题,因为密度通常随电路逻辑尺寸的减小而增加。由于密度高,没有足够的空间容纳导热材料来散热。减小密度增加了成本,并且还由于电路长度的增加而增加了传播延迟。

在过去几年中,CPU的速度没有这么快,当前的Intel i7 4790K(4.0 GHz,4.4 GHz涡轮增压)并不比第二代Intel i7 2700K(3.5 GHz,3.9 GHz涡轮增压)快很多。比其更快的时钟速率(快约14.3%)。另一方面,由于3d图形可以利用并行操作,因此在过去4或5年中,视频卡的性能提高了约3倍,其中一些具有3,000多个子核心。


2

尽管已经给出的答案是好的,但它们似乎都非常复杂!

快速的“ TLDR”答案是“逻辑门的数量”和“这些逻辑门能发射多快”。考虑一下逻辑门,例如1和0。这仅仅是一个晶体管/真空管/无论打开还是关闭。1打开0关闭。

电流不会移动得更快或更慢,但是您可以将更多的1和0填充到芯片上,因为1和0本身较小。您可以使它们随着时间推移而翻转得更快。这会使答案更简单吗?


2

到目前为止,最大的两个因素是晶体管的收缩程度达到了可笑的程度,因此我们现在拥有的智能手机中的晶体管数量已超过10亿,而且将晶体管从一种状态切换到另一种状态的速度变得更快。更快的切换直接转化为更高的速度。数量更多的晶体管间接地提高了速度,这是因为它促进了许多其他改进:我们拥有缓存,因为我们拥有更多的晶体管。我们拥有更多和更大的寄存器,因为我们拥有更多的晶体管。我们有矢量指令,因为我们有更多的晶体管。我们有双核,四核或十核处理器,因为我们有更多的晶体管。

由于设计更好,我们可以在较小程度上改善速度。例如,乘法器不仅因为我们拥有更多的晶体管而更快,而且因为我们使用了更好的方法。分支预测已得到改进,不仅仅是拥有更多可用晶体管。但总的来说,与十亿个晶体管的强力相比,这是一个很小的影响。

(第一台Mac中的处理器被称为Motorola 68000处理器,因为它具有68000个晶体管。新的iPad大约是20,000倍)。


0

我是一名机械工程师,所以我不熟悉这会对处理器速度产生多大的影响,也不管它是否已成为限制因素,但它背后的物理原理是合理的。电路的电感和电容将影响数字电压信号的上升和下降速度-从而影响开关速度。理想情况下,开关信号应该是方波。实际上,它们会稍微变形并在边缘倾斜。信号必须变高且变高的时间长到足以在下一个时钟周期之前读取。本质上,信号波在顶部需要一个“平坦点”。如果切换速度太快,您会收到更多尖锐的波信号。你们中那些更熟悉数字信号的人可以根据需要进行澄清,但是这个想法是正确的。


2
欢迎!据我所知,您所说的一切都是真实的。但是我看不出它如何回答多年来计算机如何能够变得更快的问题。
David Richerby 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.