SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
Section 9.1.2.1.1 shows the ISS local interconnect data network.
Figure 9-4 ISS Local Interconnect Data NetworkThe data network collects requests from CAL_B, ISP, and SIMCOP and forwards them to the L3_MAIN interconnect.
Table 9-8 summarizes what type of traffic can be generated by the different initiators on the ISS data interconnect and what targets can be addressed by those initiators.
| Traffic type | Destination | |||||||
|---|---|---|---|---|---|---|---|---|
| Initiator | RT / RD | RT / WR | NRT / RD | NRT / WR | 2D | OCPM2 | OCPM1 (RT) | OCPM3 (GP) |
| CAL_B | x | x | x | x | x | x | ||
| ISP | X | x | x | x | x | x | x | |
| SIMCOP DMA | x | x | x | x | x | |||
| SIMCOP LDC | x | x | x | |||||
For destinations outside of the ISS, multiple routes are possible. Which one is chosen depends on the MReqInfo[1:0] field provided to the ISS data interconnect. Software can control the routing to some extend as shown in Table 9-9
| MReqInfo (in) | Traffic type(1) | 0 OCPM2 | Routing - MReqInfo [1:0] (out) | ||||
|---|---|---|---|---|---|---|---|
| Initiator | Control | Value | Routing Control Register | 1 OCPM2 (RT) | 2 OCPM3 (GP) | ||
| CAL_B | Directly controlled by the CAL_B hardware. | 0 | ISS_ROUTE1.CALx_0 | Cport #0 used for non real time traffic. Used by the read DMA. May require 1D->2D translation. Usage of RT port for non RT traffic not recommended | x | x | x |
| >0 | ISS_ROUTEx.CALx_1 ISS_ROUTEx.CALx_7 | Typically used for real time traffic from the camera. Generally doesn't require translation. May be non real time in specific use cases. SL2 may be used to artificially increase the FIFO size | x | x | x | ||
| ISP | Directly controlled by the ISP HW. | 0 | ISS_ROUTE3.ISP_IPIPEIF | IPIPEIF RD : RT when used for DFS for data directly received from the camera; but generally used as read DMA in M2M mode | x | x | x |
| 1 | ISS_ROUTE3.ISP_LSC | LSC RD : RT when data is directly received from the camera; but generally used in M2M mode | x | x | x | ||
| 2 | ISS_ROUTE3.ISP_RAW | ISIF RAW WR : RT when data is directly received from the camera; but generally used in M2M mode | x | x | x | ||
| 3 | ISS_ROUTE3.ISP_BOXCAR | IPIPE BOXCAR WR: RT when data is directly received from the camera; but generally used in M2M mode | x | x | x | ||
| 4 | ISS_ROUTE3.ISP_H3A | H3A WR : RT when data is directly received from the camera; but generally used in M2M mode | x | x | x | ||
| 5 | ISS_ROUTE3.ISP_RSZA | RESIZER #A : RT when data is directly received from the camera; but generally used in M2M mode | x | x | x | ||
| 6 | ISS_ROUTE3.ISP_RSZB | RESIZER #B : RT when data is directly received from the camera; but generally used in M2M mode | x | x | x | ||
| 7 | NA | reserved | - | - | - | ||
| SIMCOP DMA | fixed | ISS_ROUTE3.SDMA | Non real time traffic. Chose route to minimize congestion | x | x | ||
| SIMCOP LDC | fixed | ISS_ROUTE3.LDC | Non real time traffic. Chose route to minimize congestion | x | x | ||
| Default | |||||||
| Possible - depends on use case | |||||||
| Not recommended | |||||||
| Disallowed | |||||||
The above table shows MReqInfo[1:0] that are used to route the traffic. Moreover, ISS provides a different MReqInfo on the OCPM1 and OCPM2 to indicate the initiator ID to L3_MAIN. The Table 9-10 lookup table inside the ISS is used to convert the 5-bit MReqInfo from the ISS into a 3-bit L3_MAIN MReqInfo. The lookup table is initialized with meaningful values but may be changed by software as shown below:
| ISS internal MReqInfo | Initiator | Register | Default L3_MAIN MReqInfo |
|---|---|---|---|
| 0 | ISP - IPIPEIF RD | ISS_REQINFO_MAP0_7.REQINFO_0 | 0 |
| 1 | ISP - ISIF LSC | ISS_REQINFO_MAP0_7.REQINFO_1 | 0 |
| 2 | ISP - ISIF RAW WR | ISS_REQINFO_MAP0_7.REQINFO_2 | 0 |
| 3 | ISP - IPIPE BOXCAR | ISS_REQINFO_MAP0_7.REQINFO_3 | 0 |
| 4 | ISP - H3A WR | ISS_REQINFO_MAP0_7.REQINFO_4 | 0 |
| 5 | ISP - RSZ #A | ISS_REQINFO_MAP0_7.REQINFO_5 | 0 |
| 6 | ISP - RSZ #B | ISS_REQINFO_MAP0_7.REQINFO_6 | 0 |
| 7 | ISP - reserved | ISS_REQINFO_MAP0_7.REQINFO_7 | 0 |
| 8 | reserved | ISS_REQINFO_MAP8_15.REQINFO_8 | 0 |
| 9 | reserved | ISS_REQINFO_MAP8_15.REQINFO_9 | 0 |
| 10 | SIMCOP DMA | ISS_REQINFO_MAP8_15.REQINFO_10 | 1 |
| 11 | SIMCOP LDC | ISS_REQINFO_MAP8_15.REQINFO_11 | 1 |
| 12 | reserved | ISS_REQINFO_MAP8_15.REQINFO_12 | 2 |
| 13 | reserved | ISS_REQINFO_MAP8_15.REQINFO_13 | 3 |
| 14 | reserved | ISS_REQINFO_MAP8_15.REQINFO_14 | 0 |
| 15 | reserved | ISS_REQINFO_MAP8_15.REQINFO_15 | 0 |
| 16 - 23 | reserved | ISS_REQINFO_MAP16_23.REQINFO_16 through ISS_REQINFO_MAP16_23.REQINFO_23 | 4 and 5 |
| 24 | CAL_B RD & WR CTX #0 | ISS_REQINFO_MAP24_31.REQINFO_24 | 6 |
| 25 | CAL_B WR CTX #1 | ISS_REQINFO_MAP24_31.REQINFO_25 | 7 |
| 26 | CAL_B WR CTX #2 | ISS_REQINFO_MAP24_31.REQINFO_26 | 7 |
| 27 | CAL_B WR CTX #3 | ISS_REQINFO_MAP24_31.REQINFO_27 | 7 |
| 28 | CAL_B WR CTX #4 | ISS_REQINFO_MAP24_31.REQINFO_28 | 7 |
| 29 | CAL_B WR CTX #5 | ISS_REQINFO_MAP24_31.REQINFO_29 | 7 |
| 30 | CAL_B WR CTX #6 | ISS_REQINFO_MAP24_31.REQINFO_30 | 7 |
| 31 | CAL_B WR CTX #7 | ISS_REQINFO_MAP24_31.REQINFO_31 | 7 |
The default configuration has been optimized for typical memory to memory operation of ISP and SIMCOP. Some situations may require changing the configuration from the default; for example to balance the load between the interface master ports.
A fair arbitration is used among pending transactions with the same priority level (i.e. same MFlag value). Higher priority paths (i.e. larger MFlag value) always win the arbitration when they present a request. However, higher MFlags do not "reserve" a datapath when there is no pending transaction.
CAL_B and ISP can generate MFlag. ISP can assert its MFlag either statically (through SW configuration) or dynamically (FIFO level based; with SW configurable thresholds). Statically forcing MFlag to 01 or 11 is strongly discouraged as it reduces overall system efficiency. This possibility is offered by the HW only to workaround lately discovered HW bugs.
MFlag>0 generation shall be disabled for non real time traffic through adequate settings in the initiator IP.
CAL_B, ISP, and SIMCOP can generate up to 16 tags per master port. The number of tags that can be used per initiator is set by software (in the corresponding x_TAG_CNT register bit-fields). The ISS interconnect compresses the 6 x 16 internal ISS tags into 16 tags. Tag compression occurs after the 128-bit switch. When all 16 tags are used, the switch output is stalled. This stalls requests from ISS internal initiators.
There is another internal 32-bit configuration interconnect within the ISS. It runs on the internal CFGCLK, as explained in Section 9.1.1.1.1, ISS Clock Domains. There is no physical link between the data and the configuration interconnect.