处理器指令集和架构

现在真是一个IT技术大发展的时代,不断的有新概念出现,让人目不暇接,但到目前为止,不管什么硬件设备,CPU都是其核心。本文就带你了解CPU架构的历史和现状,以后装13时直接说架构。首先了解指令集架构。

目前已存的指令集架构有4种: 复杂指令集运算(Complex Instruction Set Computing,CISC);精简指令集运算(Reduced Instruction Set Computing,RISC) ;显式并行指令集运算(Explicitly Parallel Instruction Computing,EPIC);超长指令字指令集运算(VLIW)。基于VLIW研发的CPU架构主要用于早期的小型机,现在已基本消亡。而EPIC是Intel和HP从VLIW中发展出来的,目前好像只有Intel的IA-64架构下的纯64位微处理器的Itanium/Itanium 2采用EPIC。因此目前比较流行的指令集只剩下:CISC和RISC。
在这里插入图片描述

CISC

CISC在20世纪90年代前被广泛的使用,其特点是通过存放在只读存储器中的微码(microcode)来控制整个处理器的运行。早期的计算机部件比较昂贵,主频低,运算速度慢。为了提高运算速度,人们不得不将越来越多的复杂指令加入到指令系统中,以提高计算机的处理效率。随着需求的不断增加,设计的指令越来越多,为支持这些新增的指令并保持兼容以前的指令,计算的体系结构越来越复杂。然而,在CISC指令集的各种指令中,其使用频率却相差悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序设计中只占20%。

为改变这种状况,1980年Patterson和Ditzel 两位学者完成了一篇题为《精简指令集计算机概述》的开创性论文,全面提出了精简指令集的设计思想,随后,柏克来大学的研究生依照此理论基础,设计出了第一颗精简指令集处理器RISC I,这颗处理器远比当时已经相当流行的CISC处理器简单的多,在设计上所花费的功夫也降低许多,但整体功能上的表现却与CISC处理器不相上下。从此处理器设计方向便分别向着这两个大的方向发展。基于指令集的CPU架构。

CISC:Intel和AMD的X86架构都是基于CISC,包括X86和X86-64。

RISC: 包括ARM架构、MIPS架构、IBM 的PowerPC架构、SUN 的 Ultra SPARC架构。

接下来依次认识以下这几个CPU架构:

X86架构:

1978年6月8日,Intel发布了新款16位微处理器“8086”,也同时开创了一个新时代:x86架构诞生了。依次x86 又叫 IA32,即 Intel Architecture 32(Intel32位架构),不管是Intel生产的 x86 CPU,还是AMD或者VIA生产的,都是 IA32。2003年,AMD推出了业界首款64位处理器Athlon 64,也带来了x86-64,即x86指令集的64位扩展超集,具备向下兼容的特点。为了和AMD展开竞争,Intel也在2004年推出了自己的64位版x86,也就是EM64T。

在X86架构中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。
在这里插入图片描述

ARM架构:

ARM架构过去称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。在今日,ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。

ARM处理器的主要特点是:体积小、低功耗、低成本、高性能;支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;大量使用寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行效率高;指令长度固定;Load_store结构;流水线处理方式。
在这里插入图片描述

MIPS架构:

无内部互锁流水级的微处理器(Microprocessor without interlocked piped stages architecture),在1981年由MIPS科技公司开发并授权,广泛被使用在许多电子产品、网络设备、个人娱乐装置与商业装置上。最早的MIPS架构是32位,最新的版本已经变成64位。它的基本特点是:包含大量的寄存器、指令数和字符\可视的管道延时时隙。这些特性使MIPS架构能够提供最高的每平方毫米性能和当今SoC设计中最低的能耗。

2002年,中国科学院计算所开始研发龙芯处理器,就采用MIPS架构,但未经MIPS公司的授权,遭到侵权的控告。2007年,中国科学院与MIPS公司达成和解,得到正式授权。中国龙芯2和前代产品采用的都是64位MIPS指令架构。
在这里插入图片描述

PowerPC架构:

增强RISC性能优化架构(Performance Optimization With Enhanced RISC – Performance Computing)。POWER是1991年,由Apple(苹果电脑)、IBM、Motorola(摩托罗拉)组成的AIM联盟所发展出的微处理器架构。PowerPC是整个AIM联盟平台的一部分,并且是到目前为止唯一的一部分。如苹果电脑自2005年起,就将旗下电脑产品转用Intel CPU。PowerPC架构CPU主要被IBM用于其小型机上。

在这里插入图片描述
Ultra SPARC架构:

“可扩充处理器架构”(Scalable Processor ARChitecture)。它最早于1985年由Sun电脑所设计,也是SPARC国际公司的注册商标之一。SPARC国际授权了多家生产商采用,包括德州仪器、Cypress半导体、富士通等。由于SPARC架构也对外完全开放,因此也出现了完全开放原始码的LEON处理器,这款处理器以VHDL语言写成,并采用LGPL授权。Ultra SPARC架构也主要用于小型机上。
在这里插入图片描述

架构间的比较

鉴于MIPS架构、PowerPC架构、Ultra SPARC架构的CPU我们日常很难接触到,因此本文仅将X86架构和ARM进行一个对比。

1、制程工艺

ARM架构主要用途决定其追求处理器功耗低,而X86架构则是处理能力强大。现在主流的ARM芯片已使用10nm制程工艺了,而I7CPU却依然采用的14nm制程工艺,可能因为其计算体系庞大,要使用更先进的制程工艺难度更大吧。

2、64位计算

对于64位计算,X86架构的两巨头AMD和Intel也有一些显著区别。Intel最初并没有开发64位版本的x86指令集。64位的指令集名为x86-64(有时简称为x64),实际上是AMD设计开发的。Intel做的64位计算,是搞了一个新64位处理器项目名为IA64。由此制造出了Itanium系列处理器。而AMD知道自己造不出能与IA64兼容的处理器,于是它把x86扩展一下,加入了64位寻址和64位寄存器。最终出来的架构,就是 AMD64,成为了64位版本的x86处理器的标准。

而ARM在看到移动设备对64位计算的需求后,于2011年发布了ARMv8 64位架构。ARMv8使用了两种执行模式,AArch32和AArch64。顾名思义,一个运行32位代码,一个运行64位代码。ARM设计的巧妙之处,是处理器在运行中可以无缝地在两种模式间切换。

3、异构计算

ARM的big.LITTLE架构是一项Intel一时无法复制的创新。在big.LITTLE架构里,处理器可以是不同类型的。传统的双核或者四核处理器中包含同样的2个核或者4个核,每个核提供一样的性能,拥有相同的功耗。而ARM通过big.LITTLE向移动设备推出了异构计算。这意味着处理器中的核可以有不同的性能和功耗。当设备正常运行时,使用低功耗核,而当你需要高计算能力时,使用的是高性能的核。

在这里插入图片描述
4、功耗。

功耗主要是由这几点决定的。首先,功耗和工艺制程相关。现在主流的制程工艺在10nm-14nm,而主流ARM架构CPU和X86架构CPU的制程工艺相差不大,但为什么反而ARM的比X86耗电少得多呢。这就和设计相关了。

X86为了增强对乱序操作的处理能力,加强了乱序指令的执行。此外,X86还增强了单核的多线程能力。这样做的缺点就是,无法很有效的关闭和恢复处理器子模块,因为一旦关闭,恢复起来就很慢,从而造成低性能。而ARM的指令强在确定次序的执行,并且依靠多核而不是单核多线程来执行。这样容易保持子模块和时钟信号的关闭,显然就更省电。

另外在操作系统使用上,个人电脑上通常会开很多线程,而移动平台通常会做优化,只保持必要的线程。这样使得耗电差距进一步加大。当然,如果X86用在移动平台,肯定也会因为线程少而省电。凌动系列(ATOM)专门为这些特性做了优化,在一定程度上降低乱序执行和多线程的处理能力,从而达到省电。

现在移动处理器都是片上系统(SoC)架构,也就是说,处理器之外,图形,视频,音频,网络等功能都在一个芯片里。这些模块的打开与关闭就容易预测的多,并且可以通过软件来控制。这样,整体功耗就更加容易控制。
在这里插入图片描述

5、未来发展

关于X86架构和ARM架构这两者谁将统一市场的争执一直都有,但是也有人说这两者根本不具备可比性,X86无法做到ARM的功耗,而ARM也无法做到X86的性能。这个短期内确实无法实现,但是双方融合的趋势越来越明显了,一方面双方都在吸收对方的优点,另一方面操作系统厂商也在大力给与支持,再加上终端用户的实际需求,会出现更多的跨界动作。两个开源的指令集架构

现在真是一个分享的社会,连CPU的指令集都开源。但目前情况看,开源的指令集尚处于起步阶段,而且生态的完善不是短时间内能够完成的。

RISC-V:从2010年开始设计,花费约四年时间才完成开发。而这款架构完全开源,不会产生专利问题,以BSD许可证发布完全免费。而如果是ARM指令集架构的话仅许可证授权费就能高达千万美元,而且RISC-V的性能、功耗和面积等方面都不亚于ARM,唯一欠缺的就是相关生态的成熟度。在国内,确认华为已经开始做相关产品的预研,中科院计算所包云岗老师也有个团队在做相关开发。同时三星在其Exynos 8890处理器中(Galaxy S7用的这款处理器),首次采用的自主CPU内核M1,被指是基于开源的RISC-V指令集架构。

OpenRisc:OpenCores组织提供的基于GPL协议的开放源代码的RISC。OpenRisc具有以下特点:1.采用免费开放的32/64bit RISC/DSP架构。2.用Verilog HDL(硬件描述语言)实现了基于该RISC/DSP架构的RTL(寄存器传输级)描述。3.具有完整的工具链,包括:开源的软件开发工具,C语言实现的cpu仿真模型,操作系统,以及软件应用所需的函数库。

  • 5
    点赞
  • 25
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值