示例#1
0
        public void queuePacket(Packet p)
        {
#if PACKETDUMP
            if (m_coord.ID == 0)
            {
                Console.WriteLine("queuePacket {0} at node {1} (cyc {2}) (queue len {3})",
                                  p, coord, Simulator.CurrentRound, RequestQueueLen);
            }
#endif

            if (Config.synthGen && !(p is SynthPacket))
            {
                throw new Exception("non-synthetic packet generated in synthetic run!");
            }

            if (p.dest.ID == m_coord.ID) // local traffic: do not go to net (will confuse router)
            {
                m_local.Enqueue(p);
                return;
            }

            if (Config.idealnet) // ideal network: deliver immediately to dest
            {
                Simulator.network.nodes[p.dest.ID].m_local.Enqueue(p);
            }
            else // otherwise: enqueue on injection queue
            {
                m_inj_pool.addPacket(p);
            }
        }
示例#2
0
        public void queuePacket(Packet p)
        {
#if PACKETDUMP
//            if (m_coord.ID == 0)
            Console.WriteLine("queuePacket {0} at node {1} (cyc {2}) (queue len {3}), from GPU = {4}",
                              p, coord, Simulator.CurrentRound, RequestQueueLen, p.from_GPU);
#endif

            if (Config.synthGen && !(p is SynthPacket))
            {
                throw new Exception("non-synthetic packet generated in synthetic run!");
            }

            if (p.dest.ID == m_coord.ID) // local traffic: do not go to net (will confuse router)
            {
                m_local.Enqueue(p);
                return;
            }

            if (Config.idealnet) // ideal network: deliver immediately to dest
            {
                Simulator.network.nodes[p.dest.ID].m_local.Enqueue(p);
            }
            else // otherwise: enqueue on injection queue
            {
                //[Fixed] TODO: Rachata, need to trace this, for some reason there is no requesterID
                //Console.WriteLine("Here1, adding packet P {0}",p);
                //Console.WriteLine("Here1, adding packet P {0}",p.request.requesterID);
                m_inj_pool.addPacket(p);
            }
        }
示例#3
0
        public void queuePacket(Packet p)
        {
#if PACKETDUMP
            if (m_coord.ID == 0)
            {
                Console.WriteLine("queuePacket {0} at node {1} (cyc {2}) (queue len {3})",
                                  p, coord, Simulator.CurrentRound, queueLens);
            }
#endif
            if (p.dest.ID == m_coord.ID) // local traffic: do not go to net (will confuse router)
            {
                m_local.Enqueue(p);
                return;
            }

            if (Config.idealnet) // ideal network: deliver immediately to dest
            {
                Simulator.network.nodes[p.dest.ID].m_local.Enqueue(p);
            }
            else // otherwise: enqueue on injection queue
            {
                m_inj_pool.addPacket(p);
            }
        }