论文解析——Implementing Precise Interrupts in Pipelined Processors

作者及发刊详情

James E. Smith and Andrew R. Pleszkun. 1988. Implementing Precise Interrupts in Pipelined Processors. IEEE Trans. Comput. 37, 5 (May 1988), 562--573. https://doi.org/10.1109/12.4607

摘要

当一条指令执行结束另一条指令开始前,如果保存的进程状态和程序执行的顺序模型相关时,中断要求非常精确。在一个流水线处理器中,由于上一条指令已经完成,下一条指令也许会被初始化,因此中断的精确控制通常是很困难的。本文描述和评估了在流水线处理器中的对精确中断问题的解决方案。

首先将描述精确中断问题,然后将详细描述第一个解决方案。第一个是强制指令按照架构顺序完成和修改处理器状态,其他的四种将允许指令以任意的序完成,但是将需要额外的硬件,以致于当中断发生时,精确的状态很难恢复。所有的方法将在并行流水下下讨论。基于CRAY-IS标量架构的仿真结果显示,第一种方法将导致性能下降16%,另外四种方法出现了类似的性能,其中三种导致了3%的性能损失。几种其他的扩展,包括虚拟内存和线性流水线架构也将会被讨论。

正文

高性能的处理器必定是流水化的,允许多条指令同时执行在不同阶段

流水线处理器发生中断时对指令执行序的影响

当中断来领时,并行执行的指令也许会调整处理器状态,导致指令执行序和顺序架构模型不同

当中断被检测到时,硬件也许不会处于和某一特定程序计数器值一致的状态

待保存的状态包括程序计数器(PC),寄存器和存储。具体根据如下条件而定:

a. 该指令前的所有指令全被执行且已经正确调整了处理器状态
b. 该指令后的所有指令尚未被执行且还没有调整处理器状态
c. 如果中断是被指令的异常所引起,PC也指向被中断的指令,由于架构或中断原因的不同,中断指令也许已经执行或尚未被执行

如果被保存的处理器状态和顺序架构模型不一致,或不满足上述条件,中断是不精确的。

中断的类型

程序中断,即自陷,在指令取指或执行时导致的异常引发

例如非法指令,数据溢出,页错误等

外部中断

例如IO中断、定时器中断

文章框架

第二章描述了模拟精确中断实现的模型架构

第三章到第六章描述了实现精确中断的方法

第七章呈现了仿真结果

方法一:顺序指令执行

通过这种方式,指令只能在先前所有提交的指令没有异常的情况下才能调整进程状态。

方法二:使用重排序buffer缓存即将issue的指令

当一条指令完成,结果和异常条件都会被发送到重排序buffer,当有效结果到达buffer入口时,硬件将检查异常,如无异常,则结果写回,若有异常,指令提交将会停止,并准备中断处理,后续写寄存器将会被停止。

方法三:通过历史记录buffer保存指令计算结果

硬件架构和方法二的reorder buffer类似,但所不同的是,但有效结果到达buffer入口时,无论异常即写回到寄存器文件中,同时异常报告也会保存到history buffer中,如果有异常则进行中断处理

当history buffer占满时,issue被堵塞

相比reorder buffer,该方法提高了流水线效率

方法四:建立提前于通用寄存器的寄存器副本

指令执行的结果和异常报告预先写到寄存器副本中,同样该副本也有reorder buffer,根据副本的状态再确认是否更新真寄存器文件的值。

性能评估

流水线处理器中精确中断的实现

相关链接

知乎中关于精确中断的讨论

答主"三郎"介绍的很清晰。

相关推荐
mzhan0176 小时前
Linux:intel:Cache Allocation tech
linux·cpu
放逐者-保持本心,方可放逐5 天前
地图 热力图核心封装
javascript·cpu·gpu·热力图·cesium·核心渲染判断·渲染管线优化
HyperAI超神经6 天前
AI驱动量子精修,卡内基梅隆大学等提出AQuaRef,首次用量子力学约束精修蛋白质全原子模型
人工智能·深度学习·机器学习·架构·机器人·cpu·量子计算
HyperAI超神经6 天前
基于2.5万临床数据,斯坦福大学发布首个原生3D腹部CT视觉语言模型,Merlin在752类任务中全面领先
人工智能·深度学习·神经网络·机器学习·3d·语言模型·cpu
HyperAI超神经10 天前
物理信息机器学习新突破!新型GNN架构可对复杂多体动力系统进行准确预测,赋能机器人/航空航天/材料科学
人工智能·深度学习·机器学习·架构·机器人·cpu·物理
认真的柯南11 天前
关于在 Kubernetes 环境中停止使用 CPU 限制的分析与建议
容器·kubernetes·cpu
爱吃橘子橙子柚子15 天前
3CPU性能排查总结(超详细)【Linux性能优化】
运维·cpu
@insist1231 个月前
软考-软件设计师-计算机系统硬件基础与 CPU 核心构成
软考·cpu·软件设计师·寄存器
千里马-horse1 个月前
Building a Simple Engine -- Mobile Development -- Conclusion
pipeline·shader·rendering·vulkan
alanesnape1 个月前
CPU眼中的i++ 与 ++i
cpu·汇编语言