电子娱乐,使用阿波罗的导航电脑.采矿?

挖掘——这是一件需要付出沉重劳动负担的事情,无论是从字面意义上,还是从这个词所代表的意义上。虚拟世界也是如此。计算机挖掘其实是一个非常复杂的数学计算。为了更快地采矿,人们通常使用速度极快的计算设备,这些设备已经针对采矿的数学算法进行了优化。使用速度慢的计算设备不仅降低了计算速度,而且“得不偿失”,成本更高。那么,你有没有用慢速计算设备实现“挖掘”呢?

真的有。实现“挖掘”本质上是一种数学运算,所以任何一种计算设备都可以用于“挖掘”。在那些慢的设备上,算法主要是基于“炫技”的目的(甚至有人尝试用笔和纸来执行SHA-256的矩阵运算!)。今天我们要介绍一个非常“硬核”的算法:利用阿波罗飞船的导航计算机(AGC)来实现算法。

肯希尔里夫和他的朋友们非常幸运地拥有一台仍能正常运行的阿波罗制导计算机AGC。这种60年代的导航计算机,与现在的计算机系统有着非常不同的系统结构:由5600多个或非门组成的逻辑结构,可以组合成寄存器、加法器和逻辑电路。这样的计算机每秒可以进行40,000次数学计算。虽然这样的计算能力可以引导飞船从地球飞到月球再飞回来,但这样的计算机甚至比不上我们手中的智能机器。在这样的计算机上实现一个数学算法可行吗?

要处理这样的任务,第一个障碍就是指令集。作为60年前的计算机,它的指令集缺乏现代计算机所需要的许多功能。比如它没有栈,这就使得程序员在调用子程序产生中断时,需要手动配置所有子函数返回值的存储位置和字段保护的功能。许多汇编指令与现有算法不兼容且不安全。在架构上,AGC也有一些缺点。这是一台只有16位(包括补码)的计算机。然而,SHA-256算法在计算中需要使用32位无符号数,因此需要对算法进行适当的改进。AGC的内存也是个问题。程序内存使用磁芯内存,而ram只有4K字节。这对SHA-256的矩阵运算是一个巨大的挑战。更不用说,即使是简单的换档操作也必须使用自己的功能.

不管怎样,费尽千辛万苦,Ken还是将SHA-256运算的程序移植到了飞控计算机上。最终运算的结果能够显示在飞控计算机所配的DSKY(显示和键盘输入控制板)上。在60年前,宇航员使用这样的面板控制整艘飞船,而现在,挖矿的结果将会被显示在上面。这样的一台计算机计算一个正确的区块需要10.3秒时间,但由于很多“矿场”的存在,想要使用这样的计算机产生一块无人发现过的区块所花费的时间可能超过宇宙的寿命——看来指望这样的计算机算出区块是不现实的了,不过从炫技的目标来看,它成功了,成功得一塌糊涂!

这篇文章是广播杂志微信公众平台文章。详细内容及高清大图请查阅《无线电》杂志。版权所有,欢迎个人转发至朋友圈。

暂无留言,赶快评论吧

欢迎留言