用于在计算机系统中传递中断的技术的制作方法

文档序号:6582875阅读:116来源:国知局
专利名称:用于在计算机系统中传递中断的技术的制作方法
技术领域
本发明的实施方式一般涉及信息处理领域,更具体涉及在计算系统和微处理器中
传递中断的领域。
背景技术
随着处理器包含更多异类或同类计算核、且计算机系统包含更多处理器,对中断 的管理越来越困难。某些现有技术已经使用存储器映射输入/输出(匪IO)方案来管理中 断,其中处理器或核(在此一般称为"代理")通过为中断通信信息特别保留的存储器(例 如DRAM)区传递中断信息。例如,其中要对高级可编程中断控制器(APIC)编程的一种现有 的中断传递技术可通过匪IO区将要编程的信息传递至APIC。 通过匪IO向/从APIC传递中断信息会具有若干缺点,这些缺点会随着代理数量 的增多从而中断通信量的增多而加剧。例如,匪IO访问会要求与APIC相关联的存储器区 与非高速缓存(UC)的访问属性映射,这具有与其相关联的高性能开销。该UC接口还加强 串行化行为,而这并不为APIC寄存器的大子集所需。 使用匪IO接口还需要使用后写入语义并提供对APIC的读和写的排序控制有限的 代理,这会影响在基本中断相关指令所需的读/写次数较多的情况下发送中断的效率。例 如,在某些现有技术的匪10实现中,经由处理器间的中断(IPI)将中断从一个处理器发送 至另一个处理器在软件不需要保证中断已经离开本地APIC时可能需要1次UC读和2次UC 写,或在软件需要保证中断已经离开本地APIC时可能需要2次UC读和2次UC写。
使用现有技术的匪IO接口会限制为中断传递高效地提供系统软件所需机制的能 力。具体示例包括改变中断优先级的操作,这在某些现有技术实现中可通过系统软件向任 务优先级寄存器(TPR)写入来实现;以及"中断结束"(EOI)操作,这可通过系统软件向APIC 的EOI寄存器写入来实现。系统软件可能需要这些操作的完成与任何重排优先级操作的完 成相关联,从而在这些操作之前确定发送的任何中断在这些操作之后立即结束。在缺少这 些保证的情况下,系统软件会使用低效的基于轮询的机制,这会增加APIC通信量。
使用基于匪IO的中断信息还会影响计算机系统中的其它部件。例如,使用现有技 术的MMIO中断通信接口技术会增加虚拟化复杂程度和APIC访问虚拟化的开销。例如,用于 访问中断控制器的指令可能需要使用虚拟机监控器(VMM)来支持计算机系统中的虚拟化。 之前讨论的关于匪IO操作的开销会与VMM用来进入和离开系统中的虚拟机的开销混合。
最后,当通过匪IO连接时,检测和加强APIC接口中的保留位会具有高实现成本, 尤其是当使用APIC的代理数量增加时。某些现有技术中断传递技术可能限制将保留位位 置用于未来的可扩展体系结构,因为遗产软件可能不正确地对寄存器之一进行写入。
至少因为上述原因,某些现有技术中断传递技术,包括使用匪10传递中断信息的 那些技术可能不适合支持多核处理器中处理核的数量的增加或多处理器系统中处理器的 数量的增加。


本发明的实施方式在各附图中是作为实施例而非作为限制示出的,在附图中相同 的附图标记指代相同的元素,并且其中 图1示出其中可以使用本发明的至少一个实施方式的微处理器的框图; 图2示出其中可以使用本发明的至少一个实施方式的共享总线计算机系统的框
图; 图3示出其中可以使用本发明的至少一个实施方式的点对点互连计算机系统的 框图; 图4示出其中可以实现本发明的至少一个实施方式的逻辑的框图;
图5是可用于执行本发明的至少一个实施方式的操作的流程图。
具体实施例方式
图1示出其中可以使用本发明的至少一个实施方式的微处理器。具体而言,图1 示出具有一个或多个处理器核105和110的微处理器100,各个处理器核分别具有与其关联 的本地高速缓存107和113。图1中还示出了共享的高速缓存存储器115,其可存储在本地 高速缓存107和113中的每一个中存储的信息中的至少某些的各种版本。在某些实施方式 中,微处理器100还可包括图1中未示出的其它逻辑,诸如集成存储器控制器、集成图形控 制器以及计算机系统中用来执行诸如1/0控制之类的其它功能的其它逻辑。在一个实施方 式中,多处理器系统中的各个微处理器或多核处理器中的各个处理器核可包括或可与逻辑 119相关联,以实现根据至少一个实施方式的中断传递技术。该逻辑可包括电路、软件,或既 包括电路又包括软件,以在多个核或处理器之间实现比现有技术实现更高效的中断传递。
在一个实施方式中,逻辑119可包括APIC接口寄存器或多个寄存器,这些寄存器 的内容可在不使用匪IO的情况下通过一组标准指令或专用实现指令来操纵或读取。例如, 在一个实施方式中,逻辑119包括寄存器接口,可使用原生指令集体系结构(ISA)与其通 信。在一个实施方式中,相比于某些现有技术,支持可经由原生ISA连接的寄存器、多个寄 存器或其它存储可减少与传递中断相关联的访问循环次数和开销。在一个实施方式中,可 使用现有技术的MSR地址经由现有技术的读和写操作(例如"RDMSR"和"WRMSR"指令)使 用和访问专用模型的寄存器或多个寄存器(MSR)。在其它实施方式中,注册用于中断控制 器的新的读/写指令集和地址空间。在一个实施方式中,新的APIC寄存器接口中明确支持 新的语义,相比于现有技术,这能减少传递中断信息所必需的访问循环次数。在一个实施方 式中,可将现有的微体系结构机制用于保留位检查,以确保使用用于未来体系结构扩展的 保留寄存器位置。在一个实施方式中,某些系统软件可继续使用遗产匪IO接口。因此,至 少一个实施方式可既提供遗产接口又提供本文中所描述的新APIC寄存器接口 。在一个实 施方式中,使用MSR的新APIC寄存器接口的实现可以实现成本相对低增加地与遗产接口共 存。 例如,图2示出其中可以使用本发明的一个实施方式的前端总线(FSB)计算机系 统。任一处理器201、205、210或215可访问来自处理器核223、227、233、237、243、247、253、 257之一中或与其相关联的任一本地一级(Ll)高速缓存存储器220、225、230、235、240、 245、250、255的信息。此外,任一处理器201、205、210或215可访问来自共享二级(L2)高速缓存203、207、213、217中的任一个或经由芯片组265访问来自系统存储器260的信息。 图2中的一个或多个处理器可包括逻辑219或可与逻辑219相关联,以实现根据至少一个 实施方式的中断传递技术。 除图2所示的FSB计算机系统之外,可以结合本发明的各实施方式使用其它系统 配置,包括点对点(P2P)互连系统和环互连系统。图3的P2P系统例如可包括若干处理器, 其中作为示例仅示出了两个处理器370、380。处理器370、380可各包括本地存储器控制器 集线器(MCH)372、382来与存储器32、34连接。处理器370、380可以使用点对点(PtP)接 口电路378、388经由PtP接口 350来交换数据。处理器370、380均可使用点对点接口电路 376、394、386、398经由单独的PtP接口 352、354来与芯片组390交换数据。芯片组390还 可经由高性能图形接口 339来与高性能图形电路338交换数据。本发明的各实施方式可位 于具有任何数量的处理核的任何处理器中,或位于图3的PtP总线代理的每一个中。在一 个实施方式中,任何处理器核可包括本地高速缓存存储器(未示出)或可与本地高速缓存 相关联。此外,可在两个处理器外部的任一个处理器中包括共享的高速缓存(未示出),并 经由p2p互连与这些处理器连接,从而如果将处理器置于低功率模式时,可将任一个或两 个处理器的本地高速缓存信息存储在共享的高速缓存中。图3中的一个或多个处理器或核 可包括逻辑319或可与逻辑319相关联,以实现根据至少一个实施方式的中断传递技术。
图4示出执行本发明的至少一个实施方式的逻辑。具体地,图4示出可用来存储 用于实现根据一个实施方式的中断传递的信息的两个APIC中断命令寄存器(ICR)。例如, 根据一个实施方式,寄存器401包括保留位31-20和用于实现APIC传递的多个其它控制 位。此外,图4包括用于存储用来标识中断目标代理的32位目的地识别(ID)字段的寄存 器405。在某些实施方式中,目的地ID字段可在与其它控制字段和位相同的寄存器401中。 此外,在某些实施方式中,ICR 401和405是MSR' s,而在其它实施方式中,它们是其它寄存 器或存储区。在一个实施方式中,可使用多种现有MSR写和读指令操纵和读取寄存器401 和405中存储的位,而在其它实施方式中,可定义并使用新指令来操纵和读取寄存器401和 405的内容。 在一个实施方式中,可使用图4中示出所包括的寄存器和信息来减少对单个寄存 器写入的中断事务,这与基于后写入语义的现有技术不同,这需要最少1UC读和2UC写(如 果软件不需要保证中断已经离开本地APIC),或2UC读和2UC写(如果软件需要保证中断已 经离开本地APIC)。 在一个实施方式中,处理器可通过对本地APIC的中断命令寄存器进行写入产生 处理器间的中断(IPI)。在一个实施方式中,APIC ICR包括表明此中断的传递状态的遗产 传递状态位(图4中的位12),该位可具有只读属性。在一个实施方式中,ICR 401的位12 中的0值表明当前无活动,而1值表明即将进行发送。在一个实施方式中,当中断已被发送 时,传递状态位(ICR 401的位12)被清空。在支持遗产接口的情况下,系统软件可在发送 IPI之前忙碌等待传递状态位清空。类似地,如果发送操作的语义要求从本地APIC单元发 送中断,则系统软件可忙碌等待传递状态位被清空。在APIC接口中,根据一个实施方式, ICR 401被组合到如图4所示的单64位MSR中。对ICR 401的单次MSR写入用于发出中 断。根据一个实施方式,尤其是利用通往APIC ICR 401和405的寄存器接口,在对ICR进 行写入以发送IPI之前不需要系统软件检查传递状态位的状态。
在一个实施方式中,使具体语义与典型的中断控制器相关的操作——具体而言是 TPR写入和EOI写入——相关联(和更高效的实现)可提高中断相关的传递和通信量的效 率,同时需要的软件返工量最少。例如,用于经由图4中所示的ICR读取和写入TPR寄存器 的语义可确保由处理器优先级变化引起的任何重排优先级动作的结果在TPR之后的下一 指令被执行之前被反映至处理器。在TPR写入之后的指令边界处可采取任何所得的可传递 中断。经由图4的ICR访问E0I寄存器确保由E0I引起的任何重排动作的结果在E0I之后 的下一指令被执行之前被反映至处理器。在EOI写入之后的指令边界处可采取任何所得的 可传递中断。 在一个实施方式中,可将用来实现图4中所示的ICR' s的MSR的使用映射至与遗 产实现相同的地址空间中。例如,在一个实施方式中,在遗产寄存器偏移与MSR偏移之间保 持一一对应,除行为中存在语义变化的寄存器之外。在一个实施方式中,遗产寄存器可以是 128位边界上的32位寄存器。然而,在其中128位边界上的32位寄存器对应于64位MSR 的一个实施方式中,可根据以下公式计算MSR寄存器偏移
"MSR寄存器偏移二遗产寄存器偏移/16" 然而,对于根据一个实施方式的ICR,如图4所示,两个32位遗产寄存器被组合成 一个64位MSR。 在一个实施方式中,本发明解决了与现有技术中与APIC连接的基于匪IO的接口 相关联的问题。此外,本发明的实施方式的至少一个实现还为与至少一个实施方式相关联 的需要既支持遗产又支持ICR的系统提供低实现成本增加。 图5a示出不论其中使用该实施方式的处理器或系统配置如何,均可结合本发明 的至少一个实施方式使用的操作的流程图。具体而言,图5a示出根据一个实施方式的在使 用遗产技术传递中断时用于经由支持遗产的协议传递中断的技术。在操作501a,轮询传递 状态位(图4中的位12),直到ICR接口可用。在操作505a,当状态位无效时,在510a执 行遗产UC匪IO读取。在其中遗产寄存器是32位长度的一个实施方式中,通过将目的地 写成高和低模式发送中断。例如,将中断目标地址写入通用寄存器(例如x86处理器中的 "EAX")。为了与遗产模式兼容,在操作515a,使用UC匪IO写操作来写入ICR目的地ID高 部分。在操作520a,通过对ICR的低位(例如,较低32位)执行UC匪IO写入可将ICR的 模式和向量字段写入,以表明各种遗产中断特性。在操作525a,通过执行UC匪IO读取循环 同时将ICR的状态字段置为无效,轮询ICR直到中断离开本地APIC。 图5b示出不论其中使用该实施方式的处理器或系统配置如何,均可结合本发明 的至少一个实施方式使用的操作的流程图。在一个实施方式中,通过由如图4中所示的一 个或多个MSR' s组成的ICR接口传递中断,其中目的地字段在高32位中,而模式/向量信 息在低32位中。在操作501b,中断的目标地址存储在第一通用寄存器(例如"EDX")中,而 在操作505b,模式和向量信息存储在第二通用寄存器(例如"EAX")中。在操作510b,对应 于MSR地址空间中的ICR的ICR偏移地址存储在第三通用寄存器(例如"ECX")中。在操作 515b,执行指令以将第一和第二通用寄存器中的内容或其中指向的内容写入第三通用寄存 器中存储的地址。在一个实施方式中,该指令是现有技术MSR写入指令(例如"WRMSR")。在 其它实施方式中,该指令可以是新定义的指令,具体而言是实现上述技术的处理器的ISA。
至少一个实施方式的一个或多个方面可以由存储在机器可读介质上的代表性数据来实现,该数据表示处理器中的各种逻辑,其在被机器读取时使得该机器制造执行此处 所描述的技术的逻辑。被称为"IP核"的这些表示可以被存储在有形的机器可读介质("带") 上,并被提供给各个顾客或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
因此,描述了用于指导微架构存储器区域访问的方法和装置。应当理解,以上描述 旨在是说明性的而非限制性的。在阅读并理解以上描述之后,许多其它实施方式对本领域 技术人员而言将是显而易见的。因此,本发明的范围应参考所附权利要求书以及这些权利 要求享有权利的等效方案的完全范围来确定。
权利要求
一种装置,包括用来将中断信息从至少第一代理传递至至少第二代理的逻辑,其中所述逻辑包括在不访问存储器映射的输入/输出(MMIO)区的情况下传递通过至少一个指令操纵的中断信息的中断控制接口。
2. 如权利要求1所述的装置,其特征在于,所述中断控制接口包括用来存储表明至少一个待发送中断的状态信息的中断控制寄存器(ICR)。
3. 如权利要求2所述的装置,其特征在于,所述ICR包括向量字段。
4. 如权利要求3所述的装置,其特征在于,所述ICR包括模式字段。
5. 如权利要求1所述的装置,其特征在于,所述至少一个指令对应于分别从专用模型寄存器(MSR)读取信息或向专用模型寄存器(MSR)写入信息的操作。
6. 如权利要求l所述的装置,其特征在于,所述中断控制接口向高级可编程中断控制器(APIC)传递中断信息或从高级可编程中断控制器(APIC)传递中断信息。
7. 如权利要求6所述的装置,其特征在于,所述中断控制接口支持与所述APIC的遗产通信和与所述APIC的非遗产通信。
8. 如权利要求7所述的装置,其特征在于,所述APIC是多个本地APIC之一,其中所述每一个APIC对应于不同的代理。
9. 一种方法,包括在不使用存储器映射输入/输出(匪IO)存储的情况下经由包括一个或多个专用模型寄存器(MSR)的中断控制寄存器(ICR)传递中断,其中传递所述中断包括在第一通用寄存器中存储所述中断的目标地址;在第二通用寄存器中存储中断模式和向量信息;在第三通用寄存器中存储ICR偏移地址;执行将所述目标地址和所述模式和向量信息写入ICR偏移地址的指令。
10. 如权利要求9所述的方法,其特征在于,还包括如果使用遗产技术传递所述中断,则根据支持遗产的协议传递所述中断。
11. 如权利要求io所述的方法,其特征在于,所述支持遗产的协议包括轮询状态位直到所述ICR接口变得可用。
12. 如权利要求11所述的方法,其特征在于,所述支持遗产的协议还包括当所述状态位被置为无效时执行未高速缓存的匪IO读取。
13. 如权利要求12所述的方法,其特征在于,所述支持遗产的协议还包括将所述向量和模式信息写入所述ICR中相应的字段以表明遗产中断特性。
14. 如权利要求13所述的方法,其特征在于,使用非高速缓存的匪IO写入操作写入所述ICR的模式和向量字段。
15. 如权利要求14所述的方法,其特征在于,所述支持遗产的协议包括轮询所述ICR的状态位,直到所述中断离开对应于所述ICR的高级可编程中断控制器(APIC)。
16. —种系统,包括用来存储至少读和写指令的存储器;具有多个高级可编程中断控制器(APIC)的多个处理器,其中所述多个APIC中的每一个在不首先向所述存储器中的存储器映射的输入/输出(匪IO)地址空间写入中断信息或从其中读取中断信息的情况下,使用所述至少读和写指令经由中断控制寄存器(ICR)传递中断信息。
17. 如权利要求16所述的装置,其特征在于,所述ICR包括向量字段。
18. 如权利要求17所述的装置,其特征在于,所述ICR包括模式字段。
19. 如权利要求18所述的装置,其特征在于,所述至少读和写指令对应于分别从专用模型寄存器(MSR)读取信息的操作或向专用模型寄存器(MSR)写入信息的操作。
20. 如权利要求19所述的装置,其特征在于,所述中断控制接口支持与所述多个APIC的遗产通信和与所述多个APIC的非遗产通信。
21. 如权利要求20所述的装置,其特征在于,所述多个APIC对应于不同的处理器。
全文摘要
一种实现计算机系统中的高效中断通信的技术。在一个实施方式中,在不使用存储器映射输入/输出(MMIO)的情况下,高级可编程中断控制器(APIC)使用多种接口指令或操作经由APIC接口寄存器中的一组位连接。
文档编号G06F15/163GK101727414SQ20091020797
公开日2010年6月9日 申请日期2009年10月28日 优先权日2008年10月28日
发明者J·B·克罗斯兰, K·蒂鲁瓦鲁, L·胡德, R·帕塔萨拉蒂, S·考什克 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1