Zesto
Welcome to the Zesto webpage. Zesto is a timing model constructed based on
the pre-release version of the x86 version of SimpleScalar. This simulator
was developed for detailed cycle-level modeling of modern out-of-order
pipelines at a level of detail much greater than is typical of academic
pipeline simulators. The initially released version of Zesto inherits
the limitations of the previous x86 SimpleScalar implementation (e.g.,
32-bit mode only, no MMX/SSE, missing system calls), but is otherwise able
to execute x86 binaries out-of-the-box.
Please refer to the manual and/or the ISPASS paper in the
documentation section for full details, but a
few of the highlights are listed below.
- Componentized interface for easy-to-add branch predictors, BTBs,
memory dependence predictors, DRAM models, memory controllers and
prefetchers.
- Detailed Intel/x86-centric pipeline structures with separate front-end
macro-op handling, and back-end (out-of-order) micro-op processing,
including micro-op fusion.
- Detailed event-driven cache hierarchy model accounting for
finite MSHRs, bus contention, writeback and fill delays, and
physically-tagged caches.
- Detailed execution model with ALU-to-execution port bindings and
true decoupled speculative scheduling and execution.
- Basic multi-core support for multi-programmed workloads
(support for true multi-threaded applications not available yet) with
a unified physical memory address space.
- Support for adding your own timing models with varying levels of
detail.
Who can (or cannot) use Zesto?
Zesto is built on top of SimpleScalar, whose rights are owned by
SimpleScalar LLC. All original
SimpleScalar code is still covered by the original SimpleScalar user
agreements, with particular emphasis on commercial use. The Zesto-specific
portions are released under a separate user-agreement that allows for free
use for all entities (commercial or otherwise). For academic use, this
means you can just download and run with it. For commerical use, you have
two options: (1) obtain standard permission from SimpleScalar LLC, or (2)
port the Zesto timing model to some other third party functional simulator
so that no SimpleScalar-specific components are used.
Why (or why not) use Zesto?
Due to Zesto's focus on microarchitectural detail, the simulator is extremely
slow (10's to a few 100's of KIPS) when compared to some other simulators that
are freely available (100's of KIPS to MIPS). This speed is actually similar
to some of the proprietary simulators used in industry, but it is obviously
still slow enough that academic researchers may want to carefully consider
whether Zesto is a good fit for their research objectives. If you are
interested in low-level microarchitecture explorations (e.g., detailed
operation of the instruction scheduling logic, load and store queues), then
Zesto may be of interest to you. For other "higher-level" studies (e.g.,
multi-core cache coherence policies, hardware transactional memory), the
detail provided by Zesto is likely to be an overkill. From a research
perspective, you should carefully choose your tools.
From an educational perspective, Zesto may be very useful for use in an
advanced graduate course. We have made use of an internal alpha-version of
Zesto in such a course at Georgia Tech; two course projects from this course
(using Zesto) resulted in papers which the students presented at workshops
at ISCA 2008. The education page provides the
PowerPoint slides used for this course along with an example syllabus and
course schedule.
What's the meaning of "Zesto"?
Zesto is a now defunct American fast-food franchise that originated in 1949.
You can read a little more about it at its
Wikipedia Entry.
Even though the national franchise went away, there still exist several
privately owned and operated Zesto restaurants across the United States,
each of which has evolved and developed in their own specific ways (sort
of like Darwin's finches... if finches were cold, creamy and served on
ice cream cones).
The main draw of the Zesto restaurants is their soft-serve ice cream, which is
both incredibly rich and heavy. The Zesto simulator provides
very great detail of a modern processor pipeline (rich), but it is also very
slow (heavy). Beyond this, it's simply a name we chose because it's memorable
and they have really good ice cream. If you live in a city that is lucky
enough to still have a Zesto (Atlanta has four!), go get yourself some ice
cream!
Who's providing Zesto? Zesto was written at Georgia Tech by
Gabriel Loh and his students. The
Zesto simulator has no official or unofficial relationship with the main-line
SimpleScalar projects/releases, SimpleScalar LLC, the University of
Michigan, or any of the remaining Zesto ice cream shops.
|