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