![]() モステクノロジー 6502 マイクロプロセッサ | |
生産時期 | 1975から |
---|---|
販売者 | モステクノロジー |
CPU周波数 | 1 MHz から 3 MHz |
パッケージ | 40ピンDIP |
前世代プロセッサ |
|
次世代プロセッサ |
|
トランジスタ | 3,510,[1] 3,218[2] |
MOS 6502はアメリカのモステクノロジーが1975年に発表した8ビット MPU (CPU) である。
1977年に発売されたApple II に搭載されて一躍有名になり[3]、その後PET 2001(1977年1月発表、10月発売)、CBM3032、VIC-1001等、主にコモドール社の製品で採用されていた。日本ではパソコン用のCPUとしての採用例は比較的少ないほうだが、互換CPUがファミリーコンピュータやPCエンジンに採用されている[3][4]。
モトローラのMC6800をモデルに、レジスタセットの簡素化をはかり、多彩なアドレッシングモードと良く練られたパイプライン機構を持ち、同時期に設計された同一程度動作クロックの他CPU (MPU) 群に比べて格段に高速に演算処理を実行できた。レジスタを小さく、少なくし、ハードウェア規模を減らして高速化を図ったのではないかと見られる節がある一方で、以下のような特徴を持つ。
当時の競合製品と比較して破格の安値がつけられたことでアメリカのホビーストの間ではポピュラーな存在となった。設計は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) などが用意されていた。
呼称 | 説明 |
---|---|
P | プロセッサステータス |
A | アキュムレータ |
X | インデックスレジスタX |
Y | インデックスレジスタY |
PC | プログラムカウンタ |
S | スタックポインタ |
呼称 | 記述 | 説明 |
---|---|---|
イミディエイト | #nn | 直接8 ビットの値を指定する。 |
アブソリュート | nnnn | 直接16 ビットの番地を指定する。 |
ゼロページ | nn | ゼロページの番地を下位8ビットで指定する。 |
リラティブ | nn | 命令直後から-128 - +127の範囲の相対番地を指定する。 |
ゼロページ・インデックストX | nn,X | ゼロページの番地にXレジスタの値を加算した番地を指定する。 |
ゼロページ・インデックストY | nn,Y | ゼロページの番地にYレジスタの値を加算した番地を指定する。 |
アブソリュート・インデックストX | nnnn,X | 絶対番地にXレジスタの値を加算した番地を指定する。 |
アブソリュート・インデックストY | nnnn,Y | 絶対番地にYレジスタの値を加算した番地を指定する。 |
インデックストX・インダイレクト | (nn,X) | ゼロページ・インデックストXで指定される番地に格納された16 ビット値を指定する。 |
インダイレクト・インデックストY | (nn),Y | ゼロページの指定番地に格納された16 ビット値に、Yレジスタの値を加算した番地を指定する。 |
ただし、nには16進1桁の数値を指定する。
6502の割り込み処理は三種類ある。それぞれの割り込みにつき、所定のアドレスに割り込み処理ルーチンの先頭アドレスが記載されており、割り込みが入るとそこへ制御を移す。割り込み処理ルーチンを終了して元のルーチンに復帰するにはRTI 命令 (0x40
) を使用する。
$XXXX | 割り込み名 | 詳細 | 優先順位 |
---|---|---|---|
$FFFA | NMI | 制御不能の強制割り込み。間隔はシステムに依存 | 2 |
$FFFC | RESET | 開始時のみ発動 | 1 |
$FFFE | IRQ/BRK | BRK 命令 (0x00 ) 時に発動
|
3 |
なお、ARM (Acorn RISC Machine) の設計は6502を参考に行われたとされることがあるが、設計者らは6502を参考に設計を行ったわけではない。ARMの命令セットを設計したソフィー・ウィルソンは、6502とARMにはほとんど共通点がないと述べている[8]。別のインタビューでは、(メインメモリをVRAMとしても使っている当時のパソコンの設計では)メモリアクセスが比較的に高性能であり、6502はそれを利用するバランスがすぐれていた、という事のみ言及している[9]。
全般 | |
---|---|
国立図書館 | |
その他 |