一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

中断处理单元、相关装置和方法与流程

2021-11-22 12:54:00 来源:中国专利 TAG:


1.本公开涉及芯片领域,具体而言,涉及一种中断处理单元、相关装置和方法。


背景技术:

2.中断是指处理单元在运行主程序时接收到处理单元外部、内部或者正在运行的主程序本身出现的紧急事件通知。处理单元在响应中断时,一般是接收到中断源(处理单元外部、内部或者主程序本身)的中断请求,立即中止主程序的运行,自动转入相应的处理程序(中断服务程序),待处理完后,再返回原来的主程序运行。为了在返回原来的主程序运行时,还能够拥有与刚刚接收到中断请求而中止主程序运行时一样的状态,在中止主程序运行的同时,要将主程序中断点信息(包括主程序中断时执行到的代码地址、中断时处理单元所处的状态、以及返回主程序执行时还需要用到的调用者保存属性的寄存器值等)写入处理单元内部或外部的存储单元,等到响应完中断请求后,从存储单元中将这些主程序中断点信息读回,以便能够利用这些主程序中断点信息继续执行主程序。
3.现有技术中,在中止主程序运行的同时,会将全部主程序中断点信息不加区别地保存,时间较长,而其中一些主程序中断点信息,例如一些通用调用者保存属性的寄存器值可能根本不会用到。将全部主程序中断点信息不加区别地保存,降低了中断响应时间,这会不满足一些中断响应实时性要求较高的场合的要求。例如,在汽车行驶控制中,主程序是控制行驶的程序。在行驶的过程中,可能通过各种传感器(温度传感器、油压传感器、速度传感器)定时上报感测到的温度、油压、速度等参数。这些参数是通过中断请求上报的。处理单元需要经常对这些中断请求进行响应,通过中断服务程序判断是否要采取相应措施。如果中断响应时间过长、实时性差,是不可接受的。


技术实现要素:

4.有鉴于此,本公开的一个目的旨在降低处理单元的中断响应时间,提高中断响应实时性。
5.根据本公开的一方面,提供了一种中断处理单元,包括:
6.收发单元,用于接收第一中断请求;
7.决策单元,用于根据所述第一中断请求,从主程序中断点信息中筛选中断保存的主程序中断点信息;
8.读写单元,用于将所述中断保存的主程序中断点信息写入存储单元,以便指令执行单元执行完所述第一中断请求后,所述读写单元从所述存储单元读取所述中断保存的主程序中断点信息,使得所述指令执行单元继续执行主程序,所述指令执行单元在所述中断处理单元外部。
9.可选地,所述主程序中断点信息至少包括主程序中断点代码地址、所述中断处理单元所属的处理单元当前状态、调用者保存属性的寄存器值中的一个或多个。
10.可选地,所述主程序中断点代码地址、所述处理单元当前状态、所述调用者保存属
性的寄存器值分别由主程序中断点代码地址寄存器、处理单元当前状态寄存器、调用者保存属性寄存器来存储;所述将所述中断保存的主程序中断点信息写入存储单元,包括:将中断保存的主程序中断点代码地址寄存器、待记录处理单元当前状态寄存器、和待记录调用者保存属性寄存器中的至少一个压出到所述存储单元。
11.可选地,所述根据所述第一中断请求,从主程序中断点信息中筛选待记录主程序中断点信息,包括:
12.将所述主程序中断点代码地址、和所述处理单元当前状态加入所述中断保存的主程序中断点信息;
13.根据所述第一中断请求的类型,从所述调用者保存属性的寄存器值中筛选出中断保存的调用者保存属性的寄存器值,加入所述中断保存的主程序中断点信息。
14.可选地,所述根据所述第一中断请求的类型,从所述调用者保存属性的寄存器值中筛选出中断保存的调用者保存属性的寄存器值,包括:按照预定规则,根据所述第一中断请求的类型,从所述调用者保存属性的寄存器值中筛选出待中断保存的调用者保存属性的寄存器值。
15.可选地,所述根据所述第一中断请求的类型,从所述调用者保存属性的寄存器值中筛选出中断保存的调用者保存属性的寄存器值,包括:将所述第一中断请求的类型输入预先训练的中断保存的调用者保存属性寄存器值筛选模型,从而得到中断保存的调用者保存属性的寄存器值。
16.可选地,如果所述收发单元在接收到所述第一中断请求后接收到第二中断请求,而所述第一中断请求所对应的所述中断保存的主程序中断点信息尚未完全写入所述存储单元,则所述读写单元继续将所述第一中断请求所对应的所述中断保存的主程序中断点信息未写入的部分写入所述存储单元,以被所述第一中断请求和所述第二中断请求所共用,所述决策单元按照所述第一中断请求和所述第二中断请求的优先级,确定第一中断请求和第二中断请求的执行顺序,并将所述执行顺序和第二中断请求发送给所述指令执行单元,由所述指令执行单元在所述中断保存的主程序中断点信息全写入所述存储单元后,按照所述执行顺序执行第一中断请求和第二中断请求。
17.可选地,所述按照所述第一中断请求和所述第二中断请求的优先级,确定第一中断请求和第二中断请求的执行顺序,包括:
18.如果所述第二中断请求的优先级大于所述第一中断请求的优先级,所述执行顺序为第二中断请求先于第一中断请求;
19.如果所述第二中断请求的优先级不大于所述第一中断请求的优先级,所述执行顺序为第一中断请求先于第二中断请求。
20.可选地,如果所述收发单元在接收到所述第一中断请求后接收到第二中断请求,所述第一中断请求已开始执行但尚未执行完毕,但所述第二中断请求的优先级大于所述第一中断请求的优先级,则所述决策单元将所述第二中断请求发给指令执行单元执行,所述读写单元将寄存器记录信息和堆位置信息写入所述存储单元,其中,所述寄存器记录信息是所述执行指令单元执行所述第一中断请求的过程中在寄存器堆中记录的信息,所述堆位置信息指示在所述寄存器堆中记录所述寄存器记录信息的位置,从而在所述第二中断请求执行完后,所述读写单元从所述存储单元读取所述寄存器记录信息和所述堆位置信息,以
便所述第一中断请求继续执行。
21.可选地,如果所述收发单元在接收到所述第一中断请求后接收到第二中断请求,所述第一中断请求已开始执行但尚未执行完毕,但所述第二中断请求的优先级不大于所述第一中断请求的优先级,则所述决策单元在所述第一中断请求执行完后,才将所述第二中断请求发给所述指令执行单元执行,且让所述存储单元中的所述中断保存的主程序中断点信息被所述第一中断请求和所述第二中断请求所共用,以便在所述第一中断请求和所述第二中断请求都执行完后,所述读写单元从所述存储单元读取所述中断保存的主程序中断点信息,使得主程序继续执行。
22.可选地,如果所述收发单元在接收到所述第一中断请求后接收到第二中断请求,所述第一中断请求已执行完毕但所述第一中断请求对应的所述中断保存的主程序中断点信息未从所述存储单元移出,则所述决策单元将所述第二中断请求发给所述指令执行单元执行,且让所述存储单元中的所述中断保存的主程序中断点信息被所述第一中断请求和所述第二中断请求所共用,以便在所述第一中断请求和所述第二中断请求都执行完后,所述读写单元从所述存储单元读取所述中断保存的主程序中断点信息,使得主程序继续执行。
23.根据本公开的一方面,提供了一种处理单元,包括:
24.如上所述的中断处理单元;
25.所述指令执行单元,用于执行所述主程序和所述第一中断请求的中断服务程序。
26.根据本公开的一方面,提供了一种片上系统,包括如上所述的处理单元。
27.根据本公开的一方面,提供了一种中断处理方法,包括:
28.接收第一中断请求;
29.根据所述第一中断请求,从主程序中断点信息中筛选待记录主程序中断点信息;
30.将所述待记录主程序中断点信息写入存储单元,以便所述第一中断请求被执行完后,从所述存储单元读取所述待记录主程序中断点信息,使得所述主程序继续被执行。
31.本公开实施例中,在响应中断请求而中止主程序运行的同时,不是将全部主程序中断点信息不加区别地保存,而是根据中断请求从全部主程序中断点信息中筛选一些该中断请求比较可能用到的主程序中断点信息,即中断保存的主程序中断点信息,保存到存储单元中,从而相对于现有技术将全部主程序中断点信息不加区别地保存的方式,减少了保存时间,从而降低处理单元的中断响应时间,提高中断响应实时性。
附图说明
32.通过参考以下附图对本公开实施例的描述,本公开的上述以及其它目的、特征和优点将更为清楚,在附图中:
33.图1是本公开一个实施例所应用的汽车电气控制系统的应用场景结构图;
34.图2是根据本公开一个实施例的处理单元的内部结构图;
35.图3是根据本公开一个实施例的中断处理单元的内部结构图;
36.图4是根据本公开一个实施例的中断处理方法的流程图。
具体实施方式
37.以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下
文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
38.在本文中使用以下术语。
39.中断:是指处理单元在运行主程序时接收到处理单元外部、内部或者正在运行的主程序本身出现的紧急事件通知。处理单元在响应中断时,一般是接收到中断源(处理单元外部、内部或者主程序本身)的中断请求,立即中止主程序的运行,自动转入相应的处理程序(中断服务程序),待处理完后,再返回原来的主程序运行。
40.主程序:处理单元在非响应中断时运行的程序,它一般经过读取指令、对指令译码、执行指令这样的过程被运行。
41.中断服务程序:用于处理单元响应中断请求的特殊程序,其也可以是由一个特殊函数入口、其子函数、孙子函数等组成的函数集。
42.中断响应时间:处理单元从接收到中断请求到响应完中断请求所用的时间。
43.中断响应实时性:当处理单元接收到中断请求后响应的及时性。通俗地讲,中断响应时间越小,中断响应实时性越强。
44.中断请求:用于要求处理单元处理中断的请求。
45.主程序中断点信息:由于处理单元需要响应中断请求而中止主程序,为了在处理完中断后返回主程序运行时,还能够拥有与刚刚接收到中断请求而中止主程序运行时一样的状态,而必须记录的中断时间点的信息。这些信息包括主程序中断点代码地址、处理单元当前状态、调用者保存属性的寄存器值等等。
46.主程序中断点代码地址:在中止主程序运行时主程序所执行到的代码地址。
47.处理单元状态:处理单元所处的状态,包括工作的模式以及相应的标志寄存器等。
48.调用者保存属性:为了区分寄存器由父函数进行调用还是由子函数进行调用,会给寄存器赋予不同的属性,其中,调用者保存属性是指寄存器由父函数进行调用,非调用者保存属性是指寄存器由子函数进行调用。本公开实施例中,调用者保存属性的寄存器会由处理单元在执行主程序时使用,非调用者保存属性的寄存器会由处理单元在响应中断请求执行中断服务程序时使用。
49.处理单元:能够对计算机指令进行读取、译码并执行的器件,它可以采用中央处理器(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)等多种形式,在某些情况下,也可以包括针对传统处理单元在一些专门用途的领域(例如,处理图像、处理深度学习模型的各种运算,等等)效率不高的情况,为了提高在这些专门用途领域中的数据处理速度而设计的处理单元,例如图形处理单元(gpu)、神经网络处理单元(npu)等。
50.压出:将寄存器按照寄存器堆栈堆放的顺序的相反顺序取出。例如,传统的寄存器堆栈是从下到上堆放寄存器的,后进来的寄存器堆放在先进来的寄存器的上面。当从寄存器堆栈取出时,按照相反的方向,即从上到下,取出堆放的寄存器。
51.片上系统(soc:system

on

a

chip):是指单个芯片上集成的一个完整的系统,一般包括上述处理单元、存储器、以及外围电路等。
52.本公开的应用场景
53.本公开应用于一些对中断响应实时性要求较高的场合,例如工业控制、汽车控制
等。这些场合一般都频繁地产生各种中断,如果中断响应时间很慢,是不可接受的。例如,在汽车行驶控制中,主程序是控制行驶的程序。在行驶的过程中,可能通过各种传感器(温度传感器、油压传感器、速度传感器)定时上报感测到的温度、油压、速度等参数。这些参数是通过中断请求上报的。处理单元需要经常对这些中断请求进行响应,通过中断服务程序判断是否要采取相应措施。如果中断响应时间过长,可能导致一些事故不能及时避免。
54.图1是本公开一个实施例所应用的汽车电气控制系统的结构图。
55.如图1所示的汽车电气控制系统1中,交流发电机4通过传动部件5联接至汽车内的内燃机2。内燃机2的热能转化为动能,通过传动部件5使交流发电机4的转子旋转以输出供电电压和电流。汽车电气控制系统1还包括电池6和一系列车辆电气负载8。电池6通过车辆电气连接线路7电连接至交流发电机4,车辆电气负载8通过车辆电气连接线路7电连接至交流发电机4和电池6。车辆电气负载8例如可包括前灯系统的电气系统和/或雨刷系统的电气系统和/或后窗除雾器系统的电气系统,或可由存在于机动车辆3中的交流发电机4供电的任何其他类型的类似电气设备。智能态电池传感器(ibs)15电连接至电池6以即时感测电池操作状态,并且被配置成测量和输出一系列电池状态参数。数据通信线路20将智能态电池传感器15连接至处理单元12。数据通信线路20可优选地但非必要地通过实现lin(local interconnect network,局域互连网络)协议的数据/控制总线的方式制成。
56.处理单元12用于运行支持汽车中各部件正常运行的控制程序,并如本公开实施例那样在接收到中断请求后执行中断服务程序。支持汽车中各部件正常运行的控制程序例如可以确定连接至交流发电机4的每个车辆电气负载8的开/关(on/off)状态,并针对处于开状态的每个车辆电气负载8确定由供电范围限定的供给约束,例如供电范围的电压或电流的最大值和最小值。处理单元12可被配置为根据电池状态参数确定每个车辆电气负载8的供电范围。处理单元12还能够接收交流发电机4的诊断输入数据和将诊断输入数据通过数据通信线路22传输至车辆仪表板21,以例如通过车辆仪表板21本身存在的交流发电机警示灯(未示出)发出指示交流发电机4的故障状况的信号。
57.智能交流发电机控制模块(iam)19电连接至交流发电机4,并且被配置成诊断交流发电机4的操作状态,以及将交流发电机诊断数据通过数据通信线路24传输至处理单元12。智能交流发电机控制模块19还被配置成根据调节电压vreg调节循环通过交流发电机4的电感/励磁电路的激励/控制电流ireg以生成供给电压v。智能交流发电机控制模块19可被配置为将交流发电机4的激励/控制电流ireg的占空比指示数据传输至处理单元12。
58.存储器14是汽车电气控制系统1的存储部件,它能够存储处理单元12在执行控制程序和响应中断时所用的各种数据。传感器13包括速度传感器、加速度传感器、温度传感器、油压传感器等,分别用于感测汽车在行驶过程中的速度、加速度、温度、油压等,生成响应的感测信号。这些感测信号是以中断请求的形式由传感器13上报到处理单元12的。处理单元12接收到这些中断请求后,中止主程序(例如上述控制汽车中各部件正常运行的控制程序、或在无人驾驶汽车中的自动驾驶程序),响应中断请求,处理上报的感测数据,采取相应的应对措施。例如,上报的感测数据在正常范围内,可以不作处理。如果不在正常范围内,采用刹车等异常处理。
59.处理单元
60.图2示出了根据本公开一个实施例的图2中处理单元12的具体结构图。
61.如图2所示,处理单元12可以包含多个处理器核120,多个处理器核120可以并行运行,以共同执行某些任务。多个处理器核120可以共享一个存储器14。存储器14用于存储由数据信号表示的指令信息和/或数据信息,例如存放处理器核120提供的数据(例如为运算结果),也可以用于实现处理器核120之间、或与外部存储设备(或称为辅助存储器或外部存储器)之间的数据交换。
62.在一些情形下,处理器核120可能需要访问存储器14,以获取存储器14中的数据或对存储器14中的数据进行修改。由于存储器14的访问速度较慢,为了缓解处理器核120与存储器14之间的速度差距,服务器140还包括与总线耦合的高速缓冲存储器18,高速缓冲存储器18用于对存储器14中的一些可能会被反复调用的程序数据或者报文数据等数据进行缓存。高速缓冲存储器18例如由静态随机存储器(static random access memory,简称为sram)等类型的存储装置实现。高速缓冲存储器18可以为多级结构,例如具有一级缓存(l1)、二级缓存(l2)和三级缓存(l3)的三级缓存结构,也可以是三级以上的缓存结构或其他类型缓存结构。在一些实施例中,高速缓冲存储器18的一部分(例如一级缓存,或一级缓存和二级缓存)可以集成在处理器核120内部(如图2的一级缓存l1、二级缓存l2)或与处理器核120集成于同一片上系统(如图2的三级缓存l3)中。
63.处理单元12执行指令的一般过程包括:从存放指令的存储器14中取出指令、对取出的指令进行译码、执行译码后的指令、保存指令执行结果等步骤,如此循环,直到执行完指令序列中的全部指令或遇到停机指令。为了实现指令的上述执行过程,处理单元12可以包含取指令单元124、指令译码单元125、指令发射单元(未示出)、指令执行单元121和指令引退单元(未示出)等。
64.取指令单元124作为处理单元12的启动引擎,用于将指令从存储器14中搬运到指令寄存器(可以是图2示出的寄存器堆26中的一个用于存放指令的寄存器)中,并接收下一个取指地址或根据取指算法计算获得下一个取指地址,取指算法例如包括:根据指令长度递增地址或递减地址。
65.取出指令后,处理单元12进入指令译码阶段,指令译码单元125按照预定的指令格式,对取回的指令进行译码,以获得取回的指令所需的操作数获取信息,从而为指令执行单元121的操作做准备。操作数获取信息例如指向立即数、寄存器或其他能够提供源操作数的软件/硬件。
66.指令发射单元通常存在于高性能的处理单元12中,位于指令译码单元125与指令执行单元121之间,用于指令的调度和控制,以将各个指令高效地分配至不同的指令执行单元121,使得多个指令的并行操作成为可能。指令经取指、译码并被调度到相应的指令执行单元121之后,相应的指令执行单元121开始执行该指令,即执行该指令所指示的操作、实现相应的功能。
67.指令引退单元(或称为指令写回单元)主要用于负责将指令执行单元121产生的执行结果写回到相应的存储位置(例如为处理单元12内部的寄存器)中,以使后续指令能够从该存储位置处快速获取相应的执行结果。
68.内存管理单元(memorymanagementunit,mmu)122用于实现虚拟地址到物理地址的转译。存储器14中存储有全部的虚拟地址到物理地址的映射表项。这样,当要访问存储器14时,先将访问指令中的虚拟地址通过映射表项转换为物理地址,再根据物理地址访问存储
器14。内部管理单元122存储了一部分常用的虚拟地址到物理地址的映射表项。当对存储器14的数据访问指令被取指令单元124获取之后,指令译码单元125可以对数据访问指令进行译码处理,使得数据访问指令的源操作数可被获取。译码处理后的数据访问指令被提供至相应的指令执行单元121中,该指令执行单元121可以对访存指令的源操作数进行相应的运算以获得访存指令对应的虚拟地址,以该虚拟地址向内存管理单元122发起地址转译请求。内存管理单元122响应地址转译请求,并根据自身存储的表项将地址转译请求中的虚拟地址转换为物理地址。如果该映射地址不在自身存储的表项内,内存管理单元122向存储器14获取相应的表项,得到对应的物理地址。得到该物理地址后,指令执行单元121可以根据得到的物理地址访问存储器14。
69.存储器14和高速缓冲存储器18之间的信息交互通常按块来组织。在一些实施例中,高速缓冲存储器18和存储器14可以按照相同的空间尺寸被划分成数据块,数据块可以作为高速缓冲存储器18和存储器14之间的数据交换的最小单位(包括预设长度的一个或多个数据)。为了表述简洁清晰,下面将高速缓冲存储器18中的各个数据块简称为缓存块(可以称为cacheline或高速缓存线),且不同的缓存块具有不同的缓存块地址;将存储器14中的各个数据块简称为内存块,且不同的内存块具有不同的内存块地址。缓存块地址例如包括用于定位数据块的物理地址标签。
70.由于受到空间和资源的限制,高速缓冲存储器18无法对存储器14中的全部内容都进行缓存,即高速缓冲存储器18的存储容量通常小于存储器14,高速缓冲存储器18提供的各个缓存块地址无法对应存储器14提供的全部内存块地址。处理单元12在需要访问内存时,首先经总线访问高速缓冲存储器18,以判断所要访问的内容是否已被存储于高速缓冲存储器18中,如果是,则高速缓冲存储器18命中,此时处理单元12直接从高速缓冲存储器18中调用所要访问的内容;如果处理单元12需要访问的内容不在高速缓冲存储器18中,则处理单元12需要经总线访问存储器14,以在存储器14中查找相应的信息。因为高速缓冲存储器18的存取速率非常快,因此当高速缓冲存储器18命中时,处理单元12的效率可以显著提高,进而也使整个处理单元12的性能和效率得以提升。
71.在一些实施例中,如图2所示,处理单元12可以包括寄存器堆126(registerfile),寄存器堆126可以包括用于存储不同类型的数据和/或指令的多个寄存器,这些寄存器可以是不同类型的。例如,寄存器堆126可以包括:整数寄存器、浮点寄存器、状态寄存器、指令寄存器和指针寄存器等。寄存器堆126中的寄存器可以选用通用寄存器来实现,也可以根据处理单元12的实际需求采用特定的设计。寄存器堆126还包括调用者保存属性的寄存器和非调用者保存属性的寄存器。调用者保存属性的寄存器是由父函数调用的寄存器。非调用者保存属性的寄存器是由子函数调用的寄存器。本公开实施例中,调用者保存属性的寄存器会由指令执行单元121在执行主程序时使用,非调用者保存属性的寄存器会由指令执行单元121在响应中断请求执行中断服务程序时使用。
72.中断处理单元127是为中断的响应和恢复保存必要的信息的单元。注意,它不是对中断进行服务的单元。对中断进行服务、执行中断服务程序的单元仍然是指令执行单元121。中断处理单元127只是为这种服务提供必要的参数保存等准备工作。由于指令执行单元121需要响应中断请求而中止主程序,为了在处理完中断后返回主程序运行时,还能够拥有与刚刚接收到中断请求而中止主程序运行时一样的状态,必须由中断处理单元127向存
储单元记录中断时间点的各种状态信息,即主程序中断点信息。等待指令执行单元121响应完中断后,再读回该主程序中断点信息,以便按照该主程序中断点信息继续执行主程序。中断处理单元127就是为中断响应做这些准备工作的单元。它是本公开实施例改进的主要部件。
73.中断处理单元
74.图3是根据本公开一个实施例的中断处理单元127的内部结构图。如图3所示,该中断处理单元127可以包括读写单元1271、决策单元1273、收发单元1272。
75.收发单元1272接收来自中断源的第一中断请求。中断源即中断请求的来源,其可以位于处理单元12外部、内部或者主程序本身。在图3中,它体现为传感器13。传感器13感测到汽车行驶中的温度、油压等参数,通过中断请求上报中断处理单元127,以便指令执行单元121确定是否要采取特殊处理,等等。中断请求是用于要求处理单元12中止正在执行的主程序、处理中断的请求。在图3中,传感器13通过中断请求定期上报感测的各种参数,指令执行单元121中止主程序,基于这些感测参数确定是否采取某种措施,然后继续主程序的处理。主程序是处理单元在非响应中断时运行的程序。
76.决策单元1273根据所述第一中断请求,从主程序中断点信息中筛选中断保存的主程序中断点信息。
77.主程序中断点信息是处理单元12在响应中断请求而中止主程序的中断时间点的状态信息。当中断处理完后,返回主程序时要依靠这些状态信息继续运行主程序。主程序中断点信息至少包括主程序中断点代码地址、处理单元当前状态、调用者保存属性的寄存器值中的一个或多个。主程序中断点代码地址是在中止主程序运行时主程序所执行到的代码地址。中断处理完后,要找到这个地址,才能继续执行剩下的主程序。处理单元当前状态是指处理单元中止主程序时所处的状态,包括工作的模式(例如用户模式)以及相应的标志寄存器等。中断处理完后,要恢复到中止主程序时完全一样的工作模式,且标志寄存器等需要完全保持不变,即运行主程序的环境不变,才不会运行错误。由于调用者保存属性的寄存器由处理单元12在执行主程序时使用,非调用者保存属性的寄存器会由处理单元12在响应中断请求执行中断服务程序时使用,因此,调用者保存属性的寄存器的值也需要记录下来,并在中断处理完后恢复,否则运行主程序时如果主程序调用这些寄存器的值就会出错。现有技术是将所有这些主程序中断点信息不加区分地记录,以便主程序恢复运行时使用,记录量很大。而本公开实施例从中筛选出第一中断请求可能会用到的那部分主程序中断点信息,即中断保存的主程序中断点信息,进行记录,大大减少了需要记录的信息量,减少中断响应时间。
78.在一个实施例中,从主程序中断点信息中筛选中断保存的主程序中断点信息,可以通过预定规则进行。预定规则可以是中断请求的类型与中断保存的主程序中断点信息对应关系表。中断请求的类型例如是上报感测的温度的中断请求、上报感测的油压的中断请求、外部强制执行某种动作(例如刹车)的中断请求。中断请求的类型可以在第一中断请求中携带。当中断请求是上报感测的温度的中断请求时,往往需要记录某些特定的主程序中断点信息,而有些主程序中断点信息是不需要的。当中断请求是上报感测的油压的中断请求时,往往需要记录另一些特定的主程序中断点信息,而有些主程序中断点信息也是不需要的。事先将中断请求的类型与中断保存的主程序中断点信息的对应关系记录下来。当之
后接收到某种类型的中断请求后,就查找记录的对应关系表,得到相应的中断保存的主程序中断点信息。该实施例的优点是操作简单、查找效率高,有利于提高中断响应实时性。
79.在一个实施例中,从主程序中断点信息中筛选中断保存的主程序中断点信息,可以使用中断保存的主程序中断点信息筛选模型。它是一个机器学习模型,例如深度学习模型。记录历史上响应不同中断请求时发生改变的主程序中断点信息,这些发生改变的主程序中断点信息就是在响应中断请求前需要记录的主程序中断点信息。将这些历史上的中断请求作为样本输入模型,由模型判定需要记录的主程序中断点信息,与预先得到的响应中断请求时发生改变的主程序中断点信息对比,如果在所有样本中对比一致的样本比率超过预定比率,就认为模型训练成功。将第一中断请求的类型输入预先训练的该模型,就得到中断保存的中断保存的主程序中断点信息。由于它采用训练模型的方式,大大提高了筛选中断保存的主程序中断点信息的准确率,有利于提高恢复后主程序执行的正确性。
80.另外,考虑到主程序中断点信息中,主程序中断点代码地址基本是任何情况下恢复主程序运行都需要的,处理单元当前状态也在大多数情况下被需要,而调用者保存属性的寄存器值经常是一部分被需要,一部分不需要,因此,在另一个实施例中,可以将所述主程序中断点代码地址、和所述处理单元当前状态全部直接加入中断保存的主程序中断点信息中不加取舍,而重点对于调用者保存属性的寄存器值进行筛选。筛选时,可以根据所述第一中断请求的类型,从所述调用者保存属性的寄存器值中筛选出中断保存的调用者保存属性的寄存器值,加入所述中断保存的主程序中断点信息。相比于完全筛选主程序中断点信息的方式,它进一步提高了中断响应实时性。
81.在根据所述第一中断请求的类型,从所述调用者保存属性的寄存器值中筛选出中断保存的调用者保存属性的寄存器值时,可以采用与前述从主程序中断点信息中筛选中断保存的主程序中断点信息类似的方式,即可以按照预定规则(例如中断请求类型与中断保存的调用者保存属性的寄存器值对应关系表),也可以使用预先训练的中断保存的调用者保存属性寄存器值筛选模型,将所述第一中断请求的类型输入预先训练的中断保存的调用者保存属性寄存器值筛选模型,从而得到中断保存的调用者保存属性的寄存器值。中断保存的调用者保存属性寄存器值筛选模型的训练方式与前述中断保存的主程序中断点信息筛选模型的训练方式类似,为节约篇幅,故不赘述。采用前一种方式,有利于提高中断响应实时性;采用后一种方式,有利于恢复主程序执行时执行效果更准确。
82.读写单元1271将所述中断保存的主程序中断点信息写入存储单元130。该存储单元130可以在处理单元12内部,例如图2中的高速缓存存储器18,也可以在处理单元12外部,例如图2中的存储器14。然后,决策单元1273将第一中断请求发送到指令执行单元121利用中断服务程序执行。指令执行单元121执行完所述第一中断请求后,通知决策单元1273。决策单元1273通知读写单元1271从所述存储单元130读取所述中断保存的主程序中断点信息,发送回指令执行单元121,以便所述指令执行单元121利用中断保存的主程序中断点信息继续执行主程序。
83.在一个实施例中,如果指令执行单元121在执行第一中断请求的过程中,需要使用所述中断保存的主程序中断点信息以外的附加主程序中断点信息,即除了中断处理单元127写入存储单元130的那些主程序中断点信息之外,又需要使用其他主程序中断点信息。这说明预估的中断保存的主程序中断点信息不准确,需要把这些又要使用的附加主程序中
断点信息重新记录到存储单元130中,这样,中断响应完后,恢复执行主程序时,将这些主程序中断点信息全都恢复回来,才不会影响主程序执行。本公开实施例实际上是提供了一种先快速预估最可能需要的主程序中断点信息加以预先记录,在实际需要与预估不符时再少量补充记录的方式,兼顾效率和准确率。
84.当指令执行单元121需要附加主程序中断点信息时,通知决策单元1273。决策单元1273通过读写单元1271将所述附加主程序中断点信息补充进所述中断保存的主程序中断点信息。
85.在一个实施例中,所述主程序中断点代码地址、所述处理单元当前状态、所述调用者保存属性的寄存器值分别由主程序中断点代码地址寄存器、处理单元当前状态寄存器、调用者保存属性寄存器存储,这些寄存器位于寄存器堆126中。将所述中断保存的主程序中断点信息写入存储单元130时,可以采用将中断保存的主程序中断点代码地址寄存器、中断保存的处理单元当前状态寄存器、和中断保存的调用者保存属性寄存器中的至少一个压出到所述存储单元130的方式。
86.接到多个连续中断请求的处理
87.i、中断保存的主程序中断点信息尚未完全写入所述存储单元130时又接收到其它中断请求
88.如果所述收发单元1272在接收到所述第一中断请求后接收到第二中断请求,而所述第一中断请求所对应的中断保存的主程序中断点信息尚未完全写入所述存储单元130,这时候,第二中断请求所对应的中断保存的主程序中断点信息实际上与第一中断请求所对应的中断保存的主程序中断点信息是一致的,可以让读写单元1271继续将所述第一中断请求所对应的中断保存的主程序中断点信息未写入的部分写入所述存储单元130,以被所述第一中断请求和所述第二中断请求所共用。然后,决策单元1273按照所述第一中断请求和所述第二中断请求的优先级,确定第一中断请求和第二中断请求的执行顺序,并将所述执行顺序和第二中断请求发送给所述指令执行单元121。指令执行单元121此时虽然早已在先接收到了第一中断请求,但由于对应的中断保存的主程序中断点信息尚未完全写入存储单元130,因此指令执行单元121尚未对第一中断请求进行处理。得到该执行顺序后,指令执行单元121就可以按该顺序来执行第一中断请求和第二中断请求。如果所述第二中断请求的优先级大于所述第一中断请求的优先级,所述执行顺序为第二中断请求先于第一中断请求,指令执行单元121就先执行第二中断请求,再执行第一中断请求。如果所述第二中断请求的优先级不大于所述第一中断请求的优先级,所述执行顺序为第一中断请求先于第二中断请求,指令执行单元121就先执行第一中断请求,再执行第二中断请求。在指令执行单元121执行完两个中断请求后,通知决策单元1273。决策单元1273通知读写单元1271将所述第一中断请求和所述第二中断请求共用的中断保存的主程序中断点信息从存储单元130读出。指令执行单元121按照该中断保存的主程序中断点信息继续执行主程序。
89.上述实施例在中断保存的主程序中断点信息尚未完全写入所述存储单元130时又接收到其它中断请求的情况下,既使得不同优先级的中断请求能够按优先级执行,又在保证优先级的前提下最大限度提高了中断响应实时性。
90.ii、中断请求已经开始执行但尚未执行完毕时又接收到其它中断请求
91.如果所述收发单元1272在接收到所述第一中断请求后接收到第二中断请求,而所
述第一中断请求已被指令执行单元121执行但尚未执行完毕,这时第一中断请求所对应的中断保存的主程序中断点信息是已经完全写入了存储单元130的。这时有两种情况。第一种情况是第二中断请求的优先级大于所述第一中断请求的优先级,这时指令执行单元121对第一中断请求的执行也要中止,要立刻执行第二中断请求,即发生中断嵌套。第二种情况是第二中断请求的优先级不大于所述第一中断请求的优先级,即未发生中断嵌套。这种情况下,不打断第一中断请求的执行,只要在第一中断请求执行完后让指令执行单元121执行第二中断请求,再恢复执行主程序就可以了。下面对这两种情况分别描述。
92.在第一种情况下,第二中断请求的优先级大于所述第一中断请求的优先级,决策单元1273要立刻将所述第二中断请求发给指令执行单元121,指令执行单元121要中止执行第一中断请求,立刻执行第二中断请求。由于第二中断请求打断了第一中断请求的执行,这时需要将第一中断请求已经执行的部分引起的变化记录下来,等到第二中断请求执行完,再根据这部分记录的内容恢复执行第一中断请求。没有这部分信息,就无法在恢复后正确执行第一中断请求。这部分需要记录的内容包括寄存器记录信息和堆位置信息。寄存器记录信息是指令执行单元121执行所述第一中断请求的过程中在寄存器堆126中记录的信息。只有把这些记录的信息先保存到存储单元130,等到第二中断请求执行完再恢复到寄存器堆126中,指令执行单元121才能继续以此继续执行完第一中断请求剩下的部分,因此,需要把该信息记录到存储单元130。堆位置信息指示在所述寄存器堆中记录所述寄存器记录信息的位置。没有该信息,就无法正确找到寄存器记录信息,因此,需要把该信息记录到存储单元130。在指令执行单元121执行完第二中断请求后,通知决策单元1273。决策单元1273通知读写单元1271将该寄存器记录信息和堆位置信息从存储单元130读出,恢复到寄存器堆126中,指令执行单元121以此继续执行完第一中断请求剩下的部分。在指令执行单元121执行完第一中断请求后,通知决策单元1273。决策单元1273通知读写单元1271将所述第一中断请求对应的中断保存的主程序中断点信息从存储单元130读出。指令执行单元121按照该中断保存的主程序中断点信息继续执行主程序。上述实施例巧妙地通过嵌套向存储单元130记录恢复主程序运行需要的信息、和恢复第一中断请求执行需要的信息,高效处理了中断嵌套的情况。
93.在第二种情况下,第二中断请求的优先级不大于所述第一中断请求的优先级。这种情况下,不打断第一中断请求的执行,只要在第一中断请求执行完后让指令执行单元121执行第二中断请求,再恢复执行主程序就可以了。这时,可以认为,第二中断请求所对应的中断保存的主程序中断点信息实际上与第一中断请求所对应的中断保存的主程序中断点信息是一致的。因此,让存储单元130中已记录的第一中断请求所对应的中断保存的主程序中断点信息被第一中断请求和第二中断请求所共用。决策单元1273可以在所述第一中断请求执行完后,才将所述第二中断请求发给指令执行单元121执行。指令执行单元121执行完第一中断请求后,执行第二中断请求,然后通知决策单元1273。决策单元1273通知读写单元1271将所述第一中断请求和所述第二中断请求共用的中断保存的主程序中断点信息从存储单元130读出。指令执行单元121按照该中断保存的主程序中断点信息继续执行主程序。该实施例在第一中断请求已经开始执行但尚未执行完毕时又接收到第二中断请求的情况下,让第一中断请求对应的中断保存的主程序中断点信息能够为第二中断请求复用,减少了重复向存储单元130写入,提高了中断响应实时性。
94.iii、中断请求已执行完毕但对应的所述中断保存的主程序中断点信息未从所述存储单元移出时又接收到其它中断请求
95.如果所述收发单元1272在接收到所述第一中断请求后接收到第二中断请求,而所述第一中断请求已执行完毕但所述第一中断请求对应的所述中断保存的主程序中断点信息未从所述存储单元移出,这时也可以认为,第二中断请求所对应的中断保存的主程序中断点信息实际上与第一中断请求所对应的中断保存的主程序中断点信息是一致的。因此,让存储单元130中已记录的第一中断请求所对应的中断保存的主程序中断点信息,被第一中断请求和第二中断请求所共用。决策单元1273将第二中断请求发给指令执行单元121执行。指令执行单元121执行完第二中断请求后,通知决策单元1273。决策单元1273通知读写单元1271将所述第一中断请求和所述第二中断请求共用的中断保存的主程序中断点信息从存储单元130读出。指令执行单元121按照该中断保存的主程序中断点信息继续执行主程序。该实施例在第一中断请求已执行完毕但对应的中断保存的主程序中断点信息未从存储单元130移出时又接收到第二中断请求的情况下,让第一中断请求对应的中断保存的主程序中断点信息能够为第二中断请求复用,减少了重复向存储单元130写入,提高了中断响应实时性。
96.中断处理方法
97.如图4所示,根据本公开的一个实施例,还提供了一种中断处理方法,它由图2的中断处理单元127执行,该方法包括:
98.步骤410、接收第一中断请求;
99.步骤420、根据所述第一中断请求,从主程序中断点信息中筛选中断保存的主程序中断点信息;
100.步骤430、将所述中断保存的主程序中断点信息写入存储单元,以便所述第一中断请求被执行完后,从所述存储单元读取所述中断保存的主程序中断点信息,使得所述主程序继续被执行。
101.上述方法的各步骤的实现细节已经在上文中结合装置实施例进行了详细描述,为了节约篇幅,故不赘述。
102.本公开实施例的商业价值
103.本公开实施例根据实际使用情况按需保存主程序中断点信息到存储单元,最大程度地减少了恢复主程序运行需要的信息的保存时间,提高了中断响应实时性。其可用于现有的各种芯片,使芯片的性能大幅提升,具有广阔的市场价值。
104.应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于装置和系统实施例中描述的方法,所以描述的比较简单,相关之处参见其他实施例的部分说明即可。
105.应该理解,上述对本说明书特定实施例进行了描述。其它实施例在权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
106.应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。
107.还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献