0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么从硬件到软件设计苹果都是自己开发?

NJ90_gh_bee81f8 来源:未知 作者:胡薇 2018-09-07 09:02 次阅读

硬件电路设计半导体技术,从操作系统从到软件商店,苹果(Apple)为iPhone及其终端产品打造了一条上下游一路垂直整合的道路。

“真正认真对待软件的人就应该自己做硬件。”(People who are really serious about software should make their own hardware.)——Alan Kay

就在苹果(Apple)即将于秋季发布会揭露下一代新款iPhone手机前夕,该公司率先写下了市值突破1兆美元的历史新页。本文将着眼于Apple的策略布局,看看他们如何透过“现代”半导体技术实现如此的成就。

为此,我们首先需要看的就是iPhone。毕竟它是定义了Apple如何迈向1兆美元里程碑之路的关键产品。当史上第一支iPhone于2007年1月9日亮相时,它的设计看起来与当时的手机典范是如此的背道而驰。

Apple前首席执行官乔布斯(Steve Jobs)形容这是一款“带有触控功能的宽屏幕iPod、一支革命性的手机,同时也是一款突破性的互联网通讯设备。”就在那一天,他还介绍了全新的操作系统:iPhoneOS,即iOS

乔布斯在2007年发布第一款iPhone时,引用了计算机图像接口先驱Alan Kay 的一句话

在2007年第一支iPhone的发布会上,乔布斯引用了计算机图像接口先驱Alan Kay 的一句话——“真正认真对待软件的人就应该自己做硬件”(People who are really serious about software should make their own hardware.)。Alan Kay的这句话究竟有什么意义?从表面上看,它掌握到Apple想要设计自家手机以及执行其新款iOS软件的动机——为用户带来与手机互动的全新方式,例如触控屏幕、虚拟键盘以及滑动执行等。

但我们当时不知道这句话也暗示Apple不久将投入更大规模的半导体开发。Apple当下就已经决定走向垂直整合道路了。

早期发展与A4芯片

Apple为什么要自行展开大规模的半导体设计?这毕竟是一项耗资庞大的工作。

他们是否能够设计出相当于其他半导体公司的IC (更不用说比其他公司更好的IC了)?当然,这风险实在太大了。

但是在2008年春,Apple宣布收购PA Semi——这是一家大部份的人都没听过的处理器IC设计公司,专注于Digital StrongARM技术。Apple表示希望进一步差异化其产品。后来,市场上还传言Apple收购了另一家处理器设计公司Intrinsity——专注于设计Hummingbird Arm-based CPU。到了2010年4月,这项收购消息也经证实了。

2010年1月27日,Apple推出了iPad以及Apple自家设计的A4 SoC。在主题演讲前一周,我曾经想到Apple可能推出平板电脑及自家芯片。我当时想到平板电脑将会需要一款介于iPhone和MacBook之间的芯片。我还问道“......如果Apple可以使用专为其装置及其应用量身打造的区块(block)来设计自家处理器,将会发生什么?”

当时,A系列以及我认为的Apple“现代”半导体开发工作已在持续进展中。

当我们观察A4后,发现它与三星(Samsung)的S5PC110有相当大程度的相似性——三星S5PC110当时是一款Arm SoC。这二款芯片都采用了一样的Arm CPU。从以下的A4芯片图来看,A4似乎并不是什么与众不同的SoC,不过,在上述收购以及公开宣传该芯片封装的2009年之间也并没有太多时间。

A4芯片图(来源:MuAnalysis)

A系列里程碑

在真正导入内部设计的SoC之后,我认为下一个重大里程碑来自A6。有了A6,Apple推出了内部设计的CPU。这可不是件容易的事。

当时,Chipworks曾经评论其芯片架构似乎是手动布局。从A6芯片图来看,它展现了Apple对于半导体开发的承诺。A7带来所谓的Secure Enclave加密装置,可用于储存和处理来自Touch ID传感器的指纹数据。在此发展过程中,Apple还整合了一个影像讯号处理器及其动作协同处理器。

A6芯片图(来源:Chipworks)

让我们快转来到2017年的A11处理器,如下芯片图所示。A11采用Apple首款内部设计的GPU及其所谓的神经引擎。二者都是重要的设计——在iPhone X发布的新闻稿中,Apple表示两款芯片都与机器学习功能有关。特别是Face ID和Animoji,据说都必须由神经引擎启动。

该芯片设计重要之处在于其包含了两个SoC区块——即GPU与神经引擎,因为这是iPhone性能与用户体验的核心。我认为GPU与神经引擎之所以如此重要,原因就在于他们对于机器学习相当有帮助。

A11芯片图(来源:TechInsights)

客制电路和垂直整合

有大量的证据显示Apple的设计实力不断增强。但Apple的设计是否如同乔布斯在推出A4时所希望地那样,能够让iPhone有别于其他的手机?

让我们以Face ID为例。

Apple可能会对于像脸部辨识等重要功能特性感兴趣,因而为此收购一家或几家公司,取得技术IP组合。有些技术将建置于软件中,其他技术则透过硬件实现,例如像神经引擎之类的区块设计。同时,如Secure Enclave等其他区块则用于处理脸部影像数据而不只是指纹数据。

多年来,Apple持续在许多主题演讲中强调软件和硬件工程师的合作协调。人们几乎可以听到团队之间的会议对话如下:

“我需要可以执行例程A和B的硬件。”

“我可以给你一大部份,但你能修改这些例程,例如使其也在我的区块中以这种方式执行吗?”

这样的合作与对话一直持续到硬件和软件建构搭配在一起。而在此过程之后,电路区块可能仅对Apple有用,但无妨,因为该半导体团队可能只有这么一家客户。

在更先进层级以及更高整合度时,可以设想实际上在晶体管级编码的特定或部份OS例程。“我可以将经常调用的计算置于晶体管中,以节省软件周期。”

没错,也许设计在某方面少了灵活性,但如果带来更大的性能提升也算是值得了。我经常思考这样的设计架构,因为它似乎算是硬件——软件整合的巅峰之作。

只为一位客户进行设计

iPhone的角色定位很清楚。它们的目的是卖给消费者并因而获得利润。

但是,半导体的角色并没那么明显,因为他们无法对外销售,也没有直接的收入。所有的半导体产品都「仅供内部使用」。但是,难道消费者购买iPhone是因为它采用了A系列处理器吗?答案当然是否定的。但是,如果没有A系列处理器,iPhone是否可能会有无法实现的功能?性能不佳?或是价格更昂贵吗?我认为答案是肯定的。

那么,让我们再次看看Face ID。

我们可以肯定地说,Face ID是iPhone X的一项重要特性。如果Apple设计SoC时未采用自家的区块,那么它就需要另外寻找合适的机器学习IP核心。它可能还需要重新考虑GPU,因为据说它可以分享一些机器学习任务。此外,Apple需要编写可在这些区块上执行的软件。而如果只有一部份进行垂直整合,那么,Apple还需要为整个SoC寻找其他供应来源,情况将会变得更加棘手。甚至在较糟的情况下,还可能需要使用辅助IC来执行机器学习,这意味着要耗费更多的电路板空间和成本。

A系列SoC能否有助于最终产品的差异化?我必须说是的。在某种程度上,这让Apple可以更专注于因应其需求与所需功能的设计。他们只为一个客户进行设计,可能会减少为了吸引许多客户而必须做出的妥协。再者,Apple也不必要设计出最佳核心,而只需设计最适合执行iOS的核心即可。Apple能够量身打造电路与区块设计,以满足其需要。

值得注意的是,Apple在此过程中采取了一些大胆的举措。当他们将主要的区块移动至自家设计时,他们将更多的责任加诸于其设计师身上。此外,尽管半导体营收是间接的,但表现不佳的A系列芯片却可能导致销售数字下滑。

展望未来

截至目前为止,我只讨论了iPhone和A系列SoC。这只是其中的一部份。

Apple已将其半导体产品组合扩展到相当多的产品中,包括在Apple Watch中使用的S系列、AirPods (和Apple Watch)的W系列,以及不断扩展的MacOS系统中所使用的T系列。这些都为Apple的产品带来各种有趣的功能特性。

如果没有W1,AirPods是否可能实现?Apple在推出AirPods时,似乎偏离了在左右声道之间插线的标准蓝牙设计。W1是否让左右声道传输到不受限制的AirPods?提到AirPods时我注意到AirPods的功能及其收购的Passif IP之间存在莫名的相似之处。我认为W1实现了差异化。

我不知道Apple在其开发实验室中打造哪些梦想,但我们从目前所使用的半导体建构模块就可以想象到一些有趣的可能性。当T1出现时,我想想它可能应用于Apple TV遥控器。现在是否有了一个从家中电视实时、安全购物的市场了?

透过垂直整合策略,Apple展现了其于半导体设计的实力,并建立了一系列有趣的半导体IP组合。可能有人会认为Apple的设计工作就像是在打造一个IP核心库,使其可用于为其最终产品带来创新功能。Apple在半导体设计的垂直整合策略,已经成为该公司各种营收来源及其生态系统的核心。半导体团队并不需要为所接触的每件事都实现最佳设计,只需要成为其客户的最佳设计者。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 苹果
    +关注

    关注

    61

    文章

    23669

    浏览量

    191600
  • 半导体技术
    +关注

    关注

    3

    文章

    225

    浏览量

    60512
  • 硬件电路
    +关注

    关注

    39

    文章

    233

    浏览量

    28988

原文标题:苹果为什么从硬到软都要自己做?

文章出处:【微信号:gh_bee81f890fc1,微信公众号:面包板社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式业务软件设计介绍

    业务软件设计 低功耗从硬件上能够解决一部分,但单纯依靠硬件肯定是不行的,需要软件的密切配合,才能达到最好的效果。以上是从硬件驱动层面的,一般
    的头像 发表于 12-07 15:09 180次阅读

    嵌入式硬件软件哪个好?

    嵌入式硬件软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧!
    发表于 12-05 15:17

    嵌入式软件设计和单片机软件设计的区别是什么?

    嵌入式软件设计和单片机软件设计目前的应用很多,这两者有什么区别? 嵌入式主要说的什么?结构是啥!
    发表于 11-10 07:46

    苹果推迟开发明年新版iPhone、iPad和Mac软件

    苹果推迟开发明年新版iPhone、iPad和Mac软件 这是苹果公司罕见地推迟开发手机和电脑软件
    的头像 发表于 11-08 16:53 508次阅读

    软件中断与硬件中断的区别

    现在我们来继续看看这些名词,这是因为其实因为操作的都是物联网设备,那么基本上都是基于ARM体系的硬件。但是刚刚查的资料都是继续x86的,虽然都是
    的头像 发表于 11-07 16:52 463次阅读
    <b class='flag-5'>软件</b>中断与<b class='flag-5'>硬件</b>中断的区别

    一种超高频RFID读写器的软件设计与实现

    电子发烧友网站提供《一种超高频RFID读写器的软件设计与实现.pdf》资料免费下载
    发表于 11-06 16:07 1次下载
    一种超高频RFID读写器的<b class='flag-5'>软件设计</b>与实现

    小型广播系统播控端单片机软件设计

    电子发烧友网站提供《小型广播系统播控端单片机软件设计.pdf》资料免费下载
    发表于 10-24 10:39 0次下载
    小型广播系统播控端单片机<b class='flag-5'>软件设计</b>

    软件sdk开发环境与硬件是如何通信的?

    软件sdk开发环境与硬件是如何通信的?如何编程实现控制的?
    发表于 10-24 08:19

    基于VB的CAN总线测试软件设计

    电子发烧友网站提供《基于VB的CAN总线测试软件设计.pdf》资料免费下载
    发表于 10-13 11:39 0次下载
    基于VB的CAN总线测试<b class='flag-5'>软件设计</b>

    基于Qt和ARM的无线点菜系统软件设计

    电子发烧友网站提供《基于Qt和ARM的无线点菜系统软件设计.pdf》资料免费下载
    发表于 10-13 10:12 0次下载
    基于Qt和ARM的无线点菜系统<b class='flag-5'>软件设计</b>

    单片机原理图的硬件设计、软件设计和信号处理

    单片机原理图是设计和开发电子产品中不可或缺的一部分。它通过连接各种元器件和电路,实现了对单片机的控制和操作。本文将从四个方面对单片机原理图进行详细阐述,包括硬件设计、软件设计、信号处理以及通信接口。
    的头像 发表于 10-05 15:26 1541次阅读

    单片机软件开发的分层设计思路

    在实际的项目开发中,项目往往是并行开发的,也就是说硬件设计,底层软件设计,应用软件设计是同步进行的。比如说在
    的头像 发表于 09-22 10:29 675次阅读

    嵌入式软件好还是硬件好?

    架构,有一定的C语言基础,熟悉ARM、PROTEL设计软件,有四层板开发经验。 成为优秀的嵌入式硬件开发工程师需具备以下技能:由需求分析至总体方案、详细设计的规划能力;熟练运用设计工具
    发表于 09-18 15:31

    把软核移植自己的FPGA板卡后,如何与FPGA的硬件模块进行交互?

    把软核移植自己的FPGA板卡后,需要设计硬件模块,设计的硬件模块怎么与软核通信呢?通过软核的ICB总线吗?如果想把ICB总线转为AXI总线,需要哪些操作呢?
    发表于 08-12 07:08

    嘉楠科技开源K230软硬件开发包 轻松实现从底层硬件到应用软件开发

    日前,嘉楠科技宣布开源最新一代K230芯片软硬件开发包。软件开发包不仅涵盖K230开源代码、软件API库、使用说明文档、相关调试及下载工具,还提供多个SDK用例和AI Demo示例,帮
    的头像 发表于 07-07 18:36 675次阅读
    嘉楠科技开源K230软<b class='flag-5'>硬件</b><b class='flag-5'>开发</b>包 轻松实现从底层<b class='flag-5'>硬件</b>到应用<b class='flag-5'>软件开发</b>