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 Instruction Word - архитектура с очень длинным командным словом.
Выдача на одновременное выполнение фиксированного количества команд, сформатированных как:
одна «длинная» команда;
пакет команд фиксированного формата;
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 (Explicitly Parallel 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?