Pyrogenesis  trunk
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
x86_x64::Cache Struct Reference

#include <cache.h>

Public Types

enum  Type { kNull, kData, kInstruction, kUnified }
 

Public Member Functions

void Initialize (size_t level, Type type)
 
bool Validate () const
 
u64 TotalSize () const
 

Public Attributes

size_t level
 1..maxLevels More...
 
Type type
 never kNull More...
 
size_t numEntries
 if 0, the cache is disabled and all other values are zero More...
 
size_t entrySize
 NB: cache entries are lines, TLB entries are pages. More...
 
size_t associativity
 = fullyAssociative or the actual ways of associativity More...
 
size_t sharedBy
 how many logical processors share this cache? More...
 

Static Public Attributes

static const size_t maxLevels = 4
 
static const size_t fullyAssociative = 0xFF
 

Member Enumeration Documentation

Enumerator
kNull 
kData 
kInstruction 
kUnified 

Member Function Documentation

void x86_x64::Cache::Initialize ( size_t  level,
Type  type 
)
inline
u64 x86_x64::Cache::TotalSize ( ) const
inline
bool x86_x64::Cache::Validate ( ) const
inline

Member Data Documentation

size_t x86_x64::Cache::associativity

= fullyAssociative or the actual ways of associativity

size_t x86_x64::Cache::entrySize

NB: cache entries are lines, TLB entries are pages.

const size_t x86_x64::Cache::fullyAssociative = 0xFF
static
size_t x86_x64::Cache::level

1..maxLevels

const size_t x86_x64::Cache::maxLevels = 4
static
size_t x86_x64::Cache::numEntries

if 0, the cache is disabled and all other values are zero

size_t x86_x64::Cache::sharedBy

how many logical processors share this cache?

Type x86_x64::Cache::type

never kNull


The documentation for this struct was generated from the following file: