Среда, 15.05.2024, 07:02
 
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта

Главная страница

Обратная связь

Рефераты, курсовые и дипломные работы!!! БЕСПЛАТНО

Каталог файлов

Каталог статей

Железные НОВОСТИ

Форум

Фотоальбомы

На нас ссылаются

Книга жалоб и предложений

PR-CY.ru
Разделы дневника
Видеокарты Nvidia [4]
видеокарты nvidia
Видеокарты ATI [1]
видеокарты ati
Intel [4]
процессоры и системные платы
AMD [2]
процессоры и системные платы
HDD [1]
жесткие диски(SATA, ADE, USB)
оперативная память [2]
SDRAM, DDR, DDRII, DDRIII, .....
Блоки питания [0]
Системы охлаждения [0]
Клавиатуры / Мышки [1]
Мониторы [1]
Ноутбуки [1]
 Железные НОВОСТИ
Главная » 2009 » Февраль » 19 » Память быстрая и оперативная: О технологии SDRAM подробно
Память быстрая и оперативная: О технологии SDRAM подробно
16:48
Оперативная память является одним из важнейших компонентов компьютера. Недаром под платформой изначально понимали именно материнскую плату, процессор и оперативную память. Но для чего же она предназначена, как работает и из чего состоит? На эти вопросы и попытаемся ответить в нашем материале.



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



Прирост скорости, получаемый от использования RAM, можно представить, сравнив показатели скорости работы жесткого диска и памяти. Так, жесткий диск в среднем читает данные со скоростью 60-80 Мб/с, а оперативная память – 6.4-25.6 Гб/c, то есть на два порядка больше! Латентность (задержка чтения) у жесткого диска составляет 10-15 мс, у оперативной памяти – около 60-80 нс, то есть чуть меньше, чем на 6 порядков! И сразу же должно стать ясно, почему появляются так называемые свопы (от английского swap – замена, обмен, процесс выгрузки менее приоритетных данных из оперативной памяти на жесткий диск в файл подкачки и подгрузка в освобожденную оперативную память новых данных) и почему они так замедляют систему.

Итак, стало понятно, что оперативная память – это вид памяти, отличающейся достаточно большим объемом, чтобы туда помещались все оперативные данные, и достаточно высокой скоростью, чтобы процессор не простаивал в ожидании данных от жесткого диска. Фактически оперативная память является «прослойкой» между процессором, храня в себе нужные или потенциально необходимые процессору данные для того, чтобы быстро передать их, не дожидаясь реакции жесткого диска. Такая прослойка не является единственной – существует также кэши разных уровней, обладающие еще меньшими объемами и большими скоростями, служащие той же цели (еще более оперативное предоставление данных, не дожидаясь относительно медленной оперативной памяти), но это уже другая песня.

Остановимся подробней на «оперативке». Она входит в состав так называемой подсистемы памяти, вместе с другими прослойками (кэшами) и управляющими ими узлами (контроллерами). В видеокартах применяется также память типа SDRAM, но с небольшими изменениями. Общие принципы остаются теми же самыми.


SDRAM

Сейчас вся используемая в хоть сколько-нибудь современных настольных компьютерах память является памятью типа SDRAM. Расшифровывается это как Synchronous Dynamic Random Access Memory – синхронная динамическая память с произвольным доступом. Как обычно принято у англичан, расшифровывать аббревиатуру нужно с конца – память с произвольным доступом означает, что мы можем получить доступ (считать или записать) к любой ячейке, вне зависимости от ее положения. Названа она так по причине существования памяти с линейным доступом, где нужно пролистать всю память от начала и до нужного места, чтобы выполнить требуемую операцию.



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

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


А что там внутри?

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

С целью повышения производительности в чипе памяти находится несколько независимых массивов памяти – такого рода таблиц. Называются они банками (Bank). Если при работе с одним банком можно одновременно работать только с одной ячейкой, то за счет существования независимых банков возможна параллельная работа с разными банками. Так, при записи информации в одном банке можно спокойно активировать строку в другом банке. Возможны разные реализации параллельной работы банков памяти, а стало быть, и адресации ячеек. По умолчанию они находятся один за другим. Но существует и способ чередования каналов, когда записываемая информация пишется кусками в разные банки. Такое чередование банков называется interleaving. Однако все это чередование происходит автоматически и прозрачно для процессора. То есть процессор так и будет продолжать думать, что работает с единой областью памяти, со своим адресным пространством. А вот куда физически они будут записаны, уже решает контроллер памяти. Он и определяет способ чередования (существуют разные алгоритмы). То есть это не более чем техническая реализация, удобная для хранения и работы с данными. Очевидно, что чем больше банков, тем лучше, если контроллер умеет работать с таким их числом. Модули плотностью до 64 Мбит имеют два банка. Плотностью 64 Мбита и выше – 4 банка, плотностью 1 Гбит и выше – 8 банков.

Номер таблицы (массива данных) задается номером банка. Таким образом, адрес ячейки в чипе памяти (чипе, а не модуле) задается тремя координатами – номером банка, номером строки и столбца.


Модуль памяти

Что же такое модуль памяти? Модуль – это печатная плата, на которой размещаются чипы памяти. У модулей есть объем (измеряемый в мегабайтах или гигабайтах), тип (SDRAM и поколение), частота, на которой он работает и ширина шины данных (также называемая разрядностью). Объем модуля определяется как суммарный объем используемых в нем чипов памяти. Чипы памяти обладают различным объемом, называемым «плотностью чипа». Так, существуют чипы на 256 Мбит, 512 Мбит, 1 Гбит и более плотные. Модуль, состоящий из восьми чипов по 512 Мбит, будет иметь объем, равный 4096 Мбит или 512 Мбайт. Все модули памяти, которые продаются сейчас и поступят в торговую сеть в ближайшем будущем, имеют ширину шины 64 бита, то есть могут передавать за одну единицу времени 64 бита или 8 байт. Для обычных модулей SDRAM было справедливо следующее соотношение: частота x ширина шины / 8 = пропускная способность. То есть модуль с частотой 133 МГц и шириной, как было сказано, 64 бита будет обладать пропускной способностью 133x64/8=1066 Мб/c. Тут стоит заметить еще один нюанс. Частоту 133 МГц и другие подобные дробные частоты пишут сокращенно, без десятых, и это может привести к результату в 1064, что будет ошибкой. На самом деле частота равна 133.(3) – в периоде. Связано это с тем, что частота PCI равна не 33 МГц, а 33.33 и так далее. А частоты шины, памяти и других компонент часто берут кратными ей. Потому тройная частота PCI равна не 99 МГц, а, скажем, 99.99, то есть 100 МГц. Потому и пропускная способность в примере равна 1066 Мб/с. Сейчас это соотношение слегка изменилось.



Ширина шины модуля памяти получается как сумма ширин шин чипов, его составляющих. Поэтому при наличии четырех чипов памяти ширина каждого должна быть равна 16 битам, при восьми – 8 битам, не больше и не меньше. Чипы памяти обладают так называемой архитектурой, например, 128М x 4 (для 512Мбит), где 128М – глубина чипа, а 4 – разрядность (ширина) шины. Также существует и дальнейшая градация – архитектура, где выделяются и банки памяти. То есть будет уже 32М x 4 x 4 банка, но эта запись не слишком распространена. То есть 128М = 32М x 4 банка. 32М получаются из числа строк и столбцов. Так, таблица из 16 тысяч строк (rows) и 2 тысяч столбцов (columns) может хранить 32 Мбита данных. Таких таблиц в рассматриваемом модуле с четырьмя банками 4, потому получаем 128М. 128М называются глубиной чипа. Поскольку у нас в чипе 4 линии передачи данных, то 128М x 4 даст плотность в 512 Мбит.

Модули памяти могут быть представлены в виде геометрии – записи, показывающей ширину модуля и его глубину. Ширина всегда равна 64 битам, а глубина определяется объемом модуля, умноженным на 8 (для перевода байт в биты) и деленным на ширину. Так, для 1024 Мбайт запись геометрии модуля будет в виде 128М x 64 бит, то есть та же глубина, но умножаемая на суммарную разрядность шин чипов. Впрочем, встречается такая запись реже.

Если ты разобрался с этой частью, можешь считать, что самое худшее позади. Стоит лишь добавить, что существует еще страница памяти, равная числу столбцов, умноженному на разрядность чипа. Измеряется она в килобайтах. Так, в нашем примере с 2К столбцов и 4 битами размер страницы равен 2x4/8=1 КБ. А теперь перейдем к рассмотрению того, как же производится чтение и запись данных.


Чтение и запись

Адрес строки и столбца передаются по одним и тем же контактам, но по очереди. Делается это хитрым устройством под названием «мультиплексор», которое занимается тем, что кодирует строку и столбец для передачи по одному каналу, а потом декодирует их. Делается это с помощью служебных контактов. Происходит это следующим образом:

На адресные линии подается адрес строки, которую необходимо активировать, и сигнал на активацию на служебные линии. Считывается целая страница памяти. Страница считывается потому, что читается вся строка (длина которой равна числу столбцов), но при этом чип имеет несколько каналов данных, где одновременно происходит то же самое. Таким образом считывается страница. Она попадает в усилители (Sense amplifiers), которые переводят заряд конденсатора в набор нулей и единиц. Затем выбирается требуемый столбец, и данные передаются по шине. Чаще всего читается сразу пакет данных (Burst). Иногда данные не могут читаться порциями меньшими, чем несколько пакетов данных. Но в простейшем случае мы запросили ячейку, и данные из нее с каждого канала данных (то есть с каждого бита шины) передаются контроллеру. Таким образом, каждый бит шины имеет свой массив данных. А при записи каждые 64 бита (8 байт) делятся между ними и записываются раздельно. Если у нас пакет данных равен двум (Burst length, BL=2), то делается две передачи данных. То есть передается 128 бит за один раз.


Технология DDR

В определенный момент производители памяти столкнулись с проблемой дальнейшего повышения скорости работы памяти. Чипы памяти не могли работать на большей частоте. Можно было бы поставить побольше чипов, увеличив разрядность модуля памяти, но это значительно повысило бы стоимость производства материнских плат. И тогда было найдено решение. Заключалось оно в том, чтобы увеличить ширину шины внутри самого чипа, оставив его работать на прежней частоте, а данные забирать и доставлять по шине с удвоенной частотой и прежней шириной. Но помимо этого было сделано еще одно нововведение – данные стали передаваться по обоим фронтам тактового сигнала, или на понятном конечному юзеру языке – «два раза за такт».

Затем данные адреса попадают в декодеры банка, строки и столбца (для каждого декодер свой). Выбирается нужный банк, затем строка считывается в усилители (sense amplifiers). После этого, для нашего модуля с чипами с разрядностью x4 выбирается 8 бит – это и есть проявление внутренней удвоенной ширины шины. Они разделяются на два блока по 4 бита, затем данные попадают на мультиплексор, который их выставляет по очереди согласно одной из адресных линий столбца, служащих для этой цели. Далее эти данные попадают к отправителю сигнала, где они уже на внешней частоте с удвоенной частотой передачи (DDR) попадают на шину данных. Точно так же данные принимаются – попадают в приемник сигнала, делятся по двум каналам и записываются одним блоком большей разрядности (в нашем случае это 8 бит из двух внешних 4-битных блоков). Опять же, порядок следования выбирается исходя из одной из выделенных для этого линий адреса столбца. Называется такое устройство архитектурой 2n prefetch, где n – показатель степени двойки, обозначающий поколение DDR.

Очевидно, что при таком устройстве работы нельзя считать менее чем два пакета данных, поскольку изнутри это будет один цельный пакет. И лишь снаружи он превратится в два более мелких. Также растут и задержки. Но это связано с тем, что время выполнения команды чипом не меняется (что у SDR 100 МГц, что у DDR-200 частота чипа равна 100 МГц, значит и время уходит одно и то же), а задержки выставляются в тактах работы шины. Также стоит отметить, что запись DDR 400 МГц лишена смысла – поскольку шина работает на реальной частоте 200 МГц и лишь передает данные «два раза за такт». А поскольку это с виду кажется эквивалентным 2 x 200 = 400, то маркетологи тут же принялись писать DDR 400 МГц – как любили говорить рекламщики Intel: «пользователь покупает гигагерцы». И не так важно, соответствует ли фраза истине. Потому оставим некорректные с технической точки зрения фразы на откуп маркетологов. По стандарту же положено писать просто DDR400. Даже в спецификации самого стандарта DDR SDRAM – JEDEC STANDARD Double Data Rate (DDR) SDRAM Specification указано, что применение термина «МГц» некорректно и стоит употреблять – «миллионов передач в секунду на один вывод данных». Все стандарты на оперативную память принимаются именно организацией JEDEC, и любой желающий может зайти на их сайт (jedec.org), полистать документацию и убедиться в правдивости или ложности утверждений, высказываемых производителями, рекламщиками или кем-то другим касательно того, что является стандартом, а что нет.


DDR2 – что-то новое или же нет?

Что же нового появилось в технологии DDR2 SDRAM? А ничего! Это просто эволюционное и не более развитие старой технологии. Если раньше у нас внутренняя шина была вдвое большей разрядности, чем внешняя, то теперь она стала вчетверо больше. А возросшую пропускную способность чипа стали передавать по внешней шине с удвоенной частотой. Именно частотой, а не удвоенной скоростью передачи. То есть применялась технология DDR, но на большей частоте никаких там QDR (Quad Data Rate, учетверенная передача данных) не стало. Как следствие, чип стал работать на вдвое меньшей частоте при одинаковой пропускной способности. Так, если в DDR400 чип работал на частоте 200 МГц, внутренняя шина передачи была вдвое больше, внешняя же частота составляла 200 МГц, то в DDR2-400 все то же самое, только частота чипа вдвое меньше, а ширина внутренней шины – во столько же раз больше. Соответственно, в DDR2-800 частота чипа будет 200 МГц, частота внешней шины 400 МГц с технологией DDR. Получается DDR2-800. В DDR3-800 частота снова станет 100 МГц, шина внутренняя будет уже в восемь раз больше, а частота внешняя не изменится, так и оставшись равной 400 МГц. Таким образом, видно, что частота передачи данных зависит только от пропускной способности и не зависит от технологии. Все «хитрости» сокрыты внутри чипа. Соответственно, что будет происходить в памяти DDR4 и DDR5 можно уже догадаться. Отсюда понятно, что с каждым новым поколением DDR все больше увеличивается длина минимального пакета данных. Если в DDR мы не могли с одного модуля считать менее 128 бит данных, то с DDR2 считывается уже не менее 256 бит (Burst length=4), с DDR3 – не менее 512 бит. Как было сказано, 2n-prefetch архитектура показывает, сколько данных за раз выбирается при чтении. Для DDR n=1 минимальной является выборка двух пакетов. Для DDR2 уже n=2, 2 в степени 2 равно 4 – такова ее минимальная выборка. Для DDR5 будет два в пятой степени, что ставит 32 пакета, а это 2048 бит. Отсюда следует еще один вывод – для разделения на мелкие пакеты для передачи и слияния их при записи требуется все большее число линий адреса столбца. Потому число столбцов должно расти с каждым новым поколением DDR, а вместе с ним и объем страницы памяти, чтобы предвыборка не выбирала всю страницу при чтении из усилителей.


Двойной канал

При развитии технологии SDRAM была также разработана еще одна технология – двухканальный режим доступа к памяти (Dual channel interleaving). Он позволяет делать виртуальную шину в 128 бит за счет чередования двух модулей памяти. То есть при чтении Dual channel DDR Burst length уже даже не 2, а 4, то есть выбирается сразу 256 бит. Это слегка улучшило производительность, хотя и не очень заметно. Также существует, хотя и получил гораздо меньше распространение, метод чередования этих двух каналов, то есть поочередная работа с двумя модулями, 2 x 64 бита. Такие режимы поддерживались контроллерами SiS, но сейчас и AMD добавила в свои процессоры поколения K10 возможность раздельной работы с каждым каналом (unganged mode – несвязанный режим).


Тайминги

Стоит также заметить, что оперативная память не может работать с бесконечной скоростью, как, впрочем, и ничто другое. На выполнение любых операций ей требуется время. На что-то – больше, на что-то – меньше. Называется это время по-английски timings, то есть тайминги или задержки. Они задаются в тактах шины памяти. Отсюда может стать ясно, почему растут тайминги с каждым поколением DDR – частота чипа практически не меняется, стало быть, и время выполнения им операций – тоже, зато частота шины меняется в разы. А потому и время одного такта уменьшается. То есть за время выполнения команды в наносекундах более высокочастотная шина успевает «натикать» больше, поэтому больше тактов ей приходится ожидать. Но абсолютные значения задержек не растут. Тайминги являются очень большой темой из области оперативной памяти. Желающие могут ознакомиться с моей статьей «Что такое тайминги?», посвященной им, по адресу http://people.overclockers.ru/antinomy/record4.

Добавлю, что частота чипа от поколения к поколению менялась весьма незначительно. Речь идет только о частотах, сертифицированных организацией JEDEC, принимающей стандарты оперативной памяти. JEDEC весьма неохотно сертифицирует новые частоты, а производители хотят заработать побольше денег, разгоняя у себя на заводах модули памяти, которые иначе можно было бы купить за меньшие деньги. Иными словами, зачастую они разгоняют память за твои же деньги. Так, несмотря на фразы про то, что вот-вот сертифицируют SDRAM PC166, а затем и PC200, последней официальной осталась частота в 133 МГц. Для DDR это была скорость DDR400. DDR2-800 долгое время была максимумом для второго поколения памяти с технологией DDR, но в ноябре прошлого года организация приняла дополнение к стандарту, узаконившее DDR2-1066, хотя уже очень многие разгоняли память до частот DDR2-1200 и выше. Для DDR3 максимумом на данный момент является DDR3-1600, хотя уже полным ходом идут разговоры про принятие DDR3-2000. Что ж, только время покажет, поддастся ли JEDEC на уговоры.

Категория: оперативная память | Просмотров: 804 | Добавил: sony127 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Хостинг от uCoz
Календарь
«  Февраль 2009  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
232425262728
Форма входа
Логин:
Пароль:
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0