HN Academy

Online courses recommended by Hacker News users. [about]

Computation Structures 3: Computer Organization

edX · Massachusetts Institute of Technology · 3 HN comments

Learn how to turn a processor into an entire computer system in this interactive computer science course from MIT.
HN Academy Rankings
Provider Info
This course is offered by Massachusetts Institute of Technology on the edX platform.
HN Academy may receive a referral commission when you make purchases on sites after clicking through links on this page. Most courses are available for free with the option to purchase a completion certificate.

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this course.
Jul 28, 2019 · tzs on Antikythera Mechanism
A whole lot of people know how to make a CPU. It's not as hard as you probably think it is. What's hard is making them as complex, fast, and small as we do nowadays. But if you can get by with something not as complex or fast, and that takes up most of your desk, thousands of people know how to do it.

Got 120 hours and want to become one of them? Take these two courses from EdX, which are 60 hours each:

"Computation Structures - Part 1: Digital Circuits" [1]

"Computation Structures 2: Computer Architecture" [2]

The first teaches "[...] digital encoding of information, principles of digital signaling; combinational and sequential logic, implementation in CMOS, useful canonical forms, synthesis; latency, throughput and pipelining". In the homework and labs you design and implement (in a simulator) a 32-bit ALU.

The second covers "[...] instruction set architectures and assembly language, stacks and procedures, 32-bit computer architecture, the memory hierarchy, and caches". In the homework and labs you design and implement (in a simulator) at the gate level a 32-bit RISC CPU, except for memory. Memory for registers and program is given as a black box--by this point you know enough to design that, but it would just add a lot of components and complexity, and slow down the simulation, and the time spent dealing with it would distract from learning the topic of this part of the course. That would fit better with the first part of the course.

I've taken these, and can say they do a good job of teaching what they say they teach.

There's also a third course in the series:

"Computation Structures 3: Computer Organization" [3]

That covers "[...] pipelined computers, virtual memories, implementation of a simple time-sharing operating system, interrupts and real-time, and techniques for parallel processing".

In the homework and labs for that one, you optimize your CPU from the second part for size and speed, and make it support time sharing operating systems.

I've not taken this one.

[1] https://www.edx.org/course/computation-structures-part-1-dig...

[2] https://www.edx.org/course/computation-structures-2-computer...

[3] https://www.edx.org/course/computation-structures-3-computer...

acqq
It’s not the logic but the technology that is not widely known: the new fabs cost billions.
• MITx "Introduction to Solid State Chemistry" [1]. I've never been good at chemistry, but this course managed to make it clear to me.

• MITx "Circuits and Electronics" [2][3][4] (three links because they have split it into three courses since I took it). Most electronics courses have not worked well for me. Some fail by using analogies that don't work for me. The analogies are either to things I don't understand, or to things I understand too well compared to the target audience for the course.

The latter might seem odd--how can understanding the analogous system too well cause a problem? It's because there usually isn't a perfect match between behavior of the analogous system and electronics. The more you know about the analogous system, the more likely you are to know about those places that don't match. If the author expects the students will not know about those parts, they won't mention the limitations from those parts. So you can end up expecting too much of the analogous system to apply.

Other courses have not worked for me by being too deep and detailed. For instance at one time I knew, from a solid state physics intro I took, how a semiconductor diode worked at a quantum mechanical level. I could do the math...but the course gave me no intuition for actually using the diode in a useful circuit.

The "Circuits and Electronics" course struck for me a perfect balance.

• MITx "Computation Structures" [5][6][7]. At the end of this three part course (of which I only took the first two parts), you will know how digital logic circuits work at the transistor level, and you will know how to design combinatorial and sequential logic systems at the gate level, and you will know how to design a 32-bit RISC processor...and you will have done all those designs, using transistor level and gate level simulators.

As I said, I only took the first two parts (didn't have time for the third). In the first two parts we did cover caching and pipelining, but we didn't use them in our processor. I believe that in the third part those and other optimization are added to the processor.

• Caltech "Learning From Data" [8]. The big selling point of this course is that it is almost the same as what Caltech students get when they take it on campus. The only watering down when I took it was the homework was multiple choice so it could be graded automatically.

The most outstanding thing about this course was Professor Abu-Mostafa's participation in the forums. He was very active answering questions. I don't know if he still does that now that the course is running in self-paced mode.

[1] https://www.edx.org/course/introduction-solid-state-chemistr...

[2] https://www.edx.org/course/circuits-electronics-1-basic-circ...

[3] https://www.edx.org/course/circuits-electronics-2-amplificat...

[4] https://www.edx.org/course/circuits-electronics-3-applicatio...

[5] https://www.edx.org/course/computation-structures-part-1-dig...

[6] https://www.edx.org/course/computation-structures-2-computer...

[7] https://www.edx.org/course/computation-structures-3-computer...

[8] https://work.caltech.edu/telecourse.html

sizeofchar
Also did Computation Structures from MITx and I think it was the best of the roughly 20 MOOCs I took. Too bad few people seem to have done it as well.

In the third part of the course, the content moved to the software connecting to the BETA, the processor we built in earlier parts. The last problem set was to build a very simple OS, in assembly, with interrupts, privileged mode, and running up to 3 concurring processes, all in less than 1000 instructions, macros included.

Very clearly written. Thanks for posting. Would recommend to anyone wishing to dive deep into architectures. And I love that you are teaching undergrads with the RP3 ;)

Anyone wanting more, the MIT Computational Structures courses are always available via EDX:

https://www.edx.org/course/computation-structures-3-computer...

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
HN Academy is an independent project and is not operated by Y Combinator, Coursera, edX, or any of the universities and other institutions providing courses.
~ [email protected]
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~