一种支持单根双处理器中断通信的方法和装置

文档序号:1405731 发布日期:2020-03-06 浏览:24次 >En<

阅读说明:本技术 一种支持单根双处理器中断通信的方法和装置 (Method and device for supporting single-root dual-processor interrupt communication ) 是由 张剑锋 龚锐 张英 石伟 任巨 刘威 周理 铁俊波 王蕾 周宏伟 王永文 于 2019-11-05 设计创作,主要内容包括:本发明涉及微处理器的微体系结构设计领域,具体涉及一种支持单根双处理器中断通信的方法和装置,本发明方法包括将根处理器或者非根处理器的中断请求映射到根处理器的中断控制单元,根处理器的中断控制单元分别对中断请求解包、获取相关配置、生成中断交互命令,然后将生成中断交互命令重映射至对应的根处理器或者非根处理器的目标计算簇和核的物理ID,最后打包生成中断交互命令报文并经过仲裁,在仲裁成功后通过片上网络路由后输出至根处理器的目标计算簇和核或者通过片上网络和处理器间高速互连接口传输到非根处理器的目标计算簇和核。本发明具有高性能、开销小、易于实现、使用灵活的优点,并且实现简单,可灵活应用到现有处理器设计中。(The invention relates to the field of micro-architecture design of a microprocessor, in particular to a method and a device for supporting single-root dual-processor interrupt communication. The invention has the advantages of high performance, low cost, easy realization and flexible use, and can be flexibly applied to the design of the existing processor.)

一种支持单根双处理器中断通信的方法和装置

技术领域

本发明涉及微处理器的微体系结构设计领域,具体涉及一种支持单根双处理器中断通信的方法和装置。

背景技术

传统通过提升处理器频率方式以提高处理器性能的方法在科技发展到当代而言收益越来越小,这其中很大原因在于处理器频率的提升空间也非常有限,因此近些年研究人员更多关注的是如何通过增加处理器内计算核的数量以追求更高的性能。从之前单核,历经双核、四核、16核到目前有据可查的最大64核,处理器内核的数量已经发展到一定规模,然而增加处理器内核数目的同时也带来新的技术挑战,例如:不同计算核之间数据一致性如何维护,网络如何能够保障高效的数据传输以及单个die的size和成本的问题,因此目前比较认可的就是单处理器内核数量不超过64,这也是当下能够保证性能收益最大的规模,然而针对以高性能计算为代表的应用场景对服务器计算能力需求的矛盾,若能够实现处理器互连扩展是有效解决该矛盾的一种有效手段。

需要指出的是,在目前高性能处理器中,中断系统起着举足轻重的作用,是一种保证处理器性能的高效手段,即只有在中断被触发后处理器才将进入中断服务程序进行相关操作,待中断服务程序执行完后又跳回处理被中断任务。与此同时,中断依据中断发起源的不同、中断发起方式的不同以及处理方式的不同有着不同类型的划分,具体包括:核发起有其本身响应处理的核私有中断;软件发起不同核进行工作协同的机间中断;IO设备和存储设备发起的共享设备中断;IO设备发起的消息中断,一般指的是PCIe设备。

因此,针对采用处理器互连方式提升处理器性能如何保证中断高效响应和处理是摆在研究人员面前一个难题,原因在于处理器互连时,每个处理器内有各自的中断控制单元,然而目前各大厂商标准系统内核都是单根结构,即只支持一个中断控制单元初始化,那么多处理器互连时如何能让某个中断控制单元工作而其它中断控制单元不工作,同时如何由某个中断控制单元实现对所有互连处理器中断的控制,以及其它不工作的中断控制单元所在处理器内的中断请求如何能够传输至处于工作状态中断控制单元所在的处理器内等等。

发明内容

本发明要解决的技术问题:针对现有技术的上述问题,提供一种支持单根双处理器中断通信的方法和装置,本发明具有高性能、开销小、易于实现、使用灵活的优点,并且实现简单,可灵活应用到现有处理器设计中。

为了解决上述技术问题,本发明采用的技术方案为:

一种支持单根双处理器中断通信的方法,实施步骤包括:

1)根处理器的中断控制单元通过片上网络接收来自根处理器或者非根处理器的中断请求,来自非根处理器的中断请求为非根处理器通过处理器间高速互连接口传输到根处理器的片上网络,所述中断请求被重定向映射到中断控制单元中的某个计算簇控制单元,且根处理器和非根处理器分别占用一半簇控制单元,每一个簇控制单元中的核控制单元数量为根处理器和非根处理器的计算簇中核数量的两倍;

2)针对中断请求进行解包获得逻辑ID并将发送给该逻辑ID对应的计算簇控制单元;

3)通过该逻辑ID对应的计算簇控制单元获取中断请求的相关配置;

4)通过该逻辑ID对应的计算簇控制单元根据相关配置对中断请求生成中断交互命令;

5)将逻辑ID重映射至对应的根处理器或者非根处理器的目标计算簇和核的物理ID;

6)将中断交互命令打包生成中断交互命令报文,且该中断交互命令报文的目的地为重映射至对应的根处理器或者非根处理器的目标计算簇和核的物理ID;

7)对中断交互命令报文进行仲裁;

8)在仲裁成功后将中断交互命令报文路由输出,且在中断请求来自根处理器时通过片上网络直接传输到根处理器的目标计算簇和核,在中断请求来自非根处理器时通过片上网络和处理器间高速互连接口传输到非根处理器的目标计算簇和核。

可选地,步骤5)的详细步骤包括:

5.1)判断中断请求的来源,如果中断请求的来源为根处理器,则跳转执行步骤5.2);如果中断请求的来源为非根处理器,则跳转执行步骤5.3);

5.2)基于下述规则将逻辑ID重映射至对应的根处理器的目标计算簇和核的物理ID:将逻辑ID为第0到i/2-1号的计算簇控制单元重定向至根处理器的第0到i号计算簇,使得逻辑ID为0号的计算簇控制单元重定向至根处理器的第0到1号计算簇,逻辑ID为1号的计算簇控制单元重定向至根处理器的第2到3号计算簇,依次类推,逻辑ID为i/2-1号的计算簇控制单元重定向至根处理器的第i-2到i-1号计算簇,且同一个计算簇控制单元中的第0~n号和第n+1~2n+1号核控制单元分别重定向为根处理器的相邻两个计算簇中的第0到n号核,根处理器以及非根处理器的计算簇中的核数量均为n个,根处理器以及非根处理器的计算簇以及计算簇控制单元的总数量均为i个,根处理器对应第0到i/2-1号的计算簇控制单元,非根处理器对应第i/2到i-1号的计算簇控制单元;最终跳转执行步骤6);

5.3)基于下述规则将逻辑ID重映射至对应的非根处理器的目标计算簇和核的物理ID:将逻辑ID为第i/2到i-1号的计算簇控制单元重定向至非根处理器的第0到i号计算簇,使得逻辑ID为第i/2号的计算簇控制单元重定向至非根处理器的第0到1号计算簇,逻辑ID为第i/2+1号的计算簇控制单元重定向至非根处理器的第2到3号计算簇,依次类推,逻辑ID为第i-1号的重定向至非根处理器的第i-2到i-1号计算簇,且同一个计算簇控制单元中的0~n号、n+1~2n+1号核控制单元分别重定向为非根处理器相邻两个计算簇中0到n号核;跳转执行步骤6)。

可选地,步骤1)之前还包括根处理器发起中断请求的步骤,且该步骤为下述三种方式中的一种:

方式(1.1):根处理器的某个计算簇中的某个核发起中断请求,该中断请求为私有中断或机间中断,根处理器将发起中断请求的计算簇和核的物理ID重映射为根处理器中对应计算簇控制单元的逻辑ID,打包形成中断报文,其路由目的地为根处理器中逻辑ID对应的计算簇控制单元,将中断报文经片上网络路由至根处理器的中断控制单元;

方式(1.2):根处理器的IO设备针对目标计算簇和核发起中断请求,该中断请求为共享设备中断或设备消息中断,根处理器将发起的中断请求进行打包形成中断报文,该中断报文包含了目标计算簇和核的物理ID,其路由目的地为目标计算簇和核的物理ID在根处理器中对应的计算簇控制单元,将中断报文经片上网络路由至根处理器的中断控制单元;

方式(1.3):根处理器的存储设备针对目标计算簇和核发起中断请求,该中断请求为共享设备中断,根处理器将发起的中断请求进行打包形成中断报文,该中断报文包含了目标计算簇和核的物理ID,其路由目的地为目标计算簇和核的物理ID在根处理器中对应的计算簇控制单元,将中断报文经片上网络路由至根处理器的中断控制单元。

可选地,方式(1.1)中将发起中断请求的计算簇和核的物理ID重映射为根处理器中对应计算簇控制单元的逻辑ID的详细步骤包括:将根处理器中发起中断请求的第0到i-1号计算簇重定向至根处理器的中断控制单元中逻辑ID为第0到i/2-1号的计算簇控制单元,使得第0号和1号计算簇重定向至根处理器中逻辑ID为第0号的计算簇控制单元,第2号和3号计算簇重定向至根处理器中逻辑ID为第1号的计算簇控制单元,依次类推,第i-2号和i-1号计算簇重定向至根处理器的中逻辑ID为第i/2-1号的计算簇控制单元,且根处理器的相邻两个计算簇中的0到n号核分别重定向至根处理器同一个计算簇控制单元中的第0~n号以及n+1~2n+1号核控制单元。

可选地,步骤1)之前还包括非根处理器发起中断请求的步骤,且步骤为下述三种方式中的一种:

方式(2.1):非根处理器的计算簇中的核发起中断请求,该中断请求为私有中断或机间中断,非根处理器将发起中断请求的计算簇和核的物理ID重映射为根处理器中对应计算簇控制单元的逻辑ID,打包形成中断报文,其路由目的地为根处理器中逻辑ID对应的计算簇控制单元,将中断报文经非根处理器的片上网络、处理器间高速互连接口、根处理器的片上网络路由至根处理器的中断控制单元;

方式(2.2):非根处理器的IO设备发起中断请求,非根处理器该中断请求为共享设备中断或设备消息中断、将发起的中断请求进行打包形成中断报文,该中断报文包含了目标计算簇和核的物理ID,其路由目的地为目标计算簇和核的物理ID在根处理器中对应的计算簇控制单元,将中断报文经非根处理器的片上网络、处理器间高速互连接口、根处理器的片上网络路由至根处理器的中断控制单元;

方式(2.3):非根处理器的存储设备发起中断请求,非根处理器该中断请求为共享设备中断、将发起的中断请求进行打包形成中断报文,该中断报文包含了目标计算簇和核的物理ID,其路由目的地为目标计算簇和核的物理ID在根处理器中对应的计算簇控制单元,将中断报文经非根处理器的片上网络、处理器间高速互连接口、根处理器的片上网络路由至根处理器的中断控制单元。

可选地,方式(2.1)中将发起中断请求的计算簇和核的物理ID重映射为根处理器中对应计算簇控制单元的逻辑ID的详细步骤包括:将非根处理器中发起中断请求的第0到i-1号计算簇重定向至根处理器中断控制单元中逻辑ID为第i/2到i-1号的计算簇控制单元,使得第0号和1号计算簇重定向至根处理器中逻辑ID为第i/2号的计算簇控制单元,第2号和3号计算簇重定向至根处理器中逻辑ID为第i/2+1号的计算簇控制单元,依次类推,第i-2号和i-1号计算簇重定向至根处理器中逻辑ID为第i-1号的计算簇控制单元,且相邻两个计算簇中的0到n号核分别重定向至根处理器同一个计算簇控制单元中0~n号以及n+1~2n+1号核控制单元。

本发明还提供一种支持单根双处理器中断通信的装置,包括:

处理器间高速互连接口,用于实现根处理器和非根处理器之间的通信;

片上网络,用于实现片上网络连接部件之间的数据传输;

计算簇单元,包括编号为0~i-1的共i个计算簇,每一个计算簇包括编号为0~n的共n+1个核,每一个计算簇和片上网络之间设有对应的中断打包解包模块,所述中断打包解包模块包括中断报文解包子模块、计算簇重定向子模块以及中断报文打包子模块;

IO中断单元,包括IO设备和第一中断报文打包模块,所述该IO设备通过第一中断报文打包模块和片上网络相连;

存储设备中断单元,包括存储设备和第二中断报文打包模块,且该存储设备通过第二中断报文打包模块和片上网络相连;

中断控制单元,用于作为根处理器中的中断响应执行部件,执行权利要求1或2所述支持单根双处理器中断通信的方法的步骤;

所述处理器间高速互连接口、计算簇单元、IO中断单元、存储设备中断单元、中断控制单元之间分别与片上网络相连。

可选地,所述中断控制单元包括:

中断报文解包单元,用于对来自片上网络的中断报文进行解包;

中断报文仲裁单元,用于对发往片上网络的中断交互命令报文仲裁输出;

计算簇控制单元,数量为i个,用于根据中断报文的逻辑ID作出中断响应;

计算簇交互中断控制单元,用于为计算簇控制单元获取中断请求的相关配置;

所述计算簇控制单元包括:

中断报文缓存FIFO,用于缓存解包后中断报文的中断报文并执行调度输出;

核控制单元,数量为2n+2个,用于根据相关配置对中断请求生成中断交互命令;

计算簇控制单元重定向模块,用于将逻辑ID重映射至对应的根处理器或者非根处理器的目标计算簇和核的物理ID;

中断报文打包单元,用于将中断交互命令打包生成中断交互命令报文并输出给中断报文仲裁单元,且该中断交互命令报文的目的地为重映射至对应的根处理器或者非根处理器的目标计算簇和核的物理ID。

本发明还提供一种单根双处理器装置,包括结构相同的根处理器和非根处理器,其特征在于,所述根处理器和非根处理器中均包括所述支持单根双处理器中断通信的装置,且所述根处理器和非根处理器之间通过处理器间高速互连接口相互连接。

和现有技术相比,本发明具有下述优点:

1.高性能。由于本发明支持单根双处理器中断通信,因此在程序运行时可以通过调度将任务下发分配至不同处理器上的计算簇执行,并且共享设备中断和设备消息中断均可以依据计算簇中核的空闲实现在不同处理器上的派发,从而提高了处理器的性能。

2. 实现代价小。本发明只需将中断控制单元中计算簇控制单元中核控制单元数配置为处理器计算簇内核数量的两倍,同时中断控制单元增加计算簇控制单元重定向模块、计算簇中增加计算簇重定向模块,以及处理器增加处理器间高速互连接口就可以在现有的处理器设计中实现本发明的方法,因此实现代价小,实现简单,可灵活应用到现有处理器设计中。

3. 使用灵活,不影响现有单处理器中断通路。本发明所提的支持单根双处理器中断通信的方法不影响现有的中断通路,即在不需要实现双处理器单根机制时,软件可将处理器均配置为根处理器,则所有中断请求和响应均在各自根处理器内完成处理。

附图说明

图1为本发明实施例方法的基本流程示意图。

图2为本发明实施例装置的框架结构示意图。

图3为本发明实施例中根处理器发起中断请求和响应的流程示意图。

图4为本发明实施例中非根处理器发起中断请求和响应的流程示意图。

图例说明:1、处理器间高速互连接口;2、片上网络;3、计算簇单元;31、个计算簇;32、中断打包解包模块;4、IO中断单元;41、IO设备;42、第一中断报文打包模块;5、存储设备中断单元;51、存储设备;52、第二中断报文打包模块;6、中断控制单元;61、中断报文解包模块;62、中断报文仲裁单元;63、计算簇控制单元;631、中断报文缓存FIFO;632、核控制单元;633、计算簇控制单元重定向模块;64、计算簇交互中断控制单元。

具体实施方式

如图1所示,本实施例支持单根双处理器中断通信的方法的实施步骤包括:

1)根处理器的中断控制单元通过片上网络接收来自根处理器或者非根处理器的中断请求,来自非根处理器的中断请求为非根处理器通过处理器间高速互连接口传输到根处理器的片上网络,所述中断请求被重定向映射到中断控制单元中的某个计算簇控制单元,且根处理器和非根处理器分别占用一半簇控制单元,每一个簇控制单元中的核控制单元数量为根处理器和非根处理器的计算簇中核数量的两倍;

2)针对中断请求进行解包获得逻辑ID并将发送给该逻辑ID对应的计算簇控制单元;

3)通过该逻辑ID对应的计算簇控制单元获取中断请求的相关配置;

4)通过该逻辑ID对应的计算簇控制单元根据相关配置对中断请求生成中断交互命令;

5)将逻辑ID重映射至对应的根处理器或者非根处理器的目标计算簇和核的物理ID;

6)将中断交互命令打包生成中断交互命令报文,且该中断交互命令报文的目的地为重映射至对应的根处理器或者非根处理器的目标计算簇和核的物理ID;

7)对中断交互命令报文进行仲裁;

8)在仲裁成功后将中断交互命令报文路由输出,且在中断请求来自根处理器时通过片上网络直接传输到根处理器的目标计算簇和核,在中断请求来自非根处理器时通过片上网络和处理器间高速互连接口传输到非根处理器的目标计算簇和核。

本实施例支持单根双处理器中断通信的装置针对核私有中断、机间中断、共享设备中断和设备消息中断等中断类型中断控制单元需提供对双处理器互连时中断请求控制的支持以实现单根控制,所谓单根指的是双处理器互连时,只能有根处理器的中断控制单元工作,非根处理器中断控制单元不工作。

需要说明的是,根处理器或者非根处理器可以根据需要进行指定,指定其中一个处理器为根处理器,则另一个为非根处理器,根处理器中断控制单元在处理中断请求时需能够实现对根处理器和非根处理器中断请求的区分。针对根处理器,核私有中断、机间中断、共享设备中断和设备消息中断均需转成中断报文路由至根处理器中断控制单元。针对非根处理器,核私有中断和机间中断请求得通过计算簇中断打包解包模块转成中断报文通过片上网络经处理器间高速互连接口路由至根处理器中断控制单元;共享设备中断和设备消息中断请求得通过与之对应的中断打包模块转成中断报文通过片上网络经处理器间高速互连接口路由至根处理器中断控制单元。针对根处理器中断控制单元,通过不同计算簇控制单元以区分和实现对根处理器中断请求和非根处理器中断请求的控制;针对根处理器中断控制单元,与非根处理器计算簇中断命令交互需要通过打包成中断报文后通过根处理器片上网络经根处理器与非根处理器间高速互连接口再经非根处理器片上网络路由至非根处理器计算簇。同时,非根处理器计算簇、IO设备以及存储设备的中断请求打包上网络后需要最终实现路由至根处理器中断控制单元,以及根处理器中断控制单元实现与非根处理器计算簇中断命令交互时需要最终实现路由至非根处理器计算簇。针对非根处理器发起的中断请求,在实现中断报文转换时需要能够携带非根处理器间互连接口模块的物理ID作为中间路由信息,而后再将根处理器中断控制单元物理ID作为最终路由目的地。针对根处理器发起的与非根处理器计算簇中断命令交互,在实现中断报文转换时需要能够携带根处理器间互连接口模块的物理ID作为中间路由信息,而后将非根处理器计算簇的物理ID作为最终路由目的地。所有类型中断均打包成中断报文上片上网络最终路由至根处理器中断控制单元,其中非根处理器中断报文需要先通过处理器间互连模块传输至根处理器片上网络进而路由至根处理器中断控制单元,而根处理器中断报文直接经其片上网络路由至其中断控制单元;中断控制单元需要能够区分中断源是来自根处理器还是非根处理器,具体是通过与每个计算簇控制单元相连的计算簇控制单元重定向模块实现,也就是说根处理器和非根处理器的计算簇发起的中断请求均需要经计算簇重定向模块以实现与根处理器中断控制单元中不同计算簇控制单元的映射;中断控制单元中中断报文打包单元传输的中断报文需通过中断报文仲裁单元实现轮训仲裁以防止出现某一中断交互命令一直得不到响应。

本实施例中,步骤5)的详细步骤包括:

5.1)判断中断请求的来源,如果中断请求的来源为根处理器,则跳转执行步骤5.2);如果中断请求的来源为非根处理器,则跳转执行步骤5.3);

5.2)基于下述规则将逻辑ID重映射至对应的根处理器的目标计算簇和核的物理ID:将逻辑ID为第0到i/2-1号的计算簇控制单元重定向至根处理器的第0到i号计算簇,使得逻辑ID为0号的计算簇控制单元重定向至根处理器的第0到1号计算簇,逻辑ID为1号的计算簇控制单元重定向至根处理器的第2到3号计算簇,依次类推,逻辑ID为i/2-1号的计算簇控制单元重定向至根处理器的第i-2到i-1号计算簇,且同一个计算簇控制单元中的第0~n号和第n+1~2n+1号核控制单元分别重定向为根处理器的相邻两个计算簇中的第0到n号核,根处理器以及非根处理器的计算簇中的核数量均为n个,根处理器以及非根处理器的计算簇以及计算簇控制单元的总数量均为i个,根处理器对应第0到i/2-1号的计算簇控制单元,非根处理器对应第i/2到i-1号的计算簇控制单元;最终跳转执行步骤6);

5.3)基于下述规则将逻辑ID重映射至对应的非根处理器的目标计算簇和核的物理ID:将逻辑ID为第i/2到i-1号的计算簇控制单元重定向至非根处理器的第0到i号计算簇,使得逻辑ID为第i/2号的计算簇控制单元重定向至非根处理器的第0到1号计算簇,逻辑ID为第i/2+1号的计算簇控制单元重定向至非根处理器的第2到3号计算簇,依次类推,逻辑ID为第i-1号的重定向至非根处理器的第i-2到i-1号计算簇,且同一个计算簇控制单元中的0~n号、n+1~2n+1号核控制单元分别重定向为非根处理器相邻两个计算簇中0到n号核;跳转执行步骤6)。

本实施例中,步骤1)之前还包括根处理器发起中断请求的步骤,且该步骤为下述三种方式中的一种:

方式(1.1):根处理器的某个计算簇中的某个核发起中断请求,该中断请求为私有中断或机间中断,根处理器将发起中断请求的计算簇和核的物理ID重映射为根处理器中对应计算簇控制单元的逻辑ID,打包形成中断报文,其路由目的地为根处理器中逻辑ID对应的计算簇控制单元,将中断报文经片上网络路由至根处理器的中断控制单元;

方式(1.2):根处理器的IO设备针对目标计算簇和核发起中断请求,该中断请求为共享设备中断或设备消息中断,根处理器将发起的中断请求进行打包形成中断报文,该中断报文包含了目标计算簇和核的物理ID,其路由目的地为目标计算簇和核的物理ID在根处理器中对应的计算簇控制单元,将中断报文经片上网络路由至根处理器的中断控制单元;

方式(1.3):根处理器的存储设备针对目标计算簇和核发起中断请求,该中断请求为共享设备中断,根处理器将发起的中断请求进行打包形成中断报文,该中断报文包含了目标计算簇和核的物理ID,其路由目的地为目标计算簇和核的物理ID在根处理器中对应的计算簇控制单元,将中断报文经片上网络路由至根处理器的中断控制单元。

本实施例中,方式(1.1)中将发起中断请求的计算簇和核的物理ID重映射为根处理器中对应计算簇控制单元的逻辑ID的详细步骤包括:将根处理器中发起中断请求的第0到i-1号计算簇重定向至根处理器的中断控制单元中逻辑ID为第0到i/2-1号的计算簇控制单元,使得第0号和1号计算簇重定向至根处理器中逻辑ID为第0号的计算簇控制单元,第2号和3号计算簇重定向至根处理器中逻辑ID为第1号的计算簇控制单元,依次类推,第i-2号和i-1号计算簇重定向至根处理器的中逻辑ID为第i/2-1号的计算簇控制单元,且根处理器的相邻两个计算簇中的0到n号核分别重定向至根处理器同一个计算簇控制单元中的第0~n号以及n+1~2n+1号核控制单元。

本实施例中,步骤1)之前还包括非根处理器发起中断请求的步骤,且步骤为下述三种方式中的一种:

方式(2.1):非根处理器的计算簇中的核发起中断请求,该中断请求为私有中断或机间中断,非根处理器将发起中断请求的计算簇和核的物理ID重映射为根处理器中对应计算簇控制单元的逻辑ID,打包形成中断报文,其路由目的地为根处理器中逻辑ID对应的计算簇控制单元,将中断报文经非根处理器的片上网络、处理器间高速互连接口、根处理器的片上网络路由至根处理器的中断控制单元;

方式(2.2):非根处理器的IO设备发起中断请求,非根处理器该中断请求为共享设备中断或设备消息中断、将发起的中断请求进行打包形成中断报文,该中断报文包含了目标计算簇和核的物理ID,其路由目的地为目标计算簇和核的物理ID在根处理器中对应的计算簇控制单元,将中断报文经非根处理器的片上网络、处理器间高速互连接口、根处理器的片上网络路由至根处理器的中断控制单元;

方式(2.3):非根处理器的存储设备发起中断请求,非根处理器该中断请求为共享设备中断、将发起的中断请求进行打包形成中断报文,该中断报文包含了目标计算簇和核的物理ID,其路由目的地为目标计算簇和核的物理ID在根处理器中对应的计算簇控制单元,将中断报文经非根处理器的片上网络、处理器间高速互连接口、根处理器的片上网络路由至根处理器的中断控制单元。

本实施例中,方式(2.1)中将发起中断请求的计算簇和核的物理ID重映射为根处理器中对应计算簇控制单元的逻辑ID的详细步骤包括:将非根处理器中发起中断请求的第0到i-1号计算簇重定向至根处理器中断控制单元中逻辑ID为第i/2到i-1号的计算簇控制单元,使得第0号和1号计算簇重定向至根处理器中逻辑ID为第i/2号的计算簇控制单元,第2号和3号计算簇重定向至根处理器中逻辑ID为第i/2+1号的计算簇控制单元,依次类推,第i-2号和i-1号计算簇重定向至根处理器中逻辑ID为第i-1号的计算簇控制单元,且相邻两个计算簇中的0到n号核分别重定向至根处理器同一个计算簇控制单元中0~n号以及n+1~2n+1号核控制单元。

如图2所示,本实施例支持单根双处理器中断通信的装置包括:

处理器间高速互连接口1,用于实现根处理器和非根处理器之间的通信;

片上网络2,用于实现片上网络连接部件之间的数据传输;

计算簇单元3,包括编号为0~i-1的共i个计算簇31(图2中分别表示为0计算簇~i-1计算簇,前面的数字表示编号),每一个计算簇31包括编号为0~n的共n+1个核(图2中分别表示为0核~n核,前面的数字表示编号),每一个计算簇31和片上网络2之间设有对应的中断打包解包模块32(例如0计算簇对应设置有0中断打包解包模块,1计算簇对应设置有1中断打包解包模块,依次类推),中断打包解包模块32包括中断报文解包子模块、计算簇重定向子模块以及中断报文打包子模块;

IO中断单元4,包括IO设备41和第一中断报文打包模块42,所述该IO设备41通过第一中断报文打包模块42和片上网络2相连;

存储设备中断单元5,包括存储设备51和第二中断报文打包模块52,且该存储设备51通过第二中断报文打包模块52和片上网络相连;

中断控制单元6,用于作为根处理器中的中断响应执行部件,执行本实施例前述述支持单根双处理器中断通信的方法的步骤;

所述处理器间高速互连接口1、计算簇单元3、IO中断单元4、存储设备中断单元5、中断控制单元6之间分别与片上网络2相连,为非根处理器中断请求的路由提供了接口支持。

本实施例中,中断控制单元6包括:

中断报文解包单元61,用于对来自片上网络2的中断报文进行解包;

中断报文仲裁单元62,用于对发往片上网络2的中断交互命令报文仲裁输出;本实施例中中断报文仲裁单元62采用轮询策略进行仲裁,可防止某一中断交互命令一直得不到响应。

计算簇控制单元63,数量为i个(图2中分别表示为0计算簇控制单元~i-1计算簇控制单元,前面的数字表示编号),用于根据中断报文的逻辑ID作出中断响应;

计算簇交互中断控制单元64,用于为计算簇控制单元63获取中断请求的相关配置;

所述计算簇控制单元63包括:

中断报文缓存FIFO 631,用于缓存解包后中断报文的中断报文并执行调度输出;

核控制单元632,数量为2n+2个(图2中分别表示为0核控制单元~2n+1核控制单元,前面的数字表示编号),用于根据相关配置对中断请求生成中断交互命令;

计算簇控制单元重定向模块633,用于将逻辑ID重映射至对应的根处理器或者非根处理器的目标计算簇和核的物理ID;

中断报文打包单元634,用于将中断交互命令打包生成中断交互命令报文并输出给中断报文仲裁单元62,且该中断交互命令报文的目的地为重映射至对应的根处理器或者非根处理器的目标计算簇和核的物理ID。

如图2所示,本实施例还提供一种单根双处理器装置,包括结构相同的根处理器和非根处理器,根处理器和非根处理器中均包括本实施例前述支持单根双处理器中断通信的装置,且所述根处理器和非根处理器之间通过处理器间高速互连接口1相互连接。

如图3所示,根处理器发起中断请求和响应流程的实施步骤如下:

A1. 根处理器的某个计算簇31中的核发起私有中断和机间中断;

A2. 计算簇31对应的中断打包解包模块32中计算簇重定向子模块实现对步骤A1发起的中断请求进行计算簇和核物理ID的重映射,具体:将根处理器中0到i-1号计算簇31重定向至根处理器中断控制单元中0到i/2-1号计算簇控制单元12,其中0号和1号计算簇31重定向至根处理器0号计算簇控制单元12,2号和3号计算簇31重定向至根处理器1号计算簇控制单元12,依次类推,i-2号和i-1号计算簇31重定向至根处理器i/2-1号计算簇控制单元12,值得注意的是相邻两个计算簇31中的0到n号核分别重定向至同一个计算簇控制单元12中0到n号以及n+1到2n+1号核控制单元;

A3. 中断报文打包子模块对经步骤A2重映射后的中断请求进行打包形成中断报文,其中路由目的地为根处理器中断控制单元中重映射后的计算簇控制单元12;

上述A1~A3为根处理器发起中断请求的第一种方式。

A4. 根处理器IO设备41发起共享设备中断和设备消息中断;

A5. 第一中断报文打包模块42对步骤A4发起的中断请求进行打包形成中断报文,其中路由目的地为根处理器中断控制单元中中断请求目的计算簇控制单元12;

上述A4~A5为根处理器发起中断请求的第二种方式。

A6. 根处理器存储设备51发起共享设备中断;

A7. 第二中断报文打包模块52对步骤A6发起的中断请求进行打包形成中断报文,其中路由目的地为根处理器中断控制单元中中断请求目的计算簇控制单元12;

上述A6~A7为根处理器发起中断请求的第三种方式。

A8. 步骤A3、A5和A7形成的中断报文经片上网络2路由至根处理器中断控制单元;

A9. 根处理器中断控制单元的中断报文解包单元61对接收到中断报文进行解包处理;

A10. 解包后的中断报文缓存至与中断请求目的计算簇控制单元12对应的中断报文缓存FIFO 631;

A11. 若中断报文缓存FIFO 631非空,则将中断请求传输至对应的计算簇控制单元12;

A12. 计算簇控制单元12在收到中断请求后进一步将中断请求传输至计算簇交互中断控制单元64实现对中断请求相关配置获取;

A13.计算簇交互中断控制单元64将中断请求配置反馈回计算簇控制单元12,进而计算簇控制单元12进行中断响应,也就是反馈中断交互命令;

A14. 计算簇控制单元12反馈的中断交互命令需经计算簇控制单元重定向模块633实现计算簇和核物理ID的重定向,具体:0到i/2-1号计算簇控制单元12重定向至根处理器0到i号计算簇31,其中0号计算簇控制单元12重定向至根处理器0到1号计算簇31,1号计算簇控制单元12重定向至根处理器2到3号计算簇31,依次类推,i/2-1号重定向至根处理器i-2到i-1号计算簇31,与此同时计算簇控制单元12中的0到2n+1号核控制单元中0到n号和n+1到2n+1号分别重定向为相邻两个计算簇31中0到n号核;

A15. 重定向后的中断交互命令经中断报文打包单元634打包形成中断报文,其中路由目的地为根处理器中断请求目的计算簇31;

A16. 中断控制单元中的中断报文仲裁单元62对接收到的中断交互命令报文进行仲裁以防止出现某一中断交互命令报文一直反馈不回中断请求目的计算簇31的情况;

A17. 步骤A16仲裁后的中断报文经片上网络2路由至与根处理器中断请求目的计算簇对应的计算簇的中断打包解包子模块;

A18. 中断打包解包子模块对接收到中断交互命令报文进行解包处理;

A19. 解包后的中断交互命令传输至中断请求目的计算簇31。

如图4所示,本实施例中非根处理器发起中断请求和响应流程的步骤如下:

B1. 非根处理器计算簇31中核发起私有中断和机间中断;

B2. 计算簇31的中断打包解包模块32中计算簇重定向模子块实现对步骤B1发起的中断请求进行计算簇和核物理ID的重映射,具体:将非根处理器中0到i-1号计算簇31重定向至根处理器中断控制单元中i/2到i-1号计算簇控制单元63,其中0号和1号计算簇31重定向至根处理器i/2号计算簇控制单元63,2号和3号计算簇31重定向至根处理器i/2+1号计算簇控制单元63,依次类推,i-2号和i-1号计算簇31重定向至根处理器i-1号计算簇控制单元63,值得注意的是相邻两个计算簇31中的0到n号核分别重定向至同一个计算簇控制单元63中0到n号以及n+1到2n+1号核控制单元;

B3. 中断报文打包子模块对经步骤B2重映射后的中断请求进行打包形成中断报文,其中路由中间目的地为非根处理器间高速互连接口2,最终目的地为根处理器中断控制单元中重映射后的计算簇控制单元63;

上述B1~B3为非根处理器发起中断请求的第一种方式。

B4. 非根处理器的IO设备41发起共享设备中断和设备消息中断;

B5. 第一中断报文打包单元42对步骤B4发起的中断请求进行打包形成中断报文,其中路由中间目的地为非根处理器的处理器间高速互连接口1,最终目的地为根处理器中断控制单元中重映射后的计算簇控制单元63;

上述B4~B5为非根处理器发起中断请求的第二种方式。

B6. 非根处理器的存储设备51发起共享设备中断;

B7. 第二中断报文打包单元52对步骤B6发起的中断请求进行打包形成中断报文,其中路由中间目的地为非根处理器间高速互连接口1,最终目的地为根处理器中断控制单元中重映射后的计算簇控制单元63;

上述B6~B7为非根处理器发起中断请求的第三种方式。

B8. 步骤B3、B5和B7形成的中断报文经非根处理器片上网络2路由至非根处理器的处理器间高速互连接口1;

B9. 非根处理器的片上网络2进一步将中断报文传输至根处理器的处理器间高速互连接口(17);

B10. 根处理器的处理器间高速互连接口1将经片上网络2传输过来的非根处理器中断报文传输至根处理器的片上网络2;

B11. 根处理器的片上网络2将非根处理器中断报文传输至根处理器中断控制单元;

B12. 根处理器中断控制单元6中的中断报文解包单元61对接收到非根处理器中断报文进行解包处理;

B13. 解包后的非根处理器中断报文缓存至与中断请求目的计算簇控制单元63对应的中断报文缓存FIFO 631中;

B14. 若中断报文缓存FIFO 631非空,则将非根处理器中断请求传输至与之对应的计算簇控制单元63;

B15. 计算簇控制单元63在收到非根处理器中断请求后进一步将非根处理器中断请求传输至计算簇交互中断控制单元64实现对非根处理器中断请求相关配置获取;

B16. 计算簇交互中断控制单元64将非根处理器中断请求配置反馈回计算簇控制单元63,进而计算簇控制单元63进行中断响应,也就是反馈中断交互命令;

B17. 计算簇控制单元63反馈的非根处理器中断交互命令需经计算簇控制单元重定向模块633实现计算簇和核物理ID的重定向,具体:i/2到i-1号计算簇控制单元63重定向至非根处理器0到i号计算簇31,其中i/2号计算簇控制单元63重定向至非根处理器0到1号计算簇31,i/2+1号计算簇控制单元63重定向至非根处理器2到3号计算簇31,依次类推,i-1号重定向至非根处理器i-2到i-1号计算簇31,与此同时计算簇控制单元63中的0到2n+1号核控制单元中0到n号和n+1到2n+1号分别重定向为相邻两个计算簇31中0到n号核;

B18. 重定向后的非根处理器中断交互命令经中断报文打包单元634打包形成非根处理器中断交互报文,其中路由中间目的地为根处理器的处理器间高速互连接口1,最终目的地为非根处理器重定向后的计算簇31;

B19. 根处理器中断控制单元6中的中断报文仲裁单元62对接收到的非根处理器中断交互命令报文进行仲裁以防止出现某一非根处理器中断交互命令报文一直反馈不回中断请求目的计算簇31的情况;

B20. 步骤B19仲裁后的非根处理器中断交互命令报文经片上网络2路由至根处理器的处理器间高速互连接口1;

B21. 根处理器的处理器间高速互连接口1进一步将非根处理器中断交互命令报文传输至非根处理器的处理器间高速互连接口1;

B22. 非根处理器的片上网络2将经处理器间高速互连接口1传输过来的非根处理器中断交互命令报文传输至非根处理器的片上网络2;

B23. 非根处理器的片上网络2将非根处理器中断交互命令报文传输至与非根处理器中断请求目的计算簇31对应的中断打包解包模块32;

B24. 中断打包解包模块32中的中断报文解包子模块对接收到非根处理器中断交互命令报文进行解包处理;

B25. 经中断报文解包子模块解包后的非根处理器中断交互命令传输至中断请求目的计算簇31。

综上所述,本实施例支持单根双处理器中断通信的的技术路线可以分为四大部分:1、中断控制单元在不增加计算簇控制单元数量的前提下将每个计算簇控制单元中核控制单元的数量增加为计算簇中核数量的两倍以实现单根双处理器中断请求的重定向,具体而言修改后的单个计算簇控制单元可实现对两个计算簇的控制,同时修改后根处理器中断控制单元中低半部分编号和高半部分编号的计算簇控制单元分别实现对根处理器和非根处理器中断控制。2、根处理器计算簇在发起中断请求(含核私有中断和机间中断)后首先需要通过计算簇重定向模块以重定向至根处理器中断控制单元中编号低半部分的计算簇控制单元,其次经中断报文打包单元形成中断报文上片上网络,其路由目的地为根处理器中断控制单元。与此同时,IO和存储设备发起的共享设备中断和IO设备消息中断也需经中断报文打包单元形成中断报文上片上网络,其路由目的地也为根处理器中断控制单元。3、非根处理器计算簇在发起中断请求(含核私有中断和机间中断)后首先需要通过计算簇重定向模块以重定向至根处理器中断控制单元中编号高半部分的计算簇控制单元,其次经中断报文打包单元形成中断报文上非根处理器片上网络,进而路由至非根处理器的处理器间高速互连接口,再经根处理器间高速互连接口传输至根处理器片上网络,进而再路由至根处理器中断控制单元。与此同时,IO和存储设备发起的共享设备中断和IO设备消息中断也需经中断报文打包单元形成中断报文上非根处理器片上网络,其路由中间目的也为非根处理器间高速互连接口,再经根处理器间高速互连接口传输至根处理器片上网络,进而再路由至根处理器中断控制单元。4、根处理器中断控制单元接收到中断请求,通过计算簇控制单元编号区分出中断请求源是根处理器还是非根处理器,然而在中断控制单元实现对中断管理的过程需要与中断请求目的计算簇(可以位于根处理器和非根处理器中)进行中断命令交互,因此根处理器计算簇控制单元首先需要通过与之对应的计算簇控制单元重定向模块实现中断请求目的计算簇的重映射,具体:编号低半部分计算簇控制单元重定向至根处理器的计算簇,编号高半部分计算簇控制单元重定向至非根处理器的计算簇。其次,完成重定向后的中断交互命令需经中断报文打包单元形成中断报文上片上网络,其中重定向至根处理器的中断交互命令报文的路由目的地为根处理器计算簇,而重定向至非根处理器的中断交互命令报文的路由需经中间目的地处理器间高速互连接口后路由至非根处理器计算簇。

针对处理器计算簇中计算簇重定向模块和中断控制单元中计算簇控制单元重定向模块,其功能分别是实现中断请求发起时与根处理器中断控制单元中计算簇控制单元的重定向和进行中断命令交互时与根处理器和非根处理器计算簇的重定向,其根本目的在于双处理器互连时需要保证单根模式,即虽根处理器和非根处理器中都设计实现了中断控制单元,但是在实际工作时只有根处理器中的中断控制单元在工作,根处理器和非根处理器都将所有中断请求路由至根处理器的中断控制单元。与此同时,保障单根双处理器中断通信能够正常工作中断报文打包单元起到重要的作用,根处理器计算簇中断打包解包模块中中断报文打包单元将中断报文路由目的地配置为其中断控制单元,而非根处理器计算簇中断打包解包模块中中断报文打包单元将中断报文路由中间目的地配置为非根处理器间高速互连接口和最终目的地为根处理器中断控制单元。此外,根处理器中断控制单元中中断报文打包单元依据所在计算簇控制单元编号配置不同的路由目的地,其中与编号低半部分计算簇控制单元对应的中断报文打包单元将形成的中断报文路由目的地配置为根处理器计算簇,而与编号高半部分计算簇控制单元对应的中断报文打包单元将形成的中断报文路由信息增加中间路由目的为根处理器间高速互连接口和最终目的地为非根处理器计算簇。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:利用缓存优化DMA传输

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!