stringtranslate.com

Интел 8088

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

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

Матрица AMD 8088

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

Варианты 8088 с максимальной тактовой частотой более 5 МГц включают 8088–2, который был изготовлен с использованием нового усовершенствованного процесса nMOS Intel , называемого HMOS , и рассчитан на максимальную частоту 8 МГц. Позже последовал 80C88, полностью статическая конструкция CHMOS , которая могла работать с тактовой частотой от 0 до 8 МГц. Было также несколько других, более или менее похожих, вариантов от других производителей. Например, NEC V20 был совместимым по выводам и немного более быстрым (на той же тактовой частоте) вариантом 8088, разработанным и произведенным NEC . Последующие процессоры NEC 8088 работали на частоте до 16 МГц. В 1984 году Commodore International подписала соглашение на производство 8088 для использования в лицензированном клоне Dynalogic Hyperion , что было расценено как сигнал о новом важном направлении для компании. [10] Доступная версия CMOS была передана на аутсорсинг компании Oki Electronic Industry Co., Ltd. [11] На момент анонса цена на 8088 составляла 124,80 долл. США. [12] [13] Версия в пластиковом корпусе была представлена ​​в июле 1981 года по цене 14,10 долл. США за 100 штук в партиях. [14] Intel предоставила этот микропроцессор компании Fujitsu Limited в качестве второго поставщика . [15]

Отличия от 8086

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

Производительность

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

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

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

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

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

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

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

Персональный компьютер IBM

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

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

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

Галерея

  1. ^ Выборка 4 квартала 1985 г.

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

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

Примечания

  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 Instruments .
  6. ^ В обмен на предоставление Intel прав на свои разработки пузырьковой памяти . Однако из-за жесткой конкуренции со стороны японских производителей, которые смогли снизить цены, Intel вскоре покинула этот рынок и переключилась на микропроцессоры.
  7. ^ В то время компоненты 68000 не были широко доступны, хотя в некоторой степени можно было использовать компоненты Motorola 6800 .

Ссылки

  1. ^ История ЦП – Музей ЦП – Жизненный цикл ЦП.
  2. ^ "iAPX 86, iAPX 88 руководство пользователя" (PDF) . Получено 5 октября 2024 г. .
  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-е изд.). McGraw-Hill. стр. 248. ISBN 978-0-07-048286-9. Получено 1 июня 2019 г. .
  9. ^ Гилдер, Джордж Ф. (10 октября 2013 г.). Тест Израиля . Encounter Books . стр. 100. ISBN 978-1594036125.
  10. Кук, Карен (17 апреля – 1 мая 1984 г.). «Commodore добавляет Hyperion, Chips». PC Magazine . Том 1, № 8. С. 52.
  11. Корпорация Intel, «NewsBit: Intel лицензирует Oki на версию CMOS нескольких продуктов», Solutions, июль/август 1984 г., стр. 1.
  12. ^ "Intel выпускает 8-битный MPU с 16-битной архитектурой". Computerworld . Том XIII, № 20. 14 мая 1979 г. стр. 71. Получено 21 ноября 2011 г.
  13. Intel Corporation, «Компоненты микрокомпьютера: Intel представляет 8089 IOP, процессор ввода-вывода для усовершенствованного семейства ЦП 8088/8086, первый из серии новых компонентов подсистемы», Intel Preview, май/июнь 1979 г., стр. 9.
  14. Intel Corporation, «News Bits», Solutions, июль/август 1981 г., стр. 1
  15. ^ Корпорация Intel, «NewsBits: Новости второго источника», Solutions, январь/февраль 1985 г., стр. 1
  16. ^ ab Osborne 16-битный процессор Справочник (Адам Осборн и Джерри Кейн) ISBN 0-931988-43-8
  17. ^ "Olympus MIC-D: Галерея интегральных схем - Микропроцессор Intel 8088". Архивировано из оригинала 19 мая 2009 г.
  18. ^ Фрейбергер, Пол (23 августа 1982 г.). «Билл Гейтс, Microsoft и персональный компьютер IBM». InfoWorld . Том 4, № 33. стр. 22. Получено 29 января 2015 г.
  19. ^ Эшборн, Джим; «Усовершенствованная упаковка: немного значит много», Intel Corporation, Solutions, январь/февраль 1986 г., стр. 2
  20. ^ 8086 Доступно для промышленной среды, Intel Preview Special Issue: 16-Bit Solutions, Intel Corporation, май/июнь 1980 г., стр. 29.

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