Реферат по предмету "Информатика, программирование"


Командный цикл процессора

1. Какие факторыоказывают существенное влияние на «удлинение» командного цикла процессора?
— Структурные конфликты(выдача команд приостановливает):
устройство не являетсяполностью конвейерным;
устройство имеютразличные времени выполнения (количества записей в регистровый файл в каждомтакте может быть больше 1)
— Конфликты WAW (т.к.команды больше не поступают на ступень WB в порядке их выдачи за выполнения),конфликты типа WAR невозможны (чтение регистров осуществляется на ступени ID)
— проблема среализацией прерываний (команды могут завершатся не в том порядке, в которомони поступали).
2. В каком(-их)месте(-ах) командного цикла обычно реализуется фаза прерывания?
Прерывания – механизм,с помощью которого другие модули могут прервать нормальный процесс выполненияпрограммы пользователя.
Фаза прерывания можетследовать после фазы выполнения команды, перед началом следующего цикла.Последовательность действий:
— сохранение текущегосостояния процесса;
— переход к процедуреобслуживания прерывания.
Классы прерываний:
Программные –исключительные ситуации при выполнении команд (арифметическое переполнение,деление на нуль, попытка выполнения команды с несуществующим кодом операции,обращения по адресу, выходящему за пределы физического адресного пространствакомпьютера, и т.п.).
Аппаратные –генерируются специальными средствами контроля работоспособности аппаратуры приобнаружении сбоев (пропадание питания, ошибка контроля памяти по четности ит.п.).
Ввода-вывода –генерируются контроллером ввода-вывода (завершение текущей операцииввода-вывода, возникновение ошибки процедуры ввода-вывода).
Прерывания по таймеру –генерируются таймером процессора и используются ОС для переходов вмногозадачном режиме.
Поток данных припрерывании:
На рисунке: регистрадреса памяти (РгАП, MAR); буферный регистр данных памяти (БРгП, MBR);программный счетчик (ПС, PC). Текущее содержимое ПС сохраняется (в стеке), чтопозволяет в дальнейшем возобновить выполнение прерванной программы с той жеточки. В ПС вместо текущего адреса прерванной программы загружается начальныйадрес подпрограммы обработки прерывания.
Какие прерывания относятсяк программным?
Программные –исключительные ситуации при выполнении команд (арифметическое переполнение,деление на нуль, попытка выполнения команды с несуществующим кодом операции,обращения по адресу, выходящему за пределы физического адресного пространствакомпьютера, и т.п.).
3. Что представляетсобой класс прерываний?
Классы прерываний:
Программные –исключительные ситуации при выполнении команд (арифметическое переполнение,деление на нуль, попытка выполнения команды с несуществующим кодом операции,обращения по адресу, выходящему за пределы физического адресного пространствакомпьютера, и т.п.).
Аппаратные –генерируются специальными средствами контроля работоспособности аппаратуры приобнаружении сбоев (пропадание питания, ошибка контроля памяти по четности ит.п.).
Ввода-вывода –генерируются контроллером ввода-вывода (завершение текущей операцииввода-вывода, возникновение ошибки процедуры ввода-вывода).
Прерывания по таймеру –генерируются таймером процессора и используются ОС для переходов вмногозадачном режиме.
Что являетсяконцептуальной основой конвейерных вычислений?
Средства повышенияэффективности работы системы:
— совершенствованиеэлементной базы;
— архитектурныерешения: увеличение количества программно доступных регистров ЦП; использованиекэш-памяти; совмещение операций.
Аппаратура компьютера влюбой момент времени выполняет одновременно более одной базовой операции. Двавида совмещения:
— параллелизм(аппаратная структура воспроизводится в нескольких копиях);
— конвейеризация (конвейернаяобработка) – архитектурное решение, способ организации процесса обработкикоманд, основанный на совмещении во времени отдельных этапов рабочего цикла.
Принцип конвейеризации:
— подлежащая исполнениюфункция делится на более мелкие части (этапы, стадии, ступени);
— для каждого этапавыделяется отдельный блок аппаратуры;
— данные передаются отодного этапа к следующему;
— этапы выполненияразных команд совмещаются.
Способы синхронизацииступеней конвейера:
1. Синхронный конвейер- характерен для традиционных компьютеров: синхронный характер работыпроцессора; короткие тракты распространения сигналов синхронизации (перекоссигналов не существенен).
2. Асинхронный конвейер

Условия применения:
— длительностивременных интервалов отдельных ступеней конвейера зависят от типа команды ивида операндов;
— связь между ступенямине сильна;
— длина сигнальныхтрактов между разными ступенями сильно рознится;
Что означает понятиеRISC?
RISC – ReducedInstruction Set Architecture. Компьютер с сокращенным форматом команд.
RISC — Reduced(Restricted) Instruction Set Computer — процессоры (компьютеры) с сокращеннойсистемой команд. Эти процессоры обычно имеют набор однородных регистровуниверсального назначения; их система команд отличается относительнойпростотой. В результате аппаратная реализация такой архитектуры позволяет снебольшими затратами выполнять эти инструкции за минимальное (в пределе 1)число тактов синхронизации.
4. Перечислитехарактеристики RISC?
Для улучшенияэффективности было решено упростить архитектуру компьютера – так появиласьRISC-архитектура. Концепции:
— выполнение по крайнеймере, 75% команд за один машинный цикл;
— устройство управленияс «жесткой» логикой;
— стандартнаяоднословная длина всех команд:
равна естественнойдлине слова и ширине шины данных;
допускаетунифицированную поточную обработку всех команд;
— малое число команд(не более 128);
— малое количествоформатов команд (не более 4);
— малое число способовадресации (не более 4; отсутствие косвенной адресации памяти);
— доступ к памятитолько посредством команд «Чтение» и «Запись»;
— все команды, заисключением «Чтения» и «Записи», используют внутрипроцессорные межрегистровыепересылки;
— относительно большой(не менее 32) процессорный файл РОНов (в современных микропроцессорах превышает500).
Что являлосьнаправлением исследований, приведших к созданию RISC-архитектуры?
Согласно проведеннымДэвидом Паттерсоном и Джоном Хеннеси исследованиям (исследовались языки С,Pascal:
— операции – функциивыполняемые ЦП взаимодействие ЦП з ОП
— операнды — операнды,частота использования, служить для выбора необходимого множества режимов адресации
— последовательностьвыполнения – определяет структуру управлении процессором и конвейером.
1. Большинство ссылок –скалярные переменные (в основном – локальные).
2. Больше всего временизанимают вызов подпрограмм (и возврат из них) и условные переходы.
Оцениваемые параметры:
-среднее количествомашинных команд и обращений к памяти при реализации операторов разных типов;
— динамичная частотапоявления разных классов(типов) переменных.
Какие выводы из научныхисследований привели к появлению RISC?
Эффективный путьповышения производительности:
— основа – конвейеркоманд:
проектированиеконвейера (традиционный неэффективен)
использованиякомпиляторов оптимизующих работу конвейера.
— более интенсивноиспользовать регистры (минимальное обращение к переменным в ОП)
— сократить наборотносительно простых команд.

5. Что являетсятехнической основой реализации RISC?
Технической основойреализации RISC является процессор у которого большое количество внутреннихрегистров и обмены происходит «регистр – регистр».
Регистры процессора, ихоптимизация:
1. Программный метод:Реализуется компилятором с ЯПВУ. Регистры процессора распределяются дляпеременных, наиболее интенсивно используемых в заданном временном интервале.
— Каждой переменнойвыделяется виртуальный регистр (их число m не ограничено).
— Виртуальные регистрыотображаются на ограниченное количество (n) физических регистров:
неперекрывающиесявиртуальные регистры отображаются на один и тот же физический регистр;
при нехватке физическихрегистров их роль для оставшихся виртуальных регистров выполняют ячейки памяти.
Задача: определить,каким переменным в данной точке программы выгоднее всего выделить физические регистры.
Метод решения:распространенный – раскраска графа:
Элементы графа: узел –виртуальный регистр; кол-во узлов – m; цвет узла – физический регистр; кол-воцветов – n; ребро – соединяет два виртуальных регистра, одновременноиспользуемых в одном и том же фрагменте программы.
Требования: соседниеузлы должны иметь разный цвет; общее количество цветов должно быть минимальным;неокрашенным узлам вместо физических регистров выделяются ячейки в памяти.
2. Аппаратный метод:Реализуется посредством регистровых окон. Упрощение и ускорение передачипараметров между вызывающей и вызываемой процедурами.
Весь набор регистровпроцессора делится на множество небольших групп – регистровых окон (registerwindow). В процессе выполнения программы:
— каждое окно связываетсяс определенной подпрограммой;
— в любой моментпроцессору доступны регистры только одного окна;
— при вызове очереднойподпрограммы процессор автоматически переключается на использованиерегистрового окна, связанного с ней;
— окна вызывающей ивызываемой подпрограмм частично перекрываются, благодаря чему:
возможна автоматическаяпередача параметров;
не требуются операциипересылки данных.
Обычно выделяют врегистровом окне: локальные регистры, регистры параметров (параметры вызоваданной подпрограммы и сохранение результата), временные регистры(параметрывызова подпрограмм). Организация: циклический буфер. CWP – указатель текущегоокна (current window pointer): определяет окно текущей активной подпрограммы.SWP – указатель сохраненного окна (saved window pointer): информация об окне,данные из которого были сохранены в памяти по причине переполнения циклическогобуфера.
6. Каким образом вRISC-архитектуре реализуются локальные переменные?
Большинство переменныхв RISC-архитектуре сохраняется в регистрах самого процессора, а локальныеобязательно только в регистрах процессора, именно за счет этого иобеспечивается эффективная работа RISC-архитектуры.
7. Каким образом могутбыть организованы регистровые окна?
Путем разбиения всегоколичества регистров ЦП на группы определенной величины и присваивания каждойгруппы определенной подпрограмме выполняющейся в ЦП. При выполнении этойподпрограммы ЦП будут доступны только регистры окна закрепленного за ней.

8. Что означает понятие«перекрывающиеся регистровые окна»?
При переходе ЦП отодной подпрограммы к другой он автоматически меняет регистровое окно, скоторыми работает. Исходя из того, что в регистровом окне есть областилокальных регистров, глобальных регистров и временных, то существуетвозможность передачи параметров из временных регистров вызывающей подпрограммыв локальные вызываемой, т.е. окна частично перекрываются обеспечивая тем самымавтоматическую передачу параметров и отсутствие операции пересылки данных. Т.е.область временных регистров окна одного уровня физически представляет те жерегистры, что и область регистров параметров окна следующего уровня
9. Как используются CWPи SWP?
CWP – указательтекущего окна (current window pointer), определяет окно текущей активнойподпрограммы. Обычно хранится в ССП.
В подпрограммеобращение к регистру задается указанием смещения регистра относительно CWP.
SWP – указательсохраненного окна (saved window pointer), содержит информацию об окне, данныеиз которого были сохранены в памяти последними (по причине переполненияциклического буфера).
10. Какиераспространены варианты хранения глобальных переменных в RISC?
Два способапредставления:
компилятор резервируетопределенные ячейки в памяти; доступ – в соответствии с режимами адресациипамяти;
отдельное (от локальныхпеременных) окно, регистры которого: имеют фиксированные номера, доступны излюбой подпрограммы.
11. Какой должна бытьскорость выполнения команд идеальным RISC-конвейером?
Для RISC-конвейеракаждая команда (не менее 75 %) должна выполнятся за один машинный цикл илитакт.

12. Каким образом вRISC используется основная память?
В RISC архитектуреобращение к ОП сводится к минимуму, в большинстве случаев пересылки дынныхведутся на межрегистровом уровне. Для обращения к оперативной памятииспользуются специальные команды — LOAD и STORE.
На что оказываетвлияние одинаковая длина RISC-команд?
Длина командфиксирована и равна длине машинного слова. Размещение полей в формате, особеннополя кода операции, также фиксировано. Это позволяет значительно упростить схемудешифрации команды и совместить расшифровку кода операции с обращением крегистрам.
Поскольку длина командывсегда равна длине машинного слова, команда извлекается за одно обращение кпамяти.
13. Укажитепреимущества RISC-архитектуры процессоров по сравнению с CISC.
Повышениепроизводительности:
более эффективныекомпиляторы с ЯПВУ, которые максимально используют регистры для храненияпеременных;
быстродействие вышеблагодаря отказу от микропрограммирования (отличие от CISC);
более эффективнаяработа конвейера команд (благодаря более простому набору команд);
более быстрая реакцияна прерывания (запросы анализируются в промежутке между простыми операциями).
Снижение сложностисамих схем ЦП.
14. Что означаетпонятие VLIW?
Very Long InstructionWord — архитектура с очень длинным командным словом.
Выдача на одновременноевыполнение фиксированного количества команд, сформатированных как:
одна «длинная» команда;
пакет командфиксированного формата;
15. Перечислитеосновополагающие принципы VLIW
Планирование вычисленийполностью реализуется программным обеспечением.
Функции«интеллектуального» компилятора: поиск в программе независимых инструкций,группирование найденных инструкций в «очень длинные» командные слова(«метаинструкции» длиной 256-1024 бит).
Формат инструкции:
длина – 256 бит;
8 операционных полей,каждое из которых:
— выполняеттрадиционную трехоперандную RISC-подобную инструкцию;
— непосредственноуправляет специфическим функциональным блоком при простом декодировании;
— имеет небольшуюдлину.
Т.е. за один тактвозможно одновременное выполнение 8 команд.
16. Какие задачивыполняет VLIW-компилятор?
Поиск в программенезависимых инструкций, группирование найденных инструкций в «очень длинные»командные слова («метаинструкции» длиной 256-1024 бит).
17. Как формируетсякомандное слово VLIW?
VLIW компиляторанализирует исходный код и находя в нем независимые операции образует из нихдлинную командную инструкцию, состоящую из нескольких команд.
Формат инструкции:
длина – 256 бит;
8 операционных полей,каждое из которых:
 - выполняеттрадиционную трехоперандную RISC-подобную инструкцию;
— непосредственноуправляет специфическим функциональным блоком при простом декодировании;
— имеет небольшуюдлину.
18. Каким образом можноповышать производительность VLIW-процессора?
Это возможно сделатьдвумя способами: увеличить тактовую частоту ЦП или увеличить количествоодновременно выполняемых операций, тем самый увеличив длину слова инструкций идобавив в процессор дополнительные вычислительные модули.
19. Что ограничиваетповышение производительности VLIW?
Ограничивает повышениепроизводительности зависимость компилятора от микроархитектуры.
Решением является 2стадии компиляции:
— генерацияпромежуточного кода
— трансляцияпромежуточного кода в машинно-зависимый на машине пользователя.
Также проблемойявляется реакция программы на непредусмотренные в процессе компиляциидинамические ситуации (например неизвестно время ожидания ввода-вывода).
20. Какие преимуществаимеет архитектура VLIW с точки зрения технологии?
Архитектура VLIWориентирована на вычисления, где особенно необходимо большое быстродействиепроцессора, но для объектно-ориентированных и управляемых по событиям программона менее подходит.
21. Какие существуюттрудности реализации VLIW?
При реализации архитектурыVLIW возникают и другие серьезные проблемы: VLIW-компилятор должен в деталяхзнать внутренние особенности архитектуры процессора, опускаясь до внутреннегоустройства самих функциональных модулей. Как следствие, при выпуске новойверсии VLIW-процессора с большим количеством обрабатывающих модулей (или даже стем же количеством, но другим быстродействием) все старое программноеобеспечение, скорее всего, потребует полной перекомпиляции. Надо ли было припереходе, скажем, на процессор 486 избавляться от имеющегося ПО для процессора386? Конечно, нет, а вот при переходе от одного VLIW-процессора к другомупридется, и это разработчик должен учесть при планировании своих затрат ипотребуются дополнительные средства на перекомпиляцию. Сторонники VLIW-архитектурыв оправдание предлагают разделить процесс компиляции на две стадии. Всепрограммное обеспечение должно готовиться в аппаратно-независимом формате сиспользованием промежуточного кода, который окончательно транслируется вмашинно-зависимый код только после установки на машине пользователя. Примертакого подхода демонстрирует фонд OSF со своим стандартом ANDF(Architecture-Neutral Distribution Format). Но кроссплатформенное программноеобеспечение пока еще только желаемое, а в действительности разработчики ПО дляПК зачастую весьма инертны по отношению к принятию радикально новых технологий.Другая трудность и это по своей сути статическая природа оптимизации, которуюобеспечивает VLIW-компилятор. Как поведет себя программа, когда столкнется вовремя компиляции с непредусмотренными динамическими ситуациями, такими как,например, ожидание ввода-вывода? Архитектура VLIW возникла в ответ натребования со стороны научно-технических организаций, где при вычисленияхособенно необходимо большое быстродействие процессора, но дляобъектно-ориентированных и управляемых по событиям программ она менее подходит,а ведь именно такие программы составляют сейчас большинство в мире ПК. Но и этоеще не все: а как можно проверить, что компилятор выполняет такие сложные преобразованиянадежно и правильно? Пока никак. Вот почему VLIW-компиляторы называют вещью всебе. Однако решение сложной задачи обеспечения взаимодействия аппаратного ипрограммного обеспечения в архитектуре VLIW требует серьезных предварительныхисследований.
22. Какова сфераприменения VLIW-компьютеров?
Что означает понятие«EPIC»?
EPIC (ExplicitlyParallel Instruction Computing) - микропроцессорная архитектура с явнымпараллелизмом команд. Термин введён в 1997 году альянсом HP и Intel дляразрабатываемой архитектуры Intel Itanium. EPICпозволяет микропроцессору выполнять инструкции параллельно, опираясь на работу компилятора,а не выявляя возможность параллельной работы инструкций при помощи специальныхсхем. В теории, это могло упростить масштабирование вычислительной мощностипроцессора без увеличения тактовой частоты.
23. На что направленыметоды минимизации приостановок работы конвейера?
Методы минимизацииприостановок работы конвейера нацелены на достижение идеального CPI = 1.
Что характеризуетпоказатель CPI?
CPI – среднееколичество тактов на выполнение команды (clock per instruction)
командныйцикл процессор архитектура конвейер
CPI конв. = CPIид.конв. + Cс + Cд + Cу,
где Cс, Cд, Cу –приостановки конвейера из-за структурных конфликтов, конфликтов по данным иконфликтов по управлению, соответственно.
24. Каким образомдостигается CPI меньше 1?
Снижение CPI àповышение производительности:
минимизацииприостановок конвейера –достижение идеального CPI = 1;
параллельная выдачанескольких команд в каждом такте – CPI
оснащение процессорамножеством функциональных модулей обработки;
качественноераспараллеливание машинного кода à возможность параллельнойработы всех модулей.
25. Какие командыявляются параллельными?
Параллельные команды –могут выполняться в конвейере одновременно, без приостановок, полагаясь наотсутствие структурных конфликтов.
Взаимозависимые командыне являются параллельными.
Какие различают видыпараллелизма в архитектуре процессоров?
Виды параллелизма:
параллелизм уровнякоманд (ILP – Instruction-Level Parallelism);
аппаратный параллелизм.
26. Чем определяетсяпараллелизм уровня команд?
Условие существования:команды в последовательности независимы и могут выполняться параллельно.
Степень параллелизма:зависит от частоты появления в программе фрагментов, содержащих взаимозависимыекоманды.
Факторы ILP:
архитектура наборакоманд;
специфика приложения;
операционнаялатентность – время, до истечения которого результат операции недоступен дляиспользования в качестве операнда в последующих командах.
Охарактеризуйтеаппаратный параллелизм.
Условие существования:способность процессора извлечь преимущества из программного параллелизма.
Степень параллелизмаопределяется:
Количеством команд,которые процессор может извлечь и выполнить одновременно (количествомпараллельных конвейеров);
Быстродействием ифункциональностью механизма выявления независимых команд.
27. Чем являютсязависимости?
Зависимости являютсясвойством программ.
На что влияютзависимости между командами?
Организацией конвейераопределяется:
Приведет ли даннаязависимость к обнаруженному конфликту.
Вызовет ли данныйконфликт реальную приостановку конвейера.
Три типа:
Зависимости по данным;
Зависимости по именам;
Зависимости поуправлению.
28. Что представляетсобой зависимость по данным?
Обнаружение зависимостипо данным
Данные от команды ккоманде передаются посредством:
Регистров – обнаружениезависимостей проще (имена регистров зафиксированы в командах).
Ячеек ОП – обнаружениезначительно сложнее.
29. Что означаетпонятие «сохранение потока данных»?
Условные переходыпозволяют данным для конкретной команды поступать из многих точек (источников)поток данных становиться динамическим. Изменить зависимость по управлению,сохраняя поток данных и решая проблему исключительных ситуаций, позволяют:
Выполнение команд попредположению;
Условные команды.
Какие меры способствуютснижению приостановок конвейера по управлению?
Базовое планированиезагрузки конвейера
Предотвращениеприостановки конвейера: отделить зависимую команду (j) от исходной (i) нарасстояние в тактах, равное задержке конвейера для последней.
Планирование –обеспечение условий максимальной загрузки конвейера.
Факторы эффективностипланирования:
Степень программногоILP;
Задержка функциональныхустройств в конвейере.
Недостатки простогоконвейера
Главное ограничение:порядок выдачи команд строго определен программой:
Приостановка выполнениякакой-либо команды в конвейере вызывает приостановку следующих за ней команд;
Если имеется несколькофункциональных устройств, многие из них могут оказаться незагруженными.
Подход к реализациинеупорядоченного выполнения
Простой конвейер:структурные конфликты и конфликты по данным потерялись на стадии ID.
Неупорядоченноевыполнение команд: ступень ID расщепляется на две:
Выдача: декодированиекоманд
Чтение операндов:ожидание, отсутствие конфликтов по данным
Динамическоепланирование (оптимизация)
Все команды:
Проходят ступень выдачи(issue) в порядке, предписанном программой (упорядоченная выдача);
Могутприостанавливаться и обходить друг друга на ступени чтения операндов, поступаяна ступень выполнения неупорядоченно.
Требование: возможностьодновременного нахождения нескольких команд на стадии выполнения.
Варианты:
Множество конвейерныхФУ;
Конвейеризация всех ФУ.
30. На чем основанопланирование загрузки конвейера?
Условие максимальнойзагрузки конвейера – выявление последовательностей несвязных команд, которыемогут выполняться в конвейере с совмещением.
Чтобыизбежатьприостановки конвейера, зависимая команда должна быть отделена отисходной команды на расстояние в тактах, равное задержке конвейера для этойисходной команды.
/>31.От чего зависит способность компилятора выполнять планирование загрузкиконвейера?
Способность компиляторавыполнять планирование загрузки конвейера зависит от следующих факторов:
Степень параллелизмауровня команд, доступного в программе;
Задержка функциональныхустройств в конвейере.
32. На что направленодействие механизмов динамического планирования?
Динамическоепланирование направлено на приостановки конфликтовтипа WARи WAW.
Какой порядок выдачи ивыполнения команд используется в конвейере с динамическим планированием?
Динамическоепланирование (оптимизация)
Все команды:
Проходят ступень выдачи(issue) в порядке, предписанном программой (упорядоченная выдача);
Могутприостанавливаться и обходить друг друга на ступени чтения операндов, поступаяна ступень выполнения неупорядоченно.
Требование: возможностьодновременного нахождения нескольких команд на стадии выполнения.
Варианты:
Множество конвейерныхФУ;
Конвейеризация всех ФУ.
33. Что означаетпонятие «суперскалярный процессор»?
Появление в структурепроцессора более одного конвейера делает этот процессор суперскалярным.
Структурасуперскалярного процессора:
Блок выборки команд:
Извлекает команды из ОПчерез кэш память;
Хранит несколько значенийсчетчика команд и обрабатывает команды условного перехода.
Блок диспетчеризации ираспределения:
Взаимодействие междусобой, выполняя функцию контроля трафика;
Хранят очередидекодирования команд
Блок декодирования:
Расшифровывает кодоперации, содержащийся в излеченной из кэша команде.
Накопители команд:
Каждый связан со своимфункциональным блоком (ФБ) → число накопителей обычно равно числу ФБ;
Выступают в роливиртуальных функциональных устройств по отношению к блоку диспетчеризации;
В некоторых процессорахобъединен в отдельную очередь.
Блок диспетчеризациитакже хранит список свободных ФБ – табло (Scoreboard). Блок диспетчеризацииизвлекает команды из своей очереди, считывает из памяти или регистров операндыэтих команд, после чего табло помещает команды и значения операндов в очередьраспределения.
Эта операция называетсявыдачей команд. Блок распределения в каждом цикле проверяет каждую команду наналичие операндов в соответствующем ФБ.
Блок исполнения:
Набор ФБ (операционныецелочисленные умножения и сложения с плавающей запятой, доступа к памяти ит.п.).
Блок обновлениясостояния:
Запись и анализрезультата команды, исполнение которой завершено.
34. Какие средстваоптимизации могут использоваться в суперскалярных процессорах?
Особенностью системыоптимизации программ при выполнении на суперскалярных процессорах являетсяналичие нескольких уровней оптимизации с применением как программных, так иаппаратных средств.
Отметим наличие двухмеханизмов процессора для повышения вычислительной эффективности программы:распараллеливания (один или несколько конвейеров) и оптимизации программы(переупорядочи­вание команд, переименование регистров, предсказание переходов ит.п.).
И если проблемыэффективности фазы оптимизации трансляторов внимание уделяется достаточно давнои много, проблема эффективности работы процессора также под контролемисследователей и производителей, то проблема исследования эффективности всейсистемы и отдельных ее частей применительно к конкретным алгорит­мам ипрограммам является практически неизученной.
35. Какое количествопараллельных блоков реализуется на практике в суперскалярных процессорах?
практически достижимаястепень параллелизма – 5-6;
Какие команды являются«спариваемыми»?
Команды являютсяспариваемыми, если:
Между ними не должнобыть регистровых зависимостей типа «запись после чтения» или «чтение послезаписи»;
Ни одна из команд неможет содержать одновременно смещение и непосредственный операнд;

36. Какие аппаратныесредства требуются для реализации суперскалярного процессора?
Блок выборки команд:
извлекает команды изосновной памяти через кэш-память команд;
хранит несколькозначений счетчика команд и обрабатывает команды условного перехода.
Блок декодирования:
расшифровывает кодоперации, содержащийся в извлеченных из кэш-памяти командах.
В некоторых процессорахблоки выборки и декодирования совмещены.
Блоки диспетчеризации ираспределения:
взаимодействуют междусобой, выполняя функцию контроллера трафика;
хранят очередидекодированных команд.
Очередь блокараспределения часто рассредоточивается по несколько самостоятельным буферам –накопителям команд или схемам резервирования (reservationstation), –предназначенным для хранения команд, которые уже декодированы, но еще невыполнены.
Каждый накопителькоманд связан со своим функциональным блоком (ФБ), поэтому число накопителейобычно равно числу ФБ, но если в процессоре используется несколько однотипныхФБ, то им придается общий накопитель.
По отношению к блокудиспетчеризации накопители команд выступают в роли виртуальных функциональныхустройств.
В некоторых процессорахнакопители объединены в единую очередь.
Блок диспетчеризациитакже хранит список свободных функциональных блоков – табло (Scoreboard).
Блок диспетчеризацииизвлекает команды из своей очереди, считывает из памяти или регистров операндыэтих команд, после чего, в зависимости от состояния табло, помещает команды изначения операндов в очередь распределения.
Эта операция называетсявыдачей команд. Блок распределения в каждом цикле проверяет каждую команду всвоих очередях на наличие всех необходимых для ее выполнения операндов и приположительном ответе начинает выполнение таких команд в соответствующемфункциональном блоке.
Блок исполнения:
набор функциональныхблоков (операционные целочисленные, умножения и сложения с плавающей запятой,доступа к памяти и т.п.).
Блок обновлениясостояния:
запись и анализрезультата команды, исполнение которой завершено;
учет полученногорезультата для команд в очередях распределения, где он выступает в качествеодного из операндов.
37. Что означает термин«speculative execution»?
Speculativeexecution — планирование по предположению (speculation), выполняемое с помощьюкомпилятора или аппаратуры — позволяет выполнить команду еще до того, какпроцессор узнает, что она должна выполняться.
38. Какие действиявыполняются на этапе выдача команды?
Блок диспетчеризацииизвлекает команды из своей очереди, считывает из памяти или регистров операндыэтих команд, после чего, в зависимости от состояния табло, помещает команды изначения операндов в очередь распределения.
39. Для чегопредназначены схемы резервирования?
Если в случаепараллельного исполнения процессором нескольких команд оказывается, что одна изних идет по ложному значению, определяемому уже после начала выполнения этихкоманд, то результат ее исполнения теряется, а нужный результат истиннойкоманды берется из схем резервирования. Т.е. они предназначены для хранениярезультатов параллельного выполнения одной или нескольких команд с определеннымусловием, которое вычисляется после начала выполнения этих команд (опережающееисполнение).
40. Как всуперскалярном процессоре реализуется этап записи результата?
Т.к. в суперскалярномпроцессоре одновременно выполняется большое количество вычислений, то ему нужендостаточный объем памяти для хранения результатов этих вычислений. КоличествоРОНов обычно ограничено, и его не хватает для этих целей, по этому были введеныспециальные дополнительные регистры для временного хранения данных. Они недоступны программисту. Обычно процессор сначала записывает результат в один изтаких регистров, а уже потом, при необходимости, извлекает его оттуда в нужныйрегистр.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

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

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.