CPU中断有关问题,计算机组成原理

CPU中断问题,计算机组成原理
书上有句话看不懂:如下:

CPU中还设置了一些硬件逻辑,用来完成从响应请求后到转入服务子程序之前的一系列操作,如保存断点和状态字,获取服务子程序的入口地址。这些操作是在响应请求后随即发生的,不可能预先安排在程序中,因而有硬件来完成。我们称这些操作为中断隐指令操作。

1:它说:保存断点和状态字,获取服务子程序的入口地址。这些操作是在响应请求后随即发生的

难道说完成从响应请求后到转入服务子程序之前,可以不做这些操作,还是有些不用这些操作。

2:他说:这些操作是在响应请求后随即发生的,不可能预先安排在程序中,因而有硬件来完成。

软件最后都是由硬件执行的,即软件实质也是硬件操作。那么为什么不可能预先安排在程序中,因而有硬件来完成呢?
------解决方案--------------------
1. 既不是可以不做,也不是有些不用做,而是必须要做
2. 这里“由硬件完成”的意思是不需要为此编写指令。必须由硬件做的原因是,当转入中断服务程序后,指令指针已发生改变(指向中断服务程序),因此断点处的指令指针必须在此之前保存下来,状态字也一样。
------解决方案--------------------
这个保存状态和断点的实质是 所有中断都必须要做的事,并不是说一定要硬件来做。 你想啊既然所有中断都要做这第一件事,那么我何必要让编写软件的程序员来干呢,所以就把它设计在硬件中。


------解决方案--------------------
就是说你的日程表上8点打卡、9点做项目评估、10点跟项目经理汇报、11点整理工作笔记。每做一堆事情手里都有一堆文件要读要写。

但是有个客户遇到技术问题打电话找你求助。

你也不知道他几点打过来,会不会打过来,所以当然不可能在日程表上加一项10点半接电话,这不科学。

无论客户几点打过来,你都可以随手把手里正在用的笔记丢到电话旁边那个桌子上。这叫保护现场。讲完电话再捡起来接着做刚才的事情,这叫恢复现场。

------解决方案--------------------
1.不可以由软件去保护断点,因为当中断以后,cpu的PC值已经被改变了 软件访问不到原来的PC值;但是可以由软件去保护现场,而且好像很多cpu确实也这么做的;恢复断点当然是软件去做的,硬件又不知道你什么时候想返回
2.软件的是顺序执行的,至少是有规律的;但是中断本身就是一个无法预料的事情,程序无法预料何时发生中断,何时执行中断处理函数,所以只能在某个地址写上一段中断处理代码,等中断到来时由硬件将程序强行跳转到你的中断处理函数去处理中断