Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Cache coherence
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Coherence protocols== Coherence protocols apply cache coherence in multiprocessor systems. The intention is that two clients must never see different values for the same shared data. The protocol must implement the basic requirements for coherence. It can be tailor-made for the target system or application. Protocols can also be classified as snoopy or directory-based. Typically, early systems used directory-based protocols where a directory would keep a track of the data being shared and the sharers. In snoopy protocols, the transaction requests (to read, write, or upgrade) are sent out to all processors. All processors snoop the request and respond appropriately. Write propagation in snoopy protocols can be implemented by either of the following methods: ;Write-invalidate: When a write operation is observed to a location that a cache has a copy of, the cache controller invalidates its own copy of the snooped memory location, which forces a read from main memory of the new value on its next access.<ref name=":3" /> ;Write-update: When a write operation is observed to a location that a cache has a copy of, the cache controller updates its own copy of the snooped memory location with the new data. If the protocol design states that whenever any copy of the shared data is changed, all the other copies must be "updated" to reflect the change, then it is a write-update protocol. If the design states that a write to a cached copy by any processor requires other processors to discard or invalidate their cached copies, then it is a write-invalidate protocol. However, scalability is one shortcoming of broadcast protocols. Various models and protocols have been devised for maintaining coherence, such as [[MSI protocol|MSI]], [[MESI protocol|MESI]] (aka Illinois), [[MOSI protocol|MOSI]], [[MOESI protocol|MOESI]], [[MERSI protocol|MERSI]], [[MESIF protocol|MESIF]], [[Write-once (cache coherence)|write-once]], Synapse, Berkeley, [[Firefly (cache coherence protocol)|Firefly]] and [[Dragon protocol]].<ref name=":1" /> In 2011, [[ARM Ltd]] proposed the AMBA 4 ACE<ref>{{Cite book|title=Formal Analysis of the ACE Specification for Cache Coherent Systems-on-Chip. In Formal Methods for Industrial Critical Systems|last=Kriouile|date=16 September 2013|publisher=Springer Berlin Heidelberg|isbn=978-3-642-41010-9}}</ref> for handling coherency in [[System on a chip|SoCs]]. The AMBA CHI (Coherent Hub Interface) specification<ref>{{Cite web|last=Ltd|first=Arm|title=AMBA {{!}} AMBA 5|url=https://developer.arm.com/architectures/system-architectures/amba/amba-5|access-date=2021-04-27|website=Arm Developer|language=en}}</ref> from [[Arm Ltd.|ARM Ltd]], which belongs to AMBA5 group of specifications defines the interfaces for the connection of fully coherent processors.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Cache coherence
(section)
Add topic