Difference between revisions of "Registers"

From Mill Computing Wiki
Jump to: navigation, search
 
(One intermediate revision by the same user not shown)
Line 35:Line 35:
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
|style="padding:0 1em"| call, task switch
+
|style="padding:0 1em"| task switch
 
|| global address of code address region
 
|| global address of code address region
 
|-
 
|-
Line 46:Line 46:
 
|-
 
|-
 
| codePointer || cp
 
| codePointer || cp
|style="text-align:center"| ✔
+
|style="text-align:center"| ✘
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
|style="padding:0 1em"| call, task switch
+
|style="padding:0 1em"| task switch
 
|| local address of code address region
 
|| local address of code address region
 
|-
 
|-
Line 63:Line 63:
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
|style="padding:0 1em"| call, task switch
+
|style="padding:0 1em"| task switch
 
|| upper bound of code address region
 
|| upper bound of code address region
 
|-
 
|-
Line 77:Line 77:
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
|style="padding:0 1em"| call, task switch
+
|style="padding:0 1em"| task switch
 
|| global address of data address region
 
|| global address of data address region
 
|-
 
|-
Line 84:Line 84:
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
|style="padding:0 1em"| call, task switch
+
|style="padding:0 1em"| task switch
 
|| local address of data address region
 
|| local address of data address region
 
|-
 
|-
Line 91:Line 91:
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
|style="padding:0 1em"| call, task switch
+
|style="padding:0 1em"| task switch
 
|| upper bound of data address region
 
|| upper bound of data address region
 
|-
 
|-
 
| ebbEntry ||  
 
| ebbEntry ||  
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
 
|style="padding:0 1em"| call, task switch
 
|| address of head byte of current ebb
 
|-
 
| exuLag ||
 
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
 
|style="padding:0 1em"| call, task switch
 
|style="padding:0 1em"| call, task switch
|| cycles until next exu instruction issue
+
|| offset from cpReg of head byte of current ebb
 
|-
 
|-
 
| faultBase ||  
 
| faultBase ||  
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
|style="text-align:center"| ✘
+
|style="text-align:center"| ✔
|style="text-align:center"| ✘
+
|style="text-align:center"| ✔
 
|style="padding:0 1em"| call, task switch
 
|style="padding:0 1em"| call, task switch
 
|| fault vector base address
 
|| fault vector base address
 
|-
 
|-
| fpState ||  
+
| floatControl ||  
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✔
|style="text-align:center"| ✘
+
|style="text-align:center"| ✔
 
|style="padding:0 1em"| call, task switch
 
|style="padding:0 1em"| call, task switch
|| floating point state
+
|| floating point mode control
 
|-
 
|-
| flowLag ||  
+
| floatStatus ||  
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✔
|style="text-align:center"| ✘
+
|style="text-align:center"| ✔
 
|style="padding:0 1em"| call, task switch
 
|style="padding:0 1em"| call, task switch
|| cycles until next flow instruction issue
+
|| floating point status
 
|-
 
|-
 
| framePointer || fp
 
| framePointer || fp
Line 136:Line 129:
 
|| address of current stack frame
 
|| address of current stack frame
 
|-
 
|-
| flowCorePC || fpc
+
| functionEntry || func
 +
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
|style="text-align:center"| ✔
 
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
 
|style="padding:0 1em"| call, task switch
 
|style="padding:0 1em"| call, task switch
|| flowCore instruction counter
+
|| offset from cpReg of function entry address
 
|-
 
|-
| functionEntry || func
+
| globalObjectTable || gotp
 +
|style="text-align:center"| ✔
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
|style="text-align:center"| ✘
+
|style="padding:0 1em"| task switch
|style="padding:0 1em"| call, task switch
+
|| address of GOT (Global Object Table)
|| function entry address
+
 
|-
 
|-
 
| inboundArguments || inp
 
| inboundArguments || inp
Line 184:Line 177:
 
|style="padding:0 1em"|  
 
|style="padding:0 1em"|  
 
|| global address of upper bound of the MMIO aperture
 
|| global address of upper bound of the MMIO aperture
 +
|-
 +
| outboundArguments || outp
 +
|style="text-align:center"| ✔
 +
|style="text-align:center"| ✔
 +
|style="text-align:center"| ✘
 +
|style="padding:0 1em"| call, task switch
 +
|| outbound memory arguments address
 
|-
 
|-
 
| processID ||  
 
| processID ||  
Line 273:Line 273:
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
|style="padding:0 1em"| call, task switch
+
|style="padding:0 1em"| task switch
 
|| address of per-thread data
 
|| address of per-thread data
 
|-
 
|-
Line 280:Line 280:
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✘
|style="padding:0 1em"| call, task switch
+
|style="padding:0 1em"| task switch
 
|| address of receiver of method call
 
|| address of receiver of method call
 
|-
 
|-
Line 289:Line 289:
 
|style="padding:0 1em"| task switch
 
|style="padding:0 1em"| task switch
 
|| trap vector base address
 
|| trap vector base address
|-
 
| exuCorePC || xpc
 
|style="text-align:center"| ✘
 
|style="text-align:center"| ✔
 
|style="text-align:center"| ✘
 
|style="padding:0 1em"| call, task switch
 
|| exuCore instruction counter
 
 
|}
 
|}

Latest revision as of 13:24, 23 February 2021

Name ID Base Reader Writer Spilled On Description
argsSize call, task switch size of memory argument block for next dynamic call
atomicStatus status if in an atomic extent
backCount pending stalls for atomic backoff
backoff backoff increment on atomic failure
codeLowerBound task switch global address of code address region
coreNum ordinal number of this core on the chip
codePointer cp task switch local address of code address region
constantPool cpp call, task switch address of constant pool
codeUpperBound task switch upper bound of code address region
cycleCounter task switch instruction cycle counter
dataLowerBound task switch global address of data address region
dataPointer dp task switch local address of data address region
dataUpperBound task switch upper bound of data address region
ebbEntry call, task switch offset from cpReg of head byte of current ebb
faultBase call, task switch fault vector base address
floatControl call, task switch floating point mode control
floatStatus call, task switch floating point status
framePointer fp call, task switch address of current stack frame
functionEntry func call, task switch offset from cpReg of function entry address
globalObjectTable gotp task switch address of GOT (Global Object Table)
inboundArguments inp call, task switch inbound memory arguments address
issueCounter task switch instruction issue counter
localSpace base of process local space within global space
noCacheLowerBound global address of MMIO aperture (bypasses caches)
noCacheUpperBound global address of upper bound of the MMIO aperture
outboundArguments outp call, task switch outbound memory arguments address
processID task switch current process number
realTimeClock rtc real time clock
startStop true to start, false to stall
scratchBase call, task switch base address of extended scratchpad
scratchSize call, task switch size (extent) of extended scratchpad
segExtent size in bytes of top stack segment
ssegmentBase address of start of top stack segment in memory
spillerSp spiller stack pointer
stackPointer call, task switch address of current top of stack and upper address of stack address region
stacklets address of start of stacklets region in memory
stepsInEbb call, task switch issue cycles executed within current ebb
threadID task switch current thread number
threadPointer tlp task switch address of per-thread data
thisPointer tp task switch address of receiver of method call
trapBase task switch trap vector base address