How is it decided which processor is the "home node" of a line? Is the memory divided up between processors at the beginning?
@huehue depends on the system specifics, but if each grey box was a server rack in a cluster, then you could imagine each rack having access to its memory, and thus would be the home node of those lines.
@huehue If you mean how a processors "knows" which processor is the "home node", then the cache controller for that processor follows a scheme which sends messages based on its directory information to source the cache containing the line information. Perhaps a sequence of requests pass between different cache controllers (using the directory) to find the target node.
Is memory divided up? Good question. Perhaps https://en.wikipedia.org/wiki/Distributed_memory can help.
There are also other definitions:
dirty node: the node that has a copy of the block in its cache in modified(dirty) state.
exclusive node: the node that has a copy of the block in its cache in an exclusive state.
owner node: the node that currently holds the valid copy of a block and must supply the data when needed.