「TW4」
れもん
自己紹介
れもん
↑残像
技術書典で本を出しました
ここから買えます→
技術書典で本を出しました
ここから買えます→
特権命令
割り込み
4
特権命令
割り込み
4
もうお分かりですね?
「TW4」
「TW4」
Tokken Warikomi 4bitCPU
TD4に 特権 と 割り込み を載せました
このラーメンタイマーも
そのまま動きます。→
out 0111 // LEDを3つ点灯
loop1:
add a, 0001 // 16回ループ
jnc loop1
loop2:
add a, 0001 // また16回ループ
jnc loop2
out 0110 // LEDを2つ点灯
loop3:
add a, 0001 // 16回ループ
jnc loop3
loop4:
add a, 0001 // また16回ループ
jnc loop4
loop5:
out 0000 // LEDを滅
out 0100 // LEDを点
add a, 0001 // そして16回ループ
jnc loop5
out 1000 // 端のLEDを点灯する
jmp 1111 // おわり(無限ループ)
機能紹介
機能紹介
機能紹介
機能紹介
機能紹介
機能紹介
機能紹介
4つのCPUモード
特権モード
ちょっと待って?
どうやって互換性を保ちながら割り込みハンドラを?
どうやって互換性を保ちながら割り込みハンドラを?
→仮想メモリ空間を使います
仮想メモリ(?)
0 | 0 | 0 | 1 |
1 | 0 |
モード
アドレス
仮想メモリ(?)
0 | 0 | 0 | 1 |
1 | 0 |
1 | 0 | 0 | 0 | 0 | 1 |
モード
アドレス
†物理アドレス†
仮想メモリ(?)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
0 | 0 | 0 | 1 |
1 | 0 |
1 | 0 | 0 | 0 | 0 | 1 |
モード
アドレス
†物理アドレス†
ユーザー
セクション
SW割り込み
セクション
HW割り込み
セクション
例外
セクション
マッピング
仮想メモリ(?)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
↑の表を作るのに44回右クリックしました
0 | 0 | 0 | 1 |
1 | 0 |
1 | 0 | 0 | 0 | 0 | 1 |
モード
アドレス
†物理アドレス†
ユーザー
セクション
SW割り込み
セクション
HW割り込み
セクション
例外
セクション
マッピング
レジスタの退避は?
参考:ARMのレジスタ
レジスタの退避は?
ユーザーモード
B
A
C
特権モード
A
B
C
レジスタの切り替え
ユーザーモード
B
A
C
特権モード
A
B
C
ALU
(組合せ回路)
0 | 0 |
モード
レジスタの切り替え
ユーザーモード
B
A
C
特権モード
A
B
C
ALU
(組合せ回路)
0 | 1 |
モード
レジスタの入れ替え
ユーザーモード
B
A
C
特権モード
A
B
C
ALU
(組合せ回路)
0 | 1 |
モード
SWAP命令
ソフトウェア割り込み
ソフトウェア割り込みの実装
0 | 0 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 | 1 |
0 | 0 | 0 | 0 | 1 | 1 |
ジャンプ!
ジャンプ!
なんやかんや処理して
例外
例外
例外
例外
例外の実装
例外の実装
ユーザーモード
B
A
C
特権モード
A
B
C
ALU
(組合せ回路)
0 | 0 |
モード
異常事態
例外の実装
ユーザーモード
B
A
C
特権モード
A
B
C
ALU
(組合せ回路)
0 | 0 |
モード
異常事態
例外の実装
ユーザーモード
B
A
C
特権モード
A
B
C
ALU
(組合せ回路)
0 | 0 |
モード
異常事態
0 | 0 | 0 | 0 | 1 | 0 |
1 | 0 | 0 | 0 | 0 | 0 |
ジャンプ!
例外中の例外
例外中の例外
ハードウェア割り込み
ハードウェア割り込み
ハードウェア割り込み
ハードウェア割り込み用ハードウェア
ハードウェア割り込み用ハードウェア
CPUとハードウェアの挙動
CPU
ぼたん
IRQ
ACK
時刻: 0.5
CPUとハードウェアの挙動
CPU
ぼたん
IRQ
ACK
時刻: 1
CPUとハードウェアの挙動
CPU
ぼたん
IRQ
ACK
ACKが切れた瞬間IRQを切る!
時刻: 2
ハードウェアが複数の場合は?
デイジーチェーン
CPU
ボタン
ボタン
ボタン
デイジーチェーン
CPU
ボタン
ボタン
ボタン
IRQ
デイジーチェーン
CPU
ボタン
ボタン
ボタン
ハイ・陰ピー・ダンス
IRQ
デイジーチェーン
CPU
ボタン
ボタン
ボタン
ハイ・陰ピー・ダンス
IRQ
デイジーチェーン
CPU
ボタン
ボタン
ボタン
High impedance
IRQ
デイジーチェーン
CPU
ボタン
ボタン
ボタン
High impedance
IRQ
デイジーチェーン
CPU
ボタン
ボタン
ボタン
IRQ
割り込み
許可信号
デイジーチェーン
CPU
ボタン
ボタン
ボタン
IRQ
割り込み
許可信号
割り込み
デイジーチェーン
CPU
ボタン
ボタン
ボタン
IRQ
割り込み
許可信号
割り込み
割り込み
割り込めないよ
デイジーチェーン
CPU
ボタン
ボタン
ボタン
IRQ
割り込み
許可信号
割り込み
割り込み無効化
割り込み無効化
割り込み無効化
以上がTW4のあらましです
ここから買えます→