The time required to access instructions and data in memory is rarely negligible in general purpose program-the sole example are programs that require lots of number crunching. CPU's and registers remain many, many orders of magnitude faster than memory access. Furthermore, the memory access time depends on the design of the memory hierarchy, the size of blocks at each level, the rules chosen to manage each level, and the time to access information at each level. Thus, typically, it's impossible to do more than estimate the parameters. So, we don't always modify all the levels explicitly, but use summary parameters, as we will see in this section. Note that the parameters below must be recomputed (or reestimated, as the case may be) when any facet of the hierarchy and its management are modified.
Typically, each level of the memory hierarchy will have different values for these parameters. The hit time includes the manner in which tags are checked-either in parallel (fast) or in series (slower). The miss rate can differ for instruction fetches from that for data fetches when split caches with different organizations are used. Estimation of the miss penalty must take the method in which the system handles memory reads and writes, such as giving reads priority over writes, or fetching the critical word first in a block, or even using pre-fetching (predicting and fetching the next block speculatively). It is more important to understand what factors or design decisions affect these parameters than to have precise values for them.