pcie的ack/nak机制
生活随笔
收集整理的這篇文章主要介紹了
pcie的ack/nak机制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當receiver接收到TLP之后,判斷TLP是否完整,如果有錯誤,則返回ACK給發送端,如果正確的話,則返回ACK。
當發送端收到NAK,則通過retry buffer重發該TLP。如果收到ACK,則將該TLP從rery buffer中刪掉。
需要注意的是,接收端在收到正確的TLP之后,不會馬上發送ACK,而是要等一個叫ACKNAK_LATENCY_TIMER的計數器計數,計數到了之后才會發送ACK。在等待發送ACK的期間,接收端可能會收到多個TLP。如果計數到點的時候,收到了多個TLP,則只要發送帶有最后TLP序號的ACK就行。發送端在接收到這個ACK之后,會將retry buffer中這個ACK序號對應的TLP以及小于這個序號的TLP全部清除。
注意NAK中的序號是上一個成功接收的TLP序號。存在這樣的情況,就是在接收端收到一個錯誤TLP時,已經收到了多個正確的TLP,但由于timer的原因,還未返回ACK,這時接收端需要立刻返回帶有最后一個正確TLP的NAK給發送端。發送端收到這個NAK后,會將retry buffer中對應序號及之前的TLP清理掉,并重發下一個序號的TLP。
轉載于:https://www.cnblogs.com/lybinger/p/10763814.html
總結
以上是生活随笔為你收集整理的pcie的ack/nak机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 影响solr性能的一些因素(附使用经验)
- 下一篇: 并发编程(三)原子操作CAS