pub struct MemConfiguration {
pub bk_shift: usize,
pub bk_mask: usize,
pub row_shift: usize,
pub row_mask: usize,
pub col_shift: usize,
pub col_mask: usize,
pub dram_mtx: [usize; 30],
pub addr_mtx: [usize; 30],
pub max_bank_bit: u64,
}Expand description
DRAM addressing configuration.
Defines how virtual addresses map to physical DRAM organization (bank, row, column) using transformation matrices.
Fields§
§bk_shift: usizeBit shift for bank extraction
bk_mask: usizeBit mask for bank extraction
row_shift: usizeBit shift for row extraction
row_mask: usizeBit mask for row extraction
col_shift: usizeBit shift for column extraction
col_mask: usizeBit mask for column extraction
dram_mtx: [usize; 30]DRAM addressing matrix (virtual to DRAM)
addr_mtx: [usize; 30]Address reconstruction matrix (DRAM to virtual)
max_bank_bit: u64Maximum bank bit position
Implementations§
Source§impl MemConfiguration
impl MemConfiguration
Sourcepub fn bank_function_period(&self) -> u64
pub fn bank_function_period(&self) -> u64
Returns the periodicity of the bank function in rows.
Indicates how many rows must be iterated before the bank function repeats.
Source§impl MemConfiguration
impl MemConfiguration
Sourcepub fn get_bank_count(&self) -> usize
pub fn get_bank_count(&self) -> usize
Returns the number of banks in this DRAM configuration.
Sourcepub fn get_row_count(&self) -> usize
pub fn get_row_count(&self) -> usize
Returns the number of rows in this DRAM configuration.
Trait Implementations§
Source§impl Clone for MemConfiguration
impl Clone for MemConfiguration
Source§fn clone(&self) -> MemConfiguration
fn clone(&self) -> MemConfiguration
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MemConfiguration
impl Debug for MemConfiguration
Source§impl Default for MemConfiguration
impl Default for MemConfiguration
Source§fn default() -> MemConfiguration
fn default() -> MemConfiguration
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for MemConfiguration
impl<'de> Deserialize<'de> for MemConfiguration
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for MemConfiguration
impl PartialEq for MemConfiguration
impl Copy for MemConfiguration
impl Eq for MemConfiguration
impl StructuralPartialEq for MemConfiguration
Auto Trait Implementations§
impl Freeze for MemConfiguration
impl RefUnwindSafe for MemConfiguration
impl Send for MemConfiguration
impl Sync for MemConfiguration
impl Unpin for MemConfiguration
impl UnwindSafe for MemConfiguration
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more