- •1. Регистровая модель мп i8086/88. Назначение регистров
- •3. Принцип адресации памяти мп i8086: размер адресного пространства, понятие сегмента,
- •2. Регистр флагов мп i8086/88. Назначение регистра, флаги состояние, флаги управления
- •4. Логические сегменты программы. Адресация сегментов
- •5. Сегмент стека. Адресация стека, команды работы со стеком, изменение состояния стека.
- •11. Внешние (аппаратные) прерывания.
- •6. Режимы адресации мп i8086.
- •7. Формат команды мп i8086.
- •8. Формат двухоперандной команды (см 7)
- •10. Механизм обработки прерываний в вычислительных системах на базе мп i8086.
- •12. Логическая структура контроллера прерываний.
- •13. Управление вводом-выводом.
- •1 2. Особенности программ в сом-формате. Структура, хранение на диске, загрузка в память, варианты завершения.
- •15. Особенности программ в ехе-формате. Структура, хранение на диске, загрузка в память,
- •16. Распределение адресного пространства (карта памяти)
- •17. Управление памятью в реальном режиме
- •13(Пример) Организация взаимодействия мп i8086 с клавиатурой.
- •19. Организация текстового видеобуфера. Пример работы с текстовым видеобуфером.
- •20, 21. Особенности мп i80386. Виды организации логического адресного пространства
- •22. Регистровая модель мп i80386
- •26. Общий формат селектора и дескриптора в архитектуре мп i80386.
- •24. Общая структура кода команды мп 80386
- •27. Таблица дескрипторов сегментов. Адресация таблиц. Поиск дескриптора в таблицах
- •23. Pегистp флaгoв мп 80386.
- •35. Поддержка многозадачности в арх. Ia32. Смена задачи.
- •37. Таблица дискрипторов прерываний а арх. Ia32. Обработка прерываний.
- •36. Виды прерываний и особых ситуаций в архитектуре ia 32.
- •39. Способы организации кэш-памяти.
- •1. Где может размещаться блок в кэш-памяти?
- •2. Как найти блок, находящийся в кэш-памяти?
- •3. Какой блок кэш-памяти должен быть замещен при промахе?
- •4. Что происходит во время записи?
- •40. Принцип конвейерной обработки.
- •41. Конфликты в конвейере команд.
- •42. Суперконвейерные и суперскалярные процессоры.
- •43. Организация внешней памяти. Raid-массивы
41. Конфликты в конвейере команд.
Команда |
Такта |
||||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
Команда i |
IF |
ID |
OR |
EX |
WB |
|
|
|
|
Команда i+1 |
|
IF |
ID |
OR |
EX |
WB |
|
|
|
Команда i+2 |
|
|
IF |
ID |
OR |
EX |
WB |
|
|
Команда i+3 |
|
|
|
IF |
ID |
OR |
EX |
WB |
|
Команда i |
|
|
|
|
IF |
ID |
OR |
EX |
WB |
%Табл 11.1%
IF - считывание команды в процессор; ID - декодирование команды;
OR - считывание операндов; EX - выполнение команды;
WB - запись результата.
При реализации конвейерной обработки возникают ситуации, которые препятствуют выполнению очередной команды из потока команд в предназначенном для нее такте. Такие ситуации называются конфликтами. Конфликты снижают реальную производительность конвейера, которая могла бы быть достигнута в идеальном случае. Существуют три класса конфликтов:
Структурные конфликты, которые возникают из-за конфликтов по ресурсам, когда аппаратные средства не могут поддерживать все возможные комбинации команд в режиме одновременного выполнения с совмещением.
Конфликты по данным, возникающие в случае, когда выполнение одной команды зависит от результата выполнения предыдущей команды.
Конфликты по управлению, которые возникают при конвейеризации команд переходов и других команд, которые изменяют значение счетчика команд.
Структурные конфликты возникают в том случае, когда аппаратные средства процессора не могут поддерживать все возможные комбинации команд в режиме одновременного выполнения с совмещением.
Причины структурных конфликтов.
1) Не полностью конвейерная структура процессора, при которой некоторые ступени отдельных команд выполняются более одного такта. 2) Недостаточное дублирование некоторых ресурсов.
Конфликты по управлению возникают при конвейеризации команд переходов и других команд, изменяющих значение счетчика команд.
Конфликты по данным возникают в случаях, когда выполнение одной команды зависит от результата выполнения предыдущей команды. Пусть команда i предшествует команде j. Существует несколько типов конфликтов по данным.
Конфликты типа RAW (Read After Write): команда j пытается прочитать операнд прежде, чем команда i запишет на это место свой результат. При этом команда j может получить некорректное старое значение операнда.
Конфликты типа WAR (Write After Read): команда j пытается записать результат в приемник, прежде чем он считается оттуда командой i, При этом команда i может получить некорректное новое значение операнда
Конфликты типа WAW (Write After Write): команда j пытается записать результат в приемник, прежде чем в этот же приемник будет записан результат выполнения команды i, то есть запись заканчивается в неверном порядке, оставляя в приемнике результата значение, записанное командой
