I O知識點彙總

2021-08-02 00:16:27 字數 3600 閱讀 3333

按使用特性

人機互動類外設:印表機、顯示器、滑鼠、鍵盤等

儲存裝置:磁碟、磁帶、光碟等

網路通訊裝置:網路介面、數據機等

按傳輸速率分類

低速裝置:每秒幾個到數百個位元組(< kb/s),如鍵盤、滑鼠

中速裝置:每秒數千個位元組至數萬個位元組,如雷射印表機

高速裝置:數百個千位元組至千兆位元組(>100 kb/s),如磁帶機、光碟機

資訊交換的單位分類

塊裝置:資訊的訪問以資料塊為單位,讀寫的基本單位是資料塊,如磁碟

字元裝置:用於資料輸入輸出的裝置為字元裝置,讀寫的基本單位是字元,如互動式終端機、印表機

裝置控制器是計算機中的乙個實體,物理上看控制器是一塊介面卡或主機板上的乙個功能模組。主要職責是控制乙個或多個i/o裝置,以實現cpu與i/o裝置之間的資料交換。裝置控制器收到命令後,cpu可以轉向執行其他工作,而讓裝置控制器自行完成具體的i/o操作。當命令執行結束後,控制器發出乙個中斷訊號,os重新獲得cpu控制權並檢查執行結果。這樣把cpu解脫出來。

接收和識別命令指揮裝置執行:接收通道或cpu通過i/o匯流排發來的命令和引數,儲存在控制暫存器中,並對它進行解碼識別,轉換成適當的電訊號,通過控制器與裝置的介面向裝置傳送,控制裝置執行相應操作。

接收和記錄裝置的狀態:接收裝置發來的電訊號,並轉換和解釋為裝置的狀態資訊,記錄在狀態暫存器中,供cpu處理使用。

資料交換:通過cpu裝置控制器裝置的資料交換,實現了cpu與裝置之間的資料傳遞。

資料緩衝:i/o裝置的速率較低而cpu和記憶體的速率卻很高,控制器可做資料緩衝。在輸出時,暫存從cpu送來的資料,然後以i/o裝置所具有的速率將快取的資料傳送給i/o裝置;輸入時相反。

差錯控制:裝置控制器可對由i/o裝置傳來的資料進行差錯檢測,檢查出錯誤後向cpu報告,cpu將傳來的錯誤資料作廢,並重新傳送。

為了完成上面的功能,裝置控制器必須包含以下組成部分:

裝置控制器與裝置的介面。裝置控制器通過這些介面與裝置連線,乙個介面連乙個裝置。每個介面中都存在資料、控制和狀態三種型別訊號。

i/o控制邏輯。cpu將要啟動的裝置位址通過位址線傳送給控制器,通過控制線將i/o命令發給控制器,然後控制器進行解碼,並對所選裝置進行控制。

資料暫存器:存放從cpu送來的輸出資料、從裝置送來的輸入資料。

控制/狀態暫存器:存放從cpu送來的控制資訊、從裝置送來的狀態資訊。

cpu與外設的連線和資料交換需要通過介面裝置來實現,每個連線到i/o匯流排上的裝置都有自己的i/o位址集,通常稱為i/o埠。在ibm pc體系結構中,i/o位址空間一共提供了65536個8位的i/o埠,正好對應16位的埠位址。

有四條專用彙編指令 允許cpu對i/o埠進行讀寫。即:in、ins、out、outs。

在執行指令時,cpu用位址匯流排選擇所請求的i/o埠,用資料匯流排在cpu和裝置控制器之間傳送資料。

i/o埠的定址方式:

直接埠定址:在指令中直接給出要訪問的埠位址,埠位址用乙個8位二進位制數表示,此時最多允許定址256個埠。

比如: in al,40h ;從埠位址為40h的 埠中取出位元組送給暫存器al

間接埠定址:當訪問的埠位址數大於等於256時,直接埠定址不能滿足要求,而要採用間接埠定址方式。此時,埠的地

址必須由dx暫存器指定,允許定址64k(0~65535)個埠。

例如:mov dx, 309h ;從埠位址為309h的埠中取出位元組給al

概念

在計算機系統內個各種子系統如cpu、記憶體、i/o裝置等之間構建共用的訊號或資料傳輸通道,這種可共享連線的傳輸通道稱為匯流排。如果說主機板是一座城市,那麼匯流排就像是城市裡的公共汽車。

i/o匯流排

匯流排連線的是cpu和i/o裝置時,就稱為i/o匯流排。intel 8086微處理器使用了32位位址匯流排中的16位對i/o裝置進行定址,使用64位資料匯流排中的8位、16位或32位來傳送資料。每個i/o裝置通過裝置控制器連線到i/o匯流排上。

cpu給i/o裝置傳送讀取資料的命令,cpu不停的迴圈測試裝置的狀態,當發現裝置處於ready狀態時,cpu就可以與i/o裝置進行資料訪問操作。cpu和i/o裝置之間是序列工作的,cpu的絕大部分時間都處於等待i/o裝置完成資料i/o的迴圈測試中,造成了 cpu資源的極大浪費,cpu的利用率相當低。

允許i/o裝置主動打斷cpu的執行並請求服務,從而解放cpu,使得其向i/o裝置控制器傳送讀命令後可以繼續做其他有用的工作。可以分別從i/o控制器和cpu的角度來看這種方式的工作過程。

由於資料中的每個字在儲存器與i/o控制器之間的傳輸都必須經過cpu,導致了這種方式仍然會消耗較多的cpu時間。

dma,直接儲存器訪問基本思想是i/o裝置和記憶體之間開闢直接的資料交換通路,徹底解放cpu。

特點:基本單位是資料塊;

傳送的資料是在裝置與記憶體之間進行;

僅在乙個或多個資料塊的開始和結束時,才需cpu的干預,整塊資料的傳送是在dma控制器的控制下完成的。

dma控制器的組成

資料暫存器(dr):暫存從裝置到記憶體或者從記憶體到裝置的資料。

資料計數器(dc):存放cpu本次要讀或寫的字(節)數。

命令/狀態暫存器(cr):用於接收從cpu發來的i/o命令或有關控制資訊或裝置的狀態資訊

工作過程:

cpu讀寫資料時,它給i/o控制器發出一條命令,啟動dma控制器,然後繼續其他工作。之後由dma控制器處理操作,直接與儲存器互動,傳送整個資料塊,每次傳送乙個字,當傳送完成後,dma傳送乙個中斷訊號給處理器。

中斷驅動方式與dma控制方式的區別:

中斷在每個資料需要傳輸時中斷cpu,而dma是要傳送的一批資料全部傳送完成後再中斷cpu;中斷方式資料的傳送是在中斷處理時由cpu控制完成的,而dma則是dma控制器完成的。減少了cpu處理中斷的次數

i/o通道是一種特殊的處理機,可執行指令型別單一,主要侷限於i/o操作,專門負責輸入/輸出;通道沒有自己的記憶體,通道所執行的程式是放在主機的記憶體中的,通道與cpu共享記憶體。

工作過程:

當cpu要完成一組相關的讀(或寫)操作及有關控制時,只需向i/o通道傳送一條i/o指令,以給出其所要執行的通道程式的首位址和要訪問的i/o裝置,通道接到該指令後,通過執行通道程式便可完成cpu指定的i/o任務,資料傳送結束時向cpu發中斷請求。

與dma控制方式的區別:

dma方式中傳輸的資料塊大小、傳輸的記憶體位置是cpu控制的,而通道控制模式是由通道控制的;每個dma控制器只能控制乙個i/o裝置,而乙個通道可以控制多台裝置與記憶體進行資料交換。

未完待續

演算法知識點彙總

1.求陣列元素之間相鄰的元素個數或者求字串的長度 指向同乙個陣列的不同元素的兩個指標可以相減,其差便是兩個指標之間相隔的元素個數。例如在乙個字串中,讓乙個指向該串的首元素,讓另乙個指向字串的結束符,兩個指標相減,其差便是字串的長度 2.怎樣判斷兩個指標指向的是陣列的同乙個元素?指標可以互相比較。如指...

小知識點彙總

1 為什麼乙個數的各位數之和可以被3整除時,這個數就可以被3整除 設乙個n位數number,從個位起每一位為a1 an 則number a1 a2 10 a3 10 2 an 10 n 1 1 先證必要性 如果number的各位數之和是3的倍數,則a1 a2 an 3k k為正整數 2 由 2 得a...

Hadoop ZooKeeper知識點彙總

echo 顯示出jdk的安裝目錄 echo 2 myid 把2寫到myid檔案 覆蓋原內容 cat myid 檢視myid檔案的內容 zkserver.sh start 啟動zookeeper zkserver.sh status 檢視zookeeper的啟動狀態 netstat nltp 檢視埠占...