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