本文来自自学过程中所记的笔记,可能有不少错漏与胡言乱语,仅供参考,建议主要以ARM官方文件进行参考。原参考文档官网可下载,为了方便各位,我也上传了,需要的自取;
链接:https://pan.baidu.com/s/1voHyFmkpGqABcKH8OSF_Ng
提取码:izix
DTI协议信息:
信息组:DTI协议中的信息可以按照功能分组:
**Connection and disconnection:**第一条消息向下游发送,在DTI-TBU与DTI-ATS中均用于建立或断开连接;
**Translation request:**第一条消息向下游发送,在DTI-TBU中检索非ATS翻译,检查权限,进行二阶翻译,在必要时重译ATS翻译;在DTI-ATS中检索ATS翻译;
**Invalidation and synchronization:**第一条消息向上游发送,在DTI-TBU与DTI-ATS中均用于使缓存的翻译信息作废;
**Page request:**第一条消息向下游发送,仅用于DTI-ATS中请求可适用与ATS PRI (ATS Page Request Interface)的Page;
**Register access:**第一条消息向上游发送,仅用于DTI-TBU中向本地IMPLEMENTATION DEFINED寄存器提供访问;
信息列表:DTI协议消息长度为固定整数个Byte,传输媒介必须提供为每条信息提供正确的传输宽度;一些信息格式相关内容如下:
最低有效位用于给信息类型编码;
有些信息内含有协议field,对于这些信息,可以结合信息类型编码与协议Field来对信息进行定义;
信息类型编码单独为上游或下游提供定义的信号;
DTI-TBU协议下游信息:
DTI-TBU协议上游信息:
DTI-ATS协议下游信息:
DTI-ATS协议上游信息:
IMPLEMENTATION DEFINED 信息:
[3:0]这几位为0xE或0xF的信息可以被用于IMPLEMENTATION DEFINED信息;
这些信息只有在设计时支持其传输的信道处在允许传输的状态下才被允许传输;
数据流控制:
DTI协议使用tokens(令牌)进行数据流控制,其主要功能是管理单位时间内能够传输的不同信息的数量。以下为常见类型的令牌:
Translation Tokens(传输令牌): 用于传输需求,以限制未完成的传输需求的数量;
Invalidation Tokens(失效令牌):用于失效与同步信息,以限制未完成的失效信息数量;
需求信息发出令牌,响应信息返回令牌,如果响应信息需要多个周期接收,则令牌只在最后一个周期发送;
ID被用于追踪一些未完成的消息,一个ID在带有该ID的信息收到已接受反馈前不能被再次使用,接受反馈持续多个周期时只在最后一个周期释放ID;
保留字段(Reserved Fields): 该字段只有两种状态:SBZ(Should Be Zero) 或 SBO(Should Be One); 该字段应当被接收端忽视,当为SBZ时,则发送端的保留字段全部置为0,当为SBO时,则发送端的保留字段全部置为1;
IMPLEMENTATION DEFINED(实现定义)字段: 一些信息字节被定义为实现定义字段,其可以被用于实现任何已定义的功能。对于不需要他们的组件,该字段被视为保留字段;
DTI连接管理:
通道状态:DTI的通道有四种可能出现的状态:
DISCONNECTED: 下游设备(TBU/PCIe RP)未上电,此时时上游设备必须维持在当下游设备上电后,可以随时接受恢复通道请求的状态;
REQ_CONNECT:下游设备发出链接请求,上游设备必须进行握手,并给出建立/保持的反馈;
CONNECTED:通道畅通;
REQ_DISCONNECT:下游设备发出中断链接请求,上游设备进行允许中断的反馈;
握手:整个握手与传输流程如下图所示:
链接成功
链接被拒绝
链接被拒一般是系统原因,在系统状态为恢复正常之前连接请求可能会再次被拒;
REQ_DISCONNET状态下的系统行为:
- 所有未完成的无效或同步信息都不会进行反馈。TBU或PCIe RP会在进入DISCONNECTED状态后消除缓存上的所有内容,无效请求会被默认为已完成;
- 未完成的寄存器响应,DTI_TBU_REG_RDATA 或 DTI_TBU_REG_WACK不会被返回;
- 未完成的DTI_ATS_PAGE_RESPACK信息不会被返回;
- 在此阶段,TBU或PCIe RP必须继续接受TCU的命令,这些需求可以被忽略,也无需给出反馈;
初始化与断开连接:
TBU进入断开连接状态后会使所有缓存信息失效,再次连接后一切信息与设置都需要重新配置;DTI通道在任何PCIe_ATS被启用时都不能中断,DTI-ATS没有缓存信息;
向TCU链接多个TBU或PCIe RP:一条DTI通路是一条点对点的通路,包括一个TBU/PCIe RP与一个TCU,如果一个TCU链接多个TBU/PCIe RP,则每个链接都拥有一条单独的DTI通路。如:
如果TCU需要向多个TBU/PCIe RP发送同样的信息,,则他必须发送多条信息;
每条通路都有其独特的控制令牌;
不同通路的ID是单独使用的,即不同通路可以有相同的未完成ID存在;
一条DTI通路只能支持一个状态,不能同时支持DTI-ATS与DTI-TBU;