版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 南 京 理 工 大 學(xué)</p><p> 畢業(yè)設(shè)計(jì)(論文)外文資料翻譯</p><p> 學(xué)院(系): 機(jī)械工程學(xué)院 </p><p> 專 業(yè): 測(cè)控技術(shù)與儀器</p><p> 姓 名: </p><p> 學(xué) 號(hào):
2、 </p><p> 外文出處:PCI SYSTEM ARCHITECTURE</p><p> (FOURTH EDITION) </p><p> 附 件:1.外文資料翻譯譯文;2.外文原文</p><p> 注:請(qǐng)將該封面與附件裝訂成冊(cè)。</p><p> 附件1:外文資料翻譯
3、譯文</p><p> 二十六章 PCI BIOS</p><p><b> 上一章內(nèi)容提要</b></p><p> 上一章主要講述了控制簡(jiǎn)單設(shè)備的行為的順序規(guī)則和通過(guò)PCI-PCI橋的多個(gè)交易間的關(guān)系,并且描述了這些規(guī)則如何預(yù)防死鎖的發(fā)生。</p><p><b> 本章內(nèi)容提要</b>
4、;</p><p> 本章將介紹PCI BIOS的規(guī)范,版本為2.1,日期是1994年8月26號(hào)</p><p><b> 下一章內(nèi)容提要</b></p><p> 下一章將詳細(xì)描述PCI鎖定機(jī)構(gòu)及PCI鎖定機(jī)構(gòu)允許EISA橋鎖定主存儲(chǔ)器或者允許主/PCI橋鎖定EISA存儲(chǔ)器目標(biāo)</p><p> 26.1 PC
5、I BIOS的用途</p><p> OS(除了平臺(tái)指定的微核心外)、應(yīng)用程序和設(shè)備驅(qū)動(dòng)程序不可直接訪問(wèn)PCI配置寄存器、中斷路由邏輯(見(jiàn)14.6節(jié)中斷路由),或者專用周期產(chǎn)生邏輯(見(jiàn)18.5.3節(jié)專用周期軟件生成)。實(shí)現(xiàn)這些能力的硬件辦法是平臺(tái)指定的,因此,任何直接訪問(wèn)這些機(jī)構(gòu)的軟件都是平臺(tái)指定的,這可能會(huì)導(dǎo)致兼容問(wèn)題(軟件在一些平臺(tái)上可以工作而在其它平臺(tái)上則不能)。</p><p>
6、 相反,請(qǐng)求將被發(fā)至PCI BIOS。這個(gè)BIOS是平臺(tái)指定的,它在硬件中實(shí)現(xiàn),也可能在OS的硬件抽象層(HAL)中實(shí)現(xiàn),PCI BIOS提供的服務(wù)如下:</p><p> ●允許確定PCI 芯片組支持的配置機(jī)構(gòu)(見(jiàn)18.4節(jié)配置機(jī)構(gòu)簡(jiǎn)介)。</p><p> ●允許確定芯片組在軟件控制下產(chǎn)生PCI專用周期交易的能力及所使用的機(jī)構(gòu)。想要更多的信息,參見(jiàn)18.5.3節(jié)軟件專用周期的生成
7、。</p><p> ●允許確定PCI總線在系統(tǒng)中的存在范圍</p><p> ●查找某一指定PCI設(shè)備或?qū)儆谀骋活愒O(shè)備的實(shí)例</p><p> ●允許PCI專用周期交易(如果芯片組在軟件控制下支持產(chǎn)生PCI專用周期交易)。</p><p> ●允許調(diào)用者獲得PCI中斷路由選擇并且為機(jī)構(gòu)分配一個(gè)中斷線</p><p
8、> ●允許對(duì)設(shè)備的配置寄存器的讀或?qū)憽?lt;/p><p> 26.2 支持的OS環(huán)境</p><p><b> 26.2.1概述</b></p><p> 不同的OS有不同的操作特性(比如用于定義系統(tǒng)存儲(chǔ)器的方法和用于調(diào)用BIOS服務(wù)的方法)。在基于X86處理器家族的系統(tǒng)中,在特定平臺(tái)上執(zhí)行的OS屬于下面三種中的一種:</p&
9、gt;<p> ●實(shí)模式操作系統(tǒng)(即MS-DOS)</p><p> ●286保護(hù)模式(禁止使用)</p><p> ●386保護(hù)模式。有兩種386保護(hù)模式</p><p> ●段模式(禁止使用)</p><p><b> ●平臺(tái)模式</b></p><p> PCI B
10、IOS規(guī)范定義了實(shí)現(xiàn)BIOS和調(diào)用PCI BIOS的軟件的規(guī)則:</p><p> 規(guī)則1. PCI BIOS必須支持所有上述提到的OS環(huán)境。</p><p> 規(guī)則2.BIOS必須保持除了用于返回參數(shù)以外的所有的寄存器和標(biāo)記。</p><p> 規(guī)則3.調(diào)用者將被返回到與入口一致的EFLAG寄存器中的中斷標(biāo)記位的狀態(tài)。</p><p>
11、; 規(guī)則4.在執(zhí)行BIOS功能調(diào)用時(shí)中斷將不可使能。</p><p> 規(guī)則5.BIOS路徑必須是可重入的(他們可以在自身內(nèi)部調(diào)用)</p><p> 規(guī)則6.OS必須為BIOS定義一個(gè)容量至少為1KB的堆棧存儲(chǔ)器區(qū)域。</p><p> 規(guī)則7.OS為BIOS定義的堆棧段和代碼段必須有相同的容量(16位或32位)</p><p>
12、 規(guī)則8.用INT 1Ah調(diào)用BIOS的保護(hù)模式OS必須將CS寄存器設(shè)置為F000h。</p><p> 規(guī)則9.OS必須保證為BIOS定義的優(yōu)先級(jí)允許中斷使能/禁止并且執(zhí)行IO命令。</p><p> 規(guī)則10.BIOS的實(shí)現(xiàn)者必須假定OS為BIOS定義的CS是只執(zhí)行,DS是只讀。</p><p> 26.2.2 實(shí)模式</p><p&g
13、t; 實(shí)模式OS,比如MS-DOS,被寫(xiě)進(jìn)8088處理器執(zhí)行。這個(gè)處理器最多只能對(duì)1MB的存儲(chǔ)器進(jìn)行尋址(00000h至FFFFFh)。用四十六位段寄存器(CS,DS,ES,SS),編程人員定義了存儲(chǔ)器的四個(gè)段,每段的長(zhǎng)度固定為64KB。當(dāng)一個(gè)程序開(kāi)始執(zhí)行時(shí),四個(gè)段寄存器的每一個(gè)用存儲(chǔ)器中相應(yīng)段的起始地址的上四個(gè)十六進(jìn)制數(shù)字對(duì)其進(jìn)行初始化。</p><p> ●代碼段包含當(dāng)前執(zhí)行的程序</p>
14、<p> ●數(shù)據(jù)段定義了包含程序運(yùn)行的數(shù)據(jù)的存儲(chǔ)器區(qū)域</p><p> ●堆棧段定義了用來(lái)暫時(shí)保存值的存儲(chǔ)器區(qū)域</p><p> ●額外的數(shù)據(jù)段可用來(lái)定義與當(dāng)前執(zhí)行的程序有關(guān)的另一個(gè)數(shù)據(jù)段</p><p> MS-DOS通過(guò)裝入一組帶有請(qǐng)求參數(shù)的處理器的寄存器組,執(zhí)行軟件中斷命令,指定中斷表中的1Ah入口作為包含BIOS的入口點(diǎn),調(diào)用BIOS。
15、在INT 1Ah指令執(zhí)行時(shí),處理器將INT 1Ah后面的指令的地址壓入堆棧存儲(chǔ)器。保存完這個(gè)返回地址后,處理器在中斷表中讀條目1Ah的指針并且在一個(gè)指定的地址開(kāi)始運(yùn)行。這就是BIOS的入口點(diǎn)。</p><p> 調(diào)用BIOS的另一個(gè)方法就是在物理存儲(chǔ)器位置000FFFE6Eh直接調(diào)用BIOS入口點(diǎn)。使用這個(gè)方法可以確保調(diào)用者不用擔(dān)心在中斷表中的1Ah入口已經(jīng)被其它設(shè)備占用。</p><p&g
16、t; 26.2.3 286保護(hù)模式(16︰16)</p><p> BIOS規(guī)范稱之為16︰16模式是因?yàn)?86處理器有16位段寄存器并且編程人員通過(guò)定義段內(nèi)(代碼段、數(shù)據(jù)段、堆棧段或額外數(shù)據(jù)段)設(shè)備的16位偏移量來(lái)指定存儲(chǔ)器中設(shè)備的地址。盡管每段的最大容量仍然為64KB(如同8088處理器一樣),OS編程人員可以將段長(zhǎng)度設(shè)置為1到64KB之間的任何值。當(dāng)在實(shí)模式操作時(shí),286地址存儲(chǔ)器就如同具有同樣固定的6
17、4KB段長(zhǎng)度的8088處理器一樣并且只能訪問(wèn)存儲(chǔ)器空間中第一個(gè)MB內(nèi)的位置。</p><p> 當(dāng)在保護(hù)模式操作時(shí),然而,286以不同的方式尋址存儲(chǔ)器。不同于存儲(chǔ)器中包含段的五位物理起始地址的上四位十六進(jìn)制數(shù)字,段寄存器中的值被稱為段選擇值。它指向存儲(chǔ)器中由OS建立和保存的段描述表的每一個(gè)條目。段描述表中的每一個(gè)條目都包含了定義如下內(nèi)容的八個(gè)字節(jié)的信息:</p><p> ●存儲(chǔ)器中段
18、的24位起始物理地址。換句話說(shuō),段起始地址可以被指定在存儲(chǔ)器空間的第一個(gè)16MB的處任意地方。</p><p> ●段長(zhǎng)度(從一個(gè)字節(jié)到64KB)</p><p> ●允許程序訪問(wèn)存儲(chǔ)器的段的方式(只讀、只執(zhí)行、讀/寫(xiě)或者不允許)</p><p> 一些OS(如在286模式下操作時(shí)的3.1系統(tǒng))用段能力在16MB總體的存儲(chǔ)器空間里為每一個(gè)程序分配單獨(dú)的代碼、數(shù)
19、據(jù)、堆棧段。當(dāng)OS執(zhí)行一個(gè)任務(wù)切換時(shí),它必須在段寄存器內(nèi)裝入一組屬于當(dāng)前應(yīng)用程序的存儲(chǔ)器的段的值。</p><p> 正如在實(shí)模式OS環(huán)境中,通過(guò)INT 1Ah的執(zhí)行或者通過(guò)直接調(diào)用BIOS的工業(yè)標(biāo)準(zhǔn)入口點(diǎn)(物理存儲(chǔ)器位置000FFE6Eh)調(diào)用BIOS。</p><p> 26.2.4 386保護(hù)模式(16︰32)</p><p> 386處理器將每個(gè)段的最
20、大容量從64KB變?yōu)?GB。486、奔騰和P6家族處理器像386一樣具有相同段的的最大的容量。為了將段的最大容量增加到4GB,386還引進(jìn)了一個(gè)32位的寄存器組,它允許編程人員在一個(gè)段內(nèi)指定設(shè)備的32位偏移量。段寄存器的容量仍然是16位的。不包含存儲(chǔ)器中段的五位物理起始地址包含的上四十六進(jìn)制數(shù)字,段寄存器的值被稱為段選擇器(當(dāng)處理器在保護(hù)模式操作時(shí))。它指向存儲(chǔ)器中OS建立和保持的段描述表中的一個(gè)條目。段描述表中的每一個(gè)條目包含八個(gè)字節(jié)
21、的信息,定義如下內(nèi)容:</p><p> ●存儲(chǔ)器中段的32位起始物理地址。換句話說(shuō),段的基地址可以在存儲(chǔ)器空間的總體4GB的范圍內(nèi)的任意地方。</p><p> ●段的長(zhǎng)度(從一個(gè)字節(jié)到4GB)</p><p> ●程序允許訪問(wèn)存儲(chǔ)器的段的方式(只讀、只執(zhí)行、讀/寫(xiě)或者不允許)</p><p> 一些操作系統(tǒng)(如在386升級(jí)模式下操
22、作的3.1系統(tǒng))用段能力在4GB總體的存儲(chǔ)器空間里為每一個(gè)程序分配單獨(dú)的代碼、數(shù)據(jù)、堆棧段。當(dāng)OS執(zhí)行一個(gè)任務(wù)切換時(shí),它必須通過(guò)定義屬于當(dāng)前應(yīng)用程序的存儲(chǔ)器的段的值裝入段寄存器。在PCI BIOS規(guī)范中,這被稱為16︰32模式,因?yàn)?6位段寄存器定義(直接地)段起始地址并且編程人員可以用一個(gè)32位值在總的4GB存儲(chǔ)器空間中任意地方去指定設(shè)備的偏移量。</p><p> 在32位OS環(huán)境中,BIOS不是用INT
23、1Ah調(diào)用的,實(shí)際上,如果一個(gè)應(yīng)用程序嘗試執(zhí)行一個(gè)INT指令結(jié)果將是一個(gè)一般保護(hù)例外,而調(diào)用程序?qū)IOS入口點(diǎn)執(zhí)行遠(yuǎn)調(diào)用。這就意味著這個(gè)入口點(diǎn)地址是已知的。本章下文的部分將定義BIOS入口點(diǎn)是如何被發(fā)現(xiàn)的。</p><p> 26.2.5今天的OS用平臺(tái)模式(0︰32)</p><p> 更簡(jiǎn)單的存儲(chǔ)器模式是為所有的段寄存器設(shè)置為指向?qū)⒚總€(gè)段的起始地址定義為物理存儲(chǔ)器位置000000
24、00h,長(zhǎng)度為4GB的段描述值。這被稱為平臺(tái)存儲(chǔ)器模式。BIOS規(guī)范稱之為0︰32模式,所有段的起始地址是00000000h,長(zhǎng)度為32位長(zhǎng)度FFFFFFFFh(4GB)。由于不為每個(gè)程序定義單獨(dú)的段,OS有負(fù)責(zé)管理存儲(chǔ)器并且確保不同的程序不在其他程序的空間執(zhí)行,OS使用分頁(yè)表格中的屬性位來(lái)完成這個(gè)任務(wù)。</p><p> 正如上文所說(shuō)明的,在32位OS環(huán)境中,BIOS不是用INT 1Ah調(diào)用的,而是由調(diào)用程序
25、對(duì)BIOS入口點(diǎn)執(zhí)行一個(gè)遠(yuǎn)調(diào)用。這就意味著這個(gè)入口點(diǎn)是已知的。本章下文將定義是如何發(fā)現(xiàn)BIOS入口點(diǎn)的。</p><p> 26.3 確定系統(tǒng)是否實(shí)現(xiàn)32位BIOS</p><p> 在嘗試著調(diào)用32位BIOS(如PCI BIOS)以前,32位OS必須首先確定需要的32位BIOS是否存在,它的入口點(diǎn)是什么。BIOS規(guī)范規(guī)定,OS必須掃描物理存儲(chǔ)器區(qū)域000E0000h到000FFFF0
26、h的范圍,查找表26-1所定義的16位數(shù)據(jù)結(jié)構(gòu)。這個(gè)數(shù)據(jù)結(jié)構(gòu)必須排列在16字節(jié)的地址邊界。</p><p> 表26-1 32位BIOS數(shù)據(jù)結(jié)構(gòu) </p><p> 26.4 確定32位BIOS支持的服務(wù)</p><p> 現(xiàn)在32位服務(wù)目錄程序(BIOS圖書(shū)管理員)的存在和入口點(diǎn)已經(jīng)確定,OS可以詢問(wèn)確定32位BIOS規(guī)范是否實(shí)現(xiàn)了PCI BIOS。通過(guò)調(diào)用
27、入口點(diǎn)和提供如下內(nèi)容作為輸入?yún)?shù)可完成這個(gè)任務(wù):</p><p> ●EAX=服務(wù)識(shí)別器 為了確定指定的服務(wù)(例如PCI BIOS服務(wù))是否被32位BIOS支持,服務(wù)目錄程序根據(jù)EAX寄存器中調(diào)用者提供的四個(gè)字節(jié)服務(wù)識(shí)別器執(zhí)行查找(詳見(jiàn)26.5節(jié)確定32位BIOS是否支持PCI BIOS服務(wù)) </p><p> ●BL=服務(wù)目錄功能識(shí)別器.目前只定義了00h,它指揮服務(wù)目錄程序查找
28、EAX寄存器中提供的服務(wù)識(shí)別器.EBX中的上三個(gè)字節(jié)為保留并且必須清零.</p><p> 在調(diào)用服務(wù)目錄程序返回后,寄存器 組包含以下值:</p><p> ●如果指定的服務(wù)存在則AL包含00h,如果不存在則包含80h,如果BL提供的功能識(shí)別器未實(shí)現(xiàn)則包含81h.</p><p> ●EBX包含指定的BIOS服務(wù)的物理起始地址</p><
29、p> ●ECX包含指定的BIOS服務(wù)的長(zhǎng)度</p><p> ●EDX包含指定的BIOS 服務(wù)的入口點(diǎn),這是EBX中返回的起始地址的偏移量</p><p> 26.5確定32位BIOS是否支持PCI BIOS服務(wù)</p><p> PCI BIOS的服務(wù)識(shí)別器包含ASCII串“$PCI” ,在EAX中被指定為49435024h.假定服務(wù)目錄程序調(diào)用指示
30、PCI BIOS存在,可以通過(guò)對(duì)EDX寄存器中返回的入口點(diǎn)執(zhí)行遠(yuǎn)程調(diào)用來(lái)調(diào)用PCI BIOS.在調(diào)用PCI BIOS之前,OS必須把BIOS的代碼和數(shù)據(jù)段定義為具有EBX和ECX中返回的物理地址范圍. 代碼和數(shù)據(jù)段必須有相同的起始地址.OS必須起動(dòng)BIOS優(yōu)先級(jí)以允許IO操作并且必須為BIOS定義一個(gè)容量至少為1KB的堆棧區(qū)域.BIOS作者必須假定OS定義代碼段為只執(zhí)行,數(shù)據(jù)段為只讀.</p><p> 26.
31、6調(diào)用PCI BIOS</p><p> 正如本章上文所提到的那樣, 可以通過(guò)執(zhí)行一個(gè)INT 1Ah指令或者在物理存儲(chǔ)器空間000FFE6Eh直接調(diào)用PCI BIOS的方法來(lái)調(diào)用16位PCI BIOS.通過(guò)執(zhí)行遠(yuǎn)程調(diào)用來(lái)32位BIOS.</p><p> 在這兩種情況中,調(diào)用者必須首先把要求的請(qǐng)求參數(shù)裝入處理器的寄存器組.在入口,</p><p> ●AH寄存
32、器必須包含PCI功能ID B1h.</p><p> ●AL寄存器必須包含PCI下級(jí)的功能識(shí)別器.</p><p> 表26-2定義了各種類型PCI功能調(diào)用的輸入?yún)?shù).在出口,傳送標(biāo)記的狀態(tài)表明了調(diào)用是成功還是失敗.BIOS規(guī)范包含了這些功能調(diào)用的詳細(xì)地描述.由于它們?cè)谝?guī)范中已經(jīng)清楚地描述了,本章下問(wèn)將不再重復(fù)了.</p><p> 表26-2 PCI BIO
33、S功能請(qǐng)求代碼</p><p> 26.7 PCI BIOS存在調(diào)用</p><p> 在調(diào)用PCI BIOS之前,AH設(shè)置為B1h(PCI BIOS的ID),AL設(shè)置為01h.返回后,寄存器組包含以下值:</p><p> ●EDX包含ASCII字符串”P(pán)CI”,DL=”P(pán)”,DH=”C”,DH以上的字節(jié)=”I”,以及ASCII空間字符的EDX的上部分字節(jié).
34、</p><p><b> ●AH=00h</b></p><p> ●AL包含表26-1中的信息</p><p> ●BH=BCD的主要版本BIOS</p><p> ●BL=BCD的次要版本BIOS</p><p> ●CL=系統(tǒng)中最后的PCI總線的編號(hào)</p><
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 外文翻譯中文版
- 紡織[外文翻譯]中文版
- 外文翻譯-中文版.doc
- 外文翻譯-中文版.doc
- 外文翻譯-中文版.doc
- 外文翻譯-中文版.doc
- 外文翻譯-英中文版.doc
- 外文翻譯-英中文版.doc
- 外文翻譯--刀具 中文版.doc
- 外文翻譯--噴射系統(tǒng) 中文版
- 外文翻譯-英中文版.doc
- 外文翻譯--刀具 中文版.doc
- 外文翻譯-- 繪畫(huà)噴霧 中文版
- 外文翻譯-英中文版.doc
- 外文翻譯--噴射系統(tǒng) 中文版
- 外文翻譯--數(shù)控技術(shù) 中文版
- 外文翻譯--數(shù)控機(jī)床 中文版
- 外文翻譯-- 繪畫(huà)噴霧 中文版.doc
- 外文翻譯-- 繪畫(huà)噴霧 中文版.doc
- 外文翻譯--機(jī)床設(shè)置 中文版.doc
評(píng)論
0/150
提交評(píng)論