1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

電子計算機は状態機械です。
一番わかりやすいのは、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とを設計する。

plantuml
@startuml
skinparam shadowing false

state 0
state 1

0 --> 1 : (半)加算
1 --> 0 : (半)加算

@enduml

1bit CPU(半加算+NOP(No Operation))2命令

plantuml
@startuml
skinparam shadowing false

state 0
state 1

0 --> 1 : (半)加算
1 --> 0 : (半)加算
0 --> 0 : NOP
1 --> 1 : NOP
@enduml

1bit CPU(加算:桁上がりflagあり)

plantuml
@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と呼ばない。

plantuml
@startuml
skinparam shadowing false

state0:00
state1:01
flag1: 10

state0 --> state1 : 加算
state1 --> flag1 : 加算
flag1 --> state1 : 加算

@enduml

1bit CPU(加算)2命令、2bit表現

plantuml
@startuml
skinparam shadowing false

state0:00
state1:01
flag1: 10

state0 --> state1 : 加算
state1 --> flag1 : 加算
flag1 --> state1 : 加算
state1 --> state0: clear
@enduml

1bit CPU(加算)3命令、2bit表現

plantuml
@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命令

plantuml
@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の補数

plantuml
@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

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?