
- •17 Базовые типы операндов: данные логического типа, строки, адреса
- •18 Базовые типы операндов: числа, разрядность основных форматов, размещение в памяти
- •19, 20 Данные символьного типа: общие сведения, принципы кодирования, стандарты ascii и iso 8859, кодовые страницы, юникод.
- •21. Архитектура на основе общей магистрали. Характеристики системной магистрали.
- •22. Алгоритм функционирования системной магистрали. Взаимодействие устройств.
- •23. Иерархия магистралей: двух- и трехшинная архитектура.
- •24. Шинный арбитраж: предпосылки введения, схемы приоритетов.
- •25. Шинный арбитраж: алгоритмы динамического изменения приоритетов.
- •26. Централизованный параллельный и многоуровневый арбитраж шины.
- •27. Централизованный последовательный арбитраж.
- •28. Децентрализованный арбитраж шин.
- •29. Опросные схемы арбитража шин.
- •30. Протокол шины: понятие, виды протоколов. Транзакции синхронной шины.
- •31. Асинхронные протоколы шины: транзакции, тайм-ауты.
- •32. Пакетный режим пересылки информации. Конвейеризация транзакций.
- •33. Расщепление транзакций. Увеличение полосы пропускания шины.
- •Локализация данных;
- •Управление и синхронизация
- •Обмен информацией
- •Буферизация данных
- •Обнаружение ошибок
- •36. Структурная организация модуля ввода-вывода.
- •37. Алгоритм обмена информацией между центральным процессором и внешним устройством.
- •38 Способы организации ввода-вывода. Программно управляемый ввод-вывод.
- •39. Команды, используемые при программно управляемом вводе-выводе.
- •40. Механизм ввода-вывода по прерываниям
- •41. Методы идентификации устройств, запрашивающих прерывание.
- •42. Векторные прерывания: принципы реализации, виды.
- •43 Приоритеты прерываний. Отличие последовательной обработки прерываний от обработки вложенных прерываний.
- •44. Контроллер прямого доступа к памяти: состав и назначение компонентов, инициализация.
- •45. Алгоритм обмена на основе пдп. Буферизация данных.
- •Варианты реализации механизма пдп. Достоинства и недостатки.
- •Понятия канала ввода-вывода и процессора ввода-вывода.
- •Канальная программа. Управляющее слово канала.
- •Алгоритм функционирования канала ввода-вывода. Способы организации взаимодействия ву с каналом.
- •Режимы канала ввода-вывода.
- •Методы доступа к данным в памяти компьютера.
- •Параметры оценки быстродействия памяти.
- •Иерархическая архитектура памяти компьютера: предпосылки внедрения, принципы реализации и функционирования.
- •Локальность по обращению: виды, использование в архитектурных решениях.
- •Иерархия памяти компьютера: характеристики, описание уровней.
- •Основная память компьютера: назначение, типы запоминающих устройств, способы организации.
- •57 Адресная организация памяти
- •58. Блочная организация памяти: назначение, виды, факторы эффективности применения
- •59. Расслоение памяти и чередование адресов: назначение, принцип реализации
- •60. Ассоциативная память: логическая организация, функционирование
- •63 Логическая и функциональная организация кэш-памяти прямого отображения.
- •64 Логическая и функциональная организация полностью ассоциативной кэш-памяти.
- •65 Логическая и функциональная организация множественно-ассоциативной кэш-памяти.
- •66 Алгоритмы замещения информационных блоков в кэш-памяти: назначение, виды, реализация.
- •67 Согласование содержимого кэш-памяти и оп. Стратегии записи в кэш-памяти.
- •68 Многоуровневая кэш-память. Принстонская и гарвардская архитектуры кэш-памяти.
- •69 Виртуализация памяти компьютеров: предпосылки внедрения, принцип реализации, виды виртуальной памяти.
- •70 Концепция страничной организации памяти. Взаимодействие виртуальной памяти с кэш-памятью.
- •71 Варианты реализации страничной таблицы. Tlb.
- •72 Ограничения страничной организации памяти. Сегментация памяти.
- •73 Проблемы динамического распределения памяти при сегментации. Сегментно-страничная организация памяти.
- •74 Метод колец защиты памяти.
- •75 Метод граничных регистров памяти.
- •76 Защита памяти по ключам.
- •Концепция raid: принципы построения массивов дисковой памяти, назначение, способы реализации.
- •78. Дисковые массивы raid уровней 0, 1, 10: назначение, принципы реализации, свойства.
- •79. Дисковые массивы raid уровней 5, 6: назначение, принципы реализации, свойства.
- •81. Прерывания: фаза прерывания, поток данных, классы прерываний.
- •82. Арифметический конвейер: назначение, принципы реализации. Понятие суперковейера.
- •83. Конвейерная обработка данных: предпосылки внедрения, принципы реализации, способы синхронизации ступеней.
- •1. Синхронный конвейер
- •2. Асинхронный конвейер
- •84. Синхронный конвейер: реализация 6-ступенчатого конвейера, метрики эффективности, оценка выигрыша от внедрения.
- •Ускорение
- •2. Эффективность
- •3 . Пропускная способность (производительность)
- •85. Виды рисков синхронного конвейера.
- •86. Методы снижения приостановок конвейера.
- •88. Risc-архитектура: средства оптимизации использования регистров.
- •89. Параллелизм уровня команд. Концепция vliw-архитектуры.
- •90. Суперскалярные компьютеры: принципы построения, структура процессора.
- •1) Преобразовать выражение в постфиксную форму;
- •2) Показать последовательность стековых операций при использовании полиз.
89. Параллелизм уровня команд. Концепция vliw-архитектуры.
Параллельные команды – могут выполняться в конвейере одновременно, без приостановок, полагаясь на отсутствие структурных конфликтов.
Параллелизм уровня команд - Instruction-Level Parallelism(ILP)
Условие существования: команды в последовательности независимы и могут выполняться параллельно.
Степень параллелизма: зависит от частоты появления в программе фрагментов, содержащих взаимозависимые команды.
Факторы ILP: архитектура набора команд; специфика приложения; операционная латентность – время, до истечения которого результат операции недоступен для использования в качестве операнда в последующих командах.
VLIW-компьютеры (Very Long Instruction Word, архитектура с очень длинным командным словом):
выдача на выполнение фиксированного количества команд, сформатированных как:
одна «длинная» команда;
пакет команд фиксированного формата;
планирование исключительно компилятором.
Планирование вычислений полностью реализуется программным обеспечением.
Функции «интеллектуального» компилятора:
поиск в программе независимых инструкций;
группирование найденных инструкций в «очень длинные» командные слова («метаинструкции» длиной 256-1024 бит).
Недостатки архитектуры VLIW
Проблема: зависимость VLIW-компилятора от микроархитектуры процессора.
Решение: разделить процесс компиляции на две стадии:
генерация промежуточного кода (аппаратно-независимый формат);
трансляция промежуточного кода в машинно-зависимый на машине пользователя.
Проблема: реакция программы на непредусмотренные в процессе компиляции динамические ситуации (например, ожидание ввода-вывода) неизвестна. Архитектура VLIW ориентирована на вычисления, где особенно необходимо большое быстродействие процессора, но для объектно-ориентированных и управляемых по событиям программ она менее подходит.
90. Суперскалярные компьютеры: принципы построения, структура процессора.
Суперскалярные компьютеры:
выдача на выполнение в каждом такте переменного числа команд;
планирование работы конвейеров посредством:
компилятора (статически); аппаратных средств динамической оптимизации.
Особенности суперскалярных машин
команды должны быть независимыми и удовлетворять некоторым ограничениям, например таким, что в каждом такте не может выдаваться более одной команды обращения к памяти;
если какая-либо команда в потоке команд является логически зависимой или не удовлетворяет критериям выдачи, на выполнение будут выданы только команды, предшествующие данной;
скорость выдачи команд является переменной (отличие от VLIW-машин).
Достоинства
малое воздействие на плотность кода:
машина сама определяет возможность выдачи очередной команды;
отсутствует необходимость слежения за тем, чтобы команды соответствовали возможностям выдачи;
выполнение неоптимизированных или ранее откомпилированных программ.
Недостатки
размеры аппаратного планировщика:
при увеличении количества функциональных модулей возрастают в геометрической прогрессии;
практически достижимая степень параллелизма – 5-6;
обнаружение зависимостей и планирование параллельного исполнения только внутри базовых программных блоков (решение: в некоторых процессорах область сканирования может превышать границы базового блока).
Процессор определяет очередность:выборки команд из памяти;выполнения команд;обновления содержимого регистров и ячеек памяти. Выдача и завершение команд бывают упорядоченными и неупорядоченными.Чаще используются неупорядоченные:
дополнительный потенциал повышения производительности суперскалярного процессора;
необходимо решить проблемы:
устранить зависимости по данным (RAW, WAW);
обеспечить порядок выполнения, при котором общий итог вычислений идентичен результату, определяемому строгой программной последовательностью.
Структура суперскалярного процессора
Блок выборки команд:
извлекает команды из основной памяти через кэш-память команд;
хранит несколько значений счетчика команд и обрабатывает команды условного перехода.
Блок декодирования:
расшифровывает код операции, содержащийся в извлеченных из кэш-памяти командах.
В некоторых процессорах блоки выборки и декодирования совмещены.
Блоки диспетчеризации и распределения:
взаимодействуют между собой, выполняя функцию контроллера трафика;
хранят очереди декодированных команд.
Очередь блока распределения часто рассредоточивается по несколько самостоятельным буферам – накопителям команд или схемам резервирования (reservation station), – предназначенным для хранения команд, которые уже декодированы, но еще не выполнены. Каждый накопитель команд связан со своим функциональным блоком (ФБ), поэтому число накопителей обычно равно числу ФБ, но если в процессоре используется несколько однотипных ФБ, то им придается общий накопитель.По отношению к блоку диспетчеризации накопители команд выступают в роли виртуальных функциональных устройств. В некоторых процессорах накопители объединены в единую очередь. Блок диспетчеризации также хранит список свободных функциональных блоков – табло (Scoreboard).Блок диспетчеризации извлекает команды из своей очереди, считывает из памяти или регистров операнды этих команд, после чего, в зависимости от состояния табло, помещает команды и значения операндов в очередь распределения. Эта операция называется выдачей команд. Блок распределения в каждом цикле проверяет каждую команду в своих очередях на наличие всех необходимых для ее выполнения операндов и при положительном ответе начинает выполнение таких команд в соответствующем функциональном блоке.
Блок исполнения:
набор функциональных блоков (операционные целочисленные, умножения и сложения с плавающей запятой, доступа к памяти и т.п.).
Блок обновления состояния:
запись и анализ результата команды, исполнение которой завершено;
учет полученного результата для команд в очередях распределения, где он выступает в качестве одного из операндов.
Задача 1 (2 варианта)
Заданы следующие параметры:
— адрес, по которому хранится команда (X1);
— содержимое адресной части команды (X2);
— адрес ячейки памяти, содержащей операнд для команды (X3);
— содержимое индексного регистра (X4).
Требуется определить соотношение между перечисленными значениями в командах со следующими режимами адресации:
— прямой;
x2 – операнд, x1, x3, x4 – не используются.
— косвенный;
x3 – адрес операнда, x1, x2, x4 – не используются.
— относительный;
x1+x2 – адрес операнда, x3, x4 – не используются.
— индексный;
x2+x4 – адрес операнда, x1, x3 – не используется.
Задача 2
Команды Стек
push A A
push B B A
push C C B A
push D D C B A
push E E D C B A
add (D+E) C B A
push F F (D+E) C B A
div ((D+E)/F) C B A
add (C+(D+E)/F) B A
push G G (C+(D+E)/F) B A
sub (C+(D+E)/F-G) B A
push H H (C+(D+E)/F-G) B A
div ((C+(D+E)/F-G)/H) B A
mul (B*(C+(D+E)/F-G)/H) A
add (A+B*(C+(D+E)/F-G)/H)
Выражение в инфиксной форме: A+B*(C+(D+E)/F-G)/H
Задача 3 (4 варианта)
Задано выражение в инфиксной форме:
(A-B)*(((C-D*E)/F)/G)*H
Требуется: