现代的计算机大多是CPU、内存、缓存三者分立的,那为什么不将三者完全一体化?就像生物的脑一样,一个中枢,实现几乎所有功能,也许一体化能够提高效能。

推荐  (0) | 25人关注关注
23个答案
33 0

我外行点,随便抛个砖。。。

能啊。。。当然能。。。只不过"能"的条件太苛刻了

为啥CPU缓存分三级?L1/L2/L3

L1目前的作用是缓存CPU指令和数据,12K可以缓存12000条微指令,相对于指令集来说还是足够用了。不过现在多核多线程的CPU也蛮多,缓存的大小基本上要乘以原来的核数采购

  1. 粗暴的说:容量越大,装的东西多了,查的就越慢,所以要分优先级
  2. 光速太慢 L1和CPU结合最紧密,而结合紧密的部分面积就那么大
  3. 成本。最快的L1cache,在保持速度的前提下,不是说容量翻倍,价格仅仅翻倍,可能是平方甚至指数的增长。所以现在的L1缓存还是以K为单位。太大的反正也用不起
  4. 电路构造的原因。CPU本身有个时钟频率,L2离CPU远,依赖外部时钟,那么它需要更多的"滴答"才能和CPU交换数据,而L1只需要两个滴答
  5. 提升容量对命中率提升很小。命中率指的就是CPU指令已经在缓存里,我们直接从缓存里拿就行1M之后的曲线已经很平了。而前面说到的成本问题就不容忽视了


综上所述,现代PC,乃至服务器,都使用了多层级的缓存-内存-高速存储-普通存储的体系:

L1-L2-L3-内存-SSD-机械磁盘甚至磁带

单位容量价格从高到低,速度从高到低,价格从高到低,容量从低到高

目前把CPU、缓存、内存做到一起的也有,SOC(System on a chip)嘛,常见于以前的智能手机(因为内存大了的时候通常就需要拆分了),实际上智能手机也可以相当于计算机了对不对


补充:

http://www.cs.utexas.edu/users/mckinley/352/lectures/21.pdf

这里面指出了各种存储的价格、访问时间:


11 4

也许这是个趋势,但目前最大的问题就是不划算和不合理。

如果提前把内存作死到芯片里,后面想换就不能换了。

你封1G的内存,游戏玩家觉得不够用;8G的,价格上去了,办公用户觉得贵。,分产品类型,就要开多条产线。

一旦CPU换代,虽然里面的内存还是好的,但只能一起作废。

外行有时就喜欢从方便的角度要求大而全,但忽略了为此要付出的代价。

7 1

费瓦ROCN不间断骑行爱好者 马拉松爱好者 电子DI...

2016-01-22 23:53

有呀!单片机,嵌入式单片机等。。。等。。。

但是,你不会想用计算器的或者打印机的芯片来运行windows吧!

2 0
支持者: 咸鱼怪 青青不在

此时节肢动物的内心几乎是崩溃的。其实很多动物都有复数并且是散布的神经中枢。而且作为一个搞计算机的,隐隐觉得那样更合理...

另外SoC哭晕在厕所[划掉],虽然不知道这算不算你说的那种一体化。真要全都做在一个硅片上也不是不行,但是各方面代价就不用我吐槽了吧...[划掉] SoC是一个硅片上的 oTZ...

2 0
支持者: 咸鱼怪 八索

就台式机的CPU而言技术上做不到,目前的半导体技术没有能力把这3个做一起,不过CPU和CPU的缓存是可以做一起的。

至于单片机的,大部分这3者都是做一起的。

3 1

主要因为我们用的图灵计算机,结构就是计算+存储。所以就分为了CPU+内存。然后内存又很慢,很快的内存又很贵,只要凑合的用缓存这种方法了。

4 3

叔大奥尼NGA论坛著名版主

2016-01-22 12:24

因为不合算啊。

你也说了”也许一体化能够提高效率“,但以现在的技术手段来说,这个也许不成立,一体化只会降低效率。

另外说一个基本知识,CPU的确是有缓存的。

1 0

小日专攻材料学

2016-01-24 03:41
支持者: 冰煌笑雪

今天刚刚看到HBM普及后手机SOC可能会把内存集成进去 就像现在的AMD R9 Nano,但是PC不太可能合起来了。

目前之所以三者分看可能是历史遗留问题。在计算机诞生初期并不存在内存条,直接从存储器取数据就行了。那时候的计算机有点像巨型计算器。最早的内存是以磁芯式的体积巨大故障率也高几乎是用整件屋子装的所以自然是分开的。

后来CPU和内存工艺才一样 但是为了方便维修是和CPU分开的。那时候电脑还很贵几乎没有自用的。

好像到了80286时代内存才出现了用户可以自己插拔的内存 这是为了自由扩展的需要 好像是有64KB-256KB等多种规格可选。所以就分开了。而且那时候的芯片封装技术还没办法把256KB的集成电路封装进CPU。

386时代开始的出现外部Cache,此时还不分几级。486时代工艺提升,终于可以内嵌L1了,容量8K。到了奔腾时代,INTEL公司骄傲的宣布PENTIUM的内部含有的晶体管数量高达310万个(真是被老黄笑死)。

随着Pentium Pro的内嵌L2出现,目前的CPU+Cache+RAM就固定了。但是PC越来越普及每个人对内存的需要千差万别,为了满足个性化需要就一直分开了。



1 1

天降龙虾科幻作者,已出版长篇小说《生命进阶》

2016-01-22 16:32
支持者: 白云软绵绵

人的大脑也是有短期记忆和长期记忆的。。。。。

0 0

像手机就可以做到一个电路板上的。但是这样就无法升级个别部件了,要升只能换手机了。而台式机最大的优势就是哪里不爽换哪里。另外,在台式机这种cpu高速运行都需要风扇的情况下,把这些东西做到一起那样的发热量又要飙升了。

0 0

西河湾刀深南路上扫街的

2016-01-23 13:42

SOC,就是啥都集成一个芯片里面的。

0 0

很多人说到分部件容易维护替换的问题,这个算是最次要的因素了。计算机的存储结构之所以分级就是因为同样的成本下,存储的访问速度越快,容量就只能越小。

所以一个存储想要和cpu差不多快是非常非常非常昂贵的,所以只能有一小部分存储,也就是L1 L2 cache(KB级别的大小)是和cpu做在一起的。内存这个级别的容量的存储访问一次cpu可以跑一千条指令了,这个和cpu集成在一起实际价值是不大的

0 0

其实这个问题非常简单,一句话就能说清:


  • 因为最早芯片集成度不够,所以做成分开的,后来虽然技术进步了,但发现就算合在一起,也不会产生题目中说的“也许一体化能够提高效能”的情况,所以就干脆一直分开了。


如果很有效,那么可以想象,市场上一定会有集成在一起的计算机,它可能很贵、很高效。实际上并没有~

集成在一起当然有好处,体积小啊,所以其实你手里的计算机(智能手机)就是三者集成在一起的。

(然而被人指出并不是这样,手机不仅没有合在一起的趋势,反而随着性能变强而分开了,可见集成在一起产生了很糟糕的效果。。)

0 0

你这是自寻箱子拖延症迫害妄想者

2016-01-25 18:24


完全可以集成一体啊,那叫单片机。

不过这样首先不能集成高性能的处理器和内存,否则散热问题不好解决。

其次这样丧失了自由搭配、根据需求自由调整具体配置和成本的优势。

0 0

一句话,因为时间代价和空间代价关联并且互斥。也就是说你找不到一种又快又大的东西,总是按下葫芦浮起瓢

1 1
支持者: chgh

理论上,硬盘速度够快,成本够便宜,就没必要运存了。。然而速度价格比得多久才能追评呢

0 0

因为技术跟不上,一开始的计算机是没有缓存和内存的概念的,后来因为内部数据高速交换的需求,才有了缓存和内存的出现。

现在的SOC其实一样可以运行主流的操作系统,但是因为性能、发热、成本以及市场需求的原因,还没达到普及的条件而已

1 2

Geek.晴天无证.Code.Ing()

2016-01-24 00:33
支持者: fuzzy

不是有种东西叫单片机吗?计算器也是计算机啊。都是单芯片不是么。。。

0 1

封装在一块除了集成度高点貌似并没有啥卵用。。。。

1 2
支持者: pathtohappiness

除了@猪了个去 提到的命中率问题,还有一个速度问题

简单的说,不是不可能,但是没必要。内存太慢了,目前看来也没必要提速。有条件的可以去试试2800MHz的内存和2133MHz的内存实际性能有什么差别。少量高速缓存+大量低速内存就可以解决的问题不需要一堆高速内存。

做到一起我可以理解为做到一块晶圆上面。如果这样的话,按照目前的架构不可能。首先内存晶圆本来就大得多,而且因为架构和制程不一样并不大可能做到同一片硅上面。而且内存的发热远小于CPU和CPU缓存,这样做对散热也没太大好处。

当然没记错的话所有CPU Cache都是用的同一个时钟频率,并且这个频率很接近CPU本身频率。比如6700K的原厂频率最大为4.20GHz,他的缓存频率就是4.10GHz。比较接近CPU本体频率的缓存模块保证了更高速的访问。

--------------------我是分割线--------------------

一开始往CPU晶圆上面加缓存的原因就是因为当初CPU提速远超过了内存的速度,为了保证性能才放了一点高速低容量的存储的。

并且L1,L2,L3这三级都是做在CPU晶圆上的,所以其实并没有太大的价格差别的问题(当然更高端的处理器会有更多的缓存,比如四核i7有8MB L3,四核i5只有6MB L3)。三级缓存的速度应该也都是一样的。分级的原因也就是命中率,

L1通常都是128KB Data+128KB Instructions每核心,小一点命中率高。如果L1找不到CPU就会跑去L2找。

L2大一点,通常1MB每核心,但是因为大命中率相比L1会降低。L2找不到CPU才会跑到L3去。

L3在一般是所有核心共享的,命中率在三级里面最低,但是容量最大。英特尔一般是中低端1.5MB x 核的数量,主流2MB x 核的数量,高端和服务器平台2.5MB x 核的数量。

L3找不到CPU才会跑去L4 eDRAM(如果有)或者内存去找。内存的频率和数据吞吐量明显不如各级缓存,加上跟CPU核心离得很远,实际缓存效率其实很偏低。

有一些英特尔的CPU(通常是带Iris Pro的)挂了个eDRAM,也是一个同样比较高速的缓存,CPU和核显共用。相当有L4 Cache的意思。(虽然主要是给核显用的,毕竟三层缓存够CPU了)eDRAM跟各层Cache的速度比要慢不少,但是容量达到了丧心病狂的最大128MB。

然而内存,本身构造就不一样而去还远不少(还得走内存控制器)不说,内存本身频率是很低的,前两个月才开始普及的DDR4内存大部分的频率也就2133MHz到2400MHz之间,而且约50-60GB/s的这个速度也并不够用。


0 1

Poruin网络安全爱好者

2016-01-26 15:38

现在手机芯片就是往这个方向发展的。一个很重要的原因是,最初研发这几样东西的领头牛们都不愿意太紧密合作,各干各的,维护自身利益。

0 2

楼上数位的回答基本上把我想说的都说了,我就补充一个比喻:

其实吧,一台电脑就像一个细胞,硬盘装好软件的部分是DNA,内存提取出来的信息就是RNA,经过与蛋白质、酶、各种因子的反应——获得输入并由CPU进行运算,获得蛋白质——输出结果。

显然,电脑和细胞的相似性远比和大脑的相似性要高得多,而就算由细胞集群组成的大脑都有不同部位的分工。我们来想象一下如果电脑彻底一体化会怎样?一个中枢处理一切?一个浆糊一样、内部没有明确分工部位的细胞/大脑,能做到啥呢?

0 2

山梁森林老掉渣的工程师

2016-01-23 17:47

这三者本来就是一家的,让楼主给掰开了。

查看更多

添加回答

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

相关问答

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

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

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