Right from basic understanding of computer architecture, to its coding and security aspects, these books cover it all. Some of these books are available for free.
Learning Computer Architecture is an essential part of computer science and engineering. It is a set of discipline that describes a computer system by specifying its parts and their relations. For example, at a high level, computer architecture may be concerned with how the central processing unit (CPU) acts and how it uses computer memory.