主流的CPU架构_cpu体系架构-程序员宅基地

技术标签: Linux  CPU架构  arm开发  

cpu架构

        CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,是为了区分不同类型CPU的重要标示。目前市面上的CPU分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CPU。两个不同品牌的CPU,其产品的架构也不相同,例如,Intel、AMD的CPU是X86架构的,而IBM公司的CPU是PowerPC架构,ARM公司是ARM架构。

一、X86架构

        X86是微处理器执行的计算机语言指令集,指一个Intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。1978年6月8日,Intel 发布了新款16位微处理器 8086,也同时开创了一个新时代:X86架构诞生了。

X86指令集是美国Intel公司为其第一块16位CPU(i8086)专门开发的,美国IBM公司1981年推出的世界第一台PC机中的CPU–i8088(i8086简化版)使用的也是X86指令。

采用CISC(Complex Instruction Set Computer,复杂指令集计算机)架构。与采用RISC不同的是,在CISC处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。

随着CPU技术的不断发展,Intel陆续研制出更新型的i80386、i80486直到今天的 Pentium 4系列,但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集。

二、ARM架构

ARM是高级精简指令集的简称(Advanced RISC Machine),它是一个32位的精简指令集(RISC)架构,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。

其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。如今,ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。ARM处理器可以在很多消费性电子产品上看到,从可携式装置到电脑外设甚至在导弹的弹载计算机等军用设施中都有它的存在。

体积小、低功耗、低成本、高性能——ARM被广泛应用在嵌入式系统中的最重要的原因支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;大量使用寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行效率高;指令长度固定。Load_store结构:在RISC中,所有的计算都要求在寄存器中完成。而寄存器和内存的通信则由单独的指令来完成。而在CSIC中,CPU是可以直接对内存进行操作的。流水线处理方式

Ps : RISC和CISC

  • RISC:精简指令集处理器,Reduced Instruction Set ComputerRISC结构简单,选取了使用频率高的简单指令,指令长度固定,多为单周期指令在功耗、体积、价格等方面有很大优势,多用于嵌入式领域

  • CISC:复杂指令集处理器侧重于硬件执行指令的功能性,CISC指令及处理器的硬件结构复CISC指令复杂,指令长度与周期不固定,在处理能力上有优势

三、RISC-V架构

RISC-V 架构是基于 精简指令集计算(RISC)原理建立的开放 指令集架构(ISA),RISC-V是在指令集不断发展和成熟的基础上建立的全新指令。RISC-V 指令集完全开源,设计简单,易于移植Unix系统,模块化设计,完整工具链,同时有大量的开源实现和流片案例,得到很多芯片公司的认可。

RISC-V 架构的起步相对较晚,但发展很快。它可以根据具体场景选择适合指令集的指令集架构。基于RISC-V 指令集架构可以设计服务器CPU,家用电器CPU,工控CPU和用在比指头小的传感器中的CPU。

四、MIPS架构

MIPS架构(MIPS architecture,为Microprocessor without interlocked piped stages architecture的缩写,亦为Millions of Instructions Per Second的相关语),是一种采取精简指令集(RISC)的处理器架构,1981年出现,由MIPS科技公司开发并授权,广泛被使用在许多电子产品、网络设备、个人娱乐装置与商业装置上。最早的MIPS架构是32位,最新的版本已经变成64位。

x86是PC和服务器的主流,ARM是移动设备的主流,RISC-V可能是未来的主流。

五、ARM与X86架构比较

性能对比

X86结构的电脑无论如何都比ARM结构的系统在性能方面要快得多、强得多。X86的CPU的主频随便就是1GHZ以上,双核、四核大行其道,现在通常使用22nm制程的工艺进行生产;而ARM方面,其CPU通常是几百兆,最近才出现1G左右的CPU,制程通常使用32nm或45nm制程的工艺,可以说在性能和生产工艺方面ARM根本不是X86结构系统的对手。

但ARM的优势不在于性能强大而在于效率,ARM采用RISC流水线指令集,在完成综合性工作方面根本就处于劣势,而在一些任务相对固定的应用场合其优势就能发挥得淋漓尽致。

扩展能力对比

X86结构的电脑采用“桥”的方式与扩展设备(如硬盘、内存等)进行连接,而且x86结构的电脑出现了近30年,其配套扩展的设备种类多,价格也比较便宜,所以x86结构的电脑能很容易进行性能扩展,如增加内存、硬盘等。

ARM结构的电脑是通过专用的数据接口使CPU与数据存储设备进行连接,所以ARM的存储、内存等性能扩展难以进行(一般在产品设计时已经定好其内存及数据存储的容量),所以采用ARM结构的系统,一般不考虑扩展,基本奉行“够用就好”的原则。

操作系统的兼容性

X86系统由微软及Intel构建的Wintel联盟一统天下,垄断了个人电脑操作系统近30年,形成巨大的用户群,也深深固化了众多用户的使用习惯,同时x86系统在硬件和软件开发方面已经形成统一的标准,几乎所有x86硬件平台都可以直接使用微软的视窗系统及现在流行的几乎所有工具软件,所以x86系统在兼容性方面具有无可比拟的优势。

ARM系统几乎都采用Linux的操作系统,而且几乎所有的硬件系统都要单独构建自己的系统,与其他系统不能兼容,这也导致其应用软件不能方便移植,这一点一直严重制约了ARM系统的发展和应用。

GOOGLE开发了开放式的Android系统后,统一了ARM结构电脑的操作系统,使新推出基于ARM结构的电脑系,有了统一的、开放式的、免费的操作系统,为ARM的发展提供了强大的支持和动力。

软件开发的方便性及可使用工具的多样性

软件配套、软件开发工具的配套及兼容等工作,X86已经到达非常成熟甚至可以说是完美的境界。所以使用X86电脑系统不仅有大量的第三方软件可供选择也有大量的软件编程工具可以 帮助您完成您所希望完成的工作。

Arm结构的电脑系统因为硬件性能的制约、操作系统的精简、以及系统兼容等问题的制约,造成Arm结构的电脑系统不可能像X86电脑系统那样有众多的编程工具和第三方软件可供选择及使用,ARM的编程语言大多采用C和JAVA或C++。

因此,基于x86结构电脑系统平台开发软件比arm结构系统更容易、更简单、实际成本也更低,同时更容易找到第三方软件(免去自己开发的时间和成本),而且软件移植更容易。

功耗对比

X86电脑因考虑要适应各种应用的需求,其发展思路是:性能+速度。20多年来x86电脑的速度从原来8088的几M发展到现在随便就是几G,而且还是几核,其速度和性能已经提升了千、万倍,技术进步使x86电脑成为大众生活中不可缺少的一部分。但是x86电脑发展的方向和模式,使其功耗一直居高不下,一台电脑随便就是几百瓦,即使是号称低功耗节能的手提电脑或上网本,也有十几、二十多瓦的功耗,这与ARM结构的电脑就无法相比。

ARM的设计及发展思路是:满足某个特殊方面的应用即可,在某一专项领域是最强的,(哪怕在其他方面一无是处),这样Arm以其不是最强的技术,同样也不是很高级制程的制造工艺,生产出性能不是很强的电脑系统,但在某个专业应用方面则是最好的,特别是在众多终端应用,尤其在移动终端应用上占有绝对优势的统治地位,这个原因就是:功耗。

高功耗导致了一系列X86系统无法解决的问题出现:系统的续航能力弱、体积无法缩小、稳定性差、对使用环境要求高等问题。从这里我们可以看到x86系统与ARM系统是在两个完全不同领域方面的应用,它们之间根本不存在替换性,在服务器、工作站以及其他高性能运算等应用方面,是可以不考虑功耗和使用环境等条件时,X86系统占了优绝对优势。但受功耗、环境等条件制约且工作任务固定的情况下ARM就占有很大的优势,在手持式移动终端领域,X86的功耗更使它英雄毫无用武之地。

从以上对比分析,给了我们的一个很清晰的感觉,ARM和X86结构的电脑根本就无法对比,ARM根本就不是X86电脑的的对手。如果只考虑上述几个方面的要数,ARM确实无法与X86电脑竞争,甚至连比较的资格都没有。但是近1、2年,ARM的产品在终端应用特别是手持终端应用飞速发展(如:智能手机、平板电脑等),其销售数量已经远远超出x86结构的电脑销售数量,可见ARM是具有其与X86结构电脑不可对比的优势。

X86系统和ARM系统应该是两个完全不同领域的应用,如果功能单一又受到环境制约的应用,如:POS、ATM、多媒体广告机(现已经有ARM+DSP的产品)、车载电脑终端等应用,应该首先考虑ARM方案,ARM方案与X86相比,其功耗和成本占有很大优势。

现在ARM很强大,但它距离X86还是非常遥远,毕竟它们设计的出发点不一样, X86无法做到ARM的功耗,而ARM也无法做到X86的性能。不过这也不意味着ARM以后就只能占据低端,毕竟任何架构都有其优点,一旦有应用针对其进行优化,那么就可以扬长避短。X86的繁荣也正是因为整个世界的资源都针对它进行了优化所致。只要能为ARM找到合适的应用与适合的领域,未来ARM也未必不可以进入更高的层次。
 

参考文献:

处理器架构_百度百科

四大主流cpu架构是什么-常见问题-PHP中文网

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013253075/article/details/126753908

智能推荐

FairyGUI视频播放实现踩坑笔记,基于Unity VideoPlayer_fgui播放视频-程序员宅基地

文章浏览阅读5.8k次,点赞2次,收藏4次。Unity CG播放, 基于FairyGUI实现VideoPlayer视频播放,_fgui播放视频

JS-匿名函数-闭包(function(){})() -程序员宅基地

文章浏览阅读131次。javascript 闭包匿名函数var oEvent = {};(function(){var addEvent = function(){};function removeEvent(){}oEvent.addEvent = addEvent;oEvent.removeEvent = removeEvent;})();

Ubuntu 18.01下安装TensorFlow Object Detection API--从头开始训练自己的数据集_ubuntu18 tensorflow2 object detection api自己的数据集-程序员宅基地

文章浏览阅读607次。1、安装Tensorflow请参考官方说明及其它博客安装tensorflow,要使用Tensorflow Object Detction API,tensorflow版本需1.4及以后版本。我的系统已经安装Ubuntu 16.04系统,基础软件安装如下表,tensorflow,opencv均正常工作软件 版本 说明Tensorflow 1.4.0-rc1 ..._ubuntu18 tensorflow2 object detection api自己的数据集

关于NetBeansIDE8.2的下载安装说明_netbeans-8.2-javaee-windows-程序员宅基地

文章浏览阅读3.3w次,点赞34次,收藏153次。1.复制这个网址,进去官网下载netbeans-8.2-windows.exe。网址:https://pan.baidu.com/s/1ekAdXAtxf8vWogD5pfrlbA 提取码:s02r2.点击download,安装在c盘(看你想安装在哪)。当然,安装之前你要有安装jdk(之前的文章有关于java的jdk下载安装)。3.双击.exe文件,进行安装。4.点击定制。..._netbeans-8.2-javaee-windows

必备工具:15款在线画图软件推荐_免费作图软件 cdsn-程序员宅基地

文章浏览阅读1k次,点赞16次,收藏23次。绘画是设计师最常见的工作之一,设计师对在线绘画工具的要求越来越高,市场上也出现了各种在线绘画工具,让设计师不知道如何选择高质量的在线绘画工具,一个好的在线绘画工具不仅可以让你轻松绘画,而且可以让你的工作效率倍增,提供更有价值的设计参考,让你的设计更快。即时设计是一款免费的在线 UI 设计工具,无系统限制,浏览器打开即可使用,更有丰富的在线素材、云端字体、交互动画等功能满足多种需求,像 PC 端的网页,移动端的 App、小程序页面,都可以通过即时设计高效完成。Draw.To是一个优秀的在线绘图工具。_免费作图软件 cdsn

chrome-开发者工具debugger调试_chrome.debugger.sendcommand-程序员宅基地

文章浏览阅读2.6w次。资源贴:https://blog.csdn.net/crper/article/details/507227531、首先在你的需要停下来的地方加上 -debugger标记在开发者工具中,可以直接打断点,前提你能清楚的找到js代码,建议使用上面的debugger,目的明确。 2、刷新页面,进入调试状态 3、打开开发者工具 快捷键发f12,进入source面板..._chrome.debugger.sendcommand

随便推点

java 调用 rar压缩文件-程序员宅基地

文章浏览阅读385次。[code="java"]public static boolean winrar(String winrarfile, String foler) { //winrar软件的安装路径 String rarPath = "C:\\Program Files\\WinRAR\\WinRAR.exe"; String cmd=""; // cmd=r..._java调用winrar提示未知选项mx10385760

有没有一种间隔循环提醒的便签APP-程序员宅基地

文章浏览阅读837次。在快节奏的社会,每天醒来都有一堆事情需要处理。如果不小心把事情忘记了,就会造成很严重的后果。像纸质便签本这种只有记录没有提醒功能的工具,已经不符合现代人的期待。提醒功能强大的记事便签软件,才是我们所需要的。职场上非常流行的便签APP是敬业签,敬业签除了可以记录文本内容,以及上传图片、声音、文件附件外,还可以给每条事项添加提醒时间。在手机敬业签上,在输入框左下角点闹钟图标,或者左滑已保存的内容,都可以添加提醒时间。敬业签的提醒模式是多样化的,可以设置单次提醒、按天/周/月/季度/年/自定义周期重复_循环提醒

Qt学习笔记第一弹 Qt简介及在Windows上搭建Qt开发环境_windows qt-程序员宅基地

文章浏览阅读3.3k次。有的同学可能会问:“笔者大大,不是Qt的学习笔记吗,跟Qt Creator有啥关系?”别急,且听笔者大大娓娓道来。Qt Creator是什么呢?通俗易懂的讲,它是一个用于开发图形用户界面应用程序的软件,细说的话,Qt Creator是Qt被Nokia(这英文是不是看着很眼熟,没错,就是能砸核桃的诺基亚)收购后推出的一款轻量级IDE(集成开发环境),它的设计是为了使开发人员能够利用Qt这个应用程序开发框架更加快速及轻易的完成开发任务。_windows qt

搞懂Vue-Router的概念和使用,看完这篇文章就够了-程序员宅基地

文章浏览阅读284次,点赞4次,收藏5次。如果你在最初创建项目的时候,选择一起安装vue-router的话,项目代码也就配置好了,下面我们来手动安装配置一下;首先,在项目中安装vue-router其次,在src文件夹下面创建一个router文件夹,并在其下创建index.js},routes})然后,在main.js里面注册路由最后,在项目组件中添加 < router-view /> 视图一级路由视图路由可以多层嵌套,这里就不多讲啦,具体可以查看官网中的的具体讲解;五. 路由传参前面我写过专门的介绍,可点击查看;

关于MOSFET驱动电阻的选择_mos管驱动电阻怎么选-程序员宅基地

文章浏览阅读1.8w次,点赞20次,收藏124次。等效驱动电路: L为PCB走线电感,根据他人经验其值为直走线1nH/mm,考虑其他走线因素,取L=Length+10(nH),其中Length单位取mm。Rg为栅极驱动电阻,设驱动信号为12V峰值的方波。Cgs为MOSFET栅源极电容,不同的管子及不同的驱动电压时会不一样,这儿取1nF。VL+VRg+VCgs=12V 令驱动电流 得到_mos管驱动电阻怎么选

chatgpt赋能python:Python图像归一化是什么?_python 图像归一化-程序员宅基地

文章浏览阅读252次。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。AI职场汇报智能办公文案写作效率提升教程 专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。_python 图像归一化