Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 и перемещения данных в регистре. операнды и некоторые из них в операндах памяти - практически невозможно избежать простоя EU в 8088 по крайней мере ¼ времени при выполнении полезных реальных программ, и нетрудно простаивать его половину времени. Короче говоря, 8088 обычно работает примерно вдвое медленнее, чем 8086 с той же частотой, из-за узкого места в шине (единственное существенное отличие).Последовательность таких быстрых инструкций предотвращает заполнение очереди так же быстро, как она опорожняется, и в целом, потому что многие базовые инструкции выполняются менее чем за четыре такта на байт инструкции, включая почти все инструкции ALU и перемещения данных в регистре. операнды и некоторые из них в операндах памяти - практически невозможно избежать простоя EU в 8088 по крайней мере ¼ времени при выполнении полезных реальных программ, и нетрудно простаивать его половину времени. Короче говоря, 8088 обычно работает примерно вдвое медленнее, чем 8086 с той же частотой, из-за узкого места в шине (единственное существенное отличие).Последовательность таких быстрых инструкций предотвращает заполнение очереди так же быстро, как она опорожняется, и в целом, потому что многие базовые инструкции выполняются менее чем за четыре такта на байт инструкции, включая почти все инструкции ALU и перемещения данных в регистре. операнды и некоторые из них в операндах памяти - практически невозможно избежать простоя EU в 8088 по крайней мере ¼ времени при выполнении полезных реальных программ, и нетрудно простаивать его половину времени. Короче говоря, 8088 обычно работает примерно вдвое медленнее, чем 8086 с той же частотой, из-за узкого места в шине (единственное существенное отличие).Поскольку многие базовые инструкции выполняются менее чем за четыре такта на байт инструкции - включая почти все ALU и инструкции перемещения данных в регистровых операндах и некоторые из них в операндах памяти - практически невозможно избежать простоя EU, по крайней мере, в 8088 ¼ времени при выполнении полезных реальных программ, и половину времени не составит труда простаивать. Короче говоря, 8088 обычно работает примерно вдвое медленнее, чем 8086 с той же частотой, из-за узкого места в шине (единственное существенное отличие).Поскольку многие базовые инструкции выполняются менее чем за четыре такта на байт инструкции - включая почти все 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

Оригинальный IBM PC - наиболее влиятельный микрокомпьютер, использующий 8088. Он имеет тактовую частоту 4,77 МГц (4/3 частоты цветовой синхронизации NTSC ). Некоторые из инженеров компании IBM и других сотрудников хотели использовать IBM 801 процессор, некоторые предпочли новый Motorola 68000 , [е] и другие аргументированные для малого и простого микропроцессора, такие как 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 8 286 / 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). Интерфейс микропроцессора и приложения . New Age International. С. 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 Corporation, май / июнь 1980 г., стр.29.

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

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