- •2. Регистры процессора 8086, особенности регистровой модели.
- •3. Форматы и типы команд 80х86, режимы адресации операндов
- •4. Описание адреса операнда в команде ассемблера
- •7.Директивы описания данных в языке ассемблера
- •9. Сегментная модель памяти, описание сегментов.
- •10. Описание и обработка массивов на ассемблере.
- •11. Вычисления с фиксированной и плавающей точкой.
- •12.Форматы и типы данных арифметического сопроцессора.
- •13.Особые ситуации в численных расчетах.
- •14.Арифметический сопроцессор: архитектура сопроцессора; команды сопроцессора
- •Регистр состояний
- •15.Поток выполнения. Команды управления программой, переходы, ветвления, подпрограммы.
- •16.Команды управления программой. Реализация основных управляющих структур.
- •17.Понятие о подпрограмме; вызов подпрограммы; стек; адрес возврата; рекурсивная подпрограмма.
- •18.Способы передачи параметров в подпрограммы; передача параметров по ссылке и по значению.
- •19.Соглашение о связях Pascal.
- •20.Понятие о прерывании; обработка прерываний, функции контроллера прерываний.
- •21.Система прерываний микропроцессора 8086; Обмен по прерываниям.
- •22.Исключительные ситуации и прерывания. Программные прерывания.
- •23. История появления и развития эвм, поколения эвм.
- •Второй период (1955 г.–начало 60-х). Компьютеры на основе транзисторов. Пакетные операционные системы
- •Третий период (начало 60-х – 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ос
- •Четвертый период (с 1980 г. По настоящее время). Персональные компьютеры.
- •24. Принципы фон-Неймана, понятие об архитектуре эвм.
- •25. Состав фон-неймановской эвм. Устройство управления, алу, память, порты внешних устройств; регистры процессора.
- •26. Представление информации в памяти эвм. Дополнительный код. Признаки переполнения и переноса. Двоично-десятичные числа.
- •27.Команды цп; выполнение команд; цикл процессора; классификация команд.
- •28. Понятие о системном интерфейсе эвм; способы обмена данными между процессором и другими устройствами. Контроллер периферийного устройства.
- •29.Программно-управляемый обмен. Понятие о прямом доступе к памяти.
- •30. Понятия «интерфейс», «магистраль», «протокол». Состав интерфейсов; структура шин адреса, данных, команд, управления
- •36. Кэш память и массовая оперативная память; способы организации кэш памяти.
- •48. Конфликты по управлению; способы минимизации потерь в результате конфликтов по управлению, прогнозирование ветвлений.
- •49. Суперскалярные процессоры и процессоры с длинным командным словом.
- •52. Классификация параллельных проектов. Системы класса simd; матричная и векторная обработка данных.
- •53. Системы класса mimd; Классификация. Модели связи и архитектуры памяти; способы реализации и основные особенности.
- •56. Проблемы когерентности кэш памяти в многопроцессорных системах. Протокол mesi. Системы с массовым параллелизмом.
- •64 Битные процессора amd. K8, архитектура и основные особенности.
- •64. Процессоры UltraSparc как характерные представители класса risc процессоров.
- •65.Многоядерные процессоры компаний Intel
- •66. Многоядерные процессоры компаний amd
48. Конфликты по управлению; способы минимизации потерь в результате конфликтов по управлению, прогнозирование ветвлений.
If (a==0)k=1; else k=2;
Ld r0, a
Cmp a,0
Jne else
Mov r1,1
St k,r1
Jmp exit
Else: mov r1,2
St k,r1
Exit:
Решение 1: набирать команды, как-будто условного перехода нет. В некоторых процессорах промежуточный результат полученной команды заноситься во временные регистры. Переписывается из временных регистров основном происходит когда закончились все переходы.
Решение 2: статическое предсказание переходов. Условный переход назад считается выполняемым, а условный вперед невыполняемый.
Решение 3: Задержанный переход. Между условным переходом и след за ней командой разместить действие, которое не зависит от условного перехода
Решение 4: Динамическое предсказание переходов. В процессе работы команды накапливаются Статистическая информация, на основе которой делается вывод, будет совершаться переход, или нет.
Конструкторы используют для этого Breach Target Buffer
|
address |
target |
history |
|
|
|
|
|
|
|
|
Target – целевой адрес
History – история
Счетчик переходов исп. В качестве history. Если переход выполнился то счетчик ++, иначе --
Счетчик имеет 2n состояний. Счетчик < 2n-1 - не будет выполняться переход. Обычно используется 2 битный счетчик. Некоторые процессоры используют многоуровневую схему предсказания переходов, в которой применяются сразу несколько из описанных методик. Точность предсказаний превышает 90%
49. Суперскалярные процессоры и процессоры с длинным командным словом.
Каждая задача выполняется за разное время, поэтому было бы логичнее когда каждый тип операции выполняется своим собственным специальным устройством. Каждое из этих устройство полностью или частично конвейерное. Предполагается что в состав процессора входит 4 устройства: для простых арифметических операций, для сложных арифметических операций, устройство с плавающей точкой. Каждое устройство имеет разные длины конвейера или данные на некоторых участках задерживаются больше, чем на одни такт
Для загрузки сущ. 2 подхода:
В системе команд явно отраженно наличие нескольких используемых устройств. Команда, принимаемая на обработку имеет поля кода операции для каждого из устройств
|
Код оп1 |
Операнды1 |
Код оп2 |
Операнды2 |
Код оп3 |
Операнды3 |
Код оп4 |
Операнды4 |
Процессор с длинным командным словом(пдкс). В пдкс задача планирования загрузки возложена на программиста. Или компилятора
Явных указаний на наличие нескольких устройств нет. Задача планирования загрузки выполняется процессором. Процессор принимает на обработку группу команд, декодирует их и распределяет устройствам самостоятельно.(суперскалярный процессор ссп )
ПДКС имеет преимущество в том, что процессор может рассмотреть больший объем кода, более тщательно, чем его спланировать с учетом конфликта по данным. ССП имеет преимущество в том, что он может более гибко обрабатывать конфликты по управлению, которые возникают динамически, в процессе работы программы. С другой стороны ссп может выбирать и использовать команды с учетом предсказаний переходов, поэтому реальный размер порции кода которые можно анализировать и выполнять ограничивается расстояниям между 2-мя условными переходами => ссп практически не способен проанализировать более 6-8 команд
Обобщенная структура и функционирование суперскалярного процессора.
С
труктура
ссп должна быть следующей
Блок 1 предвыборка. Должен заранее распознать условный переход в потоке, выполнить прогноз перехода и выбрать следующий блок команд
Блок выборки и декодирования команд. выбирает отдельные команды из потока, анализирует зависимость по данным и реализует механизмы преодоления этих конфликтов. Ответственен за преобразование команд в набор микроопераций цп, на этом этап проверяется наличие ресурсов для выполнения команды, команда назначается на выполнение на одно из функциональных устройств, после завершения выполнения этот же самый блок ответственен за то, чтобы результаты вводились в память согласно предписанным командам. Чтобы поддержать сперскалярную обработку вместе с разделениям используемых устройств на группы, поддерживается разделения регистров на группы. Память данных отделяется от памяти команд для уменьшения структурных конфликтов, вызванных одновременным обращением к памяти.
Параллелизм в вычислительной системе, уровни параллельности.
Блок1:
Addsum = 0;
Evensum=0;
K=1;
Блок2:
While(k<limit)
Блок3:
{ l=k*k*k;
If(((k/2)*2)==k)
Блок4:
evensum+=l;
else
блок5:
addsum+=l;k++}
фрагмент можно разбить на блока, которые мы будем называть базовами элементами. ССП позволяет распараллелить вычисления в пределах одного базового блока. Ускорить выполнение данного фрагмента можно, если заранее попытаться выполнить некие длинные операции. Пусть все переменные (кроме sum), находятся в регистрах. Прием состоит в том, что действие выполняется до того, когда оно фактически нужно. В данном случае команду загрузки переменной из памяти совместить с вычислениями в выполняемыми в пределах одного блока. Такое выполнение команд из предположения что их результат в будущем понадобиться называется спекулятивными выполнением. Со спекулятивным выполнением связана она существенная проблема. Спекулятивная команда может вызвать исключительную ситуацию. Поэтому в процессорах, допускающих спекулятивную выполнение есть средства позволяющие отложить возбуждение исключений до того как результаты команды действительно понадобятся.
В пентиум 4 появилась команда speculative load . при такой загрузке прерывания, которые возбуждает команда, запрещаются. Перед тем, как переменная фактически используется производиться опрос спекулятивной загрузки, если исключение было, то возбуждается прерывания.
Параллелизм на уровне битов Основана на увеличении размера машинного слова. Увеличение размера машинного слова уменьшает количество операций, необходимых процессору для выполнения действий над переменными, чей размер превышает размер машинного слова. Параллелизм на уровне инструкций Компьютерная программа - это, по существу, поток инструкций выполняемых процессором. Но можно изменить порядок этих инструкций, распределить их по группам, которые будут выполняться параллельно, без изменения результата работы всей программы. Современные процессоры имеют многоступенчатый конвейер команд. Каждой ступени конвейера соответствует определенное действие, выполняемое процессором в этой инструкции на этом этапе
