Row of chips что это
Кратко об оперативной памяти: форм-факторы, частоты, тайминги
RAM — это кратковременная память вашего компьютера. Именно здесь ваш компьютер отслеживает программы и данные, которые вы используете прямо сейчас. Вы, наверное, уже знаете, что больше ОЗУ лучше, но, возможно, вы хотите установить больше ОЗУ сейчас.
Покупки для оперативной памяти могут быть запутанными, хотя. В чем разница между DDR3 и DDR4? DIMM и SO-DIMM? Есть ли разница между DRR3-1600 и PC3-12800? Важны ли задержка и время оперативной памяти?
Продолжайте читать для объяснений о различных видах RAM, как читать спецификации RAM, и как именно работает RAM.
Что такое оперативная память?
ОЗУ означает «Память с произвольным доступом». Он служит средним звеном между небольшим, сверхбыстрым кешем в вашем процессоре и большим, очень медленным хранилищем вашего жесткого диска или твердотельного накопителя (SSD). Ваша система использует оперативную память для временного хранения рабочих частей операционной системы и данных, которые ваши приложения активно используют. ОЗУ не является формой постоянного хранения.
Думайте о своем компьютере как о офисе. Жесткий диск — это шкаф в углу. Оперативная память похожа на всю офисную рабочую станцию, а кэш-память процессора — на рабочую область, где вы активно работаете с документом.
Чем больше оперативной памяти у вас есть, тем больше вещей вы можете иметь быстрый доступ в любое время. Точно так же, как большой стол может вместить на нем больше кусочков бумаги, не становясь грязным и громоздким (а также требуя больше поездок обратно в шкаф для реорганизации).
Однако, в отличие от офисного стола, ОЗУ не может выступать в качестве постоянного хранилища. Содержимое ОЗУ вашей системы теряется, как только вы выключаете питание. Потеря власти — это как чистка стола с каждого документа.
RAM обычно означает SDRAM
К сожалению, для сверхтонких и легких ноутбуков наблюдается растущая тенденция к тому, чтобы оперативная память припаивалась к материнской плате непосредственно в целях экономии места. Тем не менее, это жертвует модернизацией и ремонтопригодностью.
Форм-факторы оперативной памяти
По большей части оперативная память бывает двух размеров: DIMM (Dual In-Line Memory Module), который используется в настольных ПК и серверах, и SO-DIMM (Small Outline DIMM), который используется в ноутбуках и других компьютерах малого форм-фактора.
Хотя оба форм-фактора ОЗУ используют одну и ту же технологию и работают одинаково, вы не можете смешивать их. Вы не можете просто вставить DIMM-флешку в слот SO-DIMM, и наоборот (контакты и слоты не совпадают!).
Когда вы покупаете RAM, первое, что нужно понять, это ее форм-фактор. Ничто не имеет значения, если палка не подходит!
Что означает DDR?
Оперативная память, используемая на вашем компьютере, работает с использованием двойной скорости передачи данных (DDR). Оперативная память DDR означает, что две передачи происходят за такт. Новые типы ОЗУ являются обновленными версиями той же технологии, поэтому модули ОЗУ имеют метки DDR, DDR2, DDR3 и т.д.
DDR2
DDR2 — это самый старый вид оперативной памяти, с которым вы можете столкнуться сегодня. Он имеет 240 контактов (200 для SO-DIMM). DDR2 был хорошо и действительно заменен, но вы все равно можете купить его в ограниченном количестве, чтобы обновить старые машины. В противном случае DDR2 устареет.
DDR3
DDR3 был выпущен еще в 2007 году. Хотя он был официально заменен DDR4 в 2014 году, вы все равно найдете множество систем, использующих более старый стандарт RAM. Зачем? Потому что только в 2016 году (два года после запуска DDR4) системы с поддержкой DDR4 действительно набирали обороты. Кроме того, оперативная память DDR3 охватывает огромный диапазон процессоров: от сокета Intel LGA1366 до LGA1151, а также AMD AM3/AM3 + и FM1/2/2+. (Для Intel это от введения линейки Intel Core i7 в 2008 году до 7- го поколения Kaby Lake!)
Оперативная память DDR3 имеет такое же количество контактов, что и DDR2. Тем не менее, он работает с более низким напряжением и имеет более высокие тайминги (больше на таймингах оперативной памяти в данный момент), поэтому не совместимы. Кроме того, модули DDR3 SO-DIMM имеют 204 контакта по сравнению с 200 контактами DDR2.
DDR4
DDR4 появился на рынке в 2014 году, но еще не полностью контролировал рынок оперативной памяти. Длительный период исключительно высоких цен на оперативную память приостановил модернизацию многих пользователей. Но по мере снижения цен все больше людей переключаются, тем более что последние поколения процессоров AMD и Intel используют исключительно оперативную память DDR4. Это означает, что если вы хотите перейти на более мощный процессор, вам нужна новая материнская плата и новая оперативная память.
DDR4 еще больше понижает напряжение ОЗУ, с 1,5 В до 1,2 В, увеличивая число контактов до 288.
DDR5
DDR5 должен выйти на потребительские рынки в 2019 году. Но учитывая, сколько времени обычно занимает распространение нового поколения RAM, ожидайте услышать больше об этом в 2020 году. Производитель RAM, SK Hynix, ожидает, что DDR5 будет занимать 25% рынка в 2020 г. и 44% в 2021 г.
DDR5 продолжит дизайн с 288-контактным разъемом, хотя напряжение ОЗУ упадет до 1,1 В. Ожидается, что производительность оперативной памяти DDR5 удвоит самый быстрый стандарт предыдущего поколения DDR4. Например, SK Hynix раскрыл технические подробности модуля оперативной памяти DDR5-6400, максимально быстрый из всех возможных по стандарту DDR5.
RAM термины: тайминги, задержка и многое другое
Вы познакомились с SDRAM, DIMM и DDR. Но как насчет других длинных цепочек чисел в модели RAM? Что они имеют в виду? В чем измеряется ОЗУ? А что насчет ECC и Swap? Вот другие термины спецификации RAM, которые вы должны знать.
Число, соединенное после DDR, относится к числу мегатрансферов в секунду (МТ/с). Например, оперативная память DDR3-1600 работает на скорости 1600 МТ/с. ОЗУ DDR5-6400, о котором говорилось выше, будет работать со скоростью 6400 МТ/с — намного быстрее! Число в паре после ПК относится к теоретической пропускной способности в мегабайтах в секунду. Например, PC3-12800 работает со скоростью 12 800 МБ/с.
Разгон ОЗУ возможен так же, как разгон процессора или видеокарты. Разгон увеличивает пропускную способность оперативной памяти. Производители иногда продают предварительно разогнанную оперативную память, но вы можете разогнать ее самостоятельно. Просто убедитесь, что ваша материнская плата поддерживает более высокую тактовую частоту RAM!
Вы можете быть удивлены, можете ли вы смешивать модули оперативной памяти с разными тактовыми частотами. Ответ в том, что да, вы можете, но все они будут работать на тактовой частоте самого медленного модуля. Если вы хотите использовать более быструю оперативную память, не смешивайте ее со старыми, более медленными модулями. Теоретически вы можете смешивать бренды RAM, но это не рекомендуется. У вас больше шансов встретить синий экран смерти или других случайных сбоев, когда вы смешиваете марки RAM или разные тактовые частоты RAM.
Тайминг и задержка
Иногда вы увидите модули оперативной памяти с рядом цифр, например, 9-10-9-27. Эти цифры называются таймингами. Синхронизация ОЗУ — это измерение производительности модуля ОЗУ в наносекундах. Чем ниже цифры, тем быстрее ОЗУ реагирует на запросы.
Первое число (в примере 9) — это задержка CAS. Задержка CAS относится к числу тактовых циклов, необходимых для того, чтобы данные, запрошенные контроллером памяти, стали доступными для вывода данных.
Вы можете заметить, что DDR3 RAM обычно имеет более высокие тактовые номера, чем DDR2, а DDR4 обычно имеет более высокие тактовые номера, чем DDR3. Тем не менее, DDR4 быстрее, чем DDR3, который быстрее, чем DDR2. Странно, правда?
Мы можем объяснить это, используя DDR3 и DDR4 в качестве примеров.
Минимальная частота работы ОЗУ DDR3 составляет 533 МГц, что означает тактовую частоту 1/533000000 или 1,87 нс. При задержке CAS в 7 циклов общая задержка составляет 1,87 x 7 = 13,09 нс. («Нс» означает наносекунды.)
Принимая во внимание, что самая низкая скорость ОЗУ DDR4 составляет 800 МГц, что означает тактовую частоту 1/800000000, или 1,25 нс. Даже если он имеет более высокий CAS из 9 циклов, общая задержка составляет 1,25 x 9 = 11,25 нс. Вот почему это быстрее!
ОЗУ с исправлением ошибок (ECC) — это особый тип модуля памяти, который предназначен для обнаружения и исправления повреждения данных. ECC ram используется на серверах, где ошибки в критически важных данных могут быть катастрофическими. Например, личная или финансовая информация хранится в оперативной памяти при манипулировании связанной базой данных.
Бытовые материнские платы и процессоры обычно не поддерживают ECC-совместимую оперативную память. Если вы не создаете сервер, который специально требует ОЗУ ECC, вы должны держаться подальше от него.
Сколько оперативной памяти вам нужно?
Давно прошли те времена, когда «640K должно хватить на всех». В мире, где смартфоны регулярно поставляются с 4 ГБ ОЗУ или более, а браузеры, такие как Google Chrome, играют быстро и свободно со своим распределением памяти, экономность ОЗУ — вещь прошлое. Средний объем установленной оперативной памяти также увеличивается на всех типах оборудования.
Для большинства людей 4 ГБ — это минимальный объем оперативной памяти, необходимый для компьютера общего пользования. Операционные системы тоже имеют разные спецификации. Например, вы можете запустить Windows 10 только на 1 ГБ ОЗУ, но ваш пользовательский опыт будет вялым. И наоборот, многочисленные дистрибутивы Linux работают очень хорошо с меньшими объемами оперативной памяти.
Если вы обнаружите, что одновременно открыты шесть документов Word, не можете заставить себя закрыть эти 60 вкладок в Google Chrome, возможно, вам понадобится как минимум 8 ГБ ОЗУ. То же самое происходит, если вы хотите использовать виртуальную машину.
16 ГБ ОЗУ должно превышать потребности большинства. Но если вы продолжите работу утилит в фоновом режиме, с множеством вкладок браузера и всего остального, вы по достоинству оцените дополнительную емкость ОЗУ. Очень немногие люди нуждаются в 32 ГБ ОЗУ, но, как говорится, чем больше, тем больше.
Обновление ОЗУ, безусловно, является одним из самых простых способов мгновенного повышения производительности. максимально повысить производительность.
Понимание об оперативной памяти
Теперь вы знаете разницу между оперативной памятью DDR2, DDR3 и DDR4. Вы можете сказать DIMM от SO-DIMM, и вы знаете, как определить RAM с более высокими скоростями передачи и более высокой пропускной способностью. На этом этапе вы, по сути, являетесь экспертом в области ОЗУ, поэтому в следующий раз вы не будете испытывать перегрузку, пытаясь купить больше ОЗУ или совершенно новую систему.
Действительно, если у вас правильный форм-фактор и соответствующее поколение ОЗУ, вы не ошибетесь. И если есть сомнения, больше ОЗУ лучше, чем быстрее ОЗУ важнее.
Тайминги оперативной памяти: разбираемся, какие значения лучше
Что означают эти непонятные цифры на оперативной памяти для ПК? Ведь тайминги напрямую влияют на ее быстродействие, но их величина — это вовсе не объем и не скорость. Рассказываем понятным языком и объясняем, какие параметры лучше.
При выборе оперативной памяти для ПК многие пользователи сталкиваются с вопросом изучения характеристик чипов, в том числе рабочих частот и таймингов. Но если с первыми все понятно — чем они выше, тем быстрее память, то со вторыми не все так просто. Мы расскажем, для чего нужен этот параметр и как выбрать планку с оптимальными значениями таймингов.
Что влияет на скоростные параметры ОЗУ
От скоростных показателей оперативной памяти зависит как быстро будет осуществляться обмен данными между процессором и жестким или твердотельным диском и системой. Чем выше частота работы чипов, тем больше операций чтения/записи она может выполнить в единицу времени. Конечно, от объема оперативной памяти также зависит общее быстродействие ПК, но лишь в определенных программах.
Это может быть интересно:
Характеристики памяти
Возьмем конкретный пример: планка оперативной памяти DDR3 1600 RAM имеет в обозначениях еще и такие характеристики, как PC3 12800, а у модуля DDR4 2400 RAM указано PC4 19200. Что это означает? Первая цифра указывает на частоту работы памяти в МГц, то вторая связана с битами:
1 байт = 8 бит
Из этого можно вычислить, что DDR3 с частотой 1600 МГц сможет обработать 12800 МБ/сек. Аналогично этому DDR4 2400 сможет пропустить через себя данные со скоростью 19200 МБ/сек. Таким образом, со скоростью обработки данных разобрались.
Теперь плавно переходим к таймингам. Эти цифры также указывают на наклейках на оперативной памяти в виде счетверённых через дефис цифр, например, 7-7-7-24, 8-8-8-24 и т.д. Эти цифры обозначают, какой промежуток времени (задержка) необходим модулю RAM для доступа к битам данных при выборке из таблицы массивов памяти.
Эта задержка характеризует, какое количество тактовых импульсов необходимо для считывания данных из ячеек памяти для 4-х таймингов. Самая важная из четырех цифр — первая, и на этикетке может быть написан только она.
Это может быть интересно:
Поэтому в этих характеристиках действует обратный принцип: чем меньше числа, тем выше скорость. А меньшая задержка обеспечит возможность быстрее считать или записать данные в ячейку памяти, а затем достигнуть процессора для обработки.
Тайминги замеряют период ожидания (CL, CAS Latency, где CAS — Acess Strobe) чипа памяти, пока он обрабатывает текущий процесс. Т.е. это время между получением команды на чтение и ее выполнением.
Со следующими двумя цифрами все несколько сложнее. Вторая цифра в строке таймингов (RAS-CAS) является ничем иным, как отрезком времени между получением команды «Active» и выполнением поступающей после нее команды на чтение или запись. Здесь все так же — чем меньше, тем лучше.
Третья цифра, RAS Precharge — время, которое проходит между завершением обработки одной строки и переходом к другой.
Последняя цифра демонстрирует параметр памяти Row Active. Он определяет задержку, в течение которой активна одна строка в ячейке.
Какие тайминги лучше выбирать
Допустим, вы покупаете для своего ноутбука комплект оперативной памяти из двух планок DDR. В этом случае тайминги будут одинаковые у обоих модулей, что определяет их стабильную работу. Что касается величины, то определяющей является первая цифра, обозначаемая, как CL-9. А значения 9-9-9-24 можно охарактеризовать, как средние по быстродействию.
Вы также можете подобрать себе оперативную память в качестве апгрейда. Здесь также нужно придерживаться правила равных таймингов и не допускать, чтобы какой-то из них, например, опережал другой почти на треть цикла.
Если же вы намерены установить на ПК самую быструю память, что следует учесть, что, например, тайминги 4-4-4-8, 5-5-5-15 и 7-7-7-21 могут обеспечить очень быстрый доступ к данным, но процессор и материнская плата не смогут этим воспользоваться. При этом важно, чтобы в материнской плате была возможность вручную установить тайминги для ОЗУ.
Как узнать тайминги оперативной памяти
Для этих целей не обязательно вскрывать корпус и вытаскивать из слотов планки оперативной памяти. Специальная бесплатная утилита CPU-Z позволит быстро узнать нужные цифры таймингов. Скачать ее можно с сайта программы.
Как посчитать тайминг самому
Для вычисления таймингов самостоятельно можно использовать довольно простую формулу:
Время задержки (сек) = 1 / Частота передачи (Гц)
Таким образом, из скриншота с CPU-Z можно высчитать, что модуль DDR3, работающий с частотой 400 МГц (половина декларируемого производителем значения, т.е. 800 МГц) будет выдавать примерно:
1 / 400 000 000 = 2,5 нсек (наносекунд)
периода полного цикла (время такта). А теперь считаем задержку для обоих вариантов, представленных на рисунках. При таймингах CL-11 модуль будет выдавать задержки периодом 2,5 х 11 = 27,5 нсек. В CPU-Z это значение показано как 28. Как видно из формулы, чем ниже каждый из указываемых параметров, тем быстрее будет работать ваша оперативная память.
Как вручную задать тайминги в BIOS
Такая возможность есть не в любой материнской плате — лишь в оверклокерских модификациях. Вы можете попробовать выставить тайминги вручную из предлагаемых системой значений, после чего нужно внимательно следить за стабильностью работы ПК под нагрузкой. Если в БИОС специальных настроек не предусмотрено, то стоит смириться с теми, которые установлены по умолчанию.
Читайте также:
Фото: компании-производители
Современная оперативная память (RAM FAQ 1.01)
SDRAM: Определение
Аббревиатура SDRAM расшифровывается как Synchronous Dynamic Random Access Memory синхронная динамическая память с произвольным доступом. Остановимся подробнее на каждом из этих определений. Под «синхронностью» обычно понимается строгая привязка управляющих сигналов и временных диаграмм функционирования памяти к частоте системной шины. Вообще говоря, в настоящее время изначальный смысл понятия синхронности становится несколько условным. Во-первых, частота шины памяти может отличаться от частоты системной шины (в качестве примера можно привести уже сравнительно давно существующий «асинхронный» режим работы памяти DDR SDRAM на платформах AMD K7 с чипсетами VIA KT333/400, в которых частоты системной шины процессора и шины памяти могут соотноситься как 133/166 или 166/200 МГц). Во-вторых, ныне существуют системы, в которых само понятие «системной шины» становится условным речь идет о платформах класса AMD Athlon 64 с интегрированным в процессор контроллером памяти. Частота «системной шины» (под которой в данном случае понимается не шина HyperTransport для обмена данными с периферией, а непосредственно «шина» тактового генератора) в этих платформах является лишь опорной частотой, которую процессор умножает на заданный коэффициент для получения собственной частоты. При этом контроллер памяти всегда функционирует на той же частоте, что и сам процессор, а частота шины памяти задается целым делителем, который может не совпадать с первоначальным коэффициентом умножения частоты «системной шины». Так, например, режиму DDR-333 на процессоре AMD Athlon 64 3200+ будут соответствовать множитель частоты «системной шины» 10 (частота процессора и контроллера памяти 2000 МГц) и делитель частоты памяти 12 (частота шины памяти 166.7 МГц). Таким образом, под «синхронной» операцией SDRAM в настоящее время следует понимать строгую привязку временных интервалов отправки команд и данных по соответствующим интерфейсам устройства памяти к частоте шины памяти (проще говоря, все операции в ОЗУ совершаются строго по фронту/срезу синхросигнала интерфейса памяти). Так, отправка команд и чтение/запись данных может осуществляться на каждом такте шины памяти (по положительному перепаду «фронту» синхросигнала; в случае памяти DDR/DDR2 передача данных происходит как по «фронту», так и по отрицательному перепаду «срезу» синхросигнала), но не по произвольным временным интервалам (как это осуществлялось в асинхронной DRAM).
Понятие «динамической» памяти, DRAM, относится ко всем типам оперативной памяти, начиная с самой древней, «обычной» асинхронной динамической памяти и заканчивая современной DDR2. Этот термин вводится в противоположность понятия «статической» памяти (SRAM) и означает, что содержимое каждой ячейки памяти периодически необходимо обновлять (ввиду особенности ее конструкции, продиктованной экономическими соображениями). В то же время, статическая память, характеризующаяся более сложной и более дорогой конструкцией ячейки и применяемая в качестве кэш-памяти в процессорах (а ранее и на материнских платах), свободна от циклов регенерации, т.к. в ее основе лежит не емкость (динамическая составляющая), а триггер (статическая составляющая).
Наконец, стоит также упомянуть о «памяти с произвольным доступом» Random Access Memory, RAM. Традиционно, это понятие противопоставляется устройствам «памяти только на чтение» Read-Only Memory, ROM. Тем не менее, противопоставление это не совсем верно, т.к. из него можно сделать вывод, что память типа ROM не является памятью с произвольным доступом. Это неверно, потому как доступ к устройствам ROM может осуществляться в произвольном, а не строго последовательном порядке. И на самом деле, наименование «RAM» изначально противопоставлялось ранним типам памяти, в которых операции чтения/записи могли осуществляться только в последовательном порядке. В связи с этим, более правильно назначение и принцип работы оперативной памяти отражает аббревиатура «RWM» (Read-Write Memory), которая, тем не менее, встречается намного реже. Заметим, что русскоязычным сокращениям RAM и ROM ОЗУ (оперативное запоминающее устройство) и ПЗУ (постоянное запоминающее устройство), соответственно, подобная путаница не присуща.
Микросхемы SDRAM: Физическая организация и принцип работы
Общий принцип организации и функционирования микросхем динамической памяти (DRAM) практически един для всех ее типов как первоначальной асинхронной, так и современной синхронной. Исключение составляют разве что экзотические варианты, тем не менее, существовавшие еще до появления SDRAM, вроде Direct Rambus DRAM (DRDRAM). Массив памяти DRAM можно рассматривать как матрицу (двумерный массив) элементов (строго говоря, это понятие относится к логическому уровню организации микросхемы памяти, рассмотренному в следующем разделе, но его необходимо ввести здесь для наглядности), каждый из которых содержит одну или несколько физических ячеек (в зависимости от конфигурации микросхемы), способных вмещать элементарную единицу информации один бит данных. Ячейки представляют собой сочетание транзистора (ключа) и конденсатора (запоминающего элемента). Доступ к элементам матрицы осуществляется с помощью декодеров адреса строки и адреса столбца, которые управляются сигналами RAS# (сигнал выбора строки Row Access Strobe) и CAS# (сигнал выбора столбца Column Access Strobe).
Из соображений минимизации размера упаковки микросхемы, адреса строк и столбцов передаются по одним и тем же адресным линиям микросхемы иными словами, говорят о мультиплексировании адресов строк и столбцов (упомянутые выше отличия в общих принципах функционирования микросхем DRDRAM от «обычных» синхронных/асинхронных DRAM проявляются, в частности, здесь в этом типе микросхем памяти адреса строк и столбцов передаются по разным физическим интерфейсам). Так, например, 22-разрядный полный адрес ячейки может разделяться на два 11-разрядных адреса (строки и столбца), которые последовательно (через определенный интервал времени, см. раздел «Тайминги памяти») подаются на адресные линии микросхемы памяти. Одновременно со второй частью адреса (адреса столбца) по единому командно-адресному интерфейсу микросхемы SDRAM подается соответствующая команда (чтения или записи данных). Внутри микросхемы памяти адреса строки и столбца временно сохраняются в буферах (защелках) адреса строки и адреса столбца, соответственно.
Важно заметить, что с динамической матрицей памяти связан особый буфер статической природы, именуемый «усилителем уровня» (SenseAmp), размер которого равен размеру одной строки, необходимый для осуществления операций чтения и регенерации данных, содержащихся в ячейках памяти. Поскольку последние физически представляют собой конденсаторы, разряжающиеся при совершении каждой операции чтения, усилитель уровня обязан восстановить данные, хранящиеся в ячейке, после завершения цикла доступа (более подробно участие усилителя уровня в цикле чтения данных из микросхемы памяти рассмотрено ниже).
Кроме того, поскольку конденсаторы со временем теряют свой заряд (независимо от операций чтения), для предотвращения потери данных необходимо периодически обновлять содержимое ячеек. В современных типах памяти, которые поддерживают режимы автоматической регенерации (в «пробужденном» состоянии) и саморегенерации (в «спящем» состоянии), обычно это является задачей внутреннего контроллера регенерации, расположенного непосредственно в микросхеме памяти.
Схема обращения к ячейке памяти в самом общем случае может быть представлена следующим образом:
1. На адресные линии микросхемы памяти подается адрес строки. Наряду с этим подается сигнал RAS#, который помещает адрес в буфер (защелку) адреса строки.
2. После стабилизации сигнала RAS#, декодер адреса строки выбирает нужную строку, и ее содержимое перемещается в усилитель уровня (при этом логическое состояние строки массива инвертируется).
3. На адресные линии микросхемы памяти подается адрес столбца вместе с подачей сигнала CAS#, помещающего адрес в буфер (защелку) адреса столбца.
4. Поскольку сигнал CAS# также служит сигналом вывода данных, по мере его стабилизации усилитель уровня отправляет выбранные (соответствующие адресу столбца) данные в буфер вывода.
5. Сигналы CAS# и RAS# последовательно дезактивируются, что позволяет возобновить цикл доступа (по прошествии промежутка времени, в течение которого данные из усилителя уровня возвращаются обратно в массив ячеек строки, восстанавливая его прежнее логическое состояние).
Так выглядела реальная схема доступа к ячейке DRAM в самом первоначальном ее варианте, реализованном еще до появления первых реально используемых микросхем/модулей асинхронной памяти типа FPM (Fast Page Mode) DRAM. Тем не менее, нетрудно заметить, что эта схема является достаточно неоптимальной. Действительно, если нам требуется считать содержимое не одной, а сразу нескольких подряд расположенных ячеек, отличающихся только адресом столбца, но не адресом строки, то нет необходимости каждый раз подавать сигнал RAS# с одним и тем же адресом строки (т.е. выполнять шаги 1-2). Вместо этого, достаточно удерживать сигнал RAS# активным на протяжении промежутка времени, соответствующего, например, четырем последовательным циклам чтения (шаги 3-4, с последующей дезактивацией CAS#), после чего дезактивировать сигнал RAS#. Именно такая схема применялась в асинхронной памяти типа FPM DRAM и более поздней EDO (Enhanced Data Output) DRAM. Последняя отличалась опережающей подачей адреса следующего столбца, что позволяло достичь меньших задержек при операциях чтения.
В современных микросхемах SDRAM схема обращения к ячейкам памяти выглядит аналогично. Далее, в связи с обсуждением задержек при доступе в память (таймингов памяти), мы рассмотрим ее более подробно.
Микросхемы SDRAM: Логическая организация
А пока перейдем к рассмотрению организации микросхем памяти SDRAM на логическом уровне. Как уже было сказано выше, микросхема DRAM, фактически, представляет собой двумерный массив (матрицу) элементов, состоящих из одного или нескольких элементарных физических ячеек. Очевидно, что главной характеристикой этого массива является его емкость, выражаемая в количестве бит информации, которую он способен вместить. Часто можно встретить понятия «256-Мбит», «512-Мбит» микросхем памяти речь здесь идет именно об этом параметре. Однако составить эту емкость можно разными способами мы говорим сейчас не о количестве строк и столбцов, но о размерности, или «вместимости» индивидуального элемента. Последняя прямо связана с количеством линий данных, т.е. шириной внешней шины данных микросхемы памяти (но не обязательно с коэффициентом пропорциональности в единицу, что мы увидим ниже, при рассмотрении отличий памяти типа DDR и DDR2 SDRAM от «обычной» SDRAM). Ширина шины данных самых первых микросхем памяти составляла всего 1 бит, в настоящее же время наиболее часто встречаются 4-, 8- и 16- (реже 32-) битные микросхемы памяти. Таким образом, микросхему памяти емкостью 512 Мбит можно составить, например, из 128М (134 217 728) 4-битных элементов, 64М (67 108 864) 8-битных элементов или 32М (33 554 432) 16-битных элементов соответствующие конфигурации записываются как «128Mx4», «64Mx8» и «32Mx16». Первая из этих цифр именуется глубиной микросхемы памяти (безразмерная величина), вторая шириной (выраженная в битах).
Существенная отличительная особенность микросхем SDRAM от микросхем более ранних типов DRAM заключается в разбиении массива данных на несколько логических банков (как минимум 2, обычно 4). Не следует путать это понятие с понятием «физического банка» (называемого также «ранком» (rank) памяти), определенным для модуля, но не микросхемы памяти его мы рассмотрим далее. Сейчас лишь отметим, что внешняя шина данных каждого логического банка (в отличие от физического, который составляется из нескольких микросхем памяти для «заполнения» шины данных контроллера памяти) характеризуется той же разрядностью (шириной), что и разрядность (ширина) внешней шины данных микросхемы памяти в целом (x4, x8 или x16). Иными словами, логическое разделение массива микросхемы на банки осуществляется на уровне количества элементов в массиве, но не разрядности элементов. Таким образом, рассмотренные выше реальные примеры логической организации 512-Мбит микросхемы при ее «разбиении» на 4 банка могут быть записаны как 32Mx4x4 банка, 16Mx8x4 банка и 8Mx16x4 банка, соответственно. Тем не менее, намного чаще на маркировке микросхем памяти (либо ее расшифровке в технической документации) встречаются именно конфигурации «полной» емкости, без учета ее разделения на отдельные логические банки, тогда как подробное описание организации микросхемы (количество банков, строк и столбцов, ширину внешней шины данных банка) можно встретить лишь в подробной технической документации на данный вид микросхем SDRAM.
Разбиение массива памяти SDRAM на банки было введено, главным образом, из соображений производительности (точнее, минимизации системных задержек т.е. задержек поступления данных в систему). В самом простом и пока достаточном изложении, можно сказать, что после осуществления любой операции со строкой памяти, после дезактивации сигнала RAS#, требуется определенное время для осуществления ее «подзарядки». И преимущество «многобанковых» микросхем SDRAM заключается в том, что можно обращаться к строке одного банка, пока строка другого банка находится на «подзарядке». Можно расположить данные в памяти и организовать к ним доступ таким образом, что далее будут запрашиваться данные из второго банка, уже «подзаряженного» и готового к работе. В этот момент вполне естественно «подзаряжать» первый банк, и так далее. Такая схема доступа к памяти называется «доступом с чередованием банков» (Bank Interleave).
Модули SDRAM: Организация
Основные параметры логической организации микросхем памяти емкость, глубину и ширину, можно распространить и на модули памяти типа SDRAM. Понятие емкости (или объема) модуля очевидно это максимальный объем информации, который данный модуль способен в себя вместить. Теоретически он может выражаться и в битах, однако общепринятой «потребительской» характеристикой модуля памяти является его объем (емкость), выраженный в байтах точнее, учитывая современный уровень используемых объемов памяти в мега-, или даже гигабайтах.
Ширина модуля это разрядность его интерфейса шины данных, которая соответствует разрядности шины данных контроллера памяти и для всех современных типов контроллеров памяти SDRAM (SDR, DDR и DDR2) составляет 64 бита. Таким образом, все современные модули характеризуются шириной интерфейса шины данных «x64». Каким же образом достигается соответствие между 64-битная шириной шины данных контроллера памяти (64-битным интерфейсом модуля памяти), когда типичная ширина внешней шины данных микросхем памяти обычно составляет всего 4, 8 или 16 бит? Ответ очень прост интерфейс шины данных модуля составляется простым последовательным «слиянием» внешних шин данных индивидуальных микросхем модуля памяти. Такое «заполнение» шины данных контроллера памяти принято называть составлением физического банка памяти. Таким образом, для составления одного физического банка 64-разрядного модуля памяти SDRAM необходимо и достаточно наличие 16 микросхем x4, 8 микросхем x8 (это наиболее часто встречаемый вариант) или 4 микросхем x16.
Оставшийся параметр глубина модуля, являющийся характеристикой емкости (вместимости) модуля памяти, выраженной в количестве «слов» определенной ширины, вычисляется, как нетрудно догадаться, простым делением полного объема модуля (выраженного в битах) на его ширину (разрядность внешней шины данных, также выраженную в битах). Так, типичный 512-МБ модуль памяти SDR/DDR/DDR2 SDRAM имеет глубину, равную 512МБайт * 8 (бит/байт) / 64 бита = 64М. Соответственно, произведение ширины на глубину дает полную емкость модуля и определяет его организацию, или геометрию, которая в данном примере записывается в виде «64Мx64».
Возвращаясь к физическим банкам модуля памяти, заметим, что при использовании достаточно «широких» микросхем x8 или x16 ничего не мешает поместить и большее их количество, соответствующее не одному, а двум физическим банкам 16 микросхем x8 или 8 микросхем x16. Так различают однобанковые (или «одноранковые», single-rank) и двухбанковые («двухранковые», dual-rank) модули. Двухбанковые модули памяти наиболее часто представлены конфигурацией «16 микросхем x8», при этом один из физических банков (первые 8 микросхем) расположен с лицевой стороны модуля, а второй из них (оставшиеся 8 микросхем) с тыльной. Наличие более одного физического банка в модуле памяти нельзя считать определенным преимуществом, т.к. может потребовать увеличения задержек командного интерфейса, которые рассмотрены в соответствующем разделе.
Модули памяти: Микросхема SPD
Еще до появления первого типа синхронной динамической оперативной памяти SDR SDRAM стандартом JEDEC предусматривается, что на каждом модуле памяти должна присутствовать небольшая специализированная микросхема ПЗУ, именуемая микросхемой «последовательного обнаружения присутствия» (Serial Presence Detect, SPD). Эта микросхема содержит основную информацию о типе и конфигурации модуля, временных задержках (таймингах, см. следующий раздел), которых необходимо придерживаться при выполнении той или иной операции на уровне микросхем памяти, а также прочую информацию, включающую в себя код производителя модуля, его серийный номер, дату изготовления и т.п. Последняя ревизия стандарта SPD модулей памяти DDR2 также включает в себя данные о температурном режиме функционирования модулей, которая может использоваться, например, для поддержания оптимального температурного режима посредством управления синхронизацией (регулированием скважности импульсов синхросигнала) памяти (так называемый «троттлинг памяти», DRAM Throttle). Более подробную информацию о микросхеме SPD и о том, как выглядит ее содержимое можно получить в нашей статье «SPD схема последовательного детектирования», а также в серии наших исследований модулей оперативной памяти.
Тайминги памяти
Немаловажной категорией характеристик микросхем/модулей памяти являются «тайминги памяти» понятие, наверняка так или иначе знакомое каждому пользователю ПК. Понятие «таймингов» тесно связано с задержками, возникающими при любых операциях с содержимым ячеек памяти в связи со вполне конечной скоростью функционирования устройств SDRAM, как и любых других интегральных схем. Задержки, возникающие при доступе в память, также принято называть «латентностью» памяти (этот термин не совсем корректен, и пришел в обиход с буквальным переводом термина latency, означающего «задержка»).
В этом разделе мы рассмотрим, где именно возникают задержки при операциях с данными содержимым микросхем памяти, и как они связаны с важнейшими параметрами таймингов памяти. Поскольку в настоящем руководстве мы рассматриваем модули памяти класса SDRAM (SDR, DDR и DDR2), ниже мы рассмотрим конкретную схему доступа к данным, содержащимся в ячейках памяти микросхемы SDRAM. В этом разделе мы также рассмотрим несколько иную категорию таймингов, связанных не с доступом к данным, но с выбором номера физического банка для маршрутизации команд по командному интерфейсу модулей памяти класса SDRAM так называемые «задержки командного интерфейса».
Схема доступа к данным микросхемы SDRAM
1. Активизация строки
Перед осуществлением любой операции с данными, содержащимися в определенном банке микросхемы SDRAM (чтения команда READ, или записи команда WRITE), необходимо «активизировать» соответствующую строку в соответствующем банке. С этой целью, на микросхему подается команда активизации (ACTIVATE) вместе с номером банка (линии BA0-BA1 для 4-банковой микросхемы) и адресом строки (адресные линии A0-A12, реальное количество которых зависит от количества строк в банке, в рассматриваемом примере 512-Мбит микросхемы памяти SDRAM их число составляет 2 13 = 8192).
Активизированная строка остается открытой (доступной) для последующих операций доступа до поступления команды подзарядки банка (PRECHARGE), по сути, закрывающей данную строку. Минимальный период «активности» строки от момента ее активации до момента поступления команды подзарядки, определяется минимальным временем активности строки (Row Active Time, tRAS).
Повторная активизация какой-либо другой строки того же банка не может быть осуществлена до тех пор, пока предыдущая строка этого банка остается открытой (т.к. усилитель уровня, содержащий буфер данных размером в одну строку банка и описанный в разделе «Микросхемы SDRAM: Физическая организация и принцип работы», является общим для всех строк данного банка микросхемы SDRAM). Таким образом, минимальный промежуток времени между активизацией двух различных строк одного и того же банка определяется минимальным временем цикла строки (Row Cycle Time, tRC).
В то же время, после активизации определенной строки определенного банка микросхеме SDRAM ничего не мешает активизировать какую-либо другую строку другого банка (в этом и заключается рассмотренное выше преимущество «многобанковой» структуры микросхем SDRAM) на следующем такте шины памяти. Тем не менее, в реальных условиях производителями устройств SDRAM обычно здесь также умышленно вводится дополнительная задержка, именуемая «задержкой от активации строки до активации строки» (Row-to-Row Delay, tRRD). Причины введения этой задержки не связаны с функционированием микросхем памяти как таковых и являются чисто электрическими операция активизации строки потребляет весьма значительное количество электрического тока, в связи с чем частое их осуществление может приводить к нежелательным избыточным нагрузкам устройства по току.
2. Чтение/запись данных
Следующий временной параметр функционирования устройств памяти возникает в связи с тем, что активизация строки памяти сама по себе требует определенного времени. В связи с этим, последующие (после ACTIVATE) команды чтения (READ) или записи (WRITE) данных не могут быть поданы на следующем такте шины памяти, а лишь спустя определенный временной интервал, называемый «задержкой между подачей адреса строки и столбца» (RAS#-to-CAS# Delay, tRCD).
Итак, после прошествия интервала времени, равного tRCD, при чтении данных в микросхему памяти подается команда READ вместе с номером банка (предварительно активизированного командой ACTIVATE) и адресом столбца. Устройства памяти типа SDRAM ориентированы на чтение и запись данных в пакетном (Burst) режиме. Это означает, что подача всего одной команды READ (WRITE) приведет к считыванию из ячеек (записыванию в ячейки) не одного, а сразу нескольких подряд расположенных элементов, или «слов» данных (разрядность каждого из которых равна ширине внешней шины данных микросхемы например, 8 бит). Количество элементов данных, считываемых одной командой READ или записываемых одной командой WRITE, называется «длиной пакета» (Burst Length) и обычно составляет 2, 4 или 8 элементов (за исключением экзотического случая передачи целой строки (страницы) «Full-Page Burst», когда необходимо дополнительно использовать специальную команду BURST TERMINATE для прерывания сверхдлинной пакетной передачи данных). Заметим, что для микросхем памяти типа DDR и DDR2 параметр Burst Length не может принимать значение меньше 2 и 4 элементов, соответственно причину этого мы рассмотрим ниже, в связи с обсуждением различий в реализации устройств памяти SDR/DDR/DDR2 SDRAM.
Возвращаясь к чтению данных, заметим, что существует две разновидности команды чтения. Первая из них является «обычным» чтением (READ), вторая называется «чтением с автоматической подзарядкой» (Read with Auto-Precharge, «RD+AP»). Последняя отличается тем, что после завершения пакетной передачи данных по шине данных микросхемы автоматически будет подана команда подзарядки строки (PRECHARGE), тогда как в первом случае выбранная строка микросхемы памяти останется «открытой» для осуществления дальнейших операций.
После подачи команды READ, первая порция данных оказывается доступной не сразу, а с задержкой в несколько тактов шины памяти, в течение которой данные, считанные из усилителя уровня, синхронизируются и передаются на внешние выводы микросхемы. Задержка между подачей команды чтения и фактическим «появлением» данных на шине считается наиболее важной и именуется пресловутой «задержкой сигнала CAS#» (CAS# Latency, tCL). Последующие порции данных (в соответствии с длиной передаваемого пакета) оказываются доступными без каких-либо дополнительных задержек, на каждом последующем такте шины памяти (по 1 элементу за такт для устройств SDR, по 2 элемента в случае устройств DDR/DDR2).
Операции записи данных осуществляются аналогичным образом. Точно также существуют две разновидности команд записи простая запись данных (WRITE) и запись с последующей автоматической подзарядкой строки (Write with Auto-Precharge, «WR+AP»). Точно также при подаче команды WRITE/WR+AP на микросхему памяти подаются номер банка и адрес столбца. Наконец, точно также запись данных осуществляется «пакетным» образом. Отличия операции записи от операции чтения следующие. Во-первых, первую порцию данных, подлежащих записи, необходимо подать по шине данных одновременно с подачей по адресной шине команды WRITE/WR+AP, номера банка и адреса столбца, а последующие порции, количество которых определяется длиной пакета на каждом последующем такте шины памяти. Во-вторых, вместо «задержки сигнала CAS#» (tCL) важной здесь является иная характеристика, именуемая «периодом восстановления после записи» (Write Recovery Time, tWR). Эта величина определяет минимальный промежуток времени между приемом последней порции данных, подлежащих записи, и готовности строки памяти к ее закрытию с помощью команды PRECHARGE. Если вместо закрытия строки требуется последующее считывание данных из той же самой открытой строки, то приобретает важность другая задержка, именуемая «задержкой между операциями записи и чтения» (Write-to-Read Delay, tWTR).
3. Подзарядка строки
Цикл чтения/записи данных в строки памяти, который в общем случае можно обозначить «циклом доступа к строке памяти», завершается закрытием открытой строки банка с помощью команды подзарядки строки PRECHARGE (которая, как мы уже отмечали выше, может быть «автоматической», т.е. являться составной частью команд «RD+AP» или «WR+AP»). Последующий доступ к этому банку микросхемы становится возможным не сразу, а по прошествию интервала времени, называемого «временем подзарядки строки» (Row Precharge Time, tRP). За этот период времени осуществляется собственно операция «подзарядки», т.е. возвращения элементов данных, соответствующих всем столбцам данной строки с усилителя уровня обратно в ячейки строки памяти.
Соотношения между таймингами
В заключение этой части, посвященной задержкам при доступе к данным, рассмотрим основные соотношения между важнейшими параметрами таймингов на примере более простых операций чтения данных. Как мы рассмотрели выше, в самом простейшем и самом общем случае — для пакетного считывания заданного количества данных (2, 4 или 8 элементов) необходимо осуществить следующие операции:
1) активизировать строку в банке памяти с помощью команды ACTIVATE;
2) подать команду чтения данных READ;
3) считать данные, поступающие на внешнюю шину данных микросхемы;
4) закрыть строку с помощью команды подзарядки строки PRECHARGE (как вариант, это делается автоматически, если на втором шаге использовать команду «RD+AP»).
Временной промежуток между первой и второй операцией составляет «задержку между RAS# и CAS#» (tRCD), между второй и третьей — «задержку CAS#» (tCL). Промежуток времени между третьей и четвертой операциями зависит от длины передаваемого пакета. Строго говоря, в тактах шины памяти он равен длине передаваемого пакета (2, 4 или 8), поделенного на количество элементов данных, передаваемых по внешней шине за один ее такт — 1 для устройств типа SDR, 2 для устройств типа DDR. Условно назовем эту величину «tBL».
Важно заметить, что микросхемы SDRAM позволяют осуществлять третью и четвертую операции в некотором смысле «параллельно». Чтобы быть точным команду подзарядки строки PRECHARGE можно подавать за некоторое количество тактов x до наступления того момента, на котором происходит выдача последнего элемента данных запрашиваемого пакета, не опасаясь при этом возникновения ситуации «обрыва» передаваемого пакета (последняя возникнет, если команду PRECHARGE подать после команды READ с временным промежутком, меньшим x). Не вдаваясь в подробности, отметим, что этот промежуток времени составляет величину, равную величине задержки сигнала CAS# за вычетом единицы (x = tCL — 1).
Наконец, промежуток времени между четвертой операцией и последующим повтором первой операции цикла составляет «время подзарядки строки» (tRP).
В то же время, минимальному времени активности строки (от подачи команды ACTIVATE до подачи команды PRECHARGE, tRAS), по его определению, как раз отвечает промежуток времени между началом первой и началом четвертой операции. Отсюда вытекает первое важное соотношение между таймингами памяти:
где tRCD время выполнения первой операции, tCL второй, (tBL — (tCL — 1)) третьей, наконец, вычитание единицы производится вследствие того, что период tRAS не включает в себя такт, на котором осуществляется подача команды PRECHARGE. Сокращая это выражение, получаем:
Достаточно поразительный вывод, вытекающий из детального рассмотрения схемы доступа к данным, содержащимся в памяти типа SDRAM, заключается в том, что минимальное значение tRAS не зависит(!) от величины задержки CAS#, tCL. Зависимость первого от последнего достаточно распространенное заблуждение, довольно часто встречающееся в различных руководствах по оперативной памяти.
В качестве примера первого соотношения, рассмотрим типичную высокоскоростную память типа DDR с величинами задержек (tCL-tRCD-tRP) 2-2-2. При минимальной длине пакета BL = 2 (минимально возможной для DDR) необходимо затратить не менее 1 такта шины памяти для передачи пакета данных. Таким образом, в этом случае минимальное значение tRAS оказывается равным 3 (столь малое значение tRAS не позволяет выставить подавляющее большинство контроллеров памяти). Передача более длинных пакетов, состоящих из 4 элементов (BL = 4, tBL = 2), увеличивает это значение до 4 тактов, наконец, для передачи максимального по длине 8-элементного пакета (BL = 8, tBL = 4) требуемое минимальное значение tRAS составляет 6 тактов. Отсюда следует, что, поскольку большинство контроллеров памяти не позволяют указать значение tRAS n n-prefetch» всегда соответствует минимальная величина Burst Length, равная 2 n (n = 1 соответствует DDR; n = 2 DDR2; n = 3 грядущей DDR3).