如果CPU缓存足够大的话,是不是可以把系统装进缓存里?

旋风男孩11


存储器集成电路分为ROM和RAM,RAM的主要特性:读写速度快,掉电后数据不能保存,地址总线和数据总线全部是并行接口可以直接连接在CPU的地址总线和数据总线上运行程序。分为静态RAM和动态RAM,静态RAM容量小,成本高,读写速度是存储器中最快的,所以在CPU中作为指令缓存器。动态RAM容量大,但是数据一段时间后有电也会丢失,所以动态RAM里有个刷新电路,每隔一段时间就会对数据重新写一遍,PC机中内存就是动态RAM.

因为RAM的地址总线是并行的,所以CPU可以快速的对RAM的任一地址单元进行读写,如果掉电后数据不丢失,那RAM就是完美的数据,程序存储器。

如果容量再大,那就完全可以把系统装进去。


陈仙7


不考虑经济性也就是钱的问题,以现在的技术能力,确实可以制造出能装下系统的CPU缓存,但是请相信我,你把系统装进CPU缓存后,结果会让你怀疑人生。

先说缓存(Cache)。缓存是分级的,在手机SOC芯片的CPU中,一般有三级缓存,分别是L1、L2、L3,都是由晶体管构成,区别在于晶体管的多少、大小和复杂程度,但肯定是速度快的缓存,晶体管数量更少、复杂程度更高,更耗电。

那么SOC芯片中,缓存有多大呢?下图是骁龙845的内核X光照片,CPU的三级缓存也就是L3 Cache被我圈出来了,面积占了整个芯片的大约1/70,容量有2MB。

我们假设都将安卓8.0系统装到L3 Cache中。安卓8.0系统大约有1.8GB左右,也就是1800MB,是骁龙845的CPU的L3 Cache的900倍,而L3 Cache的面积大约是整个845芯片的1/70,也就是0.34平方毫米(估算,数字不一定精确,见谅),容量扩大到1.8GB的话,面积大约为304平方毫米,相当于长3.04厘米,宽1厘米,不算夸张啊。考虑到手机还要装应用,流畅运行还要有空闲空间,因此缓存容量至少还要再加1.8GB,总容量达到3.6GB,面积大约为608平方毫米,相当于长3.04厘米,宽2厘米。

芯片封装后才能使用,封装后的面积至少要增加50%,也就是说3.6GB的缓存封装后的总面积至少为912平方毫米,相当于长3厘米,宽3.04厘米,这个面积,现在的手机也能比较轻松装下。

但是由于缓存速度很快,我们都知道,马儿能跑必然能吃,换句话说,3.6GB的缓存耗电量也是上千倍增加,手机估计一会儿就成电炉子了。

即使你解决散热问题,这颗带着超大号缓存的骁龙845速度会不会快到飞起呢?答案令人沮丧,它会从兔子变成乌龟。因为缓存做到这么大,CPU要在一个时钟内访问所有缓存单元,CPU内核不得不降速,而且是好几个数量级的降速,结果就是手机卡顿明显。

花了大笔钱,动用海量技术资源,得到的是一部运行慢吞吞的手机,所以一味增大缓存并不能提高性能,这也是多年来,CPU内核速度在提升,但缓存容量增加缓慢的原因。


段马乐咨询


这个问题很有意思,所以不请自来答一发。先说能不能把系统装进缓存。我的看法是,把系统装进CPU缓存里的想法完全可行,因为以现有的技术手段,可以在PC的CPU上做出容量大到装下系统的缓存,但

在手机CPU上则不行,至于为什么,后面再说。

CPU和硬盘之间隔着内存和缓存(Cache),速度从大到小依次为CPU/一级缓存>二级缓存>三级缓存>内存>硬盘(备注:二级缓存在CPU内时,运行速度与主频相同,在CPU外时,运行速度降为主频一半,这里假定二级缓存在CPU外)。

各级存储之间的关系可以打个粗浅的比方:硬盘相当于快递仓库,内存相当于快递营业部,二/三级缓存相当于快递三轮车货箱,一级缓存相当于盛着货物(数据)的快递箱。比方不一定精确,能理解就好。

题主的想法是把系统装进缓存,相当于直接把货物放到三轮车货箱,不经过仓库和快递营业部。只要“三轮车货箱”(二/三级缓存)够大,完全可以装下庞大的“货物”(系统)。而以目前的芯片制程工艺,是可以将二/三级缓存做到32个GB,并把它集成到CPU内核外。

一条笔记本用的普通的32GB内存条如下,如果去除封装、周围电路和PCB板,实际芯片面积可能只有整个板子的1/6大。

考虑到缓存是SRAM(Static RAM),属于静态存储器,结构比内存条采用的DRAM(随机动态存储器)复杂,体积是DRAM的6倍,所以32GB容量的SRAM芯片体积差不多就是一根32GB笔记本内存条大小,集成到CPU内核外围后,体积不会太夸张。

我们看到的CPU尤其是电脑CPU,之所以看起来体积不算小,主要是因为封装和引脚撑大了体积,真正的芯片仅比成人指甲盖略大,如上图红框内部分。所以CPU加上32GB二/三级缓存后,整个体积可能并不比下图的“白金至强”大(注意比较至强和人手的大小)。

不过这个体积对手机来说还是太大了,能耗也会高到吓人,所以在手机SOC芯片上没有实际操作性。

前面有回答说缓存太大的话,成本会太高。这也不是问题,SRAM仅比DRAM贵4倍,这点开销对土豪来说真不算啥,一般烧友咬咬牙、跺跺脚就能承受。

一句话,在CPU上(CPU内核外)集成能装下系统的缓存,从技术上说可行,从成本上看也并非高不可攀,简单说可以操作

问题又来了,既然可行,为啥不见英特尔、AMD推出这种产品呢?

答案是,缓存用的SRAM和内存用的DRAM都是易失性存储,一断电,数据清零,你还得重新装操作系统,烦不烦?

有人说,我24小时供电,像服务器那样,应该没问题了吧。

答案是,仍然有问题,CPU每次运算时,并不会用到全部系统代码(实际上也不可能),只会用到很少一部分,换句话说,把系统都装进缓存并不会提升运算速度和数据传输速度,反而会造成资源浪费。

总之,把系统装进缓存,技术可操作,成本也不是问题,唯一的问题是没实用性,这也是芯片大厂们没有推出相关产品的原因



魔铁的世界


cpu行不行不知道 我见过装到内存条的 速度超快 就是别关机


123ddc


理论上是可以的,但是考虑到安全性和成本等客观问题,实际中是不会这么做的。

这个问题非常有意思,想要明白其中的缘由,首先需要对计算机的存储模式做以了解。

三级(多级)存储

自从世界上第一台计算机“埃尼阿克”面世,往后所有的计算机都遵循着冯诺·依曼提出的“存储控制原理”。为了更高效的执行命令,设计者们规定了多级存储的模式。

  1. 三级存储(外存):也叫辅存,这种存储是日常中最为常见的,比如说光盘,移动硬盘和U盘。这类存储的容量非常大,可以达到几个T,多用来保存游戏,音乐,视频等数据,断电后可以保留数据。价格相对比较便宜。

  2. 二级存储:这类存储就是我们俗称的内存,可以存放CPU中的运算数据和外部存储器交换的数据,就像中转站一样。需要注意的是,内存保留的数据是暂时的,具有断电易失性。

  3. 一级存储:也成为寄存器,可以理解为“cpu里的存储器”。因为是直接和CPU进行数据往来,所以速度最快,价格也最为昂贵。相应的存储容量也很小,一般只有几个或数十个字节。

高速缓存

当计算机工作时,寄存器,内存,外存每时每刻都在进行数据传输,由于三者可能存在速率不匹配的问题,就会影响到计算机的整体运行速度。高速缓冲存储器(cache)正是为了缓解这个情况而生的。

cache位于CPU和内存之间,规格很小,容量多为几Kbits和几Mbits。通过优化调度等算法,系统的性能会大大改善。

回到问题本身,虽然说目前缓存技术已经比较成熟,甚至有了多级缓存技术,但缓存的容量并没有太大的突破。因为缓存实在是太贵啦!操作系统就以现在最常见的win10为例,32位的win10系统大小为16G,为了保证系统的正常运作,系统盘最少需要20G的空间。如果是64位的操作系统,除却系统固件以外,还需要不少空间来存储注册表之类的其他内容,差不多需要50G的空间!这个大小远不是缓存能够吃得消的。

第二,即使说我们不考虑成本问题,假设真的做出了容量为几十个G的缓存,还是不能直接将系统放进去。就和内存一样,SRAM必须工作在通电的环境下,就像内存一样,如果断电,先前保存的数据就会丢失,即使重新接上电后也不能恢复。


所以说,将系统直接装在缓存里,这个想法很大胆也很有新意,但无论是在经济效益还是安全保障方面,都是不切合实际的。在上述缘由没有得到解决之前,是不可能真正应用到实际生活中当中去的。


爱思考的奥特曼


真是闲人瞎操心,AMD和因特尔想把缓存扩大装系统那是分分钟的事,只不过都镶嵌进去不是有太多厂家倒闭,太多工人失业,赛扬和奔腾还有酷睿其实成本差不多,为什么还要分369等,就是套路多要多挣钱也给更多人就业机会


Zzpy


当然可以,但是有难度。首先要了解缓存、内存、硬盘的各种作用。

打个比方:一级缓存就像你吃饭的筷子,二三级缓存就像碗,内存就像大锅,硬盘就像冰箱。筷子能把你想吃的食物直接放进嘴里,嘴的大小限制了你只能用筷子往嘴里运送少量的食物,但是筷子上的食物能直接放到嘴里。从碗里那食物肯定要比筷子上的慢,锅里的更慢。当然冰箱里的是最慢的,但是能长久存放。

那么你想要用筷子把一锅的食物都夹起来就需要有足够大的筷子,但是筷子做大了随之而来的一个问题就是筷子上有我不想吃的食物也有我想吃的食物,那么寻找我想吃的食物就要花费时间寻找,造成了我反而吃的比较慢。而且要用大筷子吃饭就要手一直用大力拿着它,这又增加了体力支出,产生热量会增大。

最主要的是嘴的咀嚼能力有限,这么多的食物不可能全部放进嘴里,也不可能一直用筷子夹着,能吃了的先放在碗里,做好了的就放在锅里,不吃也不用的就放在冰箱里。



文姜泉


从事软件开发多年,这是一个非常有意思的话题,理论上是可行的但起码要满足两个条件,有这么容量的缓存其实就是不计代价,其二默认的操作系统可以针对缓存进行移植对接。这种想法只是在适用于理想状态下,真是状态下意义不是很大,毕竟成本因素占比还是非常大。未来科技的发展不排除有这种设想,主要因素还是成本方面的问题,现在配置电脑都会带着ssd硬盘,而且ssd硬盘在诞生之初价格也是高的吓人,随着技术的成熟以及产业链的成熟慢慢,成本逐渐下来了。

现在讲下缓存的原理,缓存就是数据交换区,计算机的工作原理是CPU访问的数据都是放置在内存区,如果需要保存操作硬盘来完成,现在常说的运行的程序文件存储在硬盘上,运行的时候在内存上,为了提升效率专门在cpu上集成一个缓冲区,就是我们说到的缓存,cpu的缓存作用就是数据交换区,cpu在访问数据的时候第一优先级先把缓存里面的数据取出来,如果没有再从内存中获取,但这个效率就会下降很多,大家都知道缓存是个好东西,但由于其材质等方面的因素价格要比普通的内存多上好几倍,而且为了不影响cpu的性能体积还不能太大,所以常见的缓存一般都设置的很小,即使很小性能上也会提升许多。

其实这种方式在软件上利用空间换时间的方式,有些大块头的软件为了提升运行的效率提前分配一块内存运行,这样运行的时候直接运行内存中程序,效率就会提升许多,所以无论硬件还是软件都有想通之处,现在的缓存技术已经升级到二级,三级的水准,道理还是相似,就是起到数据缓冲区的作用,而且这里面涉及到一个非常重要的概念,由于数据交换的频度或者调用的次数不一样,对于缓冲区数据的交换需要按照一定的算法规则来实现,不同的缓冲区可能采用不同的算法,不要觉得CPU里面的编程就变少了,只能讲软件无处不在。

多级缓存的原理如果再次深入学习的话,会变得十分复杂,缓存之间还需要固定的通讯格式,如果再加上多核cpu复杂度又是数量级的提升,所以芯片这块国内还是非常大的弱项,主要这项技术需要一个长时间的积累,不是单靠拿出几年的时间就能突击出来的,现在国内能做出来的基本上属于底端芯片,华为的麒麟芯片算是比较高端的了,也是经历多少年的打磨,在技术上距离顶端的还是存在一定的距离,不过随着时间的推移国人早晚会拥有属于自己的芯片技术,毕竟落后的太多了。

所以我们平时在买电脑的时候,一旦想追求点高速度就需要有大的缓存,而且增加一点很小的缓存就能增加不少金钱,所以缓存技术算是cpu里面一项非常重要的技术创新。

希望能帮到你。


大学生编程指南


这个问题嘛,举个例子,内存足够大能到1TB以上价格合适的话硬盘就没什么用了,同样硬盘足够快内存也没什么用了,缓存能大到几百G内存硬盘都是可以淘汰的,但是目前成本是个问题,或许有一天内存硬盘都会被集成到一个CPU里面,更或许未来电脑一块芯片可以同时集成CPU显卡,内存硬盘,甚至电源,外设接口,到那一天电脑就只剩下一块芯片就可以完成了,一个好的散热器,一台显示器,外设就是台电脑了


Hello四叶草


装缓存还不如装在内存里。

组套双路cpu,把内存装到256G,系统、软件啥的全部装里面,那可比装缓存里强


分享到:


相關文章: