• Length:
    10 Weeks
  • Price:

    FREE
    Add a Verified Certificate for $49 USD

  • Institution
  • Subject:
  • Level:
    Introductory
  • Language:
    English
  • Video Transcript:
    English

About this course

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 3 of a 3-part series on digital systems, providing an introduction to the hardware/software interface and is based on a course offered by the MIT Department of Electrical Engineering and Computer Science. Topics include pipelined computers, virtual memories, implementation of a simple time-sharing operating system, interrupts and real-time, and techniques for parallel processing.

Using your browser for design entry and simulation, you’ll optimize your processor design from Part 2 for size and speed, and make additions to a simple time-sharing operating system.

Learner Testimonial

"Out of the many edX courses I have taken, the first two parts of 6.004x were clearly the best. I am looking forward to the third part.” -- Previous Student

What you'll learn

  • How to use pipelining to increase a processor’s throughput
  • Virtualization as a way to share a single processor among many tasks
  • Basic organization of a simple time-shared operating system
  • Appropriate techniques for parallel processing
  • Pipelined Beta: pipelined execution of instructions, data and control hazards, resolving hazards using bypassing, stalling and speculation.
  • Virtual Memory: extending the memory hierarchy, paging using hierarchical page maps and look-aside buffers, contexts and context switching, integrating virtual memories with caches.
  • Operating Systems: processes, interrupts, time sharing, supervisor calls.
  • Devices and Interrupts: device handlers asynchronous I/O, stalling supervisor calls, scheduling, interrupt latencies, weak and strong priority systems.
  • Processes, Synchronization and Deadlock: inter-process communication, bounded buffer problem, semaphores for precedence and mutual exclusion, semaphore implementation, dealing with deadlock.
  • Interconnect: the truth about wires, point-to-point vs. shared interconnect, communication topologies.
  • Parallel Processing: instruction-, data- and thread-level parallelism, Amdahl’s Law, cache coherency.
  • Labs: optimizing your Beta design for size and speed, emulating instructions, extending a simple time-sharing operating system.

Meet your instructors

Chris Terman
Senior Lecturer, Electrical Engineering and Computer Science
MIT
Steve Ward
Professor, Computer Science
MIT
​Silvina Hanono Wachman
Lecturer, Electrical Engineering
MIT

Pursue a Verified Certificate to highlight the knowledge and skills you gain $49.00

View a PDF of a sample edX certificate
  • Official and Verified

    Receive an instructor-signed certificate with the institution's logo to verify your achievement and increase your job prospects

  • Easily Shareable

    Add the certificate to your CV or resume, or post it directly on LinkedIn

  • Proven Motivator

    Give yourself an additional incentive to complete the course

  • Support our Mission

    EdX, a non-profit, relies on verified certificates to help fund free education for everyone globally