草庐IT

ARM太野蛮,不仅中国芯片开始离开,美国芯片也计划逃离

柏颖漫谈 2024-06-12 原文

ARM或许是觉得自己已经垄断了移动芯片市场了,这几年开始逐渐显现出蛮横的态度,先是对中国芯片出手,如今又限制美国芯片企业高通,这正导致芯片行业的愤怒,纷纷选择离开,ARM的阵地似乎正在崩塌。

一、中美芯片都开始逃离

美国芯片企业高通在2022年底突然宣布已研发RISC-V芯片,并且早在2019年就已开始研发,这个消息相当突然,因为高通可是ARM的支柱之一,高通长达10多年都是手机芯片市场的老大,它基于ARM架构研发的骁龙芯片长期占据手机芯片领先地位。

高通自骁龙835以来就已开始采用ARM的公版核心,舍弃了它自研的Kryo核心,这有助于高通快速升级芯片,不过这也带来了问题,那就是高通的芯片逐渐失去了差异化竞争优势,与联发科、紫光展锐的芯片性能差异不大,更大的问题则是ARM每隔几年推出的公版核心就会出现功耗问题。

多年前高通的骁龙810采用的A57核心,近两代的骁龙888、骁龙8G1采用ARM的超大核心都出现了发热问题,由此高通计划转回自研核心,于是收购了一家新创企业NUVIA公司,据悉NUVIA公司自研的ARM架构核心性能超强,足可以媲美Intel,高通希望借此重夺芯片性能优势,然而ARM却横加插手。

ARM表示NUVIA研发的ARM架构核心不能让高通使用,必须经过ARM的允许,由此高通大怒,高通更曝出了ARM的计划,ARM为了获得更多收入将限制芯片企业采用非ARM的公版CPU核心和GPU核心,这就导致美国芯片企业高通和苹果等都可能舍弃ARM。

在美国芯片计划舍弃ARM之前,其实中国芯片行业早已悄悄降低了ARM的采用比例,从2019年开始,中国芯片已开始大力发展RISC-V架构,因为RISC-V架构为完全开放的架构,并且收取费用超低,在中国芯片的力推下,RISC-V芯片出货量已突破10亿颗具备了与ARM抗衡的实力。

如此一来ARM的两大支柱都可能离开ARM,ARM在移动芯片市场的垄断地位将可能就此崩塌,那么ARM为何会自断臂膀呢?在于它希望获得更多收入,利用自己的垄断地位获取厚利。

二、ARM的蛮横

ARM虽然已成为全球最大的芯片架构,不过ARM获得的收入其实相比起诸多芯片企业来说还是太少了,ARM在2021年的收入为27亿美元,而高通在2022财年第三财季就取得了109亿美元、净利润37亿美元,ARM所取得的收入竟然还比高通的利润少10亿美元,如此情况下ARM当然不爽。

ARM在2016年被软银以310亿美元收购,投资者希望ARM能给他们提供更高的回报,在股东的要求下,ARM对收入的增加也更为迫切了,这更是促使ARM开始试图利用垄断地位获得更丰厚的收入和利润。

这些都促使ARM开始逐渐变得强硬,由此ARM开始试图利用自己的垄断地位,提高授权费,而限制芯片企业自研核心架构正是ARM获取收入的途径之一,全球诸多移动芯片企业除了苹果只是获取指令集授权之外,其他芯片企业都是获取ARM的公版核心授权,采用ARM的公版核心可以给ARM带来更多的收入,这是ARM限制高通采用NUVIA公司自研核心架构的原因。

2019年ARM突然停止对一家中国科技企业授权,则违反了ARM长期以来强调的开放原则,ARM曾长期表示它的授权是高度开放的,然而它对中国科技企业的做法却显示了它的开放同样是有限度的,再加上这次对高通的做法,更是让业界担忧自己基于ARM的知识产权竟然也要受制于ARM,这就让移动芯片行业错愕了。

随着中美芯片都有意离开ARM,ARM在移动芯片市场的垄断地位可能就此崩塌,当然这种情况也不是一蹴而就,毕竟ARM的生态仍然比RISC-V完善得多,软件也大多基于ARM架构开发,这都是ARM的优势,高通也未必会真的放弃ARM,高通表态自己已开发RISC-V更可能是对ARM的示威,如果ARM允许高通可以自由使用NUVIA的知识产权,那么高通也可能迅速转肽继续支持ARM。

真正全心支持RISC-V的只有中国芯片,中国芯片已获得了RISC-V的许多专利,RISC-V的高级会员也大多是中国芯片,RISC-V击败ARM终究需要依赖中国芯片,只有RISC-V的生态足够完善,那么全球更多芯片企业才会真正转向RISC-V,这让ARM仍然有足够腾挪的时间和空间。

有关ARM太野蛮,不仅中国芯片开始离开,美国芯片也计划逃离的更多相关文章

  1. ruby - 如何离开加入Arel? - 2

    Arel3.0.2提供了两个类来指定连接类型:Arel::Nodes::InnerJoin和Arel::Nodes::OuterJoin并使用InnerJoin默认。foo=Arel::Table.new('foo')bar=Arel::Table.new('bar')foo.join(bar,Arel::Nodes::InnerJoin)#innerfoo.join(bar,Arel::Nodes::OuterJoin)#outerfoo.join(bar,???)#left如果要生成左连接,如何连接两个表? 最佳答案 你可以使用

  2. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

  3. ruby-on-rails - rspec - 我怎样才能让 "pendings"有我的文本而不仅仅是 "No reason given" - 2

    我有这个代码:context"Visitingtheusers#indexpage."dobefore(:each){visitusers_path}subject{page}pending('iii'){shouldhave_no_css('table#users')}pending{shouldhavecontent('Youhavereachedthispageduetoapermissionic错误')}它会导致几个待处理,例如ManagingUsersGivenapractitionerloggedin.Visitingtheusers#indexpage.#Noreason

  4. ruby-on-rails - Ruby/Rails 中的夏令时开始和结束日期 - 2

    我正在开发一个Rails应用程序,我需要在其中找到给定特定偏移量或时区的夏令时开始和结束日期。我基本上在我的数据库中保存了从用户浏览器接收到的时区偏移量(“+3”,“-5”),我想在它出现时修改它由于夏令时的变化。我知道Time实例变量有dst?和isdst方法,如果存储在它们中的日期在夏令时与否。>Time.new.isdst=>true但是使用它来查找夏令时的开始和结束日期会占用太多资源,而且我还必须为我拥有的每个时区偏移量执行此操作。我想知道更好的方法。 最佳答案 好的,基于你所说的和@dhouty'sanswer:您希望能够

  5. ruby-on-rails - phusion passenger 和 ruby​​ 1.9.1 已经开始工作了吗? - 2

    我有一台生产机器和一台开发机器,都运行ubuntu8.10并且都运行最新的phusionpassenger。当我在osx上的本地开发机器上使用ruby​​1.9.1时,我想知道外面的人是否已经在使用带有ruby​​1.9.1甚至1.9.2的phusionpassenger?如果是这样,请告诉我们您的设置!此外,有没有办法在apache上使用phusionpassenger同时运行ruby​​1.8.7(ree)和1.9.1?感谢您的指点,我在任何地方都找不到任何提示... 最佳答案 是的,从某些2.2.x版本开始就正式支持它,我不记

  6. ruby - Rails 3 - 我可以将开始日期设置为 date_select 方法吗? - 2

    date_select方法只能设置:start_year,但我想设置开始日期(例如3个月前的日期)(但没有这样的选项)。那么,我可以将开始日期设置为date_select方法吗?或者,要制作这样的选择框,我应该使用select_tag和options_for_select吗?或者,有什么解决办法吗?谢谢, 最佳答案 有可能……例如:start_year–设置年份选择的开始年份。默认为Time.now.year-5参见thisresource. 关于ruby-Rails3-我可以将开始日期

  7. ruby - 从特定索引开始迭代数组 - 2

    我想从特定索引开始遍历数组。我该怎么做?myj.eachdo|temp|...end 最佳答案 执行以下操作:your_array[your_index..-1].eachdo|temp|###end 关于ruby-从特定索引开始迭代数组,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/44151758/

  8. ruby - Heroku - 如何开始工作人员(延迟工作)? - 2

    我有一些使用delayed_job的小程序。在我的本地主机上一切正常,但是当我将我的应用程序部署到Heroku并单击应该由delayed_job执行的链接时,没有任何反应,“任务”只是保存到表delayed_job中。Inthisarticleonherokublog写入时,执行delayed_job表中的任务,当运行此命令时rakejobs:work。但是我怎样才能运行这个命令呢?命令应该放在哪里?在代码中,还是从终端控制台? 最佳答案 如果您正在运行Cedar堆栈,请从终端控制台运行以下命令:herokurunrakejobs:

  9. node.js - 从未编写过任何自动化测试,我应该如何开始行为驱动开发? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。多年来,我一直在使用多种语言进行编程,并且认为自己总体上相当擅长。但是,我从未编写过任何自动化测试:没有单元测试,没有TDD,没有BDD,什么都没有。我已经尝试开始为我的项目编写适当的测试套件。我可以看到在进行任何更改后能够自动测试项目中所有代码的理论值(value)。我可以看到像RSpec和Mocha这样的测试框架应该如何使设置和运行所述测试变得相当容易

  10. ruby - 是否有任何命令可以使用 vim 转到 Ruby block 的末尾(或开始) - 2

    有没有办法使用vim结束Rubyblock?例如moduleSomeModule#defsome_methodendend我想用一个命令从光标所在的位置移动到block的末尾,这可能吗?我读过thisdocumentation,但它似乎不适用于.rb文件,我在某些地方读到它只适用于C(虽然还没有尝试过)。提前致谢。 最佳答案 rubyforge好像有官方包对此有一些支持:TheRubyftpluginnowincludesRubyspecificimplementationsforthe[[,]],[],][,[m,]m,[M,an

随机推荐