In this subsection, we examine cases where the overhead of processing a prefetch may potentially be large enough that one might consider dropping the prefetch instead. Since prefetches are performance hints, and have no side-effects on user-visible program state, the processor can safely ignore them without violating correctness. In fact, if code with prefetching is run on a processor whose memory system does not support prefetching, the prefetches can simply be treated as NOPs. Presumably the software will be effective at issuing prefetches that improve performance, and we have already seen evidence of this in Chapters and . However, there may be cases where the hardware can determine that a prefetch should be dropped because the penalty of processing it is too large. For example, what if the prefetch takes a TLB exception, or what if the prefetch issue buffer is already full? We will focus on such issues in this subsection.