International Journal of Engineering Trends and Technology (IJETT) – Volume 21 Number 2 – March 2015 Detection Mechanism of Intermittent Faults on the Reliability Of a RISC Microprocessor S. Bhavyasri 1, D.Roja 2, Ch.Jaya Prakash Narayana 3, Ch.Venkata Krishna 4, V.S.Lakshmi 5 1,2,3,4 5 UG Student, Electronics & Comm. Engineering, Gandhiji Institute of Sci. & Tech., Jaggaiahpet, A.P, India Assistant Professor, Electronics & Comm. Engineering, Gandhiji Institute of Sci. & Tech., Jaggaiahpet, A.P, India Abstract: The reduction of transistors size has allowed the increase of microprocessors speed and the decrease of their size and supply voltage, but at the cost of augmenting the incidence of faults. This reduction causes a higher rate of transient faults, commonly provoked by temporary environmental conditions such as electromagnetic interference, or cosmic or internal radiation. Even, radiation may now affect multiple locations. Also, changes in the manufacturing processes have increased the rate of permanent faults. This type of fault is produced by irreversible physical changes in a chip. Recently, intermittent faults have emerged as a new source of trouble in deep submicron integrated circuits. . .Keywords— Detection, Fault, Intermittent, Reliability, RISC, Microprocessor I. INTRODUCTION Pipelining is an implementation technique in which multiple instructions are overlapped in execution. With the scaling of complementary metal-oxidesemiconductor (CMOS) technology to the submicron range, designers have to deal with a growing number and variety of fault types. In this way, intermittent faults are gaining importance in modern very large scale integration (VLSI) circuits. The presence of these faults is increasing due to the complexity of manufacturing processes (which produce residues and parameter variations), together with special aging mechanisms. This work presents a case study of the impact of intermittent Nowadays Embedded Systems have become a part faults on the behaviour of a reduced instruction set of human life. The most important part of an embedded system is the embedded processor. The computing (RISC) microprocessor. We have carried out an exhaustive performance of embedded processor determines the reliability assessment by using verilog-based fault performance of embedded system. An embedded injection. In this way, we have been able to modify processor is a Reduced Instruction Set Computer different intermittent fault parameters, to select (RISC) A RISC processor uses load - store various targets, and even, to compare the impact of architecture, fix length instructions and pipelining. intermittent faults with those induced by transient In load - store architecture, load instruction reads and permanent faults. The objective of this work is data from memory and writes it to a register, data twofold: i) to study the impact of intermittent faults processing instructions process data available in in a reduced instruction set computing (RISC) registers and write result to a register, and store microprocessor, and ii) to compare the instruction copies data from register to memory. consequences of intermittent faults with the effects caused by permanent and transient ISSN: 2231-5381 http://www.ijettjournal.org Page 89 International Journal of Engineering Trends and Technology (IJETT) – Volume 21 Number 2 – March 2015 faults. To carry out the fault injection experiments, architecture with a four-stage pipeline. The VHDL we have used VHDL-based Fault Injection due to model of Plasma is described at RT and logic its flexibility, as well as high observability and abstraction levels. To exercise the main elements of controllability of the model components. This paper the microprocessor (memory, registers, buses, complements previous works published by the arithmetic and logic unit (ALU) and control unit authors, where the impact of intermittent faults (CU)), the bubble sort sorting algorithm has been on a commercial complex instruction set computing used. In this way, we have injected intermittent (CISC) microcontroller was analyzed. faults into the storage elements (the register bank, and the random-access memory (RAM)), the buses, II. FAULT INJECTION MODEL Fig. 1 shows the classification of the and the combinational logic of the ALU and CU. different VHDL-based fault injection techniques. Fig. 2 shows the structure of the Plasma core, and With simulator commands, it is possible to change, the injection targets. at simulation time, the value or the timing of the signals and variables of the system. Saboteurs and mutants modify the VHDL code of the system by inserting injection components (saboteurs) or activating mutated components versions (mutants). of Although the existing these two techniques are more complex to apply, and introduce more spatial and temporal overhead than simulator commands, they allow injecting more Figure 2 Block diagram of the Plasma core and injection targets III. complex fault models. Other techniques extend the syntax and semantics of the VHDL language. The DESIGN ASPECTS OF 32-BIT RISC PROCESSOR design of 32-bit RISC processor incorporates various design blocks like Arithmetic Logic Unit (ALU), Accumulator, Program Counter (PC), Instruction Register (IR), Memory, Control Unit (CU), and additional logic. The design incorporates some the following issues. Figure 1 VHDL Based Fault Injection Model The system target is the Plasma microprocessor. It has a 32-bit microprocessor without interlocked ISSN: 2231-5381 pipeline stages It handles 32 bit data ,28 bit address Uses fixed instruction format of length 32 bit. (MIPS) http://www.ijettjournal.org Page 90 International Journal of Engineering Trends and Technology (IJETT) – Volume 21 Number 2 – March 2015 Size of opcode is of 4 bit, handling 15 performs arithmetic and logic instructions directly instructions. and control of transfer instructions are performed Has 256 memory locations with the help of control and logic decoder. Start 32-bit registers (IR,ACC) Implements 2-staged pipelining i.e overlaps of fetch and execute cycles. Has Enter acc,data,opcode give execlk Positive edge of execlk Opcode=“0111” Acc1= Not data Stop Opcode=“1000” Acc1= Left shift data Stop Opcode=“1001” Acc1= Right shift Data Stop Opcode=“1010” Acc1=acc (jump) Stop Opcode=“1011” Acc1=Acc (skip) Stop Opcode=“1100” Acc1=Acc (halt) Stop Opcode=“1101” Acc1= data (ldacc) Stop two addressing modes ,Register Opcode=“0000” addressing and memory addressing modes No interrupts and No conditional branches Data that it handles is unsigned integer type. Acc1= Acc+data Stop Acc1= Acc-data Stop Acc1= Data+1 Stop Acc1= Data-1 Stop Acc1= Acc and data Stop Acc1= Acc or data Stop Acc1= Acc xor data Stop Opcode=“0001” Opcode=“0010” The next sections of this chapter presents the schematic diagrams of individual modules, explanation of their function, flow chart to Opcode=“0011” Opcode=“0100” implement the function, VHDL description of the Opcode=“0101” individual modules. In the last section the top order module Block diagram, functioning, VHDL Opcode=“0110” Stop description of the top module are given. Figure 4: FLOW CHART FOR IMPLEMENTATION OF ALU Figure 3: 32 Bit ALU Figure 5: 32 Bit Accumulator The ALU performs both arithmetic and logical operations and as well as control of transfer instructions. It takes data and acc as inputs to generate output according to the opcode. An execlk is given as input for synchronization and the output is available at positive edge of the execlk. It ISSN: 2231-5381 The result of an Alu operation is always stored in accumulator at some specified time based on the control logic instruction and also the execlk. This output is again fed to Alu as input. If Reset =0, the output of accumulator is cleared to zero. When reset http://www.ijettjournal.org Page 91 International Journal of Engineering Trends and Technology (IJETT) – Volume 21 Number 2 – March 2015 is high and load accumulator signal is set high, the output of the ALU is loaded in to the accumulator at the neg.edge of the execlock. Figure 8: Flow chart for the implementation of Control Unit Let us consider an instance when some information is stored in the memory. Now when the system is switched on, CPU is initialized. Figure 6: FLOW CHART FOR IMPLEMENTATION OF ACCUMULATOR In order to fetch an instruction, as a result the program goes to the location in the memory that is pointed out by the program counter. After some instance, the instruction from the memory is put on the data bus. This cycle is called the instruction fetch cycle. The instruction is now available at the data bus. at next instance; the instruction is loaded into the instruction register. This is called the instruction load. In this cycle the 4 msb’s of the instruction are separated and put in the opcode Figure 7: BUFFER register and are loaded to control unit as well as It is used for writing data in to memory. When it is required to write data in to the memory, then necessary control signals are generated at the buffer. Buffer is used for achieving bi-directional operation of the data bus ISSN: 2231-5381 ALU. The rest of the bits are sent out as Irout. The outputs of the instruction register and the program counter are connected to a mux. During the negative edge of the fetch signal, the output of the instruction register is selected, while the output http://www.ijettjournal.org Page 92 International Journal of Engineering Trends and Technology (IJETT) – Volume 21 Number 2 – March 2015 from the program counter is selected during the sensitive to intermittent faults in combinational positive edge of fetch cycle. logic. This result is due to the higher complexity of Now when the fetch signal goes low the mux the Plasma processor in terms of combinational selects the output from the instruction register and it logic (multiplexers,multiplier-divider, and the points to the location of the operand. Now the memory controller). Also, more latent errors have operand present in the location is placed on the data been detected in the Plasma processor, specially bus. After an instruction is fetched the program caused by faults in the storagemodules, mainly counter is incremented. It points to the next location. because the memory of the Plasma processor is Now the operand is available at the ALU. The bigger. operand is taken in by the ALU and operates on it. Now the result is available at acc1 at positive edge of execlk. During the negative edge of execlk, the result at the Acc1 register is placed on the data bus, which is sent and loaded into the accumulator for Figure 9: Simulation Encoder any further operations. If the data has to be stored into the memory, then during this clock cycle, Rd and Wr has to be 0 & 1 respectively. As a result the accumulator is connected to the memory and the Figure 10: Fault Detector value in the accumulator is sent back to a location in the memory through a module named Buffer.A characteristic of RISC processor is their ability to execute one instruction per clock cycle. Figure 11: Fault corrector IV. SIMULATION RESULTS The present work completes the results presented where the behavior of an 8051 microcontroller under the influence of intermittent faults is analyzed. Comparing these works with the results presented in this paper, both cores show similar Figure 12: Correction with Error pattern general trends, although some differences have been observed. The Plasma microprocessor is more ISSN: 2231-5381 http://www.ijettjournal.org Page 93 International Journal of Engineering Trends and Technology (IJETT) – Volume 21 Number 2 – March 2015 References 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. T. Y. Lin and D. P. Siewiorek, “Error log analysis: Statistical modeling and heuristic trend analysis,” IEEE Trans. Rel., vol. 39, no. 4, pp. 419–432, Dec. 1990. D. P. Siewiorek and R. S. Schwarz, Reliable Computer Systems: Design and Evaluation, 3rd ed. Natick, MA, USA: Digital Press, 1998. C. Constantinescu, “Dependability benchmarking using environmental test tools,” in Proc. 2005 Rel. Maintainability Symp., pp. 567–571. C. Constantinescu, “Impact of intermittent faults on nanocomputing devices,” in Proc. DSN 2007 Workshop Dependable Secure Nanocomput., pp. 238–241. J. Guilhemsang, O. Héron, N. Ventroux,O.Goncalves, andA. Giulieri, “Impact of the application activity on intermittent faults in embedded systems,” in Proc. 2011 29th IEEE VLSI Test Symp., pp. 191–196. E. B. Nightingale, J. R. Douceur, and V. Orgovan, “Cycles, cells and platters: An empirical analysis of hardware failures on a million consumer PCs,” in Proc. EuroSys 2011, pp. 343–356. J. Arlat, M. Aguera, L. Amat, Y. Crouzet, J. C. Fabre, J. C. Laprie, E.Martins, and D. Powell, “Fault injection for dependability validation:A methodology and some applications,” IEEE Trans. Soft. Eng., vol.16, no. 2, pp. 166–182, 1990. G. S. Choi, R. K. Iyer, and V. A. Carreno, “Simulated fault injection: A methodology to evaluate fault tolerant microprocessor architectures,” IEEE Trans. Rel., vol. 39, no. 4, pp. 486–491, Dec. 1990. J.Arlat,M.Aguera, Y. Crouzet, J. C. Fabre, E. Martins, and D. Powell, “Experimental evaluation of the fault tolerance of an atomic multicast system,” IEEE Trans. Rel., vol. 39, no. 4, pp. 455–467, Dec. 1990. G. Miremandi and J. Torin, “Evaluating processorbehavior and three error-detection mechanisms using physical fault-injection,” IEEE Trans. Rel., vol. 44, no. 3, pp. 441–454, Sep. 1995. D. Avresky, J. Arlat, J. C. Laprie, and Y. Crouzet, “Fault injection for formal testing of fault tolerance,” IEEE Trans. Rel., vol. 45, no. 3, pp.443–455, Sep. 1996. A. Benso and P. Prinetto, Eds., Fault Injection Techniques and Tools for VLSI Reliability Evaluation Dordrecht, The Nederlands, Kluwer Academic Publishers, 2003. D. Gil-Tomás, J. Gracia-Morán, J. C. Baraza-Calvo, L. J. Saiz-Adalid, and P. J. Gil-Vicente, “Analyzing the impact of intermittent faults on microprocessors applying fault injection,” IEEE Des. Test Comput., vol. 29, no. 6, pp. 66–73, 2012. ISSN: 2231-5381 14. P. M. Wells, K. Chakraborty, and G. S. Sohi, “Adapting to intermittent faults in multicore systems,” in Proc. 13th Int. Conf. Architectural Support Program. Lang. Operating Syst., pp. 255– 264. http://www.ijettjournal.org Author’s Profile S. BHAVYASRI is a Graduate student persuing her B.Tech in ECE specialization in Gandhiji Institute of Science & Technology. Her interested areas are VLSI, Signal processing. D.ROJA is a Graduate student persuing her B.Tech in ECE specialization in Gandhiji Institute of Science & Technology. Her interested area is VLSI. CH.JAYA PRAKASH NARAYANA is a Graduate student persuing his B.Tech in ECE specialization in Gandhiji Institute of Science & Technology. His interested area is Signal processing. CH.VENKATA KRISHNA is a Graduate student persuing his B.Tech in ECE specialization in Gandhiji Institute of Science & Technology. His interested area is VLSI. V.SOWJANYA LAKSHMI is working as Assistant professor in Gandhiji Institute of Science & Technology. She has guided several students in the field of VLSI. Page 94