△向上生长, TO BE TO UP. 程序员成长充电站△

计算机基础课第 41 期分享

阅读本文大概需要 6 分钟

01

存储器定义

系列中我们多次谈到内存(Memory),甚至在前面设计了一个简单内存。
一般来说,电脑内存是 "非永久性",如果 Xbox 电源线不小心拔掉了,内存里所有数据都会丢失。 所以内存叫"易失性"存储器。
我们还没谈过的话题是存储器(Storage),存储器(Storage)和内存(Memory)有点不同,任何写入"存储器"的数据,比如你的硬盘数据会一直存着,直到被覆盖或删除,断电也不会丢失,存储器是"非易失性"的。
以前是"易失性"的速度快,"非易失性"的速度慢,但随着技术发展,两者的差异越来越小。 如今我们认为稀松平常的技术,比如这个 U 盘能低成本+可靠+长时间  存储上 GB 的数据。

02

纸卡

但以前可不是这样的,最早的存储介质是 打孔纸卡以及打孔纸带。 到1940年代,纸卡标准是 80列x12行,一张卡能存 960 位数据 (80x12=960)。 据我们所知的  最大纸卡程序是美国军方的"半自动地面防空系统" 简称 SAGE。 一个在 1958 年投入使用的防空系统,主程序存储在 62,500 个纸卡上,大小 5MB 左右, 相当如今手机拍张照。

03

延迟线存储器

纸卡用了十几年,因为不用电而且便宜耐用,然而坏处是读取慢,只能写入一次,打的孔无法轻易补上,对于存临时值,纸卡不好用。 我们需要更快更大更灵活的存储方式。 J. Presper Eckert 在 1944 年建造 ENIAC 时发明了一种方法叫"延迟线存储器"(Delay Line Memory) 原理如下:
拿一个管子装满液体,如水银,管子一端放扬声器,另一端放麦克风,扬声器发出脉冲时  会产生压力波,压力波需要时间  传播到另一端的麦克风,麦克风将压力波 转换回电信号。 我们可以用压力波的传播延迟来存储数据。
假设有压力波代表 1,没有代表 0,扬声器可以输出 1010 0111。压力波沿管子传播,过了一会儿,撞上麦克风,将信号转换回 1 和 0。如果加一个电路,连接麦克风和扬声器,再加一个放大器(Amplifier)来弥补信号衰弱,就能做一个存储数据的循环。信号沿电线传播几乎是瞬时的,所以任何时间点只显示  1 bit 数据,但管子中可以存储多个位(bit)。
忙完 ENIAC 后,Eckert 和同事 John Mauchly,着手做一个更大更好的计算机叫 EDVAC,使用了延迟线存储器,总共有 128 条延迟线,每条能存 352 位(bits),总共能存 45,000 位(bit)。 对 1949 年来说还不错。 这使得 EDVAC 成为最早的 "存储程序计算机" 之一。
我们在前面讨论过,但"延迟线存储器"的一大缺点是每一个时刻只能读一位 (bit) 数据,如果想访问一个特定的 bit,比如第 112 位(bit),你得等待它从循环中出现,所以又叫 "顺序存储器"或"循环存储器" 而我们想要的是 "随机存取存储器" 可以随时访问任何位置。
增加内存密度也是一个挑战,把压力波变得更紧密  意味着更容易混在一起,所以出现了其他类型的 "延迟线存储器"。 如 "磁致伸缩延迟存储器",用金属线的振动来代表数据,通过把线卷成线圈,1英尺×1英尺的面积能存储大概 1000位(bit)。

04

磁芯存储器

然而,延迟线存储器在 1950 年代中期就基本过时了,因为出现了新技术,性能,可靠性和成本都更好的"磁芯存储器",用了像甜甜圈的小型磁圈。 如果给磁芯绕上电线,并施加电流,可以将磁化在一个方向,如果关掉电流,磁芯保持磁化,如果沿相反方向施加电流,磁化的方向(极性)会翻转,这样就可以存 1 和 0。 如果只存 1 位不够有用,所以把小甜甜圈排列成网格,有电线负责选行和列也有电线贯穿每个磁芯, 用于读写一位(bit)。
我手上有一块磁芯存储器,每个黄色方格  有32行x32列的磁芯,每个磁芯存 1 位数据,所以能存 1024 位(bit)  (32x32=1024)。 总共 9 个黄色方格,所以这块板子最多能存 9216 位(bit) (1024x9=9216),换算过来大约是 9 千字节  (9216 bit ~= 9 kb)。
磁芯内存的第一次大规模运用是 1953 年麻省理工学院的 Whirlwind 1 计算机,磁芯排列是 32×32,用了 16 块板子,能存储大约 16000 位(bit) 更重要的是,不像"延迟线存储器" 磁芯存储器能随时访问任何一位(bit),这在当时非常了不起。
"磁芯存储器" 从 1950 年代中期开始成为主流,流行了 20 多年,而且一般还是手工编织的.
刚开始时  存储成本大约 1 美元 1 位(bit),到1970年代,下降到 1 美分左右。 不幸的是,即使每位 1 美分也不够便宜。 之前提过,现代手机随便拍张照片都有 5 MB,5MB 约等于 4000 万 bit,你愿意花 40 万美元在"磁芯存储器"上存照片吗? 如果你有这么多钱,我的下面有打赏,你可以看着办。

相关阅读:

 

免费资料领取:

回复 “算法”,领取一份算法内部训练营资料。

程序员成长充电站

长按扫码关注,每天五分钟学习计算机最基础的知识和原理

右下角

给个在看呗