Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
I wanted a computer, but all I got was a transi...
Search
Denis Defreyne
September 08, 2015
Programming
290
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
I wanted a computer, but all I got was a transistor
Denis Defreyne
September 08, 2015
More Decks by Denis Defreyne
See All by Denis Defreyne
The importance of naming
denisdefreyne
0
170
An introduction to fibers
denisdefreyne
0
300
Code as data (RubyConfBY 2019 edition)
denisdefreyne
0
170
Code as data
denisdefreyne
0
250
How to memoize
denisdefreyne
0
250
Clean & fast code with enumerators
denisdefreyne
0
200
Fibers
denisdefreyne
0
560
Let’s create a programming language! [SoundCloud HQ edition]
denisdefreyne
0
280
Let’s create a programming language! [RUG::B edition]
denisdefreyne
1
270
Other Decks in Programming
See All in Programming
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
2.8k
AIエージェントで 変わるAndroid開発環境
takahirom
2
680
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
240
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
190
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
150
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
1.1k
act2-costs.pdf
sumedhbala
0
110
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
500
継続モナドとリアクティブプログラミング
yukikurage
3
610
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
510
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
130
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
170
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
A Tale of Four Properties
chriscoyier
163
24k
エンジニアに許された特別な時間の終わり
watany
108
250k
Raft: Consensus for Rubyists
vanstee
141
7.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.5k
Transcript
I wanted a computer, but all I got was a
transistor. Denis Defreyne 1
2 I will explain how to build a computer from
scratch. I cannot do this without taking some shortcuts. I will tell lies. CAUTION
3
In the beginning, the transistor was created. 4
5 GATE SOURCE DRAIN
6 GATE SOURCE DRAIN
7 GATE SOURCE DRAIN
8
9
10
11
12 AND
13
14
15
16
OR 17
Now we have gates, and we can forget about transistors.
18
19 OR AND XOR NAND NOT …
A B Sum 0 0 0 0 1 1 1
0 1 1 1 0 20
A B Carry 0 0 0 1 A B Sum
Carry 0 0 0 0 1 1 1 0 1 1 1 0 21 AND XOR
22 AND A B CARRY XOR SUM
ADD CARRY SUM A B 23
24 ADD CARRY SUM A B CARRY
25 ADD SUM 0 A 0 B 0
26 ADD SUM 0 A 0 B 0 ADD SUM
1 A 1 B 1
27 ADD SUM 0 A 0 B 0 ADD SUM
1 A 1 B 1 ADD SUM 0 A 0 B 0 ADD SUM 1 A 1 B 1 ADD A 2 B 2 SUM 2
28 ADD A B SUM
ADD 00010001 00000101 00010110 29
ADD 17 5 22 30
31 ADD R A B MUL R A B DIV
R A B MOD R A B
A B ADD MUL DIV MOD R R R R
32
A B ADD MUL DIV MOD MUX S R 33
34 MUX
35 0 MUX
36 1 MUX
37 2 MUX
38 3 MUX
39 A B ADD MUL DIV MOD MUX S R
40 ALU R A B S
A B S Result 15 7 0 (+) 22 15
7 1 (*) 105 15 7 2 (/) 2 15 7 3 (%) 1 41
Now we have an arithmetic logic unit. 42
43 OR NOT OR NOT Q S R
OR NOT OR NOT Q S R 44
OR NOT OR NOT Q S R 45
OR NOT OR NOT Q S R 46
OR NOT OR NOT Q S R 47
OR NOT OR NOT Q S R 48
49 SR-LATCH S R Q set reset
D-LATCH D E Q 50 data enable write
51 D-LATCH D 0 Q 0 D-LATCH D 1 Q
1 D-LATCH D 2 Q 2 D-LATCH D 3 Q 3 D-LATCH D 4 Q 4 D-LATCH D 5 Q 5 D-LATCH D 6 Q 6 D-LATCH D 7 Q 7 E
52 REGISTER (8 BIT) D E Q
Now we have registers. 53
Q: What distinguishes a computer from a simple calculator? 54
A: You can program a computer, but not a calculator.
55
56 OPCODE VALUE 1 VALUE 2 2 7 15
57 OPCODE VALUE 1 VALUE 2 ALU R
OPCODE VALUE 1 VALUE 2 ALU REGISTER (8 BIT) 1
58
OPCODE VALUE 1 VALUE 2 ALU REGISTER FILE OUTPUT REG
1 59
OPCODE INPUT REG 1 INPUT REG 2 REGISTER FILE OUTPUT
REG ALU 0 0 1 60
61 OPCODE INPUT REG 1 INPUT REG 2 OUTPUT REG
62 INSTRUCTION REGISTER OPCODE INPUT REG 1 INPUT REG 2
OUTPUT REG
63 MEMORY INSTRUCTION REGISTER OPCODE INPUT REG 1 INPUT REG
2 OUTPUT REG
MEMORY INSTRUCTION REGISTER OPCODE INPUT REG 1 INPUT REG 2
OUTPUT REG 0 64
65 INSTRUCTION POINTER REGISTER MEMORY INSTRUCTION REGISTER OPCODE INPUT REG
1 INPUT REG 2 OUTPUT REG
66 INSTRUCTION POINTER REGISTER MEMORY INSTRUCTION REGISTER ADD 4 OPCODE
INPUT REG 1 INPUT REG 2 OUTPUT REG
Now we have the hardware for a programmable computer, and
we can forget the hardware. 67
68 0 3 0 2 Add register 0 and register
2, and store result in register 3: OPCODE INPUT REG 1 OUTPUT REG INPUT REG 2
69 “add r3 r0 r2” Add register 0 and register
2, and store result in register 3:
70 “add r3 r0 r2” 0 3 0 2 assembly
language machine code assembler
16 0 0 12 127 56 16 1 0 3
224 211 18 1 0 0 0 0 7 32 15 2 1 19 1 0 1 15 0 2 6 12 14 0 255 0 71
li r0, 819000 li r1, 254163 cmpi r1, 0 jeq
@end mov r2, r1 mod r1, r0, r1 mov r0, r2 jmp @start prn r0 halt 72
73 cmp mod add sub mul div xor or and
shl shr not ARITHMETIC
74 j je jne jg jge jl jle cmp mod
add sub mul div xor or and shl shr not lw lh lb sw sh sb STACK FUNC SPECIAL call ret push pop prn halt BRANCHING ARITHMETIC mov li MEMORY REG
DEMO 75
github.com/ddfreyne/rcpu 76
77
78 slack @denis / mail
[email protected]
Denis Defreyne Ask me
about Belgian beer.