首页 > 编程知识 正文

cpu核心逻辑原件,龙芯架构

时间:2023-05-05 09:26:24 阅读:147923 作者:4306

说一CPU自古以来就是个热门话题,吃普通哈密瓜的大佬除了CPU越高越好之外,可能什么都不知道。 曾经小编对CPU也很混乱,后来向很多大神请教,调查了很多资料,才稍微明白了一点。 现在,小编按照自己的理解,尽量用最常用的语言揭开CPU的神秘面纱,让更多的人了解CPU。

CPU的中文翻译被称为中央处理器。 好啊。 这其实只是胡说八道,但为了这头牛的翻译,我们也给牛一个比喻。 那么,把CPU比作国家的中央机关,接下来应对比喻进行说明。

影响CPU性能的主要因素分为主频和体系结构两部分。 不知道这里也没关系。 接下来听编辑为你解释,我理解。

主要频率可理解为中央部门的工作能力,框架可理解为国家管理制度,主要用于协调中央机构各部门之间的工作。 因此,中央机构整体的生产率(CPU性能)主要受这两个方面的影响。 工作能力越强,各部门之间的协调就越好,整体工作效率就越高。 相反,如果在某一方面不够,就会明显影响整体的生产率。

据了解,市场上最大的个人电脑处理器主要由两大品牌Intel和AMD垄断,但在大多数情况下,Intel都是被AMD推向热门。 其理由是AMD的体系结构不行。 主频略领先于英特尔,但整体性能完全被英特尔控制。 这是因为AMD中央机关各部门的协调能力比Intel差很多,即使工作能力相同,也无法顺利协调,导致整体工作性能无法企及。

性能结束后,接下来谈谈CPU的结构和工作原理。

CPU的结构主要由运算器、控制器、寄存器三个模块构成。

运算器是中央机关中执行任务的部门,也就是专门工作的部门,控制器是中央机构的领导小组,针对不同的需要,对运算器下达不同的命令; 寄存器可以理解为控制器与运算器之间的联络小组,主要工作是协调控制器与运算器。

从事运算器工作的这个部门正在寻找这个部门,说工作日整个中央机构都必须做点什么。 比如说,东边的洪灾,你去救灾吧; 西边发现了金矿,主导开采吧; 北方下了大雪,请送暖和点; 南方下了大雨,请疏导洪水……

控制器这个部门很棘手。 他们不用工作。 主要是针对国家(整个计算机)发生的各种情况,让运算器工作。 在这里,我们会发现大问题。 如果这个部门的闲蛋疼,乱下命令怎么办? 这样也没关系,我们限制了他们,制定了行为规范,不让他们乱搞。 该行为规范是CPU的指令集。

指令集是CPU的操作规范,所有指令必须严格按照该操作规范来执行。 以下说明根据CPU指令集的种类而不同。 其中最常见的是X86架构下的复杂指令集和ARM架构下的简单指令集。 X86是我们平时电脑CPU的架构,ARM是手机CPU的架构。

因为有计算机CPU这个中央机构的国家(计算机)面积大,人口多,国情复杂,什么事都发生,所以规章制度需要特别完善,要考虑如何应对一切情况。 另一方面,手机CPU这个中央机构的国家很小,人口少,面积狭小,所以规章制度稍微简单一点就可以了。 这就是复杂指令集和简单指令集的区别。

寄存器这个部门有点复杂。 虽然不像运算器和控制器那么重要,但是因为p的事情很多。 控制器平时喜欢向寄存器向运算器传达命令。 运算器担心数据过多无法及时处理,有时会让寄存器先记住,工作中可能需要钢笔、纸、螺丝刀等小工具,有时也会让寄存器拿着。

了解寄存器的功能后,我发现了另一个问题。 如果控制部门下达的命令太多,运算部门不能那么快结束,或者运算器让它记住或临时拥有的东西太多,寄存器部门太小,人又少,忙不过来怎么办? 是的,增加人员吧。 但是,这个部门的人员都在编制内,没有编制名额吗? 即使要做,也招募编辑吧。 也就是说,是我们常说的兼职。

招了兼职的话,无论如何也得给他名字吧。 那我再成立一个叫缓存的部门。 为了体现亲疏差异,该部门将兼职工作分为三个等级,分别是一级缓存、二级缓存、三级缓存。 反正是兼职的,名字就这么随便叫吧。

和在CPU这个中央机关里,新闻里说的话是兼职的,火锅是兼职的,与此不同,在这里,现金这个兼职部门代替了寄存器而存在。 这意味着当寄存器无法完成工作量时,它必须交给缓存。 一开始交给一级缓存去做,一级还没结束就给了二级,二级还没结束就给了三级。 这里发生了另一个问题。 那就是如果三级也做不到怎么办。

这完全没有问题。 请交给中央机关的下属部门。 这个部门是内存。 但由于存储器毕竟不属于中央机构,工作能力不如中央机构人员高,效率也不高。

所以,在控制部门发布命令或运算部门工作时,首先考虑寄存器。 寄存器忙不过来时向缓存求助。 缓存也忙不过来的时候向内存求助。 那么,内存也传不出去吗? 如果内存够不着的话就没办法了。 只能让电脑先堵了吧。 等运算部门先处理完前面的事情再说。 所以,买电脑不能只看CPU,还得跟上内存容量。

还有一个容易被忽视的问题。 在这里也说一下吧。 那是晶体管。 晶体管是构成CPU的最基础的原件,可以理解为整个中央机构的工作人员。 随着科技的进步,CPU的生产技术越来越精细,目前手机端CPU(arm架构)的工艺已经上升到7nm,电脑端也达到了14nm。

流程的提高,正如我们能理解的那样,缩小了

减每个办公人员的办公面积,以前科技不发达每个办公人员必须配一个独立办公室,才能有效完成工作,现在技术进步了,每个办公人员只需要一张办公桌就能完成工作了。所以同样的一栋大楼,可以容纳的办公人员(晶体管)就多了,工作能力就上升了。

以前一个CPU由于制程落后,只能容纳几千万或者几亿个晶体管,现在制程进步了,一个同样体积的CPU可以容纳几十亿个晶体管,性能自然就提升了。

那么,为什么晶体管数量增加了,CPU的能耗却没有增加呢?我们可以这么理解,每个工作人员都需要吃饱了才有力气干活,以前的工作人员需要吃九菜一汤才够力气,现在改为营养配餐了,每个工作人员只需要吃一片营养药丸就可以工作了,所以工作人员虽然增加了,但是整体伙食成本(耗电量)并没有增加。

最后,我们说一下CPU的核心和进程又是什么呢?我们可以这么理解,在单核时代,每个CPU只有一个核心,也就是只有一个中央机构,但是国家那么大,事那么多,中央机构每天加班25个小时都忙不完了。那就没办法了,扩充中央机构吧。于是乎双核、四核、多核CPU就出来了。每一个核心都是一个独立的中央机构,都具有相同的工作能力。

这么多个中央机构成立了,那听谁的,有事情交给哪个中央机构去做,要知道它们的权利和功能都是一样的啊。这时候就要改变CPU架构了,也就是国家的管理制度了。以前国家只有一个中央机构,啥事都交给它去做准没错,现在突然变成好几个中央机构了,怎么办?

这个时候就需要为每个核心安排去负责不同的事务了,这套中央机构专门负责农业,那套负责工业,剩下的负责税收、财政等等之类的。

那什么是进程呢,进程其实可以理解为一个中央机构里面的人员组成。有时候事太多了,光这几个中央机构处理起来还是有点吃力,但是为了节约成本,我们不能再组建新的中央机构了,那就只好折中处理,不另外成立新的中央机构了,就在原有的基础上,每个中央机构组建两套完全一致的工作班子吧。

所以,4核CPU就是拥有四个独立的中央机构,都具备相同的工作能力和权限,但是每个核心都会负责不同的事务。4核8线程就是四个独立的中央机构,每一个中央机构都拥有两套完整的工作班子,每套工作班子权限也一样。

这时候问题又出现了,例如某个中央机构负责的事特别多,忙不过来,而其他的中央机构负责的事很少,闲的发慌,那怎么办?这时候,我们的架构又出现了,好办!今天你这个核心负责的事多,就你来主导,让其他事少的核心辅助你工作。明天另外一个核心负责的事多,就由它来主导,其他核心辅助它工作。

在这里小编想起来一个网上很火的段子:MTK的CPU一核有难九核围观。这就是架构落后造成的,它的管理制度不完善,没办法调节每个中央机构之间的互相配合,有事情要做,往死里用一个核心,其他九个核心啥事没有,只好吃瓜围观了。

说法 二

有个人其实答的挺好,说架构=指令集,这个回答对非相关专业的人可能会带来另外一个疑问: 那指令集又是尼玛什么东东?
我举个例子吧:我们炒菜的时候,肯定要分步骤的,对吧。 那炒菜分什么流程呢? 从大的方面来说,起码要包含:买菜,择菜,洗菜,切菜,备调料,开火,热油,将菜放入锅中,翻炒(爆炒、煎、炸,等等),出锅,摆盘。
好,那我们来看,以上这些步骤,其实每一步又可以分为小的步骤,比如买菜,起码要分为:走到菜市场,挑选一家靠谱的菜摊,询价,称重,付钱,走回家。

所以,一个简单的炒菜,就是由一个个小步骤汇聚成的一个个大步骤所组成的。因此在执行“炒菜”这个动作的时候呢,只要按照每个步骤来,别管最后的菜好不好吃,起码能出来“菜”这个结果。
那我强调这些个步骤和步骤的细分,和我们要讨论的指令集又有什么关系呢? 有关系,关系大了! 其实炒菜的步骤,从概念上和CPU处理各种计算是类似的,CPU处理计算也是一个个小步骤汇聚成大步骤,完成大步骤即可以得到结果。而指令集就是CPU处理各种计算的步骤的细分,只不过它把各种步骤固定下来作为一个组合。

开个脑洞,假设存在一个“买菜指令集”,那这个指令集就是我上边说的这些具体步骤:买菜,择菜,洗菜,切菜,备调料,开火,热油,将菜放入锅中,翻炒(爆炒、煎、炸,等等),出锅,摆盘。当然,我说了,做菜的大致步骤如上,我并没有说你非要这么做。 根据喜好,你还可以调整顺序啊,或者你可以在网上买食材送上门啊,或者洗菜的过程中顺便摘菜啊,都可以的。 因此, 只要你的处理步骤不同,实际上你个人的“买菜指令集”就是不同的。

这个时候就要提到架构是什么了。 买菜你步骤不同没关系,得到同样一盘菜就好了;CPU处理计算,本来逻辑上说,只要结果正确步骤也没问题,可是,由于你必须要把你的指令集写死在芯片上,因此,不同的指令集,写在芯片上的电路自然也就有区别了;甚至由于指令集不同,每种指令集所需要的寄存器、数据带宽也都有所不同,那么制作出来的芯片自然区别比较大了。 这些不同的芯片设计和安排,就是所谓的“架构”。

所以,现在你就知道,x86的架构和ARM就不一样,他们的指令集不同,自然架构就不同了。这里顺口提一句什么是精简指令集(RISC),什么又是复杂指令集(CISC)。

精简指令集,就是把炒菜的步骤使劲分到最小,小到无法在细化,那么这时这个步骤就是通用的了,比如“买菜”的细分步骤“出门”,“出门”这个动作不光适用于买菜,买馒头,倒垃圾呀什么的,都可以使用“出门”这个细分步骤。 当这么多小到不能再小的步骤集合在一起,就是精简指令集了。

那复杂指令集则相反,它是不太细化的指令,比如“买菜”就是买菜,就是代表一整套买菜流程,而“倒垃圾”我就再来一整套倒垃圾流程。 因此复杂指令集就会比较个性化,设计起来也更困难,因为他每一个指令要完成的动作更复杂,但好处是效率高,时间快。而精简指令集虽然很好设计,但是每个动作被分为更多步,就会导致效率变低,执行慢,而如果你人为的加快时钟频率的话,能耗又会加大。

所以,二者兼有长短。 一般来说x86这种复杂指令集应用在个人电脑或者服务器上,而ARM这种精简指令集则用在移动设备上。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。