CN110083473B - 基于risc-v架构总线访问错误的改进系统及方法 - Google Patents

基于risc-v架构总线访问错误的改进系统及方法 Download PDF

Info

Publication number
CN110083473B
CN110083473B CN201910304195.1A CN201910304195A CN110083473B CN 110083473 B CN110083473 B CN 110083473B CN 201910304195 A CN201910304195 A CN 201910304195A CN 110083473 B CN110083473 B CN 110083473B
Authority
CN
China
Prior art keywords
interrupt
priority
control module
bus access
source
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
CN201910304195.1A
Other languages
English (en)
Other versions
CN110083473A (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.)
Shin Lai Zhirong Semiconductor Technology Shanghai Co ltd
Original Assignee
Shin Lai Zhirong Semiconductor Technology Shanghai 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 Shin Lai Zhirong Semiconductor Technology Shanghai Co ltd filed Critical Shin Lai Zhirong Semiconductor Technology Shanghai Co ltd
Priority to CN201910304195.1A priority Critical patent/CN110083473B/zh
Publication of CN110083473A publication Critical patent/CN110083473A/zh
Application granted granted Critical
Publication of CN110083473B publication Critical patent/CN110083473B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种基于RISC‑V架构总线访问错误的改进系统,包括:异常优先级控制模块、中断控制模块和跳转控制模块。系统为总线访问错误分配中断编号,将总线访问错误作为中断源处理,异常优先级控制模块,用于将所有异常类型进行优先级排序,选择出当前优先级最高的异常类型并输出给跳转控制模块;中断控制模块,用于对总线访问错误和其他中断源进行统一管理,选择出当前优先级最高的中断源并输出给跳转控制模块;跳转控制模块,用于分析处理输入的异常类型、中断源和不可屏蔽中断,将分析处理后的信号输出给处理器内核。本发明将总线访问错误由上报异常改为上报中断,从而可以方便软件控制。

Description

基于RISC-V架构总线访问错误的改进系统及方法
技术领域
本发明涉及低功耗内核中断及异常处理技术领域,尤其涉及一种基于RISC-V架构总线访问错误的改进系统及方法。
背景技术
中断机制(Interrupt),即处理器核在顺序执行程序指令流的过程中突然被别的请求打断而中止执行当前的程序,转而去处理别的事情,待其处理完了别的事情,然后重新回到之前程序中断的点继续执行之前的程序指令流。其中,打断处理器执行程序指令流的“别的请求”便称之为中断请求(Interrupt Request),而中断请求的来源则称之为中断源(Interrupt Source),通常情况下,中断源主要来自外围硬件设备。而处理器转去处理“别的事情”便称之为中断服务程序(Interrupt Service Routine,ISR)。
中断处理是一种正常的机制,而非一种错误。处理器收到中断请求之后,需要保护当前程序现场,简称为保护现场。等到处理完中断服务程序之后,处理器需要恢复之前的现场,从而继续执行之前被打断的程序,简称为恢复现场。
异常(Exception)机制,即处理器核在顺序执行程序指令流的过程中突然遇到了异常的事情而中止执行当前的程序,转而去处理该异常。处理器遇到的“异常的事情”称为异常(Exception)。异常是由处理器内部事件或程序执行中的事件引起的,譬如本身硬件故障、程序故障,或者执行特殊的系统服务指令而引起的,简而言之是一种内因。异常发生后,处理器会进入异常服务处理程序。
非屏蔽中断(不可屏蔽中断,Non-Mask able Interrupt)是处理器内核的一根特殊的输入信号,往往用于指示系统层面的紧急错误(譬如外部的硬件故障等)。在遇到不可屏蔽中断之后,处理器内核会立即中止执行当前的程序,转而去处理该不可屏蔽中断错误。
需要注意的是,异常是不可以被屏蔽的,也就是说一旦发生了异常,处理器一定会停止当前操作转而进入异常处理模式。因此,中断和不可屏蔽中断在任何时候都可以被异常打断。
在大部分的处理器架构中,读写存储器出错通常会被视为一种非精确异步错误,由于访问存储器(简称访存)需要一定的时间,处理器往往不可能等到该访问结束才开始执行后续的指令(否则性能会很差),而是会继续执行后续的指令。等到访存结果从目标存储器返回来之后,发现出现了访存错误并汇报错误,但是处理器此时可能已经执行到了后续的某条指令,难以精确定位。并且存储器返回的时间延迟也具有偶然性,无法被精确地重现。
如图1所示,在RISC-V架构中,访存出错会上报异常,譬如:load访问出错,会上报load access fault异常;store访问出错,会上报store access fault异常。由于在大部分的处理器架构中,load/store访问出错会被视为非精确异步错误,而异常又是不可屏蔽的,因此load/store访问出错上报异常会导致程序不可控制。
总的来说,由于load/store访问出错通常会被视为一种非精确异步错误,因此在RISC-V架构中,load/store访问出错上报异常会导致程序不可控制。
发明内容
为了解决上述技术问题,本发明提出一种基于RISC-V架构总线访问错误的改进系统及方法。在所述系统及方法中,总线访问出错,改为上报中断,而不是上报异常,这样总线访问出错会变得可控。
为了达到上述目的,本发明的技术方案如下:
一种基于RISC-V架构总线访问错误的改进系统,包括:异常优先级控制模块、中断控制模块和跳转控制模块,所述系统为总线访问错误分配中断编号,将总线访问错误作为中断源处理,
所述异常优先级控制模块,用于将所有异常类型进行优先级排序,选择出当前优先级最高的异常类型并输出给跳转控制模块;
所述中断控制模块,用于对总线访问错误和其他中断源进行统一管理,选择出当前优先级最高的中断源并输出给跳转控制模块;
所述跳转控制模块,用于分析处理所述异常优选级控制输入的异常类型、所述中断控制模块输入的中断源和不可屏蔽中断,将分析处理后的信号输出给处理器内核。
进一步,所述中断控制模块包括中断使能寄存器、中断等待寄存器和中断优先级寄存器,
所述中断优先级寄存器,用于控制各个中断源的优先级,不同优先级的中
断源同时发起请求,优先级最高的中断源会优先得到响应;
所述中断等待寄存器,用于存储表示中断等待状态的数值;
所述中断使能寄存器,用于存储表示对应中断源的屏蔽状态数值。
进一步,所述中断使能寄存器和所述中断等待寄存器均为1位。
进一步,所述中断优先级寄存器的有效位数根据实际情况进行配置。
进一步,所述中断等待寄存器中置0或1,其中0表示中断未等待,1表示中断等待;所述中断使能寄存器中置0或1,其中0表示不屏蔽,1表示屏蔽。
进一步,所述中断使能寄存器和所述中断等待寄存器均为32位。
一种基于RISC-V架构总线访问错误的改进方法,包括以下步骤:
Step1:将总线访问错误分配中断编号,将总线访问错误视为一个中断源;
Step2:异常优先级控制模块将所有异常类型进行优先级排序,选择出优先级最高的异常类型进行输出;
Step3:中断控制模块将总线访问错误和其他中断源进行统一管理,分析总线访问错误和其他中断源的优先级,选择出优先级最高的中断源进行输出;
Step4:根据当前的处理模式、不可屏蔽中断、优先级最高的中断源和优先级最高的异常类型的信息,输出跳转控制信号,若出现优先级最高的中断源时,处理器正在进行不可屏蔽中断,则转至步骤S5;若出现优先级最高的中断源时,如果处理器正在进行异常处理,则转至步骤S6;若处理器正在处理优先级最高的中断源,则转至步骤S7;
Step5:将最高的中断源悬挂起来,处理器内核根据接收到的不可屏蔽中断信号,进入对应的非屏蔽中断服务程序中进行处理;
Step6:将最高的中断源悬挂起来,处理器内核根据接收到的最高的异常类型,进入对应的异常服务程序中进行处理;
Step7:处理器内核根据接收到的优先级最高的中断源进入对应的中断服务程序中进行处理,并使用软件向所述系统发起中断相应读操作。
基于上述技术方案,本发明的有益效果是:
1)出现总线访问错误时,本发明不会打断当前不可屏蔽中断的处理流程;
2)出现总线访问错误时,本发明不会打断当前异常的处理流程;
3)出现总线访问错误时,本发明不会打断当前高优先级中断的处理流程;
4)软件可以通过配置中断使能,控制总线访问错误是否上报中断,增加软件控制的灵活性。
附图说明
图1:现有技术中RISC-V架构定义的总线访问错误处理系统示意图;
图2:本发明实施例1公开的总线访问错误处理系统示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一
如图2所示,本发明提供一种基于RISC-V架构总线访问错误改进系统及方法,所述系统相比RISC-V定义的架构(如图1),将总线访问错误(包括load访问错误和store访问错误)由上报异常改为上报中断。所述系统,包括:异常优先级控制模块、中断控制模块和跳转控制模块,其中:
所述异常优先级控制模块,用于将所有异常类型进行优先级排序,对应的异常编号(Exception Code)值越小,优先级越高,选择出当前优先级最高的异常类型并输出给跳转控制模块;
所述中断控制模块,用于对总线访问错误(BTE)和其他中断源进行统一管理,选择出当前优先级最高的中断源并输出给跳转控制模块;
所述跳转控制模块,用于分析处理所述异常优选级控制输入的异常类型、所述中断控制模块输入的中断源和不可屏蔽中断(NMI),将分析处理后的信号输出给处理器内核。
例如,为总线访问错误分配中断编号为0-4095。
进一步,所述中断控制模块包括中断使能寄存器、中断等待寄存器和中断优先级寄存器,其中:
所述中断优先级寄存器,用于控制各个中断源的优先级,不同优先级的中断源同时发起请求,优先级最高的中断源会优先得到响应;所述中断优先级寄存器的有效位数根据实际情况进行配置。
所述中断等待寄存器,用于存储表示中断等待状态的数值;
所述中断使能寄存器,用于存储表示对应中断源的屏蔽状态数值。
进一步,所述中断等待寄存器中置0或1,其中0表示中断未等待(允许中断请求经过并将中断请求发送给中断目标),1表示中断等待(拒绝中断请求经过);所述中断使能寄存器中置0或1,其中0表示不屏蔽(接受中断请求),1表示屏蔽(不接受中断请求)。其中,所述中断使能寄存器和所述中断等待寄存器均为1位。
其中,软件配置中断使能寄存器,可以控制总线访问错误(包括load访问错误和store访问错误)是否上报中断,增加软件控制的灵活性。
一种基于RISC-V架构总线访问错误的改进方法,包括以下步骤:
Step1:将总线访问错误分配中断编号,将总线访问错误(BTE)视为一个中断源;
Step2:异常优先级控制模块将所有异常类型进行优先级排序,选择出优先级最高的异常类型进行输出;
Step3:中断控制模块将总线访问错误(BTE)和其他中断源进行统一管理,分析总线访问错误(BTE)和其他中断源的优先级,选择出优先级最高的中断源进行输出;
Step4:根据当前的处理模式、不可屏蔽中断(NMI)、优先级最高的中断源和优先级最高的异常类型的信息,输出跳转控制信号,出现优先级最高的中断源为总线访问错误时,如果处理器正在进行不可屏蔽中断(NMI),则转至步骤S5;出现优先级最高的中断源为总线访问错误时,如果处理器正在进行异常处理,则转至步骤S6;若处理器正在处理优先级最高的中断源,则转至步骤S7;
Step5:将总线访问错误(BTE)悬挂起来,在不可屏蔽中断(NMI)处理完成之后,再开始总线访问错(BTE)的中断处理,不会打断当前不可屏蔽中断(NMI)处理流程;处理器内核根据接收到的不可屏蔽中断(NMI),进入对应的非屏蔽中断服务程序中进行处理;
Step6:将总线访问错误悬挂起来,在异常处理处理完成之后,再开始总线访问错误(BTE)的中断处理,不会打断当前异常处理流程;处理器内核根据接收到的最高的异常类型,进入对应的异常服务程序中进行处理;
Step7:处理器内核根据接收到的最高的中断源进入对应的中断服务程序中,并使用软件向所述系统发起中断相应读操作。
本发明通过将总线访问错误(包括load访问错误和store访问错误)由上报异常改为上报中断,使得总线访问错误(包括load访问错误和store访问错误)导致程序不可控制变得可控,有利于软件控制。
以上所述仅为本发明所公开的一种基于RISC-V架构总线访问错误的改进系统及方法的优选实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (6)

1.一种基于RISC-V架构总线访问错误的改进方法,其特征在于,包括以下步骤:
S1:为总线访问错误分配中断编号,将总线访问错误视为一个中断源;
S2:将所有异常类型进行优先级排序,选择出优先级最高的异常类型进行输出;
S3:将总线访问错误和其他中断源进行统一管理,分析总线访问错误和其他中断源的优先级,选择出优先级最高的中断源进行输出;
S4:根据当前的处理模式、不可屏蔽中断、优先级最高的中断源和优先级最高的异常类型的信息,输出跳转控制信号,若出现优先级最高的中断源时,处理器正在进行不可屏蔽中断,则转至步骤S5;若优先级最高的中断源时,如果处理器正在进行异常处理,则转至步骤S6;若处理器正在处理优先级最高的中断源,则转至步骤S7;
S5:将优先级最高的中断源悬挂起来,处理器内核根据接收到的不可屏蔽中断信号,进入对应的非屏蔽中断服务程序中进行处理;
S6:将优先级最高的中断源悬挂起来,处理器内核根据接收到的最高的异常类型,进入对应的异常服务程序中进行处理;
S7:处理器内核根据接收到的优先级最高的中断源进入对应的中断服务程序中进行处理,并使用软件向系统发起中断响应读操作。
2.应用权利要求1所述的一种基于RISC-V架构总线访问错误的改进方法的系统,其特征在于,包括:异常优先级控制模块、中断控制模块和跳转控制模块,所述系统为总线访问错误分配中断编号,将总线访问错误作为中断源处理,其中:
所述异常优先级控制模块,用于将所有异常类型进行优先级排序,选择出当前优先级最高的异常类型并输出给跳转控制模块;
所述中断控制模块,用于对总线访问错误和其他中断源进行统一管理,选择出当前优先级最高的中断源并输出给跳转控制模块;
所述跳转控制模块,用于分析处理所述异常优选级控制模块输入的异常类型、所述中断控制模块输入的中断源和不可屏蔽中断,将分析处理后的信号输出给处理器内核。
3.根据权利要求2所述的系统,其特征在于,所述中断控制模块包括中断使能寄存器、中断等待寄存器和中断优先级寄存器,其中:
所述中断优先级寄存器,用于控制各个中断源的优先级,不同优先级的中断源同时发起请求,优先级最高的中断源会优先得到响应;
所述中断等待寄存器,用于存储表示中断等待状态的数值;
所述中断使能寄存器,用于存储表示对应中断源的屏蔽状态数值。
4.根据权利要求3所述的系统,其特征在于,所述中断使能寄存器和所述中断等待寄存器均为1位。
5.根据权利要求3所述的系统,其特征在于,所述中断优先级寄存器的有效位数根据实际情况进行配置。
6.根据权利要求4所述的系统,其特征在于,所述中断等待寄存器中置0或1,其中0表示中断未等待,1表示中断等待;所述中断使能寄存器中置0或1,其中0表示不屏蔽,1表示屏蔽。
CN201910304195.1A 2019-04-16 2019-04-16 基于risc-v架构总线访问错误的改进系统及方法 Active CN110083473B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910304195.1A CN110083473B (zh) 2019-04-16 2019-04-16 基于risc-v架构总线访问错误的改进系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910304195.1A CN110083473B (zh) 2019-04-16 2019-04-16 基于risc-v架构总线访问错误的改进系统及方法

Publications (2)

Publication Number Publication Date
CN110083473A CN110083473A (zh) 2019-08-02
CN110083473B true CN110083473B (zh) 2023-01-10

Family

ID=67415279

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910304195.1A Active CN110083473B (zh) 2019-04-16 2019-04-16 基于risc-v架构总线访问错误的改进系统及方法

Country Status (1)

Country Link
CN (1) CN110083473B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955507B (zh) * 2019-11-28 2022-10-21 苏州长风航空电子有限公司 基于vxWorks系统的多任务访问同一IIC总线的方法
CN117272412B (zh) * 2023-11-21 2024-03-15 芯来智融半导体科技(上海)有限公司 中断控制寄存器保护方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375211A (en) * 1987-08-25 1994-12-20 Hitachi, Ltd. Bus error processing system having direct bus master/CPU communication
CN102591821A (zh) * 2011-01-12 2012-07-18 中兴通讯股份有限公司 处理数据上报中断控制方法及装置
CN103748563A (zh) * 2011-08-25 2014-04-23 国际商业机器公司 检测由中断处理引起的异常操作
CN109376000A (zh) * 2018-10-24 2019-02-22 胡振波 用于risc-v架构的快速中断控制系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375211A (en) * 1987-08-25 1994-12-20 Hitachi, Ltd. Bus error processing system having direct bus master/CPU communication
CN102591821A (zh) * 2011-01-12 2012-07-18 中兴通讯股份有限公司 处理数据上报中断控制方法及装置
CN103748563A (zh) * 2011-08-25 2014-04-23 国际商业机器公司 检测由中断处理引起的异常操作
CN109376000A (zh) * 2018-10-24 2019-02-22 胡振波 用于risc-v架构的快速中断控制系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
飞思卡尔Kinetis芯片中NVIC模块的中断寄存器的介绍及其应用举例;喻宁宁;《中国集成电路》;20130805(第08期);全文 *
高性能DSP中断处理技术;许新任等;《计算机工程》;20050705(第19期);全文 *

Also Published As

Publication number Publication date
CN110083473A (zh) 2019-08-02

Similar Documents

Publication Publication Date Title
CN109376000B (zh) 用于risc-v架构的快速中断控制系统及方法
EP1062578B1 (en) Method and apparatus for handling multiple level-triggered and edge-triggered interrupts
US7386646B2 (en) System and method for interrupt distribution in a multithread processor
EP1685486B1 (en) Interrupt handling in an embedded multi-threaded processor to avoid priority inversion and maintain real-time operation
CN1098487C (zh) 用于影响数据处理器中的顺序指令处理的方法和装置
EP2620873B1 (en) Resource allocation method and apparatus of GPU
CN110083473B (zh) 基于risc-v架构总线访问错误的改进系统及方法
CN109933451B (zh) 一种基于risc-v架构的异常和中断处理系统及方法
US20020099893A1 (en) System and method for the handling of system management interrupts in a multiprocessor computer system
US20170212852A1 (en) Method and accelerator unit for interrupt handling
EP3265921A1 (en) Microcontroller or microprocessor with dual mode interrupt
CN114003365A (zh) 用于risc-v架构的快速中断系统
US20040049621A1 (en) Self-nesting interrupts
JP2022550059A (ja) プロセッサおよびその内部の割り込みコントローラ
US6842812B1 (en) Event handling
CN111045730B (zh) 一种用于risc-v架构的硬件快速中断处理系统及其方法
US20030037227A1 (en) Processor enabling exception handling to be set by program
US5790872A (en) Interrupt control handler for a RISC-type microprocessor
CN110059040B (zh) 一种基于risc-v架构的可嵌套异常和非屏蔽中断系统及方法
JPH07311686A (ja) コンピュータシステム、およびその中でシステム管理割込を発生し処理するための方法
US20080282072A1 (en) Executing Software Within Real-Time Hardware Constraints Using Functionally Programmable Branch Table
US20030023799A1 (en) Interrupt processing apparatus
CN117251393B (zh) 处理器的中断响应方法、装置、芯片、计算机设备和介质
US11755361B2 (en) Freedom from interference for aggregated communication channel handling using event-based processor extensions
CN117632411A (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
GR01 Patent grant
GR01 Patent grant