SoC Software Components Diagnosis Technology
📝 Abstract
A novel approach to evaluation of hardware and software testability, represented in the form of register transfer graph, is proposed. Instances of making of software graph models for their subsequent testing and diagnosis are shown.
💡 Analysis
A novel approach to evaluation of hardware and software testability, represented in the form of register transfer graph, is proposed. Instances of making of software graph models for their subsequent testing and diagnosis are shown.
📄 Content
SoC Software Components Diagnosis Technology
Svetlana Chumachenko, Wajeb Gharibi, Anna Hahanova, Aleksey Sushanov Computer Engineering Faculty, Kharkov National University of Radioelectronics, Lenin Ave. 14, Kharkov, Ukraine, 61166, phone: (057) 70-21-421, (057) 70-21-326 E-mail: hahanov@kture.kharkov.ua; kiu@kture.kharkov.ua
Abstract
A novel approach to evaluation of hardware and software testability, represented in the form of register transfer graph, is proposed. Instances of making of software graph models for their subsequent testing and diagnosis are shown.
- Introduction
There are technologies of hardware testing and
testable design, which enable to solve the problem of
SoC service effectively [1-10]. On the other hand,
there are not effective models and methods of the given
problem solving on the electronic technology market.
To realize testable design and diagnosis of SoC
software components the universal model of software
components representation in the form of register
transfer and control graph is developed. An algorithm
of software diagnosis is proposed. An instance of
software diagnosis technology utilization is considered.
The research aim is adaptation of the hardware
testing methods to the service of SoC software
components.
The research problems: 1) Adaptation of Thatte-
Abraham-Sharshunov register transfer model [4,5] to
the solving of software testing problem; 2) Application
of the model for faulty statements diagnosis on basis of
use the fault detection table.
- Software diagnosis technology
At development of large size software verification of development project on the correctness of statements is urgent problem. Complex software includes great many branches and verification of software on every logical path is rather complex problem. A method of faulty statements (errors or faults) searching for software that is based on representation of software algorithm in the form of graph structure for subsequent test generation and fault diagnosis is considered below on an example. Lets it is necessary to verify the software that realizes computation of the following sum of functions: .3 2 x ;3 2 x , , 2 ) x sin( ) 3 x sin( ) x ( ; 12 x ; 12 x 2 ;2 x ;7 x 3 ;3 x 2 ;3 x x ), x ( ) x ( S
One of the possible problem solution variants on
C++ language is represented by the following listing:
Listing 3.1.
#include
const double Pi=3.14159;
double F, w, f, x;
cin»x;
if (x<2) f=x+3;
else if ((x>=2) && (x<12)) f=2x-3;
else f=-3x+7;
if (x<2./3.Pi)
w=sin(x+Pi/3);
else w=sin(Pix)+2;
F=f+w;
cout«F«endl;
return 0;
}
Lets an error takes place in a statement of
computational part of software. Instead of the correct
statement
else w=sin(Pix)+2;
the following one is written:
else w=sin(Pix) - 2;
It is necessary to detect faulty statement in
program code by using the testing technology, based
978-1-4244-3403-9/08/ $25.00 ©2008 IEEE
on the graph code model. Software diagnosis stages
include 4 procedures below.
- Making of register transfer graph.
Graph ribs are a set of code fragments or separate operations (Fig. 1); graph points are points of information monitoring (registers, variables, memory), which are used for forming of assertions too.
Fig. 1. Register transfer graph
A number of test points in the graph (registers,
variables, memory) should be adequate to diagnose of
given resolution. Otherwise it is necessary to carry out
the analysis of register transfer graph testability for
software and to determine the minimal additional
quantity of observation lines for forming of assertions,
which enable to detect faulty modules with given
diagnosis resolution. Every rib (see Fig. 1) is marked
by an arithmetic operation set: {1} – summation; {2} –
multiplication; {3} – subtraction; {4} – division; {5} –
obtainment of trigonometric sine. In a case when there
is a branch in a program a number of outgoing ribs
from a point is equal to quantity of adjacent sinks that
is formed by branch statements in respective part of a
program.
Thus, for the code fragment of the instance:
if (x<2) f=x+3;
else if ((x>=2) && (x<12)) f=2x-3;
else f=-3x+7;
there are three ribs, outgoing from the point X.
Computational results
3
2
1
I,
I,
I
, which depend on the
variable X, are checked in the points
3
2
1
R
,
R
,
R
respectively. In a case of execution of the operation 1I
the following branch is realized:
if (x<2./3.Pi) w=sin(x+Pi/3);
else w=sin(Pix)+2;
Then the general summation operation for all
transactions is carried out regardless of which branch
statements had been executed.
F=f+w;
The summation operation is executed on various
ribs (the objects
D
6
C
6
B
6
A
6
I,
I,
I,
I
), but all of them
correspond to the same part of the program code
This content is AI-processed based on ArXiv data.