Память компьютера

On 17.11.2013 by nikellanjilo

Кэш — это некая особенная разновидность памяти, которая является своего рода «буфером» между контроллером памяти и процессором. Служит для увеличения скорости работы с ОЗУ. Любая считываемая из памяти информация попадает не только в процессор, но и в кэш. И если эта же информация (тот же адрес в памяти) нужна снова, сначала процессор проверяет: а нет ли её в кэше? Если есть — информация берётся оттуда, и обращения к памяти не происходит вовсе. Аналогично с записью: информация, если её объём влезает в кэш — пишется именно туда, и только потом, когда процессор закончил операцию записи, и занялся выполнением других команд, данные, записанные в кэш, параллельно с работой процессорного ядра «потихоньку выгружаются» в ОЗУ. Чтобы в кэш могли поместиться новые, более актуальные, проводится отслеживание времени последнего обращения к данным, находящимся в кэше.

Скорость обмена данными процессора Pentium 4 со своим кэшам более чем в 10 раз (!) превосходит скорость его работы с памятью. Фактически, в полную силу современные процессоры способны работать только с кэшем. Систему кэширования приходится делать многоуровневой. Кэш первого уровня (самый «близкий» к ядру) традиционно разделяется на две половины, кэш инструкций (L1I) и кэш данных (L1D). Это разделение предусматривается «гарвардской архитектурой» процессора, которая является самой популярной теоретической разработкой для построения современных CPU. Кэш второго и третьего уровня — L2, L3 . Он больше по объёму, и является уже «смешанным» — там располагаются и команды, и данные. Если ни на одном уровне кэша информация не найдена — идёт обращение к основной памяти (ОЗУ). Все уровни кэша работают на той же частоте, что и процессорное ядро.
Trace cache – идея сохранять в кэше инструкций первого уровня (L1I) не те команды, которые считаны из памяти, а уже декодированные последовательности.
Латентность памяти — время, которое требуется для того, чтобы начать считывать информацию с определённого адреса. C момента, когда процессор посылает контроллеру памяти команду на считывание (запись), и до момента, когда эта операция осуществляется, проходит определённое количество времени. Если данные в программе расположены «хаотично» и «небольшими кусками», скорость их считывания становится намного менее важной, чем скорость доступа к «началу куска». Латентность подсистемы памяти зависит не только от неё самой, но и от контроллера памяти и места его расположения. Понятия «скорость чтения / записи» и «латентность», применимы к любому типу памяти —к классической DRAM (SDR, Rambus, DDR, DDR2) и к Кэшу.
В качестве элементов оперативной памяти используют ячейки, представляющие собой конденсаторы. Заряженный конденсатор хранит «1», разряженный — «0». Во время считывания информации конденсаторы разряжаются. Кроме того, заряд в конденсаторе из-за утечки хранится ограниченное время (несколько миллисекунд). Поэтому необходима подзарядка, которая выполняется в процессе регенерации информации. Это обстоятельство обусловило название памяти подобного типа — динамическая память или DRAM (Dynamic RAM).

Малые размеры и простота элементов DRAM позволяют получить довольно большую емкость памяти, но из-за затрат времени на регенерацию снижается быстродействие.
С целью повышения быстродействия DRAM разработано несколько модификаций этого типа памяти. Синхронная память типа SDRAM (Synchronous DRAM) отличается от асинхронной памяти типа DRAM тем, что такты работы памяти засинхронизированы с тактами работы процессора. Это позволяет исключить циклы ожидания, имеющие место в DRAM.
По сравнению с обычной SDRAM в памяти типа DDR SDRAM (Double Date Rate SDRAM) при одной и той же частоте шины памяти быстродействие удалось увеличить вдвое за счет того, что обращения к памяти происходят дважды за такт — как по переднему, так и по заднему фронту тактовых сигналов.

В памяти типа DDR2 в отличие от DDR возможна работа на больших тактовых частотах. Например, в памяти DDR2-1066 при частоте шины 266 обеспечивается частота обращений к памяти 1066 МГц.

Память типа DDR3 имеет меньшее потребление энергии по сравнению с DDR2.
В современных настольных компьютерах используется оперативная память двух типов — DDR и DDR2. Старые типы памяти вроде SDRAM сегодня практически не применяются, за исключением устаревших машин и некоторых встраиваемых систем. Поддержка того или иного типа оперативной памяти осуществляется на уровне набора системной логики, как в случае с платформой Intel, либо на уровне самого процессора, как в случае с чипами AMD Athlon 64.

 

Добавить комментарий