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.rhkb.cn/news/254531.html

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

相关文章

《游戏引擎架构》 -- 学习2

声明,定义,以及链接规范 翻译单元 声明与定义 链接规范 C/C 内存布局 可执行映像 程序堆栈 动态分配的堆 对象的内存布局 kilobyte 和 kibibyte 流水线缓存以及优化 未完待续。。。

基于区块链/Hyperledger Fabric的商品交易溯源系统搭建步骤

欢迎订阅:《Fabric项目学习笔记》专栏 最新更新:订阅《Fabric项目学习笔记》用户群内包含商品溯源代码讲解与前后端开发模式演示的视频教程。 原项目链接:https://github.com/togettoyou/fabric-realty 此项目链接:https://gitee…

电商小程序04实现登录逻辑

目录 1 创建自定义方法2 获取用户名和密码3 验证用户是否同意协议4 验证用户名和密码总结 上一篇我们实现了登录功能的前端界面,这一篇实现一下登录的具体逻辑。 1 创建自定义方法 一般如果页面点击按钮需要有事件响应的,我们用自定义方法来实现。打开我…

opencv中使用cuda加速图像处理

opencv大多数只使用到了cpu的版本,实际上对于复杂的图像处理过程用cuda(特别是高分辨率的图像)可能会有加速效果。是否需要使用cuda需要思考: 1、opencv的cuda库是否提供了想要的算子。在CUDA-accelerated Computer Vision你可以…

百面嵌入式专栏(面试题)C语言面试题22道

沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍C语言相关面试题 。 宏定义是在编译的哪个阶段被处理的?答案:宏定义是在编译预处理阶段被处理的。 解读:编译预处理:头文件包含、宏替换、条件编译、去除注释、添加行号。 写一个“标准”宏MIN,这个…

Hexo更换Matery主题

引言 在数字化时代,拥有一个个人博客已经成为许多人展示自己技能、分享知识和与世界互动的重要方式。而在众多博客平台中,Hexo因其简洁、高效和易于定制的特点而备受青睐。本文将详细介绍如何为你的Hexo博客更换主题,让你的个人博客在互联网…

华为 Huawei 交换机 黑洞MAC地址的作用和配置示例

黑洞mac作用:某交换机上配置某个PC的mac地址为黑洞mac,那么这台PC发出来的包都会被交换机丢弃,不会被转发到网络中。 组网需求: 如 图 2-13 所示,交换机 Switch 收到一个非法用户的访问,非法用户的 MAC 地址…

node网站 宝塔 面板配置 防止刷新404

1.问题 我现在配置了一个网站 后台项目 放到了宝塔上 将相应的域名和项目都配置好了 域名也可以访问 但是有的时候 出现了404 类似这种404 这个资源找不到 2.说明 其实这个问题的原因是nginx 的问题 反向代理的原因 3.解决 在这个配置文件中 有个配置文件 # 防止刷新404l…

从中序与后序遍历序列构造二叉树

给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7], postorder [9,15,7,20,3] 输出:[3…

[Java][算法 双指针]Day 02---LeetCode 热题 100---04~07

LeetCode 热题 100---04~07 第一题:移动零 思路 找到每一个为0的元素 然后移到数组的最后 但是需要注意的是 要在给定的数组原地进行修改 并且其他非零元素的相对顺序不能改变 我们采用双指针法 定义两个指针i和j i和j一开始分别都在0索引位置 然后判断j所…

MATLAB环境下基于深层小波时间散射网络的ECG信号分类

2012年,法国工程学院院士Mallat教授深受深度学习结构框架思想的启发,提出了基于小波变换的小波时间散射网络,并以此构造了小波时间散射网络。 小波时间散射网络的结构类似于深度卷积神经网络,不同的是其滤波器是预先确定好的小波…

熔断机制解析:如何用Hystrix保障微服务的稳定性

微服务与系统的弹性设计 大家好,我是小黑,在讲Hystrix之前,咱们得先聊聊微服务架构。想象一下,你把一个大型应用拆成一堆小应用,每个都负责一部分功能,这就是微服务。这样做的好处是显而易见的,更新快,容错性强,每个服务可以独立部署,挺美的对吧?但是,问题也随之而…

从零开始手写mmo游戏从框架到爆炸(十一)— 注册与登录

导航:从零开始手写mmo游戏从框架到爆炸(零)—— 导航-CSDN博客 从这一章开始,我们进入业务的部分,从注册登录开始。 创建注册和登录的路由 package com.loveprogrammer.command.server;public interface Se…

杨中科 ASP.NETCORE 高级14 SignalR

1、什么是websocket、SignalR 服务器向客户端发送数据 1、需求:Web聊天;站内沟通。 2、传统HTTP:只能客户端主动发送请求 3、传统方案:长轮询(Long Polling)。缺点是?(1.客户端发送请求后&…

计算机网络概念、组成、功能和分类

文章目录 概要1.怎么学习计算机网络2.概念3.功能、组成4.工作方式、功能组成5.分类 概要 概念、组成、功能和分类 1.怎么学习计算机网络 2.概念 通信设备:比如路由器、路由器 线路:将系统和通信设备两者联系的介质之类的 计算机网络是互连的、自治的的计…

k8s 部署java应用 基于ingress+jar包

k8 集群ingress的访问模式 先部署一个namespace 命名空间 vim namespace.yaml kind: Namespace apiVersion: v1 metadata:name: ingress-testlabels:env: ingress-test 在部署deployment deployment是pod层一层封装。可以实现多节点部署 资源分配 回滚部署等方式。 部署的…

javaEE - 21( 15000字 Tomcat 和 HTTP 协议入门 -2)

一: HTTP 响应 1.1 认识 “状态码” (status code) 状态码表示访问一个页面的结果. (是访问成功, 还是失败, 还是其他的一些情况…),以下为常见的状态码. 1.1.1 200 OK 这是一个最常见的状态码, 表示访问成功. 抓包抓到的大部分结果都是 200 HTTP/…

Linux环境下配置HTTP代理服务器教程

大家好,我是你们可爱的Linux小助手!今天,我将带你们一起探索如何在Linux环境下配置一个HTTP代理服务器。请注意,这不是一次火箭科学的实验,而是一次简单而有趣的冒险。 首先,我们需要明确什么是HTTP代理服…

华为第二批难题一:基于预训练AI模型的元件库生成

我的理解:华为的这个难道应该是想通过大模型技术,识别元件手册上的图文内容,与现有建库工具结合,有潜力按标准生成各种库模型。 正好,我们正在研究,利用知识图谱技术快速生成装配模型,其中也涉…

Spring Boot 笔记 003 Bean注册

使用Idea导入第三方jar包这种方法是不对的 使用maven命令导入jar包 官网下载maven Maven – Download Apache Maven 解压缩后在命令行输入命令,注意看输出的结果,安装的是不是你本地的maven仓库 mvn install:install-file -Dfile"D:\common-pojo-2…