next up previous contents
Next: Background Up: Extending Sim286 to the Previous: List of Figures

   
Introduction

The trend in processor development is that each new processor is soon replaced by a newer and more powerful processor. The Intel family of 80x86 processors is illustrative of this trend: most recently, the Pentium has been replaced by the Pentium Pro, and the Pentium Pro has been replaced by the Pentium II. Soon, the Pentium II will be replaced by an even newer and more powerful processor.

To facilitate processor development, the design and implementation of a processor is typically paralleled by the design and implementation of a simulator that can be used to avoid errors in the development process. The ideal is that the family of processors should be accompanied by the design and implementation of a family of simulators where each successive simulator can be derived from the previous by an incremental change in both the design and implementation of the simulator. All too often, the family of simulators ideal is not achieved.

In this paper, we report on the development of a family of simulators, Simx86, for the Intel 80x86 family of processors. We begin by reviewing previous simulators in the family, Sim8088[7] and Sim286[4]. We then describe the effort involved in building Sim386, the successor to Sim286. The construction of Sim386 involved two important extension over its predecessor. First, Sim386 performs both 16 and 32-bit processing; the predecessor of Sim386, Sim286, performed 16-bit processing. Second, Sim386 can accept both COM and ELF binary file input; the predecessor of Sim386, Sim286, accepted only COM file input. The first extension exposed an important drawback in Sim286: the extension of Sim8088 to Sim286 involved implementation extension but not a corresponding design extension. Thus, the inclusion of 32-bit processing in Sim386 required a major effort. The second extension makes Sim386 a more viable tool, since ELF binaries are more widely accessible than COM files.

A third contribution of this work is the compendium of information that we provide about the design and layout of ELF binary files. This information can facilitate the work of other developers who use ELF binaries. Finally, we describe approaches for improving the design of Sim386 to make it easier to modify and extend to future processor simulators and we describe an approach to implementing dynamic linking of ELF binaries. To summarize, the contributions of this work include:

In the next section we provide background about simulators including Simx86, the family of simulators for the Intel 80x86 architecture, together with background about ELF binaries. In Section 3, we describe our implementation of Sim386 to include 32-bit processing and to accept ELF binary input. In Section 4 we report the results of some experiments comparing the COM file executions of the test suite described in reference [4] using COM and ELF binaries as input. In Section 5 we describe an approach to the redesign of Sim386 and to incorporating dynamic linking of ELF. Finally, in Section 6 we draw some conclusions.


next up previous contents
Next: Background Up: Extending Sim286 to the Previous: List of Figures
Michael L. Haungs
1998-09-21