软硬件融合 · 2021年04月01日

软件和硬件中的调用(二)

3 硬件“调用”

3.1 综述

总线模型

WeChat Image_20210401103542.jpg

图8 总线系统示意图,包含主模块、从模块和Interconnect

芯片是由多个不同模块组成的,每个模块之间通过一些自定义的或标准的多根线连接到一起。为了更好的标准化和设计服用,模块之间通常都采用标准的总线连接。总线是符合特定协议的一组线的集合。

通过总线把不同的看连接到一起之后,有的模块会主动发起访问Request,这些我们称之为总线Master模块;有的模块则是被动的接收访问并返回响应Response结果,这些模块我们称之为总线Slave模块。Master模块和Slave模块并不一定是直接连接到一起的,一般需要有特殊的总线Interconnect专门来连接。

类似软件的CS架构,硬件的Slave相当于Server,Master相当于Client。

总线的分层

可以把总线访问理解成三个层次:

  • 层次1:物理层次,主要关注的是相互连接的总线行为,例如AXI总线李的valid/ready握手,burst信号如何定义,user信号如何定义等等。
  • 层次2:从节点到节点的“数据包”,例如,从Master发到到Slave的Request,从Slave返回到Master的Response;也例如PCIe底层是全双工的数据传输通道,每次传输的是TLP包;也例如网络,传输的是Tx或Rx向的网络包。
  • 层次3:底层数据包封装的上层Transaction访问,上层的访问通常只有两种,读访问和写访问,其他的各种变种的访问均是读写包含一些特殊的标识,然后slave可以识别并处理。

总线的拓扑

WeChat Image_20210401104646.jpg

图9  常见的总线互联拓扑

总线Interconnect常见有三类:

  • 交叉总线Crossbar:这种拓扑结构构建起来很简单,并且自然地提供了一个低延迟的有序网络,这种拓扑适合与少量节点进行互连。传统的总线结构通常在单一时刻只能进行一次访问,访问需要独占总线,而交叉开关则具有更多的访问通路,可以同时进行多次访问。
  • 环形总线Ring:这种拓扑结构在互连连接效率和延迟之间提供了很好的平衡。延迟随环上节点的数目线性增加。这种拓扑适合中等规模的互联。
  • 网状总线Mesh:这种拓扑结构提供了更大的带宽,代价是需要更多的线路。它是非常模块化的,可以通过添加更多的行和列来方便地扩展到更大的系统。这种拓扑结构适用于更大规模的互联。

总线的分类

通过总线,把多个模块连接到一起,根据Master和Slave的对应关系,我们把总线分为如下类型:

  • 一对一:如AXI-Stream、PCIe(包括基于PCIe的CCIX、CXL)等;
  • 一对多:如APB等;
  • 多对多:AHB、AXI;
  • 对等网络:CHI(CHI在对等网络基础上区分了主从)、通用NOC、以太网等。

按照连接的Hierarchy,我们把硬件之间的总线连接分为:

  • 片内的总线;
  • Chiplet多DIE封装互联总线;
  • 板级总线;
  • 数据中心高速网络;
  • 全球互联网络等。

3.2 片内的总线

片内总线常见的是ARM主导的AMBA(Advanced Microcontroller Bus Architecture )系列总线,AMBA是一种开放标准的、片内互联的总线协议,为了管理系统芯片(SoC)设计中功能模块的互联规范。如今,AMBA已广泛用于各种ASIC和SoC部件。

WeChat Image_20210401105212.jpg

图10  AMBA总线的发展历程

AMBA是ARM公司在1995年推出的芯片内互联系列总线。AMBA 1总线是ASB(Advanced System Bus,高级系统总线)和APB(Advanced Peripheral Bus,高级外围设备总线)。在1999年发布的AMBA 2中,ARM添加了AHB(AMBA High-performance Bus,AMBA高性能总线)。2003年,ARM推出了第三代产品AMBA 3,其中包括可实现更高性能互连的AXI(Advanced eXtensible Interface,高级可扩展接口)和作为CoreSight片上调试和跟踪解决方案一部分的ATB(Advanced Trace Bus,高级跟踪总线)。在2010年,从AXI4开始引入AMBA 4规范,然后在2011年通过AMBA 4 ACE(AXI Coherency Extensions,AXI一致性扩展)扩展了系统范围内的一致性。2013年引入了AMBA 5 CHI(Coherent Hub Interface,一致性集线器接口)规范,重新设计了高速传输层,并设计了可减少拥塞的功能(CHI因为属于NOC的范畴,将在下一节NOC总线介绍)。

AMBA协议的主要设计目标是实现一种标准有效的方法来互连芯片内部的模块,并且这些模块可以在多个设计中重复使用。如今,AMBA协议已成为SOC及嵌入式处理器总线体系结构的事实上的标准,可以免费使用。

各个总线详细的介绍不在此一一列举,感兴趣的朋友可以去ARM官网下载相关的技术文档学习,网上也可以找到非常多的相关资料。

3.3 Chiplet多DIE封装互联总线

Chiplet(翻译成小芯片或芯粒)技术通过把不同的裸DIE封装在一起。Chiplet有很多好处:

  • 解决摩尔定律失效问题,可以突破DIE Size上限;
  • 同时,能提高良率,即使算上chiplet封装的开销,成本低于单DIE;
  • 另外,Chiplet可以增加芯片复用,使得芯片一次性成本降低;
  • 等等。

Chiplet技术当前还在发展过程中,还没有形成主流的标准。

DARPA的CHIPS项目,跟Intel合作,开源了AIB(Advanced Interface Bus),AIB是一种免费的DIE-to-DIE物理层接口标准,Intel® Stratix® 10 FPGA 用的就是AIB 接口。

WeChat Image_20210401105300.jpg

图11 ODSA 分层架构

OCP的ODSA工作组相对平民化很多,ODSA关注die-to-die的层次,并且提出chiplet marketplace的口号。ODSA 的接口标准,分层概念提的很清晰,但是如果试图包括一切,标准的统一性就不会好。

还有一些公司,就不搞什么标准,直接上产品,例如Cadence Ultralink D2D PHY IP ,Synopsys 新出的 DesignWare die to die PHY IP 简单,高效。

物理层,把chiplet 对接在一起。而在物理层之上,有两种类型倾向的语以接口,I/O类型的和memory类型的。保持一致性,以硬件复杂换取软件简单?还是不保持一种性追求高效。

Chiplet是未来发展的热点方向,哪个总线能最终成为chiplet DIE-to – chiplet DIE的主流标准?目前尚未有结论。我们大家一起,持续关注。

参考文献:

https://mp.weixin.qq.com/s/IsHItdTYnnDL7KGlVwlA6w

3.4 板级总线

PCIe是当前主流的片间互联高速总线,而通过SR-IOV技术扩展了PCIe的功能,使得单组PCIe可以更好地支持逻辑隔离的许多虚拟设备。

PCI是一种并行总线,随着频率的提高,PCI并行传输遇到了干扰的问题。长距离高速传输的时候,并行的连线直接干扰异常严重,而且随着频率的提高,干扰(EMI)越来越不可跨越。PCIe和PCI最大的改变是由并行改为串行,通过使用差分信号传输,干扰可以很快被发现和纠正,从而可以将传输频率大幅提升。加上PCI原来基本是半双工的(地址/数据线太多,不得不复用线路),而串行可以全双工。综合下来,从频率提高得到的收益大于一次传输多个bit的收益。还得到了另外的好处,例如布线简单,线路可以加长,甚至变成线缆连出机箱,多个Lane还可以整合成为更高带宽的线路等。

WeChat Image_20210401105312.jpg

图12  PCIe示例拓扑图

如图12所示,不考虑Switch的影响,PCIe根节点是跟PCIe终端节点(End Point)是直接相连的。

WeChat Image_20210401105331.jpg

图13 PCIe版本的带宽比较

如图13所示,我们可以看到,PCIe从1.0发展到了5.0,每一代的带宽大致上翻倍。到PCIe 5.0,通过x16组总线,可以支持双向共约128GB/s的数据带宽,可以支持高达400Gb的网络带宽。

PCIe SR-IOV (Single Root I/O Virtualization)是一项I/O硬件虚拟化技术,可提升I/O设备的性能和可伸缩性。如图14所示,SR-IOV标准允许在虚拟机之间高效共享PCIe设备,并且共享是在硬件中实现的,可以获得与硬件一致的I/O性能。SR-IOV引入了两种新的功能类型:

  • 物理功能(Physical Functions):PF包含SR-IOV功能结构,用于管理SR-IOV功能。PF 是PCIe功能的全集,可以像其他任何PCIe设备一样被发现、管理和处理。PF拥有完全配置资源,可以用于配置或控制PCIe设备。
  • 虚拟功能(Virtual Functions):与PF关联的一种功能。VF是一种轻量级的PCIe功能,可以与物理功能以及与同一物理功能关联的其他VF共享一个或多个物理资源。VF仅允许拥有用于其自身行为的配置资源。

WeChat Image_20210401105347.png

图14  支持SR-IOV技术的Intel网卡技术原理图

每个SR-IOV设备可有一个或多个物理功能(Physical Function, PF),并且每个PF最多可有若干个与其关联的虚拟功能(Virtual Function, VF),PF可以通过寄存器配置创建与自己关联的VF。一旦在PF中启用了SR-IOV,就可以通过PF的总线、设备和功能编号访问各个VF的PCI配置空间。

3.5 数据中心高速网络

数据中心高速网络,本质上和全球互联网络是不同层次的网络,原因如下:

  • 数据中心网络物理距离短,服务器系统堆栈延迟凸显;
  • 系统解构以及多租户混杂,共同导致了数据中心东西向流量激增,占比越来越大;
  • 数据中心因为是某家企业或运营商私有的,这样可以不考虑全球互联网兼容,也就是说不一定需要支持TCP/IP。

因此,数据中心需要轻量的高性能网络协议,当前主流的方案是RoCEv2的RDMA技术。RDMA(Remote Direct Memory Access,远程直接内存访问)是一种高带宽、低延迟、低CPU消耗的网络互联技术,克服了传统TCP/IP网络的许多困难。RDMA技术体现在:

  • Remote(远程):数据在网络中的两个节点之间传输。
  • Direct(直接):不需要内核参与,传输的所有处理都卸载到NIC硬件中完成。
  • Memory(内存):数据直接在两个节点的应用程序的虚拟内存间传输;不需要额外的复制和缓存。
  • Access(访问):访问操作有send/receive、read/write等。

WeChat Image_20210401105402.jpg

图15  RDMA所使用的InfiniBand、RoCEv1/v2、iWARP技术对比

如图15所示,RoCE(RDMA over Converaged Ethernet)v1是基于现有Ethernet网络实现RDMA的一项技术。RoCEv1允许在现有以太网基础上实现RDMA技术,实现接近InfiniBand的性能和延迟指标,但不需要将现有网络基础设施升级成昂贵的InfiniBand,节约了大量的支出。RoCEv2基于标准网络的以太网(Ethernet PHY/MAC)、网络层(IP)和传输层(UDP)协议,这可以使得RoCEv2的网络流量可以经过传统的网络路由器路由。

3.6 全球互联网络

全球互联网络,这个话题有点大,关于网络的内容太多太多,很难面面俱到。

首先,我们介绍下最流行的五层网络协议模型。OSI参考模型具有七层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP参考模型精简了OSI模型,只有链路层、网络层、传输层、应用层。OSI参考模型的影响力在于模型本身(去掉会话层和表示层),它已被证明对于讨论计算机网络非常有价值;而TCP/IP参考模型的优势体现在协议,这些协议已经被广泛应用许多年,证明了自身在各种复杂网络条件下的稳定性。

结合二者的特点,现在大家讨论的网络分层模型如图16所示的五层参考模型:

  • 物理层:规定了如何在不同的介质上以电气(或其他模拟)信号传输比特。
  • 链路层:关注的是如何在两台相连的计算机之间发送有限长度的消息,并具有指定级别的可靠性。以太网和802.11就是链路层协议。
  • 网络层:主要处理如何把多条链路结合到网络中,以及如何把网络与网络连接成互联网络,使我们可以在两个相隔遥远的计算机之间发送数据包。网络层的任务包括找到传递数据包所走的路径。IP是网络层主要的协议。
  • 传输层:传输层增强了网络层的传输,通常有更高的可靠性,提供满足不同应用需求的可靠字节流。TCP和UDP是传输层主要的协议。
  • 应用层:应用层包含了使用网络的应用程序。例如HTTP和DNS等。

WeChat Image_20210401105421.jpg

图16  TCP/IP网络协议栈

如图16所示,一般情况下,网络协议栈各层分别实现在硬件、内核态软件和用户态。物理层和网络链路层是由以太网和802.11标准所定义的,比较稳定,因此物理层和网络链路层一般实现在硬件里;网络层和传输层作为系统共用的组件,一般是作为TCP/IP协议栈集成在操作系统内核里;而应用层的任务则一般交给用户态的程序去实现。

WeChat Image_20210401105432.jpg

WeChat Image_20210401105443.jpg

图17 全球Internet接入示意图

如图17,我们可以看到,每个局域网内部,通过有线或无线的方式把各种类型的设备接入到局域网。而全球互联网其实是由无数多个局域网互联组成的。每个局域网通过一个或多个路由器接入互联网,ISP就是专门提供互联网接入服务的供应商,ISP之上,还有国家级的ISP接入网络。

作者:Chaobo
来源:https://mp.weixin.qq.com/s/HwCGJtL90aErJCIxOPOs3w
作者微信公众号
qrcode_cash-arch_1.jpg

相关文章推荐

更多软硬件技术干货请关注软硬件融合专栏。
推荐阅读
关注数
2802
内容数
104
软硬件融合
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息