I O裝置如何讀取資料

2021-07-04 06:07:24 字數 790 閱讀 9327

現在i/o裝置與主存之間,移動資料(包括讀入和寫出)都需要使用dma技術。  dma: 直接儲存器訪問

dma單元能夠模擬處理器,從而獲得對系統匯流排的控制權,就像處理器一樣。 為實現這一點,dma需要在系統匯流排上面和儲存器進行雙向的傳送資料。

dma技術的工作流程如下:

當處理器想讀或者寫一塊資料到i/o裝置時,它給dma模組傳送下面的命令:

1. 有乙個讀操作或者寫操作請求,

2. 涉及的i/o裝置位址

3. 開始讀或寫的memory起始位址

4. 需要讀或寫的位元組數

然後處理器繼續其他工作。 此時它已經把這個i/o操作委託給dma模組。 dma模組之間從memory中往i/o裝置傳送資料 或 從i/o裝置往memory中接受資料。一次傳送乙個位元組,並且不需要通過處理器。 傳送結束後, dma模組給處理器傳送乙個中斷資訊。 因此,只有在傳送開始和結束的時候才會用到處理器。

下面是從i/o裝置讀入資料的具體流程(read 設定為 block flag。  如果read設定為no_block flag,則下面圖中process1還是執行態繼續執行,process2還是就緒態等待cpu時間片):

同步裝置IO

檔案裝置 createfile 可以指定是同步還是非同步,失敗返回invalid handle value而不是null,非同步裝置開啟成功函式getlaseerror返回error io pending錯誤碼 getfilesizeex 獲取檔案的邏輯大小 setendoffile 設定檔案尾,可...

雲端TensorFlow讀取資料IO的高效方式

1,1,1,1,1 2,2,2,2,2 3,3,3,3,3 首先我們來看下大家容易產生問題的幾個地方。pai支援python的自帶io方式,但是需要將資料來源和 打包上傳的方式使用,這種讀取方式是將資料寫入記憶體之後再計算,效率比較低,不建議使用。範例 如下 import csv csv reade...

雲端TensorFlow讀取資料IO的高效方式

1,1,1,1,1 2,2,2,2,2 3,3,3,3,3 首先我們來看下大家容易產生問題的幾個地方。pai支援python的自帶io方式,但是需要將資料來源和 打包上傳的方式使用,這種讀取方式是將資料寫入記憶體之後再計算,效率比較低,不建議使用。範例 如下 import csv csv reade...