【问题标题】:Does Computer always calculate two numbers at a time?计算机总是一次计算两个数字吗?
【发布时间】:2019-09-03 21:38:04
【问题描述】:

我正在阅读 RG Dromey 的《如何通过计算机解决问题》一书。在那本书名为一组数字的总和的内容中描述了,计算机的算术单元通过一次仅添加两个数字来工作。例如, 如果我们的任务是添加 3 个数字并将其分配给一个名为 sum 的变量 然后计算机将添加前两个数字,然后将其分配给变量 sum 之后,它将与其他数字一起计算 sum 的最终值。就像,

sum = n1+n2+n3 
sum = n1+n2 +(hold)
sum = sum+n3 // here sum will be computed from the second step

通过在这里发布这个主题,我只想知道计算机是否以这种方式执行所有算术计算任务(减法,乘法,除法)?或者有一些现代技术可以提供做一次计算多个数字?

【问题讨论】:

  • 现代处理器也提供SIMD指令。

标签: algorithm pseudocode calculation


【解决方案1】:

您的问题的答案是“这取决于您使用的计算机类型。”

从历史上看,许多流行的处理器完全按照上述方式工作。处理器具有专门对单个数字或数字对进行算术运算的硬件。这种方法的优点是处理器设计简单——您只需要设计将成对的数字作为输入的电路,而不是可以接受大量数字的更大电路。另外,任何两个以上数字的总和都可以分解为一系列恰好两个数字的加法。由于电路更简单,因此在许多情况下,要么生产处理器更便宜,要么处理器运行得更快。

这种方法的缺点是您必须向处理器发出多个加法运算才能让处理器添加多个数字的列表。结果,一些处理器开始引入指令,允许一次将两个以上的值相加、相乘等。这些操作通常需要进行某种设置才能一次将所有值全部加载到处理器中,这意味着它们通常仅用于同时处理大量数字的情况。

计算机设计的其他发展也允许计算机同时处理多个数字。例如,多核处理器可以同时进行多个不同的并行计算。可能是每个核心一次只能添加一对数字,或者每个核心可以同时对多个数字进行操作。显卡以不同的方式工作,拥有大量的内核,它们都彼此同步执行。

因此,总的来说,我认为所提出的声明并非 100% 正确,但对于大多数计算机在大多数情况下的工作方式来说也不是一个糟糕的近似值。这有助于学习如何思考计算机如何处理数据,即使它不是字面上的事实。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多