14 лет назад 26 февраля 2010 в 18:44 6458
Что такое тайминги и на что они влияют?

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

Теперь немного о физике: за хранение информации отвечают конденсаторы с обслуживающей их транзисторной обвязкой. Причем текущее состояние ячейки определяет именно конденсатор: если на нем есть заряд, хранится единица, в противном случае – ноль. При считывании же информации происходит разрядка этого элемента, то есть если там было значение 1, оно потеряется. Поэтому после считывания производится восстановление прежнего состояния конденсатора – его перезарядка. На этом небольшое лирическое отступление можно закончить и вернуться к описанию задержек, благо минимально необходимые знания у нас уже есть.

При кратком описании модуля памяти обычно упоминаются четыре тайминга, значения которых (в тактах) записываются через дефис – например, 7-7-7-20. Первое число обозначает задержку под названием tCAS, она же CL (CAS# latency). Аббревиатура «CAS» расшифровывается как «column access strobe», то есть «сигнал выбора столбца». Соответственно, в данном случае семь тактов пройдет между его подачей и получением доступа к нужной ячейке.

Кстати, именно ячейке, а не ячейкам – сигнал выбора столбца (RAS# – row access strobe) поступает до импульса CAS#, так что подача второго из них формирует окончательный адрес. И как раз задержку между двумя этими сигналами характеризует тайминг tRCD (RAS# to CAS# delay), значение которого в характеристиках модулей памяти указывается сразу после CL.

Третье число в вышеприведенном списке – это величина tRP (RAS# precharge), обозначающая промежуток между поступлением команды восстановления заряда (precharge) и ее выполнением, то есть возвратом столбца к прежнему состоянию. Но абы когда такую операцию совершать нельзя – надо дождаться завершения выполнения предыдущих операций со строкой.

Для обозначения того временного отрезка, в течение которого строка пребывает в активном состоянии, используется тайминг tRAS (он же active to precharge delay, он же RAS# activate to precharge). В нашем случае сигнал восстановления заряда будет подан через двадцать тактов после команды RAS#, а выполнен еще через семь тактов. Как нетрудно догадаться, tRAS не может быть меньше суммы tRCD и CL.

К вышеприведенной последовательности значений задержек также часто прибавляется еще одно, 1T или 2T, соответствующее таймингу под названием command rate. Данный параметр характеризует промежуток времени между подачей сигналов CS# (chip select – команда выбора чипа) и RAS#. Вообще количество таймингов весьма велико – помимо описанных выше «основных» существуют еще и «дополнительные». Полный список я приводить не буду, но о некоторых все же расскажу.

Например, tRC (refresh cycle) соответствует промежутку времени между осуществлением доступа к двум разным строкам – от подачи на первую из них сигнала RAS# и до окончания восстановления ее заряда. Задержка между завершением поступления записываемых данных и перезарядкой строки (восстанавливать ее нужно целиком, так как сигнал RAS# обнуляет все ячейки одного ряда) обозначается tWR (write recovery). А вот считывание информации относительно записи сдвинуто во времени на такое количество тактов, которое равно значению tWTR (write to read delay).

2 комментария