当前位置: 首页 > news >正文

PCIe控制器介绍(二)

PCIe EP核心功能图如下:

上图从左往后依次是:应用层、事务层、链路层和物理层。CXPL及其右边的逻辑属于大部分事务层、链路层和物理层;也就是说,上图CXPL左边基本上应用层。

1. 接收通路

CXPL模块通过RX PIPE从物理层PHY接收到TLP数据包,并将TLP数据包提交给RADM模块。RADM模块存在两类接口:TRGT0接口、TRGT1/RBYP接口。

TRGT0接口是用来专门访问CDM寄存器,或者通过ELBI访问应用层寄存器。

RADM模块可配置外部或内部RAM用于接收队列(外部RAM设计复杂度高,但单位面积上的存储容量大;内部RAM设计复杂度底,但单位面积上的存储容量小)。

RADM在逻辑上实现了三个FIFO队列,分别是CPL FIFO、P FIFO和NP FIFO。CPL FIFO是用于接收TLP完成包;P FIFO是用于接收TLP非确认请求包,例如非确认写请求;NP FIFO是用于接收TLP确认请求包,例如读请求或确认写请求。

逻辑接收队列的三种模式:存储转发S/F、快通C/T、旁路B/P。
S/FC/TB/P
TLP包全部存入缓冲TLP包的某些字段存入缓冲无缓冲
TLP包被处理完成后再提交给应用层TLP包立即提交给应用层
应用层可以停止RADM提交TLP包应用层*不*可以停止RADM提交TLP包
RADM管理信令RADM*不*管理信令
保序不保序
RADM检查错误后,将正确TLP进行提交RADM不检查错误,直接将TLP进行提交

只有FIFO队列的第一个TLP包处理模式是快通C/T。这句话的意思是,即使FIFO队列设置为快通模式,如果FIFO队列中存在两个或两个以上的TLP包,除了第一个TLP包之外的所有TLP包都是按照存储转发S/F模式来处理的。

无论是信号trgl_radm_halt有效还是trgt1_radme_pkt_halt[2:0]信号有效,都将阻止TLP包从FIFO队列进入输出管道(Output Pipe)。直接采用信号trgl_radm_halt可能发生死锁:当NP TLP包进入输出管道,应用层接收到NP TLP包时,如果将信号trgl_radm_halt设置有效,就可能将后续P TLP包阻塞。

为了避免这种死锁情况发生,需要另外设计一个NP TLP跟踪器逻辑,该逻辑用信号trgt1_radme_pkt_halt [2:0] 信号(0:P FIFO、1:NP FIFO、2:CPL FIFO)提前通知RADM“应用层不能接收指定类型的TLP包”,RADM就会阻塞对应类型的FIFO队列。

ELBI接口(这个接口可以不使用,而是直接使用AXI-MASTER访问应用层寄存器)

LBC控制器通过ELBI接口可以访问应用层寄存器,我猜,LBC还会针对寄存器的访问对应生成一个TLP完成包。

2. 发送通路

应用层通过XALI0/1/2向PCIe总线发送TLP包,包括NP/P TLP请求包或TLP完成包。三个接口是相同的逻辑,建议:XALI0用于P TLP请求包的发送;XALI1用于NP TLP请求包的发送;XALI2用于TLP完成包发送。

另外,应用层逻辑可以通过MSI接口或MSI-X接口向PCIe总线发送TLP中断消息包。手册中的图和文字描述有冲突,我的理解是:应用层的中断逻辑如果想想PCIe RC发送MSI或MSI-X中断,就是通过MSI接口或MSI-X接口通知MSG_GEN逻辑,MSG_GEN生成TLP中断消息包提交给XADM,最终通过TX PIPE发送到PCIe总线上。

相关文章:

  • RDD实现单词计数
  • TDengine 在新能源行业应用
  • 华为网路设备学习-21 路由过滤(filter-policy)
  • C++ STL入门:set 集合容器
  • TDEngine 与 Grafana
  • Unicode字符集字符流
  • QT:获取软件界面窗口的尺寸大小2025.5.8
  • Java—— 集合 Collection
  • [GESP202409 六级] 小杨和整数拆分 Java
  • ​​​​​​​MySQL数据库故障排查指南
  • 382_C++_在用户会话结束时,检查是否有其他会话仍然来自同一个客户端 IP 地址,没有连接状态设置为断开,否则为连接
  • 【并发编程】MySQL锁及单机锁实现
  • [数据库之十四] 数据库索引之位图索引
  • Mac 平台获取地区标识符号
  • 2025最新免费视频号下载工具!支持Win/Mac,一键解析原画质+封面
  • 【NextPilot日志移植】整体功能概要
  • SpringBoot3 + Druid + DynamicDataSource + PgSQL 连接池优化方案
  • spring中RequestContextHolder
  • 【WEB3】区块链、隐私计算、AI和Web3.0——隐私计算(2)
  • AI赋能高频PCB信号完整性优化
  • 七方面118项任务,2025年知识产权强国建设推进计划印发
  • 大风暴雨致湖南岳阳县6户房屋倒塌、100多户受损
  • 马上评|孩子亲近自然只能靠公园露营了吗
  • 金融监管总局:力争实现全国普惠型小微企业贷款增速不低于各项贷款增速
  • 哥伦比亚总统称将在访华期间签署“一带一路”倡议意向书,外交部回应
  • 农行原首席专家兼浙江省分行原行长冯建龙主动投案,正接受审查调查