Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс шпоры.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.62 Mб
Скачать

18. Шинный интерфейс и шина микропроцессора Intel 80486.

Это устройство учитывает приоритеты обращений к шине и координирует передачи данных, осуществляет предвыборку команд и выполняет функции согласования действий между внут­ренними устройствами процессора и внешней системой. На внутренней стороне это устройство взаимодействует с кэш-памятью и устройством предвыборки по трем 32-битным шинам. На внешней стороне шинный интерфейс формирует сигналы шины процессора. За исключением сигналов определения цикла, все циклы внешней шины (считывание из памяти, предвыборки команд, заполнение строк кэш-памяти и др.) выглядят для внешних схем обычными циклами процессора, причем все циклы имеют одинаковую временную диаграмму. В составе шинного интерфейса имеются следующие компоненты:

- драйверы адреса для формирования сигналов адреса и сигналов разрешения байт. Старшие 28 сигналов адреса являются двунаправленными, позволяя внешней схеме передать в процессор адрес строки кэш-памяти, содержимое которой объявляется недостоверным;

- приемопередатчики шины данных, предназначенные для управления двунаправленными сигналами данных шины процессора;

- схемы для управления (по тактам синхронизации) размером шины данных. Можно задать три размера внешней шины данных: 32, 16 и 8 бит.

- буферы записи, обеспечивающие буферирование до четырех запросов записи, что позволяет продолжать многие внутренние операции, не ожидая окончания циклов записи на шине процессора;

- схемы формирования циклов шины и управления шиной, которые реализуют большой набор циклов шины и управляющих функций, включая пакетные передачи, непакетные передачи (одно- и многотактные), арбитраж шины (запрос шины, захват шины, подтверждение захвата шины, блокировка шины, псевдоблокировка шины и отступление шины). Два программно-управляемых выхода обеспечивают кэширование страниц по тактам. Предусмотрены один вход и один выход для управления пакетными считываниями;

- схемы формирования и контроля паритета (четности), с помощью которых бит паритета формируется при записи и контролируется при считывании. Сигнал ошибки фиксирует ошибку паритета при считывании;

- схемы управления кэш-памятью поддерживают операции управления и согласования кэш-памяти. Три входа позволяют внешней системе управлять согласованностью данных, хранимых во внутренней кэш-памяти. Два специальных цикла шины предоставляют процессору возможность управлять согласованностью внешней кэш-памяти.

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

Шинный интерфейс имеет временные регистры для буферирования до четырех 32-битных передач записи в память. Можно буферировать адреса, данные или управляющую информацию. После буферирования запроса записи внутреннее устройство, сформировавшее запрос, освобождается для продолжения обработки. Если не ожидается запрос с более высоким приоритетом и шина свободна, на шине процессора сразу же инициируется цикл записи. Когда заполнены все четыре буфера записи, все последующие передачи записи ожидают в процессоре освобождения буфера записи.

Шинный интерфейс может пропускать ожидающие запросы считывания вперед буферированных записей. Объясняется это тем, что ожидающие считывания могут задержать работу внутреннего устройства, а ожидающие записи не оказывают заметного воздействия на скорость обработки. Записи передаются на шину процессора в том же порядке, в котором они были получены от внутренних устройств («первый пришел - первый ушел»). Однако сформированный впоследствии запрос считывания (данных или команды) может быть пропущен раньше буферированных записей. Для защиты от считывания неверных данных пропускание считываний раньше буферированных записей разрешается, если только все буферированные записи привели к попаданию в кэш-памяти. Так как внешнее считывание формируется только при промахе в кэш-памяти, любое считывание на внешней шине с рассмотренным средством защиты никогда не приведет к считыванию из той ячейки, в которую будет производиться буферированная запись. Для конкретного набора буферированных записей такое «пропускание вне очереди» можно произвести только один раз, так как возвращаемые при считывании данные могут заменить данные, готовые к записи из буферов записи. Чтобы для конкретного набора буферированных записей «пропускание вне очереди» происходило не более одного раза, все буферированные записи при пропускании вперед запроса считывания отмечаются как промахи в кэш-памяти. Отмеченные таким образом буферированные записи передаются на шину процессора ранее следующего запроса считывания. При объявлении данных во внутренней кэш-памяти недостоверными все ожидающие запросы также отмечаются как промахи в кэш-памяти. Запрещение кэш-памяти запрещает и буферы записи, что устраняет возможность изменения порядка циклов шины.

Для поддержания целостности данных накладываются некоторые ограничения на передачи к ячейкам ввода-вывода:

- считывания ввода-вывода никогда не кэшируются (состояние устройств может меняться асинхронно по отношению к процессору);

- считывания ввода-вывода никогда не производятся раньше буферированных записей в память. Благодаря этому процессор закончит модификацию всех ячеек памяти до считывания состояния из устройства (если при операции ввода-вывода потребуется обработка прерывания, то данные могут потеряться);

- одиночные записи ввода-вывода никогда не буферируются.

Следовательно, при выполнении команды OUT внутренние операции прекращаются до завершения на шине процессора всех буферированных записей и записи ввода-вывода. При этом внешней схеме отводится время сформировать цикл недостовер­ности кэш-памяти или замаскировать прерывания до выполнения процессором следующей команды. Процессор закончит модификацию всех ячеек памяти перед записью в ячейку ввода-вывода. Повторяющиеся команды OUT можно буферировать, так как в этом случае состояние внешних устройств не изменяется.

19. Внутренняя кэш-память хранит копии последних считанных команд, операндов и других данных. Когда процессор запрашивает ин­формацию, уже находящуюся в кэш-памяти (попадание), цикл шины не нужен. Когда же процессор запрашивает информацию, отсутствующую в кэш-памяти (промах), информация считывает-ся в кэш-память за одну или несколько 16-байтных кэшируемых передач данных(заполнение строки кэш-памяти). Если формируется запрос записи в область в кэш­памяти, выполняются действия(сквозная запись): обновляется кэш-память;записываемые данные передаются в основную память. Кэш-память имеет четырехканальную ассоциативную по мно­жеству организацию. Четырехнаправленная ассоциативность является компро­миссом между быстродействием кэш-памяти с прямым отобра­жением при попаданиях и большим коэффициентом попаданий полностью ассоциативной кэш-памяти. Блок данных в 8 Кб разделен по четырем направлениям, каждое из которых имеет 128 16-байтных строк кэш­памяти. Строка кэш-памяти содержит данные из 16 соседних байтных адресов в памяти, начиная с адреса, кратного 16. Адре­сация кэш-памяти осуществляется путем разделения старших 28 бит физического адреса на три части. Семь бит поля индекса определяют номер множества из 128 множеств в кэш-памяти. Старшие 21 бит являются полем признака, эти биты сравниваются с тэгами каждой строки в ин­дексированном множестве и показывают, хранится ли 16-байтная строка кэш-памяти по данному адресу. Млад­шие четыре бита физического адреса выбирают байт внутри строки кэш-памяти. Находящееся в блоке достоверности/LRU (Least Recently Used) 4-битное поле достовер­ности показывает, являются ли в данный момент кэшированные данные по имеющемуся адресу достоверными. Ко­гда при считывании возникает промах, в кэш-память записыва­ется 16-байтный блок, содержащий запрошенную информацию.

Организация внутренней кэш-памяти

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

Замещение в кэш-памяти реализуется по алгоритму псевдо-LRU. Здесь для каждого множества в блоке достоверности/LRU отведено три бита (см. рис. 4.3). Биты LRU обновляются при ка­ждом попадании в кэш-память или заполнении строки. Каждая строка кэш-памяти имеет свой бит достоверности. Когда в цикле считывания происходит промах, приходит­ся выбирать для заполнения одну из четырех строк множества. Если во множестве есть недостоверная, то для заполнения выбирается именно эта строка. Когда же все строки во множестве достоверны, заменяемая строка выбирается с привлечением бит из блока LRU. Алгоритм псевдо-LRU действует следующим образом: Обозначим строки во множестве через L0, LI, L2 и L3. Каждому множеству в блоке LRU соответствуют три бита ВО, В1 и В2, ко­торые модифицируются при каждом попадании и заполнении следующим образом:

-если последнее обращение в множестве было к строке L0 или L1, то бит ВО устанавливается в состояние 1, а при обраще­нии к строке L2 или L3 бит ВО сбрасывается в 0;

-если последнее обращение в паре L0-L1 было к строке L0, то бит В1 устанавливается в состояние 1, а при обращении к строке L1 бит В1 сбрасывается в 0;

-если последнее обращение в паре L2-L3 было к строке L2, то бит В2 устанавливается в состояние 1, а при обращении к строке L3 бит В2 сбрасывается в 0. Выбор заменяемой строки (когда все строки в множестве достоверны) определяет содержимое бит ВО, В1 и В2 (табл. 4.1)

Таблица 4.1

Строки кэш-памяти можно по отдельности объявить недос­товерными, задавая операцию недостоверности кэш-памяти на шине процессора. При инициировании такой операции кэш­память сравнивает объявляемый недостоверным адрес с тэгами строк, находящихся в кэш-памяти, и сбрасывает бит достоверно­сти при обнаружении соответствия. Конфигурацией кэш-памяти управляют два бита в регистре состояния CR0. Один из этих бит разрешает кэширование (за­полнение строк кэш-памяти), а второй - сквозную запись в па­мять. Всего возможно пять различных ситуаций:

1)Когда кэширование разрешено, кэшируются считывания из памяти и предвыборки команд. Такие передачи кэшируются, если внешняя схема подаст входной сигнал разрешения кэш­памяти в данном цикле шины и если текущий элемент таблицы страниц разрешает кэширование.

2)В тех циклах, где кэширование запрещено при промахе, заполнение строки кэш-памяти не производится. Кэш­память продолжает действовать, несмотря на то, что она запре­щена для заполнения. Уже находящиеся в кэш-памяти данные используются, если они являются достоверными. Только когда все данные в кэш-памяти отмечены как недосто­верные, что происходит при очистке кэш-памяти, все внутренние запросы считывания приводят к формированию внешних циклов шины.

3)Когда разрешена сквозная запись, все записи, включая и вызвавшие попадания, инициируют запись в память. Операции недостоверности удаляют строку из кэш-памяти, если адрес не­достоверных данных отображается на строку кэш-памяти.

4)Когда сквозная запись запрещена, внутренний запрос за­писи, вызвавший попадание в кэш-памяти, не приводит к произ­водству записи в память, а операции недостоверности запрещены.

5)Когда запрещены кэширование и сквозная запись, кэш­память можно использовать как быстродействующее статиче­ское ОЗУ. В такой конфигурации на шину процессора передают­ся только записи, вызвавшие промах, а операции недостоверно­сти игнорируются.