无桥无交换的PCIe扩展 【发明领域】
本发明涉及通过包括PCI Express(通常称为PCIe)的串行链路进行的高速总线数据通信的扩展。
定义
外设卡是指插入数据总线的卡。其示例包括但不限于:SCSI控制器、视频卡、声卡、USB卡等等。
“扩展单元”是指在其正常物理环境外对总线进行延伸或扩展的任意设备。扩展单元旨在正常使用外设卡。
“扩展卡”是指如下卡或者短线缆:该卡或者短线缆不在总线的环境外对总线进行扩展,但是在其环境内允许总线更容易被访问以进行调试。扩展卡并不是为了正常的使用。Catalyst(www.getcatalyst.com)生产的一些扩展卡属于这一类。
桥接设备(芯片)是指为从一个总线到另一个总线的数据信号提供接口的芯片。桥接芯片的示例包括但不限于:41210(intel),PEX8111(PLX),XIO2000(TI)。
交换设备(芯片)是一种逻辑桥设备。它是PCI桥的PCIe等同物。其示例是uPD720401(NEC)、PEX8508(PLX)、XIO3130(TI)。
【发明背景】
图1在10处示出了如下通常的构思:通过串行链路来扩展或延伸主机并行数据总线,以使得PCI/PCIe总线(PCIe是PCI总线的衍生)在扩展系统上可用。采用这种系统,无论任何主机扩展槽是否插有外设卡,在设备管理器(或类似的程序)中,主机的BIOS/OS将看到至少一个桥或交换设备12。如果存在外设卡,它们也会显露出来。在正常情况下,无论单元是在主机系统中、挂在扩展卡上,还是在扩展单元中,外设卡将(应该)对于主机系统来说总是可见的。一种这样的技术是Scottsdale,AZ的Mobility Electronics公司所销售的Split BridgeTM扩展技术,其内容通过参考被结合在本文中。
传统的扩展桥或交换设备12使用如时钟恢复或外部时钟生成和调整的技术,以保证维持正确的时钟数据协议。桥/交换设备12还处理例如重启、唤醒之类的事情,并处理用于保证正确的外设卡功能的其他边带(side band)信号。
【发明内容】
本发明作为一种设备、系统或方法均具有技术优势,其适于在不使用桥接或交换设备的情况下,通过与具有高速数据总线(如PCIe总线)的扩展单元之间的串行链路,来扩展高速数据总线,例如PCI Express(PCIe)总线。不使用桥接或交换设备的一个主要的优点是扩展接口对于BIOS、处理器、CPU、OS以及在主板上的任何其他组件,无论是硬件、固件还是软件,都是完全透明的。本发明并不需要额外的协议例如TCP/IP、串行ATA,千兆比特以太网等。也没有隐含的由桥或交换设备导致的硬件或设备驱动器的等待时间。
【附图说明】
图1描述了一个传统的并行数据总线的框图,其使用现有技术的桥接或交换设备通过串行线缆扩展到扩展系统;
图2描述了本发明的一个实施例,其提供从主机串行数据总线到扩展系统的串行扩展,而无需桥接或交换设备;
图3描述了数据和时钟缓存,其适于缓存从串行链路的一端传送到另一端的信号;
图4描述了一个接口电路,其被配置成处理边带信号;以及
图5描述了本发明中主机扩展槽电力和处理后的边带信号的波形图。
【具体实施方式】
图2描述了本发明的一个实施例,如附图标记20所示,其包括具有主机数据总线24的主机22,和使用非常透明的方法通过串行数据缆线32将主机总线24扩展到扩展系统30的扩展系统数据,数据总线28。接口26包括数据和时钟缓存,其调节数据和时钟信号,如可从Pericom、Maxim、National semiconductor以及所有控制WAKE#和PERST#的边带接口电路获得的那些。
根据本发明,这些缓存22将PCIe时钟和/或数据信号增强到超过PCIExpress规范所要求的电平,以补偿信号的线缆损失。使用这种接口和方法,BIOS/OS不会看到扩展系统中的任何设备,除非扩展槽插有插入(add in)卡。这是因为,缓存22和信号不相互影响,除非将其调整到补偿随后的缆线损失的电平。在本发明中,与桥或交换设备不同,被传输和接收的数据不被改变或延迟或包装在次级协议中,例如TCP/IP中。该缓存22可以是如附图3所示地Pericom半导体公司生产的PI2EQX4驱动器。
有利的是,本发明在主机和扩展部分中的一个或者在其两者的接口26中,提供了边带信号处理,这种边带信号处理也会处理边带信号,例如PERST#(重启)和WAKE#(系统唤醒),等等,该边带信号以如下方式被处理:在主机系统关闭的时候不干扰外设卡22的上电序列,或者也不会附加于其上。
参见图4,示出了信号处理模块40的电气示意图,其被集成在接口26中,并处理边带信号,使得该信号在扩展接口处的电力稳定后到达扩展接口。在一个实施例中,上电重启监控电路42在传送边带信号(如PERST#或WAKE#)之前,确保电源VDD稳定满足PCIe规范的一段有限时间。其他信号,例如PRSNT#(外设卡存在)按照如下方式被处理:确保主机系统知晓它具有多少个可用的到扩展系统的通道(连接)。这有助于无论外设卡有多少通道可用都紧接在上电之后进行链路训练(link training)。
基本上,对于膝上型电脑来说可能发生的是膝上型电脑中PCIe插槽的电力会出现如附图5所示的上升,(不要和主电力混淆,而是在Express插槽中的+3.3V和+1.5V VDD电力),插槽电力在稳定之前可能会忽高忽低或出现假信号(glitch),如‘A’处所示。这种假信号为边带信号,例如PERST#,的发起带来问题,因为这种假信号是违反PCIe规范的。即使扩展系统中的插入卡在这一点完成重启(come out of reset)的话,该插入卡通常也不会正常工作,因为(给主机卡的)系统电力在PERST#被去断言(deassert)之前是不稳定的,如点‘D’处所示。本发明的本实施例集成了小型重启监控芯片42,其确保电压VDD在通过边带信号(例如系统PERST#)之前的有限确定时间量内是很好的,并且这段时间是符合PCIe规范的。这段时间如‘B’处所示。插入卡在时间‘C’内看到PERST#,该时间‘C’符合PCIe规范,确保电压的峰值不会锁住或锁存(fowl)该系统。
边带信号WAKE#的处理简单得多,在常规的方法方它直接通过。本发明让WAKE#浮动,主机系统将这条线拉高。因为其在低电平时是活动的,所以永远不会被断言。这看起来是很奇怪的,但是当系统上电时,该条线上的峰值和噪声会导致不规律的行为。更进一步,在使用允许PCIe E卡在桌上电脑的主机中使用的适配卡时,当插入这些卡时台式PC会(从断电状态)启动。在许多情况下,这归结于在插入卡被插入时存在WAKE#信号,在其上电序列之后在能够拉WAKE#之前,插入卡被检测到。
本发明是卓越的并且是独一无二的,因为它并不需要桥(或交换设备)、额外的驱动器以及任何要为这种高速串行扩展系统分配的资源。与此相对照的是,任何图1的情况中所需的外设卡驱动器/资源、高速缓存或其他桥/交换设备都将降低性能,这是因为在通过桥或交换设备分发分组的过程中总是会存在一定的等待时间。本发明对于单个插槽扩展系统来说比使用桥或交换设备的类似系统(单个插槽)更快速。
本发明不同于扩展卡的地方在于,本发明提供了在正常甚至更好的条件下使用外设卡的能力,而一般的扩展卡通常需要除去主机系统盖并且需要一个非常规的方法来保证外设卡处于适当的位置。
虽然本发明通过一种具体的较佳的实施例来描述,但是对本领域的技术人员来说,通过阅读本发明而对其进行的相关变形和修改都是显而易见的。因此,本发明所附加的权利要求应该在现有技术的基础上被解释得尽可能宽泛以囊括所有的变形和修改。