MOS_6502
[Wikipedia|▼Menu]

MOS Technology 6502モステクノロジー 6502 マイクロプロセッサ
生産時期1975から
販売者モステクノロジー
CPU周波数1 MHz から 3 MHz
パッケージ40ピンDIP
前世代プロセッサ

Motorola 6800

MOS 6501

次世代プロセッサ

MOS 6510

WDC 65C02

WDC 65C816

トランジスタ3,510,[1] 3,218[2]
テンプレートを表示

MOS 6502はアメリカモステクノロジー1975年に発表した8ビット MPU (CPU) である。

1977年に発売されたApple II に搭載されて一躍有名になり[3]、その後PET 2001(1977年1月発表、10月発売)、CBM3032VIC-1001等、主にコモドール社の製品で採用されていた。日本ではパソコン用のCPUとしての採用例は比較的少ないほうだが、互換CPUがファミリーコンピュータPCエンジンに採用されている[3][4]



概要

モトローラのMC6800をモデルに、レジスタセットの簡素化をはかり、多彩なアドレッシングモードと良く練られたパイプライン機構を持ち、同時期に設計された同一程度動作クロックの他CPU (MPU) 群に比べて格段に高速に演算処理を実行できた。レジスタを小さく、少なくし、ハードウェア規模を減らして高速化を図ったのではないかと見られる節がある一方で、以下のような特徴を持つ。

0から255番地までのメモリ(ゼロページ)を1バイト少ないコードでアクセスできる(MC6800もゼロページは8ビットのアドレスでダイレクトアドレッシングが可能)

アドレッシングモードが豊富

Xレジスタでインデックストインダイレクト、Yレジスタでインダイレクトインデックストと動作が異なる

当時の競合製品と比較して破格の安値がつけられたことでアメリカのホビーストの間ではポピュラーな存在となった。設計はMC6800によく似ていて、バスが互換のほか、ピン配置も一部を除いて揃っている(完全ではないのは後述の訴訟の影響による)。68系と同様に「MPU」と呼称されることがあるが、MC6800シリーズと違ってバイトオーダリトルエンディアンである。KIM-1にも搭載された初期バージョンのチップでは、ROR 命令に不具合がありドキュメントに同命令を掲載していなかった[5][6][7]
訴訟

モステクノロジーはモトローラからスピンアウトしたチームで、当初に発表したMCS6501で起こったモトローラとの特許係争(ピン配列が完全互換だった問題)もあって、1976年に資金難から、コモドール傘下のコモドールSemiconductor Group (CSG) となっていたが、ICのマーキングにはMOSブランドがしばらく使用されていた。同社は1994年にコモドールごと倒産した(モステクノロジー社はMostek社とは別の会社である)。セカンドソースは多社にわたるが、ロックウェル・インターナショナル (Rockwell international) 社やウェスタンデザインセンター(Western Design Center、1977年にモステクノロジーのメンバーがスピンアウトした会社)、Synertek、GTEなどがあり、モステクノロジーの後を引き継ぐ形になっている。

最初、NMOSプロセスで生産されたが、後にロックウェルとウエスタンデザインセンターからCMOS版の65C02が登場した。65C02では、STZ(値$00のストア)やBRA(無条件相対分岐)といった命令が追加され、6502にあったバグが修正されたが、つくられた65C02の拡張命令のコードは両者で異なっていた。

周辺チップ(英語版)としては、6502用のタイミングにあわせた6521(6821互換)PIAや6522、6551 (ACIA) などが用意されていた。
6502のレジスタセット

6502のレジスタセット呼称説明
Pプロセッサステータス
A
アキュムレータ
XインデックスレジスタX
YインデックスレジスタY
PCプログラムカウンタ
Sスタックポインタ


6502のレジスタはPCが16ビットであることを除き、すべて8ビットである。

スタックポインタも上位8ビットが$01に固定されており、スタック領域としては第1ページ(アドレス範囲 $0100 - $01FF)の256バイトのみが使用可能。

命令セット

命令は
バイト単位で、1 - 3 バイトの可変長命令である。

主な命令内容は以下の通り

メモリまたはイミディエイト値からレジスタへのロード

レジスタからメモリへのストア

レジスタ値を別のレジスタへ転送(コピー)

Aレジスタを用いた次の処理

加算

減算

ビット論理演算

比較演算


絶対番地による無条件分岐

サブルーチン分岐・リターン

Pレジスタ値による相対番地への条件分岐

スタックへのプッシュ・プル

Pレジスタへのセット・クリア


加減算命令は、必ずキャリーを伴って行われるため、単に2値の加減算を行う場合には、必ずCLCまたはSEC命令でキャリーを初期化する必要がある。

リセット直後は$FFFC番地に格納されたアドレス(RSTベクタ)から増加する方向に実行が行われる。また、スタックポインタはアドレスが減少する方向に自動的に減算されるため、スタックはメモリ下位番地に向かって伸びる。

アセンブリ言語において、ニーモニックは必ず3 文字で表記される。

豊富なアドレッシングモードを持つ。

A,P以外のレジスタをスタックに直接プッシュ・プルする命令はない。

インデックスレジスタの値は+1,-1できるが、算術・論理演算に使用する命令はない。

主なアドレッシングモード

主なアドレッシングモード呼称記述説明
イミディエイト#nn直接8 ビットの値を指定する。
アブソリュートnnnn直接16 ビットの番地を指定する。
ゼロページnnゼロページの番地を下位8ビットで指定する。
リラティブnn命令直後から-128 - +127の範囲の相対番地を指定する。
ゼロページ・インデックストXnn,Xゼロページの番地にXレジスタの値を加算した番地を指定する。
ゼロページ・インデックストYnn,Yゼロページの番地にYレジスタの値を加算した番地を指定する。
アブソリュート・インデックストXnnnn,X絶対番地にXレジスタの値を加算した番地を指定する。
アブソリュート・インデックストYnnnn,Y絶対番地にYレジスタの値を加算した番地を指定する。
インデックストX・インダイレクト(nn,X)ゼロページ・インデックストXで指定される番地に格納された16 ビット値を指定する。
インダイレクト・インデックストY(nn),Yゼロページの指定番地に格納された16 ビット値に、Yレジスタの値を加算した番地を指定する。

ただし、nには16進1桁の数値を指定する。

ゼロページではアブソリュートより命令のコード数が1バイト少なくなり、所要サイクル数も変化する。

MC6800シリーズは「16 ビットインデックス値+8 ビット定数」になるのに対して、6502はインデックスレジスタが2 つで「16 ビット絶対番地+8 ビットインデックス値」になっているのが最大の違いとなっている。比較すると、インデックスレジスタの重要性が増す代わりに、
ポインタを扱うのは難しくなっている。

割り込み

6502の割り込み処理は三種類ある。それぞれの割り込みにつき、所定のアドレスに割り込み処理ルーチンの先頭アドレスが記載されており、割り込みが入るとそこへ制御を移す。割り込み処理ルーチンを終了して元のルーチンに復帰するにはRTI 命令 (0x40) を使用する。

割り込み処理 一覧$XXXX割り込み名詳細優先順位
$FFFANMI制御不能の強制割り込み。間隔はシステムに依存2
$FFFCRESET開始時のみ発動1
$FFFEIRQ/BRKBRK 命令 (0x00) 時に発動3

互換CPUW65C02
65C02 (Rockwell)
CMOS版で、命令が拡張されている。
W65C02 (Western Design Center)
CMOS版で、Rockwellのものとは別の形で命令が拡張されている。Apple IIe, IIcなどに採用。
6507
6502のアドレスを13ビットに削減したもの。Atari 2600アタリ)で使用。
6510
6502にクロック入力ピンとI/Oポートを追加。VIC-20 (VIC-1001) の後継機、コモドール64マックスマシーンで使用。改良版の7501/8500/8501というバリエーションも存在する。
8502
6510を高速化、コモドール128で使用。RP2A03E
RP65C02 (RICOH)
CMOS版6502。Rockwell製NMOS版6502とピンコンパチブル、命令コンパチブルであり、さらに59の命令の追加、パワーダウン、スタンバイモードなどCMOSの特長を備える。
RP2A03 (RICOH)
6502から10進演算関連の機能が削除され、サウンド機能が追加されているもの。ファミリーコンピュータで使用。CPUのIPコアも存在した。HuC6280A
HuC6280
ハドソンが開発。高クロック化がはかられ独自に命令拡張がなされたもの。PCエンジンで使用。
65816 (W65C816)
Western Design Centerが開発。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:19 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef