cleanup: move all the python files to a new folder

Fix: 26155292

To make the local root folder cleaner, I created a new folder, tbm/, and moved
all the .py files to it (and one .fbs file).  I updated README.md to reflect
this change (and a few renames that were not updated before).

Change-Id: I350004e79ca56960f9afc6f1dd6fd126e68a1b2e
20 files changed
tree: ac9f5c35ba5a5391c0b1002075f63bc07a898884
  1. config/
  2. tbm/
  3. README.md
README.md

Trace Based Model (TBM)

Code structure

Executables:

  • tbm/gentrace-spike.py - reads a Spike trace and reformat it. We expect to support other functional simulators, each of those will have its own gentrace-*.py file.
  • tbm/tbm.py - runs a trace in TBM; the main tool here.
  • tbm/merge-counters.py - merges results from multiple runs of TBM.

Python modules:

NOTE: currently TBM includes a single model for each of the building block units. The intention is that other models will be added in the future to cover uArchs that are not supported by the current models. interfaces.py defines (what we expect to be) the API of the building blocks.

  • tbm/buffered_queue.py - defines Queue, FIFO queue model.
  • tbm/counter.py - performance counters.
  • tbm/cpu.py - defines CPU, a cpu model (includes instances of FetchUnit, SchedUnit, ExecUnit, and MemorySystem).
  • tbm/disassembler.py - bits we need to elaborate Spike traces.
  • tbm/exec_unit.py - defines ExecUnit, an execution unit model (includes instances of ScalarPipe, VectorPipe, scoreboard.Preemptive and scoreboard.VecPreemptive).
  • tbm/fetch_unit.py - defines FetchUnit.
  • tbm/functional_trace.py - reads a trace (as generated by gentrace-*.py).
  • tbm/instruction.fbs - FlatBuffer schema for the Instruction data class (used for saving elaborated traces). The FBInstruction.Instruction module is generated from this file.
  • tbm/instruction.py - defines Instruction, a data class representing a single instruction instance in the trace.
  • tbm/interfaces.py - defines the internal API. This will be more important when we add different models (i.e. implementations) for the various units.
  • tbm/memory_system.py - defines MemorySystem, a main memory and cache hierarchy model.
  • tbm/scalar_pipe.py - defines ScalarPipe, a scalar functional unit model.
  • tbm/sched_unit.py - defines SchedUnit, an issue queue model.
  • tbm/scoreboard.py - defines Preemptive and VecPreemptive, scoreboard models.
  • tbm/tbm_options.py - command line parsing for tbm.py.
  • tbm/utilities.py - general purpose constructs.
  • tbm/vector_pipe.py - defines VectorPipe, a vector functional unit model.

Other files:

  • config/uarch.schema.json - JSON schema for uArch configuration files.
  • config/rvv-simple.yaml - a uArch configuration example.