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

    文章

    24587

    浏览量

    207520
  • 半导体技术
    +关注

    关注

    3

    文章

    242

    浏览量

    61704
  • 硬件电路
    +关注

    关注

    39

    文章

    264

    浏览量

    30152

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ADC模数转换实战:硬件设计与软件开发要点指南!

    为实现高精度、高稳定性的ADC模数转换,硬件软件设计均需遵循特定原则。硬件层面需优化信号调理、参考电压及抗干扰设计;软件层面需合理配置采样参数、实现数据滤波及异常处理。本文将结合实际
    的头像 发表于 12-16 13:25 32次阅读
    ADC模数转换实战:<b class='flag-5'>硬件</b>设计与<b class='flag-5'>软件开发</b>要点指南!

    嵌入式可测试性软件设计

    认识可测试性软件的好处了吧? 所以,之后写代码,写之前,有必要先想清楚,这个模块最后要怎么进行自测?要测哪些地方? 设计的软件可测试性强,我们就能在开发阶段进行充分地测试,在
    发表于 12-02 06:06

    车载音频开发避坑指南:杂音、断音无声,资深工程师教你一键排查!

    反馈断音,排查半天找不到数据链路漏洞;甚至明明代码逻辑全对,扬声器却毫无动静……        作为每天与 “声音” 打交道的音频开发工程师,我们整理了车载音频开发中高频问题的根源与解决方案,
    的头像 发表于 11-18 11:16 123次阅读

    设计部署:AI即服务平台开发深度剖析

    顶层设计最终部署,一个成功的AI即服务平台开发是一项复杂的系统工程,它融合了软件工程、数据科学和运维技术的精髓。
    的头像 发表于 11-13 14:16 213次阅读

    耦合之殇,软件设计中的隐疾

    01 引 言 数据耦合和控制耦合是复杂软件设计中常见的一种情况。DO-178C要求高安全等级软件( DAL A/ B /C) 的测试覆盖分析,必须要确认基于需求的测试执行了代码组件之间的数据耦合
    的头像 发表于 08-28 15:54 555次阅读
    耦合之殇,<b class='flag-5'>软件设计</b>中的隐疾

    电动工具EMC测试整改:硬件软件的成本减半秘诀

    深圳南柯电子|电动工具EMC测试整改:硬件软件的成本减半秘诀
    的头像 发表于 08-20 11:06 517次阅读

    【干货速递】嵌入式数据可靠性,软件设计的这些细节不能忽视!

    前两期内容分别讲述了嵌入式数据可靠性的元器件选型和硬件设计,这一期我们来讲讲软件设计。哪怕硬件设计再完善,但如果软件没有设计好,也达不到预期的可靠性。只有软
    的头像 发表于 07-31 11:34 382次阅读
    【干货速递】嵌入式数据可靠性,<b class='flag-5'>软件设计</b>的这些细节不能忽视!

    智能网联智慧舱联,美格智能搭建车载开发的加速引擎

    的发展,AI应用技术逐渐改变了传统的造车逻辑。大模型适配上车以AI为基础搭建整车生态,汽车产业正经历机械主导电子化、再到软件驱动的根
    的头像 发表于 07-14 16:34 1266次阅读
    <b class='flag-5'>从</b>智能网联<b class='flag-5'>到</b>智慧舱联,美格智能搭建车载<b class='flag-5'>开发</b>的加速引擎

    嵌入式软件开发常用的软件有哪些?

    STM32微控制器和微处理器的硬件软件设置。‌一般和Keil5搭配使用。一个生成所用控制器的初始配置。一个用来写代码编译。 STM32CubeIDE则是ST公司自己开发一个工具。
    发表于 07-03 17:06

    Vector全流程开发工具链概述

    ,难以满足当前智能网联汽车的发展需求。因此基于模型的系统工程(MBSE,Model-Based Systems Engineering)方法成为主流,允许开发人员在统一的系统架构模型中完成需求定义、软件设计
    的头像 发表于 06-17 13:45 905次阅读
    Vector全流程<b class='flag-5'>开发</b>工具链概述

    开发者孤岛”“生态星河”:开鸿Bot如何重构开源鸿蒙开发体验

    在中国操作系统发展史上,“开发者”似乎从来都是一个边缘角色。他们是开源社区中最活跃的群体,却也是最常被忽视的那群人。具体开源鸿蒙社区,其生态构建初期,诸多开发者曾坦言,“鸿蒙很好,但
    的头像 发表于 06-10 17:12 1498次阅读
    <b class='flag-5'>从</b>“<b class='flag-5'>开发</b>者孤岛”<b class='flag-5'>到</b>“生态星河”:开鸿Bot如何重构开源鸿蒙<b class='flag-5'>开发</b>体验

    超低功耗MCU软件设计技巧与选型

    开发应用生态的沉淀,大力节省超低功耗选型设计成本以及开发周期.如何做好超低功耗mcu嵌入式软件设计与选型是本文讲述的主要内容.
    的头像 发表于 04-12 17:19 1542次阅读
    超低功耗MCU<b class='flag-5'>软件设计</b>技巧与选型

    系统建模与抽象层次:模块物理实现

    搭配定制软件。要让这些新产品成功上市,应采用怎样的最佳开发流程呢?硬件设计师正在借鉴软件开发团队的经验,在开发初期实施系统级设计。了解系统建
    的头像 发表于 03-07 18:01 560次阅读
    系统建模与抽象层次:<b class='flag-5'>从</b>模块<b class='flag-5'>到</b>物理实现

    Altium Designer15.0软件设计方法和安装

    电子发烧友网站提供《Altium Designer15.0软件设计方法和安装.pdf》资料免费下载
    发表于 01-22 17:22 0次下载
    Altium Designer15.0<b class='flag-5'>软件设计</b>方法和安装

    AD采样硬件软件滤波问题如何解决

    AD采样硬件软件滤波问题 ADS1115我用ADS1115采样 原理上完全可以精确1mV 可是实际上有10mV的波动 请问大家对采样的硬件软件
    发表于 01-20 09:38