ChampSim
VirtualMemory Class Reference

#include <vmem.h>

Public Member Functions

 VirtualMemory (uint64_t pg_size, std::size_t page_table_levels, uint64_t minor_penalty, MEMORY_CONTROLLER &dram)
 
uint64_t shamt (std::size_t level) const
 
uint64_t get_offset (uint64_t vaddr, std::size_t level) const
 
std::size_t available_ppages () const
 
std::pair< uint64_t, uint64_t > va_to_pa (uint32_t cpu_num, uint64_t vaddr)
 
std::pair< uint64_t, uint64_t > get_pte_pa (uint32_t cpu_num, uint64_t vaddr, std::size_t level)
 

Public Attributes

const uint64_t minor_fault_penalty
 
const std::size_t pt_levels
 
const uint64_t pte_page_size
 

Private Member Functions

uint64_t ppage_front () const
 
void ppage_pop ()
 

Private Attributes

std::map< std::pair< uint32_t, uint64_t >, uint64_t > vpage_to_ppage_map
 
std::map< std::tuple< uint32_t, uint64_t, uint32_t >, uint64_t > page_table
 
uint64_t next_pte_page = 0
 
uint64_t next_ppage
 
uint64_t last_ppage
 

Constructor & Destructor Documentation

◆ VirtualMemory()

VirtualMemory::VirtualMemory ( uint64_t  pg_size,
std::size_t  page_table_levels,
uint64_t  minor_penalty,
MEMORY_CONTROLLER dram 
)

Member Function Documentation

◆ available_ppages()

std::size_t VirtualMemory::available_ppages ( ) const

◆ get_offset()

uint64_t VirtualMemory::get_offset ( uint64_t  vaddr,
std::size_t  level 
) const

◆ get_pte_pa()

std::pair< uint64_t, uint64_t > VirtualMemory::get_pte_pa ( uint32_t  cpu_num,
uint64_t  vaddr,
std::size_t  level 
)

◆ ppage_front()

uint64_t VirtualMemory::ppage_front ( ) const
private

◆ ppage_pop()

void VirtualMemory::ppage_pop ( )
private

◆ shamt()

uint64_t VirtualMemory::shamt ( std::size_t  level) const

◆ va_to_pa()

std::pair< uint64_t, uint64_t > VirtualMemory::va_to_pa ( uint32_t  cpu_num,
uint64_t  vaddr 
)

Member Data Documentation

◆ last_ppage

uint64_t VirtualMemory::last_ppage
private

◆ minor_fault_penalty

const uint64_t VirtualMemory::minor_fault_penalty

◆ next_ppage

uint64_t VirtualMemory::next_ppage
private

◆ next_pte_page

uint64_t VirtualMemory::next_pte_page = 0
private

◆ page_table

std::map<std::tuple<uint32_t, uint64_t, uint32_t>, uint64_t> VirtualMemory::page_table
private

◆ pt_levels

const std::size_t VirtualMemory::pt_levels

◆ pte_page_size

const uint64_t VirtualMemory::pte_page_size

◆ vpage_to_ppage_map

std::map<std::pair<uint32_t, uint64_t>, uint64_t> VirtualMemory::vpage_to_ppage_map
private

The documentation for this class was generated from the following files: