
The Ski simulator is a software package designed to
functionally simulate the IA-64 processor architecture at the
instruction level. Ski offers an informative, screen-oriented
machine-state display and a friendly, powerful command-line interface.
Programs may be loaded from disk in executable format; they may be run
from start to finish, single-stepped, and break-pointed. Execution
can occur in a text-oriented or a graphical user interface or in
batch-mode, with no user-interface at all. Both the user-level and
the system-level machine-state can be simulated. For user-level
execution, Ski will intercept IA-64 Linux system calls and translate
them into the corresponding system calls of the host operating system.
Strengths
Ski is particularly well-suited for:
- IA-64 application development.
-
Ski can simulate IA-64 programs in a Linux environment and IA-32
programs in an MS-DOS environment. Ski provides a user interface that
looks very much like a typical debugger, but the processor you are
debugging on is a virtual, simulated by Ski.
- IA-64 compiler-tuning.
-
Ski provides performance statistics that can help you tuned IA-64
compiler code generators. Ski can help you improve your compiler's
use of IA-64 architecture enhancements for parallelism. However, note
that Ski does not emulate a particular Itanium processor and as such
does not provide cycle-accurate results.
- IA-64 operating-system and firmware development.
-
Ski can simulate a "raw" IA-64 processor, with no operating system
provided. Because of this, you can use Ski to simulate an IA-64
operating system running IA-64 programs. For example, Ski continues
to be used in the development of the IA-64 version of the Linux
kernel.
- IA-64 processor functional hardware and software verification.
-
Ski is a true implementation of the IA-64 architecture. You can
compare the behavior of code simulated with Ski to the same code
running on other IA-64. This helps you verify the correctness of
those implementations, or of your software code.
Limitations
- No physical device emulation.
- Ski simulates the CPU
itself but not any of the real devices that would be needed in a
complete computer. As such, Ski is not suitable for developing, e.g.,
device drivers. In system-mode, Ski does provide access to a
serial-console (simulated as an X11 terminal window), disk (simulated
as a Linux file), and Ethernet (simulated as a raw Ethernet socket).
- Sequential execution.
- Ski doesn't simulate concurrent
instruction execution. Instead, it executes instructions one at a time
(as allowed by the IA-64 architecture). Hence Ski cannot be used to
detect data-dependency violations.
- Simulation accuracy.
- In general, Ski is a faithful
implementation of the IA-64 architecture. However, there is no
guarantee that Ski implements the IA-64 architecture perfectly. The
system-call emulation layer needed in user-mode also is not perfect:
some applications may not work when simulated in user mode.
Multi-threading is not supported in user mode: use the kernel mode
instead.
- Performance Monitor Unit.
- The PMU implemented by Ski is so
limited that it has no practical use. You may want to use real
hardware for PMU-related development instead.
- IA-32 emulation.
- Ski emulates only 16-bit IA-32 emulation
sufficient for running DOS applications.
- Single processor.
- Ski simulates only one CPU, so it cannot
be used to test multi-processor code.

|