Интел 4040
Общая информация | |
---|---|
Запущен | 1974 |
Снято с производства | 1981 [1] |
Общий производитель | |
Производительность | |
Макс. процессора Тактовая частота | от 500 кГц до 740 кГц |
Ширина данных | 4 бита |
Ширина адреса | 12 бит (мультиплексированный) |
Архитектура и классификация | |
Технологический узел | 10 мкм процесс |
Набор инструкций | 4-битный ( BCD -ориентированный) |
Физические характеристики | |
Транзисторы |
|
Упаковка |
|
История | |
Предшественник | Интел 4004 |
Статус поддержки | |
Не поддерживается |
Intel 4040 (« сорок-четыре ») — второй 4-битный микропроцессор, разработанный и производимый Intel . Представленный в 1974 году как преемник Intel 4004 , процессор 4040 производился по 10-мкм техпроцессу и включал в себя на кремниевый затвор с улучшенной нагрузкой логическую технологию PMOS . 4040 содержал 3000 транзисторов . [2] и мог выполнять примерно 62 000 инструкций в секунду .
Общие характеристики, схема шины и арифметико-логический блок (ALU) были идентичны 4004. Основное улучшение заключалось в использовании более крупного 24-контактного двухрядного корпуса , что давало на 8 контактов больше, чем 16-контактный 4004. Были использованы два из них. реализовать прерывания , которых не было в 4004 и которые считались серьезным упущением. Еще в двух реализована система остановки/остановки, которая переводила процессор в режим пониженного энергопотребления, а также позволяла выполнять одноэтапную работу, что значительно облегчало отладку. Другой вывод использовался для выбора банка второго постоянного запоминающего устройства (ПЗУ), что удваивало объем ПЗУ, к которому процессор мог обращаться, по сравнению с 4004.
Чтобы использовать эти новые выводы, набор инструкций был расширен, увеличив его до 60 инструкций с исходных 46. Кроме того, были расширены внутренний файл регистров и стек pushdown для поддержки быстрой обработки прерываний.
Описание [ править ]
4004 [ править ]
Модель 4004 была разработана для использования в электронном калькуляторе , и многие примечания к ее конструкции связаны с этой ролью. Например, программный код может быть прочитан только из области, предназначенной только для чтения , а не из ОЗУ. Хотя можно было реализовать «пространство ПЗУ» с использованием микросхем ОЗУ, не было инструкций, способных записывать в эту область памяти, и не было инструкций, способных читать программный код из пространства ОЗУ. Идея заключалась в том, что системы будут хранить системную программу в ПЗУ, а небольшие объемы ОЗУ будут использоваться только для данных, если вообще будут использоваться. Обычно внутренние «индексные регистры» используются для хранения во время вычислений, при этом 16 4-битных регистров могут хранить одно 8-значное двоично-десятичное значение - формат данных, используемый калькуляторами. Он также имел четыре 12-битных регистра для хранения адресов, самый верхний из которых был счетчиком программ , а следующие три работали как стек с выталкиванием вниз для вызовов подпрограмм .
Чтобы уменьшить количество контактов до 16, исходный 4004 имел только четыре контакта данных, мультиплексированных как для данных, так и для адресов. Дополнительные контакты указывали, находился ли адрес в ПЗУ или в одном из нескольких «банков» ОЗУ. Поскольку длина адреса составляла 12 бит, выражение адреса занимало три цикла вместе с последующим чтением или записью, а внешняя схема должна была фиксировать каждую 4-битную часть адреса между циклами. Инструкции были 8-битными, поэтому загрузка следующей инструкции требовала много циклов, что приводило к снижению производительности, несмотря на относительно короткое время цикла для той эпохи.
4040 [ править ]
По сути, 4040 был расширением 4004 с дополнительными контактами, большим количеством регистров и новыми инструкциями, позволяющими использовать оба преимущества.
У 4004 был один вывод ПЗУ, тогда как у 4040 был добавлен еще один вывод ПЗУ, чтобы можно было использовать два банка ПЗУ. Это эффективно увеличило адрес ПЗУ с 12 до 13 бит, или 8 КБ. В отличие от более поздних разработок, в которых две строки могли быть закодированы в двоичном формате и, таким образом, поддерживать четыре банка, микросхемы ПЗУ, используемые с 4004 и 4040, использовали эти линии как контакты выбора чипа , и, таким образом, две линии могли поддерживать только два банка.
В 4004 отсутствовали прерывания , что было серьезным ограничением. В 4040 добавлен новый входной контакт для вызова прерывания, а также выходной контакт, указывающий, что сигнал прерывания был замечен и на него воздействуют. Поскольку прерываниям также необходимо сохранять адрес возврата, файл регистров стека был расширен до семи записей вместо трех. [Примечание 1]
Код обработчика прерываний обычно начинается с сохранения значений в регистрах, чтобы код прерывания мог их использовать, а затем в конце копирует значения обратно из памяти, чтобы процессор вернулся в исходное состояние до прерывания. Учитывая многоцикловый доступ к памяти, это было бы чрезвычайно медленно. Чтобы решить эту проблему, в новый «банк 1» были добавлены восемь дополнительных регистров, причем первоначальные шестнадцать регистров задним числом стали «банком 0». Идея заключалась в том, что программисты попытаются поместить свои критически важные данные в первые восемь регистров банка 0. При получении прерывания код обработчика вызовет инструкцию по замене банков, что приведет к тому, что регистры банка 1 переопределят регистры банка 0. по 7. Код обработчика затем будет использовать эти восемь регистров для любых локальных данных, оставляя исходные значения нетронутыми. Когда обработчик завершил работу, он просто заменил банк 0 обратно. Это сократило время переключения до одной инструкции, что значительно улучшило время отклика на прерывание.
Еще одним дополнением был входной контакт остановки и соответствующее подтверждение остановки выхода. Их можно было использовать для остановки процессора, пока система выполняла ввод/вывод или другие задачи, не связанные с процессором, но более широко они использовались для отладки , позволяя процессору работать в одношаговом режиме. Когда процессор находился в остановленном режиме, большая часть аппаратного обеспечения микросхемы переходила в состояние с низким потреблением и высоким импедансом, что снижало энергопотребление. Часы машинного цикла продолжали работать для внешних устройств, включая любые контроллеры прерываний, необходимые для резервного пробуждения чипа, что зависело от синхронизации этих контроллеров.
Чтобы воспользоваться этими новыми функциями, в набор инструкций было добавлено 14 новых инструкций, в результате чего их общее количество достигло 60.
|
Характеристики [ править ]
- Шина данных: 4-битная
- Адресная шина: 12-битная для ПЗУ (мультиплексируется на шину данных; для передачи адреса требовалось три цикла шины, как и в 4004), фактически 13-битная с использованием команд переключения банков; фактически 10-битный или 8-битный для ОЗУ (8-битный прямой адрес плюс один из четырех, т.е. 2-битный эквивалент, выбор банка; дополнительные 256 ячеек памяти «состояния» требовали использования команд ввода-вывода для чтения или запись из общего 8-битного адресного пространства)
- Напряжение: −15 В постоянного тока
- Рабочая частота: основная тактовая частота от 500 до 740 кГц (2-фазная, с перекрытием); От 62 500 до 92 500 8-тактовых машинных циклов в секунду, причем каждая инструкция требует одного или двух машинных циклов для чтения и выполнения, что означает примерное среднее значение 62 килобит/с при частоте 740 кГц при равном миксе. [Примечание 2]
- Производительность: Заявленное время выполнения ~850 мкс для сложения двух 32-битных (8-значных BCD) чисел, или около 1175 таких операций в секунду и около 10 машинных циклов на пару цифр. [Примечание 3]
Дизайнеры [ править ]
Федерико Фаггин предложил проект, сформулировал архитектуру и руководил дизайном.Детальный дизайн выполнил Том Иннес .
Новые фишки поддержки [ править ]
- Драйверы 4-битной параллельной шины 3216 и 3226 [Примечание 4]
- 4101 – 256 x 4-битная статическая ОЗУ [Примечание 5]
- 4201 - Тактовый генератор, от 500 до 740 кГц, с использованием кристаллов от 4000 до 5,185 МГц.
- 4207 — 8-битный выходной порт общего назначения.
- 4209 — 8-битный входной порт общего назначения.
- 4211 – 8-битный порт ввода-вывода общего назначения
- 4265 — Программируемый ввод-вывод общего назначения. Он содержит четыре 4-битных порта ввода-вывода. Он имеет 14 программно выбираемых режимов, которые можно запрограммировать для взаимодействия с этими портами. Он может не только взаимодействовать с этим процессором, но и с процессором 8080A. В марте (1976 г.) он был доступен в ограниченном количестве на складе. [3] [4]
- 4269 — Программируемая клавиатура/дисплей. В этом наборе микросхем имеется конфигурация системного программного обеспечения с помощью инструкций, которые управляют работой этих портов. В марте (1976 г.) он был доступен в пробных количествах. [3] [5]
- Особенности клавиатуры: Генерирует прерывание при нажатии клавиши. Он хранит до 8 символов буфера FIFO перед обслуживанием ЦП. Он может быть сопряжен с датчиками, панельными переключателями и клавиатурами, которые поддерживают размер полноразмерной телетайпной машинки. Это может быть кодирование ввода с клавиатуры, опрос, хранение буфера ввода символов и восстановление после ввода с клавиатуры.
- Характеристики дисплея: Он управляет и обновляет дисплеи или массивы индикаторов, содержащие до 128 элементов или индикаторов. Он также поддерживает газоразрядный дисплей, такой как дисплей самосканирования Burroughs, на котором можно управлять до 20 символов.
- 4289 — Стандартный интерфейс памяти (заменяет 4008/4009) [Примечание 6]
- 4308 — 1 КБ 8-битного ПЗУ плюс 4 4-битных порта ввода-вывода [Примечание 7]
- 4316 – ПЗУ 2К х 8 бит [Примечание 8]
- 4702 – 256 х 8-битная СППЗУ [Примечание 9]
Использование в компьютерах [ править ]
По данным журнала Byte , первым микрокомпьютером, созданным на базе Intel 4040, был Micro 440 , выпущенный компанией Comp-Sultants из Хантсвилля, штат Алабама, в 1975 году. [6]
См. также [ править ]
Примечания [ править ]
- ^ по умолчанию поддерживался только один уровень прерываний, так как дальнейшее обслуживание отключалось после подтверждения первоначального прерывания и могло быть повторно включено только при RTI, что, по сути, допускало три уровня наложения подпрограмм внутри самого прерывания, происходящего в подпрограмме с тремя уровнями, но обнаружение можно снова включить с помощью определенной команды.
- ^ Это может быть не совсем точно и основано на характеристиках 4004; для выполнения некоторых добавленных инструкций могут потребоваться дополнительные циклы, особенно любое стекирование внешних регистров, необходимое для обработки прерываний, но в документации не поясняется, так ли это; остановка/шаг - это особые случаи, которые, естественно, потенциально требуют многих миллионов циклов для "выполнения", но поскольку они по существу происходят "вне" обычного потока программы, они не учитываются при расчете скорости.
- ^ Аналогично, на основе заявленных характеристик 4004; «850 мкс» — это несколько округленная цифра, заявленная в ранней брошюре Intel, и, возможно, она не совсем точна, но общее время выполнения составляет примерно 79 или 80 машинных циклов, что вполне соответствует либо 10 циклам на пару цифр, либо 10 циклам на пару цифр. 9 циклов на пару плюс 7 на настройку и любую необходимую постобработку или 8 на пару плюс 15 дополнительных (... и т. д.). Фактическое сочетание инструкций не было указано, поэтому без исходного кода и списка времени выполнения инструкций невозможно быть уверенным. Более эффективная процедура сложения могла бы быть возможна на 4040 по сравнению с 4004, но дополнительные инструкции не предлагают какого-либо очевидного метода достижения этого и, похоже, сосредоточены на устранении более очевидных недостатков более раннего чипа, например, отсутствия прерываний и останавливаемость.
- ^ Обеспечивает пропускную способность «высокого» тока (~ 25 мА) для внешних устройств ввода-вывода. Предположительно предназначен исключительно для использования с 4289, но дизайн выглядит довольно универсальным и может быть адаптирован к голому 4004/4040?
- ^ т.е. объединение основной памяти четырех 4002 в одну индивидуально выбираемую микросхему, но без 4-битного порта ввода-вывода и дополнительных 64 слов «статусной» памяти, доступной для команд ввода-вывода. Поскольку 4101 имеет выделенную 8-битную адресную шину и две отдельные 4-битные шины ввода и вывода данных, 4101 предназначен только для использования в качестве последующего периферийного устройства по отношению к 4289. Это еще раз подчеркивается заявлением SRAM о том, что он « используется для записываемой памяти программ», что недостижимо для голых 4004 или 4040.
- ^ Позволяет подключать «стандартную» память (8-битные параллельные данные и/или параллельную адресацию до 12-бит, последняя в виде 8-битного адреса плюс выбор 4-битного двоичного чипа) и устройств к 4004 или 4040. , а также использование оперативной памяти в качестве программной памяти (4289 может быть установлен так, чтобы процессор выглядел как обычное ПЗУ 4001, независимо от того, что подключено на другой стороне; усиливая иллюзию, он также обеспечивает те же четыре входа/выхода O линии, которые предлагает 4001). Модель 4040, использующая два процессора 4289, может предлагать различные комбинации ПЗУ и ОЗУ в сегментах по 2 КБ общим объемом до 8 КБ с относительно упрощенной схемой раздельной адресации и небольшим количеством 4101 и 4308, например 3x 4308 и 8x 4101 для 6 КБ ПЗУ и 1 КБ ОЗУ. .
- ^ Непосредственно заменяет четыре отдельных 4001 одним чипом, в том числе доступен в четырех «металлических» вариантах, которые реагируют на логические адреса чипа 0–3, 4–7, 8–11 и 12–15, имитируя шестнадцать оригинальных версий 4001.
- ^ Предназначен для использования после 4289, поскольку имеет 11-битную параллельную входную шину адреса и отдельную 8-битную параллельную шину вывода данных, а также три линии выбора микросхемы с двоичным кодированием (что позволяет обеспечить ПЗУ объемом до 16 КБ с схема адресации несовместима с 4004/4040 на нескольких разных уровнях - хотя только два 4316, то есть 4 КБ ПЗУ, или один 4316 плюс ОЗУ, могут быть напрямую адресованы 4289 без дополнительного оборудования и/или специальных методов программирования)
- ^ т.е. стирается УФ-излучением, а не электронным способом, и снова предназначен для использования с 4289, поскольку имеет отдельные 8-битные параллельные шины адресного ввода и вывода данных.
Ссылки [ править ]
- ^ «Жизненный цикл процессора» . CPUShack . 2005.
- ↑ Перейти обратно: Перейти обратно: а б "cpu-collection.de >> Intel >> 4040" . www.cpu-collection.de .
- ↑ Перейти обратно: Перейти обратно: а б Корпорация Intel, «Программируемые компоненты ввода-вывода 4269 и 4265, представленные для 4-битных систем Intel MCS-40», Intel Microcomputer News, том 3, № 1, январь 1976 г., стр. 3
- ^ Корпорация Intel, «Программируемое устройство ввода-вывода общего назначения 4265», Каталог данных Intel 1976 г. , февраль 1976 г., стр. 7-22
- ^ Корпорация Intel, «Устройство отображения с программируемой клавиатурой 4269», Каталог данных Intel 1976 г. , февраль 1976 г., стр. 7-39
- ^ Хелмерс, Карл Т. младший, изд. (декабрь 1975 г.). «Микро-440» . Байт (4). Байтовые публикации: 89 - через Интернет-архив.