Unit content
Stack allocation and stack discipline
A call stack usually reserves and releases storage in strict last-in, first-out order. That discipline makes allocation unusually simple.
Moving the stack pointer
A function can reserve stack space by adjusting a stack pointer and release the whole frame by restoring it when the function returns.
higher addresses
| older frames |
| current frame|
| free stack |
^ stack pointer
No general search for a suitably sized free block is needed, and all objects in the frame disappear together.
Locality
Active stack frames occupy nearby addresses and recently used frames tend to be accessed again soon. Cache systems favor this kind of nearby and repeated access, so stack accesses often benefit from good locality.
Limits
Stack allocation only fits objects whose lifetime follows the nested call structure. A value that must outlive the creating call needs another ownership strategy.
The stack is therefore fast not because stack memory is a fundamentally different kind of RAM, but because its restricted lifetime discipline permits extremely cheap bookkeeping and predictable access patterns.