2013 Электротехника, информационные технологии, системы управления № 8 УДК 519.1(075.8)+510.6(075:8)
С.Ф. Тюрин1, О.А. Громов1, А.Ю. Городилов2
Пермский национальный исследовательский политехнический университет,
г. Пермь, Россия
Пермский государственный национальный исследовательский университет,
г. Пермь, Россия
РЕКОНФИГУРАЦИЯ И ДИАГНОСТИРОВАНИЕ ЛОГИКИ ПЛИС FPGA
Рассматриваются реконфигурация и диагностирование логических элементов современных программируемых логических интегральных схем ПЛИС типа FPGA (field-programmable gate array), построенных как мультиплексоры - селекторы MS и составляющих основу конфигурируемых логических блоков (КЛБ). Показано, что КЛБ при однократных отказах передающих транзисторов или входов настройки, или входов адреса может быть использован как «половинный». Так, однократный отказ логического элемента LUT (Look Up Table) ПЛИС фирмы «Альтера» с n = 4 уменьшает его функциональные возможности, тем не менее за счет большой избыточности можно строить функции трех входных переменных. Из нескольких элементов с отказами путём диагностирования и реконфигурации можно восстановить логический элемент с исходным значением переменных n. Таким образом, обеспечивается увеличение логических резервов ПЛИС, что повышает их коэффициент готовности и позволяет использовать в областях критического применения в высоконадёжных, отказоустойчивых приложениях.
Ключевые слова: программируемая логическая интегральная схема (ПЛИС), логический элемент ЛЭ, мультиплексор - селектор Ms, элемент с избыточным базисом - функционально-полный толерантный (ФПТ) элемент, реконфигурация, диагностирование, надёжность, отказоустойчивость.
S.F. Tyurin1, O.A. Gromov1, A.Yu. Gorodilov2
Perm National Research Polytechnic University, Perm, Russian Federation
2Perm State National Research University, Perm, Russian Federation
RECONFIGURATION AND DIAGNOSIS OF FIELD-PROGRAMMABLE GATE ARRAY INTEGRATED CIRCUITS
The paper analyses reconfiguration and diagnosis of field-programmable gate arrays circuits built as multiplexing circuits like MS selectors being the basis for configurable logic blocks (CLBs). It has been shown that in case of route transistors or set inputs or address inputs single failures a configurable logic block can be used as “half” block. Thus, Altera LUT (Look Up Table) programmable logic gate integrated circuit with n = 4 decreases its functionality but, due to great circuit redundancy three input variables functions are possible to create. From several failure gate arrays through diagnosis and reconfiguration the logic gate with the initial “n” value variables can be restored. As a result, it is possible to provide logic reserves increase of field-programmable gate array circuits, which leads to their greater operation readiness and makes them possible to use in critical application for highly-reliable and fault-tolerant programming.
Keywords: programmable gate arrays integrated circuits, logic gate, multiplexing MS selector, excess basis element-functionally complete tolerant element, reconfiguration, diagnosis, reliability, fault tolerance.
Логика современных программируемых пользователем вентильных матриц или ПЛИС FPGA (field-programmable gate array) реализована в виде конфигурируемых логических блоков (КЛБ) [1], состоящих из логических элементов ЛЭ, программируемых локальных и глобальных матриц соединений - ЛМС, ГМС (рис. 1).
Рис. 1. Конфигурируемый логический блок (КЛБ) ПЛИС FPGA
Каждый логический элемент ЛЭ строится как постоянное запоминающее устройство ПЗУ (LUT - Look Up Table), представляющее собой мультиплексор - селектор (MS) на передающих МОП-транзисторах с четырьмя адресными входами 16-1 (имеются уже ЛЭ на 5,6 и даже 7 адресных входов), входы данных которого настраиваются так называемыми конфигурируемыми ячейками памяти - КЯ -ячейками статической памяти SRAM [2] (рис. 2).
А В С D
Рис. 2. Логический элемент ПЛИС FPGA (фирма Altera) 16-1 с четырьмя адресными входами
WL
Рис. 3. Ячейка памяти SRAM
Подобные МОП-структуры используются и в настраиваемых коммутаторах связей. Для компенсации падения напряжения в цепочке передающих транзисторов (имеются ограничения на длину цепочки -законы проектирования БИС Мида и Конвей [3]) обязательно нужны буферные элементы, которые представляют собой КМДП-инверторы. Всегда активирована только одна из 16 цепочек транзисторов, так что
выходной инвертор повторяет логический уровень, записанный в одной из ячеек SRAM, в соответствии с заданным набором на адресных входах A,B,C,D и записанной таблицей в SRAM [2] истинности.
Рис. 4. Мультиплексор 8-1 (на восемь каналов), состоящий из семи элементарных мультиплексоров 2-1
Таким образом, настройка дерева мультиплексоров ЛЭ осуществляется путём загрузки так называемой конфигурационной памяти -SRAM [2]. Шеститранзисторная ячейка такой статической оперативной памяти SRAM [2] представлена на рис. 3.
В настоящее время одной из серьёзных проблем в области ПЛИС FPGA является восстановление логики после отказов в период эксплуатации, хотя она и занимает по сравнению с памятью относительно небольшой процент площади кристалла [4]. Предложены принципы такого восстановления [5-11].
Адаптация к отказам мультиплексора 8-1
Рассмотрим логический элемент FPGA мультиплексор на три адресных входа х1,х2, 3 - на 8 каналов а,Ь,сДе,£^^ (8-1), состоящий из семи элементарных мультиплексоров 2-1, реализованных на основе элементов с избыточными базисами - функционально-полных толерантных (ФПТ) элементов [12-22] (рис. 4).
Однократный отказ по входам данных а,Ь,сД,в/^^
Пусть имеется отказ в элементе, на вход которого подключены каналы c,d. Тогда необходимо после обнаружения отказа выполнить переход на вторую половину схемы - каналы в/^^. Причём отказы могут быть и по входу, но только не у последнего элемента.
Если остаётся половина элементов (допускаются отказы по входам всех элементов и даже по выходам, кроме отказа по выходу последнего элемента), например, старшая переменная приравнивается нулю:
2 = 0X2(cXl V dxl) V X2(aXl V bxl) V
= =_ = _ =_ = (1) V 0х2(gXl V кх\) V х2(ех1 V /хх).
Тогда получаем:
2 = 0 х 2(сх1 V dxl) V х 2(0x1 V 6x1) (2)
или
= X2(СХ1 V dxl) V х2(^X1 V 6x1). (3)
Вторую половину каналов реализуем аналогично:
22 = X2(gXl V ^1) V X2(^X1 V /Xl). (4)
Для восстановления одного восьмиканального мультиплексора из трёх «половинных» на четыре канала необходимо, чтобы третий мультиплексор подключал по старшей переменной либо одну, либо вторую половину, то есть работал в режиме двухканального мультиплексора.
Поэтому для настройки третьей составляющей необходимо
¿з = Xз(zl0 V10) V Xз(z20 V10), (5)
что соответствует функции двухканального мультиплексора:
Хэ V z2 хз. (6)
Однократный отказ по входам адреса
В табл. 1 показано, как необходимо реконфигурировать каналы для парирования такого отказа.
Таблица 1
Требуемая реконфигурация каналов при константных отказах адресных входов восьмиканального мультиплексора
х2 Х1 Х0 Нет отказа Отказ х2 Отказ х2 Отказ х10 Отказ х1 Отказ Х0 Л0 Отказ х1 Л0
0 0 0 0 0 4 0 2 0 1
0 0 1 1 1 5 1 3 0 1
0 1 0 2 2 6 0 2 2 3
0 1 1 3 3 7 1 3 2 3
1 0 0 4 0 4 4 6 4 5
1 0 1 5 1 5 5 7 4 5
1 1 0 6 2 6 4 6 6 6
1 1 1 7 3 7 5 7 6 6
«Половинные» логические элементы можно использовать самостоятельно, а для восстановления одного полного мультиплексора необходимо три «половинных» мультиплексора. Таким образом, можно сказать, что получается:
'/2 MS +1/ МБ+1/ MS=1 MS. (7)
Учёт однократных отказов транзисторов
Таблица 2
Адаптация ШТ к некоторым однократным константным отказам
Вид отказа Требуемая пере- Ячейки БЯЛМ, Используемые переменные
коммутация реализующие функцию
УТ10 А=0 2,4,6,8,10,12,14,16 в, С, D
УП1 А=1 1,3,5,7,9,11,13,15 В, С, D
УТ20 А=1 1,3,5,7,9,11,13,15 В, С, D
УТ21 А=0 2,4,6,8,10,12,14,16 В, С, D
УТ30 А=0 2,4,6,8,10,12,14,16 В, С, D
УТ31 А=1 1,3,5,7,9,11,13,15 В, С, D
Продолжение табл. 2
Вид отказа Требуемая пере-коммутация Ячейки SRAM, реализующие функцию Используемые переменные
УТ40 А=1 1,3,5,7,9,11,13,15 в, С, D
УТ41 А=0 2,4,6,8,10,12,14,16 В, С, D
УТ50 А=0 2,4,6,8,10,12,14,16 В, С, D
УТ51 А=1 1,3,5,7,9,11,13,15 В, С, D
УТ60 А=1 1,3,5,7,9,11,13,15 В, С, D
VT61 А=0 2,4,6,8,10,12,14,16 В, С, D
УТ70 А=0 2,4,6,8,10,12,14,16 В, С, D
VT71 А=1 1,3,5,7,9,11,13,15 В, С, D
УТ80 А=1 1,3,5,7,9,11,13,15 В, С, D
VT81 А=0 2,4,6,8,10,12,14,16 В, С, D
VT9U А=0 2,4,6,8,10,12,14,16 В, С, D
VT91 А=1 1,3,5,7,9,11,13,15 В, С, D
VT10U А=1 1,3,5,7,9,11,13,15 В, С, D
УТЮ1 А=0 2,4,6,8,10,12,14,16 В, С, D
VT110 А=0 2,4,6,8,10,12,14,16 В, С, D
УТ111 А=1 1,3,5,7,9,11,13,15 В, С, D
УТ120 А=1 1,3,5,7,9,11,13,15 В, С, D
УТ121 А=0 2,4,6,8,10,12,14,16 В, С, D
УТ130 А=0 2,4,6,8,10,12,14,16 В, С, D
УТ131 А=1 1,3,5,7,9,11,13,15 В, С, D
УТ140 А=1 1,3,5,7,9,11,13,15 В, С, D
УТ141 А=0 2,4,6,8,10,12,14,16 В, С, D
УТ150 А=0 2,4,6,8,10,12,14,16 В, С, D
УТ151 А=1 1,3,5,7,9,11,13,15 В, С, D
УТ160 А=1 1,3,5,7,9,11,13,15 В, С, D
УТ161 А=0 2,4,6,8,10,12,14,16 В, С, D
УТ170 В=0 3,4,7,8,11,12,15,16 А, С, D
УТ171 В=1 1,2,5,6,9,10,13,14 А, С, D
УТ18 В=1 1,2,5,6,9,10,13,14 А, С, D
УТ181 В=0 3,4,7,8,11,12,15,16 А, С, D
УТ190 В=0 3,4,7,8,11,12,15,16 А, С, D
УТ191 В=1 1,2,5,6,9,10,13,14 А, С, D
УТ200 В=1 1,2,5,6,9,10,13,14 А, С, D
УТ201 В=0 3,4,7,8,11,12,15,16 А, С, D
УТ210 В=0 3,4,7,8,11,12,15,16 А, С, D
УТ211 В=1 1,2,5,6,9,10,13,14 А, С, D
УТ220 В=1 1,2,5,6,9,10,13,14 А, С, D
УТ221 В=0 3,4,7,8,11,12,15,16 А, С, D
Окончание табл. 2
Вид отказа Требуемая пере- Ячейки SRAM, Используемые переменные
коммутация реализующие функцию
VT230 B=0 3,4,7,8,11,12,15,16 A, C, D
VT231 B=1 1,2,5,6,9,10,13,14 A, C, D
VT240 B=1 1,2,5,6,9,10,13,14 A, C, D
VT241 B=0 3,4,7,8,11,12,15,16 A, C, D
VT250 С=0 5,6,7,8,13,14,15,16 A, B, D
VT251 С=1 1,2,3,4,9,10,11,12 A, B, D
VT260 С=1 1,2,3,4,9,10,11,12 A, B, D
VT261 С=0 5,6,7,8,13,14,15,16 A, B, D
VT270 С=0 5,6,7,8,13,14,15,16 A, B, D
VT271 С=1 1,2,3,4,9,10,11,12 A, B, D
VT28 С=1 1,2,3,4,9,10,11,12 A, B, D
VT281 С=0 5,6,7,8,13,14,15,16 A, B, D
VT290 D=0 9,10,11,12,13,14,15,16 A, B, C
VT291 D=1 1,2,3,4,5,6,7,8 A, B, C
VT300 D=1 1,2,3,4,5,6,7,8 A, B, C
VT301 D=0 9,10,11,12,13,14,15,16 A, B, C
A=0 - 2,4,6,8,10,12,14,16 B, C, D
A=1 - 1,3,5,7,9,11,13,15 B, C, D
B=0 - 3,4,7,8,11,12,15,16 A, C, D
B=1 - 1,2,5,6,9,10,13,14 A, C, D
C=0 - 5,6,7,8,13,14,15,16 A, B, D
C=1 - 1,2,3,4,9,10,11,12 A, B, D
D=0 - 9,10,11,12,13,14,15,16 A, B, C
D=1 - 1,2,3,4,5,6,7,8 A, B, C
Из табл. 2 видно, что при всех случаях однократных отказов транзисторов возможна реконфигурация LUT. Фактически однократный отказ в любом транзисторе уменьшает функциональные возможности элемента, тем не менее за счет большой избыточности все еще можно строить функции 3 входных переменных.
Диагностирование логического элемента ПЛИС FPGA Рассмотрим с целью упрощения рассуждений элементарный мультиплексор 2-1 (рис. 5) для реализации любой логической (булевой) функции одной переменной.
Мультиплексор на два канала с учётом инвертора описывается логической функцией трёх аргументов:
z = S010 V S0II. (7)
V
<ГА
Рис. 5. Реализация мультиплексора на два канала (2-1) на передающих МОП-транзисторах
Выполним переобозначение (7), получим выражение (8):
г = Х1Х2 V х1х3, (8)
получим табл. 3 функций отказов.
Таблица 3
Функции внешних отказов мультиплексора на два канала
Т Х1 Х2 Х3 Z Z (Х1=0) Z (Х1=1) Z (Х2=0) Z (Х2=1) Z (Х3=0) Z (Х3=1)
Т0 0 0 0 0 0 0 0 [1] 0 0
Т1 0 0 1 0 0 [1] 0 [1] 0 0
Т2 0 1 0 1 1 [0] [0] 1 1 1
Т3 0 1 1 1 1 1 [0] 1 1 1
Т4 1 0 0 0 0 0 0 0 0 [1]
Т5 1 0 1 1 [0] 1 1 1 [0] 1
Т6 1 1 0 0 [1] 0 0 0 0 [1]
Т7 1 1 1 1 1 1 1 1 [0] 1
Таблица покрытий отказов (табл. 4) позволяет визуально получить, например, покрытие Т1 Т3 Т4 Т5.
Таблица 4
Покрытия внешних отказов мультиплексора на два канала
Т Z (Х1=0) Z (Х1=1) Z (Х2=0) Z (Х2=1) Z (Х3=0) Z (Х3=1)
Т0 [1]
Т1 [1] [1] *
Т2 [0] [0]
Т3 [0]
Т4
Т5 [0] [0]
Т6 [1] [1]
Т7 [0]
Следовательно, в предположении о том, что отказы константные и однократные, в данном случае количество проверяющих наборов можно сократить в 2 раза. Для разбиения отказов (Х1=1), (Х2=1) можно взять тест Т2, а для разбиения отказов (Х1=0),(Х3=0) - тест Т6. С целью упрощения диагностирования более сложных ЛЭ предлагается использование выделения половинных базисов всех ЛЭ со сравнением их выходных реакций и применение генетических алгоритмов [22].
Таким образом, предложенные подходы к реконфигурации ПЛИС FPGA могут обеспечить требуемое «восстановление» логики, которое возможно лишь при условии сохранения базиса отказавшими элементами. Возможно, использовать эти элементы как новые базисы, но можно восстанавливать исходный базис. Для восстановления необходима соответствующая достаточно сложная диагностика, в которой целесообразно применение генетических алгоритмов в силу её переборного характера, кроме того, для восстановления одного элемента надо несколько отказавших. К тому же не все отказавшие элементы могут сохранить базис. Обычно ПЛИС используют не все имеющиеся ресурсы. Допустим, как рекомендуют производители, в исходном состоянии задействовано около 80 % логики ПЛИС. В случае отказов оставшиеся 20 % в принципе могут быть использованы для замены отказавших путём загрузки нового файла конфигурации. Далее, если считать, что произошли отказы, позволяющие использовать отказавшие элементы и для восстановления одного полного базиса необходимо три элемента, получаем ещё около 10 % «самовосстановленного» резерва. Таким образом обеспечивается увеличение логических резервов ПЛИС, что повышает их коэффициент готовности и позволяет использовать в областях критического применения в высоконадёжных приложениях.
Библиографический список
1. Цыбин С. Программируемая коммутация ПЛИС: взгляд изнутри [Электронный ресурс]. - URL: http://www.kit-e.ru/articles/
plis/2010_11_56.php (дата обращения: 01.01.2013).
2. 6T SRAM Cell [Электронный ресурс]. - URL: http://www.iue.-tuwien.ac.at/phd/entner/node34.html (дата обращения: 7.1.2013).
3. Правила топологического проектирования Мида-Конвей
[Электронный ресурс]. - URL: http://do.gendocs.ru/docs/index-
55156.html (дата обращения: 25.1.2013).
4. Yervant Z., Dmytris G. Gest editors’ introduction: Design for Yield and reliability // IEEE Design & Test of Computers. - May-June 2004.
- P.177-182.
5. Тюрин С.Ф. Синтез адаптируемой к отказам цифровой аппаратуры с резервированием базисных функций // Приборостроение. -1999. - № 1. - С. 36-39.
6. Тюрин С.Ф. Адаптация к отказам одновыходных схем на генераторах функций с функционально-полными толерантными элементами // Приборостроение. - 1999. - № 7. - С. 32-34.
7. Адаптация FPGA до відмови логіки / С.Ф. Тюрін, О.А. Громов, А.В. Греков, І.С. Понуровскій // Радіоелектронні і комп’ютерні системы. - 2013. - № 1(60). - С. 177-182.
8. Тюрин С.Ф., Громов О.А., Понуровский И.С. Адаптация к отказам программируемых логических схем FPGA // Вестник Междуна-род. ун-та им. С.Ю. Витте. Сер. 1: Экономика и управление: материалы XLI междунар. конф. «Информационные технологии в науке, образовании, телекоммуникации и бизнесе». Майская сессия; Украина, Крым, Ялта-Гурзуф 25 мая-4 июня 2013 г. - М., 2013. - С. 111-114.
9. Tyurin S., Kharchenko V. Redundant Basises for Critical Systems and Infrastructures: General Approach and Variants of ImplementationPro-ceedings of the 1st Intrenational Workshop on Critical Infrastructures Safety and Security. - Kirovograd, 2011. - Vol., 2. - P. 300-307.
10. Анализ методов обеспечения пассивной отказоустойчивости цифровых устройств и систем / С.Ф. Тюрин, А.В. Греков, О.А. Громов, А.В. Греков, А.А. Сулейманов // Вестник ПГТУ. Электротехника, информационные технологии, системы управления. - Пермь, 2011. - № 5.
- С. 143-153.
11. Тюрин С.Ф., Громов О.А., Каменских А.Н. Программный комплекс исследования методов повышения надежности // Вестник Ижевск. гос. техн. ун-та. - 2012. - № 2. - С. 153-156.
12. Тюрин С.Ф. Функционально-полные толерантные булевы функции // Наука и технология в России. - 1998. - № 4. - С. 7-10.
13. Тюрин С.Ф. Проблема сохранения функциональной полноты булевых функций при «отказах» аргументов // Автоматика и телемеханика. - 1999. - № 9. - С. 176-186.
14. Программируемое логическое устройство: пат. № 2146840 Рос. Федерация / С.Ф. Тюрин, В.А. Несмелов, В.А. Харитонов [и др.]; опубл. 20.03.2000. Бюл. № 8.
15. Тюрин С.Ф., Громов О.А. Базисный элемент программируемых логических интегральных схем // Вестник Ижевск. гос. техн. унта. - 2010. - №3. - С. 122-126.
16. Тюрин С.Ф., Греков А.В., Громов О.А. Определение функционально-полных толерантных булевых функций четырёх аргументов с учётом модели замыканий переменных // Доклады Академии военных наук. - 2011. - №5(49). - Саратов, 2011.- С. 35-44.
17. Функционально-полный толерантный элемент: пат. № 2449469 Рос. Федерация / С.Ф. Тюрин, О.А. Громов, А.В. Греков; опубл. 27.04.2012. Бюл. № 12.
18. Функционально-полный толерантный элемент: пат. № 2438234 Рос. Федерация / С.Ф. Тюрин, О.А. Громов; опубл. 27.12.2011. Бюл. № 36.
19. Тюрин С.Ф., Громов О.А., Греков А.В. Функциональнополный толерантный элемент ФПТ // Научно-технические ведомости Санкт-Петербург. гос. политехн. ун-та. - 2011. - № 1(115). - С. 24-31.
20. Тюрин С.Ф., Громов О.А., Греков А.В., Сулейманов А.А. Функционально-полный толерантный элемент. Решение о выдаче патента на изобретение от 13.03.2013 г. по заявке № 2012125400/08 (038968) от 19.06.2012 г.
21. Тюрин С.Ф., Греков А.В., Коржев В. С. Скользящее резервирование с восстановлением на основе элементов с избыточным базисом // Научно-технические ведомости Санкт-Петербург. гос. политехн. ун-та. -2012. - № 5(157). - С. 38-44.
22. Городилов А.Ю., Понуровскій І.С., Тюрін С.Ф. Повышение отказоустойчивости FPGA путём реконфигурации работоспособных элементов// Радіоелектронні і комп’ютерні системы. - 2013. - № 1(60).
- С. 172-176.
Сведения об авторах
Тюрин Сергей Феофентович (Пермь, Россия) - заслуженный изобретатель Российской Федерации, доктор технических наук, профессор кафедры автоматики и телемеханики Пермского национального исследовательского политехнического университета (614990, Пермь, Комсомольский пр., 29, е-таіі: tyurinsergfeo@yandex.ru).
Громов Олег Александрович (Пермь, Россия) - аспирант кафедры автоматики и телемеханики Пермского национального исследовательского политехнического университета (614990, Пермь, Комсомольский пр., 29, e-mail: ogromov@inbox.ru).
Городилов Алексей Юрьевич (Пермь, Россия) - старший преподаватель кафедры математического обеспечения вычислительных систем Пермского государственного национального исследовательского университета (614990, г. Пермь, ул. Букирева, 15, e-mail: gora830@yandex.ru).
About the authors
Tyurin Sergey Feofentovich (Perm, Russian Federation) is Honored Inventor of the Russian Federation, PhD in Engineering, Academician at the Department of Automation and Telemechanics, Perm National Research Polytechnic University (614990, 29 Komsomolsky pr., Perm, e-mail: tyurinsergfeo@yandex.ru).
Gromov Oleg Aleksandrovich (Perm, Russian Federation) is a Postgraduate student at the Department of Automation and Telemechanics, Perm National Research Polytechnic University (614990, 29 Komsomolsky pr., Perm, e-mail: ogromov@inbox.ru).
Aleksey Iurievich Gorodilov (Perm, Russian Federation) is Senior Lecturer at the Department of Mathematical Support for Computing Systems, Perm State National Research University (614990, 15, Bukirev St., Perm, e-mail: gora830@yandex.ru).
Получено 05.09.2013