On Thu, Aug 7, 2025, 19:06 Chris Hanson via cctalk <[email protected]> wrote:
> > All instructions need to be restartable to meet the Popek & Goldberg > requirements, whether they trap due to a privilege violation or a bus > error. Memory is just one of the things that can be virtualized once a > system meeds the requirements. > Restartable or resumable. The MC68010, 012, 020, and 030 use resumption, because restart would require that the page fault revert any memory writes that have already occurred in the instruction partially executed. That's why those processors have a huge bus error "stack puke"; instruction resumption requires storage of a bunch of internal processor state that is not otherwise architecturally visible. The IBM 360 Model 67, and IBM 370 models supporting a virtual machine, use a different approach. Instructions that may cause a page fault after a successful memory write undergo a "preflight" pass by the microcode, to test whether any memory access that will be generated by the instruction will fault. This is particularly cumbersome for the ED and EDMK instructions.
