Map

Map

The Map holds both a TopLevel and a Taskgraph. An additional Mapping type records how the taskgraph maps to the toplevel.

mutable struct Map{D, T<:RuleSet}

Fields

  • ruleset

    RuleSet for assigning taskgraph to toplevel.

  • toplevel

    TopLevel{A,D} - The TopLevel to be used for the mapping.

  • taskgraph

    The Taskgraph to map to the toplevel.

  • options

  • mapping

    How taskgraph is mapped to toplevel.

  • metadata

Documentation

Top level data structure. Summary of parameters:

  • T - The RuleSet used to control placement and routing.
  • D - The number of dimensions in the architecture (will usually be 2 or 3).

Method List

Map(ruleset, toplevel, taskgraph, options, mapping, metadata)

defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Map/Map.jl:42.

Map(ruleset, toplevel, taskgraph; options, metadata)

defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Map/Map.jl:67.

source
mutable struct Mapping

Fields

  • nodes

    Dict{String, Path{Component}} - Takes a node name and returns the path to the Component where that node is mapped.

  • edges

    Vector{SparseDiGraph{Union{Path{Link},Path{Port},Path{Component}}}} - Takes a integer index for an edge in the parent Taskgraph and returns a graph whose node types Paths to architectural compoennts.o

    Edge connectivity in the graph describes how the TaskgraphEdge is routed through the TopLevel

Documentation

Record of how Taskgraphs and TaskgraphEdges in a Taskgraph map to a TopLevel.

Method List

Mapping(nodes, edges)
Mapping(nodes, edges)

defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Map/Map.jl:13.

source

Verification Routines

Verify the result of placement and routing.

check_routing(map; quiet)

Check routing in map. Return true if map passes all checks. Otherwise, return false. If quiet = false, print status of each test to STDOUT.

Checks performed:

source
check_placement(map)

Ensure that each TaskgraphNode is mapped to a valid component.

source
check_ports(m::Map{A}) where A

Check the source and destination ports for each task in m. Perform the following checks:

  • Each source and destination port for each task channel is valid.
  • All sources and destinations for each task channel has been assigned to a port.
source
check_capacity(m::Map)

Performs the following checks:

  • The number of channels assigned to each routing resource in m.toplevel does not exceed the stated capacity of that resource.
source
check_architecture_connectivity(m::Map)

Traverse the routing for each channel in m.taskgraph. Check:

  • The nodes on each side of an edge in the routing graph are actually connected in the underlying architecture.
source
check_routing_connectivity(m::Map)

Perform the following check:

  • Check that the routing graph for each channel in m.taskgraph is weakly connected.
  • Ensure there is a valid path from each source of the routing graph to each destination of the routing graph.
source
check_architecture_resources(map::Map)

Traverse the routing graph for each channel in m.taskgraph. Check:

  • The routing resources used by each channel are valid for that type of channel.
source