Previous | Next --- Slide 8 of 37
Back to Lecture Thumbnails
afa4

Does all the discussion we had in this lecture apply in the same way to instruction caches as well?

kayvonf

I-caches need not be coherent since code pages are not written to (in most cases).

In cases where code is generated at runtime, the JIT needs to be careful to ensure that line containing code it generates gets flushed prior to its use as program text.

abist

Why can't we have one big cache which is the size of L1 + L2 instead of having L1 and L2 as separate caches if they are both private to the core?

kayvonf

The point of the L1 cache is to provide data with very low latency to the execution units, therefore the data must be very close to the execution units and accessible with high speed. There's only so much storage that can fit that bill. If the L1+L2 were unified you'd have a single cache that was at least as slow as the L2.

Orangensaft

What are outstanding misses? I found some terms like "hit under miss", or "miss under miss" that describe outstanding misses. What do these mean?

msebek

@kayvonf Re:I-caches, that's really interesting. The flushing is only necessary when a thread beside the JIT compiler thread wants to run that code, though. Is this the case all the time?