Устройство хранения и передачи данных с исправлением ошибок в двух байтах информации

Иллюстрации

Показать все

Изобретение относится к области телемеханики, автоматики и вычислительной техники и может быть использовано в устройствах хранения и передачи информации. Техническим результатом является повышение отказоустойчивости устройства за счет коррекции ошибок в двух байтах информации. Устройство содержит узел памяти, входной блок кодирования, выходной блок кодирования, блок вычисления синдрома ошибки, дешифратор, блок хранения векторов ошибок, корректор, блок элементов И. 1 ил., 1 табл., 1 прилож.

Реферат

Изобретение относится к вычислительной технике и может быть использовано для повышения достоверности функционирования запоминающих устройств.

Известно самокорректирующееся устройство [1], использующее корректирующий код (наиболее часто используется код Хемминга, корректирующий одиночную ошибку и обнаруживающий двойную ошибку).

Недостатком устройства является низкая обнаруживающая способность кода, так как обнаруживаются только двойные ошибки.

Наиболее близким по техническому решению является устройство хранения и передачи данных с исправлением ошибок в байте информации и обнаружением ошибок в байтах информации [2], содержащее узел памяти, входной блок кодирования, выходной блок кодирования, блок вычисления синдрома ошибки, дешифратор, коммутатор, блок коммутаторов, корректор, блок корректоров, первый блок элементов ИЛИ, второй блок элементов ИЛИ, инвертор, элемент И, блок элементов И, вход установки устройства в нулевое состояние, вход записи, вход считывания, адресные входы, двадцатичетырехразрядные информационные входы, вход синхронизации, информационные выходы, выход сигнала «ошибка», вход установки в нулевое состояние, вход записи, вход считывания, адресные входы подключены соответственно к первому, второму, третьему и четвертому входам узла памяти, вход синхронизации подключен к пятому входу узла памяти и к первому входу блока элементов И, информационные входы подключены к шестым входам узла памяти и к входам входного блока кодирования, который формирует значения контрольных разрядов 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, поступающих на входы входного блока кодирования, в соответствии с правилом: r1x1⊕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⊕c2⊕e1⊕e3⊕f1⊕f2⊕g1⊕g2⊕g3; r5=x2⊕x3⊕z1⊕a3⊕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⊕a3⊕c3⊕e3⊕f2⊕f3⊕g1⊕g2⊕g3, которые поступают на седьмые входы узла памяти, информационные выходы узла памяти подключены соответственно к первым входам корректора, блока корректоров и к входам выходного блока кодирования, который формирует значения проверочных контрольных разрядов r, r, r, r, r, rr r путем сложения по модулю 2 информационных символов xxx, zzz, aaa, ccc, ee2Пe3П, fff, ggg, hhh, поступающих на входы входного блока кодирования с информационных выходов узла памяти, в соответствии с правилом:: r=x⊕z⊕a⊕c⊕e⊕f⊕g⊕h; r=x⊕z⊕a⊕c⊕e⊕f⊕g⊕h; r=x⊕z⊕a⊕c⊕e⊕f⊕g⊕h; r=x⊕z⊕a⊕a⊕c⊕e⊕e⊕f⊕f⊕g⊕g⊕g; r=x⊕x⊕z⊕a⊕c⊕c⊕e⊕e⊕f⊕g⊕g⊕g; r=x⊕z⊕z⊕a⊕c⊕c⊕e⊕f⊕f⊕g⊕g⊕g; r=x⊕z⊕a⊕a⊕c⊕e⊕f⊕g⊕g⊕g; r=x⊕x⊕z⊕a⊕a⊕c⊕e⊕f⊕f⊕g⊕g⊕g, выходы выходного блока кодирования подключены к первым входам блока вычисления синдрома ошибки, к вторым входам которого подключены выходы контрольных разрядов узла памяти, первые выходы блока вычисления синдрома ошибки подключены к первым входам дешифратора, к первым входам коммутатора, к входам первого блока элементов ИЛИ и к первым входам блока коммутаторов, вторые выходы блока вычисления синдрома ошибки подключены к вторым входам дешифратора и к вторым входам первого блока элементов ИЛИ, выходы дешифратора подключены к входам второго блока элементов ИЛИ, при этом первый выход дешифратора подключен к второму входу коммутатора, а вторые выходы подключены к вторым входам блока коммутаторов, выход второго блока элементов ИЛИ через инвертор подключен к первому входу элемента И, второй вход которого подключен к выходу первого блока элементов ИЛИ, выход элемента И является выходом сигнала «ошибка», выходы коммутатора подключены к вторым входам корректора, выходы блока коммутаторов подключены к вторым входам блока корректоров, выходы корректора и блока корректоров подключены к вторым входам блока элементов И, выходы которого являются информационными выходами устройства.

Недостатком устройства является низкая корректирующая способность ошибок, так как корректируются только одиночные байты ошибок.

Целью изобретения является повышение отказоустойчивости устройства за счет коррекции ошибок в двух байтах информации.

Поставленная цель достигается тем, что устройство, содержащие узел памяти, входной блок кодирования, выходной блок кодирования, блок вычисления синдрома ошибки, дешифратор, корректор, блок элементов И, вход установки устройства в нулевое состояние, вход записи, вход считывания, адресные входы, информационные входы, вход синхронизации, информационные выходы, отличающееся тем, что дополнительно содержит блок хранения векторов ошибок, вход установки в нулевое состояние, вход записи, вход считывания, адресные входы подключены соответственно к первому, второму, третьему и четвертому входам узла памяти, вход синхронизации подключен к пятому входу узла памяти и к первому входу блока элементов И, информационные входы подключены к шестым входам узла памяти и к входам входного блока кодирования, который формирует значения контрольных разрядов r 1 f , r 2 f , r 3 f , r 4 f , r 5 f , r 6 f , r 7 f , r 8 f , r 9 g , r 10 g , r 11 g , r 12 g , r 13 g , r 14 g , r 15 g , r 16 g , r 17 g , r 18 g , r 19 g , r 20 g , путем сложения по модулю 2 информационных символов a0a1a2a3, b0b1b32b3, c0c1c2c3, d0d1d2d3, e0e1e2e3, f0f1f2f3, g0g1g2g3, h0h1h2h3, i0i1i2i3, j0j1j2j3, k0k1k2k3, l0l1l2l3, m0m1m2m3, n0n1n2n3, o0o1o2o3, p0p1p2p3, поступающих на входы входного блока кодирования, в соответствии с правилом:

r 1 f = a 0 ⊕ b 0 ⊕ c 0 ⊕ d 0 ⊕ e 0 ⊕ f 0 ⊕ g 0 ⊕ h 0 ⊕ i 0 ⊕ j 0 ⊕ k 0 ⊕ l 0 ⊕ m 0 ⊕ n 0 ⊕ o 0 ;

r 2 f = a 1 ⊕ b 1 ⊕ c 1 ⊕ d 1 ⊕ e 1 ⊕ f 1 ⊕ g 1 ⊕ h 1 ⊕ i 1 ⊕ j 1 ⊕ k 1 ⊕ l 1 ⊕ m 1 ⊕ n 1 ⊕ o 1 ;

r 3 f = a 2 ⊕ b 2 ⊕ c 2 ⊕ d 2 ⊕ e 2 ⊕ f 2 ⊕ g 2 ⊕ h 2 ⊕ i 2 ⊕ j 2 ⊕ k 2 ⊕ l 2 ⊕ m 2 ⊕ n 2 ⊕ o 2 ;

r 4 f = a 3 ⊕ b 3 ⊕ c 3 ⊕ d 3 ⊕ e 3 ⊕ f 3 ⊕ g 3 ⊕ h 3 ⊕ i 3 ⊕ j 3 ⊕ k 3 ⊕ l 3 ⊕ m 3 ⊕ n 3 ⊕ o 3 ;

r 5 f = b 0 ⊕ c 0 ⊕ d 0 ⊕ e 0 ⊕ f 0 ⊕ g 0 ⊕ h 0 ⊕ i 0 ⊕ j 0 ⊕ k 0 ⊕ l 0 ⊕ m 0 ⊕ n 0 ⊕ o 0 ⊕ p 0 ;

r 6 f = b 1 ⊕ c 1 ⊕ d 1 ⊕ e 1 ⊕ f 1 ⊕ g 1 ⊕ h 1 ⊕ i 1 ⊕ j 1 ⊕ k 1 ⊕ l 1 ⊕ m 1 ⊕ n 1 ⊕ o 1 ⊕ p 1 ;

r 7 f = b 2 ⊕ c 2 ⊕ d 2 ⊕ e 2 ⊕ f 2 ⊕ g 2 ⊕ h 2 ⊕ i 2 ⊕ j 2 ⊕ k 2 ⊕ l 2 ⊕ m 2 ⊕ n 2 ⊕ o 2 ⊕ p 2 ;

r 8 f = b 3 ⊕ c 3 ⊕ d 3 ⊕ e 3 ⊕ f 3 ⊕ g 3 ⊕ h 3 ⊕ i 3 ⊕ j 3 ⊕ k 3 ⊕ l 3 ⊕ m 3 ⊕ n 3 ⊕ o 3 ⊕ p 3 ;

r 9 g = a 2 ⊕ a 3 ⊕ b 2 ⊕ c 2 ⊕ c 3 ⊕ d 0 ⊕ d 1 ⊕ e 1 ⊕ e 3 ⊕ f 1 ⊕ f 2 ⊕ g 2 ⊕ g 3 ⊕ h 0 ⊕ i 0 ⊕ i 3 ⊕ j 0 ⊕ j 2 ⊕ k 0 ⊕ k 2 ⊕ k 3 ⊕ l 0 ⊕ l 1 ⊕ m 0 ⊕ m 1 ⊕ m 3 ⊕ n 0 ⊕ n 1 ⊕ n 2 ⊕ o 0 ⊕ o 1 ⊕ o 3

r 10 g = a 2 ⊕ b 3 ⊕ c 1 ⊕ d 1 ⊕ d 3 ⊕ e 1 ⊕ e 2 ⊕ f 1 ⊕ f 2 ⊕ f 3 ⊕ g 0 ⊕ g 3 ⊕ h 0 ⊕ h 3 ⊕ i 0 ⊕ i 2 ⊕ j 0 ⊕ j 2 ⊕ j 3 ⊕ k 0 ⊕ k 1 ⊕ l 1 ⊕ l 3 ⊕ m 0 ⊕ m 1 ⊕ m 2 ⊕ n 0 ⊕ n 1 ⊕ n 3 ⊕ p 3 ;

r 11 g = a 1 ⊕ b 1 ⊕ b 2 ⊕ b 3 ⊕ c 1 ⊕ c 2 ⊕ d 1 ⊕ d 2 ⊕ e 0 ⊕ f 0 ⊕ f 3 ⊕ g 0 ⊕ g 2 ⊕ h 0 ⊕ h 2 ⊕ h 3 ⊕ i 0 ⊕ i 1 ⊕ j 0 ⊕ j 1 ⊕ j 3 ⊕ k 1 ⊕ k 2 ⊕ l 0 ⊕ l 1 ⊕ l 2 ⊕ m 3 ⊕ n 3 ⊕ o 2 ⊕ p 2 ⊕ p 3 ;

r 12 g = a 0 ⊕ a 3 ⊕ b 0 ⊕ b 3 ⊕ c 0 ⊕ c 2 ⊕ d 0 ⊕ d 2 ⊕ d 3 ⊕ e 0 ⊕ e 1 ⊕ e 3 ⊕ f 0 ⊕ f 1 ⊕ f 3 ⊕ g 0 ⊕ g 1 ⊕ g 2 ⊕ h 0 ⊕ h 1 ⊕ h 2 ⊕ h 3 ⊕ j 3 ⊕ k 0 ⊕ k 2 ⊕ k 3 ⊕ l 2 ⊕ l 3 ⊕ m 1 ⊕ n 1 ⊕ n 3 ⊕ ⊕ o 1 ⊕ o 2 ⊕ p 1 ⊕ p 2 ⊕ p 3 ;

r 13 g = a 0 ⊕ b 2 ⊕ b 3 ⊕ c 0 ⊕ c 2 ⊕ c 3 ⊕ d 0 ⊕ d 3 ⊕ e 1 ⊕ e 2 ⊕ f 0 ⊕ f 2 ⊕ g 0 ⊕ g 1 ⊕ h 0 ⊕ h 1 ⊕ h 2 ⊕ h 3 ⊕ i 0 ⊕ i 1 ⊕ j 1 ⊕ j 2 ⊕ k 1 ⊕ l 0 ⊕ l 2 ⊕ m 1 ⊕ m 2 ⊕ m 3 ⊕ n 0 ⊕ n 2 ⊕ n 3 ⊕ ⊕ o 0 ⊕ o 1 ⊕ o 3 ⊕ p 0 ⊕ p 1 ⊕ p 2 ;

r 14 g = a 2 ⊕ a 3 ⊕ b 0 ⊕ b 3 ⊕ c 0 ⊕ c 3 ⊕ d 1 ⊕ d 2 ⊕ e 3 ⊕ f 2 ⊕ g 3 ⊕ h 1 ⊕ h 2 ⊕ h 3 ⊕ i 0 ⊕ i 2 ⊕ j 0 ⊕ j 1 ⊕ j 3 ⊕ k 2 ⊕ k 3 ⊕ l 1 ⊕ l 2 ⊕ l 3 ⊕ m 1 ⊕ m 3 ⊕ n 0 ⊕ o 0 ⊕ o 1 ⊕ o 2 ⊕ p 0 ⊕ p 2 ⊕ p 3 ;

r 15 g = a 0 ⊕ a 1 ⊕ a 2 ⊕ a 3 ⊕ b 0 ⊕ b 3 ⊕ c 0 ⊕ c 2 ⊕ c 3 ⊕ d 0 ⊕ d 1 ⊕ e 0 ⊕ e 1 ⊕ e 2 ⊕ f 2 ⊕ f 3 ⊕ g 1 ⊕ g 3 ⊕ h 0 ⊕ i 0 ⊕ i 3 ⊕ j 0 ⊕ j 2 ⊕ k 1 ⊕ l 0 ⊕ l 1 ⊕ l 2 ⊕ m 0 ⊕ m 1 ⊕ n 0 ⊕ n 1 ⊕ n 3 ⊕ ⊕ o 0 ⊕ o 1 ⊕ o 2 ⊕ o 3 ⊕ p 3 ;

r 16 g = a 0 ⊕ a 3 ⊕ b 1 ⊕ b 2 ⊕ b 3 ⊕ c 0 ⊕ c 1 ⊕ c 2 ⊕ d 3 ⊕ e 2 ⊕ e 3 ⊕ f 0 ⊕ f 2 ⊕ f 3 ⊕ g 2 ⊕ g 3 ⊕ h 1 ⊕ i 0 ⊕ i 2 ⊕ i 3 ⊕ j 1 ⊕ j 2 ⊕ j 3 ⊕ k 0 ⊕ k 2 ⊕ l 0 ⊕ l 1 ⊕ m 0 ⊕ m 3 ⊕ n 3 ⊕ o 0 ⊕ o 2 ⊕ p 1 ⊕ p 2 ;

r 17 g = a 0 ⊕ a 1 ⊕ a 2 ⊕ c 0 ⊕ c 1 ⊕ c 2 ⊕ c 3 ⊕ d 0 ⊕ d 1 ⊕ d 3 ⊕ e 0 ⊕ e 1 ⊕ e 3 ⊕ f 1 ⊕ f 2 ⊕ g 0 ⊕ g 1 ⊕ g 2 ⊕ g 3 ⊕ h 0 ⊕ h 1 ⊕ i 0 ⊕ i 1 ⊕ i 2 ⊕ j 1 ⊕ j 2 ⊕ j 3 ⊕ k 2 ⊕ l 1 ⊕ l 3 ⊕ m 0 ⊕ n 1 ⊕ n 2 ⊕ n 3 ⊕ o 0 ⊕ o 1 ⊕ o 2 ⊕ p 0 ⊕ p 1 ⊕ p 3 ;

r 18 g = a 0 ⊕ a 2 ⊕ a 3 ⊕ b 2 ⊕ b 3 ⊕ c 3 ⊕ d 0 ⊕ d 1 ⊕ d 3 ⊕ e 1 ⊕ e 2 ⊕ f 3 ⊕ g 2 ⊕ h 1 ⊕ i 1 ⊕ i 2 ⊕ i 3 ⊕ j 1 ⊕ j 2 ⊕ k 0 ⊕ k 1 ⊕ l 0 ⊕ l 1 ⊕ l 2 ⊕ l 3 ⊕ n 1 ⊕ n 3 ⊕ o 0 ⊕ o 1 ⊕ p 0 ⊕ p 1 ⊕ p 2 ;

r 19 g = a 0 ⊕ a 1 ⊕ a 3 ⊕ b 1 ⊕ b 3 ⊕ c 0 ⊕ d 0 ⊕ d 2 ⊕ d 3 ⊕ e 0 ⊕ e 1 ⊕ f 0 ⊕ f 2 ⊕ g 1 ⊕ g 2 ⊕ g 3 ⊕ h 1 ⊕ h 3 ⊕ i 0 ⊕ i 2 ⊕ j 0 ⊕ j 3 ⊕ k 0 ⊕ k 2 ⊕ l 1 ⊕ m 0 ⊕ m 1 ⊕ m 2 ⊕ n 0 ⊕ n 1 ⊕ o 0 ⊕ o 2 ⊕ o 3 ⊕ p 0 ⊕ p 2 ⊕ p 3 ;

r 20 g = a 1 ⊕ a 2 ⊕ b 0 ⊕ b 3 ⊕ c 0 ⊕ c 1 ⊕ c 3 ⊕ d 0 ⊕ d 1 ⊕ d 2 ⊕ e 3 ⊕ f 2 ⊕ f 3 ⊕ g 0 ⊕ g 2 ⊕ g 3 ⊕ h 0 ⊕ h 2 ⊕ h 3 ⊕ i 1 ⊕ i 3 ⊕ j 1 ⊕ j 3 ⊕ k 0 ⊕ k 2 ⊕ k 3 ⊕ l 0 ⊕ l 2 ⊕ m 0 ⊕ m 3 ⊕ n 0 ⊕ n 3 ⊕ o 0 ⊕ o 3 ⊕ p 0 ⊕ p 1 ⊕ p 3 ,

выходы входного блока кодирования подключены к седьмым входам узла памяти, информационные выходы узла памяти подключены соответственно к первым входам корректора и к входам выходного блока кодирования, который формирует значения проверочных контрольных разрядов r 1 П f , r 2 П f , r 3 П f , r 4 П f , r 5 П f , r 6 П f , r 7 П f , r 8 П f , r 9 П g , r 10 П g , r 11 П g , r 12 П g , r 13 П g , r 14 П g , r 15 П g , r 16 П g , r 17 П g , r 18 П g , r 19 П g , r 20 П g , путем сложения по модулю 2 информационных символов aaaa, bbbb, cccc, dddd, eeee, ffff, gggg, hhhh, iiii, jjjj, kkkk, llll, mmmm, nnnn, oooo, pppp, поступающих на входы входного блока кодирования с информационных выходов узла памяти, в соответствии с правилом:

r 1 П f = a 0 П ⊕ b 0 П ⊕ c 0 П ⊕ d 0 П ⊕ e 0 П ⊕ f 0 П ⊕ g 0 П ⊕ h 0 П ⊕ i 0 П ⊕ j 0 П ⊕ k 0 П ⊕ l 0 П ⊕ m 0 П ⊕ n 0 П ⊕ o 0 П ;

r 2 П f = a 1 П ⊕ b 1 П ⊕ c 1 П ⊕ d 1 П ⊕ e 1 П ⊕ f 1 П ⊕ g 1 П ⊕ h 1 П ⊕ i 1 П ⊕ j 1 П ⊕ k 1 П ⊕ l 1 П ⊕ m 1 П ⊕ n 1 П ⊕ o 1 П ;

r 3 П f = a 2 П ⊕ b 2 П ⊕ c 2 П ⊕ d 2 П ⊕ e 2 П ⊕ f 2 П ⊕ g 2 П ⊕ h 2 П ⊕ i 2 П ⊕ j 2 П ⊕ k 2 П ⊕ l 2 П ⊕ m 2 П ⊕ n 2 П ⊕ o 2 П ;

r 4 П f = a 3 П ⊕ b 3 П ⊕ c 3 П ⊕ d 3 П ⊕ e 3 П ⊕ f 3 П ⊕ g 3 П ⊕ h 3 П ⊕ i 3 П ⊕ j 3 П ⊕ k 3 П ⊕ l 3 П ⊕ m 3 П ⊕ n 3 П ⊕ o 3 П ;

r 5 П f = b 0 П ⊕ c 0 П ⊕ d 0 П ⊕ e 0 П ⊕ f 0 П ⊕ g 0 П ⊕ h 0 П ⊕ i 0 П ⊕ j 0 П ⊕ k 0 П ⊕ l 0 П ⊕ m 0 П ⊕ n 0 П ⊕ o 0 П ⊕ p 0 П ;

r 6 П f = b 1 П ⊕ c 1 П ⊕ d 1 П ⊕ e 1 П ⊕ f 1 П ⊕ g 1 П ⊕ h 1 П ⊕ i 1 П ⊕ j 1 П ⊕ k 1 П ⊕ l 1 П ⊕ m 1 П ⊕ n 1 П ⊕ o 1 П ⊕ p 1 П ;

r 7 П f = b 2 П ⊕ c 2 П ⊕ d 2 П ⊕ e 2 П ⊕ f 2 П ⊕ g 2 П ⊕ h 2 П ⊕ i