Мост 5065
Общая информация | |
---|---|
Запущен | февраль 1974 г. |
Общий производитель | |
Производительность | |
Макс. процессора Тактовая частота | 3 мкс |
Ширина данных | 8 бит |
Ширина адреса | 15 бит |
Физические характеристики | |
Упаковка |
|
Mostek MK5065 — 8-битный микропроцессор, представленный компанией Mostek в начале 1974 года. Первоначально этот дизайн был разработан Motorola для использования в Olivetti электронном калькуляторе и был лицензирован Mostek для использования в целях, не связанных с калькулятором. Он имел три набора регистров процессора, что позволяло ему переключаться на обработчик прерываний за один цикл, и режим ожидания данных, который способствовал прямому доступу к памяти .
Несмотря на относительно низкую стоимость (для того времени) в 58 долларов за партию из 100 экземпляров, 5065, похоже, мало использовался. Fairchild F8 был представлен примерно в то же время и нацелен на те же рынки. F8 имел ряд преимуществ перед 5065 благодаря более современному дизайну. В июне 1975 года компания Mostek лицензировала F8 по соглашению о втором источнике . 5065 исчез из каталога Mostek 1975 года, в котором упоминается только их F8, MK3850.
Все еще убежденные в том, что им нужен микропроцессор, и извлекая уроки из своего опыта работы с 5065, Motorola приступила к разработке своего Motorola 6800 почти сразу после лицензирования 5065 компании Mostek.
История
[ редактировать ]Модель 5065 начиналась как специальный процессор PMOS , разработанный Motorola для настольного калькулятора, создаваемого Olivetti . Разработку дизайна возглавили Род Оргилл и Билл Менш , производившие 5065. Существующие фабрики Motorola оказались неспособны создать эту конструкцию, и они были вынуждены передать лицензию на нее компании Mostek. [1] при условии, что они не будут продаваться на рынке калькуляторов. Компания Mostek выпустила свою версию в феврале 1974 года. К началу 1975 года она производилась серийно и продавалась по цене 58 долларов партиями от 100 до 499. [2]
В сентябре 1974 года Fairchild Semiconductor выпустила Fairchild F8 , поставки образцов начались в апреле следующего года, а полное производство — позже в том же году. F8 был почти идентичен по назначению 5065, первоначально разработанный как процессор калькулятора для Olympia-Werke , немецкого конкурента Olivetti. F8 имел ряд конструктивных особенностей, которые упрощали его реализацию: для типичных конструкций требовалось всего два чипа для обеспечения всего необходимого ПЗУ, ОЗУ, тактовой частоты и ввода-вывода. Он также улучшил 5065 тем, что это был чип на основе NMOS , что позволило изготовить его с меньшим размером элемента, что снизило его стоимость и позволило ему работать намного быстрее. [3]
В июне 1975 года компания Mostek лицензировала дизайн F8 у Fairchild и внедрила его в свою новую линейку NMOS . Упоминания о 5065 исчезают к моменту выхода каталога 1975 года, в котором упоминается только версия F8, MK3850. [4] В следующем году компания Mostek агрессивно снизила цену на свой F8, достигнув 10 долларов в пластиковой упаковке. [а] к 1976 году. [5]
Описание
[ редактировать ]Базовый дизайн
[ редактировать ]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 | (битовая позиция) |
Уровень 1 | ||||||||||||||||
аккумулятор | ||||||||||||||||
ПЧ | ПКЛ | ПК | ||||||||||||||
л | Связь | |||||||||||||||
Уровень 2 | ||||||||||||||||
аккумулятор | ||||||||||||||||
ПЧ | ПКЛ | ПК | ||||||||||||||
л | Связь | |||||||||||||||
Уровень 3 | ||||||||||||||||
аккумулятор | ||||||||||||||||
ПЧ | ПКЛ | ПК | ||||||||||||||
А | л | Вспомогательный/ссылка | ||||||||||||||
Указатель стека | ||||||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Регистр указателя |
В начале 1970-х годов идея использования микропроцессора в качестве основы для автономного компьютера еще не была распространена, и конструкции той эпохи обычно включали функции, призванные облегчить их использование в том, что сегодня будет известно как область микроконтроллеров , процессоры. которые используются для управления таким устройством, как кассовый аппарат или бензонасос . Эти системы должны быстро реагировать на различные входные данные, что обычно достигается с помощью прерываний . Поскольку это обычная операция в таких условиях, многие проекты были сосредоточены на способах улучшения производительности или реализации прерываний. [6] [7]
В случае 5065 это было достигнуто за счет предоставления трех отдельных наборов регистров для аккумулятора , счетчика программ и внутреннего регистра «основной связи», а также флага переноса . При получении прерывания процессор завершал текущую инструкцию и затем указывал на выбранный набор этих регистров или, как их называли, «уровней». Это позволило системе отслеживать три отдельных участка кода, соответствующие нормальной работе и двум уровням прерываний. Внешние устройства могут вызвать прерывание на двух выводах. INT 1
и INT 2
, оба из которых можно включить или отключить в программном обеспечении. Так, например, если INT 2
был включен и запущен, процессор в ответ выполнил текущую инструкцию, переключился на регистры уровня 2 и продолжил работу. Нормальной работой был уровень 3, на который он возвращался при вызове инструкции возврата из прерывания. [8] Это делает обслуживание прерываний очень быстрым, поскольку информация о состоянии сохраняется автоматически за один цикл, тогда как во многих конструкциях требуется, чтобы эта информация сохранялась с использованием написанного пользователем кода, для завершения которого может потребоваться несколько циклов. [9]
Эту же систему можно также использовать для быстрых вызовов подпрограмм вместо необходимости сохранять содержимое регистра. [8] Поскольку состояние процессора сохранялось отдельно, в коде нужно было явно прописывать только адрес возврата. первые 256 ячеек памяти, нулевая страница использовались В данном случае в качестве стека вызовов . Чтобы это работало, эта область памяти должна была быть реализована в той или иной форме записываемой памяти. Страница могла содержать до 128 16-битных адресов, причем текущее значение указывалось «регистром указателя», который был бы известен как указатель стека . в других конструкциях [9]
Для облегчения реализации прямого доступа к памяти (DMA) в систему включена функция WAIT
вывод, который был поднят внешним устройством, которому требовался доступ к памяти. Когда этот сигнал будет получен, процессор продолжит выполнение текущей инструкции, включая любое необходимое чтение и запись из памяти. Когда инструкция будет завершена, она поднимет DMA
PIN-код, указывающий, что он был готов, а затем перешел в состояние паузы. Затем внешнее устройство выполнит операции DMA, а затем отключится. WAIT
когда оно было закончено. Тогда процессор сбросил бы DMA
закрепите, снимите паузу и продолжите с того места, где остановились. [10]
Инструкции и адресация
[ редактировать ]Всего было 51 инструкция и 81 код операции. Инструкции существуют во многих форматах, но большинство из них имеют двухбайтовые пары опкод - операнд . Небольшое количество однобайтовых инструкций использовалось для таких вещей, как возврат из подпрограммы или сдвиг влево , для которых не требуется никакой дополнительной информации. [8]
Те инструкции, которые использовали память (в отличие от регистров), использовали двухбайтовый формат с кодом операции в старших 6 битах первого байта. Младшие 2 бита управляют типом доступа к памяти. Первый (бит 1) указывал, был ли следующий 8-битный операнд прямым или косвенным адресом. Второй (бит 0) контролировал, было ли 8-битное значение смещено от текущей страницы памяти, определенной программным счетчиком, или от нулевой страницы. Следующий байт операнда содержит 8-битный адрес. Это означает, что при использовании прямой адресации данные должны находиться в пределах 256 байт текущей инструкции или в пределах первых 256 байт памяти. доступ к большей оперативной памяти , необходимо использовать косвенную адресацию. Если необходим [8]
Косвенные адреса использовали двухэтапный шаблон доступа. Сначала процессор считывает младшие 8 бит инструкции и смотрит на бит 0, чтобы определить, какое смещение использовать. Затем он считывает байт в этом месте и следующий за ним байт, создавая 16-битное значение, хранящееся в специальном буфере. Затем он будет читать или записывать данные в это 16-битное место. [9] Этот шаблон часто можно было увидеть на мини-компьютерах того времени, поскольку он упрощал реализацию определенных форм циклического перебора данных. [11] [б]
Самый старший бит каждого адреса, хранящегося в памяти, использовался для указания того, был ли это прямой или косвенный адрес, в результате чего для фактического адреса оставалось 15 бит, что позволяло использовать до 32 КБ памяти. [10] Поскольку для адреса, на который указывает косвенный адрес, также может быть установлен старший бит, косвенные адреса могут образовывать цепочки. [2] Этот стиль цепного доступа также наблюдался в миникомпьютерных системах, таких как IBM 1620 , HP 2100 и Data General Nova , но был необычен для микропроцессоров. [2]
Для ветвей, вызовов подпрограмм и переходов использовался второй формат, где код операции использовал старшие 4 бита, а младшие 4 бита вместе с 8-битным операндом образовывали 12-битный адрес. Это означало, что код мог вызывать другой код только в пределах «блока» размером 4 КБ. [8] Было много других форматов инструкций для специальных целей. [12]
Ввод/вывод обрабатывался с помощью специальных инструкций и не отображался в памяти . Верхние 4 бита кода операции содержали инструкции ввода-вывода (ввод, вывод, состояние и т. д.), а нижние 4 бита представляли собой «свободное поле». Программа может поместить любое значение в эти 4 бита и использовать его как специальное поле данных для отправки инструкций устройству. Запуск инструкции привел к четырехтактному процессу. В первом цикле младшие 6 бит команды, включая 4-битное свободное поле, были помещены на шину H, а значение аккумулятора - на шину L. Затем устройство могло прочитать оба, чтобы декодировать свою инструкцию. Во втором цикле, если ЦП должен был отправить данные устройству для вывода, 8-битное значение помещалось на шину. В третьем случае любые данные, отправляемые в ЦП, возвращались на шину. Четвертый указывал на конец цикла ввода-вывода. [8]
Другие детали
[ редактировать ]Основная шина была мультиплексной, всего 16 контактов использовались как для адресации, так и для данных. Шина была разделена на «высокую» (H) и «низкую» (L) стороны, обе 8-битные. Во время доступа к памяти 15-битный адрес будет размещен на старшей и младшей сторонах, а затем данные в этом месте читаются или записываются только с использованием шины L. Это означало, что доступ к памяти требовал двух циклов, что делало его медленнее, чем конструкции с отдельными (немультиплексированными) шинами адресов и данных. [8]
Созданный на основе технологии PMOS , которая была распространена в начале 1970-х годов, 5065 требовал трех уровней напряжения питания: -12 В (V GG ), +5 В (V SS ), -5 В (V DD ) и заземления. Он был упакован в 40-контактный DIP- разъём , как это было принято для большинства процессоров той эпохи. Использование мультиплексной шины сократило использование контактов до такой степени, что пять контактов остались неподключенными. [10] Как и в большинстве конструкций PMOS, внешний тактовый чип требовался также планировалось выпустить адаптер периферийного интерфейса (PIA). , в данном случае MK5009. В конце 1975 года [2]
Система была выпущена с системой оценки, двухплатной GEMS-8, сокращением от General Evaluation Microprocessor System. Сюда входили драйвер часов, 512 байт ПЗУ, от 1 до 12 КБ ОЗУ и UART для использования с компьютерным терминалом . ПЗУ содержало «Program Aid Routine», небольшой инструмент разработки системы и утилиту отладчика. Плата процессора и ПЗУ PAR стоили 597 долларов, карта ОЗУ 12 КБ — еще 597 долларов, или оба вместе — 995 долларов. Кросс -ассемблер также был доступен для неопределенного «16-битного миникомпьютера». [2]
Тактовые частоты 5065 не упоминаются ни в каких сохранившихся источниках. Время инструкций указано от 3 до 16 мкс. [2] Хотя указано время выполнения инструкций от 3 до 16 мкс, можно использовать тактовую частоту 1 МГц. [13]
Примечания
[ редактировать ]- ^ Пластиковая упаковка подходит для использования на низкой скорости, когда нагрев не является проблемой. Для более высоких скоростей можно было приобрести керамический корпус за 20 долларов. [5]
- ^ Другое распространенное решение той эпохи, не использовавшееся в 5065, — это выделенные индексные регистры .
Ссылки
[ редактировать ]Цитаты
[ редактировать ]- ^ «Новаторский 8-битный процессор 6800 от Motorola: происхождение и архитектура» . Чиповое письмо . 11 декабря 2023 г.
- ^ Перейти обратно: а б с д и ж Дайджест 1975 , с. 2.
- ^ Наир 2002 , с. 237.
- ^ Путеводитель 1975 года .
- ^ Перейти обратно: а б Дайджест 1976 , с. 13.
- ^ Сильва 2013 .
- ^ Ренесас .
- ^ Перейти обратно: а б с д и ж г Путеводитель 1974 , с. 80.
- ^ Перейти обратно: а б с Путеводитель 1974 , с. 79.
- ^ Перейти обратно: а б с Путеводитель 1974 , с. 78.
- ^ Сименс 2007 .
- ^ Путеводитель 1974 , стр. 80–82.
- ^ Франкс 2023 .
Библиография
[ редактировать ]- Фрэнкс, Кирк (16 мая 2023 г.), Личный опыт проектирования и создания системы на базе MK5065, бывший инженер компании Mostek.
- Сакс, Джейсон (18 июня 2022 г.). «Развитие МОП-технологии 6502: историческая перспектива» . Встроенное связанное .
- Микалопулос, Деметриос (октябрь 1975 г.). «Новые продукты: «Мостэк» анонсирует микрокомпьютерную систему «GEMS-8» . IEEE-компьютер . дои : 10.1109/CM.1975.218783 . S2CID 2862689 .
- «Мостек 5065 к тысяче» (PDF) . Микрокомпьютерный дайджест . Том. 1, нет. 8. Февраль 1975 г.
- «Мостэк снижает цены на F8» (PDF) . Микрокомпьютерный дайджест . Октябрь 1976 года.
- Руководство по интегральным схемам . Том. 3. Мостэк. 1974.
- Руководство по интегральным схемам . Мостэк. 1975.
- Наир, Б. Соманатан (2002). Цифровая электроника и логический дизайн . Обучение PHI.
- Сильва, Майк (18 сентября 2013 г.). «Введение в микроконтроллеры — Прерывания» . Встроенное связанное .
- «Введение в микроконтроллеры: обработка прерываний» . Ренесас .
- «Программирование цикла с косвенной адресацией» . Сименс . 29 января 2007 г.