From 220a7e536e29aecf549d4ff8bfd174b72917c02e Mon Sep 17 00:00:00 2001 From: Lane Rettig Date: Wed, 24 Jul 2024 13:20:42 -0700 Subject: [PATCH 1/2] WIP: simplify memory Remove memory read and write records --- core/src/runtime/memory.rs | 92 ------------------------------------- core/src/runtime/mod.rs | 85 ++++++++++++---------------------- core/src/runtime/state.rs | 6 +-- core/src/runtime/syscall.rs | 35 ++++++-------- core/src/syscall/host.rs | 12 ++--- 5 files changed, 51 insertions(+), 179 deletions(-) delete mode 100644 core/src/runtime/memory.rs diff --git a/core/src/runtime/memory.rs b/core/src/runtime/memory.rs deleted file mode 100644 index 719903ab..00000000 --- a/core/src/runtime/memory.rs +++ /dev/null @@ -1,92 +0,0 @@ -use serde::{Deserialize, Serialize}; - -/// An record of a write to a memory address. -#[derive(Debug, Copy, Clone, Default, Serialize, Deserialize)] -pub struct MemoryRecord { - /// The value at the memory address. - pub value: u32, - - /// The timestamp at which the memory address was last written to. - pub timestamp: u32, -} - -#[derive(Copy, Clone, Debug, PartialEq)] -pub enum MemoryAccessPosition { - Memory = 0, - // Note that these AccessPositions mean that when when read/writing registers, they must be - // read/written in the following order: C, B, A. - C = 1, - B = 2, - A = 3, -} - -#[derive(Debug, Copy, Clone, Serialize, Deserialize)] -pub enum MemoryRecordEnum { - Read(MemoryReadRecord), - Write(MemoryWriteRecord), -} - -#[allow(clippy::manual_non_exhaustive)] -#[derive(Debug, Copy, Clone, Default, Serialize, Deserialize)] -pub struct MemoryReadRecord { - pub value: u32, - pub timestamp: u32, - pub prev_timestamp: u32, - _private: (), -} - -#[allow(clippy::manual_non_exhaustive)] -#[derive(Debug, Copy, Clone, Default, Serialize, Deserialize)] -pub struct MemoryWriteRecord { - pub value: u32, - pub timestamp: u32, - pub prev_value: u32, - pub prev_timestamp: u32, - _private: (), -} - -impl MemoryRecordEnum { - pub const fn value(&self) -> u32 { - match self { - MemoryRecordEnum::Read(record) => record.value, - MemoryRecordEnum::Write(record) => record.value, - } - } -} - -impl From for MemoryRecordEnum { - fn from(read_record: MemoryReadRecord) -> Self { - MemoryRecordEnum::Read(read_record) - } -} - -impl From for MemoryRecordEnum { - fn from(write_record: MemoryWriteRecord) -> Self { - MemoryRecordEnum::Write(write_record) - } -} - -impl MemoryReadRecord { - pub const fn new(value: u32, timestamp: u32, prev_timestamp: u32) -> Self { - assert!(timestamp > prev_timestamp); - Self { - value, - timestamp, - prev_timestamp, - _private: (), - } - } -} - -impl MemoryWriteRecord { - pub const fn new(value: u32, timestamp: u32, prev_value: u32, prev_timestamp: u32) -> Self { - assert!(timestamp > prev_timestamp); - Self { - value, - timestamp, - prev_value, - prev_timestamp, - _private: (), - } - } -} diff --git a/core/src/runtime/mod.rs b/core/src/runtime/mod.rs index 0339b61d..20bd079d 100644 --- a/core/src/runtime/mod.rs +++ b/core/src/runtime/mod.rs @@ -1,6 +1,5 @@ mod instruction; mod io; -mod memory; mod opcode; mod program; mod register; @@ -10,7 +9,6 @@ mod syscall; mod utils; pub use instruction::*; -pub use memory::*; pub use opcode::*; pub use program::*; pub use register::*; @@ -79,6 +77,17 @@ pub struct Runtime { pub max_syscall_cycles: u32, } +/// An record of a write to a memory address. +#[derive(Copy, Clone, Debug, PartialEq)] +pub enum MemoryAccessPosition { + Memory = 0, + // Note that these AccessPositions mean that when when read/writing registers, they must be + // read/written in the following order: C, B, A. + C = 1, + B = 2, + A = 3, +} + #[derive(Error, Debug)] pub enum ExecutionError { #[error("execution failed with exit code {0}")] @@ -156,7 +165,7 @@ where for i in 0..32 { let addr = Register::from_u32(i as u32) as u32; registers[i] = match self.state.memory.get(&addr) { - Some(record) => record.value, + Some(record) => *record, None => 0, }; } @@ -167,7 +176,7 @@ where pub fn register(&self, register: Register) -> u32 { let addr = register as u32; match self.state.memory.get(&addr) { - Some(record) => record.value, + Some(record) => *record, None => 0, } } @@ -175,7 +184,7 @@ where /// Get the current value of a word. pub fn word(&self, addr: u32) -> u32 { match self.state.memory.get(&addr) { - Some(record) => record.value, + Some(record) => *record, None => 0, } } @@ -186,14 +195,9 @@ where (word >> ((addr % 4) * 8)) as u8 } - /// Get the current timestamp for a given memory access position. - pub const fn timestamp(&self, position: &MemoryAccessPosition) -> u32 { - self.state.clk + *position as u32 - } - /// Read a word from memory and create an access record. - pub fn mr(&mut self, addr: u32, timestamp: u32) -> MemoryReadRecord { - // Get the memory record entry. + pub fn mr(&mut self, addr: u32) -> u32 { + // Get the memory entry. let entry = self.state.memory.entry(addr); // If we're in unconstrained mode, we don't want to modify state, so we'll save the @@ -211,28 +215,18 @@ where } // If it's the first time accessing this address, initialize previous values. - let record: &mut MemoryRecord = match entry { - Entry::Occupied(entry) => entry.into_mut(), + match entry { + Entry::Occupied(entry) => *entry.get(), Entry::Vacant(entry) => { // If addr has a specific value to be initialized with, use that, otherwise 0. let value = self.state.uninitialized_memory.remove(&addr).unwrap_or(0); - - entry.insert(MemoryRecord { - value, - timestamp: 0, - }) + *entry.insert(value) } - }; - let value = record.value; - let prev_timestamp = record.timestamp; - record.timestamp = timestamp; - - // Construct the memory read record. - MemoryReadRecord::new(value, timestamp, prev_timestamp) + } } /// Write a word to memory and create an access record. - pub fn mw(&mut self, addr: u32, value: u32, timestamp: u32) -> MemoryWriteRecord { + pub fn mw(&mut self, addr: u32, value: u32) { // Get the memory record entry. let entry = self.state.memory.entry(addr); @@ -249,27 +243,16 @@ where .entry(addr) .or_insert(record.copied()); } - - // If it's the first time accessing this address, initialize previous values. - let record: &mut MemoryRecord = match entry { - Entry::Occupied(entry) => entry.into_mut(), + match entry { + Entry::Occupied(mut entry) => { + entry.insert(value); + } Entry::Vacant(entry) => { // If addr has a specific value to be initialized with, use that, otherwise 0. - let value = self.state.uninitialized_memory.remove(&addr).unwrap_or(0); - - entry.insert(MemoryRecord { - value, - timestamp: 0, - }) + self.state.uninitialized_memory.remove(&addr); + entry.insert(value); } }; - let prev_value = record.value; - let prev_timestamp = record.timestamp; - record.value = value; - record.timestamp = timestamp; - - // Construct the memory write record. - MemoryWriteRecord::new(value, timestamp, prev_value, prev_timestamp) } /// Read from memory, assuming that all addresses are aligned. @@ -278,9 +261,7 @@ where assert_valid_memory_access!(addr, position); // Read the address from memory and create a memory read record. - let record = self.mr(addr, self.timestamp(&position)); - - record.value + self.mr(addr) } /// Write to memory. @@ -289,7 +270,7 @@ where assert_valid_memory_access!(addr, position); // Read the address from memory and create a memory read record. - let _ = self.mw(addr, value, self.timestamp(&position)); + self.mw(addr, value); } /// Read from a register. @@ -744,13 +725,7 @@ where tracing::info!("loading memory image"); for (addr, value) in self.program.memory_image.iter() { - self.state.memory.insert( - *addr, - MemoryRecord { - value: *value, - timestamp: 0, - }, - ); + self.state.memory.insert(*addr, *value); } tracing::info!("starting execution"); diff --git a/core/src/runtime/state.rs b/core/src/runtime/state.rs index 9b445e0e..b3cfe5a5 100644 --- a/core/src/runtime/state.rs +++ b/core/src/runtime/state.rs @@ -4,8 +4,6 @@ use nohash_hasher::BuildNoHashHasher; use serde::{Deserialize, Serialize}; use serde_with::serde_as; -use super::MemoryRecord; - /// Holds data describing the current state of a program's execution. #[serde_as] #[derive(Debug, Clone, Default, Serialize, Deserialize)] @@ -21,7 +19,7 @@ pub struct ExecutionState { pub pc: u32, /// The memory which instructions operate over. - pub memory: HashMap>, + pub memory: HashMap>, /// Uninitialized memory addresses that have a specific value they should be initialized with. /// SyscallHintRead uses this to write hint data into uninitialized memory. @@ -60,5 +58,5 @@ impl ExecutionState { #[derive(Debug, Clone, Default)] pub(crate) struct ForkState { /// Only contains the original memory values for addresses that have been modified - pub(crate) memory_diff: HashMap, BuildNoHashHasher>, + pub(crate) memory_diff: HashMap, BuildNoHashHasher>, } diff --git a/core/src/runtime/syscall.rs b/core/src/runtime/syscall.rs index db1b3012..342bfca3 100644 --- a/core/src/runtime/syscall.rs +++ b/core/src/runtime/syscall.rs @@ -8,7 +8,6 @@ use crate::syscall::{ SyscallHalt, SyscallHintLen, SyscallHintRead, SyscallHostCall, SyscallHostGetBalance, SyscallHostRead, SyscallHostWrite, SyscallWrite, }; -use crate::{runtime::MemoryReadRecord, runtime::MemoryWriteRecord}; use athena_interface::HostInterface; @@ -109,50 +108,42 @@ where } } - pub fn mr(&mut self, addr: u32) -> (MemoryReadRecord, u32) { - let record = self.rt.mr(addr, self.clk); - (record, record.value) + pub fn mr(&mut self, addr: u32) -> u32 { + self.rt.mr(addr) } - pub fn mr_slice(&mut self, addr: u32, len: usize) -> (Vec, Vec) { - let mut records = Vec::new(); + pub fn mr_slice(&mut self, addr: u32, len: usize) -> Vec { let mut values = Vec::new(); for i in 0..len { - let (record, value) = self.mr(addr + i as u32 * 4); - records.push(record); + let value = self.mr(addr + i as u32 * 4); values.push(value); } - (records, values) + values } - pub fn mw(&mut self, addr: u32, value: u32) -> MemoryWriteRecord { - self.rt.mw(addr, value, self.clk) + pub fn mw(&mut self, addr: u32, value: u32) { + self.rt.mw(addr, value); } - pub fn mw_slice(&mut self, addr: u32, values: &[u32]) -> Vec { - let mut records = Vec::new(); + pub fn mw_slice(&mut self, addr: u32, values: &[u32]) { for i in 0..values.len() { - let record = self.mw(addr + i as u32 * 4, values[i]); - records.push(record); + self.mw(addr + i as u32 * 4, values[i]); } - records } - /// Get the current value of a register, but doesn't use a memory record. - /// This is generally unconstrained, so you must be careful using it. - pub fn register_unsafe(&self, register: Register) -> u32 { + pub fn register(&self, register: Register) -> u32 { self.rt.register(register) } - pub fn byte_unsafe(&self, addr: u32) -> u8 { + pub fn byte(&self, addr: u32) -> u8 { self.rt.byte(addr) } - pub fn word_unsafe(&self, addr: u32) -> u32 { + pub fn word(&self, addr: u32) -> u32 { self.rt.word(addr) } - pub fn slice_unsafe(&self, addr: u32, len: usize) -> Vec { + pub fn slice(&self, addr: u32, len: usize) -> Vec { let mut values = Vec::new(); for i in 0..len { values.push(self.rt.word(addr + i as u32 * 4)); diff --git a/core/src/syscall/host.rs b/core/src/syscall/host.rs index b74c0006..547c50ae 100644 --- a/core/src/syscall/host.rs +++ b/core/src/syscall/host.rs @@ -24,7 +24,7 @@ where .expect("Missing Athena runtime context"); // marshal inputs - let key = ctx.slice_unsafe(arg1, BYTES32_LENGTH / 4); + let key = ctx.slice(arg1, BYTES32_LENGTH / 4); // read value from host let host = ctx.rt.host.as_mut().expect("Missing host interface"); @@ -59,8 +59,8 @@ where .expect("Missing Athena runtime context"); // marshal inputs - let key = ctx.slice_unsafe(arg1, BYTES32_LENGTH / 4); - let value = ctx.slice_unsafe(arg2, BYTES32_LENGTH / 4); + let key = ctx.slice(arg1, BYTES32_LENGTH / 4); + let value = ctx.slice(arg2, BYTES32_LENGTH / 4); // write value to host let host = ctx.rt.host.as_mut().expect("Missing host interface"); @@ -117,7 +117,7 @@ where // marshal inputs let address_words = ADDRESS_LENGTH / 4; - let address = ctx.slice_unsafe(arg1, address_words); + let address = ctx.slice(arg1, address_words); let address = AddressWrapper::from(address); // read the input length from the next register @@ -130,7 +130,7 @@ where // `len` is denominated in number of bytes; we read words in chunks of four bytes // then convert into a standard bytearray. let input = if len > 0 { - let input_slice = ctx.slice_unsafe(arg2, len / 4); + let input_slice = ctx.slice(arg2, len / 4); Some( input_slice .iter() @@ -144,7 +144,7 @@ where // read the amount pointer from the next register as little-endian let a3 = Register::X13; let amount_ptr = ctx.rt.register(a3); - let amount_slice = ctx.slice_unsafe(amount_ptr, 2); + let amount_slice = ctx.slice(amount_ptr, 2); let amount = u64::from(amount_slice[0]) | (u64::from(amount_slice[1]) << 32); // note: host is responsible for checking balance and stack depth From 8f4dd9ef8839c297b6d9a4238c1c645f829c1e44 Mon Sep 17 00:00:00 2001 From: Lane Rettig Date: Wed, 24 Jul 2024 13:47:29 -0700 Subject: [PATCH 2/2] Simplify memory further --- core/src/runtime/mod.rs | 35 +----------------- core/src/runtime/state.rs | 7 ---- core/src/runtime/syscall.rs | 15 +------- .../fibonacci/program/elf/fibonacci-program | Bin 109696 -> 109260 bytes .../program/elf/hello-world-program | Bin 89804 -> 89372 bytes examples/io/program/elf/io-program | Bin 186444 -> 186024 bytes 6 files changed, 3 insertions(+), 54 deletions(-) diff --git a/core/src/runtime/mod.rs b/core/src/runtime/mod.rs index 20bd079d..3cd81b13 100644 --- a/core/src/runtime/mod.rs +++ b/core/src/runtime/mod.rs @@ -67,9 +67,6 @@ pub struct Runtime { /// Max gas for the runtime. pub max_gas: Option, - /// The state of the runtime when in unconstrained mode. - pub(crate) unconstrained_state: ForkState, - /// The mapping between syscall codes and their implementations. pub syscall_map: HashMap>>, @@ -146,7 +143,6 @@ where trace_buf, unconstrained: false, max_gas: opts.max_gas(), - unconstrained_state: ForkState::default(), syscall_map, max_syscall_cycles, } @@ -195,25 +191,11 @@ where (word >> ((addr % 4) * 8)) as u8 } - /// Read a word from memory and create an access record. + /// Read a word from memory. pub fn mr(&mut self, addr: u32) -> u32 { // Get the memory entry. let entry = self.state.memory.entry(addr); - // If we're in unconstrained mode, we don't want to modify state, so we'll save the - // original state if it's the first time modifying it. - if self.unconstrained { - let record = match entry { - Entry::Occupied(ref entry) => Some(entry.get()), - Entry::Vacant(_) => None, - }; - self - .unconstrained_state - .memory_diff - .entry(addr) - .or_insert(record.copied()); - } - // If it's the first time accessing this address, initialize previous values. match entry { Entry::Occupied(entry) => *entry.get(), @@ -225,24 +207,11 @@ where } } - /// Write a word to memory and create an access record. + /// Write a word to memory. pub fn mw(&mut self, addr: u32, value: u32) { // Get the memory record entry. let entry = self.state.memory.entry(addr); - // If we're in unconstrained mode, we don't want to modify state, so we'll save the - // original state if it's the first time modifying it. - if self.unconstrained { - let record = match entry { - Entry::Occupied(ref entry) => Some(entry.get()), - Entry::Vacant(_) => None, - }; - self - .unconstrained_state - .memory_diff - .entry(addr) - .or_insert(record.copied()); - } match entry { Entry::Occupied(mut entry) => { entry.insert(value); diff --git a/core/src/runtime/state.rs b/core/src/runtime/state.rs index b3cfe5a5..bc7cec39 100644 --- a/core/src/runtime/state.rs +++ b/core/src/runtime/state.rs @@ -53,10 +53,3 @@ impl ExecutionState { } } } - -/// Holds data to track changes made to the runtime since a fork point. -#[derive(Debug, Clone, Default)] -pub(crate) struct ForkState { - /// Only contains the original memory values for addresses that have been modified - pub(crate) memory_diff: HashMap, BuildNoHashHasher>, -} diff --git a/core/src/runtime/syscall.rs b/core/src/runtime/syscall.rs index 342bfca3..017899c8 100644 --- a/core/src/runtime/syscall.rs +++ b/core/src/runtime/syscall.rs @@ -108,19 +108,6 @@ where } } - pub fn mr(&mut self, addr: u32) -> u32 { - self.rt.mr(addr) - } - - pub fn mr_slice(&mut self, addr: u32, len: usize) -> Vec { - let mut values = Vec::new(); - for i in 0..len { - let value = self.mr(addr + i as u32 * 4); - values.push(value); - } - values - } - pub fn mw(&mut self, addr: u32, value: u32) { self.rt.mw(addr, value); } @@ -146,7 +133,7 @@ where pub fn slice(&self, addr: u32, len: usize) -> Vec { let mut values = Vec::new(); for i in 0..len { - values.push(self.rt.word(addr + i as u32 * 4)); + values.push(self.word(addr + i as u32 * 4)); } values } diff --git a/examples/fibonacci/program/elf/fibonacci-program b/examples/fibonacci/program/elf/fibonacci-program index f90c9ff82cabe010023b8eacf8ae0a456c1d6359..5a90ab1a803c3a88fe0a8b4c6e1932676c06f330 100755 GIT binary patch delta 35367 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 delta 35703 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 diff --git a/examples/hello_world/program/elf/hello-world-program b/examples/hello_world/program/elf/hello-world-program index 6cd90e1208dd3dc79a490281206864976ac5ec3a..160b0427c65fca2c0f17f8db35d699a1facd3bf6 100755 GIT binary patch delta 30122 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 diff --git a/examples/io/program/elf/io-program b/examples/io/program/elf/io-program index 286123f79b54f0777ec0137e669b8005360ecf00..b38364bb12e3a549e97509b387fed4f55a1c6bb1 100755 GIT binary patch delta 57652 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 delta 58077 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