You are on page 1of 20

NIU TRANSACTION

HANDLING
NETWORK INTERFACE UNIT
KEY POINTS

• Transformations performed on transactions in transit between initiators and


targets.
• Handling of unsupported transactions that are responded to as errors.
• Handling of transaction attributes such as byte enables, user info, and so
forth.
TYPES OF NIU

• Generic NIU
• Independent of third party socket protocol.
• Have information regarding address map.
• Specific NIU
• 2 types:: Initiator NIU & Target NIU
• Mainly protocol conversion.
• Dependent on third party socket protocol.
• No information on address map, presence of another sockets in NIU, packet format used to transfer.
• Initiator Socket

• Specific NIU

• Generic NIU

• Switching & Routing

• Generic NIU

• Specific NIU

• Target Socket.
FEATURES FOR GENERIC NIU

• Bytes oriented address handling


• Data Bus Width 1-128bytes
• Single Request, Multiple Data (SRMD)
• Supports:
• RD (Read), RDEX (Read Exclusive), RDL (Read Link), WR (Write), WRC (Write Conditional)
• All Writes have Response.
• Unaligned transactions of any size.
• INCR & WRAP Burst support.
• Burst Beat size is DATA WORD Size.
OPTIONAL FEATURES FOR GENERIC NIU

• Handles burst type including streaming, fixed, burst (STRM) & Block (2D) Burst.
• Out of order transactions, using flow and sequence capability.
• Response interleaving, between out-of-order transactions.
• Handles locked sequences of transactions. (will be kept atomic by NoC)
• QoS Signaling.
• User & Security signals sampled along with address phase.
• Handles power disconnect signals.
• Error Codes with response phase.
GENERIC INTERFACE PARAMETERS

• wAddr, sets the width of address signals


• wData, sets the data width of data signals. (wr-rd)
• Burst, sets the type and max size of burst.
• As FlexNoC technology supports third-party protocols, it supports the burst types defined by those protocols
• useBurstAlign, ensures the addresses are aligned on their length in bytes.
• crossBoundary, typically 1kb or 4kb
• wrapAlign, indicates the minimum alignment, in bytes, for all wrapping burst boundaries.
• maxWrap, sets max size in wrapping bursts.
GENERIC INTERFACE PARAMETERS (CONTD…..)

• wLen1, max transfer size.


• useHardLock, when set true, this enables RDX & WR opcodes, hence the only atomic operation supported are
read-modify write or SWAP. For other third party protocols, default settings are FALSE.
• useSoftLock, when set true, this enables RDL &/or WRC, or both, for exclusive access supported by OCP and
AXI protocol.
• useRead, when true, it enables read transactions.
• enRead, for AXI Socket,
• Read_enable, for OCP Socket,
• True for other supported third party protocols.
• useWrite, when true, it enables write transactions.
GENERIC INTERFACE PARAMETERS (CONTD…..)

• useInterleave, enables word-level response interleaving.


• wSeqId, defines width of seqId.
• useSeqUnique, when true, it assigns a single transaction per sequence ID.
• useErrorCodes, when true, enables mapping of third party error response to
internal transport error code. When false, only single error code is available.
REQUEST PROCESSING (GENERIC INITIATOR NIU)

• Address Decode Stage:


• The current addressing mode, transaction flow ID & transaction address can be looked up in a
translation table.
• If translation lookup fails, NIU issues one or more req packets for transaction with ERR Status. If
succeeds, it creates one or more req packets with an appropritate route identifier.
• Splitting
• Basic Security:
• Target Mapping Access Restrictions are extracted from address Decode table, and compared with incoming
transactions. If violation, the request is send to decoded target NIU along with ERR status, but not send further
to target socket.
REQUEST PROCESSING (GENERIC INITIATOR
NIU) CONT….
• Ordering Control:
• Number of pending request, nPendingOrderId.
• Eg: Accessing two targets with same flowId & SeqId, the NIU will delay request processing until
response from previous transactions.
• Interleaving Control:
• Eg: Accessing two target with different seqId, of which one is capable of response interleaving, the
NIU will delay request processing until reponse from previous transactions remove interleaving
condition.
• QoS Mechanism.
RESPONSE PROCESSING (GENERIC
INITIATOR NIU)
• This involves extracting data from packet, along with the transaction response status OK, ERR
or FAIL.
• If transaction are split on request side, NIU aggregates transaction status.
• nPendingOrderId:
• An initiator NIU with parameters nFlow set to 1 and wSeqID set to 4 can have 16 routes pending, which at a
given time may be 16 different sequences pending at the same target flow, or just one sequence pending each
at 16 or fewer different argets, or intermediate combination thereof. When an initiator IP sends a transaction
that exceeds the number of pending routes that the NIU can process, flow control is applied to the initiator
socket until a sufficient number of responses have been returned to allow the new transaction to be processed.
NSP

• NSP is Arteris NoC Socket Protocol.


• Nsp is transaction level protocol, which offer same capabilities as OCP or
ARM AXI.
• NSP Protocol Signals are organized in Request Group Signals and Response
Group Signals.
NSP REQUEST GROUP SIGNAL

• Vld: valid, indicate request word is present on request group of signals.


• All request signals except HURRY & PRESS must remain constant while Vld is asserted until the request is accepted by the slave with Rdy Signal.
• Rdy: Ready, indicate request is being accepted by the slave.
• Last: indicates request word is the final one in the request.
• Opc: Opcode.
• 0: RD: Data is read by the initiator from a target with incrementing address.
• 1: RDW: Wrapped Read, with wrapping addressing.
• 2: RDEX: Exclusive Read with incrementing addressing.
• 3: RDLNK: Read Link
• 4: WR: Write
• 5: WRW: Wrapped Write.
• 6: WREX: Exclusive Write with incrementing addressing.
• 7: PRE: Preamble packet of a Linked Sequence. (This is used to signal special operations such as entering a locked sequence or
transactions, or non-native bursts such as Fixed or 2D bursts)
NSP REQUEST GROUP SIGNAL (CONT…….)

• Length: indicates total payload length of request.


• Addr: Address
• FlowId: flow identifier of the transaction.
• SeqId: sequence identifier of the transaction.
• TrId: carries a unique transaction identifier, independently of ordering. This signal exists only if parameter nFlow is set to a value greater
than 1, or wSeqID is set to a value greater than 0. Signal width is equal to log2 of parameter nPendingTrans.
• ExclId: Unique identifier of initiator of an exclusive transaction.
• User: In-band signals
• Urgency: Indicate urgency level of the request. WIDTH = QoS-1: 0
• Press: Indicate pressure level of the request. WIDTH = QoS-1: 0
• Hurry: Hurry level, that MUST be applied to pending transactions on the interface. WIDTH = QoS-1: 0
• Data:
• Be: Byte Enable.
NSP RESPONSE GROUP SIGNAL

• Vld: Indicates response word is present on response group of signals.


• Rdy: Indicates response word is being accepted by the master.
• Last: Indicates response word is the final one in the response.
• Cont: Indicate next response word will belong to the same transaction response.
ERR CODE
• Status:
0: SLV: Target error detected by slave.
• 0: Ok:
1: DEC: Decode error
• 1: EXOK:
• 2: ERR:
2: UNS: Unsupported request
• 3: rsvd 3: DISC: Disconnected target or
domain.
• TrId: carries a copy of corresponding signal from the associated request.
4: SEC: Security Violataion
• Data: Read Data
5: HIDE: Hidden security violation,
• ErrCode reported as OK to initiator.
6: TMO: Time-out
NSP PROTOCOL PARAMETERS

• wData
• wAddr
• wExclId
• wUser
• wQoS: when set to > 0, parameter wQoS adds signaling signals like Hurry,
Pressure & Urgency.
NSP BURST GROUP PARAMETERS

• wLength:
• crossBoundary
• useRead: enables read transactions.
• userWrite: enables write transactions.
• useWrap: enables wrapping burst operations.
• useExcl:
• useHardLock: enables, read-modify-write locked sequence of operations.
• useRdCondWr: enables read-conditional-write locked sequence of operations.
• nFLow: defines number of flows on the interface.
• wSeqId:
• nPendingTrans
• useRspInterleaving: enables read response interleaving on the interface.
• useFixed: enables fix bursts across the interface.
• userErrorCode:
THINGS TO TAKE CARE

• An initiator and a target socket are necessary to allow transactions to flow in both directions between the two
FlexNoC instances.
• Parameter wExclId should be set only if exclusive access must be executed in the destination FlexNoC instance.
• Parameter wLength should be set according to the maximum burst size desired on the interface. If the value of
wLength is chosen to be small, it will force the transactions reaching the NSP socket to be split in the initiator NIUs
of the source FlexNoC instance.
• Parameter useErrorCodes should be set to True if propagation of precise error codes is required on the socket.
• And Many More…………….

PageNum:: 141-156 (NSP)

You might also like