在计算机科学和机器学习领域,对计算机内存工作原理的理解至关重要。从特定编程语言如何在内存中编译或解释,到不同数据结构消耗多少内存,这些知识对于优化程序性能和资源管理都非常关键。应用程序消耗的内存越多,其运行速度就越慢。由于成本等种种限制,不能无限制地增加系统内存。因此,了解内存系统的工作机制对于数据科学和机器学习从业者来说极其有用。
随机存取存储器(RAM)和只读存储器(ROM)是计算机术语中最常用的几个缩写之一。即使可能忘记了这些流行缩写的完整形式,也要记住这些名称。但那些记得这些缩写全称的人,并不比那些不记得的人更聪明。本文将探讨RAM是什么,它们代表什么。本文的重点不在于解释计算机内存系统的基本工作原理,可以在另一篇文章《理解计算机内存系统》中找到详细知识。将专注于术语、它们代表的含义以及RAM和ROM为何被称为它们的名字。
内存层次结构:RAM(随机存取存储器)
RAM是随机存取存储器的缩写。让理解一下随机存取意味着什么。随机意味着某事发生没有顺序或方法,甚至没有有意识的决定。在统计学中,当他们说随机时,他们的意思是每个项目都有平等的机会,并且没有项目是按照任何特定顺序或设计被选中的。访问意味着接近或进入某个地方的机会或途径。在这里,内存指的是计算机的内存系统。将这三个定义结合起来,随机存取存储器就是可以随机访问的计算机内存,换句话说,就是可以以任何顺序接近或使用(读取或写入)的计算机内存(不需要特定的方向或顺序)。
仍然感到困惑吗?能理解。为了更清晰,首先来看看什么不是“随机存取存储器”。要做到这一点,需要回到过去。为了理解命名的原因,让回顾一下计算机内存的历史。计算机内存的演变可以追溯到几百年前的技术,最初由Basile Bouchon在1725年引入,用于控制织布机。
这些是纸带,由打孔卡片制成。纸带上打的孔用作数据存储,并由机器读取。它们最初用于存储用于织布机刺绣的设计和图案。刺绣操作中的专业人士仍然将为织布机创建设计和图案的人称为“打孔者”,尽管打孔卡片和纸带最终在1990年代被淘汰。
在1846年,这些打孔卡片被用于发送电报,而在1857年,这项技术被用于电报中数据的准备、存储和传输。
打孔卡片和纸带现在成了爱好者和博物馆的东西。它们被另一种使用磁带存储数据的带式设备所取代。磁带是数据存储的巨大飞跃,因为它可以存储大量的数据很长一段时间。它使用涂有金属氧化物的磁带,在其中存储数据。一个卷轴可以容纳相当于10,000张打孔卡片的数据。这永远改变了计算机行业。
它们仍然用于数据归档,是最便宜和最耐用的数据归档解决方案。然而,即使是磁带,现在也不是主流的数据存储设备了。
可能会认为偏离了RAM及其命名的主题,以及本文的最初目的。但事实并非如此。这些磁带驱动器就是为什么RAM被称为随机存取设备的原因。
怎么会这样呢?
当1960年代首次引入半导体RAM时,流行的存储设备仍然是磁带。磁带驱动器使用长长的磁带卷。(非常类似于用于存储电影和音乐的视频或音频磁带)。磁带上的数据是顺序读取的。这意味着,磁带上的数据可以按照写入的顺序访问。当计算机想要访问数据时,它必须通过磁带向前或向后卷动,直到到达它想要的数据的确切位置——就像一个人必须来回卷动音频磁带盒以找到最喜欢的歌曲一样。
如果在磁带的开头,而想在磁带的另一端读取或写入,必须卷动整个磁带到达那个地方,以便访问它。这就是为什么它是顺序访问存储器。数据是按顺序存储的,读取或写入信息所需的时间取决于磁带在任何给定时刻相对于读写头(读取和写入信息的磁头)的位置。
然而,这种基于半导体的新型存储器(1960年代由贝尔实验室、IBM和英特尔开发,基于晶体管)没有这样的限制。存储在其上的任何位置的数据都可以同样容易地访问,并且以相同的时间访问。因此,它不是“顺序访问存储器”,而是“随机访问存储器”,数据是随机写入和读取的。(回想一下统计学家对随机的定义)。
在统计学中,当他们说随机时,他们的意思是每个项目都有平等的机会,并且没有项目是按照任何特定顺序或设计被选中的。
RAM的用途
RAM本质上是计算机及其应用程序用来存储和访问临时数据的超快速存储器。它可以被看作是计算机的短期记忆。当一个程序启动时(例如Google Chrome浏览器或Microsoft Excel文件),它的公共数据存储在RAM上,由于RAM比硬盘(二级存储器)快得多,程序通过直接从RAM访问数据运行得更快。一旦程序结束(关闭浏览器或文件),RAM就从其数据中释放出来。因此,RAM越大,计算机处理多个同时程序的速度就越快。
具有较少RAM的计算机无法同时执行许多任务。例如,如果正在处理多个视频文件,同时打开许多网络浏览器,每个新程序打开时RAM的需求就会增加。当计算机的“临时存储器”需求超过RAM时会发生什么?现代计算机使用一种称为虚拟内存的内存管理技术。这是一种扩展RAM容量的方法。计算机硬盘的一部分被留作分页文件,现在RAM和分页文件的总和成为总的“临时存储器”。然而,有一个问题。硬盘比RAM慢得多。每次计算机依赖于从硬盘的分页文件中获取数据时,它的响应速度就比RAM提供的慢。
因此,RAM越高,计算机操作就越快。
现在自然问题再次出现。为什么RAM在1到8GB的范围内(有时稍高),而硬盘在512GB到2TB的范围内(1TB = 1024GB)?当RAM如此重要时,为什么不使用更高的RAM?答案是成本。
现在有什么变化?
现在几乎所有的现代存储设备也都是随机存取设备。与磁带不同,磁硬盘(也称为硬盘)可以几乎以相同的速度从任何点访问数据。固态硬盘(SSD硬盘)是真正的随机存取驱动器,U盘(也称为USB驱动器或闪存驱动器)也是如此。因此,RAM(随机存取存储器)这个名字为RAM(实际上是主存储器,也是易失性的)与过去存储设备的区分已经随着时间的推移而减少,现在完全无关紧要。尽管如此,这个术语变得如此流行,以至于它仍然被称为RAM。
随着赋予RAM其名字的技术生态系统不再存在,这个名字对最终用户来说没有任何意义,因此不传达其真正的目的或含义。易失性存储器是那个的更好词汇,但肯定没有RAM那么吸引人。