一种基于sparcv8处理器的存储器精确陷阱控制结构与方法

文档序号:9471249阅读:708来源:国知局
一种基于sparcv8处理器的存储器精确陷阱控制结构与方法
【技术领域】
[0001]本发明涉及对SPARC V8处理器中存储器的数据校验错误控制领域,具体为一种基于SPARCV8处理器的存储器精确陷阱控制结构与方法。
【背景技术】
[0002]现代微处理器在执行指令的过程中,除了响应外部中断以外,其内部还可能触发两种类型的陷阱(有时也称为异常),分别是精确陷阱和延迟陷阱。精确陷阱是指发生陷阱时,导致该陷阱的指令还没有更改任何程序可见的状态,也就是当前PC能够准确对应着触发陷阱的这条指令,这样陷阱子程序处理起来非常容易。但是对于延迟陷阱而言,在发生陷阱时,导致该陷阱的指令与当前PC并不对应,当前PC可能是它后面的第若干条指令,相对于正在执行真正引发陷阱的指令的时刻,此时系统的执行状态已经改变。因此在进行陷阱子程序的处理时,就需要找到真正触发该陷阱的那条指令,并把它后面的指令对程序状态所做的更改都取消掉,做到这些会导致控制非常复杂。
[0003]根据SPARC V8指令架构的定义,延迟陷阱主要是由存储器的写操作出现错误而导致的。因为现有的SPARC V8处理器为了提高执行性能,减少访存的等待,在硬件上专门设置了一个write buffer结构用以缓存当前的写操作,使得处理器可以立即执行后续指令,与此同时,缓存的写操作则能对主存储器进行访问。可以看出,通过write buffer结构将处理器执行指令与主存储器的写操作并行起来,从而很好的隐藏了访存开销。但是,如果这个写操作最终引发了错误,当该错误被反馈给处理器时,处理器已经向前执行了若干条指令,则会产生延迟陷阱。
[0004]这种延迟陷阱不仅难于处理,而且还有可能会造成处理器的宕机事故。根据SPARCV8指令集定义,一旦发生陷阱并在进行陷阱处理时,硬件自动将陷阱使能位(ET)置为无效值零,也就是默认不允许陷阱嵌套。如果用户想使用这种嵌套功能,就必须在陷阱处理子程序中通过软件来重新配置ET位。由于写操作错误这种延迟陷阱发生的时机是不确定的,完全由主存储器的访问延迟所决定,如果处理器正在进行某个外部中断或者内部陷阱的处理,并且在子程序中还未配置ET位有效,这时刚好出现了一个写操作错误的延迟陷阱,那么处理器就无法响应它而进入“错误模式”。在错误模式下,处理器不能执行任何指令,也无法自行返回到正常模式,即呈现所谓的宕机状态,它只能通过外部复位才能回到初始状态,重新执行。
[0005]由上可见,由于写操作错误而引发的延迟陷阱给SPARC V8处理器带来了极大的控制复杂度和安全隐患,尤其是在空间应用中,主存储器受单粒子辐射而出现数据错误的概率随之增大,这种延迟陷阱导致处理器宕机的可能性也就越大,从而严重影响到系统的可靠性,因此必须对这种延迟陷阱机制进行改进。如果能将延迟陷阱也转化为精确陷阱来实现,那么不仅能够从根本上避免处理器宕机的可能性,而且还会带来陷阱处理程序的简化和统一,使陷阱处理的实时性更强、效率更高;但是,精确陷阱不能使主存储器的写操作与处理器执行指令并行起来,这势必会对处理器的性能造成影响。因此,设计一种既高效又可靠的精确陷阱控制机制就显得尤为重要。

【发明内容】

[0006]针对现有技术中存在的问题,本发明提供一种既实现精确陷阱又不完全禁用write buffer的写缓存功能的,在提高系统可靠性的同时避免系统性能受到明显的损失方法的,基于SPARCV8处理器的存储器精确陷阱控制结构与方法。
[0007]本发明是通过以下技术方案来实现:
[0008]—种基于SPARCV8处理器的存储器精确陷阱控制方法,SPARCV8处理器中指令流水线执行推进时,根据SPARCV8处理器发出的写操作访问需求,执行如下操作;
[0009]当前存储指令为单字或者双字的写操作缓存在写缓存器write buffer中,同时允许流水线继续推进;
[0010]当前存储指令为字节或者半字的写操作时,流水线推进停顿;若在写缓存器writebuffer中没有缓存其它的写操作时,则进行主存储器的访问;否则,在写缓存器writebuffer处理完所有缓存的写操作之后,再访问主存储器;等待该字节或者半字类型的写操作对主存储器的访问完成后再继续推进;
[0011]其中,在处理字节或半字类型的写操作时,流水线一直处于等待状态,没有执行新的指令,当该写操作出现无法纠正的错误时,将产生的错误信号传递给流水线,SPARCV8处理器的当前PC能够准确对应发出该写操作的存储指令,从而产生的是一个精确陷阱,并对其进行对应处理。
[0012]优选的,在写缓存器write buffer进行缓存控制时,SPARCV8处理器流水线的执行,和对主存的写操作独立并行。
[0013]一种基于SPARCV8处理器的存储器精确陷阱控制结构,包括取值选择器,级联的第一 Load操作选择器和第二 Load操作选择器,级联的第一 Store操作选择器和第二 Store操作选择器,以及用于产生控制整个流水线的推进信号holdn的与门,推进信号holdn分别控制流水线各级间的寄存器;
[0014]所述的取值选择器的低电位输入端连接取值操作访问完成的ready信号,高电位输入端连接高电位信号,选择控制端连接指令Cache命中信号,输出端输出指令访问的推进信号iholdn ;
[0015]所述的第一 Load操作选择器的低电输入端连接load操作访问完成的ready信号,高电位输入端连接高电位信号,选择控制端连接数据Cache命中信号,连接第二 Load操作选择器的高电位输入端;所述的第二 Load操作选择器的低电位输入端连接高电位信号,高电位输入端连接第一 Load操作选择器的输出端,选择控制端连接Load操作信号;
[0016]所述的第一 Store操作选择器的低电输入端连接第二 Load操作选择器的输出端,高电位输入端连接store操作访问完成的ready信号,选择控制端连接字节/半字节类型的写操作信号;所述的第二 Store操作选择器的低电输入端连接第一 Store操作选择器的输出端,高电位输入端连接高电位信号,选择控制端连接单字节/双字节类型的写操作信号,输出端输出数据访问的推进信号dholdn ;
[0017]所述的与门的输入端分别连接指令访问的推进信号iholdn和数据访问的推进信号 dholdn。
[0018]优选的,取值操作访问完成的ready信号,load操作访问完成的ready信号,以及store操作访问完成的ready信号均由外部主存储器的访问接口连接输入。
[0019]与现有技术相比,本发明具有以下有益的技术效果:
[0020]本发明针对SPARC V8处理器由于存储器写操作错误而导致的延迟陷阱以及它可能引发系统宕机的问题,通过相应的结构修改,最终实现了统一的精确陷阱控制,取得的效果如下:
[0021]I)增强了系统的可靠性。原始结构下存储器写操作错误产生的是延迟陷阱,它很有可能在无法完成陷阱嵌套功能时造成整个系统错误而呈现宕机状态,这对空间应用领域来说存在严重的安全隐患,因为在空间环境中,单粒子辐射造成主存储器数据位发生翻转的概率增加,更容易导致存储器写操作错误而引发系统的宕机行为。本发明将写操作错误经过对写操作指令的分别缓存控制,使其实现成一种精确陷阱,从根本上避免了处理器宕机的可能性,保证了整个系统的稳定与可靠。
[0022]2)减小了陷阱处理的控制复杂度。在精确陷阱机制下,当前PC能够准确表征发生存储器写操作错误的那条指令,并且在该写操作过程中,处理器不会继续执行新指令,因此无需设法清除或恢复系统执行状态,极大的降低了陷阱处理的控制复杂度。
[0023]3)设计修改简单且易于实施。本发明所进行的设计修改仅限于write buffer写操作的缓存控制以及指令流水线的推进控制电路,非常局部化,不会影响处理器中的其它部件。
[0024]4)不增
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1