4 ms·
The essential point of MESI is that it doesn't need a single master. In a sense, anyone who has exclusive ownership of a cache line is the "master" for that on
by cperciva 7y ago
The essential point of MESI is that it doesn't need a single master. In a sense, anyone who has exclusive ownership of a cache line is the "master" for that one cache line.
The downsides of MESI are that (a) it requires broadcasts, which don't scale very well; and (b) it doesn't tolerate partitions -- which also imposes an effective scaling limit, since large systems are always partitioned (usually with a partition of N-k and k partitions of 1, due to k nodes having failed).
- xakahnx 7y agoMore than just broadcasts as we think of them in networked systems, it requires serialized/transactional broadcasts. Network distributed systems also have problems with ordering which is something made easier when you have a single bus with all transactions in sequence.
- jabl 7y ago> The downsides of MESI are that (a) it requires broadcasts No, it can be implemented with directory instead, e.g. https://en.wikipedia.org/wiki/Directory-based_cache_coherence https://en.wikipedia.org/wiki/Directory-based_cache_coherenc... Or various combinations of snooping and directories ("snoop filters", or directories that act as "bridges" between broadcast domains, etc.). In current Xeon processors (and presumably AMD EPYC as well, thought I don't yet have first-hand experience with those), you have a couple of directories per CPU with snoop filtering, as with tens of cores broadcasting becomes a scalability bottleneck. In the BIOS you can change the mode how it operates, with slightly different names and semantics depending on the CPU generation.