![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Внутренний кэш
Внутреннее кэширование обращений к памяти применяется в процессорах, начиная с 486. С кэшированием связаны новые функции процессоров, биты регистров и внешние сигналы. Процессоры 486 и Pentium имеют внутренний кэш первого уровня, в Pentium Pro и Pentium II имеется и вторичный кэш. Процессоры могут иметь как единый кэш инструкций и данных, так и общий. Выделенный кэш инструкций обычно используется только для чтения. Для внутреннего кэша чаще всего применяется наборно-ассоциативная архитектура. Строки в кэш-памяти выделяются только при чтении, запись кэшируется только при попадании в адрес, представленный действительной строкой кэша. Политика записи первых процессоров 486 — только Write Through (сквозная запись), полностью программно-прозрачная. Более поздние модификации 486 и все старшие процессоры позволяют переключаться на политику Write Back (обратная запись). Работу внутренней кэш-памяти характеризуют следующие процессы: обслуживание запросов процессора на обращение к памяти, выделение и замещение строк для кэширования областей физической памяти, обеспечение согласованности данных внутреннего кэша и оперативной памяти, управление кэшированием. Любой внутренний запрос процессора на обращение к памяти направляется во внутренний кэш. Теги строк набора, который обслуживает данный адрес, сравниваются со старшими битами запрошенного физического адреса. Если адресуемая область представлена в строке кэш-памяти — случай попадания (Cache Hit), запрос на чтение обслуживается только кэш-памятью, не выходя на внешнюю шину. Запрос на запись модифицирует данную строку и в зависимости от политики записи на внешнюю шину выходит либо сразу (при сквозной записи), либо несколько позже при использовании алгоритма обратной записи. В случае промаха (Cache Miss) запрос на запись направляется только на внешнюю шину, а запрос на чтение обслуживается сложнее. Если этот запрос относится к кэшируемой области памяти, выполняется цикл заполнения целой строки кэша — все 16 байт (32 — для Pentium) читаются из оперативной памяти и помещаются в одну из строк набора кэша, обслуживающего данный адрес. Если затребованные данные не укладываются в одной строке, заполняется и соседняя. Заполнение строки процессор старается выполнить самым быстрым способом — пакетным циклом с 32-битными передачами (64-битными для Pentium и старше). Внутренний запрос процессора на данные удовлетворяется сразу, как только затребованные данные считываются из ОЗУ — заполнение строки до конца может происходить параллельно с обработкой полученных данных. Если в наборе, который обслуживает данный адрес памяти, имеется свободная строка (с нулевым битом достоверности), заполнена будет именно она и для нее установится бит достоверности. Если свободных строк в наборе нет, будет замещена строка, к которой дольше всех не было обращений. Выбор строки для замещения выполняется на основе анализа бит LRU (Least Recently Used) no алгоритму «псевдо-LRU». Эти биты модифицируются при каждом обращении к строке данного набора (кэш-попадании или замещении). Таким образом, выделение и замещение строк выполняется только для кэш-промахов чтения, при промахах записи заполнение строк не производится. Управлять кэшированием можно только на этапе заполнения строк, кроме того, существует возможность их аннулирования — объявления недостоверными и очистки всей кэш-памяти. Если затребованная область памяти присутствует в строке внутреннего кэша, то он обслужит этот запрос. 3.4. Процессоры 386/387 Процессор Intel386, выпущенный в 1985 году, был первым 32-разрядным процессором. Он имел 32-битные раздельные шины адреса и данных с возможностью динамического управления конвейерной адресацей и разрядностью (16/32) шины данных. Позже, в 1988 году фирмой Intel был выпущен вариант процессора Intel386™ SX с 16-разрядной шиной данных и 24-разрядной шиной адреса, а полноразрядный вариант получил официальное название Intel386™ DX. Как и в случае с 8088, это было сделано с целью удешевления компьютера, собранного на базе данного процессора. Это удешевление, конечно же, обернулось и снижением производительности компьютера примерно в полтора раза по сравнению с использованием DX на той же тактовой частоте. Процессоры Intel386™ SX и Intel386™ DX
отличаются только внешней шиной данных и адреса, их программные модели идентичны. В 1990 году появился процессор Intel386™SL со средствами управления энергопотреблением, разработанный специально для портативных компьютеров. В комплекте с 386SL выпускалась БИС 82360SL, содержащая набор PC-периферии, контроллер сигналов шины ISA, контроллер динамической памяти и контроллер внешнего кэша размером 16-64 Кбайт с архитектурой прямого отображения либо 2- или 4-канальной наборно-ассоциа-тивной архитектурой. В дальнейшем описании для краткости эти процессоры будем обозначать как 386, добавляя суффиксы SX, DX или SL при необходимости подчеркнуть различия. Внутренняя очередь команд процессора 386 имеет размер 16 байт. Количество тактов, требуемое для выполнения инструкций, примерно такое же, как и у 80286. Предусмотрена возможность использования математического сопроцессора Intel387, программно-совместимого с 8087 и 80287. Возможно и использование сопроцессора 80287, но его производительность ниже. С появлением процессора 386 в PC появилась возможность более эффективного использования памяти и стал широко применяться защищенный режим. Некоторые процессоры первых выпусков не обеспечивали полную работоспособность в 32-разрядном режиме, о чем должна была свидетельствовать маркировка «16 bit operations only». Попытка установить на компьютер с таким процессором 32-разрядную ОС обречена на неудачу (при установке Windows 95 будет сообщение об ошибке «В1»). Однако подавляющее большинство процессоров 386 полностью отвечает спецификациям 32-разрядных процессоров, приведенным выше.
|