CISCRISC? CPU架构有哪些? x86 ARM?

编者按:鉴于笔者水平有限,文中难免有不当之处,还请各位读者海涵。

是为序

我猜,常年混迹CSDN的同学应该不会没听说过CPU吧?

但你真的了解CPU吗?那笔者问你CPU有哪些架构呢?

如果你对你的答案不是很确定,那刚好,不妨跟随笔者来大致了解一下吧~

下面开始正文。

CISC/RISC

照例,先抛出几个问题,带着问题来阅读本文,效果会更好。

  • 目前市面上有哪些CPU厂商呢?
  • 他们所采用的CPU架构又是哪些呢?
  • 不同的CPU架构下面又有哪些CPU品牌呢?

话不多说,让咱们来一一解密。

先说说CPU厂商,在PC和服务器领域,Intel和AMD是耳熟能详的,在移动消费领域有基于ARM架构进行设计的TI、ST、NXP等等,它们都是头部的CPU厂商。当然,还有国产的CPU厂商,后面会介绍到。

再来说说CPU架构,那什么是CPU架构?

CPU架构是CPU厂商给属于同一系列的CPU产品设定的一个规范,其目的是为了区分不同类型的CPU。

我们知道,CPU是为了执行计算机指令而诞生的,根据计算机指令集的不同呢,市面上的CPU可以分为两大阵营:CISC和RISC。

CISC: Complex Instruction Set Computer, 复杂指令集计算机

CISC指令集的设计理念是:尽可能减小指令的数量,让每一条指令实现更复杂的功能,从而降低CPU向内存取指令的频率,进而减小程序的执行时间,提升计算性能。为了让某一条指令能实现更复杂的功能,CISC的指令设计采用变指令长度。而这必然对CPU硬件电路设计提出了非常高的要求,往往需要非常复杂的控制、解码、执行电路。

基于任何事情都可以用二八定律来描述,计算机指令集也不例外。据实际统计,CISC中只有20%的指令才会被经常使用,而剩下的80%则较少使用。也就是说,为了实现那极少使用的80%的指令,代价是复杂的硬件控制电路和编译器设计,这值得吗?

基于此,一种新的CPU设计理念——RISC便诞生了。

RISC: Reduced Instruction Set Computer, 精简指令集计算机

RISC指令集的设计理念是:只保留必要的指令,采用固定长度指令设计,将复杂的功能实现上交给软件去实现。其好处便是指令集、硬件电路、编译器设计简单了。缺点是实现同样的功能,需要更多的指令,代码密度更低。

CISC和RISC孰优孰劣的争论持续了许多年,它们两个虽然谁都不服谁,各自占据着自己的领域。比如,以CISC x86架构为主的Intel/AMD统治着PC和服务器领域,而以RISC架构为主的ARM则统治着移动消费领域。尽管它们互相看不顺眼,但是随着科技的发展,CISC和RISC也在相互借鉴对方的优势,它们之间的界限也越来越模糊

好,关于CISC和RISC,咱们就先讲到这里,感兴趣的同学,也可以去了解了解它们的爱恨历史,也颇为有趣 (参考文章后面的英文参考链接)。

CPU架构

前面我们知道了CPU的指令集可以分为:CISC和RISC。这是指令集层面上的划分。CPU除了指令集,还包括各种组件,如ALU,EU、寄存器、Cache等等。它们的组织方式也会影响CPU的架构,即同一个指令集下面,CPU厂商又可以生产不同架构的CPU。具体来讲,目前市面上基于CISC指令集的CPU主要是x86架构,比如 Intel的x86,x86-64和AMD的amd64。而RISC下面则有ARM,MIPS,PowerPC,RISC-V等多种CPU架构。

下图简单列举了国内外的一些CPU架构。

接下来,笔者参考网上资料,简单总结了一下各主流CPU架构的一些特点。先声明,这些特点只是大概的,了解即可,可能不足,也可能不正确,也可能过时了。当然,如果读者乐意,也欢迎留言指出。

好,那么咱们开始。

x86

x86 架构采用CISC指令集,由Intel公司于 1978 年推出,也就是8086/8088系列,故后面将该系列称为x86系列。它最初设计用于个人电脑,但后来也被用于服务器、工作站和其它设备。x86 架构的特点包括:

  • 兼容性:x86 架构具有很强的兼容性,这意味着可以在不同的 x86 处理器上运行相同的软件。这使得 x86 架构成为一种非常流行的架构,因为用户可以轻松地升级他们的处理器而无需更换软件。
  • 性能:x86 架构的性能非常高,这使得它非常适合于运行复杂的应用程序,比如视频剪辑、渲染、高性能计算、AI算力等领域
  • 功耗:x86 架构的功耗相对较高,这使得它不适合于使用电池供电的设备。
  • 复杂性:x86 架构非常复杂,这使得它很难设计和制造 x86 处理器。
  • 生态:由于x86架构的兼容性,其软硬件生态杠杠滴!

关于x86的劣势,一位知友的文章中有提到,我觉得蛮有趣:

成也萧何,败也萧何。x86主打兼容性,导致兼容性的包袱越来越重,走得举步维艰。

站在哲学的立场来说,优点也是一种缺点,而破局的关键则在于改变。面对x86沉重的兼容性包袱和ARM的步步紧逼,AMD和Intel都在寻找新出路,未来如何,我们且看。

ARM

ARM (Advanced RISC Machine) 架构是一种精简指令集计算机(RISC)架构,由英国 ARM 公司于 1985 年推出。它最初设计用于嵌入式系统,但后来也被用于智能手机、平板电脑和其他设备。ARM 架构的特点包括:

  • 低功耗:ARM 架构的功耗非常低,这使得它非常适合于使用电池供电的设备。
  • 高性能:ARM 架构的性能非常高,这使得它非常适合于运行复杂的应用程序。
  • 小巧:ARM 架构非常小巧,这使得它非常适合于嵌入式系统。
  • 低成本:ARM 架构的成本非常低,这使得它非常适合于大规模生产。

ARM 架构的缺点包括:

  • 兼容性:ARM 架构的兼容性不如 x86 架构好,这意味着有些软件无法在 ARM 架构上运行。
  • 安全性:ARM 架构存在一些安全漏洞,这使得它容易受到攻击。

目前,由于ARM芯片价格低廉,功耗低,性能好,在移动消费等嵌入式领域拥有超过75%以上的市场份额,拥有绝对的话语权,采用ARM内核进行CPU设计的公司也有很多,比如ST (STM32系列)、TI(MSP430系列,DSP系列)、NXP等等。

MIPS

MIPS是世界上很流行的一种RISC处理器。MIPS的意思是“无内部互锁流水级的微处理器”(microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福大学 Hennessy 教授领导的研究小组研制。MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。MIPS自己只进行CPU的设计,之后把设计方案授权给客户,使得客户能够制造出高性能的 CPU。

它的基本特点是:

  1. 包含大量的寄存器、指令数和字符
  2. 可视的管道延时时隙

采用MIPS架构的公司及CPU芯片:

  • Imagination Technologies MIPS Warrior:MIPS Warrior是一款32位MIPS架构的CPU芯片,主频高达1GHz,采用40纳米工艺制造。
  • MIPS Technologies MIPS32 24K:MIPS32 24K是一款32位MIPS架构的CPU芯片,主频高达1.2GHz,采用28纳米工艺制造。
  • 联发科技MT6572:MT6572是一款32位MIPS架构的CPU芯片,主频高达1.2GHz,采用28纳米工艺制造。
  • 瑞芯微电子RK3288:RK3288是一款32位MIPS架构的CPU芯片,主频高达1.8GHz,采用28纳米工艺制造。
  • 全志科技A31:A31是一款32位MIPS架构的CPU芯片,主频高达1.2GHz,采用28纳米工艺制造。

关于龙芯,网上有资料说是自主研发的 LoongArch 架构。,也有说基于MIPS,笔者也没搞清楚,暂且按下不表。欢迎读者留言指出,谢谢~

RISC-V

RISC-V 架构是一种精简指令集计算机(RISC)架构,由加州大学伯克利分校于 2010 年推出。它最初设计用于嵌入式系统,但后来也被用于服务器、工作站和其他设备。RISC-V 架构的特点包括:

  • 开源:RISC-V 架构是开源的,这意味着任何人都可以免费使用和修改它。
  • 模块化:RISC-V 架构是模块化的,这意味着可以根据需要添加或删除指令。
  • 可扩展:RISC-V 架构是可扩展的,这意味着可以将其扩展到不同的处理器内核。
  • 低功耗:RISC-V 架构的功耗非常低,这使得它非常适合于使用电池供电的设备。
  • 高性能:RISC-V 架构的性能非常高,这使得它非常适合于运行复杂的应用程序。

采用RISC-V架构的公司及CPU芯片:

  • 阿里巴巴玄铁910:玄铁910是一款32位RISC-V处理器,主频高达1GHz,采用40纳米工艺制造,主要用于物联网设备。
  • 华为HiSilicon Hi3559A:HiSilicon Hi3559A是一款32位RISC-V处理器,主频高达1.5GHz,采用28纳米工艺制造,主要用于智能家居和安防监控设备。
  • 中兴通讯ZTE ZC310:ZTE ZC310是一款32位RISC-V处理器,主频高达1.2GHz,采用40纳米工艺制造,主要用于工业控制和汽车电子设备。
  • 兆易创新GD32V:GD32V是一款32位RISC-V处理器,主频高达200MHz,采用40纳米工艺制造,主要用于物联网设备和可穿戴设备。
  • 乐鑫科技ESP32-C3:ESP32-C3是一款32位RISC-V处理器,主频高达160MHz,采用40纳米工艺制造,主要用于物联网设备和智能家居设备。

RISC-V由于其开源特性,很多公司都采用它进行开发,但大多都是一些小设备小应用,比如物联网之类的。有知友把它比作“永远的小童星”,虽然很火,但终究长不大,好像有一定道理。

PowerPC

PowerPC 架构是一种精简指令集计算机(RISC)架构,由苹果公司、IBM 公司和摩托罗拉公司于 1991 年联合推出。它最初设计用于工作站,但后来也被用于服务器、嵌入式系统和其他设备。PowerPC 架构的特点包括:

PowerPC 是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自IBMPowerPC 601 微处理器POWER(Performance Optimized With Enhanced RISC)架构。二十世纪九十年代,IBM、苹果和摩托罗拉合作开发 PowerPC 芯片成功,并制造出基于PowerPC的多处理器计算机。PowerPC 架构的特点是可伸缩性好、方便灵活,有着广泛的应用范围,包括从诸如 Power4 那样的高端服务器 CPU 到嵌入式 CPU 市场(任天堂 Gamecube 使用了 PowerPC)。PowerPC 处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了像串行和以太网控制器那样的集成 I/O,该嵌入式处理器与“台式机”CPU 存在非常显著的区别。

PowerPC, emmm,好像在路由器,网关上面用得比较多。

国产CPU

关于国产CPU,笔者了解的不多,大概有六种品牌,貌似龙芯最强,贴一张图,让读者有个大概的印象。

具体细节可以参考这篇文章:国产CPU之4种架构和6大品牌 - 知乎 (zhihu.com)

结语

终于看完了,真是收获满满啊,不过你不会真的以为,本文的内容就到此结束了吧?

我只能说,Too young too simple.

不信你再看看这篇文章,一个外国老哥写的:都2021年了,还把x86和ARM归为CISC和RISC? - 知乎 (zhihu.com)

附上英文原文相关链接:

  • The final ISA showdown: Is ARM, x86, or MIPS intrinsically more power efficient? | Extremetech
  • RISC vs. CISC Is the Wrong Lens for Comparing Modern x86, ARM CPUs | Extremetech

反正笔者看完后,就一个反应:合着我写的都完全过时了,白写了是吧!

但是细细想来,也不全是,毕竟自己还是对RISC、CISC以及各种CPU芯片的历史、架构和应用有了一个大致、朦胧的了解,不至于一无所知,完全抓瞎。如果读者也和我一样,那么本文的目的便达到了。

笔者后续也会尽量对本文内容进行更新。

最后,如果读者觉得本文对你有所帮助,还请帮忙点个赞,你的鼓励是笔者不懈创作的动力,谢谢~

如果没有,那笔者也只能摊摊双手,表示浪费你宝贵的时间咯,然后溜之大吉~

【全文完】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/455025.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从Kafka系统中读取消息数据——消费

从Kafka系统中读取消息数据——消费 消费 Kafka 集群中的主题消息检查消费者是不是单线程主题如何自动获取分区和手动分配分区subscribe实现订阅(自动获取分区)assign(手动分配分区) 反序列化主题消息反序列化一个类.演示 Kafka 自…

C++学习Day03之new和delete使用

目录 一、程序及输出1.1 new 和delete基础使用1.2 利用void*无法调用析构函数1.3 利用new开辟数组1.3.1 堆区开辟数组1.3.2 栈上开辟数组 二、分析与总结 一、程序及输出 1.1 new 和delete基础使用 malloc 和 new 区别 malloc 和 free 属于 库函数   new 和delete属于 运算符…

MySQL篇----第七篇

系列文章目录 文章目录 系列文章目录前言一、水平分区二、分库分表之后,id 主键如何处理三、存储过程(特定功能的 SQL 语句集)前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你…

SpringBoot-基础篇03

之前搭建了整个开发环境实现了登录注册,springBoot整合mybatis完成增删改查,今天完成分页查询,使用阿里云oss存储照片等资源,后期会尝试自己搭建分布式文件系统来实现。 一,SpringBootMybatis完成分页查询 1&#xff…

介绍docker

一:介绍docker: Docker 并没有单独的图形界面,它主要通过命令行来进行管理和操作 1、 docker ps:显示正在运行的容器。 docker images:显示本地的镜像。 docker run:创建并启动一个新容器。 docker stop&a…

【CSS】margin塌陷和margin合并及其解决方案

【CSS】margin塌陷和margin合并及其解决方案 一、解决margin塌陷的问题二、避免外边距margin重叠(margin合并) 一、解决margin塌陷的问题 问题:当父元素包裹着一个子元素的时候,当给子元素设置margin-top:100px,此时不…

神经网络基本原理

神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向–深度学习的基础。 神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术。人脑中的神经网络是一个非常复杂的组织。成人的大脑中估计有1000亿个神经元之多。 1 介绍 下面是一个包含三个层…

Linux第42步_移植ST公司uboot的第3步_uboot命令测试,搭建nfs服务器和tftp服务器

测试uboot命令,搭建nfs服务器和tftp服务器,是测试uboot非常关键的一步。跳过这一节,后面可能要踩坑。 一、输入“help回车”,查询uboot所支持的命令 二、输入“? bootz回车”,查询“bootz”怎么用 注意:和…

HTTP相关问题

目录 1.从输入URL到页面展示到底发生了什么? 2.HTTP状态码有哪些? 2.1 2XX(成功状态码) 2.2 3XX(重定向状态码) 2.3 4XX(客户端错误状态码) 2.4 5XX(服务端错误状态码) 3.HTTP 请求头中常见的字段有哪些? 4.HTTP和HTTPS有什么区别&…

通过dockerfile 生成自定义nginx镜像

通过dockerfile生成自定义nginx镜像 !!!docker 必须在linux环境下才能进行如果你是window则需要装虚拟机 新建一个文件名字为Dockerfile,无需后缀 文件完整名就是Dockerfile 编写dockerfile FROM nginx RUN echo hello nginx!…

【HTML 基础】语义化标签

文章目录 1. <header>2. <nav>3. <article>4. <section>5. <footer>为什么使用语义化标签结语 在现代的 Web 开发中&#xff0c;语义化标签成为设计网页结构的重要组成部分。通过使用 <header>, <nav>, <article>, <sectio…

函数的连续与间断【高数笔记】

【连续】 分类&#xff0c;分几个&#xff1f;每类特点&#xff1f; 连续条件&#xff0c;是同时满足还是只需其一&#xff1f; 【间断】 分类&#xff0c;分几个大类&#xff0c;又分几个小类&#xff1f;每类特点&#xff1f; 间断条件&#xff0c;是同时满足还是只需其一&am…