Из Википедии, бесплатной энциклопедии
  (Перенаправлено с 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). ОригиналIBM PC основан на 8088, как и его клоны . ПК Wang от Wang Laboratories использует Intel 8086 .

История и описание [ править ]

Умереть от AMD 8088

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

Варианты 8088 с более чем 5 МГц частоты максимальной тактовой включают 8088-2, который был изготовленный с использованием нового расширенного Intel, NMOS процесс , называемый ОПЗ и указаны для максимальной частоте 8 МГц. Позже последовала 80C88, полностью статическая конструкция CHMOS , которая могла работать с тактовой частотой от 0 до 8 МГц. Также было несколько других, более или менее похожих вариантов от других производителей. Например, NEC V20 был совместимым по выводам и немного более быстрым (при той же тактовой частоте) версией 8088, разработанным и изготовленным NEC . Последовательные процессоры, совместимые с NEC 8088, будут работать на частоте до 16 МГц. В 1984 г.Commodore International подписала сделку по производству 8088 для использования в лицензированном клоне Dynalogic Hyperion , и этот шаг был расценен как сигнал о новом важном направлении для компании. [10]

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

Отличия от 8086 [ править ]

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

Производительность [ править ]

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

Скорость исполнительного блока (EU) и шины процессора 8086 были хорошо сбалансированы; при типичном сочетании инструкций 8086 может довольно часто выполнять инструкции из очереди предварительной выборки. Сокращение шины до восьми битов сделало ее серьезным узким местом в 8088. Поскольку скорость выборки инструкций в 8088 снижена на 50% по сравнению с 8086, последовательность быстрых инструкций может быстро опустошить четырехбайтовую очередь предварительной выборки. Когда очередь пуста, выполнение инструкций занимает столько же времени, сколько и их выборка. И 8086, и 8088 занимают четыре тактовых цикла для завершения цикла шины; тогда как для 8086 это означает четыре такта для передачи двух байтов, в 8088 это четыре такта на байт. Следовательно, например, двухбайтовая инструкция сдвига или поворота, выполнение которой требует от EU всего двух тактовых циклов, на самом деле для завершения требуется восемь тактов, если он не находится в очереди предварительной выборки. Последовательность таких быстрых инструкций предотвращает заполнение очереди так же быстро, как она опорожняется, и в целом, потому что многие базовые инструкции выполняются менее чем за четыре такта на байт инструкции, включая почти все инструкции ALU и перемещения данных в регистре. операнды и некоторые из них на операндах памяти - практически невозможно избежать простоя ЕС в 8088 по крайней мере1 / +4 времени при выполнении полезных программреальном мире, и это не трудно бездельничать ему половину времени. Короче говоря, 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

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

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

Галерея [ править ]

  • Intel 8088, оригинальный вариант nMOS 5 МГц в пластиковом DIP- корпусе

  • Пластик DIP40 8088, вид сверху

  • Пластик DIP40 8088, вид снизу

  • Intel 80C88A-2, более поздний вариант CMOS

  • Intel 80C88 в корпусе PLCC 44

Периферийные устройства [ править ]

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

См. Также [ править ]

  • архитектура x86
  • Персональный компьютер IBM
  • Motorola 68008
  • Максимальный режим
  • Минимальный режим
  • iAPX для обозначения iAPX
  • Профессиональный графический контроллер
  • Количество транзисторов

Заметки [ править ]

  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) .
  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). Интерфейс микропроцессора и приложения . Нью Эйдж Интернэшнл. С. 2–27. ISBN 81-224-1400-1. Проверено 1 июня 2019 .
  8. ^ Govindarajalu, B. (2002). IBM PC и клоны: оборудование, устранение неполадок и обслуживание (2-е изд.). Макгроу-Хилл. п. 248. ISBN 978-0-07-048286-9. Проверено 1 июня 2019 .
  9. The Israel Test , Encounter Books, 10 октября 2013 г., Джордж Ф. Гилдер, стр. 100.
  10. ^ «Коммодор добавляет Гиперион, фишки» . 17 апреля - 1 мая 1984 г.
  11. ^ «Intel представляет 8-битный MPU с 16-битной архитектурой» . Компьютерный мир . 14 мая 1979 г. с. 71 . Проверено 21 ноября 2011 года .
  12. ^ Корпорация Intel, "Компоненты микрокомпьютера: Intel представляет 8089 IOP, процессор ввода-вывода для усовершенствованного семейства ЦП 8088/8086, первый из серии новых компонентов подсистемы", Intel Preview, май / июнь 1979 г., стр. 9.
  13. ^ a b Руководство по 16-разрядному процессору Осборна (Адам Осборн и Джерри Кейн) ISBN 0-931988-43-8 . 
  14. ^ "Olympus MIC-D: Галерея интегральных схем - Микропроцессор Intel 8088" . Архивировано из оригинального 19 мая 2009 года.
  15. ^ Freiberger, Павел (1982-08-23). «Билл Гейтс, Microsoft и персональный компьютер IBM» . InfoWorld . п. 22 . Проверено 29 января 2015 года .
  16. ^ 8086 Доступно для промышленных сред, Intel Preview Special Issue: 16-Bit Solutions, Корпорация Intel, май / июнь 1980 г., стр.29.

Внешние ссылки [ править ]

  • chipdb.org - таблица данных Intel для 8088
  • PCJS: оригинальное моделирование IBM PC, которое запускается в вашем веб-браузере