1982•Annual Simulation SymposiumRequires access

Emulation - a useful tool in the development of computer systems

Francisco Salomón, D. A. Tafuri

Open publisher page 6 citations

Abstract

Emulation is playing a key role in the development of a BELLMAC-32A microprocessor-based computer system at Bell Telephone Laboratories. The emulation is used for the development of the operating system for the new computer system to permit both hardware and software development to proceed in parallel. The emulation's goal is to permit the operating system to be developed before the hardware is available. This is aimed at reducing the time and effort required in the hardware/software integration interval to permit a more rapid introduction of a computer system - both hardware and operating system.Emulation is one of several software/hardware models being used in the development of the computer system. There are also functional, gate-level, manufacturing-model simulations used in the development of the BELLMAC-32A microprocessor. Several steps are used in verifying the emulation as well as cross-verification of the BELLMAC-32A microprocessor portion of the different models.Both the BELLMAC-32A microprocessor and the computer system were emulated. The emulation model includes an emulation of the memory mapping, interrupt structure, memory management and peripherals of the real processor. It is an instruction-level compatible emulation that provides high throughput for software debugging. Since the bit layouts of the software that runs on the emulation and the real machine are identical, code that runs on the emulation will run on the real machine except for time dependent code. Since the emulator is a form of software, it can be instrumented for additional debugging capabilities.The emulator went through a rigorous development methodology of requirements, design, implementation and testing phases. Each phase had reviews and/or walk-throughs. Further, the testing phase was done by personnel other than the emulator developers to ensure that the product met external specifications as seen by the customers of the emulation.The emulator development environment includes both microcode development tools and lab environment debugging tools. Both sets of tools run on the UNIX [1] operating system. The microcode development tools include an assembler, pre- and post-processors for generation of microcode, and a microcode simulator for testing the microcode. Both a pre- and post-processor were developed to aid in generating microcode for the emulator developers. Additional pre-processors were taken from other standard UNIX software to further aid the developers with conditional assemblies and symbolic references.The lab environment for the emulation makes use of a UNIX software based front-end lab support processor that interfaces to the emulation processor. A powerful debugging tool is available to the emulator developers on the front-end processor to permit single stepping at both the micro and macro level, display and modification of internal registers, give microinstruction traces, provide breakpointing capabilities, provide microcode and object code download capabilities and to maintain control of the emulation machine.

About this research paper

What this paper is about

Emulation is playing a key role in the development of a BELLMAC-32A microprocessor-based computer system at Bell Telephone Laboratories. The emulation is used for the development of the operating system for the new computer system to permit both hardware and software development to proceed in parallel. The emulation's goal is to permit the operating system to be developed before the hardware is available. This is aimed at reducing the time and effort required in the hardware/software integration interval to permit a more rapid introduction of a computer system - both hardware and operating system.Emulation is one of several software/hardware models being used in the development of the computer system. There are also functional, gate-level, manufacturing-model simulations used in the development of the BELLMAC-32A microprocessor. Several steps are used in verifying the emulation as well as cross-verification of the BELLMAC-32A microprocessor portion of the different models.Both the BELLMAC-32A microprocessor and the computer system were emulated. The emulation model includes an emulation of the memory mapping, interrupt structure, memory management and peripherals of the real processor. It is an instruction-level compatible emulation that provides high throughput for software debugging. Since the bit layouts of the software that runs on the emulation and the real machine are identical, code that runs on the emulation will run on the real machine except for time dependent code. Since the emulator is a form of software, it can be instrumented for additional debugging capabilities.The emulator went through a rigorous development methodology of requirements, design, implementation and testing phases. Each phase had reviews and/or walk-throughs. Further, the testing phase was done by personnel other than the emulator developers to ensure that the product met external specifications as seen by the customers of the emulation.The emulator development environment includes both microcode development tools and lab environment debugging tools. Both sets of tools run on the UNIX [1] operating system. The microcode development tools include an assembler, pre- and post-processors for generation of microcode, and a microcode simulator for testing the microcode. Both a pre- and post-processor were developed to aid in generating microcode for the emulator developers. Additional pre-processors were taken from other standard UNIX software to further aid the developers with conditional assemblies and symbolic references.The lab environment for the emulation makes use of a UNIX software based front-end lab support processor that interfaces to the emulation processor. A powerful debugging tool is available to the emulator developers on the front-end processor to permit single stepping at both the micro and macro level, display and modification of internal registers, give microinstruction traces, provide breakpointing capabilities, provide microcode and object code download capabilities and to maintain control of the emulation machine.

Why it matters

OpenAlex reports 6 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

Emulation is playing a key role in the development of a BELLMAC-32A microprocessor-based computer system at Bell Telephone Laboratories. The emulation is used for the development of the operating system for the new computer system to permit both hardware and software development to proceed in parallel. The emulation's goal is to permit the operating system to be developed before the hardware is available. This is aimed at reducing the time and effort required in the hardware/software integration interval to permit a more rapid introduction of a computer system - both hardware and operating system.Emulation is one of several software/hardware models being used in the development of the computer system. There are also functional, gate-level, manufacturing-model simulations used in the development of the BELLMAC-32A microprocessor. Several steps are used in verifying the emulation as well as cross-verification of the BELLMAC-32A microprocessor portion of the different models.Both the BELLMAC-32A microprocessor and the computer system were emulated. The emulation model includes an emulation of the memory mapping, interrupt structure, memory management and peripherals of the real processor. It is an instruction-level compatible emulation that provides high throughput for software debugging. Since the bit layouts of the software that runs on the emulation and the real machine are identical, code that runs on the emulation will run on the real machine except for time dependent code. Since the emulator is a form of software, it can be instrumented for additional debugging capabilities.The emulator went through a rigorous development methodology of requirements, design, implementation and testing phases. Each phase had reviews and/or walk-throughs. Further, the testing phase was done by personnel other than the emulator developers to ensure that the product met external specifications as seen by the customers of the emulation.The emulator development environment includes both microcode development tools and lab environment debugging tools. Both sets of tools run on the UNIX [1] operating system. The microcode development tools include an assembler, pre- and post-processors for generation of microcode, and a microcode simulator for testing the microcode. Both a pre- and post-processor were developed to aid in generating microcode for the emulator developers. Additional pre-processors were taken from other standard UNIX software to further aid the developers with conditional assemblies and symbolic references.The lab environment for the emulation makes use of a UNIX software based front-end lab support processor that interfaces to the emulation processor. A powerful debugging tool is available to the emulator developers on the front-end processor to permit single stepping at both the micro and macro level, display and modification of internal registers, give microinstruction traces, provide breakpointing capabilities, provide microcode and object code download capabilities and to maintain control of the emulation machine.

Key concepts: Emulation, Hardware emulation, Computer science, Debugging, Embedded system, Software, Microprocessor, Interrupt

Related papers

Back to paper searchBrowse research topicsOriginal source
Emulation - a useful tool in the development of computer systems — Research Paper | ScholarLens