Хотите знать, когда следует выполнить обратную запись?Я думал, что это когда вы пишете на адрес, которого уже нет в кэше.Поэтому, если в этом слоте есть что-то, имеющее действительный Dirty Bit, то вы захотите скопировать это обратно на место в main_mem, чтобы не потерять данные.Вы хотите прочитать другой адрес (это кэш с прямым отображением)?
Так вы выполняете обратную запись каждый раз, когда отсутствует кэш-память и грязный бит (независимо от чтения или записи)?