GR740-UM-DS, Nov 2017, Version 1.7
130
www.cobham.com/gaisler
GR740
As the TLB is not large enough to hold a copy of each position in the page table, part of the physical
address and group will be placed in the tag RAM, the arrangement will be:
Since the physical address is used as the set address, accesses from a master assigned to one group
may evict cached IOPTE’s belonging to another group. This may not be wanted in systems where
interference between groups of masters should be minimized. In order to minimize inter-group inter-
ference, the core can be implemented with support for using as much of the group ID as possible in
the set address, this functionality is called group-set-addressing:
Group-set-addressing is enabled via the GS field in the core’s Control register.
12.5.4 TLB flush operation
If the contents of a page table is modified the TLB must be flushed by writing to the TLB/Cache Flush
Register. The TLB/Cache Flush register contains fields to flush the entire TLB or to flush the entries
belonging to a specified group. In order to flush entries for a specific group, group-set-addressing
must be implemented and enabled. Performing a group flush without group-set-addressing may only
flush part of the TLB and can lead to unexpected behavior.
When working in IOMMU mode, the core can be configured to not store a IOPTE in the TLB if the
IOPTE’s valid (V) bit is cleared. This behavior is controller via the SIV field in the core’s Control reg-
ister.
The core will not propagate any transfers while a flush operation is in progress.
12.6
Fault-tolerance
The Access Protection Vector cache and IOMMU TLB are implemented use byte-parity to protect
entries in the cache/TLB. If an error is detected it will be processed as a cache/TLB miss and the data
will be re-read from main memory. A detected error will also be reported via the core’s status register
and the core also signals errors via its statistic output.
Errors can be injected in the Access Protection Vector cache and IOMMU TLB via the Data and Tag
RAM Error Injection registers.
Table 126.
Set address/TAG arrengement
Set address:
31
4
0
Not present
Low bits of physical
address
Contents of Tag RAM:
31
16
14 13
1
0
Not present
Group ID
High bits of physical address
V
0
Valid (V) - Signals that addressed position in cache contains valid data
Table 127.
Group set address: Set address bits < (group ID bits) + (Physical address bits)
Set address:
31
4
2
0
Not present
Low
phys
Group ID
Contents of Tag RAM:
31
16
16
1
0
Not present
High bits of physical address
V
0
Valid (V) - Signals that addressed position in cache contains valid data