1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-13 07:19:57 +00:00

KA ITS pager notes from Dave Conroy.

This commit is contained in:
Lars Brinkhoff 2017-01-22 20:45:26 +01:00
parent d4185487a9
commit 90332f30e7
3 changed files with 442 additions and 0 deletions

171
doc/dcg/ETC Normal file
View 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
View 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
View 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).