Report 1 of 1
Full report
Carl R. Elks, David F. Green, and Daniel L. Palumbo · about 156 minutes
Original page 1
NASA Technical Memorandum 87638 User's Guide to Programming Fault Injection and Data Acquisition in the SIFT Environment C. R. Elks, D. F. Green, and D. L. Palumbo January 1987 (NASA-TH-87638) U S E R I S G U I D E 'IO P R O G R A f i i Y I N G N87-1E722 E B U L T I N J E C T I O N B E D D A Z A A C C U l S L l I O N IN T B E SIFT E N V I R O N f i E N I [ N A S A ) 54 NationalAeronautics and Space Administration Langley fbearch Contar Hamplon.Wrginia 23665 CSCL 095 Uuclas G3/61 40404

Original page 2
TABLE OF CONTENTS .Page Section Table of Contents..................................................i List of Appendices................................................. i i List of Figures.................................................... ii 1.0 INTRODUCTION................................................... 1 1.1 Purpose and Scope......................................... 1 1.2 Background and Description................................ 1 1.3 Conventions Used in This Document......................... 3 .................................... 4 2.0 SIFT FAULT INJECTION SYSTEM 2.1 Introduction.............................................. 4 2.1.1 Entering the SIFT Environment....................... 4 2.2 FIS Cdnam. ............................................... 5 2.3 Interactive Fault Injections.............................. 7 2.3.1 FAULT Command........................................... 7 2.3.1.1 DEFINE Command.................................... 9 2.3.1.1.1 Fault Input Parameters...................... 10 Fault Type........................................ 10 Proces.or ......................................... 12 Board ............................................ 1 2 I.C. ............................................. 1 4 Pin............................................... 1 4 . Map Probe......................................... 1 4 Max Volts......................................... 15 Min Volts......................................... 15 i

Original page 3
Injections........................................ 15 Time.............................................. 1 6 Time Out.......................................... 16 2.3.1.2 DOUBLE Command.................................... 17 2.3.1.3 EXIT Command...................................... 19 2.4 INJECT Command............................................ 19 Fault Injection Test Plan Execution....................... 20 2.5 2.5.1 FITIMENU............................................ 21 2.5.2 FITICONNECT......................................... 21 2.5.3 FITINJECT........................................... 21 2.6 ENDFIS Command............................................ 22 ................................... 23 2.7 Summary of FIS Commands ...................................... 23 3.0 DAS FEATURES AND COMMANDS 3.1 Introduction.............................................. 23 Defining Output Data and the Filter....................... 23 3.2 3.2.1 Data Definition..................................... 24 3.2.2 Filter Definition................................... 26 Setting Up DAS. Enabling Acquisition and Capturing Data... 27 3 . 3 b 3.3.1 Activating DAS...................................... 28 Allocating and Loading SIFT Processors.............. 29 3.3.2 Loading and Window File............................. 29 3.3.3 3.3.4 Enabling Acquisition................................ 30 . 3.3.5 Capturing Data...................................... 31 3.3.6 Terminating Data.................................... 32 ii .

Original page 4
3.4 Preprocessing the Data.................................... 32 3.4.1 Structure of the Data............................... 33 3.4.2 Accessing the Subframe Data......................... 36 3.4.3 Reading and Preprocessing........................... 36 3.5 Summary of DAS Commands and Sequence of Operations........ 37 APPENDICES A SIFT Window Utility........................................... A-1 B SIFT Global Clock............................................. B-1 LIST OF FIGURES 1 . SIFT Status Display............................................. 6 2. Single Fault Injection Display.................................. 8 3. Transient Type 1 Fault Injection Waveform ....................... 11 4. Transient Type 2 Fault Injection Waveform....................... 13 5. Double Fault Injection Display.................................. 18 iii

Original page 5
1 .O INTRODUCTION 1.1 Purpose and Scope This document describes the features, command language, and functional . design of the Software Implemented Fault Tolerance (SIFT) fault injection and data acquisition systems in detail. It is also intended to assist and guide the SIFT user in defining, developing, and executing SIFT fault injection experiments or other experiments and the subsequent collection and reduction of data obtained from the data acquisition software. This document is intended to be used in conjunction with the SIFT User's Guide (NASA TM-86289) for reference to SIFT system commands, procedures, functions, and overall guidance in SIFT system programming. 1.2 Background and Description SIFT is an experimental multi-computer system designed to provide ultrahigh reliable computing service in applications where uninterruptable system performance is critical. Research in fault-tolerant computing concepts utilizing the SIFT computer system is performed at the NASA Langley Research Center's Avionic Integration Research Laboratory (AIRLAB). Vital to verifying and validating a given fault-tolerant computer system (like SIFT) is the concept of in-circuit fault injection. In-circuit fault injection allows the designer or researcher to examine system parameters such as: fault-handling behavior (i.e. fault detection, isolation, and reconfiguration), performability under fault conditions, survivability of the system in the presence of faults, and fault coverage for the system or a particular sub.system. The SIFT fault injection and data acquisition environments support the user in creating, modifying, and executing fault injection or other experiments via command driven interfaces implemented on the host environment (VAX-11/750). In particular, the SIFT Fault Injection System (FIS) furni,shes the user with the 1

Original page 6
flexibility to vary fault injection parameters such as: static fault insertion (stuck at one, stuck at zero), transient fault insertion, rate of occurrence, duration of fault waveform, double fault insertion, etc. On the other hand, the SIFT Data Acquisition System (DAS) provides the capability to extract, collect, and analyze selected real-time data from the SIFT computer system during fault injection or fault-free operation. Together, the two diagnostic research support systems provide an effective work station environment for preparing, executing, analyzing, and cataloging a wide range of data from the SIFT computer system. Fault injection, data acquisition and software development for the SIFT computer is accomplished using a DEC VAX-11/750 (AIRLAB System 9 ) as the host . . software facility. Communication between the VAX-11 computer and SIFT computer is facilitated through a VAX-11 resident interface called the SIFT Host Environment (SIFT HEVN). The programming concept for SIFT HEVN is to provide a separate DEC Command Language (DCL) command (e.g. a separate task program) for each SIFT function. This programming approach allows the SIFT system user to execute all VAX-11 DCL commands while in the SIFT environment and in addition, . . provides the user with the flexibility and control to modify and/or add SIFT functions for unique user applications and future SIFT programming requirements. Entry into the SIFT Host Environment requires only a SIFT account on System #9 and a VT-100 compatible terminal. Multi-user capability can be utilized for many of the SIFT programming features; however, the FIS and DAS features are SINGLE USER only. The main section of this guide describes the FIS and DAS command languages which are used t o define, develop, and execute SIFT fault injection experiments. 2

Original page 7
i n t e r f a c e WINDOW. The WINDOW u t i l i t y Appendix A describes the D A S u s e r allows the u s e r t o d e f i n e the c o n d i t i o n s f o r SIFT t o VAX data t r a n s f e r s . T h i s a p p e n d i x describes the p r o c e d u r e s , command l a n g u a g e , and c a p a b i l i t i e s of t h e WINDOW i n t e r f a c e . Appendix B describes the f e a t u r e s and o p e r a t i o n s of t h e SIFT g l o b a l clock. The SIFT Global is a common time base f o r t h e SIFT computer s y s t e m a n d t h e VAX/11-750 host s t a t i o n . . . The u s e r s h o u l d be a d v i s e d t h a t because SIFT is a d y n a m i c a l l y e v o l v i n g s y s t e m , m o d i f i c a t i o n s t o e x i t i n g functions/commands or new p r o c e d u r e s c a n b e t h i s g u i d e . C u r r e n t i n f o r m a t i o n c a n be e x p e c t e d and may n o t be reflected i n o b t a i n e d through t h e V A X - I I / V M S h e l p f a c i l i t y which w i l l be updated t o r e f l e c t t h e l a t e s t c h a n g e s . 1.3 C o n v e n t i o n s Used i n t h i s Document CONVENTION USER SUPPLIED 0 I 1 11 3 M E A N I N G U n d e r l i n i n g i n d i c a t e s command o r data is t o be s u p p l i e d by u s e r P a r e n t h e s i s i n d i c a t e o p t i o n a l p a r a m e t e r s associated w i t h command arguments Double q u o t e s c o n t a i n system s u p p l i e d r e s p o n s e s , prompts, c u r s o r s , and e r r o r messages VAX-11 DCL command prompt

Original page 8
SIFT$ * COMM*AND 2 . 0 SIFT FAULT INJECTION SYSTEM 2.1 Introduction SIFT Interface program prompt Editing prompt for FIS environment The asterisk indicates command can be truncated to first four letters. There are two methods for conducting fault injection tests (i.e., entering fault input parameters and injecting the fault using those parameters) in the SIFT Fault Injection System. The first method described is the injection of faults interactively from input at the terminal. This method allows the user to execute one type of fault at a time for as many iterations of that fault as desired. The fault type and parameters can be varied interactively for desired results. The second method is to inject faults using a file to store sequences of faults which constitute a complete fault inject test plan. This method is primarily used for large tests that can be executed automatically from beginning to end with little or no user intervention. Test plans must be developed using the Automated Research and Test System (ARTS), and detailed procedures are contained in the ARTS User's Guide. The following sections describe in detail the procedures for executing fault injections interactively and from a test plan. 2.1.1 Entering the SIFT Environment To enter in the SIFT interface environment from a VT-100 type terminal, the user can type SIFT at the VAX-11- command prompt * l $ * l . The system will 4

Original page 9
r e s p o n d by r e p l a c i n g t h e VAX-11 command prompt 1 1 $ 1 1 , w i t h the SIFT prompt "SIFT$". T h i s starts the SIFT s e s s i o n and t h e d i s p l a y of t h e SIFT computer s y s t e m s t a t u s . The SIFT d i s p l a y ( s e e F i g u r e 1 ) w i l l a p p e a r a t t h e t o p of t h e s c r e e n showing c u r r e n t p r o c e s s o r s not allocated t o o t h e r u s e r s . Processor numbers a l r e a d y allocated t o o t h e r users w i l l n o t a p p e a r i n t h e d i s p l a y . Processor s t a t u s (ARMED, ALLOCATED, SELECTED, HALTED, and R U N N I N G ) is i n d i c a t e d by v a r i o u s c o m b i n a t i o n s of character a t t r i b u t e s as d e s c r i b e d i n r e f e r e n c e 1 . 2.2 FIS Command o Command format: -F I S ( n o o p t i o n s ) o Command l e v e l : E n t e r e d a t t h e S I F T u s e r s prompt llSIFT$ll . o Command summary: The command FIS a c t i v a t e s t h e- S I F T F a u l t I n j e c t i o n System r e s i d e n t on the VAX-11/750. T h e r e are n o p a r a m e t e r s associated w i t h t h e F I S command. The F I S command isc a n c e l l e d by i s s u i n g t h e ENDFIS command a t t h e S I F T u s e r prompt "sif t $ 1 ' . D e s c r i p t i o n After e n t e r i n g t h e F I S command, the system w i l l i s s u e t h e message "FIS ACTIVATEDt1 t o n o t i f y t h e u s e r t h a t t h e command was a c c e p t e d and e x e c u t e d , and t h e message llFIS:ON1l w i l l a p p e a r i n t h e sift s t a t u s d i s p l a y . However, i f FIS is c u r r e n t l y i n u s e by a n o t h e r u s e r , t h e system w i l l i s s u e t h e message IIFIS I N USEt1. I n either case, t h e S I F T prompt "SIFT$" w i l l r e a p p e a r after t h e command is e x e c u t e d . To e x i t a FIS s e s s i o n , the u s e r c a n or must e n t e r t h e ENDFIS command a t t h e SIFT prompt tlSIFT$ll. The ENDFIS command w i l l delete any F I S t h e u s e r (see FAULT command below) and p e r m i t p a r a m e t e r s t h a t were created by other u s e r s t o access t h e F I S environment.

Original page 10
c1 > t 6 H 0 t L H c’,.. o! H 0 (3 > t- I . 6

Original page 11
There are s e v e r a l background p r o c e s s e s i n i t i a t e d by i n v o k i n g F I S commands t h a t are t r a n s p a r e n t t o t h e SIFT user, s u c h a s , c r e a t i n g t h e F I S global s e c t i o n and i n i t i a l i z i n g the s e c t i o n variables, and s u b s e q u e n t l y mapping t o t h e SIFT global s e c t i o n and s e t t i n g the boolean FIS t r u e . When FIS is f i n i s h e d mapping t o SIFT, t h e F I S s w i t c h i n the SIFT d i s p l a y w i l l b e s e t ( o n ) . T h i s Boolean locks o u t other mers from e n t e r i n g t h e SIFT F I S program. 2 . 3 I n t e r a c t i v e F a u l t I n j e c t i o n s 2.3.1 FAULT Command o Command format: FAULT ( n o o p t i o n s ) o Conrmand l e v e l : E n t e r e d a t t h e SIFT u s e r s prompt vlSIFT$ll. o Command summary: T h i s command activates t h e p r o c e s s t h a t allows t h e u s e r t o e n t e r f a u l t i n p u t p a r a m e t e r s from the t e r m i n a l f o r a s u b s e q u e n t f a u l t i n j e c t i o n . To c a n c e l t h e f a u l t command t h e user c a n e n t e r -QUIT at t h e FIS e d i t i n g prompt To save f a u l t i n p u t parameters, t h e u s e r c a n e n t e r -EXIT a t t h e FIS e d i t i n g prompt. D e s c r i p t i o n To invoke the FAULT data e n t r y s c r e e n , t h e user must i n i t i a l l y invoke FIS as d e s c r i b e d above, t h e n e n t e r the FAULT command a t t h e llSIFT$ll prompt. The sy.stem w i l l respond t o a FAULT command by g r a p h i c a l l y d i s p l a y i n g t h e f a u l t i n p u t p a r a m e t e r s needed f o r a s i n g l e f a u l t i n j e c t i o n (see F i g u r e 2 ) . The s i n g l e f a u l t i n j e c t i o n d i s p l a y is segmented i n t o d i f f e r e n t f a u l t i n p u t p a r a m e t e r f i e l d s (e.g. f a u l t t y p e , p r o c e s s o r , b o a r d , etc.). A c c o r d i n g l y , each i n p u t p a r a m e t e r f i e l d is associated with a unique s e t of keywords t h a t are v a l i d o n l y f o r t h e i n p u t parameter f i e l d t h e y are a s s o c i a t e d with. For example, (see F i g u r e 2 ) t h e i n p u t parameter f i e l d PROCESSOR h a s s i x d i f f e r e n t k e y w o r d s t h a t are v a l i d for t h i s f i e l d : t r P l l l (i.e. SIFT Processor 11, t1P211, 7

Original page 12
0 > 7 n .. E 0 v, v) w 0 8 I- -1 LL Z H CD .. of . . t--

Original page 13
f l p 3 f f , ........ and flP61r. A d e s c r i p t i o n of t h e f a u l t t y p e s and other i n p u t p a r a m e t e r s w i t h r e s p e c t t o l i m i t a t i o n s of i n p u t p a r a m e t e r s i z e s a n d correct format is i n c l u d e d i n t h e FAULT INPUT PARAMETER s e c t i o n . Once t h e FAULT command has been e x e c u t e d , t h e F I S c u r s o r w i l l a u t o m a t i c a l l y be p l a c e d a t the bottom of t h e s c r e e n a w a i t i n g the f a u l t data e n t r y commands ( i . e . DEFINE command, DOUBLE command, e t c . ) . 2.3.1 .1 DEFINE Command . o Command format: -DEF ( o p t i o n s : /1 or / 2 ) [ p a r a m e t e r f i e l d name] Options / I - s i n g l e f a u l t e n t r y s c r e e n O p t i o n s / 2 - double f a u l t e n t r y s c r e e n D e f a u l t o p t i o n is / l . o Command Level: E n t e r command at F I S e d i t i n g prompt r f * f t . o Command summary: The DEF command, when used i n c o n j u n c t i o n w i t h t h e a p p r o p r i a t e f a u l t i n p u t p a r a m e t e r , allows the u s e r t o i n j e c t i o n data i n t o t h e F I S d i s p l a y . e n t e r f a u l t For example: * DEF TYPE < r e t u r n > Places t h e c u r s o r i n t h e f i e l d FAULT TYPE and a c c e p t s one of t h e f o l l o w i n g keywords: SA0 - Stuck a t z e r o . TR1 - T r a n s i e n t t y p e 1 . SA1 - Stuck a t one. TR2 - T r a n s i e n t t y p e 2. D e s c r i p t i o n The DEFINE command executed without a f a u l t i n p u t p a r a m e t e r f i e l d a u t o m a t i c a l l y p o s i t i o n s t h e c u r s o r a t t h e first f a u l t i n p u t p a r a m e t e r f i e l d ( i . e . FAULT TYPE) i n s i d e t h e d i s p l a y f o r data e n t r y . P r e s s i n g a < r e t u r n > a f t e r data e n t r y w i l l move t h e c u r s o r i n t h e d i s p l a y f o r t h e n e x t data e n t r y . E x e c u t i n g a carriage r e t u r n without e n t e r i n g data w i l l leave t h e data unchanged 9

Original page 14
i n t h a t p a r a m e t e r f i e l d . E n t e r i n g a tlQ1l a t any p a r a m e t e r f i e l d w i l l e x i t t h e d i s p l a y and r e p o s i t i o n t h e c u r s o r t o t h e F I S e d i t i n g prompt t t * t l . Once t h e user has completed a n i n p u t parameter e d i t s e s s i o n , a c o n t r o l Z command e n t e r e d a t the e d i t i n g prompt l l * l t w i l l s a v e t h e F I S e d i t s e s s i o n and map t h e i n p u t f a u l t i n j e c t i o n parameters t o t h e F I S g l o b a l s e c t i o n f o r s u b s e q u e n t u s e by t h e I N J E C T command p r o c e s s . 2.3.1 .1.1 F a u l t I n p u t P a r a m e t e r s T h i s s e c t i o n w i l l p r e s e n t and describe t h e f a u l t i n p u t p a r a m e t e r s and a s s o c i a t e d keywords for a s i n g l e f a u l t and d o u b l e f a u l t i n j e c t i o n d i s p l a y . T h i s s e c t i o n is o r g a n i z e d i n t h e f o l l o w i n g manner: f a u l t parameter f i e l d , format, o p t i o n s , and associated keywords. FAULT TYPE: D e s c r i p t i o n : D e f i n e s t h e type of f a u l t t o b e i n j e c t e d i n t o t h e c i r c u i t . C u r r e n t l y there are f o u r t y p e s of f a u l t s a v a i l a b l e : IlStuck a t O", ItStuck a t l f l , " T r a n s i e n t I f f , and IITransient 2". Format:TY*PES ( n o o p t i o n s ) Keywords: SA0 -tlStuck A t 0" - f o r c e s t h e s e l e c t e d f a u l t node t o a l o g i c low from 1 m i l l i s e c o n d - 600 s e c o n d s ( u s e r d e f i n e d ) . SAl-llStuck at 1 " - forces t h e selected f a u l t node t o a l o g i c h i g h from 1 m i l l i s e c o n d s - 600 s e c o n d s (user d e f i n e d ) . TR1 -"Transient 1 i n j e c t s a n i n t e r m i t t e n t p u l s e d waveform t h a t c a n r e p e a t o v e r a time i n t e r v a l s p e c i f i e d b y t h e u s e r . The TR1 waveform is i n a e l e c t r i c a l l y i n a c t i v e h i g h impedance s t a t e ( i . e . t r i s t a t e d ) between active p u l s e s . (See F i g u r e 3) TR2- " T r a n s i e n t 2"- 1s a Continuous waveform ( e . g . a l t e r n a t i n g Itstuck a t 10

Original page 15
I .. v, c -J 0 > Z- 2 v, 0 Q) v, Y .. M + .. v, c 0 > X 9 3 W E U L c cn 3 0 Z W a, - a a, > [Y -c. W I- C 3 .. a, 01 U c. U .- 0 E (3 L > 111 t .-C + + 0 .- S .- & W a, c c( W E -L cn .-I .- L c - I c L 0 0 Y L Q, 0 w .e a, w 0 .- 0 c I V U .-c (d . . W E W r 3 11

Original page 16
zero", 1 1 8 t u ~ ka t one" s t a t e s ) t h a t repeats over time i n t e r v a l specified by user. T h i s t r a n s i e n t waveform is e l e c t r i c a l l y a c t i v e i n both s t a t e levels. (See Figure 4 ) . PROCESSOR Description: Defines the SIFT working processor t h a t is targeted f o r f a u l t i n j e c t i o n . No default parameters a r e associated w i t h t h i s i n p u t parameter f i e l d . Format: PROCESSOR (no options) Keywords: PI,P2,P3,P4,P5,P6 - SIFT working processors. BOARD Description: Defines the functional c i r c u i t board t h a t f a u l t s a r e t o be injected i n t o f o r a given SIFT processor. No d e f a u l t parameters a r e associated w i t h t h i s i n p u t parameter f i e l d . Format: BOARD (no options) Keywords : C P U - Central Processing U n i t B I - Bus i n t e r f a c e M I C - Memory Interface Control BR- Broadcast Receiver 1553- Avidnics S e r i a l Data Port (MIL-STD-1553) MPM1- Main Processor Memory MPM2- Main Processor Memory TC- Timing and Control 12

Original page 17
0 > A .. v, 1 0 > X 4 2 13 .-' Q ) c L - 1 .-0 y a L 0 0 CY -Y Q, i w .c 0 W I i L .-C 0 0 i - c .. L Q) 0 1 D! c 2 z U U . . v, 3 0 CY CI 1 > I- E cc L 0 cn cc Q, 3 w 0 W .-c a m 3 -- .-E r r + I - 3 0 L .-C Q , L v, > Q ) L 3 CY Y v) c -0 0 .- 3 r .- .-L Q, c Q, c w C v) CY .- 0 c 0 0 0 cc 0 CY Q, m I: 3 Q, 13 0 .-C v) 0 -c I: C + 0 .. 0 W Q, c > -0 t W 7 t ..

Original page 18
I . C . Description valid I.C. designations from Ul-U99. The Fault program will accept However, the user should consult Appendix C "SIFT I.C. layoutst1to correctly identify board and I.C. No default parameters are associated with this input parameter field. Format: -I.C. (no options) Keywords: U1 - U99 PIN Descr i ption Accepts valid pin numbers from 1-99. Again, the user should consult the assignment numbers. No default SIFT users data base for correct pin parameters are associated with this input parameter field. Format: -PIN (no options) Keywords: 1 -99. MAP PROBE Description The SIFT Fault Injector is a physical link to the integrated circuit or P.C. board. At pre.sent, there exists eight discrete map probes for in-circuit the experimenter in connecting to integrated fault injection. To aid two connection devices. The first, i s a circuits, each probe can accommodate the second option i s a wire-wrap pin socket. In standard ball-clip'connector; addition to the in-circuit fault connections described above, the map probe requires a power (+5 v) connection and a ground connection from the board receiving the fault injection. (See the AIRLAB In-circuit fault injection users guide for more detail on the SIFT Fault injector operation). Format: PROYBE (no options) Keywords: 1 -8. 1 4

Original page 19
MAX VOLTS Description Defines the maximum voltage the user wants to inject into the circuit. the SIFT Fault Injector is 15 volts d.c. It can be Maximum voltage using incremented in .lv steps from -15Vdc to 15Vdc. Default is 0.0 Volts. Note: The user should consult the SIFT data base for information on designated I.C. supply voltages. Format: MAXVOLTS (no options) Keywords: -15.OVdc to 15.0Vdc at .1Vdc incremental steps M N VOLTS Description Defines the minimum voltage the user wants to inject into the circuit. the SIFT Fault Injector is -15 volts d.c. Can be Minimum voltage using incremented in .lv steps from 15.0Vdc to -15.0Vdc. Default is 0.0 volts. Format: MINVOLTS (no options) Keywords: 15.OVdc to -15Vdc at .1Vdc incremental steps INJECTIONS Description Defines the number of times the fault is to be executed. Default is 1. Format: Inject*ions Keywords: 0 to 65536 TIME Description time a FAULT TYPE waveform (i.e. SAO, SA1, TR1, Defines the amount of and TR2) will be activated. 15

Original page 20
Format: -TIME Keywords: T, T1, T2, T3 T: Defines the amount of time a llStuckat zeroft(SAO) or a "Stuck at onet1 (SA1) fault injection waveform is activated. T: can be varied from 1 millisecond to 600 seconds in 1 millisecond intervals. (See Figure 2). T1: (either a negative or positive level) Defines the time a voltage pulse will be active for a TR1 and TR2 fault injection waveform. Can be varied from .3 microseconds to 12.8 microseconds in .lmicrosecond steps. (See Figures 3 and 4). T2: Defines the inactive or tristated time between two successive voltage injection waveform. For TR2 fault injection pulses as related to TR1 fault waveform, defines the time the user defined voltage level will be active. Can be varied from . 3 microseconds to 12.8 microseconds in .1 microsecond steps. (See Figures 3 and 4). T3: Defines the total period or life-time of a TR1 and a TR2 fault injection waveform. Can be varied from .3 microseconds to 3200 microseconds in .1 microsecond steps. (See Figures 3 and 4) TIME OUT Description Defines the time out period (in sec) for the fault if no reconftguratton occurs. No further data will be taken after this time. Format: TIME OUT * Keywords: 0 to 65536 seconds. DELAY TIME (double fault display only) Description Defines the amount of delay between single fault display execution and double fault display execution (i.e.defines the delay time between two sequential faults). NOT IMPLEMENTED. 16

Original page 21
Format: DELAY TIME keywords: n o t a v a l i a b l e y e t 2.3.1.2 DOUBLE Comand o Coaaand format: DOU ( o p t i o n s : -/DEL) o Coerand level: l l * f l -DOU o Cd- slmmary: The DOUBLE command invokes t h e p r o c e s s t h a t draws t h e double f a u l t s c r e e n d i s p l a y (See f i g u r e 5). To c a n c e l e r a s e t h e double f a u l t s c r e e n , t h e o p t i o n ( / d e l ) i s and used w i t h DOU command. D e s c r i p t i o n Data e n t r y i s accomplished by u s i n g t h e DEF/2 command w i t h t h e a p p r o p r i a t e i n p u t parameter f i e l d a t t h e FIS e d i t i n g prompt lr*". For example: * DEF/2 TYPE Places t h e c u r s o r a t t h e FAULT TYPE i n p u t parameter f i e l d i n t h e double f a u l t d i s p l a y (assume t h e DOUBLE command was e x e c u t e d p r i o r t o DEF/2 command). The same i n p u t f a u l t parameters a s described i n S e c t i o n 2.3.1 f o r t h e s i n g l e f a u l t d i s p l a y are v a l i d for the double f a u l t d i s p l a y . To e x i t a double f a u l t e d i t s e s s i o n , t h e u s e r can execute a c o n t r o l Z or e n t e r a n EXIT < r e t u r n > command sequence. The FIS e d i t s e s s i o n w i l l be saved and a c c o r d i n g l y the f a u l t i n p u t parameters w i l l be s e n t t o FIS g l o b a l v a r i a b l e s e c t i o n f o r subsequent use. I f t h e user desires t o d i s c o n t i n u e o r erase a d o u b l e f a u l t s c r e e n , the command DOU w i t h t h e DELETE a t t r i b u t e w i l l erase t h e double f a u l t s c r e e n . i n t o t h e single f a u l t i n j e c t i o n s c r e e n w i l l F a u l t i n p u t parameters e n t e r e d remain i n t a c t and u n d i s t u r b e d . 17

Original page 22
.. a! H > t- 18

Original page 23
2 . 3 . 1 . 3 EXIT Command o Conrmand format: -EXIT or C o n t r o l Z ( n o o p t i o n s ) o Command l e v e l : * -EXIT o r C o n t r o l Z o Command summary: The e x i t command s a v e s t h e f a u l t i n j e c t i o n data i n t o t h e F I S g l o b a l s e c t i o n for f u t u r e f a u l t i n j e c t i o n s , and r e t u r n s t h e u s e r b a c k t o SIFT s t a t u s s c r e e n . D e s c r i p t i o n The EXIT o r C o n t r o l Z command allows t h e u s e r t o e x i t from a p a r t i c u l a r f a u l t i n j e c t i o n e d i t s e s s i o n and s u b s e q u e n t l y s a v e t h e e d i t s e s s i o n p a r a m e t e r s f o r l a t e r u s e (i.e. the f a u l t i n j e c t i o n ) . Note: I f t h e EXIT or C o n t r o l Z command is g i v e n while t h e double f a u l t i s i n e f f e c t , t h e system w i l l assume a d o u b l e f a u l t is b e i n g e x e c u t e d . If a s i n g l e f a u l t is i n effect when E X I T o r C o n t r o l Z command is g i v e n , t h e syatem assumes a s i n g l e f a u l t is b e i n g issued. 2.4 INJECT Coamand o Command format: I n j e c t o Conrmand l e v e l : $SIFT I n j e c t o Command summary: The I n j e c t command activates t h e I n - c i r c u i t F a u l t I n j e c t o r , which s u b s e q u e n t l y i s s u e s a f a u l t t o the t a r g e t e d c i r c u i t board. To c a n c e l t h e I n j e c t command, t y p e a c t r l Y d u r i n g t h e I n j e c t p r o c e s 8 . D e s c r i p t i o n The I n j e c t command c a l l s t h e p r o c e s s (program) t h a t r e t r i e v e s and checks t h e f a u l t i n p u t p a r a m e t e r s from t h e F I S g l o b a l s e c t i o n a n d s u b s e q u e n t l y s e n d s them t o t h e S I F T F a u l t I n j e c t o r f o r i n - c i r c u i t f a u l t i n j e c t i o n . The I N J E C T program is i n t e g r a t e d with t h e SIFT data a c q u i s i t i o n s y s t e m ( D A S ) (see s e c t i o n 3.0). Therefore, F I S and DAS must be a c t i v a t e d t o u s e t h i s f a c i l i t y . The i n - c i r c u i t f a u l t i n j e c t i o n w i l l e x e c u t e and i s s u e t h e message FAULT I N J E C T I O N COMPLETED. After the f a u l t is completed, t h e program s t o r e s t h e v a l u e s of t h e 19

Original page 24
SIFT global clock at the time the fault was submitted. This clock time is the variable SIFT-global clock in the DAS section which is available for use in processing the results of a fault injection test (see Appendix B on use of the SIFT global clock). 2.5 Fault Injection Test Plan Execution The following commands are used t o execute fault injection test plans: (See the Automated Research and Test System (ARTS) User's Guide for detailed procedures on creating and editing a fault injection test plan.) 2.5.1 FITMENU [testplan name] 0 Command format: FITMENU o Command level: SIFT$ FITM*ENU o Command summary: Displays a menu of fault injection test (FIT) operations. Description When the test plan i s first started, the .startup menu allows the user to select a particular test unit to execute from the test plan. The selected unit in then initialized into the FIS global section. If this command is invoked after a test plan has already started (i.e., a teat unit has already been initialized and has partly or completely finished executton), a menu different from the startup menu will be displayed. This menu includes a number of different operations that are only applicable after a test plan has started such as restarting a test unit at a different fault number or continuing a test This menu also displays at the top of the from the last position in the file. screen the lastest status of test plan execution. 20

Original page 25
2.5.2 FITCiONNECT o Command format: FITCONNECT o Command l e v e l : SIFT$ FITCONNECT o Command summary: D i s p l a y s t h e map probe c o n n e c t i o n s and S I F T c i r c u i t board l a y o u t s t o assist t h e user i n c o n n e c t i n g t h e correct i n - c i r c u i t f a u l t i n j e c t o r p r o b e s t o t h e SIFT p r o c e s s o r hardware. Descri p t ion By d e f a u l t t h e mapping for the c u r r e n t l y i n i t i a l i z e d t e s t u n i t w i l l be d i s p l a y e d b u t other t e s t u n i t mappings c a n a l s o be d i s p l a y e d as desired. The program is c o m p l e t e l y menu d r i v e n a n d allows the user t o s e l e c t c i r c u i t board and I C l a y o u t s f o r d i s p l a y on t h e Megatek g r a p h i c s m o n i t o r . The Megatek d i s p l a y s h i g h l i g h t t h e p a r t i c u l a r I C s as t h e y are b e i n g c o n n e c t e d and also show a d d i t i o n a l i n f o r m a t i o n of v a l u e about the I C s . 2.5.3 FITINJECT o Command format: FITINJECT o Command l e v e l : SIFT$ FITI*NJECT o Command Summary: T h i s command i n i t i a t e s t h e f a u l t i n j e c t i o n s f o r t h e c u r r e n t l y i n i t i a l i z e d t e s t u n i t . Descri p t i o n The F I T I N J E C T command a u t o m a t i c a l l y does a l l t h e other SIFT or FIS commands n e c e s s a r y t o r u n t h e t e s t s u c h as e n a b l i n g d a t a a c q u i s i t i o n , s t a r t i n g the SIFT p r o c e s s o r s , s t a r t i n g t h e p r e p r o c e s s i n g program, and r e l o a d i n g f a u l t e d p r o c e s s o r s after a n i n j e c t i o n . Each f a u l t i n t h e test u n i t is i n j e c t e d i n s e q u e n c e f o r t h e r e q u i r e d number of i t e r a t i o n s u n t i l a l l f a u l t s have been i n j e c t e d . After t h e t e s t u n i t is completed, c o n t r o l w i l l r e t u r n t o t h e user t o select a n o t h e r t e s t u n i t o r r e r u n t h e p r e v i o u s test u n i t (done from t h e FITMENU command). Once a t e s t u n i t is i n p r o g r e s s i t c a n be i n t e r r u p t e d w i t h C n t r l y , a f t e r which the FITMENU c a n be invoked t o r e s t a r t or r e p e a t t h e test u n i t . 21

Original page 26
2.6 ENDFIS Command o Command format: ENDFIS o Command l e v e l : SIFT$ ENDFIS o Command summary: The ENDFIS Command ends t h e c u r r e n t F I S s e s s i o n . The ENDFIS command e n d s the F I S s e s s i o n by d e l e t i n g access t o t h e F I S global s e c t i o n . Note: The ENDFIS command deletes a l l FIS and FAULT i n p u t v a r i a b l e s i n t h e F I S global s e c t i o n ; therefore, a l l p r e v i o u s u s e r i n p u t data d e s c r i b i n g a f a u l t i n j e c t i o n s e s s i o n is l o s t . 2.7 SUWARY OF FIS COMMANDS 0 F I S - A c t i v a t e s t h e SIFT f a u l t i n j e c t i o n system i f n o t already i n u s e . o FAULT - Invokes t h e process t h a t a l l o w s t h e user t o e n t e r , e d i t a n d list f a u l t i n j e c t i o n d a t a for a n i n t e r a c t i v e f a u l t i n j e c t i o n s e s s i o n . I n s i d e t h e f a u l t program commands are: DEF[/l or / 2 ] [ f i e l d ] - Places t h e c u r s o r a t t h e p a r a m e t e r f i e l d s p e c i f i e d or first parameter f i e l d i f n o f i e l d is s p e c i f i e d . DOU - D i s p l a y s t h e double f a u l t e n t r y s c r e e n f o r s u b s e q u e n t e n t r y of s e c o n d f a u l t parameters DOU/DEL - Deletes t h e d o u b l e f a u l t e n t r y s c r e e n and r e t u r n s t o s i n g l e f a u l t e n t r y . EXIT or CNTRL Z - s a v e s p a r a m e t e r s and e x i t s t h e f a u l t program. o I N J E C T - C o l l e c t s t h e data from t h e FIS global s e c t i o n (i.e., t h e f a u l t i n p u t parameters from t h e l a s t FAULT command) and s e n d s them t o t h e SIFT f a u l t i n j e c t o r for i n - c i r c u i t f a u l t i n j e c t i o n . (Note - T h i s command a l s o e n a b l e s d a t a a c q u i s i t i o n , starts SIFT, r u n s t h e p r e p r o c e s s o r and reloads SIFT a f t e r t h e i n j e c t i o n . It r e p e a t s t h i s s e q u e n c e for t h e number of i n j e c t i o n s s p e c i f i e d i n the FAULT program.) o FITMENU - D i s p l a y s a menu of o p e r a t i o n s for e x e c u t i o n of a f a u l t i n j e c t i o n t e s t p l a n . 22

Original page 27
o FITCONNECT - D i s p l a y s mapping f o r t h e i n - c i r c u i t f a u l t i n j e c t o r p r o b e s a n d SIFT c i r c u i t board diagrams for making p r o b e c o n n e c t i o n s t o t h e SIFT hardware. o FITINJECT - Does t h e f a u l t i n j e c t i o n s from t h e test p l a n . o ENDFIS - D e a c t i v a t e s FIS and deletes a l l g l o b a l v a r i a b l e s / p a r a m e t e r s used d u r i n g t h e F I S s e s s i o n . 3.0 SIFT DATA ACQUISITION SYSTEM 3.1 I n t r o d u c t i o n The p u r p o s e of the SIFT Data A c q u i s i t i o n System ( D A S ) is t o e x t r a c t , c o l l e c t , and a n a l y z e selected r e a l time data from t h e SIFT computer system. T h i s p r o c e s s is accomplished i n three main p h a s e s . The first p h a s e is d e f i n i n g t h e s p e c i f i c data objects t o be e x t r a c t e d a n d t h e c o n d i t i o n s f o r s e n d i n g the d a t a (called t h e f i l t e r ) . The second p h a s e is s e t t i n g up D A S , e n a b l i n g a c q u i s i t i o n , and c a p t u r i n g t h e d a t a . The f i n a l p h a s e is p r e p r o c e s s i n g t h e data which i n c l u d e s r e a d i n g , p r o c e s s i n g , a n d / o r s a v i n g t h e d a t a f o r f u r t h e r a n a l y s i s . The p h a s e s of D A S a r e i n t e g r a t e d and c o o r d i n a t e d t h r o u g h VAX g l o b a l i n t e r p r o c e s s communications. A t h o r o u g h u n d e r s t a n d i n g of data s e c t i o n s and these p h a s e s and their i n t e r e l a t i o n s h i p s is e s s e n t i a l t o have e f f e c t i v e u s e of D A S f o r SIFT e x p e r i m e n t s . T h i s . s e c t i o n describes each p h a s e of data a c q u i s i t i o n i n d e t a i l and a l s o d e s c r i b e s t h e window u t i l i t y used f o r d e f i n i n g D A S r e q u i r e m e n t s . 3.2 Defining O u t p u t Data and the Filter The s p e c i f i c data o b j e c t s that D A S is t o o u t p u t must be d e f i n e d and made known t o the s y s t e m , a n d t h e c o n d i t i o n s ( f i l t e r ) f o r s e n d i n g t h e data must a l s o be d e f i n e d . The method f o r accomplishing these tasks is t h e window u t i l i t y which p l a c e s t h e i n f o r m a t i o n i n a f i l e called t h e window f i l e . The d e t a i l s of 23

Original page 28
how t o use t h e window u t i l i t y are d e s c r i b e d f u l l y i n Appendix B; however, t h e general c o n c e p t s of d e f i n i n g o u t p u t d a t a a n d f i l t e r are e x p l a i n e d below. 3.2.1 Data Definition T h e r e are four basic t y p e s of d a t a o b j e c t s u s e d i n D A S - v a r i a b l e s , h o o k s , permanent system v a r i a b l e s . D A S allows u p t o 16 of t h e s e memory a d d r e s s e s , and d a t a o b j e c t s t o be d e f i n e d . The e n t i r e list of o b j e c t s make up what is c a l l e d t h e window. There a r e f i v e permanent s y s t e m v a r i a b l e s leaving t h e user w i t h zero t o 11 d a t a objects which can b e d e f i n e d as any c o m b i n a t i o n of v a r i a b l e s , h o o k s , and memory a d d r e s s e s . T h e s e t y p e s and t h e permanent s y s t e m v a r i a b l e s are d e s c r i b e d below. V a r i a b l e s are t h o s e names o r l a b e l s u s e d i n t h e modules of t h e V a r i a b l e s : SIFT o p e r a t i n g system and user programs t h a t are l i n k e d w i t h t h e o p e r a t i n g s y s t e m . A t l i n k time t h e v a r i a b l e names u s e d i n t h e s e modules are mapped t o a s p e c i f i c memory l o c a t i o n i n SIFT. I f a v a r i a b l e name is d e f i n e d i n t h e window, t h e c o n t e n t s of t h i s memory l o c a t i o n w i l l be o u t p u t . I n o r d e r t o use a v a r i a b l e name i n t h e window t h e v a r i a b l e must b e l i s t e d i n t h e program map. I n a s s e m b l y programs, a l l l a b e l e d v a r i a b l e s are a c c e s s i b l e i n t h e program map. I n P a s c a l programs, o n l y t h o s e v a r i a b l e s d e c l a r e d i n t h e outermost s c o p e (main program l e v e l ) a r e a c c e s s i b l e . I n a d d i t i o n t o t h e o p e r a t i n g s y s t e m v a r i a b l e s a v a i l a b l e i n t h e VAR section of t h e SIFT o p e r a t i n g s y s t e m program, several f r e q u e n t l y u s e d v a r i a b l e s are d e c l a r e d i n t h e source f i l e GLOBALS.SR l o c a t e d i n ( l o g i c a l name SIFTDIR). T h e s e v a r i a b l e names can b e t h e SIFT d i r e c t o r y i n c l u d e d i n t h e window o n l y i f t h e o b j e c t f i l e SIFTDIR:GLOBALS.RX is l i n k e d w i t h t h e o p e r a t i n g s y s t e m a n d user programs. Hooks: One group of s p e c i a l p u r p o s e variables l i s t e d i n GLOBALS.SR is used f r e q u e n t l y i n DAS - t h e hook v a r i a b l e s ( o r j u s t h o o k s ) . The h o o k s are H O O K I , HOOK2, ...HOOK9, HOOKA, HOOKB; a n d one o r more of t h e s e hooks can b e 24

Original page 29
defined i n t h e window. The purpose of a hook is t o provide a convenient method of accessing local v a r i a b l e s (i.e., not declared i n t h e outermost scope) used i n SIFT programs. For example, i f t h e v a r i a b l e TIME is defined l o c a l l y i n a Pascal program and t h i s program 13 linked w i t h the operating s y s t e m , t h e v a r i a b l e TIME w i l l not b e mapped t o a s p e c i f i c hex address and, t h u s , cannot be used i n t h e window. However, i f the program contains a statement t h a t assigns the value of TIME t o one of t h e hooks ( e . g . , HOOKl := T I M E ) , then the variable HOOKl can be used i n t h e D A S window which w i l l output t h e value of TIME. An . . a l t e r n a t i v e is t o define TIME i n t h e Pascal program t o be a t a s p e c i f i c address and use t h i s hex address i n t h e window. Another a l t e r n a t i v e is t o declare t h e v a r i a b l e a t the outermost level i n the Pascal program and use t h a t Same name i n t h e window. Hex addre.sses: T h i s type of data object is self-explanatory. I f used as an e n t r y i n t o t h e D A S window, the value t h a t is s t o r e d a t the hex l o c a t i o n w i l l be output by t h e s y s t e m . Permanent s y s t e m variables: The f i v e permanent s y s t e m v a r i a b l e s i n t h e window are: P I D (processor I D ) , TASKID ( t a s k I D ) , PRESENTCONFIG (present c o n f i g u r a t i o n ) , GFRAME (global frame c o u n t ) , SFCOUNT (subframe count). These v a r i a b l e s are always located i n the o r d e r given and i n t h e l a s t f i v e p o s i t i o n s Of t h e window. They cannot be changed by t h e u s e r , but t h e data from these variables can be f i l t e r e d (see f i l t e r d e f i n i t i o n below) and accessed during preprocessing (see Section 3 . 4 ) . Declaration f i l e s : If a hook is referenced i n a Pascal program (e.g., HOOKl := T I M E ) , t h e hook must also be declared i n t h e Pascal program. To d e c l a r e one or more hooks, the program m u s t contain t h e statement INCLUDE 'SIFTDIR:HOOKSDEC.GLOt. HOOKSDEC.GL0 is a f i l e t h a t contains t h e d e c l a r a t i o n s f o r a l l the hooks, and these declarations correspond t o t h e hook d e f i n i t i o n s 25

Original page 30
c o n t a i n e d i n CLOBALS.SR. If a non-hook v a r i a b l e l i s t e d i n CLOBALS.SR is ~ r e f e r e n c e d i n a Pascal program, the s t a t e m e n t INCLUDE 'SIFTDIR:SIFTDEC.CLO' must be u s e d . I f both hooks and non-hook v a r i a b l e s l i s t e d i n GLOBALS.SR are r e f e r e n c e d i n t h e program, t h e n both f i l e s (HOOKSDEC.CL0 a n d SIFTDEC.CL0) must be i n c l u d e d i n s e p a r a t e I N C L U D E s t a t e m e n t s . 3.2.2 Filter D e f i n i t i o n Once t h e window has been d e f i n e d t h e c o n d i t i o n s f o r s e n d i n g t h e data must b e e s t a b l i s h e d . The set of these c o n d i t i o n s is c a l l e d t h e f i l t e r . The f i l t e r is composed of two main p a r t s . The first p a r t , t h e f i l t e r s t a t u s , d e f i n e s when data is t o be s e n t b a s e d on a c t u a l v a l u e s of t h e data objects i n t h e window. The s e c o n d p a r t , the t e r m i n a t i o n s t a t u s , d e f i n e s how data a c q u i s i t i o n is t o be t e r m i n a t e d . F i l t e r tatu us: There are three choices f o r t h e f i l t e r s t a t u s : 1 ) s e n d data o n l y when t h e r e is a r e c o n f i g u r a t i o n of SIFT p r o c e s s o r s , 2) s e n d data a l l t h e time ( u n c o n d i t i o n a l - f i l t e r d i s a b l e d ) , or 3) s e n d d a t a based on t h e v a l u e of s p e c i f i c d a t a o b j e c t s i n t h e window or when there is a r e c o n f i g u r a t i o n . These o p t i o n s are selected u s i n g t h e window u t i l i t y and i n v o k i n g t h e SET FILTER f u n c t i o n a t t h e main menu as d e s c r i b e d i n Appendix B. The first two choices are s e l f - e x p l a n a t o r y b u t t h e t h i r d needs more e x p l a n a t i o n . Under t h i s t h i r d o p t i o n t h e u s e r may q u a l i f y from o n e t o s i x data o b j e c t s i n t h e window w i t h a r e l a t i o n a l o p e r a t o r ( c a l l e d t h e q u a l i f i e r o r q u a l i f i e r c o d e ) and a q u a l i f i e r v a l u e . The f i l t e r algorithm compares the v a l u e of t h e window data object t o t h e q u a l i f i e r value based on t h e q u a l i f i e r code selected ( e . g . , e q u a l , l e s s t h a n , greater than, etc.). If the r e s u l t of t h i s r e l a t i o n a l e x p r e s s i o n is t r u e , d a t a is s e n t . If more t h a n one d a t a o b j e c t has been q u a l i f i e d , t h e data w i l l be s e n t when any q u a l i f i e r is found t o be t r u e (i.e., the r e s u l t s of q u a l i f i e r s are ORed). An example might be t o establiLsh a q u a l i f i e r f o r t h e 26

Original page 31
v a r i a b l e TASKID s o t h a t data is s e n t o n l y when TASKID = 3. Also, a q u a l i f i e r c o u l d be d e f i n e d f o r ERRORS > 0 s o t h a t data w i l l be s e n t when either TASKID = 3 OR ERRORS > 0. (There is no p r o v i s i o n f o r ANDing q u a l i f i e r s so that data i a s e n t o n l y when the e x p r e s s i o n , TASKID = 3 A N D E R R O R S > 0 , is t r u e . ) A l s o n o t e t h a t data will always be s e n t when there is a p r o c e s s o r r e c o n f i g u r a t i o n , regardless of t h e r e s u l t of q u a l i f i e r c o n d i t i o n s e s t a b l i s h e d i n t h i s o p t i o n . T e r m i n a t i o n s t a t u s : There are b a s i c a l l y two c h o i c e s f o r t e r m i n a t i o n s t a t u s : 1 ) t e r m i n a t e data a f t e r a r e c o n f i g u r a t i o n , and 2) d o n o t t e r m i n a t e data a f t e r a r e c o n f i g u r a t i o n b u t c o n t i n u e data a c q u i s i t i o n i n d e f i n i t e l y . These o p t i o n s a r e made u s i n g t h e Window U t i l i t y and i n v o k i n g t h e SET TERMINATION f u n c t i o n a t t h e main menu. The first choice means t h a t data w i l l be s e n t d u r i n g t h e subframe t h a t r e c o n f i g u r a t i o n occurs and w i l l c o n t i n u e t o be s e n t ( w i t h o u t f i l t e r i n g ) f o r a set number of subframes a f t e r which data w i l l s t o p . The number of subframes t o c o n t i n u e data a f t e r r e c o n f i g u r a t i o n is called t h e d e l a y , and t h i s number may b e d e f i n e d by t h e u s e r t o be z e r o or any p o s i t i v e i n t e g e r . The d e f a u l t delay is 10 s u b f r a m e s , b u t c a n be changed i n t h e window u t i l i t y . The s e c o n d o p t i o n means t h a t data w i l l be s e n t d u r i n g t h e subframe t h a t r e c o n f i g u r a t i o n o c c u r s , b u t data a c q u i s i t i o n w i l l c o n t i n u e i n d e f i n i t e l y a c c o r d i n g t o whatever f i l t e r c o n d i t i o n s have been e s t a b l i s h e d . T h e r e f o r e , under t h i a o p t i o n data w i l l n o t be s e n t a u t o m a t i c a l l y f o r a c e r t a i n number of subframes a f t e r a r e c o n f i g u r a t i o n , b u t w i l l be f i l t e r e d j u s t as before t h e r e c o n f i g u r a t i o n o c c u r r e d . T h i s o p t i o n allows c o n t i n u o u s o p e r a t i o n of data a c q u i s i t i o n f o r extended p e r i o d s w i t h o u t b e i n g effected by p r o c e s s o r r e c o n f i g u r a t i o n s . 3.3 S e t t i n g Up DAS, Enabling A c q u i s i t i o n and C a p t u r i n g Data The DAS environment must b e p r o p e r l y s e t up and e n a b l e d i n order t o c a p t u r e data f o r S I F T e x p e r i m e n t s . The s e t t i n g up p r o c e s s i n v o l v e s several 27

Original page 32
I s t e p s : a c t i v a t i n g D A S , a l l o c a t i n g and l o a d i n g S I F T p r o c e s s o r s , l o a d i n g t h e window f i l e , and e n a b l i n g data a c q u i s i t i o n . 3.3.1 Activating DAS The first s t e p i s t o a c t i v a t e D A S w i t h i n t h e SIFT environment. To a c t i v a t e D A S t h e user must a l r e a d y b e i n SIFT and t y p e ' D A S ' a t t h e SIFT$ prompt ( i . e . , D A S is a SIFT command and is unknown o u t s i d e t h e SIFT e n v i r o n m e n t ) . However, data a c q u i s i t i o n is a s i n g l e u s e r s y s t e m . If a n o t h e r u s e r has a l r e a d y a c t i v a t e d D A S t h e second u s e r gets a ' D A S I N U S E ' message and must wait u n t i l t h e o t h e r user is f i n i s h e d . Once a c t i v a t e d , D A S r u n s as a s u b p r o c e s s i n p a r a l l e l w i t h SIFT, and t h e SIFT d i s p l a y w i l l show t h e message- D A S O N . The D A S command a l s o does some f u n c t i o n s t h a t are t r a n s p a r e n t t o t h e u s e r b u t are n e v e r t h e l e s s i m p o r t a n t f o r a complete u n d e r s t a n d i n g of t h e system. One of t h e most important of these f u n c t i o n s is t o create and i n i t i a l i z e a D A S g l o b a l s e c t i o n t h a t is used t o store i n f o r m a t i o n needed for a c q u i s i t i o n and t o share data between v a r i o u s D A S programs. Another i m p o r t a n t f u n c t i o n is t o l o a d t h e SIFT p r o c e s s o r P 7 w i t h a program (called R E L A Y ) t h a t f i l t e r s and s e n d s t h e d a t a t o t h e V A X . Processor P7 becomes a l l o c a t e d t o D A S and cannot be used f o r any o t h e r purpose while D A S is activated. Another f u n c t i o n done a u t o m a t i c a l l y by t h e D A S command is t o mount t h e d i s k d r i v e D M A 3 . T h i s is t h e d r i v e used by d u r i n g o n e a c q u i s i t i o n . Under normal D A S t o store a l l data t r a n s f e r r e d o p e r a t i n g c o n d i t i o n s , t h e message i n d i c a t i n g t h a t D M A 3 has been mounted w i l l be d i s p l a y e d on t h e s c r e e n . However, i t is p o s s i b l e t h a t a p r e v i o u s error c o n d i t i o n or abnormal e x i t from D A S w i l l c a u s e D M A 3 n o t t o be mounted a u t o m a t i c a l l y . I n t h i s case, the D A S command w i l l d i s p l a y a message that r e q u e s t 3 t h e o p e r a t o r t o mount t h e d i s k and w i l l wait f o r t h e d i s k t o be mounted b e f o r e c o n t i n u i n g t o e x e c u t e the D A S command. If t h i s s i t u a t i o n s h o u l d o c c u r , see t h e o p e r a t o r , SIFT system manager, o r a systems programmer f o r 28 i ~ -~

Original page 33
a s s i s t a n c e . A f t e r D A S has been a c t i v a t e d (shown by t h e D A S ON message i n t h e SIFT d i s p l a y ) , t h e other D A S commands become a v a i l a b l e f o r use. A l l the DAS commands are l i s t e d i n S e c t i o n 3.5. 3.3.2 Allocating and Loading SIFT Processors T h i s s t e p c a n be done before o r after DAS is a c t i v a t e d , b u t i t must be done b e f o r e l o a d i n g t h e window f i l e . The commands u s e d f o r a l l o c a t i n g (ALP) and l o a d i n g ( L O A D ) are described f u l l y i n t h e SIFT User's Guide ( N A S A TM- 86289). Any combination of a v a i l a b l e p r o c e s s o r s PI t h r o u g h P6 c a n be allocated f o r u s e d u r i n g d a t a a c q u i s i t i o n . These p r o c e s s o r s must be loaded w i t h t h e SIFT o p e r a t i n g system t h a t has been p r o p e r l y l i n k e d w i t h t h e user's a p p l i c a t i o n programs and s c h e d u l e t a b l e ; and the map o p t i o n must have been used d u r i n g t h e l i n k o p e r a t i o n (see SIFTLNK command i n t h e SIFT User's Guide). The map o p t i o n d u r i n g l i n k i n g produces a map f i l e with t h e e x t e n s i o n .CRF which i s used t o locate symbolic addresses when t h e window f i l e is l o a d e d . One p o i n t t o be aware of when a l l o c a t i n g SIFT p r o c e s s o r s f o r data a c q u i s i t i o n is t h a t there w i l l be n o r e c o n f i g u r a t i o n s i f fewer t h a n three p r o c e s s o r s are selected. Therefore, w i t h fewer t h a n three p r o c e s s o r s , d a t a a c q u i s i t i o n w i l l o n l y t e r m i n a t e when a t e r m i n a t i n g c o n d i t i o n other t h a n r e c o n f i g u r a t i o n occurs (see p a r a g r a p h below on t e r m i n a t i n g d a t a ) . 3.3.3 Loading the Window F i l e After DAS is activated and t h e S I F T p r o c e s s o r s a r e a l l o c a t e d and l o a d e d , t h e window f i l e must b e loaded. T h i s is accomplished u s i n g t h e window u t i l i t y . Type WINDOW and select t h e load o p t i o n i n the main menu, or t y p e WINDOW/LOAD f i l e n a m e . The second method bypasses t h e menu and l o a d s t h e window f i l e d i r e c t l y . The S I F T p r o c e s s o r s t h a t a r e l o a d e d w i l l be t h e p r o c e s s o r s t h a t are selected a t t h e time t h e load is done. Normally, t h e window f i l e has t o be l o a d e d o n l y once for a data a c q u i s i t i o n s e s s i o n . However, the window f i l e w i l l 29

Original page 34
have t o be reloaded i f any of t h e f o l l o w i n g s i t u a t i o n s o c c u r : ( 1 ) i f changes are made t o t h e allocated/selected p r o c e s s o r s ; ( 2 ) if a n e w h e v i s e d window f i l e is used; ( 3 ) i f any of t h e S I F T p r o c e s s o r s are r e l o a d e d ; ( 4 ) i f D A S is ended w i t h ENDDAS command a n d r e e n t e r e d a t a l a t e r time. (Note - t h e commands I N J E C T AND F I T I N J E C T a u t o m a t i c a l l y t a k e care of r e l o a d i n g t h e window f i l e on a f a u l t e d p r o c e s s o r after t h e i n j e c t i o n is done.) 3.3.4 Enabling Acquisition After l o a d i n g t h e window f i l e , data a c q u i s i t i o n c a n be e n a b l e d w i t h t h e ENABLE [timeout] command. T h i s command e n a b l e s t h e system t o r e c e i v e data by s t a r t i n g t h e hardware a n d software components that w o r k together i n t r a n s f e r r i n g d a t a from t h e S I F T p r o c e s s o r s t o t h e V A X . The timeout p a r a m e t e r g i v e n w i t h t h e ENABLE command sets a l e n g t h of time ( i n s e c o n d s ) that data w i l l be r e c e i v e d . If no timeout v a l u e is g i v e n , t h e i n i t i a l d e f a u l t is set t o 10 s e c o n d s . If a timeout is g i v e n i n t h e command, t h a t v a l u e becomes t h e d e f a u l t f o r s u b s e q u e n t ENABLE commands. The minimum time t h a t c a n be g i v e n i s 0 s e c o n d s and t h e maximum time is 65,534 s e c o n d s ( a p p r o x i m a t e l y 8 h o u r s ) . A z e r o t i m e o u t means t h a t t i m e o u t i.s d i s a b l e d ( i . e . , t i m e o u t w i l l n o t o c c u r ) . A c q u i s i t i o n starts when t h e ENABLE [ t i m e o u t ] command is invoked and e n d s when t h e t i m e o u t p e r i o d ( i f n o t z e r o ) o r a n o t h e r t e r m i n a t i n g c o n d i t i o n o c c u r s (see p a r a g r a p h 3.3.6 below o n t e r m i n a t i n g data). The a c q u i s i t i o n p e r i o d started by t h e ENABLE command does n o t imply c o n t i n u o u s r e c e i p t of data. No d a t a w i l l be d e l i v e r e d u n t i l a f t e r t h e SIFT p r o c e s s o r s are s t a r t e d ; a l s o t h e a c t u a l amount of data c a p t u r e d can v a r y from 0 t o 50,000 b l o c k s on t h e DMA3 d i s k depending on t h e f i l t e r c o n d i t i o n s established (see S e c t i o n 3 . 2 ) , t h e number of p r o c e s s o r s u s e d , and t h e number of v a r i a b l e s i n t h e window. T h i s s u b j e c t is covered i n more d e t a i l i n t h e n e x t p a r a g r a p h a n d i n S e c t i o n 3.4 under s t r u c t u r e of t h e data. After d a t a a c q u i s i t i o n h a s been e n a b l e d ( i . e . , s t a r t e d ) with t h e ENABLE

Original page 35
command, it can be aborted u s i n g t h e ABORT command which s t o p s t h e c u r r e n t a c q u i s i t i o n . T h i s command might be used i f a zero t i m e o u t or l o n g t i m e o u t p e r i o d is g i v e n i n t h e ENABLE command b u t a problem o c c u r s and a c q u i s i t i o n must be d i s c o n t i n u e d . 3.3.5 C a p t u r i n g Data To s t a r t c a p t u r i n g data a f t e r D A S has been e n a b l e d , t h e S I F T p r o c e s s o r s must be s t a r t e d w i t h t h e STARTSIFT 100 command. The p a r a m e t e r 100 is t h e hex address of t h e s t a r t i n g program counter (PC) f o r t h e S I F T o p e r a t i n g system. While t h e S I F T p r o c e s s o r s are running, t h e SIFT o p e r a t i n g system t a s k s a n d a p p l i c a t i o n tasks r u n i n predetermined i n t e r r u p t p e r i o d s called subframes. These subframes and t h e p a r t i c u l a r tasks t h a t are s c h e d u l e d t o r u n d u r i n g each subframe are d e f i n e d by t h e s c h e d u l e r (see SIFT User's Guide, Appendix A ) . The i m p o r t a n t p o i n t t o remember f o r data a c q u i s i t i o n is t h a t v a l u e s f o r data objects i n t h e window are broadcast by t h e SIFT p r o c e s s o r s a t t h e B E G I N N I N G of EVERY subframe. The v a l u e s t r a n s m i t t e d are those t h a t were v a l i d a f t e r t e r m i n a t i o n of t h e p r e v i o u s subframe. Because a subframe c a n be as small as 1.6 msec d u r a t i o n , t h e c a p a b i l i t y e x i s t s t o t r a n s m i t a c o n s i d e r a b l e amount of data a t v e r y h i g h s p e e d s . The a c t u a l amount of data t r a n s m i t t e d t o t h e V A X , however, c a n be s i g n i f i c a n t l y l i m i t e d and c o n t r o l l e d u s i n g t h e f i l t e r mechanism d i s c u s s e d i n S e c t i o n 3.2. The f i l t e r i n g is done by a program (called RELAY) r u n n i n g i n p r o c e s s o r P7 t h a t examines t h e data s e n t by t h e SIFT p r o c e s s o r s e v e r y subframe. This program e i t h e r s e n d s t h e data f o r t h a t subframe or does n o t s e n d t h e data depending on t h e r e s u l t s of f i l t e r i n g . If t h e f i l t e r is d i s a b l e d ( a n o p t i o n selected i n t h e window u t i l i t y ) , a l l t h e data w i l l be s e n t a u t o m a t i c a l l y every subframe which w i l l r a p i d l y f i l l up t h e DMA3 d i s k . With n o f i l t e r i n g and maximum o u t p u t (1.6 msec subframes, 1 6 v a r i a b l e s i n t h e window, and 6 p r o c e s s o r s i n t h e S I F T c o n f i g u r a t i o n ) , t h e d i s k w i l l f i l l up (50,000 b l o c k s ) i n approximately 4 minutes.

Original page 36
3.3.6 Terminating Data Data a c q u i s i t i o n w i l l be t e r m i n a t e d when any of t h e c o n d i t i o n s l i s t e d below o c c u r . Note t h a t c o n d i t i o n s 1 - 6 do n o t t e r m i n a t e t h e a c t i v a t i o n of DAS (done by t h e ENDDAS command), b u t o n l y t e r m i n a t e t h e c u r r e n t a c q u i s i t i o n started by t h e ENABLE command. 1 ) The timeout o c c u r s ( v a l u e i n s e c o n d s g i v e n i n t h e ENABLE command). 2 ) A r e c o n f i g u r a t i o n of SIFT p r o c e s s o r s o c c u r s ( i f f i l t e r t e r m i n a t i o n s t a t u s is set t o s t o p data a f t e r r e c o n f i g u r a t i o n ) . 3) An error c o n d i t i o n i s detected by D A S . 4 ) The DMA3 d i s k fills up. 5 ) An error c o n d i t i o n o r t i m e o u t o c c u r s from a f a u l t i n j e c t i o n test. 6 ) The user aborts a c q u i s i t i o n by i n v o k i n g t h e ABORT cmmand. 7 ) The u s e r does a n E N D D A S o r ENDSIFT command while a c q u i s i t i o n is s t i l l i n p r o g r e s s . The u s e r w i l l be n o t i f i e d of t e r m i n a t i o n by a message t o t h e s c r e e n t h a t g i v e s t h e r e a s o n f o r t e r m i n a t i o n and a l s o t h e amount of data t r a n s f e r r e d . I n t h e case of a n e r r o r c o n d i t i o n some d i a g n o s t i c i n f o r m a t i o n w i l l a l s o b e g i v e n . The amount of data t r a n s f e r r e d is g i v e n by two numbers - t h e number of f u l l b u f f e r s and t h e word c o u n t . A b u f f e r i s 1 6 , 1 2 8 words. The word c o u n t is the number of words l e f t a f t e r t h e l a s t f u l l b u f f e r . Thus, t h e t o t a l words t r a n s f e r r e d is t h e number of f u l l b u f f e r s times 16,128 p l u s t h e word c o u n t . A l l of t h i s data is located on DMA3 s t a r t i n g a t block 1 ; t h i s data must be p r e p r o c e s s e d and r e s u l t s s a v e d i n a permanent f i l e o r t h e d a t a w i l l be l o s t . 3.4 Preprocessing the Data The f i n a l phase i n data a c q u i s i t i o n is t o read t h e data from t h e d i s k DMA3, check a n d / o r m a n i p u l a t e t h e data (i.e., p r e p r o c e s s ) , a n d s a v e t h e raw data or r e s u l t s of p r e p r o c e s s i n g i n a permanent f i l e . These f u n c t i o n s are 32

Original page 37
program c o n s t r u c t e d from a t e m p l a t e p r o v i d e d i n accomplished by a user w r i t t e n the Pascal s o u r c e code f i l e named PREPRO.PAS. The t e m p l a t e program, l o c a t e d i n SIFTDIR, p r o v i d e s t h e data s t r u c t u r e s and p r o c e d u r e f o r r e t r i e v i n g data from the DMA3. The user must e d i t t h i s f i l e t o add p r e p r o c e s s i n g f u n c t i o n s which are unique t o h i s o r her experiment. After e d i t i n g t h e f i l e , t h e program must be compiled and l i n k e d u s i n g a command p r o c e d u r e PREPRO.COM. The user's p r e p r o c e s s i n g program can t h e n be r u n a f t e r a c q u i s i t i o n has been e n a b l e d and S I F T p r o c e s s o r s have been s t a r t e d . The program w i l l wait u n t i l data a c q u i s i t i o n c o m p l e t e s and t h e n do t h e p r e p r o c e s s i n g . A p o i n t t o remember is t h a t t h e p r e p r o c e s s i n g program must be r u n b e f o r e t h e n e x t data a c q u i s i t i o n b e g i n s . T h i s is n e c e s s a r y because e a c h a c q u i s i t i o n starts w r i t i n g a t block 1 on t h e d i s k , c a u s i n g any p r e v i o u s a c q u i s i t i o n d a t a t o be o v e r w r i t t e n . If the experiment r e q u i r e s doing r e p e a t e d data a c q u i s i t i o n s i n a l o o p ( i . e . , e n a b l i n g a c q u i s i t i o n , w a i t i n g f o r DAS completion, p r e p r o c e s s i n g , e n a b l i n g a g a i n , p r e p r o c e s s i n g a g a i n , e t c . ) , t h e d a t a must be p r e p r o c e s s e d d u r i n g each i t e r a t i o n of t h e loop. After the e n t i r e experiment and a l l a c q u i s i t i o n s are completed, o n l y t h e data s a v e d d u r i n g p r e p r o c e s s i n g w i l l be a v a i l a b l e f o r p o s t p r o c e s s i n g a n a l y s i s . 3.4.1 S t r u c t u r e of the Data The s t r u c t u r e of t h e data t r a n s f e r r e d from t h e SIFT p r o c e s s o r s is t h e same f o r e v e r y a c q u i s i t i o n , b u t t h e l e n g t h of t h e s t r u c t u r e is d e t e r m i n e d by the number of p r o c e s s o r s i n t h e s t a r t i n g SIFT c o n f i g u r a t i o n and t h e number of data objects i n t h e window. The o u t p u t data s t r u c t u r e f o r each subframe i s d e s c r i b e d as f o l l o w s :

Original page 38
subframe c o u n t c u r r e n t p r o c e s s o r c o n f i g u r a t i o n ( v o t e d v a l u e ) first p r o c e s s o r i n s t a r t i n g C o n f i g u r a t i o n first u s e r d e f i n e d data object i n window s e c o n d user d e f i n e d data object i n window . ( a d d i t i o n a l u s e r d e f i n e d o b j e c t s up t o 1 1 ) P I D (permanent system v a r i a b l e s ) T A S K I D P R E S E N T C O N F I G GFRAME S F C O U N T second p r o c e s s o r i n s t a r t i n g c o n f i g u r a t i o n first user d e f i n e d data object i n window d e f i n e d data o b j e c t i n window second u s e r . ( a d d i t i o n a l u s e r d e f i n e d o b j e c t s up t o 1 1 ) P I D (permanent s y s t e m variables) T A S K E D P R E S E N T C O N F I G G F RAME S F C O U N T last p r o c e s s o r i n s t a r t i n g c o n f i g u r a t i o n first user d e f i n e d data object i n window d e f i n e d data object i n window second u s e r . ( a d d i t i o n a l u s e r d e f i n e d object3 up t o 1 1 ) PID (permanent system v a r i a b l e s ) T A S K I D P R E S E N T C O N F I G GFRAME S F C O U N T Each data value o u t p u t i s a 16 b i t word and the number of words t r a n s m i t t e d f o r a s i n g l e subframe i n SIFT i s called a subframe record (see data t y p e SUBFRAMEREC below). The f i r s t word (SF i n S U B F R A M E R E C ) is the subframe c o u n t , a number from 0 t o 26. The s e c o n d word ( P C O N F G i n S U B F R A M E R E C ) is t h e p r e s e n t c o n f i g u r a t i o n which is a v a l u e t h a t has been v o t e d 34

Original page 39
from e a c h p r o c e s s o r ' s copy of t h e PRESENTCONFIG v a r i a b l e . The b i t s 0 , 1 , 2 , 3, 4 , 5 of PCONFG r e p r e s e n t p r o c e s s o r s P1, P2, P3, P4, P5, P6. If a b i t is 0 t h e p r o c e s s o r is i n t h e c o n f i g u r a t i o n . I f a b i t is 1 t h a t p r o c e s s o r is not i n t h e c o n f i g u r a t i o n . For example, when PCONFG = 00F1, it means t h a t P2, P 3 a n d P4 are i n t h e c o n f i g u r a t i o n . After SF and PCONFG t h e r e m a i n i n g words are t h e window v a l u e s from e a c h p r o c e s s o r i n t h e s t a r t i n g c o n f i g u r a t i o n . Each p r o c e s s o r o u t p u t s its own copy of t h e v a l u e s f o r e a c h d a t a o b j e c t ( v a r i a b l e , hook or hex l o c a t i o n ) i n t h e window. d i m e n s i o n a l a r r a y of window v a l u e s . T h i s is an a r r a y of a r r a y s , or a two- The t o t a l l e n g t h of t h i s structure depends on t h e number of p r o c e s s o r s a n d t h e l e n g t h of t h e window (number of d a t a o b j e c t s ) . The smallest l e n g t h p o s s i b l e is 7 words ( 1 p r o c e s s o r times 5 window values p l u s 2 ) . The maximum l e n g t h is 98 words ( 6 p r o c e s s o r s times 16 window values p l u s 2 ) . The P a s c a l d a t a t y p e d e c l a r a t i o n s used f o r t h i s s t r u c t u r e i n t h e t e m p l a t e f i l e PREPRO.PAS are as follows: TYPE -$WORD = [WORD] 32768..32767; { d e f i n e d i n I N C L U D E f i l e SIFTDEC.PAS1 {Names u s e d i n t h e user's window f i l e } WINDOWVARS = ( H O O K I , HOOK2, H O O K 3 , H O O K 4 , HOOK5, ERROR1, ERROR2, E R R O R 3 , E R R O R 4 , ERROR5, E R R O R 6 , P I D , TASKID, PCONFIC, GFRAME , SFCNT) ; SUBFRAMEREC = [ALIGNED(1)] PACKED RECORD SF: $WORD; PCONFG : $WORD ; PROCDAT: PACKED A R R A Y [ P I . . P 6 , WINDOWVARS] OF $WORD; VAR SFDAT: SUBFRAMEREC WINDOWVARS is a Pascal enumerated t y p e t h a t d e f i n e s t h e s t r u c t u r e and d a t a o b j e c t s i n t h e user's window a s d e s c r i b e d i n Section 3.4.1. The user e d i t s t h e t e m p l a t e f i l e PREPRO.PAS t o d e f i n e WINDOWVARS by l i s t i n g t h e names of t h e window d a t a o b j e c t s i n t h e same o r d e r t h e y are l i s t e d i n t h e window f i l e . The names s h o u l d correspond c l o s e l y w i t h t h e names used i n t h e window 35

Original page 40
The names s h o u l d correspond c l o s e l y w i t h t h e names u s e d i n t h e window f i l e , b u t do not n e c e s s a r i l y h a v e t o be the same, I n f a c t , i f a hex l o c a t i o n is u s e d i n t h e window f i l e i t w i l l n o t have a name, so a name r e p r e s e n t i n g t h e v a l u e i n t h a t l o c a t i o n s h o u l d be used i n t h e t y p e WINDOWVARS. The names w i l l be u s e d t o access t h e subframe record t o read a p a r t i c u l a r window v a r i a b l e f o r a p a r t i c u l a r p r o c e s s o r . The subframe record is d e f i n e d by t y p e SUBFRAMEREC, which is a record t h a t c o r r e s p o n d s t o t h e data s t r u c t u r e described p r e v i o u s l y . The first and second words a r e t h e subframe c o u n t and p r e s e n t c o n f i g u r a t i o n r e s p e c t i v e l y f o l l o w e d by t h e window v a r i a b l e data f o r each p r o c e s s o r P1 through P6 i n t h e s t a r t i n g c o n f i g u r a t i o n . Data f o r e a c h subframe i n c l u d e s data f o r each p r o c e s s o r i n t h e s t a r t i n g c o n f i g u r a t i o n even if o n e or more of t h o s e p r o c e s s o r s h a s been r e c o n f i g u r e d . T h i s i n s u r e s t h a t t h e l e n g t h of t h e subframe record is t h e same f o r t h e d u r a t i o n of t h e a c q u i s i t i o n . 3.4.2 Accessing the Subframe Data Using t h e example i n 3.4.1 a b o v e , t h e data is accessed as f o l l o w s : The v a r i a b l e SFDAT i s d e f i n e d i n t h e p r e p r o c e s s i n g program t o be of t y p e SUBFRAMEREC. HOOK3 i n p r o c e s s o r P5 i s t h e n a c c e s s e d by t h e v a r i a b l e name SFDAT.PROCDAT CP5, HOOK31. The p r e s e n t c o n f i g u r a t i o n is accessed by the v a r i a b l e name SFDAT.PCONFG. The g l o b a l frame c o u n t i n p r o c e s s o r P2 is accessed by the v a r i a b l e name SFDAT.PROCDAT CP2, CFRAME]. If a p r o c e s s o r is n o t used i n t h e s t a r t i n g c o n f i g u r a t i o n t h e user s h o u l d take care n o t t o i n a d v e r t e n t l y a c c e s s that p r o c e s s o r because t h e data w i l l e i t h e r be a l l z e r o s or g a r b a g e . 3.4.3 Reading and Preprocessing The t e m p l a t e f i l e PREPRO.PAS c o n t a i n s a p r o c e d u r e t h a t c a n be called which r e t u r n s t h e data f o r a s i n g l e subframe ( a s i n g l e record r e p r e s e n t e d by the variable SFDAT). The u8er s h o u l d n o t a l t e r t h i s p r o c e d u r e i n any way 36

Original page 41
s i n c e it is dependent on l o g i c a l I / O ' s t o t h e DMA3 d i s k d r i v e and e x a c t c a l c u l a t i o n s of where a r e q u e s t e d record is located o n t h e d i s k . Once t h e data i s r e t u r n e d i n SFDAT the user must write code t o access t h e record as shown above and p r e p r o c e s s i t i n some way. T h i s p r e p r o c e s s i n g might be r e a d i n g t h e d a t a i n t o user d e f i n e d v a r i a b l e s o r a r r a y s i n memory, d o i n g c o m p u t a t i o n s , and s t o r i n g r e s u l t s / r a w data i n t o a permanent f i l e . After PREPRO.PAS is e d i t e d i t must be compiled and l i n k e d by i n v o k i n g t h e command p r o c e d u r e PREPRO.COM (DCL command @PREPRO). T h i s p r o c e d u r e l i n k s t h e u s e r ' s I p r e p r o c e s s i n g program (named by t h e u s e r ) t o other f i l e s l o c a t e d i n t h e S I F T d i r e c t o r y ( l o g i c a l name SIFTDIR). To perform p r e p r o c e s s i n g d u r i n g the e x p e r i m e n t , the u s e r m u s t e x e c u t e the DCL command R U N f i l e n a m e where f i l e n a m e is the name of t h e e x e c u t a b l e f i l e for the user's p r e p r o c e s s i n g program. 3.5 Summary of DAS Commands and Sequence of O p e r a t i o n s The f o l l o w i n g is a summary of D A S commands d e s c r i b e d above: DAS - A c t i v a t e s t h e SIFT data a c q u i s i t i o n s y s t e m i f n o t already i n u s e . ENDDAS - Ends a data a c q u i s i t i o n s e s s i o n . The D A S global s e c t i o n is d e s t r o y e d . WINDOW - I n v o k e s t h e window u t i l i t y main menu u s e d for c r e a t i n g , e d i t i n g , l i s t i n g , p r i n t i n g or l o a d i n g a window f i l e and d e f i n i n g t h e f i l t e r . (Note - window can be u s e d o u t s i d e of D A S e x c e p t t h e LOAD and SETUP TERMINATION f u n c t i o n s which r e q u i r e DAS a c t i v a t i o n before u s e ) . WINDOW/LOAD [window f i l e-name] - Loads a window f i l e d i r e c t l y and b y p a s s e s t h e main menu of t h e Window U t i l i t y . If f i l e name is o m i t t e d , t h e program prompts f o r t h e f i l e name. R e q u i r e s D A S a c t i v a t i o n . ENABLE [ t i m e o u t ] - E n a b l e s t h e d a t a a c q u i s i t i o n s y s t e m t o a c c e p t data. The t i m e o u t p a r a m e t e r s e t a a time l i m i t i n s e c o n d s f o r t h e a c q u i s i t i o n if no o t h e r t e r m i n a t i n g c o n d i t i o n o c c u r s first. If no 37

Original page 42
timeout is g i v e n , the d e f a u l t t i m e o u t is 10 s e c o n d s f o r t h e first ENABLE and f o r s u b s e q u e n t ENABLES i t is the l a s t t i m e o u t v a l u e used. A v a l u e of 0 means no t i m e o u t . ABORT - A b o r t s a d a t a a c q u i s i t i o n t h a t was s t a r t e d by t h e ENABLE command. Note t h a t the ABORT command ends t h e c u r r e n t a c q u i s i t i o n of data; i t d o e s n o t end t h e a c t i v a t i o n of D A S which is done by t h e ENDDAS command. The sequence of o p e r a t i o n s f o r D A S is as f o l l o w s : 1 . E n t e r S I F T and t y p e D A S t o a c t i v a t e t h e data a c q u i s i t i o n system. ( A 1 3 0 t y p e F I S t o a c t i v a t e t h e f a u l t i n j e c t i o n system i f a p p l i c a b l e . ) 2. Use t h e window u t i l i t y t o create a window f i l e i f n o t a l r e a d y done. 3 . A l l o c a t e SIFT p r o c e s s o r s and l o a d t h e sift o p e r a t i n g system. 4. Load the window f i l e u s i n g t h e window u t i l i t y . 5. Use the ENABLE [timeout] command t o b e g i n a n a c q u i s i t i o n . 6. Start the SIFT p r o c e s s o r s (STARTSIFT 100). 7. Wait f o r t h e a c q u i s i t i o n t o complete ( t i m e o u t , r e c o n f i g u r a t i o n , e t c . ) . Other SIFT o r DCL commands may be used while a c q u i s i t i o n is i n p r o g r e s s . 8. When a c q u i s i t i o n c o m p l e t e s , e x e c u t e the user's p r e p r o c e s s i n g program u s i n g the DCL R U N command. If t h i s program is r u n b e f o r e DAS c o m p l e t e s , t h e program w i l l b e i n a wait s t a t e and w i l l start t h e p r e p r o c e s s i n g when a c q u i s i t i o n completes. 9. Repeat 5 through 8 as many times as r e q u i r e d . T h i s may be done i n t e r a c t i v e l y o r i n a u s e r w r i t t e n command procedure. (Note: The o p e r a t i o n s i n 5 t h r o u g h 8 are done a u t o m a t i c a l l y by t h e INJECT and FITINJECT commands f o r i n j e c t i n g f a u l t s ) .

Original page 43
- When all acquisitions of the test or experiment are finished and all preprocessing as been done, end the DAS session by the ENDDAS command. The data acquisition system is designed to provide flexibility for many types of tests or experiments using SIFT. For example, fault injection tests are integrated with data acquisition through the INJECT command (see Section 2.0), or transient fault tests can be run over very long periods (weeks or months) by disabling timeouts. The user may want to write a command procedure to execute DAS commands, or may do DAS and SIFT commands interactively. The former method is appropriate if experiments must be done with minimum user intervention. The latter method allows interactive control of experiments and access t o all DCL and SIFT commands while acquisitions are in progress. 39

Original page 44
APPENDIX A S I F T WINDOW UTILITY Al. INTRODUCTION The SIFT WINDOW UTILITY is used to define the output variables for SIFT data acquisition and also to define the filter for those variables (i.e., the conditions under which data will be transferred from the SIFT processors to the VAX). The utility stores this information in a file and also provides the capability to edit the file, list the file on the screen, print the file and load the information in the file to the SIFT processors. The utility is invoked by the command WINDOW. A menu will appear on the screen to select one of the window functions: CREATE, EDIT, LOAD, LIST, PRINT, SETUP FILTER, SETUP TERMINATION, SETUP PREPROCESSOR. The following sections describe these operations. A2. CREATE This function creates the window file that stores the information needed for data acquisition. The information i's organized as a list of variables and/or SIFT processor memory locations which are defined for SIFT output plus additional information about each variable/location. The entire list is called the window, and each variable entry in the list is called a pane. Up to 16 variables or memory locations can be defined for the window. Five of those variables are predefined by the data acquisition system (DAS) and the remaining eleven are selected by the user. The user will be prompted for all information (no commands to remember) starting with PANE 1 through PANE 11. (Note: PANES 12 - 16 already contain the predefined variables explained below). A-1

Original page 45
The first i n f o r m a t i o n t o e n t e r f o r each pane is t h e name of a SIFT v a r i a b l e or a h e x a d d r e s s . A t the t o p of t h e s c r e e n there is a list of v a r i a b l e s called t h e d e f a u l t window v a r i a b l e s . To f a c i l i t a t e data e n t r y t h e d e f a u l t v a r i a b l e may be selected f o r a p a r t i c u l a r pane number by p r e s s i n g or by e n t e r i n g a n a s t e r i s k ( * I . If a v a r i a b l e name is e n t e r e d i t is d i v i d e d i n t o two s e c t i o n s , t h e s c o p e a n d t h e label, which are s e p a r a t e d w i t h a p e r i o d ( . I . The e n t i r e name a l w a y s starts w i t h a d o l l a r s i g n ($1 t o d i s t i n g u i s h it from a hex address (e.g., $GLOBA.HOOKl, where GLOBA is t h e s c o p e and HOOK1 is t h e l a b e l ) . The s c o p e must b e 1 t o 5 characters; t h e s c o p e and label combined c a n be up t o 18 characters l o n g b u t the s c o p e p l u s the first f i v e characters of t h e l a b e l p o r t i o n must be a u n i q u e name. (Note: r u l e s for labels are t h e same as r u l e s f o r r e f e r e n c i n g labels i n other SIFT commands - see S I F T U S E R ' S GUIDE.) The asterisk c a n be u s e d t o e n t e r a d e f a u l t s c o p e or a d e f a u l t label. For example, i f t h e d e f a u l t is $SIFTO.ERROR+2, you c a n e n t e r *.ERROR+5 and the r e s u l t w i l l be $SIFTO.ERROR+S. To e n t e r a hex address, s i m p l y e n t e r t h e hex number i n s t e a d of a label o r d e f a u l t label. I f no l a b e l or address is d e s i r e d f o r a p a r t i c u l a r p a n e , e n t e r N I L and t h i s w i l l be c o n s i d e r e d a n unused pane i n t h e o v e r a l l window. Each name, hex a d d r e s s , o r NIL w i l l b e shown i n t h e c e n t e r of t h e s c r e e n a f t e r it is e n t e r e d . The n e x t i n f o r m a t i o n t o e n t e r for each pane depends on whether o r n o t t h e i n f o r m a t i o n p r e v i o u s l y e n t e r e d was a label or a hex address. If a hex address, t h e n t h e user w i l l be prompted f o r a t e x t d e s c r i p t i o n or comment t h a t describes t h a t d a t a . The d e s c r i p t i o n is l i m i t e d t o 30 characters. If the p r e v i o u s e n t r y was a label b u t n o t a hook (see S e c t i o n 3.2 f o r d e s c r i p t i o n of hook), t h e n t h e next prompt w i l l be f o r a d e s c r i p t i o n j u s t as for a hex addrem. If t h e l a b e l p r e v i o u s l y e n t e r e d was a hook, t h e n t h e program w i l l A-2

Original page 46
prompt f o r a t a s k name where t h a t hook is u s e d a n d a c o r r e s p o n d i n g d e s c r i p t i o n . Up t o e i g h t task names and c o r r e s p o n d i n g d e s c r i p t i o n s can be e n t e r e d f o r e a c h hook u s e d . Up t o 1 1 h o o k s can b e d e f i n e d b y t h e user i n w r i t i n g SIFT a p p l i c a t i o n or o p e r a t i n g s y s t e m t a s k s a n d are r e f e r e n c e d by $GLOBA.HOOKl, $GLOBA.HOOK2, ..., $GLOBA.HOOKg, $CLOBA.HOOKA, $GLOBA.HOOKB. ( F o r a d e f i n i t i o n of hooks see p a r a 3 . 2 . 1 . ) A f t e r a l l information h a s been e n t e r e d f o r a p a n e , t h e user w i l l b e a s k e d if c h a n g e s or corrections are d e s i r e d . Press f o r no o r Y f o r y e s . I f y e s , t h e e d i t screen w i l l a p p e a r which allows c h a n g i n g any p a r t o r a l l of t h e entries made f o r t h a t pane. The e d i t f u n c t i o n is d e s c r i b e d i n more d e t a i l i n a l a t e r .section. The user can make any c h a n g e s d e s i r e d a n d return t o t h e CREATE o p e r a t i o n by p r e s s i n g C n t r l Z . Changes can o n l y b e made t o t h e pane j u s t e n t e r e d . P r e v i o u s panes cannot b e changed i n t h i s mode b u t t h e e n t i r e f i l e can b e e d i t e d after i t is c r e a t e d u s i n g t h e EDIT f u n c t i o n i n t h e main menu. v a r i a b l e s a r e l o c a t e d i n pane 12 t h r o u g h pane 16 and The f i v e p r e d e f i n e d The d e f i n i t i o n s o f t h e s e v a r i a b l e s are as follows: cannot b e changed. PANE 12: $GLOBA.PID PANE 13: $SIFTO.TASKID PANE 1 4 : $SIFTO.PRESENTCONFIG PANE 15: $CLOBA.GFRAME PANE 16 : $GLOBA .SFCOUNT p r o c e s s o r I D ( e . g . , 1 , 2 , . . 6 ) task I D p r e s e n t p r o c e s s o r c o n f i g u r a t i o n g l o b a l frame count s u b f r a m e count After a l l information for panes 1-11 h a v e been e n t e r e d , t h e SETUP FILTER f u n c t i o n w i l l b e invoked a u t o m a t i c a l l y i n o r d e r t o o b t a i n i n f o r m a t i o n f o r f i l t e r i n g t h e d a t a . F i l t e r i n g is d e f i n e d as t h o s e c o n d i t i o n s which w i l l cause t h e d a t a f o r e a c h v a r i a b l e i n t h e window t o b e t r a n s f e r r e d from t h e SIFT c o m p u t e r t o t h e V A X . T h i s f u n c t i o n is e x p l a i n e d i n d e t a i l i n t h e n e x t A - 3

Original page 47
section. The SETUP FILTER function can also be invoked from the main menu to change filter conditions in a previously created window file. A 3 . SETUP FILTER This function sets up the conditions under which SIFT data will be transferred to the VAX for subsequent processing. It is invoked automatically from the CREATE function described above to establish the filter for a newly created window file, or can be invoked from the main menu to make changes in a previously created window file. The function is completely menu driven. The first menu that will appear in this function is to select one of three overall data acquisition modes: 1 ) send data only when there is a reconfiguration of SIFT processors, 2 ) send all data every subframe whether reconfiguration or not, or 3) send data according to variable qualifiers or reconfiguration. Options 1 and 2 transfer data for every variable/location in the window regardless of the value of any variable/location. Option 3 invokes another input screen which allows the user to enter qualifiers and qualifier values for any of the non-nil variables. A qualifier is a relational operator such as equal to ( = > , less than ( < > , greater than or equal to ( > = ) , etc. A qualifier value is a number entered in hex (the default) or entered in decimal by preceding the number with %D. During data acquisition, the variable is compared with the qualifier value using the relational qualifier. If the result of any comparison is true, the data for all variables in the window will be transferred. If no comparison is true, data will not be transferred unless there is reconfiguration. If there is reconfiguration, data is transferred regardless of qualifiers. Qualifiers are defined by selecting a pane number at the prompt, then entering a qualifier code ( - 1 , 0 , 1 , 2 , 3, 4, 5) associated with the qualifier as defined in the screen display. For example, the code 0 i.s associated with A - 4

Original page 48
the equal qualifier. The code -1 is used to delete existing qualifiers which may then be redefined using one of the codes 0 through 5. After the pane number and qualifier code has been entered, there will be a prompt for the qualifier value. The qualifier and value (in hex) is immediately shown in the display at the top of the screen. Pressing Control Z terminates the session and returns to the main menu. Note: Changes made to a previously created window file using the SETUP FILTER function are always made t o the dame version of the file. Only one version of the file is maintained, If more than one version is needed, each version must be given a different name. A4. SETUP TERMINATION This function allows the user to override the defaults for 1 ) terminating data after a reconfiguration of SIFT processora, and 2) maximum subframe number in a frame. The defaults are only overridden for the current DAS session. That is, if the user exits DAS and comes back in, the defaults will again become effective. In the default mode, if a reconfiguration occurs data will continue to be transferred for all variables/memory locationa in the window for the next 10 subframes, after which data acquisition will terminate. The filter i s not used to transfer these last 10 subframes after the reconfiguration; this data is sent regardless of what qualifier3 have been e3tablished. Data acquisition stops after 10 subframes are sent. However, there are two options the user can choose to override this default. The user can change the number of subframes (from 0 to 65535) to continue sending data after reconfiguration, or, there is the option to continue acquisition indefinitely after a reconfiguration. For the second option data will be sent during the subframe that reconfiguration occurs, but in subsequent subframes the data is sent only if specified filter conditions are met. A-5

Original page 49
The second f u n c t i o n of SETUP T E R M I N A T I O N is t o change t h e d e f a u l t f o r t h e maximum subframe number i n a frame. C u r r e n t l y , t h e d e f a u l t i s 26. (Note: there are 27 subframes i n a frame s t a r t i n g a t 0 subframe t h r o u g h 2 6 ) . T h i s d e f a u l t c a n be o v e r r i d d e n for t h e c u r r e n t DAS s e s s i o n by e n t e r i n g a n o t h e r max subframe number a t t h e prompt. However, if a number o t h e r t h a n t h e d e f a u l t 26 is u s e d , t h e u s e r must a l s o change t h e c o n s t a n t MAXSUBFRAME i n the f i l e SIFTDEC.CON located i n SIFTDIR, and must have made a p p r o p r i a t e m o d i f i c a t i o n s t o t h e SIFT o p e r a t i n g system and s c h e d u l e r . Note: The SETUP TERMINATION f u n c t i o n has no e f f e c t on any window f i l e . Changes made u s i n g t h i s f u n c t i o n a r e o n l y made t o the DAS global s e c t i o n v a r i a b l e s and are n o t p a r t of any window f i l e . Aha, t h e changes are o n l y e f f e c t i v e f o r t h e c u r r e n t D A S s e s s i o n . If DAS is ended u s i n g t h e ENDDAS command, and D A S i s r e e n t e r e d a t a l a t e r time, t h e system w i l l r e t u r n t o t h e d e f a u l t s . A l s o , t o be effective any changes made w i t h t h e SETUP TERMINATION f u n c t i o n m u s t be l o a d e d i n t o t h e SIFT p r o c e s s o r s u s i n g the LOAD o p t i o n (see p a r a 7 below). A 5 . SETUP PREPROCESSOR T h i s f u n c t i o n g e t s t h e f i l e s p e c i f i c a t i o n of t h e u3erfs p r e p r o c e s s i n g program t h a t is b e i n g used for t h e c u r r e n t t e s t / e x p e r i m e n t . The f i l e s p e c i f i c a t i o n 1.s u s e d by t h e I N J E C T and FITINJECT commands t o r u n t h e p r o p r o c e s s o r a u t o m a t i c a l l y from a command p r o c e d u r e w i t h o u t user i n t e r v e n t i o n . A6. EDIT The e d i t f u n c t i o n a l l o w 3 changing any p a r t of a p r e v i o u s l y created window f i l e . The window f i l e is n o t a t e x t f i l e a n d , t h e r e f o r e , c a n n o t b e changed i n t h e e d i t o r ; i t can o n l y be changed i n t h e e d i t f u n c t i o n of t h e window u t i l i t y . Use o f t h i s f u n c t i o n is self e x p l a n a t o r y . E d i t commands a r e s i m p l e a n d l i s t e d a t t h e t o p of t h e screen. The pane number t o be e d i t e d is selected by A-6

Original page 50
p r e w i n g arrow k e y s ( u p arrow t o advance t h e f i l e a n d down arrow t o go backwards). The selected pane is d i s p l a y e d i n t h e c e n t e r of t h e s c r e e n dnd e d i t commands a r e e n t e r e d a t t h e prompt. Changes a r e immediately d i s p l a y e d o n t h e s c r e e n . To e x i t t h e f u n c t i o n t y p e C n t r l Z . Note: Changes made t o a window f i l e u s i n g t h e EDIT f u n c t i o n a r e a l w a y s made t o t h e same v e r s i o n of t h e f i l e . Only o n e v e r s i o n of t h e f i l e is m a i n t a i n e d . If more t h a n o n e v e r s i o n I S needed, each v e r s i o n mu?t b e g i v e n a d i f f e r e n t name. A 7 . LOAD T h i s f u n c t i o n must b e invoked t o m a k e a p a r t i c u l a r window f i l e e f f e c t i v e f o r a data a c q u i 3 i t i o n s e s s i o n . If t h e window f i l e is n o t l o a d e d d a t a w i l l n o t be r e c e i v e d . Before LOAD I S invoked t h e SIFT p r o c e s s o r s (any c o n f i g u r a t i o n of P1 t h r o u g h P 6 ) must h a v e been a l l o c a t e d a n d loaded w i t h t h e SIFT o p e r a t i n g s y s t e m , and D A S must b e a c t i v a t e d u s i n g t h e D A S command (SIFT d i s p l a y shows D A S o n ) . The l o a d i n g p r o c e d u r e loads t h e addresses of t h e window v a r i a b l e s or memory l o c a t i o n s i n t o t h e c u r r e n t l y selected SIFT p r o c e s s o r s a n d loads t h e f i l t e r i n f o r m a t i o n a n d other p a r a m e t e r s i n t o t h e a c q u i s i t i o n p r o c e s F o r P7. The window v a r i a b l e s w i l l b e packed d u r i n g t h e load. T h a t is, a n y NIL p a n e s i n t h e window w i l l d e l e t e d a n d selected v a r i a b l e s / l o c a t i o n s w i l l be packed i n t h e order t h e y a p p e a r i n t h e f i l e . The window f i l e c a n be loaded from t h e main menu, o r c a n b e loaded d i r e c t l y from t h e SIFT$ prompt u s i n g t h e command WINDOW/LOAD windowfilename. A8. LIST and PRINT These f u n c t i o n s s i m p l y list t h e window f i l e o n t h e s c r e e n o r p r i n t t h e J f i l e . S i n c e t h e f i l e is a b i n a r y f i l e , i t c a n n o t be l i s t e d u s i n g t h e DCL TYPE command or p r i n t e d u s i n g t h e DCL PRINT command. A - 7

Original page 51
Appendix B The Global Clock The Global Clock is comprised of a 16 b i t counter which can be read by . a n y SIFT processor and the System 9 VAX. The Global Clock's period can be s e t from t h e V A X t o anywhere w i t h i n the i n t e r v a l 1 psec t o 4000 seconds. Access t o t h e Global Clock from a SIFT processor is through function GCLOCK. FUNCTION GCLOCK: INTEGER; EXTERN; Function GCLOCK r e t u r n s the Global Clock value. A l l SIFT processors can access t h e Global Clock simultaneously without contention. The period of the Global Clock is programmed from t h e V A X . The Global Clock has 3 base frequencies: 1 s e c . , 1 msec., and 1 psec. A 12 b i t p r e s e t t a b l e up-counter provides additional adjustment t o the base frequency ( i . e . periods of from 1 t o 4095 u n i t s can be programmed). S I F T DCL function CLOCK allows a SIFT user t o program t h e clock. I f CLOCK is invoked w i t h no arguments, the Global Clock is read and the following message printed: XXXXX(base IO). Clock has unsigned value of The CLOCK function can be called t o s e t t h e desired Global Clock period. expressed i n "Ef1 notation i n u n i t s of seconds. The clock period should be To s e t a 10 psec period - SIFT$ CLOCK 10E-6 To s e t a 1 s e c period - SIFT$ CLOCK 1 .O To s e t a 2 msec period - SIFT$ CLOCK 2E-3 Because t h e Global Clock h a s been known t o " f r e e z e r f , the CLOCK function suspend3 f o r a length of time to t e a t the operation of the Global Clock. For periods up t o 999 psec CLOCK w i l l suspend f o r 50 msec. For 1 . 0 msec <= period <- 999 msec, CLOCK w i l l suspend for 1 .O s e c . For periods over 1 . O s e c , CLOCK w i l l suspend f o r 5 seconds. Of course periods i n excess of 4 seconds w i l l not B-1

Original page 52
be t e s t e d . However, the user can use CLOCK t o read t h e Global Clock a f t e r an appropriate interval and assure himself t h a t the Global Clock is functioning. When the CLOCK task resumes i t p r i n t s the following message: Received X clock t i c k s d u r i n g 0 : : Y . Y Y second timeout I f , f o r example, the user s e t s a 1 msec period, the following sequence would occur: SIFT$ CLOCK 1.OE-3 Received 999 clock t i c k s d u r i n g 0 ::1.00 second timeout Using t h i s data the user can v e r i f y the Global Clock programming. A t periods below 1 msec ( i . e when the timeout period is 50 msec), the c o r r e l a t i o n between the number of clock t i c k s received and the timeout period degrades due t o VMS's i n a b i l i t y t o d e l i v e r c o n s i s t e n t 50 msec i n t e r v a l s . For example, when s e t t i n g a period of 1 psec, anywhere from 40000 t o 50000 clock t i c k s w i l l be recorded.

Original page 53
REFERENCES Green, D. F.; Palumbo, D. L.; Baltrus, D . W.: Software Implemented Fault Tolerance (SIFT) Users Guide. NASA TM-86289, 1983. R- 1

Original page 54
NASA TM-87638 I 4ra.m-t~ I User’s Guide t o Prograimning F a u l t Injection and Data A c q u i s i t i o n i n t h e SIFT Environment 7-bkrrkro Carl R. Elks David F. Green Danie1 L. Palumbo r--m-d- NASA Langley R e s e a r c h Center Hampton, V i r g i n i a 23665-5225 r--Wrrrmd*ddrr a ~ o l * ’ u t i r n R a p u # t w I , M - U i r n r 11-’. Q Qm k I $1T r r d md hdcorr~ ~ T e c h n i c a l Memorandum 1 N a t i o n a l A e r o n a u t i c s and Space A d m i n i s t r a t i o n Washington, DC 20546 a- 14. **ll- coa This document d e c r i b e s t h e f e a t u r e s , comraand l a n g u a g e , and f u n c t i o n a l d e s i g n of t h e SIFT ( S o f t w a r e Implemented F a u l t T o l e r a n c e ) f a u l t i n j e c t i o n and d a t a a c q u i s i t i o n i n t e r f a c e s o f t w a r e i n d e t a i l . It is a l s o i n t e n d e d t o a s s i s t and g u i d e t h e SIFT u s e r i n d e f i n i n g , d e v e l o p i n g , and e x e c u t i n g SIFT E a u l t c o l l e c t i o n and r e d u c t i o n o f t h a t f a u l t i n j e c t i o n e x p e r i m e n t s and t h e s u b s e q u e n t i n j e c t i o n d a t a . T h i s document is i n t e n d e d t o be used i n c o n j u n c t i o n w i t h t h e SIFT User’s Guide (NASA T e c h n i c a l Yemorandum 86289) f o r r e f e r e n c e t o SIFT s y s t e m cormnands, p r o c e d u r e s and f u n c t i o n s , and o v e r a l l g u i d a n c e i n SIFT s y s t e m programming. ; I n S t u c k - a t - f a u l t s ’IS I n t e r m i t t a n t f a u l t s ,As T r a n s i e n t f a u l t s lzNDOW F i l t e r U n c l a s s i f i e d - U n l i m i t e d S u b j e c t C a t e g o r y 61
