SoC Software Components Diagnosis Technology

Reading time: 5 minute
...

📝 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.

  1. 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.

  1. 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 #include <math.h> using namespace std; int main() {

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(Pi
x)+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.

  1. 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.

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut