рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Конфликты по данным

Конфликты по данным - раздел Компьютеры, Принципы функционирования ЭВМ. Учебное пособие по курсам «Технология программирования» и «Операционные системы» Конфликты По Данным Возникают, Когда Несколько Последова­тельно Выполняемых К...

Конфликты по данным возникают, когда несколько последова­тельно выполняемых команд оказываются логически зависимыми друг от друга. Если порядок обращения к данным при конвейерной обработке некоторой последовательности взаимосвязанных команд будет отличаться от порядка обращения к данным в неконвейерной машине, говорят о конфликте по данным. Рассмотрим конвейерное выполнение следующей последовательности команд:

ADD R1,R2,R3 ; в регистр R1 помещается сумма R2 и R3

SUB R4,R2,R1 ; регистр R4 равен разности R1 и R2

MUL R5,R1,R6 ; регистр R5 равен разности R1 и R6 .

В приведенной последовательности команды вычитания и умно­жения используют результат выполнения команды сложения. Рас­смотрим процесс выполнения этих команд в конвейерной системе (см. рис. 28). Команда сложения сформирует результат в конце такта выполнения (EX в такте 4) и в такте записи (WR, такт 5) поместит его в регистр процессора. После этого новое значение станет дос­тупным для считывания. Команде вычитания потребуется обра­титься за операндом в такте RD (такт 4), однако в это время регистр

№ такта    
ADD R1,R2,R3 IF ID RD EX WR        
          ëданные записаны
SUB R4,R2,R1   IF ID RD EX WR      
Данные считываются ì          
MUL R5,R1,R6     IF ID RD EX WR    

а)

№ такта
ADD R1,R2,R3 IF ID RD EX WR        
SUB R4,R2,R1   IF ID * * RD EX WR  
MUL R5,R1,R6     IF * * ID RD EX WR

б)

№ такта    
ADD R1,R2,R3 IF ID RD EX WR        
Момент пересылки данных ì  
SUB R4,R2,R1   IF ID RD EX WR      
  ëданные доступны
MUL R5,R1,R6     IF ID RD EX WR    

в)

Рис. 28 Конфликт по данным и его разрешение: а) операнд счи­тывается до того, как он записан; б) задержка команды с потерей производительности; в) ускоренная пересылка данных.

будет все еще содержать некоторое неопределенной значение. Можно считать, что это старое значение, записанное некоторой пре­дыдущей командой (см. рис. 28 а), однако это не всегда так. Если в момент выполнения команды сложения произойдет прерывание, то перед прерыванием команда будет завершена и в регистр R1 будет помещен правильный результат.

Простейшим способом борьбы с конфликтом будет задержать выполнение команды вычитания на два такта, в течение которых команда сложения «успеет» сформировать результат (см. рис. 28 б). Естественно, что такая задержка приведет к потере производитель­ности.

Отметим, что реально данные для команды вычитания потребуются только в момент начала стадии выполнения (начало такта номер 5 на рис. 28 а). В то же время фактически результат команды сложения будет готов в конце такта выполнения команды вычитания (конец такта номер 4 на рис. 28 а). Конфликта по данным можно избежать, если результат выполнения команды сложения не помещать в регистр для последующего считывания, а переслать не­посредственно на вход исполнительного устройства перед началом такта выполнения команды вычитания (см. рис. 28 в). Подобный прием называется ускоренной пересылкой данных.

Однако не все конфликты по данным можно преодолеть, исполь­зуя механизм ускоренной пересылки. Рассмотрим выполнение про­стого оператора A = B + C на языке высокого уровня. Скорее всего, компилятор сформирует для такого оператора приблизительно сле­дующую последовательность команд:

LOAD R1, B ;загрузка из памяти значе­ния B

LOAD R2, C ;загрузка из памяти значе­ния C

ADD R3, R1, R2 ;суммирование

STORE A, R3 ; сохранение результата.

Как уже отмечалось, обращение к памяти является достаточно длительной операцией, поэтому между командой загрузки операнда C и командой сложения возникает конфликт по данным, который можно преодолеть, только если задержать выполнение команды сложения до окончания выполнения команды загрузки. То же самое можно сказать и о команде записи в память, которая следует после сложения. Тут так же имеет место конфликт, так как несформиро­ванное и не записанное в регистр значение невозможно записать в память. Как видим, в данном конкретном примере невозможно из­бежать конфликтов, если не задержать выполнение отдельных ко­манд. Пусть команда обращения к памяти требует для выполнения два такта. Тогда, очевидно, необходимо задержать на два такта ко­манду сложения и еще на один такт команду записи в память.

Избежать потери производительности можно только если изме­нить порядок выполнения команд с учетом других выполняемых команд. Пусть, например, в программе выполняются два последова­тельных оператора A = B + C и E = D + F. Последовательность ко­манд для решения задачи будет следующей.

LOAD R1, B ;загрузка из памяти значе­ния B

LOAD R2, C ;загрузка из памяти значе­ния C

ADD R3, R1, R2 ;суммирование

STORE A, R3 ; сохранение резуль­тата A.

LOAD R1, D ;загрузка из памяти значе­ния D

LOAD R2, F ;загрузка из памяти значе­ния F

ADD R3, R1, R2 ;суммирование

STORE E, R3 ; сохранение резуль­тата E.

Можно избежать задержек, если изменить порядок выполнения команд в данной последовательности следующим образом:

LOAD R1,B ;загрузка из памяти значе­ния B

LOAD R2,C ;загрузка из памяти значе­ния C

LOAD R1,D ;загрузка из памяти значе­ния D

ADD R3,R1,R2 ;суммирование

LOAD R2,F ;загрузка из памяти значе­ния F

STORE A,R3 ; сохранение результата A.

ADD R3,R1,R2 ;суммирование

STORE E,R3 ; сохранение результата E.

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

Существуют аппаратные методы, позволяющие изменить поря­док выполнения команд в случае возникновения конфликта. Эти ме­тоды получили общее название методов внеочередного выполнения или методов динамической оптимизации. При этом команды, задер­жанные вследствие конфликта и ожидающие появления данных, на­капливаются в специальном буфере, а логически не связанные с ними команды подаются на выполнение в обход буфера. Отметим, что в случае, когда процессор может динамически изменить порядок выполнения команд, порядок появления результатов на выходе про­цессора будет отличаться от порядка, заданного программой. По­этому возникает необходимость наличия выходного блока, который фиксирует исходный порядок команд и обеспечивает соответствие между порядком команд и порядком появления результатов на вы­ходе процессора.

Еще одним аппаратным методом минимизации конфликтов по данным является метод переименования регистров (register renaming). Он получил свое название от широко применяющегося в компиляторах метода переименования - метода размещения данных, способствующего сокращению числа зависимостей и тем самым увеличению производительности при отображении необходимых исходной программе объектов (например, переменных) на аппарат­ные ресурсы (например, ячейки памяти и регистры).

При аппаратной реализации метода переименования регистров выделяются логические регистры, обращение к которым выполня­ется с помощью соответствующих полей команды, и физические ре­гистры, которые размещаются в аппаратном регистровом файле процессора. Номера логических регистров динамически отобража­ются на номера физических регистров посредством таблиц отобра­жения, которые обновляются после декодирования каждой ко­манды. Каждый новый результат записывается в новый физический регистр. Однако предыдущее значение каждого логического реги­стра сохраняется и может быть восстановлено в случае, если выпол­нение команды должно быть прервано из-за возникновения исклю­чительной ситуации или неправильного предсказания направления условного перехода.

В процессе выполнения программы генерируется множество временных регистровых результатов. Эти временные значения запи­сываются в регистровые файлы вместе с постоянными значениями. Временное значение становится новым постоянным значением, ко­гда завершается выполнение команды (фиксируется ее результат). В свою очередь, завершение выполнения команды происходит, когда все предыдущие команды успешно завершились в заданном про­граммой порядке.

Программист имеет дело только с логическими регистрами. Реа­лизация физических регистров от него скрыта. Как уже отмечалось, номера логических регистров ставятся в соответствие номерам фи­зических регистров. Отображение реализуется с помощью таблиц отображения, которые обновляются после декодирования каждой команды. Каждый новый результат записывается в физический ре­гистр. Однако до тех пор, пока не завершится выполнение соответ­ствующей команды, значение в этом физическом регистре рассмат­ривается как временное.

Метод переименования регистров упрощает контроль зависимо­стей по данным. В машине, которая может выполнять команды не в порядке их расположения в программе, номера логических регист­ров могут стать двусмысленными, поскольку один и тот же регистр может быть назначен последовательно для хранения различных зна­чений. Но поскольку номера физических регистров уникально иден­тифицируют каждый результат, все неоднозначности устраняются.

– Конец работы –

Эта тема принадлежит разделу:

Принципы функционирования ЭВМ. Учебное пособие по курсам «Технология программирования» и «Операционные системы»

В пособии излагаются базовые принципы организации и функционирования ЭВМ Рассмотрен состав минимальной ЭВМ с шинной организацией назначение и... Илл библиограф наим...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Конфликты по данным

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

ПРИНЦИПЫ ФОН НЕЙМАНА
Большинство современных ЭВМ строятся на базе принципов, сформулированных американским ученым, одним из “отцов” кибернетики Дж. фон Нейманом. Впервые эти принципы были опубликованы фон Нейманом в 19

СОСТАВ И ФУНКЦИОНИРОВАНИЕ МИНИМАЛЬНОЙ ЭВМ С ШИННОЙ ОРГАНИЗАЦИЕЙ
Шинная организация является простейшей формой организации ЭВМ. Подобная ЭВМ имеет в своем составе следующие функциональные блоки (см. рис. 1). Устройство управления (УУ) -

КОМАНДЫ ЭВМ
В данном разделе пособия кратко рассмотрим набор команд, используемых в типичных ЭВМ и действия, реализуемые этими командами.

ПЕРЕЙТИ ЕСЛИ БОЛЬШЕ К АДРЕСУ L .
Первая из команд (сравнение) производит, как отмечалось выше, вычитание значения операнда B из операнда A. Если A>B, то результат будет положителен и, соответственно, флаг знака во флаговом реги

СИСТЕМНЫЕ ИНТЕРФЕЙСЫ С ИЗОЛИРОВАННОЙ И ОБЩЕЙ СИСТЕМОЙ ШИН
В предыдущих разделах при описании обобщенного алгоритма работы центрального процессора мы намеренно опустили из рассмотрения вопрос о том, как процессор “отличает” порты внешних устройств от ячеек

СПОСОБЫ ОБМЕНА ДАННЫМИ В МАШИНАХ С ШИННОЙ ОРГАНИЗАЦИЕЙ. МЕХАНИЗМ ПРЕРЫВАНИЙ
Рассмотрев алгоритм функционирования процессора и способы организации системы шин в ЭВМ, попытаемся выяснить, какие особенности в работу и организацию ЭВМ вносит необходимость обеспечения взаимодей

Программно - управляемый обмен данными
Так как скорость работы периферийного оборудования обычно ниже скорости работы процессора, чтобы осуществить операцию обмена процессор должен убедиться, что устройство готово к выполнению операции

Обмен по прерываниям
Чтобы понять, что такое прерывание, обратимся к следующему примеру. Некоторый человек сидит в кресле и читает книгу. В это время на кухонной плите что-то готовится, и, кроме того, его прия

Внепроцессорный прямой доступ к памяти
Обмен данными с медленнодействующими периферийными устройствами, например, с посимвольным принтером, организуется по прерываниям, инициирующим передачу каждого слова или байта. Если подпрограмма об

И ЕЩЕ О ПРЕРЫВАНИЯХ
Описанный выше механизм прерываний, или аппаратные прерывания, является эффективным способом организации взаимодействия процессора с медленными внешними устройствами и начал

РЕЖИМЫ АДРЕСАЦИИ
При выполнении программы многим командам требуется доступ к памяти для выборки данных, записи промежуточных и окончательных результатов вычислений. Для любого такого обращения, что уже отмечалось в

ИЕРАРХИЧЕСКАЯ ОРГАНИЗАЦИЯ ПАМЯТИ
Память в современных компьютерах строится по иерархическому принципу. Одним из явлений, характерных для фоннеймановских ЭВМ является принцип локальности. Это означает, что за ограниченный промежуто

Кэш-память
Как уже говорилось выше, назначение кэш-памяти – временное хранение данных и команд, часто используемых процессором. Основной структурной единицей кэш-памяти является так называемая строка кэша (ca

Страничная организация виртуальной памяти
В системах со страничной организацией основная и внешняя память (главным образом дисковое пространство) делятся на блоки или страницы фиксированной длины. Каждому пользователю предоставляется некот

Сегментная организация виртуальной памяти
Другой подход к организации памяти опирается на тот факт, что программы обычно разделяются на отдельные области-сегменты. Каждый сегмент представляет собой отдельную логическую единицу информации,

Процесс переадресации виртуальной памяти
Процесс переадресацииопишем на примере микропроцессора 80386 фирмы Intel. Процесс переадресации показан на рис. 19 и 20.Перед исполнением загрузочные модели помещаются в оперативну

ФОРМАТЫ ДАННЫХ
Основными типами данных, которые встречаются при обработке информации в ЭВМ, являются числа, представленные в двоичной системе счисления, а также алфавитно-цифровые символы. Некоторые ЭВМ также осу

ИНФОРМАЦИОННАЯ МОДЕЛЬ ЭВМ
Обработка чисел, символьной информации, логическая обработка, обработка сигналов - это все частные случаи общего понятия над названием «обработка информации». Для ЭВМ характерен признак: информация

Простейший конвейер, производительность конвейера
Существует достаточно простое общеизвестное правило – чтобы выполнить некоторую работу быстрее, необходимо разделить ее между несколькими исполнителями и заставить их действовать од­новременно. Раз

Структурные конфликты
Структурные конфликты возникают, если на различных участках конвейера производится обращение к одному, недублированому ре­сурсу. Подобная ситуация возникает, например, если процессор имеет единую к

Сокращение потерь на выполнение команд перехода и минимизация конфликтов по управлению
Конфликты по управлению могут вызывать даже большие потери производительности конвейера, чем конфликты по данным. Когда выполняется команда условного перехода, она может либо изме­нить, либо не изм

ЭВМ С КАНАЛЬНОЙ ОРГАНИЗАЦИЕЙ
В основе этого типа организации ЭВМ лежит множественность каналов связи между устройствами и функциональная специализация узлов. Упрощенная схема организации ЭВМ с каналами приведена на ри

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги