首页 > ip授权 > ip授权公司-科普:ARM的许可方式
2023
11-07

ip授权公司-科普:ARM的许可方式

和同学聊天的时候,总会听到IP核这个名字,不知道怎么理解这个IP核,是A53、A72之类的吗?今天,我做了一个特别的研究。

IP核是具有知识产权、特定功能、接口规范等功能模块,可在多个集成电路中复用,是实现系统芯片的基本构建模块。您可以简单地将其视为一个精心设计的功能模块。(而这里的【设计】根据完善程度有不同的形式,可以分为软芯、实芯、硬芯三大类)。

架构有三种授权方法[1]。

在传统PC领域,半导体厂商一般有两种选择。首先,和英特尔一样,它从头到尾都照顾好自己,架构和芯片的设计和生产不依赖于任何人。要做到这一点,需要极其强大和全方位的实力来确保必须有钱、有人、有技术,尤其是在当今日益复杂的半导体技术中,这是为数不多的能够做到这一点的技术之一。当然,好处也是显而易见的,你不仅可以完全掌控自己的命脉,而且利润也极其可观,几乎英特尔的任何产品都可以享受到非常高的利润,想卖多少就卖多少。

另一个是无晶圆厂。这就是英伟达的情况,AMD买不起英特尔,这就是发生的事情。这些公司只设计自己的芯片,制造交给代工厂,如台积电、联电、GlobalFoundries和三星电子。优点很明显,负担很轻,你只需要设计,你不用花很多钱去建晶圆厂,开发新的工艺,但缺点也很突出:你可以设计它,你能不能建造它,即使你建造了它,你也无法做出决定, 这取决于代工合作伙伴的能力。当然,这方面有很多教训:台积电的40/28nm两代制程最初非常不成熟,产能也被推迟,拖累了整个行业;GlobalFoundries的32nm工艺没有达到AMD的预期水平,第一代FX/APU处理器的频率和电压比设计差很多,而且28nm工艺被吹了这么久卡通形象,直到现在才刚刚上路,迫使AMD一度放弃了整整一代低功耗APU, 不得不重新设计,然后去台积电。

ARM则完全不同。它不制造或销售任何芯片,它只是设计自己的IP,包括指令集架构、微处理器、图形内核和互连架构,然后将许可证出售给任何喜欢它的人。借助 ARM 的 IP,客户可以为所欲为。ARM的业务方法实际上非常简单,有三种不同的外部许可模式:[1]。

苹果是一个

很好的例子,基于使用 ARMv7-A 架构,它扩展了自己的苹果 swift 架构(这里的 swift 是一个类似于 A53 的核心,因为其实指令集很简单,但是从指令集上创建一个核心就很麻烦了);

这意味着你可以用一个内核作为基础,然后添加自己的外设,比如USART GPIO SPI ADC等,最后形成自己的MCU,这些都很多,比如三星、德州仪器、博通、飞思卡尔、富士通和Calxeda等。

如果要使用处理器,在

使用层面获得许可是必不可少的,这意味着你只能将别人提供的defined IP嵌入到你的设计中,你不能改变别人的IP,也不能使用别人的IP基于该IP创建自己的打包产品;

作为最低级别的许可,拥有许可证的用户只能购买已经封装好的ARM处理器内核,如果想要实现更多的功能和特性,只能通过在封装外添加DSP内核来实现(当然,也可以通过重新封装芯片来实现)。由于担心缺乏对知识产权的保护,ARM已经对许多具有中国背景的公司采用了这种级别的授权。

打个很形象的比喻:如果我写了一篇文章,我告诉A,修改后就可以使用了,这就是架构级别的授权,我告诉B,你可以在你的文章中引用我的文章,这就是内核级许可证,我

告诉 C,你只能转发我的文章,你不能更改它,你不能加油和醋,也就是说,你使用分层许可证。

因此,如果华为获得架构许可证和

IP核许可,意味着它可以根据需要基于ARM指令集创建自己的内核架构,并可以添加各种片上和外部组件,如通信接口、显示控制接口、GPIO等,以生产自己的“处理器芯片”。

问题:

1. 什么是建筑?

关于架构这个词,

指令集架构和内核架构,这显然是两回事,知乎上面有大神对计算机架构的详细解释[4]:

首先,让我们看一下《计算机体系结构中的体系结构 – 定量方法》5E中的一些解释:“几年前,计算机体系结构一词通常仅指指令集设计。计算机设计的其他方面被称为实现,通常暗示实现是无趣的或不太具有挑战性的。这意味着,在很多年前,架构主要是指指令集,即ISA的设计,其他层称为“实现”。当时,ISA被认为是最难设计的。然后,文本指出了先前观点的错误(过时):“我们认为这种观点是不正确的。架构师或设计师的工作远不止指令集设计,项目其他方面的技术障碍可能比指令集设计中遇到的技术障碍更具挑战性“,这意味着设计和实现的难度远大于ISA。

每个人都应该了解ISA

,了解 CISC 和 RISC 的人将了解 ISA。我们主要关注书中的“实现”,也就是实现:“一台计算机的实现有两个组成部分:组织和硬件。也就是说,实现主要包括组织结构和硬件两部分。

“微架构一词也被用来代替组织。例如,具有相同指令集架构但组织不同的两个处理器是 AMD Opteron 和 Intel Core i7。两种处理器都实现了 x86 指令集,但它们的流水线和缓存组织却截然不同。组织架构是我们经常提前推进的微架构,文章还举例说明英特尔和AMD来加深读者的理解。什么是硬件,“硬件是指计算机的具体情况,包括计算机的详细逻辑设计和封装技术”,主要涉及详细的逻辑设计和封装过程等。

所以很明显,计算机体系结构 = ISA + 微体系结构 + 硬件,“体系结构这个词涵盖了计算机设计的所有三个方面——指令集体系结构、组织或微体系结构以及硬件。其实芯片设计的整个过程都是基于这个想法,选择ISA,然后进行逻辑设计(最常见的ARM IP软核就是这个级别,也就是verilog/vhdl编写的rtl代码),当然ip授权公司,如果要做soc,逻辑设计过程会交叉耦合验证, 然后RTL代码将被冻结,物理设计将被大张旗鼓地进行,然后流片。(我对后端了解不多,只是一个粗略的想法,欢迎指正)。

现在你可以比较一下龙芯和海思的区别(其实完全没有必要,侧重点完全不同,两者都不是要做市场)。龙芯选择了兼容MIPS的ISA(增加了许多自定义指令),然后从微架构开始,直到流片,流片一般是中芯国际和意法半导体(最近都在中芯国际),因此,撇开其他因素不谈,龙芯的CPU IP CORE是自己制作的(类似于ARM授权的IP)。海思的芯片不是从CORE开始的,而是从ARM的IP CORE开始的,基本上都是从SOC开始的。简单地说,一个有CORE,另一个没有。当然,从SOC开始是一件好事,毕竟芯片不仅仅是一个CORE。因此,两者之间没有区别,只是技术路线上的区别。请不要为了黑而黑,为了赞美谁而刻意贬低谁,给知乎留下一片净土,一种不怒气的氛围。关于海思的芯片就不多说了,它们主要用于智能手机。而龙芯的芯片主要是PC,但是WINTEL在桌面上的联盟太难打破了,所以还有很长的路要走,当然龙芯在AQ和JG等方面还是很有造诣的,无法推广,一针见血。有兴趣的话可以关注一下最新的北斗芯片,主要是龙芯的1E和1F,航天级芯片必须通过一系列的抗辐射测试等才能上天。

以上就是一个大神的回答ip授权公司,对于这个答案,Bert 的评论很有针对性: 现在CPU的设计是实现微架构的难点,是不是ISA就全部都存在了,有没有人看过微架构会详细揭晓表情包设计,微架构的实现直接影响性能、面积和功耗, 这些都是各种妥协,非常不同。没有人会公开自己芯片的微架构,有了吉祥的微架构,就可以直接写RTL。据说ARM的CPU是RTL合成编写的,其他高性能CPU据说是完全定制设计的。这里说的微架构的实现就是ARM cortex-Ax的实现,也就是高通自己研发的Scorpion、Krait、Kryo,这些东西的实现涉及到流水线的设计、指法的流宽、解码等,是否乱序、乱序程度等等[5]。对于苹果自研机构,Swift(基于 ARMv7)、Cyclone、TYphoon、Twister 等,如下图所示 [6][7]:

可以看出,这些不同的自研架构之间最明显的区别是流水线参数的差异:发射宽度的差异、重排序缓冲区的大小等。

针对伯特的评论,迪迦奥特曼解释道: 它们都是由RTL合成的,包括英特尔,但是从合成到合成的设计过程中,有多少是由工具生成的,有多少是手工完成的,这是有区别的。在当今的设计规模下,如果不使用 RTL 和 EDA 工具,就不可能再使用 RTL 和 EDA 工具,而且工作负载超出了人们的能力范围,就像今天没有人可以在 PureSink 中编写窗口一样。

针对 Bert 的评论,Wayne Zhu 补充道:IP 核分为行为、结构和物理三个设计层次,根据物理描述和工艺验证,对功能行为的不同描述对应三类,即软 IP 核、硬核 IP 核和硬核。

ARM 仍然是基于软核的。直接到 RTL。使用 RTL 代码,有一种方法可以实现微架构。所以,给你RTL就是给你ARM cortex-Ax的核心。因此,RTL 许可证应该是 cortex-Ax 的核心许可证,虽然给了 RTL,但你不能把 ARM 的 RTL 直接改成自己的微架构,这是不允许的 [3]。给定 RTL,您可以更改缓存的大小和内核的配置。如果你想做自己的微架构,你只能购买指令集授权,然后一点一点地去做。

对于 ARM Cortex-Ax 系列的微架构:

15+级无序流水线,128位预取,3宽解码,每个时钟周期最多可调度5个微操作,最多满足7个传输队列,进入8个执行流水线。

A73 与 A17 非常相似,序列前端的优化流水线要短得多,预取阶段只有 4 级深度(A72 5 级),整体流水线深度只有 11-12 级。与 A17 相比,它将整体最大点胶率从 4 次增加到 6 次显微操作。NEON 发射序列仍然是 2 个微操作,但整数部分已翻倍至 4。仍然有两个浮点流水线和一个预取监视器,但 AGU 部分可以同时执行加载和存储操作。整数管道分为两个复数 ALU,一个用于乘法,一个用于除法。

A73 仍然坚持四核理念,即每个集群可以有 1-4 个核心,然后使用 SCU 单元将集群互连。L2缓存最高可达8MB,相当于A17,是A72的两倍,但相信大多数芯片厂商都会选择1-2MB。

A15/57/72 还肩负着冲击工业、大型服务器系统的重任,A73 简单,只针对消费市场,这让它变得容易多了,比如去掉了 AMBA5 CHI 接口,只支持 AMBA4 ACE,L1 缓存不再支持 ECC。

2. 华为的K3V2是什么?

K3V2 是一个 AP,不仅仅是一个 CPU,也是一个带有 CPU/GPU 和一堆控制器、USB/LCD 等的 AP。K3V2 是一款 4 核 A9 核 AP。目前,海思绝对是国内最大的AP厂商,但与国际厂商的差距非常大,高通和MTK应该占据国内市场8%以上的份额,而且还是自产自销。事实上,海思制造CPU已经有很长一段时间了,过去只用于内部电源或基带/数据卡,而这些产品并不为终端消费者所知。近年来,大型企业(电信服务器)发展缓慢,经济危机导致升级无需,华为希望将自有品牌作为终端进行推广并进行转型,让消费者逐渐知道海思多年来一直在为国内外厂商设计OEM产品, 这可以看作是积累。商业背景讲完后,再来谈谈技术。现在做一个CPU,可不只是一套指令集的问题,其实设计一套指令集很简单,这些指令集在大学教科书里都有,至于有没有人能用,那是另一回事了,拜托,就算是好东西,也没人能用,ARM和MIPS就是很好的例子。这个东西涉及到整个生态圈的建设,比如行业有没有大老板采用你的指令集,周边设施是否齐全,你不能指望一个稻农给你满座,你要有产业合作。所谓指令集,也就是架构IP,现在国内企业只能靠买,基本上都是ARM,毕竟他有比较完整的产业链。好在ARM现在也推出了架构授权(这里的架构授权可以看作是指令集架构的授权),不过这个东西很贵,但是如果你买了,可以改变ARM的架构实现(这里的架构实现可以看作是cortex-AX等东西的实现), 高通是先例,你可以做一些创新。

购买架构,你

只是一个CPU,一个AP需要搭配很多外围设备,GPU、LCD、USB需要集成,至于集成什么需要看你的产品定位,需要什么功能,买这些东西,就可以开始建模了,所谓建模就是把这些东西连接起来, 验证功能的正确性,然后使用FPGA验证硬件,FPGA没有问题,生成的网表文件交给台电、中芯国际生产。流片回来后,我开始点芯片,移植操作系统,多亏了谷歌,安卓已经完成了90%以上的软件工作,软件生态已经搭建好了,当然,如果你想使用其他操作系统,就要衡量工作量。之后,该AP用于匹配外设,生成终端消费类产品。目前,流行的厂商AP有自己独特的秘密,高通在通信方面很强,制造手机,尤其是3G手机,你绕不开他的专利,你必须花钱,而且基带是集成的。MTK在集成、廉价的生态系统和快速的运输方面很强。其他的都是小鱼虾,广告宣传很好,各有卖点,但数量不大。说到芯片完全自主研发和民族工业振兴,我个人觉得现在没什么意义,喷子们只是喊口号而已。一方面,企业需要盈利,成功的概率比较高,另一方面,轮子的反复发明对人类贡献不大,骗国钱又是另一回事。

3. 关于ARM的赚钱模式:

作为 ARM 许可方,必须支付两部分资金:前期许可费和特许权使用费。还有很多其他的收费项目,比如软件工具、技术支持等,但这些主要是这两个,分别占ARM总营收的33%和50%左右。

前期许可费通常从100万美元到1000万美元(或更少或更多)不等。多少取决于所购买许可技术的复杂性,例如,古老的 ARM11 比最新的 Cortex-A57 便宜得多。

每售出一个芯片,通常为售价的 1-2%,支付特许权使用费。如果芯片卖给其他公司或消费者,很容易计算;如果是内消化,那么就应该根据市场价格来确定。

4、MIPS技术

MIPS收取IP授权比指令集授权更昂贵,并允许添加指令,这

让大佬们自己设计MIPS内核,添加指令,发布开发工具,碎片化严重,而ARM反其道而行之,指令集授权远比IP授权贵,IP授权控制碎片化。当时,ARM也有远见,设计出了世界上最好、最便宜的USB调试工具,吸引了一批程序员,构建了一个庞大的ARM开源软件库[3]。MIPS和Imagination的关系见[9],MIPS+Imagination的Power VR其实是类似于ARM的CPU+GPU组合。

5. 网表

网表:

首先,它不是HDL语言中的东西,而是合成工具中的东西~~

综合的概念是编写 verilog 代码。但他只是代码。实际上,它没有做任何事情,它只是对这个模块进行行为级描述。但是,计算机不能直接识别 verilog。因此,通过编译器和合成工具进行翻译。编译器会检查语法错误,并检查初步逻辑功能。然后,综合工具将相应的设计转换为“网表”。

将 HDL 代码实际转换为可用电路的过程如下:

Xilinx 的步骤包括 synphylate、translate、map、place 和 route

Altera 的步骤是 complie、synphysize 和 fitter

综合后,生成的是网表文件。此文件只是电路的原型,在此步骤之后,您可以看到 RTL(寄存器传输电平)电路。还可以看到技术电路。当你看到它时,两者之间的区别很快就会明白。这两个图像是网表的直观表示。也就是说,频率合成器最终合成了您的逻辑电路。在网表文件中。

注意:当你进入netsurface层时,你的HDL语言是没用的,你需要使用合成器生成的网表文件来做以下步骤。换句话说,你的语言已经变成了一个电路!下一步是将电路移植到FPGA!!!

转换为电路后,以下步骤是根据不同的FPGA细化网表。例如,该工具可以计算某个信号的延迟。这包括多少跟踪延迟和多少组合逻辑延迟。最后,根据FPGA的内部结构,决定将这扇门放在哪里。这是地点和路线。(以 Xilinx 的 ISE 为例,合成生成的网表文件。NGC 文件。在实现步骤中,translate 是将 .NGC网表、约束文件等被解析在一起。之后,map将网表电路和约束文件与实际的FPGA映射进行移植,最后布局布线生成实际电路,然后做一些时序分析报告)。

至此,你已经生成了一个真正的逻辑电路,然后……虎湖~~ 生成下载文件,你的FPGA或CPLD就可以运行了。

参考:

参考:

[1] ARM简介2:授权模式(处理器优化包/物理IP包授权(POP)介绍,ARM计费方式,仅CPU和GPU、总线和接口免费)。

[2] 在CPU IP许可方面,ARM是如何击败MIPS的?

[3] 在一篇文章中了解 ARM

[4] 华为海思是完全自研的吗?

[5] 什么是高通处理器Krait架构

[6] 苹果自研的A7处理器呢?数字告诉你

[7]从A4到A10 Fusion处理器,苹果告诉你,核心数量真的没什么大不了的(下图)。

[8] ARM的新杀手锏,Cortex-A73架构解读

[9]Imagination 的 GPU 太诱人了,中国需要 MIPS 和 Power VR

最后编辑:
作者:nuanquewen
吉祥物设计/卡通ip设计/卡通人物设计/卡通形象设计/表情包设计