1
0
mirror of https://github.com/wfjm/w11.git synced 2026-04-30 21:49:43 +00:00
Files
wfjm.w11/tools/man/man1/tmuconv.1
wfjm faf596e531 tmuconv updates [skip ci]
- add -emcancel; drop em 'cancel' when -t-ib
- print ru after em,ib, best for reg from mem cases
- map r6,r7 to sp,pc for rdst,1reg,rsrc instructions
2022-08-23 08:04:24 +02:00

252 lines
7.2 KiB
Groff

.\" -*- nroff -*-
.\" $Id: tmuconv.1 1261 2022-07-23 16:15:03Z mueller $
.\" SPDX-License-Identifier: GPL-3.0-or-later
.\" Copyright 2013-2022 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
.\"
.\" ------------------------------------------------------------------
.
.TH TMUCONV 1 2022-07-18 "Retro Project" "Retro Project Manual"
.\" ------------------------------------------------------------------
.SH NAME
tmuconv \- convert w11a tmu output into human readable format
.\" ------------------------------------------------------------------
.SH SYNOPSIS
.
.SY tmuconv
.RI [ OPTION ]...
.I FILE
.
.SY tmuconv
.B \-\-help
.YS
.
.\" ------------------------------------------------------------------
.SH DESCRIPTION
Converts the output of the \fBw11a\fR trace and monitoring unit (tmu)
into a human readable format. If no options are given, the default
output is \fB\-t_id\fR \fB\-t_vf\fR.
.
.\" ------------------------------------------------------------------
.SH OPTIONS
.
.\" ----------------------------------------------
.IP "\fB\-dump\fR"
dump all information.
.
.\" ----------------------------------------------
.IP "\fB\-cdump\fR"
dump only changes relative to previous cycle.
.
.\" ----------------------------------------------
.IP "\fB\-emcancel\fR"
show em 'cancel' cycles when \fB\-t_ib\fR active.
.
.\" ----------------------------------------------
.IP "\fB\-t_id\fR"
trace instruction decodes.
.
.\" ----------------------------------------------
.IP "\fB\-t_ru\fR"
trace register updates.
.
.\" ----------------------------------------------
.IP "\fB\-t_em\fR"
trace em transactions (external memory bus).
em transactions that converted to an ib transaction are labeled 'cancel'.
They are not shown when \fB\-t_ib\fR is active and no \fB\-emcancel\fR option
is given. This gives the most readable output for \fB\-t_all\fR.
Reads from well known vector addresses are labeled 'VFETCH'.
This is very helpful for the detection of interrupts.
See also \fB\-t_vf\fR.
Note: every read from location 200 will therefore be labeled 'VFETCH 200 LP11',
also when it is an instruction fetch for a 'JMP' instruction in old maindecs
with start address 200.
.
.\" ----------------------------------------------
.IP "\fB\-t_vf\fR"
trace only vector fetch em transactions (subset of \fB\-t_em\fR)
.
.\" ----------------------------------------------
.IP "\fB\-t_ib\fR"
trace ib transactions (ibus cycles). em 'cancel' transactions are not shown
unless the \fB\-emcancel\fR option is given.
.
.\" ----------------------------------------------
.IP "\fB\-t_all\fR"
trace all, equivalent to \fB\-t_id\fR \fB\-t_ru\fR \fB\-t_em\fR \fB\-t_ib\fR
.
.\" ----------------------------------------------
.IP "\fB\-help\fR"
print full help text and exit.
.
.\" ------------------------------------------------------------------
.SH TRACE OUTPUT FORMAT
Each output line starts with the cycle number and the trace type.
The format of the rest of the line depends on trace type.
\fB\-t_id\fP: the instruction decode trace gives
.RS 2
.PD 0
.IP "-" 2
the PC of the instruction
.IP "-"
the PSW at the beginning(!) of the instruction
.IP "-"
the instruction word (as loaded into the instruction register)
.IP "-"
the instruction in MACRO-11 syntax
.IP "-"
the number of cycles of the previous(!) instruction
.PD
.RE
.PP
.EX
cycle pc psw ireg code nc
71587 id 006054 000011 012410 mov (r4)+,(r0) (4)
71683 id 002146 000340 116767 movb nnn(pc),nnn(pc) (9)
.EE
\fB\-t_ru\fP: the register update trace gives
.RS 2
.PD 0
.IP "-" 2
the byte update indicator
.IP "-"
the register set (0 pr 1)
.IP "-"
the register number (0 to 7)
.IP "-"
the loaded data value
.IP "-"
in case of a stack pointer update the values of kernel, supervisor and user
stack pointers
.IP "-"
in case of an R0-R5 update the values of all these six registers
.IP "-"
the symbolic name of the register
.PD
.RE
.PP
.EX
cycle b sr data
71578 ru 0 07 006102 pc
71649 ru 0 06 002000 002000*------ ------ ksp
71634 ru 0 04 010752 006110 006112 177776 010752 010752*010642 r04
.EE
\fB\-t_em\fP: the memory transaction trace gives
.RS 2
.PD 0
.IP "-" 2
the r/w flag
.IP "-"
the byte enables
.IP "-"
the memory address (as 22bit number)
.IP "-"
the data written to memory
.IP "-"
the data received from memory
.IP "-"
four flag bits 'crwh' indicating cancel, read, write, and cache-hit
.IP "-"
the number of extra wait cycles
.IP "-"
in case of vector fetches and associated stack pushes some descriptive text
.PD
.RE
.PP
.EX
cycle be addr wdat rdat crwh nc
11374 em w 11 00000004 000006 0010 (1)
52574 em r 11 00002164 177624 0101 (1)
52530 em r 11 00000020 002142 0101 (1)
52532 em r 11 00000022 000340 0101 (1) VFETCH 020 IOT
52536 em w 11 00001776 000017 0010 (1)
52538 em w 11 00001774 004316 0010 (1) SPUSH
.EE
\fB\-t_ib\fP: the ibus transaction trace gives
.RS 2
.PD 0
.IP "-" 2
two flag bits 'cr' indicating console and remote access
.IP "-"
two flag bits 'rm' indicating read/write and modify
.IP "-"
the byte enables
.IP "-"
the bus address (as 16bit number)
.IP "-"
the data written to bus
.IP "-"
the data received from bus
.IP "-"
the acknowledge flag
.IP "-"
the number of extra wait cycles
.IP "-"
if known, the symbolic name of the register
.PD
.RE
.PP
.EX
cycle cr rmbe addr wdat rdat a nc name
988 ib cr r 11 177500 000000 1 (0) ii.acr
52583 ib -- w 11 177570 000001 1 (0) sdreg
70729 ib -- r 11 177776 000004 1 (0) psw
.EE
The w11 CPU starts a cache cycle for each read or write, and cancels the
cache request when an ibus access is detected. These transactions are usually
suppressed when \fB\-t_ib\fP is active but are shown when \fB\-emcancel\fP
is given, resulting in output like
.EX
52582 em w 11 00177570 000001 cancel 1000 (1)
52583 ib -- w 11 177570 000001 1 (0) sdreg
.EE
.
.\" ------------------------------------------------------------------
.SH EXAMPLES
.IP "\fBtmuconv --t_id --t_em --t_ib tmu_ofile\fR" 4
Produces an output with all instruction decodes and external memory interface
and ibus transactions. The execution of a 'bisb #4,4(r4)' instruction which
accesses the output CSR of a DL11 interface will look like
.EX
429 id 002002 000340 152764 bisb #nnn,nnn(r4) (5)
431 em r 01 00002004 000004 0100 (1)
433 em r 11 00002006 000004 0100 (1)
436 ib -- rm01 177564 000200 1 (0) to.csr
439 ib -- wm01 177564 000204 1 (0) to.csr
.EE
and shows the ibus read-modify-write.
.IP "\fBtmuconv --t_all tmu_ofile\fR" 4
Like above, in addition, also all register updates are shown. The execution
of a 'cmp (r2),(r4)+' where r2 points to the psw will look like
.EX
934 id 003014 000011 021224 cmp (r2),(r4)+ (9)
937 ib -- r 11 177776 000011 1 (0) psw
939 ru 0 04 005676 003036 003040 177776 005700 005676*005570 r04
940 em r 11 00005674 000011 0101 (1)
.EE
.\" ------------------------------------------------------------------
.SH "SEE ALSO"
.BR ti_rri (1)
.\" ------------------------------------------------------------------
.SH AUTHOR
Walter F.J. Mueller <W.F.J.Mueller@gsi.de>