МИКРОПРОЦЕССОРЫ ФИРМЫ INTEL. 1. Структурная схема МП Рассмотрим структурную схему микропроцессоров фирмы Intel последнего семейства P6 (Pentium Pro/II/III).

Презентация:



Advertisements
Похожие презентации
Лекция 6. Способы адресации в микропроцессорных системах.
Advertisements

Процессор – это блок, предназначенный для автоматического считывания команд программы, их расшифровки и выполнения.
Архитектуры с параллелизмом на уровне команд. Два класса Суперскалярные процессоры Процессоры с длинным командным словом.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 11 Микрокоманды и микрооперации профессор ГУ-ВШЭ, доктор технических наук Геннадий Михайлович.
Микропроцессоры Лекция 6. СТРУКТУРА ЭЛЕМЕНТАРНОГО МИКРОПРОЦЕССОРА (ЭМП) Основным устройством всех цифровых систем (ЦС) является центральный процессор.
Тема 2. Способы адресации и система команд МП. Непосредственная адресация Суть способа. Требуемые данные (#data ̶ непосредственный операнд, константа)
Лекция 4. Режимы работы микропроцессора. Взаимодействие микропроцессора с остальными устройствами Взаимодействие МП с остальными устройствами МПС происходит.
Структурная схема компьютера Взаимодействие устройств компьютера.
Системы с несколькими конвейерами В процессорах Intel конвейер появился только начиная с 486 модели. Но уже в Pentium-е было два конвейера из 5 стадий:
Исполнение программы Энциклопедия учителя информатики Газета «Первое сентября»
Схема компьютера Взаимодействие устройств компьютера.
Структурная схема компьютера Взаимодействие устройств компьютера.
Основная микросхема компьютера, в которой и производятся все вычисления. На процессоре установлен большой медный ребристый радиатор, охлаждаемый вентилятором.
Микропроцессоры Архитектура ЭМП Лекция 9. Архитектура ЭМП В предыдущем параграфе мы изучили схему выводов и их назначение у типового микропроцессора.
Процессор В ПК устройством, которое обрабатывает все виды информации (числовую, текстовую, графическую, видео- и звуковую), является МИКРОПРОЦЕССОР или.
Тема 1. Общие вопросы организации микропроцессорных систем.
Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
Схема компьютера Взаимодействие устройств в компьютере.
Магистрально-модульный принцип построения компьютера Устройство компьютера.
Физические модели баз данных Файловые структуры, используемые для хранения информации в базах данных.
Транксрипт:

МИКРОПРОЦЕССОРЫ ФИРМЫ INTEL

1. Структурная схема МП Рассмотрим структурную схему микропроцессоров фирмы Intel последнего семейства P6 (Pentium Pro/II/III). Для иллюстрации используем рис Рассмотрим структурную схему микропроцессоров фирмы Intel последнего семейства P6 (Pentium Pro/II/III). Для иллюстрации используем рис Кэш-память этих микропроцессоров разделена на две части для кода и для данных. Это обеспечивает бесперебойную поставку машинных инструкций и эле­ментов данных на конвейер микропроцессора. Исходные данные для кэш-памяти первого уровня обеспечивает кэш-память второго уровня. Заметьте, что инфор­мация из нее поступает на устройство шинного интерфейса и далее в соответст­вующую кэш-память первого уровня по 64-битной шине. При этом благодаря более быстрому обновлению содержимого кэш-памяти первого уровня обеспечи­вается высокий темп работы микропроцессора. Кэш-память этих микропроцессоров разделена на две части для кода и для данных. Это обеспечивает бесперебойную поставку машинных инструкций и эле­ментов данных на конвейер микропроцессора. Исходные данные для кэш-памяти первого уровня обеспечивает кэш-память второго уровня. Заметьте, что инфор­мация из нее поступает на устройство шинного интерфейса и далее в соответст­вующую кэш-память первого уровня по 64-битной шине. При этом благодаря более быстрому обновлению содержимого кэш-памяти первого уровня обеспечи­вается высокий темп работы микропроцессора. Наиболее ценным свойством микропроцессорной архитектуры семейства Р6 явля­ется реализация механизма интеллектуальной обработки потока команд, называе­мого «динамическим выполнением». Этот механизм основывается на следующих свойствах, некоторые из них уже существовали сами по себе в прежних моделях микропроцессоров. Перечислим их. Наиболее ценным свойством микропроцессорной архитектуры семейства Р6 явля­ется реализация механизма интеллектуальной обработки потока команд, называе­мого «динамическим выполнением». Этот механизм основывается на следующих свойствах, некоторые из них уже существовали сами по себе в прежних моделях микропроцессоров. Перечислим их. Предсказание переходов, в том числе вложенных. Эта технология не нова, од­нако конкретные модели микропроцессоров могут иметь некоторые особенности ее реализации. В микропроцессорах ряда P6 такая технология реализует­ся устройством выборки/декодирования (см. рис 4.1.). Основная задача меха­низма предсказания исключить перезагрузку конвейера. Предсказание переходов, в том числе вложенных. Эта технология не нова, од­нако конкретные модели микропроцессоров могут иметь некоторые особенности ее реализации. В микропроцессорах ряда P6 такая технология реализует­ся устройством выборки/декодирования (см. рис 4.1.). Основная задача меха­низма предсказания исключить перезагрузку конвейера.

Динамический анализ потока данных. Анализ проводится с целью определе­ния зависимостей команд программы от данных и регистров процессора с по­следующей оптимизацией выполнения потока команд. Главный критерий здесь максимально полная загрузка конвейера. Требование соблюдения дан­ного критерия позволяет даже нарушать исходный порядок следования команд при поступлении на конвейер. Сбоя при этом не будет, так как внешне логика работы программы будет сохранена. Подобная внутренняя неупорядоченность исполнения команд позволяет держать конвейер загруженным даже в то вре­мя, когда данные в кэш-памяти второго уровня отсутствуют и необходимо тратить время на обращение за ними в оперативную память. Динамический анализ потока данных. Анализ проводится с целью определе­ния зависимостей команд программы от данных и регистров процессора с по­следующей оптимизацией выполнения потока команд. Главный критерий здесь максимально полная загрузка конвейера. Требование соблюдения дан­ного критерия позволяет даже нарушать исходный порядок следования команд при поступлении на конвейер. Сбоя при этом не будет, так как внешне логика работы программы будет сохранена. Подобная внутренняя неупорядоченность исполнения команд позволяет держать конвейер загруженным даже в то вре­мя, когда данные в кэш-памяти второго уровня отсутствуют и необходимо тратить время на обращение за ними в оперативную память. Интеллектуальное исполнение. Это свойство характеризует способность мик­ропроцессора реализовать неупорядоченное исполнение команд, восстановив впоследствии исходный порядок команд и организовав передачу результатов работы команд в порядке, предусмотренном исходным алгоритмом. Данная возможность обеспечивается разделением устройства выборки и исполнения команд и устройства формирования результата (см. рис 4. 1). Все промежуточ­ные результаты работы команд во время их исполнения (нахождения их на конвейере) размещаются во временных регистрах. Блок удаления и восстанов­ления постоянно просматривает буфер команд и ищет те из них, которые уже исполнены и не имеют связи по данным с другими командами или не нахо­дятся в ветвях незавершенных переходов. Когда такие команды найдены, уст­ройство удаления и восстановления результатов помещает сформированные ими данные в память или регистры процессора в порядке, заданном исходным алгоритмом. После этого команды удаляются из конвейера. Интеллектуальное исполнение. Это свойство характеризует способность мик­ропроцессора реализовать неупорядоченное исполнение команд, восстановив впоследствии исходный порядок команд и организовав передачу результатов работы команд в порядке, предусмотренном исходным алгоритмом. Данная возможность обеспечивается разделением устройства выборки и исполнения команд и устройства формирования результата (см. рис 4. 1). Все промежуточ­ные результаты работы команд во время их исполнения (нахождения их на конвейере) размещаются во временных регистрах. Блок удаления и восстанов­ления постоянно просматривает буфер команд и ищет те из них, которые уже исполнены и не имеют связи по данным с другими командами или не нахо­дятся в ветвях незавершенных переходов. Когда такие команды найдены, уст­ройство удаления и восстановления результатов помещает сформированные ими данные в память или регистры процессора в порядке, заданном исходным алгоритмом. После этого команды удаляются из конвейера.

Таким образом, реализация динамического исполнения команд позволяет орга­низовать наиболее оптимальное прохождение команд программы через исполни­тельное устройство микропроцессора. А если учесть то, что в микропроцессорах семейства Р6 команды исполняются в три потока одновременно, то становятся понятными все преимущества такого подхода. Кон­вейер микропроцессоров семейства Р6 имеет принципиальное отличие от кон­вейеров I486 и Pentium. Перечисленные выше три концепции представляют собой основу работы этого конвейера. Таким образом, реализация динамического исполнения команд позволяет орга­низовать наиболее оптимальное прохождение команд программы через исполни­тельное устройство микропроцессора. А если учесть то, что в микропроцессорах семейства Р6 команды исполняются в три потока одновременно, то становятся понятными все преимущества такого подхода. Кон­вейер микропроцессоров семейства Р6 имеет принципиальное отличие от кон­вейеров I486 и Pentium. Перечисленные выше три концепции представляют собой основу работы этого конвейера. Расширенная схе­ма микропроцессора ряда P6 показана на рис Строго говоря, на схеме показан только один из трех конвейеров микропроцессора и некоторые общие для всех трех конвейеров элементы (кэш-па­мять, шины и т. д.). Из схемы рис. 4 1 видно, что структурно микропроцессор состоит из следующих подсистем: Расширенная схе­ма микропроцессора ряда P6 показана на рис Строго говоря, на схеме показан только один из трех конвейеров микропроцессора и некоторые общие для всех трех конвейеров элементы (кэш-па­мять, шины и т. д.). Из схемы рис. 4 1 видно, что структурно микропроцессор состоит из следующих подсистем: - Подсистема памяти. Состоит из системной шины, кэша второго уровня L2, устройства шинного интерфейса, кэша первого уровня L1 (инструкций и дан­ных), устройства связи с памятью и буфера переупорядочивания запросов к памяти; - Подсистема памяти. Состоит из системной шины, кэша второго уровня L2, устройства шинного интерфейса, кэша первого уровня L1 (инструкций и дан­ных), устройства связи с памятью и буфера переупорядочивания запросов к памяти; - Устройство выборки/декодирования. Состоит из устройства выборки инструк­ций, буфера предсказаний переходов, декодера инструкций, блока микропро­граммного управления и таблицы регистровых алиасов; - Устройство выборки/декодирования. Состоит из устройства выборки инструк­ций, буфера предсказаний переходов, декодера инструкций, блока микропро­граммного управления и таблицы регистровых алиасов; - Буфер команд. Содержит команды, переупорядоченные для оптимальной за­грузки конвейера; - Буфер команд. Содержит команды, переупорядоченные для оптимальной за­грузки конвейера; Устройство диспетчеризации/исполнения. Содержит буфер микроопераций, готовых к исполнению, пять исполнительных устройств: два устройства для исполнения целочисленных операций, два с плавающей точкой и устрой­ство связи с памятью Устройство диспетчеризации/исполнения. Содержит буфер микроопераций, готовых к исполнению, пять исполнительных устройств: два устройства для исполнения целочисленных операций, два с плавающей точкой и устрой­ство связи с памятью

Опишем подробно порядок функционирования схемы рис Это описание не является строгим, кое-где, для лучшего понимания, оно упрощено. Подсистема памяти для процессора семейства Р6 состоит из опе­ ративной памяти, первичного (L1) и вторичного кэша (L2). Устройство шинного интерфейса обращается к оперативной памяти системы через внешнюю систем­ную шину. Опишем подробно порядок функционирования схемы рис Это описание не является строгим, кое-где, для лучшего понимания, оно упрощено. Подсистема памяти для процессора семейства Р6 состоит из опе­ ративной памяти, первичного (L1) и вторичного кэша (L2). Устройство шинного интерфейса обращается к оперативной памяти системы через внешнюю систем­ную шину.

Эта 64-разрядная шина ориентирована на обработку запросов, то есть каждый шинный запрос обрабатывается отдельно и требует обратной реакции. Пока устройство шинного интерфейса ожидает ответа на один запрос шины, воз­можно формирование многочисленных дополнительных запросов. Все они обслу­живаются в порядке поступления. Считываемые по запросу данные помещаются в кэш второго уровня. То есть микропроцессор посредством устройства шинного интерфейса читает команды и данные из кэша второго уровня. Устройство шин­ного интерфейса взаимодействует с кэшем второго уровня через 64-разрядную шину кэша, которая также ориентирована на обработку запросов и работает на тактовой частоте процессора. Доступ к кэшу первого уровня осуществляется че­рез внутренние шины на тактовой частоте микропроцессора. Синхронная работа с системной памятью кэш-памяти обоих уровней осуществляется благодаря спе­циальному протоколу. Эта 64-разрядная шина ориентирована на обработку запросов, то есть каждый шинный запрос обрабатывается отдельно и требует обратной реакции. Пока устройство шинного интерфейса ожидает ответа на один запрос шины, воз­можно формирование многочисленных дополнительных запросов. Все они обслу­живаются в порядке поступления. Считываемые по запросу данные помещаются в кэш второго уровня. То есть микропроцессор посредством устройства шинного интерфейса читает команды и данные из кэша второго уровня. Устройство шин­ного интерфейса взаимодействует с кэшем второго уровня через 64-разрядную шину кэша, которая также ориентирована на обработку запросов и работает на тактовой частоте процессора. Доступ к кэшу первого уровня осуществляется че­рез внутренние шины на тактовой частоте микропроцессора. Синхронная работа с системной памятью кэш-памяти обоих уровней осуществляется благодаря спе­циальному протоколу. Запросы на операнды из памяти от команд в исполнительном устройстве микро­процессора обеспечиваются посредством устройства связи с памятью и буфера переупорядочивания запросов к памяти. Эти два устройства были специально включены в схему для того, чтобы обеспечить бесперебойное снабжение испол­няемых команд необходимыми данными. Особо стоит подчеркнуть роль буфера переупорядочивания запросов к памяти. Он отслеживает все запросы к операн­дам в памяти и выполняет функции планирующего устройства. Если нужные для очередной операции данные в кэш- памяти данных (L1) отсутствуют, то буфер переупорядочивания запросов к памяти автоматически передает информацию о неудачном обращении к данным кэшу второго уровня (L2). Если и в кэше L2 нужных данных не оказалось, то буфер переупорядочивания запросов к памяти заставляет устройство шинного интерфейса сформировать запрос к оперативной памяти компьютера Запросы на операнды из памяти от команд в исполнительном устройстве микро­процессора обеспечиваются посредством устройства связи с памятью и буфера переупорядочивания запросов к памяти. Эти два устройства были специально включены в схему для того, чтобы обеспечить бесперебойное снабжение испол­няемых команд необходимыми данными. Особо стоит подчеркнуть роль буфера переупорядочивания запросов к памяти. Он отслеживает все запросы к операн­дам в памяти и выполняет функции планирующего устройства. Если нужные для очередной операции данные в кэш- памяти данных (L1) отсутствуют, то буфер переупорядочивания запросов к памяти автоматически передает информацию о неудачном обращении к данным кэшу второго уровня (L2). Если и в кэше L2 нужных данных не оказалось, то буфер переупорядочивания запросов к памяти заставляет устройство шинного интерфейса сформировать запрос к оперативной памяти компьютера

Устройство выборки/декодирования читает поток команд из кэша команд (L1) и декодирует их в последовательность микроопераций. Поток микроопераций (пока он еще соответствует последовательности исходных команд) поступает в буфер команд. Устройство выборки извлекает одну 32-байтную строку кэша команд за такт и передает ее в декодер. Устройство выборки вычисляет указатель на следу­ющую команду, подлежащую выборке, на основании информации из таблицы меток перехода, состояния прерывания/исключения и сообщения от исполнитель­ного целочисленного устройства об ошибке в предсказании метки перехода. Важ­ная часть этого процесса предсказание метки перехода, которое выполняется по специальному алгоритму. В основе этого алгоритма лежит работа с таблицей меток перехода, которая содержит информацию о сделанных ранее переходах. Когда очередная команда, выбираемая из памяти, является командой перехода, то содержащийся в ней адрес перехода сравнивается с адресами, уже находя­щимися в таблице меток перехода. Если этого адреса нет в данной таблице, то выборка команд из памяти продолжается дальше до тех пор, пока не будет вы­полнена команда перехода исполнительным устройством. В результате ее выпол­нения будет подтверждена правильность перехода (в данном случае не пере­хода) это будет в случае, если следующая команда соответствует условию (если оно есть) перехода. Если же этот адрес уже есть в таблице меток переходов, то на его основе устройство выборки формирует адрес следующей команды, подлежа­щей выборке. Аналогично, о правильности выборки этой команды будет извест­но после исполнения команды перехода исполнительным устройством. Если этот предсказанный переход был неверным, то конвейер будет сброшен и загружен за­ново в соответствии с адресом перехода. Цель правильного предсказания перехо­дов в том, чтобы устройство исполнения постоянно было занято полезной рабо­той, и сброс конвейера производился как можно реже. Устройство выборки/декодирования читает поток команд из кэша команд (L1) и декодирует их в последовательность микроопераций. Поток микроопераций (пока он еще соответствует последовательности исходных команд) поступает в буфер команд. Устройство выборки извлекает одну 32-байтную строку кэша команд за такт и передает ее в декодер. Устройство выборки вычисляет указатель на следу­ющую команду, подлежащую выборке, на основании информации из таблицы меток перехода, состояния прерывания/исключения и сообщения от исполнитель­ного целочисленного устройства об ошибке в предсказании метки перехода. Важ­ная часть этого процесса предсказание метки перехода, которое выполняется по специальному алгоритму. В основе этого алгоритма лежит работа с таблицей меток перехода, которая содержит информацию о сделанных ранее переходах. Когда очередная команда, выбираемая из памяти, является командой перехода, то содержащийся в ней адрес перехода сравнивается с адресами, уже находя­щимися в таблице меток перехода. Если этого адреса нет в данной таблице, то выборка команд из памяти продолжается дальше до тех пор, пока не будет вы­полнена команда перехода исполнительным устройством. В результате ее выпол­нения будет подтверждена правильность перехода (в данном случае не пере­хода) это будет в случае, если следующая команда соответствует условию (если оно есть) перехода. Если же этот адрес уже есть в таблице меток переходов, то на его основе устройство выборки формирует адрес следующей команды, подлежа­щей выборке. Аналогично, о правильности выборки этой команды будет извест­но после исполнения команды перехода исполнительным устройством. Если этот предсказанный переход был неверным, то конвейер будет сброшен и загружен за­ново в соответствии с адресом перехода. Цель правильного предсказания перехо­дов в том, чтобы устройство исполнения постоянно было занято полезной рабо­той, и сброс конвейера производился как можно реже.

Команды выбираются на конвейер устройством выборки команд, которое поме­щает их в устройство декодирования. Устройство декодирования состоит из трех параллельно работающих декодеров (два простых и один сложный). Декодеры преобразуют команды микропроцессора в микрооперации. Микрооперации представляют собой примитивные команды, которые выполняются пятью исполни­ тельными устройствами микропроцессора, работающими параллельно. Многие машинные команды преобразуются в одиночные микрооперации (это делает про­стой декодер), а некоторые машинные команды преобразуются в последовательность от двух и более (оптимально четырех) микроопераций (это делает слож­ный декодер) Информация о последовательности микроопераций для реализации конкретной машинной команды содержится в блоке микропрограммного управ­ления. Кроме команд, декодеры обрабатывают также префиксы команд. Декодер команд может формировать до шести микроопераций за такт по одной от про­стых декодеров и до четырех от сложного декодера. Для достижения наибольшей производительности работы декодеров необходимо, чтобы на их вход поступали команды, которые декодируются шестью микрооперациями в последовательности Если время работы программы критично, то имеет смысл провести ее оптимизацию, содержание которой заключается в переупорядочивании исходного набора команд таким образом, чтобы группы команд формировали последова­тельности микроопераций по схеме Проводить подобную оптимизацию есть смысл только для микро­процессоров семейства P6 (Pentium Pro/II/III). После того как команды разби­ты на микрооперации, порядок их выполнения трудно предсказать. При этом могут возникнуть проблемы с таким критичным ресурсом, как регистры. Команды выбираются на конвейер устройством выборки команд, которое поме­щает их в устройство декодирования. Устройство декодирования состоит из трех параллельно работающих декодеров (два простых и один сложный). Декодеры преобразуют команды микропроцессора в микрооперации. Микрооперации представляют собой примитивные команды, которые выполняются пятью исполни­ тельными устройствами микропроцессора, работающими параллельно. Многие машинные команды преобразуются в одиночные микрооперации (это делает про­стой декодер), а некоторые машинные команды преобразуются в последовательность от двух и более (оптимально четырех) микроопераций (это делает слож­ный декодер) Информация о последовательности микроопераций для реализации конкретной машинной команды содержится в блоке микропрограммного управ­ления. Кроме команд, декодеры обрабатывают также префиксы команд. Декодер команд может формировать до шести микроопераций за такт по одной от про­стых декодеров и до четырех от сложного декодера. Для достижения наибольшей производительности работы декодеров необходимо, чтобы на их вход поступали команды, которые декодируются шестью микрооперациями в последовательности Если время работы программы критично, то имеет смысл провести ее оптимизацию, содержание которой заключается в переупорядочивании исходного набора команд таким образом, чтобы группы команд формировали последова­тельности микроопераций по схеме Проводить подобную оптимизацию есть смысл только для микро­процессоров семейства P6 (Pentium Pro/II/III). После того как команды разби­ты на микрооперации, порядок их выполнения трудно предсказать. При этом могут возникнуть проблемы с таким критичным ресурсом, как регистры.

Суть здесь в том, что если в двух соседних фрагментах программы данные помещались в одинаковые регистры, откуда они, возможно, записывались в некоторые области памяти, а после переупорядочивания эти фрагменты перемешались, то как разо­ браться в том, какие регистры и где использовались. Эта проблема носит название проблемы ложных взаимозависимостей и решается использованием механиз­ма переименования регистров. Основу этого механизма составляет набор из 40 внутренних универсальных регистров, которые и используются в реальных вы­числениях исполнительным устройством. Работа с этими регистрами абсолютно прозрачна для программ. Универсальные регистры могут работать как с целыми числами, так и со значениями с плавающей запятой. Информация о действитель­ных именах регистров процессора и их внутренних именах (номерах универсаль­ных регистров) помещается в таблицу регистровых алиасов. Суть здесь в том, что если в двух соседних фрагментах программы данные помещались в одинаковые регистры, откуда они, возможно, записывались в некоторые области памяти, а после переупорядочивания эти фрагменты перемешались, то как разо­ браться в том, какие регистры и где использовались. Эта проблема носит название проблемы ложных взаимозависимостей и решается использованием механиз­ма переименования регистров. Основу этого механизма составляет набор из 40 внутренних универсальных регистров, которые и используются в реальных вы­числениях исполнительным устройством. Работа с этими регистрами абсолютно прозрачна для программ. Универсальные регистры могут работать как с целыми числами, так и со значениями с плавающей запятой. Информация о действитель­ных именах регистров процессора и их внутренних именах (номерах универсаль­ных регистров) помещается в таблицу регистровых алиасов. В заключение процесса декодирования устройство управления таблицей регист­ровых алиасов добавляет к микрооперациям биты состояния и флаги, чтобы под­готовить их к неупорядоченному выполнению, после чего посылает получившиеся микрооперации в буфер переупорядоченных команд. Нужно заметить, что теперь порядок их следования не соответствует порядку следования соответствующих команд в исходной программе. Буфер переупорядоченных команд представляет собой массив ассоциативной памяти, физически выполненный в виде 40 регистров. В заключение процесса декодирования устройство управления таблицей регист­ровых алиасов добавляет к микрооперациям биты состояния и флаги, чтобы под­готовить их к неупорядоченному выполнению, после чего посылает получившиеся микрооперации в буфер переупорядоченных команд. Нужно заметить, что теперь порядок их следования не соответствует порядку следования соответствующих команд в исходной программе. Буфер переупорядоченных команд представляет собой массив ассоциативной памяти, физически выполненный в виде 40 регистров.

Массив ассоциативной памяти представляет собой кольцевую структуру, элементы которой содержат два типа микроопераций: ожидающие своей очереди на исполнение и уже частично выполненные, но, из-за имевшего место переупо­рядочивания исполнения команд, не до конца. Устройство диспетчеризации/ис­ полнения может выбирать микрооперации из этого буфера в любом порядке. Устройство диспетчеризации/исполнения планирует и исполняет неупорядочен­ную последовательность микроопераций из буфера переупорядоченных команд. Но оно не занимается непосредственной выборкой микроопераций из буфера переупорядоченных команд, так как в нем могут содержаться и не готовые к ис­полнению микрооперации. Этим занимается устройство, управляющее специаль­ным буфером, который условно назовем буфером команд, готовых к исполнению. Оно постоянно сканирует буфер переупорядоченных команд в поисках микроопераций, готовых к исполнению (фактически это означает, что все операнды для этих микроопераций доступны), после чего посылает их соответствующим испол­нительным устройствам, если они не заняты. Результаты исполнения микроопе­раций возвращаются в буфер переупорядоченных команд и сохраняются там на­ряду с другими микрооперациями до тех пор, пока не будут удалены устройством удаления и восстановления. Массив ассоциативной памяти представляет собой кольцевую структуру, элементы которой содержат два типа микроопераций: ожидающие своей очереди на исполнение и уже частично выполненные, но, из-за имевшего место переупо­рядочивания исполнения команд, не до конца. Устройство диспетчеризации/ис­ полнения может выбирать микрооперации из этого буфера в любом порядке. Устройство диспетчеризации/исполнения планирует и исполняет неупорядочен­ную последовательность микроопераций из буфера переупорядоченных команд. Но оно не занимается непосредственной выборкой микроопераций из буфера переупорядоченных команд, так как в нем могут содержаться и не готовые к ис­полнению микрооперации. Этим занимается устройство, управляющее специаль­ным буфером, который условно назовем буфером команд, готовых к исполнению. Оно постоянно сканирует буфер переупорядоченных команд в поисках микроопераций, готовых к исполнению (фактически это означает, что все операнды для этих микроопераций доступны), после чего посылает их соответствующим испол­нительным устройствам, если они не заняты. Результаты исполнения микроопе­раций возвращаются в буфер переупорядоченных команд и сохраняются там на­ряду с другими микрооперациями до тех пор, пока не будут удалены устройством удаления и восстановления. Подобная схема планирования и исполнения программ реализует классический принцип неупорядоченного выполнения, при котором микрооперации посылаются исполнительным устройствам вне зависимости от их расположения в исход­ном алгоритме. Подобная схема планирования и исполнения программ реализует классический принцип неупорядоченного выполнения, при котором микрооперации посылаются исполнительным устройствам вне зависимости от их расположения в исход­ном алгоритме.

В случае если к выполнению одновременно готовы две или более микрооперации одного типа (например целочисленные), то они выполняются в соответствии с принципом FIFO (First In. First Out первым пришел, первым ушел), то есть в порядке поступления в буфер переупорядоченных команд. Напомним, что исполнительное устройство состоит из пяти блоков, каждый из которых исполняет свой тип микроопераций: два целочисленных устройства, два устройства для вычислений с плавающей точкой и одно устройство связи с па­ мятью. Таким образом, за один машинный такт одновременно исполняется пять микроопераций. В случае если к выполнению одновременно готовы две или более микрооперации одного типа (например целочисленные), то они выполняются в соответствии с принципом FIFO (First In. First Out первым пришел, первым ушел), то есть в порядке поступления в буфер переупорядоченных команд. Напомним, что исполнительное устройство состоит из пяти блоков, каждый из которых исполняет свой тип микроопераций: два целочисленных устройства, два устройства для вычислений с плавающей точкой и одно устройство связи с па­ мятью. Таким образом, за один машинный такт одновременно исполняется пять микроопераций. Два целочисленных исполнительных устройства могут параллельно обрабатывать две целочисленные микрооперации. Одно из этих целочисленных исполнительных устройств специально предназначено для работы с микрооперациями пере­ходов. Оно способно обнаружить непредсказанный переход и сообщить об этом устройству выборки команд, чтобы перезапустить конвейер. Такая операция реа­лизована следующим образом. Декодер команд отмечает каждую микрооперацию перехода и адрес перехода. Когда целочисленное исполнительное устройство вы­полняет микрооперацию перехода, то оно определяет, был ли предсказан переход или нет. Если переход предсказан правильно, то микрооперация отмечается при­годной для использования, и выполнение продолжается по предсказанной ветви. Если переход предсказан неправильно, то целочисленное исполнительное устрой­ство изменяет состояние всех последующих микроопераций с тем, чтобы удалить их из буфера переупорядоченных команд. После этого целочисленное устройство помещает метку перехода в буфер меток перехода, который сов­местно с устройством выборки команд перезапускает конвейер относительно но­вого исполнительного адреса. Два целочисленных исполнительных устройства могут параллельно обрабатывать две целочисленные микрооперации. Одно из этих целочисленных исполнительных устройств специально предназначено для работы с микрооперациями пере­ходов. Оно способно обнаружить непредсказанный переход и сообщить об этом устройству выборки команд, чтобы перезапустить конвейер. Такая операция реа­лизована следующим образом. Декодер команд отмечает каждую микрооперацию перехода и адрес перехода. Когда целочисленное исполнительное устройство вы­полняет микрооперацию перехода, то оно определяет, был ли предсказан переход или нет. Если переход предсказан правильно, то микрооперация отмечается при­годной для использования, и выполнение продолжается по предсказанной ветви. Если переход предсказан неправильно, то целочисленное исполнительное устрой­ство изменяет состояние всех последующих микроопераций с тем, чтобы удалить их из буфера переупорядоченных команд. После этого целочисленное устройство помещает метку перехода в буфер меток перехода, который сов­местно с устройством выборки команд перезапускает конвейер относительно но­вого исполнительного адреса.

Устройство связи с памятью управляет загрузкой и сохранением данных для мик­роопераций. Для их загрузки в исполнительное устройство достаточно определить только адрес памяти, поэтому такое действие кодируется одной микроопераци­ей. Для сохранения данных необходимо определять и адрес, и записываемые дан­ные, поэтому это действие кодируется двумя микрооперациями Часть устройства связи с памятью, которое управляет сохранением данных, имеет два блока, позво­ляющие ему обработать адрес и данные для микрооперации параллельно. Это позволяет устройству связи с памятью выполнять загрузку и сохранение данных для микроопераций параллельно в одном тактовом цикле. Устройство связи с памятью управляет загрузкой и сохранением данных для мик­роопераций. Для их загрузки в исполнительное устройство достаточно определить только адрес памяти, поэтому такое действие кодируется одной микроопераци­ей. Для сохранения данных необходимо определять и адрес, и записываемые дан­ные, поэтому это действие кодируется двумя микрооперациями Часть устройства связи с памятью, которое управляет сохранением данных, имеет два блока, позво­ляющие ему обработать адрес и данные для микрооперации параллельно. Это позволяет устройству связи с памятью выполнять загрузку и сохранение данных для микроопераций параллельно в одном тактовом цикле. Исполнительные устройства с плавающей запятой аналогичны тем, что существу­ют в более ранних моделях микропроцессора Pentium. Было добавлено только несколько новых команд с плавающей запятой для организации условных пере­ходов и перемещений. Исполнительные устройства с плавающей запятой аналогичны тем, что существу­ют в более ранних моделях микропроцессора Pentium. Было добавлено только несколько новых команд с плавающей запятой для организации условных пере­ходов и перемещений. Задачей блока удаления и восстановления является возврат вычислительного процесса в рамки, определенные исходной последовательностью команд. Для это­го он постоянно сканирует буфер переупорядоченных команд на предмет обна­ружения полностью выполненных микроопераций, не имеющих связи с другими микрооперациями. Такие микрооперации удаляются из буфера переупорядочен­ных команд, восстанавливаются в порядке, соответствующем порядку команд исходной программы с учетом прерываний, исключений, точек прерывания и переходов. Блок удаления и восстановления может удалять три микрооперации за один машинный такт. При восстановлении команд в порядок, соответствую­ щий исходному, блок удаления и восстановления записывает результаты в реаль­ные регистры микропроцессора и в оперативную память. Задачей блока удаления и восстановления является возврат вычислительного процесса в рамки, определенные исходной последовательностью команд. Для это­го он постоянно сканирует буфер переупорядоченных команд на предмет обна­ружения полностью выполненных микроопераций, не имеющих связи с другими микрооперациями. Такие микрооперации удаляются из буфера переупорядочен­ных команд, восстанавливаются в порядке, соответствующем порядку команд исходной программы с учетом прерываний, исключений, точек прерывания и переходов. Блок удаления и восстановления может удалять три микрооперации за один машинный такт. При восстановлении команд в порядок, соответствую­ щий исходному, блок удаления и восстановления записывает результаты в реаль­ные регистры микропроцессора и в оперативную память.

2. Программная модель МП Любая выполняющаяся программа получает в свое распоряжение определенный набор ресурсов микропроцессора. Эти ресурсы необходимы для выполнения и хранения в памяти команд программы, данных и информации о текущем состоя­нии программы и микропроцессора. Набор этих ресурсов представляет собой программную модель микропроцессора. Схема, представленная на рис. 4.2, пол­ностью соответствует программной модели микропроцессора Pentium III. Любая выполняющаяся программа получает в свое распоряжение определенный набор ресурсов микропроцессора. Эти ресурсы необходимы для выполнения и хранения в памяти команд программы, данных и информации о текущем состоя­нии программы и микропроцессора. Набор этих ресурсов представляет собой программную модель микропроцессора. Схема, представленная на рис. 4.2, пол­ностью соответствует программной модели микропроцессора Pentium III. Программные модели более ранних микропроцессоров (i486, Pentium) отличают­ся меньшим размером адресуемого пространства оперативной памяти (232-1, так как разрядность их шины адреса составляет 32 бита) и отсутствием некоторых групп регистров. Для каждой группы регистров в скобках обозначено, начиная с какой модели данная группа регистров появилась в программной модели мик­ропроцессоров Intel. Если такого обозначения нет, то это означает, что данная группа регистров присутствовала в микропроцессорах i386 и i486. Более ранние микропроцессоры архитектуры Intel мы не рассматриваем ввиду их архаичнос­ти. Программные модели более ранних микропроцессоров (i486, Pentium) отличают­ся меньшим размером адресуемого пространства оперативной памяти (232-1, так как разрядность их шины адреса составляет 32 бита) и отсутствием некоторых групп регистров. Для каждой группы регистров в скобках обозначено, начиная с какой модели данная группа регистров появилась в программной модели мик­ропроцессоров Intel. Если такого обозначения нет, то это означает, что данная группа регистров присутствовала в микропроцессорах i386 и i486. Более ранние микропроцессоры архитектуры Intel мы не рассматриваем ввиду их архаичнос­ти. Итак, программную модель микропроцессора Intel составляют: Итак, программную модель микропроцессора Intel составляют: - пространство адресуемой памяти (для Pentium III - до байт); - пространство адресуемой памяти (для Pentium III - до байт); набор регистров для хранения данных общего назначения; набор регистров для хранения данных общего назначения; набор сегментных регистров; набор сегментных регистров;

набор регистров состояния и управления; набор регистров состояния и управления; набор регистров устройства вычислений с плавающей точкой (сопроцессора); набор регистров устройства вычислений с плавающей точкой (сопроцессора); набор регистров целочисленного ММХ-расширения, отображенных на регист­ры сопроцессора (впервые появились в архитектуре микропроцессора Pentium ММХ); набор регистров целочисленного ММХ-расширения, отображенных на регист­ры сопроцессора (впервые появились в архитектуре микропроцессора Pentium ММХ); набор регистров ММХ-расширения с плавающей точкой (впервые появились в архитектуре микропроцессора Pentium III); набор регистров ММХ-расширения с плавающей точкой (впервые появились в архитектуре микропроцессора Pentium III); программный стек. Это специальная информационная структура, работа с ко­торой предусмотрена на уровне машинных команд. программный стек. Это специальная информационная структура, работа с ко­торой предусмотрена на уровне машинных команд. Теперь рассмотрим основные компоненты программной модели микропроцессора. Теперь рассмотрим основные компоненты программной модели микропроцессора.

2.1. Набор регистров Большинство из регистров имеет определенное функциональное назначение. Как по­казано выше, программная модель микропроцессора имеет несколько групп ре­гистров, доступных для использования в программах: Большинство из регистров имеет определенное функциональное назначение. Как по­казано выше, программная модель микропроцессора имеет несколько групп ре­гистров, доступных для использования в программах: - регистры общего назначения еах/ах/аh/аl, еЬх/Ьх/Ьh/Ьl, еdх/dх/dh/dl, есх/сх/сh/сl, еЬр/Ьр, еsi/si, еdi/di, еsр/sр. Регистры этой группы используются для хранения данных и адресов; - регистры общего назначения еах/ах/аh/аl, еЬх/Ьх/Ьh/Ьl, еdх/dх/dh/dl, есх/сх/сh/сl, еЬр/Ьр, еsi/si, еdi/di, еsр/sр. Регистры этой группы используются для хранения данных и адресов; - сегментные регистры cs, ds, ss, еs, fs, gs. Регистры этой группы использу­ются для хранения адресов сегментов в памяти; - сегментные регистры cs, ds, ss, еs, fs, gs. Регистры этой группы использу­ются для хранения адресов сегментов в памяти; - регистры сопроцессора st(0), st(1), st(2), st(3), st(4), st(5), st(6), st(7). Регистры этой группы предназначены для написания программ, использующих тип данных с плавающей точкой; - регистры сопроцессора st(0), st(1), st(2), st(3), st(4), st(5), st(6), st(7). Регистры этой группы предназначены для написания программ, использующих тип данных с плавающей точкой; - целочисленные регистры ММХ-расширения mmx0, mmx1, mmx2, mmxЗ, mmx4, mmx5, mmx6, mmx7; - целочисленные регистры ММХ-расширения mmx0, mmx1, mmx2, mmxЗ, mmx4, mmx5, mmx6, mmx7; - регистры ММХ-расширения с плавающей точкой mmx0, mmx1, mmx2, mmxЗ, mmx4, mmx5, mmx6, mmx7; - регистры ММХ-расширения с плавающей точкой mmx0, mmx1, mmx2, mmxЗ, mmx4, mmx5, mmx6, mmx7; - регистры состояния и управления это регистры, которые содержат информацию о состоянии микропроцессора, исполняемой программы и позволяют изменить это состояние; - регистры состояния и управления это регистры, которые содержат информацию о состоянии микропроцессора, исполняемой программы и позволяют изменить это состояние; - регистр флагов eflags/flags; - регистр флагов eflags/flags; - регистр указатель команды еip/iр; - регистр указатель команды еip/iр; - системные регистры это регистры для поддержания различных режимов работы, сервисных функций, а также регистры, специфичные для опреде­ленной модели микропроцессора. На схеме рис. 4.2 регистры этой группы не показаны по двум причинам: во-первых, их достаточно много, и, во-вторых, состав их может отличаться для различных моделей микропроцессора - системные регистры это регистры для поддержания различных режимов работы, сервисных функций, а также регистры, специфичные для опреде­ленной модели микропроцессора. На схеме рис. 4.2 регистры этой группы не показаны по двум причинам: во-первых, их достаточно много, и, во-вторых, состав их может отличаться для различных моделей микропроцессора