Patents by Inventor Michael Kagan

Michael Kagan has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20150261720
    Abstract: A method for data storage includes configuring a driver program on a host computer to receive commands in accordance with a protocol defined for accessing local storage devices connected to a peripheral component interface bus of the host computer. When the driver program receives, from an application program running on the host computer a storage access command in accordance with the protocol, specifying a storage transaction, a remote direct memory access (RDMA) operation is performed by a network interface controller (NIC) connected to the host computer so as to execute the storage transaction via a network on a remote storage device.
    Type: Application
    Filed: March 17, 2014
    Publication date: September 17, 2015
    Applicant: Mellanox Technologies Ltd.
    Inventors: Michael Kagan, Noam Bloch, Shlomo Raikin, Yaron Haviv, Idan Burstein
  • Publication number: 20150212817
    Abstract: A method for network access of remote memory directly from a local instruction stream using conventional loads and stores. In cases where network IO access (a network phase) cannot overlap a compute phase, a direct network access from the instruction stream greatly decreases latency in CPU processing. The network is treated as yet another memory that can be directly read from, or written to, by the CPU. Network access can be done directly from the instruction stream using regular loads and stores. Example scenarios where synchronous network access can be beneficial are SHMEM (symmetric hierarchical memory access) usages (where the program directly reads/writes remote memory), and scenarios where part of system memory (for example DDR) can reside over a network and made accessible by demand to different CPUs.
    Type: Application
    Filed: January 29, 2015
    Publication date: July 30, 2015
    Inventors: Shlomo Raikin, Noam Bloch, Richard Graham, Ofer Hayut, Michael Kagan, Liran Liss
  • Publication number: 20150180959
    Abstract: A network interface device includes a host interface for connection to a host processor having a memory. A network interface is configured to transmit and receive data packets over a data network, which supports multiple tenant networks overlaid on the data network. Processing circuitry is configured to receive, via the host interface, a work item submitted by a virtual machine running on the host processor, and to identify, responsively to the work item, a tenant network over which the virtual machine is authorized to communicate, wherein the work item specifies a message to be sent to a tenant destination address. The processing circuitry generates, in response to the work item, a data packet containing an encapsulation header that is associated with the tenant network, and to transmit the data packet over the data network to at least one data network address corresponding to the specified tenant destination address.
    Type: Application
    Filed: March 4, 2015
    Publication date: June 25, 2015
    Inventors: Noam Bloch, Eitan Hirshberg, Michael Kagan, Lior Narkis
  • Publication number: 20150172226
    Abstract: A method for communication includes receiving at a receiving node over a network from a sending node a succession of data packets belonging to a sequence of transactions, including at least one or more first packets belonging to a first transaction and one or more second packets belonging to a second transaction executed by the sending node after the first transaction, wherein at least one of the second packets is received at the receiving node before at least one of the first packets. At the receiving node, upon receipt of the data packets, data are written from the data packets in the succession to respective locations in a buffer. Execution of the second transaction at the receiving node is delayed until all of the first packets have been received and the first transaction has been executed at the receiving node.
    Type: Application
    Filed: December 18, 2013
    Publication date: June 18, 2015
    Applicant: Mellanox Technologies Ltd.
    Inventors: Idan Borshteen, Michael Kagan, Noam Bloch, Ariel Shachar, Hillel Chapman, Dror Bohrer, Diego Crupnicoff
  • Patent number: 9031086
    Abstract: A method for communication, includes allocating, in a network interface controller (NIC) a single dynamically-connected (DC) initiator context for serving requests from an initiator process running on the initiator host to transmit data to multiple target processes running on one or more target nodes. The NIC transmits a first connect packet directed to a first target process and referencing the DC initiator context so as to open a first dynamic connection with the first target process. The NIC receives over the packet network, in response to the first connect packet, a first acknowledgment packet containing a first session identifier (ID). Following receipt of the first acknowledgment packet, the NIC transmits one or more first data packets containing the first session ID over the first dynamic connection from the NIC to the first target process. Dynamic connections with other target processes may subsequently be handled in similar fashion.
    Type: Grant
    Filed: May 15, 2014
    Date of Patent: May 12, 2015
    Assignee: Mellanox Technologies Ltd.
    Inventors: Ariel Shachar, Michael Kagan, Noam Bloch
  • Patent number: 9008097
    Abstract: A network interface device includes a host interface for connection to a host processor having a memory. A network interface is configured to transmit and receive data packets over a data network, which supports multiple tenant networks overlaid on the data network. Processing circuitry is configured to receive, via the host interface, a work item submitted by a virtual machine running on the host processor, and to identify, responsively to the work item, a tenant network over which the virtual machine is authorized to communicate, wherein the work item specifies a message to be sent to a tenant destination address. The processing circuitry generates, in response to the work item, a data packet containing an encapsulation header that is associated with the tenant network, and to transmit the data packet over the data network to at least one data network address corresponding to the specified tenant destination address.
    Type: Grant
    Filed: December 31, 2012
    Date of Patent: April 14, 2015
    Assignee: Mellanox Technologies Ltd.
    Inventors: Noam Bloch, Eitan Hirshberg, Michael Kagan
  • Patent number: 9003418
    Abstract: A system and method for accelerating input/output (IO) access operation on a virtual machine, The method comprises providing a smart IO device that includes an unrestricted command queue (CQ) and a plurality of restricted CQs and allowing a guest domain to directly configure and control IO resources through a respective restricted CQ, the IO resources allocated to the guest domain. In preferred embodiments, the allocation of IO resources to each guest domain is performed by a privileged virtual switching element. In some embodiments, the smart IO device is a HCA and the privileged virtual switching element is a Hypervisor.
    Type: Grant
    Filed: August 28, 2013
    Date of Patent: April 7, 2015
    Assignee: Mellanox Technologies Ltd.
    Inventors: Michael Kagan, Dror Goldenberg, Benny Koren, Michael Tsirkin
  • Patent number: 8959265
    Abstract: A computer peripheral device includes a host interface, which is configured to communicate over a bus with a host processor and with a system memory of the host processor. Processing circuitry in the peripheral device is configured to receive and execute work items submitted to the peripheral device by client processes running on the host processor, and responsively to completing execution of the work items, to write completion reports to the system memory, including first completion reports of a first data size and second completion reports of a second data size, which is smaller than the first data size.
    Type: Grant
    Filed: November 21, 2012
    Date of Patent: February 17, 2015
    Assignee: Mellanox Technologies Ltd.
    Inventors: Ofer Hayut, Noam Bloch, Michael Kagan, Ariel Shachar
  • Patent number: 8949498
    Abstract: A method for computing includes running a plurality of virtual machines on a computer having one or more cores and a memory. Upon occurrence of an event pertaining to a given virtual machine during a period in which the given virtual machine is unable to receive an interrupt, an interrupt message is written to a pre-assigned interrupt address in the memory. When the given virtual machine is able to receive the interrupt, after writing of the interrupt message, a context of the given virtual machine is copied from the memory to a given core on which the given virtual machine is running, and a hardware interrupt is automatically raised on the given core responsively to the interrupt message in the memory.
    Type: Grant
    Filed: October 16, 2012
    Date of Patent: February 3, 2015
    Assignee: Mellanox Technologies Ltd.
    Inventor: Michael Kagan
  • Patent number: 8948199
    Abstract: A method for data storage includes mapping a queue pair (QP) of a channel adapter to a specified Fiber Channel (FC) exchange for communication with a storage device. Upon receiving at the channel adapter from a host computer a storage command directed to the storage device, the storage command is executed by transmitting data packets over a switched network from the channel adapter to the storage device using the specified exchange and performing a remote direct memory access (RDMA) operation on the channel adapter using the mapped QP.
    Type: Grant
    Filed: March 5, 2009
    Date of Patent: February 3, 2015
    Assignee: Mellanox Technologies Ltd.
    Inventors: Michael Kagan, Ido Bukspan, Dror Goldenberg, Itamar Rabenstein, Hillel Chapman, Ariel Shachar, Diego Crupnicoff
  • Patent number: 8949486
    Abstract: An interface device includes a first proxy interface configured to carry out first direct memory access (DMA) transactions initiated by an input/output (I/O) device and a second proxy interface configured to carry out second DMA transactions initiated by a storage drive. A buffer memory is coupled between the first and second proxy interfaces and configured to temporarily hold data transferred in the first and second DMA transactions. Control logic is configured to invoke the second DMA transactions in response to the first DMA transactions so as to cause the data to be transferred via the buffer between the I/O device and the storage drive.
    Type: Grant
    Filed: July 17, 2013
    Date of Patent: February 3, 2015
    Assignee: Mellanox Technologies Ltd.
    Inventors: Michael Kagan, Diego Crupnicoff
  • Publication number: 20150026368
    Abstract: An interface device includes a first proxy interface configured to carry out first direct memory access (DMA) transactions initiated by an input/output (I/O) device and a second proxy interface configured to carry out second DMA transactions initiated by a storage drive. A buffer memory is coupled between the first and second proxy interfaces and configured to temporarily hold data transferred in the first and second DMA transactions. Control logic is configured to invoke the second DMA transactions in response to the first DMA transactions so as to cause the data to be transferred via the buffer between the I/O device and the storage drive.
    Type: Application
    Filed: July 17, 2013
    Publication date: January 22, 2015
    Inventors: Michael Kagan, Diego Crupnicoff
  • Patent number: 8924605
    Abstract: A computer peripheral device includes a host interface, which is configured to communicate over a bus with a host processor and with a system memory of the host processor. Processing circuitry in the peripheral device is configured to receive and execute work items submitted to the peripheral device by client processes running on the host processor, and responsively to completing execution of the work items, to generate completion reports and to write a plurality of the completion reports to the system memory via the bus together in a single bus transaction.
    Type: Grant
    Filed: November 21, 2012
    Date of Patent: December 30, 2014
    Assignee: Mellanox Technologies Ltd.
    Inventors: Ofer Hayut, Noam Bloch, Michael Kagan, Ariel Shachar
  • Patent number: 8886862
    Abstract: A method for computing includes running a plurality of virtual machines on a computer having one or more cores and a memory. Respective interrupt addresses in the memory are assigned to the virtual machines. Upon occurrence on a device connected to the computer of an event pertaining to a given virtual machine during a period in which the given virtual machine is swapped out of operation, an interrupt message is written from the device to a respective interrupt address that is assigned to the given virtual machine in the memory. Upon activating the given virtual machine on a given core after writing of the interrupt message, a context of the given virtual machine is copied from the memory to the given core, and a hardware interrupt is automatically raised on the given core responsively to the interrupt message in the memory.
    Type: Grant
    Filed: August 11, 2011
    Date of Patent: November 11, 2014
    Assignee: Mellanox Technologies Ltd.
    Inventor: Michael Kagan
  • Patent number: 8867356
    Abstract: A method for communication includes sending a pause frame from a first node to a second node over a communication link between the nodes. In response to the pause frame, one or more data frames are immediately transmitted from the second node to the first node upon receipt of the pause frame at the second node.
    Type: Grant
    Filed: September 27, 2011
    Date of Patent: October 21, 2014
    Assignee: Mellanox Technologies Ltd.
    Inventors: Gil Bloch, Diego Crupnicoff, Ran Ravid, Michael Kagan, Ido Bukspan
  • Patent number: 8842671
    Abstract: A communication method in a network operating in accordance with a standard that allocates a given number of bits m for layer-2 addressing of nodes in the network. The method includes accepting at a layer-2 switch in the network an assignment to one or more nodes in the network of respective layer-2 extended addresses, each including n=m+k bits, k>0. A given data packet is received at the switch for forwarding. The given data packet includes a layer-2 destination address and a layer-3 destination address in accordance with the standard. The layer-3 destination address includes t bits, t?k. The given data packet is forwarded from the switch to one of the nodes by reading from the given data packet and combining the layer-2 destination address and k bits from the layer-3 destination address so as to reconstruct the n bits of the extended layer-2 address of the one of the nodes.
    Type: Grant
    Filed: June 7, 2011
    Date of Patent: September 23, 2014
    Assignee: Mellanox Technologies Ltd.
    Inventors: Liran Liss, Michael Kagan, Diego Crupnicoff
  • Publication number: 20140247832
    Abstract: A method for communication, includes allocating, in a network interface controller (NIC) a single dynamically-connected (DC) initiator context for serving requests from an initiator process running on the initiator host to transmit data to multiple target processes running on one or more target nodes. The NIC transmits a first connect packet directed to a first target process and referencing the DC initiator context so as to open a first dynamic connection with the first target process. The NIC receives over the packet network, in response to the first connect packet, a first acknowledgment packet containing a first session identifier (ID). Following receipt of the first acknowledgment packet, the NIC transmits one or more first data packets containing the first session ID over the first dynamic connection from the NIC to the first target process. Dynamic connections with other target processes may subsequently be handled in similar fashion.
    Type: Application
    Filed: May 15, 2014
    Publication date: September 4, 2014
    Applicant: Mellanox Technologies Ltd.
    Inventors: Ariel Shachar, Michael Kagan, Noam Bloch
  • Publication number: 20140185616
    Abstract: A network interface device includes a host interface for connection to a host processor having a memory. A network interface is configured to transmit and receive data packets over a data network, which supports multiple tenant networks overlaid on the data network. Processing circuitry is configured to receive, via the host interface, a work item submitted by a virtual machine running on the host processor, and to identify, responsively to the work item, a tenant network over which the virtual machine is authorized to communicate, wherein the work item specifies a message to be sent to a tenant destination address. The processing circuitry generates, in response to the work item, a data packet containing an encapsulation header that is associated with the tenant network, and to transmit the data packet over the data network to at least one data network address corresponding to the specified tenant destination address.
    Type: Application
    Filed: December 31, 2012
    Publication date: July 3, 2014
    Applicant: MELLANOX TECHNOLOGIES LTD.
    Inventors: Noam Bloch, Eitan Hirshberg, Michael Kagan
  • Publication number: 20140185615
    Abstract: A method for communication in a packet data network including a subnet containing multiple nodes having respective ports. The method includes assigning respective local identifiers to the ports in the subnet, such that each port receives a respective local identifier that is unique within the subnet to serve as an address for traffic within the subnet that is directed to the port. In addition to the local identifiers, respective port identifiers are assigned to the ports, such that at least one of the port identifiers is shared by a plurality of the ports, but not by all the ports, in the subnet. The plurality of the ports are addressed collectively using the at least one of the port identifiers.
    Type: Application
    Filed: December 30, 2012
    Publication date: July 3, 2014
    Applicant: MELLANOX TECHNOLOGIES LTD.
    Inventors: Ali Ayoub, Diego Crupnicoff, Dror Goldenberg, Michael Kagan, Oded Wertheim, Yaron Haviv
  • Patent number: 8761189
    Abstract: A method for communication, includes allocating, in a network interface controller (NIC) a single dynamically-connected (DC) initiator context for serving requests from an initiator process running on the initiator host to transmit data to multiple target processes running on one or more target nodes. The NIC transmits a first connect packet directed to a first target process and referencing the DC initiator context so as to open a first dynamic connection with the first target process. The NIC receives over the packet network, in response to the first connect packet, a first acknowledgment packet containing a first session identifier (ID). Following receipt of the first acknowledgment packet, the NIC transmits one or more first data packets containing the first session ID over the first dynamic connection from the NIC to the first target process. Dynamic connections with other target processes may subsequently be handled in similar fashion.
    Type: Grant
    Filed: June 28, 2012
    Date of Patent: June 24, 2014
    Assignee: Mellanox Technologies Ltd.
    Inventors: Ariel Shachar, Michael Kagan, Noam Bloch