4 research outputs found

    Linux OS emulator and an application binary loader for a high performance microarchitecture simulator

    Get PDF
    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

    No full text
    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

    Get PDF
    Π£ ΠΎΠ²ΠΎΠΌ Ρ€Π°Π΄Ρƒ сС Ρ€Π°Π·ΠΌΠ°Ρ‚Ρ€Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΡˆΠΊΠΈ приступ Π΄ΠΈΠ·Π°Ρ˜Π½Ρƒ симулатора ΠΈΠ· области Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π΅ Ρ€Π°Ρ‡ΡƒΠ½Π°Ρ€Π° који Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈ Ρ€Π°Π·Π²ΠΎΡ˜ симулатора Π΄ΠΈΠ³ΠΈΡ‚Π°Π»Π½ΠΈΡ… систСма ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΡ™Π½ΠΎΠ³ Π½ΠΈΠ²ΠΎΠ° слоТСности способних Π·Π° Ρ€Π°Π΄ Ρƒ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠΌ ΠΈ дистрибуираном ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΡƒ. Π”Π° Π±ΠΈ сС ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°ΡšΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ˜Π΅ Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚ΠΊΡƒ Ρ€Π°Π΄Π° јС ΠΏΡ€ΠΈΠΊΠ°Π·Π°Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ наставС Ρƒ области Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π΅ Ρ€Π°Ρ‡ΡƒΠ½Π°Ρ€Π° Π½Π° основним ΡΡ‚ΡƒΠ΄ΠΈΡ˜Π°ΠΌΠ°, ΠΊΠ°ΠΎ ΠΈ ΠΏΡ€Π΅Π³Π»Π΅Π΄ области ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚ΠΎΠ²Π°ΡšΠ° симулатора Π³Π΄Π΅ јС посСбан Π°ΠΊΡ†Π΅Π½Π°Ρ‚ Π±ΠΈΠΎ стављСн Π½Π° области ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠ³ ΠΈ дистрибуираног ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ° којС студСнти Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΏΠΎΠ·Π½Π°Ρ˜Ρƒ ΠΊΠ°ΠΎ Π±ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π΄Π° Ρ€Π°Π·Π²ΠΈΡ˜Ρƒ симулаторС који ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π°Ρ˜Ρƒ Ρ€Π°Π΄ Ρƒ Ρ‚Π°ΠΊΠ²ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΡƒ. На основу спровСдСнС Π΅Π²Π°Π»ΡƒΠ°Ρ†ΠΈΡ˜Π΅ симулатора који сС користС Ρƒ настави ΠΈΠ· области Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π΅ Ρ€Π°Ρ‡ΡƒΠ½Π°Ρ€Π° Π° који ΠΈΠΌΠ°Ρ˜Ρƒ располоТив ΠΈΠ·Π²ΠΎΡ€Π½ΠΈ ΠΊΠΎΠ΄ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ јС Ρ€Π΅ΡˆΠ΅ΡšΠ΅ којС сС заснива Π½Π° ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΡƒ ΡΠ»ΠΎΡ˜Π΅Π²ΠΈΡ‚Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠ΄ којС јС сваки слој ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€Π°Π½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ Π²ΠΈΠ΄ ΠΎΠ±Ρ€Π°Π΄Π΅ ΠΈ ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Ρ€Π΅ΡˆΠ΅ΡšΠ΅ сС ΡΠ°ΡΡ‚ΠΎΡ˜ΠΈ ΠΈΠ· ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ° ΠΏΠ΅Ρ‚ слојСва: Π»ΠΎΠ³ΠΈΡ‡ΠΊΠΎΠ³, ΠΈΠ·Π²Ρ€ΡˆΠ½ΠΎΠ³, ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½ΠΎΠ³, симулационог, ΠΈ слоја Ρ„ΠΈΠ·ΠΈΠΊΠ΅. Π”Π΅Ρ‚Π°Ρ™ΠΈ Π²Π΅Π·Π°Π½ΠΈ Π·Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΈ објашњСња Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° којС сС користС Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ ΠΎΠ²ΠΈΡ… слојСва су ΠΏΡ€ΠΈΠΊΠ°Π·Π°Π½ΠΈ Ρƒ Ρ€Π°Π΄Ρƒ. Π—Π° сваки слој ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎΠ³ Ρ€Π΅ΡˆΠ΅ΡšΠ° јС Π΄Π°Ρ‚ Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π» ΠΏΡ€ΠΎΡ†Π΅Π½Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΈΠ·Π²Ρ€ΡˆΠ°Π²Π°ΡšΠ° ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅ Ρƒ зависности ΠΎΠ΄ ΡƒΠ»Π°Π·Π½ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€Π° ΠΏΡ€ΠΈΠ»ΠΈΠΊΠΎΠΌ Ρ€Π°Π΄Π° Ρƒ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠΌ ΠΈ дистрибуираном ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΡƒ. Π¦Π΅Π½Ρ‚Ρ€Π°Π»Π½ΠΈ Π΄Π΅ΠΎ Ρ€Π°Π΄Π° ΠΎΠΏΠΈΡΡƒΡ˜Π΅ симулатор дискрСтних Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π° ΠΎΠΏΡˆΡ‚Π΅ Π½Π°ΠΌΠ΅Π½Π΅ Ρ€Π°Π·Π²ΠΈΡ˜Π΅Π½ ΠΏΡ€Π΅ΠΌΠ° описаној ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ˜ΠΈ ΠΊΠ°ΠΎ симулатор Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π΅ Ρ€Π°Ρ‡ΡƒΠ½Π°Ρ€Π° који јС способан Π·Π° Ρ€Π°Π΄ Ρƒ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠΌ ΠΈ дистрибуираном ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΡƒ. Опис симулатора ΠΈ ΡšΠ΅Π³ΠΎΠ²ΠΈΡ… Π΄Π΅Π»ΠΎΠ²Π° јС Π΄Π°Ρ‚ са ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡˆΡ‚Π° Π΄Π΅Ρ‚Π°Ρ™Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π΅ Π³Π΄Π΅ су прСдстављСни ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΈ Π½Π° основу ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ˜Π΅, ΠΊΠ°ΠΎ ΠΈ са ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡˆΡ‚Π° ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ° Π³Π΄Π΅ су описанС карактСристичнС ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π΅ Ρƒ којима сС симулатор ΠΌΠΎΠΆΠ΅ користити. На основу ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π΅ симулатора ΠΈ ΠΏΡ€Π°Ρ‚Π΅Ρ›ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ€Π°Π·Π²ΠΈΡ˜Π΅Π½Π΅ су Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΡ˜ΡΠΊΠ΅ Π²Π΅ΠΆΠ±Π΅ ΠΈ ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚ΠΈ ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π° ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎ ΠΈ дистрибуирано ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ΅, којС су прСдстављСнС Ρƒ наставку Ρ€Π°Π΄Π° ΠΊΠ°ΠΎ ΠΈ Π΅Π²Π°Π»ΡƒΠ°Ρ†ΠΈΡ˜Π° постигнутих Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° Ρƒ настави. ΠŸΠΎΡ€Π΅Π΄ ΠΎΠ²Π΅ Π΅Π²Π°Π»ΡƒΠ°Ρ†ΠΈΡ˜Π΅ Π½Π° ΠΊΡ€Π°Ρ˜Ρƒ Ρ€Π°Π΄Π° јС прСдстављСна ΠΈ Π΅Π²Π°Π»ΡƒΠ°Ρ†ΠΈΡ˜Π° симулатора са ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡˆΡ‚Π° СкспСримСнталних Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΈ са ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡˆΡ‚Π° Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡ΠΊΠΎΠ³ ΠΌΠΎΠ΄Π΅Π»Π° ΠΊΠ°ΠΎ Π±ΠΈ сС ΡƒΡ‚Π²Ρ€Π΄ΠΈΠ»ΠΎ Ρƒ којим ΡΠ»ΡƒΡ‡Π°Ρ˜Π΅Π²ΠΈΠΌΠ° ΠΈ Ρƒ ΠΊΠΎΠΌ ΠΎΠ±ΠΈΠΌΡƒ сС ΠΌΠΎΠ³Ρƒ користити симулатори Ρ€Π°Π·Π²ΠΈΡ˜Π΅Π½ΠΈ сходно описаној ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ˜ΠΈ..
    corecore