Split socket send queue apparatus and method with efficient queue flow control, retransmission and sack support mechanisms
    1.
    发明授权
    Split socket send queue apparatus and method with efficient queue flow control, retransmission and sack support mechanisms 失效
    拆分套接字发送队列设备和方法,具有高效的队列流控制,重传和备份支持机制

    公开(公告)号:US07818362B2

    公开(公告)日:2010-10-19

    申请号:US11418606

    申请日:2006-05-05

    IPC分类号: G06F15/16 G06F3/00

    摘要: A mechanism for offloading the management of send queues in a split socket stack environment, including efficient split socket queue flow control and TCP/IP retransmission support. An Upper Layer Protocol (ULP) creates send work queue entries (SWQEs) for writing to the send work queue (SWQ). The Internet Protocol Suite Offload Engine (IPSOE) is notified of a new entry to the SWQ and it subsequently reads this entry that contains pointers to the data that is to be transmitted. After the data is transmitted and acknowledgments are received, the IPSOE creates a completion queue entry (CQE) that is written into the completion queue (CQ). The flow control between the ULP and the IPSOE is credit based. The passing of CQ credits is the only explicit mechanism required to manage flow control of both the SWQ and the CQ between the ULP and the IPSOE.

    摘要翻译: 一种卸载分组套接字堆栈环境中发送队列管理的机制,包括高效的分裂套接字队列流控制和TCP / IP重传支持。 上层协议(ULP)创建用于写入发送工作队列(SWQ)的发送工作队列条目(SWQE)。 Internet协议套件卸载引擎(IPSOE)被通知一个新的条目到SWQ,它随后读取这个条目,其中包含指向要发送的数据的指针。 在发送数据并接收到确认之后,IPSOE创建写入完成队列(CQ)的完成队列条目(CQE)。 ULP和IPSOE之间的流量控制是基于信用的。 CQ信用证的通过是在ULP和IPSOE之间管理SWQ和CQ两者流量控制所需的唯一明确的机制。

    Split socket send queue apparatus and method with efficient queue flow control, retransmission and sack support mechanisms
    2.
    发明授权
    Split socket send queue apparatus and method with efficient queue flow control, retransmission and sack support mechanisms 失效
    拆分套接字发送队列设备和方法,具有高效的队列流控制,重传和备份支持机制

    公开(公告)号:US07519650B2

    公开(公告)日:2009-04-14

    申请号:US10235689

    申请日:2002-09-05

    IPC分类号: G06F15/16

    摘要: A mechanism for offloading the management of send queues in a split socket stack environment, including efficient split socket queue flow control and TCP/IP retransmission support. As consumers initiate send operations, send work queue entries (SWQEs) are created by an Upper Layer Protocol (ULP) and written to the send work queue (SWQ). The Internet Protocol Suite Offload Engine (IPSOE) is notified of a new entry to the SWQ and it subsequently reads this entry that contains pointers to the data that is to be transmitted. After the data is transmitted and acknowledgments are received, the IPSOE creates a completion queue entry (CQE) that is written into the completion queue (CQ). After the CQE is written, the ULP subsequently processes the entry and removes it from the CQE, freeing up a space in both the SWQ and CQ. The number of entries available in the SWQ are monitored by the ULP so that it does not overwrite any valid entries. Likewise, the IPSOE monitors the number of entries available in the CQ, so as not overwrite the CQ. The flow control between the ULP and the IPSOE is credit based. The passing of CQ credits is the only explicit mechanism required to manage flow control of both the SWQ and the CQ between the ULP and the IPSOE.

    摘要翻译: 一种卸载分组套接字堆栈环境中发送队列管理的机制,包括高效的分裂套接字队列流控制和TCP / IP重传支持。 当消费者发起发送操作时,发送工作队列条目(SWQE)由上层协议(ULP)创建并写入发送工作队列(SWQ)。 互联网协议套件卸载引擎(IPSOE)被通知一个新条目到SWQ,它随后读取这个条目,其中包含指向要发送的数据的指针。 在发送数据并接收到确认之后,IPSOE创建写入完成队列(CQ)的完成队列条目(CQE)。 在编写CQE后,ULP随后处理该条目并将其从CQE中删除,从而释放了SWQ和CQ两者的空间。 SWQ中可用的条目数由ULP进行监视,以使其不会覆盖任何有效的条目。 同样,IPSOE监视CQ中可用条目的数量,以免覆盖CQ。 ULP和IPSOE之间的流量控制是基于信用的。 CQ信用证的通过是在ULP和IPSOE之间管理SWQ和CQ两者流量控制所需的唯一明确的机制。

    Receive queue device with efficient queue flow control, segment placement and virtualization mechanisms
    3.
    发明授权
    Receive queue device with efficient queue flow control, segment placement and virtualization mechanisms 有权
    接收具有高效队列流控制,段放置和虚拟化机制的队列设备

    公开(公告)号:US07912988B2

    公开(公告)日:2011-03-22

    申请号:US11487265

    申请日:2006-07-14

    IPC分类号: G06F15/16

    摘要: A mechanism for offloading the management of receive queues in a split (e.g. split socket, split iSCSI, split DAFS) stack environment, including efficient queue flow control and TCP/IP retransmission support. An Upper Layer Protocol (ULP) creates receive work queues and completion queues that are utilized by an Internet Protocol Suite Offload Engine (IPSOE) and the ULP to transfer information and carry out send operations. As consumers initiate receive operations, receive work queue entries (RWQEs) are created by the ULP and written to the receive work queue (RWQ). The ISPOE is notified of a new entry to the RWQ and it subsequently reads this entry that contains pointers to the data that is to be received. After the data is received, the IPSOE creates a completion queue entry (CQE) that is written into the completion queue (CQ). After the CQE is written, the ULP subsequently processes the entry and removes it from the CQE, freeing up a space in both the RWQ and CQ. The number of entries available in the RWQ are monitored by the ULP so that it does not overwrite any valid entries. Likewise, the IPSOE monitors the number of entries available in the CQ, so as not overwrite the CQ.

    摘要翻译: 一种用于卸载分裂(例如,分裂式插座,拆分式iSCSI,拆分式DAFS)堆栈环境中接收队列管理的机制,包括有效的队列流控制和TCP / IP重传支持。 上层协议(ULP)创建互联网协议套件卸载引擎(IPSOE)和ULP利用的接收工作队列和完成队列,以传输信息并执行发送操作。 当消费者开始接收操作时,接收工作队列条目(RWQE)由ULP创建并写入接收工作队列(RWQ)。 通知ISPOE对RWQ的新条目,并随后读取包含要接收的数据的指针的该条目。 接收到数据后,IPSOE创建写入完成队列(CQ)的完成队列条目(CQE)。 在编写CQE之后,ULP随后处理该条目并将其从CQE中移除,释放了RWQ和CQ两者中的空间。 RWQ中可用的条目数由ULP监视,以便它不会覆盖任何有效的条目。 同样,IPSOE监视CQ中可用条目的数量,以免覆盖CQ。

    Lazy deregistration protocol for a split socket stack

    公开(公告)号:US06823437B2

    公开(公告)日:2004-11-23

    申请号:US10195180

    申请日:2002-07-11

    IPC分类号: G06F1200

    CPC分类号: G06F12/023

    摘要: A method, computer program product, and distributed data processing system for lazy deregistration of memory regions. Specifically, the present invention is directed to memory regions that are written to and from by an Integrated Protocol Suite Offload Engine (IPSOE) in accordance with a preferred embodiment of the present invention. A mechanism is provided for lazy deregistration of memory regions once the region is no longer required for a specific data transfer being carried out by the IPSOE. Rather than deregistering a memory region after a data transfer has been carried out, the memory region remains registered for some selected period of time. After that selected period of time passes, the region is then deregistered. If a second data transfer using this memory region occurs while the memory region is still registered, the registration overhead is avoided for this second data transfer. This mechanism reduces the amount of CPU resources required for transferring data by allowing reuse of previously registered memory regions.

    Data reordering mechanism for high performance networks
    5.
    发明授权
    Data reordering mechanism for high performance networks 失效
    高性能网络数据重排序机制

    公开(公告)号:US06735647B2

    公开(公告)日:2004-05-11

    申请号:US10235697

    申请日:2002-09-05

    IPC分类号: G06F1300

    摘要: An apparatus and method for reordering data at a data destination is provided. The apparatus and method provides dynamic, adaptive management of receive buffers in a host channel adapter while recovering on the fly the order of data sent over a medium that does not preserve order. In an exemplary embodiment, the method and apparatus provides a method and apparatus of reordering data of a data transmission received from a source device. The method and apparatus receives, in a data transfer buffer, a data packet transmitted over a connection associated with the source device and determines if the connection requires reordering of data packets. If the connection requires reordering of data packets, the data packet is transferred from the data transfer buffer to a reorder buffer and a reorder state cache is updated to reflect the transfer of the data packet to the reorder buffer. In response to receipt of a request to transfer data from the reorder buffer to the host memory, a next data packet sequence number is fetched from the reorder state cache and a position in the reorder buffer of the data associated with the next data packet sequence number entry is identified. The data is at this identified position is then transferred to the host memory.

    摘要翻译: 提供了一种用于在数据目的地重新排序数据的装置和方法。 该装置和方法为主机通道适配器中的接收缓冲器提供动态的,自适应的管理,同时在不依赖于不保持顺序的介质上发送的数据的顺序上恢复。 在示例性实施例中,该方法和装置提供了从源设备接收的数据传输的数据重新排序的方法和装置。 该方法和装置在数据传输缓冲器中接收通过与源设备相关联的连接发送的数据分组,并确定该连接是否需要重新排序数据分组。 如果连接需要重新排序数据包,数据包将从数据传输缓冲区传送到重新排序缓冲区,并重新排序状态缓存被更新以反映数据包到重新排序缓冲区的传输。 响应于接收到将数据从重排序缓冲器传送到主机存储器的请求,从重新排序状态高速缓冲存储器中取出下一个数据包序列号,并且重新排序缓冲器中与下一个数据包序列号相关联的数据的位置 确定条目。 数据在此识别位置然后传输到主机内存。

    Memory management offload for RDMA enabled network adapters
    7.
    发明授权
    Memory management offload for RDMA enabled network adapters 有权
    RDMA启用的网络适配器的内存管理卸载

    公开(公告)号:US07299266B2

    公开(公告)日:2007-11-20

    申请号:US10235679

    申请日:2002-09-05

    IPC分类号: G06F15/173

    CPC分类号: G06F12/145

    摘要: A method, computer program product, and distributed data processing system for memory management. Memory regions are registered and have access rights and Protection domains associated with them in response to receiving a request for a memory operation including a virtual address, which is used to address into a data structure. A second data structure is then used to translate the virtual address into physical addresses for the operation. A third data structure is used to allow an incoming request responsive to a remote operation being initiated.

    摘要翻译: 一种方法,计算机程序产品和用于存储器管理的分布式数据处理系统。 存储器区域被注册并且具有与它们相关联的访问权限和保护域,以响应于接收对包括用于寻址到数据结构中的虚拟地址的存储器操作的请求。 然后使用第二数据结构将虚拟地址转换为用于操作的物理地址。 使用第三数据结构来允许响应于远程操作被启动的传入请求。

    Mechanisms for Creation/Deletion of Linear Block Address Table Entries for Direct I/O
    8.
    发明申请
    Mechanisms for Creation/Deletion of Linear Block Address Table Entries for Direct I/O 有权
    用于直接I / O的线性块地址表条目的创建/删除机制

    公开(公告)号:US20090064163A1

    公开(公告)日:2009-03-05

    申请号:US12269419

    申请日:2008-11-12

    IPC分类号: G06F9/50

    摘要: The present invention provides mechanisms that enable application instances to pass block mode storage requests directly to a physical I/O adapter without run-time involvement from the local operating system or hypervisor. In one aspect of the present invention, a mechanism is provided for handling user space creation and deletion operations for creating and deleting allocations of linear block addresses of a physical storage device to application instances. For creation, it is determined if there are sufficient available resources for creation of the allocation. For deletion, it is determined if there are any I/O transactions active on the allocation before performing the deletion. Allocation may be performed only if there are sufficient available resources and deletion may be performed only if there are no active I/O transactions on the allocation being deleted.

    摘要翻译: 本发明提供使得应用程序实例能够将块模式存储请求直接传递到物理I / O适配器的机制,而不需要本地操作系统或管理程序的运行时参与。 在本发明的一个方面,提供了一种用于处理用户空间创建和删除操作的机制,用于创建和删除对应用实例的物理存储设备的线性块地址的分配。 为了创建,确定是否有足够的可用资源来创建分配。 对于删除,在执行删除之前确定在分配上是否有任何活动的I / O事务。 只有在有足够的可用资源时才能执行分配,并且只有在删除分配中没有活动的I / O事务时,才能执行删除。

    Method for user space operations for direct I/O between an application instance and an I/O adapter
    9.
    发明授权
    Method for user space operations for direct I/O between an application instance and an I/O adapter 有权
    用于应用程序实例和I / O适配器之间的直接I / O的用户空间操作的方法

    公开(公告)号:US07552240B2

    公开(公告)日:2009-06-23

    申请号:US11135542

    申请日:2005-05-23

    摘要: The present invention provides a method that enables application instances to pass block mode storage requests directly to a physical I/O adapter without run-time involvement from either the local operating system or hypervisor. In one aspect of the present invention, a mechanism is provided for determining whether a user space operation is a resource management operation of a work processing operation. If the user space operation is a resource management operation, appropriate functions are performed to either query, create, modify or destroy resource allocations in the I/O adapter. If the user space operation is a work processing operation, appropriate functions are performed to create work queue entries and inform the I/O adapter of the work queue entries and to retrieve completion queue entries for work queue entries whose processing has been completed by the I/O adapter.

    摘要翻译: 本发明提供一种使应用程序实例能够将块模式存储请求直接传递到物理I / O适配器的方法,而不需要本地操作系统或管理程序的运行时参与。 在本发明的一个方面中,提供了一种用于确定用户空间操作是否是工作处理操作的资源管理操作的机制。 如果用户空间操作是资源管理操作,则执行适当的功能来查询,创建,修改或销毁I / O适配器中的资源分配。 如果用户空间操作是工作处理操作,则执行适当的功能来创建工作队列条目,并通知I / O适配器工作队列条目,并且检索完成队列条目以处理已由I完成的工作队列条目 / O适配器。

    Mechanisms for creation/deletion of linear block address table entries for direct I/O
    10.
    发明授权
    Mechanisms for creation/deletion of linear block address table entries for direct I/O 有权
    用于创建/删除直接I / O的线性块地址表条目的机制

    公开(公告)号:US07849228B2

    公开(公告)日:2010-12-07

    申请号:US12269419

    申请日:2008-11-12

    IPC分类号: G06F3/00 G06F12/00 G06F17/30

    摘要: The present invention provides mechanisms that enable application instances to pass block mode storage requests directly to a physical I/O adapter without run-time involvement from the local operating system or hypervisor. In one aspect of the present invention, a mechanism is provided for handling user space creation and deletion operations for creating and deleting allocations of linear block addresses of a physical storage device to application instances. For creation, it is determined if there are sufficient available resources for creation of the allocation. For deletion, it is determined if there are any I/O transactions active on the allocation before performing the deletion. Allocation may be performed only if there are sufficient available resources and deletion may be performed only if there are no active I/O transactions on the allocation being deleted.

    摘要翻译: 本发明提供使得应用程序实例能够将块模式存储请求直接传递到物理I / O适配器的机制,而不需要本地操作系统或管理程序的运行时参与。 在本发明的一个方面,提供了一种用于处理用户空间创建和删除操作的机制,用于创建和删除对应用实例的物理存储设备的线性块地址的分配。 为了创建,确定是否有足够的可用资源来创建分配。 对于删除,在执行删除之前确定在分配上是否有任何活动的I / O事务。 只有在有足够的可用资源时才能执行分配,并且只有在删除分配中没有活动的I / O事务时,才能执行删除。