imported_Tick
Diamond Member
If so, how do they talk to the processor? Their own FSB? Also, I hear about cache latency, but how much bandwidth does cache have?
Originally posted by: alpha88
I'm sure that article will explain it better, but cache is 'transparent' to the CPU. When the CPU reaches a read from memory instruction, the mechanism for reading from memory (RAM) checks the cache for the data at the same time.
This is over simplifying it, but each block in the cache stores a memory address and a value. The CPU basically shouts, does anyone have memory address #52352, and all the cache blocks check themself, and if they do have it, they send it back.
The memory controller on the other hand, translates the memory address into a specific block of the RAM and requests the data stored there.
Originally posted by: Born2bwire
Don't know about in actual industry implementation, but when I did it, the memory ops from the CPU just went directly to the cache. If the cache has a miss then it started sending the necessary control signals up the chain to the L2->RAM->etc. I would imagine it is more or less what they would actually do in practice since you want to grab the data from the cache as fast as possible, that is, check the cache first and if you have a miss then move up to the memory controller (unless it is efficient to start them both off in parallel).
Well the microinstructions give memory addresses for the data or instructions. So when it needs to read or write data, it just sends the appropriate data signals and address to the memory, which is purely a black box to the CPU.Originally posted by: Tick
Originally posted by: Born2bwire
Don't know about in actual industry implementation, but when I did it, the memory ops from the CPU just went directly to the cache. If the cache has a miss then it started sending the necessary control signals up the chain to the L2->RAM->etc. I would imagine it is more or less what they would actually do in practice since you want to grab the data from the cache as fast as possible, that is, check the cache first and if you have a miss then move up to the memory controller (unless it is efficient to start them both off in parallel).
Oh, so you just had the CPU output memory ops directly, and it just pulled the correct data from cache without any intermediate memory controller? Huh. I didn't know CPU's put out memory ops directly.