Computer Systems: Digital Design, Fundamentals of Computer Architecture and ARM Assembly Language