发明名称 |
处理异常事件的装置和方法 |
摘要 |
处理电路(4)具有用于处理异常事件的多个异常状态EL0-EL3,该异常状态包括基本级别异常状态EL0及至少一个进一步级别异常状态EL1-EL3。每个异常状态具有相应的堆栈指针,其指示相应的堆栈数据储存器(35)在所述存储器中的所处位置。当该处理电路处于基本级别异常状态EL0中时,堆栈指针选择电路(40)将该基本级别堆栈指针选作指示当前堆栈数据储存器的当前堆栈指针,以供该处理电路(4)使用。当该处理电路(4)处于进一步的异常状态中时,该堆栈指针选择电路(40)将对应于所述当前进一步级别异常状态的所述基本级别堆栈指针或所述进一步级别堆栈指针选作当前堆栈指针。 |
申请公布号 |
CN102804134B |
申请公布日期 |
2015.02.25 |
申请号 |
CN201180014331.5 |
申请日期 |
2011.02.28 |
申请人 |
ARM 有限公司 |
发明人 |
理查德·罗伊·格里森思怀特 |
分类号 |
G06F9/30(2006.01)I;G06F9/318(2006.01)I;G06F9/38(2006.01)I |
主分类号 |
G06F9/30(2006.01)I |
代理机构 |
北京东方亿思知识产权代理有限责任公司 11258 |
代理人 |
宋鹤 |
主权项 |
一种数据处理装置,包括:处理电路,所述处理电路被配置为处理数据,所述处理电路具有多个异常状态,所述异常状态包括基本级别异常状态及至少一个进一步级别异常状态;至少一个异常返回寄存器,所述异常返回寄存器用于储存异常返回数据以控制所述处理电路从处理异常事件返回,所述至少一个进一步级别异常状态各具有相应的异常返回寄存器,在处于相应的进一步级别异常状态中时,所述异常返回寄存器由所述处理电路专用;基本级别堆栈指针寄存器,所述基本级别堆栈指针寄存器用于储存基本级别堆栈指针以便在所述处理电路处于所述异常状态中的任何一者时使用,所述基本级别堆栈指针指示基本级别堆栈数据储存器在存储器中的位置;至少一个进一步级别堆栈指针寄存器,所述至少一个进一步级别堆栈指针寄存器中的每一个分别用于储存相应的进一步级别堆栈指针,每个进一步级别堆栈指针专用于所述处理电路处于相应的进一步级别异常状态中时,并且,指示相应的进一步级别堆栈数据储存器在所述存储器中的位置;以及堆栈指针选择电路,所述堆栈指针选择电路被配置为选择当前堆栈指针,并且,被配置为控制所述处理电路在处理数据时使用由所述当前堆栈指针所指示的当前堆栈数据储存器;其中:当所述处理电路处于所述基本级别异常状态中时,所述堆栈指针选择电路被配置为将所述基本级别堆栈指针选作所述当前堆栈指针;以及当所述处理电路处于所述至少一个进一步级别异常状态中的一者时,所述堆栈指针选择电路被配置为将所述基本级别堆栈指针及对应于当前进一步级别异常状态的所述进一步级别堆栈指针中的一者选作所述当前堆栈指针,所述处理电路继续使用对应于所述当前进一步级别异常状态的所述异常返回寄存器,而不论所述当前堆栈指针是所述基本级别堆栈指针还是所述进一步级别堆栈指针。 |
地址 |
英国剑桥 |