Computer Organization and Architecture - Stallings, William (2010)