計算機(物理)
-
Upload
noritsuna -
Category
Engineering
-
view
25 -
download
0
description
Transcript of 計算機(物理)
©SIProp Project, 2006-2008 2
我是誰?
台湾でのんびり暮らしてます近場で Kernel/VM 開かれたので、来ました。
飛行機で 1 時間半!!!家から飛行場まで、 2 時間以上!!!
©SIProp Project, 2006-2008 3
ITRI について
工業技術研究院https://www.itri.org.tw/
台湾経済部(経産省相当)直轄の産業研究開発機関である工業技術研究院
日本でいう産総研や理研をすべて足し込んだような組織
台北・新竹・台南に存在
技術コンサルとして参戦
©SIProp Project, 2006-2008 4
今日の議題:分析
低 layer の変態たちがておくれ度を争う会らしい
• LLVM と殴り合う• Yes!Eject!!!
User Land層
• PDP-11 を移植する• Plan9 できゃっきゃうふふKernel 層
• FPGA で CPU を作る• GPU を bake するIC 層
• ???物理層
©SIProp Project, 2006-2008 5
今日の議題
計算機 ( 物理 ) を作る
≒CPU+ 表示器 ( 物理 )
©SIProp Project, 2006-2008 6
CPU の構造
Register値や命令を保持する記憶装置
Decoder命令を解析して、実行可能状態にする装置
ALU (Arithmetic and Logic Unit)論理演算や四則演算などの演算をおこなう装置
Program Counter次の命令の取り出し先 Address 用 Register
©SIProp Project, 2006-2008 7
CPU の処理の流れ
命令の Fetch
命令の Decode
ALU で実行
結果の保存(表示器へ)
©SIProp Project, 2006-2008 8
Register
©SIProp Project, 2006-2008 9
Register
値や命令を保持する記憶装置
©SIProp Project, 2006-2008 10
Register( 物理 )
10 進数を一つ保持する Register
©SIProp Project, 2006-2008 11
完成品
CPU 部 表示器部
©SIProp Project, 2006-2008 12
開発環境
©SIProp Project, 2006-2008 13
Editor
©SIProp Project, 2006-2008 14
各種 Editor( 物理 )
•3DPrinter•CNC Milling Machine•Miter Saw•Jig Saw
©SIProp Project, 2006-2008 15
統合開発環境 ( 物理 ) : Kitchen
©SIProp Project, 2006-2008 16
Programming 風景
©SIProp Project, 2006-2008 17
Compiling Register
©SIProp Project, 2006-2008 18
Compiling 表示器
©SIProp Project, 2006-2008 19
四則演算してみよう!
(ALU 実行 )
©SIProp Project, 2006-2008 20
加算
©SIProp Project, 2006-2008 21
加算
12 + 34
演算手順1. 10 の位に「 1 」を
セット2. 1 の位に「 2 」を
セット3. 10 の位を「 + 3 」
する4. 1 の位を「 + 4 」
する
©SIProp Project, 2006-2008 22
減算
©SIProp Project, 2006-2008 23
減算
54 - 18
演算手順1. 10 の位に「 5 」を
セット2. 1 の位に「 4 」を
セット3. 10 の位を「 - 1 」
する4. 1 の位を「 - 8 」
する5. !!!!!!!
©SIProp Project, 2006-2008 24
Carry Flag
©SIProp Project, 2006-2008 25
Carry Flag
加算時の Carry や 減算時の Borrow を処理する装置
©SIProp Project, 2006-2008 26
一回転したら、上位 Register を一つ動かす
Carry Flag( 物理 )
©SIProp Project, 2006-2008 27
減算
54 - 18
演算手順1. 10 の位に「 5 」を
セット2. 1 の位に「 4 」を
セット3. 10 の位を「 - 1 」
する4. 1 の位を「 - 8 」す
る5. Carry Flag が 10 の
位を「 - 1 」する
©SIProp Project, 2006-2008 28
乗算
©SIProp Project, 2006-2008 29
乗算
34 × 5
演算手順1. 10 の位に「 3 」を
セット2. 1 の位に「 4 」を
セット3. ????????
©SIProp Project, 2006-2008 30
Decoder
©SIProp Project, 2006-2008 31
Decoder
命令を解析して、実行可能状態にする装置
©SIProp Project, 2006-2008 32
ALU が処理できる形に変換する装置
Decoder( 物理 )
俺
©SIProp Project, 2006-2008 33
Decoder (物理)
34×5 とは!34 を、 5 回加算すること!すなわち!34 + 34 + 34 + 34 + 34である!
©SIProp Project, 2006-2008 34
乗算
34 × 5
演算手順1. 10 の位に「 3 」を
セット2. 1 の位に「 4 」を
セット3. 10 の位を「 + 3 」
する4. 1 の位を「 + 4 」
する5. 3-4 を5回繰り返
す
©SIProp Project, 2006-2008 35
除算
©SIProp Project, 2006-2008 36
除算
10 ÷ 2
演算手順1. 10 の位に「 1 」を
セット2. 1 の位に「 0 」を
セット3. ????????
©SIProp Project, 2006-2008 37
Decoder (物理)
10 ÷ 2 とは!10 から、 2 を減算していって、減算できなくなるまで!すなわち!10 – 2 – 2 – 2 - 2 – 2 < 2である!
©SIProp Project, 2006-2008 38
だ・け・ど・・・
何回引いたか、忘れそう・・・ボクの脳内・・・1,2,いっぱい
Program Counter
©SIProp Project, 2006-2008 39
Program Counter
次の命令の取り出し先 Address 用 RegisterProgram のどこを実行しているのか?
出典: http://www.kumikomi.net/archives/2008/07/15stack.php?page=2
©SIProp Project, 2006-2008 40
Program Counter (物理)
紙と筆
©SIProp Project, 2006-2008 41
Program Counter (物理)
10 - 2
©SIProp Project, 2006-2008 42
Program Counter (物理)
10 – 2 - 2
©SIProp Project, 2006-2008 43
Program Counter (物理)
10 – 2 - 2 - 2
©SIProp Project, 2006-2008 44
Program Counter (物理)
10 – 2 - 2 - 2 - 2
©SIProp Project, 2006-2008 45
Program Counter (物理)
10 – 2 - 2 - 2 - 2 - 2
©SIProp Project, 2006-2008 46
除算
10 ÷ 2
演算手順1. 10 の位に「 1 」を
セット2. 1 の位に「 0 」を
セット3. 1 の位を「 - 2 」
する4. Program Counter
に状況を書き込む5. 3-4 を繰り返す
©SIProp Project, 2006-2008 47
考察
正の字 Counter中華圏でも使える!
©SIProp Project, 2006-2008 48
小数点数(FPU)
©SIProp Project, 2006-2008 49
小数点数:整数
123.=
©SIProp Project, 2006-2008 50
小数点数:第一位
12.3=
©SIProp Project, 2006-2008 51
小数点数:第二位
1.23=
©SIProp Project, 2006-2008 52
小数点数:第三位
.123=
©SIProp Project, 2006-2008 53
©SIProp Project, 2006-2008 54
小数点数・もう一度
©SIProp Project, 2006-2008 55
小数点数:整数
123.=
©SIProp Project, 2006-2008 56
小数点数:第一位
12.3=
©SIProp Project, 2006-2008 57
小数点数:第二位
1.23=
©SIProp Project, 2006-2008 58
小数点数:第三位
.123=
©SIProp Project, 2006-2008 59
©SIProp Project, 2006-2008 60
符号
©SIProp Project, 2006-2008 61
符号:-値
-123=
©SIProp Project, 2006-2008 62
©SIProp Project, 2006-2008 63
符号・もう一度
©SIProp Project, 2006-2008 64
符号:ー値
-123=
©SIProp Project, 2006-2008 65
©SIProp Project, 2006-2008 66
3D Printed Computer
The Turbo Entabulatorhttp://www.chrisfenton.com/the-turbo-entabulator/