Global training solutions for engineers creating the world's electronics

Bus Locking and Snooping

John Aynsley, Doulos, July 2009

Examples Demonstrating the use of TLM-2.0 Extensions to Model Bus Locking and Snooping

These examples accompany a presentation given at the North American SystemC Users Group (NASCUG) during DAC in July 2009. You will need to have attended the presentation in person download this pdf to appreciate what these examples show.

The files are organized as follows:

./locking_auto/    Bus locking using auto extensions
./locking_sticky/    Bus locking using sticky extensions
./locking_two/    Bus locking using two extensions, an auto guard extension and a sticky data extension
./snooping_sticky/    Bus snooping using sticky DMI extensions
./common/    Files common to all examples

Each directory contains a Makefile and a subdirectory containing a Microsoft Visual C++ version 9 project file. The Makefile expects you to provide a Makefile.defs tuned to your SystemC installation. Whatever, there are only a few files, so it should be very easy for you to build a makefile or project file for your particular compiler.

Each bus locking example illustrates two separate bus locking mechanisms: a lock to support atomic memory operations, and a load-link, store-conditional command that supports atomic operations without technically locking the bus. The bus locking extensions are added by the Lock_LT_initiator, and are intercepted by two interconnect components, Lock_interconnect and Load_link_interconnect.

The bus snooping example illustrates a DMI extension that is added by Snooping_initiator and intercepted by the target Memory.

All examples use a common memory manager gp_mm that maintains a pool of transactions.

Each example generates a log file, so you can soon see whether the examples are doing something, and can compare the output from the 3 bus locking examples to show they are functionally equivalent.

Click here to download the source files for this example. In exchange, we will ask you to enter some personal details. To read about how we use your details, click here. On the registration form, you will be asked whether you want us to send you further information concerning other Doulos products and services in the subject area concerned.

Click here to find what's new in TLM-2.0.1.
Back to the full list of TLM-2.0 Tutorials