Hi,
I'm looking for a laymen's introduction to computer hardware and organization. Here are some of the topics I would like to cover.
Brief intro to electronics.
Gates and state machines, intro to register transfer and timing.
Basic CPU design. Control.
Microprogrammed CPU design.
Cache systems.
Memory hierarchy:registers, cache, RAM
Virtual memory organization.
Disk storage systems.
Internal busses-front side, memory, PCI
Internal busses for storage-IDE, SATA, SCSI
External busses-USB and firewire
Display systems and GPUs
I would prefer free resources online, but if nothing is available a book is fine as well. I have no background with hardware so an introductory text would be wonderful. Also I'm sorry if this isn't directly programming but I don't know where else to ask.