“香山”处理器产生背后的逻辑
作者 | 老石谈芯的老石
来源 | 老石谈芯
在最近召开的RISC-V中国峰会上,中科院计算所的包云岗研究员团队正式发布了名为“香山”的开源高性能RISC-V处理器。前不久我有幸和包老师就这个事情做了一次深度的交流,我们聊了关于RISC-V、还有“香山”处理器的前世今生。包老师也分享了很多他关于开源硬件、新型开发语言、硬件敏捷设计、还有处理器基础架构等等这些问题的想法和学术思考,我深受启发。
包云岗简介
包云岗老师是中科院计算技术研究所研究员、副所长,先进计算机系统研究中心主任,中国科学院大学特聘教授,中国开放指令生态(RISC-V)联盟秘书长。他的主要研究领域为云计算数据中心体系结构、开源处理器芯片敏捷设计等。
我把我们的对话进行了整理和采编,以飨读者。本文是第一篇,主要是包老师对RISC-V、以及“香山”处理器产生背景的阐述和思考。注:以下的“我”,指的都是包云岗研究员。
问
为什么选择RISC-V?
RISC-V的使用,跟我们之前的研究还是有很多渊源。我自己在2012年结束博士后,并且回到计算所开始自己的独立研究。
在体系结构方面,我们当时其实有一些新的想法。比如我们提出了一种名为“标签化体系结构”的新技术,这个工作也发表在ASPLOS’15上。但是,我们并不希望仅仅停留在论文的阶段,我们还希望再往前走,并且把它真正做成芯片。所以在2015年以后,我们花了很长的时间,去探索到底怎么样才能把它做成芯片 。当时我们做了很多的探索,并且发现RISC-V真的能够帮助我们实现很多想法,这是以前不管使用英特尔还是arm都做不到的。
答
所以我们对于RISC-V的这种开放性、开源带来的价值,也有很深刻的体会,我们也是受益者。我们在后面选择RISC-V,其实是在不断摸索之后,找到的一条在当时看起来似乎是唯一的一条道路。
事实上,在2015、16年的时候,RISC-V的开放性还没有受到那么多的重视。RISC-V的两位发明人David Patterson和Krste Asanovic在2014年写过一篇文章,名叫《指令集应该免费 (Instruction Sets Should Be Free)》。当时有两位中国学者钱学海博士和谭章熹博士,把这篇文章翻译成了中文,并找到我把它发表在中国计算机学会通讯上。
其实在那个时候,我的认识还没有那么深刻,因为我们自己还没有要去直接做芯片。但是当我们后来真正要去做芯片的时候,再回过头来看这篇文章里面提到的一些观念和观点,比如指令集要免费、指令集要模块化这些,我觉得伯克利确实是在这方面还是很有远见。
答
问
“香山”处理器产生背后的逻辑是什么?
这个问题其实也有很多人问我们,所以这也是为什么我们会想去构建香山这样的一条开源的主线。
如果我们回想80年代、90年代时,操作系统也有很多。但是当后来更开放的Linux出来之后,这些操作系统就逐渐汇聚起来了。到了今天,在开源操作系统这个领域就以Linux为主了,大家会把各种各样的创新和想法都汇聚到Linux上。与此同时,Linux又是非常多样化的,在各种不同的场合都会有定制,甚至有些企业都会按自己的需求进行定制。
答
所以,有了主线以后,就可以很好的解决一些碎片化的问题。相反的,如果没有主线大家各自发展的话,肯定会很碎片化。但是,我们始终会根据场景或者应用进行定制,也都可以再分做一个分支出来。这就是我们对碎片化这个问题的理解。
另外一方面,一条开源主线也可以帮助我们去做收敛,比如看哪些指令集应该沉淀下来,或者怎样去更好更快的制定标准和规范。
我在国际基金会那边也有一些参与,有一些标准、一些指令集的扩展已经讨论了两三年了,都定不下来。主要的原因就是大家谁都说服不了谁。其实这个时候就需要有一些参考的设计,然后大家可以在数据上讨论,这样的话就更有说服力,并且由此推进一些标准规范的确定。现在国际上其实也缺少这样的一个平台。从这几个角度来看,香山也存在这样的一些价值。
但是,我们并不是希望再造一个arm,如果再造一个arm的话,就没有把RISC-V的这种开放性和开源优势充分发挥出来了。
答
问
“香山”处理器的应用和转化如何实现?
我之前看过一个Jim Keller对RISC和CISC的一些对比和想法,他特别提到RISC-V相关的内容。RISC-V最大的特点和好处,就是它的指令集是开源的,这样特别方便去做很多不同的变化和设计。但是,Jim Keller提到了硬币的另外一面,也就是很多人可能会做很多随机的改变或设计,这就使得业界的使用者和开发者缺少一个相同的子集(subset)或者开发平台。为此,我们该如何在绝对的开放和通用去做平衡和折中?
我们对香山还是寄予了一些期望的,我们希望它在工业界能够真的被广泛应用起来,所以我们也是按照高性能处理器的标准去定义它的。
我自己是担任了中国开放指令生态联盟的秘书长,这个角色会让我去接触到很多的企业。其实我应该至少有跟上百家企业都接触过。跟他们交流以后,能看到大家对高性能的RISC-V核是有很强需求的。
事实上,现在已经有一些企业在围绕着香山做他们的芯片的产品,比如工业控制、汽车电子、数据中心等等。可以看到,业界对香山有着非常积极的反馈,这也给我们很大的信心。
答
2015年,RISC-V的基金会成立。
2014年,RISC-V的两位发明人David Patterson和Krste Asanovic写过一篇文章。
中国开放指令生态联盟对高性能的RISC-V核是有很强需求的。
(注:本文不代表老石任职单位的观点。)

更多精彩推荐
深度学习三巨头共同发文,聊聊深度学习的过去、现在与未来二维已经 OUT 了?3DPose 实现三维人体姿态识别真香 | 代码干货GitHub 遭抵制!AI 代码生成神器竟成“抄袭工具”?
相关文章:

第79天:jQuery事件总结(二)
上一篇讲到jQuery中的事件,深入学习了加载DOM和事件绑定的相关知识,这篇主要深入讨论jQuery事件中的合成事件、事件冒泡和事件移除等内容。 一、合成事件 jQuery有两个合成事件——hover()方法和toggle()方法,同ready()方法一样,这…

asp.net利用RAR实现文件压缩解压缩【月儿原创】
asp.net利用RAR实现文件压缩解压缩 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.6.13 如果服务器上安装了RAR程序,那么asp.net可以调用RAR实现文件压缩与解压缩。 不过要注意的是,由…

缺少HTML Doctype造成的样式问题
很简单的一个登陆界面: 代码: <html> <head><style type"text/css">form span {display: block;font-size: 1em;color: #787878;padding-bottom: 5px;font-weight: 600;font-family: Open Sans, sans-serif; }body{background-color: #…

快收藏!整理了 100 个 Python 小技巧
作者:小F来源: 法纳斯特目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手。你可以用它来完成很多任务,比如数据科学、机器学习、Web开发…

--single-transaction 参数对应MyISAM引擎和InnoDB引擎
结论:使用--single-transaction 备份含有MyISAM的表不会获得一致性备份,所有的innodb表可以获得事务开始时的一致性快照,但是MyISAM表获取的是备份该表时的最新快照, 测试库:test,包含表t1,t2,t3,t4,t5,t6 …

C#优化字符串操作【月儿原创】
C#优化字符串操作 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.6.17 开发中可以说几乎随时会涉及到字符串处理,本人觉得很有必要把平时遇到的问题和大家一起讨论,如果大家有好的见解和…

构筑超异构计算时代,英特尔 AI 全布局
作者 | 伍杏玲出品 | AI 科技大本营(ID:rgznai100)我们正值数据井喷时代,据 IDC 发布《数据时代 2025》报告显示,全球每年产生的数据将从 2018 年的 33ZB 增长到 2025 年的 175ZB。其中大部分为非结构化数据,对数据实时…

[软件推荐]电子日记本EDiary,记下您 的每一天
推荐一款电子日记本EDiary,可以记下每天的工作与生活,可支持附件上传,使用方便简单,我从08年开始使用至今,感觉非常不错,也介绍给同事朋友使用,现给大家分享一下。可以到这里下载:ht…

C#的6种常用集合类大比拼【月儿原创】
C#的6种常用集合类大比拼 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.6.27 说明:MSDN没有说出几种集合类其间的区别,当然欲知更多细节可参考MSDN。 一.先来说说数组的不足…

“35岁才是一个程序员成熟的开始!”
作者 | 王晓波,同程旅行机票事业群CTO【写在前面】不知道从什么时候开始,身边的“小朋友”们都开始为一件事感到焦虑,那就是:“到了35岁我还能找到一份编程的工作吗?”。坦白讲,我年轻的时候也有过迷茫的时…

centos安装easy_instal
easy_install与yum类似,使用easy_install,可以轻松在pypi软件库里面搜索python各类软件安装easy_install比较简单,如果配置好yum,就可以直接搜索python-setuptoolsyum –y install python-setuptools安装完python-setuptools之后&…

如何用xmanager远程连接centos6.0的桌面
在centos6.0系统上设置 修改custom.conf文件 vim /etc/gdm/custom.conf 在[security]下面添加 AllowRemoteRoottrue 在[xdmcp]下面添加 Port177 Enable1 修改完后效果如下: [daemon] [security] AllowRemoteRoottrue [xdmcp] Port177 Enable1 [greeter] [chooser] […

ASP.NET 3.5 企业级开发
议题 .NET Framework 3.5 和Visual Studio 2008 C# 面向对象程序设计 ASP.NET 状态管理和页面传值 ASP.NET 中的错误处理 ADO.NET与数据访问 架构与模式 安全与性能 优秀的团队开发管理功能C# 面向对象程序设计封装继承性多态性抽象类接口装箱和拆箱泛型ASP.NET 状态管理…

DEV报表之条形码
今天无意间发现DEV的报表居然自带条形码生成控件,正好要用到,省的自己手动生成图片了。前提:一张做好的报表Dev报表基础教程首先拖出XRBarCode控件,放到表头的空白位置,摆好高度宽度。选择Symbology,设置你…

Copilot 真会砸了程序员的饭碗?
作者 | 马超 责编 | 孙胜出品 | CSDN(ID:CSDNnews)最近OpenAI与GitHub联合构建的AI自动编程工具Copilot正式登场!Copilot基于自然语言处理模型GPT-3搭建而成,可在程序员编写代码时提供建议,甚至直接补…

提升城镇化质量 有利于激活智慧城市潜能
国家发展改革委副主任胡祖才指出,智慧城市建设是中国新型城镇化的重要内容,也是推进我国新型城镇化建设的一项长期的任务。如何通过智慧城市建设,促进城市发展模式向资源节约型、环境友好型转变,城市管理由粗放型、经济型向精专化…

变量的属性(全局变量、局部变量、动态变量、静态变量等)
变量的属性 1、变量的分类 l 根据作用域:可分为全局变量和局部变量。 l 根据生存周期:可分为静态存储方式和动态存储方式,具体地又分为自动的(auto)、静态的(static)、寄…

Science论文:诺奖经济学家的经典决策模型,被AI挑战
在2019年DOTA2的顶级赛事TI8的正赛完成之后,OpenAI的人工智能战队与TI8的冠军OG举行了一场表演赛,在英雄阵容限定17个,部分道具和功能禁用的前提下,OpenAI以2:0完胜了OG,尤其值得一提的是第二场比赛仅用时1…

Canny算法源码,欢迎交流
http://blog.csdn.net/jianxiong8814/article/details/1563109 http://blog.csdn.net/assuper/article/details/6937130 存在的bug 在dsp http://bbs.csdn.net/topics/390445572

Provisioning Services 7.8 入门系列教程之十三 使用 Boot Device Management(BDM)
续Provisioning Services 7.8 入门系列教程之十二 实现高可用性 可以使用 Boot Device Management 实用程序将 IP 和引导信息(引导设备)交付给目标设备,此方法可以取代传统的 DHCP、PXE 和 TFTP 方法。 如果使用此方法,当目标设备…

Memcached深度分析
Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载, 提升性能。关于这个东西,相信很多人都用过,本文意在通过对memcached的实现及代码分析…

【分享】 IT囧事
导读:企业的业务发展离不开信息化建设,信息系统的稳定运行更离不开IT运维的支持,许多生命期短暂或者使用效果不太好的IT系统,都是因为后期的维护和支持不到位,才导致前期投入的资金和人力付之东流,让人扼腕…

为什么掌握Linux对程序员这么重要……
人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个软件工程师岗位,都要求掌握Linux。可以说,打开 Linux 操作系统这扇门,你才是合格的软件工程师。如果不能熟练地操作 Linux,你基本上等于少…
Java并发编程有多难?这几个核心技术你掌握了吗?
本文主要内容索引 1、Java线程 2、线程模型 3、Java线程池 4、Future(各种Future) 5、Fork/Join框架 6、volatile 7、CAS(原子操作) 8、AQS(并发同步框架) 9、synchronized(同步锁) 10、并发队列࿰…

这届 AI 预测欧洲杯冠军,通通被打脸
持续了一个月的欧洲杯,终于落下帷幕。北京时间 7 月 12 日(周一)凌晨,本届欧洲杯决赛中,意大利对阵英格兰。两队在 120 分钟时间里 1-1 战平,意大利在欧洲杯中通过点球大战以 3:2击败英格兰夺冠。意大利上次…

资源的正确引用
对资源的引用应该发生在对资源的保护期间。 比如在所保护内hold住资源、local_bh_disable内hold住资源; 否则对资源的使用可能发生不一致的情况。 PS: 代码逻辑应该符合真实世界的合理逻辑。转载于:https://www.cnblogs.com/kernel521/p/4045976.html

给网站管理员的建议:创建可利用的、可抓取的网站
转载自 谷歌中文网站管理员博客 发表者 T.V. Raman,研究学者 原文: Webmaster tips for creating accessible, crawlable sites 发表于:2008年4月14日 上午10:47 Hubbell和我正在我们位于加州的家中度假。欢迎您随时 阅读在此之前我为网站管…

iptables如何开放被动模式的FTP服务
如何开放被动模式的FTP服务? 1.装载FTP追踪时的专用的模块; # modprobe nf_conntrack_ftp # lsmod | grep ftp 2.放行请求报文 命令连接: NEW,ESTABLISHED 数据连接: RELATED,ESTABLISHED #iptables -I INPUT -d 192.168.141.10 …

KNN 分类算法原理代码解析
作者 | Charmve来源 | 迈微AI研习社k-最近邻算法是基于实例的学习方法中最基本的,先介绍基x于实例学习的相关概念。基于实例的学习已知一系列的训练样例,很多学习方法为目标函数建立起明确的一般化描述;但与此不同,基于实例的学习…

Roadsend PHP-开源的PHP代码编译器
Roadsend PHP 是一个开源的php compiler, 可以将你的PHP代码编译成原生的二进制代码, 无需分发php源码. Roadsend 可以将你的PHP web项目编译成FastCGI的可执行文件,这样apache,nginx可以通过fastcgi方式和编译后的 程序进行通讯. 看起来,PHP 编写的程序可以和C编写的程序有同…