US20140032795A1 - Input/output processing - Google Patents

Input/output processing Download PDF

Info

Publication number
US20140032795A1
US20140032795A1 US14/009,761 US201114009761A US2014032795A1 US 20140032795 A1 US20140032795 A1 US 20140032795A1 US 201114009761 A US201114009761 A US 201114009761A US 2014032795 A1 US2014032795 A1 US 2014032795A1
Authority
US
United States
Prior art keywords
data
data flow
lower device
flow identifier
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/009,761
Other languages
English (en)
Inventor
Michael R. Krause
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Assigned to HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. reassignment HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KRAUSE, MICHAEL R.
Publication of US20140032795A1 publication Critical patent/US20140032795A1/en
Assigned to HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP reassignment HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2066Optimisation of the communication load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache

Definitions

  • I/O protocols generally involve a large overhead of control commands associated with the information transmitted between the host and the peripheral device. For example, processing one Ethernet frame may involve 5 to 10 PCI transactions, which may result in a high degree of latency as well as inefficient use of the PCI bus or link.
  • the techniques used to improve latency and efficiency often introduce added degrees of complexity in an I/O transaction.
  • the peripheral device can improperly access the host memory and cause silent data corruption, which is data corruption that goes undetected possibly resulting in system instability. Accordingly, various memory protection protocols are followed to reduce the likelihood that a peripheral device will access memory not allocated to it.
  • the memory protection protocols add yet another level of complexity to the I/O processes.
  • FIG. 6 is a process flow diagram of an example of an inbound write operation, in accordance with an embodiment
  • FIG. 10 is a process flow diagram of a method of conducting a storage write, in accordance with an embodiment
  • the I/O processing system may include a processor-integrated upper I/O device, referred to herein as the “upper device,” and a lower I/O device, referred to herein as the “lower device.”
  • the upper device handles host resource management and error processing through a set of logic that is common to all I/O devices. Further, work queues, completion queues, data management structures, error handling structures, and other state information structures provisioned by the device driver are stored in resources associated with or integrated into the upper device.
  • the processor 102 may be configured with a coherency protocol that manages the consistency of data stored in the various memory resources available to the processor, such as the caches 116 and the main memory 114 .
  • the coherency protocol is used to notify all processes running in the coherency protocol of changes to shared values.
  • the upper device 106 operates in the coherency domain of the processor 102 , meaning that the upper device 106 is notified with regard to memory changes and provides notification to the other processors regarding memory accessed by the upper device 106 .
  • the I/O system 100 does not include a PCIe Root Complex or the associated Root ports associated with traditional PCIe local I/O systems.
  • the upper device 106 can control the flow of data between the memory resources associated with the processor 102 and the lower devices 104 .
  • the upper device 106 may be integrated with the processor 102 or may be included in the system 100 as a discrete I/O device operatively coupled to the processor 102 .
  • a processor 102 may have a plurality of upper devices 106 , for example, hundreds or thousands of upper devices 106 .
  • the upper device 106 may be integrated into the same circuit package or silicon chip as the processor 102 .
  • the upper device 106 may include a variety data flow resources such as data and control buffers, which reside in reserved registers of main memory 114 , upper-device integrated memory, processor-integrated memory such as cache 116 , discrete memory associated with the upper device 106 , or some combination thereof.
  • the data flow resources of the upper device 106 can include one or more transmit/receive queues 118 .
  • Each transmit/receive queue 118 can include a work queue 120 , receive queue 122 , and completion queue 124 used to process the various I/O operations received from or sent to the lower device 104 .
  • I/O operations can include configuration operations, status operations, error handling and notification, memory reads, and memory writes, among others.
  • the upper device 106 includes an I/O memory management unit (IOMMU) 130 used to identify physical memory address associated with memory read and write operations.
  • IOMMU 130 can also be used to validate memory access operations to ensure that a particular process attempting to access memory has the appropriate access rights for the memory address or addresses targeted by the process.
  • the IOMMU 130 can include a translation agent 132 and translation cache 134 .
  • the translation agent 132 may be configured to identify a physical memory address for memory read or write operations.
  • the translation cache 134 may be used to store memory address translations for more frequently used memory locations.
  • Each packet pushed from the lower device 104 to the upper device 106 or pushed from the upper device 104 to the lower device 106 will include one or more data flow identifiers, which are used to identify the targeted resources.
  • the lower device 104 does not operate in the coherency domain of the system 100 , meaning that it does not have knowledge of physical memory address and does not receive direct notification with regard to memory or processor cache control and update operations.
  • the data flow lookup table 154 may be a filter table, which associates each internal or external resource with a unique data flow identifier.
  • the data flow lookup table 154 may be populated, for example, by a device driver running on the processor 102 .
  • the device driver that populates the data flow lookup table 154 may be a general purpose device driver or a dedicated device driver associated with the specific device.
  • the data flow lookup table 154 may be used by the lower device 104 to target a specific resource of the upper device 106 when receiving data from or pushing data to the upper device 106 .
  • the specific configuration of the data flow lookup table 154 may vary depending on the particular implementation.
  • This parsed data may then be applied to the data flow lookup table 154 to identify a corresponding data flow identifier used for transferring the data to the upper device 106 .
  • Ethernet-based communications received by the lower device 104 from the upper device 106 may also include the same data flow identifier.
  • the lower device 104 may then use the data flow identifier to identify the corresponding fields used to generate an Ethernet frame to be transmitted to the external device.
  • the GPU-based lower device 104 may be shared by multiple virtual machines. Each virtual machine may be represented by a specific data flow identifier that allows the virtualization software to comprehend which set of upper devices 106 and lower resources 104 are being used by a given virtual machine. This may enable solutions to optimize the operations and improve scaling.
  • the receive queue element includes a data structure with a set of virtual memory addresses.
  • the upper device 106 can access the receive queue element and determine what portion of the packet corresponds with the different virtual address ranges.
  • the upper device 106 determines the real physical addresses and places or copies the data to these locations, which may or may not be contiguous.
  • the receive queue may contain an address where the network headers are to be written and an address where the data payload is to be written. The network headers are consumed by a network stack while the data payload may be directly placed in the application's memory, thus providing real copy avoidance.
  • the upper device 106 When the upper device 106 detects this flag, it targets the destination VM's resources, translates the destination buffers via the IOMMU 130 , and performs the appropriate data movement.
  • vSwitch software virtual switch
  • VB device-integrated Virtual Ethernet Bridge
  • the upper device 106 can also include a data cache 202 that holds data to be transmitted to or received from the lower device 104 .
  • the data cache 202 may be continuously updated to or from caches of the processor cores 108 , the memory controller 110 , or the main memory 110 through the coherency interface 200 . Furthermore, some processing related to the moving of packets, such as packet header manipulations, may be performed on the data stored to the data cache.
  • the upper device 106 also includes transmit/receive work queues 118 , which contain work requests initiated by a read or write request from the lower device 104 or a request from a processor core 108 to push data to the lower device 104 , for example. Each of the transmit/receive work queues 118 may be associated with a different data flow identifier.
  • the lower device 104 may implement one or more packet interfaces 300 .
  • Each packet interface 300 may communicate with one or more upper devices 106 through either point-to-point, bus-based, or switch-based fabrics.
  • the lower device 106 may communicate through two or more of the packet interfaces 300 to a given upper device 106 , which also supports two or more packet interfaces 208 .
  • the packet interfaces 300 / 208 may be configured as active-active, wherein all packet interfaces 300 / 208 are used to transmit and receive packets between the devices at the same time.
  • the packet interfaces 300 / 208 may also be configured as active-passive where one set of packet interfaces is active and the others are treated as stand by.
  • the I/O packet may include any suitable combination of fields, which may be used to identify the next steps to be taken by the upper device 106 or the lower device 104 to process the data.
  • the I/O packet 400 can include a destination data flow identifier 406 and a source data flow identifier 408 .
  • the upper device 106 and the lower device 104 may determine the destination of the payload data pushed to it using the destination data flow identifier 406 alone or in combination with the source data flow identifier 408 .
  • the source data flow identifier 408 may be useful when an upper device 106 is coupled to two or more lower devices 104 .
  • FIG. 6 is a process flow diagram of an example of an inbound write operation, in accordance with embodiments.
  • the inbound write operation is referred to by the reference number 600 .
  • an inbound write operation 600 may be initiated by the lower device 104 .
  • an inbound write operation 600 may be initiated by a process running on the lower device 104 or an event such as receipt of a packet by the lower device 104 from an external device.
  • the lower device 104 acquires a data flow identifier corresponding to the inbound write.
  • the upper device 106 Upon receipt of the data packets, the upper device 106 parses the I/O packet header to identify the corresponding data flow resources of the upper device 106 , based on the data flow identifiers contained in the packet header. For example, the flow identifier may be used to identify a receive queue corresponding to the inbound write. In embodiments, the receive queue includes a virtual memory address or lookup address associated with the write operation. As indicated by arrow 606 , the upper device 106 may then send an access control request and an address translation request to the IOMMU 130 using the corresponding virtual memory address or lookup address. The IOMMU 130 identifies a physical memory address corresponding to the operation and determines whether the requesting process has access rights to the corresponding memory address.
  • software may separately store the configuration information for the upper device 106 and the lower device 104 to memory 114 or 116 , including any subsequent updates should something change over time.
  • the memory may be, for example, a processor integrated memory or cache, discrete memory or cache, or upper device-integrated memory or cache.
  • an Ethernet device driver may be invoked.
  • resources of the upper device 106 may be allocated to the device driver, which programs the allocated resources with the appropriate memory gather list and any device-specific control information, including one or more data flow identifiers.
  • the lower device 104 may contain resource sets for one or more MAC addresses, and each data flow identifier constructed during the configuration process may identify one of these MAC resource sets.
  • the data flow resource may be configured with the source and destination MAC addresses to use as well as all of the information needed to construct an Ethernet frame.
  • the upper device 106 validates access rights, gathers the payload data and control information into a single packet, and pushes the packet to the lower device 104 . Data transfers that exceed a single local communication packet size can be segmented into multiple packets.
  • the upper device 106 updates the completion queue when it completes the last packet pushed to the lower device 104 .
  • FIG. 9 is a process flow diagram of a method of processing an inbound Ethernet frame, in accordance with embodiments.
  • the method is referred to by reference number 900 .
  • the processes described in blocks 902 - 906 may be performed by the lower device 104 and the processed described in blocks 908 - 914 may be performed by the upper device 106 .
  • the lower device 104 is an Ethernet-based communications device, such as a network interface card.
  • the upper device 106 sends the payload data to the coherency packet interface 200 and updates the corresponding completion queues. Unlike traditional PCI communications, the lower device 104 does not track any of the host resources.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
US14/009,761 2011-04-13 2011-04-13 Input/output processing Abandoned US20140032795A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/032307 WO2012141694A1 (fr) 2011-04-13 2011-04-13 Traitement de données d'entrée/de sortie

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/032307 A-371-Of-International WO2012141694A1 (fr) 2011-04-13 2011-04-13 Traitement de données d'entrée/de sortie

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/229,908 Continuation US9864717B2 (en) 2011-04-13 2016-08-05 Input/output processing

Publications (1)

Publication Number Publication Date
US20140032795A1 true US20140032795A1 (en) 2014-01-30

Family

ID=47009603

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/009,761 Abandoned US20140032795A1 (en) 2011-04-13 2011-04-13 Input/output processing
US15/229,908 Active US9864717B2 (en) 2011-04-13 2016-08-05 Input/output processing

Family Applications After (1)

Application Number Title Priority Date Filing Date
US15/229,908 Active US9864717B2 (en) 2011-04-13 2016-08-05 Input/output processing

Country Status (2)

Country Link
US (2) US20140032795A1 (fr)
WO (1) WO2012141694A1 (fr)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130275967A1 (en) * 2012-04-12 2013-10-17 Nathan Jenne Dynamic provisioning of virtual systems
US20160127494A1 (en) * 2014-10-30 2016-05-05 ScaleFlux Remote direct non-volatile cache access
US20200322287A1 (en) * 2020-06-18 2020-10-08 Intel Corporation Switch-managed resource allocation and software execution

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130318268A1 (en) 2012-05-22 2013-11-28 Xockets IP, LLC Offloading of computation for rack level servers and corresponding methods and systems
WO2013177313A2 (fr) 2012-05-22 2013-11-28 Xockets IP, LLC Traitement de données structurées et non structurées au moyen de processeurs de délestage
EP2946296A4 (fr) 2013-01-17 2016-11-16 Xockets Ip Llc Modules processeurs de délestage pour connexion à une mémoire système
US9378161B1 (en) 2013-01-17 2016-06-28 Xockets, Inc. Full bandwidth packet handling with server systems including offload processors
US10705925B2 (en) * 2017-03-24 2020-07-07 Hewlett Packard Enterprise Development Lp Satisfying recovery service level agreements (SLAs)
US10547491B2 (en) * 2017-08-28 2020-01-28 Genband Us Llc Transcoding with a vector processing unit

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3541541A (en) * 1967-06-21 1970-11-17 Stanford Research Inst X-y position indicator for a display system
US20030047604A1 (en) * 1997-10-16 2003-03-13 Mcclure Neil Electronic voting system
US20060251109A1 (en) * 2005-04-05 2006-11-09 Shimon Muller Network system
US20070057918A1 (en) * 2005-09-14 2007-03-15 Yu-Bin Zhou Mouse with extensible PS/2 mouse buttons
US20090003202A1 (en) * 2007-06-29 2009-01-01 Polk James M Method and apparatus for domain and subdomain establishment for preemption
US20140025859A1 (en) * 2011-04-13 2014-01-23 Michael R. Krause Input/output processing
US20140032796A1 (en) * 2011-04-13 2014-01-30 Michael R. Krause Input/output processing
US8682775B2 (en) * 2004-10-18 2014-03-25 Trading Technologies International, Inc. Flexible system and method for electronic trading

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328989A (ja) 1995-05-30 1996-12-13 Toshiba Corp 入出力制御装置の管理方式
US6047323A (en) 1995-10-19 2000-04-04 Hewlett-Packard Company Creation and migration of distributed streams in clusters of networked computers
US6098112A (en) 1995-10-19 2000-08-01 Hewlett-Packard Company Streams function registering
US5960212A (en) 1996-04-03 1999-09-28 Telefonaktiebolaget Lm Ericsson (Publ) Universal input/output controller having a unique coprocessor architecture
EP1018074A4 (fr) 1997-03-13 2002-02-06 Mark M Whitney Systeme et procede de transfert de transactions sur reseau, depuis un processeur central jusqu'a un dispositif d'entree/sortie intelligent, comprenant le transfert de fonctions de files d'attente de messages
US6052749A (en) 1997-11-14 2000-04-18 Compaq Computer Corporation System for forming an intelligent I/O (I2 O)-aware device by connecting both a peripheral control connector having an I/O processor mounted and non-I2 O device to same bus
US6154789A (en) 1998-06-15 2000-11-28 Compaq Computer Corporation Peripheral controller comprising first messaging unit for communication with first OS driver and second messaging unit for communication with second OS driver for mass-storage peripheral
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6321279B1 (en) 1998-09-14 2001-11-20 Compaq Computer Corporation System for implementing intelligent I/O processing in a multi-processor system by redirecting I/O messages to a target central processor selected from the multi-processor system
US7318102B1 (en) 1999-05-24 2008-01-08 Hewlett-Packard Development Company, L.P. Reliable datagram
WO2000072158A1 (fr) 1999-05-24 2000-11-30 Hewlett-Packard Company Service de multidiffusion fiable
US7016971B1 (en) 1999-05-24 2006-03-21 Hewlett-Packard Company Congestion management in a distributed computer system multiplying current variable injection rate with a constant to set new variable injection rate at source node
US6708244B2 (en) 1999-07-22 2004-03-16 Cypress Semiconductor Corp. Optimized I2O messaging unit
US6718392B1 (en) 2000-10-24 2004-04-06 Hewlett-Packard Development Company, L.P. Queue pair partitioning in distributed computer system
US7043585B2 (en) 2002-03-13 2006-05-09 Sun Microsystems, Inc. Flexible system architecture with common interface for multiple system functions
US7103744B2 (en) 2003-03-27 2006-09-05 Hewlett-Packard Development Company, L.P. Binding a memory window to a queue pair
US7757232B2 (en) 2003-08-14 2010-07-13 Hewlett-Packard Development Company, L.P. Method and apparatus for implementing work request lists
US7404190B2 (en) 2003-09-18 2008-07-22 Hewlett-Packard Development Company, L.P. Method and apparatus for providing notification via multiple completion queue handlers
US7496713B1 (en) * 2004-07-21 2009-02-24 Sun Microsystems, Inc. Method and apparatus for maintaining cache coherency in a memory system with shared only cache memories
US7650386B2 (en) 2004-07-29 2010-01-19 Hewlett-Packard Development Company, L.P. Communication among partitioned devices
US20060194386A1 (en) 2005-02-25 2006-08-31 Dell Products L.P. Method and apparatus for supporting port aggregation of serial attached SCSI wide ports via virtual ports
US7415034B2 (en) 2005-04-04 2008-08-19 Sun Microsystems, Inc. Virtualized partitionable shared network interface
US7664127B1 (en) * 2005-04-05 2010-02-16 Sun Microsystems, Inc. Method for resolving mutex contention in a network system
US7487327B1 (en) * 2005-06-01 2009-02-03 Sun Microsystems, Inc. Processor and method for device-specific memory address translation
US7451293B2 (en) 2005-10-21 2008-11-11 Brightscale Inc. Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing
US7586842B2 (en) 2006-05-19 2009-09-08 Hewlett-Packard Development Company, L.P. Failover of multicast traffic flows using NIC teaming
US7904692B2 (en) 2007-11-01 2011-03-08 Shrijeet Mukherjee Iommu with translation request management and methods for managing translation requests
US8266386B2 (en) 2007-10-30 2012-09-11 International Business Machines Corporation Structure for maintaining memory data integrity in a processor integrated circuit using cache coherency protocols
US7760736B2 (en) 2008-02-25 2010-07-20 International Business Machines Corporation Method, system, and computer program product for ethernet virtualization using an elastic FIFO memory to facilitate flow of broadcast traffic to virtual hosts
US8228929B2 (en) 2008-10-24 2012-07-24 Juniper Networks, Inc. Flow consistent dynamic load balancing
GB0823162D0 (en) 2008-12-18 2009-01-28 Solarflare Communications Inc Virtualised Interface Functions
US8386747B2 (en) * 2009-06-11 2013-02-26 Freescale Semiconductor, Inc. Processor and method for dynamic and selective alteration of address translation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3541541A (en) * 1967-06-21 1970-11-17 Stanford Research Inst X-y position indicator for a display system
US20030047604A1 (en) * 1997-10-16 2003-03-13 Mcclure Neil Electronic voting system
US8682775B2 (en) * 2004-10-18 2014-03-25 Trading Technologies International, Inc. Flexible system and method for electronic trading
US20060251109A1 (en) * 2005-04-05 2006-11-09 Shimon Muller Network system
US20070057918A1 (en) * 2005-09-14 2007-03-15 Yu-Bin Zhou Mouse with extensible PS/2 mouse buttons
US20090003202A1 (en) * 2007-06-29 2009-01-01 Polk James M Method and apparatus for domain and subdomain establishment for preemption
US20140025859A1 (en) * 2011-04-13 2014-01-23 Michael R. Krause Input/output processing
US20140032796A1 (en) * 2011-04-13 2014-01-30 Michael R. Krause Input/output processing

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130275967A1 (en) * 2012-04-12 2013-10-17 Nathan Jenne Dynamic provisioning of virtual systems
US9129124B2 (en) * 2012-04-12 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamic provisioning of virtual systems
US20160127494A1 (en) * 2014-10-30 2016-05-05 ScaleFlux Remote direct non-volatile cache access
US9838498B2 (en) * 2014-10-30 2017-12-05 ScaleFlux Remote direct non-volatile cache access
US20200322287A1 (en) * 2020-06-18 2020-10-08 Intel Corporation Switch-managed resource allocation and software execution

Also Published As

Publication number Publication date
WO2012141694A1 (fr) 2012-10-18
US20170075846A1 (en) 2017-03-16
US9864717B2 (en) 2018-01-09

Similar Documents

Publication Publication Date Title
US20140032796A1 (en) Input/output processing
US9864717B2 (en) Input/output processing
US11372802B2 (en) Virtual RDMA switching for containerized applications
US7996569B2 (en) Method and system for zero copy in a virtualized network environment
EP3706394B1 (fr) Écritures vers plusieurs destinations de mémoire
US11704059B2 (en) Remote direct attached multiple storage function storage device
US8244826B2 (en) Providing a memory region or memory window access notification on a system area network
US8255475B2 (en) Network interface device with memory management capabilities
EP2284717B1 (fr) Intégration de contrôleur
US10621138B2 (en) Network communications using pooled memory in rack-scale architecture
US20090077567A1 (en) Adaptive Low Latency Receive Queues
US10872056B2 (en) Remote memory access using memory mapped addressing among multiple compute nodes
US20070050520A1 (en) Systems and methods for multi-host extension of a hierarchical interconnect network
US20090077268A1 (en) Low Latency Multicast for Infiniband Host Channel Adapters
US10114667B2 (en) Method of controlling communication path between virtual machines and computer system
US20140025859A1 (en) Input/output processing
WO2014106321A1 (fr) Procédé, serveur et système de communication entre machines virtuelles basés sur un réseau pcie
US11693804B2 (en) Cross bus memory mapping
EP4357901A1 (fr) Procédé et appareil d'écriture de données, procédé et appareil de lecture de données, ainsi que dispositif, système et support
US7710990B2 (en) Adaptive low latency receive queues
US10868864B2 (en) System and method for fault-tolerant remote direct memory access using single port host channel adapter hardware
CN108063737B (zh) 一种FCoE存储区域网读请求处理方法及系统
KR101499668B1 (ko) 가상 실행 환경에서 네트워크 프레임을 전달하기 위한 장치 및 방법

Legal Events

Date Code Title Description
AS Assignment

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KRAUSE, MICHAEL R.;REEL/FRAME:031343/0009

Effective date: 20110411

AS Assignment

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001

Effective date: 20151027

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE