Auto self refresh asr поддерживается что это
Перейти к содержимому

Auto self refresh asr поддерживается что это

  • автор:

 

Auto Self Refresh (ASR) поддерживается что это?

Приветствую друзья! Сегодня мы поговорим про технологию, которую можно встретить в планках оперативной памяти.

Auto Self Refresh (ASR) — что это?

Поддержка энергосберегающего режима. В простое меньше кушает энергии.

Но на самом деле экономия минимальная, ватта нет и близко — милливатты. Поэтому если поддерживает планка то хорошо, а если нет то совсем некритично.

Не все производители памяти поддерживают эту функцию, например Kingston — поддерживает, а Elpida — нет.

Другая версия — Auto Self Refresh это частота регенерации памяти, то есть обновление заряда ячеек. Чем меньше значение, тем устойчивее работает память (данные не теряет), но чуть медленнее, чем при больших значения. Возможно эта версия относится к опции в биосе (если существует вообще).

Поддерживается опция или нет можно проверить программно, например в AIDA64:

Partial Array Self Refresh (PASR) — что это?

Технология частичной регенерации памяти, обеспечивающая снижение мощности, которая потребляется планкой памяти в режиме автономной регенерации при отсутствии операций чтения и записи.

Технология позволяет уменьшить скорость разряда аккумулятора уснувшей платформы (как понимаю имеется ввиду спящий режим).

Так в чем заключается суть технологии? Технология интеллектуально анализирует данные, которые сохранены в памяти с последующим выделением тех данных, которые должны быть сохранены. Если обьем этих данных намного меньше обьема запоминающей матрицы DRAM, тогда можно выполнить регенерацию памяти частично, сэкономив при этом потребление.

Заключение

  • Auto Self Refresh (ASR) — поддержка энергосберегающего режима.

Когда будете покупать оперативную память, то можете спросить еще совместима ли планка с поддержкой Auto Self Refresh с обычными планками. Однако, мне кажется что да, так как эта технология — лично планки памяти, не материнки, а именно планки.

Auto self refresh asr поддерживается что это

В середине 2011 года, наверное, уже никому не придет в голову конструировать с нуля систему на базе платформы LGA-775 (ну если только по соображениям минимизации цены), а зря комп собранный на данной базе хоть и не сможет стать абсолютным лидером, но будет с успехом конкурировать с современными более дорогими платформами. Так что целесообразность вложения средств в комп на базе LGA-775 не лишена смысла, тем более, если частично комплектующие остались от предыдущих апгрейдов — а требуется собрать еще один комп. Такая задача встала и передо мной, проц-двухядерник и видяха на PCI-E у меня уже были. При выборе матери был сделан упор на максимально возможное (не менее трех) количество доступных слотов простой PCI (для переноса имеющегося оборудования). Ввиду дешевизны памяти было решено также искать мать с поддержкой DDR-3, а также с использованием южного моста ICH-10 – что, почему-то тоже редкость, многие производители упорно лепят матери на старых чипсетах. С производителем выбор уже тоже не стоял. Изрядно разочаровавшись, в силу ряда объективных причин, в последние годы в ASUS (материнские платы которого лет 5-10 назад я считал единственно достойными) – мой приоритет сменился в сторону Gigabyte. В конкретном случае я выбрал модель GA-P43T-ES3G.

В наиболее (имхо) информативной базе по компьютерным комплектующим – сайте магазина НИКС (да, зачастую покупать там не целесообразно по причине завышения цен, а вот каталог там действительно удобоюзабельный) – допущена существенная неточность при описании всех модулей памяти DDR-3! Поначалу – такая инфа дезинформировала даже меня – позже во всем разобрался. К большинству модулей DDR-3 приписана такая фраза «Напряжение питания: 1.65 В (Напряжение памяти нестандартное — выставляется в БИОС вручную)». Из этого я изначально понял, что память не сможет работать при ином напряжении питания (чем указано), в случае же если мать не поддерживает ручной установки напряжения, то, стало быть, использование такого модуля невозможно. На самом деле оказалось все проще и «приятнее»: память по умолчанию работает на стандартном (1.5 В) напряжении и в SPD прописаны профили таймингов именно с расчетом на это напряжение. Так же модуль содержит информацию о профилях таймингов, доступных при повышенном напряжении (это не более чем опция).

Kingston HyperX T1 <KHX1600C8D3T1K2/4GX>

@ 609 МГц 8-8-8-22 (CL-RCD-RP-RAS) / 30-68-4-10-5-5 (RC-RFC-RRD-WR-WTR-RTP)
@ 533 МГц 7-7-7-20 (CL-RCD-RP-RAS) / 27-59-4-8-4-4 (RC-RFC-RRD-WR-WTR-RTP)
@ 457 МГц 6-6-6-17 (CL-RCD-RP-RAS) / 23-51-3-7-4-4 (RC-RFC-RRD-WR-WTR-RTP)

Extreme Memory Profile:

@ 800 МГц 8-8-8-24 (CL-RCD-RP-RAS) / 36-88-0-6-12-6-6 (RC-RFC-CR-RRD-WR-WTR-RTP)
@ 700 МГц 7-7-7-21 (CL-RCD-RP-RAS) / 32-77-0-6-11-6-6 (RC-RFC-CR-RRD-WR-WTR-RTP)
@ 600 МГц 6-6-6-18 (CL-RCD-RP-RAS) / 27-66-0-5-9-5-5 (RC-RFC-CR-RRD-WR-WTR-RTP)

Auto self refresh что это

Приветствую друзья! Сегодня мы поговорим про технологию, которую можно встретить в планках оперативной памяти.

Auto Self Refresh (ASR) — что это?

Поддержка энергосберегающего режима. В простое меньше кушает энергии.

Но на самом деле экономия минимальная, ватта нет и близко — милливатты. Поэтому если поддерживает планка то хорошо, а если нет то совсем некритично.

Не все производители памяти поддерживают эту функцию, например Kingston — поддерживает, а Elpida — нет.

Другая версия — Auto Self Refresh это частота регенерации памяти, то есть обновление заряда ячеек. Чем меньше значение, тем устойчивее работает память (данные не теряет), но чуть медленнее, чем при больших значения. Возможно эта версия относится к опции в биосе (если существует вообще).

Поддерживается опция или нет можно проверить программно, например в AIDA64:

Partial Array Self Refresh (PASR) — что это?

Технология частичной регенерации памяти, обеспечивающая снижение мощности, которая потребляется планкой памяти в режиме автономной регенерации при отсутствии операций чтения и записи.

Технология позволяет уменьшить скорость разряда аккумулятора уснувшей платформы (как понимаю имеется ввиду спящий режим).

Так в чем заключается суть технологии? Технология интеллектуально анализирует данные, которые сохранены в памяти с последующим выделением тех данных, которые должны быть сохранены. Если обьем этих данных намного меньше обьема запоминающей матрицы DRAM, тогда можно выполнить регенерацию памяти частично, сэкономив при этом потребление.

Заключение

  • Auto Self Refresh (ASR) — поддержка энергосберегающего режима.

Когда будете покупать оперативную память, то можете спросить еще совместима ли планка с поддержкой Auto Self Refresh с обычными планками. Однако, мне кажется что да, так как эта технология — лично планки памяти, не материнки, а именно планки.

Auto self refresh что это

Сообщения: 20
Откуда: Россия

Репутация: 0

Сообщения: 1813
Откуда: Las Vegas, Nevada, USA

Репутация: 3

Сообщения: 20
Откуда: Россия

Репутация: 0

Сообщения: 19319
Откуда: Пермь

Репутация: 127

Сообщения: 2230
Откуда: Екатеринбург/Свердловская обл.

Репутация: 0

Сообщения: 20
Откуда: Россия

Репутация: 0

dodge_ki
Мешает отсутствие прямых рук в этом вопросе. Не могу разобраться как всё это настраивается.

Буду очень признателен, если кто-нибудь поможет.
Вот, что имею в своём биосе.
Вкладка MB Intelligent Tweaker http://pastecode.ru/f9fb/
Вкладка Dram Configuration http://pastecode.ru/9a02/

Сообщения: 20
Откуда: Россия

Репутация: 0

Сообщения: 4168
Откуда: Из города невест

Репутация: 64

Цитата: Memory Clock x8.00
DDR3 Timing items Manual
CAS# Latency [6T]
RAS to CAS R/W Delay [6T]
Row Precharge Time [6T]
Minimum RAS Active Time [16T]

System Voltage Control Manual
DRAM Voltage Contro = 1.65V

Сообщения: 20
Откуда: Россия

Репутация: 0

Сообщения: 4168
Откуда: Из города невест

Репутация: 64

Сообщения: 20
Откуда: Россия

Репутация: 0

Сообщения: 4168
Откуда: Из города невест

Репутация: 64

Сообщения: 20
Откуда: Россия

Репутация: 0

Сообщения: 1813
Откуда: Las Vegas, Nevada, USA

Репутация: 3

Сообщения: 4168
Откуда: Из города невест

Репутация: 64

Сообщения: 20
Откуда: Россия

Репутация: 0

Сообщения: 20
Откуда: Россия

Репутация: 0

Сообщения: 1813
Откуда: Las Vegas, Nevada, USA

Репутация: 3

FiTS
RC = Row Cycle Time [33T] Должно быть 30
RRD = RAS to RAS Deley [6T] Должно быть 5

Попробуйте.

Только вот с WR сомневаюсь Write Recovery Time [11T] сейчас, а должно быть 13, но там такого уже нет.
Повышать не надо, если и так работает.

Ещё вопрос 1T/2T Command [2T] — это случаем не CR (Command Rate)?
Это CR.

Должно быть 0.
Почему? Должно быть 1Т или 2Т. 1Т чуть быстрее, но и менее стабилен.

Сообщения: 20
Откуда: Россия

Репутация: 0

Buntar
Попробовал. Всё хорошо

Это CR.
Смотрю тут. Почему-то вот ноль. Ну и подумал, что так нужно.
30-92-0-5-13-7-7 (RC-RFC-CR-RRD-WR-WTR-RTP)

Сообщения: 20
Откуда: Россия

Репутация: 0

Вот ещё вопрос появился.. Почему-то в CPU-Z для XMP совсем другие тайминги. Да и в обычном режиме есть немного повыше, чем в эвересте прописано. Это нормально?
Изображение

ЗЫ. Нашёл среди кучи заметок на официальном сайте гигабайта: "To support a DDR3 1866 MHz (and above) memory, you must install an AMD AM3+ CPU first." Теперь буду знать.

Сообщения: 1813
Откуда: Las Vegas, Nevada, USA

Репутация: 3

FiTS
30-92-0-5-13-7-7 (RC-RFC-CR-RRD-WR-WTR-RTP)
Ноль в данном случае означает использовать значение по-умолчанию (2Т обычно).

Почему-то в CPU-Z для XMP совсем другие тайминги. Да и в обычном режиме есть немного повыше, чем в эвересте прописано. Это нормально?
Мне кажется, что ни та, ни другая программа всю информацию не показывают. В CPU-Z табличка маленькая в связи с размером окна, что там с эверестом — не знаю, не пользовался (но новые версии ведь вроде AIDA64 называются?).

Сообщения: 20
Откуда: Россия

Репутация: 0

Сообщения: 5700
Откуда: Донбасс

Репутация: 125

Сообщения: 20
Откуда: Россия

Репутация: 0

Сообщения: 1813
Откуда: Las Vegas, Nevada, USA

Репутация: 3

Сообщения: 20
Откуда: Россия

Репутация: 0

Сообщения: 1813
Откуда: Las Vegas, Nevada, USA

Репутация: 3

Сообщения: 20
Откуда: Россия

Репутация: 0

Сообщения: 19319
Откуда: Пермь

Репутация: 127

Сообщения: 20
Откуда: Россия

Репутация: 0

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

4.4.Регенерация памяти

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

Возможны три различных метода регенерации данных.

Регенерация одним RAS (RAS Only Refresh — ROR). Этот метод использовался еще в первых микросхемах DRAM. Адрес регенерируемой строки передается на шину адреса и выдается сигнал RAS (точно так же, как при чтении или записи). При этом выбирается строка ячеек, и данные из них поступают на внутренние цепи микросхемы, после чего записываются обратно. Так как далее сигнал CAS не следует, цикл чтения/записи не начинается. Затем передается адрес следующей строки и так далее, пока не будет пройдена вся матрица памяти, после чего цикл регенерации повторяется. К недостаткам этого метода можно отнести то, что занимается шина адреса, и в момент регенерации блокируется доступ к другим подсистемам компьютера.
CAS перед RAS (CAS Before RAS — CBR) — стандартный метод регенерации. При нормальном цикле чтения/записи сигнал RAS всегда приходит первым, за ним следует CAS. Если же CAS приходит раньше RAS, то начинается специальный цикл регенерации — CBR. При этом адрес строки не передается, а микросхема использует свой внутренний счетчик, содержимое которого увеличивается на 1 при каждом CBR-цикле (т.н. инкрементирование адреса строки). Этот режим позволяет регенерировать память, не занимая шину адреса, что, безусловно, более экономично.
Автоматическая регенерация памяти (Self Refresh — SR, или саморегенерация). Этот метод обычно используется в режиме энергосбережения, когда система переходит в состояние "сна" ("suspend"), и тактовый генератор перестает работать. В таком состоянии обновление памяти по вышеописанным методам невозможно (попросту отсутствуют источники сигналов), и микросхема памяти выполняет регенерацию самостоятельно. В ней запускается свой собственный генератор, который тактирует внутренние цепи регенерации. Такая технология работы памяти была внедрена с появлением EDO DRAM. Необходимо отметить, что в режиме "сна" память потребляет очень малый ток.
В классической реализации PC AT запросы на регенерацию DRAM генерировал канал 1 системного таймера 8254. К его выходу подключен триггер, работающий в счетном режиме и меняющий свое состояние на противоположное при каждом запросе. Состояние этого триггера можно программно считывать через бит 4 порта 61h. Проверка Refresh Toggle заключалась в проверке того факта, что этот триггер переключается с заданной частотой. Но со временем стали применяться другие алгоритмы регенерации памяти (что и изложено выше), и несмотря на то, что Refresh Toggle сохраняется для совместимости, по нему уже нельзя проверить формирование запросов на регенерацию. Циклы регенерации выполняет входящий в состав чипсета контроллер регенерации, который для выполнения своей задачи должен получать управление магистралью каждые 15,6 мкс. Во время цикла регенерации производится чтение одной из N ячеек памяти.

Burst Refresh

— (пакетная регенерация). Как правило, трактовка этой опции в литературе носит ошибочный характер. При разрешении опции ("Enabled") в единый пакет собираются запросы на регенерацию, причем такое пакетирование может в некоторых случаях обеспечивать аккумулирование запросов по всему объему строк в памяти. Такой метод ведет к значительному повышению производительности, но есть и обратная сторона. На достаточно длительные промежутки времени и постоянно происходит захват шины памяти, что приводит к блокировке доступа к ней процессора или других устройств.
Опция может называться "DRAM Burst Refresh".

CAS Before RAS Refresh

— метод регенерации памяти, когда сигнал CAS устанавливается раньше сигнала RAS. В отличие от стандартного способа регенерации, этот метод не требует перебора адресов строк извне микросхем памяти — используется внутренний счетчик адресов. Однако, этот способ регенерации должен поддерживаться микросхемами памяти. Если раньше можно было встретить фразы, что большинство модулей памяти поддерживает такой метод регенерации, то сейчас это уже стандартное аппаратное решение. Использование этого метода позволяет заметно снизить потребляемую модулями памяти энергию. Может принимать значения:
"Enabled" — разрешено,
"Disabled" — запрещено.
Опция может называться "CAS Before RAS".

CAS-to-RAS Refresh Delay

— действие этой опции возможно при включенном состоянии предыдущей (или аналогичной), так как в данном случае устанавливается время задержки между стробирующими сигналами (в тактах системной шины). Естественно, что установка меньшего значения приводит к снижению времени, затрачиваемого на регенерацию. Большее же значение повышает надежность, т.е. достоверность данных, находящихся в памяти. Оптимальный вариант для данной системы выбирается опытным путем. Может принимать значения: "1T", "2T" (по умолчанию).

Concurrent Refresh

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

Decoupled Refresh

— (раздельная регенерация). Поскольку ISA-шина имеет невысокую скорость работы, то включение этой опции ("Enabled") позволит чипсету разделить регенерацию для основной памяти и ISA-шины. При этом процесс регенерации для ISA-шины может быть завершен во время выполнения процессором других инструкций. Использование этой опции заметно увеличивает производительность всей системы. Опция эта играла заметную роль во времена 486-х машин.
Но могла возникнуть и проблема, которая заключалась в том, что некоторые карты расширения (обычно, видеокарты) требовали к себе внимания процессора во время начального цикла регенерации шины. Естественно, что это могло привести к нежелательным сбойным ситуациям. Отключение опции могло потребоваться также, если при работе с графическими режимами высокого разрешения на экране монитора появлялись какие-то символы или "снег". При этом необходимо было отключать и такой метод работы с памятью, как "Memory Relocation" (см. выше). Сказанное выше было характерно, например, для видеокарт на чипе S3 801 (таких, как SPEA V7 Mirage), работающих совместно с некоторыми картами-контроллерами производства "Adaptec" с расширенной ROM-памятью, необходимой для обслуживания жестких дисков объемом свыше 1 ГБ.
Опция может называться "Decoupled Refresh Option".

Distributed Refresh

— (распределенная регенерация). Не совсем ясно, что "прячется" под этой опцией, хотя есть предположение, что это аналог "раздельной регенерации". В свое время данную опцию можно было встретить в системах на чипсетах от "VIA Technologies". Значения опции: "Disabled" и "Enabled".

DRAM Ahead Refresh

— опция, позволяющая включать ("Enabled") режим "предвидения" для цикла регенерации. Суть этого "предвидения" станет более понятна из следующей опции, которая становится активной при включении разрешения.
x DRAM Ahead Refresh Timing
— данная же опция по сути позволяет "отодвинуть" начало цикла регенации на 10 или 40 системных тактов. Небольшое, но все же повышение производительности. Столь уникальные опции были реализованы в системах на наборе SIS540 и более пока нигде не встречались.

DRAM Burst at 4 Refresh

— эта опция также связана с пакетной регенерацией, но суть ее иная. Разрешение опции ("Enabled") включает регенерацию по 4 строки в пакете. Такой метод заметно повышает производительность. При этом шина освобождается намного быстрее, чем в случае с опцией "Burst Refresh".

DRAM CAS# Precharge

— (время предварительного заряда CAS). Эта функция применяется при наличии в системе синхронной динамической памяти, и с ее помощью устанавливается (в тактах системной шины) время для формирования сигнала CAS (накопления заряда по CAS) до начала цикла регенерации памяти (см. ниже дополнительно "DRAM RAS# Precharge Time"). Уменьшение этого значения увеличивает быстродействие, но возможны проблемы со стабильностью системы, если в то же время установлены "пограничные" значения для RAS-строба. Если установлено слишком малое значение (время), также и регенерация может оказаться незавершенной, что в итоге приведет к потере данных, находящихся в памяти.
Опция может иметь наименования: "CAS# Precharge", "CAS# Precharge Time", "FPM CAS# Precharge", "FPM DRAM CAS Precharge", "EDO/FPM CAS Precharge Time", "EDO CAS# Precharge", "EDO DRAM CAS Precharge".
Большим разнообразием значений все перечисленные опции не отличаются. "1T", "2T" или такой ряд: "1T", "1T/2T", "2T". Некоторое разнообразие внесла опция "CAS Precharge Period": "1T", "2T", "3T", "4T".

DRAM RAS Only Refresh

— включение/отключение метода обновления DRAM, альтернативного методу "CAS-before-RAS". Если BIOS содержит другие возможности по регенерации памяти, то эту опцию необходимо отключить. В противном случае придется использовать этот устаревший метод обновления памяти.

DRAM RAS# Precharge Time

— (время предварительного заряда RAS). Эта функция применяется при наличии в системе синхронной динамической памяти и она позволяет устанавливать время (в тактах системной шины) для формирования сигнала RAS (иногда говорят о накоплении заряда по RAS) до начала цикла регенерации памяти. Фактически, тем самым устанавливается минимальный интервал между двумя последовательными циклами чтения или записи. Уменьшение этого значения увеличивает быстродействие. Но если установлено недостаточное время, регенерация может быть некомплектной, что в итоге приведет к потере данных, находящихся в памяти. Естественно, что за повышением частоты, на которой работает память, следует и выбор большего значения, что важно при разгоне памяти. Возможные значения могут быть представлены в различном виде: в виде цифровых значений — "3", "4" и т.д.; с указанием системных тактов — "3 Clocks" или "1T". А обобщенный ряд значений имеет следующий вид: 0T, 1T, 2T, 3T, 4T, 5T, 6T, хотя в каждом конкретном варианте может быть представлено 2-4 значения.
Опция может иметь множество названий: "DRAM RAS# Precharge Period", "RAS# Precharge Time", "RAS Precharge Timing", "RAS# Precharge Period", "FPM DRAM RAS# Precharge", "FPM RAS Precharge", "RAS# Precharge", "DRAM RAS Precharge", "EDO RAS Precharge", "EDO RAS# Precharge Time", "EDO RAS Precharge Timing", "FPM/EDO RAS# Precharge Time", "EDO/FPM RAS Precharge Time".
Как видим, опция не потеряла своей актуальности с появлением EDO-памяти и, что интересно, затем также BEDO- и SDRAM- модулей, поскольку данный параметр является одной из важнейших характеристик чипов памяти: "BEDO RAS Precharge", "SDRAM RAS Precharge Time".
Правда, кроме привычных параметров типа "3T" или "2 Clks" (эти значения и характерны для SDRAM-модулей) в различных версиях BIOS стали "встречаться" новые виды значений, таких как: "Same as FPM" и "FPM-1T", "Fast" и "Normal", "Fast" и "Slow". Для последней пары параметров "Slow" (медленно) равносильно увеличению количества тактов, что повышает стабильность работы системы, поэтому значение "Fast" следует устанавливать в случае уверенности в качестве модулей памяти. Что же касательно первой пары, то для опций вида "FPM DRAM RAS# Precharge" ряд значений мог иметь вид: 2T, 3T, 4T, 5T, 6T, а отсюда и возможный результат для SDRAM-памяти, хотя совершенно не очевидный.
Вполне возможна и ситуация, когда версия BIOS предоставляет возможность установки каких-либо параметров для каждого банка памяти в отдельности. Поскольку речь идет о "предзаряде" для RAS#-строба, то опция (опции!) может называться "Bank 0&1 (2&3)(4&5): EDO/SDRAM Precharge" со значениями: "3T/2T", "4T/3T".
"AMI BIOS" для "своей" опции "SDRAM RAS# Precharge" предложил дополнительное значение "Auto". Правда, один из вариантов опции "SDRAM RAS Precharge" представил и значения "Disabled"/"Enabled". Запрещать опцию можно только в случае абсолютной уверенности в модулях памяти, иначе неприятностей не избежать. Раз коснулись возможности запрещать/разрешать механизм предзаряда, то нужно отметить и возможность включать ("Enabled") оптимизацию предзаряда — "SDRAM: Optimal RAS# Prech.".
Для данной опции (опций!) необходимо отметить пару важных моментов. Нельзя путать данную опцию с опциями типа "Refresh RAS Active Time", которые отвечают за длительность сигнала RAS#. В нашем случае речь идет как бы о подготовительном процессе. И второе! Данную опцию совершенно правильно было бы разместить и в разделе, посвященном стандартной оптимизации памяти (см. ниже). Процедуры выставления сигнала RAS# и при регенерации, и при операциях чтения/записи идентичны.
В завершение вышесказанного опция "RAS# Precharge/Refresh" со значениями "3T/4T" и "4T/5T". Данной опцией устанавливаются одновременно и время подготовительной фазы, и общее время активности сигнала RAS# для цикла регенерации.

DRAM Refresh Method

— опция установки метода регенерации. Опция может называться также "Refresh Type", "DRAM Refresh Type", "DRAM Refresh Mode" или "Refresh Type Select". При любых вариациях опция, как правило, среди возможных параметров содержит только два параметра. Приводим весь возможный ряд: "CAS before RAS" (или "CAS-RAS"), "RAS only", "RAS# Before CAS#", "Normal", "Hidden".

DRAM Refresh Period

— установка периода (частоты повтора), требуемого для регенерации памяти, в соответствии со спецификацией модулей памяти. В новейших версиях BIOS такая опция может и не присутствовать, хотя ее наличие в современной системе по прежнему позволяет оптимизировать процесс регенерации. Ранее такая опция предлагала пользователю широкий простор для творчества: в зависимости от версии BIOS и его производителя, чипсета, модулей памяти. Опция могла также носить название "Refresh Cycle Time (us)", "DRAM Refresh Cycle Time", "Memory Refresh Rate", "DRAM Refresh Rate Select", "DRAM Refresh Rate","SDRAM Refresh Rate" или просто — "DRAM Refresh". Вот неполный перечень значений, с которыми мог встретиться пользователь:
"For 50 MHz Bus", "For 60 MHz Bus", "For 66 MHz Bus", "Disabled" (такой необычный вариант встретился в системе на i430FX),
"50/66 MHz", "60/60 MHz", "66/66 MHz",
"15 us", "30 us", "60 us", "120 us",
"Disabled" (или "No Refresh"), "15.6 us", "31.2 us", "62.4 us", "124.8 us", "249.6 us",
"15.6 us", "31.2 us", "62.4 us", "125 us", "250 us",
"15.6 us", "62.4 us", "124.8 us", "187.2 us",
"1040 Clocks", "1300 Clocks",
"15.6 us", "7.9 us", "FR 128 CLKs" (понятно, что речь идет о частоте — "frequency"),
"Disabled", "Normal",
"Fast", "Slow",
"Faster", "Slower",
"Disabled" (устанавливаются стандартные 15,6 мкс), "Enabled" (соответствует удвоению частоты).
Остается отметить, что чем реже производится регенерация памяти, тем эффективнее работает система. Но если явно наблюдаются нарушения в работе системы, то частоту обновления необходимо повысить. Значение "Disabled", появляющееся в некоторых версиях, не должно использоваться. В противном случае следует ожидать потери информации в памяти. И наконец, если пользователь видит на экране перед собой целый ряд значений для выбора, то это может означать, что в состав чипсета входит специальный конфигурационный регистр, в котором три разряда (или менее) "отданы" под возможные комбинации устанавливаемой частоты.
Как дополнение к изложенному рассмотрим еще некоторые опции и чипсеты, для которых они были реализованы:
"DRAM Refresh Ratery Time" (SIS530) — "15.6 us", "7.8 us", "3.9 us",
"Refresh Rate" (AMD751) — "20.4 us", "15.3 us", "10.2 us", "5.1 us".
Опция "Refresh Mode Select", несмотря на некоторое несоответствие в названии, предложила значения "7.8 ?sec", "15.6 ?sec", "64 ?sec", а опция "Refresh Interval" — "7.8 ?sec", "15.6 ?sec", "31.2 ?sec", "64 ?sec", "128 ?sec".
Вот тут и может возникнуть, с одной стороны, мнимое несоответствие, а с другой, некоторое непонимание сути представленных опций. Ведь в названиях опций упоминаются и "частота", и "период", и "интервал", и "время цикла". Поэтому требуется дополнительное разъяснение.
Понятно, что одновременно регенерировать всю динамическую память невозможно. Допустимо также говорить о построчной регенерации матрицы памяти (об этом см. выше). Тогда можно ввести сразу два понятия. Первое — временной интервал между регенерацией, например, соседних строк. Второе — время полного цикла регенерации, т.е. время, через которое необходимо будет снова регенерировать условную начальную строку. "Обычный" чип памяти содержит 4096 строк. Можно утверждать, что общее время цикла регенерации составляет 64 мсек (один из стандартов JEDEC). И тогда упомянутый интервал (период) регенерации составляет:
64000 : 4096 = 15.6 ?sec.
Это означает, что каждые 15,6 мкс контроллер памяти инициирует цикл регенерации отдельной строки памяти. И это значение характерно для тех же модулей DIMM емкостью 128 Mbit или меньше. Если же речь идет о модулях емкостью 256 Mbit и более, то количество строк составит 8192 и интервал регенерации 7.8 ?sec, обусловленный сохранением времени общего цикла в 64 мсек. Если же в системе используются модули различной емкости, то временная характеристика регенерации устанавливается по модулю большей емкости, т.е. с более высокой частотой.
Необходимо отметить, что применявшиеся ранее модули памяти во многих случаях позволяли удлинить цикл регенерации, т.е. увеличить ее интервал, тем самым несколько повышая производительность системы.
И, конечно же, картина была бы неполной, если бы мы не вспомнили о RAMBUS DRAM. Мы не будем детально останавливаться на архитектуре этого типа памяти, напомним только, что структура и организация банков памяти носит многоканальный характер. Причем каждый канал данных представляет собой шину шириной всего в один (!) байт. Но за счет высокопроизводительного конвейера, высокоскоростной внутренней магистрали, синхронизируемой собственным тактовым генератором, пропускная способность шины памяти уже доведена до 3,2 ГБ/сек. Ну а теперь опция — "RDRAM Refresh Rate, Channel N", и ее значения: "No refresh", "1.95 us", "3.9 us", "7.8 us".

DRAM Refresh Queue

— этот параметр во включенном состоянии допускает использование более эффективного метода обновления памяти. Дело в том, что чипсет способен формировать последовательность нескольких запросов обновления памяти, пока шина процессора не будет готова к выполнению следующей операции. Речь здесь идет об использовании режима конвейеризации запросов на регенерацию памяти. "Enabled" разрешает постановку в очередь, как правило, 4 запросов регенерации памяти. Установка в "Disabled" означает отключение конвейеризации, что естественно снижает эффективность и приводит к проведению всех циклов регенерации либо по приоритету запросов, либо в соответствии с методами, изложенными в других опциях.
Данный режим должен быть всегда включен. "Enabled" устанавливается и по умолчанию. Одно условие! Установленные модули памяти должны поддерживать это свойство, большинство современных типов памяти поддерживают этот метод. Более того! Использование столь эффективного метода регенерации зависит и от реализации чипсетом таких функций, и от версии BIOS. В таком явном, "пользовательском", виде такая опция повстречалась в "AMI BIOS".
Опция может называться также "DRAM Refresh Queing".

DRAM Refresh Queue Depth

— данная опция позволяет установить степень ("глубину") конвейеризации, т.е. количество возможных ступенек конвейера. Чем выше это число, тем большее количество запросов на регенерацию в данное время находится в обработке. Возможные значения, что естественно зависит от указанных выше реализаций и возможностей, имеют вид:
"0" (равносильно "Disabled"), "4", "8", "12" (по умолчанию).
Опция может называться также "Refresh Queue Depth".

Extended Refresh

— (расширенная регенерация). Введение (в свое время) этой опции в BIOS предполагало использование специальных EDO-чипов. Регенерация содержимого ячеек EDO DRAM при этом стала производиться через 125 мкс, а не через каждые 15,6 мкс, как при стандартной регенерации. Это несколько повысило общее быстродействие памяти.

Fast DRAM Refresh

— (быстрая регенерация DRAM). Контроллер памяти предоставляет два режима регенерации памяти: стандартный (Normal) и скрытый (Hidden). В каждом из режимов CAS-строб выставляется перед RAS-сигналом, однако в режиме "Normal" для каждого строб-импульса выделяется дополнительный такт процессора. Это старый метод обновления памяти, и поэтому имеет смысл установить значение данного параметра в "Hidden", который обеспечивает и повышенное быстродействие, и большую эффективность (см. ниже), также и по причине того, что CAS-строб может и не выставляться — быть "скрытым".

Hidden Refresh

— (скpытая pегенеpация). Когда установлено значение "Disabled", память регенерируется по IBM AT методологии, используя циклы процессора для каждой регенерации. Когда опция "Hidden Refresh" установлена в "Enabled", контроллер памяти "ищет" наиболее удобный момент для регенерации, независимо от циклов CPU. При этом регенерация происходит одновременно с обычным обращением к памяти. Алгоритм регенерации памяти при этом многовариантен: разpешаются циклы pегенеpации в банках памяти, не используемых центральным процессором в данный момент, взамен или вместе с ноpмальными циклами регенерации, выполняемыми всякий pаз (каждые 15 мс) пpи опpеделенном пpеpывании (DRQ0), вызванном таймеpом и инициируемом схемой регенерации.
Для регенерации каждый pаз тpебуется до 4 мс. В течение этих 4 мс один цикл pегенеpации пpимеpно каждые 16 мкс pегенеpиpует по 256 стpок памяти (здесь и выше приведены характеристики для модулей памяти малой емкости). Каждый цикл pегенеpации занимает столько же или чуть меньше вpемени, чем один цикл чтения памяти, т.к. сигнал CAS для pегенеpации при этом не тpебуется.
"Hidden refresh" отличается максимальной скоростью и эффективностью, наименьшими нарушениями активности системы и наименьшими потерями производительности, также позволяя поддерживать состояние памяти во время нахождения системы в режиме "suspend". Этот режим более быстрый, чем "Burst Refresh". Но наличие в BIOS этой функции еще не означает ее реализации. После установки опции в "Enabled" стоит тщательно проверить работоспособность компьютера. Некотоpые модули памяти позволяют использовать "Hidden Refresh", некотоpые — нет. В большинстве случаев pекомендуется установить в "Enabled".

Hi-Speed Refresh

— с помощью этой опции чипсет быстрее проведет регенерацию основной памяти. Правда, эффект от этой установки значительно меньше, чем от включения "Slow Refresh". Последний режим регенерации предпочтительнее. К тому же эта функция поддерживается не всеми чипами памяти.

ISA Refresh

— опция разрешения/запрещения проведения регенерации памяти для ISA-шины. В таком виде эта опция уже не встречалась даже в последние годы существования ISA-шины.

ISA Refresh Period

— установка периодичности для регенерации ISA-шины. Возможный ряд значений: "15 us", "30 us", "60 us", "120 us".

ISA Refresh Type

— опция с установкой метода регенерации памяти для ISA-шины. Возможные значения параметра: "Normal" и "Hidden". Аналогичная опция с названием "ISA Bus Refresh Mode" могла предложить другие значения: "Slow" и "Fast".

PCI-to-DRAM RAS# Precharge

— тема "предзаряда" уже достаточно нами освоена, поэтому стоит лишь сказать кратко о назначении данной опции — установка времени "предзаряда" строба RAS# при циклах записи PCI-шины в основную динамическую память. Значения опции: "2T", "3T".

RAS Precharge @Access End

— когда выбрано "Enabled", RAS#-строб остается в активном состоянии в конце процесса "предзаряда". Если же установлено "Disabled", RAS# переводится в пассивное состояние (высокий уровень).

RAS Timeout

— когда установлено значение "Disabled", цикл регенерации динамической памяти производится в стандартном режиме, т.е. каждые 15,6 мкс. Дополнительный цикл регенерации памяти вставляется при выборе значения "Enabled".

Ref/Act Command Delay

— (установка задержки для цикла чтения/записи). Параметром выбирается время задержки между окончанием цикла регенерации и началом цикла чтения или записи. Опция может принимать значения: "5T", "6T" (по умолчанию), "7T", "8T".
Система на наборе SIS530 предложила опцию под названием "DRAM Refresh/Active Delay" с чуть более консервативными значениями: "9T", "8T", "7T", "6T". Более развитый чипсет (SIS540) представил уже две опции: "DRAM REF/ACT Delay" ("10T", "9T") и "DRAM ACT/REF Delay" ("10T", "9T", "8T"). Понятно, что последняя опция предназначена для выбора задержки для режима регенерации после окончания цикла чтения/записи. Меньшие значения, конечно, более предпочтительны. Данная опция уже не встречается в современных системах.

Refresh During PCI Cycles

— опция, разрешающая/запрещающая проведение регенерации памяти во время циклов чтения/записи на шине PCI. Может принимать значения:
"Enabled" — разрешено,
"Disabled" — запрещено.

Refresh RAS# Assertion

— (установка периода активности сигнала RAS). Этим параметром устанавливается длительность сигнала RAS (в тактах системной шины) для цикла регенерации. Меньшее значение увеличивает производительность системы. Но поскольку принимаемые значения определяются качеством памяти и чипсетом, то к их установке необходимо подходить осмотрительно. Может принимать значения: "4T" (или "4 Clks"), "5T" (или "5 Clks"). Могут быть и другие значения.
Опция может называться также "Refresh Assertion", "Refresh RAS Active Time" или "RAS Pulse Width Refresh".

Refresh Value

— данной опцией устанавливался множитель частоты регенерации. Меньшее значение увеличивало производительность системы за счет снижения частоты регенерации. Но при этом также оптимальный вариант мог быть достигнут только опытной проверкой. Значения опции могли быть выбраны из ряда: 1, 2, 4, 8, 16. Иногда можно было встретить и значение 0,5. Опция эта давно уже не встречается.
Опция может называться "Refresh Divider".

Refresh When CPU Hold

— довольно устаревшая опция, предлагавшая производить регенерацию ("Enabled") или не делать этого ("Disabled") во время пауз процессора.

SDRAM Idle Limit

— данная опция устанавливает количество "пустых" тактов ожидания перед перезарядкой SDRAM-модулей. Оптимальная установка позволяет улучшить производительность циклов чтения/записи путем настройки интервала времени, в течение которого банк памяти может оставаться "пустым" перед перезарядкой (recharging), т.е. перед перезаписью содержимого памяти обратно в ячейки. При этом данная установка не может функционировать как задержка цикла регенерации.
Уменьшение количества тактов с 8 (по умолчанию) до 0 означает, что банк SDRAM-памяти будет немедленно регенерироваться как только контроллер памяти выставит достоверный запрос. При увеличении "SDRAM Idle Limit" от 8 тактов и более перезарядка банка будет задержана на большее время, тем самым возрастет время "хранения" информации из памяти во внутренних цепях. Пришедшая в это время команда чтения/записи будет исполнена мгновенно. Тогда приходится признать, что эффективность памяти возрастет, когда банк более длительное время будет оставаться "пустым". Но всегда есть свое НО! Во внутренних цепях перезарядки не хранятся все строки банка памяти, а только регенерируемой строки. Поэтому пришедший запрос, например, на чтение некоторой строки наверняка не "попадет в точку", и системе придется ожидать завершения регенерации, особенно в случае завышенного значения параметра.
В основном приходится выбирать между значениями в пределах между 0 и 8-ю тактами, правда, насколько позволит это версия BIOS. Конечно, подобная настройка требует серьезной опытной проверки. Поэтому, если есть возможность управлять частотой регенерации, то данную опцию лучше заблокировать. Опытным специалистам можно порекомендовать "поиграть" с двумя характеристиками.
Опция может называться "DRAM Idle Timer". Указанные опции предложили два ряда значений:
"Disabled", "0 Cycle", "8 Cycles", "12 Cycles", "16 Cycles", "24 Cycles", "32 Cycles", "48 Cycles",
"0 clocks", "2 clocks", "4 clocks", "8 clocks", "10 clocks", "12 clocks", "16 clocks", "32 clocks".
Подобные опции достаточно редки. Но вот система на достаточно современном чипсете AMD751 предложила сразу две:
"Idle Precharge Limit" с рядом "0 cycles", "8 cycles", "12 cycles", "16 cycles", "24 cycles", "32 cycles", "48 cycles" и "No idle precharge" и "Extra High Idle Limit" со значениями "Disabled"/"Enabled". Последняя опция разрешает или запрещает вставку дополнительного такта ожидания.

SDRAM Precharge Control

— (управление предварительным зарядом SDRAM). Данная опция определяет, чем управляется "предзаряд" SDRAM — центральным процессором или самой SDRAM-памятью. В некоторых версиях BIOS такая опция может называться (трактоваться) как "SDRAM Page Closing Policy" ("метод закрытия страниц SDRAM" — см. дополнительно в следующем разделе). Если эта опция отключена ("Disabled"), то все циклы процессора к SDRAM завершаются командой "All Banks Precharge Command" в интерфейсе SDRAM-памяти, что улучшает стабильность, но понижает производительность памяти. Если же эта опция включена ("Enabled"), то предварительный заряд контролируется самими чипами памяти. Это уменьшает количество предзарядов SDRAM, значительно возрастает число циклов CPU-to-SDRAM до того момента, когда требуется регенерация памяти. Это однозначно ведет к повышению общей производительности системы, но может влиять на ее стабильность.

SDRAM Refresh

— опция выбора метода регенерации для SDRAM-памяти. Возможные варианты: "Serial" (последовательный перебор строк при регенерации) и "Simultaneous" (одновременная регенерация). При рассмотрении опции "Burst Refresh" уже отмечались недостатки пакетной регенерации, при которой в единый пакет собираются запросы на регенерацию. "Перезарядка" строк происходит мгновенно, но пока не завершится полная регенерация, доступ к шине памяти будет невозможен. Поэтому об оптимальной установке для конкретной системы можно будет говорить после экспериментальных тестов.
Данная опция была замечена в системах, построенных на чипсетах SIS620, SIS600 и некоторых других.

Self-Refresh

— опция включения режима "саморегенерации" основной памяти (если установлено "Enabled"). Этот режим подробно описан выше, в вводной статье.
Опция может называться также "EDO/FPM DRAM Self-Refresh".

Slow Refresh (1:4)

— (медленная pегенеpация). При включении этой опции ("Enabled") схема регенерации будет в 4 раза реже регенерировать память (64 мкс против 16), чем в обычном pежиме. При такой установке пpоизводительность системы повышается благодаpя уменьшению конкуpенции между CPU и схемой pегенеpации, однако не все типы динамических ОЗУ могут поддеpживать такие циклы (в этом случае будет получено сообщение об ошибке четности или о сбое системы). Тогда необходимо установить значение "Disabled". Опция в свое время получила распространение с развитием такого типа ПК, как "laptop" (дорожный ПК), в качестве энергосберегающей функции. В современных системах эта опция встречается все реже.
В свое время считалось также, что применение "медленной регенерации" будет достаточно эффективным при использовании 16-битных ISA-карт расширения, работающих в режиме "bus master". Поскольку сама ISA-карта может быть инициатором запроса на регенерацию, то понятно, что "медленная регенерация" в меньшей степени бы нарушала передачу данных по DMA-каналам.
Опция может называться также "DRAM Slow Refresh", "Slow Refresh" или "Slow Refresh Enable".
Опция может называться и "Slow Memory Refresh Divider". Но этой опцией устанавливался делитель для медленной регенерации: 1, 4, 16 или даже 64. Устанавливать самые большие значения, т.е. в максимальной степени снижать частоту регенерации, позволяла только специальная память.

Staggered Refresh

— трудно переводимый тип регенерации, что-то наподобие "регенерации с перекатыванием". Но этим непонятным термином обозначают "шахматную" регенерацию. Как известно, регенерация выполняется на банках памяти последовательно, с последовательным перебором строк. Но при наличии нескольких банков памяти и включении данной опции банки памяти регенерируются одновременно, но со сдвигом по перебору строк.
Данный тип регенерации позволяет сгладить броски потребления модулями памяти, выравнивая токи в процессе различных переключений. Так как уменьшаются броски тока, то такая регенерация эффективна с точки зрения снижения помех.
С помощью этой несколько устаревшей опции есть возможность установки временного интервала между регенерируемыми строками, измеряемого в системных тактах (0T, 1T, 2T, 3T, 4T, 5T, 6T, 7T). Установка в "0" позволяет регенерировать все строки в банках одновременно. Но опция может предложить и обычный набор значений: "разрешить применение"/"отказать" ("Enabled" и "Disabled").
Опция может называться также "Refresh Stagger" или "DRAM Refresh Stagger By".

Auto self refresh что это

Этот документ (перевод [1]) описывает блок контроллера памяти Spartan ® -6 FPGA (memory controller block, MCB). Для реализации интерфейса с памятью на основе MCB должны использоваться один из двух инструментов:

1. Memory Interface Generator (MIG). Для традиционных дизайнов FPGA (без встроенных процессоров, non-embedded) см. руководство UG416 [2], где находится информация по реализации интерфейса с памятью с помощью утилиты MIG в составе ПО CORE Generator™. Этот документ также содержит информацию по отладке интерфейсов MCB.
2. Embedded Development Kit (EDK). Для embedded-дизайнов см. DS643 [3], где описано, как используется MCB для реализации MPMC в среде EDK.

Примечание: утилита MIG для организации доступа к контроллеру SDRAM доступна в среде программирования Xilinx ISE [10] через меню Tools -> Core Generator. -> IP Catalog -> View by Function -> Memories & Storage Elements -> Memory Interface Generators -> MIG Virtex-6 and Spartan-6.

Руководство содержит главы:

1. Обзор MCB, вводное описание Spartan-6 FPGA MCB.
2. Функциональное описание MCB. Описывается архитектура, сигнальный интерфейс, возможные конфигурации MCB.
3. Разработка с использованием MCB, предоставляются подробности применения MCB в дизайне на Spartan-6, со спецификой настройки блока для имеющегося приложения.
4. Работа MCB, объяснение функций MCB в различных рабочих режимах: запуск (startup), калибровка (calibration), обновление ячеек SDRAM (refresh), предзаряд (precharge), стандартные транзакции чтения/записи и т. д.

Приложение A, ссылки на дополнительную документацию, касающуюся разработки интерфейса памяти.

Следующие документы также доступны для загрузки на сайте xilinx.com.

• Spartan-6 Family Overview. Этот обзор показывает функции и варианты выбора продукции семейства Spartan-6.
• Spartan-6 FPGA Data Sheet: DC and Switching Characteristics. Этот даташит содержит спецификации постоянного тока (DC) и характеристики переключения для семейства Spartan-6.
• Spartan-6 FPGA Packaging and Pinouts Product Specification. Эта спецификация включает таблицы для комбинаций микросхема/корпус и максимального количества I/O, определения выводов, таблиц разводки выводов, диаграмм выводов, механические чертежи корпусов, спецификаций температурных требований.
• Spartan-6 FPGA Configuration User Guide. Это всеобъемлющее руководство по конфигурированию включает главы по конфигурации интерфейсов (последовательных и параллельных), управлению несколькими потоками бит, шифрованию потока бит, технологии boundary-scan и конфигурации JTAG и техникам переконфигурирования.
• Spartan-6 FPGA SelectIO Resources User Guide. Это руководство описывает ресурсы SelectIO™, доступные во всех устройств Spartan-6.
• Spartan-6 FPGA Clocking Resources User Guide. Это руководство описывает ресурсы тактирования, доступные во всех устройствах Spartan-6, включая блоки DCM и PLL.
• Spartan-6 FPGA Block RAM Resources User Guide. Это руководство описывает возможности блока RAM устройства Spartan-6.
• Spartan-6 FPGA Configurable Logic Block User Guide. Это руководство описывает возможности блоков конфигурируемой логики (configurable logic blocks, CLB), доступных во всех устройствах Spartan-6.
• Spartan-6 FPGA GTP Transceivers User Guide. Это руководство описывает трансиверы GTP, доступные в микросхемах Spartan-6 LXT FPGA.
• Spartan-6 FPGA DSP48A1 Slice User Guide. Это руководство описывает архитектуру слайса DSP48A1 в микросхемах Spartan-6 FPGA, и предоставляет примеры конфигурации.
• Spartan-6 FPGA PCB and Pin Planning Design Guide. Это руководство предоставляет информацию по дизайну печатной платы с устройствами Spartan-6, с фокусом на стратегии для принятия решений по дизайну на уровне печатной платы и интерфейса.
• Spartan-6 FPGA Power Management User Guide. Это руководство предоставляет информацию по различным аппаратным методам управления питанием устройств Spartan-6 devices, фокусируясь главным образом на режиме приостановки (suspend mode).

[1. Обзор MCB]

MCB это специальный встроенный блок многопортового контроллера, который значительно упрощает задачу подключения устройств Spartan-6 к большинству стандартов памяти. MCB предоставляет высокое быстродействие, пониженное энергопотребление и быструю разработку — все это более высокого качества, чем большинство эквивалентных реализаций IP. Встроенная реализация MCB сохраняет значимые ресурсы FPGA, и позволяет пользователю сфокусироваться на более уникальных функциях дизайна FPGA.

MCB предоставляет следующие функции и преимущества контроллера памяти Spartan-6 FPGA:

• Поддержка стандартов памяти DDR, DDR2, DDR3 и LPDDR (Mobile DDR)

• Производительность до 800 Mb/s (400 МГц double data rate)

• До 4 ядер MCB в одном устройстве Spartan-6. Каждое ядро MCB содержит:

— 4-, 8- или 16-разрядный одиночный компонент интерфейса памяти
— Плотность памяти до 4 Gb
— Агрегатную полосу пропускания до 12.8 Gb/s

• Конфигурируемый выделенный многопортовый интерфейс пользователя для логики FPGA

— От 1 до 6 портов на MCB в зависимости от конфигурации
— 32-, 64- или 128-битная шина данных
— Двунаправленный (R/W) или однонаправленный (только W или только R) порт.

• Управление банками памяти

— До 8 банков может быть открыто одновременно для повышения эффективности контроллера

• Встроенный контроллер и физический интерфейс (PHY), предоставляющий:

— Предсказуемые интервалы времени
— Низкое энергопотребление
— Гарантируемая производительность

• Заранее определенная разводка внешних выводов (места I/O на корпусе) для каждого MCB

— Упрощенный дизайн печатной платы
— Ножки I/O, не использумые в интерфейса MCB, становятся обычными выводами I/O ( подробнее см. описание интерфейса памяти и таблицу 2-0).

• Поддержка общих опций и атрибутов микросхем памяти

— Программируемая нагрузочная способность
— On-Die Termination (ODT)
— CAS latency (задержка сигнала выборки столбца)
— Self refresh (самообновление, включая часть массива)
— Интервал обновления
— Write recovery time (время восстановления записи)

• Автоматическая калибровка задержки строба памяти и чтения входов данных

— Подстройка взаимосвязи DQS (строб) и DQ (данные) для оптимальной производительности чтения

• Опциональная автоматическая калибровка встроенного в кристалл FPGA терминирования входов для оптимального качества сигналов

• Поддерживаемый Xilinx ® инструментарий разработки CORE Generator™ и Embedded Development Kit (EDK):

— Утилита Memory Interface Generator (MIG), входящая в состав ПО CORE Generator, упрощает разработку с применением MCB
— Дизайны со встроенным процессором также получают доступ к MCB через многопортовый контроллер памяти (multi-port memory controller, MPMC), который доступен в EDK как IP.

Блок-схема на рис. 1-1 показывает главные компоненты архитектуры ядра MCB. Всюду в этом описании MCB представлен так же, как и в memory IP tools ПО CORE Generator или рабочей среде EDK. Эти инструменты обычно генерируют файлы высокоуровневой обертки (IP Wrapper), которые реализуют примитив встроенного блока контроллера памяти и необходимую программную логику вместе с отображением портов, необходимые для полного решения. Например, на рис. 1-1 физический интерфейс MCB использует возможности основного блока ввода вывода (I/O block, IOB) для реализации внешнего интерфейса с памятью. Также используются ресурсы цепей общего тактирования ввода/вывода (I/O clock network).

Spartan 6 FPGA MCB IP Wrapper view fig1 1

Рис. 1-1. Блок контроллера памяти (MCB) Spartan-6 FPGA (вид на IP Wrapper).

Интерфейс пользователя MCB на обычной скорости передачи данных (single data rate, SDR) внутри FPGA может быть сконфигурирован для работы через порты, от 1 до 6. У каждого такого порта есть интерфейс команд и интерфейс чтения и/или записи данных. Два двунаправленных 32-битных и четыре однонаправленных 32-битных аппаратных порта в MCB могут быть сгруппированы для создания пяти различных конфигураций портов.

Другие основные компоненты MCB:

• Арбитр: определяет, какой порт сейчас имеет приоритет для доступа к микросхеме памяти.
• Контроллер: главный блок управления, который преобразует простые запросы, посланные через интерфейс пользователя, в необходимые инструкции и последовательности, необходимые для коммуникации с микросхемой памяти.
• Путь прохождения данных (Datapath): обрабатывает поток записываемых и читаемых данных между микросхемой памяти и логикой пользователя.
• Физический интерфейс (Physical Interface, PHY): преобразует инструкции контроллера в реальные диаграммы времени и сигналы DDR, необходимые для коммуникации с микросхемой памяти.
• Логика калибровки: калибрует PHY для оптимальной производительности и надежности.

Выделенные ядра MCB в микросхемах Spartan-6 позволяют реализовать уровни быстродействия выше, чем эквивалентные решения IP, реализованные на логике FPGA. Из-за того, что чаще всего полоса пропускания канала памяти является узким местом для общей производительности системы, ядра MCB специально разработана для пользователей, которые ожидают получить максимум производительности для недорогого, малопотребляющего устройства FPGA.

Каждое ядро MCB поддерживает интерфейс памяти со скоростями передачи данных, показанными в таблице 1-1. Пиковая производительность одного интерфейса памяти MCB вычисляется для трех доступных вариантов полосы пропускания интерфейса.

Примечание: MCB поддерживает стандартный (Standard) и расширенный (Extended) режимы производительности, в зависимости от выбранных рабочих условий VCCINT. Пиковые производительности, показанные в таблице 1-1, представляют максимальную производительность, когда используется диапазон VCCINT в расширенном режиме производительности. Обратитесь к таблице 2 (Recommended Operating Conditions, рекомендуемые рабочие условия) и характеристики производительности (Performance Characteristics) в секции DS162, Spartan-6 FPGA Data Sheet: DC and Switching Characteristics для рабочих условий VCCINT и спецификаций производительности для режимов Standard и Extended.

Таблица 1-1. Скорости передачи данных и пиковая полоса пропускания для каждого MCB.

Тип памяти
Скорость (Data Rate) Mb/сек DDR (такты в МГц)
Пиковая полоса на интерфейс MCB (Gb/сек)
Min Max (1) 4 бита 8 бит 16 бит
DDR 167 Mb/сек (2)
(83.3 МГц)
400 Mb/сек
(200 МГц)
1.6 Gb/сек 3.2Gb/сек 6.4 Gb/сек
DDR2 250 Mb/сек (2)
(125 МГц)
800 Mb/сек
(400 МГц)
3.2 Gb/сек 6.4Gb/сек 12.8 Gb/сек
DDR3 606 Mb/сек (2)
(303 МГц)
800 Mb/сек
(400 МГц)
3.2 Gb/сек 6.4Gb/сек 12.8 Gb/сек
LPDDR 60 Mb/сек (2)
(30 МГц)
400 Mb/сек
(200 МГц)
1.6 Gb/сек 3.2Gb/сек 6.4 Gb/сек

1. Показан максимум скорости данных MCB, который не относится ко всем классам скоростей (speed grade) FPGA. См. DS162, Spartan-6 FPGA Data Sheet: DC and Switching Characteristics, для получения производительности в зависимости от speed grade. Устройства -3N speed-grade не поддерживают MCB.
2. Минимальные требования к частоте MCB диктуются минимальной спецификацией частоты для стандарта памяти. См. стандарты памяти в Приложении A, где даны ссылки на соответствующие спецификации JEDEC.

Количество доступных MCB в имеющемся устройстве Spartan-6 определяется по диапазону плотности логики, в который попадает устройство. Самое маленькое устройство (XC6SLX4) не содержит MCB, средние по плотности устройства содержат два MCB, и более крупные по плотности устройства содержат четыре MCB. Таблица 1-2 показывает количество поддерживаемых MCB для каждой комбинации устройство/корпус.

Примечание: MCB разработан для одного компонента памяти x4, x8 или x16. Интерфейсы с несколькими компонентами в одном MCB (например, две микросхемы памяти x8, подключенные к MCB в режиме x16) не поддерживаются.

Таблица 1-2. Поддержка MCB в разных комбинациях устройство/корпус.

Устройство
Корпус
TQG144 CPG196 CSG225 FT(G)256 CSG324 FG(G)484 CSG484 FG(G)676 FG(G)900
XC6SLX4 0 0 0
XC6SLX9 0 0 2 (1) 2 2
XC6SLX16 0 2 (1) 2 2
XC6SLX25 2 2 2
XC6SLX45 2 2 2 2
XC6SLX75 2 (2) 2 (2) 4
XC6SLX100 2 (2) 2 (2) 4
XC6SLX150 2 (2) 2 (2) 4 4
XC6SLX25T 2 2
XC6SLX45T 2 2 2
XC6SLX75T 2 (2) 2 (2) 4
XC6SLX100T 2 (2) 2 (2) 4
XC6SLX150T 2 (2) 2 (2) 4 4

1. Для устройств в корпусе CSG225 блоки MCB поддерживаются только в опциях интерфейса памяти x4 и x8, т. е. устройства LPDDR не могут поддерживаться. Кроме того, в этом корпусе доступно только 13 бит адреса MCB, что ограничивает максимальную плотности памяти до 256 Mb для DDR2 и 512 Mb для DDR и DDR3.
2. Для устройств с четырьмя MCB только два MCB привязаны к ножкам корпусов FGG484 и CSG484.

Spartan-6 FPGA MCB поддерживает широкий диапазон типов памяти, конфигураций и плотностей, что показано в таблице 1-3.

Таблица 1-3. Поддерживаемые конфигурации памяти.

Плотность памяти
(в битах)
Разрядность
(бит DQ)

Тип памяти
LPDDR DDR DDR2 DDR3
128 Mb x16 X X
x8 X
x4 X
256 Mb x16 X X X
x8 X X
x4 X X
512 Mb x16 X X X X
x8 X X X
x4 X X X
1 Gb x16 X X X X
x8 X X X
x4 X X X
2 Gb x16 X X
x8 X X
x4 X X
4 Gb (1) x16 X

1. MCB поддерживает single-die 4 Gb компоненты памяти (когда они доступны от производителей памяти) но не dual-die 4 Gb.

Spartan-6 FPGA MCB поддерживается стандартным ПО и инструментами, как и другой софт и встраиваемые блоки IP, предоставляемые компанией Xilinx. Для обычных (т. е. без встроенных микроконтроллеров, non-embedded) дизайнов FPGA блоки MCB могут быть интегрированы в дизайн с помощью утилиты Memory Interface Generator (MIG), доступной в инструменте CORE Generator.

Утилита MIG используется для генерации интерфейсов памяти для всех Xilinx FPGA. Она генерирует необходимые файлы RTL дизайна, файлы ограничений пользователя (user constraints files, UCF) и файлы скриптов для симуляции и реализации решений памяти, предоставленных Xilinx. В главе Getting Started руководства UG416 [2] содержатся подробные пошаговые инструкции о том, как использовать утилиту MIG для реализации интерфейсов памяти на основе MCB.

Для embedded-дизайнов (например, с ядром процессора MicroBlaze™), GUI конфигуратор IP находится в инструментарии Xilinx Platform Studio из состава рабочей среды EDK, который можно использовать для указания характеристик интерфейса памяти. В таком процессе разработки MCB работает как нижележащая аппаратная реализация блока MPMC IP, который доступен в библиотеке EDK. В дополнение к настройке контроллера и атрибутов интерфейса памяти инструментарий генерирует необходимые программные мосты к шине PLB, Xilinx Cache Link (XCL), LocalLink (LL) или другим указанным интерфейсам для соединения периферийных устройств EDK с конечными портами контроллера памяти.

[2. Функциональное описание MCB]

MCB предоставляет простой, надежный интерфейс для подключения к памяти из одного компонента (одной микросхемы SDRAM). Интерфейс пользователя (MCB User Interface) устраняет сложность подключения DDR, так что больше ресурсов FPGA может быть направлено на уникальные аспекты дизайна.

MCB может работать на скоростях, которые выше сравнимых по функционалу «soft»-решений, реализованных на логике FPGA. Со скоростями передачи данных до 800 Mb/s блок MCB более чем вдвое повышает быстродействие по сравнению с предыдущими недорогими решениями интерфейса памяти FPGA, повышая уровень полосы пропускания и/или расширяя разрядность шин памяти. В результате экономятся ресурсы логики FPGA и ресурсы I/O, которые иначе потребовались бы для коммуникации с микросхемой памяти.

Рис. 2-1 расширяет блок-диаграмму MCB, представленную в Главе 1, чтобы показать основные сигналы, связанные с внутренним интерфейсом пользователя (User Interface) в FPGA, а также сигналы I/O, подключаемые к внешнему устройству памяти. Хотя User Interface может быть сконфигурирован для поддержки до 6 портов, для упрощения рис. 2-1 показывает сигналы только для одного двунаправленного порта.

Spartan 6 FPGA MCB Architecture fig2 1

Рис. 2-1. Архитектура MCB с основными внешними (I/O) и внутренними сигналами.

Имеется 3 базовых типа портов, которые могут быть реализованы в User Interface:

• Порт чтения (Read port, однонаправленный)
• Порт записи (Write port однонаправленный)
• Порт чтения и записи (Read and Write port, двунаправленный)

Каждый порт содержит путь для команды (command path) и путь для данных (datapath). Для однонаправленного порта command path реализован в паре с read-only или одиночным write-only datapath. Однако для двунаправленного порта одиночный command сделан общим для обоих путей datapath read и write для этого порта. На User Interface используются стеки FIFO для command path и datapath, чтобы организовать очередь запросов к памяти и управлять перемещениями данных из домена тактов пользователя в домен тактов контроллера памяти.

Сигналы command path для порта используются при выдаче запросов к стекам FIFO команд. У стека command FIFO глубина программируется пользователем до 4 ячеек. В нем сохраняется тип инструкции (read, write, refresh и т. д.), адрес и длина пакета (burst length) связанные с запрошенной транзакцией памяти. Путь команды (command path) также включает флаги статуса заполненности и опустошения (full и empty), выходящие из стека command FIFO, они показывают, могут ли быть приняты новые запросы. Имеется 6 command FIFO, доступных аппаратно; конфигурация портов определяет, что доступно для User Interface (см. «Конфигурации порта»). Для дополнительной информации по сигналам command path см. «Подробное описание интерфейса».

На datapath нижележащая аппаратура содержит 6 портов разрядностью 32-бита, два из которых изначально двунаправленные. Другие четыре порта изначально однонаправленные, но они могут также комбинироваться для создания двунаправленных портов. Всего возможно создать 5 конфигураций портов путем различных комбинаций этих шести аппаратных портов для реализации желаемого интерфейса пользователя (User Interface, см. «Конфигурации порта»). Ширина полей слова данных чтения и записи интерфейса пользователя естественно программируются путем выбора конфигурации.

Стеки FIFO datapath имеют глубину 64 ячейки, позволяя пакетные передачи длиной до 64 слов данных от указанного начального адреса. В дополнение к полю слова данных стеки FIFO пути записи содержат поля бит маски, которые позволяют опционально маскировать записываемые данные на базе байта. Выходы заполненности (full), опустошения (empty), недогрузки (underrun), счетчика количества (count) и ошибки показывают текущее состояние стеков FIFO записываемых данных. Стеки FIFO данных чтения имеют подобный набор выходов информации о состоянии. Более подробно про сигналы read и write datapath см. «Подробное описание интерфейса».

Арбитр внутри MCB использует механизм арбитража на основе слотов времени, чтобы определить от одного до шести портов User Interface, которые в настоящее время имеют доступ к памяти. Есть также методы, которые позволяют некоторым портам дать повышенный приоритет, так что они могут чаще получить доступ к памяти. Это обсуждается в разделе «Арбитраж».

Логика управления банком в MCB позволяет открыть до 8 банков памяти одновременно, что позволяет контроллеру поддерживать высокий уровень эффективности доступа к данным по всем банкам. Дополнительно запросы чтения и записи памяти могут включать опциональный авто-предзаряд (auto-precharge), чтобы автоматически закрыть банк по завершении транзакции. Это повышает эффективность произвольного доступа к данным в пределах банка. MCB не выполняет любое переупорядочивание транзакций.

Конфигурации порта. 5 возможных конфигураций порта для интерфейса пользователя (User Interface) показаны на рис. 2-2. В конфигурации 1, порты пользователя в действительности напрямую отображаются на 6 нижележащих физических аппаратных портов. Для других конфигураций диаграмма показывает, как физические порты соединяются для создания различных комбинаций портов пользователя. Как показано на рис. 2-2, утилита MIG всегда последовательно нумерует порты для User Interface начиная с 0, независимо от нижележащих номеров физических портов.

Во всех пяти конфигураций портов command path, write datapath и read datapath в имеющемся порте всегда имеют отдельное тактирование, и поэтому могут быть подключены к независимым друг от друга доменам тактирования. Однако рекомендуется, чтобы все пути, связанные с имеющимся портом, удерживались в одном домене тактирования, чтобы упростить требования к интерфейсу.

Spartan 6 FPGA MCB Port Configurations fig2 2

Рис. 2-2. Возможные конфигурации порта для интерфейса пользователя.

Утилита MIG в инструментарии CORE Generator™ предоставляет простой графический интерфейс для настройки количества и типа портов, требуемых для определенного приложения. Для дизайнов, которые требуют меньшую ширину шин, чем максимальная, или меньшую функциональность User Interface, неиспользуемые порты могут быть просто запрещены через интерфейс MIG. В случае, когда требуются дополнительные порты вне этих 6 портов, предоставленных в MCB, в логике FPGA могут быть реализованы мосты портов с добавочными механизмами арбитража, чтобы расширить возможности порта MCB.

Арбитраж. Арбитр внутри MCB использует механизм арбитража на основе слотов времени, чтобы определить, какой порт User Interface в настоящий момент может получить доступ к памяти. Имеется 12 тайм-слотов в таблице арбитража, как показано в таблице 2-1. Каждый тайм-слот соответствует одному периоду такта памяти. Порядок приоритета порта в имеющемся тайм-слоте определяется по номерам портов, введенным в столбцы от Priority 1 до 6 с перемещением слева направо по таблице.

Таблица 2-1. Таблица арбитража MCB с конфигурацией Round Robin.

Тайм-слот Приоритет 1 Приоритет 2 Приоритет 3 Приоритет 4 Приоритет 5 Приоритет 6
0 0 1 2 3 4 5
1 1 2 3 4 5 0
2 2 3 4 5 0 1
3 3 4 5 0 1 2
4 4 5 0 1 2 3
5 5 0 1 2 3 4
6 0 1 2 3 4 5
7 1 2 3 4 5 0
8 2 3 4 5 0 1
9 3 4 5 0 1 2
10 4 5 0 1 2 3
11 5 0 1 2 3 4

Таблица 2-1 показывает случай, где User Interface конфигурируется на максимум 6 портов. Если MCB сконфигурирован на меньше, чем 6 портов, таблица арбитража автоматически подстраивается, чтобы были только столбцы приоритета только для выбранного количества портов.

Во время имеющегося периода тактов арбитр определяет, какой порт обрабатывается в каком тайм-слоте. Позиция перемещается слева направо по столбцам приоритета, чтобы найти первый порт в той строке, у которой есть команда, ожидающая в его command FIFO. Этот порт тогда обрабатывается с выполнением ожидающей команды, и арбитр перемещается к следующему тайм-слоту на следующем такте. Если нет порта с командой в таком столбце, то в этом тайм-слоте никаких действий не производится, и такт теряется.

Порядок приоритетов порта в таблице арбитража полностью программируется. Утилита MIG по умолчанию предоставляет схему обработки приоритетов round-robin, как показано в таблице 2-1, где всем портам дается самый высокий приоритет в 2 из 12 доступных тайм-слотов. Однако утилита MIG также предоставляет настраиваемую опцию, где пользователь может определить любую таблицу арбитража. Это позволяет для некоторых портов получить улучшенный доступ к устройству памяти. Однако эту опцию следует пользоваться с осторожностью, чтобы гарантировать, что все присвоенные приоритеты не предотвращают доступ к устройству памяти любых активных портов.

Можно сконфигурировать User Interface для получения 5 портов (двух 32-битных двунаправленных и трех 32-битных однонаправленных, с одним запрещенным 32-битным однонаправленным портом). В этом случае таблица арбитража уменьшается до 10 тайм-слотов. Когда количество тайм-слотов случайно делится на количество портов, то гарантируется, что каждый порт получит эквивалентный доступ к устройству памяти, если это необходимо.

Программирование. MCB глубоко конфигурирутся через набор атрибутов устройства памяти и контроллера, позволяя поддерживать несколько стандартов и конфигураций памяти. Утилита MIG из инструментария CORE Generator и IP Configurator в среде разработки Xilinx Platform Studio с наличием EDK предоставляют простой способ конфигурирования атрибутов MCB для реализации желаемого интерфейса памяти (например, см. главу «Getting Started» из [2]).

Таблицы 2-2 и 2-3 перечисляют соответственно атрибуты устройства памяти и контроллера, поддерживаемые MCB. Предоставлены специфические для HDL имена параметров, возможные значения и описания, связанные с каждым атрибутом. Главным образом утилита MIG или инструменты IP Configurator отвечают за установку значений всех параметров, так что их значения не должны модифицироваться напрямую.

Атрибут Имя параметра Описание / возможные значения
Период тактов контроллера C_MEMCLK_PERIOD Этот атрибут конвертирует параметры времени памяти между циклами тактов и пикосекундами. Возможные значения (в пикосекундах) устанавливаются на базе выбранной в утилите MIG микросхемы памяти.
Конфигурация порта контроллера C_PORT_CONFIG Этот атрибут устанавливает конфигурацию порта User Interface. Он определяет направление порта (B = Bidirectional, W = Unidirectional Write, R = Unidirectional Read) и ширину шины данных (32, 64 или 128 бит). Возможные значения:
B32_B32_W32_W32_W32_W32
B32_B32_W32_W32_W32_R32
B32_B32_W32_W32_R32_W32
B32_B32_W32_W32_R32_R32
B32_B32_W32_R32_W32_W32
B32_B32_W32_R32_W32_R32
B32_B32_W32_R32_R32_W32
B32_B32_W32_R32_R32_R32
B32_B32_R32_W32_W32_W32
B32_B32_R32_W32_W32_R32
B32_B32_R32_W32_R32_W32
B32_B32_R32_W32_R32_R32
B32_B32_R32_R32_W32_W32
B32_B32_R32_R32_W32_R32
B32_B32_R32_R32_R32_W32
B32_B32_R32_R32_R32_R32
B32_B32_B32_B32
B64_B32_B32
B64_B64
B128
Ширина шины данных порта (порты 0 и 1) C_P0_DATA_PORT_SIZE C_P1_DATA_PORT_SIZE Порты 0 и 1 User Interface могут менять ширину шины данных в зависимости от выбранной конфигурации порта (порты от 3 до 5, если доступны, имеют всегда разрядность 32 бита). Эти параметры устанавливают ширину данных порта 0 и 1. Возможные значения: 32, 64, 128.
Ширина маски данных (порты 0 и 1) C_P0_MASK_SIZE
C_P1_MASK_SIZE
Этот атрибут устанавливает количество бит маски для портов 0 и 1, в зависимости от ширины шины данных, как это определено конфигурацией порта. Возможные значения: 4, 8, 16.
Разрешение порта контроллера C_PORT_ENABLE Это 6-битное значение определяет, какой из нижележащих шести аппаратных 32-битных порта используются в имеющейся конфигурации порта. Возможные значения: например, b001111 означает, что разрешены порты от 0 до 3.
Порядок отображения адресов C_MEM_ADDR_ORDER Этот атрибут определяет, как адрес байта, представленный для User Interface, отображается на биты адреса физического банка памяти, строки, и столбца. Этот атрибут основывается на схеме системной адресации. Это значение должно быть установлено для получения наибольшего преимущества MCB при использовании возможностей управления открытым банком. Возможные значения: BANK_ROW_COLUMN, ROW_BANK_COLUMN.
Arbitration Time Slot Count C_ARB_NUM_TIME_SLOTS Атрибут устанавливает количество тайм-слотов в таблице арбитража. Большинство конфигураций порта имеют 12 тайм-слотов, но конфигурации порта с 5 активными портами имеют 10 тайм-слотов в таблице арбитража, чтобы гарантировать одинаковый арбитраж. Возможные значения: 12, 10.
Arbitration Time Slot Values C_ARB_TIME_SLOT[0:11] Эти восьмеричные значения из 6 цифр (18 бит) устанавливают значения приоритета порта для каждого тайм-слота. Возможные значения: например, C_ARB_TIME_SLOT0 = 18’o012345 (устанавливает порт 0 с наивысшим приоритетом до порта 5 с самым низким приоритетом).
Пропуск калибровки контроллера (симуляция) C_MC_CALIB_BYPASS Указывает утилите MIG установить файлы симуляции для пропуска последовательности калибровки контроллера, чтобы ускорить симуляцию. Примечание: этот параметр используется только для симуляции. Возможные значения: YES, NO.
Reserved Calibration Address Space C_MC_CALIBRATION_RA C_MC_CALIBRATION_BA C_MC_CALIBRATION_CA Определяет начальные адреса строки, банка и столбца, зарезервированные для калибровки. Этот атрибут используется для тренировки шаблонами данных во время перекалибровки, чтобы избежать перезаписи данных приложения. Возможные значения (возможен любой допустимый адрес), примеры:
C_MC_CALIBRATION_RA = 15’h0000
C_MC_CALIBRATION_BA = 3’h0
C_MC_CALIBRATION_CA = 12’h000
Режим калибровки C_MC_CALIBRATION_MODE Этот атрибут определяет, выполнит ли MCB точное выравнивание и компенсацию в реальном времени напряжения/температуры для строба DQS (что рекомендуется) или будет просто использовать фиксированное соотношения периода бита к смещению DQS в окне данных. Возможные значения: CALIBRATION (точное выравнивание DQS с компенсацией напряжения/температуры), NOCALIBRATION (фиксированная задержка смещения DQS).
Значение задержки смещения DQS C_MC_CALIBRATION_DELAY Этот атрибут устанавливает фиксированную задержку смещения DQS как соотношение периода бита, когда C_MC_CALIBRATION_MODE = NOCALIBRATION. Возможные значения: QUARTER, HALF, THREEQUARTER, FULL.

Параметры интервалов времени памяти берутся из даташитов вендоров, и автоматически назначаются инструментами, когда выбирается поддерживаемое устройство. Параметры интервалов времени могут быть указаны при создании пользовательского устройства (см. «Setting Controller Options» в [2]).

Подробное описание интерфейса. Как показано в блок-схеме архитектуры на рис. 2-1, у MCB есть 2 базовых интерфейса: внутренний User Interface для логики FPGA, и внешний интерфейс к устройству памяти с предопределенными ножками выводов I/O. В следующих подсекция обсуждаются все сигналы, связанные с этими двумя интерфейсами. В остальной части этого документа все описания ссылаются на интерфейс IP wrapper, полученный от CORE Generator или инструментария EDK, но не к интерфейсу примитива нижележащего блока контроллера памяти.

Интерфейс пользователя (сторона фабрики кристалла). User Interface содержит все необходимые сигналы для логики пользователя в FPGA, чтобы взаимодействовать с command path и datapath портов MCB. Он также включает сигналы основного тактирования и сброса MCB, как и сигналы, относящиеся к операциям калибровки, отладки и самообновления. User Interface может быть сконфигурирован на любой один из 6 портов, как показано в разделе «Конфигурации порта».

Сигналы тактов, сброса, калибровки. Таблица 2-4 показывает сигналы, связанные с тактированием, сбросом и калибровкой MCB User Interface.

Таблица 2-4. Сигналы Clock, Reset и Calbration.

Имя сигнала Напр. Описание
async_rst Вход Главный системный сброс для MCB.
calib_done Выход Этот сигнал с активным уровнем лог. 1 показывает завершение всех фаз калибровки во время последовательности запуска (start-up) MCB. Транзакции не должны подтверждаться для MCB, пока этот сигнал не перейдет в лог. 1, чтобы показать завершение калибровки. См. раздел «Калибровка» в Главе 4 для получения дополнительной информации.
mcb_drp_clk Вход Этот тактовый сигнал синхронизирует модуль программной калибровки (soft calibration module) с доменом тактов sysclk_2x. Этот тактовый сигнал должен быть сгенерирован той же PLL, что и sysclk_2x, чтобы гарантировать синхронность фазы тактов с этим доменом. Подробнее см. «Тактирование» в Главе 3.
pll_ce_0 Вход Строб разрешения тактирования ввода/вывода (I/O clock enable) от BUFPLL_MCB. Этот сигнал выдает импульс лог. 1 на каждом другом периоде тактов sysclk_2x. Он используется для удвоения скорости передачи данных в блоках I/O.
pll_ce_90 Вход Строб разрешения тактирования ввода/вывода (I/O clock enable) от BUFPLL_MCB. Этот сигнал выдает импульс лог. 1 на каждом другом периоде тактов sysclk_2x_180. Он используется для удвоения скорости передачи данных в блоках I/O.
pll_lock Вход Сигнал захвата PLL от блока BUFPLL_MCB.
sysclk_2x Вход Главная системная тактовая частота для MCB. Этот сигнал генерируется блоком PLL Spartan-6 FPGA, и повторно буферизируется драйвером BUFPLL_MCB для цепи тактирования ввода/вывода (I/O clock network). Он работает на двойной частоте тактов памяти (например 667 МГц для 333 МГц на интерфейсе памяти).
sysclk_2x_180 Вход Это вход сигнала для сдвинутых по фазе тактов с той же частотой, что и sysclk_2x. Этот сигнал тактов генерируется теми же ресурсами PLL/BUFPLL_MCB.

Command Path. Таблица 2-5 определяет сигналы, связанные с путем команд MCB User Interface. Все имена сигналов порта имеют префикс pX, где X представляет номер порта (например сигналы порта 0 имеют префикс p0, порт 1 префикс p1, и так далее).

Таблица 2-5. Сигналы Command Path.

Имя сигнала Напр. Описание
pX_cmd_addr[29:0] Вход Байтовый начальный адрес для текущей транзакции. Адрес должен быть выровнен по размеру порта: для 32-битных портов младшие 2 бита должны быть нулями, для 64-битных портов младшие 3 бита должны быть нулями, и для 128-битных портов младшая тетрада адреса должна быть обнулена.
pX_cmd_bl[5:0] Вход Длина пакета (Burst Length) в количестве используемых слов для текущей транзакции. Burst Length кодируется числами от 0 до 63, представляя этим от 1 до 64 слов пользователя (например, b00011 означает длину пакета транзакции 4). Ширина слова пользователя равна разрядности порта (например, burst length 3 на 64-битном порту передает 3 x 64-битных слов пользователя, что всего равно 192 битам).
pX_cmd_clk Вход Такты пользователя для Command FIFO. Сигналы FIFO захватываются на положительном перепаде этих тактов.
pX_cmd_empty Выход Это флаг с активным уровнем лог. 1 для Command FIFO, показывающий, что нет команд, поставленных в очередь FIFO, хотя в этот момент могут быть команды в обработке.
pX_cmd_en Вход Это сигнал, активный по лог. 1, для разрешения записи (write-enable) для Command FIFO. Этот сигнал более подробно описан в Главе 4.
pX_cmd_error Выход Этот выход показывает, что произошла ошибка порта команды (Command Port), потому что указатели FIFO не синхронизировались. Требуется сброс MCB для восстановления из этой ситуации.
pX_cmd_full Выход Это выход с активным лог. 1, который работает как флаг заполнения Command FIFO. Он показывает, что FIFO не может принять больше команд и записей блоков в Command FIFO.
pX_cmd_instr[2:0] Вход Код команды для текущей инструкции. Бит 0 представляет выбор READ/WRITE, бит 1 это разрешение Auto Precharge, и бит 2 представляет Refresh, который всегда получает приоритет:
Write: 3’b000
Read: 3’b001
Write with Auto Precharge: 3’b010
Read with Auto Precharge: 3’b011
Refresh: 3’b1xx
Более подробно этот сигнал описан в Главе 4.

Write Datapath. Таблица 2-6 показывает все сигналы, связанные с путем записи MCB User Interface. Все имена сигналов порта имеют префикс pX, где X представляет номер порта (например сигналы порта 0 имеют префикс p0, порт 1 префикс p1, и так далее).

Таблица 2-6. Сигналы Write Datapath.

Имя сигнала Напр. Описание
pX_wr_clk Вход Это сигнал тактов пользователя для Write Data FIFO.
pX_wr_count[6:0] Выход Значение счетчика для Write Data FIFO. Этот выход показывает, сколько слов пользователя находится в FIFO (от 1 до 64). Значение счетчика 0 показывает, что FIFO пуст. Этот сигнал имеет латентность больше, чем флаг pX_wr_empty. Таким образом, FIFO может быть пустым или испытывать недогрузку, даже когда счетчик не равен 0.
pX_wr_data[PX_SIZE-1:0] Вход Значение Write Data для загрузки в Write Data FIFO и отправки в память. PX_SIZE может быть 32, 64 или 128 бит, в зависимости от конфигурации.
pX_wr_empty Выход Это сигнал, активный по лог. 1, является флагом опустошения Write Data FIFO. Он показывает, что в FIFO нет данных для записи в память.
pX_wr_en Вход Это сигнал, активный по лог. 1, является сигналом разрешения записи для Write Data FIFO. Он показывает, что значение pX_wr_data допустимо для загрузки в FIFO. Данные загружаются по фронту нарастания pX_wr_clk, когда pX_wr_en = 1 и pX_wr_full = 0.
pX_wr_error Выход Этот сигнал показывает, что произошла ошибка Write Data FIFO, из-за того, что указатели FIFO рассинхронизировались. Для восстановления из этого состояния должен быть произведен сброс MCB.
pX_wr_full Выход Этот сигнал с активным лог. 1 работает как флаг заполненности Write Data FIFO. Когда этот сигнал в лог. 1, то предотвращается загрузка данных в FIFO.
pX_wr_mask[PX_MASKSIZE-1:0] Вход Биты маски данных для Write Data. Эта маска загружается в FIFO с совпадением со связанными Write Data (pX_wr_data). Один бит маски связан с каждым байтом данных. Когда бит pX_wr_mask bit в лог. 1, соответствующий байт данных маскируется (т. е. не записывается в память).
pX_wr_underrun Выход Этот сигнал с активным лог. 1 работает как флаг недогрузки. Он показывает, что недостаточно данных в Write Data FIFO для завершения транзакции. Последнее достоверное слово данных будет записано для продолжения и завершения пакета. Чтобы предотвратить недогрузку, гарантируйте, что в FIFO достаточно данных, когда выдаете инструкцию Write для Command FIFO. Должен быть выставлен сигнал sys_rst для сброса этого флага и восстановления из этой ситуации.

Read Datapath. Таблица 2-7 показывает все сигналы, связанные с путем чтения MCB User Interface. Все имена сигналов порта имеют префикс pX, где X представляет номер порта (например сигналы порта 0 имеют префикс p0, порт 1 префикс p1, и так далее).

Таблица 2-7. Сигналы Read Datapath.

Имя сигнала Напр. Описание
pX_rr_clk Вход На этот вход подаются такты пользователя для Read Data FIFO.
pX_rd_en Вход Это сигнал, активный по лог. 1, работает как разрешение чтения для Read Data FIFO. Читаемые данные тактируются для вывода из FIFO по фронту нарастания pX_rd_clk, когда pX_rd_en = 1 и pX_rd_empty = 0.
pX_rd_data[PX_SIZE-1:0] Выход Значение Read Data, возвращаемое из памяти. Этот сигнал управляется выходом Read Data FIFO для передачи в логику FPGA. PX_SIZE может быть 32, 64 или 128 бита, в зависимости от конфигурации порта.
pX_rd_full Выход Это сигнал с активным уровнем лог. 1 представляет флаг заполненности Read Data FIFO. Когда сигнал в лог. 1, он предотвращает возврат дополнительных данных из памяти (данные не будут попадать в FIFO).
pX_rd_empty Выход Этот сигнал, активный по лог. 1, работает как флаг опустошения Read Data FIFO. Он показывает, что нет достоверных данных в FIFO.
pX_rd_count[6:0] Выход Значение счетчика для Read Data FIFO. Этот сигнал показывает, сколько слов пользователя находится в FIFO (от 1 до 64). Значение счетчика 0 показывает, что FIFO пуст. Этот сигнал имеет задержку больше, чем флаг pX_rd_full. Таким образом, FIFO может быть полным или может быть переполнение, даже если значение счетчика меньше 64.
pX_rd_overflow Выход Сигнал переполнения с активным лог. 1. Он показывает, что данные были потеряны из-за того, что Read Data продолжала возвращать данные из памяти после того, как Read Data FIFO заполнился. Чтобы предотвратить переполнение:
• Убедитесь, что достаточно памяти для сохранения запрошенных Read Data в FIFO перед выдачей инструкции Read в Command FIFO.
• Убедитесь, что учтены все выполняющиеся транзакции. Должен быть выставлен сигнал sys_rst для сброса этого флага и восстановления из этой ситуации.
pX_rd_error Выход Этот сигнал показывает, что произошла ошибка Read Data FIFO, потому что рассинхронизировались указатели FIFO. Для восстановления из этой ситуации должен быть выставлен сброс MCB.

Сигналы самообновления. Таблица 2-8 показывает сигналы self-refresh, доступные через интерфейс пользователя. Самообновление подробнее рассматривается в Главе 4.

Таблица 2-8. Сигналы Self-Refresh.

Имя сигнала Напр. Описание
selfrefresh_enter Вход Этот вход срабатывает по перепаду нарастания уровня. Когда он выставлен, MCB запрашивает устройство памяти вход в режим самообновления (self-refresh mode). Этот сигнал должен оставаться выставленным, пока не станет активным сигнал selfrefresh_mode.
selfrefresh_mode Выход Активный уровень лог. 1 этого сигнала показывает, что устройство памяти находится в режиме самообновления.

Интерфейс устройства памяти. Memory Device Interface содержит все необходимые сигналы для обмена с внешним устройством памяти. Все эти сигналы (таблица 2-9) в микросхемах логики Spartan-6 выведены на предварительно определенные выводы корпуса. См. See UG385 [4] для подробной информации по разводке выводов MCB каждой комбинации устройство/корпус. Дополнительно программный модуль калибровки (soft calibration module), сгенерированный MIG, требует выделение дополнительного вывода (RZQ) для всех дизайнов MCB. RZQ требуемый вывод, однако его местонахождение может быть перемещено в пределах банка MCB. Когда калиброванный вход остановки (Calibrated Input Termination) выбирается утилитой MIG, вывод ZIO также генерируется для использования в модуле программной калибровки. Место вывода ZIO может быть также перемещено, но должно быть размещено на связанном I/O (т. е. на допустимом выводе корпуса) в пределах банка MCB. См. секцию «Setting FPGA Options» в UG416 [2] для получения дополнительной информации по выводам RZQ и ZIO.

Примечание: все предопределенные выводы возвращаются в состояние обычных ножек ввода/вывода (general-purpose I/O), когда используется MCB. Дополнительно не используемые выводы из активного MCB также возвращаются к состоянию general-purpose I/O. Это включает ножки старшей части адреса или ножки адреса банка, которые не нужны для устройства памяти определенной плотности, биты данных DQ, которые не нужны для определенной разрядности интерфейса, сигналы сброса и ODT, которые не нужны для стандарта памяти, и стробы UDQS / UDQS_n для интерфейсов x4 или x8. Все другие выводы интерфейса требуются для всех дизайнов на основе MCB. Дополнительно есть 2 исключения из правил восстановления состояния ножек general-purpose I/O:

a. Парные выводы маски данных (Data Mask, DM), если используется только LDM, то UDM будет потерян как вывод general I/O. Выводы маски данных требуются во всех дизайнах MCB для поддержки запросов пакетных передач переменной длины (variable burst length requests) в интерфейсе пользователя. Таким образом, оба вывода LDM и UDM недоступны как general I/O всякий раз, когда используется MCB.
b. Парные выводы стробирования данных, если используется только DQS (строб single-ended), DQS_n теряется как I/O. То же самое верно для UDQS и UDQS_n.

Таблица 2-9. Сигналы Memory Device Interface.

Имя сигнала Напр. Описание
mcbx_dram_addr [C_MEM_ADDR_WIDTH–1:0] Выход Шина адреса для устройства памяти. C_MEM_ADDR_WIDTH устанавливается утилитой MIG в зависимости от конфигурации устройства памяти (максимальное значение 15).
mcbx_dram_ba[2:0] Выход Шина адреса банка устройства памяти. MCB поддерживает устройства памяти, у которых до 8 банков.
mcbx_dram_cas_n Выход Этот сигнал с активной лог. 1 работает как строб адреса столбца для устройства памяти.
mcbx_dram_cke Выход Сигнал с активной лог. 1 работает как разрешение тактов для устройства памяти.
mcbx_dram_clk Выход Вывод дифференциальных тактов (p output) для устройства памяти.
mcbx_dram_clk_n Выход Вывод дифференциальных тактов (n output) для устройства памяти.
mcbx_dram_ddr3_rst Выход Это сигнал сброса устройства памяти DDR3.
mcbx_dram_dq [C_NUM_DQ_PINS–1:0] Вход и выход Двунаправленная шина данных для устройства памяти. C_NUM_DQ_PINS устанавливается утилитой MIG в зависимости от конфигурации устройства памяти (допустимые значения 4, 8 и 16).
mcbx_dram_dqs Вход и выход Двунаправленный строб данных для DQ[7:0]. Этот сигнал работает как вход во время транзакций Read и как выход для транзакций Write.
mcbx_dram_dqs_n Вход и выход Двунаправленный комплементарный строб данных для DQ[7:0]. Этот сигнал работает как вход во время транзакций Read и как выход для транзакций Write.
mcbx_dram_ldm Выход Это выход маски данных для младшего байта данных (DQ[7:0]) для конфигураций x16, x8 или x4.
mcbx_dram_odt Выход Это выход сигнала on-die termination. ODT поддерживается микросхемами памяти DDR2 и DDR3.
mcbx_dram_ras_n Выход Сигнал с активным лог. 0, работающий как строб адреса строки для устройства памяти.
mcbx_dram_udm Выход Это выход маски данных для старшего байта данных (DQ[15:8]), когда подключено устройство памяти x16.
mcbx_dram_udqs Вход и выход Двунаправленный строб данных для DQ[15:8]. Этот сигнал работает как вход во время транзакций Read и как выход во время транзакций Write.
mcbx_dram_udqs_n Вход и выход Двунаправленный комплементарный строб данных для DQ[15:8]. Этот сигнал работает как вход во время транзакций Read и как выход во время транзакций Write.
mcbx_dram_we_n Выход Это сигнал с активным лог. 0, работающий как разрешение записи в устройство памяти.
rzq Вход и выход Требуемый вывод для всех разработок с использованием MCB. Когда в утилите MIG выбрано калиброванное терминирование входа (Calibrated Input Termination), вывод RZQ должен иметь резистор значения 2R между этим выводом и землей, где R равен желаемому значению для терминирования входа. Во всех других случаях вывод RZQ должен быть оставлен не подключенным. Вывод RZQ может быть перемещен на любой допустимый вывод корпуса в пределах банка MCB.
zio Вход и выход Сигнал No Connect, используемый с модулем программной калибровки (soft calibration module), когда выбрано Calibrated Input Termination. ZIO должен быть помещен на допустимый вывод корпуса в пределах банка MCB, и на этот вывод не должно быть разведено ни одного проводника (т. е. он никуда не подключается, no connect). ZIO не генерируется для дизайнов, которые не используют Calibrated Input Termination.

Примечание: обратитесь к «PCB Layout Considerations» в Главе 3 для получения требований, связанных с выводами CS#, ODT и CKE устройства памяти.

[3. Разработка с использованием MCB]

В этой главе предоставляется подробная информация о том, как следует проводить дизайн с использованием блока MCB микросхем Spartan-6 FPGA. Здесь содержаться следующие секции:

• Процесс разработки
• Поддерживаемые устройства памяти
• Симуляция
• Утилизация ресурсов FPGA
• Тактирование
• Миграция и банки памяти
• Разводка печатной платы

Процесс разработки. Имеется 2 поддерживаемых способа реализовать дизайн для использования MCB:

• Для не встраиваемых проектов (Non-embedded, где нет процессорного ядра):

— Обычный дизайн FPGA с помощью инструментария Xilinx ISE [10].
— Для дизайна MCB в составе инструментария CORE Generator™ используется утилита MIG.

• Для проектов, где есть процессорное ядро (Embedded):

— Система с процессором на основе FPGA, применяется инструментарий EDK.
— В рабочем окружении разработки MCB используется IP Configurator в Xilinx Platform Studio (XPS), входящий в состав EDK.

Оба процесса предоставляют простой метод разработки надежного интерфейса к устройствам внешней памяти. Пошаговый мастер с графическим интерфейсом сопровождает создание дизайна MCB, чтобы он был сконфигурирован и снабжен параметрами, удовлетворяющими требованиям приложения.

Утилита MIG в действительности имеет 2 уровня обертки над аппаратурой: lower-level wrapper (mcb_raw_wrapper.v) и top-level wrapper (например, memc3_wrapper.v).

Lower-level wrapper реализует в себе все необходимые блоки кремния (MCB, I/O и т. д.) и программную логику (soft calibration module), требуемую для решения. Он также предоставляет доступ ко всем сигналам, связанным с нижележащей реализацией аппаратуры портов User Interface и логики калибровки. Top-level wrapper обрабатывает переназначение сигналов, связывание при необходимости сигналов lower-level, и передачу вниз значений параметров к lower wrapper, основываясь на выбранных пользователем параметрах в утилите MIG.

Top-level wrapper предоставляет прозрачный интерфейс только к тем сигналам, которые нужны для реализации дизайна на основе MCB, как это сконфигурировано процедурой на основе утилиты MIG. Например, хотя lower-level всегда показывает в User Interface все 6 обычных 32-битных порта, top-level wrapper переназначает сигналы, связывает не используемые порты, и склеивает шины для предоставления интерфейса порта таким, как его ожидает пользователь, как например один 64-битный порт. Top-level wrapper это одна из вещей, которая впоследствии интегрируется в общий большой дизайн FPGA.

В этом руководстве документируется lower-level wrapper (mcb_raw_wrapper.v). Параметры и сигналы перечислены в Главе 2, все они описаны в контексте этого lower-level wrapper. Эта обертка не меняется при различных выборах в графическом мастере настройки проекта утилиты MIG, в то время как top-level wrapper настраивается на основе выбора параметров пользователем.

Дополнительно процесс разработки embedded-систем (на основе EDK) использует тот же lower-level wrapper как фундамент для создания периферийного устройства Multi-Port Memory Controller (MPMC). IP configurator в XPS позволяет пользователю добавить необходимые программные мосты поверх lowerlevel wrapper, чтобы создать необходимые периферийные интерфейсы, такие как:

• Интерфейс PLB
• Интерфейс Xilinx Cache Link (XCL)
• Интерфейс Local Link (LL)
• Другие персонализированные модули интерфейса (Personality Interface Module, PIM), поддерживаемые EDK

Рис. 3-1 показывает, как lower-level wrapper используется как для процесса дизайна non-embedded (с помощью MIG), так и для embedded (на основе EDK).

Spartan 6 FPGA MCB Lower Level Wrapper Non embedded fig3 1a Spartan 6 FPGA MCB Lower Level Wrapper Embedded fig3 1b
Дизайн Non-embedded
(утилита MIG/CORE Generator)
Дизайн Embedded
(EDK / XPS)

Рис. 3-1. Общая обертка над аппаратурой низкого уровня (Lower-level Wrapper) для Non-embedded и Embedded дизайна.

CORE Generator Tool. Рис. 3-2 показывает разработку non-embedded (обычная логика, без процессорного ядра) дизайна FPGA на верхнем уровне для интегрирования интерфейса памяти на основе MCB. Глава «Getting Started» в UG416 [2] предоставляет подробное описание фазы 1 этой процедуры разработки. Фазы 2 и 3 выходят за рамки описания в этом документе, однако подробные инструкции по процессу использования инструментария ISE можно найти в библиотеке Xilinx Documentation Library.

Фаза 1 Фаза 2 Фаза 3
Spartan 6 FPGA MCB Design Flow for Non embedded FPGA app fig3 2

Рис. 3-2. Процесс разработки с использованием MCB для Non-embedded (обычных) приложений FPGA.

Поддерживаемые устройства памяти. В таблице 3-1 предоставлен список микросхем памяти, проверенных в работе с MCB на платформе тестирования аппаратуры (Xilinx hardware verification platform). Эти устройства можно выбрать в GUI утилиты MIG (или EDK) из выпадающего списка поддерживаемых устройств. Xilinx будет добавлять устройства в выпадающий список утилиты MIG в будущих релизах, но эти устройства получат верификацию «simulation only» (только для симуляции). Дополнительно в утилите MIG могут быть созданы пользовательские устройства; однако они не будут иметь симуляции или аппаратной верификации Xilinx. Для дополнительной информации см. секцию «Setting Controller Options» в UG416 [2].

Таблица 3-1. Микросхемы памяти, поддерживаемые MCB (емкость памяти указана в битах).

Стандарт Вендор Наименование Разрядность Емкость
DDR3 Micron MT41J64M16xx-187E 16 1 Gb
MT41J256M8xx-187E 8 2 Gb
MT41J128M8xx-187E 8 1 Gb
MT41J256M4xx-187E 4 1 Gb
MT41J512M4xx-187E 4 2 Gb
DDR2 MT47H256M4xx-25E 4 1 Gb
MT47H64M8xx-25E-IT 8 512 Mb
MT47H128M8xx-25 8 1 Gb
MT47H128M16xx-3 16 2 Gb
MT47H256M4xx-3 4 1 Gb
MT47H16M16xx-3 16 256 Mb
MT47H32M16xx-37E 16 512 Mb
MT47H32M8xx-37E 8 256 Mb
MT47J64M16xx-3 16 1 Gb
MT47J256M4xx-37E 4 1 Gb
MT47J128M8xx-3 8 1 Gb
Elpida EDE1116ACBG-8E 16 1 Gb
EDE5116AJBG-8E 16 512 Mb
Hynix HYB18TC512160B2F-2.5 16 512 Mb
DDR Micron MT46V32M16xx-5B-IT 16 512 Mb
MT46V32M8xx-5B 8 256 Mb
MT46V64M4xx-5B 4 256 Mb
LPDDR MT46H32M16xxxx-5 16 512 Mb
MT46H16M16xxxx-6-IT 16 256 Mb
MT46H16M16xxxx-75-IT 16 256 Mb
MT46H64M16xxxx-5L-IT 16 1 Gb
MT46H64M16xxxx-6L-IT 16 1 Gb

Симуляция. Модель симуляции нижележащего MCB в обертке MIG (или EDK) шифруется, как это описано стандартом Verilog LRM-IEEE Std 1364-2005. Это устроено подобно другим IP, предоставляемым Xilinx, как например трансивер GTP и блоки Integrated Endpoint для дизайна PCI Express ® .

Xilinx поддерживает следующие симуляторы для этого метода шифрования: ModelSim 6.4b и выше.

Шифрованная модель MCB компилируется автоматически, когда запускается обычный скрипт COMPXLIB, предоставленный подходящей версией симулятора, доступного на компьютере. Когда запускается симуляция дизайна, основанного на Verilog, должна быть ссылка на библиотеку secureip.

Для большинства симуляторов это можно осуществить использованием ключа -L в аргументе симулятора, такого как -L secureip.

Примечание: если в качестве языка дизайна используется VHDL, требуется mixed-language license для ModelSim, чтобы симулировать дизайны, содержащие MCB.

 

Для дополнительной информации по симуляции блоков IP с использованием методологии secureip, см. UG626 [5].

Утилизация ресурсов FPGA. Обертка, сгенерированная графическим интерфейсом утилиты MIG (или EDK), встраивает в себя все ресурсы, необходимые для реализации интерфейса с памятью на основе MCB. Для большинства устройств файлы обертки просто управляют переназначением имен сигналов и соединениями между ресурсами кремния (например, соединениями между блоками MCB и I/O), поэтому здесь не потребляется значительное количество логики FPGA. Однако модуль программной калибровки (soft calibration module), содержащийся в обертке, потребляет небольшое количество ресурсов логики FPGA. Дополнительно есть несколько специфических требований для MCB (см. ниже раздел «Тактирование»), что в результате задействует некоторые общие ресурсы тактирования.

Таблица 3-2 показывает утилизацию ресурсов, связанных с дизайном MCB, исключая логику, требуемую для дизайна пользователя при управлении портами User Interface. Эта таблица использует интерфейс DDR3 с 8 банками, дифференциальные стробы и маскирование данных, чтобы вычислить максимальное количество используемых выводов. Другие стандарты памяти и конфигурации используют меньше выводов.

Таблица 3-2. Утилизация ресурсов для каждого интерфейса с памятью на основе MCB.

Ресурс
Ширина шины интерфейса памяти
x4 x8 x16
Memory Controller Block (MCB) 1 1 1
Зарезервированные на корпусе ножки I/O: Address, Data, Control, и т. д. 35 39 50
Модуль программной логики калибровки (Soft Calibration Module Logic) < 100 слайсов
Блок PLL 1 1 1
Буфер BUFPLL_MCB 1 1 1

Тактирование. Эта секция описывает требования к тактированию для реализации интерфейса с памятью на основе MCB. Утилита MIG (или EDK) автоматически генерирует инфраструктуру тактирования, которая полностью удовлетворяет этим требованиям. MCB требует 3 базовых типа тактов:

• Системные такты (MCB system clock), определяющие рабочую частоту контроллера памяти физический интерфейс к внешней микросхеме памяти.
• Такты калибровки, определяющие рабочую частоту логики калибровки.
• Такты пользователя, определяющие рабочую частоту портов User Interface. Эти такты могут быть полностью асинхронны с системными тактами и тактами калибровки. Стеки Command Path FIFO и Data Path FIFO обрабатывают необходимые передачи между доменами тактов из User Interface во внутреннюю логику контроллера.

Рис. 3-3 показывает рекомендуемую схему распространения системных тактов MCB и тактов калибровки. Блоки MCB, размещенные в регионах I/O слева и справа в устройстве, и они таким образом должны управляться от цепи тактирования I/O. Цепь тактирования I/O разработана для значительно больших частот, чем глобальная цепь тактирования, позволяя интерфейсам памяти работать на скоростях до 800 Mb/сек.

Примечание: CLKOUT0 и CLKOUT1 это только выходы PLL, которые можно подключить к драйверу BUFPLL_MCB. Эти соединения должны быть выполнены точно так, как показано на рис. 3-3.

Spartan 6 FPGA MCB Recommended System and Calibration Clock Distribution fig3 3

Рис. 3-3. Рекомендуемое распространение системных тактов и тактов калибровки.

Чтобы создать системные такты нужной частоты на цепи тактирования I/O, внешний источник тактов подает импульсы на один из блоков PLL на центральном столбце устройства. Частота внешних тактов не критична, пока блок PLL может синтезировать из неё нужные системные такты MCB. Обычно желательно, чтобы PLL размещалась ближе к центру устройства, чтобы минимизировать физическую дистанцию между PLL и блоком BUFPLL_MCB. Это расположение PLL настоятельно рекомендуется для больших устройств с шестью блоками PLL.

PLL генерирует два выхода системных тактов: sysclk_2x и sysclk_2x_180, работающие на двойной частоте от желаемой тактовой частоты памяти (например, для интерфейса 667 Mb/сек DDR2 с эквивалентной частотой памяти 333 МГц, системные такты устанавливаются на 667 МГц). Фаза этих двух системных тактов сдвинута на 180 градусов друг относительно друга. Только две линии тактов доступно на каждой стороне устройства, чтобы управлять цепями тактирования I/O от блоков PLL. Эта пара системных тактов использует эти 2 линии тактирования, чтобы подключить их к блокам MCB с левой и правой стороны устройства. Таким образом для устройств, где имеется 4 блока MCB, 2 блока MCB, находящиеся на одной стороне устройства, должны совместно использовать одну и ту же пару системных тактов, поэтому они должны работать на одинаковой скорости передачи данных (data rate), хотя реализуемые стандарты памяти могут отличаться. Блоки DCM не имеют доступа к цепи тактов I/O, и поэтому DCM не может использоваться для тактирования блоков MCB. Также можно управлять блоками MCB на обоих сторонах устройства от одного блока PLL. В этом случае два блока BUFPLL_MCB (по одному на каждую сторону устройства) должны получать сигнал от одного и того же общего блока PLL.

Когда пара сигналов системных тактов достигает цепи тактов I/O, они дополнительно получают буферирование драйвером BUFPLL_MCB. Этот драйвер также создает стробы разрешения тактирования, которые требуются для MCB: pll_ce_0 и pll_ce_90. Эти атрибуты примитива BUFPLL_MCB должны быть установлены следующим образом, чтобы создать необходимое поведение строба разрешения тактов для блоков MCB:

• LOCK_SRC = «LOCK_TO_0»
• DIVIDE = 2

Прошедшие через буфер такты полной системной частоты (2X такты) используются на слое PHY (физические сигналы) интерфейса, чтобы создать сигналы double data rate (DDR) на выводах I/O (например, такты на частоте 667 МГц используется для генерации эффективных сигналов 667 Mb/сек DDR на выводах I/O). Схема делителя на 2 в MCB создает традиционную тактовую частоту памяти (например, 333 МГц для интерфейса 667 Mb/s DDR). Эти 1X такты управляют контроллером, арбитром и другой логикой, работающей на 1X частоте тактов (single data rate, SDR).

Тактовая частота mcb_drp_clk, относящаяся к калибровке, должна генерироваться блоком PLL, и должна быть синхронизирована по фазе (т. е. совпадать по фазе) с доменом тактов sysclk_2x. Скорость калибровки (частота калибровки) ограничена нормальным статическим анализом времени, с типовой достижимой частотой 100 МГц. Обычно должна использоваться тактовая частота калибровки как минимум 50 МГц, чтобы MCB завершил операции калибровки за разумный период времени.

В дизайне используется следующий набор пользовательских тактов на портах User Interface (с номерами портов X = 0 .. 5):

pX_cmd_clk: такты пользователя Command FIFO для тактирования Address, Instruction и Burst Length из логики FPGA в FIFO.
pX_wr_clk: такты пользователя Write Data FIFO для загрузки записываемых данных из логики FPGA в FIFO при подготовке пакета данных, переносимых в память.
pX_rd_clk: такты пользователя Read Data FIFO для, чтобы передать в логику FPGA данные, возвращенные из памяти.

Такты пользователя полностью асинхронны с системными тактами и тактами калибровки, так что они могут работать на любой частоте, как того диктует логика дизайна FPGA. Стеки FIFO в составе MCB обрабатывают необходимые переходы между доменами тактов. Для наилучшей утилизации доступной полосы пропускания памяти частота тактов пользователя должна быть установлены равной частоте (или больше), определенной соотношением User Interface и интерфейса устройства памяти. Например:

• Для интерфейса DDR3 800 Mb/s на частоте тактов памяти 400 МГц и устройством памяти x8 бит получается результат передачи 16 бит данных 16 за один такт (по 8 бит на каждый перепад тактовой частоты памяти).
• Для x64 бит User Interface частота тактов пользователя должна быть установлена равной или выше (16/64) * 400 МГц = 100 МГц.

Хотя это технически не требуется, также настоятельно рекомендуется, чтобы все три тактовых частоты пользователя для порта (pX_cmd_clk, pX_wr_clk и pX_rd_clk, здесь X определяется номером порта от 0 до 5) управлялись от одного и того же источника из логики FPGA, чтобы избежать сложного тайминга и проблем синхронизации в дизайне пользователя.

Модификация Clock Setup. По умолчанию утилита MIG настраивает инфраструктуру тактирования, подразумевая, что входная частота тактов пользователя (CLKIN1 для PLL) работает на частоте тактов памяти. Чтобы изменить настройку тактирования для создания необходимых тактов MCB от другой тактовой частоты или для подстройки частот тактов пользователя или тактов калибровки, могут быть подстроены следующие параметры PLL на верхнем уровне примера MIG или дизайна пользователя:

• Cx_CLKFBOUT_MULT
• Cx_DIVCLK_DIVIDE
• Cx_CLKOUT0_DIVIDE (для sysclk_2x)
• Cx_CLKOUT1_DIVIDE (для sysclk_2x_180)
• Cx_CLKOUT2_DIVIDE (для тактов пользователя)
• Cx_CLKOUT3_DIVIDE (для тактов калибровки)

Здесь x представляет номер блока MCB.

Есть 2 опции для определения корректных значений для этих параметров:

1. Использовать Clocking Wizard, находящийся в инструменте CORE Generator, чтобы определить подходящие настройки параметров на основе желаемых входных и выходных тактовых частот PLL. Выберите ручной выбор (Manual Selection) и примитив PLL_BASE в открывающей странице диалога для гарантии, что используется PLL. Только перечисленные выше значения параметров PLL, сгенерированные Clocking Wizard, должны быть перемещены обратно в дизайн MIG. Никакой другой вывод из Clocking Wizard не требуется. Clocking Wizard также определяет результирующее дрожание выходной частоты (output jitter) из специфичной конфигурации PLL, чтобы её можно было использовать для проверки допустимости основных системных тактов MCB на предмет требований устройства памяти по джиттеру входных тактов.

2. Обратитесь к главе «PLL» руководства UG382 [6], чтобы проверить правильность установок перечисленных выше параметров PLL для желаемых входных и выходных частот PLL. Этот метод требует лучшего понимания таких аспектов, как сохранение рабочей частоты PLL VCO в указанных пределах.

Миграция и банки памяти. MCB, находящийся на левой стороне (для устройств с двумя MCB) или находящихся слева внизу (для устройств с четырьмя MCB) устройства, наиболее гибкие для разработки в большинстве ситуаций (см. рис. 3-4). Заранее определенные выводы MCB в этом месте имеют меньшее количество «многофункциональных» функций вывода, в то время как MCB на правой стороне устройства имеют тенденцию использовать более многофункциональные выводы.

Spartan 6 FPGA MCB 2 fig3 4a Spartan 6 FPGA MCB 4 fig3 4b
Устройства FPGA
с двумя блоками MCB
Устройства FPGA
с четырьмя блоками MCB

Рис. 3-4: MCB3 более предпочтительное место для миграции и гибкости дизайна.

Например, некоторые выводы банка 1 MCB совместно используются ножками Byte-wide Peripheral Interface (BPI), которые могут использоваться для конфигурирования устройства Spartan-6 от параллельной памяти FLASH. Эти выводы двойного назначения могут использоваться или для BPI, или для интерфейса MCB, но никак для обоих функций сразу. Таким образом, следует учесть другие компоненты в системе, как они будут подключаться к устройству Spartan-6, когда Вы планируете реализацию интерфейсов MCB. Интерфейсы MCB на обоих сторонах устройства имеют выводы, которые совместно используются для выводов глобальных тактов (global clock, GCLK) и выводов PCI, однако MCB слева (или слева внизу) имеют меньше ограничений по принудительному использованию выводов.

Дополнительно есть возможность миграции между членами семейства микросхем Spartan-6 в том же типе корпуса (например, миграция с устройства LX16 на устройство LX25 в том же самом корпусе CSG324), сохраняя при этом тот же самый блок MCB с заранее определенными выводами на корпусе. Это справедливо для всех размещений MCB. Обычно можно мигрировать «вверх» или «вниз» с любого определенного устройства, как минимум при одной и той же плотности логики в том же самом корпусе. Обратитесь к руководству Spartan-6 Family Overview для получения подробной информации по доступным устройствам и типам их корпусов.

Разводка печатной платы. В этой секции перечислены моменты, которые нужно учитывать при планировании разводки печатной платы (PCB), когда в системе нужно применить интерфейс к памяти на основе MCB. Также следует обратиться к руководству Spartan-6 FPGA PCB Designer’s Guide, чтобы получить информацию по правильной развязке питания устройства, общему распределению потребляемой мощности в системе, и другими общими рекомендациями по разводке PCB. Дополнительные ссылки на анализ печатной разводки платы и целостности сигналов интерфейсов памяти DDR можно найти в ссылках Приложения А.

Все вычисления длины проводников на PCB подразумевают среднюю задержку сигнала 165 пикосекунд на дюйм проводника.

Общие рекомендации по разводке:

• Для разводки сигналов между памятью и FPGA должны использоваться только внутренние слои PCB. Переходные отверстия для соединения от шариковых выводов компонента до внутреннего слоя исключаются из этого требования.
• Разводка не верхнем или нижнем слое может применяться для внешних резисторов терминирования (если это используется) когда помещаются в режиме fly-by после компонента памяти.
• Интерфейсы памяти без внешних терминирований должны иметь максимум 2 переходных отверстия.
• Интерфейсы памяти с внешними терминированиями должны иметь максимум 3 переходных отверстия.
• Как только сигнал проброшен во внутренний сигнальный слой, он должен завершить свою разводку в этом слое. Завершение сигнала на переходном отверстии разрешается конечной разводкой до переходного отверстия вывода компонента на вернем или нижнем слое печатной платы. Не разрешается менять слои PCB при разводке сигнала.
• Общая длина проводников должна быть минимальной. Проводники должны быть длиной 3 дюйма или меньше.
• Ширина проводников должна быть от 3 до 5 mil.
• Зазоры между проводниками должны быть втрое больше ширины проводника.
• Сигналы не должны прокладываться по разделу заливок меди (splits) или по пустым местам, без экранирования заливками (voids).
• Следует избегать разводку дифференциальных пар рядом с шумящими сигналами или высокоскоростными устройствами, такими как чипы генераторов тактов.
• Зазор между дифференциальными тактами/стробами и другими сигналами на том же слое PCB должен быть 20 mil. Пространство 20 mil должно быть сохранено при использовании серпантинов (змеек) с целью выравнивания длины проводников.
• Дифференциальные такты/стробы должны быть разведены как дифференциальные сигналы с волновым сопротивлением 100?. Пара для сигнала тактов должна быть разведена на том же слое PCB, без смены слоя после начального перехода от ножки корпуса микросхемы.
• Последовательное терминирование (если оно используется) должно быть как можно ближе к корпусу FPGA.
• Параллельные терминаторы (если они используются) должны быть как можно ближе к корпусу DRAM.
• Резисторы параллельного терминирования должны быть размещены на верхнем или нижнем слое островка VTT.
• Разработчики платы должны убедиться, что проводники тактов разведены дифференциально, и выбраны корректные ширины и зазоры проводников, чтобы получить целевой дифференциальный импеданс. Дифференциальная разводка сигнала уменьшает время распространения тактов в сравнении с однополярными сигналами. По этой причине большинство руководств по дизайну DDR2 рекомендуют, чтобы сигналы тактов были разведены проводниками одинаковой длины или более длинными, чем сигналы адреса, управления или команды, чтобы компенсировать эту вариацию времени распространения сигнала.

Рекомендации по разводке Data, Data Mask и Data Strobe. Сигналы данных (Data, DQ), маски данных (Data Mask, DM) и стробирования данных (Data Strobe, DQS) должны получать самый высокий приоритет (т. е. они должны быть разведены в первую очередь и быть максимально короткими), потому что это самые высокоскоростные сигналы DDR.

• Сигналы DQ, DM и DQS должны быть разведены в группе (на байт). Каждая группа должна иметь одинаковую нагрузку и разводку, чтобы сохранить тайминг и целостность сигналов.
• Зазор между группой данных и любыми другими сигналами должен быть 20 mil.
• Сигналы DQS должны быть изолированы от других сигналов зазором 20 mil, чтобы избежать перекрестных помех (crosstalk).
• Должна быть разница в задержке максимум ±25 пикосекунд (±150 mil разница в длине) между любым DQ/DM и связанным с ним стробом DQS.
• Группа данных должна быть разведена рядом с заливкой GROUND.
• Для упрощения разводки разрешается переставлять биты DQ на интерфейсе памяти. Перестановка должна быть сделана только внутри группы данных.
• Длины проводников от DQS до DQS_N должны совпадать (±10 mil).
• Терминирования памяти (если используются внешние терминаторы) должны быть размещены после соответствующего компонента памяти (в стиле fly-by).
• Для 16-битных устройств DDR длины проводников LDQS/LDQS_N и UDQS/UDQS_N должны совпадать по задержке ±25 пикосекунд (±150 mil).

Рекомендации по разводке Address, Control и Clock. Когда группы данных разведены, следующие по самому высокому приоритету это дифференциальные такты (CK / CK_N). Эти такты должны быть разведены первыми, потому что все длины проводников сигналов адреса и управления должны опираться на длину трасс дифференциальных тактов на PCB, что возможно понадобится корректировать по мере продолжения выполнения работы по разводке.

• Длины проводников от CK до CK_N должны совпадать (±10 mil).
• Длины проводников CK и DQS должны соответствовать друг другу (±250 mil), чтобы максимально увеличить пределы установки и удержания сигналов.
• Должна быть максимум задержка ±50 ps (±300 mil) между сигналами адреса/управления и связанным выходом FPGA дифференциальных тактов CK и CK_N.
• Сигналы адреса и управления могут быть разведены относительно заливки POWER, если заливка GROUND не следующая в стеке слоев PCB для этой группы сигналов.
• Чтобы избежать перекрестных помех, сигналы адреса и команд следует разводить в другом слое разводки, отличающемся от слоя разводки сигналов DQ, DQS и DM.
• Терминирование дифференциальных тактов (если используется внешнее терминирование) должно быть расположено максимально близко к нагрузке, после тактовых площадок PCB. Длины проводников PCB, используемые в учете совпадения длины, должны исключать длину CLINE проводника PCB от памяти до терминирующего резистора.
• Терминирование памяти должно быть размещено (если используется внешнее терминирование) после соответствующего компонента памяти (в стиле fly-by).

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

• Вывод сигнала выборки с активным лог. 0 (Chip Select, CS#) целевой памяти должен быть подключен к земле платы. Из-за того, что MCB поддерживает подключения только к одной микросхеме памяти, он не предоставляет сигнал для управления входом CS#. За дополнительной информацией при необходимости обращайтесь к поставщику Вашей памяти.
• Для устройств памяти DDR3 сигналы RESET и CKE должны иметь каждый по резистору 4.7 k?, подключенному между сигналом и землей, чтобы гарантировать, что эти сигналы находятся в лог. 0 во время инициализации памяти.
• Для устройств памяти DDR2 сигналы ODT и CKE должны иметь каждый по резистору 4.7 k?, подключенному между сигналом и землей, чтобы гарантировать, что эти сигналы находятся в лог. 0 во время инициализации памяти.
• Если вывод HSWAPEN устройства Spartan-6 находится в лог. 0 или заземлен во время конфигурирования, внутренние резисторы pull-up на шину питания VCCO разрешены на всех выводах I/O до завершения конфигурации, включая любой из выводов VREF, связанных с использованием MCB. Если уровень VREF генерируется делителем напряжения на резисторах, то внутренние резисторы pull-up могут повысить уровень выводов VREF во время инициализации устройства. Разработчик должен гарантировать, что MCB удерживается в состоянии сброса, пока уровень VREF не перейдет в стабильное состояние, чтобы избежать калибровки MCB и работы на неправильном уровне VREF. Для дополнительной информации см. секцию «Configuration» в главе «I/O Pin and Clock Planning» chapter of UG393 [7].

Одновременное переключение выхода. Как отмечено в блок-диаграмме Главы 1, MCB использует основные блоки ввода/вывода (I/O blocks, IOB), связанные с заранее определенными местами расположения выводов на корпусе, чтобы создать внешний интерфейс к устройству памяти. Утилита MIG автоматически конфигурирует эти места IOB, чтобы реализовать требуемый стандарт I/O для выбранного типа памяти (т. е. SSTL18 для DDR2, SSTL15 для DDR3).

Аппаратные характеристики интерфейсов на базе MCB показывают, что нет ограничений, связанных с одновременным переключением выхода (Simultaneous Switching Output, SSO) когда используются заранее определенные места размещения IOB вплоть до его максимального расширения (т. е. на максимальное количество выводов данных и адреса на интерфейсе). Обратитесь к руководствам DS162 [8] и UG361 [9] для получения дополнительной информации по характеристикам SSO. Когда сигналы размещаются на любых остальных выводах в банке, то рекомендуется их использовать следующим образом: одиночный (single-ended, не дифференциальный) выход с малой нагрузочной способностью (low drive strength), стандарт без терминирования LVCMOS 4 mA или LVCMOS 2 mA.

[4. Функционирование MCB]

В этой главе предоставляется подробная информация о том, как работает Spartan®-6 FPGA MCB. Здесь содержаться следующие секции:

• Последовательность запуска (Startup Sequence)
• Калибровка (Calibration)
• Инструкции
• Адресация
• Тайминг пути команды (Command Path Timing)
• Тайминг пути записи (Write Path Timing)
• Тайминг пути чтения (Read Path Timing)
• Транзакции памяти
• Самообновление (Self Refresh)
• Приостановка работы (Suspend)
• Преобразование адреса байта в адрес памяти
• Упорядочивание транзакции и когерентность

Последовательность запуска. Рис. 4-1 показывает процедуру startup для MCB. После того, как FPGA полностью сконфигурирована, произошел захват PLL и генерируются системные такты, блоком MCB автоматически выполняются некоторое количество шагов по инициализации и калибровке MCB, чтобы подготовить его нормальное функционирование.

Spartan 6 FPGA MCB Startup Sequence fig4 01

Рис. 4-1. MCB Startup Sequence.

Замечания по рис. 4-1:

1. Модуль программной калибровки (soft calibration module) реализует некоторые аспекты фаз калибровки 1, 2 и 3.
2. Аппаратная логика калибровки MCB НЕ ВЫПОЛНЯЕТ индивидуальную подстройку по битам момент появления данных на шине DQ. Следуйте рекомендациям по разводке печатной платы (см. выше секцию «Разводка печатной платы»), чтобы гарантировать соответствие на PCB длинs проводников сигналов DQ/DQS.

Первая важная операция запуска это фаза 1 калибровки. На этом шаге модуль программной калибровки измеряет значение внешнего резистора на выводе RZQ, чтобы определить желаемое значение встроенного в кристалл входного импеданса терминирования (on-chip Input Termination) для нескольких жестко определенных на корпусе микросхемы выводов MCB (например, шины данных DQ). Это происходит только тогда, когда пользователь выбрал опцию Calibrated Input Termination в графическом интерфейсе утилиты MIG (см. секцию «Setting FPGA Options» руководства UG416 [2]). Иначе подразумевается приблизительное не калиброванное встроенное в чип терминирования или внешнее терминирование, и этот шаг запуска пропускается.

Второй важный шаг последовательности запуска это загрузка регистров режима микросхемы памяти (memory device mode registers) желаемыми параметрами.

После того, как устройство памяти сконфигурировано, начинается фаза 2 калибровки. Эта фаза добавляет задержку ко входному пути стробов DQS, входящих в FPGA. Цель этого — сдвинуть стробы DQS в центр окна захвата читаемых данных (Read Data capture window).

После того, как все операции запуска (startup sequence) завершены, MCB входит в нормальный рабочий режим. Команды (Commands) и данные (Data) могут быть загружены в стеки FIFO интерфейса пользователя (User Interface FIFO), пока выполняется процедура запуска, но ни одна команда не будет выполнена, пока калибровка не завершится и блок не войдет в режим нормального функционирования.

В нормальном рабочем режиме soft calibration module постоянно мониторит значения задержек (tap delay values) элемента IDELAY, используемого для задержки входного пути DQS (подробнее про IDELAY см. руководство «Spartan-6 FPGA SelectIO™ Resources»). Это предназначено для измерения любого изменения значения tap delay из-за изменения напряжения или температуры. Если было определено смещение значения tap delay, то счетчик tap delay на стробе DQS входного пути может быть подстроен так, чтобы удержать его по центру Read Data capture window. Обновление значений IDELAY происходит во время операций обновления памяти (REFRESH), чтобы избежать влияния внешних факторов на нормальную работу с данными и эффективность контроллера. Фаза 3 калибровки называется «continuous DQS tuning», т. е. повторяющиеся подстройки DQS.

Подробнее про все фазы калибровки рассказано в следующей секции «Калибровка».

Калибровка. Чтобы достичь оптимальной целостности сигналов и максимально допустимых пределах тайминга (и следовательно наивысшей производительности) для интерфейса памяти, MCB автоматически выполняет несколько форм калибровок, что кратко описано выше в секции «Последовательность запуска». Жесткая логика калибровки в MCB и программный модуль калибровки, генерируемый утилитой MIG (или EDK) работают совместно для реализации надежной и гибкой схемы калибровки. Ниже подробно обсуждается каждая фаза калибровки.

Примечание: описания фаз калибровки 2 и 3 в этой секции подразумевают, что атрибут C_MC_CALIBRATION_MODE установлен в значение «CALIBRATION», как это описано выше во врезке с таблицей 2-2.

Фаза 1: Input Termination. Встроенное в кристалл терминирование снижает количество компонентов на плате и улучшает целостность сигналов, потому что терминирование перемещается максимально близко, насколько это возможно, к конечной точке передачи сигнала. Графический интерфейс утилит MIG и EDK позволяет выбрать опцию «Calibrated Input Termination» для жестко заданных выводов корпуса блока MCB. Эта функция создает встроенное в кристалл терминирование входов для выводов MCB, которое калибруется на основе внешнего резистора, делая терминирование более точным по сравнению с опцией «Uncalibrated Input Termination».

Модуль программной калибровки (soft calibration module) использует два вывода I/O, RZQ и ZIO, генерируемых утилитой MIG (или EDK), чтобы выполнить калибровку терминирования входа. RZQ является необходимым выводом для всех дизайнов MCB. Когда используется Calibrated Input Termination, должен быть подключен резистор между выводом RZQ и землей, номинал которого в 2 раза (2R) больше желаемому входному импедансу (т. е. резистор 100? для достижения эффективного терминирования 50?). RZQ должен оставаться не подключенным выводом (no-connect, NC) для дизайнов, которые не используют Calibrated Input Termination. Дополнительно вывод RZQ должен находиться в том же банке I/O, что и выводы интерфейса памяти.

Вывод ZIO требуется только для дизайнов, использующих Calibrated Input Termination, и он должен оставаться не подключенным (т. е. не должен подключаться к любому проводнику печатной платы), и назначенным на допустимый вывод корпуса (т. е. соединенным с I/O) в пределах банка MCB. Размещения по умолчанию для выводов RZQ и ZIO можно найти в файлах UCF.

Модуль программной калибровки (soft calibration module) полагается на напряжение питания VREF, требуемое для стандартов SSTL I/O, чтобы выполнить необходимую калибровку терминирования входа. Память LPDDR не использует калиброванное терминирование входов или стандарт I/O типа SSTL, и поэтому не требует VREF.

Фаза 1 калибровки эффективно измеряет значение внешнего резистора 2R, и программирует блоки I/O выводов MCB для создания распределенного терминирования между VCCO и GND. Эта схема создает эквивалент терминирования (по теореме Thevenin) для VCCO / 2 с сопротивлением R, как показано на рис. 4-2. Результирующее терминирование входа запрещается, когда вывод MCB управляется как выход (например вывод данных DQ во время транзакции Write) и разрешается во все другое время, чтобы правильно терминировать приходящие сигналы.

Spartan 6 FPGA MCB Calibrated Input Split Termination fig4 02a Spartan 6 FPGA MCB Calibrated Input Thevenin Equivalent fig4 02b
Реализовано разделенное терминирование (Split Termination) Thevenin-эквивалент

Рис. 4-2. Calibrated Input Termination.

Фаза 2: центрирование DQS. Для оптимальной производительности и максимальных допусков по интервалам времени перепады строба DQS должны быть центрированы в окне чтения данных (Read Data capture window) чтобы правильно срабатывал триггер захвата входных данных. Фаза 2 калибровки отвечает за это центрирование DQS.

Выходные ножки устройства памяти DDR передают данные чтения Read Data (DQ) и стробы DQS, выровненные по срезу для выводов входов FPGA, как показано на рис. 4-3. Для надежного функционирования строб DQS должен быть задержан по отношению к битам DQ, чтобы они были захвачены на достоверных Read Data шины данных и не попадали на регион переключения.

Во время этой фазы счетчик задержки tap блока IDELAY во входном пути строба DQS инкрементируется со сдвигом внутреннего сигнала DQS на триггере захвата, так чтобы перепад попадал на середину окна чтения данных, как показано на рис. 4-3.

Spartan 6 FPGA MCB Phase2 Calibration DQS Centering Before fig4 03a Spartan 6 FPGA MCB Phase2 Calibration DQS Centering After fig4 03b
Перед фазой 2 После фазы 2

Рис. 4-3. Фаза 2 калибровки — центрирование DQS.

Фаза 3: постоянная подстройка DQS. Изменения напряжения и температуры в процессе работы могут изменить значения IDELAY tap. Из-за того, что строб DQS задерживается на половину периода бита больше, чем биты DQ, используется значительно большее количество интервалов IDELAY. Таким образом, если значение задержки tap элементов IDELAY поменяется в ответ на дрейф напряжения или температуры, задержка входного пути строба DQS будет иметь не соответствующий сдвиг относительно бит DQ.

Чтобы компенсировать сдвиг стробов DQS в соответствии с изменениями температуры, фаза 3 калибровки постоянно активируется во время нормального функционирования. Это использует soft calibration module для постоянного мониторинга значений задержки tap элементов IDELAY, используемых для задержки входных путей сигнала DQS. Если обнаружен сдвиг значения задержки tap, то счетчик задержки tap на входном пути строба DQS может быть подстроен, чтобы удерживать его центрированным в окне захвата чтения данных (Read Data capture window). Обновление значений IDELAY осуществляется во время операций обновления памяти (REFRESH), чтобы избежать влияния внешних факторов на нормальную работу и эффективность контроллера.

Инструкции. Таблица 4-1 предоставляет подробное описание всех инструкций памяти, реализованных MCB. Чтобы загрузить инструкцию в Command FIFO порта User Interface, 3-разрядный код инструкции защелкивается на входах pX_cmd_instr[2:0] по фронту нарастания сигнала pX_cmd_clk.

Таблица 4-1. Инструкции, реализованные MCB.

Адресация. С точки зрения User Interface блок MCB предоставляет простую и последовательную схему адресации по байтам в физическую память DRAM. То, что фактически DRAM сохраняет данные в фиксированных сегментах, абстрагировано этой схемой, что дает возможность реализовать для пользователя интерфейс адресации, подобный памяти SRAM. Для получения подробностей, как биты адреса банка, строки и столбца (bank, row и column) отображаются в байтовый адрес, см. секцию «Преобразование адреса байта в адресацию памяти».

Таблица 4-2 показывает, как адрес байта, представленный для User Interface, должен быть выровнен по ширине (разрядности) порта. В зависимости от количество байт в ширине порта, определенное количество младших бит адреса должно быть установлено в 0, чтобы гарантировать, чтобы следующие друг за другом адреса попали в границы слова данных. Входы маски данных записи (write data mask, pX_wr_mask) для User Interface могут использоваться для смещения начального адреса байта. Например, чтобы начать запись по байтовому адресу 0x01, когда используется 32-битный (4-байтный) User Interface, адрес байта, представленный в порт команды User Interface, должен быть 0x00, чтобы удовлетворить требованиям таблицы 4-2, но самый младший бит маски должен быть установлен в 1, чтобы были в действительности записаны только байты начиная с адреса 0x01 и более старших адресов.

Таблица 4-2. Требования к адресу в контексте выравнивания байтового адреса.

Ширина порта Байт на слово данных Требование к адресу
32 бита 4 pX_cmd_addr[1:0] = 2’b00
64 бита 8 pX_cmd_addr[2:0] = 3’b000
128 бит 16 pX_cmd_addr[3:0] = 4’b0000

Также важно понимать взаимосвязь адресации, когда 32-битный и 64-битный порты используются совместно на User Interface (см. секцию «Конфигурации порта» выше). Для 32-битных портов память предоставляется выровненной на границу 4 байт, в то время как для 64-битных портов память предоставляется выровненной на границы 8 байт. Таблица 4-3 показывает, как два слова данных для 32-битного порта отображаются на адресное пространство одного слова данных 64-битного порта.

Таблица 4-3. Взаимосвязь адреса 32-битного и 64-битного порта.

32-битный порт 64-битный порт
Адрес Данные Адрес Данные
0x00 [31:0] 0x00 [31:0]
0x04 [31:0] [63:32]
0x08 [31:0] 0x08 [31:0]
0x0C [31:0] [63:32]

Тайминг Command Path. Путь команды User Interface использует простую структуру FIFO глубиной 4 ячейки, чтобы хранить команды. Тип инструкции, адрес и длина пакета (burst length) запрошенной транзакции — все загружается в этот Command FIFO. Флаг заполненности (pX_cmd_full) это сигнал от FIFO, что этот флаг должен быть в лог. 0, чтобы новая команда могла быть принята в FIFO, когда выставлен pX_cmd_en во время фронта нарастания уровня pX_cmd_clk. Иначе команда игнорируется. Рис. 4-4 и рис. 4-5 демонстрируют протокол для загрузки команды в FIFO.

Spartan 6 FPGA MCB Command Path Timing Write fig4 04

Рис. 4-4. Command Path Timing (Write, запись).

Spartan 6 FPGA MCB Command Path Timing Read fig4 05

Рис. 4-5. Command Path Timing (Read, чтение).

Тайминг Write Path. Путь записи User Interface использует структуру FIFO глубиной 64 ячейки для хранения данных в подготовке транзакции записи в память. Подобно Command FIFO, флаг заполненности (pX_wr_full) из Write Data FIFO должен быть в лог. 0, чтобы новые данные были приняты в этот FIFO, когда выставлен сигнал pX_wr_en во время фронта нарастания pX_wr_clk. Иначе данные будут игнорированы (не запишутся в FIFO). Если флаг заполненности в лог. 0, то шина данных pX_wr_data захватывается в FIFO по фронту нарастания pX_wr_clk. Для каждого периода тактов, когда выставлен сигнал pX_wr_en, на шине pX_wr_data должны быть достоверные данные. Рис. 4-6 демонстрирует протокол загрузки данных в Write Data FIFO.

Spartan 6 FPGA MCB Write Path Timing fig4 06

Рис. 4-6. Write Path Timing.

Сигнал недогрузки pX_wr_underrun показывает пользователю, что контроллер памяти попытался отправить больше данных, чем было в наличии в ячейках write data FIFO, и что данные, предназначенные для памяти, не достигли её. Этой ситуации нужно избегать для гарантированно надежного функционирования. Чтобы избежать события недогрузки (underrun condition), пользователь должен гарантировать, что все необходимые данные доступны в write data FIFO, чтобы соответствовать транзакции перед тем, как эта транзакция будет запущена через command FIFO.

Шина сигнала счетчика (pX_wr_count) предоставляет количество записей в FIFO. Из-за асинхронности стеков FIFO в MCB, шина сигнала счетчика имеет больше задержку, чем флаги опустошения и заполненности. Таким образом, эта шина счетчика должна использоваться только для промежуточных ссылок и «ватерлиний». Значение счетчика немедленно изменится по отношению к операциям FIFO, подтвержденных пользователем, однако это время больше для операций, подтвержденных контроллером по сравнению с сигналами заполненности и опустошения. Таким образом, Write Data FIFO в контексте заполнения FIFO счетчик по крайней мере всегда показывает, сколько записей реально находится в FIFO.

Например, если пользователь записал 8 слов в FIFO, счетчик может сообщить 8 о количестве записей, даже когда контроллер начал кое-что извлекать из FIFO. Кроме того, если контроллер продолжает передавать данные в память, счетчик может показывать наличие записей в FIFO даже когда FIFO уже пуст. Для Write Data FIFO лучше всего использовать сигнал счетчика как флаг «почти заполнено», потому что FIFO никогда не будет заполнен, если счетчик сообщает о том, что FIFO меньше чем заполнен. Однако очень важно использовать другие методы для гарантии отсутствия ситуаций недогрузки.

Тайминг Read Path. Путь чтения User Interface использует простую структуру FIFO глубиной 64 ячейки, чтобы хранить данные, возвращенные из транзакции чтения. Флаг опустошенности (pX_rd_empty) из Read Data FIFO можно использовать как индикатор достоверных данных. Всякий раз, когда pX_rd_empty снят (находится в лог. 0), то на шине pX_rd_data присутствуют достоверные данные. Чтобы передать данные в логику FPGA из Read Data FIFO, должен быть выставлен сигнал pX_rd_en в момент положительного перепада pX_rd_clk. Переходы состояний на шине pX_rd_data происходят по нарастанию уровня pX_rd_clk. Сигнал pX_rd_en может оставаться установленным все время, и сигнал pX_rd_empty может использоваться как индикатор достоверных данных, если это необходимо. Рис. 4-7 демонстрирует протокол выгрузки данных из Read Data FIFO.

Spartan 6 FPGA MCB Read Path Timing fig4 07

Рис. 4-7. Read Path Timing.

Сигнал pX_rd_overflow показывает пользователю, что память вернула больше данных, чем может уместить read data FIFO, так что некоторые данные были потеряны. Этой ситуации следует избегать, чтобы гарантировать надежное функционирование. Чтобы избежать ситуации переполнения (overflow condition), пользователь должен гарантировать, чтобы было достаточно места в read data FIFO, чтобы соответствовать транзакции до того, как эта транзакция поступит в command FIFO.

Шина сигнала счетчика (pX_rd_count) предоставляет количество записей в этом FIFO. Из-за асинхронностей стеков FIFO в MCB сигнал счетчика имеет большее время задержки, чем флаги опустошения и заполненности. Таким образом, эта шина должна использоваться только для промежуточных ссылок и «ватерлиний». Значение счетчика изменится немедленно по отношению к операциям с FIFO, подтвержденным пользователем; однако это будет дольше для операций, подтвержденных контроллером, по отношению к сигналам заполненности и опустошения. Таким образом, когда Read Data FIFO опустошается, счетчик всегда сообщит о количестве больше или равном по отношению к реальному количеству записей, находящемуся в FIFO.

Например, если в FIFO содержится 8, то счетчик может сообщить о 8 записях даже если происходит некое чтение из FIFO. Дополнительно, если контроллер продолжает проталкивать данные в FIFO, счетчик может показать меньше записей в FIFO, хотя FIFO уже заполнен или даже переполнен. Для Read Data FIFO счетчик должен использоваться с осторожностью, потому что в FIFO может быть больше данных, чем сообщает счетчик, особенно если происходят транзакции. Счетчик может использоваться как флаг «почти опустошено», но только для регулирования каналов данных чтения, но не для регулирования поступления команд в command FIFO.

Транзакции памяти. Выполнение транзакций Write или Read требует правильной последовательности между путями команд и данных. В следующих подсекция демонстрируются протоколы для выдачи простых транзакций записи (Simple Write) и простых транзакций чтения (Simple Read).

Simple Write. Для реализации транзакции записи Write Data FIFO сначала должен быть загружен значащими данными, чтобы выполнить запрос, как диктуется значением длины пакета (burst length), которое было введено в Command FIFO. Иначе произойдет событие недогрузки (underrun condition), когда транзакция попытается выполниться.

Рис. 4-8 показывает наиболее базовый протокол для загрузки Write Data FIFO. Данные представлены на шине pX_wr_data, и pX_wr_en активируется так, чтобы данные записывались в FIFO по фронту нарастания уровня pX_wr_clk. Значения pX_wr_empty и pX_wr_count отражает факт того, что данные были загружены в FIFO. В этой примере в FIFO загружается всего 3 слова данных (каждое по 32 бита).

Spartan 6 FPGA MCB Loading Write Data FIFO fig4 08

Рис. 4-8. Загрузка Write Data FIFO.

Рис. 4-9 показывает протокол для ввода запроса записи в Command FIFO после того, как данные были загружены в Write Data FIFO. Значение pX_cmd_bl (b’10 соответствует длине пакета burst length 3) соответствует количеству загруженных слов данных. Когда запрос записи загружен в Command FIFO, MCB автоматически запускает транзакцию в устройстве памяти, когда арбитр обслуживает этот порт.

Spartan 6 FPGA MCB Entering Write Request into Command FIFO fig4 09

Рис. 4-9. Ввод Write Request в Command FIFO.

Simple Read. Чтобы реализовать транзакцию чтения, в стеке Read Data FIFO должно быть достаточно места, чтобы завершить этот запрос, как диктуется значением длины пакета (burst length), которое введено в Command FIFO. Иначе произойдет переполнение (overflow condition), когда транзакция попытается выполниться.

Рис. 4-10 показывает протокол для ввода запроса чтения в Command FIFO. Значение pX_cmd_bl указывает количество слов данных, запрашиваемых из памяти. Когда запрос чтения загружен в Command FIFO, MCB автоматически выполнить транзакцию, когда арбитр обслуживает этот порт.

Spartan 6 FPGA MCB Entering Read Request into Command FIFO fig4 10

Рис. 4-10. Ввод Read Request в Command FIFO.

Рис. 4-11 показывает запрошенные данные, возвращаемые из памяти и загруженные в Read Data FIFO. Данные представлены на шине pX_rd_data для доступа со стороны логики FPGA. Значения pX_rd_empty и pX_rd_count показывают, что данные были загружены в FIFO.

Spartan 6 FPGA MCB Read Data Returning from Memory Device fig4 11

Рис. 4-11. Read Data, возвращенные устройством памяти.

Для перемещения данных в логику FPGA из Read Data FIFO сигнал pX_rd_en должен быть активирован по время появления фронта нарастания pX_rd_clk, как это показано на рис. 4-12. Значение pX_rd_count обновляется соответствующим образом.

Spartan 6 FPGA MCB Transferring Read Data into FPGA Logic fig4 12

Рис. 4-12. Передача Read Data в логику FPGA.

Read Latency. Задержка чтения (Read Latency) определяется количество тактов памяти от момента, когда команда READ записана в Command Path FIFO интерфейса пользователя (User Interface) до момента, когда первое слово данных доступно в стеке FIFO Read Data Path.

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

• Количество команд, уже находящихся в конвейере FIFO, перед тем, как выдана команда READ
• Нужно или нет выдать команду ACTIVATE, чтобы открыть новый банк/строку
• Нужно или нет выдать команду PRECHARGE, чтобы закрыть ранее открытый банк
• Специфичные параметры времени для памяти, такие как tRAS и tRCD совместно с частотой тактов шины
• Состояние арбитра в дизайнах с несколькими портами
• Задержка сигнала выборки столбца микросхемы памяти (CAS latency)
• Задержки распространения сигнала уровня печатной платы и уровня кристалла (как для памяти, так и для FPGA)

Таблица 4-4 показывает относящиеся к MCB задержки для двух разных ситуаций на двух частотах памяти. В первом сценарии чтение происходит на уже открытом устройстве памяти, когда не требуются команды предзаряда (precharge) или активации строки (row activate) для доступа к запрашиваемым данным. Во втором сценарии чтение происходит для нового адреса строки (конфликт bank/row). Это требует precharge, чтобы закрыть ранее открытую строку, за которой идет активация новой строки, что увеличивает задержку чтения (read latency). Оба сценария в таблице 4-4 подразумевают интерфейс пользователя MCB (User Interface) с одним портом, когда нет других команд, ожидающих выполнения (т. е. MCB находится в состоянии ожидания перед получением запроса чтения) и применено устройство памяти, у которого CAS latency (задержка сигнала выборки столбца) равна 5.

Таблица 4-4. MCB Read Latency.

Сценарий латентности чтения
Латентность чтения (в тактах памяти)
MEMCLK = 333 МГц (667 Mb/сек) MEMCLK = 400 МГц (800 Mb/сек)
Чтение из открытой строки (Open Row)
Outbound Command Path 12.5 12.5
Memory CAS Latency (CL) 5 5
Inbound Read Datapath 4.5 4.5
Общая латентность в тактах (время в наносекундах) 22 (66 нс) 22 (55 нс)
Чтение из новой строки (New Row)
Outbound Command Path 12.5 12.5
Precharge/Activate 10 12
Memory CAS Latency (CL) 5 5
Inbound Read Datapath 4.5 4.5
Общая латентность в тактах (время в наносекундах) 32 (96 нс) 34 (85 нс)

Self Refresh. Интерфейс самообновления (self-refresh) это механизм, которым пользователь может запросить вход в режим самообновления устройства памяти, или выход из этого режима. Самообновление поддерживается только микросхемами памяти LPDDR, DDR2 и DDR3. Self refresh позволяет памяти экономить потребляемую мощность, сохраняя данные, когда памяти не нужно активно передавать данные.

Интерфейс self-refresh использует простой протокол для входа в режим self-refresh и выхода из него. Один вывод состояния режима (selfrefresh_mode) показывает, находится или нет память в режиме самообновления. Асинхронный сигнал selfresh_enter анализируется на частоте ядра MCB, который часто работает на частоте, намного выше, чем такты User Interface.

Для входа в режим самообновления сигнал selfrefresh_enter устанавливается, пока selfrefresh_mode не перейдет в лог. 1 (см. рис. 4-13). Сигнал selfrefresh_enter должен оставаться в лог. 1, чтобы оставался режим self-refresh. Для выхода из этого режима сигнал selfrefresh_enter деактивируется (см. рис. 4-14). После этого сигнал selfrefresh_mode переходит в лог. 0, показывая выход из режима самообновления.

Сигнал selfresh_enter должен удерживаться в устойчивом состоянии, потому что любой импульс помехи на этой линии может интерпретироваться как запрос. Обычно эти сигналы должны быть зарегистрированы пользователем перед поступлением в MCB, чтобы гарантировать, что эти сигналы переключаться только когда это необходимо.

Устройство Spartan-6 может быть помещено в состояние приостановки (suspend mode), когда внешняя память находится в режиме самообновления (self-refresh), чтобы еще больше снизить потребление энергии. Однако устройство Spartan-6 не может быть переконфигурировано, когда устройство памяти находится в режиме self-refresh. Переконфигурирование приведет к потере состояния MCB, из-за чего не получится правильно выйти из режима self-refresh.

Spartan 6 FPGA MCB Entering Self Refresh Mode fig4 13

Рис. 4-13. Вход в режим Self-Refresh.

Spartan 6 FPGA MCB Exiting Self Refresh Mode fig4 14

Рис. 4-14. Выход из режима Self-Refresh.

Suspend. Эта секция описывает два рекомендуемых метода для использования возможности режима приостановки (Suspend Mode) устройств Spartan-6 в дизайнах, содержащих интерфейс памяти на основе MCB.

Режим приостановки без поддержки хранения данных в DRAM. В случаях, когда не нужно сохранять содержимое данных, которые уже записаны в устройство памяти DRAM, вывод Suspend может быть просто переведен в состояние активной лог. 1, чтобы активизировался режим приостановки (suspend mode). Перед переводом вывода Suspend в лог. 1 MCB должен быть помещен в состояние сброса переводом async_rst в активный уровень лог. 1. Во время режима приостановки MCB удерживается в состоянии сброса.

Когда вывод Suspend переводится в лог. 0 для выхода из режима приостановки, MCB удерживается в сбросе до тех пор, пока не станет активным сигнал PLL_LOCK, показывая наличие стабильных тактов для MCB. Затем MCB выходит из сброса и инициализирует DRAM, используя ту же последовательность запуска (startup sequence), которая происходит при включении питания или системном сбросе MCB. Все данные DRAM должны считаться недостоверными, когда произошел выход из режима приостановки по этому сценарию.

Режим приостановки с сохранением данных DRAM. В случаях, когда данные в DRAM должны быть сохранены, должен использоваться примитив SUSPEND_SYNC совместно с интерфейсом Self Refresh блока MCB, чтобы правильно реализовать режим приостановки (suspend mode). Примитив SUSPEND_SYNC используется для гарантии, что MCB перевел устройство DRAM в режим самообновления (self-refresh mode, см. секцию «Self Refresh»), чтобы сохранить свое состояние перед переводом FPGA в режим приостановки (suspend mode).

Рис. 4-15 показывает, как примитив SUSPEND_SYNC подключается к логике вывода Suspend и интерфейсу MCB для реализации suspend mode с сохранением данных в DRAM. Диаграмма времени на рис. 4-16 показывает взаимосвязь сигналов, требуемую для успешного перевода FPGA в suspend mode и выхода из него в соответствии с этим сценарием.

Spartan 6 FPGA MCB SUSPEND SYNC connections fig4 15

Рис. 4-15. Соединения SUSPEND_SYNC.

Spartan 6 FPGA MCB Suspend Mode Timing Diagram fig4 16

Рис. 4-16. Диаграмма времени Suspend Mode.

В ответ на активную лог. 1 на выводе Suspend примитив SUSPEND_SYNC отправляет в MCB сигнал запроса приостановки (suspend request, SREQ), чтобы показать необходимость входа режим приостановки (suspend mode). Сигнал SREQ подключается напрямую ко входу selfrefresh_enter высокоуровневой обертки MIG (или EDK), откуда он направляется в модуль программной калибровки (soft calibration module). Этот модуль программной калибровки завершает любые текущие операции перед передачей запроса self-refresh в MCB и оттуда в устройство памяти.

Как только MCB успешно поместил устройство DRAM в режим самообновления (self-refresh mode), выход selfrefresh_mode переходит в лог. 1. Этот сигнал напрямую подключается ко входу подтверждения приостановки (suspend acknowledge, SACK) примитива SUSPEND_SYNC, показывая, что FPGA может быть теперь помещена в режим приостановки. Сигнал PLL_lock будет снят, когда произойдет приостановка (Suspend = лог. 1).

Когда вывод Suspend переходит в лог. 0 для выхода из режима приостановки, сигнал SREQ и таким образом selfrefresh_enter переходят в состояние не активности, и FPGA выводится из состояния Suspend. Сигнал PLL_lock сначала находится в лог. 0, так как PLL пытается осуществить захват для того, чтобы снова начать выдавать стабильную тактовую частоту. Однако из-за того, что сигнал selfrefresh_mode активен, это условие PLL_lock == лог. 0 не приводит к сбросу системы MCB, как это обычно происходило бы. Когда PLL достигает захвата, модуль программной калибровки перенаправляет запрос в MCB на выход из режима самообновления, и оттуда в устройство памяти.

Когда устройство DRAM успешно вышло из режима самообновления, сигнал selfrefresh_mode возвращается в состояние лог. 0, и нормальное функционирование MCB может продолжиться без потери данных в DRAM.

Дополнительные требования Suspend Mode. Хотя устройство Spartan-6 находится в режиме приостановки, некоторые критические сигналы, управляемые устройством DRAM, должны удерживаться в известном состоянии. Когда используется режим приостановки с устройствами памяти, которые поддерживают режим самообновления, вход CKE устройства Spartan-6 должен иметь добавленное ограничение (constraint), чтобы сохранить последнее состояние вывода во время состояния приостановки (Suspend). Должен быть добавлен в файл ограничений пользователя (user constraints file, UCF) оператор наподобие следующего:

Это гарантирует, что устройство DRAM правильно выйдет из режима самообновления. Дополнительно для DDR3 сигнал сброса DRAM должен иметь подобное добавленное ограничение в файле UCF, наподобие следующего:

Это предотвратит нежелательный сброс устройства DRAM во время режима приостановки.

Преобразование адреса байта в адресацию памяти. С точки зрения User Interface блок MCB предоставляет простую и последовательную схему адресации в физическую память DRAM. Факт того, что DRAM сохраняет данные в фиксированных сегментах этой схемой абстрагируется, позволяя работать с памятью через простой интерфейс наподобие SRAM. MCB автоматически преобразует адрес байта на User Interface в необходимые адреса строки, банка и столбца (row, bank и column), требуемые для конкретной конфигурации устройства памяти. Для создания абстракции от подробностей адресации физической памяти DRAM, MCB автоматически обслуживает управление сигналами строки и банка, работающее прозрачно для User Interface.

Стандарт памяти, ширина шины и плотность влияют на то, как адрес байта на User Interface отображается на соответствующие биты адреса строки (row), банка (bank) и столбца (column). Выбор устройства памяти в утилите MIG приводит к передачи необходимых параметров в MCB, так чтобы он создал правильное назначение бит адреса. Таблица 4-5 показывает, как делается это назначение на имеющейся конфигурации устройства памяти. Эти отображения основываются на стандартных схемах адресации JEDEC.

Как показано в таблице 4-5, ширина памяти (x4, x8 или x16) влияет на отображение адреса байта на физический адрес DRAM. Для устройств x4 младший значащий бит (LSB) адреса столбца устанавливается в 0 на внешней шине адреса, чтобы создать выровненную на байт адресацию памяти (бит 0 на User Interface отображается на 1 адреса столбца). Из-за того, что устройства x8 используют традиционную адресацию байта, MCB использует прямое отображение адреса байта на биты физического адреса (бит 0 User Interface напрямую отображается на бит 0 адреса столбца). Для устройств x16 отображение смещается для создания выравнивания адреса на границу 2 байт (бит 1 User Interface отображается на бит 0 адреса столбца).

MCB поддерживает две общие схемы отображения байтового адреса User Interface на физический адрес интерфейса памяти: ROW_BANK_COLUMN и BANK_ROW_COLUMN. Страница конфигурации порта (Port Configuration) утилиты MIG позволяет выбирать схему, которая подходит к определенному приложению (см. секцию «Creating an MCB Design» в UG416 [2]). Таблица 4-5 показывает отображение только адресации для ROW_BANK_COLUMN. Для адресации BANK_ROW_COLUMN позиция групп адреса Row и Bank переключается так, что биты адреса Bank находятся в позиции MSB по отношению к байтовому адресу User Interface. Отображение бит адреса столбца остается неизменным.

Схема ROW_BANK_COLUMN означает, что для транзакции, которая происходит по последовательному адресному пространству, например (например, длинный пакет данных), MCB автоматически откроет ту же строку в следующем банке устройства DRAM, чтобы продолжить транзакцию, когда достигнут конец существующей строки. Это снижает затраты времени, связанные с закрытием текущей строки (команда Precharge) и открытием другой строки в том же банке (команда Activate command) для продолжения транзакции. Схема адресации ROW_BANK_COLUMN хорошо подходит для приложений, которые требуют проталкивания больших пакетов данных в последовательно размещенные по адресам ячейки, где может достигаться повышенная эффективность доступа путем размещения данных в нескольких банках.

В отличие от адресации ROW_BANK_COLUMN адресация BANK_ROW_COLUMN означает, что пересечение границы строки приведет к закрытию этой строки и открытие новой строки в том же банке. Биты адреса Bank находятся в MSB позиции байтового адреса, и они могут использоваться для переключения основных адресных пространств, находящихся в разных банках. Например приложение, основанное на микропроцессоре или микроконтроллере, которое должно быть короче, делает больше произвольных транзакций к одному блоку памяти за один период времени, и затем переходит к другому блоку (т. е. банку), тогда возможно лучше выбрать эту схему отображения адресов.

Таким образом, от специфики работы приложения зависит выбор схемы адресации ROW_BANK_COLUMN или BANK_ROW_COLUMN.

Примечание: при обращении к таблице 4-5 пользователь должен убедиться, что выполнены требования, перечисленные в таблице 4-2, чтобы сохранить правильные границы слова данных.

Таблица 4-5. Отображение памяти устройства (Memory Device Mapping).

Адрес байта 29 28 27 26 25 24 23 22 21 20 18 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 V
Тип Бит Емк.
DDR x16 128 Mb
256 Mb
512 Mb
1 Gb
x8 128 Mb
256 Mb
512 Mb
1 Gb
x4 128 Mb
256 Mb
512 Mb
1 Gb
DDR2 x16 256 Mb
512 Mb
1 Gb
2 Gb
4 Gb
x8 256 Mb
512 Mb
1 Gb
2 Gb
x4 256 Mb
512 Mb
1 Gb
2 Gb
DDR3 x16 512 Mb
1 Gb
2 Gb
4 Gb
x8 512 Mb
1 Gb
2 Gb
x4 512 Mb
1 Gb
2 Gb
LPDDR x16 128 Mb
256 Mb
512 Mb
1 Gb
Биты адреса столбца (Column) CA[0] притянуты к лог. 0 для 4-битных микросхем памяти
Биты адреса банка (Bank)
Биты адреса строки (Row)

Порядок следования транзакций и когерентность. В архитектуре MCB транзакции, выполняемые с памятью, подтверждаются по отношению к одному порту. Следовательно для одного порта транзакции завершаются в том же порядке, в каком запрашиваются.

По нескольким портам MCB нет гарантии, что транзакции, выданные разными портами, будут завершены в порядке поступления запросов. Алгоритм арбитража может быть модифицирован так, чтобы указанный порт имел преимущество перед другим портом. Это можно использовать как механизм влияния на порядок выполнения транзакций, но это не может гарантировать определенный порядок их выполнения.

MCB позволяет буферизировать внутри себя транзакции записи. Из-за буферизации будет неопределенным время, когда транзакция записи будет принята в Command FIFO, и когда завершится запись в память. Из-за того, что порядок выполнения транзакций между портами не гарантируется, то порт, который выполняет чтения по адресу, в который пишет другой порт, может прочитать из памяти новое или старое значение (но какое конкретно заранее не известно).

В некоторых приложениях важно знать, что запись в память была завершена перед чтением того же места памяти (так называемая когерентность доступа). Есть 3 метода, которые могут гарантировать когерентность:

1. Мониторинг флага опустошения Command FIFO:

• Если предположить, что только одна команда находится в очереди на определенном порту, пользователь может мониторить флаг Command FIFO empty. Этот флаг перейдет в лог. 1, когда MCB начнет выдавать команду записи. Когда эта команда запустится, это будет гарантировать, что завершится обработка данных, доступных в Write Data FIFO.
• Дизайн может ждать флага Command FIFO empty, когда он перейдет в лог. 1, перед тем, как можно будет выполнить чтение.

2. Дизайн может воспользоваться преимуществом того факта, что транзакция завершается в определенном порядке для определенного порта:

• После записи в чувствительную часть памяти устройство может выдать пустое чтение, и ждать завершения пустого чтения и возврата данных.
• Завершение пустого чтения гарантирует, что предыдущая запись в память была завершена.

3. Подстройка алгоритма арбитража:

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

Примечание: использование любого из этих методов для гарантирования когерентности приведет к снижению производительности системы; поэтому такие методы следует применять только в случае необходимости.

[Приложение A]

По этим ссылкам можно найти пробную информацию по каждому из стандартов памяти, реализуемому в MCB:

• JEDEC DDR3 Specification
http://www.jedec.org/sites/default/files/docs/JESD79-3D.pdf

• JEDEC DDR2 Specification
http://www.jedec.org/sites/default/files/docs/JESD79-2F.pdf

• JEDEC DDR Specification
http://www.jedec.org/sites/default/files/docs/JESD79F.pdf

• JEDEC LPDDR Specification
http://www.jedec.org/sites/default/files/docs/JESD209A.pdf

Эти ссылки предоставляют дополнительные подробности по разводке печатной платы и анализу целостности сигналов для микросхем памяти DDR. Xilinx не гарантирует точность и полноту любого из этих материалов.

Auto self refresh asr поддерживается что это

Auto self refresh asr поддерживается что это

Приветствую друзья! Сегодня мы поговорим про технологию, которую можно встретить в планках оперативной памяти.

Auto Self Refresh (ASR) — что это?

Поддержка энергосберегающего режима. В простое меньше кушает энергии.

Но на самом деле экономия минимальная, ватта нет и близко — милливатты. Поэтому если поддерживает планка то хорошо, а если нет то совсем некритично.

Не все производители памяти поддерживают эту функцию, например Kingston — поддерживает, а Elpida — нет.

Другая версия — Auto Self Refresh это частота регенерации памяти, то есть обновление заряда ячеек. Чем меньше значение, тем устойчивее работает память (данные не теряет), но чуть медленнее, чем при больших значения. Возможно эта версия относится к опции в биосе (если существует вообще).

Поддерживается опция или нет можно проверить программно, например в AIDA64:

Auto self refresh asr поддерживается что это

Partial Array Self Refresh (PASR) — что это?

Технология частичной регенерации памяти, обеспечивающая снижение мощности, которая потребляется планкой памяти в режиме автономной регенерации при отсутствии операций чтения и записи.

Технология позволяет уменьшить скорость разряда аккумулятора уснувшей платформы (как понимаю имеется ввиду спящий режим).

Так в чем заключается суть технологии? Технология интеллектуально анализирует данные, которые сохранены в памяти с последующим выделением тех данных, которые должны быть сохранены. Если обьем этих данных намного меньше обьема запоминающей матрицы DRAM, тогда можно выполнить регенерацию памяти частично, сэкономив при этом потребление.

Заключение

Когда будете покупать оперативную память, то можете спросить еще совместима ли планка с поддержкой Auto Self Refresh с обычными планками. Однако, мне кажется что да, так как эта технология — лично планки памяти, не материнки, а именно планки.

Auto self refresh asr поддерживается что это

Re: Lenovo G580 (20150) ОЗУ вольтаж

Auto self refresh asr поддерживается что это

Как видно тут написано именно DDR3
Так же и на слоте указано DDR3 1.5V

220633 Вид страницы

Re: Lenovo G580 (20150) ОЗУ вольтаж

Планка памяти довольно редкая.

Информации о ней в интнрнете мало.

Все таки, похоже, что это память низковольтная DDR3L.

На сайте AMD эта память позиционируется как DDR3L

Re: Lenovo G580 (20150) ОЗУ вольтаж

Хотя стоит отметить что где на фото была похожа на мою планку с 1.5в, то там был тип шины PC3-12800S, у меня же пишет прото PC3-12800 ( без S )

178680 Вид страницы

Re: Lenovo G580 (20150) ОЗУ вольтаж

Насколько я понимаю, в данном ноуте режим работы памяти определяется установленным процессором. А это может быть и Intel 3-го поколения (например, 7-3520M) и 2-го (например, i3-2350M), и Pentium (2020M), и Celeron (B800). Соответственно, и рекомендуемая интелом память разная:

Установка модуля с поддержкой нескольких режимов работы решает вопрос совместимости. Таковым и является модуль Sharetronic и еще, к слову 26 моделей 4 ГБ модулей памяти, которые устанавливались в этот ноут. В Вашем случае модуль работает, скорее всего, при напряжении 1.35v, пропускная способность 1600. В этом случае приобретать можно и принципиально DDR3L 1600 модуль, и модули, которые поддерживают оба напряжения питания, обычно это указывается в спецификации модуля. Как правило, модули 1600, продаваемые в рознице, рассчитаны на оба напряжения.

Do it well, worse becomes itself

178680 Вид страницы

Re: Lenovo G580 (20150) ОЗУ вольтаж

Do it well, worse becomes itself

220633 Вид страницы

Re: Lenovo G580 (20150) ОЗУ вольтаж

>ни на самой планке + в спецификации так же нет того, что в ноутах могут стоят DDR3L. +

Насколько я помню программы типа CPU-Z всегда пишут для низковольтной памяти DDR3 и при этом указываяют напряжение 1.35v

Re: Lenovo G580 (20150) ОЗУ вольтаж

Спасибо за ответ, в таком случае возьму DDR3L с поддержкой питания 1.35 и 1.5

Правила Сообщества

Пожалуйста, ознакомьтесь с правилами сообщества перед публикацией.

Проверьте текущие предложения!

Самые популярные сообщения

Пожалуйста, авторизуйтесь, чтобы поставить Лайк

Welcome to Ideation!

Ideation sections have been created for customers to engage with us by discussing and promoting ideas and improvements relating to Lenovo’s products and services.

As a reminder, your participation in Ideation is governed by Lenovo’s website Terms of Use [link] and by Lenovo’s Forums Community Guidelines. Additional terms governing the Ideation Program are included in the Ideation Terms and may be found here. For your convenience, here’s a

Quick summary of the highlights:

By clicking on “Yes” below you certify that you have read and agree to the Community Guidelines and the Ideation Terms, and acknowledge that by submitting any ideas, material, or information on the Ideation site you grant Lenovo the right to use any such submissions by you in any way without acknowledging, notifying, or compensating you, as described in those documents.

Auto self refresh asr поддерживается что это

Re: Lenovo G580 (20150) ОЗУ вольтаж

Auto self refresh asr поддерживается что это

Как видно тут написано именно DDR3
Так же и на слоте указано DDR3 1.5V

220633 Вид страницы

Re: Lenovo G580 (20150) ОЗУ вольтаж

Планка памяти довольно редкая.

Информации о ней в интнрнете мало.

Все таки, похоже, что это память низковольтная DDR3L.

На сайте AMD эта память позиционируется как DDR3L

Re: Lenovo G580 (20150) ОЗУ вольтаж

Хотя стоит отметить что где на фото была похожа на мою планку с 1.5в, то там был тип шины PC3-12800S, у меня же пишет прото PC3-12800 ( без S )

178680 Вид страницы

Re: Lenovo G580 (20150) ОЗУ вольтаж

Насколько я понимаю, в данном ноуте режим работы памяти определяется установленным процессором. А это может быть и Intel 3-го поколения (например, 7-3520M) и 2-го (например, i3-2350M), и Pentium (2020M), и Celeron (B800). Соответственно, и рекомендуемая интелом память разная:

Установка модуля с поддержкой нескольких режимов работы решает вопрос совместимости. Таковым и является модуль Sharetronic и еще, к слову 26 моделей 4 ГБ модулей памяти, которые устанавливались в этот ноут. В Вашем случае модуль работает, скорее всего, при напряжении 1.35v, пропускная способность 1600. В этом случае приобретать можно и принципиально DDR3L 1600 модуль, и модули, которые поддерживают оба напряжения питания, обычно это указывается в спецификации модуля. Как правило, модули 1600, продаваемые в рознице, рассчитаны на оба напряжения.

Do it well, worse becomes itself

178680 Вид страницы

Re: Lenovo G580 (20150) ОЗУ вольтаж

Do it well, worse becomes itself

220633 Вид страницы

Re: Lenovo G580 (20150) ОЗУ вольтаж

>ни на самой планке + в спецификации так же нет того, что в ноутах могут стоят DDR3L. +

Насколько я помню программы типа CPU-Z всегда пишут для низковольтной памяти DDR3 и при этом указываяют напряжение 1.35v

Re: Lenovo G580 (20150) ОЗУ вольтаж

Спасибо за ответ, в таком случае возьму DDR3L с поддержкой питания 1.35 и 1.5

Правила Сообщества

Пожалуйста, ознакомьтесь с правилами сообщества перед публикацией.

Проверьте текущие предложения!

Самые популярные сообщения

Пожалуйста, авторизуйтесь, чтобы поставить Лайк

Welcome to Ideation!

Ideation sections have been created for customers to engage with us by discussing and promoting ideas and improvements relating to Lenovo’s products and services.

As a reminder, your participation in Ideation is governed by Lenovo’s website Terms of Use [link] and by Lenovo’s Forums Community Guidelines. Additional terms governing the Ideation Program are included in the Ideation Terms and may be found here. For your convenience, here’s a

Quick summary of the highlights:

By clicking on “Yes” below you certify that you have read and agree to the Community Guidelines and the Ideation Terms, and acknowledge that by submitting any ideas, material, or information on the Ideation site you grant Lenovo the right to use any such submissions by you in any way without acknowledging, notifying, or compensating you, as described in those documents.

Auto self refresh asr поддерживается что это

Самостоятельный апгрейд и апдейт ноутбука/нетбука

Auto self refresh asr поддерживается что это

Мне данная тема видится примерно так:
Апдейт Биоса и необходимый софт:
Последние обновления Биоса можно скачать на сайте производителя материнской платы или производителя (внимательно проверяем модель и конфигурацию), определить производителя могут помощь разные программы например SiSoftware Sandra, некоторые обновления в архиве могут содержать и утилиту для перепрошики, при прошивке достаточно следовать инструкции, в сети больше советуют обновляться с CD, советую использовать программу UltraISO или аналогичную позволяющую создавать загрузочный диск. Полезные ссылки:
Как обновить прошивку BIOS?
Существует несколько способов обновления BIOS
Как определить производителя и модель материнской платы?

Общие принципы подбора и замены модулей памяти:

Как минимум полезные ссылки, как максимум Ваши рекомендации.

Если да,нужно ли перепрошивать биос(на какую версию)? Производить другие манипуляции?

Необходима перепрошивка биоса на версию не ниже 206.

Вот таблица совместимости :

Для 945 чипсета(платформа Napa) выпускались процессоры для Socket M
Вот их перечень
Intel Celeron M 410
Intel Celeron M 420
Intel Celeron M 430
Intel Celeron M 440
Intel Celeron M 440
Intel Celeron M 450
Intel Celeron M 520
Intel Celeron M 530

Intel Core Solo T1200
Intel Core Solo T1300
Intel Core Solo T1350
Intel Core Solo T1400
Intel Core Solo T1500

Intel Core Duo T2050
Intel Core Duo T2250
Intel Core Duo T2300E
Intel Core Duo T2300
Intel Core Duo T2350
Intel Core Duo T2400
Intel Core Duo T2450
Intel Core Duo T2500
Intel Core Duo T2600
Intel Core Duo T2700

Intel Pentium Dual-Core Mobile T2060
Intel Pentium Dual-Core Mobile T2080
Intel Pentium Dual-Core Mobile T2130

Intel Core 2 Duo Mobile T5200
Intel Core 2 Duo Mobile T5300
Intel Core 2 Duo Mobile T5500
Intel Core 2 Duo Mobile T5600
Intel Core 2 Duo Mobile T7200
Intel Core 2 Duo Mobile T7400
Intel Core 2 Duo Mobile T7600
Intel Core 2 Duo Mobile T7600G

Новые модели процессоров уже выпускаются для
Socket P (965 чипсет платформа Santa Rosa)
Вот их перечень
Intel Celeron M 530
Intel Celeron M 540
Intel Celeron M 550
Intel Celeron M 560
Intel Celeron M 570
Intel Celeron M 575
Intel Celeron M 585

Intel Pentium Dual-Core Mobile T2310
Intel Pentium Dual-Core Mobile T2330
Intel Pentium Dual-Core Mobile T2370
Intel Pentium Dual-Core Mobile T2390
Intel Pentium Dual-Core Mobile T3200
Intel Pentium Dual-Core Mobile T3400

Intel Core 2 Duo Mobile T5250
Intel Core 2 Duo Mobile T5270
Intel Core 2 Duo Mobile T5450
Intel Core 2 Duo Mobile T5470
Intel Core 2 Duo Mobile T5550
Intel Core 2 Duo Mobile T5670
Intel Core 2 Duo Mobile T5750
Intel Core 2 Duo Mobile T5800
Intel Core 2 Duo Mobile T5850
Intel Core 2 Duo Mobile T5870
Intel Core 2 Duo Mobile T5900
Intel Core 2 Duo Mobile T7100
Intel Core 2 Duo Mobile T7250
Intel Core 2 Duo Mobile T7300
Intel Core 2 Duo Mobile T7500
Intel Core 2 Duo Mobile T7700
Intel Core 2 Duo Mobile T7800
Intel Core 2 Duo Mobile T8100
Intel Core 2 Duo Mobile T8300
Intel Core 2 Duo Mobile T9300
Intel Core 2 Duo Mobile T9500

Версия EVEREST v5.00.1686 Beta/ru
Тестовый модуль 2.4.258.0
Домашняя страница http://www.lavalys.com/
Тип отчёта Быстрый отчёт
Компьютер FURTIVE-PC
Генератор Furtive
Операционная система Microsoft Windows 7 Ultimate 6.1.7600
Дата 2010-02-23
Время 17:04

Системная плата:
Тип ЦП Mobile DualCore Intel Core 2 Duo T5800, 2000 MHz (10 x 200)
Системная плата Asus A8000Le Series Notebook
Чипсет системной платы Intel Crestline-GML GL960
Системная память 2039 Мб (DDR2-667 DDR2 SDRAM)
DIMM1: Hynix HYMP512S64EP8-Y5 1 Гб DDR2-667 DDR2 SDRAM (5-5-5-15 @ 333 МГц) (4-4-4-12 @ 266 МГц) (3-3-3-9 @ 200 МГц)
DIMM3: Samsung M4 70T2864QZ3-CE6 1 Гб DDR2-667 DDR2 SDRAM (5-5-5-15 @ 333 МГц) (4-4-4-12 @ 266 МГц) (3-3-3-9 @ 200 МГц)
Тип BIOS AMI (04/08/08)

Разделы:
C: (NTFS) 36993 Мб (25383 Мб свободно)
E: (NTFS) 51520 Мб (29811 Мб свободно)
G: (NTFS) 25956 Мб (12973 Мб свободно)
Общий объём 111.8 Гб (66.6 Гб свободно)

Ввод:
Клавиатура Keyboard Device Filter
Мышь HID-совместимая мышь
Мышь Microsoft PS/2 мышь

Сеть:
Первичный адрес IP 192.168.1.37
Первичный адрес MAC 00-15-AF-45-E8-AA
Сетевой адаптер Адаптер беспроводных сетей Atheros AR5007EG Wireless (192.168.1.37)
Сетевой адаптер Сетевая карта Realtek RTL8168B/8111B Family PCI-E Gigabit Ethernet NIC (NDIS 6.20)
Модем Motorola SM56 Speakerphone Modem

DMI:
DMI поставщик BIOS American Megatrends Inc.
DMI версия BIOS 206
DMI производитель системы ASUSTeK Computer Inc.
DMI система A8Le
DMI системная версия 1.0
DMI системный серийный номер NF1S7908910011
DMI системный UUID 003193E1-3064DC81-2A8A001D-60898D03
DMI производитель системной платы ASUSTeK Computer Inc.
DMI системная плата A8Le
DMI версия системной платы 1.0
DMI серийный номер системной платы BSN12345678901234567
DMI производитель шасси ASUSTeK Computer Inc.
DMI версия шасси 1.0
DMI серийный номер шасси CSN12345678901234567
DMI Asset-тег шасси ATN12345678901234567
DMI тип шасси Notebook

Auto self refresh asr поддерживается что это

Здесь решаются все вопросы, связанные с оперативной памятью.

« Оскорбить женщину может только униженный судьбой мужчина.» — Мэрилин Монро

Но единственное место в котором она доступна, находится далеко.

Можно ли считать такую равноценной заменой?

Quadro174, ну, подумаем. Может и не мать.

« Оскорбить женщину может только униженный судьбой мужчина.» — Мэрилин Монро

на плату установлено нечетное количество модулей памяти, хотя по спецификации требуется установить модули парами. При этом плата обычно не запускается.
модули памяти установлены не в те слоты, что требуется по спецификации. Обычно относится к платам, которые требуют обязательной установки модулей парами. Плата обычно не запускается.

« Оскорбить женщину может только униженный судьбой мужчина.» — Мэрилин Монро

Вроде в современных платах такого меньше. Но 2 в дуал, хоть и не дадут супер ускорения, но так будет лучше. Я бы на твоём месте просто докупил бы ещё такую же планку. Можно позже, если нету сейчас денег.

« Оскорбить женщину может только униженный судьбой мужчина.» — Мэрилин Монро

Auto self refresh asr поддерживается что это

PETICANTROP, как это сделать?

Sem Shephard, проц: Intel Core i5-2500. Старая ОЗУ: DDR3 4096Gb 1600Mhz 1.65v Corsair 2x2Gb 8-8-8-24, XMS3 Classic. Новая: DDR3 1600 Mhz 1.50v Corsair 2x4Gb 9-9-9-24.

 

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *