用于主机子卡接口的后向兼容并行ddr总线的制作方法

文档序号:6496094阅读:306来源:国知局
专利名称:用于主机子卡接口的后向兼容并行ddr总线的制作方法
背景技术
新产品和现有产品之间的不兼容性是包括联网和信号交换在内的许多技术领域中的主要问题。通常,开发出来的新产品具有增大的数据速率,而客户已经在以较低数据速率工作的遗留产品上投入了很多。
例如,许多路由平台有用于WAN(广域网)接口卡(WIC)的插槽,这种接口卡提供路由平台和广域网之间的接口。
遗留WIC是几年前构思出来的,并且最初针对的是最大比特率为几Mbps的PHY设备。此后,因特网和宽带可用性的爆炸性增长极大地增大了思科路由器接口所需的速度和复杂性。需要扩展遗留WIC功能以使现有的路由平台能够继续满足目前的以及未来的接口卡需求。

发明内容
在本发明的第一实施例中,遗留主机子卡(host-daughtercard)接口的管脚被占用以定义新的高速接口中的高速并行总线,这种新的高速接口与遗留接口是后向兼容的。
在本发明的另一个实施例中,数据和控制帧经由高速并行总线发送,其中断言控制线路以区分数据和控制帧。
在本发明的另一个实施例中,被占用的管脚充当遗留接口中的并行端口,并且主机利用读和写帧来执行高速接口中的遗留并行端口的功能。
在本发明的另一个实施例中,子卡利用中断控制帧来中断主机平台上的处理器。
在本发明的另一个实施例中,地址扩展位被保存在寄存器中以扩展在主机存储器的描述符中保存的缓冲器地址。
在本发明的另一个实施例中,子卡上的cookie指示子卡是支持遗留接口还是支持新的高速接口。主机读取cookie以确定支持哪一种接口。
本发明的其他特征和优点将从下面的详细描述和附图中变清楚。


图1是遗留主机/WIC接口的框图;图2是并行DDR总线的实施例的框图;图3是主机-WIC系统的实施例的高级别框图;图4是到HWIC连接器的HWIC接口的更详细示图;图5是用于区分遗留和HWIC接口的步骤的实施例的流程图;图6A和6B示出了8位HWIC读和读响应命令的格式;图7A和7B示出了8位HWIC写和写响应命令的格式;图8示出了中断控制帧的格式;图9示出了通用数据帧的格式;图10示出了HWIC到主机DMA读请求帧的格式;图11示出了主机到HWIC DMA读响应的格式;以及图12示出了HWIC到主机DMA写请求。
具体实施例方式
现将参考本发明的各个实施例。这些实施例的示例在附图中示出。尽管将结合这些实施例描述本发明,但是应当理解,这并不是要将本发明局限于任何实施例。相反地,希望覆盖可以包括在由所附权利要求限定的本发明的精神和范围内的备选方案、修改和等同物。在下面的描述中,给出了大量具体细节以提供对各个实施例的充分理解。但是,在没有这些具体细节中的某些或全部的情况下也可以实施本发明。在其他实例中,没有详细描述公知的过程操作以免不必要地喧宾夺主。
现将参考实现路由平台中的各个实施例来描述本发明。在下文中,术语路由平台用来广泛地包括诸如路由器、网桥、交换机、第2层或第3层交换机、网关等之类的任何组件,这些组件指用来实现网络内或网络间的连接性的组件。下面将以示例方式而不是限制方式来描述运行在由本专利申请的受让人设计和制造的路由平台上的实施例。然而,本领域技术人员应当理解,本发明在任何路由平台中都有广泛的应用。
现将描述本发明实施例的简要概况。以下为了描述的方便,当前的实施例将针对高速WAN接口卡(HWIC)。
遗留WIC/主机接口包括多个串行接口和一个并行接口。在当前描述的HWIC的实施例中,物理接口保持与遗留WIC/主机接口相同,从而遗留VWIC模块是管脚兼容的,并且可以被插入到针对新的HWIC接口构建的主机平台中。为了维持与现有VWIC(即,VIC(语音接口卡)和WIC)的兼容,该HWIC的实施例包含WIC/VIC串行外设接口(SPI),并且可以包含WIC/VIC串行接口的某些组合。对于这些串行接口,接口需求、管脚定义、接口操作和接口定时与遗留WIC/VIC的相同。
该兼容性还通过占用遗留WIC/主机接口的管脚以用于新的功能来实现。现将以示例方式而非限制方式来描述由本申请的受让人设计和制造的特定接口的管脚的详细占用。
遗留WIC/主机并行接口在图1中示出,该接口是通用8位并行总线,其充当并行端口以允许主机访问遗留WIC的板上寄存器以及其他网络设备。该遗留WIC/主机接口包括连接主机10和WIC 11的面向字节的总线,利用该总线主机必须能够访问位于奇数或偶数字节边界中的任何遗留WIC的地址。
在图1中示出的信号是RD_L读信号;WR_L写信号;CS_L启用信号;Not_RDY在数据还未准备好时断言(LOW)的未准备好信号;ADDR[7:0]地址总线;和DATA[7:0]数据总线。
除了以上的遗留接口,当前描述的实施例的HWIC还支持图2中所示的8位双数据速率(DDR)双向总线。该DDR总线是同步总线。该接口将用来1)为WAN数据提供主机平台和HWIC之间的高速数据路径;2)提供到模块的板上寄存器的访问;以及3)为HWIC板上设备提供DMA路径。
在该实施例中,TxClk和RxClk运行在25MHz。总线工作在双数据速率(DDR)模式,其中数据是在每个时钟边沿捕捉的。这提供了800Mbps的聚集带宽(每个方向上是400Mbps)。
在图2中示出的信号是TxD[7:0]来自主机的发送数据总线;TxCtrl来自主机的发送控制位;TxClk来自主机的发送时钟;RxD[7:0]去往主机的接收数据总线;RxCtrl去往主机的接收控制位;和RxClk去往主机的接收时钟。
在该实施例中,遗留主机/WIC并行接口的ADDR[7:0](地址管脚)已被占用为主机/HWIC接口的DDR总线中的TxD[7:0](来自主机的发送数据总线)。同样,遗留主机/WIC并行接口的DATA[7:0](数据总线)已被占用为主机/HWIC接口的DDR总线中的RxD[7:0](去往主机的接收数据总线)。此外,遗留接口的CS_L(启用信号)已被占用为主机/HWIC接口的TxCtrl管脚,并且遗留主机/WIC接口的RD_L管脚已被占用为主机/HWIC接口的RxCtrl管脚。另外,遗留主机/WIC并行接口的回波(echo)时钟管脚已被占用为主机/HWIC接口的DDR总线中的TxClk和RxClk管脚。
如上所述,新的HWUC接口与遗留WIC/主机接口是插入兼容的。然而,某些管脚的功能在新的实现方式中有所不同。
注意,在当前描述的实施例中,只有遗留主机/WIC并行接口的并行端口管脚和“回波时钟”(TxCE)管脚被调拨用于HWIC高速总线。这样做通过使SPI线路、SCC(串行通信控制器)、中断线路等等仍可用于其在遗留主机/WIC并行接口中的传统应用,从而提供了后向兼容性。
图3是主机-WIC系统的高级别框图。在图3中,主机10包括主机存储器14和耦合到主机终接逻辑块16的CPU 15,主机终接逻辑块16包括HWIC接口18。HWIC 12包括含有HWIC接口22的HWIC终接逻辑块20。主机HWIC接口22耦合到68管脚连接器24,如上所述,该连接器24是与遗留HWIC连接器管脚兼容的。
图4是耦合到HWIC连接器24的HWIC接口22的更详细视图。来自HWIC一侧的主要组件是连接到cookie 42的串行外设总线(SPI)40、耦合到HWIC终接逻辑16的HWIC DDR并行总线和用于向HWIC提供电力的电力管脚(未示出),在该实施例中,cookie 42是非易失性存储器,如EEPROM形式的非易失性RAM(NVRAM),其用于存储关于特定实现方式的信息,HWIC终接逻辑16是包括一组可配置寄存器44的FPGA。在该实施例中,FPGA包括用于配置HWIC的寄存器。
后向兼容性的一个重要成分是为主机提供用于确定遗留或更新后的部分是否已被插入到插槽中的系统。在当前描述的实施例中,是需要该功能的,这是因为尽管这些部分是管脚兼容的,但是某些管脚被用来执行完全不同的功能。现将描述用于实现卡识别和防止由于不兼容信号引起的问题的系统。
在该实施例中,HWIC可以被插入到较旧的主机平台中,其中旧主机平台仍旧可以经由SPI线路访问HWIC上的cookie,并且发现该插入的WIC不被支持。HWIC将会被要求不驱动Rx线路直到“被启用”,以便WIC并行端口总线管脚在HWIC被插入到较旧主机平台中的情况下不会引起总线争夺。另外,通过设计,遗留SCC在HWIC上仍旧可用,并且可用于诸如管理信道之类的用途。
现将参考图5的流程图详细描述用于对当前描述的实施例的HWIC加电并且促进与遗留主机/WIC并行接口的兼容性的过程。
1.给主机平台加电,主机CPU启动。或者,主机CPU发出硬复位到HWIC(响应于“清空接口”或者某些其他原因以从头开始)。
2.如果HWIC有用于其FPGA的板上配置ROM,则HWIC FPGA被自动(重)配置。然而,HWIC继续使遗留并行端口管脚处于三态Addr[7:0]、Data[7:0]、nCS、nRD、nWR、nRDY。
3.主机CPU使用SPI来读取HWIC上的NVRAM并识别该NVRAM。如果平台较旧或者不支持这类HWIC,则向用户显示消息,执行在这里停止。
4.如果HWIC没有用于其FPGA的板上配置ROM,则主机处理器利用8位并行端口或SPI下载配置位流到HWIC FPGA。同样,在下载后,HWIC FPGA使其所有的并行端口线路(在以上的(2)中列举)处于三态。
5.在HWIC的DDR模式被启用时,主机CPU使RD_L管脚处于三态以避免总线争夺。
6.主机CPU关闭该WIC接口的(遗留WIC)并行端口模式,并且启用主机终接逻辑中的HWIC DDR模式。
7.主机CPU通过写入到HWIC终接逻辑中的特殊寄存器来启用HWIC终接逻辑以驱动其10个HWIC到主机的DDR管脚(RxData[7:0]、RxClk和RxCtrl)。注意尽管HWIC到主机的DDR管脚是三态的,但是主机到HWIC的管脚(TxData[7:0]、TxClk和TxCtrl)仍然是活动的,从而命令可以从主机发送到HWIC。
8.主机核实HWIC FPGA已被正确下载以及可以通过经由DDR总线读取HWIC寄存器来操作DDR总线。
9.利用HWIC DDR总线继续HWIC配置。
现将更详细的描述DDR总线自身的操作。定义了两类帧控制帧和数据帧。数据帧被用来在去往和来自线路接口途中在主机和HWIC之间传递较大的数据分组。控制帧本质上较小,并且由于其执行管理功能,因此其优先于数据帧以减少等待时间。在两类帧之间还有另一个重要的差别控制帧格式是在硬件中生成和接收的,而数据帧格式是由主机处理器确定的(DMA帧是例外,这将在下面描述)。
控制位(RxCtrl、TxCtrl)区分数据帧和控制帧TxCtrl、RxCtrl=“0”指示流式数据正被传递,TxCtrl、RxCtrl=“1”指示控制信息正被传递。在本实施例中,Tx和Rx总线总在发送字节或者控制字节、或者数据字节、或者空闲字节。
控制帧现将描述当前描述的实施例中控制帧的功能和实现方式。控制帧有三个主要功能1)利用停止、继续开始和发送控制字符来执行流控制,2)用来执行遗留并行端口的功能的读/写命令,和3)中断帧。下面将详细描述每一种功能。
首先讨论控制帧格式,当且仅当相应控制位(TxCtrl或RxCtrl)为“1”时控制帧(或字节)才被发送。当且仅当相应控制位(TxCtrl或RxCtrl)为“0”时数据帧才被发送。因而,例如,在控制位被设为1的情况下发送的0xFF具有特定含义(数据帧的开始/结束);而在控制位被设为0的情况下发送0xFF被解释为数据。
现将详细描述用于实现流控制的控制帧字符。
0xFF数据帧的开始/结束或者数据帧之间的空闲(IDLE)。每个数据帧必须以0xFF控制字节开始,并且在接收到0xFF控制字节后才结束。允许标志共享(两个数据帧相隔一个0xFF标志)。
0xF0数据帧中间的空闲字节。该控制字符可以被插入到帧的中间以指示“空闲”状况。接收者对该字节不作任何处理,而仅仅是丢弃它。空闲字节的目的是为了使数据帧永远不会在主机/HWIC接口上欠载运行(underrun)。
0xFA中止(ABORT)。如果遇到该控制字符,则进行中的任何数据帧被立即终止,并且生成“中止”。在这之后,必须发送至少一个0xFF标志以识别下一个数据帧的开始。要求中止字符主要是为了以信号表示过早终止的通用数据帧。如果没有中止字符,则很难确定过早的终止,这是因为通用数据帧不包含长度字段。然而,中止字符也可以用来以信号表示DMA数据帧的过早终止。
0xF3延缓发送请求。该控制字符可由主机或HWIC发送,以请求另一方延缓发送数据帧。这是为了流控制目的,以防止就要变满的FIFO的溢出。一旦接收到“延缓发送”请求,发送方在停止发送所有的“数据帧”字节之前最多可以再发送32字节。
0xFC继续开始发送请求。该控制字符可由主机或HWIC发送,以在发送已被“延缓发送请求”控制字节延缓之后,请求另一方继续开始数据帧发送。
0xC0低水印(Water Mark)。在接收队列量变得小于或等于接收队列低水印寄存器值并且水印控制字节被以配置寄存器位7启用时,该控制字符从主机终接逻辑发送到HWIC。一旦发送了一个低水印控制字节,则不会再发送更多的低水印控制字节,直到首先发送高水印控制字节。
0xCF高水印。在接收队列量变得大于或等于接收队列高水印寄存器值并且水印控制字节被以配置寄存器位7启用时,该控制字符从主机终接逻辑发送到HWIC。一旦发送了一个高水印控制字节,则不会再发送更多的高水印控制字节,直到首先发送低水印控制字节。
在该实施例中,对低水印/高水印控制字节的HWIC响应是设计特定的。典型的使用可能是在HWIC上启用选择性分组丢弃(例如,如果接收缓冲器环就要变满,则丢弃数据分组,但是继续发送控制分组)或者作为告警以允许HWIC向线路另一侧上的发送者施加流控制。
以上的单字节控制字符可以仅被插入到数据帧中。0xF0空闲字节不能被插入到控制帧中,控制帧也不需要0xFF定界符(这是因为控制帧是预定长度的)。
现将更详细的描述读写控制命令。遗留WIC并行端口管脚已被调拨用于HWIC DDR数据总线。读/写控制帧替代了遗留并行端口的丧失的功能。读和写控制命令被主机用于经由DDR总线读取来自HWIC的寄存器数据。
为了维持遗留并行端口操作的低等待时间,这些控制帧会被立即插入到当前正在进行中的任何数据帧中(在字节边界上),并且HWIC终接逻辑会立即响应,再次优先于可能正在进行中的任何数据帧。
在图6A和6B中示出了用于传送8位数据的HWIC读和读响应命令的格式。读命令包括标识命令类型(例如8位、16位或32位读)的操作码、地址和CRC位,如图6A所示。读响应命令包括标识命令类型(例如8位、16位或32位读响应)的操作码、地址、读数据和CRC位。
HWIC读被从主机发送到HWIC以查询所指示的存储单元。HWIC将以“8位HWIC读响应”帧作出响应。一旦接收到“HWIC读”命令,HWIC终接逻辑就会读取“地址”处的HWIC存储单元,并将所得到的数据以如图6B所示的帧格式发送到主机。
在图7A和7B中示出了HWIC写和写响应命令的格式。如图7A所示,写命令包括标识命令类型(例如8位、16位或32位写)的操作码、地址、要写入的数据和CRC位。如图7B所示,写响应包括操作码。
HWIC写命令被从主机发送到HWIC以将发送的数据写入到期望的HWIC存储单元。在HWIC终接逻辑成功地完成写入之后,其会将该字节发回主机以告知完成。主机终接逻辑应当在其接收到来自HWIC的HWIC写响应控制字节之后才发起下一个HWIC读或写命令。
现将描述中断控制帧。在图8中示出了中断控制帧的格式。在检测到某些无掩蔽的中断事件后,HWIC中断帧被从HWIC发送到主机。16个“源”字段位对应于HWIC终接逻辑中断事件寄存器中的16位。在接收到HWIC中断帧后,将会对“源”字段和这些事件寄存器位执行逻辑或运算以创建新的事件寄存器位值。这又可能中断主机处理器(如果相应事件寄存器位无掩蔽的话)。
HWIC中断帧的使用通过消除主机轮询HWIC寄存器以确定HWIC上的中断源的必要,从而减少了中断等待时间。HWIC中断帧也可用来缓和在等待事件发生的同时使主机CPU轮询HWIC寄存器的任何尝试(这可能严重地降低性能)。
某些主机平台支持到主机的3级HWIC中断-错误中断、管理/配置中断和网络中断。为了支持支持这三种中断类型的主机,HWIC中断帧位(源字段的位15-0)被划分如下位15-12错误中断;位11-8管理/配置中断;位7-0网络中断。每个中断组被映射到单独的中断启用和中断事件寄存器。
数据帧有两类数据帧DMA数据帧和通用数据帧。它们有不同的用途。
下面是DMA和通用数据帧之间的某些相似性(1)按照定义,当且仅当相应控制位(TxCtrl或RxCtrl)为“0”时数据帧才被发送;(2)所有数据帧承载CRC8作为最后字节;(3)所有数据帧以封装头部开始。所有通用数据帧以0x11字节开始。所有DMA数据帧以0x61、0x62、0x66或0x67开始。
DMA和通用数据帧有不同的用途。一方面,DMA数据帧充当用于HWIC发起的DMA事务的媒介。DMA数据帧允许HWIC读和写主机存储器。DMA数据帧是完全在硬件中处理的,从而主机处理器没有必要介入这些事务。例如,简单寄存器访问对于读寄存器块是效率不高的,从而DMA帧被用于将块或寄存器数据经由DDR总线从HWIC传送到主机。HWIC要求在主机处理器存储器中建立的数据结构支持其通用数据帧发送和接收操作。所有这些数据结构都被主机处理器和主机终接逻辑经由DMA访问共享。
另一方面,通用数据帧是主机驱动软件和HWIC终接逻辑之间达成一致的实现方式特定的帧。例如,数据帧可以仅仅是IP分组或ATM信元,HWIC终接逻辑将这些分组或信元发送到HWIC上的PHY设备,或者从PHY设备接收这些分组或信元。或者可以有一种封装,例如具有8位端口号的头部,这8位端口号指示HWIC终接逻辑向/从哪一个PHY设备发送/接收分组。通用数据帧的用途是给予HWIC设计者以创建最适合所设计的特定HWIC的帧格式的灵活性。
DMA和通用数据帧的处理也不同。一方面,DMA数据帧起源于硬件中(如果是DMA请求则起源于HWIC上的硬件,如果是DMA响应则起源于主机上的硬件)。在接收后它们也完全是在硬件中处理的,使得主机CPU完全不介入事务(可能直到结束,在事务完成后,这时经由中断告知主机DMA事务已发生)。
另一方面,通用数据帧几乎完全是在主机一侧的软件中处理的。用于发送帧的任何特殊封装(初始0x11字节的外部)必须由主机处理器创建。并且类似的接收帧也完全由主机处理器处理(在去除了引导的0x11字节后)。
在HWIC一侧,在必要时(除非处理器驻留于HWIC上)所有通用数据帧都被在硬件中处理,硬件有关于HWIC特定通用数据帧格式的实际知识,主机CPU和HWIC硬件之间已经就该格式达成了一致。
这两类数据帧的灵活性是不同的。由于DMA数据帧是完全在硬件中处理的,因此其是不灵活的,并且对于不同HWIC必须保持完全相同的格式(如下所述)。
由于通用数据帧是由主机处理器创建和解析的,因此通用数据帧的格式是非常灵活的。希望主机CPU选择有利于每个特定HWIC的设计的通用数据帧格式。
通用数据帧现将参考图9描述通用数据帧的格式。
命令操作码在HWIC和主机之间传递的通用数据帧必须以0x11字节开始以指示通用数据帧封装。
数据“数据”字段可以是任何长度的任何数据(当然,假定其遵循由主机驱动软件和HWIC终接逻辑就其达成一致的实现方式特定的格式)。例如,这可以是在头部中封装有端口号或VC号的IP分组、ATM信元或PPP帧。
(可选的)Rx标志对于从HWIC传递到主机平台的通用数据帧,Rx标志字节的较高2位被写入到接收缓冲器描述符字1的位23-22。这是为了在在将整个帧传递到主机之前不存储整个帧的HWIC上能够方便地传递可能不易于用于插入到通用数据帧的开始的错误/状态信息,例如直到帧的结束到达PHY才完成的线路CRC计算。
可选的Rx标志字节也被放置在接收缓冲器中,并且在接收缓冲器描述符的数据长度字段中被计数,从而如果不需要Rx标志功能,则该字节可用于帧数据,只要主机处理器忽略接收缓冲器描述符(字1的位23-22)中的Rx标志即可。该字节不为发送方向提供任何特殊功能,并且应当用于有效帧数据。
CRC8对所有帧字节(除了CRC8字段自身)计算的8位CRC。另外,对任何插入的控制帧不计算CRC8。
DMA数据帧现将描述DMA帧。有三类DMA事务HWIC到主机DMA读请求,主机到HWIC DMA读响应和HWIC到主机DMA写请求。所有DMA事务都由主机发起。现将描述这些帧格式中的每一种。
在图10中示出了HWIC到主机DMA读请求帧的格式。
DMA读操作码该字节应当被设为0x61以指示HWIC正在请求来自主机的DMA读。
地址主机存储器空间中DMA操作的32位起始地址。
长度所请求的DMA读的字节的16位长度-主机应当读取多少存储器并将其发送回HWIC。
CRC8对所有帧字节(除了CRC8字段自身)计算的8位CRC。另外,对任何插入的控制帧不计算CRC8。
现将参考图11描述主机到HWIC DMA读响应帧的格式。该帧是响应于“HWIC到主机DMA读请求”帧而从主机发送到HWIC的。
DMA读响应操作码该字节应当被设为0x62以指示这是“主机到HWIC DMA读响应”帧。
地址主机存储器空间中DMA操作的32位起始地址。
长度“数据”字段中接下来的字节的16位数目。
头部CRC8对所有先前的帧字节(除了“头部CRC8”字段自身)计算的8位CRC。
数据来自主机存储器的数据字节。
帧CRC8对所有帧字节(除了CRC8字段自身)计算的8位CRC。另外,对任何插入的控制帧不计算CRC8。
现将参考图12描述HWIC到主机DMA写请求帧。
DMA写操作码该字节应当被设为0x66或0x67以指示HWIC正在请求到主机的DMA写。
0x66=在该DMA事务完成之后不中断主机0x67=在该DMA事务完成之后中断主机。
如果使用操作码0x67,则主机终接逻辑会在所有数据都已被接收并被发送到主机存储器或主机存储器控制器之后中断主机CPU。注意,这并不一定保证数据会在主机CPU被中断之前被完全写入到主机存储器中;然而,在这种情况下,操作码0x67的目的是使中断和存储器写完成之间的等待时间尽可能的小。这样通过使CPU必须中止并随后重试的情况(当其接收到0x67中断,但是随后发现需要的数据不在存储器中时)达到最少,从而增强了系统性能。
地址主机存储器空间中DMA操作的32位起始地址。注意主机终接逻辑会实现地址掩码功能以防止主机存储器的各个部分受到意外的/错误的HWIC写。
长度“数据”字段中接下来的字节的16位数目。
头部CRC8对所有先前的帧字节(除了“头部CRC8”字段自身)计算的8位CRC。
数据要写入到主机存储器的数据字节。
帧CRC8对所有帧字节(即,以“命令操作码开始”)(除了CRC8字段自身)计算的8位CRC。
缓冲器地址扩展如上所述,若干种主机存储器数据结构与HWIC相关联,并且所有这些数据结构都由主机处理器和主机终接逻辑经由DMA访问共享。
发送和接收缓冲器描述符是包括缓冲器的主机存储器中的32位缓冲器地址的主机数据结构,该缓冲器包含要利用通用数据帧传送的数据。
该实施例包括发送和接收缓冲器地址扩展寄存器,其允许通过附加的8位来扩展在描述符中保存的缓冲器地址。如果主机终接逻辑不支持多于32位的主机地址空间,则该寄存器保存零值。
如果支持地址扩展,则HWIC终接逻辑使用8位发送缓冲器扩展位来将缓冲器地址扩展到40位地址,如下所示{“发送缓冲器扩展(8位)”,“发送缓冲器地址(32位)”}={“扩展后的地址”(40位)}本发明的组件可以实现为存储在计算机可读介质上的由数字计算机执行的程序代码。计算机可读介质可以包括磁介质、光介质、对数字信息编码的电磁场等等。
已经参考优选实施例描述了本发明。对于本领域技术人员来说,备选和替换方案是清楚的。例如,所描述的各种帧的格式只是示例性的,本领域技术人员可以采用其他帧格式。另外,被占用以用于高速接口的遗留接口的管脚根据遗留接口的管脚功能而有所不同。因此,本发明只能由所附权利要求限定。
权利要求
1.一种用于主机子卡接口的双数据速率(DDR)总线系统,所述主机子卡接口与用来使遗留子卡与主机接口的遗留接口是管脚兼容的,所述遗留接口包括被所述主机用来向所述子卡上的寄存器写入值的并行端口,所述并行端口利用主机子卡连接器上的管脚子集,所述总线系统包括子卡终接逻辑块,其耦合到先前用于所述并行端口的管脚子集,并且将所述管脚子集重定义为接收管脚集合、接收控制管脚、接收时钟管脚、发送管脚集合、控制管脚和发送时钟管脚;主机终接逻辑块,其耦合到先前用于所述并行端口的管脚子集,并且将所述管脚子集重定义为接收管脚集合、接收控制管脚、接收时钟管脚、发送管脚集合、发送控制管脚和发送时钟管脚;其中所述子卡终接逻辑实现所述子卡上的存储器或寄存器和主机存储器之间的DMA传送,并且其中利用通用数据帧传送分组数据,利用控制帧断言控制,并且在所述控制管脚上断言控制信号以指示控制帧;其中所述主机终接逻辑利用读和写帧来实现所述遗留并行端口的功能以读和写数据到子卡寄存器,其中利用通用数据帧传送分组数据,利用DMA数据帧传送DMA数据,利用控制帧断言控制,并且在所述控制管脚上断言控制信号以指示控制帧。
2.如权利要求1所述的系统,其中所述子卡终接逻辑利用中断控制帧来中断所述主机上的处理器。
3.如权利要求1所述的系统,其中所述主机接口和子卡接口通过在数据帧的中间插入空闲控制帧以防止数据帧欠载运行来实现流控制。
4.如权利要求1所述的系统,其中主机存储器包括具有地址字段的缓冲器描述符,所述地址字段具有指定数目的字节;并且其中所述子卡包括扩展寄存器,该扩展寄存器保存与缓冲器描述符中保存的地址相连接以扩展所述缓冲器描述符中保存的地址的位。
5.如权利要求1所述的系统,其中所述遗留接口包括耦合到主机子卡连接器上的第二管脚子集的串行外设接口,并且其中所述子卡包括用于存储子卡标识信息的非易失性存储器,所述子卡标识信息包括指示所述子卡是实现所述遗留接口还是所述DDR总线的信息;并且其中所述主机终接逻辑块利用所述遗留串行外设接口来读所述子卡上的非易失性存储器,并且如果所述子卡标识信息指示所述子卡支持所述遗留接口则将所述第一管脚集合配置为所述遗留并行端口,而如果所述子卡标识信息指示所述子卡支持所述DDR总线接口则将所述第一管脚集合配置为所述DDR总线。
6.一种总线系统接口,包括具有主机总线接口的主机,所述主机总线接口与定义并行端口和串行总线的遗留总线是管脚兼容的,所述主机总线接口包括串行总线逻辑,所述串行总线逻辑确定所连接的子卡是遗留子卡还是高速子卡,并且所述主机总线接口还包括DDR总线逻辑,所述DDR总线逻辑在检测到高速子卡时重定义管脚集合以实现双数据速率(DDR)总线;以及高速子卡,其具有实现DDR总线和串行总线的子卡总线接口,并且包括标识信息,所述标识信息允许所述主机总线接口确定高速子卡是否被连接。
7.一种总线系统,包括与定义并行端口和串行总线的遗留总线管脚兼容的主机,所述主机包括用于与所述串行总线接口的装置;耦合到所述用于与所述串行总线接口的装置,并且用于确定所连接的子卡是遗留子卡还是高速子卡的装置;用于在检测到高速子卡时重定义管脚集合以实现双数据速率(DDR)总线的装置;以及高速子卡,包括用于实现所述DDR总线和所述串行总线的装置;和用于提供标识信息的装置,所述标识信息允许所述主机总线接口确定高速子卡是否被连接。
8.如权利要求7所述的系统,还包括在所述主机处用于利用读和写事务来实现所述并行端口的功能的装置。
9.如权利要求7所述的系统,还包括在所述子卡处用于利用中断控制帧来中断所述主机的装置。
10.如权利要求2所述的系统,其中所述主机包括存储器,所述存储器保存具有地址字段的缓冲器描述符,所述地址字段具有指定数目的字节,所述系统还包括在所述子卡处用于利用在所述子卡处保存的位来扩展所述缓冲器描述符中保存的地址的装置。
11.一种总线系统接口,包括具有主机总线接口的主机,所述主机总线接口与定义并行端口和串行总线的遗留总线是管脚兼容的,所述主机总线接口包括串行总线逻辑,所述串行总线逻辑确定所连接的子卡是遗留子卡还是高速子卡,并且所述主机总线接口包括DDR总线逻辑,所述DDR总线逻辑在检测到高速子卡时重定义管脚集合以实现双数据速率(DDR)总线。
全文摘要
一种主机子卡接口与遗留接口是管脚兼容的,但是重定义管脚子集以实现高带宽双数据速率(DDR)总线。通过检查子卡上的cookie,主机平台确定子卡是支持DDR总线还是支持遗留接口,然后配置管脚子集以实现遗留接口或DDR总线。
文档编号G06F13/42GK1950810SQ200480029321
公开日2007年4月18日 申请日期2004年10月13日 优先权日2003年10月17日
发明者詹姆斯·埃弗雷特·格理施瓦, 麦崎·拉玛尔·海尼格尔 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1