Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP

» 

HP Labs

» Research
» News and events
» Technical reports
» About HP Labs
» Careers @ HP Labs
» People
» Worldwide sites
» Downloads
Content starts here

CACTI

An integrated cache and memory access time, cycle time, area, leakage, and dynamic power model

CACTI is an integrated cache and memory access time, cycle time, area, leakage, and dynamic power model. By integrating all these models together, users can have confidence that tradeoffs between time, power, and area are all based on the same assumptions and, hence, are mutually consistent. CACTI is intended for use by computer architects to better understand the performance tradeoffs inherent in memory system organizations.

CACTI is available in two forms: a web-based version and a C++ source code version. The web interface version first added for CACTI 4.0 is frequently updated with the latest versions and bug fixes, and allows CACTI to be easily accessible to a larger user community. The web interface can be accessed at http://quid.hpl.hp.com:9081/cacti/. The web interface should meet the needs of most CACTI users. For users that need to modify CACTI or integrate it into other tools to support their research, CACTI source code is still available.

Note that since CACTI is continually being upgraded, results for specific cache configurations and technologies may change as new versions are released and bugs are fixed. Please continue using a single version of the source code if consistency is important for your work. We do not plan on keeping previous web versions of CACTI available online.

As technology shrinks, the disparity between transistor and wire delay will grow. The properties of future caches/memories will primarily depend on the characteristics of the interconnection network that connects various sub-modules of a cache/memory. CACTI 6.5 is a significantly enhanced version that primarily focuses on interconnect design. In addition to a new streamlined code base with numerous bug fixes, 6.5 includes the following extensions over 5.3. 1) The ability to model different types of wires, such as RC based wires with different power, delay, and area characteristics and differential low-swing buses. 2) Ability to model Non-Uniform Cache Access (NUCA) for chip multiprocessors that takes into account the effect of network contention during the design space exploration. 3) Power model for router components. 4) Improved design space exploration that takes into account different wire types and router types (for NUCA). 5) Improved API to specify constraints involving power, delay, area, and bandwidth. 6) Improved analytical models for dominant cache components such as wordlines and bitlines. The technical report (available at http://www.hpl.hp.com/techreports/2009/HPL-2009-85.html) details the new features added to the tool along with a validation analysis of the newly added components. CACTI 6.5 can be downloaded from here (cacti 6.5).

CACTI 5.3 is a version of CACTI 5 written in C++, multithreaded with Pthreads, and with various bug fixes. CACTI 5 includes a number of major improvements over CACTI 4. First, as fabrication technologies enter the deep-submicron era, device and process parameter scaling has become non-linear. To better model this, the base technology modeling in CACTI 5 has been changed from simple linear scaling of the original CACTI 0.8 micron technology to models based on the ITRS roadmap. Second, embedded DRAM technology has become available from some vendors, and there is interest in 3D stacking of commodity DRAM with modern chip multiprocessors. As another major enhancement, CACTI 5 adds modeling support of DRAM memories. Third, to support the significant technology modeling changes above and to enable fair comparisons of SRAM and DRAM technology, the CACTI code base has been extensively rewritten to become more modular. At the same time, various circuit assumptions have been updated to be more relevant to modern design practice. Finally, numerous bug fixes and small feature additions have been made. A tech report on CACTI 5 is available at http://www.hpl.hp.com/techreports/2008/HPL-2008-20.html. CACTI 5.3 source code can be obtained by downloading the gzip'ed tar file, extracting the file (tar -xzvf cacti.5.3.rev.174.tar.gz), and running make.

CACTI 4.1 fixes a small number of bugs in CACTI 4.0. CACTI 4.0 adds a leakage power model and updates the basic circuit structures and device parameters to better reflect recent advances in semiconductor scaling. CACTI 4.0 also adds support for greater parameterization, such as user defined tag and data widths, a serial tag and data access option for low power, and modeling of memory structures without tags. A tech report on CACTI 4.0 is available at http://www.hpl.hp.com/techreports/2006/HPL-2006-86.html. For users that need to modify CACTI or integrate it into other tools to support their research, CACTI 4.1 source code can be obtained by downloading the gzip'ed tar file, gunzip'ing it (gunzip cacti4.1.tar.gz), extracting the tar'ed files (tar -xvf cacti4.1.tar) and running make.

CACTI 3.2 is a version of CACTI 3.0 with a number of small bug fixes. CACTI 3.2 can be obtained by downloading the gzip'ed tar file, gunzip'ing it (gunzip cacti3.2.tar.gz), extracting the tar'ed files (tar -xvf cacti3.2.tar) and running make. CACTI 3.0 includes modeling support for the area of caches, caches with independently addressed banks, reduced sense-amp power dissipation and other improvements to CACTI 2.0. A paper describing the CACTI 3.0 improvements to CACTI 2.0 is available in both postscript and pdf formats. CACTI 3.0 can be obtained by downloading the gzip'ed tar file, gunzip'ing it and extracting the tar'ed files.

CACTI 2.0 added modeling support for fully-associative caches, a power model, technology scaling, multiported caches, and improved tag comparison circuits, as well as other improvements to CACTI 1.0. A paper describing the CACTI 2.0 enhancements to CACTI 1.0 is available in both postscript and pdf formats. CACTI 2.0 continues to be made available for use in regression studies and verification of previous work using CACTI 2.0. CACTI 2.0 can be obtained by downloading the gzip'ed tar file, gunzip'ing it and extracting the tar'ed files.

A detailed description of the original CACTI 1.0 model is given in the CACTI technical report.

CACTI 1.0 was originally developed by Steve Wilton and Norm Jouppi. CACTI 2.0 was developed by Glenn Reinman and Norm Jouppi. CACTI 3.0 was developed by Premkishore Shivakumar and Norm Jouppi. CACTI 4 was developed by David Tarjan, Shyamkumar Thoziyoor, and Norm Jouppi. CACTI 5 was developed by Shyamkumar Thoziyoor, Naveen Muralimanohar, Jung Ho Ahn, and Norm Jouppi.

Send email to if you would like to be added to the CACTI User's Society (CACTIUS) to learn about future enhancements via email.

Printable version
Privacy statement Using this site means you accept its terms Feedback to HP Labs
© 2008 Hewlett-Packard Development Company, L.P.