In modern PCs, the various parts tend to operate at very different frequencies; multipliers and ratios abound. CPU:FSB and FSB:RAM are the ones changeable by overclockers, plus hidden/automatic ones between the FSB and, say, your PCI(e) slots.
In the old days, a classic CPU ran 2-4X the speed of the system bus and RAM, and these were multiples of 33MHz, the PCI bus speed. There was a simple buffer (the L2 cache) which could just wait out the other clock ticks, waiting for the bus to be ready.
But what connects these together and keeps the data flowing smoothly when we use strange ratios which don't evenly divide? e.g. modern 0.5-step CPU multipliers, and RAM/FSB ratios like 5:4 and 6:5. They can't wait around like a 486, and I can't imagine there are little high-speed buffers all over the motherboard. What modern mechanism am I missing here?
In the old days, a classic CPU ran 2-4X the speed of the system bus and RAM, and these were multiples of 33MHz, the PCI bus speed. There was a simple buffer (the L2 cache) which could just wait out the other clock ticks, waiting for the bus to be ready.
But what connects these together and keeps the data flowing smoothly when we use strange ratios which don't evenly divide? e.g. modern 0.5-step CPU multipliers, and RAM/FSB ratios like 5:4 and 6:5. They can't wait around like a 486, and I can't imagine there are little high-speed buffers all over the motherboard. What modern mechanism am I missing here?
