www.ti.com
SRIOFunctionalDescription
DataleavesthesharedTXbuffersequentiallyinorderofreceipt,notbasedonthepacketpriority.
However,iffabriccongestionoccurs,prioritycanaffecttheorderinwhichthedataleavestheTXFIFOs.A
reorderingmechanismexistshere,whichtransmitsthehighestprioritypacketsfirstifRETRY
acknowledges.
ForpostedWRITEoperations,whichdonotrequireaRapidIOresponsepacket,acoremaysubmit
multipleoutstandingrequests.Forinstance,asinglecoremayhavemanystreamingwritepackets
bufferedatanygiventime,givenoutgoingresources.Inthisapplication,thecontrol/commandregisters
canbereleased(BSY=0)totheCPUassoonastheheaderinfoiswrittenintothesharedTXbuffer.If
therequesthasbeenflowcontrolled,theperipheralwillsetthecompletioncodestatusregisterand
appropriateinterruptbitoftheICSR.Thecontrol/commandregisterscanbereleasedaftertheinterrupt
serviceroutinecompletes.
Fornon-postedWRITEoperations,whichdorequireaRapidIOresponsepacket,therecanbeonlyone
outstandingrequestpercoreatanygiventime.Thepayloaddataandheaderinformationiswrittentothe
sharedTXbufferasdescribedabove;however,thecommandregisterscannotbereleased(BSY=1)until
theresponsepacketisroutedbacktothemoduleandtheappropriatecompletioncodeissetinthestatus
register.Onespecialcaseexistsforoutgoingtest-and-swappackets(Ftype5,Transaction1110b).Thisis
theonlyWRITEclasspacketthatexpectsaresponsewithpayload.Thisresponsepayloadisroutedtothe
LSU,whereitisexaminedtoverifywhetherthesemaphorewasaccepted,andthentheappropriate
completioncodeisset.ThepayloadisnottransferredoutoftheperipheralviatheDMAbus.
Sothegeneralflowisasfollows:
•LSUregistersarewrittenusingtheconfigurationbus
•Flowcontrolisdetermined
•TXFIFOfreebufferavailabilityisdetermined
•DMAbusreadrequestfordatapayload
•DMAbusresponsewritesdatatospecifiedmodulebufferinthesharedTXbufferspace
•DMAbusreadresponseismonitoredforlastbyteofpayload
•HeaderdataintheLSUregistersiswrittentothesharedTXbufferspace
•PayloadandheaderaretransferredtotheTXFIFO
•TheLSUregistersarereleasedifnoRapidIOresponseisneeded
•TransferfromtheTXFIFOtoexternaldevicebasedonpriority
READTransactions:
TheflowforgeneratingREADtransactionsissimilartonon-postedWRITEwithresponsetransactions.
Therearetwomaindifferences:READpacketscontainnodatapayload,andREADresponseshavea
payload.SoREADcommandssimplyrequireanon-payloadsharedTXbuffer.Inaddition,theyrequirea
sharedRXbuffer.Thisbufferisnotpre-allocatedbeforetransmittingtheREADrequestpacket,since
doingsocouldcausetrafficcongestionofotherin-boundpacketsdestinedtootherfunctionalblocks.
Again,thecontrol/commandregisterscannotbereleased(BSY=1)untiltheresponsepacketisrouted
backtothemoduleandappropriatecompletioncodeissetinthestatusregister.
Sothegeneralflowwouldbe:
•LSUregistersarewrittenusingtheconfigurationbus
•Flowcontrolisdetermined
•TXFIFOfreebufferavailabilityisdetermined
•HeaderdataintheLSUregistersiswrittentothesharedTXbuffer
•PayloadandheaderaretransferredtotheTXFIFO
•TheLSUregistersarereleasedifnoRapidIOresponseisneeded
•TransferfromtheTXFIFOtoexternaldevicebasedonpriority
Foralltransactions,thesharedTXbuffersarereleasedassoonasthepacketisforwardedtotheTX
FIFOs.IfanERRORorRETRYresponseisreceivedforanon-postedtransaction,theCPUmusteither
reinitiatetheprocessbywritingtotheLSUregister,orinitiateanewtransactionaltogether.
SPRUE13A–September2006SerialRapidIO(SRIO)41
SubmitDocumentationFeedback