基于RISC-V指令集的中断控制架构及控制方法.pdf

上传人:v**** 文档编号:14524259 上传时间:2024-05-19 格式:PDF 页数:11 大小:1.06MB
收藏 版权申诉 举报 下载
基于RISC-V指令集的中断控制架构及控制方法.pdf_第1页
第1页 / 共11页
基于RISC-V指令集的中断控制架构及控制方法.pdf_第2页
第2页 / 共11页
基于RISC-V指令集的中断控制架构及控制方法.pdf_第3页
第3页 / 共11页
文档描述:

《基于RISC-V指令集的中断控制架构及控制方法.pdf》由会员分享,可在线阅读,更多相关《基于RISC-V指令集的中断控制架构及控制方法.pdf(11页完成版)》请在专利查询网上搜索。

1、(19)国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 202410010519.1(22)申请日 2024.01.04(71)申请人 南京中科微电子有限公司地址 210023 江苏省南京市玄武区玄武大道699-27号徐庄软件园研发三区物联网中心B201室(72)发明人 于典肖时茂(74)专利代理机构 无锡市大为专利商标事务所(普通合伙)32104专利代理师 殷红梅(51)Int.Cl.G06F 9/32(2018.01)G06F 9/30(2018.01)G06F 9/38(2018.01)(54)发明名称基于RISC-V指令集的中断控制架构及控制方。

2、法(57)摘要本发明关于基于RISCV指令集的中断控制架构及控制方法,涉及处理器中断处理技术领域。该方法包括:中断私有存储器响应于接收到中断压栈指令,从影子寄存器中获取通用寄存器数据以及CSR数据并存储,中断压栈指令与中断压栈状态对应,且基于中断信号触发;和/或,中断私有存储器响应于接收到中断出栈指令,基于通用寄存器数据以及CSR数据生成覆盖数据;向通用寄存器以及CSR发送覆盖数据,中断出栈指令与中断出栈状态对应,且基于恢复信号触发。中断进程前寄存器中处理的数据经过影子寄存器和中断私有存储器以堆栈形式进行临时存储,并在处理器进程恢复后重新返回至对应的寄存器,在架构简单的情况下,提高处理器运行中。

3、断程序效率。权利要求书2页 说明书6页 附图2页CN 117539544 A2024.02.09CN 117539544 A1.一种基于RISCV指令集的中断控制架构,其特征在于,所述架构包括系统存储器、地址存储器、中断私有存储器、通用寄存器、控制与状态寄存器CSR以及影子寄存器;所述通用寄存器以及所述CSR分别与所述影子寄存器连接;所述影子寄存器与所述中断私有存储器连接;所述中断私有存储器以及所述地址存储器通过总线与所述系统存储器连接;所述影子寄存器用于存储通用寄存器数据以及CSR数据,所述CSR数据来源于所述CSR,所述通用寄存器数据来源于所述通用寄存器;当所述架构处于中断压栈状态时,所述。

4、中断私有存储器接收所述影子寄存器发送的所述通用寄存器数据以及所述CSR数据;当所述架构处于中断出栈状态时,所述中断私有存储器向所述通用寄存器以及所述CSR发送覆盖数据;所述中断压栈状态基于中断信号触发;所述中断出栈状态基于恢复信号触发。2.根据权利要求1所述的基于RISCV指令集的中断控制架构,其特征在于,所述影子寄存器包括影子通用子寄存器以及影子CSR子寄存器;所述影子通用子寄存器与所述通用寄存器连接;所述影子CSR子寄存器与所述CSR连接。3.根据权利要求1所述的基于RISCV指令集的中断控制架构,其特征在于,所述影子寄存器包括通用数据存储空间以及控制和状态存储空间;所述通用数据存储空间与。

5、所述通用寄存器的数据格式对应;所述控制和状态存储空间与所述CSR的数据格式对应。4.根据权利要求1所述的基于RISCV指令集的中断控制架构,其特征在于,所述影子寄存器实现为d触发器。5.一种基于RISCV指令集的中断控制架构的控制方法,其特征在于,所述方法应用于如权利要求1至4任一所述的基于RISCV指令集的中断控制架构中,所述方法包括:中断私有存储器响应于接收到中断压栈指令,从影子寄存器中获取通用寄存器数据以及CSR数据并存储,所述中断压栈指令与中断压栈状态对应,且基于中断信号触发;和/或,所述中断私有存储器响应于接收到中断出栈指令,基于所述通用寄存器数据以及所述CSR数据生成覆盖数据;向所。

6、述通用寄存器以及所述CSR发送所述覆盖数据,所述中断出栈指令与中断出栈状态对应,且基于恢复信号触发。6.根据权利要求5所述的基于RISCV指令集的中断控制架构的控制方法,其特征在于,所述中断私有存储器响应于接收到中断压栈指令,从所述影子寄存器中获取通用寄存器数据以及CSR数据并存储之前,包括:通用寄存器复制所述通用寄存器数据,并存储至所述影子通用寄存器中;CSR复制所述CSR数据,并存储至所述影子寄存器中。7.根据权利要求5所述的基于RISCV指令集的中断控制架构的控制方法,其特征在于,所述中断私有存储器响应于接收到中断压栈指令,从所述影子寄存器中获取通用寄存器数据以及CSR数据并存储之前,包。

7、括:权利要求书1/2 页2CN 117539544 A2所述影子寄存器在一个时钟周期内从所述通用寄存器中获取所述通用寄存器数据,并在同时钟周期内从所述CSR中获取所述CSR数据。8.根据权利要求5所述的基于RISCV指令集的中断控制架构的控制方法,其特征在于,所述中断私有存储器中存储有历史数据;所述方法还包括:所述中断私有存储器响应于接收到中断压栈指令,且所述中断私有存储器的存储空间达到存储阈值,从地址存储器中获取与历史数据对应的数据转移地址;基于所述数据转移地址向系统存储器发送所述历史数据。9.根据权利要求8所述的基于RISCV指令集的中断控制架构的控制方法,其特征在于,所述方法还包括:所述。

8、中断私有存储器响应于接收到所述中断出栈指令,确定所述地址存储器中的数据转移地址的存在性;所述中断私有存储器响应于存在所述数据转移地址,基于所述数据转移地址从所述系统存储器中获取所述历史数据并存储。10.根据权利要求5所述的基于RISCV指令集的中断控制架构的控制方法,其特征在于,所述中断压栈指令以及所述中断出栈指令基于所述RISCV指令集生成。权利要求书2/2 页3CN 117539544 A3基于RISCV指令集的中断控制架构及控制方法技术领域0001本发明涉及处理器中断处理技术领域,特别涉及一种基于RISCV指令集的中断控制架构及控制方法。背景技术0002随着芯片的性能越来越高,芯片的算力。

9、已经成为衡量一款处理器优劣的重要指标。而随着芯片的功能越来越复杂,芯片上所集成的知识产权(Intellectual Property,IP)也越来越繁杂。一般来说芯片的IP越多,其内核所需要处理的中断事件也就越频繁。0003相关技术中,当有多个中断发生的时候,需要处理器能够实现中断的嵌套。传统的中断处理系统都是要借助软件实现中断嵌套时的现场保护以及现场恢复(即采用store/load这类指令来保存/恢复中断前/后的处理器寄存器状态)。0004相关技术中的中断处理实际上会消耗极多的指令数与时钟周期,来将内核中的寄存器数据搬运到系统堆栈中。发明内容0005本发明的目的在于克服已有技术中存在的不足,。

10、从而提供中断保护与恢复现场的架构及控制方法,以减少指令数和时钟周期的消耗,提高处理器运行中断程序的效率。该技术方案如下:一方面,提供了一种基于RISCV指令集的中断控制架构及控制方法,该架构包括系统存储器、地址存储器、中断私有存储器、通用寄存器、控制与状态寄存器(Control and Status Register,CSR)以及影子寄存器;通用寄存器以及CSR分别与影子寄存器连接;影子寄存器与中断私有存储器连接;中断私有存储器以及地址存储器通过总线与系统存储器连接;影子寄存器用于存储通用寄存器数据以及CSR数据,CSR数据来源于CSR,通用寄存器数据来源于通用寄存器;当架构处于中断压栈状态时。

11、,中断私有存储器接收影子寄存器发送的通用寄存器数据以及CSR数据;当架构处于中断出栈状态时,中断私有存储器向通用寄存器以及CSR发送覆盖数据;中断压栈状态基于中断信号触发;中断出栈状态基于恢复信号触发。0006在一个可选地实施例中,影子寄存器包括影子通用子寄存器以及影子CSR子寄存器;影子通用子寄存器与通用寄存器连接;影子CSR子寄存器与CSR连接。说明书1/6 页4CN 117539544 A40007在一个可选地实施例中,影子寄存器包括通用数据存储空间以及控制和状态存储空间;通用数据存储空间与通用寄存器的数据格式对应;控制和状态存储空间与CSR的数据格式对应。0008在一个可选地实施例中,。

12、影子寄存器实现为d触发器。0009另一方面,一种中断保护与恢复现场的方法,该方法应用于如上任一的中断保护与恢复现场的架构中,该方法包括:中断私有存储器响应于接收到中断压栈指令,从影子寄存器中获取通用寄存器数据以及CSR数据并存储,中断压栈指令与中断压栈状态对应,且基于中断信号触发;和/或,中断私有存储器响应于接收到中断出栈指令,基于通用寄存器数据以及CSR数据生成覆盖数据;向通用寄存器以及CSR发送覆盖数据,中断出栈指令与中断出栈状态对应,且基于恢复信号触发。0010在一个可选地实施例中,中断私有存储器响应于接收到中断压栈指令,从影子寄存器中获取通用寄存器数据以及CSR数据并存储之前,包括:通。

13、用寄存器复制通用寄存器数据,并存储至影子寄存器中;CSR复制CSR数据,并存储至影子寄存器中。0011在一个可选地实施例中,中断私有存储器响应于接收到中断压栈指令,从影子寄存器中获取通用寄存器数据以及CSR数据并存储之前,包括:影子寄存器在一个时钟周期内从通用寄存器中获取通用寄存器数据,并在同时钟周期内从CSR中获取CSR数据。0012在一个可选地实施例中,中断私有存储器中存储有历史数据;该方法还包括:中断私有存储器响应于接收到中断压栈指令,且中断私有存储器的存储空间达到存储阈值,从地址存储器中获取与历史数据对应的数据转移地址;基于数据转移地址向系统存储器发送历史数据。0013在一个可选地实施。

14、例中,该方法还包括:中断私有存储器响应于接收到中断出栈指令,确定地址存储器中的数据转移地址的存在性;中断私有存储器响应于存在数据转移地址,基于数据转移地址从系统存储器中获取历史数据并存储。0014在一个可选地实施例中,中断压栈指令以及中断出栈指令基于RISCV指令集生成。0015本发明提供的技术方案带来的有益效果至少包括:通过在常规的系统存储器以及地址存储器的架构之外增设中断私有存储器,并对应通用寄存器与CSR建立影子寄存器,作为进程中断过程中的数据缓冲寄存区,在进程中断那个过程中,架构将存在中断压栈状态与中断出栈状态,使得中断进程前寄存器中处理的数据经过影子寄存器和中断私有存储器以堆栈形式进。

15、行临时存储,并在处理器进程恢复后重新返回至对应的寄存器,在架构简单的情况下,提高处理器运行中断程序的效率。说明书2/6 页5CN 117539544 A5附图说明0016为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0017图1示出了本发明一个示例性实施例提供的一种基于RISCV指令集的中断控制架构的结构示意图。0018图2示出了本发明一个示例性实施例提供的一种基于RISCV指令集的中断控制架构的控制方法的。

16、流程示意图。0019图3示出了本发明一个示例性实施例提供的另一种基于RISCV指令集的中断控制架构的控制方法的流程示意图。具体实施方式0020为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。0021本发明提出的中断保护与恢复现场的架构以及其对应的中断保护与恢复现场的方法,能够在处理器发生中断进程时,在中断前对于数据进行存储,以实现中断保护,并在进程恢复后,将寄存器内数据重置为中断发生前时刻的状态,以实现恢复现场。相关技术中,通常借助软件,采用诸如store/load的指令实现中断保护与恢复现场功能。在此情况下,实现一次中断保护以及一次现场保护与恢复均。

17、需要消耗23个指令数,较为消耗处理器内核的性能。0022在此情况下,需要说明的是,本发明提出的中断保护与恢复现场的架构实现为处理器的一部分,在实际应用时,本发明提供的中断保护与恢复现场的架构将与处理器中的其他比较组件结合,形成相关技术中的常规处理器。或,本发明提供的中断保护与恢复现场的架构,将形成处理器内独立的中断控制模块。0023图1示出了本发明一个示例性实施例提供的一种基于RISCV指令集的中断控制架构示意图,请参考图1,该架构包括系统存储器110、地址存储器120、中断私有存储器130、通用寄存器140、控制与状态寄存器(Control and Status Register,CSR)1。

18、50以及影子寄存器160;通用寄存器以及CSR分别与影子寄存器连接;影子寄存器与中断私有存储器连接;中断私有存储器以及地址存储器通过总线与系统存储器连接;影子寄存器用于存储通用寄存器数据以及CSR数据,CSR数据来源于CSR,通用寄存器数据来源于通用寄存器;当架构处于中断压栈状态时,中断私有存储器接收影子寄存器发送的通用寄存器数据以及CSR数据;当架构处于中断出栈状态时,中断私有存储器向通用寄存器以及CSR发送覆盖数据;中断压栈状态基于中断信号触发;中断出栈状态基于恢复信号触发。0024在本发明实施例中,系统存储器、地址存储器以及中断私有存储器中的数据存储工作模式均实现堆栈的工作模式,因此,与。

19、系统存储器、地址存储器以及中断私有存储器对应的数据内容为系统堆栈、地址堆栈以及中断私有堆栈。地址存储器中记录有数据在系统存储器当中的存储位置,中断私有存储器可以基于地址存储器中存储的地址,从系统存储器中进行数据获取。说明书3/6 页6CN 117539544 A60025在本发明实施例中,影子寄存器为通用寄存器与CSR创建数据块的临时存储空间。在一个示例中,影子寄存器存储的每条数据的具体数据内容为,通用寄存器中17个寄存器单位空间存储的数据,以及CSR中3个寄存器单位空间中存储的数据,共计20个寄存器单位空间中的数据。可选地,影子寄存器每次寄存的数据即为该格式的一个数据块。0026在一个可选的。

20、实施例中,对应通用寄存器以及CSR中的寄存器分配形式,影子寄存器包括影子通用子寄存器以及影子CSR子寄存器,分别对于通用寄存器以及CSR中的数据进行存储。在此情况下,来自于通用寄存器的数据为通用寄存器数据,来自于CSR的数据为CSR数据。影子通用子寄存器与通用寄存器连接;影子CSR子寄存器与CSR连接。0027在一个示例中,对应分配存储空间时,影子寄存器包括通用数据存储空间以及控制和状态存储空间;通用数据存储空间与通用寄存器的数据格式对应;控制和状态存储空间与CSR的数据格式对应。0028可选地,影子寄存器实现为d触发器。0029基于上述说明,图2示出了本发明一个示例性实施例提供的一种基于RI。

21、SCV指令集的中断控制架构的控制方法的流程示意图,以该方法应用于如图1所示的中断保护与恢复现场的架构为例进行说明,该方法包括:步骤201,中断私有存储器响应于接收到中断压栈指令,从影子寄存器中获取通用寄存器数据以及CSR数据并存储。0030本发明实施例中,对应中断保护过程,中断私有存储器将收到中断压栈指令,该中断压栈指令用于指示中断私有存储器进行中断保护,即从影子寄存器中以堆栈形式进行通用寄存器数据以及CSR数据的获取。在此情况下,由于影子寄存器以时钟周期作为数据获取周期,获取通用寄存器中实时更新的通用寄存器数据,以及CSR寄存器中,实时更新的CSR数据,因此,中断私有存储器获取的通用寄存器数。

22、据与中断信号的发生是同时间周期的,具有高时效性,即中断压栈指令能够在一个时钟周期内执行完成。在本发明实施例中,中断压栈指令与中断压栈状态对应,且基于中断信号触发。0031步骤202,中断私有存储器响应于接收到中断出栈指令,基于通用寄存器数据以及CSR数据生成覆盖数据。0032需要说明的是,步骤202至步骤203所示的过程为对应恢复现场的过程,该过程可以与步骤201所示的过程相互独立执行,也可以在步骤201之后,当与中断保护与恢复现场的架构接收到恢复信号后执行,本发明对于中断保护过程与恢复现场过程时序不做限定。0033可选地,在本发明实施例中,影子寄存器允许在多个时间周期内,分阶段将一个数据块中。

23、的内容写入中断私有存储器中。0034步骤203,中断私有存储器向通用寄存器以及CSR发送覆盖数据。0035在本发明实施例中,中断私有存储器在中断保护过程当中接收到了中断出栈指令后,即生成对应的覆盖数据,并发送至通用寄存器以及CSR中,以使通用寄存器与CSR在恢复工作后,其中数据恢复至中断保护过程发生之前的时钟周期。0036需要说明的是,在本发明实施例中,中断压栈指令以及中断出栈指令基于RISCV指令集生成。0037综上所述,本发明实施例提供的架构,通过在常规的系统存储器以及地址存储器的架构之外增设中断私有存储器,并对应通用寄存器与CSR建立影子寄存器,作为进程中断说明书4/6 页7CN 117。

24、539544 A7过程中的数据缓冲寄存区,在进程中断那个过程中,架构将存在中断压栈状态与中断出栈状态,使得中断进程前寄存器中处理的数据经过影子寄存器和中断私有存储器以堆栈形式进行临时存储,并在处理器进程恢复后重新返回至对应的寄存器,在架构简单的情况下,提高处理器运行中断程序的效率。0038图3示出了本发明一个示例性实施例提供的另一种基于RISCV指令集的中断控制架构的控制方法的流程示意图,以该方法应用于如图1所示的中断保护与恢复现场的架构中为例进行说明,该方法包括:步骤301,通用寄存器复制通用寄存器数据,并存储至影子寄存器中。0039步骤302,CSR复制CSR数据,并存储至影子寄存器中。0。

25、040该过程即为在中断保护过程发生之前,通用寄存器与CSR复制自身必要数据,并存储至影子寄存器中的过程。可选地,如上实施例中所示通用寄存器将复制17个单位存储空间的数据块,数据形式为(ra、tp、t0、t1、t2、a0、a1、a2、a3、a4、a5、a6、a7、t3、t4、t5、t6),CSR将复制3个单位存储空间的数据块,数据形式为(mepc、mcause、mstatus)。0041步骤303,中断私有存储器响应于接收到中断压栈指令,从影子寄存器中获取通用寄存器数据以及CSR数据并存储。0042该过程与步骤201所示的过程一致,在此不作赘述。0043步骤304,中断私有存储器响应于接收到中断。

26、压栈指令,且中断私有存储器的存储空间达到存储阈值,从地址存储器中获取与历史数据对应的数据转移地址。0044步骤305,中断私有存储器基于数据转移地址向系统存储器发送历史数据。0045步骤304与步骤305示出了中断私有存储器在接收到中断压栈指令,但中断私有存储器中数据已存储满的情况,在此情况下,中断私有存储器将调用系统存储器与地址存储器,将中断私有存储器中已存储的历史数据向系统存储器进行转移。在一个示例中,在该转移过程中,中断私有存储器在将数据块写入系统存储器时,基于数据转移地址进行数据偏移后,将历史数据写入系统存储器中。示例性地,写入时,在处理器是32位的情况下,将栈指针指向的地址向低地址偏。

27、移80,以将历史数据写入系统存储器中;在处理器是64位的情况下,将栈指针指向的地址向低地址偏移160,以将历史数据写入系统存储器中。0046步骤306,中断私有存储器响应于接收到中断出栈指令,基于通用寄存器数据以及CSR数据生成覆盖数据。0047步骤307,中断私有存储器向通用寄存器以及CSR发送覆盖数据。0048步骤306至步骤307所示的过程与步骤202至步骤203所示的过程对应,在此不作赘述。0049步骤308,中断私有存储器响应于接收到中断出栈指令,确定地址存储器中的数据转移地址的存在性。0050步骤309,中断私有存储器响应于存在数据转移地址,基于数据转移地址从系统存储器中获取历史数。

28、据并存储。0051在本发明实施例中,针对中断私有存储器满的情况,中断有存储器将从地址存储器中确定数据转移地址的存在性,若存在地址,则指示系统存储器中存储有历史数据,则此时,中断私有存储器将重新通过数据转移的方式获取历史数据并进行存储。0052结合上述说明,本发明的各个实施例,利用了RISCV能够灵活地扩展指令集的优说明书5/6 页8CN 117539544 A8势,针对该系统微架构定制了两条自定义指令:“中断压栈”指令和“中断出栈”指令,分别替换掉中断函数入口处的压栈操作以及中断函数出口处的出栈操作,将多指令完成的压栈/出栈操作替换成自定义的单指令,能够在一定程度上减小程序大小;在执行“中断压。

29、栈”指令的时候,能够在一个时钟周期内将通用寄存器以及CSR中数据块的信息复制到它们对应的影子寄存器中,影子寄存器随后会将这些处理器的寄存器数据缓存到中断私有存储器上,如果私有存储器已经满,则会用地址存储器记录当前影子寄存器指向的地址,并把中断私有存储器中最早的数据传输到系统存储器中。0053在一个示例中,以RISCV的Timer Interrupt为例,当mtime寄存器的值大于等于mtimecmp中的值的时候,计数器会产生一个计时器中断信号给处理器,这时如果处理器没有接受到更高优先级中断的话,会触发Timer Interrupt,随后程序会进入到trap_entry中。随后程序执行到自定义压。

30、栈指令Push,此时在硬件上会在一个周期将通用寄存器以及CSR中数据块的信息复制到它们对应的影子寄存器中。压栈指令并不会引起处理器流水线的阻塞,会继续执行后续的指令,并进入Timer Interrupt函数,执行中断程序,与此同时在硬件上影子寄存器会将这些处理器的寄存器数据缓存到中断私有堆栈上,如果中断私有存储器已经满,则会用地址存储器记录当前影子寄存器指向的地址,并把中断私有堆栈中最早的数据传输到系统存储器中。当Timer Interrupt中断程序执行完毕后会返回到trap_entry中core_trap_handler的下一条指令,即自定义出栈指令Pop。在执行自定义出栈指令Pop的时候。

31、,在硬件上会将中断私有存储器中栈顶的一个数据块大小的数据依次写回到通用寄存器以及CSR中。可选地,执行Pop指令的时候可能会引起处理器流水线阻塞,具体阻塞的时间取决于私有堆栈的读端口数目以及读端口位宽。如果地址存储器中存在有效地址数据,则在执行完Pop指令后将地址存储器中栈顶地址对应的系统存储器中栈顶的一个数据块大小的数据依次写回到中断私有存储器的栈底。0054综上所述,本发明实施例提供的方法,通过在常规的系统存储器以及地址存储器的架构之外增设中断私有存储器,并对应通用寄存器与CSR建立影子寄存器,作为进程中断过程中的数据缓冲寄存区,在进程中断那个过程中,架构将存在中断压栈状态与中断出栈状态,使得中断进程前寄存器中处理的数据经过影子寄存器和中断私有存储器以堆栈形式进行临时存储,并在处理器进程恢复后重新返回至对应的寄存器,在架构简单的情况下,提高处理器运行中断程序的效率。0055上述仅为本发明的可选实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说明书6/6 页9CN 117539544 A9图 1图 2说明书附图1/2 页10CN 117539544 A10图 3说明书附图2/2 页11CN 117539544 A11。

展开阅读全文
内容关键字: 基于 RISC 指令 中断 控制 架构 方法
关于本文
本文标题:基于RISC-V指令集的中断控制架构及控制方法.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/14524259.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1