In the SDES system, there are three types of processes: overseer, monitor and slave. An SDES system has only one overseer process, this being responsible for initialization and finalization of a simulation, so once a simulation is initiated, the overseer process does not engage in the simulation until the end. The whole simulation is carried out by the latter two types of processes, and a more detailed division of tasks is explained in this section.
Monitor Process
The tasks performed by the monitor process can be split into three different types: a
reinforcing routing mechanism; a simulation boundary control; and workload monitoring. These are the unique problems that the SDES system faces when
As outlined in section 4.2.3 , the type of communication packet used in the emulator is the P2P packet type. The P2P packet can only reach the monitor process of the target node specified in the packet address, so the packet then has to be routed through the monitor process in order to reach a slave process. As a result, the monitor process must handle all the incoming packets and direct them to their correct destinations. The details about incoming message handling process are discussed in message reconstructing part of section 4.5.3 .
However, unlike the MC packet, where the target slave core ID is specified in the packet address, the target slave core ID is hidden inside the payload of a packet. Since the payloads are encoded using a communication protocol (see section 4.5.3 ), the monitor process has to decode the entire message in order to figure out the destination of a message, which is represented in a series of packets.
The second task of a monitor process is related to event simulation. Although the monitor process does not perform event processing activities, it does share part of the burden that was devolved to the LPs in the conventional deadlock avoidance technique. Because the monitor process has knowledge of all the messages passing through to the local slave processes, it can derive a boundary (see section 2.2.2 ) that is shared by the local LPs. This additional layer of boundary control reduces the amount of null
messages that have to be delivered if the boundary is set at the LP level. A comparison between conventional and SDES boundary layouts is shown in Figure 69.
125 3 0 1 2 0 1 2 A B C D A B C D
Figure 69 Boundary comparison
The case in Figure 69 assumes that all four external nodes try to establish access to LP 0, 1, and 2. In the SDES side on the left, the monitor process takes over the boundary control and only feeds a single boundary value to its LPs, which requires the system to manage 10 boundaries instead of the 12 in the conventional deadlock avoidance system. The lowest values amongst the 7 slots in the monitor process will become the boundary for the local SDES node. When it comes to establishing the null value for generating null messages for external SDES nodes, the lowest value in the local LP array, which has 3 values in Figure 69, is chosen to be the null value for the SDES node.
The boundary in a conventional deadlock avoidance technique is a fixed structure. However, the introduction of DLB in the SDES causes the system to vary the location of the boundaries in a system. As a result, the entire boundary system needs to be re- established by analysing the connectivity between different nodes. Further details about the impact that DLB on the boundary conditions is explained in section 4.6.3 .
The monitor process is not solely devoted to this task. If there is only one node in the entire SDES system, the boundary establishment is disabled in the monitor process, and the slave process or LP takes over the task.
The third task is to monitor the workload balance between local and adjacent SDES nodes in the lattice array of nodes. The monitor process periodically collects the
workload data from local LPs and broadcasts the sum of all local workloads, which is the aggregate number of events executed, to all six adjacent nodes. If the difference in workload between two adjacent nodes has passed a certain threshold, DLB is triggered and the two monitors cooperate with each other and begin the DLB process (see section 4.6.3 ).
Slave Process
The slave process or LP in the SDES is very similar to an LP in the conventional deadlock avoidance technique, apart from the simplified boundary control and the additional DLB capability. The slave process receives events and null messages, processes all eligible events, and sends response events and local LP null messages to the monitor process. The deadlock avoidance technique background can be found in section 2.2.2 . A detailed description of the event processing mechanism is explained in the next section. Once a DLB is initiated, a slave process stops simulation and collects local components and associated events ready for transfer. When simulation stops, the slave processes dump both simulation results and performance data to the dedicated files, which are then further reorganized by the overseer process.
The timestamp in a null message is the current LP boundary value plus the lookahead value. The lookahead value is the minimum delay between any pair of IO (input-output) ports. The simulator analyses the delay between all possible combinations of IOs if the structure of the current circuit changes, which gives a minimum delay value that is the lookahead value of the current LP. The default delay for a gate in SDES is 1 ns. Without this evaluation of the lookahead value, the default lookahead value is a mere 1 ns, which limits the parallelism during processing.
The null message has two possible values. If there is no eligible event, which means it has a time stamp smaller than the local boundary, the null event will be the input boundary value plus the minimum delay value, which is 1 ns by default. If eligible events do exist in a local LP, the null value becomes the current simulation time plus the minimum delay value.
127
As described in the last section, the slave process has to take over the boundary control task when there is only one SDES node in the entire SDES system. Therefore, an optional boundary analysis system has to be in place to deal with this problem. It analyzes the monitor-partitioned information, and adds a slot in the boundary array for each fan-in LP detected. Similarly to the monitor process, the lowest boundary value in the array becomes the boundary for the local LP.