close

Вход

Забыли?

вход по аккаунту

?

SiFO1-6

код для вставкиСкачать
1. Принципы концепции ВМ фон Неймана. Дж. Фон Неймон сформулировал 5 принципов организации архитектуры
ЭВМ:
1. Принцип хранимой в памяти программы. 2. Принцип двоичного кодирования.
• Вся информация (команды, данные) - в бинарном виде.
• Каждый тип информации имеет свой формат.
• Последовательность битов, связанных одним смыслом, называется полем: для данных - поле знака и поле значащих разрядов, для команды - поле кода операции и поле адресов. 3. Принцип программного управления.
• Все вычисления алгоритма должны быть представлены в виде программы. • Программа состоит из последовательности управляющих слов - команд.
• Команды хранятся в последовательных ячейках памяти и выполняются в естественной последовательности.
• Последовательность может быть изменена - условно или безусловно.
4. Принцип однородности памяти.
• Команды и данные хранятся в одной памяти и внешне не различимы.
• Возможность производить над командами те же операции, что и над данными (модификация команд). Модификация команд современным программированием не приветствуется. Самый полезный эффект данного принципа - команды одной программы могут быть получены как результат работы другой программы.
5. Принцип адресности.
• Память - набор пронумерованных ячеек.
• В каждый момент доступна любая ячейка.
• Двоичные коды данных и команд хранятся в единицах информации - словах.
• Доступ к данным по номерам ячеек - адресам. Принстонская архитектура: команды и данные хранятся в одной памяти и внешне не различимы.
.
Узкое место принстонской архитектуры - пропускная способность тракта
"процессор-память". В последнее время благодаря кэш-памяти используется
Гарвардская архитектура (отдельная память для команд и данных).
2. Уровень "архитектура системы команд", его задачи. Какие факторы влияют на длину команды? Возможные пути сокращения длины команды.
Системой команд вычислительной машины называют полный перечень команд, которые способна выполнять данная ЭВМ. В свою очередь, под архитектурой системы команд (АСК, ISA) принято определять те средства вычислительной машины, которые видны и доступны программисту. АСК служит интерфейсом между программной и аппаратной частями компьютера, стандартизирует команды, двоичные паттерны машинного языка, позволяет реализовывать различные аппаратные варианты одной программной архитектуры. Минус - периодически препятствует внедрению новых технологий и прочих инноваций.
Главная цель уровня ACК - реализация вычислений наиболее эффективным образом, то есть за минимальное время.
Время выполнения программы Tвып можно определить через число команд в программе Nком, среднее количество тактов процессора, приходящихся на одну команду CPI и длительность тактового периода tпр:
Tвып = Nком*CPI* tпр.
АСК влияет на количество команд в программе через оптимизирующий компилятор; на среднее количество тактов, так как определяет её размер->
время выборки команды-> время её декодирования-> время её выполнения.
Перечень видимых для программиста составных частей АСК:
• Коды команд.
• Число и типы регистров.
• Форматы команд.
• Способы адресации и доступа к памяти. • Условия возникновения исключений.
АСК характеризуется ответами на вопросы:
• Какого вида данные будут представлены в вычислительной машине и в какой форме?
• Где эти данные могут храниться помимо основной памяти?
• Каким образом будет осуществляться доступ к данным?
• Какие операции могут быть выполнены над данными?
• Сколько операндов может присутствовать в команде?
• Как будет определяться адрес очередной команды?
• Каким образом будут закодированы команды?
Факторы, влияющие на длину команды:
• Способы адресации.
• Количество операндов.
• Количество операций, которые необходимо закодировать.
Способы уменьшения длины команды:
• Разделение команд на самые элементарные.
• Ограничение адресации ( пример - один операнд всегда лежит в регистре).
Классификация: аккумуляторная, стековая, регистровая (по месту хранения операндов); CISC(полный набор команд),RISC(сокращенный набор команд), АСК с выделенным доступом к памяти, АСК с командными словами сверхбольшой длины: VLIW (Very Long Instruction Word) (по сложности АСК). 3. Проблема семантического разрыва. Способы её решения.
Современные технологии программирования ориентированы на языки
высокого уровня (ЯВУ), главная цель которых- облегчить процесс программирования. Переход к ЯВУ, однако, породил серьезную проблему: сложные операторы, характерные для ЯВУ, существенно отличаются от простых машинных операций, реализуемых в большинстве вычислительных машин. Проблема получила название семантического разрыва, а ее следствием становится недостаточно эффективное выполнение программ на ВМ. Пытаясь преодолеть семантический разрыв, разработчики вычислительных машин в настоящее время выбирают один из трех подходов и, соответственно, один из трех типов АСК:
• Архитектуру с полным набором команд: CISC (Complex Instruction Set Computer).
• Архитектуру с сокращенным набором команд: RISC (Reduced Instruction Set . Computer).
• Архитектуру с командными словами сверхбольшой длины: VLIW (Very Long Instruction Word).
В вычислительных машинах типа CISC проблема семантического разрыва решается за счет расширения системы команд, дополнения ее сложными командами, семантически аналогичными операторам ЯВУ.
Рассмотренный способ решения проблемы семантического разрыва вместе с тем ведет к усложнению аппаратуры ВМ, главным образом устройства управления, что, в свою очередь, негативно сказывается на производительности ВМ в целом. Это заставило более внимательно проанализировать программы, получаемые после компиляции с ЯВУ. Детальный анализ результатов упомянутых исследований привел к серьезному пересмотру традиционных решений, следствием чего стало появление RISC-архитектуры.
Идея заключается в ограничении списка команд ВМ наиболее часто используемыми простейшими командами, оперирующими данными, размещенными только в регистрах процессора. Обращение к памяти допускается лишь с помощью специальных команд чтения и записи. Резко уменьшено количество форматов команд и способов указания адресов операндов. Сокращение числа форматов команд и их простота, использование ограниченного количества способов адресации, отделение операций обработки данных от операций обращения к памяти позволяет существенно упростить аппаратные средства ВМ и повысить их быстродействие. Как следствие, реализация сложных команд за счет последовательности из простых, но быстрых RISC-команд оказывается не менее эффективной, чем аппаратный вариант сложных команд в CISC-архитектуре.
Помимо CISC- и RISC-архитектур в общей классификации был упомянут еще один тип АСК - архитектура с командными словами сверхбольшой длины (VLIW). Концепция VLIW базируется на RISC-архитектуре, где несколько простых RISC-команд объединяются в одну сверхдлинную команду и выполняются параллельно. В плане АСК архитектура VLIW сравнительно мало отличается от RISC. Появился лишь дополнительный уровень параллелизма вычислений, в силу чего архитектуру VLIW логичнее адресовать не к вычислительным машинам, а к вычислительным системам.
4. Аккумуляторная архитектура системы команд, достоинства и недостатки. Стековая архитектура системы команд, достоинства и недостатки.
Архитектура на базе аккумулятора исторически возникла одной из первых. В ней для хранения одного из операндов арифметической или логической операции в процессоре имеется выделенный регистр - аккумулятор. В этот же регистр заносится и результат операции. Поскольку адрес одного из операндов предопределен, в командах обработки достаточно явно указать местоположение только второго операнда. Изначально оба операнда хранятся в основной памяти, и до выполнения операции один из них нужно загрузить в аккумулятор. После выполнения команды обработки результат находится в аккумуляторе и, если он не является операндом для последующей команды, его требуется сохранить в ячейке памяти. Для загрузки в аккумулятор содержимого ячейки х предусмотрена команда загрузки load x. Пo этой команде информация считывается из ячейки памяти х, выход памяти подключается к входам аккумулятора и происходит занесение считанных данных в аккумулятор. Запись содержимого аккумулятора в ячейку х осуществляется командой сохранения store х, при выполнении которой выходы аккумулятора подключаются к шине, после чего информация с шины записывается в память. Для выполнения операции в АЛУ производится считывание одного из операндов из памяти в регистр данных. Второй операнд находится в аккумуляторе. Выходы регистра данных и аккумулятора подключаются к соответствующим входам АЛУ. По окончании предписанной операции результат с выхода АЛУ заносится в аккумулятор. Достоинства: короткие команды и простота декодирования команд. Недостатки: наличие одного регистра порождает многократные обращения к основной памяти.
Аккумуляторная архитектура
Стек образует множество логически взаимосвязанных ячеек, взаимодействующих по принципу LIFO. Для работы со стеком предусмотрены две операции: push (проталкивание данных в стек) и рор (выталкивание данных из стека). Запись/чтение возможны только в/из вершины стека. Операнды помещаются в стек, в процессе операции они выталкиваются из стека. Результат операции заносится в стек.
Информация может быть занесена в вершину стека из памяти или из АЛУ. Для записи в стек содержимого ячейки памяти с адресом х выполняется команда push x, по которой информация считывается из ячейки памяти, заносится в регистр данных, а затем проталкивается в стек. Результат операции из АЛУ заносится в вершину стека автоматически.
Сохранение содержимого вершины стека в ячейке памяти с адресом x производится командой pop x. По этой команде содержимое верхней ячейки стека подается на шину, с которой и производится запись в ячейку х, после чего производится инкремент указателя стека: SP+1.
Для выполнения арифметической или логической операции на вход АЛУ подается информация, считанная из двух верхних ячеек стека (при этом содержимое стека продвигается на две позиции вверх, то есть операнды из стека удаляются). Результат операции заталкивается в вершину стека. Возможен вариант, когда результат сразу же переписывается в память с помощью автоматически выполняемой операции pop х.
Достоинства: стек может быть неоднороден (верхние ячейки быстрые, нижние медленные), сокращение адресной части команд (все операции производятся через вершину стека, не нужно указывать адреса операндов и результата), компактный код программы, простой компилятор, простое декодирование команд.
Недостатки: компилятору трудно создать эффективный код (нет произвольного обращения к памяти), низкая производительность.
Стековая архитектура.
5. Регистровая архитектура системы команд, достоинства и недостатки. Архитектура системы команд с выделенным доступом к памяти. В машинах данного типа процессор включает в себя массив регистров (регистровый файл), известных как регистры общего назначения (РОН). Эти регистры, в каком-то смысле, можно рассматривать как явно управляемый кэш для хранения недавно использовавшихся данных.
Размер регистров обычно фиксирован и совпадает с размером машинного слова. К любому регистру можно обратиться, указав его номер.
Регистровая архитектура допускает расположение операндов в одной из двух запоминающих сред: основной памяти или регистрах. С учетом возможного размещения операндов в рамках регистровых АСК выделяют три подвида команд обработки:
• регистр-регистр;
• регистр-память;
• память-память.
В варианте "регистр-регистр" операнды могут находиться только в регистрах. В них же засылается и результат. Подтип "регистр-память" предполагает, что один из операндов размещается в регистре, а второй в основной памяти. Результат обычно замещает один из операндов. В командах типа "память-память" оба операнда и результат хранятся в основной памяти. Операции загрузки регистров из памяти и сохранения содержимого регистров в памяти идентичны таким же операциям с аккумулятором. Отличие состоит в этапе выбора нужного регистра, обеспечиваемого соответствующими селекторами.
Выполнение операции в АЛУ включает в себя:
• выбор регистра первого операнда;
• определение расположения второго операнда (память или регистр);
• подачу на вход АЛУ операндов и выполнение операции;
• выбор регистра результата и занесение в него результата операции из АЛУ.
Обратим внимание на то, что между АЛУ и регистровым файлом должны быть по крайней мере три шины.
Регистровая архитектура
В архитектуре с выделенным доступом к памяти обращение к основной памяти возможно только с помощью двух специальных команд: load u store.
Команда load обеспечивает считывание значения из основной памяти и занесение его в регистр процессора (в команде обычно указывается адрес ячейки памяти и номер регистра). Пересылка информации в противоположном направлении производится командой store. Операнды во всех командах обработки информации могут находиться только в регистрах процессора (чаще всего в регистрах общего назначения). Результат операции также заносится в регистр. В архитектуре отсутствуют команды обработки, допускающие прямое обращение к основной памяти. Допускается наличие в АСК ограниченного числа команд, где операнд является частью кода команды.
АСК с выделенным доступом к памяти характерна для всех вычислительных машин с RISC-архитектурой. Команды, как правило, имеют длину 32 бита и трехадресный формат.
Достоинства: простота декодирования и исполнения команды.
Архитектура с выделенным доступом к памяти
6. Принципы СISC, RISC и ЕPIC (IA-64) архитектур.
Пытаясь преодолеть семантический разрыв, разработчики ВМ расширяют систему команд, дополняя ее командами, реализующими сложные операторы ЯВУ на аппаратурном уровне, вводят дополнительные виды адресации и т. п. Вычислительные машины, где реализованы эти средства, принято называть ВМ с полным набором команд (CISC - Complex Instruction Set Computer).
Для CISC-архитектуры характерно:
1) наличие в процессоре сравнительно небольшого числа регистров общего назначения;
2) большое количество машинных команд, некоторые из них аппаратно реализуют сложные операторы ЯВУ;
3) разнообразие способов адресации операндов;
4) множество форматов команд различной разрядности;
5) наличие команд, где обработка совмещается с обращением к памяти.
Недостатки:
• Усложнение аппаратуры ВМ, главным образом устройства управления, что, в свою очередь, негативно сказывается на производительности ВМ в целом.
• Сложность распараллеливания вычислений.
Главные усилия в архитектуре RISC направлены на построение максимально эффективного конвейера команд, то есть такого, где все команды извлекаются из памяти и поступают в ЦП на обработку в виде равномерного пoтока, причем ни одна команда не должна находиться в состоянии ожидания, а ЦП должен оставаться загруженным на протяжении всего времени. Кроме того, идеальным будет вариант, когда любой этап цикла команды выполняется в течение одного тактового периода. Последнее условие относительно просто можно реализовать для этапа выборки. Необходимо лишь, чтобы все команды имели стандартную длину, равную ширине шины данных, соединяющей ЦП и память. Унификация времени исполнения для различных команд - значительно более сложная задача, поскольку наряду с регистровыми существуют также команды с обращением к памяти. Помимо одинаковой длины команд, важно иметь относительно простую подсистему декодирования и управления: сложное устройство управления (УУ) будет вносить дополнительные задержки в формирование сигналов управления. Очевидный путь существенного упрощения УУ - сокращение числа выполняемых команд, форматов команд и данных, а также видов адресации. Основная причина, препятствующая сведению всех этапов цикла команды к одному тактовому периоду, - потенциальная необходимость доступа к памяти для выборки операндов и/или записи результатов. Следует максимально сократить число команд, имеющих доступ к памяти. Для упрощения выполнения большинства команд и приведения их к типу "регистр-регистр" требуется снабдить ЦП значительным числом регистров общего назначения. Большое число регистров в регистровом файле ЦП позволяет обеспечить временное хранение промежуточных результатов, используемых как операнды в последующих операциях, и ведет к уменьшению числа обращений к памяти, ускоряя выполнение операций. Минимальное число регистров, равное 32, принято как стандарт де-факто большинством производителей RISC-компьютеров.
Суммируя сказанное, концепцию RISC-компьютера можно свести к следующим положениям: 1) выполнение всех (или, по крайней мере, 75% команд) за один цикл; 2) стандартная однословная длина всех команд, равная естественной длине слова и ширине шины данных и допускающая унифицированную поточную обработку всех команд; 3) все команды непосредственно выполняются аппаратным обеспечением (они не интерпретируются микрокомандами) 4) малое число команд (не более 128); 5) малое количество форматов команд (не более 4); 6) малое число способов адресации (не более 4); 7) доступ к памяти только посредством команд "Чтение" и "Запись"; 8) все команды, за исключением "Чтения" и "Записи", используют внутрипроцессорные межрегистровые пересылки; 9) устройство управления "жесткой" логикой; 10) относительно большой (не менее 32) процессорный файл регистров общего назначения (число РОН в современных RISC-микропроцессорах может превышать 500). Как следствие, реализация сложных команд за счет последовательности из простых, но быстрых RISC-команд оказывается не менее эффективной, чем аппаратный вариант сложных команд в CISC-архитектуре.
Концепция VLIW базируется на RISC-архитектуре, где несколько простых RISC-команд объединяются в одну сверхдлинную команду и выполняются параллельно. Дальнейшим развитием идеи VLIW стала новая архитектура IA-64(архитектура load/store). В IA-64 реализован новый подход, известный как вычисления с явным параллелизмом команд (EPIC, Explicitly Parallel Instruction Computing) и являющийся усовершенствованным вариантом технологии VLIW. В архитектуре IA-64 предполагается наличие в процессоре 128 64-разрядных регистров общего назначения (РОН) и 128 80-разрядных регистров с плавающей запятой. Кроме того, процессор IA-64 содержит 64 однобитовых регистра предикатов. Команды упаковываются (группируются) компилятором в сверхдлинную команду - связку (bundle) длиною в 128 разрядов. Связка содержит три команды и шаблон, в котором указываются зависимости между командами (можно ли с командой I0 запустить параллельно I1 или же I1 должна выполниться только после I0), а также между другими связками (можно ли с командой I2 из связки S0 запустить параллельно команду I3 из связки S1). Перечислим все варианты составления связки из трех команд:
- I0 || I1 || 12 - все команды исполняются параллельно;
- I0 & I1 || I г - сначала I0 , затем исполняются параллельно I1 и I2;
- I0 || I1 & I2 - параллельно обрабатываются I0 и I1 после них - I2;
- I0& I1 & I2 - команды исполняются в последовательности I0,I1, I2.
Одна связка, состоящая из трех команд, соответствует набору из трех функциональных блоков процессора. Процессоры IA-64 могут содержать разное количество таких блоков, оставаясь при этом совместимыми по коду. Благодаря тому, что в шаблоне указана зависимость и между связками, процессору с N одинаковыми блоками из трех ФБ будет соответствовать сверхдлинная команда из Nх3 команд (N связок). Тем самым обеспечивается масштабируемость IA-64. Поле каждой из трех команд в связке, в свою очередь, состоит из пяти полей: 1) 13-разрядного поля кода операции; 2) 6-разрядного поля предикатов, хранящего номер одного из 64 регистров предиката; 3) 7-разрядного поля первого операнда (первого источника), где указывается номер регистра общего назначения или регистра с плавающей запятой, в котором содержится первый операнд; 4) 7-разрядного поля второго операнда (второго источника), где указывается номер регистра общего назначения или регистра с плавающей запятой, в котором содержится второй операнд; 5) 7-разрядного поля результата (приемника), где указывается номер регистра общего назначения или регистра с плавающей запятой, куда должен быть занесен результат выполнения команды.
Предикация - это способ обработки условных ветвлений. Суть в том, что еще компилятор указывает, что обе ветви выполняются на процессоре параллельно, ведь EPIC-процессоры должны иметь много функциональных блоков. Если в исходной программе встречается условное ветвление (по статистике - через каждые шесть команд), то команды из разных ветвей помечаются разными регистрами предиката (команды имеют для этого соответствующие поля), далее они выполняются совместно, но их результаты
не записываются, пока значения регистров предиката (РП) не определены. Когда, наконец, вычисляется условие ветвления, РП, соответствующий "правильной" ветви, устанавливается в 1, а другой - в 0. Перед записью результатов процессор проверяет поле предиката и записывает результаты только тех команд, поле предиката которых указывает на РП с единичным значением. Предикаты формируются как результат сравнения значений, хранящихся в двух регистрах. Результат сравнения ("Истина" или "Ложь") заносится в один из РП, но одновременно с этим во второй РП записывается инверсное значение полученного результата. Такой механизм позволяет процессору более эффективно выполнять конструкции типа I F-T H EN-E L S E .
Особенностями архитектуры EPIC являются:
- большое количество регистров;
- масштабируемость архитектуры до большого количества функциональных блоков. Это свойство представители компаний Intel и HP называют наследственно масштабируемой системой команд (Inherently Scaleable Instruction Set);
- явный параллелизм в машинном коде. Поиск зависимостей между командами осуществляет не процессор, а компилятор;
- предикация - команды из разных ветвей условного предложения снабжаются полями предикатов (полями условий) и запускаются параллельно;
- предварительная загрузка - данные из медленной основной памяти загружаются заранее.
Документ
Категория
Разное
Просмотров
74
Размер файла
286 Кб
Теги
sifo
1/--страниц
Пожаловаться на содержимое документа