(cache)Emulation of x86 Computer on FPGA | IEEE Conference Publication | IEEE Xplore

Emulation of x86 Computer on FPGA

Publisher: IEEE

Abstract:

It is well known that, emulation in the form of software is the predominant method for engineers to evaluate the capabilities of the studied microprocessors and embedded ...View more

Abstract:

It is well known that, emulation in the form of software is the predominant method for engineers to evaluate the capabilities of the studied microprocessors and embedded systems. There are three main criteria for evaluating a model using software tools: modeling speed, model accuracy, and model completeness. The increasing complexity of the processor and the tendency to have an increasing number of processors on the chip put a strain on simulators to achieve all of the above criteria, including accurate fixation of processes in the OS. Thus, the main task in our work is experiments-prototyping using an emulation system and analysis of the results of the described experiments, which satisfies all three criteria. The system is a Board with FPGA, RAM, ROM, real-time clock, DAC chips, and connectors for connecting a monitor, keyboard, and mouse manipulator soldered on it. The system is based on the FPGA Cyclone IV from ALTERA. Which, thanks to a sufficient number of logical cells, allows you to simulate not only a single processor, but also other components of the computer as a whole. Therefore, you can apply architectural changes to the processor and evaluate their impact on the entire system. We use this FPGA-based emulation system to validate the computer's FPGA emulation capabilities. The paper justified the possibility of emulating a computer on an FPGA and its ability to run real operating systems that are not stripped down. The novelty of this project is that unlike other similar projects, the system developed by us allows you to emulate a full-fledged personal computer with an x86 processor architecture, on the basis of which you can emulate more modern computers with processors. For example: Intel Atom or Intel Celeron. However, to achieve these goals, you will need to use a more developed FPGA, based on the methodology proposed in this paper.
Date of Conference: 22-24 April 2021
Date Added to IEEE Xplore: 21 May 2021
ISBN Information:
Electronic ISSN: 2689-7342
Publisher: IEEE
Conference Location: Vilnius, Lithuania

I. Introduction

Computer architecture research has traditionally used software to emulate a single-core processor such as SimpleScalar [1]. Both previously and today, improving the architecture of processors and memory hierarchies is an urgent task. In addition, there are currently additional optimization requirements across the entire system stack (processor architecture, command set, device drivers, operating system, and applications) with multiple processors. However, the above-mentioned research at the system level is constrained by a certain contradiction between the speed and detail of modeling software and hardware components, and this contradiction is inherent in software simulators, traditionally used for innovations in microprocessor systems. Field Programmable Gate Arrays (FPGA) are considered as a solution to this contradiction and are aimed at developing a new research infrastructure of the system stack that simulates a complete system (processor, video card, sound card, North and South bridges, network modem, etc.) [2]. Flexibility, speed (both development time and simulation time), and sufficient FPGA capacity allow developers to emulate microprocessor systems and computers in General. It should be noted that with the onset of the 4th industrial revolution [3], in the development and implementation of smart technologies in the urban environment, such as the MQTT Service Broker [4] and With the transition of states to electronic provision of services, many security problems have arisen both for personal data [5] or the Event Handler system as a MQTT [6] and for the protection of systems in general. In connection with the software implementation of various architectures, FPGA-based projects allow not only to parallelize information processing at the hardware level, but also to maximize information protection from hardware backdoors or so-called backdoors on the part of chip manufacturers, for example: Intel Management Engine [7]. However, one of the most difficult issues facing the development of an emulation system on an FPGA is compatibility with existing operating systems (OS). Manufacturers have developed processor cores for FPGA that are very small and simple, but have limited support even for embedded operating systems like Barebone. In addition, in order to run existing OS binaries, including closed source ones such as Windows, it forces developers to consider binary translation of OS files as a solution to the binary translation problem [8]. In this research and convenience in this work, we emulate a version of a commercial desktop computer with an x86 processor on an FPGA to run real operating systems. To be more precise, we replaced the computer with a debugging Board with the necessary components soldered on it. Debugging Board components: FPGA, RAM, ROM, real-time clock, and some other chips are required to connect the FPGA to PC peripherals. The following devices are emulated on an FPGA:

References

References is not available for this document.