1
0
mirror of https://github.com/wfjm/w11.git synced 2026-04-19 10:19:40 +00:00
Files
wfjm.w11/doc/w11a_diff_70_instruction_complete.md
wfjm ef5c6b1ee3 pdp11_sequencer: implement MMR0,MMR2 instruction complete
- rtl/w11a
  - pdp11.vhd: dm_stat_se_type: rename vfetch -> vstart;
               mmu_moni_type: drop pc,idone, add vstart,vflow
               pdp11_mmu_mmr12: add VADDR port
  - pdp11_dmcmon.vhd: dm_stat_se_type: rename vfetch -> vstart
  - pdp11_mmu.vhd: implement MMR0 instruction complete
  - pdp11_mmu_mmr12.vhd: implement MMR2 instruction complete
  - pdp11_sequencer.vhd: implement MMR0,MMR2 instruction complete
  - pdp11_sys70.vhd: dm_stat_se_type: rename vfetch -> vstart
- tools
  - tbench/w11a_pcnt/test_pcnt_basics.tcl: rename vfetch -> vstart
  - tbench/w11a_pcnt/test_pcnt_codes.tcl: rename vfetch -> vstart
  - tcl/rw11/dmcmon.tcl: rename vfetch -> vstart
  - tcl/rw11/dmpcnt.tcl: rename vfetch -> vstart
  - tcode/cpu_mmu.mac: rename C2.7 -> C2.10, add C2.7-9
  - xxdp/ekbee1_patch_w11a.tcl: now patch for MMR1, not longer skip
2022-12-16 19:18:50 +01:00

1.2 KiB

Known differences between w11a and KB11-C (11/70)

MMR0 instruction complete implementation differences

The 11/70 and 11/45 are the only PDP-11 processors that also support the recovery of an MMU abort of a stack push during trap or interrupt processing. To distinguish between an instruction and a trap processing abort, the MMR0 has a bit called instruction completed. It is set to 0 when an instruction is aborted and to 1 when a vector service flow is aborted. The MMR2 contains the vector address in the latter case.

w11 supports this feature, but has two implementation differences:

  • the instruction completed flag is set and MMR2 is loaded with the vector address for all vector flows. The 11/70 does this only for traps, aborts and interrupts, but not for trap instructions (BPT, IOT, TRAP, EMT).
  • the w11 decrements the SP before each vector push, while the 11/70 decrements the SP twice before the 1st vector push. Therefore, after an MMU abort of the 1st vector push, MMR1 has 000336 on the w11 and 173366 on the 11/70. ekbee1 test 067 checks this MMR1 response and has been modified (see patch).