Изобретение относится к вычислительной технике. Известно устройство хранения и передачи данных с исправлением ошибок в байте информации и обнаружением ошибок в байтах информации (Патент на изобретение № 2448359 «Устройство хранения и передачи данных с исправлением ошибок в байте информации и обнаружением ошибок в байтах информации» / Борисов К.Ю., Малофеев Ю.Г., Осипенко П.Н., Павлов А.А., Павлов П.А., Павлов А.А., Хоруженко О.В., Царьков А.Н., от 05.04.2011 г.), содержащие узел памяти, входной блок кодирования, выходной блок кодирования, блок вычисления синдрома ошибки, дешифратор, коммутатор, блок коммутаторов, корректор, блок корректоров, отличающаяся тем, что оно дополнительно содержит первый блок элементов ИЛИ, второй блок элементов ИЛИ, инвертор, элемент И, блок элементов И, вход установки устройства в нулевое состояние, вход записи, вход считывания, адресные входы, двадцати четырех разрядные информационные входы, вход синхронизации, информационные выходы, выход сигнала «ошибка», вход установки в нулевое состояние, вход записи, вход считывания, адресные входы, подключены соответственно к первому, второму, третьему и четвертому входам узла памяти, вход синхронизации подключен к пятому входу узла памяти и к первому входу блока элементов И, информационные входы подключены к шестым входам узла памяти и к входам входного блока кодирования который формирует значения контрольных разрядов r1, r2, r3, r4, r5, r6, r7, r8 путем сложения по модулю 2 информационных символов x1 x2 х3, z1 z2 z3, a1 а2 а3, c1 с2 с3, e1 е2 е3, f1 f2 f3, g1 g2 g3, h1 h2 h3, поступающих на входы входного блока кодирования, в соответствии с правилом: r1=x1⊕z1⊕a1⊕c1⊕e1⊕f1⊕g1⊕h1; r2=x2⊕z2⊕a2⊕c2⊕e2⊕f2⊕g2⊕h2; r3=x3⊕z3⊕a3⊕c3⊕e3⊕f3⊕g3⊕h3; r4=x1⊕z3⊕a2⊕a3⊕c2⊕e1⊕e3⊕f1⊕f2⊕g1⊕g2⊕g3; r5=x2⊕x3⊕z1⊕а3⊕c1⊕c3⊕e1⊕e2⊕f2⊕g1⊕g2⊕g3; r6=x3⊕z2⊕z3⊕a1⊕c1⊕c2⊕e2⊕f1⊕f3⊕g1⊕g2⊕g3; r7=x3⊕z3⊕a1⊕a3⊕c2⊕e1⊕f2⊕g1⊕g2⊕g3; r8=x1⊕x2⊕z2⊕a2⊕а3⊕с3⊕е3⊕f2⊕f3⊕g1⊕g2⊕g3, которые поступают на седьмые входы узла памяти, информационные выходы узла памяти подключены соответственно к первым входам корректора, блока корректоров и к входам выходного блока кодирования, который формирует значения проверочных контрольных разрядов r1П, r2П, r3П, r4П, r5П, r6П r7П r8П путем сложения по модулю 2 информационных символов x1П x2П x3П, z1П z2П z3П, a1П a2П a3П, c1П c2П c3П, e1П e2П e3П, f1П f2П f3П, g1П g2П g3П, h1П h2П h3П, поступающих на входы входного блока кодирования с информационных выходов узла памяти, в соответствии с правилом: r1П=x1П⊕z1П⊕a1П⊕c1П⊕e1П⊕f1П⊕g1П⊕h1П; r2П=x2П⊕z2П⊕a2П⊕c2П⊕e1П⊕f1П⊕g1П⊕h1П; r3П=x3П⊕z3П⊕a3П⊕c3П⊕e3П⊕f3П⊕g3П⊕h3П; r4П=x1П⊕z3П⊕a2П⊕а3П⊕с2П⊕e1П⊕е3П⊕f1П⊕f2П⊕g1П⊕g2П⊕g3П; r5П=х2П⊕х3П⊕z1П⊕а3П⊕c1П⊕с3П⊕е1П⊕е2П⊕f2П⊕g1П⊕g2П⊕g3П; r6П=х3П⊕z2П⊕z3П⊕a1П⊕c1П⊕с2П⊕е2П⊕f1П⊕f3П⊕g1П⊕g2П⊕g3П; r7П=x3П⊕z3П⊕a1П⊕а3П⊕c2П⊕e1П⊕f2П⊕g1П⊕g2П⊕g3П; r8П=x1П⊕x2П⊕z2П⊕а2П⊕а3П⊕с3П⊕е3П⊕f2П⊕f3П⊕g1П⊕g2П⊕g3П, выходы выходного блока кодирования подключены к первым входам блока вычисления синдрома ошибки к вторым входам которого, подключены выходы контрольных разрядов узла памяти, первые выходы блока вычисления синдрома ошибки подключены к первым входам дешифратора, к первым входам коммутатора, к входам первого блока элементов ИЛИ и к первым входам блока коммутаторов, вторые выходы блока вычисления синдрома ошибки подключены к вторым входам дешифратора и к вторым входам первого блока элементов ИЛИ, выходы дешифратора подключены к входам второго блока элементов ИЛИ, при этом первый выход дешифратора подключен к второму входу коммутатора, а вторые выходы подключены к вторым входам блока коммутаторов, выход второго блока элементов ИЛИ через инвертор подключен к первому входу элемента И, второй вход которого подключен к выходу первого блока элементов ИЛИ, выход элемента И является выходом сигнала «ошибка», выходы коммутатора подключены к вторым входам корректора, выходы блока коммутаторов подключены к вторым входам блока корректоров, выходы корректора и блока корректоров подключены к вторым входам блока элементов И, выходы которого являются информационными выходами устройства.
Недостатком устройства является ограниченная область его применения, так как оно не позволяет корректировать ошибки в устройствах обработки информации.
Наиболее близким по техническому решению является процессор повышенной достоверности функционирования (Патент на изобретение № 2439667 «Процессор повышенной достоверности функционирования», авторы: Бобков С.Г., Осипенко П.Н., Павлов А.А., Павлов П.А., Павлов А.А., Хоруженко О.В., Царьков А.Н., от 08. 07. 2010 г.), содержащий управляющий узел, операционный узел, первые входы управляющего узла является входами процессора, вторая группа входов управляющего узла подключена к первым выходам операционного узла, выходы управляющего узла подключены к первым входам операционного узла, вторые входы которого являются входами данных, а вторые выходы являются выходами данных, отличающееся тем, что он дополнительно содержит дешифратор кода операции, генератор тактовых импульсов, блок управления, первый коммутатор, второй коммутатор, третий коммутатор, счетчик команд, счетчик сдвигов, регистр адреса, регистр числа, регистр сумматора, регистр дополнительный, регистр дополнительного кода, сумматор, блок контроля, управляющую память, блок логических операций и контроля, включающий блок логического сложения по mod2, блок инвертирования, блок логического сложения, блок логического умножения, функциональную схему формирования поправки при выполнении арифметических операций, функциональную схему формирования поправки при выполнении операции ИЛИ, функциональную схему формирования поправки при выполнении операции И, функциональную схему формирования поправки при выполнении операции сдвига, элемент задержки, первый блок элементов неравнозначности, второй блок элементов неравнозначности, третий блок элементов неравнозначности, первый блок элементов ИЛИ, второй блок элементов ИЛИ, блок кодирования, первый блок элементов И, второй блок элементов И, элемент И, выходы устройства обмена подключены к первому входу блока управления и к первому входу второго коммутатора, вторые входы которого подключены к выходам запоминающего устройства, первые выходы второго коммутатора поступают на вход устройства обмена, вторые выходы поступают на вход запоминающего устройства, а третьи выходы подключены соответственно к первым входам счетчика команд, счетчика сдвигов, регистра числа, регистра сумматора, регистра дополнительного, регистра дополнительного кода, к входам дешифратора кода операции, к вторым входам блока управления, к первому входу первого коммутатора, первый выход которого подключен к первому входу регистра адреса, третий вход блока управления подключен к выходам дешифратора кода операции а четвертый вход подключен к выходам генератора тактовых импульсов, а пятый вход подключен к первому выходу управляющей памяти, первый выход блока управления подключен к входу управляющей памяти, первые выходы которой подключены к первым входам блока контроля, второй выход блока управления подключен к второму входу первого коммутатора, третьи и четвертые входы которого подключены соответственно к выходам регистра адреса и счетчика команд, а с второго выхода снимается адрес ячейки памяти запоминающего устройства, третий выход блока управления подключен соответственно к вторым входам блока контроля, к вторым входам счетчика команд, счетчика сдвигов, регистра адреса, регистра числа, регистра сумматора, регистра дополнительного, регистра дополнительного кода, к первой группе входов третьего коммутатора, к третьей группе входов второго коммутатора, к первой группе входов блока логических операций и контроля и является выходом синхроимпульсов, второй, третий, четвертый пятый выходы управляющей памяти подключены к третьим и четвертым пятым и шестым входам блока контроля, при этом второй выход подключен к четвертому входу второго коммутатора, а третьи, четвертые и пятые выходы блока управляющей памяти подключены соответственно к третьим, четвертым пятым и шестым входам счетчика команд, счетчика сдвигов, регистра адреса, регистра числа, регистра сумматора, регистра дополнительного, регистра дополнительного кода, к первой группе входов третьего коммутатора, к третьей группе входов второго коммутатора, к первой группе входов блока логических операций и контроля и являются выходам управляющих сигналов, сигналов считывания, сигналов записи, сигналов установки устройств в нулевое состояние, шестой выход блока управляющей памяти подключен к пятому входу блока управления, выходы регистра числа, регистра сумматора, регистра дополнительного, регистра дополнительного кода подключены к вторым входам третьего коммутатора и к пятым входам второго коммутатора, выход счетчика сдвигов подключен к шестым входам второго коммутатора, первые выходы третьего коммутатора подключены соответственно к входам сумматора и к вторым входам блока логических операций и контроля, выходы сумматора подключены к третьим входам блока логических операций и контроля, вторые, третьи, четвертые, пятые, шестые, седьмые и восьмые выходы третьего коммутатора подключены к четвертым, пятым, шестым, седьмым, восьмым, девятым и десятым входам блока логических операции и контроля, выходы которого подключены к седьмым, восьмым и девятым входам второго коммутатора.
Недостатком устройства является недостаточная отказоустойчивость процессора, так как не обеспечивается коррекция возникающих ошибок.
Задачей изобретения является коррекция ошибок в байте информации, возникающих в процессоре ЭВМ при выполнении арифметических и логических операций из-за отсутствия или возникновения лишних переносов.
Сущность изобретения заключается в том, что процессор, содержащий, управляющий узел, операционный узел, дешифратор кода операции, генератор тактовых импульсов, блок управления, первый коммутатор, второй коммутатор, третий коммутатор, счетчик команд, счетчик сдвигов, регистр адреса, регистр числа, регистр сумматора, регистр дополнительный, регистр дополнительного кода, сумматор, блок логических операций и контроля, включающий блок логического сложения по mod2, блок инвертирования, блок логического сложения, блок логического умножения, функциональную схему формирования поправки при выполнении арифметических операций, функциональную схему формирования поправки при выполнении операции ИЛИ, функциональную схему формирования поправки при выполнении операции И, функциональную схему формирования поправки при выполнении операции сдвига, элемент задержки, первый блок элементов неравнозначности, второй блок элементов неравнозначности, третий блок элементов неравнозначности, первый блок элементов ИЛИ, второй блок элементов ИЛИ, блок кодирования, первый блок элементов И, второй блок элементов И, элемент И, первый, вторые, третьи, четвертые, пятые входы блока логических операций и контроля, первые, вторые, третьи выходы блока логических операций и контроля, управляющую память, входы от устройства обмена, входы данных из запоминающего устройства, выход на устройство обмена, выходы данных на запоминающее устройство, выход адрес запоминающего устройства, выходы синхроимпульсов, выходы для сигналов управления, выходы для команды считывание, выходы для сигналов записи, выходы для сигналов установки в нулевое состояние, выходы устройства обмена подключены к первому входу блока управления и к первому входу второго коммутатора, вторые входы которого подключены к выходам запоминающего устройства, первые выходы второго коммутатора поступают на вход устройства обмена, вторые выходы поступают на вход запоминающего устройства, а третьи выходы подключены соответственно к первым входам счетчика команд, счетчика сдвигов, регистра числа, регистра сумматора, регистра дополнительного, регистра дополнительного кода, к входам дешифратора кода операции, к вторым входам блока управления, к первому входу первого коммутатора, первый выход которого подключен к первому входу регистра адреса, третий вход блока управления подключен к выходам дешифратора кода операции, а четвертый вход подключен к выходам генератора тактовых импульсов, а пятый вход подключен к первому выходу управляющей памяти, первый выход блока управления подключен к входу управляющей памяти, второй выход блока управления подключен к второму входу первого коммутатора, третьи и четвертые входы которого подключены соответственно к выходам регистра адреса и счетчика команд, а с второго выхода снимается адрес ячейки памяти запоминающего устройства, третий выход блока управления подключен к вторым входам счетчика команд, счетчика сдвигов, регистра адреса, регистра числа, регистра сумматора, регистра дополнительного, регистра дополнительного кода, к первой группе входов третьего коммутатора, к третьей группе входов второго коммутатора, к первому входу блока логических операций и контроля и является входом синхроимпульсов, вторые, третьи, четвертые и пятые выходы блока управляющей памяти подключены соответственно к третьим, четвертым пятым и шестым входам счетчика команд, счетчика сдвигов, регистра адреса, регистра числа, регистра сумматора, регистра дополнительного, регистра дополнительного кода, к первой группе входов третьего коммутатора, к третьей группе входов второго коммутатора, к вторым входам блока логических операций и контроля и являются выходами управляющих сигналов, сигналов считывания, сигналов записи, сигналов установки устройств в нулевое состояние, выходы регистра числа, регистра сумматора, регистра дополнительного, регистра дополнительного кода подключены к вторым входам третьего коммутатора и к четвертым входам второго коммутатора, выход счетчика сдвигов подключен к пятым входам второго коммутатора, первые выходы третьего коммутатора подключены соответственно к входам сумматора и к третьим входам блока логических операций и контроля, выходы сумматора подключены к четвертым входам блока логических операций и контроля, вторые выходы третьего коммутатора подключены к пятым входам блока логических операции и контроля, отличающееся тем, что он дополнительно содержит дешифратор, блок элементов ИЛИ, блок элементов И, корректор, причем первые выходы блока логических операций и контроля подключены к первым входам корректора, вторые выходы подключены к шестым входам второго коммутатора, третьи выходы блока логических операций и контроля подключены к первым входам блока элементов И и к входам дешифратора, первая группа выходов которого подключена к вторым входам блока элементов И, третий вход которого подключен к третьему выходу блока управления, а выход подключен к второму входу корректора, выходы корректора подключены к седьмым входам второго коммутатора, вторая группа выходов дешифратора подключена к входам блока элементов ИЛИ, выход которого подключен к восьмому входу второго коммутатора.
Процессор (фиг. 1) содержит управляющий узел 1, операционный узел 2, дешифратор 3 кода операции, генератор 4 тактовых импульсов, блок 5 управления, первый коммутатор 6, второй коммутатор 7, третий коммутатор 8, счетчик 9 команд, счетчик 10 сдвигов, регистр 11 адреса, регистр 12 числа, регистр 13 сумматора, регистр 14 дополнительный, регистр 15 дополнительного кода, сумматор 16, блок 17 логических операций и контроля, первый 18, второй 19, третий 20, четвертый 21, пятый 22 входы блока 17 логических операций и контроля, первый 23, второй 24, третий 25 выходы блока 17 логических операций и контроля, управляющая память 26, входы 27 устройства обмена, входы 28 данные из запоминающего устройства, выход 29 на устройство обмена, выходы 30 данные на запоминающее устройство, выход 31 адрес запоминающего устройства, выходы 32 синхроимпульсов, выходы 33 для сигналов управления, выходы 34 для команды считывание, выходы 35 для сигналов записи, выходы 36 для сигналов установки в нулевое состояние, дешифратор 37, блок 38 элементов ИЛИ, блок 39 элементов И, корректор 40.
Блок 17 логических операций и контроля (фиг. 2) содержит блок 41 сложения по mod2, блок 42 логического сложения, блок 43 логического умножения, функциональную схему 44 формирования поправки при выполнении арифметических операций, функциональную схему 45 формирования поправки при выполнении операции ИЛИ, функциональную схему 46 формирования поправки при выполнении операции И, функциональную схему 47 формирования поправки при выполнении операции сдвига, элемент 48 задержки, первый блок 49 элементов неравнозначности, второй блок 50 элементов неравнозначности, третий блок 51 элементов неравнозначности, первый блок 52 элементов ИЛИ, второй блок 53 элементов ИЛИ, первый блок 54 кодирования, второй блок 55 кодирования, первый блок 56 элементов И, второй блок 57 элементов И.
Функциональная схема 44 формирования поправки при выполнении арифметических операций (фиг. 3) содержит первый элемент 58 И, второй элемент 59 И, третий элемент 60 И, четвертый элемент 61 И, пятый элемент 62 И, шестой элемент 63 И, первый элемент 64 ИЛИ, второй элемент 65 ИЛИ, третий элемент 66 ИЛИ, четвертый элемент 67 ИЛИ, пятый элемент 68 ИЛИ, шестой элемент 69 ИЛИ.
Функциональная схема 47 формирования поправки при выполнении операции сдвига.
Выходы 27 устройства обмена подключены к первому входу блока 5 управления и к первому входу второго коммутатора 7, вторые входы 28 которого подключены к выходам запоминающего устройства, первые выходы второго коммутатора 7 поступают на вход 29 устройства обмена, вторые выходы поступают на вход запоминающего устройства, а третьи выходы подключены соответственно к первым входам счетчика 9 команд, счетчика 10 сдвигов, регистра 12 числа, регистра 13 сумматора, регистра 14 дополнительного, регистра 15 дополнительного кода, к входам дешифратора 3 кода операции, к вторым входам блока 5 управления, к первому входу первого коммутатора 6, первый выход которого подключен к первому входу регистра 11 адреса, третий вход блока 5 управления подключен к выходам дешифратора 3 кода операции, а четвертый вход подключен к выходам генератора 4 тактовых импульсов, а пятый вход подключен к первому выходу управляющей памяти 26, первый выход блока 5 управления подключен к входу управляющей памяти 26, второй выход блока 5 управления подключен к второму входу первого коммутатора 6, третьи и четвертые входы которого подключены соответственно к выходам регистра 11 адреса и счетчика 9 команд, а с второго выхода 31 снимается адрес ячейки памяти запоминающего устройства, третий выход блока 5 управления подключен к вторым входам счетчика 9 команд, счетчика 10 сдвигов, регистра 11 адреса, регистра 12 числа, регистра 13 сумматора, регистра 14 дополнительного, регистра 15 дополнительного кода, к первой группе входов третьего коммутатора 8, к третьей группе входов второго коммутатора 7, к первому входу 18 блока 17 логических операций и контроля и является входом синхроимпульсов, вторые, третьи, четвертые и пятые выходы блока управляющей памяти подключены соответственно к третьим, четвертым пятым и шестым входам счетчика 9 команд, счетчика 10 сдвигов, регистра 11 адреса, регистра 12 числа, регистра 13 сумматора, регистра 14 дополнительного, регистра 15 дополнительного кода, к первой группе входов третьего коммутатора 8, к третьей группе входов второго коммутатора 7, к вторым входам 19 блока 17 логических операций и контроля и являются выходами управляющих сигналов, сигналов считывания, сигналов записи, сигналов установки устройств в нулевое состояние, выходы регистра 12 числа, регистра 13 сумматора, регистра 14 дополнительного, регистра 15 дополнительного кода подключены к вторым входам третьего коммутатора 8 и к четвертым входам второго коммутатора 7, выход счетчика 10 сдвигов подключен к пятым входам второго коммутатора 7, первые выходы третьего коммутатора 8 подключены соответственно к входам сумматора 16 и к третьим входам 20 блока 17 логических операций и контроля, выходы сумматора 16 подключены к четвертым входам 21 блока 17 логических операций и контроля, вторые выходы третьего коммутатора 8 подключены к пятым входам 22 блока 17 логических операции и контроля, отличающееся тем, что он дополнительно содержит дешифратор 37, блок 38 элементов ИЛИ, блок 39 элементов И, корректор 40, причем первые выходы блока 17 логических операций и контроля подключены к первым входам корректора 40, вторые выходы подключены к шестым входам второго коммутатора 7, третьи выходы блока 17 логических операций и контроля подключены к первым входам блока 30 элементов И и к входам дешифратора 37, первая группа выходов которого подключена к вторым входам блока 39 элементов И, третий вход которого подключен к третьему выходу блока 5 управления, а выход подключен к второму входу корректора 40, выходы корректора 40 подключены к седьмым входам второго коммутатора 7, вторая группа выходов дешифратора 37 подключена к входам блока 38 элементов ИЛИ, выход которого подключен к восьмому входу второго коммутатора 7.
Процессор предназначен для обработки информации, поступающей с оперативного запоминающего устройства на вход 28.
Для обнаружения и исправления ошибок в оперативном запоминающем устройстве используются коды с обнаружением и исправлением байтов ошибок (в этом случае, под байтом ошибок понимаются ошибки, кратность которых не превышает число разрядов b блока информации).
В этом случае имеем кодовый набор:
Значение контрольных разрядов позволяют сформировать значение синдрома ошибки при этом, первая часть контрольных разрядов определяет вектор ошибки (ошибочные разряды в блоке информации), а значение второй части контрольных разрядов предназначено для определения номер ошибочного блока (байта) информации.
Число байтов информации определяется по формуле: w=2b
Таким образом, кодовый набор передается в виде:
Результат сложения по mod2 переданных значений контрольных разрядов rif, rig и контрольных разрядов rifП, rigП сформированных относительно полученных информационных разрядов даст значение синдрома ошибки, включающего две части:
Значение синдрома ошибки Sf определяет вектор ошибки (ошибочные разряды в блоке информации), а значение синдрома ошибки Sg определяет номер ошибочного блока (байта) информации.
Стратегия декодирования заключается на следующих положениях:
1. Sf=0; Sg=0. Ошибок нет.
2. Sf=0; Sg≠0. Произошла ошибка в контрольных разрядах или не корректируемая ошибка в байтах информации.
3. Sf≠0; Sg≠0 (Sg=0). Произошла ошибка в информационных байтах (в одном байте- корректируемая, в двух - обнаруживаемая).
Для кода (32,8) значение второй части контрольных разрядов формируется проверками:
r1=x1⊕z1⊕a1⊕c1⊕e1⊕f1⊕g1⊕h1;
r2=x2⊕z2⊕а2⊕с2⊕е2⊕f2⊕g2⊕h2;
r3=х3⊕z3⊕а3⊕с3⊕е3⊕f3⊕g3⊕h3;
r4=x1⊕z3⊕а2⊕a3⊕c2⊕e1⊕e3⊕f1⊕f2⊕g1⊕g2⊕g3;
r5=x2⊕х3⊕z1⊕a3⊕c1⊕c3⊕e1⊕e2⊕f2⊕g1⊕g2⊕g3;
r6=х3⊕z2⊕z3⊕a1⊕c1⊕c2⊕e2⊕f1⊕f3⊕g1⊕g2⊕g3;
r7=х3⊕z3⊕a1⊕a3⊕c2⊕e1⊕f2⊕g1⊕g2⊕g3;
r8=x1⊕x2⊕z2⊕а2⊕а3⊕c3⊕e3⊕f2⊕f3⊕g1⊕g2⊕g3.
В табл. 1 представлены значения синдромов ошибок кода (32,8), исправляющего кратные ошибки в блоке информации и обнаруживающего ошибки в произвольных блоках информации.
Процессор включает в себя два основных устройства: управляющий узел 1 и операционный узел 2.
Управляющий узел 1 координирует действия узлов операционного узла 2 между собой и с другими устройствами ЭВМ, а также выполняет набор операций, включающих команды обращения к памяти. Он вырабатывает в определенной временной последовательности управляющие сигналы, под действием которых в узлах операционного узла 2 выполняются требуемые действия.
Каждое такое элементарное действие, выполняемое в операционном узле 2 в течение одного тактового периода, называется микрооперацией.
В определенные тактовые периоды одновременно могут выполняться несколько микроопераций. Такая совокупность одновременно выполняемых микроопераций называется микрокомандой, а весь набор микрокоманд, предназначенных для решения определенной задачи называется микропрограммой.
Общий временной интервал, в течение которого происходит выборка, хранение и преобразование одной команды в набор управляющих сигналов, называется циклом работы управляющего узла 1.
Таким образом, управляющий узел 1 осуществляет преобразование команды в соответствующий набор управляющих сигналов и обеспечивает:
чтение команды, находящейся в очередной ячейке памяти;
расшифровку кода операции (команды);
отыскание операндов (чисел) по указанному адресу, содержащемуся в команде;
обеспечить выдачу управляющих сигналов в операционный узел для выполнения над ними действий, указанных в коде операции команды.
В данном случае используется микропрограммный управляющий узел 1, в котором микрокоманды хранятся в управляющей памяти 19.
В этом случае, слова, отображающие команды хранятся в памяти в последовательно пронумерованных ячейках, что позволяет формировать адрес очередной команды, добавлением единицы к адресу предыдущей команды, при этом слово состоит из нескольких частей: например, кода операции, указывающего вид операции и адресов чисел, над которыми должна быть произведена соответствующая операция.
Дешифратор 3 кода операций по выбранной из оперативной памяти команде определяет номер требуемой микропрограммы в управляющей памяти 26.
Генератор 4 тактовых импульсов предназначен для формирования тактовых и синхронизирующих импульсов.
Счетчик 9 команд предназначен для формирования адреса ячейки памяти очередной команды, путем естественной выборки, т.е. прибавлением к его содержимому единицы.
Регистр 11 адреса предназначен для формирования адреса ячейки памяти при командах условного или безусловного перехода с возвратом.
Блок 5 управления предназначен для определения адреса очередной микрокоманды в управляющей памяти 20, формирования адреса очередной команды (управления работой первого коммутатора 6), координации работы (выдачи синхроимпульсов) устройств процессора 1.
Управляющая память 26 представляет собой постоянное запоминающее устройство и предназначена для выдачи (в зависимости от кода операции) выдачи управляющих сигналов (сигналов управления, сигналов считывания, сигналов записи, сигналов установки в нулевое состояние) на функциональные узлы процессора. При этом слово памяти содержит информационные разряды (для управляющих сигналов) и контрольные разряды, сформированные на основе предлагаемого метода кодирования.
Операционный узел 2 предназначен для выполнения арифметических и логических операций и включает в свой состав (фиг. 1) счетчик 10 сдвигов, регистр 12 числа, регистр 13 сумматора, регистр 14 дополнительный, регистр 15 дополнительного кода, сумматор 16, блок 17 логических операций и контроля.
Счетчик 10 сдвигов предназначен для подсчета количества сдвигов при выполнении операций умножения и деления, количества сдвигов промежуточных результатов и нормализации.
Регистр 11 адреса представляет собой регистр памяти и предназначен для хранения адресе очередной команды.
Регистр 12 числа представляет собой регистр памяти и предназначен для хранения операндов при выполнении арифметических и логических операций (хранения множимого, при выполнении операции умножения и делителя при выполнении операции деления).
Регистр 13 сумматора (аккумулятора) представляет собой регистр сдвига (вправо - при выполнении операции умножения и влево - при выполнении операции деления), и предназначен для хранения делимого старших разрядов результата умножения.
Заметим, что при выполнении операции деления, блоком 5 управления анализируется значение знакового разряда регистра 12 числа и регистра 13 сумматора.
Регистр 14 дополнительный представляет собой регистр сдвига (вправо - при выполнении операции умножения и влево - при выполнении операции деления), и предназначен для хранения множителя и младших разрядов результата умножения при выполнении операции умножения и результата деления при выполнении операции деления).
Заметим, что при выполнении операции умножения, блоком 5 управления анализируется значение младшего разряда регистра 14 дополнительного.
Регистр 15 дополнительного кода представляет собой регистр памяти и предназначен для хранения отрицательного числа в дополнительном коде (при выполнении операции вычитания и операции деления).
Блок 17 логических операций и контроля (фиг. 2) предназначен для обнаружения и коррекции ошибок, возникающих при выполнении арифметических и логических операций.
Сумматор 16 представляет собой параллельный п- разрядный сумматор и предназначен для выполнения операции сложения чисел, например, двух кодовых наборов:
В результате арифметического сложения информационных разрядов и сложения по mod2 значений контрольных получим результат:
Анализ полученного результата, позволяет сделать вывод, что значения контрольных не соответствуют результату суммы информационных разрядов.
Для формирования требуемого значения контрольных разрядов для к полученному значению контрольных разрядов прибавляется поправка, сформированная относительно функции переносов, путем кодирования ее рассматриваемым методом кодирования информации.
Функциональная схема 44 формирования поправки при выполнении арифметических операций (Фиг. 3) формирует функцию переносов относительно рассматриваемых слагаемых:
Для рассматриваемого примера имеем функцию переносов:
Значения разрядов функции переносов через первый блок 52 элементов ИЛИ поступают на вход первого блока 54 кодирования, с выходов которого снимается значения поправки к значениям контрольных разрядов при выполнении арифметических операций.
Для полученной функции переносов значение поправки равно:
В первом блоке 49 элементов неравнозначности осуществляется поразрядное сложение по mod2 значений контрольных разрядов слагаемых. Во втором блоке 50 элементов неравнозначности осуществляется поразрядное сложение результата суммы значений контрольных разрядов с значениями разрядов поправки. В результате имеем правильное значение контрольных разрядов для арифметической операции сложения. Для нашего примера получим значение контрольных разрядов:
Вторым блоком 55 кодирования осуществляется кодирование результата суммы слагаемых, поступающего с выходов сумматора 16.
Третьим блоком 51 неравнозначности осуществляется поразрядное сравнение значений контрольных разрядов сформированных относительно полученной арифметической суммы и сформированных на втором блоке 50 элементов неравнозначности. С выходов третьего блока 51 снимается значение синдрома ошибки.
При сдвиге вправо, функциональная схема 47 формирования поправки при выполнении операции сдвига формирует функцию сдвига на основе исходных значений информационных разрядов следующим образом:
где z1 - значение сигнала переноса из другого регистра, например, в старший разряд регистра дополнительного из младшего разряда регистра сумматора при выполнении операции умножения.
Значение разрядов функции сдвигов через первый блок 52 элементов ИЛИ поступают на вход первого блока 54 кодирования, с входов которого снимается значение поправки к контрольным разрядам при сдвиге вправо.
Во втором блоке 50 элементов неравнозначности осуществляется поразрядное сложение значений поправки с значениями контрольных разрядов сдвигаемой информации.
Одновременно результаты сдвига информационных разрядов, через блок 52 элементов ИЛИ поступают на вход второго блока 54 кодирования. Результаты значений контрольных разрядов сформированных на втором блоке 50 элементов неравнозначности и поступающих с выходов второго блока 55 кодирования поразрядно сравниваются третьим блоком 51 элементов неравнозначности, с выходов которого снимается значение синдрома ошибки.
Например, при сдвиге вправо и отсутствии переноса из другого регистра кодового набора:
При кодировании данного набора с помощью предложенного метода первым блоком 54 кодирования значение поправки составит Р=110 10111. Сложение по mod2 вторым блоком 50 элементов неравнозначности исходного значения контрольных разрядов и значения поправки приведет к правильному значению контрольных разрядов при сдвиге информационных разрядов вправо:
где SП - результат, полученный при сдвиге исходного кодового набора вправо.
Значения символов поправки при сдвиге влево формируются на основе исходного значения информационных разрядов следующим образом:
где z1 - значение сигнала переноса старшего разряда одного регистра в младший разряд регистра сдвига.
Формирование синдрома ошибки при сдвиге влево осуществляется аналогичным образом.
При выполнении операции логического сложения, значение вектора для вычисления поправки к контрольным разрядам осуществляется схемой 46 формирования поправки при выполнении операции ИЛИ путем выполнения операции И относительно одноименных разрядов слагаемых и кодирования полученного результата рассматриваемым методом..
Так, например, при выполнении операции ИЛИ относительно информационных разрядов блоком 42 элементов ИЛИ и сложения по mod2 контрольных разрядов первым блоком 49 элементов неравнозначности (фиг. 2) чисел А и В имеем результат:
Функциональную схему 45 формирования поправки при выполнении операции ИЛИ выполняет операцию И относительно информационных разрядов даст значение вектора для вычисления поправки:
В этом случае первый блок 54 кодирования сформирует значение поправки: Р=10000010.
В результате сложения по mod2 вторым блоком 50 элементов неравнозначности значения поправки и значений контрольных разрядов, поступающих с первого блока 49 элементов неравнозначности, получим результат: 10010100, т.е. имеем правильное значение контрольных разрядов для операции ИЛИ.
Результаты значений контрольных разрядов сформированных на втором блоке 50 элементов неравнозначности и поступающих с выходов второго блока 55 кодирования поразрядно сравниваются третьим блоком 51 элементов неравнозначности, с выходов которого снимается значение синдрома ошибки.
Аналогичным образом формируется поправка при выполнении логического умножения, только при формировании вектора поправки схемой 46 формирования поправки при выполнении операции И, реализуется поразрядная операция ИЛИ относительно одноименных разрядов множимого и множителя.
Для операций логического сложения по mod2 блоком 41 сложения по mod2 формирование поправки к контрольным разрядам не требуется.
Так, например, при выполнении операции сложения по mod2 информационных разрядов блоком 41 сложения по mod2 и контрольных разрядов первым блоком 49 элементов неравнозначности (фиг. 2) чисел А и В имеем результат:
Значения контрольных разрядов, сформированные вторым блоком 55 кодирования относительно информационных разрядов, полученных при выполнении арифметических и логических операций, поразрядно сравниваются третьим блоком 51 элементов неравнозначности с переданными значениями контрольными разрядами с учетом поправки.
При отсутствии ошибок на его выходах имеем нулевое значение сигналов.
Работа процессора начинается с приходом сигнала "Пуск" по входной группе 27 входов устройства обмена процессора с периферийными блоками. По этой команде блок 5 выдает команду на считывание с управляющей памяти 26 содержимого первой ячейки памяти.
В первой ячейке памяти расположена команда "Сброс системы", которая устанавливает в исходное состояние регистры и блоки процессора,
В счетчик 9 команд записывается "1", устройство управления 1 выдает микрокоманды в следующей последовательности:
1) на первом такте сигналы микрокоманды поступает на вход считывания счетчика 9 команд и на вход записи регистра 11 адреса, при этом содержимое счетчика 9 команд пересылается в регистр 11 адреса (или через первый коммутатор 6 на адресные входы запоминающего устройства при естественной выборке команд непосредственно со счетчика 9 команд);
2) на втором такте к содержимому счетчика 9 команд прибавляется единица - подготавливается адрес следующей команды;
3) на третьем такте сигналы микрокоманды поступают на вход считывания регистра 11 адреса и на вход считывания содержимого ячейки памяти запоминающего устройства по указанному адресу. При этом команда, хранящаяся в первой ячейке памяти, записывается в регистр 12 числа;
4) на четвертом такте сигналы микрокоманды подаются на вход считывания регистра 12 числа, вход второго коммутатора 7 и на вход дешифратора 3 кода операции, где раскодируются, после чего управляющий узел 1 переходит ко второму этапу работы.
Для примера рассмотрим порядок исполнения одной из команд, записанной в регистре 12 числа после выполнения первых четырех тактов.
Пусть в поле кода операции команды содержимого регистра 12 числа записана команда сложения содержимого регистра 13 сумматора с числом расположенным запоминающем устройстве по адресу, указанному в поле адреса регистра 12 числа. (при использовании одноадресной команды).
Управляющий узел 1 при этом выдает следующие микрокоманды:
5) на пятом такте сигналы микрокоманды подаются на вход считывания регистра 12 числа, на вход второго коммутатора 7, первого коммутатора 6 и на вход записи регистра 11 адреса (адрес, хранящийся в регистре 12 числа записывается в регистр 11 адреса, содержимое регистра 12 числа обнуляется);
6) на шестом такте сигналы микрокоманды подаются на вход считывания регистра 11 адреса, на вход первого коммутатора 6, на вход считывания запоминающего устройства и на вход записи регистра 12 числа (из запоминающего устройства в регистр 12 числа записывается второе слагаемое (считаем, что первое слагаемое уже находится в регистре 13 сумматора);
7) на седьмом такте сигналы микрокоманды подаются на вход считывания регистра 12 числа и регистра 13 сумматора, при этом арифметико-логическое устройство осуществляет операцию сложения и запись результата сложения в регистр 13 сумматора следующим образом.
Результат суммы с выхода сумматора 16, поступает на блок 17 логических операций и контроля (фиг. 2), далее устройство работает в соответствии с примером выполнения арифметических операций, приведенном выше.
В результате арифметического сложения информационных разрядов и сложения по mod2 значений контрольных и значений поправки получим результат:
При этом сформированные значения контрольных разрядов относительно полученной операции сравниваются с переданными значениями контрольных разрядов третьим блоком 51 элементов неравнозначности (фиг. 2). При отсутствии ошибки на его выходах имеем нулевые значения сигналов.
При возникновении ошибки в результате суммирования, например в третьем разряде суммы блока информации - X, получим результат:
В этом случае на выходе третьего блока 51 элементов неравнозначности (фиг. 2) получим значение синдрома ошибки:
Совокупность значений разрядов синдрома ошибки определяет адрес байта информации, имеющего ошибку, при этом значения первых трех разрядов синдрома ошибки являются вектором ошибки и определяют ошибочный разряд в байте информации. В соответствии с таблицей 1, полученный синдром ошибки указывает на ошибку в третьем разряде байта информации - Х.
Значения вектора ошибки поступают на первые входы блока 39 элементов И. С выхода дешифратора 37 на второй вход блока 39 элементов И поступает сигнал, указывающий адрес байта информации, имеющего ошибку. На первые входы корректора 40 с выходов 23 блока 17 логических операций и контроля поступают значения информационных разрядов, а на вторые входы корректора 40, при поступлении синхроимпульса на третьи входы блока 39 элементов И, поступают значения вектора ошибки. В корректоре 40 осуществляется коррекция ошибочных информационных разрядов, путем поразрядного сложения по mod2 значений вектора ошибки с информационными разрядами байта информации, имеющего ошибку.
С выходов корректора 40, значения информационных разрядов и значения контрольных разрядов с выходов 24 блока 17 логических операций и контроля поступают на входы второго коммутатора 7.
Аналогичным образом процессор функционирует при выполнении логических операций.
При возникновении некорректируемой ошибки, сигналы с выходов дешифратора 37 через блок 38 элементов ИЛИ и второй коммутатор 7 поступают в систему прерывания, где формируется сигнал «Отказ процессора».
8) На восьмом такте выдается микрокоманда «Конец операций» осуществляется переход на следующую операцию, блок 5 управления приводится в исходное состояние и выдает разрешение на начало выполнения следующей команды, адрес которой указан в счетчике 9 команд.
название | год | авторы | номер документа |
---|---|---|---|
ОТКАЗОУСТОЙЧИВЫЙ ПРОЦЕССОР С КОРРЕКЦИЕЙ ОШИБОК В ДВУХ БАЙТАХ ИНФОРМАЦИИ | 2021 |
|
RU2758410C1 |
ПРОЦЕССОР ПОВЫШЕННОЙ ДОСТОВЕРНОСТИ ФУНКЦИОНИРОВАНИЯ | 2010 |
|
RU2439667C1 |
ПРОЦЕССОР ПОВЫШЕННОЙ ДОСТОВЕРНОСТИ ФУНКЦИОНИРОВАНИЯ | 2018 |
|
RU2708956C2 |
ОТКАЗОУСТОЙЧИВЫЙ ПРОЦЕССОР | 2009 |
|
RU2417409C2 |
ОТКАЗОУСТОЙЧИВАЯ ЭВМ | 2018 |
|
RU2704325C1 |
Самоконтролируемый автомат | 2020 |
|
RU2775173C1 |
Процессор | 1984 |
|
SU1247884A1 |
Устройство для опроса информационных каналов | 1982 |
|
SU1062677A1 |
Устройство управления последовательностью операций цифрового вычислителя | 1984 |
|
SU1198521A1 |
Процессор с микропрограммным управлением | 1983 |
|
SU1149273A1 |
Изобретение относится к вычислительной технике. Технический результат заключается в коррекции ошибок в байте информации, возникающих в процессоре ЭВМ при выполнении арифметических и логических операций из-за отсутствия или возникновения лишних переносов. Отказоустойчивый процессор с коррекцией ошибок в байте информации использует алгебраический линейный код для обнаружения и коррекции ошибок в байте информации, который адаптирован для обнаружения и коррекции ошибок при выполнении арифметических и логических операций процессором. 1 табл., 3 ил.
Отказоустойчивый процессор с коррекцией ошибок в байте информации, содержащий управляющий узел, операционный узел, дешифратор кода операции, генератор тактовых импульсов, блок управления, первый коммутатор, второй коммутатор, третий коммутатор, счетчик команд, счетчик сдвигов, регистр адреса, регистр числа, регистр сумматора, регистр дополнительный, регистр дополнительного кода, сумматор, блок логических операций и контроля, включающий блок логического сложения по mod2, блок инвертирования, блок логического сложения, блок логического умножения, функциональную схему формирования поправки при выполнении арифметических операций, функциональную схему формирования поправки при выполнении операции ИЛИ, функциональную схему формирования поправки при выполнении операции И, функциональную схему формирования поправки при выполнении операции сдвига, элемент задержки, первый блок элементов неравнозначности, второй блок элементов неравнозначности, третий блок элементов неравнозначности, первый блок элементов ИЛИ, второй блок элементов ИЛИ, блок кодирования, первый блок элементов И, второй блок элементов И, элемент И, первый, вторые, третьи, четвертые, пятые входы блока логических операций и контроля, первые, вторые, третьи выходы блока логических операций и контроля, управляющую память, входы от устройства обмена, входы данных из запоминающего устройства, выход на устройство обмена, выходы данных на запоминающее устройство, выход адреса запоминающего устройства, выходы синхроимпульсов, выходы для сигналов управления, выходы для команды считывание, выходы для сигналов записи, выходы для сигналов установки в нулевое состояние, выходы устройства обмена подключены к первому входу блока управления и к первому входу второго коммутатора, вторые входы которого подключены к выходам запоминающего устройства, первые выходы второго коммутатора поступают на вход устройства обмена, вторые выходы поступают на вход запоминающего устройства, а третьи выходы подключены соответственно к первым входам счетчика команд, счетчика сдвигов, регистра числа, регистра сумматора, регистра дополнительного, регистра дополнительного кода, к входам дешифратора кода операции, к вторым входам блока управления, к первому входу первого коммутатора, первый выход которого подключен к первому входу регистра адреса, третий вход блока управления подключен к выходам дешифратора кода операции, а четвертый вход подключен к выходам генератора тактовых импульсов, а пятый вход подключен к первому выходу управляющей памяти, первый выход блока управления подключен к входу управляющей памяти, второй выход блока управления подключен к второму входу первого коммутатора, третьи и четвертые входы которого подключены соответственно к выходам регистра адреса и счетчика команд, а с второго выхода снимается адрес ячейки памяти запоминающего устройства, третий выход блока управления подключен к вторым входам счетчика команд, счетчика сдвигов, регистра адреса, регистра числа, регистра сумматора, регистра дополнительного, регистра дополнительного кода, к первой группе входов третьего коммутатора, к третьей группе входов второго коммутатора, к первому входу блока логических операций и контроля и является входом синхроимпульсов, вторые, третьи, четвертые и пятые выходы блока управляющей памяти подключены соответственно к третьим, четвертым пятым и шестым входам счетчика команд, счетчика сдвигов, регистра адреса, регистра числа, регистра сумматора, регистра дополнительного, регистра дополнительного кода, к первой группе входов третьего коммутатора, к третьей группе входов второго коммутатора, к вторым входам блока логических операций и контроля и являются выходами управляющих сигналов, сигналов считывания, сигналов записи, сигналов установки устройств в нулевое состояние, выходы регистра числа, регистра сумматора, регистра дополнительного, регистра дополнительного кода подключены к вторым входам третьего коммутатора и к четвертым входам второго коммутатора, выход счетчика сдвигов подключен к пятым входам второго коммутатора, первые выходы третьего коммутатора подключены соответственно к входам сумматора и к третьим входам блока логических операций и контроля, выходы сумматора подключены к четвертым входам блока логических операций и контроля, вторые выходы третьего коммутатора подключены к пятым входам блока логических операции и контроля, отличающийся тем, что он дополнительно содержит дешифратор, блок элементов ИЛИ, блок элементов И, корректор, причем первые выходы блока логических операций и контроля подключены к первым входам корректора, вторые выходы подключены к шестым входам второго коммутатора, третьи выходы блока логических операций и контроля подключены к первым входам блока элементов И и к входам дешифратора, первая группа выходов которого подключена к вторым входам блока элементов И, третий вход которого подключен к третьему выходу блока управления, а выход подключен к второму входу корректора, выходы корректора подключены к седьмым входам второго коммутатора, вторая группа выходов дешифратора подключена к входам блока элементов ИЛИ, выход которого подключен к восьмому входу второго коммутатора.
УСТРОЙСТВО ХРАНЕНИЯ И ПЕРЕДАЧИ ДАННЫХ С ИСПРАВЛЕНИЕМ ОШИБОК В БАЙТЕ ИНФОРМАЦИИ И ОБНАРУЖЕНИЕМ ОШИБОК В БАЙТАХ ИНФОРМАЦИИ | 2011 |
|
RU2448359C1 |
УСТРОЙСТВО ХРАНЕНИЯ И ПЕРЕДАЧИ ДАННЫХ С ИСПРАВЛЕНИЕМ ОДИНОЧНЫХ ОШИБОК В БАЙТЕ ИНФОРМАЦИИ И ОБНАРУЖЕНИЕМ ПРОИЗВОЛЬНЫХ ОШИБОК В БАЙТАХ ИНФОРМАЦИИ | 2011 |
|
RU2450331C1 |
УСТРОЙСТВО ХРАНЕНИЯ И ПЕРЕДАЧИ ИНФОРМАЦИИ С ОБНАРУЖЕНИЕМ ДВОЙНЫХ ОШИБОК | 2009 |
|
RU2403615C2 |
US 5933436 A, 03.08.1999. |
Авторы
Даты
2021-10-26—Публикация
2021-01-26—Подача