Recovery from Soft Errors in Triplicated Computer Systems Operating in Lock-Step

Total Page:16

File Type:pdf, Size:1020Kb

Recovery from Soft Errors in Triplicated Computer Systems Operating in Lock-Step ' OLE COPY Nor REMOVE NBSIR 79-1927 0£c 14 1979 Recovery from Soft Errors in Triplicated Computer Systems O perat i ng in Lock-Step A. L. Koenig A. W. Holt System Components Division Center for Computer Systems Engineering Institute for Computer Sciences and Technology National Bureau of Standards Washington, D.C. 20234 June 30, 1979 Issued November 1979 Sponsored by Defense Nuclear Agency Washington, D.C. 20305 NBSIR 79-1927 RECOVERY FROM SOFT ERRORS IN TRIPLICATED COMPUTER SYSTEMS OPERATING IN LOCK-STEP A. L. Koenig A. W. Holt System Components Division Center for Computer Systems Engineering Institute for Computer Sciences and Technology National Bureau of Standards Washington, D.C. 20234 June 30, 1 979 Issued November 1979 Sponsored by Defense Nuclear Agency Washington, D.C. 20305 U S. DEPARTMENT OF COMMERCE Luther H. Hodges, Jr., Under Secretary Jordan J. Baruch, Assistant Secretary for Science and Technology NATIONAL BUREAU OF STANDARDS. Ernest Ambler, Director RECOVERY FROM SOFT ERRORS IN TRIPLICATED COMPUTER SYSTEMS OPERATING IN LOCK-STEP ABSTRACT A Triply Modular Redundant (TMR) computer system operating in clocked lock-step is being investigated for an application requiring a Mean Time Between Failure of five years. No mechanical memories are used; this allows comparison of the outputs of the three computers to be made each clock period. The most novel contribution is the method of recovery from soft errors, such as those produced by lightning strokes or alpha particles. Data are provided on the uptime history of an experimental system, which uses three commercial microcomputers. Key Words: Fault tolerant computer; soft errors; triply modular redundant; TMR. INTRODUCTION Where exceptionally high reliability is essential, an acceptable level of performance can often be achieved through the use of redundant structures or modules. Two common forms of modular redundancy are fault masking and spare switching. With fault masking, all channels are active all the time; majority logic is used to "mask" a failing channel, keeping the total system output correct. Spare switching, as the name implies, has spare channels in a standby or passive state ready to be switched in when an active channel fails. Digital systems have been implemented with these techniques with varying degrees of success. Fault masking systems are often difficult to maintain because the process that makes them fault tolerant also makes fault detection and isolation complicated. Using spare computers in standby mode presents the complex problem of making the spare processor reconstruct the current working status after the active computer has failed. A third category of modular redundancy has been proposed, called Sift-Out Redundancy . With this technique there are no standby channels; all are active at starting time. If any one fails, however, the structure reconfigures itself so that the contribution of the failed channel to system output is eliminated. At least three modules are required to implement this kind of structure. If reduced to two modules and one fails, the system is unable to detect which module is in error. If three or more modules are used in the implementation, any errant one is "sifted out" automatically; when a failure occurs in another module, the process repeats itself until the system is sifted down to two. It must be assumed that no more than one module will fail at a given instant of time. The sifted out modules may be restored to operation at any convenient time by a command from the supervisory element of the system. 1 / P. T. de Sousa and F. P. Mathur, "Sift-Out Modular Redundancy," IEEE Transaction on Computers, Vol. C-27, pp. 624-627, July 1978 3 The experiment described here is an implementation of Sift-Out Redundan- cy applied to the data bus of a microcomputer. One unique aspect of the system is the requirement for synchronous operation of multiple computers in order to use the Sift-Out technique; another is the self-restoring action which takes place when an error has been detected. The latter takes advantage of the synchronous operation in its implementation. In the triply modular redundant (TMR system described in this report, the modules are single-board microcomputers. Each module consists of a microprocessor, read/write random access memory (RAM), programmable read-only memory (PROM), buffers for the address bus and data bus, and various timing and control circuits. All three computers run identical programs which reside in PROM. The RAM is used to store data. The programs run "lockstep"; synchronism is achieved by driving all three processors from a common clock. The input/output (I/O) data bus of each computer is the logical OR of the individual bus outputs. The busses are checked for identical content once during each clock period. If one bus is not identical to the other two, it is logically disconnected from the combined output immediately and latched out. Outputs from the error detector identify which bus has failed. This information is used by the computers to take corrective action: restore erroneous data in RAM; resynchronize the programs; reset the error detector, reconnecting the failed bus to the system output. Thus the system is self-restoring for "soft" failures, i.e., transient faults on one bus. The system can be programmed to give an appropriate alarm for more serious or very repetitive faults. Because of limitations on time and resources, this experiment is designed to demonstrate only the operation of the Sift-Out comparator hardware and the feasibility of automatic recovery through memory-to- memory transfer. Admittedly, a fully operational computer system is susceptible to many types of faults other than soft errors on the data bus. It is not within the scope of this experiment to remedy or even identify all failure modes, but rather to offer a means of improving reliability for one class of errors. Recognizing the limitations of the experiment, no attempt has been made to measure the improvement in Mean Time Between Failures resulting from TMR, though the uptime history of the system presents an encouraging picture. HARDWARE DESCRIPTION System Configuration Figure 1 shows the configuration of the hardware for the TMR experiment. One line from the data bus of each computer is brought to the comparator and to the collector. The collector output is the "correct" system output, i.e., the combined output from which erroneous data has been sifted out. One one data bus line, the least significant bit (LSB) , is used in this experiment in order to minimize the construction of special hardware; in a fully implemented system all data lines, and possibly address bus lines, would be similarly connected. However, comparison of one data line is sufficient to demonstrate the principles of the TMR 4 CONFIGURATION TMR MASTER CLOCK 1, FIGURE 5 . system. The choice of the LSB for comparison makes the comparator particularly sensitive to timing anomalies since this bit is most likely to change from one clock cycle to the next. Other interconnections of the hardware are needed to effect automatic resynchronization after an error has been detected. Command decoders are connected to each address bus in order to assert reset lines and enable input gates for reading the error detector. Parallel I/O ports connect the computers to each other for memory-to-memory transfer. Computer 1 has additional peripheral devices attached which are used primarily for software development and are not directly involved in the TMR experiment; A CRT display, keyboard, cassette tape recorder, and a 2400 baud serial I/O port. The serial port is used to down-load program code from computers in the NBS Experimental Computer Facility (ECF) The CRT display is used in the experiment as a means of verifying correct operation of the TMR system. Computer 1 and its peripheral interface boards are installed on a single backplane which is mounted on a chassis along with the system power supplies; computers 2 and 3, their parallel output ports, and the comparator hardware are mounted on a remote chassis. There is about one meter of cable between chassis. Microprocessors The microprocessors used in this experiment are type 6800. The 6800 is a single chip, 8-bit N-MOS processor housed in a 40-pin package. Its important features include: Bidirectional data bus (8 bits) Sixteen-bit address bus 72 instructions (1 to 3 bytes/instruction) 1 MHz maximum clock rate Two 8-bit accumulators Three 16-bit registers (stack pointer, program counter, index register) Memory-mapped I/O Timing is controlled by a 2-phase clock which is external to the chip. During phase one, the contents of the program counter are transferred to the address bus; on the negative transition of this phase, the program counter is incremented. During phase two, data are put on the data bus, and, when this phase goes low, these data are latched into either the processor or external memory. Direction of data flow is determined by a read /write control line. CPU Boards Each CPU board consists of the microprocessor chip, 2,048 bytes of static RAM, 256 bytes of PROM, buffers for the address and data busses, and several timing and control circuits. 6 The 16-bit address bus is buffered with tri-state drivers. Since the processor uses memory mapped I/O, the same lines are used for memory address and I/O port addresses. The bidirectional data bus is split into four parts by the buffering process; memory data out, memory data in, I/O data out, and I/O data in. Memory and I/O data out are not functionally different; they are simply connected to two different sets of tri-state buffers. The input buffers, however, are controlled differently. The memory inputs are gated with a clocked Read signal while I/O inputs are selected by the Read signal and a signal decoded from the upper half of the address bus.
Recommended publications
  • Hacker's Handbook for Ringzer0 Training, by Steve Lord
    Hacker’s Handbook For Ringzer0 Training, by Steve Lord This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Copyright ©2021 Raw Hex Ltd. All Rights Reserved. Retro Zer0 is a trademark of Ring Zer0 Training. Raw Hex is a trademark of Raw Hex Ltd. All other trademarks are the property of their respective owners. Raw Hex Ltd reserve the right to make changes or improvements to equipment, software and documentation herein described at any time and without notice. Notice: Please be advised that your Retro Zer0 has no warranty, and that tampering with the internal hardware and software of your Ring Zer0 is widely encouraged as long as you do so with appropriate regard to safety. Contents 1 Preface 5 1.1 Safety ........................... 6 1.2 Understanding This Document ............ 6 2 Before You Start 7 2.1 Check You Have Everything .............. 7 2.2 Back Up The SD Card ................. 8 2.3 Connecting Up Your Retro Zer0 ............ 8 2.4 Powering Up ....................... 10 2.5 Resetting Your Retro Zer0 . 10 2.6 Powering Down ..................... 10 3 First Steps 11 3 4 CONTENTS 3.1 Testing The Keyboard . 11 3.2 Using CP/M ....................... 12 3.3 Would You Like To Play A Game? . 14 3.4 MultiCPM Extras ..................... 17 3.5 Useful Tools ....................... 19 3.6 What’s On The Card? . 20 3.7 Putting It All Together . 23 3.8 Where To Read More . 25 4 Being Productive With Retro Zer0 27 4.1 WordStar .........................27 4.2 Supercalc .........................30 4.3 DBase ...........................32 4.4 Microsoft BASIC .....................32 4.5 Turbo Pascal .......................34 4.6 Forth 83 .........................36 4.7 ZDE ............................38 4.8 Z80 Assembler .....................39 4.9 Hi-Tech C .........................43 4.10 XLisp ...........................46 CONTENTS 5 4.11 Installing New Software .
    [Show full text]
  • Practical C++ Programming Copyright 2003 O'reilly and Associates Page 1 I/O Packages
    Chapter - 16 File Input/ Output Practical C++ Programming Copyright 2003 O'Reilly and Associates Page 1 I/O Packages There are 3 different I/O packages available to the C++ programmer: • The C++ streams package. This package is used for most I/O. • The unbuffered I/O package. Used primarily for large file I/O and other special operations. • The C stdio package. Many older, C-- programs use this package. (A C-- program is a C program that has been updated to compile with a C++ compiler, but uses none of the new features of the new language.) This package is useful for some special operations. Practical C++ Programming Copyright 2003 O'Reilly and Associates Page 2 C++ I/O C++ provides four standard class variables for standard I/O. Variable Use std::cin Console in (standard input) std::cout Console output (standard output) std::cerr Console error (standard error) std::clog Console log Normally std::cin reads from the keyboard, and std::cout, cerr, and clog go to the screen. Most operating systems allow I/O redirection my_prog <file.in my_prog >file.out Practical C++ Programming Copyright 2003 O'Reilly and Associates Page 3 File I/O File I/O is accomplished using the <fstream.h> package. Input is done with the ifstream class and output with the ofstream class. Example: ifstream data_file; // File for reading the data from data_file.open("numbers.dat"); for (i = 0; i < 100; ++i) data_file >> data_array[i]; data_file.close(); Open can be consolidated with the constructor. ifstream data_file("numbers.dat"); The close will automatically be done by the destructor.
    [Show full text]
  • HUMBUG® 68000 Version
    HUMBUG® 68000 Version by Peter A. Stark Copyright © 1986 - 1990 by Peter A. Stark Star-K Software Systems Corporation P. O. Box 209 Mt. Kisco, N. Y. 10549 All rights reserved Copyright © 1986 - 1990 by Peter A. Stark All Star-K computer programs are licensed on an "as is" basis without warranty. Star-K Software Systems Corporation shall have no liability or responsibility to customer or any other person or entity with respect to any liability, loss or damage caused or alleged to be caused directly or indirectly by computer equipment or programs sold by Star-K, including but not limited to any interruption of service, loss of business or anticipatory profits or consequential damages resulting from the use or operation of such computer or computer programs. Good data processing procedure dictates that the user test the program, run and test sample sets of data, and run the system in parallel with the system previously in use for a period of time adequate to insure that results of operation of the computer or program are satisfactory. SOFTWARE LICENSE A. Star-K Software Systems Corp. grants to customer a non-exclusive, paid up license to use on customer's computer the Star-K computer software received. Title to the media on which the software is recorded (cassette and/or disk) or stored (ROM) is transferred to customer, but not title to the software. B. In consideration of this license, customer shall not reproduce copies of Star-K software except to reproduce the number of copies required for use on customer's computer and shall include the copyright notice on all copies of software reproduced in whole or in part.
    [Show full text]
  • Assembly Language Step-By-Step: Programming with DOS and Linux
    Assembly Language Step-by-Step: Programming with DOS and Linux, Second Edition by Jeff Duntemann ISBN:0471375233 John Wiley & Sons © 2000 (613 pages) A “Lost World” journey into 16-bit assembler programming concepts and techniques. <?xml version="1.0" encoding="ISO-8859-1"?> Table of Contents Assembly Language Step-by-Step—Programming with DOS and Linux, Second Edition Foreword Introduction - "Why Would You Want to Do That?" Another Pleasant Valley Saturday Understanding What Computers Chapter 1 - Really Do Chapter 2 - Alien Bases Getting Your Arms around Binary and Hexadecimal Chapter 3 - Lifting the Hood Discovering What Computers Actually Are The Right to Assemble The Process of Making Assembly Language Chapter 4 - Programs NASM-IDE: A Place to Stand Give me a lever long enough, and a Chapter 5 - place to stand, and I will move the Earth. An Uneasy Alliance The x86 CPU and Its Segmented Memory Chapter 6 - System Following Your Instructions Meeting Machine Instructions up Close Chapter 7 - and Personal Chapter 8 - Our Object All Sublime Creating Programs that Work Dividing and Conquering Using Procedures and Macros to Battle Chapter 9 - Complexity Bits, Flags, Branches, and Tables Easing into Mainstream Chapter 10 - Assembly Programming Chapter 11 - Stringing Them Up Those Amazing String Instructions The Programmer's View of Linux Tools and Skills to Help You Write Chapter 12 - Assembly Code under a True 32-Bit OS Coding for Linux Applying What You've Learned to a True Chapter 13 - Protected Mode Operating System Conclusion - Not the End, But Only the Beginning Appendix A - Partial 8086/8088 Instruction Set Reference Appendix B - Segment Register Assumptions for Real Mode Segmented Model Appendix C - Web URLs for Assembly Programmers Appendix D - Segment Register Assumptions Appendix E - What's on the CD-ROM? Index List of Figures List of Tables Back Cover The bestselling guide to assembly language--now updated and expanded to include coverage of Linux.
    [Show full text]
  • Character Pattern Editor for On-Screen Display LSI for Windowstm
    To our customers, Old Company Name in Catalogs and Other Documents On April 1st, 2010, NEC Electronics Corporation merged with Renesas Technology Corporation, and Renesas Electronics Corporation took over all the business of both companies. Therefore, although the old company name remains in this document, it is a valid Renesas Electronics document. We appreciate your understanding. Renesas Electronics website: http://www.renesas.com April 1st, 2010 Renesas Electronics Corporation Issued by: Renesas Electronics Corporation (http://www.renesas.com) Send any inquiries to http://www.renesas.com/inquiry. Notice 1. All information included in this document is current as of the date this document is issued. Such information, however, is subject to change without any prior notice. Before purchasing or using any Renesas Electronics products listed herein, please confirm the latest product information with a Renesas Electronics sales office. Also, please pay regular and careful attention to additional and different information to be disclosed by Renesas Electronics such as that disclosed through our website. 2. Renesas Electronics does not assume any liability for infringement of patents, copyrights, or other intellectual property rights of third parties by or arising from the use of Renesas Electronics products or technical information described in this document. No license, express, implied or otherwise, is granted hereby under any patents, copyrights or other intellectual property rights of Renesas Electronics or others. 3. You should not alter, modify, copy, or otherwise misappropriate any Renesas Electronics product, whether in whole or in part. 4. Descriptions of circuits, software and other related information in this document are provided only to illustrate the operation of semiconductor products and application examples.
    [Show full text]
  • Microcontrollers Apnote AP0827
    Microcontrollers ApNote AP0827 : Additional file AP082701.EXE available ADIS51 - Disassembler with One-Line Assembler for the 8051 and C500 8-Bit Microcontroller Family ADIS51 allows the analysis of program code for the microcontrollers of the 8051/C500 family. Program code in different formats can be loaded and displayed in Hex-dump or Dis- assembler format. Single instructions can be input using the built-in Assembler. Program code flow and instructions can be analysed and written into a Log-file in a list or assembler source format. SFR and bit symbol operation is provided using a symbol definition file. Richard Schmid, Microcontroller Product Definition, Siemens HL Munich Semiconductor Group 10.97, Rel. 01 ADIS51 - Disassembler with One-Line Assembler for the 8051 and C500 8-Bit Microcontroller Family Contents Page 1 Starting of ADIS51 . 3 2 Main Menu . 4 3 Basic Function <F1> : Loading of a Data File . 5 4 Basic Function <F2> : Writing Memory Buffer Contents into a HEX- or BIN-Files . 6 5 Basic Function <F3> : Selection of a Microcontroller Type . 7 6 Basic Function <F4> : Disassembler / One-Line Assembler Menu . 8 6.1 General Operation . 8 6.2 Memory Buffer Code Analysis . 9 6.3 Input of a New Address . 11 6.4 Generation of a Log-File . 12 7 Basic Function <F5> : Hex-Dump Menu . 16 7.1 General Operation . 16 7.2 Input of a New Address . 17 7.3 Generation of a Log-File . 17 8 Basic Function <F6> : Overview on the Memory Buffer Usage . 18 9 Basic Function <F7> : Selection of Options . 19 Appendix .
    [Show full text]
  • What Is Digital Forensics (Aka Forensic Computing)?
    Digital Forensics for Archivists: Fundamentals Instructor: Christopher (Cal) Lee University of North Carolina at Chapel Hill September 22, 2016 Greeley, CO 1 Digital Archives Specialist (DAS) Curriculum and Certification Program offered by SAA: . Foundational Courses—must pass 4 . Tactical and Strategic Courses—must pass 3 . Tools and Services Courses—must pass 1 . Transformational Courses—must pass 1 . Course examinations are administered online. 2 1 Agenda . Welcome and introductions . Motivation and scope . Technical background . Representation Information . File systems and file management . Extracting data from media . Tools and methods . Conclusions, questions, discussion 3 Welcome and Introductions 4 2 Motivation and Scope Applying Digital Forensics to Archival Work 5 Many archivists know how to process this stuff: Source: The Processing Table: Reflections on a manuscripts internship at the Lilly Library. https://processingtable.wordpress.com/tag/archival-processing/ 6 3 How about processing this stuff? Source: “Digital Forensics and creation of a narrative.” Da Blog: ULCC Digital Archives Blog. http://dablog.ulcc.ac.uk/2011/07/04/forensics/ 7 Same Goals as When Acquiring Analog Materials Ensure integrity of materials Allow users to make sense of materials and understand their context Prevent inadvertent disclosure of sensitive data 8 4 Same Fundamental Archival Principles Apply Provenance • Reflect “life history” of records • Records from a common origin or source should be managed together as an aggregate unit Original Order Organize and manage records in ways that reflect their arrangement within the creation/use environment Chain of • “Succession of offices or persons who have held Custody materials from the moment they were created”1 • Ideal recordkeeping system would provide “an unblemished line of responsible custody”2 1.
    [Show full text]
  • Microcontrollers Apnote AP1640
    Microcontrollers ApNote AP1640 : Additional file AP164002.EXE available ADIS16X - Disassembler with One-Line Assembler for the C16X 16-Bit Microcontroller Family ADIS16X allows the analysis of program code for the 16-bit microcontrollers of the C16X family. Program code in different formats can be loaded and displayed in Disassembler or Hex-dump format. Single instructions can be input using the built-in One-Line Assembler. Program code can be written into a Log-file in a list or assembler source format. SFR and bit symbol operation is provided using a symbol definition file. Richard Schmid, Microcontroller Product Definition, Siemens Munich Semiconductor Group 11.97, Rel. 02 ADIS16X - Disassembler with One-Line Assembler for the C16X 16-Bit Microcontroller Family Contents Page 1 Starting of ADIS16X . 3 2 Main Menu . 4 3 Basic Function <F1> : Loading of a Data File . 5 4 Basic Function <F2> : Writing Memory Buffer Contents into a HEX- or BIN-File . 6 5 Basic Function <F3> : Selection of a Microcontroller Type . 7 6 Basic Function <F4> : Disassemblers / One-Line Assemblers Menu . 8 6.1 General Operation . 8 6.2 Input of a New Address . 9 6.3 Generation of a Log-File . 9 7 Basic Function <F5> : HEX-Dump Menu . 11 7.1 General Operation . 11 7.2 Input of a New Address . 12 7.3 Generation of a Log-File . 12 8 Basic Function <F6> : Overview on the Memory Buffer Usage . 13 9 Basic Function <F7> : Selection of Options . 14 Appendix . 15 A Error and Status Messages . 15 B One-Line Assembler Formats . 16 C Definition of the Symbol Definition File .
    [Show full text]
  • Lloyd Research Ltd. , 7 / 7A Brook Lane, Warsash, Southampton, Hants
    INSTRUCTION MANUAL FOR ; LgOOO PROGRAMMER LloydResearch Ltd. INSTRUCTION MANUAL FOR L9OOO PROGRAMMER LAST UPDATE: 28/O4/95 LLOYD RESEARCH LTD. , 7 / 7A BROOK LANE, WARSASH, SOUTHAMPTON, HANTS. Tel: ( 01489 ) 885575/574O4O. Telex: No longer avaj-.]-abIe. Fax: (01489) BB5853. LgOOO PROGRAMMERACCESSORY LIST NOTE: PLxxx/L = 1 socket module PLxxx/2 = 2 socket module Plxxx/3 = 3 socket modul-e PLxxx/4 = 4 socket module SOFTWARE -PC SOFTWARE: provi-des remote control f rom a PC. Includes facility to store master eproms on disc, editj-ng and device selection. COMPRESS: Can Ue used by itseff, speeds up download over the Centronics port, typically 5 times, e.g. the download time for a lM eprom is 10 seconds. CONTRACTUPDATE SERVICE (IN UK): rwo software upaateFissued at six monthly intervals. MODULES PLo54/2 MOpULE: Covers NEC micro 78P054 family in quad flat pack (QFP). PL2OT/4 MODULE: Covers Toshiba mj-cro 47P2O\VP family in DIL package. przaz/a MopuLE: Covers microcontrollers such as 47P242VN in shrink dip package. PL3OO/2 & PL3OO/4 MOpULE: Covers 32/28/24 pin e(e)proms in DIL packages. Accommodates e(e)proms with a lead pitch of O.3" or 0.6". PL3OB/4 MODULE: Covers B pi-n serial eeproms in DIL packages. PL3r2/2 MOpULE: Covers NEC micro 7BP3L2AL family - PLCC package PL3L6/2 MODULE: Covers NEC micro 75P316GF family i-n quad flat pack (QFP). PL32O/4 MOpULE: Covers microcontrollers such as TMS320E. PL32B/2 &. PL32B/4 MOpULE: Covers '28 pin DIL eproms' with Jedec pJ-nout in PLCC packages such as 2764, 27128, 27256, 27512, etc.
    [Show full text]
  • Debugger Basics - Training
    Debugger Basics - Training TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Training ............................................................................................................................ Debugger Training ........................................................................................................................ Debugger Basics - Training ....................................................................................................... 1 System Concept ...................................................................................................................... 5 On-chip Debug Interface 6 Debug Features 6 TRACE32 Tools 7 On-chip Debug Interface plus On-chip Trace Buffer 9 On-chip Debug Interface plus Trace Port 11 NEXUS Interface 12 Starting a TRACE32 PowerView Instance ............................................................................. 13 Basic TRACE32 PowerView Parameters 13 Configuration File 13 Standard Parameters 14 Examples for Configuration Files 15 Additional Parameters 19 Application Properties (Windows only) 20 Configuration via T32Start (Windows only) 21 About TRACE32 22 Version Information 22 Prepare Full Information for a Support Email 23 Establish your Debug Session ............................................................................................... 24 TRACE32 PowerView .............................................................................................................. 25 TRACE32 PowerView Components 25 Main Menu Bar and Accelerators
    [Show full text]
  • Design and Building of Home Made 8051 Microcontroller Emulator
    Sudan Academy of Sciences ( SAS) Atomic Energy Council Design and building of home made 8051 Microcontroller Emulator By Abdclmoncim Elobeid Hussein iVI.Sc. in Electronics Engineering University of Khartoum ( 2002) A Thesis Submitted to the Sudan Academy of Sciences In Fulfillment of the Requirements for Doctor of Philosophy Degree Ph.D. in Electronics Engineering Supervisor Dr.Abd Elrasol Gabar Elzobaidi September 2009 Sudan Academy of Sciences (SAS) Examination committee Name External examiner Dr. Sid Ahmed Ibrahim Internal examiner Dr. P'arouk Idris llabbani Supervisor Dr. Abdelrasoul Gabar Hlzobaidi Dedication ll'or wfwm tfwy tfiougfit we are of their concern ^L&J all uu iao uu ^ i « J&Jl (J ic -llLa t-Lu 5 ^jrti <Vi I t^*iml <—L^Jl IJA 4. Ij&lM \ »J*-»lL) 3 j^JtjjULa ^ »_L>Ua]|j ac-LiU , A . O \ JjjLill SbVI jl nr.J jj— VAJ ^1 JJ^UI SbV ^JJ^^I J>\jd\ j CjL^ajjJ] .Lpj.1 .As*-* ialJLi j I^JIJJILU 3JJJJ vb byj ISjAi^a ^jjSjJl ^aJLxJl S^a.j (j^ia ^.l.^l.nl <_U*Jl IJtA J.Je»S ^JJjjjfUVI J»lj-iH ^ j J n-> j ijj jc SjLc- Clllj% ajjjl Lai .dljj l-t")!! (jiaxJ £-a (-^*-LJl j_c V JJ o>—% ojSI-ll) dib Ajj^aJl CJlAaaJt dial Vina ) 4 .aS'i j»£jkloll <L«AJ ^Jj La Sole ^ iViiii,all jj-alijjJ LSIj-aj <<• «ji>iati C_>jxl-tll jLj-a. £<e (J^ljail .^jlaJl SjSlill J- . jlll <• iu?i«ll «_1 axubJl ^Jc <4_al.lklu>l j£-aJ 1 >ji>i<i\l L_]jiJ-»ti ^Jc ^Ajla ^^aUjj ^1 J—jl (J}* «JJ J «J «, iji nail <-_) a ml ->It ^ifi.
    [Show full text]
  • Project 4: Writing a Bootloader from Scratch
    Project 4: Writing a Bootloader from Scratch 15–410 Operating Systems April 23, 2007 1 Introduction 1.1 Overview In this project, you (and your partner) will be writing a bootloader that is ca- pable of booting your 410 kernel. In doing so, you will complete a full stack kernel+bootloader that is ideally capable of booting on commodity hardware (although such isn’t a strict requirement of this project). Furthermore, by writ- ing a bootloader, you will be exposed to a different style of systems program- ming in a slightly unusual environment. Fortunately there will be no concur- rency, no paging, and no protection issues to worry about. Unfortunately, there is also no memory manager and no libc—the only support code available are functions provided by the BIOS, and the ones you write yourself. Due to the constrained environment that the bootloader operates in, this project will heavily rely on services provided by the PC BIOS. Most of this project will involve low level programming in 16-bit real mode. As GCC does not emit real mode compliant code, most of this project will be programmed in assembly. However, portions of the bootloader will also be programmed in 32- bit protected mode with paging disabled, an environment that much resembles the operating environment of Project 1. 1.2 Goals • To learn (a small amount of) programming in x86 real mode, including the use of PC BIOS services. • To become familiar with reading sectors from a floppy disk, including the BIOS interface for interacting with the floppy disk controller as well as the floppy disk CHS (cylinder, head, sector) layout.
    [Show full text]