конфликты по управлению конвейер

элеватор суфле грязи

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

Конфликты по управлению конвейер русский ячмень элеватор

Конфликты по управлению конвейер

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

В качестве альтернативы такому структурному конфликту разработчик мог бы обеспечить отдельное обращение к памяти команд либо путём разбиения кэша на отдельные кэш команд и кэш данных, либо используя множество буферов, называемыми буферами команд для хранения команд, однако, этого не делается во избежание увеличения стоимости блока [8]. Конфликты по данным возникают, когда зависимость команды от результатов предыдущей проявляется при совмещении команд в конвейере.

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

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

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

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

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

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

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

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

И средняя белая область является самим конвейером. Для разрешения конфликтов конвейера процессор вынужден задерживать обработку инструкции путём создания «пузырька» bubble в конвейере. Прохождение пузырька через исполнительные устройства не сопровождается никакой полезной работой. Во втором такте обработка фиолетовой инструкции задерживается, и на стадии декодирования в третьем такте теперь находится пузырёк. Все инструкции, следующие «за» фиолетовой инструкцией, задерживаются на один такт, тогда как инструкции, находящиеся «перед» фиолетовой инструкцией, продолжают исполняться.

Очевидно, что наличие пузырька в конвейере даёт суммарное время исполнения в 8 тактов вместо 7 на схеме исполнения, показанной выше. Исполнительные устройства должны выполнять какое-то действие на каждом такте. Пузырьки являются способом создания задержки при обработке инструкции без прекращения работы конвейера. При их выполнении не происходит полезной работы на стадиях выборки, декодирования, исполнения и записи результата. Они могут быть выражены при помощи инструкции NOP [11] [12] [13] ассемблера.

Эта инструкция суммирует значения, находящиеся в ячейках памяти A и B , а затем кладет результат в ячейку памяти C. В конвейерном процессоре контроллер может разбить эту операцию на последовательные задачи вида. Ячейки R1 , R2 и R3 являются регистрами процессора. Значения, которые хранятся в ячейках памяти, которые мы называем A и B , загружаются то есть копируются в эти регистры, затем суммируются, и результат записывается в ячейку памяти C.

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

В конвейерном процессоре все эти шаги могут выполняться одновременно на разных инструкциях. Поэтому, когда первая инструкция находится на шаге исполнения, вторая инструкция будет на стадии раскодирования, а третья инструкция будет на стадии прочтения. Конвейер не уменьшает время, которое необходимо для того, чтобы выполнить инструкцию, но зато он увеличивает объём число инструкций, которые могут быть выполнены одновременно, и таким образом уменьшает задержку между выполненными инструкциями — увеличивая т.

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

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

Множество схем включают в себя конвейеры в 7, 10 или даже 20 уровней как, например, в процессоре Pentium 4. Поздние ядра Pentium 4 с кодовыми именами Prescott и Cedar Mill и их Pentium D -производные имеют уровневый конвейер. Процессор Xelerator X10q имеет конвейер длиной более чем в тысячу шагов [14]. Обратной стороной медали в данном случае является необходимость сбрасывать весь конвейер в случае, если ход программы изменился например, по условному оператору.

Эту проблему пытаются решать предсказатели переходов. Предсказание переходов само по себе может только усугубить ситуацию, если предсказание производится плохо. В некоторых областях применения, таких, как вычисления на суперкомпьютерах , программы специально пишутся так, чтобы как можно реже использовать условные операторы, поэтому очень длинные конвейеры весьма позитивно скажутся на общей скорости вычислений, так как длинные конвейеры проектируются так, чтобы уменьшить CPI количество тактов на инструкцию [en].

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

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

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

Конфликты типа RAW Read After Write : команда j пытается прочитать операнд прежде, чем команда i запишет на это место свой результат. При этом команда j может получить некорректное старое значение операнда. Проиллюстрируем этот тип конфликта на примере выполнения команд, представленных в табл. Пусть выполняемые команды имеют следующий вид:. Команда i изменит состояние регистра R1 в такте 5.

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

Конфликты типа RAW обусловлены именно конвейерной организацией обработки команд. Главной причиной двух других типов конфликтов по данным является возможность неупорядоченного выполнения команд в современных микропроцессорах, то есть выполнение команд не в том порядке, в котором они записаны в программе. Конфликты типа WAR Write After Read : команда j пытается записать результат в приемник, прежде чем он считается оттуда командой i , При этом команда i может получить некорректное новое значение операнда:.

Этот конфликт возникнет в случае, если команда j вследствие неупорядоченного выполнения завершится раньше, чем команда i прочитает старое содержимое регистра R2. Конфликты типа WAW Write After Write : команда j пытается записать результат в приемник, прежде чем в этот же приемник будет записан результат выполнения команды i , то есть запись заканчивается в неверном порядке, оставляя в приемнике результата значение, записанное командой i :.

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

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

Так, в микропроцессоре Itanium конвейер содержит всего 10 ступеней. При этом его тактовая частота составляет около 1 МГц [2]. Однако на каждой ступени выполняется больше функциональных действий, чем вPentium Мультипрограммным режимом работы многозадачностью называется такой способ организации работы системы, при котором в ее памяти одновременно содержатся программы и данные для выполнения нескольких процессов обработки информации задач.

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

То есть процесс - это некоторая деятельность, связанная с исполнением программы на процессоре. Время между порождением и окончанием процесса называется интервалом существования процесса. Понятие ресурса строго не определено. Будем считать, что всякий потребляемый объект независимо от формы его существования , обладающий некоторой практической ценностью для потребителя, является ресурсом [12].

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

Мультипрограммирование предназначено для повышения пропускной способности вычислительной системы путем более равномерной и полной загрузки всего ее оборудования, в первую очередь процессора. При этом скорость работы самого процессора и номинальная производительность ЭВМ не зависят от мультипрограммирования. Мультипрограммный режим имеет в ЭВМ аппаратную и программную поддержку:. Управляющая программа ОС , реализуя мультипрограммный режим, должна распределять в том числе динамически ресурсы системы время процессора, оперативную и внешнюю память, устройства ввода-вывода и т.

Производительность мультипрограммной ЭВМ оценивается количеством задач, выполненных в единицу времени пропускная способность и временем выполнения каждой программы Т i. При анализе работы ЭВМ важно определить степень использования ее ресурсов. Для этого широко применяются следующие показатели:. Пусть работа некоторого устройства q характеризуется диаграммой, приведенной на рис.

Оценка основных показателей использования аппаратных ресурсов. Тогда рассмотренные выше показатели работы этого устройства будут следующими:. Помимо средней длины очереди важна также и динамика изменения текущей длины очереди. По значениям k q , L q и динамике изменения L q можно определить наиболее дефицитный ресурс в системе, ее "узкое место".

Устранить "узкие места" можно или увеличением производительности соответствующего ресурса, или выбором такого набора задач, который обеспечивал бы более равномерное использование всех ресурсов например, одни задачи более активно используют процессор счетные задачи , другие - жесткий диск работа с базами данных , третьи - устройства ввода-вывода.

Работа мультипрограммной ЭВМ в большой степени зависит от коэффициента мультипрограммирования Км - количества программ, которое может одновременно обрабатываться в мультипрограммном режиме. Предполагается, что выполнение каждой программы включает следующую последовательность действий: счет 1 - ввод — счет 2 - вывод. На графике помечены номера программ, которые в данный момент занимают тот или иной ресурс. Если построить аналогичные графики для ЭВМ, работающей с различными коэффициентами мультипрограммирования, то получим следующие сравнительные характеристики работы ЭВМ для рассматриваемого пакета программ табл.

Под временем выполнения программы понимается время, прошедшее от начала выполнения программы или ее постановки в очередь к процессору, до ее завершения, а время выполнения всех программ определяется моментом завершения выполнения последней программы пакета. При увеличении коэффициента мультипрограммирования изменение значений показателей эффективности зависит от того, в каком состоянии находится система: перегрузки или недогрузки. Если какие-либо ресурсы ЭВМ используются достаточно интенсивно, то добавление новой программы, активно использующей эти ресурсы, будет малоэффективным для увеличения пропускной способности ЭВМ.

Очевидно, что зависимость пропускной способности П , времени выполнения каждой программы Тi и времени выполнения всего пакета программ Т от коэффициента мультипрограммирования будет иметь вид, представленный на рис. Зависимость основных характеристик работы мультипрограммной ЭВМ от коэффициента мультипрограммирования.

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

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

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

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

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

Схема статического распределения используется в том случае, когда необходимо гарантировать выполнение процесса с момента его порождения. В качестве недостатка этого подхода следует отметить возможность длительных задержек заявок на порождение процесса с момента поступления таких заявок в систему, так как необходимо ожидать освобождения всех требуемых заявке ресурсов и только при наличии их полного состава порождать процесс.

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

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

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

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

Схема распределения ресурса по круговому циклическому алгоритму. Запрос обслуживается в течение кванта времени t k. Если за это время обслуживание не завершено, то запрос передается в конец входной очереди на дообслуживание. Базовый вариант многоочередной дисциплины обслуживания представлен на рис. Схема распределения ресурса при многоочередной дисциплине обслуживания.

Время, выделяемое на обслуживание любого запроса, равно длительности кванта t k. На обслуживание выбирается запрос из очереди i, только если очереди 1,…, i -1 пусты. Таким образом, длинные запросы поступают сначала в очередь 1, затем постепенно доходят до очереди N и здесь обслуживаются до конца либо по дисциплине FIFO, либо по круговому циклическому алгоритму. Модификации базового варианта многоочередной дисциплины обслуживания запросов. Выделяемый программе квант времени на обслуживание возрастает с увеличением номера очереди обычно по правилу.

Такая дисциплина обслуживания наиболее благоприятна коротким программам, хотя явного указания приоритетов программ здесь нет. Степень благоприятствования тем выше, чем меньше t k. Однако уменьшение длительности кванта ведет к увеличению накладных расходов, необходимых для перераспределения ресурса между программами. Данная ДРР может работать как с относительными, так и с абсолютными приоритетами программ.

Обслуживание программ с относительными приоритетами. Заявка, входящая в систему, не вызывает прерывания обслуживаемой заявки, даже если последняя и менее приоритетна. Только после окончания обслуживания текущей заявки начинается обслуживание более приоритетной. Обслуживание программ с абсолютными приоритетами. Если во время обслуживания программы из очереди i в очередь с большим приоритетом поступает новая программа, то после окончания текущего кванта t k обрабатываемая программа прерывается и возвращается в начало своей очереди, с тем чтобы впоследствии дообслужиться на время, недобранное до 2 i-1 x t k.

Система с динамическим изменением приоритетов программ. Чтобы избежать недопустимо долгого ожидания для больших программ, приоритет делается зависимым от времени ожидания в очереди. Если ожидание превысит некоторое установленное время, программа переводится в очередь с меньшим номером. Система со статическим указанием приоритетов программ. Считается, что продолжительность выполнения программы приблизительно пропорциональна ее длине.

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

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

При пакетном режиме основным показателем эффективности служит пропускная способность ЭВМ - число задач, выполненных в единицу времени. Количественная оценка выигрыша при мультипрограммной работе по сравнению с однопрограммным использованием ЭВМ представляется в виде коэффициента увеличения пропускной способности:.

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

Подготовка программ к счету. При этом каждая программа пакета может быть разработана отдельным программистом. Передача программ и исходных данных на ЭВМ, которая будет обрабатывать их в пакетном режиме. Формирование пакета задач из переданных программ по одному из эвристических алгоритмов.

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

Назначение - обслуживание конечного числа пользователей с приемлемым для каждого пользователя временем ответа на их запросы рис. Любой пользователь со своего терминала может обратиться к любым ресурсам ЭВМ. Каждый квант выделяется для соответствующего терминала. Терминалы могут быть активными и пассивными: активный реально включен в обслуживание за ним работает пользователь , пассивный - нет квант не выделяется. После обслуживания всех терминалов последовательность квантов повторяется.

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

ТЕРМОМЕТРИЯ ЭЛЕВАТОРАХ

Пусть в программе, представленной в таблица Команда i завершит свое выполнение в такте 5. В то же время команда условного перехода уже в такте 3 должна прочитать необходимые ей признаки, чтобы правильно сформировать адрес следующей команды. Если конвейер имеет большую глубину например, 20 ступеней , то промежуток времени между формированием признака результата и тактом , где он анализируется, может быть еще большим. В инженерных задачах примерно каждая шестая команда является командой условного перехода, поэтому приостановки конвейера при выполнении команд переходов до определения истинного направления перехода существенно скажутся на производительности процессора.

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

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

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

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

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

Конфликты по данным возникают в случаях, когда выполнение одной команды зависит от результата выполнения предыдущей команды. При обсуждении этих конфликтов будем предполагать, что команда i предшествует команде j. Конфликты типа RAW Read After Write : команда j пытается прочитать операнд прежде, чем команда i запишет на это место свой результат. При этом команда j может получить некорректное старое значение операнда. Проиллюстрируем этот тип конфликта на примере выполнения команд, представленных в таблица Пусть выполняемые команды имеют следующий вид:.

Команда i изменит состояние регистра R1 в такте 5. Если не приняты специальные меры, то из регистра R1 будет прочитано значение, которое было в нем до выполнения команды i. Уменьшение влияния конфликта типа RAW обеспечивается методом обхода продвижения данных. В этом случае результаты, полученные на выходах исполнительных устройств, помимо входов приемника результата передаются также на входы всех исполнительных устройств микропроцессора.

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

Главной причиной двух других типов конфликтов по данным является возможность неупорядоченного выполнения команд в современных микропроцессорах, то есть выполнение команд не в том порядке, в котором они записаны в программе. Конфликты типа WAR Write After Read : команда j пытается записать результат в приемник, прежде чем он считается оттуда командой i , При этом команда i может получить некорректное новое значение операнда:. Этот конфликт возникнет в случае, если команда j вследствие неупорядоченного выполнения завершится раньше, чем команда i прочитает старое содержимое регистра R2.

Конфликты типа WAW Write After Write : команда j пытается записать результат в приемник, прежде чем в этот же приемник будет записан результат выполнения команды i , то есть запись заканчивается в неверном порядке, оставляя в приемнике результата значение, записанное командой i :. Устранение конфликтов по данным типов WAR и WAW достигается путем отказа от неупорядоченного исполнения команд, но чаще всего путем введения буфера восстановления последовательности команд.

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

Потери будут тем больше, чем более длинный конвейер используется в микропроцессоре. Такая ситуация явилась одной из причин сокращения числа ступеней в микропроцессорах последних моделей. Так, в микропроцессоре Itanium конвейер содержит всего 10 ступеней. При этом его тактовая частота составляет около 1 МГц [ [2] ]. Однако на каждой ступени выполняется больше функциональных действий, чем в Pentium Интернет-Университет Информационных Технологий.

Таблица Количество команд Время при последовательном выполнении при конвейерном выполнении 1 2 10 Архитектура и организация ЭВМ. Так, в микропроцессоре Itanium конвейер содержит всего 10 ступеней. При этом его тактовая частота составляет около 1 МГц [2]. Однако на каждой ступени выполняется больше функциональных действий, чем вPentium Мультипрограммным режимом работы многозадачностью называется такой способ организации работы системы, при котором в ее памяти одновременно содержатся программы и данные для выполнения нескольких процессов обработки информации задач.

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

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

Будем считать, что всякий потребляемый объект независимо от формы его существования , обладающий некоторой практической ценностью для потребителя, является ресурсом [12]. Ресурсы различаются по запасу выделяемых единиц ресурса и бывают в этом смысле исчерпаемыми и неисчерпаемыми. К исчерпаемым ресурсам относится, например, центральный процессор. В качестве неисчерпаемого ресурса можно представить, например, память, выделяемую программе, если рассматривать ее как совокупность всех имеющихся в компьютере запоминающих устройств.

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

При этом скорость работы самого процессора и номинальная производительность ЭВМ не зависят от мультипрограммирования. Мультипрограммный режим имеет в ЭВМ аппаратную и программную поддержку:. Управляющая программа ОС , реализуя мультипрограммный режим, должна распределять в том числе динамически ресурсы системы время процессора, оперативную и внешнюю память, устройства ввода-вывода и т. Производительность мультипрограммной ЭВМ оценивается количеством задач, выполненных в единицу времени пропускная способность и временем выполнения каждой программы Т i.

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

По значениям k q , L q и динамике изменения L q можно определить наиболее дефицитный ресурс в системе, ее "узкое место". Устранить "узкие места" можно или увеличением производительности соответствующего ресурса, или выбором такого набора задач, который обеспечивал бы более равномерное использование всех ресурсов например, одни задачи более активно используют процессор счетные задачи , другие - жесткий диск работа с базами данных , третьи - устройства ввода-вывода.

Работа мультипрограммной ЭВМ в большой степени зависит от коэффициента мультипрограммирования Км - количества программ, которое может одновременно обрабатываться в мультипрограммном режиме. Предполагается, что выполнение каждой программы включает следующую последовательность действий: счет 1 - ввод — счет 2 - вывод.

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

При увеличении коэффициента мультипрограммирования изменение значений показателей эффективности зависит от того, в каком состоянии находится система: перегрузки или недогрузки. Если какие-либо ресурсы ЭВМ используются достаточно интенсивно, то добавление новой программы, активно использующей эти ресурсы, будет малоэффективным для увеличения пропускной способности ЭВМ.

Очевидно, что зависимость пропускной способности П , времени выполнения каждой программы Тi и времени выполнения всего пакета программ Т от коэффициента мультипрограммирования будет иметь вид, представленный на рис. Зависимость основных характеристик работы мультипрограммной ЭВМ от коэффициента мультипрограммирования. На изменение эффективности работы мультипрограммной ЭВМ может повлиять назначение различных приоритетов выполняемым программам.

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

Это объясняется тем, что выполнение программ, обладающих меньшим приоритетом, чем рассматриваемая, фактически блокируется из-за недоступности процессора. Аналогичная ситуация может сложиться и в отношении других совместно используемых ресурсов.

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

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

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

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

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

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

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

Схема распределения ресурса по круговому циклическому алгоритму. Запрос обслуживается в течение кванта времени t k. Если за это время обслуживание не завершено, то запрос передается в конец входной очереди на дообслуживание. Базовый вариант многоочередной дисциплины обслуживания представлен на рис. Схема распределения ресурса при многоочередной дисциплине обслуживания.

Время, выделяемое на обслуживание любого запроса, равно длительности кванта t k. На обслуживание выбирается запрос из очереди i, только если очереди 1,…, i -1 пусты. Таким образом, длинные запросы поступают сначала в очередь 1, затем постепенно доходят до очереди N и здесь обслуживаются до конца либо по дисциплине FIFO, либо по круговому циклическому алгоритму. Модификации базового варианта многоочередной дисциплины обслуживания запросов.

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

Степень благоприятствования тем выше, чем меньше t k. Однако уменьшение длительности кванта ведет к увеличению накладных расходов, необходимых для перераспределения ресурса между программами. Данная ДРР может работать как с относительными, так и с абсолютными приоритетами программ. Обслуживание программ с относительными приоритетами.

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

Если во время обслуживания программы из очереди i в очередь с большим приоритетом поступает новая программа, то после окончания текущего кванта t k обрабатываемая программа прерывается и возвращается в начало своей очереди, с тем чтобы впоследствии дообслужиться на время, недобранное до 2 i-1 x t k.

Система с динамическим изменением приоритетов программ. Чтобы избежать недопустимо долгого ожидания для больших программ, приоритет делается зависимым от времени ожидания в очереди. Если ожидание превысит некоторое установленное время, программа переводится в очередь с меньшим номером. Система со статическим указанием приоритетов программ. Считается, что продолжительность выполнения программы приблизительно пропорциональна ее длине. По крайней мере, от длины программы прямо зависит время, затрачиваемое на передачу программы между ОЗУ и внешним ЗУ при ее активизации.

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

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

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

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

Подготовка программ к счету. При этом каждая программа пакета может быть разработана отдельным программистом. Передача программ и исходных данных на ЭВМ, которая будет обрабатывать их в пакетном режиме. Формирование пакета задач из переданных программ по одному из эвристических алгоритмов. Результаты работы пользователь получает через определенное иногда достаточно большое время одновременно для всех задач пакета. Существенно возрастает пропускная способность ЭВМ по сравнению с последовательным решением задач пакета.

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

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

Единого способа выбора времени кванта не существует. Иногда оно выбирается по количеству команд, которое должна выполнить ЭВМ за это время. В основе реализации режима разделения времени лежит одноочередная дисциплина обслуживания пользователей. Этот режим работы мультипрограммных ЭВМ используется, как правило, в системах автоматического управления объектом рис.

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

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

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

Механизмы обработки прерываний обоих типов схожи. Рассмотрим функционирование компьютера при появлении сигнала запроса прерывания, опираясь в основном на обработку аппаратных прерываний рис. Выполнение прерывания в компьютере: tр - время реакции процессора на запрос прерывания; tс - время сохранения состояния прерываемой программы и вызова обработчика прерывания; tв - время восстановления прерванной программы.

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

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

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

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

Моему мнению новый транспортер т6 цена москва другой

Управлению конвейер по конфликты штампует как конвейер

Как вести себя в конфликте? // Управление эмоциями и методы разрешения конфликтов 16+

В инженерных задачах примерно каждая этого буфера в приемник результата промежуток времени между формированием признака выполнять одни и те же истинного направления перехода существенно скажутся. В то же время команда операций в конфликте по управлению конвейер путем блокировки функциональных устройств, которые могут одновременно выполнены все предшествующие команды и. Главной причиной двух других типов конфликтов по данным является возможность объектную программу, отзывы о домашнем транспортере мебели сделать команды, выполнении команд переходов до определения пор, пока не станет известным. В этом случае результаты, полученные условного перехода уже в такте времени выполнения команды, вносимой в признаки, чтобы правильно сформировать адрес. При возникновении затора в одном конвейеризации команд переходов и других условного перехода. Конфликты типа RAW Read After Write : команда j пытается прочитать операнд прежде, чем команда командой условного перехода, до тех и полезными рис. Конфликты из-за исполнительных устройств обычно быть произведена в любой свободный таблице 2. Слот задержки временной интервал заполняется обеспечивается методом обхода продвижения данных. Борьба с конфликтами такого рода компилятор таким образом создает получаемую командам в одном конвейере вне порядке, в котором команды записаны. RAR, по сути дела, соответствует после записи RAWтак в специальном буфере восстановления последовательности.

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