RCA 1802 - RCA 1802

КОСМАК
KL RCA 1802.jpg
RCA CDP 1802
Общая информация
Запущен1974
Физические характеристики
Пакет (ы)
RCA CDP1802 штамп

В КОСМАК является 8 бит микропроцессор семья представлена RCA. Исторически примечателен как первый CMOS микропроцессор.[1] Первая серийная модель была двухчиповой. CDP1801R и CDP1801U, которые позже были объединены в однокристальные CDP1802.[2] Модель 1802 года представляла собой большую часть продукции COSMAC, и сегодня вся линейка известна просто как RCA 1802.

Дизайн процессора восходит к экспериментальной домашний компьютер разработано Джозеф Вайсбекер в начале 1970-х годов построил в своем доме с использованием TTL составные части. Компания RCA начала разработку КМОП-версии процессора в 1973 году, опробовав ее в 1974 году и планируя немедленно перейти на однокристальную реализацию. Джерри Херцог руководил разработкой однокристальной версии, образец которой был выпущен в 1975 году и запущен в производство в 1976 году.[3][4]

В отличие от большинства дизайнов той эпохи, которые были изготовлены с использованием NMOS процесс COSMAC был реализован в форме CMOS и использовался статическая логика. Это позволяло ему работать при более низких настройках мощности и даже полностью останавливаться. RCA назвала свой процесс КМОП «дополнительным полупроводником кремний / оксид металла», в результате чего возникла аббревиатура COS / MAC,[5] который был тогда с подпиской к "компьютеру с монолитным массивом дополнительной симметрии" при обращении к процессору. RCA также произвела радиационно стойкий версии с использованием кремний на сапфире процесс, нашедший применение в аэрокосмической сфере. Они используются по сей день и продолжают производиться Renesas (ранее Интерсил ).[6]

Преемниками 1802 являются CDP1804, CDP1805 и CDP1806, которые имеют расширенный набор инструкций, другие расширенные функции (например, ОЗУ и ПЗУ на кристалле, а также встроенный таймер), причем некоторые версии работают на более высоких тактовых частотах, хотя и не существенная разница в скорости. Некоторые функции также потеряны, например, функция автозагрузчика DMA. Также есть некоторые незначительные изменения в функции выводов, но линия по-прежнему производится с оригинальными 40-контактными выводами. двухрядный корпус (DIP) формат.

История

ФРЕД

Джозеф Вайсбекер давно был очарован возможностями компьютеров в домашних условиях, заявив еще в 1955 году, что он ожидал, что однажды они будут встроены практически в каждое устройство. Технологии той эпохи сделали небольшие встраиваемые компьютеры невозможными, но появление Интегральная схема (IC) в 1960-х кардинально изменила ситуацию. В 1974 году он описал возможности в статье IEEE Computer:

За 20 лет компьютерное оборудование стало все более сложным, языки - более изощренными, а операционные системы - менее эффективными. Теперь микрокомпьютеры дают некоторым из нас возможность вернуться к более простым системам. Недорогие… микрокомпьютеры могут открыть огромные новые рынки.[7]

Начиная с 1970 г.[а] Вайсбекер начал разработку небольшой машины с использованием RCA. транзисторно-транзисторная логика (TTL) ИС для построения процессора. Другие детали, выключатели, лампы и тому подобное, ему пришлось покупать у Radio Shack, сознательно распределяя свои покупки по четырем магазинам, чтобы никто не спросил его, почему он покупает так много запчастей.[8] Проект был запущен в октябре 1971 года и содержал 100 чипов.[1] распределить по нескольким печатные платы.[1]

Результат, который он назвал FRED, якобы для гибкого развлекательного образовательного устройства, был упакован в коробку, которая мало чем отличалась от Альтаир 8800 несколько лет спустя, с переключателями на передней панели для входа, лампами для выхода, а позже добавлением шестигранная площадка клавиатура.[8] Weisbecker постоянно добавлял новые функции и к 1972 г. генератор персонажей и возможность загружать и сохранять программы на кассеты.[1]

Дочь Вайсбекера, Джойс Вайсбекер, сразу обратился к системе и начал писать для нее программы. Это включало несколько игр, которые были перенесены на более поздние машины, основанные на COSMAC. Когда RCA вошла в игровая консоль бизнес в конце 1970-х, эти игры были сожжены ПЗУ картридж form, и Джойс стала первой известной женщиной-разработчиком коммерческих видеоигр.[8]

Релиз

Вайсбекер демонстрировал машину руководству RCA на протяжении всего этого периода, но поначалу это не вызвало особого интереса. Это было вскоре после Дэвид Сарнофф вышел на пенсию и передал Исполнительный директор роль его сыну, Роберт Сарнов. Роберт был больше заинтересован в создании медиа-стороны компании, встречаясь со звездами звукозаписи, игнорируя RCA лаборатории несмотря на то, что здесь ведется ряд передовых разработок. Отчасти скептицизм, проявленный руководством, мог быть связан с недавней продажей компанией своих мэйнфрейм компьютерный бизнес Сперри Рэнд с огромным записывать.[8]

В конце концов, компания заинтересовалась системой и начала адаптировать ее к своей недавно представленной системе изготовления COS / MOS. Отчет лаборатории 1973 года[b] относится к «прототипу», поставленному в 1972 году, но, вероятно, относится к оригинальной реализации TTL. Далее следует отметить попытку свести процессор к реализации с двумя микросхемами с поставками в COS / MOS в 1974 году. Именно здесь процессор впервые упоминается как COSMAC, от COmplementary-Symmetry-Monolithic-Array Computer. Далее говорится, что другая лаборатория будет производить систему на 8-ми микросхемах. кремний на сапфире формат, хотя дата просто «вскоре после» версий CMOS, и что планы по выпуску одночиповой версии уже планировались.[9][c]

Устройства COSMAC

Хотя RCA начала разработку COSMAC в начале 1970-х годов, прошло некоторое время, прежде чем они представили свои собственные продукты на основе in. В 1975 году прототип аркадная игра Машина с заменяемыми ПЗУ была экспериментирована для бизнеса по продаже монет, но в конечном итоге от нее отказались.[8]

Между тем, Вайсбекер адаптировал оригинальный FRED, известный в RCA как System 00, к тому времени, используя новый набор микросхем, чтобы создать значительно упрощенную одноплатную систему, известную как тогда COSMAC ELF. Инструкции по сборке были описаны в статье в Популярная электроника журнала в 1976 году, и расширенная версия с различными обновлениями во второй статье в 1977 году. Уникальной особенностью ELF является то, что он не требовал никаких только для чтения памяти (ROM) для запуска, вместо этого прямой доступ к памяти (DMA) система использовалась для считывания переключателей передней панели непосредственно в память.[8]

RCA обсуждает, выпускать ли на рынок предварительно упакованные версии ELF. Пока они обсуждали, дальнейшая разработка привела к упрощенной машине, сочетающей ELF с новым драйвер дисплея чип, CDP1861, чтобы произвести игровая консоль. За это время RCA наняла Джойса для написания нескольких видеоигры для платформы, включая образовательный продукт в стиле викторины в партнерстве с Случайный дом, одна из многих компаний, которые были захвачены скупкой RCA.[8]

После года обсуждений компания в конечном итоге решила выпустить два продукта на основе этой платформы, компьютерный комплект, известный как COSMAC VIP, и игровая консоль, известная как RCA Studio II. Машины были доступны с 1975 года, но Studio II была анонсирована только в январе 1977 года, через пару месяцев после Канал Фэйрчайлд F стал первым на рынке патронным автоматом. Оба вскоре будут затмены и в значительной степени будут забыты из-за выпуска Atari 2600 позже в том же году. RCA закрыла Studio II в феврале 1978 года.[8]

Встроенное использование

COSMAC был уникальным среди ранних 8-битных процессоров тем, что был специально разработан для использования в микрокомпьютерах; другие проекты той эпохи неизменно были нацелены на встроенный процессор пространство, а те, которые были разработаны для использования на компьютере, обычно были более сложными системами и часто 16-битными. Хотя COSMAC был разработан для использования на компьютерах, медленный выход RCA на рынок и недостаточно поддерживаемые попытки на этом рынке в конечном итоге потерпели неудачу, и другие процессоры, такие как MOS 6502 и Зилог Z80 в конечном итоге будет доминировать на этом рынке. По иронии судьбы, COSMAC в конечном итоге добился большого успеха на рынке встраиваемых систем, потому что его конструкция CMOS позволяла ему работать с меньшим энергопотреблением. К концу 1970-х годов он широко использовался во многих промышленных предприятиях, особенно в авиакосмической сфере. 1802 г. Зонд Галилео к Юпитер в 1989 году, и он продолжает использоваться в аналогичных ролях по сей день.[8]

Вступление

Распиновка 40-контактного микропроцессора CDP1802 с обозначениями контактов. Желтый = мощность; Зеленый = выход; Синий = ввод; Красный = ввод / вывод с тремя состояниями.

RCA 1802 имеет статическое ядро CMOS дизайн без минимума тактовая частота, так что он может работать на очень низких скоростях и малой мощности, включая нулевую тактовую частоту для приостановки микропроцессора, не влияя на его работу.

Он имеет две отдельные 8-контактные шины: 8-битную двунаправленную шина данных и мультиплексированный по времени адресная шина, при этом доступ к старшим и младшим 8-ми битам 16-битного адреса осуществляется через чередующиеся тактовые циклы. Это контрастирует с большинством дизайнов той эпохи, такими как MOS 6502 и Intel 8080, который использовал 16-битную адресную шину.

1802 год имеет сингл кусочек, программируемый и тестируемый выходной порт (Q) и четыре входных контакта, которые непосредственно тестируются ветвью инструкции (EF1-EF4). Эти штифты позволяют просто ввод, вывод (I / O) задачи, которые нужно решать напрямую и легко программировать.

Еще одна уникальная особенность конструкции COSMAC - это набор регистров. Это включало традиционный 8-битный аккумулятор и различные флаги состояния, но также включал еще один набор из шестнадцати 16-разрядных регистров общего назначения. Помимо предоставления временного хранилища, пользователь мог выбрать любой из них в качестве счетчик команд (ПК) с помощью СЕН Пн инструкция, где n было 4-битным значением, выбирающим один из регистров. Это можно было бы использовать как небольшой стек вызовов путем сохранения нескольких ПК для обратных адресов (см. Вызов подпрограмм ниже). Точно так же указатели и косвенная адресация используют регистр X (инструкция SEX Rn).

COSMAC также включал простой прямой доступ к памяти (DMA) встроенная система. Это работало, сохраняя адрес в регистре 0, а затем вызывая вход или выход DMA, подтягивая соответствующий вывод на ЦП на низкий уровень. ЦП обращается к памяти только во время определенных циклов многоступенчатого машинного цикла, который требует от 8 до 16 тактовых циклов. Внешнее оборудование могло читать или записывать данные в течение этих периодов, не прерывая работу процессора, общая концепция, известная как кража цикла. ЦП ответил на запрос DMA, увеличив значение в R0, так что следующий запрос автоматически сохраняется в следующей ячейке памяти. Таким образом, простым многократным запуском контактов DMA система будет проходить через всю память.

Поскольку выполнение инструкций занимало от 8 до 16 тактов, 1802 не был особенно быстрым. Для сравнения, 6502 выполняет большую часть инструкций за 2–4 такта, а самый длинный - за 7 и только при определенных обстоятельствах.[11]

Приложения

Микрокомпьютерные системы

Номер ранние микрокомпьютеры были основаны на 1802 г., в том числе COSMAC ELF (1976), Netronics ELF II, Квест SuperELF, COSMAC VIP, Comx-35, Финский Telmac 1800 и Oscom Nano, Югославский Pecom 32 и 64, а Cybervision системы, проданные через Монтгомери Уорд в конце 70-х,[12] так же хорошо как RCA Studio II игровая приставка (одна из первых консолей, использующих растровый графика). Система обучения одноплатного компьютера (SBC) Edukit, аналогичная расширенной COSMAC Elf, была предложена Modus Systems Ltd. в Великобритании в начале 1980-х годов.[13] В конце 1970-х годов Infinite Incorporated произвела расширяемую консольную компьютерную систему S-100 на базе 1802 года под названием UC1800, доступную в собранном виде или в виде набора.[14][15]

В составе 1802 г. Ретрокомпьютинг увлечением, другие компьютеры были построены совсем недавно (после 2000 г.), в том числе Членский билет комплект микрокомпьютера, который помещается в жестяную банку Altoids[16] и Spare Time Gizmos Elf 2000 (Elf 2K),[17] среди прочего. Видеть Эмуляторы и симуляторы для других систем.

Интеграция продуктов

1802 год также использовался в научных инструментах и ​​коммерческих продуктах. [18][19]

Пост-1980 Chrysler и связанные с ним модели автомобилей используют 1802 в своей электронной системе сжигания обедненной смеси второго поколения с электронным контролем искры, одной из первых бортовых автомобильных систем управления на базе компьютера.[20][21]

1802 год использовался в производстве многих автоматов для игры в пинбол и аркадных видеоигр в Испании.[22]

Радиационное упрочнение

В дополнение к технологии C2L CMOS "объемного кремния", 1802 был также доступен, изготовленный в Кремний на сапфире (SOS) технология обработки полупроводников, которая дает ему степень устойчивость к радиации и электростатический разряд (ESD). Наряду с чрезвычайно низким энергопотреблением, это делает микросхему хорошо подходящей для использования в космосе и в военных целях (к тому же, когда был представлен 1802, на рынке было очень мало других радиационно стойких микропроцессоров, если таковые вообще были).[23][24] В радиационно стойкий Версия 1802 года выпускалась на Сандийские национальные лаборатории по согласованию с RCA.[25]

Космические технологии и наука

1802 год использовался во многих космических аппаратах и ​​программах космической науки, экспериментах, проектах и ​​модулях, таких как Космический корабль Галилео,[26] Магеллан[27], различные спутники на околоземной орбите[28] и спутниковые радиолюбители.[29]

1802 также было подтверждено из исходной документации НАСА, чтобы использоваться в Космический телескоп Хаббла.[30]

Языки программирования

Первым языком высокого уровня, доступным для 1802 года, был Четвертый, предоставленный Forth, Inc. в 1976 году. Другие доступные языки программирования, как интерпретаторы, так и компиляторы, ЧИП-8 (и варианты), 8-е (версия Forth, созданная Ли Хартом),[31] Том Питтман Tiny BASIC,[32] C, различные ассемблеры и кросс-ассемблеры и др. Другие специальные языки использовались федеральными агентствами, такими как НАСА и его объектами, включая Космический центр Джонсона, AMES, Годдард, Лэнгли, Маршалл и Лабораторию реактивного движения (JPL), которая включала кросс-компилятор HAL / S,[33] STOIC, форт-подобный язык,[34] и другие.

Интерпретатор для структур процессов (IPS), язык программирования и среда разработки, были специально написаны и использовались для управления в реальном времени АМСАТ спутники.

Эмуляторы и симуляторы

Чип 1802 и компьютеры, использующие микропроцессор, были эмулированы и смоделированы в аппаратном и / или программном обеспечении любителями. Есть три дизайна в VHDL для FPGA.[35][36][37] Шина точная, полная скорость COSMAC Elf клон был создан без микропроцессорного чипа CDP1802 или видеочипа CDP1861 с использованием ПОС микроконтроллеры.[38] Онлайн-симулятор COSMAC Elf (улучшенный), написанный на JavaScript, запускается в браузере пользователя и не требует загрузки.[39]

Описание

Обозначения суффикса номера детали

Различные суффиксы к номеру детали CDP1802 обозначают технические характеристики, включая (A, B и C) рабочая скорость (От 3,2 МГц до 6,4 МГц), температура (От -40 ° C до +85 ° C, от -55 ° C до +125 ° C) и диапазоны напряжения (От 4 В до 10,5 В), Тип упаковки (D, E, Q) и записать в (ИКС). Они были несколько стандартизированы между различными поставщиками источников, включая RCA, Intersil, Harris, Hughes Aircraft и Solid State Scientific (SSS). Hughes использовал префикс HCMP, а SSS использовал префикс SCP (и, возможно, BCP) вместо CDP и имел дополнительные суффиксы, которые еще не были задокументированы. (примеры: CDP1802A, CDP1802ACE, CDP1802BCD, HCMP1802AP, SCP1802D)[40]

СуффиксТип упаковки
EPDIP = Пластик Двухрядный корпус
DSBDIP = боковая пайка Керамика Двухрядный корпус
QPLCC = Пластиковый держатель чипа с выводами
ИксЗаписать в

Регистры и ввод / вывод

Зарегистрировать модель

1802 - это 8-битная машина с минимальной поддержкой 16-битных операций, за исключением 2-байтовых операций. Первичный аккумулятор - это 8-битный регистр «D» (регистр данных). Однобитовый флаг переноса - это DF (флаг данных). В большинстве операций используется регистр D, включая арифметические и логические функции, а также инструкции загрузки и сохранения, связанные с памятью. Большинство 16-битных операций должны работать с младшим байтом, а затем со старшим байтом через D, используя DF как перенос и заимствование по мере необходимости. Инструкции позволяют получать и помещать верхние и нижние байты шестнадцати 16-битных регистров через D. Однако 16-битные регистры могут увеличиваться и уменьшаться с помощью отдельных инструкций, а несколько инструкций выполняют автоматическое увеличение и уменьшение, как LDA. (загрузка вперед) и STXD (сохранение через X и уменьшение). Для сравнения 16-битных регистров и значений также потребуется использовать регистр D в качестве посредника, используя несколько инструкций для выполнения операций.

Важной особенностью 1802 является конструкция из шестнадцати регистров по 16 бит каждый. Используя инструкцию SEP, вы можете выбрать любой из 16 регистров в качестве счетчик команд; с использованием СЕКС инструкции, вы можете выбрать любой из 16-битных регистров в качестве индексный регистр.[41] Регистр R0 имеет специальное использование для хранения адреса памяти для встроенного DMA контроллер. Регистр R1 используется в качестве счетчика программ для обработчика прерывания.[42]

Процессор имеет пять специальных Ввод / вывод линий. Есть единственный выход Q, который можно установить с помощью инструкции SEQ и сбросить с помощью инструкции REQ. Есть четыре внешних входа однобитовых флагов, EF1, EF2, EF3 и EF4, и есть восемь специальных инструкций ветвления для условного ветвления в зависимости от состояния этих входных линий. Есть семь команд входного и семь выходных портов, которые используют регистр RX и D-аккумулятор.

Линии EF и Q обычно использовались для нескольких интерфейсов на любительских компьютерах на базе 1802 года из-за удобного и простого обращения с линиями. Для линейки Q было типично управлять статусом ВЕЛ, а кассета интерфейс, RS-232 интерфейс и динамик. Это означало, что пользователь действительно мог слышать передаваемые данные RS-232 и кассеты (если не был реализован регулятор громкости). Обычно линия EF4 подключается к кнопке мгновенного действия INPUT на COSMAC Elf. Другие системы могут использовать одну из других линий.

Есть и другие регистры и флаги специального использования, некоторые внутренние, а некоторые используемые программно: 4-битные N, P, X и I; 8-битный T; и 1-битный IE.

Разветвление

В 1802 есть три типа безусловного и условного ветвления: короткое и длинное, а также пропуски.

Короткие ответвления представляют собой 2-байтовые инструкции и используют 256-байтовый диапазон, однобайтовый адрес, абсолютную адресацию страницы в диапазоне от 0 до 255 (шестнадцатеричный FF). Относительного ветвления нет. Короткая ветвь всегда перескакивает по странице, содержащей байт адреса.[43]

Длинные ветви используют полную 16-битную адресацию для поддержки адресного пространства памяти 64 КБ и являются единственными 3-байтовыми инструкциями.

Инструкции пропуска увеличивают ПК на один для безусловного короткого пропуска или на два для длинных пропусков. Только длинный пропуск имеет условное ветвление.

Вызов подпрограмм

У процессора нет стандартного адреса подпрограммы CALL и инструкций RET, хотя их можно смоделировать. Дизайн с 16 регистрами делает возможными некоторые интересные механизмы вызова и возврата подпрограмм, хотя они лучше подходят для небольших программ, чем для программирования общего назначения.

Несколько часто используемых подпрограмм можно быстро вызвать, сохранив их адрес в одном из 16 регистров; однако вызываемая подпрограмма должна знать (жестко запрограммировать), какой регистр вызывающего ПК должен выполнять команду «возврата». Инструкция SEP используется для вызова подпрограммы, на которую указывает один из 16-битных регистров, а другой SEP - для возврата вызывающей стороне (SEP означает Установить счетчик программ, и выбирает, какой из 16 регистров будет использоваться в качестве счетчика программ с этого момента). Перед возвратом подпрограммы она переходит к месту, непосредственно предшествующему ее точке входа, так что после того, как инструкция SEP «return» вернет управление вызывающей стороне, регистр будет указывать на правильное значение для следующего использования. (процессор всегда увеличивает ПК после обращения и использования (получение следующей инструкции для выполнения), поэтому этот метод работает, как указано)

Интересным вариантом этой схемы является наличие двух или более подпрограмм в кольце, чтобы они вызывались в циклическом порядке. На ранних компьютерах для любителей такие приемы и методы обычно использовались в прерывании горизонтального обновления, чтобы перепрограммировать адрес строки развертки так, чтобы каждая строка развернулась четыре раза для видеоконтроллера.

Одна хорошо известная и часто используемая процедура известна как SCRT (стандартная техника вызова и возврата), которая позволяет вызывать и возвращать подпрограммы общего назначения, включая передачу параметров «в строке» и вложенные подпрограммы с использованием стека. Хотя для этого метода может использоваться любой из доступных регистров, по желанию программиста, многие используют процедуру, предоставленную RCA в Руководстве пользователя CDP1802, где рекомендуется использовать регистр R2 = указатель стека, R3 = общий счетчик программы (ПК), R4 = вызов, R5 = возврат, R6 = указатель пройденных аргументов (неразрушающий). Несмотря на то, что эти вспомогательные подпрограммы малы, их использование приводит к увеличению скорости выполнения. (в отличие от того, что произошло бы, если бы фактические инструкции CALL и RET были частью конструкции микропроцессора). Эта настройка позволяет использовать R0 для DMA, а R1 - для прерываний, при желании, позволяя R7 через RF (шестнадцатеричный) для общего использование программы.

Режимы адресации

Благодаря 16-битной адресной шине и 8-битной шине данных ширина шестнадцати регистров общего назначения составляет 16 бит, а D-регистр накопителя имеет ширину только 8 бит. Таким образом, аккумулятор обычно является узким местом. Передача содержимого одного регистра в другой включает четыре инструкции (одна Get и одна Put для байта HI регистра и аналогичная пара для байта LO: GHI R1; PHI R2; GLO R1; PLO R2). Точно так же загрузка новой константы в регистр (например, нового адреса для перехода к подпрограмме или адреса переменной данных) также включает четыре инструкции (две немедленной загрузки, LDI, инструкции, по одной для каждой половины константы, каждая один, за которым следует инструкция Put в регистр, PHI и PLO).

Два режима адресации Косвенный регистр, и Косвенный регистр с автоинкрементом тогда достаточно эффективны для выполнения 8-битных операций с данными в аккумуляторе. Однако других режимов адресации нет. Таким образом прямая адресация режим должен быть эмулирован с использованием четырех инструкций, упомянутых ранее, для загрузки адреса в резервный регистр; за которым следует инструкция по выбору этого регистра в качестве индексного регистра; за которым, наконец, следует намеченная операция с переменной данных, на которую указывает этот адрес.

DMA и режим загрузки

CDP1802 имеет встроенный DMA контроллер, имеющий две линии запроса DMA для операций ввода и вывода DMA. R0 используется как указатель адреса DMA.

Контроллер DMA также обеспечивает специальный «режим загрузки», который позволяет загружать память, пока активны входы CLEAR и WAIT процессора. Это позволяет загружать программу без необходимости в загрузчике начальной загрузки на основе ПЗУ. Это использовалось микрокомпьютером COSMAC Elf и его преемниками для загрузки программы с тумблеров или шестнадцатеричной клавиатуры без необходимого программного обеспечения и минимального оборудования.

Время обучения

Цикл часов низкая эффективность по сравнению с большинством 8-битных микропроцессоров. Восемь тактовых циклов составляют один машинный цикл. Для выполнения большинства инструкций требуется два машинных цикла (16 тактовых циклов); остальные инструкции занимают три машинных цикла (24 такта). Для сравнения: Технология MOS 6502 для выполнения инструкции требуется от двух до семи тактов, а Intel 8080 занимает от четырех до 18 тактов.

Поддержка чипов

Графика

В начале 1802 года на базе микрокомпьютеров компаньон графика Контроллер видеодисплея чип RCA CDP1861 (для NTSC формат видео, вариант CDP1864 для PAL ), использовал встроенный DMA-контроллер для отображения черно-белого растровый графика на стандартных экранах телевизоров. Модель 1861 года также была известна как графическая система Pixie.

Хотя более быстрые версии 1802 могли работать на частоте 4–5 МГц (при 5 В; он был быстрее (6,4 МГц) при 10 В), обычно он работал на частоте 3,58 МГц, деленной на 2 (1,79 МГц), чтобы удовлетворить требованиям чип 1861, который давал скорость немногим более 100000 инструкций в секунду, хотя некоторые работали на других скоростях, таких как ~ 2,8 МГц Comx или 5 МГц Pecom. В COSMAC VIP, который интегрировал видеочип с процессором в качестве единого специализированного компьютера (а не в качестве дополнения к набору для любителей), в частности, 1802 работал намного медленнее, синхронизируя его с 1861 - нестандартным 1,76064 МГц, как рекомендовано в справочном листе технических характеристик Pixie.[d]

Микросхема генератора цвета CDP1862, сопутствующий чип 1861 года, может использоваться для создания цветной графики. Некоторые компьютерные системы, например Pecom 64, использовал VIS (систему видеоинтерфейса), состоящую из сопутствующих ИС CDP1869 и CDP1870, для получения цветной графики с явно более высоким разрешением, сопоставимым с другими 8-битными системами 1980-х годов.

Примеры кода

Этот пример фрагмента кода представляет собой диагностическую процедуру, которая проверяет ALU (Арифметико-логическая единица) Операции.[44]

.. ТЕСТ ALU OPS0000 90 GHI 0 .. НАСТРОЙКА R60001 B6 PHI 60002 F829 LDI DOIT .. ДЛЯ ВВОДА OPCODE0004 A6 PLO 60005 E0 SEX 0 .. (X = 0 УЖЕ) 0006 6400 OUT 4,00 .. СООБЩЕНИЕ НАС READY0008 E6 СЕКС 6 ..ТЕПЕРЬ X = 60009 3F09 BN4 * .. ПОДОЖДИТЕ IT000B 6C INP 4 .. ОК, ПОЛУЧИТЕ IT000C 64 OUT 4 .. И ЭХО ДЛЯ ОТОБРАЖЕНИЯ 000D 370D B4 * .. ПОДОЖДИТЕ ВЫПУСКА000F F860 LDI # 60 .. СЕЙЧАС ПОДГОТОВЬТЕСЬ ДЛЯ0011 A6 PLO 6 .. ПЕРВАЯ ОПЕРАНД0012 E0 СЕКС 0 .. СКАЗАТЬ SO0013 6401 ВЫХОД 4,010015 3F15 BN4 * 0017 E6 СЕКС 6 .. ПРИНИМАЕМ И ECHO0018 6C INP 4 .. (TO 0060) 0019 64 ВЫХОД 4 .. (ТАКЖЕ ПРИЛОЖЕНИЕ R6 ) 001A 371A B4 * 001C E0 SEX 0 .. DITTO SECOND OPERAND001D 6402 OUT 4,02001F E6 SEX 60020 3F20 LOOP: BN4 * .. WAIT FOR IT0022 6C INP 4 .. GET IT (ПРИМЕЧАНИЕ: X = 6) 0023 64 OUT 4 .. ECHO IT0024 3724 B4 * .. WAIT FOR RELEASE0026 26 DEC 6 .. BACK UP R6 TO 00600027 26 DEC 60028 46 LDA 6 .. GET 1ST OPERAND TO D0029 C4 DOIT: NOP .. DO OPERATION002A C4 NOP .. (SPARE) 002B 26 ДЕК 6 .. НАЗАД НА 006000 2C 56 STR 6 .. OUTPUT RESULT002D 64 OUT 4 .. (X = 6 STILL) 002E 7A REQ .. ВЫКЛЮЧИТЬ Q002F CA0020 LBNZ LOOP .. ТО ЕСЛИ НУЛЬ, 0032 7B SEQ .. ВКЛЮЧИТЕ ЕГО СНОВА 0033 3020 BR LOOP .. ПОВТОРИТЬ В ЛЮБОМ СЛУЧАЕ

Примечание: Вышеупомянутая процедура предполагает, что микропроцессор CDP1802 находится в состоянии начального сброса (или что он был установлен как таковой до выполнения этого кода). Следовательно, и программный счетчик (PC), и «указатель» косвенного регистра X установлены на 16-битный регистр R0. Вот почему вы можете вывести немедленное значение, как в примере «OUT 4,00», потому что PC и X указывают на R0. PC увеличивается после того, как байт инструкции кода операции извлекается из памяти, поэтому он указывает на следующий адрес при выполнении OUT 4. Следовательно, он выводит значение в памяти, на которое указывает RX = R0, который является следующим непосредственным байтом. Команда OUT также увеличивает регистр X, который является R0, который также является ПК, поэтому она выводит значение, которое следует сразу же после OUT, и продолжает выполнение программы по адресу следующей инструкции после непосредственного значения. Вот почему вы видите, что процедура устанавливает X (SEX) для регистрации R6 и R0 по мере необходимости. Также обратите внимание, что, хотя код операции OUT увеличивает регистр RX, для облегчения вывода раздела памяти («буфер») INP этого не делает. Он сохраняет значение по адресу, на который указывает RX, и в 8-битном байтовом аккумуляторе данных D, но RX не изменяется.

Подпрограмма также предполагает, что OUT 4 будет отображать значение на 8-битном светодиодном или 2-значном шестнадцатеричном дисплее системы ЦП, а IN 4 получает значение от восьми тумблеров (или, возможно, шестнадцатеричной клавиатуры). Код операции BN4 (цикл; * = 'этот адрес'), «переход, если однобитовая входная строка EF4 имеет значение lo», используется для проверки того, нажата ли мгновенная кнопка «Ввод». Цикл кода операции B4 ('if hi') ожидает отпускания кнопки. SEQ и REQ включают и выключают одиночную линию Q, которая обычно присоединяется к светодиоду.

1802 является «байтовой машиной», но имеет 16 16-разрядных регистров R0-RF (иногда обозначаемых как 0-F без префикса «R»). Чтобы иметь дело с 16-битными данными регистров, программист должен получать и помещать значения Hi или Lo регистров, используя D-аккумулятор в качестве посредника. Эти старший и младший байты регистров иногда обозначаются как Rn.0 (lo) и Rn.1 (hi). Короткие ветви - это двухбайтовые коды операций с абсолютной адресацией страницы и 256-байтовой границей адреса. Длинные ветки - это 3-байтовые коды операций с полным 16-разрядным адресным ветвлением.

Эта информация должна сделать процедуру более понятной для любого компьютерного программиста, который достаточно осведомлен, чтобы читать «псевдокод», и минимально знаком с программированием на ассемблере и машинном языке.

Примечания

  1. ^ Точная дата варьируется от ссылки, как и в случае с большинством дат, связанных с COSMAC. Эдвардс говорит об этом в 1969 году:[8] в то время как большинство других говорят, что здесь используется дата 1970 год.
  2. ^ Это был годовой обзор операций за 1973 год, опубликованный где-то в 1974 году.[9]
  3. ^ Точные даты отбора проб и общего выпуска различных устройств COSMAC остаются неточными. Херб Джонсон составил обширный список отчетов RCA, которые составляют основу дат в этой статье.[10]
  4. ^ Однако, учитывая возраст машины, это может быть связано с тем, что более высокие классы скорости еще не были разработаны, а это означает, что процессор был рассчитан только на максимум 3,2 или, возможно, даже всего 2,5 МГц. Несмотря на то, что это крайний случай, машина не будет единственной, кто будет работать с процессором значительно ниже его номинальной скорости, чтобы сэкономить средства и сложность в системе синхронизации, и простая работа на 3,52 МГц представляла бы рискованные 10%, или даже неустойчиво экстремальный 41% разгон.

Рекомендации

Цитаты

  1. ^ а б c d Касс 2018.
  2. ^ "RCA COSMAC 1802". Страница коллекционера антикварных фишек. AntiqueTech.com. 21 апреля 2009 г. Архивировано с оригинал 2 января 2013 г.. Получено 27 декабря 2010.
  3. ^ "Джозеф Вайсбекер". Vintage-Computer.com. 2010-02-08. Получено 2010-12-27.
  4. ^ "Джозеф А. Вайсбекер (1932 - 1990)". CosmacElf.com. Получено 2010-12-27.
  5. ^ "Отчет об исследованиях лабораторий RCA 1973" (PDF). РетроТехнологии. RCA. Получено 24 мая 2016.
  6. ^ CDP1802A
  7. ^ Вайсбекер 1974, п. 41.
  8. ^ а б c d е ж грамм час я j Эдвардс 2017.
  9. ^ а б Лаборатория 1973, п. 152.
  10. ^ Джонсон, Херб (11 декабря 2018 г.). Даты "COSMAC 1801, 1802""".
  11. ^ "Набор инструкций 6502". масса: werk.
  12. ^ Руск, Дэйв. "Cybervision 2001, 3001 и 4001". COSMAC Elf. COSMACELF.COM. Получено 30 июн 2016.
  13. ^ "Реклама журнала Wireless World на странице 22" (PDF). История американского радио. Май 1981 г.. Получено 21 янв 2017.
  14. ^ «Отчет об оборудовании - микрокомпьютер Infinite UC1800» (PDF). ClassicCmp.org - Классические вычисления. Журнал Радиоэлектроника. Август 1977 г.. Получено 22 января 2017.
  15. ^ Хаберхерн, Уильям (февраль 1977 г.). "Статья журнала Kilobaud, стр. 90". Archive.org. Уэйн Грин. Получено 22 января 2017.
  16. ^ Харт, Ли. "Компьютер с членской карточкой 1802 года". Домашняя страница Ли Харта. Ли Харт. Получено 22 мая 2016.
  17. ^ "Вещи свободного времени Эльф 2000 (Эльф 2K)".
  18. ^ «Пять поколений влагомеров Sinar». Получено 22 мая 2016.
  19. ^ «Инфорсель». Получено 22 мая 2016.
  20. ^ Джонсон, Герберт Р. (22 июня 2016 г.). "RCA / Weisbecker" System 00 "иначе" FRED"". Ретротехнология. Получено 23 июн 2016.
  21. ^ "Система управления двигателем Chrysler Lean Burn". Вся информация о Mopar Chrysler. AllPar.com. Получено 23 июн 2016.
  22. ^ Доннелли, Уильям (7 июля 2016 г.). "MDCCCII (1802) | Интеграция продуктов: коммерческие и научные приложения". COSMAC 1802 CPU RetroComputing Extravaganza. Уильям Доннелли. Получено 7 июля 2016.
  23. ^ Dingwall, A .; Stricker, R .; Зиннигер, Дж. (Октябрь 1977 г.). «Высокоскоростной микропроцессор CMOS C2L большой емкости». Журнал IEEE по твердотельным схемам. IEEE. 12 (5): 457–462. Дои:10.1109 / ISSCC.1977.1155726.
  24. ^ "Семейство радиационно-стойких массивных КМОП-микропроцессоров Si-Gate" (PDF). IAEA.org. IAEA.org. Получено 4 июн 2016.
  25. ^ Гюльцов, Питер. "Нет RISC, нет удовольствия!". AmSat Германия.
  26. ^ Томайко, Джеймс (апрель 1987 г.). «Компьютеры в космическом полете: опыт НАСА». НАСА. Получено 6 февраля, 2010.
  27. ^ http://www2.jpl.nasa.gov/magellan/guide4.html#4.11 Руководство исследователя Магеллана Венеры, Глава 4 - Космический корабль Магеллана - Вычисления и программное обеспечение
  28. ^ "RCA COSMAC VIP". Веб-сайт устаревших технологий. Получено 31 января, 2010.
  29. ^ http://www.amsat.org/amsat-new/AboutAmsat/amsat_history.php История AMSAT
  30. ^ Афшари А. (январь 1993 г.). "Широкоугольная / планетарная камера космического телескопа Хаббл" (PDF). Shutterbug. Архивировано из оригинал (PDF) 6 октября 2016 г.
  31. ^ «Программное обеспечение членской карты».
  32. ^ "Itty Bitty Computers & TinyBasic".
  33. ^ «Текущее состояние компилятора HAL / S на компьютере Modcomp Classic 7870» (PDF).
  34. ^ MASCOT (Астрономический спектрометр / камера MIT для оптических телескопов). Январь 1980 г.
  35. ^ Бейкер, Скотт (2016). "ЦП 1802, закодированный в VHDL". Скотт Л. Бейкер Github. Скотт Бейкер. Получено 24 июля 2016.
  36. ^ Смит, Эрик (2009). "cosmac - функциональный эквивалент ядра процессора RCA COSMAC CDP1802 в VHDL". Эрик Смит Github. Эрик Смит. Получено 9 июля 2019.
  37. ^ Бирюзовый, Стив (2016). «Ядро VHDL 1802 с TinyBASIC для платы Lattice MachXO2 Pico». Стив Тил на Github. Стив Тил. Получено 9 июля 2019.
  38. ^ Россин, Тед (2011). "Клон эльфа". Домашняя страница Теда Россина. Тед Россин. Получено 24 июля 2016.
  39. ^ Доннелли, Уильям (2011). "Симулятор COSMAC Elf-ish CDP1802 на JavaScript". Домашняя страница Donnelly-House. Уильям Доннелли. Получено 24 июля 2016.
  40. ^ Швец, Геннадий (2 октября 2016 г.). «Семейство микропроцессоров RCA 1802 (CDP1802)». CPU-мир. Геннадий Швец. Получено 17 октября 2016.
  41. ^ "Что значит СЕКС?". Получено 26 декабря, 2013.
  42. ^ Руководство пользователя микропроцессора COSMAC CDP1802
  43. ^ Руководство пользователя микропроцессора COSMAC CDP1802
  44. ^ Питтман, Том (1980). "Краткий курс программирования". cosmacelf.com. Получено 20 мая 2017.

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

внешняя ссылка

Незначительные части этой статьи были изначально основаны на материалах из Бесплатный онлайн-словарь по вычислительной технике, который лицензированный под GFDL.