Интел 8088
Общая информация | |
---|---|
Запущен | 1979 |
Снято с производства | 1998 [1] |
Общий производитель |
|
Производительность | |
Макс. процессора Тактовая частота | от 5 МГц до 16 МГц |
Ширина данных | 8 бит |
Ширина адреса | 20 бит |
Архитектура и классификация | |
Приложение | Настольный, Встроенный |
Технологический узел | 3 мкм |
Набор инструкций | х86-16 |
Физические характеристики | |
Транзисторы |
|
Сопроцессор | Интел 8087 |
Пакеты |
|
Розетка | |
Продукты, модели, варианты | |
Вариант |
|
История | |
Предшественник | Интел 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 имеют один и тот же исполнительный блок (EU) — только блок интерфейса шины отличается (BIU). 8088 использовался в оригинальном IBM PC и в IBM PC-совместимых клонах .
История и описание [ править ]
Процессор 8088 был разработан в лаборатории Intel в Хайфе , Израиль , как и большое количество процессоров Intel. [9] 8088 был ориентирован на экономичные системы, позволяя использовать восьмибитный канал передачи данных, а также восьмибитную поддержку и периферийные микросхемы; На момент своего выпуска сложные печатные платы все еще были довольно громоздкими и дорогими. Очередь предварительной выборки 8088 была сокращена до четырех байтов с шести байтов в 8086, а алгоритм предварительной выборки был немного изменен для адаптации к более узкой шине. [а] Эти модификации базовой конструкции 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] Между тем, mov reg,reg
и ALU[b] reg,reg
инструкции, занимающие два и три цикла соответственно, дали абсолютную пиковую производительность между 1 ⁄ 3 и 1/2 МГц, то есть где - MIPS на то в диапазоне 3–5 MIPS на частоте 10 МГц.
Скорость исполнительного блока (EU) и шины процессора 8086 была хорошо сбалансирована; при типичном сочетании команд 8086 может выполнять инструкции из очереди предварительной выборки большую часть времени. Сокращение шины до восьми бит сделало ее серьезным узким местом в 8088. Поскольку скорость выборки команд в 8088 снижена на 50% по сравнению с 8086, последовательность быстрых инструкций может быстро опустошить четырехбайтовую очередь предварительной выборки. Когда очередь пуста, выполнение инструкций занимает столько же времени, сколько требуется для их извлечения. И 8086, и 8088 требуют четырех тактовых циклов для завершения цикла шины; тогда как для 8086 это означает четыре такта для передачи двух байтов, для 8088 это четыре такта на байт. Поэтому, например, двухбайтовая инструкция сдвига или поворота, на выполнение которой в EU требуется всего два такта, на самом деле требуется восемь тактов, если она не находится в очереди предварительной выборки. Последовательность таких быстрых инструкций предотвращает заполнение очереди так же быстро, как она опустошается, и В общем, поскольку так много базовых инструкций выполняются менее чем за четыре такта на байт инструкции (включая почти все инструкции ALU и перемещения данных в операндах регистров и некоторые из них в операндах памяти), практически невозможно избежать простоя EU в 8088 минимум 1 ⁄ времени на выполнение полезных реальных программ, а половину времени несложно простаивать. Короче говоря, 8088 обычно работает примерно вдвое быстрее, чем 8086, работающий на той же частоте, из-за узкого места шины (единственное существенное отличие).
Побочным эффектом конструкции 8088 с медленной шиной и небольшой очередью предварительной выборки является то, что скорость выполнения кода может сильно зависеть от порядка команд. При программировании 8088 для повышения эффективности ЦП крайне важно по возможности чередовать длинные выполняемые инструкции с короткими. Например, повторная строковая операция или сдвиг на три или более займет достаточно времени, чтобы полностью заполниться 4-байтовая очередь предварительной выборки. Если короткие инструкции (т. е. те, которые в общей сложности составляют несколько байтов) помещаются между более медленными инструкциями, подобными этим, короткие инструкции могут выполняться на полной скорости вне очереди. Если, с другой стороны, медленные инструкции выполняются последовательно, подряд, то после первой из них шинный модуль будет вынужден простаивать, поскольку очередь уже заполнена, в результате чего позже появится больше более быстрых инструкций. будут возникать задержки при получении, которых можно было бы избежать. Поскольку некоторые инструкции, такие как сдвиг и вращение однобитовой позиции, занимают буквально в 4 раза больше времени, чем выполнение, [с] общий эффект может заключаться в замедлении темпов роста в два и более раз. Если эти сегменты кода являются телами циклов, разница во времени выполнения может быть очень заметной в человеческом масштабе.
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 PC является наиболее влиятельным микрокомпьютером, использующим 8088. Он имеет тактовую частоту 4,77 МГц (4/3 NTSC частоты цветной синхронизации ). Некоторые инженеры и другие сотрудники IBM хотели использовать процессор IBM 801 , некоторые предпочитали новый Motorola 68000 , [и] и другие выступали за небольшой и простой микропроцессор, такой как 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 популярные сегодня процессоры .
Галерея [ править ]
- Пластик DIP40 8088, вид сверху
- Пластик DIP40 8088, вид снизу
- Intel 80C88A-2, более поздний CMOS вариант
- ^ Выборка, четвертый квартал 1985 г.
Периферийные устройства [ править ]
- Intel 8282/8283 : 8-битная защелка
- Intel 8284 : тактовый генератор
- Intel 8286/8287 : двунаправленный 8-битный драйвер. Обе версии Intel I8286/I8287 (промышленного класса) были доступны по цене 16,25 долларов США в количестве 100 штук. [20]
- Intel 8288 : контроллер шины
- Intel 8289 : арбитр шины
- Intel 8087 : математический сопроцессор
См. также [ править ]
- архитектура x86
- Персональный компьютер IBM
- Моторола 68008
- Максимальный режим
- Минимальный режим
- iAPX для обозначения iAPX
- Профессиональный графический контроллер
- Количество транзисторов
Примечания [ править ]
- ^ В частности, наиболее очевидным изменением является то, что шинный модуль 8088 будет предварительно выбирать байт, когда это возможно, если хотя бы один байт в очереди пуст; шинный модуль 8086 не будет выполнять предварительную выборку, если хотя бы два из шести байтов очереди не пусты, так что он может выполнить предварительную выборку всего выровненного 16-битного слова, что он делает за один цикл шины. 8088, имеющий 8-битную внешнюю шину данных, может извлекать только один байт за цикл шины, поэтому ожидание предварительной выборки целого слова не принесет никакой пользы и приведет только к задержке, уменьшая вероятность того, что следующий байт инструкции уже находится в предварительной выборке. очередь, когда это необходимо.
- ^ ALU означает одну из инструкций ADD, ADC, SUB, SBC, CMP, AND, OR, XOR, TEST.
- ^ В 8088 команда сдвига с подразумеваемым счетчиком сдвига, равным 1, которая может выполняться за два такта, имеет длину два байта, и поэтому для ее выборки требуется восемь тактов.
- ^ Большая часть технической информации в этом разделе взята из руководства пользователя Intel iAPX 86,88, август 1981 г. (номер заказа: 210201-001), выпущенного корпорацией Intel.
- ^ IBM Instruments Позже использовался для лабораторного компьютера .
- ^ В обмен на предоставление Intel прав на проекты пузырьковой памяти . Однако из-за жесткой конкуренции со стороны японских производителей, которым удалось снизить стоимость, Intel вскоре покинула этот рынок и переключила внимание на микропроцессоры.
- ^ Компоненты 68000 в то время не были широко доступны, хотя Motorola 6800 . в некоторой степени можно было использовать компоненты
Ссылки [ править ]
- ^ История ЦП – Музей ЦП – Жизненный цикл ЦП .
- ^ «Руководство пользователя iAPX 86, iAPX 88» (PDF) .
- ^ «Микропроцессоры iAPX 86, 88, 186, часть I, Мастерская» (PDF) . Июнь 1984 года.
- ^ «Справочное руководство для программистов iAPX 286» (PDF) . 1983. стр. 1-1.
- ^ «Краткое справочное руководство по микропроцессору» . Интел . Интел . Проверено 1 июня 2019 г.
- ^ «Краткое справочное руководство по микропроцессору» . Интел . Интел . Проверено 1 июня 2019 г.
- ^ Сингх, Рену (2006). Микропроцессорный интерфейс и приложения . Нью Эйдж Интернэшнл. стр. 2–27. ISBN 81-224-1400-1 . Проверено 1 июня 2019 г.
- ^ Говиндараджалу, Б. (2002). IBM PC и клоны: оборудование, устранение неполадок и обслуживание (2-е изд.). МакГроу-Хилл. п. 248. ИСБН 978-0-07-048286-9 . Проверено 1 июня 2019 г.
- ^ Гилдер, Джордж Ф. (10 октября 2013 г.). Израильский тест . Книги встреч . п. 100. ИСБН 978-1594036125 .
- ^ Кук, Карен (17 апреля – 1 мая 1984 г.). «Commodore добавляет Hyperion и чипы» . Журнал ПК . Том. 1, нет. 8. с. 52.
- ^ Корпорация Intel, «NewsBit: Intel лицензирует Oki на версии CMOS нескольких продуктов», Solutions, июль/август 1984 г., стр. 1.
- ^ «Intel представляет 8-битный MPU с 16-битной архитектурой» . Компьютерный мир . Том. XIII, нет. 20. 14 мая 1979. с. 71 . Проверено 21 ноября 2011 г.
- ^ Корпорация Intel, «Компоненты микрокомпьютера: Intel представляет 8089 IOP, процессор ввода-вывода для усовершенствованного семейства процессоров 8088/8086, первый из серии новых компонентов подсистемы», Intel Preview, май/июнь 1979 г., стр. 9.
- ^ Корпорация Intel, «News Bits», Solutions, июль/август 1981 г., стр. 1
- ^ Корпорация Intel, «NewsBits: Новости из второго источника», Solutions, январь/февраль 1985 г., стр. 1
- ^ Jump up to: Перейти обратно: а б Справочник по 16-битному процессору Osborne (Адам Осборн и Джерри Кейн) ISBN 0-931988-43-8 .
- ^ «Olympus MIC-D: Галерея интегральных схем — микропроцессор Intel 8088» . Архивировано из оригинала 19 мая 2009 года.
- ^ Фрайбергер, Пол (23 августа 1982 г.). «Билл Гейтс, Microsoft и персональный компьютер IBM» . Инфомир . Том. 4, нет. 33. с. 22 . Проверено 29 января 2015 г.
- ^ Эшборн, Джим; «Усовершенствованная упаковка: небольшое дело имеет большое значение», корпорация Intel, Solutions, январь/февраль 1986 г., стр. 2
- ^ 8086 Доступно для промышленной среды, специальный выпуск Intel Preview: 16-битные решения, корпорация Intel, май/июнь 1980 г., стр. 29.