mirror of
https://github.com/wfjm/w11.git
synced 2026-04-03 13:23:50 +00:00
doc update [skip ci]
This commit is contained in:
@@ -1,5 +1,31 @@
|
||||
# Resolved issues
|
||||
|
||||
### V0.791-3 {[issue #35](https://github.com/wfjm/w11/issues/35)} -- MMU: D space used instead of I space for PC deferred specifiers
|
||||
|
||||
Test 072 of `ekbee1` fails with
|
||||
```
|
||||
D-SPACE ENABLE CIRCUITRY HAS FAILED
|
||||
ERROR AUTOI/D VIRTUAL
|
||||
REGISTR REGISTR ADDRESS TESTNO PC AT ABORT
|
||||
100027 000000 060410 000072 060412
|
||||
100027 000027 060416 000072 060422
|
||||
```
|
||||
The test does
|
||||
```
|
||||
060410: tst (pc)
|
||||
060416: cmp #240,(pc)
|
||||
```
|
||||
and expects that these accesses are done to I space.
|
||||
They are done to D space instead.
|
||||
|
||||
The w11 uses D space only for `(pc)+` and `@(pc)+` specifiers.
|
||||
Clearly a bug.
|
||||
Wasn't detected so far because this access mode has no practical value
|
||||
and this therefore not used in normal software.
|
||||
|
||||
Fixed with commit [278d2e2](https://github.com/wfjm/w11/commit/278d2e2),
|
||||
see [ECO-034](ECO-034-MMU_d-space-pc.md).
|
||||
|
||||
### V0.791-2 {[issue #34](https://github.com/wfjm/w11/issues/34)} -- MMU: ACF=1 traps on any access
|
||||
|
||||
Test 055 of `ekbee1` fails with
|
||||
|
||||
@@ -2,8 +2,9 @@
|
||||
|
||||
### MMU traps not suppressed when MMU register accessed
|
||||
|
||||
The 11/70 does not execute an MMU trap when an MMU register is accessed,
|
||||
thus `MMR0` to `MMR3` and any of the `PDR` and `PAR` registers.
|
||||
The 11/70 does not execute an MMU trap and doesn't set A or W bits in `PDR`
|
||||
when an MMU register is accessed, thus `MMR0` to `MMR3` and any of the
|
||||
`PDR` and `PAR` registers.
|
||||
|
||||
This causes test 061 of `ekbee1` to fail.
|
||||
|
||||
@@ -11,3 +12,15 @@ The w11 doesn't implement this trap suppression (neither does SimH).
|
||||
|
||||
Since MMU traps are a 11/70,11/45 only feature no OS uses them.
|
||||
Given that, this is considered an acceptable deviation from 11/70 behavior.
|
||||
|
||||
Note: the decision whether to request a trap or to update the A and W bits
|
||||
must be done in the clock cycle in which the MMU translates the virtual
|
||||
address into a physical address. The w11 determines only in the following
|
||||
clock cycle whether the physical address is a UNIBUS address and starts an
|
||||
`ibus` transaction, and the UNIBUS address decoder decision is available in
|
||||
the respective `IBSEL` registers in the next following cycle. With this
|
||||
structure, it is not possible to use the available UNIBUS address decoding
|
||||
information during the MMU decision whether to request a trap or not.
|
||||
Implementing the 11/70 behavior would require a separate MMU register
|
||||
detection, which would increase the logic depth at a point that is already
|
||||
quite long.
|
||||
|
||||
Reference in New Issue
Block a user