예제 #1
0
            if mm_inst == None:
                mm_check = True
            elif mm_inst.done:
                mm_check = True

            if vec_inst == None:
                vec_check = True
            elif vec_inst.done:
                vec_check = True

            if buf_check and mm_check and vec_check:
                checkout_delay = 0
                recover_delay = 0

                check_nnid = check_task.nnid
                checkout_delay += UBUF.checkout(check_nnid)
                checkout_delay += ACCQ.checkout(check_nnid)

                print(f"  Checkout for {checkout_delay} cycle")

                nnid = task.nnid
                recover_delay += UBUF.recover(nnid)
                recover_delay += ACCQ.recover(nnid)

                print(f"  Recover for {recover_delay} cycle")

                check_task.running = False
                cycle += checkout_delay
                cycle += recover_delay

                switch_overhead += checkout_delay