999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Virtual Box虛擬機的硬盤DMA實驗設計

2008-12-31 00:00:00譚毓安張雪蘭李元章
計算機教育 2008年14期

摘要:我院開設了基于Virtual Box虛擬機的硬盤DMA實驗,覆蓋了DMA傳輸機制、PCI設備配置空間、PCI-IDE控制器編程、ATAPI協議等多個知識點,構成一個軟硬件結合的綜合性實驗。應用Virtual Box虛擬機軟件,避免了不同微機系統中的硬件配置差異,實驗過程不會破壞物理硬盤上的系統數據,保證了實驗環境的穩定和安全。本文介紹了我院的教學經驗。

關鍵詞:虛擬機;硬盤;DMA;VirtualBox

中圖分類號:G642文獻標識碼:B

1引言

DMA(Direct Memory Access,直接內存訪問)是外圍設備和內存之間的數據傳送方式,在匯編語言、計算機原理、接口技術、操作系統等課程中均涉及到這部分知識。DMA實驗的開設,使學生從實際應用和底層的角度理解DMA技術在計算機系統的地位,對于多門課程知識的融合、提高學生的實踐創新能力具有十分重要的意義。

早期的IBM PC機中使用集中式的DMA控制器,總線控制和地址產生的邏輯由系統中的2個DMA控制器(8237芯片)完成,外部設備需要向8237發送請求信號,由8237來控制DMA傳輸。軟盤控制器使用DMA通道2,常采用軟盤扇區讀寫作為DMA實驗。然而,現代微機已不再配置軟盤驅動器,已經不具備采用軟盤DMA實驗的條件。軟盤控制器所依賴的集中式的DMA控制器也已經過時。因此,有必要重新設計DMA實驗,使它適合現代微機技術的發展。

計算機系統的外部設備日趨智能化,PCI總線主設備能自主地產生總線周期和內存地址,DMA控制器作為設備接口控制器的內部模塊,而不再采用集中式DMA控制器。為此,需要在研究現代微機DMA機制的基礎上,開設出與之相適應的課程實驗。作者所在的課程組結合科研實踐中所取得的成果,選擇了硬盤作為DMA實驗的外部設備,并采用VirtualBox虛擬機解決了不同微機存在配置差異和實驗環境的安全保障兩方面的問題。

2硬盤DMA傳輸

硬盤一般采取IDE(Integrated Drive Electronics)接口,硬盤控制器與硬盤盤體集成在一起。現代微機的主板上一般都集成了2個IDE控制器,每個控制器上可以連接2個硬盤(或光驅),其中的一個作為主盤,而另一個作為從盤。在編程控制接口方面,硬盤、CD/DVD設備采用了ATAPI標準。

硬盤有2種數據傳輸模式:PIO模式和DMA傳輸模式。在PIO模式下,由CPU執行IN/OUT指令訪問IDE控制器的端口,將數據從硬盤讀出或者寫入到硬盤。在DMA模式下,數據的傳送在IDE控制器的端口和內存之間直接進行,不需要通過CPU中轉。

主機對硬盤的讀寫操作是通過IDE控制器上的兩組寄存器來實現,第一組寄存器中占用8個端口(例如1F0H~1F7H),包括數據寄存器、特征寄存器、錯誤寄存器、扇區數寄存器、扇區號寄存器、低位柱面寄存器、高位柱面寄存器、設備/磁頭寄存器、狀態寄存器、命令寄存器。第二組寄存器中只有一個有效端口(例如3F6H),為設備控制寄存器。

每一個控制器上可以連接兩個ATA設備,這兩個設備使用同樣的端口地址,在設備/磁頭寄存器中用DEV位來區分這兩個設備。DEV=0時,表示主盤;DEV=1時,表示從盤。

硬盤的每個扇區的大小為512字節。主機在讀寫硬盤時,需要指定它要讀寫的是哪一個扇區,即扇區地址。

PCI-IDE控制器中含有一個DMA控制器,它能夠在硬盤和內存之間直接傳送數據。在數據傳送期間,這個DMA控制器接管PCI總線,產生對硬盤的I/O操作和對內存的讀寫操作,根據設定的傳送字節數,在全部數據傳送完成后,結束DMA傳輸。

PCI-IDE控制器作為一個PCI設備,在256字節的配置空間中,偏移020h處的基地址寄存器4(BAR4)作為DMA主控寄存器的首地址。每個通道有3個寄存器,主控命令寄存器、主控狀態寄存器和描述符指針表寄存器。PCI-IDE控制器支持2個IDE通道(主通道和次通道),每個通道占用8個字節的端口地址。設BAR4中的首地址為0C000H,這些寄存器的端口地址如表1所示。

主控命令寄存器控制DMA的傳輸方向(從IDE設備到內存,或者從內存到IDE設備)、啟動或停止DMA傳輸。

主控狀態寄存器中保存了DMA是否正在傳輸、是否出現錯誤、IDE設備是否產生了一個中斷請求,主盤或從盤是否能夠執行DMA操作等狀態信息。

描述符表指針寄存器是一個指向描述符表的指針。描述符表中包含一個或多個物理區域描述符。每個描述符占8個字節,包括32位的內存緩沖區物理地址及16位緩沖區長度,以及緩沖區是否是最后一個等信息。例如,讀寫一個扇區時,內存緩沖區地址為00060000H,長度為200H(512)字節。需要構造的描述符表如圖1所示,描述符表的地址為00070000H,表中只有1個描述符,說明物理區域的起始地址和長度。

通過DMA讀、寫硬盤扇區的步驟為:

(1) 在內存中構造一個描述符表,指向緩沖區。

(2) 把描述符表的地址寫入描述符表指針寄存器。

(3) 設置主控命令寄存器的讀寫位。讀硬盤扇區時,設為1;寫硬盤扇區時,設為0。

(4) 將1寫入主控狀態寄存器的中斷(Interrupt)和錯誤(Error)位,將這2個位復位為0。

(5) 要傳輸的扇區數、扇區地址等寫入ATA設備寄存器。將命令碼(如0C8H、0CAH)寫入ATA命令寄存器。0C8H命令硬盤以DMA方式讀取扇區;0CAH命令硬盤以DMA方式寫入扇區。

(6) 將1寫入主控命令寄存器的啟動/停止位。之后,PCI-IDE控制器就會在內存緩沖區和硬盤之間進行DMA數據傳輸。

(7) 傳輸完畢后,硬盤發出一個中斷請求。PCI-IDE控制器隨之向CPU發出中斷請求。

(8) 響應中斷請求后,將0寫入主控命令寄存器的啟動/停止位,將1寫入主控狀態寄存器的中斷位,清除PCI-IDE控制器的中斷請求。

(9) 讀取PCI-IDE控制器的主控狀態寄存器和ATA狀態寄存器,確認命令是否成功。

3VirtualBox虛擬機在硬盤實驗中的應用

在上述硬盤DMA實驗中,如果直接對硬盤的物理扇區進行讀寫操作,容易破壞硬盤分區表或操作系統文件,破壞實驗環境;另外,實驗室所配備的微機型號各異,所集成的PCI-IDE控制器的端口地址不同,導致實驗環境不能統一,而且部分微機還與實驗程序存在兼容問題。因此,不宜直接在計算機物理硬盤上完成DMA實驗。

在國內外高校的教學實踐中,已經成功地將虛擬機技術應用在操作系統、計算機網絡等課程中,構建出可迅速恢復、環境統一、單機硬件上的多操作系統獨立運行等實驗環境。虛擬機軟件可在一臺計算機(稱為宿主機)上模擬出若干臺計算機,模擬出的計算機(稱為客戶機)都有自己單獨的硬件配置,可以安裝單獨的操作系統。例如,宿主計算機運行Windows操作系統,在上面運行虛擬機軟件,虛擬出的計算機可以運行Linux操作系統。這2個操作系統各自獨立運行,互不干擾。

目前,比較流行的虛擬機軟件為VMWare。VMWare虛擬機的硬盤采用了PCI-SCSI控制器,其編程控制接口與PCI-IDE控制器完全不同,不能用于上述DMA實驗。VirtualBox是德國InnoTek公司開發的虛擬機軟件,可以運行在Windows和Linux上,客戶機上可以安裝Windows、DOS、Linux、OpenBSD等操作系統。VirtualBox虛擬了PCI-IDE控制器,符合硬盤DMA實驗要求。更為重要的是,VirtualBox的源代碼完全公開,便于了解其技術細節以及功能擴展。VirtualBox軟件及其源程序可以從www.virtualbox.org網站下載。

編寫了PCI設備枚舉程序,在虛擬機中運行。搜索基類型等于01h(表示大容量存儲控制器)并且子類型也等于01h(表示IDE控制器)的設備,再獲取基地址寄存器5的值。在VirtualBox中,BAR5的內容為“01 C0 00 00”,即0000C001H。最后1位等于1,表示這個基地址屬于I/O空間。DMA主控寄存器的首地址為0000C000H。因此,PCI-IDE控制器的主控命令寄存器的端口地址為0C000H,主控狀態寄存器為0C002H,描述符指針表寄存器的地址0C004H。

如圖2所示,VirtualBox的虛擬硬盤作為主通道上的主盤,即“主IDE控制器”。因此,其ATA設備寄存器地址為(1F0~1F7H,3F6H)。硬盤大小設置為80MB,由于VirtualBox采用了動態分配技術,HDD0.vdi并沒有占據80MB存儲空間,在客戶機向硬盤不斷寫入數據時,該文件才會逐漸增大。

4結束語

本文針對目前的微機DMA實驗所存在的問題,探討了通過匯編編程手段控制PCI-IDE控制器完成硬盤DMA

實驗。利用虛擬機軟件,實驗的對象為一個虛擬硬盤,避免了硬盤讀寫實驗對物理硬盤數據的破壞;不同微機中運行虛擬機軟件,虛擬出的PCI-IDE控制器、硬盤具有相同的I/O地址和編程模式,保證了實驗環境的統一性。課程組所設計的微機硬盤DMA實驗,作為多層次、遞進式的實驗教學體系的重要一環,幫助學生從寄存器I/O編程等底層出發了解DMA傳輸的PCI-IDE控制器、硬盤、ATAPI協議等各種要素,培養學生利用匯編語言解決復雜問題的能力,加深學生對PCI總線、DMA、硬盤等典型功能部件的認識。開設了以硬盤DMA實驗為代表的一系列實驗,通過課程內容和實驗教學兩個環節的緊密結合,著重培養學生的實踐能力,形成系統的知識觀念,提高綜合應用和創新能力。

參考文獻:

[1] 譚毓安,張雪蘭,李元章. Windows匯編語言程序設計實驗指導[M]. 北京:清華大學出版社,2008.

[2] 譚毓安,王娟,張全新,張凱. Pentium微機原理與接口技術[M]. 北京:機械工業出版社,2008.

[3] 胡志剛,徐益海. 基于虛擬機的操作系統教學工具的架構設計[J]. 企業技術開發,2007,(7).

主站蜘蛛池模板: 日韩高清欧美| 欧洲熟妇精品视频| 国产一二三区视频| 欧美色视频在线| 国产精女同一区二区三区久| 国产成人成人一区二区| 无码日韩精品91超碰| 成人韩免费网站| 久久免费观看视频| 日韩精品视频久久| 亚洲色图欧美激情| 国产杨幂丝袜av在线播放| 免费看一级毛片波多结衣| 亚洲av无码专区久久蜜芽| 重口调教一区二区视频| 成人国产一区二区三区| 一级高清毛片免费a级高清毛片| 亚洲IV视频免费在线光看| 精品剧情v国产在线观看| 国产精品lululu在线观看| 国产精品自在拍首页视频8| 日本免费福利视频| 久久综合色天堂av| 国产黄网永久免费| 熟妇无码人妻| 99er这里只有精品| 中文字幕在线播放不卡| 国产区成人精品视频| 香蕉视频在线精品| 色成人亚洲| 免费国产黄线在线观看| 色首页AV在线| 亚洲综合色吧| 亚洲色图欧美| 秋霞午夜国产精品成人片| 91精品国产91久无码网站| 中文字幕乱妇无码AV在线| 日韩色图区| 日本黄色不卡视频| 草草影院国产第一页| 高潮毛片免费观看| 午夜性刺激在线观看免费| 婷婷午夜天| 欧美成人一区午夜福利在线| 免费在线成人网| 婷婷六月天激情| 亚洲精品无码抽插日韩| 97久久免费视频| 国产区人妖精品人妖精品视频| 免费在线看黄网址| a亚洲视频| 国产a网站| 中文字幕在线观| 中文字幕亚洲第一| 女人18毛片久久| 国产午夜无码专区喷水| 久热99这里只有精品视频6| 97se亚洲综合在线| 亚洲香蕉久久| 成人一级黄色毛片| 在线观看无码a∨| 亚洲AV无码精品无码久久蜜桃| 97免费在线观看视频| 在线观看视频99| 日本www在线视频| 色妞永久免费视频| 狠狠色综合网| 久久免费精品琪琪| 国产一区二区精品福利| 国产成人一区免费观看| 亚洲国产成人在线| 国产成人在线无码免费视频| 四虎永久免费地址| 国产91特黄特色A级毛片| 国产91视频免费观看| 久久久国产精品无码专区| 国产精品人莉莉成在线播放| 国产高清精品在线91| 婷婷色狠狠干| 18禁黄无遮挡网站| 精品国产Ⅴ无码大片在线观看81| 欧洲欧美人成免费全部视频|