This document provides a technical review of the Heterogeneous System Architecture (HSA). HSA aims to create a unified programming model and shared memory space across CPUs and GPUs. It discusses key HSA concepts like the unified address space, queuing system, and HSA Intermediate Language. It also describes the main components needed for an HSA implementation, including the hardware platform with integrated CPUs and GPUs, software compilation stack, user-space runtime, and kernel-space drivers and schedulers.