Computation Structures 2: Computer Architecture

Go to class
Write Review

Free Online Course: Computation Structures 2: Computer Architecture provided by edX is a comprehensive online course, which lasts for 10 weeks long. The course is taught in English and is free of charge. Computation Structures 2: Computer Architecture is taught by Chris Terman, Steve Ward and ​Silvina Hanono Wachman.

Overview
  • Digital systems are at the heart of the information age in which we live, allowing us to store, communicate and manipulate information quickly and reliably. This computer science course is a bottom-up exploration of the abstractions, principles, and techniques used in the design of digital and computer systems. If you have a rudimentary knowledge of electricity and some exposure to programming, roll up your sleeves, join in and design a computer system!

    This is Part 2 of a 3-part series on digital systems, teaching the fundamentals of computer architecture and is based on a course offered by the MIT Department of Electrical Engineering and Computer Science. Topics include instruction set architectures and assembly language, stacks and procedures, 32-bit computer architecture, the memory hierarchy, and caches.

    Using your browser for design entry and simulation, you’ll implement a 32-bit computer using our gate library and write assembly language programs to explore the hardware/software interface.

    Learner Testimonial

    “If you look back, we've done sooooo much: assembly programming, stack crawling (detective work), building a 32-bit computer, for crying out loud, and also learnt about caches as the cherry on top (which really helped me because I always had trouble understanding how temporary memory worked). And to top it off, they're promising us more exciting courses in the future.” -- Previous Student

Syllabus
    • Instruction Set Architectures: datapaths and FSMs, programmable datapaths, the von Neumann model, storage, ALU instructions, constant operands, memory access, branches, jumps.  
    • Assembly Language: from assembly language to binary, symbols and labels, instruction macros.
    • Models of Computation: computability, universality, uncomputable functions.
    • Compilers: interpretation vs. compilation, compiling expressions, compiling statements, compiler frontend, optimization and code generation.
    • Procedures and Stacks: procedural abstraction, activation records and stacks, stack frame organization, compiling a procedure, stack detective.
    • Building the Beta: circuit building blocks, ALU instructions, load and store, jumps and branches, exceptions.
    • The Memory Hierarchy: memory technologies, hierarchical memory systems, the locality principle and caching, direct-mapped caches, block size, cache conflicts, associative caches, write strategies.
    • Labs: simple assembly programming, Quicksort procedure, designing the 32-bit Beta processor.