这几天在B站、油管上刷了一些国产芯片真实上手视频,顺便自己也梳理一下芯片的一些基本概念,以及在美国科技制裁和围堵的情况下,国产CPU的发展情况。文末有我整理的一张思维导图,hope u find it informative!

0缩写表/术语表

IC:Integrated Circuit 集成电路

IP:Intellectual Property 知识产权

ISA:Instruction Set Architecture 指令集架构

SoC:System on a Chip 片上系统

RISC:Reduced Instruction Set Computing 精简指令集

CISC:Complex Instruction Set Computing 复杂指令集

0芯片

「芯片」这个词太火了现在,美国的「芯片禁令」,美国组建的「芯片联盟」(CHIP4,即美、日、韩、台),这些大家都耳熟能详了。「芯片」这个名称,早期一般指CPU芯片,随着手机等移动设备产业的发展,现在一般指SoC(System on a Chip 片上系统),如华为麒麟、高通骁龙等等,都属于SoC。SoC不是单纯的CPU,它集成了CPU、GPU、基带芯片(Baseband)、内存等多种不同的功能组件。芯片产业是一条长的产业链,里面有很多我们耳熟能详的公司,这里举一些简单的例子。

ARM:持有ARM架构,其商业模式是向下游提供ARM架构授权、IP核授权,本身不进行芯片生产。

AMD:持有x86架构,设计芯片,但不生产芯片。

Intel:持有x86架构,自行设计、生产芯片。

三星:从ARM公司购买ARM架构授权,自行设计、生产芯片。

华为、苹果:从ARM公司购买ARM架构授权,设计芯片,但不生产芯片。

台积电、中芯国际:通常不设计芯片,帮助其他芯片设计公司生产芯片。

为什么感觉这些年的「芯片设计」公司多了?我觉得主要是由于芯片设计的难度相对下降了,人们不需要从零开始设计芯片,不需要重新发明轮子,而是直接从IP供应商获得指令集架构、IP核的授权,然后进行组装或者进行一定的定制化。

0指令集架构授权

一个CPU芯片在设计之初,需要确定自己采用什么架构,这里的架构指的是指令集架构。指令集架构相当于一种规范,如果A、B两个公司设计的都采用同一指令集,那么在A上运行的软件不需要修改就能运行在B上。想要使用现有的指令集架构,通常需要购买授权。

设计一套指令集并不太困难,难的是指令集之上的生态。你可以设计出一套自己的指令集,但是目前运行在x86或者ARM上的操作系统、各种软件,都无法在你的指令集上运行,那么你的产品就没有市场。

目前指令集架构的两大霸主分别是PC及服务器领域的x86、移动领域的ARM。

x86架构目前基本上就是Intel和AMD在使用(AMD通过交叉授权的方式从Intel获得了x86架构的授权),还有两家中国公司,兆芯、海光。海光是与AMD合作,于2016年获得了AMD的x86授权,兆芯的授权是从威盛那获得,二者都是永久授权,不过x86的后续更新,由于美国的科技制裁,这两家中国公司很难拿到了。

而在移动设备领域,90%以上都使用ARM指令集架构,许多芯片设计公司从ARM公司购买指令集授权,例如华为购买的就是ARM V8指令集架构,其他的包括Broadcom、苹果、华为、Nvidia、AMD、三星、高通、微软等等。

除了x86和ARM,还有少量其他指令集架构,比如近几年国内比较火的RISC-V(发音同「risk-five」),还有基本已经凉凉的MIPS、Alpha指令集等等。

指令集架构相当于一种「规范」,同一个架构,不同的公司有不同的实现方法。技术能力较强的公司可以购买指令集架构之后自行设计芯片,这样做到好处是可以进行完全的定制化来实现高性能,例如苹果自己实现的ARM架构芯片比其他厂家领先至少2年,而坏处就是研发成本高。如果不想完全自己设计,可以购买现成的「IP核」,例如ARM Cortex系列的CPU IP。

0IP核授权

IP核可以简单理解为一些经过严格验证的、可重复使用的模块,如DDR接口IP核、USB接口IP核、CPU IP核、GPU IP核等等。IC产业中的一些公司专门从事某一些模块的设计,并把自己设计出来的模块以知识产权的方式授权给下游的芯片设计厂商,这样下游厂商就可以通过组合、定制模块来完成自己的芯片设计,避免重复造轮子。IP核供应商可以帮助降低芯片的开发难度、缩短开发周期,是IC产业链上的关键环节。

IP核授权分为三类:软核、固核、硬核。(实际上各个IP提供商对客户如何使用这些IP拥有非常大的控制权,尤其像ARM这样拥有垄断地位的供应商来说,因此这只是一个泛泛的分类,而不是精确的)

软核,是芯片结构的代码表示(芯片设计使用的一种特殊的编程语言,可以用这种语言描述一个芯片的结构)

固核,是芯片结构的设计图纸

硬核,是芯片结构的生产掩膜(交给台积电,台积电就能直接生产出芯片了)

软核、固核、硬核的授权费用是依次降低,使用难度是依次降低,但灵活性是依次降低。购买软核的公司,可以进行定制化,图省事的公司会直接购买硬核。

ARM公司在IP核领域同样具有垄断地位,它提供广泛的处理器和系统IP核,包括Cortex-A、Cortex-M和Cortex-R系列CPU IP核,以及Mali系列GPU IP核,ARM在IP核领域的全球占比超过40%,排名第一。第二、三名IP供应商是Synopsys(新思科技,美国)、Cadence,这两家同时是最大的EDA公司。国内最大的IP公司是芯原,排名全球第七,另外Imagination Technologies是中国控股,这个排名全球第四。

0国产CPU

目前国产CPU主要就是6家:海光、兆芯、飞腾、华为鲲鹏、申威、龙芯。目前这几家的CPU主要还是集中在政府、事业单位的采购,以及一些特殊领域(如国安、超算等),消费级的桌面CPU还很少,这是基本的现状。我觉得并不是说国产CPU无法满足日常办公和影音(实际上完全可用,这个网上有许多实测视频,包括SPEC评分等等),主要还是消费者对生态方面的顾虑。

海光,使用x86架构,占据着国产x86服务器处理器绝大部分的市场份额。以中国移动为例,其电信运营商服务器CPU国产化率超50%,其中有一半是海光信息贡献的。海光CPU应该是国产CPU中性能最好的,海光3号CPU接近AMD ZEN3水平。海光近几年发展不错,2022年营收51.25亿元,同比增长121.83%。不过,由于依赖海外企业授权,自主可控方面仍有风险。

兆芯,同样使用x86架构,目前最新的PC处理器为开先KX-6000G,16纳米工艺;服务器处理器为开胜KH-40000,也是16纳米工艺。和海光一样,兆芯同样依赖海外企业授权。

华为鲲鹏、飞腾都获得了ARM V8永久授权,可自行研发设计CPU内核和芯片,也可以扩充指令集。但已经无法获得更新的ARM V9的授权,因此采用ARM架构仍存长期隐患。

华为鲲鹏,主要面向服务器领域,2014年发布鲲鹏912,2016年发布鲲鹏916,2019年华为发布鲲鹏920,是业界第一颗采用7nm工艺的数据中心级的ARM架构处理器。随着美国对华为的打压,虽然华为还可以设计芯片,但找不到代工厂来生产,因此华为鲲鹏系列目前处于停滞状态。

飞腾,目前主要在政府事业单位,同时,也被用于天河等超级计算机。2020年,飞腾推出服务器CPU腾云S2500(16纳米制程,台积电代工),桌面CPU腾锐D2000(14纳米制程,由中芯代工)。由于飞腾目前已被列入美国的所谓「实体清单」,后续包括架构授权、先进制程的生产都有风险,计划中的更先进的服务器芯片如S5000,也因此处于停滞状态。

申威,使用完全自主的SW64指令集架构(传言是基于已经凉凉的Alpha指令集架构研发的),不过申威的CPU主要用于超算领域,例如「神威·太湖之光」,使用的就是申威的SW26010。申威的CPU目前还比较小众。

龙芯,早前基于MIPS指令集架构,2020年发布了自研的指令集架构LoongArch,龙芯是国内唯一一家能够对外授权指令集和IP核的通用CPU企业,自主可控程度是国内同类企业中最高的。生态方面,目前国内主流的办公软件都完成了LoongArch的适配,同时LoongArch通过软硬件结合的二进制翻译方式实现了部分兼容x86、ARM(性能有损失),可以在一定程度上缓解龙芯的生态问题。龙芯年内将要发布3A6000,采用12纳米工艺,据称性能可以对标7纳米的ARM Zen2。目前基于龙芯+统信/麒麟的纯国产桌面电脑对于常规办公、常规影音娱乐没有问题,大型游戏有困难,当然,这不仅仅是CPU的问题,也需要国内GPU厂商在硬件和驱动上继续努力。

多说一句龙芯,我常常在国产硬件的实测视频中,看到一些人拿着来源不明的消息甚至臆测来贬低龙芯,油管视频下面有这些评论我能理解,但很奇怪B站上也是一大堆这类评论。对于这些人,我觉得你可以不看好龙芯,但说任何话最好还是从事实出发,否则就很难让人不怀疑你的动机了。龙芯的自主化道路,面临的困难可想而知,这里向胡伟武博士等龙芯人致敬,道阻且长,行则将至。

RISC-V,最后再说一下RISC-V指令集架构,这个架构和x86和ARM最大的不同是指令集架构本身是免费的,大家都可以用,因此在x86和ARM日趋垄断的情况下,很多巨头都投入到RISC-V的阵营,包括谷歌、英伟达、华为、阿里、腾讯等等。RISC-V基金会目前25家最高级别的Premier Menmbers会员中,中国厂商的数量达到14家。阿里平头哥的玄铁CPU就是使用RISC-V架构,根据平头哥官网统计数据,玄铁处理器IP累计授权芯片出货量超过30亿颗。在5月28中关村举行的「RISC-V 开源处理器芯片生态发展论坛」上,第二代「香山」(南湖架构)开源高性能RISC-V核心(即IP核)正式发布,计划2023年6月流片(即「试生产」),性能预计超过2018年ARM发布的Cortex-A76 IP核。除了龙芯这种自主路线之外,个人感觉RISC-V也是另外一种不错的选择。

总之,革命尚未成功,同志仍需努力。

(欢迎扫描上图二维码关注公众号,可自动获得ChatGPT访问地址(本人自己搭建的跳板,可免费使用))

简单了解一下国产CPU的更多相关文章

  1. [转自知乎]飞腾国产CPU的部分知识

    1. 作者:常成链接:https://www.zhihu.com/question/48948852/answer/113595308来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  2. 对于当下国产CPU如火如荼有感

    国家在国家战略层面去做国产CPU这个事情,从初衷来说是好的.国产CPU战略如果能够实现,则会大大加强我国在计算机产业领域从头到尾的话语权与技术竞争力.但是个人觉得,事情不是那么简单.我将从下面几个方面 ...

  3. 不权威的国产CPU发展历程

    最近进行了一些国产化相关工作 趁着周末有时间,自己整理一下这段时间的学习内容. 毕竟不是处理器和芯片的业内人士,里面多有纰漏,请谅解. 希望可以作为入门学习的简单知识. 1.0 远古时代 unix 世 ...

  4. Go语言在国产CPU平台上应用前景的探索与思考

    http://www.chinaaet.com/article/3000087559 0 引言 CPU是电子产品的核心,代表着信息产业的发展水平.CPU发展至今已经有四十多年的历史了,实际就是Inte ...

  5. 专家谈国产CPU最新发展态势:需强化标准建设(很全面)

    一.国产CPU发展现状与成就 国内已开启多技术路线并行的CPU技术产业新格局.在国家科技重大专项和国家级集成电路产业投资资金的推动之下,我国CPU产品技术研发已进入多技术路线同步推进的高速发展阶段,并 ...

  6. 国产CPU研究单位及现状

    1.国产CPU主要研制单位 (1)高性能通用CPU(“大CPU”,主要应用于高性能计算及服务器等) 主要研发单位:中国科学院计算所.北大众志.国防科技大学.上海高性能集成电路设计中心 (2)安全适用计 ...

  7. 国产CPU走到十字路口:谁来取代英特尔芯片?(少写了一个OpenPower)

    国内的几支CPU研发力量各自选择的指令体系都有自己的优点和问题,选择其中的哪一支都会有对应的成本和风险.最终谁能担大任,且拭目以待. 文 | 瞭望智库特约科技观察员 王强 用上内置国产CPU的个人电脑 ...

  8. [转帖]你不曾见过的国产CPU:可能是最全的龙芯系列芯片家谱(下)

    你不曾见过的国产CPU:可能是最全的龙芯系列芯片家谱(下) https://www.ijiwei.com/html/news/newsdetail?source=pc&news_id=7177 ...

  9. [转帖]国产CPU性能最全盘点 宜良性竞争优胜劣汰

    国产CPU性能最全盘点 宜良性竞争优胜劣汰 电子工程专辑的网站内容 其实里面说的不尽全面 比如龙芯和申威就放到一块了 一个是 MIPS 一个是Alpha 明显不一样的东西 x86的应该都不行 而且. ...

  10. 国产CPU 申威1621 异数OS基础组件理论性能测试报告

    国产CPU 申威1621 异数OS基础组件理论性能测试报告 文章目录 国产CPU 申威1621 异数OS基础组件理论性能测试报告 前言 测试平台 测试项目 SW1621 异数OS 容器虚拟交换机模拟性 ...

随机推荐

  1. Mysql 局域网远程连接设置——Windows

    工作中,遇到mysql数据库存储于我的电脑上,而其他电脑需要共同进行读写数据(类似redis并发),所以我的电脑就必须开启mysql远程连接. 一. 授权 1. 连接数据库 mysql -uroot ...

  2. SpringBoot中常见的各种初始化场景分析

    大家能区分出以下各种初始化适用的场景吗 ApplicationRunner,CommandLineRunner,BeanFactoryPostProcessor,InitializingBean,Be ...

  3. ML-程序练习-Dragon

    回归问题 前期 假设已有某样例,参数为w=1.477, b=0.089,即为\(y=1.477x+0.089\) 过程分析 数据采样 首先我们需要模拟一些带有真实样本观测误差的数据(因为真实情况是真实 ...

  4. Centos7安装配置MySQL 5.6

    Centos7安装配置MySql 5.6 首先下载MySql5.6的安装包,具体安装方式分为yum安装与离线安装.在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL. ...

  5. solidity中的mapping

    mapping可以理解为python中对字典的键值遍历,键是唯一的而值是可以重复的 mapping函数的构造: mapping(_KeyType => _ValueType)  mapping ...

  6. Android Banner - ViewPager 02

    Android Banner - ViewPager 02 现在来给viewpager实现的banenr加上自动轮播 自动轮播的原理,使用handler的延迟消息来实现. 自动轮播实现如下内容 开始轮 ...

  7. ​KubeSphere离线无网络环境部署

    KubeSphere离线无网络环境部署 KubeSphere 是 GitHub 上的一个开源项目,是成千上万名社区用户的聚集地.很多用户都在使用 KubeSphere 运行工作负载.对于在 Linux ...

  8. 四月十七日Java基础知识点

    1.默认构造方法:如果class前面有public修饰符,则默认的构造方法也会是public的.由于系统提供的默认构造方法往往不能满足需求,所以用户可以自己定义类的构造方法来满足需要,一旦用户为该类定 ...

  9. Semantic Kernel 入门系列:🔥Kernel 内核和🧂Skills 技能

    理解了LLM的作用之后,如何才能构造出与LLM相结合的应用程序呢? 首先我们需要把LLM AI的能力和原生代码的能力区分开来,在Semantic Kernel(以下简称SK),LLM的能力称为 sem ...

  10. systemctl 命令设置开机自启动失败

    哈喽大家好,我是咸鱼.今天跟大家分享一个关于 Linux 服务(service)相关的案例   案例现象 我在 3 月 31日的时候发表了一篇<shell 脚本之一键部署安装 Nginx> ...