
- •Билет №1 Структура эвм общего назначения. Алу, уу
- •Арифметико-логические устройства.
- •Устройства управления.
- •Описание сегментного механизма
- •Билет №2 Структура эвм общего назначения. Risc и cisc процессоры. Форматы машинных команд.
- •Risc и cisc процессоры.
- •Форматы машинных команд.
- •Описание страничного механизма.
- •Билет №3 Структура эвм общего назначения. Способы адресации. Стековая адресация. Виды стеков.
- •Способы адресации.
- •Стековая адресация. Виды стеков.
- •Особенности страничного механизма в Pentium и в р6.
- •Билет №4 Микропроцессор вм86. Назначение входов/выходов вм86 в минимальном/максимальном режиме.
- •Назначение входов/выходов вм86 в максимальном режиме.
- •Общие сведения о механизмах адресации в защищенном режиме.
- •Билет №5 Внутренняя архитектура мп вм86. Программная модель мп вм86.
- •Программная модель мп вм86.
- •Форматы системных таблиц защищенного режима. Системные таблицы
- •Билет №6 мп вм86. Сегментация памяти. Организация оперативной памяти.
- •Общие сведения о 32х разрядных процессорах фирмы Intel. Tss, ldt, gdt. Селектор,дескриптор. Билет №7 мп вм86. Организация адресного пространства портов ву.
- •Общие сведения о 32х разрядных процессорах фирмы Intel. Режимы работы, Режимы работы 32 разрядного процессора.
- •Билет №8 Программируемый адаптер к1810вв55 (i8255)
- •Битовая карта ввода вывода
- •Билет 9 Программируемый таймер к1810ви54 (i8254)
- •Механизм перехода в защищенном режиме
- •Билет №10 Общие сведения об обработке прерываний.
- •Формат машинной команды 32х разрядного процессора.
- •Билет №11 Система прерываний вм86.
- •Внутренняя кэш-память.
- •Билет №12 Контроллер прерываний к1810вн59 (i8259). Настройка вн59.
- •Сведения о внутренней организации 32-х разрядных процессорах, (состав, назначение).
- •Билет №13 Общие сведения о прямом доступе к памяти.
- •Буфер tlb. Кэш-память страниц.
- •Билет 14 Контроллер прямого доступа к памяти к1810вт37 (i8237).
- •Программирование кпдп вт37
- •Вопрос №2
- •Билет 15
- •1. Организация процессорного модуля вм86.
- •2.21 Организация процессорного модуля вм86.
- •Программная модель 32-разрядного мп.
- •Программная модель 32 разрядного мп
- •Билет 16 Слабосвязанная конфигурация.
- •2.23. Слабо связанные конфигурации.
- •Форматы таблиц gdt, ldt и idt.
- •3.4. Системные таблицы
- •Билет 17 Арбитр шин к1810вб89 (i8289).
- •2.24. Арбитр шин к1810вб89 (i8289).
- •Формат дескриптора.
- •3.15 Формат дескриптора.
- •Билет №18 Сильно связанные конфигурации на примере совместной работы мп86 и арифметического сопроцессора вм87.
- •Форматы элементов pte и pde.
- •3.8. Формат элемента pte (pde).
- •Билет №19 Формат машинных команд мп вм86.
- •Механизм переключения задач. Формат сегмента tss
- •Билет №20 мп вм86. Сегментация памяти. Организация оперативной памяти.
- •Сегментация памяти.
- •2.7 Организация оперативной памяти.
- •Общие сведения о кэш-памяти.
- •Внутренняя кэш-память
- •Сведения о кэшах в процессорах фирмы Intel.
Билет №13 Общие сведения о прямом доступе к памяти.
Обычно передача байта, например, из ВУ в ОП производится по следующей схеме. За один цикл шины информация считывается из порта ВУ и запоминается во внутреннем регистре процессора, затем, также за один цикл шины, эта информация передается из процессора в ОП. Таким образом, данная схема требует двух циклов шины на передачу одного байта. Однако скорость обмена можно увеличить, если передавать байт из порта ВУ в ОП напрямую, минуя процессор. Обмен при этом требует только одного цикла шины. Такой режим обмена называется прямым доступом к памяти (ПДП).
На время ПДП процессор отключается от системной шины, поэтому в систему вводится специальная схема контроллера ПДП (КПДП), которая и управляет обменом.
Пусть, например, надо передать байт информации из ОП в порт ВУ. Предварительно КПДП должен быть задан адрес ячейки ОП, откуда будет передаваться информация и направление передачи. Когда ВУ потребуется прочитать данный байт, оно формирует запрос на ПДП, поступающий на контроллер. Последний формирует активный сигнал на вход HOLD МП. Получив этот сигнал МП, прекращает выполнение программы, отключается от шин и вырабатывает сигнал подтверждения захвата HLDA. С этого момента управление системной шиной берет на себя КПДП. Для нашего примера КПДП выполняет следующие действия: вырабатывает сигнал подтверждения ПДП, подключающий порт ВУ к ШД, выставляет на ША адрес ячейки ОП, вырабатывает сигналы MR и IOW, задающие вид операции соответственно для ОП и ВУ. После передачи байта КПДП снимает активный сигнал с входа HOLD МП, возвращая последнему управление системной шиной.
Передача байта из ВУ в ОП производится аналогично, меняются только сигналы, задающие вид операции для ОП и ВУ.
При ПДП возможна передача целого блока информации. В этом случае КПДП предварительно задается направление передачи, начальный адрес блока в ОП и размер блока. После передачи очередного байта сигнал HOLD не снимается, содержимое счетчика байт уменьшается на единицу, а адрес ячейки ОП либо уменьшается, либо увеличивается (в зависимости от настройки КПДП) на единицу. Процесс обмена продолжается, пока счетчик байт не обнуляется.
Буфер tlb. Кэш-память страниц.
Страничный механизм очень громоздкий и требует больших временных затрат. Поэтому в МП стоит внутренняя кэш-память страниц, в которой хранятся начальные адреса (вернее 20 старших разрядов адреса, поскольку 12 младших разрядов начального адреса страницы равны 0) страниц, с которыми МП работал в последнюю очередь. Процент кэш-попаданий в буфер TLB составляет порядка 95 - 98%. И только при кэш-промахе включается страничный механизм. Далее на рис. 73 поясняется структура и принцип работы буфера TLB.
Кэш-память страниц состоит из трех блоков: блок данных, блок тэгов и блок LRU/достоверности (на рисунке последний блок из-за недостатка места обозначен просто как блок LRU ). Блок данных разбивается на строки. Всего этих строк 4×8 = 32. Каждая строка имеет формат 20 бит. В строку можно загрузить начальный адрес страницы ( вернее 20 старших разрядов этого адреса). Каждой строке ставится в соответствие свой тэг в блоке тэгов. На рисунке приведен пример, где соответствующие друг другу строка и тэг помечены звездочками. Тэг имеет формат 17 бит.
Всю кэш-память страниц можно условно разбить на 8 горизонталей (на рисунке соответственно гр. 0 - гр. 7 ). На каждой горизонтали располагаются четыре строки, соответствующие этим строкам четыре тэга и один 7 битовый элемент LRU/достоверности.
Рис. 73
Далее рассмотрим работу кэш-памяти страниц. Алгоритм ее функционирования достаточно прост по сути, но зачастую оказывается сложным для понимания. Поэтому начнем с рассмотрения варианта когда МП ищет в буфере начальный адрес нужной ему страницы и там его не находит (кэш-промах).
Итак сегментный механизм выработал линейный адрес Ал. Поскольку включен страничный механизм этот адрес еще не является физическим (Аф). Пусть при поиске (соответствующего этому Ал) начального адреса страницы в буфере TLB произошел кэш-промах. При этом начинает работать рассмотренный ранее громоздкий страничный механизм. Когда МП в соответствующей таблице страниц найдет нужный элемент PTE, он извлечет из этого элемента 20 старших разрядов начального адреса страницы, пристыкует к ним 12 разрядное смещение OFFSET (из Ал) и сформирует тем самым искомый Аф. Одновременно МП возьмет найденные им в PTE 20 старших разрядов начального адреса страницы и загрузит их в одну из строк блока данных буфера TLB. При этом важным является то, что данный начальный адрес не может попасть в любую произвольную строку блока данных, он может попасть только в одну из четырех строк на конкретной горизонтали ! Номер горизонтали определяют при этом разряды 14 - 12 линейного адреса Ал. Например , если Ал = 11000001111100101010111100111001b (разряды 14 - 12 выделены жирным шрифтом) то поиск начального адреса страницы, а впоследствии, если он не найден, загрузка этого начального адреса в буфер будет производиться на горизонтали 2.
Когда МП при кэш-промахе загружает в какую-либо строку буфера новый начальный адрес страницы он одновременно копирует в соответствующий этой строке тэг 17 старших разрядов Ал (разряды 31 - 15). Для нашего примера (если конечно был кэш-промах) в соответствующий тэг будет записано 11000001111100101. Открытым пока остается вопрос, а в какую из четырех строк на известной горизонтали попадет (при кэш-промахе) наш начальный адрес. Решением этого вопроса «заведует» расположенный на этой горизонтали элемент LRU/достоверности. Вернее вопрос решается на основании записанной в этом элементе информации. Как это происходит будет показано позднее.
Вернемся теперь к началу процесса. Итак у нас включен страничный механизм. Сегментный механизм выработал Ал. МП берет разряды 14 -12 этого адреса и определяет горизонталь в буфере TLB. Затем МП берет старшие 17 разрядов Ал и сравнивает их со всеми четырьмя тэгами, расположенными на выбранной горизонтали. При этом возможны два варианта: произошло сравнение с одним из тэгов или сравнений не произошло совсем. Несколько сравнений сразу произойти здесь не может, так как алгоритм заполнения кэш-памяти таков, что на одной горизонтали не может оказаться одинаковых тэгов.
Если сравнений не произошло значит произошел кэш-промах. Действия МП при кэш-промахе мы уже рассмотрели выше. Если сравнение с одним из тэгов произошло - это кэш-попадание. МП достает из соответствующей этому тэгу строки 20 старших разрядов начального адреса страницы, пристыковывает к ним 12 младших разрядов Ал ( OFFSET ) и тем самым формирует искомый Аф.
Любой элемент LRU/достоверности имеет формат, приведенный на рис. 74.
b0 |
b1 |
b2 |
a0 |
a1 |
a2 |
a3 |
Рис. 74
Здесь a0 - a3 -биты достоверности. Каждый бит достоверности соответствует одной из четырех расположенных на данной горизонтали строк. Когда МП после кэш-промаха загружает «на горизонталь» новый начальный адрес страницы, он прежде всего последовательно проверяет биты достоверности, расположенные на данной горизонтали. Если при этом МП встречает строку, объявленную недостоверной, именно в нее и будет загружен новый адрес.
Однако вполне возможно что все строки на данной горизонтали окажутся достоверными. Тогда информацию из какой-то строки придется удалить, а на ее место загрузить новый начальный адрес. МП при этом стремиться удалить начальный адрес той страницы, к которой он обращался наиболее давно. В этом ему «помогают» биты LRU (last recently used - «наиболее давно использовал») b0 –b2. Обозначим строки на горизонтали S0, S1, S2 и S3. При кэш-попаданиях МП всегда обновляет биты LRU по следующей схеме:
при обращении к S0 или S1 бит b0 устанавливается в 1, а при обращении к S2 или S3 бит b0 сбрасывается в 0;
при обращении к S0 бит b1 устанавливается, а при обращении к S1 бит b1 сбрасывается;
при обращении к S2 бит b2 устанавливается, а при обращении к S3 бит b2 сбрасывается;
Отсюда вытекает алгоритм удаления строк, приведенный в таблице 13.
Таблица 13
b |
b1 |
b2 |
|
0 |
0 |
безразлично |
удаляется S0 |
0 |
1 |
безразлично |
удаляется S1 |
1 |
безразлично |
0 |
удаляется S2 |
1 |
безразлично |
1 |
удаляется S3 |