RU2327236C2 - Random access memory with high extent of fault tolerance - Google Patents

Random access memory with high extent of fault tolerance Download PDF

Info

Publication number
RU2327236C2
RU2327236C2 RU2005141193/09A RU2005141193A RU2327236C2 RU 2327236 C2 RU2327236 C2 RU 2327236C2 RU 2005141193/09 A RU2005141193/09 A RU 2005141193/09A RU 2005141193 A RU2005141193 A RU 2005141193A RU 2327236 C2 RU2327236 C2 RU 2327236C2
Authority
RU
Russia
Prior art keywords
memory
ram
cache
input
word
Prior art date
Application number
RU2005141193/09A
Other languages
Russian (ru)
Other versions
RU2005141193A (en
Inventor
Анатолий Сергеевич Сыров (RU)
Анатолий Сергеевич Сыров
Виктор Владимирович Смирнов (RU)
Виктор Владимирович Смирнов
Владимир Васильевич Синельников (RU)
Владимир Васильевич Синельников
Михаил Федорович Каравай (RU)
Михаил Федорович Каравай
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 RU2005141193/09A priority Critical patent/RU2327236C2/en
Publication of RU2005141193A publication Critical patent/RU2005141193A/en
Application granted granted Critical
Publication of RU2327236C2 publication Critical patent/RU2327236C2/en

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

FIELD: technological processes.
SUBSTANCE: invention is related to the sphere of automatics and computer equipment and is intended for increase of RAM fault tolerance in control systems of true time. Device consists of memory address register (1) redundant RAM (2) equipped with Hamming code, controller of Hamming code (3) register of memory data (4) adder by module two (5) diagnostic cash memory (6) two registers - inverters (7) and (8) input (9) and output (10) multiplexers, element OR (11) element AND (12), adder of word error bits threshold (13) and control box (14).
EFFECT: increase of fault tolerance in relation to single, double and triple combined faults and malfunctions; expansion of functional resources.
5 dwg, 1 tbl

Description

Изобретение относится к области автоматики и вычислительной техники и предназначено для повышения отказоустойчивости оперативного запоминающего устройства (ОЗУ) в управляющих системах реального времени.The invention relates to the field of automation and computer technology and is intended to increase the fault tolerance of random access memory (RAM) in real-time control systems.

Известно устройство [1], содержащее избыточные разряды кода Хэмминга и контроллер этого кода, позволяющее обнаруживать одиночные и двойные ошибки в словах памяти ОЗУ и корректировать одиночные ошибки. Эти функции являются стандартными для контроллера кода Хэмминга и применяются во многих ЭВМ повышенной надежности.A device [1] is known that contains redundant bits of the Hamming code and a controller for this code, which allows to detect single and double errors in the RAM memory words and correct single errors. These functions are standard for the Hamming code controller and are used in many high-reliability computers.

Недостатком устройства является невозможность восстановления физически отказавших ячеек ОЗУ (за возможным исключением одной - двух резервных ячеек, иногда применяемых в ОЗУ), что из-за роста со временем кратности ошибки ведет к отказу устройства или к ошибочной коррекции. Даже при наличии резервной строки или столбца в ОЗУ восстановление возможно только для одного отказа ОЗУ, что для ответственных систем, работающих в тяжелых неблагоприятных внешних условиях, явно недостаточно. Кроме того, появление двойного и тройного устойчивого отказа в слове ОЗУ ведет к отказу всего устройства или одного из его каналов, если система многоканально резервирована, что также понижает характеристики отказоустойчивости устройства.The disadvantage of this device is the impossibility of restoring physically failed RAM cells (with the possible exception of one or two backup cells, sometimes used in RAM), which, due to an increase in the error rate over time, leads to device failure or to erroneous correction. Even if there is a backup row or column in RAM, recovery is possible for only one RAM failure, which is clearly not enough for critical systems operating in severe adverse environmental conditions. In addition, the appearance of a double and triple steady failure in the word RAM leads to a failure of the entire device or one of its channels if the system is multi-channel redundant, which also lowers the fault tolerance characteristics of the device.

Известно устройство [2], представляющее собой сервер высокопроизводительной вычислительной системы pSeries 690 фирмы IBM (США), построенной на базе микропроцессора POWER4, имеющее высокопроизводительную отказоустойчивую многоуровневую память (ОЗУ), спроектированную в технологии RAS (высокая надежность, готовность и обслуживаемость) для работы в условиях возникновения аппаратурных сбоев и отказов. В известном устройстве высокая отказоустойчивость памяти достигается за счет хранения результатов текущих вычислений в кэш-памяти трех уровней (помимо ОЗУ), при этом 64KB кэш-команд и 32KB кэш-данных внутри чипа защищены битами паритета, а кэш межмодульной связи и кэш-директорий связи с ОЗУ (до 32 MB) и само ОЗУ защищены кодом Хэмминга. При невосстановимом отказе (например, кратном) в кэш уровня i(i=1, 2, 3) корректный результат в реальном времени берется из уровня i+1, вплоть до «уровня» ОЗУ.A device [2] is known, which is a server of a high-performance computing system pSeries 690 from IBM (USA), built on the basis of a POWER4 microprocessor, having a high-performance fault-tolerant multi-level memory (RAM), designed in RAS technology (high reliability, availability and serviceability) to work in conditions of hardware failures and failures. In the known device, high fault tolerance of the memory is achieved by storing the results of the current calculations in the cache of three levels (in addition to RAM), while 64KB of cache instructions and 32KB of cache data inside the chip are protected by parity bits, and the intermodular communication cache and communication directory cache with RAM (up to 32 MB) and RAM itself are protected by a Hamming code. In case of an unrecoverable failure (for example, multiple) to the cache of level i (i = 1, 2, 3), the correct result in real time is taken from level i + 1, up to the "level" of RAM.

Недостатком устройства является невозможность восстановления физически отказавших ячеек кэш-памяти и ОЗУ, что из-за роста со временем кратности ошибки ведет к деградации памяти отключением отказавших разделов, к отказу устройства или к ошибочной коррекции. При этом основной негативный вклад в снижение надежности памяти вносят двойные и тройные устойчивые отказы, поскольку борьба с двойными сбоями ведется известными системными методами: профилактической очисткой памяти от одиночных сбоев (так называемый scrubbing) с помощью контроллеров-«чистильщиков», постоянно или периодически собирающих «мусор» в виде слов с одиночной ошибкой типа сбоя в ОЗУ для восстановления правильного значения и записи его на прежнее место в памяти; введением программных точек возврата и перезагрузок из более высокого уровня памяти вплоть до постоянного запоминающего устройства команд и сохраненных критических данных.The disadvantage of this device is the impossibility of restoring physically failed cache and RAM cells, which, due to an increase in the error rate over time, leads to memory degradation by shutting down failed partitions, to device failure or to erroneous correction. The main negative contribution to reducing the reliability of memory is made by double and triple stable failures, since the fight against double failures is carried out by well-known system methods: preventive cleaning of memory from single failures (the so-called scrubbing) with the help of controllers “cleaners” that constantly or periodically collect “ garbage "in the form of words with a single error such as a failure in RAM to restore the correct value and write it to its previous place in memory; the introduction of software return points and reboots from a higher memory level up to a permanent memory device commands and stored critical data.

Наиболее близким по техническому решению к предлагаемому изобретению является отказоустойчивое оперативное запоминающее устройство [3], содержащее избыточное ОЗУ, снабженное кодом Хэмминга, контроллер кода Хэмминга, регистр адреса памяти, регистр данных памяти и сумматор по модулю два, вычисляющий синдром устойчивой ошибки.Closest to the technical solution to the present invention is a fault-tolerant random access memory [3], containing redundant RAM, equipped with a Hamming code, a Hamming code controller, a memory address register, a memory data register, and an adder modulo two that computes a stable error syndrome.

Известное устройство позволяет восстанавливать информацию при возникновении кратных устойчивых отказов в ОЗУ. В известном устройстве используется алгоритм восстановления информации за счет повторной записи по тому же адресу инвертированного считанного из избыточного ОЗУ слова, предложенный в [4]. В [3] этот алгоритм расширен для коррекции скрытых устойчивых отказов в ОЗУ.The known device allows you to restore information in the event of multiple steady failures in RAM. In the known device, an information recovery algorithm is used due to the repeated recording at the same address of the inverted word read from the excess RAM proposed in [4]. In [3], this algorithm was expanded to correct latent steady failures in RAM.

Недостатком известного устройства является снижение быстродействия основного вычислительного канала за счет постоянной обработки искаженных слов при неоднократной адресации к ним в ОЗУ. Кроме того, сохранение обращений к физически отказавшим ячейкам памяти ведет со временем к повышению вероятности увеличения кратности ошибки в слове ОЗУ как за счет сбоев, так и устойчивых отказов, что, в свою очередь, ведет к ошибочной коррекции информации и к отказу устройства. Предложенный в известном устройстве [3] механизм вычисления и применения поправок требует добавочной памяти, емкостью, как минимум, равной основной памяти. Последнее может быть приемлемым только для очень маленьких ОЗУ (в [3] - восемь слов), дублирование же ОЗУ, реально в системах управления имеющего емкость порядка 0,5-50 Мегабайт статической памяти в рамках одного канала, обычно неприемлемо по соображениям надежности, потребления энергии и стоимости.A disadvantage of the known device is the decrease in the speed of the main computing channel due to the constant processing of distorted words with repeated addressing to them in RAM. In addition, the preservation of accesses to physically failed memory cells leads over time to increasing the likelihood of increasing the error rate in the RAM word due to failures and steady failures, which, in turn, leads to erroneous information correction and device failure. The mechanism for calculating and applying corrections proposed in the known device [3] requires additional memory with a capacity of at least equal to the main memory. The latter may be acceptable only for very small RAM (in [3] - eight words), duplication of RAM, which is real in control systems with a capacity of about 0.5-50 megabytes of static memory in one channel, is usually unacceptable for reasons of reliability, consumption energy and cost.

Техническим результатом изобретения является повышение степени отказоустойчивости ОЗУ систем управления реального времени по отношению к одиночным, двойным и тройным комбинированным отказам и сбоям при одновременном упрощении устройства и расширении его функциональных возможностей. В целом изобретение позволяет парировать до нескольких сотен отказавших ячеек памяти с подобным типом отказов.The technical result of the invention is to increase the degree of fault tolerance of the RAM of real-time control systems with respect to single, double and triple combined failures and failures while simplifying the device and expanding its functionality. In general, the invention allows to parry up to several hundred failed memory cells with this type of failure.

Указанный технический результат достигается тем, что в известное оперативное запоминающее устройство, содержащее избыточное ОЗУ, снабженное кодом Хэмминга, контроллер кода Хэмминга, регистр адреса памяти, регистр данных памяти, сумматор по модулю два, вычисляющий синдром устойчивой ошибки, дополнительно введены диагностическая кэш-память емкостью порядка 1 Кслово, первый и второй регистры-инверторы, входной и выходной мультиплексоры соответственно на два и три направления, элемент ИЛИ, элемент И, сумматор порога ошибочных битов слова и автомат управления, при этом адресные входы диагностической кэш-памяти подсоединены к индексной части адреса слова памяти ОЗУ, а входы данных диагностической кэш-памяти подсоединены к слову данных ОЗУ и к тэговой части адреса слова памяти ОЗУ, входы управления кэш-памятью соединены с входами управления ОЗУ, входы регистров-инверторов подсоединены к шине данных ОЗУ и к нулевому направлению выходного мультиплексора, выход диагностической кэш-памяти подсоединен в выходу выходного мультиплексора, а выходы регистров-инверторов подсоединены к первому и второму направлениям выходного мультиплексора и к сумматору по модулю два, выходы которого подключены к многовходовому элементу ИЛИ и ко входам сумматора порога ошибочных битов слова, выход элемента ИЛИ подсоединен ко входу элемента И, выходы элемента И, контроллера кода Хэмминга, бита корректности слова ОЗУ и два выхода сумматора порога ошибочных битов слов подключены ко входу автомата управления, управляющие выходы которого заведены на входы управления контроллера кода Хэмминга, управляющие входы мультиплексоров, вход разрешения выдачи содержимого вышеуказанных регистров, на входы Чт./Зап. ОЗУ и диагностической кэш-памяти, и на вход элемента И, при этом выход выходного мультиплексора подключен через регистр данных памяти к первому входу входного мультиплексора и к его второму входу непосредственно, третий выход сумматора порога ошибочных битов слов выведен на сигнал «авария», а второй выход сумматора по модулю два подключен ко второму входу входного мультиплексора 9.The specified technical result is achieved by the fact that in a known random access memory device containing redundant RAM equipped with a Hamming code, a Hamming code controller, a memory address register, a memory data register, a modulo two adder calculating a stable error syndrome, a diagnostic cache with a capacity of of the order of 1 word, the first and second register-inverters, the input and output multiplexers, respectively, in two and three directions, the OR element, the AND element, the adder of the threshold of the error bits of the word and a control automaton, while the address inputs of the diagnostic cache are connected to the index part of the address of the RAM memory word, and the inputs of the diagnostic cache memory are connected to the RAM data word and to the tag part of the RAM memory word address, cache management inputs are connected to the control inputs RAM, the inputs of the register-inverters are connected to the data bus of the RAM and to the zero direction of the output multiplexer, the output of the diagnostic cache is connected to the output of the output multiplexer, and the outputs of the register-inverters are connected They are connected to the first and second directions of the output multiplexer and to the adder modulo two, the outputs of which are connected to the multi-input OR element and to the inputs of the adder of the threshold of the error bits of the word, the output of the OR element is connected to the input of the AND element, the outputs of the AND element, the Hamming code controller, the correctness bit RAM words and two outputs of the threshold word bit adder are connected to the input of the control automaton, whose control outputs are connected to the control inputs of the Hamming code controller, control inputs of multiplexers, input Allowing the above dispensing the contents of registers, the inputs Thurs / Zap. RAM and diagnostic cache, and to the input of the And element, while the output of the output multiplexer is connected through the data register of the memory to the first input of the input multiplexer and to its second input directly, the third output of the adder of the threshold of the error bits of the words is outputted to the alarm signal, and the second output of the adder modulo two is connected to the second input of the input multiplexer 9.

На фиг.1 представлена структурная схема оперативного запоминающего устройства с высокой степенью отказоустойчивости; на фиг.2 - автомат управления; на фиг.3 представлена структура данных контроллера кода Хэмминга, где а - Слово данных в избыточном ОЗУ, б - Слово адреса избыточного ОЗУ, в - Слово данных в диагностической кэш-памяти, г - Слово адреса диагностической кэш-памяти; на фиг.4 - ячейка памяти, отвечающая 22-разрядному адресу в избыточном ОЗУ; на фиг.5 - формат слова в диагностической кэш-памяти.Figure 1 presents the structural diagram of random access memory with a high degree of fault tolerance; figure 2 - automatic control; figure 3 presents the data structure of the Hamming code controller, where a is the Data word in the excess RAM, b is the Address word of the excess RAM, c is the Data word in the diagnostic cache, d is the Word of the address of the diagnostic cache; figure 4 is a memory cell corresponding to a 22-bit address in excess RAM; 5 is a word format in a diagnostic cache.

Оперативное запоминающее устройство с высокой степенью отказоустойчивости (фиг.1) содержит регистр адреса памяти 1 (РАП), избыточное оперативное запоминающее устройство 2 (ОЗУ), снабженное кодом Хэмминга, контроллер кода Хэмминга 3 (ККХ), регистр данных памяти 4 (РДП), сумматор по модулю два 5 (СМД), вычисляющий синдром устойчивой ошибки, диагностическую кэш-память 6 (ДКП) емкостью порядка 1 Кслово, первый 7 (1РИ) и второй 8 (2РИ) регистры-инверторы, входной мультиплексор 9 (В×М) на два направления и выходной мультиплексор 10 (ВыхМ) на три направления, элемент ИЛИ 11, элемент И 12, сумматор порога ошибочных битов слова 13 (СПОБС) и автомат управления 14 (АУ). Блоки 5, 7, 8, 9, 10, 11, 12, 13 вместе с автоматом управления 14 по сути составляют второй контроллер памяти. Адресные входы диагностической кэш-памяти 6 подсоединены к индексной части адреса слова памяти избыточного ОЗУ 2, а входы данных диагностической кэш-памяти 6 подсоединены к слову данных ОЗУ 2 и к тэговой части адреса слова памяти ОЗУ 2, входы управления кэш-памятью 6 соединены с входами управления ОЗУ 2, выход диагностической кэш-памяти 6 подсоединен в выходу выходного мультиплексора 10, входы регистров-инверторов 7, 8 подсоединены к шине данных ОЗУ 2 и к нулевому направлению выходного мультиплексора 10, а выходы регистров-инверторов 7 и 8 подсоединены соответственно к первому и второму направлениям выходного мультиплексора 10 и к входам сумматора по модулю два 5, выходы которого подключены к многовходовому элементу ИЛИ 11 и ко входам сумматора 13, выход элемента ИЛИ 11 подсоединен ко входу элемента И 12. Выход мультиплексора 10 подключен через регистр данных памяти 4 по шине данных к первому входу мультиплексора 9 и к его второму входу непосредственно. Выходы контроллера кода Хэмминга 3 (SE v ME), бита корректности слова избыточного ОЗУ 2 (V), элемента И 12 (Syndr_ust) и два выхода сумматора порога ошибочных битов слова 13 (M_Syndr_ust) подключены ко входам автомата управления 14. Третий выход сумматора порога ошибочных битов слова 13 выведен на сигнал «авария». Второй выход сумматора по модулю два 5 подключен ко второму входу входного мультиплексора 9. Выходы автомата управления 14 подключены соответственно к управляющим входам контроллера кода Хэмминга 3 (CdA, CrA, Latch_en), регистров-инверторов 7 и 8 (en_1, en_2), регистра данных памяти 4 (Mem Data Reg_en), регистра адреса памяти 1 (Addr_en), входного 9 (SE v ME, en_3) и выходного 10 (SE v ME v V, t) мультиплексоров, элемента И 12 (k), избыточного ОЗУ 2 и диагностической кэш-памяти 6 (W/R, Кэш_en).Random access memory with a high degree of fault tolerance (Fig. 1) comprises a memory address register 1 (RAM), redundant random access memory 2 (RAM) equipped with a Hamming code, a Hamming code controller 3 (CCX), a memory data register 4 (RDP), modulo adder two 5 (SMD), calculating the stable error syndrome, diagnostic cache memory 6 (DCT) with a capacity of the order of 1 word, the first 7 (1RI) and the second 8 (2RI) inverter registers, input multiplexer 9 (V × M) in two directions and output multiplexer 10 (VykhM) in three directions, ele ment OR 11, element And 12, the adder threshold of the error bits of the word 13 (SPOBS) and the control unit 14 (AU). Blocks 5, 7, 8, 9, 10, 11, 12, 13, together with the automatic control unit 14, essentially constitute the second memory controller. The address inputs of the diagnostic cache 6 are connected to the index part of the memory word address of the RAM 2, and the data inputs of the diagnostic cache 6 are connected to the data word RAM 2 and to the tag part of the memory word address of the RAM 2, cache control inputs 6 are connected to control inputs of RAM 2, the output of the diagnostic cache 6 is connected to the output of the output multiplexer 10, the inputs of the register-inverters 7, 8 are connected to the data bus of the RAM 2 and to the zero direction of the output multiplexer 10, and the outputs of the register-inverters 7 and 8 are connected are connected respectively to the first and second directions of the output multiplexer 10 and to the inputs of the adder modulo two 5, the outputs of which are connected to the multi-input element OR 11 and to the inputs of the adder 13, the output of the element OR 11 is connected to the input of the element And 12. The output of the multiplexer 10 is connected through the register data memory 4 via the data bus to the first input of the multiplexer 9 and to its second input directly. The outputs of the controller of the Hamming code 3 (SE v ME), the correct word bit of excess RAM 2 (V), the And element 12 (Syndr_ust) and two outputs of the threshold adder of the error bits of the word 13 (M_Syndr_ust) are connected to the inputs of the control automaton 14. The third output of the threshold adder erroneous bits of word 13 are outputted to the alarm signal. The second adder output modulo two 5 is connected to the second input of the input multiplexer 9. The outputs of the control automaton 14 are connected respectively to the control inputs of the Hamming code controller 3 (CdA, CrA, Latch_en), invertor registers 7 and 8 (en_1, en_2), data register memory 4 (Mem Data Reg_en), memory address register 1 (Addr_en), input 9 (SE v ME, en_3) and output 10 (SE v ME v V, t) multiplexers, AND element 12 (k), redundant RAM 2 and Diagnostic Cache 6 (W / R, cache_en).

Автомат управления 14 (фиг.2) предназначен для выдачи циклической последовательности управляющих сигналов, зависящей от значений, принимаемых при считывании из избыточного ОЗУ 2 контрольными сигналами SE, ME, Syndr_ust, M Syndr_ust. Автомат управления 14 синтезируется по стандартным методам на основе управляющей таблицы 1. Управляющие сигналы с выхода автомата управления 14:The control unit 14 (Fig. 2) is designed to provide a cyclic sequence of control signals, depending on the values taken when reading from the excess RAM 2 control signals SE, ME, Syndr_ust, M Syndr_ust. The control unit 14 is synthesized by standard methods based on the control table 1. Control signals from the output of the control unit 14:

SE (single error) - одиночная ошибка;SE (single error) - single error;

ME (multiple error) - кратная ошибка;ME (multiple error) - multiple error;

V (valid) - считываемое из ОЗУ корректное слово;V (valid) - the correct word read from RAM;

CrA - разрешение коррекции;CrA - correction resolution;

CdA - разрешение кодирования;CdA - encoding resolution;

Latch_en - защелка разрешена;Latch_en - latch is enabled;

Mem_Data Reg_en - выдача данных на шину разрешена;Mem_Data Reg_en - data output to the bus is allowed;

Addr_en - разрешение выдачи адреса;Addr_en - permission to issue an address;

t - управляющий сигнал мультиплексора 10;t is the control signal of the multiplexer 10;

W/R - сигнал записи/чтения;W / R - write / read signal;

Кэш_en - разрешение работы с диагностической кэш-памятью;Cache_en - permission to work with diagnostic cache;

k - фаза тактового сигнала.k is the phase of the clock signal.

Сигналы обратной связи, поступающие на вход автомата управления 14:Feedback signals input to the control unit 14:

Syndr_ust - наличие устойчивого отказа;Syndr_ust - persistent failure;

M_Syndr_ust>3 (восстановление не гарантировано) или «авария»;M_Syndr_ust> 3 (recovery is not guaranteed) or “accident”;

SE, МБ, V - см. выше.SE, MB, V - see above.

Устройство работает следующим образом.The device operates as follows.

Автомат управления 14 создает последовательность управляющих сигналов на управляющих входах контроллера кода Хэмминга 3 (CrA, CdA, Latch_en), разрешения выдачи содержимого первого 7 (en_1) и второго 8 (en_2) регистров-инверторов, регистра данных памяти 4 (Mem_Data Reg_en), регистра адреса памяти 1 (Addr_en), входного 9 (SE v ME, en_3) и выходного 10 (SE v ME v V, t) мультиплексоров, избыточного ОЗУ 2 и диагностической кэш-памяти 6 (W/R, Кэш_en), и элемента И 12 (k).The control unit 14 creates a sequence of control signals at the control inputs of the Hamming 3 code controller (CrA, CdA, Latch_en), permitting the contents of the first 7 (en_1) and second 8 (en_2) inverter registers, memory data register 4 (Mem_Data Reg_en), register memory addresses 1 (Addr_en), input 9 (SE v ME, en_3) and output 10 (SE v ME v V, t) multiplexers, redundant RAM 2 and diagnostic cache 6 (W / R, Cache_en), and AND element 12 (k).

Оперативное запоминающее устройство с высокой степенью отказоустойчивости исходно загружено данными (или командными кодами): информационными и контрольными разрядами. Для информации, загружаемой в память в процессе работы (если это - данные), контроллер кода Хэмминга 3 добавляет избыточные контрольные биты. При считывании из памяти тот же контроллер 3 проверяет правильность хранения информации в памяти и сигнализирует о возникших ошибках. В качестве контроллера кода Хэмминга 3 могут быть использованы EDAC-контроллеры (Error Deletion And Correction - обнаружение и коррекция ошибок), которые давно и многократно описаны в литературе, например [1], и широко применяются в компьютерах повышенной надежности. Следует отметить, что известные EDAC- контроллеры генерируют синдром ошибки и два управляющих сигнала SE (single error - одиночная ошибка) и ME (multiple error - кратная ошибка). Пользуясь этой информацией, они способны обнаруживать появление одиночной и двойной ошибки при хранении или считывании и скорректировать одиночную ошибку. При этом кратная ошибка, в частности двойная, рассматривается как невосстановимая катастрофическая, требующая прерывания работы и обращения на уровень операционной системы. Повышение корректирующей способности по сравнению с известными EDAC-контроллерами за счет расширения мощности кода представляет значительные трудности и в промышленных системах применяется крайне редко.Random access memory with a high degree of fault tolerance is initially loaded with data (or command codes): information and control bits. For information loaded into memory during operation (if it is data), the Hamming 3 code controller adds redundant control bits. When reading from memory, the same controller 3 checks the correctness of the storage of information in the memory and signals errors that have occurred. As a Hamming 3 code controller, EDAC controllers (Error Deletion And Correction) can be used, which have been described many times in the literature, for example [1], and are widely used in computers of increased reliability. It should be noted that the well-known EDAC controllers generate an error syndrome and two control signals SE (single error - single error) and ME (multiple error - multiple error). Using this information, they are able to detect the appearance of a single and double error during storage or reading and to correct a single error. At the same time, a multiple error, in particular a double one, is considered as irreparable catastrophic, requiring interruption of work and treatment at the operating system level. Improving the corrective ability compared to the well-known EDAC controllers by expanding the code power presents significant difficulties and is rarely used in industrial systems.

В предлагаемом устройстве, как и в прототипе, расширение корректирующей способности достигается за счет временной и алгоритмической избыточности и работает по отношению к устойчивым отказам в памяти. Это расширение оказывается возможным благодаря цепям выработки сигналов Syndr_ust и M_Syndr_ust (блоки 5, 7, 8, 9, 10, 11, 12, 13), которые вместе с автоматом управления 14 по сути составляют второй контроллер памяти и который по получению сигнала ошибки от контроллера кода Хэмминга 3 реализует проверку на присутствие устойчивых отказов в битах считанного слова. При этом в изобретении достигается незначительная задержка на три-четыре цикла обращения к статической памяти при первом обнаружении контроллером кода Хэмминга 3 отказавшей ячейки памяти. Второй контроллер памяти восстановит корректное значение ошибочного слова и запишет его в небольшую дополнительную память, работающую в режиме «инверсного кэш», которую мы условно назвали диагностической кэш-памятью 6.In the proposed device, as in the prototype, the expansion of the corrective ability is achieved due to temporal and algorithmic redundancy and works in relation to persistent memory failures. This extension is possible thanks to the signal generation circuits Syndr_ust and M_Syndr_ust (blocks 5, 7, 8, 9, 10, 11, 12, 13), which together with the control unit 14 essentially comprise a second memory controller and which, upon receipt of an error signal from the controller Hamming code 3 implements a check for the presence of stable failures in the bits of a read word. Moreover, the invention achieves a slight delay of three to four cycles of accessing static memory when the controller first detects the Hamming code 3 of a failed memory cell. The second memory controller will restore the correct value of the error word and write it to a small additional memory operating in the “inverse cache” mode, which we conventionally called the diagnostic cache memory 6.

Введение кэш-памяти 6 для целей диагностики и восстановления корректной информации на физическом уровне (конечно, в другом информационном носителе, здесь - в кэш-памяти) является одним из центральных моментов изобретения, поскольку традиционное использование кэш-памяти в компьютерах преследует совершенно другие цели, а именно согласование быстродействия процессора и главной памяти. Если в ЭВМ эффективность кэш-технологии проявляется при преимущественной по времени работе процессора с кэш-памятью (не менее 70% времени), а не с ОЗУ, то в изобретении обращение к диагностической кэш-памяти производится только в случае запроса к отказавшей ячейке памяти, т.е. достаточно редко. При втором и последующих обращениях по адресу этой ошибочной ячейки в ОЗУ она будет считываться на шину памяти не из ОЗУ, а из кэш-памяти, не внося заметных задержек в работу системы.The introduction of cache 6 for the purpose of diagnosing and restoring correct information at the physical level (of course, in another information medium, here in the cache) is one of the central points of the invention, since the traditional use of cache in computers has completely different purposes, namely, the coordination of processor speed and main memory. If in a computer the efficiency of cache technology is manifested when the processor primarily works with cache (at least 70% of the time) and not with RAM, then in the invention the diagnostic cache is accessed only in case of a request to a failed memory cell, those. quite rarely. At the second and subsequent calls to the address of this erroneous cell in RAM, it will be read to the memory bus not from RAM, but from the cache memory, without introducing noticeable delays in the system.

Главное преимущество введения диагностической кэш-памяти 6 для хранения восстановленной информации перед многочисленными другими способами введения резервной памяти - это применение механизма отображения очень большого адресного пространства основного ОЗУ 2 (десятки MB) на сравнительно небольшое (порядка 1 KB) адресное пространство диагностической кэш-памяти. Этот механизм был, по существу, единственным революционным изобретением в ЭВМ, поскольку именно он вносит основной вклад в быстродействие современных ЭВМ с динамическим ОЗУ, и он был отработан до совершенства. В изобретении механизмы реализации отказоустойчивой памяти также очень близки к механизмам работы кэш-памяти. Они «прозрачны» для пользователя, как и наличие кэш-памяти, о существовании которой многие пользователи даже не подозревают.The main advantage of introducing a diagnostic cache 6 for storing the recovered information over many other ways of introducing backup memory is the use of a mechanism for mapping a very large address space of the main RAM 2 (tens of MB) to a relatively small (about 1 KB) address space of the diagnostic cache. This mechanism was, in fact, the only revolutionary invention in computers, since it is it that makes the main contribution to the speed of modern computers with dynamic RAM, and it was worked out to perfection. In the invention, the mechanisms for implementing fault tolerant memory are also very close to the mechanisms for operating the cache memory. They are "transparent" to the user, as is the presence of a cache memory, the existence of which many users do not even suspect.

В изобретении расширение корректирующей способности достигается за счет выработки дополнительных управляющих переменных Syndr_ust, M_Syndr_ust, которые вместе с переменными SE и ME позволяют реализовать управляющую таблицу 1.In the invention, the expansion of the correction ability is achieved through the development of additional control variables Syndr_ust, M_Syndr_ust, which together with the variables SE and ME allow the implementation of control table 1.

Таблица 1Table 1 SESE MEME Syndr_ustSyndr_ust M_Syndr_ustM_Syndr_ust ДействияActions 0
0
0
0
0
0
0
0
0
1
0
one
0
0
0
0
Исправно.
Считать исправным.
OK.
Consider serviceable.
0
1
0
one
1
1
one
one
0
0
0
0
0
0
0
0
Прерывание (кратный сбой).
Исправимо только перезаписью из другой грани.
Interruption (multiple failure).
Correctable only by rewriting from another face.
0
1
0
one
1
1
one
one
1
1
one
one
0
0
0
0
Восстановление контроллером+восстановление по Хэммингу.Controller recovery + Hamming recovery.
1one 00 00 00 Сбой (восстановление по Хэммингу).Crash (Hamming Recovery). 1one 00 1one 00 Восстановление контроллером одиночного устойчивого отказа.Controller recovery of a single persistent failure. -- -- -- 1one Обращение к системе: «авария».The appeal to the system: "accident".

Прежде всего выясняется - произошел сбой, устойчивый отказ или их комбинация. Процедура проверки [4] дана ниже. Реакция автомата управления 14 показана в 5-м столбце таблицы 1.First of all, it turns out - there was a failure, a steady failure, or a combination thereof. The verification procedure [4] is given below. The response of the control device 14 is shown in the 5th column of table 1.

Если процедура определила, что имеет место устойчивый отказ, то второй контроллер памяти восстанавливает правильное значение считанной ячейки, которое и используется для продолжения работы. Задержка будет порядка нескольких команд и двух обращений к ОЗУ 2.If the procedure determines that there is a steady failure, then the second memory controller restores the correct value of the read cell, which is used to continue working. The delay will be on the order of several teams and two calls to RAM 2.

Процедура восстановления от устойчивого отказа осуществляется следующим образом.The recovery procedure from sustainable failure is as follows.

Предположим, при считывании из ОЗУ 2 получен сигнал отказа (т.е. сработал контроллер кода Хэмминга 3). В память ОЗУ 2 (когда-то ранее!) была записана информация X0X1X2...Xk...Xn-1. Однако при хранении (или при считывании) возникла ошибка в k-ом разряде, вместо Xk стало

Figure 00000002
. Схема проверки обнаружила при считывании эту ошибку и взвела соответствующий триггер. Итак, считано:Suppose when reading from RAM 2 a failure signal is received (i.e., the Hamming 3 code controller has worked). The memory X 0 X 1 X 2 ... X k ... X n-1 was recorded in the memory of RAM 2 (once before!). However, during storage (or when reading), an error occurred in the kth discharge, instead of X k it became
Figure 00000002
. The verification circuitry detected this error while reading and cocked the corresponding trigger. So, it is read:

a: X0X1X2...

Figure 00000002
...Xn-1.a: X 0 X 1 X 2 ...
Figure 00000002
... X n-1 .

Сохраним это значение на регистре 7. Проинвертируем поразрядно все считанное слово:Let's save this value on the register 7. We invert bitwise all the read word:

b:

Figure 00000003
.b:
Figure 00000003
.

Запишем проинвертированное слово назад в память по тому же адресу и считаем его на другой регистр 8:Write the inverted word back to memory at the same address and read it to another register 8:

с:

Figure 00000004
.from:
Figure 00000004
.

Поскольку k-ый разряд в памяти неисправен, он опять исказит при хранении и считывании записываемое Xk в

Figure 00000002
.Since the kth digit in the memory is faulty, it again will distort the written X k in storage and reading
Figure 00000002
.

Далее сравним по модулю два слова b и с:Next, we compare modulo the two words b and c:

b:

Figure 00000005
b:
Figure 00000005

Figure 00000006
Figure 00000006

В результате получен синдром отказавшего разряда. Сложим этот синдром по модулю два с первоначально считанным словом a:The result is a failed discharge syndrome. Let us add this syndrome modulo two with the originally read word a:

Figure 00000007
Figure 00000007

В результате получено правильное значение считываемого слова. Восстановление всегда происходит корректно, если в слове устойчивый одиночный отказ.The result is the correct meaning of the word being read. Recovery always occurs correctly if there is a steady single failure in a word.

Сложнее дело с двойными отказами. Двойные отказы устойчивого типа и смешанные отказы типа (одновременных) одного сбоя и одного отказа могут восстанавливаться неправильно. Это происходит, когда одна ошибка активно проявляется, а вторая - не проявляется, т.к. совпадает в момент срабатывания контроля с правильным значением в этом разряде. Однако в самом важном случае двойного отказа, когда оба отказа активно проявляются, они корректно восстанавливаются приведенным алгоритмом.More difficult is the case of double failures. Double failures of a stable type and mixed failures of the type of (simultaneous) one failure and one failure may fail to recover correctly. This happens when one error is actively manifested, and the second is not manifested, because coincides at the moment the control is triggered with the correct value in this category. However, in the most important case of a double failure, when both failures are actively manifested, they are correctly restored by the above algorithm.

Легко проверить, что, если был не устойчивый отказ, а сбой, то согласно алгоритму, синдром окажется нулевым, т.е. не укажет номера сбойного разряда, но засвидетельствует, что устойчивого отказа - нет. Поэтому, если структура зафиксированного двойного отказа - это двойной сбой, то восстановить слово не представляется возможным иначе как через перезапись из корректного источника. Алгоритм, не найдя устойчивых отказов в слове, укажет на необходимость перезаписи из надежного источника.It is easy to verify that if there was not a steady failure, but a failure, then according to the algorithm, the syndrome will be zero, i.e. It will not indicate the number of the failed discharge, but it will indicate that there is no sustainable failure. Therefore, if the structure of the recorded double failure is a double failure, then restoring the word is not possible other than through rewriting from the correct source. The algorithm, not finding persistent failures in the word, will indicate the need for rewriting from a reliable source.

Если двойной отказ, замеченный контролем по Хэммингу, имеет структуру из одного устойчивого и одного сбоя (одновременно), то согласно изложенному алгоритму (он «увидит» только устойчивый отказ) будет изменено на правильное значение в разряде устойчивого отказа, а сбойный разряд - алгоритмом будет «не замечен». В результате слово окажется с одной ошибкой в этом бите, но это будет замечено и правильно восстановлено уже контроллером кода Хэмминга 3 и записано в диагностическую кэш-память 6, поскольку туда перезаписываются все слова с устойчивыми отказами.If the double failure detected by the Hamming control has a structure of one stable and one failure (at the same time), then according to the above algorithm (he will “see” only the steady failure), it will be changed to the correct value in the category of stable failure, and the failed discharge will be the algorithm "Not seen." As a result, the word will be with one error in this bit, but it will be noticed and correctly restored already by the Hamming 3 code controller and written to the diagnostic cache 6, since all words with persistent failures are rewritten there.

Если при двойном отказе один из них активно проявляется, а другой - скрытый, то согласно алгоритму будут исправлены значения в обоих разрядах, причем в одном (активном) правильно, а в скрытом отказе - неправильно. Однако, хотя кратность отказа не изменится (проявление отказа останется одиночным), но уже контроллер кода Хэмминга 3 исправит оставшийся одиночный отказ, и корректное слово будет переписано в диагностическую кэш-память 6.If during a double failure one of them is actively manifested, and the other is hidden, then according to the algorithm the values in both digits will be corrected, moreover, in one (active) it is correct, and in a hidden failure it is incorrect. However, although the failure rate will not change (the manifestation of the failure will remain single), the Hamming 3 code controller will correct the remaining single failure and the correct word will be copied to the diagnostic cache 6.

Подобное двухстадийное восстановление корректного значения с помощью второго контроллера памяти возможно и в более сложных случаях трехкратных отказов, которые раньше не поддавались восстановлению. Эти случаи относятся к строкам таблицы 1, в которых SE=ME=1. Если в тройном отказе все отказы устойчивые и активно проявляющиеся, то информация восстанавливается правильно и переписывается в диагностическую кэш-память 6. Если в тройном устойчивом отказе два отказа - активно проявляющиеся, а один - скрытый, то информация восстанавливается правильно и также переписывается в кэш-память 6. Если в тройном отказе два отказа устойчивых и активно проявляющиеся, а один - сбой, то информация восстанавливается вторым контроллером памяти правильно и также переписывается в кэш-память 6. В более сложном случае тройного отказа, когда один отказ - активно проявляется, а два других - скрытые (см. предпоследнюю строку таблицы 1), срабатывает одностадийное восстановление: второй контроллер памяти разрешит контроллеру кода Хемминга 3 исправить значение «активного» ошибочного разряда и записать корректное слово в кэш-память 6. Однако при числе сбойных разрядов более одного восстановление контроллером кода Хэмминга 3 невозможно, в этом аварийном случае необходима перепись правильного значения из корректного источника.A similar two-stage restoration of the correct value using the second memory controller is also possible in more complex cases of three-time failures, which previously could not be restored. These cases relate to the rows in table 1 in which SE = ME = 1. If in a triple failure all failures are stable and actively appearing, then the information is restored correctly and is transferred to the diagnostic cache 6. If in a triple steady failure two failures are actively appearing and one is hidden, then the information is restored correctly and is also copied to the cache memory 6. If in a triple failure two failures are persistent and actively occurring, and one is a failure, then the information is restored by the second memory controller correctly and is also copied to cache 6. In a more complicated case, the tro one failure, when one failure is actively manifested, and the other two are hidden (see the penultimate row of Table 1), a one-step recovery is triggered: the second memory controller allows the Hamming 3 code controller to correct the value of the “active” erroneous discharge and write the correct word in the cache memory 6. However, if there are more than one failed bits, it is not possible to restore the Hamming 3 code by the controller; in this emergency case, it is necessary to rewrite the correct value from the correct source.

Ввиду малого объема предполагаемых отказавших ячеек (никак не больше 0,5-1,0 Кслов) "диагностический кэш" может быть спроектирован на сравнительно дорогой, но существенно более надежной элементной базе - например, КМОП КНС или на флэш-памяти (хотя в последней нужно преодолеть некоторые трудности с записью информации). Поскольку обращение к кэш-памяти - в среднем редкое событие, то задержки из-за снижения быстродействия в среднем незначительны. Такое решение может оказаться на порядки экономичнее и эффективнее, чем применение дорогой элементной базы для всей памяти, как в современных зарубежных системах в технологии "SOS" (кремний на сапфире "_Silicon_on_Sapphfire").Due to the small volume of alleged failed cells (no more than 0.5-1.0 Kslov), the “diagnostic cache” can be designed on a relatively expensive but significantly more reliable elemental base - for example, CMOS KNS or flash memory (although in the latter you need to overcome some difficulties with recording information). Since accessing the cache memory is, on average, a rare event, delays due to reduced performance are on average insignificant. Such a solution can turn out to be orders of magnitude more economical and more effective than using an expensive elemental base for all memory, as in modern foreign systems using the SOS technology (silicon on sapphire _Silicon_on_Sapphfire).

Рассмотрим архитектуру отказоустойчивой памяти.Consider the architecture of fault tolerant memory.

Структура данных контроллера кода Хэмминга 3 представлена на фиг.3 (а, 6, в, г), где обозначены переменные:The data structure of the controller of the Hamming code 3 is presented in figure 3 (a, 6, c, d), where the variables are indicated:

SE (=1 одиночная ошибка);SE (= 1 single error);

ME (=1 кратная ошибка);ME (= 1 multiple error);

valid (=0 истина);valid (= 0 true);

cache_valid_bit (=1 истина);cache_valid_bit (= 1 true);

Syndr_ust (=1 наличие устойчивого отказа);Syndr_ust (= 1 persistent failure);

M_Syndr_ust>3 (восстановление не гарантировано).M_Syndr_ust> 3 (recovery is not guaranteed).

Контроллер кода Хэмминга 3 исправляет при считывании одиночный «мягкий» сбой или одиночный устойчивый отказ, однако в последнем случае он не восстанавливает истинную информацию, хранящуюся в памяти. Поэтому появление второй ошибки в слове, имеющей как устойчивый, так и сбойный характер, приводит к отказу грани (канала) или системы. Для противодействия появлению двойных ошибок в слове памяти в космических бортовых машинах (фирма Honeywell в бортовом компьютере RH-32SBC, фирма ВАЕ) применяют специальный «фоновый» контроллер-чистильщик памяти (ОЗУ) от одиночных «мягких» сбоев. Для флеш-памяти использование подобного контроллера гораздо проблематичнее из-за трудностей оперативной перезаписи. Эта процедура снижает вероятность накопления кратных сбоев, но, тем не менее, появление в грани (канале) ячейки с кратными (две и больше) устойчивыми неисправностями (или в комбинации: устойчивая+сбой) вызывают отказ грани. Появление таких отказов в каждой грани вызовет полный отказ системы. С целью преодоления этого недостатка предлагается расширить возможности известного контроллера кода Хэмминга.The Hamming 3 code controller corrects a single “soft” failure or a single stable failure when reading, but in the latter case it does not restore the true information stored in memory. Therefore, the appearance of the second error in the word, which has both a stable and a bad character, leads to the failure of the face (channel) or system. To counteract the appearance of double errors in the memory word in spaceborne vehicles (Honeywell company in the RH-32SBC on-board computer, BAE company), a special "background" memory cleaner controller (RAM) from single "soft" failures is used. For flash memory, using such a controller is much more problematic due to the difficulties of online rewriting. This procedure reduces the probability of accumulation of multiple failures, but, nevertheless, the appearance in the face (channel) of a cell with multiple (two or more) persistent faults (or in combination: steady + fault) causes the face to fail. The appearance of such failures in each face will cause a complete failure of the system. In order to overcome this drawback, it is proposed to expand the capabilities of the well-known Hamming code controller.

Предполагается, что в ОЗУ 2 информация хранится в виде 32 информационных бит +7 проверочных бит расширенного кода Хэмминга +1 бит «корректности слова», итого 40 бит. Контроллер кода Хэмминга 3 вырабатывает две переменных: одноразрядные флаги SE (одиночная ошибка) и ME (кратная ошибка). Во втором контроллере памяти вырабатываются еще две переменные: «Syndr_ust», «M_Syndr_ust>3» и «бит корректности» или, короче, «valid» бит, последнее - это еще один разряд памяти (см. выше). Резервируются три вспомогательных регистра R1temp, R2temp, Rsynd.It is assumed that in RAM 2 information is stored in the form of 32 information bits +7 verification bits of the extended Hamming code +1 bit of "word correctness", total 40 bits. The Hamming 3 code controller generates two variables: single-bit flags SE (single error) and ME (multiple error). In the second memory controller, two more variables are generated: “Syndr_ust”, “M_Syndr_ust> 3” and “correctness bit” or, in short, “valid” bit, the last one is another bit of memory (see above). Three auxiliary registers R1temp, R2temp, Rsynd are reserved.

Рассмотрим на примере ОЗУ емкостью 4MB с адресацией слова памяти в 22 разряда. Поскольку при защите памяти кодом Хэмминга адресация производится к словам, а не к байтам памяти, то в предположении общего объема памяти 4MB это будет 1М слово. Слово адреса разбивается на две части, имеющие свои имена: index (биты 2÷11, т.е. 0 и 1 биты, дающие адресацию к байту, не используются) и tag адреса - старшие 10 битов. Index и tag - это переменные, с которыми будет манипулировать второй контроллер памяти.Consider the example of RAM with a capacity of 4MB with addressing the memory word in 22 bits. Since when protecting memory with a Hamming code, addressing is done to words and not to bytes of memory, then assuming a total memory capacity of 4MB, this will be 1M word. The address word is divided into two parts with their own names: index (bits 2 ÷ 11, i.e. 0 and 1 bits that give the address to the byte are not used) and tag addresses are the highest 10 bits. Index and tag are variables that the second memory controller will manipulate.

Вводится дополнительная память Cache с адресным пространством, определяемым полем Index (10 бит) в адресе (т.е. на 1024 слова), с шириной слов, равной 32+7+|tag|+«cache_valid_bit»=32+7+10+1=50 бит.Additional Cache memory is introduced with the address space defined by the Index field (10 bits) in the address (that is, 1,024 words), with a word width equal to 32 + 7 + | tag | + “cache_valid_bit” = 32 + 7 + 10 + 1 = 50 bits.

При чтении слова из ОЗУ 2 дополнительный бит слова (бит корректности слова памяти) используется в качестве управляющего. Если этот бит равен 0, то чтение производится из основной памяти (ОЗУ 2), если он равен 1, то чтение аппаратно перенаправляется к диагностической кэш-памяти 6 по адресу индекса.When reading a word from RAM 2, an additional word bit (memory word correctness bit) is used as a control bit. If this bit is 0, then reading is done from the main memory (RAM 2), if it is 1, then the reading is redirected to the diagnostic cache memory 6 at the index address.

Второй контроллер памяти проектируется в соответствии с рассмотренной ранее управляющей таблицей 1. Как уже упоминалось, расширение корректирующей способности предлагаемой в изобретении новой памяти достигается за счет выработки вторым контроллером памяти дополнительных управляющих переменных Syndr_ust, M_Syndr_ust, которые вместе с переменными SE и ME позволяют реализовать управляющую таблицу 1.The second memory controller is designed in accordance with the previously discussed control table 1. As already mentioned, the expansion of the correcting ability of the new memory proposed in the invention is achieved by the generation of additional control variables Syndr_ust, M_Syndr_ust, which together with the variables SE and ME allow implementing the control table one.

Переадресация отказавших ячеек памяти происходит следующим образом.Redirection of failed memory cells is as follows.

Для устойчивых отказов, используя информацию от контроллера кода Хэмминга 3 и второго контроллера памяти, можно восстановить искаженное значение в считанном слове и переадресовать это слово в дополнительную (резервную) память - диагностическую кэш-память 6 для хранения восстановленного исправного значения. Всякое обращение к искаженному слову по старому адресу должно автоматически переадресовываться к новому расположению этого слова без заметного увеличения времени обращения.For stable failures, using information from the Hamming 3 code controller and the second memory controller, you can restore the distorted value in a read word and redirect this word to an additional (backup) memory - diagnostic cache memory 6 for storing the restored good value. Any appeal to a distorted word at the old address should be automatically redirected to the new location of this word without a noticeable increase in the access time.

В прототипе (и, вообще, во многих современных системах) информационное восстановление реализуют через резервную (зеркальную) память, не отличающуюся от основной по своим объемам. Подобный подход для космических бортовых систем выглядит крайне дорогостоящим. Здесь предлагается другая идея - резервная память очень маленькой емкости. Ведь надо отдавать себе отчет, что устойчиво отказавших ячеек не может быть очень много, сравнительно со всей памятью. Отмечалось, что сейчас их, в худшем случае, единицы. Наша задача - постараться увеличить это критическое значение до нескольких десятков или сотен. В предлагаемом варианте механизмы реализации отказоустойчивой памяти отчасти напоминают механизмы работы обычной кэш-памяти, только в обратной («инверсной») последовательности с другими системными целями, и реализуя другие алгоритмы.In the prototype (and, in general, in many modern systems), information recovery is implemented through a backup (mirrored) memory that does not differ from the main one in its volumes. A similar approach for spaceborne systems seems extremely costly. Another idea is proposed here - backup memory of very small capacity. After all, one must be aware that there can not be a lot of stably failed cells, compared to all memory. It was noted that now they are, in the worst case, units. Our task is to try to increase this critical value to several tens or hundreds. In the proposed embodiment, the mechanisms for implementing fault-tolerant memory partially resemble the mechanisms of operation of a regular cache, only in the reverse ("inverse") sequence with other system goals, and implementing other algorithms.

Рассмотрим основные действия второго контроллера памяти.Consider the main actions of the second memory controller.

Пусть 22-разрядному адресу в ОЗУ 2 отвечает некоторая ячейка памяти, (фиг.4):Let the memory address correspond to the 22-bit address in RAM 2, (Fig. 4):

- если при считывании из ОЗУ 2 по указанному адресу обнаружен одиночный сбой, то он корректируется контроллером кода Хемминга 3 и правильное значение поступает в интерфейс и перезаписывается в ОЗУ 2 по старому адресу;- if a single failure is detected when reading from RAM 2 at the specified address, it is corrected by the Hamming 3 code controller and the correct value is sent to the interface and overwritten in RAM 2 at the old address;

- если при считывании из ОЗУ 2 обнаружен кратный сбой, то корректная информация восстанавливается переписью из другой грани (из корректного источника);- if when reading from RAM 2 a multiple failure is detected, then the correct information is restored by census from another face (from the correct source);

- если при считывании из ОЗУ 2 обнаружен одиночный отказ (т.е. SE=1, МЕ=0), который оказался устойчивым, то информация восстанавливается контроллером кода Хемминга 3, а второй контроллер памяти разрешает ее поступление в интерфейс. Одновременно эта информация+тег адреса (10 бит) заносятся в диагностическую кэш-память 6 по адресу индекса (10 бит), а в ОЗУ 2 по полному адресу - в бит корректности заносится 1;- if, when reading from RAM 2, a single failure (i.e., SE = 1, ME = 0) was found to be stable, then the information is restored by the Hamming 3 code controller, and the second memory controller allows it to enter the interface. At the same time, this information + address tag (10 bits) is entered in the diagnostic cache 6 at the index address (10 bits), and in RAM 2 at the full address - 1 is entered in the correctness bit;

- если при считывании из ОЗУ 2 обнаружен устойчивый двойной отказ (т.е. SE=0, ME=1), то информация восстанавливается вторым контроллером памяти, дополнительно проверяется контроллером кода Хемминга 3 и поступает в интерфейс. Одновременно эта информация+тег адреса (10 бит) заносятся в диагностическую кэш-память 6 по адресу индекса (10 бит), а в ОЗУ 2 по полному адресу - в бит корректности заносится 1;- if, when reading from RAM 2, a steady double failure is detected (i.e., SE = 0, ME = 1), then the information is restored by the second memory controller, additionally checked by the Hamming 3 code controller and goes to the interface. At the same time, this information + address tag (10 bits) is entered in the diagnostic cache 6 at the index address (10 bits), and in RAM 2 at the full address - 1 is entered in the correctness bit;

- если при считывании из ОЗУ 2 бит корректности оказывается равным 1, то обращение (аппаратно) производится к диагностической кэш-памяти 6.- if, when reading from RAM 2, the correctness bit turns out to be 1, then access (hardware) is made to the diagnostic cache 6.

Формат слова в диагностической кэш-памяти 6 приведен на фиг.5.The word format in the diagnostic cache 6 is shown in Fig.5.

Дальнейшая работа происходит следующим образом. При очередном обращении по адресу неисправной ячейки срабатывает контроль за битом некорректности в ОЗУ 2. Одновременно может сработать и контроль по коду Хэмминга. В этом случае чтение слова аппаратно повторяется из диагностической кэш-памяти 6 по адресу индекса. Считывается собственно информация и тэг, который сравнивается с полем тэга полного адреса. При совпадении последних чтение считается корректным. Несовпадение тэгов может произойти в исключительно маловероятном случае, при существовании второй неисправной ячейки ОЗУ 2, имеющей тот же индекс, но отличный тэг. Учитывая, что всего неисправных ячеек - единицы, максимум - несколько десятков, - а различных индексов - более тысячи, такое совпадение маловероятно. С другой стороны, возможность наличия двух неисправных ячеек в ОЗУ 2 с одинаковыми индексами можно учесть, проектируя кэш-память не как 1-ассоциативный (как рассмотрено выше), а как 2-ассоциативный, допускающий совпадение индексов у адресов двух неисправных ячеек. Разрядность такой кэш-памяти в два раза больше. Последний механизм применяется в кэш-памяти практически всех компьютеров, правда, для других целей и потому в другой процедуре.Further work is as follows. At the next call to the address of the faulty cell, the control of the incorrect bit in RAM 2 is triggered. At the same time, control by the Hamming code can also work. In this case, the reading of the word is repeated in hardware from the diagnostic cache 6 at the index address. The information itself and the tag are read, which is compared with the tag field of the full address. If the latter coincides, the reading is considered correct. Tag mismatch can occur in the extremely unlikely event that there is a second faulty RAM 2 cell that has the same index but a different tag. Given that the total number of faulty cells is one, the maximum is several tens, and the various indices are more than a thousand, such a coincidence is unlikely. On the other hand, the possibility of having two faulty cells in RAM 2 with the same indexes can be taken into account when designing the cache memory not as 1-associative (as discussed above), but as 2-associative, allowing the indices to coincide at the addresses of two faulty cells. The capacity of such a cache is twice as large. The latter mechanism is used in the cache of almost all computers, however, for other purposes and therefore in a different procedure.

В целом предложение выглядит как «инверсный кэш», если сравнивать с реальной кэш-технологией. В последней процессор пробует читать информацию по полученному адресу сначала из кэш-памяти, и если ее там не находит, то обращается в ОЗУ 2. Здесь же информация сначала считывается из ОЗУ 2 и, если она корректна, то все идет как обычно. Если обнаруживается, что ячейка ОЗУ 2 неисправна, то правильная информация считывается из диагностического кэш-памяти 6. Учитывая, что отказов не должно быть «много», то заметных потерь производительности не будет. В то же время можно позволить себе «роскошь» иметь сотню отказавших ячеек, сохраняя работоспособность системы.In general, the proposal looks like an “inverse cache" when compared with real cache technology. In the latter, the processor tries to read the information at the received address first from the cache, and if it does not find it there, it contacts RAM 2. Here, the information is first read from RAM 2 and, if it is correct, then everything goes as usual. If it is found that the RAM cell 2 is faulty, then the correct information is read from the diagnostic cache 6. Given that there should not be a lot of failures, there will be no noticeable performance loss. At the same time, you can afford the "luxury" to have a hundred failed cells, while maintaining the system.

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

1. С.L.Chen and M.Y.Hsiao, "Error-Correcting Codes for Semiconductor Memory Applications: A State of-the-Art Review," IBM Journal Res.& Dev., vol. 28, No.3, pp.124-134, March 1984. (Применение корректирующих кодов в полупроводниковой памяти: обзор современного состояния.)1. C. L. Chen and M.Y. Hsiao, "Error-Correcting Codes for Semiconductor Memory Applications: A State of-the-Art Review," IBM Journal Res. & Dev., Vol. 28, No.3, pp.124-134, March 1984. (The use of corrective codes in semiconductor memory: a review of the current state.)

2. D.С.Bossen, A.Kitamorn, К.F.Reick, and M.S.Floyd, "Fault-tolerant design of the IBM pSeries 690 system using POWER4 processor technology," IBM Journal Res.&Dev., vol. 46, No.1, pp.77-86, January 2002. (Отказоустойчивое проектирование системы IBM pSeries 690 на базе технологии процессора POWER4).2. D. C. Bossen, A. Kitamorn, K. F. Reick, and M. S. Flood, "Fault-tolerant design of the IBM pSeries 690 system using POWER4 processor technology," IBM Journal Res. & Dev., Vol. 46, No.1, pp.77-86, January 2002. (Fail-safe design of the IBM pSeries 690 system based on POWER4 processor technology).

3. Патент РФ №2211492, кл. G11С 29/00, G06F 11/07, 2003 г.3. RF patent No. 2211492, cl. G11C 29/00, G06F 11/07, 2003

4. Коррекция устойчивых ошибок в ОЗУ методом двойной инверсии, Computer Design, v.20, No 12, 1981, pp.187-190.4. Correction of persistent errors in RAM by the double inversion method, Computer Design, v.20, No. 12, 1981, pp. 187-190.

Claims (1)

Оперативное запоминающее устройство с высокой степенью отказоустойчивости, содержащее избыточное ОЗУ, снабженное кодом Хэмминга, контроллер кода Хэмминга, регистр адреса памяти, регистр данных памяти и сумматор по модулю два, отличающееся тем, что дополнительно содержит диагностическую кэш-память, первый и второй регистры-инверторы, входной и выходной мультиплексоры соответственно на два и три направления, элемент ИЛИ, элемент И, сумматор порога ошибочных битов слова и автомат управления, при этом адресные входы диагностической кэш-памяти подсоединены к индексной части адреса слова памяти ОЗУ, а входы данных диагностической кэш-памяти подсоединены к слову данных ОЗУ и к тэговой части адреса слова памяти ОЗУ, входы управления кэш-памятью соединены с входами управления ОЗУ, входы регистров-инверторов подсоединены к шине данных ОЗУ и к нулевому направлению выходного мультиплексора, выход диагностической кэш-памяти подсоединен к выходу выходного мультиплексора, а выходы регистров-инверторов подсоединены к первому и второму направлениям выходного мультиплексора и к сумматору по модулю два, выходы которого подключены к многовходовому элементу ИЛИ и ко входам сумматора порога ошибочных битов слова, выход элемента ИЛИ подсоединен ко входу элемента И, выходы элемента И, контроллера кода Хэмминга, бита корректности слова ОЗУ и два выхода сумматора порога ошибочных битов слов подключены ко входу автомата управления, управляющие выходы которого заведены на входы управления контроллера кода Хэмминга, управляющие входы мультиплексоров, вход разрешения выдачи содержимого вышеуказанных регистров, на входы Чт./Зап. ОЗУ и диагностической кэш-памяти, и на вход элемента И, при этом выход выходного мультиплексора подключен через регистр данных памяти к первому входу входного мультиплексора и к его второму входу непосредственно, третий выход сумматора порога ошибочных битов слов выведен на сигнал «авария», а второй выход сумматора по модулю два подключен ко второму входу входного мультиплексора.High-resiliency random access memory containing redundant RAM equipped with a Hamming code, a Hamming code controller, a memory address register, a memory data register and an adder modulo two, characterized in that it further comprises a diagnostic cache memory, first and second inverter registers , input and output multiplexers, respectively, in two and three directions, an OR element, an AND element, an adder for a threshold of erroneous word bits and an automatic control device, while the address inputs of the diagnostic cache They are connected to the index part of the RAM memory word address and the diagnostic cache data inputs are connected to the RAM data word and to the tag part of the RAM memory word address, cache control inputs are connected to RAM control inputs, register-inverter inputs are connected to the data bus RAM and to the zero direction of the output multiplexer, the output of the diagnostic cache is connected to the output of the output multiplexer, and the outputs of the register-inverters are connected to the first and second directions of the output multiplexer and to the sum modulator two, the outputs of which are connected to the multi-input OR element and to the inputs of the adder of the threshold of the error bits of the word, the output of the OR element is connected to the input of the element AND, the outputs of the element AND, the Hamming code controller, the correct word bits of the RAM and two outputs of the threshold word adder of the error bits connected to the input of the control automaton, the control outputs of which are connected to the control inputs of the Hamming code controller, the control inputs of the multiplexers, the enable input of the contents of the above registers, to the inputs West RAM and diagnostic cache, and to the input of the And element, while the output of the output multiplexer is connected through the data register of the memory to the first input of the input multiplexer and to its second input directly, the third output of the adder of the threshold of the error bits of the words is outputted to the alarm signal, and the second output of the adder modulo two is connected to the second input of the input multiplexer.
RU2005141193/09A 2005-12-29 2005-12-29 Random access memory with high extent of fault tolerance RU2327236C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2005141193/09A RU2327236C2 (en) 2005-12-29 2005-12-29 Random access memory with high extent of fault tolerance

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2005141193/09A RU2327236C2 (en) 2005-12-29 2005-12-29 Random access memory with high extent of fault tolerance

Publications (2)

Publication Number Publication Date
RU2005141193A RU2005141193A (en) 2007-07-20
RU2327236C2 true RU2327236C2 (en) 2008-06-20

Family

ID=38430642

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2005141193/09A RU2327236C2 (en) 2005-12-29 2005-12-29 Random access memory with high extent of fault tolerance

Country Status (1)

Country Link
RU (1) RU2327236C2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2579954C2 (en) * 2014-07-30 2016-04-10 Межрегиональное общественное учреждение "Институт инженерной физики" Fail-safe random access memory
RU186529U1 (en) * 2018-05-14 2019-01-23 федеральное государственное бюджетное образовательное учреждение высшего образования "Волгоградский государственный аграрный университет" (ФГБОУ ВО Волгоградский ГАУ) FAULT-RESISTANT MEMORY DEVICE
RU2766271C1 (en) * 2021-03-17 2022-02-10 Акционерное общество «Информационные спутниковые системы» имени академика М.Ф.Решетнёва» Method for ensuring fault tolerance of memory elements

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US 6892275 A (QUANTUM CORPORATION), 10.05.2005. CHEN C.L., HSIAO M.Y. Error-Correcting Codes for Semiconductor Memory Applications: A State of-the-Art Review. - IBM Journal Res.&Dev., vol. 28, No.3, pp.124-134, March 1984 (Применение корректирующих кодов в полупроводниковой памяти: обзор современного состояния). Bossen D.C., Kitamom A., Reick K.F. and Floyd M.S. Fault-tolerant design of the IBM pSeries 690 system using POWER4 processor technology. - IBM Journal Res.&Dev., vol. 46, No.1, pp.77-86, January 2002 (Отказоустойчивое проектирование системы IBM pSeries 690 на базе технологии процессора POWER4). Коррекция устойчивых ошибок в ОЗУ методом двойной инверсии, Computer Design, v.20, No.12, 1981, pp.187-190. *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2579954C2 (en) * 2014-07-30 2016-04-10 Межрегиональное общественное учреждение "Институт инженерной физики" Fail-safe random access memory
RU186529U1 (en) * 2018-05-14 2019-01-23 федеральное государственное бюджетное образовательное учреждение высшего образования "Волгоградский государственный аграрный университет" (ФГБОУ ВО Волгоградский ГАУ) FAULT-RESISTANT MEMORY DEVICE
RU2766271C1 (en) * 2021-03-17 2022-02-10 Акционерное общество «Информационные спутниковые системы» имени академика М.Ф.Решетнёва» Method for ensuring fault tolerance of memory elements

Also Published As

Publication number Publication date
RU2005141193A (en) 2007-07-20

Similar Documents

Publication Publication Date Title
US5379417A (en) System and method for ensuring write data integrity in a redundant array data storage system
US5274646A (en) Excessive error correction control
US5692121A (en) Recovery unit for mirrored processors
EP0492808B1 (en) On-line restoration of redundancy information in a redundant array system
US5504859A (en) Data processor with enhanced error recovery
US4541094A (en) Self-checking computer circuitry
US5701313A (en) Method and apparatus for removing soft errors from a memory
US8171377B2 (en) System to improve memory reliability and associated methods
US20090327803A1 (en) Storage control device and storage control method
US8181094B2 (en) System to improve error correction using variable latency and associated methods
JPH054699B2 (en)
US5200963A (en) Self-checking on-line testable static ram
JP2001005736A (en) Memory error correcting device
US8185801B2 (en) System to improve error code decoding using historical information and associated methods
US7076686B2 (en) Hot swapping memory method and system
US4942575A (en) Error connection device for parity protected memory systems
US5953265A (en) Memory having error detection and correction
RU2327236C2 (en) Random access memory with high extent of fault tolerance
JP3068009B2 (en) Error correction mechanism for redundant memory
KR20010030270A (en) Redundant bit steering mechanism with delayed swithchover of fetch operations during redundant device initialization
US6631489B2 (en) Cache memory and system with partial error detection and correction of MESI protocol
EP3882774B1 (en) Data processing device
JP2001290710A (en) Device for detecting data error
JP3788822B2 (en) Computer system and failure recovery method in the system
JPS63279347A (en) Memory device