✨1. TPH 基本介绍
TLP Processing Hints,直译过来是事务处理提示,英文简写为TPH。TPH最初由PCIe 2.1引入,是请求事务TLP头标中的一个可选配的特性,适用于存储器读、存储器写及原子操作事务。TPH携带有请求者对完成者目标存储空间数据的使用信息,通知完成者即将访问数据的特性,完成者可以根据TPH合理地安排数据缓存及管理数据,从而降低PCIe设备的访问时延、降低系统带宽压力、提高cache的利用率、降低能耗。
在发送带有TPH的TLP时,用到了TLP头标中的TH、PH及ST三个字段,其中TH及PH字段仅用于TPH请求事务,TH=1时PH有效。TH置一表示该TLP含有TPH信息,PH用以提供较粗粒度的Processing Hints控制能力,ST用以提供细粒度的控制能力。
✨2. 粗粒度控制:Processing Hints
在请求者给完成者发送存储器访问请求的之前,显然请求者能够知道接下来将如何使用这些访问请求中的数据,但完成者难以知晓。请求者通过TLP头标PH字段给RC或其他目的设备提供提示hints,提示主机或设备接下来将如何使用该TLP中的数据。hints包括以下6种:
- DWHR:Device对这段数据进行写操作后,很快Host会对这段数据进行读操作;
- HWDR:Host对这段数据进行写操作后,很快Device会对这段数据进行读操作;
- DWDW:Device对这段数据进行写操作后,很快Device会再次对这段数据进行写操作;
- DWDR:Device对这段数据进行写操作后,很快Device会对这段数据进行读操作;
- DRDW:Device对这段数据进行读操作后,很快Device会对这段数据进行写操作;
- DRDR:Device对这段数据进行读操作后,很快Device会再次对这段数据进行读操作;
其中,D*D* 归为一类,表示该TLP中的数据经常被Device使用;HWDR和DWHR归为一类,表示该TLP中的数据经常被Ho