計算機(物理)

66
©SIProp Project, 2006-2008 1 計計計 計計計 () Noritsuna Imamura [email protected]

description

ネタです。本気で読んだら負けです。

Transcript of 計算機(物理)

Page 1: 計算機(物理)

©SIProp Project, 2006-2008 1

計算機(物理)

Noritsuna [email protected]

Page 2: 計算機(物理)

©SIProp Project, 2006-2008 2

我是誰?

台湾でのんびり暮らしてます近場で Kernel/VM 開かれたので、来ました。

飛行機で 1 時間半!!!家から飛行場まで、 2 時間以上!!!

Page 3: 計算機(物理)

©SIProp Project, 2006-2008 3

ITRI について

工業技術研究院https://www.itri.org.tw/

台湾経済部(経産省相当)直轄の産業研究開発機関である工業技術研究院

日本でいう産総研や理研をすべて足し込んだような組織

台北・新竹・台南に存在

技術コンサルとして参戦

Page 4: 計算機(物理)

©SIProp Project, 2006-2008 4

今日の議題:分析

低 layer の変態たちがておくれ度を争う会らしい

• LLVM と殴り合う• Yes!Eject!!!

User Land層

• PDP-11 を移植する• Plan9 できゃっきゃうふふKernel 層

• FPGA で CPU を作る• GPU を bake するIC 層

• ???物理層

Page 5: 計算機(物理)

©SIProp Project, 2006-2008 5

今日の議題

計算機 ( 物理 ) を作る

≒CPU+ 表示器 ( 物理 )

Page 6: 計算機(物理)

©SIProp Project, 2006-2008 6

CPU の構造

Register値や命令を保持する記憶装置

Decoder命令を解析して、実行可能状態にする装置

ALU (Arithmetic and Logic Unit)論理演算や四則演算などの演算をおこなう装置

Program Counter次の命令の取り出し先 Address 用 Register

Page 7: 計算機(物理)

©SIProp Project, 2006-2008 7

CPU の処理の流れ

命令の Fetch

命令の Decode

ALU で実行

結果の保存(表示器へ)

Page 8: 計算機(物理)

©SIProp Project, 2006-2008 8

Register

Page 9: 計算機(物理)

©SIProp Project, 2006-2008 9

Register

値や命令を保持する記憶装置

Page 10: 計算機(物理)

©SIProp Project, 2006-2008 10

Register( 物理 )

10 進数を一つ保持する Register

Page 11: 計算機(物理)

©SIProp Project, 2006-2008 11

完成品

CPU 部 表示器部

Page 12: 計算機(物理)

©SIProp Project, 2006-2008 12

開発環境

Page 13: 計算機(物理)

©SIProp Project, 2006-2008 13

Editor

Page 14: 計算機(物理)

©SIProp Project, 2006-2008 14

各種 Editor( 物理 )

•3DPrinter•CNC Milling Machine•Miter Saw•Jig Saw

Page 15: 計算機(物理)

©SIProp Project, 2006-2008 15

統合開発環境 ( 物理 ) : Kitchen

Page 16: 計算機(物理)

©SIProp Project, 2006-2008 16

Programming 風景

Page 17: 計算機(物理)

©SIProp Project, 2006-2008 17

Compiling Register

Page 18: 計算機(物理)

©SIProp Project, 2006-2008 18

Compiling 表示器

Page 19: 計算機(物理)

©SIProp Project, 2006-2008 19

四則演算してみよう!

(ALU 実行 )

Page 20: 計算機(物理)

©SIProp Project, 2006-2008 20

加算

Page 21: 計算機(物理)

©SIProp Project, 2006-2008 21

加算

12 + 34

演算手順1. 10 の位に「 1 」を

セット2. 1 の位に「 2 」を

セット3. 10 の位を「 + 3 」

する4. 1 の位を「 + 4 」

する

Page 22: 計算機(物理)

©SIProp Project, 2006-2008 22

減算

Page 23: 計算機(物理)

©SIProp Project, 2006-2008 23

減算

54 - 18

演算手順1. 10 の位に「 5 」を

セット2. 1 の位に「 4 」を

セット3. 10 の位を「 - 1 」

する4. 1 の位を「 - 8 」

する5. !!!!!!!

Page 24: 計算機(物理)

©SIProp Project, 2006-2008 24

Carry Flag

Page 25: 計算機(物理)

©SIProp Project, 2006-2008 25

Carry Flag

加算時の Carry や 減算時の Borrow を処理する装置

Page 26: 計算機(物理)

©SIProp Project, 2006-2008 26

一回転したら、上位 Register を一つ動かす

Carry Flag( 物理 )

Page 27: 計算機(物理)

©SIProp Project, 2006-2008 27

減算

54 - 18

演算手順1. 10 の位に「 5 」を

セット2. 1 の位に「 4 」を

セット3. 10 の位を「 - 1 」

する4. 1 の位を「 - 8 」す

る5. Carry Flag が 10 の

位を「 - 1 」する

Page 28: 計算機(物理)

©SIProp Project, 2006-2008 28

乗算

Page 29: 計算機(物理)

©SIProp Project, 2006-2008 29

乗算

34 × 5

演算手順1. 10 の位に「 3 」を

セット2. 1 の位に「 4 」を

セット3. ????????

Page 30: 計算機(物理)

©SIProp Project, 2006-2008 30

Decoder

Page 31: 計算機(物理)

©SIProp Project, 2006-2008 31

Decoder

命令を解析して、実行可能状態にする装置

Page 32: 計算機(物理)

©SIProp Project, 2006-2008 32

ALU が処理できる形に変換する装置

Decoder( 物理 )

Page 33: 計算機(物理)

©SIProp Project, 2006-2008 33

Decoder (物理)

34×5 とは!34 を、 5 回加算すること!すなわち!34 + 34 + 34 + 34 + 34である!

Page 34: 計算機(物理)

©SIProp Project, 2006-2008 34

乗算

34 × 5

演算手順1. 10 の位に「 3 」を

セット2. 1 の位に「 4 」を

セット3. 10 の位を「 + 3 」

する4. 1 の位を「 + 4 」

する5. 3-4 を5回繰り返

Page 35: 計算機(物理)

©SIProp Project, 2006-2008 35

除算

Page 36: 計算機(物理)

©SIProp Project, 2006-2008 36

除算

10 ÷ 2

演算手順1. 10 の位に「 1 」を

セット2. 1 の位に「 0 」を

セット3. ????????

Page 37: 計算機(物理)

©SIProp Project, 2006-2008 37

Decoder (物理)

10 ÷ 2 とは!10 から、 2 を減算していって、減算できなくなるまで!すなわち!10 – 2 – 2 – 2 - 2 – 2 < 2である!

Page 38: 計算機(物理)

©SIProp Project, 2006-2008 38

だ・け・ど・・・

何回引いたか、忘れそう・・・ボクの脳内・・・1,2,いっぱい

Program Counter

Page 39: 計算機(物理)

©SIProp Project, 2006-2008 39

Program Counter

次の命令の取り出し先 Address 用 RegisterProgram のどこを実行しているのか?

出典: http://www.kumikomi.net/archives/2008/07/15stack.php?page=2

Page 40: 計算機(物理)

©SIProp Project, 2006-2008 40

Program Counter (物理)

紙と筆

Page 41: 計算機(物理)

©SIProp Project, 2006-2008 41

Program Counter (物理)

10 - 2

Page 42: 計算機(物理)

©SIProp Project, 2006-2008 42

Program Counter (物理)

10 – 2 - 2

Page 43: 計算機(物理)

©SIProp Project, 2006-2008 43

Program Counter (物理)

10 – 2 - 2 - 2

Page 44: 計算機(物理)

©SIProp Project, 2006-2008 44

Program Counter (物理)

10 – 2 - 2 - 2 - 2

Page 45: 計算機(物理)

©SIProp Project, 2006-2008 45

Program Counter (物理)

10 – 2 - 2 - 2 - 2 - 2

Page 46: 計算機(物理)

©SIProp Project, 2006-2008 46

除算

10 ÷ 2

演算手順1. 10 の位に「 1 」を

セット2. 1 の位に「 0 」を

セット3. 1 の位を「 - 2 」

する4. Program Counter

に状況を書き込む5. 3-4 を繰り返す

Page 47: 計算機(物理)

©SIProp Project, 2006-2008 47

考察

正の字 Counter中華圏でも使える!

Page 48: 計算機(物理)

©SIProp Project, 2006-2008 48

小数点数(FPU)

Page 49: 計算機(物理)

©SIProp Project, 2006-2008 49

小数点数:整数

123.=

Page 50: 計算機(物理)

©SIProp Project, 2006-2008 50

小数点数:第一位

12.3=

Page 51: 計算機(物理)

©SIProp Project, 2006-2008 51

小数点数:第二位

1.23=

Page 52: 計算機(物理)

©SIProp Project, 2006-2008 52

小数点数:第三位

.123=

Page 53: 計算機(物理)

©SIProp Project, 2006-2008 53

Page 54: 計算機(物理)

©SIProp Project, 2006-2008 54

小数点数・もう一度

Page 55: 計算機(物理)

©SIProp Project, 2006-2008 55

小数点数:整数

123.=

Page 56: 計算機(物理)

©SIProp Project, 2006-2008 56

小数点数:第一位

12.3=

Page 57: 計算機(物理)

©SIProp Project, 2006-2008 57

小数点数:第二位

1.23=

Page 58: 計算機(物理)

©SIProp Project, 2006-2008 58

小数点数:第三位

.123=

Page 59: 計算機(物理)

©SIProp Project, 2006-2008 59

Page 60: 計算機(物理)

©SIProp Project, 2006-2008 60

符号

Page 61: 計算機(物理)

©SIProp Project, 2006-2008 61

符号:-値

-123=

Page 62: 計算機(物理)

©SIProp Project, 2006-2008 62

Page 63: 計算機(物理)

©SIProp Project, 2006-2008 63

符号・もう一度

Page 64: 計算機(物理)

©SIProp Project, 2006-2008 64

符号:ー値

-123=

Page 65: 計算機(物理)

©SIProp Project, 2006-2008 65

Page 66: 計算機(物理)

©SIProp Project, 2006-2008 66

3D Printed Computer

The Turbo Entabulatorhttp://www.chrisfenton.com/the-turbo-entabulator/