|
ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
|
#include <TLB.h>

Public Member Functions | |
| TLB () | |
| uint32_t | AddPTE (uint64_t vfn, uint64_t pte_val) |
| Add an PTE entry in TLB with a pte value. | |
| uint32_t | AddPTE (uint64_t vfn, const PTE &pte_entry) |
| Add an PTE entry in TLB from the given PTE. | |
| uint32_t | Lookup (uint64_t vfn, PTE *pte_buf) |
| Look up the TLB for the given given virtual page number. | |
| void | Flush () |
| Flush the TLB. | |
| uint32_t | UpdatePTE (uint64_t vfn, uint64_t pte_val) |
| Update the PTE entry. | |
| uint32_t | EvictPTE (uint64_t vfn) |
| Evict the PTE entry. | |
| bool | IsFull () const |
| void | DumpEntry (uint64_t vfn) |
| Dump the PTE details according to the given VPN. | |
| void | Dump () |
| Dump all PTEs in TLB and TLB details. | |
Private Types | |
| typedef std::map< uint64_t, PTE > | TLBMap |
Private Attributes | |
| TLBMap | tlb_map_ |
| uint32_t | max_entry_ |
| uint32_t | current_entry_num_ |
| bool | is_full_ |
| bool | infinite_tlb_entries_ |
|
private |
|
inlineexplicit |
Definition at line 38 of file TLB.h.
References etiss::mm::TLB< EntryNum >::infinite_tlb_entries_, etiss::mm::TLB< EntryNum >::max_entry_, and unlikely.
|
inline |
Add an PTE entry in TLB from the given PTE.
Definition at line 69 of file TLB.h.
References etiss::mm::TLB< EntryNum >::current_entry_num_, etiss::mm::TLB< EntryNum >::is_full_, etiss::mm::NOERROR, etiss::mm::PTEOVERLAP, etiss::mm::TLB< EntryNum >::tlb_map_, etiss::mm::TLBISFULL, and unlikely.
|
inline |
Add an PTE entry in TLB with a pte value.
Definition at line 51 of file TLB.h.
References etiss::mm::TLB< EntryNum >::current_entry_num_, etiss::mm::TLB< EntryNum >::is_full_, etiss::mm::NOERROR, etiss::mm::PTEOVERLAP, etiss::mm::TLB< EntryNum >::tlb_map_, etiss::mm::TLBISFULL, and unlikely.
|
inline |
Dump all PTEs in TLB and TLB details.
Definition at line 161 of file TLB.h.
References etiss::mm::TLB< EntryNum >::current_entry_num_, etiss::mm::TLB< EntryNum >::DumpEntry(), etiss::mm::TLB< EntryNum >::infinite_tlb_entries_, etiss::mm::TLB< EntryNum >::is_full_, etiss::mm::TLB< EntryNum >::max_entry_, and etiss::mm::TLB< EntryNum >::tlb_map_.

|
inline |
Dump the PTE details according to the given VPN.
Definition at line 143 of file TLB.h.
References etiss::ERROR, etiss::log(), etiss::mm::TLB< EntryNum >::tlb_map_, and unlikely.
Referenced by etiss::mm::TLB< EntryNum >::Dump().


|
inline |
Evict the PTE entry.
Definition at line 126 of file TLB.h.
References etiss::mm::TLB< EntryNum >::current_entry_num_, etiss::mm::TLB< EntryNum >::is_full_, etiss::mm::NOERROR, etiss::mm::PTENOTEXISTED, etiss::mm::TLB< EntryNum >::tlb_map_, and unlikely.
|
inline |
Flush the TLB.
Definition at line 101 of file TLB.h.
References etiss::mm::TLB< EntryNum >::current_entry_num_, etiss::mm::TLB< EntryNum >::is_full_, and etiss::mm::TLB< EntryNum >::tlb_map_.
|
inline |
Definition at line 137 of file TLB.h.
References etiss::mm::TLB< EntryNum >::is_full_.
|
inline |
Look up the TLB for the given given virtual page number.
Definition at line 87 of file TLB.h.
References etiss::mm::NOERROR, etiss::mm::TLB< EntryNum >::tlb_map_, and etiss::mm::TLBMISS.
|
inline |
Update the PTE entry.
Definition at line 113 of file TLB.h.
References etiss::mm::NOERROR, etiss::mm::PTENOTEXISTED, etiss::mm::TLB< EntryNum >::tlb_map_, and unlikely.
|
private |
Definition at line 180 of file TLB.h.
Referenced by etiss::mm::TLB< EntryNum >::AddPTE(), etiss::mm::TLB< EntryNum >::AddPTE(), etiss::mm::TLB< EntryNum >::Dump(), etiss::mm::TLB< EntryNum >::EvictPTE(), and etiss::mm::TLB< EntryNum >::Flush().
|
private |
Definition at line 182 of file TLB.h.
Referenced by etiss::mm::TLB< EntryNum >::Dump(), and etiss::mm::TLB< EntryNum >::TLB().
|
private |
Definition at line 181 of file TLB.h.
Referenced by etiss::mm::TLB< EntryNum >::AddPTE(), etiss::mm::TLB< EntryNum >::AddPTE(), etiss::mm::TLB< EntryNum >::Dump(), etiss::mm::TLB< EntryNum >::EvictPTE(), etiss::mm::TLB< EntryNum >::Flush(), and etiss::mm::TLB< EntryNum >::IsFull().
|
private |
Definition at line 179 of file TLB.h.
Referenced by etiss::mm::TLB< EntryNum >::Dump(), and etiss::mm::TLB< EntryNum >::TLB().
|
private |
Definition at line 177 of file TLB.h.
Referenced by etiss::mm::TLB< EntryNum >::AddPTE(), etiss::mm::TLB< EntryNum >::AddPTE(), etiss::mm::TLB< EntryNum >::Dump(), etiss::mm::TLB< EntryNum >::DumpEntry(), etiss::mm::TLB< EntryNum >::EvictPTE(), etiss::mm::TLB< EntryNum >::Flush(), etiss::mm::TLB< EntryNum >::Lookup(), and etiss::mm::TLB< EntryNum >::UpdatePTE().