Flash controllers include the electronics that bridge the Flash memory components to the SSD input/output interfaces. The controller is an embedded processor that executes firmware-level software. Every SSD includes a controller, i.e. an embedded processor that executes firmware-level code and is one of the most important factors of SSD performance. Controller functions include error correction (ECC), bad block mapping, read disturb management, read and write caching and encryption.