L1 Instruction Cache
- class ember.front.l1i.L1ICacheReadPort(p: EmberParams)
- class Request(p: EmberParams)
Request to read all tag/data ways for some set in the L1I cache.
- class Response(p: EmberParams)
Response with all tag/data ways for a particular set in the L1I cache.
- class ember.front.l1i.L1ICacheWritePort(p: EmberParams)
An L1I cache write port.
- class Request(p: EmberParams)
A request to write a particular set/way in the L1I cache.
- class Response(p: EmberParams)
Response to a write request.
- class ember.front.l1i.L1ICacheDataArray(*args, src_loc_at=0, **kwargs)
L1 instruction cache data array.
The data array is a memory whose capacity is the number of sets in the L1I cache, and where elements in the array are caches lines.
Read ports perform reads from particular set across all ways. Write ports perform writes to a particular set and way. For now, there is one read port and one write port.
- Ports:
rp_en – Read port enable
rp_idx – Read port set index
rp_data – Read port data
wp_en – Write port enable
wp_way – Write port way index
wp_idx – Write port set index
wp_data – Write port data
- class ember.front.l1i.L1ICacheTagArray(*args, src_loc_at=0, **kwargs)
L1 instruction cache tag array.
The tag array is a memory whose capacity is the number of sets in the L1I cache, and where elements in the array are tags belonging to each way in a set.
Read ports perform reads from particular set across all ways. Write ports perform writes to a particular set and way. For now, there is only one read port and one write port.
- Ports:
rp_en – Read port enable
rp_idx – Read port set index
rp_data – Read port data
wp_en – Write port enable
wp_way – Write port way index
wp_idx – Write port set index
wp_data – Write port data
- class ember.front.l1i.L1ICache(*args, src_loc_at=0, **kwargs)
Backing memory for an L1 instruction cache.
This module consists of a data array and a tag array. This only implements the storage for a [set-associative] virtually-indexed and physically-tagged (VIPT) cache. It does not include any of the logic for tag matching.
Read ports are used to read the tags and data for a particular set across all ways in the cache. Write ports are used to replace the tag and data for a particular set and a particular way.
For now, there is only one read port and one write port.
- Ports:
rp (
L1ICacheReadPort
) – Read port.wp (
L1ICacheWritePort
) – Write port.
- class ember.front.l1i.L1IWaySelect(*args, src_loc_at=0, **kwargs)
L1I cache way select logic.
Given a set of tags
i_tags
across all ways in a set, determine which way matches