自从我开始阅读科幻小说作为一个眼睛明亮的,看起来精神焕发年轻的小伙子,我接触到机器人能够“思考”的概念,他们可以感知周围的世界并采取相应措施。
我特别深刻的印象在艾萨克·阿西莫夫的机器人的故事书我的机器人,其余的机器人,钢的洞穴,裸体的太阳。正如我之前提到的,阿西莫夫之前,大多数的机器人的故事弗兰肯斯坦的怪物种类,按照“人创造了生物,生物胡作非为,让人不愉快的一天。”
说句题外话,谈论不愉快的日子,在我的青春我夸耀一头浓密的长发,我做梦都没有想到有一天会在我现在的悲伤的国家体育我们可能会慷慨地称之为“反向莫希干人。“但我们跑题了…
我只想说,一旦阿西莫夫编纂了机器人三定律,大多数robot-centric故事变得更加微妙。
我只是回想当我第一次接触到现实世界的人工智能(AI)的概念和机器学习(ML)在1990年代。这些都是所谓的“专家系统的一种形式。“这些系统花了大量的工作来实现,他们真的没有那么好。另一个问题是,无赖的市场商人迅速采用了人工智能的绰号和盖章“人工智能在“一切他们可以把粘手。
今天同样的事情正在发生,公告的“无谷蛋白”产品不包含任何蛋白呈现正相关关系。结果是,到1990年代末,术语“人工智能”造成了不好的影响在每个人的嘴(由一些奇怪的命运的巧合,也是说对于大多数今天的无谷蛋白产品)。
人工智能仍然是主要的学术兴趣,直到2010年代中期。Gartner是一个著名的和受人尊敬的技术研究和咨询公司,他们是众所周知的的一件事是他们的吗Gartner炒作周期。
我们感兴趣的是2014版本的Gartner炒作周期没有提到人工智能或毫升。仅仅一年之后,2015年的宣传周期显示毫升已经冠翘首以望的顶峰了。
当然,人工智能是在我们周围。例如,一个应用程序得到大量关注这些天是不鼓舞人的姓名ChatGPT,这是聊天生成Pre-trained变压器的缩写。正如我在我写的使用ChatGPT写一个基本的翻译博客,我的朋友乔Farr提出了一个问题:“你能在c#编写一个程序,作为一个基本的翻译吗?”乔接着说,”它开始给我一个完整的c#程序清单。不是一个片段或片段,但一个完整的血腥程序清单连同它工作的一个例子。你可以看到该死的输入的代码在你眼前…在实时。看的真的很可怕。”
当然,这个超级无敌复杂的人工智能应用程序像ChatGPT巨大无比的服务器集群上运行在云中。目前有一种趋势进行人工智能和ML的边缘,这是互联网满足现实世界。可以执行一些低端边缘AI在传统微控制器单元(mcu)。中档边缘AI可能需要单片机增强神经处理单元(转专业)。和高端边缘AI可能需要特殊的芯片系统(SoC)设备拥有专门的AI /毫升加速器。
说到特别出类拔萃,在我的专栏如何构建一个Multi-Billion-Transistor SoC吗,我们介绍了MLSoC的男女SiMa.ai机器学习的目标是提供轻松嵌入的边缘。在16纳米技术创建节点,整个MLSoC包括数以十亿计的晶体管。的“秘密武器”这是他们的机器学习加速器(MLA),它提供了每秒运算50万亿次(顶部),而消费小5瓦的功率。
作为这一列的一部分,我们讨论了各种方式的IP块用于实现一个SoC可以连接到对方。主要使用互连技术在1990年代被公共汽车。在2000年代早期,许多soc体育纵横开关基于互连。现在,在2020年代早期,soc是炫耀network-on-chip (NoC)的互连。
不同的SoC互连策略(来源:Max Maxfield)
在我们继续讨论之前,我们应该写“NoC”或“NoC”?事实上,两者都是正确的取决于一个人说“NoC”或“声音出来”阅读。如果你拼NoC作为“N-o-C”,然后“NoC”是路要走。然而,如果你说“NoC”押韵,“袜子”,然后“NoC”是适当的形式(这后一种方法我认为事情的方式)。
我们习惯于认为IP是占领的正方形或者矩形区域表面的硅片。它需要一点认为充实你的大脑,事实NoC也是知识产权的一种形式,但在这种情况下,它的IP横跨整个芯片。
如果你是一个团队设计一个新的SoC的一部分,你可能是课程设计自己的NoC,但为什么你会吗?从头开始创建一个NoC可能需要说六个工程师两年左右。不会你的秘密武器,而那些工程师IP ?
我想起了这本书削铅笔:手工工艺的实践和理论论述削铅笔的作家、艺术家、承包商、法兰车工,铁匠,和公务员吗由大卫·里斯。有一个报价伊丽莎白·吉尔伯特的封底,谁说:“我可以提高我自己的铅笔吗?当然我可以!我也可以做我自己的牙科,鹅卵石自己的鞋子和史密斯自己的tin-but为什么不让此类事件真正的工匠,?我相信我的定制铅笔大卫·里斯。”的好评。我只希望我可以有自己的铅笔削尖的工匠大卫的地位。
当涉及到国有石油公司,事实上的行业标准是无粘聚力的FlexNoC和cache-coherentNcore互连IP从Arteris IP。
谁需要一个NoC ?说实话,事情进展的方式,我认为几乎每个人都需要使用一个新的SoC设计这些小流氓说话。我相信你看过表征微处理器的不同方面的趋势数据见下图。
50年的微处理器趋势数据。
观察到,尽管这个图表的某些方面减弱随着时间的推移,晶体管的数量继续增长指数(记住,纵轴绘制使用对数刻度)。关键是soc非常相似的趋势数据,而在我看来,唯一的方法来管理这种复杂性的设计是使用NoC。
说到此,我知道什么?上次我设计了一个ASIC在1980年代早期(当时还没有人听说过这个术语,SoC)。确保我没有说一些愚蠢的(或者,至少,没有比平常愚蠢),我要求视频聊天与迈克尔·弗兰克在Arteris副总裁和首席架构师。作为这个聊天的一部分,我问弗兰克:“SoC的原因都是设计者需要使用NoC ?”
没过多久我很抱歉问,因为迈克尔淹没我有这么多的想法,它让我的头像陀螺一样旋转。我还从经验中恢复but-happily-I剩下足够的力量总结迈克尔的意识流的反应如下:
- 当前soc的复杂性
- 今天的soc由大量的购买和内部开发的IP块。
- 有许多代理与记忆和彼此交流使用标准布线(横梁)拓扑区域消费。
- IP块来自不同供应商和/或结转从以前的设计可以使用不同的接口标准(ACE、AXI、AHB APB、气(OCP,等等)。NoC通常使用一个内部通信协议“包装”个体的接口标准的功能和隐藏这些支持标准化的“处理”。
- 硅技术继续遵循摩尔定律
- 芯片上的可能的组件的数量增加,它允许更复杂的系统建设包括更多的处理器和加速器。更多的并发计算导致交通和更多的并发事务内存增加。
- 时钟速度增加,这意味着更多的数据单位时间内处理的。更快的记忆标准(DDR…DDR5)意味着整个内存带宽增加。内存延迟不规模(内存墙),所以,为了克服延迟,系统需要更多的内存事务在飞行中。
- 交通聚合/分布外,还可以从许多别的来源(发起者)许多下沉(目标)是一个已经解决了的问题在其他网络,首先在电信,然后在计算机网络中,通过使用一个通过协议。同样的解决方案适用于国有石油公司。
- 管理并发non-NoC实现过于复杂,难以验证,证明正确。NoC协议允许请求的解耦,内存访问,并返回数据。
- 服务质量(QoS)
- 每点(2.2),多个并发代理有不同的带宽需求和不同延迟公差。
- 为“流”在通过网络实现QoS在艺术(尽管它通常仍然是一门艺术)从计算机和电信网络,从而允许服务提供担保,(几乎)不可能在交换连接。
- 引入缓存
- 共享内存资源需要本地存储模(减少带宽乘法,延迟)分离外部存储器(如DRAM)和内部处理器/加速器。
- 引入缓存提高一致性的问题,这是一个合同,保证所有数据的共享者总是访问最新版本,和内存一致性,所有这些需要的订购和可见性规则修改的内存位置。
- 实现基于消息的缓存协议与多个参与者NoC(种)很简单,但是非常复杂,使用传统的低性能(遗留)互连策略。
- 系统死锁避免
- 共享缓存一致性处理结果在一个变量的消息数量(如探听,数据干预)衍生出一个事务请求。跟踪和管理这些活动没有死锁是简单的流NoC(这可以正式验证)。
- 资源管理(缓冲区,等等)简化使用重试或以信用为基础的系统,例如。
- 电线成本
- 进程扩展明显青睐晶体管/盖茨电线。因此,盖茨的相对密度与互连变得失去平衡,导致金属层的数量显著增加(成本)。电线更昂贵的和有限的选择拓扑。
- NoC股电线(虚拟)之间的连接,从而提高线利用率(电线成本回报率)。
- Noc分包是灵活的。的线数不太拥堵的路线可以优化基于预期交通通信模式。
- 设计简化和debuggability
- 单一、共享协议栈减少验证努力和支持检查遥测(性能计数器)和现场调试(流量跟踪捕获)。
- 使用NoC将本地运输/交通管理的设计从全球运输。
- 层次结构的支持
- 而不是建立一个复杂的设计在一块,将设计划分为独立的简化分层块。
- 每一块可能有独立的时钟和功率控制与检查只在边界。这导致更多/更好的电源管理功能。
- 错误处理
- NoC支持错误检测和恢复的实现/弹性通过提供备用冗余线路可能被使用。
- 定时关闭和拓扑创建
- 个人网络中的路径可以通过不同时钟域,可能操作在不同的频率。
- 以单个段流水线很简单。
吐痰莫莉小姐好!你可以想象一下,上面的列表反映了长谈。我希望你能听到它,至少我不需要把这一切写下来。我只想说,我深信,这个问题的答案是一个响亮的“谁需要一个NoC每个人!”(这个假设我们讨论发展中出类拔萃的人,人们也追求的职业在古老的折纸艺术,例如,几乎可以肯定NoC-free环境中继续这样做。)说你什么?你有什么想法你会愿意分享的呢?