如果硬盘足够快,是否可以取消内存?

搬自知乎的一个问题。
http://www.zhihu.com/question/20370250

推荐  (2) | 37人关注关注
33个答案
98 3

馒头家的花卷技术图书译者,音乐人

2014-01-14 10:33

这个问题我觉得很好,我们先看看现在的计算机存储器架构:

1级:CPU寄存器+CPU缓存(L1/L2/L3)
2级:主内存(RAM)
3级:外部存储(硬盘/SSD等)

数据在CPU中进行处理,然后按1、2、3级(或相反)的顺序依次进行传输。
那么为什么要分这样的级呢?

首先,CPU的处理速度非常快,就好像一个效率很高的机器,但如果机器的传送带效率低,总是供不上货,那么整个系统的效率也会被拖慢,也就是说,在大多数计算机系统中,存储器都是性能的瓶颈。在这些存储器中:

1级:速度非常快,断电不能保持数据(挥发性),单位容量价格很高
2级:速度比较快,断电不能保持数据(挥发性),单位容量价格较高
3级:速度慢,断电能保持数据(持久性),单位容量价格较低

由于3级存储器的速度非常慢,如果直接在3级存储器上操作数据,和CPU的处理速度差距将是天文数字(想象一下虚拟内存的速度),因此需要将硬盘上的数据先搬到内存,然后在内存中进行主要的数据交换,然后再写入硬盘。

但从上述特性来看,2级存储器(也就是内存)只是在1级和3级之间的一个折衷而已,换句话说,如果3级存储器(硬盘)足够快,是完全可以取代2级存储器的。而解决这个问题的另外一个方向,是将2级存储器(内存)在保持其速度的同时,改造成持久性(断电可保持数据)的存储器,这样一来,只要内存的单位容量价格能够达到合理的水平,就可能反过来出现2级存储器取代3级存储器的情况。

无论如何,从以后的发展趋势来看,2级和3级存储器之间的差异正在逐步缩小,最终必将实现融合,而这一融合可能会是计算机(包括硬件和软件)架构上的一个重大变革,这种变化从现在就已经在发生了,例如在大规模分布式系统中,内存式数据库(In-memory database)的运用已经非常普遍(因为服务器一般是不关机的,尤其是大规模集群的冗余性可以实现数据相互备份,内存的挥发性缺陷在这样的应用中可以被忽略)。

40 4

饭小盆材料物理学士,飞面神教信徒,FFF团资深团员

2014-01-14 16:56

嗯。。虽然目前的技术尚未能做到让硬盘和内存一样快。。不过我们就假设这个技术已经实现了吧(参考虚拟硬盘技术)。那么,到底是神马制约了我们不能将其实际应用呢。。。没错。。是硬件寿命。

长效储存介质由于在存储原理上跟缓存类器件完全不同,因此它们的使用寿命相较于缓存类器件是十分有限的。即使在速度上相差不多(比现有内存慢一些,也是可以接受的,因为可以免去从硬盘读取到内存这个步骤,想用什么就直接调用,所以这还是有意义的),我们也没有办法解决大文件量读取对于储存介质使用寿命的消耗。例如你玩一个100M的游戏,实际运行的时候总数据通量大概要远高于这个数字。

于是我们得到的结论就是,限制计算机现有架构的并不仅仅是速度。

31 0

答案是肯定的,技术上的原因前几位已经说的很透彻了,从另一个方面来看,现在的计算机之所以是现在这样的分级存储模式,是一种妥协的结果。
我们都希望自己电脑的硬盘能足够快,而价格又不会贵的离谱,但是显然现在为止还没有找到这种能满足我们欲望的存储介质,这种多级存储结构是我们沿用至今的一种比较折中的办法,是效率和价格相互妥协后的结果。
如果你不在乎价格,当然可以弄出来一个和内存一样快的硬盘,或者说是和硬盘一样大的内存。如果你不在乎性能,给你的电脑插个32k的内存,再弄个8G的虚拟内存理论上也是可以的。

18 0

看来大家都不了解计算机体系结构,目前的硬盘不能随机访问,所以不能当做内存使用。

18 0

卢瑟傅里叶想要改变世界,上帝没给我源代码

2014-01-15 09:33

要知道硬盘不是计算机必须的部件,冯诺依曼的体系结构里根本就没有硬盘,何来硬盘替代内存一说?
恰恰相反,随着云计算的发展,硬盘才是会被替代的东西。

18 1

呵呵,大家都从硬件角度说,怎么不说软件层面?
内存是用来运行软件程序的,编程就是大部分和内存打交道。
如果硬盘和内存都在一起的话,不是走旧路吗?还记得微机原理说的这是 冯 冯诺依曼结构 将程序指令存储器和数据存储器合并在一起的存储器结构。
要知道现在大多都是使用是哈佛结构。把他们分开,速度就提上。
再从编程和软件角度说,编程是要去访问内存里面的单元,写入数据,然后释放数据,如果忘记释放,就会造成内存错误,写入内存的话,系统是随机分配地址,当不再使用的时候要把这些多余的空间给清理调,留给其他程序用,如果内存和硬盘在一起的话,不利于系统分配数据空间,还会把你本身的用户数据给修改掉。
所以说现在内存和硬盘分开是最好的结构,互不干扰。

18 2

猫三剁萌可萌非常萌

2014-01-14 20:40

内存足够大,可以淘汰硬盘
网速足够快,可以淘汰硬盘

就从技术和成本的角度,MS硬盘比内存更容易淘汰。 而且在一些大型网站的服务器也基本是这样干的。

16 1

这个问题很早很早以前我就想过,现在的硬盘存储技术还无法达到,因为现在硬盘的存储读写速度确实很慢,包括固态硬盘,但是相信不久的将来应该能解决计算机在硬盘存储方面的技术瓶颈,存储速度能达到现在内存的速度。到那时就真的不需要内存这种机制了,期待科技的快速发展。

15 0

可能性比较小。
因为硬盘的物理机制决定了其速度比内存要慢。
如果出现了某种技术,大大加速了硬盘的速度,那这种技术也可以用在内存上,使内存更快。
硬盘的物理机制决定了硬盘的性能的提升已经到了极限。
而内存的性能提升还没有。
铁电存储器或新结构的RAM会使RAM替代硬盘而不是相反。

“是否存在一种速度秒内存、容量秒硬盘,而且价格说得过去的存储介质?”
这是有可能的,只是到了那个时候,内存和硬盘就会消失了,就像软盘一样。
半导体上对RAM产生突破还有有很大可能的。

14 0

技嘉的i-RAM,使用DDR内存,使用的是PCI接口,性能的话基本用到接口的极限了,秒杀当时的所有硬盘。
Acard的Ramdisk,使用DDR2内存,使用的是SATAII接口,性能的话基本用到接口的极限了,读250MB/s。

若现在有人设计出用PCIe x16接口的,应该可以取代RAM。这个的确很尴尬,里面用的还是RAM。

14 0

这不是技术问题,而是经济问题,因为考虑到经济性,才被设计成这样的,如果不要硬盘,只要内存,当然也能设计出计算机来,但他就必须不能停电,而且会非常贵,没有经济性,至于什么这寻址等问题,是自然能解决的,因为设计寻址系统的时候就是为了硬盘和内存系统的机器设计的,如果纯内存系统,当然可以用别的技术方法实现。

14 1

晨风dicka通信与信息系统硕士 ICT项目经理

2014-01-14 20:35

我觉得内存和硬盘不可以相互替代。
首先感谢@馒头家的花卷 分析了寄存器、缓存、内存、硬盘的区别。我补充内存和硬盘的一个重要区别。内存属于计算机系统的“内存”,而硬盘属于“外存”。其区别在于内存是直接挂载在CPU的数据总线、地址总线上的。是可以由CPU直接寻址的。硬盘是挂载在与IO接口相连的控制器(位于南桥或单一的主板芯片组内)上的,是由CPU通过控制器间接寻址的。
硬盘再快也不能替代内存,因为能够直接寻址的存储空间对CPU有重大意义,是不能缺少的。呃,至于有什么重大意义,我也说不好。很后悔当年没认真学汇编。希望有高手指点。
内存再便宜,具有了非易失性,也不能代替硬盘。因为内存不可能做的像外存一样大。虽然现在64bit地址总线的CPU可以直接寻址2^64=16777216TB的内存,但受限于当时的软件技术,不可能直接管理像硬盘那么大的内存。操作系统没有能力从太大的内存中足够快的找到所用的数据,内存过大必然引起命中率下降。一个证明就是Windows 98系统中,512MB内存的性能反而不如256MB。后续的XP、7、8系统中我还没有看到类似的测试。不过肯定有个管理内存能力的上限。

13 0

要是那天1级缓存也做到1TB,然后加上永不失电的技术,网络备份技术。连内存是不是也不用了?任论硬盘

13 0

参天软件工程师

2014-01-15 12:55

目前看来是不行的。
因为 目前硬盘的存取方式和内存有很大区别。
首先硬盘上的最小寻址单位是扇区(512字节),操作系统,甚至是分簇的4K。
内存词典恶最小寻址单位是1字节。
所以32为机,最大的寻址范围是4G,但硬盘的大小可不是限定在4G。
当然现在64位机器了。寻址范围变大了,但硬盘的可以更大。

13 1

因为硬盘现在看是内部传输率是瓶颈,但在乐观的发展下,或许可以取代现在的内存,因为都是CPU通过总线访问的设备,技术发展下,达到总线速率不是不可能,但决达不到CPU内部的一二级缓存的速率。

CPU一级缓存的速度和CPU速率是一致的,除非硬盘不通过总线访问,而整合在CPU里面。不过从操作系统的角度上,不可能实现,实现了也就不是硬盘了。

16 5

不说技术,只讲逻辑——是否存在一种速度秒内存、容量秒硬盘,而且价格说得过去的存储介质
我看答案显然是否定的,这是一种“完美”的东西,据我所知这玩意儿古今中外从来没有过,甚至连虚拟的数学体系里都没有,遑论实体。

12 1

个人认为不会,硬盘速度在提高,内存材料的速度也在提高
另外,关于楼下那位果壳网友说Gates说过640K ought to be enough for anybody.已经被Gates本人否定了。客观地说这个引用是存在争议的。详见:http://www.computerworld.com/s/article/9101699/The_640K_quote_won_t_go_away_but_did_Gates_really_say_it_

14 3

92年买第一台286电脑。当我提出要2M内存的时候,公司都觉得疯了。连比尔盖茨都说,人们最多只需要640K内存就足够了。而当时,普通的硬盘也就是10M而已。
最早出现ipod的时候,苹果用微硬盘代替内存,制造出了容量达到了4G的MP3,大家都觉得苹果公司疯了。差不多同时,PALM公司也除了一种掌上电脑,也用微硬盘做存储器。大家也觉得先进得不可思议。
10年过去了。现在手里头用的就是容量达到了固定容量为64G(没有外接插卡)的手机。而我现在正在玩的电脑,内存为32G,虽然硬盘只有640G。实际上,可以想到,不远的将来,楼主所说的情况就会发生。只不过是制作者们如何去想,他们是不是觉得消费者(包括他们的荷包)会不会需要,能否承受得起而已。
不知道楼上所说的1级内存、2级内存是不是指的CPU里面的缓存(因为前面有人提到了计算机的构架要大改)。如果仅仅指的是主板上插的内存的话,不需要改构架的。上面说到的ipod、PALM,CPU的构造仍然是差不多的,缓存也就是K的量级。仅仅主内存增加,电脑的构造不会有大的变化。但是,因为瓶颈问题的解决,可能运算方法和过程会发生比较大的变化。形象化说,未来的计算机更像一部游戏机吧。

11 0

从技术发展来看,并非无可能,但是就当前CPU和操作系统的结构来说,这硬盘和内存的寻址方式完全不一样,暂时不可能相互代替。

12 2

从开始到现在 硬盘性能提高了多少? 处理器又提高了多少?

12 3

现在手机的性能比15年前的电脑要强吧?那手机内存的ram 跟硬盘已经是一体的了,技术发展到一定时候,内存跟硬盘就是一体的了

2 0
支持者: None 晨风dicka

先来我的观点:
内存(还有缓存)存在的理由不仅仅是数据读写速度,还有一些事务层面的原因,
如内存寻址非常高效,缓存命中也非常高。
来个不对口味的例子,你在全国人大的会场里面找到一名人大代表,远远比在全国人民里面去找同一位人大代表,效率要高的多。

其次我还想引申一下下,随着云计算和大数据的发展,当然前提是互联网带宽的大幅提升,未来的个人终端从架构上就不需要硬盘设备了,它的高速也就只对服务器侧有意义。

一家之言,我先呵呵。

1 0
支持者: Alkaid_Benetnash

我认为内存本来就是硬盘不够快而妥协的产物

1 0
支持者: 梦里行

看了看回答,IT界的民科真多...大概是门槛太低?

楼上有些回答很准确,这绝不可能啊,关键点在于硬盘不是计算机的一部分。硬盘被称之为外存,相对于内存,根本就是可有可无的东西。

具体到硬件结构上,硬盘的通信是通过南桥,而内存则是北桥,CPU是可以通过北桥总线随机访问内存,访问时间以时钟周期来计算。

而软件结构上,其实CPU是看不到硬盘的,核心也是看不到硬盘的,大概要一直到操作系统的内核才能看到硬盘。

综上,硬盘是多余的,以后要是性能足够好,升级不掉电的高性能内存就可以了。话说现在我司已然准备无硬盘系统了...

1 0
支持者: Twinwheels

无意中看到的,觉得虽然时间久远了。但是我也想就这个问题做个回复说明。

按照现在的硬件架构无论3级储存系统速度多快,甚至比2级系统速度还快。

那样也无法直接使用3级替代1、2级存储的。

这样说的原因在于。

1级存储与处理器之间的距离(连线)无限接近于0。

2级存储与处理器之间的距离(连线)仅仅是板上走线距离,一般10cm左右,甚至更短。

3级存储与处理器之间的距离(连线)多数都要超过50cm(台式机)板上走线加串口连线

按照现在的处理器访问内存的速度G级以上计算。

每个时钟周期(1Ghz)在导线中走的距离约为3cm

按照现在CPU主频3G以上,并且指令周期在10个左右(不准确仅仅作参考)。导线10厘米的长度

就能让CPU完成一轮数据处理。长度如果50cm,按照上面估算。cpu可以完成10个指令

那么这个过程要是这样描述的话如下;

向硬盘发送数据读取要求,硬盘0延迟返回数据。

即使这样,cpu也要白白等待20个指令周期才能获得所需数据。

对于现在IO读取处理周期都是在每秒几K甚至几十K的速率来计算。

10K的每秒操作速率就会导致CPU浪费10K×20=200000个指令周期。这个浪费是不能容忍的

所以无论硬盘速度多快,也不会替代1、2级的位置

而且还有更重要的是

1、2级是并行总线

3级是串行总线

3级串行要想打败1、2级并行,至少要大于并行速率×并行通道数的频率。

3级存储能做到的话,1、2级更容易做到

0 0

现在把虚拟内存放在高速SSD上的有~
等传说中的pcie借口ssd普及了估计有可能吧?
谁让内存这么贵来着

0 0

按目前的科技进程来说,短时间内还没有希望,非易失性RAM目前只有少量应用,短时间内还不能替代DRAM,更别说篡夺硬盘的地位了,基于闪存的SSD就不用提了,速度还是和DRAM差几个数量级,相对对于内存速度的追求,目前应用对于存储容量有着更大的需求。so。。。除非有黑科技出现,不然,内存和外存还是要分家的。

1 1
支持者: widewing

楼上这么多解答感觉都没说在点上,楼主问的是个以“如果”开头的问题,也就是说这是个本来就建立在某个科幻概念实现了的基础上的问题,也就是说,这是一个形而上的问题。

以下是我的形而上版解答。

各种东西大体都会满足这样一个规律:快的且好的 = 贵的且不易做大规模的,慢的且没那么好的 = 便宜的且更易做到更大规模的。只要这条规律还在,可能以后并出现了更高级的叫法,但类似硬盘和内存这个概念的两类东西一直会存在。

0 0

其实CPU还有一个一级缓存和二级缓存,然后才排的上内存,再然后才排的上硬盘。它们之间的关系是这样的:

CPU的一二级缓存相当于你家的厨房,你要吃什么几秒内就拿到,而且可以每次只拿一包虾条中的几根来吃,一二级缓存随时可读,而且是和cpu同频的,还能一次只读一个字节(有点记不清了,反正能读最小量的存储单元);
内存相当于周围的便利店,超市,你要吃什么得花上半小时去买,而且他们不会允许你只买一包虾条中的几根的,手续包括选货付款运回,内存的读写步调受主板频率限制,这就比cpu的频率慢多了;
硬盘相当于食品产地的当地库存,你想要吃到那手续就多了,比上面超市的手续还多了查询下单,出库包装,运输,货到送递,收货完评价。cpu要用硬盘的数据得通过专门的硬盘驱动来读入,不是想要就能要的,这个步调就更慢了。

如果还没看明白的话,总结就是:硬盘再快,如果接口和通道跟不上,那还是没用,瓶颈转移到接口和总线通道上去了。

0 0

上面那些说的都有一定的道理,不过多数在是摆现存架构,课本上都可以看到的!我想说看你说的够快到何种程度了,还有就是反应时间,若使用无机械运动的电子元件阵列存储的话,就不用考虑力学上面的物理极限,这样,是可以将内存做成相同的结构的,从这个意义上来说,不就是没有内存了吗?或者,硬盘使用与内存一样的结构。在反应速度指标上面,硬盘做到与内存一样的话,就不需要分得很清楚了。

0 0

内存就是为快而存在,而硬盘不是
内存的容量不如速度重要,硬盘的速度不如容量重要
如果它们是一起发展的话,硬盘在速度上很难赶上内存,内存在容量上很难赶上硬盘
二者不可得兼。。。。。。

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2018] 6282-492号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区