Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

MOS Technology 6502 (обычно произносится как «шестьдесят пять-о-два» или «шесть-пять-о-два») [3] представляет собой 8-разрядный микропроцессор , который был разработан небольшой группой во главе с Чаком вразнос для MOS Technology . Команда дизайнеров ранее работала в Motorola над проектом Motorola 6800 ; 6502 - это, по сути, упрощенная, менее дорогая и быстрая версия этой конструкции.

Когда он был представлен в 1975 году, 6502 был самым дешевым микропроцессором на рынке со значительным отрывом. Первоначально он продавался менее чем за одну шестую от стоимости конкурирующих разработок от более крупных компаний, таких как 6800 или Intel 8080 . Его внедрение вызвало резкое снижение цен на всем рынке процессоров. Наряду с Zilog Z80 он положил начало серии проектов, которые привели к революции домашних компьютеров в начале 1980-х годов.

Популярные игровые консоли и компьютеры, такие как Atari 2600 , семейство Atari 8-bit , Apple II , Nintendo Entertainment System , Commodore 64 , Atari Lynx , BBC Micro и другие, используют 6502 или варианты базовой конструкции. Вскоре после появления 6502 технология MOS была куплена Commodore International , которая продолжала продавать микропроцессор и лицензии другим производителям. В первые дни 6502, он был вторым-источников по Роквеллу и Synertek , а затем лицензированы для других компаний.

В своей КМОП- форме 65C02 , разработанной Western Design Center (WDC), семейство 6502 продолжает широко использоваться во встроенных системах , объемы производства которых оцениваются в сотни миллионов. [4]

История и использование [ править ]

Истоки в Motorola [ править ]

Демонстрационная плата Motorola 6800, построенная Чаком Педдлом и Джоном Бьюкененом в 1974 году.

6502 был разработан многими из тех же инженеров, которые проектировали семейство микропроцессоров Motorola 6800 . [5] Motorola начала проект микропроцессора 6800 в 1971 году с Томом Беннеттом в качестве главного архитектора. Компоновка микросхемы началась в конце 1972 года, первые 6800 чипов были изготовлены в феврале 1974 года, а полное семейство было официально выпущено в ноябре 1974 года. [6] [7] Джон Бьюкенен был разработчиком чипа 6800 [8] [9] и Род Оргилл, который позже создал 6501, помог Бьюкенену с анализом схем и компоновкой микросхемы. [10] Билл Менш присоединился к Motorola в июне 1971 года после окончания Университета Аризоны (в возрасте 26 лет). [11]Его первым заданием было помочь определить периферийные ИС для семейства 6800, а позже он был главным разработчиком адаптера периферийного интерфейса 6820 (PIA). [12] Инженеры Motorola могли выполнять аналоговое и цифровое моделирование на мэйнфрейме IBM 370-165 . [13] Беннетт нанял Чака Педдла в 1973 году для выполнения архитектурной поддержки продуктов семейства 6800, которые уже ведутся. [14] Он участвовал во многих областях, в том числе в разработке 6850 ACIA (последовательный интерфейс). [15]

Целевыми клиентами Motorola были известные компании-производители электроники, такие как Hewlett-Packard , Tektronix , TRW и Chrysler . [16] В мае 1972 года инженеры Motorola начали посещать избранных клиентов и делиться деталями предлагаемой ими 8-разрядной микропроцессорной системы с ПЗУ, ОЗУ, параллельным и последовательным интерфейсами. [17]В начале 1974 года они предоставили инженерные образцы микросхем, чтобы клиенты могли создавать прототипы своих конструкций. Стратегия Motorola по «полному семейству продуктов» была сосредоточена не на цене микропроцессора, а на снижении общей стоимости проектирования для заказчика. Они предложили программное обеспечение для разработки на таймшер-компьютере, систему отладки «EXORciser», обучение на месте и поддержку инженеров по полевым приложениям. [18] [19] И Intel, и Motorola изначально объявили цену в 360 долларов за один микропроцессор. [20] [21] Фактическая цена на объем производства была намного меньше. Motorola предложила дизайнерский комплект, содержащий 6800 с шестью микросхемами поддержки, за 300 долларов. [22]

Педдл, который сопровождал продавцов во время визитов к покупателям, обнаружил, что покупателей отталкивает высокая стоимость микропроцессорных чипов. [23] В то же время эти посещения неизменно приводили к тому, что инженеры, которых он представлял, составляли списки необходимых инструкций, которые были намного меньше, чем «все эти причудливые инструкции», которые были включены в 6800. [24] Педдл и другие члены команды начали обрисовывать в общих чертах дизайн усовершенствованного микропроцессора уменьшенного размера. В то время новое предприятие Motorola по производству полупроводников в Остине, штат Техас, испытывало трудности с производством МОП-микросхем, а середина 1974 года стала началом годовой рецессии в полупроводниковой промышленности. Кроме того, многие из Мезы, Аризонасотрудники были недовольны предстоящим переездом в Остин, штат Техас . [25]

Руководство подразделения полупроводниковой продукции Motorola было перегружено проблемами и не проявило интереса к предложению Peddle о недорогом микропроцессоре. В конце концов Педдлу было отправлено официальное письмо, в котором ему велели прекратить работу над системой. [26] Педдл ответил на приказ, сообщив Motorola, что письмо представляет собой официальное заявление об «отказе от проекта», и поэтому интеллектуальная собственность, которую он разработал к тому моменту, теперь принадлежит ему. [27]В интервью в ноябре 1975 года председатель Motorola Роберт Гэлвин в конечном итоге согласился с тем, что концепция Педдла была удачной и что подразделение упустило возможность: «Мы не выбрали правильных руководителей в подразделении полупроводниковой продукции». Подразделение было реорганизовано, сменилось руководство. Новый вице-президент группы Джон Велти сказал: «Организация по продажам полупроводников потеряла чувствительность к потребностям клиентов и не может принимать быстрые решения». [28]

Переход на технологию MOS [ править ]

Реклама MOS Technology 1973 года, в которой подчеркиваются возможности заказных интегральных схем
MOS Technology MCS6501, в белом керамическом корпусе, изготовлен в конце августа 1975 г.

Педдл начал искать вне Motorola источник финансирования для этого нового проекта. Сначала он обратился к генеральному директору Mostek Л.Дж. Севину , но тот отказался. Позже Севин признался, что это произошло потому, что он боялся, что Motorola подаст на них в суд. [29]

В то время как Педдл посетил Ford Motor Company во время одной из своих торговых поездок, Боб Джонсон, позже глава подразделения автоматизации двигателей Ford, упомянул, что их бывший коллега Джон Пайвинен перешел в General Instrument и сам изучал дизайн полупроводников. С тех пор он ушел и занимался очень интересной работой над чипсетами для калькуляторов в новой компании, которую он основал в Вэлли-Фордж, штат Пенсильвания . [30]

Пайвинен основал MOS Technology в 1969 году вместе с двумя другими руководителями General Instrument, Морт Джаффе и Дон Маклафлин. Allen-Bradley , поставщик электронных компонентов и промышленных устройств управления, приобрел контрольный пакет акций в 1970 году. [31] Компания разработала и изготовила индивидуальные микросхемы для клиентов и разработала линейку микросхем для калькуляторов. [32]

После того, как усилия Mostek провалились, Педдл подошел к Пайвинену, который «сразу понял». [33] 19 августа 1974 года Чак Педдл, Билл Менш, Род Оргилл, Гарри Боуком, Рэй Хирт, Терри Холдт и Уил Матис покинули Motorola, чтобы присоединиться к MOS. Майк Джейнс присоединился позже. Из семнадцати разработчиков микросхем и специалистов по компоновке в команде 6800 осталось восемь. Целью команды было разработать и произвести недорогой микропроцессор для встраиваемых приложений и охватить как можно более широкую клиентскую базу. Это было бы возможно только в том случае, если бы микропроцессор был недорогим, а группа установила целевую цену на уровне 5 долларов за объем. [34]

Чипы производятся путем печати нескольких копий дизайна чипа на поверхности «пластины» , тонкого диска из высокочистого кремния. Чипы меньшего размера могут быть напечатаны в большем количестве на одной и той же пластине, что снижает их относительную цену. Кроме того, пластины всегда содержат некоторое количество крошечных физических дефектов, разбросанных по поверхности. Любая микросхема, напечатанная в этом месте, выйдет из строя, и ее следует выбросить. Меньшие чипы означают, что вероятность того, что одна копия будет отпечатана с дефектом, меньше. По обеим этим причинам стоимость конечного продукта сильно зависит от размера конструкции микросхемы. [35]

Оригинальные 6800 чипы были предназначены , чтобы быть 180 × 180 мил , [а] , но компоновка была завершена в 212 × 212 мил (5,4 × 5,4 мм) , или площадь 29,0 мм 2 . [36] Для нового дизайна целевые затраты требовали целевого размера 153 × 168 мил (3,9 × 4,3 мм) или площади 16,6 мм 2 . [37] Для достижения этой цели потребуется несколько новых методов.

Переход на NMOS [ править ]

Когда разрабатывалась модель 6502, на рынке появилось два значительных новшества, которые обеспечили значительное снижение затрат. Первым был переход к NMOS с истощенной загрузкой . В 6800 использовался ранний процесс NMOS, который требовал трех напряжений питания, но одной из особенностей микросхемы был встроенный удвоитель напряжения, который позволял использовать один источник питания + 5 В для внутренних +5, -5 и +12, в отличие от других микросхем. эпоха, подобная Intel 8080, которая требовала трех отдельных контактов питания. [38]Хотя эта функция снизила сложность источника питания и компоновки выводов, она по-прежнему требовала отдельных шин питания для различных вентилей на кристалле, что увеличивало сложность и размер. При переходе к новой конструкции истощающей нагрузки достаточно было единственного источника питания +5, что устраняло всю эту сложность. [39]

Еще одним практическим преимуществом было то, что тактовый сигнал для более ранних процессоров должен был быть достаточно сильным, чтобы выдержать все рассеивание при прохождении через цепи, что почти всегда требовало отдельного внешнего чипа, который мог бы обеспечить достаточно сильный сигнал. При снижении требований к мощности NMOS часы можно было перенести на микросхему, что упростило общую конструкцию компьютера. Эти изменения значительно снизили сложность и стоимость внедрения полной системы. [39]

Еще одно изменение, которое имело место, - это введение маскировки проекции. Раньше чипы наносили на поверхность пластины, помещая маску на поверхность пластины и затем освещая ее ярким светом. Маски часто собирали крошечные кусочки грязи или фоторезиста, когда они поднимались с чипа, вызывая дефекты в этих местах при любой последующей маскировке. В сложных конструкциях, таких как процессоры, можно было бы использовать 5 или 6 таких шагов маскирования, и вероятность того, что хотя бы один из этих шагов привнесет дефект, была очень высока. В большинстве случаев 90% таких конструкций имели дефекты, что приводило к доходности 10%. Цена рабочих примеров должна была покрывать производственные затраты на 90%, которые были выброшены. [40]

В 1973 году Perkin-Elmer представила систему Micralign , которая проецировала изображение маски на пластину вместо прямого контакта. Маски больше не собирают грязь с пластин, и их срок службы составляет порядка 100 000 использований, а не 10. Это устранило поэтапные отказы и высокий процент брака, который ранее наблюдался в сложных конструкциях. Доходность процессоров сразу же подскочила с 10% до 60 или 70%. Это означало, что цена ЦП упала примерно на такую ​​же величину, и микропроцессор внезапно стал массовым устройством. [40]

Существующие производственные линии MOS Technology были основаны на более старой технологии PMOS, они еще не начали работать с NMOS, когда прибыла команда. Пайвинен пообещал вовремя запустить линию NMOS, чтобы начать производство нового процессора. Он выполнил обещание, новая линия была готова к июню 1975 года. [41]

Примечания к дизайну [ править ]

Чак Педдл, Род Оргилл и Уил Матис разработали первоначальную архитектуру новых процессоров. Статья в журнале EDN за сентябрь 1975 г. дает следующее краткое изложение конструкции: [42]

Семейство MOS Technology 650X представляет собой сознательную попытку восьми бывших сотрудников Motorola, которые работали над разработкой системы 6800, выпустить деталь, которая заменит и превзойдет 6800, но при этом будет продавать ее дешевле. Оглядываясь назад на проект 6800, команда MOS Technology во главе с Чаком Педдлом внесла следующие архитектурные изменения в ЦП Motorola ...

Основным изменением, касающимся размера микросхемы, было устранение трех состояний на выходах адресной шины. Это было включено в 6800, чтобы позволить ему работать с другими микросхемами в ролях прямого доступа к памяти (DMA) и совместной обработки за счет значительного пространства кристалла. На практике использование такой системы требовало, чтобы другие устройства были аналогичными сложными, и разработчики вместо этого стремились использовать внешние системы для координации такого доступа. В 6502 просто убрали эту функцию, поскольку он был недорогим контроллером, который использовался для определенных задач и связи с простыми устройствами. Педдл предположил, что любой, кому действительно нужен такой стиль доступа, может реализовать его с помощью одного 74158 . [43]

Следующим важным отличием было упрощение регистров. Для начала сняли один из двух аккумуляторов . Регистры общего назначения, такие как аккумуляторы, должны быть доступны для многих частей декодера команд и, следовательно, требуют значительного количества проводных соединений для перемещения данных в их хранилище и из них. Два аккумулятора упрощают многие задачи кодирования, но значительно усложняют саму конструкцию микросхемы. [42] Дальнейшая экономия была достигнута за счет уменьшения регистра стека с 16 до 8 битов, что означает, что стек мог иметь длину только 256 байт, что было достаточно для его предполагаемой роли микроконтроллера. [42]

16-битный индексный регистр IX был разделен на две части, став X и Y. Что еще более важно, изменился стиль доступа; в 6800 IX содержал 16-битный адрес, который был смещен числом, указанным в инструкции, два были добавлены для получения окончательного адреса. В 6502 (и большинстве других конструкций) базовый адрес хранился в инструкции, и к нему добавлялись X или Y. [43]

Наконец, набор команд был упрощен, освободив место для декодера и логики управления. Из исходных 72 инструкций в 6800 осталось 56. Среди тех, что были удалены, были любые инструкции, которые перемещали данные между двумя аккумуляторами 6800, а также ряд инструкций ветвления, вдохновленных PDP-11, таких как возможность напрямую сравнивать два числовых значения. 6502 использовал более простую систему, которая обрабатывала сравнения, выполняя математические вычисления в аккумуляторе и затем проверяя флаги результатов. [43]

Высокоуровневый дизайн микросхемы пришлось превратить в чертежи транзисторов и межсоединений. В MOS Technology «макетирование» выполнялось вручную с помощью цветных карандашей и пергаментной бумаги. Макет состоял из тысяч многоугольников на шести разных рисунках; по одному на каждый уровень производственного процесса. Учитывая ограничения по размеру, необходимо было постоянно учитывать всю конструкцию микросхемы. Менч и Пайвинен работали над декодером инструкций [44], в то время как Менч, Педдл и Оргилл работали над ALU и регистрами. Еще одним достижением, разработанным на вечеринке, стал способ совместного использования части внутренней проводки, что позволило уменьшить размер ALU. [45]

Несмотря на все усилия, окончательный дизайн оказался на 5 мил больше ширины. [46] Первые 6502 чипа имели размер 168 × 183 мил (4,3 × 4,7 мм) или площадь 19,8 мм 2 . Инструкция поворота вправо (ROR) не работала в первом кремнии, поэтому инструкция была временно исключена из опубликованных документов, но следующая итерация дизайна уменьшила чип и исправила инструкцию поворота вправо, которая затем была включена в исправленную документацию. . [47]

Представляем 6501 и 6502 [ править ]

Вводная реклама микропроцессоров MOS Technology MCS6501 и MCS6502

MOS представит два микропроцессора, основанных на той же базовой конструкции: 6501 будет подключаться к тому же разъему, что и Motorola 6800, а 6502 перестроит распиновку для поддержки встроенного тактового генератора. Оба будут работать с другими микросхемами поддержки, разработанными для 6800. Они не будут запускать программное обеспечение 6800, потому что у них другой набор инструкций, разные регистры и в основном разные режимы адресации. [48] Род Орджилл был ответственным за дизайн 6501; он помогал Джону Бьюкенену в Motorola на 6800. Билл Менш сделал 6502; он был разработчиком адаптера периферийного интерфейса 6820 (PIA) в Motorola. С макетом помогали Гарри Боуком, Майк Джейнс и Сидней-Энн Холт.

Внедрение микропроцессоров MOS Technology отличалось от традиционного выпуска продукции, продолжавшегося несколько месяцев. Первый запуск новой интегральной схемы обычно используется для внутреннего тестирования и передается избранным клиентам в качестве «инженерных образцов». Эти микросхемы часто имеют небольшие конструктивные дефекты или два, которые будут исправлены до начала производства. Целью Чака Педдла было продать первые партии чипов 6501 и 6502 участникам торговой выставки Wescon в Сан-Франциско, которая началась 16 сентября 1975 года. Педдл был очень эффективным представителем, и микропроцессоры MOS Technology широко освещались в отраслевой прессе. Одним из первых был полностраничный рассказ о микропроцессорах MCS6501 и MCS6502 в выпуске журнала Electronics от 24 июля 1975 года .[49] Истории также попали вEE Times (24 августа 1975 г.), [50] EDN (20 сентября 1975 г.), Electronic News (3 ноября 1975 г.), Byte (ноябрь 1975 г.) [51] и Microcomputer Digest (ноябрь 1975 г.). [52] Рекламы 6501 появились в нескольких публикациях в первую неделю августа 1975 года. 6501 будет продаваться в Wescon по 20 долларов за штуку. [53] В сентябре 1975 года реклама включала как микропроцессоры 6501, так и 6502. 6502 будет стоить всего 25 долларов (что эквивалентно 119 долларам в 2019 году). [54]

Когда компания MOS Technology прибыла в Вескон, они обнаружили, что экспонентам не разрешается ничего продавать в выставочном зале. Они арендовали MacArthur Suite в отеле St. Francis и предложили клиентам приобрести процессоры. В комплекте процессоры хранились в больших банках, что означало, что чипы были в производстве и были легко доступны. Покупатели не знали, что в нижней половине каждой банки находятся нефункциональные микросхемы. [55] Чипы стоили 20 и 25 долларов, а пакет документации - 10 долларов. Пользователям предлагалось делать ксерокопиидокументов, недорогой способ для MOS Technology распространять информацию о продукте. В предварительных таблицах данных перечислено всего 55 инструкций, за исключением инструкции «Повернуть вправо» (ROR), которая некорректно работала на этих ранних чипах. В обзорах в Byte и EDN отмечалось отсутствие инструкции ROR. Следующая версия схемы устранила эту проблему, и в таблице данных за май 1976 г. было перечислено 56 инструкций. Педдл хотел, чтобы каждый заинтересованный инженер и любитель имел доступ к микросхемам и документации; другие полупроводниковые компании хотели иметь дело только с «серьезными» клиентами. Например, Signetics представила микропроцессор 2650, и ее рекламные объявления просили читателей писать информацию на фирменных бланках своей компании.[56]

MOS Technology MCS6502, в белом керамическом корпусе, изготовлен в конце 1975 г.

Иск Motorola [ править ]

В даташите за май 1976 года отсутствовал микропроцессор 6501, который был в версии от августа 1975 года .

Представление 6501/6502 в печати и на Wescon имело огромный успех. Обратной стороной было то, что внимание Motorola привлекло широкое освещение в прессе. В октябре 1975 года Motorola снизила цену одного микропроцессора 6800 со 175 до 69 долларов. Комплект для проектирования системы стоимостью 300 долларов был сокращен до 150 долларов, и теперь он поставлялся с печатной платой. [57] 3 ноября 1975 года Motorola обратилась в Федеральный суд с иском о запрете MOS Technology производить и продавать микропроцессорные устройства. Они также подали иск о нарушении патентных прав и незаконном присвоении коммерческой тайны. Motorola заявила, что семь бывших сотрудников присоединились к MOS Technology для создания микропроцессорных продуктов этой компании. [58]

Motorola была компанией с доходом в миллиард долларов, у нее было убедительное дело и адвокаты. 30 октября 1974 года Motorola подала множество патентных заявок на семейство микропроцессоров и получила двадцать пять патентов. Первый был в июне 1976 года, а второй - Биллу Меншу 6 июля 1976 года за схему чипа 6820 PIA. Эти патенты касались шины 6800 и того, как периферийные микросхемы взаимодействуют с микропроцессором. [59]Motorola начала производить транзисторы в 1950 году и имела портфель патентов на полупроводники. Аллен-Брэдли решил не бороться с этим делом и продал свою долю в MOS Technology обратно основателям. В иске были названы имена четырех бывших инженеров Motorola: Чака Педла, Уилла Мэтиса, Билла Менша и Род Оргилла. Все они были названы изобретателями в 6800 патентных заявках. В процессе открытия компания Motorola обнаружила, что один инженер, Майк Джейнс, проигнорировал инструкции Педдла и принес свои проектные документы 6800 в MOS Technology. [60] В марте 1976 года у теперь независимой MOS Technology заканчивались деньги, и ей пришлось уладить дело. Они согласились отказаться от процессора 6501, заплатить Motorola 200 000 долларов и вернуть документы, которые, по утверждению Motorola, были конфиденциальными. Обе компании согласилиськросс-лицензионные патенты на микропроцессоры. [61] В мае того же года Motorola снизила цену одного микропроцессора 6800 до 35 долларов. К ноябрю Commodore приобрела MOS Technology. [62] [63]

Компьютеры и игры [ править ]

Несмотря на юридические проблемы, MOS все еще оставалась с проблемой заставить разработчиков опробовать свой процессор, что побудило Чака Педдла спроектировать одноплатный компьютер MDT-650 («терминал разработки микрокомпьютеров») . Другая группа внутри компании разработала KIM-1 , который продавался в неполном виде и мог быть превращен в полезную систему с добавлением компьютерного терминала стороннего производителя и компактного кассетного привода. К их большому изумлению, KIM-1 хорошо продавался любителям и мастерам, а также инженерам, для которых он был предназначен. Соответствующий Rockwell AIM 65Система контроля / обучения / развития также хорошо себя зарекомендовала. Программное обеспечение AIM 65 было основано на программном обеспечении MDT. Другим примерно похожим продуктом был Synertek SYM-1 .

Одним из первых «общественных» использует для дизайна был Apple I микрокомпьютер , введенный в 1976 году 6502 был рядом используется в Commodore PET и Apple II , [64] и выпущен в 1977. Это было позже использовано в Атари Семейство 8-битных компьютеров и домашние компьютеры Acorn Atom , BBC Micro , [64] Commodore VIC-20 и другие разработки как для домашних компьютеров, так и для бизнеса, такие как Ohio Scientific и Oric . 6510 , прямой преемник 6502 с помощью цифрового порта ввода / вывода и тремя состояниями адресной шины, был процессориспользуется в популярном домашнем компьютере [65] [66] Commodore 64 . 6520 и / или 6502-вариантные процессоры были использованы во все коммодоре гибких дисков дисков для всех своих 8-битных компьютеров, от линии ПЭТ (некоторые из которых имело два процессора 6502 на основе) через коммодор 128D, в том числе коммодора 64 , и во всех дисковых накопителях Atari для всей линейки 8-битных компьютеров, от 400/800 до XEGS.

Еще одно важное применение семейства 6500 было в видеоиграх. Первым, кто использовал дизайн процессора, был Atari VCS, позже переименованный в Atari 2600 . VCS использовала вариант 6502, названный 6507 , который имел меньше контактов и, как следствие, мог адресовать только 8  КБ памяти. Будут проданы миллионы консолей Atari, каждая с процессором MOS. Еще одним важным использованием была Nintendo Entertainment System и Famicom . 6502, используемый в NES, был второй исходной версией Ricoh , частичной системой на кристалле , в которой отсутствовал двоичный десятичный код.режим, но добавил 22 отображаемых в память регистра и встроенное оборудование для генерации звука, чтения с джойстика и DMA списка спрайтов . Названный 2A03 в консолях NTSC и 2A07 в консолях PAL (разница заключается в соотношении делителя памяти и таблице поиска частот дискретизации звука), этот процессор был произведен исключительно для Nintendo . Atari Lynx используется версия 4 МГц чипа, в 65SC02.

В 1980-х годах популярный журнал по электронике Elektor / Elektuur использовал этот процессор в своей микропроцессорной плате для разработки Junior Computer .

  • Домашние компьютеры и игровые приставки, использующие 6502 или его варианты
  • Желудь Атом

  • Желудь Электрон

  • Яблоко I

  • Яблоко II

  • Apple IIe

  • Atari 2600

  • Atari 5200

  • Atari 7800

  • Atari 800

  • Atari Lynx

  • BBC Мастер

  • BBC Micro

  • Commodore PET

  • Коммодор ВИК-20

  • Коммодор 64

  • Коммодор 128

  • Семейный компьютер (Famicom)

  • Система развлечений Nintendo

  • Ohio Scientific Challenger 4P

  • Орик-1

  • Oric Atmos

  • Цифровой питомец тамагочи [67]

  • TurboGrafx-16

Техническое описание [ править ]

6502 кристалл процессора. Обычная секция слева - это ПЗУ для декодирования команд, кажущаяся случайной секция в центре - это логика управления, а справа - регистры (вверху) и ALU (внизу). Подключения шины данных расположены вверху справа, а адресная шина - справа и внизу справа. [37]
6502 Конфигурация контактов (40-контактный DIP )
Регистры MOS 6502

6502 - это 8-битный процессор с прямым порядком байтов и 16-битной адресной шиной . Оригинальные версии были изготовлены с использованием 8 мкм [68] техпроцесс чипа с рекламируемым размером матрицы из 153 × 168 мил мил ( 3,9 мм × 4,3 мм ), или площадью 16,6 мм 2 . [37]

Внутренняя логика работает с той же скоростью, что и внешняя тактовая частота, но, несмотря на низкие тактовые частоты (обычно в районе 1-2 МГц ), производительность 6502 была конкурентоспособна с другими современными процессорами, использующими значительно более высокие тактовые частоты  . Частично это связано с тем, что простой конечный автомат реализуется комбинационной (без тактовой) логикой в большей степени, чем во многих других проектах; двухфазные часы (обеспечивающие две синхронизации за цикл) могут, таким образом, напрямую управлять всем машинным циклом. Для выполнения типичных инструкций на 6502 может потребоваться вдвое меньше циклов, чем на современных моделях. Как и большинство простых процессоров того времени, динамический чип NMOS 6502 не имеет последовательности микрокода.ПЗУ, но использует PLA (который занимал около 15% площади чипа) для декодирования и упорядочивания команд. Как и в большинстве 8-битных микропроцессоров, чип выполняет некоторое ограниченное перекрытие выборки и выполнения.

Низкая тактовая частота сдерживала требования к скорости памяти и периферийных устройств, подключенных к ЦП, поскольку для доступа к памяти было доступно только около 50% тактового цикла (из-за асинхронной конструкции эта доля сильно варьировалась в зависимости от версии чипа). Это было критически важно в то время, когда доступная память имела время доступа в диапазоне 250–450 нс .

Поскольку микросхема обращалась к памяти только во время определенных частей тактового цикла, и эти циклы были обозначены выводом вывода тактовой частоты PHI2-low, другие микросхемы в системе могли получить доступ к памяти в то время, когда 6502 был отключен от шины. Иногда это называлось «скрытым доступом». Этот метод широко использовался компьютерными системами; они использовали бы память с возможностью доступа на частоте 2 МГц, а затем запустили бы ЦП на частоте 1 МГц. Это гарантировало, что ЦП и видеооборудование могут чередовать свои обращения с общей производительностью, соответствующей устройству памяти. [69] Когда в 1980-х годах стали доступны более быстрые запоминающие устройства, новые машины могли работать с более высокими тактовыми частотами, как, например, ЦП с частотой 2 МГц в BBC Micro , и по-прежнему использовать методы разделения шины.

Регистры [ править ]

Как и его предшественник 6800, 6502 имеет очень мало регистров . Регистры 6502 включают в себя один 8-битный регистр накопителя (A), два 8-битных индексных регистра (X и Y), 6 1-битных битов флага состояния процессора (P), 8-битный указатель стека (S) и 16-битный программный счетчик (ПК). Это можно сравнить с типичным дизайном той же эпохи, Z80 , который имеет восемь 8-битных регистров общего назначения, которые можно объединить в четыре 16-битных. Z80 также имел полный набор альтернативных регистров, который составлял в общей сложности шестнадцать регистров общего назначения.

Чтобы отчасти восполнить недостаток регистров, 6502 включил режим адресации нулевой страницы, который использует один байт адреса в инструкции вместо двух, необходимых для адресации полных 64 КБ памяти. Это обеспечивает быстрый доступ к первым 256 байтам ОЗУ за счет использования более коротких инструкций. Чак Педдл сказал в интервью, что конкретное намерение состояло в том, чтобы позволить этим первым 256 байтам ОЗУ использоваться как регистры. [ необходима цитата ]

Адресное пространство стека жестко привязано к странице памяти $ 01 , т.е. диапазон адресов $ 0100 - $ 01FF ( 256 - 511 ). Программный доступ к стеку осуществляется с помощью четырех инструкций режима подразумеваемой адресации, функции которых состоят в том, чтобы нажимать или выталкивать (вытягивать) аккумулятор или регистр состояния процессора. Тот же стек также используется для вызовов подпрограмм через инструкции JSR (переход к подпрограмме) и RTS (возврат из подпрограммы) и для обработки прерываний .

Обращение [ править ]

Микросхема эффективно использует регистры индекса и стека с несколькими режимами адресации , включая режим быстрой «прямой страницы» или «нулевой страницы», аналогичный тому, что есть в PDP-8 , который обеспечивает доступ к ячейкам памяти с адресов от 0 до 255 с помощью одного 8-битный адрес (сохранение цикла, обычно необходимого для выборки старшего байта адреса) - код для 6502 использует нулевую страницу так же, как код для других процессоров будет использовать регистры. На некоторых микрокомпьютерах на базе 6502 с операционной системой операционная система использует большую часть нулевой страницы, оставляя только несколько мест для пользователя.

Режимы адресации также включают подразумеваемые (1-байтовые инструкции); абсолютный (3 байта); индексированный абсолютный (3 байта); проиндексированная нулевая страница (2 байта); относительный (2 байта); аккумулятор (1); косвенный, x и косвенный, y (2); и немедленно(2). Абсолютный режим - это универсальный режим. Команды перехода используют 8-битное смещение со знаком относительно инструкции после перехода; числовой диапазон -128..127, следовательно, преобразуется в 128 байтов назад и 127 байтов вперед от инструкции, следующей за ветвью (что на 126 байтов назад и 129 байтов вперед от начала команды ветвления). В режиме аккумулятора аккумулятор используется как эффективный адрес и не требуется никаких данных операнда . В немедленном режиме используется 8-битный буквальный операнд.

Косвенная адресация [ править ]

Непрямые режимы полезны для обработки массивов и других циклов. В режиме «(косвенный), y» с циклом 5/6 8-битный регистр Y добавляется к 16-битному базовому адресу, считываемому с нулевой страницы, который располагается одним байтом после кода операции. Таким образом, регистр Y является индексным регистром в том смысле, что он используется для хранения фактического индекса.(в отличие от регистра X в 6800, где непосредственно хранился базовый адрес и к которому можно было добавить немедленное смещение). Увеличение регистра индекса для побайтного обхода массива занимает всего два дополнительных цикла. В менее часто используемом режиме «(косвенный, x)» эффективный адрес для операции находится по адресу нулевой страницы, сформированному добавлением второго байта инструкции к содержимому регистра X. В индексированных режимах нулевая страница эффективно действует как набор из 128 дополнительных (хотя и очень медленных) адресных регистров.

6502 может выполнять сложение и вычитание в двоичной или двоично-десятичной системе счисления . Перевод ЦП в режим BCD с помощью SEDинструкции (установить флаг D) приводит к десятичной арифметике, в $99 + $01результате чего устанавливается значение $ 00 и флаг переноса (C). В двоичном режиме ( CLDочистить флаг D) та же операция приведет к очистке $ 9A и флага переноса. За исключением Atari BASIC , режим BCD редко использовался в приложениях для домашних компьютеров.

Увидимся в Привет, мир! статья для простого, но характерного примера языка ассемблера 6502 .

Инструкции и коды операций [ править ]

Коды операций инструкции 6502 ( коды операций ) имеют длину восемь бит и имеют общую форму AAABBBCC, где AAA и CC определяют код операции, а BBB определяет режим адресации. [70]

Например, рассмотрим ORAинструкцию, которая выполняет поразрядное ИЛИ над битами в аккумуляторе с другим значением. Код операции команды имеет вид 000bbb01, где bbb может быть 010 для значения немедленного режима (константа), 001 для фиксированного адреса нулевой страницы, 011 для абсолютного адреса и так далее. [70]

Этот шаблон не является абсолютным, и есть ряд исключений. Однако там, где он применяется, он позволяет легко деконструировать значения кода операции обратно в мнемонику ассемблера для большинства инструкций, обрабатывая крайние случаи с помощью специального кода. [70]

Из 256 возможных кодов операций, доступных с использованием 8-битного шаблона, исходный 6502 использует 151 из них, организованных в 56 инструкций с (возможно) несколькими режимами адресации . В зависимости от инструкции и режима адресации код операции может потребовать ноль, один или два дополнительных байта для операндов. Следовательно, машинные инструкции 6502 имеют длину от одного до трех байтов. [71] [72] Операнд хранится в обычном для 6502 формате с прямым порядком байтов .

65C816 , 16-разрядный КМОП потомок 6502, также поддерживает 24-битную адресацию, что приводит к инструкции быть собран с тремя-байтовых операндов, также расположенных в маленьком формате обратным порядком байтов.

Остальные 105 кодов операций не определены. В первоначальном дизайне инструкции, в которых младшие 4 бита ( полубайт ) были 3, 7, B или F, не использовались, обеспечивая место для будущего расширения. Кроме того, столбец $ 2x имел только одну запись, . Остальные 25 пустых слотов были розданы. Некоторые из пустых слотов использовались в 65C02 для предоставления как новых инструкций, так и вариантов существующих с новыми режимами адресации. Изначально инструкции $ Fx были оставлены свободными, чтобы позволить сторонним поставщикам добавлять свои собственные инструкции, но более поздние версии 65C02 стандартизировали набор инструкций по изменению битов, разработанный Rockwell Semiconductor .LDX #constant

Язык ассемблера [ править ]

Оператор языка ассемблера 6502 состоит из трехсимвольной мнемоники инструкции , за которой следуют любые операнды . Команды, которые не принимают отдельный операнд, а нацелены на один регистр на основе режима адресации, объединяют целевой регистр в мнемонике команд, поэтому ассемблер использует INXвместо INC Xувеличения регистра X.

Таблица инструкций [ править ]

Подробное поведение [ править ]

Вход немаскируемого прерывания (NMI) процессора чувствителен к фронту , что означает, что прерывание запускается по заднему фронту сигнала, а не по его уровню. Смысл этой функции заключается в том, что схема прерывания с проводным ИЛИ не поддерживается. Однако это также предотвращает возникновение вложенных прерываний NMI до тех пор, пока оборудование не сделает вход NMI снова неактивным, часто под контролем обработчика прерываний NMI .

Одновременная установка линий аппаратного прерывания NMI и IRQ (маскируемого) приводит к игнорированию IRQ. Однако, если линия IRQ остается утвержденной после обслуживания NMI, процессор немедленно ответит на IRQ, поскольку IRQ чувствителен к уровню . Таким образом, в конструкции 6502 был установлен своего рода встроенный приоритет прерывания.

Положение флага B в регистре состояния не соответствует биту в процессоре. Его можно рассматривать только как значение, хранящееся в стеке. Команды BRK и PHP всегда записывают 1 в позицию B, в то время как прерывания IRQ и NMI всегда записывают 0. «6502 BRK and B bit (by EdS)» . Визуальный 6502 . 5 января 2011 . Проверено 16 февраля 2020 года .

Входной контакт «SO», когда он заявлен, устанавливает бит состояния переполнения процессора (однако его снятие не сбрасывает бит переполнения). Это может использоваться драйвером устройства высокоскоростного опроса , который может опрашивать оборудование только один раз за три цикла с помощью BVCинструкции Branch-on-oVerflow-Clear ( ), которая выполняет переход к самому себе. Например, Commodore 1541 и другие дисководы для гибких дисков Commodore используют эту технику для немедленного определения того , готов ли сериализатор принять или предоставить другой байт дисковых данных. Очевидно, что необходимо проявлять большую осторожность в драйвере устройства и связанной с ним конструкции системы, поскольку ложное утверждение бита переполнения может испортить арифметическую обработку.

Вариации и производные [ править ]

Существовало множество вариантов NMOS 6502:

  • MOS Technology 6503 была снижена способность адресации памяти (4 Кбайт) и не вход RDY, в DIP корпусе с 28 выводами (с фазой 1 (OUT), SYNC, избыточными Vss, и так штифты 6502 также опущены). [73]
  • MOS Technology 6504 сократил адресации памяти возможностей (8 Кб), без NMI, и нет входных RDY, в DIP корпусе с 28 выводов (с фазой 1 (OUT), SYNC, избыточная Vss, и так штифтами 6502 также опущено). [73]
  • MOS Technology 6505 была снижена способность адресации памяти (4 Кбайт) и не NMI, в DIP корпусе с 28 выводами (с фазой 1 (OUT), SYNC, избыточными Vss, и так штифты 6502 также опущены). [73]
  • MOS Technology 6506 сократил адресации памяти возможностей (4 КБ), нет ОГО, и нет ввода RDY, но все 3 часов штырьков (т.е. выходной тактового сигнала 2-фазы) , 6502, в DIP корпусе с 28 выводов (с SYNC, резервные выводы Vss и SO 6502 также опущены). [73]
  • MOS Technology 6507 была снижена способность адресации памяти (8 КБ) и никаких прерываний, в DIP корпусе с 28 выводами (с фазой 1 (OUT), SYNC, избыточными Vss, и так штифты 6502 также опущены). [73] Этот чип использовался в игровой системе Atari 2600 .
  • MOS Technology 6508 имеет встроенный 8-битный порт вывода и 256 байт внутреннего статического ОЗУ ввода /.
  • MOS Technology 6509 может адресовать до 1 Мбайт оперативной памяти , как 16 банков 64 КБ и был использован в Коммодор СВМ-II серии.
  • MOS Technology 6510 имеет 6-битовый выходной порт встроенный программируемый вход / и был использован в Commodore 64 .
  • MOS Technology 6512 был 6502 с тактовым входом 2 фазы для внешнего тактового генератора, вместо бортового задающего генератора. [73]
  • MOS Technology 6513 был 6503 с тактовым входом 2-фазы , как в 6512. [73]
  • MOS Technology 6514 был 6504 с тактовым входом 2-фазы , как в 6512. [73]
  • MOS Technology 6515 был 6505 с тактовым входом 2-фазы , как в 6512. [73]
  • Ricoh 2A03 был 6502 вариантом , включая звуковой блок обработки и отсутствие режима BCD, используемый в Nintendo Entertainment System .
  • 6502A был микросхемой 1,5 МГц, представленной в Asteroids Deluxe .
  • 6502B был версией 6502, способной работать на максимальной скорости 2 МГц вместо 1. B использовался в Apple III , BBC Micro и, с тактовой частотой 1,79 МГц, в ранних 8-битных компьютерах Atari.
  • «Официальный» 6502C был версией оригинального 6502, способной работать на частоте до 4 МГц.
  • Sally, также называемый 6502C, был модифицированным чипом 6502, который использовался в более поздних 8-битных компьютерах Atari. Он имеет сигнал HALT на контакте 35 и второй R / W на контакте 36 (эти контакты не подключены (N / C) на стандартных 6502). При нажатии HALT на низком уровне часы фиксируются, а процессор приостанавливается. Это использовалось для синхронизации ЦП с видеосхемами.
  • MOS Technology 6591 и 6592 являются системы на чипе , которые используют полный Atari 2600 в DIP корпусе с 48 выводами. [74] [75]
  • 65C02 является CMOS версия NMOS 6502 , который был разработан Билл Mensch из Центра дизайна Западной (WDC), показывая уменьшенный расход энергии, поддержка гораздо более высоких тактовых частотах, новые инструкции, новые режимы адресации для некоторых существующих инструкций и коррекции исправлений NMOS, таких как JMP ($xxFF)ошибка.
  • 65SC02 представляет собой вариант МЦД 65C02 без отдельных операций с битами (ПКМ, SMB, BBR и BBS). [76] Это ядро, работающее на частоте 4 МГц, использовалось в основной системной ИС Atari Lynx .
  • CSG 65CE02 был производным CMOS, разработанным Commodore Semiconductor Group (CSG), ранее MOS Technology.
  • Rockwell R6511Q (и R6500 / 11, R6500 / 12, R6500 / 15 «Однокристальные микрокомпьютеры ») представляют собой усовершенствованные версии процессора на базе 6502, которые также включают операции индивидуальной обработки битов (RMB, SMB, BBR и BBS) на -чип 192 байта нулевой страницы RAM, UART и т. д. [77] [78]
  • Rockwell R65F11 (представленный в 1983 году) и более поздний R65F12 представляют собой улучшенные версии процессора на базе 6502, также включающие операции индивидуальной обработки битов (RMB, SMB, BBR и BBS), внутрикристаллическое ОЗУ с нулевой страницей, на чипе Forth ПЗУ ядра, UART и т. д. [79] [80] [81] [82] [83]
  • GTE G65SC102 программно совместим с 65C02, но имеет немного другую распиновку и схему генератора. BBC Master Turbo включена версия на 4 МГц этого процессора на сопроцессор карте, которая также может быть куплена отдельно и добавляется к Master 128.
  • Rockwell R65C00, R65C21 и R65C29 имели две улучшенные CMOS 6502 в одном кристалле, а R65C00 и R65C21 дополнительно содержали 2 КБ ПЗУ с программированием по маске. [84] [85]
  • CM630 - это клон 6502 Восточного блока с частотой 1 МГц, который использовался в Pravetz 8A и 8C, болгарских клонах серии Apple // . [86]
  • MOS Technology 8502 был разработан MOS Technology и используется в Commodore 128 . На основе MOS 6510, используемой в Commodore 64, 8502 мог работать с двойной тактовой частотой по сравнению с 6510. [87] Семейство 8502 также включает MOS 7501, 8500 и 8501.
  • HuC6280 японская компания видеоигры Hudson Soft улучшенная версия «s из WDC 65C02 изготовленных для них Seiko Epson и NEC для SuperGrafx . Наиболее заметным продуктом, использующим HuC6280, является игровая консоль NEC TurboGrafx-16.

6512, 6513, 6514 и 6515 [ править ]

Каждая из технологий MOS 6512, 6513, 6514 и 6515 полагается на внешние тактовые импульсы вместо использования внутреннего тактового генератора, такого как 650x (например, 6502). Это было использовано в некоторых проектах, где часы могли работать асимметрично, что увеличивало общую производительность процессора.

6512 использовался в BBC Micro B + 64 .

16-битные производные [ править ]

Western Design Center разработал и в настоящее время производит процессор W65C816S , 16-разрядный преемник 65C02 со статическим ядром , со значительно расширенными функциями. W65C816S - это более новый вариант 65C816, который был ядром компьютера Apple II GS и был основой процессора Ricoh 5A22 , который питал популярную систему Super Nintendo Entertainment System.. W65C816S включает незначительные улучшения по сравнению с 65C816, которые делают новый чип не точной аппаратно-совместимой заменой более раннего. Среди этих улучшений было преобразование в статическое ядро, которое позволяет останавливать тактовую частоту в любой фазе без потери данных регистрами. W65C816S, доступный через дистрибьюторов электроники, с марта 2020 года официально рассчитан на работу на частоте 14 МГц.

Western Design Center также разработал и произвел 65C802 , который представлял собой ядро ​​65C816 с 64-килобайтным адресным пространством в корпусе, совместимом с выводами 65 (C) 02. 65C802 может быть дооснащен платой 6502 и будет работать как 65C02 при включении питания, работая в «режиме эмуляции». Как и в случае с 65C816, последовательность из двух инструкций переключит 65C802 в «основной режим», открывая его 16-битный аккумулятор и индексные регистры , а также другие расширенные функции 65C816. 65C802 не получил широкого распространения; новые разработки почти всегда строились вокруг 65C816, в результате чего производство 65C802 было прекращено.

Пример кода [ править ]

Следующий исходный код языка ассемблера 6502 предназначен для подпрограммы с именем , которая копирует строку символов с завершающим нулем из одного места в другое, преобразуя символы верхнего регистра в буквы нижнего регистра. Копируемая строка является «источником», а строка, в которой сохраняется преобразованный источник, является «местом назначения».TOLOWER

Ошибки и причуды [ править ]

У 6502 было несколько ошибок и причуд, которые необходимо было учесть при программировании:

  • Самые ранние версии 6502, например, поставляемые с некоторыми компьютерами KIM-1 , имели серьезную ошибку в инструкции ROR (повернуть правую память или аккумулятор). Операция ROR в этих микросхемах фактически является инструкцией ASL (арифметический сдвиг влево), которая не влияет на бит переноса в регистре состояния. MOS полностью исключила инструкции из документации по микросхемам из-за дефекта, пообещав, что ROR появится на чипах 6502, начиная с 1976 года. [88] Подавляющее большинство существующих сегодня чипов 6502 не обнаруживают этой ошибки.
  • Семейство NMOS 6502 имеет множество недокументированных инструкций , которые варьируются от одного производителя микросхемы к другому. Декодирование команд 6502 реализовано в массиве аппаратной логики (подобном массиву программируемой логики ), который определен только для 151 из 256 доступных кодов операций . Остальные 105 запускают странные и иногда трудно предсказуемые действия, такие как сбой процессора, последовательное выполнение двух действительных инструкций, выполнение странных сочетаний двух инструкций или просто бездействие. Компания Eastern House Software разработала «Trap65», устройство, которое подключается между процессором и его разъемом для преобразования (перехвата) нереализованных кодов операций в BRK.(программное прерывание) инструкции. [ необходима цитата ] Некоторые программисты использовали эту функцию для расширения набора инструкций 6502, предоставив функциональные возможности для нереализованных кодов операций с помощью специально написанного программного обеспечения, перехваченного в векторе 0xFFFE инструкции BRK. [89] [90] Все неопределенные коды операций были заменены инструкциями NOP в 65C02 , расширенной КМОП- версии 6502, хотя и с разными размерами байтов и временем выполнения. В 65C802 / 65C816 все 256 кодов операций выполняют определенные операции.
  • 6502 в памяти косвенный переход инструкции, JMP (<address>), частично нарушена. Если <адрес> является шестигранной xxFF (т.е. любое слово , заканчивающееся в FF ), процессор не будет переходить к адресу , сохраненному в xxFF и , xxFF+1как ожидалось, а скорее один определяется xxFF и XX00 (например, JMP ($10FF)прыгал по адресу хранится в 10FF и 1000, а не в 10FF и 1100). Этот дефект сохранялся во всей линейке NMOS, но был исправлен в производных CMOS.
  • Индексированная адресация NMOS 6502 через границы страниц будет выполнять дополнительное чтение недопустимого адреса. Эта характеристика может вызывать случайные проблемы из-за доступа к оборудованию, которое действует при чтении, например, сброса таймера или флагов IRQ, отправки квитирования ввода-вывода и т. Д. Этот дефект продолжался по всей строке NMOS, но был исправлен в производных CMOS, в который процессор выполняет дополнительное чтение последнего байта инструкции.
  • Инструкции 6502 чтения-изменения-записи выполняют один цикл чтения и два цикла записи. Сначала считанные неизмененные данные записываются обратно, а затем записываются измененные данные. Эта характеристика может вызвать проблемы из-за двойного доступа к оборудованию, которое действует при записи. Эта аномалия продолжалась во всей линейке NMOS, но была исправлена ​​в производных CMOS, в которых процессор выполняет два цикла чтения и один цикл записи. Практика защитного программирования обычно позволяет избежать этой проблемы, не выполняя инструкции чтения / изменения / записи в аппаратных регистрах.
  • Флаги состояния N (отрицательный результат), V (переполнение знакового бита) и Z (нулевой результат) обычно не имеют смысла при выполнении арифметических операций, когда процессор находится в режиме BCD , поскольку эти флаги отражают двоичный, а не BCD результат. Это ограничение было снято в производных CMOS. Следовательно, эту функцию можно использовать для отличия процессора CMOS от версии NMOS. [91]
  • Если при возникновении аппаратного прерывания 6502 находится в режиме BCD, он не вернется в двоичный режим. Эта характеристика может привести к неясным ошибкам в подпрограмме обслуживания прерывания, если ей не удастся сбросить режим BCD перед выполнением любых арифметических операций. Например, Commodore 64 «сек Kernal не правильно обрабатывать этот процессор характеристики, требуя , чтобы IRQs быть отключен или повторно векторным во время BCD математических операций. Эта проблема также была решена в производных CMOS.
  • Набор команд 6502 включает BRK (код операции $ 00), который технически является программным прерыванием (по духу аналогично мнемонике SWI процессоров Motorola 6800 и ARM ). BRK чаще всего используется для прерывания выполнения программы и запуска монитора машинного языка для тестирования и отладки во время разработки программного обеспечения. BRK можно также использовать для маршрутизации выполнения программы с помощью простой таблицы переходов (аналогично тому, как Intel 8086 и производные от них обрабатывают программные прерывания по номеру). Однако, если аппаратное прерываниепроисходит, когда процессор выбирает команду BRK, версия процессора NMOS не сможет выполнить BRK и вместо этого продолжит работу, как если бы произошло только аппаратное прерывание. Эта ошибка была исправлена ​​в реализации CMOS процессора.
  • При выполнении инструкций JSR (переход к подпрограмме) и RTS (возврат из подпрограммы) адрес возврата, помещенный в стек JSR, является адресом последнего байта операнда JSR (то есть самого старшего байта адреса подпрограммы), а не адрес следующей инструкции. Это связано с тем, что фактическое копирование (из программного счетчика в стек и затем наоборот) происходит до автоматического увеличения счетчика программы, которое происходит в конце каждой инструкции. [92] Эта характеристика останется незамеченной, если код не проверит адрес возврата, чтобы получить параметры в потоке кода (идиома программирования 6502, описанная в Техническом справочном руководстве ProDOS 8.). Он и по сей день остается характерной чертой 6502 деривативов.

См. Также [ править ]

  • Список 6502 ассемблеров
  • Домашние компьютеры на базе MOS Technology 6502
  • Прерывания в процессорах 65xx
  • Количество транзисторов
  • Ускорители Apple II
  • cc65 - 6502 макроассемблер и компилятор C

Заметки [ править ]

  1. ^ В то время техническая литература указывала длину и ширину каждого чипа в "милах" (0,001 дюйма).

Ссылки [ править ]

Цитаты [ править ]

  1. ^ "MOS 6502 и лучший макетчик в мире" . swtch.com. 2011-01-03 . Проверено 9 августа 2014 .
  2. ^ "MOnSter6502" . monster6502.com. 2017 . Проверено 1 мая 2017 .
  3. Уильям Менш, Роб Уокер (9 октября 1995 г.). Интервью с Уильямом Меншем (веб-видео). Атертон, Калифорния: Silicon Genesis, Библиотеки Стэнфордского университета. Архивировано из оригинального 14 мая 2012 года . Проверено 4 июня 2012 года .Уильям Менш и модератор объявляют микропроцессор 6502 как «шестьдесят пять два» .
  4. ^ "Западный центр дизайна (WDC) Дом микропроцессорной технологии 65xx" . www.westerndesigncenter.com . Проверено 8 апреля 2019 .
  5. ^ "Motorola предъявляет иск к технологии MOS" (PDF) . Микрокомпьютерный дайджест . Купертино, Калифорния: Microcomputer Associates. 2 (6): 11 декабря 1975 г. [ постоянная мертвая ссылка ]
  6. ^ "Motorola присоединяется к гонке микропроцессоров с 8-битной записью". Электроника . Нью-Йорк: Макгроу-Хилл. 47 (5): 29–30. 7 марта 1974 г.
  7. ^ Motorola 6800 Устная история (2008), стр. 9
  8. Бьюкенен, Джон К., «Схема повышения напряжения постоянного тока MOS», патент США 3942047 , выданный 2 марта 1976 г.
  9. Бьюкенен, Джон К., «Топография микросхемы для микросхемы микропроцессора MOS интегральной схемы», патент США 3987418 , выданный 19 октября 1976 г.
  10. ^ Motorola 6800 Устная история (2008), стр. 8
  11. ^ Mensch Устная история (1995) Менш получил степень младшего специалиста в Университете Темпл в 1966 году, а затем работал в Philco Ford техником по электронике, прежде чем поступить в Университет Аризоны.
  12. ^ Менш, Уильям Д., «Топография микросхемы для схемы интерфейса MOS», патент США 3968478 , выданный 6 июля 1976 г.
  13. ^ Дженкинс, Фрэнсис; Lane, E .; Латтин, Вт .; Ричардсон, В. (ноябрь 1973 г.). «Моделирование МОП-устройств для компьютерной реализации». IEEE Transactions по теории цепей . IEEE. 20 (6): 649–658. DOI : 10.1109 / tct.1973.1083758 . ISSN 0018-9324 .  Все авторы работали в подразделении Motorola Semiconductor Products Division.
  14. Донохью, Джеймс Ф. (27 октября 1988 г.). «Микропроцессор первых двух десятилетий: каким он был». EDN . Cahners Publishing. 33 (22A): 18–32. ISSN 0012-7515 . Страница 30. Беннетт уже работал над тем, что стало 6800. «Он нанял меня, - говорит Педдл о Беннетте, - чтобы я выполнял архитектурную поддержку продукта, который он уже начал». … Говорит Коробейник. «Motorola пыталась убить его несколько раз. Без Беннета 6800 не появилось бы, да и многие другие отрасли промышленности тоже не появились бы».
  15. Хепворт, Эдвард С., Родни Дж. Минс, Чарльз И. Педдл, «Адаптер интерфейса асинхронной связи», патент 3975712 , выданный 17 августа 1976 г. Примечание: Motorola обычно перечисляла изобретателей в алфавитном порядке.
  16. Motorola (5 августа 1976 г.). «Они остаются впереди с семейством Motorola M6800» . Электроника . Макгроу-Хилл. 49 (16): 51. В рекламе показаны три встроенных приложения от TRW, HP и RUSCO.
  17. ^ Motorola 6800 Устная история (2008), стр. 89
  18. ^ «Это все семейство продуктов» . Электроника . Нью-Йорк: Макгроу Хилл. 48 (1): 37. 9 января 1975 г.В рекламе Motorola подчеркивается полный набор периферийных микросхем и средств разработки. Это сокращает цикл разработки продукта для клиентов.
  19. ^ Motorola 6800 Устная история (2008) стр. 18
  20. ^ "Набор микропроцессоров Motorola - 1 МГц n-MOS". Техника управления . 21 (11): 11 ноября 1974 г.Цена микропроцессора MC6800 составляла 360 долларов. Выпуск адаптера асинхронного интерфейса связи (ACIA) MC6850 был намечен на первый квартал 1975 года.
  21. ^ Корпорация Intel (1984). Кэй, Глиннис Томпсон (ред.). Революция в процессе - современная история Intel (PDF) . Корпорация Intel. п. 14. Номер для заказа: 231295. Архивировано 23 октября 2012 года (PDF) . Проверено 30 декабря 2016 . «Shima внедрила 8080 примерно через год, а новое устройство было представлено в апреле 1974 года за 360 долларов».
  22. ^ "Motorola устанавливает привод M6800". Электроника . Нью-Йорк: Макгроу-Хилл. 48 (8): 25. 17 апреля 1975 г. «Дистрибьюторам предлагается семейство M6800, и подразделение также предлагает вводный комплект, который включает шесть начальных частей семейства, а также приложения и руководства по программированию за 300 долларов».
  23. ^ Интервью 2014 , 52:30.
  24. ^ Интервью 2014 , 54:45.
  25. Bagnall (2010), стр. 11. Новое предложение Peddle пришло как раз вовремя для разработчиков 6800. «Они не хотели ехать в Остин, штат Техас, - объясняет Менш.
  26. ^ Интервью 2014 , 54:40.
  27. ^ Интервью 2014 , 55:50.
  28. Уоллер, Ларри (13 ноября 1975 г.). «Motorola стремится положить конец заносу». Электроника . Нью-Йорк: Макгроу-Хилл. 48 (23): 96–98.Резюме: Полупроводниковые изделия делятся на две части: интегральные схемы и дискретные компоненты. Убытки полупроводников за последние четыре квартала превысили 30 миллионов долларов. Торговая организация потеряла чувствительность к потребностям клиентов: «задержки с реагированием на снижение цен означали, что клиенты покупали где-то еще». Технические проблемы преследовали производство микросхем. Проблема заключается «не в дизайне, а в выходе кристалла и кристалла». Проблемы решены. Микропроцессор MC6800 «прибыл в ноябре 1974 года».
  29. ^ Интервью 2014 , 56:30.
  30. ^ Интервью 2014 , 55:00.
  31. Bagnall (2010), стр. 13.
  32. MOS Technology (14 ноября 1974 г.). "Первые массивы научных калькуляторов с одним чипом" . Электроника . Макгроу-Хилл. 47 (23): 90–91.
  33. ^ Интервью 2014 , 57:00.
  34. ^ Интервью 2014 , 58:30.
  35. Хо, Джошуа (9 октября 2014 г.). «Введение в физику, технологию и промышленность полупроводников» . Anandtech .
  36. ^ Motorola 6800 Устная история (2008), стр. 10.
  37. ^ a b c Cushman 1975 , стр. 40.
  38. ^ «Микропроцессор 8080А - корпус ДИП 40» . CPU World .
  39. ↑ a b Cushman 1975 , p. 38.
  40. ^ a b "Вехи закона Мура" . IEEE .
  41. Bagnall (2010), стр. 19: «Пайвинен пообещал Педдлу, что он подготовит n-канальный процесс. Он сдержал свое слово».
  42. ^ a b c Cushman 1975 , стр. 36.
  43. ^ a b c Cushman 1975 , стр. 41.
  44. ^ Интервью 2014 , 1:01:00.
  45. ^ Интервью 2014 , 1:02:00.
  46. ^ Интервью 2014 , 1:02:30.
  47. ^ В таблице данных за август 1975 г. было 55 инструкций без ROR, в таблице за май 1976 г. были ROR и 56 инструкций. Файл: MCS650x Instruction Set.jpg
  48. ^ Стэнфордский университет, проект Silicon Genesis: записанное на видео интервью устной истории Уиллама Менша
  49. ^ «Линия микропроцессоров предлагает 4, 8, 16 бит». Электроника . Нью-Йорк: Макгроу-Хилл. 48 (15): 118. 24 июля 1975 г.В статье рассматриваются 6501 и 6502, а также 28-контактные версии, которые будут адресовать только 4 КБ памяти. Он также охватывал будущие устройства, такие как «дизайн, который Педдл называет псевдо-16».
  50. ^ Шугармен, Роберт (25 августа 1975). «Нужен ли стране хороший микропроцессор за 20 долларов?» (PDF) . EE Times . Манхассет, Нью - Йорк: CMP Publications: 25. Архивировано из оригинала (PDF) от 3 февраля 2007 года . Проверено 5 февраля 2008 года .
  51. ^ Fylstra, Daniel (ноябрь 1975). «Сын Motorola (или чип процессора за 20 долларов)». Байт . Питерборо, Нью-Хэмпшир: Грин Паблишинг. 1 (3): 56–62.Сравнение микропроцессоров 6502 и 6800. Автор посетил MOS Technology в августе 1975 года.
  52. ^ «Микропроцессор 3-го поколения» (PDF) . Микрокомпьютерный дайджест . Купертино, Калифорния: Microcomputer Associates . 2 (2): 1–3. Август 1975. Архивировано из оригинального (PDF) 04.07.2009 . Проверено 27 ноября 2009 .
  53. ^ "Микропроцессор MOS 6501 превосходит их всех". Электроника . Нью-Йорк: Макгроу-Хилл. 48 (16): 60–61. 7 августа 1975 г.
  54. ^ "MOS 6502 - второй из недорогих высокопроизводительных микропроцессоров" . Компьютер . Компьютерное общество IEEE. 8 (9): 38–39. Сентябрь 1975 г.. Doi : 10.1109 / CM.1975.219074 .
  55. Bagnall (2010), стр. 33–35.
  56. ^ Signetics (30 октября 1975). «Самый простой в использовании микропроцессор» . Электроника . Макгроу-Хилл. 48 (22): 114–115.
  57. Motorola (30 октября 1975 г.). «Все это и разукрупненный микропроцессор за 69 долларов» . Электроника . Макгроу-Хилл. 48 (22): 11.Первоначальная цена MC6800 была снижена со 175 до 69 долларов. Предыдущая цена от 50 до 99 единиц составляла 125 долларов.
  58. Уоллер, Ларри (13 ноября 1975 г.). "Краткие новости: Motorola стремится остановить врага микропроцессора". Электроника . Нью-Йорк: Макгроу-Хилл. 48 (23): 38.«На прошлой неделе Motorola заявила, что будет добиваться немедленного судебного запрета, чтобы запретить MOS Technology Inc., Норристаун, штат Пенсильвания, производить и продавать микропроцессорные продукты, включая MCS6500». (Этот выпуск был опубликован 7 ноября.)
  59. ^ Motorola была награждена следующими патентами США на семейство микропроцессоров 6800: 3962682, 3968478, 3975712, 3979730, 3979732, 3987418, 4003028, 4004281, 4004283, 4006457, 4010448, 4016546, 4020472, 4030079, 40326400, 403520, 4037 4071887, 4086627, 4087855, 4090236, 4145751, 4218740, 4263650.
  60. Bagnall (2010), стр. 53–54. «У него [Майка Джеймса] были все его оригинальные работы от 6800, и он скрыл их от Motorola ...
  61. ^ "Motorola, MOS Technology урегулировать патентный иск". Электроника . Нью-Йорк: Макгроу-Хилл. 49 (7): 39. 1 апреля 1975 г.«MOS Technology Inc. из Норристауна, штат Пенсильвания, согласилась отозвать свой микропроцессор MCS6501 с рынка и выплатить Motorola Inc. 200000 долларов ...» «MOS Technology и восемь бывших сотрудников Motorola вернули обратно в соответствии с документами постановления суда, которые, по утверждению Motorola, конфиденциальны ". «… Обе компании договорились о перекрестной лицензии на патенты в области микропроцессоров».
  62. Bagnall (2010), стр. 55-56
  63. ^ «Слияния и поглощения». Мини-микросистемы . Каннерс. 9 (11): 19 ноября 1976 г.«Commodore International… покупает MOS Technology (Норристаун, Пенсильвания). Это спасает шестилетнюю компанию по производству полупроводников от надвигающейся катастрофы».
  64. ^ a b Гудвинс, Руперт (4 декабря 2010 г.). «Жертвы Intel: восемь потенциальных убийц-гигантов» . ZDNet . Проверено 7 марта 2012 года .[ постоянная мертвая ссылка ]
  65. ^ Реймер, Джереми. «Доля рынка персональных компьютеров: 1975-2004» . Архивировано из оригинала на 6 июня 2012 года . Проверено 17 июля 2009 .
  66. ^ "Сколько компьютеров Commodore 64 было продано?" . Архивировано из оригинала на 2016-03-06 . Проверено 1 февраля 2011 .
  67. ^ "Выполнение кода на Тамагочи" . kwartzlab.ca . 7 мая 2013 г. Архивировано из оригинала на 2018-08-31 . Проверено 23 декабря 2018 .
  68. ^ Кордер, Майк (весна 1999). «Большое в маленьких упаковках» . Прогресс пионеров с технологией picoJava . Sun Microelectronics. Архивировано из оригинала на 2006-03-12 . Проверено 23 апреля 2012 года . Первый 6502 был изготовлен по 8-микронной технологии, работал на частоте 1 мегагерц и имел максимальный объем памяти 64 КБ.
  69. ^ «Как реализовать совместное использование шины / DMA в системе 6502» .
  70. ^ a b c Паркер, Нил. «Набор команд 6502 / 65C02 / 65C816 декодирован» . Страница Нила Паркера Apple II .
  71. ^ 6502 Набор инструкций .
  72. ^ NMOS 6502 Opcodes архивации 2016-01-14 в Wayback Machine .
  73. ^ a b c d e f g h i Каталог данных по технологии MOS 1982 г.
  74. ^ AtariAge: клон A2600, распиновка микросхемы 6591
  75. ^ Hackaday: teensiest Atari 2600 когда - либо
  76. ^ Закс, Родней. Программирование 6502 . п. 348.
  77. ^ "Rockwell R6511Q" . Проверено 30 апр 2020 .
  78. ^ "Rockwell R6500 / 11, R6500 / 12 и R6500 / 15 однокристальные микрокомпьютеры" . 7 июня 1987 . Проверено 30 апр 2020 .
  79. ^ Рэнди М. Дамс. «Однокристальные компьютеры Forth R65F11 и F68K». [1] [ постоянная мертвая ссылка ] [2] Архивировано 2 декабря 2014 г., Wayback Machine 1984.
  80. ^ Эд Шмаух. «Компьютеризированная система мониторинга коррозии» [ постоянная мертвая ссылка ] . 1986 г.
  81. ^ Лоуренс П. Форсли. «Встроенные системы: Рочестерская Четвертая конференция 1990 г.: 12–16 июня 1990 г., Университет Рочестера» . п. 51.
  82. ^ Роквелл. «Руководство пользователя RSC-Forth» . 1983 г.
  83. ^ "Микрокомпьютеры на базе Rockwell R65F11 R65F12 Forth" (PDF) . Июнь 1987 . Проверено 28 апр 2020 .
  84. ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) 15 мая 2016 года . Проверено 26 октября 2014 . CS1 maint: заархивированная копия как заголовок ( ссылка )
  85. ^ "rockwell :: dataBooks :: 1985 Rockwell Data Book" - через Интернет-архив.
  86. ^ "Восточноевропейский домашний компьютер: Болгария" . HCM: Музей домашнего компьютера . Дата обращения 3 октября 2020 .
  87. ^ Руководство по обслуживанию C-128 / C128D Computer , Commodore Business Machines, PN-314001-08, ноябрь 1987 г.
  88. ^ "Измерение ошибки ROR в раннем MOS 6502" . Проверено 8 мая 2011 года .
  89. Мозер, Карл В. (январь 1979 г.). «Добавить вектор-ловушку для невыполненных кодов операций 6502» (PDF) . Журнал доктора Добба компьютерной гимнастики и ортодонтии . № 31. Менло-Парк, Калифорния. п. 32 . Проверено 7 января 2017 .
  90. ^ Харрод, Dennette А. (октябрь 1980). «6502 получает микропрограммируемые инструкции» . БАЙТ . Vol. 5 шт. 10. Питерборо, Нью-Гэмпшир. п. 282 . Проверено 7 января 2017 .
  91. Драко (19 июня 1997 г.). «65c02, 6502, 65816 ??? CPU продает , но кто покупает ...» В архиве с оригинала на 2 января 2008 года.
  92. ^ Эндрюс, Марк (1984). «6» . Корни Atari - Руководство по языку ассемблера Atari . ISBN 0-88190-171-7.

Библиография [ править ]

  • Педл, Чак (12 июня 2014 г.). «Устная история Чака Педла» (интервью). Беседовали Дуг Фэйрберн и Стивен Даймонд.
  • Багналл, Брайан (2010). Коммодор, компания на грани (2-е изд.). Виннипег, Манитоба: Variant Press. ISBN 978-0-9738649-6-0.
  • Беннет, Томас; Экисс, Джон; Латтин, Уильям (Билл); Лавелл, Джефф (28 марта 2008 г.). «Панель устной истории Motorola 6800» (PDF) (Интервью). Беседовал Дэвид Лоуз.
  • Кушман, Роберт Х. (20 сентября 1975 г.). «Микропроцессоры 2-1 / 2 поколения - детали за 10 долларов, которые по своим характеристикам аналогичны недорогим Mini» (PDF) . EDN . Бостон: Cahners Publishing. 20 (17): 36–42. Архивировано из оригинального (PDF) 24 апреля 2016 года.
  • Интервью с Уильямом Меншем Стэнфордом и проектом «Силиконовая долина», 9 октября 1995 г. Стенограмма

Дальнейшее чтение [ править ]

Даташиты и руководства
  • Технический паспорт серии 6500 ; MOS Technology; 12 страниц; 1976 г.
  • Руководство по аппаратному обеспечению серии 6500 ; 2-е изд; MOS Technology; 182 страницы; 1976 г.
  • Руководство по программированию серии 6500 ; 2-е изд; MOS Technology; 262 страницы; 1976 г.
Книги
  • 6502 Заявочная книга ; 1-е изд; Родней Закс; Sybex; 281 страница; 1979; ISBN 978-0895880154 . (архив) 
  • 6502 Программирование на языке ассемблера ; 2-е изд; Лэнс Левенталь; Осборн / Макгроу-Хилл; 650 страниц; 1986; ISBN 978-0078812163 . (архив) 
  • 6502 подпрограммы языка ассемблера ; 1-е изд; Лэнс Левенталь и Уинтроп Сэвилл; Осборн / Макгроу-Хилл; 550 страниц; 1982; ISBN 978-0931988592 . (архив) 
  • 6502 игры ; 1-е изд; Родней Закс; Sybex; 292 страницы; 1980; ISBN 978-0895880222 . (архив) 
  • 6502 Руководство пользователя ; 1-е изд; Джозеф Карр; Отдыхай; 288 страниц; 1984; ISBN 978-0835970020 . (архив) 
  • Расширенное программирование 6502 ; 1-е изд; Родней Закс; Джон Уайли и сыновья; 292 страницы; 1982; ISBN 978-0895880895 . (архив) 
  • Машинный язык для начинающих - Программирование на машинном языке персонального компьютера для компьютеров Atari, VIC, Apple, C64 и PET ; 1-е изд; Ричард Мэнсфилд; Вычислить! Публикации; 350 страниц; 1983; ISBN 978-0942386110 . (архив) 
  • Программирование 6502 ; 4-е изд; Родней Закс; Sybex; 408 страниц; 1983; ISBN 978-0895881359 . (архив) 
  • Программирование 65816 - включая 6502, 65C02 , 65802 ; 1-е изд; Дэвид Айз и Рон Личти; Прентис Холл; 636 страниц; 1986; ISBN 978-0893037895 . (архив) 
Справочные карты
  • 6502 Мгновенная справочная карта микропроцессора ; Джеймс Льюис; Micro Logic; 2 страницы; 1980г. (Архив)

Внешние ссылки [ править ]

  • 6502.org - ресурс микропроцессора 6502 - репозиторий
  • Расцвет технологии МОП и 6502 - архив Commodore
  • Информация 650x - краткое описание, фотографии микросхем MOS и второго источника; на cpu-collection.de
  • mdfs.net - 6502 набор инструкций
  • Умно, Эрик. «6502 - первый RISC мкП» . Архивировано из оригинального 24 -го мая 2012 года .
  • Харрод, Деннетт А. (октябрь 1980 г.). «6502 получает микропрограммируемые инструкции» . БАЙТ . Vol. 5 шт. 10. Макгроу Хилл . С. 282–285. ISSN  0360-5280 . Архивировано из оригинала на 2006-05-25 . Проверено 14 мая 2006 .
Симуляторы / Эмуляторы
  • Онлайн-совместимый ассемблер и эмулятор 6502, написанный на JavaScript
  • Список программных эмуляторов 6502 - домен Zophar
  • Симулятор 6502 для Windows - штаб-квартира Atari Gaming
  • Визуальное моделирование процессора 6502 на уровне транзисторов
  • Ядро процессора MCL65 6502 - код C - MicroCore Labs GitHub
Доски
  • Плата Гранта 6502 с 7/8 микросхемами
  • 6502 микропроцессорная доска обучения
  • Создайте свою собственную учебную доску КИМ-1 - см. КИМ-1
  • 6502 домашний компьютер
  • Одноплатный компьютер PE6502
  • Одноплатный компьютер BE6502 - на основе видео Ben Eater
ПЛИС
  • cpu6502_tc 6502 CPU core - исходный код VHDL - OpenCores
  • ag_6502 6502 CPU core - Исходный код Verilog - OpenCores
  • M65C02 65C02 CPU core - исходный код Verilog - OpenCores
  • Ядро процессора MCL65 6502 - Verilog - MicroCore Labs GitHub