RU2385484C2 - Уменьшение частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации - Google Patents

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

Info

Publication number
RU2385484C2
RU2385484C2 RU2007147000/09A RU2007147000A RU2385484C2 RU 2385484 C2 RU2385484 C2 RU 2385484C2 RU 2007147000/09 A RU2007147000/09 A RU 2007147000/09A RU 2007147000 A RU2007147000 A RU 2007147000A RU 2385484 C2 RU2385484 C2 RU 2385484C2
Authority
RU
Russia
Prior art keywords
value
core
failure
microdevice
block
Prior art date
Application number
RU2007147000/09A
Other languages
English (en)
Other versions
RU2007147000A (ru
Inventor
Пол Б. РАКУНАС (US)
Пол Б. РАКУНАС
Джоел С. ЭМЕР (US)
Джоел С. ЭМЕР
Арийт БИСВАС (US)
Арийт БИСВАС
Шубхенду С. МУКЕРДЖИ (US)
Шубхенду С. МУКЕРДЖИ
Стивен Е. РААШ (US)
Стивен Е. РААШ
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 Интел Корпорейшн
Publication of RU2007147000A publication Critical patent/RU2007147000A/ru
Application granted granted Critical
Publication of RU2385484C2 publication Critical patent/RU2385484C2/ru

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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Изобретения относятся к области обработки данных. Техническим результатом является уменьшение частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации. В одном варианте осуществления устройство включает в себя два процессорных ядра, микроустройство контроля, которое обнаруживает, совпадает ли значение от структуры в одном ядре со значением от соответствующей структуры в другом ядре, глобальное устройство контроля, которое обнаруживает ошибки в жесткой конфигурации между двумя ядрами, и логическое устройство сбоя, которое вызывает повторную синхронизацию двух ядер, если существует сбой в жесткой конфигурации и микроустройство контроля обнаружило несовпадение. 3 н. и 16 з.п. ф-лы, 6 ил.

Description

Предшествующий уровень техники
Область техники, к которой относится изобретение
Настоящее изобретение относится к области обработки данных и более конкретно, к области уменьшения ошибок в устройствах обработки данных.
Описание предшествующего уровня техники
Так как улучшения в технологиях производства интегральных схем продолжают предусматривать меньшие размеры и более низкие рабочие напряжения в микропроцессорах и других устройствах обработки данных, производители и пользователи этих устройств становятся все более озабочены явлением кратковременных ошибок. Кратковременные ошибки возникают, когда альфа-частицы и нейтроны высокой энергии ударяются об интегральную схему и изменяют заряды, сохраненные в узлах схемы. Если изменение заряда достаточно велико, напряжение на узле может быть изменено с уровня, который представляет одно логическое состояние, до уровня, который представляет отличное логическое состояние, в случае которого информация, сохраненная на этом узле, становится поврежденной. В целом частота появления кратковременных ошибок увеличивается по мере того, как размеры схемы уменьшаются, так как правдоподобие, что удар частицы повредит напряжение узла, увеличивается, когда плотность монтажа схемы увеличивается. Подобным образом, по мере снижения действующего напряжения, разница между уровнями напряжения, которые представляют различные логические состояния, уменьшается, так что меньше энергии необходимо для изменения логических состояний на узлах схемы и возникает больше кратковременных ошибок.
Блокирование частиц, которые вызывают кратковременные ошибки, является очень трудным, поэтому устройства обработки данных часто включают в себя методики для обнаружения и иногда корректировки кратковременных ошибок. Эти методики уменьшения ошибок включают в себя двухмодульную избыточность ("DMR") и трехмодульную избыточность ("TMR"). С помощью DMR два одинаковых процессора или ядра процессора выполняют ту же самую программу в жесткой конфигурации и их результаты сравниваются. С помощью TMR три одинаковых процессора запускаются в жесткой конфигурации.
Ошибка в любом процессоре может быть обнаружена, используя DMR или TMR, так как ошибка вызовет различие результатов. TMR предусматривает преимущество в том, что восстановление с ошибки может быть выполнено с помощью предположения, что совпадающий результат двух из трех процессоров является правильным результатом.
Восстановление в системе DMR также возможно с помощью проверки всех результатов до того, как они подвергнуты регистрации или иным образом им разрешено воздействовать на состояния архитектуры системы. Затем восстановление может быть выполнено с помощью повторного выполнения всех инструкций с момента последней контрольной точки, если обнаружена ошибка. Однако этот подход может быть непрактичным из-за задержки или других конструктивных ограничений. Другим подходом является добавление механизма отката, который бы разрешал восстанавливать прежнее состояние архитектуры, если обнаружена ошибка. Этот подход может быть также непрактичен из-за сложности конструкции и может испытывать проблему, что результаты повторного выполнения с предыдущего состояния могут отличаться от исходных результатов из-за появления недетерминистского события, например асинхронного прерывания, или повторного выполнения операции вывода, которая является идемпотентной.
Кроме того, DMR или TMR могут действительно увеличивать частоту появления ошибок, так как их реализация требует дополнительных схем, подверженных кратковременным ошибкам, и так как они могут обнаруживать ошибки, которые иначе были бы необнаруженными, но не имели бы влияния на сбой системы. Например, ошибка в структуре, используемой для прогноза, какая ветвь программы должна быть эмпирически выполнена, может иметь следствием неправильный прогноз, но процессор будет автоматически восстанавливаться, когда условие ветви в конечном счете было оценено.
Краткое описание чертежей
Настоящее изобретение проиллюстрировано с помощью примера, а не ограничения, посредством сопроводительных чертежей.
Фиг.1 иллюстрирует вариант осуществления настоящего изобретения в многоядерном процессоре.
Фиг.2 иллюстрирует вариант осуществления настоящего изобретения, используя идентифицирующее логическое устройство микропроверки для уменьшения пропускной способности поперечного внутреннего слоя.
Фиг.3 иллюстрирует вариант осуществления настоящего изобретения в способе для уменьшения частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации.
Фиг.4 иллюстрирует другой вариант осуществления настоящего изобретения в способе для уменьшения частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации.
Фиг.5 иллюстрирует другой вариант осуществления настоящего изобретения в способе для уменьшения частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации.
Фиг.6 иллюстрирует вариант осуществления настоящего изобретения в системе двухмодульной избыточности в жесткой конфигурации.
Подробное описание
Последующее описание раскрывает варианты осуществления устройств и способы для уменьшения частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации. В последующем описании многочисленные определенные подробности, например конфигурации компонентов и систем, могут быть изложены для предоставления более тщательного понимания настоящего изобретения. Однако специалист в данной области техники оценит, что изобретение может быть осуществлено без подобных определенных подробностей. Кроме того, некоторые хорошо известные структуры, схемы, методики и тому подобное не описаны подробно, чтобы избежать ненужного затруднения в понимании изобретения.
DMR может использоваться для предоставления обнаружения ошибок и исправления. Однако она также может увеличивать частоту появления ошибок с помощью обнаружения ошибок, которые не приведут к сбою системы. Варианты осуществления настоящего изобретения могут предусматривать уменьшение частоты появления ошибок в системе DMR с помощью использования микроустройств контроля для обнаружения подобных "ложных" ошибок так, чтобы их можно было пропускать. Другие варианты осуществления могут предусматривать уменьшение частоты появления ошибок в системе DMR с помощью использования микроустройств контроля для определенных структур, например кэш-памяти, для которой значения могут быть заново сформированы и сравнены с исходными значениями для определения, какой из двух процессоров должен быть синхронизирован до состояния другого процессора, таким образом избегая затрат на полный механизм отката. Подобные варианты осуществления настоящего изобретения могут быть желаемы для предоставления некоторых из выгод DMR (например, обнаружение ошибок и возможность корректировки), по сравнению со снижением недостатков (например, ложных ошибок, затраты на возможность полного восстановления).
Более того, варианты осуществления настоящего изобретения могут быть желаемы, чтобы избежать защиты некоторых структур механизмами кодовой коррекции ошибок или с проверкой, которые могут быть затратными, и могут оказаться ненужными для структур, неспособных к разрушению состояния архитектуры. Соединение этих структур с микроустройством контроля согласно варианту осуществления настоящего изобретения может предоставлять возможность восстанавливаться от ошибки без необходимости определения с помощью четности или иным образом, в каком их двух ядер DMR произошла ошибка.
Фиг.1 иллюстрирует вариант осуществления настоящего изобретения в многоядерном процессоре 100. В целом, многоядерный процессор является отдельной интегральной схемой, которая включает в себя более чем одно ядро выполнения. Ядро выполнения включает в себя логическое устройство для выполнения инструкций. Кроме ядер выполнения многоядерный процессор может включать в себя любое сочетание выделенных или совместно используемых ресурсов в пределах объема настоящего изобретения. Выделенный ресурс может являться ресурсом, выделенным единственному ядру, например выделенная кэш-память первого уровня, или может являться ресурсом, выделенным любому подмножеству ядер. Совместно используемый ресурс может являться ресурсом, разделяемым между всеми ядрами, например кэш-память второго уровня или блок совместной внешней шины, которая поддерживает интерфейс между многоядерным процессором и другим компонентом, или может являться ресурсом, разделяемым между любым подмножеством ядер. Настоящее изобретение может быть также реализовано в ином устройстве, чем многоядерный процессор, например в многопроцессорной системе, которая имеет, по меньшей мере, два процессора, каждый с, по меньшей мере, одним ядром.
Процессор 100 включает в себя ядро 110 и ядро 120. Ядра 110 и 120 могут быть основаны на конструкции любого из множества различных типов процессоров, например, процессор в семье процессоров Pentium®, семье процессоров Itanium® или другой семье процессоров от корпорации Интел, или другой процессор от другой компании. Процессор 100 также включает в себя глобальное устройство 130 контроля и микроустройство 140 контроля.
Глобальное устройство 130 контроля сравнивает вывод от ядра 110 с выводом от ядра 120 согласно любой известной методике для обнаружения неисправности жесткой конфигурации в системе DMR, например, с помощью схемы сравнения. Например, выводы ядра 110 и 120 могут сравниваться, когда ядра 110 и 120 синхронно запускают одинаковые копии программы с помощью одинаковых входных данных.
Ядро 110 включает в себя структуру 111, которой может быть любая схема, логическое устройство, функциональный блок, модуль, узел или иная структура, которая формирует или хранит значение, которое должно совпадать с соответствующим значением от соответствующей структуры 121, включенной в ядро 120, когда ядра 110 и 120 функционируют в жесткой конфигурации.
В одном варианте осуществления структуры 111 и 121 могут являться структурами, которые не могут изменять состояние архитектуры процессора 100 или системы, которая включает в себя процессор 100. Например, структуры 111 и 121 могут являться структурами прогнозирования, например, прогнозирующее устройство условного ветвления, прогнозирующие устройства с переходом, прогнозирующие устройства с обратным адресом или прогнозирующие устройства с зависимостью от запоминающего устройства.
В другом варианте осуществления структуры 111 и 121 могут быть структурами, чье содержимое дублируется еще где-либо в системе, включая процессор 100 или может быть сформировано заново. Например, структуры 111 и 121 могут быть структурой кэш-памяти, где каждая неизмененная строка кэш-памяти или запись является значением, которое может быть сформировано заново с помощью повторной загрузки строки кэш-памяти или записи из кэш-памяти более высокого уровня или другого запоминающего устройства в системе.
Микроустройство 140 контроля сравнивает значение от структуры 111 с соответствующим значением от структуры 121. В различных вариантах осуществления сравниваемое значение может различаться в зависимости от сущности структур 111 и 112 и может быть, например, единственным битом, указывающим, должен ли быть принят условный переход или должен произойти переход, множеством битов прогнозируемого обратного адреса или множеством битов строки кэш-памяти или записи. Следовательно, сущность микроустройства 140 контроля может изменяться в различных вариантах осуществления, и сравнение может выполняться согласно любой известной методике, например, с помощью схемы исключения или вентильной схемы или схемы сравнения.
В одном варианте осуществления микроустройство 140 контроля может конфигурироваться для сохранения результата его сравнения, по меньшей мере, пока выполнение программы жесткой конфигурации не достигло точки, где сбой жесткой конфигурации, обнаруженный глобальным устройством 130 контроля, не может быть отнесен к несоответствию между значениями, сравниваемыми микроустройством 140 контроля. Эта конфигурация микроустройства 140 контроля может быть выполнена без какого-либо специального элемента запоминающего устройства, например, если микроустройство контроля является комбинационной логической схемой и сравниваемые значения остаются статическим, по меньшей мере, пока не достигнута каждая точка обнаружения сбоя жесткой конфигурации, или может быть выполнена с помощью регистра или другого элемента запоминающего устройства для хранения результата микроустройства 140 контроля. В других вариантах осуществления микроустройство контроля не нужно конфигурировать для сохранения результата его сравнения.
Процессор 100 также включает в себя логическое устройство 150 сбоя. Логическим устройством 150 сбоя может быть любое аппаратное обеспечение, микрокод, программируемая логика, абстрактный уровень процессора, встроенное программное обеспечение, программное обеспечение или другое логическое устройство для определения ответа процессора 100 на обнаружение сбоя жесткой конфигурации с помощью глобального устройства 130 контроля. При обнаружении сбоя жесткой конфигурации с помощью глобального устройства 130 контроля, если микроустройство 140 контроля обнаружило несовпадение между значением от структуры 111 и соответствующим значением от структуры 121, логическое устройство 150 сбоя вызывает повторную синхронизацию ядра 110 и ядра 120, как описано ниже. Однако если микроустройство 140 контроля не обнаружило несовпадение между значением от структуры 111 и соответствующим значением от структуры 121, логическое устройство 150 сбоя указывает обнаружение некорректируемой ошибки согласно любым известным подходам указания сбоя системы, например, отчету о коде ошибки и операции остановки.
Хотя фиг.1 показывает только структуру 111 в ядре 110 и структуру 121 в ядре 120, в качестве обеспечивающих входные данные для микроустройства 140 контроля, любое число структур и микроустройств контроля может использоваться в рамках объема настоящего изобретения. Например, фиг.2 показывает вариант осуществления настоящего изобретения, используя многочисленные структуры на каждое ядро, единственное микроустройство контроля и идентифицирующее логическое устройство для уменьшения пропускной способности поперечного внутреннего слоя.
На фиг.2 процессор 200 включает в себя ядра 210 и 220, глобальное устройство 230 контроля, микроустройство 240 контроля и логическое устройство 250 сбоя. Ядро 210 включает в себя структуры 211, 213 и 215 и ядро 220 процессора включает структуры 221, 223 и 225.
Структура 211 включает в себя идентифицирующее логическое устройство 212, для формирования идентификационной метки на основе значений из структур 213 и 215, где структуры 213 и 215 могут быть любыми структурами, как описано выше в отношении структуры 111 на фиг.1. Аналогично, структура 221 включает в себя идентифицирующее логическое устройство 222 для формирования идентификационной метки согласно тому же самому подходу, что используется идентифицирующим логическим устройством 212, основанному на значениях из структур 223 и 225.
Идентифицирующее логическое устройство 212 и идентифицирующее логическое устройство 222 могут быть реализованы с помощью любого известного подхода в объединении двух или более значений в единственное значение, например формирование контрольной суммы, используя контрольное устройство циклической избыточности. Идентифицирующее логическое устройство 212 и идентифицирующее логическое устройство 222 могут использоваться так, чтобы микроустройство 240 контроля могло обнаружить несовпадения между структурами 213 и 223 и структурами 215 и 225 вместо использования одного микроустройства контроля для структур 213 и 223 и другого для структур 215 и 225.
Идентифицирующее логическое устройство 212 и идентифицирующее логическое устройство 222 могут также использоваться для уменьшения пропускной способности поперечного внутреннего слоя. Например, идентифицирующее логическое устройство 212 может использоваться для объединения значений от структур 213 и 215 из условия, что число битов в выходных данных идентифицирующего логического устройства 212 меньше, чем общее число битов в двух значениях. Тогда как в некоторых вариантах осуществления может быть желательно для идентифицирующего логического устройства 212 выводить уникальные значения для каждого сочетания входных данных, в других вариантах осуществления может быть желательно принимать меньше, чем 100%-ную точность от микроустройства 240 контроля в обмен на уменьшение в числе битов, связанных с каждым вводом микроустройства 240 контроля. Точность микроустройства 240 контроля меньшая чем 100% может быть приемлемой, так как сбой микроустройства 240 контроля в обнаружении корректируемой ошибки жесткой конфигурации будет понят как некорректируемая ошибка жесткой конфигурации, но не как правильная операция жесткой конфигурации, которая может привести к повреждению системы.
Фиг.3 иллюстрирует вариант осуществления настоящего изобретения в способе 300 для уменьшения частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации, включая процессор 100 по фиг.1, где структуры 111 и 121 являются структурами, которые не могут изменять состояние архитектуры, например, структур прогнозирования.
В блоке 310 ядра 110 и 120 действуют в жесткой конфигурации. В блоке 311 структура 111 формирует первое значение и структура 121 формирует второе значение. Первое значение может соответствовать или не соответствовать второму значению. В блоке 320 микроустройство 140 контроля сравнивает значения от структур 111 и 121. В блоке 330 сохраняется результат сравнения в блоке 320.
В блоке 331 ядро 110 выполняет первую инструкцию на основе значения, формируемого с помощью структуры 111 и ядро 120 выполняет вторую инструкцию на основе значения, формируемого с помощью структуры 121. Первая и вторая инструкции могут являться или могут не являться той же самой инструкцией. Первое и второе значения могут служить как основа для определения, какая инструкция или инструкции выполняются с помощью указания результата прогноза условного ветвления, прогноза с переходом, прогноза с обратным адресом или любой другой прогноз или результат, который не может изменять состояние архитектуры.
От блока 331 способ 300 переходит непосредственно к блоку 340 или переходит к блоку 340 после того, как ядра 110 и 120 выполняют любое число дополнительных инструкций.
В блоке 340 глобальное устройство 130 контроля сравнивает выходные данные от ядер 110 и 120. Если выходные данные соответствуют, операция жесткой конфигурации ядер 110 и 120 продолжается в блоке 310, на которую не повлияла никакая корректировка ошибок, восстановление или методика уведомления, безотносительно результата, сохраняемого в блоке 330. Однако если глобальное устройство 140 контроля обнаруживает сбой жесткой конфигурации в блоке 340, тогда способ 300 продолжается в блоке 350.
От блока 350, если результат, сохраняемый в блоке 330 указывает, что значение от структуры 111 соответствует значению от структуры 121, способ 300 переходит к блоку 360. В блоке 360 логическое устройство 150 сбоя указывает на обнаружение некорректируемой ошибки, например, с помощью отчета о коде ошибки или остановки системы.
От блока 350, если результат, сохраняемый в блоке 330, указывает несоответствие между значениями от структур 111 и 121, способ 300 переходит к блоку 370. В блоке 370 логическое устройство 150 сбоя вызывает повторную синхронизацию ядер 110 и 120. Эта повторная синхронизация может быть выполнена с помощью изменения состояния архитектуры ядра 110 для соответствия состоянию архитектуры ядра 120 или наоборот. Способ 300 затем возвращается в блок 310.
Фиг.4 иллюстрирует вариант осуществления настоящего изобретения в способе 400 для уменьшения частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации, включая процессор 100 фиг.1, где структуры 111 и 121 являются структурами, чье содержимое дублируется еще где-либо в системе или может быть повторно сформировано, например, кэш-память.
В блоке 410 ядра 110 и 120 действуют в жесткой системе. В блоке 411 инструкция, вызывающая загрузку в неизменяемую строку кэш-памяти в структуре 111, выполняется ядром 110, и в неизменяемую строку кэш-памяти в структуре 121 формирует второе значение. От блока 411 способ 400 переходит непосредственно к блоку 420 или переходит к блоку 420 после того, как ядра 110 и 120 выполняют любое число дополнительных инструкций.
В блоке 420 микроустройство 140 контроля сравнивает значение, например, строки кэш-памяти, загружаемое в блок 411 от структуры 111, со значением, например, строки кэш-памяти, загружаемым в блок 411 от структуры 121. В блоке 430 сохраняется результат сравнения в блоке 420.
От блока 430 способ 400 переходит непосредственно к блоку 440 или переходит к блоку 440 после того, как ядра 110 и 120 выполняют любое число дополнительных инструкций.
В блоке 440 глобальное устройство 130 контроля сравнивает выводы от ядер 110 и 120. Если выводы соответствуют, действие в жесткой конфигурации ядер 110 и 120 продолжается в блоке 410, на которое не влияет никакая коррекция ошибок, восстановление или методика уведомления, безотносительно результата, сохраняемого в блоке 430. Однако если глобальное устройство 130 контроля обнаруживает сбой жесткой конфигурации в блоке 440, тогда способ 400 продолжается в блоке 450.
От блока 450, если результат, сохраняемый в блоке 430, указывает, что значение от структуры 111 соответствует значению от структуры 121, способ 400 переходит к блоку 460. В блоке 460 логическое устройство 150 сбоя указывает обнаружение некорректируемой ошибки, например, с помощью отчета о коде ошибки и остановки системы.
От блока 450, если результат, сохраняемый в блоке 430, указывает несоответствие между значениями из структур 111 и 121, способ 400 переходит к блоку 470. В блоках с 470 по 473 логическое устройство 150 сбоя вызывает повторную синхронизацию ядер 110 и 120.
В блоке 470 значения от структур 111 и 121 находятся где-либо в системе или иным образом повторно формируются, например, с помощью повторной загрузки строки кэш-памяти, загружаемой в блок 411. Сформированное повторно значение (например, если единственная копия значения получена, откуда она дублируется в системе) или значения (например, если одна копия значения на каждую структуру получена, откуда она дублируется в системе) могут быть загружены в регистр или регистры или другое расположение или расположения, предусмотренное для сравнения со значениями от структур 111 и 121.
Альтернативно значения от структуры 111 и 121 могут быть перемещены в регистры или другие расположения, предусмотренные для сравнения с восстановленным значением или значениями, которые могут быть получены, например, с помощью повторного выполнения инструкции, выполняемой в блоке 411.
В блоке 471 восстановленное значение или значения сравниваются со значениями от структур 111 и 121. Если восстановленное значение соответствует значению от структуры 111, тогда в блоке 472 ядро 120 синхронизируется с ядром 110, например, с помощью изменения состояния архитектуры ядра 120 для соответствия состоянию архитектуры ядра 110. Если восстановленное значение соответствует значению от структуры 121, тогда в блоке 473 ядро 110 синхронизируется с ядром 120, например, с помощью изменения состояния архитектуры ядра 110 для соответствия состоянию архитектуры ядра 120. От блоков 472 и 473 способ 400 возвращается в блок 410.
Фиг.5 иллюстрирует вариант осуществления настоящего изобретения в способе 500 для уменьшения некорректируемой частоты появления ошибок в системе двухмодульной избыточности в жесткой конфигурации, включая процессор 200 фиг.2.
В блоке 510 ядра 210 и 220 действуют в жесткой конфигурации. В блоке 511 структура 213 формирует значение, и структура 223 формирует значение. Значение от структуры 213 может или может не соответствовать значению от структуры 223. В блоке 512 структура 215 формирует значение, и структура 225 формирует значение. Значение от структуры 215 может или может не соответствовать значению от структуры 225.
В блоке 513 структура 211 формирует идентификационное значение на основе значений от структур 213 и 215, и структура 221 формирует идентификационное значение на основе значений от структур 223 и 225. Идентификационные значения могут формироваться согласно любой известной методике для объединения значений, например, использование устройства контроля циклической избыточности для формирования контрольной суммы.
В блоке 520 микроустройство 240 контроля сравнивает идентификационные значения от структур 211 и 221. В блоке 530 сохраняется результат сравнения в блоке 520.
В блоке 540 глобальное устройство 230 контроля сравнивает выводы от ядер 210 и 220. Если выводы соответствуют, функционирование в жесткой системе ядер 210 и 220 продолжается в блоке 510, на которое не влияет никакая коррекция ошибок, восстановление или методика уведомления, безотносительно результата, сохраняемого в блоке 530. Однако если глобальное устройство 240 контроля обнаруживает сбой в жесткой конфигурации в блоке 540, тогда способ 500 продолжается в блоке 550.
От блока 550, если результат, сохраненный в блоке 530, указывает, что идентификационное значение от структуры 211 соответствует идентификационному значению от структуры 221, способ 500 переходит к блоку 560. В блоке 560 логическое устройство 250 сбоя указывает обнаружение некорректируемой ошибки, например, с помощью отчета о коде ошибки и остановки системы.
От блока 550, если результат, сохраняемый в блоке 530, указывает несоответствие между значениями от структур 211 и 221, способ 500 переходит в блок 570. В блоке 570 логическое устройство 250 сбоя вызывает повторную синхронизацию ядер 210 и 220. Повторная синхронизация может быть выполнена с помощью изменения состояния архитектуры ядра 210 для соответствия состоянию архитектуры ядра 220 или наоборот. Способ 500 затем возвращается в блок 510.
В пределах объема настоящего изобретения способы, проиллюстрированные на фиг.3, 4 и 5 могут быть выполнены в различном порядке, с пропущенными проиллюстрированными этапами, с добавленными дополнительными этапами или с объединением переупорядоченных, объединенных, пропущенных или дополнительных этапов. Например, блок 330, 430 или 530 (сохранение результата сравнения микроустройства контроля) может быть пропущен, если вывод микроустройства контроля остается статическим, пока блок 350, 450 или 550 (проверка результата сравнения микроустройства контроля), соответственно, выполняется.
Другие примеры способов, в которых блок 330 (сохранение результата сравнения микроустройства контроля) может быть пропущен, являются вариантами осуществления настоящего изобретения, в которых вывод микроустройства контроля не нужно сохранять. В одном подобном варианте осуществления способ может переходить от сравнения микроустройства контроля блока 320 к решению блока 350 на основе сравнения микроустройства контроля (или блоки 320 и 350 могут быть объединены). В этом варианте осуществления, если микроустройство контроля обнаруживает несоответствие (либо в 320, либо в 350), механизм восстановления существующего ветвления отмены прогноза в процессоре может использоваться для сброса спекулятивного состояния и таким образом синхронизировать ядра в неспекулятивном состоянии в блоке 370. Если микроустройство контроля не обнаруживает несоответствие, тогда способ этого варианта осуществления может переходить в блок 331 для выполнения инструкций, основанных на прогнозе, затем в блок 340 для глобального устройства контроля для проверки сбоя в жесткой конфигурации, затем, если сбой в жесткой конфигурации обнаружен, в блок 360 для указания некорректируемой ошибки.
Фиг.6 иллюстрирует вариант осуществления настоящего изобретения в системе 600 двухмодульной избыточности в жесткой конфигурации. Система 600 включает в себя многоядерный процессор 610 и системную память 620. Процессор 610 может являться любым процессором, как описано выше для фиг.1 и 2. Системная память 620 может быть любым типом памяти, например, полупроводником, на основе статической или динамической оперативной памяти, полупроводником на основе флеш или постоянного запоминающего устройства, или магнитным запоминающим устройством или запоминающим устройством с оптическим диском. Процессор 610 и системная память 620 могут быть соединены друг с другом в любом порядке, с помощью любого объединения шин либо непосредственно, либо с помощью соединений "точка-к-точке" и с помощью других компонентов. Система 600 может также включать в себя любые шины, например, периферийную шину, или компоненты, например устройства ввода/вывода, не показано на фиг.6.
В системе 600 системная память 620 может использоваться для хранения значения, которое может загружаться структурой, например, структурами 111, 121, 213, 215, 223 и 225, описанными выше. Следовательно, системная память 620 может являться источником дублированного или восстановленного значения, согласно способу варианта осуществления настоящего изобретения, например, как показано в блоке 470 фиг.4.
Процессор 100, процессор 200 или любой другой компонент или часть компонента, спроектированная согласно варианту осуществления настоящего изобретения, может быть спроектирована на различных этапах, от создания до моделирования в производстве. Данные, представляющие модель, могут представлять модель множеством способов. Во-первых, как полезно в моделях, аппаратное обеспечение может быть представлено, используя язык описания аппаратного обеспечения или другой функциональный язык описания. Дополнительно или альтернативно схематичная модель уровня с помощью логического устройства и/или затворов транзистора может быть выполнена на некоторых этапах процесса проектирования. Кроме того, большинство схем на некотором этапе, достигают уровня, где они могут быть смоделированы с помощью данных, представляющих физическое размещение различных устройств. В случае, где используются традиционные методики производства полупроводников, данные, представляющие модель размещения устройств, могут являться данными, задающими присутствие или отсутствие различных характеристик по различным уровням комбинации разрядов для комбинации разрядов, используемых для производства интегральной схемы.
В любом представлении проекта данные могут храниться в любой форме машиночитаемого носителя. Модулируемая оптическая или электрическая волна или иным образом сформированная для передачи подобной информации, запоминающим устройством или магнитным либо оптическим запоминающим устройством, например, диском, может являться машиночитаемым носителем. И из этих носителей "переносят" или "отображают" проект или иную информацию, используемую в варианте осуществления настоящего изобретения, например, инструкций в процедуре восстановления от ошибок. Когда волна носителя электрического тока, указывающая или переносящая информацию, передается внешнему окружению, что выполняется копирование, буферизация или повторная передача электрического сигнала, делается новая копия. Таким образом, действия поставщика услуг связи или поставщика доступа к сети могут быть действиями по выполнению копий предмета, например, несущей волны, реализующей методики настоящего изобретения.
Таким образом, раскрыты устройства и способы для уменьшения некорректируемой частоты появления ошибок в системе двухмодульной избыточности в жесткой конфигурации. Тогда как определенные варианты осуществления описаны и показаны на сопроводительных чертежах, следует понимать, что подобные варианты осуществления в большей степени иллюстративны и не ограничивают широту изобретения и что это изобретение не должно быть ограничено конкретными структурами и расположениями, которые показаны и описаны, так как различные другие модификации могут происходить у обычных специалистов в данной области техники, изучающих раскрытие изобретения. В области технологии, такой как эта, где рост очень быстрый и дополнительные усовершенствования нелегко предсказуемы, раскрытые варианты осуществления могут быть легко изменяемы в расположении и подробностях, что облегчается с помощью предоставления возможности технологическим усовершенствованиям без отклонения от принципов настоящего раскрытия изобретения или объема сопроводительной формулы изобретения.

Claims (19)

1. Устройство для обнаружения некорректируемых ошибок в системе двухмодульной избыточности, содержащее:
первое ядро, которое включает в себя первую структуру;
второе ядро, которое включает в себя вторую структуру;
микроустройство контроля для обнаружения, соответствует ли первое значение от первой структуры второму значению от второй структуры;
глобальное устройство контроля для обнаружения сбоя в жесткой конфигурации между первым ядром и вторым ядром;
логическое устройство сбоя для вызова повторной синхронизации первого и второго ядра, если глобальное устройство контроля обнаруживает сбой в жесткой конфигурации, и микроустройство контроля обнаруживает несовпадение между первым значением и вторым значением.
2. Устройство по п.1, в котором микроустройство контроля включает в себя блок сравнения для сравнения первого значения и второго значения.
3. Устройство по п.1, в котором глобальное устройство контроля включает в себя блок сравнения для сравнения первых выходных данных первого ядра и вторых выходных данных второго ядра.
4. Устройство по п.1, в котором логическое устройство сбоя должно также указывать обнаружение некорректируемой ошибки, если глобальное устройство контроля обнаруживает сбой в жесткой конфигурации, и микроустройство контроля обнаруживает, что первое значение соответствует второму значению.
5. Устройство по п.1, в котором:
первое ядро также включает в себя третью структуру и четвертую структуру;
второе ядро также включает в себя пятую структуру и шестую структуру;
первая структура включает в себя первое идентифицирующее логическое устройство для формирования первого значения на основе третьего значения от третьей структуры и четвертого значения от четвертой структуры; и
вторая структура включает в себя второе идентифицирующее логическое устройство для формирования второго значения на основе пятого значения от пятой структуры и шестого значения от шестой структуры.
6. Устройство по п.1, в котором:
состояние архитектуры первого ядра независимо от первого значения; и состояние архитектуры второго ядра независимо от второго значения.
7. Устройство по п.6, в котором:
первая структура является первой структурой прогнозирования; и вторая структура является второй структурой прогнозирования.
8. Устройство по п.1, в котором логическое устройство сбоя должно также вызывать восстановление первого значения и второго значения, если глобальное устройство контроля обнаруживает сбой в жесткой конфигурации, и микроустройство контроля обнаруживает несовпадение.
9. Устройство по п.8, в котором:
первая структура является первой кэш-памятью;
первый результат является первой записью в кэш-памяти;
вторая структура является второй кэш-памятью; и второй результат является второй записью в кэш-памяти.
10. Устройство по п.9, в котором логическое устройство сбоя также должно вызвать новую загрузку первой записи в кэш-память и второй записи в кэш-память, если глобальное устройство контроля обнаруживает ошибку в жесткой конфигурации, и микроустройство контроля обнаруживает несовпадение.
11. Способ обнаружения некорректируемых ошибок в системе двухмодульной избыточности, содержащий этапы, на которых:
проверяют, соответствует ли первое значение из первой структуры в первом ядре второму значению от второй структуры во втором ядре;
обнаруживают сбой в жесткой конфигурации между первым ядром и вторым ядром; и
повторно синхронизируют первое ядро и второе ядро, если несовпадение обнаруживается между первым значением и вторым значением.
12. Способ по п.11, который дополнительно содержит указание обнаружения некорректируемой ошибки, если первое значение соответствует второму значению.
13. Способ по п.12, дополнительно содержащий этапы, на которых:
формируют первое значение на основе третьего значения от третьей структуры в первом ядре и четвертого значения от четвертой структуры в первом ядре; и
формируют второе значение на основе пятого значения от пятой структуры во втором ядре и шестое значение от шестой структуры во втором ядре.
14. Способ по п.13, в котором:
формирование первого значения включает в себя формирование контрольной суммы на основе третьего значения и четвертого значения; и формирование второго значения включает в себя формирование контрольной суммы на основе пятого значения и шестого значения.
15. Способ по п.11, который дополнительно содержит этапы, на которых:
прогнозируют, должна ли первая инструкция выполняться с помощью первого ядра на основе первого значения; и прогнозируют, должна ли вторая инструкция выполняться с помощью второго ядра на основе второго значения.
16. Способ по п.11, дополнительно содержащий этап, на котором восстанавливают первое значение и второе значение, если обнаруживается несовпадение.
17. Способ по п.16, дополнительно содержащий этапы, на которых:
сравнивают первое значение с восстановленным первым значением;
сравнивают второе значение с восстановленным вторым значением;
синхронизируют первое ядро со вторым ядром, если второе значение соответствует восстановленному второму значению; и синхронизируют второе ядро с первым ядром, если первое значение соответствует восстановленному первому значению.
18. Способ по п.16, в котором первая структура является первой кэшпамятью, первое значение является первой записью в кэш-памяти, вторая структура является второй кэш-памятью, и второе значение является второй записью в кэш-памяти, в котором восстановление первого значения и второго значения включает в себя повторную загрузку первой записи в кэш-память и второй записи в кэш-память.
19. Система двухмодульной избыточности, позволяющая обнаруживать некорректируемые ошибки, которая содержит:
динамическую оперативную память;
первое ядро, которое включает в себя первую структуру;
второе ядро, которое включает в себя вторую структуру;
микроустройство контроля для обнаружения, соответствует ли первое значение от первой структуры второму значению от второй структуры;
глобальное устройство контроля для обнаружения сбоя в жесткой конфигурации между первым ядром и вторым ядром; и логическое устройство сбоя для вызова повторной синхронизации первого ядра и второго ядра, если глобальное устройство контроля обнаруживает сбой в жесткой конфигурации, и микроустройство контроля обнаруживает несовпадение между первым значением и вторым значением.
RU2007147000/09A 2005-06-30 2006-06-29 Уменьшение частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации RU2385484C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/173,835 US7747932B2 (en) 2005-06-30 2005-06-30 Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
US11/173,835 2005-06-30

Publications (2)

Publication Number Publication Date
RU2007147000A RU2007147000A (ru) 2009-08-10
RU2385484C2 true RU2385484C2 (ru) 2010-03-27

Family

ID=37605123

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2007147000/09A RU2385484C2 (ru) 2005-06-30 2006-06-29 Уменьшение частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации

Country Status (6)

Country Link
US (1) US7747932B2 (ru)
JP (1) JP4795433B2 (ru)
CN (1) CN100578462C (ru)
DE (1) DE112006001652T5 (ru)
RU (1) RU2385484C2 (ru)
WO (1) WO2007005818A2 (ru)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE408863T1 (de) * 2004-10-25 2008-10-15 Bosch Gmbh Robert Datenverarbeitungssystem mit variabler taktrate
US7581152B2 (en) * 2004-12-22 2009-08-25 Intel Corporation Fault free store data path for software implementation of redundant multithreading environments
US7743285B1 (en) * 2007-04-17 2010-06-22 Hewlett-Packard Development Company, L.P. Chip multiprocessor with configurable fault isolation
US8817597B2 (en) 2007-11-05 2014-08-26 Honeywell International Inc. Efficient triple modular redundancy on a braided ring
US8117512B2 (en) * 2008-02-06 2012-02-14 Westinghouse Electric Company Llc Failure detection and mitigation in logic circuits
US8037350B1 (en) * 2008-04-30 2011-10-11 Hewlett-Packard Development Company, L.P. Altering a degree of redundancy used during execution of an application
US8171328B2 (en) * 2008-12-31 2012-05-01 Intel Corporation State history storage for synchronizing redundant processors
US8745440B1 (en) * 2010-09-21 2014-06-03 F5 Networks, Inc. Computer-implemented system and method for providing software fault tolerance
GB2494098B (en) 2011-04-11 2014-03-26 Bluecava Inc Thick client and thin client integration
EP2533154B1 (en) 2011-06-09 2015-08-12 Westinghouse Electric Company LLC Failure detection and mitigation in logic circuits
US9500705B2 (en) * 2013-08-28 2016-11-22 Wisconsin Alumni Research Foundation Integrated circuit providing fault prediction
CN104731666B (zh) * 2013-12-23 2017-12-08 深圳市国微电子有限公司 一种抗单粒子翻转的自纠错集成电路及其纠错方法
US10761925B2 (en) * 2015-03-24 2020-09-01 Nxp Usa, Inc. Multi-channel network-on-a-chip
EP3085596B1 (en) 2015-04-20 2017-11-29 Autoliv Development AB A vehicle safety electronic control system
FR3037158B1 (fr) * 2015-06-05 2018-06-01 Thales Surveillance de trajectoire
EP3118694A1 (de) * 2015-07-13 2017-01-18 Siemens Aktiengesellschaft Verfahren zum betreiben eines redundanten automatisierungssystems und redundantes automatisierungssystem
KR101651370B1 (ko) * 2015-08-26 2016-08-26 한국항공우주연구원 추력기의 구동 제어방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터 판독 가능 기록 매체
DE102015218898A1 (de) * 2015-09-30 2017-03-30 Robert Bosch Gmbh Verfahren zur redundanten Verarbeitung von Daten
CN105630732B (zh) * 2015-12-17 2018-09-14 西北工业大学 一种双模冗余微处理器的热切换方法
US10089194B2 (en) * 2016-06-08 2018-10-02 Qualcomm Incorporated System and method for false pass detection in lockstep dual core or triple modular redundancy (TMR) systems
KR101923778B1 (ko) * 2016-11-22 2018-11-29 연세대학교 산학협력단 듀얼 모듈러 리던던시 및 오류 예측을 이용한 고성능 컴퓨팅 장치 및 그 방법
US10740167B2 (en) * 2016-12-07 2020-08-11 Electronics And Telecommunications Research Institute Multi-core processor and cache management method thereof
KR102376396B1 (ko) * 2016-12-07 2022-03-21 한국전자통신연구원 멀티 코어 프로세서 및 그것의 캐시 관리 방법
KR102377729B1 (ko) * 2016-12-08 2022-03-24 한국전자통신연구원 멀티 코어 프로세서 및 그것의 동작 방법
US10429919B2 (en) 2017-06-28 2019-10-01 Intel Corporation System, apparatus and method for loose lock-step redundancy power management
US10303566B2 (en) * 2017-07-10 2019-05-28 Arm Limited Apparatus and method for checking output data during redundant execution of instructions
CN112424753A (zh) * 2018-07-18 2021-02-26 三垦电气株式会社 多核系统
US10831628B2 (en) 2018-12-12 2020-11-10 Intel Corporation Hardware lockstep checking within a fault detection interval in a system on chip
US11221901B2 (en) 2019-11-26 2022-01-11 Siemens Industry Software Inc. Monitoring processors operating in lockstep
CN111104243B (zh) * 2019-12-26 2021-05-28 江南大学 一种低延迟的双模lockstep容软错误处理器系统
EP3869338A1 (en) 2020-02-18 2021-08-25 Veoneer Sweden AB A vehicle safety electronic control system
US11733972B2 (en) 2020-10-06 2023-08-22 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by providing random load data as a result of execution of a load operation that does not have permission to access a load address
US11797673B2 (en) 2020-08-27 2023-10-24 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by expeditiously initiating flushing of instructions dependent upon a load instruction that causes a need for an architectural exception
US11907369B2 (en) 2020-08-27 2024-02-20 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by preventing cache memory state from being affected by a missing load operation by inhibiting or canceling a fill request of the load operation if an older load generates a need for an architectural exception
US11868469B2 (en) * 2020-08-27 2024-01-09 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by preventing all dependent instructions from consuming architectural register result produced by instruction that causes a need for an architectural exception
US11734426B2 (en) 2020-10-06 2023-08-22 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by prevents cache line data implicated by a missing load address from being filled into a data cache memory when the load address specifies a location with no valid address translation or no permission to read from the location
US11853424B2 (en) 2020-10-06 2023-12-26 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by refraining from allocating an entry in a data TLB for a missing load address when the load address misses both in a data cache memory and in the data TLB and the load address specifies a location without a valid address translation or without permission to read from the location
CA3136322A1 (en) 2020-12-02 2022-06-02 The Boeing Company Debug trace streams for core synchronization
US11892505B1 (en) 2022-09-15 2024-02-06 Stmicroelectronics International N.V. Debug and trace circuit in lockstep architectures, associated method, processing system, and apparatus
CN118035006A (zh) * 2024-04-12 2024-05-14 西北工业大学 一种三核处理器独立和锁步运行可动态配置的控制系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3156429B2 (ja) * 1993-03-17 2001-04-16 株式会社日立製作所 高信頼型計算機用システム制御lsi及びそれを用いたコンピュータシステム
US5748873A (en) * 1992-09-17 1998-05-05 Hitachi,Ltd. Fault recovering system provided in highly reliable computer system having duplicated processors
US5790776A (en) * 1992-12-17 1998-08-04 Tandem Computers Incorporated Apparatus for detecting divergence between a pair of duplexed, synchronized processor elements
US5604754A (en) * 1995-02-27 1997-02-18 International Business Machines Corporation Validating the synchronization of lock step operated circuits
EP0868692B1 (en) * 1995-12-18 2000-05-03 ABB Automation Inc. Processor independent error checking arrangement
JPH10261762A (ja) * 1997-03-19 1998-09-29 Hitachi Ltd メモリを内蔵した多重化マイクロコントローラ
US6115365A (en) * 1998-07-30 2000-09-05 Motorola, Inc. Method and apparatus for queuing and transmitting messages
JP2000298594A (ja) * 1999-04-13 2000-10-24 Nec Corp フォールトトレラント制御方法および冗長コンピュータシステム
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US6604177B1 (en) * 2000-09-29 2003-08-05 Hewlett-Packard Development Company, L.P. Communication of dissimilar data between lock-stepped processors
US6772368B2 (en) * 2000-12-11 2004-08-03 International Business Machines Corporation Multiprocessor with pair-wise high reliability mode, and method therefore
US6938183B2 (en) * 2001-09-21 2005-08-30 The Boeing Company Fault tolerant processing architecture
JP2004046599A (ja) * 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US7055060B2 (en) * 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor

Also Published As

Publication number Publication date
DE112006001652T5 (de) 2008-05-08
WO2007005818A2 (en) 2007-01-11
RU2007147000A (ru) 2009-08-10
JP4795433B2 (ja) 2011-10-19
CN100578462C (zh) 2010-01-06
US20070022348A1 (en) 2007-01-25
JP2009501367A (ja) 2009-01-15
WO2007005818A3 (en) 2007-05-10
CN101213522A (zh) 2008-07-02
US7747932B2 (en) 2010-06-29

Similar Documents

Publication Publication Date Title
RU2385484C2 (ru) Уменьшение частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации
Sorin Fault tolerant computer architecture
Koren et al. Fault-tolerant systems
CN107799151B (zh) 固态盘SSD及高可用性PCIe SSD的方法和系统
KR101264494B1 (ko) 리던던트 프로세서들을 동기화시키기 위한 상태 이력 스토리지
US20160179577A1 (en) Method of Managing the Operation of an Electronic System with a Guaranteed Lifetime
US10915402B2 (en) Software fault monitoring
Anjankar et al. FPGA based multiple fault tolerant and recoverable technique using triple modular redundancy (FRTMR)
US7558992B2 (en) Reducing the soft error vulnerability of stored data
US20090249174A1 (en) Fault Tolerant Self-Correcting Non-Glitching Low Power Circuit for Static and Dynamic Data Storage
Nathan et al. Nostradamus: Low-cost hardware-only error detection for processor cores
Radojkovic et al. Towards resilient EU HPC systems: A blueprint
CN115080315B (zh) 故障检测及处理方法、装置、处理器及电子设备
US11392385B2 (en) System and method for auto-recovery in lockstep processors
Schölzel Self-testing and self-repairing embedded processors: techniques for statically scheduled superscalar architectures
Nezzari et al. ACEDR: Automatic compiler error detection and recovery for COTS CPU and caches
Kritikakou et al. Binary tree classification of rigid error detection and correction techniques
Nezzari et al. Modelling processor reliability using LLVM compiler fault injection
Kudva et al. Balancing new reliability challenges and system performance at the architecture level
US9135110B2 (en) Method and device for enhancing the reliability of a multiprocessor system by hybrid checkpointing
Touloupis et al. Efficient protection of the pipeline core for safety-critical processor-based systems
Chen et al. Method for improving data security in register files based on multiple pipeline restart
Hébert et al. D-Scale: A scalable system-level dependable method for MPSoCs
El Salloum et al. Recovery mechanisms for dual core architectures
WO2023218158A1 (en) Run-time modification of a field programmable gate array or a coarse grained reconfigurable array to duplicate the most vulnerable functional circuits behaviour

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20130630