コンピュータアーキテクチャ
第 12 回
1
各種メモリ・レジスタ間命令

COMETⅡの命令の分類
–
–
–
–
–
–
–

ロード,ストア,ロードアドレス命令 :LD, ST, LAD
算術,論理演算命令:ADDA, ADDL, SUBA, SUBL, AND, OR, XOR
比較演算命令: CPA, CPL
実行制御の点で類似 *
シフト演算命令: SLA, SRA, SLL, SRL
分岐命令: JPL, JMI, JNZ, JZE, JOV, JUMP
スタック操作命令: PUSH, POP
コール,リターン命令: CALL, RET
今回の内容1
– PUSH・POP命令の実行制御

CALL・RET命令に類似
*
今回の内容2
–
–
–
–
割り込み
入出力アーキテクチャ
積み残しの話題
授業アンケート
2
プッシュ命令の制御信号とデータの流れ(1)
(実効アドレス計算のサイクル Dec-Ea は省略)
bA bB
A/S_op
F
bC
Mem
IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw
Push0: 000 001000 00010000 000 0000001101 000 ; SDR←MAR, SP←SP-1
*
3
プッシュ命令の制御信号とデータの流れ(2)
bA bB
A/S_op
F
bC
Mem
IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw
Push1: 000 000000 00000000 000 0000000000 101 ; mem(SP)←SDR
*
4
POP命令の実行制御状態
POP命令検出
*
状態 F3 に推移(パイプラインを崩さない) *
5
ポップ命令の制御信号とデータの流れ(1)
bA bB
A/S_op
F
bC
Mem
IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw
Dec-Pop0: 000 000010 10111000 000 0000000111 110 ; if POP = 1
then {SDR←mem(SP),
6
*
SP←SP+1}
ポップ命令の制御信号とデータの流れ(2)
bA bB
A/S_op
F
bC
Mem
IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw
Pop1:000 000001 00010000 000 1110000000 000; GRA←SDR, PR←PR+1
*
レジスタ間命令と同様 * 7
ポップ命令の実行ステップの
タイムチャート
*
bA
IAa
Dec-Pop0:000
Pop1:000
bB
BPAbSD
000010
000001
A/S_op
c0123aLR
10111000
00010000
F
Fcn
000
000
bC
GiPAmDdSsD
0000000111
1110000000
Mem
srw
110;
000;
8
割り込み(interrupt)

割り込み:
通常のプログラム処理を一時中断して実行される
例外的な処理

割り込みの種類
– 内部割り込み(internal interrupt)
– 外部割り込み(external interrupt)
9
*
内部割り込み
*
プログラムの実行に起因して(同期して) 発生する
割り込み(割り出し,ソフトウェア割り込みともいう)
演算例外

–
不正命令違反

–
定義されていない命令コードの使用
メモリ保護違反

–
許可されていないメモリ領域へのアクセス *
SVC (supervisor call)

–

ゼロ除算,オーバフロー *
ユーザプログラムから OS へ処理を依頼
その他
10
外部割り込み
プログラムの実行とは無関係に(非同期に)発生する *
割り込み(ハードウェア割り込みとも言う)

マシンチェック割り込み
–

ハードウェア障害,メモリの読み出しエラーなど *
入出力割り込み
–
入出力装置からの動作終了通知,異常通知など
11
割り込み処理の実行制御



PSW (program status word) の退避
–
プログラムレジスタや汎用レジスタなどのプロセッサ状態 *
–
ユーザプログラムが使用しているメモリの内容
割り込み処理
PSW の回復

サブルーチンの実行制御に類似
12
COMETⅡの SVC 命令


SVC adr [,x]
実効アドレスによって OS へ依頼する機能を指定 *
<例>:
– データの入力: SVC 1
– データの出力: SVC 2

命令実行後の汎用レジスタとフラグレジスタの内
容は不定
13
SVC 命令を含めた実行制御を表す状態図
SVC命令の実効アドレス計算の後に要するステップ数は 不定 *

–
データ転送方式に依存
14
入出力アーキテクチャ

入出力命令や入出力装置の構成・仕様
– 多様な方式あり
– コンピュータシステムの規模による違い大


PC, WS 向け *

メインフレーム向け *
重要な二つの視点
– 入出力命令の実現方式
– データ転送方式
15
入出力命令の実現方式による分類

入出力専用命令による入出力(I/O mapped I/O)
–
–

入出力装置を対象とした専用命令 *
命令セットアーキテクチャの設計から考慮
メモリマップド入出力 (memory mapped I/O)
–
–
–
–
–
アドレス空間の一部を入出力装置に割り当て *
Load 命令,Store 命令などでデータ転送
ハードウェア量小
拡張性大
現在の PC, WS で採用
16
データ転送方式による分類

プログラム制御入出力(programmed I/O)
–
–
–

プロセッサからの入出力命令で制御 *
入出力動作がプロセッサの性能に影響
少量のデータ転送向け
DMA (Direct Memory Access)
–
–
–
–
入出力コントローラに制御を依頼 *
メモリと入出力装置間のデータ転送が
プロセッサと非同期
転送終了後プロセッサへ 入出力割込み *
データのバースト転送(大量転送)
17
プログラム制御入出力方式と DMA 方式
18
本講義の積み残しの話題

メモリアーキテクチャ
– メモリ装置の階層 *
– 仮想メモリ

ネットワークアーキテクチャ
– ネットワーク構成 *
– 各種プロトコル
その他
19
ダウンロード

パート12