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

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

в протоколе JTAG

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

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

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

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

Тпрог = (^ч^лХ^хА^гУТСК,

где Тпрог — оценка времени прожига флэш-памяти в секундах; Мяч — число последовательных JTAG-ячеек, активизируемых при прожиге флэш-памяти; Мцикл — число циклов записи информации в данную флэш-память; Ыке — число JTAG-векторов, необходимых для обеспечения правильной формы сигнала ^Е в каждом цикле записи; Аййг — количество адресов (ячеек памяти), используемых в данном файле прожига; ТСК — максимально возможная частота данной JTAG-цепочки, Гц.

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

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

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

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

КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 5 '2010

торов в соответствующих цепях, не приводящая к удлинению параметра Nm, заключается в использовании для этой цели только ИС, поддерживающих JTAG-команду CLAMP. Необходимые уровни сигналов загружаются при этом в РГС такой ИС и «замораживаются» на ее выходах, активным же регистром этой ИС в JTAG-цепочке прожига флэш-памяти будет РО [ПЭ. 2007. № 7].

Число циклов записи информации во флэш-память N цикл определяется производителем этой ИС. Например, для ИС фирмы AMD параметр Nцикл = 4, а для ИС фирмы Intel ^икл = 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 ячейкам, то есть Nm = 498+3 = 501. Как и для всех вариантов флэш-памяти Intel, N^ra = 2. Предположим для начала, что наша флэш-память имеет внутрисхемное JTAG-управление цепью /WE, то есть Nwe = 3.

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

Гпрог = (501x2x3x8 388 608)/16 000 000 = = 1576 с = 26 мин.

Если для нашей флэш-памяти существует схемное решение для внешнего управления цепью /WE, как показано на рисунке, то есть

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

Гпрог = (498x2x1x8 388 608)/40 000 000 = = 208 с = 3,5 мин.

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

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

КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 5 '2010

www.kit-e.ru