public Packet(Request request, ulong block, int nrOfFlits, Coord source, Coord dest) { _request = request; if (_request != null) { _request.beenToNetwork = true; } _block = block; // may not come from request (see above) _src = source; _dest = dest; _ringsrc = new RingCoord(RingCoord.getRingIDfromID(source.ID)); _ringdest = new RingCoord(RingCoord.getRingIDfromID(dest.ID)); if (request != null) { request.setCarrier(this); } requesterID = -1; initialize(Simulator.CurrentRound, nrOfFlits); /* Prioritizing packets */ if (Simulator.rand.Next(0, 100) < Config.randomPacketPrioPercent) { chip_prio = 1; } else { chip_prio = 0; } }
public Packet(Request request, ulong block, int nrOfFlits, Coord source, Coord dest) { _request = request; if (_request != null) { _request.beenToNetwork = true; } _block = block; // may not come from request (see above) _src = source; _dest = dest; if (request != null) { request.setCarrier(this); } requesterID = -1; initialize(Simulator.CurrentRound, nrOfFlits); }
public void setRequest(Request req) { _request = req; req.setCarrier(this); }
//by Xiyue: // TODO: this is the packet generated by the processor public Packet(Request request, ulong block, int nrOfFlits, Coord source, Coord dest, CmpCache_Txn txn, bool critical) { _request = request; if (_request != null) _request.beenToNetwork = true; _block = block; // may not come from request (see above) _src = source; _dest = dest; _intfCycle = 0; if (request != null) request.setCarrier(this); requesterID = -1; initialize(Simulator.CurrentRound, nrOfFlits); this.txn = txn; this.critical = critical; this.rank = Controller_QoSThrottle.app_rank[txn.node]; this.app_type = Controller_QoSThrottle.app_type[txn.node]; this.most_mem_inten = Controller_QoSThrottle.most_mem_inten[txn.node]; this.slowdown = Simulator.stats.estimated_slowdown [txn.node].LastPeriodValue; // TODO: by Xiyue: this is equivalent to have N ranking levels. }
// regular packet public Packet(Request request, ulong block, int nrOfFlits, Coord source, Coord dest) { _request = request; if (_request != null) _request.beenToNetwork = true; _block = block; // may not come from request (see above) _src = source; _dest = dest; if (request != null) request.setCarrier(this); requesterID = -1; mc = false; gather = false; initialize(Simulator.CurrentRound, nrOfFlits); }
// construct a multicast packet // TODO: it may be merged in network. public Packet(Request request, ulong block, int nrOfFlits, Coord source, List <Coord> _destList) { _request = request; if (_request != null) _request.beenToNetwork = true; _block = block; // may not come from request (see above) _src = source; destList = new List <Coord>(_destList); nrMCPacket = _destList.Count; nrArrivedMCPacket = 0; nrOfArrivedFlitsMC = new int [Config.N]; // for safety, although mc_degree may not reach N creationTimeMC = new ulong[Config.N]; // index the destination node ID if (request != null) request.setCarrier (this); requesterID = -1; hsFlowID = -1; mc = true; gather = false; initialize (Simulator.CurrentRound, nrOfFlits);// Flitization of each packet; }