WO2008093123A2 - Encoding and decoding methods - Google Patents

Encoding and decoding methods Download PDF

Info

Publication number
WO2008093123A2
WO2008093123A2 PCT/GB2008/000367 GB2008000367W WO2008093123A2 WO 2008093123 A2 WO2008093123 A2 WO 2008093123A2 GB 2008000367 W GB2008000367 W GB 2008000367W WO 2008093123 A2 WO2008093123 A2 WO 2008093123A2
Authority
WO
WIPO (PCT)
Prior art keywords
path
node
paths
encoding
nodes
Prior art date
Application number
PCT/GB2008/000367
Other languages
French (fr)
Other versions
WO2008093123A3 (en
Inventor
Tughrul Arslan
Ioannis Nousias
Sami Khawam
Mark John Milward
Mark Muir
Ying Yi
Original Assignee
The University Court Of The University Of Edinburgh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by The University Court Of The University Of Edinburgh filed Critical The University Court Of The University Of Edinburgh
Publication of WO2008093123A2 publication Critical patent/WO2008093123A2/en
Publication of WO2008093123A3 publication Critical patent/WO2008093123A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/06Deflection routing, e.g. hot-potato routing

Definitions

  • the present invention relates to encoding and decoding methods and in particular to path encoding schemes, for example, for use in microprocessor architectures.
  • Configurable electronic hardware comprising a network of inter-connectable nodes, such as a configurable logic network, is typically configured by rendering routing having a predetermined pattern on the hardware.
  • the rendered routing connects nodes of the network to configure the electronic hardware.
  • Techniques to determine the paths that the routing is to follow are known. Such techniques form part of synthesis tools used, for example, to determine the configuration of metallization layers to be deposited in semiconductor fabrication processes and to determine the configuration of programmable electronic devices, such as gate arrays.
  • a method of encoding a path between nodes comprising the steps of: determining a path from a start node, the path extending via a plurality of nodes; and encoding at least a portion of the path in dependence on: a location (e.g. coordinates) of the start node; and a rule to define the path from the start node to an end node.
  • Encoding a path provides for performance benefits, such as an improvement in the efficiency of a bit stream describing the topology of interconnected nodes that may be used in a routing rendering process.
  • a bit stream describing a topology is, in contrast, an explicit expression of the paths making up the topology and thus does not seek to reduce the number of bits in or the number of cycles involved in making use of a given representation.
  • the rule defines a path direction along an axis; and a sequence of displacements of explicit edges, each explicit edge being between a respective pair of the nodes along the path and each explicit edge being parallel to the axis.
  • Encoding at least a portion of the path may comprise specifying a displacement with respect to the axis.
  • one displacement may be specified with respect to one of the start node and another displacement.
  • the present invention may find application in the rendering of routing for reconfigurable topologies.
  • the nodes may form at least part of a reconfigurable topology.
  • the nodes may form part of a dynamically reconfigurable topology.
  • Dynamic reconfiguration of a topology may find application in reconfiguration of electronic hardware when in use.
  • the capability to provide for dynamic reconfiguration is a notable advantage of the present invention compared with the prior art.
  • the rule is encoded with a fixed size for a given distance from the start node to the end node along the axis.
  • the nodes are arranged in a lattice.
  • the path is monotonic to the axis.
  • the path may be encoded in dependence: on a number of edges; and a distance between the penultimate node on the path and the end node on the path.
  • a path may be characterised and thus encoded on the basis of the location of a start node, the number of edges and the distance (e.g. in terms of a number of nodes) between the penultimate and end nodes on the path to thereby provide for a particularly bit efficient characterisation.
  • the displacements are in a direction perpendicular to the axis.
  • the step of encoding further comprises the step of specifying at least one switch point of the axis in the sequence of displacements of the explicit edges.
  • the method of encoding may be operable in electronic apparatus .
  • the step of encoding at least a portion of the path may further comprise specifying at least one turn symbol, a turn' symbol defining a direction of a path from a node, e.g. the start node or any other node over which the path extends.
  • the turn symbol may define the direction of the path from the node with respect to a direction of a portion of the path to the node.
  • the portion of the path to the node may be an edge.
  • the turn symbol may define the direction of the path from the node as one of a right direction, a left direction and no change in direction with respect to the direction of the portion of the path to the node.
  • the method may comprise: determining a plurality of paths, each path extending over a plurality of nodes between a start node and an end node, the plurality of nodes over which the plurality of paths extend defining a network; and encoding each of the plurality of paths as a series of turn symbols.
  • the encoded plurality of paths may be stored as a Look-Up Table (LUT) .
  • the method may further comprise: analysing the encoded paths to determine at least one sequence of turn symbols common to at least two different encoded paths; and representing the common sequence of turn symbols as a pattern reuse symbol.
  • the pattern reuse symbol may comprise an index, which represents a location within an encoded series of turn symbols, and a length, which represents a number of symbols in the common sequence of turn symbols.
  • the step of encoding may comprise specifying a direction of an edge from the start node.
  • a further path may be represented as a concatenation of at least two of said plurality of paths.
  • a path shape that is not to be found in the encoded series of turn symbols or a path that is longer than a maximum length of path in the encoded series of turn symbols may be represented.
  • the further path may comprise first and second adjoining paths and an edge at an end node of the first path may form an edge at a start node of the second path.
  • the method may further comprise defining a plurality of segments each comprising turn symbols in the series of turn symbols encoding each of the plurality of paths.
  • the segments may be defined in dependence on level of usage of subsets of paths represented within the encoded series of turn symbols .
  • a first segment may comprise paths likely to be used at one time and a second segment may comprise paths likely to be used at another time.
  • Each path within a segment may be defined at least in part as an offset with respect to a reference point of the segment. Segmenting the series of turn symbols in this fashion can provide for efficiency of access to the paths.
  • a method of decoding a path between nodes the path being encoded according to the first aspect, and wherein each explicit edge has a start and an end with respect to the specified path direction
  • the method comprising the steps, for each pair of current and next explicit edges adjacent in the sequence, of: connecting the node at the start of the current explicit edge to the node at the end of the current explicit edge; connecting the node at the end of the current explicit edge to the node at the start of the next explicit edge using the specified axis and displacements of the current and next explicit edges; and connecting the node at the start of the next explicit edge to the node at the end of the next explicit edge .
  • the step connecting the node at the end of the current explicit edge to the node at the start of the next explicit edge comprises the step of connecting via a chain of at least one intermediate node.
  • the step of connecting via a chain of at least one intermediate node comprises the step of connecting along a sequence of implicit edges, the implicit edges being perpendicular to the axis.
  • the method further comprises the step of switching the axis responsive to the specified switch point of the axis.
  • a method of forming a data structure representing a plurality of paths extending over a , network of nodes, each path having a termination point comprising: determining at least one difference in usage criterion of different termination points; forming a plurality of clusters, each cluster comprising data for a plurality of paths selected in dependence on the determined at least one difference in usage criterion; and forming the data structure from the plurality of clusters.
  • the termination point may be what is termed an insertion point. Gaining access to a path at an end node insertion point may be advantageous in topologies where each input node is driven by one output node and each output node drives several input nodes .
  • the insertion point may be an input node.
  • the termination point may be an end node of a path.
  • the clusters may be disposed in the data structure in dependence on the determined at least one difference in usage criterion.
  • the usage criterion may comprise at least one of: whether or not the termination point is to be used; when a termination point is to be used; and frequency of use of a termination point.
  • the disposition of the clusters in the data structure may be irregular.
  • the data structure may have the form of an array with each cluster forming a column of the array and data for each path in the cluster forming a respective row in the column. Irregularity in the data structure may have the form of differences in column length.
  • the data for each path may comprise an index for the termination point for the path and a path packet.
  • the path packet may comprise data representing a path that has been encoded according to the first aspect of the present invention.
  • the disposition of the clusters in the data structure may be regular.
  • the data structure may have a hierarchical form.
  • the data structure may comprise a plurality of levels, each level comprising a plurality of groupings of clusters and a grouping in each level from a top level to a bottom level in the hierarchy containing data representing a smaller number of paths than a grouping in a superior level.
  • a first, top level may comprise four top level groupings each containing data representing sixteen paths
  • a second level may comprise four second level groupings each containing data representing four paths .
  • the hierarchy may be symmetrically clustered.
  • the method may comprise encoding a cluster field for a cluster above a lowest level in the hierarchy, the cluster field specifying which of the clusters inferior to the cluster (i.e. lower in the hierarchy) contain an active termination point.
  • the method may comprise encoding a cluster field for a cluster at a lowest level in the hierarchy, the cluster field specifying which of the data representing paths has an active termination point.
  • the cluster fields are ordered corresponding to their level in the hierarchy.
  • grouping to form a cluster is based on statistical analysis of node utilisation.
  • the method of forming a data structure may be operable in electronic apparatus .
  • a method of encoding states of elements comprising the steps of: grouping the elements into a hierarchy of clusters, the hierarchy terminating at its lowest level in leaf elements; for each cluster above the lowest level in the hierarchy, where the cluster has at least one leaf element having a state, encoding a cluster field specifying which of the cluster's sub-clusters contain the at least one active element having the state; and for each cluster at the lowest level in the hierarchy, where the cluster has at least one leaf element having a state, encoding a cluster field specifying which of the cluster's leaf elements contain the at least one active element having the state.
  • the elements form a lattice.
  • the state comprises the activity of the element.
  • the elements are associated with physical nodes.
  • the association between the elements and the physical nodes is an indirect position mapping.
  • a cluster may contain elements associated with physical nodes that are not neighbouring.
  • the method may comprise analysing insertion nodes and grouping clusters in dependence upon the analysis of the insertion nodes .
  • an active element comprises the source node of the first aspect.
  • At least one computer program comprising program instructions for causing at least one computer to perform the method according to the first aspect.
  • At least one computer program comprising program instructions for causing at least one computer to perform the method according to the second aspect.
  • At least one computer program comprising program instructions for causing at least one computer to perform the method according to the third aspect.
  • the at least one computer program is embodied on a recording medium or read-only memory, stored in at least one computer memory, or carried on an electrical carrier signal.
  • Figures Ia to Ic show three different path formation scenarios;
  • Figures 2a and 2b show explicit and implicit edges and nodes on single monotonic paths;
  • Figure 3a shows displacement of controllable edges with respect to an axis and
  • Figure 3b shows displacement of controllable edges with respect to one another;
  • Figures 4a to 4c show an embodiment of a fully connected, five port switch box;
  • Figures 5a and 5b show path formation according to the embodiment of Figures 4a to 4c;
  • Figure 6 shows turn-based format with split-point;
  • Figure 7 shows chain encoded turn-based format;
  • Figure 8 is a representation of a symbol chain;
  • Figure 9 shows an embodiment of a hierarchical enable-matrix;
  • Figure 10 represents header decomposition in a three-level hierarchical enable matrix;
  • Figure 11 shows hierarchical partitioning of a loading network;
  • Figure 12 represents a configuration context split into rows;
  • Figures 13 and 14 show non-
  • a node is a routing unit within the network, such as an s-box (switch box)
  • an edge is a link/wire that connects two nodes, which may be unidirectional.
  • a path is the chain of edges and nodes that form a multi-hop connection from the source to the destination node.
  • the path-encoding reduces the amount of information required to represent a point-to-point multi-hop connection. As such it can be seen as a compression algorithm specifically applied to this domain.
  • the path-encoding offers an abstract representation of a path that, as shown below, can reduce the overhead of routing establishment (rendering) on a direct network topology and due to its fixed size field is very suitable for hardware implementations.
  • the path-encoding provides a representation that has a fixed size for a given source to destination distance on the monotonic axis, where any combination of displacement (within their defined range) will produce a valid path from source to destination.
  • the path-encoding scheme exploits the intrinsic characteristics of a valid point to point connection on a given interconnection lattice. Between two points in the lattice there is a finite number of possible paths that can form a point-to-point (multi-hop) connection. Some of these paths are practically useless, such as those that form loops as shown in Figure Ia. Others are too inefficient to be considered a valuable solution, such as those that form obscure mazes. Finally there is a subset of paths that are relatively short and are fine candidates for a selected solution.
  • Any given point-to-point connection on a multi-hop network has at least two nodes that are fixed, the source and the destination node.
  • the chain of participating intermediate nodes defines the final path of the connection. Looking at a single-monotonic path, there are a number of intermediate nodes that are "forced" to participate to ensure a continuous path. These nodes are named here implicit nodes.
  • the rest of the nodes that play an important role to the formation of the path are called explicit nodes.
  • an edge that emerges from an implicit node is also called implicit edge. Edges that emerge from explicit nodes are called explicit edges or, as discussed below, controllable segments.
  • Figures 2a and 2b show two example single-monotonic paths for the same point-to-point connection.
  • Figure 2a shows a path that is monotonic along the y-axis and
  • Figure 2b shows a path that is monotonic along the x-axis.
  • Explicit nodes are shown as by dashed lines while explicit edges are shown as arrows.
  • controllable edges In order to form a single-monotonic path the only information required is the location of the source node, the relative position of the explicit nodes or edges (controllable edges) , plus the direction of the path on the monotonic axis in case of a toroidal topology.
  • y-axis monotonic example of Figure 2a there are four controllable edges. Each of these controllable edges can be placed in any position within a row zone (designated here as z x ) .
  • the position of each controllable edge can be expressed as the displacement from the reference line.
  • the example path can be expressed as two flags, one that defines the monotonic axis (x or y) and one for the path direction (positive/negative) ; and in case of a toroidal topology, one coordinate and a vector of 4 signed integers.
  • the above set of information forms the path-encoding packet and for a 2D-mesh path is as follows: [m] [dir] [S(x s ,y s )] [d 0 ...d n _i] (D
  • n is the number of controllable edges on the monotonic axis .
  • S(x s ,Ys) is the source field and uses Iog2 (X) +log 2 (Y) bits (rounded up to the nearest integer) , where X and Y are the array's dimensions.
  • n _i is the displacements field and uses of n*log2 (X) or n*log2 (Y) bits, depending the monotonic axis.
  • This packet forms the single information that is required to unfold and thus render a path on the array.
  • the example path of Figure 3a will have a path-encoding packet such as the following one:
  • Figure 3b shows an example path in which displacement of the first controllable edge is expressed as the displacement from the start node and displacement of each subsequent controllable edge is expressed as the displacement from the previous controllable edge.
  • the path encoding packet is:
  • each node is a form of fully connected or partially connected switch-box.
  • Figures 4a to 4c show an embodiment of a fully connected, five port switch box.
  • a partially connected switch-box introduces extra routing constraints that can be used to further reduce the information required to express a path.
  • Figure 4a shows a typical 5-port fully connected switch- box 30.
  • Figure 4b shows a connection matrix where the switchbox of Figure 4a is used in a given intra- connection configuration.
  • the intra-connection configuration is represented in Figure 4c.
  • the switch- box can form the bases of an interconnection network of a reconfigurable fabric.
  • the switch-box of Figure 4 has four pairs of unidirectional network ports, designated as North (N), East (E), South (S) and West (W) and one pair of unidirectional terminal ports is shown as Terminal (T) .
  • a switch-box may have more than one terminal attached to it, though for simplicity, the example of Figure 4 has only one terminal per switch-box.
  • a multi-dimensional network will have switch-boxes with more than four network ports.
  • Each output can be driven by any of the switch-box's inputs. Of course an output can only be driven by one input and only one. This is shown in Figure 4b. When an output is assigned to an input slot, the rest of the options are disabled. One input can drive more than one output, as in the case of the North input port and South and East output ports.
  • Figure 5a shows an example path specified in terms of displacement of controllable edges from a reference line (or axis) and Figure 5b represents a corresponding switch box formation for the path that uses the switch box of Figures 4a to 4c.
  • the above decoding procedure can be performed in a dedicated unit before loading the result on the reconfigurable fabric (off-line routing) or on-the-fly using a set of distributed decoders, which accept the path-packets directly to perform a collective path rendering (on-line routing) .
  • An off-line routing is simpler and smaller.
  • an on-line routing can be much faster, assuming the appropriate bandwidth is available. Compressibility of displacement-based format
  • Each of the outputs of the example switch-box requires at least 2-bits to distinguish between the 4 possible intra- connections .
  • an extra output state for the un-driven case is required, which normally ties the output to a logical zero. Even though this can have a significant impact to the total configuration bits required, it's ignored here for clarity.
  • each switch-box requires configuration of 10-bits in total.
  • the uncompressed configuration size for the above scenario is 640-bits no mater how simple or complex the active connections are.
  • the displacement-based path-encoding format ensures the formation of valid paths for any combination of its fields. This is a very useful feature to construct meta- heuristic routing algorithms. Even though for a given source-destination distance the field size is always the same, in a given set of connections with various connection distances we end up with a variety of field sizes. Decoding those varying field sizes in hardware can be complex. A compromise is to choose the number of supported segments and have a fixed field size. This solves the problem of hardware complexity, but reduces the overall bit efficiency.
  • a more simplified derivative format is that of the turn- based one, which describes one hop at a time. It uses three turn symbols: right-turn (+) , left-turn (-), no- turn (0) . With those symbols, the turn-based format can describe the shape of a path and is not limited to monotonic paths. However, it does not ensure the formation of valid path for every symbol combinations. Furthermore, on average it requires more information to describe a path compare to the displacement-based format. Nonetheless, due to the reduced amount of symbols it becomes a good candidate for a dictionary-like based encoding.
  • Figure 6 shows an example path encoded using the turn-based format. The uni-directional connection from 0 (output) to I (input) is meant to be rendered here in reverse order, starting from the I node.
  • the insertion point is the node I. This is done for practical reasons. An input can be driven by one output, while and output can drive several inputs. Choosing inputs as insertion point, for online routing, increases parallelism, otherwise we would need more than one injection per insertion point.
  • path shape The main body of the path, which is referred to here as path shape, is described as a sequence of turn symbols, while the direction of the starting edge is expressed explicitly.
  • path shape a sequence of turn symbols
  • the direction of the starting edge is expressed explicitly.
  • FIG. 6 this would involve rotating the shown path through 360 degrees in four 90 degree steps about the start node, O.
  • a long list of turn symbols based on a set of paths is formed, with the list of turn symbols normally defining many paths having the same shape.
  • the length of the list or chain of turn symbols can be reduced by exploiting the symbol pattern reuse that follows from the presence of the multiple same shape paths.
  • the reduction in the chain length involves expressing the shape of a path from the set of paths in terms of a starting index in the chain and a length of the symbol pattern representing the path shape.
  • Figure 7 shows such an example.
  • the index needs to be 8bit. However, the entire range might not be needed on every set of connections.
  • This set of paths form the active context. Within that context we might only require a small region of the chain.
  • a set of segments can be formed that provides enough coverage for any given active context. Doing so allows us to define a global segment for the context and have each path only define an offset within that context .
  • Figure 8 shows a 256 symbol chain, divided into 4 segments of 64 symbols. This results in using 6bits for each path, while having 2bits to define the segment for the entire set of path of an active context. The end result is potential significant bit efficiency.
  • the source field in (1) requires log 2 (X) +log2 (Y) bits per connection, which is 6-bits for an 8x8 array. As long as the active connections are less than or equal to 10, this scheme can be efficient in terms of bits. For 11 connections the source fields will occupy 66-bits in total for a 64-element array. For such active configurations it might be better to use a 64-bit enable- matrix which describes which nodes are active (enabled) .
  • Figure 9 shows an embodiment of a hierarchical enable- matrix, which provides another representation of the source nodes that are active within a lattice.
  • the example of Figure 9 uses again a 64-element array for simplicity. This kind of clustering offers a more balanced solution compared to the above described case.
  • the hierarchical symmetric clustering of the 8x8 lattice shown in Figure 9 has 4 elements per cluster.
  • the leaf sub-clusters are also the nodes of the lattice. There are in total 64 nodes for this example that would otherwise require 64-bits to specify which node is active and which is not.
  • each level of hierarchy requires (4 level ) bits as shown in Figure 10.
  • the enable matrix header is thus formed by ordering these fields in sequence as shown in Figure 10.
  • the header size is variable and in practice it is possible to reduce the number of total bits required to represent the active clusters. This is done by ignoring sub-clusters that are not active.
  • the hierarchical enable-matrix requires only 24-bits. A typical 20% of array activity requires a hierarchical enable-matrix of 48-bits on average.
  • the example header of Figure 9 is formed as follows. Out of the 4 level-1 clusters only two of them have at least on active node. These are cluster 0 and cluster 3 . To represent this as a bit sequence the above example uses a little-endian representation where the 0 th cluster is represented by the most significant bit (MSB) while the 3 rd cluster by the least significant bit (LSB) ; Thus for the above example the level-1 field is [1001] . Since clusteri and cluster have no active nodes they can simply be ignored. This is why level-2 field in Figure 9 has only two sub-fields, the first one for cluster 0 and the second one for cluster 3 . These sub-fields follow the same concept as for level-1 fields and similarly for level-3 fields.
  • MSB most significant bit
  • LSB least significant bit
  • each bit of a level-3 bit corresponds to one node.
  • Ones that are assigned a binary 1 are considered active and a path-encoding field (payload) should be present on the stream.
  • the order in which the level fields appear in the header also dictate the order in which the path-encoding fields should be placed in the bit-stream to maintain correct association.
  • each point-to-point connection is described as a set of path directives starting from the source to the destination node.
  • the encoded path is a compact information packet (unit) that can be loaded to the source node.
  • Path formation/rendering can be done on-the-fly in a wormhole-like fashion (asynchronous or synchronous) .
  • the number of source nodes is only a fraction of the total number of active nodes. Because of that the required number of parallel insertion points is reduced significantly. This opens the possibility for a less interconnected loading network, with smaller bandwidth requirements.
  • An example scenario with quarter of the bandwidth requirements of the fully connected loading network is shown in Figure 11.
  • the fully connected loading network requires 64 parallel fields. This could allow for loading of all nodes simultaneously.
  • the example hierarchically clustered network of Figure 11 has only 16 parallel fields which are evenly distributed across the array. This allows 16 loading simultaneous fields to each of the 16 level-2 clusters.
  • Each level-2 cluster encapsulates 4 nodes. To load all the nodes of a level-2 cluster it would require 4 cycles. This level of parallelism is sufficient enough for typical network utilisation (i.e. number of active point-to-point connections) .
  • clusters the numbers of cycles required to load a configuration depends on the number of active insertion points and where these are, as seen above.
  • an analysis can be applied to determine which insertion points to group together to form a cluster. This will provide clusters that may not be spatially contained in one region, but rather could be placed physically anywhere in the array in an irregular, asymmetric fashion. As such this approach represents a generalisation of the regular, symmetric approach described above with reference to Figure 10.
  • the irregular disposition of clusters of the present approach may introduce some extra complexity on the physical wiring to the clusters, but it improves the average loading time for a given placement.
  • the configuration context is split into rows, which are populated to differing extents, depending on the insertion points that are used.
  • Figure 12 shows an example context and its populated rows. As can be seen from Figure 12, each field contains a path encoded packet (i.e. path-field) and an insertion point index (i.e. IP address) for the cluster within which the field is grouped.
  • a non-monotonic path encoding needs to have means for altering its reference axis.
  • a y-monotonic path uses an x-reference axis and vice-versa.
  • the encoding must ensure valid formation of path, thus avoiding loops or collisions.
  • the example of Figures 13 and 14 adds an extension to the monotonic path-encoding that allows non- monotonic paths to be formed. This extension adds an extra field that can alter the line of reference. This is designated here as switch-point and an associated fixed- segment.
  • the associated fixed-segment ensures a valid path formation, thus avoiding loops and collisions, by introducing a unit displacement from the previous line of reference.
  • This extension adds on such a field to each controllable segment, which is only 1-bit wide.
  • the path-encoding technique introduces some new ideas in presenting routing information in a multi-hop direct network, which are summarised below.
  • connection is treated as a unit, easy to manipulate and store.
  • the representation ensures that any arbitrary combination of configuration will always render a valid point-to-point connection from the source to the desired destination. This can be handy when using heuristics since it reduces the search space to only the necessary landscape.
  • Reduced Bandwidth Requirements Path formation may only start from the corresponding source node.
  • the active insertion points can be significantly less than in raw format. Coupled with the fact that the information is very compact, the total bandwidth required is only a fraction of its original raw form.

Abstract

The present invention relates to a method of encoding a path between nodes. The method comprises a step of determining a path from a start node, the path extending via a plurality of nodes. The method also comprises the step of encoding a portion of the path by specifying: the coordinates of the start node; and a rule to define the path from the start node to an end node.

Description

Encoding and decoding methods
Field of invention
The present invention relates to encoding and decoding methods and in particular to path encoding schemes, for example, for use in microprocessor architectures.
Background to invention
Configurable electronic hardware comprising a network of inter-connectable nodes, such as a configurable logic network, is typically configured by rendering routing having a predetermined pattern on the hardware. Thus, the rendered routing connects nodes of the network to configure the electronic hardware. Techniques to determine the paths that the routing is to follow are known. Such techniques form part of synthesis tools used, for example, to determine the configuration of metallization layers to be deposited in semiconductor fabrication processes and to determine the configuration of programmable electronic devices, such as gate arrays. Statement of invention
The present inventors have conceived a new approach that may be applied to the rendering of routing. In accordance with a first aspect of the invention devised by the present inventors, there is provided a method of encoding a path between nodes, the method comprising the steps of: determining a path from a start node, the path extending via a plurality of nodes; and encoding at least a portion of the path in dependence on: a location (e.g. coordinates) of the start node; and a rule to define the path from the start node to an end node.
Encoding a path according to the invention provides for performance benefits, such as an improvement in the efficiency of a bit stream describing the topology of interconnected nodes that may be used in a routing rendering process. According to known approaches, a bit stream describing a topology is, in contrast, an explicit expression of the paths making up the topology and thus does not seek to reduce the number of bits in or the number of cycles involved in making use of a given representation.
Preferably, the rule defines a path direction along an axis; and a sequence of displacements of explicit edges, each explicit edge being between a respective pair of the nodes along the path and each explicit edge being parallel to the axis. Encoding at least a portion of the path may comprise specifying a displacement with respect to the axis. Alternatively, one displacement may be specified with respect to one of the start node and another displacement.
The present invention may find application in the rendering of routing for reconfigurable topologies. Thus, the nodes may form at least part of a reconfigurable topology.
More specifically, the nodes may form part of a dynamically reconfigurable topology. Dynamic reconfiguration of a topology may find application in reconfiguration of electronic hardware when in use. The capability to provide for dynamic reconfiguration is a notable advantage of the present invention compared with the prior art.
Preferably, the rule is encoded with a fixed size for a given distance from the start node to the end node along the axis.
Preferably, the nodes are arranged in a lattice.
Preferably, the path is monotonic to the axis.
Alternatively or in addition, where the path is monotonic in at least one of two orthogonal directions, the path may be encoded in dependence: on a number of edges; and a distance between the penultimate node on the path and the end node on the path. A path may be characterised and thus encoded on the basis of the location of a start node, the number of edges and the distance (e.g. in terms of a number of nodes) between the penultimate and end nodes on the path to thereby provide for a particularly bit efficient characterisation.
Preferably, the displacements are in a direction perpendicular to the axis.
Preferably, the step of encoding further comprises the step of specifying at least one switch point of the axis in the sequence of displacements of the explicit edges.
The method of encoding may be operable in electronic apparatus .
Alternatively or in addition, the step of encoding at least a portion of the path may further comprise specifying at least one turn symbol, a turn' symbol defining a direction of a path from a node, e.g. the start node or any other node over which the path extends.
More specifically, the turn symbol may define the direction of the path from the node with respect to a direction of a portion of the path to the node. The portion of the path to the node may be an edge.
More specifically, the turn symbol may define the direction of the path from the node as one of a right direction, a left direction and no change in direction with respect to the direction of the portion of the path to the node.
Alternatively or in addition, the method may comprise: determining a plurality of paths, each path extending over a plurality of nodes between a start node and an end node, the plurality of nodes over which the plurality of paths extend defining a network; and encoding each of the plurality of paths as a series of turn symbols. The encoded plurality of paths may be stored as a Look-Up Table (LUT) .
More specifically, the method may further comprise: analysing the encoded paths to determine at least one sequence of turn symbols common to at least two different encoded paths; and representing the common sequence of turn symbols as a pattern reuse symbol. The pattern reuse symbol may comprise an index, which represents a location within an encoded series of turn symbols, and a length, which represents a number of symbols in the common sequence of turn symbols.
Alternatively or in addition, where a path between a start node and an end node is defined by means of turn symbols, the step of encoding may comprise specifying a direction of an edge from the start node.
Alternatively or in addition, where a plurality of paths are encoded as series of turn symbols, a further path may be represented as a concatenation of at least two of said plurality of paths. Thus, a path shape that is not to be found in the encoded series of turn symbols or a path that is longer than a maximum length of path in the encoded series of turn symbols may be represented.
More specifically, the further path may comprise first and second adjoining paths and an edge at an end node of the first path may form an edge at a start node of the second path. Alternatively or in addition, the method may further comprise defining a plurality of segments each comprising turn symbols in the series of turn symbols encoding each of the plurality of paths.
More specifically, the segments may be defined in dependence on level of usage of subsets of paths represented within the encoded series of turn symbols . Thus, a first segment may comprise paths likely to be used at one time and a second segment may comprise paths likely to be used at another time. Each path within a segment may be defined at least in part as an offset with respect to a reference point of the segment. Segmenting the series of turn symbols in this fashion can provide for efficiency of access to the paths.
According to a second aspect of the present invention, there is provided a method of decoding a path between nodes, the path being encoded according to the first aspect, and wherein each explicit edge has a start and an end with respect to the specified path direction, the method comprising the steps, for each pair of current and next explicit edges adjacent in the sequence, of: connecting the node at the start of the current explicit edge to the node at the end of the current explicit edge; connecting the node at the end of the current explicit edge to the node at the start of the next explicit edge using the specified axis and displacements of the current and next explicit edges; and connecting the node at the start of the next explicit edge to the node at the end of the next explicit edge .
Optionally, the step connecting the node at the end of the current explicit edge to the node at the start of the next explicit edge comprises the step of connecting via a chain of at least one intermediate node.
Preferably, the step of connecting via a chain of at least one intermediate node comprises the step of connecting along a sequence of implicit edges, the implicit edges being perpendicular to the axis.
Preferably, the method further comprises the step of switching the axis responsive to the specified switch point of the axis.
According to a third aspect of the present invention, there is provided a method of forming a data structure representing a plurality of paths extending over a , network of nodes, each path having a termination point, the method comprising: determining at least one difference in usage criterion of different termination points; forming a plurality of clusters, each cluster comprising data for a plurality of paths selected in dependence on the determined at least one difference in usage criterion; and forming the data structure from the plurality of clusters. The termination point may be what is termed an insertion point. Gaining access to a path at an end node insertion point may be advantageous in topologies where each input node is driven by one output node and each output node drives several input nodes . Thus , the insertion point may be an input node. More specifically, the termination point may be an end node of a path.
The clusters may be disposed in the data structure in dependence on the determined at least one difference in usage criterion.
Alternatively or in addition, the usage criterion may comprise at least one of: whether or not the termination point is to be used; when a termination point is to be used; and frequency of use of a termination point.
Alternatively or in addition, the disposition of the clusters in the data structure may be irregular.
Alternatively or in addition, the data structure may have the form of an array with each cluster forming a column of the array and data for each path in the cluster forming a respective row in the column. Irregularity in the data structure may have the form of differences in column length.
More specifically, the data for each path may comprise an index for the termination point for the path and a path packet. The path packet may comprise data representing a path that has been encoded according to the first aspect of the present invention. Alternatively or in addition, the disposition of the clusters in the data structure may be regular.
Alternatively or in addition, the data structure may have a hierarchical form.
More specifically, the data structure may comprise a plurality of levels, each level comprising a plurality of groupings of clusters and a grouping in each level from a top level to a bottom level in the hierarchy containing data representing a smaller number of paths than a grouping in a superior level. Thus, for example, a first, top level may comprise four top level groupings each containing data representing sixteen paths, and a second level may comprise four second level groupings each containing data representing four paths .
Alternatively or in addition, the hierarchy may be symmetrically clustered.
Alternatively or in addition, the method may comprise encoding a cluster field for a cluster above a lowest level in the hierarchy, the cluster field specifying which of the clusters inferior to the cluster (i.e. lower in the hierarchy) contain an active termination point.
More specifically, the method may comprise encoding a cluster field for a cluster at a lowest level in the hierarchy, the cluster field specifying which of the data representing paths has an active termination point.
Preferably, the cluster fields are ordered corresponding to their level in the hierarchy. Preferably, grouping to form a cluster is based on statistical analysis of node utilisation.
The method of forming a data structure may be operable in electronic apparatus .
Further embodiments of the third aspect of the present invention may comprise one or more features of the first or second aspects of the present invention.
According to a further aspect of the present invention, there is provided a method of encoding states of elements, comprising the steps of: grouping the elements into a hierarchy of clusters, the hierarchy terminating at its lowest level in leaf elements; for each cluster above the lowest level in the hierarchy, where the cluster has at least one leaf element having a state, encoding a cluster field specifying which of the cluster's sub-clusters contain the at least one active element having the state; and for each cluster at the lowest level in the hierarchy, where the cluster has at least one leaf element having a state, encoding a cluster field specifying which of the cluster's leaf elements contain the at least one active element having the state.
Preferably, the elements form a lattice. Preferably, the state comprises the activity of the element. Preferably, the elements are associated with physical nodes. Optionally, the association between the elements and the physical nodes is an indirect position mapping. Optionally, a cluster may contain elements associated with physical nodes that are not neighbouring. The method may comprise analysing insertion nodes and grouping clusters in dependence upon the analysis of the insertion nodes . Preferably, an active element comprises the source node of the first aspect.
Further embodiments of the further aspect of the present invention may comprise one or more features of the first or second aspects of the present invention.
According to a fourth aspect of the present invention there is provided at least one computer program comprising program instructions for causing at least one computer to perform the method according to the first aspect.
According to a fifth aspect of the present invention there is provided at least one computer program comprising program instructions for causing at least one computer to perform the method according to the second aspect.
According to a sixth aspect of the present invention there is provided at least one computer program comprising program instructions for causing at least one computer to perform the method according to the third aspect.
Preferably, the at least one computer program is embodied on a recording medium or read-only memory, stored in at least one computer memory, or carried on an electrical carrier signal. Brief description of the drawings
Further features and advantages of the present invention will become apparent from the following specific description, which is given by way of example only and with reference to the accompanying drawings, in which: Figures Ia to Ic show three different path formation scenarios; Figures 2a and 2b show explicit and implicit edges and nodes on single monotonic paths; Figure 3a shows displacement of controllable edges with respect to an axis and Figure 3b shows displacement of controllable edges with respect to one another; Figures 4a to 4c show an embodiment of a fully connected, five port switch box; Figures 5a and 5b show path formation according to the embodiment of Figures 4a to 4c; Figure 6 shows turn-based format with split-point; Figure 7 shows chain encoded turn-based format; Figure 8 is a representation of a symbol chain; Figure 9 shows an embodiment of a hierarchical enable-matrix; Figure 10 represents header decomposition in a three-level hierarchical enable matrix; Figure 11 shows hierarchical partitioning of a loading network; Figure 12 represents a configuration context split into rows; and Figures 13 and 14 show non-monotonic path encoding.
Specific description To assist in explaining the path-encoding scheme the following examples make use of a 2D-mesh lattice. The path-encoding technique applies to toroidal topologies as well as any other form of multi-hop direct network topology. In the following examples a node is a routing unit within the network, such as an s-box (switch box) , while an edge is a link/wire that connects two nodes, which may be unidirectional. A path is the chain of edges and nodes that form a multi-hop connection from the source to the destination node.
The path-encoding reduces the amount of information required to represent a point-to-point multi-hop connection. As such it can be seen as a compression algorithm specifically applied to this domain.
Importantly, the path-encoding offers an abstract representation of a path that, as shown below, can reduce the overhead of routing establishment (rendering) on a direct network topology and due to its fixed size field is very suitable for hardware implementations.
More importantly, the path-encoding provides a representation that has a fixed size for a given source to destination distance on the monotonic axis, where any combination of displacement (within their defined range) will produce a valid path from source to destination.
The Path-Encoding Technique
The path-encoding scheme exploits the intrinsic characteristics of a valid point to point connection on a given interconnection lattice. Between two points in the lattice there is a finite number of possible paths that can form a point-to-point (multi-hop) connection. Some of these paths are practically useless, such as those that form loops as shown in Figure Ia. Others are too inefficient to be considered a valuable solution, such as those that form obscure mazes. Finally there is a subset of paths that are relatively short and are fine candidates for a selected solution.
Out of the three cases shown in Figures Ia to Ic only the last two cases form valid paths. The second case shown in Figure Ib, even though valid, covers a large set of interconnection resources and thus forms very long and inefficient path. The third case shown in Figure Ic is only a subset of the available valid solutions. This case is characterised by its single monotonic style, in one of the two axes. A single monotonic path is one that maintains a given direction on one of the two axes, in contrast to a fully monotonic one in which both axes maintain a given direction. The latter ones also define a set of paths with optimum length for a given direction choice. Note that in a multi-dimensional environment only one dimension of the path needs to be monotonic to be considered a single monotonic path.
Any given point-to-point connection on a multi-hop network has at least two nodes that are fixed, the source and the destination node. The chain of participating intermediate nodes defines the final path of the connection. Looking at a single-monotonic path, there are a number of intermediate nodes that are "forced" to participate to ensure a continuous path. These nodes are named here implicit nodes. The rest of the nodes that play an important role to the formation of the path are called explicit nodes. Similarly an edge that emerges from an implicit node is also called implicit edge. Edges that emerge from explicit nodes are called explicit edges or, as discussed below, controllable segments.
Figures 2a and 2b show two example single-monotonic paths for the same point-to-point connection. Figure 2a shows a path that is monotonic along the y-axis and Figure 2b shows a path that is monotonic along the x-axis. Explicit nodes are shown as by dashed lines while explicit edges are shown as arrows.
As seen above, in order to form a single-monotonic path the only information required is the location of the source node, the relative position of the explicit nodes or edges (controllable edges) , plus the direction of the path on the monotonic axis in case of a toroidal topology. In the y-axis monotonic example of Figure 2a there are four controllable edges. Each of these controllable edges can be placed in any position within a row zone (designated here as zx) . Using as a reference the source's x-dimension, the position of each controllable edge can be expressed as the displacement from the reference line.
Based on the above observation the example path can be expressed as two flags, one that defines the monotonic axis (x or y) and one for the path direction (positive/negative) ; and in case of a toroidal topology, one coordinate and a vector of 4 signed integers. The above set of information forms the path-encoding packet and for a 2D-mesh path is as follows: [m] [dir] [S(xs,ys)] [d0...dn_i] (D
where m is the monotonic field, a flag that specifies the monotonia axis (X or Y) n is the number of controllable edges on the monotonic axis . S(xs,Ys) is the source field and uses Iog2 (X) +log2 (Y) bits (rounded up to the nearest integer) , where X and Y are the array's dimensions. do...dn_i is the displacements field and uses of n*log2 (X) or n*log2 (Y) bits, depending the monotonic axis.
This packet forms the single information that is required to unfold and thus render a path on the array.
Based on the above, the example path of Figure 3a will have a path-encoding packet such as the following one:
[0] [1] [1,4] [-1,+2,0,+1,+I] (2)
Figure 3b shows an example path in which displacement of the first controllable edge is expressed as the displacement from the start node and displacement of each subsequent controllable edge is expressed as the displacement from the previous controllable edge. Thus, for the example path of Figure 3b the path encoding packet is:
[0] [1] [1,4] [-1,+3,-2,+1,+I] (3) In the paths of Figures 3a and 3b it is assumed that: the upper left corner node has a coordinate of (0,0); the monotonic-axis is 0 for the y-axis and 1 for the x-axis; the positive path direction is 0; and the negative path direction is 1.
Practical example with s-boxes
In a typical multi-hop direct network each node is a form of fully connected or partially connected switch-box. Figures 4a to 4c show an embodiment of a fully connected, five port switch box. A partially connected switch-box introduces extra routing constraints that can be used to further reduce the information required to express a path.
Figure 4a shows a typical 5-port fully connected switch- box 30. Figure 4b shows a connection matrix where the switchbox of Figure 4a is used in a given intra- connection configuration. The intra-connection configuration is represented in Figure 4c. The switch- box can form the bases of an interconnection network of a reconfigurable fabric. The switch-box of Figure 4 has four pairs of unidirectional network ports, designated as North (N), East (E), South (S) and West (W) and one pair of unidirectional terminal ports is shown as Terminal (T) . A switch-box may have more than one terminal attached to it, though for simplicity, the example of Figure 4 has only one terminal per switch-box. Similarly a multi-dimensional network will have switch-boxes with more than four network ports. Each output can be driven by any of the switch-box's inputs. Of course an output can only be driven by one input and only one. This is shown in Figure 4b. When an output is assigned to an input slot, the rest of the options are disabled. One input can drive more than one output, as in the case of the North input port and South and East output ports.
Path Formation and Switch-Box Reconstruction
Figure 5a shows an example path specified in terms of displacement of controllable edges from a reference line (or axis) and Figure 5b represents a corresponding switch box formation for the path that uses the switch box of Figures 4a to 4c.
A simplified view of the path decoding procedure is shown below using ANSI C standard notation.
input_port = TERMINAL;
for (v=0;v<vector_size;v++) { displacement = vector [v] ; for (d=0;d<abs (displacement) ;d++) { if (monotonic==0 ) { if (direction==0) { s (x, y) . east = input_joort ; input_port = WEST; x++ ; } else { s(x,y) .west = input_port; input_port = EAST; X-; } } else { if (direction==0) { s(x,y) .south = input_port; input_port = NORTH; y++; } else { s(x,y). north = input_port ; input_port = SOUTH; y— ; } } }
if (monotonic==0) { if (direction==0) { s(x,y). south = input_port; input_port = NORTH; y++; } else { s (x,y) .north = input_j?ort; input__port = SOUTH; y~; } } else { if (direction==0) { s(x,y).east = input_port; input_port = WEST; x++; } else { s(x,y).west = input_port; input_port = EAST; X-; } } }
s (x,y) .terminal = input_port;
The above decoding procedure can be performed in a dedicated unit before loading the result on the reconfigurable fabric (off-line routing) or on-the-fly using a set of distributed decoders, which accept the path-packets directly to perform a collective path rendering (on-line routing) . An off-line routing is simpler and smaller. However, an on-line routing can be much faster, assuming the appropriate bandwidth is available. Compressibility of displacement-based format
Each of the outputs of the example switch-box requires at least 2-bits to distinguish between the 4 possible intra- connections . In practice an extra output state for the un-driven case is required, which normally ties the output to a logical zero. Even though this can have a significant impact to the total configuration bits required, it's ignored here for clarity.
For a total of 5 output ports, each switch-box requires configuration of 10-bits in total. Thus, an array of N such switch-boxes requires NxlO-bits of total configuration, that is 640-bits for N=64. Even if there is only one active connection, which occupies a small subset of the network resources, we still need to provide the total amount of configuration bits including those that are not used. Clearly there is a significant amount of redundancy in the configuration stream, which can be removed. An encoding technique that stores only the active switch-boxes would require for the example of Figure 3 at least 13x10 = 130-bits in total, since the example path, occupies 13 switch-boxes. This represents the raw useful information required for this example. In practice more than that is required since some extra information is need to be able to re-assign the appropriate bits to the correct switch-box.
Based on (1) and assuming an 8x8=64 switch-box lattice, the path-encoding technique requires Iog2(8) = 3-bits per direction for the source field, 2-bits for monotonic and direction flags and another 3-bits per controllable segment (5 of them) . That is:
Figure imgf000023_0001
Compared to the minimum configuration required for the participating switch-boxes of the example path, the path- encoding technique achieves a 23/130 = 0.18 compression ratio. Worth mentioning again, is that the uncompressed configuration size for the above scenario is 640-bits no mater how simple or complex the active connections are. Thus the above example path using the path-encoding technique achieves a total of 23/640 = 0.035 compression ratio .
Turn-based format and chain/dictionary-based compression
The displacement-based path-encoding format ensures the formation of valid paths for any combination of its fields. This is a very useful feature to construct meta- heuristic routing algorithms. Even though for a given source-destination distance the field size is always the same, in a given set of connections with various connection distances we end up with a variety of field sizes. Decoding those varying field sizes in hardware can be complex. A compromise is to choose the number of supported segments and have a fixed field size. This solves the problem of hardware complexity, but reduces the overall bit efficiency.
A more simplified derivative format is that of the turn- based one, which describes one hop at a time. It uses three turn symbols: right-turn (+) , left-turn (-), no- turn (0) . With those symbols, the turn-based format can describe the shape of a path and is not limited to monotonic paths. However, it does not ensure the formation of valid path for every symbol combinations. Furthermore, on average it requires more information to describe a path compare to the displacement-based format. Nonetheless, due to the reduced amount of symbols it becomes a good candidate for a dictionary-like based encoding. Figure 6 shows an example path encoded using the turn-based format. The uni-directional connection from 0 (output) to I (input) is meant to be rendered here in reverse order, starting from the I node. Thus, if on- line routing is assumed, the insertion point is the node I. This is done for practical reasons. An input can be driven by one output, while and output can drive several inputs. Choosing inputs as insertion point, for online routing, increases parallelism, otherwise we would need more than one injection per insertion point.
The main body of the path, which is referred to here as path shape, is described as a sequence of turn symbols, while the direction of the starting edge is expressed explicitly. In a 2D-mesh, with the same path-shape, one can describe four different paths each having a different end node by changing the starting edge direction. For example, in Figure 6 this would involve rotating the shown path through 360 degrees in four 90 degree steps about the start node, O. In a given set of network connections it is possible to find several paths with the same shape along their full length or with the same shape along part of their length. On that simple observation, a long list of turn symbols based on a set of paths is formed, with the list of turn symbols normally defining many paths having the same shape. With careful analysis, the length of the list or chain of turn symbols can be reduced by exploiting the symbol pattern reuse that follows from the presence of the multiple same shape paths. The reduction in the chain length involves expressing the shape of a path from the set of paths in terms of a starting index in the chain and a length of the symbol pattern representing the path shape. Figure 7 shows such an example.
To get the whole path, we also need the direction of the initial edge. By choosing a maximum supported path-shape length, the turn-based format with chain encoding, has fixed size fields. Using statistical analysis over a wide range of path-shapes, an efficient chain can be constructed with a high percentage of coverage. The chain can be stored as a look up table (LUT) on the distributed decoding units. Experimental results show that, out of thousands of connections, there are very few unique path- shapes and a list of 256 symbols is more than adequate to achieve 100% coverage.
Splitting paths
In case a path-shape is not covered by the chain, or its length exceeds the supported maximum length, a mechanism is required to express the path as a concatenation of smaller sub-paths. Figure 6 shows split point and how these sub-paths look like. The path is then rendered using two or more insertion points. Every split point redefines the last edge from the previous sub-path in order to ensure continuity. Clustered chain
Using a 256 symbol chain, the index needs to be 8bit. However, the entire range might not be needed on every set of connections. In a normal environment of a reconfigurable fabric, there is a small set of paths that are active at any given time. This set of paths form the active context. Within that context we might only require a small region of the chain. Again with careful selection, a set of segments can be formed that provides enough coverage for any given active context. Doing so allows us to define a global segment for the context and have each path only define an offset within that context . Figure 8 shows a 256 symbol chain, divided into 4 segments of 64 symbols. This results in using 6bits for each path, while having 2bits to define the segment for the entire set of path of an active context. The end result is potential significant bit efficiency.
Hierarchical enable matrix
The source field in (1) requires log2 (X) +log2 (Y) bits per connection, which is 6-bits for an 8x8 array. As long as the active connections are less than or equal to 10, this scheme can be efficient in terms of bits. For 11 connections the source fields will occupy 66-bits in total for a 64-element array. For such active configurations it might be better to use a 64-bit enable- matrix which describes which nodes are active (enabled) .
Figure imgf000026_0001
> 10 enable - matrix
Figure 9 shows an embodiment of a hierarchical enable- matrix, which provides another representation of the source nodes that are active within a lattice. The example of Figure 9 uses again a 64-element array for simplicity. This kind of clustering offers a more balanced solution compared to the above described case.
The hierarchical symmetric clustering of the 8x8 lattice shown in Figure 9 has 4 elements per cluster. The leaf sub-clusters are also the nodes of the lattice. There are in total 64 nodes for this example that would otherwise require 64-bits to specify which node is active and which is not. Using clustering, each level of hierarchy requires (4level) bits as shown in Figure 10.
The enable matrix header is thus formed by ordering these fields in sequence as shown in Figure 10. Based on the motivational example of an 8x8 lattice, the maximum header size will be 4+16+64 = 84-bits. However the header size is variable and in practice it is possible to reduce the number of total bits required to represent the active clusters. This is done by ignoring sub-clusters that are not active. In the example of Figure 9, the hierarchical enable-matrix requires only 24-bits. A typical 20% of array activity requires a hierarchical enable-matrix of 48-bits on average.
The example header of Figure 9 is formed as follows. Out of the 4 level-1 clusters only two of them have at least on active node. These are cluster0 and cluster3. To represent this as a bit sequence the above example uses a little-endian representation where the 0th cluster is represented by the most significant bit (MSB) while the 3rd cluster by the least significant bit (LSB) ; Thus for the above example the level-1 field is [1001] . Since clusteri and cluster have no active nodes they can simply be ignored. This is why level-2 field in Figure 9 has only two sub-fields, the first one for cluster0 and the second one for cluster3. These sub-fields follow the same concept as for level-1 fields and similarly for level-3 fields. Note that each bit of a level-3 bit corresponds to one node. Ones that are assigned a binary 1 are considered active and a path-encoding field (payload) should be present on the stream. The order in which the level fields appear in the header also dictate the order in which the path-encoding fields should be placed in the bit-stream to maintain correct association.
Hierarchical Clustering for Loading
One of the big concerns in flexible interconnection structures is the ability to propagate the configuration information across the lattice. This poses a significant implementation issue and often forms the bottleneck of the system, due to high bandwidth requirements. In the path-encoding technique, each point-to-point connection is described as a set of path directives starting from the source to the destination node. The encoded path is a compact information packet (unit) that can be loaded to the source node. Path formation/rendering can be done on-the-fly in a wormhole-like fashion (asynchronous or synchronous) . In any given system configuration the number of source nodes is only a fraction of the total number of active nodes. Because of that the required number of parallel insertion points is reduced significantly. This opens the possibility for a less interconnected loading network, with smaller bandwidth requirements. An example scenario with quarter of the bandwidth requirements of the fully connected loading network is shown in Figure 11.
For a 64-element array the fully connected loading network requires 64 parallel fields. This could allow for loading of all nodes simultaneously. The example hierarchically clustered network of Figure 11 has only 16 parallel fields which are evenly distributed across the array. This allows 16 loading simultaneous fields to each of the 16 level-2 clusters. Each level-2 cluster encapsulates 4 nodes. To load all the nodes of a level-2 cluster it would require 4 cycles. This level of parallelism is sufficient enough for typical network utilisation (i.e. number of active point-to-point connections) .
Grouping non regular/symmetric
Using clusters, the numbers of cycles required to load a configuration depends on the number of active insertion points and where these are, as seen above. To reduce the average number of cycles required, an analysis can be applied to determine which insertion points to group together to form a cluster. This will provide clusters that may not be spatially contained in one region, but rather could be placed physically anywhere in the array in an irregular, asymmetric fashion. As such this approach represents a generalisation of the regular, symmetric approach described above with reference to Figure 10. The irregular disposition of clusters of the present approach may introduce some extra complexity on the physical wiring to the clusters, but it improves the average loading time for a given placement. Using clusters, the configuration context is split into rows, which are populated to differing extents, depending on the insertion points that are used. Figure 12 shows an example context and its populated rows. As can be seen from Figure 12, each field contains a path encoded packet (i.e. path-field) and an insertion point index (i.e. IP address) for the cluster within which the field is grouped.
Extensions to the path-encoding scheme to support non- monotonic paths
A non-monotonic path encoding needs to have means for altering its reference axis. A y-monotonic path uses an x-reference axis and vice-versa. Furthermore the encoding must ensure valid formation of path, thus avoiding loops or collisions. The example of Figures 13 and 14 adds an extension to the monotonic path-encoding that allows non- monotonic paths to be formed. This extension adds an extra field that can alter the line of reference. This is designated here as switch-point and an associated fixed- segment. The associated fixed-segment ensures a valid path formation, thus avoiding loops and collisions, by introducing a unit displacement from the previous line of reference. This extension adds on such a field to each controllable segment, which is only 1-bit wide. The path-encoding technique introduces some new ideas in presenting routing information in a multi-hop direct network, which are summarised below.
Abstract Representation: Unlike conventional implementations the path-encoding isolates the path representation from the detailed hardware implementation for a given topology. Adapting to different topologies is also an easy task.
Connection Oriented: A connection is treated as a unit, easy to manipulate and store. The representation ensures that any arbitrary combination of configuration will always render a valid point-to-point connection from the source to the desired destination. This can be handy when using heuristics since it reduces the search space to only the necessary landscape.
Compact Form The path description uses a compact form that significantly reduces the overall number of bits to store it.
Reduced Bandwidth Requirements Path formation may only start from the corresponding source node. Thus the active insertion points can be significantly less than in raw format. Coupled with the fact that the information is very compact, the total bandwidth required is only a fraction of its original raw form.

Claims

CLAIMS :
1. A method of encoding a path between nodes, the method comprising the steps of: determining a path from a start node, the path extending via a plurality of nodes; and encoding at least a portion of the path in dependence on: a location of the start node; and a rule to define the path from the start node to an end node.
2. A method according to claim 1, in which the rule defines a path direction along an axis; and a sequence of displacements of explicit edges, each explicit edge being between a respective pair of the nodes along the path and each explicit edge being parallel to the axis.
3. A method according to claim 2, in which encoding at least a portion of the path comprises specifying a displacement with respect to the axis.
4. A method according to claim 2, in which one displacement is specified with respect to one of the start node and another displacement.
5. A method according to any preceding claim, in which the nodes form at least part of a reconfigurable topology.
6. A method according to claim 5, in which the nodes form part of a dynamically reconfigurable topology.
7. A method according to any preceding claim, in which the rule is encoded with a fixed size for a given distance from the start node to the end node along the axis .
8. A method according to any preceding claim, in which the nodes are arranged in a lattice.
9. A method according to any preceding claim, in which the path is monotonic to the axis .
10. A method according to any preceding claim, where the path is monotonic in at least one of two orthogonal directions, the path is encoded in dependence: on a number of edges; and a distance between the penultimate node on the path and the end node on the path.
11. A method according to any one of claims 2 to 10, in which the displacements are in a direction perpendicular to the axis.
12. A method according to any one of claims 2 to 11, in which the step of encoding further comprises the step of specifying at least one switch point of the axis in the sequence of displacements of the explicit edges.
13. A method according to any preceding claim, the method of encoding being operable in' electronic apparatus.
14. A method according to any preceding claim, in which the step of encoding at least a portion of the path further comprises specifying at least one turn symbol, a turn symbol defining a direction of a path from a node.
15. A method according to claim 14, in which the turn symbol defines the direction of the path from the node with respect to a direction of a portion of the path to the node.
16. A method according to claim 15, in which the turn symbol defines the direction of the path from the node as one of a right direction, a left direction and no change in direction with respect to the direction of the portion of the path to the node.
17. A method according to any one of claims 14 to 16, in which the method comprises: determining a plurality of paths, each path extending over a plurality of nodes between a start node and an end node, the plurality of nodes over which the plurality of paths extend defining a network topology; and encoding each of the plurality of paths as a series of turn symbols.
18. A method according to claim 17, in which the encoded plurality of paths is stored as a Look-Up Table (LUT) .
19. A method according to claim 17 or 18, in which the method further comprises: analysing the encoded paths to determine at least one sequence of turn symbols common to at least two different encoded paths; and representing the common sequence of turn symbols as a pattern reuse symbol.
20. A method according to claim 19, in which the pattern reuse symbol comprises an index, which represents a location within an encoded series of turn symbols, and a length, which represents a number of symbols in the common sequence of turn symbols .
21. A method according to any one of claims 14 to 20 and where a path between a start node and an end node is defined by means of turn symbols, the step of encoding comprises specifying a direction of an edge from the start node.
22. A method according to any one of claims 14 to 21 and where a plurality of paths are encoded as series of turn symbols, a further path is represented as a concatenation of at least two of said plurality of paths.
23. A method according to claim 22, in which the further path comprises first and second adjoining paths and an edge at an end node of the first path forms an edge at a start node of the second path.
24. A method according to any one of claims 14 to 23, in which the method further comprises defining a plurality of segments each comprising turn symbols in the series of turn symbols encoding each of the plurality of paths.
25. A method according to claim 24, in which the segments are defined in dependence on level of usage of subsets of paths represented within the encoded series of turn symbols.
26. A method according to claim 25, in which each path within a segment is defined at least in part as an offset with respect to a reference point of the segment.
27. A method of decoding a path between nodes, the path being encoded according to any one of the preceding claims, and wherein each explicit edge has a start and an end with respect to the specified path direction, the method comprising the steps, for each pair of current and next explicit edges adjacent in the sequence, of: connecting the node at the start of the current explicit edge to the node at the end of the current explicit edge; connecting the node at the end of the current explicit edge to the node at the start of the next explicit edge using the specified axis and displacements of the current and next explicit edges ; and connecting the node at the start of the next explicit edge to the node at the end of the next explicit edge.
28. A method according to claim 27, in which the step connecting the node at the end of the current explicit edge to the node at the start of the next explicit edge comprises the step of connecting via a chain of at least one intermediate node.
29. A method according to claim 28, in which the step of connecting via a chain of at least one intermediate node comprises the step of connecting along a sequence of implicit edges, the implicit edges being perpendicular to the axis.
30. A method according to any one of claims 27 to 29, in which the method further comprises the step of switching the axis responsive to the specified switch point of the axis.
31. A method of forming a data structure representing a plurality of paths extending over a network of nodes, each path having" a termination point, the method comprising: determining at least one difference in usage criterion of different termination points; forming a plurality of clusters, each cluster comprising data for a plurality of paths selected in dependence on the determined at least one difference in usage criterion; and forming the data structure from the plurality of clusters.
32. A method according to claim 31, in which the insertion point is an input node.
33. A method according to claim 31 or 32, in which the termination point is an end node of a path.
34. A method according to any one of claims 31 to 33, in which the clusters are disposed in the data structure in dependence on the determined at least one difference in usage criterion.
35. A method according to any one of claims 31 to 34, in which the usage criterion comprises at least one of: whether or not the termination point is to be used; when a termination point is to be used; and frequency of use of a termination point.
36. A method according to any one of claims 31 to 35, in which the disposition of the clusters in the data structure is irregular.
37. A method according to any one of claims 31 to 36, in which the data structure has the form of an array with each cluster forming a column of the array and data for each path in the cluster forming a respective row in the column.
38. A method according to claim 37, in which the data for each path comprises an index for the termination point for the path and a path packet .
39. A method according to claim 38, in which the path packet comprises data representing a path that has been encoded according to any one of claims 1 to 26.
40. A method according to any one of claims 31 to 35, in which the disposition of the clusters in the data structure is regular.
41. A method according to any one of claims 31 to 40, in which the data structure has a hierarchical form.
42. A method according to claim 41, in which the data structure comprises a plurality of levels, each level comprising a plurality of groupings of clusters and a grouping in each level from a top level to a bottom level in the hierarchy containing data representing a smaller number of paths than a grouping in a superior level.
43. A method according to claim 41 or 42, in which the hierarchy is symmetrically clustered.
44. A method according to any one of claims 41 to 43, in which the method comprises encoding a cluster field for a cluster above a lowest level in the hierarchy, the cluster field specifying which of the clusters inferior to the cluster contain an active termination point.
45. A method according to claim 44, in which the method comprises encoding a cluster field for a cluster at a lowest level in the hierarchy, the cluster field specifying which of the data representing paths has an active termination point .
46. A method according to claim 45, in which the cluster fields are ordered corresponding to their level in the hierarchy.
47. A method according to any one of claims 31 to 46, in which selection to form a cluster is based on statistical analysis of node utilisation.
48. A method according to any one of claims 31 to 47, in which the method is operable in electronic apparatus.
49. At least one computer program comprising program instructions for causing at least one computer to perform the method according to any one of claims 1 to 30.
50. At least one computer program comprising program instructions for causing at least one computer to perform the method according to any one of claims 31 to 48.
PCT/GB2008/000367 2007-02-01 2008-02-01 Encoding and decoding methods WO2008093123A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0701921.9 2007-02-01
GB0701921A GB0701921D0 (en) 2007-02-01 2007-02-01 Encoding and decoding methods

Publications (2)

Publication Number Publication Date
WO2008093123A2 true WO2008093123A2 (en) 2008-08-07
WO2008093123A3 WO2008093123A3 (en) 2008-11-20

Family

ID=37891102

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2008/000367 WO2008093123A2 (en) 2007-02-01 2008-02-01 Encoding and decoding methods

Country Status (2)

Country Link
GB (1) GB0701921D0 (en)
WO (1) WO2008093123A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2884706A1 (en) * 2013-09-13 2015-06-17 Fujitsu Limited Information processing device, information processing system, communication method, and computer-readable storage medium storing communication program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5105424A (en) * 1988-06-02 1992-04-14 California Institute Of Technology Inter-computer message routing system with each computer having separate routinng automata for each dimension of the network
EP1562124A2 (en) * 2004-02-06 2005-08-10 Samsung Electronics Co., Ltd. Apparatus and method for setting routing path between routers in chip

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5105424A (en) * 1988-06-02 1992-04-14 California Institute Of Technology Inter-computer message routing system with each computer having separate routinng automata for each dimension of the network
EP1562124A2 (en) * 2004-02-06 2005-08-10 Samsung Electronics Co., Ltd. Apparatus and method for setting routing path between routers in chip

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
EVGENY BOLOTIN, ISRAEL CIDON, RAN GINOSAR AND AVINOAM KOLODNY: "Efficient Routing in Irregular Topology NoCs"[Online] 19 September 2005 (2005-09-19), XP002483332 Retrieved from the Internet: URL:www.ee.technion.ac.il/matrics/papers/E fficient%20Routing%20in%20Irregular%20Topo logy%20NoCs.pdf> [retrieved on 2008-06-06] *
GOMEZ M E ET AL: "A Memory-Effective Routing Strategy for Regular Interconnection Networks" PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM, 2005. PROCEEDINGS. 19TH IEEE INTERNATIONAL DENVER, CO, USA 04-08 APRIL 2005, PISCATAWAY, NJ, USA,IEEE, 4 April 2005 (2005-04-04), pages 41b-41b, XP010785531 ISBN: 978-0-7695-2312-5 *
JIE WU: "A fault-tolerant and deadlock-free routing protocol in 2D meshes based on odd-even turn model" IEEE TRANSACTIONS ON COMPUTERS, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 52, no. 9, 1 September 2003 (2003-09-01), pages 1154-1169, XP011100723 ISSN: 0018-9340 *
NI L M ET AL: "A SURVEY OF WORMHOLE ROUTING TECHNIQUES IN DIRECT NETWORKS" COMPUTER, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 26, no. 2, 1 February 1993 (1993-02-01), pages 62-76, XP000345828 ISSN: 0018-9162 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2884706A1 (en) * 2013-09-13 2015-06-17 Fujitsu Limited Information processing device, information processing system, communication method, and computer-readable storage medium storing communication program

Also Published As

Publication number Publication date
WO2008093123A3 (en) 2008-11-20
GB0701921D0 (en) 2007-03-14

Similar Documents

Publication Publication Date Title
CN100531199C (en) A bounded index extensible hash-based IPv6 address lookup method
US6996662B2 (en) Content addressable memory array having flexible priority support
US11165717B2 (en) Fabric interconnection for memory banks based on network-on-chip methodology
US8725671B2 (en) Pattern matching appratus
JP4594666B2 (en) Reconfigurable computing device
US6598145B1 (en) Irregular network
US6754741B2 (en) Flexible FIFO system for interfacing between datapaths of variable length
US20020131437A1 (en) Flexible aggregation of output links
WO2002046966A1 (en) Paralleled content addressable memory search engine
EP1744497A1 (en) Method for managing a plurality of virtual links shared on a communication line and network implementing said method
EP2708000A1 (en) Flexible radix switching network
JP2000224025A (en) Programmable device
JPH06290158A (en) Reconstructible torus network system
JP2007531461A (en) Scalable non-blocking switching network for programmable logic
US10476815B2 (en) Adaptive communication network with cross-point switches
Le et al. Memory-efficient and scalable virtual routers using FPGA
US9529775B2 (en) Network topology of hierarchical ring with gray code and binary code
US20170187616A1 (en) Multi-planed unified switching topologies
US7457303B2 (en) One-bounce network
WO2008093123A2 (en) Encoding and decoding methods
US6684317B2 (en) Method of addressing sequential data packets from a plurality of input data line cards for shared memory storage and the like, and novel address generator therefor
Sklyarov Synthesis of circuits and systems from hierarchical and parallel specifications
EP3180860B1 (en) Reconfigurable integrated circuit with on-chip configuration generation
US20100098070A1 (en) Multistage switch control circuit
Rahaman et al. A scalable hierarchical ring based wireless network-on-chip

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08702031

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase in:

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08702031

Country of ref document: EP

Kind code of ref document: A2