WDC 65C816

редактировать
WDC 65C816
W65C816S8PG-14 lg.jpg W65C816S в пакете PDIP40
Общая информация
Запущен1983; 37 лет назад (1983)
Обычный производитель (-ы)
Производительность
Макс. CPU тактовая частота от 1 МГц до 14 МГц
Ширина данных
  • 8 (внешний)
  • 16 (внутренний)
Ширина адреса24
Архитектура и классификация
Набор команд 6502
Инструкции92
Физические характеристики
Корпус (ы)
  • 40-контактный DIP
  • 44-контактный PLCC, другие
История
Предшественник

W65C816S (также 65C816 или 65816 ) представляет собой 8/16-битный микропроцессор (MPU), разработанный и продаваемый Western Design Center (WDC). Представленный в 1983 году, W65C816S является улучшенной версией 8-битного MPU WDC 65C02, который сам по себе является усовершенствованием CMOS известной MOS Technology 6502. NMOS MPU. 65C816 был процессором для Apple IIGS, а в модифицированной форме Super Nintendo Entertainment System.

65 в обозначении детали происходит из режима совместимости с 65C02, а 816 означает, что MPU имеет выбираемые размеры 8- и 16-битных регистров. В дополнение к наличию 16-битных регистров W65C816S имеет расширенную адресацию памяти с до 24-бит, поддерживая до 16 мегабайт из произвольно- доступ к памяти, расширенный набор команд и 16-битный указатель стека , а также несколько новых электрических сигналов для улучшенного управления аппаратным обеспечением системы.

При сбросе W65C816S запускается в «режиме эмуляции», что означает, что он по существу ведет себя как 65C02. После этого W65C816S может быть переключен в «собственный режим» с помощью двух последовательностей инструкций, в результате чего он активирует все расширенные функции, но при этом сохраняет значительную степень обратной совместимости с большей частью программного обеспечения 65C02. Однако, в отличие от версии PDIP40 процессора 65C02, которая является совместимой по выводам заменой своего предка NMOS, PDIP40 W65C816S не совместим по выводам с другими MPU семейства 6502.

Связанный с W65C816S, W65C802, который имел ту же внутреннюю структуру и 16-битную поддержку, но использовал 40-контактную схему, совместимую с оригинальным 6502. Это позволило ему быть используется в качестве замены в определенных ролях. Однако 65C802 не мог передать полный 24-битный адрес, что ограничивало его 64 КБ памяти. 65C802 и его родственники больше не производятся.

Содержание

  • 1 История
  • 2 Характеристики
  • 3 Сравнение с предыдущими моделями
    • 3.1 Два режима
    • 3.2 16-битные регистры
    • 3.3 24-битная адресация
    • 3.4 Переключение между режимы
  • 4 Приложения
  • 5 См. также
  • 6 Ссылки
    • 6.1 Цитаты
    • 6.2 Библиография
  • 7 Дополнительная литература
  • 8 Внешние ссылки

История

PLCC-44 версия микропроцессора W65C816S, смонтированная на одноплатном компьютере.

В 1981 году Билл Менш, основатель и генеральный директор WDC, начал разработку 65C02 вместе со своими производственными партнерами, в первую очередь Rockwell Semiconductor и Synertek. Основная цель 65C02 заключалась в переходе от процесса NMOS оригинального 6502 к CMOS 65C02, что позволило бы ему работать на гораздо более низких уровнях мощности, где-то между ⁄ 10 и ⁄ 20 при работе на одинаковых тактовых частотах. В конструкцию также был включен ряд новых кодов операций и исправлений ошибок.

Разработка W65C816S началась в 1982 году после того, как Менш проконсультировался с Apple Computer по поводу новой версии. из Apple II серии персональных компьютеров, в которых, помимо прочего, улучшены графика и звук. Apple хотела MPU, который был бы программно совместим с 6502, который тогда использовался в Apple II, но с возможностью адресовать больший объем памяти, а также загружать и хранить 16-битные слова. Результатом стал 65C816, законченный в марте 1984 года, образцы которого были предоставлены Apple и Atari во второй половине года, а полный выпуск - в 1985 году. В процессе проектирования Меншу помогала его сестра Кэтрин, кто отвечал за часть макета устройства.

Тот же процесс привел к 65C802, который внутри был идентичен 65C816. Оба были произведены на одних и тех же производственных линиях и расходились только на последних этапах металлизации, когда микросхема подключалась к внешним контактам. В 65C802 эти контакты имели ту же компоновку, что и оригинальный 6502, что позволяло использовать его в качестве замены, но при этом позволяло использовать 16-битную обработку ЦП. Однако, поскольку он использовал исходную распиновку, он имел только 16 контактов для адресации и, следовательно, мог получить доступ только к 64 КБ внешней памяти. Обычно, когда производители оборудования разрабатывали проект с нуля, они использовали 65C816, а не 65C802, в результате чего последний снимался с производства.

Apple впоследствии интегрировала 65C816 в компьютер Apple IIGS. Базовая конструкция 65C816 была произведена из вторых источников GTE, Sanyo и другими в период с середины до конца 1980-х до начала 1990-х годов.

В 1990-х годах и 65C816, и 65C02 были преобразованы в полностью статическое ядро ​​, что позволило полностью остановить тактовую частоту процессора без потери данных ни при каких обстоятельствах. регистров. Эта функция, наряду с использованием асинхронного статического ОЗУ, позволила создавать проекты, которые потребляли минимальную мощность в состоянии ожидания.

По состоянию на 2019 год W65C816S доступен от WDC в 40-контактном корпусе PDIP или PLCC44, а также в качестве ядра для ASIC интеграция (например, серия Winbond W55V9x TV Edutainment ИС ). WDC, являющаяся компанией по производству полупроводников, работает с различными литейными предприятиями для производства W65C816S, а также других совместимых продуктов. Дискретные процессоры можно приобрести у ряда дистрибьюторов электроники. Для разработчиков, которые хотят включить функциональность W65C816S в пользовательский ASIC, WDC предлагает код RTL (уровень передачи регистров ) в Verilog.

W65C802P

Features

Функции WDC 65816:

Регистры WDC 65816
23222120191817161514131211109876543210(битовая позиция)
Основные регистры
BAАккумуляторы
Индексные регистры
XXиндекс
YYиндекс
00000000DPDirect P регистр возраста
00000000SPStack P ointer
DB0000000000000000Data B ank register
Программный счетчик
PBPCPпрограмма C счетчик
Регистр состояния
NVmxDIZCSRРегистр состояния

Сравнение с более ранними моделями

Два режима

65C816 имеет два режима работы, «режим эмуляции», в котором 16-битные операции невидимы - индексные регистры установлены на восемь битов - и чип выглядит очень похожим на 65C02, с теми же временами цикла для кодов операций и «собственным режимом», который предоставляет все новые функции.Процессор автоматически возвращается в режим эмуляции при включении или сбросе, что позволяет ему заменить 65C02, предполагая, что он вносит необходимые изменения схемы, чтобы приспособиться к другому расположению выводов.

16-битные регистры

Наиболее очевидным изменением 65C816 при работе в 16-битном режиме является расширение различных регистров с 8-битных до 16-битных значений. Это влияет на аккумулятор (A), X и Y индексные регистры и указатель стека (SP). Это не влияет на программный счетчик (PC), который всегда был 16-битным.

При работе в основном режиме два бита в регистре состояния меняют свое значение. В исходном 6502 биты 4 и 5 не использовались, хотя бит 4 иногда упоминался как флаг B (reak). В собственном режиме бит 4 становится флагом x, а бит 5 становится флагом m. Эти биты определяют, являются ли регистры индекса (x) и / или аккумулятор / память (m) 8-битными или 16-битными значениями. Нули в этих битах указывают на 16-битные значения, единицы указывают на 8-битные значения. Эти биты обычно отсутствуют при запуске микросхемы, но включаются и устанавливаются в единицу при переключении в собственный режим.

Может быть не сразу очевидно, почему кто-то захочет использовать теперь 16-битный регистры в 8-битном режиме; однако переключение в 8-битный режим с использованием новых инструкций SEP(бит SEt в состоянии процессора) и REP(REset) означает, что все последующие инструкции, обращающиеся к этим регистрам, будут читать только один байт вместо двух. Например, если бит m установлен в 1, когда выдается инструкция LDA $ 1234, будет прочитан только один байт по адресу $ 1234, тем самым уменьшится количество циклов, необходимых для выполнения инструкции. Это особенно полезно при работе, например, с 8-битными символьными данными.

При работе в 16-битном режиме операции с регистрами влияют на все 16 бит. Доступ к памяти с регистром, установленным на 16 бит, будет обращаться к двум смежным байтам памяти за счет одного дополнительного тактового цикла. В частности, команда чтения-изменения-записи, такая как ROR , при использовании, когда аккумулятор установлен на 16 бит, будет влиять на два смежных байта памяти, а не на один. Точно так же все арифметические и логические операции будут 16-разрядными.

24-разрядная адресация

Другим важным изменением системы при работе в основном режиме является расширение модели памяти до 24-битный формат из исходного 16-битного формата 6502. Он обрабатывается с использованием двух 8-битных регистров смещения, регистра банка данных (DB) и регистра банка программ (PB). Адреса в коде остаются в исходном 16-битном формате, но значения в DB и PB добавляются для формирования 24-битного адреса в основной памяти. Это означает, что инструкции могут обращаться к данным в банке размером 64 КБ, и если необходимо получить доступ к данным за пределами этого банка, необходимо изменить DB или использовать «длинную» адресацию (то есть указание 24-битного адреса в качестве операнда для Инструкция).

PB определяет, из какого банка размером 64 КБ процессор будет извлекать инструкции - нет программных средств, с помощью которых можно было бы напрямую изменить PB. Переходы и 16-битные переходы или вызовы 16-битных подпрограмм обычно ограничиваются банком в PB (JMP ()всегда выбирает целевой адрес из банка $ 00). Возможен 24-битный «длинный» переход или вызов подпрограммы, который преодолевает нормальный предел размера программы в 64 КБ.

Еще одним дополнением к набору регистров является 16-битный регистр прямой страницы (DP), который устанавливает базовый адрес для того, что раньше называлось нулевой страницей, но теперь называется прямой страницей. При прямой адресации страниц используется 8-битный адрес, что обеспечивает более быстрый доступ, чем при использовании 16- или 24-битного адреса. Кроме того, некоторые режимы адресации, которые предлагают косвенную адресацию, возможны только на прямой странице. В 65 (C) 02 прямой страницей всегда являются первые 256 байтов памяти, то есть «нулевая страница». В собственном режиме 65C816 может перемещать прямую (нулевую) страницу в любое место первых 64 КБ памяти, записывая начальный адрес в DP. Если DP не установлен на четную границу страницы, возникает одноцикловое ограничение доступа.

Переключение между режимами

Текущий режим работы сохраняется в бите эмуляции (E). После того как новые биты x и m уже добавлены к предыдущему набору из шести флагов в регистре состояния (SR), осталось недостаточно битов для хранения бита нового режима. Вместо этого было использовано уникальное решение, в котором бит режима был оставлен «невидимым», и к нему нельзя было получить прямой доступ. Новая инструкция XCE(перенос обмена с эмуляцией) меняет значение бита эмуляции на бит C (arry), бит 0 в регистре состояния. Например, если кто-то хочет войти в основной режим после запуска процессора, можно использовать CLCдля CLear бита переноса, а затем XCEдля записи его в бит эмуляции. При возврате в режим эмуляции 65C02 используется SEC, за которым следует XCE.

. Внутренне 65C816 представляет собой полностью 16-битную конструкцию. Биты m и x в SR определяют, как регистры пользователя (накопитель и индекс) выглядят для остальной системы. После сброса 65C816 запускается в режиме эмуляции 65C02, в котором m и x установлены на 1 и не могут быть изменены. Следовательно, регистры выглядят для остальной системы как 8-битные. Самый старший байт (MSB) аккумулятора (B-аккумулятор) не доступен напрямую, но может быть заменен младшим значащим байтом (LSB) аккумулятора (A-аккумулятор) с помощью XBAинструкция. Для индексных регистров (.X и.Y) нет соответствующей операции.

При переключении в основной режим старший бит.X и.Y будет равен нулю, а B-аккумулятор не изменится. Если бит m в SR очищен, B-аккумулятор будет «объединен» с A-аккумулятором, чтобы сформировать 16-битный регистр. Загрузка / сохранение или арифметическая / логическая операция с использованием аккумулятора и / или памяти будет 16-разрядной операцией - для получения / сохранения 16-разрядного значения требуется два цикла шины.

Если бит x в SR очищен, оба индексных регистра будут установлены в 16-битные. Если используется для индексации адреса, например, LDA SOMEWHERE, X, 16-битное значение в индексном регистре будет добавлено к базовому адресу для формирования эффективного адреса.

Если бит m в SR установлен, аккумулятор вернется к 8-битному регистру, и последующие операции с аккумулятором, за некоторыми исключениями, будут 8-битными. B-аккумулятор сохранит значение, которое было, когда аккумулятор работал в 16-битном режиме. Исключением являются инструкции, которые передают регистр прямой страницы (DP) и указатель стека (SP) в / из аккумулятора. Эти операции всегда имеют ширину 16 бит в собственном режиме, независимо от состояния бита m в регистре состояния.

Если бит x в SR установлен, не только индексные регистры вернутся к 8-битным, все, что было в MSB в 16-битном режиме, будет потеряно, что программист на языке ассемблера не может себе позволить. забыть.

Приложения

Системы на основе 65816 вариантов:

Он также используется в усовершенствованиях C-One и SuperCPU для Commodore 64.

См. также

Ссылки

Цитаты

Библиография

Дополнительная литература

Внешние ссылки

Эта статья основана на материалах, взятых из Free On-line Dictionary of Computing до 1 ноября 2008 г. и включенных в соответствии с условиями «перелицензирования» GFDL, версия 1.3 или новее.

Последняя правка сделана 2021-06-20 04:40:15
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте