Этот микропроцессорный комплект - один из первых в мире, выполненных по технологии КМОП. Само название COSMAC, которое использовалось фирмой-разработчиком параллельно с обычным, буквенно-цифровым, наименованием этого комплекта, является ничем иным, как сокращением от Complementary Silicon Metal-oxide Conductor. Это название технологии, более известной в русском языке как КМОП. :)))
Состав комплекта
Периферия
История и особенности
Структурная схема и описание процессора CDP1802
Пример системы на основе CDP1802
Применение комплекта
Центральный элемент комплекта - 8-разрядный микропроцессор CDP1802, представленный компанией Radio Corporation of America (RCA) весной 1976 года. В дальнейшем он выпускался компанией Harris, а в настоящее время Renesas Electronics Corporation. Да-да - один из первых КМОП-микропроцессоров выпускается и по сей день, уже сорок с лишним лет!
The 1802 in Microcomputer History - англоязычный сайт, посвященный этому процессору.
Помимо него в комплект входили:
Главным разработчиком процессора был Джо Уэйсбекер (Joe Weisbecker), командой разработчиков руководил Джерри Герцог (Jerry Herzog). Процессор являлся однокристальной реализацией более раннего двухкристального процессора (разработка 1975 году) с рядом дополнений и сохранением обратной совместимости.
Архитектура процессора существенно отличалась от большинства других 8-разрядных процессоров.
Статический КМОП-дизайн, не имеющий минимального значения тактовой частоты,
позволял процессору работать на очень низких частотах с очень низким энергопотреблением.
В отличие от других однокристальных 8-разрядных микропроцессоров (например, i8080
и MC6800), CDP1802 работал под управлением однобайтных команд (лишь две команды из списка
имели длину 2 байт) при сохранении возможности адресации к памяти объемом до 64 К. Этот
процессор содержал в себе схему управления как внутренними операциями, так и системными - по обмену данными с памятью и внешними устройствами. Внешняя шина адреса 8-разрядная,
мультиплексированная.
По сравнению с большинством других процессоров аналогичного класса, CDP1802 имел невысокое быстродействие. Один машинный цикл выполнялся за восемь тактов; большинство инструкций состояло из двух машинных циклов. При тактовой частоте 1,7 МГц (версия CDP1802CE) среднее быстродействие составляло около 106000 инструкций в секунду. Позднее были выпущены две модификации процессора, с увеличенной максимальной тактовой частотой — CDP1802ACE (3,2 МГц) и CDP1802BCE (5 МГц).
Все внутренние структурные устройства микропроцессора подключены к одной 8-разрядной двунаправленной шине данных, которая также служит магистралью обмена данными с памятью и внешними устройствами. Адресация ячеек памяти, внешней по отношению к процессору, осуществляется с помощью 16-разрядного адресного регистра RA; старший и младший байты его содержимого последовательно выдаются на 8-разрядную адресную шину. Внешние устройства прямо адресуются с помощью трех линий N0, N1, N2. Если число этих устройств не превышает трех, то возможна линейная выборка, при которой каждая линия выбирает соответствующее устройство. Если число устройств лежит в пределах от трех до восьми, то необходимо декодирование данных на линиях N0, N1, N2.
Вычислительные операции выполняет арифметико-логическое устройство (АЛУ), причем
один из операндов берется непосредственно с шины данных, а второй - из аккумулятора А; результат
операции засылается в А. Триггер L выполняет роль одноразрядного регистра (флага) переполнения и
используется для организации условных переходов по результатам выполнения операций.
Выполнение внутренних и внешних операций координирует устройство управления (УУ), вырабатывающее сигналы
управления в определенной временной последовательности под действием операционного кода, загружаемого
при считывании очередной команды в 4-разрядный регистр I. С УУ непосредственно связаны два триггера:
разрешения прерывания IE и последовательного вывода данных Q.
Специфика архитектуры CDP1802 связана с особенностями его регистровой памяти. Этот
микропроцессор содержит 16 регистров общего назначения с двойной длиной слова (т. е. 16-разрядных),
каждый из которых: а) может служить источником данных при загрузке адреса; б) инкрементироваться или
декрементироваться при выполнении соответствующих команд; в) служить источником данных, выдаваемых побайтно на шину данных.
Каждый из этих регистров можно использовать в качестве счетчика команд, указателя какого-либо сегмента памяти, базового или индексного регистров, указателя стека, а также для оперативного хранения операндов или результатов вычислений (2
байта на регистр). Регистр R0 имеет специальное назначение и хранит адрес, используемый встроенным простым контроллером ПДП.
Выборка одного из РОН осуществляется с помощью группы 4-разрядных программно-доступных регистров-указателей
P, N и X, первый из которых служит указателем регистров общего назначения, выполняющих функции счетчиков команд, второй — содержит код одного из РОН, выбор которого предписан командой, а третий - код РОН, содержащего адрес устройств при выполнении операции ввода-вывода и некоторых команд АЛУ. Применение специальных регистров-указателей малой разрядности, загружаемых непосредственно командой и позволяющих косвенно (через РОНы) адресоваться к памяти объемом до 64К является отличительной особенностью этого микропроцессора. Такая архитектура очень удобна при использовании процессора в качестве системного контроллера, так как обеспечивает при малой длине команд доступ к памяти большого объема, гибкость модификации адресов, легкость перехода от одной программы к другой при прерываниях. Для сохранения содержимого указателей Р и X в случае прерывания текущей программы предусмотрен 8-разрядный регистр временного хранения Т , который загружается содержимым регистров Р и X а по окончании программы обслуживания запроса содержимое пересылается обратно, восстанавливая исходное состояние указателей.
Список команд процессора COSMAC образует 91 команда; его можно разделить на следующие группы:
а) регистровые команды, посредством которых выполняются операции инкрементации или декрементации содержимого регистров или межрегистровых пересылок;
б) двухоперандные арифметические и логические команды, инициирующие выполнение операций над операндами, хранящимися как в регистрах процессора, так и в ячейках памяти;
в) команды управления и команды безусловного и условного ветвления и пропуска по таким условиям как равенство или неравенство нулю содержимого аккумулятора, L-регистра,
Q-регистра, логических уровней на четырех линиях флагов внешних устройств EF0-EF4;
г) команды обмена данными (ввода или вывода) между процессором и внешними устройствами.
Процессор не имеет обычных команд вызова и возврата из подпрограммы (CALL и RET) и поддержки стека. Возможность размещения указателя текущей команды в любом регистре позволяет реализовать необычные способы вызова подпрограмм, однако, в основном подходящих для программ небольшого размера. Адреса нескольких наиболее часто используемых подпрограмм могут размещаться в нескольких регистрах, а вызов и возврат из подпрограмм выполняться с помощью команды SEP (выбор одного из РОН в качестве указателя текущей команды). При выполнении команды SEP перед выбором нового регистра увеличивается адрес в текущем используемом регистре, что позволяет легко реализовать возврат в нужное место.
Работу системы управления синхронизирует внешний кварцевый резонатор, подключаемый к выводам CLOCK и ХТАL микропроцессора, а режим работы зависит от управляющих внешних потенциалов на линиях CLEAR и WAIT. Нормальный рабочий режим реализуется при высоких логических уровнях на этих линиях. Если потенциал понижен только на линии WAIT операции в процессоре прекращаются, и только на линии CLEAR процессор переводится в исходное состояние (т.е. в то, с которого может быть начато выполнение программы). Если потенциалы на обеих линиях соответствуют низким логическим уровням, процессор переходит в специфический режим загрузки программы, который позволяет аппаратными средствами побайтно загрузить ячейки памяти, начиная с нулевой, без помощи программы-загрузчика, хранящиеся в ПЗУ.
В процессе работы (режим с высокими уровнями на линиях CLEAR и WAIT) процессор может находиться в четырех состояниях: выборки команды, исполнения, прямого доступа к памяти и прерывания; пребывание в одном из них индицируется по потенциалам на линиях кода состояния SC0 и SC1, которые могут быть использованы при наладке системы или для управления в режимах прямого доступа и прерываний. Запросы на эти виды обслуживания процессор получает от внешних устройств по линиям DMA IN, DMA OUT (соответственно ввод и вывод данных в режиме прямого доступа к памяти) и INTERRUPT (прерывание).
Функции системного контролера УУ реализует, генерируя и засылая во внешние устройства системы сигналы синхронизации ТРА, ТРВ (хронирующие загрузку адресных регистров памяти, пересылки данных во внешних устройствах, установку и сброс флагов внешних устройств), управления записью MWR и управления чтением MRD.
Процессор имеет пять специальных линий ввода-вывода. Одна из линий, Q, является портом вывода, её состояние устанавливается командами SEQ и REQ. Остальные четыре линии являются портами ввода. Их состояние отображается флагами EF1, EF2, EF3, EF4, которые могут опрашиваться восемью специальными командами условного перехода. Эти линии ввода-вывода активно использовались в построенных на основе процессора системах. В частности, в любительских компьютерах линия Q могла одновременно управлять светодиодными индикатором статуса, выходом интерфейса магнитофона, интерфейсом RS-232 и громкоговорителем (при этом в таком включении громкоговоритель воспроизводил звук во время передачи данных).
(фото с сайта IC Die Photgraphy)
Структурная схема простейшей системы на базе CDP1802, содержащей, кроме процессора, ПЗУ объемом 512 ячеек, ОЗУ - 32 ячейки и два внешних устройства (одно из которых рассчитано на прием данных, а второе - на выборку):
Отметим основные особенности этой системы. Ячейки памяти адресуются с помощью адресной шины ША. Если общее число ячеек не превышает 256, то адрес определяется непосредственно данными на адресной шине. Если же число ячеек более 256, в устройстве памяти должен быть предусмотрен дополнительный регистр-защелка, загружаемый одним из байтов адресного слова, а второй байт берется непосредственно с ША. Внешние устройства адресуются линиями шины ШВВ (N0, N1, N2). Поскольку в рассматриваемом случае в систему входит всего два внешних устройства, использована линейная выборка: линия N0 адресует одно из устройств, a N1 - второе. Связь с внешними устройствами осуществляется с помощью интерфейсных БИС CDP1824, которые в зависимости от потенциала на входе MOD могут работать либо в режиме приема данных с шины ШД, либо в режиме выдачи данных на эту шину. Операции чтения и записи с ячейками ЗУ, как отмечалось выше, выполняются под действием системных сигналов управления ТРА, MRD и MWR, поступающих от процессора на одноименные входы БИС памяти. Для обмена данными с внешними устройствами используются сигналы ТРВ и MRD (независимо от вида обмена, который определяется потенциалом на входе MOD ). Интерфейсные БИС, кроме того, вырабатывают сигналы обмена на выходе SR. Этот сигнал на выходе приемной схемы сообщает внешнему устройству, что данные считаны (готовы), а на входе передающей — может быть использован как сигнал запроса прямого доступа в память со стороны внешнего устройства или прерывания текущей программы программой обслуживания ВУ.
При использовании для построения аппаратуры БИС семейства CDP1800, основанного на КМОП-технологии, достигались очень высокие эксплуатационные показатели аппаратуры: работоспособность в широком диапазоне изменения температуры от -55 до +125°С, напряжения питания от 3 до 12 В; расходуемая одной БИС мощность при частоте синхроимпульсов 6,4 МГц составляла всего около 50 мВт.
С самого начала выпуска CDP1802 также производилась версия, выполненная по технологии кремний-на-сапфире (КНС), обладающая высокой устойчивостью к радиации и электростатическим разрядам. Вместе с низким энергопотреблением эти свойства делали процессор хорошо подходящим для использования в космических аппаратах. На тот момент существовало очень немного процессоров, устойчивых к радиации.
Процессор CDP1802 был использован в космических аппаратах
Галилео, а также широко применялся в искусственных спутниках Земли.
На основе процессора 1802 было также разработано несколько ранних микрокомпьютеров.
Источники:
1. Горн Л.С., Хазанов Б.И.
Элементы микромощных цифровых устройств. - М., Атомиздат, 1980 (Серия "Библиотека по
ядерной электронике" №1).
2. RCA 1802 - Википедия.