General Instrument CP1600
CP1600 – 16 битный микропроцессор, созданный в середине 1970-х годов совместно компаниями General Instrument и Honeywell. Микропроцессор CP1600 был спроектирован на основе архитектуры мини-компьютера PDP-11, также использовавшейся в основе микропроцессора MCP-1600 компании Western Digital и повлиявшей на многие другие разработки. Компания Honeywell использовала CP1600 в ряде компьютеров для управления технологическими процессами и взаимосвязанных систем, но наибольшее распространение получила версия CP1610, использовавшаяся в игровой приставке Intellivision.
Описание
Система команд CP1600 почти полностью повторяет систему команд PDP-11, но не совместима с ней на уровне кодов операций и имеет отличия в видах адресации. Для кодов операций используются только младшие 10 бит, старшие 6 помечены как «Зарезервированные для дальнейшего расширения». С другой стороны, при проектировании систем это позволяло сократить объем ПЗУ. Предположительно, зарезервированные 6 бит были предназначены для использования сопроцессорами. Длина команд составляет от одного до трех машинных слов, в зависимости от вида адресации. В отличие от других процессоров с такой же архитектурой, CP1600 не поддерживает пересылки данных «память-память» с использованием косвенной адресации (смещений), кроме того, команды условных переходов используют 16-битные смещения вместо 8-битных, что позволяет, в случае длинных переходов, избежать использования дополнительных команд безусловного перехода.
Как и PDP-11, CP1600 использует восемь 16-битных регистров общего назначения, хотя в системе команд эти регистры не являются полностью эквивалентными. Регистр R0 не может быть использован для косвенного доступа к памяти. Регистры R1 – R3 могут использоваться для косвенного доступа к памяти, но не поддерживают автоинкремент. Регистры R4 и R5 всегда автоинкрементируются после косвенного доступа к памяти [1].
Регистр R6 используется как указатель стека, регистр R7 является счетчиком команд. Поскольку оба регистра программно доступны программисту, возможно реализовать несколько стеков или усложненную логику переходов. В явном виде команды для обращения к стеку отсутствуют, регистр R6 автодекрементируется перед использованием его для косвенного чтения данных из памяти, что имитирует команду POP
и автоинкрементируется после использования его для косвенной записи данных в память, что имитирует команду PUSH
.
Как и у PDP-11, одной из отличительных особенностей CP1600 является поддержка отображения регистров ввода-вывода на память, означающая возможность управления устройствами путём записи в определенные адреса памяти. В CP1600 в отличие от шины Unibus, применявшейся в PDP-11, шины адреса и данных были мультиплексированы для сокращения числа выводов и возможности уместить процессор в 40-выводный DIP корпус. Это отличие означало, что в практических применениях процессора необходимо использовать защелки или буферы для фиксации адреса и данных[1]. Это ограничивало скорость ввода-вывода, поэтому компания General Instrument разработала серию «Программируемых интерфейсных контроллеров» предназначенных для использования совместно с CP1600 в качестве контроллеров канала.
Процессор CP1600 был выполнен по технологии N-МОП, для питания использовались источники +12, +5, -3 В, уровни логических сигналов совместимы с ТТЛ. Изначально выпускался с тактовой частотой 3,3 МГц (время машинного цикла 600 нс)[2], затем частота была повышена до 5 МГц (время машинного цикла 400 нс). Команды требовали для выполнения от 6 до 14 машинных циклов, что при частоте 5 МГц составляло от 2,4 до 5,6 мкс[3]. General Instruments также производила систему разработки «GIMINI» для CP1600[2].
Применения
Микропроцессор CP1610, использованный в игровой приставке Intellivision, – это, фактически, замедленная версия CP1600 с несколькими упрощениями. В приставке Intellivision микропроцессор CP1610 работал на частоте 894 кГц в версии для телевизоров с цветовой системой NTSC, или 1 МГц для версий PAL/SECAM. Хотя пользователи компьютеров на базе CP1600 были очень редки, было произведено более 3 миллионов приставок Intellivision за период с 1980 года до кризиса индустрии компьютерных игр 1983 года, повлекшего в 1984 году закрытие выпускавших приставку производств.[4]
Производство CP1600 прекратилось в 1985 году, когда General Instruments выделила из своего состава подразделение микроэлектроники, чтобы создать компанию Microchip Technology. К этому моменту уже был доступен ряд 32-битных разработок, таких как Motorola 680x0, что снижало интерес к 16-битным системам типа CP1600, а главный потребитель, Intellivision – прекратил производство. В это же время была прекращена поддержка многих других продуктов, а основным продуктом новой компании стали микроконтроллеры PIC.
См. также
Ссылки
- ↑ 1,0 1,1 Lowell Turner, "General Instruments CP1600" Архивная копия от 23 марта 2017 на Wayback Machine, 10 July 2001
- ↑ 2,0 2,1 «Series 1600 Microprocessor» Архивировано 26 мая 2011 года., General Instruments 1977 Data Catalog, с.10
- ↑ «CP-1600 Microprocessor users manual» Архивировано 4 марта 2016 года.
- ↑ Mattel Intellivision - 1980-1984 (недоступная ссылка). ClassicGaming. IGN. Архивировано 28 января 2013 года.
Внешние ссылки
- "CP1610" at the Intellivision Wiki