Cacheability

From COMP15212 Wiki
Revision as of 09:20, 28 June 2019 by pc>Yuron
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Depends on Caching

Something is “cacheable” if it may be stored in an appropriate form of cache. This is simpler to illustrate by thinking of examples which should be ‘uncacheable’. Examples:

  • I/O devices are often ‘memory mapped’ – i.e. they appear as memory locations just like the RAM etc. As they are likely to be volatile – i.e. change autonomously – keeping a snapshot of their values is a bad idea.
  • A shared memory (between processes or processors) is liable to change at any time. This will out-date any currently cached copies. (Some multiprocessors will maintain cache coherency in hardware, but this is getting beyond this module!)
  • A WWW page may be updated regularly and so should be fetched ‘fresh’ every time it is visited.

The first two examples, at least, are our concern here.

Memory cacheability is typically a property of the particular page in the address space. It is a Boolean property which can be held in a bit in the page table entries (and, consequentially, the TLB) and looked up (in hardware) when there is a cache miss: it prevents the reference being retained in the appropriate cache.

A similar property is the permission to buffer write operations, which often has its own bit per page table entry.



Articles on Concepts
About this resource • Application Binary Interface (ABI) • Arrays • Atomicity • Boot • Cache • Cacheability • Caching • Concepts • Containers • Context • Context Switching • Deadlock • Direct Memory Access (DMA) • Environment Variables • Exceptions • File Attributes • Fragmentation • Hypervisor • Interrupts • Operation Ordering • PATH • Pointers • Process Scheduling • Processes • Processor Privilege • Queues • Real Time • Reentrancy • Relocatable Code • Spooling and Buffering • Synchronisation • Thrashing • Threads • Virtual Memory • Virtualisation
Articles on Major concepts
Cache • Cacheability • Concepts • Context • Direct Memory Access (DMA) • Exceptions • Hypervisor • Metadata • Process Scheduling • Processor Privilege • Real Time • Reentrancy • Synchronisation • Virtualisation
Articles on IO
Cacheability • Device Drivers • Direct Memory Access (DMA) • IO • Interprocess Communication • Interrupt Controller • Interrupt Service Routines (ISRs) • Interrupts • Libraries • Peripheral devices • Pipes • Queues • Queues Extra • Resources • Shell • Sockets • Spooling and Buffering • Starvation • Streams • System Calls • Thrashing • Timers • Using Peripherals • Virtualisation • Write Buffer