[发明专利]一种基于SPARCV8处理器的存储器精确陷阱控制结构与方法有效
申请号: | 201510617153.5 | 申请日: | 2015-09-24 |
公开(公告)号: | CN105224412B | 公开(公告)日: | 2017-12-05 |
发明(设计)人: | 裴茹霞;肖建青;张洵颖;李红桥;张丽娜;崔媛媛 | 申请(专利权)人: | 中国航天科技集团公司第九研究院第七七一研究所 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F12/0804 |
代理公司: | 西安通大专利代理有限责任公司61200 | 代理人: | 李宏德 |
地址: | 710065 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 sparcv8 处理器 存储器 精确 陷阱 控制 结构 方法 | ||
技术领域
本发明涉及对SPARC V8处理器中存储器的数据校验错误控制领域,具体为一种基于SPARCV8处理器的存储器精确陷阱控制结构与方法。
背景技术
现代微处理器在执行指令的过程中,除了响应外部中断以外,其内部还可能触发两种类型的陷阱(有时也称为异常),分别是精确陷阱和延迟陷阱。精确陷阱是指发生陷阱时,导致该陷阱的指令还没有更改任何程序可见的状态,也就是当前PC能够准确对应着触发陷阱的这条指令,这样陷阱子程序处理起来非常容易。但是对于延迟陷阱而言,在发生陷阱时,导致该陷阱的指令与当前PC并不对应,当前PC可能是它后面的第若干条指令,相对于正在执行真正引发陷阱的指令的时刻,此时系统的执行状态已经改变。因此在进行陷阱子程序的处理时,就需要找到真正触发该陷阱的那条指令,并把它后面的指令对程序状态所做的更改都取消掉,做到这些会导致控制非常复杂。
根据SPARC V8指令架构的定义,延迟陷阱主要是由存储器的写操作出现错误而导致的。因为现有的SPARC V8处理器为了提高执行性能,减少访存的等待,在硬件上专门设置了一个write buffer结构用以缓存当前的写操作,使得处理器可以立即执行后续指令,与此同时,缓存的写操作则能对主存储器进行访问。可以看出,通过write buffer结构将处理器执行指令与主存储器的写操作并行起来,从而很好的隐藏了访存开销。但是,如果这个写操作最终引发了错误,当该错误被反馈给处理器时,处理器已经向前执行了若干条指令,则会产生延迟陷阱。
这种延迟陷阱不仅难于处理,而且还有可能会造成处理器的宕机事故。根据SPARC V8指令集定义,一旦发生陷阱并在进行陷阱处理时,硬件自动将陷阱使能位(ET)置为无效值零,也就是默认不允许陷阱嵌套。如果用户想使用这种嵌套功能,就必须在陷阱处理子程序中通过软件来重新配置ET位。由于写操作错误这种延迟陷阱发生的时机是不确定的,完全由主存储器的访问延迟所决定,如果处理器正在进行某个外部中断或者内部陷阱的处理,并且在子程序中还未配置ET位有效,这时刚好出现了一个写操作错误的延迟陷阱,那么处理器就无法响应它而进入“错误模式”。在错误模式下,处理器不能执行任何指令,也无法自行返回到正常模式,即呈现所谓的宕机状态,它只能通过外部复位才能回到初始状态,重新执行。
由上可见,由于写操作错误而引发的延迟陷阱给SPARC V8处理器带来了极大的控制复杂度和安全隐患,尤其是在空间应用中,主存储器受单粒子辐射而出现数据错误的概率随之增大,这种延迟陷阱导致处理器宕机的可能性也就越大,从而严重影响到系统的可靠性,因此必须对这种延迟陷阱机制进行改进。如果能将延迟陷阱也转化为精确陷阱来实现,那么不仅能够从根本上避免处理器宕机的可能性,而且还会带来陷阱处理程序的简化和统一,使陷阱处理的实时性更强、效率更高;但是,精确陷阱不能使主存储器的写操作与处理器执行指令并行起来,这势必会对处理器的性能造成影响。因此,设计一种既高效又可靠的精确陷阱控制机制就显得尤为重要。
发明内容
针对现有技术中存在的问题,本发明提供一种既实现精确陷阱又不完全禁用write buffer的写缓存功能的,在提高系统可靠性的同时避免系统性能受到明显的损失方法的,基于SPARCV8处理器的存储器精确陷阱控制结构与方法。
本发明是通过以下技术方案来实现:
一种基于SPARCV8处理器的存储器精确陷阱控制方法,SPARCV8处理器中指令流水线执行推进时,根据SPARCV8处理器发出的写操作访问需求,执行如下操作;
当前存储指令为单字或者双字的写操作缓存在写缓存器write buffer中,同时允许流水线继续推进;
当前存储指令为字节或者半字的写操作时,流水线推进停顿;若在写缓存器write buffer中没有缓存其它的写操作时,则进行主存储器的访问;否则,在写缓存器write buffer处理完所有缓存的写操作之后,再访问主存储器;等待该字节或者半字类型的写操作对主存储器的访问完成后再继续推进;
其中,在处理字节或半字类型的写操作时,流水线一直处于等待状态,没有执行新的指令,当该写操作出现无法纠正的错误时,将产生的错误信号传递给流水线,SPARCV8处理器的当前PC能够准确对应发出该写操作的存储指令,从而产生的是一个精确陷阱,并对其进行对应处理。
优选的,在写缓存器write buffer进行缓存控制时,SPARCV8处理器流水线的执行,和对主存的写操作独立并行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航天科技集团公司第九研究院第七七一研究所,未经中国航天科技集团公司第九研究院第七七一研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510617153.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据备份方法及设备
- 下一篇:一种调度GPU进行批量运算的方法及装置