好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

枚举输入输出设备的方法和设备的制作方法.docx

6页
  • 卖家[上传人]:ting****789
  • 文档编号:310003502
  • 上传时间:2022-06-14
  • 文档格式:DOCX
  • 文档大小:23.52KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 枚举输入输出设备的方法和设备的制作方法专利名称:枚举输入输出设备的方法和设备的制作方法技术领域:本发明实施例涉及硬件系统架构,更具体地说,涉及硬件系统中枚举输入输出设备的方法和设备背景技术:一般在硬件系统架构,例如x86、Itanium系统硬件架构中,处理器例如中央处理单兀(Central Processing Unit,简称CPU)和输入输出集中控制器(Input/Output Hub或Input/Output Controller Hub,简称IOH或ICH)通过总线相互连接,用于数据传输硬件系统架构中可以同时存在多个处理器和多个Ι0Η,每个IOH可以连接多个输入输出(Input/Output,简称10)设备IOH内部可以集成多个桥设备,从桥设备引出的总线通过系统中的第一条总线(BusO)与处理器相连以x86、Itanium系统硬件架构为例,一般运行在硬件系统架构上的系统开机后的流程是,首先运行固化在闪存只读存储器(Flash ROM)里的系统固件(System Firmware)程序,System Firmware负责配置、检测服务器的所有硬件设备如处理器、内存、10总线等,保证硬件系统可以正常工作后,由System Firmware负责在系统里的存储设备里查找操作系统加载器(Operating System Loader,简称OS Loader)、调用OS Loader加载操作系统内核程序。

      虽然可能硬件系统中可能有多个处理器(大型服务器可能有数百个),但是目前的System Firmware初始化系统10总线,例如枚举系统中的10设备时还是只由其中的一个处理器来完成这项工作,这个处理器在系统里有特殊的地位一它是Firmware阶段的系统主处理器这样做的主要原因是为了使系统资源的分配保持一致性但是这一过程会花去很多时间,延长了系统启动的时间,在系统开始启动很长时间后用户才能正常使用系统,这会降低用户对系统的满意度和产品认同感另外,在产品设计开发阶段,也会对系统进行反复重启以验证某种修改是否生效、检验系统功能和性能,如果系统启动一次的时间很长,会降低产品设计开发的效率,从而增加产品成本,降低产品竞争力发明内容本发明实施例所要解决的一个技术问题是提高系统初始化系统10总线的效率,加快枚举系统中的10设备的过程本发明实施例提出了一种枚举输入输出设备的方法,所述方法包括获取系统中的各处理器的标识和各输入输出10集中控制器的标识;根据所述各处理器的标识以及所述各10集中控制器的标识,分别指令处理器同时枚举特定的10集中控制器及与之相连的输入输出10设备;获取被指令的处理器枚举的10设备的相关信息。

      本发明实施例提出了一种枚举输入输出设备的设备,所述设备包括信息收集模块,用于获取系统中的各处理器的标识和各输入输出10集中控制器 的标识;调度模块,用于根据所述各处理器的标识以及所述各IO集中控制器的标识,分别指令处理器同时枚举特定的IO集中控制器及与之相连的输入输出IO设备;结果收集模块,用于获取被指令的处理器枚举的IO设备的相关信息根据本发明实施例,可以将枚举系统IO设备的工作分配给多个处理器同时进行,由此大大减少了枚举过程所消耗的时间,加快了系统初始化的过程 为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图图I是本发明实施例的方法的流程图;图2是本发明实施例一的流程图;图3是本发明实施例一中枚举各节点内的IO设备的流程图;图4是本发明实施例二的流程图;图5是本发明实施例的设备的示意结构图;图6是本发明实施例的设备的进一步细化的示意结构图具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

      基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围术语“硬件系统架构”指的是包括处理器、输入输出集中控制器等硬件组成部分的系统架构,例如常见的x86、Itanium系统硬件架构,这些硬件系统架构主要指普通个人计算机和服务器等硬件系统架构可以包含节点,每个节点分别具有处理器封装(Socket),输入输出集中控制器硬件系统架构也可以是只含一个节点的个人计算机或服务器,也可以是含有更多节点的大型服务器一个节点也可以只有一个处理器Socket、或者多于2个处理器Socket,只要符合X86、Itanium架构规范即可还有另外可能的变形是处理器与输入输出集中控制器集成到一个封装里,或者多个输入输出集中控制器集成到一个芯片封装里为了便于管理,硬件系统架构里的每个处理器、每个输入输出集中控制器都会有一个相互不同的编号,这个编号可以由硬件设计时确定,也可以由软件编程指定,不同的平台可能采用不同的方法,运行在系统里的软件可以通过系统内部总线读出上述编号,或者通过系统管理总线(System Management Bus,简称SMBus)读出上述编号,不同的系统可能采用不同的设计,本发明并不限定上述编号的设定和读取的方法。

      本文虽然以x86、Itanium平台为例进行描述,但是本发明实施例并不仅仅适用于x86、Itanium平台,而是适用于具有类似逻辑机构的任意硬件系统架构所述含有更多节点的大型服务器中,各个节点之间的连接方式在不同的系统里可能是不同的,例如可以用处理器直接拥有的专有高速互连接口(例如QuickPathInterconnect接口,简称QPI)直接相连本发明不限定节点间互联的方式和所使用的协议类型所述系统管理总线属于一种带外总线带外总线指的是系统内部总线以外的总线系统内部总线就是带内总线,指的是把处理器、内存、IO设备的各功能块连成一个系统的高速率、高带宽的总线,用于完成系统主要功能带外总线一般速率低、带宽低,一般用于系统管理术语“系统固件”指的是固化在一个Flash ROM里,并在系统加电后用来配置系统硬件设备,包括配置他们的寄存器、为它们分配资源的软件在所有系统里,存在多种系统固件在x86、Itanium系统里,系统固件更常用的名字是基本输入输出系统(Basic Input/Output System,简称BIOS),这里的BIOS既指目前正在广泛使用的传统(Legacy)BIOS,也指目前在逐渐流行的新一代BIOS--统一可扩展固件接口 BIOS (Unified ExtensibleFirmware Interface BIOS,简称UEFI BIOS)。

      为了更加通用化,本文一律使用系统固件这一名称术语“10集中控制器”指的是集成了一个或多个10桥、或者集成了一个或多个10端点设备、或者同时集成了一个或多个10桥设备和端点设备的10芯片、10集线器、10设备集中挂载点、10 交换器、10 Bridge Chip、10 Switch、10 Hub、1/0 Controller Hub、10Router、或其它具备类似功能的模块/芯片图I是根据本发明实施例的枚举系统10总线的方法的流程图如图I所示,方法100包括110 :获取系统中的各处理器的标识和各10集中控制器的标识;120 :根据所述各处理器的标识以及所述各10集中控制器的标识,分别指令处理器同时枚举特定的10集中控制器及与之相连的10设备;130 :获取被指令的处理器枚举的10设备的相关信息下面结合具体实施例的方案详细说明本发明实施例的方法实施例一图2是本发明实施例一的枚举系统中的10设备的方法200的流程图实施例一的方法200适合用于存在多个节点的硬件系统架构中如上所述,每个节点均存在节点主处理器来处理该节点内的节点级事务另外,系统中也存在被称为系统主处理器的处理器,作为该系统内级别最高的处理器,负责系统级的事务,同时系统主处理器也是它所在节点的节点主处理器。

      需要注意,系统主处理器和节点主处理器是通过一定机制由系统自行选择出来的,例如,可以规定某些编号的处理器自动成为系统主处理器或节点主处理器,或者由独立于主机系统的其它软件(比如系统管理软件)指定哪个处理器成为系统主处理器、哪些处理器分别成为节点主处理器这个机制在不同的平台上可能不同,本发明实施例并不限定这个机制系统主处理器和节点主处理器只是一个逻辑上的概念,它们并非物理上 特殊的处理器如图2所示,方法200包括210 :系统主处理器获取系统中的各节点的节点主处理器的标识和每个节点内的10集中控制器的标识应该理解,系统主处理器同时也可以获取自身的标识根据本发明实施例,系统主处理器还可以同时获取10集中控制器的其它他相关信息,例如10集中控制器的数量这里获取处理器和IO集中控制器的标识,包括但不限于获取处理器和IO集中控制器的编号这里获取IO集中控制器的其它相关信息标识,针对不同的系统可以采用不同的方法,例如通过硬件信号收集每个节点有多少个IO集中控制器,因为IO集中控制器个数愈多则IO总线和IO设备就越多、需要的资源也越多;如果硬件系统架构支持,另外一种可以收集更细致信息的方法是在系统里运行独立于主机系统的管理软件,该管理软件可以通过某种物理通道如系统管理总线去访问每个芯片的内部寄存器,不但可以发现每个IO设备,而且可能发现每个IO设备内部集成的IO子设备(包括桥设备),从而收集到非常细致的信息。

      本发明实施例并不限制收集处理器的标识和IO集中控制器的标识和相关信息的方法系统主处理器获取的各节点主处理器的标识以及每个节点内的IO集中控制器的标识可以存储在系统内存中,其中所述的系统内存可以由所述各处理器访问220 :系统主处理器根据每个节点内的IO集中控制器的个数或IO设备的个数,为每个节点预分配资源,在内存中建立资源预分配表根据本发明实施例的构思,通过多个处理器同时枚举系统中的IO设备来加快枚举进程为了保证整个系统资源分配的一致性,需要提前为每个节点预分配资源,防止发生 资源冲突这里预分配资源的方法例如根据每个节点IO集中控制器的多少进行排序,IO集中控制器越多,则认为IO设备规模越大,资源需求则越多本发明不限制这个预分配资源的方法本领域技术人员可以根据需要,相应地选择适当的方法为每个节点预分配资源,目的是保证各节点间资源分配均衡且各节点的IO设备不会发生资源冲突在内存中建立的资源预分配表例如表I所示表I :资源预分配表 节点O节点I节点2节点3资源项I起始值-数量起始值-数量起始值-数量起始值-数量资源项2起始值-数量起始值-数量起始值-数量起始值-数量这里的资源项例如包括内存空间地址,IO空间地址,总线号等。

      需要明确的是,资源项可以是不同于上述列出的其它类型,本发明不限制资源项的类型和数量230 :系统主处理器通过特定的机制驱动每个节点的节点主处理器开始枚举本节点内的IO设备,同时系统主处理器枚举其所处节点内的IO设备这个机制在不同的硬件平台下可能是不同的,例如在X86平台下,系统主处理器可以通过编程中断控制器发出“处理器间中断信号”的方法来驱动其它处理器(例如,节点主处理器)完成指定的任务;或者系统主处理器与各节点主处理器通过系统约定的内存共享的方法来传递任务和数据例如,一种内存共享的方法是在系统内存中设置指令区域,用于存放指令信息,所述指令用于驱动被指令的处理器,例如每个节点的节点主处理器,同时枚举各节点内的IO集中控制器及与之相连的IO设备本发明实施例不限定系统主处理器驱动节点主处理器的具体机制因为资源预分配表是建立在系统内存里的,而系统里的每个处理器,包括系统主处理器和节点主处理器都可以访问系统内存,所以,每个节点主处理器都可以获得资源预分配表240 :系统主处理器和各节点主处理器枚举各。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.