RISC-V的自定义CPU悖论

来源:内容编译自「eejournal」,谢谢。

随着这些年的发展,RISC-V的受重视程度与与日俱增。这主要因为它是免费的、灵活的,并且速度很快。这使RISC-V成为许多开发人员的安全便捷选择。但是您会认为RISC-V是通用RISC处理器还是定制的随心所欲处理器?

但答案是两者都是!然而这是一个悖论。

起初,RISC-V是一种温和的RISC方案,但是随着其发展,RISC-V演变成超级处理器!换而言之,它可以像您希望的那样平淡无奇或令人兴奋,这是其他CPU供应商也试图实现的一种技巧。 

可定制的处理器似乎是世界上最愚蠢的想法。

一方面,处理器生态系统在兼容性方面蓬勃发展。如果每个CPU都不相同,则不能开发编译器、调试器、操作系统、应用程序和中间件,甚至不能生产高效的程序员。没有兼容性,我们最好通过焊接导线和换掉硬件来创建程序。CPU的指令集——固定的指令集其实就是软件的组成部分。这种兼容性推动了更多软件的成长,更多的工具推出和更多CPU销售的良性循环。 

但从另一个角度看,通用CPU很无聊。负载会随着时间而变化,并非每个程序员都需要相同的功能集。我们很多人不需要浮点运算。有些需要位操作指令。其他人则需要Linux支持或矢量操作,或者需要进行奇怪的表查找和内插( interpolate )的东西。  

古怪(Oddball)的指令可以有很大的不同,它在如何执行处理器方面拥有非常大的差异。游戏玩家在争论一个Intel CPU与另一个AMD处理器的相对优点时,这两者几乎是相同的芯片,相差仅百分之几。将如果将其与低端DSP、高端ARM、PowerPC或x86设计的方式进行比较,两者之间的差异非常明显。由此可见,架构和指令集确实很重要。 

问题是,当您偏离通用路径时,将失去兼容性,并且失去软件支持。指令并不能被RISC编译器忽略,它们只是浪费多余的硬件。只有汇编语言程序员或愿意编写编译器内部函数的程序员才能利用这种额外的能力。除非您调整基准,但这又有什么意义? 

RISC-V占据中间位置,并定义了所有处理器共享的基本指令集,以及一组可选的附加模块。您要浮点数吗?我们已经设计,定义,创建和提供了所有功能。在RISC-V上执行FP的每个人都以相同的方式进行操作,因此编译器编写者很高兴,因为您的代码或多或少具有可移植性。 

除了这些半标准选项之外,您还可以分支并创建自己的完全自定义的指令。毕竟,这是一个开放源CPU规范,因此没有人可以阻止您。如果愿意,您甚至可以尝试将自己的作品卖回社区。 

其实,可定制的指令集在之前已经完成,并且它们大部分都可以工作。例如Synopsys和Cadence的ARC和Tensilica都允许用户级定制。它们的工作方式是,当用户为特定的应用程序编写有用的新指令时,他们确实确实看到了性能的大幅提高或功耗的降低。虽然这并不总是一个简单的过程,但是它是有效的。但这种选择带来的缺点是自定义软件支持有限,并且与其他任何芯片都不兼容。 

当然,后一个特征实际上可能是一个优势。因为也许你希望混淆你的代码并避免逆向工程。为此你只需在处理器中添加一些奇数指令,然后在整个软件中自由使用它们即可。自定义指令的功能甚至都无关紧要。关键是其他任何人都不知道。 

当然,真正的重点是在代码中找到热点( hotspots )并创建自定义指令以加速它们。也许您在迈步时做了大量的存储工作;自定义加载/存储对可能会有所帮助。重复的比特旋转(bit twiddling)可能会压缩(condensed )为一个特殊用途的操作等等。 

即使有可能,但删除指令也没有什么意义。每个CPU都需要基准指令才能进行操作。当然,您可以通过很少的指令来解决问题,但这主要是出于学术目的。RISC-V和其他设计在过去20年中使用的核心集包括基本加法,减法(有时只是负加法),逻辑运算和条件流控制(conditional flow control.)。所有这些都是有用的,并且在硬件中实现它们都不复杂。这意味着,它们从来都不是性能瓶颈,因此删除它们并不会带来任何的提升。 

在另一个极端,你有一个像英特尔的疯狂的、复杂的Ice Lake 微架构,它拥有数以百计的指令,但很少会使用很多的。这种巴洛克式的指令集不仅使芯片变得臃肿。复杂的CPU具有复杂的互连,大型总线和多个时钟域。这与RISC-V相距甚远,即使安装了可选的增强功能也是如此。 

MIPS架构允许用户自定义已有多年,但ARM坚决抵制这种趋势。其他一些则位于中间,大多数只允许非常有限的调整。从这个意义上讲,RISC-V是更为开放的处理器之一。  

随着RISC-V的激增,确定CPU正在执行和未执行的操作将变得越来越困难。每个人都可以自由定制,并且许多RISC-V设计师已经拥有了这样的想法。除了核心指令集和一个或两个流行的扩展之外,我们还将看到库存CPU和自定义hot rods之间还有很大的差距。

它们在某种程度上都将是RISC-V,但却大不相同。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

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

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

相关文章

华为宣布出售荣耀,声明来了

来源:澎湃新闻综合华为官网、《深圳特区报》今天,华为发表声明,整体出售荣耀业务资产。对于交割后的荣耀,华为不占有任何股份,也不参与经营管理与决策。11月17日一早,荣耀最终的出售方案公布。多家企业在《…

边缘计算4.0正急速驶来,你做好准备了吗?

物联网智库 整理发布导 读近十年间,各行各业的企业都经历着数字化技术和产品对传统生产经营模式的冲击。人工智能、大数据、区块链、自动化等技术的日渐完善,让企业的生产效率和业务模式发生了翻天覆地的变化。

运维-替换-修改kibana徽标

作为一名纯运维人员,想更改kibana的徽标。 并不能像开发一样去看源码并修改源码。 所以我们可以替换徽标。 先来一个效果图。我的版本是5.5.1。 具体的修改过程: 在kibana安装路径下面。 optimize/bundles/ 0cebf3d61338c454670b1c5bdf5d6d8d.svg 这…

欧拉公式——真正的宇宙第一公式

来源:数学中国欧拉公式是数学里最令人着迷的公式之一,它将数学里最重要的几个常数联系到了一起:两个超越数:自然对数的底e,圆周率π;两个单位:虚数单位i和自然数的单位1,以及数学里常…

SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

我们这一一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件。然后再使用阿里巴巴提供的开源连接池druid,这个连接池的好处我就不说了,集合了所有连接池的好处,并且还提供了监…

java实现qq抢红包_Java实现抢红包功用

用多线程模仿多人一起抢红包。服务端将玩家发出的红包保存在一个行列里,然后用Job守时将红包信息推送给玩家。每一批玩家的抢红包恳求,其实操作的都是从行列中弹出的第一个红包元素,但当时的红包数量为空的时分,主动弹出下一个红包…

芯片里面100多亿个晶体管是如何安装上去的?

来源:金属加工如今随着芯片制程的不断提升,芯片中可以有100多亿个晶体管,如此之多的晶体管,究竟是如何安上去的呢?1当芯片被不停地放大,里面宛如一座巨大的城市。这是一个Top-down View 的SEM照片&#xff…

response.end后抛了异常_(七)异常处理

(七)异常处理异常异常的体系结构java.lang.Throwable|-----java.lang.Error:一般不便携针对性的代码进行处理|-----java.lang.Exception:可以进行异常的处理|-----编译时异常(checked|-----IOException|-----FileNotFoundException|-----Clas…

AI+视频分析:实时监测无处不在的安全风险

来源丨Forbes作者丨Louis Columbus编译丨科技行者纵观2020年运营层面的诸多挑战,公共事业企业已经意识到对其所运营的物理及网络安全体系进行360度全方位审视的重要意义。最近,由Gartner发布的调查报告显示,94%的北美CIO认为,对偏…

python 绘图的背景颜色不要_matplotlib自定义添加 “哆啦A梦”背景图,这个操作真牛逼!...

为什么需要加星标?由于微信公众号出现了 “乱序” 排列的状况,也就是说:文章不会按照 “时间顺序” 推送给你。那么朋友们就不能第一时间,收到我的干货。因此希望您抽出一分钟,完成如下三步。数据分析与统计学之美原创…

台积电2nm工艺重大突破!

来源:万物智能视界根据最新报道,台积电已经在2nm工艺上取得一项重大的内部突破,虽未披露细节,但是据此乐观预计,2nm工艺有望在2023年下半年进行风险性试产,2024年就能步入量产阶段。台积电还表示&#xff0…

png文件合并_png格式图片和jpg格式图片有什么区别?

两个格式的图片群文件有一定的相似之处,png是无损压缩,可以在PS中重新编辑。.jpg格式是一种压缩的图片文件,不能再次编辑,而且在解析度上也是不如.png格式。具体介绍如下:1、png是无损压缩,png即可移植网络…

python环境变量的配置_python基础教程-第一讲-带你进入python的世界

python是一门非常流行的语言,在前段时间网上流传的地产大佬潘石屹宣布要开始学习Python编程,这着实让python又火了一把,但确实反映出python的火热程度 。在2019年12月的世界编程语言排行榜中,python排名第三。2019年12月语言排行榜…

java单终端登陆_配置终端服务单一登录

配置终端服务单一登录配置终端服务单一登录单一登录是一种身份验证方法,允许具有域帐户的用户使用密码或智能卡登录一次,然后,不再要求其提供凭据即可访问远程服务器。若要在终端服务中实现单一登录功能,请确保满足下列要求&#…

Mybatis逆向工程的pojo实现序列化接口代码

情景如下,这两天在做一个分布式的项目,使用了Alibaba的dubbo作为通信工具,zookeeper作为register,由于dubbo是基于socket协议的,所以在进行pojo传输的时候报了异常,因为pojo没有实现序列化接口,…

重磅!2020年全球高被引科学家名单出炉!

来源:科睿唯安、青塔英国伦敦时间11月18日,科睿唯安公布了2020年度“高被引科学家”名单。入榜这份备受期待的名单的自然科学家和社会科学家均发表了多篇高被引论文, 其被引频次位于同学科前1%,彰显了他们在同行之中的重要学术影响…

机器学习—K近邻

一、算法原理 还是图片格式~ 二、sklearn实现 import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl import seaborn as sns mpl.rcParams[font.sans-serif] [uSimHei] mpl.rcParams[axes.unicode_minus] False from sklearn.d…

华人教授世界一流大学观察报告:斯坦福师生吃饭时,谈论的都是什么话题?...

石毓智,斯坦福大学博士、湖南师范大学特聘教授、新加坡国立大学终身教职。来源:墨香学术 微信:moxiangxueshu编辑 ∑Gemini只有短短120年历史的斯坦福大学,已有近30人获得诺奖,不要说世界上其他大学难以匹敌&#xff0…

tcp连接工具_基于Swoole如何搭建TCP服务,你掌握了吗?

本节将会讲解以下3个问题:通过Swoole如何搭建TCP服务?通过Swoole如何搭建TCP客户端?通过Swoole搭建的TCP服务,更深入理解Swoole的事件驱动模式通过Swoole可以快速创建一个TCP服务,新建一个文件命名为 tcp_server.php&a…

当物联网实时工作时,城市才是“智能”的

文章原载于:千家网在智能交通、数据驱动的公共安全以及平台相关和数字孪生用例相关项目强劲增长的推动下,到2025年,全球在智慧城市倡议上的支出预计将达到3270亿美元。运营转型的前景令人振奋。如果城市正确地构建了这一点,它们将…