系統公告
個人檔案
個人圖檔
ID:yuhaolin
暱稱:Howard
生日:1984/1/5
地區:臺北縣

熱情贊助
輕旅行
yuhaolin的最新的回應
好時光貼曆
人氣指數
當日人次:
累積人次:
我推薦誰
誰推薦我
誰來我家
熱情贊助
RSS 訂閱
RSS2
ATOM
其它資訊
本部落所刊登之內容,皆由作者個人所提供,不代表 yam天空部落 本身立場。
POWERED BY
POWERED BY
會員登入免費註冊
November 6, 2005

三種將資料在I/O間傳送的方法有

1. Polling
2. Interrupt-driven I/O
3. DMA(Direct Memory Access)


Polling:最簡單的方式讓I/O device與CPU溝通。I/O device只要將information放進status register,CPU會周期性的檢查並取得information來得知需要服務的device。

Interrupt-driven I/O:利用interrupt的機制,當一個I/O device需要服務時,會發出interrupt來通知CPU。一個I/O interrupt對於指令的執行是asynchronous,Control unit需要在執行一個新指令時檢查是否有pending I/O interrupt。I/O interrupt也會傳達更多訊息,如哪個device發出的interrupt和它的priority。

DMA(Direct Memory Access):提供一個device controller,讓I/O device能夠直接在記憶體做資料的傳輸,不需要CPU的參與。

DMA transfer的三個步驟
1. CPU要初始化DMA controller,包括提供I/O device的名稱、執行何種運算、記憶體位置以及所要傳送的bytes數。
2. DMA開始運作。如果request需要多於一次的transfer在bus上,DMA unit會產生下一個memory address和初始下一次的transfer。
3. 一旦DMA transfer完成,DMA controller發出一個interrupt給CPU。

優缺點比較
   Polling  Interrupt-driven I/O DMA 
優點 簡單容易執行,可利用軟體來更改CPU polling的順序 不用浪費許多時間在polling上面

適用於高速裝置

不用浪費許多時間在polling上面 

缺點

因為CPU速度遠快於I/O device,會浪費許多時間在polling上

不適合high-bandwidth devices

需要有interrupt signals和interrupt service routine存在 

不適合high-bandwidth devices

需要有DMA controller

 




誰推薦這篇文章
引用 (你可以針對此文寫一篇屬於自己的blog/想法,並給作者一個通告)
引用
留言 (3筆)
1.
謝謝整理 很棒^^
 
學生 於 Jan 11, 2012 留言 |
2.
感謝分享
http://www.wretch.cc/blog/wfewnagd
 
wjjrvfaj 於 Mar 3, 2012 留言 |
3.
感謝分享
http://fsdghdfgsdghd.blogspot.com
 
bixmkfhfewol 於 Mar 3, 2012 留言 |
發表你的留言 (字數限制 最多 2000 個中文字)
私密留言:
Name:




內容:
檢視行動版網頁  |  檢視正常版網頁