4 research outputs found
Linux OS emulator and an application binary loader for a high performance microarchitecture simulator
Simulation is a critical step in the development of state of the art microprocessors. Accurate simulation allows designers to confidently investigate various designs, while fast simulation times allow designers to thoroughly explore a design space. RITSim is an endeavor to create a high accuracy, high quality microarchitecture simulation infrastructure. This simulation infrastructure will be available for academic research in low power and high performance computer systems. The scope of this work is to provide a Linux OS Emulator, a Binary Application Loader, and a Linux kernel running in a virtual environment for the RITSim project. In order to evaluate standard software loads and benchmark suites on target microarchitectures simulators must provide support for operating system calls. This may be accomplished with various levels of accuracy. Many past simulators chose to sacrifice simulation accuracy to improve simulation time, while others sacrificed portability and execution time for high accuracy results. This work provides three key elements to the RITSim environment in an effort to create a simulation environment that seamlessly combines both approaches to provide a single integrated tool that allows researchers to choose the approach that is best suited to their needs. A first order simulation mode is provided that makes use of emulated system calls that are executed on the host computer?s operating system to provide quick simulation times. This mode also maintains a high level of portability since the host operating system is used to access the hardware. A high accuracy mode is also available that runs in a highly detailed simulated operating system. When running in the high accuracy mode the simulated operating system must be loaded into a virtual environment allowing the actual instructions of the operating system code to be simulated. Another key element is the binary application loader. This is required by the simulator to load executables into the simulator?s virtual memory space and to prepare it for execution. This involves not only mapping or copying the executable into simulated virtual memory, but also the creation and initialization of a new user mode stack and configuration of the simulated processor?s user mode registers
An Efficient Strategy for Developing a Simulator for a Novel Concurrent Multithreaded Processor Architecture
In developing a simulator for a new processor architecture, it often is not clear whether it is more efficient to write a new simulator or to modify an existing simulator. Writing a new simulator forces the processor architect to develop or adapt all of the related software tools. However, modifying an existing simulator and related tools, which are usually not well-documented, can be time-consuming and error-prone. We describe the SImulator for Multithreaded Computer Architectures (SIMCA) that was developed with the primary goal of obtaining a functional simulator as quickly as possible to begin evaluating the superthreaded architecture [1, 2] The performance of the simulator itself was important, but secondary. We achieved our goal using a technique called process-pipelining that exploits the unique features of this new architecture to hide the details of the underlying simulator. This approach allowed us to quickly produce a functional simulator whose performance is only 3.8 - 4.9 t..
Methodology for designing simulators of computer architecture and organization
Π£ ΠΎΠ²ΠΎΠΌ ΡΠ°Π΄Ρ ΡΠ΅ ΡΠ°Π·ΠΌΠ°ΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΡΠΊΠΈ ΠΏΡΠΈΡΡΡΠΏ Π΄ΠΈΠ·Π°ΡΠ½Ρ ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠ° ΠΈΠ·
ΠΎΠ±Π»Π°ΡΡΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠ΅ ΡΠ°ΡΡΠ½Π°ΡΠ° ΠΊΠΎΡΠΈ ΡΡΠ΅Π±Π° Π΄Π° ΠΎΠΌΠΎΠ³ΡΡΠΈ ΡΠ°Π·Π²ΠΎΡ
ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠ° Π΄ΠΈΠ³ΠΈΡΠ°Π»Π½ΠΈΡ
ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΡΠ½ΠΎΠ³ Π½ΠΈΠ²ΠΎΠ° ΡΠ»ΠΎΠΆΠ΅Π½ΠΎΡΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΈΡ
Π·Π° ΡΠ°Π΄
Ρ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠΌ ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅ΡΡ. ΠΠ° Π±ΠΈ ΡΠ΅ ΠΎΠΌΠΎΠ³ΡΡΠΈΠΎ ΡΠΎΡΠΌΠΈΡΠ°ΡΠ΅
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΠ΅ΡΠΊΡ ΡΠ°Π΄Π° ΡΠ΅ ΠΏΡΠΈΠΊΠ°Π·Π°Π½ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π°ΡΡΠ°Π²Π΅ Ρ ΠΎΠ±Π»Π°ΡΡΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅
ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠ΅ ΡΠ°ΡΡΠ½Π°ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΠΌ ΡΡΡΠ΄ΠΈΡΠ°ΠΌΠ°, ΠΊΠ°ΠΎ ΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΎΠ±Π»Π°ΡΡΠΈ
ΠΏΡΠΎΡΠ΅ΠΊΡΠΎΠ²Π°ΡΠ° ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠ° Π³Π΄Π΅ ΡΠ΅ ΠΏΠΎΡΠ΅Π±Π°Π½ Π°ΠΊΡΠ΅Π½Π°Ρ Π±ΠΈΠΎ ΡΡΠ°Π²ΡΠ΅Π½ Π½Π° ΠΎΠ±Π»Π°ΡΡΠΈ
ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠ³ ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΎΠ³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°ΡΠ° ΠΊΠΎΡΠ΅ ΡΡΡΠ΄Π΅Π½ΡΠΈ ΡΡΠ΅Π±Π° Π΄Π° ΠΏΠΎΠ·Π½Π°ΡΡ ΠΊΠ°ΠΎ
Π±ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π΄Π° ΡΠ°Π·Π²ΠΈΡΡ ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠ΅ ΠΊΠΎΡΠΈ ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π°ΡΡ ΡΠ°Π΄ Ρ ΡΠ°ΠΊΠ²ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅ΡΡ. ΠΠ°
ΠΎΡΠ½ΠΎΠ²Ρ ΡΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π΅ Π΅Π²Π°Π»ΡΠ°ΡΠΈΡΠ΅ ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠ° ΠΊΠΎΡΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ Ρ Π½Π°ΡΡΠ°Π²ΠΈ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ
Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠ΅ ΡΠ°ΡΡΠ½Π°ΡΠ° Π° ΠΊΠΎΡΠΈ ΠΈΠΌΠ°ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΠ² ΠΈΠ·Π²ΠΎΡΠ½ΠΈ ΠΊΠΎΠ΄
ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΡΠ΅ ΡΠ΅ΡΠ΅ΡΠ΅ ΠΊΠΎΡΠ΅ ΡΠ΅ Π·Π°ΡΠ½ΠΈΠ²Π° Π½Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΡ ΡΠ»ΠΎΡΠ΅Π²ΠΈΡΠ΅ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΊΠΎΠ΄
ΠΊΠΎΡΠ΅ ΡΠ΅ ΡΠ²Π°ΠΊΠΈ ΡΠ»ΠΎΡ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ°Π½ Π·Π° Π΄ΡΡΠ³ΠΈ Π²ΠΈΠ΄ ΠΎΠ±ΡΠ°Π΄Π΅ ΠΈ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ΅. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ
ΡΠ΅ΡΠ΅ΡΠ΅ ΡΠ΅ ΡΠ°ΡΡΠΎΡΠΈ ΠΈΠ· ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ° ΠΏΠ΅Ρ ΡΠ»ΠΎΡΠ΅Π²Π°: Π»ΠΎΠ³ΠΈΡΠΊΠΎΠ³, ΠΈΠ·Π²ΡΡΠ½ΠΎΠ³,
ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΎΠ½ΠΎΠ³, ΡΠΈΠΌΡΠ»Π°ΡΠΈΠΎΠ½ΠΎΠ³, ΠΈ ΡΠ»ΠΎΡΠ° ΡΠΈΠ·ΠΈΠΊΠ΅. ΠΠ΅ΡΠ°ΡΠΈ Π²Π΅Π·Π°Π½ΠΈ Π·Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΠΈ
ΠΎΠ±ΡΠ°ΡΡΠ΅ΡΠ° ΡΠ΅Ρ
Π½ΠΈΠΊΠ° ΠΊΠΎΡΠ΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ ΠΎΠ²ΠΈΡ
ΡΠ»ΠΎΡΠ΅Π²Π° ΡΡ ΠΏΡΠΈΠΊΠ°Π·Π°Π½ΠΈ Ρ
ΡΠ°Π΄Ρ. ΠΠ° ΡΠ²Π°ΠΊΠΈ ΡΠ»ΠΎΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎΠ³ ΡΠ΅ΡΠ΅ΡΠ° ΡΠ΅ Π΄Π°Ρ Π°Π½Π°Π»ΠΈΡΠΈΡΠΊΠΈ ΠΌΠΎΠ΄Π΅Π» ΠΏΡΠΎΡΠ΅Π½Π΅
Π²ΡΠ΅ΠΌΠ΅Π½Π° ΠΈΠ·Π²ΡΡΠ°Π²Π°ΡΠ° ΡΠΈΠΌΡΠ»Π°ΡΠΈΡΠ΅ Ρ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΠΎΠ΄ ΡΠ»Π°Π·Π½ΠΈΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠ° ΠΏΡΠΈΠ»ΠΈΠΊΠΎΠΌ
ΡΠ°Π΄Π° Ρ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠΌ ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅ΡΡ. Π¦Π΅Π½ΡΡΠ°Π»Π½ΠΈ Π΄Π΅ΠΎ ΡΠ°Π΄Π° ΠΎΠΏΠΈΡΡΡΠ΅
ΡΠΈΠΌΡΠ»Π°ΡΠΎΡ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΈΡ
Π΄ΠΎΠ³Π°ΡΠ°ΡΠ° ΠΎΠΏΡΡΠ΅ Π½Π°ΠΌΠ΅Π½Π΅ ΡΠ°Π·Π²ΠΈΡΠ΅Π½ ΠΏΡΠ΅ΠΌΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΎΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡΠΈ ΠΊΠ°ΠΎ ΡΠΈΠΌΡΠ»Π°ΡΠΎΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠ΅ ΡΠ°ΡΡΠ½Π°ΡΠ° ΠΊΠΎΡΠΈ ΡΠ΅
ΡΠΏΠΎΡΠΎΠ±Π°Π½ Π·Π° ΡΠ°Π΄ Ρ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠΌ ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅ΡΡ. ΠΠΏΠΈΡ ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠ° ΠΈ
ΡΠ΅Π³ΠΎΠ²ΠΈΡ
Π΄Π΅Π»ΠΎΠ²Π° ΡΠ΅ Π΄Π°Ρ ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΠ° Π΄Π΅ΡΠ°ΡΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ Π³Π΄Π΅ ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ΅Π½ΠΈ
ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅, ΠΊΠ°ΠΎ ΠΈ ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΠ°
ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ° Π³Π΄Π΅ ΡΡ ΠΎΠΏΠΈΡΠ°Π½Π΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΡΠ½Π΅ ΡΠΈΡΡΠ°ΡΠΈΡΠ΅ Ρ ΠΊΠΎΡΠΈΠΌΠ° ΡΠ΅ ΡΠΈΠΌΡΠ»Π°ΡΠΎΡ
ΠΌΠΎΠΆΠ΅ ΠΊΠΎΡΠΈΡΡΠΈΡΠΈ. ΠΠ° ΠΎΡΠ½ΠΎΠ²Ρ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠ° ΠΈ ΠΏΡΠ°ΡΠ΅ΡΠΈΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
ΡΠ°Π·Π²ΠΈΡΠ΅Π½Π΅ ΡΡ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡΡΠΊΠ΅ Π²Π΅ΠΆΠ±Π΅ ΠΈ ΠΏΡΠΎΡΠ΅ΠΊΡΠΈ ΠΈΠ· ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ° ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎ ΠΈ
Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°ΡΠ΅, ΠΊΠΎΡΠ΅ ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ΅Π½Π΅ Ρ Π½Π°ΡΡΠ°Π²ΠΊΡ ΡΠ°Π΄Π° ΠΊΠ°ΠΎ ΠΈ
Π΅Π²Π°Π»ΡΠ°ΡΠΈΡΠ° ΠΏΠΎΡΡΠΈΠ³Π½ΡΡΠΈΡ
ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° Ρ Π½Π°ΡΡΠ°Π²ΠΈ. ΠΠΎΡΠ΅Π΄ ΠΎΠ²Π΅ Π΅Π²Π°Π»ΡΠ°ΡΠΈΡΠ΅ Π½Π° ΠΊΡΠ°ΡΡ ΡΠ°Π΄Π° ΡΠ΅
ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ΅Π½Π° ΠΈ Π΅Π²Π°Π»ΡΠ°ΡΠΈΡΠ° ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠ° ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΠ° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈΡ
ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΈ ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΠ° Π°Π½Π°Π»ΠΈΡΠΈΡΠΊΠΎΠ³ ΠΌΠΎΠ΄Π΅Π»Π° ΠΊΠ°ΠΎ Π±ΠΈ ΡΠ΅ ΡΡΠ²ΡΠ΄ΠΈΠ»ΠΎ Ρ ΠΊΠΎΡΠΈΠΌ
ΡΠ»ΡΡΠ°ΡΠ΅Π²ΠΈΠΌΠ° ΠΈ Ρ ΠΊΠΎΠΌ ΠΎΠ±ΠΈΠΌΡ ΡΠ΅ ΠΌΠΎΠ³Ρ ΠΊΠΎΡΠΈΡΡΠΈΡΠΈ ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠΈ ΡΠ°Π·Π²ΠΈΡΠ΅Π½ΠΈ ΡΡ
ΠΎΠ΄Π½ΠΎ
ΠΎΠΏΠΈΡΠ°Π½ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡΠΈ..