Documentation
¶
Overview ¶
Package org defines the DRAM organization related sub-component definitions, such as Channels and Banks.
Index ¶
- type Bank
- type BankImpl
- func (b *BankImpl) GetReadyCommand(now sim.VTimeInSec, cmd *signal.Command) *signal.Command
- func (b *BankImpl) Name() string
- func (b *BankImpl) StartCommand(now sim.VTimeInSec, cmd *signal.Command)
- func (b *BankImpl) Tick(now sim.VTimeInSec) (madeProgress bool)
- func (b *BankImpl) UpdateTiming(cmdKind signal.CommandKind, cycleNeeded int)
- type BankState
- type Banks
- type Channel
- type ChannelImpl
- func (cs *ChannelImpl) GetReadyCommand(now sim.VTimeInSec, cmd *signal.Command) *signal.Command
- func (cs *ChannelImpl) StartCommand(now sim.VTimeInSec, cmd *signal.Command)
- func (cs *ChannelImpl) Tick(now sim.VTimeInSec) (madeProgress bool)
- func (cs *ChannelImpl) UpdateTiming(now sim.VTimeInSec, cmd *signal.Command)
- type TimeTable
- type TimeTableEntry
- type Timing
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Bank ¶
type Bank interface { tracing.NamedHookable GetReadyCommand( now sim.VTimeInSec, cmd *signal.Command, ) *signal.Command StartCommand(now sim.VTimeInSec, cmd *signal.Command) UpdateTiming(cmdKind signal.CommandKind, cycleNeeded int) Tick(now sim.VTimeInSec) bool }
A Bank is a DRAM Bank. It contains a number of rows and columns.
type BankImpl ¶
type BankImpl struct { sim.HookableBase BankName string CmdCycles map[signal.CommandKind]int // contains filtered or unexported fields }
BankImpl provides a basic implementation of a bank.
func (*BankImpl) GetReadyCommand ¶
GetReadyCommand returns the next command is ready to be issued.
func (*BankImpl) StartCommand ¶
func (b *BankImpl) StartCommand(now sim.VTimeInSec, cmd *signal.Command)
StartCommand starts a new command in the Bank.
func (*BankImpl) Tick ¶
func (b *BankImpl) Tick(now sim.VTimeInSec) (madeProgress bool)
Tick updates the internal states of the bank.
func (*BankImpl) UpdateTiming ¶
func (b *BankImpl) UpdateTiming(cmdKind signal.CommandKind, cycleNeeded int)
UpdateTiming updates timing related states of the bank.
type Banks ¶
type Banks [][][]Bank
Banks is indexed by rank, bank-group, bank.
type Channel ¶
type Channel interface { GetReadyCommand( now sim.VTimeInSec, cmd *signal.Command, ) *signal.Command StartCommand( now sim.VTimeInSec, cmd *signal.Command, ) UpdateTiming( now sim.VTimeInSec, cmd *signal.Command, ) Tick(now sim.VTimeInSec) (madeProgress bool) }
A Channel is a group of ranks.
type ChannelImpl ¶
ChannelImpl implements a Channel.
func (*ChannelImpl) GetReadyCommand ¶
func (cs *ChannelImpl) GetReadyCommand( now sim.VTimeInSec, cmd *signal.Command, ) *signal.Command
GetReadyCommand returns the command that is ready to start in the channel.
func (*ChannelImpl) StartCommand ¶
func (cs *ChannelImpl) StartCommand(now sim.VTimeInSec, cmd *signal.Command)
StartCommand starts a command in a bank.
func (*ChannelImpl) Tick ¶
func (cs *ChannelImpl) Tick(now sim.VTimeInSec) (madeProgress bool)
Tick updates the internal states of the channel.
func (*ChannelImpl) UpdateTiming ¶
func (cs *ChannelImpl) UpdateTiming(now sim.VTimeInSec, cmd *signal.Command)
UpdateTiming updates the timing-related states of the banks.
type TimeTable ¶
type TimeTable [][]TimeTableEntry
TimeTable is a table that records the minimum number of cycles between any two types of DRAM commands.
type TimeTableEntry ¶
type TimeTableEntry struct { NextCmdKind signal.CommandKind MinCycleInBetween int }
TimeTableEntry is an entry in the TimeTable.