stringtranslate.com

Интел 8008

Intel 8008восемь тысяч восемь » или « восемьдесят восемь ») — ранний 8-битный микропроцессор, способный адресовать 16 КБ памяти, представленный в апреле 1972 года. Архитектура 8008 была разработана Computer Terminal Corporation (CTC) и была реализована и произведена Intel . Хотя 8008 изначально был разработан для использования в программируемом терминале Datapoint 2200 компании CTC , соглашение между CTC и Intel позволило Intel продавать чип другим клиентам после того, как Seiko выразила заинтересованность в использовании его для калькулятора .

История

Чтобы решить несколько проблем с Datapoint 3300 , включая чрезмерное тепловое излучение, Computer Terminal Corporation (CTC) разработала архитектуру запланированного преемника 3300 с ЦП как частью внутренней схемы, повторно реализованной на одном чипе. В поисках компании, способной изготовить их дизайн чипа, соучредитель CTC Остин О. «Гас» Рош обратился к Intel, тогда в первую очередь поставщику чипов памяти. [3] Рош встретился с Бобом Нойсом , который выразил обеспокоенность по поводу этой концепции; Джон Фрассанито вспоминает, что:

«Нойс сказал, что это интригующая идея, и что Intel может это сделать, но это будет глупым шагом. Он сказал, что если у вас есть компьютерный чип, вы можете продать только один чип на компьютер, в то время как в случае с памятью вы можете продать сотни чипов на компьютер». [3]

Еще одной серьезной проблемой было то, что существующая клиентская база Intel покупала их чипы памяти для использования с собственными процессорами; если бы Intel представила свой собственный процессор, они могли бы рассматриваться как конкуренты, и их клиенты могли бы искать память в другом месте. Тем не менее, Нойс согласился на контракт на разработку на 50 000 долларов США в начале 1970 года (что эквивалентно 392 000 долларов США в 2023 году). Texas Instruments (TI) также была привлечена в качестве второго поставщика. [ необходима цитата ]

TI смогла сделать образцы 1201 на основе чертежей Intel, [ нужна ссылка ], но они оказались глючными и были отклонены. Собственные версии Intel были отложены. CTC решила повторно реализовать новую версию терминала с использованием дискретного TTL вместо того, чтобы ждать однокристального ЦП. Новая система была выпущена как Datapoint 2200 весной 1970 года, а первая продажа компании General Mills состоялась 25 мая 1970 года. [3] CTC приостановила разработку 1201 после выпуска 2200, поскольку она больше не была нужна. Шесть месяцев спустя Seiko обратилась к Intel, выразив заинтересованность в использовании 1201 в научном калькуляторе, вероятно, после того, как увидела успех более простого Intel 4004, используемого Busicom в своих бизнес-калькуляторах. Затем последовала небольшая переделка конструкции под руководством Федерико Фаггина , конструктора 4004, ныне руководителя проекта 1201, в ходе которой 16-контактный разъем был расширен до 18-контактного, и новый 1201 был доставлен в CTC в конце 1971 года. [3]

К этому моменту CTC снова перешла на Datapoint 2200 II, который был быстрее. 1201 уже не был достаточно мощным для новой модели. CTC проголосовала за прекращение своего участия в 1201, оставив интеллектуальную собственность дизайна Intel вместо того, чтобы платить контракт на 50 000 долларов. Intel переименовала его в 8008 и поместила его в свой каталог в апреле 1972 года по цене 120 долларов США (что эквивалентно 874 долларам в 2023 году). Это переименование было попыткой воспользоваться успехом чипа 4004, представив 8008 просто как порт 4 на 8, но 8008 не основан на 4004. [4] 8008 стал коммерчески успешным дизайном. За ним последовал Intel 8080 , а затем чрезвычайно успешное семейство Intel x86 . [3]

Одной из первых команд, построивших полную систему на базе 8008, была команда Билла Пентца из Калифорнийского государственного университета в Сакраменто . Sac State 8008, возможно, был первым настоящим микрокомпьютером с дисковой операционной системой, созданной на языке ассемблера IBM Basic в ПЗУ, [ оспариваетсяобсуждается ] управляющим цветным дисплеем, жестким диском, клавиатурой, модемом, аудио/бумажным считывателем и принтером. [5] Проект стартовал весной 1972 года, и при ключевой помощи Tektronix система была полностью работоспособна год спустя.

В Великобритании группа SE Laboratories Engineering (EMI) под руководством Тома Спинка в 1972 году построила микрокомпьютер на основе предрелизного образца 8008. Джо Хардман расширил чип внешним стеком. Это, среди прочего, дало ему сохранение и восстановление после сбоя питания. Джо также разработал прямой экранный принтер. Операционная система была написана с использованием метаассемблера, разработанного Л. Кроуфордом и Дж. Парнеллом для Digital Equipment Corporation PDP-11 . [6] Операционная система была записана в ПЗУ. Она управлялась прерываниями, была поставлена ​​в очередь и основывалась на фиксированном размере страницы для программ и данных. Для руководства был подготовлен рабочий прототип, который решил не продолжать проект. [ необходима цитата ]

8008 был ЦП для самых первых коммерческих персональных компьютеров без калькулятора (исключая сам Datapoint 2200): американский комплект SCELBI и предварительно собранный французский Micral N и канадский MCM/70 . Он также был управляющим микропроцессором для первых нескольких моделей семейства компьютерных терминалов Hewlett-Packard 2640. [ необходима цитата ]

В 1973 году Intel предложила симулятор набора инструкций для 8008 под названием INTERP/8. [7] Он был написан на языке FORTRAN IV Гэри Килдаллом , когда он работал консультантом в Intel. [8] [9]

Дизайн

микроархитектура i8008

8008 был реализован в 10  мкм кремниевой логике PMOS с режимом улучшения . Первоначальные версии могли работать на тактовых частотах до 0,5 МГц. Позднее эта частота была увеличена в 8008-1 до указанного максимума в 0,8 МГц. Инструкции занимают от 3 до 11 T-состояний, где каждое T-состояние составляет 2 такта. [11] Загрузки регистр-регистр и операции ALU занимают 5T (20 мкс при 0,5 МГц), регистр-память 8T (32 мкс), в то время как вызовы и переходы (если они были выполнены) занимают 11 T-состояний (44 мкс). [12] 8008 немного медленнее с точки зрения инструкций в секунду (от 36 000 до 80 000 при 0,8 МГц), чем 4-битные Intel 4004 и Intel 4040 . [13] но поскольку 8008 обрабатывает данные по 8 бит за раз и может получить доступ к значительно большему объему оперативной памяти, в большинстве приложений он имеет значительное преимущество в скорости по сравнению с этими процессорами. 8008 имеет 3500 транзисторов . [14] [15] [16]

Чип, ограниченный 18-контактным DIP , имеет одну 8-битную шину, работающую в тройном режиме для передачи 8 бит данных, 14 бит адреса и двух бит состояния. Небольшой пакет требует около 30 микросхем поддержки TTL для взаимодействия с памятью. [17] Например, 14-битный адрес, который может получить доступ к «16 К × 8 бит памяти», должен быть зафиксирован некоторой частью этой логики в регистре адреса внешней памяти (MAR). 8008 может получить доступ к 8 портам ввода и 24 портам вывода. [11]

Для использования контроллера и терминала CRT это приемлемая конструкция, но она довольно громоздка для использования для большинства других задач, по крайней мере по сравнению со следующими поколениями микропроцессоров. Несколько ранних компьютерных конструкций были основаны на ней, но большинство использовали более позднюю и значительно улучшенную Intel 8080. [ необходима цитата ]

Связанные конструкции процессоров

Последующий 40-контактный NMOS Intel 8080 расширил регистры и набор инструкций 8008 и реализовал более эффективный интерфейс внешней шины (используя 22 дополнительных контакта). Несмотря на тесную архитектурную связь, 8080 не был сделан двоично-совместимым с 8008, поэтому программа 8008 не могла работать на 8080. Однако, поскольку в то время Intel использовала два разных синтаксиса ассемблера, 8080 мог использоваться в обратно совместимом с языком ассемблера 8008 стиле.

Intel 8085 — это электрически модернизированная версия 8080, в которой используются транзисторы, работающие в режиме обеднения , а также добавлены две новые инструкции.

Intel 8086 , оригинальный процессор x86, является нестрогим расширением 8080, поэтому он также в общих чертах напоминает оригинальный дизайн Datapoint 2200. Почти каждая инструкция Datapoint 2200 и 8008 имеет эквивалент не только в наборе инструкций 8080, 8085 и Z80 , но и в наборе инструкций современных процессоров x86 (хотя кодировки инструкций отличаются).

Функции

Архитектура 8008 включает в себя следующие особенности: [ необходима ссылка ]

Набор инструкций

Все инструкции имеют длину от одного до трех байтов, состоят из начального байта кода операции, за которым следуют до двух байтов операндов, которые могут быть непосредственным операндом или адресом программы. Инструкции работают только с 8 битами; 16-битных операций нет. Существует только один механизм для адресации памяти данных: косвенная адресация, на которую указывает конкатенация регистров H и L, обозначаемая как M. Однако 8008 поддерживает 14-битные адреса программ. Он имеет автоматические инструкции CAL и RET для многоуровневых вызовов подпрограмм и возвратов, которые могут быть условно выполнены, как переходы. Восемь однобайтовых инструкций вызова (RST) для подпрограмм существуют по фиксированным адресам 00h, 08h, 10h, ..., 38h. Они предназначены для поставки внешним оборудованием с целью вызова процедур обслуживания прерываний, но могут использоваться как быстрые вызовы. Прямое копирование может быть выполнено между любыми двумя регистрами или регистром и памятью. Поддерживаются восемь математических/логических функций между аккумулятором (A) и любым регистром, памятью или непосредственным значением. Результаты всегда помещаются в A. Инкременты и декременты поддерживаются для большинства регистров, но, что любопытно, не для A. Однако регистр A поддерживает четыре различные инструкции вращения. Все инструкции выполняются в 3–11 состояниях. Каждое состояние требует двух тактов.

Пример кода 1

Пластина Intel 8008 и два процессора, закрытый и открытый

Следующий исходный код ассемблера 8008 предназначен для подпрограммы с именем MEMCPY, которая копирует блок байтов данных заданного размера из одного места в другое. Ассемблер Intel 8008 поддерживал только операторы + и -. Этот пример заимствует операторы ассемблера 8080 AND и SHR (сдвиг вправо) для выбора нижних и верхних байтов 14-битного адреса для размещения в 8-битных регистрах. Ожидалось, что современный программист 8008 вычислит числа и введет их для ассемблера.

В приведенном выше коде все значения даны в восьмеричном формате. Места SRC, DSTи CNTявляются 16-битными параметрами для подпрограммы с именем MEMCPY. На самом деле используются только 14 бит значений, поскольку ЦП имеет только 14-битное адресуемое пространство памяти. Значения хранятся в формате little-endian , хотя это произвольный выбор, поскольку ЦП не способен считывать или записывать в память более одного байта за раз. Поскольку нет инструкции для загрузки регистра напрямую из заданного адреса памяти, пара регистров HL сначала должна быть загружена адресом, а затем целевой регистр может быть загружен из операнда M, что является косвенной загрузкой из ячейки памяти в паре регистров HL. Пара регистров BC загружается значением параметра CNTи уменьшается в конце цикла, пока оно не станет равным нулю. Обратите внимание, что большинство используемых инструкций занимают один 8-битный код операции.

Пример кода 2

Следующий исходный код ассемблера 8008 предназначен для упрощенной подпрограммы с именем MEMCPY2, которая копирует блок байтов данных из одного места в другое. Уменьшая счетчик байтов до 8 бит, появляется достаточно места для загрузки всех параметров подпрограммы в файл регистров 8008.

Прерывания

Прерывания на 8008 реализованы лишь частично. После подтверждения линии INT 8008 подтверждает прерывание, выводя код состояния S0,S1,S2 = 011 в момент времени T1I. В последующем цикле выборки инструкций инструкция "заклинивается" (слово Intel) внешним оборудованием на шине. Обычно это однобайтовая инструкция RST.

В этом месте возникает проблема. 8008 не имеет возможности сохранять свое архитектурное состояние . 8008 может записывать в память только по адресу в паре регистров HL. При прерывании нет механизма сохранения HL, поэтому нет способа сохранить другие регистры и флаги через HL. Из-за этого к 8008 через порты ввода-вывода должно быть подключено какое-то внешнее запоминающее устройство, такое как аппаратный стек или пара регистров чтения/записи , чтобы помочь сохранить состояние 8008. [18]

Дизайнеры

Вторичные источники

Смотрите также

Примечания

  1. ^ Флаги CPZS представлены как группа в этом порядке во время состояния 4 цикла PCC инструкции INP.

Ссылки

  1. ^ "Жизненный цикл ЦП". www.cpushack.com .
  2. ^ "Тридцать лет в робототехнике – Робототехника". 2014-05-19. Архивировано из оригинала 2014-03-19 . Получено 2018-04-11 .
  3. ^ abcde Вуд, Ламонт (2008-04-08), «Забытая история ПК: истинное происхождение персонального компьютера», Computerworld , заархивировано из оригинала 2018-11-16 , извлечено 2014-12-02
  4. ^ Кен Ширрифф (2021-01-26). «On the Metal: Ken Shirriff». Подкаст Oxide Computing (интервью). Интервью взяли Брайан Кантрилл; Джесси Фразелл; Стив Так. Событие происходит в 19:52. Во-первых, 4004 и 8008 — это совершенно разные чипы. Маркетинг заставляет их звучать так, будто это просто 4-битная и 8-битная версии, но они совершенно разные.
  5. ^ "Внутри давно потерянного первого в мире микрокомпьютера". cnet.com . 2010-01-08 . Получено 2024-10-09 .
  6. Университет Брунеля, 1974. Диссертация на степень магистра технологий, Л. Р. Кроуфорд.
  7. ^ "XI. Приложения III. Программный пакет MCS-8 - Симулятор". MCS-8 Microcomputer Set - 8008 - 8 Bit Parallel Central Processor Unit - Руководство пользователя (PDF) . Редакция 4, второе издание. Санта-Клара, Калифорния, США: Intel Corporation . 1974 [ноябрь 1973 г.]. стр. 84–94. MCS-056-0574/25K. Архивировано (PDF) из оригинала 25.11.2023 . Получено 25.11.2023 .(132 страницы)
  8. ^ Килдалл, Гэри Арлен (1974-06-27). «Язык высокого уровня упрощает программирование микрокомпьютеров» (PDF) . Электроника . McGraw-Hill Education . стр. 103–109 [108]. Архивировано (PDF) из оригинала 2021-11-14 . Получено 2021-11-14 .
  9. ^ "8008 Simulator INTERP/8" (PDF) . Программное обеспечение микрокомпьютеров. Санта-Клара, Калифорния, США: Intel Corporation . Март 1975 г. Код продукта 98-118A. MCS-514-0375/27.5K. Архивировано (PDF) из оригинала 2023-11-25 . Получено 2023-11-25 .(2 страницы)
  10. ^ 8008 8-разрядный параллельный центральный процессор (PDF) (Rev 4, Second Printing ed.). Intel. Ноябрь 1973 г. стр. 14, 17. Получено 30 апреля 2024 г.
  11. ^ ab "Руководство пользователя микрокомпьютерного набора MCS-8" (PDF) . Корпорация Intel . 1972 . Получено 2010-12-04 .
  12. ^ "Intel 8008 Opcodes" . Получено 2010-12-04 .
  13. ^ "Семейство микропроцессоров Intel 8008 (i8008)". CPU World. 2003–2010 . Получено 2010-12-04 .
  14. ^ Intel. "Гордон Мур и закон Мура". Архивировано из оригинала 2009-09-04 . Получено 2009-06-28 .
  15. ^ Intel (2012). «Intel Chips: постер с временной шкалой».
  16. ^ Intel (2008). «Краткое справочное руководство по микропроцессорам».
  17. ^ Устная история Федерико Фаггина (PDF) (X2941.2005 ред.). Музей компьютерной истории. 2004-09-22. стр. 82. Получено 2023-07-14 .
  18. Чемберклин, Хэл (октябрь 1975 г.). ««Добавьте стек к вашему 8008». Байт . 0 (2): 52–56 . Получено 05.10.2024 .
  19. ^ Фаггин, Федерико ; Хофф-младший, Марсиан Э .; Мазор, Стэнли ; Сима, Масатоши (декабрь 1996 г.). «История 4004 года». IEEE микро . 16 (6). Лос-Аламитос, США: Компьютерное общество IEEE: 10–19. дои : 10.1109/40.546561. ISSN  0272-1732.

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