Documentation
¶
Overview ¶
Package tlb provides a TLB component implementation.
Index ¶
- type Builder
- func (b Builder) Build(name string) *TLB
- func (b Builder) WithEngine(engine akita.Engine) Builder
- func (b Builder) WithFreq(freq akita.Freq) Builder
- func (b Builder) WithLowModule(lowModule akita.Port) Builder
- func (b Builder) WithNumMSHREntry(num int) Builder
- func (b Builder) WithNumReqPerCycle(n int) Builder
- func (b Builder) WithNumSets(n int) Builder
- func (b Builder) WithNumWays(n int) Builder
- func (b Builder) WithPageSize(n uint64) Builder
- type TLB
- type TLBFlushReq
- type TLBFlushReqBuilder
- func (b TLBFlushReqBuilder) Build() *TLBFlushReq
- func (b TLBFlushReqBuilder) WithDst(dst akita.Port) TLBFlushReqBuilder
- func (b TLBFlushReqBuilder) WithPID(pid ca.PID) TLBFlushReqBuilder
- func (b TLBFlushReqBuilder) WithSendTime(t akita.VTimeInSec) TLBFlushReqBuilder
- func (b TLBFlushReqBuilder) WithSrc(src akita.Port) TLBFlushReqBuilder
- func (b TLBFlushReqBuilder) WithVAddrs(vAddrs []uint64) TLBFlushReqBuilder
- type TLBFlushRsp
- type TLBFlushRspBuilder
- type TLBRestartReq
- type TLBRestartReqBuilder
- type TLBRestartRsp
- type TLBRestartRspBuilder
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 TLBs
func (Builder) WithEngine ¶
WithEngine sets the engine that the TLBs to use
func (Builder) WithLowModule ¶
WithLowModule sets the port that can provide the address translation in case of tlb miss.
func (Builder) WithNumMSHREntry ¶
WithNumMSHREntry sets the number of mshr entry
func (Builder) WithNumReqPerCycle ¶
WithNumReqPerCycle sets the number of requests per cycle can be processed by a TLB
func (Builder) WithNumSets ¶
WithNumSets sets the number of sets in a TLB. Use 1 for fully associated TLBs.
func (Builder) WithNumWays ¶
WithNumWays sets the number of ways in a TLB. Set this field to the number of TLB entries for all the functions.
func (Builder) WithPageSize ¶
WithPageSize sets the page size that the TLB works with.
type TLB ¶
type TLB struct { *akita.TickingComponent TopPort akita.Port BottomPort akita.Port ControlPort akita.Port LowModule akita.Port Sets []internal.Set // contains filtered or unexported fields }
A TLB is a cache that maintains some page information.
type TLBFlushReq ¶
A TLBFlushReq asks the TLB to invalidate certain entries. It will also not block all incoming and outgoing ports
func (*TLBFlushReq) Meta ¶
func (r *TLBFlushReq) Meta() *akita.MsgMeta
Meta returns the meta data associated with the message.
type TLBFlushReqBuilder ¶
type TLBFlushReqBuilder struct {
// contains filtered or unexported fields
}
TLBFlushReqBuilder can build AT flush requests
func (TLBFlushReqBuilder) Build ¶
func (b TLBFlushReqBuilder) Build() *TLBFlushReq
Build creates a new TLBFlushReq
func (TLBFlushReqBuilder) WithDst ¶
func (b TLBFlushReqBuilder) WithDst(dst akita.Port) TLBFlushReqBuilder
WithDst sets the destination of the request to build.
func (TLBFlushReqBuilder) WithPID ¶
func (b TLBFlushReqBuilder) WithPID(pid ca.PID) TLBFlushReqBuilder
WithPID sets the pid whose entries are to be flushed
func (TLBFlushReqBuilder) WithSendTime ¶
func (b TLBFlushReqBuilder) WithSendTime( t akita.VTimeInSec, ) TLBFlushReqBuilder
WithSendTime sets the send time of the request to build.:w
func (TLBFlushReqBuilder) WithSrc ¶
func (b TLBFlushReqBuilder) WithSrc(src akita.Port) TLBFlushReqBuilder
WithSrc sets the source of the request to build.
func (TLBFlushReqBuilder) WithVAddrs ¶
func (b TLBFlushReqBuilder) WithVAddrs(vAddrs []uint64) TLBFlushReqBuilder
WithVAddrs sets the Vaddr of the pages to be flushed
type TLBFlushRsp ¶
A TLBFlushRsp is a response from AT indicating flush is complete
func (*TLBFlushRsp) Meta ¶
func (r *TLBFlushRsp) Meta() *akita.MsgMeta
Meta returns the meta data associated with the message.
type TLBFlushRspBuilder ¶
type TLBFlushRspBuilder struct {
// contains filtered or unexported fields
}
TLBFlushRspBuilder can build AT flush rsp
func (TLBFlushRspBuilder) Build ¶
func (b TLBFlushRspBuilder) Build() *TLBFlushRsp
Build creats a new TLBFlushRsps
func (TLBFlushRspBuilder) WithDst ¶
func (b TLBFlushRspBuilder) WithDst(dst akita.Port) TLBFlushRspBuilder
WithDst sets the destination of the request to build.
func (TLBFlushRspBuilder) WithSendTime ¶
func (b TLBFlushRspBuilder) WithSendTime( t akita.VTimeInSec, ) TLBFlushRspBuilder
WithSendTime sets the send time of the request to build.:w
func (TLBFlushRspBuilder) WithSrc ¶
func (b TLBFlushRspBuilder) WithSrc(src akita.Port) TLBFlushRspBuilder
WithSrc sets the source of the request to build.
type TLBRestartReq ¶
A TLBRestartReq is a request to TLB to start accepting requests and resume operations
func (*TLBRestartReq) Meta ¶
func (r *TLBRestartReq) Meta() *akita.MsgMeta
Meta returns the meta data associated with the message.
type TLBRestartReqBuilder ¶
type TLBRestartReqBuilder struct {
// contains filtered or unexported fields
}
TLBFlushRspBuilder can build AT flush rsp
func (TLBRestartReqBuilder) Build ¶
func (b TLBRestartReqBuilder) Build() *TLBRestartReq
Build creats a new TLBRestartReq
func (TLBRestartReqBuilder) WithDst ¶
func (b TLBRestartReqBuilder) WithDst(dst akita.Port) TLBRestartReqBuilder
WithDst sets the destination of the request to build.
func (TLBRestartReqBuilder) WithSendTime ¶
func (b TLBRestartReqBuilder) WithSendTime( t akita.VTimeInSec, ) TLBRestartReqBuilder
WithSendTime sets the send time of the request to build.:w
func (TLBRestartReqBuilder) WithSrc ¶
func (b TLBRestartReqBuilder) WithSrc(src akita.Port) TLBRestartReqBuilder
WithSrc sets the source of the request to build.
type TLBRestartRsp ¶
A TLBRestartRsp is a response from AT indicating it has resumed working
func (*TLBRestartRsp) Meta ¶
func (r *TLBRestartRsp) Meta() *akita.MsgMeta
Meta returns the meta data associated with the message.
type TLBRestartRspBuilder ¶
type TLBRestartRspBuilder struct {
// contains filtered or unexported fields
}
TLBRestartRspBuilder can build AT flush rsp
func (TLBRestartRspBuilder) Build ¶
func (b TLBRestartRspBuilder) Build() *TLBRestartRsp
Build creates a new TLBRestartRsp
func (TLBRestartRspBuilder) WithDst ¶
func (b TLBRestartRspBuilder) WithDst(dst akita.Port) TLBRestartRspBuilder
WithDst sets the destination of the request to build.
func (TLBRestartRspBuilder) WithSendTime ¶
func (b TLBRestartRspBuilder) WithSendTime( t akita.VTimeInSec, ) TLBRestartRspBuilder
WithSendTime sets the send time of the request to build.:w
func (TLBRestartRspBuilder) WithSrc ¶
func (b TLBRestartRspBuilder) WithSrc(src akita.Port) TLBRestartRspBuilder
WithSrc sets the source of the request to build.