mirror of
https://github.com/PDP-10/its.git
synced 2026-01-13 15:27:28 +00:00
KA ITS pager notes from Dave Conroy.
This commit is contained in:
parent
d4185487a9
commit
90332f30e7
171
doc/dcg/ETC
Normal file
171
doc/dcg/ETC
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
ON A KA10
|
||||||
|
FORTY => 40
|
||||||
|
UUOH => XUUOH
|
||||||
|
|
||||||
|
000040 MUUO SAVE
|
||||||
|
000041 JSR UUOH
|
||||||
|
|
||||||
|
THIS IS WHAT A UUO DOES
|
||||||
|
WHEN RUNNING IN THE UUO HANDLER THE FL,,PC OF THE JOB THAT IS
|
||||||
|
DOING THE UUO IS LYING IN XUUOH
|
||||||
|
|
||||||
|
XUUOH: 0
|
||||||
|
UUOH0: SAVE AC'S INTO SHADOW
|
||||||
|
...
|
||||||
|
JRST URET
|
||||||
|
URET: RESTORE AC'S FROM SHADOW
|
||||||
|
JRST ULEAVE
|
||||||
|
ULEAVE: JRST 2,@UUOH
|
||||||
|
|
||||||
|
THIS IS WHAT THE CLOCK DOES
|
||||||
|
THE CLOCK IS THE THING THAT DOES ALL THE RESCHEDULING
|
||||||
|
WHEN A JOB IS RUNNING, THE ACS ARE IN THE ACS, AND
|
||||||
|
(1) THE MOVEM AT CLUSAV HAS AN ABSOLUTE ADDRESS THAT POINTS TO AC17S(U)
|
||||||
|
(2) THE JRST 2 AT UEXIT HAS AN ABSOLUTE ADDRESS THAT POINTS TO XUUOH ON THE KA (SO THE
|
||||||
|
UPDATE IS A WASTE) AND AT XUUOH(U) ON THE OTHERS (WHICH ISN'T)
|
||||||
|
WHEN A JOB ISN'T RUNNING, THE ACS ARE IN AC0S(U) THROUGH AC17S(U), FL,,PC IS IN UPC(U)
|
||||||
|
THE JOB MAY BE RUNNING IN A UUO, IN WHICH CASE
|
||||||
|
(1) THE OP/AC/EA FOR THE UUO IS IN ABSOLUTE LOCATION 000040
|
||||||
|
(2) THE FL,,PC FOR THE UUO IS IN XUUOH (WHERE JSR IN 41 POINTS, HENCE @41)
|
||||||
|
(3) THE USER'S UUO ACS ARE IN UUOACS(U) (LOC 0-17 OF XCTR, BECAUSE OF REMAP)
|
||||||
|
WHEN A JOB IS NOT RUNNING
|
||||||
|
(1) THE UUO WORD (FROM LOCATION 000040) IS IN SV40(U)
|
||||||
|
(2) XUUOH IS IN SUUOH(U)
|
||||||
|
(3) THE USER'S UUO ACS ARE IN UUOACS(U) (LOC 0-17 OF XCTR, BECAUSE OF REMAP)
|
||||||
|
|
||||||
|
ALL MUUOS (AND EXEC MODE LUUOS) ARE PROCESSED BY UUOH (THERE IS A JSR UUOH IN 000041)
|
||||||
|
ON NON-KA MACHINES THE SYSJOB ALLOWS MUUOS, BUT EVERYONE ELSE BUGCHECKS
|
||||||
|
|
||||||
|
TRAPS ARE PROCESSED AT CODE THAT BEGINS AT CLKB1, INVOKED BY THE APR
|
||||||
|
(CLK) PI HANDLER TRAPS CAN BE PROCESSED AT LOW PRIORITY BECAUSE THE CLK
|
||||||
|
PI HANDLER DOES THE CONTEXT SWITCHING, AND THE CHECK FOR TRAPS HAPPENS
|
||||||
|
BEFORE ANY CONTEXT SWITCHING, SO THE CLK PI HANDLER IS GUARANTEED TO
|
||||||
|
HAVE INTERRUPTED THE RIGHT JOB (ALTHOUGH BAD THINGS WOULD HAPPEN IF A
|
||||||
|
HIGHER-PRIORITY PI ROUTINE EVERY SET A TRAP FLAG, SINCE THE TRAP WOULD
|
||||||
|
HANG AROUND UNTIL THE HIGHER-PRIORITY HANDLER EXITED, AND THEN THE USER
|
||||||
|
JOB WOULD BE INTERRUPTED, BUT THE JOB ISN'T DOING ANYTHING RELATED TO
|
||||||
|
THE TRAP) THE CODE IN THE CLK PI HANDLER CALLS ROUTINES LIKE "AROV"
|
||||||
|
WHICH TURNS OFF BITS IN THE SAVED FLAGS IN CLKBRK, AND SETS SW PI BITS
|
||||||
|
IN A, WHICH EVENTUALLY GET TRANSFORMED INTO ITS-STYLE SOFTWARE
|
||||||
|
INTERRUPTS
|
||||||
|
|
||||||
|
THERE ARE USET VARIABLES WITH NAMES LIKE TR1INS AND SUCH ON THE KA,
|
||||||
|
THESE ARE SOMEWHAT DEGENERATE THE BIG TABLE AT USETL HAS THE TRAP
|
||||||
|
VARIABLES WITH MODE 2, 2, 0, 0 WHICH MEANS CALL ROUTINE ON READ, AND
|
||||||
|
ILLEGAL ON WRITE THE READ ROUTINES (URTRnI) SIMPLY READS THE "TRAP
|
||||||
|
INSTRUCTION" FOR THE KA WHICH IS ALWAYS A 0,,%PIXXX WORD, BECAUSE
|
||||||
|
POSTING AN INTERRUPT IS THE ONLY THING THAT IS POSSIBLE
|
||||||
|
|
||||||
|
KA10 PAGING ERROR CHECK IS AT CLKB1H
|
||||||
|
|
||||||
|
IF XCTRI DID NOT WHACK DATAI PAG, AND WE DID NOT NEED TO RUN THE ERROR
|
||||||
|
HANDLER AT HIGH PRIORITY SO THAT THE HIGH PRIORITY HANDLER COULD MOVE
|
||||||
|
THE RESULT OF THE DATAI PAG TO SOME PLACE IN THE USER VARIABLES, COULD
|
||||||
|
THE ERROR AND TRAP PI BE RUN AT PI 7 ?
|
||||||
|
|
||||||
|
THE KA IS A LITTLE BIT LIKE THIS
|
||||||
|
IT'S EQUIVALENT OF BY DATAI PAG IS SPM, WHICH STORES THE MAPS
|
||||||
|
CLKBRK DOES ONE OF THESE RIGHT AT THE START, INTO UPGML (NULL JOB) OR UPGML(U) (OTHERS)
|
||||||
|
UPJPC: 0 FAULT ADDRESS,,0
|
||||||
|
UPOPC: 0 OLDFL,,OLDPC USED TO TELL IF PC MOVES ?
|
||||||
|
UPMAR: 0 MAR ADDRESS AND CONDITION
|
||||||
|
UPQUAN: 0 EXPGNG+1,,0 PE, QUAN
|
||||||
|
UPDBR1: 0 USER MAP
|
||||||
|
UPDBR2: 0 USER MAP
|
||||||
|
UPDBR3: 0 EXEUMP (EXEC MODE UPPER MAP) LOADED WITH EXECMP, BUT IT'S UNDEFINED
|
||||||
|
UPACP: 0 B KEY, C KEY, AC POINTER LOCATION OF USER 00-17 ?
|
||||||
|
LATER ON (CLKB1H) CODE THAT DEALS WITH FAULTS LOOKS AT UPQUAN(U) TO
|
||||||
|
FIGURE OUT WHAT HAPPENED
|
||||||
|
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
+---------------------------------------------------------------------+-+
|
||||||
|
| |A|
|
||||||
|
| |R|
|
||||||
|
| |E|
|
||||||
|
+---------------------------------------------------------------------+-+
|
||||||
|
|
||||||
|
ARE AC Remap Enable
|
||||||
|
0 AC Remap Disabled (Reset Value)
|
||||||
|
1 AC Remap Enabled
|
||||||
|
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
+---------------------------+-----------------------------------+-------+
|
||||||
|
| | A | |
|
||||||
|
| | R | |
|
||||||
|
| | B | |
|
||||||
|
+---------------------------+-----------------------------------+-------+
|
||||||
|
|
||||||
|
ARB AC Remap Base
|
||||||
|
Address of 16-word block in physical memory
|
||||||
|
|
||||||
|
The AC remap function, if enabled, provides a special mapping
|
||||||
|
for virtual addresses 00-17 in both the exec and user virtual address spaces.
|
||||||
|
If AC remap is enabled (ARE=1), any virtual address in the range
|
||||||
|
00-17 is mapped into a physical address by combining the base address
|
||||||
|
in ARB with the low 4 bits of the virtual address. This check happens before
|
||||||
|
the check if paging is enabled; if ARE=1 and PE=0 then two chunks
|
||||||
|
of memory can be accessed; a 16-word chunk anywhere in the physical address
|
||||||
|
space, and locations 20-777777.
|
||||||
|
|
||||||
|
The remap function is done on all virtual addresses in the range
|
||||||
|
00-17 that make it to PAG. The only way for a program to generate these
|
||||||
|
addresses is to execute an instruction with a memory address in
|
||||||
|
this range under an XCTR relocation; if the address is used in an ordinary
|
||||||
|
way, or is used under an XCTR in a way that does not require
|
||||||
|
relocation, then the address will be an AC reference, and will not
|
||||||
|
be delivered to PAG. Addresses generated by ITS will, in
|
||||||
|
all likelyhood, be user mode addresses, generated by XCTR when the
|
||||||
|
previous mode flag is set to 1.
|
||||||
|
|
||||||
|
KA XCTR SKIPS ON VIOLATION, JUST LIKE XCTRI, AND THE UPOPC IS USED TO BACK
|
||||||
|
UP THE PC (DOESN'T DO THE RIGHT THING IF INTERRUPT IS INHIBITED)
|
||||||
|
|
||||||
|
PGLDU HAS A MODE WHICH SAYS WHICH CAN SWITCH BETWEEN AC0S AND UUOACS
|
||||||
|
IT LOOKS AT %UMSOA AND DECIDES IF RH OF UPACP SHOULD HOLD AC0S(X) OR UUOACS(X)
|
||||||
|
IF %UMSOA IS 0 WE GET UUOACS(X)
|
||||||
|
SO WHEN THE CONTEXT SWITCH WRITES SOMETHING INTO THE SHADOW, IT'S ACTUALLY CONTROLLED
|
||||||
|
BY THIS FIELD (IT'S NOT WRITING INTO LOCATIONS 00-17 OF USER MODE MEMORY)
|
||||||
|
UMAPS(X) IS NORMALLY 0, SO WHEN PGLDU IS CALLED, IT POINTS UPACP AT UUOACS(X)
|
||||||
|
|
||||||
|
IS UPACP A PHYSICAL ADDRESS OR AN EXEC MODE VIRTUAL ADDRESS ?
|
||||||
|
STACY REMEMBERS IT AS A PHYSICAL ADDRESS
|
||||||
|
|
||||||
|
CLKBRK: 0
|
||||||
|
XCT CLUSAV MOVEM U,AC17S(U), MADE ABSOLUTE
|
||||||
|
MOVE U,CLKBRK
|
||||||
|
MOVEM U,CLKBRS
|
||||||
|
SPM UPGML(U)
|
||||||
|
MOVEM T,AC16S(U)
|
||||||
|
BLT REST OF AC'S INTO AC0S-AC17S
|
||||||
|
MOVE U,USER
|
||||||
|
MOVE P,CPDLP
|
||||||
|
...
|
||||||
|
SCHED: MOVE T,CLKBRK CLKBRK HOLDS FL,,PC WHILE IN CLK PI
|
||||||
|
MOVEM T,UPC(U) SAVE IN USER BLOCK
|
||||||
|
COPY UEXIT- INTO UUO(U)..SUEXND-1(U) SAVE UEXIT AREA
|
||||||
|
; EFFECTIVELY, THIS COPY IS
|
||||||
|
MOVE T,XUUOH
|
||||||
|
MOVEM T,SUUOH(U)
|
||||||
|
; END EFFECTIVELY
|
||||||
|
IF SWITCH, SAVE OLD
|
||||||
|
MOVE T,40 SAVE THE UUO CODE
|
||||||
|
MOVEM T,SV40(U)
|
||||||
|
IF SWITCH, LOAD NEW
|
||||||
|
MOVE T,SV40(U)
|
||||||
|
MOVEM T,40 RESTORE THE UUO CODE
|
||||||
|
MOVE T,UPC(U) JOBS FL,,PC TO CLKBRK FOR RETURN
|
||||||
|
MOEM T,CLKBRK
|
||||||
|
MOVSI T,UUO(U) RESTORE UEXIT AREA
|
||||||
|
HRRI T,UEXIT
|
||||||
|
BLT T,UEXND-1
|
||||||
|
; EFFECTIVELY
|
||||||
|
; THE SWAP OF JRST 2,@XUUOH IS A WASTE ON KA (ON KL/KS IT NEED TO POINT INTO UPT)
|
||||||
|
MOVEI T,AC17S(U)
|
||||||
|
HRRM T,CLUSAV MAKE THE MOVEM U,AC17S(U) ABSOLUTE
|
||||||
|
MOVE T,SUUOH(U)
|
||||||
|
MOVEM T,XUUOH
|
||||||
|
; END EFFECTIVELY
|
||||||
|
RELOAD AC FROM AC0S(U)-AC17S(U)
|
||||||
|
JRST 12,@CLKBRK
|
||||||
263
doc/dcg/PAG-NOTES
Normal file
263
doc/dcg/PAG-NOTES
Normal file
@ -0,0 +1,263 @@
|
|||||||
|
PAG
|
||||||
|
===
|
||||||
|
|
||||||
|
2007-08-21
|
||||||
|
----------
|
||||||
|
|
||||||
|
BECAUSE THE PAGER REPORTS SOFT ERRORS USING PI, IT CANNOT REPORT SOFT
|
||||||
|
ERRORS THAT HAPPEN WHEN THE PROCESSOR IS RUNNING AT OR ABOVE THE PI
|
||||||
|
LEVEL USED TO REPORT SOFT ERRORS. ITS WILL REPORT SOFT ERRORS AT CLKLEV
|
||||||
|
(7), THE PAGER CANNOT REPORT SOFT ERRORS IN ANY PI HANDLER. THIS MEANS
|
||||||
|
THAT THE "INTERRUPT IN A PI HANDLER" CASE AND THE "ERROR THAT HAPPENS
|
||||||
|
BETWEEN THE START OF THE SOFT ERROR PI HANDLER AND THE PLACE WHERE THE
|
||||||
|
SOFT ERROR HANDLER DOES THE DATAI TO SAVE THE STATUS" CASE ARE THE SAME.
|
||||||
|
|
||||||
|
THE SYSTEM DOES NOT HANDLE THESE CASES GRACEFULLY. THE PAGER WILL
|
||||||
|
CAPTURE THE STATUS, SEND THE SPECIAL SOFT ERROR STATUS BACK ON THE
|
||||||
|
SYSTEM BUS TO TELL THE PROCESSOR TO FLUSH AND REPLAY, AND POST A PI. THE
|
||||||
|
PI WILL BE IGNORED, SO THE INSTRUCTION REPLAY, FAIL AGAIN, AND THE
|
||||||
|
PROCESS WILL REPEAT. THE PROCESSOR WILL BE STUCK IN A LIVE-LOCK,
|
||||||
|
CONTINUOUSLY FETCHING, FAILING, AND REPLAYING THE OFFENDING INSTRUCTION.
|
||||||
|
THE ONLY THING THAT CAN BE DONE IS PUSH THE "HLT" BUTTON (STOPPING THE
|
||||||
|
PROCESSOR DEAD) OR PUSH THE "DDT" BUTTON (WHICH MAKES A LEVEL 1 PI,
|
||||||
|
WHICH HAS A GOOD CHANCE OF GETTING THE SYSTEM INTO DDT, UNLESS WE ARE
|
||||||
|
LIVE-LOCKED IN A LEVEL 1 PI HANDLER).
|
||||||
|
|
||||||
|
THIS MIGHT SEEM UGLY, BUT REMEMBER THAT AN INFINITE INDIRECT ADDRESS
|
||||||
|
LOOP IN A PI HANDLER CAN LIVE-LOCK THE MACHINE AS WELL.
|
||||||
|
|
||||||
|
CONI PAG+0
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| |R|P|A|I| I |
|
||||||
|
| |E|E|E|R| A |
|
||||||
|
| | | | | | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
CONO PAG+0
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| |R|P|A| | I |
|
||||||
|
| |E|E|E| | A |
|
||||||
|
| | | | | | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
RE ROM ENABLE
|
||||||
|
PE PAGING ENABLE
|
||||||
|
AE AC REDIRECT ENABLE
|
||||||
|
IR INTERRUPT REQUEST (REALLY JUST A COPY OF IR IN DATAI PAG+0)
|
||||||
|
IA INTERRUPT CHANNEL ASSIGNMENT
|
||||||
|
|
||||||
|
RE=1, PE=0, AE=0, IA=0 AT RESET (SET TO DO ROM FETCH FOR INITIAL PC = 20)
|
||||||
|
|
||||||
|
RE ONLY DOES ANYTHING IF PE IS 0. IF RE IS 1 READS IN THE LOW 128KW OF
|
||||||
|
THE ADDRESS SPACE GO TO ROM, AND WRITES IN THE LOW 128KW OF THE ADDRESS
|
||||||
|
SPACE GET A HARD ERROR (THE HIGH 128KW IS NORMAL). IF RE IS 0 THEN THE
|
||||||
|
WHOLE 128+128KW WORDS IS NORMAL). PUTTING THE ROM IN THE LOW END OF THE
|
||||||
|
ADDRESS SPACE SEEMS BETTER FOR IMPLEMENTING DSKDMP.
|
||||||
|
|
||||||
|
DATAI PAG+0
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
|I|U|W| P | | A |
|
||||||
|
|R| | | | | |
|
||||||
|
| | | | | | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
DATAO PAG+0
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
|I|U|W| P | | A |
|
||||||
|
|R| | | | | |
|
||||||
|
| | | | | | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
IR INTERRUPT REQUEST; SET TO 1 BY SE UNLESS XCTRI
|
||||||
|
U SE IN USER MODE
|
||||||
|
W SE ON WRITE
|
||||||
|
P P FIELD FROM PTE THAT CAUSED THE SE
|
||||||
|
A VA THAT CAUSED THE SE
|
||||||
|
|
||||||
|
ALL FIELDS ARE SET TO 0 BY RESET
|
||||||
|
|
||||||
|
DATAI PAG+1
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| | A | |
|
||||||
|
| | R | |
|
||||||
|
| | B | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
DATAO PAG+1
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| | A | |
|
||||||
|
| | R | |
|
||||||
|
| | B | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
ARB AC REDIRECT BASE, PHYSICAL ADDRESS, 16-WORD ALIGNED
|
||||||
|
|
||||||
|
ALL FIELDS ARE SET TO 0 BY RESET
|
||||||
|
|
||||||
|
DATAI PAG+2
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| | T |
|
||||||
|
| | M |
|
||||||
|
| | R |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
DATAO PAG+2
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| | T |
|
||||||
|
| | M |
|
||||||
|
| | R |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
TMR TIME, INCREMENTS AT 4 US RATE IF NOT LEVEL 0
|
||||||
|
|
||||||
|
ALL FIELDS ARE SET TO 0 BY RESET
|
||||||
|
|
||||||
|
THE QUANTUM TIMER IS AN 18-BIT TIMER THAT INCREMENTS AT A 250 KHZ RATE
|
||||||
|
(THAT IS, THE 16 MHZ MAIN CLOCK DIVIDED BY 64) ANY TIME THE PROCESSOR IS
|
||||||
|
RUNNING AT LEVEL 0. IT DOES NOTHING BUT COUNT; THERE ARE NO INTERRUPTS
|
||||||
|
OR ANYTHING LIKE THAT (THE QUANTUM TIMER IN THE SYSTEMS CONCEPTS ITS
|
||||||
|
PAGING BOX FOR THE KA10 SEEMS TOM INCLUDE AN INTERRUPT, BUT ITS GOES TO
|
||||||
|
SOME TROUBLE TO ARRANGE THAT THE INTERRUPT NEVER FIRES).
|
||||||
|
|
||||||
|
THE QUANTUM TIMER IN THE SYSTEMS CONCEPTS ITS PAGING BOX FOR THE KA10 IS
|
||||||
|
19 BITS WIDE AND INCREMENTS AT 1 MHZ, BUT THE FACT THAT IT INCREMENTS AT
|
||||||
|
1 MHZ IS NEVER USED; ANY TIME ITS READS THE QUANTUM TIMER IT IMMEDIATELY
|
||||||
|
SHIFTS THE VALUE IT READS RIGHT BY 2 BITS. THE PDP-10/X QUANTUM TIMER,
|
||||||
|
WHICH INCREMENTS AT THE DESIRED 4 US RATE, IS ACTUALLY 1 BIT WIDER THAN
|
||||||
|
IT NEEDS TO BE.
|
||||||
|
|
||||||
|
PUTTING THE 18-BIT QUANTUM TIMER IN THE PAGER MIGHT SEEM A LITTLE
|
||||||
|
STRANGE, BUT IT REALLY HAS MORE TO DO WITH ITS PAGING THAT WITH THE
|
||||||
|
PROCESSOR (IT CERTAINLY IS NOT NEEDED IN A TOPS-10 MACHINE). THIS TIMER
|
||||||
|
HAS TO INCREMENT AT LEVEL 0 TIME, SO THE SYSTEM BUS NEEDS A SIGNAL TO
|
||||||
|
TELL THE PAGER THAT THE CPU IS AT LEVEL 0; FORTUNATELY THIS SIGNAL IS
|
||||||
|
ONE THAT A FRONT PANEL WOULD LIKE AS WELL (FOR A "PI IN PROG" LED).
|
||||||
|
|
||||||
|
DATAO PAG+3
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
|I|I|I| | V |
|
||||||
|
|E|U|S| | A |
|
||||||
|
| | | | | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
IE INVALIDATE EXEC MODE
|
||||||
|
IU INVALIDATE USER MODE
|
||||||
|
IS INVALIDATE SINGLE TRANSLATION GIVEN VA, OTHERWISE ALL
|
||||||
|
VA VIRTUAL ADDRESS TO INVALIDATE
|
||||||
|
|
||||||
|
INVALIDATE ONE OR ALL ENTRIES IN THE PAGER'S CACHE. THE IE AND IU BITS
|
||||||
|
DETERMINE IF THE EXEC SPACE AND/OR THE USER SPACE IS INVALIDATED. THE IS
|
||||||
|
BIT DETERMINES IF ALL OF THE TRANSLATIONS SHOULD BE INVALIDATED (IS = 0)
|
||||||
|
OR JUST THE TRANSLATION FOR THE VIRTUAL ADDRESS SPECIEIED BY THE VA
|
||||||
|
FIELD (IS = 1).
|
||||||
|
|
||||||
|
A SINGLE 1K PAGE AT LOCATION X CAN BE FLUSHED FROM BOTH THE EXEC MODE
|
||||||
|
AND USER MODE ADDRESS SPACES (THAT IS, A CLRPT CAN BE DONE, ALBEIT ONE
|
||||||
|
WITH 1K PAGES, WHICH IS WHAT ITS WANTS ANYWAY) WITH DATAO
|
||||||
|
PAG+3,[700000,,X].
|
||||||
|
|
||||||
|
DATAI PAG+4
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| | E | |
|
||||||
|
| | L | |
|
||||||
|
| | B | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
DATAO PAG+4
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| | E | |
|
||||||
|
| | L | |
|
||||||
|
| | B | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
ELB EXEC MODE LOSEG PT BASE, PHYSICAL ADDRESS, 64-WORD ALIGNED
|
||||||
|
|
||||||
|
ALL FIELDS ARE SET TO 0 BY RESET
|
||||||
|
|
||||||
|
DATAI PAG+5
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| | E | |
|
||||||
|
| | H | |
|
||||||
|
| | B | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
DATAO PAG+5
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| | E | |
|
||||||
|
| | H | |
|
||||||
|
| | B | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
EHB EXEC MODE HISEG PT BASE, PHYSICAL ADDRESS, 64-WORD ALIGNED
|
||||||
|
|
||||||
|
ALL FIELDS ARE SET TO 0 BY RESET
|
||||||
|
|
||||||
|
DATAI PAG+6
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| | U | |
|
||||||
|
| | L | |
|
||||||
|
| | B | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
DATAO PAG+6
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| | U | |
|
||||||
|
| | L | |
|
||||||
|
| | B | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
ULB USER MODE LOSEG PT BASE, PHYSICAL ADDRESS, 64-WORD ALIGNED
|
||||||
|
|
||||||
|
ALL FIELDS ARE SET TO 0 BY RESET
|
||||||
|
|
||||||
|
DATAI PAG+7
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| | U | |
|
||||||
|
| | H | |
|
||||||
|
| | B | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
DATAO PAG+7
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
| | U | |
|
||||||
|
| | H | |
|
||||||
|
| | B | |
|
||||||
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
|
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
|
||||||
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
||||||
|
|
||||||
|
UHB USER MODE HISEG PT BASE, PHYSICAL ADDRESS, 64-WORD ALIGNED
|
||||||
|
|
||||||
|
ALL FIELDS ARE SET TO 0 BY RESET
|
||||||
8
doc/dcg/email
Normal file
8
doc/dcg/email
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
These files are some scribbles I did when I was reverse-engineering
|
||||||
|
ITS and designing my version of the pager that only did what ITS ended
|
||||||
|
up needing.
|
||||||
|
|
||||||
|
The text in PAG-NOTES that begins with "THE KA IS A LITTLE BIT LIKE
|
||||||
|
THIS" is actually describing the block that holds the paging
|
||||||
|
context (it's described in ITS as 8 variables that need to be together
|
||||||
|
and in the right order, not as a BLOCK 10 and some offsets).
|
||||||
Loading…
x
Reference in New Issue
Block a user