
- •1. Понятие параллелизма. Пространственный и временной параллелизм.
- •2. Ярусно-параллельная форма представления алгоритма.
- •3. Автоматическое обнаружение параллелизма. Явная и скрытая параллельная обработка.
- •4.Степень параллелизма. Профиль параллелизма.
- •17.Способы организации свв. Свв для систем с распределенной оперативной памятью. Распределенная свв. Подключение спецпроцессора через свв.
- •5.Алгоритмические уровни параллелизма. Схемные уровни параллелизма.
- •6.Виды параллелизма. Естественный параллелизм и параллелизм множества объектов.
- •7. Виды параллелизма. Параллелизм независимых ветвей. Отличие параллелизма независимых ветвей от естественного параллелизма и параллелизма независимых ветвей от параллелизма множества объектов.
- •8.Виды параллелизма. Параллелизм смежных операций.
- •9. Модель задачи.
- •10. Уровни комплексирования устройств в вычислительных системах.
- •12. Структура и функция свв
- •13. Способы подключения свв к процессору.
- •14.Понятие модуля ввода-вывода. Функции мвв. Классификация мвв.
- •15.Способы организации свв. Свв для систем с общей оперативной памятью. Свв в виде специальной управляющей эвм.
- •16.Способ организации свв. Свв через внешние запоминающие устройства. Свв через «интерфейсную» эвм.
- •18. Сравнение архитектур cisc и risc.
- •19.Особенности risc-архитектуры.
- •20.Регистры в risc-процессорах.
- •21.Микропроцессор r10000.
- •22.Вычислительные системы класса мкмд. Многомашинные вычислительные комплексы.
- •23. Вычислительные системы класса мкмд. Многопроцессорные вычислительные комплексы и системы. Каноническая структура мультипроцессора.
- •24.Проблемы повышения производительности мпвк. Типы структурного построения мпвк.
- •25.Классификация мкмд-систем. Вычислительные системы с общей памятью: архитектура uma.
- •26.Классификация мкмд-систем. Вычислительные системы с общей памятью: архитектуры numa и coma.
- •27.Классификация мкмд-систем. Вычислительные системы с распределенной памятью.
20.Регистры в risc-процессорах.
Отличительная черта RISC-архитектуры - большое число регистров общего назначения, что объясняется стремлением свести все пересылки к типу «регистр-регистр». Но увеличение числа РОН способно дать эффект лишь при разумном их использовании. Оптимизация использования регистров в RISC-процессорах обеспечивается как программными, так и аппаратными средствами.
На начальном этапе компилятор выделяет каждой переменной виртуальный регистр. Число виртуальных регистров в принципе не ограничено. Затем компилятор отображает виртуальные регистры на ограниченное количество физических регистров. Виртуальные регистры, использование которых не перекрывается, отображаются на один и тот же физический регистр. Если в определенном фрагменте программы физических регистров не хватает, то их роль для оставшихся виртуальных регистров выполняют ячейки памяти. В ходе вычислений содержимое каждой такой ячейки с помощью команды «Чтение» временно засылается в регистр, после чего командой «Запись» вновь возвращается в ячейку памяти.
Аппаратная оптимизация использования регистров в RISC-процессорах ориентирована на две проблемы.
1. Предотвращение конфликтов между командами при конвейеризации команд.
Для этого некоторым регистрам придают специальные качества: такие регистры в состоянии принимать на себя имя любого РОН. Набор регистров, обладающих подобным свойством, называют буфером переименования. Прием оказывается очень удобным при конвейеризации команд и позволяет предотвратить конфликты, когда одна команда хочет воспользоваться регистром, в данный момент занятым другой командой.
2. Сокращение затрат времени при работе с процедурами.
Наибольшее время в программах, написанных на ЯВУ, расходуется на вызовы процедур и возврат из них. Связано это с созданием и обработкой большого числа локальных переменных и констант. Одним из механизмов для борьбы с этим эффектом являются регистровые окна. Главная их задача — упростить и ускорить передачу параметров от вызывающей процедуры к вызываемой и обратно.
Регистровый файл разбивается на группы регистров, называемые окнами. Отдельное окно назначается глобальным переменным. Глобальные регистры доступны всем процедурам, выполняемым в системе в любое время. Каждой процедуре выделяется отдельное окно в регистровом файле. Все окна имеют одинаковый размер (обычно по 32 регистра) и состоят из трех полей. Левое поле каждого регистрового окна одновременно является и правым полем предшествующего ему окна (рис. 4.2). Среднее поле служит для хранения локальных переменных и констант процедуры.
21.Микропроцессор r10000.
В основе микропроцессора R10000 лежит суперскалярная RISC-технология 5-го поколения. Микропроцессор R10000 представляет собой однокристальный процессор общего назначения для настольных персональных компьютеров, рабочих станций и серверов. Производительность процессора с тактовой частотой 200 МГц составляет 10,7 SPECint 95 и 19,0 SPECfp 95. Структура процессора представлена на рис. 4.3.
Основными особенностями архитектуры процессора R10000 являются:
- высокая степень параллельности выполнения микроопераций;
- эффективное предсказание переходов;
- планирование загрузки функциональных модулей.
R10000 имеет 5 функциональных блоков: два блока операций с плавающей точкой, два блока целочисленных операций и один блок загрузки/хранения (и соответственно 5 конвейеров).
Схема предсказания переходов использует 512-входовую таблицу предыс-тории переходов. Вероятность правильного предсказания на SPEC92 составляет 0,87. В момент выполнения предсказательного перехода процессор сохраняет свое состояние в 4-х позиционном стеке переходов. В него заносится альтернативный адрес перехода, полная копия таблиц отображения регистров с плавающей точкой и фиксированной точкой и различные управляющие биты. Эта информация требуется для восстановления в случае неправильного предсказания перехода. При заполнении стека декодирование команд производится до новой команды перехода, после чего ожидается освобождение позиции в стеке. При неправильно предсказанном переходе отменяются все команды, выбранные после неправильно предсказанного перехода.
На этапе предвыборки команд в кэш первого уровня осуществляется загрузка четырех 32-разрядных команд и их предварительное декодирование. Каждая команда в кэше снабжается дополнительным 4-битовым тэгом, который необходим для дальнейшего декодирования и классификации команды. Для команд перехода осуществляется вычисление результирующего адреса.
На втором этапе декодирования устраняются (если это возможно) зависи-мости между командами по данным. С этой целью используется механизм пе-реименования регистров. Зависимости по памяти устанавливаются по содер-жимому очереди обращений к памяти. Независимые команды могут выпол-няться в порядке, отличном от первоначального, задаваемого программой. Все результаты выполнения команд, полученные вне очереди, являются временными и могут быть отменены в случае неправильного предсказания перехода.
После декодирования команды разделяются на три очереди (l=16), в которых ожидают готовности операндов и функциональных блоков: целочисленных АЛУ, блоков выполнения операций с плавающей точкой и блока загрузки/записи. Очереди обслуживаются в порядке освобождения функциональных блоков процессора. Команда выполняется в одном из 5 конвейеров процессора, связанном с функциональным блоком. Функциональные блоки выполнения операций с фиксированной и плавающей точкой независимы, имеют раздельные регистровые файлы и пути передачи данных. Длина целочисленного конвейера – 1 такт, конвейера блока загрузки/сохранения – 2, блока операций с плавающей точкой – 3. При потенциальной способности выполнять 5 команд за такт R10000 допускает выборку только четырех, оставляя «пространство для маневра» при планировании загрузки функциональных блоков. Это позволяет R10000 в большинстве случаев выполнять четыре команды за такт, благодаря чему за один такт можно получить до 4 результатов.
R10000 содержит высокоскоростной (до 1,6 Гбайт/с) внутрикристальный интерфейс «процессор-шина», позволяющий объединить до 4-х процессоров без использования дополнительных интегральных схем.