Intel 8008 (« восемь тысяч восемь » или « восемьдесят восемь ») — ранний 8-битный микропроцессор , способный адресовать 16 КБ памяти, представленный в апреле 1972 года. Архитектура 8008 была разработана компанией Computer Terminal Corporation ( англ.) CTC) и был реализован и изготовлен компанией Intel . Хотя 8008 изначально был разработан для использования в программируемом терминале CTC Datapoint 2200 , соглашение между CTC и Intel позволило Intel продавать чип другим клиентам после того, как Seiko выразила заинтересованность в использовании его для калькулятора .
Чтобы решить несколько проблем с Datapoint 3300 , включая чрезмерное тепловое излучение, компания Computer Terminal Corporation (CTC) разработала архитектуру запланированного преемника 3300 с ЦП как частью внутренней схемы, повторно реализованной на одном кристалле. В поисках компании, способной разработать свои микросхемы, соучредитель CTC Остин О. «Гас» Рош обратился к Intel, которая в то время в основном занималась производством микросхем памяти. [3] Рош встретилась с Бобом Нойсом , который выразил обеспокоенность по поводу этой концепции; Джон Фрассанито вспоминает, что «Нойс сказал, что это интригующая идея, и что Intel могла бы реализовать ее, но это был бы глупый шаг. , вы можете продать сотни чипов на один компьютер». [3] Еще одной серьезной проблемой было то, что существующая клиентская база Intel приобретала их чипы памяти для использования с собственными процессорами; если бы Intel представила собственный процессор, ее могли бы рассматривать как конкурента, и ее клиенты могли бы искать память в другом месте. Тем не менее, в начале 1970 года Нойс согласился на контракт на разработку стоимостью 50 000 долларов. В качестве второго поставщика также была привлечена компания 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 долларов. Это переименование было попыткой подорвать успех чипа 4004, представляя 8008 просто как порт с 4 на 8, но 8008 не основан на 4004. [4] 8008 стал коммерчески успешным проектом. За ним последовал Intel 8080 , а затем чрезвычайно успешное семейство Intel x86 . [3]
Одной из первых команд, создавших полноценную систему на базе 8008, была команда Билла Пенца из Калифорнийского государственного университета в Сакраменто . Sac State 8008, возможно, был первым настоящим микрокомпьютером с дисковой операционной системой, построенной на языке ассемблера IBM Basic в PROM, и все это управляло цветным дисплеем, жестким диском, клавиатурой, модемом, устройством чтения аудио/бумажной ленты и принтером. [5] Проект начался весной 1972 года, и при ключевой помощи Tektronix год спустя система была полностью работоспособна. Билл помогал Intel с комплектом MCS-8 и предоставил ключевую информацию для набора инструкций Intel 8080 , что помогло сделать его полезным для промышленности и любителей.
В Великобритании группа SE Laboratories Engineering (EMI) под руководством Тома Спинка в 1972 году построила микрокомпьютер на основе предварительного образца 8008. Джо Хардман расширил чип внешним стеком. Это, среди прочего, обеспечило сохранение и восстановление после сбоя питания. Джо также разработал принтер с прямой трафаретной печатью. Операционная система была написана с использованием метаассемблера, разработанного Л. Кроуфордом и Дж. Парнеллом для компании Digital Equipment Corporation PDP-11 . [6] Операционная система была записана в PROM. Он управлялся прерываниями, ставился в очередь и основывался на фиксированном размере страниц для программ и данных. Для руководства был подготовлен действующий прототип, которое решило не продолжать проект.
8008 был процессором для самых первых коммерческих персональных компьютеров без калькулятора (за исключением самого Datapoint 2200): американского комплекта SCELBI , а также готовых французских Micral N и канадского MCM/70 . Он также был управляющим микропроцессором для первых нескольких моделей компьютерных терминалов Hewlett-Packard 2640 .
В 1973 году Intel предложила симулятор набора команд для 8008 под названием INTERP/8. [7] Он был написан на FORTRAN IV Гэри Килдаллом , когда он работал консультантом в Intel. [8] [9]
8008 был реализован на базе PMOS-логики с кремниевым затвором диаметром 10 мкм . Первоначальные версии могли работать на тактовой частоте до 0,5 МГц. Позже в 8008-1 эта частота была увеличена до указанного максимума в 0,8 МГц. Инструкции принимают от 5 до 11 Т-состояний, где каждое Т-состояние занимает 2 тактовых цикла. [10] Загрузка регистр-регистр и операции АЛУ занимают 5Т (20 мкс при 0,5 МГц), регистр-память 8Т (32 мкс), а вызовы и переходы (при их выполнении) занимают 11 Т-состояний (44 мкс). [11] 8008 немного медленнее с точки зрения количества инструкций в секунду (от 36 000 до 80 000 при частоте 0,8 МГц), чем 4-битные Intel 4004 и Intel 4040 . [12] , но поскольку 8008 обрабатывает данные по 8 бит за раз и может получить доступ к значительно большему объему оперативной памяти, в большинстве приложений он имеет значительное преимущество в скорости по сравнению с этими процессорами. В 8008 имеется 3500 транзисторов . [13] [14] [15]
Чип, ограниченный 18-контактным DIP-разъемом , имеет одну 8-битную шину, работающую в тройном режиме для передачи 8 бит данных, 14 бит адреса и двух битов состояния. Небольшому пакету требуется около 30 микросхем поддержки TTL для взаимодействия с памятью. [16] Например, 14-битный адрес, который может получить доступ к «16 К × 8 бит памяти», должен быть зафиксирован с помощью некоторой части этой логики в регистре адреса внешней памяти (MAR). 8008 может получить доступ к 8 портам ввода и 24 портам вывода. [10]
Для использования контроллера и ЭЛТ-терминала это приемлемая конструкция, но ее довольно сложно использовать для большинства других задач, по крайней мере, по сравнению с микропроцессорами следующих поколений. На его основе было создано несколько ранних компьютерных проектов, но большинство из них вместо этого использовали более поздний и значительно улучшенный Intel 8080 . [ нужна цитата ]
Последующий 40-контактный NMOS Intel 8080 расширил регистры и набор команд 8008 и реализовал более эффективный интерфейс внешней шины (с использованием 22 дополнительных контактов). Несмотря на тесное архитектурное родство, 8080 не был двоично совместим с 8008, поэтому программа 8008 не могла работать на 8080. Однако, поскольку в то время Intel использовала два разных синтаксиса ассемблера, 8080 можно было использовать в 8008 обратно совместим с ассемблерным языком. [17] [ неуместная цитата ]
Intel 8085 — это электрически модернизированная версия 8080, в которой используются транзисторы с режимом истощения , а также добавлены две новые инструкции. [18] [ неуместная цитата ]
Intel 8086 , оригинальный процессор x86, является нестрогой версией 8080, поэтому он также во многом напоминает исходный дизайн Datapoint 2200. Почти каждая инструкция Datapoint 2200 и 8008 имеет эквивалент не только в наборе команд 8080, 8085 и Z80 , но и в наборе команд современных процессоров x86 (хотя кодировки инструкций разные). [19] [ неуместная цитата ]
Архитектура 8008 включает в себя следующие функции :
Следующий исходный код сборки 8008 предназначен для подпрограммы с именем MEMCPY
, которая копирует блок байтов данных заданного размера из одного места в другое.
В приведенном выше коде все значения указаны в восьмеричном формате. Locations SRC
, DST
, и CNT
являются 16-битными параметрами подпрограммы с именем MEMCPY
. На самом деле используются только 14 бит значений, поскольку процессор имеет только 14-битную адресуемую память. Значения сохраняются в формате с прямым порядком байтов , хотя это произвольный выбор, поскольку ЦП не способен читать или записывать в память более одного байта за раз. Поскольку нет инструкции для загрузки регистра непосредственно из заданного адреса памяти, сначала необходимо загрузить пару регистров HL с адресом, а затем целевой регистр можно загрузить из операнда M, что представляет собой косвенную загрузку из ячейки памяти. в паре регистров HL. Пара регистров BC загружается со CNT
значением параметра и уменьшается в конце цикла, пока не станет нулевым. Обратите внимание, что большинство используемых инструкций занимают один 8-битный код операции.