高级可编程中断控制器的识别码配置方法技术

技术编号:2919437 阅读:200 留言:0更新日期:2012-04-11 18:40
一种高级可编程中断控制器的识别码配置方法,应用于一多处理器计算机系统,其于初始化过程中重新分配各中央处理器的高级可编程中断控制器的识别码,预留部分识别码给输入/输出高级可编程中断控制器,并更新基本输入/输出系统中的多处理器配置表,以避免处理周边装置的中断请求时产生识别码冲突的问题,提升多处理器计算机系统的稳定度。

【技术实现步骤摘要】

本专利技术是关于一种识别码配置方法,特别是一种多处理器计算机系统中的。
技术介绍
随着信息时代的来临,计算机系统已成为人们生活中不可或缺的工具之一,而为了增进计算机系统的处理效率,近年来发展出一种对称多处理器(Symmetrical Multi-Processor,SMP)系统,当计算机系统在处理一个任务时,两个处理器平行执行处理任务比一个处理器单独执行处理任务的速度快很多,同理,四个处理器平行执行处理任务时,其速度又比两个处理器快,且当其中一个处理器故障时,其余的处理器亦能继续接管它的工作,以维持计算机系统的稳定度,由于具有上述优点,大型工作站或服务器系统大多采用多处理器架构。就系统层级而言,多处理器系统需要两种高级可编程中断控制器(Advanced Programmable Interrupt Controller;APIC)来处理中断请求(Interrupt Request,IRQ)其中一种是位于中央处理器(CPU)中的局部APIC(Local APIC),另一则是属于输入/输出系统中的输入/输出APIC(Input/OutputAPIC;I/O APIC),二者可以专属的APIC总线(APIC Bus)彼此连接。局部APIC负责为局部处理器处理局部中断(Local Interrupts),同时,透过AIPC总线并可接受及产生处理器间的中断请求;而I/O APIC则使用复位向表(redirectiontable),去重新定向一个从局部APIC透过APIC总线发送到另一个局部APIC的中断请求。但是I/O APIC也可能会导致系统故障,其中一个原因是在处理器数量较多时的识别码分配问题。在计算机系统开机时,基本输入/输出系统(BIOS)会去设定各APIC的缓存器中存放的识别码(ID),并需要从多处理器配置表(Multiprocessorconfiguration table;MP配置表)中读取APIC的识别码,以提供给操作系统运作所需的信息。存储在BIOS中的MP配置表具有其特定的格式规范,例如遵循Intel MP1.4规格的MP配置表,即是使用特定的多处理器及架构。在以往的基本输入/输出系统中,会先建立MP配置表中的中央处理器端局部APIC的参数,并且其识别码由0开始建立,而I/O APIC的识别码从最后一个中央处理器端局部APIC的识别码之后排列起。举例来说,当计算机系统中有8个具双核心的中央处理器,就有8*2共16个局部APIC需要分配识别码,各局部APIC依序占用了识别码0-15,所以I/OAPIC的识别码就需要从16开始排列起,并将这些识别码存放于I/O APIC芯片组的缓存器中,但一般来说,I/O APIC只支持有限位(bit)的缓存器,例如AMD8131桥接芯片中2个I/O APIC的缓存器分别只支持4位,也就是最多只能设定到16个识别码(0-15),当要将识别码16写入第一个I/O APIC的缓存器时,由于无法写入完整的10000(二进制法的16,需要5位),此时将写为0000(二进制),与第一个中央处理器的局部APIC识别码相同而形成冲突。因此,如何能提供一种,成为研究人员待解决问题之一。
技术实现思路
本专利技术主要在于提供一种,重新分配中央处理器的高级可编程中断控制器与输入/输出高级可编程中断控制器二者的识别码排列顺序,以解决多处理器计算机系统中高级可编程中断控制器的识别码冲突问题,提高处理中断请求的稳定度。在本专利技术一较佳实施例中所揭露的中,分别分配一新识别码至各个中央处理器的局部高级可编程中断控制器;再者,以数个预留识别码分配至各个输入/输出高级可编程中断控制器。在本专利技术另一较佳实施例中,更包含分别存储被分配的预留识别码于各个输入/输出高级可编程中断控制器的一缓存器(register)中的步骤;其次,预留识别码选自0至(2x-1)的正整数群组组合,x为各个输入/输出高级可编程中断控制器的缓存器所支持的位数;此外,更包含分别存储各个新识别码于各个局部高级可编程中断控制器的另一缓存器中的步骤;另外,新识别码选自2x至(2y-1)的正整数群组组合,其中y为各个局部高级可编程中断控制器的缓存器所支持的位数,且x<y。再者,在本专利技术一较佳实施例中,新识别码被写入于多处理器配置表中,所对应的局部高级可编程中断控制器识别码字段;而被分配的这些预留识别码被写入该多处理器配置表中,所对应的复数输入/输出高级可编程中断控制器识别码字段;至于多处理器配置表存储位置,则位于计算机系统的基本输入/输出系统中。而在本专利技术再一较佳实施例中,预留识别码的个数等于输入/输出高级可编程中断控制器的数量。在本专利技术一较佳实施例中,分配新识别码的步骤中更包含先分配新识别码中最小者至局部高级可编程中断控制器其中一个;及以最小的新识别码逐次累加1,逐一分配至其余的局部高级可编程中断控制器。在本专利技术一较佳实施例中,新识别码被分配之前,各中央处理器的局部高级可编程中断控制器,已分别被分配一原始识别码;而分配新识别码的步骤中,分别以各局部高级可编程中断控制器的原始识别码加上预留识别码的个数,作为各个新识别码。附图说明图1为本专利技术较佳实施例的系统方块图。图2为本专利技术较佳实施例的APIC识别码配置方法的主要流程图。图3A为本专利技术较佳实施例的APIC识别码配置方法的细部流程图。图3B为接续图3A的APIC识别码配置方法的细部流程图。具体实施方式本专利技术从高级可编程中断控制器(APIC)识别码分配的先后顺序着手,解决现有技术中识别码分配冲突的问题。请参照图1,为本专利技术一较佳实施例的系统方块图,此例为具有8个单核中央处理器的计算机系统。其中第一中央处理器10、第二中央处理器11…至第八中央处理器17,分别具有专属的第一局部高级可编程中断控制器(以下简称第一局部APIC)10a、第二局部高级可编程中断控制器(以下简称第二局部APIC)11a…第八局部高级可编程中断控制器(以下简称第八局部APIC)17a,分别为各中央处理器处理中断请求。同时,第一局部APIC 10a、第二局部APIC 11a…第八局部APIC 17a均透过前端总线(front side bus)30,与第一、第二输入/输出高级可编程中断控制器(以下简称I/O APIC)20、21进行沟通并处理来自各接口设备的中断请求。实务上I/O APIC与局部APIC间的连接,亦可使用APIC总线、ICC总线(Interrupt Controller Communications Bus)等;I/O APIC 20、21可能整合在单一芯片上,例如AMD 8131桥接芯片中即具有2个I/O APIC。另外,第一、第二I/O APIC 20、21与中央处理器中的第一局部APIC 10a、第二局部APIC 11a…第八局部APIC 17a皆具有专属的缓存器(图中未示),可用以存放个别的识别码。本例中I/O APIC的缓存器支持4位的识别码存储,而各中央处理器中局部APIC的缓存器则提供8位。换言之,I/O APIC的缓存器仅能存储0-15的识别码数值,无法存储至16以上,而局部APIC则可存储(0-255)的识别码数值。请参照图2,为本专利技术较佳实施例的APIC识别码配置方法的主要流程图。由本文档来自技高网
...

【技术保护点】
一种高级可编程中断控制器的识别码配置方法,应用于具有复数个中央处理器的一计算机系统,各该中央处理器具有至少一局部高级可编程中断控制器(LocalAPIC),供与该计算机系统中的复数输入/输出高级可编程中断控制器(I/OAPIC)沟通 ,以处理中断请求(interruptrequest),其特征在于:该方法包含以下步骤:分别分配一新识别码至各该中央处理器的局部高级可编程中断控制器;以及以复数预留识别码分配至这些输入/输出高级可编程中断控制器;其 中,这些新识别码与被分配的这些预留识别码,被写入于该计算机系统的基本输入/输出系统(BIOS)中的一多处理器配置表(Multiprocessorconfigurationtable)中。

【技术特征摘要】

【专利技术属性】
技术研发人员:沈剑苑方杨大厦
申请(专利权)人:环达电脑上海有限公司
类型:发明
国别省市:31[中国|上海]

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

1