CN109376000B - 用于risc-v架构的快速中断控制系统及方法 - Google Patents

用于risc-v架构的快速中断控制系统及方法 Download PDF

Info

Publication number
CN109376000B
CN109376000B CN201811241584.6A CN201811241584A CN109376000B CN 109376000 B CN109376000 B CN 109376000B CN 201811241584 A CN201811241584 A CN 201811241584A CN 109376000 B CN109376000 B CN 109376000B
Authority
CN
China
Prior art keywords
interrupt
register
priority
source
processor core
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.)
Active
Application number
CN201811241584.6A
Other languages
English (en)
Other versions
CN109376000A (zh
Inventor
胡振波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinlai Technology (Wuhan) Co., Ltd.
Original Assignee
Xinlai Technology Wuhan Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xinlai Technology Wuhan Co ltd filed Critical Xinlai Technology Wuhan Co ltd
Priority to CN201811241584.6A priority Critical patent/CN109376000B/zh
Publication of CN109376000A publication Critical patent/CN109376000A/zh
Application granted granted Critical
Publication of CN109376000B publication Critical patent/CN109376000B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本发明公开了一种用于RISC‑V架构的快速中断控制系统及方法,包括:匣口、中断源优先级寄存器、中断等待寄存器、优先级阈值寄存器、优先级判断模块、中断使能寄存器、中断响应寄存器、中断完成寄存器和EIP寄存器,每个中断源对应一个中断源优先级寄存器,匣口控制中断源的中断请求单一发送;中断源优先级寄存器存储中断源的优先级;中断等待寄存器用于存储表示中断等待状态的数值;优先级阈值寄存器存储中断目标的优先级阈值;优先级判断模块对比中断源和中断目标的优先级;中断使能寄存器存储屏蔽中断源的状态数值,通过在中断源与中断目标之间设置快速中断控制系统,控制中断请求的发送,达到解决在RISC‑V架构中实现中断嵌套机制问题的目的。

Description

用于RISC-V架构的快速中断控制系统及方法
技术领域
本发明涉及低功耗内核中断处理技术领域,具体涉及一种用于RISC-V架构的快速中断控制系统及方法。
背景技术
中断机制(Interrupt),即处理器核在顺序执行程序指令流的过程中突然被别的请求打断而中止执行当前的程序,转而去处理别的事情,待其处理完了别的事情,然后重新回到之前程序中断的点继续执行之前的程序指令流。其中,打断处理器执行程序指令流的“别的请求”便称之为中断请求(Interrupt Request),而中断请求的来源则称之为中断源(Interrupt Source),通常情况下,中断源主要来自外围硬件设备。而处理器转去处理“别的事情”便称之为中断服务程序(Interrupt Service Routine,ISR)。
中断处理是一种正常的机制,而非一种错误。处理器收到中断请求之后,需要保护当前程序现场,简称为保护现场。等到处理完中断服务程序之后,处理器需要恢复之前的现场,从而继续执行之前被打断的程序,简称为恢复现场。
可能存在多个中断源同时向处理器发起请求的情形,因此需要对这些中断源进行仲裁,从而选择哪个中断源被优先处理,这种情况称之为中断仲裁,同时可以给不同的中断分配优先级以便于仲裁,因此中断中存在仲裁优先级。当处理器已经在处理某个中断过程,而此时有一个优先级更高的新中断请求到来,如果处理器不响应新的中断请求,而是继续执行当前正在处理的中断服务程序,待到彻底完成后才响应新的中断请求,这种情况称处理器“不支持中断嵌套”。另一种情况是处理器终止当前的中断服务程序,转而开始响应新的中断请求,并执行其中断服务程序,则称处理器“支持中断嵌套”,并且中断嵌套可以有很多层次。若新的中断请求优先级比正在处理的中断优先级低或者相同,则不管处理是否支持中断嵌套,处理器对新的中断请求不响应,直到处理完当前的中断才响应新的中断。
RISC-V架构定义的中断分为:外部中断(External Interrupt),是指来自处理器核外的中断,譬如外部设备UART、GPIO等产生的中断;计时器中断(Timer Interrupt),是指来自计时器的中断;软件中断(Software Interrupt),是指软件自己触发的中断。
如果三种中断同时发生,其响应的优先级顺序如下:外部中断优先级最高、软件中断次之,计时器中断最低。多个中断理论上上可能存在中断嵌套的情况,然而对于RISC-V架构而言,一旦响应中断进入异常模式之后,中断被全局关闭再也无法响应新的中断,因此RISC-V架构定义的硬件机制默认无法支持硬件中断嵌套行为。如果一定要支持中断嵌套,可使用软件嵌套的技术方案实现,除此之外,RISC-V架构也允许用户实现自定义的中断控制器实现硬件中断嵌套机制功能。
ARM架构的STM32F103系列单片机中,由于具备中断嵌套的硬件机制NVIC,可以使用硬件实现快速的中断嵌套的功能。在张幼麟《单片机终端控制系统》的论文中指出,8051单片机的中断控制系统纯支持中断嵌套,但只支持2级嵌套。其中中断优先级的设定由特殊功能寄存器IP来进行管理,每个中断源在IP寄存器中对应一个控制位,这个控制位只有0、1两种可能,所以8051单片机只支持2级中断,其中1的优先级比0的高。但是由于RISC-V架构的默认硬件机制,故而在RISC-V架构的处理器中,既不具备ARM架构的硬件嵌套机制,也不具备8051的二级中断嵌套的机制,因此无法通过ARM架构和8051单片机的技术方案实现RISC-V架构中断嵌套机制问题,而且中断效率差。
发明内容
为解决上述技术问题,本发明提出了一种用于RISC-V架构的快速中断控制系统及方法,以达到解决在RISC-V架构中实现中断嵌套机制问题,提高中断处理的效率的目的。
为达到上述目的,本发明的技术方案如下:
一种用于RISC-V架构的快速中断控制系统,所述系统包括:匣口、中断源优先级寄存器、中断等待寄存器、优先级阈值寄存器、优先级判断模块、中断使能寄存器、中断响应寄存器、中断完成寄存器和EIP寄存器,所述系统为每个中断源分配一个匣口和编号,所述每个中断源对应一个中断源优先级寄存器,所述一个匣口对应一个中断等待寄存器;
所述匣口,用于在中断请求经过匣口时控制中断源的中断请求单一发送;
所述中断源优先级寄存器,用于存储系统为中断源设置的优先级;
所述中断等待寄存器,用于存储表示中断等待状态的数值;
所述优先级阈值寄存器,用于存储根据中断目标的优先级设置的优先级阈值;
所述优先级判断模块,用于对比中断源的优先级和优先级阈值寄存器中的优先级阈值;
所述中断使能寄存器用于存储表示对应中断源的屏蔽状态数值;
所述中断响应寄存器,用于向处理器内核返回当前仲裁出的优先级最高的中断ID;
所述中断完成寄存器,用于存储中断程序完成后写回的中断ID;
所述EIP寄存器,用于指示当前有通过仲裁的中断正在发送给处理器内核。
进一步地,所述匣口在接收中断请求后将不同类型的外部中断请求转换成统一的内部中断请求。
进一步地,所述中断等待寄存器为只读寄存器,所述优先级阈值寄存器和所述中断使能寄存器均为存储器地址映射的可读可写寄存器,所述中断响应寄存器和所述中断完成寄存器在存储空间中映射为同一地址,该地址可读可写,中断响应时,处理器内核读此寄存器返回当前仲裁出的优先级最高的中断ID,中断完成时,处理器内核向此地址写回相应的中断ID。
进一步地,所述中断源优先级寄存器、中断等待寄存器、优先级阈值寄存器、中断使能寄存器和中断完成寄存器均为32位。
进一步地,所述中断源优先级寄存器的有效位数根据实际情况进行配置。
进一步地,所述中断等待寄存器中置0或1,其中0表示中断未等待,1表示中断等待;所述中断使能寄存器中置0或1,其中0表示不屏蔽,1表示屏蔽。
进一步地,所述EIP寄存器为只读寄存器,有效位为最低位,为0表示当前没有通过仲裁的中断,为1表示当前有通过仲裁的中断
一种用于RISC-V架构的快速中断控制方法,所述方法步骤如下:
Step1:中断源经过相应的匣口后被转换成统一的内部中断请求,同时硬件自动屏蔽对应闸口的中断源,并自动将相应中断源的中断等待寄存器置高;
Step2:所有的内部中断请求经过硬件仲裁,选出优先级最高的中断请求,如果此中断请求的优先级高于中断目标当前的优先级阈值寄存器,系统向处理器内核发送中断通知;
Step3:处理器内核收到中断通知,进入中断处理模式,并使用软件向所述系统发起中断响应读操作,作为响应反馈,所述系统返回该中断源的中断ID,同时所述系统硬件自动:将对应的中断等待寄存器清零;将优先级阈值寄存器的值存入硬件堆栈;将优先级阈值寄存器的值更新为该中断源的优先级;
Step4:处理器内核根据收到的中断ID进入对应的中断服务程序中进行处理;
Step5:在中断服务程序中,如果希望此中断能被更高优先级的中断打断而嵌套,则软件强行打开全局中断,全局中断打开后,处理器能再次响应中断,如有新的中断到来,所述系统将保证只有优先级更高的中断才会通过硬件仲裁和优先级阈值寄存器的比较而被发送给处理器内核,处理器内核接收到中断后会暂停当前的中断服务程序,转而响应新的中断,从而发生中断嵌套,若无新的中断请求,或者中断请求的优先级低于优先级阈值寄存器的值,则不会发生嵌套;
Step6:待彻底完成了中断处理之后,处理器内核使用软件向所述系统发起中断完成的写操作,写入要完成的中断ID,同时,所处系统的硬件自动:将对应中断源的闸口解除屏蔽,允许其能够发起下一次新的中断请求;将优先级阈值寄存器的值从硬件堆栈中恢复出来;
Step7:处理器内核使用软件发起中断完成后,继续使用软件查询所述EIP寄存器,判断是否有发生中断咬尾,如果有发生中断咬尾,使用软件向所述系统发起中断响应的读操作,作为响应反馈,所述系统返回该中断源的中断ID;同时,所述系统硬件自动:将优先级阈值寄存器的值存入硬件堆栈;将优先级阈值寄存器的值更新为该中断源的优先级,然后继续Step4以及之后的步骤,如果没有发生中断咬尾,处理器内核使用软件退出中断。
进一步地,所述中断嵌套具体为:在中断响应阶段,处理器内核接收中断通知并对其响应,则向系统发送中断响应消息,作为反馈,所述系统将当前仲裁出的中断源对应的中断ID返回给处理器内核,与此同时,所述系统的硬件自动将当前的优先级阈值寄存器的值保存进至硬件堆栈中,并且将当前的优先级阈值寄存器的值更改成为当前响应返回中断ID对应的优先级;在中断完成阶段,处理器内核如果彻底完成了某个中断源的中断处理操作,则需要向所述系统发送中断完成消息,与此同时,所述系统的硬件自动将当前的优先级阈值寄存器的值重新从硬件堆栈中恢复回来。
进一步地,所述中断咬尾具体为,处理器内核向所述系统发送中断完成消息后,需要紧接着查询EIP寄存器。如果查询结果为1,表明还有新的中断正在发送给处理器内核,软件停止恢复上下文,并立即对该新的中断进行响应,如果查询结果为0,表明此时没有新的中断正在发送给处理器内核,软件可以开始恢复上下文并退出中断。
本发明具有如下优点:
(1).本发明通过在中断源与中断目标之间设置快速中断控制系统,在RISC-V架构中实现中断嵌套机制问题,同时通过增加处理器内核可读的EIP寄存器实现了中断咬尾等机制,提高中断处理的效率。
(2).本发明将RISC-V架构定义的软中断和定时中断放在了系统和外部中断统一管理,这样能加快中断响应速度,简化处理器中断控制逻辑,同时软件还可以动态的分配这两类中断的优先级,增加了它们使用的灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例公开的快速中断控制系统逻辑结构示意图;
图2为本发明实施例公开的中断完整流程图;
图3为本发明实施例公开的中断结构关系图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明提供了一种用于RISC-V架构的快速中断控制系统及方法,其工作原理是通过在中断源与中断目标之间设置快速中断控制(PIC:Private Interrupt Controller)系统,控制中断请求的发送,同时通过增加处理器内核可读的EIP寄存器实现了中断咬尾等机制,以达到解决在RISC-V架构中实现中断嵌套机制问题,提高中断处理的效率的目的。
下面结合实施例和具体实施方式对本发明作进一步详细的说明。
如图1所示,一种用于RISC-V架构的快速中断控制系统,所述快速中断控制系统(PIC:Private Interrupt Controller)包括:匣口(Gateway)、中断源优先级寄存器、中断等待(Interrupt Pending,IP)寄存器、优先级阈值寄存器、优先级判断模块、中断使能(Interrupt Enable,IE)寄存器、中断响应寄存器、中断完成寄存器和EIP寄存器,所述系统为每个中断源分配一个匣口和编号(ID),所述每个中断源对应一个中断源优先级寄存器,所述一个匣口对应一个中断等待寄存器;
所述匣口,用于在中断请求(Interrupt Request)经过匣口时控制中断源的中断请求单一发送;
所述中断源优先级寄存器,用于存储系统为中断源设置的优先级(Priority);
所述中断等待寄存器,用于存储表示中断等待状态的数值;
所述优先级阈值寄存器,用于存储根据中断目标的优先级设置的优先级阈值(Threshold);
所述优先级判断模块,用于对比中断源的优先级和优先级阈值寄存器中的优先级阈值;
所述中断使能寄存器,用于存储表示对应中断源的屏蔽状态数值;
所述中断响应寄存器,用于中断响应时(Interrupt Claim)向处理器内核返回当前仲裁出的优先级最高的中断ID;
所述中断完成寄存器,用于存储中断完成(Interrupt Completion)后写回的中断ID;
所述EIP寄存器,用于指示当前有通过仲裁的中断正在发送给处理器内核。
其中,所述匣口在接收中断请求后将不同类型的外部中断请求转换成统一的内部中断请求。
其中,每个中断源可以是不同触发类型,譬如电平触发(Level-triggered)或者边沿触发(Edge-triggered)等。
其中,所述中断等待寄存器为只读寄存器,所述优先级阈值寄存器和所述中断使能寄存器均为存储器地址映射的(Memory Address Mapped)可读可写寄存器,所述中断响应寄存器和所述中断完成寄存器在存储空间中映射为同一地址,该地址可读可写,中断响应时,处理器内核读此寄存器返回当前仲裁出的优先级最高的中断ID,中断完成时,处理器内核向此地址写回相应的中断ID。
其中,所述中断源优先级寄存器、中断等待寄存器、优先级阈值寄存器、中断使能寄存器和中断完成寄存器均为32位。
本发明中PIC硬件可支持1024个ID,也就是说最多支持1024个中断源发送中断请求,为每个中断源编号为0-1023,其中中断等待寄存器和中断使能寄存器的个数为32个。
其中,所述中断源优先级寄存器的有效位数为低8位,中断源优先级的值有0至255共256个数,其中0表示屏蔽中断,1至255从低到高表示优先级的高低。
其中,所述中断等待寄存器中置0或1,其中0表示中断未等待(允许中断请求经过并将中断请求发送给中断目标),1表示中断等待(拒绝中断请求经过);所述中断使能寄存器中置0或1,其中0表示不屏蔽(接收中断请求),1表示屏蔽(不接收中断请求)。
如图2所示,一种用于RISC-V架构的快速中断控制方法,所述方法步骤如下:
Step1:中断源经过相应的匣口后被转换成统一的内部中断请求,同时硬件自动屏蔽对应闸口的中断源,并自动将相应中断源的中断等待寄存器置高;
Step2:所有的内部中断请求经过硬件仲裁,选出优先级最高的中断请求,如果此中断请求的优先级高于中断目标当前的优先级阈值寄存器,系统向处理器内核发送中断通知;
Step3:处理器内核收到中断通知,进入中断处理模式,并使用软件向所述系统发起中断响应读操作,作为响应反馈,所述系统返回该中断源的中断ID,同时所述系统硬件自动:将对应的中断等待寄存器清零;将优先级阈值寄存器的值存入硬件堆栈;将优先级阈值寄存器的值更新为该中断源的优先级;
Step4:处理器内核根据收到的中断ID进入对应的中断服务程序中进行处理;
Step5:在中断服务程序中,如果希望此中断能被更高优先级的中断打断而嵌套,则软件强行打开全局中断,全局中断打开后,处理器能再次响应中断,如有新的中断到来,所述系统将保证只有优先级更高的中断才会通过硬件仲裁和优先级阈值寄存器的比较而被发送给处理器内核,处理器内核接收到中断后会暂停当前的中断服务程序,转而响应新的中断,从而发生中断嵌套,若无新的中断请求,或者中断请求的优先级低于优先级阈值寄存器的值,则不会发生嵌套;
Step6:待彻底完成了中断处理之后,处理器内核使用软件向所述系统发起中断完成的写操作,写入要完成的中断ID,同时,所处系统的硬件自动:将对应中断源的闸口解除屏蔽,允许其能够发起下一次新的中断请求;将优先级阈值寄存器的值从硬件堆栈中恢复出来;
Step7:处理器内核使用软件发起中断完成后,继续使用软件查询所述EIP寄存器,判断是否有发生中断咬尾,如果有发生中断咬尾,使用软件向所述系统发起中断响应的读操作,作为响应反馈,所述系统返回该中断源的中断ID;同时,所述系统硬件自动:将优先级阈值寄存器的值存入硬件堆栈;将优先级阈值寄存器的值更新为该中断源的优先级,然后继续Step4以及之后的步骤,如果没有发生中断咬尾,处理器内核使用软件退出中断。
其中,所述中断嵌套具体为:在中断响应阶段,处理器内核接收中断通知并对其响应,则向系统发送中断响应消息,作为反馈,所述系统将当前仲裁出的中断源对应的中断ID返回给处理器内核,与此同时,所述系统的硬件自动将当前的优先级阈值寄存器的值保存进至硬件堆栈中,并且将当前的优先级阈值寄存器的值更改成为当前响应返回中断ID对应的优先级;在中断完成阶段,处理器内核如果彻底完成了某个中断源的中断处理操作,则需要向所述系统发送中断完成消息,与此同时,所述系统的硬件自动将当前的优先级阈值寄存器的值重新从硬件堆栈中恢复回来。
其中,所述中断咬尾具体为,处理器内核向所述系统发送中断完成消息后,需要紧接着查询EIP寄存器。如果查询结果为1,表明还有新的中断正在发送给处理器内核,软件停止恢复上下文,并立即对该新的中断进行响应,如果查询结果为0,表明此时没有新的中断正在发送给处理器内核,软件可以开始恢复上下文并退出中断。
本发明在RISC-V架构中实现中断嵌套机制的同时还实现了中断咬尾、软中断和计时器中断等中断问题。
其中,实现中断嵌套式对处理器内核而言,如果收到了中断通知,且其决定对该中断进行响应,则需要向所述系统发送中断响应消息。作为反馈,所述系统将“当前仲裁出的中断源对应的中断ID”返回给处理器内核,这个中断ID称为“当前响应返回中断ID”。与此同时,所述系统的硬件自动将“当前的优先级阈值寄存器的值”保存进入一个“专用的硬件堆栈”中,并且将“当前的优先级阈值寄存器的值”更改成为“当前响应返回中断ID对应的优先级”。通过此机制可以保证该中断被响应之后,只有优先级比其更高的新中断才会通过优先级阈值寄存器的比较,而将新中断发送给处理器内核,对于处理器内核而言,如果彻底完成了某个中断源的中断处理操作,则需要向所述系统发送中断完成消息。与此同时,所述系统的硬件自动将“当前的优先级阈值寄存器的值”重新从“专用的硬件堆栈”恢复回来。通过此机制可以保证中断完成之后,将优先级阈值寄存器的值恢复回来以保证功能的正确性。所述系统的硬件堆栈深度为所述系统所支持的优先级级数,因此可以保证此堆栈不会溢出(因为只有高优先级能够打断低优先级中断,中断嵌套的级数最多即为所述系统的所支持的优先级级数)。
其中,实现中断咬尾是在PIC中增加一个只读寄存器EIP,,用于指示当前有通过仲裁的中断,正在发送给处理器内核;对于处理器内核而言,如果彻底完成了某个中断源的中断处理操作,则需要向PIC发送中断完成(Interrupt Completion)消息。与此同时,PIC的硬件自动将“当前的优先级阈值寄存器的值(Threshold)”重新从“专用的硬件堆栈”恢复回来。通过此机制可以保证中断完成Completion之后,将优先级阈值寄存器的值恢复回来以保证功能的正确性。处理器内核向PIC发送中断完成(Interrupt Completion)消息后,需要紧接着查询EIP寄存器。如果查询结果为1,表明还有新的中断正在发送给处理器内核,软件停止恢复上下文,并立即对该新的中断进行响应。如果查询结果为0,表明此时没有新的中断正在发送给处理器内核,软件可以开始恢复上下文并退出中断,从而实现了中断咬尾,大大提高了中断处理效率。
其中,将RISVC-V架构定义的软件中断和计时器中断放在所述PIC中和其他外部中断一起统一管理,从而加快中断响应速度,简化处理器内核的中断控制逻辑,同时软件还可以动态的给者两类中断分配优先级,增加了这两类中断使用的灵活性。
如图3所示,公开了PIC系统与处理器内核之间的交互。
以上所述的仅是本发明所公开的一种用于RISC-V架构的快速中断控制系统及方法的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (9)

1.一种用于RISC-V架构的快速中断控制系统,其特征在于,所述系统包括:匣口、中断源优先级寄存器、中断等待寄存器、优先级阈值寄存器、优先级判断模块、中断使能寄存器、中断响应寄存器、中断完成寄存器和EIP寄存器,所述系统为每个中断源分配一个匣口和编号,所述每个中断源对应一个中断源优先级寄存器,所述一个匣口对应一个中断等待寄存器;
所述匣口,用于在中断请求经过匣口时控制中断源的中断请求单一发送;所述匣口在接收中断请求后将不同类型的外部中断请求转换成统一的内部中断请求;
所述中断源优先级寄存器,用于存储系统为中断源设置的优先级;
所述中断等待寄存器,用于存储表示中断等待状态的数值;
所述优先级阈值寄存器,用于存储根据中断目标的优先级设置的优先级阈值;
所述优先级判断模块,用于对比中断源的优先级和优先级阈值寄存器中的优先级阈值;
所述中断使能寄存器,用于存储表示对应中断源的屏蔽状态数值;
所述中断响应寄存器,用于向处理器内核返回当前仲裁出的优先级最高的中断ID;
所述中断完成寄存器,用于存储中断程序完成后写回的中断ID;
所述EIP寄存器,用于指示当前有通过仲裁的中断正在发送给处理器内核。
2.根据权利要求1所述的用于RISC-V架构的快速中断控制系统,其特征在于,所述中断等待寄存器为只读寄存器,所述优先级阈值寄存器和所述中断使能寄存器均为存储器地址映射的可读可写寄存器,所述中断响应寄存器和所述中断完成寄存器在存储空间中映射为同一地址,该地址可读可写,中断响应时,处理器内核读此寄存器返回当前仲裁出的优先级最高的中断ID,中断完成时,处理器内核向此地址写回相应的中断ID。
3.根据权利要求2所述的用于RISC-V架构的快速中断控制系统,其特征在于,所述中断源优先级寄存器、中断等待寄存器、优先级阈值寄存器、中断使能寄存器和中断完成寄存器均为32位。
4.根据权利要求3所述的用于RISC-V架构的快速中断控制系统,其特征在于,所述中断源优先级寄存器的有效位数根据实际情况进行配置。
5.根据权利要求3所述的用于RISC-V架构的快速中断控制系统,其特征在于,所述中断等待寄存器中置0或l,其中0表示中断未等待,1表示中断等待;所述中断使能寄存器中置0或1,其中0表示不屏蔽,1表示屏蔽。
6.根据权利要求3所述的用于RISC-V架构的快速中断控制系统,其特征在于,所述EIP寄存器为只读寄存器,有效位为最低位,为0表示当前没有通过仲裁的中断,为1表示当前有通过仲裁的中断。
7.一种用于RISC-V架构的快速中断控制方法,其特征在于,所述方法步骤如下:
Step1:中断源经过相应的匣口后被转换成统一的内部中断请求,同时硬件自动屏蔽对应闸口的中断源,并自动将相应中断源的中断等待寄存器置高;
Step2:所有的内部中断请求经过硬件仲裁,选出优先级最高的中断请求,如果此中断请求的优先级高于中断目标当前的优先级阈值寄存器,系统向处理器内核发送中断通知:
Step3:处理器内核收到中断通知,进入中断处理模式,并使用软件向所述系统发起中断响应读操作,作为响应反馈,所述系统返回该中断源的中断ID,同时所述系统硬件自动:将对应的中断等待寄存器清零;将优先级阈值寄存器的值存入硬件堆栈;将优先级阈值寄存器的值更新为该中断源的优先级;
Step4:处理器内核根据收到的中断ID进入对应的中断服务程序中进行处理;
Step5:在中断服务程序中,如果希望此中断能被更高优先级的中断打断而嵌套,则软件强行打开全局中断,全局中断打开后,处理器能再次响应中断,如有新的中断到来,所述系统将保证只有优先级更高的中断才会通过硬件仲裁和优先级阈值寄存器的比较而被发送给处理器内核,处理器内核接收到中断后会暂停当前的中断服务程序,转而响应新的中断,从而发生中断嵌套,若无新的中断请求,或者中断请求的优先级低于优先级阈值寄存器的值,则不会发生嵌套;
Step6:待彻底完成了中断处理之后,处理器内核使用软件向所述系统发起中断完成的写操作,写入要完成的中断ID,同时,所处系统的硬件自动将对应中断源的闸口解除屏蔽,允许其能够发起下一次新的中断请求;将优先级阈值寄存器的值从硬件堆栈中恢复出来;
Step7:处理器内核使用软件发起中断完成后,继续使用软件查询EIP寄存器,判断是否有发生中断咬尾,如果有发生中断咬尾,使用软件向所述系统发起中断响应的读操作,作为响应反馈,所述系统返回该中断源的中断ID;同时,所述系统硬件自动将优先级阈值寄存器的值存入硬件堆栈:将优先级阈值寄存器的值更新为该中断源的优先级,然后继续Step4以及之后的步骤,如果没有发生中断咬尾,处理器内核使用软件退出中断。
8.根据权利要求7所述的用于RISC-V架构的快速中断控制方法,其特征在于,所述中断嵌套具体为:在中断响应阶段,处理器内核接收中断通知并对其响应,则向系统发送中断响应消息,作为反馈,所述系统将当前仲裁出的中断源对应的中断ID返回给处理器内核,与此同时,所述系统的硬件自动将当前的优先级阀值寄存器的值保存进至硬件堆栈中,并且将当前的优先级阈值寄存器的值更改成为当前响应返回中断ID对应的优先级;在中断完成阶段,处理器内核如果彻底完成了某个中断源的中断处理操作,则需要向所述系统发送中断完成消息,与此同时,所述系统的硬件自动将当前的优先级阈值寄存器的值重新从硬件堆栈中恢复回来。
9.根据权利要求7或8所述的用于RISC-V架构的快速中断控制方法,其特征在于,所述中断咬尾具体为,处理器内核向所述系统发送中断完成消息后,需要紧接着查询EIP寄存器;如果查询结果为l,表明还有新的中断正在发送给处理器内核,软件停止恢复上下文,并立即对该新的中断进行响应,如果查询结果为0,表明此时没有新的中断正在发送给处理器内核,软件可以开始恢复上下文并退出中断。
CN201811241584.6A 2018-10-24 2018-10-24 用于risc-v架构的快速中断控制系统及方法 Active CN109376000B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811241584.6A CN109376000B (zh) 2018-10-24 2018-10-24 用于risc-v架构的快速中断控制系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811241584.6A CN109376000B (zh) 2018-10-24 2018-10-24 用于risc-v架构的快速中断控制系统及方法

Publications (2)

Publication Number Publication Date
CN109376000A CN109376000A (zh) 2019-02-22
CN109376000B true CN109376000B (zh) 2022-02-15

Family

ID=65401101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811241584.6A Active CN109376000B (zh) 2018-10-24 2018-10-24 用于risc-v架构的快速中断控制系统及方法

Country Status (1)

Country Link
CN (1) CN109376000B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007964A (zh) * 2019-03-15 2019-07-12 芯来科技(武汉)有限公司 用于risc-v架构的中断系统
CN109933451B (zh) * 2019-03-18 2022-06-28 晶晨半导体(上海)股份有限公司 一种基于risc-v架构的异常和中断处理系统及方法
CN110083473B (zh) * 2019-04-16 2023-01-10 芯来智融半导体科技(上海)有限公司 基于risc-v架构总线访问错误的改进系统及方法
CN110362396A (zh) * 2019-07-23 2019-10-22 天津国芯科技有限公司 基于powerpc架构并支持中断嵌套的外部中断管理方法及系统
CN110515871B (zh) * 2019-08-09 2021-05-25 苏州浪潮智能科技有限公司 一种中断方法、装置及fpga和存储介质
CN111045730B (zh) * 2019-12-12 2023-07-21 南京沁恒微电子股份有限公司 一种用于risc-v架构的硬件快速中断处理系统及其方法
CN112286847B (zh) * 2020-11-05 2023-03-10 成都菁蓉联创科技有限公司 一种提升系统外部中断响应速度的方法、装置和控制器
CN112559047B (zh) * 2021-02-22 2021-05-14 南京沁恒微电子股份有限公司 一种基于risc-v的中断控制系统及方法
CN113886054B (zh) * 2021-12-03 2022-04-15 芯来科技(武汉)有限公司 一种中断处理装置、芯片和电子设备
CN115858020B (zh) * 2023-02-24 2023-07-04 北京国科环宇科技股份有限公司 中断处理方法、装置、设备及处理器
CN117251393B (zh) * 2023-11-17 2024-04-12 北京智芯微电子科技有限公司 处理器的中断响应方法、装置、芯片、计算机设备和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595256A (zh) * 2018-03-20 2018-09-28 武汉市聚芯微电子有限责任公司 一种基于risc-v架构芯片采用软件实现中断嵌套的方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467007B1 (en) * 1999-05-19 2002-10-15 International Business Machines Corporation Processor reset generated via memory access interrupt
US6694398B1 (en) * 2001-04-30 2004-02-17 Nokia Corporation Circuit for selecting interrupt requests in RISC microprocessors
WO2008052982A1 (en) * 2006-10-30 2008-05-08 Thomson Licensing Method for indicating a service interruption source
EP3400688B1 (en) * 2016-01-04 2020-05-20 Gray Research LLC Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications
CN105824768B (zh) * 2016-03-15 2018-09-07 杭州中天微系统有限公司 一种支持多层中断优先级控制的矢量中断控制器
CN207586912U (zh) * 2017-12-15 2018-07-06 湖南中部芯谷光电有限公司 一种基于SoC的通用组合导航集成处理器架构
CN108037951B (zh) * 2017-12-27 2020-11-20 山东师范大学 一种dtp处理器的中断快速切换方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595256A (zh) * 2018-03-20 2018-09-28 武汉市聚芯微电子有限责任公司 一种基于risc-v架构芯片采用软件实现中断嵌套的方法

Also Published As

Publication number Publication date
CN109376000A (zh) 2019-02-22

Similar Documents

Publication Publication Date Title
CN109376000B (zh) 用于risc-v架构的快速中断控制系统及方法
US8321615B2 (en) Source core interrupt steering
US9183167B2 (en) Enhanced I/O performance in a multi-processor system via interrupt affinity schemes
US6021458A (en) Method and apparatus for handling multiple level-triggered and edge-triggered interrupts
KR101651246B1 (ko) 멀티-코어 아키텍처들을 위한 사용자-레벨 인터럽트 메커니즘
US7685347B2 (en) Interrupt controller for invoking service routines with associated priorities
JPH06314205A (ja) 割り込み源間の優先順位確立方法及びデータ処理システム
JP2006216042A (ja) 割り込み処理のためのシステムおよび方法
TW200527195A (en) Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US9311138B2 (en) System management interrupt handling for multi-core processors
US10990544B2 (en) PCIE root complex message interrupt generation method using endpoint
US9684613B2 (en) Methods and systems for reducing spurious interrupts in a data storage system
US8364877B2 (en) Implementing gang interrupts
US20080082710A1 (en) System and method for managing system management interrupts in a multiprocessor computer system
JP2004516548A (ja) 予め格納されるベクトルの割込処理システムおよび方法
US10545890B2 (en) Information processing device, information processing method, and program
CN109933549B (zh) 一种适用于risc-v处理器的中断控制器
US20170212852A1 (en) Method and accelerator unit for interrupt handling
CN110083473B (zh) 基于risc-v架构总线访问错误的改进系统及方法
CN109343950B (zh) 一种适用于Xilinx软核处理器的中断通用处理方法
US10229074B2 (en) Techniques for handling interrupts in a processing unit using interrupt request queues
CN111433738A (zh) 控制器事件队列
JPH07311686A (ja) コンピュータシステム、およびその中でシステム管理割込を発生し処理するための方法
JP2009515280A (ja) 中央化された割り込みコントローラ
CN117272412B (zh) 中断控制寄存器保护方法、装置、计算机设备及存储介质

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190328

Address after: 430000 Room 120, Zhongchuang Building, No. 2 Darui Road, Guandong Industrial Park, Donghu New Technology Development Zone, Wuhan City, Hubei Province

Applicant after: Xinlai Technology (Wuhan) Co., Ltd.

Address before: Room 402, Room 67, Lane 4, 1467, Caobao Road, Minhang District, Shanghai, 201100

Applicant before: Hu Zhenbo

GR01 Patent grant
GR01 Patent grant