УМЕНЬШЕНИЕ ЧАСТОТЫ ПОЯВЛЕНИЯ НЕКОРРЕКТИРУЕМЫХ ОШИБОК В СИСТЕМЕ ДВУХМОДУЛЬНОЙ ИЗБЫТОЧНОСТИ В ЖЕСТКОЙ КОНФИГУРАЦИИ
REDUCED FREQUENCY OF NON-CORRECTED ERRORS GENERATION IN SYSTEM OF DOUBLE-MODULE REDUNDANCY IN INFLEXIBILITY OF CONFIGURATION

Предшествующий уровень техники
Область техники, к которой относится изобретение
Настоящее изобретение относится к области обработки данных и более конкретно, к области уменьшения ошибок в устройствах обработки данных.
Описание предшествующего уровня техники
Так как улучшения в технологиях производства интегральных схем продолжают предусматривать меньшие размеры и более низкие рабочие напряжения в микропроцессорах и других устройствах обработки данных, производители и пользователи этих устройств становятся все более озабочены явлением кратковременных ошибок. Кратковременные ошибки возникают, когда альфа-частицы и нейтроны высокой энергии ударяются об интегральную схему и изменяют заряды, сохраненные в узлах схемы. Если изменение заряда достаточно велико, напряжение на узле может быть изменено с уровня, который представляет одно логическое состояние, до уровня, который представляет отличное логическое состояние, в случае которого информация, сохраненная на этом узле, становится поврежденной. В целом частота появления кратковременных ошибок увеличивается по мере того, как размеры схемы уменьшаются, так как правдоподобие, что удар частицы повредит напряжение узла, увеличивается, когда плотность монтажа схемы увеличивается. Подобным образом, по мере снижения действующего напряжения, разница между уровнями напряжения, которые представляют различные логические состояния, уменьшается, так что меньше энергии необходимо для изменения логических состояний на узлах схемы и возникает больше кратковременных ошибок.
Блокирование частиц, которые вызывают кратковременные ошибки, является очень трудным, поэтому устройства обработки данных часто включают в себя методики для обнаружения и иногда корректировки кратковременных ошибок. Эти методики уменьшения ошибок включают в себя двухмодульную избыточность ("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 или любой другой компонент или часть компонента, спроектированная согласно варианту осуществления настоящего изобретения, может быть спроектирована на различных этапах, от создания до моделирования в производстве. Данные, представляющие модель, могут представлять модель множеством способов. Во-первых, как полезно в моделях, аппаратное обеспечение может быть представлено, используя язык описания аппаратного обеспечения или другой функциональный язык описания. Дополнительно или альтернативно схематичная модель уровня с помощью логического устройства и/или затворов транзистора может быть выполнена на некоторых этапах процесса проектирования. Кроме того, большинство схем на некотором этапе, достигают уровня, где они могут быть смоделированы с помощью данных, представляющих физическое размещение различных устройств. В случае, где используются традиционные методики производства полупроводников, данные, представляющие модель размещения устройств, могут являться данными, задающими присутствие или отсутствие различных характеристик по различным уровням комбинации разрядов для комбинации разрядов, используемых для производства интегральной схемы.
В любом представлении проекта данные могут храниться в любой форме машиночитаемого носителя. Модулируемая оптическая или электрическая волна или иным образом сформированная для передачи подобной информации, запоминающим устройством или магнитным либо оптическим запоминающим устройством, например, диском, может являться машиночитаемым носителем. И из этих носителей "переносят" или "отображают" проект или иную информацию, используемую в варианте осуществления настоящего изобретения, например, инструкций в процедуре восстановления от ошибок. Когда волна носителя электрического тока, указывающая или переносящая информацию, передается внешнему окружению, что выполняется копирование, буферизация или повторная передача электрического сигнала, делается новая копия. Таким образом, действия поставщика услуг связи или поставщика доступа к сети могут быть действиями по выполнению копий предмета, например, несущей волны, реализующей методики настоящего изобретения.
Таким образом, раскрыты устройства и способы для уменьшения некорректируемой частоты появления ошибок в системе двухмодульной избыточности в жесткой конфигурации. Тогда как определенные варианты осуществления описаны и показаны на сопроводительных чертежах, следует понимать, что подобные варианты осуществления в большей степени иллюстративны и не ограничивают широту изобретения и что это изобретение не должно быть ограничено конкретными структурами и расположениями, которые показаны и описаны, так как различные другие модификации могут происходить у обычных специалистов в данной области техники, изучающих раскрытие изобретения. В области технологии, такой как эта, где рост очень быстрый и дополнительные усовершенствования нелегко предсказуемы, раскрытые варианты осуществления могут быть легко изменяемы в расположении и подробностях, что облегчается с помощью предоставления возможности технологическим усовершенствованиям без отклонения от принципов настоящего раскрытия изобретения или объема сопроводительной формулы изобретения.