- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
这几天在B站、油管上刷了一些国产芯片真实上手视频,顺便自己也梳理一下芯片的一些基本概念,以及在美国科技制裁和围堵的情况下,国产CPU的发展情况。文末有我整理的一张思维导图,hope u find it informative.
。
0 1 缩写表/术语表
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 2 芯片 。
「芯片」这个词太火了现在,美国的「芯片禁令」,美国组建的「芯片联盟」(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 3 指令集架构授权 。
一个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.
。
0 4 IP核授权
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%,排名第一。第2、三名IP供应商是Synopsys(新思科技,美国)、Cadence,这两家同时是最大的EDA公司。国内最大的IP公司是芯原,排名全球第七,另外Imagination Technologies是中国控股,这个排名全球第四.
。
。
0 5 国产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的文章就讲到这里了,如果你想了解更多关于简单了解一下国产CPU的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我开始在 Ethereum blockchain 上了解如何开发智能合约以及如何写 web-script用于与智能合约交互(购买、销售、统计......)我得出了该怎么做的结论。我想知道我是否正确理解
我正在 UIView 中使用 CATransform3DMakeRotation,并且我正在尝试进行 45º,变换就像向后放置一样: 这是我拥有的“代码”,但显然没有这样做。 CATransform3
我目前正在测试 WebRTC 的功能,但我有一些脑逻辑问题。 WebRTC 究竟是什么? 我只读了“STUN”、“P2P”和其他...但是在技术方面什么是正确的 WebRTC(见下一个) 我需要什么
我在看 DelayedInit在 Scala in Depth ... 注释是我对代码的理解。 下面的 trait 接受一个非严格计算的参数(由于 => ),并返回 Unit .它的行为类似于构造函数
谁能给我指出一个用图片和简单的代码片段解释 WCF 的资源。我厌倦了谷歌搜索并在所有搜索结果中找到相同的“ABC”文章。 最佳答案 WCF 是一项非常复杂的技术,在我看来,它的文档记录非常少。启动和运
我期待以下 GetArgs.hs打印出传递给它的参数。 import System.Environment main = do args main 3 4 3 :39:1: Coul
private int vbo; private int ibo; vbo = glGenBuffers(); ibo = glGenBuffers(); glBindBuffer(GL_ARRAY_
我正在尝试一个 for 循环。我添加了一个 if 语句以在循环达到 30 时停止循环。 我见过i <= 10将运行 11 次,因为循环在达到 10 次时仍会运行。 如果有设置 i 的 if 语句,为什
我正在尝试了解 WSGI 的功能并需要一些帮助。 到目前为止,我知道它是一种服务器和应用程序之间的中间件,用于将不同的应用程序框架(位于服务器端)与应用程序连接,前提是相关框架具有 WSGI 适配器。
我是 Javascript 的新手,我正在尝试绕过 while 循环。我了解它们的目的,我想我了解它们的工作原理,但我在使用它们时遇到了麻烦。 我希望 while 值自身重复,直到两个随机数相互匹配。
我刚刚偶然发现Fabric并且文档并没有真正说明它是如何工作的。 我有根据的猜测是您需要在客户端和服务器端都安装它。 Python 代码存储在客户端,并在命令运行时通过 Fabric 的有线协议(pr
我想了解 ConditionalWeakTable .和有什么区别 class ClassA { static readonly ConditionalWeakTable OtherClass
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 5年前关闭。 Improve this questi
我还没有成功找到任何可以引导我理解 UIPickerView 和 UIPickerView 模型的好例子。有什么建议吗? 最佳答案 为什么不使用默认的 Apple 文档示例?这是来自苹果文档的名为 U
我在看foldM为了获得关于如何使用它的直觉。 foldM :: Monad m => (a -> b -> m a) -> a -> [b] -> m a 在这个简单的例子中,我只返回 [Just
答案What are _mm_prefetch() locality hints?详细说明提示的含义。 我的问题是:我想要哪一个? 我正在处理一个被重复调用数十亿次的函数,其中包含一些 int 参数。
我一直在读这个article了解 gcroot 模板。我明白 gcroot provides handles into the garbage collected heap 然后 the handle
提供了一个用例: 流处理架构;事件进入 Kafka,然后由带有 MongoDB 接收器的作业进行处理。 数据库名称:myWebsite集合:用户 并且作业接收 users 集合中的 user 记录。
你好 我想更详细地了解 NFS 文件系统。我偶然发现了《NFS 图解》这本书,不幸的是它只能作为谷歌图书提供,所以有些页面丢失了。有人可能有另一个很好的资源,这将是在较低级别上了解 NFS 的良好开始
我无法理解这个问题,哪个更随机? rand() 或: rand() * rand() 我发现这是一个真正的脑筋急转弯,你能帮我吗? 编辑: 凭直觉,我知道数学答案是它们同样随机,但我忍不住认为,如果您
我是一名优秀的程序员,十分优秀!