MOS Technology 6502: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м Роботизированная замена, унификация написания
 
(не показаны 42 промежуточные версии 30 участников)
Строка 1: Строка 1:
{{Архитектура CPU
{{Архитектура CPU
| name = 6502
| name = 6502
| image = MOS 6502AD 4585 top.jpg
| caption = Процессор 6502<br> в пластмассовом корпусе [[DIP|DIP-40]]
| designer = [[MOS Technology]]
| designer = [[MOS Technology]]
| bits = 8-бит
| bits = 8-бит
Строка 12: Строка 14:
| gpr = 4
| gpr = 4
}}
}}

[[Файл:MOS 6502AD 4585 top.jpg|thumb|Процессор 6502 в пластмассовом корпусе DIP-40]]
'''MOS Technology 6502''', или просто '''6502''',&nbsp;— восьмиразрядный [[микропроцессор]], разработанный компанией [[MOS Technology]] в [[1975 год]]у. В момент появления на рынке он был дешевле аналогичных изделий компаний-конкурентов ([[Motorola]] и [[Intel]]). Несмотря на это, а также низкую тактовую частоту, в среднем он показывал сходную с ними производительность за счёт продуманных способов адресации памяти, коротких циклов исполнения команд и некоторой [[Вычислительный конвейер|конвейеризации]]. Появление таких процессоров, как 6502 и [[Zilog Z80]], в конечном счёте предопределило появление [[Персональный компьютер (бытовой)|домашних компьютеров]] в конце [[1970-е|1970-х]] годов. Архитектура 6502 была лицензирована компаниями [[Rockwell International|Rockwell]], [[Synertek]] и многими другими, и использована во многих разработках. Процессор 6502 и его модификации до сих пор применяются во [[встраиваемые системы|встраиваемых системах]].
'''MOS Technology 6502''', или просто '''6502''', — восьмиразрядный [[микропроцессор]], разработанный компанией [[MOS Technology]] в [[1975 год]]у. В момент появления на рынке был дешевле аналогичных изделий компаний-конкурентов ([[Motorola]] и [[Intel]]). Несмотря на это более низкую тактовую частоту) в среднем показывал сходную с ними производительность за счёт продуманных способов адресации памяти, коротких циклов исполнения команд и некоторой [[Вычислительный конвейер|конвейеризации]]. Появление таких процессоров, как 6502 и [[Zilog Z80]], в конечном счёте предопределило появление [[Персональный компьютер (бытовой)|домашних компьютеров]] в конце [[1970-е|1970-х]] годов. Лицензии на архитектуру 6502 были приобретены компаниями [[Rockwell International|Rockwell]], [[Synertek]] и многими другими, и она была использована во многих разработках.
На 2006 год процессор 6502 и его модификации до сих пор применялись во [[встраиваемые системы|встраиваемых системах]].


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


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


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


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


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


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


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


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


== Особенности архитектуры процессора 6502 ==
== Особенности архитектуры процессора 6502 ==
[[Файл:MOS6502.svg|right|thumb|215px|6502 Pin configuration (40-Pin [[Dual in-line package|DIP]])]]
{| class="infobox" style="font-size:88%"
|-
|style="text-align:center" |''MOS 6502 registers''
|-
|
{| style="font-size:88%;"
|-
| style="width:10px; text-align:center;"| <sup>1</sup><sub>5</sub>
| style="width:10px; text-align:center;"| <sup>1</sup><sub>4</sub>
| style="width:10px; text-align:center;"| <sup>1</sup><sub>3</sub>
| style="width:10px; text-align:center;"| <sup>1</sup><sub>2</sub>
| style="width:10px; text-align:center;"| <sup>1</sup><sub>1</sub>
| style="width:10px; text-align:center;"| <sup>1</sup><sub>0</sub>
| style="width:10px; text-align:center;"| <sup>0</sup><sub>9</sub>
| style="width:10px; text-align:center;"| <sup>0</sup><sub>8</sub>
| style="width:10px; text-align:center;"| <sup>0</sup><sub>7</sub>
| style="width:10px; text-align:center;"| <sup>0</sup><sub>6</sub>
| style="width:10px; text-align:center;"| <sup>0</sup><sub>5</sub>
| style="width:10px; text-align:center;"| <sup>0</sup><sub>4</sub>
| style="width:10px; text-align:center;"| <sup>0</sup><sub>3</sub>
| style="width:10px; text-align:center;"| <sup>0</sup><sub>2</sub>
| style="width:10px; text-align:center;"| <sup>0</sup><sub>1</sub>
| style="width:10px; text-align:center;"| <sup>0</sup><sub>0</sub>
| style="width:auto;" | ''(bit position)''
|-
|colspan="17" | '''[[Регистр процессора|Main registers]]'''
|- style="background:silver;color:black"
| style="text-align:center; background:white" colspan="8"|
| style="text-align:center;" colspan="8"| A
| style="width:auto; background:white; color:black;"| '''A'''ccumulator
|-
|colspan="17" | '''[[Индексный регистр|Index registers]]'''
|- style="background:silver;color:black"
| style="text-align:center; background:white" colspan="8"|
| style="text-align:center;" colspan="8"| X
| style="background:white; color:black;"| '''X''' index
|- style="background:silver;color:black"
| style="text-align:center; background:white" colspan="8"|
| style="text-align:center;" colspan="8"| Y
| style="background:white; color:black;"| '''Y''' index
|- style="background:silver;color:black"
| style="text-align:center; background:#DDDDDD" colspan="8"| 0 0 0 0 0 0 0 1
| style="text-align:center;" colspan="8"| SP
| style="background:white; color:black;"| '''S'''tack '''P'''ointer
|-
|colspan="17" | '''[[Счётчик команд|Program counter]]'''
|- style="background:silver;color:black"
| style="text-align:center;" colspan="16"| PC
| style="background:white; color:black;"| '''P'''rogram '''C'''ounter
|-
|colspan="17" | '''[[Регистр флагов|Status register]]'''
|- style="background:silver;color:black"
| style="text-align:center; background:white" colspan="8" |
| style="text-align:center;"| [[Sign flag|N]]
| style="text-align:center;"| [[Флаг переполнения|V]]
| style="text-align:center;"| -
| style="text-align:center;"| [[Точка останова|B]]
| style="text-align:center;"| [[Двоично-десятичный код|D]]
| style="text-align:center;"| [[Interrupt flag|I]]
| style="text-align:center;"| [[Zero flag|Z]]
| style="text-align:center;"| [[Флаг переноса|C]]
| style="background:white; color:black" | '''P''' Processor flags
|}
|}


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


Его отличительными чертами являются:
Интересно, что фиксированное время выполнения команд 6502 позволило в компьютерах серии Apple II обойтись без каких-либо таймеров, отмеряя все задержки (включая программную реализацию кодирования битов на магнитных дисках) исключительно по времени выполнения команд процессора, то есть работая полностью синхронно по CPU.
* очень короткое и точно определённое время выполнения инструкций в тактах (большинство часто используемых инструкций занимает от двух до четырёх тактов),
* малое количество регистров (один 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 ==
* Игровые приставки — [[8-разрядные Atari]], [[Atari 2600]], [[Nintendo Entertainment System]] (в России более известная как «[[Dendy]]»)
* Игровые приставки — [[Atari 2600]], [[Nintendo Entertainment System]] (в России более известны аппаратные клоны Famicom, японского варианта этой приставки, продававшиеся под торговой маркой «[[Dendy]]»), [[PC Engine]]
* Компьютеры — [[Atari 400/800/XL/XE|8-разрядные Atari]], [[Apple II]], [[Правец (компьютер)|Правец 8]], [[Агат (компьютер)|Агат]], [[Commodore 64]] ([[MOS Technology 6510|MOS6510]] — модифицированная версия MOS6502)
* [[Apple II]]
<gallery caption="Домашние компьютеры и игровые приставки на основе процессора 6502" mode=packed>
* [[Правец (компьютер)|Правец 8]]
File:Apple iieb.jpg|[[Apple IIe]]
* [[Агат (компьютер)|Агат]]
File:BBC Micro Front Restored.jpg|[[BBC Micro]]
* [[Commodore 64]] ([[MOS Technology 6510|MOS6510]]&nbsp;— модифицированная версия MOS6502)
File:Atari-2600-Console.jpg|[[Atari 2600]]
File:Atari 800.jpg|[[Atari 400/800/XL/XE|Atari 800]]
File:Commodore-VIC-20-FL.jpg|[[Commodore VIC-20]]
File:C64c_system.jpg|[[Commodore 64]]
File:NES-Console-Set.jpg|[[NES]]
File:OSI Challenger 4P.jpg|{{iw|Ohio Scientific}}
File:Commodore 2001 Series-IMG 0448b.jpg|[[Commodore PET]]
File:Orao-IMG 7278.jpg|[[Orao]]
File:Soviet microcomputer AGAT-7.jpg|[[Агат (компьютер)|Агат]]
</gallery>


== 6502 в художественных произведениях ==
== 6502 в художественных произведениях ==
* Под управлением 6502 работает робот [[Бендер (Футурама)|Бендер]] — персонаж мультсериала [[Футурама]]<ref>{{Cite web |url=http://spectrum.ieee.org/semiconductors/processors/the-truth-about-benders-brain |title=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 |access-date=2014-04-17 |archive-date=2017-07-07 |archive-url=https://web.archive.org/web/20170707064344/http://spectrum.ieee.org/semiconductors/processors/the-truth-about-benders-brain |deadlink=no }}</ref>.
* Также, судя по всему, под управлением этого процессора работает главный злодей в фильме «[[Терминатор (фильм)|Терминатор]]». Это заметно, когда показывается картинка «глазами робота»: при этом на экране, помимо прочей информации, отображается область с листингом ассемблерной программы, содержащим характерные для 6502 команды.
* Также, судя по всему, под управлением этого процессора работает главный злодей в фильме «[[Терминатор (фильм)|Терминатор]]». Это заметно, когда показывается картинка «глазами робота»: при этом на экране, помимо прочей информации, отображается область с листингом ассемблерной программы, содержащим команды, характерные для 6502.
* Под управлением 6502 работает робот [[Бендер (Футурама)|Бендер]] — персонаж мультсериала [[Футурама]]{{нет АИ|24|03|2013}}.

== Рекомендуемая литература ==
* ''Морер&nbsp;У.'' Язык Ассемблера для персонального компьютера ЭПЛ. — {{М.}}: Мир, 1987. 430 с.
* ''Хлебаров А. Й.'' Персонален компютър Правец-82. Програмиране на асемблер. — София: Державно издателство «Техника», 1988. 112 с.{{ref-bg}}
* ''Ангелов А. М., Петров П. Ц.'' Микропроцесорът — сърцето на микрокомпютъра. — София: Державно издателство «Техника», 1986. 224 с.{{ref-bg}}


== Примечания ==
== Примечания ==
{{примечания}}
{{примечания}}

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


== Ссылки ==
== Ссылки ==
* [https://web.archive.org/web/20121212003314/http://cpugarden.ru/history/welcpuhistory/#650x cpugarden.ru/history/welcpuhistory/]
* [http://www.8051.ru/онлайн-эмулятор-6502-процессора 6502 Онлайн эмулятор]
* [http://cpugarden.ru/history/welcpuhistory/#650x cpugarden.ru/history/welcpuhistory/]
* [http://www.emuverse.ru/wiki/MOS_Technology_6502/Система_команд Полная система команд, включая недокументированные особенности]
* [http://www.emuverse.ru/wiki/MOS_Technology_6502/Система_команд Полная система команд, включая недокументированные особенности]
* [http://www.6502.org/ www.6502.org]{{ref-en}}
* [http://www.6502.org/ www.6502.org]{{ref-en}}
Строка 66: Строка 152:
* [http://breaknes.com Изучение работы 6502 по микрофотографиям процессора]{{ref-en}}
* [http://breaknes.com Изучение работы 6502 по микрофотографиям процессора]{{ref-en}}
* [http://sbc.rictor.org/ sbc.rictor.org]{{ref-en}}
* [http://sbc.rictor.org/ sbc.rictor.org]{{ref-en}}
* [https://github.com/emu-russia/breaks/releases/tag/6502-book-revA-russian Breaking NES — 6502 Core], онлайн версия книги про устройство схемотехники процессора 6502


{{MOS CPU}}
{{MOS CPU}}
{{Перевести|en|MOS Technology 6502}}


[[Категория:Микропроцессоры]]
[[Категория:Микропроцессоры]]
[[Категория:История компьютерной техники]]
[[Категория:История компьютерной техники]]
[[Категория:Микросхемы MOS Technology]]
[[Категория:Микросхемы MOS Technology]]
[[Категория:Появились в 1975 году]]
[[Категория:Появились в 1975 году в США]]

Текущая версия от 05:46, 23 июня 2024

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 и многими другими, и она была использована во многих разработках.

На 2006 год процессор 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.

Примечания

[править | править код]

Литература

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