Jump to content

Общий инструмент CP1600

Игровая консоль Intellivision была единственным широко распространенным применением семейства CP1600.

CP1600 микропроцессор 16-разрядный , созданный в сотрудничестве компаний General Instrument и Honeywell и представленный в феврале 1975 года. [1] [2] Это один из первых однокристальных 16-битных процессоров. Общий дизайн очень похож на PDP-11 .

Honeywell использовала CP1600 в ряде компьютеров управления технологическими процессами и связанных с ними системах, но наиболее широкое применение получила версия CP1610 в Intellivision игровой консоли . Система не нашла другого применения из-за маркетинговой философии General Instrument, заключающейся в поиске клиентов только с помощью очень крупных заказов и игнорировании более мелких клиентов. Они также не стремились к использованию второго источника , что на заре разработки микропроцессоров было требованием для большинства потенциальных клиентов. [3]

Описание

[ редактировать ]

Физическая реализация

[ редактировать ]
Распиновка CP1600

CP1600 был реализован в режиме расширения nMOS и требовал источников питания +12, +5, -3 В; Соединения ввода-вывода, за исключением часов, были совместимы с TTL (5 В). [а] Каждое микросостояние или цикл процессора использует четыре внутренних временных интервала, генерируемых двумя непересекающимися тактовыми импульсами. Двухфазные часы с частотой 3,3 МГц производят микроцикл длительностью 600 наносекунд. Двухфазные часы с частотой 5 МГц производят микроцикл длительностью 400 наносекунд. Из-за требований к напряжению тактовых сигналов их приходилось генерировать с помощью внешних схем, что было обычным явлением в ту эпоху проектирования микропроцессоров. [3]

Чтобы разместить 16-битный процессор в 40-контактном двухрядном корпусе (DIP), CP1600 мультиплексировал свои выводы данных и адреса. Это позволило использовать набор из 16 контактов как для выбора адреса, так и для чтения и записи данных, но для этого требовалось два цикла шины. Это также усложняло общую компоновку машины, поскольку на шине памяти требовались буферы для фиксации адреса, пока процессор переключал выводы в режим данных. Интерфейс системы также был сложным и требовал трех контактов. BDIR, BC1 и BC2, который нужно было декодировать, чтобы понять, в каком состоянии находится шина памяти. [4]

Относительно необычной особенностью CP1600 была концепция «внешнего ответвления». Это было реализовано как четыре контакта на чипе. EBCA0 через EBCA3, который содержал младшие четыре бита BEXT код операции инструкции. При выполнении этой инструкции контакты активируются и используются для указания того, какая из шестнадцати внешних систем должна быть проверена. Эти устройства затем ответят на запрос, установив EBCI контакт, и состояние этого контакта будет затем определять, была ли выбрана ветвь или нет. [4] Это можно использовать, например, для проверки наличия на внешнем устройстве входных данных, которые необходимо обработать; процессор может выразить значение «2» на EBCA чтобы попробовать устройство 2, позвоните в BEXT, и это устройство затем ответит, установив EBCI значение true, если были данные, заставляя процессор переходить к коду для чтения данных с этого устройства.

Это контрастирует с типичным решением для работы с внешними устройствами; В большинстве систем устройства вызывают прерывание , которое заставляет процессор вызывать специальный код, обработчик прерываний , который затем считывает дополнительные данные, чтобы определить, какое устройство вызвало прерывание. Эти дополнительные данные могут быть представлены с помощью выделенных контактов ЦП, но часто они представляются в виде значения на шине данных . Затем код обработчика прерываний решает, какой драйвер устройства вызвать для обработки данных. CP1600 может реализовать это с помощью меньшего количества инструкций; обработчик прерываний представляет собой просто серию BEXT инструкции, указывающие на связанные драйверы, которые он запускает по одному, пока соответствующее устройство не установит EBCI и автоматически вызывать ветвление кода.

В целом, реализация системы с использованием CP1600 часто требовала дополнительных вспомогательных микросхем и логики. Сюда входила система мультиплексирования шестнадцати сигналов в один вывод, если использовалось внешнее разветвление, а также преобразователь из трех бит в восемь строк, чтобы избежать необходимости декодировать сигналы состояния шины во внешних частях. [3]

Набор команд и регистры

[ редактировать ]
Регистры CP1600
1 5 1 4 1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (битовая позиция)
Основные регистры
Р0 R регистр 0/Накопление
Р1 Регистр 1 / Косвенный
Р2 Регистр 2 / Косвенный
Р3 Регистр 3 / Косвенный
Р4 Регистр 4/Автоинкремент
Р5 Регистр 5/Автоинкремент
Р6/СП Регистр 6 Указатель стека /
Р7 / ПК Регистр / Счетчик программ 7
Флаги состояния
 С С ОВ С Флаги статуса

Из 16 бит, доступных в коде операции инструкции , CP1600 использовал только 10. Остальные 6 бит были помечены как «Использование в будущем». [5] 10-битные инструкции означали, что код, хранящийся в типичном байтово-ориентированном ПЗУ, будет тратить шесть бит на инструкцию. В эпоху дорогой памяти это было серьезной проблемой. Чтобы решить эту проблему, General Instrument также выпустила специальные 10-битные ПЗУ, в которых эффективно хранились инструкции. Поскольку для данных и адресов по-прежнему требовались 16-битные значения, в 1600 была включена специальная инструкция SDBD, которая объединяла 16-битный аргумент из двух 10-битных операций чтения ПЗУ.

Похоже, что неиспользуемые 6 бит предназначались для использования с сопроцессорами, утверждая линию PCIT , которая останавливала ЦП до тех пор, пока она не будет освобождена. В ранней документации показаны два запланированных чипа этой серии: 1616, в который добавлен «Расширенный набор команд», и 1618 «Priority Expander». [6]

Система включала 87 основных инструкций. Инструкции могут состоять из одного-трех 16-битных слов в зависимости от используемого формата адресации. [4] CP1600 не поддерживал косвенную адресацию (смещения) память-память, а циклирование было реализовано с использованием специального сумматора, который выполнял изменения адресов в памяти за один такт. Арифметико -логическое устройство (АЛУ) имело ширину 16 бит и могло добавить два 16-битных внутренних регистра за 2,4 микросекунды, а память для добавления двух 16-битных чисел за 3,2 микросекунды. [7]

Как и PDP-11, CP1600 использовал восемь 16-битных регистров процессора «общего назначения» , хотя они не были по-настоящему универсальными, как в современных конструкциях. Только R0 не имел заранее определенного назначения и был описан как «основной аккумулятор». [8] От R1 до R3 можно использовать указатели данных, обычно используемые для адресации на основе регистров («подразумеваемая адресация»). R4 и R5 автоматически увеличивались после доступа, что делало их полезными для циклического перебора коллекций данных.

R6 был указателем стека , R7 — счетчиком программ. Поскольку оба этих регистра были видны программисту, их можно было использовать, среди прочего, для реализации нескольких стеков или поддержки более сложного ветвления. Неявных инструкций стека не было; когда R6 использовался в операции «чтения», он уменьшал адрес, а затем возвращал указанные данные, имитируя POP, и когда он использовался при «записи», он записывал затем пост-инкремент (например, R4/R5), имитируя PUSH.

ввод/вывод

[ редактировать ]

Как это было обычным для того времени, CP1600 использовал ввод-вывод с отображением в памяти , а не отдельные контакты ввода-вывода, как это было в системах Intel . Использование мультиплексированной шины и состояния шины с несколькими состояниями усложнило реализацию ввода-вывода, чем обычно в системах с отображением в памяти. Это означало, что реализации должны были использовать защелки или буферы, чтобы иметь возможность взаимодействовать с ЦП, когда он менял шину с указания адреса на данные. [8] Это отрицательно повлияло на производительность ввода-вывода и увеличило сложность устройств ввода-вывода.

Чтобы решить эту проблему, GI поставила серию выделенных микросхем ввода-вывода 164x, которые реализовали необходимую логику шины. В их число входили, например, контроллер клавиатуры 1641, контроллер кассеты 1643 и элемент управления дисплеем 1647. [6] 1640 Самым известным среди них является «Программируемый интерфейсный контроллер» , или PIC, который был разработан для совместной работы с CP1600 и выступал в качестве контроллера каналов для ЦП. Как и в других чипах серии 1640, PIC внутренне декодировал логику шины, но также добавлял очень простой процессор, который мог запускать свои собственные программы для выполнения ввода-вывода и прямого доступа к памяти . Например, можно отправить команду PIC на карте гибкого диска для чтения данных из заданного сектора на диске. Затем PIC считывал данные в свой собственный внутренний буфер, отслеживал неиспользованное время шины, когда все контакты состояния шины были равны нулю, а затем отправлял данные в основную память. [6]

Компания General Instrument предоставила кросс-ассемблеры и симуляторы/отладчики, совместимые с 16-разрядными или более крупными мини-компьютерами . [9] GI также предоставила автономную микрокомпьютерную систему на базе CP1600 в GIC1600. [10]

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

[ редактировать ]

CP1610, используемый в игровых консолях, таких как Champion 2711. [11] и, в первую очередь , Intellivision — совместимый член семейства микропроцессоров 1600. Он использует двухфазный тактовый сигнал с частотой 2 МГц, обеспечивающий такт процессора 1 микросекунду. CP1610 в NTSC Intellivisions использует двухфазный тактовый сигнал 1,7897725 МГц. Хотя пользователи CP1600 в роли традиционного компьютера были относительно редки, с 1980 года было произведено более 3 миллионов Intellivision, пока крах видеоигр в 1983 году не привел к закрытию производственных линий Intellivision в 1984 году. [12]

Производство CP1600 закончилось в 1985 году, когда General Instrument выделила свое подразделение микроэлектроники и создала Microchip Technology . К этому моменту было доступно несколько 32-битных моделей, таких как MC68000 , что ограничивало интерес к 16-битным моделям, таким как CP1600, а их основной существующий клиент, Intellivision, больше не производился. многих других продуктов В то же время истек срок службы , и их основным продуктом был PIC.

Примечания

[ редактировать ]
  1. ^ https://www.edn.com/general-instruments-microprocessor-aimed-at-minicomputer-market/
  2. ^ Белзер, Джек; Хольцман, Альберт Г.; Кент, Аллен (1978). Энциклопедия компьютерных наук и технологий: Том 10 - Линейная и матричная алгебра микроорганизмов: компьютерная идентификация . ЦРК Пресс . п. 402. ИСБН  9780824722609 .
  3. ^ Перейти обратно: а б с Осборн 1981 , с. 2.1.
  4. ^ Перейти обратно: а б с Серия1600 1975 г. , 2.1.
  5. ^ Руководство пользователя микропроцессора CP-1600 (PDF) (S16DOC-CP 1600 -04 изд.). Общие инструменты. Май 1975 года . Проверено 5 июля 2022 г.
  6. ^ Перейти обратно: а б с Серия1600 1975 , с. я.
  7. ^ Серия 1600 1975 г.
  8. ^ Перейти обратно: а б Лоуэлл Тернер, «General Instruments CP1600» , 10 июля 2001 г.
  9. ^ Руководство пользователя симулятора кросс-ассемблера CP-1600 (PDF) . Общий инструмент. Ноябрь 1974 года.
  10. ^ Руководство пользователя микрокомпьютера GIC1600 (PDF) . Общий инструмент. Сентябрь 1975 года.
  11. ^ «Чемпион 2711 |До-83» . pre83.com . Проверено 23 мая 2022 г.
  12. ^ «Маттел Интелливижн – 1980-1984» . Классические игры . ИГН . Архивировано из оригинала 23 июня 2008 г. Проверено 16 мая 2008 г.

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

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d090bc122945d96c726499f77fe9c5e7__1710159840
URL1:https://arc.ask3.ru/arc/aa/d0/e7/d090bc122945d96c726499f77fe9c5e7.html
Заголовок, (Title) документа по адресу, URL1:
General Instrument CP1600 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)