What is Reddit's opinion of

""




Categories:

Check price

1 comment of this product found across Reddit:
-zorak- /r/ECE
4 points
1970-01-17 12:42:55.928 +0000 UTC

If you want to get an overview of how things work, there is a pretty good book (and a course based on it starting on 2015-04-11) that outlines the whole process and has some sample projects that you can implement (and use together) to make a full computer system. The book is called The Elements of Computing Systems and the accompanying course is called Nand To Tetris. This upcomming course should cover the hardware portion of this machine starting from NAND gates and working up.

Another really useful book, which I used when I was in engineering school, is this book by Dr. Yale Patt. It also starts from the gate level and works up through combinational logic, sequential logic, finite state machines, and then combines these things into a datapath for a simple computer. It also gives you an overview of other hardware topics like how memory works. A significant portion of the book is also devoted to teaching programming in the machine's assembly language, and later C and how C maps back to the machine's instruction set.

If you want to learn from an existing system you could read up on how a simple 8-bit microcontroller works (like the pic16f1827) directly from the datasheet. It will talk about things that have to happen for the machine to start running (like jumping to a reset vector). The advantage that the microcontroller approach has is that it is a full-blown computer system in its own right. It probably won't run unix or at least not very well, but it can give you another example of how the systems fit together and show practical examples of concepts like memory-mapped IO and interrupts, which are absolutely critical for you to understand. Also, you can buy these things online for a few dollars and buy a programming tool for around $50 or so, and then you can write little programs to do things like making music to cut your teeth on ASM programming, which you surely will need if you are writing on OS.

All of this tells you "the how" of these systems, but not really the "why". If you want to build a machine based on the something like the 8088, you have to approach it from the standpoint that when it was designed, they probably had a bunch of design tradeoffs to make. Some design choices like why there is an 8-bit latch for address lines 0-7 (in that schematic you linked earlier) may seem really odd, but they may (and I'm making an educated guess here) have to do with mundane outside design constraints, such as neededing to minimize the number of pins for the processors IC package to save on cost, so they re-use the same address pins to put out the address in memory they want to access 8-bits at a time. Why 8-bits at a time? Probably because 8-bit data latches were abundant and cheap at the time. Its these outside concerns that cause these little quirks to creep into the design of the machine.

Anyways, I've already hit you with a wall of text, so I won't say anything else aside from that if you have more questions, feel free to ask and I'll help answer what I can.

Edit: fixed typos