## 4 Fault Localization Method Using Memory Updates
### Identification of Input-Driven Updated Range  
Now, we have to focus on reducing the number of the captured memory frames. Because we use the MUI, we do not need entire frames that are periodically collected. In Figure 3, the third step identifies the Input-Driven Updated Range (IDUR). When the software is executed, the footprint remains in memory. The software is executed according to the input signal provided by the simulator and input-driven output can be traced by analyzing the memory. In Reference [9], we proposed the IDUR identification method using a moving average technique and tracing the trend of updating  
Figure 6: Example of Analyzed Memory Updated Information: (**a**) n-th frame; (**b**) Full Range of Frames; (**c**) MUI\({}_{\text{A, R}}\) (A = {a | MU\({}_{\text{A, R}}>0\)},\) R = [488,497]).  
memory through the entire frames. However, it is difficult to obtain the exact updated range because it is identified only by trend without precise criteria. Thus, we propose a new algorithm that can improve the method of IDUR identification to obtain an exact range. Figure 7 compares the IDUR identified by the existing moving average method of [9] and the proposed method.  
The blue line indicates the number of updated addresses throughout the frame and the dashed line shows the trend of the number using the moving average method. Looking at the 50 th frame of the graph, you can see that the number of updated addresses increases and the number of updates increases again near the 250 th frame after 200 frames (T\({}_{\text{in}}\) = 200). This is obvious evidence that the input signal reflects the update of the memory value. Therefore, in order to handle only the data driven by the input, we need to find the exact range called IDUR. The algorithm of the proposed IDUR identification method is shown in Algorithm 2.
```
1:N\({}_{\text{in}}\), Number of Input, \(\text{T}_{\text{in}}\), Input Interval \(\text{OUTPUT}\): IDUA, Input Driven Updated Address, \(\text{IDUR}\), Input Driven Updated Range
2:MUF (\(\alpha\),R) \(\equiv\) the frequency of the MU(\(\alpha\),k) in R range
3:MU(\(\alpha\),k) \(\equiv\) the value of the address \(\alpha\) changed in k-frame
4:Set Input Driven Updated Address:
5:FOR each address \(\alpha\) DO
6:if\(\text{MUF($\alpha$,R)}\leq\text{N}_{\text{in}}\)then
7:ifupdated frames interval = T\({}_{\text{in}}\)then
8:IDUA \(\leftarrow\)\(\alpha\)
9:END FOR Identify Input Driven Updated Range:
10:FOR each input j of N\({}_{\text{in}}\) DO
11:\(\text{K}_{\text{j}}\equiv\) (\(\text{Y}_{\text{k}}\) ) \(\text{MUF($\alpha$,k)}\) = 1, \(\alpha\) in IDUA) //
12:\(\text{R.start}\leftarrow\text{min(K}_{\text{j}}\)) // first updated frame of input number j
13:\(\text{R.end}\leftarrow\text{max(K}_{\text{j}}\)) // last updated frame of input number j
14:IDUR[j] = [index of IDUR, R.start, size of R range]
15:END FOR
```  
**Algorithm 2** The Algorithm for Input Driven Updated Range  
First, we find an address with MUF smaller than the number of inputs (N\({}_{\text{in}}\)) written in the test script (line 4). Here, the interval of the updated frame is equal to the input time interval (T\({}_{\text{in}}\)). That is, it finds an address that is updated at the same time interval of the input. We define a set of  
Figure 7: Identification of Input-Driven Updated Range.  
the addresses as Input-Driven Updated Addresses (IDUA) (lines 5-6). The identification method of IDUR is based on the order of the updated frames of the IDUA and determines the frame range from the first frame (R.start) to the last frame (R.end) of each order as the IDUR (lines 8-13). As a result, the IDUR identified by the proposed algorithm is determined as shown by the shaded area in Figure 7. Therefore, we can focus on only input-driven data by reducing the number of captured memory frames using the algorithm of IDUR identification.