对于大小为16字节的缓存块,任何因为0x0001、或0x0002、或0x0003、或0x0004造成的未命中,都会导致位于内存0x0000—0x0003的全部四个字被读入块中。 在右图中,如此时处理器请求的地址在0x0020到0x0023之间,或在0x0004到0x0007之间,或在0x0528到0x052B之间,或在0x05EC到0x05EF之间,均会命中。其余地址则全部未命中。 而处理器执行数据写入指令时,控制逻辑依如下流程: 用索引定位到相应的缓存块。 用标签尝试匹配该缓存块的对应标签值。其结果为命中或未命中。 如命中,用块内索引定位此块内的目标字。然后直接改写这个字。 如未命中,依系统设计不同可有两种处理策略,分别称为分配写(Write allocate)和非分配写(No-write allocate)。如果是分配写,则先如处理读未命中一样,将未命中数据读入缓存,然后再将数据写到被读入的字单元。如果是非分配写,则直接将数据写回内存。