Intel 8088 - Intel 8088

Intel 8088
KL Intel TD8088.jpg
D8088 в керамическом DIP-корпусе с серебряными штырями
Общая информация
Запущен1979
Снято с производства1998[1]
Общий производитель (и)
Спектакль
Максимум. ЦПУ тактовая частотаОт 5 МГц до 16 МГц
Ширина данных8 бит
Ширина адреса20 бит
Архитектура и классификация
Мин. размер элемента3 мкм
Набор инструкцийx86-16
Физические характеристики
Транзисторы
  • 29,000
СопроцессорIntel 8087
Пакет (ы)
Розетки)
Продукты, модели, варианты
Вариант (ы)Intel 8088 - это вариант Intel 8086.
История
ПредшественникIntel 8085
Преемник80186 и 80286 (оба были представлены в начале 1982 г.)

В Intel 8088 ("восемьдесят восемьдесят восемь", также называемый iAPX 88)[2][3][4] микропроцессор это вариант Intel 8086. Введен 1 июня 1979 г.[5][6][7][8] 8088 имел восьмибитный внешний шина данных вместо 16 бит шина 8086. 16-битные регистры и один мегабайт Однако диапазон адресов не изменился. Фактически, согласно документации Intel, 8086 и 8088 имеют одинаковые исполнительная единица (ЕС) - только блок интерфейса шины (BIU) другое. Оригинал IBM PC был основан на 8088, как и его клоны. ПК Wang от Ван Лаборатории, с другой стороны, использовали Intel 8086.

История и описание

Умереть 8088 драм

8088 был разработан в лаборатории Intel в г. Хайфа, Израиль, как и большое количество процессоров Intel.[9] 8088 был нацелен на экономичные системы, позволяя использовать восьмибитный тракт данных и восьмибитную поддержку и периферийные микросхемы; сложные печатные платы все еще были довольно громоздкими и дорогими, когда они были выпущены. В предварительная выборка очередь 8088 была сокращена до четырех байтов по сравнению с шестью байтами 8086, а алгоритм предварительной выборки был немного изменен для адаптации к более узкой шине.[а] Эти модификации базовой конструкции 8086 были одной из первых работ, порученных тогда еще новому конструкторскому бюро и лаборатории Intel в Хайфе.

Варианты 8088 с максимальной тактовой частотой более 5 МГц включают 8088–2, который был сфабрикованный используя новую улучшенную nMOS процесс называется HMOS и указана для максимальной частоты 8 МГц. Позже последовал 80C88, полностью статичный ХМОС дизайн, который мог работать с тактовыми частотами от 0 до 8 МГц. Также было несколько других, более или менее похожих вариантов от других производителей. Например, NEC V20 был совместимый по контактам и немного более быстрый (на той же тактовой частоте) вариант 8088, разработанный и изготовленный NEC. Последовательные процессоры, совместимые с NEC 8088, будут работать на частоте до 16 МГц. В 1984 г. Commodore International подписал сделку по производству 8088 для использования в лицензионных Диналогический Гиперион clone, шаг, который был расценен как сигнал о главном новом направлении для компании.[10]

На момент объявления прейскурантная цена 8088 составляла 124,80 доллара США.[11][12]

Отличия от 8086

8088 архитектурно очень похож на 8086. Основное отличие состоит в том, что здесь всего восемь линий данных вместо 16 линий 8086. Все остальные контакты устройства выполняют те же функции, что и у 8086, за двумя исключениями. Во-первых, контакт 34 больше не BHE (это выбор старшего байта на 8086 - 8088 не имеет старшего байта на своей восьмибитной шине данных).[13]:5–97 Вместо этого он выводит состояние максимального режима, SSO. В сочетании с IO /M и DT /р сигналы, циклы шины могут быть декодированы (обычно это указывает, когда выполняется операция записи или прерывание). Второе изменение - это вывод, который сигнализирует, выполняется ли доступ к памяти или доступ к вводу / выводу, имеет обратный смысл. Контакт на 8088 - это IO /M. На части 8086 это IO/ М. Причина переворота в том, что он делает 8088 совместимым с 8085.[13]:5–98

Спектакль

В зависимости от тактовая частота, количество памяти состояния ожидания, а также от характеристик конкретной прикладной программы, средний производительность Intel 8088 колеблется примерно от 0,33 до 1 млн. инструкций в секунду.[14] Между тем mov рег, рег и ALU[b] рег, рег инструкции, занимавшие два и три цикла соответственно, дали абсолютный пик выполнение между13 и12 MIPS на МГц, то есть где-то в диапазоне 3–5 MIPS на 10 МГц.

Скорость исполнительного блока (EU) и шины процессора 8086 были хорошо сбалансированы; с типичным сочетанием инструкций 8086 может выполнять инструкции из очереди предварительной выборки довольно много времени. Сокращение шины до восьми битов сделало ее серьезным узким местом в 8088. Поскольку скорость выборки команд в 8088 снижена на 50% по сравнению с 8086, последовательность быстрых команд может быстро опустошить четырехбайтовую очередь предварительной выборки. Когда очередь пуста, выполнение инструкций занимает столько же времени, сколько и их выборка. И 8086, и 8088 занимают четыре тактовых цикла для завершения цикла шины; тогда как для 8086 это означает четыре такта для передачи двух байтов, в 8088 это четыре такта на байт. Следовательно, например, двухбайтовая инструкция сдвига или поворота, выполнение которой требует от EU только двух тактовых циклов, на самом деле требует для выполнения восьми тактовых циклов, если она не находится в очереди предварительной выборки. Последовательность таких быстрых инструкций предотвращает заполнение очереди так же быстро, как она опорожняется, и в целом, потому что многие базовые инструкции выполняются менее чем за четыре такта на байт инструкции, включая почти все инструкции ALU и перемещения данных в регистре. операнды и некоторые из них в операндах памяти - практически невозможно избежать простоя EU в 8088 по крайней мере ¼ времени при выполнении полезных реальных программ, и нетрудно простаивать его половину времени. Короче говоря, 8088 обычно работает примерно вдвое медленнее, чем 8086 с той же частотой, из-за узкого места в шине (единственное существенное отличие).

Побочным эффектом конструкции 8088 с медленной шиной и небольшой очередью предварительной выборки является то, что скорость выполнения кода может сильно зависеть от порядка команд. При программировании 8088 для повышения эффективности процессора жизненно важно по возможности чередовать длительные инструкции с короткими. Например, повторение строковой операции или сдвиг на три или более займёт достаточно времени, чтобы дать время для полного заполнения 4-байтовой очереди предварительной выборки. Если короткие инструкции (то есть, всего несколько байтов) помещаются между более медленными инструкциями, подобными этим, короткие могут выполняться на полной скорости вне очереди. Если же, с другой стороны, медленные инструкции выполняются последовательно, один за другим, то после первого из них блок шины будет вынужден бездействовать, потому что очередь уже будет заполнена, в результате чего позже будет больше быстрых инструкций. будут возникать задержки выборки, которых можно было бы избежать. Поскольку некоторые инструкции, такие как сдвиг и поворот однобитовой позиции, требуют буквально в 4 раза больше времени для выборки, чем для выполнения,[c] общий эффект может быть замедлением в два или более раза. Если эти сегменты кода представляют собой тела циклов, разница во времени выполнения может быть очень заметна в человеческой шкале времени.

8088 также (как и 8086) медленно обращается к памяти. Тот же ALU, который используется для выполнения арифметических и логических инструкций, также используется для вычисления эффективных адресов. Существует отдельный сумматор для добавления сдвинутого сегментного регистра к адресу смещения, но сам советник смещения всегда полностью рассчитывается в основном ALU. Кроме того, слабая связь между EU и BIU (блоком шины) приводит к увеличению служебной нагрузки связи между блоками, и цикл передачи по шине с четырехтактным периодом не особенно оптимизирован. Сравните это с двухтактным циклом шины ЦП 6502 и трехтактным циклом шины 80286 с конвейерной обработкой до двух циклов для большинства передач. Большинство инструкций 8088, которые могут работать либо с регистрами, либо с памятью, включая обычные операции ALU и перемещения данных, по крайней мере в четыре раза медленнее для операндов памяти, чем для только регистровых операндов. Следовательно, эффективные программы 8088 (и 8086) по возможности избегают повторного доступа к операндам памяти, загружая операнды из памяти в регистры для работы с ними и сохраняя обратно только готовые результаты. Относительно большой набор регистров общего назначения 8088 по сравнению с его современниками помогает этой стратегии. Когда не хватает регистров для всех переменных, которые необходимы одновременно, сохранение регистров путем помещения их в стек и извлечения их обратно для их восстановления является самым быстрым способом использовать память для увеличения регистров, поскольку инструкции PUSH и POP стека являются самые быстрые операции с памятью. То же самое, вероятно, не так для 80286 и более поздних версий; они имеют выделенные адресные ALU и осуществляют доступ к памяти намного быстрее, чем 8088 и 8086.

Наконец, поскольку вызовы, переходы и прерывания сбрасывают очередь предварительной выборки, и поскольку для загрузки регистра IP требуется связь между ЕС и BIU (поскольку регистр IP находится в BIU, а не в ЕС, где находятся общие регистры), эти операции дорогостоящие. Все переходы и вызовы занимают не менее 15 тактов. Любой условный переход требует четырех тактовых циклов, если он не выполняется, но если он выполняется, он требует 16 циклов в дополнение к сбросу очереди предварительной выборки; поэтому условные прыжки должны быть устроены так, чтобы их не совершали большую часть времени, особенно внутри петель. В некоторых случаях последовательность логических операций и операций перемещения выполняется быстрее, чем условный переход, который пропускает одну или две инструкции для достижения того же результата.

В таблицах данных Intel для 8086 и 8088 рекламируются специальные инструкции умножения и деления (MUL, IMUL, DIV и IDIV), но они очень медленные, порядка 100–200 тактов каждая. Многие простые умножения на маленькие константы (помимо степени двойки, для которой можно использовать сдвиги) могут быть выполнены намного быстрее с помощью специальных коротких подпрограмм. Каждый из 80286 и 80386 значительно увеличил скорость выполнения этих команд умножения и деления. [d]

Выбор для использования в IBM PC

Оригинал IBM PC был самым влиятельным микрокомпьютером, использовавшим 8088. Он использовал тактовая частота 4,77 МГц (4/3 NTSC цветная вспышка частота). Некоторые инженеры IBM и другие сотрудники хотели использовать IBM 801 процессор, некоторые предпочли бы новый Motorola 68000,[e] в то время как другие выступали за небольшой и простой микропроцессор, такой как Технология MOS 6502 или же Зилог Z80, который ранее использовался в персональных компьютерах. Тем не менее, IBM уже имела опыт использования чипов Intel в своих продуктах, а также приобрела права на производство 8086 семья.[f]

IBM выбрала 8088 вместо 8086, потому что Intel предложила более выгодную цену на первый и могла поставить больше устройств.[15] Еще одним фактором было то, что 8088 позволил основать компьютер на модифицированном 8085 дизайн, так как он может легко взаимодействовать с большинством микросхем nMOS с 8-битными шинами данных, то есть с существующими и зрелыми и, следовательно, экономичными компонентами. Сюда входили микросхемы, изначально предназначенные для поддержки и периферийных функций вокруг 8085 и аналогичных процессоров (не только Intel), которые уже были хорошо известны многим инженерам, что еще больше снизило стоимость.[грамм]

Потомки 8088 включают 80188, 80186, 80286, 80386, 80486, и позже программного обеспечения -совместимый процессоры, которые используются сегодня.

Галерея

Периферийные устройства

  • Intel 8282 /8283: 8-битная защелка
  • Intel 8284: генератор часов
  • Intel 8286 /8287: двунаправленный 8-битный драйвер. Обе версии Intel I8286 / I8287 (промышленного класса) были доступны по цене 16,25 долларов США в количестве 100 штук.[16]
  • Intel 8288: контроллер шины
  • Intel 8289: автобусный арбитр
  • Intel 8087: Математический сопроцессор

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

Примечания

  1. ^ В частности, наиболее очевидным изменением является то, что блок шины 8088 будет предварительно выбирать байт, когда это возможно, если хотя бы один байт очереди пуст; модуль шины 8086 не будет выполнять предварительную выборку, если хотя бы два из шести байтов очереди не пусты, так что он может выполнить предварительную выборку всего выровненного 16-разрядного слова, что он делает за один цикл шины. 8088, имеющий 8-битную внешнюю шину данных, может извлекать только один байт за цикл шины, поэтому ожидание предварительной выборки всего слова не принесет пользы и приведет только к задержке, уменьшая вероятность того, что следующий байт инструкции уже находится в предварительной выборке. очередь, когда это необходимо.
  2. ^ ALU означает одну из инструкций ADD, ADC, SUB, SBC, CMP, AND, OR, XOR, TEST.
  3. ^ На 8088 инструкция сдвига с подразумеваемым счетчиком сдвига 1, которая может выполняться за два тактовых цикла, имеет длину два байта, поэтому для выборки требуется восемь тактовых циклов.
  4. ^ Большая часть технической информации в этом разделе взята из Руководства пользователя Intel iAPX 86,88, август 1981 г. (номер для заказа: 210201-001) корпорации Intel.
  5. ^ Позже использовался для инструментов IBM Лабораторный компьютер.
  6. ^ В обмен на предоставление Intel прав на пузырь памяти конструкции. Однако из-за жесткой конкуренции со стороны японских производителей, которые смогли снизить стоимость, Intel вскоре покинула этот рынок и переключила свое внимание на микропроцессоры.
  7. ^ 68000 компонентов не были широко доступны в то время, хотя они могли использовать Motorola 6800 компоненты в определенной степени.

Рекомендации

  1. ^ История ЦП - Музей ЦП - Жизненный цикл ЦП.
  2. ^ «iAPX 86, руководство пользователя iAPX 88» (PDF).
  3. ^ «Микропроцессоры iAPX 86, 88, 186, часть I, ноутбук для мастерских» (PDF). Июнь 1984 г.
  4. ^ «Справочное руководство для программистов iAPX 286» (PDF). 1983. стр. 1-1.
  5. ^ «Краткое руководство по микропроцессору». Intel. Intel. Получено 1 июня 2019.
  6. ^ «Краткое руководство по микропроцессору». Intel. Intel. Получено 1 июня 2019.
  7. ^ Сингх, Рену (2006). Интерфейс микропроцессора и приложения. New Age International. С. 2–27. ISBN  81-224-1400-1. Получено 1 июня 2019.
  8. ^ Говиндараджалу Б. (2002). IBM PC и клоны: оборудование, устранение неполадок и обслуживание (2-е изд.). Макгроу-Хилл. п. 248. ISBN  978-0-07-048286-9. Получено 1 июня 2019.
  9. ^ Израильский тест, Encounter Books, 10 октября 2013 г., Джордж Ф. Гилдер, стр. 100.
  10. ^ «Коммодор добавляет Гиперион, фишки». 17 апреля - 1 мая 1984 г.
  11. ^ «Intel представляет 8-битный MPU с 16-битной архитектурой». Computerworld. 14 мая 1979 г. с. 71. Получено 21 ноября 2011.
  12. ^ Корпорация Intel, «Компоненты микрокомпьютера: Intel представляет 8089 IOP, процессор ввода-вывода для усовершенствованного семейства процессоров 8088/8086, первый из серии новых компонентов подсистем», Intel Preview, май / июнь 1979 г., стр. 9.
  13. ^ а б Руководство по 16-битному процессору Osborne (Адам Осборн и Джерри Кейн) ISBN  0-931988-43-8.
  14. ^ "Olympus MIC-D: Галерея интегральных схем - микропроцессор Intel 8088". Архивировано из оригинал 19 мая 2009 г.
  15. ^ Фрейбергер, Пол (1982-08-23). «Билл Гейтс, Microsoft и персональный компьютер IBM». InfoWorld. п. 22. Получено 29 января 2015.
  16. ^ 8086 Доступно для промышленной среды, специальный выпуск Intel Preview: 16-разрядные решения, Корпорация Intel, май / июнь 1980 г., стр.29.

внешняя ссылка