中文字幕无码日韩视频无码三区

加載在mca適配卡上的pci擴展卡的配置和ram/rom控制的制作方法

文檔序號:3548451閱讀:252來源:國知局
專利名稱:加載在mca適配卡上的pci擴展卡的配置和ram/rom控制的制作方法
此項發明主要是和個人計算機(PC機)的適配卡相關。更準確地講,此項發明與這樣一種方法和設備有關,它應用于微通道結構(Micro Channel Architecturc-MCA)適配卡上的外圍設備互連(PCI)擴展卡的配置和初始化;同時也應用于確保PC機起動時,把內存空間分配給PCI擴展卡。
從最初的基于Intel 8088微處理器的個人計算機,諸如IBMPC機及其他IBM兼容機,到今天的PC機,PC機經歷了一個不斷發展的過程。隨著PC機的普及,對更先進PC機技術特點,更強的能力和更高速度的需求推動微處理器的不斷發展。這些微處理器系列包括80286,80386,80486,以至最近推出的奔騰芯片(Pentium)。
為了滿足上述發展的要求,以及對PC機“用戶友好性”的追求,IBM推出了PS/2系列計算機。以往的IBM“系列1”PC機采用的是工業標準結構(ISA),而PS/2系列機則采用了微通道結構(MCA)。從ISA到MCA,一個主要改變在于,IBM引入了可編程選項選擇寄存器(POS寄存器)。POS寄存器的使用,使得不必通過設置跳線器來配置擴展板,也不需通過軟件設置這些配置DIP開關。配置參數存儲在每一擴展板CMOS存儲器的POS寄存器空間以及適配卡的描述文件(ADF)中,該文件與擴展板有關并保存在起動盤上。PCI操作系統在每次PC機起動時,自動把所保存的配置參數寫入擴展板,同時也保證這些配置數據的完整性。
PC機是通過使用設置周期來進行適配卡ID和適配卡配置參數在系統主機(或CPU)與適配卡間的傳輸進而完成參數配置。系統的參數配置過程類似于一般的數據傳輸過程,其主要差別在于需要由一個CDSETUP激活信號選擇適配卡,并且在數據總線上產生有效的POS寄存器地址;但是適配卡只對總線A(2-0)位進行譯碼,并且所有配置參數都是通過數據總線上D(0-7)的一個字節(8位)來傳輸的。
在系統設置時,每次只選擇一個擴展槽。這個操作是通過設置CDSETUP線來完成的,該線則是由系統邏輯驅動,它只單獨選擇PC機中可插入適配卡的8個擴展槽中的一個。每個擴展槽中都有專用的CDSETUP信號線,這些信號線分別為每一個槽提供一個獨立的CDSETUP信號。如果一個適配卡插在擴展槽上,那么當擇定的CDSETUP信號被激活時,適配卡上的POS寄存器就能被訪問,并將該適配卡的ID號和配置參數存入其中。
POS操作的關鍵在于適配卡的ID號,每一型號的具有MCA體系結構的適配卡都指定唯一的ID號,而且每一MCA適配卡都具有這樣的一個號。一旦一個適配卡已被選擇時,主機就會查詢其ID號,并將其與存貯在CMOS存儲器上的、賦給這個擴展槽的給定值相比較。如果這兩數據匹配,主機就查詢起動盤上ADF文件,這個ADF文件包含配置該適配卡的配置參數。如果從適配卡上獲得的ID號與存儲在CMOS上的ID號不一致,或者查找不到該適配卡的ADF文件,那么將導致錯誤產生并需要重新運行配置工具。否則,從ADF文件中讀出配置參數并初始化該適配卡上的POS寄存器。
MCA提供了8個編號為0-7的POS寄存器。對POS寄存器傳輸數據和一般的數據傳輸方式相似,差別在于當在地址總線上驅動一個有效的POS寄存器地址時,適配器僅對地址總線的A(2-0)位解碼來決定訪問8個POS寄存器中的哪一個。表1中列舉出了用于POS操作的地址空間排列表1地址功能XXX0h POS寄存器0-適配卡ID號低8位XXX1h POS寄存器1-適配卡ID號高8位XXX2h POS寄存器2-選項選擇數據字節1,位0設計為卡的使能位XXX3h POS寄存器3-選項選擇數據字節2XXX4h POS寄存器4-選項選擇數據字節3XXX5h POS寄存器5-選項選擇數據字節4,位7為通道較驗位位6為通道較驗狀態位XXX6h POS寄存器6-子地址擴展(低字節)XXX7h POS寄存器7-子地址擴展(高字節)除了8個POS寄存器之外,MCA還提供了存取多至128KB的另外POS寄存器空間的機制。這128KB POS寄存器空間通常被稱作擴展POS(XPOS)。XPOS寄存器的訪問是在系統設置過程中通過寫入兩字節的值到POS寄存器7(高字節)和寄存器6(低字節)來進行的,這個值作為XPOS寄存器索引,使得在所有設置周期中可以訪問寄存器3和4。例如如果在POS寄存器7和6中寫入的值為0001h,通過POS寄存器4就能訪問XPOS寄存器0001h。其他關于IBM的MCA結構的信息可以參考題為“Personal System/2 Model 80Technical Reference”一書(該書在1987由IBM公司出版)。
近來,一種替代MCA的技術被提出來了,即“外圍系統互連”(PCI)技術。總線已發展成為用于高度集成化的外圍控制系統和主機/存貯器系統間的一種物理互連機制。象MCA適配卡一樣,PCI設備必須進行初始化和配置,并且與MCA類似,設置和初始化都是由軟件通過獨立配置地址空間進行的。與MCA所不同的是,PCI含有256字節的配置參數空間,也可以說是具有256個配置存貯器,而不同于POS空間的8字節和XPOS空間的128KB。另外,PCI設備在參數配置過程中所使用的是IDSEL信號,類似于MCA的CD SETUP信號,在PCI總線的每一設備上都提供有IDSEL信號線。當IDSEL信號線被激活時,可使用總線AD(31-0)中高24位中的一位來選擇一特定設備。
被選中的PCI設備反饋給CPU一個DEVSEL#信號。通過總線的AD(7-2)線來尋址被選中的設備的256字節寄存器空間。其他的細節,如協議、PCI總線電氣和機制特征,已發表在“PCISpecification Revision 2.0-Review Draft 3/9/93”(PCI SpecialInterest Group發表)。
由于各種原因,比如適配卡的價格、大小等限制,適配卡可能不包含某些額外的功能,而在一定情況下,給這些卡增加原先在適配卡上不包括的額外功能是很理想的。典型的情況就是,這些額外功能僅僅是個別用戶個人要求。例如,一個基本顯示適配卡通常不包含實現JPEG(Joint Photographic Exports Group)或MPEG(Motion PcitureExperts Group)圖像壓縮算法所必需的電路和邏輯。這是因為很多用戶并不需要這種功能,也不愿為包括在他們的顯示適配卡的功能而花費;而另外一些用戶可能開始時不需要這些功能,而后來可能又需要這些功能,他們當然不樂意被強迫重新買一塊具有這種功能的卡。相反,用戶或許需要能可交換地使用這些算法。
以上這些問題的一個解決辦法就是增加一塊擴展卡來完成這些額外功能,例如實現JPEG和MPEG算法。這里我們把這種卡稱為“子卡”(daught card),它是以可拆卸方式與適配卡本身相連。用這種方法,用戶就可以只買一塊基本適配卡,而后再選擇有自己所需要的功能的子卡。
上述這種使用子卡的方法導致的一個問題是由于PCI總線將很快成為新的工業標準,理想的是所設計的插在適配卡上的子卡和組件與PCI一致。這樣它們就可以移至具有PCI局部總線的PC機主板上,而不需要對其中電路進行修改。然而目前大多數的PC機和大多數正在使用的適配卡都是MCA或ISA結構而與PCI不一致,因此就存在一個問題如何使用MCA信號、設置周期以及協議來初始化和配置加載在MCA適配卡上的PCI子卡。
使用子卡所引起的另一個問題是如何保證子卡上的RAM/ROM能夠被PC機上的其他設備訪問或尋址。在PC機配置過程中,主機的內存管理器將查詢每個插在擴展槽上的適配卡,以確定它們所需要的總的內存空間。內存管理器以每8KB一塊的方式給每個卡分配內存空間,但每塊卡占用總的內存空間不能超過16KB。然而,由于主機也就是內存管理器并未意識到子卡加載在這適配卡上,因而并不給子卡分配空間。結果,子卡上所有的RAM與/或ROM將是不可訪問的。
因此,需要的就是如何利用MCA配置周期和信號,配置PCI子卡,并保證在系統起動期間把內存空間分配給適配卡上的子卡。
上述難題的解決和產生的技術進行是由這樣一種方法和設備所實現的,這種方法和設備能夠利用MCA設置周期和信號,配置加載于MCA適配卡上的PCI子卡,并且能夠將內存空間分配給子卡。與常規的方法不同,我們設計成加載在MCA總線上的適配卡提供了一個“橋”,將適配卡上的PCI總線和PC機上MCA系統總線連接起來(子卡就裝在適配卡上),“橋”同時將MCA設置周期和信號轉換成適當的PCI配置信號,從而正確地配置子卡的PCI配置數據空間。更進一步,在DOS起動時,查詢適配卡時,這種“橋”對特定的ROM特征作出反應,使得PC機的內存管理器能夠分配一定的內存空間給子卡。
在一個較佳實施例中,此項發明包含一個與MCA結構一致的適配卡,它與PC機(如IBM PS/2等)的MCA系統總線相連。加載在這塊適配卡上的PCI子卡的功能就是給適配卡提供附加的功能。在適配器卡上的PCI/MCA橋是將PC機的MCA總線連接至適配卡的PCI總線,使之能在MCA總線設置過程中配置子卡,并對DOS起動過程中適當的ROM特征作出相應的反應,以保證必要時候將內存分配給子卡。
發明的一個方面是可以有選擇性地使用適配卡的第一組XPOS寄存器,以起動橋的操作,并能有選擇性地訪問和初始化子卡的PCI配置參數空間(或寄存器)和子卡上其他PCI式設備。
發明的另一方面利用第二組XPOS寄存器中的某些寄存器設定橋到RAM或ROM的數據流方式,在DOS起動過程中,查詢適配卡時,橋響應子卡上的適當的ROM特征;或橋處于通路方式,其中數據是直接通過橋進出PCI總線并將子卡上ROM特征初始化成相應值。第二組XPOS寄存器中其余寄存器選擇性地開始并保存子卡上任何所需RAM與/或ROM窗口的大小、位置,從而當譯碼地址在RAM與/或ROM窗口之一時,就能夠對子板啟動PCI操作。
這項發明的一個技術優點在于它使得PCI式設備(如子卡)能利用MCA設置周期和信號來進行配置。
這項發明的另一個技術優點在于它提供給適配卡一個PCI/MCA內置接口,它實施在“橋”內,這就能夠把適配卡直接加載到PC底板的PCI局域總線上,而不需對其進行大的修改。
本發明更進一步的技術優點在于保證內存空間能被分配給子卡,這樣子卡上的RAM與/或ROM就能被訪問。


圖1是實施本發明特點的適配卡的簡要框圖;圖2是圖1適配卡中橋的詳細框圖;圖3是本發明方法的流程圖。該方法利用MCA信號和設置周期完成對加載在圖1中適配卡上的子卡的配置;圖4是圖2中橋的一部分的詳細框圖,它描述了本發明內存空間分配保護的實現;圖5是本發明方法的流程圖,這種方法實現了將內存空間分配給PCI擴展卡,并且保證不被覆蓋。
參看圖1,數字8表示一個PC機系統,通常指的是IBM PC或IBM兼容PC,它包含一個主機部分10,主機連接到系統總線12上。在較佳實施例中,系統總線12包含IBM微通道結構(MCA)標準總線;然而,系統總線12也可以包含任意數目其它類型的總線,例如工業標準總線結構(ISA)或AT總線。具體而言,雖然我們在圖上沒有標明,主機10應至少包含有一個中央處理單元(CPU)、內存、內存管理電路、I/O設備、以及其他完整與操作PC系統8所必需的組件和邏輯。
適配卡14的基本部分是適配卡電路16,適配卡14通過PC機8的8個擴展槽(未示出)之一和系統總線12相連。除了實現適配卡14的指定功能所必需的硬件和邏輯之外,適配卡電路16中還包含一個橋17,這個橋和系統總線12相連。適配卡電路16盡管還包含了許多硬件和邏輯部件,但最好把它實現成一個集成芯片(IC)。
正如下面會更為詳細地描述那樣,橋17的作用是在MCA總線(如系統總線12)和PCI(外圍系統接口)總線18間提供一個接口。PCI擴展卡或稱子卡20連至PCI總線。橋17的相關功能是還提供了適配卡電路16與PC機主板上PCI局部總線間的一個接口,以使適配電路16可以直接連入PCI板上的局部PCI總線,而不需要對線路16自身修改,橋17的這個功能這里不進一步詳述。最后,橋17還提供了系統總線12和其他幾個包括在卡14上的MCA設備間的連接接口,這些設備包括一個NVRAM 22,一個VRAM 24以及其他設備26,這些設備通過MCA總線28和橋相連。
子卡20包含了以增強適配卡14功能的電路和邏輯。例如,如果適配卡14是顯示卡,并且電路16包含了必要的顯示子系統的組件,那么在某些情況下,用戶可能要求實現諸如Joint PhotographicExports Group(JPEG)或Motion Picture Experts Group(MPEG)這樣的圖像壓縮算法以有選擇地增加卡14的功能。由于結構、代價以及卡14的其他內在限制,可能很難直接在卡上14實現這些功能,即使實現了也不盡人意。另外,用戶也可能期望使用時有靈活性,在某些時候選擇使用MPEG算法,而另一些時候,使用JPEG算法。因此,完成特定圖像壓縮算法的電路和邏輯就需要實現在一個擴展卡上,如子卡20,這個卡應該是可拆卸式地連接到卡14上。
在一個較佳的實施例中,子卡20與PCI一致,即,它是為加載在PCI總線而不是MCA總線上而設計的,盡管適配卡14是為加載在MCA總線上(如系統總線12)而設計成與MCA設備一致。因此,考慮到必須利用MCA信號和設置周期來初始化配置然后驅動子卡,就存在一個問題。
另一相關的問題是在于保證主機10中實現的內存管理器(未示出)將內存空間分配給子卡20,以便使其RAM與/或ROM能被訪問。因為主機10只是把適配卡14看成單一的卡,而不是將其看成包括適配卡14和子卡20的兩個分離的卡,除非子卡20以某種方式使內存管理器知道其存在,否則內存空間將只分配給適配卡14。目前的這項發明正是針對這兩個問題。
圖2是圖1中橋17的詳細框圖。橋17包含了一個PCI接口200,將PCI總線18和來自系統總線12的MCA信號相連,這一部分我們在以后再詳述。橋17還包含了一個POS地址譯碼器201,它用來接收系統總線12中的低三位地址線(A(2-0))上的三位地址數據和系統總線12中CDSETUP線204的CDSETUP信號,三根地址線合起來用線202表示。眾所周知,在線204上的CDESTUP信號是由在主機10內的系統邏輯驅動,它用于選擇插有適配卡14的擴展槽(未示出)。當CDSETUP信號線被激活時,適配卡14被選中,隨后可以訪問8個8位可編程選項選擇(POS)寄存器0-7,我們把8個POS寄存器合起來記為205。
正如大家所熟知的那樣,在一塊卡的設置或配置過程中,通過驅動A(2-0)線上的POS寄存器的3位地址就可對一個POS寄存器205進行讀寫。這些地址通過譯碼器201來譯碼,譯碼器201通過線206向POS寄存器提供一個信號以選擇用線A(2-0)來尋址的POS寄存器。然后從存貯在主機10上的適配卡14的適配卡描述文件(ADF)中讀出配置參數,并通過系統總線12的數據總線D(7-0)寫入POS寄存器,數據線D(7-0)合起來被記為線206。
正如我們描述那樣,POS寄存器4,6和7可以被用來訪問擴展POS(XPOS)寄存器空間207。XPOS寄存器10h-13h被一起用作“PCI設備配置寄存器”,這正是目前此項發明的一個重要特點。這些XPOS寄存器的組成和功能稍后將詳細討論。另外,XPOS寄存器14h-1Ah被一起用作“PCI內存訪問控制寄存器”,下面參照圖14也會詳述其組成和功能。
我們知道,對XPOS寄存器空間207中寄存器的訪問是通過給POS寄存器7、6分別寫入16位值的高位字節(MSB)和低位字節(LSB)來進行的,這個值用作XPOS寄存器在XPOS寄存器空間207中的索引地址,然后,在地址線A(2-0)驅動100b值選擇POS寄存器4。作為對選擇POS寄存器4的響應,一個POS4 SELECT信號通過線211傳送到XPOS譯碼器210,它導致譯碼器210對存貯在POS寄存器7、6中的16位值進行譯碼,然后,譯碼器210通過激活XPOS寄存器選擇線212選擇被索引的X POS寄存器。同樣,對XPOS寄存器10h-1Ah的訪問,也需要由POS寄存器7、6進行索引,然后訪問POS寄存器4,這樣就能經過線208對索引的XPOS寄存器進行配置數據的讀寫。在這種方法中,POS寄存器4起到對由POS寄存器7、6來尋址的XPOS寄存器的“窗口”作用。
為了后面詳細描述的目的,橋17實際上包含了一個PCI總線控制器214、一個譯碼器216和緩存器218。PCI總線控制器214連接到PCI接口200,通過線215提供控制信號。譯碼器216接收存貯在XPOS寄存器11h的值。緩存218的高3個字節接收譯碼器216的輸出,而它的低有效字節接收存貯在XPOS寄存器12h的值。
現在,我們詳細描述一下PCI設備配置寄存器,即XPOS寄存10h-13h的組成和功能。XPOS寄存器10h是作為橋的使能寄存器,它根據子卡(如卡20)是否被使用,適配卡電路16是在適配卡14上還是在PC機(未示出)主板的局部PCI總線上等來控制橋17的功能。根據子卡(如子卡20)是否在被使用,給橋使能寄存器位0(使能位)置0(允許)或置1(禁止)橋17的操作。位0的狀態當然也取決于適配卡電路16是否直接和有PCI總線的主板相連。如果適配卡電路16直接和有PCI總線的主板相連,這時橋17就能為適配卡電路16提供一個PCI以與PC主板上局部PCI總線相連。
橋使能寄存器的位1(位置位)是個只讀位,它指示適配卡電路16是加載在PC主板的局部PCI總線上(位1=0)還是在適配卡14上(位1=1)。位1也決定了橋使能寄存器所有其他位的有效性,因此,當這個位置位的值為0時,橋使能寄存器其他位就不必考慮,因為這時子卡20是和PC機主板上局部PCI總線(未示出)相連。否則,剩余位就需依照子卡20來設置以控制橋17的功能。位置位的狀態(0或1)是由主機10上配置參數寄存器的一位決定的,它指示子卡20是在適配卡14上還是在主板上。
橋使能寄存器位2(譯碼位)指示PCI接口200支持的地址譯碼是負譯碼(位2=0)還是正/負(位2=1)譯碼。正譯碼比較快,這是因為PCI總線18上的PCI設備(如子卡200)在給定的地址范圍內尋址。而負地址譯碼僅由總線18上一個設備來實現,通常這個設備是子卡20,在負譯碼情況下,子卡20除了不接受其他譯碼器的正譯碼地址外,它掃受所有的訪問。由于一個設備(如子卡20)在每次訪問時,必須給總線上所有其他設備以“第一拒絕權”,所以負譯碼比較慢。
當譯碼位置成1時,子卡支持負譯碼。它允許PCI總線18上其他設備(未示出)在其作出反應之前對DEVSEL#信號作出反應。如果在3個PCI時鐘周期內,沒有其他設備認定DEVSEL#線,那么基于這樣一個假定即有一個PCI總線主控設備正試圖與系統總線12進行數據傳輸,在第四時鐘周期將激活DEVSEL#線。如果是適配卡電路16被選擇,那么就使用正譯碼。在這種情況下,在適配卡電路16對落在其給定地址范圍內的地址譯碼后的3個PCI時鐘周期內該適配卡電路16確認DEVSEL#信號。如果譯碼位置為0或位置位置為1,那么只可采用正譯碼。對于橋使能寄存器其他3-7位,其中3-6位保留作為目前與此項發明無關的其他用途,位7則未被使用。
XPOS寄存器是11h作為一個PCI設備ID寄存器,它用于指示在一個配置周期中是子卡20上的哪一個PCI設備被選擇。因為MCA總線的CDSETUP信號作為IDSEL信號僅能被傳遞到PCI接口200上的單一設備,所以設備ID寄存器的內容用作索引所選擇的設備。當存貯在PCI設備ID寄存器中的位4-0線的5位值被譯碼器216所譯碼時,將驅動PCI總線AD(31-8)線中的某一條為高電位。PCI總線AD(31-8)線的每一條都與子卡20上單一PCI設備相連。因此這個高電位激活的線和CDSETUP/IDSEL信號一起用于選擇所需要配置的PCI設備。例如,如果PCI設備ID寄存器位4-0值為01100b,那么,AD(20)線將被驅動為高并且與此相連的設備將被選中。
XPOS寄存器12h是用作PCI配置參數地址寄存器,這個寄存器和PCI設備ID寄存器一起,用于在配置周期中訪問所選中設備(PCI設備由ID號寄存器指定)的PCI配置參數的一個字節。
PCI配置參數地址寄存器的位7-0用于索引配置周期中所選擇設備的配置參數256字節中的一個字節,以下表2中列出了PCI配置參數空間的映射字節說明 訪問類型0-1銷售號 只讀2-3設備號 只讀4-5命令讀/寫6-7狀態讀/寫8 修訂版ID只讀9-Bh 分類編碼只讀Ch 高速緩存的通道寬 讀/寫Dh 延遲計時器 讀/寫Eh 頭類型 只讀Fh 內部自檢讀/寫10h-27h 基地址寄存器讀/寫28h-2Fh 保留-30h-33h 擴展ROM基地址 讀/寫34-37h保留-38-3Bh保留-3Ch 中斷線 只讀3Dh 中斷針 只讀3Eh Min-GNT 只讀3Fh Max-LAT 只讀40-FF 設備專用 -XPOS寄存器13h是作為“PCI配置參數”寄存器。當XPOS譯碼器210譯碼對XPOS寄存器13h進行訪問時,一個PCI配置參數選擇信號就通過線220傳給PCI控制器214。總線控制器214在收到線220的信號后,傳送控制信號給PCI接口200,用于將系統總線12的數據送至PCI總線18。用這種方法,通過XPOS寄存器13h,數據就能寫入所選PCI設備(由PCI設備ID寄存器指定)的所選PCI參數字節地址(由PCI配置參數地址寄存器指定)。
圖3是本發明的配置PCI子卡20的方法的流程圖。在步驟300中,00h寫入POS寄存器7,10h寫入POS寄存器6。寫入和讀出POS寄存器的方法在本技術中已眾所周知,不再進一步描述。在步驟302中,二進制0寫入POS寄存器4的位2和位0中。步驟300和步驟302是設置橋使能寄存器的使能位和譯碼位,以使能橋17操作和負譯碼。正如上面已經指出的,位置位則是由系統邏輯來設置。在步驟304中,11h寫入POS寄存器6中。在步驟306中,一個標志在配置操作期間要選的子卡20上PCI設備的五位編碼值被寫入POS寄存器4。步驟304和306目的就是給PCI設備ID寄存器寫入一個五位編碼值。參看圖2,寫入POS設備ID寄存器中的5位值被輸送到譯碼器216并被譯碼,同時高電位驅動將譯碼器216的24位輸出線O(23-0)中某一線驅動為高電位。線O(23-0)的24個輸出位被各自存入緩存218中的31-8位。正如下面所述,緩存218中位31至位8所存的值被PCI接口200利用來激活PCI AD(31-8)線中的一條,這個激活線和CDSETUP/IDSEL線組合在一起以選擇需配置的PCI總線18上的PCI設備。舉例來講,如果5位編碼值為01011b,那么譯碼器216的輸出線O(19)將被激活,而和AD(19)相連的PCI設備將被選用用于配置。因為來自系統總線12的CDSETUP信號只能傳送到PCI接口200上的一個設備,因此,采用這種方法就使得在初始化卡的過程中可有多種選擇。
在步驟308中12h被寫入POS寄存器6中。在步驟310中,一個對應于256字節配置參數地址空間的介于00h與FFh之間的一個值被寫入POS寄存器4。步驟308和310就是為了給PCI配置參數地址寄存器寫入將訪問的PCI配置參數地址。配置參數地址寄存器的位7-0被分別寫入緩存218的位7-0。PCI接口200使用位7-0以分別驅動PCI AD(7-0)線,從而在PCI配置操作過程中尋址一個PC配置參數字節(參看圖2)。
在步驟312中,13h被寫入POS寄存器6中。在步驟314中,通過POS寄存器可讀寫PCI設備的配置參數字節,這些PCI設備是在304、306步驟中選定,而配置參數字節則在308、310步驟中指定。在步驟316中,決定是否繼續讀寫304、306步驟中所選定設備的PCI參數字節。如果繼續讀寫,那么返回步驟308繼續執行,而重復執行步驟308至314以選擇并讀寫同一PCI設備的PCI配置參數的別的字節。如果步驟316判斷沒有其他的配置參數要訪問和初始化,則執行步驟318,步驟318判斷在總線18上的別的PCI設備是否需進行PCI操作。如果是,那么返回執行步驟304,步驟304至314將重復執行以選擇另一PCI設備并初始化其配置存儲器空間。否則,在步驟320終止執行。
圖4顯示了圖1中橋17的一部分。這一部分用于保證PC 8的內存管理器(未示出)把內存空間分配給子卡20,并且在以后的過程中不會被覆蓋。如圖4所示,PCI內存訪問控制寄存器即XPOS寄存器14h一1Ah通過線300和PCI總線控制器214相連。下面將要描述到,PCI總線控制器完成一定的譯碼和比較操作,并給PCI接口200提供控制信號用以控制其操作。以下詳述PCI內存訪問控制寄存器的組成和功能。
XPOS寄存器14h是作為橋RAM窗口(aperture)大小寄存器,它用于設定系統總線12對子卡20的存貯器進行訪問的限制。根據在適配卡14是否有子卡20,以及如果有子卡20,子卡20上是否包含RAM,位0的狀態決定是禁止(位0=0)還是允許(位0=1)訪問RAM窗口(apertue)。當RAM窗口被允許訪問(位0=1),位4-1則按二進制形式存貯一個十進制值X,這個值顯示卡20上有多少存貯空間是可用的,以千字節為單位,總的可用存貯空間為2(X+2)千字節。例如,如果位4-1值為1010b(X=10),那么可用存貯空間總量為2(10+2)KB,即4096KB。
XPOS寄存器15h、16h、17h作為橋RAM窗口地址寄存器,這個寄存器含有一個基于一個8KB的邊界的子卡20存貯器的起始地址構成的一個24位地址。在MCA內存譯碼周期中,PCI總線控制器214使用存貯在橋RAM窗口大小寄存器和橋RAM窗口地址寄存器的值來判斷是否子卡20上的板上RAM正在被訪問。存貯在XPOS寄存器15h中的值是橋RAM窗口地址寄存器的高位字節(MSB),而存于XPOS寄存器17中的值則是橋RAM窗口地址的低位字節(LSB)。由于子卡RAM窗口的起始位置是在8KB邊界上,所以橋RAM窗口地址寄存器的位4-0,即XPOS寄存器17h中的位4-0不予考慮,因為這些位的狀態不參加比較。
XPOS寄存器18h是作為橋ROM窗口地址寄存器,這個寄存器用于指示子卡20上任意ROM空間的位置。子卡上只允許有2KB的ROM空間,存貯在寄存器18h上的位7-1的編碼值指示了這2KB空間的位置。根據子卡上是否有ROM,位0則用于允許訪問(位0=0)或禁止訪問(位0=1)ROM窗口。以下是存貯在橋ROM窗口地址寄存器的編碼值,如表3編碼值 ROM窗口00h000C0000h-000C07FFh01h000C0800h-000C0FFFh02h000C1000h-000C17FFh· ·· ·· ·3Dh000DE800h-000DEFFFh3Eh000DF000h-000DF7FFh
3Fh 000DF800h-000DFFFFh存入橋RAM窗口大小寄存器中的值由PCI總線控制器214譯碼,并和存貯在橋RAM窗口地址寄存器(XPOS寄存器15h-17h)的值一起用于控制子卡20的MCA從屬操作選擇。例如,如果橋RAM窗口允許被操作(即橋RAM窗口大小寄存器位0=1),那么在系統總線12上的高19位地址將被橋17的PCI總線控制器214譯碼。如果譯碼地址始于或超過存在橋RAM窗口地址寄存器中的值,而又不超過橋RAM窗口大小寄存器值所限定的范圍,那么PCI控制器214將通過總線18開始對子卡20的PCI操作。
同樣,如果橋ROM窗口被允許訪問(橋ROM地址寄存器位0=1),而被PCI總線控制器214譯碼出的地址又在橋ROM地址寄存器所指示的范圍內,那么,PCI總線控制器214就通過橋18開始對子卡20的PCI操作。
考慮到以上所討論的問題,這里我們列舉出幾條一般的準則。首先,子卡20上至少必須包含一個字節的數據,這個字節包含在PCI配置參數空間中用來指明板上RAM空間大小。另外,子卡20必須能夠操作空間小于板上RAM的窗口。另外,如果子卡20有多于2KB的板上ROM空間,那么它必須能夠在2KB窗口的范圍內進行操作。應該知道,考慮RAM和ROM窗口,子卡20處理上述要求的方法是和設備相關的,并不構成本發明的一部分。
另外,如果子卡20有板上ROM,那么子卡必須在RAM和ROM窗口地址空間重疊時,也能操作。例如,如果子卡20的RAM窗口是8KB(C0000h-D0000h)的區域,那么,RAM塊和ROM窗口有相同的開始地址。因此,子卡20必須提供在RAM和ROM間切換的方法,以便共享該窗口。另外,子卡20必須有能力禁止第一個2KBRAM窗口,在這種情況下,子卡必須能夠檢測到RAM是6KB而不是8KB,并且能夠操作這個6KB的RAM窗口。再者,這里所使用的方法也是設備相關,并未構成本發明的一部分。
我們知道,在DOS起動的查詢過程中在C0000h至D0000h地址空間分配RAM與/或ROM窗口的設備(如子卡20),必須響應正確的ROM特征,使得主機10的內存管理器不至于對分配給子卡20的窗口再次進行分配。因此,在DOS起動時,窗口00h偏移處必須包含值55h,01h偏移處必須包含值AAh,而塊02偏移處要根據窗口大小2KB或8KB包含04h或10h值。根據包括在內存管理器控制寄存器(即XPOS寄存器19h)和內存管理器數據寄存器(即XPOS寄存器1Ah)中的數據,由橋對這些偏移值作出響應,適配卡14對這些要求處理。
內存管理器控制寄存器的位1-0是用于設置橋17的數據流方式。位7-2未使用。當橋17被置成通路方式(位1-0=00b)時,來自系統總線12的地址通過橋17直接送到PCI接口200并到達PCI總線18。當數據流方式置成RAM方式(位1-0=01b)或ROM方式(位1-0=10b)時,橋17必須給出ROM特征數據(即偏移量00h,01h和02h)。偏移量00h和01h分別被編碼成55h和AAh。偏移量02的數據則由內存管理器數據寄存器提供,根據分配給子卡20的窗口大小是2KB還是8KB,分別為04h或10h。
圖5是設置適當寄存器以保證把內存空間分配給子卡20,并不致在后繼過程中被覆蓋的方法的框圖。在步驟500中,00h被寫入POS寄存器7,14h寫入POS寄存器6。在步驟502中,POS寄存器4的位0寫入2進制值1,POS寄存器的位1-4則寫入與十進制值X相對應的4位二進制值。步驟500和502合起來完成寫數據到橋RAM窗口大小寄存器,以允許對橋RAM窗口的訪問,并確定子卡20上可用地址空間,如上所述。
在步驟504中,15h寫入POS寄存器6。在步驟506中,一個包含橋RAM窗口地址寄存器的高位有效字節MSB的8位值寫入POS寄存器4。在步驟508中,16h被寫入POS寄存器6。在步驟510中,一個包含橋RAM窗地址寄存器的第二個高位有效字節MSB的8位值被寫入POS寄存器4。在步驟512中,17h寫入POS寄存器6。在步驟514中,一個表示橋RAM窗口地址寄存器的低有效位的3位值寫入POS寄存器4的7-5位。步驟504至514基于8KB邊界一起完成將子卡20 RAM窗口的起始地址寫入包括XPOS寄存器15h至17h的24位橋RAM窗口地址寄存器。
我們應該注意到,XPOS寄存器17h的位4-0和橋RAM窗口地址寄存器的位4-0都不被關注。其原因在上文已經討論過,即在MCA內存譯碼周期中,PCI總線控制器214利用橋RAM窗口大小寄存器的5位值來判定子卡上可用RAM空間。另外,MCA地址的高19位被傳送到PCI控制器214并與橋RAM窗口地址相比較,以確定子卡20的RAM是否已經被訪問。其中,橋RAM窗口起始地址存在橋RAM窗口地址寄存器的位24-5,該地址也被傳送到控制器214。如果比較結果表明子卡20上的RAM已經被訪問,那么PCI總線控制器214將通過PCI接口200把MCA地址傳給PCI總線18。
在步驟516中,18h被寫入POS寄存器6。在步驟518中,1被寫入POS寄存器4的位0,而代表2KB橋ROM窗口在地址空間中位置的6位值被寫入POS寄存器4的6-1位。步驟516和518一起完成對橋窗口大小寄存器(即XPOS寄存器18h)的位0置1來允許對該窗口訪問,并將橋窗口地址寄存器的位6-1的子卡20 ROM窗口的位置設置成一個代表2KB橋窗口在地址空間中的位置值。
在步驟520中,19h被寫入POS寄存器6。在步驟522中,一個兩位值寫入POS寄存器4中的位1-0中。步驟520和522一起完成初值化內內存管理器控制寄存器以設置橋17的數據流方式,上面已有描述。在步驟524中,1Ah是寫入POS寄存器6。在步驟526中,分別對應2KB或8KB窗口04h或10h被寫入POS寄存器4。步驟524和526一起完成初始化內存管理器數據寄存器,以便用作ROM特征的偏移量02h。執行在步驟528終止。
很清楚,本發明可以采用多種形式和具體實施。這里所采用的實施例僅僅用于說明問題,而不是限制本發明,可以認識到,不偏離本發明的思想和范圍,對其進行多種改變。例如有多個PCI子卡加載在適配卡14的PCI總線18上,而且這些子卡都能被橋17中PCI總線控制器214的控制信號所控制。另外,也可以把不同元件組成單一的集成芯片,或根據標準按多種形式互連各離散的數字或模擬元件。
雖然這里給出了此項發明的一個說明性實施例,但是以后將會有很大的修改、變化和替換,并且在某些情況下,此項發明的某些特點將被單獨使用,而不需考慮相應的其他特點。因此,附上一份廣泛意義的權利要求書,它與本發明的范圍相一致。
權利要求
1.一種配置以及將系統內存空間分配給至少一塊子卡的方法,該子卡加載在一適配卡的第一類總線上,所述適配卡通過第二類總線和計算機主機部分相連,所述適配卡中包含一個將所述第一類總線連接到第二類總線的橋,其特征在于在所述適配卡的第一個寄存器中存貯一個設備的標志值,該設備加載在所述至少一個子卡上;在所述適配卡第二個寄存器中存貯一個值,該值用于訪問所述已被標識的設備的配置參數的一字節;將要寫入所述被標識的設備的所述被尋址的配置參數字節的配置參數寫入所述適配卡的第三個寄存器中;響應包含有RAM的所述至少一塊子卡選擇性地使能一個RAM窗口,以尋址所述RAM;響應包含有ROM所述至少一塊子卡,選擇性地使能ROM塊,以尋址所述ROM;在所述適配卡的第四個寄存器中存入所述RAM窗口大小值;在所述適配卡的第五個寄存器中存入所述RAM窗口的起始地址值;在所述適配卡的第六個寄存器中存入所述ROM窗口的位置值;以上每一所述適配卡寄存器都是和所述橋電氣耦合的。
2.根據權利要求1的方法,其特征在于包括使能所述橋使之執行將所述第一類總線連接至所述第二類總線所必需的操作。
3.根據權利要求1的方法,其特征在于所述第一類總線包含一個外圍設備接口(PCI)總線,所述第二類總線包含一個微通道結構(MCA)總線。
4.根據權利要求1的方法,其特征在于每一所述適配卡寄存器包括所述適配卡的擴展可編程選項選擇(XPOS)寄存器。
5.根據權利要求2的方法,其特征在于,所述使能所述橋進一步包括設置所述適配卡的第七個寄存器的第一位。
6.根據權利要求1的方法,其中所述第一總線包含了32條地址線,所述32條地址線包含24條高位地址線和8根低位地址線,其中所述標識的設備是和24條高位地址線中的一根相連,其特征在于包括使用一個譯碼器譯出所述存貯在所述第一個寄存器中的值;所述譯碼出的值是輸出到第一類地址線的24條高位地址線上,所述譯碼值激活所述24根高位地址線中的一根;以及輸出所述存貯在所述第二個寄存器中的值到所述第一類總線的8根所述低位地址線上。
7.根據權利要求1的方法,其特征在于包含所述橋將所述MCA總線的一根CDSETUP線與所述PCI總線的一根IDSEL線相連。
8.根據權利要求1的方法,其特征在于所述第一類總線至少由8根數據線組成,所述寫配置參數進一步包括輸出所述配置參數至所述至少8根數據線上。
9.根據權利要求1的方法,其特征在于所述選擇性地使能RAM窗口包含至少要設置所述第一個寄存器中的一位。
10.根據權利要求1的方法,其特征在于包括所述選擇性地使能ROM窗口包含至少要設置第三個寄存器中的一位。
11.根據權利要求1的方法,其特征在于包括設置所述橋的數據流模式;在所述適配卡的第八個寄存器中存貯一個值,該值被用于所述至少一個子卡上ROM特征的偏移量02h;其中所述第四個寄存器與所述橋電氣耦合。
12.根據權利要求11的方法有,其特征在于包括所述ROM特征的偏移量00h的硬件編碼(hardwire)為55h;以及所述ROM特征的偏移量01h的硬件編碼為AAh。
13.根據權利要求11的方法,其特征在于包括響應所述橋的數據流模式改置成第一種模式,所述橋通過所述第一類總線把從所述第二類總線上接收到的地址傳到所述子卡;以及響應所述橋的數據流模式設置成第二種模式,所述橋在所述計算機DOS啟動過程中,傳送所述ROM特征至所述主機部分。
14.根據權利要求11的方法,其特征在于所述設置所述橋數據流模式包括對所述適配卡上第九個寄存器的至少一位進行設置,其中所述第九個寄存器是和所述橋電氣相連的,并且所述第九個寄存器包括所述適配卡的一個擴展可編程選項選擇(XPOS)寄存器。
15.一種確保把系統內存空間分配給加載在適配卡的第一類總線上的至少一個子卡的方法,所述適配卡通過第二類總線和計算機的主機相連以及包括將第一類總線連至第二類總線的橋,其特征在于響應包含RAM的所述至少一個子卡,選擇性地使能一個RAM窗口以尋址所述RAM;響應包含ROM的所述至少一塊子卡,選擇性地使能一個ROM窗口以訪問所述ROM;在所述適配卡的第一個寄存器中存入所述RAM窗口的大小;在所述適配卡的第二個寄存器中存入所述RAM窗口的起始地址;在所述適配卡的第三個寄存器中存入所述ROM窗口的位置;其中,第一、第二、第三寄存器都是和所述橋電氣相連的。
16.根據權利要求15的方法,其特征在于所述第一類總線是一個外圍設備接口(PCI)總線,所述第二類總線是一個微通道結構(MCA)總線。
17.根據權利要求15的方法,其特征在于設置所述橋的數據流模式;存貯一個值到所述適配卡上的第四個寄存器中,該值是作為所述至少一個子卡的ROM特征的偏移量02h的值,其中所述第四個寄存器是和所述橋電氣相連。
18.根據權利要求17的方法,其特征在于所述ROM特征的偏移量00h的硬件編碼值為55h;所述ROM特征的偏移量01h的硬件編碼值為AAh。
19.根據權利要求17的方法,其特征在于對第四個寄存器的所述寫數據進一步包括響應具有8KB內存窗口的所述至少一塊子卡,將10h存入所述第四個寄存器;響應所述子卡不含有8KB的存貯器空間而含有2KB的存貯器空間,那么將04h寫入所述第四個寄存器。
20.根據權利要求17的方法,其特征在于所述第一個、第二個、第三個寄存器包括所述適配卡的擴展可編程選項選擇(XPOS)寄存器。
21.根據權利要求17的方法,其特征在于包括響應所述橋設置為第一種模式的數據流模式,所述橋通過第一類總線將從所述第二類總線上接收的地址傳到所述子卡上;以及響應所述橋的數據流模式設置為第二種模式,所述橋將在所述計算機的DOS起動過程中提供所述ROM特征給主機。
22.根據權利要求15的方法,其特征在于所述有選擇地使能所述RAM窗口包括至少設置所述第一個寄存器的1位。
23.根據權利要求15的方法,其特征在于所述有選擇地使能所述ROM窗口包括至少設置所述第三寄存器的一位。
24.根據權利要求17的方法,其特征在于所述設置所述橋數據流模式包括至少設置所述適配卡上第五個寄存器的一位,其中所述第五個寄存器和所述橋電氣相連并由所述適配卡的一個擴展可編程選項選擇(XPOS)寄存器組成。
25.一種配置加載在適配卡外圍設備接口(PCI)總線上的子卡的方法,該適配卡通過微通道結構(MCA)總線和計算機的主機部分相連,并且該子卡包括了一個將所述PCI總線與所述MCA總線相連的接口,其特征在于在所述適配卡上第一個寄存器中存貯一個值,該值標識加載在所述至少一個子卡上的多個與PCI一致的設備中的一個;在所述適配卡上第二個寄存器中存貯一個值,該值用于尋址所述標識的一個所述與PCI一致的設備的一個字節配置參數;將要寫入所述所標識的一個所述與PCI一致的設備的所述被尋址的配置參數字節的配置數據,寫入所述適配卡的第三個寄存器。
26.根據權利要求25的方法,其特征在于包括使能橋以進行建立所述第一類總線和所述第二類總線間連接所必需的操作。
27.根據權利要求25方法,其特征在于所述有選擇地使能所述橋進一步包括設置所述適配卡上第四個寄存器的第一位。
28.根據權利要求25的方法,其中所述第一總線由32位地址線構成,所述32位地址線由24個高位地址線和8個低位地址線構成,其中所述所標識的所述多個與PCI一致的設備中的一個設備是和所述24條高位地址線中的一條相連,其特征在于使用一個譯碼器對存貯在所述第一個寄存器的所述值進行譯碼;將所述譯碼值輸出到所述第一類總線的24條高位地址線上,所述譯碼值激活所述24根高位地址線中的所述一條;以及將存貯在所述第二個寄存器中的所述值輸出到所述第一類總線的所述8根低位地址線上。
29.根據權利要求25的方法,其特征在于包括所述MCA總線的一根CDSETUP線和所述PCI總線上的一根IDSEL線通過所述橋連接。
30.根據權利要求25的方法,其特征在于包括所述第一類總線至少由8根數據線組成,所述寫配置參數還包括輸出所述配置參數至所述至少8根數據線上。
31.根據權利要求28的方法,其特征在于第一個、第二個、第三個、第四個寄存器由所述適配卡上擴展可編程選項選擇(XPOS)寄存器組成,這些寄存器和所述橋電氣相連。
32.根據權利要求28中的方法,其特征在于包括讀出所述第四個寄存器的一個只讀位以判斷所述橋是裝在所述適配卡上還是在計算機的主板上。
33.根據權利要求28的方法,其特征在于包括響應所述橋對負地址譯碼的支持,設置所述第四個寄存器的第二位為第一種狀態;以及響應所述橋對負/正地址譯碼的支持,設置所述第四個寄存器的所述第二位為第二種狀態。
34.一種配置以及確保將系統內存空間分配給至少一塊子卡的裝置,該子卡加載在適配卡的一外圍設備接口(PCI)總線上,所述適配卡又通過微通道結構(MCA)總線和計算機的主機部分相連,所述適配卡包含一個連接所述PCI總線和所述MCA總線的橋,其特征在于第一個寄存器裝置和所述橋電氣相連,用以存貯標識加載在所述至少一個子卡上的一個設備的值;第二個寄存器裝置和所述橋相連,用于存貯對所述標識設備的一字節配置參數進行尋址的值;把配置參數寫入第三個寄存器的裝置,該配置參數是要寫入所述標識設備的配置參數字節的,該裝置和所述橋電氣相連;第四個寄存器裝置和所述橋電氣相連,用以存貯所述至少一個子卡的RAM窗口大小;第五個寄存器裝置和所述橋電氣相連,用以存貯所述RAM窗口起始地址;第六個寄存器裝置和所述橋電氣相連,用以存貯所述至少一個子卡的ROM窗口的位置。
35.根據權利要求34裝置,其特征在于所述第四個寄存器裝置進一步包括選擇性地使能所述RAM窗口的裝置。
36.根據權利要求34的裝置,其特征在于所述第六個寄存器裝置進一步包括選擇性地使能ROM窗口的裝置。
37.根據權利要求34的裝置,其特征在于,每個所述寄存器裝置由所述適配卡上一個擴展可編程選項選擇寄存器(XPOS)組成。
38.根據權利要求34的裝置,其特征在于包括用于選擇性使能所述橋的裝置。
39.根據權利要求38的裝置,其特征在于用于選擇性使能所述橋的裝置包括和所述橋電氣相連的第七個寄存器裝置的第一位,并且當所述第一位置成第一個二進制狀態時,橋被使能;而當所述第一位置成第二個二進制狀態時,橋則被禁止。
40.根據權利要求34的裝置,其中所述MCA總線由32地址線組成,而其中所述標識設備是和所述32位地址線24條高位線之一相連;其特征在于包括譯碼器裝置和所述第一寄存器設備相連,用以對存于所述第一個寄存器中的值進行譯碼;一個32位緩沖器裝置接收所述譯碼值而且將其存貯于所述緩沖器裝置的24位高位位置以及該緩沖器裝置也接收存貯在所述第二寄存器裝置中的值,并把它存貯于所述緩沖器裝置的低8位;以及接口設備在所述緩沖器裝置和所述PCI總線之間建立連接,以輸出所述緩沖器的所述內容到所述PCI總線的32位地址線上。
41.根據權利要求34的裝置,其特征在于包括將所述MCA總線的一條CDSETUP線和所述PCI總線的IDSEL線進行連接的裝置。
42.根據權利要求34的裝置,其特征在于包括將所述PCI總線所述第三個寄存器裝置進行連接的裝置,從而配置參數被輸出到所述PCI總線的數據線上。
43.根據權利要求34的裝置,其特征在于包括用于設置所述橋數據流模式的裝置;第八個寄存器裝置,它與所述橋電氣相連,并包括所述適配卡的一個XPOS寄存器,用于存貯一個值,該值被用作所述至少一個子卡的ROM特征偏移量02h處的值。
44.根據權利要求43的裝置,其特征在于用于設置所述橋數據流模式的所述裝置由第九個寄存器裝置的至少1位構成,該第九個寄存器與所述橋電氣相連并由適配卡的XPOS寄存器組成。
全文摘要
本發明的方法和裝置是用于利用MCA設置周期和信號,配置加載在MCA適配卡上的PCI子卡;并且把內存空間分配給子卡。在具體的實現中,本發明由以下幾個部分組成一個MCA適配卡;一個PCI式子卡,該子卡用于為適配卡提供附加功能;一個PCI/MCA橋,該橋用于作為MCA系統總線和適配卡上PCI總線間的接口,同時在DOS起動過程中,根據相應的ROM位置,將內存空間分配給子卡(如果必要的話)。
文檔編號G06F13/40GK1146568SQ9411886
公開日1997年4月2日 申請日期1994年11月29日 優先權日1993年12月30日
發明者R·S·佩吉特, A·納西夫, S·G·勞恩扎恩 申請人:國際商業機器公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1