WDC 65C816 - WDC 65C816
W65C816S в корпусе PDIP40 | |
Общая информация | |
---|---|
Запущен | 1983 |
Общий производитель (и) |
|
Спектакль | |
Максимум. ЦПУ тактовая частота | От 1 МГц до 14 МГц |
Ширина данных |
|
Ширина адреса | 24 |
Архитектура и классификация | |
Набор инструкций | 6502 |
инструкции | 92 |
Физические характеристики | |
Пакет (ы) | |
История | |
Предшественник |
|
В W65C816S (также 65C816 или же 65816) является 8/16-битным микропроцессор (MPU) разработан и продается Центр западного дизайна (WDC). Представлен в 1983 г.[1] W65C816S - это улучшенная версия WDC 65C02 8-битный MPU, сам по себе CMOS усиление почтенного Технология MOS 6502 NMOS MPU. 65C816 был процессором для Apple IIGS а в модифицированном виде Система развлечений Super Nintendo.
В 65 в обозначении детали происходит из режима совместимости с 65C02, а 816 означает, что MPU имеет выбираемые 8- и 16-битные регистр размеры. Помимо наличия 16-битных регистров, W65C816S имеет расширенные возможности. адресация памяти к 24 бита, поддерживая до 16 мегабайты из оперативная память, расширенный набор команд и 16-битный указатель стека, а также несколько новых электрических сигналов для улучшенного управления аппаратным обеспечением системы.
В перезагрузить W65C816S запускается в «режиме эмуляции», что означает, что он ведет себя практически как 65C02. После этого W65C816S может быть переключен в «собственный режим» с помощью двух последовательностей команд, в результате чего он активирует все расширенные функции, но при этом сохранит значительную степень Обратная совместимость с большинством программного обеспечения 65C02. Однако в отличие от PDIP40 версия 65C02, которая является совместимый по контактам PDIP40 W65C816S, заменивший своего предка NMOS, не совместим по выводам с другими MPU семейства 6502.
К W65C816S относится W65C802, который имел ту же внутреннюю структуру и поддержку 16-бит, но использовал 40-контактную схему, совместимую с оригинальным 6502. Это позволило использовать его в качестве замены в определенных ролях. Однако 65C802 не мог передать полный 24-битный адрес, что ограничивало его 64 КБ памяти. 65C802 и его родственники больше не производятся.
История
В 1981 г. Билл Менш, основатель и Исполнительный директор из WDC, начал разработку 65C02 со своими производственными партнерами, в первую очередь Rockwell Semiconductor и Synertek. Основная цель 65C02 заключалась в переходе от процесса NMOS исходного 6502 к CMOS 65C02, что позволило бы ему работать на гораздо более низких уровнях мощности, где-то между1⁄10 и1⁄20 при работе на одинаковых тактовых частотах. Ряд новых коды операций и исправления ошибок также были включены в дизайн.[2]
Разработка W65C816S началась в 1982 году после того, как Mensch проконсультировался с Компьютер Apple на новой версии Яблоко II серия персональные компьютеры это, среди прочего, улучшило бы графику и звук. Apple хотела MPU, который был бы программно совместим с 6502, который тогда использовался в Apple II, но с возможностью адресовать больший объем памяти, а также загружать и хранить 16-битные слова. Результатом стал 65C816, законченный в марте 1984 года, образцы которого были предоставлены как Apple, так и Atari во второй половине года и полный выпуск в 1985 году.[3] В процессе проектирования Меншу помогала его сестра Кэтрин, которая отвечала за часть макета устройства.
Тот же процесс привел к созданию 65C802, который внутри был идентичен 65C816. Оба были произведены на одних и тех же производственных линиях и расходились только на последних этапах металлизации, когда микросхема подключалась к внешним выводам. В 65C802 эти контакты имели ту же схему расположения, что и у оригинального 6502, что позволяло использовать его в качестве замены, при этом позволяя использовать 16-битную обработку процессора. Однако, поскольку он использовал исходную распиновку, он имел только 16 контактов для адресации и, следовательно, мог получить доступ только к 64 КБ внешней памяти.[4] Обычно, когда производители оборудования разрабатывали проект с нуля, они использовали 65C816, а не 65C802, в результате чего последний снимался с производства.
Впоследствии Apple интегрировала 65C816 в Apple IIGS компьютер. Базовая конструкция 65C816 была второй источник к GTE, Саньо и другие с середины до конца 1980-х - начала 1990-х годов.
В 1990-х годах 65C816 и 65C02 были преобразованы в полностью статическое ядро, что позволило полностью остановить частота процессора без потери данных ни в одном из регистров. Эта функция, наряду с использованием асинхронная статическая RAM, позволили создавать конструкции, которые потребляли минимальную мощность в режиме ожидания.
По состоянию на 2019 год[Обновить], W65C816S доступен от WDC в 40-контактном PDIP или же PLCC44 пакет, а также ядро для ASIC интеграция (например Winbond серия телевизоров W55V9x Edutainment ИС ). WDC, сам по себе полупроводниковая компания fabless, работает с различными литейные заводы для производства W65C816S, а также других совместимых продуктов. Дискретные процессоры доступны у ряда дистрибьюторов электроники. Для дизайнеров, которые хотят включить функциональность W65C816S в пользовательский ASIC, WDC предлагает RTL (уровень регистрации-передачи ) код в Verilog.
Функции
Особенности WDC 65816:
Регистры WDC 65816 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
- Полностью статическая конструкция CMOS для низкого энергопотребления (300µА в 1МГц ) и повышенная помехозащищенность.
- Широкий рабочий Напряжение диапазон: от 1,8 В до 5,0 В ± 5%.
- Широкий рабочая частота диапазон до 14 МГц, используя однофазный источник тактовой частоты.
- Эмуляция режим обеспечивает программную совместимость с 6502/6510, за исключением недокументированных коды операций (которые в 65C02 действуют как NOP).
- 24-битная адресация памяти обеспечивает доступ к 16 МБ пространство памяти.
- 16 бит ALU, аккумулятор (А), указатель стека (SP), и индексные регистры (X и Y).
- 16-битный регистр прямой страницы (D).
- Регистры 8-битного банка данных (DB) и банка программ (PB), генерирующие биты 16-23 24-битных данных и кодовых адресов.
- Выходы действительного адреса данных (VDA) и действительного адреса программы (VPA) для двойного тайник и цикл кражи DMA выполнение.
- Выход Vector Pull (VPB), чтобы указать, когда вектор прерывания адресуется.
- Ввод прерывания (ABORTB) и связанный вектор поддерживает исправление процессором состояний ошибки шины, таких как ошибки страницы и нарушения доступа к памяти.
- Отдельные регистры программы и банка данных позволяют программировать сегментация или 16 МБ линейной адресации (только данные).
- Прямая регистровая и относительная адресация стека обеспечивает возможность повторно въезжающий, рекурсивный и перемещаемый программирование.
- 24 режимы адресации —13 оригинальных 6502 режима с 92 инструкции используя 256 коды операций, включая большинство новых кодов операций, реализованных в 65C02.
- Инструкции блочного копирования, позволяющие быстро копировать структуры данных из одной области баран к другому с минимальным кодом.
- Инструкции по ожиданию прерывания (WAI) и остановки часов (STP) далее снизить потребление энергии, снижаться задержка прерывания и позволяет синхронизировать с внешними событиями.
- Сопроцессор (COP) инструкция со связанным вектором поддерживает конфигурации сопроцессора, например, процессоры с плавающей запятой
- Зарезервированная инструкция «escape» (WDM) для будущих двухбайтовых кодов операций и ссылка на будущие разработки. (WDM - это инициалы дизайнера W65C816S. Уильям Д. Менш.)
Сравнение с более ранними моделями
Два режима
У 65C816 есть два режима работы, «режим эмуляции», в котором 16-битные операции невидимы - индексные регистры устанавливаются на восемь битов - и чип выглядит очень похожим на 65C02, с теми же временами цикла для коды операций и «собственный режим», в котором доступны все новые функции. ЦП автоматически возвращается в режим эмуляции при включении или сбросе, что позволяет ему заменить 65C02, предполагая, что он вносит необходимые изменения в схему, чтобы приспособиться к другому расположению контактов.[2]
16-битные регистры
Наиболее очевидным изменением 65C816 при работе в собственном режиме является расширение различных регистров с 8-битного до 16-битного размера. Это улучшение влияет на аккумулятор (A), X и Y индексные регистры, а указатель стека (SP). Это не влияет на счетчик команд (ПК), который всегда был 16-битным.[5]
При работе в основном режиме два бита в регистре состояния меняют свое значение. В исходном 6502 биты 4 и 5 не использовались, хотя бит 4 упоминается как флаг B (reak). В собственном режиме бит 4 становится флагом x, а бит 5 становится флагом m. Эти биты определяют, будет ли индексные регистры (x) и / или аккумулятор / память (m) имеют размер 8 или 16 бит. Нули в этих битах устанавливают 16-битные размеры, а единицы - 8-битные. Эти биты фиксируются в единицах при включении или сбросе процессора, но становятся изменяемыми, когда процессор переключается в основной режим.[5]
Может быть не сразу понятно, почему можно было бы использовать теперь 16-битные регистры в 8-битном режиме. Переход в 8-битный режим с помощью нового СЕН
(SEt бит в статусе процессора) и REP
Инструкции (REset) означают, что все последующие инструкции, обращающиеся к этим регистрам, будут читать или записывать только один байт вместо двух. Например, если бит m установлен в 1, когда LDA $ 1234
При выполнении инструкции будет прочитан только один байт по адресу $ 1234, что уменьшит количество циклов, необходимых для выполнения инструкции.[6] Это особенно полезно, например, при работе с 8-битными символьными данными.[7]
Когда размер регистра установлен на 16 бит, доступ к памяти будет обращаться к двум смежным байтам памяти за счет одного дополнительного тактового цикла. Кроме того, инструкция чтения-изменения-записи, такая как ROR
при использовании, когда аккумулятор установлен на 16 бит, влияет на два смежных байта памяти, а не на один. Точно так же все арифметические и логические операции будут 16-битными.[8]
24-битная адресация
Другим важным изменением в системе при работе в собственном режиме является то, что модель памяти расширена до 24-битного формата из исходного 16-битного формата 6502. Это обрабатывается с помощью двух 8-битных регистров смещения, банка данных. Регистр (DB) и Регистр банка программ (PB). Адреса в коде остаются в исходном 16-битном формате, но значения в DB и PB добавляются в начало, чтобы сформировать 24-битный адрес в основная память. Это означает, что инструкции могут обращаться к данным в пределах 64 КБ. банк, и если необходимо получить доступ к данным за пределами этого банка, необходимо изменить DB или использовать "длинную" адресацию (то есть указание 24-битного адреса в качестве операнда для инструкции).
PB определяет, из какого банка размером 64 КБ процессор будет извлекать инструкции - не существует программных средств, с помощью которых можно было бы напрямую изменить PB. Переходы и 16-битные переходы или 16-битные вызовы подпрограмм обычно ограничиваются банком в PB (JMP (<адрес>)
всегда получает целевой адрес из банка $ 00). Возможен 24-битный «длинный» переход или вызов подпрограммы, что превышает нормальный предел размера программы в 64 КБ.[5]
Еще одним дополнением к набору регистров является 16-битный регистр прямой страницы (DP), который устанавливает базовый адрес для того, что раньше называлось нулевой страницей, но теперь называется прямой страницей. При прямой адресации страниц используется 8-битный адрес, что обеспечивает более быстрый доступ, чем при использовании 16- или 24-битного адреса. Кроме того, некоторые режимы адресации, которые предлагают косвенную адресацию, возможны только на прямой странице. В 65 (C) 02 прямой страницей всегда являются первые 256 байтов памяти, то есть «нулевая страница». В собственном режиме 65C816 может перемещать прямую (нулевую) страницу в любое место первых 64 КБ памяти, записывая начальный адрес в DP. Если DP не установлен на четную границу страницы, возникает штраф за доступ в один цикл.[9]
Переключение между режимами
Текущий режим работы сохраняется в бите эмуляции (E). После того как новые биты x и m уже добавлены к предыдущему набору из шести флагов в регистре состояния (SR), осталось недостаточно битов для хранения бита нового режима. Вместо этого было использовано уникальное решение, в котором бит режима был оставлен «невидимым», и к нему нельзя было получить прямой доступ. Новый XCE
Команда (eXchange Carry with Emulation) меняет значение бита эмуляции на бит C (arry), бит 0 в регистре состояния. Например, если кто-то хочет войти в собственный режим после запуска процессора, можно использовать CLC
, чтобы снять переноску, а затем XCE
чтобы записать его в бит эмуляции.[10] При возврате в режим эмуляции 65C02 используется SEC
с последующим XCE
.[7]
Внутренне 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 ГДЕ-ТО, X
, 16-битное значение в индексном регистре будет добавлено к базовому адресу, чтобы сформировать эффективный адрес.
Если в SR установлен бит m, аккумулятор вернется к 8-битному регистру, и последующие операции с аккумулятором, за некоторыми исключениями, будут 8-битными. B-аккумулятор сохранит значение, которое было, когда аккумулятор работал в 16-битном режиме. Исключением являются инструкции, которые передают регистр прямой страницы (DP) и указатель стека (SP) в / из аккумулятора. Эти операции всегда имеют ширину 16 бит в собственном режиме, независимо от состояния бита m в регистре состояния.
Если бит x в SR установлен, не только индексные регистры вернутся к 8-битным, все, что было в MSB в 16-битном режиме, будет потеряно, что программист на языке ассемблера не может позволить себе забыть.[11]
Приложения
Системы на базе 65816 вариантов:
- Желудь коммуникатор
- Apple IIGS
- Система развлечений Super Nintendo: the консоль с Ricoh 5A22 Процессор основан на 65C816
- Кроме того, более 30 игр Super NES включают Nintendo SA1, чип сопроцессора на основе 65C816 в каждом картридже.
Он также используется в C-One и SuperCPU улучшения для Коммодор 64.
Смотрите также
Рекомендации
Цитаты
- ^ Хронология микропроцессоров (1980-1989)
- ^ а б Глаза и Личти 1986, п. 42.
- ^ Глаза и Личти 1986, п. 44.
- ^ Глаза и Личти 1986, п. 45.
- ^ а б c Глаза и Личти 1986, п. 46.
- ^ Глаза и Личти 1986, п. 50.
- ^ а б Глаза и Личти 1986, п. 65.
- ^ Глаза и Личти 1986, п. 52.
- ^ Глаза и Личти 1986, п. 48.
- ^ Глаза и Личти 1986, п. 64.
- ^ Глаза и Личти 1986, п. 51.
Библиография
- Глаза, Дэвид; Личти, Рон (1986). Программирование 65816, включая 6502, 65C02, 65802. Прентис Холл. ISBN 978-0893037895.CS1 maint: ref = harv (связь)
дальнейшее чтение
- 65C816 Лист данных; Центр западного дизайна; 55 страниц; 2018.
внешняя ссылка
- 65C816 веб-страница - Центр западного дизайна
- 6502 / 65C02 / 65C816 Набор команд декодирован
- 65816 / 65C816 Технические документы - zophar.net
- Программист 6502: Введение в 65816 - А Commodore World статья Бретта Табке; включает CMD сводка набора инструкций
- Исследование прерываний 65C816 - Подробное обсуждение обработки прерываний на 65C816
Статья основана на материалах, взятых из Бесплатный онлайн-словарь по вычислительной технике до 1 ноября 2008 г. и зарегистрированы в соответствии с условиями «перелицензирования» GFDL, версия 1.3 или новее.