SRAM


SRAM, да и только.




Михаил Тычков aka Hard



Доброго времени суток.

Ну, для начала знайте, что SRAM (Static Random Access Memory) – статическая память с произвольным порядком выборки. Статической ее назвали потому как этот тип памяти не требует регенерации. Давайте об этом подробнее.

Ячейка SRAM состоит из шести транзисторов. Не верите – смотрите схему:

SRAM

Для сравнения можете заглянуть в статью «DRAM» и сравнить, насколько различаются ячейки SRAM и DRAM. По сути дела, получается, что ячейка статической памяти есть не что иное, как триггер. Заглянем в Советский Энциклопедический Словарь: «Триггер – переключатель, устройство, которое сколь угодно долго сохраняет одно из своих состояний устойчивого равновесия и скачкообразно переключается по сигналу извне из одного состояния в другое. Выполняется преимущественно на электронных лампах, газоразрядных и полупроводниковых приборах (в том числе на интегральных схемах); применяют главным образом в вычислительных машинах и устройствах автоматики». Ну что ж, все так и есть.

А вот теперь необходимо сделать небольшое отступление. Дело в том, что понятие ячейки двояко. Определение первое: ячейка – это элемент памяти, способный хранить один бит данных. Но Вы знаете, что за один раз считывается не один бит, а несколько. Отсюда второе определение: ячейка – это элемент памяти, при обращении к которому считывается несколько битов, имеющих один адрес. Чтобы не вносить путаницы, я эти два понятия разделю: в первом случае это будет физическая ячейка, а во втором – логическая. Так вот, на рисунке – физическая ячейка. Все, с определениями покончили и двигаемся дальше.

Как Вы наверно заметили, в схеме отсутствует конденсатор. Нет конденсатора – нет стекания заряда, а значит нет необходимости его обновлять. А ведь регенерация может занимать до 10 % и больше процессорного времени. Экономия времени налицо! Кроме того, ячейка SRAM сама по себе работает быстрее ячейки DRAM, что позволяет статической памяти работать на частоте работы процессора. К слову сказать, SRAM и находится внутри процессора.

Почему бы ни использовать только статическую память в качестве ОЗУ? Ну что ж, хорошо поставленный вопрос стоит долго и требует соответствующего ответа! Дело в том, что DRAM дороже SRAM примерно на 30%. Кроме этого, поскольку плотность DRAM ниже, то эти микросхемы занимают больше места. Не следует забывать и то, что большее количество транзисторов влияет на температурный режим, причем не самым лучшим образом. Это ведет к уменьшению срока службы. Поэтому, инженеры пошли на компромисс и решили использовать в персональном компьютере оба вида памяти в качестве ОЗУ. SRAM получила название – кэш (cache).

Нафига он нужен? Поскольку кэш работает на частоте процессора, то в него загружаются данные из оперативной памяти. Но не все, а те, к которым процессор чаще всего обращается. Обращение "камня" к кэш, а не к оперативной памяти заметно повышает быстродействие системы. Существует такая фигня, как попадание в кэш, а точнее коэффициент попадания в кэш. Попадание в кэш – это считывание данных процессором из кэш, которые были предварительно туда записаны из оперативной памяти. Именно предварительно, обратите на это внимание. Чем выше коэффициент, тем лучше. За этим делом следит специальный контроллер кэша, который и определяет его эффективность.

Кроме этого, следует отметить, что не все данные могут быть считаны из оперативной памяти в кэш. Существует ограничение на кэшируемый объем памяти и зависит это от используемого материнской платой чипсета (в устаревших системах) или от типа процессора (в современных системах).

Рассмотрим этот вопрос более внимательно. Если Вы установите объем оперативной памяти больше, чем максимальный кэшируемый объем, то те данные, которые будут записаны в область, сверх кэшируемой памяти, никогда в кэш ни попадут (получилось несколько витиевато, но я думаю, понятно). Чем это чревато? А понижением скорости работы системы, вот чем! Фишка заключается в том, что такие операционные системы, как Windows 95/98/NT (по поводу других не скажу точно, но думаю, что дело ничуть не изменилось) грузятся сверху вниз. Отсюда следует, что одни из самых часто используемых данных никогда не попадут в кэш, так как будут расположены в некэшируемой области.

Существует два типа кэш: кэш первого уровня и кэш второго уровня. Но прежде – немного истории. Впервые кэш появился в 1986 году вместе с 80386 «камнем». Это был высокоскоростной буфер между процессором и оперативной памятью. Затем разработали кэш второго уровня, который располагался на материнской плате и работал на частоте системной шины. Впоследствии кэш второго уровня был вынесен на специальную плату (к которой крепился и сам процессор) и данные между ним и процессором передавались по отдельной процессорной шине. Теперь же кэш обоих уровней находятся внутри процессора. Вот что можно узнать о кэш процессора Pentium 4 2,53 ГГц (ядро Northwood):

Кэш-память первого уровня с отслеживанием выполнения команд: помимо кэш-памяти данных объемом 8 Кб процессор Pentium 4 имеет кэш первого уровня с отслеживанием выполнения команд, которая хранит до 12 000 декодированных микроопераций в порядке их выполнения. Это увеличивает производительность за счет исключения декодера из системы основных команд и делает более эффективным использование кэш-памяти, так как команды, имеющие ответвления, не отсылаются в память. В результате удается передать большой объем команд в исполнительные блоки процессора и уменьшить общее время, требуемое на возврат из тех ответвлений, которые были неправильно предсказаны.

Кэш-память с улучшенной передачей данных второго уровня с объемом 512 Кб: кэш-память с улучшенной передачей данных (Advanced Transfer Cache - ATC) второго уровня объемом 512Кб используется с частотами от 1,60 ГГц до 2.53 ГГц. Кэш-память с улучшенной передачей данных второго уровня обеспечивает более скоростной канал данных между кэш второго уровня и ядром процессора. Она состоит из интерфейса объемом 256 бит (32 байта), передающего данные на каждый такт частоты ядра процессора. В результате процессор Pentium 4 с тактовой частотой 2,40 ГГц может обеспечить скорость передачи данных 77 ГБ/с. Напомним, что соответствующая скорость передачи данных для процессора Pentium III с тактовой частотой 1 ГГц равна 16 ГБ/с.

Ну не круто ли!

SRAM различается по принципу работы. Существует три типа:

    1. Async SRAM (Asynchronous Static Random Access Memory) - асинхронная статическая память с произвольным порядком выборки;

    2. SyncBurst SRAM (Synchronous Burst Random Access Memory) – синхронная пакетная статическая память с произвольным порядком выборки;

    3. PipBurst SRAM (Pipelined Burst Random Access Memory) – конвейерная пакетная статическая память с произвольным порядком выборки;

Async SRAM – это устаревший тип памяти, асинхронный интерфейс которой схож с интерфейсом DRAM и включает в себя шины адреса, данных и управления. SyncBurst SRAM – этот тип памяти синхронизирован с системной шиной и лучше всего подходит для выполнения пакетных операций. Ну а интерфейс PipBurst SRAM схож с интерфейсом SyncBurst SRAM, но позволяет получать данные без тактов ожидания.

Как правило, чем больше объем кэш, тем система производительней. Но сам по себе объем еще не гарантирует высокой производительности. Для кэш главное – контроллер.

На сим и закончу. Удачи.

03.11.02

читать еще по теме