3.7.3. Address Space Identifiers

ARMv7-A introduces support for ASID, which is a number assigned by the OS to each individual task. This value is in the range of 0-255, and the value for the current task is written in the ASID register.

When the TLB is updated and the entry is marked as non-global, the ASID value is stored in the TLB entry in addition to the normal translation information. Subsequent TLB look-ups only match an entry if the current ASID matches with the ASID stored in the entry. You can therefore have multiple valid TLB entries for a particular page, marked as non-global, but with different ASID values. This significantly reduces the software overhead of context switches, as it avoids the requirement to flush the on-chip TLBs.

Copyright © 2014 ARM. All rights reserved.ARM DAI0425