Сегодня мы поговорим о наиболее точном определении таймингов и подтаймингов. Большинство статей в сети обладают ошибками и неточностями, а в очень достойных материалах не всегда рассмотрены все тайминги. Мы же постараемся восполнить этот пробел и дать как можно полную характеристику тем или иным временным задержкам.
Структура памяти напоминает таблицу, где сначала выбирают строку, а затем столбец. Эта таблица разбита на банки, для памяти плотностью меньше 64Мбит (SDRAM) количеством 2 штуки, выше – 4 (стандартно). Спецификация память DDR2 SDRAM с чипами плотностью 1Гбит предусматривает уже 8 банков. На открытие строки в используемом банке уходит больше времени, нежели в другом (т.к. используемую строку нужно сначала закрыть). Очевидно, что лучше новую строку открывать в новом банке (на этом основан принцип чередования строк).
Обычно на памяти (или в спецификации к ней) есть надпись вида 3-4-4-8 или 5-5-5-15. Это сокращенная запись (так называемая схема таймингов) основных таймингов памяти. Что же такое тайминги? Очевидно, что ни одно устройство не может работать с бесконечной скоростью. Значит, на выполнение любой операции уходит какое-либо время. Тайминги – это задержка, устанавливающая время, необходимое на выполнение какой-либо команды, то есть время от отправки команды до ее выполнения. А каждая цифра обозначает какое именно время необходимо.
Теперь разберем каждый по очереди. Схема таймингов включает в себя задержки CL-Trcd-Trp-Tras соответственно. Для работы с памятью необходимо для начала выбрать чип, с которым мы будем работать. Делается это командой CS# (Chip Select). Затем выбирается банк и строка. Перед началом работы с любой строкой необходимо ее активировать. Делается это командой выбора строки RAS# (при выборе строки она активируется). Затем (при операции линейного чтения) нужно выбрать столбец командой CAS# (эта же команда инициирует чтение). Затем считать данные и закрыть строку, совершив предварительный заряд (precharge) банка.
Тайминги расположены по порядку следования в простейшем запросе (для простоты понимания). Сначала идут тайминги, затем подтайминги.
Trcd, RAS to CAS delay – время, необходимое для активизации строки банка, или минимальное время между подачей сигнала на выбор строки (RAS#) и сигнала на выбор столбца (CAS#).
CL, Cas Latency – минимальное время между подачей команды на чтение (CAS) и началом передачи данных (задержка чтения).
Tras, Active to Precharge – минимальное время активности строки, то есть минимальное время между активацией строки (ее открытием) и подачей команды на предзаряд (начало закрытия строки). Строка не может быть закрыта раньше этого времени.
Trp, Row Precharge – время, необходимое для предварительного заряда банка (precharge). Иными словами, минимальное время закрытия строки, после чего можно активировать новую строку банка.
CR, Command Rate 1/2T – Время, необходимое для декодирования контроллером команд и адресов. Иначе, минимальное время между подачей двух команд. При значении 1T команда распознается 1 такт, при 2T – 2 такта, 3T – 3 такта (пока только на RD600).
Это все основные тайминги. Остальные тайминги имеют меньшее влияние на производительность, а потому их называют подтаймингами.
Trc, Row Cycle Time, Activate to Activate/Refresh Time, Active to Active/Auto Refresh Time – минимальное время между активацией строк одного банка. Является комбинацией таймингов Tras+Trp – минимального времени активности строки и времени ее закрытия (после чего можно открывать новую).
Trfc, Row Refresh Cycle Time, Auto Refresh Row Cycle Time, Refresh to Activate/Refresh Command Period – минимальное время между командой на обновление строки и командой активизации, либо другой командой обновления.
Trrd, ACTIVE bank A to ACTIVE bank B command, RAS to RAS Delay, Row Active to Row Active – минимальное время между активацией строк разных банков. Архитектурно открывать строку в другом банке можно сразу за открытием строки в первом банке. Ограничение же чисто электрическое – на активацию уходит много энергии, а потому при частых активациях строк очень высока электрическая нагрузка на цепи. Чтобы ее снизить, была введена данная задержка. Используется для реализации функции чередования доступа к памяти (interleaving).
Tccd, CAS to CAS Delay – минимальное время между двумя командами CAS#.
Twr, Write Recovery, Write to Precharge – минимальное время между окончанием операции записи и подачей команды на предзаряд (Precharge) строки для одного банка.
Twtr, Trd_wr, Write To Read – минимальное время между окончанием записи и подачей команды на чтение (CAS#) в одном ранке.
RTW, Read To Write, (Same) Rank Read To Write – минимальное время между окончанием операции чтения и подачей команды на запись, в одном ранке.
Same Rank Write To Write Delayed – минимальное время между двумя командами на запись в одном ранке.
Different Rank Write to Write Delay – минимальное время между двумя командами на запись в разных ранках.
Twr_rd, Different Ranks Write To READ Delayed – минимальное время между окончанием записи и подачей команды на чтение (CAS#) в разных ранках.
Same Rank Read To Read Delayed – минимальная задержка между двумя командами на чтение в одном ранке.
Trd_rd, Different Ranks Read To Read Delayed – минимальная задержка между двумя командами на чтение в разных ранках.
Trtp, Read to Precharge – минимальный интервал между подачей команды на чтение до команды на предварительный заряд.
Precharge to Precharge – минимальное время между двумя командами предварительного заряда.
Tpall_rp, Precharge All to Active Delay – задержка между командой Precharge All и командой на активацию строки.
Same Rank PALL to REF Delayed – устанавливает минимальное время между командой Precharge All и Refresh в одном ранке.
Different Rank REF to REF Delayed – устанавливает минимальную задержку между двумя командами на обновление (refresh) в разных ранках.
Twcl, Write Latency – задержка между подачей команды на запись и сигналом DQS. Аналог CL, но для записи.
Tdal, цитата из JEDEC 79-2C, p.74: auto precharge write recovery + precharge time (Twr+Trp).
Trcd_rd/Trcd_wr, Activate to Read/Write, RAS to CAS Read/Write Delay, RAW Address to Column Address for Read/Write – сочетание двух таймингов – Trcd (RAS to CAS) и rd/wr command delay. Именно последним и объясняется существование разных Trcd – для записи и чтения (Nf2) и установки BIOS – Fast Ras to Cas.
Tck, Clock Cycle Time – период одного такта. Именно он и определяет частоту памяти. Считается она следующим образом: 1000/Tck=X Mhz (реальная частота).
CS, Chip Select – время, необходимое на выполнения команды, подаваемой сигналом CS# для выбора нужного чипа памяти.
Tac, DQ output access time from CK – время от фронта такта до выдачи данных модулем.
Address and Command Setup Time Before Clock – время, на которое передача установок адресов команд будет предшествовать восходящему фронту такта.
Address and Command Hold Time After Clock – время, на которое будут “заперты” установки адреса и команд после нисходящего фронта такта.
Data Input Setup Time Before Clock, Data Input Hold Time After Clock – то же, что и вышеуказанные, но для данных.
Tck max, SDRAM Device Maximum Cycle Time – максимальный период цикла устройства.
Tdqsq max, DDR SDRAM Device DQS-DQ Skew for DQS and associated DQ signals – максимальный сдвиг между стробом DQS и связанными с ним сигналами данных.
Tqhs, DDR SDRAM Device Read Data Hold Skew Factor – максимальный сдвиг “запирания” считанных данных.
Tch, Tcl, CK high/low pulse width – длительность высокого/низкого уровня тактовой частоты CK.
Thp, CK half pulse width – длительность полупериода тактовой частоты CK.
Max Async Latency – максимальное время асинхронной задержки. Параметр управляет длительностью асинхронной задержки, зависящей от времени, необходимого для передачи сигнала от контроллера памяти до самого дальнего модуля памяти и обратно. Опция существует в процессорах компании AMD (Athlon/Opteron).
DRAM Read Latch Delay – задержка, устанавливающая время, необходимое для “запирания” (однозначного распознавания) конкретного устройства. Актуально при повышении нагрузки (числа устройств) на контроллер памяти.
Trpre, Read preamble – время, в течение которого контроллер памяти откладывает активацию приема данных перед чтением, во избежание повреждения данных.
Trpst, Twpre, Twpst, Write preamble, read postamble, write postamble – то же для записи и после приема данных.
Read/write Queue Bypass – определяет число раз, которое самый ранний запрос в очереди может быть обойден контроллером памяти, прежде чем быть выполненным.
Bypass Max – определяет, сколько раз самая ранняя запись в DCQ может быть обойдена, прежде чем выбор арбитра будет аннулирован. При установке в 0 выбор арбитра всегда учитывается.
SDRAM MA Wait State, Read Wait State – установка 0-2-тактного опережения адресной информации перед подачей сигнала CS#.
Turn-Around Insertion – задержка между циклами. Добавляет задержку в такт между двумя последовательными операциями чтения/записи.
DRAM R/W Leadoff Timing, rd/wr command delay – задержка перед выполнением команды чтения/записи. Обычно составляет 8/7 или 7/5 тактов соответственно. Время от подачи команды до активации банка.
Speculative Leadoff, SDRAM Speculative Read – Обычно в память поступает сначала адрес, затем команда на чтение. Поскольку на расшифровку адреса уходит относительно много времени, можно применить упреждающий старт, подав адрес и команду подряд, без задержки, что повысит эффективность использования шины и снизит простои.
Twtr Same Bank, Write to Read Turnaround Time for Same Bank – время между прекращением операции записи и подачей команды на чтение в одном банке.
Tfaw, Four Active Windows – минимальное время активности четырех окон (активных строк). Применяется в восьмибанковых устройствах.
Strobe Latency. Задержка при посылке строб-импульса (селекторного импульса).
Memory Refresh Rate. Частота обновления памяти.
Надеемся, что представленная нами информация поможет вам разобраться в обозначении таймингов памяти, насколько они важны и за какие параметры они отвечают.
Автор: antinomy
2 комментов оставлено (Add 1 more)