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:
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