PCI总线协议(一)
? ? 剛開始接觸BIOS開發,目前正在學習關于PCI總線方面的知識,以下是本人根據網上的資料所整理的PCI學習筆記,如果有什么不對的地方,感謝大神的斧正。
? ? 眾所周知,PCI總線是計算機主板上不可或缺的部分,它連接著大部分的硬件設備,可以連接擴展到Super I/O上連接鍵盤和鼠標等低速設備,也可以連接聲卡、網卡等中高速設備,甚至可以擴展PCIe總線連接顯卡這類高速設備。
一、 PCI總線
1、PCI總線簡介
PCI是PeripheralComponent Interconnect(外設部件互連標準)的縮寫,它是一種局部并行總線標準。它的工作頻率是33MHz,PCI總線是一種樹型結構,并且獨立于CPU總線,可以和CPU總線并行操作。PCI總線上可以掛接PCI設備和PCI橋片,PCI總線上只允許有一個PCI主設備,其他的均為PCI 從設備,而且讀寫操作只能在主從設備之間進行,從設備之間的數據交換需要通過主設備中轉。
2、PCI總線主要性能
? ? ? (1)傳輸速率高。在32bit操作系統中最大傳輸為132MB/s,在64bit操作系統中傳輸速率可達到264MB/s。
? ? ? (2)能夠多總線共存。在一個系統中可容納多種總線設備共同工作,允許不同速度的設備一同工作。
? ? ? (3)獨立于CPU。PCI總線不依賴于某一具體的CPU。
? ? ? (4)自動識別與配置外設。用戶使用方便。
? ? ? (5)并行操作能力。一種并行的數據傳輸方式,傳輸效率高。
? ? ? (6)適應不同的電壓環境。可以在5V和3.3V電壓下工作。
3、PCI總線特點
? ? ?(1)高速性。PCI總線的主設備(Master)可與微機內存直接交換數據,而不必經過微機CPU中轉,也提高了數據傳送的效率。
? ? ?(2)即插即用性。而PCI板卡的硬件資源則是由微機根據其各自的要求統一分配,決不會有任何的沖突問題。
? ? ?(3)可靠性。PCI總線增加了奇偶校驗錯(PERR)、系統錯(SERR)、從設備結束(STOP)等控制信號及超時處理等可靠性措施,使數據傳輸的可靠性大為增加。
? ? ?(4)復雜性。硬件設計和軟件開發上的難度增加。
? ? ?(5)自動配置。PCI中有256字節的空間存放配置信息(中斷、存儲地址和某些定時信息)。
? ? ?(6)中斷共享。低電平觸發方式,多個中斷可使用同一中斷。
? ? ?(7)擴展性好。可以多級采用PCI總線進行擴展,都是并發工作。
? ? ?(8)多路復用。采用了地址線和數據線共用一組物理線路
? ? ?(9)嚴格規范。PCI總線對協議、時序、電氣性能、機械性能等指標都有嚴格的規定,保證其可靠性和兼容性。
?
二、 PCI協議基礎
1、 PCI設備引腳介紹
圖1 PCI總線引腳圖
? 按照類型將上述引腳分類,逐個進行介紹。
(1)、系統信號線
CLK:時鐘信號線,系統在時鐘信號上升沿是有效,才能進行傳輸。
RST:復位信號線,在低電平時信號才能進行傳輸。
?
(2)、地址及數據線
? AD0-AD31:地址和數據多路復用的輸入輸出信號。在FRAME有效時是地址周期,在IRDY和TRDY同時有效時是數據周期。在執行地址周期時,地址周期為一個時鐘周期,在該周期中AD0~AD31線上含有一個32位的物理地址,對于I/O操作,它是一個字節地址;若是存儲器操作和配置操作,則是雙字地址。在執行數據周期時,IRDY有效表示寫數據穩定,TRDY有效表示讀數據有效。
C/BE0~3:總線命令和字節使能多路復用信號線。在地址周期內,這四條線上傳輸的是總線命令;在數據周期內,傳輸的是字節使能信號,用來表示在整個數據期中,?AD0~AD31上哪些字節為有效數據。
? ?PAR:奇偶校驗信號。它通過AD[31::00]和C/BE[3::0]進行奇偶校驗。主設備為地址周期和寫數據周期驅動PAR,從設備為讀數據周期驅動PAR。
(3)、接口控制信號線
? ?FRAME:幀周期信號。由當前主設備驅動,表示一次訪問的開始和持續時間。當其?無效時,表示傳輸的最后一個數據周期。
? ?IRDY:主設備準備好信號。該信號有效表明發起本次傳輸的設備(主設備)能夠完成一個數據期。它要與TRDY配合使用,當這兩者同時有效時,才能進行完整的數據傳輸,否則即為等待周期。在寫周期,該信號有效時,表示有效的數據信號已在AD0~AD31中建立;在讀周期,該信號有效時,表示主設備已做好接收數據的準備。
? ?TDRY:從設備準備好信號。該信號有效表示從設備已做好完成當前數據傳輸的準備工作,此時可進行相應的數據傳輸。同樣,該信號要與IRDY配合使用,這兩者同時有效數據才能進行完整傳輸。在寫周期內該信號有效表示從設備已做好了接收數據的準備。在讀周期內,該信號有效表示有效數據已被送入AD0~AD31中,同理,?TRDY和IRDY中的任何一個無效時都為等待周期,此時不能進行數據的傳輸。
? ?STOP:停止數據傳輸信號。從設備發出的信號,表示請求主設備停止發送數據的信號。
? ?LOCK:鎖定信號。有PCI總線上發起數據傳輸的設備控制發出的信號,多個設備在使用PCI總線,但是LOCK指令的控制者只有一個主設備(由GNT信號標識)。當LOCK信號有效時,表示驅動它的設備所進行的操作可能需要多個傳輸才能完成,如果對某一設備具有可執行的存儲器,那么它必須能實現鎖定,以便實現主設備對該存儲器的完全獨占性訪問。對于支持鎖定的目標設備,必須能提供一個互斥訪問塊,且該塊不能小于16?個字節。連接系統存儲器的主橋路也必須使用LOCK信號。
? ?IDSEL:初始化設備選擇信號。在參數配置讀寫傳輸期間,用作片選信號。
? ?DEVSEL:設備選擇信號。由從設備驅動,該信號有效時,表示驅動它的設備已成為當前訪問的從設備。它有效表明總線上的某一設備已被選中。
?
(4)、仲裁信號線
? ?REQ:總線請求信號。該信號一旦有效即表示驅動它的設備要求使用總線。它是一個點到點的信號線,任何主設備都應有自己的REQ信號。
? ?GNT:總線允許信號。用來向申請占用總線的設備表示其請求已獲批準。這也是一?個點到點的信號線,任何主設備都應有自己的GNT信號。
?
(5)、錯誤報告信號線
? ?PERR:數據奇偶校驗錯誤報告信號。但是該信號不報告特殊周期中的數據奇偶錯誤。一個設備只有在響應設備選擇信號DEVSEL和完成數據期之后,才能報告一個PERR。對于每個數據接收設備,如果發現數據有錯誤,就應在數據收到后的兩個時鐘周期將PERR激活。該信號的持續時間與數據期的多少有關,如果是一個數據期,則最小持續時間為一?個時鐘周期;若是一連串的數據期并且每個數據期都有錯,那么PERR的持續時間將多于一個時鐘周期。由于該信號是持續的三態信號,所以該信號在釋放前必須先驅動為高電平。另外,對數據奇偶錯的報告不能丟失也不能推遲,需要實時進行響應。
? ?SERR:系統錯誤報告信號。該信號用于報告地址奇偶錯,特殊命令序列中的數據奇偶錯,以及其他可能引起災難性后果的系統錯誤。?SERR是漏極開路信號,由返遣錯誤的單元驅動,在一個PCI時鐘內有效。SERR信號的發出和時鐘同步,因而滿足總線上所有其他信號的建立時間和保持時間的要求。
?
(6)、中斷信號線
? ?中斷在PCI總線上是可選用的,低電平有效,用漏極開路方式驅動。同時,此類信號的建立和撤銷是與時鐘不同步的。PCI為每一個單功能設備定義一根中斷線。對于多功能設備或連接器,最多可有4條中斷線。對于單功能設備,只能使用INTA,其余3條中斷線無意義。PCI局部總線有四條中斷線,定義如下:
? ?INTA?o/d:中斷A,用于請求一次中斷。??
? ?INTB o/d:中斷B,用于請求一次中斷并只在多功能設備上有意義。?????
? ?INTC o/d:中斷C,功能同中斷B。???
? ?INTD o/d:中斷D,功能同中斷B。?????
多功能設備上的任何一種功能都能連到任何一條中斷線上。中斷寄存器決定該功能用哪一條中斷線去請求中斷。如果一個設備只用一條中斷線,則這條中斷線就稱為INTA,如果該設備用了兩條中斷線,那么它們就稱為INTA和INTB,依此類推。對于多功能設備,可以是所有功能用一條中斷線,也可以是每種功能有自己的一條中斷線,還可以是上兩種情況的綜合。??
???系統供應商在對PCI連接器的各個中斷信號和中斷控制器進行連接時,其方法是隨意的,可以是線或方式、程控電子開關方式,或者是二者的組合,這就是說,設備驅動程序對于中斷共享事先無法作出任何假定,即它必須能夠給任何邏輯設備提供中斷。
?
(7)、高速緩存(Cache)支持信號線
? ?為了使具有可緩存功能的PCI存儲器能夠和貫穿寫(Write-Through)或回寫(Write-?Back)的Cache相配合工作,可緩存的PCI存儲器應該能實現兩條高速緩存支持信號作為輸入。如果可緩存的存儲器位于PCI總線上,那么連接回寫式Cache和PCI的橋路必須要利用兩條引腳,且作為輸出,而連接貫穿寫式Cache的橋只需要實現一個信號。上述兩個信號的定義如下:
? ?SBO in/out:雙向試探返回信號(Snoop?Backoff)。當其有效時,說明對某修改行的一次命中,所訪問的數據為無效數據。當SBO無效而SDONE有效時,說明PCI發起方正在訪問存儲器的有效性并可進行高速緩存的操作。??
? ?SDONE?in/out:監聽完成信號(Snoop?Done),表明對處理器Cache對主存的監聽狀態。當其無效時,說明監聽仍在進行,否則表示監聽已經完成。
?
(8)、64位總線擴展信號線
? ?AD32~AD63?t/s:擴展的32位地址和數據多路復用線。在地址周期(如果使用了雙地址周期DAC命令且REQ64信號有效時)這32條線上含有64位地址的高32位,否則它們是保留的;在數據周期,當REQ64和ACK64同時有效時,這32條線上含有高32位數據。
C/BE 4~7 t/s:總線命令和字節使能多路復用信號線。在數據周期,若REQ64和ACK64同時有效時,該4條線上傳輸的是表示數據線上哪些字節是有意義的字節使能信號。如C/BE4對應第4個字節,C/BE5對應第5個字節。在地址周期內,如果使用了DAC命令且REQ64信號有效,則表明C/BE 4~7上傳輸的是總線命令,否則這些位是保留的且不確定。
? ?REQ64:64位傳輸請求。該信號由當前主設備驅動,表示本設備要求采用64位通路傳輸數據。它FRAME與有相同的時序。
? ?ACK64:64位傳輸認可。表明從設備將用64位傳輸。此信號由從設備驅動,并且和DEVSEL具有相同的時序。
? ?PAR64?t/s:奇偶雙字節校驗。是AD32~AD63和C/BE 4~7的校驗位。當REQ64有效且C/BE 0~3上是DAC命令時,PAR64將在初始地址周期之后一個時鐘周期有效,并在DAC命令的第二個地址周期后的一個時鐘周期失效。當REQ64和ACK64同時有效時,PAR64在備數據期內穩定有效,并且在IRDY或TRDY發出后的第一個時鐘處失效。PAR64信號一旦有效,將保持到數據周期完成之后的一個時鐘周期。該信號與AD32~AD63的時序相同,但延遲一個時鐘周期。該信號線在任何給定的總線周期內應保證連同AD32~AD63和C/BE 4~7在內的所有信號線上的“1”的個數為偶數(偶校驗)或者為奇數(奇校驗)。在發送時產生而在接收時進行校驗。
?
2、PCI總線的傳輸控制
? ?采用猝發成組數據傳輸的傳輸方式,一個分組有一個地址相位和一個或多個數據相位組成。數據傳輸的控制線:
? ?FRAME#:由主設備驅動,說明一次數據傳輸周期的開始和結束。?????
? ?IRDY#:由主設備驅動,表示主設備已經作好傳送數據的準備。?????
? ?TRDY#:由從設備驅動,表示從設備已經作好傳送數據的準備。
? ?當數據有效時,數據源設備需要無條件設置xRDY#(IRDY/TRDY),接收方可以在適當的時間發出xRDY#(TRDY/IRDY)信號。FRAME#信號有效后的第一個時鐘前沿是地址相位的開始,此時,開始傳送地址信息和總線命令,下一個時鐘前沿進入一個或多個數據相位。每當IRDY#和TRDY#同時有效時,所對應的時鐘前沿就使數據在主從設備之間傳送。在此期間,可由主設備或從設備分別利用IRDY#和TRDY#的無效而插入等待周期。
? ?只要數據傳輸已經開始,那么在當前數據相位結束之前,不管是主設備還是從設備都不能撤消命令,必須完成數據傳輸。最后一次數據傳輸時(可能緊接地址相位之后),主設備應撤消FRAME#信號而建立IRDY#,表明主設備已作好了最后一次數據傳輸的準備。當從設備發出TRDY#信號,表明最后一次數據傳輸已經完成,接口轉入空閑狀態,此時FRAME#和IRDY#均被撤消。
對于PCI總線的傳輸,可總結出以下幾條規則:????
? ?①FRAME#和IRDY#決定總線的忙/閑狀態。當其中一個有效時,表示總線忙;兩個都無效時,總線進入空閑狀態。?
? ?②一旦FRAME#被置為無效,在同一傳輸期間不能重新置為有效。?
? ?③除非設置IRDY#,一般情況下不能設置FRAME#無效(在FRAME#無效后的第一個時鐘沿IRDY#必須保持有效)。?
④一旦主設備已使IRDY#有效,在當前數據相位完成前,不能改變IRDY#或FRAME#的狀態。?
⑤在完成最后一個數據相位之后的時鐘周期主設備必須使IRDY#無效。
?
3、PCI總線的尋址
? ?PCI總線定義了三種物理地址空間:內存地址空間、I/O地址空間及配置地址空間,前兩種為通常意義的地址空間,第三種配置地址空間用以支持PCI的硬件配置。?
? ?PCI總線的地址譯碼是分散的,每個設備都有自己的地址譯碼邏輯,從而省去了中央譯碼邏輯。PCI支持對地址的正向譯碼和負向譯碼,所謂正向譯碼,是指總線上每個設備都監視地址總線上的訪問地址,判斷是否落在自己的地址范圍內,譯碼速度較快。所謂負向譯碼,是指要接受未被其他設備在正向譯碼中接受的所有訪問,因此,此種譯碼方式只能由總線上的一個設備來實現(一般是連接標準擴展總線的橋)。由于它要等到總線上其他所有設備都拒絕之后才能動作,所以速度較慢。負向譯碼對于標準擴展總線上地址空間零散的設備是很有用的。正向和反向譯碼設備都不對保留的總線命令發出DEVSEL響應信號。
?
(1)、I/O地址空間
? ?在I/O地址空間,全部32位AD線都被用來提供一個完整的地址編碼(字節地址),使得要求地址精確一級的設備不需多等一個周期就可完成地址譯碼(產生信號),也使負向地址譯碼節省了一個時鐘在I/O訪問中,?AD0~AD1這兩位很重要,并要與C/BE0~3配合,才能進行一次有效的訪問。下表表示了AD[1~0]和初始數據相位中字節允許的有效組合。
表1 字節允許和AD[1~0]的編碼
| AD[1~0] | 起始字節 | 有效的C/BE0~3的組合 |
| 00 | 字節0 | XXX0或1111 |
| 01 | 字節1 | XX01或1111 |
| 10 | 字節2 | X011或1111 |
| 11 | 字節3 | 0111或1111 |
?
(2)、內存地址空間
? 在存儲器訪問中,所有的目標設備都要檢查AD0~AD1,要么提供所要求的突發傳輸順序,或者執行預備斷開操作。對于所有支持突發傳輸的設備都應能實現線性突發性傳輸順序,而高速緩存的行切換不一定是存儲器地址空間,用AD2~AD31譯碼得到一個雙字地址的訪問,而AD[1—0]不參與地址譯碼,用來指明主設備要求的數據傳輸順序。
表2 猝發順序編碼
| AD1 | AD0 | 猝發順序 |
| 0 | 0 | 線性增加方式 |
| 0 | 1 | 保留(在第一個數據相位后解除連接) |
| 1 | 0 | Cache行回卷(wrap)模式 |
| 1 | 1 | 保留(在第一個數據相位后解除連接) |
?
? ?如上表所示,在線性增加模式下,每個數據相位后,地址增加一個雙字(即加4,對32位傳輸)或增加兩個雙字(即加8,對64位傳輸),直到傳輸結束。對于Cache行回卷(warp)模式,傳輸可從Cache中任意地址偏移處開始,Cache塊的長度是由配置空間中的Cache塊大小寄存器定義的。訪問過程中每次地址增加一個雙字(64位傳輸中地址增加兩個雙字),一直到Cache塊的末尾,然后回卷到同一Cache塊的開始處,再進行到Cache塊的剩余部分被傳送完為止。
(3)、配置地址空間
? ?在配置的地址空間中,要用AD2~AD7將訪問落實到一個DWORD地址,尋址64個雙字寄存器。當一個設備收到配置命令,這條配置命令地址被譯碼,IDSEL信號成立且AD0AD1為00,設備判斷是否尋址自己的配置寄存器,如果是則該設備即被選為訪問的目標,若不是就不參與當前的對話。如果譯碼出來符合某橋路的編號,且AD0AD1為01,則說明配置訪問是對該橋后面的設備,即不與橋直接連接的設備。
(4)、字節校正??
? ?用字節使能信號C/BE0~3來指出哪些字節帶了有意義的數據,在每個數據周期內,可以自由改變字節使能,使之對傳輸數據的實際含義和有效部分進行界定,這一功能稱作字節校正或字節對齊。????
?
(5)、總線的驅動與過渡??
? ?為了避免多個設備同時驅動一個信號到PCI總線上而產生競爭,在一個設備驅動到另?一個設備之間設一個過渡期,又稱為交換周期。在時序圖上,交換期用"→←"來表示。
在每個地址周期和數據周期,所有的AD線都必須被驅動到穩定的狀態(數據),即使是在當前數據傳涉及到的字節所對應的AD線也不例外。在實際應用中,如果對功耗要求較高時,為盡量減少由于總線上信息所造成的功耗,對當前總線周期中不用的字節與前一周期相同的數據去驅動它們。
?
4、PCI總線的數據傳輸過程
? ?PCI采用地址/數據復用技術,每一個PCI總線傳送由一個地址相位和一個或多個數據相位組成。地址相位由FRAME#變為有效的時鐘周期開始。在地址相位,總線主設備通過C/BE[3~0]#發送總線命令。如果是總線讀命令,在地址相位后需要一個交換周期,該周期過后,AD[3l~0]改由從設備驅動,以接納從設備的數據。對于寫操作沒有過渡期,直接從地址相位進入數據相位。數據相位的個數取決于要傳送的數據個數,一個數據相位至少需要一個PCI時鐘周期,在任何一個數據相位都可以插入等待周期。FRAME#從有效變成無效表示當前正處于最后一個數據相位。?
? ?總線操作結束有多種方式。在大多數情況下,由從設備和主設備共同撤消準備就緒信號TRDY#和IRDY#。如果從設備不能繼續傳送,可以設置STOP#信號,表示從設備撤消與總線的連接。所尋址的從設備不存在或者DEVSEL#信號一直為無效狀態都可能導致主設備結束當前總線操作,使FRAME#和IRDY#變為無效,回到總線空閑狀態。
?
(1)、總線上的讀操作
? ?圖2表示PCI總線讀操作時序的一個例子,從中可以看出,一旦FRAME#信號有效,地址相位便開始,并在時鐘2的上升沿處穩定有效。在地址相位內,AD[31~00]上包含有效地址,C/BE#[3~0]上包含一個有效的總線命令。由于是對數據進行讀取,因而要先插入一個等待周期,數據相位是從時鐘3的上升沿處開始,AD[31一00]上傳送的是數據,C/BE#線上的信息用于指定數據線上哪些字節有效(即哪幾個字節是當前要傳輸的)。需要強調的是,無論是讀操作還是后面要講的寫操作,從數據相位的開始一直到傳輸完成,C/BE#的輸出緩沖器(或鎖存器)必須始終保持有效狀態。?圖2中的DEVSEL#信號和TRDY#信號由被地址相位內所發地址選中的從設備提供,但要保證TRDY#在DEVSEL#之后出現,IRDY#信號是發起讀操作的主設備根據總線的占用情況發出的。數據的真正傳輸是在IRDY#和TRDY#同時有效的時鐘前沿進行的。當這兩個信號之一無效時,就表示需要插入等待周期,此時,不進行數據傳輸。這說明一個數據相位可以包含一次數據傳輸和若干個等待周期。圖中所示的時鐘4、6、8處各進行了一次數據傳輸,而在時鐘3、5、7處插入了等待周期。?
? ?在讀操作中的地址相位和數據相位之間,AD線上要有一個總線交換周期,這通過從設備強制TRDY#實現,即讓TRDY#的發出比地址晚一拍。在交換周期過后且DEVSEL#信號變為有效時,從設備必須驅動AD線。?
? ?盡管主設備在時鐘7處已知道下一個數據相位是本次傳送的最后一個,但由于某種原因它暫時不能完成該次傳輸(此時IRDY#無效),所以主設備還不能撤消FRAME#,只有在時鐘8處,IRDY#變為有效后,FRAME#信號才能撤消,從而通知從設備這是最后一個數據相位。
圖2 PCI總線讀操作(2)、總線上的寫操作
? ?圖3是PCI總線寫操作時序的一個例子。從中可以看出,總線上的寫操作與讀操作相類似,也是FRAME#的有效表示寫操作周期中地址相位的開始,但地址相位后不需要交換周期,因為數據和地址都是由同一主設備提供的。在圖3中,第一個和第二個數據相位中沒有等待周期,而在第三個數據相位中連續插入了3個等待周期,注意,第一個等待周期是由傳輸雙方共同引起的。告訴從設備最后一個數據相位的方法與讀操作時相同,即當FRAME#撤消后,還需要IRDY#處于有效狀態。這里,主設備在時鐘6處使IRDY#恢復有效,通知從設備這是最后一個數據相位,但由于從設備未準備好,最后一次數據傳輸到時鐘8才完成。
? ?從圖中AD和C/BE#的波形可看出,主設備發送數據可以延遲,但字節允許信號不受等待周期的影響,不得延遲發送。?
? ?上述的讀/寫操作均是以多個數據相位為例來說明的。如果是一個數據相位,?FRAME#信號在沒有等待周期的情況下,應在地址相位(讀操作應在交換周期)過后即撤消。對于一個數據相位,中間亦可插入等待周期。
圖3 PCI總線寫操作(3)、PCI總線傳輸的終止過程?
? 無論是主設備還是從設備,都可以提出終止傳輸的要求,但不一定得到響應。也就是說,主從設備雙方均無權單方面終止傳輸,而需要相互配合,但傳輸的最終停止控制要由主設備完成。?
? ?①由主設備引發的終止?
? ?主設備是通過撤消FRAME#并建立IRDY#來提出終止請求的,這樣做是為了通知從設備,現在己進入了傳輸周期中最后一個數據相位。此后,IRDY#一直保持有效直到TRDY#信號有效,完成最后一個數據的傳輸。接著便撤消IRDY#,從而達到完全終止的條件(FRAME#和IRDY#同時無效),結束傳輸,進入總線空閑狀態。
主設備一般在下列情況下會提出終止傳輸:?
? ?a一次數據傳輸即將結束(剩下一個數據未傳輸)。????
? ?b總線上有更高優先級的總線占用請求,而總線仲裁器取消當前主設備的總線控制權(移去了GNT#信號)。?
? ?c主設備發出了FRAME#后在規定的時間內沒有檢測到目標設備的DEVSEL#響應信號。
? ?②由從設備引發的終止?
? ?從設備可以通過STOP#信號請求終止傳輸。一旦STOP#有效,就必須保持有效到主設備置FRAME#無效。IRDY#和TRDY#之間的關系與STOP#和FRAME#之間的關系無關。所以,在從設備請求終止期間數據仍可以傳送,這僅取決于當時IRDY#和TRDY#的狀態。?
? ?從設備可由下面兩種原因請求終止傳輸:?
? ?①從設備正處于不能傳送數據的狀態。例如,設備的數據緩沖器滿,暫時不能接收數據,或者因數據緩沖器空而不能發送數據等。待傳送條件滿足后,重新啟動傳輸。這種情況稱為“重入(Retry)”。?
? ?②由于從設備的響應速度太慢,在PCI引導時間長度(8個時鐘周期)不能作出響應以及在猝發傳輸中,從設備檢測到下一個數據的地址已經超出規定的范圍等原因而提出終止傳輸請求。此種情況稱為“解除連接(Disconnect)”。
?
總結
以上是生活随笔為你收集整理的PCI总线协议(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux进程基本知识详解
- 下一篇: DataFrame使用pd.sample