PCI總線操作規(guī)則
1. 一旦復(fù)位完成,應(yīng)保證下列信號(hào)在所有時(shí)鐘的上升沿穩(wěn)定:LOCK#,IRDY#,TRDY#, REQ#,F(xiàn)RAME#,DEVEL#,STOP#,GNT#,REQ64#,ACK64#,SBO#,SDONE#,PERR#,SERR #(只在下降沿)。
2. 保證地址/數(shù)據(jù)在以下各種情況中的相應(yīng)要求:
a. 在FREAME#有效后的第一時(shí)鐘上,無(wú)論地址線AD[31::00]是否全部有用,他們都必須 是穩(wěn)定的。
b. 在REQ64#有效后的第一時(shí)鐘上,無(wú)論地址線AD[64::32] 是否全部有用,他們都必須 是穩(wěn)定的。
c. 在讀操作中,當(dāng)TRDY#有效時(shí),數(shù)據(jù)線AD[31::00]與字節(jié)使能無(wú)關(guān),必須全部穩(wěn)定有效;而在寫操作里,當(dāng)IRDY#有效時(shí),數(shù)據(jù)線AD[31::00]與字節(jié)使能無(wú)關(guān),必須全部穩(wěn)定有效。在其它任何時(shí)間數(shù)據(jù)線的狀態(tài)都是不確定的。在讀寫操作中,一旦相應(yīng)的TR DY#或IRDY#有效,數(shù)據(jù)線就不能發(fā)生變化直到當(dāng)前數(shù)據(jù)期完成為止。
d. 在讀/寫傳輸中,當(dāng)ACK64#和TRDY#/IRDY#有效時(shí),數(shù)據(jù)線AD[63::32]與字節(jié)使能無(wú)關(guān)應(yīng)全部穩(wěn)定有效,而在其它任何時(shí)間都是不確定的。
e. 在特殊周期命令中,當(dāng)IRDY#有效時(shí),數(shù)據(jù)線AD[31::00]在傳輸期穩(wěn)定有效且與字節(jié)使能無(wú)關(guān)。
f. 在讀/寫傳輸中,當(dāng)TRDY#/IRDY#有效后,不能向PCI總線上發(fā)異步數(shù)據(jù)。
3. 命令/字節(jié)使能線的狀態(tài)應(yīng)滿足下述要求:
a. 作為總線命令的C/BE[3::0]#和C/BE[7::4]#,分別在FRAME#和REQ64#初次建立時(shí)保持穩(wěn)定;有效并且含有相應(yīng)的命令碼。
b. 作為字節(jié)使能的C/BE[3::0]和C/BE[7::4]#,在地址期過后的時(shí)鐘上以及整個(gè)數(shù)據(jù)期的每個(gè)時(shí)鐘周期都是穩(wěn)定有效的,并且不受等待周期插入的影響。在突發(fā)傳輸期內(nèi),主設(shè)備可以在每個(gè)數(shù)據(jù)期完成時(shí),所對(duì)應(yīng)的時(shí)鐘上修改字節(jié)使能,但次修改值要在下一個(gè)時(shí)鐘上才能有效。
4. PAR在AD[31::0]有效后的一個(gè)時(shí)鐘上穩(wěn)定有效;PAR64在AD[63::32]有效后的一個(gè)時(shí)鐘上穩(wěn)定有效。
5. IDSEL只在配置訪問時(shí)相應(yīng)的FRAME#建立后的第一個(gè)時(shí)鐘上穩(wěn)定有效,而在其它任何時(shí)間都是不確定的。
6. 對(duì)于RST#,IRQA#,IRQB#,IRQC#和IRQD#沒有限制或者說是異步的。
7. 當(dāng)FRAME#和IRDY#無(wú)效而GNT#有效時(shí),一個(gè)設(shè)備可以啟動(dòng)一次訪問。
8. FRAME#信號(hào)的初次建立就標(biāo)志著一次傳輸?shù)拈_始。
9. 在所有的PCI傳輸中,F(xiàn)RAME#和IRDY#應(yīng)符合下列條件:
a. FRAME#和IRDY#定義了總線的忙/閑狀態(tài)。當(dāng)其中一個(gè)有效時(shí),總線是忙的;兩個(gè)都無(wú)效時(shí),總線處于空閑狀態(tài)。
b. 一旦FRAME#被置為無(wú)效,在同一傳輸期間不能重新設(shè)置。
c. 除非設(shè)置IRDY#無(wú)效,一般情況下不能設(shè)置FRAME#無(wú)效。
d. 一旦主設(shè)備設(shè)置IRDY#,直到當(dāng)前數(shù)據(jù)期結(jié)束為止,主設(shè)備不能改變IRDY#和FRAME#的狀態(tài)。
10.當(dāng)下列條件之一滿足時(shí),表明最后一個(gè)數(shù)據(jù)期已經(jīng)完成:
a. FRAME#無(wú)效而TRDY#有效(正常終止方式)。
b. FRAME#無(wú)效而STOP#有效(目標(biāo)終止方式)。
c. FRAME#無(wú)效并且設(shè)備選擇計(jì)時(shí)器已經(jīng)計(jì)滿(主設(shè)備廢止方式)。
d. DEVSEL#無(wú)效而STOP#有效(目標(biāo)廢止方式)。
11.當(dāng)FRAME#和IRDY#無(wú)效時(shí),表示傳輸結(jié)束。
12.下列一般規(guī)則在所有PCI傳輸中對(duì)于FRAME#、IRDY#、TRDY#、STOP#都有效:
a. 每當(dāng)STOP#發(fā)出時(shí),F(xiàn)RAME#必須盡快地撤消,但要符合撤消FRAME#的規(guī)則,即必須發(fā)出IRDY#。FRAME#的撤消應(yīng)盡快在STOP#發(fā)出之后2-3個(gè)時(shí)鐘周期之內(nèi)實(shí)現(xiàn)。目標(biāo)設(shè)備不能假設(shè)STOP#的發(fā)出和FRAME#的撤消之間有任何時(shí)間關(guān)系,而是必須保持STOP#信號(hào)一直到FRAME#撤消為止。當(dāng)主設(shè)備取樣發(fā)現(xiàn)STOP#有效時(shí),它就必須在有IRDY#的周期后面的第一個(gè)周期內(nèi)將FRAME#撤消。IRDY#的發(fā)出和FRAME#的撤消動(dòng)作可以作為主設(shè)備正常的IRD Y#行為,并根據(jù)主設(shè)備何時(shí)準(zhǔn)備完成一次數(shù)據(jù)傳輸而延遲0個(gè)或者多個(gè)周期。然而,如果TRDY#無(wú)效,主設(shè)備便可立即發(fā)出IRDY#,因?yàn)檫@時(shí)不會(huì)發(fā)生數(shù)據(jù)傳輸。
b. STOP#一旦建立,就必須保持到FRAME#撤消為止,接著STOP#也必須撤消。
c. 一旦目標(biāo)設(shè)備發(fā)出了TRDY#或STOP#,它就不能改變DEVSEL#、TRDY#和STOP#信號(hào),直到當(dāng)前的數(shù)據(jù)期完成。
13. 主設(shè)備和目標(biāo)設(shè)備之間的數(shù)據(jù)傳送發(fā)生于每個(gè)TRDY#和IRDY#同時(shí)有效的時(shí)鐘沿上。
14. 當(dāng)數(shù)據(jù)有效時(shí),要求數(shù)據(jù)源無(wú)條件發(fā)出XRDY#信號(hào)(寫傳輸為IRDY#,讀傳輸為TRDY# )。接受設(shè)備也必須發(fā)出它的XRDY#信號(hào)。
15. 如果當(dāng)前傳輸被目標(biāo)終止時(shí),主設(shè)備必須撤消它的REQ#信號(hào)至少兩個(gè)PCI時(shí)鐘周期, 一個(gè)是總線進(jìn)入的第一個(gè)空閑周期,另一個(gè)在此空閑周期之前或之后。
16. 一個(gè)設(shè)備通過DEVSEL#信號(hào)表明它是被訪問的目標(biāo)。
17. DEVSEL#的發(fā)出必須早于或同時(shí)于目標(biāo)使能輸出時(shí)所對(duì)應(yīng)的時(shí)鐘邊沿。
18. 一旦DEVSEL#建立,除非被目標(biāo)廢止,否則在最后一個(gè)數(shù)據(jù)期完成之前,不允許將它撤消。
19. LOCK#信號(hào)具有獨(dú)占性并且只能由一個(gè)設(shè)備驅(qū)動(dòng),當(dāng)總線釋放時(shí)它仍可以保留。
20. 在PCI總線上,一個(gè)支持LOCK#的目標(biāo)設(shè)備必須遵守下列規(guī)則:
a. 當(dāng)LOCK#在地址期中撤消時(shí),被訪問的設(shè)備要將自身鎖定。
b. 一旦建立了鎖,目標(biāo)將保持鎖定狀態(tài),直到取樣發(fā)現(xiàn)FRAME#和LOCK#一起撤消或者發(fā)出目標(biāo)廢止。
c. 保證LOCK#信號(hào)所有者的獨(dú)占性,一旦鎖已建立,至少有16個(gè)字節(jié)的資源,最多可以鎖定整個(gè)資源。
21.在PCI總線上,使用LOCK#的主設(shè)備必須遵循以下規(guī)則:
a. 在鎖操作期間,一個(gè)主設(shè)備只能訪問一個(gè)單一的資源。
b. 一個(gè)鎖不能跨越設(shè)備邊界。
c. 16個(gè)對(duì)齊的字節(jié)是一個(gè)主設(shè)備在鎖操作中執(zhí)行互斥時(shí)可以計(jì)算的最大資源,對(duì)16字 節(jié)塊內(nèi)任何字節(jié)的互斥訪問,將會(huì)鎖住整個(gè)16字節(jié)的塊。
d. 鎖操作中的第一個(gè)傳輸必須是讀傳輸。
e. LOCK#必須在緊跟地址期的時(shí)鐘上被設(shè)置,并保持設(shè)置以繼續(xù)控制。
f. 在數(shù)據(jù)期結(jié)束之前,如果出現(xiàn)再試并且鎖還沒有建立時(shí),應(yīng)該釋放LOCK#。
g. 無(wú)論何時(shí),在一存取被主、從設(shè)備打斷時(shí),必須釋放LOCK#。
h. 在連續(xù)的鎖操作中,LOCK#必須被置成一個(gè)最小空閑周期。
22.仲裁器可以在任何時(shí)鐘置某一設(shè)備的GNT#信號(hào)無(wú)效。
23.GNT#一旦建立,其撤消應(yīng)符合以下規(guī)則:
a. 如果總線不是處于空閑狀態(tài),有可能一個(gè)GNT#的撤消時(shí)刻碰巧是另一個(gè)GNT#的發(fā)出時(shí)刻。否則,要求一個(gè)GNT#的撤消到下一個(gè)GNT#的發(fā)出之間要有一個(gè)時(shí)鐘的延遲,以避免在AD線和PAR線上出現(xiàn)沖突。
b. 當(dāng)FRAME#無(wú)信號(hào)時(shí),GNT#可以在任何時(shí)間撤消,以便服務(wù)于另一個(gè)主設(shè)備,或者作為對(duì)應(yīng)的REQ#撤消的響應(yīng)。如果GNT#撤消而FRAME#有效并可繼續(xù)下去。
24.當(dāng)仲裁器向一個(gè)設(shè)備發(fā)出了GNT#信號(hào)并且總線處于空閑狀態(tài)時(shí),該設(shè)備必在8個(gè)PCI時(shí)鐘周期內(nèi)將AD[31::0]、C/BE[3::0]#和PAR驅(qū)動(dòng)到有效狀態(tài)。
25.奇偶校驗(yàn)的產(chǎn)生應(yīng)依據(jù)下述規(guī)則:
a. 不管類型及形式,在所有PCI事務(wù)中奇偶校驗(yàn)的計(jì)算方法不變。
b. AD[31::00]、C/BE[3::0]#及PAR上"1"的個(gè)數(shù)等于偶數(shù)。
c. AD[63::32]、C/BE[7::4]#及PAR上"1"的個(gè)數(shù)等于偶數(shù)。
d. 奇偶校驗(yàn)的產(chǎn)生不是可選項(xiàng),它必須由所有PCI從屬設(shè)備完成。
評(píng)論