Various methods and apparatus for configurable mapping of address regions onto one or more aggregate targets
First Claim
1. An apparatus, comprising:
- an interconnect of an integrated circuit configured to communicate transactions between one or more initiator Intellectual Property (IP) cores and multiple target IP cores coupled to the interconnect, wherein flow control logic internal to the interconnect implements an address map with assigned addresses for the target IP cores in the integrated circuit to route the transactions between the target IP cores and initiator IP cores in the integrated circuit, andan aggregate target of the target IP cores that includes two or more memory channels that are interleaved in an address space for the aggregate target in the address map,where each memory channel is divided up in defined memory interleave segments and then interleaved with memory interleave segments from other memory channels,wherein the address map is divided up into two or more regions, each interleaved memory interleave segment is assigned to at least one of those regions and populates the address space for that region, the address map including configurable parameters that can be set in a configuration mechanism for each region to flexibly support a configuration of the aggregate target that is dynamically changeable, and the configurable parameters, associated with the regions and memory interleave segments, are configurable to reconfigure memory channel-to-region assignments in order to spread out different requests to be serviced by different memory channels in different regions,where the configuration mechanism to set the memory channel-to-region assignments is separate from the flow control logic that is configured to route the transactions between the target IP cores and initiator IP cores and to allow multiple transactions from the same thread to be outstanding to multiple channels of an aggregate target at any given time,where the interconnect connects to the aggregate target,where the aggregate target connects to at least two or more memory IP cores each containing its own memory controller,where the flow control logic applies a flow control splitting protocol to allow multiple transactions from the same thread to be outstanding to multiple channels of the aggregate target at any given time and the multiple channels in the aggregate target map to IP memory cores having physically different addresses, where the flow control logic internal to the interconnect is configured to maintain request order routed to the target IP core, where the flow control mechanism cooperates with the flow control logic to allow multiple transactions from the same thread to be outstanding to multiple channels of the aggregate target at any given time and the multiple channels in the aggregate target map to IP memory cores having physically different addresses, andwhere the flow control logic interrogates the address map based on a logical destination address associated with a request to the aggregate target of the interleaved two or more memory channels and determines which memory channels will service the request and how to route the request to the physical IP addresses of each memory channel in the aggregate target servicing that request so that any IP core need not know of the physical IP addresses of each memory channel in the aggregate target.
3 Assignments
0 Petitions
Accused Products
Abstract
An interconnect for an integrated circuit communicating transactions between initiator Intellectual Property (IP) cores and multiple target IP cores coupled to the interconnect is generally described. The interconnect routes the transactions between the target IP cores and initiator IP cores in the integrated circuit. A first aggregate target of the target IP cores includes two or more memory channels that are interleaved in an address space for the first aggregate target in the address map. Each memory channel is divided up in defined memory interleave segments and then interleaved with memory interleave segments from other memory channels. An address map is divided up into two or more regions. Each interleaved memory interleave segment is assigned to at least one of those regions and populates the address space for that region, and parameters associated with the regions and memory interleave segments are configurable.
77 Citations
20 Claims
-
1. An apparatus, comprising:
-
an interconnect of an integrated circuit configured to communicate transactions between one or more initiator Intellectual Property (IP) cores and multiple target IP cores coupled to the interconnect, wherein flow control logic internal to the interconnect implements an address map with assigned addresses for the target IP cores in the integrated circuit to route the transactions between the target IP cores and initiator IP cores in the integrated circuit, and an aggregate target of the target IP cores that includes two or more memory channels that are interleaved in an address space for the aggregate target in the address map, where each memory channel is divided up in defined memory interleave segments and then interleaved with memory interleave segments from other memory channels, wherein the address map is divided up into two or more regions, each interleaved memory interleave segment is assigned to at least one of those regions and populates the address space for that region, the address map including configurable parameters that can be set in a configuration mechanism for each region to flexibly support a configuration of the aggregate target that is dynamically changeable, and the configurable parameters, associated with the regions and memory interleave segments, are configurable to reconfigure memory channel-to-region assignments in order to spread out different requests to be serviced by different memory channels in different regions, where the configuration mechanism to set the memory channel-to-region assignments is separate from the flow control logic that is configured to route the transactions between the target IP cores and initiator IP cores and to allow multiple transactions from the same thread to be outstanding to multiple channels of an aggregate target at any given time, where the interconnect connects to the aggregate target, where the aggregate target connects to at least two or more memory IP cores each containing its own memory controller, where the flow control logic applies a flow control splitting protocol to allow multiple transactions from the same thread to be outstanding to multiple channels of the aggregate target at any given time and the multiple channels in the aggregate target map to IP memory cores having physically different addresses, where the flow control logic internal to the interconnect is configured to maintain request order routed to the target IP core, where the flow control mechanism cooperates with the flow control logic to allow multiple transactions from the same thread to be outstanding to multiple channels of the aggregate target at any given time and the multiple channels in the aggregate target map to IP memory cores having physically different addresses, and where the flow control logic interrogates the address map based on a logical destination address associated with a request to the aggregate target of the interleaved two or more memory channels and determines which memory channels will service the request and how to route the request to the physical IP addresses of each memory channel in the aggregate target servicing that request so that any IP core need not know of the physical IP addresses of each memory channel in the aggregate target. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method, comprising:
mapping address regions onto one or more aggregate target Intellectual Property (IP) cores in a group of target IP cores, wherein an aggregate target includes two or more channels that are interleaved in an address space for the first aggregate target in an address map, where each channel is divided up in defined interleave segments and then interleaved with interleave segments from other channels, where transactions are routed over an interconnect between the target IP cores and one or more initiator IP cores according to flow control logic internal to the interconnect that implements an address map located in the interconnect with assigned addresses for the target IP cores, wherein the address map is divided up into two or more address regions;
configuring parameters associated with the address regions and the interleave segments that can be set for each region to flexibly support a configuration of the aggregate target that is dynamically changeable,wherein the configuration parameters in each address region is configurable after manufacture of the integrate circuit to reconfigure memory channel-to-region assignments; and
configuring a first interleave segment to a first size controlled by a configurable parameter of a first address region in the address map and configuring a second interleave segment to a second size controlled by a configurable parameter of a second address region in the address map,wherein each interleave segment of those channels being defined and interleaved in the address space of the regions at a size granularity chosen by a designer and independent of the size granularity of memory interleave segment selected in the other address region, and the size granularity differs between a first region and a second region, where the interconnect connects to the aggregate target, where the aggregate target connects to at least two or more memory IP cores each containing its own memory controller, where the flow control logic applies a flow control splitting protocol to allow multiple transactions from the same thread to be outstanding to multiple channels of the aggregate target at any given time and the multiple channels in the aggregate target map to IP memory cores having physically different addresses, where the flow control logic internal to the interconnect is configured to maintain request order routed to the target IP core, where the flow control mechanism cooperates with the flow control logic to allow multiple transactions from the same thread to be outstanding to multiple channels of the aggregate target at any given time and the multiple channels in the aggregate target map to IP memory cores having physically different addresses, and where the flow control logic interrogates the address map based on a logical destination address associated with a request to the aggregate target of the interleaved two or more memory channels and determines which memory channels will service the request and how to route the request to the physical IP addresses of each memory channel in the aggregate target servicing that request so that any IP core need not know of the physical IP addresses of each memory channel in the aggregate target. - View Dependent Claims (18, 19)
-
20. An Integrated Circuit, comprising:
-
one or more initiator IP cores; multiple target IP cores including memory IP cores; an interconnect to communicate transactions between the one or more initiator IP cores and the multiple target IP cores coupled to the interconnect, wherein flow control logic internal to the interconnect implements the address map with assigned address for target IP cores in the integrated circuit to route the requests between the target IP cores and initiator IP cores in the integrated circuit and an aggregate target of the target IP cores includes two or more memory channels that are interleaved in an address space for the aggregate target in the address map, where each memory channel is divided up in defined memory interleave segments and then interleaved with memory interleave segments from other memory channels, wherein the address map may be divided up into two or more regions, each interleaved memory interleave segment is assigned to at least one of those regions and populates the address space for that region, where the configurable address map has configurable parameters that can be set for each region to flexibly support a configuration of the first aggregate target that is dynamically changeable, and the configurable parameters, associated with the regions and memory interleave segments, are configurable to reconfigure memory channel-to-region assignments, and a first region in the address map has defined memory interleave segments allocated to that region from a first memory channel that have a configured size granularity at a first amount of bytes and a second region in the address map has defined memory interleave segments allocated to that region from the first memory channel that have a configured granularity at a second amount of bytes, where the interconnect connects to the aggregate target, where the aggregate target connects to at least two or more memory IP cores each containing its own memory controller, where the flow control logic applies a flow control splitting protocol to allow multiple transactions from the same thread to be outstanding to multiple channels of the aggregate target at any given time and the multiple channels in the aggregate target map to IP memory cores having physically different addresses, where the flow control logic internal to the interconnect is configured to maintain request order routed to the target IP core, where the flow control mechanism cooperates with the flow control logic to allow multiple transactions from the same thread to be outstanding to multiple channels of the aggregate target at any given time and the multiple channels in the aggregate target map to IP memory cores having physically different addresses, and where the flow control logic interrogates the address map based on a logical destination address associated with a request to the aggregate target of the interleaved two or more memory channels and determines which memory channels will service the request and how to route the request to the physical IP addresses of each memory channel in the aggregate target servicing that request so that any IP core need not know of the physical IP addresses of each memory channel in the aggregate target.
-
Specification