Прожиг флэш-памяти в протоколе JTAG

№ 5’2010
PDF версия
Одним из наиболее популярных нетестовых применений технологии JTAG является прожиг микросхем флэш-памяти, используемый сегодня повсеместно.

Микросхемы флэш-памяти, как известно [ПЭ. 2008. № 1], сами по себе
JTAG-структуры не имеют и протокол JTAG не поддерживают. Для обеспечения
возможности прожига в технологии JTAG такие ИС должны быть управляемы окружающими их структурами JTAG — как по шинам
адреса и данных, так и по всем цепям управления, как показано на рисунке.

Здесь все цепи флэш-памяти управляются
от одной ИС JTAG, что представляет собой
предпочтительный вариант схемотехники,
как будет ясно из дальнейшего обсуждения,
но, разумеется, не единственно возможный.
Обеспечение прожига ИС флэш-памяти
в смысле JTAG-управляемости шин адреса,
данных и большей части сигналов управления
не вызывает, как правило, вопросов. Следует,
однако, отметить, что JTAG-программы, связанные с прожигом ИС флэш-памяти, являются наиболее времяемкими среди прочих
JTAG-тестов (см. рис. 3 в [ПЭ. 2007. № 8]),
поэтому при проектировании тестопригодных схем уменьшению или, по крайней мере,
оптимизации времени прожига традиционно
уделяется значительное внимание.

Рисунок. Структура JTAG-прожига ИС флэш-памяти

Предварительная оценка минимально возможного времени прожига флэш-памяти
посредством JTAG-интерфейса выполняется
по следующей простой формуле:

Tпрог = (Nяч×Nцикл×Nwe×Addr)/TCK,

где Tпрог — оценка времени прожига флэшпамяти в секундах; Nяч — число последовательных JTAG-ячеек, активизируемых при
прожиге флэш-памяти; Nцикл — число циклов записи информации в данную флэшпамять; Nwe — число JTAG-векторов, необходимых для обеспечения правильной формы
сигнала /WE в каждом цикле записи; Addr —
количество адресов (ячеек памяти), используемых в данном файле прожига; TCK —
максимально возможная частота данной
JTAG-цепочки, Гц.

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

Число последовательных JTAG-ячеек
(Nяч) — это сумма длин (в количестве ячеек)
регистров граничного сканирования (РГС)
всех ИС JTAG [ПЭ. 2007. № 6], активизируемых при прожиге флэш-памяти, плюс простая сумма всех ИС JTAG, находящихся при этом в состоянии обхода (одна ячейка регистра РО в каждой из таких ИС). Если управление ИС флэш-памятью сосредоточено
в одной ИС JTAG, как показано на рисунке,
такую структуру следует признать предпочтительной и к ней следует стремиться
при тестопригодном проектировании схем.
Если же управление такой ИС распределено
так, что, скажем, шиной данных управляет
одна из ИС JTAG-цепочки, шиной адреса —
другая, а цепи управления подключены к третьей ИС, такая схемная конфигурация с точки зрения времени прожига флэш-памяти
представляется наихудшей.

Упомянутые РГС, активизируемые при
прожиге флэш-памяти, связаны, разумеется,
не только с управлением собственно процессом прожига, но и с поддержкой внутрисхемных сигналов, обеспечивающих те или иные
условия этого процесса (constraints). Следует
тщательно проверять возможности исключения поддержки этих сигналов, исходя из желания уменьшить параметр Nяч. Невозможно,
к примеру, пренебречь поддержкой цепей
(если таковые есть, конечно), обеспечивающих JTAG-режим (compliance) тех ИС, которые управляют прожигом флэш-памяти, или
цепей, определяющих выдачу внутренних
напряжений питания платы. Но представим
себе, что некая ПЛМ управляет прожигом
флэш-памяти, а FPGA обеспечивает блокировку выходов ИС памяти (SRAM, к примеру), подключенных к той же шине данных,
что и прожигаемая флэш-память. Эта FPGA
может быть переведена в режим обхода
BYPASS или HIGHZ, что добавит к параметру Nяч лишь одну ячейку РО, если контакт
разрешения выборки SRAM снабжен подтягивающим резистором. Контакты ввода/вывода большинства современных FPGA, переведенных в режим обхода BYPASS, находятся
в состоянии с высоким импедансом, так что
подтягивающий резистор сам по себе обеспечит необходимую блокировку выходов
SRAM. Другая возможность обеспечения
требуемых условий процесса прожига, даже
без введения в схему дополнительных резисторов в соответствующих цепях, не приводящая к удлинению параметра Nяч, заключается в использовании для этой цели
только ИС, поддерживающих JTAG-команду
CLAMP. Необходимые уровни сигналов загружаются при этом в РГС такой ИС и «замораживаются» на ее выходах, активным же
регистром этой ИС в JTAG-цепочке прожига
флэш-памяти будет РО [ПЭ. 2007. № 7].

Число циклов записи информации
во флэш-память Nцикл определяется производителем этой ИС. Например, для ИС
фирмы AMD параметр Nцикл = 4, а для ИС
фирмы Intel Nцикл = 2, что сразу указывает
на предпочтительность выбора производителя флэш-памяти, если время ее прожига
по тем или иным причинам критично.

Весьма существенным фактором уменьшения времени прожига ИС флэш-памяти
является управляемость сигналом разрешения записи /WE. Дело в том, что каждый
цикл записи в ИС флэш-памяти, как правило,
сопровождается тремя последовательными
логическими уровнями в цепи /WE: «лог. 1»,
«лог. 0» и «лог. 1». Если цепь /WE является
JTAG-управляемой (голубая стрелка на рисунке), то для обеспечения указанной последовательности переключений в ней требуется
выполнение трех фаз Shift-DR [ПЭ. 2007. № 6]
на каждый цикл записи, то есть Nwe = 3, что
весьма емко по времени. Простым решением,
о реализуемости которого следует позаботиться на этапе проектирования схемы, является
подключение цепи /WE к одному из контактов внешнего управления JTAG-тестера (коричневая стрелка на рисунке) для обеспечения
ускоренного JTAG-прожига флэша. Система
управления любым JTAG-тестером обеспечивает необходимые сигналы на таком контакте,
синхронизированные с остальными JTAGуправляемыми сигналами прожига флэшпамяти в течение лишь одного JTAG-вектора.
Параметр Nwe при этом становится равным 1,
что позволяет реально сократить время прожига в 2,5–3 раза. Если еще к одному контакту
внешнего управления JTAG-тестера подключить также контакт готовности RDY/BSY ИС
флэш-памяти (которым, правда, снабжены
не все флэши), то это позволит JTAG-тестеру
перейти к следующему циклу записи сразу же
по завершении предыдущего цикла, а время
прожига может быть сокращено примерно
на 10%. Очень важно при этом позаботиться о схемном запрете возможных конфликтов в цепях /WE и RDY/BSY между ИС JTAG
и внешним управлением.

Значение длительности прожига флэшпамяти, как видно из приведенной выше
формулы, обратно пропорционально значению ТСК — частоте синхросигналов JTAG-цепочки, управляющей прожигом, а эта частота, как известно, определяется значением
ТСК наиболее медленной ИС в цепочке. Это
означает, что при проектировании схемы
следует стремиться сконцентрировать JTAG-управляемость всеми сигналами ИС флэш-памяти (не только шинами адреса и данных,
но и сигналами управления) в одной ИС
с наибольшим значением ТСК и непременно
буферизовать цепь ТСК на самой плате с использованием высокоскоростного буфера.
Значение ТСК, обеспечиваемое той или иной
ИС JTAG, указано в ее файле BSDL [ПЭ. 2007.
№ 7]. Следует иметь в виду, однако, что не все
доступные в интернете файлы BSDL проверены, так что к указанному в них значению ТСК
нужно относиться критически. Важно также подчеркнуть, что если высокоскоростная
ИС JTAG (например, с ТСК = 40 МГц) полностью управляет прожигом флэш-памяти,
но в той же JTAG-цепочке находится медленная ИС JTAG (например, с ТСК = 5 МГц), введенная в режим обхода BYPASS или HIGHZ,
то результирующая максимальная частота
такой цепочки будет равна именно 5 МГц!
Иными словами, высокоскоростная управляющая ИС JTAG не должна физически находиться в одной цепочке с более медленными
или должна быть физически же исключена
из JTAG-цепочки на время прожига флэша.

В заключение вернемся к приведенной
выше формуле и приведем пример предварительной численной оценки времени прожига флэш-памяти фирмы Intel, управляемой
от ПЛМ, находящейся в одной цепочке с еще
тремя ИС JTAG, самая медленная из которых
имеет частоту ТСК = 16 МГц. Длина РГС ПЛМ
равна 498 ячейкам, то есть Nяч = 498+3 = 501.
Как и для всех вариантов флэш-памяти Intel,
Nцикл = 2. Предположим для начала, что наша
флэш-память имеет внутрисхемное JTAGуправление цепью /WE, то есть Nwe = 3.

Шина адреса составляет 24 адресных разряда, то есть максимальное число адресуемых
ячеек равно 224 = 1 Mбайт = 16 777 216 байт.
Допустим, что схемное включение нашей ИС
позволяет адресоваться к словам, то есть параметр Addr = 8388608 слов. Таким образом,

Tпрог = (501×2×3×8388608)/16000000 = 1576 с = 26 мин.

Если для нашей флэш-памяти существует
схемное решение для внешнего управления
цепью /WE, как показано на рисунке, то есть Nwe = 1, то время ее прожига сокращается
примерно до 9 минут, а на практике сводится
к 6–7 минутам, что может быть приемлемо.
Если существует схемная возможность физически исключить из JTAG-цепочки, например, при помощи шунтирующих резисторов
или перемычек, три сравнительно медленных ИС JTAG, находящихся в режиме BYPASS
и обеспечивающих частоту ТСК = 16 МГц,
то параметр ТСК станет равным 40 МГц, что
обеспечивается управляющей процессом
прожига микросхемой ПЛМ. В таком случае:

Tпрог = (498×2×1×8388608)/40000000 = 208 с = 3,5 мин.

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

Значительный резерв для сокращения времени прожига флэш-памяти заключен в параметре Addr. В наших расчетах мы исходили
из предположения о необходимости прожига
всего адресуемого пространства, хотя на практике оказывается, что не менее одной трети
этого пространства вовсе не предназначено
для прожига и должно оставаться пустым,
то есть заполненным «логическими единицами» (FFF… F). Адекватное редактирование
файла прожига или расщепление его на содержательные подфайлы позволяет, таким образом, сократить время прожига еще на 30%
и более. Зачастую также ограничиваются прожигом лишь загружаемой части (boot) содержимого флэш-памяти, что дает возможность
запустить плату в рабочий режим и уже затем
дополнить содержимое флэш-памяти, загрузив его из ЭППЗУ или процессора.

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

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