Host-fabric adapter having work queue entry (WQE) ring hardware assist (HWA) mechanism
First Claim
1. A host-fabric adapter, comprising:
- at least one Micro-Engine arranged to establish connections and support data transfer operations, via a switched fabric, in response to work requests that cause instructions in a form of work queue elements “
WQEs”
posted from a host system for said data transfer operations;
a work queue element “
WQE”
hardware assist “
HWA”
mechanism arranged to determine the starting address of each work queue element “
WQE”
based on queue pair (QP) context information needed for said Micro-Engine (ME) to process work requests for said data transfer operations;
a transport engine which contains a plurality of work queue pairs (WQPs) in which work requests in a form of work queue elements “
WQEs”
are posted to describe data transfer operations and locations of data to be moved for processing and/or transportation via said switched fabric;
wherein said work queue pairs (WOPs) each comprises;
a Send Queue (SQ) utilized as an “
initiator”
which requests normal message sends to remote Virtual Interfaces (VIs) of a remote system, remote direct memory access (RDMA) reads which request messages to be read from specific memory locations of said remote system, via said switched fabric, and remote direct memory access (RDMA) writes which request messages to be written onto specific memory locations of said remote system, via said switched fabric; and
a Receive Queue utilized as a “
responder”
which receives requests for messages from normal sends, RDMA reads and RDMA writes from said remote system, via said switched fabric; and
wherein said Micro-Engine and said work queue element “
WQE”
hardware assist “
HWA”
mechanism are configured in accordance with the “
InfiniBand™
Specification”
, and implemented as part of an Application Specific Integrated Circuit (ASIC).
1 Assignment
0 Petitions
Accused Products
Abstract
A host system is provided with one or more host-fabric adapters installed therein for connecting to a switched fabric of a data network. The host-fabric adapter may comprise at least one Micro-Engine arranged to establish connections and support data transfer operations, via a switched fabric, in response to work requests that cause instructions in a form of work queue elements “WQES” posted from a host system for said data transfer operations; and a work queue element “WQE” hardware assist “HWA” mechanism arranged to determine the starting address of each work queue element “WQE” based on queue pair (QP) context information needed for said Micro-Engine (ME) to process work requests for said data transfer operations.
-
Citations
19 Claims
-
1. A host-fabric adapter, comprising:
-
at least one Micro-Engine arranged to establish connections and support data transfer operations, via a switched fabric, in response to work requests that cause instructions in a form of work queue elements “
WQEs”
posted from a host system for said data transfer operations;
a work queue element “
WQE”
hardware assist “
HWA”
mechanism arranged to determine the starting address of each work queue element “
WQE”
based on queue pair (QP) context information needed for said Micro-Engine (ME) to process work requests for said data transfer operations;
a transport engine which contains a plurality of work queue pairs (WQPs) in which work requests in a form of work queue elements “
WQEs”
are posted to describe data transfer operations and locations of data to be moved for processing and/or transportation via said switched fabric;
wherein said work queue pairs (WOPs) each comprises;
a Send Queue (SQ) utilized as an “
initiator”
which requests normal message sends to remote Virtual Interfaces (VIs) of a remote system, remote direct memory access (RDMA) reads which request messages to be read from specific memory locations of said remote system, via said switched fabric, and remote direct memory access (RDMA) writes which request messages to be written onto specific memory locations of said remote system, via said switched fabric; and
a Receive Queue utilized as a “
responder”
which receives requests for messages from normal sends, RDMA reads and RDMA writes from said remote system, via said switched fabric; and
wherein said Micro-Engine and said work queue element “
WQE”
hardware assist “
HWA”
mechanism are configured in accordance with the “
InfiniBand™
Specification”
, and implemented as part of an Application Specific Integrated Circuit (ASIC). - View Dependent Claims (2)
-
-
3. A host-fabric adapter, comprising:
-
at least one Micro-Engine arranged to establish connections and support data transfer operations, via a switched fabric, in response to work requests that cause instructions in a form of work queue elements “
WQEs”
posted from a host system for said data transfer operations;
a work queue element “
WQE”
hardware assist “
HWA”
mechanism arranged to determine the starting address of each work queue element “
WQE”
based on queue pair (QP) context information needed for said Micro-Engine (ME) to process work requests for said data transfer operations;
a local bus interface arranged to interface a local bus responsible for supporting system accessible context connections and channel operations, and turning signal data into appropriate forms for said Micro-Engine (ME) to process work requests for said data transfer operations; and
a QP context memory arranged to store QP context information needed for said Micro-Engine (ME) to process work requests for data transfer operations;
wherein said work queue element “
WQE”
hardware assist “
HWA”
mechanism is incorporated in one of said local bus interface and said QP context memory to determine the starting address of each work queue element “
WQE”
in the WQE ring, and said “
WQEs”
are programmed by host software with different given sizes including multiple Data Segments which are scatter gather lists pointing to memory regions of host system memory where message data is to be transmitted from or where incoming message data is to be written. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10)
-
-
11. A host-fabric adapter installed at a host system for connecting to a switched fabric of a data network, comprising:
-
at least one Micro-Engine (ME) arranged to establish connections and support data transfers via said switched fabric;
a serial interface arranged to receive and transmit data packets from said switched fabric for data transfer operations;
a host interface arranged to receive and transmit work requests that cause instructions in a form of work queue elements “
WQEs”
posted from said host system for data transfer operations;
a local bus interface arranged to interface a local bus responsible for supporting system accessible context connections and channel operations, and turning signal data into appropriate forms for said Micro-Engine (ME) to process work requests for said data transfer operations;
a QP context memory arranged to store QP context information needed for said Micro-Engine (ME) to process work requests for data transfer operations; and
a work queue element “
WQE”
hardware assist “
HWA”
mechanism arranged to determine the starting address of each work queue element “
WQE”
based on queue pair (QP) context information needed for said Micro-Engine (ME) to process work requests for said data transfer operations. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method of determining the starting address of a work queue element “
- WQE”
in a WQE ring for-processing outstanding data transfer operations in a host-fabric adapter installed at a host system, comprising;generating a WQE size value based on a programmed WQE size from context information;
generating a WQE mask value based on the programmed WQE size from the context information;
executing a logical AND function of a current WQE Offset obtained from the context information and the WQE mask value to supply a resultant WQE Offset indicating the starting address of the currently completed; and
executing a logical ADD function of the resultant WQE Offset and the WQE size value to supply a resultant WQE Offset indicating the starting address of the next WQE.
- WQE”
-
19. A computer readable medium having computer-executable instructions for performing a method of determining the starting address of a work queue element “
- WQE”
in a WQE ring so as to process outstanding data transfer operations in a host-fabric adapter installed at a host system, said method comprising;generating a WQE size value based on a programmed WQE size from context information;
generating a WQE mask value based on the programmed WQE size from the context information;
executing a logical AND function of a current WQE Offset obtained from the context information and the WQE mask value to supply a resultant WQE Offset indicating the starting address of the currently completed; and
executing a logical ADD function of the resultant WQE Offset and the WQE size value to supply a resultant WQE Offset indicating the starting address of the next WQE.
- WQE”
Specification