這篇文章來詳細(xì)地聊一聊Non-Posted Transaction(包括Ordinary Read、Locked Read和IO/Configuration Writes)與Posted Writes(包括Memory Writes和Message Writes)。
Non-Posted Transaction
o Ordinary Reads
下圖顯示的是一個Endpoint向System Memory發(fā)送讀請求(Read Request)的例子。
在這個例子中,Endpoint的讀請求通過了兩個Switch,然后到達(dá)其目標(biāo),即Root。Root對讀請求的包進(jìn)行解碼后,并從中識別出操作的地址,然后鎖存數(shù)據(jù),并將數(shù)據(jù)發(fā)送至Endpoint,即包含數(shù)據(jù)的Completion包,ClpD。需要注意的是,PCIe允許每個包的最大數(shù)據(jù)量(Max Data Payload)為4KB,但實(shí)際上經(jīng)常需要發(fā)送大于4KB的數(shù)據(jù)。因此,常常一個讀請求會對應(yīng)多個ClpD,即將大于4KB的數(shù)據(jù)分成多個包發(fā)送。如果遇到錯誤,則Root會通過Completion包告知相應(yīng)的Endpoint。
注:Root向發(fā)送請求的Endpoint發(fā)送Completion包,是通過Request包中的BDF信息(Bus,Device和Function)進(jìn)行查找對應(yīng)的Endpoint的。關(guān)于BDF,會在后面的文章詳細(xì)地介紹。
o Locked Reads
Locked請求實(shí)際上是PCIe為了兼容早期的PCI總線而設(shè)置的一種方式,對于非PCI兼容的設(shè)計中,是不允許使用Locked操作的。并且也只有Root可以發(fā)起Locked請求操作,Endpoint是不可以發(fā)起Locked請求操作的。下圖顯示的是一個簡單的Locked Read請求操作:
Locked Read主要用于支持一種叫做Atomic Read-Modify-Write操作,這是一種高優(yōu)先級且不可被打斷的操作。主要用于測試鏈路狀況等任務(wù)(針對PCI設(shè)備,PCIe設(shè)備禁止使用Locked操作)。此外,Locked操作采用的是目標(biāo)存儲尋址(Target Memory Address)來尋找Legacy Endpoint(PCI設(shè)備),而不是采用前面介紹的BDF。
o IO/Configuration Writes
下圖是一個Non-Posted IO寫操作的例子。和Locked操作一樣,IO操作也是為了兼容早期的PCI設(shè)備,在PCIe設(shè)備中也是不建議使用。
Posted Writes
o Memory Writes
前面的文章有所提及,PCIe中的Memory寫操作都是Posted的,因此Requester并不需要來自Completer的Completion。一個簡單的Memory Writes例子如下圖所示:
因此沒有返回Completion,所以當(dāng)發(fā)生錯誤時,Requester也不會知道。但是,此時Completer會將錯誤記錄到日志(Log),然后向Root發(fā)送包含錯誤信息的Message。
o Message Writes
和其他的幾種類型不太一樣,Message支持多種Routing方式。比如Requester可以將Message發(fā)送至一個指定的Completer,但是不管指定的Completer是不是Root,Root都會自動的收到來自任何一個Endpoint發(fā)送的Message。此外,當(dāng)Requester是Root的時候,Requester還可以向所有的Endpoint進(jìn)行廣播發(fā)送Message。
不得不說,Message機(jī)制的提出幫助PCIe總線省去了很多PCI總線中的邊帶信號。PCI中很多用于中斷、功耗管理、錯誤報告的邊帶信號,在PCIe中都通過了Message來進(jìn)行實(shí)現(xiàn)了。
-
pci總線
+關(guān)注
關(guān)注
1文章
203瀏覽量
31777 -
總線
+關(guān)注
關(guān)注
10文章
2859瀏覽量
87914 -
PCIe
+關(guān)注
關(guān)注
15文章
1200瀏覽量
82355
原文標(biāo)題:【博文連載】PCIe掃盲——PCIe總線事務(wù)層入門(二)
文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論