A discussion about various types of compiler and hardware dependencies and the hazards they generate.
Continue readingPost Category → Computer Architecture
Branch Prediction
An exploration of various static and dynamic Branch Prediction related concepts.
Continue readingLoop Unrolling
Loop unrolling is a compiler optimization technique to increase instruction level parallelism. The decisions behind this technique and its limitations are discussed.
Continue readingSpeculation – Hardware vs Software
A brief explanation of Speculation and how to handle exceptions both from the hardware and software side.
Continue readingPipelining/Parallelism related Terminology
A list of definitions of Pipelining/Parallelism related terminology.
Continue readingCache Optimizations that reduce Miss Penalty
This article lists various simple and advanced Cache Optimizations to reduce Miss Penalty. Both hardware and software based optimizations are discussed.
Continue readingUnderstanding DRAM data sheet specifications and memory timings
This article explores how to read data sheet specifications and memory timings and use that to solve a few example questions.
Continue readingOverview of Cache Architecture Framework
The many factors that define a Cache Architecture is presented as a tabular framework for quick reference.
Continue readingCache Optimization – Merging Write Buffer
Write merging combines writes to consecutive memory addresses into a single buffer entry. This article explores at this process in depth through detailed example figures.
Continue readingDRAM Commands
A step by step approach to understanding the commands issued to a DRAM to access data. Figures and examples included.
Continue reading