Home Documentation/Help Download Education simplescalar.com

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.

Zesto Simulator
Georgia Institute of Technology
College of Computing
Copyright 2009
Last modified 14 Jan '09