微型计算机和中断控制方法

文档序号:6358062阅读:210来源:国知局
专利名称:微型计算机和中断控制方法
技术领域
本发明涉及用于执行中断处理的微型计算机和微型计算机的中断控制方法,更具体地说,涉及中断处理中的寄存器数据保存方法。
背景技术
近年来,微型计算机已经用在包括移动电子装置,例如,便携式电话、家用器具、以及用于汽车的电子控制设备的各种电子装置中。随着这种电子装置和计算机的更高的性能,要求进一步改进微型计算机的处理能力。在微型计算机的处理器中,当生成具有比正执行的指令更高优先级的中断时,中断正执行的指令,并且执行中断序列。当开始中断处理时,处理器在堆栈存储器中临时保存程序状态字(PSW)和程序计数器(PC)的数据,以及通用寄存器的数据(上下文)。在完成中断处理后,能使所保存的上下文返回到PSW、PC和通用寄存器,以便重启被中断的处理。图IA和IB是表示与根据常规示例的微型计算机的中断处理有关的电路的结构的框图。参考图IA和1B,将详细地描述根据常规示例的中断处理。根据常规示例的微型计算机包括中断控制器100、处理器200、指令存储器300和数据存储器400。根据输入的中断信号,中断控制器100将中断向量INTVCT和中断请求 INTREQ发送到处理器200。此时,中断控制器100参考为每一中断信号设置的优先级PR,并且将具有较高优先级I3R的中断向量IVCT输出到处理器200。当将中断请求INTREQ设置成“1”时,处理器200从指令存储器300读取对应于中断向量INVCT的指令,并且执行该指令。此时,处理器200中断正在执行的处理并且将处理中,由寄存器文件204保持的数据(上下文)保存到数据存储器400中。详细地说,处理器200包括中断处理控制电路201、取指令控制电路202、指令执行部203、和寄存器文件204。中断处理控制电路201控制中断处理的执行,并且将中断处理的请求的接受和中断处理的完成通知给中断控制器100。响应于中断请求INTREQ,中断处理控制电路201控制取指令控制电路202来提取对应于中断向量INVCT的指令。指令执行部203执行由取指令控制电路202提取的指令,用于中断处理。当开始中断处理时,指令执行部203将寄存器文件204的数据保存在数据存储器 400(例如,堆栈存储器)中。具体地,指令执行部203首先将PC和PSW的数据保存到数据存储器400中,然后,将通用寄存器RO至R31的数据保存到数据存储器400中。当完成寄存器文件204的数据的保存时,指令执行部203执行对应于中断请求的处理。当结束该中断处理时,响应于返回指令,指令执行部203将保存到数据存储器400 中的数据返回到寄存器文件204中,并且重启被中断的处理。通过对寄存器文件204的数据进行保存和执行中断处理,在不破坏寄存器文件 204的数据的情况下,通过使用任何通用寄存器,能执行该中断处理。将在中断处理中使用的通用寄存器的范围有时由中断处理的数据而预先确定。然而,在常规示例中,因为不能指定将在中断处理中使用的通用寄存器,因此,有必要总是指定可能在中断处理中使用的所有寄存器,而与中断处理的数据无关。例如,当将用在第一中断处理中的通用寄存器为寄存器RO至R4,并且将用在第二中断处理中的通用寄存器为寄存器RlO至R14时,有必要保存寄存器RO至R4以及RlO至R14的数据,即使将执行的中断处理为第一中断处理。在这种情况下,浪费了用于保存寄存器RlO至R14的数据所花费的时间以及用于保存的存储器容量。如上所述,在根据常规示例的中断处理中,由于相同的寄存器用于不同的中断因素,甚至保存不必保存的寄存器数据。为此。寄存器数据保存所需的时间将会增加,并且要求增加保存所需的存储区域。尤其是,当中断处理的频率增加时,寄存器数据保存花费相当长的时间,从而导致程序的处理能力降低。在专利文献1中,通过提供用于标识由用户程序所使用的寄存器组的寄存器使用标识符以及基于寄存器使用标识符,指定所保存的寄存器,确定将用于中断处理而保存的寄存器。由此,对每一用户程序,能改变用于该中断处理而保存的寄存器,以致不浪费用于保存和返回所需的时间,以及用于保存的存储器容量。引用清单[专利文献 1] JP HO9-I3^92A

发明内容
根据专利文献1中所述的中断控制方法,将保存的寄存器数据和用于执行寄存器数据的保存和返回的指令序列被指定为每一用户程序而设置的寄存器使用标识符,以及通过执行指定的指令序列,执行用于该用户程序的寄存器数据的保存和返回。在专利文献1中,基于预定的寄存器使用标识符或对应于在执行用户程序时设置的程序的寄存器使用标识符,指定待保存的寄存器数据。为此,可以仅保存由正在执行的程序所使用的寄存器的数据,而与在中断处理中寄存器数据是否被改变无关。通常,用在主例程中的寄存器的数量大于用在中断处理中执行的子例程(中断处理程序)中的寄存器的数量。为此,基于执行为主例程的用户程序所指定的寄存器的数量通常大于用在中断处理中的寄存器的数量。由此,当基于用户程序,确定待保存的寄存器数据时,存在通过中断处理而未被破坏的寄存器数据被保存的情形,导致用于保存的时间和用于保存的存储容量增加。此外,在专利文献1中,由于对每一程序,在存储器中准备保存指令序列和返回指令序列,所以存储容量需要增加。尤其是,当考虑中断嵌套(多个中断)时,需要对正执行中断处理的程序,准备寄存器使用标识符、保存指令序列、和返回指令序列。标识符和指令序列抑制能由另一程序使用的存储区,使得存储容量增加。在专利文献1中未描述当中断嵌套发生时的寄存器数据保存处理方法。如果,如同用户程序一样,通过使用对应于正在执行的中断处理的寄存器使用标识符,指定待保存的寄存器数据,那么每次中断发生时,需要执行设置寄存器使用标识符的处理,由此增加处理器的处理时间。此外,当执行基于寄存器使用标识符而指定的保存指令序列时,有必要从存储器提取指令序列。尤其是,当中断嵌套发生时,对中断处理的次数,由于取指令而导致的处理延迟被累积,由此降低处理器的处理能力。
6
本发明的主题是提供一种微型计算机和中断控制方法,其中,能降低在中断处理中保存的数据量。在本发明的方面中,一种微型计算机包括多个寄存器列表,其分别具有多个寄存器模式,其中,多个寄存器模式的每一个指定其数据将保存在数据存储器中的寄存器;取指令控制电路,用来响应于基于中断因素的出现而发出的中断请求,从指令存储器中提取指令代码;以及寄存器数据保存控制电路,用来响应于中断请求,从多个寄存器列表的一个获取一种寄存器模式,以及响应于中断请求,发出基于所获取的寄存器模式的微指令。指令执行部被配置成先于提取的指令代码而执行微指令,以将基于所获取的寄存器模式指定的寄存器的数据保存在数据存储器中。在本发明的另一方面中,通过分别在多个寄存器列表中设置多个寄存器模式,实现中断控制方法,其中,多个寄存器模式的每一个指定其数据将保存在数据存储器中的寄存器;响应于基于中断因素的出现而发出的中断请求,由取指令控制电路从指令存储器提取指令代码;响应于中断请求,由寄存器数据保存控制电路从多个寄存器列表的一个获取一种寄存器模式;响应于中断请求,由寄存器数据保存控制电路发出基于所获取的寄存器模式的微指令;以及由指令执行部先于提取的指令代码而执行微指令,以将基于获取的寄存器模式所指定的寄存器的数据保存在数据存储器中。因此,根据本发明,能减少在中断处理中保存的数据量。另外,能缩短中断处理时间。此外,能缩短从接收中断到开始保存上下文所花费的时间。


结合附图,从下述的某些实施例的描述,本发明的上述和其他目的、优点和特征将更显而易见,其中图IA和IB是表示与传统的微型计算机的中断处理有关的电路块的构造的图;图2A和2B是表示与根据本发明的第一实施例的微型计算机的中断处理有关的电路块的构造的图;图3是表示为每一中断因素而设置的保存模式的示例的图;图4是表示根据本发明的保存的寄存器模式ID设置寄存器单元的设置示例的图;图5是表示根据本发明的PTN设置寄存器的设置示例的图;图6是表示根据本发明,从中断接收到返回的操作的示例的流程图;图7A和7B是表示根据本发明的中断处理的操作的详情的流程图;图8A和8B表示在根据本发明的第一实施例的中断处理的操作中的时序图;图9A和9B表示在根据常规示例的中断处理的操作中的时序图;图10是表示根据本发明的第一实施例的返回处理的操作的流程图;图IlA和IlB表示在根据本发明的第一实施例的返回处理的操作中的时序图;图12A和12B是表示与根据本发明的第二实施例的微型计算机的中断处理有关的电路块的构造的图;图13表示在根据本发明的第二实施例的中断处理的操作中的时序图;图14表示在根据常规示例,通过流水线处理的中断操作的时序图15A和15B是表示与根据本发明的第三实施例的微型计算机的中断处理有关的电路块的构造的图;图16A是表示由第三实施例中的模式编号生成电路使用的模式编号表的图;图16B是表示第三实施例中的模式编号生成电路的图;以及图17A和17B表示在根据本发明的第四实施例的返回处理中的操作的时序图。
具体实施例方式(概述)根据本发明的微型计算机基于为每一中断因素设置的标识符,指定寄存器,以及仅保存在中断处理中要求保存的寄存器的数据。由此,在中断处理中保存的数据量变得小于常规示例,导致能降低寄存器数据所需的存储器容量,以及还能减少保存寄存器数据所花费的时间。根据本发明的微型计算机被提供有寄存器数据保存控制电路,用于基于微指令, 控制寄存器数据保存处理。寄存器数据保存控制电路响应于微指令,控制指令执行部来保存寄存器的数据,即,处理器的上下文。当提取用于中断处理的指令代码时,指令执行部执行微指令,以便将上下文,即,基于标识符指定的寄存器的数据保存到数据存储器中。因此, 能减少从保存寄存器数据(上下文)到执行中断处理所花费的时间,由此提高处理器的使用效率。接着,将参考附图,在下文中,详细地描述根据本发明的微型计算机。在图中,相同或类似的参考数字指定给相同或类似的部件。[第一实施例]图2A和2B是表示与根据本发明的第一实施例的微型计算机中的中断处理有关的电路块的构造的图。参考图2A和2B,第一实施例中的微型计算机被设置有中断控制器 (INTC) 1、处理器(CPU) 2、指令存储器3、和数据存储器4。中断控制器1被设置有优先级确定电路11、多个中断因素寄存器组12-0至 12-(n-l)、ISPR寄存器13、和控制电路14。其中,η为2或以上的整数。多个中断因素寄存器组12-0至12-(η-1)分别连接到多条中断信号线INTO至 INTn-I0多个中断因素寄存器组12-0至12-(n-l)的每一个被设置有标志寄存器121、优先级(PR)寄存器122、和模式编号寄存器(PTN寄存器)123。多条中断信号线INTO至INTn-I分别分配给不同的中断因素,并且分别在线路上传输中断信号。基于在中断信号线的每一条上传输的中断信号而确定的数据被设置在中断因素寄存器组12-0至12-(n-l)的相应一个中。即,将对应于不同中断因素的数据分别设置到多个中断因素寄存器组12-0至12-(n-l)。具体地,将表示中断因素出现的1位中断因素标志设置到标志寄存器121。当中断因素已经出现时,将中断因素标志“1”设置到标志寄存器121,以及当结束用于该中断因素的中断处理时,将“0”设置到标志寄存器121。将分配给中断因素的优先级设置到优先级寄存器122。优先级寄存器122是具有用于优先级的数量的位大小的寄存器。例如,当设置四个优先级的任何一个时,在多个中断因素寄存器组12-0至12-(n-l)的每一个中,设置有2 位优先级寄存器122。
标志寄存器121和优先级寄存器122具有与常规示例相同的构造。然而,本实施例中的中断控制器1进一步设置有与每一中断因素(中断信号线INTO至INTn-I的每一条) 关联的模式编号寄存器123。作为用于识别对应于中断因素的寄存器模式的标识符的寄存器模式编号(PTN)被设置在模式编号寄存器123中。在此,寄存器模式是下述数据,该数据用于指定当中断因素发生时要保存其数据的寄存器即数据保存寄存器。在稍后所述的寄存器列表中,对每一中断因素设置寄存器模式,并且对一些中断因素,可以设置相同的寄存器模式。例如,当对η条中断信号线ΙΝΤ(η个中断因素),设置四种寄存器模式,例如“0”、 “1”、“2”和“3”时,在多个中断因素寄存器组12-0至12-(η-1)的每一个中,提供2位模式编号寄存器123,并且将四种寄存器模式PTN的任何一个设置到相应的模式编号寄存器123 中。同时,中断因素信号线的数量可以为四或更多。在ISPR寄存器13中,设置当前中断处理的服务级(优先级)。例如,根据4位寄存器构成ISra寄存器13。在这种情况下,从底部开始的位位置对应于优先级“0”、“1”、“2” 和“3”的一个,并且将数据“ 1,,设置在对应于中断处理的优先级的位位置中。优先级确定电路11将在一个标志寄存器121中设置的优先级与当前中断处理的优先级进行比较,并且控制处理器2来执行具有较高优先级的处理。在此,优先级确定电路11参考多个中断因素寄存器组12-0至12-(n-l)来在优先级寄存器122中设置的优先级中,选择具有最高优先级的中断因素,并且将该最高优先级与设置到isra寄存器13的优先级进行比较。当最高优先级高于在isra寄存器13中设置的当前中断处理的优先级时,优先级确定电路11将中断请求INTREQ设置成“1”来请求中断因素,并且将被选中断因素的中断向量INTVCT (中断处理程序开始地址),连同中断请求INTREQ —起发给处理器2。此时,本实施例中的优先级确定电路11将来自被选中断因素的模式编号寄存器123的寄存器模式编号输出到处理器2。另一方面,当具有设置成“1”的标志的中断因素的所有优先级等于或小于当前中断处理的优先级时,优先级确定电路11等待对应于该中断因素的中断向量INTVCT的输出。 在这种情况下,响应于当前中断处理的完成,将具有设置成“1”的标志的中断因素的优先级中的最高优先级的中断因素的中断请求INTREQ输出到处理器2。此时,本实施例中的优先级确定电路11将来自模式编号寄存器123的中断模式编号INTPTN,连同中断向量INTVCT 和中断请求INTREQ —起,输出到处理器2。响应于来自处理器2的中断接受通知INTACK,控制电路14将由处理器2执行的中断处理的服务级(优先级)设置到Isra寄存器13。响应于来自处理器2的中断处理结束通知INTFIN,控制电路14将对应于完成的中断处理的标志寄存器121复位成“0”。处理器2被设置有中断处理控制电路21、取指令控制电路22、指令执行部23、寄存器文件24、寄存器数据保存控制电路25、寄存器列表选择电路沈、和寄存器列表单元27。中断处理控制电路21控制中断处理的执行,并且将接受中断请求和完成中断处理的通知输出到中断控制器1。响应于中断请求INTREQ,中断处理控制电路21控制取指令控制电路22从指令存储器3提取基于中断向量INTVCT而指定的中断处理程序的指令代码。指令执行部23执行由取指令控制电路22提取的指令代码,和从寄存器数据保存控制电路25获得的微指令。指令执行部23比所提取的指令代码更优先地执行从寄存器数据保存控制电路25获得的微指令。具体地,响应于从寄存器数据保存控制电路25获得的多循环微指令,指令执行部 23将寄存器文件M的一部分或全部保存到数据存储器4中。此时,寄存器数据保存控制电路25基于由寄存器列表选择电路沈选择的寄存器文件,指定用于指令执行部23的数据保存寄存器,来自所述数据保存寄存器的数据将被保存。当完成保存寄存器文件M的数据时,指令执行部23执行用于中断处理的、由取指令控制电路22提取的指令代码。寄存器数据保存控制电路25被设置有模式编号(PTN)寄存器250,其存储和保持从中断处理控制电路21通知的中断模式编号。当从中断处理控制电路21接收到中断请求 INTREQ和中断模式编号INTPTN时,寄存器数据保存控制电路25将中断模式编号INTPTN存储在模式编号寄存器250中,并且将其输出到寄存器列表选择电路沈。寄存器列表选择电路26基于在模式编号寄存器250中保持的寄存器模式编号,从寄存器列表单元27选择多个寄存器列表270的一个。在被选寄存器列表270中,将寄存器列表的每一个与一个寄存器模式编号PTN相关联,并且选择寄存器的寄存器模式。寄存器列表选择电路沈从被选寄存器列表27提取寄存器模式,并且将寄存器模式输出到寄存器数据保存控制电路25。寄存器数据保存控制电路25被设置有RAM (未示出),用于存储用于控制寄存器数据保存处理的微指令的微程序,并且将包含寄存器模式的微指令输出到指令执行部23,由此控制指令执行部23,以基于微指令,执行寄存器数据保存处理。寄存器文件M包括程序计数器(PC)寄存器Ml,其存储程序计数器(PC) ;PWS寄存器M2,其存储程序状态字(PSW) ;EIPC寄存器243,其用于在中断处理中存储PC ;EIPSW 寄存器M4,其用于在中断处理中存储PSW ;以及多个通用寄存器240 (例如32位通用寄存器 RO 至 R31)。通过这种结构,处理器2在中断许可状态中接受中断请求,并且基于所提取的寄存器模式,将寄存器的数据保存到数据存储器4中。参考图3至5,将描述为每一中断因素而设置的寄存器模式的变形。图3是表示为每一中断因素而设置的寄存器模式的示例的图。在此,示出了下述四种寄存器模式。(1)将16条中断信号线INTO至INT15用于OS中断。在这种情况下,有必要保存可能由OS破坏的13个通用寄存器R3和R20至R31的数据,并且在寄存器列表270中设置该寄存器模式,以便将这些寄存器指定为数据保存寄存器。(2)将16条中断信号线INT16至INT31用于用户中断A。在这种情况下,有必要保存七个寄存器的数据,即,可能由中断处理程序破坏的通用寄存器RO至R4、EIPC寄存器 243和EIPSW寄存器244的数据,并且将该寄存器模式设置在寄存器文件270中,以便将这些寄存器指定为数据保存寄存器。(3)将16条中断信号线INT32至INT47用于用户中断B。在这种情况下,有必要保存七个寄存器的数据,即,可能由中断处理程序破坏的通用寄存器RlO至R14、EIPC寄存器M3、和EIPSW寄存器244的数据,并且将该寄存器模式设置在寄存器列表270中,以便将这些寄存器指定为数据保存寄存器。(4)将16个中断信号线INT48至INT63用于用户中断C。在这种情况下,有必要保存10个寄存器的数据,S卩,通用寄存器R3、RlO至R14、似9至R31、EIPC寄存器243和 EIPSff寄存器244的数据,并且将该寄存器模式设置在寄存器列表270中,以便将这些寄存器指定为数据保存寄存器。上述寄存器模式⑴至⑷分别与寄存器模式编号“0”、“1”、“2”和“3”相关联。 图4是表示根据本实施例的寄存器列表单元27的示例的图。寄存器列表270包括作为表示与寄存器模式编号PTN关联的寄存器的数据的寄存器模式。在图4所示的示例中,寄存器列表单元27由四个寄存器列表构成,每一个与四个寄存器模式编号PTN的任一个关联。寄存器列表270包括用于34位的触发器,并且位位置分别对应于通用寄存器RO至R31、EIPC 寄存器243和EIPSW寄存器M4。在寄存器列表270中,将“ 1”设置到对应于数据保存寄存器的位位置,以及将“0” 设置到对应于数据未保存寄存器的位位置。因此,能在寄存器列表270中设置寄存器模式。 由于对一个寄存器模式编号PTN,提供寄存器列表单元27中的每一寄存器列表270,所以能由寄存器模式编号PTN,唯一地标识寄存器模式。在图4所示的示例中,寄存器模式(1)至 (4)分别与寄存器模式编号PTN “0”至“3”关联,并且将其设置在寄存器列表单元27中。例如,当将中断模式编号“1”通知处理器2时,选择具有寄存器模式编号“1”的寄存器列表270,并且将被选寄存器模式的寄存器的数据保存到数据存储器4中。在本实施例的中断控制器1中,对每一中断因素(中断信号线),设置寄存器模式编号PTN。图5是表示根据本实施例的模式编号寄存器123的示例的图。在图5所示的示例中,对64条中断信号线INTO至INT63的每一条,提供2位模式编号寄存器123,并且将对应于中断因素的寄存器模式编号PTN设置到中断信号线的每一条。在此,将寄存器模式编号“0”设置到中断信号线INTO至INT15,以及将寄存器模式编号“1”设置到中断信号线 INT16至INT31,将寄存器模式编号“2”设置到中断信号线INT32至INT47,以及将寄存器模式编号“3”设置到中断信号线INT48至INT63。响应于中断因素的出现,本实施例中的中断控制器1获取用于中断信号线的寄存器模式编号PTN,并且将寄存器模式编号作为中断模式编号INTPTN通知给处理器2。基于被通知的中断模式编号INTPTN,寄存器数据保存控制电路25能开始中断接受处理,并且指定数据保存寄存器(寄存器模式)并且执行寄存器数据保存处理。接着,参考图6至11B,将描述根据第一实施例的中断处理中的操作的详情。图6是表示根据本发明,从中断接受处理到返回处理的操作的示例的流程图。参考图6,将描述从中断接受处理到返回处理,再到主例程的多个中断操作的示例。当在执行指令存储器3中存储的主例程期间,许可中断请求时,具有当前状态中的最高优先级的中断请求被接受(步骤S101,S102)。其中,由于所请求的中断因素的优先级“ 1 ”高于正在执行的主例程的服务级(优先级),因此,处理器2接受该中断请求,分支到指令存储器3中存储的中断处理程序,以及执行中断例程1。此时,处理器2将基于所请求的中断因素而唯一确定的寄存器数据保存到数据存储器4中。当在中断例程1的执行期间许可新的中断请求,并且新的中断请求的最高优先级高于中断例程1的服务级(优先级)时,接受新的中断请求(步骤S201,S202)。其中,由于新的中断请求的优先级“0”高于正在执行的中断例程1的优先级“1”,因此,处理器2接受该新的中断请求,分支到中断处理程序并且执行中断例程2。此时,处理器2响应于所接受的中断请求,将寄存器数据唯一地保存到数据存储器4中。当在执行中断例程2期间,许可中断请求,然后中断例程2结束时,处理器2执行中断处理程序的返回指令(RET指令)(步骤S301,S3(^)。其中,将在步骤S202,保存到数据存储器4中的数据返回给寄存器文件24,并且重启挂起的中断例程1。当中断例程1结束时,处理器2执行中断处理程序的返回指令(RET指令)(步骤 S20)。在此,在步骤S102处保存到数据存储器4中的数据被返回到寄存器文件24,并且重启挂起的主例程。如上所述,根据本实施例,在多个中断处理中,响应于中断请求的每一个,保存对应于中断因素的数据保存寄存器的上下文(即,寄存器数据)。为此,防止对在中断处理中可能未被破坏的寄存器数据进行保存,由此降低保存的数据量。参考图7A至8B,将描述根据本实施例的中断接受处理中的操作的详情。在此,例如,假定已经将图3至5中所示的寄存器模式和寄存器模式编号PTN设置到微型计算机。图7A和7B是表示在图6中所示的步骤S102和S202的中断接受处理中的操作的详情的流程图。参考图7A和7B,中断控制器1在中断因素寄存器组中搜索标志寄存器以便检测中断因素,并且执行检测到的中断因素的优先级的比较(步骤S11)。其中,中断控制器1在具有标志寄存器121中设置的“1”的中断因素的优先级中,选择最高优先级,并且确定被选优先级是否高于正在执行的当前处理的服务级(优先级)。当被选优先级高于当前服务级时,中断控制器1将“1”设置到对应于被选优先级的中断因素的中断请求INTREQ,并且输出对应于中断因素的中断向量INTVCT和中断模式编号INTPTN(步骤S12和S13,是)。另一方面,当被选优先级不高于当前服务级时,中断控制器1返回到步骤Sll (步骤S12,否)。当许可对处理器2的中断请求时(PSW中的中断禁止标志DI =“0”),处理器2响应于中断请求INTREQ,获取中断向量INTVCT和中断模式编号INTPTN (步骤S14和S15,是)。 此时,处理器2将表示接受中断请求INTREQ的中断接受通知INTACK通知给中断控制器1。 另一方面,当禁止对处理器2的中断请求时(PSW中的中断禁止标志DI =“1”),处理器2 进入步骤Sll (步骤S14,否)。响应于中断接受通知INTACK,中断控制器1将由处理器2接受的中断请求的服务级(优先级)设置到Isra寄存器13,并且将对应于所接受的中断请求的标志寄存器121复位成“0”(步骤S 16)。在步骤S15后,处理器2响应于中断请求INTREQ,中断当前执行的指令的执行,并且进入中断禁止状态(步骤S17至S19)。更具体地说,在中断许可状态的情况下,处理器2 响应于中断请求INTREQ,中断当前执行的指令的执行,并且将中断时的PC和PSW分别存储到EIPC寄存器243和EIPSW寄存器M4 (步骤S17,S18)。由此,对在执行中断处理前的处理器2的内部状态进行存储。当存储内部状态时,处理器2设置中断禁止状态(PSW中的中断禁止标志DI = “1”)(步骤S19)。处理器2开始提取基于中断向量INTVCT而指定的中断处理程序(步骤S20)。此外,基于来自寄存器数据保存控制电路25的微指令,选择对应于中断模式编号 INTPTN的寄存器模式,并且将所选寄存器模式的寄存器的数据保存到数据存储器4中(步
12骤S21)。同时开始步骤S19至S21的处理。当结束对应于中断模式编号INTPTN的寄存器模式的寄存器数据的保存时,处理器2将对应于中断模式编号INTPTN的寄存器模式编号PTN保存到数据存储器4中(步骤 S22)。当结束寄存器数据和寄存器模式编号PTN的保存时,处理器2执行所提取的中断处理程序(步骤S23)。通过开始中断处理,结束中断接受处理。如上所述,根据本发明,响应于中断因素的出现,确定优先级并且保存对应于所接受的中断请求的寄存器数据,同时提取中断处理程序。根据本发明,由于基于寄存器模式编号PTN,唯一地标识数据保存寄存器,因此,可以仅选择和保存通过中断处理可能被破坏的寄存器的数据。由此,能降低存储容量,并且还能减少保存所需的时间。此外,由于通过在寄存器数据保存控制电路25中执行微程序来实现寄存器数据保存处理,因此,不必从指令存储器3提取指令。为此,能减少提取保存指令所需的时间,由此能减少保存处理所需的时间。图8A和8B表示根据本发明的第一实施例的中断处理的操作的时序图。参考图8A 和8B,将描述第一实施例中的中断处理的操作的详情。在此,将描述当发出多个中断请求时的操作,其中,发出具有优先级“ 1”的中断请求,然后发出具有比优先级“ 1”更高的优先级 “0”的中断请求。在此,假定如图3至5所示,设置寄存器模式、寄存器列表单元27、和模式编号寄存器123。对应于中断因素的优先级寄存器122中设置的优先级如下。S卩,将优先级 “1” (Pril)分配给中断因素INT30至INT31,将优先级“0” (PriO)分配给中断因素INT32, 将优先级“2” (Pri2)分配给中断因素INT34至INT36,以及将优先级“3” (Pri3)分配给中断因素INT33和INT37。首先,在时钟⑶,将优先级“3”的中断因素信号INT33输入到中断控制器1。此时, 假定将“0000B”设置到ISI^R寄存器13 (无当前中断处理),并且除中断因素信号INT33外无中断因素出现。为此,在中断因素INT33出现两个时钟后,在时钟C2,中断控制器1将中断因素INT33的出现通知处理器2。在此,将“1”设置到中断请求标志INTREQ,以及输出作为中断向量INTVCT的“310H”和作为寄存器模式编号INTPTN的“2H”。在时钟Cl,将具有优先级“2”(Pri2)的中断因素信号INT34输入到中断控制器1。 此时,ISPR寄存器13处于“0000B”的状态中(无当前中断处理),并且中断因素信号INT34 在其他出现的中断因素中,具有最高优先级。为此,在中断因素INT34出现两个时钟后,在时钟C3,中断控制器1将中断因素INT34的出现通知给处理器2。在此,将“1”设置到中断请求标志INTREQ,并且输出作为中断向量INTVCT的“320H”和作为寄存器模式编号INTPTN 的 “2H”。在时钟C2,将具有优先级“l”(ft~il)的中断因素信号INT31输入到中断控制器1。 此时,ISPR寄存器13处于“0000B”的状态中(无当前中断处理),并且中断因素信号INT31 在其他出现的中断因素中,具有最高优先级。为此,在中断因素INT31出现两个时钟后,在时钟C4,中断控制器1将中断因素INT31的出现通知给处理器2。在此,将“1”设置到中断请求标志INTREQ,并且输出作为中断向量INTVCT的“2F0H”和作为寄存器模式编号INTPTN 的 “1H,,。在时钟CO至C3期间,尽管处理器2处于中断许可状态中,但由于处理器2的内部状态导致不能接受中断请求。在这种情况下,不能接受中断因素INT33和INT34。在时钟C4,当处理器2进入中断接受状态时,处理器2接受从中断控制器1输出的中断向量 INTVCT “2F0H” (中断因素INT31),并且将中断接受通知INTACK返回到中断控制器1。在时钟C4,当接受中断请求时,将处理器2的内部状态(PC和PSW的值ins4(PC) 和ins4 (PSff))存储在EIPC寄存器243和EIPSff寄存器244中。在时钟C5,在中断控制器1中,响应于中断接受通知INTACK,清零中断因素INT31 的标志寄存器121。另外,响应于中断因素INT31的优先级“Pril”,将ISI3R寄存器13的第二低位设置成“1” ( “0010B”)。此外,在输出中断接受通知INTACK的处理器2中,将“1” 设置到PSW中的中断禁止标志DI,设置成中断禁止状态。在时钟C5,在接受中断请求的中断处理控制电路21的控制下,取指令控制电路22 从指令存储器3提取中断处理程序的指令(EI指令),并且寄存器数据保存控制电路25开始寄存器数据保存处理。此时,将中断模式编号PTN “1H” (PTNl)设置到模式编号寄存器 250。更具体地说,寄存器数据保存控制电路25基于在模式编号寄存器250中设置的 “1H”的模式编号INTPTN(PTm),从寄存器列表单元27提取寄存器模式。然后,寄存器数据保存控制电路25将包含所提取的寄存器模式的多循环微指令提供给指令执行部U。指令执行部M使所提取的EI指令等待,并首先执行从寄存器数据保存控制电路25提供的多循环微指令。因此,在时钟C5至C11,将包含在基于中断模式编号INTPTN “1H” (PTNl)所指定的寄存器模式中的EIPC寄存器M3、EIPSff寄存器244和通用寄存器R0、Rl、R2、R3、R4 的数据保存到数据存储器4中。同时,在时钟C12,将“1H”的寄存器模式编号PTm保存到数据存储器4中。当结束指定寄存器模式的寄存器的数据的保存时,指令执行部23在时钟C13执行所提取的EI指令(中断许可指令)。接着,从由中断向量“2F0H”指定的中断处理程序的地址,提取指令代码,以及由指令执行部23执行该中断处理程序。通过在时钟C13执行EI指令,在下一时钟C14,释放中断禁止状态。根据本发明,虽然在接受中断请求后,在时钟C5立即提取EI指令,但是在时钟C5, 执行从寄存器数据保存控制电路25提供的微指令,而不执行EI指令。在时钟C9,输入具有优先级“0” (PriO)的中断因素信号INT32。此时,ISI3R处于 “0010B”的状态中(表示具有服务级I^ril的中断处理),并且中断因素信号INT32表示其他出现的中断因素中的最高优先级。为此,在中断因素INT32出现两个时钟后,在时钟C11,中断控制器1将中断因素INT31的出现通知处理器2。其中,将“1”设置到中断请求INTREQ, 并且输出作为中断向量INTVCT的“300H”和作为寄存器模式编号INTPTN的“2H”。当由于在时钟C14,执行EI指令,而导致处理器2设置成中断许可状态,并且在时钟C16,设置成中断接受状态时,处理器2接受从中断控制器1输出的中断向量 INTVCT “300H” (中断因素INT32),并且将中断接受通知INTACK恢复到中断控制器1。接着,如在时钟C4至C13中,中断当前的中断处理,并且执行用于中断因素INT32 的寄存器数据保存处理和中断处理。更具体地说,当在时钟C16接受中断处理时,将处理器2的内部状态(PC和PSW的值:inl2(PC), int 12 (PSff))存储在 EIPC 寄存器 243 和 EIPSW 寄存器 244 中。
在时钟C17,在中断控制器1中,响应于中断接受通知INTACK,清零中断因素INT32 的标志寄存器121。此外,响应于中断因素INT32的优先级“ft~i0”,将ISra寄存器13的最低位设置成“1” ( “0011b”)。此外,在输出中断接受通知INTACK的处理器2中,将“1”设置到PSW的中断禁止标志DI,设置成中断禁止状态。在时钟C17,在由接受中断请求的中断处理控制电路21的控制下,取指令控制电路22提取中断处理程序的指令代码,即,EI指令,并且寄存器数据保存控制电路25开始寄存器数据保存处理。此时,将“2H”的中断模式编号INTPTN PTN2设置到模式编号寄存器 250。在此,寄存器数据保存控制电路25基于“ 2H”的中断模式编号INTPTN (PTN2),从寄存器列表单元27提取寄存器模式。然后,寄存器数据保存控制电路25将包含寄存器模式 “PTN2”的多循环微指令提供给指令执行部23。指令执行部23使所提取的EI指令等待,并首先执行从寄存器数据保存控制电路25提供的多循环微指令。因此,在时钟C17至C23,将基于中断模式编号INTPTN “2H”(PTN2)的EIPC寄存器243、EIPSW寄存器M4、和通用寄存器R10、R11、R12、R13、R14的数据保存到数据存储器4中,以及在时钟C24,将模式编号寄存器250中的寄存器模式编号PTN “2H” (PTN2)保存到数据存储器4中。当结束指定寄存器模式的寄存器的数据的保存时,在时钟C25,指令执行部23执行所提取的EI指令(中断许可指令)。接着,从基于中断向量“300H”而指定的中断处理程序的地址提取指令,并且由指令执行部23执行该中断处理程序。通过在时钟C25执行EI 指令,在下一时钟C26,释放中断禁止状态。如上所述,根据本发明,由于基于中断因素,能将寄存器唯一地指定为数据保存寄存器,因此,每次执行中断处理时,能仅保存可能被破坏的少量寄存器的数据。接着,将参考图9A和9B中所示的传统示例,描述根据本发明的中断接受处理的效果。图9A和9B表示根据传统示例的中断处理的时序图。根据传统示例,当在时钟C4,由处理器200接受中断请求时,在时钟C4中断所提取的指令的处理,并且在时钟C5,将PC和PSW的数据存储到EIPC寄存器和EIPSW寄存器中。 然后,从时钟C6开始以及之后,提取并执行用于保存EIPC、EIPSW和通用寄存器的数据的指令。在传统示例中,由于提取并执行用于寄存器数据保存处理的指令,因此,从中断当前处理到开始(执行)寄存器数据保存处理的周期为两个时钟。同时,根据本发明,基于从响应于由中断处理控制电路21提供的中断请求而进行操作的寄存器数据保存控制电路25 提供的微指令,对寄存器数据保存处理进行控制。即,由于在中断当前处理后,无需提取中断处理程序,就能执行寄存器数据保存处理,因此,从处理中断到开始寄存器数据保存处理的周期为1个时钟,这意味着能比传统示例更快地开始寄存器数据保存处理。根据本发明,由于在执行寄存器数据保存处理期间,已经提取将在寄存器数据保存处理后执行的指令(在本示例中,为EI指令),因此,在寄存器数据保存处理后,能立即开始中断处理程序的执行。根据传统示例,不能为每一中断因素选择数据保存寄存器。为此,在许可多个中断的系统中,有必要总是指定在所有类型的中断处理中可能被使用的所有寄存器,而与中断处理无关,因此,即使执行任一类型的中断处理,也不会破坏寄存器数据。在图9A和9B所示的示例中,将通用寄存器RO至R4和RlO至R14设置成数据保存寄存器。在这种情况下, 即使仅仅是通过中断因素INT31的中断处理而可能破坏的通用寄存器RO至R4的数据,也保存通用寄存器RlO至R14的数据,导致寄存器数据保存处理所需的时间变为从时钟C6至 C16的11个时钟。相反,根据本发明,当执行中断因素INT31的中断处理时,由于为每一中断因素选择数据保存寄存器,因此,仅选择和保存寄存器RO至R4的数据。在这种情况下,包括用于保存寄存器模式编号PTN所需的时间的寄存器数据保存处理所需的时间变为从时钟C5至 C12的8个时钟,其远小于传统示例中的时间。在传统示例中,过度地使用用于保存通用寄存器RlO至R14的数据的存储容量。然而,在本发明中,由于不执行不必要的寄存器数据保存处理,因此,能降低用于寄存器数据保存处理所需的存储容量。由此,能降低数据存储器4的容量,导致电路的小型化。接着,参考图10、11A和11B,描述根据本发明的中断返回处理中的操作的详情。图10是表示在图6所示的步骤S203和S302的返回处理中的操作的详情的流程图。参考图10,处理器2响应于在中断处理中的RET指令的执行,根据由堆栈指针 (SP)指定的数据(堆栈)存储器4的位置,读取寄存器模式编号PTN(步骤S31)。接着,基于所读取的寄存器模式编号PTN,选择寄存器数据,并且响应于从寄存器数据保存控制电路 25提供的微指令(出栈指令的操作),从数据存储器4读出响应于于微指令(进栈指令的操作)的已经在数据(栈)存储器4中存储的寄存器数据,并将其写入寄存器文件中的寄存器(步骤S3》。在此,寄存器数据保存控制电路25基于所读取的寄存器模式编号PTN来指定寄存器模式(在此,返回寄存器的寄存器模式),并且响应于微指令来将寄存器数据返回到寄存器文件对的寄存器。因此,将在中断处理中被保存到数据存储器4中的寄存器数据返回。当在步骤S32,返回EIPC和EIPSW寄存器243和M4的数据时,在紧跟EIPC和 EIPSW寄存器243和244的数据的返回的时序处,处理器2的内部状态(PC,PSW)被返回(步骤S33)。在此,将EIPC寄存器243的数据和EIPSW寄存器244的数据分别存储在PC寄存器241和PSW寄存器M2中。接着,响应于来自处理器2的中断结束通知INTFIN,改变中断控制器1中的 ISPR(中断服务优先级)寄存器13的服务级(步骤S34)。更具体地说,当执行RET指令时,处理器2在一个时钟期间,将中断结束通知INTFIN设置成“1”,并且中断控制器1响应于中断结束通知,改变isra寄存器13。 如上所述,根据本发明,由于基于所读取的寄存器模式编号PTN,唯一地指定数据将返回的寄存器,因此,能仅返回所保存的寄存器数据。此外,由于通过执行从寄存器数据保存控制电路25提供的微程序,实现中断返回处理,因此,不必从指令存储器3提取任何指令。为此,能降低用于存储中断返回处理所需的指令集的存储容量。此外,能减少提取返回指令所需的时间,能减少用于中断返回处理所需的时间。 图IlA和IlB表示根据本发明的本实施例的中断返回处理的时序图。参考图IlA 和11B,将描述根据本实施例的中断返回处理中的操作的详情。在此,例如,将根据图8A和 8B所示的中断处理来描述中断返回处理。
16
首先,在时钟⑶,结束中断因素INT32的中断处理,并且提取RET指令。在时钟Cl, 处理器2执行从寄存器数据保存控制电路25提供的微指令,并且从数据存储器4读取寄存器模式编号PTN。更具体地说,响应于提取RET指令,中断处理控制电路21向寄存器数据保存控制电路25发出指令。在时钟Cl,响应于来自中断处理控制电路21的指令,寄存器数据保存控制电路25将用于执行寄存器数据返回处理的微指令输出到指令执行部23。在时钟 C2,指令执行部23在多个循环中执行该微指令,根据由堆栈指针SP表示的位置来读取寄存器模式编号PTN( “2H”)(PTN2),以及将寄存器模式编号存储在模式编号寄存器250中。当执行微指令时,即,响应于出栈指令,从最高位置顺序地更新堆栈指针SP。在时钟C3至C9,处理器2基于模式编号寄存器250中的寄存器模式编号 PTN “2H”(PTN2),指定将向其返回数据的寄存器,并且响应于微指令,执行中断返回处理。更具体地说,寄存器数据保存控制电路25基于寄存器模式编号PTN “2H”(PTN2), 从寄存器列表单元27提取寄存器模式。然后,寄存器数据保存控制电路25将包含寄存器模式“PTN2”的多循环微指令(的寄存器数据返回指令)提供给指令执行部23。指令执行部23执行从寄存器数据保存控制电路25提供的寄存器数据返回指令。因此,在时钟C3至C9,响应于出栈指令,根据由堆栈指针SP指定的位置来读取“R14至R10”、 PSff "intl2 (PSff) ”和PC "intl2(PC) ”的数据,并且在随后的时钟,将其分别返回到由寄存器模式编号INTPTN “2H” (PTN2)指定的通用寄存器R14、R13、R12、Rll和RIO、EIPSW寄存器244和EIPC寄存器243。当在时钟C10,由指令执行部23执行RET指令时,在一个时钟期间,处理器2 (中断处理控制电路21)将返回结束通知INTFIN设置成“1”。此时,将处理器2的内部状态(PC, PSff)返回到 EIPC 寄存器 243 和 EIPSff 寄存器 244 的数据(intl2 (PC),intl2 (PSff))。从时钟Cl 1开始以及其后,基于返回的PC和PSW,重启由于中断处理而还未完成的处理。在此,在时钟Cll提取指令“Intl2”并且在时钟C12执行。当完成由于中断请求而被中断的处理时,在时钟C 13提取RET指令。在时钟C14, 处理器2执行从寄存器数据保存控制电路25提供的微指令,并且从数据存储器4读取寄存器模式编号PTN。接着,如在时钟Cl至C9中,在时钟C14到C22,按顺序读取已经保存到数据存储器4中的寄存器模式编号PTN “1H” (PTNl),以及数据“R4至R0”、PSff "int4(PSff) ”和 PC “ int4 (PC) ”,并将其返回到分别由寄存器模式编号INTPTN “ 1H"(PTNl)指定的模式编号寄存器250、以及通用寄存器R4、R3、R2、Rl和R0、EIPSff寄存器M4和EIPC寄存器M3。从时钟C24开始以及其后,响应于寄存器的返回处理的完成,执行由于中断而挂起的int4后的主例程。如上所述,在本实施例的中断返回处理中,返回所保存的寄存器模式编号PTN,并且通过使用寄存器模式编号PTN,能指定将向其返回数据的寄存器。为此,响应于微指令,能执行中断返回处理,由此减少提取返回指令所需的时间。[第二实施例]接着,将参考图12A、12B、13和14,描述根据本发明的第二实施例的微型计算机的中断处理的操作的详情。在第一实施例中,由于无需提取中断处理程序的指令代码,所以能执行寄存器数据保存处理,因此,与传统情形相比能早一个时钟地开始寄存器数据保存处理。在第二实施例中,能比第一实施例更显著地实现比传统情形更早地开始寄存器数据保存处理的效果。图12A和12B是表示与根据本发明的第二实施例的微型计算机的中断处理有关的电路块的构造的图。参考图12A和12B,第二实施例中的指令执行部23具有多级流水线构造。除指令执行部23外的构造与第一实施例中相同,因此,将省略其详细描述。第二实施例中的指令执行部23被设置有调度级(dispatch stage)DP 231、指令解码级ID 232、操作级EX 233、地址传送级DT 234、取数据级DF 235和写回级WB236。调度级DP 231基于由取指令控制电路22提取的指令代码,确定执行单元。指令解码级ID 232 解码该指令代码,生成即时数据并且从在调度级DP 231或微指令中指定的指令寄存器读取数据。操作级EX 233执行从指令寄存器读取的指令的操作,以便生成用于存储器存取的地址。地址传送级DF 234将由操作级EX233生成的地址传送到数据存储器4,并且执行存储器存取。取数据级DF 235基于由操作级EX 233生成的地址,从数据存储器4获取数据并且将数据传送给写回级WB 236。写回级WB 236将所获得的数据写入通用寄存器M0。在第二实施例的微型计算机中,通过流水线处理,加速中断处理和中断返回处理。 根据本发明,通过执行从寄存器数据保存控制电路25提供的微指令,能省略两个时钟的处理,即,指令代码的提取和解码所需的时钟的处理。因此,能比传统情形早至少两个时钟地开始寄存器数据保存处理和中断返回处理。图13表示在根据本发明的第二实施例的中断处理中的时序图。参考图13,将描述根据第二实施例的中断处理的操作的详情。在此,将描述在执行主例程期间,在时钟C4生成中断请求时的操作。如在第一实施例中,在生成中断因素INT31两个时钟后,在时钟C4,中断控制器1 将中断因素INT31的生成通知给处理器2。在此,将“1”设置到中断请求INTREQ,以及输出作为中断向量INTVCT的“2F0H”和作为中断模式编号INTPTN的“1H”。当在时钟C4,处理器2进入中断接受状态时,处理器2接受从中断控制器1输出的中断向量INTVCT “2F0H”(中断因素INT31),并且将中断接受通知INTACK返回到中断控制器1 ο当在时钟C4,接受中断请求时,将处理器2的内部状态(PC和PSW的数据 ins4 (PC),ins4 (PSff))存储在 EIPC 寄存器 243 和 EIPSW 寄存器 244 中。在时钟C5,在接受中断请求的中断处理控制电路21的控制下,取指令控制电路22 提取中断处理程序的指令(EI指令),并且寄存器数据保存控制电路25开始寄存器数据保存处理。此时,将寄存器模式编号PTN的“1H”(PTNl)设置到模式编号寄存器250。更具体地说,寄存器数据保存控制电路25从寄存器列表单元27提取基于寄存器模式编号INTPTN “1H”(PTNl)的寄存器模式。寄存器数据保存控制电路25将包含寄存器模式“PTN1”的多循环微指令提供给指令执行部23。在时钟C6,指令执行部23在下一级中, 延迟在调度级DP 231中提取的EI指令的执行。尽管在调度级DP 231中延迟EI指令,但在指令解码级ID 232和后续级中执行来自寄存器数据保存控制电路25的微指令。在此,通过基于微指令,从指令解码级ID 232 到写回级WB 236的流水线处理,执行寄存器数据保存处理。在该示例中,基于寄存器模式 “PTrn”,将EIPC寄存器M3、EIPSff寄存器244和通用寄存器MO (R0至R4)指定为数据保存寄存器。为此,通过在时钟C5至Cll中的指令解码级ID 232、时钟C6至C12中的操作级 EX 233、和时钟C7至C13中的地址传送级DT234的每一个中的处理,能在数据存储器4上保存设置到基于寄存器模式“PTN1”而指定的EIPC寄存器243、EIPSW寄存器244和通用寄存器M0(R0至R4)的数据。此外,通过在时钟C12的指令解码级ID 232、时钟C13的操作级EX 233、和时钟C14的地址传送级DT 234的每一个中的处理,能将模式编号寄存器250 中的寄存器模式编号PTN “1H” (PTNl)保存到数据存储器4中。当通过指令解码级ID 232,执行用于保存寄存器模式编号PTN的STPTN指令时, 指令执行部23执行通过从下一时钟C13开始以及其后的流水线处理,在调度级DP 231中保留和延迟的EI指令。然后,由指令执行部23执行由中断向量“2F0H”指定的指令处理程序。如上所述,根据本发明,由于能与中断接受同时地指定数据保存寄存器,并且响应于微指令来执行寄存器数据保存处理,因此,能从流水线处理中,省略取指令IF级和调度级DP的处理。为此,能比传统情形早两个时钟地执行寄存器数据保存处理。图14表示当数据保存寄存器为EIPC寄存器243、EIPSW寄存器244和通用寄存器 240 (R0至R4)时,通过流水线处理的传统中断处理的时序图。如图14所示,当数据保存寄存器与图13所示的寄存器相同时,由于在传统示例中,通过取指令级IF和调度级DP来执行寄存器数据保存处理,因此,与本发明相比,寄存器数据保存处理被延迟两个时钟。同时,根据第二实施例的中断处理,由于能基于中断因素,将寄存器唯一地指定为数据保存寄存器,因此,每次执行中断处理时,为防止数据破坏,能仅保存最少量寄存器。为此,如在第一实施例中,能降低中断处理中保存的数据量,以及还能降低用于寄存器数据保存处理所需的时间。此外,如在中断返回处理中,通过流水线处理,能使中断返回处理加速两个时钟。[第三实施例]接着,参考图15A、15B、16A和16B,将描述根据本发明的第三实施例的微型计算机。图15A和15B是与根据本发明的第三实施例的微型计算机的中断处理有关的电路块的构造的图。参考图15A和15B,在第三实施例的微型计算机中,省略第一实施例中的中断因素寄存器组12-0至12-(n-l)的每一个的模式编号寄存器123,并且提供模式编号生成电路 5。除模式编号生成电路5外的结构与第一实施例中相同,因此,省略其描述。在第一实施例中,将用于每一中断因素的寄存器模式编号PTN存储在与中断因素 INTO至INTn-I的每一个关联提供的模式编号寄存器123中,并且将寄存器模式编号通知处理器2,作为INTPTN。在第三实施例中,提供模式编号生成电路5来基于中断向量INTVCT, 输出模式编号PTN。基于在其中存储一个中断向量INTVCT和一个寄存器模式编号PTN的先前定制的集合的模式编号表,模式编号生成电路5指定对应于中断向量INTVCT的寄存器模式编号PTN,并且将指定的模式编号PTN输出到处理器2,作为中断模式编号INTPTN。因此,对每一中断因素INT,不必提供模式编号寄存器123,导致电路规模的缩减。参考图16A和16B,将描述模式编号生成电路5的构造。图16A是表示由模式编号生成电路5使用的模式编号表的图,并且图16B是表示模式编号生成电路5的构造的图。参考图16A,将寄存器模式编号PTN “0”与对应于INTO至INT15的中断向量INTVCT “0100H”至“01F0H”关联,将寄存器模式编号PTN “1”与对应于INT16至INT31的中断向量INTVCT “0200H”至“02F0H”关联,将寄存器模式编号PTN “2”与对应于INT32至 INT47的中断向量INTVCT “0300H”至“03F0H”关联,并且将寄存器模式编号PTN “3”与对应于INT48至INT61的中断向量INTVCT “0400H”至“04F0H”关联。在这种情况下,模式编号生成电路5包括用于基于16位中断向量INTVCT"0000H” 至“111IH”,输出2位寄存器模式编号PTN “00B”、“01B”、“10B”或“11B”的电路。例如,如图16B所示,模式编号生成电路5接收16位中断向量INTVCT[15:0],并且输出2位中断模式编号INTPTN[10]。此时,模式编号生成电路5通过参考图16A中所示的模式编号表,确定寄存器模式编号PTN “00B”至“11B”的任何一个。在该示例中,能将模式编号生成电路 5实现为使用图16A中所示的模式编号表的电路,因为该电路在INTVCT[10:8] = 000时, 输出 00 的 INTPTN(PTN “0,,),在 INTVCT [10:8] = 001 时,输出 01 的 INTPTN(PTN “1,,),在 INTVCT[10:8] = 011 时,输出 10 的 INTPTN(PTN “2”),以及在 INTVCT[10:8] = 100 时,输出 11 的 INTPTN(PTN “3”)。如上所述,由于模式编号生成电路5能根据中断向量INTVCT生成寄存器模式编号 PTN,因此,不需要为每一中断因素INT提供寄存器。尤其是,如图16A所示,当寄存器模式公用于多个中断因素,并且将四个寄存器模式分配给64个中断因素时,在第一实施例中, 需要提供64个模式编号寄存器123,而在本实施例中,不提供这些寄存器,也能获得寄存器模式编号PTN。即,在本实施例中,当用于待保存的数据的寄存器公用于多个中断因素INT 时,通过提供模式编号生成电路5,能减少模式编号寄存器123的数量。[第四实施例]接着,将描述根据本发明的第四实施例的微型计算机。在第一实施例中,基于在寄存器数据保存处理中保存的寄存器模式编号PTN,指定在中断返回处理中,将向其返回数据的寄存器。在第四实施例的微型计算机中,响应于作为出栈指令的例子的上下文返回指令 (CXP0P指令),指定将返回的寄存器数据,而不执行寄存器模式编号PTN的寄存器数据保存处理和中断返回处理。本实施例中的微型计算机的构造与第一实施例中类似。然而,本实施例中的微型计算机不同于第一实施例之处在于在寄存器数据保存处理中,不保存寄存器模式编号PTN,并且响应于CXPOP指令,寄存器数据保存控制电路25获取用于指定待返回的寄存器的寄存器模式编号PTN。其他结构和操作与第一实施例中相同,因此,将省略其描述。图17A和17B是表示由根据本发明的第四实施例的微型计算机的中断返回处理中的操作的流程图。参考图17A和17B,将描述根据第四实施例的中断返回处理的操作的详情。首先,在时钟⑶,结束中断因素INT32的中断处理,并且提取CXPOP指令。响应于 CXPOP指令,指定用于中断返回处理的寄存器模式编号PTN。在时钟Cl,寄存器数据保存控制电路25指定将响应于CXPOP指令返回的寄存器数据,并且控制指令执行部23以基于微指令来执行中断返回处理。因此,在时钟Cl至C7,基于堆栈指针SP,从堆栈存储器读取上下文“R14至RIO”、PSff "int 12 (PSff) ”和PC "intl2(PC) ”,并将其返回到由寄存器数据保存控制电路25指定的通用寄存器MO、EIPSW寄存器244和EIPC寄存器M3。同时,在时钟Cl,结束中断处理并且提取RET指令。其中,直到结束由寄存器数据
20保存控制电路25控制的中断返回处理的时钟C8为止,使所提取的RET指令的执行保持并将其延迟。在时钟C8,当指令执行部23执行RET指令时,在一个时钟期间,处理器2 (中断处理控制电路21)将返回结束通知INTFIN设置成“1”。此时,将处理器2的内部状态(PC, PSff)恢复成 EIPC 寄存器 243 和 EIPSff 寄存器 244 的数据(intl2 (PC),intl2 (PSff))。从时钟C9开始以及其后,基于返回的PC和PSW,重启由于中断而未完成的处理。 在此,在时钟C9提取指令“int 12”,并且在时钟ClO执行。当结束由于中断请求而中断的处理时,在时钟Cll提取CXPOP指令。在时钟C12, 处理器2执行在寄存器数据保存控制电路25中存储的微指令,并且基于响应于CXPOP指令而指定的寄存器模式编号PTN,开始寄存器数据保存处理。接着,如在时钟Cl至C7,在时钟C12至C18,依次读取保存到数据存储器4中的上下文“R4至R0”、PSW "int4(PSff) ”以及PC "int4(PC) ”,并且将其返回到由寄存器模式编号 PTN “1H” (PTNl)指定的模式编号寄存器250,以及通用寄存器1 4、1 3、1 2、1 1和R0, EIPSff 寄存器M4、和EIPC寄存器M3。从时钟C20开始以及其后,响应于对每一寄存器数据的保存的完成,执行由于中断请求而被中断的int4后的主例程。如上所述,在本实施例的中断返回处理中,由于能基于CXPOP指令,指定用于待返回的数据的寄存器,因此,能省略寄存器模式编号PTN的保存处理和中断返回处理。这能减少存储区以及用于中断处理中的保存处理和中断返回处理所需的时间。即,在本实施例中, 能进一步减少中断处理和中断返回处理所需的时间。在根据本发明的微型计算机中,由于能基于为每一中断因素而设置的中断模式编号PTN,指定数据保存寄存器或数据返回寄存器,因此,能基于多循环微指令,执行寄存器数据保存处理,而无需提取该指令。为此,能降低提取用于保存的指令所需的时间,以及能基于中断因素,指定数据保存寄存器。此外,由于能通过执行微指令,实现保存处理,因此,即使多个中断发生,与传统情形不同,也不累加用于保存处理的提取时间。为此,根据本发明,当多个中断发生时,与传统相比,能进一步减少用于中断处理的时间,因此,能提高处理器的处理能力。尽管详细地描述了本发明的实施例,但详细结构不限于上述实施例,以及不背离本发明的主题的改进落在本发明的范围内。可以组合上述实施例而不会导致技术冲突。例如,通过将第二实施例与第四实施例组合,能进一步减少用于中断处理和中断返回处理所需的时间。或者,通过将第三实施例与第二或第四实施例组合,能减少用于中断处理和中断返回处理所需的时间,同时减小电路面积。
权利要求
1.一种微型计算机,包括多个寄存器列表,所述多个寄存器列表分别具有多个寄存器模式,其中,多个寄存器模式的每一个指定下述寄存器,所述寄存器的数据将被保存在数据存储器中;取指令控制电路,所述取指令控制电路被构造成响应于基于中断因素的出现而发出的中断请求,从指令存储器提取指令代码;寄存器数据保存控制电路,所述寄存器数据保存控制电路被构造成响应于中断请求, 从所述多个寄存器列表的一个获取一个寄存器模式,并且响应于中断请求,发出基于获取的寄存器模式的微指令;以及指令执行部,所述指令执行部被构造成先于提取的指令代码而执行所述微指令,以将基于获取的寄存器模式而指定的寄存器的数据保存在数据存储器中。
2.如权利要求1所述的微型计算机,进一步包括中断控制器,所述中断控制器被构造成响应于中断请求,输出用于所述中断因素的中断向量,其中,所述取指令控制电路基于中断向量来提取指令代码。
3.如权利要求2所述的微型计算机,其中,所述中断控制器包括多个模式编号寄存器, 为所述中断因素提供多个模式编号寄存器的一个,其中,将多个模式编号存储在所述多个模式编号寄存器中,其中,除中断向量外,所述中断控制器还输出与所述中断因素相对应的多个模式编号的一个,以及其中,所述寄存器数据保存控制电路基于输出的模式编号,从所述多个寄存器列表获取所述一个寄存器模式。
4.如权利要求3所述的微型计算机,其中,所述寄存器数据保存控制电路在中断处理中,将与中断请求相对应的模式编号保存在所述数据存储器中,并且在中断返回处理中,将在所述数据存储器中保存的数据存储到基于获取的寄存器模式而指定的寄存器中。
5.如权利要求2所述的微型计算机,进一步包括模式编号生成电路,所述模式编号生成电路被构造成根据模式编号表,输出基于中断向量的多个模式编号的一个,其中在模式编号表中存储一个模式编号和一个中断向量的集I=I,其中,所述寄存器数据保存控制电路基于输出的模式编号,从所述多个寄存器列表获取所述一个寄存器模式。
6.如权利要求5所述的微型计算机,其中,在中断处理中,所述寄存器数据保存控制电路将与中断请求相对应的模式编号保存到所述数据存储器中,并且在中断返回处理中,将在所述数据存储器中保存的数据存储到基于获取的寄存器模式而指定的寄存器中。
7.如权利要求1至6中的任何一项所述的微型计算机,其中,所述指令执行部对从所述寄存器数据保存控制电路发出的微指令执行流水线处理。
8.如权利要求2至6中的任何一项所述的微型计算机,其中,多条中断信号线的每一条与中断因素关联,并且多条中断信号线的一些对应于获取的寄存器模式。
9.一种中断控制方法,包括在多个寄存器列表中分别设置多个寄存器模式,其中,多个寄存器模式的每一个指定下述寄存器,所述寄存器的数据将被保存在数据存储器中;响应于基于中断因素的出现而发出的中断请求,由取指令控制电路从指令存储器提取指令代码;响应于中断请求,由寄存器数据保存控制电路从所述多个寄存器列表的一个获取一个寄存器模式;响应于中断请求,由所述寄存器数据保存控制电路发出基于获取的寄存器模式的微指令;以及由指令执行部先于提取的指令代码而执行所述微指令,以将基于获取的寄存器模式而指定的寄存器的数据保存在数据存储器中。
10.如权利要求9所述的中断控制方法,进一步包括响应于中断请求,由中断控制器输出用于所述中断因素的中断向量, 其中,取指令控制电路基于中断向量,提取指令代码。
11.如权利要求10所述的中断控制方法,进一步包括将多个模式编号存储在所述中断控制器中的多个模式编号寄存器中,其中,为所述中断因素提供所述多个模式编号寄存器的一个, 其中,所述获取寄存器模式包括除中断向量外,还输出与所述中断因素相对应的多个模式编号的一个;以及基于输出的模式编号,从所述多个寄存器列表获取所述一个寄存器模式。
12.如权利要求11所述的中断控制方法,进一步包括在中断处理中,由所述寄存器数据保存控制电路将与中断请求相对应的模式编号保存在所述数据存储器中;以及在中断返回处理中,将在所述数据存储器中保存的数据存储到基于获取的寄存器模式而指定的寄存器。
13.如权利要求10所述的中断控制方法,进一步包括根据模式编号表输出基于中断向量的多个模式编号的一个,其中在模式编号表中存储一个模式编号和一个中断向量的集合;以及基于输出的模式编号,由所述寄存器数据保存控制电路从所述多个寄存器列表获取所述一个寄存器模式。
14.如权利要求13所述的中断控制方法,进一步包括在中断处理中,由所述寄存器数据保存控制电路将与中断请求相对应的模式编号保存到所述数据存储器中;以及在中断返回处理中,将在所述数据存储器中保存的数据存储到基于获取的寄存器模式而指定的寄存器。
15.如权利要求9至14中的任何一项所述的中断控制方法,进一步包括在所述指令执行部中,对从所述寄存器数据保存控制电路发出的微指令执行流水线处理。
16.如权利要求10至14中的任何一项所述的中断控制方法,其中,多条中断信号线的每一条与中断因素关联,并且多条中断信号线的一些对应于获取的寄存器模式。
17.如权利要求9至14中的任何一项所述的中断控制方法,其中,所述执行所述微指令包括对从所述寄存器数据保存控制电路发出的所述微指令执行流水线处理。
全文摘要
一种微型计算机和中断控制方法。其中微型计算机包括多个寄存器列表,其分别具有多个寄存器模式,其中,多个寄存器模式的每一个指定将其数据保存在数据存储器中的寄存器;取指令控制电路,其用来响应于基于中断因素的出现而发出的中断请求,从指令存储器提取指令代码;以及寄存器数据保存控制电路,其用来响应于中断请求,从多个寄存器列表的一个获取一种寄存器模式,并且响应于中断请求,发出基于所获取的寄存器模式的微指令。指令执行部被配置成先于提取的指令代码而执行微指令,以将基于由获取的寄存器模式指定的寄存器的数据保存在数据存储器中。
文档编号G06F9/30GK102214085SQ20111009438
公开日2011年10月12日 申请日期2011年4月12日 优先权日2010年4月12日
发明者松山英树 申请人:瑞萨电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1