電子計算機は状態機械です。
一番わかりやすいのは、1bit CPU
1bit CPU
1bit 計算機を設計する
https://qiita.com/kaizen_nagoya/items/a46fad29f3a3c6449e93
状態遷移図が計算の基本であれば簡単か
https://qiita.com/kaizen_nagoya/items/7667bf01d39540ca4330
1bit CPUを自作した
https://qiita.com/naoto64/items/600528c14af3428f0086
え!!1bitでCPUを!?できらぁ!!
https://qiita.com/shiozaki/items/db9ee673f2e17ea2ca72
ORANGE pico で 1bit CPU をエミュレーションする
https://qiita.com/mikecat_mixc/items/577aafaa73bf4a94d6f5
リレー式論理回路シミュレータを自作して1bit CPUまで動かした
https://qiita.com/sonota88/items/a5d6d3539e0fb8040f74
【CPUの創りかた】1bit ROM
https://qiita.com/kure/items/f5f6a0e13737d9901459
1bit CPU でライフゲーム
https://qiita.com/tadashi9e/items/0d696fea8364db29db6c
plantUML
以下の状態遷移図はplantUMLで描いています。
編集リクエストをしようとすれば、図のソースコードが読めます。
1bit register CPU(半加算) 1命令
1bit CPUでは、1bit register CPUと、各種FlagがあるCPUとを設計する。
@startuml
skinparam shadowing false
state 0
state 1
0 --> 1 : (半)加算
1 --> 0 : (半)加算
@enduml
1bit CPU(半加算+NOP(No Operation))2命令
@startuml
skinparam shadowing false
state 0
state 1
0 --> 1 : (半)加算
1 --> 0 : (半)加算
0 --> 0 : NOP
1 --> 1 : NOP
@enduml
1bit CPU(加算:桁上がりflagあり)
@startuml
skinparam shadowing false
state0:0
state1:1
flag0: 0
flag1: 1
state0 --> state1 : 加算
state1 --> state0 : 加算
flag1 --> flag0 : 加算
flag0 --> flag1: 加算
@enduml
1bit CPU(加算)1命令、2bit表現
state bitとflag bitが論理的または、物理的に
はなれていたら2bit CPUと呼ばない。
@startuml
skinparam shadowing false
state0:00
state1:01
flag1: 10
state0 --> state1 : 加算
state1 --> flag1 : 加算
flag1 --> state1 : 加算
@enduml
1bit CPU(加算)2命令、2bit表現
@startuml
skinparam shadowing false
state0:00
state1:01
flag1: 10
state0 --> state1 : 加算
state1 --> flag1 : 加算
flag1 --> state1 : 加算
state1 --> state0: clear
@enduml
1bit CPU(加算)3命令、2bit表現
@startuml
skinparam shadowing false
state0:00
state1:01
flag1: 10
state0 --> state1 : 加算
state1 --> flag1 : 加算
flag1 --> state1 : 加算
state1 --> state0: clear
state0 --> state0: nop
state1 --> state1: nop
flag1 --> flag1: nop
@enduml
1bit CPU(加算/減算)4命令、2bit表現
@startuml
skinparam shadowing false
state0:00
state1:01
flag1: 10
state0 --> state1 : 加算
state1 --> flag1 : 加算
flag1 --> state1 : 加算
state1 --> state0 : 減算
flag1 --> state1: 減算
state1 --> state0: clear
state0 --> state0: nop
state1 --> state1: nop
flag1 --> flag1: nop
@enduml
2bit CPU
2bit 計算機を設計する. 仮説(213)
https://qiita.com/kaizen_nagoya/items/c0285c8ad5b45f512328
2bit CPU 符号なし(加算/減算)4命令
@startuml
skinparam shadowing false
state00: 00
state01: 01
state11: 11
state10: 10
overflow: 1
underflow: 1
state11 --> state00: 加算
state00 --> state01 : 加算
state01 --> state10 : 加算
state10 --> state11 : 加算
state11 --> overflow : 加算
state01 --> state00 : 減算
state00 --> underflow : 減算
state10 --> state01: 減算
state11 --> state10: 減算
underflow --> state00: clear
overflow --> state00: clear
state00 --> state00: nop
state11 --> state11: nop
state01 --> state01: nop
state10 --> state10: nop
@enduml
2bit CPU 符号付き1bit(加算/減算)4命令 1の補数
@startuml
skinparam shadowing false
state00: 00
state01: 01
state11: 11
state10: 10
overflow: 1
underflow: 1
state11 --> state00: 加算
state00 --> state01 : 加算
state01 --> overflow : 加算
state01 --> state00 : 減算
state00 --> state11 : 減算
state11 --> underflow: 減算
underflow --> state00: clear
overflow --> state00: clear
state10 --> state00: clear
state00 --> state00: nop
state11 --> state11: nop
state01 --> state01: nop
state10 --> state10: nop
@enduml
2bit CPU 符号付き1bit(加算/減算)4命令 2の補数
@startuml
skinparam shadowing false
state00: 00
state01: 01
state11: 11
state10: 10
overflow: 1
underflow: 1
state11 --> state00: 加算
state00 --> state01 : 加算
state01 --> overflow : 加算
state01 --> state00 : 減算
state00 --> state10 : 減算
state10 --> state11 : 減算
state11 --> underflow: 減算
underflow --> state00: clear
overflow --> state00: clear
state00 --> state00: nop
state11 --> state11: nop
state01 --> state01: nop
state10 --> state10: nop
@enduml
4bit CPU
Ref.
電子計算機が状態機械と理解することの得失
https://qiita.com/kaizen_nagoya/items/edf43cd294282cae166c
状態遷移図が計算の基本であれば簡単か
https://qiita.com/kaizen_nagoya/items/7667bf01d39540ca4330
状態遷移、自動生成 制御(34)
https://qiita.com/kaizen_nagoya/items/ca1ca8ae180d7b0f623a
処理の流れ、データの流れ、時間の流れ、状態の流れ
https://qiita.com/kaizen_nagoya/items/9512d81aa198aef74278
ハードウェア, IoT
https://qiita.com/kaizen_nagoya/items/3d84190890cdb5010bfc