DPI/SLI

本文详细介绍了CN68XX芯片中DPI(Direct Packet Interface)和SLI(System Link Interface)的工作原理。DPI用于处理数据流,包括QOS、GRP、TT、TAG等信息,与MAC接口交互,而SLI为不同组件提供互联。内容涉及DPI的指令总线、优先级仲裁机制、指令格式以及如何将DPI指令转换为包。此外,还讨论了包指令头在调度和解析过程中的作用,以及DPI指令输入ring的初始化配置。
摘要由CSDN通过智能技术生成
简单的说:
数据流 ---> [物理接口] ---> [MAC] ---> [DPI] ---> 加上QOS,GRP,TT,TAG等变组合成一条指令 --->[PIP/IPD] ---> 转换成packet

1\
CN68XX支持两个PCIe总线标准的MAC接口(网络接口?),DPI即直接内存存取包接口,为MAC接口提供直接内存存取服务,SLI为cores,memory,packet I/O提供互联接口

2\
来自外部用户输入的DPI指令
DPI指令可能来自一个PCIe用户或者其他外部设备,这为packet给CN68XX与或命令或者创建一个wqe节点提供了一种途径,一般来说,CN68xx是PCIe总线上的一个设备的情况下,指令会被提交给DPI。其他情况下提交指令给DPI的现象很少。

3、下面的介绍假设在CN68XX是PCIe总线上的一个设备并且指令由外部用户输入
DPI一共有32条指令总线,每一条DPI指令总线都有一个特定的始能寄存器SLI_PKT_INSTR_ENB,DPI输入通道可以被disable,也可被重新enable。
DPI实现了以下几种优先级仲裁机制:
【1】当SLI_PKT_INPUT_CONTROL[PKT_RR] = 0优先级顺序是ring 0>1>2>...>30>31
【2】当SLI_PKT_INPUT_CONTROL[PKT_RR] = 1每一个ring的优先级顺序都是相等的,轮寻访问ring
DPI在去处理下一个ring的时候会尽可能多的抓取当前ring的指令,抓多少是可以配置的,由SLI_PKT_INSTR_RD_SIZE这个寄存器配置
DPI的每一哥指令ring都有以下属性
【1】一个可配置的基地址SLI_PKTn_INSTR_BADDR[ADDR]
【2】一个输入ring连接的物理DPI MAC编号SLI_PKT_IN_PCIE_PORT
【3】一个可配置的ring size (SLI_PKTn_INSTR_FIFO_RSIZE[RSIZE])
【4】一个尾指针(SLI_PKTn_INSTR_BAOFF_DBELL[AOFF]这个寄存器只是给出了一个大致的尾指针,另一个寄存器 SLI_PKT_IN_DONEn_CNTS[CNT] 也可以用来制定尾指针指向哪里
DPI的每一个ring都链接到两个MAC中的一个(通过PCIe),DPI直接对MAC进行读操作,并且DPI的ring可以和物理MAC接口一一对应,这包括了DPI指令中的读指令,和读packet data的操作,每一个DPI 输入ring都会对应不同的物理MAC port,一个单独的DPI ring只使用一个物理MAC port。
每一个DPI ring都会对应一个PIP/IPD接口的pknd,PIP/IPD用这个pknd来决定输入的包走什么样的处理流程, SLI_PORT(0..31)_PKIND这个寄存器是ring和pknd的对应关系
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值