-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.html
135 lines (102 loc) · 7.35 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<!DOCTYPE html>
<html>
<head>
<title>Computation Structures</title>
<link rel="stylesheet" href="labs/tools/github.css"/>
</head>
<body>
<article class="markdown-body">
<p align="center"><img style="border: none;" src="title.png?raw=true"/></p>
<p align="center">
Github repo: <a href="https://github.com/computation-structures/course">https://github.com/computation-structures/course</a>
<p>
<p>Computation Structures (6.004) is a sophomore-level subject offered by
the MIT Department of Electrical Engineering and Computer Science.
It's an introductory course about the design and implementation of
digital systems, emphasizing structural principles common to a wide
range of technologies.</p>
<p>Starting at the device level, the course develops a hierarchical set
of building blocks — logic gates, combinational and sequential
circuits, finite-state machines, processors and finally complete
systems. Both hardware and software mechanisms are explored through a
series of design examples. The worksheets and lab exercises are
intended to give students hands-on experience in designing digital
systems; students complete the gate-level design for a RISC processor
during the lab exercises.</p>
<p>This repository contains the course materials used between Fall 1995
and Spring 2018 including the lecture slides, edited transcripts of
the lectures, and the worksheets of past quiz problems that students
used to review their understanding of the material. There are also
links to the eleven online labs, which each student needed to complete
to pass the course. We hope this material will be of use to students
interested in how computers work and to my teaching collegues who
introduce those students to the digital world.</p>
<p>The course materials are a collaborative effort by many MIT
colleagues. Steve Ward was the originator of the course in the early
1980's and in many ways what you see here is his brain child. Other
contributors over the years include Bert Halstead, Silvina Hanono
Wachman, Leonard McMillan, Greg Papadopoulos, Gill Pratt, Daniel
Sanchez, and Chris Terman.</p>
<p>Enjoy!</p>
<h2>Syllabus</h2>
<ul>
<li> <b>Part 1: Digital Circuits</b>
<ul>
<li> L01. Basics of Information: <a href="lectures/L01_Basics_of_Information.html">Lecture</a>, <a href="worksheets/pdfs/L01_worksheet.pdf">Worksheet</a></li>
<li> L02. The Digital Abstraction: <a href="lectures/L02_The_Digital_Abstraction.html">Lecture</a>, <a href="worksheets/pdfs/L02_worksheet.pdf">Worksheet</a></li>
<li> L03. CMOS Technology: <a href="lectures/L03_CMOS_Technology.html">Lecture</a>, <a href="worksheets/pdfs/L03_worksheet.pdf">Worksheet</a></li>
<li> L04. Combinational Logic: <a href="lectures/L04_Combinational_Logic.html">Lecture</a>, <a href="worksheets/pdfs/L04_worksheet.pdf">Worksheet</a></li>
<li> L05. Sequential Logic: <a href="lectures/L05_Sequential_Logic.html">Lecture</a>, <a href="worksheets/pdfs/L05_worksheet.pdf">Worksheet</a></li>
<li> L06. Finite State Machines: <a href="lectures/L06_Finite_State_Machines.html">Lecture</a>, <a href="worksheets/pdfs/L06_worksheet.pdf">Worksheet</a></li>
<li> L07. Pipelined Circuits: <a href="lectures/L07_Pipelined_Circuits.html">Lecture</a>, <a href="worksheets/pdfs/L07_worksheet.pdf">Worksheet</a></li>
<li> L08. Design Tradeoffs: <a href="lectures/L08_Design_Tradeoffs.html">Lecture</a></li>
<li> Online labs:
<ul>
<li> <a href="labs/lab1_cmos/lab.html">Lab 1: CMOS Technology</a></li>
<li> <a href="labs/lab2_adder/lab.html">Lab 2: CMOS Adder</a></li>
<li> <a href="labs/lab3_fsm/lab.html">Lab 3: FSMs</a></li>
<li> <a href="labs/lab4_alu/lab.html">Lab 4: 32-bit ALU</a></li>
</ul>
</li>
</ul></li>
<li> <b>Part 2: Programmable Architectures</b>
<ul>
<li> L09. Designing an Instruction Set: <a href="lectures/L09_Designing_an_Instruction_Set.html">Lecture</a>, <a href="worksheets/pdfs/L09_worksheet.pdf">Worksheet</a></li>
<li> L10a. Assembly Language: <a href="lectures/L10a_Assembly_Language.html">Lecture</a></li>
<li> L10b. Models of Computation: <a href="lectures/L10b_Models_of_Computation.html">Lecture</a></li>
<li> L11. Compilers: <a href="lectures/L11_Compilers.html">Lecture</a>, <a href="worksheets/pdfs/L11_worksheet.pdf">Worksheet</a></li>
<li> L12. Procedures and Stacks: <a href="lectures/L12_Procedures_and_Stacks.html">Lecture</a>, <a href="worksheets/pdfs/L12_worksheet.pdf">Worksheet</a></li>
<li> L13. Building the Beta: <a href="lectures/L13_Building_the_Beta.html">Lecture</a>, <a href="worksheets/pdfs/L13_worksheet.pdf">Worksheet</a></li>
<li> L14. Caches and the Memory Hierarchy: <a href="lectures/L14_Caches_and_the_Memory_Hierarchy.html">Lecture</a>, <a href="worksheets/pdfs/L14_worksheet.pdf">Worksheet</a></li>
<li> L15. Pipelining the Beta: <a href="lectures/L15_Pipelining_the_Beta.html">Lecture</a>, <a href="worksheets/pdfs/L15_worksheet.pdf">Worksheet</a></li>
<li> Online labs:
<ul>
<li> <a href="labs/lab5_assembly/lab.html">Lab 5: Assembly Language</a></li>
<li> <a href="labs/lab6_procedures/lab.html">Lab 6: Procedures & Stacks</a></li>
<li> <a href="labs/lab7_beta/lab.html">Lab 7: Building the Beta</a></li>
<li> <a href="labs/lab8_caches/lab.html">Lab 8: Caches</a></li>
</ul>
</li>
</ul>
</li>
<li> <b>Part 3: Computer Organization</b>
<ul>
<li> L16. Virtual Memory: <a href="lectures/L16_Virtual_Memory.html">Lecture</a>, <a href="worksheets/pdfs/L16_worksheet.pdf">Worksheet</a></li>
<li> L17. Virtualizing the Processor: <a href="lectures/L17_Virtualizing_the_Processor.html">Lecture</a>, <a href="worksheets/pdfs/L17_worksheet.pdf">Worksheet</a></li>
<li> L18. Devices and Interrupts: <a href="lectures/L18_Devices_and_Interrupts.html">Lecture</a>, <a href="worksheets/pdfs/L18_worksheet.pdf">Worksheet</a></li>
<li> L19. Concurrency & Synchronization: <a href="lectures/L19_Concurrency_and_Synchronization.html">Lecture</a>, <a href="worksheets/pdfs/L19_worksheet.pdf">Worksheet</a></li>
<li> L20. System-level Communication: <a href="lectures/L20_System_level_Communication.html">Lecture</a></li>
<li> L21. Parallel Processing: <a href="lectures/L21_Parallel_Processing.html">Lecture</a></li>
<li> <a href="lectures/Wrap_up.html">Wrap-up</a></li>
<li> Online labs:
<ul>
<li> <a href="labs/lab9_illop/lab.html">Lab 9: Emulating Instructions</a></li>
<li> <a href="labs/lab10_tinyos/lab.html">Lab 10: Tiny Operating System</a></li>
<li> <a href="labs/lab11_design_project/lab.html">Lab 11: Optimizing the Beta</a> (optional, extra points!)</li>
</ul>
</ul>
</li>
</ul>
</article>
</body>
</html>