I think the tags corresponds to the cache lines, which is the same as the tag bits in the cache addressing system.
crabcake
What does option 1 mean? Why there are duplicate tags?
blah329
@crabcake There are duplicate tags so that in the case where both the processor side controller and the snoop controller have to see if a line is in the cache at the same time, they can just use their own copies of the tags instead of waiting for the other to complete the look up process when there is only one set of tags. Essentially, its the duplication of a resource that there was only one of before, and only one controller can use it at a time. Since now there are two resources, then each one can use one resource without any contention problems.
ggm8
Duplicating resources such as cache tags means that both tags would need to be updated and kept in sync when the data is modified. One way to alleviate this problem would be to allow parallel reads in the system but not parallel writes (since writes are infrequent compared to reads).
mario
Duplicating the tags is the easiest way to deal with contention, while a multiported circuit is a more complex solution.
woohoo
What is multi-ported tag memory?
eourcs
The contents (the tag in this case) can be accessed by different resources at the same time. In this case, that is the two controllers. This sounds like a cleaner solution, but its implementation in hardware is definitely non-trivial.
What is the tag in this representation?
I think the tags corresponds to the cache lines, which is the same as the tag bits in the cache addressing system.
What does option 1 mean? Why there are duplicate tags?
@crabcake There are duplicate tags so that in the case where both the processor side controller and the snoop controller have to see if a line is in the cache at the same time, they can just use their own copies of the tags instead of waiting for the other to complete the look up process when there is only one set of tags. Essentially, its the duplication of a resource that there was only one of before, and only one controller can use it at a time. Since now there are two resources, then each one can use one resource without any contention problems.
Duplicating resources such as cache tags means that both tags would need to be updated and kept in sync when the data is modified. One way to alleviate this problem would be to allow parallel reads in the system but not parallel writes (since writes are infrequent compared to reads).
Duplicating the tags is the easiest way to deal with contention, while a multiported circuit is a more complex solution.
What is multi-ported tag memory?
The contents (the tag in this case) can be accessed by different resources at the same time. In this case, that is the two controllers. This sounds like a cleaner solution, but its implementation in hardware is definitely non-trivial.