SkillAgentSearch skills...

Usimm

USIMM: the Utah SImulated Memory Module

Install / Use

/learn @pranith/Usimm
About this skill

Quality Score

0/100

Supported Platforms

Universal

README


USIMM: the Utah SImulated Memory Module Version 1.3

USIMM is distributed under the CRAPL (see CRAPL-LICENSE.txt in this directory). In spite of the tongue-in-cheek terms of the license, we will be supporting the USIMM infrastructure.
The src/utlist.h file was obtained from http://uthash.sourceforge.net and is subject to the terms of the BSD license. For questions to the USIMM developers, email usimm@cs.utah.edu For updates or discussions, email usimm-users@cs.utah.edu, or visit this blog post: http://utaharch.blogspot.com/2012/02/usimm.html

USIMM was developed by members of the Utah Arch group: Niladrish Chatterjee, Rajeev Balasubramonian, Manjunath Shevgoor, Seth H. Pugsley, Aniruddha N. Udipi, Ali Shafiee, Kshitij Sudan, Manu Awasthi.

We also received traces and suggestions from other JWAC MSC organizers: Zeshan Chishti (Intel), Alaa R. Alameldeen (Intel), Eric Rotenberg (NC State)

Code download: http://www.cs.utah.edu/~rajeev/usimm-v1.3.tar.gz

USIMM Tech Report: http://www.cs.utah.edu/~rajeev/pubs/usimm.pdf

The JWAC MSC website: http://www.cs.utah.edu/~rajeev/jwac12/

GETTING STARTED

If you've reached this far, you've already been able to unzip and untar the distribution with: gunzip usimm-v1.3.tar.gz tar xvf usimm-v1.3.tar

The root directory has the following directories and files: src/ : Code source files bin/ : Houses the usimm executable obj/ : Houses the intermediate object files for the source files input/ : Has the (simulated) system configuration files and input traces output/ : Can store the simulation outputs runsim : A script to execute a few example simulations README.txt: this file! usimm.pdf : The USIMM tech report CRAPL-LICENSE.txt: The CRAPL license.

To get started, cd src/ make clean make

This produces a usimm executable in the bin/ directory. To run the example simulation script, cd .. ./runsim

The simulation should finish in tens of minutes. Use a truncated version of the trace files for shorter tests. To examine the simulation outputs, view output/*

The input/ directory contains the system and DRAM chip configuration files that are read by USIMM. Do not rename this directory or the DRAM chip configuration files. The input/ directory also contains 13 trace files for 10 different benchmarks. Please see Appendix C of the USIMM Tech report for details on these benchmarks.

CODE ORGANIZATION

The src/ directory has the following files:

main.c : Handles the main program loop that retires instructions, fetches new instructions from the input traces, and calls update_memory().

memory_controller.c : Implements update_memory(), a function that checks DRAM timing parameters to determine which commands can issue in this cycle.

scheduler.c : Function provided by the user to select a command for each channel in every memory cycle. The provided default is a simple FCFS algorithm with periodic write drains.

scheduler.h : Header file for the user's scheduler function.

configfile.h : Header file to enable reading input system config files.

memory_controller.h : Header file to enable DRAM timing management.

params.h : Header file for all system parameters.

processor.h : Header file for the ROB structure that controls the processor.

utils.h : A few utility functions.

utlist.h : Utility functions to manage linked lists.

SAMPLE SCHEDULERS

The src/ directory also includes the following example simple schedulers:

scheduler-fcfs.c/h : Basic FCFS, plus a periodic write drain mechanism.

scheduler-close.c/h : Precharges banks during idle cycles soon after a column rd/wr.

View on GitHub
GitHub Stars25
CategoryDevelopment
Updated6mo ago
Forks6

Languages

C

Security Score

67/100

Audited on Sep 4, 2025

No findings