4 ms·
Yes, but the cost in terms of watt and manufacturing are not scalable. Also most programs have cache-misses.
by spintin 3y ago
Yes, but the cost in terms of watt and manufacturing are not scalable.
Also most programs have cache-misses.
- _a_a_a_ 3y agoWhy not have a 'pin-to-cache' functionality then.
- smolder 3y agoWhat would it do when you pin more things than your cache can hold? Trigger an interrupt? It basically becomes another memory layer you'd need to manage.
- _a_a_a_ 3y agoWell duh. How is using SRAM going to be any different when you run out of that?
- smolder 3y agoI was not here arguing in favor of explicitly tiered memory. The implied answer to your original question, "why not have a pin to cache functionality?" is that it's effectively the same as having another OS managed memory layer, which is bad since it complicates the architecture. I'll take some cache misses over having to manage it explicitly.
- AnthonyMouse 3y agoNot only that, if you had enough cache to fit everything then there wouldn't be cache misses, and if you didn't, cache misses are pretty unavoidable. It's like the existing APIs for pining things in memory so they can't get paged out. They have very specific uses and normal programs generally don't use them and shouldn't.
- kimixa 3y agoMuch of the cache "management" can be done with specialist load/store instructions that skip the cache rather than being OS managed like a mapping.
- Const-me 3y agoThe higher levels of the stack, be it hardware or software, need to make sure that never happens. That’s how GPUs are doing that. Each thread group can use a limited amount of SRAM, programs declare in advance how many bytes they need. Then in runtime the scheduler who dispatches tasks to cores enforces that limit by never dispatching too many thread groups on each core.
- foobiekr 3y agoThey certainly have this. A lot of embedded boot loaders run entirely from cache until they can bring main memory up and check it.