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

COSMAC представляет собой 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] , который затем backronymed к «комплементарный-симметрии монолитно-массива компьютера» при обращении к процессору. RCA также производила радиационно-стойкие версии с использованием процесса кремний на сапфире , который нашел применение в аэрокосмической области. Они используются по сей день и продолжают производиться Renesas.(ранее Интерсил ). [6]

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

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

ФРЕД [ править ]

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

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

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

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

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

Выпуск [ править ]

Вайсбекер демонстрировал машину руководству RCA на протяжении всего этого периода, но поначалу это не вызвало особого интереса. Это произошло вскоре после того, как Дэвид Сарнофф ушел на пенсию и передал должность генерального директора своему сыну Роберту Сарноффу . Роберт был больше заинтересован в создании медиа-стороны компании, встречаясь со звездами звукозаписи, игнорируя RCA Laboratories, несмотря на ряд ведущих в отрасли разработок, происходящих там. Отчасти скептицизм, проявленный руководством, мог быть связан с недавней продажей компанией Sperry Rand своего бизнеса по производству мэйнфреймов с огромным количеством списаний . [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 . Инструкции по сборке были описаны в статье в журнале Popular Electronics в 1976 году, а расширенная версия с различными обновлениями - во второй статье в 1977 году. Уникальной особенностью ELF является то, что он не требовал постоянной памяти для чтения (ROM) для запуска, вместо этого использовалась система прямого доступа к памяти (DMA) процессора для считывания переключателей с передней панели непосредственно в память. [8]

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

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

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

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

Приложения [ править ]

Микрокомпьютерные системы [ править ]

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

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

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

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

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

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

Радиационное упрочнение [ править ]

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

Космические технологии и наука [ править ]

1802 был использован во многих космических аппаратов и космических научных программ, экспериментов, проектов и модулей , таких как космический корабль Galileo , [25] Magellan , [26] различные околоземной орбите [27] , а также спутники , несущие любительское радио. [28]

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

Языки программирования [ править ]

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

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

Эмуляторы и симуляторы [ править ]

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

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

Введение [ править ]

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

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

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

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

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

Обозначения суффиксов номеров деталей [ править ]

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

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

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

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

Важной особенностью 1802 является конструкция из шестнадцати регистров по 16 бит каждый. Используя инструкцию SEP, вы можете выбрать любой из 16 регистров в качестве счетчика программ ; используя инструкцию SEX , вы можете выбрать любой из 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 означает Set Program Counter., и выбирает, какой из 16 регистров будет использоваться в качестве счетчика программ с этого момента). Перед возвратом подпрограммы она переходит к месту, непосредственно предшествующему ее точке входа, так что после того, как инструкция SEP «return» вернет управление вызывающей стороне, регистр будет указывать на правильное значение для следующего использования. (процессор всегда увеличивает ПК после обращения и использования (получение следующей инструкции для выполнения), поэтому этот метод работает, как указано)

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

Одна хорошо известная и часто используемая процедура известна как SCRT (стандартная техника вызова и возврата), которая позволяет вызывать и возвращать подпрограммы общего назначения, включая передачу параметров «в строке» и вложенные подпрограммы с использованием стека. Хотя для этого метода может использоваться любой из доступных регистров, по желанию программиста, многие используют процедуру, предоставленную RCA в Руководстве пользователя CDP1802, где рекомендуется использовать регистр R2 = указатель стека, R3 = общий счетчик программ (ПК), R4 = вызов, R5 = возврат, R6 = указатель пройденных аргументов (неразрушающий). Несмотря на то, что эти вспомогательные подпрограммы малы, их использование приводит к увеличению скорости выполнения. (в отличие от того, что произошло бы, если бы фактические инструкции CALL и RET были частью микропроцессора 's design) Эта настройка позволяет использовать R0 для прямого доступа к памяти, а 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. ЦП обращается к памяти только во время определенных циклов многоступенчатого машинного цикла, который требует от 8 до 16 тактовых циклов. Внешнее оборудование могло читать или записывать данные в течение этих периодов, не прерывая работу процессора, общая концепция, известная как кража цикла .

R0 используется как указатель адреса DMA. Начальный адрес данных DMA будет помещен в R0, а затем на соответствующем выводе чтения или записи ЦП будет установлен низкий уровень. ЦП ответил на запрос DMA, увеличив значение в R0, так что следующий запрос автоматически сохраняется в следующей ячейке памяти. Таким образом, простым многократным запуском контактов DMA система будет проходить через всю память.

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

Время выполнения инструкций [ править ]

Эффективность тактового цикла низкая по сравнению с большинством 8-битных микропроцессоров. Восемь тактовых циклов составляют один машинный цикл. Для выполнения большинства инструкций требуется два машинных цикла (16 тактовых циклов); остальные инструкции занимают три машинных цикла (24 такта). Для сравнения, MOS Technology 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, который давал скорость немногим более 100 000 инструкций в секунду, хотя некоторые работали на других скоростях, таких как ~ 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 .. ОБЪЯВЛЕНИЕ ГОТОВА0008 E6 СЕКС 6 .. СЕЙЧАС X = 60009 3F09 BN4 * .. ПОДОЖДИТЕ000B 6C INP 4 .. ОК, ПОЛУЧИТЬ000C 64 OUT 4 .. И ЭХО ДЛЯ ОТОБРАЖЕНИЯ000D 370D B4 * .. ПОДОЖДИТЕ ВЫПУСКА000F F860 LDI # 60 .. ПОДГОТОВЬТЕСЬ К0011 A6 PLO 6 .. ПЕРВАЯ ОПЕРАНДА0012 E0 СЕКС 0 .. СКАЗАТЬ ТАК0013 6401 ВЫХ 4,010015 3F15 BN4 *0017 E6 СЕКС 6 .. ПРИНИМАЙТЕ И ЭХО0018 6C INP 4 .. (TO 0060)0019 64 ВЫХ 4 .. (ТАКЖЕ ДОПОЛНЕНИЕ R6)001A 371A B4 *001C E0 SEX 0 .. ТАКЖЕ ВТОРАЯ ОПЕРАНДА001D 6402 ВЫХ 4,02001F E6 СЕКС 60020 3F20 ПЕТЛЯ: BN4 * .. ПОДОЖДИТЕ0022 6C INP 4 .. ПОЛУЧИТЬ (ПРИМЕЧАНИЕ: X = 6)0023 64 OUT 4 .. ECHO IT0024 3724 B4 * .. ПОДОЖДИТЕ ВЫПУСКА0026 26 декабря 6 .. РЕЗЕРВНОЕ КОПИРОВАНИЕ R6 ДО 00600027 26 дек 60028 46 LDA 6 .. ПОЛУЧИТЬ ПЕРВЫЙ ОПЕРАНД В D0029 C4 DOIT: NOP .. DO OPERATION002A C4 NOP .. (ЗАПАСНОЙ)002B 26 ДЕКАБРЯ 6 .. НАЗАД НА 0060002C 56 STR 6 .. ВЫХОДНОЙ РЕЗУЛЬТАТ002D 64 ВЫХ 4 .. (X = 6 ВСЕ ЕЩЕ)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. ^ а б в г Касс 2018 .
  2. ^ "RCA COSMAC 1802" . Страница коллекционера антикварных фишек . AntiqueTech.com. 21 апреля 2009 года Архивировано из оригинала 2 -го января 2013 года . Проверено 27 декабря 2010 года .
  3. ^ "Джозеф Вайсбекер" . Vintage-Computer.com. 2010-02-08 . Проверено 27 декабря 2010 .
  4. ^ "Джозеф А. Вайсбекер (1932 - 1990)" . CosmacElf.com . Проверено 27 декабря 2010 .
  5. ^ "Отчет об исследовании 1973 лаборатории RCA" (PDF) . RetroTechnology . RCA . Дата обращения 24 мая 2016 .
  6. ^ CDP1802A
  7. ^ Weisbecker 1974 , стр. 41.
  8. ^ Б с д е е г ч я J Edwards 2017 .
  9. ^ a b Лаборатория 1973 , стр. 152.
  10. Рианна Джонсон, Херб (11 декабря 2018 г.). "COSMAC 1801, 1802" даты " " .
  11. ^ Руск, Дэйв. «Cybervision 2001, 3001 и 4001» . COSMAC Elf . COSMACELF.COM . Проверено 30 июня +2016 .
  12. ^ "Объявление журнала Wireless World на странице 22" (PDF) . История американского радио . Май 1981 . Дата обращения 21 января 2017 .
  13. ^ "Отчет об оборудовании - Бесконечный микрокомпьютер UC1800" (PDF) . ClassicCmp.org - Классические вычисления . Журнал Радиоэлектроника. Aug 1977 . Дата обращения 22 января 2017 .
  14. ^ Haberhern, Уильям (февраль 1977). "Статья журнала Kilobaud Pg 90" . Archive.org . Уэйн Грин . Дата обращения 22 января 2017 .
  15. ^ Харт, Ли. «Компьютер с членской карточкой 1802 года» . Домашняя страница Ли Харта . Ли Харт . Дата обращения 22 мая 2016 .
  16. ^ "Свободное время вещицы Elf 2000 (Elf 2K)" .
  17. ^ «Пять поколений измерителей влажности Sinar» . Дата обращения 22 мая 2016 .
  18. ^ "Inforcel" . Дата обращения 22 мая 2016 .
  19. Джонсон, Герберт Р. (22 июня 2016 г.). "RCA / Weisbecker "System 00" ака "FRED " " . Ретротехнология . Проверено 23 июня +2016 .
  20. ^ "Система управления двигателем Chrysler Lean Burn" . Вся информация Mopar Chrysler . AllPar.com . Проверено 23 июня +2016 .
  21. ^ Доннелли, Уильям (7 июля 2016 г.). "MDCCCII (1802) | Интеграция продуктов: коммерческие и научные приложения" . COSMAC 1802 CPU RetroComputing Extravaganza . Уильям Доннелли . Дата обращения 7 июля 2016 .
  22. ^ Dingwall, A .; Stricker, R .; Зиннигер, Дж. (Октябрь 1977 г.). «Высокоскоростной микропроцессор CMOS C2L большой емкости». Журнал IEEE по твердотельным схемам . IEEE. 12 (5): 457–462. DOI : 10.1109 / ISSCC.1977.1155726 .
  23. ^ "Семейство радиационно-устойчивых массивных Si-Gate CMOS микропроцессоров" (PDF) . IAEA.org . IAEA.org . Проверено 4 июня +2016 .
  24. ^ Gülzow, Питер. "Нет RISC, нет удовольствия!" . AmSat Германия .
  25. ^ Tomayko, Джеймс (апрель 1987). «Компьютеры в космическом полете: опыт НАСА» . НАСА . Проверено 6 февраля 2010 года .
  26. ^ http://www2.jpl.nasa.gov/magellan/guide4.html#4.11 Руководство исследователя Магеллана Венеры, Глава 4 - Космический корабль Магеллана - Вычисления и программное обеспечение
  27. ^ "RCA COSMAC VIP" . Веб-сайт устаревших технологий . Проверено 31 января 2010 года .
  28. ^ http://www.amsat.org/amsat-new/AboutAmsat/amsat_history.php История AMSAT
  29. ^ Афшари, A. (январь 1993). "Широкоугольная / планетарная камера космического телескопа Хаббл" (PDF) . Shutterbug . Архивировано из оригинального (PDF) 6 октября 2016 года.
  30. ^ «Программное обеспечение членской карты» .
  31. ^ "Itty Bitty Computers & TinyBasic" .
  32. ^ «Текущее состояние компилятора HAL / S на компьютере Modcomp Classic 7870» (PDF) .
  33. ^ MASCOT (Астрономический спектрометр / камера Массачусетского технологического института для оптических телескопов) . Январь 1980 г.
  34. ^ Бейкер, Скотт (2016). «ЦП 1802, закодированный в VHDL» . Скотт Л. Бейкер Github . Скотт Бейкер . Дата обращения 24 июля 2016 .
  35. ^ Смит, Эрик (2009). "cosmac - функциональный эквивалент ядра процессора RCA COSMAC CDP1802 в VHDL" . Эрик Смит Github . Эрик Смит . Дата обращения 9 июля 2019 .
  36. Перейти ↑ Teal, Steve (2016). «Ядро VHDL 1802 с TinyBASIC для платы Lattice MachXO2 Pico» . Стив Тил Гитхаб . Стив Тил . Дата обращения 9 июля 2019 .
  37. ^ Rossin, Ted (2011). «Клон эльфа» . Домашняя страница Теда Россина . Тед Россин . Дата обращения 24 июля 2016 .
  38. ^ Доннелли, Уильям (2011). "COSMAC Elf-ish CDP1802 Simulator на JavaScript" . Домашняя страница Donnelly-House . Уильям Доннелли . Дата обращения 24 июля 2016 .
  39. ^ "6502 Набор инструкций" . масса: верк .
  40. Швец, Геннадий (2 октября 2016 г.). «Семейство микропроцессоров RCA 1802 (CDP1802)» . CPU-мир . Геннадий Швец . Дата обращения 17 октября 2016 .
  41. ^ "Что означает СЕКС?" . Проверено 26 декабря 2013 года .
  42. ^ Руководство пользователя микропроцессора COSMAC CDP1802
  43. ^ Руководство пользователя микропроцессора COSMAC CDP1802
  44. ^ Питтман, Том (1980). «Краткий курс программирования» . cosmacelf.com . Проверено 20 мая 2017 года .

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

  • Research Report 1973 (PDF) (Технический отчет). RCA Laboratories. 1973 г.
  • Кэсс, Стивен (2 июля 2018 г.). "Зал славы чипов: RCA CDP 1802" . IEEE Spectrum .
  • Эдвардс, Бендж (27.10.2017). "Вновь обнаруживая потерянную первую женщину-дизайнер видеоигр в истории" . Быстрая компания . Проверено 27 октября 2017 .
  • Вайсбекер, Джо (март 1974 г.). «Упрощенная архитектура микрокомпьютера». Компьютер IEEE . 7 (3): 41–47. DOI : 10,1109 / MC.1974.6323475 .

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

  • CDP1802A / AC / BC datasheet, 1997 ( PDF )
  • CDP1802AC / 3 даташит, 2008 ( PDF )
  • COSMAC ELF сайт
  • Краткий курс программирования (текст 1980 года на ассемблере RCA 1802)
  • Матрица высокого разрешения

Незначительные части этой статьи были первоначально основаны на материалах из Free On-line Dictionary of Computing , который находится под лицензией GFDL .