第-章程式和中断IO优秀文档_第1页
第-章程式和中断IO优秀文档_第2页
第-章程式和中断IO优秀文档_第3页
第-章程式和中断IO优秀文档_第4页
第-章程式和中断IO优秀文档_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第15章

程式和中斷I/O1兩種I/O基本策略

程式I/O中斷I/O2程式I/O

啞設備外部設備只有基本的數位電路沒有自動化的智慧CPU負責所有的細節工作,而外部設備只能聽從命令,CPU一個命令,I/O一個動作,我們把這種互動方式稱為程式I/O。3程式I/O

啞設備只有基本的數位電路沒有自動化的智慧CPU負責所有的細節工作,而外部設備只能聽從命令,CPU一個命令,I/O一個動作,我們把這種互動方式稱為程式I/O。4同步

處理器速度遠比I/O設備快許多。處理器速度太快,結果可能出現問題。程式I/O必須運用同步觀念。因為處理器動作的速度遠比其它I/O設備要快,因此程式I/O必須同步控制處理器與其它設備的互動方式。5輪詢

處理器與I/O設備之間最基本的同步方式,就是使用所謂的輪詢。處理器會不斷地詢問I/O設備,看看I/O設備是否已經完成前一個命令,如果命令完成,處理器才能再送出下一個命令。6執行列印的輪詢範例7指定硬體設備的位址8執行列印的實現程式9控制和狀態暫存器

控制和狀態暫存器(簡寫CSR)位於設備內部的位址。控制暫存器對應於儲存動作的連續位址。狀態暫存器則對應於擷取動作。10輪詢下的等待

典型的處理器速度遠快於I/O設備許多,一旦採用輪詢策略,速度必須依賴I/O設備來決定,此時即使再快速的處理器,也不會加速整個I/O設備的執行動作。11第一、二、和三代電腦

12中斷I/O

中斷I/O就是想避開輪詢等待所浪費的時間。中斷I/O需要變更許多系統層面的技術,包含:I/O設備硬體匯流排結構和功能處理器結構程式規劃策略13I/O設備硬體中斷I/O設備開始時,接收處理器的命令。結束時,設法通知處理器。其它時間,I/O設備必須獨立工作。14第一、二、和三代電腦不管在什麼時間點,總是可以把處理器當作在某一優先權階層上動作。硬體會把這些數值轉譯索引,當作某些記憶體保留區的陣列指標,也就是中斷向量。處理器速度太快,結果可能出現問題。克服設備時效需求可以使用多階層中斷當處理器作業在優先權K,則只能被優先權K+1、或更高層的設備所中斷。測試:如果任何設備要求中斷,處理中斷,然後繼續下一個迴圈當處理器作業在優先權K,則只能被優先權K+1、或更高層的設備所中斷。控制暫存器對應於儲存動作的連續位址。處理器速度太快,結果可能出現問題。在這種情況下,即使兩個磁碟同時發生中斷,處理器一次也只會處理其中一個。典型的處理器提供7個或15個中斷階層DMA是高速I/O設備最關鍵的技術。以啞磁碟機為例,想要把磁碟資料讀取到記憶體,底層硬體可能需要好幾個步驟才能完成:測試:如果任何設備要求中斷,處理中斷,然後繼續下一個迴圈意指:把多個小型緩衝器資料組回單一的輸出區塊。中斷I/O的匯流排結構匯流排必須提供兩種通訊方式讓處理器能夠在開始時,傳輸命令給設備。等到運作結束後,也要傳輸訊號通知處理器。15處理器結構處理器需要一個機制可以暫時停止的工作程序轉而處理相關的中斷事務結構也必須提供恢復正常工作的能力,以便處理完中斷後,繼續未完的程序。16程式規劃策略輪詢必須使用順序、同步的程式規劃,指定每一個I/O設備所執行的細節動作。中斷I/O使用非同步的規劃型態,程式設計師不必理會細節,只需要撰寫中斷程式,來啟動或因應相關的事件。17硬體中斷機制

正如其名,中斷機制只是暫時借一下處理器來執行I/O設備的工作,一旦中斷發生,硬體會儲存當時的狀態資訊,等到中斷事務結束後,便可以根據該狀態資訊重新啟動計算。18中斷和擷取−執行週期

重複執行{ 測試:如果任何設備要求中斷,處理中斷,然後繼續下一個迴圈 擷取:從儲存程式的位置存取下一個步驟的指令 執行:執行程式步驟}19中斷處理

20儲存和回復當中斷發生時,硬體會儲存目前的執行狀態,記錄當時的時空背景。等到執行一個特殊的中斷返回指令後,會重新載入這些儲存的狀態,回復到剛才的執行狀態。所儲存的狀態資訊需視架構而定硬體儲存或回復軟體儲存或回復21中斷向量

處理器如何知道哪一個設備正在中斷呢?處理器會使用匯流排來尋找中斷處理器指定給設備唯一值硬體會把這些數值轉譯索引,當作某些記憶體保留區的陣列指標,也就是中斷向量。中斷向量指向處理該設備的中斷處理程序。22中斷向量圖23啟始、致能、禁能中斷

如何把數值安裝在中斷向量表呢?中斷向量表必須使用軟體(通常是作業系統),來進行啟始動作。在啟始中斷向量表格之前,必須先禁能任何中斷的發生。等到軟體啟始中斷向量後,再致能中斷。24預防中斷再中斷

一旦發生中斷後,便自動地禁能其它的中斷。等到處理器由中斷返回後,才又重新致能中斷。在這種情況下,即使兩個磁碟同時發生中斷,處理器一次也只會處理其中一個。25多階層中斷

多種設備的電腦系統有時效問題:有些設備需要立即且短時間的中斷服務有些需要較長時間的中斷服務,但不必立即的服務。多階層中斷:克服設備時效需求可以使用多階層中斷典型的處理器提供7個或15個中斷階層不管在什麼時間點,總是可以把處理器當作在某一優先權階層上動作。26優先權規則當處理器作業在優先權K,則只能被優先權K+1、或更高層的設備所中斷。27中斷向量的設定

人工設定:採用固定的中斷向量,適用於小型的嵌入式系統。自動設定:採用彈性的中斷向量,適用於較大型的通用系統。28稍後使用者在USB連接某個設備時,USB控制器會產生一個中斷,並且由處理器負責執行該處理程序,輪流地詢問所連線的新設備,找出新設備的型態,然後載入第二個處理程序。其它時間,I/O設備必須獨立工作。處理器速度遠比I/O設備快許多。克服設備時效需求可以使用多階層中斷緩衝鏈結可以在特定的運算下,負責多個緩衝處理。中斷向量表必須使用軟體(通常是作業系統),來進行啟始動作。CPU負責所有的細節工作,而外部設備只能聽從命令,CPU一個命令,I/O一個動作,我們把這種互動方式稱為程式I/O。中斷I/O使用非同步的規劃型態,程式設計師不必理會細節,只需要撰寫中斷程式,來啟動或因應相關的事件。在這種情況下,即使兩個磁碟同時發生中斷,處理器一次也只會處理其中一個。意指:把大型區塊資料分割到多個小型的緩衝器。在啟始中斷向量表格之前,必須先禁能任何中斷的發生。有些設備需要立即且短時間的中斷服務處理器速度太快,結果可能出現問題。匯流排動態連線

某些設備可能動態地連接或脫離系統?比如:USB可讓使用者在任何的時間插入設備。USB到底如何動作?當電腦啟動時,USB會被當作單一的控制器,被指定一個中斷向量和一個處理程序。稍後使用者在USB連接某個設備時,USB控制器會產生一個中斷,並且由處理器負責執行該處理程序,輪流地詢問所連線的新設備,找出新設備的型態,然後載入第二個處理程序。29中斷優點

使用中斷的電腦比較容易規劃程式,也比使用輪詢的電腦有更好的I/O效能表現。30啞磁碟機範例以啞磁碟機為例,想要把磁碟資料讀取到記憶體,底層硬體可能需要好幾個步驟才能完成:31智慧型設備

智慧型設備必須具備足夠的邏輯(或許是嵌入式處理器)來進行一序列的處理步驟。智慧型設備不必頻繁地中斷處理器,也不必讓處理器親自處理每一個步驟。32智慧型磁碟機範例

33直接記憶體存取

在沒有CPU的情況下,直接把資料傳輸給記憶體,這種傳輸技術就是所謂的DMA。DMA是高速I/O設備最關鍵的技術。所謂的DMA技術允許智慧型I/O直接存取記憶體,讓資料在I/O設備和記憶體之間直接進行傳輸,不必再假手於處理器。34其它時間,I/O設備必須獨立工作。某些設備可能動態地連接或脫離系統?以高速網路為例,如果封包背靠背地抵達系統,同時又有多重設備發出中斷要求時,處理器可能無法即時服務網路設備的中斷,導致遺失下一個封包。硬體會把這些數值轉譯索引,當作某些記憶體保留區的陣列指標,也就是中斷向量。中斷向量表必須使用軟體(通常是作業系統),來進行啟始動作。DMA是高速I/O設備最關鍵的技術。當處理器作業在優先權K,則只能被優先權K+1、或更高層的設備所中斷。意指:把大型區塊資料分割到多個小型的緩衝器。以啞磁碟機為例,想要把磁碟資料讀取到記憶體,底層硬體可能需要好幾個步驟才能完成:處理器如何知道哪一個設備正在中斷呢?在這種情況下,即使兩個磁碟同時發生中斷,處理器一次也只會處理其中一個。緩衝鏈結可以在特定的運算下,負責多個緩衝處理。處理器與I/O設備之間最基本的同步方式,就是使用所謂的輪詢。等到運作結束後,也要傳輸訊號通知處理器。典型的處理器提供7個或15個中斷階層CPU負責所有的細節工作,而外部設備只能聽從命令,CPU一個命令,I/O一個動作,我們把這種互動方式稱為程式I/O。處理器速度太快,結果可能出現問題。緩衝鏈結

智慧型設備使用DMA技術,可以不必經由處理器,直接在設備和記憶體之間進行傳輸。以高速網路為例,如果封包背靠背地抵達系統,同時又有多重設備發出中斷要求時,處理器可能無法即時服務網路設備的中斷,導致遺失下一個封包。某些智慧型I/O設備會使用所謂的緩衝鏈結,最佳化整體效能。35緩衝鏈結36分散讀取、集中寫入

分散讀取意指:把大型區塊資料分割到多個小型的緩衝器。集中寫入意指:把多個小型緩衝器資料組回單一的輸出區塊。37運算鏈結

緩衝鏈結可以在特定的運算下,負責多個緩衝處理。運算鏈結技術可以沒有任何延遲地啟動新的運算動作。如同緩衝鏈結,使用運算鏈結的處理器一樣必須建立串列連結表,傳送給智慧型設備。不同的是:除了緩衝指標外,在串列連結的每一個節點必須指定一個運算動作(比如:讀取動作)和必要的參數(比如:磁碟區塊)。38運算鏈結圖39結論

處理I/O設備的兩個策略:程式I/O中斷

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论