
Кэш-память sram
Существует тип памяти, совершенно отличный от других, статическая оперативная память (Static RAM SRAM). Она названа так потому, что, в отличие от динамической оперативной памяти (DRAM), для сохранения ее содержимого не требуется периодической регенерации. Но это не единственное ее преимущество. SRAM имеет более высокое быстродействие, чем динамическая оперативная память, и может работать на той же частоте, что и современные процессоры.
Время доступа SRAM не более 2 нс; это означает, что такая память может работать синхронно с процессорами на частоте 500 МГц или выше. Однако для хранения каждого бита в конструкции SRAM используется кластер из шести транзисторов. Использование транзисторов без каких-либо конденсаторов означает, что нет необходимости в регенерации.
По сравнению с динамической оперативной памятью быстродействие SRAM намного выше, но плотность ее гораздо ниже, а цена довольно высока. Более низкая плотность означает, что микросхемы SRAM имеют большие габариты, хотя их информационная емкость намного меньше. Большое число транзисторов и кластеризованное их размещение не только увеличивает габариты микросхем SRAM, но и значительно повышает стоимость технологического процесса по сравнению с аналогичными параметрами для микросхем DRAM. Например, емкость модуля DRAM может равняться 64 Мбайт или больше, в то время как емкость модуля SRAM приблизительно того же размера составляет только 2 Мбайт, причем их стоимость будет одинаковой. Таким образом, габариты SRAM в среднем в 30 раз превышают размер динамической оперативной памяти, то же самое можно сказать и о стоимости. Все это не позволяет использовать память типа SRAM в качестве оперативной памяти в персональных компьютерах.
Несмотря на это, разработчики все-таки применяют память типа SRAM для повышения эффективности PC. Но во избежание значительного увеличения стоимости устанавливается только небольшой объем высокоскоростной памяти SRAM, которая используется в качестве кэш-памяти. Кэш-память работает на тактовых частотах, близких или даже равных тактовым частотам процессора, причем обычно именно эта память непосредственно используется процессором при чтении и записи. Во время операций чтения данные в высокоскоростную кэш-память предварительно записываются из оперативной памяти с низким быстродействием, т.е. из DRAM. Еще недавно время доступа динамической оперативной памяти было не менее 60 нс (что соответствует тактовой частоте 16 МГц).
Когда процессор персонального компьютера работал на тактовой частоте 16 МГц и ниже, DRAM могла быть синхронизирована с системной платой и процессором, поэтому кэш был не нужен. Однако как только тактовая частота процессора поднялась выше 16 МГц, синхронизировать DRAM с процессором стало невозможно, и именно тогда разработчики начали использовать SRAM в персональных компьютерах. Это произошло в 1986-87 годах, когда появились PC с процессором 386, работающим на частотах 16 и 20 МГц. Именно в этих персональных компьютерах впервые нашла применение так называемая кэш-память, т.е. высокоскоростной буфер, построенный на микросхемах SRAM, который непосредственно обменивается данными с процессором. Поскольку быстродействие кэша может быть сравнимо с быстродействием процессора, контроллер кэша может предугадывать потребности процессора в данных и предварительно загружать необходимые данные в высокоскоростную кэш-память. Тогда при выдаче процессором адреса памяти данные могут быть переданы из высокоскоростного кэша, а не из оперативной памяти, быстродействие которой намного ниже.
Эффективность кэш-памяти выражается коэффициентом совпадения, èëè коэффициентом успеха. Коэффициент совпадения равен отношению количества удачных обращений в кэш к общему количеству обращений. Попадание это событие, состоящее в том, что необходимые процессору данные предварительно считываются в кэш из оперативной памяти; иначе говоря, в случае попадания процессор может считывать данные из кэш-памяти. Неудачным обращением в кэш считается такое, при котором контроллер кэша не предусмотрел потребности в данных, находящихся по указанному абсолютному адресу. В таком случае необходимые данные не были предварительно считаны в кэш-память, поэтому процессор должен отыскать их в более медленной оперативной памяти, а не в быстродействующем кэше. Когда процессор считывает данные из оперативной памяти, ему приходится какое-то время "ждать", поскольку тактовая частота оперативной памяти значительно ниже, чем процессора. Если процессор со встроенной в кристалл кэш-памятью работает на частоте 3 ГГц, то продолжительность цикла процессора и интегральной кэш-памяти в этом случае достигнет 0,33 нс, в то время как продолжительность цикла оперативной памяти будет в 7,5 раз больше, т. е. примерно 2,5 или 5 нс для памяти с удвоенной скоростью передачи данных (Double Data Rate DDR). Таким образом, тактовая частота памяти будет всего лишь 400 МГц. Следовательно, в том случае, когда процессор с тактовой частотой 3 ГГц считывает данные из оперативной памяти, его рабочая частота уменьшается в 7,5 раз, что и составляет 400 МГц. Замедление обусловлено периодом ожидания (wait state). Если процессор находится в состоянии ожидания, то на протяжении всего цикла (такта) никакие операции не выполняются; процессор, по существу, ждет, пока необходимые данные поступят из более медленной оперативной памяти. Поэтому именно кэш-память позволяет сократить количество "простоев" и повысить быстродействие компьютера в целом.
Чтобы минимизировать время ожидания при считывании процессором данных из медленной оперативной памяти, в современных персональных компьютерах обычно предусмотрены два типа кэш-памяти: кэш-память первого уровня (L1) è кэш-память второго уровня (L2). Кэш-память первого уровня также называется встроенным èëè внутренним кэшем; он непосредственно встроен в процессор и фактически является частью микросхемы процессора. Во всех процессорах 486 и выше кэш-память первого уровня интегрирована в микросхему процессора. Кэш-память второго уровня называется вторичным èëè внешним кэшем; он устанавливается вне микросхемы процессора. Первоначально она устанавливалась на системной плате. (Так было во всех компьютерах на основе процессоров 386, 486 и Pentium.) Если кэш-память второго уровня установлена на системной плате, то она работает на ее частоте. В этом случае кэш-память второго уровня обычно находится рядом с разъемом процессора.
Начиная с 1999 года кэш-память второго уровня стала частью процессора, поскольку была интегрирована непосредственно в процессорное ядро наравне с кэш-памятью первого уровня. При этом кэш-память второго уровня работает на полной частоте процессора, обеспечивая на порядок большую производительность, чем кэш-память в более старых процессорах, реализованная в виде отдельной внешней микросхемы.
Первоначально кэш-память проектировалась как асинхронная, т.е. не была синхронизирована с шиной процессора и могла работать на другой тактовой частоте. При внедрении набора микросхем системной логики 430FX в начале 1995 года был разработан новый тип синхронной кэш-памяти. Она работает синхронно с шиной процессора, что повышает ее быстродействие и эффективность. В то же время был добавлен режим pipeline burst mode (конвейерный монопольный режим). Он позволил сократить время ожидания за счет уменьшения количества состояний ожидания после первой передачи данных. Использование одного из этих режимов подразумевает наличие другого. Оба режима позволяют повысить производительность компьютера на 20%.
Контроллер кэш-памяти для современной системы содержится в микросхеме North Bridge набора микросхем системной логики в PC на основе Pentium и более простых или на плате процессора, как в случае с Pentium Pro, Pentium II/III и более новыми системами. Возможности контроллера кэш-памяти предопределяют эффективность и возможности кэш-памяти. Важная особенность состоит в том, что большинство контроллеров кэш-памяти имеют ограничение на объем кэшируемой памяти. Часто этот предел может быть очень низок, как в случае набора микросхем системной логики 430TX для компьютеров на основе Pentium. Этот набор микросхем может кэшировать данные только первых 64 Мбайт оперативной памяти системы. Если установлен больший объем памяти, работа компьютера значительно замедляется, потому что все данные вне первых 64 Мбайт никогда не попадут в кэш и при обращении к ним будут всегда необходимы все состояния ожидания, определяемые более медленной динамической оперативной памятью. Снижение эффективности зависит от программного обеспечения и от адресов, по которым хранятся данные в памяти. Например, 32-разрядные операционные системы Windows загружаются сверху вниз, так что если установлена оперативная память емкостью 96 Мбайт, то и операционная система, и прикладные программы будут загружаться в верхние 32 Мбайт, которые не кэшируются. Это значительно замедлит работу компьютера в целом. В данном случае можно удалить дополнительную память, чтобы уменьшить емкость до 64 Мбайт. Другими словами, неблагоразумно устанавливать большую емкость памяти, чем позволяет кэшировать набор микросхем системной логики.
Процессор Pentium II и наборы микросхем системной логики более поздних версий не позволяют управлять кэш-памятью второго уровня, так как она встраивается в процессор. Поэтому при использовании Pentium II и процессоров последующих версий устанавливаются определенные ограничения кэширования памяти. Процессоры с внутренним кэшем первого и второго уровней имеют ограничение, равное соответственно 512 Мбайт и 4 Гбайт, а при использовании Pentium III и процессоров последующих версий объем кэшируемой памяти увеличивается до 4 Гбайт. Этот параметр превышает максимальный объем оперативной памяти, которая может поддерживаться тем или другим набором микросхем. Поэтому в подобных системах не следует устанавливать больший объем памяти, чем позволяет контроллер кэш-памяти. Для того чтобы определить ограничения объема кэшируемой памяти, существующие в системе, обратитесь к технической документации набора микросхем системной логики (при использовании систем класса Pentium, процессоров более ранних версий или систем с кэш-памятью, встроенной в системную плату) либо обратите внимание на характеристики процессора (при использовании систем класса Pentium II, процессоров более современных версий или систем с кэш-памятью, встроенной в процессор).
SDRAM
Это тип динамической оперативной памяти DRAM, работа которой синхронизируется с шиной памяти. SDRAM передает информацию в высокоскоростных пакетах, использующих высокоскоростной синхронизированный интерфейс. SDRAM позволяет избежать использования большинства циклов ожидания, необходимых при работе асинхронной DRAM, поскольку сигналы, по которым работает память такого типа, синхронизированы с тактовым генератором системной платы.
Для памяти этого типа требуется поддержка набором микросхем системной логики. Начиная с наборов 430VX и 430TX, выпущенных в 1997 году, все наборы микросхем системной логики компании Intel полностью поддерживают SDRAM. Этот тип памяти стал самым популярным в новых системах, выпущенных в 2000 и 2001 годах.
Схема синхронизации пакетного доступа SDRAM выглядит так: 5-1-1-1, т.е. четыре операции чтения завершаются всего лишь за восемь циклов системной шины.
Кроме этого, память SDRAM может работать на частоте 133 МГц (7,5 нс) и выше, что стало новым стандартом для системного быстродействия начиная с 1998 года. Фактически все новые персональные компьютеры, проданные с 1998 по 2000 год, имеют память типа SDRAM.