从零开始讲PCIe(5)——66MHZ的PCI总线与其限制

一、前言

在之前的内容中,我们已经基本了解了PCI总线的设计思路和传输机制,之前的内容我们都是基于33MHZ版本的PCI总线进行学习的,为了支持更到的带宽,PCI协议还有一种66MHZ的版本。

二、高带宽PCI(66MHZ)

为了支持更高的带宽,PCI规范进行了更新,支持了更宽 (64位)和更快(66 MHz)的版本,从而实现了533 MB/s的传输速率。图1-14展示了一个66 MHz、64位PCI系统的示例。

在更新的PCI版本中,64位宽度使得数据传输量在每个时钟周期内增加了一倍,而66 MHz的时钟频率也进一步提升了数据传输速率。这些改进使得PCI总线能够更好地支持高带宽需求的设备,如高性能网络接口卡、显卡和存储控制器。

具体来说,在这种系统中,每个时钟周期能够传输64位(8字节)的数据,并且每秒钟的时钟频率为66百万次,因此最大带宽计算如下:带宽 = 64位(8字节) × 66 MHz = 528 MB/s(理想状态下),近似为533 MB/s。这种带宽的提升对当时的硬件系统来说是重要的进步,能够更好地应对不断增长的外设带宽需求。

三、66MHZ PCI的限制

尽管66 MHz的PCI总线相较于33 MHz的总线将吞吐量翻了一倍,但这一设计有一个显著的缺陷:依然使用相同的反射波切换模型 ,但可用的时间预算只有原来的一半。这意味着总线的负载必须大幅减少。结果是每条总线只能支持一个扩展卡。如果想增加更多设备,就必须增加更多的PCI桥接器和总线,这不仅增加了成本,还增加了电路板的空间需求。此外,64位PCI总线增加了引脚数量,导致系统成本上升,同时降低了系统的可靠性。这些因素共同作用,导致64位或66 MHz版本的PCI总线在市场上的普及受限。

简而言之,虽然66 MHz、64位PCI提高了数据传输速率,但由于负载限制、系统复杂性和成本的增加,它在实际应用中并没有得到广泛推广。这也是为什么多数系统选择继续使用较低频率和32位PCI总线的原因。

在66 MHz以上的时钟频率下,传统的并行PCI总线难以有效工作。这是由于总线上存在的负载以及信号的传输延迟导致的。在66 MHz时,时钟周期为15纳秒,其中3纳秒分配给接收端用于建立时间(setup time)。对于PCI总线的"non-registered信号模型来说,减少接收端的信号建立时间到低于3纳秒是不现实的。其余12纳秒的时间预算则用于发射端的输出延迟和信号传输时间。

要想提高PCI总线的频率,意味着必须缩短时钟周期。然而,如果时钟频率超过66 MHz,传输的信号在接收端将无法及时接收并采样,从而导致数据错误。

为了解决这一问题,PCI-X总线 引入了一种改进的方式,即在使用输入信号之前,将所有输入信号先通过触发器(Flip-Flop)进行寄存处理。通过这种方法,信号的建立时间减少到1纳秒以下。建立时间的减少允许PCI-X总线以更高的频率运行,例如100 MHz甚至133 MHz。

四、PCI总线小结

PCI(Peripheral Component Interconnect)是上世纪90年代广泛应用的并行总线标准,旨在为计算机系统中的外设设备提供高效的通信和数据传输接口。它支持显卡、声卡、网卡等多种设备,并通过即插即用(Plug and Play)功能简化设备的安装和配置,使操作系统能够自动识别并分配资源。PCI还允许每个设备包含多个独立的功能模块(function),增强了灵活性。

PCI总线采用并行总线架构,多个设备共享同一总线进行通信,通过仲裁器控制设备的总线访问,确保设备之间的有序通信。它支持三种地址空间:内存地址空间用于设备的内存映射,允许CPU通过标准内存读写操作与设备交互;I/O地址空间专门用于外围设备的输入输出操作,CPU通过IN和OUT指令访问;配置地址空间则用于设备的识别和资源分配,每个PCI设备有256字节的配置空间,访问方式通过特定的I/O端口实现。此外,PCI支持多功能设备,每个设备最多可以有8个功能(function),如网络适配器的有线和无线功能。

PCI具有多个优势:即插即用功能(Plug and Play)使操作系统能够自动识别设备并分配资源,无需用户干预;设备兼容性强,支持显卡、声卡、网卡等多种设备;其中断管理机制通过INTA#等中断信号与系统通信,实现高效的中断处理。

为提高性能,PCI通过增加总线位宽(从32位到64位)和提高时钟频率(从33 MHz到66 MHz)来提升带宽,达到每秒533 MB的传输速度。然而,PCI的并行架构在更高频率下受到电气负载和信号延迟的限制,特别是在66 MHz时,其扩展能力和信号完整性遇到了瓶颈。为了支持更多设备,系统通常需要增加PCI桥接器和更多总线,这不仅提高了成本,还占用了更多板载空间。此外,PCI的并行设计导致带宽共享问题,多个设备同时工作时总线带宽被分摊,影响了整体性能。

为了在不牺牲兼容性的情况下进一步提高带宽和速度,PCI-X 被引入作为PCI的增强版本。PCI-X保持了与传统PCI的硬件和软件兼容性,但将频率提升至100 MHz甚至133 MHz,最大带宽达到1.06 GB/s至4.26 GB/s。PCI-X通过使用寄存器输入信号减少了建立时间,解决了PCI在高频率下的时序问题。然而,PCI-X仍然基于并行架构,存在引脚数量增加和扩展性限制等问题,最终未能广泛普及。随着技术的进步,**PCI Express(PCIe)**成为PCI和PCI-X的继任者。PCIe采用串行点对点连接,彻底解决了并行总线带宽共享问题,提供了更高的传输速率、更灵活的扩展能力以及更低的功耗。尽管如此,PCI和PCI-X在计算机硬件发展史上具有重要的地位,推动了设备互连技术的进步,并为现代系统的架构奠定了基础。

相关推荐
fei_sun9 小时前
【Verilog】第一章作业
fpga开发·verilog
深圳市雷龙发展有限公司longsto10 小时前
基于FPGA(现场可编程门阵列)的SD NAND图片显示系统是一个复杂的项目,它涉及硬件设计、FPGA编程、SD卡接口、NAND闪存控制以及图像显示等多个方面
fpga开发
9527华安14 小时前
FPGA实现PCIE3.0视频采集转10G万兆UDP网络输出,基于XDMA+GTH架构,提供工程源码和技术支持
网络·fpga开发·udp·音视频·xdma·pcie3.0·万兆网
able陈15 小时前
为什么verilog中递归函数需要定义为automatic?
fpga开发
fei_sun15 小时前
【Verilog】第二章作业
fpga开发·verilog
碎碎思16 小时前
如何使用 Vivado 从源码构建 Infinite-ISP FPGA 项目
fpga开发·接口隔离原则
江山如画,佳人北望18 小时前
fpga-状态机的设计及应用
fpga开发
晓晓暮雨潇潇19 小时前
Xilinx IP核(3)XADC IP核
fpga开发·vivado·xadc·ip核
CWNULT20 小时前
AMD(Xilinx) FPGA配置Flash大小选择
fpga开发
碎碎思1 天前
很能体现FPGA硬件思维的一道面试题
fpga开发