Скачиваний:
23
Добавлен:
11.05.2015
Размер:
998.91 Кб
Скачать

5. Особенности архитектуры эвм типа ibm-рс

5.1. Введение

В основном, в этом разделе будет рассматриваться программирование на языке Ассемблер машин IBM-PC. Эти ЭВМ строятся на базе процессора Intel 8086, а так же на более поздних семействах процессоров Intel, программно совместимых с Intel 8086.

5.2. Исторический обзор процессоров клона 80х86

Рассматриваемые в данной работе машины основаны на процессорах различных фирм, однако, свое начало они ведут от процессоров фирмы Intel: 8086 и 8088.

Первый процессор 8086 был применен фирмой IBM в вычислительных системах класса XT, что расшифровывается как exTended Technology (расширенная по сравнению с 8088 технология). Тактовая частота составляла всего 4,77 МГц, оперативная память 256 кБ. Центральные процессоры (CPU 8086 и 8088) работают с 16-битными словами, однако 8088, появившийся позднее 8086, имеет внешнюю шину данных только 8 бит, что было сделано для удобства его стыковки с разработанными ранее и широко распространенными в то время восьмибитными схемами, что, однако, уменьшило его быстродействие.

Полностью совместимы с 8086 и 8088 процессоры фирмы NEC — V20 и V30 соответственно.

Появившийся позднее процессор 80186 являлся лишь улучшенной по сравнению с 8086 моделью, его принципиальные отличия несущественны, а приличное количество ошибок не позволило продержаться долго.

В 1984 году фирма IBM представила первый IBM AT (Advanced Technology). Процессор 80286 обладал несколько расширенным набором команд по сравнению с 8086, но главное его отличие от предыдущих процессоров и не только фирмы Intel состояло в наличии защищенного режима (protect mode) [4]. Этот режим давал возможность работы многозадачных операционных систем за счет системы взаимной защиты программ друг от друга. Режим решал следующие задачи:

  • защита памяти: операционная система имеет возможность защитить участки памяти от воздействия программ, выполняемых под ее управлением. Защита может быть различного уровня: запрещение чтения и записи, запрещение записи, запрещение перехода на защищенные адреса;

  • защита внешних устройств: возможность генерации прерывания и передача управления системе при попытке программы обратиться к портам ввода/вывода;

  • возможность использования всей шины адреса, которая у процессора 80286 уже составляла 24 линии, что позволяло адресовать до 16 Мб адресного пространства, а у последующих процессоров еще более расширялась;

  • возможность работы с виртуальной памятью — областями дискового пространства, видимого прикладными программами как ОЗУ. Этот режим поддерживается операционной системой и процессором совместно, т.е. быстрые операции (проверка и установка флагов наличия необходимых данных) процессор производит самостоятельно, передавая управление системе лишь на время сложных операций (дочтение памяти или освобождения ее с возможным «сбросом» на диск появившихся изменений). Размер виртуального адресного пространства CPU 80286 — 1 Гб.

Фактически до 80286 существовали многозадачные и многопользовательские системы (например, система XENIX), но их работа поддерживалась специальной аппаратурой, встраиваемой в машину. В машинах на базе 80286 процессора задачи защиты выполняет встроенный в CPU блок устройства управления памятью (MMU).

Все эти нововведения позволяют легко решить вопросы типа: что будет, если одна из задач, выполняющихся параллельно с другими, «зависнет» или попытается испортить данные другой программы или ОС? Ответ очень прост — ОС может запретить программе работу вне выделенной ей памяти и тем самым убережет себя и другие задачи от нештатных ситуаций.

Для совместимости с процессором 8086 80286 запускается в начале в реальном режиме (real mode) и затем, только по команде ОС или другой, «умеющей» использовать protect mode программе переходит в последний режим. Программное переключение обратно в real mode возможно, но только по команде или разрешению инициировавшей protect mode программы.

Кроме того, для увеличения быстродействия в 80286 введена конвейеризация, благодаря чему несколько устройств процессора могут работать одновременно. 80286 имеет четыре конвейерных устройства: командное, операционное, адресное и шинное. Рабочая частота процессора 80286 составляла 6-8 МГц и к моменту «вымирания» этих систем достигала значений 20 МГц.

Следующий шаг — 80386 процессор, появившийся в 1986 году, согласно [9] был представлен фирмой Compaq. Он имеет следующие новшества:

  • расширены РОНы: теперь 16-битные регистры ax, bx, cx, dx, sp, bp, di, si являются лишь младшими частями 32-битных регистров eax, ebx, ecx, edx, esp, ebp, edi, esi. Также добавлены новые регистры сегментов fs и gs;

  • за счет расширения регистров расширено адресное пространство: физическая память  до 1 Гб, виртуальная — до 4 Гб;

  • введен виртуальный режим — возможность эмуляции до 256 процессоров 8086 одновременно;

  • на материнских1 платах 80386 впервые устанавливается кэш-память — более быстрые, но и более дорогие элементы памяти (объемом меньше, чем общий объем ОЗУ) содержат наиболее часто используемые данные. Кэш-памятью управляет специальный кэш-контроллер.

Введение виртуального режима позволило относительно просто создать многозадачные системы с возможностью квазиодновременного выполнения задач (Windows), а также создать драйвер EMM386.EXE, широко использующий режим виртуального адреса (virtual adress mode). Т.е. 80386 процессор может преобразовывать задаваемые программой абсолютные адреса в некоторые виртуальные, «удобные» ОС (это используется при работе системы в многозадачном режиме).

Как 8086 отличается от 8088, так и 80386DX отличается от 80386SX — у последнего внешняя шина данных имеет ширину 16 бит, в то время как у DX — 32 бита.

Наиболее быстрый процессор серии 80386 имел частоту 40 МГц и был представлен фирмой AMD.

Процессор 80486 не имеет почти никаких потрясающих нововведений против 80386. У него слегка расширен набор команд, введен кэш второго уровня, расположенный внутри процессора — еще меньший объемом, чем кэш первого уровня, еще более быстрый и, как и раньше, неуправляемый программно. Кроме того, сопроцессор теперь находится в одном корпусе с главным процессором (у модели 80486DX).

Процессор 80486 имел три разновидности, отличающиеся тактовой частотой: 80486DX, 80486DX/2, 80486DX/4. Если первый работал на частоте 33 МГц, то второй — 66 МГц и третий — 75 или 100 МГц. Они также отличаются объемом внутренней кэш-памяти: 8, 8 и 16 Кб. Кроме того, DX/4 питается от 3,45 В, а не от 5, как предыдущие модели.

Один из следующих процессоров — 80586 или P5 или Pentium2. По сравнению с предыдущими процессорами у него расширена шина данных до 64 бит. От своих предшественников из семейства 80x86 этот процессор отличался еще и внутренней структурой — реализована гарвардская структура с разделением потоков команд и данных с помощью введения отдельных блоков кэш-памяти для хранения команд и данных.

В процессоре использована суперскалярная архитектура, при которой несколько операций одновременно выполняются в четырех параллельно работающих исполнительных устройствах: два  для обработки целочисленных операндов, одно  для обработки чисел с плавающей точкой, одно для команд условных переходов. Исполнение команд организовано в виде конвейера, содержащего 5 последовательных ступеней. Таким образом, в конвейере может одновременно находиться пять команд на различных ступенях исполнения.

Реализована процедура «предсказания переходов», которая позволяет предварительно (до вычисления условия ветвления) определять наиболее вероятное направление ветвления. Благодаря этому удалось значительно сократить количество перезагрузок исполнительного конвейера при выполнении команд условных переходов. В результате обеспечивается эффективное «конвейерное» выполнение поступающих команд и достигается существенное повышение производительности: за один такт можно получить результаты для двух очередных команд (средняя производительность составляла 1 результат за такт). Процессор имеет два блока кэш-памяти - для команд и данных, емкостью по 8 Кбайт каждый, 32-разрядную шину адреса и 64-разрядную внешнюю шину данных, которая позволяет производить быструю (по 8 байт за такт) загрузку и выгрузку этой кэш-памяти.

Одновременно с выпуском Intel 80586 появился процессор К5 фирмы AMD, имеющий внешний интерфейс процессора 80586, но концептуально больше похожий на 80686. Вышел также процессор Nx586 фирмы NexGen по производительности практически не уступающий Intel 80586, но не совместимый по внешнему интерфейсу, поэтому требующий специального набора периферийных схем.

Отсчет шестого поколения процессоров начался с Pentium Pro, выпущенного в 1995 году. Основной особенностью этого процессора является размещение в общем корпусе двух кристаллов: процессора с кэш-памятью 1-го уровня (отдельные КЭШи для команд и данных по 8 Кбайт) и общей кэш-памятью команд-данных 2-го уровня емкостью 256 Кбайт.

Для повышения производительности длина исполнительного конвейера в процессоре Pentium Pro увеличена до 12 ступеней. В процессоре реализована предварительная выборка операндов из памяти и выполнение операций по мере готовности операндов (динамическое исполнение). При этом естественная последовательность команд не соблюдается и следующая команда может выполняться раньше предыдущей, если для нее готовы необходимые операнды. В результате процессор Pentium Pro при обработке 32-разрядных операндов обеспечивает значительно более высокую производительность, чем Pentium (в 1,5-2,0 раза при той же тактовой частоте). Однако при обработке 16-разрядных операндов эффективность загрузки длинного конвейера снижается и существенное повышение производительности не достигается (в ряде случаев наблюдается даже снижение).

Сейчас к этому поколению относятся Pentium II (1997г.), Celeron, Xeon (1998г.) и, наконец, Pentium III (1999г.). От предыдущего поколения эти процессоры главным образом отличает применение технологии speculation: «динамического исполнения» (изменения порядка исполнения инструкций) и архитектура двойной независимой шины. Здесь вторичному КЭШу, введенному в процессор (но не во все модели), выделяется отдельная высокоскоростная магистраль.

Использование двух независимых шин является характерной особенностью процессоров семейства Intel P6. Основная системная шина FSB (Front Side Bus) работает с тактовой частотой, определяемой возможностями процессора и системной платы компьютера.

Отдельная высокоскоростная шина BSB (Back Side Bus) используется для подключения к процессору кэш-памяти 2-го уровня. Шина BSB обеспечивает обмен с частотой, составляющей от половины до полной внутренней частоты процессора, которая для последних моделей семейства P6 достигает 500-800 МГц. В результате обращение к кэш-памяти производится со значительно меньшим временем выборки, чем при обращении к основной оперативной памяти.

Одним из направлений развития семейства Pentium стала реализация специальной группы команд для одновременной обработки нескольких упакованных операндов. Такие команды обеспечивают значительное ускорение процедур цифровой обработки аудио- и видеосигналов, поэтому они получили название команд мультимедийного расширения ММХ (MultiMedia Extensions). Выпуск процессоров Pentium ММХ, который выполнял 57 дополнительных ММХ-команд, начался в январе 1997 г. Он имел отдельные КЭШи команд и данных емкостью по 16 Кбайт.

В последующих процессорах семейства Р6 проведено объединение процессорного ядра Pentium Pro с технологией мультимедийной обработки данных ММХ. Первым процессором, где было реализовано такое объединение, стал Pentium II, имевшее кодовое название Deshutes, выпуск которого начался мае 1997 г.

Процессор содержал 7,5 млн транзисторов и имел размещенную на кристалле кэш-память команд и данных емкостью по 16 Кбайт каждая. Кэш-память 2-го уровня емкостью до 2 Мбайт реализуется на нескольких кристаллах, которые монтируются вместе с процессором на общей печатной плате. Эта плата имеет краевой разъем для подключения к системной шине и закрывается крышкой. Такая разновидность корпуса называется картриджем с односторонними контактами SECC (Single Edge Contact Cartridge). Благодаря многокристальной реализации кэш-памяти и использования относительно дешевого картриджа стоимость процессоров Pentium II вдвое меньше, чем стоимость Pentium Pro с аналогичными характеристиками.

Процессоры Pentium II сочетают архитектуру Pentium Pro с технологией MMX. По сравнению с Pentium Pro удвоен размер первичного КЭШа (16+16 Кбайт), размер вторичного КЭШа варьируется от 0 до 2 Мбайт.

Первые процессоры Pentium II (до выпуска они имели кодовое название Klamath), появившиеся весной 1997 года, насчитывали около 7,5 млн транзисторов только в процессорном ядре и выполнялись по технологии 0,35 мкм. Они имели тактовые частоты ядра 233, 266 и 300 МГц при частоте системной шины 66,6 МГц. При этом вторичный кэш работал на половинной частоте ядра и кэшировал только первые 512 Мбайт пространства памяти.

Процессор на 333 МГц имеет частоту шины 66,6 МГц, а процессоры на 350 и выше уже имеют частоту системной шины 100 МГц. Для работы на такой частоте эффективна оперативная память на микросхемах SDRAM (синхронная динамическая память), у которой в середине пакетного цикла данные передаются в каждом такте.

Начиная с процессоров 350 МГц объем кэшируемой памяти увеличили до 4 Гбайт.

Для комплектации недорогих персональных компьютеров средней производительности предназначены процессоры Celeron, выпуск которых начат в апреле 1998 г. Первые модели Celeron, выпускаемые по технологии с размерами 0,25 мкм, имели тактовые частоты 266 и 300 МГц и не содержали кэш-памяти 2-го уровня. В последующих моделях с целью повышения производительности была введена кэш-память емкостью 128 КБ, расположенная на кристалле процессора.

Кроме широко известных особенностей вторичного кэша (либо его нет, либо 128 К), процессор Celeron от Pentium II имеет следующие отличия:

  • разрядность шины адреса сокращена с 36 до 32 бит (адресуемая память  4 Гбайт);

  • контроль паритета шины адреса и шины запроса, ECC-контроль шины данных и контроль неисправимых ошибок шины, а также сигнал инициализации шины отсутствует;

  • процессоры предназначены только для одиночных конфигураций;

  • коэффициенты умножения частоты, по крайней мере, официально, отсутствуют.

Размещаются процессоры Celeron в корпусах со штыревыми выводами, которые включаются в панельки типа Socket 370 на системной плате, или в картридже типа SEPP (Single Edge Processor Package) с уменьшенными размерами и без защитной крышки.

Для применения в высокопроизводительных серверах и рабочих станциях разработан процессор Pentium II Хеоn, выпуск которого начался в июне 1998 г. Выпускаемый по технологии с минимальными размерами 0,25 мкм этот процессор имеет тактовую частоту до 450 МГц и содержит развитые средства для реализации мультипроцессорных систем, обеспечивая совместную работу до 8 процессоров. Он размещается в картридже типа SECC увеличенного размера — 15,2х12,7х1,9 см, в котором располагается также кэш-память 2-го уровня емкостью до 2 Мбайт. Процессор имеет средства контроля и коррекции ошибок, обеспечивающие исправление 1-битовых (одинарных) и выявление 2-битовых (двойных) ошибок в принимаемой информации. Он содержит термодатчик и схему контроля, прерывающую работу процессора при выходе температуры кристалла из заданного диапазона.

В феврале 1999 г. компания Intel выпустила процессор Pentium III. Теперь идею MMX  одновременное исполнение одной инструкции над группой операндов распространили и на инструкции с плавающей точкой: SSE (Streaming SIMD Extensions) — основной козырь Pentium III (70 команд). Правда, несколько раньше то же самое (но в меньшем объеме) было сделано фирмой AMD — расширение 3DNow! (45 команд) было реализовано уже в процессорах K6-2 для сокета 7.

Для них ввели новый слот-2, который позволяет строить 2-, 4- и даже 8-процессорные системы. Объем вторичного кэша: 512 Кбайт, 1 или 2 Мбайт при кэшировании до 64 Гбайт (все адресное пространство при 36-битной адресации).

По своим остальным характеристикам процессоры Pentium III практически аналогичны Pentium II и предназначены для использования вместо них в новых моделях высокопроизводительных персональных компьютеров. В конце декабря 1999 г. были представлены модели процессоров Pentium III с тактовыми частотами 750 и 800 МГц. Начиная с 2000 года практически все процессоры выпускаются по 0,18 мкм технологии.

Процессор Pentium 4 (ноябрь 2000г.) имеет новую микроархитектуру, которую Intel называет NetBurst, содержит 42 млн. транзисторов. При проектировании Pentium 4 ставилась задача достижения экстремально высоких тактовых частот и, естественно, более высокой производительности, чем у Pentium III. Для этого применен очень длинный конвейер и принят целый ряд мер для снижения издержек, сопутствующих этому решению. Усовершенствована кэш-память, введено новое расширение SSE2 (144 инструкции). Одним из наиболее значительных шагов вперед стал переход на новую быстродействующую системную шину — пропускная способность шины увеличилась с 1 Гб/с до 3,2 Гб/с. Начальные тактовые частоты Pentium 4 — 1,3; 1,4; 1,5 ГГц.

Среди элементов архитектуры NetBurst фирма Intel выделяет 4 основных: гиперконвейеризованную технологию (Hyper Pipelined Technology), быстрый исполнительный механизм (Rapid Execution Engine), трассирующую кэш-память (Execution Trace Cache) и процессорную шину, работающую на частоте 400 МГц.

Hyper Pipelined Technology — это ключевой момент, определяющий почти все основные особенности архитектуры Pentium 4. Процессор имеет очень длинный, 20-стадийный конвейер, так что действительно является гиперконвейеризованным, особенно с точки зрения трудности нейтрализации негативных эффектов. Для сравнения: процессоры Р5 (Pentium, Pentium ММХ) имеют 5-стадийный конвейер, процессоры Р6 (Pentium Pro, Pentium II, Pentium III, Celeron) — 10-стадийный, процессоры К7 (Athlon и Duron) — 12-стадийный.

Rapid Execution Engine является одним из решений, позволившим получить в новом процессоре высокий уровень производительности по целочисленным операциям, несмотря на издержки сверхдлинного конвейера. Фактически это 2 работающие параллельно арифметико-логических устройства с удвоенной по сравнению с обычными пиковой производительностью.

Вся подсистема кэш-памяти процессора Pentium 4 очень существенно переработана по сравнению с Pentium III. В полтора раза снижены издержки при обращении к кэш-памяти 1-го уровня для данных, для чего пришлось уменьшить ее объем до 8 Кб. Кэш-памяти 1-го уровня для инструкций в привычном понимании нет вообще. Вместо нее — специальная кэш-память Execution Trace Cache для уже декодированных инструкций (объем около 92 Кб), способная хранить до 12 тыс. микроопераций, причем имеются возможности для быстрого удаления ненужных данных. Резко увеличена пропускная способность кэш-памяти 2-го уровня.

Основным элементом, устраняющим свойственные архитектуре Р6 узкие места и способствующие достижению высокой производительности, является новая системная шина. Эффективная частота ее функционирования увеличена до 400 МГц. Тактовая частота оставлена равной 100 МГц, но за такт передается 4 блока информации.

Соседние файлы в папке Введение в вычислительную технику.