首页 / 专利库 / 电信 / 数据速率 / 用于主机子卡接口的后向兼容并行DDR总线

用于主机子卡接口后向兼容并行DDR总线

阅读:451发布:2024-01-31

专利汇可以提供用于主机子卡接口后向兼容并行DDR总线专利检索,专利查询,专利分析的服务。并且一种主机子卡 接口 与遗留接口是管脚兼容的,但是重定义管脚子集以实现高带宽双 数据速率 (DDR)总线。通过检查子卡上的cookie,主机平台确 定子 卡是支持DDR总线还是支持遗留接口,然后配置管脚子集以实现遗留接口或DDR总线。,下面是用于主机子卡接口后向兼容并行DDR总线专利的具体信息内容。

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)总线。

说明书全文

背景技术

新产品和现有产品之间的不兼容性是包括联网和信号交换在内的许多 技术领域中的主要问题。通常,开发出来的新产品具有增大的数据速率, 而客户已经在以较低数据速率工作的遗留产品上投入了很多。

例如,许多路由平台有用于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位)}
本发明的组件可以实现为存储在计算机可读介质上的由数字计算机执 行的程序代码。计算机可读介质可以包括磁介质、光介质、对数字信息编 码的电磁场等等。
已经参考优选实施例描述了本发明。对于本领域技术人员来说,备选 和替换方案是清楚的。例如,所描述的各种帧的格式只是示例性的,本领 域技术人员可以采用其他帧格式。另外,被占用以用于高速接口的遗留接 口的管脚根据遗留接口的管脚功能而有所不同。因此,本发明只能由所附 权利要求限定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈