加载在mca适配卡上的pci扩展卡的配置和ram/rom控制的制作方法

文档序号:3548451阅读:227来源:国知局
专利名称:加载在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