Как называется высокоскоростная память сравнительно большой емкости

Обновлено: 06.07.2024

Организация размещения, обработки, поиска,хранения и передачи информации

ЗАПОМИНАЮЩИЕ УСТРОЙСТВА ПК

РЕГИСТРОВАЯ КЭШ-ПАМЯТЬ

Регистровая КЭШ-память — высокоскоростная память сравнительно большой емкости, являющаяся буфером между ОП и МП и позволяющая увеличить скорость выполнения операций. Создавать ее целесообразно в ПК с тактовой частотой задающего генератора 40 МГц и более. Регистры КЭШ-памяти недоступны для пользователя, отсюда и название КЭШ. (Cache), в переводе с английского означает "тайник". В КЭШ-памяти хранятся данные, которые МП получил и будет использовать в ближайшие такты своей работы. Быстрый доступ к этим данным и позволяет сократить время выполнения очередных команд программы. При выполнении программы данные, считанные из ОП с небольшим опережением, записываются в КЭШ-память.

По принципу записи результатов различают два типа КЭШ-памяти:

      Примечание. Оперативная память может строиться на микросхемах динамического (DRAM) или статического (SRAM) типа. Статический тип памяти обладает существенно более высоким быстродействием, но значительно дороже динамического. Для регистровой памяти (МПП и КЭШ-память) используются SRAM, а ОЗУ основной памяти строится на базе DRAM-микросхем.

    ОСНОВНАЯ ПАМЯТЬ

    ВНЕШНЯЯ ПАМЯТЬ


    Каждая дорожка МД разбита на сектора . В одном секторе дорожки может быть помещено 128, 256, 512 или 1024 байт, но обычно 512 байт данных. Обмен данными между НМД и ОП осуществляется последовательно целым числом секторов. К л a cm ер — это минимальная единица размещения информации на диске, состоящая из одного или нескольких смежных секторов дорожки. При записи и чтении информации МД вращается вокруг своей оси, а механизм управления магнитной головкой подводит ее к дорожке, выбранной для записи или чтения информации. Данные на дисках хранятся в файлах , которые обычно отождествляют с участком (областью, полем) памяти на этих носителях информации. Файл — это именованная область внешней памяти, выделенная для хранения массива данных. Поле памяти создаваемому файлу выделяется кратным определенному количеству кластеров. Кластеры, выделяемые одному файлу, могут находиться в любом свободном месте дисковой памяти и необязательно являются смежными. Файлы, хранящиеся в разбросанных по диску кластерах, называются фрагментированными. Для пакетов магнитных дисков (диски установлены на одной оси) и для двухсторонних дисков вводится понятие "цилиндр". Цилиндром называется совокупность дорожек МД, находящихся на одинаковом расстоянии от его центра.

    Накопители на гибких магнитных дисках

    На гибком магнитном диске (дискете) магнитный слой наносится на гибкую основу. Используемые в ПК ГМД имеют форм-фактор 5,25" и 3,5". Емкость ГМД колеблется в пределах от 180 Кбайт до 2,88 Мбайт. ГМД диаметром 5,25 дюйма помещается в плотный гибкий конверт, а диаметром 3,5 дюйма — в пластмассовую кассету для защиты от пыли и механических повреждений. Конструктивно дискета диаметром 133 мм изготовляется из гибкого пластика (лавсана), покрытого износоустойчивым ферролаком, и помещается в футляр-конверт. Дискета имеет две прорези: центральное отверстие для соединения с дисководом и смещенное от «центра небольшое отверстие (обычно скрытое футляром), определяющее радиус-вектор начала всех дорожек на ГМД. Футляр также имеет несколько прорезей: центральное отверстие, чуть большее, чем отверстие на дискете; широкое окно для считывающих и записывающих магнитных головок и боковую прорезь в виде прямоугольника, закрытие которой липкой лентой, например, защищает дискету от записи и стирания информации. Дискета диаметром 89 мм имеет более жесткую конструкцию, более тщательно защищена от внешних воздействий, но в принципе имеет примерно те же конструктивные элементы. Режим запрета записи на этих дискетах устанавливается специальным переключателем, расположенным в одном из углов дискеты. В последние годы появились дискеты с тефлоновым покрытием, которое предохраняет магнитное покрытие и записанную на нем информацию от грязи, пыли, воды, жира, отпечатков пальцев и даже от растворителей типа ацетона. Они также обладают стойкостью к различным внешним воздействиям: температуре, влажности, запыленности. Каждую новую дискету в начале работы с ней следует отформатировать. Форматирование дискеты — это создание структуры записи информации на ее поверхности: разметка дорожек, секторов, записи маркеров и другой служебной информации.

    Накопители на жестких магнитных дисках

    Первый накопитель на жестких дисках (Hard Disk Drive – HDD) был создан в 1973г. по технологии фирмы IBM и имел кадровое обозначение «30/30» (двухсторонний диск емкостью 30+30 Мбайт), которое совпало с названием известного охотничьего ружья «винчестер», использующегося при завоевании дикого запада. По этой причине накопители на жестких дисках получили название винчестер. По сравнению с дискетами HDD обладают такими преимуществами: значительно большая емкость и время доступа для HDD. Оно на порядок меньше, чем для приводов дискет. Конструкция и принцип действия Несмотря на большое разнообразие моделей винчестеров принципы их действия и основные конструктивные элементы одинаковы. Основные элементы конструкции накопителя на жестком диске: • магнитные диски; • головки чтения/ записи; • механизм привода головок; • двигатель привода дисков; • печатная плата с электронной схемой управления. Типовой накопитель состоит из герметичного корпуса (гермоблока) и платы электронного блока. В гермоблоке размещены все механические части, на плате – вся управляющая электроника. Внутри гермоблока установлен шпиндель с одним или несколькими магнитными дисками. Под ним расположен двигатель. Ближе к разъемам, с левой или правой стороны от шпинделя находиться поворотный позиционер магнитных головок . Позиционер соединен с печатной платой гибким ленточным кабелем (иногда одножильными проводами). Гермоблок заполняется воздухом под давлением в одну атмосферу. В крышках гермоблоков некоторых винчестеров имеется специальное отверстие, заклеенное фильтрующей пленкой, которая служит для выравнивания давления внутри блока и снаружи, а также для поглощения пыли. Магнитные диски выпускаются следующих размеров: 3.5”; 5.25”; 2.5”; 1.8”. Диски покрываются магнитным веществом – рабочим слоем. Он может быть либо оксидный (полимерное покрытие с наполнением из окиси железа), либо на основе тонких пленке (имеет меньшую толщину и более прочен, качество его гораздо выше). Головки чтения/записи предусмотрены для каждой стороны диска. Когда накопитель включен, головки касаются диска. Механизм привода головок обеспечивает перемещение головок от центра дисков к краям и фактически определяет надежность накопителя, его температурную стабильность и вибрационную устойчивость. Современные диски имеют функцию автоматической парковки, т.е. при включении и выключении ПК головки устанавливаются по мере необходимости на определенный, чаще всего последний цилиндр. При парковке головки автоматически блокируется, и их дальнейшая работа не возможна. Двигатель привода дисков приводит пакет дисков во вращение, скорость которого в зависимости в пределах 3600-7200 об/мин. Жесткий диск вращается непрерывно и должен быть установлен только вертикально или горизонтально. Печатная плата с электронной схемой управления и прочие узлы накопителя являются съемными. На печатной плате монтируются электронные схемы управления двигателем и приводом головок, схема для обмена данными с контроллером.

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

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

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

    Конструктивно каждая модель ПК имеет так называемый “базовый набор” внешних устройств, т.е. такой набор компонентов, дальнейшие уменьшение которого приведет к нецелесообразности использования компьютера для конкретной работы или даже полной бессмысленности работы с ним. Этот набор можно увидеть практически везде, где используют компьютер, в него входят:

    - системный блок (плюс дисковод или винчестер, вмонтированный в корпус);

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

    Кеш (англ. cache), или сверхоперативная память-- очень быстрое ЗУ небольшого объёма, которое используется при обмене данными между микропроцессором и оперативной памятью для компенсации разницы в скорости обработки информации процессором и несколько менее быстродействующей оперативной памятью. </TBODY>

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

    Кэш-память реализуется на микросхемах статической памяти SRAM (Static RAM), более быстродействующих, дорогих и малоёмких, чем DRAM.

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

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

    КЭШ-память "с обратной записью" - результаты операций прежде, чем их записать в ОП, фиксируются в КЭШ-памяти, а затем контроллер КЭШ-памяти самостоятельно перезаписывает эти данные в ОП;

    КЭШ-память "со сквозной записью" - результаты операций одновременно, параллельно записываются и в КЭШ-память, и в ОП.

    Микропроцессоры начиная от МП 80486 имеют свою встроенную КЭШ-память (или КЭШ-память 1-го уровня). Микропроцессоры Pentium имеют КЭШ-память отдельно для данных и отдельно для команд.

    Для всех МП может использоваться дополнительная КЭШ-память (КЭШ-память 2-го уровня), размещаемая на материнской плате вне МП, емкость которой может достигать нескольких мегабайтов.

    Оперативная память может строиться на микросхемах динамического (Dinamic Random Access Memory - DRAM) или статического (Static Random Access Memory - SRAM) типа. Статический тип памяти обладает существенно более высоким быстродействием, но значительно дороже динамического. Для регистровой памяти(МПП и КЭШ-память) используются SRAM, а ОЗУ основной памяти строится на базе DRAM-микросхем.

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

    Кэш является дополнительным и быстродействующим хранилищем копий блоков информации основной памяти, к которым, вероятно, в ближайшее время будет обращение. Кэш не может хранить копию всей основной памяти.

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

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

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

    Возможен вариант секторированного КЭШа, при котором одна строка содержит несколько смежных ячеек - секторов, размер которых соответствует минимальной порции обмена данных КЭШа с основной памятью. При этом в записи каталога, соответствующей каждой строке, должны храниться биты действительности для каждого сектора данной строки. Секторирование позволяет экономить память, необходимую для хранения каталога при увеличении объема КЭШа Запись блока, не имеющего копии в КЭШе, производится только в основную память.

    Существует два основных алгоритма записи данных из КЭШа в основную память: сквозная запись WT (Write Through) и обратная запись WB (Write Back).

    Алгоритм WT предусматривает выполнение каждой операции записи (даже однобайтной), попадающей в кэшированный блок, одновременно и в строку КЭШа и в основную память. При этом процессору при каждой операции записи придется ожидать окончания относительно длительной записи в основную память.

    Алгоритм WB позволяет уменьшить количество операций записи на шине основной памяти. Если блок памяти, в который должна производиться запись, отображен и в КЭШе, то физическая запись сначала будет произведена в эту действительную строку КЭШа, и она будет отмечена как грязная, или модифицированная, т.е. требующая выгрузки в основную память. Только после этой выгрузки строка станет чистой, и ее можно будет использовать для кэширования других блоков без потери целостности данных. В основную память данные переписываются только целой строкой или непосредственно перед ее замещением в КЭШе новыми данными.

    В зависимости от способа определения взаимного соответствия строки КЭШа и области основной памяти различают три архитектуры кэш-памяти:

    кэш прямого отображения;

    полностью ассоциативный кэш;

    частично или наборно-ассоциативный кэш.

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

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

    Наборно-ассоциативный кэш. Наборно-ассоциативная архитектура КЭШа позволяет каждому блоку кэшируемой памяти претендовать на одну из нескольких строк КЭШа, объединенных в набор.

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

    Резкое повышение быстродействия процессоров и переход на 32-разрядные многозадачные операционные системы существенно поднимают требования и к другим компонентам компьютера. Важнейшим из них является оперативная память. Возрастание внешних тактовых частот процессоров с 33-40 МГц, характерных для семейства 486 (486DX2-66/80 и 486DX4-100/120), до 50-66 МГц для Pentium (Pentium 75/90/100/120/133), требует прежде всего адекватного увеличения быстродействия подсистемы памяти. Поскольку в качестве оперативной используется относительно медленная динамическая память Dram (Dynamic Random Access Memory), главный способ увеличения пропускной способности основан на применении кэш-памяти. Кроме встроенной в процессор кэш-памяти первого уровня применяется и кэш-память второго уровня (внешняя), построенная на более быстродействующих, чем Dram, микросхемах статической памяти SRAM (Static Ram). Для высоких тактовых частот нужно увеличивать быстродействие SRAM. Кроме того, в многозадачном режиме эффективность работы кэш-памяти также может снижаться. Поэтому актуальной становится задача не только увеличения быстродействия кэш-памяти, но и ускорения непосредственного доступа к динамической памяти. Для решения этих проблем начинают использоваться новые типы статической и динамической памяти.Требования к объемам памяти диктуются программным обеспечением. При использовании Windows оценить необходимое количество памяти можно на основе тестов Winstone, использующих наиболее популярные приложения Windows.

    Статическая память

    В качестве кэш-памяти второго уровня практически всегда применялась (и до сих пор продолжает широко применяться) стандартная асинхронная память SRAM. При внешних тактовых частотах порядка 33 МГц хорошие результаты давала статическая память со временем выборки 15-20 нс. Для эффективной работы на частотах выше 50 МГц такого быстродействия уже недостаточно. Прямое уменьшение времени выборки до нужных величин (12-8 нс) обходится дорого, так как требует зачастую применения дорогой технологии Bi-CMOS вместо CMOS, что неприемлемо для массового рынка. Поэтому предлагаемое решение заключается в применении новых типов памяти с усовершенствованной архитектурой, которые первоначально были разработаны для мощных рабочих станций. Наиболее перспективна синхронная SRAM. В отличие от обычной асинхронной, она может использовать те же тактовые сигналы, что и остальная система, поэтому и называется синхронной. Она снабжена дополнительными регистрами для хранения информации, что освобождает остальные элементы для подготовки к следующему циклу еще до того, как завершился предыдущий. Быстродействие памяти при этом увеличивается примерно на 20%. Эффективную работу на самых высоких частотах может обеспечить особая разновидность синхронной SRAM с конвейерной организацией (pipelined burst). При ее применении уменьшается число циклов, требующихся для обращения к памяти в групповом режиме.

    Динамическая память

    Так же, как и для статической памяти, прямое сокращение времени выборки для динамической памяти достаточно трудно технически осуществимо и приводит к резкому росту стоимости. Поэтому ориентация в новых системах идет на микросхемы со временем выборки 60-70 нс. Стандартные микросхемы Dram имеют страничную организацию памяти Fast Page Mode (FPM), которая позволяет значительно ускорить доступ к последовательно расположенным (в пределах страницы) данным по сравнению со случаем произвольной выборки. Поскольку обращения к последовательно расположенным данным в реальных задачах встречаются очень часто, применение FPM Dram заметно повышает производительность. FPM Dram со временем выборки 60-70 нс обеспечивает необходимые характеристики для тактовых частот 33-40 МГц. При повышении тактовой частоты обеспечить надежное и быстрое считывание данных в страничном режиме уже не удается. Эту проблему в значительной степени решает применение памяти нового типа - EDO Dram (Extended Data Output Dram). От обычной памяти со страничной организацией она отличается наличием дополнительных регистров для хранения выходных данных. Увеличивается время, в течение которого данные хранятся на выходе микросхемы, что делает выходную информацию доступной для надежного считывания процессором даже при высоких тактовых частотах (фактически время между обращениями в страничном режиме можно уменьшить до 30 нс по сравнению с 45 нс для FPM).

    Радикальный, но не общепризнанный подход к повышению быстродействия динамической памяти заключается во встраивании в микросхемы Dram собственной кэш-памяти. Это Cached Dram (CDRAM) и Enhanced Dram (EDRAM). Память CDRAM выпускается фирмой Mitsubishi и имеет 16 KB кэш-памяти как на 4, так и на 16 Mbit кристалле, обмен между динамической и встроенной кэш-памятью осуществляется словами шириной 128 разрядов.

    Вообще говоря, применение новых типов динамической памяти позволяет получать высокую производительность даже и без применения кэш-памяти второго уровня (если кэш-память первого уровня типа write back), особенно в случае CDRAM и Enhanced Dram, которые именно так и используются. Однако подавляющее большинство систем для достижения максимальной производительности строится все-таки с использованием кэш-памяти второго уровня. Для них наиболее подходит память типа EDO Dram. К тому же она стала уже промышленным стандартом, и ее доля будет преобладать в микросхемах памяти емкостью 16 Mbit и более. Фактически эта память приходит на смену стандартной FPM Dram и ее можно применять в любых системах вместо стандартной.

    Конструктив

    Несмотря на то, что наиболее популярным конструктивом для динамической памяти по прежнему остается SIMM (Single In-line Memory Module), начинают применяться и другие стандарты. Возникновение новых стандартов вызвано необходимостью решения двух основных проблем. Первая связана с увеличением плотности упаковки элементов памяти, особенно актуальной для рабочих станций, использующих память очень большого объема, и мобильных систем. Вторая с обеспечением устойчивой работы при высоких частотах, которая зависит от размеров, емкости и индуктивности соединителя. Большую по сравнению с SIMM плотность упаковки и, соответственно, объем памяти могут обеспечить модули типа DIMM (Dual In-line Memory Module), у которых, в отличие от SIMM, контакты на обеих сторонах модуля не объединены, а могут использоваться независимо.

    Микросхемы стандартной статической памяти в основном выпускаются в корпусах типа Dip и SOJ. Память типа pipelined burst либо запаивается на системную плату сразу в процессе ее изготовления, либо поставляется в виде модулей.

    Вы здесь: Главная Оперативная память Основные понятия SRAM (Static RAM)

    Архитектура ЭВМ

    Компоненты ПК

    Интерфейсы

    Мини блог

    Самое читаемое

    • Арифметико логическое устройство (АЛУ)
    • Страничный механизм в процессорах 386+. Механизм трансляции страниц
    • Организация разделов на диске
    • Диск Picture CD
    • White Book/Super Video CD
    • Прямой доступ к памяти, эмуляция ISA DMA (PC/PCI, DDMA)
    • Карты PCMCIA: интерфейсы PC Card, CardBus
    • Таблица дескрипторов прерываний
    • Разъемы процессоров
    • Интерфейс Slot A

    SRAM (Static RAM)

    Существует тип памяти, совершенно отличный от других, — статическая оперативная память (Static RAM — SRAM). Она названа так потому, что, в отличие от динамической оперативной памяти (DRAM), для сохранения ее содержимого не требуется периодической регенерации. Но это не единственное ее преимущество. SRAM имеет более высокое быстродействие, чем DRAM, и может работать на той же частоте, что и современные процессоры.

    Время доступа в памяти SRAM — не более 2 нс; это означает, что такая память может работать синхронно с процессорами на частоте 500 МГц и выше. Однако для хранения каждого бита в конструкции SRAM используется кластер из шести транзисторов. Использование транзисторов без каких-либо конденсаторов означает, что нет необходимости в регенерации. (Ведь если нет конденсаторов, то и заряды не теряются.) Пока подается питание, SRAM будет помнить то, что сохранено. Почему же тогда микросхемы SRAM не используются для всей системной памяти? Ответ можно найти в таблице.


    По сравнению с DRAM быстродействие SRAM намного выше, но плотность ее гораздо ниже, а цена довольно высока. Более низкая плотность означает, что микросхемы SRAM имеют большие габариты, хотя их информационная емкость намного меньше. Большое число транзисторов и кластеризованное их размещение не только увеличивает габариты микросхем SRAM, но и значительно повышает стоимость технологического процесса по сравнению с аналогичными параметрами для микросхем DRAM. Например, емкость модуля DRAM может равняться 64 Мбайт или больше, в то время как емкость модуля SRAM приблизительно того же размера составляет только 2 Мбайт, причем их стоимость будет одинаковой. Таким образом, габариты SRAM в среднем в 30 раз превышают размеры DRAM, то же самое можно сказать и о стоимости. Все это не позволяет использовать память типа SRAM в качестве оперативной памяти в персональных компьютерах.

    Несмотря на это разработчики все-таки применяют память типа SRAM для повышения эффективности ПК. Но во избежание значительного повышения стоимости устанавливается только небольшой объем высокоскоростной памяти SRAM, которая используется в качестве кэш-памяти. Кэш-память работает на тактовых частотах, близких или даже равных тактовым частотам процессора, причем обычно именно эта память непосредственно используется процессором при чтении и записи. Во время операций чтения данные в высокоскоростную кэш-память предварительно записываются из оперативной памяти с низким быстродействием, т.е. из DRAM. Еще недавно время доступа DRAM было не менее 60 нс (что соответствует тактовой частоте 16 МГц). Для преобразования времени доступа из наносекунд в мегагерцы используется следующая формула:

    1/наносекунды × 1000 = МГц.

    Обратное вычисление осуществляется с помощью такой формулы:

    1/МГц × 1000 = наносекунды.

    Сегодня память может работать на частоте 1 ГГц и выше, однако до конца 1990-х годов память DRAM была ограничена быстродействием 16 нс (16 МГц). Когда процессор ПК работал на тактовой частоте 16 МГц и ниже, DRAM могла быть синхронизирована с системной платой и процессором, поэтому кэш был не нужен. Как только тактовая частота процессора поднялась выше 16 МГц, синхронизировать DRAM с процессором стало невозможно, и именно тогда разработчики начали использовать SRAM в персональных компьютерах. Это произошло в 1986 и 1987 годах, когда появились компьютеры с процессором 386, работающим на частотах 16 и 20 МГц. Именно в этих ПК впервые нашла применение так называемая кэшпамять, т.е. высокоскоростной буфер, построенный на микросхемах SRAM, который непосредственно обменивается данными с процессором. Поскольку быстродействие кэша может быть сравнимо с процессорным, контроллер кэша может предугадывать потребности процессора в данных и предварительно загружать необходимые данные в высокоскоростную кэшпамять. Тогда при выдаче процессором адреса памяти данные могут быть переданы из высокоскоростного кэша, а не из оперативной памяти, быстродействие которой намного ниже.

    Эффективность кэш-памяти выражается коэффициентом попадания, или коэффициентом успеха. Коэффициент попадания равен отношению количества удачных обращений в кэш к общему количеству обращений. Попадание — это событие, состоящее в том, что необходимые процессору данные уже предварительно считаны в кэш из оперативной памяти; иначе говоря, в случае попадания процессор может считывать данные из кэш-памяти. Неудачным считается такое обращение в кэш, при котором контроллер кэша не предусмотрел потребности в данных, находящихся по указанному абсолютному адресу. В таком случае необходимые данные не были предварительно считаны в кэш-память, поэтому процессор должен отыскать их в более медленной оперативной памяти, а не в быстродействующем кэше. Когда процессор считывает данные из оперативной памяти, ему приходится некоторое время “ожидать”, поскольку тактовая частота оперативной памяти значительно ниже частоты процессора. Если процессор со встроенной в кристалл кэш-памятью работает на частоте 3,6 ГГц на шине 800 МГц, то продолжительность цикла процессора и интегральной кэш-памяти в этом случае достигнет 0,28 нс, в то время как продолжительность цикла оперативной памяти будет в пять раз больше, т.е. примерно 1,25 нс для памяти DDR2. Следовательно, в том случае, когда процессор с тактовой частотой 3,6 ГГц считывает данные из оперативной памяти, его рабочая частота уменьшается в 5 раз, достигая 800 МГц. Это замедление обусловлено периодом ожидания (wait state). Если процессор находится в состоянии ожидания, то на протяжении всего цикла (такта) никакие операции не выполняются; процессор, по существу, ждет, пока необходимые данные поступят из более медленной оперативной памяти. Поэтому именно кэш-память позволяет сократить количество “простоев” и повысить быстродействие компьютера в целом.

    Чтобы минимизировать время ожидания при считывании процессором данных из медленной оперативной памяти, в современных ПК обычно предусмотрены три типа кэшпамяти: кэш-память первого уровня (L1), кэш-память второго уровня (L2) и кэш-память третьего уровня (L3). Кэш-память первого уровня также называется встроенным или внутренним кэшем; он непосредственно встроен в процессор и фактически является частью микросхемы процессора. Во всех процессорах 486 и более новых кэш--амять первого уровня интегрирована в микросхему, что значительно повысило их быстродействие по сравнению с предыдущими моделями. Кэш-память второго уровня называется вторичным или внешним кэшем. В момент своего появления он устанавливался вне микросхемы процессора; так было во всех компьютерах на основе процессоров 386, 486 и Pentium. Если кэш-память второго уровня установлена на системной плате, то она работает на ее частоте. В этом случае кэшпамять второго уровня обычно помещалась рядом с разъемом процессора.

    Начиная с 1999 года кэш-память второго уровня стала частью процессора, поскольку была интегрирована непосредственно в процессорное ядро наравне с кэш-памятью первого уровня. При этом кэш-память второго уровня работает на полной частоте процессора, обеспечивая на порядок большую производительность. Кэш-память второго уровня во многих старых процессорах работала на частоте, составляющей половину или одну треть частоты ядра процессора. Быстродействие кэш-памяти имеет особое значение, поэтому компьютеры с кэшпамятью, представляющей собой отдельную микросхему, установленную на системной плате, обладали небольшой производительностью. Перенос кэш-памяти в один корпус с процессором улучшил положение дел, а добавление кэш-памяти непосредственно в ядро обеспечило оптимальные результаты. Таким образом, любой процессор с кэш-памятью второго уровня, интегрированной в ядро и работающей на полной частоте процессора, обладает значительным преимуществом в быстродействии по сравнению с другими схемами использования кэшпамяти второго уровня.

    Кэш-память третьего уровня впервые была представлена в процессорах для рабочих станций и серверов. Первым процессором для настольных ПК, в котором использовался кэш третьего уровня, был представленный в конце 2003 года процессор Pentium 4 Extreme Edition; он был оснащен интегрированным кэшем третьего уровня объемом 2 Мбайт. Хотя на момент представления процессоров Pentium 4 Extreme Edition, оснащенных кэш-памятью третьего уровня, казалось, что это станет стандартным свойством всех последующих процессоров, новые версии Pentium 4 Extreme Edition (а также его наследника, Pentium Extreme Edition) кэшпамятью третьего уровня уже не оснащались. Вместо этого был значительно увеличен объем кэш-памяти второго уровня.

    Ключ к пониманию особенностей кэш-памяти и основной памяти состоит в понимании того, как память различных типов влияет на общее быстродействие системы. В таблице ниже приведены параметры кэш-памяти первого и второго уровней в современных компьютерах. Изначально кэш-память проектировалась как асинхронная, т.е. не была синхронизирована с шиной процессора и могла работать на другой тактовой частоте. При внедрении набора микросхем системной логики 430FX в начале 1995 года был разработан новый тип синхронной кэш-памяти. Она работает синхронно с шиной процессора, что повышает ее быстродействие и эффективность. В то же время был добавлен конвейерный монопольный режим (pipeline burst mode), сокращающий общее количество циклов ожидания за счет нескольких операций считывания, выполняемых за один такт, после завершения первой операции. В новых модулях памяти присутствуют оба эти режима (синхронный и конвейерный монопольный), что повышает общую производительность системы примерно на 20%.

    В системах на базе процессора Pentium и более ранних контроллер кэш-памяти находился в микросхеме северного моста; во всех новых системах, начиная с Pentium II и Athlon, он встроен в процессор. Возможности этого контроллера предопределяют эффективность и характеристики кэш-памяти. Важно отметить, что контроллеры кэш-памяти большинства старых систем имели ограничение на объем кэшируемой памяти. Часто этот предел мог быть довольно низким, как в случае набора микросхем системной логики 430TX для компьютеров на основе Pentium. Этот набор микросхем мог кэшировать данные только первых 64 Мбайт оперативной памяти системы. Если установлен больший объем памяти, работа компьютера значительно замедляется, потому что все данные вне первых 64 Мбайт никогда не попадут в кэш, и при обращении к ним всегда будут необходимы все состояния ожидания, определяемые более медленной динамической оперативной памятью. Снижение эффективности зависит от программного обеспечения и от адресов, по которым хранятся данные в памяти. Например, 32-разрядные операционные системы Windows загружаются сверху вниз, так что если установлена оперативная память емкостью 96 Мбайт, то и операционная система, и прикладные программы будут загружаться в верхние 32 Мбайт, которые не кэшируются. Это значительно замедлит работу компьютера в целом. В данном случае можно удалить дополнительную память, чтобы уменьшить емкость до 64 Мбайт. Другими словами, неблагоразумно устанавливать большую емкость памяти, чем позволяет кэшировать набор микросхем системной логики. К счастью, это ограничение уже снято в процессорах Pentium III и более новых, которые способны кэшировать весь объем доступной памяти.

    Наборы микросхем системной логики для Pentium Pro и более поздних моделей не позволяют управлять кэш-памятью второго уровня, так как она встраивается в процессор. Поэтому при использовании Pentium II и процессоров последующих версий устанавливаются определенные ограничения кэширования памяти. Pentium Pro и первые версии Pentium II могли кэшировать память только в пределах первых 512 Мбайт адресного пространства. В более поздних процессорах появилась возможность кэшировать всю адресуемую память, вплоть до 64 Гбайт, что намного больше того, что могут поддерживать наборы микросхем системной логики.

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

    Определение: Кэш-память - это высокоскоростная память произвольного доступа, используемая процессором компьютера для временного хранения информации.

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

    Кэш-память напрямую влияет на скорость вычислений и помогает процессору работать с более равномерной загрузкой. Представьте себе массив информации, используемой в вашем офисе. Небольшие объемы информации, необходимой в первую очередь, скажем список телефонов подразделений, висят на стене над вашим столом. Точно так же вы храните под рукой информацию по текущим проектам. Реже используемые справочники, к примеру, городская телефонная книга, лежат на полке, рядом с рабочим столом. Литература, к которой вы обращаетесь совсем редко, занимает полки книжного шкафа.

    Компьютеры хранят данные в аналогичной иерархии. Когда приложение начинает работать, данные и команды переносятся с медленного жесткого диска в оперативную память произвольного доступа (Dynamic Random Access Memory — DRAM), откуда процессор может быстро их получить. Оперативная память выполняет роль кэша для жесткого диска.

    Уровень за уровнем

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

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

    Процессор Pentium III компании Intel имеет кэш-память первого уровня емкостью 32 Кбайт на микросхеме процессора и либо кэш-память второго уровня емкостью 256 Кбайт на микросхеме, либо кэш-память второго уровня емкостью 512 Кбайт, не интегрированную с процессором.

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

    Когда процессор обнаруживает данные в одном из кэшей, это называют «попаданием»; неудачу называют «промахом». Каждый промах вызывает задержку, поскольку процессор будет пытаться обнаружить данные на другом, более медленном уровне. В хорошо спроектированных системах с программными алгоритмами, которые выполняют предварительную выборку данных до того, как они потребуются, процент «попаданий» может достигать 90.

    Для процессоров старшего класса на получение информации из кэш-памяти первого уровня может уйти от одного до трех тактов, а процессор в это время ждет и ничего полезного не делает. Скорость доступа к данным из кэш-памяти второго уровня, размещаемой на процессорной плате, составляет от 6 до 12 циклов, а в случае с внешней кэш-памятью второго уровня — десятки или даже сотни циклов.

    Кэш-память для серверов даже более важна, чем для настольных ПК, поскольку серверы поддерживают между процессором и памятью весьма высокий уровень трафика, генерируемого клиентскими транзакциями. В 1991 году Intel превратила ПК на базе процессора 80486 с тактовой частотой 50 МГц в сервер, добавив на процессорную плату кэш с тактовой частотой 50 МГц. Хотя шина, связывающая процессор и память, работала с частотой всего 25 МГц, такая кэш-память позволила многие программы во время работы полностью размещать в процессоре 486 с тактовой частотой 50 МГц.

    Иерархическая организация памяти помогает компенсировать разрыв между скоростями процессоров, ежегодно увеличивающимися примерно на 50% в год, и скоростями доступа к DRAM, которые растут лишь на 5%. Как считает Джон Шен, профессор Университета Карнеги-Меллона, по мере усиления этого диссонанса производители аппаратного обеспечения добавят третий, а возможно и четвертый уровень кэш-памяти.

    Действительно, уже в этом году Intel намерена представить кэш-память третьего уровня в своих 64-разрядных процессорах Itanium. Кэш емкостью 2 или 4 Мбайт будет связан с процессором специальной шиной, тактовая частота которой совпадает с частотой процессора.

    IBM также разработала собственную кэш-память третьего уровня для 32- и 64-разрядных ПК-серверов Netfinity. По словам Тома Бредикича, директора по вопросам архитектуры и технологий Netfinity, сначала кэш будет размещаться на микросхеме контроллера памяти, выпуск которой начнется к концу следующего года.

    Кэш-память третьего уровня корпорации IBM станет общесистемным кэшем, куда смогут обращаться от 4 до 16 процессоров сервера. С кэш-памятью третьего уровня Intel сможет работать только тот процессор, к которому она подключена, но представители IBM подчеркнули, что их кэш третьего уровня способен увеличить пропускную способность всей системы. Бредикич отметил, что новая кэш-память производства IBM также поможет реализовать компьютерные системы высокой готовности, необходимые для электронной коммерции, поскольку с ее помощью можно будет менять модули основной памяти и выполнять модернизацию, не прерывая работу системы.

    Больше - не всегда лучше

    Частота промахов при обращении к кэш-памяти может быть значительно снижена за счет увеличения емкости кэша. Но большая кэш-память требует больше энергии, генерирует больше тепла и увеличивает число бракованных микросхем при производстве.

    Один из способов обойти эти трудности — передача логики управления кэш-памятью от аппаратного обеспечения к программному.

    «Компилятор потенциально в состоянии анализировать поведение программы и генерировать команды по переносу данных между уровнями памяти», — отметил Шен.

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

    Где мои данные?

    Когда процессору требуются данные, он сначала анализирует содержимое своих регистров данных. Если данных там нет, процессор смотрит, не лежат ли они в ближайшей к нему кэш-памяти первого уровня. Если и там нет, то следующее обращение происходит к кэш-памяти второго уровня. Если процессор не находит данных в кэше, он проверяет оперативную память. И здесь нет? Тогда процессор посылает запрос к диску. Время идет, а процессор ничего полезного не делает.

    Читайте также: