向内存映射配置分配处理器的制造方法

文档序号:9510136阅读:359来源:国知局
向内存映射配置分配处理器的制造方法
【专利说明】
【背景技术】
[0001]由于最近的技术创新,用户正在寻求更大量的输入/输出(I/O)资源。但是,由于I/o标准和/或带宽限制,设备不能支持更大数量的I/O设备提供I/O资源。系统供应商面临向用户提供更大量I/o资源的挑战。
【附图说明】
[0002]下面的详细描述参照附图,其中:
[0003]图1A和图1B是用于向内存映射配置分配处理器的设备的示例框图;
[0004]图2是用于向内存映射配置分配处理器的设备的另一示例框图;
[0005]图3是包括用于向内存映射位置分配处理器的指令的计算设备的示例框图;以及
[0006]图4是用于向内存映射位置分配处理器的方法的示例流程图。
【具体实施方式】
[0007]在下面的描述中给出特定细节,以提供对实施例的深入理解,。但是,将理解,实施例可以在没有这些特定细节的情况下实施。例如,可以在框图中示出系统,以便不因不必要的细节模糊实施例,。在其它实例中,可以示出众所周知的过程、结构和技术,而没有不必要的细节,以便避免使实施例不清楚。
[0008]由于信息时代的动态发展及其需求特性,IT公司生产可以容纳大量I/O资源的设备的障碍正在不断提升。例如,具有支持大量I/O资源的能力正在变得对虚拟化来说高度有价值,因为更多来宾操作系统(0S)尝试要求这样的资产的所有权。因此,随着像高端系统这样的设备上可用的I/o卡的数量增加以及向PCI Express (PCIe)设备添加增加更多虚拟功能,单个PCI段内的PCI总线数量正在变得日益稀少。
[0009]通过支持多个PCI段,供应商能够提供更多总线数量。但是,支持多个PCI段通常要求使用被称为内存映射配置(MMCFG)的4GB以上的内存映射I/O范围。这造成以下问题:早期固件代码需要在仍处于32位模式下时访问MMCFG空间中的资源。另外,大多数供应商提供被配置用于32位支持的硬件初始化固件包。因此,在早期启动期间支持多个PCI段产生多个挑战。这样的挑战可以包括需要修改供应商提供的包,以在64位模式下操作,这接着可能导致支持更复杂的代码,支持更复杂的代码导致推迟产品发布。
[0010]实施例可以允许在早期启动期间支持单个PCI段,以及随后在将系统资源切换给0S之前使用处理器来适当地使能其它PCI段。例如,主处理器可以静默在设备上运行的一个或多个从处理器。这些处理器中的每个可以使用基于32位的内存映射配置来访问外设部件互连(PCI)段的不同总线。在主处理器指示该一个或多个从处理器静默之后,服务单元可以切换至64位内存映射配置。在服务单元切换至64位内存映射配置之后,可以将这些处理器中每个分配给PCI段的多个实例中的一个。这些实例中的每个可以访问该PCI段的所有总线。
[0011]因此,通过推迟PCI段的多个实例的使能直至完成硬件初始化,实施例可以提供更多的PCI总线数,同时仍允许不修改地运行依赖于单个PCI段配置的系统固件代码。结果,实施例可以简单地实现,因为与重写32位代码以兼容64位关联的复杂度降低或消除。
[0012]这可以进一步转化成开发日程的节省以及及时的产品发布。此外,根据实施例使能多个PCI段允许在硬件供应商之间更容易地交换固件包。例如,与处理多个模式相反(例如,32位模式及64位模式),供应商能够将其包构造为仅在32位模式下工作。使包支持单个模式可以减少支持多个模式所需的开发和验证周期。此外,实施例可以使用工业标准接口,如SMBus,因此允许容易实现。
[0013]现在参照附图,图1A和图1B是用于向内存映射配置分配处理器120、122-1和122-2的设备100的示例框图。设备100可以是例如服务器、安全微处理器、笔记本计算机、台式计算机、一体系统、网络设备、控制器、无线设备、或与外设部件互连(PCI)接合的任意其它类型设备。
[0014]术语PCI可以指用于附接计算机中的硬件设备的PCI局部总线标准和/或局部计算机总线的一部分。PCI总线可以支持处理器总线上找到的功能,但以独立于任何特定处理器的标准化格式。连接至总线的设备可能对处理器来说就像直接连接至处理器总线,且可以向连接至总线的设备分配处理器地址空间中的地址。设备可以装在主板本身(例如,平面器件)上或装在插入插槽中的扩展卡上。示例PCI卡可以包括网卡、声卡、调制解调器、附加端口(如USB或串口)、TV调谐器卡、磁盘控制器等等。
[0015]PCI支持内存空间的32位地址和64位地址。当设备100启动时,B1S或系统固件(未示出)向PCI外设设备分配PCI地址域中的内存空间的区域。区域的基地址被存储在该设备的PCI配置空间的基地址寄存器中。每个区域的大小通常是二的幂数,并且所分配的基地址在等于该区域大小的边界上对齐。向如处理器的地址空间这样的主机地址域中内存映射(memory-map)内存空间中的PCI外设设备,使得对任何设备的数据访问可以通过处理器本身的加载指令或存储指令来执行。通过总线号、设备号及功能号来识别每个PCI外设设备。PCI规范允许单个系统或段管理多达256条总线,但如上面所解释的,对于许多较大型系统来说,256条总线可能不够。
[0016]在图1A和图1B的实施例中,设备100包括服务单元110及多个处理器120、122-1和122-2。服务单元110可以包括例如:包括用于实现下面描述的功能的电路的硬件设备,如控制逻辑和/或内存。此外或作为替代,服务单元110可以被实现为在机器可读存储介质上编码且由处理器执行的一系列指令。处理器120、122-1和122-2可以是中央处理单元(CPU)、基于半导体的微处理器、图形处理单元(GPU)或适于获取及执行指令的其它硬件设备。
[0017]例如,服务单元110可以是该设备内允许像系统重启动或PCI配置这样的一些服务任务的单独的计算机系统。只要对服务单元110供电,服务单元110就可用,甚至在设备100的主操作系统(OS)关闭、有缺陷或根本未安装时。
[0018]图1A示出设备100在设备100已开始以从像基本输入/输出系统(B1S)这样的系统固件(未示出)启动之后的状态。由于系统固件可能由32位指令构成,所以设备100可以处于32位模式。因此,处理器120、122-1和122-2中的每个最初要使用基于32位的内存映射配置(未示出)来访问外设部件互连(PCI)段130的不同总线132。
[0019]如上面所解释的,PCI规范允许单个系统或段管理最高仅256条总线。术语总线可以定义CPU和外设设备之间的低级别接口。例如,主处理器120可以访问PCI段130中编号为0-84的总线132,第一从处理器122-1可以访问PCI段130中编号为85-169的总线132,第二从处理器122-1可以访问PCI段130中编号为170-255的总线132。因此,如图1中示出的,处理器120、122-1和122-2中的每个最初可以包括限制其仅访问PCI段130中一部分的内存映射配置,其中没有两个处理器120、122-1和122-2可访问相同的总线132。
[0020]然后,服务单元110可以选择这些处理器中的一个处理器120作为主处理器。主处理器120可以接着静默在设备100上运行的一个或多个从处理器122-1和122-2。虽然图2示出两个从处理器122-1和122-2,但是实施例可以包括两个以上或两个以下从处理器。术语静默可以指暂停或改变在计算机或处理器上运行的过程的状态,如可以修改与像写请求这样的内存访问相关的信息的那些过程。
[0021]被静默的处理器120、122-1和122-2可以不通过处理器120、122-1和122-2外部的结构传输业务,且可以不通过内存映射配置执行操作。在主存储器120指示一个或多个处理器122-1和122-2静默之后,服务单元110可以通过平台环境式控制接口(PECI)和/或系统管理总线(SMBus)之类的边带机制将设备100切换至64位内存映射配置。
[0022]服务单元110对设备100内的一个或多个资源进行配置,以将PCI段130切
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1