MOS Technology 6502

6502
Процессор 6502 в пластмассовом корпусе DIP-40
Процессор 6502
в пластмассовом корпусе DIP-40
Разработчик MOS Technology
Разрядность 8-бит
Представлена 1975
Архитектура CISC
Тип Регистр-Память
Кодирование СК 1..3 байта
Реализация переходов Флаги условий
Расширения 65C02
Регистры
Общего назначения 4
Логотип Викисклада Медиафайлы на Викискладе

MOS Technology 6502, или просто 6502, — восьмиразрядный микропроцессор, разработанный компанией MOS Technology в 1975 году. В момент появления на рынке был дешевле аналогичных изделий компаний-конкурентов (Motorola и Intel). Несмотря на это (и более низкую тактовую частоту) в среднем показывал сходную с ними производительность за счёт продуманных способов адресации памяти, коротких циклов исполнения команд и некоторой конвейеризации. Появление таких процессоров, как 6502 и Zilog Z80, в конечном счёте предопределило появление домашних компьютеров в конце 1970-х годов. Лицензии на архитектуру 6502 были приобретены компаниями Rockwell, Synertek и многими другими, и она была использована во многих разработках. Процессор 6502 и его модификации до сих пор применяются во встраиваемых системах.

История

6502 первоначально разработан командой инженеров, разработавшей процессор Motorola 6800. После того, как команда целиком вышла из компании Motorola, они быстро разработали 6501, полностью новый процессор, совместимый по выводам с 6800 (то есть, его можно было поместить на ту же материнскую плату, что и процессор Motorola, хотя их инструкции и различались). Тут же последовал иск от Motorola, после чего создали модель 6502, уже несовместимую с платами для 6800.

Чтобы заинтересовать разработчиков, инженер Чак Педдл разработал одноплатный компьютер KIM-1. К их великому удивлению, KIM-1 так же хорошо продавался любителям, как и разработчикам, для которых он первоначально и предназначался. Достаточно быстро появились похожие продукты: Rockwell AIM 65 и Synertek SYM-1.

6502 был представлен в сентябре 1975 по цене в 25 $, в то время как 6800 и Intel 8080 продавались за 179 $. Первоначально никто не верил, что это не обман или ошибка, но вскоре и Motorola и Intel снизили цену на свои процессоры до 79 $, чем добились противоположного: снижение цен оправдало 6502 и он стал продаваться сотнями.

Одним из известных использований 6502 был компьютер «Apple I», представленный в 1976 году. Он также использовался далее в линейке Apple II и Commodore PET. Позже 6502 использовался в семействе домашних компьютеров Atari, BBC Micro и множестве других забытых разработок, таких как Ohio Scientific. Даже когда появилась более новая модель 6510, прямой потомок 6502 с цифровым портом ввода-вывода и шиной с тремя состояниями, которая (модель 6510) использовалась как центральный процессор в домашнем компьютере Commodore 64, 6502 не ушёл со сцены, а использовался как контроллер привода диска.

Другим важным применением семейства 65xx были видеоигры. Первой была приставка Atari 2600, которая использовала модель 6507 с меньшим количеством выводов и могла адресовать только 8 Кб памяти. Были проданы миллионы таких приставок. Другим значимым применением была японская приставка Nintendo Famicom, в США и Европе больше известная как Nintendo Entertainment System. Компания Ricoh разработала специальную однокристальную модель 6502 для NES, в которой отказалась от поддержки BCD, зато добавила 22 отображаемых на память регистра для генерации звука, чтения состояния джойстика, и управления простым контроллером ПДП. Модель называлась 2A03 для NTSC-консолей и 2A07 для PAL-консолей и производилась только для Nintendo.

В Болгарии производился процессор CM630 — клон 6502. Использовался в компьютере Правец-8С.

Дальнейшим развитием 6502 стал 8-разрядный процессор 65C02 (с небольшими улучшениями, реализованный на базе CMOS-технологии), а затем — программно совместимый с ним снизу вверх 16-разрядный микропроцессор с 24-разрядной шиной адреса 65C816, использовавшийся в персональном компьютере Apple II GS. В связи с неуспехом Apple II GS на рынке и переходом компании Apple к стратегической поддержке семейства Macintosh процессор 65C816 в компьютерах общего назначения распространения не получил, но используется во встроенных системах и, как и 65C02, выпускается фирмой Western Design Center (WDC) до сих пор.

Советская военная промышленность выпускала совместимый с 65C02 процессор 4К602ВМ1 (разработка НПО «Физика») для использования во встроенных системах. Однако в советских персональных компьютерах Агат использовались процессоры 6502 зарубежного производства.

Особенности архитектуры процессора 6502

6502 Pin configuration (40-Pin DIP)
MOS 6502 registers
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 (bit position)
Main registers
  A Accumulator
Index registers
  X X index
  Y Y index
0  0  0  0  0  0  0  1 SP Stack Pointer
Program counter
PC Program Counter
Status register
  N V - B D I Z C P Processor flags

6502 — 8-разрядный процессор с 16-разрядной шиной адреса, позволяющей адресовать до 64 килобайт оперативной памяти.

Его отличительными чертами являются:

  • очень короткое и точно определённое время выполнения инструкций в тактах (большинство часто используемых инструкций занимает от двух до четырёх тактов),
  • малое количество регистров (один 8-разрядный аккумулятор A, два 8-разрядных индексных регистра X и Y, 8-разрядный указатель стека S, 8-разрядный регистр флажков P, 16-разрядный указатель команды PC), что приводит к тому, что подавляющее большинство арифметико-логических команд должно брать второй аргумент из памяти.
  • большое количество режимов адресации и работы с памятью. В том числе имеются такие экзотические режимы адресации, как, например, «пред-индексная косвенная адресация с индексацией по X» и «пост-индексная косвенная адресация с индексацией по Y». Первые 256 байт оперативной памяти (т. н. нулевая страница) могут адресоваться сокращенным и потому более быстрым образом, что стимулирует размещение в ней важных переменных.

Таким образом, архитектура процессора 6502 имеет ряд свойств, приближающих её к RISC. При одинаковой тактовой частоте 6502 выполняет управляющие команды в несколько раз быстрее, чем 8-разрядные процессоры большинства других архитектур.

В то же время его слабым местом является наличие из всей арифметики только 8-разрядных целочисленных инструкций сложения и вычитания (в двоичном либо двоично-десятичном коде), уже 16-разрядные целочисленные сложение и вычитание требуют нескольких команд, а умножение и деление, даже целочисленные — написания специальных программ.

Примечательно, что фиксированное время выполнения команд 6502 позволило в компьютерах серии Apple II обойтись без каких-либо таймеров, отмеряя все задержки (включая программную реализацию кодирования битов на магнитных дисках) исключительно по времени выполнения команд процессора, то есть работая полностью синхронно по CPU.

Системы, использующие 6502

6502 в художественных произведениях

  • Под управлением 6502 работает робот Бендер — персонаж мультсериала Футурама[1].
  • Также, судя по всему, под управлением этого процессора работает главный злодей в фильме «Терминатор». Это заметно, когда показывается картинка «глазами робота»: при этом на экране, помимо прочей информации, отображается область с листингом ассемблерной программы, содержащим команды, характерные для 6502.

Примечания

  1. The Truth About Bender’s Brain. David X. Cohen, of «Futurama», reveals how MOS Technology’s 6502 processor ended up in the robot’s head  (неопр.). Дата обращения: 17 апреля 2014. Архивировано 7 июля 2017 года.

Литература

  • Морер У. Язык Ассемблера для персонального компьютера ЭПЛ. — М.: Мир, 1987. 430 с.
  • Хлебаров А. Й. Персонален компютър Правец-82. Програмиране на асемблер. — София: Державно издателство «Техника», 1988. 112 с. (болг.)
  • Ангелов А. М., Петров П. Ц. Микропроцесорът — сърцето на микрокомпютъра. — София: Державно издателство «Техника», 1986. 224 с. (болг.)

Ссылки

  • cpugarden.ru/history/welcpuhistory/
  • Полная система команд, включая недокументированные особенности
  • www.6502.org (англ.)
  • Визуальная симуляция 6502 на javascript (англ.)
  • Изучение работы 6502 по микрофотографиям процессора (англ.)
  • sbc.rictor.org (англ.)
  • Breaking NES - 6502 Core, онлайн версия книги про устройство схемотехники процессора 6502
Перейти к шаблону «MOS CPU»
Серия 65xx микропроцессоров фирмы MOS Technology и их клоны