Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Orgevm_Ekzamen.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
998.59 Кб
Скачать

Внутренняя кэш-память.

Структура внутренней кэш-памяти (L1 кэш для МП 486) приведена на рис.78.

Рис. 78

Из рисунка видно, что структура внутренней кэш-памяти мало чем отличается от рассмотренной выше структуры буфера TLB. Алгоритмы работы внутренней кэш-памяти и буфера TLB также практически идентичны. Поэтому мы здесь не будем повторяться, а подчеркнем чем отличается внутренний кэш от буфера TLB:

  • Внутренний кэш работает с физическим адресом Аф, а не с Ал.

  • Под тэг выделяется 21 бит.

  • Формат строки (размер блока) составляет 16 байт. При этом в кэш из ОП всегда считывается блок, выровненный по границе параграфа. Пусть, например мы обратились к байту по адресу 3 и произошел кэш-промах. Тогда в соответствующую строку кэш-памяти будет из ОП считано 16 байт, начиная с адреса 0 и заканчивая адресом Fh.

  • Разряды 10 - 4 Аф задают горизонталь (всего горизонталей – 128).

  • Разряды 3 - 0 Аф определяют конкретный байт (слово и. т. д.) внутри блока.

  • Основное же отличие между внутренней кэш-памятью и буфером TLB заключается в их предназначении. В буфере хранятся начальные адреса страниц, а во внутренней кэш-памяти - команды и данные, при этом данные доступны как по записи, так и по считыванию.

  • Общий объем внутренней кэш-памяти составляет: 128×4×16 байт= 8К.

Любую строку во внутренней кэш-памяти можно объявить недостоверной либо программным образом через регистры tr3 - tr5, либо аппаратным образом, используя входы процессора EADS и AHOLD. Можно объявить недостоверными сразу все строки (очистить кэш ). Для этого можно:

  1. подать сигнал на вход RESET;

  2. подать сигнал на вход FLUSH;

  3. использовать регистры TR3 - TR5;

  4. выполнить одну из двух команд invd или wbinvd.

Билет №12 Контроллер прерываний к1810вн59 (i8259). Настройка вн59.

Данная микросхема предназначена для обслуживания двух различных групп МП. К первой группе относятся МП 580 и 8085, ко второй – 8086, 8088, 80286, 80386 и. т. д. Мы рассмотрим работу ВН59 при

обслуживании МП второй группы. Подключение ВН59 к системной шине показано на рис. 20.

Контроллер имеет восемь входов запросов на прерывание (IR7 – IR0). Восприняв запрос на одном из этих входов ВН59, формирует сигнал на выходе INT. Этот сигнал подается на вход INTR ВМ86. Если внешние прерывания не замаскированы, МП подтверждает прерывание, выставляя два сигнала на выходе INTA. Эти сигналы поступают на одноименный вход контроллера, и по второму из них ВН59 выставляет на ШД тип прерывания. Этот тип он формирует следующим образом: старшие пять разрядов типа задает программист при настройке контроллера, а на место младших трех разрядов ВН59 подставляет двоичный номер линии, по которой пришел запрос.

Несмотря на то, что внутренняя архитектура ВН59 включает в себя довольно много различных регистров, с точки зрения программиста, контроллер содержит всего два адресуемых устройства, выбор между которыми определяет сигнал на линии А0.

В системе могут использоваться несколько ВН59, соединенных каскадно. При этом один контроллер является ведущим, а все остальные ведомыми. Выходы INT ведомых контроллеров заводятся на входы IRi ведущего контроллера. Таким образом, максимальное число контроллеров в системе равно девяти, а максимально возможное число источников внешних прерываний равно 64. На рис. 21 показан пример каскадного соединения контроллеров.

Перед началом работы все контроллеры должны быть настроены. Для этого на каждый ВН59 надо подать три или четыре команды инициализации (ICW1 – ICW4). Три команды подаются, если в системе один контроллер прерываний,

ICW1 передается при А0=0 и имеет формат, приведенный на рис. 22.

Рис. 22

Если D1=0 – в системе несколько контроллеров и, следовательно, будет команда инициализации ICW3. При D1=1 – в системе один контроллер и ICW3 передаваться не будет.

ICW2 передается при А0=1 и имеет формат, приведенный на рис.23. Здесь Т7-Т3 – старшие пять разрядов типа прерывания.

Формат ICW3 различается для ведущего и ведомых контроллеров. Для ведущего: если в i-ом разряде ICW3 стоит единица, значит к линии IRi подключен ведущий контроллер. Для ведомого ICW3 имеет формат, приведенный на рис 24. Передается ICW3 при А0 = 1.

ICW4 передается при А0=1 и обычно имеет формат, приведенный на рис. 25.

Рис. 23

0

0

0

0

0

N2

N1

N0

  • Здесь N 2-0 – двоичный номер линии IR ведущего контроллера, к которой подключен данный ведомый.

Рис. 24

Рис. 25

В IBM PC/XT стоит один контроллер ВН59. Ему назначены системные адреса 20h (А0=0) и 21h (А0=1). Настройка ВН59 в XT производится следующей последовательностью команд:

mov al, 13h ; передаем ICW1, ICW3 не будет

out 20h, al

mov al, 8 ; передаем ICW2. Старшие разряды типа задаем

out 21h, al ; равными 00001. Таким образом, для линии IR0

; (прерывание от канала 0 таймера) контроллер

; будет вырабатывать тип = 08h, для линии IR1

; (прерывание от клавиатуры) – тип = 09h, и. т. д.

mov al,1 ; передаем ICW4

out 21h, al

Начиная с PC/AT, в системе стоит два ВН59. При этом все вышесказанное для ВН59 в ХТ является справедливым для ведущего в АТ.

После того как ВН59 настроен, все остальные настроечные слова он воспринимает как команды управления. Всего имеется три таких команды. Обычно их обозначают OCW1, OCW2 и OCW3.

OCW1 передается при А0 = 1. Если в i-ом разряде OCW1 стоит единица, вход IRi контроллера маскируется и запросы на этом входе ВН59 восприниматься не будут до тех пор, пока программист его не размаскирует.

Во избежание конфликтов всем входам IR контроллера присваиваются приоритет. Если программист не задает приоритеты линий IR, по умолчанию линии IR0 присваивается старший, а линии IR7 – младший приоритет. Команда OCW2 (передается при А0 = 0) позволяет менять приоритеты линий IR.

Пользователь должен знать о следующей важной особенности работы контроллера ВН59. Если контроллер настроен на «обычный конец прерывания», то восприняв запрос на линии IRi он автоматически маскирует эту линию и все линии IR с более низкими приоритетами. Иногда говорят что контроллер «ставит штору». Снимать штору самостоятельно контроллер не умеет. Это должен делать программист передав в контроллер команду управления OCW2 формата: 20h. Как правило штора снимается в конце обработчика. Например в конце обработчика прерывания от клавиатуры должны стоять две команды:

mov al,20h

out 20h,al

; снимаем штору в ХТ или у ведущего

; в АТ

Если эти команды не поставить, клавиатура будет заблокирована.

OCW3 передается при А0 = 0 и на практике используется редко.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]