SlideShare a Scribd company logo
1
Snooping Protocols
• Topics: snooping-based cache coherence implementations
2
Design Issues, Optimizations
• When does memory get updated?
 demotion from modified to shared?
 move from modified in one cache to modified in another?
• Who responds with data? – memory or a cache that has
the block in exclusive state – does it help if sharers respond?
• We can assume that bus, memory, and cache state
transactions are atomic – if not, we will need more states
• A transition from shared to modified only requires an upgrade
request and no transfer of data
• Is the protocol simpler for a write-through cache?
3
4-State Protocol
• Multiprocessors execute many single-threaded programs
• A read followed by a write will generate bus transactions
to acquire the block in exclusive state even though there
are no sharers
• Note that we can optimize protocols by adding more
states – increases design/verification complexity
4
MESI Protocol
• The new state is exclusive-clean – the cache can service
read requests and no other cache has the same block
• When the processor attempts a write, the block is
upgraded to exclusive-modified without generating a bus
transaction
• When a processor makes a read request, it must detect
if it has the only cached copy – the interconnect must
include an additional signal that is asserted by each
cache if it has a valid copy of the block
5
Design Issues
• When caches evict blocks, they do not inform other
caches – it is possible to have a block in shared state
even though it is an exclusive-clean copy
• Cache-to-cache sharing: SRAM vs. DRAM latencies,
contention in remote caches, protocol complexities
(memory has to wait, which cache responds), can be
especially useful in distributed memory systems
• The protocol can be improved by adding a fifth
state (owner – MOESI) – the owner services reads
(instead of memory)
6
Update Protocol (Dragon)
• 4-state write-back update protocol, first used in the
Dragon multiprocessor (1984)
• Write-back update is not the same as write-through –
on a write, only caches are updated, not memory
• Goal: writes may usually not be on the critical path, but
subsequent reads may be
7
4 States
• No invalid state
• Modified and Exclusive-clean as before: used when there
is a sole cached copy
• Shared-clean: potentially multiple caches have this block
and main memory may or may not be up-to-date
• Shared-modified: potentially multiple caches have this
block, main memory is not up-to-date, and this cache
must update memory – only one block can be in Sm state
• In reality, one state would have sufficed – more states
to reduce traffic
8
Design Issues
• If the update is also sent to main memory, the Sm
state can be eliminated
• If all caches are informed when a block is evicted, the
block can be moved from shared to M or E – this can
help save future bus transactions
• Having an extra wire to determine exclusivity seems
like a worthy trade-off in update systems
9
State Transitions
To
From
NP I E S M
NP 0 0 1.25 0.96 1.68
I 0.64 0 0 1.87 0.002
E 0.20 0 14.0 0.02 1.00
S 0.42 2.5 0 134.7 2.24
M 2.63 0.002 0 2.3 843.6
To
From
NP I E S M
NP -- -- BusRd BusRd BusRdX
I -- -- BusRd BusRd BusRdX
E -- -- -- -- --
S -- -- Not possible -- BusUpgr
M BusWB BusWB Not possible BusWB --
State transitions
per 1000 data
memory references
for Ocean
Bus actions
for each state
transition
NP – Not Present
10
Basic Implementation
• Assume single level of cache, atomic bus transactions
• It is simpler to implement a processor-side cache
controller that monitors requests from the processor and
a bus-side cache controller that services the bus
• Both controllers are constantly trying to read tags
 tags can be duplicated (moderate area overhead)
 unlike data, tags are rarely updated
 tag updates stall the other controller
11
Reporting Snoop Results
• Uniprocessor system: initiator places address on bus, all
devices monitor address, one device acks by raising a
wired-OR signal, data is transferred
• In a multiprocessor, memory has to wait for the snoop
result before it chooses to respond – need 3 wired-OR
signals: (i) indicates that a cache has a copy, (ii) indicates
that a cache has a modified copy, (iii) indicates that the
snoop has not completed
• Ensuring timely snoops: the time to respond could be
fixed or variable (with the third wired-OR signal), or the
memory could track if a cache has a block in M state
12
Non-Atomic State Transitions
• Note that a cache controller’s actions are not all atomic: tag
look-up, bus arbitration, bus transaction, data/tag update
• Consider this: block A in shared state in P1 and P2; both
issue a write; the bus controllers are ready to issue an
upgrade request and try to acquire the bus; is there a
problem?
• The controller can keep track of additional intermediate
states so it can react to bus traffic (e.g. SM, IM, IS,E)
• Alternatively, eliminate upgrade request; use the shared
wire to suppress memory’s response to an exclusive-rd
13
Livelock
• Livelock can happen if the processor-cache handshake
is not designed correctly
• Before the processor can attempt the write, it must
acquire the block in exclusive state
• If all processors are writing to the same block, one of
them acquires the block first – if another exclusive request
is seen on the bus, the cache controller must wait for the
processor to complete the write before releasing the block
-- else, the processor’s write will fail again because the
block would be in invalid state
14
Split Transaction Bus
• What would it take to implement the protocol correctly
while assuming a split transaction bus?
• Split transaction bus: a cache puts out a request, releases
the bus (so others can use the bus), receives its response
much later
• Assumptions:
 only one request per block can be outstanding
 separate lines for addr (request) and data (response)
15
Split Transaction Bus
Proc 1
Cache
Proc 2
Cache
Proc 3
Cache
Request lines
Response lines
16
Design Issues
• When does the snoop complete? What if the snoop takes
a long time?
• What if the buffer in a processor/memory is full? When
does the buffer release an entry? Are the buffers identical?
• How does each processor ensure that a block does not
have multiple outstanding requests?
• What determines the write order – requests or responses?
17
Design Issues II
• What happens if a processor is arbitrating for the bus and
witnesses another bus transaction for the same address?
• If the processor issues a read miss and there is already a
matching read in the request table, can we reduce bus
traffic?

More Related Content

What's hot

Heap Management
Heap ManagementHeap Management
Heap Management
Jenny Galino
 
key distribution in network security
key distribution in network securitykey distribution in network security
key distribution in network security
babak danyal
 
Code generation in Compiler Design
Code generation in Compiler DesignCode generation in Compiler Design
Code generation in Compiler Design
Kuppusamy P
 
Intermediate code generator
Intermediate code generatorIntermediate code generator
Intermediate code generator
sanchi29
 
System calls
System callsSystem calls
System calls
Bernard Senam
 
Register allocation and assignment
Register allocation and assignmentRegister allocation and assignment
Register allocation and assignment
Karthi Keyan
 
Run time storage
Run time storageRun time storage
Run time storage
Rasineni Madhan Mohan Naidu
 
Dynamic Programming Code-Optimization Algorithm (Compiler Design)
Dynamic Programming Code-Optimization Algorithm (Compiler Design)Dynamic Programming Code-Optimization Algorithm (Compiler Design)
Dynamic Programming Code-Optimization Algorithm (Compiler Design)
Dhrumil Panchal
 
Code optimization in compiler design
Code optimization in compiler designCode optimization in compiler design
Code optimization in compiler design
Kuppusamy P
 
Network layer - design Issues
Network layer - design IssuesNetwork layer - design Issues
Network layer - design Issues
قصي نسور
 
Classical encryption techniques
Classical encryption techniquesClassical encryption techniques
Classical encryption techniques
Dr.Florence Dayana
 
Disk allocation methods
Disk allocation methodsDisk allocation methods
Disk allocation methods
ajeela mushtaq
 
Virtual memory
Virtual memoryVirtual memory
Virtual memoryAnuj Modi
 
Bootstrapping in Compiler
Bootstrapping in CompilerBootstrapping in Compiler
Bootstrapping in Compiler
Akhil Kaushik
 
Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]Ravindra Raju Kolahalam
 
Design issues for the layers
Design issues for the layersDesign issues for the layers
Design issues for the layersjayaprakash
 
Remote Procedure Call in Distributed System
Remote Procedure Call in Distributed SystemRemote Procedure Call in Distributed System
Remote Procedure Call in Distributed System
PoojaBele1
 
Error control
Error controlError control
Error control
Bhupendra sahu
 
Routing Algorithm
Routing AlgorithmRouting Algorithm
Routing Algorithm
Kamal Acharya
 

What's hot (20)

Heap Management
Heap ManagementHeap Management
Heap Management
 
key distribution in network security
key distribution in network securitykey distribution in network security
key distribution in network security
 
Code generation in Compiler Design
Code generation in Compiler DesignCode generation in Compiler Design
Code generation in Compiler Design
 
Intermediate code generator
Intermediate code generatorIntermediate code generator
Intermediate code generator
 
System calls
System callsSystem calls
System calls
 
Paging and segmentation
Paging and segmentationPaging and segmentation
Paging and segmentation
 
Register allocation and assignment
Register allocation and assignmentRegister allocation and assignment
Register allocation and assignment
 
Run time storage
Run time storageRun time storage
Run time storage
 
Dynamic Programming Code-Optimization Algorithm (Compiler Design)
Dynamic Programming Code-Optimization Algorithm (Compiler Design)Dynamic Programming Code-Optimization Algorithm (Compiler Design)
Dynamic Programming Code-Optimization Algorithm (Compiler Design)
 
Code optimization in compiler design
Code optimization in compiler designCode optimization in compiler design
Code optimization in compiler design
 
Network layer - design Issues
Network layer - design IssuesNetwork layer - design Issues
Network layer - design Issues
 
Classical encryption techniques
Classical encryption techniquesClassical encryption techniques
Classical encryption techniques
 
Disk allocation methods
Disk allocation methodsDisk allocation methods
Disk allocation methods
 
Virtual memory
Virtual memoryVirtual memory
Virtual memory
 
Bootstrapping in Compiler
Bootstrapping in CompilerBootstrapping in Compiler
Bootstrapping in Compiler
 
Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]
 
Design issues for the layers
Design issues for the layersDesign issues for the layers
Design issues for the layers
 
Remote Procedure Call in Distributed System
Remote Procedure Call in Distributed SystemRemote Procedure Call in Distributed System
Remote Procedure Call in Distributed System
 
Error control
Error controlError control
Error control
 
Routing Algorithm
Routing AlgorithmRouting Algorithm
Routing Algorithm
 

Similar to Snooping protocols 3

Snooping 2
Snooping 2Snooping 2
Snooping 2
Yasir Khan
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
ssuser5c9d4b1
 
Cache coherence
Cache coherenceCache coherence
Cache coherence
Priyam Pandey
 
Cache Coherence.pptx
Cache Coherence.pptxCache Coherence.pptx
Cache Coherence.pptx
SamyakJain710491
 
Ch8 main memory
Ch8   main memoryCh8   main memory
Ch8 main memory
Welly Dian Astika
 
Memory Management.pdf
Memory Management.pdfMemory Management.pdf
Memory Management.pdf
SujanTimalsina5
 
Operating systems- Main Memory Management
Operating systems- Main Memory ManagementOperating systems- Main Memory Management
Operating systems- Main Memory Management
Chandrakant Divate
 
Introduction 1
Introduction 1Introduction 1
Introduction 1
Yasir Khan
 
Memory Management Strategies - II.pdf
Memory Management Strategies - II.pdfMemory Management Strategies - II.pdf
Memory Management Strategies - II.pdf
Harika Pudugosula
 
8 memory management strategies
8 memory management strategies8 memory management strategies
8 memory management strategies
Dr. Loganathan R
 
Chip Multithreading Systems Need a New Operating System Scheduler
Chip Multithreading Systems Need a New Operating System Scheduler Chip Multithreading Systems Need a New Operating System Scheduler
Chip Multithreading Systems Need a New Operating System Scheduler
Sarwan ali
 
cache memory
 cache memory cache memory
cache memory
NAHID HASAN
 
ADVANCED COMPUTER ARCHITECTURE AND PARALLEL PROCESSING
ADVANCED COMPUTER ARCHITECTUREAND PARALLEL PROCESSINGADVANCED COMPUTER ARCHITECTUREAND PARALLEL PROCESSING
ADVANCED COMPUTER ARCHITECTURE AND PARALLEL PROCESSING
Zena Abo-Altaheen
 
Distributed system
Distributed systemDistributed system
Distributed system
Syed Zaid Irshad
 
Cache optimization
Cache optimizationCache optimization
Cache optimization
Vani Kandhasamy
 
Limitations of memory system performance
Limitations of memory system performanceLimitations of memory system performance
Limitations of memory system performance
Syed Zaid Irshad
 
27 multicore
27 multicore27 multicore
27 multicore
ssuser47ae65
 

Similar to Snooping protocols 3 (20)

Snooping 2
Snooping 2Snooping 2
Snooping 2
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
Mesi
MesiMesi
Mesi
 
Cache coherence
Cache coherenceCache coherence
Cache coherence
 
12-6810-12.ppt
12-6810-12.ppt12-6810-12.ppt
12-6810-12.ppt
 
Cache Coherence.pptx
Cache Coherence.pptxCache Coherence.pptx
Cache Coherence.pptx
 
Ch8 main memory
Ch8   main memoryCh8   main memory
Ch8 main memory
 
Memory Management.pdf
Memory Management.pdfMemory Management.pdf
Memory Management.pdf
 
Operating systems- Main Memory Management
Operating systems- Main Memory ManagementOperating systems- Main Memory Management
Operating systems- Main Memory Management
 
Introduction 1
Introduction 1Introduction 1
Introduction 1
 
Week5
Week5Week5
Week5
 
Memory Management Strategies - II.pdf
Memory Management Strategies - II.pdfMemory Management Strategies - II.pdf
Memory Management Strategies - II.pdf
 
8 memory management strategies
8 memory management strategies8 memory management strategies
8 memory management strategies
 
Chip Multithreading Systems Need a New Operating System Scheduler
Chip Multithreading Systems Need a New Operating System Scheduler Chip Multithreading Systems Need a New Operating System Scheduler
Chip Multithreading Systems Need a New Operating System Scheduler
 
cache memory
 cache memory cache memory
cache memory
 
ADVANCED COMPUTER ARCHITECTURE AND PARALLEL PROCESSING
ADVANCED COMPUTER ARCHITECTUREAND PARALLEL PROCESSINGADVANCED COMPUTER ARCHITECTUREAND PARALLEL PROCESSING
ADVANCED COMPUTER ARCHITECTURE AND PARALLEL PROCESSING
 
Distributed system
Distributed systemDistributed system
Distributed system
 
Cache optimization
Cache optimizationCache optimization
Cache optimization
 
Limitations of memory system performance
Limitations of memory system performanceLimitations of memory system performance
Limitations of memory system performance
 
27 multicore
27 multicore27 multicore
27 multicore
 

More from Yasir Khan

Lecture 6
Lecture 6Lecture 6
Lecture 6
Yasir Khan
 
Lecture 4
Lecture 4Lecture 4
Lecture 4
Yasir Khan
 
Lecture 3
Lecture 3Lecture 3
Lecture 3
Yasir Khan
 
Lecture 2
Lecture 2Lecture 2
Lecture 2
Yasir Khan
 
Lec#1
Lec#1Lec#1
Lec#1
Yasir Khan
 
Ch10 (1)
Ch10 (1)Ch10 (1)
Ch10 (1)
Yasir Khan
 
Ch09
Ch09Ch09
Ch05
Ch05Ch05
Hpc sys
Hpc sysHpc sys
Hpc sys
Yasir Khan
 
Hpc 6 7
Hpc 6 7Hpc 6 7
Hpc 6 7
Yasir Khan
 
Hpc 4 5
Hpc 4 5Hpc 4 5
Hpc 4 5
Yasir Khan
 
Hpc 3
Hpc 3Hpc 3
Hpc 3
Yasir Khan
 
Hpc 2
Hpc 2Hpc 2
Hpc 2
Yasir Khan
 
Hpc 1
Hpc 1Hpc 1
Hpc 1
Yasir Khan
 
Flynns classification
Flynns classificationFlynns classification
Flynns classification
Yasir Khan
 
Dir based imp_5
Dir based imp_5Dir based imp_5
Dir based imp_5
Yasir Khan
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language ProcessingYasir Khan
 

More from Yasir Khan (20)

Lecture 6
Lecture 6Lecture 6
Lecture 6
 
Lecture 4
Lecture 4Lecture 4
Lecture 4
 
Lecture 3
Lecture 3Lecture 3
Lecture 3
 
Lecture 2
Lecture 2Lecture 2
Lecture 2
 
Lec#1
Lec#1Lec#1
Lec#1
 
Ch10 (1)
Ch10 (1)Ch10 (1)
Ch10 (1)
 
Ch09
Ch09Ch09
Ch09
 
Ch05
Ch05Ch05
Ch05
 
Hpc sys
Hpc sysHpc sys
Hpc sys
 
Hpc 6 7
Hpc 6 7Hpc 6 7
Hpc 6 7
 
Hpc 4 5
Hpc 4 5Hpc 4 5
Hpc 4 5
 
Hpc 3
Hpc 3Hpc 3
Hpc 3
 
Hpc 2
Hpc 2Hpc 2
Hpc 2
 
Hpc 1
Hpc 1Hpc 1
Hpc 1
 
Flynns classification
Flynns classificationFlynns classification
Flynns classification
 
Dir based imp_5
Dir based imp_5Dir based imp_5
Dir based imp_5
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processing
 
Uncertainity
Uncertainity Uncertainity
Uncertainity
 
Logic
LogicLogic
Logic
 
M6 game
M6 gameM6 game
M6 game
 

Recently uploaded

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
Excellence Foundation for South Sudan
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
Special education needs
 
Sectors of the Indian Economy - Class 10 Study Notes pdf
Sectors of the Indian Economy - Class 10 Study Notes pdfSectors of the Indian Economy - Class 10 Study Notes pdf
Sectors of the Indian Economy - Class 10 Study Notes pdf
Vivekanand Anglo Vedic Academy
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
PedroFerreira53928
 
PART A. Introduction to Costumer Service
PART A. Introduction to Costumer ServicePART A. Introduction to Costumer Service
PART A. Introduction to Costumer Service
PedroFerreira53928
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
Celine George
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
MARUTI SUZUKI- A Successful Joint Venture in India.pptx
MARUTI SUZUKI- A Successful Joint Venture in India.pptxMARUTI SUZUKI- A Successful Joint Venture in India.pptx
MARUTI SUZUKI- A Successful Joint Venture in India.pptx
bennyroshan06
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
Celine George
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 

Recently uploaded (20)

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
 
Sectors of the Indian Economy - Class 10 Study Notes pdf
Sectors of the Indian Economy - Class 10 Study Notes pdfSectors of the Indian Economy - Class 10 Study Notes pdf
Sectors of the Indian Economy - Class 10 Study Notes pdf
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
 
PART A. Introduction to Costumer Service
PART A. Introduction to Costumer ServicePART A. Introduction to Costumer Service
PART A. Introduction to Costumer Service
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
MARUTI SUZUKI- A Successful Joint Venture in India.pptx
MARUTI SUZUKI- A Successful Joint Venture in India.pptxMARUTI SUZUKI- A Successful Joint Venture in India.pptx
MARUTI SUZUKI- A Successful Joint Venture in India.pptx
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 

Snooping protocols 3

  • 1. 1 Snooping Protocols • Topics: snooping-based cache coherence implementations
  • 2. 2 Design Issues, Optimizations • When does memory get updated?  demotion from modified to shared?  move from modified in one cache to modified in another? • Who responds with data? – memory or a cache that has the block in exclusive state – does it help if sharers respond? • We can assume that bus, memory, and cache state transactions are atomic – if not, we will need more states • A transition from shared to modified only requires an upgrade request and no transfer of data • Is the protocol simpler for a write-through cache?
  • 3. 3 4-State Protocol • Multiprocessors execute many single-threaded programs • A read followed by a write will generate bus transactions to acquire the block in exclusive state even though there are no sharers • Note that we can optimize protocols by adding more states – increases design/verification complexity
  • 4. 4 MESI Protocol • The new state is exclusive-clean – the cache can service read requests and no other cache has the same block • When the processor attempts a write, the block is upgraded to exclusive-modified without generating a bus transaction • When a processor makes a read request, it must detect if it has the only cached copy – the interconnect must include an additional signal that is asserted by each cache if it has a valid copy of the block
  • 5. 5 Design Issues • When caches evict blocks, they do not inform other caches – it is possible to have a block in shared state even though it is an exclusive-clean copy • Cache-to-cache sharing: SRAM vs. DRAM latencies, contention in remote caches, protocol complexities (memory has to wait, which cache responds), can be especially useful in distributed memory systems • The protocol can be improved by adding a fifth state (owner – MOESI) – the owner services reads (instead of memory)
  • 6. 6 Update Protocol (Dragon) • 4-state write-back update protocol, first used in the Dragon multiprocessor (1984) • Write-back update is not the same as write-through – on a write, only caches are updated, not memory • Goal: writes may usually not be on the critical path, but subsequent reads may be
  • 7. 7 4 States • No invalid state • Modified and Exclusive-clean as before: used when there is a sole cached copy • Shared-clean: potentially multiple caches have this block and main memory may or may not be up-to-date • Shared-modified: potentially multiple caches have this block, main memory is not up-to-date, and this cache must update memory – only one block can be in Sm state • In reality, one state would have sufficed – more states to reduce traffic
  • 8. 8 Design Issues • If the update is also sent to main memory, the Sm state can be eliminated • If all caches are informed when a block is evicted, the block can be moved from shared to M or E – this can help save future bus transactions • Having an extra wire to determine exclusivity seems like a worthy trade-off in update systems
  • 9. 9 State Transitions To From NP I E S M NP 0 0 1.25 0.96 1.68 I 0.64 0 0 1.87 0.002 E 0.20 0 14.0 0.02 1.00 S 0.42 2.5 0 134.7 2.24 M 2.63 0.002 0 2.3 843.6 To From NP I E S M NP -- -- BusRd BusRd BusRdX I -- -- BusRd BusRd BusRdX E -- -- -- -- -- S -- -- Not possible -- BusUpgr M BusWB BusWB Not possible BusWB -- State transitions per 1000 data memory references for Ocean Bus actions for each state transition NP – Not Present
  • 10. 10 Basic Implementation • Assume single level of cache, atomic bus transactions • It is simpler to implement a processor-side cache controller that monitors requests from the processor and a bus-side cache controller that services the bus • Both controllers are constantly trying to read tags  tags can be duplicated (moderate area overhead)  unlike data, tags are rarely updated  tag updates stall the other controller
  • 11. 11 Reporting Snoop Results • Uniprocessor system: initiator places address on bus, all devices monitor address, one device acks by raising a wired-OR signal, data is transferred • In a multiprocessor, memory has to wait for the snoop result before it chooses to respond – need 3 wired-OR signals: (i) indicates that a cache has a copy, (ii) indicates that a cache has a modified copy, (iii) indicates that the snoop has not completed • Ensuring timely snoops: the time to respond could be fixed or variable (with the third wired-OR signal), or the memory could track if a cache has a block in M state
  • 12. 12 Non-Atomic State Transitions • Note that a cache controller’s actions are not all atomic: tag look-up, bus arbitration, bus transaction, data/tag update • Consider this: block A in shared state in P1 and P2; both issue a write; the bus controllers are ready to issue an upgrade request and try to acquire the bus; is there a problem? • The controller can keep track of additional intermediate states so it can react to bus traffic (e.g. SM, IM, IS,E) • Alternatively, eliminate upgrade request; use the shared wire to suppress memory’s response to an exclusive-rd
  • 13. 13 Livelock • Livelock can happen if the processor-cache handshake is not designed correctly • Before the processor can attempt the write, it must acquire the block in exclusive state • If all processors are writing to the same block, one of them acquires the block first – if another exclusive request is seen on the bus, the cache controller must wait for the processor to complete the write before releasing the block -- else, the processor’s write will fail again because the block would be in invalid state
  • 14. 14 Split Transaction Bus • What would it take to implement the protocol correctly while assuming a split transaction bus? • Split transaction bus: a cache puts out a request, releases the bus (so others can use the bus), receives its response much later • Assumptions:  only one request per block can be outstanding  separate lines for addr (request) and data (response)
  • 15. 15 Split Transaction Bus Proc 1 Cache Proc 2 Cache Proc 3 Cache Request lines Response lines
  • 16. 16 Design Issues • When does the snoop complete? What if the snoop takes a long time? • What if the buffer in a processor/memory is full? When does the buffer release an entry? Are the buffers identical? • How does each processor ensure that a block does not have multiple outstanding requests? • What determines the write order – requests or responses?
  • 17. 17 Design Issues II • What happens if a processor is arbitrating for the bus and witnesses another bus transaction for the same address? • If the processor issues a read miss and there is already a matching read in the request table, can we reduce bus traffic?