Skip to main content

SharedDramReadScenario

Robotics scenarios · Implementation: mlsysim/engine/scenario_definitions/robotics/placement.py.

Construct this scenario with keyword inputs. The fields below show the types and defaults declared by this class.

site’s permission tick placed on the machine’s application SoC, its snapshot read queued behind backlogs on the shared DRAM controller.

Bandwidth is the SoC memory’s peak; the row-conflict time is memory_tech’s t_RP + t_RCD. Addresses interleave across every channel unless one_channel confines the backlog and the read to one, which divides the bandwidth by the channel count (bus width over channel width).

Notes

Equation: result evaluates the configured solver; its contract owns the governing equations.

Assumptions: The selected channel bandwidth and row-switch penalty price fixed competing backlogs.

Excludes: A detailed memory-controller schedule, cache hits, and a measured WCET guarantee.

References

Derivation: The scenario binds declared inputs to SharedDramReadModel. Those implementations document their derivations and sources.

Examples

Execute the registered worked inputs; this is a modeled calculation.

>>> from mlsysim import Scenarios
>>> case = Scenarios.WarehouseSharedDieLoadedRead
>>> value = case.result
>>> print(f"{value.loaded_read.m_as('microsecond'):.3f} microsecond")
1.899 microsecond

Attributes

Name Description
bandwidth Memory bandwidth available to the modeled read, optionally restricted to one channel.
bank_switch_time Row-switch penalty in ns, precharge plus activation time.
bank_switches
camera_bytes
channels Rounded channel count from memory bus width divided by channel width.
compute_after_sense
memory Application SoC memory specification used for the shared-read estimate.
memory_tech
one_channel
result Evaluate the configured inputs with mlsysim.solvers.SharedDramReadModel.solve.
sense
site
snapshot_bytes
telemetry_bytes
tile_bytes
transaction_bytes

site

Type: Any.

Declared default: required.

memory_tech

Type: Any.

Declared default: required.

sense

Type: Quantity.

Declared default: required.

compute_after_sense

Type: Quantity.

Declared default: required.

tile_bytes

Type: int.

Declared default: required.

camera_bytes

Type: int.

Declared default: required.

telemetry_bytes

Type: int.

Declared default: required.

snapshot_bytes

Type: int.

Declared default: required.

transaction_bytes

Type: int.

Declared default: required.

bank_switches

Type: int.

Declared default: required.

one_channel

Type: bool.

Declared default: False.

memory

engine.scenario_types.SharedDramReadScenario.memory

Application SoC memory specification used for the shared-read estimate.

Equation: return self.site.machine.brain_soc.memory

channels

engine.scenario_types.SharedDramReadScenario.channels

Rounded channel count from memory bus width divided by channel width.

Equation: return int(round((self.memory.bus_width / self.memory_tech.channel_width).to(’’).magnitude))

bank_switch_time

engine.scenario_types.SharedDramReadScenario.bank_switch_time

Row-switch penalty in ns, precharge plus activation time.

Equation: return (self.memory_tech.t_rp + self.memory_tech.t_rcd).to(‘ns’)

bandwidth

engine.scenario_types.SharedDramReadScenario.bandwidth

Memory bandwidth available to the modeled read, optionally restricted to one channel.

Equation: bw = self.memory.bandwidth return bw / self.channels if self.one_channel else bw

result

engine.scenario_types.SharedDramReadScenario.result

Evaluate the configured inputs with mlsysim.solvers.SharedDramReadModel.solve.

The returned typed result retains the solver’s documented units, assumptions, and feasibility semantics; this property adds no measurement or safety claim. Equation: result = SharedDramReadModel().solve(...) using the fields shown below.

Back to top