Notions
- ISA density : number of instructions needed to perform tasks. The higher the density (less instructions) the better. It will consume less space in the instruction cache and use less bandwidth.
- Direct-associative cache : Each memory block has an unique cache line. It is determined using the memory address.
This is the faster lookup cache. However 2 addresses that are cache_size * line_size apart will be overwritten. - N-associative cache : Like direct associative but for a given index value, N different lines can be stored. A lookup will need to check all the lines sharing the same index value. This is a compromise between lookup-speed and premature cache eviction problems.
- Full-associative cache : Basically a key-value map. You can store cache_size lines independently of their address. However it has the slower lookup.
- False sharing : contention over 2 distinct variables stored in the same cache line.
Memory models
- Sequential consistent : stronger model where operations are ordered for each core.
- DRF-SC : data race free sequential consistency, SC is guaranteed as long as critical sections are synchronized
- Release consistency : sequential consistency around load and store barriers
Links