Browsing Tag
computer architecture
27 posts
Virtual Memory and the Memory Management Unit (MMU): Address Translation Explained
Every program you run believes it has its own private, enormous, contiguous chunk of memory all to itself,…
Paging vs. Segmentation: Memory Management Techniques in Modern CPUs
Once a system decides it needs virtual memory, an important design question follows immediately: how should the virtual…
Translation Lookaside Buffer (TLB): How CPUs Cache Page Table Entries
Virtual memory is a wonderful abstraction, but as covered in earlier discussions of paging and address translation, it…
Pipeline Hazards in CPU Design: Data, Structural, and Control Hazards and Their Solutions
Pipelining promises something wonderful: complete one instruction every clock cycle by overlapping the fetch, decode, execute, and writeback…
CPU Pipelining: Instruction-Level Parallelism and Pipeline Hazards Explained
If you’ve ever watched a factory assembly line, you already understand the core idea behind CPU pipelining. Instead…
Superscalar Architecture: Executing Multiple Instructions per Clock Cycle
If you’ve ever wondered how a modern processor running at “just” 3-4 GHz manages to feel dramatically faster…
Out-of-Order Execution: How Modern CPUs Reorder Instructions for Performance
Picture a to-do list where item 3 depends on item 2 finishing first, but item 4 has nothing…
Branch Prediction and Speculative Execution: How CPUs Guess the Future
Every time your code hits an if statement, a loop condition, or a function call through a pointer,…
SIMD and Vector Processing: MMX, SSE, AVX, and Data-Level Parallelism Explained
If superscalar execution and out-of-order execution are about squeezing more instruction-level parallelism out of ordinary code, SIMD (Single…
Multicore and Multiprocessor Systems: Symmetric Multiprocessing and Parallel Computing
Somewhere around the mid-2000s, the computing industry hit a wall. Clock speeds had been climbing for decades, but…