5.0 算术运算的原理

5.0 算术运算的原理 #

5.1 #

现在让我们考虑第一个特定部件的某些功能: 中心算术部件CA。

这是4.3意义上的元件,使用电流阀或闸门的真空管,是或者至少它近似于一个全有或全无的装置: 根据栅极偏置是高于还是低于截止电流,它就会通过电流。 的确,它需要在其所有电极上保持一定的电势才能保持任何一种状态,但是真空管的组合具有完美的平衡态: 当适当的外界刺激(电脉冲)将组合从一种平衡状态转移到另一种平衡状态时,组合可以无限期地存在于其中的几种状态中。 这些就是所谓的 触发电路,基本电路具有两个平衡态并包含两个三极管或一个五极管。 而具有两个以上平衡态的触发电路会不成比例地更复杂。

因此,无论管是用作门还是用作触发器,全有或全无,两个平衡态,排列组合是最简单的。 由于这些真空管状排列是通过数字来处理数字,因此使用二个数字的算术系统是很自然的。 所以建议要使用二进制系统。

4.2-4.3中讨论的人类神经元的类似物同样是全有或全无的元素。 看来,它们对于真空管系统的所有初步,定向考虑都是非常有用的 (参见 {6.1,6.2})。 因此,令人满意的是,这里要处理的自然算术系统也是二进制的。

5.2 #

一致使用二进制系统也可能大大简化乘法和除法的操作。 具体地说,它取消了十进制乘法表,采用了另一种双重程序,即先通过加法建立每个乘数或商数位的倍数,然后通过第二次加法或减法序列组合这些倍数(根据位置值)。 换句话说: 二进制算术的逻辑结构比其他任何逻辑结构都更简单,更简单,尤其相比十进制逻辑结构。

当然,必须记住,人类直接使用的数字材料很可能不得不用十进制来表示。 因此,R中使用的符号应该是十进制的。 但是,在CA中以及在进入中央控制CC的任何数值材料中都最好严格使用二进制程序。 因此,M应该只存储二进制材料。

这就需要将十进制-二进制和二进制-十进制转换功能合并到I和O中。 由于这些转换需要大量的算术操作,因此使用CA是最经济的,同时用于协调目的CC,与I和O相关。 然而,CA的使用意味着在两个转换中使用的所有算术都必须严格是二进制的。 有关详细信息,请参见。{11.4}。

5.3 #

在这一点上,出现了另一个原则问题。 在元件不是真空管的所有现有装置中,元件的反应时间足够长,以使在加法、减法以及在乘法和除法中更多的步骤的一定的伸缩性是理想的。 以一个特定的情况为例,考虑二进制乘法。 对于许多微分方程问题,一个合理的精度是通过进位8位有效小数位,即通过保持相对舍入误差在 \(10^{-8}\) 以下。 这对应于在二进制中 \(10^{-27}\) ,即携带27位有效的二进制数字。 因此,乘法包括将27个乘法器数字中的每个数字与27个乘法器数字中的每个数字配对,并相应地形成乘积数字0和1,然后对其进行定位和组合。 这些本质上是 \(27^{2} = 729\) 步,并且收集和组合的操作可能会增加一倍。 因此,1000-1500步基本上是正确的。

很自然地观察到,在十进制系统中,所得的步骤数量要少得多: \(8^{2} = 64\) 步,再来两倍,也就是大约100步。 然而,这样的少是以使用乘法表或以其他方式增加或使设备复杂化的代价获得的。 反之也可以通过更直接的二进制手段来缩短程序,这将在不久的将来得到考虑。 因此,似乎没有必要单独讨论十进制程序。

5.4 #

正如前面指出的,每次乘法连续进行1000-1500步会使任何非真空管设备的速度慢得令人无法接受。 所有这些设备,除了一些最新的特殊继电器,具有超过10毫秒的反应时间,并且这些最新的继电器 (可能具有低至5毫秒的反应时间) 无法工作很长时间。 这将使每个(8位十进制数字)乘法的最短时间为10-15秒,而对于快速的现代台式计算机来说,这一时间是10秒,对于标准的IBM乘法器来说是6秒。 (对于这些持续时间以及可能的真空管设备持续时间的重要性,当应用于典型问题时,请参见 {}。)

避免这些持续长时间的合乎逻辑的程序包括缩放操作,即同时进行尽可能多的操作。 运行的复杂性甚至阻止了诸如加法或减法之类的简单操作。 在除法中,除非它左边的所有数字都已知,一次数字计算甚至不能开始,。 尽管如此,仍有可能进行大量的同时运行: 加法或减法可以一次组合所有对对应的数字,所有首次进位数字可以在下一步一起应用等。 在乘法中,可以同时形成和定位形式 (乘数) × (乘数数字) 的所有部分乘积 — 在二进制系统中,这样的部分乘积为零或被乘数,因此这只是定位问题。 在加法和乘法中,都可以使用上述加法和减法的加速形式。 此外,在乘法中,通过将第一对与第二对、第三对等同时相加,可以快速求和部分乘积; 然后将第一对和与第二对、第三对同时相加,依此类推,直到收集到所有项。 (由于 \(27 ≤ 2^{5}\) ,这允许在5次加法中收集27个部分和 — 假设27 二进制数字乘法器。 该方案是由H.Aiken提出。)

这种加速、缩放的程序正在所有现有的设备中使用。 (如5.3末尾所述,使用十进制系统 (带有或不带有其他缩放技巧) 也属于这种类型。 它实际上比纯二进制过程的效率要低一些。 5.1-5.2的论点将反对在这里考虑使用缩放技巧。) 然而,它们仅以与必要设备相乘的速度(即设备中的元件数量)来节省时间: 显然,如果通过一次系统地进行两次相加来将持续时间减半,则将需要双倍添加设备 (即使假设它可以在没有不成比例的控制设施和完全有效的情况下使用),等等。

通过增加设备来获得时间的这种方式在非真空管元件装置中是完全合理的,在非真空管元件装置中,获得时间至关重要,并且在处理包含许多元件的相关装置方面具有广泛的工程经验。 根据所有可用的经验,按照这些路线建造的真正通用的自动数字计算系统必须包含10,000多个元件。

5.5 #

另一方面,对于真空管元件装置,相反的程序似乎更有希望。

正如4.3中指出的那样,一个不太复杂的真空管装置的反应时间可以缩短到1微秒。 现在以这种速度,即使在5.3中乘法产生的非可操纵持续时间也是可以接受的: 1000-1500步的反应时间为1-1.5毫秒,这比任何可以想象的非真空管设备都要快得多,以至于它实际上产生了保持设备平衡的严重问题,即保持设备输入和输出端之外的必要的人工监督与其操作同步。 (有关此详细信息,请参见 {}。)

关于其他算术运算,可以这样说:加法和减法显然比乘法快得多。 基于27个二进制数字 (参见5.3),并且考虑到,每个数字最多应该采取两次27个步骤,即大约30-50个步骤或反应时间。 这相当于0.03-0.05毫秒。 在这种方案中,除法没有尝试乘法和缩放,并且正在使用二进制系统,其步数与乘法大致相同。(参见 {7.7,8.3})。 开平方根通常不会比除法需要更长时间,在这个方案中也是如此。

5.6 #

因此,加速这些算术运算似乎没有必要 — 至少直到我们已经完全和实际地熟悉了这种非常高速设备的使用,并且已正确地理解并开始利用它们打开的复杂问题的数值处理的全新可能性时。 此外,在这种情况下,以增加所需元件数量为代价的缩放加速方法是否能实现其目的似乎值得怀疑:真空管设备越复杂 — 即所需元件数量越多 — 错误率就必然越大。 因此,在该方向上的任何增加也将需要比上述1微秒的反应时间更长的反应时间。 这个因素的精确定量效应很难用一般的方法来估计 — 但对于真空管元件来说,它们肯定比电报继电器元件重要得多。

因此,以下观点似乎值得考虑: 设备应尽可能简单,即包含尽可能少的元件。 如果这会导致所需元件的数量显著增加的话, 通过从不同时执行两个操作来回避。 结果将是该装置会更可靠地工作,并且真空管可以被驱动到比其他方式更短的反应时间。

5.7 #

当然,将这一原理的应用推广到什么程度,将取决于可用的真空管元件的实际物理特性。 可能的情况是,最优不是在完全应用该原理,而会发现一些折衷是最优的。 然而,这将始终取决于真空管技术的当前状态,显然,在这种情况下能够可靠运行的真空管速度越快,就越有理由不妥协地应用这一原则。 看来,在目前的技术可能性下,最佳方案几乎就是这种毫不妥协的解决方案。

还值得强调的是,到目前为止,所有关于高速数字计算设备的想法都倾向于相反的方向: 通过缩放过程来加速,代价是增加所需元件的数量。 因此,尽可能尝试想出完全相反的观点似乎更有启发意义: 要绝对避免上述过程,即一意孤行的执行5.6章节制定的原则。

因此,我们将朝着这个方向前进。