Formats of Status and Control Words between the DSP's and the EC -------------------------------------------------------------------- Rev. 11-MAY-1995 Introduction ------------ This document is divided into two parts: 1) Description of each Status Longword Type 2) Summary of the Status Blocks in Shared Dual-Port Memory ------------------------------------------- 1. Description of each Status Longword Type ------------------------------------------- Format of a Local DSP to EC Status Longword ------------------------------------------- D31 D24 D23 D16 D15 D8 D7 D0 --------------- --------------- ---------------------------------- | TAS Byte | | Reserved | | Local DSP STATUS | --------------- --------------- ---------------------------------- Information from one Local DSP to the EC. This is the first longword in each of the "One Local DSP to 68K Status" blocks in the Shared Dual Port Memory on each Hydra. Recall that there will be 11 Local DSP to EC Status Longwords (one for each Local DSP). When a Status Bit is set to a 1 it means: D0 This Local DSP is ready for the next (or the first) L15CT Cycle, and it is looking for a new valid Wake_Up_Word. D1 This Local DSP has read a new valid Wake_Up_Word. D2 This Local DSP has received all of its L1 Calorimeter Trigger data via the ERPB's and the CRC. D3 This Local DSP has started its part(s) of the Local to Global Transfer. By definition this means that this Local DSP has finished its Tool code and has determined how many Objects have been passed by each Term. D4 This Local DSP has finished its part(s) of the Local to Global Transfer (including the Mark Data if this is a Mark and Force Pass event). D5:D14 Not used. Always set to zero. D15 This Local DSP has cleaned up from processing the current L15CT Cycle. It is waiting for all 12 DSP's to reach this point. The EC will announce when all 12 DSP's have reached this point by clearing the previous valid Wake_Up_Word. Notes: The TAS Byte is set to the TAS# received by this Local DSP from the 68K EC in the Wake Up Word. This byte will only change when this Local DSP enters State D1 (i.e. when this Local DSP has received a new valid Wake Up Word). When bit D0 is set then all bits D1:D15 are cleared. When bit D0 is set then the Number of Objects Found Byte is cleared to zero. Status bits D1:D14 are "ORed" into the Local DSP Status Word. EC should look for status bit D0 set and D1:D15 cleared to indicate that a Local DSP is ready for the next (or first) L1.5 CT Cycle (i.e. it must look at all 16 status bits, not just bit D0). Format of the Global DSP to EC Status Longword ----------------------------------------------- D31 D24 D23 D16 D15 D8 D7 D0 --------------- --------------- ---------------------------------- | TAS Byte | | Term Answs. | | Global DSP STATUS | --------------- --------------- ---------------------------------- Information from the Global DSP to the EC. This is the first longword in the "Global DSP to 68K Status" block in the Shared Dual Port Memory on the Hydras. Recall that there is only one Global DSP to EC Status Longword. When a Status Bit is set to a 1 it means: D0 The Global DSP is ready for the next (or the first) L15CT Cycle, and it is looking for a new valid Wake_Up_Word. D1 The Global DSP has read a new valid Wake_Up_Word. D2 The Global DSP has received all of the data from the Local DSP's. If this is a normal L15CT Cycle this means that the Global DSP has received all 11 Lists of Identified Objects from the Local DSP's. If this is a Mark and Force Pass cycle this means the the Global DSP has received both the Lists of Identified Objects and the Mark Data from all 11 Local DSP's. D3 The Global DSP has finished running the Tool Codes(s) to evaluate all of the Term(s) that were requested in this L15CT Cycle and it has set the Answers in the Term Answer Byte that is read by the EC. The Global DSP is waiting for RC to say whether the Global DSP should transfer its data to the MVME214 memory. The Term Answers Byte contains the results of this L1.5 Cal Trig Cycle. If a Term "passes" then the corresponding bit in this byte is set to a 1. If a Term "fails" then the corresponding bit in this byte is set to a 0. If the DSPs were not required to evaluate a given Term during this L1.5 CT Cycle then the corresponding bit in this byte is set to a 0. D4 The Global DSP has finished its part in transferring L15CT Data Block Data to the MVME214 memory module. If this is a Mark and Force Pass cycle then this means that both the normal data and the Mark Data have been transferred to the MVME214 memory module. This bit will only be set if transfer to the 214 was both required and performed. D5 The Global DSP has acknowledged that transfer to the MVME214 memory module was not required and hence no transfer was performed. This bit will only be set if transfer to the MVME214 was NOT required. D6:D14 Not used. Always set to zero. D15 The Global DSP has cleaned up from processing the current L15CT Cycle. It is waiting for all 12 DSP's to reach this point. The EC will announce when all 12 DSP's have reached this point by clearing the previous valid Wake_Up_Word. Notes: The TAS Byte is set to the TAS# received by the Global DSP from the 68K EC in the Wake Up Word. This byte will only change when the Global DSP enters State D1 (i.e. when the Global DSP has received a new valid Wake Up Word). When bit D0 is set then all bits D1:D15 are cleared. When bit D0 is set then the Term Answers Mask is cleared to all zeros. When bit D3 is set then the Term Answers Mask is set to the appropriate Mask (as defined above) for this L1.5 Cal Trig Cycle. Status bits D1:D14 are "ORed" into the Global DSP Status Word. EC should look for status bit D0 set and D1:D15 cleared to indicate that a Local DSP is ready for the next (or first) L1.5 CT Cycle (i.e. it must look at all 16 status bits, not just bit D0). D2 will not necessarily be set before D3 is set. D2 is not set until ALL of the data is received from the Local DSP's, while the Global Tool can begin processing once the Count data has arrived. Format of the Local DSP Wake_Up_Word ------------------------------------- D31 D24 D23 D16 D15 D8 D7 D0 --------------- --------------- --------------- --------------- | TAS Byte | | Reserved | | Flags Byte | |Trms to Eval | --------------- --------------- --------------- --------------- Information from the EC to all Local DSP's. This is the first longword in the "68K to all DSPs Status" block in the Shared Dual Port Memory on the Hydras. The Flags Byte will always have one of the following three different values: $FF --> The previous valid Wake_Up_Word has been cleared. $00 --> This is a "normal" L15CT Cycle Wake_Up_Word. $01 --> This is a Mark and Force Pass L15CT Cycle Wake_Up_Word. The Terms to Evaluate Mask byte shows which L15 CT Terms need to be evaluated during this L15CT Cycle. If a bit in this byte is set to a 1 then the corresponding L15CT Term needs to be evaluated. The TAS Byte contains the 8 LSBits of the TAS Number. Notes: The EC only provides the TAS Byte to the Local DSPs when the EC sets a valid (non-cleared) Wake Up Word (i.e. when it is moving the Local DSPs from State D0 to State D1). At the end of a L15CT Cycle, after the EC has read Status Bit D15 set for all 12 DSP's, EC will first clear the previous valid Transfer_to_214_Required_Word and then it will clear the previous valid Wake_Up_Word. The Wake_Up_Word must remain cleared (i.e. no new Wake_Up_Word should be presented to the DSPs) until all DSPs have seen the cleared Wake Up Word. Recall that the DSPs do not indicate that they are ready for the next (or first) cycle until they have seen a cleared Wake_Up_Word. The 68K can wait until all DSPs have indicated that they are ready for the next (or first) cycle, and then present a new valid Wake Up Word. The Wake_Up_Word to the Local DSPs is identical to the Wake_Up_Word for the Global DSP. The Wake_Up_Word to the Local DSPs needs to be written to all 3 Hydra cards. Format of the Global DSP Wake_Up_Word ------------------------------------- D31 D24 D23 D16 D15 D8 D7 D0 --------------- --------------- --------------- --------------- | TAS Byte | | Reserved | | Flags Byte | |Trms to Eval | --------------- --------------- --------------- --------------- Information from the EC to all Global DSP's. This is the second longword in the "68K to all DSPs Status" block in the Shared Dual Port Memory on the Hydras. The Flags Byte will always have one of the following three different values: $FF --> The previous valid Wake_Up_Word has been cleared. $00 --> This is a "normal" L15CT Cycle Wake_Up_Word. $01 --> This is a Mark and Force Pass L15CT Cycle Wake_Up_Word. The Terms to Evaluate Mask byte shows which L15 CT Terms need to be evaluated during this L15CT Cycle. If a bit in this byte is set to a 1 then the corresponding L15CT Term needs to be evaluated. The TAS Byte contains the 8 LSBits of the TAS Number. Notes: The EC only provides the TAS Byte to the Global DSP when the EC sets a valid (non-cleared) Wake Up Word (i.e. when it is moving the Global DSP from State D0 to State D1). At the end of a L15CT Cycle, after the EC has read Status Bit D15 set for all 12 DSP's, EC will first clear the previous valid Transfer_to_214_Required_Word and then it will clear the previous valid Wake_Up_Word. The Wake_Up_Word must remain cleared (i.e. no new Wake_Up_Word should be presented to the DSPs) until all DSPs have seen the cleared Wake Up Word. Recall that the DSPs do not indicate that they are ready for the next (or first) cycle until they have seen a cleared Wake_Up_Word. The 68K can wait until all DSPs have indicated that they are ready for the next (or first) cycle, and then present a new valid Wake Up Word. The Wake_Up_Word to the Global DSP is identical to the Wake_Up_Word for the Local DSPs. The Wake_Up_Word to the Global DSPs only needs to be written to Hydra-B, but it may also be written to Hydra-A and Hydra-C. Format of the Transfer to 214 Required Word -------------------------------------------- D31 D24 D23 D16 D15 D8 D7 D0 --------------- --------------- --------------- --------------- | Reserved | | Reserved | | Reserved | |214 Trans Req| --------------- --------------- --------------- --------------- Information from the RC to the Global DSP. This is the third longword in the "68K to all DSPs Status" block in the Shared Dual Port Memory on the Hydras. The reserved bytes are written as all zeros. The 214 Transfer Required byte will always have one of three different values: $FF --> The previous valid 214 Transfer Flag has been cleared. If the Global DSP is ready to begin a transfer to the MVME214 memory module and it reads this value then it is to wait, without starting the transfer, and continue checking this control word until it reads one of the two values described below. $00 --> This value is used to tell the Global DSP not to transfer any data to the MVME214 memory module for this L15CT Cycle. $01 --> This value is used to tell the Global DSP to begin the transfer to the MVME214 memory module of all data for this L15CT Cycle. Notes: At the end of a L15CT Cycle, after the EC has read Status Bit D15 set for all 12 DSP's, EC will first clear the previous valid Transfer to 214 Required Word and then it will clear the previous valid Wake_Up_Word. The Transfer Required Word only needs to be written to Hydra-B, but it may also be written to Hydra-A and Hydra-C. ------------------------------------------------------- 2. Summary of the Status Blocks in the Dual-Port Memory ------------------------------------------------------- Address range in Dual Port Memory DSP Address 68K Address Status Block Description (in HEX) (in HEX) --------------------------- ------------------ ------------------- Local DSP A2 Status to 68K 8000 1f20 - 8000 1f27 00a0 7c80 - 00a0 7c9f Local DSP A3 Status to 68K 8000 1f28 - 8000 1f2f 00a0 7ca0 - 00a0 7cbf Local DSP A4 Status to 68K 8000 1f30 - 8000 1f37 00a0 7cc0 - 00a0 7cdf Local DSP A1 Status to 68K 8000 1f38 - 8000 1f3f 00a0 7ce0 - 00a0 7cff Local DSP B3 Status to 68K 8000 1f40 - 8000 1f47 00b0 7d00 - 00b0 7d1f Local DSP B4 Status to 68K 8000 1f48 - 8000 1f4f 00b0 7d20 - 00b0 7d3f Local DSP B1 Status to 68K 8000 1f50 - 8000 1f57 00b0 7d40 - 00b0 7d5f Local DSP C3 Status to 68K 8000 1f58 - 8000 1f5f 00c0 7d60 - 00c0 7d7f Local DSP C4 Status to 68K 8000 1f60 - 8000 1f67 00c0 7d80 - 00c0 7d9f Local DSP C1 Status to 68K 8000 1f68 - 8000 1f6f 00c0 7da0 - 00c0 7dbf Local DSP C2 Status to 68K 8000 1f70 - 8000 1f77 00c0 7dc0 - 00c0 7ddf Global DSP B2 Status to 68K 8000 1f78 - 8000 1f7f 00b0 7de0 - 00b0 7dff 68K Status to all DSPs 8000 1f80 - 8000 1f8f 00*0 7e00 - 00*0 7e3f * Recall that the "68K Status to all DSP" block must appear in the Dual Port Memory of each Hydra card. Therefore this block appears three times in the 68K VME Memory Map: at 00a0 7e00, 00b0 7e00, and 00c0 7e00. Recall that there are three types of Status Blocks: i) One Local DSP Status to 68K ii) The Global DSP Status to 68K iii) The 68K to all DSP Status Each block type is described below. One Local DSP Status to 68K Status Block ---------------------------------------- There is one "One Local DSP Status to 68K" Status Block for each of the 11 Local DSP Nodes. Each "One Local DSP Status to 68K" Status Block is 8 longwords (32 bytes) long. The longwords within the Block are allocated as shown below: Offset (in longwords) from the base address Description of longword ------------ ----------------------- 0 One Local DSP to EC Status Longword 1..7 Unused The Global DSP Status to 68K Status Block ----------------------------------------- There is one "Global DSP Status to 68K" Status Block. It is 8 longwords (32 bytes) long. The longwords within the Block are allocated as shown below: Offset (in longwords) from the base address Description of longword ------------ ----------------------- 0 The Global DSP to EC Status Longword 1..7 Unused The 68K to all DSPs Status Block -------------------------------- There is one "68K to all DSPs" Status Block for each of the 3 Hydra cards. Each block is 16 longwords (64 bytes) long. The longwords within each Block are allocated as shown below: Offset (in longwords) from the base address Description of longword ------------ ----------------------- 0 Local DSP Wake_Up_Word 1 Global DSP Wake_Up_Word 2 Transfer to 214 Required Word 3..15 Unused