writearound

package
v3.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 13, 2024 License: MIT Imports: 9 Imported by: 6

Documentation

Overview

Package writearound provides a GCN3 GPU L1 cache implementation.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

A Builder can build an writearound cache

func NewBuilder

func NewBuilder() *Builder

NewBuilder creates a builder with default parameter setting

func (*Builder) Build

func (b *Builder) Build(name string) *Cache

Build returns a new cache unit

func (*Builder) WithBankLatency

func (b *Builder) WithBankLatency(n int) *Builder

WithBankLatency sets the number of cycles needed to read to write a cacheline.

func (*Builder) WithDirectoryLatency

func (b *Builder) WithDirectoryLatency(n int) *Builder

WithDirectoryLatency sets the number of cycles required to access the directory.

func (*Builder) WithEngine

func (b *Builder) WithEngine(engine sim.Engine) *Builder

WithEngine sets the event driven simulation engine that the cache uses

func (*Builder) WithFreq

func (b *Builder) WithFreq(freq sim.Freq) *Builder

WithFreq sets the frequency that the cache works at

func (*Builder) WithLog2BlockSize

func (b *Builder) WithLog2BlockSize(n uint64) *Builder

WithLog2BlockSize sets the number of bytes in a cache line as a power of 2

func (*Builder) WithLowModuleFinder

func (b *Builder) WithLowModuleFinder(
	lowModuleFinder mem.LowModuleFinder,
) *Builder

WithLowModuleFinder specifies how the cache units to create should find low level modules.

func (*Builder) WithMaxNumConcurrentTrans

func (b *Builder) WithMaxNumConcurrentTrans(n int) *Builder

WithMaxNumConcurrentTrans sets the maximum number of concurrent transactions that the cache can process.

func (*Builder) WithNumBanks

func (b *Builder) WithNumBanks(n int) *Builder

WithNumBanks sets the number of banks in each cache

func (*Builder) WithNumMSHREntry

func (b *Builder) WithNumMSHREntry(num int) *Builder

WithNumMSHREntry sets the number of mshr entry

func (*Builder) WithNumReqsPerCycle

func (b *Builder) WithNumReqsPerCycle(n int) *Builder

WithNumReqsPerCycle sets the number of requests that the cache can process per cycle

func (*Builder) WithTotalByteSize

func (b *Builder) WithTotalByteSize(byteSize uint64) *Builder

WithTotalByteSize sets the capacity of the cache unit

func (*Builder) WithVisTracer

func (b *Builder) WithVisTracer(tracer tracing.Tracer) *Builder

WithVisTracer sets the visualization tracer

func (*Builder) WithWayAssociativity

func (b *Builder) WithWayAssociativity(wayAssociativity int) *Builder

WithWayAssociativity sets the way associativity the builder builds.

type Cache

type Cache struct {
	*sim.TickingComponent
	// contains filtered or unexported fields
}

A Cache is a customized L1 cache the for R9nano GPUs.

func (*Cache) SetLowModuleFinder

func (c *Cache) SetLowModuleFinder(lmf mem.LowModuleFinder)

SetLowModuleFinder sets the finder that tells which remote port can serve the data on a certain address.

func (*Cache) Tick

func (c *Cache) Tick(now sim.VTimeInSec) bool

Tick update the state of the cache

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL