0% found this document useful (0 votes)
64 views9 pages

Cache Memory: Replacement Policy Memory Issues Related To Cache

The document discusses different cache memory placement policies, including associative mapping, direct mapping, and set-associative mapping. Associative mapping allows a memory block to be mapped to any cache block but requires searching all cache tags. Direct mapping maps each memory block to a specific cache block based on address bits to avoid searching but lacks flexibility. Set-associative mapping divides the cache into sets with multiple blocks to balance speed and flexibility.

Uploaded by

Karthik Roshan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views9 pages

Cache Memory: Replacement Policy Memory Issues Related To Cache

The document discusses different cache memory placement policies, including associative mapping, direct mapping, and set-associative mapping. Associative mapping allows a memory block to be mapped to any cache block but requires searching all cache tags. Direct mapping maps each memory block to a specific cache block based on address bits to avoid searching but lacks flexibility. Set-associative mapping divides the cache into sets with multiple blocks to balance speed and flexibility.

Uploaded by

Karthik Roshan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Next: Cache Memory: Replacement Policy Up: memory Previous: Issues Related to Cache

Cache Memory: Placement Policy


The different placement policies (the mapping functions) are illustrated below by an example
with these parameters:

 Block size: words;


 Cache memory: words blocks;
 Main memory: words blocks;

The 4096 memory blocks can be mapped to the 128 cache blocks in three different ways:

 Associative Mapping: a block in the MM can be mapped to any block in the CM


available (not already occupied). A tag of 12 bits is attached to each of the 128 CM
blocks to identify which of the MM blocks is currently in there.
o Advantage: Flexibility. An MM block can be mapped anywhere in CM.
o Disadvantage: Slow or expensive. A search through all the 128 CM blocks is
needed to check whether the 12 MSBs of the 16-bit address can be matched to
any of the tags.
o Addressing process: The 16 bits in the address are divided into 2 fields, the
12 MSBs are compared with the 12-bit tag of each of the blocks, and if there is
a match, then the 4 LSBs select the word in the block.
o Example:

For a 16-bit address , the top 12 bits


(101001011011) are matched with the 12-bit tag of each of the 128 CM
blocks. If a match is found, the last 4 bits (0010) select word 2 (the 3rd word)
of the block with a matching tag.


 Direct Mapping:

To avoid the search through all CM blocks needed by associative mapping, this

method only allows MM blocks to be mapped to


each CM block. A tag of 5 bits need to be attached to each CM block to identify
which of the MM blocks is currently in there. There are two ways to map the
MM blocks to the CM blocks:
o Continuous Mapping (high-order):

The first 32 consecutive MM blocks (0 through 31) are mapped to the first CM
block, the second 32 MM blocks (32 through 63) are mapped to the second
CM block, etc.

Addressing process: The 16-bit address is divided into 3 fields, the 7 MSBs
to identify the CM block, the middle 5 bits to match with the 5-bit tag of the
block, and the 4 LSBs to select the word in the block in case of a match.

Example: For the 16-bit address , the top


7 bits (1010010) indicate CM block 82, the next 5 bits (11011) is to match
with the tag of the block.

o Interleaved Mapping (low-order):

The first 128 consecutive MM blocks are mapped, respectively, to the 128 CM
blocks, so that the first CM block takes one of these 32 MM blocks: 0, 128,
256, ..., 4064, the second CM block takes one of these MM blocks: 1, 129,
257, ..., 4065, etc.

Addressing process: The 16-bit address is divided into 3 fields, the 5 MSBs
to match with the 5-bit tag of the CM block identified by the middle 7 bits,
and the 4 LSBs to select the word in the block in case of a match.
Example: For the 16-bit address , the top
5 bits (10100) are to be matched with the tag of CM block 91, identified by the
next 7 bits (1011011).

Which of the two methods is better in light of the spatial locality nature of memory
usage?

o Advantage: Direct mapping is faster than the associative mapping as it avoids


searching through all the CM tags for a match.
o Disadvantage: But it lacks mapping flexibility. For example, if two MM
blocks mapped to same CM block are needed repeatedly (e.g., in a loop), they
will keep replacing each other, even though all other CM blocks may be
available.
o Set-Associative Mapping:

This is a trade-off between associative and direct mappings. The 128 CM

blocks are divided into sets each containing

blocks. By direct mapping, every MM


blocks are mapped to each CM set. A 7-bit tag is attached to each CM block to
identify the current MM block. By associative mapping, an incoming MM
block can use any of the 4 blocks in the set, so long as it is available.

Again, either continuous or interleaving direct mapping can be used to map


MM blocks to the CM sets. But the latter is better (why?).

Addressing process (interleaving): The 16-bit address is divided into 3 fields


of 7, 5 and 4 bits, respectively (from MSB to LSB). (a) The middle 5 bits
select one of the sets, (b) the top 7 bits are compared with the 7-bit
tag of each of the 4 blocks in the set, if there is a match, (c) the last 4 bits find
the needed word in the block.

Example:

In the 16-bit address , the middle 5 bits


(11011) identifies set 27, the top 7 bits (1010010) are compared with the tag of
each of the 4 blocks in the set. If a match is found, the last 4 bits (0010) select
word 2 in the block.
All three mappings can be considered as set-associative mapping with direct mapping
and associative mapping as two special cases (each set contains 1 or all 128 CM
blocks, respectively). The usage of the 16-bit address for each of the mappings is
shown below:

Example 1: Interleaved Direct Mapping

Each block has four 4-byte words or bytes. The CM has KB or

blocks, and the MM has bytes (4GB) or

blocks. There are MM blocks mapped to each CM block, i.e., each


CM block needs a 16-bit tag to identify the current MM block. The top 16 bits of a
32-bit address is compared with the tag of the CM block identified by the next 12 bits
of the address, and the next 2 bits in the address select the word by a 4x1 MUX, while
the last 2 bits select the byte in the word if needed.
Example 2: Set-associative Mapping

Each block contains only four bytes (one word). The CM has sets each

containing four words. As there are MM words mapped to each CM


set, a 22-bit tag is needed to identify the current word in CM. The top 22 bits of the
32-bit address is to be compared with the tag of each of the four words of one of the
256 CM set identified by the next 8 bits in the address. The last 2 bits in the address
select the byte in the word.
The process of addressing a word in a CM/MM memory system is shown in the
following diagram (note here a line is the same as a block):

Next: Cache Memory: Replacement Policy Up: memory Previous: Issues Related to Cache
Ruye Wang 2005-11-29

You might also like