text: PCIExpress是目前PC芯片集及嵌入式处理器的普遍互连标准。尽管之前的PCI标准由PCIe所取代，但FPGA和I/O设备仍使用PCI。当前基于PCI的设计均采用未集成PCIe接口的组件，因此若要升级系统，需使用PCIe桥接器。例如，PCIe桥接器将用于采用I/O设备的嵌入式视频录音机，通过PCI连接至具有PCIe端口的嵌入式处理器。
  引入桥接器带来的性能挑战PCI总线上的设备主要依赖有关系统从主机处理器读取大量的数据。PCII/O设备通常控制系统中的数据移动，并将读写循环传入主机内存。例如，主机处理器可通过写入外围设备上的寄存器设置外围设备中的DMA，即可设置和配合数据移动，但为了专注于其他任务，处理器会将自身从数据移动中删除。然后，外围设备将读取或写入数据以服务DMA。在其他时间，处理器可读取状态信息并写入寄存器以进行控制。通常，此通信量不会涉及高带宽，且不会对系统整体性能带来重大影响。
  对于安全数字视频录像机(DVR)等嵌入式处理系统，将捕获并压缩视频数据，通过磁盘控制器写入磁盘存储器，且磁盘控制器通过PCI总线读取主机内存中的数据即可实现上述结果。
  从PCI外围设备写入桥接器通常传送至内部写入缓冲器，以解决桥接器带来的内在性能影响。然而，PCIe桥产品需要重试外围设备，直至它从主机内存中获得所需的数据。这通常意味着试图读取许多小型PCIe数据包，从而增加时延。通过使用分割式传输方式，PCI-X协议可避免此问题，但传统的PCI协议并不具备此特点。此外，一些PCI设备在收到一条或两条数据缓冲行后就自动释放总线，这将成为PCI读取的性能挑战。
  例如，在使用嵌入式DVR的普通情况下(图1)，系统需要将持续的压缩视频数据流写入磁盘，以便存储及随后检索或分析。在此系统中，一个或多个磁盘控制器(SATA控制器)将读取系统主内存中的视频数据，以存储在相关磁盘阵列。上述系统还可以令以太网控制器等其他外部设备共享PCI总线。
  如上所述，引入PCI桥接器可能导致性能下降。此读取性能如下所示(参考图2)：
  TA设备"A"开始从主内存读取。桥接器从内存中预取数据。然后，SATA设备"A"读取部分预取数据。
  TA设备"B"开始从主内存读取。桥接器从内存中预取数据。然后，SATA设备"B"读取部分预取数据。
  TA设备后续读取将要求桥接器丢弃缓冲的数据，并从主内存中重取数据。
  在此示例中，第3步会在读取事务之间带来重大时延，从而极大影响读取性能。对读取性能的实际影响，可能指实现的性能比直接使用PCI总线最初实现的性能下降许多倍。由于总线断开及多次重试和重取数据后，将持续读取数据，导致总线效率受到重大影响。此过程如图3所示。
  查看说明实际数据读取点的PCI_TRDYn(PCI目标准备)轨迹可看到，首次读取(第3步)与下次读取(第6步)之间存在较大间隔。这意味着视频数据写入磁盘的最大速度大幅降低，从而限制了系统的性能。在此情况下，最大程度地提高写入视频数据的速度对于最终产品至关重要--可存储监测最高质量视频所需的诸多信道。
  与最初情况相比，它对性能的改变比较大，以一个采用Tsi381桥接器的嵌入式DVR系统为例(参考图4)。在此情况下，启用STC后，后续读取不会延迟，原因是有关读取仍保留在Tsi381的高速缓冲存储器中，且桥接器在首次读取后无需从内存中重新读取数据，可确保有效地使用总线。
  启用STC前后PCI总线的计时见图5，它可清楚地反映出性能的差异。在此示例中，系统执行每台设备32位的读取，两台设备无STC时执行2次读取的相同期间，在使用STC后可进行7次读取。可见，在使用STC的情况下，系统的整体吞吐性能可提高三倍以上。对于通过一台设备执行读取的系统而言，性能将获得更大的提高。
  根据系统设计及设备的状况，设计人员可调整预取长度及短期高速缓存丢弃计时器，以提高整体性能或关键性能。
  使用PCIe桥接器将有助于解决由PCI转向PCIe带来的设计难题。PCI外围设备开始的读取将产生额外的延时，这通常对系统的整体性能带来重大影响。Tsi381及其他TundraPCIe桥接器的功能集允许开发人员调谐桥接器，从而优化系统性能。利用短期高速缓存，这些桥接器可轻松消除PCI读取相关的性能瓶颈。