「APU」の編集履歴(バックアップ)一覧はこちら
「APU」(2017/02/20 (月) 16:51:01) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
***目次 [#f0f2fe63]
-[[レジスタ>APU/レジスタ]]
-[[SPC700 のアドレッシングモード>APU/アドレッシングモード]]
-[[SPC700 の命令セット一覧 (機能別)>APU/命令セット/一覧 (機能別)]]
-[[SPC700 の命令セット一覧 (オペコード順)>APU/命令セット/一覧 (オペコード順)]]
-[[IPL (Initial Program Loader) ブート ROM>APU/IPL]]
-[[APU IO>APU/IO]]
-[[音声ブロックフォーマット>APU/音声ブロックフォーマット]]
***SPC-700 の概要 [#bdd66200]
-CPU : Sony SPC700シリーズ CMOS 8 ビット CPU
-最小命令実行時間:1.953us/2.048MHz
-内蔵 ROM : 64 バイト (IPL)
-メモリ空間 : 64 K バイト
''メモリマップ''
|アドレス|内容|h
|0x0000 ~ 0x00EF |外部メモリ領域|
|0x00F0 ~ 0x00FF |周辺機能レジスタ(DSPで使用)|
|0x0100 ~ 0x01FF |外部メモリ領域|
|0x0200 ~ 0x7FFF |外部メモリ領域(標準データ転送域)|
|0x8000 ~ 0xFFBF |使用不可|
|0xFFC0 ~ 0xFFFF |IPL ROM 64 byte(IPL ROM はハードの初期化用プログラムが入っている。)|
|アドレス|内容|h
|0x0000 ~ 0x00FF |0 Page|
|0x0100 ~ 0x01FF |1 Page|
|0x0000 ~ 0x7FFF |32 K バイト RAM (基板上に実装)|
''メモリ空間''
SPC700 は 64 K バイトのメモリ空間にアクセスできる。
メモリ空間は用途別に分割されている。
アドレス 0x0000 より 512 バイトは 256 バイト単位の
2 ページに分割されていて、それぞれ 0 ページ、1 ページと呼ぶ。
これらの領域内のデータは、ダイレクトページアドレッシングなどの
多くのアドレッシングモードによりアクセスできる。
スタック領域は 1 ページに確保される。
''ダイレクトページ(0, 1 ページ)''
0 ページ、1 ページのどちらをダイレクトページとするかは、
プログラムステイタスワード内のダイレクトページ (P) フラグをセット、
リセットすることにより指定できる。
このページ内のデータは少ないバイト数で高速に、かつ多くの種類の
命令とアドレッシングモードで扱えるようになっている。
''スタック領域''
スタック領域は 1 ページ内の RAM 領域に確保される。
スタックアドレスの上位バイトは 0x01 に固定される。
スタックアドレスの下位バイトはプログラムで設定する必要がある。
''IPL''
SPC700 では、0xFFC0 ~ 0xFFFF までマスク ROM が内蔵されている。
ここには、S-CPU を通じて ROM カセットから 256K ビット RAM 内に、
データを転送するプログラムが入っている。
この領域はリセット時に使用される。
''ビット操作命令適用領域''
+SET1 (セットメモリビット)、CLR1 (クリアメモリビット) 命令は、
ダイレクトページ内の 1 ビットデータに対して適用できる。
+TEST1 (テストアンドセットビット)、TCLR1 (テストアンドクリアビット) 命令は、
64 K バイトの全領域に対し適用できる。
+ブーリアン命令 (AND1, OR1, EOR1, MOV1, NOT1) は、
アドレス 0x0000 ~ 0x1FFF の 8 K バイトの領域に対し適用できる。
0000H┌──┬────────┬──┬────────┬──┬────────┐
│ │SET1,CLR1 │ │AND1,OR1 │ │TEST1,TCLR1 │
00FFH│ │ダイレクト・ページ │ │EOR1,MOV1 │ │ │
│ │に適用 │ │NOT1 │ │ │
01FFH│・・・・└────────┘ │ │ │ │
│ │ │ │ │
1FFFH│・・・・・・・・・・・・・・・・・・・・・・・・・・・・└────────┘ │ │
│ │ │
7FFFH│・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・│・・・・・・・・・・・・・・・・│
│ │: :│
│ │: 使用不可 :│
FFBFH│ │: :│
FFC0H│・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・│・・・・・・・・・・・・・・・・│
│ │ │
│ │ IPL ROM │
│ │ │
FFFFH└──────────────────────────┴────────┘
''ダイレクトページのアドレッシング''
ダイレクトページフラグ (P) で指定されるダイレクトページ
(P=0 : アドレス 0x0000 ~ 0x00FF、P=1 : アドレス 0x0100 ~ 0x01FF)
のデータはアドレッシングモードがすべて適用できるので、
データの多様な取扱いが出来るようになっている。
また、命令語中の 1 バイトデータで直接アドレス指定できるので、
バイト効率も高くなる。
さらに、命令実効サイクルも少なくなるので、データを高速にアクセスできる。
''SPC700命令''
SFX 音楽 CPU は、SPC700 シリーズが使われている。
ただし、割り込みはサポートされてないため、
スタンバイ,スリーブの各モードは使うことができない。