B.4. Оперативная кэш-память.

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

Минимальный цикл обращени микропроцессора к оперативной памяти состоит из двух состояний шины. Подсчитано, что около 70% всех обращений процессора к шине компьютера составляет чтение команд, 20% — чтение и запись данных, и только оставшиеся 10% составляют обращения к устройствам ввода-вывода. Поэтому введение даже одного состояния ожидания при обращении к памяти значительно снижает производительность компьютера. Таким образом, существенный рост быстродействия системы может быть достигнут только при сбалансированной работе подсистемы памяти.

Для старых персональных компьютеров (на основе микропроцессоров Intel i8088, i8086, i80286 и процессоре i80386/20 МГц) была характерна одноуровневая система организации памяти. По этой системе разработчики были вынуждены устанавливать дешевые DRAM с быстродействием 80 —120 нс, либо применять дорогостоящие SRAM с быстродействием 40 — 60 нс. Для сокращения среднего времени ожидания при обращении к операционной системе использовались (и используются в настоящее время) методы интерливинга и страничной организации.

Система с интерливингом памяти.

Рис. B.4.1. Система с интерливингом памяти.

В системе с интерливингом — расслоением адресов ячеек памяти — весь объем памяти делится на два или несколько банков. Двойные слова с последовательными адресами располагаются в разных банках. Во время считывания информации из оперативной памяти за один цикл можно организовать параллельное извлечение информации из разных блоков, что уменьшает количество циклов ожидания.

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

Система со страничной организацией памяти (6980 bytes)

Рис. B.4.2. Система со страничной организации памяти.

В системах со страничной организацией памяти вся память делится на фиксированные по размеру зоны адресов —страницы. Обращение к памяти в пределах страницы происходит без ожидания, а при смене страницы —как обычно, с состояниями ожидания.

При страничной организации память делится на строки и столбцы. Адрес обращения к двойному слову содержит 9-ти разрядный номер строки и 9-ти разрядный номер столбца. При обращении к странице сигнал выбора номера строки поддерживается неизменным, а сигнал выбора столбца переставляется на столбец, откуда нужно прочитать данные.

Страничная организация памяти требует для своей реализации особые микросхемы. Они имеют специальный режим – страничный доступ со статической выборкой столбцов (static column decode).

Для полной реализации потенциальных скоростных возможностей микропроцессоров используется многоуровневая иерархическая память. Она включает в себя быстродействующую кэш-память – SRAM. Кэш-память состоит из памяти данных, построенная на микросхемах SRAM, и контроллера кэша. В кэш-памяти хранится информация, копируемая из основной оперативной памяти. Каждый раз при обращении микропроцессора к памяти контроллер кэш-памяти проверяет наличие данных в кэше. Если эти данные в кэше есть (“попадание”), то микропроцессор получает данные из кэша. Если этих данных нет (“промах”), выполняется обычный цикл обращения к оперативной памяти DRAM.

Основным фактором, определяющим вероятность попадания, является емкость кэш-памяти. Как правило, при объеме кэша в 2 Кбайта вероятность попадания составляет от 50 до 60%. Поскольку размер кэш-памяти на современных компьютерах превышает 256 Кбайт, то вероятность попадания будет выше 90% (для компьютеров с объемом памяти ~ 16 Мбайт.)

Для реализации кэш-памяти в настоящее время разработаны эффективные однокристальные контроллеры. Наиболее широкое распространение получили контроллеры i82385 фирмы Intel и A38152 фирмы Asustec Microsystems.

Контроллер i82385 поддерживает 32 Кбайта кэш-памяти, и может работать в двух конфигурациях:

  1. Кэш-память с прямым отображением.
  2. Двухканальная модульно-ассоциативная кэш-память.

Первая конфигурация характеризуется простотой реализации, однако она оказывается неэффективной при работе в мультизадачных системах. В двухканальной реализации кэш-память разбивает все 4 Гбайтное адресное пространство на 262144 страницы по 16 Кбайт. 32-х разрядный физический адрес состоит из четырнадцатиразрядного адреса, определяющего информацию в кэш-памяти, и восемнадцатиразрядного тега, определяющего номер страницы. Каждый адрес оперативной памяти может быть отображен в одну из двух ячеек кэш-памяти. На рисунке B.4.3 рассматривается образование физического адреса в двухканальной модульно-ассоциативной памяти.

Двухканальная модульно-ассоциативная кэш-память

Рис. B.4.3. Двухканальная модульно-ассоциативная кэш-память.

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

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

Контроллер A38152 фирмы Asustec имеет аппаратные и программные средства, обеспечивающие связанность информации: логика слежения за шиной, которая обеспечивает ликвидацию копий блоков в кэш-памяти, задания области адресов, не отображаемой в кэш-память (например, для сопроцессора фирмы Weitec и устройств ввода/вывода).

На многих материнских платах можно выбирать между одноуровневой или многоуровневой системами организации памяти. По умолчанию устанавливается ражим многоуровневой памяти. Если Вы установите режим одноуровневой памяти, то кэш-память SRAM просто добавляется к адресному пространству основной оперативной памяти. Одноуровневую память лучше использовать, когда внутренний кэш процессора по объему превосходит емкость кэш-памяти на материнской плате.

...Уже до появления микропроцессора i80486 фирмы Intel стало ясно, что скорость обмена данных процессор-память по системной шине происходит очень медленно даже при использовании внешней кэш-памяти. Поэтому уже в микропроцессоре i80486 фирма Intel стала использовать кэш-память, находящейся в самом процессоре. В процессоре i80486 осуществляется кэширование системных регистров — путем введения «теневых» регистров. Когда программа загружает селектор в системный регистр, процессор автоматически считывает (“кэширует”) нужный системный регистр в теневом регистре. После этого обращения к памяти достаточно сложить эффективный адрес с базовым адресом сегмента в теневом реестре, и получить линейный адрес. Это так называемый кэш первого уровня. В микропроцессоре Pentium кэшированию стали подвергать не только системные регистры, но и регистры данных и предвыборки команд.

Логическим продолжением явилось размещение кэш-памяти и ее контроллера не на материнской плате, а на самом процессоре. При этом решаются две задачи:

  1. Упрощение шины передачи данных.
  2. Появилась возможность работы кэш-памяти не на частоте шины, а на частоте процессора. При этом скорость работы кэш-памяти увеличивается.

Исходя из всего этого, в микропроцессоре Pentium стала использоваться встроенная в него кэш-память второго уровня. Благодаря ней скорость работы процессора на тех же системных платах возросла. Необходимо, однако, отметить, что изготовление кэш-памяти второго уровня на кристалле процессора намного усложняет стоимость самого микропроцессора. Именно для недорогих моделей компьютеров фирма Intel стала изготовлять процессоры без кэша второго уровня или с кэш-памятью меньшего размера. Примером такого процессора является процессор Intel Celeron. Он аналогичен процессору Intel Pentium II, однако либо не содержит кэш второго уровня (в первых моделях), либо он небольшой (в новых версиях этого процессора.) Благодаря этому упала его цена и производительность.

Примечание: в связи с выходом микропроцессора Intel Pentium 4 корпорация Intel снимает с производства в 2002 году микропроцессора Intel Pentium III.

 

Назад...   К оглавлению раздела   Далее...

 

Гостевая книга Обсуждение в блоге. Отправить E-mail Автору проекта.

=== *** === *** === *** ===

В настоящее время проект закрыт (в версии 1.3.0 beta). Автор приносит извинения за прекрашение разработки.

Hosted by uCoz