tag 标签: SoC

相关博文
  • 热度 13
    2020-6-15 18:59
    1734 次阅读|
    1 个评论
    聊聊Exynos 990,为什么三星放弃自研CPU?
    我一直都觉得三星 Exynos 还是挺有趣的 SoC:我记得之前翻译 AnandTech 的苹果 A12 和三星 Exynos 9810 评测文章的时候,有句话我印象特别深刻:“采用 M3 核心的三星 Exynos 9810,能耗达到苹果 A11 的两倍,性能却落后了 55%(注意,是 A11)!” 尔后,AnandTech 通过魔改 Exynos 9810 系统层面调度机制的方案,达成了系统性能相较原版的一个显著提升。这些其实都表明,三星在移动 SoC 设计和制造上都可以认为是整体掉队的。所以也不难理解,三星为什么决定放弃自研 CPU 架构。Exynos 990 是三星最后一款采用自研架构的 SoC。 想必很多同学也已经听说了,这次 Exynos 990 相比竞争对手依然有差距的事实。这里我将 AnandTech 的一些评论和测试做了综合,分享给各位。本文的绝大部分数据和内容均来自 AnandTech,若需查看英文原文,可拉至本文末尾。我觉得这篇文章能够非常到位地阐释,为什么三星放弃了自研架构,因为无论从哪个层面来看,其自研架构不仅问题极多,而且还远远及不上 Arm 的架构。 请注意,注意区分本文的几个词汇:能耗 energy,是指跑测试消耗的能量,单位焦耳;功耗(或功率)power,是指单位时间内消耗的能量,单位瓦特;功效 power efficiency,一般是指每瓦性能;能效 energy efficiency,这里特别指每焦耳的性能——这个性能可以是跑的分值,也可以是游戏帧率。 这里需要强调一点,我们日常所说的“能效比”,或者“效率”指的其实是这里的 power efficiency。本文的能效,严格意义上都不是用的这个通俗的意义。 综述 三星 LSI 的这颗旗舰 SoC 是在去年 10 月份宣布推出的:它在 CPU 大核心上采用了三星新一代的 M5 架构;中型规模的核心则升级到了 Cortex-A76;采用新的 Mali-G77 GPU。Exynos 990 采用 7nm LPP 制造,即芯片的某些部分采用 EUV 光刻。 Exynos 9820 这里看一下上一代的 Exynos 9820,,也就是 Galaxy S10 采用的 SoC。以此可了解 Exynos 990 做了怎样的提升和变化。 Exynos 9820 的大核心簇是三星定制的 M4 架构,它跟 Arm 公版架构的差异还是比较大的:从互联到缓存一致性,都采用三星的 Coherent Interconnect。Andrei Frumusanu(AnandTech 著名博士编辑)对这种结构有做核心到核心的延迟测试,起码它比 Arm 公版架构的延迟是要大出很多,当然也比骁龙 865 明显更糟糕。 Exynos 990 Exynos 990 相较 Exynos 9820 的改进其实还是比较多的。首先三星这次终于在小核心上,将 A55 的 L2 cache 推升到了 64KB。要知道 Exynos 9810 和 9820 在这方面就差一截,所以这两款 SoC 相比以前的骁龙 SoC,在效率上就有差距。不过 64KB L2 cache,这个容量仍然只有骁龙 865 的一半(128KB),三星在 Arm 核的 cache 配置上还是比较保守。 中核心从先前的 Arm Cortex-A75 升级到了 A76,频率也有提升,从 2.3GHz 提到了 2.5GHz,基于负载不同性能提升可达 38%-50%,也是 Exynos 990 大部分工作的主要动力来源。中核心的 L2 cache 仍然是每个核心 256KB,共享的 L3 cache 也是比较保守的 1MB。 大核心部分,早前代号为 Cheetah(猎豹)的 M4 这次升级到了代号为 Lion(狮子)的 M5——也就是三星的自研架构。其最高频率仍然是 2.73GHz,三星宣称会有 20% 的提升,应该主要是来自 IPC 提升。 外部可以观察到的最大变化,在于 M5 大核心不再享有各自的 L2 cache,而是 2MB 的核心共享 L2 cache。现如今,这样的微架构设计变化还是比较少见的。这一变化,从核心到核心的延迟降低能看得出来,毕竟这次的缓存一致性是在更低的 cache 层级发生的,和 CPU 也靠的近。 Exynos 990 采用三星 7LPP 工艺制造,部分采用了 EUV 光刻。TechInsights 提到,Exynos 990 是首个采用完整 7LPP PDK(Process Design Kit)设计的芯片,这一点和先前的 Exynos 9825 还是有不同的)。 三星宣称,7LPP 工艺相比之前的 8LPP 有 7% 的性能提升,应该也意味着同频功耗的降低。实际是个什么情况呢?我把 AnandTech 的内容做个概括: 一 Exynos 990 的 binning(可以理解为根据不同的芯片体质,对芯片进行等级分组)看起来是比较糟糕的,而且绝大部分芯片都位列相对较差的体质分组,甚至可能更糟,这表明这颗芯片的良率可能很不理想。 二 M5 的核心电压不是很乐观,不仅在同频下相比上一代 M4(8LPP)没有提升,而且随频率升高还表现更差了。M5 需要更高的电压,才能达到先前相同的频率:同样 2.75GHz 最高频率,M5 的峰值电压为 1118mV,而先前的 M4 为 1068mV。 三 从功耗与效率曲线来看,纵观性能变化周期内,M5 核心显然在效率上弱于 Cortex-A76(同一个 Exynos 990 SoC 上的);Exynos 990 A55 小核心的效率比先前的 Exynos 9820 要理想很多; 四 Exynos 9820 时期,三星引入了一种更为复杂的 scheduler,基于应用跑的 ISA(指令集结构)选择不同的功耗模型。这种机制会分别追踪 32bit 和 64bit app,然后根据不同 CPU 在不同执行模式下的微架构性能和功耗特性,做出调度决策。三星宣称这种机制能够提升效率,更多的工作可能会分派给 Arm 中核心——因为 A76 在 32bit 执行效率上会更好。 从 SPECint2006 的综合成绩来看,其实很难看出这种执行模式有什么大差别。但某些个别的测试子项,比如说 456.hmmer——这是个偏向执行能力的测试,就能看出 A76 核心的优势——A76 核在这个项目的成绩上的确领先于 M5 核。从这个角度来看,三星的调度策略是合理的。 另一个例子是,400.perbench 在 32bit 模式下,A76 核心同样优于 M5 核心,所用功耗还低了超过一半。不过更偏存储性能的负载,M5 在跑分上还是有优势的,这可能与两者的 cache size 差异有关。 AnandTech 在文章中提到,这是 AnandTech 首次针对 AArch32 和 AArch64 两种执行模式,分别公布跑分成绩。 五 在存储延迟测试方面,Exynos 990 相比 Exynos 9820 还是有提升的,但和骁龙 865 比起来却有差距。 下面这几张图是 Exynos 990 M5(大核心)、Exynos 990 A76(中核心)、Exynos 9820 M4,以及骁龙 865 A77(大核心)的存储子系统延迟对比。很显然,相比 Exynos 9820,可以看到 Exynos 990 的 L2 cache 在尺寸上变大。M5 核心当然还是会有一些优势,比如说 3 周期的 L1 延迟设计,Arm 核心都是 4 周期。 去年的 M4 核心其实就存在 TLB 问题(Translation Lookaside Buffer,一种页表的 cache,是一个内存管理单元,用于提升虚拟地址到物理地址转换速度),今年的 M5 这个问题并未得到合理解决。 这会导致一些比较无语的问题,比如说随机访问超过 2MB 的区块,可能还比 1MB 尺寸内的速度更快。相比 L2 cache 区域,L3 的 cache line 访问,TLB 未命中惩罚的访问延迟还更低…(这也可能是 16-64MB 区块内,Exynos 990 弱于 9820 的原因)。 而 A76 核心部分显然就比较符合预期了。A76 的 prefetcher 原本就有比较大的提升,在 Exynos 990 之上也有体现,两个 A76 中核心在某些数据访问模式上是优于 M5 核心的。实际上,三星自 M3 设计以来,在存储子系统方面就有比较大的问题,到 M5 也依旧未能解决。 六 从 SPECint2006 的测试结果来看,Galaxy S20 的两个不同 SoC 版本,骁龙 865 相比 Exynos 990,各方面都有优势。 主要表现在骁龙 865 显然在能效/功效方面有着比较大的提升。 早前 Arm 曾表示,A77 核心相比 A76 会在性能上有进步,但两者的功效(energy efficiency)其实是差不多的——也就意味着 A77 需要以功耗换性能。但骁龙 865 则显然超出了 Arm 的预期,不仅使用更少能耗(energy),而且功耗(power)也更低。 这可能和骁龙 865 相比上一代改用台积电 N7P 工艺有关,这或许表明 N7P 工艺相比 N7 的确有显著提升。 Exynos 990 相比上一代当然也有性能提升,但肯定比不上骁龙的步子。其中有一些成绩比较诡异,比如说 403.gcc 的成绩还不如上一代。更悲伤的是功耗(power)和能耗(energy)。Exynos 990 的能耗其实跟 Exynos 9820 很相近,有时略好,有时又略差。但在有性能提升的情况下,功耗却也明显发生了飙升。 其实功耗高,有时问题也不算大,只要能换得所需的性能即可,苹果即是个中翘楚——至少能效比是不错的,而峰值性能对于提升体验也是有帮助的。但这并不适用于 Exynos 990,因为 Exynos 990 显然性能也并不怎么样。 SPECfp2006 测试情况类似,虽然 Exynos 990 的性能有提升,但却是以高很多的功耗换来的——这个代价其实是得不偿失的。某些测试,比如 447.dealII 和 470.lbm,在能效(energy efficiency)方面甚至还有 30-40% 的倒退。也有好的一面,433.milc 这个子项,M5 的成绩比 M4 提升超过一倍,但功耗也就提升 50%。 在整数测试的综合成绩中,Exynos 990 相比 Exynos 9820 有 17% 的性能提升;浮点测试综合成绩,则有 36% 的提升。但 Exynos 990 相较骁龙 865,在这两个大项上仍然分别落后了 11% 和 3%。 绝对性能可能还不是什么大问题,悲剧的其实主要是能耗(energy)问题。 Exynos 990 付出了双倍的能耗,性能却还略弱于骁龙 865! 六 很多同学可能会想,三星的 7LPP 工艺是不是严重不给力。有个对比对象,高通骁龙 765G 用的就是三星 7LPP 工艺。骁龙 765G 的 A76 核心频率 2.4GHz,而 Exynos 990 中核心的 A76 频率是 2.5GHz。这两者的性能和能耗非常相近,都明显弱于台积电造的 A76 SoC(尤其是 Kirin 990)。 可见三星 7LPP 的确不如台积电的 N7/N7P/N7+ 工艺,AnandTech 给的数据是,在功耗表现上差距可能达到了 20%-30%。 七 不过就算把 7LPP 的差距算上,三星 M5 核心依然被 A77 核心远远甩在身后。Frumusanu 说,虽然没有看到骁龙 865 和 Exynos 990 的 die shot,不过他认为 M5 核心在面积上至少比 A77 大了 3 倍。 综合来说,Exynos 990 相比骁龙 865,效率差 2 倍,性能差 10%,PPA 总体就差了 6-7 倍。 八 在 AI 方面,三星宣称 Exynos 990 的 AI 性能为 10 TOPS,综合了 NPU 和 DSP。理论上,Mali G77 应该也是可以参与 AI 运算的。这其实一直也不是三星的长项。不过 Exynos 990 相比前代在 AI 算力上的提升很大。 从 AnandTech 的测试结果来看,NNAPI 的 INT8 测试,骁龙 865 更强。不过这一点其实仍有待商榷,因为它和软件层面关联很大,Frumusanu 也认为三星很有可能面向 NNAPI 时只给了 GPU 资源。在 NNAPI FP16 这样的测试里,Mali G77 就有优势;FP32 测试,Exynos 990 也表现很好。总体上,AI 性能这部分,Exynos 990 表现是十分出色的。 九 GPU 部分,这个其实也是我个人一直想要去仔细看一看的。Exynos 990 应该是首款采用 Mali G77 GPU 的 SoC(也可能是天玑?),而且也是首款采用 Valhall 架构的 GPU。去年我写移动 GPU 对比的时候有提到,Mali G77 很可能会在性能上实现对 Adreno 阵营的反超。 Exynos 990 在 GPU 方面选择了 11 个核心的 Mali G77,频率提升到 800MHz,电压也随之提高了。由于 Exynos 990 也支持了 LPDDR5,图形计算面对 3D 渲染这类带宽要求比较高的工作时,理论上会有更高的效率。 十 GPU 性能测试,除了骁龙 865 版 Galaxy S20 Ultra 在 3DMark Sling Shot 3.1 Extreme Unlimited - Graphics 的测试中,有作弊的嫌疑,这里就不放出具体成绩了。后续测试则极大程度免除了作弊问题,所以我们着重看一些图形测试的子项。 峰值性能上,Exynos 990 和骁龙 865 比较接近,但持续性能前者就会明显比较弱了。这里面不知道有没有系统散热设计的锅,但这是基于同一个散热设计。Basemark GPU 1.2 测试里,Galaxy S20 Ultra 骁龙 865 版的图形性能,持续状态也只损失了峰值性能的 22%。而 Galaxy S20+ 的 Exynos 990 版则在持续性能上还比不过上一代的 Galaxy S10+。 但这里面的温控机制其实也很迷,Galaxy S20 Ultra 的 Exynos 990 在持续性能上表现最糟糕——还比不上 S20+,可能应该从其他层面来找问题根源。 GFXBench 图形测试绝对性能的情况也类似,骁龙 865 和 Exynos 990 的图形计算峰值性能差不多,而 Exynos 990 显然没办法持续稳定,很快因为温控而产生性能较大程度的滑坡,其实这个滑坡幅度比 Exynos 9820 还要大。 而这项测试的功效(power efficiency)表现,也是今年高通 Adreno 被盛赞的一个点,即 Adreno 650 的效率跨越甚大,虽然绝对性能比不上苹果,但效率已经追上苹果 A13 了。至于 Exynos 990,情况就比较悲剧——尤其跟进步这么大的 Adreno 比起来,实在是有点拿不出手。我觉得光从每瓦帧率来看,情况还算不上太糟,Aztec Ruins - Normal - Offscreen 测试,骁龙 865 比 Exynos 990 有 35% 的效率优势。 Manhattan 3.1 与 T-Rex 测试也比较类似, Exynos 990 的 Mali G77 都可以用悲惨来形容,持续性能都只有峰值性能的一半,而且功耗还很高,甚至要高于上一代。 整体来说,Exynos 990 的图形性能似乎和上一代 Exynos 9820 一个水平。三星可能是有意抬高 Mali GPU 的频率,令峰值性能可与高通的 Adreno 差不多,但代价就是高得多的功耗和悲惨的持续性能。其实上面的表格中有出现联发科的天玑 1000L,都是 Mali G77,它的表现是好于 Exynos 990 的。 十一 续航测试部分,其实也没什么意外吧。Exynos 990 与骁龙 865 版本续航的差距大约在 10-13%,是大于三星、高通上一代的差距的。 这里我没有加入 AnandTech 的系统性能测试,有兴趣的可以去看一看 AnandTech 测试全文。不过我觉得,涉及到堆了很多软件的整个系统,则三星肯定会有意削弱两者的这种差距(虽然续航的差距还是无法避免)。 其实从上面的很多点滴都不难发现,三星不存在任何继续自研 CPU 架构的必要性(尤其传说 M6 还支持超线程),因为问题太多了。而且在某些决策上,三星 LSI 自己都没有对于 M5 核心的信心,比如针对 32 位、64 位不同 app 的 scheduler 机制;以及缓存方面的决策。 但我觉得,放弃自研核心,就爱好者的角度,仍然是件值得惋惜的事情。这样一来,移动 SoC 主战场上,自研 CPU 架构,也就剩苹果一人了。 阅读原文: The Samsung Galaxy S20+, S20 Ultra Exynos & Snapdragon Review: Megalomania Devices - AnandTech Samsung Galaxy S20+ & Ultra (Snapdragon & Exynos) Battery Life Preview - AnandTech
  • 热度 14
    2018-5-21 13:12
    4102 次阅读|
    7 个评论
    最近开源架构的话题又在国内火了,这次是RISC-V。开源架构并不新鲜, Sparc也开源,Power也开源,MIPS开源支持Android还让好些人激动了一把,但都是热闹了一阵以后就曲终人散了,然后几年以后再来一轮,媒体再炒一轮。其实我觉得这一次RISC-V也没什么不一样。 摆上茶水瓜子点心,给大家慢慢讲:首先所有推崇RISC-V的文章都在说RISC-V架构简单,功耗面积低,这其实跟以前夸MIPS没什么不同。在CPU设计里,指令集是其中最简单最基础的一部分,可以说,采用RISC架构的指令集都差不多,无非是在寄存器数目,分支跳转,数据存取等指令方面做一些取舍,达到某种平衡,满足某些特定需要。在学院派那儿PK的功耗面积,在工程派眼中离实用还远的很。做出一个demo和做出真正工程上能用的产品还隔着十万八千里,而工程上能用距离商业成功又隔了十万八千里。因为一个指令集就把某种架构夸上天实在没必要。 少年啊,心态要平稳,不要太浮躁 开源架构受到追捧隐含的另一个意思是Arm等IP厂商授权太贵,所以总有人揭竿而起要革商业公司的命,用免费打败收费。这里面有两重误会,我一一道来: 第一个误会是指令集架构授权和CPU 核的授权被刻意模糊了。Arm的CPU核授权门槛其实很低,甚至有Design Start你们可以了解一下,基本可以免费获取Cortex-M0和Cortex-M3,一些媒体文章动辄说Arm授权费要千万美金,钱真有那么好赚吗?Arm被孙正义收购的时候营收一年也就10多亿美金,这生意绝对说不上大。架构授权的客户都是财大气粗玩的起的主儿,如我大苹果、大高通、大三星等,初创公司完全有很多很便宜的选择,干嘛一上手就搞架构授权?刻意强调千万美金授权不能不说是有意误导。 第二个误会则是来自开源社区。 很多人说开源架构免费多好呀,但我要说从架构定义到CPU核实现这中间有很长的路要走,这一部分并 不免费 , 不免费,不免费 (重要的事情强调三遍)像SiFive等公司都是要收钱的,与Arm的CPU核授权并无多少区别。把开源解读为免费恐怕是一个中英文翻译中的误会。在开源社区的概念刚刚被引入的时候就有人把Free Software翻译为免费软件,但其实更准确的翻译是自由软件或开源软件,开源不等于免费,免费也不等于开源。开源指的是源代码公开,任何人可以免费获取自行编译或重新开发,只是要遵循相应的版权协议,像Linux遵循的是GPL协议,用GPL开源协议的代码重新开发的软件也必须开源。免费指的是软件不收钱,但是不一定开源。大名鼎鼎的Redhat Linux是开源的,但是也不影响Redhat公司靠服务费收钱。在开源架构社区也是一样,指令集是开源的,遵循BSD协议,各家开发的产品不是必须要开源回馈给社区。各家公司在这个指令集基础上开发的自己的CPU核产品都是要收费的,毕竟开发CPU核产品也是要投入人力研发的啊,总不能都去做雷锋吧。 以上这些都是老生常谈。开源架构每过几年就要来一轮,背后其实大家都懂,就是学院派总是要有点新的研究成果,“国外一开源,我们就自主”的风气决定了,国外有什么新的指令集架构开源都会在国内激起一阵躁动。但学术不等于商业。CPU架构从上世纪90年代的10多家到现在以X86和Arm为主,背后其实是更深刻的产业和商业规律在主导。在我看来,有几下几个要素: 1.指令集架构创新不具有革命性 有多篇论文分析过指令集架构和性能功耗的关系,结论是指令集的差别与性能和能耗没有关系,两者性能的差异是由于需求的不同在硬件设计上的反映,例如指令发射速度、分支预测、乱序执行等方面,提升这些方面的性能需要使用到大量的硬件,使得硬件设计变得更加复杂,并且带来了更多的能耗。正如吴军在《浪潮之巅》中所说,“数量级是判断一项新技术是革命性还是革新性的关键”。Arm处理器功耗相比于x86有了数量级的提升,手机市场又比PC市场出货量要大一个数量级,这才有了Arm在移动互联网市场占据了端侧的优势,取代了x86指令集,也让架构授权模式为更多玩家所认可。在开源架构和Arm的PK中,没有这种数量级上的差异。Arm和RISC-V都是RISC架构的,只是指令集定义的不同,这就决定了不可能从指令集PK中获得什么优势,还是看具体的硬件实现和功能取舍。 2.技术先进性不等于商业成功 每次有人强调新的指令集比原有的指令集要高效的时候我就笑了,大家想想键盘布局的故事。现在的QWERT键盘布局虽然奇怪,但延续了这么多年,已经有了强大的惯性,即使有人发明了更高效的键盘布局也无法得到广泛支持。指令集上的故事也是类似。Intel的x86指令集是CISC架构的,曾被人Diss架构臃肿。历史上也有多次“x86革命”想取代x86架构,但都因为得不到广泛的支持最终以失败告终。巨大的商业利益和强劲的软硬件的支持可以使得x86架构难以撼动,这些都不是一个简单的技术问题。 3.指令集架构是一个昂贵的公共品。 对学院派来说,能运行软件跑成Demo发论文就是成功,对商业公司来说则是要完成从指令集定义到CPU微架构的设计,到整个芯片的设计和相应软件,工具链的开发和维护,以及在上面运行的操作系统,丰富的函数库以及应用程序,还需要得到大量用户认可,这些都不是一朝一夕之功。设计指令集不难,让一个指令集得到市场认可很难,而一旦得到认可,人们要迁移的成本也很高,这就是Intel能多年在PC和服务器市场称霸的原因。Intel也因为x86指令集的成功获得了巨大的商业利益。指令集架构这一公共品是如此昂贵,无法通过社区自发成长起来,而必须结合商业公司的力量。Linux也是在Android采用以后才得到了大发展。 Arm通过授权模式让众多CPU厂商可以共享一套指令集和编译工具,极大的降低了众多CPU厂商的开发门槛,其实相当于众多CPU厂商众筹了一个Arm指令集,节省的是各家自己开发并维护一套指令集的开销。也正因为这个原因,市场对CPU架构的人员需求减少了,对应用程序开发者的需求增多了,Arm生态系统才有了今天的发展。 现在众多厂商众筹另一个指令集,然后呢?也一样有巨大的生态开发成本,从指令集定义到真正成熟得到广泛应用,没有一二十年起不来。硬件不像软件,有什么错误可以发布新版本去修正,一旦流片了再修改就难了。一个IP要做好不是那么容易的事情,需要有客户一起去趟早期开发过程中的坑,稍有不慎出现一个Bug,前期投入就要打水漂。对商业公司来说开发成本损失还是小事,错失了市场机遇才是最大的损失。即使新指令集生态真能起来,大多数公司要么维护自己的CPU核开发团队,要么从IP授权公司购买相应的架构实现,真的能省钱吗?还是到时候再切换一次指令集,把这些坑再趟一遍? 另外,开源架构采用的指令集架构开源,各家可以自己设计自己的CPU核的方式从一开始就埋下了碎片化的种子,各家IP公司自己设计自己的扩展,并且不需要回馈社区,其结果就是各自有一套自己的开发工具和软件库,重新走到了上世纪90年代有多家指令集架构的局面,对芯片开发公司来说并没有节省什么成本,反而因为各自微架构的特殊性带来操作系统和应用程序的不兼容,这是与商业世界成本尽量降低相矛盾的。 指令集是越多人使用价值越大,指令集架构也就更贵,而CPU核只是部分公司使用,相对于指令集架构就便宜一些,这是Arm的商业模式,是目前经受了实践的检验的一种模式。当年MIPS指令集架构授权很便宜,CPU核卖的贵,是从成本而不是用户需求定价,正好搞反了。结果就是各家都拿了指令集自己去设计MIPS核,造成碎片化和分裂。现在开源社区也是类似的问题。指令集开源,准入门槛很低,IP设计厂商各搞一摊。开源社区没有力量去维护各家实现的统一标准,各家也只能通过低价来抢市场,芯片设计厂商则需要面对不同IP厂商的CPU核实现,不能发挥统一架构的优势,构成恶性循环。 以上是一点对开源架构的浅见,供参考。最近RISC-V一片赞歌之中,我们更需要有一些不同的声音,RISC-V发展前景到底如何,拭目以待。
  • 热度 12
    2018-5-21 13:10
    4464 次阅读|
    7 个评论
    RISC-V 到底是什么?其实他并不是开源的 CPU 设计方案 大家可能都觉得 RISC-V 是个开源的精简指令集 CPU 设计方案,其实这是错误的。 RISC-V 仅仅是一套精简指令集的定义,开源的意思是任何人都可以免费获得指令集,并且自己去实现指令集,不需要支付任何费用。打个不专业的比方,指令集可以看成一张大楼效果图,图上有大楼漂亮的外观,完整的功能划分,超前的设计理念等等。你可以免费的从网上下载这张效果图,然后找人把效果图造成大楼,租售出去。出效果图的人保证不会来向你收钱。我也有更专业的比方,我把 x86 的指令集免费送给你,你可以自己实现兼容这套指令集的 CPU ,如果你的 CPU 做的足够好,你还可以在这个 CPU 上支持 Windows 。是不是很爽?但爽也是有代价的,我们接着说。 RISC-V 真的免费吗?免费,但成本着实不低 免费,必须免费。指令集在网站上可以直接下载,文档清晰,解释清楚,扩展灵活,一看就是高手高手高高手的作品。由于没有兼容性的累赘,又是最新的设计,肯定非常贴合目前业界对 CPU 指令集的需求,可以说是众望所归。但是问题这个高手只给了一页 A4 纸的指令集, CPU 怎么实现他没告诉你,高手没有提供 HLS 或 RTL 源代码,没有告诉你应该怎么 Layout 。这一切需要你自己想办法解决。就好像给你一张大楼效果图,免费使用。但是想要把这栋大楼造出来,你必须解决一个最重要的问题“ 没有施工图纸 ”。你必须要有一大堆工程师去设计结构,材料,水电管道,电梯楼梯,智能楼宇系统,监控系统。。。。。。,还要有工程队,还要有物业团队。。。。。。所以想把他造出来实在是太困难了。至少需要上市公司的实力,不然可能就只能造个外观接近效果图的小屋子给自己挡挡风了。反正我是用不起这免费的效果图。 为什么不少人喜欢 RISC-V ?喜欢的不一定是合适的。 为什么喜欢?我觉得有以下几个原因: 1. 指令集设计太高超了,精简而高效,既严谨又可以灵活扩展,又有众多业界领袖参与设计。什么 x86, Arm, PowerPC, MIPS 统统都是为了兼容以前的产品拖累了产品创新。就如同贝聿铭团队推出了一份大楼的效果图,各大地产商巨头都说我以后都准备盖这样的大楼,这个楼实在太漂亮了,功能太强大了,设计太先进了,造出来了肯定火,现有的大楼以后都会住着不舒服。 2. 指令集架构开源免费,谁都可以设计兼容的芯片。大楼效果图不要钱,拿来就可以拉几个兄弟开始造, 还可以用效果图找大款亲戚入伙。谁让这图人见人爱呢? 3. RISC-V 还有很好的扩展性,可以根据需求,增加扩展的指令集实现客户化的功能。就好像在大楼上还可以定制一些密室,满足一下自己的小小愿望。 4. 指令集的实现方法自主可控,源代码都是自己写的,可不是放心么。就好像自己造的楼肯定安全,每块砖都是自己选的,物业保安也都是自己雇的,放心 5. 指令集架构的生态链正在成长和完善, toolchain , IDE ,仿真,虚拟机一个不会少。就好像以后可能全国到处都有这样的楼,物业,水电,管理都一套规范。如果要搬到其他城市,家具都不用换,拎包入住。 恋爱容易结婚难,合不合适只有用的人才知道。我来分析一下大家就明白了。 1. 指令集架构好也要有好的设计才能体现出来,涉及 RTL 编码, layout ,半导体制程,封装等一系列技术,这是一个系统工程。 Intel 和 AMD 的 CPU 指令集基本一样,但性能功耗的差异地球人都知道。还有 TI , Cyrix ,这些 PC CPU 先烈们也是用了同样的指令集。采用 Arm 指令集架构的产品就更多了,做的好的也不少,但你能说出名字的可能也就那么几家。所以指令集架构先进不代表 CPU 一定就好,设计水平,工艺,测试标准,等等一样都不能差。就像大楼效果图确实漂亮,但真能造出来的估计不会太多,毕竟自备设计团队,施工队和物业公司的大款太少。而且施工难度着实不小,造出来有没有质量问题还真难说。 2. 指令集架构开源免费,但 HLS 或 RTL 不一定。业界已经有很多免费开源的实现代码了,但没有人会为质量负责,没有三包。解决方法有:买商用的版本, SiFive, Andes 等,但要服务费。也可以自己做,工程师成本自己扛。我感觉都不便宜,出来的东西能不能用现在也不好说,风险不是一般的大。回到大楼效果图的比方,效果图是不要钱,但想要住着个楼。要么买现成的造好的,要么自己设计施工图,材料也要自己买,水电煤还要自己接,造出来有质量问题也要自己负责。都是时间和钱啊。 3. 扩展性好确实很重要,但扩展的指令集就和 RISC-V 关系不大了,虽然组织制定了一系列规范来保证兼容性,但效果怎么样确实不好说。就像效果图上留了一片空白方框,给你做密室,还试图规定密室的布局,但毕竟密室都是自己做的,而且一定是秘密的,一切还是要自己从头来做,感觉没占到免费效果图的光啊。 4. 指令集架构的生态系统的成长是个很复杂和漫长的过程, 5 年 -10 年都很正常。还需要一个领头羊,就像 x86 有了 windows , x86 才真正建立起生态系统,然后是 Linux ; Arm 有谷歌 Android 才能造就现在的成功。同时碎片化也是一个很难处理的问题,特别是对开源的架构,这个问题会更挑战。就像效果图大楼的住户搬到其他城市同样效果图的大楼住,发现楼看上去是一样,但房门比原来的楼小了点,家具搬不进去,密室是有,但里面没有床和卫生间,不好用啊。 基于 RISC-V 的芯片会是个什么样子?什么样子的应该都会有 开源项目参与的人多,当然会丰富多彩,百家争鸣。所以 RISC-V 的芯片肯定会有很多形态。当然也就会有良莠不齐的问题。水平高的团队的产品肯定会好一些,但也不能阻止不太懂的人不尝试吧。所以会有 Intel 的成功典范,也会有 Cyrix 这样的先烈;会有 ARM 在智能手机产业的成功,也会有 MIPS 的逐渐的没落。还有一个特点就是 RISC-V 的芯片应该 SoC 为多,所以 CPU 主频,外围接口,功能模块会比 PC CPU 这样的通用 CPU 要丰富的多。林子大了,肯定什么鸟都会有,我觉得用淘宝买家秀和卖家秀来比喻最贴切,你不能说货不对版,但差距咋就这么大呢?说好的瓜子脸咋就变成南瓜子了,说好的大长腿咋就罗圈了呢?这都是因为虽然基本指令集都一样,但设计的方法和思路各不相同,扩展指令集千差万别。做个不恰当的比喻,虽然衣服一样,但身材不一样,脸不一样,搭配的首饰和配饰也不一样,所以出来的效果可以完全不一样。 RISC-V 到底有没有前途?现在说不准。 可以说有,也可以说没有,说有前途是觉得免费又好用的东西肯定能成功,但还需要考虑更多的因素。原因如下: 1. 大厂可能真的能把好的架构变成成功的产品。就像 Intel 做 x86 CPU, 高通做的 Arm 指令集智能手机芯片。回到效果图的比喻,万科和万达有能力把大楼效果图变成高科技大楼,租金很高,大家抢着租。这个肯定可以有,谁让人家牛 B 呢? 2. 但并不是每个公司都可以免费的从 RISC-V 指令集架构受益,因为他对技术水平,资金投入和时间的要求都不低。可以从第三方买,但一份价钱一份货。我没法自己盖楼,但我从大厂那租或买。但感觉这跟效果图免不免费已经没关系了 3. RISC-V 目前还处于早期的阶段,没有太多的实现和验证,先行者肯定要承担更多的验证,测试等小白老鼠的工作。这是必然的过程,中间的不可控因素就会很多,所以你会发现大公司都加入了组织,但并没有大动作,都是在试水的阶段。就像有公司把施工图纸做出来了,你可以去买,然后找施工队按施工图纸施工,但造出来的房子能不能通过检测人家不保证,因为还没人真把这房子造出来多,到底好不好还不确定。所以谁都会谨慎对待这件事 4. 正因为成熟的过程会比较漫长,所以不确定因素会很多,最后有没有赢家不一定,是大家共赢还是一两家独大也不好说,赢家是因为指令集架构的成功而成功,还是因为其他原因而成功都不好说。是否能达到 RISC-V 设计者的初衷,真的还说不准。但是钻石总会发光的,现在 RISC-V 这颗原石能不能被打造成海洋之星这颗宝石,请大家拭目以待。
  • 热度 3
    2018-5-4 11:49
    1942 次阅读|
    0 个评论
    在Altera SoC的开发中,Qsys 系统和 Linux 应用程序之间通过一个名为 hps_0.h 的文件交互硬件信息,例如总线上添加了哪些外设,每个外设相对于 HPS 外部总线的偏移地址,每个外设所占的地址空间等,类似于开发 NIOS II 应用程序时候的 system.h 文件。每当 Qsys 系统中更新了硬件之后,如果需要直接在 Linux 中编写应用程序以直接操作寄存器的方式来控制这些外设,则需要重新生成一次该文件,然后将该文件添加到软件工程下作为头文件包含。 那么如何得到 hps_0.h 文件呢?需要借助 SoC EDS Command Shell ,首先打开 SoC EDS Command Shell ,然后使用 cd 命令将路径切换到 Quartus 工程所在目录,例如 D:\fpga\work_debug\ModBus_Processor\SoC_TXGLJ ,则切路径的命令为: cd d://fpga/work_debug/ModBus_Processor/SoC_TXGLJ 然后,输入以下命令就可以得到 hps_0.h 文件了 sopc-create-header-files "./soc_system.sopcinfo" --single hps_0.h --module hps_0 注意, soc_system.sopcinfo 是 Qsys 编译得到的一个硬件信息文件,工程名称不一样,该文件的名字也不一样,需要根据自己的工程名称进行修改。 另外,输入 ls 命令,也可以看到工程目录下存在一个名为 generate_hps_qsys_header.sh 的文件,这是一个脚本文件,包含了生成 hps_0.h 文件的具体命令。我们可以到工程目录下打开该文件查看具体内容,实际内容就是我们上面输入的那条命令,因此,如果经常需要生成 hps_0.h ,可以直接执行该脚本即可。如果工程名不一样,修改为自己的 sopcinfo 文件名即可。 #!/bin/sh sopc-create-header-files \ "./ soc_system.sopcinfo" \ --single hps_0.h \ --module hps_0 执行该脚本的命令为: ./ generate_hps_qsys_header.sh
  • 热度 9
    2018-5-4 11:44
    2868 次阅读|
    0 个评论
    rbf文件作为Altera的FPGA一种常见的配置数据格式,常用于使用其他主控主动配置FPGA时使用,例如PS模式。在Cyclone V SoC FPGA中,HPS部分可以直接使用rbf文件在线配置FPGA,本博文介绍如何通过sof文件生成rbf格式文件,以用于使用HPS配置FPGA。 1、 新建一个文本文件,保存为任意但有意义的名字,如: sof_to_rbf.bat ,注意,保存时请不要使用默认的格式,应该手动从 .txt 切换为 all files 2、 在文本中输入以下内容 : %QUARTUS_ROOTDIR%\\bin64\\quartus_cpf -c DE1_SOC_golden_top.sof soc_system.rbf pause 其中, DE1_SOC_golden_top.sof 为待转换的 sof 文件的名字,我们可以改成自己实际 sof 的文件名字,如: led.sof 。 soc_system.rbf 为转换后得到的文件名字。 3、 放在 sof 文件所在的目录内,双击运行,即可生产 soc_system.rbf 文件了。 rbf 文件主要是用于 PS 方式配置 FPGA ,如使用 CPLD 、 MCU 等。在 altera soc 中,也可以在 linux 下使用该文件配置 FPGA 。 (注意,友晶提供的脚本应该使用的是 32 位软件,所以 %QUARTUS_ROOTDIR%\\bin64\\quartus_cpf 中并非写的 bin64 ,而是写的 bin ,因此直接运行会报错。所以也可以自己使用记事本编辑该文件,将 bin 改为 bin64 即可)
相关资源
  • 所需E币: 2
    时间: 2020-6-23 16:02
    大小: 1.28MB
    上传者: Goodluck2020
    SiliconLabsEFR32BG22WirelessGeckoSoCFamily.pdf
  • 所需E币: 0
    时间: 2020-5-20 16:32
    大小: 4.55MB
    上传者: samewell
    AX58200以太网从控制器SoC的数据手册免费下载.pdf
  • 所需E币: 1
    时间: 2020-5-13 11:33
    大小: 527.2KB
    AGMFPGA/CPLD/SoC产品选型手册
  • 所需E币: 4
    时间: 2019-12-26 12:48
    大小: 1.83MB
    上传者: 978461154_qq
    集成串行闪存的EFR32MG1MightyGeckoSoC资料简介(英文).……
  • 所需E币: 3
    时间: 2019-12-26 12:21
    大小: 312.9KB
    上传者: 238112554_qq
    MCU&SOC……
  • 所需E币: 3
    时间: 2019-12-26 10:20
    大小: 745.08KB
    上传者: rdg1993
    ARM芯片的应用和选型[芯片类]……
  • 所需E币: 3
    时间: 2019-12-26 01:48
    大小: 856.19KB
    上传者: rdg1993
    ARMLINUX在EP7312上的移植ARM核SOCEP7312及基于EP7312控显系统的设计……
  • 所需E币: 3
    时间: 2019-12-25 21:34
    大小: 182KB
    上传者: wsu_w_hotmail.com
    TheEP8144AisanAMC.4compliantAdvancedMezzanineCard(AMC)designedasamodularandscalableevaluationplatformforMulti-serviceMediaGatewayandRemoteAccessConcentratorsystems.TheSerialRapidIObackplaneinterfacemakestheEP8144AanidealdevelopmentsystemforOEMstoevaluate,developandtesttelephonysoftware,offeringasignificanttime-to-marketadvantage.……
  • 所需E币: 3
    时间: 2019-12-25 21:17
    大小: 54.99KB
    上传者: 二不过三
    用数字电路实现模拟与RF是真正的挑战,因为它要求不同的IC工艺。模拟、数字与RF集成已成为现实但与SOC的最终目标相比,这只是模拟与RF电路相对不太复杂的定制设计而已。……
  • 所需E币: 4
    时间: 2019-12-27 21:19
    大小: 651.56KB
    上传者: 238112554_qq
    为实现锂离子电池组和使用寿命的最大化,常用系统力争在20%至80%的充电状态(SOC)下运作。由于锂离子电池具有极为平坦的放电特性,因此必需采用高准确度测量来确定共SOC。LT1461特别适合用作一个高性能校准源,采用小外形SO-8封装,一个用于量度温度的ADC通道,一个可编程I/O位负责控制基准的电源。……
  • 所需E币: 5
    时间: 2019-12-25 21:09
    大小: 142KB
    上传者: 微风DS
    SoC是超大规模集成电路的发展趋势和新世纪集成电路的主流[1]。其复杂性以及快速完成设计、降低成本等要求,决定了系统级芯片的设计必须采用IP(IntellectualProperty)复用的方法。本文介绍以可复用IP设计方法,设计串行外设接口SPI(SerialPeripheralInterface)模块IP核的思路,用Verilog语言实现,并经FPGA验证,通过TSMC(台湾集成电路制造公司)的0.25μm工艺生产线流水实现,完成预期功能。……
  • 所需E币: 4
    时间: 2019-12-25 17:36
    大小: 446.55KB
    上传者: givh79_163.com
    介绍了TR600语音编解码芯片中过程调用的设计及实现方法,并与堆栈寄存器结构实现方式做了简要的比较.重点阐述了重叠寄存器窗口技术和存取算子对存储体交叉访问技术的原理、技术特点及其在TR600芯片体系中的具体实现。……
  • 所需E币: 3
    时间: 2019-12-25 17:30
    大小: 161.03KB
    上传者: rdg1993
    带有多个处理单元的SoC器件目前是产品设计链上的重要一环。本文综合各种因素评估了不同处理单元的优缺点,并通过卫星无线电接收器的设计实例帮助开发人员理解SoC所涉及处理任务之间的复杂平衡并有效掌握系统功能的划分。……
  • 所需E币: 3
    时间: 2019-12-25 17:28
    大小: 216.19KB
    上传者: 238112554_qq
    在新的系统级芯片(SoC)设计中,尤其是对便携式设备而言,对整个系统功耗的优化正变得与性能和面积优化同样重要。……
  • 所需E币: 5
    时间: 2019-12-25 17:29
    大小: 81.08KB
    上传者: 二不过三
    SoC是超大规模集成电路的发展趋势和新世纪集成电路的主流。其复杂性以及快速完成设计、降低成本等要求,决定了系统级芯片的设计必须采用IP(IntellectualProperty)复用的方法。本文介绍以可复用IP设计方法,设计串行外设接口SPI(SerialPeripheralInterface)模块IP核的思路,用Verilog语言实现,并经FPGA验证,通过TSMC(台湾集成电路制造公司)的0.25μm工艺生产线流水实现,完成预期功能。……
  • 所需E币: 5
    时间: 2019-12-25 17:25
    大小: 350.17KB
    上传者: 978461154_qq
    随着IC的生产成本持续上涨,消费类电子产品制造商不得不努力寻求多种方法以满足价格上升的迫切要求同时提高自身的利润空间。……
  • 所需E币: 3
    时间: 2019-12-25 17:21
    大小: 42.4KB
    上传者: 二不过三
    SoC面世八年后的产业机遇……
  • 所需E币: 3
    时间: 2019-12-25 17:17
    大小: 314.1KB
    上传者: quw431979_163.com
    mcu&soc对比分析课件……
  • 所需E币: 3
    时间: 2019-12-25 17:05
    大小: 28.11KB
    上传者: 978461154_qq
    escription TheEP9315isahighlyintegratedsystem-on-chipprocessorthatpavesthewayfornext-generationconsumerandindustrialelectronicproducts.TheEP9315featuresanadvanced200MHzARM920Tprocessordesignwithamemorymanagementunit(MMU)thatsupportsLinux?WindowsCE?andmanyotherembeddedoperatingsystems.TheARM920T's32-bitmicrocontrollerarchitecture,withafive-stagepipeline,deliversimpressiveperformanceatverylowpower.Designersofdigitalmediaservers,jukeboxes,telematiccontrolsystems,thinclients,set-topboxes,point-of-saleterminals,industrialcontrols,biometricsecuritysystemsandGPSdeviceswillbenefitfromtheEP9315'sintegratedarchitectureandadvancedfeatures.Infact,withitsbroadrangeofperipheralinterfaces,theEP9315issuitedtoevenmoreapplications.ByenablingordisablingtheEP9315'speripheralinterfaces,designerscanalsoreducedevelopmentcostsandacceleratetimetomarketbycreatingasingleplatformthatcanbemodifiedtodeliverdifferentiatedendproducts.CirrusLogic'sembeddedprocessorproductsarecomplementedbyarangeofcompleteoperatingsystems.BothMicrosoft?WindowsCE.NETandLinux?solutionsareavailablewithtotaldriversupport.……
  • 所需E币: 3
    时间: 2019-12-25 16:45
    大小: 5.04MB
    上传者: 2iot
    C8051Fxxx高速SOC单片机原理及应用超星版……
广告