Providing address range coherency capability to a device
First Claim
Patent Images
1. A method comprising:
- receiving a memory request from a peripheral device corresponding to an intellectual property (IP) block of a system on a chip (SoC) coupled to a downstream side of an input/output (IO) interconnect of the SoC coupled between the IP block and a coherent interconnect of the SoC;
accessing a first buffer of the IO interconnect to determine if an entry corresponding to an address of the memory request is present therein, the first buffer including a plurality of entries each to store a coherency indicator to indicate whether data associated with the memory request is to be handled in a coherent or non-coherent manner; and
if so, obtaining a coherency indicator from the entry and sending the memory request and the coherency indicator to the coherent interconnect coupled to an upstream side of the IO interconnect, wherein the memory request received from the IP block does not include an indication of whether the memory request is to be handled in the coherent or non-coherent manner.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, the present invention includes a method for receiving a memory request from a device coupled to an input/output (IO) interconnect, accessing a mapping table associated with the IO interconnect to determine if an address range including an address of the memory request is coherent, and if so, sending the memory request and a coherency indicator to indicate the coherent state of data at the address, otherwise sending the memory request and the coherency indicator to indicate a non-coherent state. Other embodiments are described and claimed.
39 Citations
20 Claims
-
1. A method comprising:
-
receiving a memory request from a peripheral device corresponding to an intellectual property (IP) block of a system on a chip (SoC) coupled to a downstream side of an input/output (IO) interconnect of the SoC coupled between the IP block and a coherent interconnect of the SoC; accessing a first buffer of the IO interconnect to determine if an entry corresponding to an address of the memory request is present therein, the first buffer including a plurality of entries each to store a coherency indicator to indicate whether data associated with the memory request is to be handled in a coherent or non-coherent manner; and if so, obtaining a coherency indicator from the entry and sending the memory request and the coherency indicator to the coherent interconnect coupled to an upstream side of the IO interconnect, wherein the memory request received from the IP block does not include an indication of whether the memory request is to be handled in the coherent or non-coherent manner. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus comprising:
-
a core to execute instructions, the core including a translation lookaside buffer (TLB), the TLB including a plurality of entries each having a translation field to map a virtual address to a physical address and a coherency field to store a coherency indicator that indicates whether a memory page corresponding to the entry is to be handled in a coherent or non-coherent manner; a coherent interconnect coupled to the core; an input/output (IO) interconnect coupled to the coherent interconnect, the IO interconnect including a coherency-TLB (c-TLB) including a plurality of entries each having an address field and a coherence field to store a coherency indicator from a corresponding entry of the TLB, the coherency indictor to indicate whether a memory page corresponding to the corresponding entry is to be handled in a coherent or non-coherent manner; and at least one peripheral device coupled to the IO interconnect to provide a memory request to the IO interconnect, the IO interconnect to access the c-TLB to obtain a coherency indicator if an entry corresponding to the memory request is present therein, the memory request and the coherency indicator to be forwarded from the IO interconnect into the coherent interconnect. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A system comprising:
-
a first integrated circuit including; at least one core to execute instructions and including a memory management unit (MMU) to map a virtual address for a memory location to a physical address and to associate a coherency indicator with the memory location that indicates whether a memory request for the memory location is to be handled in a coherent or non-coherent manner on an address range basis; a first coherent interconnect coupled to the at least one core; a first input/output (IO) interconnect coupled to the first coherent interconnect, the first IO interconnect including a storage to store the coherency indicator associated with the memory location; and at least one peripheral device coupled to the first IO interconnect to provide a memory request for the memory location to the first IO interconnect, the first IO interconnect to access the storage to obtain the coherency indicator and forward the memory request and the coherency indicator to the first coherent interconnect, wherein the at least one peripheral device is to provide the memory request to the first IO interconnect without coherency information; and a second integrated circuit coupled to the first integrated circuit via an inter-chip interconnect, wherein the second integrated circuit includes at least one peripheral device coupled to a second IO interconnect. - View Dependent Claims (19, 20)
-
Specification