<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PCI總線的存儲(chǔ)器讀寫總線事務(wù)

          PCI總線的存儲(chǔ)器讀寫總線事務(wù)

          作者: 時(shí)間:2016-12-15 來源:網(wǎng)絡(luò) 收藏

          (1)首先PCI設(shè)備11將存儲(chǔ)器讀請求發(fā)向PCI總線x1。

          (2)PCI總線x1上的所有設(shè)備監(jiān)聽這個(gè)請求,因?yàn)镻CI設(shè)備11是從存儲(chǔ)器中讀取數(shù)據(jù),所以PCI總線x1上的設(shè)備,如PCI設(shè)備12,不會(huì)接收這個(gè)數(shù)據(jù)請求。PCI橋x1發(fā)現(xiàn)下游PCI總線沒有設(shè)備接收這個(gè)數(shù)據(jù)請求,則接收這個(gè)數(shù)據(jù)請求,并將這個(gè)數(shù)據(jù)請求推到上游PCI總線上,即PCI總線x0上。

          (3)PCI總線x0上的設(shè)備將監(jiān)聽這個(gè)請求。PCI總線x0上的設(shè)備也不會(huì)接收這個(gè)數(shù)據(jù)請求,最后這個(gè)數(shù)據(jù)請求將由HOST主橋x接收。

          (4)HOST主橋x發(fā)現(xiàn)這個(gè)數(shù)據(jù)請求是發(fā)向主存儲(chǔ)器,則將來自PCI總線x0的PCI總線地址轉(zhuǎn)換為存儲(chǔ)器地址,之后通過存儲(chǔ)器控制器將數(shù)據(jù)讀出,并轉(zhuǎn)發(fā)到HOST主橋x。

          (5)HOST主橋x將數(shù)據(jù)經(jīng)由PCI橋x1傳遞到PCI設(shè)備11,PCI設(shè)備11接收到這個(gè)數(shù)據(jù)后結(jié)束DMA讀。

          以上過程僅是PCI設(shè)備向存儲(chǔ)器讀寫數(shù)據(jù)的一個(gè)簡單流程。如果考慮處理器中的Cache,這些存儲(chǔ)器讀寫過程較為復(fù)雜。

          PCI總線還允許PCI設(shè)備之間進(jìn)行數(shù)據(jù)傳遞,PCI設(shè)備間的數(shù)據(jù)交換較為簡單。在實(shí)際應(yīng)用中,PCI設(shè)備間的數(shù)據(jù)交換并不常見。下文以圖1?1為例,簡要介紹PCI設(shè)備11將數(shù)據(jù)寫入PCI設(shè)備01的過程;請讀者自行考慮PCI設(shè)備11從PCI設(shè)備01讀取數(shù)據(jù)的過程。

          (1)首先PCI設(shè)備11將PCI寫總線事務(wù)發(fā)向PCI總線x1上。PCI橋x1和PCI設(shè)備12同時(shí)監(jiān)聽這個(gè)寫總線事務(wù)。

          (2)PCI橋x1將接收這個(gè)PCI寫請求總線事務(wù),并將這個(gè)PCI寫總線事務(wù)上推到PCI總線x0。

          (3)PCI總線x0上的所有設(shè)備將監(jiān)聽這個(gè)PCI寫總線事務(wù),最后由PCI設(shè)備01接收這個(gè)數(shù)據(jù)請求,并完成PCI寫事務(wù)。

          1.3.5Delayed傳送方式

          如上文所述,如果處理器使用Non-Posted總線周期對PCI設(shè)備進(jìn)行讀操作,或者PCI設(shè)備使用Non-Posted總線事務(wù)對存儲(chǔ)器進(jìn)行讀操作時(shí),如果數(shù)據(jù)沒有到達(dá)目的地,那么在這個(gè)讀操作路徑上的所有PCI總線都不能被釋放,這將嚴(yán)重影響PCI總線的使用效率。

          為此PCI橋需要對Non-Posted總線事務(wù)進(jìn)行優(yōu)化處理,并使用Delayed總線事務(wù)處理這些Non-Posted總線事務(wù),PCI總線規(guī)定只有Non-Posted總線事務(wù)可以使用Delayed總線事務(wù)。PCI總線的Delay總線事務(wù)由Delay讀寫請求和Delay讀寫完成總線事務(wù)組成,當(dāng)Delay讀寫請求到達(dá)目的地后,將被轉(zhuǎn)換為Delay讀寫完成總線事務(wù)?;贒elay總線請求的數(shù)據(jù)交換如圖1?4所示。

          假設(shè)處理器通過存儲(chǔ)器讀、I/O讀寫或者配置讀寫訪問PCI設(shè)備22時(shí),首先經(jīng)過HOST主橋進(jìn)行存儲(chǔ)器域與PCI總線域的地址轉(zhuǎn)換,并由HOST主橋發(fā)起PCI總線事務(wù),然后通過PCI橋1、2,最終到達(dá)PCI設(shè)備22。其詳細(xì)步驟如下。

          (1)HOST主橋完成存儲(chǔ)器域到PCI總線域的轉(zhuǎn)換,然后啟動(dòng)PCI讀總線事務(wù)。

          (2)PCI橋1接收這個(gè)讀總線事務(wù),并首先使用Retry周期,使HOST主橋擇時(shí)重新發(fā)起相同的總線周期。此時(shí)PCI橋1的上游PCI總線將被釋放。值得注意的是PCI橋并不會(huì)每一次都使用Retry周期,使上游設(shè)備擇時(shí)進(jìn)行重試操作。在PCI總線中,有一個(gè)“16 Clock”原則,即FRAME#信號(hào)有效后,必須在16個(gè)時(shí)鐘周期內(nèi)置為無效,如果PCI橋發(fā)現(xiàn)來自上游設(shè)備的讀總線事務(wù)不能在16個(gè)時(shí)鐘周期內(nèi)結(jié)束時(shí),則使用Retry周期終止該總線事務(wù)。

          (3)PCI橋1使用Delayed總線請求繼續(xù)訪問PCI設(shè)備22。

          (4)PCI橋2接收這個(gè)總線請求,并將這個(gè)Delayed總線請求繼續(xù)傳遞。此時(shí)PCI橋2也將首先使用Retry周期,使PCI橋1擇時(shí)重新發(fā)起相同的總線周期。此時(shí)PCI橋2的上游PCI總線被釋放。

          (5)這個(gè)數(shù)據(jù)請求最終到達(dá)PCI設(shè)備22,如果PCI設(shè)備22沒有將數(shù)據(jù)準(zhǔn)備好時(shí),也可以使用Retry周期,使PCI橋2擇時(shí)重新發(fā)起相同的總線周期;如果數(shù)據(jù)已經(jīng)準(zhǔn)備好,PCI設(shè)備22將接收這個(gè)數(shù)據(jù)請求,并將這個(gè)Delayed總線請求轉(zhuǎn)換為Delayed總線完成事務(wù)。如果Delayed總線請求是讀請求,則Delayed總線完成事務(wù)中含有數(shù)據(jù),否則只有完成信息,而不包含數(shù)據(jù)。

          (6)Delayed總線完成事務(wù)將“數(shù)據(jù)或者完成信息”傳遞給PCI橋2,當(dāng)PCI橋1重新發(fā)出Non-Posted總線請求時(shí),PCI橋2將這個(gè)“數(shù)據(jù)或者完成信息”傳遞給PCI橋1。

          (7)HOST主橋重新發(fā)出存儲(chǔ)器讀總線事務(wù)時(shí),PCI橋1將“數(shù)據(jù)或者完成信息”傳遞給HOST主橋,最終完成整個(gè)PCI總線事務(wù)。

          由以上分析可知,Delayed總線周期由Delayed總線請求和Delayed總線完成兩部分組成。下文將Delayed讀請求總線事務(wù)簡稱為DRR(Delayed Read Request),Delayed讀完成總線事務(wù)簡稱為DRC(Delayed Read Completion);而將Delayed寫請求總線事務(wù)簡稱為DWR(Delayed Write Request),Delayed寫完成總線事務(wù)簡稱為DWC(Delayed Write Completion)。

          PCI總線使用Delayed總線事務(wù),在一定程度上可以提高PCI總線的利用率。因?yàn)樵谶M(jìn)行Non-Posted總線事務(wù)時(shí),Non-Posted請求在通過PCI橋之后,可以暫時(shí)釋放PCI總線,但是采用這種方式,HOST/PCI橋?qū)?huì)擇時(shí)進(jìn)行重試操作。在許多情況下,使用Delayed總線事務(wù),并不能取得理想的效果,因?yàn)檫^多的重試周期也將大量消耗PCI總線的帶寬。

          為了進(jìn)一步提高Non-Posted總線事務(wù)的執(zhí)行效率,PCI-X總線將PCI總線使用的Delayed總線事務(wù),升級(jí)為Split總線事務(wù)。采用Split總線事務(wù)可以有效解決HOST/PCI橋的這些重試操作。Split總線事務(wù)的基本思想是發(fā)送端首先將Non-Posted總線請求發(fā)送給接收端,然后再由接收端主動(dòng)地將數(shù)據(jù)傳遞給發(fā)送端。

          除了PCI-X總線可以使用Split總線事務(wù)進(jìn)行數(shù)據(jù)傳送之外,有些處理器,如x86和PowerPC處理器的FSB(Front Side Bus)總線也支持這種Split總線事務(wù),因此這些HOST主橋也可以發(fā)起這種Split總線事務(wù)。在PCIe總線中,Non-Posted數(shù)據(jù)傳送都使用Split總線事務(wù)完成,而不再使用Delayed總線事務(wù)。本章將在第1.5.1節(jié)簡要介紹Split總線事務(wù)和PCI-X總線對PCI總線的一些功能上的增強(qiáng)。



          [1]如果是存儲(chǔ)器、I/O讀或者配置讀總線事務(wù),這個(gè)回應(yīng)包含數(shù)據(jù);如果是I/O寫或者配置寫,這個(gè)回應(yīng)不包含數(shù)據(jù)。



          上一頁 1 2 3 下一頁

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();