The part of a computer that fetches, decodes and executes instructions from memory, possibly through a cache.