MOS Technology 6502: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Пушёк (обсуждение | вклад) |
|||
(не показано 40 промежуточных версий 28 участников) | |||
Строка 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''', |
'''MOS Technology 6502''', или просто '''6502''', — восьмиразрядный [[микропроцессор]], разработанный компанией [[MOS Technology]] в [[1975 год]]у. В момент появления на рынке был дешевле аналогичных изделий компаний-конкурентов ([[Motorola]] и [[Intel]]). Несмотря на это (и более низкую тактовую частоту) в среднем показывал сходную с ними производительность за счёт продуманных способов адресации памяти, коротких циклов исполнения команд и некоторой [[Вычислительный конвейер|конвейеризации]]. Появление таких процессоров, как 6502 и [[Zilog Z80]], в конечном счёте предопределило появление [[Персональный компьютер (бытовой)|домашних компьютеров]] в конце [[1970-е|1970-х]] годов. Лицензии на архитектуру 6502 были приобретены компаниями [[Rockwell International|Rockwell]], [[Synertek]] и многими другими, и она была использована во многих разработках. |
||
На 2006 год процессор 6502 и его модификации до сих пор применялись во [[встраиваемые системы|встраиваемых системах]]. |
|||
== История == |
== История == |
||
6502 |
6502 первоначально разработан командой инженеров, разработавшей процессор [[Motorola 6800]]. После того, как команда целиком вышла из компании Motorola, они быстро разработали 6501, полностью новый процессор, совместимый по выводам с 6800 (то есть, его можно было поместить на ту же материнскую плату, что и процессор Motorola, хотя их инструкции и различались). Тут же последовал иск от Motorola, после чего создали модель 6502, уже несовместимую с платами для 6800. |
||
Чтобы заинтересовать разработчиков, инженер Чак |
Чтобы заинтересовать разработчиков, инженер [[Педдл, Чарльз Ингерхэм|Чак Педдл]] разработал одноплатный компьютер [[KIM-1]]. К их великому удивлению, KIM-1 так же хорошо продавался любителям, как и разработчикам, для которых он первоначально и предназначался. Достаточно быстро появились похожие продукты: [[Rockwell AIM 65]] и [[Synertek SYM-1]]. |
||
6502 |
6502 был представлен в [[сентябрь|сентябре]] [[1975]] по цене в 25 $, в то время как 6800 и [[Intel 8080]] продавались за 179 $. Первоначально никто не верил, что это не обман или ошибка, но вскоре и Motorola и Intel снизили цену на свои процессоры до 79 $, чем добились противоположного: снижение цен оправдало 6502 и он стал продаваться сотнями. |
||
Одним из известных использований 6502 был компьютер [[Apple |
Одним из известных использований 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 Кб памяти. Были проданы миллионы таких приставок. Другим значимым применением была японская приставка [[ |
Другим важным применением семейства 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 |
Дальнейшим развитием 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 == |
||
* Игровые приставки — |
* Игровые приставки — [[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]] — модифицированная версия 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 работает робот [[Бендер (Футурама)|Бендер]] — персонаж мультсериала [[Футурама]]<ref>[http://spectrum.ieee.org/semiconductors/processors/the-truth-about-benders-brain 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]</ref>. |
|||
== Рекомендуемая литература == |
|||
* ''Морер У.'' Язык Ассемблера для персонального компьютера ЭПЛ. — {{М.}}: Мир, 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 | |
---|---|
| |
Разработчик | 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
[править | править код]MOS 6502 registers | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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
[править | править код]- Игровые приставки — Atari 2600, Nintendo Entertainment System (в России более известны аппаратные клоны Famicom, японского варианта этой приставки, продававшиеся под торговой маркой «Dendy»), PC Engine
- Компьютеры — 8-разрядные Atari, Apple II, Правец 8, Агат, Commodore 64 (MOS6510 — модифицированная версия MOS6502)
6502 в художественных произведениях
[править | править код]- Под управлением 6502 работает робот Бендер — персонаж мультсериала Футурама[1].
- Также, судя по всему, под управлением этого процессора работает главный злодей в фильме «Терминатор». Это заметно, когда показывается картинка «глазами робота»: при этом на экране, помимо прочей информации, отображается область с листингом ассемблерной программы, содержащим команды, характерные для 6502.
Примечания
[править | править код]- ↑ 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 Technology 6502 (англ.). |