On multi-socket systems built with the IBM POWER architecture (e.g., servers using the IBM POWER10 processor or IBM POWER9 processor), cache coherency ensures that all coresโacross all socketsโsee a consistent view of memory, even though each core has its own private caches.
Hereโs how it works at a system level.
๐น 1. The Problem: Multiple Copies of Data
Each core has:
-
L1 and L2 (private)
-
L3 (shared within a chip/module)
Across sockets:
-
The same memory line may exist in multiple caches
๐ Without coherency:
-
One core updates data
-
Others keep stale copies โ incorrect results
๐น 2. Coherency Protocol (MESI/MOESI-like)
POWER systems use an advanced directory-based coherency protocol (similar to MESI/MOESI but extended).
Each cache line has states like:
-
Modified (M) โ only this cache has the latest copy
-
Exclusive (E) โ clean and private
-
Shared (S) โ multiple caches share it
-
Invalid (I) โ not valid
POWER adds enhancements for:
-
Scalability across sockets
-
Reduced broadcast traffic
๐น 3. Directory-Based Coherency (Key Difference)
Unlike simple snooping systems:
๐ POWER uses a directory-based model:
-
A directory tracks which socket/core holds each cache line
-
Typically stored alongside L3 or memory controller
Why this matters:
-
Avoids broadcasting to all sockets
-
Sends messages only to relevant nodes
๐ Result:
-
Scales efficiently to large multi-socket systems
๐น 4. Inter-Socket Fabric (X-Bus / PowerAXON)
Sockets are connected via high-speed interconnects:
-
POWER9: X-Bus / NVLink-based fabric
-
POWER10: PowerAXON fabric
These links:
-
Carry coherency messages
-
Transfer cache lines between sockets
๐น 5. Example: Read Across Sockets
Scenario:
Core A (Socket 1) needs data owned by Socket 2
Steps:
-
Core A issues a load miss
-
Directory identifies owner (Socket 2)
-
Request sent over interconnect
-
Socket 2 supplies data:
-
From its L3 cache (if present)
-
Or from memory
๐ Result:
-
Data fetched without full system broadcast
๐น 6. Example: Write (Invalidation Flow)
Scenario:
Core A modifies a shared cache line
Steps:
-
Core A requests ownership (Modified state)
-
Directory finds other sharers
-
Sends invalidate messages to those sockets
-
Other caches mark line Invalid
-
Core A updates data
๐ Result:
-
Only one โownerโ โ ensures correctness
๐น 7. Cache-to-Cache Transfers
Instead of going to memory:
-
If another socket already has the latest copy:
-
Data is transferred directly cache-to-cache
๐ Benefits:
-
Lower latency than DRAM access
-
Reduced memory bandwidth usage
๐น 8. NUMA Awareness
Multi-socket POWER systems are NUMA (Non-Uniform Memory Access):
-
Local memory โ faster
-
Remote memory โ slower
Coherency system:
-
Minimizes remote accesses via caching
-
Works with OS (like AIX/Linux) for:
-
Thread placement
-
Memory locality
๐น 9. L3 Cache Role in Coherency
Large shared L3 cache (per chip/module):
-
Acts as a coherency hub
-
Stores directory information
-
Reduces cross-socket traffic
๐ Many requests are resolved:
-
Within the chip
-
Without going to other sockets
๐น 10. Scalability Features in POWER10
Compared to earlier generations:
-
More efficient directory structures
-
Higher bandwidth interconnect (PowerAXON)
-
Better coherency filtering
-
Reduced false sharing impact
๐ Result:
-
Scales to large systems with:
-
Many sockets
-
Thousands of threads
๐น 11. Impact on Database Workloads
For workloads like Oracle:
Positive effects:
-
Consistent shared data across nodes
-
Faster cache-to-cache transfers
-
Reduced locking overhead
Challenges:
-
Cross-socket sharing can add latency
-
False sharing can degrade performance
๐ Best practice:
-
Keep frequently shared data NUMA-local
๐ Summary
| Feature | How POWER Handles It | Benefit |
|---|
| Coherency Model | Directory-based | Scalable |
| Communication | High-speed interconnect | Fast data sharing |
| Data Transfer | Cache-to-cache | Low latency |
| Write Handling | Invalidate others | Correctness |
| L3 Cache | Coherency hub | Reduced traffic |
| NUMA Integration | OS-aware | Better locality |
๐ง Key Insight
In IBM POWER architecture systems:
Cache coherency is selective, directory-driven, and fabric-accelerated
โnot broadcast-heavy like older designs.
This is what allows POWER systems to scale efficiently for large databases, SAP, and enterprise workloads across multiple sockets.