Bliss is a complete Alpha AXP simulation toolkit. The goal of Bliss is not to be the fastest simulator
in existence, but rather to be the easiest to modify. We wrote Bliss for three reasons: First, often times new computer
architecture graduate students have to spend quite a bit of time learning how to use research tools. Shortening this learning
curve is our primary objective. The second reason we wrote Bliss is for use in undergraduate and graduate classes. Third,
we believe the average processor widget paper should not take that long to investigate. Having a robust and easily modifiable
simulation toolkit should shorten the feedback time between idea conception and evaluation.
Steven Swanson (firstname.lastname@example.org) and
Mark Oskin (email@example.com)
- Fully modular C++ code
- Alpha AXP user-level op-code simulation (including byte manipulations)
- A complete 7 stage superscalar processor model (physical register file type)
- A complete cache memory system model (with proper bus contention modeling)
- Pre-built cross-compilation tools (gcc v3.1 / binutils / glib) for execution on Linux x86 systems
- Support for Linux/Alpha and OSF/Alpha binary formats
- Free and open licensing. Bliss is being released under a BSD-like license
- So how fast is it?
Full supersalar simulation is approximately 100,000 cycles/second on a P4 1.8Ghz. An Alpha/AXP functional-only
simulator is included which executes approximately 2-4M instructions/second.
- How do I use the Alpha/OSF cross compilation tools?
You need to copy all of the /usr/include and libc.a/libm.a/crt*.o files from an OSF system that you
have to the proper locations of the cross compiler. Sorry, but these files are copyrighted by DEC,
I mean Compaq, caugh HP, um Intel?,
and we cannot simply redistribute them. If you do not have access to an OSF system then we advise
you to use the Linux/Alpha cross compiling tools. It is a newer version of gcc anyway.
- What systems are supported / known to work?
Bliss was developed for modern Linux/GNU x86 systems. By modern we mean about RedHat 6.2 or up.
It also works on cygnus/win32, Alpha/OSF computers, and Mac OS X. It should work on just about Unix
like OS, big or little endian. Note that the Mac OS X port still executes *little* endian Alpha binaries.
This is accomplished exactly how some of the MIPS processors used to work, by keeping the simulated user
memory in little endian but the core in the native endian of the machine. It's scary but works...
- Why didn't you derive Bliss from SimpleScalar?
In a single word: licensing. In two words: licensing and ease-of-use. No source code was used or adapted or based
upon SimpleScalar or ASIM. Free the tools, for all.