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

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

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

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

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

Выбор для использования в 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 . [ф]

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

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

Галерея

  1. ^ Выборка четвертого квартала 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) .
  3. ^ «Микропроцессоры iAPX 86, 88, 186, часть I, Мастерская» (PDF) . Июнь 1984 года.
  4. ^ «Справочное руководство для программистов iAPX 286» (PDF) . 1983. стр. 1-1.
  5. ^ «Краткое справочное руководство по микропроцессору» . Интел . Интел . Проверено 1 июня 2019 г.
  6. ^ «Краткое справочное руководство по микропроцессору» . Интел . Интел . Проверено 1 июня 2019 г.
  7. ^ Сингх, Рену (2006). Интерфейс микропроцессора и приложения. Нью Эйдж Интернэшнл. стр. 2–27. ISBN 81-224-1400-1. Проверено 1 июня 2019 г.
  8. ^ Говиндараджалу, Б. (2002). IBM PC и клоны: оборудование, устранение неполадок и обслуживание (2-е изд.). МакГроу-Хилл. п. 248. ИСБН 978-0-07-048286-9. Проверено 1 июня 2019 г.
  9. Гилдер, Джордж Ф. (10 октября 2013 г.). Израильский тест . Книги встреч . п. 100. ИСБН 978-1594036125.
  10. Кук, Карен (17 апреля – 1 мая 1984 г.). «Commodore добавляет Hyperion, Chips». Журнал ПК . Том. 1, нет. 8. с. 52.
  11. ^ Корпорация Intel, «NewsBit: Intel лицензирует Oki на версии CMOS нескольких продуктов», Solutions, июль/август 1984 г., стр. 1.
  12. ^ «Intel представляет 8-битный MPU с 16-битной архитектурой» . Компьютерный мир . Том. XIII, нет. 20. 14 мая 1979. с. 71 . Проверено 21 ноября 2011 г.
  13. ^ Корпорация Intel, «Компоненты микрокомпьютера: Intel представляет 8089 IOP, процессор ввода-вывода для усовершенствованного семейства процессоров 8088/8086, первый из серии новых компонентов подсистемы», Intel Preview, май/июнь 1979 г., стр. 9.
  14. ^ Корпорация Intel, «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». Инфомир . Том. 4, нет. 33. с. 22 . Проверено 29 января 2015 г.
  19. ^ Эшборн, Джим; «Усовершенствованная упаковка: небольшое дело имеет большое значение», корпорация Intel, Solutions, январь/февраль 1986 г., стр. 2
  20. ^ 8086 Доступно для промышленной среды, специальный выпуск Intel Preview: 16-битные решения, корпорация Intel, май/июнь 1980 г., стр. 29.

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