UCL Zeus Z System Test Suite - POOH and family


Technical Contents
In general what do these programs do?

Piglet and the rest of the Pooh family are occam programs to test the essential functions of the Z / TRIG LTC - MTC system. In practice this means checking the operation of the LTCs with emphasis on testing the LTC Interrupt register at high rates. In particular, Piglet is optimised to test contention in the Interrupt register. Contention occurs when an interrupt bit is cleared at the same time as another interrupt bit is set (event is validated).

The family of programs have the following purposes : The same LTC handler is common to all programs, and checks each LTC for errors. The data transfers from pipeline to DPM buffers are not checked, in order to enable the system to run at high rate. The event rate is limited by the LTC handler to about 40us or 25kHz.

The differences between the programs are in the MTC handling and the configuration :
PigletPoohPoohBearTigger
Control ROC ROC GFLT GFLT
RBOX LTCno yes yes yes
Freeze no no no yes

Why A.A.Milne? and what do they do?

Piglet
"Piglet is a small animal" so he fits into the internal memory of the transputers and runs very fast. It excludes the LTC in the crate with the MTC (the RBOX) which allows the MTC handler to monopolise its transputer. It is optimised to test contention in the Interrupt register. Contention and buffers full occur regularly. As well as normal Triggers it generates re-Initialise, Test Enable, End Of Run Trigger, and can generate Aborts and Triggers in Fast Clear mode.
Pooh
"What's a Pooh?" Pooh is the same as Piglet except that it includes the LTC in the crate with the MTC (the RBOX). The MTC handler has to share its transputer with the LTC handler which reduces contention in the Interrupt register. Contention and buffers full can occur.
PoohBear
"Pooh is a Bear." PoohBear is the same as Pooh except that it is with the GFLT. The GFLT generates Initialise and Triggers etc. Contention and buffers full can occur.
Tigger
checks the Trigger Address "because Tiggers do things like that". The only difference from PoohBear is that the system is in ROC Pipeline Freeze mode. This allows the LTC handler to check the Trigger Address and End Copy Address. Contention can occur but buffers full does not occur.

Having problems?
  1. Make sure you are using QTA0: (link0) (you can type SHOWLINK).
  2. The program has booted and should be running if it says Hello World !
  3. If no Count messages appear, check:
The source is in ZUKVS2::userdisk:[UCL.Pooh] although ZUKVS3 is being used too at present.
What does the output mean?

These messages come from the LTC handler. The first two values in the messages are hexadecimal and depend on the message; they give the expected value (in some sense) and the value obtained respectively. The remaining three values are common to all messages :
buff
buffer number (corresponds to the expected DPM Valid bit). This is the buffer being analysed and not the Buffer Count register.
event
the event number in hexadecimal as counted by the LTC handler.
crate
the crate number in the order given by the transputer network.
Quick reference (click on error name): CLEAR COPY COUNT EOR FLTN GBCN INT NOSET READ SET WRITE
Count FLTN 00000000 info 00000000 buff 0 event 00100000 crate 0
Event count : FLTN : expected Trigger Number
info : DPM Info register

Error CLEAR interrupt mask 00000080 bits 00000780 buff 6 event 00000006 crate 1
CLEAR Interrupt bit not cleared : mask : expected DPM Valid bit
bits : Interrupt register

Error SET interrupt mask 00000080 bits 00001F01 buff 6 event 00000006 crate 2
SET Interrupt bit not set : mask : expected DPM Valid bit
bits : Interrupt register

Error READ interrupt bits 00001F81 bits 00001F03 buff 6 event 00000006 crate 3
READ Interrupt bit clear : bits : Interrupt register ( first read)
bits : Interrupt register (second read)

Error WRITE interrupt bits 00001F81 bits 00000602 buff 6 event 00000006 crate 4
WRITE Interrupt bit cleared : bits : Interrupt register before write
bits : Interrupt register after write

Error NOSET interrupt mask 00000080 bits 000006FE buff 6 event 00000006 crate 5
NOSET Interrupt bit not clear : mask : expected DPM Valid bit
bits : Interrupt register

Error INT interrupt mask 00000080 bits 00001F81 buff 6 event 00000006 crate 6
INT Interrupt not received : mask : Interrupt Mask register (should equal expected DPM Valid bit)
bits : Interrupt register

Error FLTN FLTN 00000006 info 00000007 buff 6 event 00000006 crate 7
FLTN Trigger Number error : FLTN : expected Trigger Number
info : DPM Info register

Error GBCN trigger address 04390000 info 00000006 buff 6 event 00000006 crate 8
GBCN Trigger Address error : trigger address info : DPM Info register

Error COPY end copy 0000010F addr 00000110 buff 6 event 00000006 crate 9
COPY End Copy Address error : This check is done by Tigger only (requires ROC Pipeline Freeze mode).

Error EOR end of run CSR 00000024 info 00000006 buff 6 event 00000006 crate 10
EOR End Of Run error : CSR : Control Status register
info : DPM Info register


mhayes@zow.desy.de