pub enum ArrayRole {
Heap,
FrameStack,
ConfigImage,
BlockTable,
RegisterFile,
Scratch,
}Expand description
What an array is FOR — which is what decides whether it can live off-chip.
Off-chip residence is not a property of size. It is a property of access pattern: an array that is read every cycle by combinational logic cannot cross a package boundary at any capacity, while one the FSM already reads through an ISSUE/WAIT/LATCH triplet can absorb an N-cycle transaction as a latency change to a structure that already exists.
Variants§
Heap
The program’s runtime state plane (heap_*). Bulk, latency-tolerant, already registered.
FrameStack
The call-frame spill area (sfile_*), touched only at Call and Return.
ConfigImage
The program image itself (cell_*) — what the loader streams in and the interpreter walks.
BlockTable
Per-block metadata (blk_*, wr_*, liv_reg, arg_op): small, random-access, hot.
RegisterFile
The register file and its write buffer (file_*, param_buf, wbuf_*).
Scratch
Per-block value scratch (v_*), the constant table, and the tiny return stacks.
Trait Implementations§
impl Copy for ArrayRole
impl Eq for ArrayRole
impl StructuralPartialEq for ArrayRole
Auto Trait Implementations§
impl Freeze for ArrayRole
impl RefUnwindSafe for ArrayRole
impl Send for ArrayRole
impl Sync for ArrayRole
impl Unpin for ArrayRole
impl UnsafeUnpin for ArrayRole
impl UnwindSafe for ArrayRole
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.