一文读懂RISC-V与ARM

news2024/11/25 20:15:01

RISC-V和ARM是近年来备受关注的两种处理器架构。RISC-V是一种基于精简指令集计算(RISC)原理的开源指令集架构(ISA),而ARM是一种专有ISA,由于其长期存在于嵌入式系统和移动设备中,已成为嵌入式系统和移动设备的主导选择。市场以及多年积累的信任和专业知识,赢得了广泛的声誉。

比较这两种架构对于了解它们的优缺点以及它们对未来计算的潜在影响至关重要。

什么是 ISA(指令集架构)?

每个处理器功能的核心在于其指令集架构 (ISA),这是一个概述处理器可以理解和执行的指令集的蓝图。它充当硬件和软件之间的基本桥梁,塑造处理器的功能和性能。ISA的选择会影响软件的开发方式,并对处理器的效率、兼容性和灵活性产生持久的影响。

ISA大致可分为两种类型:开放式和封闭式。封闭式ISA,如ARM,是专有的,并由特定公司(此处为Arm Holdings)严格控制,提供既定的可靠性和兼容性,但限制定制。另一方面,以RISC-V为代表的开放ISA是社区驱动的,为定制提供更大的灵活性,促进创新和适应特定需求。

RISC-V 和ARM之间持续的争论围绕着它们所体现的不同ISA展开,每种ISA都提供独特的优势和方法来满足不断变化的计算需求。

RISC-V 与ARM:背景和历史

RISC-V

在这里插入图片描述

多年来,计算机体系结构的发展取得了重大进展。历史上x86架构占据主导地位,推动了英特尔等巨头的发展,但随着ARM的出现,故事的新篇章开始了。最初专注于为移动设备创建节能处理器,ARM的成功鼓励了向精简指令集计算(RISC) 架构的转变。

虽然ARM确实在市场上取得了成功,但它是一种专有架构,需要支付许可费用并在定制方面受到限制。这种专有性质阻碍了小型企业、初创公司和研究人员充分参与先进处理器的开发。RISC-V 旨在通过提供开源替代方案来解决这些限制。因此,RISC-V 开发背后的动机源于对处理器架构领域更大开放、定制和创新的渴望。

RISC-V 起源于加州大学伯克利分校计算机科学系。该项目始于2010年,是由Krste Asanović 教授、David Patterson教授及其团队领导的一项研究工作。

第一个RISC-V规范于2011 年发布,RISC-V国际组织于2015年成立,以促进RISC-V ISA 的采用和标准化。此后,该基金会已发展到拥有200多名成员,其中包括Google、NVIDIA 和Western Digital 等主要科技公司。RISC-V已在各个行业得到快速采用,多家公司开发并发布了基于RISC-V 的处理器和片上系统(SoC)。

RISC-V 历史上的关键里程碑之一是2017年发布的RISC-V特权架构规范,它定义了硬件和操作系统之间的接口。该规范促进了更复杂的RISC-V处理器的开发,并促进了Linux等操作系统向RISC-V平台的移植。

另一个重要的里程碑是 2018 年发布了首款商用RISC-V处理器SiFive Freedom U540。该处理器展示了RISC-V在商业应用中的可行性,并为业界进一步采用该架构铺平了道路。

ARM

在这里插入图片描述

ARM代表高级RISC机器,起源于Acorn Computers,这是一家在20世纪80年代开发了Acorn RISC 机器架构的英国公司。ARM架构最初设计用于Acorn的个人计算机,重点关注功效和简单性。1990年,Acorn Computers、Apple和VLSI Technology成立了一家名为Advanced RISC Machines Ltd. 的合资企业,后来成为ARM Holdings。

第一个ARM处理器ARM1于1985年推出,ARM2随后于1986年推出。这些早期处理器主要用于Acorn的阿基米德系列计算机。然而,当苹果公司于1993年为其牛顿个人数字助理(PDA) 选择ARM610处理器时,ARM架构获得了广泛的认可。这标志着ARM在移动和嵌入式系统市场的主导地位的开始。

多年来,ARM开发了多个处理器系列,每个系列都针对特定的细分市场和性能要求。一些著名的ARM处理器系列包括用于高性能应用的Cortex-A系列、用于实时系统的 Cortex-R 系列以及用于微控制器和低功耗设备的Cortex-M系列。

ARM的成功可归功于其创新的许可模式,该模式允许半导体公司许可ARM的IP并根据其特定需求进行定制。这种灵活性使得包括AMD这样的行业巨头在内的多家公司能够设计和制造针对不同应用(从节能移动设备到高性能服务器)进行优化的基于ARM的CPU和GPU。这催生了基于ARM的处理器和设备的庞大生态系统,迄今为止,ARM芯片的出货量已超过1800亿颗。ARM芯片每年出货量约为300亿颗。

ARM 架构已成为移动设备、物联网和嵌入式系统事实上的标准,苹果、三星和高通等大公司的产品都依赖ARM处理器。
本文由朗锐智科(www.leadtorch.com)编辑整理,如有侵权请联系本站。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络】什么是RPC

RPC 是Remote Procedure Call的缩写,译为远程过程调用。是一个计算机通信协议。 1、为什么需要远程调用 在如何给女朋友解释什么是分布式这一篇文章中介绍过,为了提升饭店的服务能力,饭店从一开始只有一个负责所有事情的厨师发展成有厨师、切…

前端二维码工具小程序产品使用说明书

一、产品概述 前端二维码工具小程序是一款便捷实用的二维码生成与识别工具,通过本小程序,用户可以轻松根据文本或链接生成二维码,并支持扫一扫功能识别二维码内容,同时提供复制识别内容的功能。此外,本小程序还具备美…

如何使用Java和RabbitMQ实现延迟队列(方式二)?

前言 昨天写了一篇关于Java和RabbitMQ使用插件实现延迟队列功能的文章,今天来讲下另外一种方式,不需要RabbitMQ的插件。 前期准备,需要安装好docker、docker-compose的运行环境。 需要安装RabbitMQ的可以看下面这篇文章。 如何使用PHP和R…

React - 请你说一说setState是同步的还是异步的

难度级别:中高级及以上 提问概率:70% 在React项目中,使用setState可以更新状态数据,而不能直接使用为this.state赋值的方式。而为了避免重复更新state数据,React首先将state添加到状态队列中,此时我们可以通过shouldComponentUpdate这个钩…

WWDC24定档6月 | 崩坏3将推Mac系统版 苹果AI启航 visionOS 2.0将系数登场WWDC24

这几天又有一件苹果用户圈大事发生了!WWDC24正式定档,将在6月10日-14日召开,届时一众软件系统,包括iOS18,iPadOS,WatchOS,VisionOS等等,都将迎来更新。另外就是手游崩坏3官宣&#x…

vector的使用和底层模拟实现

爱吃喵的鲤鱼 个人主页 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 我们已经 学习了string在来实现vector会发现他们两的结构很像,而string只支持存储字符串,vector支持任意类型; 一、vector是什么…

3. Django 初探路由

3. 初探路由 一个完整的路由包含: 路由地址, 视图函数(或者视图类), 可选变量和路由命名. 本章讲述Django的路由编写规则与使用方法, 内容分为: 路由定义规则, 命名空间与路由命名, 路由的使用方式.3.1 路由定义规则 路由称为URL (Uniform Resource Locator, 统一资源定位符)…

-bash: cd: /etc/hadoop: 没有那个文件或目录

解决办法:source /etc/profile 运行 source /etc/profile 命令会重新加载 /etc/profile 文件中的配置,这样做的目的是使任何更改立即生效,而不需要注销并重新登录用户。通常,/etc/profile 文件包含系统范围的全局 Shell 配置&…

电商社交新零售:创新引领新趋势,变革新零售思维格局-亿发

新零售O2O模式是如何颠覆传统零售商业模式? 传统电商出现瓶颈: 传统电商在发展过程中逐渐出现了瓶颈,主要表现在市场竞争激烈、用户获取成本上升、用户黏性下降等问题。传统电商往往只能通过价格竞争或促销活动来吸引用户,而这种…

hexo接入github Discussions评论系统

评论存储仓 可以是你的博客项目的(github)仓库,也可以单独新建一个评论存储仓库。 我的博客项目在gitee上,就以新建存储仓为例: 使用Discussions评论系统必须开通Discussions模块! 安装giscus插件 https://github.com/apps/…

数据仓库发展历史与架构演进

从1990年代Bill Inmon提出数据仓库概念后经过四十多的发展,经历了早期的PC时代、互联网时代、移动互联网时代再到当前的云计算时代,但是数据仓库的构建目标基本没有变化,都是为了支持企业或者用户的决策分析,包括运营报表、企业营…

vscode中vue插件

在Visual Studio Code (VSCode) 中,有许多插件可以帮助Vue开发者提高工作效率和代码质量。以下是一些针对Vue开发的必备VSCode插件,结合了多篇搜索结果中的信息,以提供详尽的介绍。 Volar Volar是Vue.js开发者的官方推荐插件,专门…

python基于opencv实现数籽粒

千粒重是一个重要的农艺性状,通过对其的测量和研究,我们可以更好地理解作物的生长状况,优化农业生产,提高作物产量和品质。但数籽粒数目是一个很繁琐和痛苦的过程,我们现在用一个简单的python程序来数水稻籽粒。代码的…

React之基础项目搭建

前言 React的生态系统非常庞大,拥有大量的第三方库和工具,如React Native(用于构建原生移动应用)、Next.js(用于构建服务器渲染应用)、Create React App(用于快速搭建React应用的脚手架&#x…

【机器学习300问】62、若想将逻辑回归用于多分类有哪些常见做法?

逻辑回归算法在设计之初是用于二分类问题的,但若想把它用在多分类上也不是不行,这得看你具体面临的多分类问题是什么样的(问题的定义)。不同的问题就有不同的应对之策: 一、一对一 (1)方法的原…

【JavaEE】_Spring MVC项目获取Header

目录 1. 使用Servlet原生方法获取Header 2. 使用Spring注解获取Header 1. 使用Servlet原生方法获取Header .java文件内容如下: package com.example.demo.controller;import com.example.demo.Person; import org.springframework.web.bind.annotation.*; impor…

Linux-等待子进程

参考资料:《Linux环境编程:从应用到内核》 僵尸进程 进程退出时会进行内核清理,基本就是释放进程所有的资源,这些资源包括内存资源、文件资源、信号量资源、共享内存资源,或者引用计数减一,或者彻底释放。…

14届蓝桥杯 C/C++ B组 T5 接龙排序 (最长上升子序列DP+优化)

不难发现这是一个LIS问题&#xff0c;但是如果直接套用LIS的模版&#xff0c;在数据范围到达 1 e 5 1e5 1e5 的情况下&#xff0c;就只能够得到一半的分数&#xff0c;所以我们需要对其进行优化。 首先给出暴力的代码&#xff1a; #include<iostream> using namespace…

python+django教师业绩考评考核评分系统flask

在设计过程中&#xff0c;将参照一下国内外的一些同类网站&#xff0c;借鉴下他们的一些布局框架&#xff0c;将课题要求的基本功能合理地组织起来&#xff0c;形成友好、高效的交互过程。开发的具体步骤为&#xff1a;   第一步&#xff0c;进行系统的可行性分析&#xff0c…

Java 基于微信小程序的校园请教小程序的研究与实现,附源码

博主介绍&#xff1a;✌程序员徐师兄、10年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447…