專(zhuān)利名稱(chēng):用于pci總線計(jì)算機(jī)具有有效/無(wú)效擴(kuò)充rom的內(nèi)插式板卡的制作方法
本專(zhuān)利申請(qǐng)(RA995045)涉及專(zhuān)利申請(qǐng)RA995022。兩項(xiàng)申請(qǐng)于同一時(shí)間遞交并轉(zhuǎn)讓給同一個(gè)受讓人。RA995022中的發(fā)明涉及具有可編程配置寄存器的PCI接口模塊;RA995045中的發(fā)明涉及內(nèi)插式板卡上具有有效/無(wú)效狀態(tài)PCI ROM的接口模塊設(shè)備。
本發(fā)明一般涉及計(jì)算機(jī)系統(tǒng),尤其是被稱(chēng)做適配卡或內(nèi)插式板卡的設(shè)備,主要用于將多個(gè)計(jì)算機(jī)系統(tǒng)相連或?qū)⒃O(shè)備連接到另外一個(gè)計(jì)算機(jī)系統(tǒng)上。
將處理器、存貯器、外設(shè)等計(jì)算機(jī)系統(tǒng)中許多單獨(dú)設(shè)備連接在一起的通信接口或輸入/輸出總線在當(dāng)前技術(shù)中已廣為人知。計(jì)算機(jī)系統(tǒng)不僅用于完成許多單獨(dú)的任務(wù),還用于彼此間相互交換信息。為了達(dá)到交換信息的目的,計(jì)算機(jī)系統(tǒng)被連入計(jì)算機(jī)網(wǎng)絡(luò)。傳統(tǒng)的計(jì)算機(jī)網(wǎng)絡(luò)包含通信介質(zhì),以及附著在通信介質(zhì)上的計(jì)算機(jī)系統(tǒng)。通常用內(nèi)插式板卡將計(jì)算機(jī)系統(tǒng)的總線連到通信介質(zhì)上。為了讓計(jì)算機(jī)對(duì)使用者更具有吸引力,大多數(shù)制造商們努力將計(jì)算機(jī)總線設(shè)計(jì)標(biāo)準(zhǔn)化。標(biāo)準(zhǔn)化的總線,諸如ISA、EISA、微通道TM等,在當(dāng)前技術(shù)中均為人所知。
外設(shè)元件互連Peripheral Component Interconnect(PCI)是另外一種標(biāo)準(zhǔn)化總線,它是一種具有多重地址、控制線和數(shù)據(jù)線的高效32位/64位總線,設(shè)計(jì)PCI總線的目的是利用它實(shí)現(xiàn)高集成化外設(shè)元件,內(nèi)插式板卡和處理器/存貯器子系統(tǒng)之間的互連,PCI本地總線詳細(xì)說(shuō)明書(shū)(產(chǎn)品2.0修訂版)于1993年4月30日發(fā)表,對(duì)PCI總線進(jìn)行了規(guī)格說(shuō)明。該手冊(cè)是由PCI Special Interest Group(SIG)發(fā)布并維護(hù)的,PCI--SIG是一個(gè)對(duì)計(jì)算機(jī)工業(yè)領(lǐng)域的所有公司開(kāi)放的組織,PCI--SIG確信PCI總線將會(huì)因其優(yōu)越的性能,而在高性能個(gè)人計(jì)算機(jī)(PCIs)的內(nèi)插式板卡、工作站和服務(wù)器等產(chǎn)品中成為主力擴(kuò)充總線。
PCI詳細(xì)說(shuō)明書(shū)中提供的許多功能中,有一點(diǎn)是可以提供“擴(kuò)充式ROM”,擴(kuò)充式ROM是位于PCI內(nèi)插式板卡上的ROM,包含了由PCI主處理器所執(zhí)行的代碼,為PCI內(nèi)插式板卡提供初始化和系統(tǒng)啟動(dòng)的功能。
擴(kuò)充式ROM的典型用法在上面提到的PCI本地總線詳細(xì)說(shuō)明書(shū)有詳細(xì)規(guī)定,該說(shuō)明書(shū)被列入了參考文獻(xiàn)。當(dāng)PCI計(jì)算機(jī)系統(tǒng)啟動(dòng)時(shí),在PCI處理器與內(nèi)插式板卡間將完成一種模式化的處理過(guò)程,其結(jié)果就是將內(nèi)插式板卡上擴(kuò)充式ROM中存貯的內(nèi)容傳送到PCI計(jì)算機(jī)系統(tǒng)的存貯器中。我們經(jīng)常稱(chēng)之為將擴(kuò)充式ROM中的內(nèi)容“映象”到PCI計(jì)算機(jī)的存貯器中。PCI系統(tǒng)軟件接著運(yùn)行在它的存貯器中擴(kuò)充式ROM被映象的代碼。一旦代碼的運(yùn)行得以完成,就將系統(tǒng)控制權(quán)還給系統(tǒng)配置軟件,PCI計(jì)算機(jī)系統(tǒng)繼續(xù)啟動(dòng)進(jìn)程。
當(dāng)一系列工作(即,傳送并執(zhí)行擴(kuò)充式ROM中的代碼)完成之后,擴(kuò)充式ROM的映象拷貝仍將保留在宿主機(jī)的主存中。該過(guò)程沒(méi)有提供釋放內(nèi)存的機(jī)制,所以映象可以被其他應(yīng)用程序所使用。今天的PCI計(jì)算機(jī)系統(tǒng)中,擴(kuò)充式ROM的內(nèi)容必需駐留在1MB基本內(nèi)存中,DOS/Windows應(yīng)用程序必須嚴(yán)格遵守這一規(guī)定。該空間如果稍有不足,都可能導(dǎo)致某些應(yīng)用程序無(wú)法運(yùn)行。
一般來(lái)說(shuō),只有特珠的應(yīng)用才需要擴(kuò)充式內(nèi)存提供的代碼。盡管這些功能不是必須的,但迄今為止仍無(wú)一種模式化的方法防止映象擴(kuò)充式ROM代碼”占據(jù)計(jì)算機(jī)主存。如果特珠的應(yīng)用需要擴(kuò)充式ROM,那么在所有該應(yīng)用涉及到的內(nèi)插式板卡上都必須有擴(kuò)充ROM。所以我們需要一種解決方法,對(duì)于那些不需要擴(kuò)充式ROM的映象拷貝的應(yīng)用程序而言,可以將擴(kuò)充式ROM置成無(wú)效狀態(tài),以防止對(duì)計(jì)算機(jī)主存中不必要的占用。
因此,本發(fā)明的主要目的是為PCI計(jì)算機(jī)提供一個(gè)新型的內(nèi)插式板卡。
本發(fā)明的另一個(gè)目的是為PCI總線計(jì)算機(jī)上的PCI總線提供一個(gè)通用的接口模塊以連接各類(lèi)內(nèi)插式板卡和PCI總線型計(jì)算機(jī)。
本發(fā)明的其他一個(gè)目的是提供一個(gè)內(nèi)插式板卡,板卡上的擴(kuò)充式ROM具有有效/無(wú)效兩種狀態(tài)。
本發(fā)明所討論的內(nèi)插式板卡包含一個(gè)擴(kuò)充式ROM,可以向PCI處理器提供擴(kuò)充式ROM可用(有效)/不可用(無(wú)效)兩種選擇。
特別地,這個(gè)新型的內(nèi)插式板卡包括一個(gè)裝配組件,專(zhuān)門(mén)為執(zhí)行預(yù)定的應(yīng)用(諸如連到通信網(wǎng)、連接不同類(lèi)型設(shè)備等)而設(shè)計(jì)。通用接口模塊具有可編程PCI配置寄存器和一個(gè)內(nèi)插式板卡微處理器。通過(guò)將稱(chēng)之為“擴(kuò)充式ROM基地址寄存器”的PCI配置寄存器的一個(gè)配置成具有預(yù)定的數(shù)值的PCI讀/寫(xiě)式寄存器或只讀式寄存器,內(nèi)插式板卡上的擴(kuò)充式ROM的數(shù)值將被“映象”到PCI計(jì)算機(jī)的存貯器中,或者不進(jìn)行映象。
應(yīng)特別指出的是,本發(fā)明的內(nèi)插式板卡包含一個(gè)內(nèi)插式板卡微處理器,一個(gè)本地總線以及連接在該總線上的永久存貯設(shè)備和通用接口模塊即下文所稱(chēng)的PCI總線接口芯片。PCI總線接口芯片提供一組寄存器,包含只讀寄存器。此外,還有少量(一般2K到16K)永久性存貯設(shè)備被用做PCI擴(kuò)充ROM,可由PCI處理器進(jìn)行讀/寫(xiě)操作。PCI總線接口芯片包括一個(gè)PCI控制ROM寄存器和一個(gè)擴(kuò)充式ROM基地址寄存器。
加電以后,PCI總線接口芯片控制器將啟動(dòng)PCI總線上所選的控制線,指定為“重試模式”,以回應(yīng)PCI系統(tǒng)處理器對(duì)PCI配置寄存器的訪問(wèn)。在“重試模式”下,禁止PCI系統(tǒng)處理器訪問(wèn)PCI總線接口芯片上的配置寄存器;而PCI系統(tǒng)處理器將根據(jù)“重試模式”的信號(hào),在一段時(shí)間后“重新”訪問(wèn)寄存器。在上述的禁止或無(wú)讀操作的期間,內(nèi)插式板卡微處理器訪問(wèn)永久性存貯設(shè)備,并將存貯在永久性存貯設(shè)備中的信息加載到配置寄存器組中。此外,內(nèi)插式板卡上的微處理器還將訪問(wèn)PCI控制ROM寄存器,如果擴(kuò)充式ROM需要被置于無(wú)效狀態(tài),則改變PCI ROM中的無(wú)效的狀態(tài)位;如果擴(kuò)充式ROM是有效的,不做改變。
當(dāng)加載結(jié)束后,內(nèi)插式微處理器將PCI總線接口芯片中一個(gè)稱(chēng)做PCI訪問(wèn)許可位的控制位置成有效,該位的輸出信號(hào)使PCI總線接口控制器將先前處于激活狀態(tài)的控制線變?yōu)榉羌せ顮顟B(tài),從而使PCI處理器可以訪問(wèn)PCI總線芯片中的寄存器。
如果PCI ROM無(wú)效位被置為邏輯“1”時(shí),PCI ROM無(wú)效邏輯將強(qiáng)行從PCI擴(kuò)充式ROM基地址寄存器中讀出全邏輯“0”。若PCI處理器只能從PCI擴(kuò)充式ROM基地址寄存器中讀出全“0”,這對(duì)于PCI處理器來(lái)說(shuō)就意味著該板卡上沒(méi)有擴(kuò)充式ROM。
如果將PCI ROM無(wú)效位置為邏輯“1”,則PCI ROM無(wú)效邏輯強(qiáng)制從PCI擴(kuò)充式ROM基地址寄存器讀出全“0”,如果將PCI ROM無(wú)效位置成邏輯“0”,那么PCI擴(kuò)充式ROM基地址寄存器對(duì)于PCI處理器而言是一個(gè)讀/寫(xiě)寄存器。在讀/寫(xiě)狀態(tài)下,PCI處理器將PCI擴(kuò)充ROM基地址寄存器所有單元均寫(xiě)成“1”,若從PCI擴(kuò)充ROM基地址寄存器中讀出非“0”值,PCI處理器將認(rèn)為內(nèi)插式板卡上提供了擴(kuò)充式ROM。然后擴(kuò)充式ROM的PCI存儲(chǔ)器的基地址將被寫(xiě)入擴(kuò)充式ROM基地址寄存器中。這個(gè)地址就是擴(kuò)充式ROM在PCI存貯器中進(jìn)行讀/寫(xiě)的位置。此外,PCI處理器為PCI總線上的PCI擴(kuò)充式ROM初始化一個(gè)讀/寫(xiě)周期。PCI有效邏輯將負(fù)責(zé)根據(jù)PCI擴(kuò)充式ROM基地址寄存器中的地址完成對(duì)擴(kuò)充式ROM的讀寫(xiě)操作。
本發(fā)明的另一個(gè)特征在于,如果以PCI總線芯片的一個(gè)管腳為輸入,PCI ROM無(wú)效比特位的功能將被PCI ROM無(wú)效信號(hào)屏蔽。如果該管腳輸入被置為在活動(dòng)“高位”狀態(tài),只能從擴(kuò)充式基地址寄存器讀出全“0”;如果該管腳的輸入被置為在非活動(dòng)低位狀態(tài),對(duì)PCI無(wú)效位的設(shè)置如前所述。
本發(fā)明前面提到的特征和優(yōu)點(diǎn)將隨下列圖做充分描述。
圖的簡(jiǎn)要描述
圖1顯示關(guān)于本發(fā)明所教導(dǎo)的內(nèi)插式板卡的系統(tǒng)級(jí)模塊2顯示關(guān)于本發(fā)明所教導(dǎo)的內(nèi)插式板卡的板卡級(jí)模塊3顯示關(guān)于本發(fā)明所教導(dǎo)的PCI接口芯片的芯片級(jí)模塊4顯示關(guān)于本發(fā)明所教導(dǎo)的PCI總線接口芯片的電路模塊5分別顯示PCI處理器和內(nèi)插式板卡在配置和設(shè)置相關(guān)的配置寄存器的處理流程圖6顯示PCI總線接口芯片控制器的模塊7顯示重試周期的時(shí)序8顯示關(guān)于本發(fā)明所教導(dǎo)的PCI擴(kuò)充式ROM有效/無(wú)效過(guò)程的流程9顯示PCI擴(kuò)充式ROM無(wú)效邏輯的模塊1顯示了PCI計(jì)算機(jī)系統(tǒng)13的模塊圖,PCI計(jì)算機(jī)系統(tǒng)由PCI總線10、PCI內(nèi)插式板卡12和PCI處理器14構(gòu)成。PCI處理器14包含許多軟件產(chǎn)品,諸如PCI系統(tǒng)配置軟件14A、操作系統(tǒng)14B和一些應(yīng)用程序14C。各軟件的功能已為業(yè)界人士熟知。因此,在此將不再給出詳細(xì)描述。我們完全有理由認(rèn)為PCI系統(tǒng)配置軟件14A完成了控制PCI內(nèi)插式板卡上配置寄存器(將在下文中詳細(xì)描述)所需的功能??偟膩?lái)說(shuō),PCI系統(tǒng)配置軟件是BIOS(基本輸入/輸出系統(tǒng))軟件的一部分。BIOS負(fù)責(zé)對(duì)系統(tǒng)實(shí)行加電測(cè)試,提供各種較低級(jí)別的例程,以支持系統(tǒng)配置和數(shù)據(jù)輸入。PCI SpecialInterest Group(PCI--SIG)于1993年7月20日發(fā)表了PCI BIOS詳細(xì)說(shuō)明書(shū)修訂版2.0,大致描述了PCI配置軟件所需功能。該文件被列入了參考文獻(xiàn)。PCI BIOS詳細(xì)說(shuō)明書(shū)提供了充足的信息,編程人員可以據(jù)此設(shè)計(jì)適合的軟件模塊。
如前所述,PCI總線10是一種計(jì)算機(jī)系統(tǒng)的內(nèi)部的互連傳輸機(jī)制,1993年4月30日發(fā)表的“外設(shè)元件互連(PCI)的本地總線規(guī)則”一文中對(duì)PCI總線進(jìn)行了詳細(xì)描述,在此也被列入?yún)⒖嘉墨I(xiàn)。此外,USP 5,392,407(具有外設(shè)元件互連端口與RAMBUS端口的多端口處理器)描述了PCI總線的特征,為了更好地了解PCI總線的背景資料,在此也列入了參考文獻(xiàn)。盡管在圖1中顯示在實(shí)際實(shí)施時(shí),PCI內(nèi)插式板卡12獨(dú)立于PCI計(jì)算機(jī)系統(tǒng)13,PCI內(nèi)插式板卡12實(shí)際上連接在PCI計(jì)算機(jī)系統(tǒng)13表面下的一個(gè)擴(kuò)展槽上。
參見(jiàn)圖1,本發(fā)明下文的描述涉及到PCI內(nèi)部板卡12,具體來(lái)說(shuō)是涉及到PCI總線接口芯片12A,因?yàn)樗cPCI總線12接口。PCI總線接口芯片12A是一種通用芯片,通過(guò)它廠商可將各種不同類(lèi)型的PCI內(nèi)插式板卡12連接到PCI總線上。此外PCI總線接口芯片還能將PCI內(nèi)插式板卡上的擴(kuò)充式ROM置為有效或無(wú)效。PCI內(nèi)插式板卡12包括一個(gè)處理器12B和一個(gè)本地總線12C,本地總線12C負(fù)責(zé)連接PCI總線接口芯片12A,永久性存貯器12D、RAM12E和輸入/輸出(I/O)任務(wù)生成器設(shè)備12F。任務(wù)生成器設(shè)備12F是PCI內(nèi)插式板卡的一個(gè)子系統(tǒng),執(zhí)行預(yù)定的功能以完成期望的任務(wù)。例如,任務(wù)生成器設(shè)備12F可以是一個(gè)通信適配卡負(fù)責(zé)連接PCI計(jì)算機(jī)系統(tǒng)13和局域網(wǎng)諸如令牌網(wǎng)、以太網(wǎng)、FDDI網(wǎng)等。更具體地說(shuō),用于令牌網(wǎng)的任務(wù)生成器可以是IBM Auto LANStreamer PCI AdapterP/N 04H8095。
類(lèi)似的,用于以太網(wǎng)的任務(wù)生成器也可以是IBM EtherStreamer MC32Adapter P/N 74G0850一般來(lái)說(shuō),可以連到PCI總線接口芯片上的任務(wù)生成器包括通信控制器(以太網(wǎng)、令牌環(huán)網(wǎng)、FDDI、ATM網(wǎng)等)、顯示控制器(VGA、XGA等)、多媒體設(shè)備(視頻設(shè)備、聲頻設(shè)備、CD--ROM等)、盤(pán)系統(tǒng)(IDE、SCSI、RAID等)和協(xié)處理器系統(tǒng)(奔騰芯片、POWER PC等)。
應(yīng)該注意到,這些應(yīng)用都可用PCI內(nèi)插式板卡實(shí)現(xiàn)。根據(jù)本發(fā)明的教導(dǎo),PCI總線接口芯片12A(下文將詳細(xì)討論)可以用在任何一種內(nèi)插式板卡中,以執(zhí)行內(nèi)插式板卡需要的總線接口功能,對(duì)PCI總線進(jìn)行操作。
仍舊參照?qǐng)D1,本發(fā)明包含了擴(kuò)充式ROM以及PCI總線接口芯片提供的特有機(jī)制(后面將加以描述),該機(jī)制可以將擴(kuò)充式ROM置為對(duì)于PCI處理器來(lái)說(shuō)有效或無(wú)效狀態(tài),特別應(yīng)指出,擴(kuò)充式ROM是永久性存貯器上的一部分,一般來(lái)說(shuō)有2K至16K。當(dāng)然,現(xiàn)有技術(shù)可以在設(shè)計(jì)擴(kuò)充式ROM時(shí)選用其他結(jié)構(gòu)或大小的存貯器,而不偏離本發(fā)明的范圍。
PCI系統(tǒng)處理器可以執(zhí)行擴(kuò)充式ROM中的代碼以代替內(nèi)插式板卡執(zhí)行各種功能,諸如系統(tǒng)初始化、配置以及啟動(dòng)等。PCI系統(tǒng)配置程序?qū)⒌刂分祵?xiě)入PCI擴(kuò)充式ROM基地址寄存器中,該值決定了擴(kuò)充式ROM在PCI系統(tǒng)存貯映象中的位置。在PCI本地總線詳細(xì)說(shuō)明書(shū),產(chǎn)品2.0修訂版,中規(guī)定了PCI擴(kuò)充式ROM基地址寄存器的格式和位置。
下面是有關(guān)擴(kuò)充式ROM的一個(gè)范例,在本例中,擴(kuò)充式ROM用于一個(gè)令牌內(nèi)插式板卡,該板卡的功能是連接PCI計(jì)算機(jī)與令牌環(huán)網(wǎng)。
令牌內(nèi)插式板卡提供一個(gè)擴(kuò)充式ROM,其中包含具有“遠(yuǎn)程程序裝載”功能的代碼。通過(guò)遠(yuǎn)程程序裝載,遠(yuǎn)程服務(wù)器系統(tǒng)可以利用局域網(wǎng)卡適配器通過(guò)網(wǎng)絡(luò)啟動(dòng)主機(jī)系統(tǒng)。此時(shí)操作系統(tǒng)不是由本地硬盤(pán)設(shè)備或軟盤(pán)加載,而是由內(nèi)插式板卡上的遠(yuǎn)程程序裝載代碼局域網(wǎng)向遠(yuǎn)程服務(wù)器發(fā)出請(qǐng)求以獲取操作系統(tǒng)的一個(gè)副本。當(dāng)遠(yuǎn)程程序裝載代碼接收到操作系統(tǒng)代碼后,立刻將其裝載到本地計(jì)算機(jī)的主存中,并在裝載完成后將控制權(quán)交給操作系統(tǒng)。
但很多令牌內(nèi)插式板卡應(yīng)用并不需要遠(yuǎn)程程序加載功能,因?yàn)樗拗鳈C(jī)系統(tǒng)總是從本地硬盤(pán)啟動(dòng)的。在這些應(yīng)用程序中,本發(fā)明所描述的技術(shù)可以用來(lái)將擴(kuò)充式ROM置為無(wú)效狀態(tài)釋放不必要的映象存貯空間,正常情況下這些空間將被遠(yuǎn)程程序裝載代碼所占用。對(duì)于需要使用遠(yuǎn)程程序裝載功能的應(yīng)用,擴(kuò)充式ROM依然有效,宿主機(jī)系統(tǒng)將通過(guò)遠(yuǎn)程服務(wù)器來(lái)啟動(dòng)。
對(duì)于令牌內(nèi)插式板卡,決定擴(kuò)充式ROM是否有效的配置輸入?yún)?shù),存儲(chǔ)在內(nèi)插式板卡的永久式閃存(FLASH memory)中。加電之后,內(nèi)插式板卡上的微處理器立即從閃存中將配置位拷入PCI總線接口芯片的寄存器中。該配置位控制著擴(kuò)充式ROM基地址寄存器的性質(zhì),即對(duì)于訪問(wèn)它的PCI系統(tǒng)配置軟件來(lái)說(shuō),是可“讀/寫(xiě)”還是“只讀”的。用戶可以利用PCI計(jì)算機(jī)系統(tǒng)提供的工具來(lái)修改閃存中的配置位,從而改變擴(kuò)充式ROM的狀態(tài)為有效或無(wú)效。
圖2顯示了PCI總線接口芯片12A的板卡級(jí)模塊圖。PCI總線芯片12A包括PCI總線接口16,它負(fù)責(zé)連接PCI總線10。內(nèi)部總線接口設(shè)備18負(fù)責(zé)連接PCI總線芯片12A和內(nèi)部總線12C。PCI總線接口設(shè)備16和內(nèi)部總線接口設(shè)備18之間由以下設(shè)備連接數(shù)據(jù)傳輸與邏輯設(shè)備20,功能寄存器22,PCI配置寄存器24和PCI擴(kuò)充式ROM控制設(shè)備50。數(shù)據(jù)傳輸與邏輯設(shè)備20是PCI總線10與PCI內(nèi)插式板卡12間的主要數(shù)據(jù)傳輸路徑,包括一個(gè)先進(jìn)先出緩沖20A,將數(shù)據(jù)從內(nèi)部總線接口設(shè)備18移到PCI總線接口設(shè)備16。類(lèi)似的,先進(jìn)先出緩沖20B將數(shù)據(jù)反向傳送。PCI系統(tǒng)處理器通過(guò)PCI總線10執(zhí)行PCI系統(tǒng)配置軟件14A可對(duì)PCI配置寄存器進(jìn)行讀寫(xiě)操作。利用寫(xiě)入的信息可以配置插入式板卡連接的設(shè)備的I/O地址、存儲(chǔ)器地址、中斷級(jí)別、高速緩存線大小(Cache Line)等設(shè)備資源。
參見(jiàn)圖2,PCI配置寄存器24包含的信息對(duì)于配置軟件14A(見(jiàn)圖1)十分重要,因?yàn)橹挥型ㄟ^(guò)這些信息才能識(shí)別設(shè)備并決定如何進(jìn)行配置。PCI標(biāo)準(zhǔn)需要下面列出的只讀配置寄存器。下表無(wú)疑是詳盡的,本發(fā)明將包括已命名的和其他各種類(lèi)型的寄存器----只要它們是PCI內(nèi)插式板卡與PCI系統(tǒng)連接所必須。這些PCI結(jié)構(gòu)的只讀寄存器包括廠商標(biāo)識(shí)一個(gè)16位寄存器,用戶可識(shí)別出該設(shè)備的生產(chǎn)廠商;設(shè)備標(biāo)識(shí)一個(gè)16位寄存器,用以唯一標(biāo)識(shí)廠商生產(chǎn)的PCI設(shè)備;更新標(biāo)識(shí)一個(gè)8位寄存器,廠商用以獲悉設(shè)備的更新信息;類(lèi)別代碼一個(gè)24位寄存器,可識(shí)別出設(shè)備的一般功能(顯示控制器、網(wǎng)絡(luò)控制器、橋設(shè)備等);
基地址寄存器包含一個(gè)只讀位,指明設(shè)備輸入/輸出和存貯器映射需求;中斷電路寄存器一個(gè)8位寄存器,與中斷電路路由選擇請(qǐng)求通信;最小許可和最大延遲定時(shí)寄存器8位寄存器,設(shè)定了延遲定時(shí)器的設(shè)備期望值。
正如以下將要描述的,在本發(fā)明中可以根據(jù)微處理器12B和永久性存貯器12D動(dòng)態(tài)設(shè)置PCI配置寄存器的值。因此,同樣的PCI總線接口芯片12A可以用于多種不同類(lèi)型的PCI內(nèi)插式板卡。
正如我們接下來(lái)要解釋的,本發(fā)明可將擴(kuò)充式ROM置為有效或無(wú)效狀態(tài)。PCI擴(kuò)充邏輯設(shè)備50(詳見(jiàn)下文)監(jiān)控稱(chēng)為“擴(kuò)充式內(nèi)存基地址寄存器”的一個(gè)配置寄存器中的配置信息,根據(jù)這些信息在PCI處理器間傳遞信息,或不傳遞任何信息。
“功能寄存器”22與PCI配置寄存器相分離,它們只能被諸如令牌環(huán)設(shè)備驅(qū)動(dòng)程序等特定應(yīng)用程序所訪問(wèn)。它們負(fù)責(zé)提供中斷/狀態(tài)功能,DMA控制功能和一些PCI總線說(shuō)明書(shū)中未規(guī)定配置功能。
圖3顯示了PCI總線接口芯片12A的詳細(xì)模塊圖,PCI總線接口芯片12A負(fù)責(zé)連接PCI總線10和內(nèi)部插接板卡總線12C。在該圖中,還顯示了PC I配置寄存器----一種可編程寄存器,微處理器12B通過(guò)內(nèi)部?jī)?nèi)插式板卡總線12C對(duì)其進(jìn)行寫(xiě)操作。此外,在圖3中還顯示了PCI訪問(wèn)許可寄存器,它負(fù)責(zé)控制PCI處理器對(duì)PCI配置寄存器的訪問(wèn)權(quán)。正如我們以后將要提到的,在具體實(shí)施時(shí),PCI訪問(wèn)許可寄存器是一個(gè)單比特寄存器。當(dāng)然,也可用其他類(lèi)型的配置寄存器來(lái)實(shí)現(xiàn)相同的功能而不違背本發(fā)明的精神。
仍參照?qǐng)D3,PCI總線接口設(shè)備16包括一個(gè)PCI總線主邏輯設(shè)備16A,和一個(gè)PCI總線從邏輯設(shè)備16B。PCI總線主邏輯設(shè)備16A負(fù)責(zé)在PCI總線與PCI總線接口芯片的FIFO之間傳輸突發(fā)性數(shù)據(jù)。PCI總線主邏輯設(shè)備16A,通過(guò)PCI系統(tǒng)總線仲裁邏輯(PCI總線系統(tǒng)的一個(gè)組成部分,(圖中未顯示)取得總線的所有權(quán),以完成傳輸?shù)某跏蓟ぷ?。而PCI總線從邏輯設(shè)備16B負(fù)責(zé)響應(yīng)由其他總線控制器,例如PCI系統(tǒng)處理器,初始化的總線周期,它提供PCI總線上必要的握手控制信號(hào),以使PCI系統(tǒng)處理器完成對(duì)PCI總線接口芯片上寄存器的讀/寫(xiě)操作。
與PCI總線接口16相類(lèi)似,內(nèi)部總線設(shè)備18包含一個(gè)內(nèi)部總線主邏輯設(shè)備18以及一個(gè)內(nèi)部從邏輯設(shè)備18B。內(nèi)部總線主邏輯設(shè)備18A負(fù)責(zé)在內(nèi)部?jī)?nèi)插式總線12A與PCI總線接口芯片的FIFO之間傳輸突發(fā)性數(shù)據(jù);18B則為內(nèi)插式板卡上的微處理器提供寄存器讀/寫(xiě)服務(wù)。
仍參照?qǐng)D3。“或”邏輯電路20有一個(gè)輸出端,連接到PCI總線從邏輯設(shè)備16B;另外“或”邏輯電路20有兩個(gè)輸入端,一個(gè)將通過(guò)線26連接到PCI訪問(wèn)許可寄存器24,另一輸入端通過(guò)導(dǎo)線23連接到管腳22。第22管腳與PCI總線接口模塊12A相連,在圖3中以虛圓圈表示。正如我們即將解釋的,當(dāng)“或”邏輯電路20的輸出端信號(hào)為“啟動(dòng)”時(shí),PCI處理器才能通過(guò)PCI總線訪問(wèn)PCI配置寄存器,如果“或”邏輯電路的輸出端處于“非激活”狀態(tài),PCI處理器對(duì)配置寄存器的訪問(wèn)功能將被阻塞??刂啤盎颉边壿嬰娐?0的輸出狀態(tài)有兩種方式通過(guò)處理器12B(見(jiàn)圖2)設(shè)置PCI訪問(wèn)許可寄存器的一個(gè)比特位進(jìn)行控制或者通過(guò)PCI總線接口芯片的22號(hào)管腳控制。
在圖3中還顯示了將擴(kuò)充式ROM置為有效或無(wú)效的機(jī)制。這一機(jī)制包括PCI ROM控制寄存器52,輸出端通過(guò)導(dǎo)線54連接到邏輯“或”電路56。“或”邏輯電路的輸出連接到擴(kuò)充式ROM基地址寄存器58。PCI擴(kuò)充式ROM無(wú)效導(dǎo)線57將PCI擴(kuò)充式ROM無(wú)效管腳60連接到“或”邏輯電路的另一輸入端,PCI擴(kuò)充式ROM基地址寄存器58的輸出連接到PCI擴(kuò)充式ROM解碼邏輯設(shè)備62,PCI擴(kuò)充式解碼邏輯設(shè)備62一端連接到PCI總線從邏輯設(shè)備16B,另一端連接到內(nèi)部總線從邏輯設(shè)備18B。
在圖3中,PCI ROM控制寄存器52有一個(gè)比特位(將在后面描述),內(nèi)插式板卡微處理器通過(guò)內(nèi)部插接板總線12C可以對(duì)其進(jìn)行設(shè)置。如果該比特位被設(shè)置成邏輯“1”,就強(qiáng)制擴(kuò)充式ROM基地址寄存器58輸出全“零”值。PCI處理器如果讀到全0則表明內(nèi)插式板卡上沒(méi)有提供擴(kuò)充式ROM。如果擴(kuò)充式ROM基地址寄存器58的輸出為非零值,PCI處理器即認(rèn)為在內(nèi)插式板卡上有擴(kuò)充式ROM。當(dāng)PCI總線上的地址是擴(kuò)充式內(nèi)存基地址寄存器中58中的地址時(shí),PCI擴(kuò)充式ROM解碼邏輯設(shè)備62將在內(nèi)插式板卡擴(kuò)充式ROM和PCI處理器之間交換信息。一個(gè)擴(kuò)充式ROM基地址寄存器究竟是充當(dāng)讀/寫(xiě)寄存器還是僅具有固定“零”值的只讀寄存器,我們將在后面詳細(xì)地描述。通過(guò)上述方法,即判斷擴(kuò)充式ROM基地址寄存器58是否全零以表示該寄存器是讀/寫(xiě)寄存器還是只讀寄存器,可以完全控制內(nèi)插式板卡對(duì)PCI處理器的有效性。下面還將介紹,PCI擴(kuò)充式ROM無(wú)效導(dǎo)線57上的PCI擴(kuò)充式ROM無(wú)效信號(hào)可以屏蔽PCI ROM控制寄存器比特值的功能。
正如上文所描述的,PCI處理器根據(jù)擴(kuò)充式ROM基地址寄存器的內(nèi)容判斷內(nèi)插式板卡上是否提供了擴(kuò)充式ROM。以下將詳細(xì)描述擴(kuò)充式ROM基地址寄存器。擴(kuò)充式ROM基地址寄存器在PCI本地總線詳細(xì)說(shuō)明書(shū)2.0修訂版Sec.6.2.5.2有詳細(xì)規(guī)定,該說(shuō)明書(shū)被列入了參考文獻(xiàn)。在PCI計(jì)算機(jī)系統(tǒng)加電以后,PCI處理器運(yùn)行配置軟件將擴(kuò)充式基地址寄存器內(nèi)寫(xiě)為全“1”。如果配置軟件讀到一個(gè)非“零”返回值,就說(shuō)明內(nèi)插式板卡上有一個(gè)擴(kuò)充式ROM;如果讀到的返回值均為“零”,那么在內(nèi)插式板卡上就沒(méi)有擴(kuò)充式ROM。
如果內(nèi)插式板卡提供了擴(kuò)充式ROM,系統(tǒng)配置軟件根據(jù)從擴(kuò)充式ROM基地址寄存器中讀到的信息來(lái)決定擴(kuò)充式ROM的大小,然后將系統(tǒng)處理器內(nèi)存映象中擴(kuò)充式ROM存放地址加載到寄存器中。接著將寄存器中一個(gè)比特位置成有效,允許PCI總線對(duì)擴(kuò)充式ROM的訪問(wèn)。接下來(lái),系統(tǒng)配置軟件將擴(kuò)充式內(nèi)存中的內(nèi)容拷貝或映射到宿主機(jī)主存貯器中,然后將內(nèi)插式板卡上擴(kuò)充式ROM基地址寄存器置為無(wú)效,以禁止對(duì)擴(kuò)充式ROM的訪問(wèn)。同時(shí),將擴(kuò)充式ROM從系統(tǒng)處理器存貯器映象中移走。接下來(lái),系統(tǒng)配置軟件執(zhí)行主存映象中的代碼。一旦代碼執(zhí)行完畢,將系統(tǒng)控制權(quán)交還給系統(tǒng)配置軟件,PCI計(jì)算機(jī)系統(tǒng)繼續(xù)執(zhí)行啟動(dòng)進(jìn)程。
圖4用圖解說(shuō)明了在PCI系統(tǒng)處理器14(見(jiàn)圖1)被禁止訪問(wèn)PCI配置寄存器時(shí),微處理器12B(見(jiàn)圖1)如何對(duì)PCI配置寄存器進(jìn)行寫(xiě)操作。然而,一旦寫(xiě)操作結(jié)束,將設(shè)置PCI訪問(wèn)許可寄存器24中的PCI訪問(wèn)許可位30,前面提到的PCI處理器就對(duì)PCI總線接口芯片的全部寄存器具有了訪問(wèn)權(quán)。此外,如果需要將擴(kuò)充式內(nèi)存置為無(wú)效,PCI ROM的無(wú)效位(見(jiàn)圖9)應(yīng)置成邏輯“1”;否則PCI ROM“非活動(dòng)”位仍應(yīng)保持邏輯“0”。
仍然參見(jiàn)圖4,一組數(shù)據(jù)線(在PCI總線上,被稱(chēng)做PCI數(shù)據(jù)總線10A),連接PCI配置寄存器與PCI總線10。一個(gè)被稱(chēng)做PCI--RST#LINE的控制結(jié)構(gòu)線將PCI訪問(wèn)許可寄存器28連接到PCI總線10上。一組用于啟動(dòng)PCI總線重試功能所必需的PCI控制信號(hào)線將PCI總線10連接到PCI狀態(tài)機(jī)和組合邏輯設(shè)備31。
PCI從狀態(tài)機(jī)和組合邏輯設(shè)備31的輸入端通過(guò)最終訪問(wèn)許可信號(hào)線32連接到“或”邏輯電路20,導(dǎo)線24和26上的信號(hào)已經(jīng)在圖3中做了相關(guān)描述,在此不再重復(fù)。
圖5顯示了PCI系統(tǒng)處理器嘗試訪問(wèn)PCI內(nèi)插式板卡配置寄存器,與PCI內(nèi)插式板卡的微處理器預(yù)載PCI配置寄存器這兩個(gè)過(guò)程之間的交互情況。系統(tǒng)一旦加電,PCI處理器42中的PCI系統(tǒng)配置軟件就會(huì)嘗試訪問(wèn)PCI插入式板卡的配置寄存器(位于PCI接口芯片中,圖中未顯示)。但PCI系統(tǒng)處理器的訪問(wèn)請(qǐng)求將被禁止,直到PCI總線接口芯片中的PCI訪問(wèn)許可位被內(nèi)插式板卡微處理器寫(xiě)為有效狀態(tài)。在PCI系統(tǒng)處理器的訪問(wèn)請(qǐng)求被禁止期間,PCI內(nèi)插式板卡微處理器將完成對(duì)配置寄存器的預(yù)載操作,然后PCI系統(tǒng)配置軟件才能訪問(wèn)配置寄存器。
特別的是,當(dāng)PCI系統(tǒng)加電(見(jiàn)34塊)后,這一處理就開(kāi)始進(jìn)行,PCI內(nèi)插式板卡及其配置寄存器的圖解見(jiàn)框圖36。加電后,PCI系統(tǒng)處理器42嘗試通過(guò)配置讀/寫(xiě)線訪問(wèn)配置寄存器。這些嘗試最初是不允許的,這一過(guò)程在圖中由重試線表示。在此時(shí)段內(nèi),PCI內(nèi)插式板卡微處理器38從板卡的永久存貯ROM中獲得信息,并將其寫(xiě)入適當(dāng)?shù)呐渲眉拇嫫髦小R坏┻@些工作完成,位于40塊的PCI內(nèi)插式板卡微處理器置PCI訪問(wèn)許可位,從而允許PCI系統(tǒng)處理器42退出重試模式,訪問(wèn)板卡上的寄存器。對(duì)寄存器的訪問(wèn)在圖5中由雙箭頭線配置讀/寫(xiě)表示。一旦每個(gè)寄存器配置完畢,系統(tǒng)即能與通過(guò)內(nèi)插式板卡連接到PCI總線上的設(shè)備進(jìn)行通信。
圖6顯示了PCI總線接口芯片與PCI總線接口控制器模塊圖(PCI總線Int.Ctrl.),PCI總線接口控制器的部分功能是產(chǎn)生控制信號(hào),使PCI處理器強(qiáng)制進(jìn)入“重試”狀態(tài),并禁止PCI處理器訪問(wèn)PCI總線接口芯片的寄存器。在圖6中有些元件在前面已經(jīng)詳述過(guò),在此就不再標(biāo)注、討論。PCI總線接口控制器,包括PCI從組合邏輯設(shè)備44和PCI從狀態(tài)機(jī)46。PCI從組合邏輯設(shè)備44將PCI總線(PCI FRAME#和PCI IRDY#)的控制信號(hào)解碼,并告知PCI從狀態(tài)機(jī)46,PCI總線接口芯片上的某一個(gè)PCI系統(tǒng)處理器已對(duì)PCI總線接口芯片進(jìn)行了寄存器讀/寫(xiě)初始化工作。PCI從狀態(tài)機(jī)46接著根據(jù)獲悉的狀態(tài)完成讀/寫(xiě)操作服務(wù)。PCI從組合邏輯設(shè)備44對(duì)PCI從狀態(tài)機(jī)46的輸出進(jìn)行解碼,并相應(yīng)第啟動(dòng)PCI總線上的控制信號(hào)(PCIDEVSEL#,PCI TRDY#和PCI STOP#)告知PCI系統(tǒng)處理器總線周期已結(jié)束。
如果訪問(wèn)許可線32上的最終訪問(wèn)許可信號(hào)處于非活動(dòng)低狀態(tài),PCI從狀態(tài)機(jī)46將對(duì)PCI系統(tǒng)處理器的讀/寫(xiě)操作發(fā)出“重試”信號(hào)。根據(jù)PCI從狀態(tài)機(jī)46的輸出信號(hào),PCI從組合邏輯設(shè)備44啟動(dòng)PCI EVSEL#和PCISTOP#信號(hào),停止PCI TRDY#信號(hào),以進(jìn)入重試狀態(tài)。PCI系統(tǒng)處理器用該信號(hào)序列來(lái)指示對(duì)寄存器的訪問(wèn)被禁止,總線事務(wù)必須在一段時(shí)間后重試。如果最終訪問(wèn)許可信號(hào)32處于啟動(dòng)高狀態(tài),PCI從狀態(tài)機(jī)46和組合邏輯設(shè)備44啟動(dòng)PCI DEVSEL#和PCI TRDY#信號(hào)來(lái)回應(yīng)某個(gè)正常的總線事務(wù)。PCI系統(tǒng)處理器用這個(gè)信號(hào)序列指示對(duì)寄存器的一次讀/寫(xiě)操作已正常結(jié)束。上述“重試”過(guò)程和總線事務(wù)的正常讀/寫(xiě)過(guò)程操作所必須的、準(zhǔn)確的信號(hào)序列在“PCI本地總線詳細(xì)說(shuō)明書(shū),產(chǎn)品修訂版2.0”中有詳細(xì)定義,該說(shuō)明書(shū)已被列入?yún)⒖嘉墨I(xiàn)。
圖7顯示了PCI處理器和PCI總線接口芯片(見(jiàn)圖6)相互之間交互過(guò)程(握手過(guò)程)的時(shí)序或事件流程圖。這種“握手”過(guò)程用于強(qiáng)制PCI處理器轉(zhuǎn)入重試模式。當(dāng)PCI總線接口控制器一類(lèi)的從設(shè)備沒(méi)有準(zhǔn)備好與PCI處理器等主設(shè)備進(jìn)行通信時(shí),系統(tǒng)將進(jìn)入重試模式。該例程所需的信號(hào)在上面參照的“PCI本地總線詳細(xì)說(shuō)明書(shū)”中定義,它包括一個(gè)時(shí)鐘、Frame#、IRDY#、TRDY#、STOP#和DEVSEL#。在PCI處理器需要訪問(wèn)PCI總線接口芯片上的配置寄存器時(shí),PCI總線將輸出Frame#和IRDY#信號(hào)。而TRDY#、STOP#和DEVSEL#信號(hào)則是為了回應(yīng)PCI處理器輸出的上述信號(hào)而由PCI接口控制器產(chǎn)生。在圖6中顯示了這些命名信號(hào)及方向。數(shù)字1、2、3、4、和5表示PCI總線接口芯片根據(jù)PCI處理器輸出信號(hào)進(jìn)行采樣的階段。類(lèi)似的,標(biāo)有A、B、C的循環(huán)表示某一設(shè)備初始化特定的動(dòng)作并從其他設(shè)備得到回應(yīng)的過(guò)程。例如A表示PCI總線接口芯片進(jìn)行初始化,B則表示PCI處理器對(duì)此的回應(yīng)。確切來(lái)說(shuō),就是當(dāng)STOP#信號(hào)處于低電平,則IRDY#下降,F(xiàn)RAME#上升。C代表的事件也可類(lèi)似理解。最后,一次重試過(guò)程包括5個(gè)時(shí)鐘周期,在圖上用兩個(gè)反向箭頭表示。
圖9顯示了關(guān)于本發(fā)明所討論的PCI ROM的有效/無(wú)效設(shè)置的邏輯模塊圖。該邏輯由PCI總線接口芯片完成。圖9中一些前面已描述過(guò)的元件將不再討論。PCI ROM有效/無(wú)效電路包括PCI ROM無(wú)效寄存器62,該寄存器通過(guò)內(nèi)部總線讀/寫(xiě)數(shù)據(jù)線與內(nèi)部?jī)?nèi)插式板卡總線。正如接下來(lái)要討論的,寄存器中的一個(gè)“PCI ROM無(wú)效位”可以由內(nèi)部?jī)?nèi)插式板卡處理器來(lái)設(shè)置。如果該位被設(shè)置成“1”,PCI處理器將忽略內(nèi)插式板卡上的擴(kuò)充式ROM。PCI-RSD#控制線66用于重置PCI ROM無(wú)效寄存器62。PCI ROM無(wú)效位通過(guò)導(dǎo)線68連接到“或”邏輯電路設(shè)備70?!盎颉边壿嬰娐吩O(shè)備70的另一輸入端是PCI ROM無(wú)效輸入72。如前文所述,輸入72來(lái)自于PCI總線接口芯片管腳60(見(jiàn)圖3)。“或”邏輯電路設(shè)備70的輸出端通過(guò)最終ROM無(wú)效線71連接到MUX74。MUX74與PCI擴(kuò)充式內(nèi)存基地址寄存器76相連,同時(shí)又與一個(gè)邏輯“0”強(qiáng)制輸入端78相連。有許多方法可以將邏輯“0”強(qiáng)制寫(xiě)入到MUX74。MUX74的輸出通過(guò)PCI數(shù)據(jù)讀取線送到地址比較器82中,地址比較器82是擴(kuò)充式ROM解碼邏輯設(shè)備84的一部分。
在圖9中,擴(kuò)充式ROM邏輯設(shè)備84還包括擴(kuò)充式讀/寫(xiě)狀態(tài)機(jī)86,它通過(guò)控制線連接到內(nèi)部總線從狀態(tài)機(jī)和組合邏輯設(shè)備88。而內(nèi)部總線從狀態(tài)機(jī)和組合邏輯設(shè)備88都通過(guò)內(nèi)部控制線連接到內(nèi)部?jī)?nèi)插式板卡總線上。擴(kuò)充式ROM讀/寫(xiě)狀態(tài)機(jī)86還連接到數(shù)據(jù)鎖存器90。數(shù)據(jù)鎖存器90通過(guò)內(nèi)部數(shù)據(jù)總線64連接到內(nèi)部?jī)?nèi)插式板卡總線。PCI地址/數(shù)據(jù)MUX/DEMUX通過(guò)命名線(named line)與擴(kuò)充式ROM基地址寄存器76、地址比較器設(shè)備82和數(shù)據(jù)鎖存器90相連。PCI從狀態(tài)機(jī)與擴(kuò)充式ROM讀/寫(xiě)狀態(tài)機(jī)通過(guò)控制線相連。由于PCI從狀態(tài)機(jī)和組合邏輯設(shè)備已經(jīng)描述過(guò),因此就不再深入討論了。
現(xiàn)在討論圖8中元件的功能與運(yùn)作。該邏輯圖說(shuō)明了內(nèi)插式板卡上的微處理器怎樣對(duì)PCI擴(kuò)充式ROM基地址寄存器加以控制,使其既可以充當(dāng)讀/寫(xiě)寄存器,又可以充當(dāng)各個(gè)比特位均置成“0”的只讀式寄存器。擴(kuò)充式ROM的內(nèi)容很小(一般2K至16K),存儲(chǔ)在PCI內(nèi)插式板卡的永久存儲(chǔ)設(shè)備中,它可以被PCI處理器直接訪問(wèn)。通過(guò)執(zhí)行擴(kuò)充式ROM中的代碼,PCI系統(tǒng)處理器可以代表內(nèi)插式板卡完成多種功能,諸如初始化系統(tǒng)配置或系統(tǒng)啟動(dòng)等。擴(kuò)充式ROM在PCI系統(tǒng)處理器的存貯器中的位置可以由PCI系統(tǒng)配置程序進(jìn)行配置,即將擴(kuò)充式ROM的基地址寫(xiě)入PCI擴(kuò)充式ROM基地址寄存器。
PCI ROM無(wú)效寄存器是PCI總線接口芯片上的一個(gè)寄存器。內(nèi)插式板卡微處理器可以通過(guò)內(nèi)部?jī)?nèi)插式板卡數(shù)據(jù)總線對(duì)其進(jìn)行讀/寫(xiě)操作。本發(fā)明可以有多種實(shí)施方法,其中之一就是PCI ROM無(wú)效寄存器中只包含一個(gè)比特位----PCI ROM無(wú)效比特位。PCI ROM無(wú)效位在PCI系統(tǒng)加電時(shí)由PCI__RST#置“0”。PCI__RST#信號(hào)是所有PCI總線系統(tǒng)中均包含的一種固定信號(hào)。
PCI系統(tǒng)處理器可以對(duì)PCI擴(kuò)充式ROM基地址寄存器進(jìn)行讀/寫(xiě)操作。同樣,內(nèi)插式板卡處理器也可以對(duì)PCI ROM無(wú)效位執(zhí)行寫(xiě)操作。在讀操作過(guò)程中,PCI ROM無(wú)效位負(fù)責(zé)控制PCI系統(tǒng)處理器從擴(kuò)充式ROM基地址寄存器讀出的數(shù)據(jù)。當(dāng)該位處于“0”狀態(tài),PCI ROM無(wú)效位將通知MUX74,返回PCI擴(kuò)充式ROM基地址寄存器的實(shí)際內(nèi)容。在這種模式下,PCI擴(kuò)充式ROM的功能被激活。PCI系統(tǒng)處理器可以回讀它寫(xiě)入寄存器中的所有內(nèi)容。另一方面,內(nèi)插式板卡內(nèi)部總線上的微處理器可以把PCI ROM無(wú)效位置成邏輯“1”,從而把PCI擴(kuò)充式ROM的功能置于無(wú)效狀態(tài)。在這種模式下,MUX74總是輸出邏輯“0”,從擴(kuò)充式ROM基地址寄存器中的讀操作因而也只能返回“0”,不管該寄存器曾被寫(xiě)入什么值。
MUX74的數(shù)據(jù)輸出端還連接到擴(kuò)充式內(nèi)存解碼邏輯設(shè)備84。如果MUX74的輸出值全部為“0”,解碼邏輯被置成無(wú)效狀態(tài),不提供擴(kuò)充式ROM的功能。如果MUX74的輸出值為非“0”,擴(kuò)充式ROM解碼邏輯比較當(dāng)前PCI總線地址和擴(kuò)充式ROM基地址寄存器的內(nèi)容,決定PCI系統(tǒng)處理器能否訪問(wèn)擴(kuò)充式ROM。如果地址匹配,那么擴(kuò)充式ROM讀/寫(xiě)狀態(tài)機(jī)被啟動(dòng)為擴(kuò)充式ROM的讀/寫(xiě)操作服務(wù)。
如果PCI系統(tǒng)處理器對(duì)擴(kuò)充式ROM執(zhí)行讀操作,擴(kuò)充式ROM讀/寫(xiě)狀態(tài)機(jī)將為內(nèi)插式板卡內(nèi)部總線上的永久性存貯設(shè)備初始化一個(gè)讀周期。讀/寫(xiě)狀態(tài)機(jī)捕獲讀出的數(shù)據(jù)并將其臨時(shí)存貯在數(shù)據(jù)鎖存器設(shè)備90中,直到完成必要的信號(hào)交換后,才允許數(shù)據(jù)通過(guò)PCI數(shù)據(jù)總線向PCI系統(tǒng)處理器傳輸。如果PCI系統(tǒng)處理器向擴(kuò)充式ROM執(zhí)行寫(xiě)操作,讀/寫(xiě)狀態(tài)機(jī)從PCI數(shù)據(jù)總線上捕獲到寫(xiě)入的數(shù)據(jù),并為內(nèi)插式板卡內(nèi)部數(shù)據(jù)總線上的永久性存貯設(shè)備初始化一個(gè)寫(xiě)操作。當(dāng)擴(kuò)充式ROM讀/寫(xiě)狀態(tài)機(jī)與PCI從狀態(tài)機(jī)和組合邏輯之間完成必需的信號(hào)交換后,才允許數(shù)據(jù)傳輸?shù)絻?nèi)部總線上。
對(duì)于不包括內(nèi)插式板卡微處理器的應(yīng)用,我們可以可以用另外的方法,將強(qiáng)制PCI擴(kuò)充式ROM基地址寄存器中讀出的值為“0”。PCI總線接口芯片上的PCI ROM無(wú)效輸入端72將被被置為在“非活動(dòng)”低狀態(tài),以允許PCI ROM無(wú)效位控制從寄存器中讀出的數(shù)值。如果有微處理器,PCI ROM無(wú)效輸入可以置為“高”狀態(tài),保證從PCI擴(kuò)充式ROM基地址寄存器中讀出“零”值。PCI ROM無(wú)效輸入端狀態(tài)與PCI ROM無(wú)效比特位進(jìn)行邏輯或操作產(chǎn)生了最終ROM非活動(dòng)線71的信號(hào),該信號(hào)控制多路復(fù)用邏輯74。
圖8顯示了PCI系統(tǒng)處理器,內(nèi)插式板卡配置寄存器以及內(nèi)插式板卡微處理器之間交互作用的流程圖。為了能夠?qū)U(kuò)充式ROM的功能置為有效/無(wú)效狀態(tài),將PCI內(nèi)插式板卡配置寄存器標(biāo)記為92。PCI系統(tǒng)處理器所執(zhí)行的動(dòng)作位于圖8左方。內(nèi)插式板卡微處理器所執(zhí)行的動(dòng)作位于圖8右方。處理器和寄存器的共同動(dòng)作通過(guò)箭頭表示。標(biāo)記為“重試”的箭頭說(shuō)明PCI處理器被強(qiáng)制處于重試狀態(tài),不允許訪問(wèn)配置寄存器。這一進(jìn)程在PCI系統(tǒng)(塊94)加電時(shí)被啟動(dòng),接著流程進(jìn)入模塊96,在此PCI系統(tǒng)處理器嘗試訪問(wèn)PCI內(nèi)插式板卡的配置寄存器。這種嘗試被前面所述的PCI總線接口芯片的控制器所阻塞。該訪問(wèn)由“控制讀/寫(xiě)”線表示,阻塞作用由重試箭頭表示。流程進(jìn)入模塊98,PCI系統(tǒng)處理器獲準(zhǔn)訪問(wèn)PCI擴(kuò)充式ROM基地址寄存器,并寫(xiě)入全1。接著流程進(jìn)入模塊100 PCI系統(tǒng)處理器從擴(kuò)充式ROM基地址讀取信息。如果PCI系統(tǒng)處理器從擴(kuò)充式ROM基地址寄存器中讀的值全為“零”,流程將進(jìn)入分支102,系統(tǒng)處理器將認(rèn)為板卡上沒(méi)有擴(kuò)充式ROM,因此不必要進(jìn)行配置;反之,若讀出的值為非“零”,則流程將進(jìn)入分支104,PCI系統(tǒng)處理器將認(rèn)為存在一個(gè)擴(kuò)充式ROM,接著進(jìn)行配置工作,并將內(nèi)容傳入自己的存貯器中。
仍然討論圖8。當(dāng)PCI系統(tǒng)處理器被禁止訪問(wèn)配置寄存器時(shí),PCI內(nèi)插式板卡微處理器(塊106)將配置PCI ROM無(wú)效位,以使PCI擴(kuò)充式ROM的功能處于有效或無(wú)效狀態(tài)。當(dāng)內(nèi)插式板卡微處理器配置PCI訪問(wèn)許可位,允許PCI系統(tǒng)處理器訪問(wèn)配置寄存器時(shí),流程將進(jìn)入分支108。
現(xiàn)在描述本發(fā)明的操作過(guò)程。本發(fā)明提供了用于PCI計(jì)算機(jī)系統(tǒng)內(nèi)插式板卡的可編程配置寄存器。一般來(lái)講,在PCI系統(tǒng)軟件訪問(wèn)PCI只讀配置寄存器之前,微處理器(12B)將向上述寄存器加載能夠唯一標(biāo)識(shí)的數(shù)值。因此一個(gè)通用的PCI總線接口芯片可用于不同廠商生產(chǎn)的多種內(nèi)插式板卡,并且實(shí)現(xiàn)不同的功能。本發(fā)明還提供了一種將內(nèi)插式板卡上的擴(kuò)充式ROM置為有效或無(wú)效的機(jī)制。
需要特別指出的是,微處理器和永久性存貯設(shè)備通常是內(nèi)插式板卡上所固有的元件。微處理器和永久性存貯設(shè)備位于內(nèi)部?jī)?nèi)插式板卡總線12C上。該總線與PCI總線被PCI總線接口芯片分開(kāi)。當(dāng)PCI系統(tǒng)加電后,PCI--RST#線(見(jiàn)圖4)上的信號(hào)將PCI訪問(wèn)許可位30置零,同時(shí),PCI從狀態(tài)機(jī)與組合邏輯31(它是PCI總線接口芯片上的控制器)啟動(dòng)已選定的PCI控制信號(hào)線,使PCI處理器進(jìn)入前面所提到的“重試模式”,而不能訪問(wèn)PCI總線接口芯片上的寄存器。
在對(duì)PCI系統(tǒng)加電重置系統(tǒng)后,PCI處理器被禁止訪問(wèn)PCI接口芯片上的寄存器的同時(shí),微處理器12B將執(zhí)行相應(yīng)的代碼,從永久性存貯設(shè)備12D(見(jiàn)圖1),其地址可通過(guò)程序設(shè)定,中讀取為只讀PCI配置寄存器預(yù)置的數(shù)值。永久必性存貯設(shè)備可以是閃存、RAM或ROM等。微處理器接著向PCI配置寄存器中寫(xiě)入唯一的數(shù)值。如果需要將擴(kuò)充式ROM置為無(wú)效,此時(shí)還應(yīng)將PCI擴(kuò)充式ROM無(wú)效位置為“1”;反之保持為“0”。為了使PCI處理器能夠訪問(wèn)配置寄存器,微處理器重寫(xiě)PCI訪問(wèn)許可位22(見(jiàn)圖4)。寫(xiě)該位將在最終訪問(wèn)許可線32上生成最終訪問(wèn)信號(hào),并且由PCI從狀態(tài)機(jī)與組合邏輯設(shè)備31將以前活動(dòng)的PCI控制信號(hào)線置于非活動(dòng)狀態(tài)。從而允許PCI處理器訪問(wèn)配置寄存器。所有對(duì)該寄存器的訪問(wèn)都由PCI系統(tǒng)處理器14(見(jiàn)圖1)上運(yùn)行的PCI系統(tǒng)配置軟件14A所控制。
PCI總線接口芯片也適用于內(nèi)插式板卡上沒(méi)有微處理器或沒(méi)有永久性存貯設(shè)備的應(yīng)用環(huán)境。在只讀配置寄存器中不包含重要數(shù)據(jù)的情況下,PCI總線接口芯片也同樣適用。在以上兩種條件下,PCI訪問(wèn)許可位可以被PCI總線接口芯片的輸入管腳22(見(jiàn)圖3)屏蔽。如果該管腳輸入電位為非激活高位狀態(tài),PCI訪問(wèn)重載輸入管腳將不影響PCI訪問(wèn)許可位的功能,意即PCI系統(tǒng)處理器仍將重試訪問(wèn)配置寄存器直至PCI訪問(wèn)許可位被置為有效為止。如果該管腳輸入輸入電位為活動(dòng)低狀態(tài),PCI訪問(wèn)重載輸入管腳將屏蔽PCI訪問(wèn)許可位的功能,允許PCI總線直接訪問(wèn)配置寄存器而無(wú)需重試。在這種情況下,只能使用PCI只讀配置寄存器的加電缺省值,而不能在PCI配置寄存器中加載不同數(shù)值。
盡管本發(fā)明的最佳實(shí)施方式已公開(kāi)并加以詳述,任何具有普通技能的人都可能根據(jù)以下附加覆蓋本發(fā)明的實(shí)質(zhì)和范圍的權(quán)利要求書(shū)進(jìn)行其它修改。
權(quán)利要求
1.一個(gè)用于PCI計(jì)算機(jī)系統(tǒng)的內(nèi)插式板卡包括一個(gè)第一總線;一個(gè)連接到第一總線上的裝配組件設(shè)備,用以執(zhí)行預(yù)定功能以完成預(yù)期任務(wù);一個(gè)連接到第一總線的永久性存貯設(shè)備;所述永久性存貯設(shè)備包括一個(gè)擴(kuò)充式ROM,其中存儲(chǔ)著供不與第一總線相連的處理器執(zhí)行的代碼;一個(gè)連接到第一總線的板上的微處理器;一個(gè)連到第一總線和第二總線的PCI總線接口芯片,所述的PCI總線接口芯片包括至少一個(gè)控制寄存器,并且板卡上的微處理器至少可以訪問(wèn)該寄存器中的1位;一個(gè)PCI擴(kuò)充式ROM基地址寄存器,可由不與第一總線上相連接的處理器訪問(wèn);一個(gè)用于對(duì)某一位邏輯狀態(tài)做響應(yīng)的邏輯設(shè)備,允許PCI擴(kuò)充式基地址寄存器輸出預(yù)定的位模式。其中預(yù)定的位模式用于表明不與第一總線相連的處理器沒(méi)有擴(kuò)充式ROM。
2.權(quán)利要求1中的內(nèi)插式板卡,其中沒(méi)有連接到第一總線上的處理器是位于PCI計(jì)算機(jī)系統(tǒng)的一個(gè)PCI處理器。
3.權(quán)利要求1或2中的內(nèi)插式板卡,其中裝配組件設(shè)備執(zhí)行預(yù)定功能,實(shí)現(xiàn)連接所述PCI系統(tǒng)與局域網(wǎng)的通信控制器的任務(wù)。
4.權(quán)利要求3中的內(nèi)插式板卡,其中局域網(wǎng)包括以太網(wǎng)、令牌環(huán)網(wǎng)、FDDI網(wǎng)或ATM網(wǎng)。
5.權(quán)利要求1或2中的內(nèi)插式板卡,其中裝配組件設(shè)備執(zhí)行預(yù)定工作以實(shí)現(xiàn)設(shè)備控制器的預(yù)定任務(wù)。
6.權(quán)利要求5中的內(nèi)插式板卡,其中設(shè)備控制器可對(duì)顯示器、多媒體設(shè)備、盤(pán)、裝配組件或協(xié)處理器系統(tǒng)進(jìn)行控制。
7.權(quán)利要求1中的內(nèi)插式板卡,其中擴(kuò)充式ROM占據(jù)2K到16KB的永久性存貯設(shè)備。
8.權(quán)利要求1中的內(nèi)插式板卡,其中第二總線包括一個(gè)PCI總線。
9.權(quán)利要求1中的內(nèi)插式板卡,其中邏輯設(shè)備包括一個(gè)邏輯“或”電路。
10.權(quán)利要求8中的內(nèi)插式板卡,包括一個(gè)多路復(fù)用電路設(shè)備(MUX),它的一個(gè)輸入端連接到PCI擴(kuò)充式ROM基地址寄存器;一個(gè)提供預(yù)定位模式的設(shè)備,連接到PCI ROM基地址寄存器的另一個(gè)輸入端;及一個(gè)PCI地址/數(shù)據(jù),MUX/DEMUX設(shè)備,將所述多路復(fù)用電路設(shè)備的輸出端連接到PCI總線上。
11.權(quán)利要求10中的內(nèi)插式板卡,還包括一個(gè)擴(kuò)充式ROM解碼邏輯設(shè)備,連接到多路復(fù)用電路設(shè)備(MUX)和PCI地址/數(shù)據(jù),MUX/DEMUX設(shè)備的輸出端,所述的擴(kuò)充式ROM解碼邏輯設(shè)備監(jiān)控多路復(fù)用電路設(shè)備及PCI地址/數(shù)據(jù)MUX/DEMUX,如果所述多路復(fù)用電路設(shè)備的地址與所述PCI地址/數(shù)據(jù)MUX/DEMUX輸出的地址相匹配,就執(zhí)行對(duì)PCI擴(kuò)充式ROM的讀操作或?qū)懖僮鳌?br>
12.權(quán)利要求9中的內(nèi)插式板卡,其中預(yù)定的位模式均為邏輯“0”。
13.權(quán)利要求10中的內(nèi)插式板卡,還包括一根導(dǎo)線設(shè)備,用于連接內(nèi)插式板卡的一個(gè)管腳與“或”邏輯電路的一個(gè)輸入。
14.負(fù)責(zé)連接內(nèi)插式板卡與PCI計(jì)算機(jī)的PCI總線的接口子系統(tǒng),包括至少一個(gè)控制寄存器,如果需要將所述內(nèi)插式板卡上的擴(kuò)充式ROM置為無(wú)效狀態(tài)時(shí),該寄存器中至少有一個(gè)位被置為第一狀態(tài);一個(gè)寄存器設(shè)備,用于接收并存貯PCI計(jì)算機(jī)生成的第一預(yù)定位模式;一個(gè)用于生成第二預(yù)定位模式的設(shè)備;一個(gè)選擇電路設(shè)備,其功能是根據(jù)控制信號(hào)的狀態(tài)選擇第一預(yù)定位模式或第二預(yù)定位模式;及一個(gè)用于監(jiān)控所述至少一個(gè)位的邏輯電路設(shè)備,如果所述至少一位被置成第一預(yù)定狀態(tài),則將控制信號(hào)置成第一電氣狀態(tài),其中選擇電路設(shè)備將選擇第二預(yù)定位模式并將所述第二預(yù)定位模式發(fā)送給PCI計(jì)算機(jī),PCI計(jì)算機(jī)將檢驗(yàn)第二預(yù)定位模式,如果被設(shè)置為第一預(yù)定位模式,則說(shuō)明所述內(nèi)插式板卡上沒(méi)有擴(kuò)充式ROM。
15.權(quán)利要求14中的接口子系統(tǒng),其中第一預(yù)定狀態(tài)包括邏輯“1”。
16.權(quán)利要求15中的接口子系統(tǒng),其中預(yù)定值包括邏輯“0”。
17.權(quán)利要求14中的接口子系統(tǒng),還包括如果至少一個(gè)位被置成第二預(yù)定狀態(tài),則將控制信號(hào)置成第二電氣狀態(tài),其中選擇電路設(shè)備選定第一位模式并將所述第一位模式傳送給PCI計(jì)算機(jī),PCI計(jì)算機(jī)檢測(cè)第一位模式,如果被設(shè)成第二預(yù)定值,則說(shuō)明所述內(nèi)插式板卡上有擴(kuò)充式ROM。
18.權(quán)利要求17中的接口子系統(tǒng),其中第二預(yù)定值包括邏輯“1”。
全文摘要
用于外設(shè)元件內(nèi)部連接(PCI)計(jì)算機(jī)的適配卡或內(nèi)插式板卡包括一個(gè)通用模塊,將適配卡或板卡連接到PCI總線上。該通用模塊包括一組可選的可編程配置寄存器,它們的值由適配卡上微處理器負(fù)責(zé)加載。該模塊的一個(gè)電路結(jié)構(gòu)發(fā)出指令,禁止PCI處理器訪問(wèn)所述配置寄存器,直到所述加載工作全部完成。另外還有一個(gè)電路結(jié)構(gòu)用于指示擴(kuò)充式ROM基地址寄存器究竟是“讀/寫(xiě)”寄存器還是“只讀”寄存器。如果是“只讀”寄存器,各數(shù)據(jù)單元均被置成“0”。PCI計(jì)算機(jī)將據(jù)此推斷出內(nèi)插式板卡上沒(méi)有擴(kuò)充式內(nèi)存。如果是“讀/寫(xiě)”寄存器,且包含非“0”值,PCI計(jì)算機(jī)則認(rèn)為內(nèi)插式板卡上有擴(kuò)充式ROM,并將擴(kuò)充式ROM的內(nèi)容“映象”到PCI計(jì)算機(jī)的主存中。
文檔編號(hào)G06F13/14GK1185218SQ96194070
公開(kāi)日1998年6月17日 申請(qǐng)日期1996年5月3日 優(yōu)先權(quán)日1995年5月22日
發(fā)明者阿里埃爾·科恩, 威廉·加文·霍爾蘭德, 約瑟夫·弗蘭克林·勞甘, 阿維·帕拉什 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司