stringtranslate.com

РКА 1802

Штамп 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 и использовал статическую логику . Это позволило ему работать на более низких настройках мощности и даже полностью остановиться; кроме того, он будет работать холоднее и не будет выделять столько тепла, как чипы NMOS. RCA также выпустила радиационно-стойкие версии, которые нашли применение в аэрокосмической области. [5] Они продолжают производиться по состоянию на 2022 год, [5] и по состоянию на 2008 год продолжают производиться компанией Renesas (ранее Intersil ). [6] [7]

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

История

ФРЕД

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

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

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

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

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

Выпускать

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

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

устройства КОСМАК

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

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

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

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

RCA также выпустила серию модульных компьютерных систем, основанных на форм-факторе RCA Microboard, начиная с первого выпуска 1802 года и вплоть до распада самой RCA. В основном они были нацелены на разработку промышленных приложений и систем и имели широкие возможности настройки. [12]

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

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

Приложения

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

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

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

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

Модель 1802 также использовалась в научных приборах и коммерческой продукции. [19] [20]

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

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

Радиационная закалка

Высокоскоростная версия 1802 была изготовлена ​​по полупроводниковой технологии «кремний на сапфире» (SOS), что придает ей определенную устойчивость к радиации и электростатическим разрядам (ESD). [24] Другая радиационно-стойкая версия 1802, разработанная совместно RCA и Sandia National Laboratories , была построена на объемном кремнии с использованием технологии C 2 L (Closed COS/MOS Logic). [25] [26] Наряду с чрезвычайно низким энергопотреблением, это делает чип хорошо подходящим для космических и военных приложений. [25] (Кроме того, в то время, когда был представлен 1802, на рынке было очень мало других радиационно-стойких микропроцессоров, если они вообще были доступны).

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

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

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

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

Ряд британских военных предметов 1980-х и 1990-х годов использовали модель 1802, в том числе:

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

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

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

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

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

Описание

Введение

Распиновка DIP-чипа процессора RCA CDP1802 COSMAC

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

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

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

Поскольку выполнение инструкций занимало 16 или 24 такта, 1802 не был особенно быстрым. Для сравнения: 6502 выполняет большую часть инструкций за 2–4 такта, причем самая длинная (официальная инструкция) [42] занимает 7 тактов. [43]

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

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

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

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

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

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

Существуют инструкции, которые позволяют устанавливать и читать значения в этих регистрах через D, раздельно обрабатывая верхние и нижние 8 бит одновременно. Существуют также инструкции для увеличения и уменьшения всего 16-битного значения, а несколько инструкций выполняют автоматическое увеличение и уменьшение, например LDA (увеличение загрузки) и STXD (сохранение через X и уменьшение). Для сравнения 16-битных регистров и значений также потребуется использовать регистр D в качестве посредника, используя несколько инструкций для выполнения операций.

Процессор имеет пять специальных линий ввода-вывода . Имеется один выход 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-битный Т; и 1-битный IE. В Интернете существует множество версий Таблицы Инструкций 1802 года, вот одна ссылка: https://www.atarimagazines.com/computeii/issue3/page52.php. В области файлов есть несколько таблиц для зарегистрированных пользователей. у членов онлайн-клуба 1802 на форуме https://groups.io/g/cosmacelf/files. Каждая инструкция представляет собой один байт из 8 бит. 4 бита слева, иногда называемые шестнадцатеричными цифрами старшего порядка, относятся к фактическому характеру инструкции, и эти 4 бита связаны с I-регистром. 4 бита справа, иногда называемые младшими шестнадцатеричными цифрами, относятся к рабочему регистру, из которого данные извлекаются или помещаются в него, и эти 4 бита связаны с регистром N. Когда программа выполняется, различные этапы работы и процессы временно сохраняются в регистре, на который указывает регистр N, подобно тому, что происходит, когда на листе бумаги выполняется длинное умножение или длинное деление. Конечно, иногда данные перемещаются в раздел оперативной памяти и из него, и по мере необходимости с течением времени выполняются различные ветки программы.

Ветвление

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

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

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

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

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

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

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

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

Одна хорошо известная и часто используемая процедура известна как SCRT (стандартная техника CALL и RETURN), которая позволяет выполнять вызов и возврат подпрограмм общего назначения, включая передачу параметров «в строке» и вложенные подпрограммы с использованием стека. Хотя для этого метода можно использовать любой из доступных регистров, по желанию программиста, многие используют процедуру, предоставленную 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, по одной для каждой половины константы, каждая за одной следует инструкция помещения в регистр, 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 для отображения черно-белой растровой графики на стандартных экранах телевизоров с высокой скоростью. до 64 пикселей по горизонтали и 128 пикселей по вертикали. Модель 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. [д]

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

Примеры кода

В этом небольшом примере кода тестируются контакты флага события (EF). Чтобы проверить контакты с первого по четвертый, измените B4 на B2, чтобы проверить контакт EF2.

ПЕТЛЯB4 EFbranch ; поскольку контакты EF имеют активный низкий уровень, это заставляет его вести себя как не-затвор.  ЗАПРОСБР ПЕТЛЯ EFветвьПОСЛЕДОВАТЕЛЬНОСТЬБР ПЕТЛЯ 

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

.. ТЕСТ АЛУ ОПС   0000 90 GHI 0 .. НАСТРОЙКА R6       0001 B6 ФИ 6   0002 F829 LDI DOIT .. ДЛЯ ВВОДА ОПКОДА        0004 А6 ПЛО 6   0005 E0 СЕКС 0 .. ( X = 0 УЖЕ )      0006 6400 ВЫХОД 4 , 00 .. ОБЪЯВЛЯЕМ, ЧТО НАС ГОТОВЫ       0008 E6 СЕКС 6 .. СЕЙЧАС X = 6      0009 3 F09 BN4 * .. ПОДОЖДИТЕ ЭТОГО       000 B 6 C INP 4 .. ОК , ПОЛУЧИТЕ       000 C 64 OUT 4 .. И ЭХО ДЛЯ ОТОБРАЖЕНИЯ        000 D 370 D B4 * .. ЖДАТЬ ВЫПУСКА       000 F F860 LDI # 60 .. ТЕПЕРЬ ГОТОВЬТЕСЬ К        0011 A6 PLO 6 .. ПЕРВЫЙ ОПЕРАНД      0012 E0 СЕКС 0 .. СКАЖИ ТАК      0013 6401 ВЫХ 4 , 01   0015 3 Ф15 БН4 *   0017 E6 СЕКС 6 .. ПРИНИМАЙ И ЭХО         0018 6 С ИНП 4 .. ( ТО 0060 )      0019 64 OUT 4 .. ( ТАКЖЕ ИНКРЕМЕНТ R6 )       001 А 371 А Б4 *   001 C E0 SEX 0 .. ТАКЖЕ ВТОРОЙ ОПЕРАНД       001 Д 6402 ВЫХ. 4 , 02   001 Ф E6 СЕКС 6   0020 3 F20 LOOP : BN4 * .. ПОДОЖДИТЕ ЭТОГО        0022 6 C INP 4 .. ПОЛУЧИТЕ ( ПРИМЕЧАНИЕ : X = 6 )        0023 64 ВЫХ 4 .. ЭХО ЭТО      0024 3724 B4 * .. ЖДАТЬ ВЫПУСКА       0026 26 ДЕКАБРЯ .. РЕЗЕРВНОЕ КОПИРОВАНИЕ R6 ДО 0060         0027 26 ДЕКАБРЯ   0028 46 LDA 6 .. ПОЛУЧИТЬ 1- Й ОПЕРАНД ДЛЯ D         0029 C4 DOIT : НЕТ .. ДЕЛАТЬ ОПЕРАЦИЮ      002 A C4 НОП .. ( ЗАПАСНОЙ )    002 B 26 ДЕКАБРЯ .. НАЗАД К 0060       002 C 56 STR 6 .. ВЫВОД РЕЗУЛЬТАТА      002 D 64 ВЫХ 4 .. ( X = 6 НЕПОДВИЖНО )      002 E 7 A ТРЕБОВАНИЕ .. ВЫКЛЮЧИТЬ Q      002 F CA0020 LBNZ LOOP .. ТО ЕСЛИ НОЛЬ ,       0032 7 B ПОСЛЕД .. ВКЛЮЧИТЕ СНОВА       0033 3020 BR LOOP .. ПОВТОРИТЬ В ЛЮБОМ СЛУЧАЕ        

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

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

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

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

Примечания

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

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

Цитаты

  1. ^ abcd Касс 2018.
  2. ^ "RCA COSMAC 1802" . Страница коллекционера антикварных фишек . AntiqueTech.com. 21 апреля 2009 г. Архивировано из оригинала 2 января 2013 г. Проверено 27 декабря 2010 г.
  3. ^ "Джозеф Вайсбекер". Винтаж-Компьютер.com. 08 февраля 2010 г. Проверено 27 декабря 2010 г.
  4. ^ "Джозеф А. Вайсбекер (1932–1990)" . CosmacElf.com . Проверено 27 декабря 2010 г.
  5. ^ аб Касс, Стивен. «Зал славы чипов: RCA CDP 1802 — IEEE Spectrum». Spectrum.ieee.org . ИИЭЭ . Проверено 19 июля 2023 г.
  6. ^ "CDP1802A". Архивировано из оригинала 9 марта 2012 г. Проверено 23 августа 2010 г.
  7. ^ «Высоконадежный 8-битный CMOS-микропроцессор CDP1802AC/3» . ООО «Интерсил Америкас». 17 октября 2008 г.
  8. ^ Вайсбекер 1974, с. 41.
  9. ^ abcdefghij Эдвардс 2017.
  10. ^ ab Lab 1973, с. 152.
  11. Джонсон, Херб (11 декабря 2018 г.). «COSMAC 1801, 1802 «даты»».
  12. ^ «RCA MCDS, Система разработки микроплат» . RetroTechnology.com. 28.10.2020 . Проверено 8 мая 2022 г.
  13. ^ Раске, Дэйв. «Кибервидение 2001, 3001 и 4001». КОСМАК Эльф . COSMACELF.COM . Проверено 30 июня 2016 г.
  14. ^ «Реклама журнала Wireless World на странице 22» (PDF) . История американского радио . Май 1981 года . Проверено 21 января 2017 г.
  15. ^ «Отчет об оборудовании — микрокомпьютер Infinite UC1800» (PDF) . ClassicCmp.org — Классические вычисления . Журнал «Радиоэлектроника». Август 1977 года . Проверено 22 января 2017 г.
  16. ^ Хаберхерн, Уильям (февраль 1977 г.). «Статья журнала Kilobaud, стр. 90». Архив.орг . Уэйн Грин . Проверено 22 января 2017 г.
  17. ^ Харт, Ли. «Компьютер с членскими карточками 1802 года». Домашняя страница Ли Харта . Ли Харт . Проверено 22 мая 2016 г.
  18. ^ "Вещицы свободного времени Elf ​​2000 (Elf 2K)" .
  19. ^ «Пять поколений измерителей влажности Sinar» . Проверено 22 мая 2016 г.
  20. ^ "Инфорсел" . Проверено 22 мая 2016 г.
  21. Джонсон, Герберт Р. (22 июня 2016 г.). «RCA/Weisbecker «Система 00», также известная как «ФРЕД»». Ретротехнологии . Проверено 23 июня 2016 г.
  22. ^ "Система управления двигателем Chrysler Lean Burn" . Вся информация о Mopar Chrysler . AllPar.com . Проверено 23 июня 2016 г.
  23. Доннелли, Уильям (7 июля 2016 г.). «MDCCCCII (1802) | Интеграция продуктов: коммерческие и научные приложения». ЦП COSMAC 1802. Феерия ретро-вычислений . Уильям Доннелли . Проверено 7 июля 2016 г.
  24. ^ Бриггс, Греция; Коннор, С.Дж.; Синнигер, Дж.О.; Стюарт, Р.Г. (август 1978 г.). «Микропроцессор КМОП-на-сапфире, 40 МГц». Транзакции IEEE на электронных устройствах . 25 (8): 952–959. дои : 10.1109/T-ED.1978.19207.
  25. ^ аб Дингуолл, А.; Стрикер, Р.; Синнигер, Дж. (октябрь 1977 г.). «Высокоскоростной объемный CMOS-микропроцессор C2L». Журнал IEEE твердотельных схем . IEEE. 12 (5): 457–462. дои : 10.1109/ISSCC.1977.1155726.
  26. ^ «Семейство радиационно-стойких объемных КМОП-микропроцессоров с Si-затвором» (PDF) . МАГАТЭ.орг . Проверено 4 июня 2016 г.>
  27. ^ Томайко, Джеймс (апрель 1987 г.). «Компьютеры в космических полетах: опыт НАСА». НАСА . Проверено 6 февраля 2010 г.
  28. ^ http://www2.jpl.nasa.gov/magellan/guide4.html#4.11 Руководство исследователя Венеры Магеллан, Глава 4 - Космический корабль Магеллан - Вычисления и программное обеспечение
  29. ^ "RCA COSMAC VIP" . Веб-сайт устаревших технологий . Проверено 31 января 2010 г.
  30. ^ http://www.amsat.org/amsat-new/AboutAmsat/amsat_history.php История AMSAT
  31. ^ Афшари, А. (январь 1993 г.). «Широкоугольная/планетарная камера космического телескопа Хаббл» (PDF) . Шаттербаг . Архивировано из оригинала (PDF) 6 октября 2016 г.
  32. Разбор устройства установки взрывателя Royal Ordnance L1A1 , получено 16 октября 2022 г.
  33. ^ «Программное обеспечение для членских карт» .
  34. ^ "Itty Bitty Computers и TinyBasic" .
  35. ^ «Текущее состояние компилятора HAL/S на компьютере Modcomp Classic 7870» (PDF) .
  36. ^ MASCOT (астрономический спектрометр MIT / камера для оптических телескопов). Январь 1980 года.
  37. ^ Бейкер, Скотт (2016). «ЦП 1802, закодированный на VHDL». Скотт Л. Бейкер Github . Скотт Бейкер . Проверено 24 июля 2016 г.
  38. ^ Смит, Эрик (2009). «cosmac — функциональное эквивалентное ядро ​​ЦП RCA COSMAC CDP1802 в VHDL». Эрик Смит на Github . Эрик Смит . Проверено 9 июля 2019 г.
  39. ^ Тил, Стив (2016). «Ядро VHDL 1802 с TinyBASIC для платы Lattice MachXO2 Pico». Стив Тил Github . Стив Тил . Проверено 9 июля 2019 г.
  40. ^ Россин, Тед (2011). «Эльфийский клон». Домашняя страница Теда Россина . Тед Россин . Проверено 24 июля 2016 г.
  41. ^ Доннелли, Уильям (2011). «Симулятор COSMAC Elf-ish CDP1802 на JavaScript». Домашняя страница Donnelly-House . Уильям Доннелли . Проверено 24 июля 2016 г.
  42. ^ Ландштейнер, масса:werk, Норберт (05.06.2021). «(Теперь давай!) 6502 «Незаконных» кодов операций раскрыты». Теперь давай, взрывай! — масса:werk/Блог . Проверено 2 февраля 2024 г.{{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  43. ^ «Набор инструкций 6502» . масса: верк .
  44. Швец, Геннадий (2 октября 2016 г.). «Семейство микропроцессоров RCA 1802 (CDP1802)». CPU-Мир . Геннадий Швец . Проверено 17 октября 2016 г.
  45. ^ "Что означает СЕКС?" . Проверено 26 декабря 2013 г.
  46. ^ ab Руководство пользователя микропроцессора CDP1802 COSMAC.
  47. ^ Питтман, Том (1980). «Краткий курс программирования». cosmacelf.com . Проверено 20 мая 2017 г.

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

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

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