一、PCI總線信號定義

在一個PCI應用系統中,如果某設備取得了總線控制權,就稱其爲“主設備”;而被主設備選中以進行通信的設備稱爲“從設備”或“目標節點”。對於相應的接口信號線,通常分爲必備的和可選的兩大類。如果只作爲目標的設備,至少需要47條,若作爲主設備則需要49條。利用這些信號線便可以處理數據、地址,實現接口控制、仲裁及系統功能。下面對主設備於目標設備綜合考慮,並按功能分組將這些信號表示於下圖。 

圖中#號表示低電平有效,否則爲高電平有效。

1、系統信號定義

CLK_IN:系統時鐘信號,對於所有的PCI設備都是輸入信號。其頻率最高可達33MHz,最低頻率一般爲0Hz(DC),這一頻率也稱爲PCI的工作頻率。對於PCI的其它信號,除了RST#、IRQB#、IRQC#、IRQD#之外,其餘信號都在CLK的上升沿有效(或採樣)。

RST#_IN:復位信號。用來使PCI專用的特性寄存器和定序器相關的信號恢復規定的初始狀態。至於PCI定序器之外的設備復位後如何變化,本次不說明。但必要的PCI配置寄存器,其復位狀態是明確規定的。每當復位時,PCI的全部輸出信號一般都應驅動到第三態。SERR#信號爲高阻狀態,SBD#和SDONE可驅動到低電平(如果未能提供三態輸出)。REQ#和GNT#必須同時驅動到第三態,不能再復位期間爲高或爲低。爲放置AD、C/BE#及PAR在復位期間浮動,可由中心設備將它們驅動到邏輯低,但不能驅動爲高電平。RST#和CLK可以不同步,但要保證其撤銷的邊沿沒有反彈。當設備請求引導系統時,將相應復位,復位後相應系統引導。

2、地址和數據信號

AD[31..0]:它們是地址、數據多路複用的輸入/輸出信號。在FRAME#有效時,是地址期;在IRDY#和TRDY#同時有效時,是數據期。一個PCI總線的傳輸包含了一個地址信號期和接着的一個(或無限個)數據期。PCI總線支持突發方式的讀寫功能。地址期爲一個時鐘週期,該週期中AD[31..0]線上含有物理地址(32位)。對於I/O操作,它是一個字節地址;若是存儲器操作和配置操作,則是雙字地址。在數據期,AD[7..0]位最低字節,AD[31..24]位最高字節。當IRDY#有效時表示寫數據穩定有效,而TRDY#有效時表示讀數據穩定有效。

C/BE[3..0]#:它們是總線命令和字節使能多路複用信號線。在地址週期中,這四條線上傳輸的是總線命令;在數據期內,它們傳輸的是字節使能信號,用來表示在整個數據期中,AD[31..0]上哪些字節位有效數據。

3、接口控制信號

FRAME#:幀週期信號。由當前主設備驅動,表示一次訪問的開始和持續時間。FRAME#的有效預示着總線傳輸的開始;在其存在期間,意味着數據傳輸繼續進行;FRAME#失效後,是傳輸最後一個數據期。

IDRY#:主設備準備好信號。該信號的有效表明發起本次傳輸的設備能夠完成一個數據期。它要與TRDY#配合使用,二者同時有效,數據方能完整傳輸,否則即爲等待週期。在讀週期,該信號有效時,表示數據變量已在AD[31..0]中;在寫週期,該信號有效時,表示從設備已做好接收數據的準備。

TRDY#:從設備準好信號。該信號有效表示從設備已作好完成當前數據傳輸的準備工作,也就是說,可以進行相應的數據傳輸。同樣該信號要與IRDY#配合使用,二者同時有效,數據才能完整傳輸。在寫週期內該信號有效表示從設備已做好接收數據的準備;在讀週期內,該信號有效表示有效數據已提交到AD[31..0]中。同理,IRDY#和TRDY#的任何一個無效時都爲等待週期。

STOP#:停止數據傳送信號。當它有效時,表示從設備要求主設備終止當前數據傳送。很顯然,該信號由從設備發出。

LOCK#:鎖定信號。當該信號有效時,表示驅動它的設備所進行的操作可能需要多個傳輸才能完成。也就是說,對此設備的操作時排它性的。而此時,未被鎖定的設備,對它的非互斥訪問仍然可以進行。LOCK#信號的控制是由PCI總線上發起數據傳輸的設備,根據它自己的約定並結合GNT#信號來完成的。即使由幾個不同設備在使用總線,但對LOCK#信號的控制權只屬於一個主設備。如果某一設備具有可執行存儲器,那麼它也必須能實現鎖定,以便實現對該存儲器的完全獨佔性訪問。對於支持鎖定的目標設備,必須能提供一個互斥訪問塊,且該塊不能小於16個字節。由於主橋後面是系統存儲器,所以也應能實現鎖定。

IDSEL_IN:初始化設備選擇信號。在參數配置讀寫傳輸期間,用作片選信號。

DEVSEL#:設備選擇信號。在該信號有效時,表示驅動它的設備已成爲當前訪問的從設備。換言之,它的有效說明總線某處的某一個設備已被選中。

3、仲裁信號

REQ#:總線佔用請求信號。該信號一旦有效即表示驅動它的設備要求使用總線,它時一個點到點的信號線,任何主設備都有其REQ#信號。

GNT#:總線佔用允許信號,用來向申請佔用總線的設備表示,其請求已獲得批准。這也是一個點到點的信號線,任何主設備都應由自己的GNT#信號。

4、錯誤報告信號

PERR#:數據奇偶檢驗錯誤報告信號。但該信號不報告特殊週期中的數據奇偶錯。一個設備只有在響應設備選擇信號(DEVSEL#)和完成數據期之後,才能報告一個PERR#。對於每個數據接收設備,如果發現數據有錯誤,就應在數據接收的兩個時鐘週期內將PERR#激活。該信號的持續時間與數據期的多少有關,如果是一個數據期,則最小持續時間爲一個時鐘週期;若是一連串的數據期並且每個數據期都有錯,那麼PERR#的持續時間將多於一個時鐘週期。由於該信號是持續的三態信號,因此,該信號在釋放前必須先驅動爲高電平。另外,對於數據奇偶錯的報告既不能丟失也不能推遲。

SERR#:系統錯誤報告信號。該信號的作用是報告地址奇偶錯、特殊命令序列中的奇偶錯,以及其它可能引起災難性後果的系統錯誤。如果設備不希望產生非屏蔽中斷,就應採用其它機制來實現SERR#的報告。由於SERR#是一個漏極開路信號,因此,報告此類錯誤的設備只需將該信號驅動一個PCI週期即可。SERR#信號的發出和時鐘同步,因而滿足總線上所有其它信號的建立時間和保持時間的要求。要使該信號復位,需要一個微弱的上拉作用,但這應由系統設計來提供,而不是靠報錯的設備或中央資源。一般這種上拉復位需要2~3個時鐘週期才能完成。

5、中斷信號

中斷信號在PCI總線中使可選項,不一定必須具有。並且中斷信號屬於電平敏感性,低電平有效,使用漏極開路方式驅動。同時,此類信號的建立和撤銷與時鐘不同步。對於單功能設備,只有一條中斷線,而多功能設備最多可有四條中斷線。在前一種情況下,只能使用INTA#,其它三條中斷線沒有意義。所謂的多功能設備是指:將幾個相互獨立的功能集中在一個設備中。

PCI局部總線中共有四條中斷線,分別是:INTA#、INTB#、INTC#和INTD#,均爲O/D(漏極開路)。其作用是:用以親貴一箇中斷。後三個只能用於多功能設備。

一個多功能設備上的任何功能都可以連接到四條中斷線的任意一條。也就是說,各功能與中斷線之間的連接時任意的,沒有附件限制,二者的最終對應關係是由中斷引腳寄存器來定義的。這顯然提供了很大的靈活性。如果一個設備要實現一箇中斷,就定義爲INTA#;要實現兩個中斷,就定義爲INTA#和INTB#,依此類推。對於多功能設備,可以多個功能共用同一條中斷線,或者各自佔一條中斷線,或者是兩種情況的組合,但是,對於單功能設備,絕對不能再多於一條中斷線上發中斷請求。

系統供應商再對PCI連接器的各個中斷信號和中斷控制器進行連接時,其方法是隨意的,可以是線或方式、程控電子開關方式,或者是二者的結合,這就是說,設備驅動程序對於中斷共享事先無法作出任何假定。

6、其它可選信號

1)高速緩存支持信號

爲了使具有可緩存功能的PCI存儲器能夠和寫穿式(Write-through)或者回寫式(Write-back)的Cache相配合工作,可緩存的PCI存儲器應該能實現兩條高速緩存(Cache)支持信號作爲輸入。如果可緩存的存儲器位於PCI總線上。那麼,連接回寫式Cache和PCI的橋要能夠將這對信號作爲輸出,而連接寫穿式Cache的橋只需要實現一個信號。上述的兩個信號的定義如下:

SBO#:試探返回信號。當該信號有效時,表示命中了一個修改過的行。當該信號無效時,而SDONE信號有效時,表示有一個“乾淨”的試探效果。

SDONE:監聽完成信號。用來表示當前監聽的狀態,該信號無效時,表明監聽仍在進行,否則,表明監聽已經完成。

2)64位總線擴展信號

必須注意的是,如果要進行64位擴展,一下信號都要使用。

AD[63..32]:擴展的32位地址和數據複用線。再地址期(如果使用了DAC命令且REQ64#有效時)這32條線上含有64位地址的高32位,否則,它們時保留的;在數據期,當REQ64#和ACK64#同時有效時,這32條線上含有高32位數據。

C/BE[7..4]#:總線命令和字節使能多路複用信號線。在數據期,若REQ64#和ACK64#同時有效時,該四條線上傳輸的是表示數據線上哪些字節是有意義的字節使能信號。在地址期裏,如果使用了DAC命令且REQ64#信號有效,則表明C/BE[7..4]上傳輸的是總線命令,否則這些位是保留的且不確定。

REQ64#:64位傳輸請求。該信號是由當前主設備驅動,並表示本設備要求採用64位通路傳輸數據。它與FRAME#有相同的時序。

ACK64#:64位傳輸認可。表明從設備將用64位傳輸。此信號由從設備驅動,並且和DEVSEL#具有相同的時序。

PAR64:奇偶雙字節校驗,是AD[64..32]和C/BE[7..4]的檢驗位。當REQ64#有效且C/BE[3..0]#上是DAC命令時,PAR64將在初始地址期之後的一個時鐘週期內有效,並在DAC命令的第二地址期過後的一個時鐘處失效。當REQ64#和ACK64#同時有效時,PAR64在各數據期內穩定有效,並且在IRDY#或TRDY#發出後的一個時鐘處失效。PAR64信號一旦有效,將保持到數據期完成之後的一個時鐘週期處。該信號與AD[63..32]的時序相同,但拖後一個時鐘週期,對於主設備是爲了地址和寫數據而發PAR64,從設備是爲了讀數據而發PAR64。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章