RU2615314C1 - Method for increasing microcomputer reliability - Google Patents

Method for increasing microcomputer reliability Download PDF

Info

Publication number
RU2615314C1
RU2615314C1 RU2015156099A RU2015156099A RU2615314C1 RU 2615314 C1 RU2615314 C1 RU 2615314C1 RU 2015156099 A RU2015156099 A RU 2015156099A RU 2015156099 A RU2015156099 A RU 2015156099A RU 2615314 C1 RU2615314 C1 RU 2615314C1
Authority
RU
Russia
Prior art keywords
code
command
counter
byte
storage device
Prior art date
Application number
RU2015156099A
Other languages
Russian (ru)
Inventor
Сергей Владимирович Тюрин
Максим Анатольевич Худяков
Александр Владимирович Ачкасов
Валерий Петрович Крюков
Original Assignee
Акционерное общество "Научно-исследовательский институт электронной техники"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Акционерное общество "Научно-исследовательский институт электронной техники" filed Critical Акционерное общество "Научно-исследовательский институт электронной техники"
Priority to RU2015156099A priority Critical patent/RU2615314C1/en
Application granted granted Critical
Publication of RU2615314C1 publication Critical patent/RU2615314C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Hardware Redundancy (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: method allows directly in the microcomputer operational mode in parallel with controlling the individual distortions read from the primary and the secondary storage data devices and the correctness of command codes interpretation by the processor, additionally to check the processor command byte structure integrity, i.e. the sequential byte reading of multi-byte commands, in which the appeal to the memory cells is performed so that the address of the subsequent memory cell must differ exactly by a one from the address of the preceding memory cell until all bytes of a multi-byte command will be read, what increases the probability of prompt detection of the fact of accidental processor "walks" occurrence in case of failures in the microcomputer address or commands counter buses.
EFFECT: expanding the functionalities due to the operational control in the operating mode of the multi-byte commands byte structure integrity.
2 dwg

Description

Изобретение относится к цифровой вычислительной технике и предназначено для решения задачи обнаружения случайных срывов процессора микроЭВМ с заданной программы функционирования, что может быть вызвано действием случайных помех.The invention relates to digital computing and is intended to solve the problem of detecting random disruptions of the microcomputer processor from a given functioning program, which may be caused by random interference.

Известен способ повышения надежности микроЭВМ, представленный, например, в [1].A known method of increasing the reliability of microcomputers, presented, for example, in [1].

Данный способ заключается в том, что к n-разрядному основному (программному) запоминающему устройству микроЭВМ предварительно добавляют дополнительное однобитовое запоминающее устройство, которые в рабочем режиме образуют единое (n+1)-разрядное запоминающее устройство, затем в n-разрядные ячейки основного запоминающего устройства загружают программу работы процессора в виде машинных кодов, после чего в каждую однобитовую ячейку дополнительного запоминающего устройства записывают единицу или ноль таким образом, чтобы сумма единичных значений в кодах каждой (n+1)-разрядной ячейки основного и дополнительного запоминающих устройств была бы четной, что в режиме работы при чтении данных из основного и дополнительного запоминающих устройств автоматически проверяют многовходовым сумматором по модулю 2, сигнал с выхода которого подают на вход прерывания процессора, который переходит на подпрограмму обработки прерывания в случае неверного чтения кодов из основного и дополнительного запоминающих устройств.This method consists in the fact that an additional one-bit storage device is preliminarily added to the n-bit main (software) storage device of the microcomputer, which in the operating mode form a single (n + 1)-bit storage device, and then to the n-bit cells of the main storage device load the processor work program in the form of machine codes, after which one or zero is written in each one-bit cell of the additional storage device so that the sum of unit the beginnings in the codes of each (n + 1) -bit cell of the primary and secondary storage devices would be even, which when reading data from the primary and secondary storage devices is automatically checked by a multi-input adder modulo 2, the output signal of which is fed to the interrupt input processor, which switches to the interrupt processing routine in case of incorrect reading of codes from the primary and secondary storage devices.

Данный способ, известный более как «контроль четности», повышает надежность функционирования микроЭВМ за счет оперативного обнаружения случайных и/или фиксированных единичных искажений данных, считываемых из основного и дополнительного запоминающих устройств.This method, more commonly known as "parity control", increases the reliability of the functioning of the microcomputer by quickly detecting random and / or fixed individual data distortions read from the primary and secondary storage devices.

Недостатком данного способа повышения надежности является невозможность обнаружения фактов возникновения случайных «блужданий» процессора микроЭВМ. Случайные «блуждания» процессора возникают тогда, когда он срывается с заданной программы функционирования, интерпретируя машинные коды данных как коды команд, а коды команд - как операнды или как коды их адресов. Такого рода срывы процессора могут быть следствием негативного воздействия помех на шины адреса процессора или сбоев счетчика команд.The disadvantage of this method of improving reliability is the inability to detect facts of the occurrence of random "wanderings" of the microcomputer processor. Random processor “wanderings” occur when it breaks down from a given program of functioning, interpreting machine data codes as instruction codes, and instruction codes as operands or address codes. This kind of processor interruption may be due to the negative effects of interference on the processor address bus or malfunction of the instruction counter.

Наиболее близким по технической сути является способ повышения надежности микроЭВМ [2], заключающийся в том, что к n-разрядному основному (программному) запоминающему устройству микроЭВМ предварительно добавляют дополнительное однобитовое запоминающее устройство, которые в рабочем режиме образуют единое (n+1)-разрядное запоминающее устройство, затем в n-разрядные ячейки основного запоминающего устройства загружают программу работы процессора в виде машинных кодов, после чего в каждую однобитовую ячейку дополнительного запоминающего устройства записывают единицу или ноль таким образом, чтобы в (n+1) битах дополнительного запоминающего устройства и основного запоминающего устройства, в ячейках которого содержатся коды команд, сумма единичных значений была бы нечетной, а в ячейках которого содержатся все остальные коды - четной, при этом в режиме работы микроЭВМ при чтении данных из основного и дополнительного запоминающих устройств считанные данные и однобитовый признак чтения кода команды, автоматически формируемый микроЭВМ, проверяют на четность сумматором по модулю два, сигнал с выхода которого подают на вход прерывания процессора, который переходит на подпрограмму обработки прерывания в случае нечетности данных, поступающих на входы сумматора по модулю два, при этом на n входов сумматором по модулю два одновременно подают данные из основного запоминающего устройства, на вход (n+1) - из дополнительного запоминающего устройства, а на (n+2)-й вход - признак чтения кода команды.The closest in technical essence is a way to improve the reliability of microcomputers [2], which consists in the fact that an additional one-bit storage device is added to the n-bit main (software) storage device of the microcomputer, which form a single (n + 1) -bit operating mode storage device, then the n-bit cells of the main storage device load the processor program in the form of machine codes, and then into each single-bit cell of the additional storage device triples write one or zero in such a way that in (n + 1) bits of the additional storage device and the main storage device, in the cells of which the codes of commands are contained, the sum of the unit values would be odd, and in the cells of which all the other codes contain even, this, in the mode of operation of the microcomputer when reading data from the primary and secondary storage devices, the read data and the one-bit sign of reading the command code, automatically generated by the microcomputer, are checked for parity by the adder modulo two, the signal from the output of which is fed to the processor interrupt input, which goes to the interrupt processing routine in case of odd data arriving at the inputs of the adder modulo two, while the n inputs of the adder modulo two simultaneously feed data from the main storage device to the input (n + 1) - from an additional storage device, and at the (n + 2) -th input - a sign of reading the command code.

Данный способ во многих случаях предотвращает возникновение случайных «блужданий» процессора микроЭВМ при неверной интерпретации машинных кодов данных как кодов команд, а кодов команд - как операндов или как кодов их адресов. Однако возможны ситуации, при которых возникновение «блужданий» данным способом не может быть обнаружено.This method in many cases prevents the occurrence of random “wanderings” of the microcomputer processor if the machine data codes are interpreted incorrectly as instruction codes, and instruction codes as operands or address codes. However, there may be situations in which the occurrence of "wandering" in this way cannot be detected.

Предположим, что сбой программного счетчика происходит после правильного чтения кода однобайтной команды. Тогда возможны следующие ситуации: правильно читается код команды, но переход на нее не предусмотрен алгоритмом (не определяется данным способом); читается код операнда, который интерпретируется процессором как код следующей команды (ошибка определяется). Частоту определения ошибки при сбое выполнения однобайтной команды

Figure 00000001
можно определить какAssume that a software counter failure occurs after the correct reading of the single-byte command code. Then the following situations are possible: the command code is read correctly, but the transition to it is not provided by the algorithm (it is not determined in this way); the operand code is read, which is interpreted by the processor as the code for the next command (an error is detected). Error detection rate for single-byte command failure
Figure 00000001
can be defined as

Figure 00000002
Figure 00000002

где n1 - количество в программе однобайтных команд;where n 1 is the number of single-byte instructions in the program;

n2 - количество в программе двухбайтных команд;n 2 - the number of double-byte commands in the program;

n3 - количество в программе трехбайтных команд;n 3 - the number of three-byte instructions in the program;

d - количество в программе различных данных.d is the amount of various data in the program.

В соотношении (1) числитель дроби определяет общее количество кодов команд в программе, а знаменатель - общий объем программы в байтах. Как следует из соотношения (1) величина

Figure 00000003
тем больше, чем больше величина d, а также от соотношения в программе двухбайтовых и трехбайтовых команд. Если же принять, что количество однобайтовых, двухбайтовых и трехбайтовых команд одинаково, a d=0, тоIn relation (1), the fraction numerator determines the total number of instruction codes in the program, and the denominator determines the total program volume in bytes. As follows from relation (1), the quantity
Figure 00000003
the larger, the greater the value of d, as well as the ratio in the program of double-byte and three-byte instructions. If we assume that the number of single-byte, double-byte, and three-byte instructions is the same, ad = 0, then

Figure 00000004
Figure 00000004

Существенно увеличить величину

Figure 00000005
можно путем вставок в программу фиктивных блоков данных, при нормальной работе программы к которым обращение невозможно. Причем эти фиктивные данные целесообразно размещать более-менее равномерно по программе и небольшими блоками.Significantly increase
Figure 00000005
it is possible by inserting fictitious data blocks into the program, during normal program operation it is impossible to access them. Moreover, it is advisable to place these dummy data more or less evenly according to the program and in small blocks.

Предположим, что сбой программного счетчика происходит при выполнении двухбайтной команды после правильного чтения кода команды. В этом случае обнаружение возникновения «блуждания» может быть обеспечено только в том случае, если вместо второго байта данных будет прочитан первый байт другой команды, то есть код другой команды. Тогда частоту определения ошибки при сбое выполнения двухбайтной команды

Figure 00000006
можно определить какAssume that a software counter failure occurs when a two-byte command is executed after the command code is read correctly. In this case, the detection of the occurrence of "wandering" can be provided only if instead of the second byte of data the first byte of another command is read, that is, the code of another command. Then the error detection rate when the double-byte command fails
Figure 00000006
can be defined as

Figure 00000007
Figure 00000007

Как следует из (3) увеличение объема фиктивных данных должно приводить к снижению эффективности данного способа обнаружения начала «блужданий». Это действительно справедливо, но только при оценке эффективности за время, не превышающее времени выполнения двухбайтной команды. Дело в том, что вторым прочитанным байтом может оказаться второй байт трехбайтной команды или байт фиктивных данных. Тогда ошибка будет обнаружена в том случае, если после выполнения неправильной двухбайтной команды процессор будет интерпретировать третий байт трехбайтной команды или следующий байт фиктивных данных как код следующей команды. При d→0 величина

Figure 00000008
→0,5.As follows from (3), an increase in the volume of fictitious data should lead to a decrease in the effectiveness of this method of detecting the onset of “wandering”. This is really true, but only when evaluating efficiency for a time not exceeding the execution time of a two-byte command. The fact is that the second byte read may be the second byte of a three-byte command or a byte of dummy data. Then an error will be detected if, after executing an incorrect two-byte instruction, the processor will interpret the third byte of the three-byte instruction or the next byte of dummy data as the code for the next instruction. When d → 0, the quantity
Figure 00000008
→ 0.5.

Предположим, что сбой программного счетчика происходит при выполнении трехбайтной команды после правильного чтения кода команды. В этом случае обнаружить ошибку возможно тогда, когда вместо второго и/или третьего байта данных читается код команды. Если принять, что количество однобайтных, двухбайтных и трехбайтных команд одинаково, a d→0, тоAssume that a software counter fails when a three-byte command is executed after the command code has been read correctly. In this case, an error can be detected when, instead of the second and / or third byte of data, the command code is read. If we assume that the number of single-byte, double-byte, and three-byte instructions is the same, a d → 0, then

Figure 00000009
Figure 00000009

Проведенный анализ показывает, что повысить вероятность обнаружения начала «блужданий» процессора микроЭВМ возможно путем слежения за адресами обращения к программной памяти в пределах каждого цикла чтения всех байт каждой команды. Иначе говоря, если читается код однобайтной команды по адресу Ai, то следующее чтение может быть проведено по любому адресу Aj, но прочитанное по этому адресу должно интерпретироваться процессором как код команды. Если по адресу Ai читается код двухбайтной команды, то адрес читаемого второго байта всегда должен быть Ai+1. Прочитанный же из ячейки с адресом Aj следующий код должен интерпретироваться процессором как код следующей команды.The analysis shows that it is possible to increase the likelihood of detecting the onset of “wandering” of the microcomputer processor by monitoring the addresses of access to program memory within each reading cycle of all bytes of each instruction. In other words, if a single-byte command code is read at address A i , then the next reading can be done at any address A j , but read at this address should be interpreted by the processor as a command code. If the code of a two-byte command is read at address A i , then the address of the second byte to be read must always be A i + 1 . The following code, read from the cell with address A j, should be interpreted by the processor as the code for the next command.

Если аналогичным образом рассуждать относительно многобайтных команд, состоящих из произвольного числа байт, то приходим к тому, что дополнительное повышение надежности микроЭВМ может быть обеспечено путем оперативного контроля в рабочем режиме за целостностью байтовой структуры команд. Под целостностью байтовой структуры команд будем понимать последовательное чтение байт многобайтных команд, при котором обращение к ячейкам памяти производится так, что адрес последующей ячейки памяти должен точно на единицу отличаться от адреса предшествующей ячейки памяти до тех пор, пока не будут прочитаны все байты многобайтной команды.If we similarly reason about multibyte instructions consisting of an arbitrary number of bytes, then we come to the conclusion that an additional increase in the reliability of the microcomputer can be ensured by operational monitoring in operational mode of the integrity of the byte structure of the instructions. By the integrity of the byte structure of instructions we mean the sequential reading of bytes of multibyte instructions, in which the memory cells are accessed so that the address of the subsequent memory cell must be exactly one different from the address of the previous memory cell until all bytes of the multibyte command are read.

Изобретение направлено на расширение функциональных возможностей способа повышения надежности микроЭВМ за счет дополнительной возможности обнаружения факта возникновения случайных «блужданий» и адекватной реакции на них путем оперативного контроля целостности байтовой структуры исполняемых команд микроЭВМ.The invention is aimed at expanding the functionality of a method of improving the reliability of microcomputers due to the additional possibility of detecting the occurrence of random "walks" and an adequate reaction to them by monitoring the integrity of the byte structure of the executable instructions of the microcomputer.

Это достигается тем, что в первом такте чтения из основного запоминающего устройства кода каждой команды определяют с помощью дешифратора кода команды количество байт в данной команде, затем при единичном значении признака чтения кода команды запоминают в первом счетчике найденное количество байт в команде и одновременно с этим во втором счетчике запоминают код адреса читаемой ячейки памяти, который к этому моменту времени оказывается сформированным на шине адреса и который по истечении некоторого времени сравнивают с кодом адреса, ранее записанным во второй счетчик, и в случае их несовпадения формируют дополнительный сигнал ошибки, поступающий на вход прерывания процессора, в том же случае, если код адреса на шине адреса и код, записанный во второй счетчик, совпадут, одновременно увеличивают на единицу содержимое второго счетчика, а содержимое первого счетчика уменьшают на единицу, затем если в первом счетчике оказывается код, равный нулю, то ожидают следующего обращения к основной памяти за кодом следующей команды после чего реализуют следующий цикл обработки кода новой команды, если же в первом счетчике оказывается код, не равный нулю, то по каждому следующему сигналу чтения байт многобайтной команды проверяют на равенство код второго счетчика с кодом на шине адреса и в случае их равенства уменьшают на единицу содержимое первого счетчика и одновременно увеличивают на единицу содержимое второго счетчика и ожидают следующего сигнала чтения.This is achieved by the fact that in the first clock cycle of reading the code of each command from the main memory device, the number of bytes in a given command is determined using the command code decoder, then, with a single value of the command code reading flag, the found number of bytes in the command is stored in the first counter and at the same time the second counter remembers the address code of the readable memory cell, which at this point in time is formed on the address bus and which after some time is compared with the address code it is recorded in the second counter, and if they do not match, an additional error signal is generated that goes to the processor interrupt input, in the same case, if the address code on the address bus and the code written in the second counter coincide, they simultaneously increase the contents of the second counter by one , and the contents of the first counter are reduced by one, then if a code equal to zero appears in the first counter, then they wait for the next access to the main memory for the code of the next command, after which they will implement the next code processing cycle of the new command, if in the first counter there is a code that is not equal to zero, then for each subsequent read signal the bytes of the multibyte command check the code of the second counter with the code on the address bus for equality and, if they are equal, reduce the contents of the first counter by one and simultaneously increase by unit contents of the second counter and wait for the next read signal.

Рассмотрим осуществление заявляемого способа повышения надежности микроЭВМ.Consider the implementation of the proposed method to improve the reliability of microcomputers.

Процессор микроЭВМ при выполнении рабочей программы должен обладать способностью формировать единичный признак чтения кода команды при обращении к основному запоминающему устройству, аналогично тому, как этот признак (Ml) формируется в широко известном микропроцессоре КР 580 ВМ 80А [3].When executing a work program, the microcomputer processor should be able to generate a single sign of reading the command code when accessing the main storage device, similar to how this sign (Ml) is generated in the well-known microprocessor KR 580 VM 80A [3].

На фиг. 1 представлен фрагмент структурной схемы микроЭВМ, где 1 - процессор; 2 - однонаправленная m-разрядная шина адреса; 3 -двунаправленная n-разрядная шина данных; 4 - шина управления; 5 - первая схема «И»; 6 - сумматор по модулю 2 на (n+2) входа; 7 - дополнительное однобитовое запоминающее устройство; 8 - основное (программное) n-разрядное запоминающее устройство; 9 - формирователь стробирующих сигналов C1, С2, С3, формируемых соответственно на выходах 9.1, 9.2, 9.3; 10 - сигнал признака чтения кода команды (ЧКК); 11 - сигнал чтения основного и дополнительного запоминающих устройств (ЧТ); 12 - схема «ИЛИ»; 13 - вторая схема «И»; 14 - дешифратор кода команды; 15 - первый счетчик; 16 - второй счетчик; 17 - схема выделения нулевого состояния первого счетчика; 18 - схема сравнения m-разрядных кодов (m-разрядность шины адреса); 19 - первый инвертор; 20 - второй инвертор; 21 - третья схема «И»; 22 - четвертая схема «И».In FIG. 1 presents a fragment of the structural diagram of a microcomputer, where 1 is a processor; 2 - unidirectional m-bit address bus; 3-way bidirectional n-bit data bus; 4 - control bus; 5 - the first scheme "And"; 6 - adder modulo 2 at the (n + 2) input; 7 - additional single-bit storage device; 8 - the main (software) n-bit storage device; 9 - gate driver C1, C2, C3, formed respectively at the outputs 9.1, 9.2, 9.3; 10 - signal sign read command code (CCK); 11 - read signal of the primary and secondary storage devices (CT); 12 - scheme "OR"; 13 - the second scheme "And"; 14 - decoder command code; 15 - the first counter; 16 - second counter; 17 is a diagram for allocating a zero state of a first counter; 18 is a diagram for comparing m-bit codes (m-bit address bus); 19 - the first inverter; 20 - second inverter; 21 - the third scheme "And"; 22 - the fourth scheme "And."

На фиг. 2 представлена временная диаграмма, характеризующая временное соотношение между сигналом чтения (ЧТ) из основного и дополнительного запоминающего устройств и стробирующими сигналами С1, С2 и С3.In FIG. 2 is a timing chart characterizing the temporal relationship between a read signal (CT) from the primary and secondary storage devices and gate signals C1, C2 and C3.

Способ осуществляется следующим образом.The method is as follows.

На основе предварительного анализа рабочей программы процессора 1, представленной в виде двоичных кодов, определяют адреса тех ячеек основного запоминающего устройства 8, в которых будут содержаться коды команд. Для каждой такой ячейки определяется количество единичных значений, содержащихся в коде команды, при этом если количество единичных значений в коде команде четное, то в соответствующий бит дополнительного запоминающего устройства 7 должна впоследствии записываться единица (то есть код команды дополняется до нечетности). Для всех других кодовых слов рабочей программы, включая и неиспользуемые программой ячейки основного запоминающего устройства 8, кодовые слова при помощи дополнительного запоминающего устройства 7 дополняются до четности.Based on a preliminary analysis of the working program of the processor 1, presented in the form of binary codes, determine the addresses of those cells of the main storage device 8, which will contain the command codes. For each such cell, the number of unit values contained in the command code is determined; moreover, if the number of unit values in the command code is even, then one must subsequently be written to the corresponding bit of the additional storage device 7 (i.e., the command code is supplemented to oddness). For all other codewords of the work program, including cells of the main storage device 8 that are not used by the program, the code words are supplemented with parity using the additional storage device 7.

Затем рабочая программа процессора 1, представленная в виде двоичных кодов, загружается в основное запоминающее устройство 8, а в дополнительное запоминающее устройство 7 загружаются найденные значения бит. Загрузка информации в основное 8 и дополнительное 7 запоминающие устройства может производиться как в составе микроЭВМ, так и вне нее.Then, the working program of the processor 1, presented in the form of binary codes, is loaded into the main storage device 8, and the found bit values are loaded into the additional storage device 7. Downloading information to the main 8 and additional 7 storage devices can be performed both within the microcomputer and outside it.

В рабочем режиме функционирования основное 8 и дополнительное 7 запоминающие устройства образуют единое (n+1) разрядное запоминающее устройство, где n-разрядность шины данных процессора 1. На адресные входы основного 8 и дополнительного 7 запоминающих устройств одновременно подаются коды адреса, формируемые процессором 1 на m-разрядной шине адреса 2. Все n выходов основного запоминающего устройства 8 стандартно подключаются к шине данных 3 и дополнительно к n входам (n+2)-входового сумматора по модулю два 6. К (n+1)-му входу сумматора 6 подключается выход дополнительного запоминающего устройства 7, а к (n+2)-му входу сумматора 6 подключается сигнал 10 признака чтения кода команды, формируемый процессором 1 при выполнении программы и передаваемый по шине управления 4. Сигнал с выхода сумматора по модулю два 6 поступает на первый вход первой схемы «И» 5, на второй вход которой поступает стробирующий сигнал С2, который в свою очередь формируется формирователем 9 на выходе 9.2 из сигнала 11 чтения (ЧТ), одновременно поступающего из шины управления 4 на соответствующие входы запоминающих устройств 7 и 8. Выход первой схемы «И» 5 подключается к первому входу схемы «ИЛИ» 12, а выход схемы «ИЛИ» 12 подключается к входу прерывания процессора 1. На первый вход второй схемы «И» 13 поступает сигнал 10 признака чтения кода команды, а на второй вход второй схемы «И» 13 поступает первый стробирующий сигнал С1, который формируется формирователем 9 на выходе 9.1 из сигнала 11 чтения (ЧТ), выход второй схемы «И» 13 подключается к первым управляющим входам первого счетчика 15 и второго счетчика 16, вторые управляющие входы которых подключены к выходу четвертой схемы «И» 22, первый вход которой подключен выходу первого инвертора 19, а второй вход к выходу 9.3 формирователя 9, который формирует на выходе 9.3 третий стробирующий сигнал С3. Входы дешифратора кода команды 14 подключены к шине данных 3, а выходы дешифратора 14 подключены к входам параллельной загрузки первого счетчика 15, выходы которого подключены к входам схемы выделения нулевого состояния первого счетчика 17, выход которой соединен со входом первого инвертора 19, выход которого подключен к третьему входу третьей схемы «И» 21, второй вход которой соединен с выходом 9.2 формирователя 9, а третий вход третьей схемы «И» 21 подключен к выходу второго инвертора 20, выход третьей схемы «И» соединен с вторым входом схемы «ИЛИ» 12. Входы параллельной загрузки второго счетчика 16 подключены к m-разрядной шине адреса 2, которые также подключены к вторым входам схемы сравнения m-разрядных кодов 18, к первым входам которой подключены выходы второго счетчика 16, а выход схемы сравнения m-разрядных кодов 18 подключен к входу второго инвертора 20.In the operating mode of operation, the main 8 and additional 7 memory devices form a single (n + 1) bit memory device, where the n-bit data bus of processor 1. At the address inputs of the main 8 and additional 7 memory devices, the address codes generated by processor 1 on m-bit address bus 2. All n outputs of the main storage device 8 are standardly connected to the data bus 3 and in addition to the n inputs of the (n + 2) -input adder modulo two 6. To the (n + 1) -th input of adder 6 is connected at the output of the additional storage device 7, and to the (n + 2) -th input of the adder 6 is connected a signal 10 of the sign of reading the command code generated by the processor 1 when the program is running and transmitted via the control bus 4. The signal from the output of the adder modulo two 6 goes to the first the input of the first circuit "And" 5, the second input of which receives the gate signal C2, which in turn is generated by the driver 9 at the output 9.2 of the read signal 11 (CT), simultaneously coming from the control bus 4 to the corresponding inputs of the storage devices 7 and 8. The output of the first AND circuit 5 is connected to the first input of the OR circuit 12, and the output of the OR circuit 12 is connected to the interrupt input of processor 1. At the first input of the second AND circuit 13, a signal 10 of a sign for reading a command code is received, and at the second input of the second circuit "And" 13 receives the first gate signal C1, which is generated by the driver 9 at the output 9.1 of the read signal 11 (CH), the output of the second circuit "And" 13 is connected to the first control inputs of the first counter 15 and the second counter 16 the second control inputs of which are connected to the output of the fourth circuit “I” 22, the first input of which is connected to the output of the first inverter 19, and the second input to the output 9.3 of the driver 9, which generates a third gate signal C3 at the output 9.3. The inputs of the decoder of the command code 14 are connected to the data bus 3, and the outputs of the decoder 14 are connected to the inputs of the parallel load of the first counter 15, the outputs of which are connected to the inputs of the zero-state allocation circuit of the first counter 17, the output of which is connected to the input of the first inverter 19, the output of which is connected to the third input of the third AND circuit 21, the second input of which is connected to the output 9.2 of the shaper 9, and the third input of the third AND circuit 21 is connected to the output of the second inverter 20, the output of the third AND circuit is connected to the second input of the OR circuit 12. The parallel boot inputs of the second counter 16 are connected to the m-bit address bus 2, which are also connected to the second inputs of the comparison circuit of m-bit codes 18, the first inputs of which are connected to the outputs of the second counter 16, and the output of the comparison circuit of m-bit codes 18 connected to the input of the second inverter 20.

Процессор 1 начинает свою работу с того, что устанавливает на шину адреса 2 двоичный код ячейки памяти основного 8 и дополнительного 7 запоминающих устройств, из которой будет считываться записанная в них информация. Одновременно с установкой кода на шине адреса 2 процессор 1 формирует на одной из линий шины управления 4 единичный сигнал 10, поступающий на (n+2)-й вход сумматора 6 и первый вход второй схемы «И» 13, свидетельствующий о том, что данные, считанные процессором 1 из данной ячейки основного запоминающего устройства 8, будут интерпретироваться процессором 1 как код команды. Иначе говоря, процессор формирует признак 10 чтения кода команды из ячейки основного запоминающего устройства 8. Далее, на одной из линий шины управления 4 формируется сигнал чтения 11 из ячеек с одинаковым адресом основной 8 и дополнительной 7 памяти. Одновременно с фронтом сигнала чтения 11 запускается формирователь 9, генерирующий на выходах 9.1, 9.2, 9.3 три разнесенных во времени стробирующих сигнала C1, С2, С3. С началом действия сигнала чтения на выходах основного 8 и дополнительного 7 запоминающих устройств формируются коды, записанные в их ячейках памяти. Код из основного 8 запоминающего устройства поступает в шину данных 3 и на n входов сумматора 6. На (n+1) вход сумматора 6 поступает код с дополнительного 7 запоминающего устройства. К моменту формирования фронта сигнала стробирования С2 сумматор 6 формирует на своем выходе стабильный признак четности или нечетности (n+2) разрядного входного кода. Сигнал с выхода сумматора 6 поступает на первый вход первой схемы «И» 5. При единичном значении стробирующего сигнала С2, поступающего на второй вход первой схемы «И» 5, проверяется значение сигнала с выхода сумматора 6. Если на выходе сумматора 6 сформирован «0», то это свидетельствует о том, что код, считанный из основного 8 и дополнительно 7 запоминающих устройств, не имеет единичных искажений и правильно интерпретируется процессором 1. Если на выходе сумматора 6 сформирована «1», то это свидетельствует о том, что код, считанный из основного 8 и дополнительно 7 запоминающих устройств, либо имеет единичные искажения, либо этот код неправильно интерпретируется процессором 1, при этом на выходе первой схемы «И» 5 будет сформирован единичный сигнал, по длительности примерно равный стробирующему сигналу С2 и вызывающий прерывание процессора при прохождении через схему «ИЛИ» 12.The processor 1 begins its work by installing on the address bus 2 the binary code of the memory cell of the main 8 and additional 7 storage devices from which the information recorded in them will be read. Simultaneously with setting the code on the address bus 2, the processor 1 forms on a line of the control bus 4 a single signal 10 arriving at the (n + 2) -th input of the adder 6 and the first input of the second circuit “I” 13, indicating that the data read by the processor 1 from this cell of the main storage device 8 will be interpreted by the processor 1 as a command code. In other words, the processor generates a sign 10 to read the command code from the cell of the main storage device 8. Next, on one of the lines of the control bus 4, a read signal 11 from the cells with the same address of the main 8 and additional 7 memory is generated. Simultaneously with the front of the read signal 11, the shaper 9 is launched, generating at the outputs 9.1, 9.2, 9.3 three spaced-apart gate signals C1, C2, C3. With the beginning of the action of the read signal at the outputs of the main 8 and additional 7 storage devices, codes are recorded in their memory cells. The code from the main 8 storage device enters the data bus 3 and the n inputs of the adder 6. At (n + 1) the input of the adder 6 receives the code from the additional 7 storage device. By the time the front of gate signal C2 is formed, the adder 6 generates at its output a stable sign of the parity or oddness of (n + 2) bit input code. The signal from the output of the adder 6 is fed to the first input of the first circuit “And” 5. With a single value of the gate signal C2 supplied to the second input of the first circuit “And” 5, the signal value from the output of the adder 6. If the output of the adder 6 is formed “0 ”, This indicates that the code read from the main 8 and additional 7 memory devices does not have single distortions and is correctly interpreted by processor 1. If“ 1 ”is generated at the output of adder 6, this indicates that the code read from the main 8 and an additional 7 storage devices, either has a single distortion, or this code is incorrectly interpreted by processor 1, while a single signal will be generated at the output of the first “And” 5 circuit, approximately equal in length to the gate signal C2 and causing processor interruption when passing through the “OR” circuit " 12.

Параллельно с контролем единичных искажений считываемых из основного 8 и дополнительного 7 запоминающих устройств данных и правильности интерпретации кодов команд производится проверка целостности байтовой структуры команды процессора. Для этого предварительно для каждой команды процессора определяется ее байтовая структура, то есть количество байт, необходимых для выполнения каждой команды. На основании такой информации синтезируется дешифратор кода команды 14. Данные, установленные на шине данных на интервале времени, равному длительности сигнала чтения 11, дешифрируются дешифратором кода команды 14, двоичный код, с выхода которого при единичном сигнале чтения кода команды 10 соответствует количеству байт данной команды. По стробирующему сигналу С1, проходящему через вторую схему «И» 13 при единичном сигнале чтения кода команды 10, код с выхода дешифратора 14 загружается в первый счетчик 15 и по тому же сигналу во второй счетчик 16 с шины адреса 2 загружается код адреса читаемой ячейки основной 8 и дополнительной 7 памяти. По истечении некоторого времени по стробирующему сигналу С2, формируемому на выходе 9.2 формирователя 9 и поступающему на второй вход третьей схемы «И» 21, опрашивается сигнал результата сравнения с выхода схемы сравнения 18, который через второй инвертор 20 поступает на первый вход третьей схемы «И» 21. С выхода третьей схемы «И» 21 сигнал прерывания процессора будет формироваться только в том случае, если на выходе схемы сравнения 18 будет сформирован сигнал, равный «0», что соответствует неравенству кодов на входе схемы сравнения 18. При этом на выходе схемы выделения нулевого состояния первого счетчика 15 должен также формироваться сигнал, равный «0», свидетельствующий о том, что первый счетчик 15 содержит код, отличный от нуля. В том случае, если на выходе схемы сравнения 18 будет сформирован сигнал, равный «1», что соответствует равенству кодов на входе схемы сравнения 18, сигнал прерывания процессора с выхода третьей схемы «И» 21 формироваться не будет. По истечении некоторого времени формирователь 9 сформирует на выходе 9.3 стробирующий сигнал С3, по которому в первом счетчике 15 код уменьшится на единицу, а во втором счетчике 16 увеличится на единицу, прогнозируя тем самым адрес следующей читаемой ячейки основной 8 и дополнительной 7 памяти для многобайтной команды. Уменьшение содержимого первого счетчика 15 и увеличение второго счетчика 16 будет продолжаться по каждому последующему сигналу чтения 11 до тех пор, пока в первом счетчике 15 не установится код, равный нулю. Далее при нормальной работе процессора цикл проверки целостности байтовой структуры повторяется для следующей команды.In parallel with the control of individual distortions read from the main 8 and 7 additional data storage devices and the correct interpretation of instruction codes, the integrity of the byte structure of the processor instruction is checked. To do this, previously for each processor instruction, its byte structure is determined, that is, the number of bytes required to execute each command. Based on this information, the decoder of the command code 14 is synthesized. The data installed on the data bus at a time interval equal to the duration of the read signal 11 is decrypted by the decoder of the code of the command 14, the binary code from which the output signal for a single signal reads the command code 10 corresponds to the number of bytes of this command . According to the gate signal C1, passing through the second circuit “And” 13 with a single signal for reading the command code 10, the code from the output of the decoder 14 is loaded into the first counter 15 and the same signal is sent to the second counter 16 from the address bus 2, the address code of the main cell to be read 8 and additional 7 memory. After some time, the signal of the comparison result from the output of the comparison circuit 18, which through the second inverter 20 enters the first input of the third circuit “And”, is interrogated by the gate signal C2 generated at the output 9.2 of the driver 9 and supplied to the second input of the third AND circuit 21 "21. From the output of the third AND circuit 21, a processor interrupt signal will be generated only if a signal equal to" 0 "is generated at the output of the comparison circuit 18, which corresponds to the inequality of the codes at the input of the comparison circuit 18. At the same time, Exit assignment scheme zero state of the first counter 15 should also form a signal equal to "0", indicating that the first counter 15 comprises a code other than zero. In the event that a signal equal to “1” is generated at the output of the comparison circuit 18, which corresponds to the equality of codes at the input of the comparison circuit 18, a processor interrupt signal from the output of the third AND circuit 21 will not be generated. After some time, the shaper 9 will generate a gate signal C3 at the output 9.3, according to which the code will decrease by one in the first counter 15 and increase by one in the second counter 16, thereby predicting the address of the next readable cell of the main 8 and additional 7 memory for a multibyte command . The decrease in the contents of the first counter 15 and the increase in the second counter 16 will continue for each subsequent read signal 11 until a code equal to zero is established in the first counter 15. Further, during normal processor operation, the byte structure integrity check cycle is repeated for the next command.

Техническим результатом от использования заявляемого изобретения является расширение функциональных возможностей способа повышения надежности микроЭВМ за счет оперативного контроля в рабочем режиме за целостностью байтовой структуры многобайтных команд.The technical result from the use of the claimed invention is to expand the functionality of the method of increasing the reliability of microcomputers due to operational control in the operating mode of the integrity of the byte structure of multibyte instructions.

Источники информацииInformation sources

1. Карлащук В.И. Электронная лаборатория на IBM PC. Лабораторный практикум на базе Electronics Workbench и MATLAB. - М.: СОЛОН-Пресс, 204. - 800 с., стр. 366.1. Karlashchuk V.I. Electronic lab on IBM PC. Laboratory workshop based on Electronics Workbench and MATLAB. - M .: SOLON-Press, 204. - 800 p., P. 366.

2. Патент RU 2530325 Российская Федерация, МПК G06F11/10. Способ повышения надежности микроЭВМ / М.В. Рожков, С.В. Тюрин; заявитель и патентообладатель ФБГОУ ВПО "Воронежский государственный технический университет". - №2012116018; заявл. 19.04.2012; опубл. 10.10.2014. Бюл. №28.2. Patent RU 2530325 Russian Federation, IPC G06F11 / 10. A way to improve the reliability of microcomputers / M.V. Rozhkov, S.V. Tyurin; Applicant and patent holder of the Voronezh State Technical University. - No. 2012116018; declared 04/19/2012; publ. 10/10/2014. Bull. No. 28.

3. Микропроцессоры и микропроцессорные комплекты интегральных микросхем: Справочник. В 2 т. / В.-Б.Б. Абрайтис, Н.Н. Аверьянов, А.И. Белоус и др. Под ред. В.А. Шахнова. - М.: Радио и связь, 1988. - Т. 1. - 386 с.3. Microprocessors and microprocessor sets of integrated circuits: a Reference. In 2 t. / B.-.B. B. Abraitis, N.N. Averyanov, A.I. Belous et al. Ed. V.A. Shakhnova. - M .: Radio and communications, 1988. - T. 1. - 386 p.

Claims (1)

Способ повышения надежности микроЭВМ, заключающийся в том, что к n-разрядному основному программному запоминающему устройству микроЭВМ предварительно добавляют дополнительное однобитовое запоминающее устройство, которые в рабочем режиме образуют единое (n+1)-разрядное запоминающее устройство, затем в n-разрядные ячейки основного запоминающего устройства загружают программу работы процессора в виде машинных кодов, после чего в каждую однобитовую ячейку дополнительного запоминающего устройства записывают единицу или ноль таким образом, чтобы в (n+1) битах дополнительного запоминающего устройства и основного запоминающего устройства, в ячейках которого содержатся коды команд, сумма единичных значений была бы нечетной, а в ячейках которого содержатся все остальные коды - четной, при этом в режиме работы микроЭВМ при чтении данных из основного и дополнительного запоминающих устройств считанные данные и однобитовый признак чтения кода команды, автоматически формируемый микроЭВМ, проверяют на четность сумматором по модулю два, сигнал с выхода которого подают на вход прерывания процессора, который переходит на подпрограмму обработки прерывания в случае нечетности данных, поступающих на входы сумматора по модулю два, при этом на n входов сумматором по модулю два одновременно подают данные из основного запоминающего устройства, на вход (n+1) - из дополнительного запоминающего устройства, а на (n+2)-й вход - признак чтения кода команды, отличающийся тем, что в первом такте чтения из основного запоминающего устройства кода каждой команды определяют с помощью дешифратора кода команды количество байт в данной команде, затем при единичном значении признака чтения кода команды запоминают в первом счетчике найденное количество байт в команде и одновременно с этим во втором счетчике запоминают код адреса читаемой ячейки памяти, который к этому моменту времени оказывается сформированным на шине адреса и который по истечении некоторого времени сравнивают с кодом адреса, ранее записанным во второй счетчик, и в случае их несовпадения формируют дополнительный сигнал ошибки, поступающий на вход прерывания процессора, в том же случае, если код адреса на шине адреса и код, записанный во второй счетчик, совпадут, одновременно увеличивают на единицу содержимое второго счетчика, а содержимое первого счетчика уменьшают на единицу, затем если в первом счетчике оказывается код, равный нулю, то ожидают следующего обращения к основной памяти за кодом следующей команды, после чего реализуют следующий цикл обработки кода новой команды, если же в первом счетчике оказывается код, не равный нулю, то по каждому следующему сигналу чтения байт многобайтной команды проверяют на равенство код второго счетчика с кодом на шине адреса и в случае их равенства уменьшают на единицу содержимое первого счетчика и одновременно увеличивают на единицу содержимое второго счетчика и ожидают следующего сигнала чтения.A method of increasing the reliability of a microcomputer, namely, that an additional one-bit storage device is preliminarily added to the n-bit main program memory of the microcomputer, which, in operating mode, form a single (n + 1) -bit storage device, and then to n-bit cells of the main storage devices load the processor program in the form of machine codes, after which one or zero is written to each one-bit cell of the additional storage device in this way m, so that in (n + 1) bits of the additional storage device and the main storage device, in the cells of which the codes of commands are contained, the sum of the unit values would be odd, and in the cells of which all other codes are contained - even, while in the microcomputer operating mode at when reading data from the primary and secondary storage devices, the read data and the one-bit indication of reading the command code automatically generated by the microcomputer are checked for parity by an adder modulo two, the output signal of which is fed to the input of the interrupt processor, which goes to the interrupt processing routine in case of odd data arriving at the inputs of the adder modulo two, while the n inputs of the adder modulo two simultaneously feed data from the main storage device, to the input (n + 1) - from the additional storage devices, and at the (n + 2) -th input - a sign of reading the command code, characterized in that in the first cycle of reading from the main storage device the code of each command is determined using the command code decoder the number of bytes in this command then, at a single value of the sign of reading the code of the command, the found number of bytes in the command is stored in the first counter and at the same time the address code of the readable memory cell is stored in the second counter, which at this point in time is formed on the address bus and which after some time is compared with with the address code previously recorded in the second counter, and in case of mismatch, they generate an additional error signal received at the processor interrupt input, in the same case, if the address code is on the bus the addresses and the code recorded in the second counter coincide, at the same time increase by one the contents of the second counter, and the contents of the first counter are reduced by one, then if the first counter contains a code equal to zero, then they wait for the next access to the main memory for the code of the next command, after which the next cycle of processing the code of the new command is implemented, if the first counter contains a code that is not equal to zero, then for each subsequent read signal of the bytes of the multibyte command, the code of the second counter is checked for equality code on the address bus, and if they are equal, reduce the contents of the first counter by one and at the same time increase the contents of the second counter by one and wait for the next read signal.
RU2015156099A 2015-12-25 2015-12-25 Method for increasing microcomputer reliability RU2615314C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2015156099A RU2615314C1 (en) 2015-12-25 2015-12-25 Method for increasing microcomputer reliability

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2015156099A RU2615314C1 (en) 2015-12-25 2015-12-25 Method for increasing microcomputer reliability

Publications (1)

Publication Number Publication Date
RU2615314C1 true RU2615314C1 (en) 2017-04-04

Family

ID=58507006

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015156099A RU2615314C1 (en) 2015-12-25 2015-12-25 Method for increasing microcomputer reliability

Country Status (1)

Country Link
RU (1) RU2615314C1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887146A (en) * 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US6950978B2 (en) * 2001-03-29 2005-09-27 International Business Machines Corporation Method and apparatus for parity error recovery
US20140136915A1 (en) * 2012-11-15 2014-05-15 Elwha LLC, a limited liability corporation of the State of Delaware Error correction with non-volatile memory on an integrated circuit
RU2530325C2 (en) * 2012-04-19 2014-10-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Воронежский государственный технический университет" Method of improving microcomputer reliability

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887146A (en) * 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US6950978B2 (en) * 2001-03-29 2005-09-27 International Business Machines Corporation Method and apparatus for parity error recovery
RU2530325C2 (en) * 2012-04-19 2014-10-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Воронежский государственный технический университет" Method of improving microcomputer reliability
US20140136915A1 (en) * 2012-11-15 2014-05-15 Elwha LLC, a limited liability corporation of the State of Delaware Error correction with non-volatile memory on an integrated circuit

Similar Documents

Publication Publication Date Title
US9996696B2 (en) Systems and methods to optimize execution of a software program using a type based self assembling control flow graph
EP3198425B1 (en) Compiler caching for runtime routine redundancy tracking
EP2722760B1 (en) Semiconductor device
US20160147586A1 (en) Device and method for executing a program, and method for storing a program
CN1993679B (en) Method, operating system, and computing device for processing a computer program
US20130283105A1 (en) Method and System for Realtime Detection of Stack Frame Corruption During Nested Procedure Calls
US9176739B2 (en) System and method for checking run-time consistency for sequentially and non-sequentially fetched instructions
US20120117426A1 (en) Method and program for verifying operation of processor
US8099717B2 (en) Tracking method for embedded system
JP2008513899A (en) Method for processing a computer program on a computer system
Jafari-Nodoushan et al. Control-flow checking using branch instructions
EP2487594B1 (en) Error propagation in a system model
RU2615314C1 (en) Method for increasing microcomputer reliability
CN110688320B (en) Global variable detection method and device and terminal equipment
US9256398B2 (en) Device and method of increasing dynamically-typed software efficiency
EP2499568B1 (en) Timing analysis
US8176406B2 (en) Hard error detection
US8954794B2 (en) Method and system for detection of latent faults in microcontrollers
CN101779192A (en) Data processing with protection against soft errors
US10162728B2 (en) Method and device for monitoring the execution of a program code
RU2530325C2 (en) Method of improving microcomputer reliability
CN114217856A (en) AArch64 architecture-oriented CPU instruction micro-benchmark test method and system
US20130318327A1 (en) Method and apparatus for data processing
JP4382128B2 (en) Information processing apparatus and error calculation detection method thereof
US20220374236A1 (en) Method and system for optimizing address calculations