ПОЗНАВАТЕЛЬНОЕ Сила воли ведет к действию, а позитивные действия формируют позитивное отношение Как определить диапазон голоса - ваш вокал
Игровые автоматы с быстрым выводом Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими Целительная привычка Как самому избавиться от обидчивости Противоречивые взгляды на качества, присущие мужчинам Тренинг уверенности в себе Вкуснейший "Салат из свеклы с чесноком" Натюрморт и его изобразительные возможности Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д. Как научиться брать на себя ответственность Зачем нужны границы в отношениях с детьми? Световозвращающие элементы на детской одежде Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия Как слышать голос Бога Классификация ожирения по ИМТ (ВОЗ) Глава 3. Завет мужчины с женщиной
Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д. Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу. Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар. | Необходимость системы прерываний Нетрудно заметить, что рассмотренный нами упрощенный алгоритм цикла команды последовательной ЭВМ является крайне неэффективным как с точки зрения производительности и полноты использования аппаратных ресурсов, так и с точки зрения организации вычислений. Рассмотрим основные причины низкой эффективности и соответствующие способы оптимизации функционирования последовательных ЭВМ. Первой причиной возможной потери эффективности является различное быстродействие разных компонент ЭВМ. Наиболее быстрым устройством в ЭВМ традиционно является центральный процессор. Уже оперативная память имеет в разы меньшее быстродействие, не говоря об устройствах ввода-вывода, быстродействие которых может отличаться от трех до семи порядков по сравнению с центральным процессором. Различие в быстродействии неизбежно приводит к тому, что более производительные компоненты ЭВМ начинают простаивать в ожидании окончания работы менее производительными. Например, ЦП будет неизбежно простаивать во время выполнения обычной арифметической операции в ожидании окончания взаимодействия с ОП. Напомним, что в цикле команды этапы выборки команды, выборки операндов, записи результата требуют информационных обменов с ОП. Учитывая кратное расхождение в быстродействии между ЦП и ОП, получаем, что процессор будет простаивать большую часть времени. Заметим, что еще менее эффективным будет выполнение команды ввода-вывода. Например, при считывании слова из устройства ввода ЦП будет вынужден ожидать окончания операции передачи данных из УВВ. Соотношение по быстродействию между ЦП и УВВ может быть таково, что для процессора ожидание окажется фактически «машинной бесконечностью». Таким образом, непосредственная реализация алгоритма стандартного цикла команды последовательной ЭВМ приведет к тому, что производительность ЭВМ будет определяться быстродействием самого медленного из ее элементов. Другой причиной низкой эффективности является то, что алгоритм стандартного цикла является замкнутым и не предполагает какого-либо внешнего по отношению к нему воздействия. Вычислительный процесс в этом случае представляет собой последовательность выполнения команд программы, причем эта последовательность определяется исключительно самой программой и изначальными входными данными. Нетрудно видеть, что в приведенной последовательной модели отсутствует понятие события и, соответственно, обработки событий. В то же время работу ЭВМ можно представить как последовательность программно-определяемых и программно-независимых событий. Программно-определяемые события порождаются самой программой (например, обнуление счетчика цикла), возможные моменты их появления известны и учтены в программе. Программно-независимые события вызываются посторонними от программы источниками (например, нажатие клавиши оператором), моменты их возникновения заранее неизвестны и не могут быть предопределены программой. События, происходящие вне процессора, как правило, программно-независимые (выход параметров объекта за дозволенные пределы, прием сетевого пакета и т.п.) и происходят асинхронно. События, происходящие внутри процессора, могут быть двух типов. Последовательность арифметических операций определяется программой, в то время как особые ситуации (переполнение, попытка деления на нуль и т.д.) зависят от сочетания операндов и предусмотреть их во время программирования практически невозможно. ЭВМ, вообще говоря, должна реагировать на любые события, которые могут повлиять на процесс вычислений. В случае программно-определяемых событий для этого достаточно иметь специальный набор команд (переход по нулю, по знаку и т.д.), обработка подобных событий не выходит за рамки стандартного цикла команды. Если же события программно-независимые, то алгоритм стандартного цикла, как правило, становится крайне неэффективным. Единственным возможным решением по обработке программно-независимых событий в рамках стандартного алгоритма является периодическая проверка наступления того или иного события с использованием специальной команды перехода. Пусть в системе команд имеется команда перехода по какому-нибудь программно-независимому событию. Исходя из определения, во-первых, неизвестно, когда это событие произойдет, во-вторых, неясно, как часто следует вставлять в программу команду перехода по данному событию. Например, если вставка будет производиться каждые 25 команд, то объем памяти для программы увеличивается на 4%, а реакция на событие может произойти с большой задержкой (максимум через 25 команд). Если в программе потребуется обработка нескольких программно-независимых событий, это приведет к значительному увеличению объема программы, времени ее выполнения и реакции на события и, кроме этого, сильно затруднит работу программиста. Для нивелирования разницы быстродействия между компонентами последовательной ЭВМ в алгоритм ее функционирования вносятся элементы параллельной обработки информации, заключающейся в совмещении во времени различных операций стандартного цикла команды. Совмещение во времени работы ЦП и информационных обменов с ОП, как правило, организуется по принципу конвейера. Например, пока в АЛУ процессора выполняется очередная команда, устройство управления может производить выборку из ОП следующей команды. Более подробно конвейерная обработка информации рассматривается в п. 5.5. Кроме этого, для оптимизации работы ОП применяются различные специальные подходы – иерархическая организация, оптимизация доступа к оперативным запоминающим устройствам (ОЗУ), структурные методы повышения быстродействия ОП (подробнее см. гл. 3). Совмещение во времени работы ЦП и УВВ достигается за счет применения различных методов управления вводом-выводом (п. 4.1.2. ), смысл которых сводится к тому, что центральный процессор не дожидается окончания операций ввода-вывода, а лишь инициирует их и обрабатывает их завершение. Значительный промежуток времени между началом и окончанием операции ввода-вывода может быть потрачен процессором на выполнение вычислительной работы. Нетрудно заметить, что хотя процессор и начинает каждую операцию ввода-вывода, момент ее завершения, зависящий от множества факторов (объем передаваемых данных, быстродействие УВВ), заранее неизвестен и может быть отнесен к программно-независимым событиям. Таким образом, решение проблемы различного быстродействия компонент ЭВМ также зависит от эффективности обработки программно-независимых событий. Чтобы ЭВМ могла реагировать на программно-независимые события при минимальных усилиях программиста и максимально возможном быстродействии, ее структура дополняется специальными аппаратно-логическими средствами, совокупность которых называют системой прерывания программ (СПП). |