YunSDR通信小课堂-Versal Al Core专题(第44讲)

AI Engine 阵列接口架构

AI Engine以二维阵列的形式排列,如下图所示。AI Engine阵列接口提供与设备其余部分接口所需的功能。AI Engine阵列界面有三种类型的AI Engine界面平铺。AI Engine阵列的每一列都有一对一的接口Tile对应。接口Tile形成一行,并水平(左和右)移动内存映射的AXI 4和AXI 4-Stream数据,并垂直向上移动AI EngineTile列。AI Engine接口模块基于模块化架构,但最终的组成是特定于设备的。AI Engine阵列中AI Engine阵列接口的内部层次结构如下图所示。

1.png

 本节介绍阵列接口tile的类型及其内部的模块。

    • AI EnginePL接口模块:

    PL模块包括:

    -AXI 4-流开关

    -存储器映射的AXI 4开关

    - AI Engine到PL流接口

    -控制、调试和跟踪单元

    • AI Engine配置接口模块(每个AI Engine阵列正好一个实例):

    用于AI Engine时钟生成的PLL 

    上电复位(POR)单元

    PLL生成单元

    动态功能交换(DFx)逻辑

    NoC外围互连(NPI)单元

    AI Engine阵列全局寄存器,其控制全局特征,诸如PLL/时钟控制、安全/非安全行为、中断控制器、全局复位控制和DFx逻辑

    • AI EngineNoC接口Tile:

    ○ PL模块(参见先前描述)

   ○具有到NMU和NSU的接口的NoC模块包括:

    -双向NoC流接口

    -阵列接口DMA

AI Engine阵列接口

 AI Engine接口由PL和NoC接口Tile组成。每个设备还有一个配置界面Tile。下图显示了AI Engine阵列用于与Versal架构中的其他模块通信的阵列接口连接。还指定了与PL、NoC或AI EngineTile接口的AXI 4-Stream互连中以及AXI 4-Stream交换机之间的流的数量。

2.png

注:对于-1L速度级设备,AI EngineFMAX为1 GHz。PL时钟应设置为该速度的一半,即500 MHz。在用于AI Engine和NoC的时钟之间的NoC接口Tile处也存在时钟域交叉。

    到PL和NoC的接口类型是:

    •存储器映射AXI 4接口:通信信道是从NSU到作为从机的AI Engine

    •AXI 4-流互连具有三种类型的接口:

    ○与PL流接口的双向连接

    ○与使用存储器生成进入NoC的流量的阵列接口DMA的连接-映射的AXI 4接口

    ○直接连接到NoC流接口(NSU和NMU)

    AI Engine阵列接口Tile管理两个高性能接口:

    • AI Engine到PL 

    • AI Engine到NoC

   下表总结了AI Engine阵列与PL、NoC和AI EngineTile接口的带宽性能。对于-1L速度等级设备,每个AI Engine列都规定了带宽性能。PL到AI Engine接口和AXI 4-Stream交换机到AI Engine模块之间的每列连接数量减少。这是为了支持提供额外水平路由能力的水平连接流交换机。不同速度等级的各种器件的总带宽可以在Versal AI Core系列数据表:DC和AC开关特性(DS 957)中找到。

3.png

注:1.所有去往和来自PL的流在PL侧是64比特。流可以转换为32位宽,但64位宽的流中只有一个32位字有效。两个64位宽的流可以组合成一个128位宽的流,但连接数量减半。2.所示的聚合带宽在东/西方向上。每个AXI 4-Stream交换机有两组连接进出。

4.png

注:1.频率基于-1L速度等级。

5.png

AI Engine阵列接口的功能

    •内存映射AXI 4互连:提供将传入的内存映射AXI 4请求从NoC传输到AI Engine阵列内部的功能。

    •AXI 4-流互连:利用AI EngineTile流互连功能。

    • AI Engine到PL接口:AI Engine PL模块直接与PL通信。异步FIFO用于处理时钟域交叉。

    • AI Engine to NoC Interface:AI Engine to NoC模块负责将128位片上网络流转换为32位AI Engine流(反之亦然)。它为片上网络组件(NMU和NSU)提供接口逻辑。执行电平转换是因为NMU和NSU与AI Engine处于不同的功率域中。

    •硬件锁:利用AI Engine tile中的相应单元,并可从AI Engine阵列接口或外部存储器映射AXI 4主机访问,该模块用于同步阵列接口与外部存储器的DMA传输。

    •调试、跟踪和分析:利用AI Engine图块中的所有特性进行本地事件调试、跟踪和分析。

阵列接口内存映射AXI4互连

AI Engine内存映射AXI 4互连的主要任务是允许外部访问内部AI EngineTile资源,如内存和寄存器,以进行配置和调试。它的设计目的不是将大部分数据移动到AI Engine阵列或从AI Engine阵列进行数据移动。内存映射的AXI 4接口都通过AI Engine阵列接口行互连。这使得阵列接口Tile中的存储器映射的AXI 4互连能够将传入的存储器映射的信号水平地移动到正确的列,然后通过开关将它们垂直地转发到该列的底部AI EngineTile中的存储器映射的AXI 4互连。

    每个内存映射的AXI 4接口都是一个32位地址和32位数据。最大内存映射AXI 4带宽设计为1.5 GB/s。

    为了馈送存储器映射的AXI 4接口,NoC模块包含存储器映射的AXI 4桥,其接受来自NoC NSU接口的存储器映射的AXI 4传输,并且充当内部存储器映射的AXI 4接口开关的存储器映射的AXI 4主设备。

阵列接口AXI 4-流互连

AI EngineAXI 4-Stream交换机的主要任务是在AI Engine和可编程逻辑或NoC之间传送确定的吞吐量和高速电路或分组数据流。因此,它被设计为将大部分数据移动到AI Engine阵列或从AI Engine阵列移出。AI EngineTile底部行中的AXI 4-Stream开关直接与AI Engine阵列接口中的另一行AXI 4-Stream互连开关连接。

AI Engine到可编程逻辑接口

 AI Engine中的AXI 4-Stream交换机到PL模块可以使用AXI 4-Stream接口直接与可编程逻辑通信。从AI Engine到PL有六个流,从PL到每个AI Engine列有八个流。从带宽的角度来看,每个AXI 4Stream接口都可以支持以下功能。

    • 24 GB/s从每个AI Engine列到PL 

    • 32 GB/s从PL到每个AI Engine列

  在VC1902设备中,有50列AI EngineTile和AI Engine阵列接口Tile,但是,只有39个阵列接口Tile可用于PL接口。因此,PL接口的总带宽约为:

    • 1.0 TB/s从AI Engine到PL 

    • 1.3 TB/s从PL到AI Engine

    所有带宽计算均假定-1L速度等级器件的标称1 GHz AI Engine时钟为VCCINT = 0.70 V。PL接口可用的阵列接口片数量以及AI Engine到其他设备和不同速度等级的PL接口的总带宽在Versal AI Core系列数据表:DC和AC开关特性(DS 957)中指定。

    边界逻辑接口触发器位于AI Engine与PL接口之间。它们可以用来改善时间。通过将边界逻辑接口(BLI)约束应用于设计中的触发器,您可以在设计布局期间自动利用此功能。请参阅《通用自适应SoC系统集成和验证方法指南》(UG 1388)中的“AI Engine-PL时序接口技术"部分。

AI Engine到NoC接口

除了AXI 4-Stream接口功能之外,AI Engine到NoC接口Tile还包含连接到水平NoC(HNoC)的路径。从AI Engine来看,从AI Engine到NoC有四个流,从NoC到AI Engine有四个流。从带宽的角度来看,每个AI Engine到NoC接口Tile可以在HNoC和AXI 4-Stream交换机之间引导流量。

 提示:实际的总带宽可能受到设备中可用的水平和垂直信道的数量以及NoC的带宽限制的限制。

中断处理

 可以设置中断到处理器系统(PS)和平台管理控制器(PMC),由AI Engine阵列内的事件触发。本节介绍AI Engine阵列的中断类型。AI Engine阵列生成四个中断,这些中断可以从AI Engine阵列路由到PMC、应用处理单元(APU)和实时处理单元(RPU)。从AI Engine阵列生成中断的总体层次结构如下:

  •事件从任何AI EngineTile或AI Engine接口Tile触发。

  •每一列都有一级中断处理程序,可以捕获生成的触发器/事件并将其转发给二级中断处理程序。二级中断处理程序仅在NoC接口中可用。

  •第二级中断处理程序可以驱动AI Engine阵列接口中的四条中断线中的任何一条。

  •这四条中断线最终连接到AI Engine配置接口模块。下图是一个高级框图,显示了从AI Engine阵列到Versal设备中其他模块的NPI中断连接。该图未显示阵列接口Tile和AI EngineTile的实际布局/放置。

6.png

在上图中,四个中断是从一个NoC接口片生成的。它们通过PL接口Tile并到达配置接口Tile。然后,内部错误(如PLL锁定丢失)与四个传入中断进行OR运算,得到的四个中断直接连接到NPI接口上的NPI中断信号,NPI接口是一个32位宽的存储器映射AXI4总线。

    在器件级,四个NPI中断分配为4到7。有三组NPI寄存器(IMR0.IMR3、IER0.IER3和IDR 0.IDR 3)。每一对(IMR、IER和IDR)都可以用来配置四个NPI中断。IMR寄存器是只读的,IER和IDR寄存器是只写的。只能对与NPI中断4对应的寄存器进行编程。对于NPI中断5、6和7,三组寄存器无效,并且不能通过对NPI寄存器进行编程来屏蔽这三个中断。NPI寄存器的结构和地址在《通用自适应SoC AI Engine寄存器参考》(AM015)中进行了描述。

文章来源:威视锐科技