CPU主要由运算器、控制器、寄存器三部分组成,担负处理指令、执行操作、控制时间、处理数据四大作用,如果没有CPU,工业主板将无法工作。
X86和ARM的区别
1、目前CPU主要由X86和ARM两大架构。不同架构间的差距非常大,而从最基本的逻辑角度来分类的话,可以被分为两大类,即 “复杂指令集”与“精简指令集”系统,也就是“CISC”与“RISC”。 X86工业主板与ARM工业主板最主要区别是前者使用复杂指令集(CISC),而后者使用精简指令集(RISC),这也是为何X86工业主板比ARM工业主板在性能方面要快得多、强得多。
2、X86工业主板的功耗要比ARM工业主板的高。功耗和CPU制造工艺相关。ARM的CPU主要是由专业制造商生产,而Intel是由自己的工厂制造。一般来说后者比前者的工艺领先一代。如果同样的设计,造出来的处理器应该是Intel的更紧凑,如一个是22纳米,一个是28纳米,同样功能肯定是22纳米的耗电更少。那为何反而ARM工业主板的功耗比X86工业主板的低呢? 这跟CPU设计有关。
CPU设计又分为前端和后端设计,前端设计体现了CPU的构架,复杂指令集和精简指令集的区别是通过前端设计体现的。后端设计处理电压,时钟等问题,是耗电的直接因素。那后端是怎么影响耗电的?晶体管耗电主要两个原因:一个是动态功耗,一个是漏电功耗。动态功耗是指晶体管在输入电压切换的时候产生的耗电,而所有的逻辑功能的0/1切换,归根结底都是时钟信号的切换。如果时钟信号保持不变,那么这部分的功耗就为0。即所谓的门控时钟(Clock Gating)。而漏电功耗可以通过关掉某个模块的电源来控制(Power Gating)。当然,其中任何一项都会使得时钟和电源所控制的模块无法工作。区别在于,门控时钟的恢复时间较短,而电源控制的时间较长。此外,如果单条指令使用多个模块的功能,在恢复功能的时候,并不是最慢的那个模块的时间,而可能是几个模块时间相加,因为这涉及到一个上电次序(Power Sequence)的问题,也就是恢复工作时候模块间是有先后次序的,不遵照这个次序,就无法恢复。而遵照这个次序,就会使得总恢复时间很长。所以在后端这块,可以得到一个结论,为了省电,可以关闭一些暂时不会用到的处理器模块。但是也不能轻易的关闭,否则一旦需要恢复会让完成某个指令的时间会很长,总体性能显然降低。同时,子模块的门控时钟和电源开关通常是设计电路时就决定的,对于操作系统是透明的,无法通过软件来优化。
再来看前端。ARM的CPU有个特点,就是乱序执行能力不如X86。换句话说,就是用户在使用工控机时,其操作是随机的,无法预测的,造成了指令也无法预测。X86为了增强对这种情况下的处理能力,加强了乱序指令的执行。此外,X86还增强了单核的多线程能力。这样做的缺点就是,无法很有效的关闭和恢复处理器子模块,因为一旦关闭,恢复起来就很慢,从而造成低性能。为了保持高性能,就不得不让大部分的模块都保持开启,并且时钟也保持切换。这样做的直接后果就是耗电高。而ARM的指令强在确定次序的执行,并且依靠多核而不是单核多线程来执行。这样容易保持子模块和时钟信号的关闭,显然就更省电。
3、在操作系统兼容方面,几乎所有X86硬件平台都可以直接使用微软的视窗系统及现在流行的几乎所有工具软件,所以X86工业主板在系统兼容性方面具有无可比拟的优势。
ARM几乎都采用Linux的操作系统,而且几乎所有的硬件系统都要单独构建自己的系统,与其他系统不能兼容,这也导致其应用软件不能方便移植,也制约了ARM的发展和应用。Android系统开发后,统一了ARM架构工控机的操作系统,使新推出基于ARM架构的工控机系统有了统一的、开放式的、免费的操作系统,为ARM的发展提供了强大的支持和动力。
X86和ARM的发展
两者不具备可比性,X86无法做到ARM的功耗,而ARM也无法做到X86的性能。在服务器、工作站以及其它高性能运算等应用方面,不考虑功耗和使用环境等条件,X86占了优绝对优势;但受功耗、环境等条件制约且工作任务固定的情况下ARM就占有很大的优势。
CopyRight©深圳市研为科技有限公司2024
全国销售热线:0755-26470366、18923869746(微信同号)
传真:0755-26470350E-mail:sales@yenware.com
地址:深圳市宝安区石岩街道石龙社区工业二路5号海天蓝宇科技工业园3栋8楼
研为科技微信公众号