Methods and apparatus for distributing interrupts
    1.
    发明授权
    Methods and apparatus for distributing interrupts 有权
    分配中断的方法和装置

    公开(公告)号:US07328294B2

    公开(公告)日:2008-02-05

    申请号:US10011899

    申请日:2001-12-03

    IPC分类号: G06F13/24 G06F13/26 G06F9/46

    CPC分类号: G06F9/4812 G06F9/5011

    摘要: The present invention relates to handling interrupts in a multiprocessor system. An interrupt controller can receive input from a variety of interrupt sources, such as peripheral components and peripheral interfaces. Interrupts and their associated characteristics are identified. In one example, interrupt characteristics can be compared with characteristics of other interrupts handled by processors in the multiprocessor system. Interrupt characteristics are used to select a processor to run a routine for handling the associated interrupt. Intelligent selection provides efficient and effective distribution of interrupts.

    摘要翻译: 本发明涉及处理多处理器系统中的中断。 中断控制器可以从各种中断源接收输入,例如外设组件和外设接口。 确定中断及其相关特征。 在一个示例中,中断特性可以与多处理器系统中的处理器处理的其他中断的特性进行比较。 中断特性用于选择处理器来运行用于处理相关中断的例程。 智能选择提供高效,有效的中断分配。

    Method and apparatus for dynamic packet batching with a high performance network interface
    2.
    发明授权
    Method and apparatus for dynamic packet batching with a high performance network interface 有权
    具有高性能网络接口的动态分组批处理方法和装置

    公开(公告)号:US06483804B1

    公开(公告)日:2002-11-19

    申请号:US09260324

    申请日:1999-03-01

    IPC分类号: H04J116

    摘要: A system and method are provided for identifying related packets in a communication flow for the purpose of collectively processing them through a protocol stack comprising one or more protocols under which the packets were transmitted. A packet received at a network interface is parsed to retrieve information from one or more protocol headers. A flow key is generated to identify a communication flow that includes the packet, and is stored in a database of flow keys. When the packet is placed in a queue to be transferred to a host computer, the flow key and/or its flow number (e.g., its index into the database) is stored in a separate queue. Near to the time at which the packet is transferred to the host computer, a dynamic packet batching module searches for a packet that is related to the packet being transferred (i.e., is in the same flow) but which will be transferred later in time. If a related packet is located, the host computer is alerted and, as a result, delays processing the transferred packet until the related packet is also received. By collectively processing the related packets, processor time is more efficiently utilized.

    摘要翻译: 提供了一种用于识别通信流中的相关分组的系统和方法,用于通过协议栈共同处理它们,该协议栈包括传输分组的一个或多个协议。 在网络接口处接收到的分组被解析为从一个或多个协议头部检索信息。 生成流密钥以识别包括分组的通信流,并存储在流密钥的数据库中。 当分组被放置在要传送到主计算机的队列中时,流密钥和/或其流号(例如,其到数据库的索引)被存储在单独的队列中。 在分组被传送到主计算机的时间附近,动态分组批处理模块搜索与正在传送的分组相关的分组(即,处于相同的流程),但将在时间上稍后传送。 如果相关的分组被定位,则主机被警告,结果是延迟处理传送的分组,直到相关分组也被接收到。 通过集体处理相关的数据包,更有效地利用处理器时间。

    High performance network interface
    3.
    发明授权
    High performance network interface 有权
    高性能网络接口

    公开(公告)号:US06453360B1

    公开(公告)日:2002-09-17

    申请号:US09259765

    申请日:1999-03-01

    IPC分类号: G06F1300

    摘要: A high performance network interface is provided for receiving a packet from a network and transferring it to a host computer system. A header portion of a received packet is parsed by a parser module to determine the packet's compatibility with, or conformance to, one or more pre-selected protocols. If compatible, a number of processing functions may be performed to increase the efficiency with which the packet is handled. In one function, a re-assembly engine re-assembles, in a re-assembly buffer, data portions of multiple packets in a single communication flow or connection. Header portions of such packets are stored in a header buffer. An incompatible packet may be stored in another buffer. In another function, a packet batching module determines when multiple packets in one flow are transferred to the host computer system, so that their header portions are processed collectively rather than being interspersed with headers of other flows' packets. In yet another function, the processing of packets through their protocol stacks is distributed among multiple processors by a load distributor, based on their communication flows. A flow database is maintained by a flow database manager to reflect the creation, termination and activity of flows. A packet queue stores packets to await transfer to the host computer system, and a control queue stores information concerning the waiting packets. If the packet queue becomes saturated with packets, a random packet may be discarded. An interrupt modulator may modulate the rate at which interrupts associated with packet arrival events are issued to the host computer system.

    摘要翻译: 提供了一种高性能网络接口,用于从网络接收分组并将其传送到主机系统。 接收到的分组的报头部分由解析器模块解析以确定分组与一个或多个预选协议的兼容性或符合一个或多个预选协议。 如果兼容,则可以执行多个处理功能以提高处理分组的效率。 在一个功能中,重新组装引擎在重新组装缓冲器中重新组装单个通信流或连接中的多个分组的数据部分。 这些分组的报头部分被存储在报头缓冲器中。 不兼容的数据包可能存储在另一个缓冲区中。 在另一个功能中,分组批处理模块确定一个流中的多个分组何时被传送到主计算机系统,使得它们的头部部分被集体处理,而不是散布在其他流的分组的头部。 在另一个功能中,通过它们的协议栈对分组的处理由负载分配器基于它们的通信流分布在多个处理器之间。 流数据库由流数据库管理器维护,以反映流的创建,终止和活动。 分组队列存储分组以等待传送到主计算机系统,并且控制队列存储关于等待分组的信息。 如果分组队列变得饱和,则随机分组可能被丢弃。 中断调制器可以调制与主机计算机系统发出与分组到达事件相关联的中断的速率。

    Method and apparatus for early random discard of packets
    4.
    发明授权
    Method and apparatus for early random discard of packets 有权
    早期随机丢弃数据包的方法和装置

    公开(公告)号:US06606301B1

    公开(公告)日:2003-08-12

    申请号:US09258952

    申请日:1999-03-01

    IPC分类号: H04L1226

    摘要: A high performance network interface receives network traffic in the form of packets. Prior to being transferred to a host computer, a packet is stored in a packet queue. A system and method are provided for randomly discarding a packet if the rate of packet transfers cannot keep pace with the rate of packet arrivals at the queue. When a packet must be dropped a selected packet may be discarded as it arrives at the queue, or a packet already in the queue may be dropped. A packet queue is apportioned into multiple regions, any of which may overlap or share a common boundary. A probability indicator is associated with a region to specify the probability of a packet being discarded when the level of traffic stored in the queue is within the region. A counter may be employed in conjunction with a probability indicator to identify individual packets. Probability indicators may differ from region to region so that the probability of discarding a packet fluctuates as the level of traffic stored in the queue changes. In addition to selecting packets to be dropped on a random basis, information gleaned from a packet may be applied to prevent certain types of packets from being dropped. The information derived from a packet may be obtained during a procedure in which one or more of the packet's headers are parsed. By parsing a packet, it may be determined whether the packet conforms to a pre-selected protocol.

    摘要翻译: 高性能网络接口以数据包的形式接收网络流量。 在被转移到主计算机之前,分组被存储在分组队列中。 提供一种用于随机丢弃分组的系统和方法,如果分组传输的速率不能跟上队列中的分组到达速率。 当分组必须丢弃时,所选择的分组可能在到达队列时被丢弃,或者已经在队列中的分组可能被丢弃。 分组队列被分配到多个区域中,其中任一个可以重叠或共享公共边界。 概率指示符与区域相关联,以指定在队列中存储的流量在区域内时丢弃分组的概率。 可以结合使用概率指示符来计算计数器以识别各个分组。 概率指标可能因区域而异,因此丢弃数据包的概率随着队列中存储的流量变化而波动。 除了随机选择要丢弃的数据包之外,还可以应用从数据包中收集的信息来防止某些类型的数据包被丢弃。 在分组中的一个或多个报头被解析的过程中可以获得从分组导出的信息。 通过分析分组,可以确定分组是否符合预先选择的协议。

    Method and apparatus for suppressing interrupts in a high-speed network environment
    5.
    发明授权
    Method and apparatus for suppressing interrupts in a high-speed network environment 有权
    用于抑制高速网络环境中的中断的方法和装置

    公开(公告)号:US06434651B1

    公开(公告)日:2002-08-13

    申请号:US09260367

    申请日:1999-03-01

    IPC分类号: G06F948

    摘要: A network interface is polled by a process operating on a host computer system. Each time the network interface is polled, the process determines whether any packets have been received. If so, they are processed. Interrupts that would normally be issued by the network interface in response to the transfer of packets to the host system are suppressed or postponed during the polling mode of operation. If, however, a predetermined period of time has elapsed or a predetermined number of packets have been received since a previous poll or a previous interrupt, then an interrupt may be generated. The rate at which interrupts may be issued is modulated to decrease the interrupt-processing burden placed on the processor. A time counter may be used to track the passage of time and a packet counter may be used to track the number of packets transferred by the network interface. After each polling operation or processing of an interrupt by the host processor, the time and packet counters are reset to threshold values and thereafter begin decrementing toward a final time count and a final packet count, respectively. Thus, a packet transferred after one polling operation or interrupt does not cause the issuance of an interrupt to the host processor unless a time or packet counter reaches its final value (e.g. zero). The threshold time count and packet count may be adjusted to ensure that interrupts are generated often enough to avoid a negative impact on the processing of packets if, for example, the polling process is blocked.

    摘要翻译: 网络接口由在主机系统上操作的进程轮询。 每次轮询网络接口时,该过程将确定是否已收到任何数据包。 如果是这样,它们被处理。 通常由网络接口​​发出的响应于向主机系统传送分组的中断在操作的轮询模式期间被抑制或推迟。 然而,如果从先前的轮询或先前的中断之后经过预定的时间段或已经接收到预定数量的分组,则可能产生中断。 可以调制发送中断的速率,以减少处理器上的中断处理负担。 可以使用时间计数器跟踪时间的流逝,并且可以使用分组计数器来跟踪由网络接口​​传送的分组的数量。 在主处理器进行每次轮询操作或中断处理之后,将时间和分组计数器重置为阈值,然后分别向最终时间计数和最终分组计数递减。 因此,在一次轮询操作或中断之后传送的分组不会导致向主处理器发出中断,除非时间或分组计数器达到其最终值(例如零)。 可以调整阈值时间计数和分组计数,以确保如果例如轮询过程被阻止,则经常产生中断以避免对分组的处理的负面影响。

    Checksum generation circuit and method
    6.
    发明授权
    Checksum generation circuit and method 失效
    校验和生成电路及方法

    公开(公告)号:US5663952A

    公开(公告)日:1997-09-02

    申请号:US499484

    申请日:1995-07-07

    CPC分类号: H04L1/0057 G06F11/10

    摘要: A circuit and method for generating a checksum for a TCP packet on the fly. A stream of 32-bit data words from a TCP packet is split into two 16-bit data word streams and separately summed using 16-bit adders. The carry-out from the adders is tied to the carry-in thereof so as to incorporate any carry bits generated into the sum. At the end of the data stream, three further summing cycles are used in order to generate the final 16-bit one's complement checksum. First, the two 16-bit data stream partial sums are added together, including any carry bit from one of the adders while the carry-out from the other adder is stored. In the second cycle the stored carry-out and the carry-out from the first cycle are added into the sum. In the third cycle, any carry bit generated in the second cycle is added to the sum so as to produce the final checksum.

    摘要翻译: 一种用于生成TCP数据包的校验和的电路和方法。 来自TCP分组的32位数据字的流被分成两个16位数据字流,并使用16位加法器单独相加。 来自加法器的进位与其进位相关联,以便将产生的任何进位位合并到总和中。 在数据流结束时,使用三个进一步的求和周期来生成最终的16位补码校验和。 首先,两个16位数据流部分和被加在一起,包括来自其中一个加法器的任何进位位,同时存储来自另一加法器的进位输出。 在第二个周期中,将存储的进位和从第一个周期的进位加到和中。 在第三周期中,在第二周期中生成的任何进位位被加到和以产生最终的校验和。

    Method and apparatus for managing a network flow in a high performance network interface
    7.
    发明授权
    Method and apparatus for managing a network flow in a high performance network interface 有权
    用于在高性能网络接口中管理网络流的方法和装置

    公开(公告)号:US06650640B1

    公开(公告)日:2003-11-18

    申请号:US09259932

    申请日:1999-03-01

    IPC分类号: G06F1300

    摘要: A system and method are provided for managing information concerning a network flow comprising packets sent from a source entity to a destination entity served by a network interface. A network flow is established for each datagram sent from the source entity to the destination entity. A flow key, identifying the source and destination entities, is stored in a data structure along with information concerning validity of the flow, sequence of data in the flow datagram and how recently the flow was active. Once a flow is established, it is updated each time a packet containing data from the flow's datagram is received. When such a packet is received, an operation code is generated for identifying whether the packet is suitable for a particular network interface function. An operation code may, for example, indicate that a packet contains data to be re-assembled with other data from the same flow. Another operation code may indicate that a packet is not suitable for data re-assembly. Another operation code may specify that the packet is simply a control packet, has no data, or that the packet was received out of order.

    摘要翻译: 提供了一种系统和方法,用于管理关于包括从源实体发送到由网络接口​​服务的目的地实体的分组的网络流的信息。 为从源实体发送到目标实体的每个数据报建立网络流。 识别源和目的地实体的流密钥与流程的有效性,流数据报中的数据序列以及流最近活动的信息一起存储在数据结构中。 一旦流建立,每次收到来自流数据报的数据包都被更新。 当接收到这样的分组时,生成用于识别分组是否适合于特定网络接口功能的操作码。 例如,操作代码可以指示分组包含要与来自相同流的其他数据重新组合的数据。 另一个操作代码可能表示一个数据包不适合数据重新组装。 另一个操作代码可以指定该分组仅仅是一个控制分组,没有数据,或者该分组被无序接收。

    Method and apparatus for data re-assembly with a high performance network interface
    8.
    发明授权
    Method and apparatus for data re-assembly with a high performance network interface 有权
    具有高性能网络接口的数据重新组装方法和装置

    公开(公告)号:US06480489B1

    公开(公告)日:2002-11-12

    申请号:US09260333

    申请日:1999-03-01

    IPC分类号: H04L1228

    摘要: A system and method are provided for transferring a packet received from a network to a host computer according to an operation code associated with the packet. A packet received at a network interface is parsed to retrieve information from a header portion of the packet. A flow key is generated for a received packet that was formatted with one of a set of predetermined protocols. A packet's flow key identifies a communication flow that comprises the packet. Based on some of the retrieved information, a code is associated with the packet to inform a transfer engine how the packet should be transferred to host memory. Based on a packet's code, the transfer engine stores the packet in one or more host memory buffers. If the packet was formatted with one of the set of predetermined protocols, its data is re-assembled in a re-assembly buffer with data from other packets in the same communication flow. Re-assembled data may be provided to a destination application or user through page flipping. If the packet is being re-assembled, a header portion of the packet is stored in a separate header buffer. If the packet is not being re-assembled, it is stored in its entirety in the header buffer if it is smaller than a predetermined threshold. If a non-re-assembled packet is larger than the threshold for the header buffer, it is stored in another type of buffer for larger non-re-assembled packets. After a packet is stored in a buffer, the transfer engine informs the host computer of the packet by configuring a descriptor with information on the packet and releasing the descriptor to the host computer.

    摘要翻译: 提供了一种系统和方法,用于根据与分组相关联的操作码将从网络接收到的分组传送到主计算机。 在网络接口处接收的分组被解析以从分组的报头部分检索信息。 针对以一组预定协议格式化的接收分组生成流密钥。 分组的流密钥标识包括分组的通信流。 基于一些检索到的信息,代码与分组相关联以通知传输引擎如何将分组传送到主机存储器。 基于分组的代码,传输引擎将分组存储在一个或多个主机存储器缓冲器中。 如果分组被格式化为预定协议集合中的一个,则其数据在具有来自相同通信流中的其他分组的数据的重新组装缓冲器中被重新组装。 可以通过翻页翻页将重新组装的数据提供给目的地应用程序或用户。 如果分组被重新组装,则分组的报头部分被存储在单独的报头缓冲器中。 如果分组未被重新组装,则如果分组小于预定阈值,则将其整体存储在报头缓冲器中。 如果非重新组合的分组大于报头缓冲区的阈值,则将其存储在另一种类型的缓冲器中用于较大的非重新组装的分组。 在将数据包存储在缓冲器中之后,传输引擎通过配置具有关于分组的信息的描述符并将该描述符释放到主机来通知主机计算机。

    Method and apparatus for indicating an interrupt in a network interface
    9.
    发明授权
    Method and apparatus for indicating an interrupt in a network interface 有权
    用于指示网络接口中的中断的方法和装置

    公开(公告)号:US06467008B1

    公开(公告)日:2002-10-15

    申请号:US09259936

    申请日:1999-03-01

    IPC分类号: G06F1324

    摘要: A network interface is polled by a process operating on a host computer system. Each time the network interface is polled the process determines whether any packets have been transferred to the host. If so, they are processed. Interrupts that would normally be issued from the network interface in response to the transfer of packets are suppressed or postponed during the polling mode of operation. If, however, a predetermined period of time has elapsed or a predetermined number of packets have been transferred since a previous poll or a previous interrupt, then an interrupt may be generated.

    摘要翻译: 网络接口由在主机系统上操作的进程轮询。 每次轮询网络接口时,进程确定是否有任何数据包已传输到主机。 如果是这样,它们被处理。 通常在响应于分组的传送的情况下从网络接口发出的中断在轮询操作模式期间被抑制或推迟。 然而,如果经过预定的时间段或从先前的轮询或先前的中断传送了预定数量的分组,则可能产生中断。

    System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction
    10.
    发明授权
    System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction 有权
    用于使用包含在解析指令中的掩码和比较值来解析与预定协议一致的分组的系统

    公开(公告)号:US06356951B1

    公开(公告)日:2002-03-12

    申请号:US09258955

    申请日:1999-03-01

    IPC分类号: G06F1516

    摘要: A high performance network interface receives network traffic in the form of packets. The network interface parses one or more headers of a received packet in order to determine whether the packet has been formatted with a pre-selected protocol. If so, one or more efficient enhancements in the processing of a packet may be enabled for the packet. During parsing, header data that may be useful in the processing enhancements may be saved. A packet conforming to one or more of a set of pre-selected protocols may be more completely parsed than a packet not conforming to any of the pre-selected protocols. Instructions for parsing a packet to determine a protocol and to extract useful data are stored in a writeable random-access memory. The instructions may be replaced, modified or supplemented depending upon the composition of network traffic and the protocols selected for enhanced processing. In a parsing instruction executed by a micro-sequencer, a value is extracted from a header and compared to a test value that may be derived from a protocol specification. If the comparison succeeds parsing continues along a first branch; if the comparison succeeds it continues along a second branch. The value extracted from the header may be saved. An offset to a parsing position within the packet is maintained and updated as the packet is parsed. Values other than those extracted for comparison may also be identified and saved.

    摘要翻译: 高性能网络接口以数据包的形式接收网络流量。 网络接口解析接收到的分组的一个或多个报头,以便确定分组是否已经用预先选择的协议格式化。 如果是,则可以为分组启用分组处理中的一个或多个有效增强。 在解析期间,可以保存在处理增强中可能有用的标题数据。 符合一组预先选择的协议中的一个或多个的分组可以比不符合任何预先选择的协议的分组更完整地解析。 用于解析分组以确定协议并提取有用数据的指令存储在可写随机存取存储器中。 可以根据网络流量的组成和为增强处理选择的协议来替换,修改或补充指令。 在由微定序器执行的解析指令中,从标题中提取值并与可从协议规范导出的测试值进行比较。 如果比较成功,解析将继续沿着第一个分支; 如果比较成功,它将继续沿着第二个分支。 可以保存从头部提取的值。 当数据包被解析时,保留并更新分组内解析位置的偏移量。 也可以识别并保存除了提取用于比较的值以外的值。