Skip to content
Tingyuan LIANG edited this page Jan 25, 2019 · 32 revisions

Authors: Tingyuan Liang, Jieru Zhao, Liang Feng, Sharad Sinha,and Wei Zhang

Welcome to the Hi-DMM wiki! If you have some other questions, please do not hesitate to email us: (tliang at ust dot hk)

Hi-DMM is a comprehensive project developed in an academic work, with its implementation covering both hardware and software. User can use only the allocators or only the compiler for their work since the designs are relatively independent. We do hope this project can make contribution to the community and we will be happy to get feedback or suggestion from designers. Therefore, to help user to understand Hi-DMM and use it easier, the Wiki of Hi-DMM is organized as below:

1. What is Hi-DMM? Introduction to Hi-DMM

1a) Citation

1b) Characteristics of Hi-DMM

1c) Overview of Hi-DMM Workflow

2. How does Hi-DMM work? Implementation of Hi-DMM

2a) Hardware: DMM Componets
    -> Allocators
       -> Basic Buddy Tree
       -> Fast Buddy Tree Allocator
       -> Pre-Allocation Tree Allocator
       -> Hybrid Allocator
       -> K-Way Tree Allocator
    -> Other components
       -> DMM Heaps
       -> Interconnections and Interactions

2b) Software: Source-Code-Level Transformation and Component Generation
    -> Analyzer - Compiler
       -> DMM Behavioral Analysis
       -> DMM Resource  Mapping
    -> Source Code Transformation and Project Generation
       -> Insertions and Replacements in Source code
       -> Loop Transformation in Source Code
       -> Tcl Script for Vivado Project Generation

3b) Insight: A Guide Line for Reading the Source Code of Hi-DMM

3. How to use Hi-DMM? User Manual

3a) Setting Up Hi-DMM
    -> LLVM, Python and Xilinx HLx
    -> Directories in Hi-DMM Project
    -> Rebuild Allocator IPs

3b) Handle your work with Hi-DMM
    -> Input files for Hi-DMM
       -> Source Code and Some Requirements for It
       -> User Constraint Files
    -> Runtime Information and Terminal Input
       -> Options and Arguments
       -> Necessary Parameters of Heaps (MAU Size, Priority and Number of Heaps)
       -> Tcl Script for Vivado Project Generation
    -> Final Project Generation and Test

4. FAQ or Suggestion from Developer? More