Самоконтролирующееся устройство
Иллюстрации
Показать всеИзобретение относится к вычислительной технике и может быть использовано в комбинационных устройствах, а также устройствах хранения и передачи информации. Техническим результатом является повышение достоверности функционирования устройства. Устройство содержит исходную схему, три группы элементов И, элемент И, группу элементов ИЛИ, элемент ИЛИ, кодирующее устройство, регистр, схему синдрома ошибки, схему проверок, три дешифратора. 2 табл., 1 ил.
Реферат
Изобретение относится к вычислительной технике и может быть использовано для повышения достоверности функционирования работы комбинационных устройств, а также устройств хранения и передачи информации (оперативных и постоянных запоминающих устройств ЭВМ и т.п.).
Известно самокорректирующееся дискретное устройство [1], использующее декодирующее устройство, исправляющее модульные (байтовые) ошибки на основе применения кодов Рида-Соломона, содержащие исходную схему, кодирующее устройство, избыточную схему, декодирующее устройство, включающее схему вычисления синдрома, формирователь мнимых синдромов, дешифратор ошибки в байте, схему вычисления искаженного байта, коммутаторы ошибок, корректор ошибок, входы устройства подключены к входам исходной схемы и к входам кодирующего устройства, выходы кодирующего устройства подключены к входам избыточной схемы, выходы которой подключены к первым входам схемы вычисления синдрома, выходы исходной схемы подключены к вторым входам схемы вычисления синдрома и к первым входам корректора, выходы схемы вычисления синдрома подключены ко входам дешифратора ошибки, выходы которого подключены к вторым входам корректора, выходы корректора являются выходами устройства.
Недостатком устройства является большая аппаратурная избыточность и низкая достоверность функционирования устройства, так как коды Рида-Соломона позволяют корректировать ошибку в одном байте информации и обнаруживать ошибку только в двух байтах информации, кроме этого данные коды нельзя использовать при малом числе информационных разрядов.
Наиболее близким по техническому решению является самокорректирующееся дискретное устройство [2], содержащие исходную схему, первое кодирующее устройство, схему синдрома ошибки, дешифратор ошибки, корректор, второе, третье и четвертое кодирующие устройства, с первой по четвертую схемы свертки, схему признака ошибки, элемент ИЛИ, входы устройства подключены к исходной схеме и к входам первого кодирующего устройства, к входам второго кодирующего устройства, а выходы исходной схемы подключены к входам третьего и четвертого кодирующих устройств, к первым входам корректора, выходы которого являются выходами устройства, выходы с первого по четвертое кодирующих устройств подключены соответственно к входам с первой по четвертую схем свертки, выходы первой и третьей схем свертки подключены к входам схемы синдрома ошибки, выходы второй и четвертой схем свертки подключены к входам схемы признака ошибки, выходы схемы синдрома ошибки и признака ошибки подключены к входам дешифратора ошибки, первая группа выходов дешифратора ошибки подключена к вторым входам корректора, а вторая группа выходов подключена к входу элемента ИЛИ, с выхода которого снимается сигнал отказ устройства.
Недостатком устройства является большая аппаратурная избыточность.
Целью изобретения является уменьшение аппаратурной избыточности за счет использования кодирующего устройства в период записи так и при считывании информации.
Поставленная цель достигается тем, что устройство, содержащие исходную схему, кодирующее устройство, схему синдрома ошибки, первый дешифратор, информационные входы устройства подключены к первым входам исходной схемы, выходы которой являются выходами устройства, отличающееся тем, что оно дополнительно содержит с первого по четвертый элементы И, первый элемент ИЛИ, второй элемент ИЛИ, регистр, схему проверок, второй дешифратор, третий дешифратор, адресные входы, вход записи, вход считывания, вход "Сброс", выход "Ошибка", причем информационные входы устройства подключены к первым входам первого элемента И, адресные входы подключены к вторым входам исходной схемы и к первым входам регистра, вход записи подключен к третьему входу исходной схемы, к второму входу первого элемента И и к второму входу регистра, вход считывания подключен к четвертому входу исходной схемы, к первому входу второго элемента И, к первому входу третьего элемента И, к первому входу четвертого элемента И и к третьему входу регистра, вход "Сброс" подключен к пятому входу исходной схемы и к четвертому входу регистра, выходы исходной схемы подключены к первым входам схемы проверок и к вторым входам второго элемента И, выходы которого подключены к первым входам элемента ИЛИ, вторые входы которого подключены к выходам первого элемента И, а выходы подключены к входам кодирующего устройства, выходы кодирующего устройства подключены к вторым входам третьего элемента И и к пятым входам регистра, первые входы схемы синдромов ошибки подключены к выходам третьего элемента И, вторые входы подключены к выходам регистра, а выходы подключены к вторым входам схемы проверок и к входам первого дешифратора, выходы которого подключены к первым входам третьего дешифратора, выходы схемы проверок подключены к входам второго дешифратора, выходы которого подключены к вторым входам третьего дешифратора, выходы третьего дешифратора подключены к входам второго элемента ИЛИ, выход которого подключен к второму входу четвертого элемента И, с выхода четвертого элемента И снимается сигнал "Ошибка".
На чертеже представлена блок-схема устройства. Устройство содержит: исходную схему 1, первый элемент 2 И, второй элемент 3 И, третий элемент 4 И, четвертый элемент 5 И, первый элемент 6 ИЛИ, второй элемент 7 ИЛИ, кодирующее устройство 8, регистр 9, схему синдрома ошибки 10, схему проверок 11, первый дешифратор 12, второй дешифратор 13, третий дешифратор 14, информационные входы 15, адресные входы 16, вход 17 записи, вход 18 считывания, вход 19 сброс, выходы 20 устройства, выход 21 "Ошибка".
Информационные входы 15 устройства подключены к первым входам исходной схемы 1 и к первым входам первого элемента 2 И, выходы исходной схемы 1 подключены к вторым входам второго элемента 3 И, к первым входам схемы 11 проверок, выходы исходной схемы 1 являются выходами 20 устройства, адресные входы 16 подключены к вторым входам исходной схемы 1 и к первым входам регистра 9, вход 17 записи подключен к третьему входу исходной схемы 1, к второму входу первого элемента 2 И и к второму входу регистра 9, вход 18 считывания подключен к четвертому входу исходной схемы 1, к первому входу второго элемента 3 И, к первому входу третьего элемента 4 И, к первому входу четвертого элемента 5 И и к третьему входу регистра 9, вход 19 "Сброс" подключен к пятому входу исходной схемы 1 и к четвертому входу регистра 9, выходы второго элемента 3 И подключены к первым входам элемента 6 ИЛИ, вторые входы которого подключены к выходам первого элемента 2 И, а выходы подключены к входам кодирующего устройства 8, выходы кодирующего устройства 8 подключены к вторым входам третьего элемента 4 И и к пятым входам регистра 9, первые входы схемы 10 синдрома ошибки подключены к выходам третьего элемента 4 И, вторые входы подключены к выходам регистра 9, а выходы подключены к вторым входам схемы 11 проверок и к входам первого дешифратора 12, выходы которого подключены к первым входам третьего дешифратора 14, выходы схемы 10 проверок подключены к входам второго дешифратора 13, выходы которого подключены к вторым входам третьего дешифратора 14, выходы третьего дешифратора 14 подключены к входам второго элемента 7 ИЛИ, выход которого подключен к второму входу четвертого элемента 5 И, выход которого является выходом "Ошибка".
Кодирующее устройство 8 предназначено для:
1) реализации правых и левых диагональные проверок на основе использования группы сумматоров по mod 2, при записи информации, в соответствии с правилами, представленными в приложении. Диагональные проверки образуют вектор R=r1,r2,...r2l.;
2) формирования (аналогичным образом) вектора контрольных разрядов RП принятого кодового набора на основе информации, считываемой с выходов исходной схемы 1.
Таким образом, в период записи и считывания информации, на выходе кодирующего устройства 7, имеем соответственно векторы контрольных разрядов:
R=r1r2...,r2l,,
RП=rП 1rП 2...rП 2l.
Регистр 9 предназначен для хранения значений сигналов вектора контрольных разрядов, сформированного при записи информации в исходную схему 1.
Схема 10 синдрома ошибки представляют собой схему поразрядного сравнения и предназначена для формирования значений синдрома ошибки на основе передаваемой и полученной информации.
Схема 11 проверок по значениям информационных разрядов и значениям разрядов синдрома ошибки формирует вектор дополнительных проверок.
Первый дешифратор 12, при возникновении ошибки формирует на одном из своих выходов единичный сигнал в соответствии с поступающим значением синдрома ошибки.
Второй дешифратор 13 формирует на одном из своих выходов единичный сигнал в соответствии с поступающим значением дополнительной проверки.
Третий дешифратор 14 по значениям синдрома ошибки и значению дополнительной проверки в случае возникновения ошибки в информационных разрядах формирует единичное значение сигнала на одном из своих выходов.
Устройство работает следующим образом. Перед началом работы на вход 19 подается сигнал, устанавливающий устройство в исходное состояние. При поступлении входной информации на информационные входы 15, адресные входы 16 и сигнала ″Запись″ на вход 17, информация записывается по указанному адресу в исходной схеме 1. Одновременно она поступает на входы первого элемента 2 И, открытого сигналом со входа 17 и далее через элемент 6 ИЛИ, входная информация поступает на вход кодирующего устройства 8. Кодирующее устройство 8, реализованное на группе сумматоров по mod 2, реализует правые и левые диагональные проверки информационной матрицы.
С выходов кодирующего устройства 8, значение вектора контрольных поступает на вход регистра 9 и записывается по указанному адресу.
При считывании информации по указанному адресу, сигналы с выхода исходной схемы 1 через второй элемент 3 И, открытый сигналом "Считывание" с входа 18, элемент 6 ИЛИ повторно поступают на вход кодирующего устройства 8, где формируются значения сигналов в контрольных разрядах диагональных проверок полученной информации.
При этом информация с выходов кодирующего устройства 8 поступает на первые входы схемы 10 синдрома ошибки, на вторые входы которой поступает информация, считываемая с регистра 9.
В результате на выходе схемы 10 синдрома ошибки имеем сформированное значение синдрома ошибки.
Схема 11 проверок по значениям информационных разрядов и значениям разрядов синдрома ошибки формирует вектор дополнительных проверок по правилу, изложенному в приложении.
Первый дешифратор 12 при возникновении ошибки формирует на одном из своих выходов единичный сигнал в соответствии с поступающим значением синдрома ошибки.
Второй дешифратор 13 формирует на одном из своих выходов единичный сигнал в соответствии с поступающим значением дополнительной проверки.
Третий дешифратор 14 по значениям в соответствии с значением синдрома ошибки и значению дополнительной проверки формирует управляющий сигнал "Ошибка", если ошибка произошла в информационных разрядах.
Приложение
Коррекция ошибок в одном байте и обнаружение ошибок в остальных байтах информации достигается на основе итеративного кода.
Процедура построения двумерного итеративного кода состоит в следующем [3]. Заданную совокупность информационных символов делят на группы (блоки, модули) информации, по b - разрядов в каждой группе. Полученные модули информации представляют в виде информационной матрицы (1.1):
Затем осуществляется кодирование информации по методу четности (путем сложения по mod 2 символов строк и столбцов полученной матрицы). В результате имеем двумерный итеративный код, позволяющий обнаруживать и исправлять любую одиночную ошибку:
где H=h1,h2,...,hm - вектор четности строк; Z=z1,z2,...,zb - вектор четности столбцов. Вектора четности строк и столбцов образуют совокупность контрольных разрядов R1={r1,r2,rm,rm+1,...,rb}. При получении кодовой комбинации относительно информационных разрядов повторно формируется значения контрольных разрядов RП 1={r1,r2,rm,rm+1,...,rb}. В данном случае, разница между переданными значениями контрольных разрядов и полученными после приема информации образует синдром ошибки Е:
При этом разряды вектора ошибки е1е2...em (полученные относительно вектора четности строк) указывают модуль информации, имеющей ошибку, а разряды emem+1...eb, (полученные относительно вектора четности столбцов) указывают ошибочный разряд в модуле информации.
Так как кодовые комбинации строк и столбцов имеют минимальное расстояние d=2, то минимальное расстояние данного кода d=4. Этот код позволяет исправлять любую одиночную ошибку и обнаруживать значительную долю кратных ошибок.
Структуры ошибок, не обнаруживаемых двумерным итеративным кодом, показаны на рисунке:
Рис.1. Структуры ошибок, не обнаруживаемых двумерным итеративным кодом: а) - ошибки кратности 4; б) - ошибки кратности 6.
Рис.2. Структуры ошибок двумерного итеративного кода, приводящие к ошибочной коррекции: а) - ошибки кратности 5; б) - ошибки кратности 7.
В общем случае можно строить итеративные коды более высокой размерности (трехмерные, четырех мерные и т.д.), где каждый информационный символ будет являться компонентой одновременно x различных кодовых слов. Параметры итеративных кодов размерности x таковы [3]:
где ni, ki, di - соответственно длина, количество информационных разрядов, минимальное расстояние кодовых наборов строк и столбцов.
Исходя из этого, для построения итеративных кодов следует использовать проверки, имеющие наибольшую обнаруживающую способность.
Так, организация диагональных проверок рассматриваемой матрицы позволит выявить структуры ошибок, не обнаруживаемые итеративным кодом, реализующим проверки четности строк и столбцов.
Структура диагональных проверок, обнаруживающих рассматриваемые ошибки, имеет вид, представленный на рис.3.
Результаты левых диагональных проверок образуются по правилу:
Результаты правых диагональных проверок образуются при суммировании значений следующих информационных разрядов:
В этом случае, общее число диагональных проверок равно 2l, или:
Пример 1. Пусть рассматриваемое слово состоит из четырех информационных разрядов, которые имеют нулевые значения. Для данного кодового набора информационная матрица имеет вид:
В этом случае проверки на четность строк и столбцов информационной матрицы дадут нулевые значения и кроме этого будут иметь нулевые значения результаты всех правых и левых диагональных проверок. При возникновении ошибки во всех информационных разрядах имеем четную ошибку, не обнаруживаемую двумерным итеративным кодом, т.к. проверки на четность строк и столбцов информационной матрицы имеют нулевые значения:
В то же время правые и левые диагональные проверки дадут результат 101.
Утверждение 1. Итеративный код, реализующий правые и левые диагональные проверки, обнаруживает все четные ошибки, не обнаруживаемые двумерным итеративным кодом, и выявляет нечетные ошибки, воспринимаемые двумерным итеративным кодом как корректируемые.
В свою очередь существуют структуры ошибок, не обнаруживаемые итеративным кодом, реализующим правые и левые диагональные проверки и проверки на четность строк и столбцов. Структуры рассматриваемых ошибок представлены на рис.4.
Рис.4. Структуры ошибок не обнаруживаемых диагональными проверками.
Так, например, относительно информационной матрицы, имеющей нулевые значения, диагональными проверками не будет обнаружена следующая структура ошибки.
Для того чтобы исключить появление рассматриваемых ошибок, информационная матрица должна содержать не более двух строк.
Утверждение 2. Для информационной матрицы b×2 итеративный код, реализующий правые и левые диагональные проверки, обнаруживает все возможные ошибки.
Следствие 1. Для информационной матрицы b×2 итеративный код, реализующий правые и левые диагональные проверки, различает все возможные ошибки.
Утверждение 3. При проведении диагональных проверок для информационной матрицы b×2 ошибки обнаруживаются и различаются, если число контрольных разрядов равно:
где k - число информационных разрядов.
Таким образом, при использовании четырехмерного итеративного кода кодовый набор передается в виде:
Результат сложения значений сигналов контрольных разрядов переданных и полученных даст синдром ошибки:
где разряды вектора ошибки r1,r2...rl - соответствуют правым диагональным проверка; rl,rl+1,...r2l - левым.
Для рассматриваемого примера кодирование информации осуществляется следующим образом:
.
В табл.1 представлены значения синдрома ошибки (относительно безошибочного нулевого набора), полученные при проведении правых и левых диагональных проверок для ошибочных наборов информационной матрицы 2×2 (рассматриваются ошибки только в информационных разрядах).
На основе полученных правил кодирования формируется стратегия декодирования, которая решает задачу различения ошибок в информационных и контрольных разрядах и правила коррекции возникающих ошибок.
С этой целью, относительно полученных значений синдромов ошибок, организуются дополнительные проверки:
Для рассматриваемого примера, в табл.2 представлены значения синдромов ошибок и значения дополнительных проверок, полученные относительно части ошибок, возникающих в информационных разрядах, контрольных разрядах и одновременно в контрольных и информационных разрядах:
Анализ таблицы полученных результатов позволяет сформулировать следующее утверждение:
Утверждение 4. Для информационной матрицы b×2 значения синдромов ошибок и значения дополнительных проверок позволяют обнаруживать и различать ошибки, возникающие в информационных и контрольных разрядах.
В этом случае, для экономии аппаратурных затрат, следует ограничиться исправлением ошибок только в информационных разрядах. Тогда требуемое число значений синдромов ошибок (значений дополнительных проверок) составит:
Из рассмотренного примера следует, что предлагаемый метод кодирования позволяет обнаруживать любую возможную ошибку в информационных разрядах, за исключением таких сочетаний ошибок в информационных и контрольных разрядах, которые переводят ошибочный кодовый набор в разрешенный, что является существенным недостатком любого линейного кода.
Источники информации
1. Щербаков Н.С. Достоверность работы цифровых устройств. М: Машиностроение, 1989, 224 с. рис.39, рис.44.
2. Положительное решение по заявке (21) 99111190/09 от 15.01.03 (подано 31.05.09), авторы: Царьков А.Н., Безродный Б.Ю., Новиков Н.Н., Романенко Ю.А., Павлов А.А.
3. Хетагуров Я.А. Руднев Ю.П. Повышение надежности цифровых устройств методами избыточного кодирования. М.: Энергия, 1974, 270 с.
Самоконтролирующееся устройство, содержащее исходную схему, кодирующее устройство, предназначенное для осуществления правых и левых диагональных проверок и формирования вектора контрольных разрядов, схему синдрома ошибки, первый дешифратор, информационные входы устройства подключены к первым входам исходной схемы, выходы которой являются выходами устройства, отличающееся тем, что оно дополнительно содержит с первого по третью группы элементов И, четвертый элемент И, первую группу элементов ИЛИ, второй элемент ИЛИ, регистр, схему проверок, второй дешифратор, третий дешифратор, адресные входы, вход записи, вход считывания, вход «Сброс», выход «Ошибка», причем информационные входы устройства подключены к первым входам первой группы элементов И, адресные входы подключены ко вторым входам исходной схемы и к первым входам регистра, вход записи подключен к третьему входу исходной схемы, к объединенным вторым входам первой группы элементов И и к второму входу регистра, вход считывания подключен к четвертому входу исходной схемы, к первым объединенным входам третьей группы элементов И, к первому входу четвертого элемента И и к третьему входу регистра, вход «Сброс» подключен к пятому входу исходной схемы и к четвертому входу регистра, выходы исходной схемы подключены к первым входам схемы проверок и ко вторым входам второй группы элементов И, выходы которых подключены к первым входам первой группы элементов ИЛИ, вторые входы которых подключены к выходам элементов И первой группы, а выходы подключены к входам кодирующего устройства, выходы кодирующего устройства подключены к вторым входам элементов И третьей группы и к пятым входам регистра, первые входы схемы синдрома ошибки подключены к выходам элементов И третьей группы, вторые входы подключены к выходам регистра, а выходы подключены к вторым входам схемы проверок и к входам первого дешифратора, выходы которого подключены к первым входам третьего дешифратора, выходы схемы проверок подключены к входам второго дешифратора, выходы которого подключены к вторым входам третьего дешифратора, выходы третьего дешифратора подключены к входам второго элемента ИЛИ, выход которого подключен к второму входу четвертого элемента И, с выхода четвертого элемента И снимается сигнал «Ошибка».