Texas Instruments TMS320TCI648x Network Card User Manual


 
www.ti.com
2.3.12.2SinglePortWith1xor4xOperation
2.3.12.3UnavailableOutboundCredit
SRIOFunctionalDescription
ThephysicallayerbuffersactlikeaFIFOunlessthereisaretryofapacketfromtheconnecteddevice,in
whichcaseare-orderingalgorithmisused.Thealgorithmsearchesbackwardthroughthebuffergroupfor
thefirstpacketwiththehighestpriority.Iftherearenohigherprioritypacketsinthequeue,thecurrent
packetissentagain.Asanexampleofthere-orderingalgorithm,supposeaphysicallayerbuffergroup
containspacketswiththefollowingpriorities:
00123310
wheretheleftmost0representsthepacketthatwasthefirstin,ortheheadofthequeue.Ifthispacketis
retried,thenextpackettobesentistheearliestpacketwithpriority3(thelefthand3).Ifthatpacketissent
successfully,thephysicallayerattemptstosendtheoriginalretriedpacketagain;otherwise,thephysical
layerrepeatsthere-orderingalgorithm.
Inthecasewhenonlyoneportisused,logicallayerbuffersaregroupedperpriority.Eachpriorityis8
buffersdeep.AcounterismaintainedforeachprioritytotrackavailablebuffercreditacrosstheUDI.The
countisinitializedto8creditsperport.Thecountisdecrementedeachtimeapacketissentacrossthe
UDIforaport.Eachportbuffergrouphasabufferreleasesignalwhichindicatesthereleaseofapacket
fromthelogicallayerbuffertotheport'sphysicalbuffer,thusindicatingthefreeingupofspaceinthe
port'slogicalbuffer.
Apriorityarbiteremptiesthelogicallayerbufferwiththehighestpriorityavailablefirst.Forexample,it
emptiesallavailablepriority3buffersbeforepriority2,1,or0.
ThephysicallayerbuffersactlikeaFIFOunlessthereisaretryofapacketfromtheconnecteddevice,in
whichcaseare-orderingalgorithmisused.Thealgorithmsearchesbackwardthroughthebuffergroupfor
thefirstpacketwiththehighestpriority.Iftherearenohigherprioritypacketsinthequeue,thecurrent
packetissentagain.Asanexampleofthere-orderingalgorithm,supposeaphysicallayerbuffergroup
containspacketswiththefollowingpriorities:
00123310
wheretheleftmost0representsthepacketthatwasthefirstin,orheadofthequeue.Ifthispacketis
retried,thenextpackettobesentistheearliestpacketwithpriority3(thelefthand3).Ifthatpacketissent
successfully,thephysicallayerattemptstosendtheoriginalretriedpacketagain;otherwise,thephysical
layerrepeatsthere-orderingalgorithm.
Atanytime,ifoneofthecreditcountersreaches0,nomorebuffercreditisavailable.Thefollowing
describeshowtheprotocolunitsdealwiththiscase.
MAUorRXU.InthecaseoftheMAUortheRXU,alloutboundpacketsareresponsepackets.Asaresult,
theMAUorRXUisfreetopromoteapacket’spriorityleveluntilpriority3isreached.Ifpriority3cannot
warrantacredit,theMAUorRXUkeepsretryingonpriority3untilcreditisavailable.Theassumptionis
thatifallprioritylevelsbecomebackedup,thephysicallayerre-orderingmechanismwillbeimplemented
tosendoutthehighestprioritypacketsfirst.
LSUs.Forsingle-packettransfers,ifthetransferisunsuccessfulafter256timesofcreditrequest,a
completioncodeof111bisindicatedintheLSUstatusregister(LSUn_REG6).Afterreadingthisstatus,
softwaremustdeterminewhethertotryagain,increasethepriority,ortryadifferentcontrolflow.
Fortransfers(withupto4K-bytepayloads)requiringmultiplepackets,ifthetransferisunsuccessfulafter
256timesofcreditrequestforthefirstpacket,acompletioncodeof111bisindicatedinLSUn_REG6.
Afterthefirstpacketissuccessfullycompleted,subsequentpacketsaregivenmoreretryattempts.The
LSUmakesupto64Kattemptstogainoutboundcreditforthesubsequentpackets.IftheLSUis
unsuccessfulafterthe64Kattempts,acompletioncodeof111bisindicatedinLSUn_REG6.
TXU.TheTXUcannotchangestatetohandleinboundresponseswhileitisrequestingoutboundcredit.
Toavoiddeadlocksituations,theTXUtriesforoutboundcreditinthefollowingmanner.
Forsingle-segmentmessages,ifthetransferisunsuccessfulafter256timesofcreditrequest,theTXU
movestothenextqueueintheround-robinloopofTXbufferdescriptorqueues.TheTXUtriestosendthe
unsentmessageagainthenexttimetheround-robinschedulerreturnstothegivenqueue.
76SerialRapidIO(SRIO)SPRUE13ASeptember2006
SubmitDocumentationFeedback