<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ò) 收藏
          總線的基本任務(wù)是實(shí)現(xiàn)數(shù)據(jù)傳送,將一組數(shù)據(jù)從一個(gè)設(shè)備傳送到另一個(gè)設(shè)備,當(dāng)然總線也可以將一個(gè)設(shè)備的數(shù)據(jù)廣播到多個(gè)設(shè)備。在處理器系統(tǒng)中,這些數(shù)據(jù)傳送都要依賴一定的規(guī)則,PCI總線并不例外。

          PCI總線使用單端并行數(shù)據(jù)線,采用地址譯碼方式進(jìn)行數(shù)據(jù)傳遞,而采用ID譯碼方式進(jìn)行配置信息的傳遞。其中地址譯碼方式使用地址信號(hào),而ID譯碼方式使用PCI設(shè)備的ID號(hào),包括Bus Number、Device Number、Function Number和Register Number。下文將以圖1?1中的處理器系統(tǒng)為例,簡要介紹PCI總線支持的總線事務(wù)及其傳送方式。

          本文引用地址:http://www.ex-cimer.com/article/201612/330476.htm

          如表1?2所示,PCI總線支持多種總線事務(wù)。而本節(jié)重點(diǎn)介紹存儲(chǔ)器讀寫總線事務(wù),I/O讀寫總線事務(wù),并在第2.4節(jié)詳細(xì)介紹配置讀寫總線事務(wù)。值得注意的是,PCI設(shè)備只有在系統(tǒng)軟件初始化配置空間之后,才能夠被其他主設(shè)備訪問。

          當(dāng)PCI設(shè)備的配置空間被初始化之后,該設(shè)備在當(dāng)前的PCI總線樹上將擁有一個(gè)獨(dú)立的PCI總線地址空間,即BAR((Base Address Register)寄存器所描述的空間,有關(guān)BAR寄存器的詳細(xì)說明見第2.3.2節(jié)。

          處理器與PCI設(shè)備進(jìn)行數(shù)據(jù)交換,或者PCI設(shè)備之間進(jìn)行存儲(chǔ)器數(shù)據(jù)交換時(shí),都將通過PCI總線地址完成。而PCI設(shè)備與主存儲(chǔ)器進(jìn)行DMA操作時(shí),使用的也是PCI總線域的地址,而不是存儲(chǔ)器域的地址,此時(shí)HOST主橋?qū)⑼瓿蒔CI總線地址到存儲(chǔ)器域地址的轉(zhuǎn)換,不同的HOST主橋進(jìn)行地址轉(zhuǎn)換時(shí)使用的方法并不相同。

          PCI總線的配置讀寫總線事務(wù)與HOST主橋與PCI橋相關(guān),因此讀者需要了解HOST主橋和PCI橋的詳細(xì)實(shí)現(xiàn)機(jī)制之后,才能深入理解這部分內(nèi)容。本篇將在第2.4節(jié)詳細(xì)介紹這些內(nèi)容。在下文中,我們假定所使用的PCI設(shè)備的配置空間已經(jīng)被系統(tǒng)軟件初始化。

          PCI總線支持以下幾類存儲(chǔ)器讀寫總線事務(wù)。

          (1)HOST處理器對(duì)PCI設(shè)備的BAR空間進(jìn)行數(shù)據(jù)讀寫,BAR空間可以使用存儲(chǔ)器或者I/O譯碼方式。HOST處理器使用PCI總線的存儲(chǔ)器讀寫總線事務(wù)和I/O讀寫總線事務(wù)訪問PCI設(shè)備的BAR空間。

          (2)PCI設(shè)備之間的數(shù)據(jù)傳遞。在PCI總線上的兩個(gè)設(shè)備可以直接通信,如一個(gè)PCI設(shè)備可以訪問另外一個(gè)設(shè)備的BAR空間。不過這種數(shù)據(jù)傳遞在PC處理器系統(tǒng)中,較少使用。

          (3)PCI設(shè)備對(duì)主存儲(chǔ)器進(jìn)行讀寫,即DMA讀寫操作。DMA讀寫操作在所有處理器系統(tǒng)中都較為常用,也是PCI總線數(shù)據(jù)傳送的重點(diǎn)所在。在多數(shù)情況下,DMA讀寫操作結(jié)束后將伴隨著中斷的產(chǎn)生。PCI設(shè)備可以使用INTA#、INTB#、INTC#和INTD#信號(hào)提交中斷請(qǐng)求,也可以使用MSI機(jī)制提交中斷請(qǐng)求。

          1.3.1PCI總線事務(wù)的時(shí)序

          PCI總線使用第1.2節(jié)所述的信號(hào)進(jìn)行數(shù)據(jù)和配置信息的傳遞,一個(gè)PCI總線事務(wù)的基本訪問時(shí)序如圖1?3所示,與PCI總線事務(wù)相關(guān)的控制信號(hào)有FRAME#、IRDY#、TRDY#、DEVSEL#等其他信號(hào)。


          當(dāng)一個(gè)PCI主設(shè)備需要使用PCI總線時(shí),需要首先發(fā)送REQ#信號(hào),通過總線仲裁獲得總線使用權(quán),即GNT#信號(hào)有效后,使用以下步驟完成一個(gè)完整PCI總線事務(wù),對(duì)目標(biāo)設(shè)備進(jìn)行存儲(chǔ)器或者I/O地址空間的讀寫訪問。

          (1)當(dāng)PCI主設(shè)備獲得總線使用權(quán)之后,將在CLK1的上升沿置FRAME#信號(hào)有效,啟動(dòng)PCI總線事務(wù)。當(dāng)PCI總線事務(wù)結(jié)束后,F(xiàn)RAME#信號(hào)將被置為無效。

          (2)PCI總線周期的第一個(gè)時(shí)鐘周期(CLK1的上升沿到CLK2的上升沿之間)為地址周期。在地址周期中,PCI主設(shè)備將訪問的目的地址和總線命令分別驅(qū)動(dòng)到AD[31:0]和C/BE#信號(hào)上。如果當(dāng)前總線命令是配置讀寫,那么IDSEL信號(hào)線也被置為有效,IDSEL信號(hào)與PCI總線的AD[31:11]相連,詳見第2.4.4節(jié)。

          (3)當(dāng)IRDY#、TRDY#和DEVSEL#信號(hào)都有效后,總線事務(wù)將使用數(shù)據(jù)周期,進(jìn)行數(shù)據(jù)傳遞。當(dāng)IRDY#和TRDY#信號(hào)沒有同時(shí)有效時(shí),PCI總線不能進(jìn)行數(shù)據(jù)傳遞,PCI總線使用這兩個(gè)信號(hào)進(jìn)行傳送控制。

          (4)PCI總線支持突發(fā)周期,因此在地址周期之后可以有多個(gè)數(shù)據(jù)周期,可以傳送多組數(shù)據(jù)。而目標(biāo)設(shè)備并不知道突發(fā)周期的長度,如果目標(biāo)設(shè)備不能繼續(xù)接收數(shù)據(jù)時(shí),可以disconnect當(dāng)前總線事務(wù)。值得注意的是,只有存儲(chǔ)器讀寫總線事務(wù)可以使用突發(fā)周期。

          一個(gè)完整的PCI總線事務(wù)遠(yuǎn)比上述過程復(fù)雜的多,因?yàn)镻CI總線還支持許多傳送方式,如雙地址周期、fast back-to-back(快速背靠背)、插入等待狀態(tài)、重試和斷連、總線上的錯(cuò)誤處理等一系列總線事務(wù)。本篇不一一介紹這些傳送方式。

          1.3.2Posted和Non-Posted傳送方式

          PCI總線規(guī)定了兩類數(shù)據(jù)傳送方式,分別是Posted和Non-Posted數(shù)據(jù)傳送方式。其中使用Posted數(shù)據(jù)傳送方式的總線事務(wù)也被稱為Posted總線事務(wù);而使用Non-Posted數(shù)據(jù)傳送方式的總線事務(wù)也被稱為Non-Posted總線事務(wù)。

          其中Posted總線事務(wù)指PCI主設(shè)備向PCI目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)傳遞時(shí),當(dāng)數(shù)據(jù)到達(dá)PCI橋后,即由PCI橋接管來自上游總線的總線事務(wù),并將其轉(zhuǎn)發(fā)到下游總線。采用這種數(shù)據(jù)傳送方式,在數(shù)據(jù)還沒有到達(dá)最終的目的地之前,PCI總線就可以結(jié)束當(dāng)前總線事務(wù),從而在一定程度上解決了PCI總線的擁塞。

          而Non-Posted總線事務(wù)是指PCI主設(shè)備向PCI目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)傳遞時(shí),數(shù)據(jù)必須到達(dá)最終目的地之后,才能結(jié)束當(dāng)前總線事務(wù)的一種數(shù)據(jù)傳遞方式。

          顯然采用Posted傳送方式,當(dāng)這個(gè)Posted總線事務(wù)通過某條PCI總線后,就可以釋放PCI總線的資源;而采用Non-Posted傳送方式,PCI總線在沒有結(jié)束當(dāng)前總線事務(wù)時(shí)必須等待。這種等待將嚴(yán)重阻塞當(dāng)前PCI總線上的其他數(shù)據(jù)傳送,因此PCI總線使用Delayed總線事務(wù)處理Non-Posted數(shù)據(jù)請(qǐng)求,使用Delayed總線事務(wù)可以相對(duì)緩解PCI總線的擁塞。Delayed總線事務(wù)的詳細(xì)介紹見第1.3.5節(jié)。

          PCI總線規(guī)定只有存儲(chǔ)器寫請(qǐng)求(包括存儲(chǔ)器寫并無效請(qǐng)求)可以采用Posted總線事務(wù),下文將Posted存儲(chǔ)器寫請(qǐng)求簡稱為PMW(Posted Memory Write),而存儲(chǔ)器讀請(qǐng)求、I/O讀寫請(qǐng)求、配置讀寫請(qǐng)求只能采用Non-Posted總線事務(wù)。


          上一頁 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); })();