US2012036302A1PendingUtilityA1

Determination of one or more partitionable endpoints affected by an i/o message

45
Assignee: LAIS ERIC NPriority: Aug 4, 2010Filed: Aug 4, 2010Published: Feb 9, 2012
Est. expiryAug 4, 2030(~4.1 yrs left)· nominal 20-yr term from priority
G06F 2213/0058G06F 13/404G06F 13/36G06F 13/28
45
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A data processing system includes a processor core, a system memory including a first data structure including a plurality of entries mapping requester identifiers (IDs) to partitionable endpoint (PE) numbers, and an input/output (I/O) subsystem including a plurality of PEs each having an associated PE number, where each of the plurality of PEs including one or more requesters each having a respective requester ID. An I/O host bridge, responsive to receiving an I/O message including a requester ID and an address, determines a PE number by reference to a first entry from the first data structure, and responsive to determining the PE number, accesses a second entry of the second data structure utilizing the PE number as an index and validates the address by reference to the accessed entry in the second data structure. The I/O host bridge, responsive to successful validation, provides a service indicated by the I/O message.

Claims

exact text as granted — not AI-modified
1 . A method of data processing in a data processing system having an input/output (I/O) subsystem including at least one I/O host bridge and a plurality of partitionable endpoints (PEs) each having an associated PE number, each of the plurality of PEs including one or more requesters each having a respective requester identifier (ID), the method comprising:
 receiving an I/O message at an I/O host bridge, the I/O message including a requester ID and an address;   in response to receiving the I/O message, the I/O host bridge determining a PE number of a PE affected by the I/O message by reference to a first entry from a first data structure including a plurality of entries mapping requester IDs to PE numbers;   in response to determining the PE number, the I/O host bridge accessing a second entry of a second data structure utilizing the PE number as an index and validating the address by reference to the accessed entry in the second data structure; and   in response to successful validation of the address, the I/O host bridge providing a service indicated by the I/O message.   
     
     
         2 . The method of  claim 1 , wherein:
 the I/O message is a direct memory access request (DMA) request; and   the method further comprises translating the address into a system memory address.   
     
     
         3 . The method of  claim 1 , wherein the I/O host bridge comprises a PCI host bridge. 
     
     
         4 . The method of  claim 1 , wherein the I/O host bridge determining a PE number of a PE affected by the I/O message by reference to a first entry comprises accessing the first entry in a cache in the I/O host bridge that buffers entries from the first data structure. 
     
     
         5 . The method of  claim 1 , wherein:
 the first data structure resides in a system memory of the data processing system; and   the I/O host bridge determining a PE number of a PE affected by the I/O message by reference to a first entry comprises accessing the first entry in the system memory.   
     
     
         6 . The method of  claim 1 , and further comprising selecting the second entry from among multiple entries of the second data structure associated with the PE number by reference to an index in the address. 
     
     
         7 . A data processing system, comprising:
 a processor core;   a system memory coupled to the processor core, the system memory including a first data structure including a plurality of entries mapping requester identifiers (IDs) to partitionable endpoint (PE) numbers; and   an input/output (I/O) subsystem coupled to the processor core, the I/O subsystem including:
 a plurality of PEs each having an associated PE number, each of the plurality of PEs including one or more requesters each having a respective requester ID; and 
 at least one I/O host bridge including a second data structure including a plurality of entries, wherein the I/O host bridge, responsive to receiving an I/O message including a requester ID and an address, determines a PE number of a PE affected by the I/O message by reference to a first entry from the first data structure, and responsive to determining the PE number, accesses a second entry of the second data structure utilizing the PE number as an index and validates the address by reference to the accessed entry in the second data structure, and wherein the I/O host bridge, responsive to successful validation of the address, provides a service indicated by the I/O message. 
   
     
     
         8 . The data processing system of  claim 7 , wherein the I/O message is a direct memory access request (DMA) request. 
     
     
         9 . The data processing system of  claim 7 , wherein the I/O host bridge comprises a PCI host bridge. 
     
     
         10 . The data processing system of  claim 7 , wherein:
 the I/O host bridge includes a cache of entries from the first data structure in system memory; and   the I/O host bridge determines the PE number by accessing the first entry in the cache.   
     
     
         11 . The data processing system of  claim 7 , wherein:
 the second data structure holds multiple entries associated with the PE number; and   the I/O host bridge selects the second entry from among the multiple entries associated with the PE number by reference to an index in the address.   
     
     
         12 . The data processing system of  claim 7 , and further comprising, an integrated circuit chip including the processor core and the I/O host bridge. 
     
     
         13 . A processor for a data processing system having a system memory and an input/output (I/O) subsystem including a plurality of partitionable endpoints (PEs) each having an associated PE number, each of the plurality of PEs including one or more requesters each having a respective requester identifier (ID), the processor comprising:
 a processor core; and   an I/O host bridge that, responsive to receiving an I/O message including a requester ID and an address, determines a PE number of a PE affected by the I/O message by reference to a first entry, from a first data structure including a plurality of entries mapping requester IDs to PE numbers, and responsive to determining the PE number, accesses a second entry of a second data structure in the I/O host bridge utilizing the PE number as an index and validates the address by reference to the accessed entry in the second data structure, and wherein the I/O host bridge, responsive to successful validation of the address, provides a service indicated by the I/O message.   
     
     
         14 . The processor of  claim 13 , wherein the I/O message is a direct memory access request (DMA) request. 
     
     
         15 . The processor of  claim 13 , wherein the I/O host bridge comprises a PCI host bridge. 
     
     
         16 . The processor of  claim 13 , wherein:
 the first data structure resides in system memory of the data processing system;   the I/O host bridge includes a cache of entries from the first data structure in system memory; and   the I/O host bridge determines the PE number by accessing the first entry in the cache.   
     
     
         17 . The processor of  claim 13 , wherein:
 the second data structure holds multiple entries associated with the PE number; and   the I/O host bridge selects the second entry from among the multiple entries associated with the PE number by reference to an index in the address.   
     
     
         18 . The processor of  claim 13 , and further comprising an integrated circuit chip including the processor core and the I/O host bridge.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.