コード例 #1
0
        protected override bool _isHigherPriority(Flit a, Flit b)
        {
            ulong age_a = Simulator.CurrentRound - a.packet.creationTime;
            ulong age_b = Simulator.CurrentRound - b.packet.creationTime;

            int priors = 0;

            if (a.packet.request != null && b.packet.request != null)
            {
                priors = CC.priorities[a.packet.request.requesterID].CompareTo(CC.priorities[b.packet.request.requesterID]);
            }

            //Check if overthreshold exists
            if (age_a > Config.router.packetExpirationThreshold ||
                age_b > Config.router.packetExpirationThreshold)
            {
                if (a.packet.creationTime != b.packet.creationTime)
                {
                    return(a.packet.creationTime < b.packet.creationTime);
                }
                return(priors < 0);
            }

            if (priors != 0)
            {
                return(priors < 0);
            }
            return(a.packet.creationTime < b.packet.creationTime);
        }
コード例 #2
0
ファイル: STCBufferedRouter.cs プロジェクト: hirous/test
        protected override bool _isHigherPriority(Flit a, Flit b)
        {
            if (a.packet.batchID != b.packet.batchID)
                return a.packet.batchID < b.packet.batchID;

            if (a.packet.request != null && b.packet.request != null)
                if (CC.priorities[a.packet.request.requesterID] != CC.priorities[b.packet.request.requesterID])
                    return CC.priorities[a.packet.request.requesterID] > CC.priorities[b.packet.request.requesterID];
            return a.packet.creationTime < b.packet.creationTime;
        }
コード例 #3
0
        protected override bool _isHigherPriority(Flit a, Flit b)
        {
            if (a.packet.batchID != b.packet.batchID)
            {
                return(a.packet.batchID < b.packet.batchID);
            }

            if (a.packet.request != null && b.packet.request != null)
            {
                if (CC.priorities[a.packet.request.requesterID] != CC.priorities[b.packet.request.requesterID])
                {
                    return(CC.priorities[a.packet.request.requesterID] > CC.priorities[b.packet.request.requesterID]);
                }
            }
            return(a.packet.creationTime < b.packet.creationTime);
        }
コード例 #4
0
ファイル: NoCLASBufferedRouter.cs プロジェクト: hirous/test
        protected override bool _isHigherPriority(Flit a, Flit b)
        {
            ulong age_a = Simulator.CurrentRound - a.packet.creationTime;
            ulong age_b = Simulator.CurrentRound - b.packet.creationTime;

            int priors = 0;

            if (a.packet.request != null && b.packet.request != null)
                priors = CC.priorities[a.packet.request.requesterID].CompareTo(CC.priorities[b.packet.request.requesterID]);

            //Check if overthreshold exists
            if (age_a > Config.router.packetExpirationThreshold ||
                age_b > Config.router.packetExpirationThreshold)
            {
                if (a.packet.creationTime != b.packet.creationTime)
                    return a.packet.creationTime < b.packet.creationTime;
                return priors < 0;
            }

            if (priors != 0)
                return priors < 0;
            return a.packet.creationTime < b.packet.creationTime;
        }