三種數(shù)據(jù)傳輸模型的示意圖如下圖所示:
PIO
首先來介紹一下Programmed I/O(PIO)
PIO在早期的PC中被廣泛使用,因外當時的處理器的速度要遠遠大于任何其他外設的速度,所以PIO足以勝任所有的任務。舉一個例子,比如說某一個PCI設備需要向內(nèi)存(SDRAM)中寫入一些數(shù)據(jù),該PCI設備會向CPU請求一個中斷,然后CPU首先先通過PCI總線把該PCI設備的數(shù)據(jù)讀取到CPU內(nèi)部的寄存器中,然后再把數(shù)據(jù)從內(nèi)部寄存器寫入到內(nèi)存(SDRAM)中。
現(xiàn)在看來,這種傳輸方式的效率還是很低的。首先,每次CPU和PCI設備以及SDRAM通信都需要額外的時鐘周期(相對于DMA);其次,這種傳輸方式還需要長時間地占用CPU,影響CPU的使用率。試想一下,你在用PC在線觀看一個1080p60的高清視頻,這需要以太網(wǎng)連續(xù)地向內(nèi)存(SDRAM)中寫入數(shù)據(jù),如果使用PIO的方式的話,將難以保證數(shù)據(jù)的寫入速度。隨著目前的PCI外設速度越來越高,PIO已經(jīng)逐漸被DMA傳輸方式所取代,但是為了兼容早期的一些設備,PCI Spec依然保留了PIO。
DMA
DMA,即Direct Memory Access
DMA是一種在傳輸過程中,幾乎不需要CPU進行干預的數(shù)據(jù)傳輸方式。如上面的圖片所示,以太網(wǎng)可以直接向內(nèi)存(SDRAM)中寫入數(shù)據(jù),而幾乎不需要CPU的干預。實際上,DMA不僅僅應用于PCI總線系統(tǒng)中,它是一種更為廣泛應用的數(shù)據(jù)傳輸方式。目前,幾乎所有的CPU,甚至是MCU都支持DMA。具體這里就不詳細地介紹了,有興趣的可以參考百度百科:https://baike.baidu.com/item/DMA/2385376?fr=aladdin或者其它的資料。
Peer-to-Peer
前面的文章中,我們介紹過PCI總線系統(tǒng)中的主機身份并不是固定不變的,而是可以切換的(借助仲裁器),但是同一時刻只能存在一個主機。完成Peer-to-Peer這一傳輸方式的前提是,PCI總線系統(tǒng)中至少存在一個有能力成為主機的設備。在仲裁器的控制下,完成主機身份的切換,進而獲得PCI總線的控制權(quán),然后與總線上的其他PCI設備進行通信。不過,需要注意的是,在實際的系統(tǒng)中,Peer-to-Peer這一傳輸方式卻很少被使用,這是因為獲得主機身份的PCI設備(Initiator)和另一個PCI設備(Target)通常采用不同的數(shù)據(jù)格式,除非他們是同一個廠家的設備。
-
cpu
+關(guān)注
關(guān)注
68文章
11045瀏覽量
216096 -
pci總線
+關(guān)注
關(guān)注
1文章
203瀏覽量
32486 -
dma
+關(guān)注
關(guān)注
3文章
573瀏覽量
102390
原文標題:【博文連載】PCIe掃盲——PCI總線的三種傳輸模式
文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
STM32有三種啟動模式
STM32的三種Boot模式的差異
記錄三種DMA模式
嵌入式PCI總線主模式設計
BUCK變換器輕載時三種工作模式原理及應用
PCI9052總線接口芯片及其ISA模式應用

PCI總線接口技術(shù)及其在高速數(shù)據(jù)采集系統(tǒng)中的應用

SD卡的三種傳輸模式及功能解析

評論