周边组件互连设备的定位方法技术

技术编号:2829042 阅读:192 留言:0更新日期:2012-04-11 18:40
一种周边组件互连设备的定位方法,其包含以下步骤:分析号码为0的总线的周边组件互连-周边组件互连桥的周边组件互连空间(PCISpace),以得到每个周边组件互连-周边组件互连桥所连接的下一总线的总线号码,并记载于一链表中;依照链表中记载的总线号码,继续记载其对应的周边组件互连-周边组件互连桥所连接的下一总线的总线号码;以及当已无下一总线号码时,依照链表中记载的所有总线号码进行对应周边组件互连设备的遍历与定位。

【技术实现步骤摘要】

本专利技术涉及一种,尤其涉及一种通过周边 组件互连桥定位周边组件互连设备的方法。
技术介绍
通常,在许多系统中,遍历周边组件互连(PCI, Peripheral Component Interconnect)设备为一基本功能要求。但是,系统架构中可允许含有多条总 线,而每条总线又可以连接多个设备,其中每个设备允许有多个功能数,例 如在一系统中若存在256条总线,每个总线连接有32个设备,且每个设备 具有8个功能号。因此系统在初始化时,会给每个可能存在的设备预留出寻 址空间。换言之,系统会对256x32x8=65536个周边组件互连设备预留出寻 feh空间,而不管这些设备是否实际全部存在。通常,系统中实际存在的设备往往远远小于这个数字,那么这些实际存 在的周边组件互连设备可能占用65536个预留寻址空间中的任意资源,因此 用户无法预先知道某一设备实际连接于哪个总线上。因此若想遍历系统实际 T字在的周边组件互连设备,则需要完全遍历此系统中的所有周边组件互连设 备总线,即需要遍历65536次,相应需要花费的时间也是很长的。如果是在 测试中,则上述遍历时间更是无法接受的。因此,虽然上述周边组件互连设 备的遍历方法为周边组件互连规范中所指定的通常方法,但实际上是不可行 的。此外,实际上系统含有的周边组件互连设备数目并不很多,因此也相应 ^^配几十范围以内的总线号命名。但是,并不是所有的设备的总线号均为连 续的,对于跳跃式总线号对应的周边组件互连设备,或者超出分配总线号之 外的周边组件互连设备则无法全面地定位。
技术实现思路
为了解决上述公知技术中的问题与缺陷,本专利技术的目的在于提供一种周 边组件互连设备定位方法,以保证周边组件互连设备遍历的准确性、全面性, 同时提高设备定位的效率。本专利技术所提供的一种,包含以下步骤分 析号码为0的总线的周边组件互连-周边组件互连桥的周边组件互连空间(PCI Space),以得到每个周边组件互连-周边组件互连桥所连接的下一总 线的总线号码,并记载于一链表中;依照链表中记载的总线号码,继续记载 其对应的周边组件互连-周边组件互连桥所连接的下一总线的总线号码;以及 当已无下一总线号码时,依照链表中记载的所有总线号码进行对应周边组件 互连设备的遍历与定位。所述的中,还包含遍历号码为0的总线所 含有的周边组件互连-周边组件互连桥,以获得系统的最大总线号码的步骤。所述的中,当该最大总线号码小于一设定 值时,还包含直接遍历该号码为0的总线至该最大号码的总线所连接的周边 组件互连设备的步骤。本专利技术通过对周边组件互连-周边组件互连桥(PCI-PCI Bridge)的访问 与分析,进而得知每个周边组件互连-周边组件互连桥的最大总线深度及由周 边组件互连-周边组件互连桥所能引起的最大总线号码。因此能够灵活设定所 要遍历的总线范围,实现总线对应周边组件互连设备的全面、准确及快速定 位。附图说明图1为总线与周边组件互连-周边组件互连桥(PCI-PCI Bridge)的连接关系示意图;以及图2为本专利技术的的步骤流程图。其中,附图标记说明如下11 周边组件互连-周边组件互连桥12'周边组件互连-周边组件互连桥步骤102遍历号码为0的总线上周边组件互连-周边组件互连桥,得到 系统的最大总线号码步骤104最大总线号码是否大于一设定值?步骤106分析每个周边组件互连-周边组件互连桥的周边组件互连空间步骤108得到每个周边组件互连-周边组件互连桥所连接的下一总线 的总线号码步骤110记载获得的总线号码于一链表中,并依照链表中记载的总线 号码选择性地遍历对应的总线步骤112同时记载当前总线含有的周边组件互连-周边组件互连桥所 连接的下一总线的总线号码步骤114重复上述步骤,直至得到系统中所有的总线号码步骤116直接遍历号码为0的总线至最大号码的总线连接的周边组件互连设备具体实施例方式有关本专利技术的特征与实例,在此配合附图作最佳实施例详细说明如下。请参考图1与图2,其中图1显示了总线与周边组件互连-周边组件互连 桥(PCI-PCI Bridge)的连接关系,图2为本专利技术的周边组件互连设备的定 位方法的步骤流程图。现在请参考图l,系统中均含有号码为O的总线,即bus0,其中所有的 总线最初都是从bus O开始的,并且如图所示各个总线之间使用周边组件互 连-周边组件互连桥连接。下面参考图2,详细说明本专利技术的的步骤。 首先遍历bus 0的总线上含有的周边组件互连-周边组件互连桥,得到系统的 最大总线号码(步骤102)。系统在启动的过程中对总线进行资源分配,通 过访问周边组件互连-周边组件互连桥,能够了解各个周边组件互连-周边组 件互连桥的最大总线深度,以及得到由对应周边组件互连-周边组件互连桥所 能引起的最大总线号码。在获得系统最大总线号码之后,可以包含一判断步骤,判断此最大总线 号码是否大于一设定值(步骤104)。利用此步骤,可以在总线号码分配范 围较小时,例如设定值为30时,直接执行从busO到最大总线号码所对应的周边组件互连设备的遍历,以定位设备(步骤116)。当最大总线号码大于 设定值时,即在系统的最大总线号码过大的情况下,则首先对busO上的周 边组件互连设备进行遍历,分析其含有的各个周边组件互连-周边组件互连桥 的空间(步骤106)。即通过对系统端口的操作,获得周边组件互连设备空 间偏移的第三个双字节。对所得数据进行位移操作,若所得数据为0x0604, 则在此基础上获得第四个偏移双字,对得到的数据进行操作即得到相应数 据。进而得到每个周边组件互连-周边组件互连桥所连接的下一总线的总线号 码(步骤108)。例如对图1中周边组件互连-周边组件互连桥12及12'等进 行分析,依次得到相应的下级总线号码。然后,将获得的总线号码以链表形 式记载下来,并对其中记载的总线号码对应的总线执行选择性的遍历(步骤 110)。同时,记载当前遍历的总线含有的周边组件互连-周边组件互连桥所 连接的下一总线的号码(步骤112),重复上述步骤110及步骤112,直至得到系统中所有的总线号码(步骤114)。以此类推,即能够获得实际存在 的所有总线号码,以及实现相应周边组件互连设备的快速定位。例如当系统中存在256条总线,每个总线连接有32个设备,且每个设备具有8个功能号,即系统中可含有的周边组件互连设备数为 256x32x8=65536个。假设实际上系统中仅连接有6个周边组件互连设备, 并分别存在于bus0、 busl、 bus 2、 bus 4、bus 9及bus 90上。则在测试时,如果按照公知技术则需要遍历65536次,使用大约15分钟的时间。而对于本专利技术,其优点就是能够选择性地遍历需要遍历的总线,因为两 条总线之间由周边组件互连-周边组件互连桥连接。系统在初始化的时候,会 将周边组件互连-周边组件互连桥连接的下一条总线的部分信息存放在周边 组件互连空间中,而所有总线(除BusO以外)都是直接或间接从Bus 0通过周边组件互连-周边组件互连桥连接而来,因此通过从Bus 0逐级遍历周边 组件互连-周边组件互连桥,便可得到系统中实际存在的所有的总线。在遍历 时只需遍历这些实际连接有设备的总线即可。因此,同样以上述例子为例,Busl、 Bus4本文档来自技高网...

【技术保护点】
一种周边组件互连设备的定位方法,其包含以下步骤:分析号码为0的总线的周边组件互连-周边组件互连桥的周边组件互连空间,以得到每个该周边组件互连-周边组件互连桥所连接的下一总线的总线号码,并记载于一链表中;依照该链表中记载的该总 线号码,继续记载其对应的周边组件互连-周边组件互连桥所连接的下一总线的总线号码;以及当已无下一总线号码时,依照该链表中记载的所有总线号码进行对应周边组件互连设备的遍历与定位。

【技术特征摘要】
1.一种周边组件互连设备的定位方法,其包含以下步骤分析号码为0的总线的周边组件互连-周边组件互连桥的周边组件互连空间,以得到每个该周边组件互连-周边组件互连桥所连接的下一总线的总线号码,并记载于一链表中;依照该链表中记载的该总线号码,继续记载其对应的周边组件互连-周边组件互连桥所连接的下一总线的总线号码;以及当已无下一总线号码时,依照该链表中记载的所有总线号码...

【专利技术属性】
技术研发人员:刘涛周刚陈玄同刘文涵
申请(专利权)人:英业达股份有限公司
类型:发明
国别省市:71[中国|台湾]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1