A cache implements bank-by-bank locking to keep critical code from being
flushed out of the cache. A register is maintained to rank the banks from
the most recently used to the least recently used. Ordinarily, when code
needs to be moved into the cache, the least recently used bank is flushed,
the code is moved into that bank, and the register is updated to identify
that bank as the most recently used. However, if a bank is designated in a
bypass vector as being locked, that bank is bypassed in the maintenance of
the register and is thus never identified as the bank to be flushed.
Une cachette met en application la banque-par-banque fermant à clef pour garder le code critique de l'rinçage de la cachette. Un registre est maintenu pour ranger les banques du le plus récemment utilisé moins récemment utilisé. D'habitude, quand le code doit être entré dans la cachette, la banque moins récemment utilisée est rincée, le code est entré dans cette banque, et le registre est mis à jour pour identifier que banque pendant que le plus récemment utilisé. Cependant, si une banque est indiquée dans un vecteur de déviation en tant qu'étant verrouillée, cette banque est déviée dans l'entretien du registre et n'est jamais identifiée ainsi pendant que la banque à rincer.