您的位置:首页 > 其它

一些基本概念

2016-06-05 17:26 239 查看
1.CPU:处理器即CPU,包括ARM(用于嵌入式,精简指令集,RISC,低功耗),Intel x86(用于PC,服务器)等;

1.1中央处理器(CPU)是你智能设备的大脑。它的任务是通过执行一系列指令来驱动你的设备,包括显示屏、触摸屏、调制解调器等,让一坨塑料金属混合物变成闪亮的智能手机或者平板电脑。

移动设备非常复杂,其中的处理器需要执行数百万行指令才能完成人们希望这些设备去做的事。速度和功耗对处理器来说至关重要。速度影响用户体验,功耗影响电池寿命。完美的移动设备必须有好性能以及低功耗。

这就是为什么选择什么样的处理器很重要。一个超级耗电、反应迟钝的处理器会很快吸干你的电池,而一个考究的、高效的处理器给你带来高性能和长久的电池寿命。
1.2关于复杂指令集和精简指令集(例子很形象)

我们可以继续举个例子,比如说我们要命令一个人吃饭,那么我们应该怎么命令呢?我们可以直接对他下达“吃饭”的命令,也可以命令他“先拿勺子,然后舀起一勺饭,然后张嘴,然后送到嘴里,最后咽下去”。从这里可以看到,对于命令别人做事这样一件事情,不同的人有不同的理解,有人认为,如果我首先给接受命令的人以足够的训练,让他掌握各种复杂技能(即在硬件中实现对应的复杂功能),那么以后就可以用非常简单的命令让他去做很复杂的事情——比如只要说一句“吃饭”,他就会吃饭。但是也有人认为这样会让事情变的太复杂,毕竟接受命令的人要做的事情很复杂,如果你这时候想让他吃菜怎么办?难道继续训练他吃菜的方法?我们为什么不可以把事情分为许多非常基本的步骤,这样只需要接受命令的人懂得很少的基本技能,就可以完成同样的工作,无非是下达命令的人稍微累一点——比如现在我要他吃菜,只需要把刚刚吃饭命令里的“舀起一勺饭”改成“舀起一勺菜”,问题就解决了,多么简单。这就是“复杂指令集”和“精简指令集”的逻辑区别。

可不可以理解为复杂指令集就是硬件设计简单,指令复杂,精简指令集就是硬件设计复杂(提前训练了),指令简单?

2.CPU,内存,外存

2.1 CPU

中央处理单元(CPU)主要由运算器、控制器、寄存器三部分组成,从字面意思看运算器就是起着运算的作用,控制器就是负责发出CPU每条指令所需要的信息,寄存器就是保存运算或者指令的一些临时文件,这样可以保证更高的速度。

2.2内存

1.内存最小的物理单元是位,从本质上来讲,位是一个位于某种二值状态(通常是0和1)下的电气单元。

2.3八位组成一个字节,这样组合的可能有256种(2的8次方)。字节是内存可访问的最小单元,每个这样的组合可代表单独的一个数据字符或指令。

2.4 pc机上所使用的内存可以分为两大类,分别是只读内存(rom)和随即访问内存(ram)。从它们的名字上可以看出,rom数据不能随意更新,但是在任何时候都可以读取。即使是断电,rom也能够保留数据。至于ram则在任何时候都可以读写,因此ram通常用作操作系统或其他正在运行的程序的临时存储介质(可称作系统内存)。不幸的是,掉电时ram不能保留数据,如果需要保存数据,就必须把它们写入到一个长期的存储器中(例如硬盘)。正因为如此,有时也将ram称作“可变存储器”。

2.5中央处理器(CPU)是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。主要包括运算器(ALU)和控制器(CU)两大部件。此外,还包括若干个寄存器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和输入/输出设备合称为电子计算机三大核心部件。

cpu不是内存。
内存又称主存,是CPU能直接寻址的存储空间,由半导体器件制成。

2.6 CPU主要的性能指标
主频:即CPU内部核心工作的时钟频率,单位一般是兆赫兹(MHz)。这是我们平时无论是使用还是购买计算机都最关心的一个参数,我们通常所说的133、166、450等就是指它。对于同种类的CPU,主频越高,CPU的速度就越快,整机的性能就越高。
外频和倍频数:外频即CPU的外部时钟频率。外频是由电脑主板提供的,CPU的主频与外频的关系是:CPU主频=外频×倍频数。
内部缓存:采用速度极快的SRAM制作,用于暂时存储CPU运算时的最近的部分指令和数据,存取速度与CPU主频相同,内部缓存的容量一般以KB为单位。当它全速工作时,其容量越大,使用频率最高的数据和结果就越容易尽快进入CPU进行运算,CPU工作时与存取速度较慢的外部缓存和内存间交换数据的次数越少,相对电脑的运算速度可以提高。
地址总线宽度:地址总线宽度决定了CPU可以访问的物理地址空间,简单地说就是CPU到底能够使用多大容量的内存。

2.7 CPU中的寄存器和内存的关系

寄存器(Cache)是CPU内部集成的,内存是挂在CPU外面的数据总线上的,访问内存时要在CPU的寄存器(Cache)填上地址,再执行相应的汇编指令,这时CPU会在数据总线上生成读取或写入内存数据的时钟信号,最终内存的内容会被CPU寄存器(Cache)的内容更新(写入)或者被读入CPU的寄存器(Cache)(读取)。如图:





CPU里的寄存器其实就是我们常说的:Cache,有1级 和 2级,(L1,L2)L1容量比较小,L2(集成在主板上,说使用的为静态RAM)会多一些,L1是集成在CPU内部的寄存器(L1与CPU 同步),访问它速度自然很快,但容量比较小,L1 64K L2现在最高的就2MB,这显然是不够的,所以我们都需要扩展它,内存(DDR RAM)就是扩展的“寄存器”,它的访问速度就比 Cache 速度慢!CPU 在运行某计算时,它会把使用频率高的数据放到L1,L2,把不常用的数据保存在RAM中,需要访问的时候再读入Cache,当然相比之下硬盘的速度就更低。。。。。


3.指令集:指令集是存储在CPU内部,对CPU运算进行指导和优化的硬程序。最简单的话概括,那个是CPU硬件接受指令,完成计算,输出结果时与软件进行交互时使用的语言,每条新的指令一般对应着一条或几条汇编语言,编译后对应着可以被CPU识别的机器码。指令集的支持是硬件与软件共同作用的结果,要想CPU支持某指令集,就要修改硬件电路,要想让软件支持新的指令集,就要修改程序,重新编译。

4.异构计算

ARM的big.LITTLE架构是一项Intel一时无法复制的创新。在big.LITTLE架构里,处理器可以是不同类型的。传统的双核或者四核处理器中包含同样的2个核或者4个核。一个双核Atom处理器中有两个一模一样的核,提供一样的性能,拥有相同的功耗。

ARM通过big.LITTLE向移动设备推出了异构计算。这意味着处理器中的核可以有不同的性能和功耗。当设备正常运行时,使用低功耗核,而当你运行一款复杂的游戏是,使用的是高性能的核。

这是什么做到的呢?设计处理器的时候,要考虑大量的技术设计的采用与否,这些技术设计决定了处理器的性能以及功耗。

在一条指令被解码并准备执行时,Intel和ARM的处理器都使用流水线。就是说解码的过程是并行的。

第一步从内存中读取指令,第二步检查和解码指令,第三步执行指令,周而复始。流水线的好处在于,当前指令在第二步的时候,下一条指令已经处于第一步。当前指令在第三步中执行的时候,下一条指令正处于第二步,而下下条指令处于第一步中,如此循环。

为了更快地执行指令,这些流水线可以被设计成允许指令们不按照程序的顺序被执行(乱序执行)。一些巧妙的逻辑结构可以判断下一条指令是否依赖于当前的指令执行的结果。Intel和ARM都提供乱序执行逻辑结构,可想而知,这种结构十分的复杂。复杂意味着更多的功耗。

Intel处理器由设计者们选择是否加入乱序逻辑结构。异构计算则没有这方便的问题。ARM Cortex-A53采用顺序执行,因此功耗低一些。而ARM Cortex-A57使用乱序执行,所以更快但更耗电。采用big.LITTLE架构的处理器可以同时拥有Cortex-A53和Cortex-A57核,根据具体的需要决定如何使用这些核。在后台同步邮件的时候,不需要高速的乱序执行,仅在玩复杂游戏的时候需要。在合适的时间使用合适的核。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: