Patents Assigned to NextIO Inc.
  • Patent number: 8346884
    Abstract: A shared network interface controller (NIC) interfaces a plurality of operating system domains as part of the load-store architecture of the operating system domains. A bus interface couples the NIC to a load-store domain bus (such as PCI-Express), using header information to associate data on the bus with an originating operating system domain. Transmit/receive logic connects the NIC to the network. Association logic allows the NIC to designate, and later lookup, which destination MAC address (on the Ethernet side) is associated with which operating system domain. Descriptor register files and Control Status Registers (CSR's) specific to an operating system domain are duplicated and made available for each domain. Several direct memory access (DMA) engines are provided to improve throughput. Packet replication logic, filters (perfect and hash) and VLAN tables are used for looping back packets originating from one operating system domains to another and other operations.
    Type: Grant
    Filed: July 30, 2004
    Date of Patent: January 1, 2013
    Assignee: Nextio Inc.
    Inventor: Christopher J. Pettey
  • Publication number: 20120250689
    Abstract: A shared network interface controller (NIC) interfaces a plurality of operating system domains as part of the load-store architecture of the operating system domains. A bus interface couples the NIC to a load-store domain bus (such as PCI-Express), using header information to associate data on the bus with an originating operating system domain. Transmit/receive logic connects the NIC to the network. Association logic allows the NIC to designate, and later lookup which destination MAC address (on the Ethernet side) is associated with which operating system domain. Descriptor register files and Control Status Registers (CSR's) specific to an operating system domain are duplicated and made available for each domain. Several direct memory access (DMA) engines are provided to improve throughput. Packet replication logic, filters (perfect and hash) and VLAN tables are used for looping back packets originating from one operating system domain to another and other operations.
    Type: Application
    Filed: May 9, 2012
    Publication date: October 4, 2012
    Applicant: NEXTIO INC.
    Inventor: Christopher J. Pettey
  • Publication number: 20120221705
    Abstract: A shared network interface controller (NIC) interfaces a plurality of operating system domains as part of the load-store architecture of the operating system domains. A bus interface couples the NIC to a load-store domain bus (such as PCI-Express), using header information to associate data on the bus with an originating operating system domain. Transmit/receive logic connects the NIC to the network. Association logic allows the NIC to designate, and later lookup which destination MAC address (on the Ethernet side) is associated with which operating system domain. Descriptor register files and Control Status Registers (CSR's) specific to an operating system domain are duplicated and made available for each domain. Several direct memory access (DMA) engines are provided to improve throughput. Packet replication logic, filters (perfect and hash) and VLAN tables are used for looping back packets originating from one operating system domain to another and other operations.
    Type: Application
    Filed: May 9, 2012
    Publication date: August 30, 2012
    Applicant: NEXTIO INC.
    Inventor: Christopher J. Pettey
  • Publication number: 20120218905
    Abstract: A shared network interface controller (NIC) interfaces a plurality of operating system domains as part of the load-store architecture of the operating system domains. A bus interface couples the NIC to a load-store domain bus (such as PCI-Express), using header information to associate data on the bus with an originating operating system domain. Transmit/receive logic connects the NIC to the network. Association logic allows the NIC to designate, and later lookup which destination MAC address (on the Ethernet side) is associated with which operating system domain. Descriptor register files and Control Status Registers (CSR's) specific to an operating system domain are duplicated and made available for each domain. Several direct memory access (DMA) engines are provided to improve throughput. Packet replication logic, filters (perfect and hash) and VLAN tables are used for looping back packets originating from one operating system domain to another and other operations.
    Type: Application
    Filed: May 9, 2012
    Publication date: August 30, 2012
    Applicant: NEXTIO INC.
    Inventor: Christopher J. Pettey
  • Patent number: 8032659
    Abstract: A network interface controller is provided which is shareable by a plurality of operating system domains (OSDs) within their load-store architecture. The controller includes local resources for corresponding to the OSDs, and global resources corresponding to both the OSDs and a network fabric. A method and apparatus is provided for distinguishing between the local and global resources, for purposes of reset and configuration. The controller allows a reset of only those local resources which are associated with the OSD transmitting the reset. Registration logic allows one of the OSDs to register as master, for configuration and reset of global resources.
    Type: Grant
    Filed: February 3, 2005
    Date of Patent: October 4, 2011
    Assignee: NextIO Inc.
    Inventor: Christopher J. Pettey
  • Patent number: 7782893
    Abstract: An apparatus and method is provided for allowing I/O devices to be shared and/or partitioned among a plurality of processing complexes within the load/store fabric of each of the processing complexes without requiring modification to the operating system or driver software of the processing complexes. The apparatus and method includes a switch for selectively coupling each of the processing complexes to one or more shared I/O devices. The apparatus and method further includes placing information within packets transmitted between the switch and the I/O devices to identify which of the processing complexes the packets are associated with. The invention further includes an apparatus and method within the shared I/O devices to allow the shared I/O devices to service each of the processing complexes independently.
    Type: Grant
    Filed: May 4, 2006
    Date of Patent: August 24, 2010
    Assignee: NextIO Inc.
    Inventors: Christopher J Pettey, Asif Khan, Annette Pagan, Richard E Pekkala, Robert H Utley
  • Patent number: 7706372
    Abstract: An apparatus and method is provided for allowing I/O devices to be shared and/or partitioned among a plurality of processing complexes within the load/store fabric of each of the processing complexes without requiring modification to the operating system or driver software of the processing complexes. The apparatus and method includes a switch for selectively coupling each of the processing complexes to one or more shared I/O devices. The apparatus and method further includes placing information within packets transmitted between the switch and the I/O devices to identify which of the processing complexes the packets are associated with. The invention further includes an apparatus and method within the shared I/O devices to allow the shared I/O devices to service each of the processing complexes independently.
    Type: Grant
    Filed: April 19, 2006
    Date of Patent: April 27, 2010
    Assignee: NextIO Inc.
    Inventors: Christopher J. Pettey, Asif Khan, Annette Pagan, Richard E. Pekkala, Robert Haskell Utley
  • Patent number: 7698483
    Abstract: An apparatus has a first plurality of I/O ports, a second I/O port, and link training logic. The first plurality is coupled to a plurality of operating system domains through a load-store fabric. Each of the first plurality is configured to route transactions between the plurality of operating system domains and the switching apparatus. The second I/O port is coupled to a first shared input/output endpoint. The first shared input/output endpoint is configured to request/complete the transactions for each of the plurality of operating system domains. The link training logic is coupled to the second I/O port. The link training logic initializes a link between the second I/O port and the first shared input/output endpoint to support the transactions corresponding to the each of the plurality of operating system domains. The link is initialized in a manner that is transparent to the plurality of operating system domains.
    Type: Grant
    Filed: October 25, 2004
    Date of Patent: April 13, 2010
    Assignee: NextIO, Inc.
    Inventors: Christopher J. Pettey, Asif Khan, Annette Pagan, Richard E. Pekkala, Robert Haskell Utley
  • Patent number: 7664909
    Abstract: An apparatus and method is provided for allowing one or more processing complexes to share a disk controller, particularly a serial ATA (SATA) controller. Each processing complex utilizes its own load-store domain to couple to the shared SATA controller, either directly, or indirectly through a shared I/O switch. Ultimately, requests from the processing complexes are presented to the switch with operating system domain header (OSD header) information so that the shared SATA controller can determine which request came from which processing complex, and allocate resources accordingly. Upstream responses from the shared SATA controller include the OSD header so that the shared I/O switch can accurately route the responses to their respective processing complexes.
    Type: Grant
    Filed: June 9, 2004
    Date of Patent: February 16, 2010
    Assignee: Nextio, Inc.
    Inventor: Christopher J. Pettey
  • Patent number: 7620064
    Abstract: An apparatus and method is provided for allowing I/O devices to be shared and/or partitioned among a plurality of processing complexes within the load/store fabric of each of the processing complexes without requiring modification to the operating system or driver software of the processing complexes. The apparatus and method includes a switch for selectively coupling each of the processing complexes to one or more shared I/O devices. The apparatus and method further includes placing information within packets transmitted between the switch and the I/O devices to identify which of the processing complexes the packets are associated with. The invention further includes an apparatus and method within the shared I/O devices to allow the shared I/O devices to service each of the processing complexes independently.
    Type: Grant
    Filed: September 26, 2005
    Date of Patent: November 17, 2009
    Assignee: NextIO Inc.
    Inventors: Christopher J. Pettey, Asif Khan, Annette Pagan, Richard E. Pekkala, Robert Haskell Utley
  • Patent number: 7620066
    Abstract: An apparatus and method is provided for allowing I/O devices to be shared and/or partitioned among a plurality of processing complexes within the load/store fabric of each of the processing complexes without requiring modification to the operating system or driver software of the processing complexes. The apparatus and method includes a switch for selectively coupling each of the processing complexes to one or more shared I/O devices. The apparatus and method further includes placing information within packets transmitted between the switch and the I/O devices to identify which of the processing complexes the packets are associated with. The invention further includes an apparatus and method within the shared I/O devices to allow the shared I/O devices to service each of the processing complexes independently.
    Type: Grant
    Filed: September 26, 2005
    Date of Patent: November 17, 2009
    Assignee: NextIO Inc.
    Inventors: Christopher J. Pettey, Asif Khan, Annette Pagan, Richard E. Pekkala, Robert Haskell Utley
  • Patent number: 7617333
    Abstract: A Fibre Channel (FC) controller shareable by a plurality of operating system domains (OSDs) within a load-store architecture is disclosed. The controller has a FC port that obtains a plurality of FC port identifiers for association with respective ones of the OSDs. A load-store bus interface is the target of a load-store transaction on a load-store bus from each OSD. The load-store transaction includes a command to perform an I/O operation with a remote FC device. Association logic populates an S_ID field of a FC frame with the FC port identifier associated with the respective OSD that initiated the command. The FC port transmits the FC frame on the FC port to the remote FC device. In one embodiment, the controller interfaces to an Advanced Switching fabric to receive packets encapsulating load-store transactions from the OSDs. Each packet includes an identifier identifying the OSD initiating the transaction.
    Type: Grant
    Filed: January 27, 2005
    Date of Patent: November 10, 2009
    Assignee: NextIO Inc.
    Inventor: Christopher J. Pettey
  • Patent number: 7512717
    Abstract: A Fiber Channel (FC) controller shareable by a plurality of operating system domains (OSDs) within a load-store architecture is disclosed. The controller includes a plurality of control/status register (CSR) banks. A respective one of the CSR banks is used by each OSD to request the controller to perform I/O operations with remote FC devices. A load-store bus interface receives from a load-store bus load and store transactions from each OSD. Each transaction includes an OSD identifier identifying the OSD that initiated the transaction. The bus interface directs the transactions to the respective CSR bank based on the OSD identifier. A FC port obtains a distinct FC port identifier for each OSD and transceives FC frames with the remote FC devices using the distinct FC port identifier for each OSD in response to the I/O operation requests. In one embodiment, the controller includes a shared I/O switch coupling the OSDs thereto.
    Type: Grant
    Filed: January 27, 2005
    Date of Patent: March 31, 2009
    Assignee: Nextio Inc.
    Inventor: Christopher J. Pettey
  • Patent number: 7502370
    Abstract: A controller shareable by a plurality of operating system domains (OSDs) for communication on a network is disclosed. The controller includes a port for coupling to the network. The port transceives packets with the network for each of the plurality of OSDs. The controller also includes a plurality of replicated programming interfaces that each receive from a respective one of the plurality of OSDs a request to obtain a port ID for the port from the network. The controller obtains from the network a distinct port ID for each of the plurality of OSDs in response to the respective request. The request comprises one or more load-store transactions. In one embodiment, the controller is a shared Fiber Channel controller.
    Type: Grant
    Filed: January 27, 2005
    Date of Patent: March 10, 2009
    Assignee: Nextio Inc.
    Inventor: Christopher J. Pettey
  • Patent number: 7493416
    Abstract: A Fibre Channel controller shareable by a plurality of operating system domains (OSDs) is disclosed. The controller includes a programming interface, located within a system load-store memory map of each OSD by which the OSDs request the controller to perform I/O operations with remote FC devices. The programming interface includes a distinct control/status register (CSR) bank for each of OSD. The OSDs execute load-store instructions addressed to the programming interface to request the I/O operations. Selection logic selects as a target of each of the load-store transactions the distinct CSR bank for the OSD that executed the corresponding load-store instruction. An FC port obtains a distinct FC port identifier for each OSD and transceives FC frames with the remote FC devices using the distinct FC port identifier for each OSD in response to the I/O operation requests. In one embodiment, multiple blade servers share the controller via a shared I/O switch.
    Type: Grant
    Filed: January 27, 2005
    Date of Patent: February 17, 2009
    Assignee: NextIO Inc.
    Inventor: Christopher J. Pettey
  • Patent number: 7457906
    Abstract: An apparatus and method is provided for allowing I/O devices to be shared and/or partitioned among a plurality of processing complexes within the load/store fabric of each of the processing complexes without requiring modification to the operating system or driver software of the processing complexes. The apparatus and method includes a switch for selectively coupling each of the processing complexes to one or more shared I/O devices. The apparatus and method further includes placing information within packets transmitted between the switch and the I/O devices to identify which of the processing complexes the packets are associated with. The invention further includes an apparatus and method within the shared I/O devices to allow the shared I/O devices to service each of the processing complexes independently.
    Type: Grant
    Filed: January 14, 2004
    Date of Patent: November 25, 2008
    Assignee: NextIO, Inc.
    Inventors: Christopher J. Pettey, Asif Khan, Annette Pagan, Richard E. Pekkala, Robert Haskell Utley
  • Publication number: 20080288664
    Abstract: An apparatus and method are provided that enable I/O devices to be shared among multiple operating system domains. The apparatus has a first plurality of I/O ports, a second I/O port, and link training logic. The first plurality of I/O ports is coupled to a plurality of operating system domains through a load-store fabric. Each of the first plurality of I/O ports is configured to route transactions between the plurality of operating system domains and the switching apparatus. The second I/O port is coupled to a first shared input/output endpoint. The first shared input/output endpoint is configured to request/complete the transactions for each of the plurality of operating system domains. The link training logic is coupled to the second I/O port. The link training logic initializes a link between the second I/O port and the first shared input/output endpoint to support the transactions corresponding to the each of the plurality of operating system domains.
    Type: Application
    Filed: May 25, 2008
    Publication date: November 20, 2008
    Applicant: NEXTIO INC.
    Inventors: Christopher J. Pettey, Asif Khan, Annette Pagan, Richard E. Pekkala, Robert Haskell Utley
  • Publication number: 20070208898
    Abstract: A computer system includes compute nodes coupled through a switch to shared or non-shared I/O devices. The switch includes a pool of bridge headers and virtual bridges coupling a root port of a compute node to each of one or more shared or non-shared I/O devices. The switch is configured to associate each of the virtual bridges with a respective one of the fixed pool of bridge headers, receive a packet including data identifying the root port and a shared or non-shared I/O device, and route the packet in response to comparing data in the packet to data in the bridge headers associated with the virtual bridges. The virtual bridges comprise a hierarchy of virtual bridges in which one virtual bridge connects the root port to the remaining virtual bridges of the hierarchy. The switch may change the associations between virtual bridges and bridge headers.
    Type: Application
    Filed: February 28, 2007
    Publication date: September 6, 2007
    Applicant: NextIO Inc.
    Inventors: Christopher Pettey, Stephen Glaser
  • Patent number: 7219183
    Abstract: An apparatus and method for sharing I/O devices. The apparatus has a first plurality of I/O ports, a second I/O port, and core logic. The first plurality is coupled to a plurality of operating system domains through a load-store fabric. Each of the first plurality routes transactions between the operating system domains and the switching apparatus. The second I/O port is coupled to a first shared input/output endpoint. The first shared input/output endpoint requests/completes transactions for each of the plurality of operating system domains. The core logic is coupled to the first plurality of I/O ports and the second I/O port. The core logic routes the transactions between the first plurality of I/O ports and the second I/O port and associates each of the transactions with a corresponding one of the plurality of operating system domains (OSDs) by encapsulating an OS domain header within a transaction layer packet.
    Type: Grant
    Filed: April 19, 2004
    Date of Patent: May 15, 2007
    Assignee: Nextio, Inc.
    Inventors: Christopher J. Pettey, Asif Khan, Annette Pagan, Richard E. Pekkala, Robert Haskell Utley
  • Patent number: 7188209
    Abstract: An apparatus having a first plurality of I/O ports, a second I/O port, and core logic. The first plurality of I/O ports is coupled to a plurality of operating system domains (OSDs) through a load-store fabric, each routing transactions between the plurality of OSDs and the switching apparatus. The second I/O port is coupled to a first shared input/output endpoint. The first shared input/output endpoint requests/completes the transactions for each of the plurality of OSDs. The core logic is coupled to the first plurality of I/O ports and the second I/O port. The core logic routes the transactions between the first plurality of I/O ports and the second I/O port. The core logic designates a corresponding one of the plurality of OSDs according to a variant of a protocol, where the protocol provides for routing of the transactions only for a single OSD.
    Type: Grant
    Filed: April 19, 2004
    Date of Patent: March 6, 2007
    Assignee: Nextio, Inc.
    Inventors: Christopher J. Pettey, Asif Khan, Annette Pagan, Richard E. Pekkala, Robert Haskell Utley