一个技术问题,早期的内存,汞延迟线是怎么实现的

北朝旧贴 | wizardtong | 8/15/2020 | 共 1691 字 | 编辑本页

wizardtong 于 2018-9-26 23:29:38 发表了:

本帖最后由 wizardtong 于 2018-9-26 23:37 编辑

刚刚百度了一下,说是用汞延迟线,百科上是这么说的

将一块石头掷入水中,形成波浪,波头经过一段时间才能传播到远方某处,水银延迟线的工作原理就是这样。1951 年 3 月,由 ENIAC 的主要设计者莫齐利和埃克特设计的第一台通用自动计算机 UNIVAC-1 使用了水银延迟线存储装置。UNIVAC-1 使用的水银延迟线是一根直径 10mm、长 150cm 的管子,内部充满水银,两端各有一个转换器分别进行电-声转换和声-电转换,这样,脉冲信号从管子的一端进入,转换成超声波,960ms 后超声波到达管子的另一端,然后再转换成电信号输出,不过,要实现存储功能,还需要一些额外的电路:经调制的脉冲信号从管子的一端进入,960ms 后从管子的另一端输出,由变换器接收后,经检测、放大、整形和再生,重新反馈到发送端。一个延迟线电路称作一个通道(channel),每个通道可存储 10 个 91 位的字,差不多 1000 个脉冲,UNIVAC 系统中共有 100 个这样的通道。为了让存储系统稳定工作,水银的温度需要保持在 40℃ 左右,因此要将水银管置于一个类似混凝土搅拌机的容器中,容器中设置有加热器用来加热水银管。

我不太理解的是,一个信号可以在管子中存在 960ms,并且在 960ms 后才能读取这个信号,那么如果指令需要读取这个信号中某一位的时候 960ms 已经过了或者过了一部分怎么办,还是说这个信号无限在管子中循环,只有接到指令才做修改,并且一个机器周期刚好小于并接近 960ms。如果是这样的话则要么有一个译码器电路和数据选择器电路来识别信号开头附加的识别码,并且在早期这个信号开头的识别码一定不长,要么对信号做卷积来识别间隔。那么问题来了,如果整串信号中有一段恰好与信号开头的信息相同怎么办,或者信号中恰好有连续的波谷怎么办?


铜第周 于 2018-9-27 00:13:18 发表了:

可能用的是不归零码来编码


真红骑士 于 2018-9-27 07:46:14 发表了:

类似 DRAM 的定时刷新?


wizardtong 于 2018-9-27 11:39:44 发表了:

本帖最后由 wizardtong 于 2018-9-27 11:41 编辑

铜第周 发表于 2018-9-27 00:13

可能用的是不归零码来编码

就是说通过波峰的高度来定义 0 和 1?


没事乱溜达 于 2018-9-27 17:29:20 发表了:

一个通道,就是一条水银线,存着 1000 个波形(波峰波谷)。来个地震,是不是全乱了?


cqduoluo 于 2018-9-27 19:38:15 发表了:

65 年版的《数字式电子计算机的部件和电路》一书。

1.png(64.17 KB, 下载次数: 0)

2018-9-27 19:35 上传

2.png(87.64 KB, 下载次数: 0)

2018-9-27 19:35 上传

3.png(91.11 KB, 下载次数: 0)

2018-9-27 19:35 上传

4.png(88.97 KB, 下载次数: 0)

2018-9-27 19:35 上传


没事乱溜达 于 2018-9-28 23:05:30 发表了:

wizardtong 发表于 2018-9-27 11:39 就是说通过波峰的高度来定义 0 和 1?

楼上的回答,你满意么


深潜者 于 2018-9-29 10:02:24 发表了:

首先你看的文献有问题,汞的声速和水是一个数量级的,因此一点五米汞延迟线应该是一毫秒存取一次,960ms 都快一秒了,根本不可能。


深潜者 于 2018-9-29 10:04:11 发表了:

没事乱溜达 发表于 2018-9-27 17:29 一个通道,就是一条水银线,存着 1000 个波形(波峰波谷)。来个地震,是不是全乱了? ...

地震后请重启计算机,汞延迟线就是个 RAM 而已,乱了就重启呗。早期 ROM 靠的是纸带、变压器阵列啥的。


wizardtong 于 2018-9-29 12:31:51 发表了:

深潜者 发表于 2018-9-29 10:02

首先你看的文献有问题,汞的声速和水是一个数量级的,因此一点五米汞延迟线应该是一毫秒存取一次,960ms 都 ...

可是你说的并没有解释问题啊,我感觉正解应该是前面说不归零码的那位老兄


深潜者 于 2018-9-29 18:57:06 发表了:

wizardtong 发表于 2018-9-29 12:31

可是你说的并没有解释问题啊,我感觉正解应该是前面说不归零码的那位老兄

...

注意:每个通道(管子)只存储 10 个数据,每个数据最多有 91 位。汞延迟线存储器相对大的内存容量(11.1KB)是靠 100 个管子实现的。

因此选数要求没你想的那么复杂,虽然存储了一千个数,但管子内部只需要能区分 10 个数即可。

至于不归零码,这套方案的缺点是同样数位下只能存储一半的信息,对于汞延迟线来说,存储位数是瓶颈,因此不归零码方案似乎太浪费了。


wizardtong 于 2018-9-29 23:35:14 发表了:

本帖最后由 wizardtong 于 2018-9-29 23:42 编辑

深潜者 发表于 2018-9-29 18:57

注意:每个通道(管子)只存储 10 个数据,每个数据最多有 91 位。汞延迟线存储器相对大的内存容量(11.1KB) ...

不是很理解为什么不归零码只能表示一半的信息,求大哥讲一下

我突然想到判断信号开头和结尾用一个大信号放在开头和结尾控制一个 JK 触发器反转就可以处理之前提这个问题是建立在要卷积判断开头的基础上,现在这个问题就不存在了。。。