Features
Supports DDR2 400MHz
Supported memory size can be up to 32GB
Max trace transmission bandwidth is 3Gb/s
Developed at Linux 2.6.14, can be ported to other versions with few efforts, such as 2.6.18
Partly support multi-channel synchronization
Partly support energy-consumption calculation
Framework
Memory Trace Board (MTB)
Kernel Synchronization Module (KSMod)
Trace packets capture and analysis Toolkit
[framework]
Hardware Design
Power supply
DDR2 gold-finger
3 GE PHY
SMA ports
DDR2 Register
Xilinx Virtex-4 FPGA
The FPGA Physical Block Diagram
[fpga]
Simplified State Machine
[state]
HMTT Hardware Board
[board]
Software Design
Kernel Synchronization Module (KSMod)
One module is added to alter the first page's cache attribution
Another module is a more important module which provides the hmtt_printk routine to collect page table information and to store the information in a kernel-user shared buffer
One kernel patch for pgtable.h records each update of page table
Another kernel patch for entry.S sends identifiers to MTB when kernel-enter and kernel-exit occur (optional)
Trace packets capture and analysis Toolkit
Memory Trace Board (MTB) Configuration
Trace Dumping and Replay
MTB Configuration Mechanism
[configuration]
A sample of collecting virtual memory trace with the HMTT system
[software]
Combination With Other Tools
Combination with simulators
Combination with binary instrumentation