CN110865969A - 一种支持可扩展处理器机间中断通信的方法和装置 - Google Patents
一种支持可扩展处理器机间中断通信的方法和装置 Download PDFInfo
- Publication number
- CN110865969A CN110865969A CN201911070386.2A CN201911070386A CN110865969A CN 110865969 A CN110865969 A CN 110865969A CN 201911070386 A CN201911070386 A CN 201911070386A CN 110865969 A CN110865969 A CN 110865969A
- Authority
- CN
- China
- Prior art keywords
- inter
- interrupt
- processor
- machine
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及微处理器的微体系结构设计领域,本发明公开了一种支持可扩展处理器机间中断通信的方法和装置,本发明通过指定的机间中断响应处理器响应任意源处理器的中断请求,步骤包括通过片上网络和处理器间高速互连接口接收中断请求后解包并缓存,缓存被调度后获取相关配置发出有效的机间中断Ack,根据缓存的信息通知对应的编号为i的计算簇控制单元;然后分别将机间中断Ack打包仲裁输出至源处理器,并通过机间中断响应处理器进行跨处理器中断响应生成机间中断响应并打包成为机间中断响应报文并发送给对应的计算簇。本发明可支持处理器数量的扩展实现处理器机间中断通信,具有高性能、开销小、易于实现、使用灵活的优点。
Description
技术领域
本发明涉及微处理器的微体系结构设计领域,具体涉及一种支持可扩展处理器机间中断通信的方法和装置。
背景技术
为了提高处理器性能,目前最为通用的方法包括提升处理器的工作频率以及增加处理器的核数,其中处理器的性能遵循着摩尔定律,这很大原因得益于工艺的改进,而处理器工作频率的提升有限,同时一味增加处理器的核数一方面导致处理器芯片面积越来越大,另一方面处理器核之间的互连通信和数据一致性维护也变得异常复杂。在高性能处理器中,中断是一种行之有效的保证处理器性能方法,即在相关中断触发之前,处理器可以执行程序不用轮询相关状态,只有中断被触发时,处理器将相关工作现场进行压栈保护后再跳转至中断服务程序进行相关处理,待中断处理结束又进行弹栈处理跳回至原有处理程序。与此同时,中断依据发起源的不同存在不同类型划分,其中针对软件发起进行任务调度的中断称为机间中断。在多核处理器中,软件依据工作任务和处理器核的空闲可以使用该类中断进行任务划分和调度以最大程度加快程序的执行,进而提升处理器的性能。
在增加处理器核数量的方法提升性能收效越来越小的背景下,通过高速直连接口使不同处理器能够互连是发展趋势,然而要发挥不同处理器的性能必须要能够提供对跨处理器机间中断通信的支持。机间中断的状态存在IDLE、Pending和Active,其中在机间中断触发前是处于IDLE状态;当机间中断被触发后(也就是机间中断请求被发起)状态从IDLE变成Pending状态;在收到机间中断响应命令后机间中断由Pending状态转变成Active状态;在收到机间中断处理完成命令后由Active状态又转变成IDLE状态,同时反馈机间中断处理完成Ack命令;在发出低功耗和清除命令时不管处于何种状态都将直接回到IDLE状态。
当发起跨处理器机间中断请求,在片上网络保证机间中断请求报文能够正常路由至目的处理器前提下,对于机间中断约定是发起机间中断请求的源计算簇必须在收到机间中断请求Ack报文后才能发起下一次的机间中断请求,因此跨处理器机间中断请求Ack报文要如何返回至源请求计算簇是需要保证的。同时,值得注意的是处理器内中断控制单元如何能够区分机间中断请求是来自本处理器还是来自跨处理器也是一个需要解决的问题。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种支持可扩展处理器机间中断通信的方法和装置,本发明可支持处理器数量的扩展实现处理器机间中断通信,具有高性能、开销小、易于实现、使用灵活的优点。
为了解决上述技术问题,本发明采用的技术方案为:
一种支持可扩展处理器机间中断通信的方法,通过指定的机间中断响应处理器响应任意源处理器的机间中断广播请求或机间中断请求,且响应步骤包括:
1)通过片上网络和处理器间高速互连接口接收来自源处理器的机间中断广播请求或机间中断请求;
2)将机间中断广播请求或机间中断请求解包;
3)将解包后的机间中断广播请求或机间中断请求、源处理器信息和源计算簇信息分别缓存;
4)在缓存的机间中断广播请求或机间中断请求被调度输出后,将该机间中断广播请求或机间中断请求转发至计算簇交互中断控制单元获取相关配置,再根据获取的相关配置发出有效的机间中断Ack,同时根据缓存的源处理器信息和源计算簇信息通知对应的编号为i的计算簇控制单元;
5)将机间中断Ack打包形成机间中断Ack报文,将机间中断Ack报文进行仲裁,再将机间中断Ack报文被仲裁输出时将其通过片上网络和处理器间高速互连接口输出至源处理器;同时,编号为i的计算簇控制单元进行跨处理器中断响应生成机间中断响应并打包成为机间中断响应报文,将将机间中断响应报文通过片上网络路由至编号为i的计算簇的前端进行解包,如果该机间中断响应报文对应的原始请求为机间中断请求,则直接发送给编号为i的计算簇内发起机间中断请求的核;如果该机间中断响应报文对应的原始请求为机间中断广播请求,则发送给编号为i的计算簇内除发起机间中断请求的核以外的所有核。
可选地,步骤1)之前还包括源处理器发起机间中断请求的步骤,详细步骤包括:
1.1)源处理器的某个计算簇发起中断请求;
1.2)判断中断请求是否为机间中断广播,如果是机间中断广播则打包生成机间中断广播请求;如果不是机间中断广播,则打包生成机间中断请求;
1.2)将机间中断广播请求或机间中断请求通过片上网络和处理器间高速互连接口发送给指定的机间中断响应处理器。
可选地,步骤5)之后还包括源处理器处理机间中断Ack报文的步骤,详细步骤包括:
5.1)源处理器通过处理器间高速互连接口和片上网络接收机间中断Ack报文;
5.2)对机间中断Ack报文进行解包处理;
5.3)对机间中断Ack报文对应的原始请求类型进行判断,如果原始请求为机间中断请求,则直接发送给编号为i的计算簇内发起机间中断请求的核;如果该机间中断响应报文对应的原始请求为机间中断广播请求,则发送给编号为i的计算簇内除发起机间中断请求的核以外的所有核。
可选地,步骤5)将机间中断Ack报文进行仲裁时采用的策略为轮询策略。
本发明还提供一种支持可扩展处理器机间中断通信的装置,包括机间中断响应处理器和至少一个处理器,所述处理器和机间中断响应处理器均包括:
处理器间高速互连接口,用于实现处理器和机间中断响应处理器间的数据通信;
片上网络,用于实现处理器和机间中断响应处理器内部的数据通信;
计算簇单元,数量为i个,用于发起中断请求和接收机间中断响应报文,且每一个计算簇单元和片上网络之间连接有一个计算簇中断打包解包模块,每一个计算簇中包括n+1个核;
中断控制单元,用于进行中断控制;
所述中断控制单元包括:
中断报文解包单元,用于将输入中断控制单元的中断报文进行解包输入;
中断报文仲裁单元,用于将中断控制单元输出的中断报文进行仲裁输出;
计算簇控制单元,数量为i个,用于执行中断生成机间中断响应,每一个计算簇控制单元均包括n+个核控制单元,每一个计算簇控制单元的输入端连接有用于缓存输入中断请求的中断缓存FIFO 、用于将输出的机间中断响应打包的中断报文打包单元,所述中断缓存FIFO 的输入端和中断报文解包单元相连,所述中断报文打包单元的输出端和中断报文仲裁单元相连;
计算簇交互中断控制单元,用于为计算簇控制单元执行中断生成机间中断响应获取中断请求所需的相关配置;
所述机间中断响应处理器还包括跨处理器代理单元,所述跨处理器代理单元的输入端和中断报文解包单元相连,所述跨处理器代理单元用于代理响应任意源处理器的机间中断广播请求或机间中断请求。
可选地,所述跨处理器代理单元包括:
跨处理器机间中断源信息缓存FIFO,用于换簇解包后的源处理器信息和源计算簇信息,其输入端和中断报文解包单元相连;
跨处理器机间中断报文缓存FIFO,用于换簇解包后的机间中断广播请求或机间中断请求,其输入端和中断报文解包单元相连;
跨处理器代理控制单元,用于将调度输出的机间中断广播请求或机间中断请求转发至计算簇交互中断控制单元获取相关配置,再根据获取的相关配置发出有效的机间中断Ack,同时根据缓存的源处理器信息和源计算簇信息通知对应的编号为i的计算簇控制单元;
中断处理命令交互代理,用于配合跨处理器代理控制单元生成有效的机间中断Ack;在上电过程中跨处理器代理控制单元会向中断处理命令交互代理发起下行配置命令D1,中断处理命令交互代理会反馈下行配置Ack命令报文D2,实现跨处理器代理控制单元与中断处理命令交互代理的握手;跨处理器代理控制单元在执行中断命令交互过程中发起非跨处理器机间中断请求D3进而机间中断请求状态由IDLE转变为Pending,中断处理命令交互代理会反馈非跨处理器机间中断响应D4,也就意味着机间中断请求状态由Pending转变为Active;跨处理器代理控制单元在收到非跨处理器机间中断响应D4后会反馈非跨处理器机间中断响应Ack至中断处理命令交互代理;中断处理命令交互代理进一步发起非跨处理器机间中断完成命令D6至跨处理器代理控制单元,跨处理器代理控制单元在反馈非跨处理器机间中断完成Ack报文D7至中断处理命令交互代理的同时机间中断请求状态由Active转变为IDLE;跨处理器代理控制单元在下电过程中会向中断处理命令交互代理发起消除命令D10和低功耗命令D8,中断处理命令交互代理会分别反馈清除Ack命令D11和低功耗Ack命令至跨处理器代理控制单元;
跨处理器机间中断Ack报文打包单元,用于将机间中断Ack打包形成机间中断Ack报文,输出端和中断报文仲裁单元相连。
可选地,所述计算簇中断打包解包模块包括:
机间中断广播判断模块,用于对计算簇发出的中断请求进行类型判断,如果类型为机间中断广播请求则输出给机间中断广播生成器,如果类型为机间中断请求则输出给中断打包单元;
机间中断广播生成器,用于根据中断请求生成机间中断广播请求输出至片上网络;
中断打包单元,用于打包生成机间中断请求输出至片上网络;
中断解包单元,用于将来自片上网络的机间中断响应报文进行解包;
机间中断广播Ack判断单元,用于判断机间中断响应报文对应的中断请求类型,如果类型为机间中断广播请求则输出给对应的机间中断广播Ack收集单元,如果类型为机间中断请求则直接输出给对应的计算簇;
机间中断广播Ack收集单元,用于将收集得到的机间中断响应报文广播发送给编号为i的计算簇内除发起机间中断请求的核以外的所有核。
和现有技术相比,本发明具有下述优点:
1.高性能。由于本发明支持可扩展处理器机间中断通信,因此在程序运行时可以通过调度将任务下发分配至不同处理器上的计算簇执行,从而提高整个处理器的性能。
2. 实现代价小。本发明所提的方法只要中断控制单元在支持本处理器所有计算簇的基础上增加一个跨处理器代理控制单元、两个FIFO分别存储跨处理器机间中断请求报文和跨处理器机间中断请求的源处理器号和计算簇号以及一个中断命令交互代理,同时计算簇中每个计算簇设计集成计算簇中断打包解包模块就可以在现有的处理器设计中实现本发明的方法。
3. 使用灵活,不影响现有单处理器中断通路。本发明所提的支持可扩展处理器机间中断通信的方法不影响现有的机间中断通路。在不需要本发明可扩展处理器机间中断机制时,软件只需在发起机间中断时不配置发往非本处理器即可。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中的中断控制单元以及计算簇对应的执行装置示意图。
图3为本发明实施例中机间中断请求处理器发起机间中断请求流程示意图。
图4为本发明实施例中机间中断请求处理器处理机间中断请求Ack流程示意图。
图5为本发明实施例中机间中断响应处理器响应机间中断请求流程示意图。
图6为本发明实施例执行中断处理命令交互代理流程示意图。
具体实施方式
如图1所示,本实施例支持可扩展处理器机间中断通信的方法通过指定的机间中断响应处理器响应任意源处理器的机间中断广播请求或机间中断请求,且响应步骤包括:
1)通过片上网络和处理器间高速互连接口接收来自源处理器的机间中断广播请求或机间中断请求;
2)将机间中断广播请求或机间中断请求解包;
3)将解包后的机间中断广播请求或机间中断请求、源处理器信息和源计算簇信息分别缓存;
4)在缓存的机间中断广播请求或机间中断请求被调度输出后,将该机间中断广播请求或机间中断请求转发至计算簇交互中断控制单元获取相关配置,再根据获取的相关配置发出有效的机间中断Ack,同时根据缓存的源处理器信息和源计算簇信息通知对应的编号为i的计算簇控制单元;
5)将机间中断Ack打包形成机间中断Ack报文,将机间中断Ack报文进行仲裁,再将机间中断Ack报文被仲裁输出时将其通过片上网络和处理器间高速互连接口输出至源处理器;同时,编号为i的计算簇控制单元进行跨处理器中断响应生成机间中断响应并打包成为机间中断响应报文,将将机间中断响应报文通过片上网络路由至编号为i的计算簇的前端进行解包,如果该机间中断响应报文对应的原始请求为机间中断请求,则直接发送给编号为i的计算簇内发起机间中断请求的核;如果该机间中断响应报文对应的原始请求为机间中断广播请求,则发送给编号为i的计算簇内除发起机间中断请求的核以外的所有核。
本实施例中,步骤1)之前还包括源处理器发起机间中断请求的步骤,详细步骤包括:
1.1)源处理器的某个计算簇发起中断请求;
1.2)判断中断请求是否为机间中断广播,如果是机间中断广播则打包生成机间中断广播请求;如果不是机间中断广播,则打包生成机间中断请求;
1.2)将机间中断广播请求或机间中断请求通过片上网络和处理器间高速互连接口发送给指定的机间中断响应处理器。
本实施例中,步骤5)之后还包括源处理器处理机间中断Ack报文的步骤,详细步骤包括:
5.1)源处理器通过处理器间高速互连接口和片上网络接收机间中断Ack报文;
5.2)对机间中断Ack报文进行解包处理;
5.3)对机间中断Ack报文对应的原始请求类型进行判断,如果原始请求为机间中断请求,则直接发送给编号为i的计算簇内发起机间中断请求的核;如果该机间中断响应报文对应的原始请求为机间中断广播请求,则发送给编号为i的计算簇内除发起机间中断请求的核以外的所有核。
本实施例中,步骤5)将机间中断Ack报文进行仲裁时采用的策略为轮询策略,通过该策略可确保机间中断Ack报文得到有效调度输出。
本实施例中,机间中断响应处理器中断控制单元需支持针对多处理器互连时跨处理器机间中断请求的控制,具体工作机理包括如下步骤:S1)在上电时,针对下行配置命令需要反馈下行配置Ack命令。S2)在执行过程中,针对非跨处理器机间中断请求命令需要反馈非跨处理器机间中断响应命令;针对非跨处理器机间中断响应命令需要反馈非跨处理器机间中断处理完成命令;针对非跨处理器机间中断处理完成Ack命令需要实现屏蔽功能。S3)在执行过程中,针对跨处理器机间中断请求,跨处理器机间中断请求响应处理器缓存跨处理器机间中断请求,单一时刻只处理一个跨处理器机间中断请求。S4)按S3)跨处理器机间中断请求响应处理器在处理跨处理器机间中断请求的同时需实现对该跨处理器机间中断请求源处理器号和源计算簇等信息缓存,待被处理的跨处理器机间中断请求Ack返回时携带缓存的源处理器号和源计算簇等信息传输回跨处理器机间中断请求发起处理器,同时跨处理器机间中断请求响应处理器中放出下一个被缓存的跨处理器机间中断请求。S5)在下电时,针对清除命令和低功耗命令需要分别反馈清除Ack命令和低功耗Ack命令。
同时,本实施例计算簇中每个计算簇需要实现对跨处理器机间中断广播请求的处理,相关工作机理如下步骤:i)针对计算簇发起的跨处理器机间中断请求需要进行是否是跨处理器机间中断广播请求的判断,若为跨处理器机间中断广播请求需要针对每个处理器一一对应生成跨处理器机间中断广播请求。ii)针对计算簇收到的中断交互命令需要进行是否是跨处理器机间中断广播Ack的判断,若为跨处理器机间中断广播Ack需要收集齐每个处理器反馈的跨处理器机间中断广播Ack后才转发至计算簇。
本实施例中,中断控制单元针对跨处理器机间中断请求外所有其它中断请求需按照既定的规则进行相关的中断命令交互。本实施例中,中断控制单元针对跨处理器机间中断请求需按路由到达的前后顺序一个接一个的方式进行响应处理,以保证跨处理器机间中断请求Ack返回时携带正确的源处理器号和源计算簇号等信息。本实施例中,计算簇中每个计算簇都需要对发起的中断请求进行跨处理器机间中断广播判断以支持跨处理器机间中断广播请求,同时针对计算簇接收到的中断交互命令需进行跨处理器机间中断广播Ack判断以保证计算簇无论是否发起的跨处理器机间中断请求为广播请求与否都只形成一个跨处理器机间中断广播Ack反馈至计算器,进而确保在正确时机发出下一个跨处理器机间中断请求。
如图2所示,本实施例还提供一种支持可扩展处理器机间中断通信的装置,包括机间中断响应处理器和至少一个处理器,所述处理器和机间中断响应处理器均包括:
处理器间高速互连接口1,用于实现处理器和机间中断响应处理器间的数据通信;
片上网络2,用于实现处理器和机间中断响应处理器内部的数据通信;
计算簇单元3,数量为i个,用于发起中断请求和接收机间中断响应报文,且每一个计算簇单元3和片上网络2之间连接有一个计算簇中断打包解包模块31,每一个计算簇中包括n+1个核;
中断控制单元4,用于进行中断控制;
所述中断控制单元4包括:
中断报文解包单元41,用于将输入中断控制单元4的中断报文进行解包输入;
中断报文仲裁单元42,用于将中断控制单元4输出的中断报文进行仲裁输出;
计算簇控制单元43,数量为i个,用于执行中断生成机间中断响应,每一个计算簇控制单元43均包括n+1个核控制单元,每一个计算簇控制单元43的输入端连接有用于缓存输入中断请求的中断缓存FIFO 431、用于将输出的机间中断响应打包的中断报文打包单元432,所述中断缓存FIFO 431的输入端和中断报文解包单元41相连,所述中断报文打包单元432的输出端和中断报文仲裁单元42相连;
计算簇交互中断控制单元44,用于为计算簇控制单元43执行中断生成机间中断响应获取中断请求所需的相关配置;
所述机间中断响应处理器还包括跨处理器代理单元5,所述跨处理器代理单元5的输入端和中断报文解包单元41相连,所述跨处理器代理单元5用于代理响应任意源处理器的机间中断广播请求或机间中断请求。
如图2所示,跨处理器代理单元5包括:
跨处理器机间中断源信息缓存FIFO 51,用于换簇解包后的源处理器信息和源计算簇信息,其输入端和中断报文解包单元41相连;
跨处理器机间中断报文缓存FIFO 52,用于换簇解包后的机间中断广播请求或机间中断请求,其输入端和中断报文解包单元41相连;
跨处理器代理控制单元53,用于将调度输出的机间中断广播请求或机间中断请求转发至计算簇交互中断控制单元44获取相关配置,再根据获取的相关配置发出有效的机间中断Ack,同时根据缓存的源处理器信息和源计算簇信息通知对应的编号为i的计算簇控制单元;
中断处理命令交互代理54,用于配合跨处理器代理控制单元53生成有效的机间中断Ack;在上电过程中跨处理器代理控制单元53会向中断处理命令交互代理54发起下行配置命令D1,中断处理命令交互代理54会反馈下行配置Ack命令报文D2,实现跨处理器代理控制单元53与中断处理命令交互代理54的握手;跨处理器代理控制单元53在执行中断命令交互过程中发起非跨处理器机间中断请求D3进而机间中断请求状态由IDLE转变为Pending,中断处理命令交互代理54会反馈非跨处理器机间中断响应D4,也就意味着机间中断请求状态由Pending转变为Active;跨处理器代理控制单元53在收到非跨处理器机间中断响应D4后会反馈非跨处理器机间中断响应Ack至中断处理命令交互代理54;中断处理命令交互代理54进一步发起非跨处理器机间中断完成命令D6至跨处理器代理控制单元53,跨处理器代理控制单元53在反馈非跨处理器机间中断完成Ack报文D7至中断处理命令交互代理54的同时机间中断请求状态由Active转变为IDLE;跨处理器代理控制单元53在下电过程中会向中断处理命令交互代理54发起消除命令D10和低功耗命令D8,中断处理命令交互代理54会分别反馈清除Ack命令D11和低功耗Ack命令至跨处理器代理控制单元53;
跨处理器机间中断Ack报文打包单元55,用于将机间中断Ack打包形成机间中断Ack报文,输出端和中断报文仲裁单元42相连。
本实施例中,所述计算簇中断打包解包模块31包括:
机间中断广播判断模块311,用于对计算簇3发出的中断请求进行类型判断,如果类型为机间中断广播请求则输出给机间中断广播生成器312,如果类型为机间中断请求则输出给中断打包单元313;
机间中断广播生成器312,用于根据中断请求生成机间中断广播请求输出至片上网络2;
中断打包单元313,用于打包生成机间中断请求输出至片上网络2;
中断解包单元314,用于将来自片上网络2的机间中断响应报文进行解包;
机间中断广播Ack判断单元315,用于判断机间中断响应报文对应的中断请求类型,如果类型为机间中断广播请求则输出给对应的机间中断广播Ack收集单元316,如果类型为机间中断请求则直接输出给对应的计算簇3;
机间中断广播Ack收集单元316,用于将收集得到的机间中断响应报文广播发送给编号为i的计算簇内除发起机间中断请求的核以外的所有核。
参见图2,该装置中处理器间高速互连接口1为跨处理器机间中断请求的路由提供了接口支持;中断控制单元4中跨处理器机间中断源信息缓存FIFO 51和跨处理器机间中断报文缓存FIFO 52分别提供了对跨处理器机间中断源信息和报文的缓存,跨处理器代理控制单元53实现了对跨处理器机间中断的控制,跨处理器机间中断Ack报文打包单元55和中断处理命令交互代理54分别实现对跨处理器机间中断Ack交互命令和除跨处理器机间中断Ack交互命令外其他中断交互命令的打包处理;计算簇中机间中断广播判断模块311、机间中断广播生成器312和中断打包单元313一起完成对跨处理器机间中断广播的判断以及相应中断报文的生成,中断解包单元314、机间中断广播Ack判断单元315和机间中断广播Ack收集单元316一起实现了对中断报文的解包和机间中断请求Ack判断以及收集等功能。
如图3所示,机间中断请求处理器发起机间中断请求的实施步骤如下:
A1. 计算簇3发起机间中断请求;
A2. 机间中断广播判断模块机间中断广播判断模块311实现对步骤A1发起的机间中断请求进行是否为机间中断广播请求的判断;
A3. 针对步骤A2判断为机间中断广播请求的机间中断请求需要经机间中断广播生成器机间中断广播生成器312,实现针对每个互连的处理器一一生成机间中断广播请求报文;
A4. 针对步骤A2判断为非机间中断广播请求的机间中断请求需要经中断打包单元中断打包单元313生成跨处理器机间中断请求报文;
A5. 步骤A3和A4生成的中断报文均上传至片上网络2,实现路由至处理器间高速互连接口处理器间高速互连接口1;
A6. 步骤A5路由的跨处理器机间中断报文经处理器间高速互连接口1传输至跨处理器机间中断请求目的处理器。
如图4所示,源处理器处理机间中断请求Ack的实施步骤如下:
B1. 计算簇打包解包模块中中断解包单元中断解包单元314接收经片上网络2传输过来的跨处理器机间中断Ack报文并对其进行解包处理;
B2. 机间中断广播Ack判断模块机间中断广播Ack判断单元315实现对步骤B1解包的跨处理器机间中断Ack交互命令进行是否为机间中断广播Ack的判断,目的是生成唯一跨处理器机间中断Ack至发起机间中断请求的计算簇;
B3. 针对步骤B2判断为机间中断广播Ack的交互命令需要经机间中断广播Ack收集单元机间中断广播Ack收集单元316,实现对每个处理器反馈的机间中断广播Ack收集,并在收集完成时生成唯一跨处理器机间中断广播Ack;
B4. 针对步骤B2判断为非机间中断广播Ack的交互命令和经步骤B3生成的跨处理器机间中断广播Ack均传输至发起机间中断请求计算簇3,待收到机间中断Ack后计算簇3才能发起下一个机间中断请求。
图5给出了机间中断响应处理器响应机间中断请求的实施步骤,具体如下:
C1. 跨处理器机间中断请求经机间中断请求发起处理器中处理器间高速互连接口1传输至机间中断请求响应处理器中处理器间高速互连接口1;
C2. 经步骤C1将跨处理器机间中断报文传输至片上网络2;
C3. 经步骤C2将跨处理器机间中断报文进一步路由中断控制单元4中中断报文解包单元(7);
C4. 解包后的跨处理器机间中断报文缓存至跨处理器机间中断报文缓存FIFO跨处理器机间中断报文缓存FIFO 52;
C5. 解包后的跨处理器机间中断报文中源处理器信息和源计算簇信息缓存至跨处理器机间中断信息缓存FIFO跨处理器机间中断源信息缓存FIFO 51;
C6. 若跨处理器机间中断报文缓存FIFO 52非空,跨处理器代理控制单元53每次只读取跨处理器机间中断报文缓存FIFO 52中一项;
C7.跨处理器代理控制单元53将跨处理器机间中断请求转发至计算簇交互中断控制单元4计算簇交互中断控制单元44;
C8.计算簇交互中断控制单元44将跨处理器机间中断响应反馈至跨处理器代理控制单元53,跨处理器代理控制单元53再发出有效跨处理器机间中断Ack,需要说明的是只有执行此步骤后步骤C6才能读取跨处理器代理控制单元53中下一项跨处理器机间中断请求;
C9. 跨处理器机间中断Ack经跨处理器机间中断Ack报文打包单元55形成中断报文;
C10. 经步骤C9打包形成的跨处理器机间中断Ack报文传输至中断报文仲裁单元42;
C11. 仲裁后的跨处理器机间中断Ack报文传输至片上网络2;
C12.片上网络2进一步将跨处理器机间中断Ack报文路由至处理器间高速互连接口1,后续操作流程如之前图4描述;
C13. 在计算簇交互中断控制单元44执行步骤C8的同时依据跨处理器机间中断请求目标计算簇信息通知对应的计算簇控制单元43;
C14. 计算簇控制单元43进行跨处理器机间中断响应,即相关中断命令交互传输至中断报文打包单元432;
C15. 经中断报文打包单元432打包后的跨处理器机间中断响应报文传输至中断报文仲裁单元42;
C16. 中断报文仲裁单元42进一步将跨处理器机间中断响应报文传输至片上网络2;
C17. 经片上网络2将跨处理器机间中断响应报文路由至编号为i的计算簇3中断打包解包模块中的中断解包单元314;
C18. 解包后的跨处理器机间中断响应命令需通过机间中断广播Ack判断模块;
C19. 由于跨处理器机间中断响应命令非机间中断广播Ack,因此将跨处理器机间中断响应命令传输至对应计算簇i进行进一步操作。
图6给出了中断处理命令交互代理54的执行流程图,具体如下:
S1. 跨处理器代理控制单元53在上电过程会向中断处理命令交互代理54发起下行配置命令(D1),中断处理命令交互代理54会反馈下行配置Ack命令报文(D2),此步骤是实现跨处理器代理控制单元53与中断处理命令交互代理54的握手;
S2. 跨处理器代理控制单元53在执行中断命令交互过程中发起非跨处理器机间中断请求D3进而机间中断请求状态由IDLE转变为Pending,中断处理命令交互代理54会反馈非跨处理器机间中断响应D4,也就意味着机间中断请求状态由Pending转变为Active;
S3. 跨处理器代理控制单元53在收到D4后会反馈非跨处理器机间中断响应Ack至中断处理命令交互代理54;
S4. 中断处理命令交互代理54进一步发起非跨处理器机间中断完成命令(D6)至跨处理器代理控制单元53,跨处理器代理控制单元53在反馈非跨处理器机间中断完成Ack报文D7至中断处理命令交互代理54的同时机间中断请求状态由Active转变为IDLE;
S5. 跨处理器代理控制单元53在下电过程中会向中断处理命令交互代理54发起消除命令D10和低功耗命令D8,中断处理命令交互代理54会分别反馈清除Ack命令D11和低功耗Ack命令至跨处理器代理控制单元53。
综上所述,本实施例采用的技术路线可以分为四大部分:1)中断控制单元增加跨处理器代理控制单元以实现对跨处理器机间中断请求的控制,具体包括对跨处理器机间中断的控制、跨处理器机间中断广播的控制以及本处理器内计算簇机间中断广播的控制等。2)中断控制单元增加中断命令交互代理以实现对非跨处理器中断命令交互,其中包括在上电时,监测到跨处理器代理控制单元发起下行配置命令时反馈下行配置Ack命令;在执行过程,监测到跨处理器代理控制单元发起非跨处理器机间中断请求命令反馈非跨处理器机间中断请求响应命令,监测到跨处理器代理控制单元发起非跨处理器机间中断响应Ack命令反馈非跨处理器机间中断处理完成命令,监测到跨处理器代理控制单元发起非跨处理器机间中断处理完成Ack命令实现屏蔽;在下电时,监测到跨处理器代理控制单元发起清除命令和低功耗命令分别反馈清除Ack命令和低功耗Ack命令。3)中断控制单元针对跨处理器代理控制单元增加跨处理器机间中断报文缓存FIFO、跨处理器机间中断源信息缓存FIFO和跨处理器机间中断Ack报文打包单元以实现对跨处理器机间中断请求的控制以及跨处理器机间中断请求Ack的打包,根本原则是待上一个跨处理器机间中断传输至跨处理器代理控制单元并由其发出跨处理器机间中断请求Ack命令后跨处理器机间中断报文缓存FIFO才可以流出下一个跨处理器机间中断请求。4)计算簇中每个计算簇都需要设计中断打包解包模块,实现对其发起的中断命令进行跨处理器机间中断广播监测,若为跨处理器机间中断广播请求则需要通过机间中断广播生成器针对每个处理器一一生成跨处理器机间中断广播请求。与此同时,计算簇也需要对其接收到的中断交互命令进行跨处理器机间中断广播Ack监测,若为跨处理器机间中断广播Ack命令则需要由机间中断广播Ack收集单元待收集齐每个处理器反馈的跨处理器机间中断广播Ack后方才通知对应计算簇以保证正确的机间中断处理交互。针对处理器中断控制单元中跨处理器代理控制单元,其中跨处理器机间中断报文缓存FIFO可以接收来自任意跨处理器的机间中断请求,并且在执行时该FIFO按路由到达的时间先后顺序在流出一个跨处理器机间中断请求后需待跨处理器机间中断Ack打包单元收到该机间中断Ack命令后跨处理器机间中断报文缓存FIFO方才流出下一个跨处理器机间中断请求。与此同时,在处理器上下电以及执行中断命令交互过程中,除跨处理器机间中断Ack命令外其他中断交互命令都由中断处理命令交互代理进行响应以保证正常工作。 对于计算簇而言,由每个计算簇中断打包解包模块中各个单元实现对跨处理器机间中断广播请求的判断和跨处理器机间中断广播报文的生成,以及实现对跨处理器机间中断广播Ack命令的判断和收集。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种支持可扩展处理器机间中断通信的方法,其特征在于,通过指定的机间中断响应处理器响应任意源处理器的机间中断广播请求或机间中断请求,且响应步骤包括:
1)通过片上网络和处理器间高速互连接口接收来自源处理器的机间中断广播请求或机间中断请求;
2)将机间中断广播请求或机间中断请求解包;
3)将解包后的机间中断广播请求或机间中断请求、源处理器信息和源计算簇信息分别缓存;
4)在缓存的机间中断广播请求或机间中断请求被调度输出后,将该机间中断广播请求或机间中断请求转发至计算簇交互中断控制单元获取相关配置,再根据获取的相关配置发出有效的机间中断Ack,同时根据缓存的源处理器信息和源计算簇信息通知对应的编号为i的计算簇控制单元;
5)将机间中断Ack打包形成机间中断Ack报文,将机间中断Ack报文进行仲裁,再将机间中断Ack报文被仲裁输出时将其通过片上网络和处理器间高速互连接口输出至源处理器;同时,编号为i的计算簇控制单元进行跨处理器中断响应生成机间中断响应并打包成为机间中断响应报文,将将机间中断响应报文通过片上网络路由至编号为i的计算簇的前端进行解包,如果该机间中断响应报文对应的原始请求为机间中断请求,则直接发送给编号为i的计算簇内发起机间中断请求的核;如果该机间中断响应报文对应的原始请求为机间中断广播请求,则发送给编号为i的计算簇内除发起机间中断请求的核以外的所有核。
2.根据权利要求1所述的支持可扩展处理器机间中断通信的方法,其特征在于,步骤1)之前还包括源处理器发起机间中断请求的步骤,详细步骤包括:
1.1)源处理器的某个计算簇发起中断请求;
1.2)判断中断请求是否为机间中断广播,如果是机间中断广播则打包生成机间中断广播请求;如果不是机间中断广播,则打包生成机间中断请求;
1.2)将机间中断广播请求或机间中断请求通过片上网络和处理器间高速互连接口发送给指定的机间中断响应处理器。
3.根据权利要求1所述的支持可扩展处理器机间中断通信的方法,其特征在于,步骤5)之后还包括源处理器处理机间中断Ack报文的步骤,详细步骤包括:
5.1)源处理器通过处理器间高速互连接口和片上网络接收机间中断Ack报文;
5.2)对机间中断Ack报文进行解包处理;
5.3)对机间中断Ack报文对应的原始请求类型进行判断,如果原始请求为机间中断请求,则直接发送给编号为i的计算簇内发起机间中断请求的核;如果该机间中断响应报文对应的原始请求为机间中断广播请求,则发送给编号为i的计算簇内除发起机间中断请求的核以外的所有核。
4.根据权利要求1所述的支持可扩展处理器机间中断通信的方法,其特征在于,步骤5)将机间中断Ack报文进行仲裁时采用的策略为轮询策略。
5.一种支持可扩展处理器机间中断通信的装置,其特征在于,包括机间中断响应处理器和至少一个处理器,所述处理器和机间中断响应处理器均包括:
处理器间高速互连接口(1),用于实现处理器和机间中断响应处理器间的数据通信;
片上网络(2),用于实现处理器和机间中断响应处理器内部的数据通信;
计算簇单元(3),数量为i个,用于发起中断请求和接收机间中断响应报文,且每一个计算簇单元(3)和片上网络(2)之间连接有一个计算簇中断打包解包模块(31),每一个计算簇中包括n+1个核;
中断控制单元(4),用于进行中断控制;
所述中断控制单元(4)包括:
中断报文解包单元(41),用于将输入中断控制单元(4)的中断报文进行解包输入;
中断报文仲裁单元(42),用于将中断控制单元(4)输出的中断报文进行仲裁输出;
计算簇控制单元(43),数量为i个,用于执行中断生成机间中断响应,每一个计算簇控制单元(43)均包括n+1个核控制单元,每一个计算簇控制单元(43)的输入端连接有用于缓存输入中断请求的中断缓存FIFO (431)、用于将输出的机间中断响应打包的中断报文打包单元(432),所述中断缓存FIFO (431)的输入端和中断报文解包单元(41)相连,所述中断报文打包单元(432)的输出端和中断报文仲裁单元(42)相连;
计算簇交互中断控制单元(44),用于为计算簇控制单元(43)执行中断生成机间中断响应获取中断请求所需的相关配置;
所述机间中断响应处理器还包括跨处理器代理单元(5),所述跨处理器代理单元(5)的输入端和中断报文解包单元(41)相连,所述跨处理器代理单元(5)用于代理响应任意源处理器的机间中断广播请求或机间中断请求。
6.根据权利要求5所述的支持可扩展处理器机间中断通信的装置,其特征在于,所述跨处理器代理单元(5)包括:
跨处理器机间中断源信息缓存FIFO (51),用于换簇解包后的源处理器信息和源计算簇信息,其输入端和中断报文解包单元(41)相连;
跨处理器机间中断报文缓存FIFO (52),用于换簇解包后的机间中断广播请求或机间中断请求,其输入端和中断报文解包单元(41)相连;
跨处理器代理控制单元(53),用于将调度输出的机间中断广播请求或机间中断请求转发至计算簇交互中断控制单元(44)获取相关配置,再根据获取的相关配置发出有效的机间中断Ack,同时根据缓存的源处理器信息和源计算簇信息通知对应的编号为i的计算簇控制单元;
中断处理命令交互代理(54),用于配合跨处理器代理控制单元(53)生成有效的机间中断Ack;在上电过程中跨处理器代理控制单元(53)会向中断处理命令交互代理(54)发起下行配置命令D1,中断处理命令交互代理(54)会反馈下行配置Ack命令报文D2,实现跨处理器代理控制单元(53)与中断处理命令交互代理(54)的握手;跨处理器代理控制单元(53)在执行中断命令交互过程中发起非跨处理器机间中断请求D3进而机间中断请求状态由IDLE转变为Pending,中断处理命令交互代理(54)会反馈非跨处理器机间中断响应D4,也就意味着机间中断请求状态由Pending转变为Active;跨处理器代理控制单元(53)在收到非跨处理器机间中断响应D4后会反馈非跨处理器机间中断响应Ack至中断处理命令交互代理(54);中断处理命令交互代理(54)进一步发起非跨处理器机间中断完成命令D6至跨处理器代理控制单元(53),跨处理器代理控制单元(53)在反馈非跨处理器机间中断完成Ack报文D7至中断处理命令交互代理(54)的同时机间中断请求状态由Active转变为IDLE;跨处理器代理控制单元(53)在下电过程中会向中断处理命令交互代理(54)发起消除命令D10和低功耗命令D8,中断处理命令交互代理(54)会分别反馈清除Ack命令D11和低功耗Ack命令至跨处理器代理控制单元(53);
跨处理器机间中断Ack报文打包单元(55),用于将机间中断Ack打包形成机间中断Ack报文,输出端和中断报文仲裁单元(42)相连。
7.根据权利要求5所述的支持可扩展处理器机间中断通信的装置,其特征在于,所述计算簇中断打包解包模块(31)包括:
机间中断广播判断模块(311),用于对计算簇(3)发出的中断请求进行类型判断,如果类型为机间中断广播请求则输出给机间中断广播生成器(312),如果类型为机间中断请求则输出给中断打包单元(313);
机间中断广播生成器(312),用于根据中断请求生成机间中断广播请求输出至片上网络(2);
中断打包单元(313),用于打包生成机间中断请求输出至片上网络(2);
中断解包单元(314),用于将来自片上网络(2)的机间中断响应报文进行解包;
机间中断广播Ack判断单元(315),用于判断机间中断响应报文对应的中断请求类型,如果类型为机间中断广播请求则输出给对应的机间中断广播Ack收集单元(316),如果类型为机间中断请求则直接输出给对应的计算簇(3);
机间中断广播Ack收集单元(316),用于将收集得到的机间中断响应报文广播发送给编号为i的计算簇内除发起机间中断请求的核以外的所有核。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911070386.2A CN110865969B (zh) | 2019-11-05 | 2019-11-05 | 一种支持可扩展处理器机间中断通信的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911070386.2A CN110865969B (zh) | 2019-11-05 | 2019-11-05 | 一种支持可扩展处理器机间中断通信的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110865969A true CN110865969A (zh) | 2020-03-06 |
CN110865969B CN110865969B (zh) | 2022-05-31 |
Family
ID=69653548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911070386.2A Active CN110865969B (zh) | 2019-11-05 | 2019-11-05 | 一种支持可扩展处理器机间中断通信的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110865969B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968399A (zh) * | 2012-10-22 | 2013-03-13 | 华为技术有限公司 | 多核处理器及其管理网口的复用方法 |
CN103019835A (zh) * | 2011-09-26 | 2013-04-03 | 同方股份有限公司 | 一种多核处理器中断资源优化处理系统和方法 |
US20130110931A1 (en) * | 2011-11-02 | 2013-05-02 | The Board Of Trustees Of The University Of Illinois | Scalable Peer To Peer Streaming For Real-Time Data |
CN109194430A (zh) * | 2018-08-03 | 2019-01-11 | 中国航空工业集团公司雷华电子技术研究所 | 一种基于srio的c6678分布式系统时间同步方法及系统 |
CN109246493A (zh) * | 2018-08-14 | 2019-01-18 | 西安电子科技大学 | 一种多播广播通信感知的光片上网络架构及通信方法 |
CN109933549A (zh) * | 2019-01-30 | 2019-06-25 | 中山大学 | 一种适用于risc-v处理器的中断控制器 |
-
2019
- 2019-11-05 CN CN201911070386.2A patent/CN110865969B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019835A (zh) * | 2011-09-26 | 2013-04-03 | 同方股份有限公司 | 一种多核处理器中断资源优化处理系统和方法 |
US20130110931A1 (en) * | 2011-11-02 | 2013-05-02 | The Board Of Trustees Of The University Of Illinois | Scalable Peer To Peer Streaming For Real-Time Data |
CN102968399A (zh) * | 2012-10-22 | 2013-03-13 | 华为技术有限公司 | 多核处理器及其管理网口的复用方法 |
CN109194430A (zh) * | 2018-08-03 | 2019-01-11 | 中国航空工业集团公司雷华电子技术研究所 | 一种基于srio的c6678分布式系统时间同步方法及系统 |
CN109246493A (zh) * | 2018-08-14 | 2019-01-18 | 西安电子科技大学 | 一种多播广播通信感知的光片上网络架构及通信方法 |
CN109933549A (zh) * | 2019-01-30 | 2019-06-25 | 中山大学 | 一种适用于risc-v处理器的中断控制器 |
Non-Patent Citations (1)
Title |
---|
张海金,张洵颖,肖建青: "一种多核处理器中断控制器的设计", 《微电子学与计算机》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110865969B (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1841162B1 (en) | Method and system for an os virtualization-aware network interface card | |
TWI505080B (zh) | 在電腦系統中分派任務之方法、系統及電腦程式 | |
US9703595B2 (en) | Multi-core system with central transaction control | |
JP2007079789A (ja) | 計算機システム及びイベント処理方法 | |
JP5137434B2 (ja) | データ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラム | |
US11341087B2 (en) | Single-chip multi-processor communication | |
WO2021120671A1 (zh) | 一种基于请求应答的半虚拟化i/o系统和方法 | |
CN110958189B (zh) | 一种多核fpga网络处理器 | |
JP2011008658A (ja) | データ処理装置、データ処理方法およびプログラム | |
CN107517167B (zh) | 一种数据传输控制方法、装置及SoC芯片 | |
CN110618956B (zh) | 一种bmc云平台资源池化方法与系统 | |
CN110865969B (zh) | 一种支持可扩展处理器机间中断通信的方法和装置 | |
WO2008106879A1 (fr) | Procédé et dispositif de traitement de transfert de données | |
US20020004868A1 (en) | Parallel processing system in which use efficiency of CPU is improved and parallel processing method for the same | |
US20230153153A1 (en) | Task processing method and apparatus | |
CN114546600A (zh) | 一种数据处理装置、方法和电子设备 | |
JP2005316679A (ja) | 並列演算処理装置 | |
JP5772132B2 (ja) | データ転送装置、データ転送方法および情報処理装置 | |
CN110865951B (zh) | 一种支持单根双处理器中断通信的方法和装置 | |
JP3678036B2 (ja) | 並列計算機システムにおけるモニタデータ収集方法 | |
JPS62172840A (ja) | デ−タの転送方式 | |
TW201421420A (zh) | 圖形處理單元虛擬裝置、圖形處理單元主機裝置及其圖形處理單元程式處理方法 | |
CN117312202B (zh) | 片上系统和用于片上系统的数据传输方法 | |
WO2023105578A1 (ja) | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム | |
KR101483603B1 (ko) | 통신 시스템에서 효율이 개선된 자원 제어 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |