从零开始讲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在计算机硬件发展史上具有重要的地位,推动了设备互连技术的进步,并为现代系统的架构奠定了基础。

相关推荐
漫游嵌入式1 小时前
《PCI EXPRESS体系结构导读》---(1)基本概念
express·pcie·pci
浩子智控3 小时前
电子设备DevOps
fpga开发
cycf15 小时前
CRC校验
fpga开发
landyjzlai16 小时前
AMBA总线(15)关于AXI-stream(sg模式)
arm开发·fpga开发·amba
白狐_79817 小时前
Quartus Prime 新手完全使用指南
fpga开发
Aaron15881 天前
三种主流接收机架构(超外差、零中频、射频直采)对比及发展趋势浅析
c语言·人工智能·算法·fpga开发·架构·硬件架构·信号处理
博览鸿蒙1 天前
一颗数字系统是如何在 FPGA 上“跑起来”的?
fpga开发
雨洛lhw1 天前
FPGA JTAG接口设计全解析
fpga开发·jtag
minglie12 天前
iverilog 配合 Makefile 搭建 Verilog 仿真工程
fpga开发
芒果树技术2 天前
MangoTree案例分享:基于AtomRIO FPGA平台,客户实现自适应主动减振
测试工具·fpga开发·模块测试