Development Flow For On-Line Core Self-Test of Automotive Microcontrollers
Development Flow For On-Line Core Self-Test of Automotive Microcontrollers
3, MARCH 2016
Abstract—Software-Based Self-Test is an effective methodology for devising the online testing of Systems-on-Chip. In the automotive
field, a set of test programs to be run during mission mode is also called Core Self-Test library. This paper introduces many new
contributions: (1) it illustrates the several issues that need to be taken into account when generating test programs for on-line
execution; (2) it proposed an overall development flow based on ordered generation of test programs that is minimizing the
computational efforts; (3) it is providing guidelines for allowing the coexistence of the Core Self-Test library with the mission application
while guaranteeing execution robustness. The proposed methodology has been experimented on a large industrial case study. The
coverage level reached after one year of team work is over 87 percent of stuck-at fault coverage, and execution time is compliant with
the ISO26262 specification. Experimental results suggest that alternative approaches may request excessive evaluation time thus
making the generation flow unfeasible for large designs.
1 INTRODUCTION
non-exceptive tests: require the manipulation of SPR the current status and control registers of the used
register, such as for testing the Register File; peripheral modules, such as the interrupt controller
critical tests: intentionally raise interrupts and make configuration and the MMU.
use of peripheral cores, such as a procedure for test-
ing modules managing software exceptions. 3.3 Interruption Management and Robustness
Run-time tests are the easiest to manage. They only
Interrupt mechanisms, which are managing synchronous
require creating a stack frame according to EABI compli-
and asynchronous exceptions, need to be handled with
ancy; stack frame size is minimal. It is suggested to execute
extreme care, because they are not only intentionally raised
this kind of tests with low privileges, i.e., user mode,
for testing purposes.
because they shall never request interruptions or privileged We discriminate three types of exception:
instruction execution in the fault-free scenario. No other
special setup is required. EABI compliancy can be satisfied intentionally provoked exceptions, i.e., to test proces-
during the execution, and other OS threads can preempt the sor exceptions;
test execution. unexpected, induced by an erroneous execution that
Non-exceptive tests are slightly less easy to manage is provoked by a faulty configurations;
because these require resources that are not allowed to be mission mode interruptions.
directly used in the EABI context. For this category, addi- Intentionally provoked interruptions can be both syn-
tional test setup steps have to be executed before running: chronous or asynchronous. Situations like system calls, ille-
gal memory access, illegal instructions and privilege related
disable the external interrupts to avoid preemption; operations are synchronous, as they have to be forced by
save all special and general purpose registers in a the code itself. On the other hand, asynchronous interrup-
larger stack frame memory area; tions are raised by peripheral cores.
modify the content of special and general purpose To test exceptions it is therefore necessary to both rise
registers according to the processor setup information. and manage them (Fig. 3). If the circuitries managing the
Moreover, some closing operations are needed at the interrupt have not been corrupted by a fault, each single
conclusion of the test execution to restore the initial configu- forced exception is correctly managed, meaning that a test
ration. During the execution of these tests, no preemption is Interrupt Service Routine (ISR) is accessed. Such an ISR is
allowed because the compliancy with the EABI standard configured at the time when the scheduler prepares the
cannot be guaranteed. environment for the test program execution and replaces
When considering Critical tests, other than saving-restore the mission ISR with the test ISR.
all registers and disable external interrupt sources, more The code included in the test ISR is also used to add sig-
restrictive requests have to be accomplished: nificant contents into the signature, e.g., the processor’s sta-
tus registers. In presence of a fault, the execution flow may
the Interrupt Vector Table (IVT) and the related
be altered and an exception intentionally scheduled but is
registers in case an alternative IVT is required for
not raised. In this case, the signature is not updated by the
testing purposes;
test ISR, and the right signature value is not produced.
Authorized licensed use limited to: CHONGQING UNIVERSITY. Downloaded on May 26,2025 at 09:02:24 UTC from IEEE Xplore. Restrictions apply.
748 IEEE TRANSACTIONS ON COMPUTERS, VOL. 65, NO. 3, MARCH 2016
Fig. 4. Sub-module identification and visualization of the coverage figure evolution along the proposed generation steps.
Furthermore, the exception management is also crucial before achieving a good coverage. We propose a method-
for detecting faults producing execution flow deviations ology able to achieve a significant optimization of devel-
that lead to an unexpected processor’s internal status or opment time and resources based on the following
cause unexpected synchronous interruptions. Typical cases principles:
are a legal instruction wrongly decoded as an illegal instruc-
tion format, or an illegal memory access raising an interrup- modularity: the embedded processor is not tackled as a
tion by the memory protection unit mechanism. If this unique module, but its sub-modules are considered
situation occurs during the execution of any test program, separately (e.g., ALU, CTRL Unit, etc.); this means
the test ISR should ideally be able to recover such an errone- that the processor’s fault universe is selectively
ous (due to the fault) execution flow and to record the divided into several smaller fault lists for being effec-
wrong behavior observed. Some countermeasure can be tively attacked while generating the test programs;
adopted to identify unexpected interrupt requests, such as parallelization: by facing modules separately, it facili-
performing an assertion in the ISR prologue to check a pass- tates the distribution of the development process on
word stored into a GPR before the interrupt is intentionally the available workstations/test-engineers (see more
raised. A similar method is implemented for checking the details in 4.1);
correct return from interrupt, e.g., by completing the test side-effect: by developing a test for a specific sub-
execution with an assertion. module, it is likely to have a side-effect that is the
This technique is making the test code quite robust, but coverage of faults belonging to other sub-modules.
more work is needed if the processor status become unsta- The strategy we propose is based on these principles and
ble, resulting in spurious and repeated exceptions or infinite consists on the iterated execution of two steps until all sub-
loops. In the latter case, an external mechanism have to be modules are considered:
implemented in order to bring the system into a safe status,
1. to generate, possibly in parallel, the test programs for
i.e., by watchdog timer.
a set of carefully selected sub-modules until these are
These cases are graphically shown in Fig. 3, where solid
sufficiently covered (more details in 4.2);
lines are showing expected interrupts while dashed are
2. to perform a synchronization among all the previ-
showing the effect in case the processor status is unstable.
ously generated test programs, to evaluate their
During the execution of run-time test programs, mission
effectiveness over a larger fault list; to synchronize
interrupts need to be identified and served as soon as possi-
means to fault grade test programs that are gener-
ble, i.e., passed to the mission OS. By following the EABI
ated for a specific sub-module over a different
standard, it permits to easily manage this case.
(larger) list of sub-modules.
In order to better explain the proposed flow, we can con-
4 CORE SELF-TEST DEVELOPMENT FLOW
sider a simple example of a microprocessor’s CPU, which is
The major cost in the development flow of a CST is the modularized into four sub-modules: s1, s2, s3, and s4 (Fig. 4a).
computational effort required to generate the test program In the first step (Fig. 4b), two modules (s3 and s4) are con-
suite: the fault grading process [9], which evaluates the effec- sidered in parallel and graded separately, i.e., during the
tiveness of a test program (by assessing the fault coverage), generation process for module s3 only its own faults are
represents a severe bottleneck. Moreover, the cost for devel- considered.
oping the test program infrastructure described in the previ- As soon as the coverage of these sub-modules is satisfac-
ous paragraphs and required by the on-line execution is not tory, the generated test programs are graded over the other
negligible. For instance, for a medium sized embedded pro- parts of the CPU (Fig. 4c); this synchronization step brings
cessor with about 200 k stuck-at faults, fault simulating 1ms to observe a positive side-effect on the coverage of modules
program may require some three days on a 2 GHz quad-core s1 and s2, as well as on s3 when grading the test program
workstation at the maximum parallelism allowed. for s4, and vice versa.
Such a cost becomes unsustainable if the generation A new generation step is then started on s1 and s2
process is iterative [18] and produces many programs (Fig. 4d); it is worth to mention that the previous steps were
Authorized licensed use limited to: CHONGQING UNIVERSITY. Downloaded on May 26,2025 at 09:02:24 UTC from IEEE Xplore. Restrictions apply.
BERNARDI ET AL.: DEVELOPMENT FLOW FOR ON-LINE CORE SELF-TEST OF AUTOMOTIVE MICROCONTROLLERS 749
beneficial because the starting fault lists of s1 and s2 have fault coverage calculation for synchronizing the
been lightened before facing their generation process. results of multiple test programs among multiple
The main advantage of using this approach is a faster sub-modules should be allocated on many threads.
development of the test suite because:
4.2 Optimized Test Programs Generation Order
the fault lists to be considered are significantly
Based on the side effect principle described above, it is cru-
smaller than the complete fault list, resulting in a
cial to select the most promising order to proceed in the test
faster fault grading that usually takes in the order of
program generation. The decision needs to be tailored on
minutes to complete;
the specific architecture under analysis.
after each synchronization step, the number of active
In the following, we propose general guidelines for
faults in new sub-modules is reduced, again leading
to a speed-up of the fault simulation process. determining the generation order considering the most
common microprocessor architectures used in automotive.
4.1 Resources Partitioning In our development flow, we organize the generation order
As briefly stated in the previous paragraph, the processor is according to horizontal and vertical flow rules. Vertical
divided into sub-modules to consider independent fault lists flow rules demand to split the flow into consecutive levels,
in parallel, and their selection is the major issues in the pre- such that by testing all the modules into a given level, a
liminary phase preceding the generation effort. large positive side-effect in terms of fault coverage is
For being independent, fault lists need to be observed when moving to the next level.
We are currently proposing to divide the flow into levels
non-overlapping: one fault has to belong to only one according to the following rules:
fault list;
functionally orthogonal: faults in the same indepen- 1) to consider first those units that can be mapped on
dent fault list need to belong to modules related to specific assembly instructions or specific architec-
one specific functionality. tural programming mechanisms;
The non-overlapping criterion dictates that the same 2) to continue with memorization and control flow
fault must be considered only one time in the process; on resources;
the other hand, when dealing with orthogonality, a fault 3) to conclude with modules which functionalities are
must be included in the most relevant fault list from the transparent to the programmer.
point of view of the functionality of the related gate. According to the presented strategy, a synchronization
The process of selecting the set of fault lists is not trivial. step is needed after completion of the currently consid-
In our flow, this process relies on: ered level before moving to the next; this synchronization
step involves all sub-modules of the next level, i.e., to
manuals and documentation of the microcontroller reduce the size of the fault lists to be considered succes-
with specific indications about the micro-architecture; sively. By looking at the problem in a horizontal manner,
hierarchy of the microcontroller netlist; it is also possible to identify many parallel branches which
test engineer expertise. are still complying with vertical requirements. This hori-
To identify independent fault lists, it requires: zontal view consists in identifying branches, so that a
analysis of the processor functionalities; negligible side-effect crosses branches belonging to differ-
mapping of the functionalities over the microcontrol- ent horizontal views.
ler hierarchical netlist. Based on the previous rules, for a typical automotive-ori-
Most of the fault lists directly derive from a specific mod- ented architecture, we individuate a development flow
ule, but it is frequent that different sub-modules are based on three levels and two branches (Fig. 5). However,
squeezed into a single fault list if related to the same proc- additional branches can be added when considering micro-
essing functionality. As an example, the faults of a multipli- processors equipped with special features, e.g., caches [14],
cation unit usually constitute an independent fault list. On shared memory schemes [15], and Floating-Point unit [16].
the contrary, there are several multiplexers that seem to be We suggest considering two broad categories of sub-
independent netlist modules, but actually compose the module as first levels:
feed-forwarding logic in the processor’s pipeline; thus, level 1 – branch A) ALU: easy to test, sub-modules that ask
faults belonging to these multiplexers have to be grouped for the execution of specific arithmetic and logical instruc-
into the same fault list, which is functionally orthogonal tions. Side effect will be maximized towards the REGISTER
and non-overlapping with other modules. FILE by an accurate selection of registers to be used as oper-
Concerning computational resources allocation, once the ands and in the control flow management.
independent fault lists have been identified, the following level 1 - branch B) SPECIAL: sub-modules that encompass
rules aim at maximizing the number of fault lists to be con- Exceptions Management, Branch Prediction, and Virtual
sidered in parallel: Memory-related modules, e.g., the Memory Management
Unit (MMU) module. These sub-modules are hard to cover,
fault coverage calculation for sub-modules may be requiring specific instructions and sequences of instruc-
allocated on a single or many threads according to: tions. They will produce a very large positive side-effect on
- number of available threads per CPU; ADDRESS-related modules.
- number of EDA tool licenses; Once a sufficient coverage on these sub-modules is
- fault list size; reached, it is suggested to proceed in a synchronization
Authorized licensed use limited to: CHONGQING UNIVERSITY. Downloaded on May 26,2025 at 09:02:24 UTC from IEEE Xplore. Restrictions apply.
750 IEEE TRANSACTIONS ON COMPUTERS, VOL. 65, NO. 3, MARCH 2016
Fig. 5. Proposed test program development order organized in levels and branches, and synchronization steps.
process. The set of programs developed for 1A) are evalu- The microcontroller’s cost-efficient processor core is built
ated on the REGISTER FILE fault lists, while 1B) is graded on the Power Architecture technology and designed specifi-
on the ADDRESS-related modules. As a result, the number cally for embedded applications. The processor integrates a
of active faults to be then considered will be greatly pair of integer execution units, a branch control unit,
reduced. instruction fetch unit and load/store unit, and a multi-
level 2 – branch A) REGISTER FILE: the test of the register ported register file capable of sustaining six read and three
file module is straightforward, being many papers describ- write operations per clock cycle. Most integer instructions
ing effective sequences to test. In the proposed generation execute in a single clock cycle. Branch target prefetching is
method, it is suggested to reorder instructions and operands performed by the branch unit to allow single-cycle branches
in order to induce the usage of DATA DEPENDENCY in many cases. It contains a Memory Management Unit
structures in the PIPELINE. (MMU) and a Nexus Class 3 module is also integrated for
level 2 – branch B) ADDRESSING: by having completed external debug purposes.
1B), the most of the faults included in the ADDRESS-related The 32-bit processor utilizes an in-order dual-issue five-
modules, such as Branch unit, Effective Address calculation, stage pipeline for instruction execution. These stages are:
and Program Counter, will result as already covered. This
Instruction Fetch (stage 1)
step is therefore a completion of the previous one, which is
Instruction Decode/Register file Read/Effective
done mainly by adding memory operation and branches to
Address Calculation (stage 2)
specific addresses.
Execute 0/Memory Access 0 (stage 3)
A synchronization step is then operated on the PIPELINE
Execute 1/Memory Access 1 (stage 4)
and CONTROL UNIT modules, followed by level 3 with no
Register Write-Back (stage 5)
more branches, which consists on an ad-hoc generation step
The stages operate in an overlapped fashion, allowing
for these level modules.
single clock instruction execution for most of the available
To complete the process, the entire test suite obtained
instructions.
along this process is evaluated on the whole processor fault
The integer execution unit consists of a 32-bit Arithmetic
universe, eventually by adding refinement programs to
Unit (AU), a Logic Unit (LU), a 32-bit Barrel shifter (Shifter),
cover corner cases and specific configurations not consid- a Mask-Insertion Unit (MIU), a Condition Register manipu-
ered along the previous steps. lation Unit (CRU), a Count-Leading-Zeros unit (CLZ), a 32
32 Hardware Multiplier array, and result feed-forward
5 AN INDUSTRIAL CASE-STUDY hardware. Integer EU1 also supports hardware division.
The methodology herein introduced has been applied to a Most arithmetic and logical operations are executed in a sin-
SoC including a 32-bit pipelined microprocessor based on gle cycle with the exception of multiply, which is imple-
the Power Architecture. The SoC is employed in safety-criti- mented with a two-cycle pipelined hardware array, and the
cal automotive embedded systems, such as airbag, ABS, divide instructions. A Count-Leading-Zeros unit operates
and EPS controllers and is currently being manufactured by in a single clock cycle. Two execution units are provided to
STMicroelectronics. allow dual-issue of most instructions. Only a single load/
Authorized licensed use limited to: CHONGQING UNIVERSITY. Downloaded on May 26,2025 at 09:02:24 UTC from IEEE Xplore. Restrictions apply.
BERNARDI ET AL.: DEVELOPMENT FLOW FOR ON-LINE CORE SELF-TEST OF AUTOMOTIVE MICROCONTROLLERS 751
TABLE 2
Coverage Evolution along the Development Flow
Single 1A Synchro 1A Single 1B Synchro 1B Single 2A Single 2B Synchro 2Aþ2B Single 3 Synchro 3
Sub-module #faults
FC [%] FC [%] FC [%] FC [%] FC [%] FC [%] FC [%] FC [%] FC [%]
Arithmetic adders 5,996 95.03 97.93 – – – – 98.27 – 98.52
Divider 19,018 83.98 83.98 – – – – 83.99 – 84.82
Logic instructions 22,294 76.32 78.57 – – – – 78.70 – 83.34
Multiplier 78,094 91.18 92.62 – – – – 92.62 – 95.90
Shifters 14,172 87.95 92.96 – – – – 93.97 – 96.32
Exceptions 40,718 – – 66.08 67.17 – – 68.16 – 72.48
Branch prediction 24,489 – – 70.91 70.95 – – 72.67 – 72.67
Timers 7,683 – – 88.21 88.43 – – 88.46 – 89.70
Register bank 83,764 – 71.21 – – 84.15 – 89.38 – 92.66
Register ports 126,329 – 69.17 – – 94.93 – 97.67 – 98.09
Program counter 26,060 – – – 66.07 – 68.66 69.42 – 70.09
EA adder 5,228 – – – 66.51 – 92.02 93.75 – 94.57
Fetch unit 71,582 – – – – – – 69.45 82.39 83.54
Forward unit 84,758 – – – – – – 70.95 84.29 84.82
Status flags 33,277 – – – – – – 59.31 78.08 78.61
Control flags 10,328 – – – – – – 64.21 66.83 69.83
Decode unit 62,876 – – – – – – 50.12 92.46 93.08
Load/Store unit 15,971 – – – – – – 73.50 75.42 76.73
Glue logic 19,425 – – – – – – – – 63.36
TOTAL 756,789 – 36.07 – 9.74 – – 76.87 – 87.23
branch prediction, program counter, and load/store maximizing the cascade effect. As an example of effective-
units: due to the memory mapping configuration of ness, by adopting the proposed order, the generated test
the specific SoC, not all bits in the addressing regis- programs over the 139,574 faults of arithmetic modules
ters can be functionally touched; included in 1A (level 1 – branch A) led to a positive side
processor status and control flags: since many of effects on 2A consisting in 147,029 over 210,093 faults (corre-
these flags cannot be used because controlling cir- sponding to about 70 percent), i.e., these faults are already
cuitries outside the processor core. covered without any specific generation effort for 2A. In
As a complement to the fault coverage measurements, other words, the fault simulation experiments carried on
the dimension and duration and coverage of the test along level 2A need to consider only 63,064 faults.
the entire development flow are included in Table 3. Having To the sake of completeness, we also computed the
a frequency of working of 150 MHz, the overall time results obtained by implementing an alternative generation
required for executing all 73 tests is about 0.8 ms. order, considering by first the modules of 2Aand then the
It is interesting to note, how the synchronization phases ones of 1A. We tackled the 210,093 faults of register bank
produce a very strong positive cascade effect over the mod- and ports by obtaining a fault coverage comparable with
ules not yet considered; at least the half of the faults of the results in Table 2, and evaluated the side effect of such pro-
modules that are going to be considered during the next grams over 1A: only 10,318 faults (or 7.4 percent) were
generation steps were pruned from the list without any already covered over the total amount of 139,574 faults of
additional effort. Table 2 also permits to remark that the the arithmetic modules.
synchronization steps cause coverage improvement also for The reduction in the fault list cardinality, achieved by
modules of the current and previous levels of the same properly ordering sub-modules and synchronizing fault
branch, as described in Section 4.2. lists, induces a great time gain due to a large reduction of
A significant advantage in terms of grading time reduc- fault simulation efforts. The effect is not limited to succes-
tion is achieved by a proper development order which is sive synchronization, but it permits faster generation itera-
tions as required by evolutionary algorithm.
TABLE 3 Table 4 shows the elapsed time for fault simulation in
Number of Test Programs, Duration and Code Size two cases:
Development Number of test Duration Code size 1)a raw development flow not using synchronization
Flow Step programs [Clock Cycles] [kB] but simply considering sub-modules separately;
Single 1A 29 8,840 23 2) a development flow following the proposed order
Synchro 1A and implementing synchronization between levels.
Single 1B 8 19,716 11 All the experiments were executed on a single core of a
Synchro 1B 2 GHz processor; the resulting times would be reduced by
Single 2A 10 32,634 36 running multi-process fault-simulations.
Single 2B 8 28,212 17 It is worth to notice that the fault simulation time
Synchro 2Aþ2B 55 89,402 87
Single 3 18 26,700 32 becomes excessive if not implementing synchronization. As
Synchro 3 73 116,102 119 well, the development order is important to minimize the
fault simulation efforts. Supposing again that level 2 branch
Authorized licensed use limited to: CHONGQING UNIVERSITY. Downloaded on May 26,2025 at 09:02:24 UTC from IEEE Xplore. Restrictions apply.
BERNARDI ET AL.: DEVELOPMENT FLOW FOR ON-LINE CORE SELF-TEST OF AUTOMOTIVE MICROCONTROLLERS 753
[3] C. H. P. Wen, Li. C. Wang, and K.-T. Cheng, “Simulation-based [26] P. Bernardi, R. Cantoro, L. Ciganda, B. Du, E. Sanchez, M. Sonza
functional test generation for embedded processors,” IEEE Trans. Reorda, M. Grosso, and O. Ballan, “On the functional test of the
Comput., vol. 55, no. 11, pp. 1335–1343, Nov. 2006. register forwarding and pipeline interlocking unit in pipelined
[4] M. A. Skitsas, C. A. Nicopoulos, and M. K. Michael, processors,” in Proc. IEEE Int. Workshop Microprocessor Test Verifi-
“DaemonGuard: OS-assisted selective software-based self-testing cation, Dec. 2013, pp. 52–57.
for multi-core systems,” in Proc. IEEE Int. Symp. Defect Fault Toler- [27] P. Bernardi, R. Cantoro, L. Ciganda, E. Sanchez, M. Sonza Reorda,
ance VLSI Nanotechnol. Syst., Oct. 2013, pp. 45–51. S. de Luca, R. Meregalli, and A. Sansonetti, “On the in-field func-
[5] M. Psarakis, D. Gizopoulos, E. Sanchez, and M. Sonza Reorda, tional testing of decode units in pipelined RISC processors,” in
“Microprocessor software-based self-testing,” IEEE Des. Test Com- Proc. IEEE Int. Symp. Defect Fault Tolerance Nanotechnol. Syst., Oct.
put., vol. 27, no. 3, pp. 4–19, May/Jun. 2010. 2014, pp. 299–304.
[6] F. Reimann, M. Glass, A. Cook, L. Rodrıguez G omez, J. Teich, D. [28] P. Bernardi, C. Bovi, R. Cantoro, S. De Luca, R. Meregalli, D. Piu-
Ull, H. J. Wunderlich, U. Abelein, and P. Engelke, “Advanced diag- matti, E. Sanchez, and A. Sansonetti, “Software-based self-test
nosis: SBST and BIST integration in automotive E/E architectures,” techniques of computational modules in dual issue embedded
in Proc. ACM/EDAC/IEEE Des. Autom. Conf., Jun. 2014, pp. 1–6. processors,” in Proc. IEEE Eur. Test Symp., May 2015, pp. 1–2.
[7] K. Constantinides, O. Mutlu, T. Austin, and V. Bertacco, “A flexible [29] (2014). AUTOSAR web-site: [Online]. Available: http://www.
software-based framework for online detection of hardware autosar.org/
defects,” IEEE Trans. Comput., vol. 58, no. 8, pp. 1063–1079, Aug. 2009. [30] (2015). Doxygen web-site: [Online]. Available: http://www.stack.
[8] A. Paschalis and D. Gizopoulos, “Effective software-based self- nl/dimitri/doxygen/
test strategies for on-line periodic testing of embedded process-
ors,” IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst., vol. 24, Paolo Bernardi (S’03-M’06) received the MS
no. 1, pp. 88–99, Jan. 2005. and PhD degrees in computer science from Poli-
[9] P. Bernardi, M. Grosso, E. Sanchez, and O. Ballan, “Fault grading tecnico di Torino, Torino, Italy, in 2002 and 2006,
of software-based self-test procedures for dependable automotive respectively. Since 2001, he has been with the
applications,” in Proc. Des. Autom. Test Eur. Conf. Exhib., Mar. Department of Computer Engineering, Politec-
2011, pp. 1–2. nico di Torino, where he is currently an associate
[10] Road vehicles – functional safety, ISO/DIS26262, 2009. professor. His interests cover the areas of testing
[11] S. Sobek and K. Burke. (2004). PowerPC Embedded Application of electronic circuits and systems and the design
Binary Interface (EABI): 32-Bit Implementation [Online]. Avail- of fault-tolerant electronic systems. He is a mem-
able: http://www.freescale.com/files/32bit/doc/app_note/ ber of the IEEE Computer Society and IEEE.
PPCEABI.pdf
[12] ARM. (2008). Application Binary Interface for the ARM Architec- Riccardo Cantoro received the MSc degree in
ture v2.09 available at ARM Information Center web-site: computer engineering from Politecnico di Torino,
[Online]. Available: http://infocenter.arm.com/help/index.jsp? Torino, Italy in 2013. Since 2014, he has been
topic¼/com.arm.doc.ihi0036b/index.html working toward the PhD degree in the Depart-
[13] E. Christopher. (2003). mips eabi documentation available at Cyg- ment of Computer Engineering, Politecnico di
win web-site: [Online]. Available: http://www.cygwin.com/ml/ Torino. His main research topic is microprocessor
binutils/2003-06/msg00436.html testing. He is a student member of the IEEE.
[14] S. Di Carlo, P. Prinetto, and A. Savino, “Software-based self-test of
set-associative cache memories,” IEEE Trans. Comput., vol. 60,
no. 7, pp. 1030–1044, Jul. 2011.
[15] A. Apostolakis, D. Gizopoulos, M. Psarakis, and A. Paschalis,
“Software-based self-testing of symmetric shared-memory multi-
processors,” IEEE Trans. Comput., vol. 58, no. 12, pp. 1682–1694, Sergio De Luca is a team leader, project
Dec. 2009. leader, and Functional Safety expert at STMi-
[16] G. Xenoulis, D. Gizopoulos, M. Psarakis, and A. Paschalis, croelectronics; embedded software develop-
“Instruction-based online periodic self-testing of microprocessors ment for automotive system-on-chip and real-
with floating-point units,” IEEE Trans. Dependable Secure Comput., time applications.
vol. 6, no. 2, pp. 124–134, Apr.–Jun. 2009.
[17] G. Squillero, “Artificial evolution in computer aided design: from
the optimization of parameters to the creation of assembly pro-
grams,” Computing, vol. 93, nos. 2–4, pp. 103–120, Oct. 2011.
[18] F. Corno, E. Sanchez, M. Sonza Reorda, and G. Squillero,
“Automatic test program generation: A case study,” IEEE Des.
Test Comput., vol. 21, no. 2, pp. 102–109, Mar./Apr. 2004. Ernesto Sa nchez received the degree in elec-
[19] N. Kranitis, A. Paschalis, D. Gizopoulos, and G. Xenoulis, tronic engineering from Universidad Javeriana,
“Software-based self-testing of embedded processors,” IEEE Bogota, Colombia, in 2000. In 2006, he received
Trans. Comput., vol. 54, no. 4, pp. 461–475, Apr. 2005. the PhD degree in computer engineering from
[20] N. Kranitis, A. Merentitis, G. Theodorou, A. Paschalis, and D. the Politecnico di Torino, where he is currently an
Gizopoulos, “Hybrid-SBST methodology for efficient testing of associate professor with the Dipartimento di
processor cores,” IEEE Des. Test Comput., vol. 25, no. 1, pp. 64–75, Automatica e Informatica. His main research
Jan./Feb. 2008. interests include microprocessor testing and evo-
[21] M. Scholzel, T. Koal, and H. T. Vierhaus, “Systematic generation lutionary computation. He is a senior member of
of diagnostic software-based self-test routines for processor the IEEE.
components,” in Proc. IEEE Eur. Test Symp., May 2014, pp. 1–6.
[22] P. Singh, D. L. Landis, and V. Narayanan, “Test generation for
Alessandro Sansonetti graduated in computer
precise interrupts on out-of-order microprocessors,” in Proc. IEEE
science from the University of Milan. He manages
Int. Workshop Microprocessor Test Verification, Dec. 2009, pp. 79–82.
ST’s Automotive Product Group software design
[23] E. Sanchez and M. Sonza Reorda, “On the functional test of branch
teams based in Italy (Agrate B.za, Naples and
prediction units,” IEEE Trans. Very Large Scale Integration Syst.,
Catania) and in France (Le Mans). He has partici-
vol.23, no. 9, pp. 1675–1688, Sep. 2015.
pated as an active member of the AUTOSAR
[24] D. Sabena, M. Sonza Reorda, and L. Sterpone, “A new SBST algo-
consortium as SPI document owner. He has
rithm for testing the register file of VLIW processors,” in Proc.
been with ST since 1996.
Des. Autom. Test Eur Conf. Exhib., Mar. 2012, pp. 412–417.
[25] P. Bernardi, L. Ciganda, M. De Carvalho, M. Grosso, J. Lagos-Ben-
ites, E. Sanchez, M. Sonza Reorda, and O. Ballan, “On-line soft-
ware-based self-test of the address calculation unit in RISC
processors,” in Proc. IEEE Eur. Test Symp., May 2012, pp. 1–6. " For more information on this or any other computing topic,
please visit our Digital Library at www.computer.org/publications/dlib.
Authorized licensed use limited to: CHONGQING UNIVERSITY. Downloaded on May 26,2025 at 09:02:24 UTC from IEEE Xplore. Restrictions apply.