US20140032795A1 - Input/output processing - Google Patents
Input/output processing Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 38
- 238000000034 method Methods 0.000 claims abstract description 81
- 230000008569 process Effects 0.000 claims abstract description 54
- 238000004891 communication Methods 0.000 claims abstract description 32
- 230000004044 response Effects 0.000 claims description 8
- 238000013519 translation Methods 0.000 description 30
- 230000014616 translation Effects 0.000 description 30
- 239000000872 buffer Substances 0.000 description 24
- 238000010586 diagram Methods 0.000 description 24
- 230000002093 peripheral effect Effects 0.000 description 23
- 238000007726 management method Methods 0.000 description 16
- 238000010200 validation analysis Methods 0.000 description 10
- 239000004744 fabric Substances 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2017—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2023—Failover techniques
- G06F11/2025—Failover techniques using centralised failover control functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2066—Optimisation of the communication load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2002—Error 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/2007—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/314—In 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)
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)
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)
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)
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)
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 |
-
2011
- 2011-04-13 WO PCT/US2011/032307 patent/WO2012141694A1/fr active Application Filing
- 2011-04-13 US US14/009,761 patent/US20140032795A1/en not_active Abandoned
-
2016
- 2016-08-05 US US15/229,908 patent/US9864717B2/en active Active
Patent Citations (8)
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)
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 |