ОТКАЗОУСТОЙЧИВОЕ УСТРОЙСТВО УСКОРЕННОГО УМНОЖЕНИЯ

Полезная модель относится к вычислительной технике и может быть использована для обеспечения отказоустойчивости процессора при выполнении арифметических операций.
Известно устройство контроля сумматора [1] стр.116, содержащее первую схему формирования переносов, вторую схему формирования переносов, схему контроля по совпадению, схему формирования суммы, схему формирования четности суммы, схему определения четности переносов, схему проверки четности, входы слагаемых подключены к входам первой и второй схем формирования переносов, к первым входам схемы формирования суммы, к первым входам формирования четности суммы, к первым входам схемы проверки четности, выходы первой схемы формирования переносов подключены к первым входам схемы контроля по совпадению, к вторым входам схемы формирования суммы, к входам схемы определения четности переносов, выходы второй схемы формирования переносов подключены к вторым входам схемы контроля по совпадению, выходы схемы формирования чумы подключены к вторым входам схемы формирования четности суммы, выходы которой подключены к вторым входам схемы проверки четности, к третьему входу которой подключены выходы схемы определения четности переносов, с выходов схемы контроля по совпадению и схемы проверки четности снимается сигнал "Ошибка".
Недостатком устройства является отсутствие возможности исправления возникающих ошибок.
Наиболее близким по техническому решению является отказоустойчивое вычислительное устройство [2] стр.72, содержащие первый, второй, третий идентичные вычислительные каналы, мажоритарный элемент, выходы первого второго, третьего вычислительных каналов
подключены к входам мажоритарного элемента, выход которого является выходом устройства.
Недостатком устройства является низкая отказоустойчивость, так как ошибка в устройстве исправляется только при ее возникновении в одном из каналов.
Целью построения полезной модели является повышение отказоустойчивости вычислительного устройства при выполнении арифметической операции умножения функционирования устройства за счет обнаружения и коррекции ошибок большей кратности.
Поставленная цель достигается тем, что устройство содержащее первый узел информационных разрядов, первый узел контрольных разрядов, второй узел информационных разрядов, второй узел контрольных разрядов, третий узел информационных разрядов, четвертый узел информационных разрядов, пятый узел информационных разрядов, шестой узел информационных разрядов, седьмой узел информационных разрядов, первый формирователь поправки, второй формирователь поправки, третий формирователь поправки, четвертый формирователь поправки, пятый формирователь поправки, шестой формирователь поправки, первый кодирующий узел, второй кодирующий узел, третий кодирующий узел, четвертый кодирующий узел, пятый кодирующий узел, шестой кодирующий узел, седьмой кодирующий узел, восьмой кодирующий узел, девятый кодирующий узел, десятый кодирующий узел, одиннадцатый кодирующий узел, первый блок сумматоров, второй блок сумматоров, третий блок сумматоров, четвертый блок сумматоров, пятый блок сумматоров, шестой блок сумматоров, седьмой блок сумматоров, восьмой блок сумматоров, девятый блок сумматоров, десятый блок сумматоров, одиннадцатый блок сумматоров, двенадцатый блок сумматоров, тринадцатый блок сумматоров, четырнадцатый блок сумматоров, пятнадцатый блок сумматоров, шестнадцатый блок сумматоров, семнадцатый блок сумматоров, восемнадцатый блок сумматоров, девятнадцатый блок сумматоров, двадцатый блок сумматоров, двадцать
первый блок сумматоров, первая схема сравнения, вторая схема сравнения, третья схема сравнения, четвертая схема сравнения, пятая схема сравнения, шестая схема сравнения, седьмая схема сравнения, первый регистр, второй регистр, третий регистр, четвертый регистр, пятый регистр, шестой регистр, седьмой регистр, первый элемент ИЛИ, второй элемент ИЛИ, третий элемент ИЛИ, четвертый элемент ИЛИ, пятый элемент ИЛИ, шестой элемент ИЛИ, седьмой элемент ИЛИ, восьмой элемент ИЛИ, девятый элемент ИЛИ, десятый элемент ИЛИ, одиннадцатый элемент ИЛИ, двенадцатый элемент ИЛИ, тринадцатый элемент ИЛИ, четырнадцатый элемент ИЛИ, пятнадцатый элемент ИЛИ, шестнадцатый элемент ИЛИ, первая группа элементов ИЛИ, вторая группа элементов ИЛИ, третья группа элементов ИЛИ, четвертая группа элементов ИЛИ, пятая группа элементов ИЛИ, шестая группа элементов ИЛИ, первый элемент И, второй элемент И, третий элемент И, четвертый элемент И, пятый элемент И, шестой элемент И, седьмой элемент И, первая группа элементов И, вторая группа элементов И, третья группа элементов И, четвертая группа элементов И, пятая группа элементов И, шестая группа элементов И, седьмая группа элементов И, восьмая группа элементов И, девятая группа элементов И, десятая группа элементов И, одиннадцатая группа элементов И, двенадцатая группа элементов И, тринадцатая группа элементов И, четырнадцатая группа элементов И, пятнадцатая группа элементов И, шестнадцатая группа элементов И, семнадцатая группа элементов И, восемнадцатая группа элементов И, девятнадцатая группа элементов И, двадцатая группа элементов И, двадцать первая группа элементов И, первый элемент НЕ, второй элемент НЕ, третий элемент НЕ, четвертый элемент НЕ, пятый элемент НЕ, шестой элемент НЕ, седьмой элемент НЕ, восьмой элемент НЕ, девятый элемент НЕ, десятый элемент НЕ, одиннадцатый элемент НЕ, первый элемент задержки, второй элемент задержки, третий элемент задержки, четвертый элемент задержки, пятый элемент задержки, шестой элемент задержки, седьмой элемент задержки, восьмой элемент
задержки, девятый элемент задержки, десятый элемент задержки, одиннадцатый элемент задержки, двенадцатый элемент задержки, первый дешифратор, второй дешифратор, первый блок памяти, второй блок памяти, блок частных произведений, входы информационных разрядов множимого, входы контрольных разрядов множимого, вход управления, вход выход младшего разряда старшего полубайта информации, вход "Ошибка" из полубайтов первого уровня, вход выход младшего разряда множителя, вход "Ошибка" из полубайтов второго уровня, вход выход второго разряда множителя, вход выход переноса из старшего разряда младшего полубайта информации, вход "Ошибка" из полубайтов третьего уровня, вход "Ошибка" из полубайтов четвертого уровня, вход шина данных и управления первым и вторым блоками памяти, входы третьего и четвертого разрядов множителя, выход считывания с регистров первого уровня, выход считывания с регистров второго уровня, выход считывания с регистров третьего уровня, выход считывания с регистров четвертого уровня, выходы устройства умножения, выход "некорректируемая ошибка".
Информационные разряды множимого подключены к входам первого узла информационных разрядов, выходы которого подключены к первым входам первого формирователя поправки, к входам третьего узла информационных разрядов, к первым входам четвертого формирователя поправки и к первым входам тринадцатого блока сумматоров, к первым входам блока частных произведений, при этом младший разряд первого узла информационных разрядов подключен к входу второго узла информационных разрядов и к входу первого кодирующего узла, выходы которого подключены к входам второго узла контрольных разрядов, входы контрольных разрядов множимого подключены к входам первого узла контрольных разрядов, выходы которого подключены к первым входам первого блока сумматоров и к вторым входам блока частных произведений, вход управления подключен к входам первого и третьего элементов задержки, вход выход младшего разряда старшего полубайта информации
подключен к второму входу первого формирователя поправки, к второму входу третьего узла информационных разрядов, к первым входам второго формирователя поправки, четвертого узла информационных разрядов, шестого узла информационных разрядов, к входам пятого формирователя поправки, к третьему входу блока частных произведений и к первому входу блока частных произведений, вход "Ошибка" полубайтов первого уровня подключен к первому входу первого элемента ИЛИ, выход которого подключен к входу второго элемента задержки и к входу третьего элемента НЕ, выходы первого формирователя поправки подключены к вторым входам первого блока сумматоров, выходы которого подключены к первым входам первой схемы сравнения третьего блока сумматоров, выходы третьего блока сумматоров подключены к первым входам второй группы элементов И, выходы третьего узла информационных разрядов подключены к входам второго кодирующего узла и к первым входам второго блока сумматоров, выходы которого подключены к первым входам первой группы элементов И, выходы второго кодирующего узла подключены к вторым входам первой схемы сравнения, выходы которой подключены к входам второго элемента ИЛИ и к первым входам третьей группы элементов И, выходы второго узла информационных разрядов подключены к входам третьего кодирующего устройства и к первым входам четвертого блока сумматоров, выходы которого подключены к первым входам четвертой группы элементов И, выходы второго узла контрольных разрядов подключены к первым входам второй схемы сравнения и пятого блока сумматоров, выходы которого подключены к первым входам пятой группы элементов И, выходы второго кодирующего устройства подключены к вторым входам второй схемы сравнения, выходы которой подключены к первым входам шестой группы элементов И и к входам третьего элемента ИЛИ, выход второго элемента ИЛИ подключен к первому входу первого регистра и к второму входу первого элемента ИЛИ, выход третьего элемента ИЛИ подключен к первому входу второго регистра и к третьему входу первого элемента ИЛИ,
выходы третьего элемента задержки и третьего элемента НЕ подключены соответственно к первому и второму входам четвертого элемента ИЛИ, выход которого подключен к первым входам первого элемента И и второго элемента И, выход первого элемента задержки подключен к вторым входам первого элемента И и второго элемента И, выход третьего элемента задержки подключен к вторым входам шестой группы элементов И и третьей группы И, вход выход младшего разряда множителя подключен к третьему входу второго элемента И, выход которого подключен к вторым входам первой группы элементов И, второй группы элементов И, четвертой группы элементов И, пятой группы элементов И, выход первого элемента И подключен к первым входам третьего элемента И, четвертого элемента И, шестого элемента И, к входам первого и второго элементов НЕ, к входу двенадцатого элемента задержки, к вторым входам первого регистра, второго регистра и является выходом считывания с регистров первого уровня, выход двенадцатого элемента задержки подключен к первому входу пятого элемента И, выход первого регистра подключен к вторым входам второго и третьего блоков сумматоров, выход второго регистра подключен к вторым входам четвертого и пятого блоков сумматоров, выходы первого и второго элементов НЕ подключены соответственно к третьим входам третьей и шестой групп элементов И, вход "Ошибка" из полубайтов второго уровня подключен к первому входу пятого элемента ИЛИ, выход которого подключен к входам четвертого элемента задержки и пятого элемента НЕ, вход выход второго разряда множителя подключен к входу четвертого элемента НЕ, к вторым входам пятого и шестого элементов И и к первому входу седьмого элемента И, выходы первой группы элементов И подключены к вторым входам третьего формирователя поправки, тринадцатого блока сумматоров, второго формирователя поправки, четвертого узла информационных разрядов, младший разряд выходов первой группы элементов И подключен к вторым входам третьего формирователя поправки и пятого узла информационных разрядов, выходы
второй группы элементов И подключены к первым входам шестого и двенадцатого блоков сумматоров, выходы третьей группы элементов И подключены к входам шестой группы элементов ИЛИ, выходы четвертой группы элементов И подключены к первым входам третьего формирователя поправки пятого узла информационных разрядов и к первым входам двенадцатой группы элементов И, выходы пятой группы элементов И подключены к первым входам седьмого блока сумматоров и двенадцатой группы элементов И, выходы шестой группы элементов И подключены к входам пятой группы элементов ИЛИ, выходы второго формирователя поправки подключены к вторым входам шестого блока сумматоров, выходы которого подключены к первым входам третьей схемы сравнения и девятого блока сумматоров, выходы четвертого узла информационных разрядов подключены к первым входам восьмого блока сумматоров и к входам четвертого кодирующего узла, выходы четвертого кодирующего узла подключены к вторым входам третьей схемы сравнения выходы которой подключены к первым входам восьмой группы элементов И и к входам седьмого элемента ИЛИ, выходы седьмого элемента ИЛИ подключены к первому входу третьего регистра и к второму входу пятого элемента ИЛИ, выходы третьего формирователя поправки подключены к вторым входам седьмого блока сумматоров, выходы которого подключены к входам одиннадцатого блока сумматоров и к первым входам четвертой схемы сравнения, выходы которой подключены к входам восьмого элемента ИЛИ и первым входам десятой группы элементов И, выходы пятого узла информационных разрядов подключены к первым входам десятого блока сумматоров и к входам пятого кодирующего узла, выходы которого подключены к вторым входам четвертой схемы сравнения, выходы десятого блока сумматоров подключены к первым входам девятой группы элементов И, выходы восьмого элемента ИЛИ подключены к первому входу четвертого регистра и третьему входу пятого элемента ИЛИ, выход которого подключен к входам четвертого элемента задержки и пятого
элемента НЕ, выходы четвертого элемента задержки и пятого элемента НЕ подключены соответственно к первому и второму входам шестого элемента ИЛИ, выход которого подключен к второму входу третьего элемента И, выходы четвертого элемента НЕ подключены к второму входу четвертого элемента И и к третьему входу третьего элемента И, выходы одиннадцатого блока сумматоров подключены к первым входам одиннадцатой группы элементов И, выходы третьего элемента И через пятый элемент задержки подключены к первому входу шестнадцатого элемента ИЛИ, к вторым входам одиннадцатой группы элементов И, девятой группы элементов И, седьмой группы элементов И, восьмой группы элементов И, к входу шестого элемента НЕ, к первому входу третьего регистра, к входу четвертого регистра и при этом является выходом считывания с регистров второго уровня, выход шестого элемента НЕ подключен к третьему входу восьмой группы элементов И и третьему входу десятой группы элементов И, выходы четвертого элемента И через шестой элемент задержки подключены к четвертым входам десятой и восьмой групп элементов И, выход третьего регистра подключен к третьим входам восьмого и девятого блоков сумматоров, выход четвертого регистра подключен к третьим входам десятого и одиннадцатого блоков сумматоров, выход седьмой группы элементов И подключен к первым входам первой группы элементов ИЛИ, вход выход переноса из младшего полубайта информации подключен к третьему входу четвертого формирователя поправки, выход которого подключен к третьим входам тринадцатого блока сумматоров и к входам третьего формирователя поправки, выход которого подключен к вторым входам двенадцатого блока сумматоров, выход тринадцатого блока сумматоров подключен к входам седьмого кодирующего узла и к первым входам четырнадцатого блока сумматоров, выход которого подключен к первым входам тринадцатой группы элементов И, выход двенадцатого блока сумматоров подключен к первым входам четырнадцатого блока сумматоров и пятой схемы сравнения, вторые входы которой подключены к выходам
седьмого кодирующего узла, выходы четырнадцатого блока сумматоров подключен к первым входам четырнадцатой группы элементов И, выходы пятой схемы сравнения подключены к первым входам пятнадцатой группы элементов И и к входам девятого элемента ИЛИ, выходы которой подключены к первому входу пятого регистра, к первому входу двенадцатого элемента ИЛИ, выход двенадцатого элемента ИЛИ подключен к входу седьмого элемента задержки и к входу одиннадцатого элемента НЕ, выходы которых подключены к входам десятого элемента ИЛИ, выход десятого элемента ИЛИ подключен к третьему входу пятого элемента И, выход которого подключен к входам девятого и десятого элементов задержки, к второму входу пятого регистра, к вторым входам тринадцатой и четырнадцатой группам элементов И, к второму входу двенадцатой группы элементов И, через восьмой элемент задержки к второму входу пятнадцатой группы элементов И и является выходом считывания с регистра третьего уровня, младший разряд тринадцатой группы элементов И подключен к первому входу седьмого узла информационных разрядов и к третьему входу двенадцатой группы элементов И, первые выходы которой подключены к входам шестнадцатого блока сумматоров, а вторые выходы подключены к вторым входам седьмого узла информационных разрядов и к входам шестого формирователя поправки, выходы которого подключены к вторым входам шестнадцатого блока сумматоров, выходы шестнадцатого блока сумматоров подключены к первым входам седьмой схемы 54 сравнения и к первым входам двадцать первого блока сумматоров, выходы седьмого узла информационных разрядов подключены к входам двадцатого блока сумматоров и через восьмой кодирующий узел к вторым входам седьмой схемы сравнения, выходы которой подключены к первым входам семнадцатой группы элементов И, через одиннадцатый элемент ИЛИ к второму входам седьмого регистра и четырнадцатого элемента ИЛИ, вход "ошибка" из полубайтов третьего уровня подключен к второму входу двенадцатого элемента ИЛИ, выход шестого элемента И через восьмой
элемент задержки подключен к третьему входу пятнадцатой группы элементов И, выход девятого элемента задержки подключен к второму входу седьмого элемента И, выход десятого элемента задержки подключен к второму входу семнадцатой группы элементов И и к первому входу шестнадцатой группы элементов И, выход тринадцатой группы элементов И подключен к первым входам шестого узла информационных разрядов и к вторым входам пятого формирователя поправки, выходы которого подключены к первым входам семнадцатого блока сумматоров, выходы семнадцатого блока сумматоров подключены к первым входам девятнадцатого блока сумматоров и шестой схемы сравнения, выходы которой подключены к вторым входам шестнадцатой группы элементов И и к входам тринадцатого элемента ИЛИ, выход тринадцатого элемента ИЛИ подключен к первому входу шестого регистра и первому входу четырнадцатого элемента ИЛИ, второй вход которого подключен к входу "Ошибка" из полубайтов четвертого уровня, выходы шестого регистра подключены к вторым входам восемнадцатого и девятнадцатого блоков сумматоров, выходы восемнадцатого блока сумматоров подключены к первым входам восемнадцатой группы элементов И, выходы которой подключены к вторым входам первой группы элементов ИЛИ, выходы шестнадцатой группы элементов И подключены к входам шестой группы элементов ИЛИ, выходы девятнадцатого блока сумматоров подключены к первым входам девятнадцатой группы элементов И, выходы которой подключены к вторым входам второй группы элементов ИЛИ, выходы двадцатого блока сумматоров подключены к первым входам двадцатой группы элементов И, выходы которой подключены к вторым входам третьей группы элементов ИЛИ, выходы двадцать первого блока сумматоров подключены к первым входам двадцать первой группы элементов И, выходы которой подключены к вторым входам четвертой группы элементов ИЛИ, выходы семнадцатой группы элементов И подключены к входам пятой группы элементов ИЛИ, выход четырнадцатого элемента ИЛИ подключен к
входам одиннадцатого элемента задержки и тринадцатого элемента НЕ, выходы которых подключены к входам пятнадцатого элемента ИЛИ, выход пятнадцатого элемента ИЛИ подключен к второму входу седьмого элемента И, выход которого подключен к входу шестнадцатого элемента ИЛИ, к вторым входам восемнадцатой, девятнадцатой, двадцатой, двадцать первой групп элементов И, через восьмой элемент НЕ к третьему входу семнадцатой группы элементов И, через десятый элемент НЕ к третьему входу шестнадцатой группы элементов И, к вторым входам шестого и седьмого регистров и является выходом считывания с регистров четвертого уровня, выходы шестого регистра подключены к вторым входам восемнадцатого и девятнадцатого блоков сумматоров, выходы седьмого регистра подключены к вторым входам двадцатого и двадцать первого блоков сумматоров, выходы шестнадцатого элемента ИЛИ подключены к четвертому входу блока частных произведений, выходы первой, второй, третьей, четвертой групп элементов ИЛИ подключены соответственно к пятым, шестым, седьмым и восьмым выходам блока частных произведений, выходы пятой группы элементов ИЛИ подключен к входам десятого кодирующего узла, выходы которого подключены к входам первого дешифратора, выходы шестой группы элементов ИЛИ подключены к входам одиннадцатого кодирующего узла, выходы которого подключены к входам второго дешифратора, вход шина данных и управления первым и вторым блоками памяти подключен к первым входам первого и второго боков памяти, вторые входы которых подключены соответственно к выходам первого и второго дешифраторов, выходы первого блока памяти подключены к девятым входам бока частных произведений и к третьим входам второго, четвертого, седьмого регистров, выходы второго блока памяти подключены к десятым входам блока частных произведений и к третьим входам первого, третьего, пятого, шестого регистров, вход выход переноса из старшего разряда младшего полубайта информации, вход выходы третьего и четвертого разрядов множителя подключены
соответственно к одиннадцатому и двенадцатому входам блока частных произведений, первые выходы которого подключены к входам пятой и шестой групп элементов ИЛИ, а вторые выходы являются выходами устройства умножения, вторые выходы первого и второго дешифраторов являются выходами некорректируемая ошибка.
На фиг.1 представлена блок-схема полезной модели отказоустойчивого устройства ускоренного умножения. Полезная модель отказоустойчивого устройства ускоренного умножения содержит: первый узел 1 информационных разрядов, первый узел 2 контрольных разрядов, второй узел 3 информационных разрядов, второй узел 4 контрольных разрядов, третий узел 5 информационных разрядов, четвертый узел 6 информационных разрядов, пятый узел 7 информационных разрядов, шестой узел 8 информационных разрядов, седьмой узел 9 информационных разрядов, первый формирователь 10 поправки, второй формирователь 11 поправки, третий формирователь 12 поправки, четвертый формирователь 13 поправки, пятый формирователь 14 поправки, шестой формирователь 15 поправки, первый кодирующий узел 16, второй кодирующий узел 17, третий кодирующий узел 18, четвертый кодирующий узел 19, пятый кодирующий узел 20, шестой кодирующий узел 21, седьмой кодирующий узел 22, восьмой кодирующий узел 23, девятый кодирующий узел 24, десятый кодирующий узел 25, одиннадцатый кодирующий узел 26, первый блок 27 сумматоров, второй блок сумматоров 28, третий блок 29 сумматоров, четвертый блок 30 сумматоров, пятый блок 31 сумматоров, шестой блок сумматоров 32, седьмой блок 33 сумматоров, восьмой блок 34 сумматоров, девятый блок 35 сумматоров, десятый блок 36 сумматоров, одиннадцатый блок 37 сумматоров, двенадцатый блок 38 сумматоров, тринадцатый блок 39 сумматоров, четырнадцатый блок 40 сумматоров, пятнадцатый блок 41 сумматоров, шестнадцатый блок 42 сумматоров, семнадцатый блок 43 сумматоров, восемнадцатый блок 44 сумматоров, девятнадцатый блок 45 сумматоров, двадцатый блок 46 сумматоров, двадцать первый блок 47
сумматоров, первая схема 48 сравнения, вторая схема 49 сравнения, третья схема сравнения 50, четвертая схема 51 сравнения, пятая схема 52 сравнения, шестая схема 53 сравнения, седьмая схема 54 сравнения, первый регистр 55, второй регистр 56, третий регистр 57, четвертый регистр 58, пятый регистр 59, шестой регистр 60, седьмой регистр 61, первый элемент 62 ИЛИ, второй элемент 63 ИЛИ, третий элемент 64 ИЛИ, четвертый элемент 65 ИЛИ, пятый элемент 66 ИЛИ, шестой элемент 67 ИЛИ, седьмой элемент 68 ИЛИ, восьмой элемент 69 ИЛИ, девятый элемент 70 ИЛИ, десятый элемент 71 ИЛИ, одиннадцатый элемент 72 ИЛИ, двенадцатый элемент 73 ИЛИ, тринадцатый элемент 74 ИЛИ, четырнадцатый элемент 75 ИЛИ, пятнадцатый элемент 76 ИЛИ, шестнадцатый элемент 77 ИЛИ, первая группа 78 элементов ИЛИ, вторая группа 79 элементов ИЛИ, третья группа 80 элементов ИЛИ, четвертая группа 81 элементов ИЛИ, пятая группа 82 элементов ИЛИ, шестая группа 83 элементов ИЛИ, первый элемент 84 И, второй элемент 85 И, третий элемент 86 И, четвертый элемент 87 И, пятый элемент 88 И, шестой элемент 89 И, седьмой элемент 90 И, первая группа 91 элементов И, вторая группа 92 элементов И, третья группа 93 элементов И, четвертая группа 94 элементов И, пятая группа 95 элементов И, шестая группа 96 элементов И, седьмая группа 97 элементов И, восьмая группа 99 элементов И, девятая группа 100 элементов И, десятая группа 101 элементов И, одиннадцатая группа 102 элементов И, двенадцатая группа 103 элементов И, тринадцатая группа 104 элементов И, четырнадцатая группа 105 элементов И, пятнадцатая группа 106 элементов И, шестнадцатая группа 107 элементов И, семнадцатая группа 108 элементов И, восемнадцатая группа 109 элементов И, девятнадцатая группа 110 элементов И, двадцатая группа 111 элементов И, двадцать первая группа 112 элементов И, первый элемент 113 НЕ, второй элемент 114 НЕ, третий элемент 115 НЕ, четвертый элемент 116 НЕ, пятый элемент 117 НЕ, шестой элемент 118 НЕ, седьмой элемент 119 НЕ, восьмой элемент 120 НЕ, девятый элемент 121 НЕ, десятый элемент 122 НЕ, одиннадцатый элемент 123 НЕ, первый элемент 124 задержки, второй
элемент 125 задержки, третий элемент 126 задержки, четвертый элемент 127 задержки, пятый элемент 128 задержки, шестой элемент 129 задержки, седьмой элемент 130 задержки, восьмой элемент 131 задержки, девятый элемент 132 задержки, десятый элемент 133 задержки, одиннадцатый элемент 134 задержки, двенадцатый элемент 135 задержки, первый дешифратор 136, второй дешифратор 137, первый блок 138 памяти, второй блок 139 памяти, блок 140 частных произведений, входы 141 информационных разрядов множимого, входы 142 контрольных разрядов множимого, вход 143 управления, вход 144 выход младшего разряда старшего полубайта информации, вход 145 "Ошибка" из полубайтов первого уровня, вход 146 выход младшего разряда множителя, вход 147 "Ошибка" из полубайтов второго уровня, вход 148 выход второго разряда множителя, вход 149 выход переноса из старшего разряда младшего полубайта информации, вход 150 "Ошибка " из полубайтов третьего уровня, вход 151 "Ошибка " из полубайтов четвертого уровня, вход 152 шина данных и управления первым и вторым блоками памяти, входы 153 третьего и четвертого разрядов множителя, выход 154 считывания с регистров первого уровня, выход 155 считывания с регистров второго уровня, выход 156 считывания с регистров третьего уровня, выход 157 считывания с регистров четвертого уровня, выходы 158 устройства умножения, выходы 159 "некорректируемая ошибка".
Информационные разряды 141 множимого подключены к входам первого узла 1 информационных разрядов, выходы которого подключены к первым входам первого формирователя 10 поправки, к входам третьего узла 5 информационных разрядов, к первым входам четвертого формирователя 13 поправки и к первым входам тринадцатого блока 39 сумматоров, и к первому входу блока 140 частных произведений, при этом младший разряд первого узла 1 информационных разрядов подключен к входу второго узла 3 информационных разрядов и к входу первого кодирующего узла 16, выходы которого подключены к входам второго узла 4 контрольных разрядов, входы
142 контрольных разрядов множимого подключены к входам первого узла 2 контрольных разрядов, выходы которого подключены к первым входам первого блока 27 сумматоров, к вторым входам блока 140 частных произведений, вход 143 управления подключен к входам первого 124 и третьего 126 элементов задержки, вход 144 выход младшего разряда старшего полубайта информации подключен к второму входу первого формирователя 10 поправки, к второму входу третьего узла 5 информационных разрядов, к первым входам второго формирователя 11 поправки, четвертого узла 6 информационных разрядов, шестого узла 8 информационных разрядов, к входам пятого формирователя 14 поправки и к третьему входу блока 140 частных произведений, вход 145 "Ошибка" полубайтов первого уровня подключен к первому входу первого элемента 62 ИЛИ, выход которого подключен к входу второго элемента 125 задержки и к входу третьего элемента 115 НЕ, выходы первого формирователя 10 поправки подключены к вторым входам первого блока 27 сумматоров, выходы которого подключены к первым входам первой схемы 48 сравнения третьего блока 29 сумматоров, выходы третьего блока 29 сумматоров подключены к первым входам второй группы 92 элементов И, выходы третьего узла 5 информационных разрядов подключены к входам второго кодирующего узла 17 и к первым входам второго блока 28 сумматоров, выходы которого подключены к первым входам первой группы 91 элементов И, выходы второго кодирующего узла 17 подключены к вторым входам первой схемы 48 сравнения, выходы которой подключены к входам второго элемента 63 ИЛИ и к первым входам третьей группы 93 элементов И, выходы второго узла 3 информационных разрядов подключены к входам третьего кодирующего устройства 18 и к первым входам четвертого блока 30 сумматоров, выходы которого подключены к первым входам четвертой группы 94 элементов И, выходы второго узла 4 контрольных разрядов подключены к первым входам второй схемы 49 сравнения и пятого блока 31 сумматоров, выходы которого подключены к первым входам пятой группы
95 элементов И, выходы второго кодирующего устройства 18 подключены к вторым входам второй схемы 49 сравнения, выходы которой подключены к первым входам шестой группы 96 элементов И и к входам третьего элемента 64 ИЛИ, выход второго элемента 63 ИЛИ подключен к первому входу первого регистра 55 и к второму входу первого элемента 62 ИЛИ, выход третьего элемента 64 ИЛИ подключен к первому входу второго регистра 56 и к третьему входу первого элемента 62 ИЛИ, выходы третьего элемента 126 задержки и третьего элемента 115 НЕ подключены соответственно к первому и второму входам четвертого элемента 65 ИЛИ, выход которого подключен к первым входам первого элемента 84 И и второго элемента 85 И, выход первого элемента 124 задержки подключен к вторым входам первого элемента 84 И и второго элемента 85 И, выход третьего элемента задержки 126 подключен к вторым входам шестой группы 96 элементов И и третьей группы 93 И, вход 146 выход младшего разряда множителя подключен к третьему входу второго элемента 85 И, выход которого подключен к вторым входам первой группы 91 элементов И, второй группы 92 элементов И, четвертой группы 94 элементов И, пятой группы 95 элементов И, выход первого элемента 84 И подключен к первым входам третьего элемента 86 И, четвертого элемента 87 И, шестого элемента 89 И, к входам первого 113 и второго 114 элементов НЕ, к входу двенадцатого элемента 135 задержки, к вторым входам первого регистра 55, второго регистра 56 и является выходом 154 считывания с регистров первого уровня, выход двенадцатого элемента 135 задержки подключен к первому входу пятого элемента 88 И, выход первого регистра 55 подключен к вторым входам второго 28 и третьего 29 блоков сумматоров, выход второго регистра 56 подключен к вторым входам четвертого 30 и пятого 31 блоков сумматоров, выходы первого 113 и второго 114 элементов НЕ подключены соответственно к третьим входам третьей 93 и шестой 96 групп элементов И, вход 147 "Ошибка" из полубайтов второго уровня подключен к первому входу пятого элемента 66 ИЛИ, выход которого подключен к входам четвертого элемента
127 задержки и пятого элемента 117 НЕ, вход 147 выход второго разряда множителя подключен к входу четвертого элемента 116 НЕ, к вторым входам
пятого 88 и шестого 89 элементов И и к первому входу седьмого элемента 90 И, выходы первой группы 91 элементов И подключены к вторым входам третьего формирователя 13 поправки, тринадцатого блока 39 сумматоров, второго формирователя 11 поправки, четвертого узла 6 информационных разрядов, младший разряд выходов первой группы 91 элементов И подключен к вторым входам третьего формирователя поправки и пятого узла информационных разрядов, выходы второй группы 92 элементов И подключены к первым входам шестого 32 и двенадцатого 38 блоков сумматоров, выходы третьей группы 93 элементов И подключены к входам шестой группы 83 элементов ИЛИ, выходы четвертой группы 94 элементов И подключены к первым входам третьего формирователя 12 поправки пятого узла 7 информационных разрядов и к первым входам двенадцатой группы 103 элементов И, выходы пятой группы 95 элементов И подключены к первым входам седьмого блока 33 сумматоров и двенадцатой группы 103 элементов И, выходы шестой группы 96 элементов И подключены к входам пятой группы 82 элементов ИЛИ, выходы второго формирователя 11 поправки подключены к вторым входам шестого блока 32 сумматоров, выходы которого подключены к первым входам третьей схемы 50 сравнения и девятого блока 35 сумматоров, выходы четвертого узла 6 информационных разрядов подключены к первым входам восьмого блока 34 сумматоров и к входам четвертого кодирующего узла 19, выходы четвертого кодирующего узла 19 подключены к вторым входам третьей схемы 50 сравнения выходы которой подключены к первым входам восьмой группы 99 элементов И и к входам седьмого элемента 68 ИЛИ, выходы седьмого элемента 68 ИЛИ подключены к первому входу третьего регистра 57 и к второму входу пятого элемента 66 ИЛИ, выходы третьего формирователя 12 поправки подключены к вторым входам седьмого блока 33 сумматоров, выходы которого подключены к входам одиннадцатого блока 37 сумматоров
и к первым входам четвертой схемы 51 сравнения, выходы которой подключены к входам восьмого элемента 69 ИЛИ и первым входам десятой группы 101 элементов И, выходы пятого узла 7 информационных разрядов подключены к первым входам десятого блока 36 сумматоров и к входам пятого кодирующего узла 20, выходы которого подключены к вторым входам четвертой схемы 51 сравнения, выходы десятого блока 36 сумматоров подключены к первым входам девятой группы 100 элементов И, выходы восьмого элемента 69 ИЛИ подключены к первому входу четвертого регистра 58 и третьему входу пятого элемента 66 ИЛИ, выход которого подключен к входам четвертого элемента 128 задержки и пятого элемента 117 НЕ, выходы четвертого элемента 127 задержки и пятого элемента 117 НЕ подключены соответственно к первому и второму входам шестого элемента 67 ИЛИ, выход которого подключен к второму входу третьего элемента 86 И, выходы четвертого элемента 116 НЕ подключены к второму входу четвертого элемента 87 И и к третьему входу третьего элемента 86 И, выходы одиннадцатого блока 37 сумматоров подключены к первым входам одиннадцатой группы 102 элементов И, выходы третьего элемента 86 И через пятый элемент 128 задержки подключены к первому входу шестнадцатого элемента 77 ИЛИ, к вторым входам одиннадцатой группы 102 элементов И, девятой группы 100 элементов И, седьмой группы 97 элементов И, восьмой группы 98 элементов И, к входу шестого элемента 118 НЕ, к первому входу третьего регистра 57, к входу четвертого регистра 58 и при этом является выходом 155 считывания с регистров второго уровня, выход шестого элемента 118 НЕ подключен к третьему входу восьмой группы 99 элементов И и третьему входу десятой группы 101 элементов И, выходы четвертого элемента 87 И через шестой элемент 129 задержки подключены к четвертым входам десятой 101 и восьмой 99 групп элементов И, выход третьего регистра 57 подключен к третьим входам восьмого 34 и девятого 35 блоков сумматоров, выход четвертого регистра 58 подключен к третьим входам десятого 36 и одиннадцатого 37 блоков сумматоров, выход седьмой группы
97 элементов И подключен к первым входам первой группы 78 элементов ИЛИ, вход 149 выход переноса из младшего полубайта информации подключен к третьему входу четвертого формирователя поправки, выход которого подключен к третьим входам тринадцатого блока 39 сумматоров и к входам третьего формирователя 12 поправки, выход которого подключен к вторым входам двенадцатого блока 38 сумматоров, выход тринадцатого блока 39 сумматоров подключен к входам седьмого кодирующего узла 22 и к первым входам четырнадцатого блока 40 сумматоров, выход которого подключен к первым входам тринадцатой группы 104 элементов И, выход двенадцатого блока 38 сумматоров подключен к первым входам четырнадцатого блока 41 сумматоров и пятой схемы 52 сравнения, вторые входы которой подключены к выходам седьмого кодирующего узла 22, выходы четырнадцатого блока 41 сумматоров подключен к первым входам четырнадцатой группы 105 элементов И, выходы пятой схемы 52 сравнения подключены к первым входам пятнадцатой группы 106 элементов И и к входам девятого элемента 70 ИЛИ, выходы которой подключены к первому входу пятого регистра 59, к первому входу двенадцатого элемента 73 ИЛИ, выход двенадцатого элемента 73 ИЛИ подключен к входу седьмого элемента 130 задержки и к входу одиннадцатого элемента НЕ, выходы которых подключены к входам десятого элемента 71 ИЛИ, выход десятого элемента 71 ИЛИ подключен к третьему входу пятого элемента 88 И, выход которого подключен к входам девятого 132 и десятого 133 элементов задержки, к второму входу пятого регистра 59, к вторым входам тринадцатой 104 и четырнадцатой 105 группам элементов И, к второму входу двенадцатой группы 103 элементов И, через восьмой элемент 119 задержки к второму входу пятнадцатой группы 106 элементов И и является выходом 156 считывания с регистра третьего уровня, младший разряд тринадцатой группы 104 элементов И подключен к первому входу седьмого узла 9 информационных разрядов и к третьему входу двенадцатой группы 103 элементов И, первые выходы которой подключены к входам шестнадцатого
блока 42 сумматоров, а вторые выходы подключены к вторым входам седьмого узла 9 информационных разрядов и к входам шестого формирователя 15 поправки, выходы которого подключены к вторым входам шестнадцатого блока 42 сумматоров, выходы шестнадцатого блока 42 сумматоров подключены к первым входам седьмой схемы 54 сравнения и к первым входам двадцать первого блока 47 сумматоров, выходы седьмого узла 9 информационных разрядов подключены к входам двадцатого блока 46 сумматоров и через восьмой кодирующий узел 23 к вторым входам седьмой схемы 54 сравнения, выходы которой подключены к первым входам семнадцатой группы 108 элементов И, через одиннадцатый элемент 72 ИЛИ к второму входу седьмого регистра 61 и четырнадцатого элемента 75 ИЛИ, вход 150 "ошибка" из полубайтов третьего уровня подключен к второму входу двенадцатого элемента 73 ИЛИ, выход шестого элемента 89 И через восьмой элемент 131 задержки подключен к третьему входу пятнадцатой группы 106 элементов И, выход девятого элемента 132 задержки подключен к второму входу седьмого элемента 90 И, выход десятого элемента 133 задержки подключен к второму входу семнадцатой группы 108 элементов И и к первому входу шестнадцатой группы 107 элементов И, выход тринадцатой группы 104 элементов И подключен к первым входам шестого узла 8 информационных разрядов и к вторым входам пятого формирователя 14 поправки, выходы которого подключены к первым входам семнадцатого блока 43 сумматоров, выходы семнадцатого блока 43 сумматоров подключены к первым входам девятнадцатого блока 45 сумматоров и шестой схемы 53 сравнения, выходы которой подключены к вторым входам шестнадцатой группы 107 элементов И и к входам тринадцатого элемента 74 ИЛИ, выход тринадцатого элемента 74 ИЛИ подключен к первому входу шестого регистра 60 и первому входу четырнадцатого элемента 75 ИЛИ, второй вход которого подключен к входу 151 "Ошибка" из полубайтов четвертого уровня, выходы шестого регистра 60 подключены к вторым входам восемнадцатого 44 и девятнадцатого 45 блоков сумматоров, выходы
восемнадцатого блока 44 сумматоров подключены к первым входам восемнадцатой группы 109 элементов И, выходы которой подключены к вторым входам первой группы 78 элементов ИЛИ, выходы шестнадцатой группы 107 элементов И подключены к входам шестой группы 83 элементов ИЛИ, выходы девятнадцатого блока 45 сумматоров подключены к первым входам девятнадцатой группы 110 элементов И, выходы которой подключены к вторым входам второй группы 79 элементов ИЛИ, выходы двадцатого блока 46 сумматоров подключены к первым входам двадцатой группы 111 элементов И, выходы которой подключены к вторым входам третьей группы 80 элементов ИЛИ, выходы двадцать первого блока 47 сумматоров подключены к первым входам двадцать первой группы 112 элементов И, выходы которой подключены к вторым входам четвертой группы 81 элементов ИЛИ, выходы семнадцатой группы 108 элементов И подключены к входам пятой группы 82 элементов ИЛИ, выход четырнадцатого элемента 75 ИЛИ подключен к входам одиннадцатого элемента 134 задержки и тринадцатого элемента 123 НЕ, выходы которых подключены к входам пятнадцатого элемента 76 ИЛИ, выход пятнадцатого элемента 76 ИЛИ подключен к второму входу седьмого элемента 90 И, выход которого подключен к входу шестнадцатого элемента 77 ИЛИ, к вторым входам восемнадцатой 109, девятнадцатой 110, двадцатой 111, двадцать первой 112 групп элементов И, через восьмой элемент 120 НЕ к третьему входу семнадцатой группы 108 элементов И, через десятый элемент 122 НЕ к третьему входу шестнадцатой группы 107 элементов И, к вторым входам шестого 60 и седьмого 61 регистров и является выходом 157 считывания с регистров четвертого уровня, выходы шестого регистра 60 подключены к вторым входам восемнадцатого 44 и девятнадцатого 45 блоков сумматоров, выходы седьмого регистра 61 подключены к вторым входам двадцатого 46 и двадцать первого 47 блоков сумматоров, выходы шестнадцатого элемента 77 ИЛИ подключены к четвертому входу блока 140 частных произведений, выходы первой 78, второй 79, третьей 80, четвертой
81 групп элементов ИЛИ подключены соответственно к пятым, шестым, седьмым и восьмым входам блока 140 частных произведений, выходы пятой группы 82 элементов ИЛИ подключен к входам десятого кодирующего узла 25, выходы которого подключены к входам первого дешифратора 136, выходы шестой группы 83 элементов ИЛИ подключены к входам одиннадцатого кодирующего узла 26, выходы которого подключены к входам второго дешифратора 139, вход 152 шина данных и управления первым и вторым блоками памяти подключен к первым входам первого 138 и второго 139 боков памяти вторые входы которых подключены соответственно к выходам первого 136 и второго 137 дешифраторов, выходы первого блока 138 памяти подключены к девятым входам бока 140 частных произведений и к третьим входам второго 56, четвертого 58, седьмого 61 регистров, выходы второго блока 139 памяти подключены к десятым входам блока 140 частных произведений и к третьим входам первого 55, третьего 57, пятого 59, шестого 60 регистров, вход 149 выход переноса из старшего разряда младшего полубайта информации, вход 153 выходы третьего и четвертого разрядов множителя подключены соответственно к одиннадцатому и двенадцатому входам блока 140 частных произведений, первые выходы которого подключены к входам пятой 82 и шестой 83 групп элементов ИЛИ, а вторые выходы 158 являются выходами устройства умножения, выходы 159 являются выходами "некорректируемая ошибка".
Первый узел 1 информационных разрядов содержит исходные значения полубайта информационных разрядов множимого.
Примечание: Все узлы информационных и контрольных разрядов реализованы на элементах И, первые входы которых подключены к входу 143 управления, а вторые к соответствующим выходам информационных и контрольных разрядов (входы 143 управления для узлов информационных и контрольных разрядов на Фиг.1 не показаны.
Первый узел 2 контрольных разрядов содержит значения контрольных разрядов множимого.
Второй узел 3 информационных разрядов предназначен для хранения младшего разряда множимого.
Второй узел 4 контрольных разрядов содержит контрольные разряды, сформированные относительно младшего разряда множимого.
Третий узел 5 информационных разрядов содержит значения разрядов множимого, сдвинутого вправо на один разряд, причем в него может быть записано значение младшего разряда старшего полубайта информации, поступающее с входа 143.
Четвертый узел 6 информационных разрядов содержит значения разрядов множимого сдвинутого на два разряда вправо, причем с входа 143 может быть записано значение второго разряда старшего полубайта информации.
Пятый узел 7 информационных разрядов содержит первый и второй младшие разряды множимого, причем в его старший разряд поступает значение младшего разряда с четвертого узла 6 информационных разрядов (второй разряд множимого).
Шестой узел 8 информационных разрядов содержит значения сдвинутых на один разряд вправо разрядов арифметической суммы разрядов множимого и разрядов множимого, причем в старший разряд может быть записано значение младшего разряда старшего полубайта информации.
Седьмой узел 9 информационных разрядов содержит значения младшего разряда множимого и младшего разряда шестого узла 8 информационных разрядов.
Первый формирователь 10 поправки предназначен для формирования поправки к контрольным разрядам множимого при первом сдвиге вправо. В этом случае, вначале в соответствии с выражением 17 формируется вектор поправки, матрица поправок и далее организуется правые и левые диагональные проверки:
4
3
Ч1
rrr
2
1
Ч2
rrr
Второй формирователь 11 поправки предназначен для формирования поправки при выполнении второго сдвига множимого вправо, аналогично работе первого формирователя 10 поправки.
Третий формирователь 12 поправки предназначен для формирования поправки к контрольным разрядам множимого, содержащихся в пятом узле 7 информационных разрядов.
Четвертый формирователь 13 поправки предназначен для формирования вектора переносов в соответствии с выражением 16.
Пятый формирователь 14 поправки предназначен для формирования поправки к контрольным разрядам при выполнения операции сдвига после выполнения арифметического сложения.
Шестой формирователь поправки 15 предназначен для формирования поправки к значениям контрольных разрядов при выполнении операции сдвига.
Первый кодирующий узел 16 предназначен для формирования значений контрольных разрядов относительно младшего разряда множимого.
Второй кодирующий узел 17 предназначен для формирования значений контрольных разрядов относительно информации третьего узла 5 информационных разрядов.
Третий кодирующий узел 18 предназначен для формирования значений контрольных разрядов, поступающих с второго узла 3 информационных разрядов.
Четвертый 19, пятый 20, восьмой 23, девятый 24 кодирующие узлы предназначены для формировании значений контрольных разрядов, поступающих с выходов соответственно четвертого 6, пятого 7, седьмого 9, шестого 8, узлов информационных разрядов.
Шестой 21, седьмой 22 кодирующие узлы предназначены для формирования значений контрольных разрядов относительно информации, поступающей формирователя поправки 13, тринадцатого блока 39 сумматоров.
Десятый 25, одиннадцатый 26 кодирующие узлы предназначены для формирования значений синдрома ошибки, относительно информации, поступающей на их входы с выходов первой 48 по седьмую 54 схем сравнения.
Первый блок 27 сумматоров предназначен для формирования контрольных разрядов с учетом поправки при сдвиге множимого вправо. Второй 28, третий 29, четвертый 30, пятый 31 блоки сумматоров предназначены для коррекции ошибок в информационных и контрольных разрядах множимого сдвинутого на один разряд вправо, в соответствии сигналами вектора ошибки, поступающими с выходов первого 55 и второго 56 регистров.
Шестой 32 и седьмой 33 блоки сумматоров предназначены для формирования контрольных разрядов относительно информации четвертого 6 и пятого 7 узлов информационных разрядов соответственно, путем сложения по mod2 значений поправок поступающих с выходов второго 11 и третьего 12 формирователей поправки.
С восьмого 34 по одиннадцатый 37 блоки сумматоров предназначены для коррекции ошибок в информационных и контрольных разрядах в соответствии сигналами вектора ошибки, поступающими с выходов третьего 57 и четвертого 58 регистров.
Тринадцатый блок 39 сумматоров предназначен для формирования арифметической суммы с учетом значения сигналов переносов, поступающих с формирователя 13 поправки.
Четырнадцатый 40 и пятнадцатый 41 блоки сумматоров предназначены для коррекции значений информационных и контрольных разрядов, в
соответствии с значениями сигналов вектора ошибки, поступающими с выходов пятого регистра 59.
Шестнадцатый блок 42 сумматоров предназначен для формирования значений контрольных разрядов относительно информации седьмого узла 9 информационных разрядов.
Семнадцатый блок 43 сумматоров предназначен для формирования значений контрольных разрядов относительно информации шестого узла 8 информационных разрядов.
Восемнадцатый 44, девятнадцатый 45, двадцатый 46, двадцать первый 47 блоки сумматоров предназначены для коррекции значений информационных и контрольных разрядов в соответствии с значениями сигналов вектора ошибки, поступающих с выходов шестого 60 и седьмого 61 регистров.
С первой 48 по седьмую 54 схемы сравнения предназначены для сравнения контрольных разрядов полученных с учетом поправки с контрольными разрядами, сформированными кодирующими устройствами и реализуют суммирование по mod2 одноименных значений контрольных разрядов для получения синдрома ошибки.
С первого 55 по седьмой 61 регистры предназначены для хранения значений векторов ошибок, поступающих с первого 137 и второго 138 блоков памяти.
С первого 62 по шестнадцатый 77 элементы ИЛИ, с первой 78 по шестую 83 группы элементов ИЛИ, с первого 84 по седьмой 90 элементы ИЛИ, с первой 91 по двадцать первую 112 группы элементов И, с первого 113 по одиннадцатый 123 элементы НЕ, с первого 124 по одиннадцатый 134 элементы задержки предназначены для согласования работы устройства.
Первый 135 и второй 136 дешифраторы в соответствии с значениями сигналов поступающих с выходов десятого 25 и одиннадцатого 26 кодирующих узлов, формируют адрес считывания значений сигналов вектора ошибки с первого 137 и второго 138 блоков памяти.
Блок 139 частных произведений предназначен для выполнения операций арифметического сложения и сдвига в соответствии значениями третьего и четвертого разрядов множителя, аналогично операциям, рассмотренным для первого и второго разрядов множителя.
Устройство работает следующим образом.
Перед началом работы на входы "установка в нулевое состояние" (на фиг.1 входы не показаны) с первого 55 по седьмой 61 регистров, на вход 151 шины данных и управления первым 137 и вторым 138 блоками памяти подается сигнал установки их в нулевое состояние.
На вход 140 первого узла 1 информационных разрядов поступают значения информационных разрядов множимого, а на входы 141 первого узла 2 контрольных разрядов - значения контрольных разрядов множимого.
На входы 145, 147, 152 подаются значения сигналов соответственно первого, второго, третьего и четвертого разрядов множителя.
Допустим, необходимо перемножить два четырехразрядных числа (т.е. проведем умножение без учета сигналов переноса из младшего полубайта информации при выполнении арифметической операции сложения и переноса младшего разряда старшего полубайта информации в старший разряд младшего полубайта информации при выполнении операции сдвига вправо): А*В, множимое А=0111; множитель В==0101.
Для полубайта множимого имеем контрольные разряды:
1K
1K
A=0111 0000 1111; b=0101
Проведем умножение, используя сдвиг вправо.
На первым этапе в третьем узле 5 информационных разрядов записывается множимое, сдвинутое вправо на один разряд:
0011, при этом относительно исходной информации, представленной в первом узле 1 информационных разрядов, формируется матрица поправок и поправка к контрольным разрядам первого полубайта в соответствии с правилом (1):
значение младшего разряда множимого.
4
3
2
1
1
i
Тогда для значения информации, представленной в третьем узле 5 информационных разрядов, первый формирователь 10 поправки формирует вектор поправки: r=0 r=1 r=0 r=0 (y =0), соответственно имеем матрицу поправок:
Правый столбец матрицы представляет собой результаты проверок на четность строк матрицы поправок.
Выполнив, правые и левые диагональные проверки относительно матрицы поправок, первый формирователь 10 поправок дает значение поправки 0110 0011.
Одновременно на первом этапе при сдвиге множимого вправо в старший разряд информации второго узла 3 информационных разрядов поступает единичное значение младшего разряда множимого. В результате второй узел 3 информационных разрядов содержит информацию 1000.
Первый кодирующий узел 16 осуществляет кодирование данной информации по правилам выбранного метода кодирования, т.е. выдает значение контрольных разрядов 10100101 в второй узел 4 контрольных разрядов, которые с его выходов поступают на первые входы второй схемы 49 сравнения.
Третий кодирующий узел 18 осуществляет кодирование информации, поступающей с выходов второго узла 3 информационных разрядов, и выдает значение контрольных разрядов, поступающих на вторые входы второй схемы 49 сравнения.
Второй кодирующий узел 17 осуществляет кодирование информации, поступающей с выходов третьего узла 5 информационных разрядов и, выдает результат 0110 1100, который поступает на первые входы первой схемы 48 сравнения.
Первый блок 27 сумматоров осуществляет сложение по mod2 значений контрольных разрядов, поступающих с выходов первого узла 2 контрольных разрядов с значением поправки, поступающей с выходов первого формирователя 10 поправки и дает результат:
который поступает на вторые входы первой схемы 48 сравнения.
Если ошибка отсутствует, то значения контрольных разрядов, поступающее с выходов первого блока 27 сумматоров совпадают с значением контрольных разрядов поступающих с выходов второго кодирующего узла 17. Тоже самое справедливо значений контрольных разрядов, полученных относительно значений разрядов второго узла 3 информационных, поступающей на входы второй схемы 49 сравнения с выходов третьего кодирующего узла 18 и второго узла 4 контрольных разрядов.
Первая 48 и вторая 49 схемы сравнения осуществляют сложение по mod2 значений одноименных разрядов информации, поступающей на их первые и вторые входы, т.е. формируется синдром ошибки. Кроме этого сравниваемые значения контрольных разрядов и значения синдромов ошибок поступают на первые входы третьей 93 и шестой 96 групп элементов И.
Таким образом, если информация, поступающая на первые и вторые входы соответственно первой 48 и второй 49 схем сравнения совпадает, то значения синдромов на их выходах имеют нулевые значения, в противном случае, в разрядах имеющих ошибку имеем единичное значение сигналов.
Если на выходах первой 48 и второй 49 схем сравнения присутствуют единичные значения сигналов, то данное значение сигналов соответственно через второй 63 и третий 64 элементы ИЛИ, поступают соответственно на входы разрешающие запись информации в первый 55 или второй 56 регистры и одновременно на вход первого элемента 62 ИЛИ.
3
С началом проведения вычислений на вход 142 подается единичное значение сигнала, которое через третий элемент 126 задержки (время задержки t равно времени переходных процессов, связанных с кодированием информации) поступает на вторые входы третьей 93 и шестой 96 групп элементов И.
Информация с выходов третьей 93 и шестой 96 групп элементов И поступает соответственно шестой 83 и пятой 82 групп элементов ИЛИ и далее на входы одиннадцатого 26 и десятого 25 кодирующего узлов где организуются дополнительные правые и левые диагональные проверки относительно сравниваемых значений контрольных разрядов. В соответствии с информацией, поступающей с выходов десятого 25 и одиннадцатого 26 кодирующих узлов первый 135 и второй 136 дешифраторы формируют адрес вектора ошибки, записанного соответственно в первом 137 или во втором 138 блоках памяти.
Значения векторов ошибок с выходов первого 137 и второго 138 блоков памяти поступают соответственно во второй 56 и первый 55 регистры.
1
1
3
Если ошибки нет (сигнал на выходе первого элемента 62 ИЛИ равен нулю), то через время задержки t, определяемое первым элементом 124 задержки (t≥t) открывается первый элемент 84 И (на второй вход поступает единичное значение сигнала третьего элемента 115 HE) выходной сигнал которого через первый 113 и второй 114 элементы НЕ закрывает первую 93 и вторую 96 группы элементов И и открывает первую 91 вторую 92 четвертую 94 и пятую 95 группы элементов И т.е. разрешается считывание без коррекции информации с третьего узла 5 информационных разрядов и соответствующих значений контрольных разрядов, считывания информации с второго узла 3 информационных разрядов и второго узла 4 контрольных разрядов.
Если произошла ошибка, то на выходе первого элемента 62 ИЛИ появится единичное значение сигнала, которое обеспечивает нулевое
значение сигнала на выходе третьего элемента 115 НЕ (элемент 84 И находится в закрытом состоянии).
В этом случае сигнал с выхода первого элемента 62 ИЛИ поступает на вход четвертого элемента 65 ИЛИ через второй элемент 125 задержки.
2
1
Время задержки второго элемента 125 задержки t>t и обеспечивает время считывания значений векторов ошибок с первого 137 и второго 138 блоков памяти и записи их значений в первый 55 и второй 56 регистры.
При появлении сигнала на выходе второго элемента 125 задержки, открывается первый элемент 84 И, который разрешает считывание информации (значений векторов ошибок) с регистров 55, 56 первого уровня.
Второй 28, третий 29 четвертый 30 пятый 31 блоки сумматоров осуществляют коррекцию ошибок информации в соответствии с значениями сигналов векторов ошибок.
Значение первого разряда множителя (третий вход 145 второго элемента 85 И) равно единице, поэтому второй элемент 85 И открывается и с его выхода поступает сигнал, открывающий первую 91, вторую 92 третью 93, четвертую 94 пятую 95 группы элементов И, что обеспечивает считывание значений информационных разрядов множимого сдвинутых вправо на один разряд и соответствующих им значений контрольных разрядов (если младший разряд множителя равен нулю, то считываются нулевые значения сигналов).
На втором этапе для рассматриваемого примера, второй разряд множителя равен нулю, поэтому на вход 147 поступает нулевое значение сигнала, что предполагает сдвиг поступающей информации вправо.
В связи с этим второй формирователь 11 поправки формирует значение поправки относительно информационных разрядов, поступающих с третьего узла 5 информационных разрядов. Одновременно в четвертом узле 6 информационных разрядов формируются значения разрядов множимого сдвинутых вправо на два разряда: 0001. Сложение значений контрольных разрядов, поступающих с выходов второй группы 92 элементов И с
значением поправки, поступающей с выходов второго формирователя 11 поправки даст значение контрольных разрядов для полученных значений информационных разрядов: 00110110.
Кроме этого, с учетом значения младшего разряда информационных разрядов, поступающих с выходов первой группы 91 элементов И и значений информационных разрядов, поступающих с выходов четвертой группы 94 элементов И, третьим формирователем 12 поправки формируется значение поправки для второй части сдвинутых информационных разрядов, представленных в пятом узле 7 информационных разрядов.
Сложение значения поправки, поступающей с выходов третьего формирователя 12 поправки с значением контрольных разрядов, поступающих с выходов пятой группы 95 элементов И, даст значение контрольных разрядов для второй части информационных разрядов: 11000110.
Четвертый кодирующий узел 19 осуществляет кодирование информационных разрядов, поступающих с выходов четвертого узла бинформационных разрядов. Третья схема 50 сравнения осуществляет сравнение значений контрольных разрядов, поступающих на ее входы с выходов шестого блока 32 сумматоров и выходов четвертого кодирующего узла 19 (формируется синдром ошибки).
Четвертая схема 51 сравнения осуществляет сравнение значений контрольных разрядов, поступающих с выходов пятого кодирующего узла 20 и значений контрольных разрядов, поступающих с выходов седьмого блока 33 сумматоров.
4
Кроме этого на втором этапе, с выхода четвертого элемента 116 НЕ снимается единичное значение сигнала, которое поступает на первый вход четвертого элемента 87 И на второй вход которого поступает единичное значение сигнала с выхода первого элемента 84 И. Единичное значение сигнала с выхода четвертого элемента 87 И через шестой элемент 129 задержки (время задержки t - обеспечивает задержку открытия восьмой 99
и десятой 101 групп элементов И на время переходных процессов, связанных с кодированием и сравнением информации. При их открытии значения контрольных разрядов и значения синдромов ошибок (если они возникли) поступают на входы пятой 82 и шестой 83 групп элементов ИЛИ и далее по значению данной информации с первого 137 и второго 138 блоков памяти считываются значения векторов ошибок, поступающих третий 57 и четвертый 58 регистры.
5
6
4
6
Если ошибки нет, то через время, t≥t считывание значений информационных и контрольных разрядов с выходов седьмой 97, восьмой 98 десятой 100, двенадцатой 102 групп элементов И. Если есть ошибка то считывание информации проводится через время t=t+t, необходимое для записи значений векторов ошибок в третий 57 и четвертый 58 регистры, считывания данных значений и, коррекции информации на восьмом 34, девятом 35, десятом 36 и одиннадцатом 37 боках сумматоров.
Примечание, если бы значение второго разряда множителя равнялось единице, необходимо было бы выполнить третий этап, заключающийся в выполнении арифметической операции сложения исходного значения информационных разрядов множимого с значениями информационных разрядов, полученных на первом этапе.
8
В этом случае на выходе четвертого элемента 116 НЕ имеем нулевое значение сигнала (на вход 147 поступает единичное значение). В этом случае третий элемент 86 И остается в закрытом состоянии, а открывается шестой элемент 89 И, который закрывает на время t (определяемое восьмым элементом 131 задержки) пятнадцатую группу 106 элементов И (запрещает выдачу информации, поступающей с выходов пятой схемы 52 сравнения).
При этом четвертый формирователь поправки 13 формирует значение вектора переносов относительно исходного значения информационных разрядов множимого и значения информационных разрядов, полученных в результате сдвига информационных разрядов множимого на первом этапе в соответствии с выражением (16).
Кодирование вектора переносов шестым кодирующим узлом 21 даст значение поправки к значению контрольных разрядов, полученных на двенадцатом блоке 38 сумматоров.
Сложение исходных значений информационных разрядов множимого и, информационных разрядов полученных на первом этапе и вектора поправки четырнадцатым блоком 40 сумматоров даст значение арифметической суммы информационных разрядов.
Кодирование информации на выходе четырнадцатого блока 40 сумматоров даст значение контрольных разрядов относительно результата суммы.
Полученные значения контрольных разрядов сравниваются пятой схемой 52 сравнения.
12
Если ошибки нет, то через время t, определяемое двенадцатым элементом 134 А задержки, на выходе пятого элемента 88 И появится единичное значение сигнала, которое открывает тринадцатую 104 и четырнадцатую 105 группы элементов И, на выходах которых появится результат арифметической суммы и соответствующие ей
контрольные разряды.
Если в результате суммирования возникла ошибка, то на выходе пятой схемы 52 сравнения появится значение синдрома ошибки при этом, на выходе девятого элемента 70 ИЛИ появится единичное значение сигнала, которое через двенадцатый элемент 73 ИЛИ. седьмой элемент 130 задержки обеспечит задержку считывания результата суммы на время необходимое для коррекции сигнала.
В этом случае значение синдрома ошибки обеспечит адрес считывание вектора ошибки с второго блока 138 памяти и запись его в пятый регистр 59.
7
По окончании времени задержки t на выходе пятого элемента 88 И появится сигнал разрешающий коррекцию и считывания значения арифметической суммы, и открытие двенадцатой группы 103 элементов И.
При этом осуществляется сдвиг вправо полученного результата, т.е. в шестом узле 8 информационных разрядов представляется результат арифметической суммы на один разряд вправо, пятый формирователь поправки формирует значение контрольных разрядов от исходной суммы, а девятый кодирующий узел 24 относительно результата сдвига информации.
Кроме этого в седьмом узле 9 информационных разрядов формируется вторая часть информационных разрядов с учетом значения младшего разряда арифметической суммы, шестой формирователь 15 поправки формирует значение поправки относительно исходного значения второй части информационных разрядов, а восьмой кодирующий узел 23 относительно второй части информационных разрядов сдвинутых вправо.
10
Шестая 53 и седьмая схемы 54 сравнения осуществляют сравнение полученных значений контрольных разрядов. По окончании переходных процессов, через время t, определяемое десятым элементом 133 задержки, на выходе данного элемента появится сигнал, разрешающий считывание синдромов ошибок с выходов шестой 53 седьмой 54 схем сравнения.
9
10
Через время t≥t, определяемое девятым элементом 132 задержки, на его выходе появится единичное значение сигнала, которое подготавливает к открытию седьмой элемент 90 И.
Если ошибок нет, то на выходе седьмого элемента 90 И появится единичное значение сигнала, которое открывает восемнадцатую 109, девятнадцатую 110, двадцатую 11, двадцать первую группы элементов, при этом значение сигналов информационных и контрольных разрядов через первую 78, вторую 79, третью 80, четвертую 81 группы элементов И поступают на входы бока 139 частных произведений.
11
Если в результате сдвига информации возникла ошибка, то седьмой элемент 90 И открывается через время t, определяемое временем одиннадцатого элемента 134 задержки, необходимым для коррекции ошибки.
При возникновении некорректируемой ошибки на выходах 158 первого 135 и второго 136 дешифраторов появятся единичные значения сигналов.
Аналогичным образом блок 139 частных произведений работает при выполнении операций относительно третьего и четвертого разрядов множителя.
В этом случае третий разряд множителя равен единичному значению, поэтому на четвертом этапе проводится суммирования значения множимого с частным произведением и сдвиг полученного результата вправо, т.е. разряды старшего полубайта информационных и контрольных разрядов имеют соответствующие значения: 0110 01100011, а информационные и контрольные разряды младшего полубайта информации: 0110 0011 1001.
Для четвертого (старшего разряда множителя) имеем нулевое значение сигнала, поэтому проводим сдвиг информации вправо, т.е. имеем окончательный результат первой и второй части информационных разрядов: 0010 0011 и соответствующие им значения контрольных разрядов: 0101 1010, 0110 1100.
ПРИЛОЖЕНИЕ
1. Способ защиты устройств хранения информации ЭВМ
Коррекция ошибок заданной кратности, при условии обнаружения ошибок в остальных разрядах информации, может достигается на основе итеративного кода.
Процедура построения двумерного итеративного кода состоит в следующем [3]. Заданную совокупность информационных символов делят на группы (блоки, модули) информации, по b - разрядов в каждой группе. Полученные модули информации представляют в виде информационной матрицы (1):
Затем осуществляется кодирование информации по методу четности (путем сложения по mod2 символов строк и столбцов полученной матрицы). В результате имеем двумерный итеративный код, позволяющий обнаруживать и исправлять любую одиночную ошибку:
1
2
m
1
2
b
1
1
2
m
m+1
b
1
1
2
m
m+1
b
П
где Н=h,h,...,h - вектор четности строк; Z=z,z,...,z - вектор четности столбцов. Вектора четности строк и столбцов образуют совокупность контрольных разрядов R={r,r,r,r,...,r}. При получении кодовой комбинации относительно информационных разрядов повторно формируется значения контрольных разрядов R ={r,r,r,r,...,r}. В данном случае, разница между переданными значениями контрольных разрядов и полученными после приема информации образует синдром ошибки Е:
1
2
m
m
m+1
b
При этом, разряды синдрома ошибки ее...е (полученные относительно вектора четности строк) указывают модуль информации, имеющей ошибку, а разряды ее...е (полученные относительно вектора четности столбцов) указывают ошибочный разряд в модуле информации.
Так как кодовые комбинации строк и столбцов имеют минимальное расстояние d=2, то минимальное расстояние данного кода d=4. Этот код позволяет исправлять любую одиночную ошибку и обнаруживать значительную долю кратных ошибок.
Структуры ошибок, не обнаруживаемых двумерным итеративным кодом показаны на рисунке:
Рис.1 Структуры ошибок, не обнаруживаемых двумерным итеративным кодом: а)-ошибки кратности 4; б)-ошибки кратности 6.
Рис.2 Структуры ошибок двумерного итеративного кода, приводящие к ошибочной коррекции: а)-ошибки кратности 5; б)-ошибки кратности 7.
В общем случае можно строить итеративные коды более высокой размерности (трехмерные, четырех мерные и т.д.), где каждый информационный символ будет являться компонентой одновременно х различных кодовых слов. Параметры итеративных кодов размерности х таковы [3]:
i
i
i
где n,k,d - соответственно длина, количество информационных разрядов, минимальное расстояние кодовых наборов строк и столбцов.
Исходя из этого, для построения итеративных кодов следует использовать проверки, имеющие наибольшую обнаруживающую способность.
Так, организация диагональных проверок рассматриваемой матрицы, позволит выявить структуры ошибок, не обнаруживаемые итеративным кодом, реализующим проверки четности строк и столбцов.
Структура диагональных проверок, обнаруживающих рассматриваемые ошибки имеет вид, представленный на рис.3.
Рис.3. Структура диагональных проверок:
1
2
l
1
2
l
П
П
П
Д
Д
Д
d ,d ,......d  - результаты правых диагональных проверок; d ,d ,......d  - результаты левых диагональных проверок
Левые диагональные проверки образуются по правилу:
Результаты правых диагональных проверок образуются при суммировании значений следующих информационных разрядов:
В этом случае, общее число диагональных проверок равно 2l,
или:
Пример 1. Пусть рассматриваемое слово состоит из четырех информационных разрядов, которые имеют нулевые значения. Для данного кодового набора информационная матрица имеет вид:
В этом случае проверки на четность строк и столбцов информационной матрицы дадут нулевые значения и, кроме этого будут иметь нулевые значения результаты всех правых и левых диагональных проверок. При возникновении ошибки во всех информационных разрядах имеем четную ошибку не обнаруживаемую двумерным итеративным кодом, т.к. проверки на четность строк и столбцов информационной матрицы имеют нулевые значения:
В то же время правые и левые диагональные проверки дадут результат 101.
Утверждение 1. Итеративный код, реализующий правые и левые диагональные проверки, обнаруживает все четные ошибки не обнаруживаемые двумерным итеративным кодом и выявляет нечетные ошибки воспринимаемые двумерным итеративным кодом как корректируемые.
В свою очередь существуют структуры ошибок не обнаруживаемые итеративным кодом, реализующим правые и левые диагональные проверки и проверками на четность строк и столбцов. Структуры рассматриваемых ошибок представлены на рис.4.
Рис.4 Структуры ошибок не обнаруживаемых диагональными проверками и проверками строк и столбцов.
Так, например, относительно информационной матрицы, имеющей нулевые значения, диагональными проверками не будет обнаружена следующая структура ошибки.
Для того, чтобы исключить появление рассматриваемых ошибок, информационная матрица должна содержать не более двух строк.
k
Утверждение 2. Для информационной матрицы bx2 итеративный код, реализующий правые и левые диагональные проверки, обнаруживает максимальное количество возможных ошибок (за исключением множества 2-1 запрещенных кодовых наборов, трансформируемых в разрешенные кодовые наборы).
Таким образом, при использовании итеративного кода, реализующего правые и левые диагональные проверки, кодовый набор передается в виде:
Для рассматриваемого примера кодирование информации осуществляется следующим образом:
Результат сложения значений сигналов контрольных разрядов переданных и полученных даст синдром ошибки:
1
2
l
l
l+1
2l
где разряды вектора ошибки r,r.........r - соответствуют правым диагональным проверка, r,r.........r - левым и сформированным относительно полученных информационных разрядов;
-значения полученных контрольных разрядов.
Свойство 1. Существуют такие конфигурации ошибок в информационных и контрольных разрядах, для которых синдромы ошибок имеют одинаковые значения.
Для различения данных ошибок, при формировании значений синдромов ошибок, организуются дополнительные диагональные проверки:
n
Таким образом, каждой ошибке из множества ошибок М=(2)k можно поставить в соответствие значение синдрома ошибки и значение дополнительных диагональных проверок.
Свойство 2. Каждой совокупности значения синдрома ошибок и значения дополнительных проверок соответствует подмножество Q-ошибок различной конфигурации.
Следствие 1. Для различения ошибок, принадлежащих данному подмножеству, следует ограничить кратность исправляемых ошибок и увеличить число контрольных разрядов (осуществить дополнительное кодирование информационных разрядов).
В связи с этим, предлагаемый способ кодирования включает следующие положения:
1) для того чтобы обеспечить коррекцию около 50% возникающих ошибок целесообразно ограничится исправлением ошибок, кратность которых не превышает k-1;
2) для каждой строки информационной матрицы организуется проверка на четность, т.е. информационная матрица представляется в виде:
3) для полученной информационной матрицы организуются правые и левые диагональные проверки. Число диагональных проверок (число контрольных разрядов диагональных проверок) определяется по формуле:
4) кодовый набор передается в виде:
5) результат сложения значений сигналов переданных и
сформированных контрольных разрядов даст синдром ошибки:
6) при формировании синдрома ошибки относительно полученных и сформированных значений контрольных разрядов организуются дополнительные диагональные проверки, число которых определяется выражением:
7) в результате имеем множество ошибок заданной кратности (в данном случае от одиночной до кратности k-1, определяемое выражением:  характеризующихся определенными значением синдрома ошибки и дополнительной проверки.
1
2
3
4
8) множество N разбивается на четыре подмножества N=n+n+n+n,
где
1
n - синдромы, имеющие одинаковые дополнительные проверки (некорректируемые ошибки, признак отказа устройства);
2
k
n - подмножество групп (каждая группа включает 2 - одинаковых значений синдромов) при наличии ошибок только в информационных разрядах;
3
k
n - подмножество групп (каждая группа включает 2 - одинаковых значений синдромов) при наличии ошибок только в контрольных разрядах;
4
k
n -подмножество групп (каждая группа включает 2 - одинаковых значений синдромов) при наличии ошибок одновременно в информационных и контрольных разрядах.
Заметим, что для ошибок, не превышающих кратность k-1 нет ошибочных кодовых наборов, трансформируемых в разрешенные (исправные) кодовые наборы.
На основе полученных правил кодирования формируется стратегия декодирования, решающая задачу различения ошибок в информационных и контрольных разрядах и, правила коррекции возникающих ошибок, которая включает следующие пункты:
1
1) выявляются одинаковые дополнительные проверки, по которым из множества N исключается синдромы ошибок, принадлежащие подмножеству n (выявляются некорректируемые ошибки, для которых формируется сигнал "Отказ устройства");
2
2) определяются группы одинаковых синдромов (указывающих на ошибку в соответствующих информационных разрядах) для подмножества n;
3
3) определяются группы синдромов ошибок, принадлежащих подмножеству n, для которых не требуется коррекция информационных разрядов;
4
4) выявляются группы одинаковых значений синдромов ошибок, принадлежащих подмножеству n и позволяющих исправлять ошибки в соответствующих информационных разрядах.
Для рассматриваемого примера, реализующего предлагаемый метод кодирования имеем:
- общее количество ошибок-4768
1
- число одинаковых синдромов ошибок, имеющих одинаковые дополнительные проверки (подмножество n)-2544 (число обнаруживаемых ошибок);
- 2224- число корректируемых ошибок (46%);
1
- число ошибок только в информационных разрядах- 224 (l=14-групп, каждая из которых включает по 16 одинаковых синдромов);
2
- число ошибок только в контрольных разрядах - 592 (l=37-групп, каждая из которых включает по 16 одинаковых синдромов);
3
- число ошибок, имеющих искажения одновременно в информационных и контрольных разрядах- 1408 (l=88-групп, каждая из которых включает по 16 одинаковых синдромов).
2
3
4
1
В табл.1 представлены часть значений синдромов ошибок для подмножеств n, n, n. (исключены синдромы ошибок подмножества n имеющие одинаковые значения дополнительных проверок).
Таблица1.
Ошибка
Инф.разр.
Принятые КР
Сформирован. КР
Синдром
y<sub>1</sub>y<sub>2</sub>y<sub>3</sub>y<sub>4</sub>
r<sub>1</sub>r<sub>2</sub>r<sub>3</sub>r<sub>4</sub>r<sub>5</sub>r<sub>6</sub>r<sub>7</sub>r<sub>8</sub>r<sub>9</sub>r<sub>10</sub>
r<sub>1</sub>r<sub>2</sub>r<sub>3</sub>r<sub>4</sub>r<sub>5</sub>r<sub>6</sub>r<sub>7</sub>r<sub>8</sub>r<sub>9</sub>r<sub>10</sub>
e<sub>1</sub>e<sub>2</sub>e<sub>3</sub>e<sub>4</sub>e<sub>5</sub>e<sub>6</sub>e<sub>7</sub>e<sub>8</sub>e<sub>9</sub>e<sub>10</sub>
Только в контрольных
<img he="7" wi="12" file="00000033.TIF" img-content="undefined" img-format="TIF" />
<img he="7" wi="22" file="00000034.TIF" img-content="undefined" img-format="TIF" />
01010101
00001000
0101
<img he="7" wi="22" file="00000035.TIF" img-content="undefined" img-format="TIF" />
01010101
01000000
0101
<img he="7" wi="24" file="00000036.TIF" img-content="undefined" img-format="TIF" />
01010101
01000100
0101
<img he="7" wi="24" file="00000037.TIF" img-content="undefined" img-format="TIF" />
01010101
00101000
0101
<img he="7" wi="24" file="00000038.TIF" img-content="undefined" img-format="TIF" />
01010101
01110000
0101
<img he="7" wi="25" file="00000039.TIF" img-content="undefined" img-format="TIF" />
01010101
01001001
Только в информационных
<img he="7" wi="11" file="00000040.TIF" img-content="undefined" img-format="TIF" />
01100011
01010101
00110110
11110000
01010101
10100101
X
0101
11000110
01010101
10010011
<img he="7" wi="12" file="00000041.TIF" img-content="undefined" img-format="TIF" />
01101100
01010101
00111001
<img he="7" wi="13" file="00000042.TIF" img-content="undefined" img-format="TIF" />
10100101
01010101
11110000
<img he="7" wi="13" file="00000043.TIF" img-content="undefined" img-format="TIF" />
10011100
01010101
11001001
<img he="7" wi="13" file="00000044.TIF" img-content="undefined" img-format="TIF" />
И в контрольных, и в информационных
<img he="7" wi="11" file="00000045.TIF" img-content="undefined" img-format="TIF" />
<img he="7" wi="22" file="00000046.TIF" img-content="undefined" img-format="TIF" />
01010101
11100101
<img he="7" wi="12" file="00000047.TIF" img-content="undefined" img-format="TIF" />
<img he="7" wi="22" file="00000048.TIF" img-content="undefined" img-format="TIF" />
01010101
01101011
<img he="7" wi="12" file="00000049.TIF" img-content="undefined" img-format="TIF" />
<img he="7" wi="21" file="00000050.TIF" img-content="undefined" img-format="TIF" />
01010101
11011010
<img he="7" wi="13" file="00000051.TIF" img-content="undefined" img-format="TIF" />
<img he="7" wi="22" file="00000052.TIF" img-content="undefined" img-format="TIF" />
01010101
11101111
<img he="7" wi="11" file="00000053.TIF" img-content="undefined" img-format="TIF" />
<img he="7" wi="23" file="00000054.TIF" img-content="undefined" img-format="TIF" />
01010101
10111110
<img he="7" wi="11" file="00000055.TIF" img-content="undefined" img-format="TIF" />
<img he="7" wi="23" file="00000056.TIF" img-content="undefined" img-format="TIF" />
01010101
00101110
Предлагаемый способ кодирования позволяет:
корректировать ошибку заданной кратности;
обнаруживать максимальное количество ошибок (за исключением ошибочных кодовых наборов, трансформируемых в разрешенные кодовые наборы);
сигнализировать о неисправности устройства памяти при возникновении некорректируемой ошибки.
2. Способ защиты преобразователей информации
2.1. Коррекция ошибок при выполнении операции сложения
В настоящее время корректирующие коды широко используются для обеспечения отказоустойчивости устройств хранения и передачи информации, в то же время недостаточно разработаны методы использования корректирующих кодов для обеспечения отказоустойчивости преобразователей информации.
В связи с этим возникает необходимость адаптации предлагаемого метода кодирования для исправления ошибок при выполнении арифметических и логических операций.
В данном случае, для устройства умножения, необходимо обеспечить коррекцию ошибок при выполнении операции сложения и сдвига, т.е. обеспечить преобразование исходных контрольных разрядов в соответствии с выполняемой операцией.
Так, при выполнении операции сложения, контрольные разряды суммы формируются по следующему правилу:
1) Контрольные разряды слагаемых суммируются по mod2 (формируется предварительные контрольные разряды суммы);
2) Определяются разряды переносов(формируется вектор переносов);
3) Вектор переносов кодируется по правилам используемого метода кодирования (формируется поправка к предварительным контрольным разрядам суммы);
4) Осуществляется сложение по mod2 одноименных значений разрядов предварительных контрольных разрядов суммы с значением поправки).
Пример.
Допустим необходимо выполнить операцию сложения для двух слагаемых: А=0011 и В=0110, при кодировании их предлагаемым методом получим кодовые наборы:
K
K
А=0011 01101100, В=0110 00111001.
При выполнении арифметической операции сложения информационных разрядов и сложения по mod2 контрольных разрядов даст результат:
В этом случае значение контрольных разрядов 01010101 для результата 1001 суммы информационных разрядов не соответствует правильному значению контрольных разрядов 10010011, т.е. для полученного правильного значения контрольных разрядов необходимо сформировать поправку, учитывающую переносы, возникающие при арифметическом сложении информационных разрядов.
Для четырехразрядных слагаемых вектор переносов может быть получен на основе логических выражений:
1
П
где: С  -значение переноса из младшего полубайта информации;  - значение информационного разряда, нижний индекс i- указывает номер слагаемого, верхний индекс j-указывает номер разряда слагаемого, С4 - значения старших разрядов младшего полубайта информации.
На основе полученного выражения, для рассматриваемого примера (без учета переноса из младшего полубайта информации) вектор переносов равен:
4
3
2
C=1, C=1, C=0,
Кодирование вектора переносов предлагаемым методом даст значение поправки:  11000110.
Сложение значения поправки с полученным значением контрольных разрядов суммы даст правильное значение контрольных разрядов:
который соответствует правильному значению контрольных разрядов для рассматриваемой арифметической суммы слагаемых.
Полученные в результате сложения значения суммы информационных и соответствующие ей значения контрольных разрядов, позволяют корректировать ошибки, возникающие в кодовом наборе.
2.2. Коррекция ошибок при выполнении операции сдвига
Рассмотрим основные положения способа контроля операции сдвига на примере кодового набора: 0111 00001111
Пусть требуется провести операцию сдвига вправо на один разряд, в результате получим кодовый набор: 0011.
Информационная матрица полученного результата имеет вид:
правые и левые диагональные проверки данной матрицы дадут результата: 01101100, который отличается от исходного набора контрольных разрядов 00001111.
4
4
4
1
4
1
i
i
В связи с этим возникает необходимость формирования поправки к исходному кодовому набору, позволяющей получить набор контрольных разрядов соответствующий значению информационных разрядов, полученных при сдвиге вправо. С этой целью построим матрицу поправок при сдвиге вправо, разряды которой формируются следующим образом: r=0⊕у; (0 если в старший разряд не переносится единица из старшего полубайта информации, в противном случае r=y ⊕у, где у  значение младшего разряда старшего полубайта информации.
Без учета значения младшего разряда старшего полубайта информации, для рассматриваемого примера вектор поправки имеет значение:
4
3
2
1
r=0, r=1, r=0, r=0.
В этом случае матрица поправок при сдвиге вправо имеет вид:
При кодировании данной матрицы предлагаемым методом получим значение поправки: 01100011.
Сложение по mod2 исходного значения контрольных разрядов с значением поправки даст правильное значение контрольных разрядов при сдвиге информационных разрядов вправо:
2.3. Выполнение операции умножения над кодированными числами
Допусти необходимо выполнить умножение двоичных чисел: А=0111; В=0101, (определение знака умножения, коррекция результата умножения для рассматриваемого примера не рассматривается и проводится известным способом).
K
K
В этом случае, кодовые наборы множимого А и множителя В имеют вид:
K
K
А=0111 0000 1111; В=0101 01010101.
Алгоритм выполнения операции умножения включает следующие этапы:
K1
K2
1
2
K1
K2
K1
1
K2
2
1) Так как младший информационный разряд множителя равен единице, то в регистр сумматора записывается множимое и сдвигается влево на один разряд (считаем, что из старшего полубайта информация не поступает). Полученный результат представим в виде информационной части разрядов: A и А и контрольной части разрядов K и К соответственно для A и А. Используя логические выражения 17, получим вектор поправки для первой части информационных разрядов A: 0100, кодирование которого предлагаемым методом даст значение поправки: 0110 0011. В результате сложения по mod2 исходных значений контрольных разрядов и поправки получим значение контрольных разрядов K. В результате кодирования второй части информационных разрядов А получим значение к контрольных разрядов К. Полученные результаты представим виде:
2) Так как второй информационный разряд множителя равен нулю, то проводится сдвиг информационных разрядов, поученных на первом этапе и формирование контрольных разрядов аналогичным образом. В результате получим:
3) Так как третий разряд множителя равен единице, то к значениям информационных разрядов, полученных на втором этапе прибавляем по mod2 значение множимого, формируем вектор переноса в соответствии с логическим выражением 16 и прибавляем его значение к полученному результату (считаем, что перенос из младшего полубайта информации равен нулю) и, кроме этого, кодируем вектор переноса предлагаемым методом и получаем значение поправки, которое прибавляется по mod2 к результату суммы контрольных разрядов множимого и контрольных разрядов для первой части информационных разрядов. В результате имеем:
4
3
2
-вектор переносов: C=1, С=1, С=1, ;
-значение поправки: 1001 1100.
Соответственно имеем значение информационных разрядов:
Значение контрольных разрядов равно:
Осуществив сдвиг информации и сформировав поправку для сдвига поучим результат третьего этапа:
4) Так как четвертый разряд множителя равен нулю, проводим очередной сдвиг информации с формированием поправок к контрольным разрядам. Окончательно получим:
Таким образом, на каждом этапе имеем значения информационных разрядов и соответствующие им значения контрольных разрядов, что позволяет вести коррекцию ошибок на каждом этапе вычислений.
ИСТОЧНИКИ ИНФОРМАЦИИ
1. Щербаков Н.С. Достоверность работы цифровых устройств. М: Машиностроение, 1989, с.82, рис.39., 224 с.
2. Отказоустойчивое оперативное запоминающее устройство./ Патент на изобретение №2211492 от 27.08. 2003 г. Авторы: Павлов А.А., Шандриков А.В., Романенко Ю.А..