17.5.5.1.3 QoS Mapping
The priority of an initiator (host) is susceptible to change by the intermediate agents (for example, interconnect) before reaching the destination client depending on the service levels provided with respect to the required targets. Therefore, the relationship between the IDs and their class representations must be dynamically determined.
Arqos/awqos internal signal determines both port priorities and DDRC priorities dynamically. 16 QoS levels are divided to three regions for reads, two regions for writes. Each region can be assigned to any of the following traffic class—LPR, VPR, and HPR for reads, NPW and VPW for writes.
Regions 0 and 1 are assigned to the blue address queue (see Dual Read Address Queue). Typically, LPR/NPW and VPR/VPW may share this resource.
Region 2 is assigned to the red queue (see Dual Read Address Queue) for reads (when dual queue is selected), while for writes it is assigned to the same queue as Region 0 and Region 1 (being writes, always single queue). Region 2 can be mapped to HPR or VPR traffic for reads, VPW or NPW traffic for writes. In the DDRC, LPR/NPW and VPR/VPW share the same CAM store called LPR/NPW store. HPR has its own store in the DDRC.
The regions are mapped per port using PCFGQOS0_n and PCFGWQOS0_n registers (see Register Descriptions).
Fields for PCFGQOS0_n register are as follows:
- rqos_map_level<x> (where x is 1 to 2) indicates two separation levels for three regions. Possible values 0 to 14 correspond to an arqos value. These registers indicate the upper end of the region. For example, if rqos_map_level2 is set to 14, then Region 2 is identified as all transactions with arqos value of 15.
- rqos_map_region<y> (where y is 0 to 2) for region identifier.
This register indicates the traffic class of each of the three regions. rqos_map_region2
is present only in dual read queue configurations (see Dual Read
Address Queue).
Valid values are:
- 0–LPR
- 1–VPR
- 2–HPR
For single address queue configurations, Region 0 and Region 1 map to the blue queue. Being single queue, Region 2 is not present. In this case registers rqos_map_level2 and rqos_map_region2 do not exist. In this case Region 0 can be set to HPR or VPR, Region 1 to VPR or LPR.Fields for PCFGWQOS0_n register are as follows:
- wqos_map_level<x> (where x is 1 to 2) indicates the separation level for three regions Possible values 0 to 14 correspond to an awqos value. These registers indicate the upper end of the region. For example, if wqos_map_level2 is set to 14, then Region 2 is identified as all transactions with awqos value of 15.
- wqos_map_region<y> (where y is 0 to 2) for region identifier. This register indicates the traffic class of each of the two regions.
Valid values are:
- 0–NPW
- 1–VPW
Writes are always single queue: Region 0, Region 1 and Region 2 map all to the same queue. All fields always exist.