为了在计算机内部保存程序,他们需要制作大容量的存储器。埃克特为此思考过多种实现方式。“这种程序可以临时储存在合金圆盘上或者永久储存在蚀刻圆盘上。”他在一份1944年1月的备忘录中写道。39 由于这种圆盘在当时的造价过于高昂,因此他建议ENIAC的下一代计算机采用另一种更为廉价的存储方式——声波延迟线。这种技术是由一位叫作威廉·肖克利(William Shockley,本书后面的章节将会对他进行详细的介绍)的工程师在贝尔实验室首先提出的,并在麻省理工学院研制成功。声波延迟线的工作原理是将数据以脉冲的形式保存在一个装满黏稠液体(例如水银)的存储管中。携带数据流的电信号会在存储管的其中一端被石英栓转换为脉冲,经过转换的脉冲会在存储管中来回波动一段时间。这些机械波可以利用电力维持任意长度的时间。当需要恢复数据的时候,石英栓会将机械波重新转换成电信号。每个存储管可以处理大约1 000个字节,但是它的成本仅为真空管电路的百分之一。埃克特和莫奇利在一份写于1944年夏天的备忘录中提到,ENIAC的后继机型应该采用多个这样的水银延迟线存储管,将数据和初步的程序信息以数字的形式保存。
不过在ENIAC建成的一年多之前,也就是在1944年年初的时候,莫奇利和埃克特已经认识到了一种简便的计算机重新编程方法:将程序保存在计算机的存储器当中,这样就不需要在每次编程的时候都重新输入程序。他们认为这将会是计算机发展历程的下一个重大进步。“存储程序”(stored-program)这种结构意味着计算机可以实现接近即时的任务切换,无须手动重新配置线缆和开关。38
莫奇利和埃克特从一开始就知道ENIAC可以采用更加简单的重新编程方式,但是他们没有尝试这么做,因为实现这项功能需要制作出更为复杂的硬件,这对于他们原来设想的用途来说是不必要的。“我们一直都没有尝试为自动设置问题做准备,”他们在1943年的ENIAC年度工作进度报告中写道,“这是为了保持硬件的简易性,而且ENIAC的主要预计用途是解决某一类型的问题。在更换求解的问题之前,它的每个配置都可以多次使用。”37