The SoC level interconnect consists of multiple types of components:
- CBASS: this is a crossbar module to provide physical connection among the
initiators and targets
- VBUSP interface: a single-issue interface
- VBUSM interface: a multi-issue interface
- Channel ID: channel ID for interface indicates a logical flow. All the
transactions with the same channel ID coming from the same initiator
interface are consider orthogonal and independent flow.
- RouteID: a unique identification of a particular initiator interface
- OrderID: a 4 bits value associated with each transaction. All the
transactions from the same initiator to the same target end point with the
same orderID needs to be executed in order. OrderID is also to be used to
select real-time and non-real time path for the transaction. OrderID 8-15
reserved for real-time path.
- Asel: Address Selection. Asel can be either used for select a unique memory
map or be used to indicate the IO coherent transactions.
- PrivID: indicates the security access group. PrivID is assigned by the ISC
block.
- ISC: stands for Initiator Security Control. It is a part of the CBASS
configuration parameter. Each initiator port can optionally enable ISC
feature in the CBASS configuration. It provides privID and secure side band
signal overwrite value for the transactions sent by the initiator. ISC can
provide the overwrite value either based on the memory address or channel ID
value the transaction carries. The configuration of the ISC is done through
the VBUSP configuration port from the CBASS IP.
- Region based firewall: this is firewall block based on address region.
- Channelized firewall:
firewall block with finer granularity down to register level with fixed
region size.
- QoS: Quality of Service block
is a feature which can be enabled for each CBA initiator port connecting to
the CBASS. Each initiator can choose to enable the QoS feature in the CBA
configuration file. The QoS block provides some QoS related sideband signals
if the initiator does not provide, such as orderID, priority, epriority and
etc. If the initiator port supports channel ID, the QoS block provides
priority and order ID for each channel, otherwise all the transactions from
that initiator port share the same priority and order ID value.
CAUTION: Since OrderID is used for
ordering purpose in CBASS, changing the order ID when the system is
running can cause system deadlock. Therefore, QoS configuration shall be
part of the initialization steps, if the application wants to change the
QoS setting from the default value.
- Initiator timeout gasket: Initiator timeout gasket is to prevent the fault
propagation from the upstream interconnect, which can’t provide transaction
completion notification.
- Target timeout gasket: target timeout gasket is used to prevent the fault
propagation from the downstream interconnect, which enters into a fault
state and no longer is able to accept any new transactions.