Tips: Gratis kurs i att bygga en 32-bitars processor

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
Porto
EF Sponsor
Inlägg: 435
Blev medlem: 27 mars 2004, 12:58:48

Tips: Gratis kurs i att bygga en 32-bitars processor

Inlägg av Porto »

Tänkte tipsa om en kommande gratis internetbaserad universitetskurs i digitalteknik, MITx-6-004 Computation Structures.
Kursen hålls på engelska, den går hos edX, MITx - Massachusetts Institute of Technology.
Man bygger sig sin egen 32-bitars processor, som sedan simuleras i webbläsaren.

Jag har tipsat om den här kursen en gång tidigare, men nu har jag slutfört alla tre delarna i kursen, och den är riktigt bra!
Kursen består av tre delar, första delen börjar i morgon 6 september, den är på 10 veckor.

Första delen har mycket teori, se lista nedan. Den har labbar där man bygger egna CMOS logikgrindar med mosfetar.
Grindarna används sedan till att bygga kretsar, de används i slutet av första delen av kursen för att bygga en 32-bit ALU (Arithmetic logic unit). Allt simuleras i webbläsaren via Jade.

I den andra delen av kursen så bygger man sin egen 32-bitars processor. Det var över 800 stycken tester som skulle gå igenom för att processorn skulle vara godkänd! Programmering i assembler, cache, hur moderna kompilatorer optimerar program, funktionsanrop i assembler som lagras på stacken. En vecka var det över 250 stycken frågor om felsökning av stackinnehåll.

I den tredje delen av kursen så optimerar man processorn så hårt man kan (så hög prestanda som möjligt, fast samtidigt så lite komponenter som möjligt), det körs ett benchmarkprogram på processorn som ger poäng efter hur bra man lyckas göra den. Ett antal deltagare tävlade mot varandra på diskussionsforumet. Man kan välja att bygga om den till en pipelinad version. Många frågor om pipelining, virtuellt minne, mmu, cache, operativsystem, multitasking, interrupt, semaforer.

Varje del förväntas ta 6 timmar per vecka, vilket är väldigt optimistiskt. Enligt lärarna så är det endast för att bli godkänd, om man hoppar över de svårare uppgifterna. Framförallt den sista delen när man skall optimera processorn så rusar timmarna iväg, det blir mycket felsökning som tar tid. Vissa veckor är det flera hundra frågor som skall besvaras, förutom labbarna, samt programmeringsuppgifter i assembler.

Kursen har körts hos MIT sedan början av 1990-talet. Till skillnad från många andra gratis kurser på internet, så hade denna en lärare från MIT som svarade på frågor i stort sett alla dagar i veckan på diskussionsforumet.

Det här är en kurs där man får verkligen jobba varje vecka, samtidigt så lär man sig mycket. I slutet av kursen så kan man sin 32-bitars processor in i minsta detalj.
Kursen är starkt beroendeframkallande, framförallt de två sista delarna.


Lite statistik från första omgången:
Första delen hade 18151 deltagare, 802 stycken blev godkända.
Andra delen hade 8581 deltagare, 402 stycken blev godkända.
Tredje delen hade 4345 deltagare, 205 stycken blev godkända.

Länkar till kursen:
Computation Structures - Part 1: Digital Circuits
Computation Structures - Part 2: Computer Architecture
Computation Structures - Part 3: Computer Organization

Om man betalar 49 USD per del, så får man ett verifierat diplom om man blir godkänd.


En sammanfattning av vad första delen av kursen handlar om, text från kursens hemsida:

Quantifying information
Entropy
Fixed-length encoding
Huffman encoding
Error detection
Error correction
Two's complement representation
Hexadecimal representation

Noise margin
Voltage transfer characteristic
The static disipline

Mosfet
CMOS gates
CMOS timing
Lenient gates

Sum of products
Demorgan's law
Logic simplification
Karnaugh maps
2-input functions
Multiplexers
Memory
Truth tables
Combinational logic timing
Contamination and propagation times
Understanding setup and hold time
CMOS gate design
Power dissipation
D-latch timing
D-register timing
Sequential circuit timing

Finite state machines
State transition diagrams
Equivalent states
Synchronization, metastability
Sequential logic timing
Turing machine

Performance measures
Pipelined circuits
Latency and throughput
Pipelining methodology
Pipeline design
Circuit interleavning
Self-timed circuits

Design tradeoffs
Carry-select adders
Asymptotic latency and throughput
Carry-lookahead adders
Binary multiplication
Pipelining and design tradeoffs

Design of a 32-bit arithmetic and logic unit (ALU)



Den andra delen i serien:
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



Den tredje delen:
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
Användarvisningsbild
rvl
Inlägg: 5721
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Tips: Gratis kurs i att bygga en 32-bitars processor

Inlägg av rvl »

Blev inte av att gå igenom hela materialet, trots att jag nån gång anmälde mig. Verkade intressant, men vem har tid för allting intressant?
Nu ska det snart försvinna... Gissar på att en ny kommande inkarnation blir mindre gratis.
edX skrev:We are writing to inform you that unfortunately, the archived course content for Computation Structures is being removed from the edX platform as of October 15, 2021. We apologize for any inconvenience this may cause.
cadwal
Inlägg: 5
Blev medlem: 2 januari 2016, 17:42:43

Re: Tips: Gratis kurs i att bygga en 32-bitars processor

Inlägg av cadwal »

Materialet verkar finnas här https://computationstructures.org/index.html, men uppdaterat senast 2017...
Användarvisningsbild
rvl
Inlägg: 5721
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Tips: Gratis kurs i att bygga en 32-bitars processor

Inlägg av rvl »

Bra. Teknikens yttersta spets kanske har gått litet framåt sen 2017, men grunderna är fortfarande de samma.
Användarvisningsbild
Porto
EF Sponsor
Inlägg: 435
Blev medlem: 27 mars 2004, 12:58:48

Re: Tips: Gratis kurs i att bygga en 32-bitars processor

Inlägg av Porto »

Kursen kommer att tas bort från edX.org den 15 oktober 2021 för att sedan återlanseras hos MIT Open Learning Library.
Kursmaterialet finns även hos MIT OpenCourseWare.
Skriv svar