Can someone explain to me how SMP works at the bus level?

penguin

2[H]4U
Joined
Mar 11, 2003
Messages
2,121
So, my uncle posed an interesting question to me today, which had me completely puzzled. I had never thought of how multi-processor systems work at the electrical level - how they get data from the bus and put it back onto the bus.

Basically, how does each core know when to pick up data from the bus, put it back on, and not conflict with the other cores?
 
Basically the cores/cpus fight over access to the buss and the strongest one wins and prevents the other cores/cpus from using it for a few clock cycles and then the fight starts all over again, really.

http://www.google.com/search?hl=en&...&ct=result&cd=1&q=smp+bus+arbitration&spell=1

This is a good basic "quickie" article.

http://arstechnica.com/articles/paedia/cpu/dualceleron.ars

(as a side note, this is one of the really tricky things about writing code designed to run on multiplie cpus/cores, making sure the threads running on the different cores/cpus can get the data they need when they need it without holding up the processing on other cores.)
 
Basically, how does each core know when to pick up data from the bus, put it back on, and not conflict with the other cores?
A device which wishes to use a bus will request permission from an arbitrator. The arbitrator will give permission by raising a "ready" signal, and by switching on a tri-state buffer which would otherwise block access to the bus.
 
Back
Top