LOOPZ Переход пока ноль

Признаки не меняются.

Команда: LOOPZ short-label.

LOOPZ синоним LOOPE. См. описание LOOPE.

 

Вопрос 18.

Принципы работы современных ЭВМ.

Конвейерная обработка.

Разработчики архитектуры ЭВМ издавна прибегали к методам проектирования, известным под общим названием «совмещение операций», при котором аппаратура ЭВМ в любой момент времени выполняет одновременно более одной базовой операции.

Этот общий метод включает 2 понятия:

  • Параллелизм
  • Конвейеризацию

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

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

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

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

Предположим, что выполнение типичной команды можно разделить на этапы:

  1. IF – выборка команды из ОЗУ.
  2. Декодирование команды – ID, выборка команды из стека.
  3. ЕХ – выполнение команды.
  4. МЕМ – обращение к памяти.
  5. WB – запись результата.

Процессор с неконвейерной обработкой выполняет указанные выше этапы без совмещения.

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

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

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

 

260 нс

 

 

60 60 60 60 60

5 5 5 5

 

Предположим, что время выполнения команды в МП равно 260 нс. И при выполнении им команды можно выделить этапов, которые имеют длительность 50, 50, 60, 50, 50 нс соответственно.

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

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

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

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

Такие задержки, которые препятствуют выполнению очередной команды из потока команд в предназначенном для нее такте, называют конфликтами.

Существует три класса конфликтов:

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

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

 

Структурные конфликты и способы их минимизации.

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

 

 

260 нс

 

 

61 60 60 60 60

5 5 5 5

 

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

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

Существуют 2 причины, почему разработчики вычислительных машин допускают наличие структурных конфликтов:

  1. Снижение стоимости ВМ.
  2. Уменьшение времени выполнения операции устройством.

Так как структурные конфликты возникают слишком часто, то не стоит платить за то, чтобы их обойти.

 

Конфликты по данным. Остановки конвейера.

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

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

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

ADD R1,R6

SUB R2,R1

OR R3,R1

AND R4, R2

ANF R6,R4

 

 

65 65 65 65 65

В этом примере все команды, следующие за командой ADD, используют результат ее выполнения. Команда ADD записывает результат в регистр R1, а команды SUB и OR читают это значение. Если не предпринять никаких мер по предотвращению конфликта, то команды SUB и OR прочитают неправильное значение и попытаются его записать.

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

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

 

Классификация конфликтов по данным.

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

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

 

Рассмотрим команду i и i+1.

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

WAR – запись после чтения.

i+1 команда пытается записать результат в операнд-приемник прежде, чем он считывается как операнд-источник i-ой команды.

RAW – чтение после записи.

i+1 команда пытается прочитать операнд-источник данных прежде, чем i-ая команда туда его запишет. Таким образом, i+1 может некорректно получить старое значение.

WAW – запись после записи.

Команда i+1 пытается записать операнд прежде, чем будет записан результат команды i, т.е. записи заканчиваются в неверном порядке, оставляя в операнде-приемнике значение, записанное командой i, а не i+1.

 

Конфликты по данным, приводящие к остановке конвейера.

Не все потенциальные конфликты по данным могут обрабатываться с помощью механизма обхода.

Пример:

MOV AX,Z

ADD AX,DX

SUB DX,BX

CMP DX,12441

PUSH CX

PUSHF

 

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

 

Методика планирования компилятора

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

Многие типы приостановок конвейера по данным могут происходить достаточно часто.

Пример: для оператора языка высокого уровня А:=В+С компилятор сгенерирует, скорее всего, следующую последовательность команд:

MOV AX,B

MOV BX,C

ADD AX,BX

MOV A,AX

Выполнение команды ADD должно быть приостановлено до тех пор, пока не станет доступным поступающий из памяти операнд С.

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

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

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

 

Сокращение потерь на выполнение

команд перехода и минимизация

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

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

Если команда условного перехода заменяет счетчик команд значением адреса, вычисленного в команде, то переход называют выполняемым. В противном случае – невыполняемым.

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

 

Метод

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

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

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

 

Метод возврата 1.

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

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

Метод возврата 2.

Схема альтернативная предыдущему. Прогнозирует условный переход как выполняемый.

 

Проблемы реализации точного

прерывания в конвейере.

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

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

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

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

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

Вопрос 19.

 

Иерархия памяти.

В основе реализации ИП в современных ЭВМ лежит 2 принципа:

1. Принцип локальности обращений.

2. Соотношение стоимость-производительность

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

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

Успешное или неуспешное обращение к более высокому уровню иерархии памяти называется соответственно попаданием (hit) или промахом (miss). Попадание – обращение к объекту в памяти, который найден на более высоком уровне. Промах – не найден на уровне.

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

Miss penalty (потеря при промахе) – есть время на замещение блока на более высоком уровне + время при обращении при попадании.

 

Организация кэш-памяти.

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

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

 

Кэш-память верхнего уровня

 

 

Кэш-память

 

 

Кэш-память нижнего уровня

 

 

1ая возможность – сквозная запись. Информация записывается во все уровни иерархии памяти.

2ая возможность – запись с обратным копированием. Информация записывается только в верхний уровень кэш-памяти.

Модифицированный блок кэш-памяти записывается в ОЗУ, только когда он замещается (в ОЗУ и нижние уровни КЭШа).

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

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

Оба подхода к организации записи имеют свои преимущества и недостатки.

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

При сквозной записи промахи почти не влияют на частоту записи. Она проще для реализации.

Кроме того, имеет преимущества в том, что ОЗУ имеет более свежую копию данных. Это важно в мультипроцессорных системах.

При промахе во время записи имеется две дополнительные возможности:

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

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

 

 

Принципы организации ОЗУ в современных ЭВМ.

ОЗУ представляет собой низший уровень иерархии памяти. Удовлетворяет запросы кэш-памяти, служит в качестве интерфейса ввода-вывода, поскольку является местом назначения для ввода и источником для вывода.

Для оценки производительности ОЗУ используется 2 основных параметра:

  1. Задержка
  2. Полоса пропускания

Задержка ОЗУ оценивается двумя параметрами:

  1. Временем доступа
  2. Длительностью цикла памяти

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

А длительность цикла определяется минимальным временем между двумя последовательными обращениями к памяти.

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

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

  1. увеличение разрядности или ширины шины памяти.
  2. использование расслоения памяти и др.

 

Увеличение разрядности ОЗУ.

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

Удвоение или учетверение ширины шин кэш-памяти и ОЗУ удваивает или учетверяет соответственно полосу пропускания системы памяти.

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

 

Память с расслоением.

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

В реальных системах имеющаяся скорость доступа к микросхемам ОЗУ, а, следовательно и к банку, оказывается недостаточно. Следовательно, чтобы получить большую скорость доступа, необходимо осуществить одновременный доступ ко многим банкам ОЗУ. Одна из общих методик, используемых для этого, называется расслоением памяти. При расслоении банки ОЗУ обычно упорядочиваются так, чтобы n последовательных адресов ОЗУ приходились на n различных банков. В i-ом банке ОЗУ находятся данные, адреса которых имеют вид k*N+i, где 0=< k<=n-1, где N – число адресов в одном банке. Можно достичь в ~n раз большую скорость доступа к ОЗУ в целом, чем к отдельному ее банку, если обеспечить при каждом доступе обращение к данным в каждом из n банков.

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

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

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

 

Вопрос 20.

Классификация процессоров.

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

CISC

RISC

VLIW

Основоположником CISC архитектуры считают компанию IBM (с базовой IBM360), ядро которой используется с 1964 года и дошло до наших дней в таких мейнфреймах как ES/9000. Лидером в разработке CISC-процессоров является компания Intel. Эта архитектура является практическим стандартом для рынка микро-ЭВМ. Для CISC-процессоров характерно сравнительно небольшое число регистров общего назначения.

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

- большое количество методов адресации.

- преобладание двухадресного формата команд.

- наличие команд обработки типа регистр памяти.

RISC-процессор с сокращенным набором команд.

Зачатки RISC-архитектуры уходят своими корнями к компьютерам CDC6600, разработчики которых Tornton и Cray. Они осознали важность упрощения набора команд для построения быстрых процессоров.

Принципы RISC-архитектуры:

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

VLIW – очень длинное командное слово.

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

VLIW-процессоры выдают на выполнение пакет команд фиксированного формата и планирование работы VLIW-процессора всегда осуществляется компилятором.

 

Вопрос 21.

 

Системные и локальные шины.

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

Преимущества такого подхода:

- дешевый

- универсальный

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

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

Шина – физическое и логическое понятие.

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

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

Эти правила также важны, как и назначение проводников, поскольку обеспечивают совместимость и возможность обмена информацией между устройствами.

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

Длиной шины и количеством подсоединенных устройств (нагрузкой на шину).

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

 

Структурная схема процессора микро-ЭВМ

на базе процессора Pentium2.

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

Общие характеристики шины.

1. Разрядность адреса и данных.

2. Механические и электрические параметры.

3. Ориентирована ли шина на орпеделенный тип процессора или является процессорно-независимой.

4. Скорость передачи данных (стандартная и максимальная).

5. Синхронный или асинхронный режим передачи данных.

6. Тактовая частота (для синхронных шин)

7. Количество линий прерываний и порядок обработки прерываний

8. Механизм назначения ведущего (активного) модуля, т.е. устройства, координирующего работу шин.

9. Дополнительные характеристики (например, автоконфигурация).

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

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

 

Механические характеристики.

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

 

Принципы работы шин.

Рассмотрим типичную транзакцию на шине. Она включает в себя 2 части:

- посылка адреса активному модулю

- прием (чтение) или запись данных активным модулем

Транзакция типа чтение:

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

Транзакция типа запись:

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

Арбитраж шины.

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

Bus master.

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

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

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

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

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

Все устройства, способные выполнить функции ведущего – имеют логику сравнения приоритетов ведущего. При выборе ведущего устройства могут применяться 2 алгоритма: циклический и распределение приоритета.

При циклическом алгоритме управления шины в определенном порядке передается каждому из устройств.

При распределении приоритетов управление передается устройству с наивысшим приоритетом.

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

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

 

вопрос 22.

 

Оценка производительности вычислительных систем.

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

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

Дискретные временные события называют тактами синхронизации, периодами синхронизации или циклами синхронизации: clock time, tks, periods, cycles.

 

MIPS (Mega Instructions Per Second).

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

Положительной стороной МИПС является то, что эту характеристику можно понять простому пользователю. Минусы:

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

Классическим примером для последнего случая является рейтинг МИПС для ЭВМ, в состав которой входит математический сопроцессор

 

MFLOPS (Mega FLoating Operations Per Second).

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

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

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

Вторая проблема связана с тем, что наборы операций с плавающей точкой не совместимы на различных ЭВМ.

Другая проблема в том, что рейтинг MFLOPS меняется не только на смеси целочисленных операций (с плавающей точкой), но и на смеси быстрых и медленных операций с плавающей точкой.

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

 

SPEC.

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

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

Разработанные тестовые пакеты являются де-факто стандартами для оценки производительности современных МП, ЭВМ и системного ПО.

 

TPC (Transaction Performance Council)

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